@kontur.candy/tools 2.114.0 → 2.121.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 +26 -0
- package/distr/Common/CandyApiClient/CandyApiClient.js +8 -3
- package/distr/Common/CandyApiClient/CandyApiClientContext.js +3 -3
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js +1 -1
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js +1 -1
- package/distr/Common/CandyApiClient/DigestApiClient/React/DigestApiClientContext.js +3 -3
- package/distr/Common/Comparers.js +2 -2
- package/distr/Common/EmotionStorybookWorkaroundViaAliases.js +2 -2
- package/distr/Common/EndPoints.js +1 -1
- package/distr/Common/Errors.js +1 -1
- package/distr/Common/FormActionHandlers/ContextualActionNames.js +1 -1
- package/distr/Common/HttpClient/HttpClient.js +6 -2
- package/distr/Common/IterableUtils.js +7 -7
- package/distr/Common/ModelPath/ModelPath.js +5 -5
- package/distr/Common/NidusClient/INidusClient.js +1 -1
- package/distr/Common/NidusClient/NidusClientContext.js +4 -4
- package/distr/Common/NidusClient/NidusClientImpl.js +2 -2
- package/distr/Common/PathConstants.js +1 -1
- package/distr/Common/TypingUtils.js +12 -12
- package/distr/Common/UseAsyncEffect.js +2 -2
- package/distr/Tools/src/BuildTasks/ClientJS/BuildClientJsTask.js +4 -4
- package/distr/Tools/src/BuildTasks/ClientJS/IsWebpack5.js +2 -2
- package/distr/Tools/src/BuildTasks/Engine/AcquirePublishedEngineTask.js +2 -2
- package/distr/Tools/src/BuildTasks/Engine/BuildLocalEngineTask.js +7 -9
- package/distr/Tools/src/BuildTasks/EngineStructureUtils.js +3 -3
- package/distr/Tools/src/BuildTasks/Form/CompileForm.js +2 -2
- package/distr/Tools/src/BuildTasks/Form/GenerateForm.js +2 -2
- package/distr/Tools/src/BuildTasks/Form/WriteAttachmentPathFiles.js +34 -0
- package/distr/Tools/src/BuildTasks/Form/WriteFLangNormalizationFiles.js +2 -2
- package/distr/Tools/src/BuildTasks/Generator/AcquireFormGenerator.js +1 -1
- package/distr/Tools/src/BuildTasks/Generator/AcquirePublishedGeneratorTask.js +2 -2
- package/distr/Tools/src/BuildTasks/Generator/BuildGeneratorFromSourcesTask.js +2 -2
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/GeneratorRequireUtils.js +2 -2
- package/distr/Tools/src/BuildTasks/Generator/GeneratorWorker/RequireUncached.js +1 -1
- package/distr/Tools/src/BuildTasks/PublishedVersionUtils.js +9 -9
- package/distr/Tools/src/BuildTasks/ResolveFormInfo.js +2 -2
- package/distr/Tools/src/BuildTasks/Version.js +4 -4
- package/distr/Tools/src/CLICommands/BuildForms/BuildCacheMode.js +1 -1
- package/distr/Tools/src/CLICommands/BuildForms/RunBuildForms.js +7 -4
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +19 -10
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBuildFormsController.js +21 -4
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerClientJsFromResourcesController.js +2 -2
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPrebuiltResourcesController.js +2 -2
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerPublishedEngineController.js +2 -2
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/BuildFormDevServer.js +2 -12
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/RunFormCompilationViaWebpackDevServer.js +6 -6
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js +22 -6
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js +2 -2
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/{IFLangNormalizationSourcesProvider.js → IGeneratedServerSideSourcesProvider.js} +0 -0
- package/distr/Tools/src/CLICommands/BuildServer/RunBuildServer.js +5 -4
- package/distr/Tools/src/CLICommands/CommonOptions/BuildDebugOnlyOption.js +1 -1
- package/distr/Tools/src/CLICommands/DevBuild/RunDevBuild.js +5 -3
- package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js +2 -2
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/autocalc/{gfv}.calc.js +1 -1
- package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js +2 -2
- package/distr/Tools/src/CLICommands/UpgradeForm/RunUpgradeForm.js +2 -2
- package/distr/Tools/src/Commons/ConsoleApplication/ConsoleApplication.js +3 -3
- package/distr/Tools/src/Commons/EventObject.js +2 -2
- package/distr/Tools/src/Commons/FsUtils.js +5 -4
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Actions.js +2 -2
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Params.js +4 -4
- package/distr/Tools/src/Commons/HttpServer/AttributeRouting/Results/StreamResultHandler.js +3 -3
- package/distr/Tools/src/Commons/Logging/InMemoryLogger.js +1 -1
- package/distr/Tools/src/Commons/Logging/StaticLogger.js +2 -2
- package/distr/Tools/src/Commons/Options/CommandBasedOptionsParser.js +4 -4
- package/distr/Tools/src/Commons/TasksCore/ChainableValueProducer.js +3 -3
- package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js +3 -3
- package/distr/Tools/src/FormWebpackConfiguration/createFormWebpackConfiguration.js +4 -2
- package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js +31684 -33917
- package/distr/Tools/src/LocalServerFrontEndDist/enhancedClient.js.map +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js +21348 -18265
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
- package/distr/Tools/src/SelfUpdate.js +3 -3
- package/package.json +65 -66
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
exports.convertToLegacyPath = convertToLegacyPath;
|
|
6
|
+
exports.PathTokens = exports.ModelPath = exports.AbsoluteModelPath = exports.AbsoluteModelFieldPath = void 0;
|
|
8
7
|
exports.convertToAbsolutModelPath = convertToAbsolutModelPath;
|
|
9
|
-
exports.
|
|
8
|
+
exports.convertToLegacyPath = convertToLegacyPath;
|
|
9
|
+
exports.isModelPath = isModelPath;
|
|
10
10
|
|
|
11
11
|
var _IterableUtils = require("../IterableUtils");
|
|
12
12
|
|
|
@@ -49,7 +49,7 @@ function convertToLegacyPath(path) {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
function convertToAbsolutModelPath(path) {
|
|
52
|
-
return isModelPath(path) ? path :
|
|
52
|
+
return isModelPath(path) ? path : AbsoluteModelPath.createAbsoluteFromMask(path, PathTokens.each);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
class AbsoluteModelFieldPath {
|
|
@@ -538,4 +538,4 @@ class AbsoluteModelPath extends ModelPath {
|
|
|
538
538
|
}
|
|
539
539
|
|
|
540
540
|
exports.AbsoluteModelPath = AbsoluteModelPath;
|
|
541
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL0NvbW1vbi9Nb2RlbFBhdGgvTW9kZWxQYXRoLnRzIl0sIm5hbWVzIjpbIkVhY2hTeW1ib2wiLCJTeW1ib2wiLCJmb3IiLCJDdXJyZW50U3ltYm9sIiwiUGF0aFRva2VucyIsImlzTXVsdGlUb2tlbiIsInBhcnQiLCJlYWNoIiwiY3VycmVudCIsImlzU2ltcGxlVG9rZW4iLCJpc0luc3RhbmNlVG9rZW4iLCJ0ZXN0IiwiaXNNb2RlbFBhdGgiLCJwYXRoIiwiY29udmVydFRvTGVnYWN5UGF0aCIsInRvTGVnYWN5UGF0aCIsImNvbnZlcnRUb0Fic29sdXRNb2RlbFBhdGgiLCJNb2RlbFBhdGgiLCJjcmVhdGVGcm9tU3RyaW5nIiwiQWJzb2x1dGVNb2RlbEZpZWxkUGF0aCIsImNvbnN0cnVjdG9yIiwiZmllbGROYW1lIiwiZmllbGQiLCJpc0VxdWFscyIsIm1vZGVsUGF0aCIsImVhY2hDdXJyZW50Q29sbGlzaW9uIiwiRWFjaEN1cnJlbnRDb2xsaXNpb24iLCJBcmVTYW1lIiwicGF0aFdpdGhGaWVsZE5hbWUiLCJlbmRzV2l0aCIsIkFic29sdXRlTW9kZWxQYXRoIiwiY3JlYXRlQWJzb2x1dGUiLCJyZXBsYWNlIiwiY3JlYXRlRnJvbU1hc2siLCJtdWx0aXBsaWNpdHlTeW1ib2wiLCJjcmVhdGVBYnNvbHV0ZUZyb21NYXNrIiwicGF0aFBhcnRzIiwiYWJzb2x1dGUiLCJ0b2tlbnMiLCJsZWdhY3lQYXRoIiwiZmlsdGVyIiwieCIsImVtcHR5IiwiYnVpbGRlciIsImZvcmNlQWJzb2x1dGUiLCJNb2RlbFBhdGhCdWlsZGVyIiwicGFydFBhcnRTdHJpbmdzIiwic3BsaXQiLCJlbnN1cmVQbGFpblBhdGhQYXJ0c0RvZXNOb3RDb250YWluTXVsdGlwbGljaXR5Iiwic3RhcnRzV2l0aCIsInNsaWNlIiwibWFwIiwiam9pbiIsInBhcnRzIiwicmVzdWx0UGFydHMiLCJqb2luSXRlbSIsInB1c2giLCJpc0Fic29sdXRlIiwiQXJyYXkiLCJpc0FycmF5Iiwic29tZSIsIkVycm9yIiwiZ2V0UGF0aFBhcnRzIiwiZ2V0UGF0aFBhcnRzQXNBcnJheSIsImdldFNpbXBsZVRva2Vuc1N0cmljdCIsInRva2VuIiwiZ2V0U2ltcGxlVG9rZW5zQXNBcnJheVN0cmljdCIsImpvaW5XaXRoIiwiaXNSZXNvbHZlZCIsImV2ZXJ5IiwicmVzb2x2ZUFsbCIsImluc3RhbmNlIiwiaXNDb250YWluSXRlcmF0aW9uIiwiaXNDb250YWluQ3VycmVudEl0ZXJhdGlvbiIsInRvU3RyaW5nIiwibGVuZ3RoIiwicGF0aFBhcnRUb1N0cmluZyIsIkl0ZXJhdG9yIiwiZnJvbSIsIkl0ZXJVdGlscyIsInppcCIsInQxIiwidDIiLCJnZXRIYXNoIiwiaGFzaCIsImN1cnJlbnRTdHIiLCJBcmVEaWZmZXJlbnQiLCJzdHJpbmdJbmRleCIsImNoYXJDb2RlQXQiLCJpc0luY2x1ZGVzIiwiaSIsImxlZnRQYXJ0IiwicmlnaHRQYXJ0IiwiaXNGaW5pdGUiLCJOdW1iZXIiLCJnZXRJdGVyYXRpb25SYW5rIiwiaXNFbXB0eSIsIm1hdGNoRm9yIiwiUGF0aE1hdGNoZXIiLCJtYXRjaCIsInNwbGl0QnlNdWx0aXBsaWNpdHkiLCJsYXN0U2ltcGxlUGFydHMiLCJhcHBlbmQiLCJ0b1BhdGgiLCJub3JtYWxpemUiLCJyZXN1bHRUb2tlbnMiLCJwYXRoUGFydCIsInBvcCIsInRvQ3VycmVudEl0ZXJhdGlvbiIsInRvQWJzb2x1dGUiLCJnZXRBbGxQYXJlbnRQYXRocyIsInJlc3VsdCIsInNraXBMYXN0IiwidHJpbUxhc3RTdGFySWZMYXN0VG9rZW4iLCJsYXN0SXRlbSIsImxhc3QiLCJ1bmRlZmluZWQiLCJnZXRQYXJlbnRQYXRoIiwidG9BYnNvbHV0ZVBhdGgiLCJhcHBseUluc3RhbmNlc0RpcnR5IiwiaW5zdGFuY2VzIiwiaW5zdGFuY2VDb3VudGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsVUFBVSxHQUFHQyxNQUFNLENB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IH0gZnJvbSBcIi4uLy4uL0VuZ2luZS9zcmMvRW5naW5lL0NvcmUvQ29yZVR5cGVzXCI7XG5pbXBvcnQgeyBjb3VudCwgSXRlclV0aWxzLCByZXZlcnNlQXJyYXkgfSBmcm9tIFwiLi4vSXRlcmFibGVVdGlsc1wiO1xuaW1wb3J0IHsgZW5zdXJlQW5kR2V0U3RyaW5nLCByZWplY3QgfSBmcm9tIFwiLi4vVHlwaW5nVXRpbHNcIjtcblxuaW1wb3J0IHsgRWFjaEN1cnJlbnRDb2xsaXNpb24gfSBmcm9tIFwiLi9FYWNoQ3VycmVudENvbGxpc2lvblwiO1xuaW1wb3J0IHsgTW9kZWxQYXRoQnVpbGRlciB9IGZyb20gXCIuL01vZGVsUGF0aEJ1aWxkZXJcIjtcbmltcG9ydCB7IFBhdGhNYXRjaGVyLCBQYXRoTWF0Y2hpbmcgfSBmcm9tIFwiLi9QYXRoTWF0Y2hlclwiO1xuaW1wb3J0IHsgSUVxdWF0YWJsZSB9IGZyb20gXCIuL0lFcXVhdGFibGVcIjtcblxuY29uc3QgRWFjaFN5bWJvbCA9IFN5bWJvbC5mb3IoXCJfX0VBQ0hfX1wiKTtcbmNvbnN0IEN1cnJlbnRTeW1ib2wgPSBTeW1ib2wuZm9yKFwiX19DVVJSRU5UX19cIik7XG5cbmV4cG9ydCBjbGFzcyBQYXRoVG9rZW5zIHtcbiAgICBwdWJsaWMgc3RhdGljIGVhY2g6IHR5cGVvZiBFYWNoU3ltYm9sID0gRWFjaFN5bWJvbDtcbiAgICBwdWJsaWMgc3RhdGljIGN1cnJlbnQ6IHR5cGVvZiBDdXJyZW50U3ltYm9sID0gQ3VycmVudFN5bWJvbDtcblxuICAgIHB1YmxpYyBzdGF0aWMgaXNNdWx0aVRva2VuKHBhcnQ6IHVuZGVmaW5lZCB8IFBhdGhUb2tlbik6IHBhcnQgaXMgdHlwZW9mIEVhY2hTeW1ib2wgfCB0eXBlb2YgQ3VycmVudFN5bWJvbCB7XG4gICAgICAgIHJldHVybiBwYXJ0ID09PSBQYXRoVG9rZW5zLmVhY2ggfHwgcGFydCA9PT0gUGF0aFRva2Vucy5jdXJyZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaXNTaW1wbGVUb2tlbihwYXJ0OiB1bmRlZmluZWQgfCBQYXRoVG9rZW4pOiBwYXJ0IGlzIHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgcGFydCA9PT0gXCJzdHJpbmdcIjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGlzSW5zdGFuY2VUb2tlbihwYXJ0OiB1bmRlZmluZWQgfCBQYXRoVG9rZW4pOiBwYXJ0IGlzIHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgcGFydCA9PT0gXCJzdHJpbmdcIiAmJiAvXlxcZCskL2kudGVzdChwYXJ0KTtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFNpbXBsZVBhdGhUb2tlbiA9IHN0cmluZztcblxuZXhwb3J0IHR5cGUgUGF0aFRva2VuID0gU2ltcGxlUGF0aFRva2VuIHwgdHlwZW9mIEVhY2hTeW1ib2wgfCB0eXBlb2YgQ3VycmVudFN5bWJvbDtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTW9kZWxQYXRoKHBhdGg6IEJpbmRpbmdQYXRoIHwgTW9kZWxQYXRoKTogcGF0aCBpcyBNb2RlbFBhdGgge1xuICAgIHJldHVybiB0eXBlb2YgcGF0aCAhPT0gXCJzdHJpbmdcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0xlZ2FjeVBhdGgocGF0aDogQmluZGluZ1BhdGggfCBNb2RlbFBhdGgpOiBCaW5kaW5nUGF0aCB7XG4gICAgcmV0dXJuIGlzTW9kZWxQYXRoKHBhdGgpID8gcGF0aC50b0xlZ2FjeVBhdGgoKSA6IHBhdGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9BYnNvbHV0TW9kZWxQYXRoKHBhdGg6IEJpbmRpbmdQYXRoIHwgQWJzb2x1dGVNb2RlbFBhdGgpOiBBYnNvbHV0ZU1vZGVsUGF0aCB7XG4gICAgcmV0dXJuIGlzTW9kZWxQYXRoKHBhdGgpID8gcGF0aCA6IE1vZGVsUGF0aC5jcmVhdGVGcm9tU3RyaW5nKHBhdGgsIHRydWUpO1xufVxuXG5leHBvcnQgY2xhc3MgQWJzb2x1dGVNb2RlbEZpZWxkUGF0aCB7XG4gICAgcHVibGljIHJlYWRvbmx5IHBhdGg6IEFic29sdXRlTW9kZWxQYXRoO1xuICAgIHB1YmxpYyByZWFkb25seSBmaWVsZDogVmlld01vZGVsRmllbGROYW1lIHwgXCIkZXJyb3JDb3VudFwiIHwgXCIkd2FybmluZ0NvdW50XCI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGF0aDogQWJzb2x1dGVNb2RlbFBhdGgsIGZpZWxkTmFtZTogVmlld01vZGVsRmllbGROYW1lIHwgXCIkZXJyb3JDb3VudFwiIHwgXCIkd2FybmluZ0NvdW50XCIpIHtcbiAgICAgICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgICAgICAgdGhpcy5maWVsZCA9IGZpZWxkTmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNFcXVhbHMoXG4gICAgICAgIG1vZGVsUGF0aDogQWJzb2x1dGVNb2RlbEZpZWxkUGF0aCxcbiAgICAgICAgZWFjaEN1cnJlbnRDb2xsaXNpb246IEVhY2hDdXJyZW50Q29sbGlzaW9uID0gRWFjaEN1cnJlbnRDb2xsaXNpb24uQXJlU2FtZVxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXRoLmlzRXF1YWxzKG1vZGVsUGF0aC5wYXRoLCBlYWNoQ3VycmVudENvbGxpc2lvbikgJiYgdGhpcy5maWVsZCA9PT0gbW9kZWxQYXRoLmZpZWxkO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRnJvbVN0cmluZyhwYXRoV2l0aEZpZWxkTmFtZTogc3RyaW5nKTogQWJzb2x1dGVNb2RlbEZpZWxkUGF0aCB7XG4gICAgICAgIGlmIChwYXRoV2l0aEZpZWxkTmFtZS5lbmRzV2l0aChcIi4kZXJyb3JDb3VudFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoKFxuICAgICAgICAgICAgICAgIEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlKHBhdGhXaXRoRmllbGROYW1lLnJlcGxhY2UoXCIuJGVycm9yQ291bnRcIiwgXCJcIikpLFxuICAgICAgICAgICAgICAgIFwiJGVycm9yQ291bnRcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aFdpdGhGaWVsZE5hbWUuZW5kc1dpdGgoXCIuJHdhcm5pbmdDb3VudFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoKFxuICAgICAgICAgICAgICAgIEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlKHBhdGhXaXRoRmllbGROYW1lLnJlcGxhY2UoXCIuJHdhcm5pbmdDb3VudFwiLCBcIlwiKSksXG4gICAgICAgICAgICAgICAgXCIkd2FybmluZ0NvdW50XCJcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoKEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlKHBhdGhXaXRoRmllbGROYW1lKSwgXCJ2YWx1ZVwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZUZyb21NYXNrKHBhdGhXaXRoRmllbGROYW1lOiBzdHJpbmcsIG11bHRpcGxpY2l0eVN5bWJvbDogUGF0aFRva2VuKTogQWJzb2x1dGVNb2RlbEZpZWxkUGF0aCB7XG4gICAgICAgIGlmIChwYXRoV2l0aEZpZWxkTmFtZS5lbmRzV2l0aChcIi4kZXJyb3JDb3VudFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoKFxuICAgICAgICAgICAgICAgIEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlRnJvbU1hc2soXG4gICAgICAgICAgICAgICAgICAgIHBhdGhXaXRoRmllbGROYW1lLnJlcGxhY2UoXCIuJGVycm9yQ291bnRcIiwgXCJcIiksXG4gICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2l0eVN5bWJvbFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgXCIkZXJyb3JDb3VudFwiXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoV2l0aEZpZWxkTmFtZS5lbmRzV2l0aChcIi4kd2FybmluZ0NvdW50XCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEFic29sdXRlTW9kZWxGaWVsZFBhdGgoXG4gICAgICAgICAgICAgICAgQWJzb2x1dGVNb2RlbFBhdGguY3JlYXRlQWJzb2x1dGVGcm9tTWFzayhcbiAgICAgICAgICAgICAgICAgICAgcGF0aFdpdGhGaWVsZE5hbWUucmVwbGFjZShcIi4kd2FybmluZ0NvdW50XCIsIFwiXCIpLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNpdHlTeW1ib2xcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIFwiJHdhcm5pbmdDb3VudFwiXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbEZpZWxkUGF0aChcbiAgICAgICAgICAgIEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlRnJvbU1hc2socGF0aFdpdGhGaWVsZE5hbWUsIG11bHRpcGxpY2l0eVN5bWJvbCksXG4gICAgICAgICAgICBcInZhbHVlXCJcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNb2RlbFBhdGggaW1wbGVtZW50cyBJRXF1YXRhYmxlPE1vZGVsUGF0aD4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9rZW5zOiByZWFkb25seSBQYXRoVG9rZW5bXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFic29sdXRlOiBib29sZWFuO1xuICAgIHByaXZhdGUgbGVnYWN5UGF0aDogdW5kZWZpbmVkIHwgc3RyaW5nO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHBhdGhQYXJ0czogcmVhZG9ubHkgUGF0aFRva2VuW10sIGFic29sdXRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudG9rZW5zID0gcGF0aFBhcnRzLmZpbHRlcih4ID0+IHggIT09IFwiXCIpO1xuICAgICAgICB0aGlzLmFic29sdXRlID0gYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBlbXB0eSgpOiBNb2RlbFBhdGgge1xuICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChbXSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYnVpbGRlcihmb3JjZUFic29sdXRlOiBib29sZWFuID0gZmFsc2UpOiBNb2RlbFBhdGhCdWlsZGVyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGhCdWlsZGVyKGZvcmNlQWJzb2x1dGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRnJvbVN0cmluZyhwYXRoOiBzdHJpbmcsIGFic29sdXRlOiBib29sZWFuIHwgXCJhdXRvXCIpOiBNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCBwYXJ0UGFydFN0cmluZ3MgPSBwYXRoLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgdGhpcy5lbnN1cmVQbGFpblBhdGhQYXJ0c0RvZXNOb3RDb250YWluTXVsdGlwbGljaXR5KHBhcnRQYXJ0U3RyaW5ncyk7XG4gICAgICAgIGlmIChhYnNvbHV0ZSA9PT0gXCJhdXRvXCIpIHtcbiAgICAgICAgICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzLnNsaWNlKDEpLCB0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzLCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFic29sdXRlICYmIHBhdGguc3RhcnRzV2l0aChcIi9cIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncy5zbGljZSgxKSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzLCBhYnNvbHV0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVGcm9tTWFzayhwYXRoOiBzdHJpbmcsIGFic29sdXRlOiBib29sZWFuIHwgXCJhdXRvXCIsIG11bHRpcGxpY2l0eVN5bWJvbDogUGF0aFRva2VuKTogTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcGFydFBhcnRTdHJpbmdzID0gcGF0aC5zcGxpdChcIi9cIikubWFwKHggPT4gKHggPT09IFwiKlwiID8gbXVsdGlwbGljaXR5U3ltYm9sIDogeCkpO1xuICAgICAgICBpZiAoYWJzb2x1dGUgPT09IFwiYXV0b1wiKSB7XG4gICAgICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncy5zbGljZSgxKSwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncywgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChhYnNvbHV0ZSAmJiBwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3Muc2xpY2UoMSksIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncywgYWJzb2x1dGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgam9pbiguLi5wYXJ0czogQXJyYXk8TW9kZWxQYXRoIHwgUGF0aFRva2VuIHwgUGF0aFRva2VuW10+KTogTW9kZWxQYXRoIHtcbiAgICAgICAgbGV0IGFic29sdXRlID0gZmFsc2U7XG4gICAgICAgIGxldCByZXN1bHRQYXJ0czogUGF0aFRva2VuW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBqb2luSXRlbSBvZiBwYXJ0cykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBqb2luSXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIHJlc3VsdFBhcnRzLnB1c2goam9pbkl0ZW0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChqb2luSXRlbSBpbnN0YW5jZW9mIE1vZGVsUGF0aCkge1xuICAgICAgICAgICAgICAgIGlmIChqb2luSXRlbS5pc0Fic29sdXRlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgYWJzb2x1dGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRQYXJ0cyA9IFsuLi5qb2luSXRlbS50b2tlbnNdO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFBhcnRzLnB1c2goLi4uam9pbkl0ZW0udG9rZW5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoam9pbkl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0UGFydHMucHVzaCguLi5qb2luSXRlbSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFBhdGhUb2tlbnMuaXNNdWx0aVRva2VuKGpvaW5JdGVtKSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFBhcnRzLnB1c2goam9pbkl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgocmVzdWx0UGFydHMsIGFic29sdXRlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc3RhdGljIGVuc3VyZVBsYWluUGF0aFBhcnRzRG9lc05vdENvbnRhaW5NdWx0aXBsaWNpdHkocGFydHM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIGlmIChwYXJ0cy5zb21lKHggPT4geCA9PT0gXCIqXCIpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXRoIG11c3Qgbm90IGNvbnRhaW4gKiBzeW1ib2xcIik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGF0aFBhcnRzKCk6IEl0ZXJhYmxlPFBhdGhUb2tlbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBhdGhQYXJ0c0FzQXJyYXkoKTogcmVhZG9ubHkgUGF0aFRva2VuW10ge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gICAgfVxuXG4gICAgcHVibGljICpnZXRTaW1wbGVUb2tlbnNTdHJpY3QoKTogSXRlcmFibGU8U2ltcGxlUGF0aFRva2VuPiB7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdGhpcy50b2tlbnMpIHtcbiAgICAgICAgICAgIGlmICghUGF0aFRva2Vucy5pc1NpbXBsZVRva2VuKHRva2VuKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhdGggbXVzdCBub3QgY29udGFpbiBzcGVjIHRva2Vuc1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHlpZWxkIHRva2VuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNpbXBsZVRva2Vuc0FzQXJyYXlTdHJpY3QoKTogcmVhZG9ubHkgU2ltcGxlUGF0aFRva2VuW10ge1xuICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRoaXMudG9rZW5zKSB7XG4gICAgICAgICAgICBpZiAoIVBhdGhUb2tlbnMuaXNTaW1wbGVUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXRoIG11c3Qgbm90IGNvbnRhaW4gc3BlYyB0b2tlbnNcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8g0J/RgNC+0LLQtdGA0LrQsCDQstGL0YjQtSDQs9Cw0YDQsNC10L3RgtC40YDRg9C10YIg0YfRgtC+INCx0YPQtNGD0YIg0YLQvtC70YzQutC+IFNpbXBsZVBhdGhUb2tlbi5cbiAgICAgICAgLy8g0JLRgdC1IG1hcCDQuCBmaWx0ZXIg0YPQsdGA0LDQvdGLINC00LvRjyDQv9GA0L7QuNC30LLQvtC00LjRgtC10LvRjNC90L7RgdGC0LhcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGpvaW5XaXRoKC4uLnBhdGg6IEFycmF5PE1vZGVsUGF0aCB8IFBhdGhUb2tlbj4pOiBNb2RlbFBhdGgge1xuICAgICAgICByZXR1cm4gTW9kZWxQYXRoLmpvaW4odGhpcywgLi4ucGF0aCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzUmVzb2x2ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRva2Vucy5ldmVyeShQYXRoVG9rZW5zLmlzU2ltcGxlVG9rZW4pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlQWxsKGluc3RhbmNlOiBzdHJpbmcpOiBNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCB0b2tlbnMgPSB0aGlzLnRva2Vucy5tYXAodG9rZW4gPT4ge1xuICAgICAgICAgICAgaWYgKFBhdGhUb2tlbnMuaXNTaW1wbGVUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgodG9rZW5zLCB0aGlzLmFic29sdXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNDb250YWluSXRlcmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnMuc29tZSh4ID0+IHggPT09IFBhdGhUb2tlbnMuZWFjaCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQ29udGFpbkN1cnJlbnRJdGVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRva2Vucy5zb21lKHggPT4geCA9PT0gUGF0aFRva2Vucy5jdXJyZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNBYnNvbHV0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLnRva2Vucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAodGhpcy5hYnNvbHV0ZSA/IFwiL1wiIDogXCJcIikgKyB0aGlzLnRva2Vucy5tYXAoeCA9PiB0aGlzLnBhdGhQYXJ0VG9TdHJpbmcoeCkpLmpvaW4oXCIvXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b0xlZ2FjeVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGVnYWN5UGF0aCA/PyAodGhpcy5sZWdhY3lQYXRoID0gdGhpcy50b2tlbnMubWFwKHggPT4gdGhpcy5wYXRoUGFydFRvU3RyaW5nKHgpKS5qb2luKFwiL1wiKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRXF1YWxzKFxuICAgICAgICBtb2RlbFBhdGg6IE1vZGVsUGF0aCxcbiAgICAgICAgZWFjaEN1cnJlbnRDb2xsaXNpb246IEVhY2hDdXJyZW50Q29sbGlzaW9uID0gRWFjaEN1cnJlbnRDb2xsaXNpb24uQXJlU2FtZVxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoZWFjaEN1cnJlbnRDb2xsaXNpb24gPT09IEVhY2hDdXJyZW50Q29sbGlzaW9uLkFyZVNhbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRvTGVnYWN5UGF0aCgpID09PSBtb2RlbFBhdGgudG9MZWdhY3lQYXRoKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuaXNBYnNvbHV0ZSgpID09PSBtb2RlbFBhdGguaXNBYnNvbHV0ZSgpICYmXG4gICAgICAgICAgICAgICAgSXRlcmF0b3IuZnJvbShJdGVyVXRpbHMuemlwKHRoaXMuZ2V0UGF0aFBhcnRzKCksIG1vZGVsUGF0aC5nZXRQYXRoUGFydHMoKSkpLmV2ZXJ5KFxuICAgICAgICAgICAgICAgICAgICAoW3QxLCB0Ml0pID0+IHQxID09PSB0MlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktGB0LXQs9C00LAg0YbQtdC70L7QtSDQv9C+0LvQvtC20LjRgtC10LvRjNC90L7QtSDQsdC10LfQt9C90LDQutC+0LLQvtC1IDMyLdCx0LjRgtC90L7QtSDRh9C40YHQu9C+XG4gICAgICovXG4gICAgcHVibGljIGdldEhhc2goZWFjaEN1cnJlbnRDb2xsaXNpb246IEVhY2hDdXJyZW50Q29sbGlzaW9uID0gRWFjaEN1cnJlbnRDb2xsaXNpb24uQXJlU2FtZSk6IG51bWJlciB7XG4gICAgICAgIGxldCBoYXNoID0gNTM4MTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiByZXZlcnNlQXJyYXkodGhpcy50b2tlbnMpKSB7XG4gICAgICAgICAgICBsZXQgY3VycmVudFN0cjogc3RyaW5nO1xuICAgICAgICAgICAgaWYgKFBhdGhUb2tlbnMuaXNTaW1wbGVUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50U3RyID0gdG9rZW47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChlYWNoQ3VycmVudENvbGxpc2lvbiA9PT0gRWFjaEN1cnJlbnRDb2xsaXNpb24uQXJlRGlmZmVyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTdHIgPSB0b2tlbiA9PT0gUGF0aFRva2Vucy5lYWNoID8gXCIqXCIgOiBcIiFcIjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RyID0gXCIqXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHN0cmluZ0luZGV4ID0gY3VycmVudFN0ci5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoc3RyaW5nSW5kZXgpIHtcbiAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxuICAgICAgICAgICAgICAgIGhhc2ggPSAoaGFzaCAqIDMzKSBeIGN1cnJlbnRTdHIuY2hhckNvZGVBdCgtLXN0cmluZ0luZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qXG4gICAgICAgICAgICB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxuICAgICAgICAgICAgSmF2YVNjcmlwdCBkb2VzIGJpdHdpc2Ugb3BlcmF0aW9ucyAobGlrZSBYT1IsIGFib3ZlKSBvbiAzMi1iaXQgc2lnbmVkXG4gICAgICAgICAgICBpbnRlZ2Vycy4gU2luY2Ugd2Ugd2FudCB0aGUgcmVzdWx0cyB0byBiZSBhbHdheXMgcG9zaXRpdmUsIGNvbnZlcnQgdGhlXG4gICAgICAgICAgICBzaWduZWQgaW50IHRvIGFuIHVuc2lnbmVkIGJ5IGRvaW5nIGFuIHVuc2lnbmVkIGJpdHNoaWZ0LlxuICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGhhc2ggPj4+IDA7XG4gICAgfVxuXG4gICAgcHVibGljIGlzSW5jbHVkZXMobW9kZWxQYXRoOiBNb2RlbFBhdGgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5zLmxlbmd0aCAhPT0gbW9kZWxQYXRoLnRva2Vucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBsZWZ0UGFydCA9IHRoaXMudG9rZW5zW2ldO1xuICAgICAgICAgICAgY29uc3QgcmlnaHRQYXJ0ID0gbW9kZWxQYXRoLnRva2Vuc1tpXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbGVmdFBhcnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJpZ2h0UGFydCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBpZiAobGVmdFBhcnQgIT09IHJpZ2h0UGFydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxlZnRQYXJ0ID09PSBQYXRoVG9rZW5zLmN1cnJlbnQgfHwgbGVmdFBhcnQgPT09IFBhdGhUb2tlbnMuZWFjaCkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmlnaHRQYXJ0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNGaW5pdGUoTnVtYmVyKHJpZ2h0UGFydCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJpZ2h0UGFydCAhPT0gUGF0aFRva2Vucy5jdXJyZW50ICYmIHJpZ2h0UGFydCAhPT0gUGF0aFRva2Vucy5lYWNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJdGVyYXRpb25SYW5rKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBjb3VudChJdGVyYXRvci5mcm9tKHRoaXMudG9rZW5zKS5maWx0ZXIoeCA9PiB4ID09PSBQYXRoVG9rZW5zLmVhY2gpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9rZW5zLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWF0Y2hGb3IobW9kZWxQYXRoOiBNb2RlbFBhdGgpOiBQYXRoTWF0Y2hpbmcge1xuICAgICAgICBpZiAoIXRoaXMuaXNBYnNvbHV0ZSgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBtYXRjaCBub24gYWJzb2x1dGUgcGF0aCAnJHt0aGlzLnRvU3RyaW5nKCl9J2ApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbW9kZWxQYXRoLmlzQWJzb2x1dGUoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgbWF0Y2ggbm9uIGFic29sdXRlIHBhdGggJyR7bW9kZWxQYXRoLnRvU3RyaW5nKCl9J2ApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQYXRoTWF0Y2hlci5tYXRjaCh0aGlzLnRva2VucywgbW9kZWxQYXRoLnRva2Vucyk7XG4gICAgfVxuXG4gICAgcHVibGljICpzcGxpdEJ5TXVsdGlwbGljaXR5KCk6IEl0ZXJhYmxlPE1vZGVsUGF0aCB8IHR5cGVvZiBFYWNoU3ltYm9sIHwgdHlwZW9mIEN1cnJlbnRTeW1ib2w+IHtcbiAgICAgICAgbGV0IGxhc3RTaW1wbGVQYXJ0cyA9IE1vZGVsUGF0aC5idWlsZGVyKHRoaXMuaXNBYnNvbHV0ZSgpKTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiB0aGlzLnRva2Vucykge1xuICAgICAgICAgICAgaWYgKFBhdGhUb2tlbnMuaXNTaW1wbGVUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICBsYXN0U2ltcGxlUGFydHMuYXBwZW5kKHRva2VuKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCFsYXN0U2ltcGxlUGFydHMuZW1wdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgeWllbGQgbGFzdFNpbXBsZVBhcnRzLnRvUGF0aCgpO1xuICAgICAgICAgICAgICAgICAgICBsYXN0U2ltcGxlUGFydHMgPSBNb2RlbFBhdGguYnVpbGRlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB5aWVsZCB0b2tlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWxhc3RTaW1wbGVQYXJ0cy5lbXB0eSkge1xuICAgICAgICAgICAgeWllbGQgbGFzdFNpbXBsZVBhcnRzLnRvUGF0aCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5vcm1hbGl6ZSgpOiBNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCByZXN1bHRUb2tlbnM6IFBhdGhUb2tlbltdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcGF0aFBhcnQgb2YgdGhpcy50b2tlbnMpIHtcbiAgICAgICAgICAgIGlmIChwYXRoUGFydCA9PT0gXCIuLlwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHRUb2tlbnMucG9wKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNBYnNvbHV0ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhdGggaXMgaW52YWxpZCAnJHt0aGlzLnRvU3RyaW5nKCl9J2ApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0VG9rZW5zLnB1c2goXCIuLlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhdGhQYXJ0ID09PSBcIi5cIikge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0VG9rZW5zLnB1c2gocGF0aFBhcnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHJlc3VsdFRva2VucywgdGhpcy5pc0Fic29sdXRlKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBzdW1tYXJ5INCh0L/QtdGG0LjRhNC40LrQsNGC0L7RgNGLINC80L3QvtC20LXRgdGC0LLQtdC90L3QvtGB0YLQuCBFYWNoINC30LDQvNC10L3Rj9C10YIg0L3QsCBDdXJyZW50XG4gICAgICovXG4gICAgcHVibGljIHRvQ3VycmVudEl0ZXJhdGlvbigpOiBNb2RlbFBhdGgge1xuICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChcbiAgICAgICAgICAgIHRoaXMudG9rZW5zLm1hcCh4ID0+ICh4ID09PSBQYXRoVG9rZW5zLmVhY2ggPyBQYXRoVG9rZW5zLmN1cnJlbnQgOiB4KSksXG4gICAgICAgICAgICB0aGlzLmlzQWJzb2x1dGUoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b0Fic29sdXRlKCk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICAgICAgaWYgKCF0aGlzLmFic29sdXRlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhdGggJyR7dGhpcy50b0xlZ2FjeVBhdGgoKX0gaXMgbm90IGFic29sdXRlJ2ApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbFBhdGgodGhpcy50b2tlbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyAqZ2V0QWxsUGFyZW50UGF0aHMoKTogSXRlcmFibGU8TW9kZWxQYXRoPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IE1vZGVsUGF0aC5idWlsZGVyKHRoaXMuaXNBYnNvbHV0ZSgpKTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiBJdGVyVXRpbHMuc2tpcExhc3QodGhpcy5nZXRQYXRoUGFydHMoKSwgMSkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodG9rZW4pO1xuICAgICAgICAgICAgeWllbGQgcmVzdWx0LnRvUGF0aCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHRyaW1MYXN0U3RhcklmTGFzdFRva2VuKCk6IE1vZGVsUGF0aCB7XG4gICAgICAgIGNvbnN0IGxhc3RJdGVtID0gSXRlclV0aWxzLmxhc3QodGhpcy50b2tlbnMpO1xuICAgICAgICBpZiAobGFzdEl0ZW0gIT0gdW5kZWZpbmVkICYmIFBhdGhUb2tlbnMuaXNNdWx0aVRva2VuKGxhc3RJdGVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgodGhpcy50b2tlbnMuc2xpY2UoMCwgLTEpLCB0aGlzLmFic29sdXRlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFyZW50UGF0aCgpOiBNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBNb2RlbFBhdGguYnVpbGRlcih0aGlzLmlzQWJzb2x1dGUoKSk7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgSXRlclV0aWxzLnNraXBMYXN0KHRoaXMuZ2V0UGF0aFBhcnRzKCksIDEpKSB7XG4gICAgICAgICAgICByZXN1bHQuYXBwZW5kKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0LnRvQWJzb2x1dGVQYXRoKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFwcGx5SW5zdGFuY2VzRGlydHkoaW5zdGFuY2VzOiBTaW1wbGVQYXRoVG9rZW5bXSk6IE1vZGVsUGF0aCB7XG4gICAgICAgIGlmICh0aGlzLmlzUmVzb2x2ZWQoKSB8fCBpbnN0YW5jZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICBsZXQgaW5zdGFuY2VDb3VudGVyID0gMDtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gTW9kZWxQYXRoLmJ1aWxkZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiB0aGlzLmdldFBhdGhQYXJ0cygpKSB7XG4gICAgICAgICAgICBpZiAoUGF0aFRva2Vucy5pc011bHRpVG9rZW4odG9rZW4pICYmIGluc3RhbmNlQ291bnRlciA8IGluc3RhbmNlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGluc3RhbmNlc1tpbnN0YW5jZUNvdW50ZXJdID8/IHJlamVjdCgpKTtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZUNvdW50ZXIrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdC50b0Fic29sdXRlUGF0aCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGF0aFBhcnRUb1N0cmluZyhwYXRoUGFydDogUGF0aFRva2VuKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHR5cGVvZiBwYXRoUGFydCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHBhdGhQYXJ0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoUGFydCA9PT0gUGF0aFRva2Vucy5lYWNoKSB7XG4gICAgICAgICAgICByZXR1cm4gXCIqXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGhQYXJ0ID09PSBQYXRoVG9rZW5zLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBcIipcIjtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcGF0aCBwYXJ0IHNwZWNpZmllZDogJHtlbnN1cmVBbmRHZXRTdHJpbmcocGF0aFBhcnQpfWApO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFic29sdXRlTW9kZWxQYXRoIGV4dGVuZHMgTW9kZWxQYXRoIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGF0aFBhcnRzOiByZWFkb25seSBQYXRoVG9rZW5bXSkge1xuICAgICAgICBzdXBlcihwYXRoUGFydHMsIHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlQWJzb2x1dGVGcm9tTWFzayhwYXRoOiBzdHJpbmcsIG11bHRpcGxpY2l0eVN5bWJvbDogUGF0aFRva2VuKTogTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcGFydFBhcnRTdHJpbmdzID0gcGF0aC5zcGxpdChcIi9cIikubWFwKHggPT4gKHggPT09IFwiKlwiID8gbXVsdGlwbGljaXR5U3ltYm9sIDogeCkpO1xuICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3Muc2xpY2UoMSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZUFic29sdXRlKHBhdGg6IHN0cmluZyk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcGFydFBhcnRTdHJpbmdzID0gcGF0aC5zcGxpdChcIi9cIik7XG4gICAgICAgIHRoaXMuZW5zdXJlUGxhaW5QYXRoUGFydHNEb2VzTm90Q29udGFpbk11bHRpcGxpY2l0eShwYXJ0UGFydFN0cmluZ3MpO1xuICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3Muc2xpY2UoMSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgam9pbldpdGgocGF0aDogTW9kZWxQYXRoIHwgUGF0aFRva2VuKTogQWJzb2x1dGVNb2RlbFBhdGgge1xuICAgICAgICByZXR1cm4gc3VwZXIuam9pbldpdGgocGF0aCkudG9BYnNvbHV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQYXJlbnRQYXRoKCk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gTW9kZWxQYXRoLmJ1aWxkZXIodHJ1ZSk7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgSXRlclV0aWxzLnNraXBMYXN0KHRoaXMuZ2V0UGF0aFBhcnRzKCksIDEpKSB7XG4gICAgICAgICAgICByZXN1bHQuYXBwZW5kKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0LnRvQWJzb2x1dGVQYXRoKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFwcGx5SW5zdGFuY2VzRGlydHkoaW5zdGFuY2VzOiBTaW1wbGVQYXRoVG9rZW5bXSk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmFwcGx5SW5zdGFuY2VzRGlydHkoaW5zdGFuY2VzKS50b0Fic29sdXRlKCk7XG4gICAgfVxufVxuIl19
|
|
541
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL0NvbW1vbi9Nb2RlbFBhdGgvTW9kZWxQYXRoLnRzIl0sIm5hbWVzIjpbIkVhY2hTeW1ib2wiLCJTeW1ib2wiLCJmb3IiLCJDdXJyZW50U3ltYm9sIiwiUGF0aFRva2VucyIsImlzTXVsdGlUb2tlbiIsInBhcnQiLCJlYWNoIiwiY3VycmVudCIsImlzU2ltcGxlVG9rZW4iLCJpc0luc3RhbmNlVG9rZW4iLCJ0ZXN0IiwiaXNNb2RlbFBhdGgiLCJwYXRoIiwiY29udmVydFRvTGVnYWN5UGF0aCIsInRvTGVnYWN5UGF0aCIsImNvbnZlcnRUb0Fic29sdXRNb2RlbFBhdGgiLCJBYnNvbHV0ZU1vZGVsUGF0aCIsImNyZWF0ZUFic29sdXRlRnJvbU1hc2siLCJBYnNvbHV0ZU1vZGVsRmllbGRQYXRoIiwiY29uc3RydWN0b3IiLCJmaWVsZE5hbWUiLCJmaWVsZCIsImlzRXF1YWxzIiwibW9kZWxQYXRoIiwiZWFjaEN1cnJlbnRDb2xsaXNpb24iLCJFYWNoQ3VycmVudENvbGxpc2lvbiIsIkFyZVNhbWUiLCJjcmVhdGVGcm9tU3RyaW5nIiwicGF0aFdpdGhGaWVsZE5hbWUiLCJlbmRzV2l0aCIsImNyZWF0ZUFic29sdXRlIiwicmVwbGFjZSIsImNyZWF0ZUZyb21NYXNrIiwibXVsdGlwbGljaXR5U3ltYm9sIiwiTW9kZWxQYXRoIiwicGF0aFBhcnRzIiwiYWJzb2x1dGUiLCJ0b2tlbnMiLCJsZWdhY3lQYXRoIiwiZmlsdGVyIiwieCIsImVtcHR5IiwiYnVpbGRlciIsImZvcmNlQWJzb2x1dGUiLCJNb2RlbFBhdGhCdWlsZGVyIiwicGFydFBhcnRTdHJpbmdzIiwic3BsaXQiLCJlbnN1cmVQbGFpblBhdGhQYXJ0c0RvZXNOb3RDb250YWluTXVsdGlwbGljaXR5Iiwic3RhcnRzV2l0aCIsInNsaWNlIiwibWFwIiwiam9pbiIsInBhcnRzIiwicmVzdWx0UGFydHMiLCJqb2luSXRlbSIsInB1c2giLCJpc0Fic29sdXRlIiwiQXJyYXkiLCJpc0FycmF5Iiwic29tZSIsIkVycm9yIiwiZ2V0UGF0aFBhcnRzIiwiZ2V0UGF0aFBhcnRzQXNBcnJheSIsImdldFNpbXBsZVRva2Vuc1N0cmljdCIsInRva2VuIiwiZ2V0U2ltcGxlVG9rZW5zQXNBcnJheVN0cmljdCIsImpvaW5XaXRoIiwiaXNSZXNvbHZlZCIsImV2ZXJ5IiwicmVzb2x2ZUFsbCIsImluc3RhbmNlIiwiaXNDb250YWluSXRlcmF0aW9uIiwiaXNDb250YWluQ3VycmVudEl0ZXJhdGlvbiIsInRvU3RyaW5nIiwibGVuZ3RoIiwicGF0aFBhcnRUb1N0cmluZyIsIkl0ZXJhdG9yIiwiZnJvbSIsIkl0ZXJVdGlscyIsInppcCIsInQxIiwidDIiLCJnZXRIYXNoIiwiaGFzaCIsImN1cnJlbnRTdHIiLCJBcmVEaWZmZXJlbnQiLCJzdHJpbmdJbmRleCIsImNoYXJDb2RlQXQiLCJpc0luY2x1ZGVzIiwiaSIsImxlZnRQYXJ0IiwicmlnaHRQYXJ0IiwiaXNGaW5pdGUiLCJOdW1iZXIiLCJnZXRJdGVyYXRpb25SYW5rIiwiaXNFbXB0eSIsIm1hdGNoRm9yIiwiUGF0aE1hdGNoZXIiLCJtYXRjaCIsInNwbGl0QnlNdWx0aXBsaWNpdHkiLCJsYXN0U2ltcGxlUGFydHMiLCJhcHBlbmQiLCJ0b1BhdGgiLCJub3JtYWxpemUiLCJyZXN1bHRUb2tlbnMiLCJwYXRoUGFydCIsInBvcCIsInRvQ3VycmVudEl0ZXJhdGlvbiIsInRvQWJzb2x1dGUiLCJnZXRBbGxQYXJlbnRQYXRocyIsInJlc3VsdCIsInNraXBMYXN0IiwidHJpbUxhc3RTdGFySWZMYXN0VG9rZW4iLCJsYXN0SXRlbSIsImxhc3QiLCJ1bmRlZmluZWQiLCJnZXRQYXJlbnRQYXRoIiwidG9BYnNvbHV0ZVBhdGgiLCJhcHBseUluc3RhbmNlc0RpcnR5IiwiaW5zdGFuY2VzIiwiaW5zdGFuY2VDb3VudGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsVUFBVSxHQUFHQyxNQUFNLENB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Q0FBdEIsQ0FBdEIsQ0FBUDtBQUNIOztBQUNELFdBQU8sSUFBSWpDLGlCQUFKLENBQXNCNkIsZUFBdEIsQ0FBUDtBQUNIOztBQUUyQixTQUFkZixjQUFjLENBQUNsQixJQUFELEVBQWtDO0FBQzFELFVBQU1pQyxlQUFlLEdBQUdqQyxJQUFJLENBQUNrQyxLQUFMLENBQVcsR0FBWCxDQUF4QjtBQUNBLFNBQUtDLDhDQUFMLENBQW9ERixlQUFwRDs7QUFDQSxRQUFJakMsSUFBSSxDQUFDb0MsVUFBTCxDQUFnQixHQUFoQixDQUFKLEVBQTBCO0FBQ3RCLGFBQU8sSUFBSWhDLGlCQUFKLENBQXNCNkIsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixDQUF0QixDQUF0QixDQUFQO0FBQ0g7O0FBQ0QsV0FBTyxJQUFJakMsaUJBQUosQ0FBc0I2QixlQUF0QixDQUFQO0FBQ0g7O0FBRU1xQixFQUFBQSxRQUFRLENBQUN0RCxJQUFELEVBQWlEO0FBQzVELFdBQU8sTUFBTXNELFFBQU4sQ0FBZXRELElBQWYsRUFBcUJnRyxVQUFyQixFQUFQO0FBQ0g7O0FBRU1RLEVBQUFBLGFBQWEsR0FBc0I7QUFDdEMsVUFBTU4sTUFBTSxHQUFHNUUsU0FBUyxDQUFDUSxPQUFWLENBQWtCLElBQWxCLENBQWY7O0FBQ0EsU0FBSyxNQUFNc0IsS0FBWCxJQUFvQmMseUJBQVVpQyxRQUFWLENBQW1CLEtBQUtsRCxZQUFMLEVBQW5CLEVBQXdDLENBQXhDLENBQXBCLEVBQWdFO0FBQzVEaUQsTUFBQUEsTUFBTSxDQUFDVCxNQUFQLENBQWNyQyxLQUFkO0FBQ0g7O0FBQ0QsV0FBTzhDLE1BQU0sQ0FBQ08sY0FBUCxFQUFQO0FBQ0g7O0FBRU1DLEVBQUFBLG1CQUFtQixDQUFDQyxTQUFELEVBQWtEO0FBQ3hFLFdBQU8sTUFBTUQsbUJBQU4sQ0FBMEJDLFNBQTFCLEVBQXFDWCxVQUFyQyxFQUFQO0FBQ0g7O0FBcEM0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpbmRpbmdQYXRoLCBWaWV3TW9kZWxGaWVsZE5hbWUgfSBmcm9tIFwiLi4vLi4vRW5naW5lL3NyYy9FbmdpbmUvQ29yZS9Db3JlVHlwZXNcIjtcbmltcG9ydCB7IGNvdW50LCBJdGVyVXRpbHMsIHJldmVyc2VBcnJheSB9IGZyb20gXCIuLi9JdGVyYWJsZVV0aWxzXCI7XG5pbXBvcnQgeyBlbnN1cmVBbmRHZXRTdHJpbmcsIHJlamVjdCB9IGZyb20gXCIuLi9UeXBpbmdVdGlsc1wiO1xuXG5pbXBvcnQgeyBFYWNoQ3VycmVudENvbGxpc2lvbiB9IGZyb20gXCIuL0VhY2hDdXJyZW50Q29sbGlzaW9uXCI7XG5pbXBvcnQgeyBNb2RlbFBhdGhCdWlsZGVyIH0gZnJvbSBcIi4vTW9kZWxQYXRoQnVpbGRlclwiO1xuaW1wb3J0IHsgUGF0aE1hdGNoZXIsIFBhdGhNYXRjaGluZyB9IGZyb20gXCIuL1BhdGhNYXRjaGVyXCI7XG5pbXBvcnQgeyBJRXF1YXRhYmxlIH0gZnJvbSBcIi4vSUVxdWF0YWJsZVwiO1xuXG5jb25zdCBFYWNoU3ltYm9sID0gU3ltYm9sLmZvcihcIl9fRUFDSF9fXCIpO1xuY29uc3QgQ3VycmVudFN5bWJvbCA9IFN5bWJvbC5mb3IoXCJfX0NVUlJFTlRfX1wiKTtcblxuZXhwb3J0IGNsYXNzIFBhdGhUb2tlbnMge1xuICAgIHB1YmxpYyBzdGF0aWMgZWFjaDogdHlwZW9mIEVhY2hTeW1ib2wgPSBFYWNoU3ltYm9sO1xuICAgIHB1YmxpYyBzdGF0aWMgY3VycmVudDogdHlwZW9mIEN1cnJlbnRTeW1ib2wgPSBDdXJyZW50U3ltYm9sO1xuXG4gICAgcHVibGljIHN0YXRpYyBpc011bHRpVG9rZW4ocGFydDogdW5kZWZpbmVkIHwgUGF0aFRva2VuKTogcGFydCBpcyB0eXBlb2YgRWFjaFN5bWJvbCB8IHR5cGVvZiBDdXJyZW50U3ltYm9sIHtcbiAgICAgICAgcmV0dXJuIHBhcnQgPT09IFBhdGhUb2tlbnMuZWFjaCB8fCBwYXJ0ID09PSBQYXRoVG9rZW5zLmN1cnJlbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpc1NpbXBsZVRva2VuKHBhcnQ6IHVuZGVmaW5lZCB8IFBhdGhUb2tlbik6IHBhcnQgaXMgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBwYXJ0ID09PSBcInN0cmluZ1wiO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaXNJbnN0YW5jZVRva2VuKHBhcnQ6IHVuZGVmaW5lZCB8IFBhdGhUb2tlbik6IHBhcnQgaXMgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBwYXJ0ID09PSBcInN0cmluZ1wiICYmIC9eXFxkKyQvaS50ZXN0KHBhcnQpO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgU2ltcGxlUGF0aFRva2VuID0gc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBQYXRoVG9rZW4gPSBTaW1wbGVQYXRoVG9rZW4gfCB0eXBlb2YgRWFjaFN5bWJvbCB8IHR5cGVvZiBDdXJyZW50U3ltYm9sO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNNb2RlbFBhdGgocGF0aDogQmluZGluZ1BhdGggfCBNb2RlbFBhdGgpOiBwYXRoIGlzIE1vZGVsUGF0aCB7XG4gICAgcmV0dXJuIHR5cGVvZiBwYXRoICE9PSBcInN0cmluZ1wiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFRvTGVnYWN5UGF0aChwYXRoOiBCaW5kaW5nUGF0aCB8IE1vZGVsUGF0aCk6IEJpbmRpbmdQYXRoIHtcbiAgICByZXR1cm4gaXNNb2RlbFBhdGgocGF0aCkgPyBwYXRoLnRvTGVnYWN5UGF0aCgpIDogcGF0aDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0Fic29sdXRNb2RlbFBhdGgocGF0aDogQmluZGluZ1BhdGggfCBBYnNvbHV0ZU1vZGVsUGF0aCk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICByZXR1cm4gaXNNb2RlbFBhdGgocGF0aCkgPyBwYXRoIDogQWJzb2x1dGVNb2RlbFBhdGguY3JlYXRlQWJzb2x1dGVGcm9tTWFzayhwYXRoLCBQYXRoVG9rZW5zLmVhY2gpO1xufVxuXG5leHBvcnQgY2xhc3MgQWJzb2x1dGVNb2RlbEZpZWxkUGF0aCB7XG4gICAgcHVibGljIHJlYWRvbmx5IHBhdGg6IEFic29sdXRlTW9kZWxQYXRoO1xuICAgIHB1YmxpYyByZWFkb25seSBmaWVsZDogVmlld01vZGVsRmllbGROYW1lIHwgXCIkZXJyb3JDb3VudFwiIHwgXCIkd2FybmluZ0NvdW50XCI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGF0aDogQWJzb2x1dGVNb2RlbFBhdGgsIGZpZWxkTmFtZTogVmlld01vZGVsRmllbGROYW1lIHwgXCIkZXJyb3JDb3VudFwiIHwgXCIkd2FybmluZ0NvdW50XCIpIHtcbiAgICAgICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgICAgICAgdGhpcy5maWVsZCA9IGZpZWxkTmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNFcXVhbHMoXG4gICAgICAgIG1vZGVsUGF0aDogQWJzb2x1dGVNb2RlbEZpZWxkUGF0aCxcbiAgICAgICAgZWFjaEN1cnJlbnRDb2xsaXNpb246IEVhY2hDdXJyZW50Q29sbGlzaW9uID0gRWFjaEN1cnJlbnRDb2xsaXNpb24uQXJlU2FtZVxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXRoLmlzRXF1YWxzKG1vZGVsUGF0aC5wYXRoLCBlYWNoQ3VycmVudENvbGxpc2lvbikgJiYgdGhpcy5maWVsZCA9PT0gbW9kZWxQYXRoLmZpZWxkO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRnJvbVN0cmluZyhwYXRoV2l0aEZpZWxkTmFtZTogc3RyaW5nKTogQWJzb2x1dGVNb2RlbEZpZWxkUGF0aCB7XG4gICAgICAgIGlmIChwYXRoV2l0aEZpZWxkTmFtZS5lbmRzV2l0aChcIi4kZXJyb3JDb3VudFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoKFxuICAgICAgICAgICAgICAgIEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlKHBhdGhXaXRoRmllbGROYW1lLnJlcGxhY2UoXCIuJGVycm9yQ291bnRcIiwgXCJcIikpLFxuICAgICAgICAgICAgICAgIFwiJGVycm9yQ291bnRcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aFdpdGhGaWVsZE5hbWUuZW5kc1dpdGgoXCIuJHdhcm5pbmdDb3VudFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoKFxuICAgICAgICAgICAgICAgIEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlKHBhdGhXaXRoRmllbGROYW1lLnJlcGxhY2UoXCIuJHdhcm5pbmdDb3VudFwiLCBcIlwiKSksXG4gICAgICAgICAgICAgICAgXCIkd2FybmluZ0NvdW50XCJcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoKEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlKHBhdGhXaXRoRmllbGROYW1lKSwgXCJ2YWx1ZVwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZUZyb21NYXNrKHBhdGhXaXRoRmllbGROYW1lOiBzdHJpbmcsIG11bHRpcGxpY2l0eVN5bWJvbDogUGF0aFRva2VuKTogQWJzb2x1dGVNb2RlbEZpZWxkUGF0aCB7XG4gICAgICAgIGlmIChwYXRoV2l0aEZpZWxkTmFtZS5lbmRzV2l0aChcIi4kZXJyb3JDb3VudFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoKFxuICAgICAgICAgICAgICAgIEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlRnJvbU1hc2soXG4gICAgICAgICAgICAgICAgICAgIHBhdGhXaXRoRmllbGROYW1lLnJlcGxhY2UoXCIuJGVycm9yQ291bnRcIiwgXCJcIiksXG4gICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2l0eVN5bWJvbFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgXCIkZXJyb3JDb3VudFwiXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoV2l0aEZpZWxkTmFtZS5lbmRzV2l0aChcIi4kd2FybmluZ0NvdW50XCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEFic29sdXRlTW9kZWxGaWVsZFBhdGgoXG4gICAgICAgICAgICAgICAgQWJzb2x1dGVNb2RlbFBhdGguY3JlYXRlQWJzb2x1dGVGcm9tTWFzayhcbiAgICAgICAgICAgICAgICAgICAgcGF0aFdpdGhGaWVsZE5hbWUucmVwbGFjZShcIi4kd2FybmluZ0NvdW50XCIsIFwiXCIpLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNpdHlTeW1ib2xcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIFwiJHdhcm5pbmdDb3VudFwiXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbEZpZWxkUGF0aChcbiAgICAgICAgICAgIEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlRnJvbU1hc2socGF0aFdpdGhGaWVsZE5hbWUsIG11bHRpcGxpY2l0eVN5bWJvbCksXG4gICAgICAgICAgICBcInZhbHVlXCJcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNb2RlbFBhdGggaW1wbGVtZW50cyBJRXF1YXRhYmxlPE1vZGVsUGF0aD4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9rZW5zOiByZWFkb25seSBQYXRoVG9rZW5bXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFic29sdXRlOiBib29sZWFuO1xuICAgIHByaXZhdGUgbGVnYWN5UGF0aDogdW5kZWZpbmVkIHwgc3RyaW5nO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHBhdGhQYXJ0czogcmVhZG9ubHkgUGF0aFRva2VuW10sIGFic29sdXRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudG9rZW5zID0gcGF0aFBhcnRzLmZpbHRlcih4ID0+IHggIT09IFwiXCIpO1xuICAgICAgICB0aGlzLmFic29sdXRlID0gYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBlbXB0eSgpOiBNb2RlbFBhdGgge1xuICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChbXSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYnVpbGRlcihmb3JjZUFic29sdXRlOiBib29sZWFuID0gZmFsc2UpOiBNb2RlbFBhdGhCdWlsZGVyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGhCdWlsZGVyKGZvcmNlQWJzb2x1dGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRnJvbVN0cmluZyhwYXRoOiBzdHJpbmcsIGFic29sdXRlOiBib29sZWFuIHwgXCJhdXRvXCIpOiBNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCBwYXJ0UGFydFN0cmluZ3MgPSBwYXRoLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgdGhpcy5lbnN1cmVQbGFpblBhdGhQYXJ0c0RvZXNOb3RDb250YWluTXVsdGlwbGljaXR5KHBhcnRQYXJ0U3RyaW5ncyk7XG4gICAgICAgIGlmIChhYnNvbHV0ZSA9PT0gXCJhdXRvXCIpIHtcbiAgICAgICAgICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzLnNsaWNlKDEpLCB0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzLCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFic29sdXRlICYmIHBhdGguc3RhcnRzV2l0aChcIi9cIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncy5zbGljZSgxKSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzLCBhYnNvbHV0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVGcm9tTWFzayhwYXRoOiBzdHJpbmcsIGFic29sdXRlOiBib29sZWFuIHwgXCJhdXRvXCIsIG11bHRpcGxpY2l0eVN5bWJvbDogUGF0aFRva2VuKTogTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcGFydFBhcnRTdHJpbmdzID0gcGF0aC5zcGxpdChcIi9cIikubWFwKHggPT4gKHggPT09IFwiKlwiID8gbXVsdGlwbGljaXR5U3ltYm9sIDogeCkpO1xuICAgICAgICBpZiAoYWJzb2x1dGUgPT09IFwiYXV0b1wiKSB7XG4gICAgICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncy5zbGljZSgxKSwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncywgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChhYnNvbHV0ZSAmJiBwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3Muc2xpY2UoMSksIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncywgYWJzb2x1dGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgam9pbiguLi5wYXJ0czogQXJyYXk8TW9kZWxQYXRoIHwgUGF0aFRva2VuIHwgUGF0aFRva2VuW10+KTogTW9kZWxQYXRoIHtcbiAgICAgICAgbGV0IGFic29sdXRlID0gZmFsc2U7XG4gICAgICAgIGxldCByZXN1bHRQYXJ0czogUGF0aFRva2VuW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBqb2luSXRlbSBvZiBwYXJ0cykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBqb2luSXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIHJlc3VsdFBhcnRzLnB1c2goam9pbkl0ZW0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChqb2luSXRlbSBpbnN0YW5jZW9mIE1vZGVsUGF0aCkge1xuICAgICAgICAgICAgICAgIGlmIChqb2luSXRlbS5pc0Fic29sdXRlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgYWJzb2x1dGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRQYXJ0cyA9IFsuLi5qb2luSXRlbS50b2tlbnNdO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFBhcnRzLnB1c2goLi4uam9pbkl0ZW0udG9rZW5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoam9pbkl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0UGFydHMucHVzaCguLi5qb2luSXRlbSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFBhdGhUb2tlbnMuaXNNdWx0aVRva2VuKGpvaW5JdGVtKSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFBhcnRzLnB1c2goam9pbkl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgocmVzdWx0UGFydHMsIGFic29sdXRlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc3RhdGljIGVuc3VyZVBsYWluUGF0aFBhcnRzRG9lc05vdENvbnRhaW5NdWx0aXBsaWNpdHkocGFydHM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIGlmIChwYXJ0cy5zb21lKHggPT4geCA9PT0gXCIqXCIpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXRoIG11c3Qgbm90IGNvbnRhaW4gKiBzeW1ib2xcIik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGF0aFBhcnRzKCk6IEl0ZXJhYmxlPFBhdGhUb2tlbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBhdGhQYXJ0c0FzQXJyYXkoKTogcmVhZG9ubHkgUGF0aFRva2VuW10ge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gICAgfVxuXG4gICAgcHVibGljICpnZXRTaW1wbGVUb2tlbnNTdHJpY3QoKTogSXRlcmFibGU8U2ltcGxlUGF0aFRva2VuPiB7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdGhpcy50b2tlbnMpIHtcbiAgICAgICAgICAgIGlmICghUGF0aFRva2Vucy5pc1NpbXBsZVRva2VuKHRva2VuKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhdGggbXVzdCBub3QgY29udGFpbiBzcGVjIHRva2Vuc1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHlpZWxkIHRva2VuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNpbXBsZVRva2Vuc0FzQXJyYXlTdHJpY3QoKTogcmVhZG9ubHkgU2ltcGxlUGF0aFRva2VuW10ge1xuICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRoaXMudG9rZW5zKSB7XG4gICAgICAgICAgICBpZiAoIVBhdGhUb2tlbnMuaXNTaW1wbGVUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXRoIG11c3Qgbm90IGNvbnRhaW4gc3BlYyB0b2tlbnNcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8g0J/RgNC+0LLQtdGA0LrQsCDQstGL0YjQtSDQs9Cw0YDQsNC10L3RgtC40YDRg9C10YIg0YfRgtC+INCx0YPQtNGD0YIg0YLQvtC70YzQutC+IFNpbXBsZVBhdGhUb2tlbi5cbiAgICAgICAgLy8g0JLRgdC1IG1hcCDQuCBmaWx0ZXIg0YPQsdGA0LDQvdGLINC00LvRjyDQv9GA0L7QuNC30LLQvtC00LjRgtC10LvRjNC90L7RgdGC0LhcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGpvaW5XaXRoKC4uLnBhdGg6IEFycmF5PE1vZGVsUGF0aCB8IFBhdGhUb2tlbj4pOiBNb2RlbFBhdGgge1xuICAgICAgICByZXR1cm4gTW9kZWxQYXRoLmpvaW4odGhpcywgLi4ucGF0aCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzUmVzb2x2ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRva2Vucy5ldmVyeShQYXRoVG9rZW5zLmlzU2ltcGxlVG9rZW4pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlQWxsKGluc3RhbmNlOiBzdHJpbmcpOiBNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCB0b2tlbnMgPSB0aGlzLnRva2Vucy5tYXAodG9rZW4gPT4ge1xuICAgICAgICAgICAgaWYgKFBhdGhUb2tlbnMuaXNTaW1wbGVUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgodG9rZW5zLCB0aGlzLmFic29sdXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNDb250YWluSXRlcmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnMuc29tZSh4ID0+IHggPT09IFBhdGhUb2tlbnMuZWFjaCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQ29udGFpbkN1cnJlbnRJdGVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRva2Vucy5zb21lKHggPT4geCA9PT0gUGF0aFRva2Vucy5jdXJyZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNBYnNvbHV0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLnRva2Vucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAodGhpcy5hYnNvbHV0ZSA/IFwiL1wiIDogXCJcIikgKyB0aGlzLnRva2Vucy5tYXAoeCA9PiB0aGlzLnBhdGhQYXJ0VG9TdHJpbmcoeCkpLmpvaW4oXCIvXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b0xlZ2FjeVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGVnYWN5UGF0aCA/PyAodGhpcy5sZWdhY3lQYXRoID0gdGhpcy50b2tlbnMubWFwKHggPT4gdGhpcy5wYXRoUGFydFRvU3RyaW5nKHgpKS5qb2luKFwiL1wiKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRXF1YWxzKFxuICAgICAgICBtb2RlbFBhdGg6IE1vZGVsUGF0aCxcbiAgICAgICAgZWFjaEN1cnJlbnRDb2xsaXNpb246IEVhY2hDdXJyZW50Q29sbGlzaW9uID0gRWFjaEN1cnJlbnRDb2xsaXNpb24uQXJlU2FtZVxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoZWFjaEN1cnJlbnRDb2xsaXNpb24gPT09IEVhY2hDdXJyZW50Q29sbGlzaW9uLkFyZVNhbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRvTGVnYWN5UGF0aCgpID09PSBtb2RlbFBhdGgudG9MZWdhY3lQYXRoKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuaXNBYnNvbHV0ZSgpID09PSBtb2RlbFBhdGguaXNBYnNvbHV0ZSgpICYmXG4gICAgICAgICAgICAgICAgSXRlcmF0b3IuZnJvbShJdGVyVXRpbHMuemlwKHRoaXMuZ2V0UGF0aFBhcnRzKCksIG1vZGVsUGF0aC5nZXRQYXRoUGFydHMoKSkpLmV2ZXJ5KFxuICAgICAgICAgICAgICAgICAgICAoW3QxLCB0Ml0pID0+IHQxID09PSB0MlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktGB0LXQs9C00LAg0YbQtdC70L7QtSDQv9C+0LvQvtC20LjRgtC10LvRjNC90L7QtSDQsdC10LfQt9C90LDQutC+0LLQvtC1IDMyLdCx0LjRgtC90L7QtSDRh9C40YHQu9C+XG4gICAgICovXG4gICAgcHVibGljIGdldEhhc2goZWFjaEN1cnJlbnRDb2xsaXNpb246IEVhY2hDdXJyZW50Q29sbGlzaW9uID0gRWFjaEN1cnJlbnRDb2xsaXNpb24uQXJlU2FtZSk6IG51bWJlciB7XG4gICAgICAgIGxldCBoYXNoID0gNTM4MTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiByZXZlcnNlQXJyYXkodGhpcy50b2tlbnMpKSB7XG4gICAgICAgICAgICBsZXQgY3VycmVudFN0cjogc3RyaW5nO1xuICAgICAgICAgICAgaWYgKFBhdGhUb2tlbnMuaXNTaW1wbGVUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50U3RyID0gdG9rZW47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChlYWNoQ3VycmVudENvbGxpc2lvbiA9PT0gRWFjaEN1cnJlbnRDb2xsaXNpb24uQXJlRGlmZmVyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTdHIgPSB0b2tlbiA9PT0gUGF0aFRva2Vucy5lYWNoID8gXCIqXCIgOiBcIiFcIjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RyID0gXCIqXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHN0cmluZ0luZGV4ID0gY3VycmVudFN0ci5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoc3RyaW5nSW5kZXgpIHtcbiAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxuICAgICAgICAgICAgICAgIGhhc2ggPSAoaGFzaCAqIDMzKSBeIGN1cnJlbnRTdHIuY2hhckNvZGVBdCgtLXN0cmluZ0luZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qXG4gICAgICAgICAgICB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxuICAgICAgICAgICAgSmF2YVNjcmlwdCBkb2VzIGJpdHdpc2Ugb3BlcmF0aW9ucyAobGlrZSBYT1IsIGFib3ZlKSBvbiAzMi1iaXQgc2lnbmVkXG4gICAgICAgICAgICBpbnRlZ2Vycy4gU2luY2Ugd2Ugd2FudCB0aGUgcmVzdWx0cyB0byBiZSBhbHdheXMgcG9zaXRpdmUsIGNvbnZlcnQgdGhlXG4gICAgICAgICAgICBzaWduZWQgaW50IHRvIGFuIHVuc2lnbmVkIGJ5IGRvaW5nIGFuIHVuc2lnbmVkIGJpdHNoaWZ0LlxuICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGhhc2ggPj4+IDA7XG4gICAgfVxuXG4gICAgcHVibGljIGlzSW5jbHVkZXMobW9kZWxQYXRoOiBNb2RlbFBhdGgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5zLmxlbmd0aCAhPT0gbW9kZWxQYXRoLnRva2Vucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBsZWZ0UGFydCA9IHRoaXMudG9rZW5zW2ldO1xuICAgICAgICAgICAgY29uc3QgcmlnaHRQYXJ0ID0gbW9kZWxQYXRoLnRva2Vuc1tpXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbGVmdFBhcnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJpZ2h0UGFydCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBpZiAobGVmdFBhcnQgIT09IHJpZ2h0UGFydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxlZnRQYXJ0ID09PSBQYXRoVG9rZW5zLmN1cnJlbnQgfHwgbGVmdFBhcnQgPT09IFBhdGhUb2tlbnMuZWFjaCkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmlnaHRQYXJ0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNGaW5pdGUoTnVtYmVyKHJpZ2h0UGFydCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJpZ2h0UGFydCAhPT0gUGF0aFRva2Vucy5jdXJyZW50ICYmIHJpZ2h0UGFydCAhPT0gUGF0aFRva2Vucy5lYWNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJdGVyYXRpb25SYW5rKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBjb3VudChJdGVyYXRvci5mcm9tKHRoaXMudG9rZW5zKS5maWx0ZXIoeCA9PiB4ID09PSBQYXRoVG9rZW5zLmVhY2gpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9rZW5zLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWF0Y2hGb3IobW9kZWxQYXRoOiBNb2RlbFBhdGgpOiBQYXRoTWF0Y2hpbmcge1xuICAgICAgICBpZiAoIXRoaXMuaXNBYnNvbHV0ZSgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBtYXRjaCBub24gYWJzb2x1dGUgcGF0aCAnJHt0aGlzLnRvU3RyaW5nKCl9J2ApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbW9kZWxQYXRoLmlzQWJzb2x1dGUoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgbWF0Y2ggbm9uIGFic29sdXRlIHBhdGggJyR7bW9kZWxQYXRoLnRvU3RyaW5nKCl9J2ApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQYXRoTWF0Y2hlci5tYXRjaCh0aGlzLnRva2VucywgbW9kZWxQYXRoLnRva2Vucyk7XG4gICAgfVxuXG4gICAgcHVibGljICpzcGxpdEJ5TXVsdGlwbGljaXR5KCk6IEl0ZXJhYmxlPE1vZGVsUGF0aCB8IHR5cGVvZiBFYWNoU3ltYm9sIHwgdHlwZW9mIEN1cnJlbnRTeW1ib2w+IHtcbiAgICAgICAgbGV0IGxhc3RTaW1wbGVQYXJ0cyA9IE1vZGVsUGF0aC5idWlsZGVyKHRoaXMuaXNBYnNvbHV0ZSgpKTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiB0aGlzLnRva2Vucykge1xuICAgICAgICAgICAgaWYgKFBhdGhUb2tlbnMuaXNTaW1wbGVUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICBsYXN0U2ltcGxlUGFydHMuYXBwZW5kKHRva2VuKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCFsYXN0U2ltcGxlUGFydHMuZW1wdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgeWllbGQgbGFzdFNpbXBsZVBhcnRzLnRvUGF0aCgpO1xuICAgICAgICAgICAgICAgICAgICBsYXN0U2ltcGxlUGFydHMgPSBNb2RlbFBhdGguYnVpbGRlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB5aWVsZCB0b2tlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWxhc3RTaW1wbGVQYXJ0cy5lbXB0eSkge1xuICAgICAgICAgICAgeWllbGQgbGFzdFNpbXBsZVBhcnRzLnRvUGF0aCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5vcm1hbGl6ZSgpOiBNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCByZXN1bHRUb2tlbnM6IFBhdGhUb2tlbltdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcGF0aFBhcnQgb2YgdGhpcy50b2tlbnMpIHtcbiAgICAgICAgICAgIGlmIChwYXRoUGFydCA9PT0gXCIuLlwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHRUb2tlbnMucG9wKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNBYnNvbHV0ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhdGggaXMgaW52YWxpZCAnJHt0aGlzLnRvU3RyaW5nKCl9J2ApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0VG9rZW5zLnB1c2goXCIuLlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhdGhQYXJ0ID09PSBcIi5cIikge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0VG9rZW5zLnB1c2gocGF0aFBhcnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHJlc3VsdFRva2VucywgdGhpcy5pc0Fic29sdXRlKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBzdW1tYXJ5INCh0L/QtdGG0LjRhNC40LrQsNGC0L7RgNGLINC80L3QvtC20LXRgdGC0LLQtdC90L3QvtGB0YLQuCBFYWNoINC30LDQvNC10L3Rj9C10YIg0L3QsCBDdXJyZW50XG4gICAgICovXG4gICAgcHVibGljIHRvQ3VycmVudEl0ZXJhdGlvbigpOiBNb2RlbFBhdGgge1xuICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChcbiAgICAgICAgICAgIHRoaXMudG9rZW5zLm1hcCh4ID0+ICh4ID09PSBQYXRoVG9rZW5zLmVhY2ggPyBQYXRoVG9rZW5zLmN1cnJlbnQgOiB4KSksXG4gICAgICAgICAgICB0aGlzLmlzQWJzb2x1dGUoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b0Fic29sdXRlKCk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICAgICAgaWYgKCF0aGlzLmFic29sdXRlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhdGggJyR7dGhpcy50b0xlZ2FjeVBhdGgoKX0gaXMgbm90IGFic29sdXRlJ2ApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbFBhdGgodGhpcy50b2tlbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyAqZ2V0QWxsUGFyZW50UGF0aHMoKTogSXRlcmFibGU8TW9kZWxQYXRoPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IE1vZGVsUGF0aC5idWlsZGVyKHRoaXMuaXNBYnNvbHV0ZSgpKTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiBJdGVyVXRpbHMuc2tpcExhc3QodGhpcy5nZXRQYXRoUGFydHMoKSwgMSkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodG9rZW4pO1xuICAgICAgICAgICAgeWllbGQgcmVzdWx0LnRvUGF0aCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHRyaW1MYXN0U3RhcklmTGFzdFRva2VuKCk6IE1vZGVsUGF0aCB7XG4gICAgICAgIGNvbnN0IGxhc3RJdGVtID0gSXRlclV0aWxzLmxhc3QodGhpcy50b2tlbnMpO1xuICAgICAgICBpZiAobGFzdEl0ZW0gIT0gdW5kZWZpbmVkICYmIFBhdGhUb2tlbnMuaXNNdWx0aVRva2VuKGxhc3RJdGVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgodGhpcy50b2tlbnMuc2xpY2UoMCwgLTEpLCB0aGlzLmFic29sdXRlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFyZW50UGF0aCgpOiBNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBNb2RlbFBhdGguYnVpbGRlcih0aGlzLmlzQWJzb2x1dGUoKSk7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgSXRlclV0aWxzLnNraXBMYXN0KHRoaXMuZ2V0UGF0aFBhcnRzKCksIDEpKSB7XG4gICAgICAgICAgICByZXN1bHQuYXBwZW5kKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0LnRvQWJzb2x1dGVQYXRoKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFwcGx5SW5zdGFuY2VzRGlydHkoaW5zdGFuY2VzOiBTaW1wbGVQYXRoVG9rZW5bXSk6IE1vZGVsUGF0aCB7XG4gICAgICAgIGlmICh0aGlzLmlzUmVzb2x2ZWQoKSB8fCBpbnN0YW5jZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICBsZXQgaW5zdGFuY2VDb3VudGVyID0gMDtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gTW9kZWxQYXRoLmJ1aWxkZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiB0aGlzLmdldFBhdGhQYXJ0cygpKSB7XG4gICAgICAgICAgICBpZiAoUGF0aFRva2Vucy5pc011bHRpVG9rZW4odG9rZW4pICYmIGluc3RhbmNlQ291bnRlciA8IGluc3RhbmNlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGluc3RhbmNlc1tpbnN0YW5jZUNvdW50ZXJdID8/IHJlamVjdCgpKTtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZUNvdW50ZXIrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdC50b0Fic29sdXRlUGF0aCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGF0aFBhcnRUb1N0cmluZyhwYXRoUGFydDogUGF0aFRva2VuKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHR5cGVvZiBwYXRoUGFydCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHBhdGhQYXJ0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoUGFydCA9PT0gUGF0aFRva2Vucy5lYWNoKSB7XG4gICAgICAgICAgICByZXR1cm4gXCIqXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGhQYXJ0ID09PSBQYXRoVG9rZW5zLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBcIipcIjtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcGF0aCBwYXJ0IHNwZWNpZmllZDogJHtlbnN1cmVBbmRHZXRTdHJpbmcocGF0aFBhcnQpfWApO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFic29sdXRlTW9kZWxQYXRoIGV4dGVuZHMgTW9kZWxQYXRoIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGF0aFBhcnRzOiByZWFkb25seSBQYXRoVG9rZW5bXSkge1xuICAgICAgICBzdXBlcihwYXRoUGFydHMsIHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlQWJzb2x1dGVGcm9tTWFzayhwYXRoOiBzdHJpbmcsIG11bHRpcGxpY2l0eVN5bWJvbDogUGF0aFRva2VuKTogTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcGFydFBhcnRTdHJpbmdzID0gcGF0aC5zcGxpdChcIi9cIikubWFwKHggPT4gKHggPT09IFwiKlwiID8gbXVsdGlwbGljaXR5U3ltYm9sIDogeCkpO1xuICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3Muc2xpY2UoMSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZUFic29sdXRlKHBhdGg6IHN0cmluZyk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcGFydFBhcnRTdHJpbmdzID0gcGF0aC5zcGxpdChcIi9cIik7XG4gICAgICAgIHRoaXMuZW5zdXJlUGxhaW5QYXRoUGFydHNEb2VzTm90Q29udGFpbk11bHRpcGxpY2l0eShwYXJ0UGFydFN0cmluZ3MpO1xuICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3Muc2xpY2UoMSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgam9pbldpdGgocGF0aDogTW9kZWxQYXRoIHwgUGF0aFRva2VuKTogQWJzb2x1dGVNb2RlbFBhdGgge1xuICAgICAgICByZXR1cm4gc3VwZXIuam9pbldpdGgocGF0aCkudG9BYnNvbHV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQYXJlbnRQYXRoKCk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gTW9kZWxQYXRoLmJ1aWxkZXIodHJ1ZSk7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgSXRlclV0aWxzLnNraXBMYXN0KHRoaXMuZ2V0UGF0aFBhcnRzKCksIDEpKSB7XG4gICAgICAgICAgICByZXN1bHQuYXBwZW5kKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0LnRvQWJzb2x1dGVQYXRoKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFwcGx5SW5zdGFuY2VzRGlydHkoaW5zdGFuY2VzOiBTaW1wbGVQYXRoVG9rZW5bXSk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmFwcGx5SW5zdGFuY2VzRGlydHkoaW5zdGFuY2VzKS50b0Fic29sdXRlKCk7XG4gICAgfVxufVxuIl19
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.useNidusClient = useNidusClient;
|
|
7
|
-
exports.useContextualNidusClient = useContextualNidusClient;
|
|
8
6
|
exports.NidusClientProvider = NidusClientProvider;
|
|
7
|
+
exports.useContextualNidusClient = useContextualNidusClient;
|
|
8
|
+
exports.useNidusClient = useNidusClient;
|
|
9
9
|
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
|
|
@@ -17,9 +17,9 @@ var _ContextualNidusClient = require("./ContextualNidusClient/ContextualNidusCli
|
|
|
17
17
|
|
|
18
18
|
var _react2 = require("@emotion/react");
|
|
19
19
|
|
|
20
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
20
|
+
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); }
|
|
21
21
|
|
|
22
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
|
|
22
|
+
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; }
|
|
23
23
|
|
|
24
24
|
const NidusClientContext = /*#__PURE__*/React.createContext(undefined);
|
|
25
25
|
|
|
@@ -15,9 +15,9 @@ var _HttpClient = require("../HttpClient/HttpClient");
|
|
|
15
15
|
|
|
16
16
|
var _INidusClient = require("./INidusClient");
|
|
17
17
|
|
|
18
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
18
|
+
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); }
|
|
19
19
|
|
|
20
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
|
|
20
|
+
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; }
|
|
21
21
|
|
|
22
22
|
class NidusClientImpl {
|
|
23
23
|
constructor(fetchImpl, baseUrl, authentication) {
|
|
@@ -3,26 +3,26 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
exports.ensureNotNullOrUndefined = ensureNotNullOrUndefined;
|
|
8
|
-
exports.noop = noop;
|
|
9
|
-
exports.reject = reject;
|
|
10
|
-
exports.isLengthGreaterThenOrEqual = isLengthGreaterThenOrEqual;
|
|
11
|
-
exports.minLengthOrUndefined = minLengthOrUndefined;
|
|
6
|
+
exports.arrayHasAtLeastOneItem = arrayHasAtLeastOneItem;
|
|
12
7
|
exports.arrayHasLength = arrayHasLength;
|
|
13
8
|
exports.arrayIsNotEmpty = arrayIsNotEmpty;
|
|
14
|
-
exports.
|
|
15
|
-
exports.
|
|
9
|
+
exports.assertIs = assertIs;
|
|
10
|
+
exports.ensureAndGetString = ensureAndGetString;
|
|
16
11
|
exports.ensureArrayHasLength = ensureArrayHasLength;
|
|
12
|
+
exports.ensureArrayIsNotEmpty = ensureArrayIsNotEmpty;
|
|
17
13
|
exports.ensureArrayLengthGreaterThenOrEqual = ensureArrayLengthGreaterThenOrEqual;
|
|
18
14
|
exports.ensureNever = ensureNever;
|
|
19
|
-
exports.
|
|
20
|
-
exports.
|
|
21
|
-
exports.isNullOrEmpty = isNullOrEmpty;
|
|
15
|
+
exports.ensureNotNullOrUndefined = ensureNotNullOrUndefined;
|
|
16
|
+
exports.isLengthGreaterThenOrEqual = isLengthGreaterThenOrEqual;
|
|
22
17
|
exports.isNotNullOrEmpty = isNotNullOrEmpty;
|
|
18
|
+
exports.isNotNullOrUndefined = isNotNullOrUndefined;
|
|
19
|
+
exports.isNullOrEmpty = isNullOrEmpty;
|
|
23
20
|
exports.isNullOrWhiteSpace = isNullOrWhiteSpace;
|
|
21
|
+
exports.minLengthOrUndefined = minLengthOrUndefined;
|
|
22
|
+
exports.noop = noop;
|
|
23
|
+
exports.reject = reject;
|
|
24
|
+
exports.runAsyncAction = runAsyncAction;
|
|
24
25
|
exports.trimLastSlash = trimLastSlash;
|
|
25
|
-
exports.assertIs = assertIs;
|
|
26
26
|
|
|
27
27
|
/***
|
|
28
28
|
* Строготипизированная замена для Boolean(...)
|
|
@@ -7,9 +7,9 @@ exports.useAsyncEffect = useAsyncEffect;
|
|
|
7
7
|
|
|
8
8
|
var React = _interopRequireWildcard(require("react"));
|
|
9
9
|
|
|
10
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
10
|
+
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); }
|
|
11
11
|
|
|
12
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
|
|
12
|
+
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; }
|
|
13
13
|
|
|
14
14
|
function useAsyncEffect(action, deps) {
|
|
15
15
|
React.useEffect(() => {
|
|
@@ -70,9 +70,9 @@ class BuildClientJsTask extends _ChainableValueProducer.ObservableValueProducerB
|
|
|
70
70
|
const workingDirectory = _path.default.dirname(webpackConfigPath);
|
|
71
71
|
|
|
72
72
|
if (await (0, _IsWebpack.isWebpack5)(workingDirectory)) {
|
|
73
|
-
await _ProcessUtils.ProcessUtils.execShellCommand("
|
|
73
|
+
await _ProcessUtils.ProcessUtils.execShellCommand("yarn", ["client:build", `--env`, `resourcesPath=${this.resourcesDirectory}`], workingDirectory, this.logger);
|
|
74
74
|
} else {
|
|
75
|
-
await _ProcessUtils.ProcessUtils.execShellCommand("
|
|
75
|
+
await _ProcessUtils.ProcessUtils.execShellCommand("yarn", ["client:build", `--env.resourcesPath=${this.resourcesDirectory}`], workingDirectory, this.logger);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
action.complete();
|
|
@@ -81,7 +81,7 @@ class BuildClientJsTask extends _ChainableValueProducer.ObservableValueProducerB
|
|
|
81
81
|
async runWatchProcess(webpackConfigPath) {
|
|
82
82
|
const workingDirectory = _path.default.dirname(webpackConfigPath);
|
|
83
83
|
|
|
84
|
-
const watchProcess = (await (0, _IsWebpack.isWebpack5)(workingDirectory)) ? _ProcessUtils.ProcessUtils.createShellProcess("
|
|
84
|
+
const watchProcess = (await (0, _IsWebpack.isWebpack5)(workingDirectory)) ? _ProcessUtils.ProcessUtils.createShellProcess("yarn", ["client:build", `--env`, `resourcesPath=${this.resourcesDirectory}`, "--watch"], workingDirectory) : _ProcessUtils.ProcessUtils.createShellProcess("yarn", ["client:build", `--env.resourcesPath=${this.resourcesDirectory}`, "--watch"], workingDirectory);
|
|
85
85
|
watchProcess.onStdOut.subscribe(output => this.logger.verbose(output));
|
|
86
86
|
this.logger.log("Begin watch");
|
|
87
87
|
watchProcess.start();
|
|
@@ -91,4 +91,4 @@ class BuildClientJsTask extends _ChainableValueProducer.ObservableValueProducerB
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
exports.BuildClientJsTask = BuildClientJsTask;
|
|
94
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9CdWlsZFRhc2tzL0NsaWVudEpTL0J1aWxkQ2xpZW50SnNUYXNrLnRzIl0sIm5hbWVzIjpbIkJ1aWxkQ2xpZW50SnNUYXNrIiwiT2JzZXJ2YWJsZVZhbHVlUHJvZHVjZXJCYXNlIiwiY29uc3RydWN0b3IiLCJwYXRoVG9XZWJwYWNrUHJvdmlkZXIiLCJyZXNvdXJjZXNEaXJlY3RvcnkiLCJsb2dnZXIiLCJ1c2VXYXRjaCIsImJ1aWxkUHJvY2VzcyIsIndpdGhQcmVmaXgiLCJiZWdpbkxpc3RlbmluZyIsImJlZ2luT2JzZXJ2ZSIsInN0b3BMaXN0ZW5pbmciLCJlbmRPYnNlcnZlIiwidW5kZWZpbmVkIiwia2lsbCIsImVycm9yIiwiZ2V0Q3VycmVudFZhbHVlIiwid2VicGFja0NvbmZpZ0ZpbGUiLCJjdXJyZW50VmFsdWUiLCJydW5XYXRjaFByb2Nlc3MiLCJidWlsZEVuZ2luZUZyb21Tb3VyY2VzIiwid2VicGFja0NvbmZpZ1BhdGgiLCJhY3Rpb24iLCJ3b3JraW5nRGlyZWN0b3J5IiwicGF0aCIsImRpcm5hbWUiLCJQcm9jZXNzVXRpbHMiLCJleGVjU2hlbGxDb21tYW5kIiwiY29tcGxldGUiLCJ3YXRjaFByb2Nlc3MiLCJjcmVhdGVTaGVsbFByb2Nlc3MiLCJvblN0ZE91dCIsInN1YnNjcmliZSIsIm91dHB1dCIsInZlcmJvc2UiLCJsb2ciLCJzdGFydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUdBOzs7O0FBRU8sTUFBTUEsaUJBQU4sU0FBZ0NDLG1EQUFoQyxDQUFvRTtBQU9oRUMsRUFBQUEsV0FBVyxDQUNkQyxxQkFEYyxFQUVkQyxrQkFGYyxFQUdkQyxNQUFlLEdBQUcsOEJBSEosRUFJaEI7QUFDRTtBQURGLFNBVmVGLHFCQVVmO0FBQUEsU0FUTUcsUUFTTixHQVRpQixLQVNqQjtBQUFBLFNBUmVGLGtCQVFmO0FBQUEsU0FQTUcsWUFPTjtBQUFBLFNBTmVGLE1B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SzVCLE1BQUwsQ0FBWThCLEdBQVosQ0FBZ0IsYUFBaEI7QUFDQU4sSUFBQUEsWUFBWSxDQUFDTyxLQUFiO0FBQ0EsV0FBT1AsWUFBUDtBQUNIOztBQXJGc0UiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBidWlsZEFjdGlvbkJlZ2luLCBJTG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9JTG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuaW1wb3J0IHsgSVZhbHVlUHJvZHVjZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvQnVpbGRUYXNrXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlVmFsdWVQcm9kdWNlckJhc2UgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvQ2hhaW5hYmxlVmFsdWVQcm9kdWNlclwiO1xuaW1wb3J0IHsgUHJvY2Vzc1V0aWxzIH0gZnJvbSBcIi4uL1Byb2Nlc3NVdGlscy9Qcm9jZXNzVXRpbHNcIjtcbmltcG9ydCB7IFNoZWxsUHJvY2Vzc0hhbmRsZSB9IGZyb20gXCIuLi9Qcm9jZXNzVXRpbHMvU2hlbGxQcm9jZXNzSGFuZGxlXCI7XG5cbmltcG9ydCB7IGlzV2VicGFjazUgfSBmcm9tIFwiLi9Jc1dlYnBhY2s1XCI7XG5cbmV4cG9ydCBjbGFzcyBCdWlsZENsaWVudEpzVGFzayBleHRlbmRzIE9ic2VydmFibGVWYWx1ZVByb2R1Y2VyQmFzZTxzdHJpbmc+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhdGhUb1dlYnBhY2tQcm92aWRlcjogSVZhbHVlUHJvZHVjZXI8c3RyaW5nPjtcbiAgICBwcml2YXRlIHVzZVdhdGNoID0gZmFsc2U7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZztcbiAgICBwcml2YXRlIGJ1aWxkUHJvY2Vzcz86IFNoZWxsUHJvY2Vzc0hhbmRsZTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogSUxvZ2dlcjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcGF0aFRvV2VicGFja1Byb3ZpZGVyOiBJVmFsdWVQcm9kdWNlcjxzdHJpbmc+LFxuICAgICAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICAgICAgbG9nZ2VyOiBJTG9nZ2VyID0gZ2V0TG9nZ2VyKClcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5wYXRoVG9XZWJwYWNrUHJvdmlkZXIgPSBwYXRoVG9XZWJwYWNrUHJvdmlkZXI7XG4gICAgICAgIHRoaXMucmVzb3VyY2VzRGlyZWN0b3J5ID0gcmVzb3VyY2VzRGlyZWN0b3J5O1xuICAgICAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlci53aXRoUHJlZml4KFwiQ0xJRU5ULUpTXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBiZWdpbkxpc3RlbmluZygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wYXRoVG9XZWJwYWNrUHJvdmlkZXIuYmVnaW5PYnNlcnZlKCk7XG4gICAgICAgIHRoaXMudXNlV2F0Y2ggPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzdG9wTGlzdGVuaW5nKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnVzZVdhdGNoID0gZmFsc2U7XG4gICAgICAgIGF3YWl0IHRoaXMucGF0aFRvV2VicGFja1Byb3ZpZGVyLmVuZE9ic2VydmUoKTtcbiAgICAgICAgaWYgKHRoaXMuYnVpbGRQcm9jZXNzICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBidWlsZFByb2Nlc3MgPSB0aGlzLmJ1aWxkUHJvY2VzcztcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkUHJvY2VzcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBhd2FpdCBidWlsZFByb2Nlc3Mua2lsbCgpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihgRmFpbGVkIHRvIHN0b3AgcHJvY2VzczogJHtlcnJvcn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRDdXJyZW50VmFsdWUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgY29uc3Qgd2VicGFja0NvbmZpZ0ZpbGUgPSBhd2FpdCB0aGlzLnBhdGhUb1dlYnBhY2tQcm92aWRlci5jdXJyZW50VmFsdWU7XG4gICAgICAgIGlmICh0aGlzLnVzZVdhdGNoKSB7XG4gICAgICAgICAgICB0aGlzLmJ1aWxkUHJvY2VzcyA9IGF3YWl0IHRoaXMucnVuV2F0Y2hQcm9jZXNzKHdlYnBhY2tDb25maWdGaWxlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuYnVpbGRFbmdpbmVGcm9tU291cmNlcyh3ZWJwYWNrQ29uZmlnRmlsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHdlYnBhY2tDb25maWdGaWxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgYnVpbGRFbmdpbmVGcm9tU291cmNlcyh3ZWJwYWNrQ29uZmlnUGF0aDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IGJ1aWxkQWN0aW9uQmVnaW4odGhpcy5sb2dnZXIsIFwiQnVpbGQgY2xpZW50LmpzXCIpO1xuICAgICAgICBjb25zdCB3b3JraW5nRGlyZWN0b3J5ID0gcGF0aC5kaXJuYW1lKHdlYnBhY2tDb25maWdQYXRoKTtcbiAgICAgICAgaWYgKGF3YWl0IGlzV2VicGFjazUod29ya2luZ0RpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIGF3YWl0IFByb2Nlc3NVdGlscy5leGVjU2hlbGxDb21tYW5kKFxuICAgICAgICAgICAgICAgIFwieWFyblwiLFxuICAgICAgICAgICAgICAgIFtcImNsaWVudDpidWlsZFwiLCBgLS1lbnZgLCBgcmVzb3VyY2VzUGF0aD0ke3RoaXMucmVzb3VyY2VzRGlyZWN0b3J5fWBdLFxuICAgICAgICAgICAgICAgIHdvcmtpbmdEaXJlY3RvcnksXG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZXJcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBQcm9jZXNzVXRpbHMuZXhlY1NoZWxsQ29tbWFuZChcbiAgICAgICAgICAgICAgICBcInlhcm5cIixcbiAgICAgICAgICAgICAgICBbXCJjbGllbnQ6YnVpbGRcIiwgYC0tZW52LnJlc291cmNlc1BhdGg9JHt0aGlzLnJlc291cmNlc0RpcmVjdG9yeX1gXSxcbiAgICAgICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5LFxuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGFjdGlvbi5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgcnVuV2F0Y2hQcm9jZXNzKHdlYnBhY2tDb25maWdQYXRoOiBzdHJpbmcpOiBQcm9taXNlPFNoZWxsUHJvY2Vzc0hhbmRsZT4ge1xuICAgICAgICBjb25zdCB3b3JraW5nRGlyZWN0b3J5ID0gcGF0aC5kaXJuYW1lKHdlYnBhY2tDb25maWdQYXRoKTtcbiAgICAgICAgY29uc3Qgd2F0Y2hQcm9jZXNzID0gKGF3YWl0IGlzV2VicGFjazUod29ya2luZ0RpcmVjdG9yeSkpXG4gICAgICAgICAgICA/IFByb2Nlc3NVdGlscy5jcmVhdGVTaGVsbFByb2Nlc3MoXG4gICAgICAgICAgICAgICAgICBcInlhcm5cIixcbiAgICAgICAgICAgICAgICAgIFtcImNsaWVudDpidWlsZFwiLCBgLS1lbnZgLCBgcmVzb3VyY2VzUGF0aD0ke3RoaXMucmVzb3VyY2VzRGlyZWN0b3J5fWAsIFwiLS13YXRjaFwiXSxcbiAgICAgICAgICAgICAgICAgIHdvcmtpbmdEaXJlY3RvcnlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBQcm9jZXNzVXRpbHMuY3JlYXRlU2hlbGxQcm9jZXNzKFxuICAgICAgICAgICAgICAgICAgXCJ5YXJuXCIsXG4gICAgICAgICAgICAgICAgICBbXCJjbGllbnQ6YnVpbGRcIiwgYC0tZW52LnJlc291cmNlc1BhdGg9JHt0aGlzLnJlc291cmNlc0RpcmVjdG9yeX1gLCBcIi0td2F0Y2hcIl0sXG4gICAgICAgICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5XG4gICAgICAgICAgICAgICk7XG4gICAgICAgIHdhdGNoUHJvY2Vzcy5vblN0ZE91dC5zdWJzY3JpYmUob3V0cHV0ID0+IHRoaXMubG9nZ2VyLnZlcmJvc2Uob3V0cHV0KSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZyhcIkJlZ2luIHdhdGNoXCIpO1xuICAgICAgICB3YXRjaFByb2Nlc3Muc3RhcnQoKTtcbiAgICAgICAgcmV0dXJuIHdhdGNoUHJvY2VzcztcbiAgICB9XG59XG4iXX0=
|
|
@@ -9,9 +9,9 @@ var path = _interopRequireWildcard(require("path"));
|
|
|
9
9
|
|
|
10
10
|
var _fsExtra = require("fs-extra");
|
|
11
11
|
|
|
12
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
12
|
+
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); }
|
|
13
13
|
|
|
14
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
|
|
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
15
|
|
|
16
16
|
async function isWebpack5(engineSourcesDir) {
|
|
17
17
|
const packageJson = JSON.parse(await (0, _fsExtra.readFile)(path.join(engineSourcesDir, "package.json"), "utf8")); // tslint:disable-next-line no-unsafe-any
|
|
@@ -21,9 +21,9 @@ var _TypingUtils = require("../../../../Common/TypingUtils");
|
|
|
21
21
|
|
|
22
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
23
|
|
|
24
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
24
|
+
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); }
|
|
25
25
|
|
|
26
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
|
|
26
|
+
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; }
|
|
27
27
|
|
|
28
28
|
class AcquirePublishedEngineTask extends _ChainableValueProducer.ObservableValueProducerBase {
|
|
29
29
|
constructor(version, candyModulesDirectory, useVersionFromCache, logger = (0, _StaticLogger.getLogger)()) {
|
|
@@ -13,8 +13,6 @@ var _StaticLogger = require("../../Commons/Logging/StaticLogger");
|
|
|
13
13
|
|
|
14
14
|
var _ChainableValueProducer = require("../../Commons/TasksCore/ChainableValueProducer");
|
|
15
15
|
|
|
16
|
-
var _IsWebpack = require("../ClientJS/IsWebpack5");
|
|
17
|
-
|
|
18
16
|
var _ProcessUtils = require("../ProcessUtils/ProcessUtils");
|
|
19
17
|
|
|
20
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -71,8 +69,8 @@ class BuildLocalEngineTask extends _ChainableValueProducer.ObservableValueProduc
|
|
|
71
69
|
|
|
72
70
|
const workingDirectory = _path.default.dirname(webpackConfigPath);
|
|
73
71
|
|
|
74
|
-
const
|
|
75
|
-
|
|
72
|
+
const buildProcess = _ProcessUtils.ProcessUtils.createShellProcess(`yarn`, ["runtime:build", `--env`, `resourcesPath=${this.resourcesDirectory}`, ...this.getBuildOptions()], workingDirectory);
|
|
73
|
+
|
|
76
74
|
buildProcess.onStdOut.subscribe(data => this.logger.log(data.trimRight()));
|
|
77
75
|
buildProcess.start();
|
|
78
76
|
const code = await buildProcess.waitForExit();
|
|
@@ -84,9 +82,9 @@ class BuildLocalEngineTask extends _ChainableValueProducer.ObservableValueProduc
|
|
|
84
82
|
action.complete();
|
|
85
83
|
}
|
|
86
84
|
|
|
87
|
-
getBuildOptions(
|
|
85
|
+
getBuildOptions() {
|
|
88
86
|
if (this.buildDebugOnly) {
|
|
89
|
-
return
|
|
87
|
+
return ["--env", "development=true", "--env", "testing=false", "--env", "production=false"];
|
|
90
88
|
}
|
|
91
89
|
|
|
92
90
|
return [];
|
|
@@ -95,8 +93,8 @@ class BuildLocalEngineTask extends _ChainableValueProducer.ObservableValueProduc
|
|
|
95
93
|
async runWatchProcess(webpackConfigPath) {
|
|
96
94
|
const workingDirectory = _path.default.dirname(webpackConfigPath);
|
|
97
95
|
|
|
98
|
-
const
|
|
99
|
-
|
|
96
|
+
const result = _ProcessUtils.ProcessUtils.createShellProcess("yarn", ["runtime:build", "--watch", `--env`, `resourcesPath=${this.resourcesDirectory}`, ...this.getBuildOptions()], workingDirectory);
|
|
97
|
+
|
|
100
98
|
result.onStdOut.subscribe(data => this.logger.log(data.trimRight()));
|
|
101
99
|
this.logger.log("Begin watch");
|
|
102
100
|
result.start();
|
|
@@ -106,4 +104,4 @@ class BuildLocalEngineTask extends _ChainableValueProducer.ObservableValueProduc
|
|
|
106
104
|
}
|
|
107
105
|
|
|
108
106
|
exports.BuildLocalEngineTask = BuildLocalEngineTask;
|
|
109
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9CdWlsZFRhc2tzL0VuZ2luZS9CdWlsZExvY2FsRW5naW5lVGFzay50cyJdLCJuYW1lcyI6WyJCdWlsZExvY2FsRW5naW5lVGFzayIsIk9ic2VydmFibGVWYWx1ZVByb2R1Y2VyQmFzZSIsImNvbnN0cnVjdG9yIiwicGF0aFRvV2VicGFja1Byb3ZpZGVyIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiYnVpbGREZWJ1Z09ubHkiLCJsb2dnZXIiLCJ1c2VXYXRjaCIsImJ1aWxkUHJvY2VzcyIsIndpdGhQcmVmaXgiLCJiZWdpbkxpc3RlbmluZyIsImJlZ2luT2JzZXJ2ZSIsInN0b3BMaXN0ZW5pbmciLCJlbmRPYnNlcnZlIiwidW5kZWZpbmVkIiwia2lsbCIsImVycm9yIiwiZ2V0Q3VycmVudFZhbHVlIiwid2VicGFja0NvbmZpZ0ZpbGUiLCJjdXJyZW50VmFsdWUiLCJydW5XYXRjaFByb2Nlc3MiLCJidWlsZEVuZ2luZUZyb21Tb3VyY2VzIiwid2VicGFja0NvbmZpZ1BhdGgiLCJhY3Rpb24iLCJ3b3JraW5nRGlyZWN0b3J5IiwicGF0aCIsImRpcm5hbWUiLCJ3ZWJvYWNrNSIsIlByb2Nlc3NVdGlscyIsImNyZWF0ZVNoZWxsUHJvY2VzcyIsImdldEJ1aWxkT3B0aW9ucyIsIm9uU3RkT3V0Iiwic3Vic2NyaWJlIiwiZGF0YSIsImxvZyIsInRyaW1SaWdodCIsInN0YXJ0IiwiY29kZSIsIndhaXRGb3JFeGl0IiwiRXJyb3IiLCJjb21wbGV0ZSIsIndlYnBhY2s1IiwicmVzdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7Ozs7QUFHTyxNQUFNQSxvQkFBTixTQUFtQ0MsbURBQW5DLENBQXVFO0FBUW5FQyxFQUFBQSxXQUFXLENBQ2RDLHFCQURjLEVBRWRDLGtCQUZjLEVBR2RDLGNBSGMsRUFJZEMsTUFKYyxFQUtoQjtBQUNFO0FBREYsU0FaZUgscUJBWWY7QUFBQSxTQVhlRyxNQVdmO0FBQUEsU0FWTUMsUUFVTixHQVZpQixLQVVqQjtBQUFBLFNBVGVILGtCQVNmO0FBQUEsU0FSTUksWUFRTjtBQUFBLFNBUGVILGNBT2Y7QUFFRSxTQUFLRixxQkFBTCxHQUE2QkEscUJBQTdCO0FBQ0EsU0FBS0Msa0JBQUwsR0FBMEJBLGtCQUExQjtBQUNBLFNBQUtFLE1BQUwsR0FBYyxDQUFDQSxNQUFNLElBQUksOEJBQVgsRUFBd0JHLFVBQXhCLENBQW1DLFFBQW5DLENBQWQ7QUFDQSxTQUFLSixjQUFMLEdBQXNCQSxjQUF0QjtBQUNIOztBQUUwQixRQUFkSyxjQUFjLEdBQWtCO0FBQ3pDLFVBQU0sS0FBS1AscUJBQUwsQ0FBMkJRLFlBQTNCLEVBQU47QUFDQSxTQUFLSixRQUFMLEdBQWdCLElBQWhCO0FBQ0g7O0FBRXlCLFFBQWJLLGFBQWEsR0FBa0I7QUFDeEMsU0FBS0wsUUFBTCxHQUFnQixLQUFoQjtBQUNBLFVBQU0sS0FBS0oscUJBQUwsQ0FBMkJVLFVBQTNCLEVBQU47O0FBQ0EsUUFBSSxLQUFLTCxZQUFMLElBQXFCTSxTQUF6QixFQUFvQztBQUNoQyxVQUFJO0FBQ0EsY0FBTU4sWUFBWSxHQUFHLEtBQUtBLFlBQTFCO0FBQ0EsYUFBS0EsWUFBTCxHQUFvQk0sU0FBcEI7QUFDQSxjQUFNTixZQUFZLENBQUNPLElBQWIsRUFBTjtBQUNILE9BSkQsQ0FJRSxPQUFPQyxLQUFQLEVBQWM7QUFDWixhQUFLVixNQUFMLENBQVlVLEtBQVosQ0FBbUIsMkJBQTBCQSxLQUFNLEVBQW5EO0FBQ0g7QUFDSjtBQUNKOztBQUUyQixRQUFmQyxlQUFlLEdBQW9CO0FBQzVDLFVBQU1DLGlCQUFpQixHQUFHLE1BQU0sS0FBS2YscUJBQUwsQ0FBMkJnQixZQUEzRDs7QUFDQSxRQUFJLEtBQUtaLFFBQVQsRUFBbUI7QUFDZixXQUFLQyxZQUFMLEdBQW9CLE1BQU0sS0FBS1ksZUFBTCxDQUFxQkYsaUJBQXJCLENBQTFCO0FBQ0gsS0FGRCxNQUVPO0FBQ0gsWUFBTSxLQUFLRyxzQkFBTCxDQUE0QkgsaUJBQTVCLENBQU47QUFDSDs7QUFDRCxXQUFPQSxpQkFBUDtBQUNIOztBQUVtQyxRQUF0Qkcsc0JBQXNCLENBQUNDLGlCQUFELEVBQTJDO0FBQzNFLFVBQU1DLE1BQU0sR0FBRywrQkFBaUIsS0FBS2pCLE1BQXRCLEVBQThCLGNBQTlCLENBQWY7O0FBQ0EsVUFBTWtCLGdCQUFnQixHQUFHQyxjQUFLQyxPQUFMLENBQWFKLGlCQUFiLENBQXpCOztBQUNBLFVBQU1LLFFBQVEsR0FBRyxNQUFNLDJCQUFXSCxnQkFBWCxDQUF2QjtBQUNBLFVBQU1oQixZQUFZLEdBQUdtQixRQUFRLEdBQ3ZCQywyQkFBYUMsa0JBQWIsQ0FDSyxLQURMLEVBRUksQ0FDSSxLQURKLEVBRUksZUFGSixFQUdJLElBSEosRUFJSyxPQUpMLEVBS0ssaUJBQWdCLEtBQUt6QixrQkFBbUIsRUFMN0MsRUFNSSxHQUFHLEtBQUswQixlQUFMLENBQXFCLElBQXJCLENBTlAsQ0FGSixFQVVJTixnQkFWSixDQUR1QixHQWF2QkksMkJBQWFDLGtCQUFiLENBQ0ssS0FETCxFQUVJLENBQUMsU0FBRCxFQUFhLHVCQUFzQixLQUFLekIsa0JBQW1CLEVBQTNELEVBQThELEdBQUcsS0FBSzBCLGVBQUwsQ0FBcUIsS0FBckIsQ0FBakUsQ0FGSixFQUdJTixnQkFISixDQWJOO0FBa0JBaEIsSUFBQUEsWUFBWSxDQUFDdUIsUUFBYixDQUFzQkMsU0FBdEIsQ0FBZ0NDLElBQUksSUFBSSxLQUFLM0IsTUFBTCxDQUFZNEIsR0FBWixDQUFnQkQsSUFBSSxDQUFDRSxTQUFMLEVBQWhCLENBQXhDO0FBQ0EzQixJQUFBQSxZQUFZLENBQUM0QixLQUFiO0FBQ0EsVUFBTUMsSUFBSSxHQUFHLE1BQU03QixZQUFZLENBQUM4QixXQUFiLEVBQW5COztBQUNBLFFBQUlELElBQUksS0FBSyxDQUFiLEVBQWdCO0FBQ1osWUFBTSxJQUFJRSxLQUFKLENBQVcsMkJBQTBCRixJQUFLLEVBQTFDLENBQU47QUFDSDs7QUFDRGQsSUFBQUEsTUFBTSxDQUFDaUIsUUFBUDtBQUNIOztBQUVPVixFQUFBQSxlQUFlLENBQUNXLFFBQUQsRUFBOEI7QUFDakQsUUFBSSxLQUFLcEMsY0FBVCxFQUF5QjtBQUNyQixhQUFPb0MsUUFBUSxHQUNULENBQUMsT0FBRCxFQUFVLGtCQUFWLEVBQThCLE9BQTlCLEVBQXVDLGVBQXZDLEVBQXdELE9BQXhELEVBQWlFLGtCQUFqRSxDQURTLEdBRVQsQ0FBQyx3QkFBRCxFQUEyQixxQkFBM0IsRUFBa0Qsd0JBQWxELENBRk47QUFHSDs7QUFDRCxXQUFPLEVBQVA7QUFDSDs7QUFFNEIsUUFBZnJCLGVBQWUsQ0FBQ0UsaUJBQUQsRUFBeUQ7QUFDbEYsVUFBTUUsZ0JBQWdCLEdBQUdDLGNBQUtDLE9BQUwsQ0FBYUosaUJBQWIsQ0FBekI7O0FBRUEsVUFBTW1CLFFBQVEsR0FBRyxNQUFNLDJCQUFXakIsZ0JBQVgsQ0FBdkI7QUFDQSxVQUFNa0IsTUFBTSxHQUFHRCxRQUFRLEdBQ2pCYiwyQkFBYUMsa0JBQWIsQ0FDSSxLQURKLEVBRUksQ0FDSSxLQURKLEVBRUksZUFGSixFQUdJLElBSEosRUFJSSxTQUpKLEVBS0ssT0FMTCxFQU1LLGlCQUFnQixLQUFLekIsa0JBQW1CLEVBTjdDLEVBT0ksR0FBRyxLQUFLMEIsZUFBTCxDQUFxQlcsUUFBckIsQ0FQUCxDQUZKLEVBV0lqQixnQkFYSixDQURpQixHQWNqQkksMkJBQWFDLGtCQUFiLENBQ0ksS0FESixFQUVJLENBQ0ksU0FESixFQUVJLFNBRkosRUFHSyx1QkFBc0IsS0FBS3pCLGtCQUFtQixFQUhuRCxFQUlJLEdBQUcsS0FBSzBCLGVBQUwsQ0FBcUJXLFFBQXJCLENBSlAsQ0FGSixFQVFJakIsZ0JBUkosQ0FkTjtBQXdCQWtCLElBQUFBLE1BQU0sQ0FBQ1gsUUFBUCxDQUFnQkMsU0FBaEIsQ0FBMEJDLElBQUksSUFBSSxLQUFLM0IsTUFBTCxDQUFZNEIsR0FBWixDQUFnQkQsSUFBSSxDQUFDRSxTQUFMLEVBQWhCLENBQWxDO0FBQ0EsU0FBSzdCLE1BQUwsQ0FBWTRCLEdBQVosQ0FBZ0IsYUFBaEI7QUFDQVEsSUFBQUEsTUFBTSxDQUFDTixLQUFQO0FBQ0EsV0FBT00sTUFBUDtBQUNIOztBQTFIeUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBidWlsZEFjdGlvbkJlZ2luLCBJTG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9JTG9nZ2VyXCI7XG5pbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuaW1wb3J0IHsgSVZhbHVlUHJvZHVjZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvQnVpbGRUYXNrXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlVmFsdWVQcm9kdWNlckJhc2UgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9UYXNrc0NvcmUvQ2hhaW5hYmxlVmFsdWVQcm9kdWNlclwiO1xuaW1wb3J0IHsgaXNXZWJwYWNrNSB9IGZyb20gXCIuLi9DbGllbnRKUy9Jc1dlYnBhY2s1XCI7XG5pbXBvcnQgeyBQcm9jZXNzVXRpbHMgfSBmcm9tIFwiLi4vUHJvY2Vzc1V0aWxzL1Byb2Nlc3NVdGlsc1wiO1xuaW1wb3J0IHsgU2hlbGxQcm9jZXNzSGFuZGxlIH0gZnJvbSBcIi4uL1Byb2Nlc3NVdGlscy9TaGVsbFByb2Nlc3NIYW5kbGVcIjtcblxuZXhwb3J0IGNsYXNzIEJ1aWxkTG9jYWxFbmdpbmVUYXNrIGV4dGVuZHMgT2JzZXJ2YWJsZVZhbHVlUHJvZHVjZXJCYXNlPHN0cmluZz4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGF0aFRvV2VicGFja1Byb3ZpZGVyOiBJVmFsdWVQcm9kdWNlcjxzdHJpbmc+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBJTG9nZ2VyO1xuICAgIHByaXZhdGUgdXNlV2F0Y2ggPSBmYWxzZTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlc0RpcmVjdG9yeTogc3RyaW5nO1xuICAgIHByaXZhdGUgYnVpbGRQcm9jZXNzPzogU2hlbGxQcm9jZXNzSGFuZGxlO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYnVpbGREZWJ1Z09ubHk6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHBhdGhUb1dlYnBhY2tQcm92aWRlcjogSVZhbHVlUHJvZHVjZXI8c3RyaW5nPixcbiAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5OiBzdHJpbmcsXG4gICAgICAgIGJ1aWxkRGVidWdPbmx5OiBib29sZWFuLFxuICAgICAgICBsb2dnZXI/OiBJTG9nZ2VyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMucGF0aFRvV2VicGFja1Byb3ZpZGVyID0gcGF0aFRvV2VicGFja1Byb3ZpZGVyO1xuICAgICAgICB0aGlzLnJlc291cmNlc0RpcmVjdG9yeSA9IHJlc291cmNlc0RpcmVjdG9yeTtcbiAgICAgICAgdGhpcy5sb2dnZXIgPSAobG9nZ2VyIHx8IGdldExvZ2dlcigpKS53aXRoUHJlZml4KFwiRU5HSU5FXCIpO1xuICAgICAgICB0aGlzLmJ1aWxkRGVidWdPbmx5ID0gYnVpbGREZWJ1Z09ubHk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGJlZ2luTGlzdGVuaW5nKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLnBhdGhUb1dlYnBhY2tQcm92aWRlci5iZWdpbk9ic2VydmUoKTtcbiAgICAgICAgdGhpcy51c2VXYXRjaCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHN0b3BMaXN0ZW5pbmcoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMudXNlV2F0Y2ggPSBmYWxzZTtcbiAgICAgICAgYXdhaXQgdGhpcy5wYXRoVG9XZWJwYWNrUHJvdmlkZXIuZW5kT2JzZXJ2ZSgpO1xuICAgICAgICBpZiAodGhpcy5idWlsZFByb2Nlc3MgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1aWxkUHJvY2VzcyA9IHRoaXMuYnVpbGRQcm9jZXNzO1xuICAgICAgICAgICAgICAgIHRoaXMuYnVpbGRQcm9jZXNzID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGF3YWl0IGJ1aWxkUHJvY2Vzcy5raWxsKCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBGYWlsZWQgdG8gc3RvcCBwcm9jZXNzOiAke2Vycm9yfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldEN1cnJlbnRWYWx1ZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCB3ZWJwYWNrQ29uZmlnRmlsZSA9IGF3YWl0IHRoaXMucGF0aFRvV2VicGFja1Byb3ZpZGVyLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgaWYgKHRoaXMudXNlV2F0Y2gpIHtcbiAgICAgICAgICAgIHRoaXMuYnVpbGRQcm9jZXNzID0gYXdhaXQgdGhpcy5ydW5XYXRjaFByb2Nlc3Mod2VicGFja0NvbmZpZ0ZpbGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5idWlsZEVuZ2luZUZyb21Tb3VyY2VzKHdlYnBhY2tDb25maWdGaWxlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gd2VicGFja0NvbmZpZ0ZpbGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBidWlsZEVuZ2luZUZyb21Tb3VyY2VzKHdlYnBhY2tDb25maWdQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgYWN0aW9uID0gYnVpbGRBY3Rpb25CZWdpbih0aGlzLmxvZ2dlciwgXCJCdWlsZCBlbmdpbmVcIik7XG4gICAgICAgIGNvbnN0IHdvcmtpbmdEaXJlY3RvcnkgPSBwYXRoLmRpcm5hbWUod2VicGFja0NvbmZpZ1BhdGgpO1xuICAgICAgICBjb25zdCB3ZWJvYWNrNSA9IGF3YWl0IGlzV2VicGFjazUod29ya2luZ0RpcmVjdG9yeSk7XG4gICAgICAgIGNvbnN0IGJ1aWxkUHJvY2VzcyA9IHdlYm9hY2s1XG4gICAgICAgICAgICA/IFByb2Nlc3NVdGlscy5jcmVhdGVTaGVsbFByb2Nlc3MoXG4gICAgICAgICAgICAgICAgICBgbnBtYCxcbiAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICBcInJ1blwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwicnVudGltZTpidWlsZFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiLS1cIixcbiAgICAgICAgICAgICAgICAgICAgICBgLS1lbnZgLFxuICAgICAgICAgICAgICAgICAgICAgIGByZXNvdXJjZXNQYXRoPSR7dGhpcy5yZXNvdXJjZXNEaXJlY3Rvcnl9YCxcbiAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmdldEJ1aWxkT3B0aW9ucyh0cnVlKSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogUHJvY2Vzc1V0aWxzLmNyZWF0ZVNoZWxsUHJvY2VzcyhcbiAgICAgICAgICAgICAgICAgIGBucHhgLFxuICAgICAgICAgICAgICAgICAgW1wid2VicGFja1wiLCBgLS1lbnYucmVzb3VyY2VzUGF0aD0ke3RoaXMucmVzb3VyY2VzRGlyZWN0b3J5fWAsIC4uLnRoaXMuZ2V0QnVpbGRPcHRpb25zKGZhbHNlKV0sXG4gICAgICAgICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5XG4gICAgICAgICAgICAgICk7XG4gICAgICAgIGJ1aWxkUHJvY2Vzcy5vblN0ZE91dC5zdWJzY3JpYmUoZGF0YSA9PiB0aGlzLmxvZ2dlci5sb2coZGF0YS50cmltUmlnaHQoKSkpO1xuICAgICAgICBidWlsZFByb2Nlc3Muc3RhcnQoKTtcbiAgICAgICAgY29uc3QgY29kZSA9IGF3YWl0IGJ1aWxkUHJvY2Vzcy53YWl0Rm9yRXhpdCgpO1xuICAgICAgICBpZiAoY29kZSAhPT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeGVjdXRlZCB3aXRoIGV4aXQgY29kZSAke2NvZGV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgYWN0aW9uLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRCdWlsZE9wdGlvbnMod2VicGFjazU6IGJvb2xlYW4pOiBzdHJpbmdbXSB7XG4gICAgICAgIGlmICh0aGlzLmJ1aWxkRGVidWdPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm4gd2VicGFjazVcbiAgICAgICAgICAgICAgICA/IFtcIi0tZW52XCIsIFwiZGV2ZWxvcG1lbnQ9dHJ1ZVwiLCBcIi0tZW52XCIsIFwidGVzdGluZz1mYWxzZVwiLCBcIi0tZW52XCIsIFwicHJvZHVjdGlvbj1mYWxzZVwiXVxuICAgICAgICAgICAgICAgIDogW1wiLS1lbnYuZGV2ZWxvcG1lbnQ9dHJ1ZVwiLCBcIi0tZW52LnRlc3Rpbmc9ZmFsc2VcIiwgXCItLWVudi5wcm9kdWN0aW9uPWZhbHNlXCJdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHJ1bldhdGNoUHJvY2Vzcyh3ZWJwYWNrQ29uZmlnUGF0aDogc3RyaW5nKTogUHJvbWlzZTxTaGVsbFByb2Nlc3NIYW5kbGU+IHtcbiAgICAgICAgY29uc3Qgd29ya2luZ0RpcmVjdG9yeSA9IHBhdGguZGlybmFtZSh3ZWJwYWNrQ29uZmlnUGF0aCk7XG5cbiAgICAgICAgY29uc3Qgd2VicGFjazUgPSBhd2FpdCBpc1dlYnBhY2s1KHdvcmtpbmdEaXJlY3RvcnkpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSB3ZWJwYWNrNVxuICAgICAgICAgICAgPyBQcm9jZXNzVXRpbHMuY3JlYXRlU2hlbGxQcm9jZXNzKFxuICAgICAgICAgICAgICAgICAgXCJucG1cIixcbiAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICBcInJ1blwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwicnVudGltZTpidWlsZFwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiLS1cIixcbiAgICAgICAgICAgICAgICAgICAgICBcIi0td2F0Y2hcIixcbiAgICAgICAgICAgICAgICAgICAgICBgLS1lbnZgLFxuICAgICAgICAgICAgICAgICAgICAgIGByZXNvdXJjZXNQYXRoPSR7dGhpcy5yZXNvdXJjZXNEaXJlY3Rvcnl9YCxcbiAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmdldEJ1aWxkT3B0aW9ucyh3ZWJwYWNrNSksXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgd29ya2luZ0RpcmVjdG9yeVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IFByb2Nlc3NVdGlscy5jcmVhdGVTaGVsbFByb2Nlc3MoXG4gICAgICAgICAgICAgICAgICBcIm5weFwiLFxuICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgIFwid2VicGFja1wiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiLS13YXRjaFwiLFxuICAgICAgICAgICAgICAgICAgICAgIGAtLWVudi5yZXNvdXJjZXNQYXRoPSR7dGhpcy5yZXNvdXJjZXNEaXJlY3Rvcnl9YCxcbiAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmdldEJ1aWxkT3B0aW9ucyh3ZWJwYWNrNSksXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgd29ya2luZ0RpcmVjdG9yeVxuICAgICAgICAgICAgICApO1xuICAgICAgICByZXN1bHQub25TdGRPdXQuc3Vic2NyaWJlKGRhdGEgPT4gdGhpcy5sb2dnZXIubG9nKGRhdGEudHJpbVJpZ2h0KCkpKTtcbiAgICAgICAgdGhpcy5sb2dnZXIubG9nKFwiQmVnaW4gd2F0Y2hcIik7XG4gICAgICAgIHJlc3VsdC5zdGFydCgpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbn1cbiJdfQ==
|
|
107
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9CdWlsZFRhc2tzL0VuZ2luZS9CdWlsZExvY2FsRW5naW5lVGFzay50cyJdLCJuYW1lcyI6WyJCdWlsZExvY2FsRW5naW5lVGFzayIsIk9ic2VydmFibGVWYWx1ZVByb2R1Y2VyQmFzZSIsImNvbnN0cnVjdG9yIiwicGF0aFRvV2VicGFja1Byb3ZpZGVyIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwiYnVpbGREZWJ1Z09ubHkiLCJsb2dnZXIiLCJ1c2VXYXRjaCIsImJ1aWxkUHJvY2VzcyIsIndpdGhQcmVmaXgiLCJiZWdpbkxpc3RlbmluZyIsImJlZ2luT2JzZXJ2ZSIsInN0b3BMaXN0ZW5pbmciLCJlbmRPYnNlcnZlIiwidW5kZWZpbmVkIiwia2lsbCIsImVycm9yIiwiZ2V0Q3VycmVudFZhbHVlIiwid2VicGFja0NvbmZpZ0ZpbGUiLCJjdXJyZW50VmFsdWUiLCJydW5XYXRjaFByb2Nlc3MiLCJidWlsZEVuZ2luZUZyb21Tb3VyY2VzIiwid2VicGFja0NvbmZpZ1BhdGgiLCJhY3Rpb24iLCJ3b3JraW5nRGlyZWN0b3J5IiwicGF0aCIsImRpcm5hbWUiLCJQcm9jZXNzVXRpbHMiLCJjcmVhdGVTaGVsbFByb2Nlc3MiLCJnZXRCdWlsZE9wdGlvbnMiLCJvblN0ZE91dCIsInN1YnNjcmliZSIsImRhdGEiLCJsb2ciLCJ0cmltUmlnaHQiLCJzdGFydCIsImNvZGUiLCJ3YWl0Rm9yRXhpdCIsIkVycm9yIiwiY29tcGxldGUiLCJyZXN1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFFQTs7QUFDQTs7OztBQUdPLE1BQU1BLG9CQUFOLFNBQW1DQyxtREFBbkMsQ0FBdUU7QUFRbkVDLEVBQUFBLFdBQVcsQ0FDZEMscUJBRGMsRUFFZEMsa0JBRmMsRUFHZEMsY0FIYyxFQUlkQyxNQUpjLEVBS2hCO0FBQ0U7QUFERixTQVplSCxxQkFZZjtBQUFBLFNBWGVHLE1BV2Y7QUFBQSxTQVZNQyxRQVVOLEdBVmlC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QUF6Qjs7QUFFQSxVQUFNa0IsTUFBTSxHQUFHYiwyQkFBYUMsa0JBQWIsQ0FDWCxNQURXLEVBRVgsQ0FDSSxlQURKLEVBRUksU0FGSixFQUdLLE9BSEwsRUFJSyxpQkFBZ0IsS0FBS3hCLGtCQUFtQixFQUo3QyxFQUtJLEdBQUcsS0FBS3lCLGVBQUwsRUFMUCxDQUZXLEVBU1hMLGdCQVRXLENBQWY7O0FBV0FnQixJQUFBQSxNQUFNLENBQUNWLFFBQVAsQ0FBZ0JDLFNBQWhCLENBQTBCQyxJQUFJLElBQUksS0FBSzFCLE1BQUwsQ0FBWTJCLEdBQVosQ0FBZ0JELElBQUksQ0FBQ0UsU0FBTCxFQUFoQixDQUFsQztBQUNBLFNBQUs1QixNQUFMLENBQVkyQixHQUFaLENBQWdCLGFBQWhCO0FBQ0FPLElBQUFBLE1BQU0sQ0FBQ0wsS0FBUDtBQUNBLFdBQU9LLE1BQVA7QUFDSDs7QUE1RnlFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgYnVpbGRBY3Rpb25CZWdpbiwgSUxvZ2dlciB9IGZyb20gXCIuLi8uLi9Db21tb25zL0xvZ2dpbmcvSUxvZ2dlclwiO1xuaW1wb3J0IHsgZ2V0TG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcbmltcG9ydCB7IElWYWx1ZVByb2R1Y2VyIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvVGFza3NDb3JlL0J1aWxkVGFza1wiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZVZhbHVlUHJvZHVjZXJCYXNlIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvVGFza3NDb3JlL0NoYWluYWJsZVZhbHVlUHJvZHVjZXJcIjtcbmltcG9ydCB7IFByb2Nlc3NVdGlscyB9IGZyb20gXCIuLi9Qcm9jZXNzVXRpbHMvUHJvY2Vzc1V0aWxzXCI7XG5pbXBvcnQgeyBTaGVsbFByb2Nlc3NIYW5kbGUgfSBmcm9tIFwiLi4vUHJvY2Vzc1V0aWxzL1NoZWxsUHJvY2Vzc0hhbmRsZVwiO1xuXG5leHBvcnQgY2xhc3MgQnVpbGRMb2NhbEVuZ2luZVRhc2sgZXh0ZW5kcyBPYnNlcnZhYmxlVmFsdWVQcm9kdWNlckJhc2U8c3RyaW5nPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXRoVG9XZWJwYWNrUHJvdmlkZXI6IElWYWx1ZVByb2R1Y2VyPHN0cmluZz47XG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IElMb2dnZXI7XG4gICAgcHJpdmF0ZSB1c2VXYXRjaCA9IGZhbHNlO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VzRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBidWlsZFByb2Nlc3M/OiBTaGVsbFByb2Nlc3NIYW5kbGU7XG4gICAgcHJpdmF0ZSByZWFkb25seSBidWlsZERlYnVnT25seTogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcGF0aFRvV2VicGFja1Byb3ZpZGVyOiBJVmFsdWVQcm9kdWNlcjxzdHJpbmc+LFxuICAgICAgICByZXNvdXJjZXNEaXJlY3Rvcnk6IHN0cmluZyxcbiAgICAgICAgYnVpbGREZWJ1Z09ubHk6IGJvb2xlYW4sXG4gICAgICAgIGxvZ2dlcj86IElMb2dnZXJcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5wYXRoVG9XZWJwYWNrUHJvdmlkZXIgPSBwYXRoVG9XZWJwYWNrUHJvdmlkZXI7XG4gICAgICAgIHRoaXMucmVzb3VyY2VzRGlyZWN0b3J5ID0gcmVzb3VyY2VzRGlyZWN0b3J5O1xuICAgICAgICB0aGlzLmxvZ2dlciA9IChsb2dnZXIgfHwgZ2V0TG9nZ2VyKCkpLndpdGhQcmVmaXgoXCJFTkdJTkVcIik7XG4gICAgICAgIHRoaXMuYnVpbGREZWJ1Z09ubHkgPSBidWlsZERlYnVnT25seTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgYmVnaW5MaXN0ZW5pbmcoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMucGF0aFRvV2VicGFja1Byb3ZpZGVyLmJlZ2luT2JzZXJ2ZSgpO1xuICAgICAgICB0aGlzLnVzZVdhdGNoID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc3RvcExpc3RlbmluZygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy51c2VXYXRjaCA9IGZhbHNlO1xuICAgICAgICBhd2FpdCB0aGlzLnBhdGhUb1dlYnBhY2tQcm92aWRlci5lbmRPYnNlcnZlKCk7XG4gICAgICAgIGlmICh0aGlzLmJ1aWxkUHJvY2VzcyAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYnVpbGRQcm9jZXNzID0gdGhpcy5idWlsZFByb2Nlc3M7XG4gICAgICAgICAgICAgICAgdGhpcy5idWlsZFByb2Nlc3MgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgYXdhaXQgYnVpbGRQcm9jZXNzLmtpbGwoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYEZhaWxlZCB0byBzdG9wIHByb2Nlc3M6ICR7ZXJyb3J9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0Q3VycmVudFZhbHVlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IHdlYnBhY2tDb25maWdGaWxlID0gYXdhaXQgdGhpcy5wYXRoVG9XZWJwYWNrUHJvdmlkZXIuY3VycmVudFZhbHVlO1xuICAgICAgICBpZiAodGhpcy51c2VXYXRjaCkge1xuICAgICAgICAgICAgdGhpcy5idWlsZFByb2Nlc3MgPSBhd2FpdCB0aGlzLnJ1bldhdGNoUHJvY2Vzcyh3ZWJwYWNrQ29uZmlnRmlsZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmJ1aWxkRW5naW5lRnJvbVNvdXJjZXMod2VicGFja0NvbmZpZ0ZpbGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB3ZWJwYWNrQ29uZmlnRmlsZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGJ1aWxkRW5naW5lRnJvbVNvdXJjZXMod2VicGFja0NvbmZpZ1BhdGg6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBhY3Rpb24gPSBidWlsZEFjdGlvbkJlZ2luKHRoaXMubG9nZ2VyLCBcIkJ1aWxkIGVuZ2luZVwiKTtcbiAgICAgICAgY29uc3Qgd29ya2luZ0RpcmVjdG9yeSA9IHBhdGguZGlybmFtZSh3ZWJwYWNrQ29uZmlnUGF0aCk7XG4gICAgICAgIGNvbnN0IGJ1aWxkUHJvY2VzcyA9IFByb2Nlc3NVdGlscy5jcmVhdGVTaGVsbFByb2Nlc3MoXG4gICAgICAgICAgICBgeWFybmAsXG4gICAgICAgICAgICBbXCJydW50aW1lOmJ1aWxkXCIsIGAtLWVudmAsIGByZXNvdXJjZXNQYXRoPSR7dGhpcy5yZXNvdXJjZXNEaXJlY3Rvcnl9YCwgLi4udGhpcy5nZXRCdWlsZE9wdGlvbnMoKV0sXG4gICAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5XG4gICAgICAgICk7XG4gICAgICAgIGJ1aWxkUHJvY2Vzcy5vblN0ZE91dC5zdWJzY3JpYmUoZGF0YSA9PiB0aGlzLmxvZ2dlci5sb2coZGF0YS50cmltUmlnaHQoKSkpO1xuICAgICAgICBidWlsZFByb2Nlc3Muc3RhcnQoKTtcbiAgICAgICAgY29uc3QgY29kZSA9IGF3YWl0IGJ1aWxkUHJvY2Vzcy53YWl0Rm9yRXhpdCgpO1xuICAgICAgICBpZiAoY29kZSAhPT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFeGVjdXRlZCB3aXRoIGV4aXQgY29kZSAke2NvZGV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgYWN0aW9uLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRCdWlsZE9wdGlvbnMoKTogc3RyaW5nW10ge1xuICAgICAgICBpZiAodGhpcy5idWlsZERlYnVnT25seSkge1xuICAgICAgICAgICAgcmV0dXJuIFtcIi0tZW52XCIsIFwiZGV2ZWxvcG1lbnQ9dHJ1ZVwiLCBcIi0tZW52XCIsIFwidGVzdGluZz1mYWxzZVwiLCBcIi0tZW52XCIsIFwicHJvZHVjdGlvbj1mYWxzZVwiXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBydW5XYXRjaFByb2Nlc3Mod2VicGFja0NvbmZpZ1BhdGg6IHN0cmluZyk6IFByb21pc2U8U2hlbGxQcm9jZXNzSGFuZGxlPiB7XG4gICAgICAgIGNvbnN0IHdvcmtpbmdEaXJlY3RvcnkgPSBwYXRoLmRpcm5hbWUod2VicGFja0NvbmZpZ1BhdGgpO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFByb2Nlc3NVdGlscy5jcmVhdGVTaGVsbFByb2Nlc3MoXG4gICAgICAgICAgICBcInlhcm5cIixcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBcInJ1bnRpbWU6YnVpbGRcIixcbiAgICAgICAgICAgICAgICBcIi0td2F0Y2hcIixcbiAgICAgICAgICAgICAgICBgLS1lbnZgLFxuICAgICAgICAgICAgICAgIGByZXNvdXJjZXNQYXRoPSR7dGhpcy5yZXNvdXJjZXNEaXJlY3Rvcnl9YCxcbiAgICAgICAgICAgICAgICAuLi50aGlzLmdldEJ1aWxkT3B0aW9ucygpLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHdvcmtpbmdEaXJlY3RvcnlcbiAgICAgICAgKTtcbiAgICAgICAgcmVzdWx0Lm9uU3RkT3V0LnN1YnNjcmliZShkYXRhID0+IHRoaXMubG9nZ2VyLmxvZyhkYXRhLnRyaW1SaWdodCgpKSk7XG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZyhcIkJlZ2luIHdhdGNoXCIpO1xuICAgICAgICByZXN1bHQuc3RhcnQoKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.isOldGeneratorSourcesStructure = isOldGeneratorSourcesStructure;
|
|
7
|
-
exports.isNewEngineStructure = isNewEngineStructure;
|
|
8
|
-
exports.createEngineWebpackConfigTask = createEngineWebpackConfigTask;
|
|
9
6
|
exports.createClientWebpackConfigTask = createClientWebpackConfigTask;
|
|
7
|
+
exports.createEngineWebpackConfigTask = createEngineWebpackConfigTask;
|
|
8
|
+
exports.isNewEngineStructure = isNewEngineStructure;
|
|
9
|
+
exports.isOldGeneratorSourcesStructure = isOldGeneratorSourcesStructure;
|
|
10
10
|
|
|
11
11
|
var _path = _interopRequireDefault(require("path"));
|
|
12
12
|
|
|
@@ -17,9 +17,9 @@ var _ILogger = require("../../Commons/Logging/ILogger");
|
|
|
17
17
|
|
|
18
18
|
var _StaticLogger = require("../../Commons/Logging/StaticLogger");
|
|
19
19
|
|
|
20
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
20
|
+
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); }
|
|
21
21
|
|
|
22
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
|
|
22
|
+
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; }
|
|
23
23
|
|
|
24
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
25
|
|