@kontur.candy/tools 2.173.0 → 2.174.0

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.
Files changed (26) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/distr/Tools/src/BuildTasks/Form/CompileForm.js +3 -3
  3. package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js +3 -3
  4. package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js +3 -3
  5. package/distr/Tools/src/BuildTasks/ReadFormSource.js +2 -3
  6. package/distr/Tools/src/BuildTasks/ResolveFormInfo.js +4 -3
  7. package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js +9 -13
  8. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +115 -59
  9. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesUpdatesController.js +3 -17
  10. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +2 -2
  11. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +25 -69
  12. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js +6 -3
  13. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/FarmDirectory.js +17 -181
  14. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/GlobToRegexp.js +1 -7
  15. package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +6 -12
  16. package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js +2 -4
  17. package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js +2 -3
  18. package/distr/Tools/src/CLICommands/Localization/RunLocalization.js +2 -5
  19. package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js +4 -8
  20. package/distr/Tools/src/Commons/FormGlobsUtils.js +2 -80
  21. package/distr/Tools/src/Commons/TasksCore/DirectoryEntriesProducer.js +4 -12
  22. package/distr/Tools/src/Commons/TasksCore/Observe.js +1 -5
  23. package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +4 -4
  24. package/package.json +1 -1
  25. package/distr/Common/FormPathUtils.js +0 -14
  26. package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/Directories/WellKnownDirectories.js +0 -12
@@ -11,7 +11,6 @@ var _PublishedVersionUtils = require("../../BuildTasks/PublishedVersionUtils");
11
11
  var _ResolveFormInfo = require("../../BuildTasks/ResolveFormInfo");
12
12
  var _FsUtils = require("../../Commons/FsUtils");
13
13
  var _CommandBasedOptionsParser = require("../../Commons/Options/CommandBasedOptionsParser");
14
- var _WellKnownDirectories = require("../BuildServer/ResourcesControllers/Directories/WellKnownDirectories");
15
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
15
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
16
  async function runInitForm(context, options, farmDirectory) {
@@ -65,7 +64,7 @@ async function runInitForm(context, options, farmDirectory) {
65
64
  }
66
65
  gfvLogger.verbose(`Processed template path ${relativeFilePath}`);
67
66
  }
68
- const formJsonPath = path.join(tempOutputDir, _WellKnownDirectories.WellKnownDirectories.FormJsonFileName);
67
+ const formJsonPath = path.join(tempOutputDir, "form.json");
69
68
  const formConfig = await (0, _ResolveFormInfo.readFormConfig)(formJsonPath, gfvLogger);
70
69
  formConfig.dependencies = {
71
70
  engine: await (0, _PublishedVersionUtils.getLastStableEngineVersion)(),
@@ -91,4 +90,4 @@ async function moveDirectory(sourcePath, targetPath) {
91
90
  }
92
91
  }
93
92
  }
94
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsInBhdGgiLCJfZnNFeHRyYSIsIl9QdWJsaXNoZWRWZXJzaW9uVXRpbHMiLCJfUmVzb2x2ZUZvcm1JbmZvIiwiX0ZzVXRpbHMiLCJfQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlciIsIl9XZWxsS25vd25EaXJlY3RvcmllcyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJydW5Jbml0Rm9ybSIsImNvbnRleHQiLCJvcHRpb25zIiwiZmFybURpcmVjdG9yeSIsImxvZ2dlciIsImdmdnMiLCJ1bmRlZmluZWQiLCJJbnZhbGlkQ29tbWFuZExpbmVBcmd1bWVudHNFcnJvciIsInRlbXBsYXRlRGlyIiwiam9pbiIsIl9fZGlybmFtZSIsImdmdiIsImdmdkxvZ2dlciIsIndpdGhQcmVmaXgiLCJmYXJtRGlyZWN0b3J5Rm9ybVBhdGgiLCJwYXRoRXhpc3RzIiwiZXJyb3JNZXNzYWdlIiwiZXJyb3IiLCJFcnJvciIsInRlbXBPdXRwdXREaXIiLCJybWRpciIsImxvZyIsImVuc3VyZURpciIsImhpZ2hsYW5kZXJGYXJtUGF0aCIsImhsUm5nUGF0aDEiLCJobFJuZ1BhdGgyIiwicmVsYXRpdmVGaWxlUGF0aCIsImdsb2JBc3luYyIsImN3ZCIsInRhcmdldFJlbGF0aXZlUGF0aCIsInJlcGxhY2UiLCJ2ZXJib3NlIiwic3RhdCIsImlzRGlyZWN0b3J5IiwiaGxybmciLCJleGlzdHNIbFJuZ1BhdGgiLCJjb250ZW50IiwicmVhZEZpbGUiLCJ0YXJnZXRDb250ZW50Iiwid3JpdGVGaWxlIiwiaW5jbHVkZXMiLCJmb3JtSnNvblBhdGgiLCJXZWxsS25vd25EaXJlY3RvcmllcyIsIkZvcm1Kc29uRmlsZU5hbWUiLCJmb3JtQ29uZmlnIiwicmVhZEZvcm1Db25maWciLCJkZXBlbmRlbmNpZXMiLCJlbmdpbmUiLCJnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbiIsImdlbmVyYXRvciIsImdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uIiwid3JpdGVKc29uIiwic3BhY2VzIiwibW92ZURpcmVjdG9yeSIsInNvdXJjZVBhdGgiLCJ0YXJnZXRQYXRoIiwicGxhdGZvcm0iLCJyZW5hbWUiLCJtb3ZlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0luaXRGb3JtL1J1bkluaXRGb3JtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBlbnN1cmVEaXIsIG1vdmUsIHBhdGhFeGlzdHMsIHJlYWRGaWxlLCByZW5hbWUsIHJtZGlyLCBzdGF0LCB3cml0ZUZpbGUsIHdyaXRlSnNvbiB9IGZyb20gXCJmcy1leHRyYVwiO1xuXG5pbXBvcnQgeyBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbiwgZ2V0TGFzdFN0YWJsZUdlbmVyYXRvclZlcnNpb24gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IHJlYWRGb3JtQ29uZmlnIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUmVzb2x2ZUZvcm1JbmZvXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IGdsb2JBc3luYyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0ZzVXRpbHNcIjtcbmltcG9ydCB7IEludmFsaWRDb21tYW5kTGluZUFyZ3VtZW50c0Vycm9yIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvT3B0aW9ucy9Db21tYW5kQmFzZWRPcHRpb25zUGFyc2VyXCI7XG5cbmltcG9ydCB7IEluaXRGb3JtT3B0aW9ucyB9IGZyb20gXCIuL0luaXRGb3JtT3B0aW9uc1wiO1xuaW1wb3J0IHsgV2VsbEtub3duRGlyZWN0b3JpZXMgfSBmcm9tIFwiLi4vQnVpbGRTZXJ2ZXIvUmVzb3VyY2VzQ29udHJvbGxlcnMvRGlyZWN0b3JpZXMvV2VsbEtub3duRGlyZWN0b3JpZXNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkluaXRGb3JtKFxuICAgIGNvbnRleHQ6IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQsXG4gICAgb3B0aW9uczogSW5pdEZvcm1PcHRpb25zLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZ1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbG9nZ2VyID0gY29udGV4dC5sb2dnZXI7XG4gICAgaWYgKG9wdGlvbnMuZ2Z2cyA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRDb21tYW5kTGluZUFyZ3VtZW50c0Vycm9yKFwi0J3QtSDRg9C60LDQt9Cw0L3QsCBHVkYg0LTQu9GPINGB0L7Qt9C00LDQvdC40Y9cIiwgXCJcIik7XG4gICAgfVxuXG4gICAgY29uc3QgdGVtcGxhdGVEaXIgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIkVtcHR5Rm9ybVRlbXBsYXRlXCIpO1xuXG4gICAgZm9yIChjb25zdCBnZnYgb2Ygb3B0aW9ucy5nZnZzKSB7XG4gICAgICAgIGNvbnN0IGdmdkxvZ2dlciA9IGxvZ2dlci53aXRoUHJlZml4KGdmdik7XG4gICAgICAgIGNvbnN0IGZhcm1EaXJlY3RvcnlGb3JtUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGdmdik7XG4gICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZhcm1EaXJlY3RvcnlGb3JtUGF0aCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGBEaXJlY3RvcnkgZm9yICcke2dmdn0nIGFscmVhZHkgZXhpc3RzLmA7XG4gICAgICAgICAgICBnZnZMb2dnZXIuZXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRlbXBPdXRwdXREaXIgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi50bXBcIiwgZ2Z2KTtcbiAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHModGVtcE91dHB1dERpcikpIHtcbiAgICAgICAgICAgIGF3YWl0IHJtZGlyKHRlbXBPdXRwdXREaXIpO1xuICAgICAgICB9XG4gICAgICAgIGdmdkxvZ2dlci5sb2coYENyZWF0aW5nIGRpcmVjdG9yeSB3aXRoIHNvdXJjZXMgZnJvbSB0ZW1wbGF0ZWApO1xuICAgICAgICBhd2FpdCBlbnN1cmVEaXIodGVtcE91dHB1dERpcik7XG4gICAgICAgIGNvbnN0IGhpZ2hsYW5kZXJGYXJtUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcIi4uXCIsIFwiaGlnaGxhbmRlci5mYXJtXCIsIFwiRm9ybXNcIiwgZ2Z2KTtcbiAgICAgICAgY29uc3QgaGxSbmdQYXRoMSA9IHBhdGguam9pbihoaWdobGFuZGVyRmFybVBhdGgsIGAke2dmdn0u0YHRhdC10LzQsC5ybmcueG1sYCk7XG4gICAgICAgIGNvbnN0IGhsUm5nUGF0aDIgPSBwYXRoLmpvaW4oaGlnaGxhbmRlckZhcm1QYXRoLCBcIkhpZ2hsYW5kZXJcIiwgYCR7Z2Z2fS7RgdGF0LXQvNCwLnJuZy54bWxgKTtcbiAgICAgICAgZm9yIChjb25zdCByZWxhdGl2ZUZpbGVQYXRoIG9mIGF3YWl0IGdsb2JBc3luYyhcIioqLypcIiwgeyBjd2Q6IHRlbXBsYXRlRGlyIH0pKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXRSZWxhdGl2ZVBhdGggPSByZWxhdGl2ZUZpbGVQYXRoLnJlcGxhY2UoL3tnZnZ9L2csIGdmdik7XG4gICAgICAgICAgICBnZnZMb2dnZXIudmVyYm9zZShgUHJvY2Vzc2luZyB0ZW1wbGF0ZSBwYXRoICR7cmVsYXRpdmVGaWxlUGF0aH1gKTtcbiAgICAgICAgICAgIGlmICgoYXdhaXQgc3RhdChwYXRoLmpvaW4odGVtcGxhdGVEaXIsIHJlbGF0aXZlRmlsZVBhdGgpKSkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICAgICAgICAgIGF3YWl0IGVuc3VyZURpcihwYXRoLmpvaW4odGVtcE91dHB1dERpciwgdGFyZ2V0UmVsYXRpdmVQYXRoKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5obHJuZyAmJlxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRSZWxhdGl2ZVBhdGggPT09IGBzY2hlbWFzLyR7Z2Z2fS4wLnJuZy54bWxgICYmXG4gICAgICAgICAgICAgICAgICAgICgoYXdhaXQgcGF0aEV4aXN0cyhobFJuZ1BhdGgxKSkgfHwgKGF3YWl0IHBhdGhFeGlzdHMoaGxSbmdQYXRoMikpKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleGlzdHNIbFJuZ1BhdGggPSAoYXdhaXQgcGF0aEV4aXN0cyhobFJuZ1BhdGgxKSkgPyBobFJuZ1BhdGgxIDogaGxSbmdQYXRoMjtcbiAgICAgICAgICAgICAgICAgICAgZ2Z2TG9nZ2VyLmxvZyhgQ29weSBzY2hlbWEgcm5nIGZpbGUgZnJvbSBoaWdobGFuZGVyLmZhcm0uYCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShleGlzdHNIbFJuZ1BhdGgsIFwidXRmLThcIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldENvbnRlbnQgPSBjb250ZW50LnJlcGxhY2UoL3tnZnZ9L2csIGdmdik7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShwYXRoLmpvaW4odGVtcE91dHB1dERpciwgdGFyZ2V0UmVsYXRpdmVQYXRoKSwgdGFyZ2V0Q29udGVudCwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0UmVsYXRpdmVQYXRoLmluY2x1ZGVzKFwiaGVscGVycy9hZGRQcmlsMS50eHRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8v0L/RgNC4INC60L7Qv9C40YDQvtCy0LDQvdC40LgganMg0YTQsNC50LvQvtCyIGJhYmVsINC90LDRgdC+0LLRi9Cy0LDQtdGCIHVzZSBzdHJpY3QsINC+0LHQvtGI0LvQuCDRgtCw0LrQuNC8INC/0YPRgtC10LxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShwYXRoLmpvaW4odGVtcGxhdGVEaXIsIHJlbGF0aXZlRmlsZVBhdGgpLCBcInV0Zi04XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbih0ZW1wT3V0cHV0RGlyLCB0YXJnZXRSZWxhdGl2ZVBhdGgucmVwbGFjZShcIi50eHRcIiwgXCIuanNcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ1dGYtOFwiXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKHBhdGguam9pbih0ZW1wbGF0ZURpciwgcmVsYXRpdmVGaWxlUGF0aCksIFwidXRmLThcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXRDb250ZW50ID0gY29udGVudC5yZXBsYWNlKC97Z2Z2fS9nLCBnZnYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKHBhdGguam9pbih0ZW1wT3V0cHV0RGlyLCB0YXJnZXRSZWxhdGl2ZVBhdGgpLCB0YXJnZXRDb250ZW50LCBcInV0Zi04XCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZ2Z2TG9nZ2VyLnZlcmJvc2UoYFByb2Nlc3NlZCB0ZW1wbGF0ZSBwYXRoICR7cmVsYXRpdmVGaWxlUGF0aH1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmb3JtSnNvblBhdGggPSBwYXRoLmpvaW4odGVtcE91dHB1dERpciwgV2VsbEtub3duRGlyZWN0b3JpZXMuRm9ybUpzb25GaWxlTmFtZSk7XG4gICAgICAgIGNvbnN0IGZvcm1Db25maWcgPSBhd2FpdCByZWFkRm9ybUNvbmZpZyhmb3JtSnNvblBhdGgsIGdmdkxvZ2dlcik7XG4gICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzID0ge1xuICAgICAgICAgICAgZW5naW5lOiBhd2FpdCBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbigpLFxuICAgICAgICAgICAgZ2VuZXJhdG9yOiBhd2FpdCBnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbigpLFxuICAgICAgICB9O1xuICAgICAgICBnZnZMb2dnZXIubG9nKGBTZXQgbGFzdCBzdGFibGUgdmVyc2lvbiAke2Zvcm1Db25maWcuZGVwZW5kZW5jaWVzLmVuZ2luZX1gKTtcbiAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgICAgIGdmdkxvZ2dlci5sb2coYE1vdmluZyBwcmVwYXJlZCBzb3VyY2VzIHRvICcke2Zhcm1EaXJlY3Rvcnl9J2ApO1xuICAgICAgICBhd2FpdCBtb3ZlRGlyZWN0b3J5KHRlbXBPdXRwdXREaXIsIGZhcm1EaXJlY3RvcnlGb3JtUGF0aCk7XG4gICAgICAgIGdmdkxvZ2dlci5sb2coYEZvcm0gY3JlYXRpbmcgY29tcGxldGVkLiBQYXRoOiAnJHtmYXJtRGlyZWN0b3J5Rm9ybVBhdGh9J2ApO1xuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gbW92ZURpcmVjdG9yeShzb3VyY2VQYXRoOiBzdHJpbmcsIHRhcmdldFBhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChvcy5wbGF0Zm9ybSgpICE9PSBcIndpbjMyXCIpIHtcbiAgICAgICAgYXdhaXQgcmVuYW1lKHNvdXJjZVBhdGgsIHRhcmdldFBhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzb3VyY2VQYXRoWzBdID09PSB0YXJnZXRQYXRoWzBdKSB7XG4gICAgICAgICAgICBhd2FpdCByZW5hbWUoc291cmNlUGF0aCwgdGFyZ2V0UGF0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBtb3ZlKHNvdXJjZVBhdGgsIHRhcmdldFBhdGgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxFQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxJQUFBLEdBQUFGLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxRQUFBLEdBQUFGLE9BQUE7QUFFQSxJQUFBRyxzQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksZ0JBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLFFBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLDBCQUFBLEdBQUFOLE9BQUE7QUFHQSxJQUFBTyxxQkFBQSxHQUFBUCxPQUFBO0FBQTRHLFNBQUFRLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFD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
93
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsInBhdGgiLCJfZnNFeHRyYSIsIl9QdWJsaXNoZWRWZXJzaW9uVXRpbHMiLCJfUmVzb2x2ZUZvcm1JbmZvIiwiX0ZzVXRpbHMiLCJfQ29tbWFuZEJhc2VkT3B0aW9uc1BhcnNlciIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJydW5Jbml0Rm9ybSIsImNvbnRleHQiLCJvcHRpb25zIiwiZmFybURpcmVjdG9yeSIsImxvZ2dlciIsImdmdnMiLCJ1bmRlZmluZWQiLCJJbnZhbGlkQ29tbWFuZExpbmVBcmd1bWVudHNFcnJvciIsInRlbXBsYXRlRGlyIiwiam9pbiIsIl9fZGlybmFtZSIsImdmdiIsImdmdkxvZ2dlciIsIndpdGhQcmVmaXgiLCJmYXJtRGlyZWN0b3J5Rm9ybVBhdGgiLCJwYXRoRXhpc3RzIiwiZXJyb3JNZXNzYWdlIiwiZXJyb3IiLCJFcnJvciIsInRlbXBPdXRwdXREaXIiLCJybWRpciIsImxvZyIsImVuc3VyZURpciIsImhpZ2hsYW5kZXJGYXJtUGF0aCIsImhsUm5nUGF0aDEiLCJobFJuZ1BhdGgyIiwicmVsYXRpdmVGaWxlUGF0aCIsImdsb2JBc3luYyIsImN3ZCIsInRhcmdldFJlbGF0aXZlUGF0aCIsInJlcGxhY2UiLCJ2ZXJib3NlIiwic3RhdCIsImlzRGlyZWN0b3J5IiwiaGxybmciLCJleGlzdHNIbFJuZ1BhdGgiLCJjb250ZW50IiwicmVhZEZpbGUiLCJ0YXJnZXRDb250ZW50Iiwid3JpdGVGaWxlIiwiaW5jbHVkZXMiLCJmb3JtSnNvblBhdGgiLCJmb3JtQ29uZmlnIiwicmVhZEZvcm1Db25maWciLCJkZXBlbmRlbmNpZXMiLCJlbmdpbmUiLCJnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbiIsImdlbmVyYXRvciIsImdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uIiwid3JpdGVKc29uIiwic3BhY2VzIiwibW92ZURpcmVjdG9yeSIsInNvdXJjZVBhdGgiLCJ0YXJnZXRQYXRoIiwicGxhdGZvcm0iLCJyZW5hbWUiLCJtb3ZlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL0luaXRGb3JtL1J1bkluaXRGb3JtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIG9zIGZyb20gXCJvc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBlbnN1cmVEaXIsIG1vdmUsIHBhdGhFeGlzdHMsIHJlYWRGaWxlLCByZW5hbWUsIHJtZGlyLCBzdGF0LCB3cml0ZUZpbGUsIHdyaXRlSnNvbiB9IGZyb20gXCJmcy1leHRyYVwiO1xuXG5pbXBvcnQgeyBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbiwgZ2V0TGFzdFN0YWJsZUdlbmVyYXRvclZlcnNpb24gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IHJlYWRGb3JtQ29uZmlnIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUmVzb2x2ZUZvcm1JbmZvXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IGdsb2JBc3luYyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0ZzVXRpbHNcIjtcbmltcG9ydCB7IEludmFsaWRDb21tYW5kTGluZUFyZ3VtZW50c0Vycm9yIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvT3B0aW9ucy9Db21tYW5kQmFzZWRPcHRpb25zUGFyc2VyXCI7XG5cbmltcG9ydCB7IEluaXRGb3JtT3B0aW9ucyB9IGZyb20gXCIuL0luaXRGb3JtT3B0aW9uc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuSW5pdEZvcm0oXG4gICAgY29udGV4dDogQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCxcbiAgICBvcHRpb25zOiBJbml0Rm9ybU9wdGlvbnMsXG4gICAgZmFybURpcmVjdG9yeTogc3RyaW5nXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBsb2dnZXIgPSBjb250ZXh0LmxvZ2dlcjtcbiAgICBpZiAob3B0aW9ucy5nZnZzID09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZENvbW1hbmRMaW5lQXJndW1lbnRzRXJyb3IoXCLQndC1INGD0LrQsNC30LDQvdCwIEdWRiDQtNC70Y8g0YHQvtC30LTQsNC90LjRj1wiLCBcIlwiKTtcbiAgICB9XG5cbiAgICBjb25zdCB0ZW1wbGF0ZURpciA9IHBhdGguam9pbihfX2Rpcm5hbWUsIFwiRW1wdHlGb3JtVGVtcGxhdGVcIik7XG5cbiAgICBmb3IgKGNvbnN0IGdmdiBvZiBvcHRpb25zLmdmdnMpIHtcbiAgICAgICAgY29uc3QgZ2Z2TG9nZ2VyID0gbG9nZ2VyLndpdGhQcmVmaXgoZ2Z2KTtcbiAgICAgICAgY29uc3QgZmFybURpcmVjdG9yeUZvcm1QYXRoID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgZ2Z2KTtcbiAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMoZmFybURpcmVjdG9yeUZvcm1QYXRoKSkge1xuICAgICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYERpcmVjdG9yeSBmb3IgJyR7Z2Z2fScgYWxyZWFkeSBleGlzdHMuYDtcbiAgICAgICAgICAgIGdmdkxvZ2dlci5lcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGVtcE91dHB1dERpciA9IHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLnRtcFwiLCBnZnYpO1xuICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyh0ZW1wT3V0cHV0RGlyKSkge1xuICAgICAgICAgICAgYXdhaXQgcm1kaXIodGVtcE91dHB1dERpcik7XG4gICAgICAgIH1cbiAgICAgICAgZ2Z2TG9nZ2VyLmxvZyhgQ3JlYXRpbmcgZGlyZWN0b3J5IHdpdGggc291cmNlcyBmcm9tIHRlbXBsYXRlYCk7XG4gICAgICAgIGF3YWl0IGVuc3VyZURpcih0ZW1wT3V0cHV0RGlyKTtcbiAgICAgICAgY29uc3QgaGlnaGxhbmRlckZhcm1QYXRoID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiLi5cIiwgXCJoaWdobGFuZGVyLmZhcm1cIiwgXCJGb3Jtc1wiLCBnZnYpO1xuICAgICAgICBjb25zdCBobFJuZ1BhdGgxID0gcGF0aC5qb2luKGhpZ2hsYW5kZXJGYXJtUGF0aCwgYCR7Z2Z2fS7RgdGF0LXQvNCwLnJuZy54bWxgKTtcbiAgICAgICAgY29uc3QgaGxSbmdQYXRoMiA9IHBhdGguam9pbihoaWdobGFuZGVyRmFybVBhdGgsIFwiSGlnaGxhbmRlclwiLCBgJHtnZnZ9LtGB0YXQtdC80LAucm5nLnhtbGApO1xuICAgICAgICBmb3IgKGNvbnN0IHJlbGF0aXZlRmlsZVBhdGggb2YgYXdhaXQgZ2xvYkFzeW5jKFwiKiovKlwiLCB7IGN3ZDogdGVtcGxhdGVEaXIgfSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldFJlbGF0aXZlUGF0aCA9IHJlbGF0aXZlRmlsZVBhdGgucmVwbGFjZSgve2dmdn0vZywgZ2Z2KTtcbiAgICAgICAgICAgIGdmdkxvZ2dlci52ZXJib3NlKGBQcm9jZXNzaW5nIHRlbXBsYXRlIHBhdGggJHtyZWxhdGl2ZUZpbGVQYXRofWApO1xuICAgICAgICAgICAgaWYgKChhd2FpdCBzdGF0KHBhdGguam9pbih0ZW1wbGF0ZURpciwgcmVsYXRpdmVGaWxlUGF0aCkpKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgZW5zdXJlRGlyKHBhdGguam9pbih0ZW1wT3V0cHV0RGlyLCB0YXJnZXRSZWxhdGl2ZVBhdGgpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmhscm5nICYmXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFJlbGF0aXZlUGF0aCA9PT0gYHNjaGVtYXMvJHtnZnZ9LjAucm5nLnhtbGAgJiZcbiAgICAgICAgICAgICAgICAgICAgKChhd2FpdCBwYXRoRXhpc3RzKGhsUm5nUGF0aDEpKSB8fCAoYXdhaXQgcGF0aEV4aXN0cyhobFJuZ1BhdGgyKSkpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0c0hsUm5nUGF0aCA9IChhd2FpdCBwYXRoRXhpc3RzKGhsUm5nUGF0aDEpKSA/IGhsUm5nUGF0aDEgOiBobFJuZ1BhdGgyO1xuICAgICAgICAgICAgICAgICAgICBnZnZMb2dnZXIubG9nKGBDb3B5IHNjaGVtYSBybmcgZmlsZSBmcm9tIGhpZ2hsYW5kZXIuZmFybS5gKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGV4aXN0c0hsUm5nUGF0aCwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0Q29udGVudCA9IGNvbnRlbnQucmVwbGFjZSgve2dmdn0vZywgZ2Z2KTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlKHBhdGguam9pbih0ZW1wT3V0cHV0RGlyLCB0YXJnZXRSZWxhdGl2ZVBhdGgpLCB0YXJnZXRDb250ZW50LCBcInV0Zi04XCIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRSZWxhdGl2ZVBhdGguaW5jbHVkZXMoXCJoZWxwZXJzL2FkZFByaWwxLnR4dFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy/Qv9GA0Lgg0LrQvtC/0LjRgNC+0LLQsNC90LjQuCBqcyDRhNCw0LnQu9C+0LIgYmFiZWwg0L3QsNGB0L7QstGL0LLQsNC10YIgdXNlIHN0cmljdCwg0L7QsdC+0YjQu9C4INGC0LDQutC40Lwg0L/Rg9GC0LXQvFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKHBhdGguam9pbih0ZW1wbGF0ZURpciwgcmVsYXRpdmVGaWxlUGF0aCksIFwidXRmLThcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHRlbXBPdXRwdXREaXIsIHRhcmdldFJlbGF0aXZlUGF0aC5yZXBsYWNlKFwiLnR4dFwiLCBcIi5qc1wiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInV0Zi04XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGUocGF0aC5qb2luKHRlbXBsYXRlRGlyLCByZWxhdGl2ZUZpbGVQYXRoKSwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldENvbnRlbnQgPSBjb250ZW50LnJlcGxhY2UoL3tnZnZ9L2csIGdmdik7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGUocGF0aC5qb2luKHRlbXBPdXRwdXREaXIsIHRhcmdldFJlbGF0aXZlUGF0aCksIHRhcmdldENvbnRlbnQsIFwidXRmLThcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBnZnZMb2dnZXIudmVyYm9zZShgUHJvY2Vzc2VkIHRlbXBsYXRlIHBhdGggJHtyZWxhdGl2ZUZpbGVQYXRofWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvcm1Kc29uUGF0aCA9IHBhdGguam9pbih0ZW1wT3V0cHV0RGlyLCBcImZvcm0uanNvblwiKTtcbiAgICAgICAgY29uc3QgZm9ybUNvbmZpZyA9IGF3YWl0IHJlYWRGb3JtQ29uZmlnKGZvcm1Kc29uUGF0aCwgZ2Z2TG9nZ2VyKTtcbiAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgPSB7XG4gICAgICAgICAgICBlbmdpbmU6IGF3YWl0IGdldExhc3RTdGFibGVFbmdpbmVWZXJzaW9uKCksXG4gICAgICAgICAgICBnZW5lcmF0b3I6IGF3YWl0IGdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uKCksXG4gICAgICAgIH07XG4gICAgICAgIGdmdkxvZ2dlci5sb2coYFNldCBsYXN0IHN0YWJsZSB2ZXJzaW9uICR7Zm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMuZW5naW5lfWApO1xuICAgICAgICBhd2FpdCB3cml0ZUpzb24oZm9ybUpzb25QYXRoLCBmb3JtQ29uZmlnLCB7IHNwYWNlczogMiB9KTtcbiAgICAgICAgZ2Z2TG9nZ2VyLmxvZyhgTW92aW5nIHByZXBhcmVkIHNvdXJjZXMgdG8gJyR7ZmFybURpcmVjdG9yeX0nYCk7XG4gICAgICAgIGF3YWl0IG1vdmVEaXJlY3RvcnkodGVtcE91dHB1dERpciwgZmFybURpcmVjdG9yeUZvcm1QYXRoKTtcbiAgICAgICAgZ2Z2TG9nZ2VyLmxvZyhgRm9ybSBjcmVhdGluZyBjb21wbGV0ZWQuIFBhdGg6ICcke2Zhcm1EaXJlY3RvcnlGb3JtUGF0aH0nYCk7XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBtb3ZlRGlyZWN0b3J5KHNvdXJjZVBhdGg6IHN0cmluZywgdGFyZ2V0UGF0aDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKG9zLnBsYXRmb3JtKCkgIT09IFwid2luMzJcIikge1xuICAgICAgICBhd2FpdCByZW5hbWUoc291cmNlUGF0aCwgdGFyZ2V0UGF0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHNvdXJjZVBhdGhbMF0gPT09IHRhcmdldFBhdGhbMF0pIHtcbiAgICAgICAgICAgIGF3YWl0IHJlbmFtZShzb3VyY2VQYXRoLCB0YXJnZXRQYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IG1vdmUoc291cmNlUGF0aCwgdGFyZ2V0UGF0aCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLEVBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLElBQUEsR0FBQUYsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLHNCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxnQkFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sMEJBQUEsR0FBQU4sT0FBQTtBQUFtRyxTQUFBTyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBVCx3QkFBQWEsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLG9CQUFBQSxHQUFBLHdC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
@@ -12,15 +12,12 @@ var _PublishedVersionUtils = require("../../BuildTasks/PublishedVersionUtils");
12
12
  var _ResolveFormInfo = require("../../BuildTasks/ResolveFormInfo");
