@kontur.candy/tools 2.138.0 → 2.140.0-debug
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/CHANGELOG.md +79 -0
- package/distr/Common/CandyApiClient/CandyApiClient.js +80 -9
- package/distr/Common/CandyApiClient/FakeCandyApiClient.js +26 -4
- package/distr/Common/CandyApiClient/Types/GetInner/ServerRawResponse.js +11 -0
- package/distr/Common/CandyApiClient/Types/MassActions/MassActionParameters.js +6 -0
- package/distr/Common/CandyApiClient/Types/Print/PrintResponse.js +6 -0
- package/distr/Common/CandyApiClient/Types/Print/PrintType.js +14 -0
- package/distr/Common/CandyApiClient/Types/Staff/ImportEmployeesOptions.js +6 -0
- package/distr/Common/HttpClient/HttpClient.js +5 -2
- package/distr/Common/IterableUtils.js +26 -1
- package/distr/Common/KCLangRuntimeUtils.js +10 -2
- package/distr/Common/ModelPath/BuildIterationSequence.js +3 -2
- package/distr/Common/ModelPath/ModelPath.js +15 -4
- package/distr/Common/StringArrayKey.js +4 -12
- package/distr/Common/UseShowOnce.js +88 -0
- package/distr/Common/hashUtils.js +17 -0
- package/distr/Tools/src/BuildTasks/Form/CompileForm.js +10 -4
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js +45 -2
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/ReadSourcesAndProcessSugarWorker.js +3 -1
- package/distr/Tools/src/BuildTasks/ResolveFormInfo.js +1 -1
- package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js +6 -6
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +46 -4
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +2 -2
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +12 -6
- package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +2 -2
- package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js +5 -2
- package/distr/Tools/src/Commons/ApiClient/ToolsApiClient.js +37 -0
- package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js +9 -7
- package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +5 -3
- package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +151 -57
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +226 -137
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -66,7 +66,10 @@ async function upgradeFormEngine(farmDirectory, gfv, engineVersion, skipPreVersi
|
|
|
66
66
|
if (((_formConfig$dependenc = formConfig.dependencies) === null || _formConfig$dependenc === void 0 ? void 0 : _formConfig$dependenc.engine) != undefined && ((_formConfig$dependenc2 = formConfig.dependencies) === null || _formConfig$dependenc2 === void 0 ? void 0 : _formConfig$dependenc2.generator) != undefined) {
|
|
67
67
|
var _formConfig$dependenc3, _formConfig$dependenc4;
|
|
68
68
|
|
|
69
|
-
|
|
69
|
+
const engineVersionSpec = (0, _Version.parseCandyVersionSpec)((_formConfig$dependenc3 = formConfig.dependencies) === null || _formConfig$dependenc3 === void 0 ? void 0 : _formConfig$dependenc3.engine);
|
|
70
|
+
const generatorVersionSpec = (0, _Version.parseCandyVersionSpec)((_formConfig$dependenc4 = formConfig.dependencies) === null || _formConfig$dependenc4 === void 0 ? void 0 : _formConfig$dependenc4.generator);
|
|
71
|
+
|
|
72
|
+
if (engineVersionSpec.type === "pre" || generatorVersionSpec.type === "pre" || engineVersionSpec.type === "version" && /[a-zA-Z]/.test(engineVersionSpec.version) || generatorVersionSpec.type === "version" && /[a-zA-Z]/.test(generatorVersionSpec.version)) {
|
|
70
73
|
logger.log("Form version has prerelease version: Upgrade skipped due to flag skipPreVersions (--skip-pre-versions) specified");
|
|
71
74
|
return;
|
|
72
75
|
}
|
|
@@ -172,4 +175,4 @@ async function upgradeFormPrerelease(farmDirectory, gfv, preid, logger) {
|
|
|
172
175
|
throw new Error(`Версии ${preid} не существует.`);
|
|
173
176
|
}
|
|
174
177
|
}
|
|
175
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9VcGdyYWRlRm9ybS9SdW5VcGdyYWRlRm9ybS50cyJdLCJuYW1lcyI6WyJydW5VcGdyYWRlRm9ybSIsImNvbnRleHQiLCJvcHRpb25zIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZmFybURpcmVjdG9yeSIsImZvcm1HbG9icyIsIkZvcm1HbG9icyIsInZhbGlkYXRlR2xvYnMiLCJyZXNvbHZlU3BlY2lmaWVycyIsImdmdiIsInJlc29sdmVHbG9ic1RvR2Z2cyIsImxvZ2dlciIsIndpdGhQcmVmaXgiLCJ1c2VDaUJ1aWxkIiwibG9nIiwidXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlIiwiZW5naW5lIiwidW5kZWZpbmVkIiwidXBncmFkZUZvcm1FbmdpbmUiLCJza2lwUHJlVmVyc2lvbnMiLCJwcmVpZCIsInVwZ3JhZGVGb3JtUHJlcmVsZWFzZSIsImVuZ2luZVZlcnNpb24iLCJmb3JtRGlyUGF0aCIsInBhdGgiLCJqb2luIiwiZm9ybUpzb25QYXRoIiwid2FybmluZyIsImZvcm1Db25maWciLCJkZXBlbmRlbmNpZXMiLCJnZW5lcmF0b3IiLCJ0eXBlIiwibW9kZSIsInNwYWNlcyIsIkVycm9yIiwiZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSIsImJ1aWxkIiwiZm9ybUdpdElnbm9yZVBhdGgiLCJnaXRJZ25vcmVDb250ZW50Iiwic3BsaXQiLCJpbmNsdWRlcyIsInRyaW1SaWdodCIsInByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFFQTs7QUFNQTs7QUFFQTs7QUFFQTs7QUFDQTs7Ozs7O0FBSU8sZUFBZUEsY0FBZixDQUNIQyxPQURHLEVBRUhDLE9BRkcsRUFHSEMsa0JBSEcsRUFJSEMsYUFKRyxFQUtVO0FBQ2IsUUFBTUMsU0FBUyxHQUFHLE1BQU1DLDBCQUFVQyxhQUFWLENBQ3BCLE1BQU1ELDBCQUFVRSxpQkFBVixDQUE0Qk4sT0FBTyxDQUFD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QU0sSUFBSUMsS0FBSixDQUFXLFVBQVNkLEtBQU0saUJBQTFCLENBQU47QUFDSDtBQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBwYXRoRXhpc3RzLCByZWFkRmlsZSwgcmVtb3ZlLCB3cml0ZUZpbGUsIHdyaXRlSnNvbiB9IGZyb20gXCJmcy1leHRyYVwiO1xuXG5pbXBvcnQge1xuICAgIGdldExhc3RTdGFibGVFbmdpbmVWZXJzaW9uLFxuICAgIGdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uLFxuICAgIGdldFByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24sXG4gICAgaXNFbmdpbmVWZXJzaW9uRXhpc3RzLFxufSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IGlzTmV3Rm9ybUpzb25Gb3JtYXQsIHJlYWRGb3JtQ29uZmlnIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUmVzb2x2ZUZvcm1JbmZvXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IEZvcm1HbG9icyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0Zvcm1HbG9ic1V0aWxzXCI7XG5pbXBvcnQgeyBJTG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9JTG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuaW1wb3J0IHsgcGFyc2VDYW5keVZlcnNpb25TcGVjIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvVmVyc2lvblwiO1xuXG5pbXBvcnQgeyBVcGdyYWRlRm9ybU9wdGlvbnMgfSBmcm9tIFwiLi9VcGdyYWRlRm9ybU9wdGlvbnNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1blVwZ3JhZGVGb3JtKFxuICAgIGNvbnRleHQ6IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQsXG4gICAgb3B0aW9uczogVXBncmFkZUZvcm1PcHRpb25zLFxuICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZ1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZm9ybUdsb2JzID0gYXdhaXQgRm9ybUdsb2JzLnZhbGlkYXRlR2xvYnMoXG4gICAgICAgIGF3YWl0IEZvcm1HbG9icy5yZXNvbHZlU3BlY2lmaWVycyhvcHRpb25zLmZvcm1HbG9icywgZmFybURpcmVjdG9yeSksXG4gICAgICAgIGZhcm1EaXJlY3RvcnlcbiAgICApO1xuICAgIGZvciAoY29uc3QgZ2Z2IG9mIGF3YWl0IEZvcm1HbG9icy5yZXNvbHZlR2xvYnNUb0dmdnMoZm9ybUdsb2JzLCBmYXJtRGlyZWN0b3J5KSkge1xuICAgICAgICBjb25zdCBsb2dnZXIgPSBjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KGBGT1JNOiR7Z2Z2fWApO1xuICAgICAgICBpZiAob3B0aW9ucy51c2VDaUJ1aWxkKSB7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiQmVnaW4gdXBncmFkaW5nIGJ1aWxkIG1vZGVcIik7XG4gICAgICAgICAgICBhd2FpdCB1cGdyYWRlRm9ybVRvQ2lCdWlsZE1vZGUocmVzb3VyY2VzRGlyZWN0b3J5LCBmYXJtRGlyZWN0b3J5LCBnZnYsIGxvZ2dlcik7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiRmluaXNoIHVwZ3JhZGluZyBidWlsZCBtb2RlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmVuZ2luZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJCZWdpbiB1cGdyYWRpbmcgZW5naW5lIHZlcnNpb25cIik7XG4gICAgICAgICAgICBhd2FpdCB1cGdyYWRlRm9ybUVuZ2luZShmYXJtRGlyZWN0b3J5LCBnZnYsIG9wdGlvbnMuZW5naW5lLCBvcHRpb25zLnNraXBQcmVWZXJzaW9ucywgbG9nZ2VyKTtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJGaW5pc2ggdXBncmFkaW5nIGVuZ2luZSB2ZXJzaW9uXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLnByZWlkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkJlZ2luIHVwZ3JhZGluZyBlbmdpbmUgdmVyc2lvblwiKTtcbiAgICAgICAgICAgIGF3YWl0IHVwZ3JhZGVGb3JtUHJlcmVsZWFzZShmYXJtRGlyZWN0b3J5LCBnZnYsIG9wdGlvbnMucHJlaWQsIGxvZ2dlcik7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiRmluaXNoIHVwZ3JhZGluZyBlbmdpbmUgdmVyc2lvblwiKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBncmFkZUZvcm1FbmdpbmUoXG4gICAgZmFybURpcmVjdG9yeTogc3RyaW5nLFxuICAgIGdmdjogc3RyaW5nLFxuICAgIGVuZ2luZVZlcnNpb246IHN0cmluZyxcbiAgICBza2lwUHJlVmVyc2lvbnM6IGJvb2xlYW4sXG4gICAgbG9nZ2VyOiBJTG9nZ2VyXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGdmdik7XG4gICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm0uanNvblwiKTtcbiAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgIGxvZ2dlci53YXJuaW5nKFwiRm9ybSBkb2VzIG5vdCBoYXZlIGZvcm0uanNvbjogVXBncmFkZSBza2lwcGVkXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZvcm1Db25maWcgPSBhd2FpdCByZWFkRm9ybUNvbmZpZyhmb3JtSnNvblBhdGgsIGxvZ2dlcik7XG4gICAgaWYgKHNraXBQcmVWZXJzaW9ucykge1xuICAgICAgICBpZiAoZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmVuZ2luZSAhPSB1bmRlZmluZWQgJiYgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmdlbmVyYXRvciAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBwYXJzZUNhbmR5VmVyc2lvblNwZWMoZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmVuZ2luZSkudHlwZSA9PT0gXCJwcmVcIiB8fFxuICAgICAgICAgICAgICAgIHBhcnNlQ2FuZHlWZXJzaW9uU3BlYyhmb3JtQ29uZmlnLmRlcGVuZGVuY2llcz8uZ2VuZXJhdG9yKS50eXBlID09PSBcInByZVwiXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIubG9nKFxuICAgICAgICAgICAgICAgICAgICBcIkZvcm0gdmVyc2lvbiBoYXMgcHJlcmVsZWFzZSB2ZXJzaW9uOiBVcGdyYWRlIHNraXBwZWQgZHVlIHRvIGZsYWcgc2tpcFByZVZlcnNpb25zICgtLXNraXAtcHJlLXZlcnNpb25zKSBzcGVjaWZpZWRcIlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChmb3JtQ29uZmlnLm1vZGUgPT09IFwibm8tZWRpdG9yXCIpIHtcbiAgICAgICAgbG9nZ2VyLmxvZyhcIkZvcm0gZG9lcyBub3QgaGF2ZSBlZGl0b3I6IFVwZ3JhZGUgc2tpcHBlZFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZm9ybUNvbmZpZy5tb2RlID09PSBcImNvcHktbGVnYWN5LXByZWJ1aWx0LXJlc291cmNlc1wiKSB7XG4gICAgICAgIGxvZ2dlci5sb2coXCJGb3JtIGRvZXMgbm90IGhhdmUgZWRpdG9yOiBVcGdyYWRlIHNraXBwZWRcIik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGVuZ2luZVZlcnNpb24gPT09IFwibGF0ZXN0XCIpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgPSB7XG4gICAgICAgICAgICBlbmdpbmU6IGF3YWl0IGdldExhc3RTdGFibGVFbmdpbmVWZXJzaW9uKCksXG4gICAgICAgICAgICBnZW5lcmF0b3I6IGF3YWl0IGdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uKCksXG4gICAgICAgIH07XG4gICAgICAgIGxvZ2dlci5sb2coYFVwZGF0ZWQgdG8gbGFzdCBzdGFibGUgdmVyc2lvbiAke2Zvcm1Db25maWcuZGVwZW5kZW5jaWVzLmVuZ2luZX1gKTtcbiAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGF3YWl0IGlzRW5naW5lVmVyc2lvbkV4aXN0cyhlbmdpbmVWZXJzaW9uKSkge1xuICAgICAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgPSB7IGVuZ2luZTogZW5naW5lVmVyc2lvbiwgZ2VuZXJhdG9yOiBlbmdpbmVWZXJzaW9uIH07XG4gICAgICAgICAgICBsb2dnZXIubG9nKGBVcGRhdGVkIHRvIHZlcnNpb24gJHtmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmV9YCk7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZUpzb24oZm9ybUpzb25QYXRoLCBmb3JtQ29uZmlnLCB7IHNwYWNlczogMiB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihg0JLQtdGA0YHQuNC4ICR7ZW5naW5lVmVyc2lvbn0g0L3QtSDRgdGD0YnQtdGB0YLQstGD0LXRgi5gKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlKFxuICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBnZnY6IHN0cmluZyxcbiAgICBsb2dnZXI6IElMb2dnZXJcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZvcm1EaXJQYXRoID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgZ2Z2KTtcbiAgICBjb25zdCBmb3JtSnNvblBhdGggPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybS5qc29uXCIpO1xuICAgIGlmICghKGF3YWl0IHBhdGhFeGlzdHMoZm9ybUpzb25QYXRoKSkpIHtcbiAgICAgICAgbG9nZ2VyLndhcm5pbmcoXCJmb3JtLmpzb24gZG9lcyBub3QgZXhpc3RzLiBVcGdyYWRlIHNraXBwZWQuXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGdlbmVyYXRlZEZvcm1EaXJlY3RvcnkgPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybVwiKTtcbiAgICBpZiAoIWlzTmV3Rm9ybUpzb25Gb3JtYXQoZm9ybUpzb25QYXRoKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBcItCk0LDQudC7IGZvcm0uanNvbiDRhNC+0YDQvNGLINC00L7Qu9C20LXQvSDQuNC80LXRgtGMINC90L7QstGL0Lkg0YTQvtGA0LzQsNGCINC30LDQstC40YHQuNC80L7RgdGC0LguINCe0LHRgNCw0YLQuNGC0LXRgdGMINC6INGA0LDRgdC30YDQsNCx0L7RgtGH0LjQutCw0Lwg0LfQsCDRgNCw0LfRitGP0YHQvdC10L3QuNGP0LzQuC5cIlxuICAgICAgICApO1xuICAgIH1cbiAgICBjb25zdCBmb3JtQ29uZmlnID0gYXdhaXQgcmVhZEZvcm1Db25maWcoZm9ybUpzb25QYXRoLCBnZXRMb2dnZXIoKSk7XG4gICAgaWYgKGZvcm1Db25maWcuYnVpbGQgIT09IFwiY2lcIikge1xuICAgICAgICBmb3JtQ29uZmlnLmJ1aWxkID0gXCJjaVwiO1xuICAgICAgICBhd2FpdCB3cml0ZUpzb24oZm9ybUpzb25QYXRoLCBmb3JtQ29uZmlnLCB7IHNwYWNlczogMiB9KTtcbiAgICAgICAgbG9nZ2VyLmxvZyhcIlVwZGF0ZWQgZm9ybS5qc29uXCIpO1xuICAgIH1cbiAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhnZW5lcmF0ZWRGb3JtRGlyZWN0b3J5KSkge1xuICAgICAgICBhd2FpdCByZW1vdmUoZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSk7XG4gICAgICAgIGxvZ2dlci5sb2coXCJSZW1vdmVkIGZvcm0gZGlyZWN0b3J5XCIpO1xuICAgIH1cbiAgICBjb25zdCBmb3JtR2l0SWdub3JlUGF0aCA9IHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCIuZ2l0aWdub3JlXCIpO1xuICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZvcm1HaXRJZ25vcmVQYXRoKSkge1xuICAgICAgICBjb25zdCBnaXRJZ25vcmVDb250ZW50ID0gYXdhaXQgcmVhZEZpbGUoZm9ybUdpdElnbm9yZVBhdGgsIFwidXRmOFwiKTtcbiAgICAgICAgaWYgKCFnaXRJZ25vcmVDb250ZW50LnNwbGl0KFwiXFxuXCIpLmluY2x1ZGVzKFwiZm9ybVwiKSkge1xuICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGZvcm1HaXRJZ25vcmVQYXRoLCBnaXRJZ25vcmVDb250ZW50LnRyaW1SaWdodCgpICsgXCJcXG5cIiArIFwiZm9ybVxcblwiKTtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJVcGRhdGVkIC5naXRpZ25vcmVcIik7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB3cml0ZUZpbGUoZm9ybUdpdElnbm9yZVBhdGgsIFwiZm9ybVxcblwiKTtcbiAgICAgICAgbG9nZ2VyLmxvZyhcIkNyZWF0ZWQgLmdpdGlnbm9yZVwiKTtcbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZ3JhZGVGb3JtUHJlcmVsZWFzZShcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgZ2Z2OiBzdHJpbmcsXG4gICAgcHJlaWQ6IHN0cmluZyxcbiAgICBsb2dnZXI6IElMb2dnZXJcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZvcm1EaXJQYXRoID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgZ2Z2KTtcbiAgICBjb25zdCBmb3JtSnNvblBhdGggPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybS5qc29uXCIpO1xuICAgIGNvbnN0IGZvcm1Db25maWcgPSBhd2FpdCByZWFkRm9ybUNvbmZpZyhmb3JtSnNvblBhdGgsIGxvZ2dlcik7XG4gICAgY29uc3QgcHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbiA9IGF3YWl0IGdldFByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24ocHJlaWQpO1xuXG4gICAgaWYgKHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzID0geyBlbmdpbmU6IHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24sIGdlbmVyYXRvcjogcHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbiB9O1xuICAgICAgICBsb2dnZXIubG9nKGBVcGRhdGVkIHRvIHByZXJlbGVhc2UgdmVyc2lvbiAke2Zvcm1Db25maWcuZGVwZW5kZW5jaWVzLmVuZ2luZX1gKTtcbiAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGDQktC10YDRgdC40LggJHtwcmVpZH0g0L3QtSDRgdGD0YnQtdGB0YLQstGD0LXRgi5gKTtcbiAgICB9XG59XG4iXX0=
|
|
178
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9VcGdyYWRlRm9ybS9SdW5VcGdyYWRlRm9ybS50cyJdLCJuYW1lcyI6WyJydW5VcGdyYWRlRm9ybSIsImNvbnRleHQiLCJvcHRpb25zIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZmFybURpcmVjdG9yeSIsImZvcm1HbG9icyIsIkZvcm1HbG9icyIsInZhbGlkYXRlR2xvYnMiLCJyZXNvbHZlU3BlY2lmaWVycyIsImdmdiIsInJlc29sdmVHbG9ic1RvR2Z2cyIsImxvZ2dlciIsIndpdGhQcmVmaXgiLCJ1c2VDaUJ1aWxkIiwibG9nIiwidXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlIiwiZW5naW5lIiwidW5kZWZpbmVkIiwidXBncmFkZUZvcm1FbmdpbmUiLCJza2lwUHJlVmVyc2lvbnMiLCJwcmVpZCIsInVwZ3JhZGVGb3JtUHJlcmVsZWFzZSIsImVuZ2luZVZlcnNpb24iLCJmb3JtRGlyUGF0aCIsInBhdGgiLCJqb2luIiwiZm9ybUpzb25QYXRoIiwid2FybmluZyIsImZvcm1Db25maWciLCJkZXBlbmRlbmNpZXMiLCJnZW5lcmF0b3IiLCJlbmdpbmVWZXJzaW9uU3BlYyIsImdlbmVyYXRvclZlcnNpb25TcGVjIiwidHlwZSIsInRlc3QiLCJ2ZXJzaW9uIiwibW9kZSIsInNwYWNlcyIsIkVycm9yIiwiZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSIsImJ1aWxkIiwiZm9ybUdpdElnbm9yZVBhdGgiLCJnaXRJZ25vcmVDb250ZW50Iiwic3BsaXQiLCJpbmNsdWRlcyIsInRyaW1SaWdodCIsInByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFFQTs7QUFNQTs7QUFFQTs7QUFFQTs7QUFDQTs7Ozs7O0FBSU8sZUFBZUEsY0FBZixDQUNIQyxPQURHLEVBRUhDLE9BRkcsRUFHSEMsa0JBSEcsRUFJSEMsYUFKRyxFQUtVO0FBQ2IsUUFBTUMsU0FBUyxHQUFH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QUkwQix5QkFBeUIsSUFBSTdCLFNBQWpDLEVBQTRDO0FBQ3hDVyxJQUFBQSxVQUFVLENBQUNDLFlBQVgsR0FBMEI7QUFBRWIsTUFBQUEsTUFBTSxFQUFFOEIseUJBQVY7QUFBcUNoQixNQUFBQSxTQUFTLEVBQUVnQjtBQUFoRCxLQUExQjtBQUNBbkMsSUFBQUEsTUFBTSxDQUFDRyxHQUFQLENBQVksaUNBQWdDYyxVQUFVLENBQUNDLFlBQVgsQ0FBd0JiLE1BQU8sRUFBM0U7QUFDQSxVQUFNLHdCQUFVVSxZQUFWLEVBQXdCRSxVQUF4QixFQUFvQztBQUFFUyxNQUFBQSxNQUFNLEVBQUU7QUFBVixLQUFwQyxDQUFOO0FBQ0gsR0FKRCxNQUlPO0FBQ0gsVUFBTSxJQUFJQyxLQUFKLENBQVcsVUFBU2xCLEtBQU0saUJBQTFCLENBQU47QUFDSDtBQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBwYXRoRXhpc3RzLCByZWFkRmlsZSwgcmVtb3ZlLCB3cml0ZUZpbGUsIHdyaXRlSnNvbiB9IGZyb20gXCJmcy1leHRyYVwiO1xuXG5pbXBvcnQge1xuICAgIGdldExhc3RTdGFibGVFbmdpbmVWZXJzaW9uLFxuICAgIGdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uLFxuICAgIGdldFByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24sXG4gICAgaXNFbmdpbmVWZXJzaW9uRXhpc3RzLFxufSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IGlzTmV3Rm9ybUpzb25Gb3JtYXQsIHJlYWRGb3JtQ29uZmlnIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUmVzb2x2ZUZvcm1JbmZvXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IEZvcm1HbG9icyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0Zvcm1HbG9ic1V0aWxzXCI7XG5pbXBvcnQgeyBJTG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9JTG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuaW1wb3J0IHsgcGFyc2VDYW5keVZlcnNpb25TcGVjIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvVmVyc2lvblwiO1xuXG5pbXBvcnQgeyBVcGdyYWRlRm9ybU9wdGlvbnMgfSBmcm9tIFwiLi9VcGdyYWRlRm9ybU9wdGlvbnNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1blVwZ3JhZGVGb3JtKFxuICAgIGNvbnRleHQ6IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQsXG4gICAgb3B0aW9uczogVXBncmFkZUZvcm1PcHRpb25zLFxuICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZ1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZm9ybUdsb2JzID0gYXdhaXQgRm9ybUdsb2JzLnZhbGlkYXRlR2xvYnMoXG4gICAgICAgIGF3YWl0IEZvcm1HbG9icy5yZXNvbHZlU3BlY2lmaWVycyhvcHRpb25zLmZvcm1HbG9icywgZmFybURpcmVjdG9yeSksXG4gICAgICAgIGZhcm1EaXJlY3RvcnlcbiAgICApO1xuICAgIGZvciAoY29uc3QgZ2Z2IG9mIGF3YWl0IEZvcm1HbG9icy5yZXNvbHZlR2xvYnNUb0dmdnMoZm9ybUdsb2JzLCBmYXJtRGlyZWN0b3J5KSkge1xuICAgICAgICBjb25zdCBsb2dnZXIgPSBjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KGBGT1JNOiR7Z2Z2fWApO1xuICAgICAgICBpZiAob3B0aW9ucy51c2VDaUJ1aWxkKSB7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiQmVnaW4gdXBncmFkaW5nIGJ1aWxkIG1vZGVcIik7XG4gICAgICAgICAgICBhd2FpdCB1cGdyYWRlRm9ybVRvQ2lCdWlsZE1vZGUocmVzb3VyY2VzRGlyZWN0b3J5LCBmYXJtRGlyZWN0b3J5LCBnZnYsIGxvZ2dlcik7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiRmluaXNoIHVwZ3JhZGluZyBidWlsZCBtb2RlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmVuZ2luZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJCZWdpbiB1cGdyYWRpbmcgZW5naW5lIHZlcnNpb25cIik7XG4gICAgICAgICAgICBhd2FpdCB1cGdyYWRlRm9ybUVuZ2luZShmYXJtRGlyZWN0b3J5LCBnZnYsIG9wdGlvbnMuZW5naW5lLCBvcHRpb25zLnNraXBQcmVWZXJzaW9ucywgbG9nZ2VyKTtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJGaW5pc2ggdXBncmFkaW5nIGVuZ2luZSB2ZXJzaW9uXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLnByZWlkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkJlZ2luIHVwZ3JhZGluZyBlbmdpbmUgdmVyc2lvblwiKTtcbiAgICAgICAgICAgIGF3YWl0IHVwZ3JhZGVGb3JtUHJlcmVsZWFzZShmYXJtRGlyZWN0b3J5LCBnZnYsIG9wdGlvbnMucHJlaWQsIGxvZ2dlcik7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiRmluaXNoIHVwZ3JhZGluZyBlbmdpbmUgdmVyc2lvblwiKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBncmFkZUZvcm1FbmdpbmUoXG4gICAgZmFybURpcmVjdG9yeTogc3RyaW5nLFxuICAgIGdmdjogc3RyaW5nLFxuICAgIGVuZ2luZVZlcnNpb246IHN0cmluZyxcbiAgICBza2lwUHJlVmVyc2lvbnM6IGJvb2xlYW4sXG4gICAgbG9nZ2VyOiBJTG9nZ2VyXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGdmdik7XG4gICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm0uanNvblwiKTtcbiAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgIGxvZ2dlci53YXJuaW5nKFwiRm9ybSBkb2VzIG5vdCBoYXZlIGZvcm0uanNvbjogVXBncmFkZSBza2lwcGVkXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZvcm1Db25maWcgPSBhd2FpdCByZWFkRm9ybUNvbmZpZyhmb3JtSnNvblBhdGgsIGxvZ2dlcik7XG4gICAgaWYgKHNraXBQcmVWZXJzaW9ucykge1xuICAgICAgICBpZiAoZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmVuZ2luZSAhPSB1bmRlZmluZWQgJiYgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmdlbmVyYXRvciAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuZ2luZVZlcnNpb25TcGVjID0gcGFyc2VDYW5keVZlcnNpb25TcGVjKGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5lbmdpbmUpO1xuICAgICAgICAgICAgY29uc3QgZ2VuZXJhdG9yVmVyc2lvblNwZWMgPSBwYXJzZUNhbmR5VmVyc2lvblNwZWMoZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmdlbmVyYXRvcik7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgZW5naW5lVmVyc2lvblNwZWMudHlwZSA9PT0gXCJwcmVcIiB8fFxuICAgICAgICAgICAgICAgIGdlbmVyYXRvclZlcnNpb25TcGVjLnR5cGUgPT09IFwicHJlXCIgfHxcbiAgICAgICAgICAgICAgICAoZW5naW5lVmVyc2lvblNwZWMudHlwZSA9PT0gXCJ2ZXJzaW9uXCIgJiYgL1thLXpBLVpdLy50ZXN0KGVuZ2luZVZlcnNpb25TcGVjLnZlcnNpb24pKSB8fFxuICAgICAgICAgICAgICAgIChnZW5lcmF0b3JWZXJzaW9uU3BlYy50eXBlID09PSBcInZlcnNpb25cIiAmJiAvW2EtekEtWl0vLnRlc3QoZ2VuZXJhdG9yVmVyc2lvblNwZWMudmVyc2lvbikpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIubG9nKFxuICAgICAgICAgICAgICAgICAgICBcIkZvcm0gdmVyc2lvbiBoYXMgcHJlcmVsZWFzZSB2ZXJzaW9uOiBVcGdyYWRlIHNraXBwZWQgZHVlIHRvIGZsYWcgc2tpcFByZVZlcnNpb25zICgtLXNraXAtcHJlLXZlcnNpb25zKSBzcGVjaWZpZWRcIlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChmb3JtQ29uZmlnLm1vZGUgPT09IFwibm8tZWRpdG9yXCIpIHtcbiAgICAgICAgbG9nZ2VyLmxvZyhcIkZvcm0gZG9lcyBub3QgaGF2ZSBlZGl0b3I6IFVwZ3JhZGUgc2tpcHBlZFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZm9ybUNvbmZpZy5tb2RlID09PSBcImNvcHktbGVnYWN5LXByZWJ1aWx0LXJlc291cmNlc1wiKSB7XG4gICAgICAgIGxvZ2dlci5sb2coXCJGb3JtIGRvZXMgbm90IGhhdmUgZWRpdG9yOiBVcGdyYWRlIHNraXBwZWRcIik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGVuZ2luZVZlcnNpb24gPT09IFwibGF0ZXN0XCIpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgPSB7XG4gICAgICAgICAgICBlbmdpbmU6IGF3YWl0IGdldExhc3RTdGFibGVFbmdpbmVWZXJzaW9uKCksXG4gICAgICAgICAgICBnZW5lcmF0b3I6IGF3YWl0IGdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uKCksXG4gICAgICAgIH07XG4gICAgICAgIGxvZ2dlci5sb2coYFVwZGF0ZWQgdG8gbGFzdCBzdGFibGUgdmVyc2lvbiAke2Zvcm1Db25maWcuZGVwZW5kZW5jaWVzLmVuZ2luZX1gKTtcbiAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGF3YWl0IGlzRW5naW5lVmVyc2lvbkV4aXN0cyhlbmdpbmVWZXJzaW9uKSkge1xuICAgICAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgPSB7IGVuZ2luZTogZW5naW5lVmVyc2lvbiwgZ2VuZXJhdG9yOiBlbmdpbmVWZXJzaW9uIH07XG4gICAgICAgICAgICBsb2dnZXIubG9nKGBVcGRhdGVkIHRvIHZlcnNpb24gJHtmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmV9YCk7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZUpzb24oZm9ybUpzb25QYXRoLCBmb3JtQ29uZmlnLCB7IHNwYWNlczogMiB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihg0JLQtdGA0YHQuNC4ICR7ZW5naW5lVmVyc2lvbn0g0L3QtSDRgdGD0YnQtdGB0YLQstGD0LXRgi5gKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlKFxuICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBnZnY6IHN0cmluZyxcbiAgICBsb2dnZXI6IElMb2dnZXJcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZvcm1EaXJQYXRoID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgZ2Z2KTtcbiAgICBjb25zdCBmb3JtSnNvblBhdGggPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybS5qc29uXCIpO1xuICAgIGlmICghKGF3YWl0IHBhdGhFeGlzdHMoZm9ybUpzb25QYXRoKSkpIHtcbiAgICAgICAgbG9nZ2VyLndhcm5pbmcoXCJmb3JtLmpzb24gZG9lcyBub3QgZXhpc3RzLiBVcGdyYWRlIHNraXBwZWQuXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGdlbmVyYXRlZEZvcm1EaXJlY3RvcnkgPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybVwiKTtcbiAgICBpZiAoIWlzTmV3Rm9ybUpzb25Gb3JtYXQoZm9ybUpzb25QYXRoKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBcItCk0LDQudC7IGZvcm0uanNvbiDRhNC+0YDQvNGLINC00L7Qu9C20LXQvSDQuNC80LXRgtGMINC90L7QstGL0Lkg0YTQvtGA0LzQsNGCINC30LDQstC40YHQuNC80L7RgdGC0LguINCe0LHRgNCw0YLQuNGC0LXRgdGMINC6INGA0LDRgdC30YDQsNCx0L7RgtGH0LjQutCw0Lwg0LfQsCDRgNCw0LfRitGP0YHQvdC10L3QuNGP0LzQuC5cIlxuICAgICAgICApO1xuICAgIH1cbiAgICBjb25zdCBmb3JtQ29uZmlnID0gYXdhaXQgcmVhZEZvcm1Db25maWcoZm9ybUpzb25QYXRoLCBnZXRMb2dnZXIoKSk7XG4gICAgaWYgKGZvcm1Db25maWcuYnVpbGQgIT09IFwiY2lcIikge1xuICAgICAgICBmb3JtQ29uZmlnLmJ1aWxkID0gXCJjaVwiO1xuICAgICAgICBhd2FpdCB3cml0ZUpzb24oZm9ybUpzb25QYXRoLCBmb3JtQ29uZmlnLCB7IHNwYWNlczogMiB9KTtcbiAgICAgICAgbG9nZ2VyLmxvZyhcIlVwZGF0ZWQgZm9ybS5qc29uXCIpO1xuICAgIH1cbiAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhnZW5lcmF0ZWRGb3JtRGlyZWN0b3J5KSkge1xuICAgICAgICBhd2FpdCByZW1vdmUoZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSk7XG4gICAgICAgIGxvZ2dlci5sb2coXCJSZW1vdmVkIGZvcm0gZGlyZWN0b3J5XCIpO1xuICAgIH1cbiAgICBjb25zdCBmb3JtR2l0SWdub3JlUGF0aCA9IHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCIuZ2l0aWdub3JlXCIpO1xuICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZvcm1HaXRJZ25vcmVQYXRoKSkge1xuICAgICAgICBjb25zdCBnaXRJZ25vcmVDb250ZW50ID0gYXdhaXQgcmVhZEZpbGUoZm9ybUdpdElnbm9yZVBhdGgsIFwidXRmOFwiKTtcbiAgICAgICAgaWYgKCFnaXRJZ25vcmVDb250ZW50LnNwbGl0KFwiXFxuXCIpLmluY2x1ZGVzKFwiZm9ybVwiKSkge1xuICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGZvcm1HaXRJZ25vcmVQYXRoLCBnaXRJZ25vcmVDb250ZW50LnRyaW1SaWdodCgpICsgXCJcXG5cIiArIFwiZm9ybVxcblwiKTtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJVcGRhdGVkIC5naXRpZ25vcmVcIik7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB3cml0ZUZpbGUoZm9ybUdpdElnbm9yZVBhdGgsIFwiZm9ybVxcblwiKTtcbiAgICAgICAgbG9nZ2VyLmxvZyhcIkNyZWF0ZWQgLmdpdGlnbm9yZVwiKTtcbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZ3JhZGVGb3JtUHJlcmVsZWFzZShcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgZ2Z2OiBzdHJpbmcsXG4gICAgcHJlaWQ6IHN0cmluZyxcbiAgICBsb2dnZXI6IElMb2dnZXJcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZvcm1EaXJQYXRoID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgZ2Z2KTtcbiAgICBjb25zdCBmb3JtSnNvblBhdGggPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybS5qc29uXCIpO1xuICAgIGNvbnN0IGZvcm1Db25maWcgPSBhd2FpdCByZWFkRm9ybUNvbmZpZyhmb3JtSnNvblBhdGgsIGxvZ2dlcik7XG4gICAgY29uc3QgcHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbiA9IGF3YWl0IGdldFByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24ocHJlaWQpO1xuXG4gICAgaWYgKHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzID0geyBlbmdpbmU6IHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24sIGdlbmVyYXRvcjogcHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbiB9O1xuICAgICAgICBsb2dnZXIubG9nKGBVcGRhdGVkIHRvIHByZXJlbGVhc2UgdmVyc2lvbiAke2Zvcm1Db25maWcuZGVwZW5kZW5jaWVzLmVuZ2luZX1gKTtcbiAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGDQktC10YDRgdC40LggJHtwcmVpZH0g0L3QtSDRgdGD0YnQtdGB0YLQstGD0LXRgi5gKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ToolsApiClient = void 0;
|
|
7
|
+
|
|
8
|
+
var _AuthenticationMode = require("../../../../Common/HttpClient/AuthenticationMode");
|
|
9
|
+
|
|
10
|
+
var _HttpClient = require("../../../../Common/HttpClient/HttpClient");
|
|
11
|
+
|
|
12
|
+
var _NodeFetch = require("../../../../Common/HttpClient/FetchImplementation/NodeFetch");
|
|
13
|
+
|
|
14
|
+
var _EndPoints = require("../../../../Common/EndPoints");
|
|
15
|
+
|
|
16
|
+
class ToolsApiClient {
|
|
17
|
+
constructor(baseUrl, resourceZone, authentication) {
|
|
18
|
+
this.httpClient = void 0;
|
|
19
|
+
this.httpClient = new _HttpClient.HttpClient(_NodeFetch.nodeFetch, baseUrl !== null && baseUrl !== void 0 ? baseUrl : _EndPoints.localCandyApi, (0, _AuthenticationMode.createAuthenticationProvider)(authentication), {
|
|
20
|
+
resourceZone: resourceZone
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async compileNormalizationRules(rules, normalizerId) {
|
|
25
|
+
return this.httpClient.post(this.getUrl("compile-normalization-rules")).withQueryParams({
|
|
26
|
+
normalizerId: normalizerId
|
|
27
|
+
}).withJsonBody(rules).json();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
getUrl(draftRelatedUrl) {
|
|
31
|
+
return `v1/tools/${draftRelatedUrl}`;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
exports.ToolsApiClient = ToolsApiClient;
|
|
37
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9Db21tb25zL0FwaUNsaWVudC9Ub29sc0FwaUNsaWVudC50cyJdLCJuYW1lcyI6WyJUb29sc0FwaUNsaWVudCIsImNvbnN0cnVjdG9yIiwiYmFzZVVybCIsInJlc291cmNlWm9uZSIsImF1dGhlbnRpY2F0aW9uIiwiaHR0cENsaWVudCIsIkh0dHBDbGllbnQiLCJub2RlRmV0Y2giLCJsb2NhbENhbmR5QXBpIiwiY29tcGlsZU5vcm1hbGl6YXRpb25SdWxlcyIsInJ1bGVzIiwibm9ybWFsaXplcklkIiwicG9zdCIsImdldFVybCIsIndpdGhRdWVyeVBhcmFtcyIsIndpdGhKc29uQm9keSIsImpzb24iLCJkcmFmdFJlbGF0ZWRVcmwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFPTyxNQUFNQSxjQUFOLENBQXFCO0FBR2pCQyxFQUFBQSxXQUFXLENBQUNDLE9BQUQsRUFBbUJDLFlBQW5CLEVBQTBDQyxjQUExQyxFQUErRTtBQUFBLFNBRmhGQyxVQUVnRjtBQUM3RixTQUFLQSxVQUFMLEdBQWtCLElBQUlDLHNCQUFKLENBQ2RDLG9CQURjLEVBRWRMLE9BRmMsYUFFZEEsT0FGYyxjQUVkQSxPQUZjLEdBRUhNLHdCQUZHLEVBR2Qsc0RBQTZCSixjQUE3QixDQUhjLEVBSWQ7QUFDSUQsTUFBQUEsWUFBWSxFQUFFQTtBQURsQixLQUpjLENBQWxCO0FBUUg7O0FBRXFDLFFBQXpCTSx5QkFBeUIsQ0FDbENDLEtBRGtDLEVBRWxDQyxZQUZrQyxFQUdNO0FBQ3hDLFdBQU8sS0FBS04sVUFBTCxDQUNGTyxJQURFLENBQ0csS0FBS0MsTUFBTCxDQUFZLDZCQUFaLENBREgsRUFFRkMsZUFGRSxDQUVjO0FBQUVILE1BQUFBLFlBQVksRUFBRUE7QUFBaEIsS0FGZCxFQUdGSSxZQUhFLENBR1dMLEtBSFgsRUFJRk0sSUFKRSxFQUFQO0FBS0g7O0FBRU9ILEVBQUFBLE1BQU0sQ0FBQ0ksZUFBRCxFQUFrQztBQUM1QyxXQUFRLFlBQVdBLGVBQWdCLEVBQW5DO0FBQ0g7O0FBM0J1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIdHRwQ2xpZW50IH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbi9IdHRwQ2xpZW50L0lIdHRwQ2xpZW50XCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGlvbk1vZGUsIGNyZWF0ZUF1dGhlbnRpY2F0aW9uUHJvdmlkZXIgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL0h0dHBDbGllbnQvQXV0aGVudGljYXRpb25Nb2RlXCI7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIi4uLy4uLy4uLy4uL0NvbW1vbi9IdHRwQ2xpZW50L0h0dHBDbGllbnRcIjtcbmltcG9ydCB7IG5vZGVGZXRjaCB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vSHR0cENsaWVudC9GZXRjaEltcGxlbWVudGF0aW9uL05vZGVGZXRjaFwiO1xuaW1wb3J0IHsgbG9jYWxDYW5keUFwaSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vRW5kUG9pbnRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcGlsZU5vcm1hbGl6YXRpb25SdWxlc1Jlc3VsdCB7XG4gICAgZGlhZ25vc3RpY01lc3NhZ2VzPzogc3RyaW5nW107XG4gICAgc291cmNlVGV4dD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFRvb2xzQXBpQ2xpZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHBDbGllbnQ6IElIdHRwQ2xpZW50O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGJhc2VVcmw/OiBzdHJpbmcsIHJlc291cmNlWm9uZT86IHN0cmluZywgYXV0aGVudGljYXRpb24/OiBBdXRoZW50aWNhdGlvbk1vZGUpIHtcbiAgICAgICAgdGhpcy5odHRwQ2xpZW50ID0gbmV3IEh0dHBDbGllbnQoXG4gICAgICAgICAgICBub2RlRmV0Y2gsXG4gICAgICAgICAgICBiYXNlVXJsID8/IGxvY2FsQ2FuZHlBcGksXG4gICAgICAgICAgICBjcmVhdGVBdXRoZW50aWNhdGlvblByb3ZpZGVyKGF1dGhlbnRpY2F0aW9uKSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZXNvdXJjZVpvbmU6IHJlc291cmNlWm9uZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgY29tcGlsZU5vcm1hbGl6YXRpb25SdWxlcyhcbiAgICAgICAgcnVsZXM6IHN0cmluZyxcbiAgICAgICAgbm9ybWFsaXplcklkPzogc3RyaW5nXG4gICAgKTogUHJvbWlzZTxDb21waWxlTm9ybWFsaXphdGlvblJ1bGVzUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZ2V0VXJsKFwiY29tcGlsZS1ub3JtYWxpemF0aW9uLXJ1bGVzXCIpKVxuICAgICAgICAgICAgLndpdGhRdWVyeVBhcmFtcyh7IG5vcm1hbGl6ZXJJZDogbm9ybWFsaXplcklkIH0pXG4gICAgICAgICAgICAud2l0aEpzb25Cb2R5KHJ1bGVzKVxuICAgICAgICAgICAgLmpzb248Q29tcGlsZU5vcm1hbGl6YXRpb25SdWxlc1Jlc3VsdD4oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFVybChkcmFmdFJlbGF0ZWRVcmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgdjEvdG9vbHMvJHtkcmFmdFJlbGF0ZWRVcmx9YDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -154,16 +154,18 @@ class BuildCache {
|
|
|
154
154
|
|
|
155
155
|
async existsFileCacheOrDownload(gfv, generatorVersion, depsHash) {
|
|
156
156
|
const filePath = this.getCacheFilePath(gfv, generatorVersion, depsHash);
|
|
157
|
-
this.logger.log(`Start search file
|
|
157
|
+
this.logger.log(`Start search file locally: ${filePath}`);
|
|
158
|
+
const filename = path.basename(filePath);
|
|
158
159
|
await (0, _fsExtra.ensureDir)(path.dirname(filePath));
|
|
159
160
|
|
|
160
161
|
if (await (0, _fsExtra.pathExists)(filePath)) {
|
|
161
|
-
this.logger.log(
|
|
162
|
+
this.logger.log("Found file in local directory");
|
|
162
163
|
return filePath;
|
|
163
164
|
} else {
|
|
164
165
|
try {
|
|
165
|
-
this.logger.log(
|
|
166
|
-
|
|
166
|
+
this.logger.log(`Cache file was not found locally: ${filePath}`);
|
|
167
|
+
this.logger.log(`Looking for cache in drive storage: ${filename}`);
|
|
168
|
+
const response = await (0, _nodeFetch.default)(`https://api.kontur.ru/drive/v1/public/${filename}`);
|
|
167
169
|
this.logger.log(`Drive response status code: ${response.status.toString()}`);
|
|
168
170
|
|
|
169
171
|
if (response.status === 200) {
|
|
@@ -171,9 +173,9 @@ class BuildCache {
|
|
|
171
173
|
return filePath;
|
|
172
174
|
} else {
|
|
173
175
|
if (response.status === 404) {
|
|
174
|
-
this.logger.error(
|
|
176
|
+
this.logger.error(`Cache file not found in drive storage: ${filename}. GFV: ${gfv}, GeneratorVersion: ${generatorVersion}, DependenciesHash: ${depsHash}`);
|
|
175
177
|
} else {
|
|
176
|
-
this.logger.error(`Drive storage
|
|
178
|
+
this.logger.error(`Drive storage sent ${response.status} status code, I don't process it in any way`);
|
|
177
179
|
}
|
|
178
180
|
|
|
179
181
|
return undefined;
|
|
@@ -190,4 +192,4 @@ class BuildCache {
|
|
|
190
192
|
}
|
|
191
193
|
|
|
192
194
|
exports.BuildCache = BuildCache;
|
|
193
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9Gb3JtV2VicGFja0NvbmZpZ3VyYXRpb24vQ2FjaGVBc3NldHNQbHVnaW4udHMiXSwibmFtZXMiOlsic2luZ2xlTGltaXQiLCJDYWNoZUFzc2V0c1BsdWdpbiIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsImFwcGx5IiwiY29tcGlsZXIiLCJob29rcyIsImVtaXQiLCJ0YXBQcm9taXNlIiwiY29tcGlsYXRpb24iLCJjYWNoZUl0ZW1zIiwiYXNzZXROYW1lIiwiT2JqZWN0Iiwia2V5cyIsImFzc2V0cyIsInNvdXJjZSIsIkJ1ZmZlciIsInR5cGUiLCJiYXNlNjRjb250ZW50IiwidG9TdHJpbmciLCJ1cGRhdGVGaWxlIiwiZmlsZVBhdGgiLCJwYXRoIiwicmVzb2x2ZSIsImNhY2hlRmlsZSIsImNvbnRlbnQiLCJKU09OIiwicGFyc2UiLCJkaXJuYW1lIiwic3RyaW5naWZ5IiwiQnVpbGRDYWNoZSIsImZhcm1EaXJlY3RvcnkiLCJtb2RlIiwibG9nZ2VyIiwid2l0aFByZWZpeCIsImV4dHJhY3QiLCJnZW5lcmF0b3JTb3VyY2UiLCJnZnYiLCJkZXBzSGFzaCIsInJlc291cmNlc0RpcmVjdG9yeSIsIkVycm9yIiwiZ2V0Q2FjaGVGaWxlUGF0aCIsInZlcnNpb24iLCJhc3NldFBhdGgiLCJjb250ZW50RWxlbWVudCIsImpvaW4iLCJmcm9tIiwiZXhpc3RzIiwiQnVpbGRDYWNoZU1vZGUiLCJEaXNhYmxlZCIsIkZvcmNlVXBkYXRlIiwiY2FjaGVkRmlsZVBhdGgiLCJleGlzdHNGaWxlQ2FjaGVPckRvd25sb2FkIiwidW5kZWZpbmVkIiwic2V0Q29udGVudCIsImZpbGVOYW1lIiwiZmlsZUNvbnRlbnQiLCJjYWNoZUZpbGVQYXRoIiwiY3JlYXRlV2VicGFja1BsdWdpbiIsIlJlYWRPbmx5IiwiZ2VuZXJhdG9yVmVyc2lvbiIsImxvZyIsInJlc3BvbnNlIiwiYmFzZW5hbWUiLCJzdGF0dXMiLCJidWZmZXIiLCJlcnJvciIsImUiXSwibWFw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Q0UsTUFBVCxDQUFnQjdDLFFBQWhCLEVBQTJCLEVBQTFFOztBQUNBLFlBQUkyQyxRQUFRLENBQUNFLE1BQVQsS0FBb0IsR0FBeEIsRUFBNkI7QUFDekIsZ0JBQU0sd0JBQVUzQyxRQUFWLEVBQW9CLE1BQU15QyxRQUFRLENBQUNHLE1BQVQsRUFBMUIsRUFBNkMsT0FBN0MsQ0FBTjtBQUNBLGlCQUFPNUMsUUFBUDtBQUNILFNBSEQsTUFHTztBQUNILGNBQUl5QyxRQUFRLENBQUNFLE1BQVQsS0FBb0IsR0FBeEIsRUFBNkI7QUFDekIsaUJBQUsvQixNQUFMLENBQVlpQyxLQUFaLENBQWtCLDJDQUFsQjtBQUNILFdBRkQsTUFFTztBQUNILGlCQUFLakMsTUFBTCxDQUFZaUMsS0FBWixDQUNLLHNCQUFxQkosUUFBUSxDQUFDRSxNQUFPLDZDQUQxQztBQUdIOztBQUNELGlCQUFPWCxTQUFQO0FBQ0g7QUFDSixPQWpCRCxDQWlCRSxPQUFPYyxDQUFQLEVBQVU7QUFDUixhQUFLbEMsTUFBTCxDQUFZaUMsS0FBWixDQUFrQix1Q0FBbEI7QUFDQSxhQUFLakMsTUFBTCxDQUFZaUMsS0FBWixDQUFrQix5Q0FBbEI7QUFDQSxhQUFLakMsTUFBTCxDQUFZaUMsS0FBWixDQUFrQkMsQ0FBbEI7QUFDQSxlQUFPZCxTQUFQO0FBQ0g7QUFDSjtBQUNKOztBQXhIbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IGVuc3VyZURpciwgcGF0aEV4aXN0cywgcmVhZEZpbGUsIHdyaXRlRmlsZSB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IG1kNSBmcm9tIFwibWQ1XCI7XG5pbXBvcnQgcExpbWl0IGZyb20gXCJwLWxpbWl0XCI7XG5pbXBvcnQgd2VicGFjayBmcm9tIFwid2VicGFja1wiO1xuaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCI7XG5cbmltcG9ydCB7IEdlbmVyYXRvclNvdXJjZSB9IGZyb20gXCIuLi9CdWlsZFRhc2tzL0dlbmVyYXRvci9BY3F1aXJlRm9ybUdlbmVyYXRvclwiO1xuaW1wb3J0IHsgQnVpbGRDYWNoZU1vZGUgfSBmcm9tIFwiLi4vQ0xJQ29tbWFuZHMvQnVpbGRGb3Jtcy9CdWlsZENhY2hlTW9kZVwiO1xuaW1wb3J0IHsgcmVqZWN0IH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbi9UeXBpbmdVdGlsc1wiO1xuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuLi9Db21tb25zL0xvZ2dpbmcvSUxvZ2dlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIi4uL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcblxuaW50ZXJmYWNlIENhY2hlQXNzZXRzUGx1Z2luT3B0aW9ucyB7XG4gICAgY2FjaGVGaWxlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUJ1aWxkQ2FjaGVPcHRpb25zIHtcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgbW9kZTogQnVpbGRDYWNoZU1vZGU7XG4gICAgZ2VuZXJhdG9yVmVyc2lvbjogc3RyaW5nO1xuICAgIGdmdjogc3RyaW5nO1xuICAgIGRlcHNIYXNoOiBzdHJpbmc7XG59XG5cbmNvbnN0IHNpbmdsZUxpbWl0ID0gcExpbWl0KDEpO1xuXG5pbnRlcmZhY2UgQnVpbGRSZXN1bHRzU2VyaWFsaXplZCB7XG4gICAgW3BhdGg6IHN0cmluZ106IHN0cmluZyB8IHsgdHlwZTogXCJCdWZmZXJcIjsgYmFzZTY0Y29udGVudDogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBjbGFzcyBDYWNoZUFzc2V0c1BsdWdpbiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBDYWNoZUFzc2V0c1BsdWdpbk9wdGlvbnM7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0aW9uczogQ2FjaGVBc3NldHNQbHVnaW5PcHRpb25zKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGFwcGx5KGNvbXBpbGVyOiB3ZWJwYWNrLkNvbXBpbGVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbXBpbGVyLmhvb2tzLmVtaXQudGFwUHJvbWlzZShcIkNhY2hlQXNzZXRzUGx1Z2luXCIsIGNvbXBpbGF0aW9uID0+XG4gICAgICAgICAgICBzaW5nbGVMaW1pdChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2FjaGVJdGVtczogQnVpbGRSZXN1bHRzU2VyaWFsaXplZCA9IHt9O1xuICAgICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby11bnNhZmUtYW55XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBhc3NldE5hbWUgb2YgT2JqZWN0LmtleXMoY29tcGlsYXRpb24uYXNzZXRzKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5zYWZlLWFueVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2U6IHN0cmluZyB8IEJ1ZmZlciA9IGNvbXBpbGF0aW9uLmFzc2V0c1thc3NldE5hbWVdPy5zb3VyY2UoKSA/PyByZWplY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIEJ1ZmZlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVJdGVtc1thc3NldE5hbWVdID0geyB0eXBlOiBcIkJ1ZmZlclwiLCBiYXNlNjRjb250ZW50OiBzb3VyY2UudG9TdHJpbmcoXCJiYXNlNjRcIikgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlSXRlbXNbYXNzZXROYW1lXSA9IHNvdXJjZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZUZpbGUoY2FjaGVJdGVtcyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgdXBkYXRlRmlsZShjYWNoZUl0ZW1zOiBCdWlsZFJlc3VsdHNTZXJpYWxpemVkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5yZXNvbHZlKHRoaXMub3B0aW9ucy5jYWNoZUZpbGUpO1xuICAgICAgICBsZXQgY29udGVudDogQnVpbGRSZXN1bHRzU2VyaWFsaXplZCA9IChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSlcbiAgICAgICAgICAgID8gLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLXVuc2FmZS1hbnlcbiAgICAgICAgICAgICAgSlNPTi5wYXJzZShhd2FpdCByZWFkRmlsZShmaWxlUGF0aCwgXCJ1dGYtOFwiKSlcbiAgICAgICAgICAgIDoge307XG4gICAgICAgIGNvbnRlbnQgPSB7XG4gICAgICAgICAgICAuLi5jb250ZW50LFxuICAgICAgICAgICAgLi4uY2FjaGVJdGVtcyxcbiAgICAgICAgfTtcbiAgICAgICAgYXdhaXQgZW5zdXJlRGlyKHBhdGguZGlybmFtZShmaWxlUGF0aCkpO1xuICAgICAgICBhd2FpdCB3cml0ZUZpbGUoZmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KGNvbnRlbnQpLCBcInV0Zi04XCIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJ1aWxkQ2FjaGUge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmFybURpcmVjdG9yeTogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kZTogQnVpbGRDYWNoZU1vZGU7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IElMb2dnZXI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZmFybURpcmVjdG9yeTogc3RyaW5nLCBtb2RlOiBCdWlsZENhY2hlTW9kZSkge1xuICAgICAgICB0aGlzLmZhcm1EaXJlY3RvcnkgPSBmYXJtRGlyZWN0b3J5O1xuICAgICAgICB0aGlzLm1vZGUgPSBtb2RlO1xuICAgICAgICB0aGlzLmxvZ2dlciA9IGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJCVUlMRF9DQUNIRVwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZXh0cmFjdChcbiAgICAgICAgZ2VuZXJhdG9yU291cmNlOiBHZW5lcmF0b3JTb3VyY2UsXG4gICAgICAgIGdmdjogc3RyaW5nLFxuICAgICAgICBkZXBzSGFzaDogc3RyaW5nLFxuICAgICAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZ1xuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoZ2VuZXJhdG9yU291cmNlLnR5cGUgPT09IFwiR2VuZXJhdG9yU291cmNlc1wiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJMb2NhbCBnZW5lcmF0b3IgZG9lcyBub3Qgc3VwcG9ydHMgY2FjaGluZ1wiKTtcbiAgICAgICAgfVxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5zYWZlLWFueVxuICAgICAgICBjb25zdCBjb250ZW50OiBCdWlsZFJlc3VsdHNTZXJpYWxpemVkID0gSlNPTi5wYXJzZShcbiAgICAgICAgICAgIGF3YWl0IHJlYWRGaWxlKHRoaXMuZ2V0Q2FjaGVGaWxlUGF0aChnZnYsIGdlbmVyYXRvclNvdXJjZS52ZXJzaW9uLCBkZXBzSGFzaCksIFwidXRmLThcIilcbiAgICAgICAgKTtcbiAgICAgICAgZm9yIChjb25zdCBhc3NldFBhdGggb2YgT2JqZWN0LmtleXMoY29udGVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRFbGVtZW50ID0gY29udGVudFthc3NldFBhdGhdID8/IHJlamVjdCgpO1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBhc3NldFBhdGgpO1xuICAgICAgICAgICAgYXdhaXQgZW5zdXJlRGlyKHBhdGguZGlybmFtZShmaWxlUGF0aCkpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50RWxlbWVudCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShmaWxlUGF0aCwgY29udGVudEVsZW1lbnQsIFwidXRmOFwiKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGZpbGVQYXRoLCBCdWZmZXIuZnJvbShjb250ZW50RWxlbWVudC5iYXNlNjRjb250ZW50LCBcImJhc2U2NFwiKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZXhpc3RzKGdlbmVyYXRvclNvdXJjZTogR2VuZXJhdG9yU291cmNlLCBnZnY6IHN0cmluZywgZGVwc0hhc2g6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBpZiAoZ2VuZXJhdG9yU291cmNlLnR5cGUgPT09IFwiR2VuZXJhdG9yU291cmNlc1wiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJMb2NhbCBnZW5lcmF0b3IgZG9lcyBub3Qgc3VwcG9ydHMgY2FjaGluZ1wiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tb2RlID09PSBCdWlsZENhY2hlTW9kZS5EaXNhYmxlZCB8fCB0aGlzLm1vZGUgPT09IEJ1aWxkQ2FjaGVNb2RlLkZvcmNlVXBkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FjaGVkRmlsZVBhdGggPSBhd2FpdCB0aGlzLmV4aXN0c0ZpbGVDYWNoZU9yRG93bmxvYWQoZ2Z2LCBnZW5lcmF0b3JTb3VyY2UudmVyc2lvbiwgZGVwc0hhc2gpO1xuICAgICAgICByZXR1cm4gY2FjaGVkRmlsZVBhdGggIT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZXRDb250ZW50KFxuICAgICAgICBnZW5lcmF0b3JTb3VyY2U6IHN0cmluZyxcbiAgICAgICAgZ2Z2OiBzdHJpbmcsXG4gICAgICAgIGRlcHNIYXNoOiBzdHJpbmcsXG4gICAgICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgICAgICBmaWxlTmFtZTogc3RyaW5nLFxuICAgICAgICBmaWxlQ29udGVudDogc3RyaW5nXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGNhY2hlRmlsZVBhdGggPSB0aGlzLmdldENhY2hlRmlsZVBhdGgoZ2Z2LCBnZW5lcmF0b3JTb3VyY2UsIGRlcHNIYXNoKTtcbiAgICAgICAgaWYgKCEoYXdhaXQgcGF0aEV4aXN0cyhjYWNoZUZpbGVQYXRoKSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5zYWZlLWFueVxuICAgICAgICBsZXQgY29udGVudDogQnVpbGRSZXN1bHRzU2VyaWFsaXplZCA9IEpTT04ucGFyc2UoYXdhaXQgcmVhZEZpbGUoY2FjaGVGaWxlUGF0aCwgXCJ1dGYtOFwiKSk7XG4gICAgICAgIGNvbnRlbnQgPSB7XG4gICAgICAgICAgICAuLi5jb250ZW50LFxuICAgICAgICAgICAgW2ZpbGVOYW1lXTogZmlsZUNvbnRlbnQsXG4gICAgICAgIH07XG4gICAgICAgIGF3YWl0IGVuc3VyZURpcihwYXRoLmRpcm5hbWUoY2FjaGVGaWxlUGF0aCkpO1xuICAgICAgICBhd2FpdCB3cml0ZUZpbGUoY2FjaGVGaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoY29udGVudCksIFwidXRmLThcIik7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGNyZWF0ZVdlYnBhY2tQbHVnaW4ob3B0aW9uczogRm9ybUJ1aWxkQ2FjaGVPcHRpb25zKTogUHJvbWlzZTxDYWNoZUFzc2V0c1BsdWdpbiB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBpZiAob3B0aW9ucy5tb2RlID09PSBCdWlsZENhY2hlTW9kZS5EaXNhYmxlZCB8fCBvcHRpb25zLm1vZGUgPT09IEJ1aWxkQ2FjaGVNb2RlLlJlYWRPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNhY2hlZEZpbGVQYXRoID0gdGhpcy5nZXRDYWNoZUZpbGVQYXRoKG9wdGlvbnMuZ2Z2LCBvcHRpb25zLmdlbmVyYXRvclZlcnNpb24sIG9wdGlvbnMuZGVwc0hhc2gpO1xuICAgICAgICByZXR1cm4gbmV3IENhY2hlQXNzZXRzUGx1Z2luKHtcbiAgICAgICAgICAgIGNhY2hlRmlsZTogY2FjaGVkRmlsZVBhdGgsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q2FjaGVGaWxlUGF0aChnZnY6IHN0cmluZywgZ2VuZXJhdG9yVmVyc2lvbjogc3RyaW5nLCBkZXBzSGFzaDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBgJHttZDUoZ2Z2KX0tJHttZDUoZ2VuZXJhdG9yVmVyc2lvbil9LSR7ZGVwc0hhc2h9LnppcGA7XG4gICAgICAgIHJldHVybiBwYXRoLmpvaW4odGhpcy5mYXJtRGlyZWN0b3J5LCBcIi5idWlsZC1jYWNoZVwiLCBcImNvbXBpbGVcIiwgZmlsZU5hbWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgZXhpc3RzRmlsZUNhY2hlT3JEb3dubG9hZChcbiAgICAgICAgZ2Z2OiBzdHJpbmcsXG4gICAgICAgIGdlbmVyYXRvclZlcnNpb246IHN0cmluZyxcbiAgICAgICAgZGVwc0hhc2g6IHN0cmluZ1xuICAgICk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5nZXRDYWNoZUZpbGVQYXRoKGdmdiwgZ2VuZXJhdG9yVmVyc2lvbiwgZGVwc0hhc2gpO1xuICAgICAgICB0aGlzLmxvZ2dlci5sb2coYFN0YXJ0IHNlYXJjaCBmaWxlIGluIGxvY2FsICR7ZmlsZVBhdGh9YCk7XG4gICAgICAgIGF3YWl0IGVuc3VyZURpcihwYXRoLmRpcm5hbWUoZmlsZVBhdGgpKTtcbiAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5sb2coYEZvdW5kIGZpbGUgaW4gbG9jYWwgZGlyZWN0b3J5YCk7XG4gICAgICAgICAgICByZXR1cm4gZmlsZVBhdGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmxvZyhcIlRoZSBjYWNoZSBmaWxlIHdhcyBub3QgZm91bmQgaW4gdGhlIGxvY2FsIGRpcmVjdG9yeSBJbSBsb29raW5nIGZvciBpdCBpbiBkcml2ZVwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGBodHRwczovL2FwaS5rb250dXIucnUvZHJpdmUvdjEvcHVibGljLyR7cGF0aC5iYXNlbmFtZShmaWxlUGF0aCl9YCk7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIubG9nKGBEcml2ZSByZXNwb25zZSBzdGF0dXMgY29kZTogJHtyZXNwb25zZS5zdGF0dXMudG9TdHJpbmcoKX1gKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGZpbGVQYXRoLCBhd2FpdCByZXNwb25zZS5idWZmZXIoKSwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbGVQYXRoO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXCJUaGUgY2FjaGUgZmlsZSBub3QgZm91bmQgaW4gZHJpdmUgc3RvcmFnZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBEcml2ZSBzdG9yYWdlIHNlbmQgJHtyZXNwb25zZS5zdGF0dXN9IHN0YXR1cyBjb2RlLCBJIGRvbid0IHByb2Nlc3MgaXQgaW4gYW55IHdheWBcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXCJEcml2ZSBzdG9yYWdlIHJlc3BvbmRlZCB3aXRoIGFuIGVycm9yXCIpO1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFwiVGhlIGJ1aWxkIHdpbGwgY29udGludWUgd2l0aG91dCBhIGNhY2hlXCIpO1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
195
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9Gb3JtV2VicGFja0NvbmZpZ3VyYXRpb24vQ2FjaGVBc3NldHNQbHVnaW4udHMiXSwibmFtZXMiOlsic2luZ2xlTGltaXQiLCJDYWNoZUFzc2V0c1BsdWdpbiIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsImFwcGx5IiwiY29tcGlsZXIiLCJob29rcyIsImVtaXQiLCJ0YXBQcm9taXNlIiwiY29tcGlsYXRpb24iLCJjYWNoZUl0ZW1zIiwiYXNzZXROYW1lIiwiT2JqZWN0Iiwia2V5cyIsImFzc2V0cyIsInNvdXJjZSIsIkJ1ZmZlciIsInR5cGUiLCJiYXNlNjRjb250ZW50IiwidG9TdHJpbmciLCJ1cGRhdGVGaWxlIiwiZmlsZVBhdGgiLCJwYXRoIiwicmVzb2x2ZSIsImNhY2hlRmlsZSIsImNvbnRlbnQiLCJKU09OIiwicGFyc2UiLCJkaXJuYW1lIiwic3RyaW5naWZ5IiwiQnVpbGRDYWNoZSIsImZhcm1EaXJlY3RvcnkiLCJtb2RlIiwibG9nZ2VyIiwid2l0aFByZWZpeCIsImV4dHJhY3QiLCJnZW5lcmF0b3JTb3VyY2UiLCJnZnYiLCJkZXBzSGFzaCIsInJlc291cmNlc0RpcmVjdG9yeSIsIkVycm9yIiwiZ2V0Q2FjaGVGaWxlUGF0aCIsInZlcnNpb24iLCJhc3NldFBhdGgiLCJjb250ZW50RWxlbWVudCIsImpvaW4iLCJmcm9tIiwiZXhpc3RzIiwiQnVpbGRDYWNoZU1vZGUiLCJEaXNhYmxlZCIsIkZvcmNlVXBkYXRlIiwiY2FjaGVkRmlsZVBhdGgiLCJleGlzdHNGaWxlQ2FjaGVPckRvd25sb2FkIiwidW5kZWZpbmVkIiwic2V0Q29udGVudCIsImZpbGVOYW1lIiwiZmlsZUNvbnRlbnQiLCJjYWNoZUZpbGVQYXRoIiwiY3JlYXRlV2VicGFja1BsdWdpbiIsIlJlYWRPbmx5IiwiZ2VuZXJhdG9yVmVyc2lvbiIsImxvZyIsImZpbGVuYW1lIiwiYmFzZW5hbWUiLCJyZXNwb25zZSIsInN0YXR1cyIsImJ1ZmZlciIsImVycm9y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Q0EsY0FBTUUsUUFBUSxHQUFHLE1BQU0sd0JBQU8seUNBQXdDRixRQUFTLEVBQXhELENBQXZCO0FBQ0EsYUFBSzdCLE1BQUwsQ0FBWTRCLEdBQVosQ0FBaUIsK0JBQThCRyxRQUFRLENBQUNDLE1BQVQsQ0FBZ0I5QyxRQUFoQixFQUEyQixFQUExRTs7QUFDQSxZQUFJNkMsUUFBUSxDQUFDQyxNQUFULEtBQW9CLEdBQXhCLEVBQTZCO0FBQ3pCLGdCQUFNLHdCQUFVNUMsUUFBVixFQUFvQixNQUFNMkMsUUFBUSxDQUFDRSxNQUFULEVBQTFCLEVBQTZDLE9BQTdDLENBQU47QUFDQSxpQkFBTzdDLFFBQVA7QUFDSCxTQUhELE1BR087QUFDSCxjQUFJMkMsUUFBUSxDQUFDQyxNQUFULEtBQW9CLEdBQXhCLEVBQTZCO0FBQ3pCLGlCQUFLaEMsTUFBTCxDQUFZa0MsS0FBWixDQUNLLDBDQUF5Q0wsUUFBUyxVQUFTekIsR0FBSSx1QkFBc0J1QixnQkFBaUIsdUJBQXNCdEIsUUFBUyxFQUQxSTtBQUdILFdBSkQsTUFJTztBQUNILGlCQUFLTCxNQUFMLENBQVlrQyxLQUFaLENBQ0ssc0JBQXFCSCxRQUFRLENBQUNDLE1BQU8sNkNBRDFDO0FBR0g7O0FBQ0QsaUJBQU9aLFNBQVA7QUFDSDtBQUNKLE9BcEJELENBb0JFLE9BQU9lLENBQVAsRUFBVTtBQUNSLGFBQUtuQyxNQUFMLENBQVlrQyxLQUFaLENBQWtCLHVDQUFsQjtBQUNBLGFBQUtsQyxNQUFMLENBQVlrQyxLQUFaLENBQWtCLHlDQUFsQjtBQUNBLGFBQUtsQyxNQUFMLENBQVlrQyxLQUFaLENBQWtCQyxDQUFsQjtBQUNBLGVBQU9mLFNBQVA7QUFDSDtBQUNKO0FBQ0o7O0FBNUhtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgZW5zdXJlRGlyLCBwYXRoRXhpc3RzLCByZWFkRmlsZSwgd3JpdGVGaWxlIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgbWQ1IGZyb20gXCJtZDVcIjtcbmltcG9ydCBwTGltaXQgZnJvbSBcInAtbGltaXRcIjtcbmltcG9ydCB3ZWJwYWNrIGZyb20gXCJ3ZWJwYWNrXCI7XG5pbXBvcnQgZmV0Y2ggZnJvbSBcIm5vZGUtZmV0Y2hcIjtcblxuaW1wb3J0IHsgR2VuZXJhdG9yU291cmNlIH0gZnJvbSBcIi4uL0J1aWxkVGFza3MvR2VuZXJhdG9yL0FjcXVpcmVGb3JtR2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBCdWlsZENhY2hlTW9kZSB9IGZyb20gXCIuLi9DTElDb21tYW5kcy9CdWlsZEZvcm1zL0J1aWxkQ2FjaGVNb2RlXCI7XG5pbXBvcnQgeyByZWplY3QgfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9uL1R5cGluZ1V0aWxzXCI7XG5pbXBvcnQgeyBJTG9nZ2VyIH0gZnJvbSBcIi4uL0NvbW1vbnMvTG9nZ2luZy9JTG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiLi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuXG5pbnRlcmZhY2UgQ2FjaGVBc3NldHNQbHVnaW5PcHRpb25zIHtcbiAgICBjYWNoZUZpbGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtQnVpbGRDYWNoZU9wdGlvbnMge1xuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZztcbiAgICBtb2RlOiBCdWlsZENhY2hlTW9kZTtcbiAgICBnZW5lcmF0b3JWZXJzaW9uOiBzdHJpbmc7XG4gICAgZ2Z2OiBzdHJpbmc7XG4gICAgZGVwc0hhc2g6IHN0cmluZztcbn1cblxuY29uc3Qgc2luZ2xlTGltaXQgPSBwTGltaXQoMSk7XG5cbmludGVyZmFjZSBCdWlsZFJlc3VsdHNTZXJpYWxpemVkIHtcbiAgICBbcGF0aDogc3RyaW5nXTogc3RyaW5nIHwgeyB0eXBlOiBcIkJ1ZmZlclwiOyBiYXNlNjRjb250ZW50OiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGNsYXNzIENhY2hlQXNzZXRzUGx1Z2luIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IENhY2hlQXNzZXRzUGx1Z2luT3B0aW9ucztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYWNoZUFzc2V0c1BsdWdpbk9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgYXBwbHkoY29tcGlsZXI6IHdlYnBhY2suQ29tcGlsZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29tcGlsZXIuaG9va3MuZW1pdC50YXBQcm9taXNlKFwiQ2FjaGVBc3NldHNQbHVnaW5cIiwgY29tcGlsYXRpb24gPT5cbiAgICAgICAgICAgIHNpbmdsZUxpbWl0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjYWNoZUl0ZW1zOiBCdWlsZFJlc3VsdHNTZXJpYWxpemVkID0ge307XG4gICAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lIG5vLXVuc2FmZS1hbnlcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGFzc2V0TmFtZSBvZiBPYmplY3Qua2V5cyhjb21waWxhdGlvbi5hc3NldHMpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby11bnNhZmUtYW55XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZTogc3RyaW5nIHwgQnVmZmVyID0gY29tcGlsYXRpb24uYXNzZXRzW2Fzc2V0TmFtZV0/LnNvdXJjZSgpID8/IHJlamVjdCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUl0ZW1zW2Fzc2V0TmFtZV0gPSB7IHR5cGU6IFwiQnVmZmVyXCIsIGJhc2U2NGNvbnRlbnQ6IHNvdXJjZS50b1N0cmluZyhcImJhc2U2NFwiKSB9O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVJdGVtc1thc3NldE5hbWVdID0gc291cmNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlRmlsZShjYWNoZUl0ZW1zKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyB1cGRhdGVGaWxlKGNhY2hlSXRlbXM6IEJ1aWxkUmVzdWx0c1NlcmlhbGl6ZWQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUodGhpcy5vcHRpb25zLmNhY2hlRmlsZSk7XG4gICAgICAgIGxldCBjb250ZW50OiBCdWlsZFJlc3VsdHNTZXJpYWxpemVkID0gKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKVxuICAgICAgICAgICAgPyAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5zYWZlLWFueVxuICAgICAgICAgICAgICBKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKGZpbGVQYXRoLCBcInV0Zi04XCIpKVxuICAgICAgICAgICAgOiB7fTtcbiAgICAgICAgY29udGVudCA9IHtcbiAgICAgICAgICAgIC4uLmNvbnRlbnQsXG4gICAgICAgICAgICAuLi5jYWNoZUl0ZW1zLFxuICAgICAgICB9O1xuICAgICAgICBhd2FpdCBlbnN1cmVEaXIocGF0aC5kaXJuYW1lKGZpbGVQYXRoKSk7XG4gICAgICAgIGF3YWl0IHdyaXRlRmlsZShmaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoY29udGVudCksIFwidXRmLThcIik7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQnVpbGRDYWNoZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYXJtRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtb2RlOiBCdWlsZENhY2hlTW9kZTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogSUxvZ2dlcjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihmYXJtRGlyZWN0b3J5OiBzdHJpbmcsIG1vZGU6IEJ1aWxkQ2FjaGVNb2RlKSB7XG4gICAgICAgIHRoaXMuZmFybURpcmVjdG9yeSA9IGZhcm1EaXJlY3Rvcnk7XG4gICAgICAgIHRoaXMubW9kZSA9IG1vZGU7XG4gICAgICAgIHRoaXMubG9nZ2VyID0gZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkJVSUxEX0NBQ0hFXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBleHRyYWN0KFxuICAgICAgICBnZW5lcmF0b3JTb3VyY2U6IEdlbmVyYXRvclNvdXJjZSxcbiAgICAgICAgZ2Z2OiBzdHJpbmcsXG4gICAgICAgIGRlcHNIYXNoOiBzdHJpbmcsXG4gICAgICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmIChnZW5lcmF0b3JTb3VyY2UudHlwZSA9PT0gXCJHZW5lcmF0b3JTb3VyY2VzXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkxvY2FsIGdlbmVyYXRvciBkb2VzIG5vdCBzdXBwb3J0cyBjYWNoaW5nXCIpO1xuICAgICAgICB9XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby11bnNhZmUtYW55XG4gICAgICAgIGNvbnN0IGNvbnRlbnQ6IEJ1aWxkUmVzdWx0c1NlcmlhbGl6ZWQgPSBKU09OLnBhcnNlKFxuICAgICAgICAgICAgYXdhaXQgcmVhZEZpbGUodGhpcy5nZXRDYWNoZUZpbGVQYXRoKGdmdiwgZ2VuZXJhdG9yU291cmNlLnZlcnNpb24sIGRlcHNIYXNoKSwgXCJ1dGYtOFwiKVxuICAgICAgICApO1xuICAgICAgICBmb3IgKGNvbnN0IGFzc2V0UGF0aCBvZiBPYmplY3Qua2V5cyhjb250ZW50KSkge1xuICAgICAgICAgICAgY29uc3QgY29udGVudEVsZW1lbnQgPSBjb250ZW50W2Fzc2V0UGF0aF0gPz8gcmVqZWN0KCk7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIGFzc2V0UGF0aCk7XG4gICAgICAgICAgICBhd2FpdCBlbnN1cmVEaXIocGF0aC5kaXJuYW1lKGZpbGVQYXRoKSk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnRFbGVtZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGZpbGVQYXRoLCBjb250ZW50RWxlbWVudCwgXCJ1dGY4XCIpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUoZmlsZVBhdGgsIEJ1ZmZlci5mcm9tKGNvbnRlbnRFbGVtZW50LmJhc2U2NGNvbnRlbnQsIFwiYmFzZTY0XCIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBleGlzdHMoZ2VuZXJhdG9yU291cmNlOiBHZW5lcmF0b3JTb3VyY2UsIGdmdjogc3RyaW5nLCBkZXBzSGFzaDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIGlmIChnZW5lcmF0b3JTb3VyY2UudHlwZSA9PT0gXCJHZW5lcmF0b3JTb3VyY2VzXCIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkxvY2FsIGdlbmVyYXRvciBkb2VzIG5vdCBzdXBwb3J0cyBjYWNoaW5nXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1vZGUgPT09IEJ1aWxkQ2FjaGVNb2RlLkRpc2FibGVkIHx8IHRoaXMubW9kZSA9PT0gQnVpbGRDYWNoZU1vZGUuRm9yY2VVcGRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjYWNoZWRGaWxlUGF0aCA9IGF3YWl0IHRoaXMuZXhpc3RzRmlsZUNhY2hlT3JEb3dubG9hZChnZnYsIGdlbmVyYXRvclNvdXJjZS52ZXJzaW9uLCBkZXBzSGFzaCk7XG4gICAgICAgIHJldHVybiBjYWNoZWRGaWxlUGF0aCAhPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNldENvbnRlbnQoXG4gICAgICAgIGdlbmVyYXRvclNvdXJjZTogc3RyaW5nLFxuICAgICAgICBnZnY6IHN0cmluZyxcbiAgICAgICAgZGVwc0hhc2g6IHN0cmluZyxcbiAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgICAgIGZpbGVOYW1lOiBzdHJpbmcsXG4gICAgICAgIGZpbGVDb250ZW50OiBzdHJpbmdcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgY2FjaGVGaWxlUGF0aCA9IHRoaXMuZ2V0Q2FjaGVGaWxlUGF0aChnZnYsIGdlbmVyYXRvclNvdXJjZSwgZGVwc0hhc2gpO1xuICAgICAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKGNhY2hlRmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZSBuby11bnNhZmUtYW55XG4gICAgICAgIGxldCBjb250ZW50OiBCdWlsZFJlc3VsdHNTZXJpYWxpemVkID0gSlNPTi5wYXJzZShhd2FpdCByZWFkRmlsZShjYWNoZUZpbGVQYXRoLCBcInV0Zi04XCIpKTtcbiAgICAgICAgY29udGVudCA9IHtcbiAgICAgICAgICAgIC4uLmNvbnRlbnQsXG4gICAgICAgICAgICBbZmlsZU5hbWVdOiBmaWxlQ29udGVudCxcbiAgICAgICAgfTtcbiAgICAgICAgYXdhaXQgZW5zdXJlRGlyKHBhdGguZGlybmFtZShjYWNoZUZpbGVQYXRoKSk7XG4gICAgICAgIGF3YWl0IHdyaXRlRmlsZShjYWNoZUZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShjb250ZW50KSwgXCJ1dGYtOFwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgY3JlYXRlV2VicGFja1BsdWdpbihvcHRpb25zOiBGb3JtQnVpbGRDYWNoZU9wdGlvbnMpOiBQcm9taXNlPENhY2hlQXNzZXRzUGx1Z2luIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGlmIChvcHRpb25zLm1vZGUgPT09IEJ1aWxkQ2FjaGVNb2RlLkRpc2FibGVkIHx8IG9wdGlvbnMubW9kZSA9PT0gQnVpbGRDYWNoZU1vZGUuUmVhZE9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2FjaGVkRmlsZVBhdGggPSB0aGlzLmdldENhY2hlRmlsZVBhdGgob3B0aW9ucy5nZnYsIG9wdGlvbnMuZ2VuZXJhdG9yVmVyc2lvbiwgb3B0aW9ucy5kZXBzSGFzaCk7XG4gICAgICAgIHJldHVybiBuZXcgQ2FjaGVBc3NldHNQbHVnaW4oe1xuICAgICAgICAgICAgY2FjaGVGaWxlOiBjYWNoZWRGaWxlUGF0aCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDYWNoZUZpbGVQYXRoKGdmdjogc3RyaW5nLCBnZW5lcmF0b3JWZXJzaW9uOiBzdHJpbmcsIGRlcHNIYXNoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGAke21kNShnZnYpfS0ke21kNShnZW5lcmF0b3JWZXJzaW9uKX0tJHtkZXBzSGFzaH0uemlwYDtcbiAgICAgICAgcmV0dXJuIHBhdGguam9pbih0aGlzLmZhcm1EaXJlY3RvcnksIFwiLmJ1aWxkLWNhY2hlXCIsIFwiY29tcGlsZVwiLCBmaWxlTmFtZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBleGlzdHNGaWxlQ2FjaGVPckRvd25sb2FkKFxuICAgICAgICBnZnY6IHN0cmluZyxcbiAgICAgICAgZ2VuZXJhdG9yVmVyc2lvbjogc3RyaW5nLFxuICAgICAgICBkZXBzSGFzaDogc3RyaW5nXG4gICAgKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSB0aGlzLmdldENhY2hlRmlsZVBhdGgoZ2Z2LCBnZW5lcmF0b3JWZXJzaW9uLCBkZXBzSGFzaCk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZyhgU3RhcnQgc2VhcmNoIGZpbGUgbG9jYWxseTogJHtmaWxlUGF0aH1gKTtcbiAgICAgICAgY29uc3QgZmlsZW5hbWUgPSBwYXRoLmJhc2VuYW1lKGZpbGVQYXRoKTtcbiAgICAgICAgYXdhaXQgZW5zdXJlRGlyKHBhdGguZGlybmFtZShmaWxlUGF0aCkpO1xuICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmxvZyhcIkZvdW5kIGZpbGUgaW4gbG9jYWwgZGlyZWN0b3J5XCIpO1xuICAgICAgICAgICAgcmV0dXJuIGZpbGVQYXRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5sb2coYENhY2hlIGZpbGUgd2FzIG5vdCBmb3VuZCBsb2NhbGx5OiAke2ZpbGVQYXRofWApO1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmxvZyhgTG9va2luZyBmb3IgY2FjaGUgaW4gZHJpdmUgc3RvcmFnZTogJHtmaWxlbmFtZX1gKTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGBodHRwczovL2FwaS5rb250dXIucnUvZHJpdmUvdjEvcHVibGljLyR7ZmlsZW5hbWV9YCk7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIubG9nKGBEcml2ZSByZXNwb25zZSBzdGF0dXMgY29kZTogJHtyZXNwb25zZS5zdGF0dXMudG9TdHJpbmcoKX1gKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGZpbGVQYXRoLCBhd2FpdCByZXNwb25zZS5idWZmZXIoKSwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbGVQYXRoO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYENhY2hlIGZpbGUgbm90IGZvdW5kIGluIGRyaXZlIHN0b3JhZ2U6ICR7ZmlsZW5hbWV9LiBHRlY6ICR7Z2Z2fSwgR2VuZXJhdG9yVmVyc2lvbjogJHtnZW5lcmF0b3JWZXJzaW9ufSwgRGVwZW5kZW5jaWVzSGFzaDogJHtkZXBzSGFzaH1gXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYERyaXZlIHN0b3JhZ2Ugc2VudCAke3Jlc3BvbnNlLnN0YXR1c30gc3RhdHVzIGNvZGUsIEkgZG9uJ3QgcHJvY2VzcyBpdCBpbiBhbnkgd2F5YFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcIkRyaXZlIHN0b3JhZ2UgcmVzcG9uZGVkIHdpdGggYW4gZXJyb3JcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXCJUaGUgYnVpbGQgd2lsbCBjb250aW51ZSB3aXRob3V0IGEgY2FjaGVcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -129,7 +129,7 @@ function isNotNullOrUndefined(input) {
|
|
|
129
129
|
return input != undefined;
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
function createConfig(options) {
|
|
132
|
+
async function createConfig(options) {
|
|
133
133
|
const result = [];
|
|
134
134
|
|
|
135
135
|
for (const mode of options.modes) {
|
|
@@ -143,6 +143,8 @@ function createConfig(options) {
|
|
|
143
143
|
}));
|
|
144
144
|
}
|
|
145
145
|
|
|
146
|
-
|
|
146
|
+
const d = await Promise.all(result);
|
|
147
|
+
console.log(d);
|
|
148
|
+
return d;
|
|
147
149
|
}
|
|
148
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9Gb3JtV2VicGFja0NvbmZpZ3VyYXRpb24vY3JlYXRlRm9ybVdlYnBhY2tDb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbImNyZWF0ZUNvbmZpZ1ZhcmlhbnQiLCJvcHRpb25zIiwiZ2Z2IiwiZmlsZU5hbWVTdWZmaXgiLCJtb2RlIiwiZm9ybVBhdGgiLCJwYXRoIiwiam9pbiIsImZvcm1zRGlyZWN0b3J5UGF0aCIsImJ1aWxkQ2FjaGUiLCJidWlsZENhY2hlT3B0aW9ucyIsInVuZGVmaW5lZCIsIkJ1aWxkQ2FjaGUiLCJmYXJtRGlyZWN0b3J5IiwiYnVpbGRDYWNoZVdlYnBhY2tQbHVnaW4iLCJjcmVhdGVXZWJwYWNrUGx1Z2luIiwidGFyZ2V0IiwiY29udGV4dCIsInJlc29sdmUiLCJvdXRwdXQiLCJmaWxlbmFtZSIsInJlc291cmNlc0RpcmVjdG9yeVBhdGgiLCJwdWJsaWNQYXRoIiwiYWxpYXMiLCJfX2Rpcm5hbWUiLCJ2YXJpYWJsZXMiLCJSZXNvdXJjZXMiLCJleHRlbnNpb25zIiwiZW50cnkiLCJkZXZ0b29sIiwibW9kdWxlIiwicnVsZXMiLCJ0ZXN0IiwidXNlIiwibG9hZGVyIiwiTWluaUNzc0V4dHJhY3RQbHVnaW4iLCJyZXF1aXJlIiwibW9kdWxlcyIsImxvY2FsSWRlbnROYW1lIiwicG9zdGNzc09wdGlvbnMiLCJpZGVudCIsInBsdWdpbnMiLCJvdmVycmlkZUJyb3dzZXJzbGlzdCIsImJhYmVscmMiLCJjb25maWdGaWxlIiwicHJlc2V0cyIsInRhcmdldHMiLCJicm93c2VycyIsImxvb3NlIiwibGVnYWN5IiwiZXhjbHVkZSIsIm5hbWUiLCJ3ZWJwYWNrIiwiRGVmaW5lUGx1Z2luIiwiR0ZWIiwiSlNPTiIsInN0cmluZ2lmeSIsIk5PREVfRU5WIiwiUkVTT1VSQ0VTX0hBU0giLCJyZXNvdXJjZXNIYXNoIiwiZmlsdGVyIiwiaXNOb3ROdWxsT3JVbmRlZmluZWQiLCJpbnB1dCIsImNyZWF0ZUNvbmZpZyIsInJl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QVpBO0FBbkdOLEdBQVA7QUFpSEg7O0FBRUQsU0FBU0Esb0JBQVQsQ0FBaUNDLEtBQWpDLEVBQTBFO0FBQ3RFLFNBQU9BLEtBQUssSUFBSW5ELFNBQWhCO0FBQ0g7O0FBYU0sU0FBU29ELFlBQVQsQ0FBc0I5RCxPQUF0QixFQUE0RjtBQUMvRixRQUFNK0QsTUFBcUMsR0FBRyxFQUE5Qzs7QUFFQSxPQUFLLE1BQU01RCxJQUFYLElBQW1CSCxPQUFPLENBQUNnRSxLQUEzQixFQUFrQztBQUM5QkQsSUFBQUEsTUFBTSxDQUFDRSxJQUFQLENBQ0lsRSxtQkFBbUIsQ0FBQztBQUNoQkUsTUFBQUEsR0FBRyxFQUFFRCxPQUFPLENBQUNDLEdBREc7QUFFaEJ5RCxNQUFBQSxhQUFhLEVBQUUxRCxPQUFPLENBQUMwRCxhQUZQO0FBR2hCbkQsTUFBQUEsa0JBQWtCLEVBQUVQLE9BQU8sQ0FBQ08sa0JBSFo7QUFJaEJhLE1BQUFBLHNCQUFzQixFQUFFcEIsT0FBTyxDQUFDb0Isc0JBSmhCO0FBS2hCakIsTUFBQUEsSUFBSSxFQUFFQSxJQUxVO0FBTWhCTSxNQUFBQSxpQkFBaUIsRUFBRVQsT0FBTyxDQUFDUztBQU5YLEtBQUQsQ0FEdkI7QUFVSDs7QUFDRCxTQUFPeUQsT0FBTyxDQUFDQyxHQUFSLENBQVlKLE1BQVosQ0FBUDtBQUNIIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGUgbm8tYW55IG5vLXVuc2FmZS1hbnkgbm8taW52YWxpZC10aGlzXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgTWluaUNzc0V4dHJhY3RQbHVnaW4gZnJvbSBcIm1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXCI7XG5pbXBvcnQgd2VicGFjaywgeyBDb25maWd1cmF0aW9uIH0gZnJvbSBcIndlYnBhY2tcIjtcblxuaW1wb3J0IHsgQnVpbGRDYWNoZSwgRm9ybUJ1aWxkQ2FjaGVPcHRpb25zIH0gZnJvbSBcIi4vQ2FjaGVBc3NldHNQbHVnaW5cIjtcblxuaW50ZXJmYWNlIENyZWF0ZVdlYnBhY2tDb25maWd1cmF0aW9uVmFyaWFudE9wdGlvbnMge1xuICAgIGdmdjogc3RyaW5nO1xuICAgIHJlc291cmNlc0hhc2g6IHN0cmluZztcbiAgICBmb3Jtc0RpcmVjdG9yeVBhdGg6IHN0cmluZztcbiAgICBtb2RlPzogXCJwcm9kdWN0aW9uXCIgfCBcImRldmVsb3BtZW50XCI7XG4gICAgcmVzb3VyY2VzRGlyZWN0b3J5UGF0aDogc3RyaW5nO1xuICAgIGJ1aWxkQ2FjaGVPcHRpb25zPzogRm9ybUJ1aWxkQ2FjaGVPcHRpb25zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVDb25maWdWYXJpYW50KG9wdGlvbnM6IENyZWF0ZVdlYnBhY2tDb25maWd1cmF0aW9uVmFyaWFudE9wdGlvbnMpOiBQcm9taXNlPENvbmZpZ3VyYXRpb24+IHtcbiAgICBjb25zdCB7IGdmdiB9ID0gb3B0aW9ucztcblxuICAgIGNvbnN0IGZpbGVOYW1lU3VmZml4ID0gb3B0aW9ucy5tb2RlID09PSBcInByb2R1Y3Rpb25cIiA/IFwiLm1pblwiIDogXCJcIjtcblxuICAgIGNvbnN0IGZvcm1QYXRoID0gcGF0aC5qb2luKG9wdGlvbnMuZm9ybXNEaXJlY3RvcnlQYXRoLCBnZnYpO1xuICAgIGNvbnN0IGJ1aWxkQ2FjaGUgPVxuICAgICAgICBvcHRpb25zLmJ1aWxkQ2FjaGVPcHRpb25zICE9IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyBuZXcgQnVpbGRDYWNoZShvcHRpb25zLmJ1aWxkQ2FjaGVPcHRpb25zLmZhcm1EaXJlY3RvcnksIG9wdGlvbnMuYnVpbGRDYWNoZU9wdGlvbnMubW9kZSlcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgYnVpbGRDYWNoZVdlYnBhY2tQbHVnaW4gPVxuICAgICAgICBidWlsZENhY2hlICE9IHVuZGVmaW5lZCAmJiBvcHRpb25zLmJ1aWxkQ2FjaGVPcHRpb25zICE9IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyBhd2FpdCBidWlsZENhY2hlLmNyZWF0ZVdlYnBhY2tQbHVnaW4ob3B0aW9ucy5idWlsZENhY2hlT3B0aW9ucylcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbW9kZTogb3B0aW9ucy5tb2RlLFxuICAgICAgICB0YXJnZXQ6IFtcIndlYlwiLCBcImVzNVwiXSxcbiAgICAgICAgY29udGV4dDogcGF0aC5yZXNvbHZlKG9wdGlvbnMuZm9ybXNEaXJlY3RvcnlQYXRoLCBcIi4uXCIpLFxuICAgICAgICBvdXRwdXQ6IHtcbiAgICAgICAgICAgIGZpbGVuYW1lOiBgcHVibGljL3NjcmlwdHMvJHtnZnZ9JHtmaWxlTmFtZVN1ZmZpeH0uanNgLFxuICAgICAgICAgICAgcGF0aDogb3B0aW9ucy5yZXNvdXJjZXNEaXJlY3RvcnlQYXRoLFxuICAgICAgICAgICAgcHVibGljUGF0aDogXCIvc3RhdGljL1wiLFxuICAgICAgICB9LFxuICAgICAgICByZXNvbHZlOiB7XG4gICAgICAgICAgICBhbGlhczoge1xuICAgICAgICAgICAgICAgIFwidmFyaWFibGVzLmxlc3NcIjogcGF0aC5yZXNvbHZlKHBhdGguam9pbihfX2Rpcm5hbWUsIFwidmFyaWFibGVzLmxlc3NcIikpLFxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczogcGF0aC5yZXNvbHZlKHBhdGguam9pbihfX2Rpcm5hbWUsIFwidmFyaWFibGVzLmxlc3NcIikpLFxuICAgICAgICAgICAgICAgIFJlc291cmNlczogcGF0aC5qb2luKGZvcm1QYXRoLCBcImZvcm1cIiwgXCJyZXNvdXJjZXNcIiksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXh0ZW5zaW9uczogW1wiLmpzXCIsIFwiLmpzeFwiXSxcbiAgICAgICAgfSxcbiAgICAgICAgZW50cnk6IFtwYXRoLmpvaW4oZm9ybVBhdGgsIFwiZm9ybVwiLCBcIi4vd2ViXCIpXSxcbiAgICAgICAgZGV2dG9vbDogb3B0aW9ucy5tb2RlID09PSBcInByb2R1Y3Rpb25cIiA/IHVuZGVmaW5lZCA6IFwiaW5saW5lLXNvdXJjZS1tYXBcIixcbiAgICAgICAgbW9kdWxlOiB7XG4gICAgICAgICAgICBydWxlczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGVzdDogL1xcLmxlc3MkLyxcbiAgICAgICAgICAgICAgICAgICAgdXNlOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZXI6IE1pbmlDc3NFeHRyYWN0UGx1Z2luLmxvYWRlciBhcyBhbnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogeyBwdWJsaWNQYXRoOiBcIi4uLy4uL1wiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlcjogcmVxdWlyZS5yZXNvbHZlKFwiY3NzLWxvYWRlclwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsSWRlbnROYW1lOiBcIltoYXNoOmJhc2U2NDo1XVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlcjogcmVxdWlyZS5yZXNvbHZlKFwicG9zdGNzcy1sb2FkZXJcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0Y3NzT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnQ6IFwicG9zdGNzc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUgbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlKFwiYXV0b3ByZWZpeGVyXCIpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g0J/RgNC+0YHRgtC+INC00LXRhNC+0LvRgtC90YvQtSDQt9C90LDRh9C10L3QuNC1INC40Lcg0YLQtdC60YPRidC10LPQviAoMS43LjcpIGJyb3dzZXJzbGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVycmlkZUJyb3dzZXJzbGlzdDogXCI+IDElLCBsYXN0IDIgdmVyc2lvbnMsIEZpcmVmb3ggRVNSXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlcjogcmVxdWlyZS5yZXNvbHZlKFwibGVzcy1sb2FkZXJcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0ZXN0OiAvXFwuanN4PyQvLFxuICAgICAgICAgICAgICAgICAgICB1c2U6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZXI6IHJlcXVpcmUucmVzb2x2ZShcImJhYmVsLWxvYWRlclwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhYmVscmM6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdGaWxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc2V0czogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZS5yZXNvbHZlKFwiQGJhYmVsL3ByZXNldC1yZWFjdFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlLnJlc29sdmUoXCJAYmFiZWwvcHJlc2V0LWVudlwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldHM6IHsgYnJvd3NlcnM6IFwiPiAwJVwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3NlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZS5yZXNvbHZlKFwiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1kZWNvcmF0b3JzXCIpLCB7IGxlZ2FjeTogdHJ1ZSB9XSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlLnJlc29sdmUoXCJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLWNsYXNzLXByb3BlcnRpZXNcIiksIHsgbG9vc2U6IHRydWUgfV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlLnJlc29sdmUoXCJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLWV4cG9ydC1kZWZhdWx0LWZyb21cIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGU6IFsvbm9kZV9tb2R1bGVzL10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRlc3Q6IC9cXC4ocG5nfHN2ZykkLyxcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVyOiByZXF1aXJlLnJlc29sdmUoXCJmaWxlLWxvYWRlclwiKSxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogeyBuYW1lOiBcInB1YmxpYy9pbWFnZXMvW2hhc2hdLltleHRdXCIgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGVzdDogL1xcLih0dGZ8ZW90fHdvZmYyPykkLyxcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVyOiByZXF1aXJlLnJlc29sdmUoXCJmaWxlLWxvYWRlclwiKSxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogeyBuYW1lOiBcInB1YmxpYy9mb250cy9baGFzaF0uW2V4dF1cIiB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yINCf0L7Rh9C40L3QuNGC0YHRjywg0LrQvtCz0LTQsCDQstGB0LUg0LvQuNCx0Ysg0L7QsdC90L7QstGP0YLRgdGPXG4gICAgICAgIHBsdWdpbnM6IFtcbiAgICAgICAgICAgIG5ldyBNaW5pQ3NzRXh0cmFjdFBsdWdpbih7XG4gICAgICAgICAgICAgICAgZmlsZW5hbWU6IGBwdWJsaWMvc3R5bGVzLyR7Z2Z2fSR7ZmlsZU5hbWVTdWZmaXh9LmNzc2AsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyB3ZWJwYWNrLkRlZmluZVBsdWdpbih7XG4gICAgICAgICAgICAgICAgXCJwcm9jZXNzLmVudlwiOiB7XG4gICAgICAgICAgICAgICAgICAgIEdGVjogSlNPTi5zdHJpbmdpZnkoZ2Z2KSxcbiAgICAgICAgICAgICAgICAgICAgTk9ERV9FTlY6IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMubW9kZSksXG4gICAgICAgICAgICAgICAgICAgIFJFU09VUkNFU19IQVNIOiBKU09OLnN0cmluZ2lmeShvcHRpb25zLnJlc291cmNlc0hhc2gpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGJ1aWxkQ2FjaGVXZWJwYWNrUGx1Z2luLFxuICAgICAgICBdLmZpbHRlcihpc05vdE51bGxPclVuZGVmaW5lZCksXG4gICAgfTtcbn1cblxuZnVuY3Rpb24gaXNOb3ROdWxsT3JVbmRlZmluZWQ8VD4oaW5wdXQ6IFQgfCB1bmRlZmluZWQgfCBudWxsKTogaW5wdXQgaXMgVCB7XG4gICAgcmV0dXJuIGlucHV0ICE9IHVuZGVmaW5lZDtcbn1cblxudHlwZSBCdWlsZE1vZGUgPSBcInByb2R1Y3Rpb25cIiB8IFwiZGV2ZWxvcG1lbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVXZWJwYWNrQ29uZmlndXJhdGlvbk9wdGlvbnMge1xuICAgIGdmdjogc3RyaW5nO1xuICAgIHJlc291cmNlc0hhc2g6IHN0cmluZztcbiAgICBmb3Jtc0RpcmVjdG9yeVBhdGg6IHN0cmluZztcbiAgICByZXNvdXJjZXNEaXJlY3RvcnlQYXRoOiBzdHJpbmc7XG4gICAgbW9kZXM6IEJ1aWxkTW9kZVtdO1xuICAgIGJ1aWxkQ2FjaGVPcHRpb25zPzogRm9ybUJ1aWxkQ2FjaGVPcHRpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29uZmlnKG9wdGlvbnM6IENyZWF0ZVdlYnBhY2tDb25maWd1cmF0aW9uT3B0aW9ucyk6IFByb21pc2U8Q29uZmlndXJhdGlvbltdPiB7XG4gICAgY29uc3QgcmVzdWx0OiBBcnJheTxQcm9taXNlPENvbmZpZ3VyYXRpb24+PiA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBtb2RlIG9mIG9wdGlvbnMubW9kZXMpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goXG4gICAgICAgICAgICBjcmVhdGVDb25maWdWYXJpYW50KHtcbiAgICAgICAgICAgICAgICBnZnY6IG9wdGlvbnMuZ2Z2LFxuICAgICAgICAgICAgICAgIHJlc291cmNlc0hhc2g6IG9wdGlvbnMucmVzb3VyY2VzSGFzaCxcbiAgICAgICAgICAgICAgICBmb3Jtc0RpcmVjdG9yeVBhdGg6IG9wdGlvbnMuZm9ybXNEaXJlY3RvcnlQYXRoLFxuICAgICAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeVBhdGg6IG9wdGlvbnMucmVzb3VyY2VzRGlyZWN0b3J5UGF0aCxcbiAgICAgICAgICAgICAgICBtb2RlOiBtb2RlLFxuICAgICAgICAgICAgICAgIGJ1aWxkQ2FjaGVPcHRpb25zOiBvcHRpb25zLmJ1aWxkQ2FjaGVPcHRpb25zLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKHJlc3VsdCk7XG59XG4iXX0=
|
|
150
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9Gb3JtV2VicGFja0NvbmZpZ3VyYXRpb24vY3JlYXRlRm9ybVdlYnBhY2tDb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbImNyZWF0ZUNvbmZpZ1ZhcmlhbnQiLCJvcHRpb25zIiwiZ2Z2IiwiZmlsZU5hbWVTdWZmaXgiLCJtb2RlIiwiZm9ybVBhdGgiLCJwYXRoIiwiam9pbiIsImZvcm1zRGlyZWN0b3J5UGF0aCIsImJ1aWxkQ2FjaGUiLCJidWlsZENhY2hlT3B0aW9ucyIsInVuZGVmaW5lZCIsIkJ1aWxkQ2FjaGUiLCJmYXJtRGlyZWN0b3J5IiwiYnVpbGRDYWNoZVdlYnBhY2tQbHVnaW4iLCJjcmVhdGVXZWJwYWNrUGx1Z2luIiwidGFyZ2V0IiwiY29udGV4dCIsInJlc29sdmUiLCJvdXRwdXQiLCJmaWxlbmFtZSIsInJlc291cmNlc0RpcmVjdG9yeVBhdGgiLCJwdWJsaWNQYXRoIiwiYWxpYXMiLCJfX2Rpcm5hbWUiLCJ2YXJpYWJsZXMiLCJSZXNvdXJjZXMiLCJleHRlbnNpb25zIiwiZW50cnkiLCJkZXZ0b29sIiwibW9kdWxlIiwicnVsZXMiLCJ0ZXN0IiwidXNlIiwibG9hZGVyIiwiTWluaUNzc0V4dHJhY3RQbHVnaW4iLCJyZXF1aXJlIiwibW9kdWxlcyIsImxvY2FsSWRlbnROYW1lIiwicG9zdGNzc09wdGlvbnMiLCJpZGVudCIsInBsdWdpbnMiLCJvdmVycmlkZUJyb3dzZXJzbGlzdCIsImJhYmVscmMiLCJjb25maWdGaWxlIiwicHJlc2V0cyIsInRhcmdldHMiLCJicm93c2VycyIsImxvb3NlIiwibGVnYWN5IiwiZXhjbHVkZSIsIm5hbWUiLCJ3ZWJwYWNrIiwiRGVmaW5lUGx1Z2luIiwiR0ZWIiwiSlNPTiIsInN0cmluZ2lmeSIsIk5PREVfRU5WIiwiUkVTT1VSQ0VTX0hBU0giLCJyZXNvdXJjZXNIYXNoIiwiZmlsdGVyIiwiaXNOb3ROdWxsT3JVbmRlZmluZWQiLCJpbnB1dCIsImNyZWF0ZUNvbmZpZyIsInJl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RUFZUDhDLE1BWk8sQ0FZQUMsb0JBWkE7QUFuR04sR0FBUDtBQWlISDs7QUFFRCxTQUFTQSxvQkFBVCxDQUFpQ0MsS0FBakMsRUFBMEU7QUFDdEUsU0FBT0EsS0FBSyxJQUFJbkQsU0FBaEI7QUFDSDs7QUFhTSxlQUFlb0QsWUFBZixDQUE0QjlELE9BQTVCLEVBQWtHO0FBQ3JHLFFBQU0rRCxNQUFxQyxHQUFHLEVBQTlDOztBQUVBLE9BQUssTUFBTTVELElBQVgsSUFBbUJILE9BQU8sQ0FBQ2dFLEtBQTNCLEVBQWtDO0FBQzlCRCxJQUFBQSxNQUFNLENBQUNFLElBQVAsQ0FDSWxFLG1CQUFtQixDQUFDO0FBQ2hCRSxNQUFBQSxHQUFHLEVBQUVELE9BQU8sQ0FBQ0MsR0FERztBQUVoQnlELE1BQUFBLGFBQWEsRUFBRTFELE9BQU8sQ0FBQzBELGFBRlA7QUFHaEJuRCxNQUFBQSxrQkFBa0IsRUFBRVAsT0FBTyxDQUFDTyxrQkFIWjtBQUloQmEsTUFBQUEsc0JBQXNCLEVBQUVwQixPQUFPLENBQUNvQixzQkFKaEI7QUFLaEJqQixNQUFBQSxJQUFJLEVBQUVBLElBTFU7QUFNaEJNLE1BQUFBLGlCQUFpQixFQUFFVCxPQUFPLENBQUNTO0FBTlgsS0FBRCxDQUR2QjtBQVVIOztBQUNELFFBQU15RCxDQUFDLEdBQUcsTUFBTUMsT0FBTyxDQUFDQyxHQUFSLENBQVlMLE1BQVosQ0FBaEI7QUFDQU0sRUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVlKLENBQVo7QUFDQSxTQUFPQSxDQUFQO0FBQ0giLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZSBuby1hbnkgbm8tdW5zYWZlLWFueSBuby1pbnZhbGlkLXRoaXNcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCBNaW5pQ3NzRXh0cmFjdFBsdWdpbiBmcm9tIFwibWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cIjtcbmltcG9ydCB3ZWJwYWNrLCB7IENvbmZpZ3VyYXRpb24gfSBmcm9tIFwid2VicGFja1wiO1xuXG5pbXBvcnQgeyBCdWlsZENhY2hlLCBGb3JtQnVpbGRDYWNoZU9wdGlvbnMgfSBmcm9tIFwiLi9DYWNoZUFzc2V0c1BsdWdpblwiO1xuXG5pbnRlcmZhY2UgQ3JlYXRlV2VicGFja0NvbmZpZ3VyYXRpb25WYXJpYW50T3B0aW9ucyB7XG4gICAgZ2Z2OiBzdHJpbmc7XG4gICAgcmVzb3VyY2VzSGFzaDogc3RyaW5nO1xuICAgIGZvcm1zRGlyZWN0b3J5UGF0aDogc3RyaW5nO1xuICAgIG1vZGU/OiBcInByb2R1Y3Rpb25cIiB8IFwiZGV2ZWxvcG1lbnRcIjtcbiAgICByZXNvdXJjZXNEaXJlY3RvcnlQYXRoOiBzdHJpbmc7XG4gICAgYnVpbGRDYWNoZU9wdGlvbnM/OiBGb3JtQnVpbGRDYWNoZU9wdGlvbnM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUNvbmZpZ1ZhcmlhbnQob3B0aW9uczogQ3JlYXRlV2VicGFja0NvbmZpZ3VyYXRpb25WYXJpYW50T3B0aW9ucyk6IFByb21pc2U8Q29uZmlndXJhdGlvbj4ge1xuICAgIGNvbnN0IHsgZ2Z2IH0gPSBvcHRpb25zO1xuXG4gICAgY29uc3QgZmlsZU5hbWVTdWZmaXggPSBvcHRpb25zLm1vZGUgPT09IFwicHJvZHVjdGlvblwiID8gXCIubWluXCIgOiBcIlwiO1xuXG4gICAgY29uc3QgZm9ybVBhdGggPSBwYXRoLmpvaW4ob3B0aW9ucy5mb3Jtc0RpcmVjdG9yeVBhdGgsIGdmdik7XG4gICAgY29uc3QgYnVpbGRDYWNoZSA9XG4gICAgICAgIG9wdGlvbnMuYnVpbGRDYWNoZU9wdGlvbnMgIT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IG5ldyBCdWlsZENhY2hlKG9wdGlvbnMuYnVpbGRDYWNoZU9wdGlvbnMuZmFybURpcmVjdG9yeSwgb3B0aW9ucy5idWlsZENhY2hlT3B0aW9ucy5tb2RlKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBidWlsZENhY2hlV2VicGFja1BsdWdpbiA9XG4gICAgICAgIGJ1aWxkQ2FjaGUgIT0gdW5kZWZpbmVkICYmIG9wdGlvbnMuYnVpbGRDYWNoZU9wdGlvbnMgIT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IGF3YWl0IGJ1aWxkQ2FjaGUuY3JlYXRlV2VicGFja1BsdWdpbihvcHRpb25zLmJ1aWxkQ2FjaGVPcHRpb25zKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBtb2RlOiBvcHRpb25zLm1vZGUsXG4gICAgICAgIHRhcmdldDogW1wid2ViXCIsIFwiZXM1XCJdLFxuICAgICAgICBjb250ZXh0OiBwYXRoLnJlc29sdmUob3B0aW9ucy5mb3Jtc0RpcmVjdG9yeVBhdGgsIFwiLi5cIiksXG4gICAgICAgIG91dHB1dDoge1xuICAgICAgICAgICAgZmlsZW5hbWU6IGBwdWJsaWMvc2NyaXB0cy8ke2dmdn0ke2ZpbGVOYW1lU3VmZml4fS5qc2AsXG4gICAgICAgICAgICBwYXRoOiBvcHRpb25zLnJlc291cmNlc0RpcmVjdG9yeVBhdGgsXG4gICAgICAgICAgICBwdWJsaWNQYXRoOiBcIi9zdGF0aWMvXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHJlc29sdmU6IHtcbiAgICAgICAgICAgIGFsaWFzOiB7XG4gICAgICAgICAgICAgICAgXCJ2YXJpYWJsZXMubGVzc1wiOiBwYXRoLnJlc29sdmUocGF0aC5qb2luKF9fZGlybmFtZSwgXCJ2YXJpYWJsZXMubGVzc1wiKSksXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzOiBwYXRoLnJlc29sdmUocGF0aC5qb2luKF9fZGlybmFtZSwgXCJ2YXJpYWJsZXMubGVzc1wiKSksXG4gICAgICAgICAgICAgICAgUmVzb3VyY2VzOiBwYXRoLmpvaW4oZm9ybVBhdGgsIFwiZm9ybVwiLCBcInJlc291cmNlc1wiKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBleHRlbnNpb25zOiBbXCIuanNcIiwgXCIuanN4XCJdLFxuICAgICAgICB9LFxuICAgICAgICBlbnRyeTogW3BhdGguam9pbihmb3JtUGF0aCwgXCJmb3JtXCIsIFwiLi93ZWJcIildLFxuICAgICAgICBkZXZ0b29sOiBvcHRpb25zLm1vZGUgPT09IFwicHJvZHVjdGlvblwiID8gdW5kZWZpbmVkIDogXCJpbmxpbmUtc291cmNlLW1hcFwiLFxuICAgICAgICBtb2R1bGU6IHtcbiAgICAgICAgICAgIHJ1bGVzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0ZXN0OiAvXFwubGVzcyQvLFxuICAgICAgICAgICAgICAgICAgICB1c2U6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlcjogTWluaUNzc0V4dHJhY3RQbHVnaW4ubG9hZGVyIGFzIGFueSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7IHB1YmxpY1BhdGg6IFwiLi4vLi4vXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVyOiByZXF1aXJlLnJlc29sdmUoXCJjc3MtbG9hZGVyXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxJZGVudE5hbWU6IFwiW2hhc2g6YmFzZTY0OjVdXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVyOiByZXF1aXJlLnJlc29sdmUoXCJwb3N0Y3NzLWxvYWRlclwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Rjc3NPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZGVudDogXCJwb3N0Y3NzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZSBuby1yZXF1aXJlLWltcG9ydHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmUoXCJhdXRvcHJlZml4ZXJcIikoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyDQn9GA0L7RgdGC0L4g0LTQtdGE0L7Qu9GC0L3Ri9C1INC30L3QsNGH0LXQvdC40LUg0LjQtyDRgtC10LrRg9GJ0LXQs9C+ICgxLjcuNykgYnJvd3NlcnNsaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJyaWRlQnJvd3NlcnNsaXN0OiBcIj4gMSUsIGxhc3QgMiB2ZXJzaW9ucywgRmlyZWZveCBFU1JcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVyOiByZXF1aXJlLnJlc29sdmUoXCJsZXNzLWxvYWRlclwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRlc3Q6IC9cXC5qc3g/JC8sXG4gICAgICAgICAgICAgICAgICAgIHVzZTogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlcjogcmVxdWlyZS5yZXNvbHZlKFwiYmFiZWwtbG9hZGVyXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFiZWxyYzogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ0ZpbGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzZXRzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlLnJlc29sdmUoXCJAYmFiZWwvcHJlc2V0LXJlYWN0XCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmUucmVzb2x2ZShcIkBiYWJlbC9wcmVzZXQtZW52XCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0czogeyBicm93c2VyczogXCI+IDAlXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9vc2U6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlLnJlc29sdmUoXCJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLWRlY29yYXRvcnNcIiksIHsgbGVnYWN5OiB0cnVlIH1dLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmUucmVzb2x2ZShcIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtY2xhc3MtcHJvcGVydGllc1wiKSwgeyBsb29zZTogdHJ1ZSB9XSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmUucmVzb2x2ZShcIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtZXhwb3J0LWRlZmF1bHQtZnJvbVwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgZXhjbHVkZTogWy9ub2RlX21vZHVsZXMvXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGVzdDogL1xcLihwbmd8c3ZnKSQvLFxuICAgICAgICAgICAgICAgICAgICBsb2FkZXI6IHJlcXVpcmUucmVzb2x2ZShcImZpbGUtbG9hZGVyXCIpLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7IG5hbWU6IFwicHVibGljL2ltYWdlcy9baGFzaF0uW2V4dF1cIiB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0ZXN0OiAvXFwuKHR0Znxlb3R8d29mZjI/KSQvLFxuICAgICAgICAgICAgICAgICAgICBsb2FkZXI6IHJlcXVpcmUucmVzb2x2ZShcImZpbGUtbG9hZGVyXCIpLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7IG5hbWU6IFwicHVibGljL2ZvbnRzL1toYXNoXS5bZXh0XVwiIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3Ig0J/QvtGH0LjQvdC40YLRgdGPLCDQutC+0LPQtNCwINCy0YHQtSDQu9C40LHRiyDQvtCx0L3QvtCy0Y/RgtGB0Y9cbiAgICAgICAgcGx1Z2luczogW1xuICAgICAgICAgICAgbmV3IE1pbmlDc3NFeHRyYWN0UGx1Z2luKHtcbiAgICAgICAgICAgICAgICBmaWxlbmFtZTogYHB1YmxpYy9zdHlsZXMvJHtnZnZ9JHtmaWxlTmFtZVN1ZmZpeH0uY3NzYCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IHdlYnBhY2suRGVmaW5lUGx1Z2luKHtcbiAgICAgICAgICAgICAgICBcInByb2Nlc3MuZW52XCI6IHtcbiAgICAgICAgICAgICAgICAgICAgR0ZWOiBKU09OLnN0cmluZ2lmeShnZnYpLFxuICAgICAgICAgICAgICAgICAgICBOT0RFX0VOVjogSlNPTi5zdHJpbmdpZnkob3B0aW9ucy5tb2RlKSxcbiAgICAgICAgICAgICAgICAgICAgUkVTT1VSQ0VTX0hBU0g6IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMucmVzb3VyY2VzSGFzaCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgYnVpbGRDYWNoZVdlYnBhY2tQbHVnaW4sXG4gICAgICAgIF0uZmlsdGVyKGlzTm90TnVsbE9yVW5kZWZpbmVkKSxcbiAgICB9O1xufVxuXG5mdW5jdGlvbiBpc05vdE51bGxPclVuZGVmaW5lZDxUPihpbnB1dDogVCB8IHVuZGVmaW5lZCB8IG51bGwpOiBpbnB1dCBpcyBUIHtcbiAgICByZXR1cm4gaW5wdXQgIT0gdW5kZWZpbmVkO1xufVxuXG50eXBlIEJ1aWxkTW9kZSA9IFwicHJvZHVjdGlvblwiIHwgXCJkZXZlbG9wbWVudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVdlYnBhY2tDb25maWd1cmF0aW9uT3B0aW9ucyB7XG4gICAgZ2Z2OiBzdHJpbmc7XG4gICAgcmVzb3VyY2VzSGFzaDogc3RyaW5nO1xuICAgIGZvcm1zRGlyZWN0b3J5UGF0aDogc3RyaW5nO1xuICAgIHJlc291cmNlc0RpcmVjdG9yeVBhdGg6IHN0cmluZztcbiAgICBtb2RlczogQnVpbGRNb2RlW107XG4gICAgYnVpbGRDYWNoZU9wdGlvbnM/OiBGb3JtQnVpbGRDYWNoZU9wdGlvbnM7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVDb25maWcob3B0aW9uczogQ3JlYXRlV2VicGFja0NvbmZpZ3VyYXRpb25PcHRpb25zKTogUHJvbWlzZTxDb25maWd1cmF0aW9uW10+IHtcbiAgICBjb25zdCByZXN1bHQ6IEFycmF5PFByb21pc2U8Q29uZmlndXJhdGlvbj4+ID0gW107XG5cbiAgICBmb3IgKGNvbnN0IG1vZGUgb2Ygb3B0aW9ucy5tb2Rlcykge1xuICAgICAgICByZXN1bHQucHVzaChcbiAgICAgICAgICAgIGNyZWF0ZUNvbmZpZ1ZhcmlhbnQoe1xuICAgICAgICAgICAgICAgIGdmdjogb3B0aW9ucy5nZnYsXG4gICAgICAgICAgICAgICAgcmVzb3VyY2VzSGFzaDogb3B0aW9ucy5yZXNvdXJjZXNIYXNoLFxuICAgICAgICAgICAgICAgIGZvcm1zRGlyZWN0b3J5UGF0aDogb3B0aW9ucy5mb3Jtc0RpcmVjdG9yeVBhdGgsXG4gICAgICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5UGF0aDogb3B0aW9ucy5yZXNvdXJjZXNEaXJlY3RvcnlQYXRoLFxuICAgICAgICAgICAgICAgIG1vZGU6IG1vZGUsXG4gICAgICAgICAgICAgICAgYnVpbGRDYWNoZU9wdGlvbnM6IG9wdGlvbnMuYnVpbGRDYWNoZU9wdGlvbnMsXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbiAgICBjb25zdCBkID0gYXdhaXQgUHJvbWlzZS5hbGwocmVzdWx0KTtcbiAgICBjb25zb2xlLmxvZyhkKTtcbiAgICByZXR1cm4gZDtcbn1cbiJdfQ==
|