@kontur.candy/tools 2.178.0 → 2.179.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 +25 -0
- package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js +1 -1
- package/distr/Common/KCLangRuntimeUtils.js +25 -1
- package/distr/Common/WellKnownDirectories.js +2 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/BuildServerBackendResourcesController.js +2 -2
- package/distr/Tools/src/CLICommands/FormStats/RunFormStats.js +1 -1
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.AfterMerge.xslt +11 -1
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.BeforePreload.xslt +11 -1
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.fufPatcher.xslt +11 -0
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.outer.inner.json +1 -1
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/browser/Smoke.test.js +2 -2
- package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/test/ui/DemoTest.test.js +2 -2
- package/distr/Tools/src/CLICommands/InitForm/RunInitForm.js +32 -9
- package/distr/Tools/src/CLICommands/Localization/RunLocalization.js +1 -1
- package/distr/Tools/src/CandyCLI.js +5 -4
- package/distr/Tools/src/Commons/TasksCore/FixedDirectoryEntriesProducer.js +7 -3
- package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +41 -21
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +39 -19
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,28 @@
|
|
|
1
|
+
<a name="2.179.0"></a>
|
|
2
|
+
# [2.179.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.178.2...release/tools/v2.179.0) (2024-04-09)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* **Tools:** Исправлена отдача map и unmap файлов ([cbbfd60](https://git.skbkontur.ru/ke/candy-utils/commit/cbbfd60))
|
|
8
|
+
|
|
9
|
+
<a name="2.178.2"></a>
|
|
10
|
+
## [2.178.2](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.178.0...release/tools/v2.178.2) (2024-03-13)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* **Tools:** Более правильный шаблон для init form ([330c0f1](https://git.skbkontur.ru/ke/candy-utils/commit/330c0f1))
|
|
16
|
+
* **Tools:** Исправлена работае candy init-form ([df83806](https://git.skbkontur.ru/ke/candy-utils/commit/df83806))
|
|
17
|
+
|
|
18
|
+
<a name="2.178.1"></a>
|
|
19
|
+
## [2.178.1](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.178.0...release/tools/v2.178.1) (2024-03-13)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Bug Fixes
|
|
23
|
+
|
|
24
|
+
* **Tools:** Исправлена работае candy init-form ([df83806](https://git.skbkontur.ru/ke/candy-utils/commit/df83806))
|
|
25
|
+
|
|
1
26
|
<a name="2.178.0"></a>
|
|
2
27
|
# [2.178.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.177.0...release/tools/v2.178.0) (2024-03-11)
|
|
3
28
|
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L1R5cGVzL0RyYWZ0QWN0aW9ucy9GaWxlUHJvcGVydGllcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2ZXJFcnJvcnMgfSBmcm9tIFwiLi4vLi4vQ2FuZHlBcGlDbGllbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlUHJvcGVydGllcyBleHRlbmRzIEVycm9yVXBsb2FkRmlsZXMge1xuICAgIERlbWFuZGZpbGVuYW1lOiBzdHJpbmc7XG4gICAgQWNjb3VudERlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgQm9zc05hbWU6IHN0cmluZztcbiAgICBDb3JyZWN0RmlsZU5hbWU6IHN0cmluZztcbiAgICBGb3JtTmFtZTogc3RyaW5nO1xuICAgIElEUG9sOiBzdHJpbmc7XG4gICAgSU5OOiBzdHJpbmc7XG4gICAgSWRGaWxlUHJlZml4OiBzdHJpbmc7XG4gICAgS1BQOiBzdHJpbmc7XG4gICAgTXJpQ29kZTogc3RyaW5nO1xuICAgIFBheWVyTmFtZTogc3RyaW5nO1xuICAgINCY0J3QodCQ0JnQojogc3RyaW5nO1xuICAgIFByb3BlcnRpZXNWZXJzaW9uOiBzdHJpbmc7XG4gICAgVHlwZUluZjogc3RyaW5nO1xuICAgIGRvY0lkOiBzdHJpbmc7XG4gICAgZmlvUG9kcDogc3RyaW5nO1xuICAgIGZ1ZlVyaTogc3RyaW5nO1xuICAgIGdmdjogc3RyaW5nO1xuICAgIGlkUG9sRnJvbUlkRmlsZTogc3RyaW5nO1xuICAgIG1yaUNvZGVQcm92aWRlZEJ5Rm9ybTogc3RyaW5nO1xuICAgIHByUG9kcDogc3RyaW5nO1xuICAgIHNlbmRlcklubjogc3RyaW5nO1xuICAgIHNlbmRlcktwcDogc3RyaW5nO1xuICAgINCS0LXRgNGB0J/RgNC+0LM6IHN0cmluZztcbiAgICDQmNC00KTQsNC50Ls6IHN0cmluZztcbiAgICDQmtC+0LTQndCeOiBzdHJpbmc7XG4gICAgUmVjb3JkQ291bnQ/OiBzdHJpbmc7XG4gICAgSXNMYXN0VmVyc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFcnJvclVwbG9hZEZpbGVzIHtcbiAgICBlcnJvckNvZGU/OiBzdHJpbmc7XG4gICAgbWVzc2FnZT86IHN0cmluZztcbiAgICBzeXN0ZW1NZXNzYWdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZEZpbGVQcm9wZXJ0aWVzUmVzcG9uc2UgZXh0ZW5kcyBTZXJ2ZXJFcnJvclJlc3BvbnNlIHtcbiAgICBzb3VyY2VzVG90YWxDb3VudDogbnVtYmVyO1xuICAgIC8qKiDQodC10YDQuNCw0LvQuNC30L7QstCw0L3QvdGL0Lkg0LzQsNGB0YHQuNCyINGB0YHRi9C70L7QuiDQvdCwINC00YDQsNC50LIsINC60L7RgtC+0YDRi9C1INC40YHRgtGA0LXQsdC+0LLQsNC90LjRjyDQvtC/0YDQtdC00LXQu9C40LvQuCDQutCw0Lo6INGE0LDQudC70Ysg0L3QtSDQv9C+INGE0L7RgNC80LDRgtGDICovXG4gICAgaW52YWxpZFNvdXJjZURyaXZlQ29udGVudE5hbWVzOiBzdHJpbmc7XG4gICAgZnVmVXJpPzogc3RyaW5nO1xuICAgIC8qKiDQutC+0Lst0LLQviDQuNC90YHRgtCw0L3RgdC+0LIg0LIg0YDQsNGB0L/QsNGA0YjQtdC90L3Ri9GFINGE0LDQudC70LDRhSAqL1xuICAgIHByZXZEb2NzSW5zdGFuY2VzQ291bnQ/OiBzdHJpbmc7XG4gICAgZ2Z2Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlckVycm9yUmVzcG9uc2Uge1xuICAgIHNlcnZlckVycm9yPzogU2VydmVyRXJyb3JzO1xuICAgIG1lc3NhZ2U/
|
|
6
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vQ29tbW9uL0NhbmR5QXBpQ2xpZW50L1R5cGVzL0RyYWZ0QWN0aW9ucy9GaWxlUHJvcGVydGllcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2ZXJFcnJvcnMgfSBmcm9tIFwiLi4vLi4vQ2FuZHlBcGlDbGllbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBGaWxlUHJvcGVydGllcyBleHRlbmRzIEVycm9yVXBsb2FkRmlsZXMge1xuICAgIERlbWFuZGZpbGVuYW1lOiBzdHJpbmc7XG4gICAgQWNjb3VudERlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgQm9zc05hbWU6IHN0cmluZztcbiAgICBDb3JyZWN0RmlsZU5hbWU6IHN0cmluZztcbiAgICBGb3JtTmFtZTogc3RyaW5nO1xuICAgIElEUG9sOiBzdHJpbmc7XG4gICAgSU5OOiBzdHJpbmc7XG4gICAgSWRGaWxlUHJlZml4OiBzdHJpbmc7XG4gICAgS1BQOiBzdHJpbmc7XG4gICAgTXJpQ29kZTogc3RyaW5nO1xuICAgIFBheWVyTmFtZTogc3RyaW5nO1xuICAgINCY0J3QodCQ0JnQojogc3RyaW5nO1xuICAgIFByb3BlcnRpZXNWZXJzaW9uOiBzdHJpbmc7XG4gICAgVHlwZUluZjogc3RyaW5nO1xuICAgIGRvY0lkOiBzdHJpbmc7XG4gICAgZmlvUG9kcDogc3RyaW5nO1xuICAgIGZ1ZlVyaTogc3RyaW5nO1xuICAgIGdmdjogc3RyaW5nO1xuICAgIGlkUG9sRnJvbUlkRmlsZTogc3RyaW5nO1xuICAgIG1yaUNvZGVQcm92aWRlZEJ5Rm9ybTogc3RyaW5nO1xuICAgIHByUG9kcDogc3RyaW5nO1xuICAgIHNlbmRlcklubjogc3RyaW5nO1xuICAgIHNlbmRlcktwcDogc3RyaW5nO1xuICAgINCS0LXRgNGB0J/RgNC+0LM6IHN0cmluZztcbiAgICDQmNC00KTQsNC50Ls6IHN0cmluZztcbiAgICDQmtC+0LTQndCeOiBzdHJpbmc7XG4gICAgUmVjb3JkQ291bnQ/OiBzdHJpbmc7XG4gICAgSXNMYXN0VmVyc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFcnJvclVwbG9hZEZpbGVzIHtcbiAgICBlcnJvckNvZGU/OiBzdHJpbmc7XG4gICAgbWVzc2FnZT86IHN0cmluZztcbiAgICBzeXN0ZW1NZXNzYWdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZEZpbGVQcm9wZXJ0aWVzUmVzcG9uc2UgZXh0ZW5kcyBTZXJ2ZXJFcnJvclJlc3BvbnNlIHtcbiAgICBzb3VyY2VzVG90YWxDb3VudDogbnVtYmVyO1xuICAgIC8qKiDQodC10YDQuNCw0LvQuNC30L7QstCw0L3QvdGL0Lkg0LzQsNGB0YHQuNCyINGB0YHRi9C70L7QuiDQvdCwINC00YDQsNC50LIsINC60L7RgtC+0YDRi9C1INC40YHRgtGA0LXQsdC+0LLQsNC90LjRjyDQvtC/0YDQtdC00LXQu9C40LvQuCDQutCw0Lo6INGE0LDQudC70Ysg0L3QtSDQv9C+INGE0L7RgNC80LDRgtGDICovXG4gICAgaW52YWxpZFNvdXJjZURyaXZlQ29udGVudE5hbWVzOiBzdHJpbmc7XG4gICAgZnVmVXJpPzogc3RyaW5nO1xuICAgIC8qKiDQutC+0Lst0LLQviDQuNC90YHRgtCw0L3RgdC+0LIg0LIg0YDQsNGB0L/QsNGA0YjQtdC90L3Ri9GFINGE0LDQudC70LDRhSAqL1xuICAgIHByZXZEb2NzSW5zdGFuY2VzQ291bnQ/OiBzdHJpbmc7XG4gICAgZ2Z2Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZlckVycm9yUmVzcG9uc2Uge1xuICAgIHNlcnZlckVycm9yPzogU2VydmVyRXJyb3JzO1xuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkVXBsb2FkRmlsZVByb3BlcnRpZXMge1xuICAgIGZ1ZlVyaT86IHN0cmluZztcbiAgICBnZnY6IHN0cmluZztcbiAgICBzb3VyY2VzVG90YWxDb3VudDogbnVtYmVyO1xuICAgIHByZXZEb2NzSW5zdGFuY2VzQ291bnQ6IG51bWJlcjtcbiAgICBpbnZhbGlkU291cmNlRHJpdmVDb250ZW50TmFtZXM6IHN0cmluZ1tdO1xuICAgIHNlcnZlckVycm9yPzogU2VydmVyRXJyb3JzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4Y2Vsc1RvUGFydGlhbEZ1ZnNSZXNwb25zZSB7XG4gICAgcGFyc2VkOiBzdHJpbmdbXTtcbiAgICBmYWlsZWQ6IEV4Y2Vsc1RvUGFydGlhbEZ1ZnNGYWlsZWRbXTtcbn1cblxuaW50ZXJmYWNlIEV4Y2Vsc1RvUGFydGlhbEZ1ZnNGYWlsZWQge1xuICAgIGl0ZW0xOiBzdHJpbmc7XG4gICAgaXRlbTI6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbXBvcnRGcm9tUGFydGlhbEZ1ZnNCeVBhdGhSZXNwb25zZSB7XG4gICAgdXBkYXRlZEl0ZW1zQ291bnQ6IG51bWJlcjtcbiAgICBhZGRlZEl0ZW1zQ291bnQ6IG51bWJlcjtcbn1cbiJdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -8,6 +8,7 @@ exports.KCLangRuntimeUtils = void 0;
|
|
|
8
8
|
var _big = _interopRequireDefault(require("big.js"));
|
|
9
9
|
var _ValidationHelper = require("../Engine/src/Engine/ValidationHelper");
|
|
10
10
|
var _AutocalcCommonFunctions = require("../Engine/src/Helpers/AutocalcCommonFunctions");
|
|
11
|
+
var _DateHelpers = require("../Engine/src/Helpers/DateHelpers");
|
|
11
12
|
var _TypingUtils = require("./TypingUtils");
|
|
12
13
|
const isBigSource = value => {
|
|
13
14
|
if (typeof value === "number" || typeof value === "string" || value instanceof _big.default) {
|
|
@@ -98,6 +99,17 @@ class KCLangRuntimeUtils {
|
|
|
98
99
|
}
|
|
99
100
|
return undefined;
|
|
100
101
|
}
|
|
102
|
+
getYear(value) {
|
|
103
|
+
var _Date;
|
|
104
|
+
return (_Date = new Date(value)) === null || _Date === void 0 ? void 0 : _Date.getFullYear();
|
|
105
|
+
}
|
|
106
|
+
dateTime(value) {
|
|
107
|
+
const date = (0, _TypingUtils.isNotNullOrEmpty)(value) ? (0, _DateHelpers.convertDate)(value) : undefined;
|
|
108
|
+
if (!date) {
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
return date;
|
|
112
|
+
}
|
|
101
113
|
sum(left, right) {
|
|
102
114
|
if (!isBigOrNumber(left) && !isBigOrNumber(right)) {
|
|
103
115
|
return undefined;
|
|
@@ -151,6 +163,18 @@ class KCLangRuntimeUtils {
|
|
|
151
163
|
const result = _ValidationHelper.ValidationHelper.isSnils(normalizedSnils);
|
|
152
164
|
return result;
|
|
153
165
|
}
|
|
166
|
+
isRegNumSfr(valueSelector, path) {
|
|
167
|
+
if (valueSelector == undefined) {
|
|
168
|
+
return undefined;
|
|
169
|
+
}
|
|
170
|
+
const value = valueSelector(path);
|
|
171
|
+
const normalizedRegNum = value === null || value === void 0 ? void 0 : value.replace(/[^0-9]/g, "");
|
|
172
|
+
if ((0, _TypingUtils.isNullOrWhiteSpace)(normalizedRegNum)) {
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
const result = _ValidationHelper.ValidationHelper.isRegNumSfr(normalizedRegNum);
|
|
176
|
+
return result;
|
|
177
|
+
}
|
|
154
178
|
isInn(valueSelector, path) {
|
|
155
179
|
if (valueSelector == undefined) {
|
|
156
180
|
return undefined;
|
|
@@ -239,4 +263,4 @@ class KCLangRuntimeUtils {
|
|
|
239
263
|
}
|
|
240
264
|
exports.KCLangRuntimeUtils = KCLangRuntimeUtils;
|
|
241
265
|
KCLangRuntimeUtils.kcLangUtilsName = "kcLangUtils";
|
|
242
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYmlnIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfVmFsaWRhdGlvbkhlbHBlciIsIl9BdXRvY2FsY0NvbW1vbkZ1bmN0aW9ucyIsIl9UeXBpbmdVdGlscyIsImlzQmlnU291cmNlIiwidmFsdWUiLCJCaWciLCJpc0JpZ09yTnVtYmVyIiwiS0NMYW5nUnVudGltZVV0aWxzIiwiYW5kIiwibGVmdCIsInJpZ2h0IiwidW5kZWZpbmVkIiwiZGl2aXNpb24iLCJ3cmFwRGVjaW1hbE9wZXJhbmQiLCJkaXYiLCJlcSIsImNtcCIsImdlIiwiZ3RlIiwiZ3QiLCJsZSIsImx0ZSIsImx0IiwibWludXMiLCJhcmd1bWVudCIsIm11bCIsIm11bHRpcGx5Iiwibm90Iiwibm90ZXEiLCJvciIsInJvdW5kIiwiZnJhY3Rpb25EaWdpdHMiLCJmbG9vciIsInN1bSIsImFkZCIsImFicyIsInhhYnMiLCJsZW5ndGgiLCJleGlzdHMiLCJ2YWx1ZVNlbGVjdG9yIiwicGF0aCIsImlzU25pbHMiLCJub3JtYWxpemVkU25pbHMiLCJyZXBsYWNlIiwiaXNOdWxsT3JXaGl0ZVNwYWNlIiwicmVzdWx0IiwiVmFsaWRhdGlvbkhlbHBlciIsImlzSW5uIiwiaXNWYWxpZEFjY291bnROdW1iZXIiLCJiaWsiLCJhY2NvdW50IiwiYmlrVmFsdWUiLCJhY2NvdW50VmFsdWUiLCJpc1ZhbGlkTWlyQ2FyZE51bWJlciIsImNvbnZlcnRUb0RlY2ltYWwiLCJjb252ZXJ0VG9TdHJpbmciLCJ0b1N0cmluZyIsInJlZ2V4TWF0Y2giLCJwYXR0ZXJuIiwiUmVnRXhwIiwidGVzdCIsIm9uZW9mIiwidmFsdWVzIiwiaW5kZXhPZiIsInZhbHVlQXNCaWciLCJzb21lIiwiaXRlbSIsInN1YnN0cmluZyIsInN0ciIsInN0YXJ0IiwiZW5kIiwiZGF0ZU5vdyIsIkRhdGUiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJleHBvcnRzIiwia2NMYW5nVXRpbHNOYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vQ29tbW9uL0tDTGFuZ1J1bnRpbWVVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmlnLCB7IEJpZ1NvdXJjZSB9IGZyb20gXCJiaWcuanNcIjtcblxuaW1wb3J0IHsgVmFsaWRhdGlvbkhlbHBlciB9IGZyb20gXCIuLi9FbmdpbmUvc3JjL0VuZ2luZS9WYWxpZGF0aW9uSGVscGVyXCI7XG5pbXBvcnQgeyB3cmFwRGVjaW1hbE9wZXJhbmQgfSBmcm9tIFwiLi4vRW5naW5lL3NyYy9IZWxwZXJzL0F1dG9jYWxjQ29tbW9uRnVuY3Rpb25zXCI7XG5cbmltcG9ydCB7IGlzTnVsbE9yV2hpdGVTcGFjZSB9IGZyb20gXCIuL1R5cGluZ1V0aWxzXCI7XG5cbmNvbnN0IGlzQmlnU291cmNlID0gKHZhbHVlOiBCaWdTb3VyY2UpOiBib29sZWFuID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiB8fCB2YWx1ZSBpbnN0YW5jZW9mIEJpZykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcblxuY29uc3QgaXNCaWdPck51bWJlciA9ICh2YWx1ZTogQmlnIHwgbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCB8IHVua25vd24pID0+XG4gICAgdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiIHx8IHZhbHVlIGluc3RhbmNlb2YgQmlnO1xuXG5leHBvcnQgY2xhc3MgS0NMYW5nUnVudGltZVV0aWxzIHtcbiAgICBwdWJsaWMgc3RhdGljIGtjTGFuZ1V0aWxzTmFtZSA9IFwia2NMYW5nVXRpbHNcIjtcblxuICAgIHB1YmxpYyBhbmQobGVmdDogYm9vbGVhbiB8IHVuZGVmaW5lZCwgcmlnaHQ6IGJvb2xlYW4gfCB1bmRlZmluZWQpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKGxlZnQgPT0gdW5kZWZpbmVkIHx8IHJpZ2h0ID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGVmdCAmJiByaWdodDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGl2aXNpb24obGVmdDogQmlnU291cmNlLCByaWdodDogQmlnU291cmNlKTogQmlnIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKGlzQmlnU291cmNlKGxlZnQpICYmIGlzQmlnU291cmNlKHJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZChsZWZ0KS5kaXYocmlnaHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGVxKGxlZnQ6IEJpZ1NvdXJjZSwgcmlnaHQ6IEJpZ1NvdXJjZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodHlwZW9mIGxlZnQgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIHJpZ2h0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gbGVmdCA9PT0gcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzQmlnU291cmNlKGxlZnQpICYmIGlzQmlnU291cmNlKHJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZChsZWZ0KS5jbXAocmlnaHQpID09PSAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2UobGVmdDogQmlnU291cmNlLCByaWdodDogQmlnU291cmNlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShsZWZ0KSAmJiBpc0JpZ1NvdXJjZShyaWdodCkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQobGVmdCkuZ3RlKHJpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGd0KGxlZnQ6IEJpZ1NvdXJjZSwgcmlnaHQ6IEJpZ1NvdXJjZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoaXNCaWdTb3VyY2UobGVmdCkgJiYgaXNCaWdTb3VyY2UocmlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcERlY2ltYWxPcGVyYW5kKGxlZnQpLmd0KHJpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGxlKGxlZnQ6IEJpZ1NvdXJjZSwgcmlnaHQ6IEJpZ1NvdXJjZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoaXNCaWdTb3VyY2UobGVmdCkgJiYgaXNCaWdTb3VyY2UocmlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcERlY2ltYWxPcGVyYW5kKGxlZnQpLmx0ZShyaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBsdChsZWZ0OiBCaWdTb3VyY2UsIHJpZ2h0OiBCaWdTb3VyY2UpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGlzQmlnU291cmNlKGxlZnQpICYmIGlzQmlnU291cmNlKHJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZChsZWZ0KS5sdChyaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBtaW51cyhhcmd1bWVudDogQmlnU291cmNlKTogdW5rbm93biB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShhcmd1bWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQoYXJndW1lbnQpLm11bCgtMSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgbXVsdGlwbHkobGVmdDogQmlnU291cmNlLCByaWdodDogQmlnU291cmNlKTogdW5rbm93biB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShsZWZ0KSAmJiBpc0JpZ1NvdXJjZShyaWdodCkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQobGVmdCkubXVsKHJpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBub3QobGVmdD86IGJvb2xlYW4pOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIGxlZnQgIT0gdW5kZWZpbmVkID8gIWxlZnQgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG5vdGVxKGxlZnQ6IEJpZ1NvdXJjZSwgcmlnaHQ6IEJpZ1NvdXJjZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuZXEobGVmdCwgcmlnaHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcihsZWZ0OiBib29sZWFuIHwgdW5kZWZpbmVkLCByaWdodDogYm9vbGVhbiB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodHlwZW9mIGxlZnQgPT0gXCJib29sZWFuXCIgfHwgdHlwZW9mIHJpZ2h0ID09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gbGVmdCB8fCByaWdodDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyByb3VuZCh2YWx1ZTogQmlnU291cmNlLCBmcmFjdGlvbkRpZ2l0cz86IG51bWJlcik6IEJpZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQodmFsdWUpLnJvdW5kKGZyYWN0aW9uRGlnaXRzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBmbG9vcih2YWx1ZTogQmlnU291cmNlKTogQmlnIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKGlzQmlnU291cmNlKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZCh3cmFwRGVjaW1hbE9wZXJhbmQodmFsdWUpLnJvdW5kKHVuZGVmaW5lZCwgMCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHN1bShsZWZ0OiBCaWdTb3VyY2UsIHJpZ2h0OiBCaWdTb3VyY2UpOiBCaWcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIWlzQmlnT3JOdW1iZXIobGVmdCkgJiYgIWlzQmlnT3JOdW1iZXIocmlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzQmlnU291cmNlKGxlZnQpICYmIGlzQmlnU291cmNlKHJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZChsZWZ0KS5hZGQocmlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzQmlnU291cmNlKGxlZnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcERlY2ltYWxPcGVyYW5kKGxlZnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzQmlnU291cmNlKHJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZChyaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhYnMoYXJndW1lbnQ6IEJpZ1NvdXJjZSk6IEJpZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShhcmd1bWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQoYXJndW1lbnQpLmFicygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHhhYnMoYXJndW1lbnQ6IEJpZ1NvdXJjZSk6IEJpZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShhcmd1bWVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gd3JhcERlY2ltYWxPcGVyYW5kKGFyZ3VtZW50KTtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5sdCgwKSA/IG5ldyBCaWcoMCkgOiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBsZW5ndGgoYXJndW1lbnQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodHlwZW9mIGFyZ3VtZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJndW1lbnQubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGV4aXN0cyh2YWx1ZVNlbGVjdG9yOiAocGF0aDogc3RyaW5nKSA9PiB1bmtub3duLCBwYXRoOiBzdHJpbmcpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHZhbHVlU2VsZWN0b3IgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVTZWxlY3RvcihwYXRoKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlICE9IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPSBcIlwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1NuaWxzKHZhbHVlU2VsZWN0b3I6IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZywgcGF0aDogc3RyaW5nKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh2YWx1ZVNlbGVjdG9yID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlU2VsZWN0b3IocGF0aCk7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRTbmlscyA9IHZhbHVlPy5yZXBsYWNlKC9bXjAtOV0vZywgXCJcIik7XG4gICAgICAgIGlmIChpc051bGxPcldoaXRlU3BhY2Uobm9ybWFsaXplZFNuaWxzKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFZhbGlkYXRpb25IZWxwZXIuaXNTbmlscyhub3JtYWxpemVkU25pbHMpO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGlzSW5uKHZhbHVlU2VsZWN0b3I6IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZywgcGF0aDogc3RyaW5nKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh2YWx1ZVNlbGVjdG9yID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlU2VsZWN0b3IocGF0aCk7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRTbmlscyA9IHZhbHVlPy5yZXBsYWNlKC9bXjAtOV0vZywgXCJcIik7XG4gICAgICAgIGlmIChpc051bGxPcldoaXRlU3BhY2Uobm9ybWFsaXplZFNuaWxzKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFZhbGlkYXRpb25IZWxwZXIuaXNJbm4obm9ybWFsaXplZFNuaWxzKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1ZhbGlkQWNjb3VudE51bWJlcihcbiAgICAgICAgdmFsdWVTZWxlY3RvcjogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nLFxuICAgICAgICBiaWs6IHN0cmluZyxcbiAgICAgICAgYWNjb3VudDogc3RyaW5nXG4gICAgKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh2YWx1ZVNlbGVjdG9yID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBiaWtWYWx1ZSA9IHZhbHVlU2VsZWN0b3IoYmlrKTtcbiAgICAgICAgY29uc3QgYWNjb3VudFZhbHVlID0gdmFsdWVTZWxlY3RvcihhY2NvdW50KTtcbiAgICAgICAgaWYgKGlzTnVsbE9yV2hpdGVTcGFjZShiaWtWYWx1ZSkgfHwgaXNOdWxsT3JXaGl0ZVNwYWNlKGFjY291bnRWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQgPSBWYWxpZGF0aW9uSGVscGVyLmlzVmFsaWRBY2NvdW50TnVtYmVyKGJpa1ZhbHVlLCBhY2NvdW50VmFsdWUpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1ZhbGlkTWlyQ2FyZE51bWJlcih2YWx1ZVNlbGVjdG9yOiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmcsIHBhdGg6IHN0cmluZyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodmFsdWVTZWxlY3RvciA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZVNlbGVjdG9yKHBhdGgpO1xuICAgICAgICBpZiAoaXNOdWxsT3JXaGl0ZVNwYWNlKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFZhbGlkYXRpb25IZWxwZXIuaXNWYWxpZE1pckNhcmROdW1iZXIodmFsdWUpO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnZlcnRUb0RlY2ltYWwoYXJndW1lbnQ6IEJpZ1NvdXJjZSB8IHN0cmluZyB8IHVuZGVmaW5lZCk6IEJpZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQoYXJndW1lbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb252ZXJ0VG9TdHJpbmcoYXJndW1lbnQ6IEJpZ1NvdXJjZSB8IHVuZGVmaW5lZCB8IG51bGwpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodHlwZW9mIGFyZ3VtZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJndW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGFyZ3VtZW50ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJndW1lbnQudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhcmd1bWVudCBpbnN0YW5jZW9mIEJpZykge1xuICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50LnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdleE1hdGNoKHBhdHRlcm46IHN0cmluZyB8IHVuZGVmaW5lZCwgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAocGF0dGVybiA9PSB1bmRlZmluZWQgfHwgdmFsdWUgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHBhdHRlcm4pLnRlc3QodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG9uZW9mKHZhbHVlczogQXJyYXk8c3RyaW5nIHwgbnVtYmVyIHwgQmlnPiwgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IEJpZyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodmFsdWVzID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWVzLmluZGV4T2YodmFsdWUpICE9PSAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0JpZ09yTnVtYmVyKHZhbHVlKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVBc0JpZyA9IG5ldyBCaWcodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlcy5zb21lKGl0ZW0gPT4gaXNCaWdPck51bWJlcihpdGVtKSAmJiB2YWx1ZUFzQmlnLmVxKGl0ZW0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3Vic3RyaW5nKFxuICAgICAgICBzdHI6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgICAgc3RhcnQ6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICAgICAgbGVuZ3RoOiBudW1iZXIgfCB1bmRlZmluZWRcbiAgICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoc3RyID09IHVuZGVmaW5lZCB8fCBzdGFydCA9PSB1bmRlZmluZWQgfHwgbGVuZ3RoID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGVuZ3RoIDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVuZCA9IHN0YXJ0ICsgbGVuZ3RoO1xuXG4gICAgICAgIHJldHVybiBzdHIuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkYXRlTm93KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZyhcInJ1LVJVXCIpO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLElBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGlCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSx3QkFBQSxHQUFBRixPQUFBO0FBRUEsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBRUEsTUFBTUksV0FBVyxHQUFJQyxLQUFnQixJQUFjO0VBQy9DLElBQUksT0FBT0EsS0FBSyxLQUFLLFFBQVEsSUFBSSxPQUFPQSxLQUFLLEtBQUssUUFBUSxJQUFJQSxLQUFLLFlBQVlDLFlBQUcsRUFBRTtJQUNoRixPQUFPLElBQUk7RUFDZjtFQUNBLE9BQU8sS0FBSztBQUNoQixDQUFDO0FBRUQsTUFBTUMsYUFBYSxHQUFJRixLQUFnRCxJQUNuRSxPQUFPQSxLQUFLLEtBQUssUUFBUSxJQUFJQSxLQUFLLFlBQVlDLFlBQUc7QUFFOUMsTUFBTUUsa0JBQWtCLENBQUM7RUFHckJDLEdBQUdBLENBQUNDLElBQXlCLEVBQUVDLEtBQTBCLEVBQXVCO0lBQ25GLElBQUlELElBQUksSUFBSUUsU0FBUyxJQUFJRCxLQUFLLElBQUlDLFNBQVMsRUFBRTtNQUN6QyxPQUFPQSxTQUFTO0lBQ3BCO0lBQ0EsT0FBT0YsSUFBSSxJQUFJQyxLQUFLO0VBQ3hCO0VBRU9FLFFBQVFBLENBQUNILElBQWUsRUFBRUMsS0FBZ0IsRUFBbUI7SUFDaEUsSUFBSVAsV0FBVyxDQUFDTSxJQUFJLENBQUMsSUFBSU4sV0FBVyxDQUFDTyxLQUFLLENBQUMsRUFBRTtNQUN6QyxPQUFPLElBQUFHLDJDQUFrQixFQUFDSixJQUFJLENB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
|
|
266
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYmlnIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfVmFsaWRhdGlvbkhlbHBlciIsIl9BdXRvY2FsY0NvbW1vbkZ1bmN0aW9ucyIsIl9EYXRlSGVscGVycyIsIl9UeXBpbmdVdGlscyIsImlzQmlnU291cmNlIiwidmFsdWUiLCJCaWciLCJpc0JpZ09yTnVtYmVyIiwiS0NMYW5nUnVudGltZVV0aWxzIiwiYW5kIiwibGVmdCIsInJpZ2h0IiwidW5kZWZpbmVkIiwiZGl2aXNpb24iLCJ3cmFwRGVjaW1hbE9wZXJhbmQiLCJkaXYiLCJlcSIsImNtcCIsImdlIiwiZ3RlIiwiZ3QiLCJsZSIsImx0ZSIsImx0IiwibWludXMiLCJhcmd1bWVudCIsIm11bCIsIm11bHRpcGx5Iiwibm90Iiwibm90ZXEiLCJvciIsInJvdW5kIiwiZnJhY3Rpb25EaWdpdHMiLCJmbG9vciIsImdldFllYXIiLCJfRGF0ZSIsIkRhdGUiLCJnZXRGdWxsWWVhciIsImRhdGVUaW1lIiwiZGF0ZSIsImlzTm90TnVsbE9yRW1wdHkiLCJjb252ZXJ0RGF0ZSIsInN1bSIsImFkZCIsImFicyIsInhhYnMiLCJsZW5ndGgiLCJleGlzdHMiLCJ2YWx1ZVNlbGVjdG9yIiwicGF0aCIsImlzU25pbHMiLCJub3JtYWxpemVkU25pbHMiLCJyZXBsYWNlIiwiaXNOdWxsT3JXaGl0ZVNwYWNlIiwicmVzdWx0IiwiVmFsaWRhdGlvbkhlbHBlciIsImlzUmVnTnVtU2ZyIiwibm9ybWFsaXplZFJlZ051bSIsImlzSW5uIiwiaXNWYWxpZEFjY291bnROdW1iZXIiLCJiaWsiLCJhY2NvdW50IiwiYmlrVmFsdWUiLCJhY2NvdW50VmFsdWUiLCJpc1ZhbGlkTWlyQ2FyZE51bWJlciIsImNvbnZlcnRUb0RlY2ltYWwiLCJjb252ZXJ0VG9TdHJpbmciLCJ0b1N0cmluZyIsInJlZ2V4TWF0Y2giLCJwYXR0ZXJuIiwiUmVnRXhwIiwidGVzdCIsIm9uZW9mIiwidmFsdWVzIiwiaW5kZXhPZiIsInZhbHVlQXNCaWciLCJzb21lIiwiaXRlbSIsInN1YnN0cmluZyIsInN0ciIsInN0YXJ0IiwiZW5kIiwiZGF0ZU5vdyIsInRvTG9jYWxlRGF0ZVN0cmluZyIsImV4cG9ydHMiLCJrY0xhbmdVdGlsc05hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9Db21tb24vS0NMYW5nUnVudGltZVV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCaWcsIHsgQmlnU291cmNlIH0gZnJvbSBcImJpZy5qc1wiO1xuXG5pbXBvcnQgeyBWYWxpZGF0aW9uSGVscGVyIH0gZnJvbSBcIi4uL0VuZ2luZS9zcmMvRW5naW5lL1ZhbGlkYXRpb25IZWxwZXJcIjtcbmltcG9ydCB7IHdyYXBEZWNpbWFsT3BlcmFuZCB9IGZyb20gXCIuLi9FbmdpbmUvc3JjL0hlbHBlcnMvQXV0b2NhbGNDb21tb25GdW5jdGlvbnNcIjtcbmltcG9ydCB7IGNvbnZlcnREYXRlIH0gZnJvbSBcIi4uL0VuZ2luZS9zcmMvSGVscGVycy9EYXRlSGVscGVyc1wiO1xuXG5pbXBvcnQgeyBpc05vdE51bGxPckVtcHR5LCBpc051bGxPcldoaXRlU3BhY2UgfSBmcm9tIFwiLi9UeXBpbmdVdGlsc1wiO1xuXG5jb25zdCBpc0JpZ1NvdXJjZSA9ICh2YWx1ZTogQmlnU291cmNlKTogYm9vbGVhbiA9PiB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiB8fCB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgfHwgdmFsdWUgaW5zdGFuY2VvZiBCaWcpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn07XG5cbmNvbnN0IGlzQmlnT3JOdW1iZXIgPSAodmFsdWU6IEJpZyB8IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwgfCB1bmtub3duKSA9PlxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiB8fCB2YWx1ZSBpbnN0YW5jZW9mIEJpZztcblxuZXhwb3J0IGNsYXNzIEtDTGFuZ1J1bnRpbWVVdGlscyB7XG4gICAgcHVibGljIHN0YXRpYyBrY0xhbmdVdGlsc05hbWUgPSBcImtjTGFuZ1V0aWxzXCI7XG5cbiAgICBwdWJsaWMgYW5kKGxlZnQ6IGJvb2xlYW4gfCB1bmRlZmluZWQsIHJpZ2h0OiBib29sZWFuIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChsZWZ0ID09IHVuZGVmaW5lZCB8fCByaWdodCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxlZnQgJiYgcmlnaHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGRpdmlzaW9uKGxlZnQ6IEJpZ1NvdXJjZSwgcmlnaHQ6IEJpZ1NvdXJjZSk6IEJpZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShsZWZ0KSAmJiBpc0JpZ1NvdXJjZShyaWdodCkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQobGVmdCkuZGl2KHJpZ2h0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBlcShsZWZ0OiBCaWdTb3VyY2UsIHJpZ2h0OiBCaWdTb3VyY2UpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHR5cGVvZiBsZWZ0ID09PSBcInN0cmluZ1wiICYmIHR5cGVvZiByaWdodCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIGxlZnQgPT09IHJpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShsZWZ0KSAmJiBpc0JpZ1NvdXJjZShyaWdodCkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQobGVmdCkuY21wKHJpZ2h0KSA9PT0gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdlKGxlZnQ6IEJpZ1NvdXJjZSwgcmlnaHQ6IEJpZ1NvdXJjZSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoaXNCaWdTb3VyY2UobGVmdCkgJiYgaXNCaWdTb3VyY2UocmlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcERlY2ltYWxPcGVyYW5kKGxlZnQpLmd0ZShyaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBndChsZWZ0OiBCaWdTb3VyY2UsIHJpZ2h0OiBCaWdTb3VyY2UpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGlzQmlnU291cmNlKGxlZnQpICYmIGlzQmlnU291cmNlKHJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZChsZWZ0KS5ndChyaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBsZShsZWZ0OiBCaWdTb3VyY2UsIHJpZ2h0OiBCaWdTb3VyY2UpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGlzQmlnU291cmNlKGxlZnQpICYmIGlzQmlnU291cmNlKHJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZChsZWZ0KS5sdGUocmlnaHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbHQobGVmdDogQmlnU291cmNlLCByaWdodDogQmlnU291cmNlKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShsZWZ0KSAmJiBpc0JpZ1NvdXJjZShyaWdodCkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQobGVmdCkubHQocmlnaHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWludXMoYXJndW1lbnQ6IEJpZ1NvdXJjZSk6IHVua25vd24ge1xuICAgICAgICBpZiAoaXNCaWdTb3VyY2UoYXJndW1lbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcERlY2ltYWxPcGVyYW5kKGFyZ3VtZW50KS5tdWwoLTEpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG11bHRpcGx5KGxlZnQ6IEJpZ1NvdXJjZSwgcmlnaHQ6IEJpZ1NvdXJjZSk6IHVua25vd24ge1xuICAgICAgICBpZiAoaXNCaWdTb3VyY2UobGVmdCkgJiYgaXNCaWdTb3VyY2UocmlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcERlY2ltYWxPcGVyYW5kKGxlZnQpLm11bChyaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgbm90KGxlZnQ/OiBib29sZWFuKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBsZWZ0ICE9IHVuZGVmaW5lZCA/ICFsZWZ0IDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBub3RlcShsZWZ0OiBCaWdTb3VyY2UsIHJpZ2h0OiBCaWdTb3VyY2UpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmVxKGxlZnQsIHJpZ2h0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3IobGVmdDogYm9vbGVhbiB8IHVuZGVmaW5lZCwgcmlnaHQ6IGJvb2xlYW4gfCB1bmRlZmluZWQpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHR5cGVvZiBsZWZ0ID09IFwiYm9vbGVhblwiIHx8IHR5cGVvZiByaWdodCA9PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgcmV0dXJuIGxlZnQgfHwgcmlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcm91bmQodmFsdWU6IEJpZ1NvdXJjZSwgZnJhY3Rpb25EaWdpdHM/OiBudW1iZXIpOiBCaWcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoaXNCaWdTb3VyY2UodmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcERlY2ltYWxPcGVyYW5kKHZhbHVlKS5yb3VuZChmcmFjdGlvbkRpZ2l0cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmxvb3IodmFsdWU6IEJpZ1NvdXJjZSk6IEJpZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQod3JhcERlY2ltYWxPcGVyYW5kKHZhbHVlKS5yb3VuZCh1bmRlZmluZWQsIDApKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRZZWFyKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpPy5nZXRGdWxsWWVhcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkYXRlVGltZSh2YWx1ZTogc3RyaW5nKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBpc05vdE51bGxPckVtcHR5KHZhbHVlKSA/IGNvbnZlcnREYXRlKHZhbHVlKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKCFkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxuXG4gICAgcHVibGljIHN1bShsZWZ0OiBCaWdTb3VyY2UsIHJpZ2h0OiBCaWdTb3VyY2UpOiBCaWcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIWlzQmlnT3JOdW1iZXIobGVmdCkgJiYgIWlzQmlnT3JOdW1iZXIocmlnaHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzQmlnU291cmNlKGxlZnQpICYmIGlzQmlnU291cmNlKHJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZChsZWZ0KS5hZGQocmlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzQmlnU291cmNlKGxlZnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gd3JhcERlY2ltYWxPcGVyYW5kKGxlZnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzQmlnU291cmNlKHJpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBEZWNpbWFsT3BlcmFuZChyaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhYnMoYXJndW1lbnQ6IEJpZ1NvdXJjZSk6IEJpZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShhcmd1bWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiB3cmFwRGVjaW1hbE9wZXJhbmQoYXJndW1lbnQpLmFicygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHhhYnMoYXJndW1lbnQ6IEJpZ1NvdXJjZSk6IEJpZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc0JpZ1NvdXJjZShhcmd1bWVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gd3JhcERlY2ltYWxPcGVyYW5kKGFyZ3VtZW50KTtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5sdCgwKSA/IG5ldyBCaWcoMCkgOiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBsZW5ndGgoYXJndW1lbnQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodHlwZW9mIGFyZ3VtZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJndW1lbnQubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGV4aXN0cyh2YWx1ZVNlbGVjdG9yOiAocGF0aDogc3RyaW5nKSA9PiB1bmtub3duLCBwYXRoOiBzdHJpbmcpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHZhbHVlU2VsZWN0b3IgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVTZWxlY3RvcihwYXRoKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlICE9IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPSBcIlwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1NuaWxzKHZhbHVlU2VsZWN0b3I6IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZywgcGF0aDogc3RyaW5nKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh2YWx1ZVNlbGVjdG9yID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlU2VsZWN0b3IocGF0aCk7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRTbmlscyA9IHZhbHVlPy5yZXBsYWNlKC9bXjAtOV0vZywgXCJcIik7XG4gICAgICAgIGlmIChpc051bGxPcldoaXRlU3BhY2Uobm9ybWFsaXplZFNuaWxzKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFZhbGlkYXRpb25IZWxwZXIuaXNTbmlscyhub3JtYWxpemVkU25pbHMpO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGlzUmVnTnVtU2ZyKHZhbHVlU2VsZWN0b3I6IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZywgcGF0aDogc3RyaW5nKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh2YWx1ZVNlbGVjdG9yID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlU2VsZWN0b3IocGF0aCk7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRSZWdOdW0gPSB2YWx1ZT8ucmVwbGFjZSgvW14wLTldL2csIFwiXCIpO1xuICAgICAgICBpZiAoaXNOdWxsT3JXaGl0ZVNwYWNlKG5vcm1hbGl6ZWRSZWdOdW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gVmFsaWRhdGlvbkhlbHBlci5pc1JlZ051bVNmcihub3JtYWxpemVkUmVnTnVtKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0lubih2YWx1ZVNlbGVjdG9yOiAocGF0aDogc3RyaW5nKSA9PiBzdHJpbmcsIHBhdGg6IHN0cmluZyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodmFsdWVTZWxlY3RvciA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZVNlbGVjdG9yKHBhdGgpO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkU25pbHMgPSB2YWx1ZT8ucmVwbGFjZSgvW14wLTldL2csIFwiXCIpO1xuICAgICAgICBpZiAoaXNOdWxsT3JXaGl0ZVNwYWNlKG5vcm1hbGl6ZWRTbmlscykpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQgPSBWYWxpZGF0aW9uSGVscGVyLmlzSW5uKG5vcm1hbGl6ZWRTbmlscyk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNWYWxpZEFjY291bnROdW1iZXIoXG4gICAgICAgIHZhbHVlU2VsZWN0b3I6IChwYXRoOiBzdHJpbmcpID0+IHN0cmluZyxcbiAgICAgICAgYmlrOiBzdHJpbmcsXG4gICAgICAgIGFjY291bnQ6IHN0cmluZ1xuICAgICk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodmFsdWVTZWxlY3RvciA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYmlrVmFsdWUgPSB2YWx1ZVNlbGVjdG9yKGJpayk7XG4gICAgICAgIGNvbnN0IGFjY291bnRWYWx1ZSA9IHZhbHVlU2VsZWN0b3IoYWNjb3VudCk7XG4gICAgICAgIGlmIChpc051bGxPcldoaXRlU3BhY2UoYmlrVmFsdWUpIHx8IGlzTnVsbE9yV2hpdGVTcGFjZShhY2NvdW50VmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gVmFsaWRhdGlvbkhlbHBlci5pc1ZhbGlkQWNjb3VudE51bWJlcihiaWtWYWx1ZSwgYWNjb3VudFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNWYWxpZE1pckNhcmROdW1iZXIodmFsdWVTZWxlY3RvcjogKHBhdGg6IHN0cmluZykgPT4gc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHZhbHVlU2VsZWN0b3IgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVTZWxlY3RvcihwYXRoKTtcbiAgICAgICAgaWYgKGlzTnVsbE9yV2hpdGVTcGFjZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQgPSBWYWxpZGF0aW9uSGVscGVyLmlzVmFsaWRNaXJDYXJkTnVtYmVyKHZhbHVlKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBjb252ZXJ0VG9EZWNpbWFsKGFyZ3VtZW50OiBCaWdTb3VyY2UgfCBzdHJpbmcgfCB1bmRlZmluZWQpOiBCaWcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gd3JhcERlY2ltYWxPcGVyYW5kKGFyZ3VtZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29udmVydFRvU3RyaW5nKGFyZ3VtZW50OiBCaWdTb3VyY2UgfCB1bmRlZmluZWQgfCBudWxsKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHR5cGVvZiBhcmd1bWVudCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBhcmd1bWVudCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50LnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYXJndW1lbnQgaW5zdGFuY2VvZiBCaWcpIHtcbiAgICAgICAgICAgIHJldHVybiBhcmd1bWVudC50b1N0cmluZygpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnZXhNYXRjaChwYXR0ZXJuOiBzdHJpbmcgfCB1bmRlZmluZWQsIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHBhdHRlcm4gPT0gdW5kZWZpbmVkIHx8IHZhbHVlID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cChwYXR0ZXJuKS50ZXN0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbmVvZih2YWx1ZXM6IEFycmF5PHN0cmluZyB8IG51bWJlciB8IEJpZz4sIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBCaWcpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHZhbHVlcyA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlcy5pbmRleE9mKHZhbHVlKSAhPT0gLTE7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNCaWdPck51bWJlcih2YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQXNCaWcgPSBuZXcgQmlnKHZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZXMuc29tZShpdGVtID0+IGlzQmlnT3JOdW1iZXIoaXRlbSkgJiYgdmFsdWVBc0JpZy5lcShpdGVtKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIHN1YnN0cmluZyhcbiAgICAgICAgc3RyOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgICAgIHN0YXJ0OiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgICAgIGxlbmd0aDogbnVtYmVyIHwgdW5kZWZpbmVkXG4gICAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHN0ciA9PSB1bmRlZmluZWQgfHwgc3RhcnQgPT0gdW5kZWZpbmVkIHx8IGxlbmd0aCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbmQgPSBzdGFydCArIGxlbmd0aDtcblxuICAgICAgICByZXR1cm4gc3RyLnN1YnN0cmluZyhzdGFydCwgZW5kKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGF0ZU5vdygpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoKS50b0xvY2FsZURhdGVTdHJpbmcoXCJydS1SVVwiKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxJQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxpQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsd0JBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFlBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLFlBQUEsR0FBQUosT0FBQTtBQUVBLE1BQU1LLFdBQVcsR0FBSUMsS0FBZ0IsSUFBYztFQUMvQyxJQUFJLE9BQU9BLEtBQUssS0FBSyxRQUFRLElBQUksT0FBT0EsS0FBSyxLQUFLLFFBQVEsSUFBSUEsS0FBSyxZQUFZQyxZQUFHLEVBQUU7SUFDaEYsT0FBTyxJQUFJO0VBQ2Y7RUFDQSxPQUFPLEtBQUs7QUFDaEIsQ0FBQztBQUVELE1BQU1DLGFBQWEsR0FBSUYsS0FBZ0QsSUFDbkUsT0FBT0EsS0FBSyxLQUFLLFFBQVEsSUFBSUEsS0FBSyxZQUFZQyxZQUFHO0FBRTlDLE1BQU1FLGtCQUFrQixDQUFDO0VBR3JCQyxHQUFHQSxDQUFDQyxJQUF5QixFQUFFQyxLQUEwQixFQUF1QjtJQUNuRixJQUFJRCxJQUFJLElBQUlFLFNBQVMsSUFBSUQsS0FBSyxJQUFJQyxTQUFTLEVBQUU7TUFDekMsT0FBT0Es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
|
|
@@ -6,8 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.WellKnownDirectories = void 0;
|
|
7
7
|
class WellKnownDirectories {}
|
|
8
8
|
exports.WellKnownDirectories = WellKnownDirectories;
|
|
9
|
+
WellKnownDirectories.FormsDirectory = "forms";
|
|
9
10
|
WellKnownDirectories.CandySubdirectoryName = "Candy";
|
|
10
11
|
WellKnownDirectories.FormJsonFileName = "form.json";
|
|
11
12
|
WellKnownDirectories.GeneratedFormSubdirectory = "form";
|
|
12
13
|
WellKnownDirectories.TestFarmDir = "TestFarm";
|
|
13
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXZWxsS25vd25EaXJlY3RvcmllcyIsImV4cG9ydHMiLCJGb3Jtc0RpcmVjdG9yeSIsIkNhbmR5U3ViZGlyZWN0b3J5TmFtZSIsIkZvcm1Kc29uRmlsZU5hbWUiLCJHZW5lcmF0ZWRGb3JtU3ViZGlyZWN0b3J5IiwiVGVzdEZhcm1EaXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9Db21tb24vV2VsbEtub3duRGlyZWN0b3JpZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFdlbGxLbm93bkRpcmVjdG9yaWVzIHtcbiAgICBwdWJsaWMgc3RhdGljIEZvcm1zRGlyZWN0b3J5ID0gXCJmb3Jtc1wiO1xuXG4gICAgcHVibGljIHN0YXRpYyBDYW5keVN1YmRpcmVjdG9yeU5hbWUgPSBcIkNhbmR5XCI7XG4gICAgcHVibGljIHN0YXRpYyBGb3JtSnNvbkZpbGVOYW1lID0gXCJmb3JtLmpzb25cIjtcbiAgICBwdWJsaWMgc3RhdGljIEdlbmVyYXRlZEZvcm1TdWJkaXJlY3RvcnkgPSBcImZvcm1cIjtcblxuICAgIHB1YmxpYyBzdGF0aWMgVGVzdEZhcm1EaXIgPSBcIlRlc3RGYXJtXCI7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFPLE1BQU1BLG9CQUFvQixDQUFDO0FBUWpDQyxPQUFBLENBQUFELG9CQUFBLEdBQUFBLG9CQUFBO0FBUllBLG9CQUFvQixDQUNmRSxjQUFjLEdBQUcsT0FBTztBQUQ3QkYsb0JBQW9CLENBR2ZHLHFCQUFxQixHQUFHLE9BQU87QUFIcENILG9CQUFvQixDQUlmSSxnQkFBZ0IsR0FBRyxXQUFXO0FBSm5DSixvQkFBb0IsQ0FLZksseUJBQXlCLEdBQUcsTUFBTTtBQUx2Q0wsb0JBQW9CLENBT2ZNLFdBQVcsR0FBRyxVQUFVIn0=
|
|
@@ -20,7 +20,7 @@ var _FarmDirectory = require("./Directories/FarmDirectory");
|
|
|
20
20
|
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _dec19, _dec20, _dec21, _dec22, _class;
|
|
21
21
|
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); }
|
|
22
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
|
-
let BuildServerBackendResourcesController = (_dec = (0, _Methods.httpGet)("/gfvs", _Results.httpReturn.Json), _dec2 = (0, _Methods.httpGet)("/picklists", _Results.httpReturn.PlainText), _dec3 = (0, _Methods.httpGet)("/picklists/:picklistFilename", _Results.httpReturn.StreamWithMime("application/json"), (0, _Params.httpUrlParam)("picklistFilename", _Params.httpType.String)), _dec4 = (0, _Methods.httpGet)("/converters", _Results.httpReturn.PlainText), _dec5 = (0, _Methods.httpGet)("/converters/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("filename", _Params.httpType.String)), _dec6 = (0, _Methods.httpGet)("/mergers", _Results.httpReturn.PlainText), _dec7 = (0, _Methods.httpGet)("/mergers/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("filename", _Params.httpType.String)), _dec8 = (0, _Methods.httpGet)("/schemas", _Results.httpReturn.PlainText), _dec9 = (0, _Methods.httpGet)("/schemas/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("filename", _Params.httpType.String)), _dec10 = (0, _Methods.httpGet)("/presentations", _Results.httpReturn.PlainText), _dec11 = (0, _Methods.httpGet)("/presentations/:gfv.presentations.json", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), _dec12 = (0, _Methods.httpGet)("/normalize", _Results.httpReturn.PlainText), _dec13 = (0, _Methods.httpGet)("/normalize/:gfv.xml", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), _dec14 = (0, _Methods.httpGet)("/normalize/:gfv.normalize", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), _dec15 = (0, _Methods.httpGet)("/attachmentpaths", _Results.httpReturn.PlainText), _dec16 = (0, _Methods.httpGet)("/attachmentpaths/:gfv.json", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), _dec17 = (0, _Methods.httpGet)("/unmap", _Results.httpReturn.PlainText), _dec18 = (0, _Methods.httpGet)("/unmap/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("
|
|
23
|
+
let BuildServerBackendResourcesController = (_dec = (0, _Methods.httpGet)("/gfvs", _Results.httpReturn.Json), _dec2 = (0, _Methods.httpGet)("/picklists", _Results.httpReturn.PlainText), _dec3 = (0, _Methods.httpGet)("/picklists/:picklistFilename", _Results.httpReturn.StreamWithMime("application/json"), (0, _Params.httpUrlParam)("picklistFilename", _Params.httpType.String)), _dec4 = (0, _Methods.httpGet)("/converters", _Results.httpReturn.PlainText), _dec5 = (0, _Methods.httpGet)("/converters/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("filename", _Params.httpType.String)), _dec6 = (0, _Methods.httpGet)("/mergers", _Results.httpReturn.PlainText), _dec7 = (0, _Methods.httpGet)("/mergers/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("filename", _Params.httpType.String)), _dec8 = (0, _Methods.httpGet)("/schemas", _Results.httpReturn.PlainText), _dec9 = (0, _Methods.httpGet)("/schemas/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("filename", _Params.httpType.String)), _dec10 = (0, _Methods.httpGet)("/presentations", _Results.httpReturn.PlainText), _dec11 = (0, _Methods.httpGet)("/presentations/:gfv.presentations.json", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), _dec12 = (0, _Methods.httpGet)("/normalize", _Results.httpReturn.PlainText), _dec13 = (0, _Methods.httpGet)("/normalize/:gfv.xml", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), _dec14 = (0, _Methods.httpGet)("/normalize/:gfv.normalize", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), _dec15 = (0, _Methods.httpGet)("/attachmentpaths", _Results.httpReturn.PlainText), _dec16 = (0, _Methods.httpGet)("/attachmentpaths/:gfv.json", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), _dec17 = (0, _Methods.httpGet)("/unmap", _Results.httpReturn.PlainText), _dec18 = (0, _Methods.httpGet)("/unmap/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("filename", _Params.httpType.String)), _dec19 = (0, _Methods.httpGet)("/map", _Results.httpReturn.PlainText), _dec20 = (0, _Methods.httpGet)("/map/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("filename", _Params.httpType.String)), _dec21 = (0, _Methods.httpGet)("/patch", _Results.httpReturn.PlainText), _dec22 = (0, _Methods.httpGet)("/patch/:filename", _Results.httpReturn.Stream, (0, _Params.httpUrlParam)("gfv", _Params.httpType.String)), (_class = class BuildServerBackendResourcesController extends _SingletonController.SingletonController {
|
|
24
24
|
constructor(allFarmConfig, flangNormalizationSourcesProvider) {
|
|
25
25
|
super();
|
|
26
26
|
this.generatedServerSideSourcesProvider = void 0;
|
|
@@ -164,4 +164,4 @@ let BuildServerBackendResourcesController = (_dec = (0, _Methods.httpGet)("/gfvs
|
|
|
164
164
|
}
|
|
165
165
|
}, ((0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllGfvs", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, "getAllGfvs"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllPicklists", [_dec2], Object.getOwnPropertyDescriptor(_class.prototype, "getAllPicklists"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getPicklists", [_dec3], Object.getOwnPropertyDescriptor(_class.prototype, "getPicklists"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllConvertersFiles", [_dec4], Object.getOwnPropertyDescriptor(_class.prototype, "getAllConvertersFiles"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getConverterFile", [_dec5], Object.getOwnPropertyDescriptor(_class.prototype, "getConverterFile"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllMergersFiles", [_dec6], Object.getOwnPropertyDescriptor(_class.prototype, "getAllMergersFiles"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getMergerFile", [_dec7], Object.getOwnPropertyDescriptor(_class.prototype, "getMergerFile"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllSchemasFiles", [_dec8], Object.getOwnPropertyDescriptor(_class.prototype, "getAllSchemasFiles"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getFormSchemas", [_dec9], Object.getOwnPropertyDescriptor(_class.prototype, "getFormSchemas"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllFormPresentations", [_dec10], Object.getOwnPropertyDescriptor(_class.prototype, "getAllFormPresentations"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getFormPresentations", [_dec11], Object.getOwnPropertyDescriptor(_class.prototype, "getFormPresentations"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllNormalizeFiles", [_dec12], Object.getOwnPropertyDescriptor(_class.prototype, "getAllNormalizeFiles"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getNormalizeFile", [_dec13], Object.getOwnPropertyDescriptor(_class.prototype, "getNormalizeFile"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getFLangNormalizeFile", [_dec14], Object.getOwnPropertyDescriptor(_class.prototype, "getFLangNormalizeFile"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllAttachmentPathsFileNames", [_dec15], Object.getOwnPropertyDescriptor(_class.prototype, "getAllAttachmentPathsFileNames"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAttachmentPathFile", [_dec16], Object.getOwnPropertyDescriptor(_class.prototype, "getAttachmentPathFile"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllUnmapFiles", [_dec17], Object.getOwnPropertyDescriptor(_class.prototype, "getAllUnmapFiles"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getUnmapFile", [_dec18], Object.getOwnPropertyDescriptor(_class.prototype, "getUnmapFile"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllMapFiles", [_dec19], Object.getOwnPropertyDescriptor(_class.prototype, "getAllMapFiles"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getMapFile", [_dec20], Object.getOwnPropertyDescriptor(_class.prototype, "getMapFile"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getAllPatchFiles", [_dec21], Object.getOwnPropertyDescriptor(_class.prototype, "getAllPatchFiles"), _class.prototype), (0, _applyDecoratedDescriptor2.default)(_class.prototype, "getPatchFile", [_dec22], Object.getOwnPropertyDescriptor(_class.prototype, "getPatchFile"), _class.prototype)), _class));
|
|
166
166
|
exports.BuildServerBackendResourcesController = BuildServerBackendResourcesController;
|
|
167
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnMiLCJyZXF1aXJlIiwicGF0aCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2ZzRXh0cmEiLCJfbG9kYXNoIiwiX01ldGhvZHMiLCJfTm90Rm91bmRXZWJFcnJvciIsIl9QYXJhbXMiLCJfUmVzdWx0cyIsIl9TdHJlYW1SZXN1bHRIYW5kbGVyIiwiX1NpbmdsZXRvbkNvbnRyb2xsZXIiLCJfRmFybURpcmVjdG9yeSIsIl9kZWMiLCJfZGVjMiIsIl9kZWMzIiwiX2RlYzQiLCJfZGVjNSIsIl9kZWM2IiwiX2RlYzciLCJfZGVjOCIsIl9kZWM5IiwiX2RlYzEwIiwiX2RlYzExIiwiX2RlYzEyIiwiX2RlYzEzIiwiX2RlYzE0IiwiX2RlYzE1IiwiX2RlYzE2IiwiX2RlYzE3IiwiX2RlYzE4IiwiX2RlYzE5IiwiX2RlYzIwIiwiX2RlYzIxIiwiX2RlYzIyIiwiX2NsYXNzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkJ1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc0NvbnRyb2xsZXIiLCJodHRwR2V0IiwiaHR0cFJldHVybiIsIkpzb24iLCJQbGFpblRleHQiLCJTdHJlYW1XaXRoTWltZSIsImh0dHBVcmxQYXJhbSIsImh0dHBUeXBlIiwiU3RyaW5nIiwiU3RyZWFtIiwiU2luZ2xldG9uQ29udHJvbGxlciIsImNvbnN0cnVjdG9yIiwiYWxsRmFybUNvbmZpZyIsImZsYW5nTm9ybWFsaXphdGlvblNvdXJjZXNQcm92aWRlciIsImdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXIiLCJhbGxTY2hlbWFzRmlsZXMiLCJyZXNldEFsbFNjaGVtYUZpbGVzRGVib3VuY2VkIiwiYWxsRmFybURpcmVjdG9yaWVzIiwibWFwIiwiaSIsIkZhcm1EaXJlY3RvcnkiLCJmYXJtRGlyZWN0b3J5IiwiZGVib3VuY2UiLCJ1bmRlZmluZWQiLCJnZXRBbGxHZnZzIiwiUHJvbWlzZSIsImFsbCIsIngiLCJmbGF0IiwiZ2V0QWxsUGlja2xpc3RzIiwiam9pbiIsImdldFBpY2tsaXN0cyIsInBpY2tsaXN0RmlsZW5hbWUiLCJhbGxGaWxlUGF0aCIsInBhdGhGaWxlIiwicGF0aEV4aXN0cyIsImNyZWF0ZVJlYWRTdHJlYW0iLCJFcnJvciIsImdldEFsbENvbnZlcnRlcnNGaWxlcyIsImZsYXRNYXAiLCJnZXRBbGxDb252ZXJ0ZXJGaWxlUGF0aHMiLCJiYXNlbmFtZSIsImdldENvbnZlcnRlckZpbGUiLCJmaWxlbmFtZSIsImZpbGVQYXRoIiwiZ2V0Q29udmVydGVyRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJGaWxlU3RyZWFtUmVzdWx0IiwiTm90Rm91bmRXZWJFcnJvciIsImdldEFsbE1lcmdlcnNGaWxlcyIsImdldEFsbE1lcmdlcnNGaWxlUGF0aHMiLCJnZXRNZXJnZXJGaWxlIiwiZ2V0TWVyZ2Vyc0ZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsU2NoZW1hc0ZpbGVzIiwiZ2V0QWxsU2NoZW1hc0ZpbGVQYXRocyIsImdldEZvcm1TY2hlbWFzIiwiZ2V0U2NoZW1hRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJnZXRBbGxGb3JtUHJlc2VudGF0aW9ucyIsImdldEFsbFByZXNlbnRhdGlvbnNGaWxlTmFtZXMiLCJnZXRGb3JtUHJlc2VudGF0aW9ucyIsImdmdiIsImdldFByZXNlbnRhdGlvbnNGaWxlUGF0aEJ5R2Z2T3JVbmRlZmluZWQiLCJnZXRBbGxOb3JtYWxpemVGaWxlcyIsImZpbGVzIiwiZ2V0QWxsTm9ybWFsaXplRmlsZVBhdGhzIiwiZmxhbmdGaWxlcyIsImdldEFsbE5vcm1hbGl6YXRpb25GaWxlTmFtZXMiLCJnZXROb3JtYWxpemVGaWxlIiwiZ2V0Tm9ybWFsaXplRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJnZXRGTGFuZ05vcm1hbGl6ZUZpbGUiLCJTdHJlYW1SZXN1bHQiLCJnZXROb3JtYWxpemF0aW9uRmlsZUNvbnRlbnQiLCJnZXRBbGxBdHRhY2htZW50UGF0aHNGaWxlTmFtZXMiLCJnZXRBbGxBdHRhY2htZW50UGF0aEZpbGVOYW1lcyIsImdldEF0dGFjaG1lbnRQYXRoRmlsZSIsImdldEF0dGFjaG1lbnRQYXRoc0ZpbGVDb250ZW50IiwiZ2V0QWxsVW5tYXBGaWxlcyIsImdldEFsbFVubWFwRmlsZVBhdGhzIiwiZ2V0VW5tYXBGaWxlIiwiZ2V0VW5tYXBGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZCIsImdldEFsbE1hcEZpbGVzIiwiZ2V0QWxsTWFwRmlsZVBhdGhzIiwiZ2V0TWFwRmlsZSIsImdldE1hcEZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsUGF0Y2hGaWxlcyIsImdldEFsbFBhdGNoRmlsZVBhdGhzIiwiZ2V0UGF0Y2hGaWxlIiwiZ2V0UGF0Y2hGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZCIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IyIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlckJhY2tlbmRSZXNvdXJjZXNDb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlYWRTdHJlYW0sIFJlYWRTdHJlYW0gfSBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgcGF0aEV4aXN0cyB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IF8sIHsgZGVib3VuY2UgfSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQgeyBGYXJtQ29uZmlnIH0gZnJvbSBcIlRvb2xzL3NyYy9DYW5keUNMSVwiO1xuXG5pbXBvcnQgeyBodHRwR2V0IH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL01ldGhvZHNcIjtcbmltcG9ydCB7IE5vdEZvdW5kV2ViRXJyb3IgfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvTm90Rm91bmRXZWJFcnJvclwiO1xuaW1wb3J0IHsgaHR0cFR5cGUsIGh0dHBVcmxQYXJhbSB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvQXR0cmlidXRlUm91dGluZy9QYXJhbXNcIjtcbmltcG9ydCB7IGh0dHBSZXR1cm4gfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvUmVzdWx0c1wiO1xuaW1wb3J0IHtcbiAgICBGaWxlU3RyZWFtUmVzdWx0LFxuICAgIFN0cmVhbVJlc3VsdCxcbn0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL1Jlc3VsdHMvU3RyZWFtUmVzdWx0SGFuZGxlclwiO1xuaW1wb3J0IHsgU2luZ2xldG9uQ29udHJvbGxlciB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvRXhwcmVzc1dyYXBwZXIvU2luZ2xldG9uQ29udHJvbGxlclwiO1xuXG5pbXBvcnQgeyBJR2VuZXJhdGVkU2VydmVyU2lkZVNvdXJjZXNQcm92aWRlciB9IGZyb20gXCIuL0lHZW5lcmF0ZWRTZXJ2ZXJTaWRlU291cmNlc1Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBGYXJtRGlyZWN0b3J5IH0gZnJvbSBcIi4vRGlyZWN0b3JpZXMvRmFybURpcmVjdG9yeVwiO1xuXG5leHBvcnQgY2xhc3MgQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzQ29udHJvbGxlciBleHRlbmRzIFNpbmdsZXRvbkNvbnRyb2xsZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZ2VuZXJhdGVkU2VydmVyU2lkZVNvdXJjZXNQcm92aWRlcjogSUdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXI7XG4gICAgcHJpdmF0ZSBhbGxTY2hlbWFzRmlsZXM6IHVuZGVmaW5lZCB8IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc2V0QWxsU2NoZW1hRmlsZXNEZWJvdW5jZWQ6ICgpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxGYXJtRGlyZWN0b3JpZXM6IEZhcm1EaXJlY3RvcnlbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsbEZhcm1Db25maWc6IEZhcm1Db25maWdbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgYWxsRmFybUNvbmZpZzogRmFybUNvbmZpZ1tdLFxuICAgICAgICBmbGFuZ05vcm1hbGl6YXRpb25Tb3VyY2VzUHJvdmlkZXI6IElHZW5lcmF0ZWRTZXJ2ZXJTaWRlU291cmNlc1Byb3ZpZGVyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVkU2VydmVyU2lkZVNvdXJjZXNQcm92aWRlciA9IGZsYW5nTm9ybWFsaXphdGlvblNvdXJjZXNQcm92aWRlcjtcbiAgICAgICAgdGhpcy5hbGxGYXJtQ29uZmlnID0gYWxsRmFybUNvbmZpZztcbiAgICAgICAgdGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMgPSBhbGxGYXJtQ29uZmlnLm1hcChpID0+IG5ldyBGYXJtRGlyZWN0b3J5KGkuZmFybURpcmVjdG9yeSkpO1xuICAgICAgICB0aGlzLnJlc2V0QWxsU2NoZW1hRmlsZXNEZWJvdW5jZWQgPSBkZWJvdW5jZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFsbFNjaGVtYXNGaWxlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSwgNTAwMCk7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvZ2Z2c1wiLCBodHRwUmV0dXJuLkpzb24pXG4gICAgcHVibGljIGFzeW5jIGdldEFsbEdmdnMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLm1hcCh4ID0+IHguZ2V0QWxsR2Z2cygpKSkpLmZsYXQoKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9waWNrbGlzdHNcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbFBpY2tsaXN0cygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLm1hcCh4ID0+IHguZ2V0QWxsUGlja2xpc3RzKCkpKSkuZmxhdCgpLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXG4gICAgICAgIFwiL3BpY2tsaXN0cy86cGlja2xpc3RGaWxlbmFtZVwiLFxuICAgICAgICBodHRwUmV0dXJuLlN0cmVhbVdpdGhNaW1lKFwiYXBwbGljYXRpb24vanNvblwiKSxcbiAgICAgICAgaHR0cFVybFBhcmFtKFwicGlja2xpc3RGaWxlbmFtZVwiLCBodHRwVHlwZS5TdHJpbmcpXG4gICAgKVxuICAgIHB1YmxpYyBhc3luYyBnZXRQaWNrbGlzdHMocGlja2xpc3RGaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxSZWFkU3RyZWFtPiB7XG4gICAgICAgIGNvbnN0IGFsbEZpbGVQYXRoID0gdGhpcy5hbGxGYXJtQ29uZmlnLm1hcChpID0+IHBhdGguam9pbihpLmZhcm1EaXJlY3RvcnksIFwicGlja2xpc3RzXCIsIHBpY2tsaXN0RmlsZW5hbWUpKTtcbiAgICAgICAgZm9yIChjb25zdCBwYXRoRmlsZSBvZiBhbGxGaWxlUGF0aCkge1xuICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMocGF0aEZpbGUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlYWRTdHJlYW0ocGF0aEZpbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRocm93IEVycm9yKGBub3QgZm91bmQgcGlja2xpc3RGaWxlbmFtZSAke3BpY2tsaXN0RmlsZW5hbWV9YCk7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvY29udmVydGVyc1wiLCBodHRwUmV0dXJuLlBsYWluVGV4dClcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsQ29udmVydGVyc0ZpbGVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMuZmxhdE1hcCh4ID0+IHguZ2V0QWxsQ29udmVydGVyRmlsZVBhdGhzKCkpKSlcbiAgICAgICAgICAgIC5mbGF0KClcbiAgICAgICAgICAgIC5tYXAoeCA9PiBwYXRoLmJhc2VuYW1lKHgpKVxuICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvY29udmVydGVycy86ZmlsZW5hbWVcIiwgaHR0cFJldHVybi5TdHJlYW0sIGh0dHBVcmxQYXJhbShcImZpbGVuYW1lXCIsIGh0dHBUeXBlLlN0cmluZykpXG4gICAgcHVibGljIGFzeW5jIGdldENvbnZlcnRlckZpbGUoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8RmlsZVN0cmVhbVJlc3VsdD4ge1xuICAgICAgICBmb3IgKGNvbnN0IGZhcm1EaXJlY3Rvcnkgb2YgdGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gYXdhaXQgZmFybURpcmVjdG9yeS5nZXRDb252ZXJ0ZXJGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoZmlsZVBhdGggIT0gbnVsbCAmJiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWxlU3RyZWFtUmVzdWx0KGZpbGVQYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZFdlYkVycm9yKFwiRmlsZSBub3QgZm91bmRcIiwgZmFsc2UpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL21lcmdlcnNcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbE1lcmdlcnNGaWxlcygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLmZsYXRNYXAoeCA9PiB4LmdldEFsbE1lcmdlcnNGaWxlUGF0aHMoKSkpKVxuICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgLm1hcCh4ID0+IHBhdGguYmFzZW5hbWUoeCkpXG4gICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9tZXJnZXJzLzpmaWxlbmFtZVwiLCBodHRwUmV0dXJuLlN0cmVhbSwgaHR0cFVybFBhcmFtKFwiZmlsZW5hbWVcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0TWVyZ2VyRmlsZShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxGaWxlU3RyZWFtUmVzdWx0PiB7XG4gICAgICAgIGZvciAoY29uc3QgZmFybURpcmVjdG9yeSBvZiB0aGlzLmFsbEZhcm1EaXJlY3Rvcmllcykge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBhd2FpdCBmYXJtRGlyZWN0b3J5LmdldE1lcmdlcnNGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoZmlsZVBhdGggIT0gbnVsbCAmJiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWxlU3RyZWFtUmVzdWx0KGZpbGVQYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZFdlYkVycm9yKFwiRmlsZSBub3QgZm91bmRcIiwgZmFsc2UpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL3NjaGVtYXNcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbFNjaGVtYXNGaWxlcygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBpZiAodGhpcy5hbGxTY2hlbWFzRmlsZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5hbGxTY2hlbWFzRmlsZXMgPSAoYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMuZmxhdE1hcCh4ID0+IHguZ2V0QWxsU2NoZW1hc0ZpbGVQYXRocygpKSkpXG4gICAgICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgICAgIC5tYXAoeCA9PiBwYXRoLmJhc2VuYW1lKHgpKVxuICAgICAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzZXRBbGxTY2hlbWFGaWxlc0RlYm91bmNlZCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5hbGxTY2hlbWFzRmlsZXM7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvc2NoZW1hcy86ZmlsZW5hbWVcIiwgaHR0cFJldHVybi5TdHJlYW0sIGh0dHBVcmxQYXJhbShcImZpbGVuYW1lXCIsIGh0dHBUeXBlLlN0cmluZykpXG4gICAgcHVibGljIGFzeW5jIGdldEZvcm1TY2hlbWFzKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEZpbGVTdHJlYW1SZXN1bHQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBmYXJtRGlyZWN0b3J5IG9mIHRoaXMuYWxsRmFybURpcmVjdG9yaWVzKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGF3YWl0IGZhcm1EaXJlY3RvcnkuZ2V0U2NoZW1hRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWUpO1xuICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChmaWxlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRXZWJFcnJvcihcIkZpbGUgbm90IGZvdW5kXCIsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9wcmVzZW50YXRpb25zXCIsIGh0dHBSZXR1cm4uUGxhaW5UZXh0KVxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxGb3JtUHJlc2VudGF0aW9ucygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLmZsYXRNYXAoeCA9PiB4LmdldEFsbFByZXNlbnRhdGlvbnNGaWxlTmFtZXMoKSkpKVxuICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgLm1hcCh4ID0+IHBhdGguYmFzZW5hbWUoeCkpXG4gICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9wcmVzZW50YXRpb25zLzpnZnYucHJlc2VudGF0aW9ucy5qc29uXCIsIGh0dHBSZXR1cm4uU3RyZWFtLCBodHRwVXJsUGFyYW0oXCJnZnZcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0Rm9ybVByZXNlbnRhdGlvbnMoZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPEZpbGVTdHJlYW1SZXN1bHQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBmYXJtRGlyZWN0b3J5IG9mIHRoaXMuYWxsRmFybURpcmVjdG9yaWVzKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGF3YWl0IGZhcm1EaXJlY3RvcnkuZ2V0UHJlc2VudGF0aW9uc0ZpbGVQYXRoQnlHZnZPclVuZGVmaW5lZChnZnYpO1xuICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChmaWxlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRXZWJFcnJvcihcIkZpbGUgbm90IGZvdW5kXCIsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9ub3JtYWxpemVcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbE5vcm1hbGl6ZUZpbGVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGZpbGVzID0gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLmZsYXRNYXAoeCA9PiB4LmdldEFsbE5vcm1hbGl6ZUZpbGVQYXRocygpKSkpLmZsYXQoKTtcbiAgICAgICAgY29uc3QgZmxhbmdGaWxlcyA9IGF3YWl0IHRoaXMuZ2VuZXJhdGVkU2VydmVyU2lkZVNvdXJjZXNQcm92aWRlci5nZXRBbGxOb3JtYWxpemF0aW9uRmlsZU5hbWVzKCk7XG4gICAgICAgIHJldHVybiBbLi4uZmlsZXMubWFwKHggPT4gcGF0aC5iYXNlbmFtZSh4KSksIC4uLmZsYW5nRmlsZXNdLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvbm9ybWFsaXplLzpnZnYueG1sXCIsIGh0dHBSZXR1cm4uU3RyZWFtLCBodHRwVXJsUGFyYW0oXCJnZnZcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0Tm9ybWFsaXplRmlsZShnZnY6IHN0cmluZyk6IFByb21pc2U8RmlsZVN0cmVhbVJlc3VsdD4ge1xuICAgICAgICBmb3IgKGNvbnN0IGZhcm1EaXJlY3Rvcnkgb2YgdGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gYXdhaXQgZmFybURpcmVjdG9yeS5nZXROb3JtYWxpemVGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChgJHtnZnZ9LnhtbGApO1xuICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChmaWxlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRXZWJFcnJvcihcIkZpbGUgbm90IGZvdW5kXCIsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9ub3JtYWxpemUvOmdmdi5ub3JtYWxpemVcIiwgaHR0cFJldHVybi5TdHJlYW0sIGh0dHBVcmxQYXJhbShcImdmdlwiLCBodHRwVHlwZS5TdHJpbmcpKVxuICAgIHB1YmxpYyBhc3luYyBnZXRGTGFuZ05vcm1hbGl6ZUZpbGUoZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPFN0cmVhbVJlc3VsdD4ge1xuICAgICAgICByZXR1cm4gbmV3IFN0cmVhbVJlc3VsdChhd2FpdCB0aGlzLmdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXIuZ2V0Tm9ybWFsaXphdGlvbkZpbGVDb250ZW50KGdmdikpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL2F0dGFjaG1lbnRwYXRoc1wiLCBodHRwUmV0dXJuLlBsYWluVGV4dClcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsQXR0YWNobWVudFBhdGhzRmlsZU5hbWVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGZsYW5nRmlsZXMgPSBhd2FpdCB0aGlzLmdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXIuZ2V0QWxsQXR0YWNobWVudFBhdGhGaWxlTmFtZXMoKTtcbiAgICAgICAgcmV0dXJuIGZsYW5nRmlsZXMuam9pbihcIlxcblwiKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9hdHRhY2htZW50cGF0aHMvOmdmdi5qc29uXCIsIGh0dHBSZXR1cm4uU3RyZWFtLCBodHRwVXJsUGFyYW0oXCJnZnZcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QXR0YWNobWVudFBhdGhGaWxlKGdmdjogc3RyaW5nKTogUHJvbWlzZTxTdHJlYW1SZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdHJlYW1SZXN1bHQoYXdhaXQgdGhpcy5nZW5lcmF0ZWRTZXJ2ZXJTaWRlU291cmNlc1Byb3ZpZGVyLmdldEF0dGFjaG1lbnRQYXRoc0ZpbGVDb250ZW50KGdmdikpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL3VubWFwXCIsIGh0dHBSZXR1cm4uUGxhaW5UZXh0KVxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxVbm1hcEZpbGVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMuZmxhdE1hcCh4ID0+IHguZ2V0QWxsVW5tYXBGaWxlUGF0aHMoKSkpKVxuICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgLm1hcCh4ID0+IHBhdGguYmFzZW5hbWUoeCkpXG4gICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi91bm1hcC86ZmlsZW5hbWVcIiwgaHR0cFJldHVybi5TdHJlYW0sIGh0dHBVcmxQYXJhbShcImdmdlwiLCBodHRwVHlwZS5TdHJpbmcpKVxuICAgIHB1YmxpYyBhc3luYyBnZXRVbm1hcEZpbGUoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8RmlsZVN0cmVhbVJlc3VsdD4ge1xuICAgICAgICBmb3IgKGNvbnN0IGZhcm1EaXJlY3Rvcnkgb2YgdGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gYXdhaXQgZmFybURpcmVjdG9yeS5nZXRVbm1hcEZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkKGZpbGVuYW1lKTtcbiAgICAgICAgICAgIGlmIChmaWxlUGF0aCAhPSBudWxsICYmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEZpbGVTdHJlYW1SZXN1bHQoZmlsZVBhdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kV2ViRXJyb3IoXCJGaWxlIG5vdCBmb3VuZFwiLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvbWFwXCIsIGh0dHBSZXR1cm4uUGxhaW5UZXh0KVxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxNYXBGaWxlcygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLmZsYXRNYXAoeCA9PiB4LmdldEFsbE1hcEZpbGVQYXRocygpKSkpXG4gICAgICAgICAgICAuZmxhdCgpXG4gICAgICAgICAgICAubWFwKHggPT4gcGF0aC5iYXNlbmFtZSh4KSlcbiAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL21hcC86ZmlsZW5hbWVcIiwgaHR0cFJldHVybi5TdHJlYW0sIGh0dHBVcmxQYXJhbShcImdmdlwiLCBodHRwVHlwZS5TdHJpbmcpKVxuICAgIHB1YmxpYyBhc3luYyBnZXRNYXBGaWxlKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEZpbGVTdHJlYW1SZXN1bHQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBmYXJtRGlyZWN0b3J5IG9mIHRoaXMuYWxsRmFybURpcmVjdG9yaWVzKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGF3YWl0IGZhcm1EaXJlY3RvcnkuZ2V0TWFwRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWUpO1xuICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChmaWxlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRXZWJFcnJvcihcIkZpbGUgbm90IGZvdW5kXCIsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9wYXRjaFwiLCBodHRwUmV0dXJuLlBsYWluVGV4dClcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsUGF0Y2hGaWxlcygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLmZsYXRNYXAoeCA9PiB4LmdldEFsbFBhdGNoRmlsZVBhdGhzKCkpKSlcbiAgICAgICAgICAgIC5mbGF0KClcbiAgICAgICAgICAgIC5tYXAoeCA9PiBwYXRoLmJhc2VuYW1lKHgpKVxuICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvcGF0Y2gvOmZpbGVuYW1lXCIsIGh0dHBSZXR1cm4uU3RyZWFtLCBodHRwVXJsUGFyYW0oXCJnZnZcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0UGF0Y2hGaWxlKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEZpbGVTdHJlYW1SZXN1bHQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBmYXJtRGlyZWN0b3J5IG9mIHRoaXMuYWxsRmFybURpcmVjdG9yaWVzKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGF3YWl0IGZhcm1EaXJlY3RvcnkuZ2V0UGF0Y2hGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoZmlsZVBhdGggIT0gbnVsbCAmJiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWxlU3RyZWFtUmVzdWx0KGZpbGVQYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZFdlYkVycm9yKFwiRmlsZSBub3QgZm91bmRcIiwgZmFsc2UpO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxHQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxJQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFKLE9BQUE7QUFHQSxJQUFBSyxRQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxpQkFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sT0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsUUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsb0JBQUEsR0FBQVQsT0FBQTtBQUlBLElBQUFVLG9CQUFBLEdBQUFWLE9BQUE7QUFHQSxJQUFBVyxjQUFBLEdBQUFYLE9BQUE7QUFBNEQsSUFBQVksSUFBQSxFQUFBQyxLQUFBLEVBQUFDLEtBQUEsRUFBQUMsS0FBQSxFQUFBQyxLQUFBLEVBQUFDLEtBQUEsRUFBQUMsS0FBQSxFQUFBQyxLQUFBLEVBQUFDLEtBQUEsRUFBQUMsTUFBQSxFQUFBQyxNQUFBLEVBQUFDLE1BQUEsRUFBQUMsTUFBQSxFQUFBQyxNQUFBLEVBQUFDLE1BQUEsRUFBQUMsTUFBQSxFQUFBQyxNQUFBLEVBQUFDLE1BQUEsRUFBQUMsTUFBQSxFQUFBQyxNQUFB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
|
|
167
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnMiLCJyZXF1aXJlIiwicGF0aCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2ZzRXh0cmEiLCJfbG9kYXNoIiwiX01ldGhvZHMiLCJfTm90Rm91bmRXZWJFcnJvciIsIl9QYXJhbXMiLCJfUmVzdWx0cyIsIl9TdHJlYW1SZXN1bHRIYW5kbGVyIiwiX1NpbmdsZXRvbkNvbnRyb2xsZXIiLCJfRmFybURpcmVjdG9yeSIsIl9kZWMiLCJfZGVjMiIsIl9kZWMzIiwiX2RlYzQiLCJfZGVjNSIsIl9kZWM2IiwiX2RlYzciLCJfZGVjOCIsIl9kZWM5IiwiX2RlYzEwIiwiX2RlYzExIiwiX2RlYzEyIiwiX2RlYzEzIiwiX2RlYzE0IiwiX2RlYzE1IiwiX2RlYzE2IiwiX2RlYzE3IiwiX2RlYzE4IiwiX2RlYzE5IiwiX2RlYzIwIiwiX2RlYzIxIiwiX2RlYzIyIiwiX2NsYXNzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkJ1aWxkU2VydmVyQmFja2VuZFJlc291cmNlc0NvbnRyb2xsZXIiLCJodHRwR2V0IiwiaHR0cFJldHVybiIsIkpzb24iLCJQbGFpblRleHQiLCJTdHJlYW1XaXRoTWltZSIsImh0dHBVcmxQYXJhbSIsImh0dHBUeXBlIiwiU3RyaW5nIiwiU3RyZWFtIiwiU2luZ2xldG9uQ29udHJvbGxlciIsImNvbnN0cnVjdG9yIiwiYWxsRmFybUNvbmZpZyIsImZsYW5nTm9ybWFsaXphdGlvblNvdXJjZXNQcm92aWRlciIsImdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXIiLCJhbGxTY2hlbWFzRmlsZXMiLCJyZXNldEFsbFNjaGVtYUZpbGVzRGVib3VuY2VkIiwiYWxsRmFybURpcmVjdG9yaWVzIiwibWFwIiwiaSIsIkZhcm1EaXJlY3RvcnkiLCJmYXJtRGlyZWN0b3J5IiwiZGVib3VuY2UiLCJ1bmRlZmluZWQiLCJnZXRBbGxHZnZzIiwiUHJvbWlzZSIsImFsbCIsIngiLCJmbGF0IiwiZ2V0QWxsUGlja2xpc3RzIiwiam9pbiIsImdldFBpY2tsaXN0cyIsInBpY2tsaXN0RmlsZW5hbWUiLCJhbGxGaWxlUGF0aCIsInBhdGhGaWxlIiwicGF0aEV4aXN0cyIsImNyZWF0ZVJlYWRTdHJlYW0iLCJFcnJvciIsImdldEFsbENvbnZlcnRlcnNGaWxlcyIsImZsYXRNYXAiLCJnZXRBbGxDb252ZXJ0ZXJGaWxlUGF0aHMiLCJiYXNlbmFtZSIsImdldENvbnZlcnRlckZpbGUiLCJmaWxlbmFtZSIsImZpbGVQYXRoIiwiZ2V0Q29udmVydGVyRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJGaWxlU3RyZWFtUmVzdWx0IiwiTm90Rm91bmRXZWJFcnJvciIsImdldEFsbE1lcmdlcnNGaWxlcyIsImdldEFsbE1lcmdlcnNGaWxlUGF0aHMiLCJnZXRNZXJnZXJGaWxlIiwiZ2V0TWVyZ2Vyc0ZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsU2NoZW1hc0ZpbGVzIiwiZ2V0QWxsU2NoZW1hc0ZpbGVQYXRocyIsImdldEZvcm1TY2hlbWFzIiwiZ2V0U2NoZW1hRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJnZXRBbGxGb3JtUHJlc2VudGF0aW9ucyIsImdldEFsbFByZXNlbnRhdGlvbnNGaWxlTmFtZXMiLCJnZXRGb3JtUHJlc2VudGF0aW9ucyIsImdmdiIsImdldFByZXNlbnRhdGlvbnNGaWxlUGF0aEJ5R2Z2T3JVbmRlZmluZWQiLCJnZXRBbGxOb3JtYWxpemVGaWxlcyIsImZpbGVzIiwiZ2V0QWxsTm9ybWFsaXplRmlsZVBhdGhzIiwiZmxhbmdGaWxlcyIsImdldEFsbE5vcm1hbGl6YXRpb25GaWxlTmFtZXMiLCJnZXROb3JtYWxpemVGaWxlIiwiZ2V0Tm9ybWFsaXplRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQiLCJnZXRGTGFuZ05vcm1hbGl6ZUZpbGUiLCJTdHJlYW1SZXN1bHQiLCJnZXROb3JtYWxpemF0aW9uRmlsZUNvbnRlbnQiLCJnZXRBbGxBdHRhY2htZW50UGF0aHNGaWxlTmFtZXMiLCJnZXRBbGxBdHRhY2htZW50UGF0aEZpbGVOYW1lcyIsImdldEF0dGFjaG1lbnRQYXRoRmlsZSIsImdldEF0dGFjaG1lbnRQYXRoc0ZpbGVDb250ZW50IiwiZ2V0QWxsVW5tYXBGaWxlcyIsImdldEFsbFVubWFwRmlsZVBhdGhzIiwiZ2V0VW5tYXBGaWxlIiwiZ2V0VW5tYXBGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZCIsImdldEFsbE1hcEZpbGVzIiwiZ2V0QWxsTWFwRmlsZVBhdGhzIiwiZ2V0TWFwRmlsZSIsImdldE1hcEZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkIiwiZ2V0QWxsUGF0Y2hGaWxlcyIsImdldEFsbFBhdGNoRmlsZVBhdGhzIiwiZ2V0UGF0Y2hGaWxlIiwiZ2V0UGF0Y2hGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZCIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IyIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9CdWlsZFNlcnZlckJhY2tlbmRSZXNvdXJjZXNDb250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlYWRTdHJlYW0sIFJlYWRTdHJlYW0gfSBmcm9tIFwiZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgcGF0aEV4aXN0cyB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IF8sIHsgZGVib3VuY2UgfSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQgeyBGYXJtQ29uZmlnIH0gZnJvbSBcIlRvb2xzL3NyYy9DYW5keUNMSVwiO1xuXG5pbXBvcnQgeyBodHRwR2V0IH0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL01ldGhvZHNcIjtcbmltcG9ydCB7IE5vdEZvdW5kV2ViRXJyb3IgfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvTm90Rm91bmRXZWJFcnJvclwiO1xuaW1wb3J0IHsgaHR0cFR5cGUsIGh0dHBVcmxQYXJhbSB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvQXR0cmlidXRlUm91dGluZy9QYXJhbXNcIjtcbmltcG9ydCB7IGh0dHBSZXR1cm4gfSBmcm9tIFwiLi4vLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0F0dHJpYnV0ZVJvdXRpbmcvUmVzdWx0c1wiO1xuaW1wb3J0IHtcbiAgICBGaWxlU3RyZWFtUmVzdWx0LFxuICAgIFN0cmVhbVJlc3VsdCxcbn0gZnJvbSBcIi4uLy4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL1Jlc3VsdHMvU3RyZWFtUmVzdWx0SGFuZGxlclwiO1xuaW1wb3J0IHsgU2luZ2xldG9uQ29udHJvbGxlciB9IGZyb20gXCIuLi8uLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvRXhwcmVzc1dyYXBwZXIvU2luZ2xldG9uQ29udHJvbGxlclwiO1xuXG5pbXBvcnQgeyBJR2VuZXJhdGVkU2VydmVyU2lkZVNvdXJjZXNQcm92aWRlciB9IGZyb20gXCIuL0lHZW5lcmF0ZWRTZXJ2ZXJTaWRlU291cmNlc1Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBGYXJtRGlyZWN0b3J5IH0gZnJvbSBcIi4vRGlyZWN0b3JpZXMvRmFybURpcmVjdG9yeVwiO1xuXG5leHBvcnQgY2xhc3MgQnVpbGRTZXJ2ZXJCYWNrZW5kUmVzb3VyY2VzQ29udHJvbGxlciBleHRlbmRzIFNpbmdsZXRvbkNvbnRyb2xsZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZ2VuZXJhdGVkU2VydmVyU2lkZVNvdXJjZXNQcm92aWRlcjogSUdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXI7XG4gICAgcHJpdmF0ZSBhbGxTY2hlbWFzRmlsZXM6IHVuZGVmaW5lZCB8IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc2V0QWxsU2NoZW1hRmlsZXNEZWJvdW5jZWQ6ICgpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxGYXJtRGlyZWN0b3JpZXM6IEZhcm1EaXJlY3RvcnlbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsbEZhcm1Db25maWc6IEZhcm1Db25maWdbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgYWxsRmFybUNvbmZpZzogRmFybUNvbmZpZ1tdLFxuICAgICAgICBmbGFuZ05vcm1hbGl6YXRpb25Tb3VyY2VzUHJvdmlkZXI6IElHZW5lcmF0ZWRTZXJ2ZXJTaWRlU291cmNlc1Byb3ZpZGVyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVkU2VydmVyU2lkZVNvdXJjZXNQcm92aWRlciA9IGZsYW5nTm9ybWFsaXphdGlvblNvdXJjZXNQcm92aWRlcjtcbiAgICAgICAgdGhpcy5hbGxGYXJtQ29uZmlnID0gYWxsRmFybUNvbmZpZztcbiAgICAgICAgdGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMgPSBhbGxGYXJtQ29uZmlnLm1hcChpID0+IG5ldyBGYXJtRGlyZWN0b3J5KGkuZmFybURpcmVjdG9yeSkpO1xuICAgICAgICB0aGlzLnJlc2V0QWxsU2NoZW1hRmlsZXNEZWJvdW5jZWQgPSBkZWJvdW5jZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFsbFNjaGVtYXNGaWxlcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSwgNTAwMCk7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvZ2Z2c1wiLCBodHRwUmV0dXJuLkpzb24pXG4gICAgcHVibGljIGFzeW5jIGdldEFsbEdmdnMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLm1hcCh4ID0+IHguZ2V0QWxsR2Z2cygpKSkpLmZsYXQoKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9waWNrbGlzdHNcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbFBpY2tsaXN0cygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLm1hcCh4ID0+IHguZ2V0QWxsUGlja2xpc3RzKCkpKSkuZmxhdCgpLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXG4gICAgICAgIFwiL3BpY2tsaXN0cy86cGlja2xpc3RGaWxlbmFtZVwiLFxuICAgICAgICBodHRwUmV0dXJuLlN0cmVhbVdpdGhNaW1lKFwiYXBwbGljYXRpb24vanNvblwiKSxcbiAgICAgICAgaHR0cFVybFBhcmFtKFwicGlja2xpc3RGaWxlbmFtZVwiLCBodHRwVHlwZS5TdHJpbmcpXG4gICAgKVxuICAgIHB1YmxpYyBhc3luYyBnZXRQaWNrbGlzdHMocGlja2xpc3RGaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxSZWFkU3RyZWFtPiB7XG4gICAgICAgIGNvbnN0IGFsbEZpbGVQYXRoID0gdGhpcy5hbGxGYXJtQ29uZmlnLm1hcChpID0+IHBhdGguam9pbihpLmZhcm1EaXJlY3RvcnksIFwicGlja2xpc3RzXCIsIHBpY2tsaXN0RmlsZW5hbWUpKTtcbiAgICAgICAgZm9yIChjb25zdCBwYXRoRmlsZSBvZiBhbGxGaWxlUGF0aCkge1xuICAgICAgICAgICAgaWYgKGF3YWl0IHBhdGhFeGlzdHMocGF0aEZpbGUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlYWRTdHJlYW0ocGF0aEZpbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRocm93IEVycm9yKGBub3QgZm91bmQgcGlja2xpc3RGaWxlbmFtZSAke3BpY2tsaXN0RmlsZW5hbWV9YCk7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvY29udmVydGVyc1wiLCBodHRwUmV0dXJuLlBsYWluVGV4dClcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsQ29udmVydGVyc0ZpbGVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMuZmxhdE1hcCh4ID0+IHguZ2V0QWxsQ29udmVydGVyRmlsZVBhdGhzKCkpKSlcbiAgICAgICAgICAgIC5mbGF0KClcbiAgICAgICAgICAgIC5tYXAoeCA9PiBwYXRoLmJhc2VuYW1lKHgpKVxuICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvY29udmVydGVycy86ZmlsZW5hbWVcIiwgaHR0cFJldHVybi5TdHJlYW0sIGh0dHBVcmxQYXJhbShcImZpbGVuYW1lXCIsIGh0dHBUeXBlLlN0cmluZykpXG4gICAgcHVibGljIGFzeW5jIGdldENvbnZlcnRlckZpbGUoZmlsZW5hbWU6IHN0cmluZyk6IFByb21pc2U8RmlsZVN0cmVhbVJlc3VsdD4ge1xuICAgICAgICBmb3IgKGNvbnN0IGZhcm1EaXJlY3Rvcnkgb2YgdGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gYXdhaXQgZmFybURpcmVjdG9yeS5nZXRDb252ZXJ0ZXJGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoZmlsZVBhdGggIT0gbnVsbCAmJiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWxlU3RyZWFtUmVzdWx0KGZpbGVQYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZFdlYkVycm9yKFwiRmlsZSBub3QgZm91bmRcIiwgZmFsc2UpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL21lcmdlcnNcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbE1lcmdlcnNGaWxlcygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLmZsYXRNYXAoeCA9PiB4LmdldEFsbE1lcmdlcnNGaWxlUGF0aHMoKSkpKVxuICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgLm1hcCh4ID0+IHBhdGguYmFzZW5hbWUoeCkpXG4gICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9tZXJnZXJzLzpmaWxlbmFtZVwiLCBodHRwUmV0dXJuLlN0cmVhbSwgaHR0cFVybFBhcmFtKFwiZmlsZW5hbWVcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0TWVyZ2VyRmlsZShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxGaWxlU3RyZWFtUmVzdWx0PiB7XG4gICAgICAgIGZvciAoY29uc3QgZmFybURpcmVjdG9yeSBvZiB0aGlzLmFsbEZhcm1EaXJlY3Rvcmllcykge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBhd2FpdCBmYXJtRGlyZWN0b3J5LmdldE1lcmdlcnNGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChmaWxlbmFtZSk7XG4gICAgICAgICAgICBpZiAoZmlsZVBhdGggIT0gbnVsbCAmJiAoYXdhaXQgcGF0aEV4aXN0cyhmaWxlUGF0aCkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWxlU3RyZWFtUmVzdWx0KGZpbGVQYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IG5ldyBOb3RGb3VuZFdlYkVycm9yKFwiRmlsZSBub3QgZm91bmRcIiwgZmFsc2UpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL3NjaGVtYXNcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbFNjaGVtYXNGaWxlcygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBpZiAodGhpcy5hbGxTY2hlbWFzRmlsZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5hbGxTY2hlbWFzRmlsZXMgPSAoYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMuZmxhdE1hcCh4ID0+IHguZ2V0QWxsU2NoZW1hc0ZpbGVQYXRocygpKSkpXG4gICAgICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgICAgIC5tYXAoeCA9PiBwYXRoLmJhc2VuYW1lKHgpKVxuICAgICAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzZXRBbGxTY2hlbWFGaWxlc0RlYm91bmNlZCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5hbGxTY2hlbWFzRmlsZXM7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvc2NoZW1hcy86ZmlsZW5hbWVcIiwgaHR0cFJldHVybi5TdHJlYW0sIGh0dHBVcmxQYXJhbShcImZpbGVuYW1lXCIsIGh0dHBUeXBlLlN0cmluZykpXG4gICAgcHVibGljIGFzeW5jIGdldEZvcm1TY2hlbWFzKGZpbGVuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEZpbGVTdHJlYW1SZXN1bHQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBmYXJtRGlyZWN0b3J5IG9mIHRoaXMuYWxsRmFybURpcmVjdG9yaWVzKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGF3YWl0IGZhcm1EaXJlY3RvcnkuZ2V0U2NoZW1hRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWUpO1xuICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChmaWxlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRXZWJFcnJvcihcIkZpbGUgbm90IGZvdW5kXCIsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9wcmVzZW50YXRpb25zXCIsIGh0dHBSZXR1cm4uUGxhaW5UZXh0KVxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxGb3JtUHJlc2VudGF0aW9ucygpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLmZsYXRNYXAoeCA9PiB4LmdldEFsbFByZXNlbnRhdGlvbnNGaWxlTmFtZXMoKSkpKVxuICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgLm1hcCh4ID0+IHBhdGguYmFzZW5hbWUoeCkpXG4gICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9wcmVzZW50YXRpb25zLzpnZnYucHJlc2VudGF0aW9ucy5qc29uXCIsIGh0dHBSZXR1cm4uU3RyZWFtLCBodHRwVXJsUGFyYW0oXCJnZnZcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0Rm9ybVByZXNlbnRhdGlvbnMoZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPEZpbGVTdHJlYW1SZXN1bHQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBmYXJtRGlyZWN0b3J5IG9mIHRoaXMuYWxsRmFybURpcmVjdG9yaWVzKSB7XG4gICAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGF3YWl0IGZhcm1EaXJlY3RvcnkuZ2V0UHJlc2VudGF0aW9uc0ZpbGVQYXRoQnlHZnZPclVuZGVmaW5lZChnZnYpO1xuICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChmaWxlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRXZWJFcnJvcihcIkZpbGUgbm90IGZvdW5kXCIsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9ub3JtYWxpemVcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbE5vcm1hbGl6ZUZpbGVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGZpbGVzID0gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMuYWxsRmFybURpcmVjdG9yaWVzLmZsYXRNYXAoeCA9PiB4LmdldEFsbE5vcm1hbGl6ZUZpbGVQYXRocygpKSkpLmZsYXQoKTtcbiAgICAgICAgY29uc3QgZmxhbmdGaWxlcyA9IGF3YWl0IHRoaXMuZ2VuZXJhdGVkU2VydmVyU2lkZVNvdXJjZXNQcm92aWRlci5nZXRBbGxOb3JtYWxpemF0aW9uRmlsZU5hbWVzKCk7XG4gICAgICAgIHJldHVybiBbLi4uZmlsZXMubWFwKHggPT4gcGF0aC5iYXNlbmFtZSh4KSksIC4uLmZsYW5nRmlsZXNdLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvbm9ybWFsaXplLzpnZnYueG1sXCIsIGh0dHBSZXR1cm4uU3RyZWFtLCBodHRwVXJsUGFyYW0oXCJnZnZcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0Tm9ybWFsaXplRmlsZShnZnY6IHN0cmluZyk6IFByb21pc2U8RmlsZVN0cmVhbVJlc3VsdD4ge1xuICAgICAgICBmb3IgKGNvbnN0IGZhcm1EaXJlY3Rvcnkgb2YgdGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVQYXRoID0gYXdhaXQgZmFybURpcmVjdG9yeS5nZXROb3JtYWxpemVGaWxlUGF0aEJ5RmlsZU5hbWVPclVuZGVmaW5lZChgJHtnZnZ9LnhtbGApO1xuICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChmaWxlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRXZWJFcnJvcihcIkZpbGUgbm90IGZvdW5kXCIsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9ub3JtYWxpemUvOmdmdi5ub3JtYWxpemVcIiwgaHR0cFJldHVybi5TdHJlYW0sIGh0dHBVcmxQYXJhbShcImdmdlwiLCBodHRwVHlwZS5TdHJpbmcpKVxuICAgIHB1YmxpYyBhc3luYyBnZXRGTGFuZ05vcm1hbGl6ZUZpbGUoZ2Z2OiBzdHJpbmcpOiBQcm9taXNlPFN0cmVhbVJlc3VsdD4ge1xuICAgICAgICByZXR1cm4gbmV3IFN0cmVhbVJlc3VsdChhd2FpdCB0aGlzLmdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXIuZ2V0Tm9ybWFsaXphdGlvbkZpbGVDb250ZW50KGdmdikpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL2F0dGFjaG1lbnRwYXRoc1wiLCBodHRwUmV0dXJuLlBsYWluVGV4dClcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QWxsQXR0YWNobWVudFBhdGhzRmlsZU5hbWVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGZsYW5nRmlsZXMgPSBhd2FpdCB0aGlzLmdlbmVyYXRlZFNlcnZlclNpZGVTb3VyY2VzUHJvdmlkZXIuZ2V0QWxsQXR0YWNobWVudFBhdGhGaWxlTmFtZXMoKTtcbiAgICAgICAgcmV0dXJuIGZsYW5nRmlsZXMuam9pbihcIlxcblwiKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9hdHRhY2htZW50cGF0aHMvOmdmdi5qc29uXCIsIGh0dHBSZXR1cm4uU3RyZWFtLCBodHRwVXJsUGFyYW0oXCJnZnZcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QXR0YWNobWVudFBhdGhGaWxlKGdmdjogc3RyaW5nKTogUHJvbWlzZTxTdHJlYW1SZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdHJlYW1SZXN1bHQoYXdhaXQgdGhpcy5nZW5lcmF0ZWRTZXJ2ZXJTaWRlU291cmNlc1Byb3ZpZGVyLmdldEF0dGFjaG1lbnRQYXRoc0ZpbGVDb250ZW50KGdmdikpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL3VubWFwXCIsIGh0dHBSZXR1cm4uUGxhaW5UZXh0KVxuICAgIHB1YmxpYyBhc3luYyBnZXRBbGxVbm1hcEZpbGVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMuZmxhdE1hcCh4ID0+IHguZ2V0QWxsVW5tYXBGaWxlUGF0aHMoKSkpKVxuICAgICAgICAgICAgLmZsYXQoKVxuICAgICAgICAgICAgLm1hcCh4ID0+IHBhdGguYmFzZW5hbWUoeCkpXG4gICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi91bm1hcC86ZmlsZW5hbWVcIiwgaHR0cFJldHVybi5TdHJlYW0sIGh0dHBVcmxQYXJhbShcImZpbGVuYW1lXCIsIGh0dHBUeXBlLlN0cmluZykpXG4gICAgcHVibGljIGFzeW5jIGdldFVubWFwRmlsZShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxGaWxlU3RyZWFtUmVzdWx0PiB7XG4gICAgICAgIGZvciAoY29uc3QgZmFybURpcmVjdG9yeSBvZiB0aGlzLmFsbEZhcm1EaXJlY3Rvcmllcykge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBhd2FpdCBmYXJtRGlyZWN0b3J5LmdldFVubWFwRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWUpO1xuICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChmaWxlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRXZWJFcnJvcihcIkZpbGUgbm90IGZvdW5kXCIsIGZhbHNlKTtcbiAgICB9XG5cbiAgICBAaHR0cEdldChcIi9tYXBcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbE1hcEZpbGVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5hbGxGYXJtRGlyZWN0b3JpZXMuZmxhdE1hcCh4ID0+IHguZ2V0QWxsTWFwRmlsZVBhdGhzKCkpKSlcbiAgICAgICAgICAgIC5mbGF0KClcbiAgICAgICAgICAgIC5tYXAoeCA9PiBwYXRoLmJhc2VuYW1lKHgpKVxuICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvbWFwLzpmaWxlbmFtZVwiLCBodHRwUmV0dXJuLlN0cmVhbSwgaHR0cFVybFBhcmFtKFwiZmlsZW5hbWVcIiwgaHR0cFR5cGUuU3RyaW5nKSlcbiAgICBwdWJsaWMgYXN5bmMgZ2V0TWFwRmlsZShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxGaWxlU3RyZWFtUmVzdWx0PiB7XG4gICAgICAgIGZvciAoY29uc3QgZmFybURpcmVjdG9yeSBvZiB0aGlzLmFsbEZhcm1EaXJlY3Rvcmllcykge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBhd2FpdCBmYXJtRGlyZWN0b3J5LmdldE1hcEZpbGVQYXRoQnlGaWxlTmFtZU9yVW5kZWZpbmVkKGZpbGVuYW1lKTtcbiAgICAgICAgICAgIGlmIChmaWxlUGF0aCAhPSBudWxsICYmIChhd2FpdCBwYXRoRXhpc3RzKGZpbGVQYXRoKSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEZpbGVTdHJlYW1SZXN1bHQoZmlsZVBhdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kV2ViRXJyb3IoXCJGaWxlIG5vdCBmb3VuZFwiLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvcGF0Y2hcIiwgaHR0cFJldHVybi5QbGFpblRleHQpXG4gICAgcHVibGljIGFzeW5jIGdldEFsbFBhdGNoRmlsZXMoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmFsbEZhcm1EaXJlY3Rvcmllcy5mbGF0TWFwKHggPT4geC5nZXRBbGxQYXRjaEZpbGVQYXRocygpKSkpXG4gICAgICAgICAgICAuZmxhdCgpXG4gICAgICAgICAgICAubWFwKHggPT4gcGF0aC5iYXNlbmFtZSh4KSlcbiAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpO1xuICAgIH1cblxuICAgIEBodHRwR2V0KFwiL3BhdGNoLzpmaWxlbmFtZVwiLCBodHRwUmV0dXJuLlN0cmVhbSwgaHR0cFVybFBhcmFtKFwiZ2Z2XCIsIGh0dHBUeXBlLlN0cmluZykpXG4gICAgcHVibGljIGFzeW5jIGdldFBhdGNoRmlsZShmaWxlbmFtZTogc3RyaW5nKTogUHJvbWlzZTxGaWxlU3RyZWFtUmVzdWx0PiB7XG4gICAgICAgIGZvciAoY29uc3QgZmFybURpcmVjdG9yeSBvZiB0aGlzLmFsbEZhcm1EaXJlY3Rvcmllcykge1xuICAgICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBhd2FpdCBmYXJtRGlyZWN0b3J5LmdldFBhdGNoRmlsZVBhdGhCeUZpbGVOYW1lT3JVbmRlZmluZWQoZmlsZW5hbWUpO1xuICAgICAgICAgICAgaWYgKGZpbGVQYXRoICE9IG51bGwgJiYgKGF3YWl0IHBhdGhFeGlzdHMoZmlsZVBhdGgpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChmaWxlUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRXZWJFcnJvcihcIkZpbGUgbm90IGZvdW5kXCIsIGZhbHNlKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsR0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsSUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBSixPQUFBO0FBR0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0saUJBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLE9BQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFFBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLG9CQUFBLEdBQUFULE9BQUE7QUFJQSxJQUFBVSxvQkFBQSxHQUFBVixPQUFBO0FBR0EsSUFBQVcsY0FBQSxHQUFBWCxPQUFBO0FBQTRELElBQUFZLElBQUEsRUFBQUMsS0FBQSxFQUFBQyxLQUFBLEVBQUFDLEtBQUEsRUFBQUMsS0FBQSxFQUFBQyxLQUFBLEVBQUFDLEtBQUEsRUFBQUMsS0FBQSxFQUFBQyxLQUFBLEVBQUFDLE1BQUEsRUFBQUMsTUFBQSxFQUFBQyxNQUFBLEVBQUFDLE1BQUEsRUFBQUMsTUFBQSxFQUFBQyxNQUFBLEVBQUFDLE1BQUEsRUFBQUMsTUFBQSxFQUFBQyxNQUFBLEVBQUFDLE1BQUEsRUFBQUMsTUFBQSxFQUFBQyxNQUFBLEVBQUFDLE1BQUEsRUFBQUMsTUFBQTtBQUFBLFNBQUFDLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFsQyx3QkFBQXNDLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxvQkFBQUEsR0FBQSx3QkFBQUEsR0FBQSw0QkFBQUUsT0FBQSxFQUFBRixHQUFBLFVBQUFHLEtBQUEsR0FBQVIsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBTyxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBSixHQUFBLFlBQUFHLEtBQUEsQ0FBQUUsR0FBQSxDQUFBTCxHQUFBLFNBQUFNLE1BQUEsV0FBQUMscUJBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsR0FBQSxJQUFBWCxHQUFBLFFBQUFXLEdBQUEsa0JBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWQsR0FBQSxFQUFBVyxHQUFBLFNBQUFJLElBQUEsR0FBQVIscUJBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBVixHQUFBLEVBQUFXLEdBQUEsY0FBQUksSUFBQSxLQUFBQSxJQUFBLENBQUFWLEdBQUEsSUFBQVUsSUFBQSxDQUFBQyxHQUFBLEtBQUFSLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSCxNQUFBLEVBQUFLLEdBQUEsRUFBQUksSUFBQSxZQUFBVCxNQUFBLENBQUFLLEdBQUEsSUFBQVgsR0FBQSxDQUFBVyxHQUFBLFNBQUFMLE1BQUEsQ0FBQUosT0FBQSxHQUFBRixHQUFBLE1BQUFHLEtBQUEsSUFBQUEsS0FBQSxDQUFBYSxHQUFBLENBQUFoQixHQUFBLEVBQUFNLE1BQUEsWUFBQUEsTUFBQTtBQUFBLElBRS9DVyxxQ0FBcUMsSUFBQTdDLElBQUEsR0FvQjdDLElBQUE4QyxnQkFBTyxFQUFDLE9BQU8sRUFBRUMsbUJBQVUsQ0FBQ0MsSUFBSSxDQUFDLEVBQUEvQyxLQUFBLEdBS2pDLElBQUE2QyxnQkFBTyxFQUFDLFlBQVksRUFBRUMsbUJBQVUsQ0FBQ0UsU0FBUyxDQUFDLEVBQUEvQyxLQUFBLEdBSzNDLElBQUE0QyxnQkFBTyxFQUNKLDhCQUE4QixFQUM5QkMsbUJBQVUsQ0FBQ0csY0FBYyxDQUFDLGtCQUFrQixDQUFDLEVBQzdDLElBQUFDLG9CQUFZLEVBQUMsa0JBQWtCLEVBQUVDLGdCQUFRLENBQUNDLE1BQU0sQ0FDcEQsQ0FBQyxFQUFBbEQsS0FBQSxHQVdBLElBQUEyQyxnQkFBTyxFQUFDLGFBQWEsRUFBRUMsbUJBQVUsQ0FBQ0UsU0FBUyxDQUFDLEVBQUE3QyxLQUFBLEdBUTVDLElBQUEwQyxnQkFBTyxFQUFDLHVCQUF1QixFQUFFQyxtQkFBVSxDQUFDTyxNQUFNLEVBQUUsSUFBQUgsb0JBQVksRUFBQyxVQUFVLEVBQUVDLGdCQUFRLENBQUNDLE1BQU0sQ0FBQyxDQUFDLEVBQUFoRCxLQUFBLEdBWTlGLElBQUF5QyxnQkFBTyxFQUFDLFVBQVUsRUFBRUMsbUJBQVUsQ0FBQ0UsU0FBUyxDQUFDLEVBQUEzQyxLQUFBLEdBUXpDLElBQUF3QyxnQkFBTyxFQUFDLG9CQUFvQixFQUFFQyxtQkFBVSxDQUFDTyxNQUFNLEVBQUUsSUFBQUgsb0JBQVksRUFBQyxVQUFVLEVBQUVDLGdCQUFRLENBQUNDLE1BQU0sQ0FBQyxDQUFDLEVBQUE5QyxLQUFBLEdBWTNGLElBQUF1QyxnQkFBTyxFQUFDLFVBQVUsRUFBRUMsbUJBQVUsQ0FBQ0UsU0FBUyxDQUFDLEVBQUF6QyxLQUFBLEdBWXpDLElBQUFzQyxnQkFBTyxFQUFDLG9CQUFvQixFQUFFQyxtQkFBVSxDQUFDTyxNQUFNLEVBQUUsSUFBQUgsb0JBQVksRUFBQyxVQUFVLEVBQUVDLGdCQUFRLENBQUNDLE1BQU0sQ0FBQyxDQUFDLEVBQUE1QyxNQUFBLEdBWTNGLElBQUFxQyxnQkFBTyxFQUFDLGdCQUFnQixFQUFFQyxtQkFBVSxDQUFDRSxTQUFTLENBQUMsRUFBQXZDLE1BQUEsR0FRL0MsSUFBQW9DLGdCQUFPLEVBQUMsd0NBQXdDLEVBQUVDLG1CQUFVLENBQUNPLE1BQU0sRUFBRSxJQUFBSCxvQkFBWSxFQUFDLEtBQUssRUFBRUMsZ0JBQVEsQ0FBQ0MsTUFBTSxDQUFDLENBQUMsRUFBQTFDLE1BQUEsR0FZMUcsSUFBQW1DLGdCQUFPLEVBQUMsWUFBWSxFQUFFQyxtQkFBVSxDQUFDRSxTQUFTLENBQUMsRUFBQXJDLE1BQUEsR0FPM0MsSUFBQWtDLGdCQUFPLEVBQUMscUJBQXFCLEVBQUVDLG1CQUFVLENBQUNPLE1BQU0sRUFBRSxJQUFBSCxvQkFBWSxFQUFDLEtBQUssRUFBRUMsZ0JBQVEsQ0FBQ0MsTUFBTSxDQUFDLENBQUMsRUFBQXhDLE1BQUEsR0FZdkYsSUFBQWlDLGdCQUFPLEVBQUMsMkJBQTJCLEVBQUVDLG1CQUFVLENBQUNPLE1BQU0sRUFBRSxJQUFBSCxvQkFBWSxFQUFDLEtBQUssRUFBRUMsZ0JBQVEsQ0FBQ0MsTUFBTSxDQUFDLENBQUMsRUFBQXZDLE1BQUEsR0FLN0YsSUFBQWdDLGdCQUFPLEVBQUMsa0JBQWtCLEVBQUVDLG1CQUFVLENBQUNFLFNBQVMsQ0FBQyxFQUFBbEMsTUFBQSxHQU1qRCxJQUFBK0IsZ0JBQU8sRUFBQyw0QkFBNEIsRUFBRUMsbUJBQVUsQ0FBQ08sTUFBTSxFQUFFLElBQUFILG9CQUFZLEVBQUMsS0FBSyxFQUFFQyxnQkFBUSxDQUFDQyxNQUFNLENBQUMsQ0FBQyxFQUFBckMsTUFBQSxHQUs5RixJQUFBOEIsZ0JBQU8sRUFBQyxRQUFRLEVBQUVDLG1CQUFVLENBQUNFLFNBQVMsQ0FBQyxFQUFBaEMsTUFBQSxHQVF2QyxJQUFBNkIsZ0JBQU8sRUFBQyxrQkFBa0IsRUFBRUMsbUJBQVUsQ0FBQ08sTUFBTSxFQUFFLElBQUFILG9CQUFZLEVBQUMsVUFBVSxFQUFFQyxnQkFBUSxDQUFDQyxNQUFNLENBQUMsQ0FBQyxFQUFBbkMsTUFBQSxHQVl6RixJQUFBNEIsZ0JBQU8sRUFBQyxNQUFNLEVBQUVDLG1CQUFVLENBQUNFLFNBQVMsQ0FBQyxFQUFBOUIsTUFBQSxHQVFyQyxJQUFBMkIsZ0JBQU8sRUFBQyxnQkFBZ0IsRUFBRUMsbUJBQVUsQ0FBQ08sTUFBTSxFQUFFLElBQUFILG9CQUFZLEVBQUMsVUFBVSxFQUFFQyxnQkFBUSxDQUFDQyxNQUFNLENBQUMsQ0FBQyxFQUFBakMsTUFBQSxHQVl2RixJQUFBMEIsZ0JBQU8sRUFBQyxRQUFRLEVBQUVDLG1CQUFVLENBQUNFLFNBQVMsQ0FBQyxFQUFBNUIsTUFBQSxHQVF2QyxJQUFBeUIsZ0JBQU8sRUFBQyxrQkFBa0IsRUFBRUMsbUJBQVUsQ0FBQ08sTUFBTSxFQUFFLElBQUFILG9CQUFZLEVBQUMsS0FBSyxFQUFFQyxnQkFBUSxDQUFDQyxNQUFNLENBQUMsQ0FBQyxHQUFBL0IsTUFBQSxHQXBObEYsTUFBTXVCLHFDQUFxQyxTQUFTVSx3Q0FBbUIsQ0FBQztFQU9wRUMsV0FBV0EsQ0FDZEMsYUFBMkIsRUFDM0JDLGlDQUFzRSxFQUN4RTtJQUNFLEtBQUssQ0FBQyxDQUFDO0lBQUMsS0FWS0Msa0NBQWtDO0lBQUEsS0FDM0NDLGVBQWU7SUFBQSxLQUNOQyw0QkFBNEI7SUFBQSxLQUM1QkMsa0JBQWtCO0lBQUEsS0FDbEJMLGFBQWE7SUFPMUIsSUFBSSxDQUFDRSxrQ0FBa0MsR0FBR0QsaUNBQWlDO0lBQzNFLElBQUksQ0FBQ0QsYUFBYSxHQUFHQSxhQUFhO0lBQ2xDLElBQUksQ0FBQ0ssa0JBQWtCLEdBQUdMLGFBQWEsQ0FBQ00sR0FBRyxDQUFDQyxDQUFDLElBQUksSUFBSUMsNEJBQWEsQ0FBQ0QsQ0FBQyxDQUFDRSxhQUFhLENBQUMsQ0FBQztJQUNwRixJQUFJLENBQUNMLDRCQUE0QixHQUFHLElBQUFNLGdCQUFRLEVBQUMsTUFBTTtNQUMvQyxJQUFJLENBQUNQLGVBQWUsR0FBR1EsU0FBUztJQUNwQyxDQUFDLEVBQUUsSUFBSSxDQUFDO0VBQ1o7RUFFQSxNQUNhQyxVQUFVQSxDQUFBLEVBQXNCO0lBQ3pDLE9BQU8sQ0FBQyxNQUFNQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxJQUFJLENBQUNULGtCQUFrQixDQUFDQyxHQUFHLENBQUNTLENBQUMsSUFBSUEsQ0FBQyxDQUFDSCxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRUksSUFBSSxDQUFDLENBQUM7RUFDdkY7RUFFQSxNQUNhQyxlQUFlQSxDQUFBLEVBQW9CO0lBQzVDLE9BQU8sQ0FBQyxNQUFNSixPQUFPLENBQUNDLEdBQUcsQ0FBQyxJQUFJLENBQUNULGtCQUFrQixDQUFDQyxHQUFHLENBQUNTLENBQUMsSUFBSUEsQ0FBQyxDQUFDRSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRUQsSUFBSSxDQUFDLENBQUMsQ0FBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQztFQUN2RztFQUVBLE1BS2FDLFlBQVlBLENBQUNDLGdCQUF3QixFQUF1QjtJQUNyRSxNQUFNQyxXQUFXLEdBQUcsSUFBSSxDQUFDckIsYUFBYSxDQUFDTSxHQUFHLENBQUNDLENBQUMsSUFBSTNFLElBQUksQ0FBQ3NGLElBQUksQ0FBQ1gsQ0FBQyxDQUFDRSxhQUFhLEVBQUUsV0FBVyxFQUFFVyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFHLEtBQUssTUFBTUUsUUFBUSxJQUFJRCxXQUFXLEVBQUU7TUFDaEMsSUFBSSxNQUFNLElBQUFFLG1CQUFVLEVBQUNELFFBQVEsQ0FBQyxFQUFFO1FBQzVCLE9BQU8sSUFBQUUsb0JBQWdCLEVBQUNGLFFBQVEsQ0FBQztNQUNyQztJQUNKO0lBQ0EsTUFBTUcsS0FBSyxDQUFFLDhCQUE2QkwsZ0JBQWlCLEVBQUMsQ0FBQztFQUNqRTtFQUVBLE1BQ2FNLHFCQUFxQkEsQ0FBQSxFQUFvQjtJQUNsRCxPQUFPLENBQUMsTUFBTWIsT0FBTyxDQUFDQyxHQUFHLENBQUMsSUFBSSxDQUFDVCxrQkFBa0IsQ0FBQ3NCLE9BQU8sQ0FBQ1osQ0FBQyxJQUFJQSxDQUFDLENBQUNhLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3hGWixJQUFJLENBQUMsQ0FBQyxDQUNOVixHQUFHLENBQUNTLENBQUMsSUFBSW5GLElBQUksQ0FBQ2lHLFFBQVEsQ0FBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FDMUJHLElBQUksQ0FBQyxJQUFJLENBQUM7RUFDbkI7RUFFQSxNQUNhWSxnQkFBZ0JBLENBQUNDLFFBQWdCLEVBQTZCO0lBQ3ZFLEtBQUssTUFBTXRCLGFBQWEsSUFBSSxJQUFJLENBQUNKLGtCQUFrQixFQUFFO01BQ2pELE1BQU0yQixRQUFRLEdBQUcsTUFBTXZCLGFBQWEsQ0FBQ3dCLHlDQUF5QyxDQUFDRixRQUFRLENBQUM7TUFDeEYsSUFBSUMsUUFBUSxJQUFJLElBQUksS0FBSyxNQUFNLElBQUFULG1CQUFVLEVBQUNTLFFBQVEsQ0FBQyxDQUFDLEVBQUU7UUFDbEQsT0FBTyxJQUFJRSxxQ0FBZ0IsQ0FBQ0YsUUFBUSxDQUFDO01BQ3pDO0lBQ0o7SUFFQSxNQUFNLElBQUlHLGtDQUFnQixDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQztFQUN2RDtFQUVBLE1BQ2FDLGtCQUFrQkEsQ0FBQSxFQUFvQjtJQUMvQyxPQUFPLENBQUMsTUFBTXZCLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLElBQUksQ0FBQ1Qsa0JBQWtCLENBQUNzQixPQUFPLENBQUNaLENBQUMsSUFBSUEsQ0FBQyxDQUFDc0Isc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDdEZyQixJQUFJLENBQUMsQ0FBQyxDQUNOVixHQUFHLENBQUNTLENBQUMsSUFBSW5GLElBQUksQ0FBQ2lHLFFBQVEsQ0FBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FDMUJHLElBQUksQ0FBQyxJQUFJLENBQUM7RUFDbkI7RUFFQSxNQUNhb0IsYUFBYUEsQ0FBQ1AsUUFBZ0IsRUFBNkI7SUFDcEUsS0FBSyxNQUFNdEIsYUFBYSxJQUFJLElBQUksQ0FBQ0osa0JBQWtCLEVBQUU7TUFDakQsTUFBTTJCLFFBQVEsR0FBRyxNQUFNdkIsYUFBYSxDQUFDOEIsdUNBQXVDLENBQUNSLFFBQVEsQ0FBQztNQUN0RixJQUFJQyxRQUFRLElBQUksSUFBSSxLQUFLLE1BQU0sSUFBQVQsbUJBQVUsRUFBQ1MsUUFBUSxDQUFDLENBQUMsRUFBRTtRQUNsRCxPQUFPLElBQUlFLHFDQUFnQixDQUFDRixRQUFRLENBQUM7TUFDekM7SUFDSjtJQUVBLE1BQU0sSUFBSUcsa0NBQWdCLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDO0VBQ3ZEO0VBRUEsTUFDYUssa0JBQWtCQSxDQUFBLEVBQW9CO0lBQy9DLElBQUksSUFBSSxDQUFDckMsZUFBZSxLQUFLUSxTQUFTLEVBQUU7TUFDcEMsSUFBSSxDQUFDUixlQUFlLEdBQUcsQ0FBQyxNQUFNVSxPQUFPLENBQUNDLEdBQUcsQ0FBQyxJQUFJLENBQUNULGtCQUFrQixDQUFDc0IsT0FBTyxDQUFDWixDQUFDLElBQUlBLENBQUMsQ0FBQzBCLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3RHekIsSUFBSSxDQUFDLENBQUMsQ0FDTlYsR0FBRyxDQUFDUyxDQUFDLElBQUluRixJQUFJLENBQUNpRyxRQUFRLENBQUNkLENBQUMsQ0FBQyxDQUFDLENBQzFCRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CO0lBQ0EsSUFBSSxDQUFDZCw0QkFBNEIsQ0FBQyxDQUFDO0lBQ25DLE9BQU8sSUFBSSxDQUFDRCxlQUFlO0VBQy9CO0VBRUEsTUFDYXVDLGNBQWNBLENBQUNYLFFBQWdCLEVBQTZCO0lBQ3JFLEtBQUssTUFBTXRCLGFBQWEsSUFBSSxJQUFJLENBQUNKLGtCQUFrQixFQUFFO01BQ2pELE1BQU0yQixRQUFRLEdBQUcsTUFBTXZCLGFBQWEsQ0FBQ2tDLHNDQUFzQyxDQUFDWixRQUFRLENBQUM7TUFDckYsSUFBSUMsUUFBUSxJQUFJLElBQUksS0FBSyxNQUFNLElBQUFULG1CQUFVLEVBQUNTLFFBQVEsQ0FBQyxDQUFDLEVBQUU7UUFDbEQsT0FBTyxJQUFJRSxxQ0FBZ0IsQ0FBQ0YsUUFBUSxDQUFDO01BQ3pDO0lBQ0o7SUFFQSxNQUFNLElBQUlHLGtDQUFnQixDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQztFQUN2RDtFQUVBLE1BQ2FTLHVCQUF1QkEsQ0FBQSxFQUFvQjtJQUNwRCxPQUFPLENBQUMsTUFBTS9CLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLElBQUksQ0FBQ1Qsa0JBQWtCLENBQUNzQixPQUFPLENBQUNaLENBQUMsSUFBSUEsQ0FBQyxDQUFDOEIsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDNUY3QixJQUFJLENBQUMsQ0FBQyxDQUNOVixHQUFHLENBQUNTLENBQUMsSUFBSW5GLElBQUksQ0FBQ2lHLFFBQVEsQ0FBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FDMUJHLElBQUksQ0FBQyxJQUFJLENBQUM7RUFDbkI7RUFFQSxNQUNhNEIsb0JBQW9CQSxDQUFDQyxHQUFXLEVBQTZCO0lBQ3RFLEtBQUssTUFBTXRDLGFBQWEsSUFBSSxJQUFJLENBQUNKLGtCQUFrQixFQUFFO01BQ2pELE1BQU0yQixRQUFRLEdBQUcsTUFBTXZCLGFBQWEsQ0FBQ3VDLHdDQUF3QyxDQUFDRCxHQUFHLENBQUM7TUFDbEYsSUFBSWYsUUFBUSxJQUFJLElBQUksS0FBSyxNQUFNLElBQUFULG1CQUFVLEVBQUNTLFFBQVEsQ0FBQyxDQUFDLEVBQUU7UUFDbEQsT0FBTyxJQUFJRSxxQ0FBZ0IsQ0FBQ0YsUUFBUSxDQUFDO01BQ3pDO0lBQ0o7SUFFQSxNQUFNLElBQUlHLGtDQUFnQixDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQztFQUN2RDtFQUVBLE1BQ2FjLG9CQUFvQkEsQ0FBQSxFQUFvQjtJQUNqRCxNQUFNQyxLQUFLLEdBQUcsQ0FBQyxNQUFNckMsT0FBTyxDQUFDQyxHQUFHLENBQUMsSUFBSSxDQUFDVCxrQkFBa0IsQ0FBQ3NCLE9BQU8sQ0FBQ1osQ0FBQyxJQUFJQSxDQUFDLENBQUNvQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFbkMsSUFBSSxDQUFDLENBQUM7SUFDNUcsTUFBTW9DLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQ2xELGtDQUFrQyxDQUFDbUQsNEJBQTRCLENBQUMsQ0FBQztJQUMvRixPQUFPLENBQUMsR0FBR0gsS0FBSyxDQUFDNUMsR0FBRyxDQUFDUyxDQUFDLElBQUluRixJQUFJLENBQUNpRyxRQUFRLENBQUNkLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBR3FDLFVBQVUsQ0FBQyxDQUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQztFQUMxRTtFQUVBLE1BQ2FvQyxnQkFBZ0JBLENBQUNQLEdBQVcsRUFBNkI7SUFDbEUsS0FBSyxNQUFNdEMsYUFBYSxJQUFJLElBQUksQ0FBQ0osa0JBQWtCLEVBQUU7TUFDakQsTUFBTTJCLFFBQVEsR0FBRyxNQUFNdkIsYUFBYSxDQUFDOEMseUNBQXlDLENBQUUsR0FBRVIsR0FBSSxNQUFLLENBQUM7TUFDNUYsSUFBSWYsUUFBUSxJQUFJLElBQUksS0FBSyxNQUFNLElBQUFULG1CQUFVLEVBQUNTLFFBQVEsQ0FBQyxDQUFDLEVBQUU7UUFDbEQsT0FBTyxJQUFJRSxxQ0FBZ0IsQ0FBQ0YsUUFBUSxDQUFDO01BQ3pDO0lBQ0o7SUFFQSxNQUFNLElBQUlHLGtDQUFnQixDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQztFQUN2RDtFQUVBLE1BQ2FxQixxQkFBcUJBLENBQUNULEdBQVcsRUFBeUI7SUFDbkUsT0FBTyxJQUFJVSxpQ0FBWSxDQUFDLE1BQU0sSUFBSSxDQUFDdkQsa0NBQWtDLENBQUN3RCwyQkFBMkIsQ0FBQ1gsR0FBRyxDQUFDLENBQUM7RUFDM0c7RUFFQSxNQUNhWSw4QkFBOEJBLENBQUEsRUFBb0I7SUFDM0QsTUFBTVAsVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDbEQsa0NBQWtDLENBQUMwRCw2QkFBNkIsQ0FBQyxDQUFDO0lBQ2hHLE9BQU9SLFVBQVUsQ0FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUM7RUFDaEM7RUFFQSxNQUNhMkMscUJBQXFCQSxDQUFDZCxHQUFXLEVBQXlCO0lBQ25FLE9BQU8sSUFBSVUsaUNBQVksQ0FBQyxNQUFNLElBQUksQ0FBQ3ZELGtDQUFrQyxDQUFDNEQsNkJBQTZCLENBQUNmLEdBQUcsQ0FBQyxDQUFDO0VBQzdHO0VBRUEsTUFDYWdCLGdCQUFnQkEsQ0FBQSxFQUFvQjtJQUM3QyxPQUFPLENBQUMsTUFBTWxELE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLElBQUksQ0FBQ1Qsa0JBQWtCLENBQUNzQixPQUFPLENBQUNaLENBQUMsSUFBSUEsQ0FBQyxDQUFDaUQsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDcEZoRCxJQUFJLENBQUMsQ0FBQyxDQUNOVixHQUFHLENBQUNTLENBQUMsSUFBSW5GLElBQUksQ0FBQ2lHLFFBQVEsQ0FBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FDMUJHLElBQUksQ0FBQyxJQUFJLENBQUM7RUFDbkI7RUFFQSxNQUNhK0MsWUFBWUEsQ0FBQ2xDLFFBQWdCLEVBQTZCO0lBQ25FLEtBQUssTUFBTXRCLGFBQWEsSUFBSSxJQUFJLENBQUNKLGtCQUFrQixFQUFFO01BQ2pELE1BQU0yQixRQUFRLEdBQUcsTUFBTXZCLGFBQWEsQ0FBQ3lELHFDQUFxQyxDQUFDbkMsUUFBUSxDQUFDO01BQ3BGLElBQUlDLFFBQVEsSUFBSSxJQUFJLEtBQUssTUFBTSxJQUFBVCxtQkFBVSxFQUFDUyxRQUFRLENBQUMsQ0FBQyxFQUFFO1FBQ2xELE9BQU8sSUFBSUUscUNBQWdCLENBQUNGLFFBQVEsQ0FBQztNQUN6QztJQUNKO0lBRUEsTUFBTSxJQUFJRyxrQ0FBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUM7RUFDdkQ7RUFFQSxNQUNhZ0MsY0FBY0EsQ0FBQSxFQUFvQjtJQUMzQyxPQUFPLENBQUMsTUFBTXRELE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLElBQUksQ0FBQ1Qsa0JBQWtCLENBQUNzQixPQUFPLENBQUNaLENBQUMsSUFBSUEsQ0FBQyxDQUFDcUQsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbEZwRCxJQUFJLENBQUMsQ0FBQyxDQUNOVixHQUFHLENBQUNTLENBQUMsSUFBSW5GLElBQUksQ0FBQ2lHLFFBQVEsQ0FBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FDMUJHLElBQUksQ0FBQyxJQUFJLENBQUM7RUFDbkI7RUFFQSxNQUNhbUQsVUFBVUEsQ0FBQ3RDLFFBQWdCLEVBQTZCO0lBQ2pFLEtBQUssTUFBTXRCLGFBQWEsSUFBSSxJQUFJLENBQUNKLGtCQUFrQixFQUFFO01BQ2pELE1BQU0yQixRQUFRLEdBQUcsTUFBTXZCLGFBQWEsQ0FBQzZELG1DQUFtQyxDQUFDdkMsUUFBUSxDQUFDO01BQ2xGLElBQUlDLFFBQVEsSUFBSSxJQUFJLEtBQUssTUFBTSxJQUFBVCxtQkFBVSxFQUFDUyxRQUFRLENBQUMsQ0FBQyxFQUFFO1FBQ2xELE9BQU8sSUFBSUUscUNBQWdCLENBQUNGLFFBQVEsQ0FBQztNQUN6QztJQUNKO0lBRUEsTUFBTSxJQUFJRyxrQ0FBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUM7RUFDdkQ7RUFFQSxNQUNhb0MsZ0JBQWdCQSxDQUFBLEVBQW9CO0lBQzdDLE9BQU8sQ0FBQyxNQUFNMUQsT0FBTyxDQUFDQyxHQUFHLENBQUMsSUFBSSxDQUFDVCxrQkFBa0IsQ0FBQ3NCLE9BQU8sQ0FBQ1osQ0FBQyxJQUFJQSxDQUFDLENBQUN5RCxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNwRnhELElBQUksQ0FBQyxDQUFDLENBQ05WLEdBQUcsQ0FBQ1MsQ0FBQyxJQUFJbkYsSUFBSSxDQUFDaUcsUUFBUSxDQUFDZCxDQUFDLENBQUMsQ0FBQyxDQUMxQkcsSUFBSSxDQUFDLElBQUksQ0FBQztFQUNuQjtFQUVBLE1BQ2F1RCxZQUFZQSxDQUFDMUMsUUFBZ0IsRUFBNkI7SUFDbkUsS0FBSyxNQUFNdEIsYUFBYSxJQUFJLElBQUksQ0FBQ0osa0JBQWtCLEVBQUU7TUFDakQsTUFBTTJCLFFBQVEsR0FBRyxNQUFNdkIsYUFBYSxDQUFDaUUscUNBQXFDLENBQUMzQyxRQUFRLENBQUM7TUFDcEYsSUFBSUMsUUFBUSxJQUFJLElBQUksS0FBSyxNQUFNLElBQUFULG1CQUFVLEVBQUNTLFFBQVEsQ0FBQyxDQUFDLEVBQUU7UUFDbEQsT0FBTyxJQUFJRSxxQ0FBZ0IsQ0FBQ0YsUUFBUSxDQUFDO01BQ3pDO0lBQ0o7SUFFQSxNQUFNLElBQUlHLGtDQUFnQixDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQztFQUN2RDtBQUNKLENBQUMsT0FBQXdDLDBCQUFBLENBQUF0RyxPQUFBLEVBQUFSLE1BQUEsQ0FBQWtCLFNBQUEsaUJBQUF4QyxJQUFBLEdBQUFvQyxNQUFBLENBQUFFLHdCQUFBLENBQUFoQixNQUFBLENBQUFrQixTQUFBLGlCQUFBbEIsTUFBQSxDQUFBa0IsU0FBQSxPQUFBNEYsMEJBQUEsQ0FBQXRHLE9BQUEsRUFBQVIsTUFBQSxDQUFBa0IsU0FBQSxzQkFBQXZDLEtBQUEsR0FBQW1DLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWhCLE1BQUEsQ0FBQWtCLFNBQUEsc0JBQUFsQixNQUFBLENBQUFrQixTQUFBLE9BQUE0RiwwQkFBQSxDQUFBdEcsT0FBQSxFQUFBUixNQUFBLENBQUFrQixTQUFBLG1CQUFBdEMsS0FBQSxHQUFBa0MsTUFBQSxDQUFBRSx3QkFBQSxDQUFBaEIsTUFBQSxDQUFBa0IsU0FBQSxtQkFBQWxCLE1BQUEsQ0FBQWtCLFNBQUEsT0FBQTRGLDBCQUFBLENBQUF0RyxPQUFBLEVBQUFSLE1BQUEsQ0FBQWtCLFNBQUEsNEJBQUFyQyxLQUFBLEdBQUFpQyxNQUFBLENBQUFFLHdCQUFBLENBQUFoQixNQUFBLENBQUFrQixTQUFBLDRCQUFBbEIsTUFBQSxDQUFBa0IsU0FBQSxPQUFBNEYsMEJBQUEsQ0FBQXRHLE9BQUEsRUFBQVIsTUFBQSxDQUFBa0IsU0FBQSx1QkFBQXBDLEtBQUEsR0FBQWdDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWhCLE1BQUEsQ0FBQWtCLFNBQUEsdUJBQUFsQixNQUFBLENBQUFrQixTQUFBLE9BQUE0RiwwQkFBQSxDQUFBdEcsT0FBQSxFQUFBUixNQUFBLENBQUFrQixTQUFBLHlCQUFBbkMsS0FBQSxHQUFBK0IsTUFBQSxDQUFBRSx3QkFBQSxDQUFBaEIsTUFBQSxDQUFBa0IsU0FBQSx5QkFBQWxCLE1BQUEsQ0FBQWtCLFNBQUEsT0FBQTRGLDBCQUFBLENBQUF0RyxPQUFBLEVBQUFSLE1BQUEsQ0FBQWtCLFNBQUEsb0JBQUFsQyxLQUFBLEdBQUE4QixNQUFBLENBQUFFLHdCQUFBLENBQUFoQixNQUFBLENBQUFrQixTQUFBLG9CQUFBbEIsTUFBQSxDQUFBa0IsU0FBQSxPQUFBNEYsMEJBQUEsQ0FBQXRHLE9BQUEsRUFBQVIsTUFBQSxDQUFBa0IsU0FBQSx5QkFBQWpDLEtBQUEsR0FBQTZCLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWhCLE1BQUEsQ0FBQWtCLFNBQUEseUJBQUFsQixNQUFBLENBQUFrQixTQUFBLE9BQUE0RiwwQkFBQSxDQUFBdEcsT0FBQSxFQUFBUixNQUFBLENBQUFrQixTQUFBLHFCQUFBaEMsS0FBQSxHQUFBNEIsTUFBQSxDQUFBRSx3QkFBQSxDQUFBaEIsTUFBQSxDQUFBa0IsU0FBQSxxQkFBQWxCLE1BQUEsQ0FBQWtCLFNBQUEsT0FBQTRGLDBCQUFBLENBQUF0RyxPQUFBLEVBQUFSLE1BQUEsQ0FBQWtCLFNBQUEsOEJBQUEvQixNQUFBLEdBQUEyQixNQUFBLENBQUFFLHdCQUFBLENBQUFoQixNQUFBLENBQUFrQixTQUFBLDhCQUFBbEIsTUFBQSxDQUFBa0IsU0FBQSxPQUFBNEYsMEJBQUEsQ0FBQXRHLE9BQUEsRUFBQVIsTUFBQSxDQUFBa0IsU0FBQSwyQkFBQTlCLE1BQUEsR0FBQTBCLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWhCLE1BQUEsQ0FBQWtCLFNBQUEsMkJBQUFsQixNQUFBLENBQUFrQixTQUFBLE9BQUE0RiwwQkFBQSxDQUFBdEcsT0FBQSxFQUFBUixNQUFBLENBQUFrQixTQUFBLDJCQUFBN0IsTUFBQSxHQUFBeUIsTUFBQSxDQUFBRSx3QkFBQSxDQUFBaEIsTUFBQSxDQUFBa0IsU0FBQSwyQkFBQWxCLE1BQUEsQ0FBQWtCLFNBQUEsT0FBQTRGLDBCQUFBLENBQUF0RyxPQUFBLEVBQUFSLE1BQUEsQ0FBQWtCLFNBQUEsdUJBQUE1QixNQUFBLEdBQUF3QixNQUFBLENBQUFFLHdCQUFBLENBQUFoQixNQUFBLENBQUFrQixTQUFBLHVCQUFBbEIsTUFBQSxDQUFBa0IsU0FBQSxPQUFBNEYsMEJBQUEsQ0FBQXRHLE9BQUEsRUFBQVIsTUFBQSxDQUFBa0IsU0FBQSw0QkFBQTNCLE1BQUEsR0FBQXVCLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWhCLE1BQUEsQ0FBQWtCLFNBQUEsNEJBQUFsQixNQUFBLENBQUFrQixTQUFBLE9BQUE0RiwwQkFBQSxDQUFBdEcsT0FBQSxFQUFBUixNQUFBLENBQUFrQixTQUFBLHFDQUFBMUIsTUFBQSxHQUFBc0IsTUFBQSxDQUFBRSx3QkFBQSxDQUFBaEIsTUFBQSxDQUFBa0IsU0FBQSxxQ0FBQWxCLE1BQUEsQ0FBQWtCLFNBQUEsT0FBQTRGLDBCQUFBLENBQUF0RyxPQUFBLEVBQUFSLE1BQUEsQ0FBQWtCLFNBQUEsNEJBQUF6QixNQUFBLEdBQUFxQixNQUFBLENBQUFFLHdCQUFBLENBQUFoQixNQUFBLENBQUFrQixTQUFBLDRCQUFBbEIsTUFBQSxDQUFBa0IsU0FBQSxPQUFBNEYsMEJBQUEsQ0FBQXRHLE9BQUEsRUFBQVIsTUFBQSxDQUFBa0IsU0FBQSx1QkFBQXhCLE1BQUEsR0FBQW9CLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWhCLE1BQUEsQ0FBQWtCLFNBQUEsdUJBQUFsQixNQUFBLENBQUFrQixTQUFBLE9BQUE0RiwwQkFBQSxDQUFBdEcsT0FBQSxFQUFBUixNQUFBLENBQUFrQixTQUFBLG1CQUFBdkIsTUFBQSxHQUFBbUIsTUFBQSxDQUFBRSx3QkFBQSxDQUFBaEIsTUFBQSxDQUFBa0IsU0FBQSxtQkFBQWxCLE1BQUEsQ0FBQWtCLFNBQUEsT0FBQTRGLDBCQUFBLENBQUF0RyxPQUFBLEVBQUFSLE1BQUEsQ0FBQWtCLFNBQUEscUJBQUF0QixNQUFBLEdBQUFrQixNQUFBLENBQUFFLHdCQUFBLENBQUFoQixNQUFBLENBQUFrQixTQUFBLHFCQUFBbEIsTUFBQSxDQUFBa0IsU0FBQSxPQUFBNEYsMEJBQUEsQ0FBQXRHLE9BQUEsRUFBQVIsTUFBQSxDQUFBa0IsU0FBQSxpQkFBQXJCLE1BQUEsR0FBQWlCLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWhCLE1BQUEsQ0FBQWtCLFNBQUEsaUJBQUFsQixNQUFBLENBQUFrQixTQUFBLE9BQUE0RiwwQkFBQSxDQUFBdEcsT0FBQSxFQUFBUixNQUFBLENBQUFrQixTQUFBLHVCQUFBcEIsTUFBQSxHQUFBZ0IsTUFBQSxDQUFBRSx3QkFBQSxDQUFBaEIsTUFBQSxDQUFBa0IsU0FBQSx1QkFBQWxCLE1BQUEsQ0FBQWtCLFNBQUEsT0FBQTRGLDBCQUFBLENBQUF0RyxPQUFBLEVBQUFSLE1BQUEsQ0FBQWtCLFNBQUEsbUJBQUFuQixNQUFBLEdBQUFlLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWhCLE1BQUEsQ0FBQWtCLFNBQUEsbUJBQUFsQixNQUFBLENBQUFrQixTQUFBLElBQUFsQixNQUFBO0FBQUErRyxPQUFBLENBQUF4RixxQ0FBQSxHQUFBQSxxQ0FBQSJ9
|
|
@@ -47,4 +47,4 @@ async function runFormStats(context, options, farmDirectory) {
|
|
|
47
47
|
context.logger.log(` ${gfvs.join(", ")}`);
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGF0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX1Jlc29sdmVGb3JtSW5mbyIsIl9Gb3JtR2xvYnNVdGlscyIsIl9JdGVyYWJsZVV0aWxzIiwiX1dlbGxLbm93bkRpcmVjdG9yaWVzIiwicnVuRm9ybVN0YXRzIiwiY29udGV4dCIsIm9wdGlvbnMiLCJmYXJtRGlyZWN0b3J5IiwiRm9ybUdsb2JzIiwiZW5zdXJlRWFjaEdsb2JSZXNvbHZlc0ludG9FeGlzdGluZ0Zvcm0iLCJmb3JtR2xvYnMiLCJyZXNvbHZlU3BlY2lmaWVycyIsImVuZ2luZVRvR2Z2TWFwIiwiZ2Z2IiwiZm9ybVBhdGgiLCJyZXNvbHZlR2Z2R2xvYnMiLCJfZW5naW5lVG9HZnZNYXAkZW5naW4iLCJfZW5naW5lVG9HZnZNYXAkZW5naW4yIiwiZm9ybUpzb25Db250ZW50IiwicmVhZEZvcm1Db25maWciLCJwYXRoIiwiam9pbiIsIldlbGxLbm93bkRpcmVjdG9yaWVzIiwiRm9ybUpzb25GaWxlTmFtZSIsImxvZ2dlciIsImVuZ2luZUJyYW5jaCIsIm1vZGUiLCJfZm9ybUpzb25Db250ZW50JGRlcGUiLCJfZm9ybUpzb25Db250ZW50JGRlcGUyIiwiZGVwZW5kZW5jaWVzIiwiZW5naW5lIiwicHVzaCIsImUiLCJlbmdpbmVHZnZzIiwiaXRlcmF0ZUVudHJpZXMiLCJsb2ciLCJsZW5ndGgiLCJnZnZzIiwiT2JqZWN0IiwiZW50cmllcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9Gb3JtU3RhdHMvUnVuRm9ybVN0YXRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IHJlYWRGb3JtQ29uZmlnIH0gZnJvbSBcIi4uLy4uL0J1aWxkVGFza3MvUmVzb2x2ZUZvcm1JbmZvXCI7XG5pbXBvcnQgeyBDb25zb2xlQXBwbGljYXRpb25Db250ZXh0IH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvQ29uc29sZUFwcGxpY2F0aW9uL0NvbnNvbGVBcHBsaWNhdGlvbkNvbnRleHRcIjtcbmltcG9ydCB7IEZvcm1HbG9icyB9IGZyb20gXCIuLi8uLi9Db21tb25zL0Zvcm1HbG9ic1V0aWxzXCI7XG5pbXBvcnQgeyBpdGVyYXRlRW50cmllcyB9IGZyb20gXCIuLi8uLi8uLi8uLi9Db21tb24vSXRlcmFibGVVdGlsc1wiO1xuaW1wb3J0IHsgV2VsbEtub3duRGlyZWN0b3JpZXMgfSBmcm9tIFwiLi4vLi4vLi4vLi4vQ29tbW9uL1dlbGxLbm93bkRpcmVjdG9yaWVzXCI7XG5cbmltcG9ydCB7IEZvcm1TdGF0c09wdGlvbnMgfSBmcm9tIFwiLi9Gb3JtU3RhdHNPcHRpb25zXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5Gb3JtU3RhdHMoXG4gICAgY29udGV4dDogQ29uc29sZUFwcGxpY2F0aW9uQ29udGV4dCxcbiAgICBvcHRpb25zOiBGb3JtU3RhdHNPcHRpb25zLFxuICAgIGZhcm1EaXJlY3Rvcnk6IHN0cmluZ1xuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgRm9ybUdsb2JzLmVuc3VyZUVhY2hHbG9iUmVzb2x2ZXNJbnRvRXhpc3RpbmdGb3JtKG9wdGlvbnMuZm9ybUdsb2JzLCBmYXJtRGlyZWN0b3J5KTtcbiAgICBjb25zdCBmb3JtR2xvYnMgPSBhd2FpdCBGb3JtR2xvYnMucmVzb2x2ZVNwZWNpZmllcnMob3B0aW9ucy5mb3JtR2xvYnMsIGZhcm1EaXJlY3RvcnkpO1xuXG4gICAgY29uc3QgZW5naW5lVG9HZnZNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9O1xuICAgIGZvciAoY29uc3QgeyBnZnYsIGZvcm1QYXRoIH0gb2YgYXdhaXQgRm9ybUdsb2JzLnJlc29sdmVHZnZHbG9icyhmb3JtR2xvYnMsIGZhcm1EaXJlY3RvcnkpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtSnNvbkNvbnRlbnQgPSBhd2FpdCByZWFkRm9ybUNvbmZpZyhcbiAgICAgICAgICAgICAgICBwYXRoLmpvaW4oZm9ybVBhdGgsIFdlbGxLbm93bkRpcmVjdG9yaWVzLkZvcm1Kc29uRmlsZU5hbWUpLFxuICAgICAgICAgICAgICAgIGNvbnRleHQubG9nZ2VyXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbGV0IGVuZ2luZUJyYW5jaDogc3RyaW5nO1xuICAgICAgICAgICAgaWYgKGZvcm1Kc29uQ29udGVudC5tb2RlID09PSBcImNvcHktbGVnYWN5LXByZWJ1aWx0LXJlc291cmNlc1wiKSB7XG4gICAgICAgICAgICAgICAgZW5naW5lQnJhbmNoID0gXCJMZWdhY3lDb3B5UHJlYnVpbHRcIjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybUpzb25Db250ZW50Lm1vZGUgPT09IFwibm8tZWRpdG9yXCIpIHtcbiAgICAgICAgICAgICAgICBlbmdpbmVCcmFuY2ggPSBcIk5vRWRpdG9yXCI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVuZ2luZUJyYW5jaCA9IGZvcm1Kc29uQ29udGVudC5kZXBlbmRlbmNpZXM/LmVuZ2luZSA/PyBcIlVua25vd25cIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVuZ2luZVRvR2Z2TWFwW2VuZ2luZUJyYW5jaF0gPSBlbmdpbmVUb0dmdk1hcFtlbmdpbmVCcmFuY2hdID8/IFtdO1xuICAgICAgICAgICAgZW5naW5lVG9HZnZNYXBbZW5naW5lQnJhbmNoXT8ucHVzaChnZnYpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBlbmdpbmVUb0dmdk1hcFtcIlVua25vd25cIl0gPSBlbmdpbmVUb0dmdk1hcFtcIlVua25vd25cIl0gfHwgW107XG4gICAgICAgICAgICBlbmdpbmVUb0dmdk1hcFtcIlVua25vd25cIl0ucHVzaChnZnYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBbZW5naW5lLCBlbmdpbmVHZnZzXSBvZiBpdGVyYXRlRW50cmllcyhlbmdpbmVUb0dmdk1hcCkpIHtcbiAgICAgICAgY29udGV4dC5sb2dnZXIubG9nKGVuZ2luZSk7XG4gICAgICAgIGNvbnRleHQubG9nZ2VyLmxvZyhgICAke2VuZ2luZUdmdnMubGVuZ3RofSBmb3Jtc2ApO1xuICAgIH1cbiAgICBjb250ZXh0LmxvZ2dlci5sb2coXCJcIik7XG4gICAgZm9yIChjb25zdCBbZW5naW5lLCBnZnZzXSBvZiBPYmplY3QuZW50cmllcyhlbmdpbmVUb0dmdk1hcCkpIHtcbiAgICAgICAgY29udGV4dC5sb2dnZXIubG9nKGVuZ2luZSk7XG4gICAgICAgIGNvbnRleHQubG9nZ2VyLmxvZyhgICAke2dmdnMuam9pbihcIiwgXCIpfWApO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGdCQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxlQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxjQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxxQkFBQSxHQUFBSixPQUFBO0FBSU8sZUFBZUssWUFBWUEsQ0FDOUJDLE9BQWtDLEVBQ2xDQyxPQUF5QixFQUN6QkMsYUFBcUIsRUFDUjtFQUNiLE1BQU1DLHlCQUFTLENBQUNDLHNDQUFzQyxDQUFDSCxPQUFPLENBQUNJLFNBQVMsRUFBRUgsYUFBYSxDQUFDO0VBQ3hGLE1BQU1HLFNBQVMsR0FBRyxNQUFNRix5QkFBUyxDQUFDRyxpQkFBaUIsQ0FBQ0wsT0FBTyxDQUFDSSxTQUFTLEVBQUVILGFBQWEsQ0FBQztFQUVyRixNQUFNSyxjQUF3QyxHQUFHLENBQUMsQ0FBQztFQUNuRCxLQUFLLE1BQU07SUFBRUMsR0FBRztJQUFFQztFQUFTLENBQUMsSUFBSSxNQUFNTix5QkFBUyxDQUFDTyxlQUFlLENBQUNMLFNBQVMsRUFBRUgsYUFBYSxDQUFDLEVBQUU7SUFDdkYsSUFBSTtNQUFBLElBQUFTLHFCQUFBLEVBQUFDLHNCQUFBO01BQ0EsTUFBTUMsZUFBZSxHQUFHLE1BQU0sSUFBQUMsK0JBQWMsRUFDeENDLGFBQUksQ0FBQ0MsSUFBSSxDQUFDUCxRQUFRLEVBQUVRLDBDQUFvQixDQUFDQyxnQkFBZ0IsQ0FBQyxFQUMxRGxCLE9BQU8sQ0FBQ21CLE1BQ1osQ0FBQztNQUNELElBQUlDLFlBQW9CO01BQ3hCLElBQUlQLGVBQWUsQ0FBQ1EsSUFBSSxLQUFLLGdDQUFnQyxFQUFFO1FBQzNERCxZQUFZLEdBQUcsb0JBQW9CO01BQ3ZDLENBQUMsTUFBTSxJQUFJUCxlQUFlLENBQUNRLElBQUksS0FBSyxXQUFXLEVBQUU7UUFDN0NELFlBQVksR0FBRyxVQUFVO01BQzdCLENBQUMsTUFBTTtRQUFBLElBQUFFLHFCQUFBLEVBQUFDLHNCQUFBO1FBQ0hILFlBQVksSUFBQUUscUJBQUEsSUFBQUMsc0JBQUEsR0FBR1YsZUFBZSxDQUFDVyxZQUFZLGNBQUFELHNCQUFBLHVCQUE1QkEsc0JBQUEsQ0FBOEJFLE1BQU0sY0FBQUgscUJBQUEsY0FBQUEscUJBQUEsR0FBSSxTQUFTO01BQ3BFO01BQ0FmLGNBQWMsQ0FBQ2EsWUFBWSxDQUFDLElBQUFULHFCQUFBLEdBQUdKLGNBQWMsQ0FBQ2EsWUFBWSxDQUFDLGNBQUFULHFCQUFBLGNBQUFBLHFCQUFBLEdBQUksRUFBRTtNQUNqRSxDQUFBQyxzQkFBQSxHQUFBTCxjQUFjLENBQUNhLFlBQVksQ0FBQyxjQUFBUixzQkFBQSx1QkFBNUJBLHNCQUFBLENBQThCYyxJQUFJLENBQUNsQixHQUFHLENBQUM7SUFDM0MsQ0FBQyxDQUFDLE9BQU9tQixDQUFDLEVBQUU7TUFDUnBCLGNBQWMsQ0FBQyxTQUFTLENBQUMsR0FBR0EsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7TUFDM0RBLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQ21CLElBQUksQ0FBQ2xCLEdBQUcsQ0FBQztJQUN2QztFQUNKO0VBRUEsS0FBSyxNQUFNLENBQUNpQixNQUFNLEVBQUVHLFVBQVUsQ0FBQyxJQUFJLElBQUFDLDZCQUFjLEVBQUN0QixjQUFjLENBQUMsRUFBRTtJQUMvRFAsT0FBTyxDQUFDbUIsTUFBTSxDQUFDVyxHQUFHLENBQUNMLE1BQU0sQ0FBQztJQUMxQnpCLE9BQU8sQ0FBQ21CLE1BQU0sQ0FBQ1csR0FBRyxDQUFFLEtBQUlGLFVBQVUsQ0FBQ0csTUFBTyxRQUFPLENBQUM7RUFDdEQ7RUFDQS9CLE9BQU8sQ0FBQ21CLE1BQU0sQ0FBQ1csR0FBRyxDQUFDLEVBQUUsQ0FBQztFQUN0QixLQUFLLE1BQU0sQ0FBQ0wsTUFBTSxFQUFFTyxJQUFJLENBQUMsSUFBSUMsTUFBTSxDQUFDQyxPQUFPLENBQUMzQixjQUFjLENBQUMsRUFBRTtJQUN6RFAsT0FBTyxDQUFDbUIsTUFBTSxDQUFDVyxHQUFHLENBQUNMLE1BQU0sQ0FBQztJQUMxQnpCLE9BQU8sQ0FBQ21CLE1BQU0sQ0FBQ1csR0FBRyxDQUFFLEtBQUlFLElBQUksQ0FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUUsRUFBQyxDQUFDO0VBQzlDO0FBQ0oifQ==
|
package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.AfterMerge.xslt
CHANGED
|
@@ -1 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<x:stylesheet version="1.0" xmlns:x="http://www.w3.org/1999/XSL/Transform">
|
|
3
|
+
<x:output indent="yes" encoding="utf-8" />
|
|
4
|
+
|
|
5
|
+
<x:template match="node()|@*">
|
|
6
|
+
<x:copy>
|
|
7
|
+
<x:apply-templates select="@*|node()"/>
|
|
8
|
+
</x:copy>
|
|
9
|
+
</x:template>
|
|
10
|
+
|
|
11
|
+
</x:stylesheet>
|
package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.BeforePreload.xslt
CHANGED
|
@@ -1 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<x:stylesheet version="1.0" xmlns:x="http://www.w3.org/1999/XSL/Transform">
|
|
3
|
+
<x:output indent="yes" encoding="utf-8" />
|
|
4
|
+
|
|
5
|
+
<x:template match="node()|@*">
|
|
6
|
+
<x:copy>
|
|
7
|
+
<x:apply-templates select="@*|node()"/>
|
|
8
|
+
</x:copy>
|
|
9
|
+
</x:template>
|
|
10
|
+
|
|
11
|
+
</x:stylesheet>
|
package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.fufPatcher.xslt
CHANGED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<x:stylesheet version="1.0" xmlns:x="http://www.w3.org/1999/XSL/Transform">
|
|
3
|
+
<x:output indent="yes" encoding="utf-8" />
|
|
4
|
+
|
|
5
|
+
<x:template match="node()|@*">
|
|
6
|
+
<x:copy>
|
|
7
|
+
<x:apply-templates select="@*|node()"/>
|
|
8
|
+
</x:copy>
|
|
9
|
+
</x:template>
|
|
10
|
+
|
|
11
|
+
</x:stylesheet>
|
package/distr/Tools/src/CLICommands/InitForm/EmptyFormTemplate/converters/{gfv}.outer.inner.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
{}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.SmokeTest = void 0;
|
|
7
7
|
var _mochaTypescript = require("mocha-typescript");
|
|
8
|
-
var _SmokeTestBases = require("
|
|
8
|
+
var _SmokeTestBases = require("../../../../../../../candy.farm/test/Commons/SmokeTestBases");
|
|
9
9
|
var _dec, _class;
|
|
10
10
|
// tslint:disable-next-line no-unsafe-any
|
|
11
11
|
let SmokeTest = (_dec = (0, _mochaTypescript.suite)((0, _SmokeTestBases.smokeTestName)(__dirname)), _dec(_class = class SmokeTest extends _SmokeTestBases.SmokeTestBase {
|
|
@@ -14,4 +14,4 @@ let SmokeTest = (_dec = (0, _mochaTypescript.suite)((0, _SmokeTestBases.smokeTes
|
|
|
14
14
|
}
|
|
15
15
|
}) || _class);
|
|
16
16
|
exports.SmokeTest = SmokeTest;
|
|
17
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9jaGFUeXBlc2NyaXB0IiwicmVxdWlyZSIsIl9TbW9rZVRlc3RCYXNlcyIsIl9kZWMiLCJfY2xhc3MiLCJTbW9rZVRlc3QiLCJzdWl0ZSIsInNtb2tlVGVzdE5hbWUiLCJfX2Rpcm5hbWUiLCJTbW9rZVRlc3RCYXNlIiwiY29uc3RydWN0b3IiLCJleHRyYWN0R2Z2RnJvbVRlc3RGaWxlTmFtZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvQ0xJQ29tbWFuZHMvSW5pdEZvcm0vRW1wdHlGb3JtVGVtcGxhdGUvdGVzdC9icm93c2VyL1Ntb2tlLnRlc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3VpdGUgfSBmcm9tIFwibW9jaGEtdHlwZXNjcmlwdFwiO1xuXG5pbXBvcnQgeyBleHRyYWN0R2Z2RnJvbVRlc3RGaWxlTmFtZSwgU21va2VUZXN0QmFzZSwgc21va2VUZXN0TmFtZSB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9jYW5keS5mYXJtL3Rlc3QvQ29tbW9ucy9TbW9rZVRlc3RCYXNlc1wiO1xuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5zYWZlLWFueVxuQHN1aXRlKHNtb2tlVGVzdE5hbWUoX19kaXJuYW1lKSlcbmV4cG9ydCBjbGFzcyBTbW9rZVRlc3QgZXh0ZW5kcyBTbW9rZVRlc3RCYXNlIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKGV4dHJhY3RHZnZGcm9tVGVzdEZpbGVOYW1lKF9fZGlybmFtZSkpO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsZ0JBQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLGVBQUEsR0FBQUQsT0FBQTtBQUF1SSxJQUFBRSxJQUFBLEVBQUFDLE1BQUE7QUFFdkk7QUFBQSxJQUVhQyxTQUFTLElBQUFGLElBQUEsR0FEckIsSUFBQUcsc0JBQUssRUFBQyxJQUFBQyw2QkFBYSxFQUFDQyxTQUFTLENBQUMsQ0FBQyxFQUFBTCxJQUFBLENBQUFDLE1BQUEsR0FBaEMsTUFDYUMsU0FBUyxTQUFTSSw2QkFBYSxDQUFDO0VBQ2xDQyxXQUFXQSxDQUFBLEVBQUc7SUFDakIsS0FBSyxDQUFDLElBQUFDLDBDQUEwQixFQUFDSCxTQUFTLENBQUMsQ0FBQztFQUNoRDtBQUNKLENBQUMsS0FBQUosTUFBQTtBQUFBUSxPQUFBLENBQUFQLFNBQUEsR0FBQUEsU0FBQSJ9
|
|
@@ -8,7 +8,7 @@ exports.DemoTest = void 0;
|
|
|
8
8
|
var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
|
|
9
9
|
var _chai = require("chai");
|
|
10
10
|
var _mochaTypescript = require("mocha-typescript");
|
|
11
|
-
var _CandyFarmUITestBase = require("
|
|
11
|
+
var _CandyFarmUITestBase = require("../../../../../../../candy.farm/test/Commons/CandyFarmUITestBase");
|
|
12
12
|
var _class, _class2;
|
|
13
13
|
let DemoTest = (0, _mochaTypescript.suite)(_class = (_class2 = class DemoTest extends _CandyFarmUITestBase.CandyFarmUITestBase {
|
|
14
14
|
async before() {
|
|
@@ -21,4 +21,4 @@ let DemoTest = (0, _mochaTypescript.suite)(_class = (_class2 = class DemoTest ex
|
|
|
21
21
|
}
|
|
22
22
|
}, ((0, _applyDecoratedDescriptor2.default)(_class2.prototype, "Авторасчёт значения1", [_mochaTypescript.test], Object.getOwnPropertyDescriptor(_class2.prototype, "Авторасчёт значения1"), _class2.prototype)), _class2)) || _class;
|
|
23
23
|
exports.DemoTest = DemoTest;
|
|
24
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hhaSIsInJlcXVpcmUiLCJfbW9jaGFUeXBlc2NyaXB0IiwiX0NhbmR5RmFybVVJVGVzdEJhc2UiLCJfY2xhc3MiLCJfY2xhc3MyIiwiRGVtb1Rlc3QiLCJzdWl0ZSIsIkNhbmR5RmFybVVJVGVzdEJhc2UiLCJiZWZvcmUiLCJjcmVhdGVGb3JtIiwidW5kZWZpbmVkIiwi0JDQstGC0L7RgNCw0YHRh9GR0YIg0LfQvdCw0YfQtdC90LjRjzEiLCJmb3JtIiwic2V0VmFsdWVUb0NvbnRyb2wiLCJleHBlY3QiLCJnZXRWYWx1ZUZyb21Db250cm9sIiwidG8iLCJlcWwiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yMiIsImRlZmF1bHQiLCJwcm90b3R5cGUiLCJ0ZXN0IiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9Jbml0Rm9ybS9FbXB0eUZvcm1UZW1wbGF0ZS90ZXN0L3VpL0RlbW9UZXN0LnRlc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhwZWN0IH0gZnJvbSBcImNoYWlcIjtcbmltcG9ydCB7IHN1aXRlLCB0ZXN0IH0gZnJvbSBcIm1vY2hhLXR5cGVzY3JpcHRcIjtcblxuaW1wb3J0IHsgQ2FuZHlGYXJtVUlUZXN0QmFzZSB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9jYW5keS5mYXJtL3Rlc3QvQ29tbW9ucy9DYW5keUZhcm1VSVRlc3RCYXNlXCI7XG5cbkBzdWl0ZVxuZXhwb3J0IGNsYXNzIERlbW9UZXN0IGV4dGVuZHMgQ2FuZHlGYXJtVUlUZXN0QmFzZSB7XG4gICAgcHVibGljIGFzeW5jIGJlZm9yZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5jcmVhdGVGb3JtKFwie2dmdn1cIiwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBAdGVzdFxuICAgIHB1YmxpYyBhc3luYyBcItCQ0LLRgtC+0YDQsNGB0YfRkdGCINC30L3QsNGH0LXQvdC40Y8xXCIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuZm9ybS5zZXRWYWx1ZVRvQ29udHJvbChcItCk0LDQudC7L9CU0L7QutGD0LzQtdC90YIv0JfQvdCw0YfQtdC90LhlMVwiLCBcInNldFZhbHVlXCIsIFwiMTBcIilcbiAgICAgICAgZXhwZWN0KGF3YWl0IHRoaXMuZm9ybS5nZXRWYWx1ZUZyb21Db250cm9sKFwi0KTQsNC50Lsv0JTQvtC60YPQvNC10L3Rgi/Ql9C90LDRh9C10L3QuGUyXCIsIFwiZ2V0VmFsdWVcIikpLnRvLmVxbChcIjlcIilcbiAgICAgICAgZXhwZWN0KGF3YWl0IHRoaXMuZm9ybS5nZXRWYWx1ZUZyb21Db250cm9sKFwi0KTQsNC50Lsv0JTQvtC60YPQvNC10L3Rgi/Ql9C90LDRh9C10L3QuGUzXCIsIFwiZ2V0VmFsdWVcIikpLnRvLmVxbChcIjEyXCIpXG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGdCQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxvQkFBQSxHQUFBRixPQUFBO0FBQXVHLElBQUFHLE1BQUEsRUFBQUMsT0FBQTtBQUFBLElBRzFGQyxRQUFRLE9BRHBCQyxzQkFBSyxFQUFBSCxNQUFBLElBQUFDLE9BQUEsR0FBTixNQUNhQyxRQUFRLFNBQVNFLHdDQUFtQixDQUFDO0VBQzlDLE1BQWFDLE1BQU1BLENBQUEsRUFBa0I7SUFDakMsTUFBTSxJQUFJLENBQUNDLFVBQVUsQ0FBQyxPQUFPLEVBQUVDLFNBQVMsRUFBRUEsU0FBUyxFQUFFQSxTQUFTLEVBQUVBLFNBQVMsQ0FBQztFQUM5RTtFQUVBLE1BQ2Esc0JBQXNCQyxDQUFBLEVBQWtCO0lBQ2pELE1BQU0sSUFBSSxDQUFDQyxJQUFJLENBQUNDLGlCQUFpQixDQUFDLHlCQUF5QixFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUM7SUFDOUUsSUFBQUMsWUFBTSxFQUFDLE1BQU0sSUFBSSxDQUFDRixJQUFJLENBQUNHLG1CQUFtQixDQUFDLHlCQUF5QixFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUNDLEVBQUUsQ0FBQ0MsR0FBRyxDQUFDLEdBQUcsQ0FBQztJQUM5RixJQUFBSCxZQUFNLEVBQUMsTUFBTSxJQUFJLENBQUNGLElBQUksQ0FBQ0csbUJBQW1CLENBQUMseUJBQXlCLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQ0MsRUFBRSxDQUFDQyxHQUFHLENBQUMsSUFBSSxDQUFDO0VBQ25HO0FBQ0osQ0FBQyxPQUFBQywwQkFBQSxDQUFBQyxPQUFBLEVBQUFmLE9BQUEsQ0FBQWdCLFNBQUEsRUFMZ0Isc0JBQXNCLEdBRGxDQyxxQkFBSSxHQUFBQyxNQUFBLENBQUFDLHdCQUFBLENBQUFuQixPQUFBLENBQUFnQixTQUFBLEVBQ1Esc0JBQXNCLEdBQUFoQixPQUFBLENBQUFnQixTQUFBLElBQUFoQixPQUFBLE1BQUFELE1BQUE7QUFBQXFCLE9BQUEsQ0FBQW5CLFFBQUEsR0FBQUEsUUFBQSJ9
|