13
13
  var _FsUtils = require("../../Commons/FsUtils");
14
14
  var _Observe = require("../../Commons/TasksCore/Observe");
15
- var _WellKnownDirectories = require("../BuildServer/ResourcesControllers/Directories/WellKnownDirectories");
16
15
  async function runLocalization(context, options, farmDirectory, engineDirectory, candyModulesDirectory, hlFarmDirectoryPath) {
17
16
  const formDirPath = _path.default.join(farmDirectory, "forms", options.gfv);
18
17
  if (!(await (0, _fsExtra.pathExists)(formDirPath))) {
19
18
  throw new Error(`GFV ${options.gfv} don't exist`);
20
19
  }
21
-
22
- // TODO
23
- const localizeChain = _Observe.Observe.file(_path.default.join(formDirPath, _WellKnownDirectories.WellKnownDirectories.FormJsonFileName)).transform(formJsonFile => (0, _ResolveFormInfo.resolveFormInfo)(formJsonFile, formDirPath, engineDirectory, context.logger.withPrefix(`FORM:${options.gfv}`))).transform(async x => {
20
+ const localizeChain = _Observe.Observe.file(_path.default.join(formDirPath, "form.json")).transform(formJsonFile => (0, _ResolveFormInfo.resolveFormInfo)(formJsonFile, formDirPath, engineDirectory, context.logger.withPrefix(`FORM:${options.gfv}`))).transform(async x => {
24
21
  if (options.useLocalGeneratorSources) {
25
22
  return {
26
23
  ...x,
@@ -72,4 +69,4 @@ async function writeFilesBatch(filesBatch, outputDirectory) {
72
69
  }
73
70
  }
74
71
  }
75
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfQWNxdWlyZUZvcm1HZW5lcmF0b3IiLCJfUHVibGlzaGVkVmVyc2lvblV0aWxzIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Gc1V0aWxzIiwiX09ic2VydmUiLCJfV2VsbEtub3duRGlyZWN0b3JpZXMiLCJydW5Mb2NhbGl6YXRpb24iLCJjb250ZXh0Iiwib3B0aW9ucyIsImZhcm1EaXJlY3RvcnkiLCJlbmdpbmVEaXJlY3RvcnkiLCJjYW5keU1vZHVsZXNEaXJlY3RvcnkiLCJobEZhcm1EaXJlY3RvcnlQYXRoIiwiZm9ybURpclBhdGgiLCJwYXRoIiwiam9pbiIsImdmdiIsInBhdGhFeGlzdHMiLCJFcnJvciIsImxvY2FsaXplQ2hhaW4iLCJPYnNlcnZlIiwiZmlsZSIsIldlbGxLbm93bkRpcmVjdG9yaWVzIiwiRm9ybUpzb25GaWxlTmFtZSIsInRyYW5zZm9ybSIsImZvcm1Kc29uRmlsZSIsInJlc29sdmVGb3JtSW5mbyIsImxvZ2dlciIsIndpdGhQcmVmaXgiLCJ4IiwidXNlTG9jYWxHZW5lcmF0b3JTb3VyY2VzIiwiZ2VuZXJhdG9yU291cmNlIiwicmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlIiwiZ2VuZXJhdG9yVmVyc2lvbiIsInVuZGVmaW5lZCIsInJlc29sdmVHZW5lcmF0b3JWZXJzaW9uIiwiYXR0YWNoIiwiZmkiLCJnZW5lcmF0b3JGYWN0b3J5IiwieSIsImdlbmVyYXRvciIsImdldEdlbmVyYXRvclNvdXJjZUtleSIsImRvIiwiZm9ybVNvdXJjZSIsInJlYWRTb3VyY2VzIiwiZGljdGlvbmFyeU9ubHkiLCJsb2ciLCJsb2NhbGl6YXRpb25EaWN0aW9uYXJ5IiwiZ2V0RGljdGlvbmFyeSIsInN1Z2FyQ29udGVudCIsInJlc291cmNlcyIsIndyaXRlRmlsZXNCYXRjaCIsImxvY2FsaXplZFN1Z2FyIiwiZ2V0TG9jYWxpemVkU3VnYXIiLCJvbGRTdWdhckRpcmVjdG9yeSIsImVuc3VyZURpciIsIlByb21pc2UiLCJhbGwiLCJPYmplY3QiLCJlbnRyaWVzIiwibWFwIiwiZmlsZW5hbWUiLCJzdWdhciIsIndyaXRlRmlsZUFzeW5jIiwiY3VycmVudFZhbHVlIiwiZmlsZXNCYXRjaCIsIm91dHB1dERpcmVjdG9yeSIsImZpbGVQYXRoIiwia2V5cyIsImNvbnRlbnQiLCJwYXJzZSIsImRpciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9Mb2NhbGl6YXRpb24vUnVuTG9jYWxpemF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IGVuc3VyZURpciwgcGF0aEV4aXN0cyB9IGZyb20gXCJmcy1leHRyYVwiO1xuXG5pbXBvcnQgeyBnZW5lcmF0b3JGYWN0b3J5LCBnZXRHZW5lcmF0b3JTb3VyY2VLZXkgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9HZW5lcmF0b3IvQWNxdWlyZUZvcm1HZW5lcmF0b3JcIjtcbmltcG9ydCB7IHJlc29sdmVHZW5lcmF0b3JWZXJzaW9uLCByZXNvbHZlTG9jYWxHZW5lcmF0b3JTb3VyY2UgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IHJlc29sdmVGb3JtSW5mbyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gXCIuLi8uLi9Db21tb25zL0NvbnNvbGVBcHBsaWNhdGlvbi9Db25zb2xlQXBwbGljYXRpb25Db250ZXh0XCI7XG5pbXBvcnQgeyB3cml0ZUZpbGVBc3luYyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0ZzVXRpbHNcIjtcbmltcG9ydCB7IE9ic2VydmUgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvT2JzZXJ2ZVwiO1xuXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25PcHRpb25zIH0gZnJvbSBcIi4vTG9jYWxpemF0aW9uT3B0aW9uc1wiO1xuaW1wb3J0IHsgV2VsbEtub3duRGlyZWN0b3JpZXMgfSBmcm9tIFwiLi4vQnVpbGRTZXJ2ZXIvUmVzb3VyY2VzQ29udHJvbGxlcnMvRGlyZWN0b3JpZXMvV2VsbEtub3duRGlyZWN0b3JpZXNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkxvY2FsaXphdGlvbihcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IExvY2FsaXphdGlvbk9wdGlvbnMsXG4gICAgZmFybURpcmVjdG9yeTogc3RyaW5nLFxuICAgIGVuZ2luZURpcmVjdG9yeTogc3RyaW5nLFxuICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIGhsRmFybURpcmVjdG9yeVBhdGg6IHN0cmluZ1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZm9ybURpclBhdGggPSBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBvcHRpb25zLmdmdik7XG4gICAgaWYgKCEoYXdhaXQgcGF0aEV4aXN0cyhmb3JtRGlyUGF0aCkpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgR0ZWICR7b3B0aW9ucy5nZnZ9IGRvbid0IGV4aXN0YCk7XG4gICAgfVxuXG4gICAgLy8gVE9ET1xuICAgIGNvbnN0IGxvY2FsaXplQ2hhaW4gPSBPYnNlcnZlLmZpbGUocGF0aC5qb2luKGZvcm1EaXJQYXRoLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lKSlcbiAgICAgICAgLnRyYW5zZm9ybShmb3JtSnNvbkZpbGUgPT5cbiAgICAgICAgICAgIHJlc29sdmVGb3JtSW5mbyhcbiAgICAgICAgICAgICAgICBmb3JtSnNvbkZpbGUsXG4gICAgICAgICAgICAgICAgZm9ybURpclBhdGgsXG4gICAgICAgICAgICAgICAgZW5naW5lRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoYEZPUk06JHtvcHRpb25zLmdmdn1gKVxuICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgIC50cmFuc2Zvcm0oYXN5bmMgeCA9PiB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy51c2VMb2NhbEdlbmVyYXRvclNvdXJjZXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi54LFxuICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3JTb3VyY2U6IHJlc29sdmVMb2NhbEdlbmVyYXRvclNvdXJjZShlbmdpbmVEaXJlY3RvcnkpLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh4LmdlbmVyYXRvclZlcnNpb24gPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZ2VuZXJhdG9yVmVyc2lvbiBpcyBubyBkZWZpbmVkXCIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLngsXG4gICAgICAgICAgICAgICAgZ2VuZXJhdG9yU291cmNlOiBhd2FpdCByZXNvbHZlR2VuZXJhdG9yVmVyc2lvbih4LmdlbmVyYXRvclZlcnNpb24pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICAgICAgLmF0dGFjaChcbiAgICAgICAgICAgIGFzeW5jIGZpID0+IGdlbmVyYXRvckZhY3RvcnkoZmkuZ2VuZXJhdG9yU291cmNlLCBjYW5keU1vZHVsZXNEaXJlY3RvcnksIGZhbHNlKSxcbiAgICAgICAgICAgIGFzeW5jIChmaSwgeSkgPT4gKHsgLi4uZmksIGdlbmVyYXRvcjogeSB9KSxcbiAgICAgICAgICAgIGFzeW5jIGZpID0+IGdldEdlbmVyYXRvclNvdXJjZUtleShmaS5nZW5lcmF0b3JTb3VyY2UpXG4gICAgICAgIClcbiAgICAgICAgLmRvKGFzeW5jIGZpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvZ2dlciA9IGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoXCJMT0NBTElaRVwiKS53aXRoUHJlZml4KG9wdGlvbnMuZ2Z2KTtcblxuICAgICAgICAgICAgY29uc3QgZm9ybVNvdXJjZSA9IGF3YWl0IGZpLmdlbmVyYXRvci5yZWFkU291cmNlcyhmb3JtRGlyUGF0aCwgZmFybURpcmVjdG9yeSwgaGxGYXJtRGlyZWN0b3J5UGF0aCk7XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmRpY3Rpb25hcnlPbmx5KSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkdlbmVyYXRlIHRyYW5zbGF0ZSBkaWN0aW9uYXJ5XCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvY2FsaXphdGlvbkRpY3Rpb25hcnkgPSBhd2FpdCBmaS5nZW5lcmF0b3IuZ2V0RGljdGlvbmFyeShcbiAgICAgICAgICAgICAgICAgICAgZm9ybVNvdXJjZS5zdWdhckNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Tb3VyY2UucmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBsb2dnZXIubG9nKFwiV3JpdGUgdHJhbnNsYXRlIGRpY3Rpb25hcnlcIik7XG4gICAgICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlc0JhdGNoKGxvY2FsaXphdGlvbkRpY3Rpb25hcnksIGZvcm1EaXJQYXRoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkdlbmVyYXRlIGxvY2FsaXphdGlvbiBzdWdhclwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbGl6ZWRTdWdhciA9IGF3YWl0IGZpLmdlbmVyYXRvci5nZXRMb2NhbGl6ZWRTdWdhcihcbiAgICAgICAgICAgICAgICAgICAgZm9ybVNvdXJjZS5zdWdhckNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Tb3VyY2UucmVzb3VyY2VzXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGxvZ2dlci5sb2coXCJHZW5lcmF0ZSB0cmFuc2xhdGUgZGljdGlvbmFyeVwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbGl6YXRpb25EaWN0aW9uYXJ5ID0gYXdhaXQgZmkuZ2VuZXJhdG9yLmdldERpY3Rpb25hcnkobG9jYWxpemVkU3VnYXIsIGZvcm1Tb3VyY2UucmVzb3VyY2VzKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG9sZFN1Z2FyRGlyZWN0b3J5ID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcIm9sZHN1Z2FyXCIpO1xuICAgICAgICAgICAgICAgIGxvZ2dlci5sb2coYFdyaXRlIHByZXZpb3VzIHZlcnNpb24gc3VnYXIgaW4gXCIke29sZFN1Z2FyRGlyZWN0b3J5fVwiYCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgZW5zdXJlRGlyKG9sZFN1Z2FyRGlyZWN0b3J5KTtcbiAgICAgICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoZm9ybVNvdXJjZS5zdWdhckNvbnRlbnQpLm1hcCgoW2ZpbGVuYW1lLCBzdWdhcl0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGVBc3luYyhwYXRoLmpvaW4ob2xkU3VnYXJEaXJlY3RvcnksIGZpbGVuYW1lICsgXCIuc3VnYXIueG1sXCIpLCBzdWdhcilcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBsb2dnZXIubG9nKFwiV3JpdGUgbG9jYWxpemF0aW9uIHN1Z2FyXCIpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZXNCYXRjaChsb2NhbGl6ZWRTdWdhciwgZm9ybURpclBhdGgpO1xuXG4gICAgICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIldyaXRlIHRyYW5zbGF0ZSBkaWN0aW9uYXJ5XCIpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZXNCYXRjaChsb2NhbGl6YXRpb25EaWN0aW9uYXJ5LCBmb3JtRGlyUGF0aCk7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkxvY2FsaXplIHN1Y2Nlc3NmdWwgY29tcGxldGVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgYXdhaXQgbG9jYWxpemVDaGFpbi5jdXJyZW50VmFsdWU7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHdyaXRlRmlsZXNCYXRjaChcbiAgICBmaWxlc0JhdGNoOiB7XG4gICAgICAgIFtyZWxhdGl2ZUZpbGVOYW1lOiBzdHJpbmddOiBzdHJpbmcgfCBCdWZmZXI7XG4gICAgfSxcbiAgICBvdXRwdXREaXJlY3Rvcnk6IHN0cmluZ1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBPYmplY3Qua2V5cyhmaWxlc0JhdGNoKSkge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gZmlsZXNCYXRjaFtmaWxlUGF0aF07XG4gICAgICAgIGlmIChjb250ZW50ICE9IHVuZGVmaW5lZCAmJiBjb250ZW50ICE9PSBcIlwiKSB7XG4gICAgICAgICAgICBhd2FpdCBlbnN1cmVEaXIocGF0aC5qb2luKG91dHB1dERpcmVjdG9yeSwgcGF0aC5wYXJzZShmaWxlUGF0aCkuZGlyKSk7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGVBc3luYyhwYXRoLmpvaW4ob3V0cHV0RGlyZWN0b3J5LCBmaWxlUGF0aCksIGNvbnRlbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUscUJBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLHNCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxnQkFBQSxH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
72
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfQWNxdWlyZUZvcm1HZW5lcmF0b3IiLCJfUHVibGlzaGVkVmVyc2lvblV0aWxzIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Gc1V0aWxzIiwiX09ic2VydmUiLCJydW5Mb2NhbGl6YXRpb24iLCJjb250ZXh0Iiwib3B0aW9ucyIsImZhcm1EaXJlY3RvcnkiLCJlbmdpbmVEaXJlY3RvcnkiLCJjYW5keU1vZHVsZXNEaXJlY3RvcnkiLCJobEZhcm1EaXJlY3RvcnlQYXRoIiwiZm9ybURpclBhdGgiLCJwYXRoIiwiam9pbiIsImdmdiIsInBhdGhFeGlzdHMiLCJFcnJvciIsImxvY2FsaXplQ2hhaW4iLCJPYnNlcnZlIiwiZmlsZSIsInRyYW5zZm9ybSIsImZvcm1Kc29uRmlsZSIsInJlc29sdmVGb3JtSW5mbyIsImxvZ2dlciIsIndpdGhQcmVmaXgiLCJ4IiwidXNlTG9jYWxHZW5lcmF0b3JTb3VyY2VzIiwiZ2VuZXJhdG9yU291cmNlIiwicmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlIiwiZ2VuZXJhdG9yVmVyc2lvbiIsInVuZGVmaW5lZCIsInJlc29sdmVHZW5lcmF0b3JWZXJzaW9uIiwiYXR0YWNoIiwiZmkiLCJnZW5lcmF0b3JGYWN0b3J5IiwieSIsImdlbmVyYXRvciIsImdldEdlbmVyYXRvclNvdXJjZUtleSIsImRvIiwiZm9ybVNvdXJjZSIsInJlYWRTb3VyY2VzIiwiZGljdGlvbmFyeU9ubHkiLCJsb2ciLCJsb2NhbGl6YXRpb25EaWN0aW9uYXJ5IiwiZ2V0RGljdGlvbmFyeSIsInN1Z2FyQ29udGVudCIsInJlc291cmNlcyIsIndyaXRlRmlsZXNCYXRjaCIsImxvY2FsaXplZFN1Z2FyIiwiZ2V0TG9jYWxpemVkU3VnYXIiLCJvbGRTdWdhckRpcmVjdG9yeSIsImVuc3VyZURpciIsIlByb21pc2UiLCJhbGwiLCJPYmplY3QiLCJlbnRyaWVzIiwibWFwIiwiZmlsZW5hbWUiLCJzdWdhciIsIndyaXRlRmlsZUFzeW5jIiwiY3VycmVudFZhbHVlIiwiZmlsZXNCYXRjaCIsIm91dHB1dERpcmVjdG9yeSIsImZpbGVQYXRoIiwia2V5cyIsImNvbnRlbnQiLCJwYXJzZSIsImRpciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9Mb2NhbGl6YXRpb24vUnVuTG9jYWxpemF0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IGVuc3VyZURpciwgcGF0aEV4aXN0cyB9IGZyb20gXCJmcy1leHRyYVwiO1xuXG5pbXBvcnQgeyBnZW5lcmF0b3JGYWN0b3J5LCBnZXRHZW5lcmF0b3JTb3VyY2VLZXkgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9HZW5lcmF0b3IvQWNxdWlyZUZvcm1HZW5lcmF0b3JcIjtcbmltcG9ydCB7IHJlc29sdmVHZW5lcmF0b3JWZXJzaW9uLCByZXNvbHZlTG9jYWxHZW5lcmF0b3JTb3VyY2UgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9QdWJsaXNoZWRWZXJzaW9uVXRpbHNcIjtcbmltcG9ydCB7IHJlc29sdmVGb3JtSW5mbyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gXCIuLi8uLi9Db21tb25zL0NvbnNvbGVBcHBsaWNhdGlvbi9Db25zb2xlQXBwbGljYXRpb25Db250ZXh0XCI7XG5pbXBvcnQgeyB3cml0ZUZpbGVBc3luYyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0ZzVXRpbHNcIjtcbmltcG9ydCB7IE9ic2VydmUgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvT2JzZXJ2ZVwiO1xuXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25PcHRpb25zIH0gZnJvbSBcIi4vTG9jYWxpemF0aW9uT3B0aW9uc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuTG9jYWxpemF0aW9uKFxuICAgIGNvbnRleHQ6IENvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHQsXG4gICAgb3B0aW9uczogTG9jYWxpemF0aW9uT3B0aW9ucyxcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgZW5naW5lRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgY2FuZHlNb2R1bGVzRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgaGxGYXJtRGlyZWN0b3J5UGF0aDogc3RyaW5nXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIG9wdGlvbnMuZ2Z2KTtcbiAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKGZvcm1EaXJQYXRoKSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBHRlYgJHtvcHRpb25zLmdmdn0gZG9uJ3QgZXhpc3RgKTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2NhbGl6ZUNoYWluID0gT2JzZXJ2ZS5maWxlKHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJmb3JtLmpzb25cIikpXG4gICAgICAgIC50cmFuc2Zvcm0oZm9ybUpzb25GaWxlID0+XG4gICAgICAgICAgICByZXNvbHZlRm9ybUluZm8oXG4gICAgICAgICAgICAgICAgZm9ybUpzb25GaWxlLFxuICAgICAgICAgICAgICAgIGZvcm1EaXJQYXRoLFxuICAgICAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICBjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KGBGT1JNOiR7b3B0aW9ucy5nZnZ9YClcbiAgICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAudHJhbnNmb3JtKGFzeW5jIHggPT4ge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMudXNlTG9jYWxHZW5lcmF0b3JTb3VyY2VzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4ueCxcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yU291cmNlOiByZXNvbHZlTG9jYWxHZW5lcmF0b3JTb3VyY2UoZW5naW5lRGlyZWN0b3J5KSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoeC5nZW5lcmF0b3JWZXJzaW9uID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImdlbmVyYXRvclZlcnNpb24gaXMgbm8gZGVmaW5lZFwiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi54LFxuICAgICAgICAgICAgICAgIGdlbmVyYXRvclNvdXJjZTogYXdhaXQgcmVzb2x2ZUdlbmVyYXRvclZlcnNpb24oeC5nZW5lcmF0b3JWZXJzaW9uKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgICAgIC5hdHRhY2goXG4gICAgICAgICAgICBhc3luYyBmaSA9PiBnZW5lcmF0b3JGYWN0b3J5KGZpLmdlbmVyYXRvclNvdXJjZSwgY2FuZHlNb2R1bGVzRGlyZWN0b3J5LCBmYWxzZSksXG4gICAgICAgICAgICBhc3luYyAoZmksIHkpID0+ICh7IC4uLmZpLCBnZW5lcmF0b3I6IHkgfSksXG4gICAgICAgICAgICBhc3luYyBmaSA9PiBnZXRHZW5lcmF0b3JTb3VyY2VLZXkoZmkuZ2VuZXJhdG9yU291cmNlKVxuICAgICAgICApXG4gICAgICAgIC5kbyhhc3luYyBmaSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsb2dnZXIgPSBjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KFwiTE9DQUxJWkVcIikud2l0aFByZWZpeChvcHRpb25zLmdmdik7XG5cbiAgICAgICAgICAgIGNvbnN0IGZvcm1Tb3VyY2UgPSBhd2FpdCBmaS5nZW5lcmF0b3IucmVhZFNvdXJjZXMoZm9ybURpclBhdGgsIGZhcm1EaXJlY3RvcnksIGhsRmFybURpcmVjdG9yeVBhdGgpO1xuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5kaWN0aW9uYXJ5T25seSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5sb2coXCJHZW5lcmF0ZSB0cmFuc2xhdGUgZGljdGlvbmFyeVwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBsb2NhbGl6YXRpb25EaWN0aW9uYXJ5ID0gYXdhaXQgZmkuZ2VuZXJhdG9yLmdldERpY3Rpb25hcnkoXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Tb3VyY2Uuc3VnYXJDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICBmb3JtU291cmNlLnJlc291cmNlc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIldyaXRlIHRyYW5zbGF0ZSBkaWN0aW9uYXJ5XCIpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZXNCYXRjaChsb2NhbGl6YXRpb25EaWN0aW9uYXJ5LCBmb3JtRGlyUGF0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5sb2coXCJHZW5lcmF0ZSBsb2NhbGl6YXRpb24gc3VnYXJcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9jYWxpemVkU3VnYXIgPSBhd2FpdCBmaS5nZW5lcmF0b3IuZ2V0TG9jYWxpemVkU3VnYXIoXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Tb3VyY2Uuc3VnYXJDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICBmb3JtU291cmNlLnJlc291cmNlc1xuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBsb2dnZXIubG9nKFwiR2VuZXJhdGUgdHJhbnNsYXRlIGRpY3Rpb25hcnlcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9jYWxpemF0aW9uRGljdGlvbmFyeSA9IGF3YWl0IGZpLmdlbmVyYXRvci5nZXREaWN0aW9uYXJ5KGxvY2FsaXplZFN1Z2FyLCBmb3JtU291cmNlLnJlc291cmNlcyk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBvbGRTdWdhckRpcmVjdG9yeSA9IHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJvbGRzdWdhclwiKTtcbiAgICAgICAgICAgICAgICBsb2dnZXIubG9nKGBXcml0ZSBwcmV2aW91cyB2ZXJzaW9uIHN1Z2FyIGluIFwiJHtvbGRTdWdhckRpcmVjdG9yeX1cImApO1xuICAgICAgICAgICAgICAgIGF3YWl0IGVuc3VyZURpcihvbGRTdWdhckRpcmVjdG9yeSk7XG4gICAgICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGZvcm1Tb3VyY2Uuc3VnYXJDb250ZW50KS5tYXAoKFtmaWxlbmFtZSwgc3VnYXJdKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlQXN5bmMocGF0aC5qb2luKG9sZFN1Z2FyRGlyZWN0b3J5LCBmaWxlbmFtZSArIFwiLnN1Z2FyLnhtbFwiKSwgc3VnYXIpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIldyaXRlIGxvY2FsaXphdGlvbiBzdWdhclwiKTtcbiAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGVzQmF0Y2gobG9jYWxpemVkU3VnYXIsIGZvcm1EaXJQYXRoKTtcblxuICAgICAgICAgICAgICAgIGxvZ2dlci5sb2coXCJXcml0ZSB0cmFuc2xhdGUgZGljdGlvbmFyeVwiKTtcbiAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZUZpbGVzQmF0Y2gobG9jYWxpemF0aW9uRGljdGlvbmFyeSwgZm9ybURpclBhdGgpO1xuICAgICAgICAgICAgICAgIGxvZ2dlci5sb2coXCJMb2NhbGl6ZSBzdWNjZXNzZnVsIGNvbXBsZXRlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgIGF3YWl0IGxvY2FsaXplQ2hhaW4uY3VycmVudFZhbHVlO1xufVxuXG5hc3luYyBmdW5jdGlvbiB3cml0ZUZpbGVzQmF0Y2goXG4gICAgZmlsZXNCYXRjaDoge1xuICAgICAgICBbcmVsYXRpdmVGaWxlTmFtZTogc3RyaW5nXTogc3RyaW5nIHwgQnVmZmVyO1xuICAgIH0sXG4gICAgb3V0cHV0RGlyZWN0b3J5OiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGZvciAoY29uc3QgZmlsZVBhdGggb2YgT2JqZWN0LmtleXMoZmlsZXNCYXRjaCkpIHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IGZpbGVzQmF0Y2hbZmlsZVBhdGhdO1xuICAgICAgICBpZiAoY29udGVudCAhPSB1bmRlZmluZWQgJiYgY29udGVudCAhPT0gXCJcIikge1xuICAgICAgICAgICAgYXdhaXQgZW5zdXJlRGlyKHBhdGguam9pbihvdXRwdXREaXJlY3RvcnksIHBhdGgucGFyc2UoZmlsZVBhdGgpLmRpcikpO1xuICAgICAgICAgICAgYXdhaXQgd3JpdGVGaWxlQXN5bmMocGF0aC5qb2luKG91dHB1dERpcmVjdG9yeSwgZmlsZVBhdGgpLCBjb250ZW50KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLHFCQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxzQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksZ0JBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLFFBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQU4sT0FBQTtBQUlPLGVBQWVPLGVBQWVBLENBQ2pDQyxPQUFrQyxFQUNsQ0MsT0FBNEIsRUFDNUJDLGFBQXFCLEVBQ3JCQyxlQUF1QixFQUN2QkMscUJBQTZCLEVBQzdCQyxtQkFBMkIsRUFDZDtFQUNiLE1BQU1DLFdBQVcsR0FBR0MsYUFBSSxDQUFDQyxJQUFJLENBQUNOLGFBQWEs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
@@ -11,7 +11,6 @@ var _ResolveFormInfo = require("../../BuildTasks/ResolveFormInfo");
11
11
  var _FormGlobsUtils = require("../../Commons/FormGlobsUtils");
12
12
  var _StaticLogger = require("../../Commons/Logging/StaticLogger");
13
13
  var _Version = require("../../BuildTasks/Version");
14
- var _WellKnownDirectories = require("../BuildServer/ResourcesControllers/Directories/WellKnownDirectories");
15
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
15
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
16
  async function runUpgradeForm(context, options, resourcesDirectory, farmDirectory) {
@@ -36,9 +35,8 @@ async function runUpgradeForm(context, options, resourcesDirectory, farmDirector
36
35
  }
37
36
  }
38
37
  async function upgradeFormEngine(farmDirectory, gfv, engineVersion, skipPreVersions, logger) {
39
- // TODO
40
38
  const formDirPath = path.join(farmDirectory, "forms", gfv);
41
- const formJsonPath = path.join(formDirPath, _WellKnownDirectories.WellKnownDirectories.FormJsonFileName);
39
+ const formJsonPath = path.join(formDirPath, "form.json");
42
40
  if (!(await (0, _fsExtra.pathExists)(formJsonPath))) {
43
41
  logger.warning("Form does not have form.json: Upgrade skipped");
44
42
  return;
@@ -89,9 +87,8 @@ async function upgradeFormEngine(farmDirectory, gfv, engineVersion, skipPreVersi
89
87
  }
90
88
  }
91
89
  async function upgradeFormToCiBuildMode(resourcesDirectory, farmDirectory, gfv, logger) {
92
- // TODO
93
90
  const formDirPath = path.join(farmDirectory, "forms", gfv);
94
- const formJsonPath = path.join(formDirPath, _WellKnownDirectories.WellKnownDirectories.FormJsonFileName);
91
+ const formJsonPath = path.join(formDirPath, "form.json");
95
92
  if (!(await (0, _fsExtra.pathExists)(formJsonPath))) {
96
93
  logger.warning("form.json does not exists. Upgrade skipped.");
97
94
  return;
@@ -125,9 +122,8 @@ async function upgradeFormToCiBuildMode(resourcesDirectory, farmDirectory, gfv,
125
122
  }
126
123
  }
127
124
  async function upgradeFormPrerelease(farmDirectory, gfv, preid, logger) {
128
- // TODO
129
125
  const formDirPath = path.join(farmDirectory, "forms", gfv);
130
- const formJsonPath = path.join(formDirPath, _WellKnownDirectories.WellKnownDirectories.FormJsonFileName);
126
+ const formJsonPath = path.join(formDirPath, "form.json");
131
127
  const formConfig = await (0, _ResolveFormInfo.readFormConfig)(formJsonPath, logger);
132
128
  const prereleaseVersionFormJson = await (0, _PublishedVersionUtils.getPrereleaseVersionFormJson)(preid);
133
129
  if (prereleaseVersionFormJson != undefined) {
@@ -143,4 +139,4 @@ async function upgradeFormPrerelease(farmDirectory, gfv, preid, logger) {
143
139
  throw new Error(`Версии ${preid} не существует.`);
144
140
  }
145
141
  }
146
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfUHVibGlzaGVkVmVyc2lvblV0aWxzIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Gb3JtR2xvYnNVdGlscyIsIl9TdGF0aWNMb2dnZXIiLCJfVmVyc2lvbiIsIl9XZWxsS25vd25EaXJlY3RvcmllcyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJydW5VcGdyYWRlRm9ybSIsImNvbnRleHQiLCJvcHRpb25zIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZmFybURpcmVjdG9yeSIsImZvcm1HbG9icyIsIkZvcm1HbG9icyIsInZhbGlkYXRlR2xvYnMiLCJyZXNvbHZlU3BlY2lmaWVycyIsImdmdiIsInJlc29sdmVHbG9ic1RvR2Z2cyIsImxvZ2dlciIsIndpdGhQcmVmaXgiLCJ1c2VDaUJ1aWxkIiwibG9nIiwidXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlIiwiZW5naW5lIiwidW5kZWZpbmVkIiwidXBncmFkZUZvcm1FbmdpbmUiLCJza2lwUHJlVmVyc2lvbnMiLCJwcmVpZCIsInVwZ3JhZGVGb3JtUHJlcmVsZWFzZSIsImVuZ2luZVZlcnNpb24iLCJmb3JtRGlyUGF0aCIsImpvaW4iLCJmb3JtSnNvblBhdGgiLCJXZWxsS25vd25EaXJlY3RvcmllcyIsIkZvcm1Kc29uRmlsZU5hbWUiLCJwYXRoRXhpc3RzIiwid2FybmluZyIsImZvcm1Db25maWciLCJyZWFkRm9ybUNvbmZpZyIsIl9mb3JtQ29uZmlnJGRlcGVuZGVuYyIsIl9mb3JtQ29uZmlnJGRlcGVuZGVuYzIiLCJkZXBlbmRlbmNpZXMiLCJnZW5lcmF0b3IiLCJfZm9ybUNvbmZpZyRkZXBlbmRlbmMzIiwiX2Zvcm1Db25maWckZGVwZW5kZW5jNCIsImVuZ2luZVZlcnNpb25TcGVjIiwicGFyc2VDYW5keVZlcnNpb25TcGVjIiwiZ2VuZXJhdG9yVmVyc2lvblNwZWMiLCJ0eXBlIiwidGVzdCIsInZlcnNpb24iLCJtb2RlIiwiZ2V0TGFzdFN0YWJsZUVuZ2luZVZlcnNpb24iLCJnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbiIsIndyaXRlSnNvbiIsInNwYWNlcyIsImlzRW5naW5lVmVyc2lvbkV4aXN0cyIsIkVycm9yIiwiZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSIsImlzTmV3Rm9ybUpzb25Gb3JtYXQiLCJnZXRMb2dnZXIiLCJidWlsZCIsInJlbW92ZSIsImZvcm1HaXRJZ25vcmVQYXRoIiwiZ2l0SWdub3JlQ29udGVudCIsInJlYWRGaWxlIiwic3BsaXQiLCJpbmNsdWRlcyIsIndyaXRlRmlsZSIsInRyaW1SaWdodCIsInByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24iLCJnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL1VwZ3JhZGVGb3JtL1J1blVwZ3JhZGVGb3JtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgcGF0aEV4aXN0cywgcmVhZEZpbGUsIHJlbW92ZSwgd3JpdGVGaWxlLCB3cml0ZUpzb24gfSBmcm9tIFwiZnMtZXh0cmFcIjtcblxuaW1wb3J0IHtcbiAgICBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbixcbiAgICBnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbixcbiAgICBnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uLFxuICAgIGlzRW5naW5lVmVyc2lvbkV4aXN0cyxcbn0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUHVibGlzaGVkVmVyc2lvblV0aWxzXCI7XG5pbXBvcnQgeyBpc05ld0Zvcm1Kc29uRm9ybWF0LCByZWFkRm9ybUNvbmZpZyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gXCIuLi8uLi9Db21tb25zL0NvbnNvbGVBcHBsaWNhdGlvbi9Db25zb2xlQXBwbGljYXRpb25Db250ZXh0XCI7XG5pbXBvcnQgeyBGb3JtR2xvYnMgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Gb3JtR2xvYnNVdGlsc1wiO1xuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0xvZ2dpbmcvSUxvZ2dlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcbmltcG9ydCB7IHBhcnNlQ2FuZHlWZXJzaW9uU3BlYyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1ZlcnNpb25cIjtcblxuaW1wb3J0IHsgVXBncmFkZUZvcm1PcHRpb25zIH0gZnJvbSBcIi4vVXBncmFkZUZvcm1PcHRpb25zXCI7XG5pbXBvcnQgeyBXZWxsS25vd25EaXJlY3RvcmllcyB9IGZyb20gXCIuLi9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EaXJlY3Rvcmllcy9XZWxsS25vd25EaXJlY3Rvcmllc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuVXBncmFkZUZvcm0oXG4gICAgY29udGV4dDogQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCxcbiAgICBvcHRpb25zOiBVcGdyYWRlRm9ybU9wdGlvbnMsXG4gICAgcmVzb3VyY2VzRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgZmFybURpcmVjdG9yeTogc3RyaW5nXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmb3JtR2xvYnMgPSBhd2FpdCBGb3JtR2xvYnMudmFsaWRhdGVHbG9icyhcbiAgICAgICAgYXdhaXQgRm9ybUdsb2JzLnJlc29sdmVTcGVjaWZpZXJzKG9wdGlvbnMuZm9ybUdsb2JzLCBmYXJtRGlyZWN0b3J5KSxcbiAgICAgICAgZmFybURpcmVjdG9yeVxuICAgICk7XG4gICAgZm9yIChjb25zdCBnZnYgb2YgYXdhaXQgRm9ybUdsb2JzLnJlc29sdmVHbG9ic1RvR2Z2cyhmb3JtR2xvYnMsIGZhcm1EaXJlY3RvcnkpKSB7XG4gICAgICAgIGNvbnN0IGxvZ2dlciA9IGNvbnRleHQubG9nZ2VyLndpdGhQcmVmaXgoYEZPUk06JHtnZnZ9YCk7XG4gICAgICAgIGlmIChvcHRpb25zLnVzZUNpQnVpbGQpIHtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJCZWdpbiB1cGdyYWRpbmcgYnVpbGQgbW9kZVwiKTtcbiAgICAgICAgICAgIGF3YWl0IHVwZ3JhZGVGb3JtVG9DaUJ1aWxkTW9kZShyZXNvdXJjZXNEaXJlY3RvcnksIGZhcm1EaXJlY3RvcnksIGdmdiwgbG9nZ2VyKTtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJGaW5pc2ggdXBncmFkaW5nIGJ1aWxkIG1vZGVcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMuZW5naW5lICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkJlZ2luIHVwZ3JhZGluZyBlbmdpbmUgdmVyc2lvblwiKTtcbiAgICAgICAgICAgIGF3YWl0IHVwZ3JhZGVGb3JtRW5naW5lKGZhcm1EaXJlY3RvcnksIGdmdiwgb3B0aW9ucy5lbmdpbmUsIG9wdGlvbnMuc2tpcFByZVZlcnNpb25zLCBsb2dnZXIpO1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkZpbmlzaCB1cGdyYWRpbmcgZW5naW5lIHZlcnNpb25cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMucHJlaWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiQmVnaW4gdXBncmFkaW5nIGVuZ2luZSB2ZXJzaW9uXCIpO1xuICAgICAgICAgICAgYXdhaXQgdXBncmFkZUZvcm1QcmVyZWxlYXNlKGZhcm1EaXJlY3RvcnksIGdmdiwgb3B0aW9ucy5wcmVpZCwgbG9nZ2VyKTtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJGaW5pc2ggdXBncmFkaW5nIGVuZ2luZSB2ZXJzaW9uXCIpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB1cGdyYWRlRm9ybUVuZ2luZShcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgZ2Z2OiBzdHJpbmcsXG4gICAgZW5naW5lVmVyc2lvbjogc3RyaW5nLFxuICAgIHNraXBQcmVWZXJzaW9uczogYm9vbGVhbixcbiAgICBsb2dnZXI6IElMb2dnZXJcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIFRPRE9cbiAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGdmdik7XG4gICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lKTtcbiAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgIGxvZ2dlci53YXJuaW5nKFwiRm9ybSBkb2VzIG5vdCBoYXZlIGZvcm0uanNvbjogVXBncmFkZSBza2lwcGVkXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZvcm1Db25maWcgPSBhd2FpdCByZWFkRm9ybUNvbmZpZyhmb3JtSnNvblBhdGgsIGxvZ2dlcik7XG4gICAgaWYgKHNraXBQcmVWZXJzaW9ucykge1xuICAgICAgICBpZiAoZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmVuZ2luZSAhPSB1bmRlZmluZWQgJiYgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmdlbmVyYXRvciAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVuZ2luZVZlcnNpb25TcGVjID0gcGFyc2VDYW5keVZlcnNpb25TcGVjKGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5lbmdpbmUpO1xuICAgICAgICAgICAgY29uc3QgZ2VuZXJhdG9yVmVyc2lvblNwZWMgPSBwYXJzZUNhbmR5VmVyc2lvblNwZWMoZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXM/LmdlbmVyYXRvcik7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgZW5naW5lVmVyc2lvblNwZWMudHlwZSA9PT0gXCJwcmVcIiB8fFxuICAgICAgICAgICAgICAgIGdlbmVyYXRvclZlcnNpb25TcGVjLnR5cGUgPT09IFwicHJlXCIgfHxcbiAgICAgICAgICAgICAgICAoZW5naW5lVmVyc2lvblNwZWMudHlwZSA9PT0gXCJ2ZXJzaW9uXCIgJiYgL1thLXpBLVpdLy50ZXN0KGVuZ2luZVZlcnNpb25TcGVjLnZlcnNpb24pKSB8fFxuICAgICAgICAgICAgICAgIChnZW5lcmF0b3JWZXJzaW9uU3BlYy50eXBlID09PSBcInZlcnNpb25cIiAmJiAvW2EtekEtWl0vLnRlc3QoZ2VuZXJhdG9yVmVyc2lvblNwZWMudmVyc2lvbikpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIubG9nKFxuICAgICAgICAgICAgICAgICAgICBcIkZvcm0gdmVyc2lvbiBoYXMgcHJlcmVsZWFzZSB2ZXJzaW9uOiBVcGdyYWRlIHNraXBwZWQgZHVlIHRvIGZsYWcgc2tpcFByZVZlcnNpb25zICgtLXNraXAtcHJlLXZlcnNpb25zKSBzcGVjaWZpZWRcIlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChmb3JtQ29uZmlnLm1vZGUgPT09IFwibm8tZWRpdG9yXCIpIHtcbiAgICAgICAgbG9nZ2VyLmxvZyhcIkZvcm0gZG9lcyBub3QgaGF2ZSBlZGl0b3I6IFVwZ3JhZGUgc2tpcHBlZFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZm9ybUNvbmZpZy5tb2RlID09PSBcImNvcHktbGVnYWN5LXByZWJ1aWx0LXJlc291cmNlc1wiKSB7XG4gICAgICAgIGxvZ2dlci5sb2coXCJGb3JtIGRvZXMgbm90IGhhdmUgZWRpdG9yOiBVcGdyYWRlIHNraXBwZWRcIik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGVuZ2luZVZlcnNpb24gPT09IFwibGF0ZXN0XCIpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgPSB7XG4gICAgICAgICAgICBlbmdpbmU6IGF3YWl0IGdldExhc3RTdGFibGVFbmdpbmVWZXJzaW9uKCksXG4gICAgICAgICAgICBnZW5lcmF0b3I6IGF3YWl0IGdldExhc3RTdGFibGVHZW5lcmF0b3JWZXJzaW9uKCksXG4gICAgICAgIH07XG4gICAgICAgIGxvZ2dlci5sb2coYFVwZGF0ZWQgdG8gbGFzdCBzdGFibGUgdmVyc2lvbiAke2Zvcm1Db25maWcuZGVwZW5kZW5jaWVzLmVuZ2luZX1gKTtcbiAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGF3YWl0IGlzRW5naW5lVmVyc2lvbkV4aXN0cyhlbmdpbmVWZXJzaW9uKSkge1xuICAgICAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgPSB7IGVuZ2luZTogZW5naW5lVmVyc2lvbiwgZ2VuZXJhdG9yOiBlbmdpbmVWZXJzaW9uIH07XG4gICAgICAgICAgICBsb2dnZXIubG9nKGBVcGRhdGVkIHRvIHZlcnNpb24gJHtmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmV9YCk7XG4gICAgICAgICAgICBhd2FpdCB3cml0ZUpzb24oZm9ybUpzb25QYXRoLCBmb3JtQ29uZmlnLCB7IHNwYWNlczogMiB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihg0JLQtdGA0YHQuNC4ICR7ZW5naW5lVmVyc2lvbn0g0L3QtSDRgdGD0YnQtdGB0YLQstGD0LXRgi5gKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlKFxuICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBnZnY6IHN0cmluZyxcbiAgICBsb2dnZXI6IElMb2dnZXJcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIFRPRE9cbiAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGdmdik7XG4gICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lKTtcbiAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgIGxvZ2dlci53YXJuaW5nKFwiZm9ybS5qc29uIGRvZXMgbm90IGV4aXN0cy4gVXBncmFkZSBza2lwcGVkLlwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBnZW5lcmF0ZWRGb3JtRGlyZWN0b3J5ID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm1cIik7XG4gICAgaWYgKCFpc05ld0Zvcm1Kc29uRm9ybWF0KGZvcm1Kc29uUGF0aCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgXCLQpNCw0LnQuyBmb3JtLmpzb24g0YTQvtGA0LzRiyDQtNC+0LvQttC10L0g0LjQvNC10YLRjCDQvdC+0LLRi9C5INGE0L7RgNC80LDRgiDQt9Cw0LLQuNGB0LjQvNC+0YHRgtC4LiDQntCx0YDQsNGC0LjRgtC10YHRjCDQuiDRgNCw0YHQt9GA0LDQsdC+0YLRh9C40LrQsNC8INC30LAg0YDQsNC30YrRj9GB0L3QtdC90LjRj9C80LguXCJcbiAgICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgZm9ybUNvbmZpZyA9IGF3YWl0IHJlYWRGb3JtQ29uZmlnKGZvcm1Kc29uUGF0aCwgZ2V0TG9nZ2VyKCkpO1xuICAgIGlmIChmb3JtQ29uZmlnLmJ1aWxkICE9PSBcImNpXCIpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5idWlsZCA9IFwiY2lcIjtcbiAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgICAgIGxvZ2dlci5sb2coXCJVcGRhdGVkIGZvcm0uanNvblwiKTtcbiAgICB9XG4gICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMoZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSkpIHtcbiAgICAgICAgYXdhaXQgcmVtb3ZlKGdlbmVyYXRlZEZvcm1EaXJlY3RvcnkpO1xuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3ZlZCBmb3JtIGRpcmVjdG9yeVwiKTtcbiAgICB9XG4gICAgY29uc3QgZm9ybUdpdElnbm9yZVBhdGggPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiLmdpdGlnbm9yZVwiKTtcbiAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmb3JtR2l0SWdub3JlUGF0aCkpIHtcbiAgICAgICAgY29uc3QgZ2l0SWdub3JlQ29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGZvcm1HaXRJZ25vcmVQYXRoLCBcInV0ZjhcIik7XG4gICAgICAgIGlmICghZ2l0SWdub3JlQ29udGVudC5zcGxpdChcIlxcblwiKS5pbmNsdWRlcyhcImZvcm1cIikpIHtcbiAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShmb3JtR2l0SWdub3JlUGF0aCwgZ2l0SWdub3JlQ29udGVudC50cmltUmlnaHQoKSArIFwiXFxuXCIgKyBcImZvcm1cXG5cIik7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiVXBkYXRlZCAuZ2l0aWdub3JlXCIpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGZvcm1HaXRJZ25vcmVQYXRoLCBcImZvcm1cXG5cIik7XG4gICAgICAgIGxvZ2dlci5sb2coXCJDcmVhdGVkIC5naXRpZ25vcmVcIik7XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB1cGdyYWRlRm9ybVByZXJlbGVhc2UoXG4gICAgZmFybURpcmVjdG9yeTogc3RyaW5nLFxuICAgIGdmdjogc3RyaW5nLFxuICAgIHByZWlkOiBzdHJpbmcsXG4gICAgbG9nZ2VyOiBJTG9nZ2VyXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBUT0RPXG4gICAgY29uc3QgZm9ybURpclBhdGggPSBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBnZnYpO1xuICAgIGNvbnN0IGZvcm1Kc29uUGF0aCA9IHBhdGguam9pbihmb3JtRGlyUGF0aCwgV2VsbEtub3duRGlyZWN0b3JpZXMuRm9ybUpzb25GaWxlTmFtZSk7XG4gICAgY29uc3QgZm9ybUNvbmZpZyA9IGF3YWl0IHJlYWRGb3JtQ29uZmlnKGZvcm1Kc29uUGF0aCwgbG9nZ2VyKTtcbiAgICBjb25zdCBwcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uID0gYXdhaXQgZ2V0UHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbihwcmVpZCk7XG5cbiAgICBpZiAocHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbiAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMgPSB7IGVuZ2luZTogcHJlcmVsZWFzZVZlcnNpb25Gb3JtSnNvbiwgZ2VuZXJhdG9yOiBwcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uIH07XG4gICAgICAgIGxvZ2dlci5sb2coYFVwZGF0ZWQgdG8gcHJlcmVsZWFzZSB2ZXJzaW9uICR7Zm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMuZW5naW5lfWApO1xuICAgICAgICBhd2FpdCB3cml0ZUpzb24oZm9ybUpzb25QYXRoLCBmb3JtQ29uZmlnLCB7IHNwYWNlczogMiB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYNCS0LXRgNGB0LjQuCAke3ByZWlkfSDQvdC1INGB0YPRidC10YHRgtCy0YPQtdGCLmApO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsSUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsc0JBQUEsR0FBQUYsT0FBQTtBQU1BLElBQUFHLGdCQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSxlQUFBLEdBQUFKLE9BQUE7QUFFQSxJQUFBSyxhQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxRQUFBLEdBQUFOLE9BQUE7QUFHQSxJQUFBTyxxQkFBQSxHQUFBUCxPQUFBO0FBQTRHLFNBQUFRLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFWLHdCQUFBYyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsNEJBQUFFLE9BQUEsRUFBQUYsR0FBQSxVQUFBRyxLQUFBLEdBQUFSLHdCQUFBLENBQUFDLFdBQUEsT0FBQU8sS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUosR0FBQSxZQUFBRyxLQUFBLENBQUFFLEdBQUEsQ0FBQUwsR0FBQSxTQUFBTSxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEs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
142
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXRoIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfUHVibGlzaGVkVmVyc2lvblV0aWxzIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Gb3JtR2xvYnNVdGlscyIsIl9TdGF0aWNMb2dnZXIiLCJfVmVyc2lvbiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJydW5VcGdyYWRlRm9ybSIsImNvbnRleHQiLCJvcHRpb25zIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZmFybURpcmVjdG9yeSIsImZvcm1HbG9icyIsIkZvcm1HbG9icyIsInZhbGlkYXRlR2xvYnMiLCJyZXNvbHZlU3BlY2lmaWVycyIsImdmdiIsInJlc29sdmVHbG9ic1RvR2Z2cyIsImxvZ2dlciIsIndpdGhQcmVmaXgiLCJ1c2VDaUJ1aWxkIiwibG9nIiwidXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlIiwiZW5naW5lIiwidW5kZWZpbmVkIiwidXBncmFkZUZvcm1FbmdpbmUiLCJza2lwUHJlVmVyc2lvbnMiLCJwcmVpZCIsInVwZ3JhZGVGb3JtUHJlcmVsZWFzZSIsImVuZ2luZVZlcnNpb24iLCJmb3JtRGlyUGF0aCIsImpvaW4iLCJmb3JtSnNvblBhdGgiLCJwYXRoRXhpc3RzIiwid2FybmluZyIsImZvcm1Db25maWciLCJyZWFkRm9ybUNvbmZpZyIsIl9mb3JtQ29uZmlnJGRlcGVuZGVuYyIsIl9mb3JtQ29uZmlnJGRlcGVuZGVuYzIiLCJkZXBlbmRlbmNpZXMiLCJnZW5lcmF0b3IiLCJfZm9ybUNvbmZpZyRkZXBlbmRlbmMzIiwiX2Zvcm1Db25maWckZGVwZW5kZW5jNCIsImVuZ2luZVZlcnNpb25TcGVjIiwicGFyc2VDYW5keVZlcnNpb25TcGVjIiwiZ2VuZXJhdG9yVmVyc2lvblNwZWMiLCJ0eXBlIiwidGVzdCIsInZlcnNpb24iLCJtb2RlIiwiZ2V0TGFzdFN0YWJsZUVuZ2luZVZlcnNpb24iLCJnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbiIsIndyaXRlSnNvbiIsInNwYWNlcyIsImlzRW5naW5lVmVyc2lvbkV4aXN0cyIsIkVycm9yIiwiZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSIsImlzTmV3Rm9ybUpzb25Gb3JtYXQiLCJnZXRMb2dnZXIiLCJidWlsZCIsInJlbW92ZSIsImZvcm1HaXRJZ25vcmVQYXRoIiwiZ2l0SWdub3JlQ29udGVudCIsInJlYWRGaWxlIiwic3BsaXQiLCJpbmNsdWRlcyIsIndyaXRlRmlsZSIsInRyaW1SaWdodCIsInByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24iLCJnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL0NMSUNvbW1hbmRzL1VwZ3JhZGVGb3JtL1J1blVwZ3JhZGVGb3JtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgcGF0aEV4aXN0cywgcmVhZEZpbGUsIHJlbW92ZSwgd3JpdGVGaWxlLCB3cml0ZUpzb24gfSBmcm9tIFwiZnMtZXh0cmFcIjtcblxuaW1wb3J0IHtcbiAgICBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbixcbiAgICBnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbixcbiAgICBnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uLFxuICAgIGlzRW5naW5lVmVyc2lvbkV4aXN0cyxcbn0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUHVibGlzaGVkVmVyc2lvblV0aWxzXCI7XG5pbXBvcnQgeyBpc05ld0Zvcm1Kc29uRm9ybWF0LCByZWFkRm9ybUNvbmZpZyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1Jlc29sdmVGb3JtSW5mb1wiO1xuaW1wb3J0IHsgQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCB9IGZyb20gXCIuLi8uLi9Db21tb25zL0NvbnNvbGVBcHBsaWNhdGlvbi9Db25zb2xlQXBwbGljYXRpb25Db250ZXh0XCI7XG5pbXBvcnQgeyBGb3JtR2xvYnMgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Gb3JtR2xvYnNVdGlsc1wiO1xuaW1wb3J0IHsgSUxvZ2dlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0xvZ2dpbmcvSUxvZ2dlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcbmltcG9ydCB7IHBhcnNlQ2FuZHlWZXJzaW9uU3BlYyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL1ZlcnNpb25cIjtcblxuaW1wb3J0IHsgVXBncmFkZUZvcm1PcHRpb25zIH0gZnJvbSBcIi4vVXBncmFkZUZvcm1PcHRpb25zXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5VcGdyYWRlRm9ybShcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IFVwZ3JhZGVGb3JtT3B0aW9ucyxcbiAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZvcm1HbG9icyA9IGF3YWl0IEZvcm1HbG9icy52YWxpZGF0ZUdsb2JzKFxuICAgICAgICBhd2FpdCBGb3JtR2xvYnMucmVzb2x2ZVNwZWNpZmllcnMob3B0aW9ucy5mb3JtR2xvYnMsIGZhcm1EaXJlY3RvcnkpLFxuICAgICAgICBmYXJtRGlyZWN0b3J5XG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IGdmdiBvZiBhd2FpdCBGb3JtR2xvYnMucmVzb2x2ZUdsb2JzVG9HZnZzKGZvcm1HbG9icywgZmFybURpcmVjdG9yeSkpIHtcbiAgICAgICAgY29uc3QgbG9nZ2VyID0gY29udGV4dC5sb2dnZXIud2l0aFByZWZpeChgRk9STToke2dmdn1gKTtcbiAgICAgICAgaWYgKG9wdGlvbnMudXNlQ2lCdWlsZCkge1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkJlZ2luIHVwZ3JhZGluZyBidWlsZCBtb2RlXCIpO1xuICAgICAgICAgICAgYXdhaXQgdXBncmFkZUZvcm1Ub0NpQnVpbGRNb2RlKHJlc291cmNlc0RpcmVjdG9yeSwgZmFybURpcmVjdG9yeSwgZ2Z2LCBsb2dnZXIpO1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkZpbmlzaCB1cGdyYWRpbmcgYnVpbGQgbW9kZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5lbmdpbmUgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiQmVnaW4gdXBncmFkaW5nIGVuZ2luZSB2ZXJzaW9uXCIpO1xuICAgICAgICAgICAgYXdhaXQgdXBncmFkZUZvcm1FbmdpbmUoZmFybURpcmVjdG9yeSwgZ2Z2LCBvcHRpb25zLmVuZ2luZSwgb3B0aW9ucy5za2lwUHJlVmVyc2lvbnMsIGxvZ2dlcik7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiRmluaXNoIHVwZ3JhZGluZyBlbmdpbmUgdmVyc2lvblwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5wcmVpZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvZ2dlci5sb2coXCJCZWdpbiB1cGdyYWRpbmcgZW5naW5lIHZlcnNpb25cIik7XG4gICAgICAgICAgICBhd2FpdCB1cGdyYWRlRm9ybVByZXJlbGVhc2UoZmFybURpcmVjdG9yeSwgZ2Z2LCBvcHRpb25zLnByZWlkLCBsb2dnZXIpO1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhcIkZpbmlzaCB1cGdyYWRpbmcgZW5naW5lIHZlcnNpb25cIik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZ3JhZGVGb3JtRW5naW5lKFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBnZnY6IHN0cmluZyxcbiAgICBlbmdpbmVWZXJzaW9uOiBzdHJpbmcsXG4gICAgc2tpcFByZVZlcnNpb25zOiBib29sZWFuLFxuICAgIGxvZ2dlcjogSUxvZ2dlclxuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZm9ybURpclBhdGggPSBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBnZnYpO1xuICAgIGNvbnN0IGZvcm1Kc29uUGF0aCA9IHBhdGguam9pbihmb3JtRGlyUGF0aCwgXCJmb3JtLmpzb25cIik7XG4gICAgaWYgKCEoYXdhaXQgcGF0aEV4aXN0cyhmb3JtSnNvblBhdGgpKSkge1xuICAgICAgICBsb2dnZXIud2FybmluZyhcIkZvcm0gZG9lcyBub3QgaGF2ZSBmb3JtLmpzb246IFVwZ3JhZGUgc2tpcHBlZFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmb3JtQ29uZmlnID0gYXdhaXQgcmVhZEZvcm1Db25maWcoZm9ybUpzb25QYXRoLCBsb2dnZXIpO1xuICAgIGlmIChza2lwUHJlVmVyc2lvbnMpIHtcbiAgICAgICAgaWYgKGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5lbmdpbmUgIT0gdW5kZWZpbmVkICYmIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5nZW5lcmF0b3IgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCBlbmdpbmVWZXJzaW9uU3BlYyA9IHBhcnNlQ2FuZHlWZXJzaW9uU3BlYyhmb3JtQ29uZmlnLmRlcGVuZGVuY2llcz8uZW5naW5lKTtcbiAgICAgICAgICAgIGNvbnN0IGdlbmVyYXRvclZlcnNpb25TcGVjID0gcGFyc2VDYW5keVZlcnNpb25TcGVjKGZvcm1Db25maWcuZGVwZW5kZW5jaWVzPy5nZW5lcmF0b3IpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGVuZ2luZVZlcnNpb25TcGVjLnR5cGUgPT09IFwicHJlXCIgfHxcbiAgICAgICAgICAgICAgICBnZW5lcmF0b3JWZXJzaW9uU3BlYy50eXBlID09PSBcInByZVwiIHx8XG4gICAgICAgICAgICAgICAgKGVuZ2luZVZlcnNpb25TcGVjLnR5cGUgPT09IFwidmVyc2lvblwiICYmIC9bYS16QS1aXS8udGVzdChlbmdpbmVWZXJzaW9uU3BlYy52ZXJzaW9uKSkgfHxcbiAgICAgICAgICAgICAgICAoZ2VuZXJhdG9yVmVyc2lvblNwZWMudHlwZSA9PT0gXCJ2ZXJzaW9uXCIgJiYgL1thLXpBLVpdLy50ZXN0KGdlbmVyYXRvclZlcnNpb25TcGVjLnZlcnNpb24pKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmxvZyhcbiAgICAgICAgICAgICAgICAgICAgXCJGb3JtIHZlcnNpb24gaGFzIHByZXJlbGVhc2UgdmVyc2lvbjogVXBncmFkZSBza2lwcGVkIGR1ZSB0byBmbGFnIHNraXBQcmVWZXJzaW9ucyAoLS1za2lwLXByZS12ZXJzaW9ucykgc3BlY2lmaWVkXCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoZm9ybUNvbmZpZy5tb2RlID09PSBcIm5vLWVkaXRvclwiKSB7XG4gICAgICAgIGxvZ2dlci5sb2coXCJGb3JtIGRvZXMgbm90IGhhdmUgZWRpdG9yOiBVcGdyYWRlIHNraXBwZWRcIik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGZvcm1Db25maWcubW9kZSA9PT0gXCJjb3B5LWxlZ2FjeS1wcmVidWlsdC1yZXNvdXJjZXNcIikge1xuICAgICAgICBsb2dnZXIubG9nKFwiRm9ybSBkb2VzIG5vdCBoYXZlIGVkaXRvcjogVXBncmFkZSBza2lwcGVkXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChlbmdpbmVWZXJzaW9uID09PSBcImxhdGVzdFwiKSB7XG4gICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzID0ge1xuICAgICAgICAgICAgZW5naW5lOiBhd2FpdCBnZXRMYXN0U3RhYmxlRW5naW5lVmVyc2lvbigpLFxuICAgICAgICAgICAgZ2VuZXJhdG9yOiBhd2FpdCBnZXRMYXN0U3RhYmxlR2VuZXJhdG9yVmVyc2lvbigpLFxuICAgICAgICB9O1xuICAgICAgICBsb2dnZXIubG9nKGBVcGRhdGVkIHRvIGxhc3Qgc3RhYmxlIHZlcnNpb24gJHtmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmV9YCk7XG4gICAgICAgIGF3YWl0IHdyaXRlSnNvbihmb3JtSnNvblBhdGgsIGZvcm1Db25maWcsIHsgc3BhY2VzOiAyIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChhd2FpdCBpc0VuZ2luZVZlcnNpb25FeGlzdHMoZW5naW5lVmVyc2lvbikpIHtcbiAgICAgICAgICAgIGZvcm1Db25maWcuZGVwZW5kZW5jaWVzID0geyBlbmdpbmU6IGVuZ2luZVZlcnNpb24sIGdlbmVyYXRvcjogZW5naW5lVmVyc2lvbiB9O1xuICAgICAgICAgICAgbG9nZ2VyLmxvZyhgVXBkYXRlZCB0byB2ZXJzaW9uICR7Zm9ybUNvbmZpZy5kZXBlbmRlbmNpZXMuZW5naW5lfWApO1xuICAgICAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYNCS0LXRgNGB0LjQuCAke2VuZ2luZVZlcnNpb259INC90LUg0YHRg9GJ0LXRgdGC0LLRg9C10YIuYCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZ3JhZGVGb3JtVG9DaUJ1aWxkTW9kZShcbiAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBmYXJtRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgZ2Z2OiBzdHJpbmcsXG4gICAgbG9nZ2VyOiBJTG9nZ2VyXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGdmdik7XG4gICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm0uanNvblwiKTtcbiAgICBpZiAoIShhd2FpdCBwYXRoRXhpc3RzKGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgIGxvZ2dlci53YXJuaW5nKFwiZm9ybS5qc29uIGRvZXMgbm90IGV4aXN0cy4gVXBncmFkZSBza2lwcGVkLlwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBnZW5lcmF0ZWRGb3JtRGlyZWN0b3J5ID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm1cIik7XG4gICAgaWYgKCFpc05ld0Zvcm1Kc29uRm9ybWF0KGZvcm1Kc29uUGF0aCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgXCLQpNCw0LnQuyBmb3JtLmpzb24g0YTQvtGA0LzRiyDQtNC+0LvQttC10L0g0LjQvNC10YLRjCDQvdC+0LLRi9C5INGE0L7RgNC80LDRgiDQt9Cw0LLQuNGB0LjQvNC+0YHRgtC4LiDQntCx0YDQsNGC0LjRgtC10YHRjCDQuiDRgNCw0YHQt9GA0LDQsdC+0YLRh9C40LrQsNC8INC30LAg0YDQsNC30YrRj9GB0L3QtdC90LjRj9C80LguXCJcbiAgICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgZm9ybUNvbmZpZyA9IGF3YWl0IHJlYWRGb3JtQ29uZmlnKGZvcm1Kc29uUGF0aCwgZ2V0TG9nZ2VyKCkpO1xuICAgIGlmIChmb3JtQ29uZmlnLmJ1aWxkICE9PSBcImNpXCIpIHtcbiAgICAgICAgZm9ybUNvbmZpZy5idWlsZCA9IFwiY2lcIjtcbiAgICAgICAgYXdhaXQgd3JpdGVKc29uKGZvcm1Kc29uUGF0aCwgZm9ybUNvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gICAgICAgIGxvZ2dlci5sb2coXCJVcGRhdGVkIGZvcm0uanNvblwiKTtcbiAgICB9XG4gICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMoZ2VuZXJhdGVkRm9ybURpcmVjdG9yeSkpIHtcbiAgICAgICAgYXdhaXQgcmVtb3ZlKGdlbmVyYXRlZEZvcm1EaXJlY3RvcnkpO1xuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3ZlZCBmb3JtIGRpcmVjdG9yeVwiKTtcbiAgICB9XG4gICAgY29uc3QgZm9ybUdpdElnbm9yZVBhdGggPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiLmdpdGlnbm9yZVwiKTtcbiAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhmb3JtR2l0SWdub3JlUGF0aCkpIHtcbiAgICAgICAgY29uc3QgZ2l0SWdub3JlQ29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGZvcm1HaXRJZ25vcmVQYXRoLCBcInV0ZjhcIik7XG4gICAgICAgIGlmICghZ2l0SWdub3JlQ29udGVudC5zcGxpdChcIlxcblwiKS5pbmNsdWRlcyhcImZvcm1cIikpIHtcbiAgICAgICAgICAgIGF3YWl0IHdyaXRlRmlsZShmb3JtR2l0SWdub3JlUGF0aCwgZ2l0SWdub3JlQ29udGVudC50cmltUmlnaHQoKSArIFwiXFxuXCIgKyBcImZvcm1cXG5cIik7XG4gICAgICAgICAgICBsb2dnZXIubG9nKFwiVXBkYXRlZCAuZ2l0aWdub3JlXCIpO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgd3JpdGVGaWxlKGZvcm1HaXRJZ25vcmVQYXRoLCBcImZvcm1cXG5cIik7XG4gICAgICAgIGxvZ2dlci5sb2coXCJDcmVhdGVkIC5naXRpZ25vcmVcIik7XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiB1cGdyYWRlRm9ybVByZXJlbGVhc2UoXG4gICAgZmFybURpcmVjdG9yeTogc3RyaW5nLFxuICAgIGdmdjogc3RyaW5nLFxuICAgIHByZWlkOiBzdHJpbmcsXG4gICAgbG9nZ2VyOiBJTG9nZ2VyXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGdmdik7XG4gICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKGZvcm1EaXJQYXRoLCBcImZvcm0uanNvblwiKTtcbiAgICBjb25zdCBmb3JtQ29uZmlnID0gYXdhaXQgcmVhZEZvcm1Db25maWcoZm9ybUpzb25QYXRoLCBsb2dnZXIpO1xuICAgIGNvbnN0IHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24gPSBhd2FpdCBnZXRQcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uKHByZWlkKTtcblxuICAgIGlmIChwcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uICE9IHVuZGVmaW5lZCkge1xuICAgICAgICBmb3JtQ29uZmlnLmRlcGVuZGVuY2llcyA9IHsgZW5naW5lOiBwcmVyZWxlYXNlVmVyc2lvbkZvcm1Kc29uLCBnZW5lcmF0b3I6IHByZXJlbGVhc2VWZXJzaW9uRm9ybUpzb24gfTtcbiAgICAgICAgbG9nZ2VyLmxvZyhgVXBkYXRlZCB0byBwcmVyZWxlYXNlIHZlcnNpb24gJHtmb3JtQ29uZmlnLmRlcGVuZGVuY2llcy5lbmdpbmV9YCk7XG4gICAgICAgIGF3YWl0IHdyaXRlSnNvbihmb3JtSnNvblBhdGgsIGZvcm1Db25maWcsIHsgc3BhY2VzOiAyIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihg0JLQtdGA0YHQuNC4ICR7cHJlaWR9INC90LUg0YHRg9GJ0LXRgdGC0LLRg9C10YIuYCk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxJQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFF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
@@ -9,8 +9,6 @@ var _path = _interopRequireDefault(require("path"));
9
9
  var _fsExtra = require("fs-extra");
10
10
  var _lodash = _interopRequireDefault(require("lodash"));
11
11
  var _ResolveFormInfo = require("../BuildTasks/ResolveFormInfo");
12
- var _FormPathUtils = require("../../../Common/FormPathUtils");
13
- var _WellKnownDirectories = require("../CLICommands/BuildServer/ResourcesControllers/Directories/WellKnownDirectories");
14
12
  var _FsUtils = require("./FsUtils");
15
13
  var _StaticLogger = require("./Logging/StaticLogger");
16
14
  class FormGlobs {
@@ -21,84 +19,11 @@ class FormGlobs {
21
19
  this.formGlobStrings = formGlobStrings;
22
20
  this.farmDirectory = farmDirectory;
23
21
  }
24
- static async enumerateFormsInRepository(...repositoryRoots) {
25
- const result = [];
26
- for (const repositoryRoot of repositoryRoots) {
27
- for (const formJsonPath of await (0, _FsUtils.globAsync)(`candy.farm/forms/**/*/${_WellKnownDirectories.WellKnownDirectories.FormJsonFileName}`, {
28
- cwd: repositoryRoot
29
- })) {
30
- if (await (0, _fsExtra.pathExists)(_path.default.join(repositoryRoot, formJsonPath))) {
31
- const formPath = _path.default.dirname(formJsonPath);
32
- const gfv = (0, _FormPathUtils.extractGfvFromFormPath)(formPath);
33
- result.push({
34
- gfv: gfv,
35
- formPath: _path.default.join(repositoryRoot, formPath),
36
- formRelativePath: formPath
37
- });
38
- }
39
- }
40
- for (const formJsonPath of await (0, _FsUtils.globAsync)(`${_WellKnownDirectories.WellKnownDirectories.TestFarmDir}/forms/**/*/${_WellKnownDirectories.WellKnownDirectories.FormJsonFileName}`, {
41
- cwd: repositoryRoot
42
- })) {
43
- if (await (0, _fsExtra.pathExists)(_path.default.join(repositoryRoot, formJsonPath))) {
44
- const formPath = _path.default.dirname(formJsonPath);
45
- const gfv = (0, _FormPathUtils.extractGfvFromFormPath)(formPath);
46
- result.push({
47
- gfv: gfv,
48
- formPath: _path.default.join(repositoryRoot, formPath),
49
- formRelativePath: formPath
50
- });
51
- }
52
- }
53
- for (const formJsonPath of await (0, _FsUtils.globAsync)(`candy.rpn.farm/forms/**/*/${_WellKnownDirectories.WellKnownDirectories.FormJsonFileName}`, {
54
- cwd: repositoryRoot
55
- })) {
56
- if (await (0, _fsExtra.pathExists)(_path.default.join(repositoryRoot, formJsonPath))) {
57
- const formPath = _path.default.dirname(formJsonPath);
58
- const gfv = (0, _FormPathUtils.extractGfvFromFormPath)(formPath);
59
- result.push({
60
- gfv: gfv,
61
- formPath: _path.default.join(repositoryRoot, formPath),
62
- formRelativePath: formPath
63
- });
64
- }
65
- }
66
- for (const formJsonPath of await (0, _FsUtils.globAsync)(`candy.diadoc.farm/forms/**/*/${_WellKnownDirectories.WellKnownDirectories.FormJsonFileName}`, {
67
- cwd: repositoryRoot
68
- })) {
69
- if (await (0, _fsExtra.pathExists)(_path.default.join(repositoryRoot, formJsonPath))) {
70
- const formPath = _path.default.dirname(formJsonPath);
71
- const gfv = (0, _FormPathUtils.extractGfvFromFormPath)(formPath);
72
- result.push({
73
- gfv: gfv,
74
- formPath: _path.default.join(repositoryRoot, formPath),
75
- formRelativePath: formPath
76
- });
77
- }
78
- }
79
- for (const formJsonPath of await (0, _FsUtils.globAsync)(`forms/**/*/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}/${_WellKnownDirectories.WellKnownDirectories.FormJsonFileName}`, {
80
- cwd: repositoryRoot
81
- })) {
82
- if (await (0, _fsExtra.pathExists)(_path.default.join(repositoryRoot, formJsonPath))) {
83
- const formPath = _path.default.dirname(formJsonPath);
84
- const gfv = (0, _FormPathUtils.extractGfvFromFormPath)(formPath);
85
- result.push({
86
- gfv: gfv,
87
- formPath: _path.default.join(repositoryRoot, formPath),
88
- formRelativePath: formPath
89
- });
90
- }
91
- }
92
- }
93
- return result;
94
- }
95
22
  static async resolveGlobsToGfvs(formGlobs, farmDirectory) {
96
23
  let result = [];
97
24
  for (const mask of formGlobs) {
98
25
  result = result.concat(await (0, _FsUtils.globAsync)(mask, {
99
26
  cwd: _path.default.join(farmDirectory, "forms")
100
- })).concat(await (0, _FsUtils.globAsync)(`forms/**/${mask}/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}`, {
101
- cwd: _path.default.join(farmDirectory, "..")
102
27
  }));
103
28
  }
104
29
  return _lodash.default.uniq(result);
@@ -108,8 +33,6 @@ class FormGlobs {
108
33
  for (const mask of formGlobs) {
109
34
  result = result.concat(await (0, _FsUtils.globAsync)(mask, {
110
35
  cwd: _path.default.join(farmDirectory, "forms")
111
- })).concat(await (0, _FsUtils.globAsync)(`forms/**/${mask}/${_WellKnownDirectories.WellKnownDirectories.CandySubdirectoryName}`, {
112
- cwd: _path.default.join(farmDirectory, "..")
113
36
  }));
114
37
  if (result.length === 0) {
115
38
  if (mask.includes("*") || mask.includes("?")) {
@@ -140,8 +63,7 @@ class FormGlobs {
140
63
  const forms = await this.resolveGlobsToGfvs([formGlob.replace(":with-ci-build", "")], farmDirectory);
141
64
  const result = [];
142
65
  for (const form of forms) {
143
- // TODO
144
- const formJsonPath = _path.default.join(farmDirectory, "forms", form, _WellKnownDirectories.WellKnownDirectories.FormJsonFileName);
66
+ const formJsonPath = _path.default.join(farmDirectory, "forms", form, "form.json");
145
67
  if (await (0, _fsExtra.pathExists)(formJsonPath)) {
146
68
  const formConfig = await (0, _ResolveFormInfo.readFormConfig)(formJsonPath, new _StaticLogger.NullLogger());
147
69
  if (formConfig.build === "ci") {
@@ -174,4 +96,4 @@ class FormGlobs {
174
96
  }
175
97
  }
176
98
  exports.FormGlobs = FormGlobs;
177
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfbG9kYXNoIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Gb3JtUGF0aFV0aWxzIiwiX1dlbGxLbm93bkRpcmVjdG9yaWVzIiwiX0ZzVXRpbHMiLCJfU3RhdGljTG9nZ2VyIiwiRm9ybUdsb2JzIiwiY29uc3RydWN0b3IiLCJmYXJtRGlyZWN0b3J5IiwiZm9ybUdsb2JTdHJpbmdzIiwiZm9ybUdmdnMiLCJlbnVtZXJhdGVGb3Jtc0luUmVwb3NpdG9yeSIsInJlcG9zaXRvcnlSb290cyIsInJlc3VsdCIsInJlcG9zaXRvcnlSb290IiwiZm9ybUpzb25QYXRoIiwiZ2xvYkFzeW5jIiwiV2VsbEtub3duRGlyZWN0b3JpZXMiLCJGb3JtSnNvbkZpbGVOYW1lIiwiY3dkIiwicGF0aEV4aXN0cyIsInBhdGgiLCJqb2luIiwiZm9ybVBhdGgiLCJkaXJuYW1lIiwiZ2Z2IiwiZXh0cmFjdEdmdkZyb21Gb3JtUGF0aCIsInB1c2giLCJmb3JtUmVsYXRpdmVQYXRoIiwiVGVzdEZhcm1EaXIiLCJDYW5keVN1YmRpcmVjdG9yeU5hbWUiLCJyZXNvbHZlR2xvYnNUb0dmdnMiLCJmb3JtR2xvYnMiLCJtYXNrIiwiY29uY2F0IiwiXyIsInVuaXEiLCJ2YWxpZGF0ZUdsb2JzIiwibGVuZ3RoIiwiaW5jbHVkZXMiLCJFcnJvciIsInJlc29sdmVTcGVjaWZpZXJzIiwiZm9ybUdsb2JzV2l0aFNwZWNpZmllcnMiLCJyZXN1bHRzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsIngiLCJyZXNvbHZlRm9ybUdsb2JTcGVjaWZpZXJzIiwiZmxhdCIsImZvcm1HbG9iIiwiZW5kc1dpdGgiLCJmb3JtcyIsInJlcGxhY2UiLCJmb3JtIiwiZm9ybUNvbmZpZyIsInJlYWRGb3JtQ29uZmlnIiwiTnVsbExvZ2dlciIsImJ1aWxkIiwidXBkYXRlQWxsIiwicmVzb2x2ZUZvcm1HbG9icyIsInVwZGF0ZUZvciIsInVuZGVmaW5lZCIsImlzTWF0Y2giLCJlbnN1cmVGb3JtR2xvYnNSZXNvbHZlZCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvQ29tbW9ucy9Gb3JtR2xvYnNVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBwYXRoRXhpc3RzIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgXyBmcm9tIFwibG9kYXNoXCI7XG5cbmltcG9ydCB7IHJlYWRGb3JtQ29uZmlnIH0gZnJvbSBcIi4uL0J1aWxkVGFza3MvUmVzb2x2ZUZvcm1JbmZvXCI7XG5pbXBvcnQgeyBGYXJtRGlyZWN0b3J5IH0gZnJvbSBcIi4uL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0RpcmVjdG9yaWVzL0Zhcm1EaXJlY3RvcnlcIjtcbmltcG9ydCB7IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGggfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9uL0Zvcm1QYXRoVXRpbHNcIjtcbmltcG9ydCB7IFdlbGxLbm93bkRpcmVjdG9yaWVzIH0gZnJvbSBcIi4uL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0RpcmVjdG9yaWVzL1dlbGxLbm93bkRpcmVjdG9yaWVzXCI7XG5cbmltcG9ydCB7IGdsb2JBc3luYyB9IGZyb20gXCIuL0ZzVXRpbHNcIjtcbmltcG9ydCB7IE51bGxMb2dnZXIgfSBmcm9tIFwiLi9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuXG5leHBvcnQgY2xhc3MgRm9ybUdsb2JzIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZhcm1EaXJlY3Rvcnk6IEZhcm1EaXJlY3Rvcnk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtR2xvYlN0cmluZ3M6IHN0cmluZ1tdO1xuICAgIHByaXZhdGUgZm9ybUdmdnM/OiBzdHJpbmdbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihmYXJtRGlyZWN0b3J5OiBGYXJtRGlyZWN0b3J5LCBmb3JtR2xvYlN0cmluZ3M6IHN0cmluZ1tdKSB7XG4gICAgICAgIHRoaXMuZm9ybUdsb2JTdHJpbmdzID0gZm9ybUdsb2JTdHJpbmdzO1xuICAgICAgICB0aGlzLmZhcm1EaXJlY3RvcnkgPSBmYXJtRGlyZWN0b3J5O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYXN5bmMgZW51bWVyYXRlRm9ybXNJblJlcG9zaXRvcnkoXG4gICAgICAgIC4uLnJlcG9zaXRvcnlSb290czogc3RyaW5nW11cbiAgICApOiBQcm9taXNlPEFycmF5PHsgZ2Z2OiBzdHJpbmc7IGZvcm1QYXRoOiBzdHJpbmc7IGZvcm1SZWxhdGl2ZVBhdGg6IHN0cmluZyB9Pj4ge1xuICAgICAgICBjb25zdCByZXN1bHQ6IEFycmF5PHsgZ2Z2OiBzdHJpbmc7IGZvcm1QYXRoOiBzdHJpbmc7IGZvcm1SZWxhdGl2ZVBhdGg6IHN0cmluZyB9PiA9IFtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgcmVwb3NpdG9yeVJvb3Qgb2YgcmVwb3NpdG9yeVJvb3RzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZvcm1Kc29uUGF0aCBvZiBhd2FpdCBnbG9iQXN5bmMoXG4gICAgICAgICAgICAgICAgYGNhbmR5LmZhcm0vZm9ybXMvKiovKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWV9YCxcbiAgICAgICAgICAgICAgICB7IGN3ZDogcmVwb3NpdG9yeVJvb3QgfVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybUpzb25QYXRoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybVBhdGggPSBwYXRoLmRpcm5hbWUoZm9ybUpzb25QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2Z2ID0gZXh0cmFjdEdmdkZyb21Gb3JtUGF0aChmb3JtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdmdjogZ2Z2LFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybVBhdGg6IHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybVBhdGgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybVJlbGF0aXZlUGF0aDogZm9ybVBhdGgsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3QgZm9ybUpzb25QYXRoIG9mIGF3YWl0IGdsb2JBc3luYyhcbiAgICAgICAgICAgICAgICBgJHtXZWxsS25vd25EaXJlY3Rvcmllcy5UZXN0RmFybURpcn0vZm9ybXMvKiovKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWV9YCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGN3ZDogcmVwb3NpdG9yeVJvb3QsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybUpzb25QYXRoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybVBhdGggPSBwYXRoLmRpcm5hbWUoZm9ybUpzb25QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2Z2ID0gZXh0cmFjdEdmdkZyb21Gb3JtUGF0aChmb3JtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdmdjogZ2Z2LFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybVBhdGg6IHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybVBhdGgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybVJlbGF0aXZlUGF0aDogZm9ybVBhdGgsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3QgZm9ybUpzb25QYXRoIG9mIGF3YWl0IGdsb2JBc3luYyhcbiAgICAgICAgICAgICAgICBgY2FuZHkucnBuLmZhcm0vZm9ybXMvKiovKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWV9YCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGN3ZDogcmVwb3NpdG9yeVJvb3QsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybUpzb25QYXRoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybVBhdGggPSBwYXRoLmRpcm5hbWUoZm9ybUpzb25QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2Z2ID0gZXh0cmFjdEdmdkZyb21Gb3JtUGF0aChmb3JtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdmdjogZ2Z2LFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybVBhdGg6IHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybVBhdGgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybVJlbGF0aXZlUGF0aDogZm9ybVBhdGgsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3QgZm9ybUpzb25QYXRoIG9mIGF3YWl0IGdsb2JBc3luYyhcbiAgICAgICAgICAgICAgICBgY2FuZHkuZGlhZG9jLmZhcm0vZm9ybXMvKiovKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWV9YCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGN3ZDogcmVwb3NpdG9yeVJvb3QsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybUpzb25QYXRoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybVBhdGggPSBwYXRoLmRpcm5hbWUoZm9ybUpzb25QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2Z2ID0gZXh0cmFjdEdmdkZyb21Gb3JtUGF0aChmb3JtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdmdjogZ2Z2LFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybVBhdGg6IHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybVBhdGgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybVJlbGF0aXZlUGF0aDogZm9ybVBhdGgsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3QgZm9ybUpzb25QYXRoIG9mIGF3YWl0IGdsb2JBc3luYyhcbiAgICAgICAgICAgICAgICBgZm9ybXMvKiovKi8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX0vJHtXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lfWAsXG4gICAgICAgICAgICAgICAgeyBjd2Q6IHJlcG9zaXRvcnlSb290IH1cbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1Kc29uUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1QYXRoID0gcGF0aC5kaXJuYW1lKGZvcm1Kc29uUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdmdiA9IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGgoZm9ybVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBnZnY6IGdmdixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1QYXRoOiBwYXRoLmpvaW4ocmVwb3NpdG9yeVJvb3QsIGZvcm1QYXRoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1SZWxhdGl2ZVBhdGg6IGZvcm1QYXRoLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFzeW5jIHJlc29sdmVHbG9ic1RvR2Z2cyhmb3JtR2xvYnM6IHN0cmluZ1tdLCBmYXJtRGlyZWN0b3J5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGxldCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgbWFzayBvZiBmb3JtR2xvYnMpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoYXdhaXQgZ2xvYkFzeW5jKG1hc2ssIHsgY3dkOiBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiKSB9KSkuY29uY2F0KFxuICAgICAgICAgICAgICAgIGF3YWl0IGdsb2JBc3luYyhgZm9ybXMvKiovJHttYXNrfS8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX1gLCB7XG4gICAgICAgICAgICAgICAgICAgIGN3ZDogcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiLi5cIiksXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF8udW5pcShyZXN1bHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYXN5bmMgdmFsaWRhdGVHbG9icyhmb3JtR2xvYnM6IHN0cmluZ1tdLCBmYXJtRGlyZWN0b3J5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGxldCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgbWFzayBvZiBmb3JtR2xvYnMpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoYXdhaXQgZ2xvYkFzeW5jKG1hc2ssIHsgY3dkOiBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiKSB9KSkuY29uY2F0KFxuICAgICAgICAgICAgICAgIGF3YWl0IGdsb2JBc3luYyhgZm9ybXMvKiovJHttYXNrfS8ke1dlbGxLbm93bkRpcmVjdG9yaWVzLkNhbmR5U3ViZGlyZWN0b3J5TmFtZX1gLCB7XG4gICAgICAgICAgICAgICAgICAgIGN3ZDogcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiLi5cIiksXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmIChtYXNrLmluY2x1ZGVzKFwiKlwiKSB8fCBtYXNrLmluY2x1ZGVzKFwiP1wiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYNCc0LDRgdC60LAgR0ZWICR7bWFza30g0L3QtSDRgdC+0L7RgtCy0LXRgtGB0YLRgdCy0YPQtdGCINC90Lgg0L7QtNC90L7QuSDRhNC+0YDQvNC1YCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGDQpNC+0YDQvNGLICR7bWFza30g0L3QtSDQvdCw0LnQtNC10L3Qvi5gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvcm1HbG9icztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFzeW5jIHJlc29sdmVTcGVjaWZpZXJzKGZvcm1HbG9ic1dpdGhTcGVjaWZpZXJzOiBzdHJpbmdbXSwgZmFybURpcmVjdG9yeTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICBmb3JtR2xvYnNXaXRoU3BlY2lmaWVycy5tYXAoeCA9PiB0aGlzLnJlc29sdmVGb3JtR2xvYlNwZWNpZmllcnMoeCwgZmFybURpcmVjdG9yeSkpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiByZXN1bHRzLmZsYXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBhc3luYyByZXNvbHZlRm9ybUdsb2JTcGVjaWZpZXJzKGZvcm1HbG9iOiBzdHJpbmcsIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgaWYgKGZvcm1HbG9iLmVuZHNXaXRoKFwiOndpdGgtdWktdGVzdHNcIikpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1zID0gYXdhaXQgdGhpcy5yZXNvbHZlR2xvYnNUb0dmdnMoW2Zvcm1HbG9iLnJlcGxhY2UoXCI6d2l0aC11aS10ZXN0c1wiLCBcIlwiKV0sIGZhcm1EaXJlY3RvcnkpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZvcm0gb2YgZm9ybXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBmb3JtLCBcInRlc3RzXCIpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChmb3JtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtR2xvYi5lbmRzV2l0aChcIjp3aXRoLWNpLWJ1aWxkXCIpKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtcyA9IGF3YWl0IHRoaXMucmVzb2x2ZUdsb2JzVG9HZnZzKFtmb3JtR2xvYi5yZXBsYWNlKFwiOndpdGgtY2ktYnVpbGRcIiwgXCJcIildLCBmYXJtRGlyZWN0b3J5KTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBmb3JtIG9mIGZvcm1zKSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1Kc29uUGF0aCA9IHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImZvcm1zXCIsIGZvcm0sIFdlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWUpO1xuICAgICAgICAgICAgICAgIGlmIChhd2FpdCBwYXRoRXhpc3RzKGZvcm1Kc29uUGF0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybUNvbmZpZyA9IGF3YWl0IHJlYWRGb3JtQ29uZmlnKGZvcm1Kc29uUGF0aCwgbmV3IE51bGxMb2dnZXIoKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmb3JtQ29uZmlnLmJ1aWxkID09PSBcImNpXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGZvcm0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW2Zvcm1HbG9iXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgdXBkYXRlQWxsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmZvcm1HZnZzID0gYXdhaXQgdGhpcy5mYXJtRGlyZWN0b3J5LnJlc29sdmVGb3JtR2xvYnModGhpcy5mb3JtR2xvYlN0cmluZ3MpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyB1cGRhdGVGb3IoZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybUdmdnMgPT0gdW5kZWZpbmVkIHx8ICEoYXdhaXQgdGhpcy5pc01hdGNoKGdmdikpKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZUFsbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGVuc3VyZUZvcm1HbG9ic1Jlc29sdmVkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5mb3JtR2Z2cyA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlQWxsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgaXNNYXRjaChnZnY6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBpZiAodGhpcy5mb3JtR2Z2cyA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbGwgbWV0aG9kIGVuc3VyZUZvcm1HbG9ic1Jlc29sdmVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1HZnZzLmluY2x1ZGVzKGdmdik7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUcsZ0JBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLGNBQUEsR0FBQUosT0FBQTtBQUNB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
99
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2ZzRXh0cmEiLCJfbG9kYXNoIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Gc1V0aWxzIiwiX1N0YXRpY0xvZ2dlciIsIkZvcm1HbG9icyIsImNvbnN0cnVjdG9yIiwiZmFybURpcmVjdG9yeSIsImZvcm1HbG9iU3RyaW5ncyIsImZvcm1HZnZzIiwicmVzb2x2ZUdsb2JzVG9HZnZzIiwiZm9ybUdsb2JzIiwicmVzdWx0IiwibWFzayIsImNvbmNhdCIsImdsb2JBc3luYyIsImN3ZCIsInBhdGgiLCJqb2luIiwiXyIsInVuaXEiLCJ2YWxpZGF0ZUdsb2JzIiwibGVuZ3RoIiwiaW5jbHVkZXMiLCJFcnJvciIsInJlc29sdmVTcGVjaWZpZXJzIiwiZm9ybUdsb2JzV2l0aFNwZWNpZmllcnMiLCJyZXN1bHRzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsIngiLCJyZXNvbHZlRm9ybUdsb2JTcGVjaWZpZXJzIiwiZmxhdCIsImZvcm1HbG9iIiwiZW5kc1dpdGgiLCJmb3JtcyIsInJlcGxhY2UiLCJmb3JtIiwicGF0aEV4aXN0cyIsInB1c2giLCJmb3JtSnNvblBhdGgiLCJmb3JtQ29uZmlnIiwicmVhZEZvcm1Db25maWciLCJOdWxsTG9nZ2VyIiwiYnVpbGQiLCJ1cGRhdGVBbGwiLCJyZXNvbHZlRm9ybUdsb2JzIiwidXBkYXRlRm9yIiwiZ2Z2IiwidW5kZWZpbmVkIiwiaXNNYXRjaCIsImVuc3VyZUZvcm1HbG9ic1Jlc29sdmVkIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9Db21tb25zL0Zvcm1HbG9ic1V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IHBhdGhFeGlzdHMgfSBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCBfIGZyb20gXCJsb2Rhc2hcIjtcblxuaW1wb3J0IHsgcmVhZEZvcm1Db25maWcgfSBmcm9tIFwiLi4vQnVpbGRUYXNrcy9SZXNvbHZlRm9ybUluZm9cIjtcbmltcG9ydCB7IEZhcm1EaXJlY3RvcnkgfSBmcm9tIFwiLi4vQ0xJQ29tbWFuZHMvQnVpbGRTZXJ2ZXIvUmVzb3VyY2VzQ29udHJvbGxlcnMvRGlyZWN0b3JpZXMvRmFybURpcmVjdG9yeVwiO1xuXG5pbXBvcnQgeyBnbG9iQXN5bmMgfSBmcm9tIFwiLi9Gc1V0aWxzXCI7XG5pbXBvcnQgeyBOdWxsTG9nZ2VyIH0gZnJvbSBcIi4vTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcblxuZXhwb3J0IGNsYXNzIEZvcm1HbG9icyB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmYXJtRGlyZWN0b3J5OiBGYXJtRGlyZWN0b3J5O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUdsb2JTdHJpbmdzOiBzdHJpbmdbXTtcbiAgICBwcml2YXRlIGZvcm1HZnZzPzogc3RyaW5nW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZmFybURpcmVjdG9yeTogRmFybURpcmVjdG9yeSwgZm9ybUdsb2JTdHJpbmdzOiBzdHJpbmdbXSkge1xuICAgICAgICB0aGlzLmZvcm1HbG9iU3RyaW5ncyA9IGZvcm1HbG9iU3RyaW5ncztcbiAgICAgICAgdGhpcy5mYXJtRGlyZWN0b3J5ID0gZmFybURpcmVjdG9yeTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFzeW5jIHJlc29sdmVHbG9ic1RvR2Z2cyhmb3JtR2xvYnM6IHN0cmluZ1tdLCBmYXJtRGlyZWN0b3J5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGxldCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgbWFzayBvZiBmb3JtR2xvYnMpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoYXdhaXQgZ2xvYkFzeW5jKG1hc2ssIHsgY3dkOiBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiKSB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF8udW5pcShyZXN1bHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYXN5bmMgdmFsaWRhdGVHbG9icyhmb3JtR2xvYnM6IHN0cmluZ1tdLCBmYXJtRGlyZWN0b3J5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGxldCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgbWFzayBvZiBmb3JtR2xvYnMpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoYXdhaXQgZ2xvYkFzeW5jKG1hc2ssIHsgY3dkOiBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiKSB9KSk7XG4gICAgICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGlmIChtYXNrLmluY2x1ZGVzKFwiKlwiKSB8fCBtYXNrLmluY2x1ZGVzKFwiP1wiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYNCc0LDRgdC60LAgR0ZWICR7bWFza30g0L3QtSDRgdC+0L7RgtCy0LXRgtGB0YLRgdCy0YPQtdGCINC90Lgg0L7QtNC90L7QuSDRhNC+0YDQvNC1YCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGDQpNC+0YDQvNGLICR7bWFza30g0L3QtSDQvdCw0LnQtNC10L3Qvi5gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvcm1HbG9icztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFzeW5jIHJlc29sdmVTcGVjaWZpZXJzKGZvcm1HbG9ic1dpdGhTcGVjaWZpZXJzOiBzdHJpbmdbXSwgZmFybURpcmVjdG9yeTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICBmb3JtR2xvYnNXaXRoU3BlY2lmaWVycy5tYXAoeCA9PiB0aGlzLnJlc29sdmVGb3JtR2xvYlNwZWNpZmllcnMoeCwgZmFybURpcmVjdG9yeSkpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiByZXN1bHRzLmZsYXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBhc3luYyByZXNvbHZlRm9ybUdsb2JTcGVjaWZpZXJzKGZvcm1HbG9iOiBzdHJpbmcsIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICAgICAgaWYgKGZvcm1HbG9iLmVuZHNXaXRoKFwiOndpdGgtdWktdGVzdHNcIikpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1zID0gYXdhaXQgdGhpcy5yZXNvbHZlR2xvYnNUb0dmdnMoW2Zvcm1HbG9iLnJlcGxhY2UoXCI6d2l0aC11aS10ZXN0c1wiLCBcIlwiKV0sIGZhcm1EaXJlY3RvcnkpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZvcm0gb2YgZm9ybXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoYXdhaXQgcGF0aEV4aXN0cyhwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJmb3Jtc1wiLCBmb3JtLCBcInRlc3RzXCIpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChmb3JtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtR2xvYi5lbmRzV2l0aChcIjp3aXRoLWNpLWJ1aWxkXCIpKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtcyA9IGF3YWl0IHRoaXMucmVzb2x2ZUdsb2JzVG9HZnZzKFtmb3JtR2xvYi5yZXBsYWNlKFwiOndpdGgtY2ktYnVpbGRcIiwgXCJcIildLCBmYXJtRGlyZWN0b3J5KTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCBmb3JtIG9mIGZvcm1zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybUpzb25QYXRoID0gcGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIFwiZm9ybXNcIiwgZm9ybSwgXCJmb3JtLmpzb25cIik7XG4gICAgICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMoZm9ybUpzb25QYXRoKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb3JtQ29uZmlnID0gYXdhaXQgcmVhZEZvcm1Db25maWcoZm9ybUpzb25QYXRoLCBuZXcgTnVsbExvZ2dlcigpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1Db25maWcuYnVpbGQgPT09IFwiY2lcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goZm9ybSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbZm9ybUdsb2JdO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyB1cGRhdGVBbGwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuZm9ybUdmdnMgPSBhd2FpdCB0aGlzLmZhcm1EaXJlY3RvcnkucmVzb2x2ZUZvcm1HbG9icyh0aGlzLmZvcm1HbG9iU3RyaW5ncyk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHVwZGF0ZUZvcihnZnY6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5mb3JtR2Z2cyA9PSB1bmRlZmluZWQgfHwgIShhd2FpdCB0aGlzLmlzTWF0Y2goZ2Z2KSkpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMudXBkYXRlQWxsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZW5zdXJlRm9ybUdsb2JzUmVzb2x2ZWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmZvcm1HZnZzID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVBbGwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBpc01hdGNoKGdmdjogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIGlmICh0aGlzLmZvcm1HZnZzID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2FsbCBtZXRob2QgZW5zdXJlRm9ybUdsb2JzUmVzb2x2ZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUdmdnMuaW5jbHVkZXMoZ2Z2KTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRyxnQkFBQSxHQUFBSCxPQUFBO0FBR0EsSUFBQUksUUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssYUFBQSxHQUFBTCxPQUFBO0FBRU8sTUFBTU0sU0FBUyxDQUFDO0VBS1pDLFdBQVdBLENBQUNDLGFBQTRCLEVBQUVDLGVBQXlCLEVBQUU7SUFBQSxLQUozREQsYUFBYTtJQUFBLEtBQ2JDLGVBQWU7SUFBQSxLQUN4QkMsUUFBUTtJQUdaLElBQUksQ0FBQ0QsZUFBZSxHQUFHQSxlQUFlO0lBQ3RDLElBQUksQ0FBQ0QsYUFBYSxHQUFHQSxhQUFhO0VBQ3RDO0VBRUEsYUFBb0JHLGtCQUFrQkEsQ0FBQ0MsU0FBbUIsRUFBRUosYUFBcUIsRUFBcUI7SUFDbEcsSUFBSUssTUFBZ0IsR0FBRyxFQUFFO0lBQ3pCLEtBQUssTUFBTUMsSUFBSSxJQUFJRixTQUFTLEVBQUU7TUFDMUJDLE1BQU0sR0FBR0EsTUFBTSxDQUFDRSxNQUFNLENBQUMsTUFBTSxJQUFBQyxrQkFBUyxFQUFDRixJQUFJLEVBQUU7UUFBRUcsR0FBRyxFQUFFQyxhQUFJLENBQUNDLElBQUksQ0FBQ1gsYUFBYSxFQUFFLE9BQU87TUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RjtJQUNBLE9BQU9ZLGVBQUMsQ0FBQ0MsSUFBSSxDQUFDUixNQUFNLENBQUM7RUFDekI7RUFFQSxhQUFvQlMsYUFBYUEsQ0FBQ1YsU0FBbUIsRUFBRUosYUFBcUIsRUFBcUI7SUFDN0YsSUFBSUssTUFBZ0IsR0FBRyxFQUFFO0lBQ3pCLEtBQUssTUFBTUMsSUFBSSxJQUFJRixTQUFTLEVBQUU7TUFDMUJDLE1BQU0sR0FBR0EsTUFBTSxDQUFDRSxNQUFNLENBQUMsTUFBTSxJQUFBQyxrQkFBUyxFQUFDRixJQUFJLEVBQUU7UUFBRUcsR0FBRyxFQUFFQyxhQUFJLENBQUNDLElBQUksQ0FBQ1gsYUFBYSxFQUFFLE9BQU87TUFBRSxDQUFDLENBQUMsQ0FBQztNQUN6RixJQUFJSyxNQUFNLENBQUNVLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDckIsSUFBSVQsSUFBSSxDQUFDVSxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUlWLElBQUksQ0FBQ1UsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1VBQzFDLE1BQU0sSUFBSUMsS0FBSyxDQUFFLGFBQVlYLElBQUssbUNBQWtDLENBQUM7UUFDekUsQ0FBQyxNQUFNO1VBQ0gsTUFBTSxJQUFJVyxLQUFLLENBQUUsU0FBUVgsSUFBSyxjQUFhLENBQUM7UUFDaEQ7TUFDSjtJQUNKO0lBQ0EsT0FBT0YsU0FBUztFQUNwQjtFQUVBLGFBQW9CYyxpQkFBaUJBLENBQUNDLHVCQUFpQyxFQUFFbkIsYUFBcUIsRUFBcUI7SUFDL0csTUFBTW9CLE9BQU8sR0FBRyxNQUFNQyxPQUFPLENBQUNDLEdBQUcsQ0FDN0JILHVCQUF1QixDQUFDSSxHQUFHLENBQUNDLENBQUMsSUFBSSxJQUFJLENBQUNDLHlCQUF5QixDQUFDRCxDQUFDLEVBQUV4QixhQUFhLENBQUMsQ0FDckYsQ0FBQztJQUNELE9BQU9vQixPQUFPLENBQUNNLElBQUksQ0FBQyxDQUFDO0VBQ3pCO0VBRUEsYUFBcUJELHlCQUF5QkEsQ0FBQ0UsUUFBZ0IsRUFBRTNCLGFBQXFCLEVBQXFCO0lBQ3ZHLElBQUkyQixRQUFRLENBQUNDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO01BQ3JDLE1BQU1DLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQzFCLGtCQUFrQixDQUFDLENBQUN3QixRQUFRLENBQUNHLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFOUIsYUFBYSxDQUFDO01BQ3BHLE1BQU1LLE1BQU0sR0FBRyxFQUFFO01BQ2pCLEtBQUssTUFBTTBCLElBQUksSUFBSUYsS0FBSyxFQUFFO1FBQ3RCLElBQUksTUFBTSxJQUFBRyxtQkFBVSxFQUFDdEIsYUFBSSxDQUFDQyxJQUFJLENBQUNYLGFBQWEsRUFBRSxPQUFPLEVBQUUrQixJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRTtVQUNwRTFCLE1BQU0sQ0FBQzRCLElBQUksQ0FBQ0YsSUFBSSxDQUFDO1FBQ3JCO01BQ0o7TUFDQSxPQUFPMUIsTUFBTTtJQUNqQjtJQUNBLElBQUlzQixRQUFRLENBQUNDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO01BQ3JDLE1BQU1DLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQzFCLGtCQUFrQixDQUFDLENBQUN3QixRQUFRLENBQUNHLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFOUIsYUFBYSxDQUFDO01BQ3BHLE1BQU1LLE1BQU0sR0FBRyxFQUFFO01BQ2pCLEtBQUssTUFBTTBCLElBQUksSUFBSUYsS0FBSyxFQUFFO1FBQ3RCLE1BQU1LLFlBQVksR0FBR3hCLGFBQUksQ0FBQ0MsSUFBSSxDQUFDWCxhQUFhLEVBQUUsT0FBTyxFQUFFK0IsSUFBSSxFQUFFLFdBQVcsQ0FBQztRQUN6RSxJQUFJLE1BQU0sSUFBQUMsbUJBQVUsRUFBQ0UsWUFBWSxDQUFDLEVBQUU7VUFDaEMsTUFBTUMsVUFBVSxHQUFHLE1BQU0sSUFBQUMsK0JBQWMsRUFBQ0YsWUFBWSxFQUFFLElBQUlHLHdCQUFVLENBQUMsQ0FBQyxDQUFDO1VBQ3ZFLElBQUlGLFVBQVUsQ0FBQ0csS0FBSyxLQUFLLElBQUksRUFBRTtZQUMzQmpDLE1BQU0sQ0FBQzRCLElBQUksQ0FBQ0YsSUFBSSxDQUFDO1VBQ3JCO1FBQ0o7TUFDSjtNQUNBLE9BQU8xQixNQUFNO0lBQ2pCO0lBQ0EsT0FBTyxDQUFDc0IsUUFBUSxDQUFDO0VBQ3JCO0VBRUEsTUFBYVksU0FBU0EsQ0FBQSxFQUFrQjtJQUNwQyxJQUFJLENBQUNyQyxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUNGLGFBQWEsQ0FBQ3dDLGdCQUFnQixDQUFDLElBQUksQ0FBQ3ZDLGVBQWUsQ0FBQztFQUNuRjtFQUVBLE1BQWF3QyxTQUFTQSxDQUFDQyxHQUFXLEVBQWlCO0lBQy9DLElBQUksSUFBSSxDQUFDeEMsUUFBUSxJQUFJeUMsU0FBUyxJQUFJLEVBQUUsTUFBTSxJQUFJLENBQUNDLE9BQU8sQ0FBQ0YsR0FBRyxDQUFDLENBQUMsRUFBRTtNQUMxRCxNQUFNLElBQUksQ0FBQ0gsU0FBUyxDQUFDLENBQUM7SUFDMUI7RUFDSjtFQUVBLE1BQWFNLHVCQUF1QkEsQ0FBQSxFQUFrQjtJQUNsRCxJQUFJLElBQUksQ0FBQzNDLFFBQVEsSUFBSXlDLFNBQVMsRUFBRTtNQUM1QixNQUFNLElBQUksQ0FBQ0osU0FBUyxDQUFDLENBQUM7SUFDMUI7RUFDSjtFQUVBLE1BQWFLLE9BQU9BLENBQUNGLEdBQVcsRUFBb0I7SUFDaEQsSUFBSSxJQUFJLENBQUN4QyxRQUFRLElBQUl5QyxTQUFTLEVBQUU7TUFDNUIsTUFBTSxJQUFJMUIsS0FBSyxDQUFDLHFDQUFxQyxDQUFDO0lBQzFEO0lBQ0EsT0FBTyxJQUFJLENBQUNmLFFBQVEsQ0FBQ2MsUUFBUSxDQUFDMEIsR0FBRyxDQUFDO0VBQ3RDO0FBQ0o7QUFBQ0ksT0FBQSxDQUFBaEQsU0FBQSxHQUFBQSxTQUFBIn0=
@@ -9,9 +9,6 @@ var _chokidar = require("chokidar");
9
9
  var _lodash = _interopRequireDefault(require("lodash"));
10
10
  var _FsUtils = require("../FsUtils");
11
11
  var _ChainableValueProducer = require("./ChainableValueProducer");
12
- var path = _interopRequireWildcard(require("path"));
13
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
12
  class DirectoryEntriesProducer extends _ChainableValueProducer.ObservableValueProducerBase {
16
13
  constructor(pathToDir, masks) {
17
14
  super();
@@ -48,16 +45,11 @@ class DirectoryEntriesProducer extends _ChainableValueProducer.ObservableValuePr
48
45
  return this.lastValue;
49
46
  }
50
47
  async resolveDirectoryContent() {
51
- const result = [];
48
+ let result = [];
52
49
  for (const mask of this.masks) {
53
- const paths = await (0, _FsUtils.globAsync)(mask, {
50
+ result = result.concat(await (0, _FsUtils.globAsync)(mask, {
54
51
  cwd: this.pathToDir
55
- });
56
- for (const matchedPath of paths) {
57
- if (await (0, _FsUtils.isDirectoryExists)(path.join(this.pathToDir, matchedPath))) {
58
- result.push(matchedPath);
59
- }
60
- }
52
+ }));
61
53
  }
62
54
  return _lodash.default.uniq(result);
63
55
  }
@@ -70,4 +62,4 @@ class DirectoryEntriesProducer extends _ChainableValueProducer.ObservableValuePr
70
62
  }
71
63
  }
72
64
  exports.DirectoryEntriesProducer = DirectoryEntriesProducer;
73
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hva2lkYXIiLCJyZXF1aXJlIiwiX2xvZGFzaCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfRnNVdGlscyIsIl9DaGFpbmFibGVWYWx1ZVByb2R1Y2VyIiwicGF0aCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkRpcmVjdG9yeUVudHJpZXNQcm9kdWNlciIsIk9ic2VydmFibGVWYWx1ZVByb2R1Y2VyQmFzZSIsImNvbnN0cnVjdG9yIiwicGF0aFRvRGlyIiwibWFza3MiLCJsYXN0VmFsdWUiLCJ3YXRjaGVyIiwiYmVnaW5MaXN0ZW5pbmciLCJ1bmRlZmluZWQiLCJ3YXRjaCIsImlnbm9yZUluaXRpYWwiLCJjd2QiLCJpZ25vcmVQZXJtaXNzaW9uRXJyb3JzIiwidXNlUG9sbGluZyIsImRlcHRoIiwiaGFuZGxlQW55RnNFdmVudERlYm91bmNlZCIsIl8iLCJkZWJvdW5jZSIsImhhbmRsZUFueUZzRXZlbnQiLCJvbiIsInN0b3BMaXN0ZW5pbmciLCJjbG9zZSIsImdldEN1cnJlbnRWYWx1ZSIsInJlc29sdmVEaXJlY3RvcnlDb250ZW50IiwicmVzdWx0IiwibWFzayIsInBhdGhzIiwiZ2xvYkFzeW5jIiwibWF0Y2hlZFBhdGgiLCJpc0RpcmVjdG9yeUV4aXN0cyIsImpvaW4iLCJwdXNoIiwidW5pcSIsIm5leHRWYWx1ZSIsImlzRXF1YWwiLCJlbWl0VXBkYXRlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9Db21tb25zL1Rhc2tzQ29yZS9EaXJlY3RvcnlFbnRyaWVzUHJvZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRlNXYXRjaGVyLCB3YXRjaCB9IGZyb20gXCJjaG9raWRhclwiO1xuaW1wb3J0IF8gZnJvbSBcImxvZGFzaFwiO1xuXG5pbXBvcnQgeyBnbG9iQXN5bmMsIGlzRGlyZWN0b3J5RXhpc3RzIH0gZnJvbSBcIi4uL0ZzVXRpbHNcIjtcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZVZhbHVlUHJvZHVjZXJCYXNlIH0gZnJvbSBcIi4vQ2hhaW5hYmxlVmFsdWVQcm9kdWNlclwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5leHBvcnQgY2xhc3MgRGlyZWN0b3J5RW50cmllc1Byb2R1Y2VyIGV4dGVuZHMgT2JzZXJ2YWJsZVZhbHVlUHJvZHVjZXJCYXNlPHN0cmluZ1tdPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXRoVG9EaXI6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hc2tzOiBzdHJpbmdbXTtcbiAgICBwcml2YXRlIGxhc3RWYWx1ZT86IHN0cmluZ1tdO1xuICAgIHByaXZhdGUgd2F0Y2hlcj86IEZTV2F0Y2hlcjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXRoVG9EaXI6IHN0cmluZywgbWFza3M6IHN0cmluZ1tdKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMucGF0aFRvRGlyID0gcGF0aFRvRGlyO1xuICAgICAgICB0aGlzLm1hc2tzID0gbWFza3M7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGJlZ2luTGlzdGVuaW5nKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy53YXRjaGVyICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMud2F0Y2hlciA9IHdhdGNoKHRoaXMubWFza3MsIHtcbiAgICAgICAgICAgIGlnbm9yZUluaXRpYWw6IHRydWUsXG4gICAgICAgICAgICBjd2Q6IHRoaXMucGF0aFRvRGlyLFxuICAgICAgICAgICAgaWdub3JlUGVybWlzc2lvbkVycm9yczogZmFsc2UsXG4gICAgICAgICAgICB1c2VQb2xsaW5nOiB0cnVlLFxuICAgICAgICAgICAgZGVwdGg6IDEsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBoYW5kbGVBbnlGc0V2ZW50RGVib3VuY2VkID0gXy5kZWJvdW5jZSgoKSA9PiB0aGlzLmhhbmRsZUFueUZzRXZlbnQoKSwgMTAwMCk7XG4gICAgICAgIHRoaXMud2F0Y2hlci5vbihcImFsbFwiLCBoYW5kbGVBbnlGc0V2ZW50RGVib3VuY2VkKTtcbiAgICAgICAgdGhpcy53YXRjaGVyLm9uKFwiZXJyb3JcIiwgaGFuZGxlQW55RnNFdmVudERlYm91bmNlZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIHN0b3BMaXN0ZW5pbmcoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLndhdGNoZXIgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWZsb2F0aW5nLXByb21pc2VzXG4gICAgICAgICAgICB0aGlzLndhdGNoZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyBnZXRDdXJyZW50VmFsdWUoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICB0aGlzLmxhc3RWYWx1ZSA9IGF3YWl0IHRoaXMucmVzb2x2ZURpcmVjdG9yeUNvbnRlbnQoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMubGFzdFZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgcmVzb2x2ZURpcmVjdG9yeUNvbnRlbnQoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgbWFzayBvZiB0aGlzLm1hc2tzKSB7XG4gICAgICAgICAgICBjb25zdCBwYXRocyA9IGF3YWl0IGdsb2JBc3luYyhtYXNrLCB7IGN3ZDogdGhpcy5wYXRoVG9EaXIgfSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG1hdGNoZWRQYXRoIG9mIHBhdGhzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGF3YWl0IGlzRGlyZWN0b3J5RXhpc3RzKHBhdGguam9pbih0aGlzLnBhdGhUb0RpciwgbWF0Y2hlZFBhdGgpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChtYXRjaGVkUGF0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfLnVuaXEocmVzdWx0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGhhbmRsZUFueUZzRXZlbnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IGF3YWl0IHRoaXMucmVzb2x2ZURpcmVjdG9yeUNvbnRlbnQoKTtcbiAgICAgICAgaWYgKCFfLmlzRXF1YWwodGhpcy5sYXN0VmFsdWUsIG5leHRWYWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMubGFzdFZhbHVlID0gbmV4dFZhbHVlO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5lbWl0VXBkYXRlKHRoaXMubGFzdFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLHVCQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxJQUFBLEdBQUFDLHVCQUFBLENBQUFOLE9BQUE7QUFB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
65
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hva2lkYXIiLCJyZXF1aXJlIiwiX2xvZGFzaCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfRnNVdGlscyIsIl9DaGFpbmFibGVWYWx1ZVByb2R1Y2VyIiwiRGlyZWN0b3J5RW50cmllc1Byb2R1Y2VyIiwiT2JzZXJ2YWJsZVZhbHVlUHJvZHVjZXJCYXNlIiwiY29uc3RydWN0b3IiLCJwYXRoVG9EaXIiLCJtYXNrcyIsImxhc3RWYWx1ZSIsIndhdGNoZXIiLCJiZWdpbkxpc3RlbmluZyIsInVuZGVmaW5lZCIsIndhdGNoIiwiaWdub3JlSW5pdGlhbCIsImN3ZCIsImlnbm9yZVBlcm1pc3Npb25FcnJvcnMiLCJ1c2VQb2xsaW5nIiwiZGVwdGgiLCJoYW5kbGVBbnlGc0V2ZW50RGVib3VuY2VkIiwiXyIsImRlYm91bmNlIiwiaGFuZGxlQW55RnNFdmVudCIsIm9uIiwic3RvcExpc3RlbmluZyIsImNsb3NlIiwiZ2V0Q3VycmVudFZhbHVlIiwicmVzb2x2ZURpcmVjdG9yeUNvbnRlbnQiLCJyZXN1bHQiLCJtYXNrIiwiY29uY2F0IiwiZ2xvYkFzeW5jIiwidW5pcSIsIm5leHRWYWx1ZSIsImlzRXF1YWwiLCJlbWl0VXBkYXRlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9Db21tb25zL1Rhc2tzQ29yZS9EaXJlY3RvcnlFbnRyaWVzUHJvZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRlNXYXRjaGVyLCB3YXRjaCB9IGZyb20gXCJjaG9raWRhclwiO1xuaW1wb3J0IF8gZnJvbSBcImxvZGFzaFwiO1xuXG5pbXBvcnQgeyBnbG9iQXN5bmMgfSBmcm9tIFwiLi4vRnNVdGlsc1wiO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlVmFsdWVQcm9kdWNlckJhc2UgfSBmcm9tIFwiLi9DaGFpbmFibGVWYWx1ZVByb2R1Y2VyXCI7XG5cbmV4cG9ydCBjbGFzcyBEaXJlY3RvcnlFbnRyaWVzUHJvZHVjZXIgZXh0ZW5kcyBPYnNlcnZhYmxlVmFsdWVQcm9kdWNlckJhc2U8c3RyaW5nW10+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhdGhUb0Rpcjogc3RyaW5nO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWFza3M6IHN0cmluZ1tdO1xuICAgIHByaXZhdGUgbGFzdFZhbHVlPzogc3RyaW5nW107XG4gICAgcHJpdmF0ZSB3YXRjaGVyPzogRlNXYXRjaGVyO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHBhdGhUb0Rpcjogc3RyaW5nLCBtYXNrczogc3RyaW5nW10pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5wYXRoVG9EaXIgPSBwYXRoVG9EaXI7XG4gICAgICAgIHRoaXMubWFza3MgPSBtYXNrcztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgYmVnaW5MaXN0ZW5pbmcoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLndhdGNoZXIgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy53YXRjaGVyID0gd2F0Y2godGhpcy5tYXNrcywge1xuICAgICAgICAgICAgaWdub3JlSW5pdGlhbDogdHJ1ZSxcbiAgICAgICAgICAgIGN3ZDogdGhpcy5wYXRoVG9EaXIsXG4gICAgICAgICAgICBpZ25vcmVQZXJtaXNzaW9uRXJyb3JzOiBmYWxzZSxcbiAgICAgICAgICAgIHVzZVBvbGxpbmc6IHRydWUsXG4gICAgICAgICAgICBkZXB0aDogMSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGhhbmRsZUFueUZzRXZlbnREZWJvdW5jZWQgPSBfLmRlYm91bmNlKCgpID0+IHRoaXMuaGFuZGxlQW55RnNFdmVudCgpLCAxMDAwKTtcbiAgICAgICAgdGhpcy53YXRjaGVyLm9uKFwiYWxsXCIsIGhhbmRsZUFueUZzRXZlbnREZWJvdW5jZWQpO1xuICAgICAgICB0aGlzLndhdGNoZXIub24oXCJlcnJvclwiLCBoYW5kbGVBbnlGc0V2ZW50RGVib3VuY2VkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgc3RvcExpc3RlbmluZygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMud2F0Y2hlciAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZmxvYXRpbmctcHJvbWlzZXNcbiAgICAgICAgICAgIHRoaXMud2F0Y2hlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGdldEN1cnJlbnRWYWx1ZSgpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIHRoaXMubGFzdFZhbHVlID0gYXdhaXQgdGhpcy5yZXNvbHZlRGlyZWN0b3J5Q29udGVudCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5sYXN0VmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyByZXNvbHZlRGlyZWN0b3J5Q29udGVudCgpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgICAgIGxldCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgbWFzayBvZiB0aGlzLm1hc2tzKSB7XG4gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGF3YWl0IGdsb2JBc3luYyhtYXNrLCB7IGN3ZDogdGhpcy5wYXRoVG9EaXIgfSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBfLnVuaXEocmVzdWx0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGhhbmRsZUFueUZzRXZlbnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IGF3YWl0IHRoaXMucmVzb2x2ZURpcmVjdG9yeUNvbnRlbnQoKTtcbiAgICAgICAgaWYgKCFfLmlzRXF1YWwodGhpcy5sYXN0VmFsdWUsIG5leHRWYWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMubGFzdFZhbHVlID0gbmV4dFZhbHVlO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5lbWl0VXBkYXRlKHRoaXMubGFzdFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLHVCQUFBLEdBQUFKLE9BQUE7QUFFTyxNQUFNSyx3QkFBd0IsU0FBU0MsbURBQTJCLENBQVc7RUFNekVDLFdBQVdBLENBQUNDLFNBQWlCLEVBQUVDLEtBQWUsRUFBRTtJQUNuRCxLQUFLLENBQUMsQ0FBQztJQUFDLEtBTktELFNBQVM7SUFBQSxLQUNUQyxLQUFLO0lBQUEsS0FDZEMsU0FBUztJQUFBLEtBQ1RDLE9BQU87SUFJWCxJQUFJLENBQUNILFNBQVMsR0FBR0EsU0FBUztJQUMxQixJQUFJLENBQUNDLEtBQUssR0FBR0EsS0FBSztFQUN0QjtFQUVBLE1BQWdCRyxjQUFjQSxDQUFBLEVBQWtCO0lBQzVDLElBQUksSUFBSSxDQUFDRCxPQUFPLElBQUlFLFNBQVMsRUFBRTtNQUMzQjtJQUNKO0lBQ0EsSUFBSSxDQUFDRixPQUFPLEdBQUcsSUFBQUcsZUFBSyxFQUFDLElBQUksQ0FBQ0wsS0FBSyxFQUFFO01BQzdCTSxhQUFhLEVBQUUsSUFBSTtNQUNuQkMsR0FBRyxFQUFFLElBQUksQ0FBQ1IsU0FBUztNQUNuQlMsc0JBQXNCLEVBQUUsS0FBSztNQUM3QkMsVUFBVSxFQUFFLElBQUk7TUFDaEJDLEtBQUssRUFBRTtJQUNYLENBQUMsQ0FBQztJQUNGLE1BQU1DLHlCQUF5QixHQUFHQyxlQUFDLENBQUNDLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQ0MsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQztJQUNqRixJQUFJLENBQUNaLE9BQU8sQ0FBQ2EsRUFBRSxDQUFDLEtBQUssRUFBRUoseUJBQXlCLENBQUM7SUFDakQsSUFBSSxDQUFDVCxPQUFPLENBQUNhLEVBQUUsQ0FBQyxPQUFPLEVBQUVKLHlCQUF5QixDQUFDO0VBQ3ZEO0VBRUEsTUFBZ0JLLGFBQWFBLENBQUEsRUFBa0I7SUFDM0MsSUFBSSxJQUFJLENBQUNkLE9BQU8sSUFBSUUsU0FBUyxFQUFFO01BQzNCO01BQ0EsSUFBSSxDQUFDRixPQUFPLENBQUNlLEtBQUssQ0FBQyxDQUFDO0lBQ3hCO0VBQ0o7RUFFQSxNQUFnQkMsZUFBZUEsQ0FBQSxFQUFzQjtJQUNqRCxJQUFJLENBQUNqQixTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUNrQix1QkFBdUIsQ0FBQyxDQUFDO0lBQ3JELE9BQU8sSUFBSSxDQUFDbEIsU0FBUztFQUN6QjtFQUVBLE1BQWNrQix1QkFBdUJBLENBQUEsRUFBc0I7SUFDdkQsSUFBSUMsTUFBZ0IsR0FBRyxFQUFFO0lBQ3pCLEtBQUssTUFBTUMsSUFBSSxJQUFJLElBQUksQ0FBQ3JCLEtBQUssRUFBRTtNQUMzQm9CLE1BQU0sR0FBR0EsTUFBTSxDQUFDRSxNQUFNLENBQUMsTUFBTSxJQUFBQyxrQkFBUyxFQUFDRixJQUFJLEVBQUU7UUFBRWQsR0FBRyxFQUFFLElBQUksQ0FBQ1I7TUFBVSxDQUFDLENBQUMsQ0FBQztJQUMxRTtJQUNBLE9BQU9hLGVBQUMsQ0FBQ1ksSUFBSSxDQUFDSixNQUFNLENBQUM7RUFDekI7RUFFQSxNQUFjTixnQkFBZ0JBLENBQUEsRUFBa0I7SUFDNUMsTUFBTVcsU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDTix1QkFBdUIsQ0FBQyxDQUFDO0lBQ3RELElBQUksQ0FBQ1AsZUFBQyxDQUFDYyxPQUFPLENBQUMsSUFBSSxDQUFDekIsU0FBUyxFQUFFd0IsU0FBUyxDQUFDLEVBQUU7TUFDdkMsSUFBSSxDQUFDeEIsU0FBUyxHQUFHd0IsU0FBUztNQUMxQixNQUFNLElBQUksQ0FBQ0UsVUFBVSxDQUFDLElBQUksQ0FBQzFCLFNBQVMsQ0FBQztJQUN6QztFQUNKO0FBQ0o7QUFBQzJCLE9BQUEsQ0FBQWhDLHdCQUFBLEdBQUFBLHdCQUFBIn0=