@kontur.candy/tools 2.172.0 → 2.173.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.
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
<a name="2.173.0"></a>
|
|
2
|
+
# [2.173.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.172.0...release/tools/v2.173.0) (2024-03-03)
|
|
3
|
+
|
|
1
4
|
<a name="2.172.0"></a>
|
|
2
5
|
# [2.172.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.171.0...release/tools/v2.172.0) (2024-03-03)
|
|
3
6
|
|
|
@@ -72,26 +72,22 @@ async function runDevBuild(context, options, engineDirectory, resourcesDirectory
|
|
|
72
72
|
}).attach(async fi => _Observe.Observe.files(_path.default.join(formDirPath, "form"), "**/*")).do(fi => (0, _CompileForm.compileForm)(fi.formName, fi.themes, farmDirectory, formDirPath, resourcesDirectory, fi.dependenciesHash, options.buildDebugOnly)).do(fi => (0, _WriteFLangNormalizationFiles.writeFLangNormalizationFiles)(fi.formName, farmDirectory, formDirPath, resourcesDirectory)).do(fi => (0, _WriteAttachmentPathFiles.writeAttachmentPathFiles)(fi.formName, farmDirectory, formDirPath, resourcesDirectory)).do(fi => (0, _WriteFormMeta.writeFormMeta)(resourcesDirectory, gfv, fi.engineSource, fi.dependenciesHash, fi.themes)).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "schemas"), rngSchemaMask).do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("SCHEMAS"), x, _path.default.join(resourcesDirectory, "schemas")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "converters"), "*").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("CONVERTERS"), x, _path.default.join(resourcesDirectory, "converters")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "mergers"), "*").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("MERGERS"), x, _path.default.join(resourcesDirectory, "mergers")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "normalize"), "*.xml").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("NORMALIZE"), x, _path.default.join(resourcesDirectory, "normalize")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "patch"), "*.xslt").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("PATCH"), x, _path.default.join(resourcesDirectory, "patch")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "map"), "*.xml").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("MAP"), x, _path.default.join(resourcesDirectory, "map")))).attach(async fi => _Observe.Observe.files(_path.default.join(fi.formSourcesPath, "unmap"), "*.xml").do(x => _FSTask.FSTask.copyRecursively((0, _StaticLogger.getLogger)().withPrefix("UNMAP"), x, _path.default.join(resourcesDirectory, "unmap"))));
|
|
73
73
|
});
|
|
74
74
|
if (devBuildOptions.watch) {
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
const stopObserve1 = await buildEngineChain.observe();
|
|
76
|
+
const stopObserve2 = await buildClientJsChain.observe();
|
|
77
77
|
const stopObserve3 = await staticResourcesChain.observe();
|
|
78
78
|
const stopObserve4 = await buildFormsChain.observe();
|
|
79
79
|
const stopObserve5 = await pickListsChain.observe();
|
|
80
80
|
const stopObserve6 = await resourcesExternalConvertersChain.observe();
|
|
81
81
|
await context.waitForExit();
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
// await stopObserve2();
|
|
82
|
+
await stopObserve1();
|
|
83
|
+
await stopObserve2();
|
|
85
84
|
await stopObserve3();
|
|
86
85
|
await stopObserve4();
|
|
87
86
|
await stopObserve5();
|
|
88
87
|
await stopObserve6();
|
|
89
88
|
} else {
|
|
90
89
|
const startDate = Date.now();
|
|
91
|
-
await Promise.all([
|
|
92
|
-
// buildEngineChain.currentValue,
|
|
93
|
-
// buildClientJsChain.currentValue,
|
|
94
|
-
staticResourcesChain.currentValue, resourcesExternalConvertersChain.currentValue, (async () => {
|
|
90
|
+
await Promise.all([buildEngineChain.currentValue, buildClientJsChain.currentValue, staticResourcesChain.currentValue, resourcesExternalConvertersChain.currentValue, (async () => {
|
|
95
91
|
try {
|
|
96
92
|
await pickListsChain.currentValue;
|
|
97
93
|
await buildFormsChain.currentValue;
|
|
@@ -108,4 +104,4 @@ async function runDevBuild(context, options, engineDirectory, resourcesDirectory
|
|
|
108
104
|
console.log(`${_chalk.default.greenBright("Build success")} Total time: ${(0, _TimingUtils.printTime)(totalTime)}`);
|
|
109
105
|
}
|
|
110
106
|
}
|
|
111
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NoYWxrIiwiX0J1aWxkQ2xpZW50SnNUYXNrIiwiX0J1aWxkTG9jYWxFbmdpbmVUYXNrIiwiX0VuZ2luZVN0cnVjdHVyZVV0aWxzIiwiX0NvbXBpbGVGb3JtIiwiX0dlbmVyYXRlRm9ybSIsIl9Xcml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzIiwiX0ZTVGFzayIsIl9BY3F1aXJlRm9ybUdlbmVyYXRvciIsIl9QdWJsaXNoZWRWZXJzaW9uVXRpbHMiLCJfUmVzb2x2ZUZvcm1JbmZvIiwiX1dyaXRlRm9ybU1ldGEiLCJfRm9ybUdsb2JzVXRpbHMiLCJfU3RhdGljTG9nZ2VyIiwiX09ic2VydmUiLCJfVGltaW5nVXRpbHMiLCJfV3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIiwiX2dldFJuZ1NjaGVtYUZpbGVuYW1lIiwiX0Zvcm1QYXRoVXRpbHMiLCJfV2VsbEtub3duRGlyZWN0b3JpZXMiLCJydW5EZXZCdWlsZCIsImNvbnRleHQiLCJvcHRpb25zIiwiZW5naW5lRGlyZWN0b3J5IiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZmFybURpcmVjdG9yeSIsImNhbmR5TW9kdWxlc0RpcmVjdG9yeSIsImhsRmFybURpcmVjdG9yeVBhdGgiLCJkZXZCdWlsZE9wdGlvbnMiLCJlbmdpbmVXZWJwYWNrQ29uZmlnVGFzayIsImNyZWF0ZUVuZ2luZVdlYnBhY2tDb25maWdUYXNrIiwiYnVpbGRFbmdpbmVDaGFpbiIsImNoYWluV2l0aCIsInAiLCJCdWlsZExvY2FsRW5naW5lVGFzayIsImJ1aWxkRGVidWdPbmx5IiwiY2xpZW50V2VicGFja0NvbmZpZ1Rhc2siLCJjcmVhdGVDbGllbnRXZWJwYWNrQ29uZmlnVGFzayIsImJ1aWxkQ2xpZW50SnNDaGFpbiIsIkJ1aWxkQ2xpZW50SnNUYXNrIiwic3RhdGljUmVzb3VyY2VzQ2hhaW4iLCJPYnNlcnZlIiwiZmlsZXMiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsImRvIiwieCIsIkZTVGFzayIsImNvcHlSZWN1cnNpdmVseSIsImdldExvZ2dlciIsIndpdGhQcmVmaXgiLCJwaWNrTGlzdHNDaGFpbiIsImxvZ2dlciIsInJlcG9zaXRvcnlSb290IiwiZm9ybUdsb2JzIiwiRm9ybUdsb2JzIiwidmFsaWRhdGVHbG9icyIsInJlc29sdmVTcGVjaWZpZXJzIiwicmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW4iLCJlbXB0eSIsImJ1aWxkRm9ybXNDaGFpbiIsImZvcm1EaXJlY3RvcmllcyIsInNwbGl0VG9QYXJhbGxlbENoYWlucyIsImZvcm1SZWxhdGl2ZVBhdGgiLCJnZnYiLCJleHRyYWN0R2Z2RnJvbUZvcm1QYXRoIiwiZm9ybURpclBhdGgiLCJmb3JtU2NoZW1hc0RpclBhdGgiLCJybmdTY2hlbWFNYXNrIiwiZ2V0Um5nU2NoZW1hRmlsZW5hbWUiLCJmaWxlIiwiV2VsbEtub3duRGlyZWN0b3JpZXMiLCJGb3JtSnNvbkZpbGVOYW1lIiwidHJhbnNmb3JtIiwiZm9ybUpzb25GaWxlIiwicmVzb2x2ZUZvcm1JbmZvIiwiZ2VuZXJhdG9yU291cmNlIiwicmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlIiwiZW5naW5lU291cmNlIiwicmVzb2x2ZUxvY2FsRW5naW5lU291cmNlIiwiYXR0YWNoIiwiZmkiLCJnZW5lcmF0b3JGYWN0b3J5IiwidW5kZWZpbmVkIiwieSIsImdlbmVyYXRvciIsImdldEdlbmVyYXRvclNvdXJjZUtleSIsImZvcm1Tb3VyY2VzUGF0aCIsImRlcGVuZGVuY2llc0hhc2giLCJnZXRBbGxEZXBlbmRlbmNpZXNIYXNoIiwic2tpcEdlbmVyYXRpb24iLCJnZW5lcmF0ZUZvcm0iLCJza2lwQ29kZVJlZm9ybWF0dGluZyIsInNraXBHZW5lcmF0ZWRDb2RlUmVmb3JtYXR0aW5nIiwicmVzb3VyY2VzSGFzaCIsImNvbXBpbGVGb3JtIiwiZm9ybU5hbWUiLCJ0aGVtZXMiLCJ3cml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzIiwid3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIiwid3JpdGVGb3JtTWV0YSIsIndhdGNoIiwic3RvcE9ic2VydmUzIiwib2JzZXJ2ZSIsInN0b3BPYnNlcnZlNCIsInN0b3BPYnNlcnZlNSIsInN0b3BPYnNlcnZlNiIsIndhaXRGb3JFeGl0Iiwic3RhcnREYXRlIiwiRGF0ZSIsIm5vdyIsIlByb21pc2UiLCJhbGwiLCJjdXJyZW50VmFsdWUiLCJlIiwiY29udGludWVPbkVycm9yIiwiZXJyb3IiLCJ0b3RhbFRpbWUiLCJjb25zb2xlIiwibG9nIiwiY2hhbGsiLCJncmVlbkJyaWdodCIsInByaW50VGltZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9EZXZCdWlsZC9SdW5EZXZCdWlsZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5cbmltcG9ydCB7IEJ1aWxkQ2xpZW50SnNUYXNrIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvQ2xpZW50SlMvQnVpbGRDbGllbnRKc1Rhc2tcIjtcbmltcG9ydCB7IEJ1aWxkTG9jYWxFbmdpbmVUYXNrIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRW5naW5lL0J1aWxkTG9jYWxFbmdpbmVUYXNrXCI7XG5pbXBvcnQgeyBjcmVhdGVDbGllbnRXZWJwYWNrQ29uZmlnVGFzaywgY3JlYXRlRW5naW5lV2VicGFja0NvbmZpZ1Rhc2sgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9FbmdpbmVTdHJ1Y3R1cmVVdGlsc1wiO1xuaW1wb3J0IHsgY29tcGlsZUZvcm0gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL0NvbXBpbGVGb3JtXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUZvcm0gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL0dlbmVyYXRlRm9ybVwiO1xuaW1wb3J0IHsgd3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlcyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0Zvcm0vV3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlc1wiO1xuaW1wb3J0IHsgRlNUYXNrIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRlNUYXNrXCI7XG5pbXBvcnQgeyBnZW5lcmF0b3JGYWN0b3J5LCBnZXRHZW5lcmF0b3JTb3VyY2VLZXkgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9HZW5lcmF0b3IvQWNxdWlyZUZvcm1HZW5lcmF0b3JcIjtcbmltcG9ydCB7IHJlc29sdmVMb2NhbEVuZ2luZVNvdXJjZSwgcmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUHVibGlzaGVkVmVyc2lvblV0aWxzXCI7XG5pbXBvcnQgeyByZXNvbHZlRm9ybUluZm8gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9SZXNvbHZlRm9ybUluZm9cIjtcbmltcG9ydCB7IHdyaXRlRm9ybU1ldGEgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Xcml0ZUZvcm1NZXRhXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IEZvcm1HbG9icyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0Zvcm1HbG9ic1V0aWxzXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuaW1wb3J0IHsgT2JzZXJ2ZSB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9PYnNlcnZlXCI7XG5pbXBvcnQgeyBwcmludFRpbWUgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UaW1pbmdVdGlsc1wiO1xuaW1wb3J0IHsgd3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRm9ybS9Xcml0ZUF0dGFjaG1lbnRQYXRoRmlsZXNcIjtcbmltcG9ydCB7IENoYWluYWJsZVZhbHVlUHJvZHVjZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvQ2hhaW5hYmxlVmFsdWVQcm9kdWNlclwiO1xuaW1wb3J0IHsgRW1wdHlQcm9kdWNlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9FbXB0eVByb2R1Y2VyXCI7XG5pbXBvcnQgeyBnZXRSbmdTY2hlbWFGaWxlbmFtZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vZ2V0Um5nU2NoZW1hRmlsZW5hbWVcIjtcbmltcG9ydCB7IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGggfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL0Zvcm1QYXRoVXRpbHNcIjtcblxuaW1wb3J0IHsgRGV2ZWxvcG1lbnRCdWlsZE9wdGlvbnMgfSBmcm9tIFwiLi9EZXZCdWlsZE9wdGlvbnNcIjtcbmltcG9ydCB7IFdlbGxLbm93bkRpcmVjdG9yaWVzIH0gZnJvbSBcIi4uL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0RpcmVjdG9yaWVzL1dlbGxLbm93bkRpcmVjdG9yaWVzXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5EZXZCdWlsZChcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IERldmVsb3BtZW50QnVpbGRPcHRpb25zLFxuICAgIGVuZ2luZURpcmVjdG9yeTogc3RyaW5nLFxuICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBobEZhcm1EaXJlY3RvcnlQYXRoOiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRldkJ1aWxkT3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBjb25zdCBlbmdpbmVXZWJwYWNrQ29uZmlnVGFzayA9IGF3YWl0IGNyZWF0ZUVuZ2luZVdlYnBhY2tDb25maWdUYXNrKGVuZ2luZURpcmVjdG9yeSk7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGJ1aWxkRW5naW5lQ2hhaW4gPSBlbmdpbmVXZWJwYWNrQ29uZmlnVGFzay5jaGFpbldpdGgoXG4gICAgICAgIHAgPT4gbmV3IEJ1aWxkTG9jYWxFbmdpbmVUYXNrKHAsIHJlc291cmNlc0RpcmVjdG9yeSwgb3B0aW9ucy5idWlsZERlYnVnT25seSlcbiAgICApO1xuXG4gICAgY29uc3QgY2xpZW50V2VicGFja0NvbmZpZ1Rhc2sgPSBhd2FpdCBjcmVhdGVDbGllbnRXZWJwYWNrQ29uZmlnVGFzayhlbmdpbmVEaXJlY3RvcnkpO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBidWlsZENsaWVudEpzQ2hhaW4gPSBjbGllbnRXZWJwYWNrQ29uZmlnVGFzay5jaGFpbldpdGgocCA9PiBuZXcgQnVpbGRDbGllbnRKc1Rhc2socCwgcmVzb3VyY2VzRGlyZWN0b3J5KSk7XG5cbiAgICBjb25zdCBzdGF0aWNSZXNvdXJjZXNDaGFpbiA9IE9ic2VydmUuZmlsZXMoXG4gICAgICAgIHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi5cIiwgXCIuLlwiLCBcIlN0YXRpY0ZpbGVzRm9yUmVzb3VyY2VzRGlyXCIpLFxuICAgICAgICBcIiouanNcIlxuICAgICkuZG8oeCA9PlxuICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJTVEFUSUNTXCIpLCB4LCBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcInB1YmxpY1wiLCBcInNjcmlwdHNcIikpXG4gICAgKTtcblxuICAgIGNvbnN0IHBpY2tMaXN0c0NoYWluID0gT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJwaWNrbGlzdHNcIiksIFwiKi5qc29uXCIpLmRvKHggPT5cbiAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KFwiUElDS0xJU1RTXCIpLCB4LCBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcInBpY2tsaXN0c1wiKSlcbiAgICApO1xuXG4gICAgY29uc3QgcmVwb3NpdG9yeVJvb3QgPSBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCIuLlwiKTtcbiAgICBjb25zdCBmb3JtR2xvYnMgPSBhd2FpdCBGb3JtR2xvYnMudmFsaWRhdGVHbG9icyhcbiAgICAgICAgYXdhaXQgRm9ybUdsb2JzLnJlc29sdmVTcGVjaWZpZXJzKG9wdGlvbnMuZm9ybUdsb2JzLCBmYXJtRGlyZWN0b3J5KSxcbiAgICAgICAgZmFybURpcmVjdG9yeVxuICAgICk7XG5cbiAgICAvKiog0JrQvtC90LLQtdGA0YLQtdGA0Ysg0L7Qv9C40YHQuCDQtNC70Y8g0YTQvtGA0LwsINC60L7RgtC+0YDRi9C1INC/0L7QutCwINC90LUg0YDQtdCw0LvQuNC30L7QstCw0L3RiyDQvdCwINC60LXQvdC00LgsINGB0LDQvNCwINC80LXRhdCw0L3QuNC60LAg0L7Qv9C40YHQuCDQv9C10YDQtdC90LXRgdC10L3QsCDQsiDRhNC+0YDQvNGLINCyINC60LXQvdC00Lgg0LDQv9C4LCDQv9C+0Y3RgtC+0LzRgyDQvtC90Lgg0LTQvtC70LbQvdGLINCx0YvRgtGMINCyIGNhbmR5LnJlc291cmNlc1xuICAgICAqICDQoNC10LDQu9C40LfRg9C10YLRgdGPINGC0L7Qu9GM0LrQviDQv9GA0Lgg0L7QsdGJ0LXQvCDQsdC40LvQtNC1INGE0L7RgNC8OiBjYW5keSBidWlsZCAqXG4gICAgICogKi9cbiAgICBsZXQgcmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW46IENoYWluYWJsZVZhbHVlUHJvZHVjZXI8c3RyaW5nPiB8IEVtcHR5UHJvZHVjZXIgPSBPYnNlcnZlLmVtcHR5KCk7XG4gICAgaWYgKGZvcm1HbG9ic1swXSA9PT0gXCIqXCIpIHtcbiAgICAgICAgcmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW4gPSBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImV4dGVybmFsQ29udmVydGVyc1wiKSwgXCIqLnhzbHRcIikuZG8oXG4gICAgICAgICAgICB4ID0+XG4gICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkVYVEVSTkFMLUNPTlZFUlRFUlNcIiksXG4gICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwiY29udmVydGVyc1wiKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBidWlsZEZvcm1zQ2hhaW4gPSBPYnNlcnZlLmZvcm1EaXJlY3RvcmllcyhyZXBvc2l0b3J5Um9vdCwgZm9ybUdsb2JzKS5zcGxpdFRvUGFyYWxsZWxDaGFpbnMoXG4gICAgICAgIHggPT4geCxcbiAgICAgICAgeCA9PiB4LFxuICAgICAgICBhc3luYyBmb3JtUmVsYXRpdmVQYXRoID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdmdiA9IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGgoZm9ybVJlbGF0aXZlUGF0aCk7XG4gICAgICAgICAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybVJlbGF0aXZlUGF0aCk7XG4gICAgICAgICAgICBjb25zdCBmb3JtU2NoZW1hc0RpclBhdGggPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwic2NoZW1hc1wiKTtcbiAgICAgICAgICAgIGNvbnN0IHJuZ1NjaGVtYU1hc2sgPSBgKiR7Z2V0Um5nU2NoZW1hRmlsZW5hbWUoZm9ybVNjaGVtYXNEaXJQYXRoLCBnZnYpfWA7XG5cbiAgICAgICAgICAgIHJldHVybiBPYnNlcnZlLmZpbGUocGF0aC5qb2luKGZvcm1EaXJQYXRoLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lKSlcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKGZvcm1Kc29uRmlsZSA9PiByZXNvbHZlRm9ybUluZm8oZm9ybUpzb25GaWxlLCBmb3JtRGlyUGF0aCwgZW5naW5lRGlyZWN0b3J5KSlcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKGFzeW5jIHggPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgLi4ueCxcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yU291cmNlOiByZXNvbHZlTG9jYWxHZW5lcmF0b3JTb3VyY2UoZW5naW5lRGlyZWN0b3J5KSxcbiAgICAgICAgICAgICAgICAgICAgZW5naW5lU291cmNlOiByZXNvbHZlTG9jYWxFbmdpbmVTb3VyY2UoZW5naW5lRGlyZWN0b3J5KSxcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAuYXR0YWNoKFxuICAgICAgICAgICAgICAgICAgICBhc3luYyBmaSA9PiBnZW5lcmF0b3JGYWN0b3J5KGZpLmdlbmVyYXRvclNvdXJjZSwgY2FuZHlNb2R1bGVzRGlyZWN0b3J5LCBmYWxzZSwgdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgKGZpLCB5KSA9PiAoeyAuLi5maSwgZ2VuZXJhdG9yOiB5IH0pLFxuICAgICAgICAgICAgICAgICAgICBhc3luYyBmaSA9PiBnZXRHZW5lcmF0b3JTb3VyY2VLZXkoZmkuZ2VuZXJhdG9yU291cmNlKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtU291cmNlc1BhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIi4uLy4uL2NvbnRyb2xzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2NoZW1hcy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInN1Z2FyLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY29udHJvbHMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhdXRvY2FsYy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImhlbHBlcnMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ2YWxpZGF0aW9ucy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2FsaXphdGlvbi8qKi8qXCJcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKGFzeW5jIGZpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIC4uLmZpLFxuICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXNIYXNoOiBhd2FpdCBmaS5nZW5lcmF0b3IuZ2V0QWxsRGVwZW5kZW5jaWVzSGFzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EaXJQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAuZG8oYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5za2lwR2VuZXJhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2VuZXJhdGVGb3JtKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZm9ybVNvdXJjZXNQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhsRmFybURpcmVjdG9yeVBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5nZW5lcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcENvZGVSZWZvcm1hdHRpbmc6IG9wdGlvbnMuc2tpcEdlbmVyYXRlZENvZGVSZWZvcm1hdHRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzSGFzaDogZmkuZGVwZW5kZW5jaWVzSGFzaCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT4gT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybVwiKSwgXCIqKi8qXCIpKVxuICAgICAgICAgICAgICAgIC5kbyhmaSA9PlxuICAgICAgICAgICAgICAgICAgICBjb21waWxlRm9ybShcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmZvcm1OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkudGhlbWVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EaXJQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZGVwZW5kZW5jaWVzSGFzaCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuYnVpbGREZWJ1Z09ubHlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuZG8oZmkgPT4gd3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlcyhmaS5mb3JtTmFtZSwgZmFybURpcmVjdG9yeSwgZm9ybURpclBhdGgsIHJlc291cmNlc0RpcmVjdG9yeSkpXG4gICAgICAgICAgICAgICAgLmRvKGZpID0+IHdyaXRlQXR0YWNobWVudFBhdGhGaWxlcyhmaS5mb3JtTmFtZSwgZmFybURpcmVjdG9yeSwgZm9ybURpclBhdGgsIHJlc291cmNlc0RpcmVjdG9yeSkpXG4gICAgICAgICAgICAgICAgLmRvKGZpID0+IHdyaXRlRm9ybU1ldGEocmVzb3VyY2VzRGlyZWN0b3J5LCBnZnYsIGZpLmVuZ2luZVNvdXJjZSwgZmkuZGVwZW5kZW5jaWVzSGFzaCwgZmkudGhlbWVzKSlcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJzY2hlbWFzXCIpLCBybmdTY2hlbWFNYXNrKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJTQ0hFTUFTXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJzY2hlbWFzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwiY29udmVydGVyc1wiKSwgXCIqXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkNPTlZFUlRFUlNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcImNvbnZlcnRlcnNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJtZXJnZXJzXCIpLCBcIipcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiTUVSR0VSU1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwibWVyZ2Vyc1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcIm5vcm1hbGl6ZVwiKSwgXCIqLnhtbFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJOT1JNQUxJWkVcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcIm5vcm1hbGl6ZVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcInBhdGNoXCIpLCBcIioueHNsdFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJQQVRDSFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwicGF0Y2hcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJtYXBcIiksIFwiKi54bWxcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiTUFQXCIpLCB4LCBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcIm1hcFwiKSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJ1bm1hcFwiKSwgXCIqLnhtbFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJVTk1BUFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwidW5tYXBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgaWYgKGRldkJ1aWxkT3B0aW9ucy53YXRjaCkge1xuICAgICAgICAvLyBjb25zdCBzdG9wT2JzZXJ2ZTEgPSBhd2FpdCBidWlsZEVuZ2luZUNoYWluLm9ic2VydmUoKTtcbiAgICAgICAgLy8gY29uc3Qgc3RvcE9ic2VydmUyID0gYXdhaXQgYnVpbGRDbGllbnRKc0NoYWluLm9ic2VydmUoKTtcbiAgICAgICAgY29uc3Qgc3RvcE9ic2VydmUzID0gYXdhaXQgc3RhdGljUmVzb3VyY2VzQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTQgPSBhd2FpdCBidWlsZEZvcm1zQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTUgPSBhd2FpdCBwaWNrTGlzdHNDaGFpbi5vYnNlcnZlKCk7XG4gICAgICAgIGNvbnN0IHN0b3BPYnNlcnZlNiA9IGF3YWl0IHJlc291cmNlc0V4dGVybmFsQ29udmVydGVyc0NoYWluLm9ic2VydmUoKTtcblxuICAgICAgICBhd2FpdCBjb250ZXh0LndhaXRGb3JFeGl0KCk7XG5cbiAgICAgICAgLy8gYXdhaXQgc3RvcE9ic2VydmUxKCk7XG4gICAgICAgIC8vIGF3YWl0IHN0b3BPYnNlcnZlMigpO1xuICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTMoKTtcbiAgICAgICAgYXdhaXQgc3RvcE9ic2VydmU0KCk7XG4gICAgICAgIGF3YWl0IHN0b3BPYnNlcnZlNSgpO1xuICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTYoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzdGFydERhdGUgPSBEYXRlLm5vdygpO1xuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICAvLyBidWlsZEVuZ2luZUNoYWluLmN1cnJlbnRWYWx1ZSxcbiAgICAgICAgICAgIC8vIGJ1aWxkQ2xpZW50SnNDaGFpbi5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICBzdGF0aWNSZXNvdXJjZXNDaGFpbi5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICByZXNvdXJjZXNFeHRlcm5hbENvbnZlcnRlcnNDaGFpbi5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICAoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHBpY2tMaXN0c0NoYWluLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgYnVpbGRGb3Jtc0NoYWluLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmNvbnRpbnVlT25FcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5sb2dnZXIuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKSxcbiAgICAgICAgXSk7XG4gICAgICAgIGNvbnN0IHRvdGFsVGltZSA9IERhdGUubm93KCkgLSBzdGFydERhdGU7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUubG9nKGAke2NoYWxrLmdyZWVuQnJpZ2h0KFwiQnVpbGQgc3VjY2Vzc1wiKX0gVG90YWwgdGltZTogJHtwcmludFRpbWUodG90YWxUaW1lKX1gKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxrQkFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcscUJBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLHFCQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxZQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyw2QkFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsT0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMscUJBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLHNCQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxnQkFBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksY0FBQSxHQUFBWixPQUFBO0FBRUEsSUFBQWEsZUFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsYUFBQSxHQUFBZCxPQUFBO0FBQ0EsSUFBQWUsUUFBQSxHQUFBZixPQUFBO0FBQ0EsSUFBQWdCLFlBQUEsR0FBQWhCLE9BQUE7QUFDQSxJQUFBaUIseUJBQUEsR0FBQWpCLE9BQUE7QUFHQSxJQUFBa0IscUJBQUEsR0FBQWxCLE9BQUE7QUFDQSxJQUFBbUIsY0FBQSxHQUFBbkIsT0FBQTtBQUdBLElBQUFv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
|
|
107
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2NoYWxrIiwiX0J1aWxkQ2xpZW50SnNUYXNrIiwiX0J1aWxkTG9jYWxFbmdpbmVUYXNrIiwiX0VuZ2luZVN0cnVjdHVyZVV0aWxzIiwiX0NvbXBpbGVGb3JtIiwiX0dlbmVyYXRlRm9ybSIsIl9Xcml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzIiwiX0ZTVGFzayIsIl9BY3F1aXJlRm9ybUdlbmVyYXRvciIsIl9QdWJsaXNoZWRWZXJzaW9uVXRpbHMiLCJfUmVzb2x2ZUZvcm1JbmZvIiwiX1dyaXRlRm9ybU1ldGEiLCJfRm9ybUdsb2JzVXRpbHMiLCJfU3RhdGljTG9nZ2VyIiwiX09ic2VydmUiLCJfVGltaW5nVXRpbHMiLCJfV3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIiwiX2dldFJuZ1NjaGVtYUZpbGVuYW1lIiwiX0Zvcm1QYXRoVXRpbHMiLCJfV2VsbEtub3duRGlyZWN0b3JpZXMiLCJydW5EZXZCdWlsZCIsImNvbnRleHQiLCJvcHRpb25zIiwiZW5naW5lRGlyZWN0b3J5IiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiZmFybURpcmVjdG9yeSIsImNhbmR5TW9kdWxlc0RpcmVjdG9yeSIsImhsRmFybURpcmVjdG9yeVBhdGgiLCJkZXZCdWlsZE9wdGlvbnMiLCJlbmdpbmVXZWJwYWNrQ29uZmlnVGFzayIsImNyZWF0ZUVuZ2luZVdlYnBhY2tDb25maWdUYXNrIiwiYnVpbGRFbmdpbmVDaGFpbiIsImNoYWluV2l0aCIsInAiLCJCdWlsZExvY2FsRW5naW5lVGFzayIsImJ1aWxkRGVidWdPbmx5IiwiY2xpZW50V2VicGFja0NvbmZpZ1Rhc2siLCJjcmVhdGVDbGllbnRXZWJwYWNrQ29uZmlnVGFzayIsImJ1aWxkQ2xpZW50SnNDaGFpbiIsIkJ1aWxkQ2xpZW50SnNUYXNrIiwic3RhdGljUmVzb3VyY2VzQ2hhaW4iLCJPYnNlcnZlIiwiZmlsZXMiLCJwYXRoIiwiam9pbiIsIl9fZGlybmFtZSIsImRvIiwieCIsIkZTVGFzayIsImNvcHlSZWN1cnNpdmVseSIsImdldExvZ2dlciIsIndpdGhQcmVmaXgiLCJwaWNrTGlzdHNDaGFpbiIsImxvZ2dlciIsInJlcG9zaXRvcnlSb290IiwiZm9ybUdsb2JzIiwiRm9ybUdsb2JzIiwidmFsaWRhdGVHbG9icyIsInJlc29sdmVTcGVjaWZpZXJzIiwicmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW4iLCJlbXB0eSIsImJ1aWxkRm9ybXNDaGFpbiIsImZvcm1EaXJlY3RvcmllcyIsInNwbGl0VG9QYXJhbGxlbENoYWlucyIsImZvcm1SZWxhdGl2ZVBhdGgiLCJnZnYiLCJleHRyYWN0R2Z2RnJvbUZvcm1QYXRoIiwiZm9ybURpclBhdGgiLCJmb3JtU2NoZW1hc0RpclBhdGgiLCJybmdTY2hlbWFNYXNrIiwiZ2V0Um5nU2NoZW1hRmlsZW5hbWUiLCJmaWxlIiwiV2VsbEtub3duRGlyZWN0b3JpZXMiLCJGb3JtSnNvbkZpbGVOYW1lIiwidHJhbnNmb3JtIiwiZm9ybUpzb25GaWxlIiwicmVzb2x2ZUZvcm1JbmZvIiwiZ2VuZXJhdG9yU291cmNlIiwicmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlIiwiZW5naW5lU291cmNlIiwicmVzb2x2ZUxvY2FsRW5naW5lU291cmNlIiwiYXR0YWNoIiwiZmkiLCJnZW5lcmF0b3JGYWN0b3J5IiwidW5kZWZpbmVkIiwieSIsImdlbmVyYXRvciIsImdldEdlbmVyYXRvclNvdXJjZUtleSIsImZvcm1Tb3VyY2VzUGF0aCIsImRlcGVuZGVuY2llc0hhc2giLCJnZXRBbGxEZXBlbmRlbmNpZXNIYXNoIiwic2tpcEdlbmVyYXRpb24iLCJnZW5lcmF0ZUZvcm0iLCJza2lwQ29kZVJlZm9ybWF0dGluZyIsInNraXBHZW5lcmF0ZWRDb2RlUmVmb3JtYXR0aW5nIiwicmVzb3VyY2VzSGFzaCIsImNvbXBpbGVGb3JtIiwiZm9ybU5hbWUiLCJ0aGVtZXMiLCJ3cml0ZUZMYW5nTm9ybWFsaXphdGlvbkZpbGVzIiwid3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIiwid3JpdGVGb3JtTWV0YSIsIndhdGNoIiwic3RvcE9ic2VydmUxIiwib2JzZXJ2ZSIsInN0b3BPYnNlcnZlMiIsInN0b3BPYnNlcnZlMyIsInN0b3BPYnNlcnZlNCIsInN0b3BPYnNlcnZlNSIsInN0b3BPYnNlcnZlNiIsIndhaXRGb3JFeGl0Iiwic3RhcnREYXRlIiwiRGF0ZSIsIm5vdyIsIlByb21pc2UiLCJhbGwiLCJjdXJyZW50VmFsdWUiLCJlIiwiY29udGludWVPbkVycm9yIiwiZXJyb3IiLCJ0b3RhbFRpbWUiLCJjb25zb2xlIiwibG9nIiwiY2hhbGsiLCJncmVlbkJyaWdodCIsInByaW50VGltZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9EZXZCdWlsZC9SdW5EZXZCdWlsZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5cbmltcG9ydCB7IEJ1aWxkQ2xpZW50SnNUYXNrIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvQ2xpZW50SlMvQnVpbGRDbGllbnRKc1Rhc2tcIjtcbmltcG9ydCB7IEJ1aWxkTG9jYWxFbmdpbmVUYXNrIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRW5naW5lL0J1aWxkTG9jYWxFbmdpbmVUYXNrXCI7XG5pbXBvcnQgeyBjcmVhdGVDbGllbnRXZWJwYWNrQ29uZmlnVGFzaywgY3JlYXRlRW5naW5lV2VicGFja0NvbmZpZ1Rhc2sgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9FbmdpbmVTdHJ1Y3R1cmVVdGlsc1wiO1xuaW1wb3J0IHsgY29tcGlsZUZvcm0gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL0NvbXBpbGVGb3JtXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUZvcm0gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL0dlbmVyYXRlRm9ybVwiO1xuaW1wb3J0IHsgd3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlcyB9IGZyb20gXCIuLi8uLi9CdWlsZFRhc2tzL0Zvcm0vV3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlc1wiO1xuaW1wb3J0IHsgRlNUYXNrIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRlNUYXNrXCI7XG5pbXBvcnQgeyBnZW5lcmF0b3JGYWN0b3J5LCBnZXRHZW5lcmF0b3JTb3VyY2VLZXkgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9HZW5lcmF0b3IvQWNxdWlyZUZvcm1HZW5lcmF0b3JcIjtcbmltcG9ydCB7IHJlc29sdmVMb2NhbEVuZ2luZVNvdXJjZSwgcmVzb2x2ZUxvY2FsR2VuZXJhdG9yU291cmNlIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUHVibGlzaGVkVmVyc2lvblV0aWxzXCI7XG5pbXBvcnQgeyByZXNvbHZlRm9ybUluZm8gfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9SZXNvbHZlRm9ybUluZm9cIjtcbmltcG9ydCB7IHdyaXRlRm9ybU1ldGEgfSBmcm9tIFwiLi4vLi4vQnVpbGRUYXNrcy9Xcml0ZUZvcm1NZXRhXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IEZvcm1HbG9icyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0Zvcm1HbG9ic1V0aWxzXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuaW1wb3J0IHsgT2JzZXJ2ZSB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9PYnNlcnZlXCI7XG5pbXBvcnQgeyBwcmludFRpbWUgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UaW1pbmdVdGlsc1wiO1xuaW1wb3J0IHsgd3JpdGVBdHRhY2htZW50UGF0aEZpbGVzIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvRm9ybS9Xcml0ZUF0dGFjaG1lbnRQYXRoRmlsZXNcIjtcbmltcG9ydCB7IENoYWluYWJsZVZhbHVlUHJvZHVjZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvQ2hhaW5hYmxlVmFsdWVQcm9kdWNlclwiO1xuaW1wb3J0IHsgRW1wdHlQcm9kdWNlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL1Rhc2tzQ29yZS9FbXB0eVByb2R1Y2VyXCI7XG5pbXBvcnQgeyBnZXRSbmdTY2hlbWFGaWxlbmFtZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vZ2V0Um5nU2NoZW1hRmlsZW5hbWVcIjtcbmltcG9ydCB7IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGggfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL0Zvcm1QYXRoVXRpbHNcIjtcbmltcG9ydCB7IFdlbGxLbm93bkRpcmVjdG9yaWVzIH0gZnJvbSBcIi4uL0J1aWxkU2VydmVyL1Jlc291cmNlc0NvbnRyb2xsZXJzL0RpcmVjdG9yaWVzL1dlbGxLbm93bkRpcmVjdG9yaWVzXCI7XG5cbmltcG9ydCB7IERldmVsb3BtZW50QnVpbGRPcHRpb25zIH0gZnJvbSBcIi4vRGV2QnVpbGRPcHRpb25zXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5EZXZCdWlsZChcbiAgICBjb250ZXh0OiBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0LFxuICAgIG9wdGlvbnM6IERldmVsb3BtZW50QnVpbGRPcHRpb25zLFxuICAgIGVuZ2luZURpcmVjdG9yeTogc3RyaW5nLFxuICAgIHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBjYW5keU1vZHVsZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICBobEZhcm1EaXJlY3RvcnlQYXRoOiBzdHJpbmdcbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRldkJ1aWxkT3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBjb25zdCBlbmdpbmVXZWJwYWNrQ29uZmlnVGFzayA9IGF3YWl0IGNyZWF0ZUVuZ2luZVdlYnBhY2tDb25maWdUYXNrKGVuZ2luZURpcmVjdG9yeSk7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGJ1aWxkRW5naW5lQ2hhaW4gPSBlbmdpbmVXZWJwYWNrQ29uZmlnVGFzay5jaGFpbldpdGgoXG4gICAgICAgIHAgPT4gbmV3IEJ1aWxkTG9jYWxFbmdpbmVUYXNrKHAsIHJlc291cmNlc0RpcmVjdG9yeSwgb3B0aW9ucy5idWlsZERlYnVnT25seSlcbiAgICApO1xuXG4gICAgY29uc3QgY2xpZW50V2VicGFja0NvbmZpZ1Rhc2sgPSBhd2FpdCBjcmVhdGVDbGllbnRXZWJwYWNrQ29uZmlnVGFzayhlbmdpbmVEaXJlY3RvcnkpO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBidWlsZENsaWVudEpzQ2hhaW4gPSBjbGllbnRXZWJwYWNrQ29uZmlnVGFzay5jaGFpbldpdGgocCA9PiBuZXcgQnVpbGRDbGllbnRKc1Rhc2socCwgcmVzb3VyY2VzRGlyZWN0b3J5KSk7XG5cbiAgICBjb25zdCBzdGF0aWNSZXNvdXJjZXNDaGFpbiA9IE9ic2VydmUuZmlsZXMoXG4gICAgICAgIHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi5cIiwgXCIuLlwiLCBcIlN0YXRpY0ZpbGVzRm9yUmVzb3VyY2VzRGlyXCIpLFxuICAgICAgICBcIiouanNcIlxuICAgICkuZG8oeCA9PlxuICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJTVEFUSUNTXCIpLCB4LCBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcInB1YmxpY1wiLCBcInNjcmlwdHNcIikpXG4gICAgKTtcblxuICAgIGNvbnN0IHBpY2tMaXN0c0NoYWluID0gT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCJwaWNrbGlzdHNcIiksIFwiKi5qc29uXCIpLmRvKHggPT5cbiAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShjb250ZXh0LmxvZ2dlci53aXRoUHJlZml4KFwiUElDS0xJU1RTXCIpLCB4LCBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcInBpY2tsaXN0c1wiKSlcbiAgICApO1xuXG4gICAgY29uc3QgcmVwb3NpdG9yeVJvb3QgPSBwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgXCIuLlwiKTtcbiAgICBjb25zdCBmb3JtR2xvYnMgPSBhd2FpdCBGb3JtR2xvYnMudmFsaWRhdGVHbG9icyhcbiAgICAgICAgYXdhaXQgRm9ybUdsb2JzLnJlc29sdmVTcGVjaWZpZXJzKG9wdGlvbnMuZm9ybUdsb2JzLCBmYXJtRGlyZWN0b3J5KSxcbiAgICAgICAgZmFybURpcmVjdG9yeVxuICAgICk7XG5cbiAgICAvKiog0JrQvtC90LLQtdGA0YLQtdGA0Ysg0L7Qv9C40YHQuCDQtNC70Y8g0YTQvtGA0LwsINC60L7RgtC+0YDRi9C1INC/0L7QutCwINC90LUg0YDQtdCw0LvQuNC30L7QstCw0L3RiyDQvdCwINC60LXQvdC00LgsINGB0LDQvNCwINC80LXRhdCw0L3QuNC60LAg0L7Qv9C40YHQuCDQv9C10YDQtdC90LXRgdC10L3QsCDQsiDRhNC+0YDQvNGLINCyINC60LXQvdC00Lgg0LDQv9C4LCDQv9C+0Y3RgtC+0LzRgyDQvtC90Lgg0LTQvtC70LbQvdGLINCx0YvRgtGMINCyIGNhbmR5LnJlc291cmNlc1xuICAgICAqICDQoNC10LDQu9C40LfRg9C10YLRgdGPINGC0L7Qu9GM0LrQviDQv9GA0Lgg0L7QsdGJ0LXQvCDQsdC40LvQtNC1INGE0L7RgNC8OiBjYW5keSBidWlsZCAqXG4gICAgICogKi9cbiAgICBsZXQgcmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW46IENoYWluYWJsZVZhbHVlUHJvZHVjZXI8c3RyaW5nPiB8IEVtcHR5UHJvZHVjZXIgPSBPYnNlcnZlLmVtcHR5KCk7XG4gICAgaWYgKGZvcm1HbG9ic1swXSA9PT0gXCIqXCIpIHtcbiAgICAgICAgcmVzb3VyY2VzRXh0ZXJuYWxDb252ZXJ0ZXJzQ2hhaW4gPSBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmYXJtRGlyZWN0b3J5LCBcImV4dGVybmFsQ29udmVydGVyc1wiKSwgXCIqLnhzbHRcIikuZG8oXG4gICAgICAgICAgICB4ID0+XG4gICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkVYVEVSTkFMLUNPTlZFUlRFUlNcIiksXG4gICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwiY29udmVydGVyc1wiKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBidWlsZEZvcm1zQ2hhaW4gPSBPYnNlcnZlLmZvcm1EaXJlY3RvcmllcyhyZXBvc2l0b3J5Um9vdCwgZm9ybUdsb2JzKS5zcGxpdFRvUGFyYWxsZWxDaGFpbnMoXG4gICAgICAgIHggPT4geCxcbiAgICAgICAgeCA9PiB4LFxuICAgICAgICBhc3luYyBmb3JtUmVsYXRpdmVQYXRoID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdmdiA9IGV4dHJhY3RHZnZGcm9tRm9ybVBhdGgoZm9ybVJlbGF0aXZlUGF0aCk7XG4gICAgICAgICAgICBjb25zdCBmb3JtRGlyUGF0aCA9IHBhdGguam9pbihyZXBvc2l0b3J5Um9vdCwgZm9ybVJlbGF0aXZlUGF0aCk7XG4gICAgICAgICAgICBjb25zdCBmb3JtU2NoZW1hc0RpclBhdGggPSBwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwic2NoZW1hc1wiKTtcbiAgICAgICAgICAgIGNvbnN0IHJuZ1NjaGVtYU1hc2sgPSBgKiR7Z2V0Um5nU2NoZW1hRmlsZW5hbWUoZm9ybVNjaGVtYXNEaXJQYXRoLCBnZnYpfWA7XG5cbiAgICAgICAgICAgIHJldHVybiBPYnNlcnZlLmZpbGUocGF0aC5qb2luKGZvcm1EaXJQYXRoLCBXZWxsS25vd25EaXJlY3Rvcmllcy5Gb3JtSnNvbkZpbGVOYW1lKSlcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKGZvcm1Kc29uRmlsZSA9PiByZXNvbHZlRm9ybUluZm8oZm9ybUpzb25GaWxlLCBmb3JtRGlyUGF0aCwgZW5naW5lRGlyZWN0b3J5KSlcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKGFzeW5jIHggPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgLi4ueCxcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yU291cmNlOiByZXNvbHZlTG9jYWxHZW5lcmF0b3JTb3VyY2UoZW5naW5lRGlyZWN0b3J5KSxcbiAgICAgICAgICAgICAgICAgICAgZW5naW5lU291cmNlOiByZXNvbHZlTG9jYWxFbmdpbmVTb3VyY2UoZW5naW5lRGlyZWN0b3J5KSxcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAuYXR0YWNoKFxuICAgICAgICAgICAgICAgICAgICBhc3luYyBmaSA9PiBnZW5lcmF0b3JGYWN0b3J5KGZpLmdlbmVyYXRvclNvdXJjZSwgY2FuZHlNb2R1bGVzRGlyZWN0b3J5LCBmYWxzZSwgdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgKGZpLCB5KSA9PiAoeyAuLi5maSwgZ2VuZXJhdG9yOiB5IH0pLFxuICAgICAgICAgICAgICAgICAgICBhc3luYyBmaSA9PiBnZXRHZW5lcmF0b3JTb3VyY2VLZXkoZmkuZ2VuZXJhdG9yU291cmNlKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5mb3JtU291cmNlc1BhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIi4uLy4uL2NvbnRyb2xzLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic2NoZW1hcy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInN1Z2FyLyoqLypcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY29udHJvbHMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhdXRvY2FsYy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImhlbHBlcnMvKiovKlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ2YWxpZGF0aW9ucy8qKi8qXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImxvY2FsaXphdGlvbi8qKi8qXCJcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAudHJhbnNmb3JtKGFzeW5jIGZpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIC4uLmZpLFxuICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXNIYXNoOiBhd2FpdCBmaS5nZW5lcmF0b3IuZ2V0QWxsRGVwZW5kZW5jaWVzSGFzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EaXJQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAuZG8oYXN5bmMgZmkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5za2lwR2VuZXJhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2VuZXJhdGVGb3JtKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZm9ybVNvdXJjZXNQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhsRmFybURpcmVjdG9yeVBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaS5nZW5lcmF0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcENvZGVSZWZvcm1hdHRpbmc6IG9wdGlvbnMuc2tpcEdlbmVyYXRlZENvZGVSZWZvcm1hdHRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzSGFzaDogZmkuZGVwZW5kZW5jaWVzSGFzaCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT4gT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZm9ybURpclBhdGgsIFwiZm9ybVwiKSwgXCIqKi8qXCIpKVxuICAgICAgICAgICAgICAgIC5kbyhmaSA9PlxuICAgICAgICAgICAgICAgICAgICBjb21waWxlRm9ybShcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpLmZvcm1OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkudGhlbWVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EaXJQYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZmkuZGVwZW5kZW5jaWVzSGFzaCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuYnVpbGREZWJ1Z09ubHlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuZG8oZmkgPT4gd3JpdGVGTGFuZ05vcm1hbGl6YXRpb25GaWxlcyhmaS5mb3JtTmFtZSwgZmFybURpcmVjdG9yeSwgZm9ybURpclBhdGgsIHJlc291cmNlc0RpcmVjdG9yeSkpXG4gICAgICAgICAgICAgICAgLmRvKGZpID0+IHdyaXRlQXR0YWNobWVudFBhdGhGaWxlcyhmaS5mb3JtTmFtZSwgZmFybURpcmVjdG9yeSwgZm9ybURpclBhdGgsIHJlc291cmNlc0RpcmVjdG9yeSkpXG4gICAgICAgICAgICAgICAgLmRvKGZpID0+IHdyaXRlRm9ybU1ldGEocmVzb3VyY2VzRGlyZWN0b3J5LCBnZnYsIGZpLmVuZ2luZVNvdXJjZSwgZmkuZGVwZW5kZW5jaWVzSGFzaCwgZmkudGhlbWVzKSlcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJzY2hlbWFzXCIpLCBybmdTY2hlbWFNYXNrKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJTQ0hFTUFTXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5qb2luKHJlc291cmNlc0RpcmVjdG9yeSwgXCJzY2hlbWFzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmF0dGFjaChhc3luYyBmaSA9PlxuICAgICAgICAgICAgICAgICAgICBPYnNlcnZlLmZpbGVzKHBhdGguam9pbihmaS5mb3JtU291cmNlc1BhdGgsIFwiY29udmVydGVyc1wiKSwgXCIqXCIpLmRvKHggPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZTVGFzay5jb3B5UmVjdXJzaXZlbHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TG9nZ2VyKCkud2l0aFByZWZpeChcIkNPTlZFUlRFUlNcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcImNvbnZlcnRlcnNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJtZXJnZXJzXCIpLCBcIipcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiTUVSR0VSU1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwibWVyZ2Vyc1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcIm5vcm1hbGl6ZVwiKSwgXCIqLnhtbFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJOT1JNQUxJWkVcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcIm5vcm1hbGl6ZVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5hdHRhY2goYXN5bmMgZmkgPT5cbiAgICAgICAgICAgICAgICAgICAgT2JzZXJ2ZS5maWxlcyhwYXRoLmpvaW4oZmkuZm9ybVNvdXJjZXNQYXRoLCBcInBhdGNoXCIpLCBcIioueHNsdFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJQQVRDSFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwicGF0Y2hcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJtYXBcIiksIFwiKi54bWxcIikuZG8oeCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRlNUYXNrLmNvcHlSZWN1cnNpdmVseShnZXRMb2dnZXIoKS53aXRoUHJlZml4KFwiTUFQXCIpLCB4LCBwYXRoLmpvaW4ocmVzb3VyY2VzRGlyZWN0b3J5LCBcIm1hcFwiKSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuYXR0YWNoKGFzeW5jIGZpID0+XG4gICAgICAgICAgICAgICAgICAgIE9ic2VydmUuZmlsZXMocGF0aC5qb2luKGZpLmZvcm1Tb3VyY2VzUGF0aCwgXCJ1bm1hcFwiKSwgXCIqLnhtbFwiKS5kbyh4ID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBGU1Rhc2suY29weVJlY3Vyc2l2ZWx5KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldExvZ2dlcigpLndpdGhQcmVmaXgoXCJVTk1BUFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihyZXNvdXJjZXNEaXJlY3RvcnksIFwidW5tYXBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgaWYgKGRldkJ1aWxkT3B0aW9ucy53YXRjaCkge1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTEgPSBhd2FpdCBidWlsZEVuZ2luZUNoYWluLm9ic2VydmUoKTtcbiAgICAgICAgY29uc3Qgc3RvcE9ic2VydmUyID0gYXdhaXQgYnVpbGRDbGllbnRKc0NoYWluLm9ic2VydmUoKTtcbiAgICAgICAgY29uc3Qgc3RvcE9ic2VydmUzID0gYXdhaXQgc3RhdGljUmVzb3VyY2VzQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTQgPSBhd2FpdCBidWlsZEZvcm1zQ2hhaW4ub2JzZXJ2ZSgpO1xuICAgICAgICBjb25zdCBzdG9wT2JzZXJ2ZTUgPSBhd2FpdCBwaWNrTGlzdHNDaGFpbi5vYnNlcnZlKCk7XG4gICAgICAgIGNvbnN0IHN0b3BPYnNlcnZlNiA9IGF3YWl0IHJlc291cmNlc0V4dGVybmFsQ29udmVydGVyc0NoYWluLm9ic2VydmUoKTtcblxuICAgICAgICBhd2FpdCBjb250ZXh0LndhaXRGb3JFeGl0KCk7XG5cbiAgICAgICAgYXdhaXQgc3RvcE9ic2VydmUxKCk7XG4gICAgICAgIGF3YWl0IHN0b3BPYnNlcnZlMigpO1xuICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTMoKTtcbiAgICAgICAgYXdhaXQgc3RvcE9ic2VydmU0KCk7XG4gICAgICAgIGF3YWl0IHN0b3BPYnNlcnZlNSgpO1xuICAgICAgICBhd2FpdCBzdG9wT2JzZXJ2ZTYoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzdGFydERhdGUgPSBEYXRlLm5vdygpO1xuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICAgICAgICBidWlsZEVuZ2luZUNoYWluLmN1cnJlbnRWYWx1ZSxcbiAgICAgICAgICAgIGJ1aWxkQ2xpZW50SnNDaGFpbi5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICBzdGF0aWNSZXNvdXJjZXNDaGFpbi5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICByZXNvdXJjZXNFeHRlcm5hbENvbnZlcnRlcnNDaGFpbi5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICAoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHBpY2tMaXN0c0NoYWluLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgYnVpbGRGb3Jtc0NoYWluLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmNvbnRpbnVlT25FcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5sb2dnZXIuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKSxcbiAgICAgICAgXSk7XG4gICAgICAgIGNvbnN0IHRvdGFsVGltZSA9IERhdGUubm93KCkgLSBzdGFydERhdGU7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUubG9nKGAke2NoYWxrLmdyZWVuQnJpZ2h0KFwiQnVpbGQgc3VjY2Vzc1wiKX0gVG90YWwgdGltZTogJHtwcmludFRpbWUodG90YWxUaW1lKX1gKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxrQkFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcscUJBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLHFCQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxZQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyw2QkFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsT0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMscUJBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLHNCQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxnQkFBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksY0FBQSxHQUFBWixPQUFBO0FBRUEsSUFBQWEsZUFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsYUFBQSxHQUFBZCxPQUFBO0FBQ0EsSUFBQWUsUUFBQSxHQUFBZixPQUFBO0FBQ0EsSUFBQWdCLFlBQUEsR0FBQWhCLE9BQUE7QUFDQSxJQUFBaUIseUJBQUEsR0FBQWpCLE9BQUE7QUFHQSxJQUFBa0IscUJBQUEsR0FBQWxCLE9BQUE7QUFDQSxJQUFBbUIsY0FBQSxHQUFBbkIsT0FB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
|