@hestia-earth/ui-components 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/bundles/hestia-earth-ui-components.umd.js +392 -506
  2. package/bundles/hestia-earth-ui-components.umd.js.map +1 -1
  3. package/common/common.service.d.ts +1 -2
  4. package/common/public-api.d.ts +1 -0
  5. package/common/toast/toast.component.d.ts +2 -2
  6. package/common/toast.service.d.ts +3 -3
  7. package/common/utils.d.ts +3 -11
  8. package/cycles/public-api.d.ts +1 -0
  9. package/engine/aggregation-engine.service.d.ts +8 -20
  10. package/engine/engine.service.d.ts +2 -6
  11. package/esm2015/common/common.service.js +1 -7
  12. package/esm2015/common/public-api.js +2 -1
  13. package/esm2015/common/toast/toast.component.js +3 -3
  14. package/esm2015/common/toast.service.js +5 -5
  15. package/esm2015/common/utils.js +3 -61
  16. package/esm2015/cycles/public-api.js +2 -1
  17. package/esm2015/engine/aggregation-engine.service.js +11 -47
  18. package/esm2015/engine/engine.service.js +9 -15
  19. package/esm2015/impact-assessments/impact-assessments-products/impact-assessments-products.component.js +3 -3
  20. package/esm2015/mendeley/mendeley.service.js +1 -1
  21. package/esm2015/node/node-csv.service.js +1 -1
  22. package/esm2015/node/node.service.js +26 -16
  23. package/esm2015/schema/schema.service.js +1 -1
  24. package/esm2015/search/search.service.js +1 -1
  25. package/fesm2015/hestia-earth-ui-components.js +281 -372
  26. package/fesm2015/hestia-earth-ui-components.js.map +1 -1
  27. package/impact-assessments/impact-assessments-products/impact-assessments-products.component.d.ts +2 -2
  28. package/mendeley/mendeley.service.d.ts +2 -2
  29. package/node/node-csv.service.d.ts +1 -1
  30. package/node/node.service.d.ts +16 -7
  31. package/package.json +1 -1
  32. package/schema/schema.service.d.ts +1 -1
  33. package/search/search.service.d.ts +2 -2
@@ -11,6 +11,24 @@ import * as i0 from "@angular/core";
11
11
  import * as i1 from "@angular/common/http";
12
12
  import * as i2 from "../auth/auth.service";
13
13
  import * as i3 from "../common/common.service";
14
+ const nodeTypeUrl = (apiBaseUrl, type) => type ? `${apiBaseUrl}/${nodeTypeToParam(type)}` : '';
15
+ /**
16
+ * Get the full url to fetch the node data.
17
+ *
18
+ * @param apiBaseUrl The url of the API hosting the data.
19
+ * @param node The node with a type, id and optionally a dataState
20
+ * @returns The full url.
21
+ */
22
+ export const nodeUrl = (apiBaseUrl, _a) => {
23
+ var { dataState } = _a, node = __rest(_a, ["dataState"]);
24
+ return `${nodeTypeUrl(apiBaseUrl, node['@type'] || node.type)}/${node['@id'] || node.id}${dataState ? `?dataState=${dataState}` : ''}`;
25
+ };
26
+ export const nodeLogsUrl = (apiBaseUrl, _a) => {
27
+ var { dataState } = _a, node = __rest(_a, ["dataState"]);
28
+ return `${nodeUrl(apiBaseUrl, node)}/log${dataState ? `?dataState=${dataState}` : ''}`;
29
+ };
30
+ export const lookupUrl = (filename) => filename.startsWith('http') ? filename : `${baseUrl()}/glossary/lookups/${filename}.csv`;
31
+ export const termTypeLookupUrl = (termType) => `${baseUrl()}/glossary/${termChildToParent(termType).termType}/${termType}.csv`;
14
32
  export class HeNodeService {
15
33
  constructor(http, authService, commonService) {
16
34
  this.http = http;
@@ -63,26 +81,18 @@ export class HeNodeService {
63
81
  .catch(() => (responseType === 'json' ? ({}) : ''));
64
82
  }
65
83
  nodeTypeUrl(type) {
66
- return `${this.commonService.apiBaseUrl}/${nodeTypeToParam(type)}`;
84
+ return nodeTypeUrl(this.commonService.apiBaseUrl, type);
67
85
  }
68
- nodeUrl(_a) {
69
- var { dataState } = _a, node = __rest(_a, ["dataState"]);
70
- return `${this.nodeTypeUrl(node['@type'] || node.type)}/${node['@id'] || node.id}${dataState ? `?dataState=${dataState}` : ''}`;
71
- }
72
- nodeLogsUrl(_a) {
73
- var { dataState } = _a, node = __rest(_a, ["dataState"]);
74
- return `${this.nodeUrl(node)}/log${dataState ? `?dataState=${dataState}` : ''}`;
75
- }
76
- lookupUrl(filename) {
77
- return filename.startsWith('http') ? filename : `${baseUrl()}/glossary/lookups/${filename}.csv`;
86
+ nodeUrl(node) {
87
+ return nodeUrl(this.commonService.apiBaseUrl, node);
78
88
  }
79
- termTypeLookupUrl(termType) {
80
- return `${baseUrl()}/glossary/${termChildToParent(termType).termType}/${termType}.csv`;
89
+ nodeLogsUrl(node) {
90
+ return nodeLogsUrl(this.commonService.apiBaseUrl, node);
81
91
  }
82
92
  downloadLookup(filename) {
83
93
  return __awaiter(this, void 0, void 0, function* () {
84
94
  try {
85
- const url = this.lookupUrl(filename);
95
+ const url = lookupUrl(filename);
86
96
  return this.downloadRaw(url, 'text');
87
97
  }
88
98
  catch (_err) {
@@ -94,7 +104,7 @@ export class HeNodeService {
94
104
  return __awaiter(this, void 0, void 0, function* () {
95
105
  try {
96
106
  const data = yield this.downloadLookup(termType);
97
- return (data === null || data === void 0 ? void 0 : data.startsWith('term.id')) ? this.lookupUrl(termType) : null;
107
+ return (data === null || data === void 0 ? void 0 : data.startsWith('term.id')) ? lookupUrl(termType) : null;
98
108
  }
99
109
  catch (_err) {
100
110
  return null;
@@ -110,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
110
120
  providedIn: 'root'
111
121
  }]
112
122
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.HeAuthService }, { type: i3.HeCommonService }]; } });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25vZGUvbm9kZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBYSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBQXNELFFBQVEsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQztBQUVsSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFtRDFDLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQ1UsSUFBZ0IsRUFDaEIsV0FBMEIsRUFDMUIsYUFBOEI7UUFGOUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBZTtRQUMxQixrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7SUFDcEMsQ0FBQztJQUVMLElBQUksQ0FBSSxFQUFpQztZQUFqQyxFQUFFLFNBQVMsT0FBc0IsRUFBakIsSUFBSSxjQUFwQixhQUFzQixDQUFGO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPO1lBQ2pDLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQztTQUNwQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lB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QyxRQUFRLENBQUMsQ0FBQztnQkFDckMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFTLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUM5QztZQUNELE9BQU8sSUFBSSxFQUFFO2dCQUNYLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7SUFFWSxVQUFVLENBQUMsUUFBc0I7O1lBQzVDLElBQUk7Z0JBQ0YsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNqRCxPQUFPLENBQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2FBQ3RFO1lBQ0QsT0FBTyxJQUFJLEVBQUU7Z0JBQ1gsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTs7MkdBOUZVLGFBQWE7K0dBQWIsYUFBYSxjQUZaLE1BQU07NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEYXRhU3RhdGUsIG5vZGVUeXBlVG9QYXJhbSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvYXBpJztcbmltcG9ydCB7IElDeWNsZUpTT05MRCwgSUltcGFjdEFzc2Vzc21lbnRKU09OTEQsIElTaXRlSlNPTkxELCBOb2RlVHlwZSwgVGVybVRlcm1UeXBlIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEnO1xuXG5pbXBvcnQgeyB0ZXJtQ2hpbGRUb1BhcmVudCB9IGZyb20gJy4uL3Rlcm1zL3Rlcm1zLm1vZGVsJztcbmltcG9ydCB7IGZpbHRlclBhcmFtcywgaGFuZGxlQVBJRXJyb3IgfSBmcm9tICcuLi9jb21tb24vdXRpbHMnO1xuaW1wb3J0IHsgSGVDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL2NvbW1vbi5zZXJ2aWNlJztcbmltcG9ydCB7IGJhc2VVcmwgfSBmcm9tICcuLi9jb21tb24vdXRpbHMnO1xuaW1wb3J0IHsgSGVBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGgvYXV0aC5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBJSlNPTk5vZGUge1xuICAnQHR5cGUnPzogTm9kZVR5cGU7XG4gICdAaWQnPzogc3RyaW5nO1xuICB0eXBlPzogTm9kZVR5cGU7XG4gIGlkPzogc3RyaW5nO1xuICBkYXRhU3RhdGU/OiBEYXRhU3RhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJlbGF0ZWROb2RlIHtcbiAgJ0B0eXBlJzogTm9kZVR5cGU7XG4gICdAaWQnOiBzdHJpbmc7XG4gIFt4OiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUpTT05EYXRhIHtcbiAgW05vZGVUeXBlLkN5Y2xlXT86IElDeWNsZUpTT05MRFtdO1xuICBbTm9kZVR5cGUuU2l0ZV0/OiBJU2l0ZUpTT05MRFtdO1xuICBbTm9kZVR5cGUuSW1wYWN0QXNzZXNzbWVudF0/OiBJSW1wYWN0QXNzZXNzbWVudEpTT05MRFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElOb2RlTWlzc2luZ0xvb2t1cExvZyB7XG4gIGZpbGVuYW1lOiBzdHJpbmc7XG4gIHRlcm1JZDogc3RyaW5nO1xuICBjb2x1bW46IHN0cmluZztcbiAgLy8gYXR0cmlidXRlcyBsaW5rZWQgdG8gdGhlIG1vZGVsc1xuICBtb2RlbD86IHN0cmluZztcbiAgdGVybT86IHN0cmluZztcbiAga2V5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElOb2RlVGVybUxvZ3Mge1xuICBbbW9kZWxLZXk6IHN0cmluZ106IHtcbiAgICBpc0tleTogYm9vbGVhbjtcbiAgICBzaG91bGRSdW4/OiBib29sZWFuO1xuICAgIG1pc3NpbmdMb29rdXBzPzogSU5vZGVNaXNzaW5nTG9va3VwTG9nW107XG4gICAgcmVxdWlyZW1lbnRzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgICBsb2dzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU5vZGVMb2dzIHtcbiAgW3Rlcm06IHN0cmluZ106IElOb2RlVGVybUxvZ3M7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEhlTm9kZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogSGVBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIGNvbW1vblNlcnZpY2U6IEhlQ29tbW9uU2VydmljZVxuICApIHsgfVxuXG4gIGdldCQ8VD4oeyBkYXRhU3RhdGUsIC4uLm5vZGUgfTogSUpTT05Ob2RlKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4odGhpcy5ub2RlVXJsKG5vZGUpLCB7XG4gICAgICBoZWFkZXJzOiB0aGlzLmF1dGhTZXJ2aWNlLmhlYWRlcnMsXG4gICAgICBwYXJhbXM6IGZpbHRlclBhcmFtcyh7IGRhdGFTdGF0ZSB9KVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0PFQ+KG5vZGU6IElKU09OTm9kZSwgZGVmYXVsdEZvclN0YXRlID0gdHJ1ZSkge1xuICAgIHJldHVybiB0aGlzLmdldCQ8VD4obm9kZSlcbiAgICAgIC50b1Byb21pc2UoKVxuICAgICAgLmNhdGNoKCgpID0+IG5vZGUuZGF0YVN0YXRlICYmIGRlZmF1bHRGb3JTdGF0ZSA/ICgobm9kZSBhcyBhbnkpIGFzIFQpIDogKHt9KSBhcyBUKTtcbiAgfVxuXG4gIGdldExvZyh7IGRhdGFTdGF0ZSwgLi4ubm9kZSB9OiBJSlNPTk5vZGUpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLm5vZGVVcmwobm9kZSl9L2xvZ2AsIHtcbiAgICAgIGhlYWRlcnM6IHRoaXMuYXV0aFNlcnZpY2UuaGVhZGVycyxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgcGFyYW1zOiBmaWx0ZXJQYXJhbXMoeyBkYXRhU3RhdGUgfSlcbiAgICB9KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZignJykpXG4gICAgKTtcbiAgfVxuXG4gIGdldE1pc3NpbmdMb29rdXBzTG9nKHsgZGF0YVN0YXRlLCAuLi5ub2RlIH06IElKU09OTm9kZSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PElOb2RlTWlzc2luZ0xvb2t1cExvZ1tdPihgJHt0aGlzLm5vZGVVcmwobm9kZSl9L2xvZy9sb29rdXBzYCwge1xuICAgICAgaGVhZGVyczogdGhpcy5hdXRoU2VydmljZS5oZWFkZXJzLFxuICAgICAgcGFyYW1zOiBmaWx0ZXJQYXJhbXMoeyBkYXRhU3RhdGUgfSlcbiAgICB9KS50b1Byb21pc2UoKS5jYXRjaChoYW5kbGVBUElFcnJvcik7XG4gIH1cblxuICBnZXRNb2RlbHNMb2coeyBkYXRhU3RhdGUsIC4uLm5vZGUgfTogSUpTT05Ob2RlKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLm5vZGVVcmwobm9kZSl9L2xvZy9tb2RlbHNgLCB7XG4gICAgICBoZWFkZXJzOiB0aGlzLmF1dGhTZXJ2aWNlLmhlYWRlcnMsXG4gICAgICBwYXJhbXM6IGZpbHRlclBhcmFtcyh7IGRhdGFTdGF0ZSB9KVxuICAgIH0pLnRvUHJvbWlzZSgpLmNhdGNoKGhhbmRsZUFQSUVycm9yKTtcbiAgfVxuXG4gIHRyaWdnZXJQaXBlbGluZSh7IGRhdGFTdGF0ZSwgLi4ubm9kZSB9OiBJSlNPTk5vZGUpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5ub2RlVXJsKG5vZGUpfS9waXBlbGluZWAsIGRhdGFTdGF0ZSA/IHsgZGF0YVN0YXRlIH0gOiB7fSwge1xuICAgICAgaGVhZGVyczogdGhpcy5hdXRoU2VydmljZS5oZWFkZXJzXG4gICAgfSkudG9Qcm9taXNlKCkuY2F0Y2goaGFuZGxlQVBJRXJyb3IpO1xuICB9XG5cbiAgZG93bmxvYWRSYXc8VCA9IGFueT4odXJsOiBzdHJpbmcsIHJlc3BvbnNlVHlwZTogYW55ID0gJ2pzb24nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4odXJsLCB7IHJlc3BvbnNlVHlwZSB9KVxuICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAuY2F0Y2goKCkgPT4gKHJlc3BvbnNlVHlwZSA9PT0gJ2pzb24nID8gKHt9KSA6ICcnKSBhcyBUKTtcbiAgfVxuXG4gIHB1YmxpYyBub2RlVHlwZVVybCh0eXBlKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuY29tbW9uU2VydmljZS5hcGlCYXNlVXJsfS8ke25vZGVUeXBlVG9QYXJhbSh0eXBlKX1gO1xuICB9XG5cbiAgcHVibGljIG5vZGVVcmwoeyBkYXRhU3RhdGUsIC4uLm5vZGUgfTogSUpTT05Ob2RlKSB7XG4gICAgcmV0dXJuIGAke3RoaXMubm9kZVR5cGVVcmwobm9kZVsnQHR5cGUnXSB8fCBub2RlLnR5cGUpfS8ke25vZGVbJ0BpZCddIHx8IG5vZGUuaWR9JHtkYXRhU3RhdGUgPyBgP2RhdGFTdGF0ZT0ke2RhdGFTdGF0ZX1gIDogJyd9YDtcbiAgfVxuXG4gIHB1YmxpYyBub2RlTG9nc1VybCh7IGRhdGFTdGF0ZSwgLi4ubm9kZSB9OiBJSlNPTk5vZGUpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5ub2RlVXJsKG5vZGUpfS9sb2cke2RhdGFTdGF0ZSA/IGA/ZGF0YVN0YXRlPSR7ZGF0YVN0YXRlfWAgOiAnJ31gO1xuICB9XG5cbiAgcHVibGljIGxvb2t1cFVybChmaWxlbmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGZpbGVuYW1lLnN0YXJ0c1dpdGgoJ2h0dHAnKSA/IGZpbGVuYW1lIDogYCR7YmFzZVVybCgpfS9nbG9zc2FyeS9sb29rdXBzLyR7ZmlsZW5hbWV9LmNzdmA7XG4gIH1cblxuICBwdWJsaWMgdGVybVR5cGVMb29rdXBVcmwodGVybVR5cGU6IFRlcm1UZXJtVHlwZSkge1xuICAgIHJldHVybiBgJHtiYXNlVXJsKCl9L2dsb3NzYXJ5LyR7dGVybUNoaWxkVG9QYXJlbnQodGVybVR5cGUpLnRlcm1UeXBlfS8ke3Rlcm1UeXBlfS5jc3ZgO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRvd25sb2FkTG9va3VwKGZpbGVuYW1lOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdXJsID0gdGhpcy5sb29rdXBVcmwoZmlsZW5hbWUpO1xuICAgICAgcmV0dXJuIHRoaXMuZG93bmxvYWRSYXc8c3RyaW5nPih1cmwsICd0ZXh0Jyk7XG4gICAgfVxuICAgIGNhdGNoIChfZXJyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9va3VwTGluayh0ZXJtVHlwZTogVGVybVRlcm1UeXBlKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmRvd25sb2FkTG9va3VwKHRlcm1UeXBlKTtcbiAgICAgIHJldHVybiBkYXRhPy5zdGFydHNXaXRoKCd0ZXJtLmlkJykgPyB0aGlzLmxvb2t1cFVybCh0ZXJtVHlwZSkgOiBudWxsO1xuICAgIH1cbiAgICBjYXRjaCAoX2Vycikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG4iXX0=
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25vZGUvbm9kZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBYSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBQXNELFFBQVEsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQztBQUVsSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFHMUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxVQUFrQixFQUFFLElBQWUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBRWxIOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFDLFVBQWtCLEVBQUUsRUFBaUMsRUFBRSxFQUFFO1FBQXJDLEVBQUUsU0FBUyxPQUFzQixFQUFqQixJQUFJLGNBQXBCLGFBQXNCLENBQUY7SUFDOUQsT0FBQSxHQUFHLFdBQVcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsR0FDOUUsU0FBUyxDQUFDLENBQUMs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RlosTUFBTTs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERhdGFTdGF0ZSwgbm9kZVR5cGVUb1BhcmFtIH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9hcGknO1xuaW1wb3J0IHsgSUN5Y2xlSlNPTkxELCBJSW1wYWN0QXNzZXNzbWVudEpTT05MRCwgSVNpdGVKU09OTEQsIE5vZGVUeXBlLCBUZXJtVGVybVR5cGUgfSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5cbmltcG9ydCB7IHRlcm1DaGlsZFRvUGFyZW50IH0gZnJvbSAnLi4vdGVybXMvdGVybXMubW9kZWwnO1xuaW1wb3J0IHsgZmlsdGVyUGFyYW1zLCBoYW5kbGVBUElFcnJvciB9IGZyb20gJy4uL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBIZUNvbW1vblNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vY29tbW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgYmFzZVVybCB9IGZyb20gJy4uL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBIZUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuXG5jb25zdCBub2RlVHlwZVVybCA9IChhcGlCYXNlVXJsOiBzdHJpbmcsIHR5cGU/OiBOb2RlVHlwZSkgPT4gdHlwZSA/IGAke2FwaUJhc2VVcmx9LyR7bm9kZVR5cGVUb1BhcmFtKHR5cGUpfWAgOiAnJztcblxuLyoqXG4gKiBHZXQgdGhlIGZ1bGwgdXJsIHRvIGZldGNoIHRoZSBub2RlIGRhdGEuXG4gKlxuICogQHBhcmFtIGFwaUJhc2VVcmwgVGhlIHVybCBvZiB0aGUgQVBJIGhvc3RpbmcgdGhlIGRhdGEuXG4gKiBAcGFyYW0gbm9kZSBUaGUgbm9kZSB3aXRoIGEgdHlwZSwgaWQgYW5kIG9wdGlvbmFsbHkgYSBkYXRhU3RhdGVcbiAqIEByZXR1cm5zIFRoZSBmdWxsIHVybC5cbiAqL1xuZXhwb3J0IGNvbnN0IG5vZGVVcmwgPSAoYXBpQmFzZVVybDogc3RyaW5nLCB7IGRhdGFTdGF0ZSwgLi4ubm9kZSB9OiBJSlNPTk5vZGUpID0+XG4gIGAke25vZGVUeXBlVXJsKGFwaUJhc2VVcmwsIG5vZGVbJ0B0eXBlJ10gfHwgbm9kZS50eXBlKX0vJHtub2RlWydAaWQnXSB8fCBub2RlLmlkfSR7XG4gICAgZGF0YVN0YXRlID8gYD9kYXRhU3RhdGU9JHtkYXRhU3RhdGV9YCA6ICcnXG4gIH1gO1xuXG5leHBvcnQgY29uc3Qgbm9kZUxvZ3NVcmwgPSAoYXBpQmFzZVVybDogc3RyaW5nLCB7IGRhdGFTdGF0ZSwgLi4ubm9kZSB9OiBJSlNPTk5vZGUpID0+XG4gIGAke25vZGVVcmwoYXBpQmFzZVVybCwgbm9kZSl9L2xvZyR7ZGF0YVN0YXRlID8gYD9kYXRhU3RhdGU9JHtkYXRhU3RhdGV9YCA6ICcnfWA7XG5cbmV4cG9ydCBjb25zdCBsb29rdXBVcmwgPSAoZmlsZW5hbWU6IHN0cmluZykgPT5cbiAgZmlsZW5hbWUuc3RhcnRzV2l0aCgnaHR0cCcpID8gZmlsZW5hbWUgOiBgJHtiYXNlVXJsKCl9L2dsb3NzYXJ5L2xvb2t1cHMvJHtmaWxlbmFtZX0uY3N2YDtcblxuZXhwb3J0IGNvbnN0IHRlcm1UeXBlTG9va3VwVXJsID0gKHRlcm1UeXBlOiBUZXJtVGVybVR5cGUpID0+XG4gIGAke2Jhc2VVcmwoKX0vZ2xvc3NhcnkvJHt0ZXJtQ2hpbGRUb1BhcmVudCh0ZXJtVHlwZSkudGVybVR5cGV9LyR7dGVybVR5cGV9LmNzdmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUpTT05Ob2RlIHtcbiAgJ0B0eXBlJz86IE5vZGVUeXBlO1xuICAnQGlkJz86IHN0cmluZztcbiAgdHlwZT86IE5vZGVUeXBlO1xuICBpZD86IHN0cmluZztcbiAgZGF0YVN0YXRlPzogRGF0YVN0YXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElSZWxhdGVkTm9kZSB7XG4gICdAdHlwZSc6IE5vZGVUeXBlO1xuICAnQGlkJzogc3RyaW5nO1xuICBbeDogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElKU09ORGF0YSB7XG4gIFtOb2RlVHlwZS5DeWNsZV0/OiBJQ3ljbGVKU09OTERbXTtcbiAgW05vZGVUeXBlLlNpdGVdPzogSVNpdGVKU09OTERbXTtcbiAgW05vZGVUeXBlLkltcGFjdEFzc2Vzc21lbnRdPzogSUltcGFjdEFzc2Vzc21lbnRKU09OTERbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTm9kZU1pc3NpbmdMb29rdXBMb2cge1xuICBmaWxlbmFtZTogc3RyaW5nO1xuICB0ZXJtSWQ6IHN0cmluZztcbiAgY29sdW1uOiBzdHJpbmc7XG4gIC8vIGF0dHJpYnV0ZXMgbGlua2VkIHRvIHRoZSBtb2RlbHNcbiAgbW9kZWw/OiBzdHJpbmc7XG4gIHRlcm0/OiBzdHJpbmc7XG4gIGtleT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTm9kZVRlcm1Mb2dzIHtcbiAgW21vZGVsS2V5OiBzdHJpbmddOiB7XG4gICAgaXNLZXk6IGJvb2xlYW47XG4gICAgc2hvdWxkUnVuPzogYm9vbGVhbjtcbiAgICBtaXNzaW5nTG9va3Vwcz86IElOb2RlTWlzc2luZ0xvb2t1cExvZ1tdO1xuICAgIHJlcXVpcmVtZW50cz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG4gICAgbG9ncz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElOb2RlTG9ncyB7XG4gIFt0ZXJtOiBzdHJpbmddOiBJTm9kZVRlcm1Mb2dzO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBIZU5vZGVTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJvdGVjdGVkIGF1dGhTZXJ2aWNlOiBIZUF1dGhTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBjb21tb25TZXJ2aWNlOiBIZUNvbW1vblNlcnZpY2VcbiAgKSB7IH1cblxuICBnZXQkPFQ+KHsgZGF0YVN0YXRlLCAuLi5ub2RlIH06IElKU09OTm9kZSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHRoaXMubm9kZVVybChub2RlKSwge1xuICAgICAgaGVhZGVyczogdGhpcy5hdXRoU2VydmljZS5oZWFkZXJzLFxuICAgICAgcGFyYW1zOiBmaWx0ZXJQYXJhbXMoeyBkYXRhU3RhdGUgfSlcbiAgICB9KTtcbiAgfVxuXG4gIGdldDxUPihub2RlOiBJSlNPTk5vZGUsIGRlZmF1bHRGb3JTdGF0ZSA9IHRydWUpIHtcbiAgICByZXR1cm4gdGhpcy5nZXQkPFQ+KG5vZGUpXG4gICAgICAudG9Qcm9taXNlKClcbiAgICAgIC5jYXRjaCgoKSA9PiBub2RlLmRhdGFTdGF0ZSAmJiBkZWZhdWx0Rm9yU3RhdGUgPyAoKG5vZGUgYXMgYW55KSBhcyBUKSA6ICh7fSkgYXMgVCk7XG4gIH1cblxuICBnZXRMb2coeyBkYXRhU3RhdGUsIC4uLm5vZGUgfTogSUpTT05Ob2RlKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5ub2RlVXJsKG5vZGUpfS9sb2dgLCB7XG4gICAgICBoZWFkZXJzOiB0aGlzLmF1dGhTZXJ2aWNlLmhlYWRlcnMsXG4gICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcbiAgICAgIHBhcmFtczogZmlsdGVyUGFyYW1zKHsgZGF0YVN0YXRlIH0pXG4gICAgfSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoJycpKVxuICAgICk7XG4gIH1cblxuICBnZXRNaXNzaW5nTG9va3Vwc0xvZyh7IGRhdGFTdGF0ZSwgLi4ubm9kZSB9OiBJSlNPTk5vZGUpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxJTm9kZU1pc3NpbmdMb29rdXBMb2dbXT4oYCR7dGhpcy5ub2RlVXJsKG5vZGUpfS9sb2cvbG9va3Vwc2AsIHtcbiAgICAgIGhlYWRlcnM6IHRoaXMuYXV0aFNlcnZpY2UuaGVhZGVycyxcbiAgICAgIHBhcmFtczogZmlsdGVyUGFyYW1zKHsgZGF0YVN0YXRlIH0pXG4gICAgfSkudG9Qcm9taXNlKCkuY2F0Y2goaGFuZGxlQVBJRXJyb3IpO1xuICB9XG5cbiAgZ2V0TW9kZWxzTG9nKHsgZGF0YVN0YXRlLCAuLi5ub2RlIH06IElKU09OTm9kZSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5ub2RlVXJsKG5vZGUpfS9sb2cvbW9kZWxzYCwge1xuICAgICAgaGVhZGVyczogdGhpcy5hdXRoU2VydmljZS5oZWFkZXJzLFxuICAgICAgcGFyYW1zOiBmaWx0ZXJQYXJhbXMoeyBkYXRhU3RhdGUgfSlcbiAgICB9KS50b1Byb21pc2UoKS5jYXRjaChoYW5kbGVBUElFcnJvcik7XG4gIH1cblxuICB0cmlnZ2VyUGlwZWxpbmUoeyBkYXRhU3RhdGUsIC4uLm5vZGUgfTogSUpTT05Ob2RlKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMubm9kZVVybChub2RlKX0vcGlwZWxpbmVgLCBkYXRhU3RhdGUgPyB7IGRhdGFTdGF0ZSB9IDoge30sIHtcbiAgICAgIGhlYWRlcnM6IHRoaXMuYXV0aFNlcnZpY2UuaGVhZGVyc1xuICAgIH0pLnRvUHJvbWlzZSgpLmNhdGNoKGhhbmRsZUFQSUVycm9yKTtcbiAgfVxuXG4gIGRvd25sb2FkUmF3PFQgPSBhbnk+KHVybDogc3RyaW5nLCByZXNwb25zZVR5cGU6IGFueSA9ICdqc29uJykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHVybCwgeyByZXNwb25zZVR5cGUgfSlcbiAgICAgIC50b1Byb21pc2UoKVxuICAgICAgLmNhdGNoKCgpID0+IChyZXNwb25zZVR5cGUgPT09ICdqc29uJyA/ICh7fSkgOiAnJykgYXMgVCk7XG4gIH1cblxuICBwdWJsaWMgbm9kZVR5cGVVcmwodHlwZTogYW55KSB7XG4gICAgcmV0dXJuIG5vZGVUeXBlVXJsKHRoaXMuY29tbW9uU2VydmljZS5hcGlCYXNlVXJsLCB0eXBlKTtcbiAgfVxuXG4gIHB1YmxpYyBub2RlVXJsKG5vZGU6IElKU09OTm9kZSkge1xuICAgIHJldHVybiBub2RlVXJsKHRoaXMuY29tbW9uU2VydmljZS5hcGlCYXNlVXJsLCBub2RlKTtcbiAgfVxuXG4gIHB1YmxpYyBub2RlTG9nc1VybChub2RlOiBJSlNPTk5vZGUpIHtcbiAgICByZXR1cm4gbm9kZUxvZ3NVcmwodGhpcy5jb21tb25TZXJ2aWNlLmFwaUJhc2VVcmwsIG5vZGUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRvd25sb2FkTG9va3VwKGZpbGVuYW1lOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdXJsID0gbG9va3VwVXJsKGZpbGVuYW1lKTtcbiAgICAgIHJldHVybiB0aGlzLmRvd25sb2FkUmF3PHN0cmluZz4odXJsLCAndGV4dCcpO1xuICAgIH1cbiAgICBjYXRjaCAoX2Vycikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvb2t1cExpbmsodGVybVR5cGU6IFRlcm1UZXJtVHlwZSkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5kb3dubG9hZExvb2t1cCh0ZXJtVHlwZSk7XG4gICAgICByZXR1cm4gZGF0YT8uc3RhcnRzV2l0aCgndGVybS5pZCcpID8gbG9va3VwVXJsKHRlcm1UeXBlKSA6IG51bGw7XG4gICAgfVxuICAgIGNhdGNoIChfZXJyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -164,4 +164,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
164
164
  providedIn: 'root'
165
165
  }]
166
166
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2NoZW1hL3NjaGVtYS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQWMsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJeEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRTFDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLElBQTJCLEVBQUUsRUFBRSxDQUFDO0lBQzlELFFBQVEsQ0FBQyxLQUFLO0lBQ2QsUUFBUSxDQUFDLGdCQUFnQjtJQUN6QixRQUFRLENBQUMsSUFBSTtJQUNiLFFBQVEsQ0FBQyxNQUFNO0lBQ2YsUUFBUSxDQUFDLElBQUk7Q0FDZCxDQUFDLFFBQVEsQ0FBQyxJQUFnQixDQUFDLENBQUM7QUFFN0IsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQzFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FB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Q0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNuSCxDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNVLFlBQVksQ0FBQyxVQUFrQjs7WUFDMUMsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzNDLElBQUk7Z0JBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3ZDLE9BQU8sY0FBYyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDL0M7WUFDRCxPQUFPLEdBQUcsRUFBRTtnQkFDVixPQUFPLE9BQU8sQ0FBQzthQUNoQjtRQUNILENBQUM7S0FBQTtJQUFBLENBQUM7OzZHQTdFUyxlQUFlO2lIQUFmLGVBQWUsY0FGZCxNQUFNOzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGZyb20sIG9mLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIG1lcmdlTWFwLCByZWR1Y2UsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc0VtcHR5LCBpc1VuZGVmaW5lZCwgaXNFcXVhbCB9IGZyb20gJ0BoZXN0aWEtZWFydGgvdXRpbHMnO1xuaW1wb3J0IHsgU2NoZW1hVHlwZSwgTm9kZVR5cGUsIFNDSEVNQV9WRVJTSU9OLCBzb3J0Q29uZmlnLCBzb3J0S2V5c0J5VHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7XG4gIGRlZmluaXRpb25zLCBkZWZpbml0aW9uLCBJRGVmaW5pdGlvbiwgSURlZmluaXRpb25PYmplY3QsIElEZWZpbml0aW9uQXJyYXksIElEZWZpbml0aW9uUHJvcGVydGllc1xufSBmcm9tICdAaGVzdGlhLWVhcnRoL2pzb24tc2NoZW1hJztcbmltcG9ydCB7IGhlYWRlcnNGcm9tQ3N2IH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEtY29udmVydCc7XG5cbmltcG9ydCB7IGJhc2VVcmwgfSBmcm9tICcuLi9jb21tb24vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgbGlua1R5cGVFbmFibGVkID0gKHR5cGU6IFNjaGVtYVR5cGUgfCBOb2RlVHlwZSkgPT4gW1xuICBOb2RlVHlwZS5DeWNsZSxcbiAgTm9kZVR5cGUuSW1wYWN0QXNzZXNzbWVudCxcbiAgTm9kZVR5cGUuU2l0ZSxcbiAgTm9kZVR5cGUuU291cmNlLFxuICBOb2RlVHlwZS5UZXJtXG5dLmluY2x1ZGVzKHR5cGUgYXMgTm9kZVR5cGUpO1xuXG5leHBvcnQgY29uc3QgcmVmVG9TY2hlbWFUeXBlID0gKHJlZiA9ICcnKSA9PlxuICByZWYuc3RhcnRzV2l0aCgnaHR0cCcpID8gcmVmIDogcmVmLnN1YnN0cmluZygyKS5yZXBsYWNlKCctZGVlcCcsICcnKS5yZXBsYWNlKCcuanNvbiMnLCAnJykgYXMgU2NoZW1hVHlwZTtcblxuZXhwb3J0IGNvbnN0IGRlZmluaXRpb25Ub1NjaGVtYVR5cGUgPSAoeyB0aXRsZSwgJHJlZiB9OiBJRGVmaW5pdGlvbk9iamVjdCkgPT5cbiAgKHRpdGxlIHx8IHJlZlRvU2NoZW1hVHlwZSgkcmVmKSkgYXMgU2NoZW1hVHlwZTtcblxuY29uc3Qgc2NoZW1hVHlwZVByb3BlcnRpZXMgPSAocHJvcGVydGllczogSURlZmluaXRpb25Qcm9wZXJ0aWVzLCBzY2hlbWFUeXBlPzogU2NoZW1hVHlwZSkgPT4gc2NoZW1hVHlwZSA/IFtcbiAgJ3R5cGUnLFxuICAuLi4oJ2lkJyBpbiBwcm9wZXJ0aWVzICYmIHNjaGVtYVR5cGUgIT09IFNjaGVtYVR5cGUuVGVybSA/IFsnaWQnXSA6IFtdKVxuXSA6IFtdO1xuXG5jb25zdCBkZWZpbml0aW9uVG9TY2hlbWEgPSAoeyByZXF1aXJlZCwgcHJvcGVydGllcyB9OiBJRGVmaW5pdGlvbk9iamVjdCkgPT4gKHtcbiAgcmVxdWlyZWQ6IHJlcXVpcmVkIHx8IFtdLFxuICBwcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzIHx8IHt9XG59KTtcblxuZXhwb3J0IGNvbnN0IHNjaGVtYVJlcXVpcmVkUHJvcGVydGllcyA9IChzY2hlbWFzOiBkZWZpbml0aW9ucywgZGVmOiBJRGVmaW5pdGlvbk9iamVjdCkgPT4ge1xuICBjb25zdCBzY2hlbWFUeXBlID0gZGVmaW5pdGlvblRvU2NoZW1hVHlwZShkZWYpO1xuICBjb25zdCB7IHJlcXVpcmVkLCBwcm9wZXJ0aWVzIH0gPSBzY2hlbWFUeXBlIGluIHNjaGVtYXMgP1xuICAgIChzY2hlbWFzW3NjaGVtYVR5cGVdIGFzIElEZWZpbml0aW9uT2JqZWN0KSA6XG4gICAgZGVmaW5pdGlvblRvU2NoZW1hKGRlZik7XG4gIC8vIHJlbW92ZSBpbnRlcm5hbCBwcm9wZXJ0aWVzXG4gIGNvbnN0IHByb3BzID0gKHJlcXVpcmVkIHx8IFtdKS5maWx0ZXIoa2V5ID0+ICFwcm9wZXJ0aWVzW2tleV0uaW50ZXJuYWwpO1xuICByZXR1cm4ge1xuICAgIHNjaGVtYVR5cGUsXG4gICAgcHJvcGVydGllczogW1xuICAgICAgLi4ucHJvcHMsXG4gICAgICAuLi5zY2hlbWFUeXBlUHJvcGVydGllcyhwcm9wZXJ0aWVzLCBzY2hlbWFUeXBlKVxuICAgIF0ubWFwKGtleSA9PiAoeyBrZXksIHZhbHVlOiBwcm9wZXJ0aWVzW2tleV0gfSkpXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdmFsdWVUeXBlVG9EZWZhdWx0ID0ge1xuICBudW1iZXI6ICcnLFxuICBpbnRlZ2VyOiAnJyxcbiAgYm9vbGVhbjogZmFsc2UsXG4gIHN0cmluZzogJydcbn07XG5cbmV4cG9ydCBjb25zdCBuZXN0aW5nVHlwZUVuYWJsZWQgPSAoc2NoZW1hVHlwZTogU2NoZW1hVHlwZSkgPT4gIVtcbiAgU2NoZW1hVHlwZS5DeWNsZSxcbiAgU2NoZW1hVHlwZS5JbXBhY3RBc3Nlc3NtZW50LFxuICBTY2hlbWFUeXBlLk9yZ2FuaXNhdGlvbixcbiAgU2NoZW1hVHlwZS5TaXRlLFxuICBTY2hlbWFUeXBlLlNvdXJjZVxuXS5pbmNsdWRlcyhzY2hlbWFUeXBlKTtcblxuZXhwb3J0IGNvbnN0IG5lc3RpbmdFbmFibGVkID0gKHNjaGVtYVR5cGU6IFNjaGVtYVR5cGUsIGtleTogc3RyaW5nKSA9PlxuICBuZXN0aW5nVHlwZUVuYWJsZWQoc2NoZW1hVHlwZSkgfHwgWyd0eXBlJywgJ2lkJ10uaW5jbHVkZXMoa2V5KTtcblxuZXhwb3J0IGNvbnN0IHNjaGVtYVR5cGVUb0RlZmF1bHRWYWx1ZSA9IChzY2hlbWFzOiBkZWZpbml0aW9ucywgcHJvcDogZGVmaW5pdGlvbiwgbmVzdGVkID0gZmFsc2UpOiBhbnkgPT4ge1xuICBjb25zdCBtYXBwaW5nczoge1xuICAgIFtrZXk6IHN0cmluZ106ICgpID0+IGFueTtcbiAgfSA9IHtcbiAgICBvYmplY3Q6ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgc2NoZW1hVHlwZSwgcHJvcGVydGllcyB9ID0gc2NoZW1hUmVxdWlyZWRQcm9wZXJ0aWVzKHNjaGVtYXMsIHByb3AgYXMgSURlZmluaXRpb25PYmplY3QpO1xuICAgICAgcmV0dXJuIHByb3BlcnRpZXNcbiAgICAgICAgLmZpbHRlcigoeyBrZXkgfSkgPT4gIW5lc3RlZCB8fCBuZXN0aW5nRW5hYmxlZChzY2hlbWFUeXBlLCBrZXkpKVxuICAgICAgICAubWFwKCh7IGtleSwgdmFsdWUgfSkgPT4gKHsga2V5LCB2YWx1ZTogc2NoZW1hVHlwZVRvRGVmYXVsdFZhbHVlKHNjaGVtYXMsIHZhbHVlLCB0cnVlKSB9KSlcbiAgICAgICAgLnJlZHVjZSgocHJldiwgY3VycikgPT4gKHsgLi4ucHJldiwgW2N1cnIua2V5XTogY3Vyci52YWx1ZSB9KSwge30pO1xuICAgIH0sXG4gICAgYXJyYXk6ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgaXRlbXMgfSA9IHByb3AgYXMgSURlZmluaXRpb25BcnJheTtcbiAgICAgIHJldHVybiBbc2NoZW1hVHlwZVRvRGVmYXVsdFZhbHVlKHNjaGVtYXMsIGl0ZW1zLCB0cnVlKV07XG4gICAgfSxcbiAgICBkZWZhdWx0OiAoKSA9PiBwcm9wLmRlZmF1bHQgfHwgKHZhbHVlVHlwZVRvRGVmYXVsdCBhcyBhbnkpW3Byb3AudHlwZSBhcyBzdHJpbmddXG4gIH07XG4gIGNvbnN0IG1hcHBlZCA9ICFwcm9wLnR5cGUgPyBtYXBwaW5ncy5vYmplY3QgOiAoXG4gICAgcHJvcC50eXBlIGFzIHN0cmluZyBpbiBtYXBwaW5ncyA/IG1hcHBpbmdzW3Byb3AudHlwZSBhcyBzdHJpbmddIDogbWFwcGluZ3MuZGVmYXVsdFxuICApO1xuICByZXR1cm4gbWFwcGVkKCk7XG59O1xuXG5jb25zdCB0eXBlUHJvcGVydGllc0tleXM6IHtcbiAgW3R5cGUgaW4gU2NoZW1hVHlwZV0/OiBzdHJpbmdbXTtcbn0gPSB7XG4gIFtTY2hlbWFUeXBlLlRlcm1dOiBbJ3R5cGUnLCAnaWQnLCAnQGlkJywgJ25hbWUnXVxufTtcblxuZXhwb3J0IGNvbnN0IGF2YWlsYWJsZVByb3BlcnRpZXMgPSAoXG4gIHNjaGVtYTogZGVmaW5pdGlvbiwgc2NoZW1hVHlwZTogU2NoZW1hVHlwZSwgdmFsdWU6IGFueSwgaXNUb3BMZXZlbCA9IHRydWUsIHNraXBFeGlzdGluZ05vZGUgPSB0cnVlXG4pID0+IHtcbiAgY29uc3QgeyBwcm9wZXJ0aWVzIH0gPSAncHJvcGVydGllcycgaW4gc2NoZW1hID8gc2NoZW1hIDogeyBwcm9wZXJ0aWVzOiB7fSB9O1xuICBjb25zdCBrZXlzID0gc2NoZW1hVHlwZSBpbiB0eXBlUHJvcGVydGllc0tleXMgPyB0eXBlUHJvcGVydGllc0tleXNbc2NoZW1hVHlwZV0gOiBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzIHx8IHt9KTtcbiAgY29uc3QgaW50ZXJuYWxQcm9wcyA9IGtleXM/LmZpbHRlcihwcm9wID0+IHByb3BlcnRpZXNbcHJvcF0uaW50ZXJuYWwpO1xuICBjb25zdCBleGlzdGluZyA9IFtcbiAgICAuLi4oaXNFbXB0eSh2YWx1ZSkgPyBbXSA6IE9iamVjdC5rZXlzKHZhbHVlKS5maWx0ZXIodiA9PiAhaXNFbXB0eSh2YWx1ZVt2XSkgfHwgdmFsdWVbdl0gPT09ICcnKSksXG4gICAgLi4uaW50ZXJuYWxQcm9wcyEsXG4gICAgLi4uKGlzVG9wTGV2ZWwgPyBbXSA6IFsnQGlkJ10pLFxuICAgICdAdHlwZSdcbiAgXTtcbiAgY29uc3QgYXZhaWxhYmxlID0ga2V5cz8uZmlsdGVyKHByb3AgPT4gIWV4aXN0aW5nLmluY2x1ZGVzKHByb3ApKS5yZWR1Y2UoKHByZXY6IGFueSwgcHJvcCkgPT4ge1xuICAgIHByZXZbcHJvcF0gPSBwcm9wZXJ0aWVzW3Byb3BdO1xuICAgIHJldHVybiBwcmV2O1xuICB9LCB7fSk7XG4gIC8vIGF2b2lkIGVkaXRpbmcgYW4gZXhpc3Rpbmcgbm9kZVxuICBjb25zdCBpc0V4aXN0aW5nTm9kZSA9ICFpc1VuZGVmaW5lZCh2YWx1ZSkgJiYgIWlzVW5kZWZpbmVkKHZhbHVlWydAdHlwZSddIHx8IHZhbHVlLnR5cGUpICYmICFpc1VuZGVmaW5lZCh2YWx1ZVsnQGlkJ10pO1xuICByZXR1cm4gaXNFeGlzdGluZ05vZGUgJiYgc2tpcEV4aXN0aW5nTm9kZSA/IHt9IDogYXZhaWxhYmxlO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzU2NoZW1hSXJpID0gKHNjaGVtYT86IElEZWZpbml0aW9uT2JqZWN0KSA9PlxuICBpc0VxdWFsKE9iamVjdC5rZXlzKHNjaGVtYT8ucHJvcGVydGllcyB8fCB7fSksIFsnQGlkJ10pICYmIGlzRXF1YWwoKHNjaGVtYT8ucmVxdWlyZWQgfHwgW10pLCBbJ0BpZCddKTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSGVTY2hlbWFTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzY2hlbWFzTG9hZGluZyA9IGZhbHNlO1xuICBwcml2YXRlIHNjaGVtYXNMb2FkZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc2NoZW1hcyA9IG5ldyBSZXBsYXlTdWJqZWN0PGRlZmluaXRpb25zPigxKTtcblxuICBwcml2YXRlIHNvcnRDb25maWdMb2FkaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgc29ydENvbmZpZ0xvYWRlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9zb3J0Q29uZmlnID0gbmV3IFJlcGxheVN1YmplY3Q8c29ydENvbmZpZz4oMSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XG4gICkgeyB9XG5cbiAgcHJpdmF0ZSBsb2FkU2NoZW1hcygpIHtcbiAgICB0aGlzLnNjaGVtYXNMb2FkaW5nID0gdHJ1ZTtcbiAgICByZXR1cm4gZnJvbShPYmplY3QudmFsdWVzKFNjaGVtYVR5cGUpKS5waXBlKFxuICAgICAgbWVyZ2VNYXAodHlwZSA9PiB0aGlzLmh0dHAuZ2V0PElEZWZpbml0aW9uPihcbiAgICAgICAgYCR7YmFzZVVybCgpfS9zY2hlbWEvJHtTQ0hFTUFfVkVSU0lPTn0vanNvbi1zY2hlbWEvJHt0eXBlfS5qc29uYFxuICAgICAgKS5waXBlKFxuICAgICAgICBtYXAoc2NoZW1hID0+ICh7IHR5cGUsIHNjaGVtYSB9KSksXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoeyB0eXBlLCBzY2hlbWE6IHsgcHJvcGVydGllczogW10gfSB9KSlcbiAgICAgICkpLFxuICAgICAgcmVkdWNlKChwcmV2LCB7IHR5cGUsIHNjaGVtYSB9KSA9PiAoeyAuLi5wcmV2LCBbdHlwZV06IHNjaGVtYSB9KSwge30gYXMgZGVmaW5pdGlvbnMpLFxuICAgICAgbWFwKGRhdGEgPT4ge1xuICAgICAgICB0aGlzLl9zY2hlbWFzLm5leHQoZGF0YSk7XG4gICAgICAgIHRoaXMuc2NoZW1hc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zY2hlbWFzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNjaGVtYXMkKCkge1xuICAgIHJldHVybiB0aGlzLnNjaGVtYXNMb2FkaW5nIHx8IHRoaXMuc2NoZW1hc0xvYWRlZCA/IHRoaXMuX3NjaGVtYXMuYXNPYnNlcnZhYmxlKCkgOiB0aGlzLmxvYWRTY2hlbWFzKCk7XG4gIH1cblxuICBwdWJsaWMgc2NoZW1hcygpIHtcbiAgICByZXR1cm4gdGhpcy5zY2hlbWFzJC5waXBlKHRha2UoMSkpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkU29ydENvbmZpZygpIHtcbiAgICB0aGlzLnNvcnRDb25maWdMb2FkaW5nID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxzb3J0Q29uZmlnPihgJHtiYXNlVXJsKCl9L3NjaGVtYS8ke1NDSEVNQV9WRVJTSU9OfS9zb3J0LWNvbmZpZy9jb25maWcuanNvbmApLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKCgpID0+IG9mKCh1bmRlZmluZWQgYXMgYW55KSBhcyBzb3J0Q29uZmlnKSksXG4gICAgICBtYXAoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMuX3NvcnRDb25maWcubmV4dChkYXRhKTtcbiAgICAgICAgdGhpcy5zb3J0Q29uZmlnTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNvcnRDb25maWdMb2FkZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc29ydENvbmZpZyQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc29ydENvbmZpZ0xvYWRpbmcgfHwgdGhpcy5zb3J0Q29uZmlnTG9hZGVkID8gdGhpcy5fc29ydENvbmZpZy5hc09ic2VydmFibGUoKSA6IHRoaXMubG9hZFNvcnRDb25maWcoKTtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0Q29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLnNvcnRDb25maWckLnBpcGUodGFrZSgxKSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgYW5kIHNvcnQgKGlmIHBvc3NpYmxlKSBoZWFkZXJzIGZyb20gQ1NWIGNvbnRlbnQgYWNjb3JkaW5nIHRvIHRoZSBzY2hlbWEgb3JkZXIuXG4gICAqIFRoaXMgd2lsbCBsb2FkIHRoZSBzb3J0IGNvbmZpZ3VyYXRpb24gYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IHNjaGVtYSB2ZXJzaW9uLlxuICAgKlxuICAgKiBAcGFyYW0gY3N2Q29udGVudCBUaGUgY29udGVudCBhcyBhIHN0cmluZ1xuICAgKiBAcmV0dXJucyBMaXN0IG9mIHN0cmluZ3MgYXMgT2JzZXJ2YWJsZSB3aGVuIHBhcnNpbmcgLyBzb3J0aW5nIGlzIGRvbmUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcGFyc2VIZWFkZXJzKGNzdkNvbnRlbnQ6IHN0cmluZykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBoZWFkZXJzRnJvbUNzdihjc3ZDb250ZW50KTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY29uZmlnID0gYXdhaXQgdGhpcy5zb3J0Q29uZmlnKCk7XG4gICAgICByZXR1cm4gc29ydEtleXNCeVR5cGUoaGVhZGVycywgJ2FzYycsIGNvbmZpZyk7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgIHJldHVybiBoZWFkZXJzO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2NoZW1hL3NjaGVtYS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQWMsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJeEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRTFDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLElBQTJCLEVBQUUsRUFBRSxDQUFDO0lBQzlELFFBQVEsQ0FBQyxLQUFLO0lBQ2QsUUFBUSxDQUFDLGdCQUFnQjtJQUN6QixRQUFRLENBQUMsSUFBSTtJQUNiLFFBQVEsQ0FBQyxNQUFNO0lBQ2YsUUFBUSxDQUFDLElBQUk7Q0FDZCxDQUFDLFFBQVEsQ0FBQyxJQUFnQixDQUFDLENBQUM7QUFFN0IsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQzFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FB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Q0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNuSCxDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNVLFlBQVksQ0FBQyxVQUFrQjs7WUFDMUMsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzNDLElBQUk7Z0JBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3ZDLE9BQU8sY0FBYyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDL0M7WUFDRCxPQUFPLEdBQUcsRUFBRTtnQkFDVixPQUFPLE9BQU8sQ0FBQzthQUNoQjtRQUNILENBQUM7S0FBQTtJQUFBLENBQUM7OzZHQTdFUyxlQUFlO2lIQUFmLGVBQWUsY0FGZCxNQUFNOzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGZyb20sIG9mLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIG1lcmdlTWFwLCByZWR1Y2UsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBpc0VtcHR5LCBpc1VuZGVmaW5lZCwgaXNFcXVhbCB9IGZyb20gJ0BoZXN0aWEtZWFydGgvdXRpbHMnO1xuaW1wb3J0IHsgU2NoZW1hVHlwZSwgTm9kZVR5cGUsIFNDSEVNQV9WRVJTSU9OLCBzb3J0Q29uZmlnLCBzb3J0S2V5c0J5VHlwZSB9IGZyb20gJ0BoZXN0aWEtZWFydGgvc2NoZW1hJztcbmltcG9ydCB7XG4gIGRlZmluaXRpb25zLCBkZWZpbml0aW9uLCBJRGVmaW5pdGlvbiwgSURlZmluaXRpb25PYmplY3QsIElEZWZpbml0aW9uQXJyYXksIElEZWZpbml0aW9uUHJvcGVydGllc1xufSBmcm9tICdAaGVzdGlhLWVhcnRoL2pzb24tc2NoZW1hJztcbmltcG9ydCB7IGhlYWRlcnNGcm9tQ3N2IH0gZnJvbSAnQGhlc3RpYS1lYXJ0aC9zY2hlbWEtY29udmVydCc7XG5cbmltcG9ydCB7IGJhc2VVcmwgfSBmcm9tICcuLi9jb21tb24vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgbGlua1R5cGVFbmFibGVkID0gKHR5cGU6IFNjaGVtYVR5cGUgfCBOb2RlVHlwZSkgPT4gW1xuICBOb2RlVHlwZS5DeWNsZSxcbiAgTm9kZVR5cGUuSW1wYWN0QXNzZXNzbWVudCxcbiAgTm9kZVR5cGUuU2l0ZSxcbiAgTm9kZVR5cGUuU291cmNlLFxuICBOb2RlVHlwZS5UZXJtXG5dLmluY2x1ZGVzKHR5cGUgYXMgTm9kZVR5cGUpO1xuXG5leHBvcnQgY29uc3QgcmVmVG9TY2hlbWFUeXBlID0gKHJlZiA9ICcnKSA9PlxuICByZWYuc3RhcnRzV2l0aCgnaHR0cCcpID8gcmVmIDogcmVmLnN1YnN0cmluZygyKS5yZXBsYWNlKCctZGVlcCcsICcnKS5yZXBsYWNlKCcuanNvbiMnLCAnJykgYXMgU2NoZW1hVHlwZTtcblxuZXhwb3J0IGNvbnN0IGRlZmluaXRpb25Ub1NjaGVtYVR5cGUgPSAoeyB0aXRsZSwgJHJlZiB9OiBJRGVmaW5pdGlvbk9iamVjdCkgPT5cbiAgKHRpdGxlIHx8IHJlZlRvU2NoZW1hVHlwZSgkcmVmKSkgYXMgU2NoZW1hVHlwZTtcblxuY29uc3Qgc2NoZW1hVHlwZVByb3BlcnRpZXMgPSAocHJvcGVydGllczogSURlZmluaXRpb25Qcm9wZXJ0aWVzLCBzY2hlbWFUeXBlPzogU2NoZW1hVHlwZSkgPT4gc2NoZW1hVHlwZSA/IFtcbiAgJ3R5cGUnLFxuICAuLi4oJ2lkJyBpbiBwcm9wZXJ0aWVzICYmIHNjaGVtYVR5cGUgIT09IFNjaGVtYVR5cGUuVGVybSA/IFsnaWQnXSA6IFtdKVxuXSA6IFtdO1xuXG5jb25zdCBkZWZpbml0aW9uVG9TY2hlbWEgPSAoeyByZXF1aXJlZCwgcHJvcGVydGllcyB9OiBJRGVmaW5pdGlvbk9iamVjdCkgPT4gKHtcbiAgcmVxdWlyZWQ6IHJlcXVpcmVkIHx8IFtdLFxuICBwcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzIHx8IHt9XG59KTtcblxuZXhwb3J0IGNvbnN0IHNjaGVtYVJlcXVpcmVkUHJvcGVydGllcyA9IChzY2hlbWFzOiBkZWZpbml0aW9ucywgZGVmOiBJRGVmaW5pdGlvbk9iamVjdCkgPT4ge1xuICBjb25zdCBzY2hlbWFUeXBlID0gZGVmaW5pdGlvblRvU2NoZW1hVHlwZShkZWYpO1xuICBjb25zdCB7IHJlcXVpcmVkLCBwcm9wZXJ0aWVzIH0gPSBzY2hlbWFUeXBlIGluIHNjaGVtYXMgP1xuICAgIChzY2hlbWFzW3NjaGVtYVR5cGVdIGFzIElEZWZpbml0aW9uT2JqZWN0KSA6XG4gICAgZGVmaW5pdGlvblRvU2NoZW1hKGRlZik7XG4gIC8vIHJlbW92ZSBpbnRlcm5hbCBwcm9wZXJ0aWVzXG4gIGNvbnN0IHByb3BzID0gKHJlcXVpcmVkIHx8IFtdKS5maWx0ZXIoa2V5ID0+ICFwcm9wZXJ0aWVzW2tleV0uaW50ZXJuYWwpO1xuICByZXR1cm4ge1xuICAgIHNjaGVtYVR5cGUsXG4gICAgcHJvcGVydGllczogW1xuICAgICAgLi4ucHJvcHMsXG4gICAgICAuLi5zY2hlbWFUeXBlUHJvcGVydGllcyhwcm9wZXJ0aWVzLCBzY2hlbWFUeXBlKVxuICAgIF0ubWFwKGtleSA9PiAoeyBrZXksIHZhbHVlOiBwcm9wZXJ0aWVzW2tleV0gfSkpXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdmFsdWVUeXBlVG9EZWZhdWx0ID0ge1xuICBudW1iZXI6ICcnLFxuICBpbnRlZ2VyOiAnJyxcbiAgYm9vbGVhbjogZmFsc2UsXG4gIHN0cmluZzogJydcbn07XG5cbmV4cG9ydCBjb25zdCBuZXN0aW5nVHlwZUVuYWJsZWQgPSAoc2NoZW1hVHlwZTogU2NoZW1hVHlwZSkgPT4gIVtcbiAgU2NoZW1hVHlwZS5DeWNsZSxcbiAgU2NoZW1hVHlwZS5JbXBhY3RBc3Nlc3NtZW50LFxuICBTY2hlbWFUeXBlLk9yZ2FuaXNhdGlvbixcbiAgU2NoZW1hVHlwZS5TaXRlLFxuICBTY2hlbWFUeXBlLlNvdXJjZVxuXS5pbmNsdWRlcyhzY2hlbWFUeXBlKTtcblxuZXhwb3J0IGNvbnN0IG5lc3RpbmdFbmFibGVkID0gKHNjaGVtYVR5cGU6IFNjaGVtYVR5cGUsIGtleTogc3RyaW5nKSA9PlxuICBuZXN0aW5nVHlwZUVuYWJsZWQoc2NoZW1hVHlwZSkgfHwgWyd0eXBlJywgJ2lkJ10uaW5jbHVkZXMoa2V5KTtcblxuZXhwb3J0IGNvbnN0IHNjaGVtYVR5cGVUb0RlZmF1bHRWYWx1ZSA9IChzY2hlbWFzOiBkZWZpbml0aW9ucywgcHJvcDogZGVmaW5pdGlvbiwgbmVzdGVkID0gZmFsc2UpOiBhbnkgPT4ge1xuICBjb25zdCBtYXBwaW5nczoge1xuICAgIFtrZXk6IHN0cmluZ106ICgpID0+IGFueTtcbiAgfSA9IHtcbiAgICBvYmplY3Q6ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgc2NoZW1hVHlwZSwgcHJvcGVydGllcyB9ID0gc2NoZW1hUmVxdWlyZWRQcm9wZXJ0aWVzKHNjaGVtYXMsIHByb3AgYXMgSURlZmluaXRpb25PYmplY3QpO1xuICAgICAgcmV0dXJuIHByb3BlcnRpZXNcbiAgICAgICAgLmZpbHRlcigoeyBrZXkgfSkgPT4gIW5lc3RlZCB8fCBuZXN0aW5nRW5hYmxlZChzY2hlbWFUeXBlLCBrZXkpKVxuICAgICAgICAubWFwKCh7IGtleSwgdmFsdWUgfSkgPT4gKHsga2V5LCB2YWx1ZTogc2NoZW1hVHlwZVRvRGVmYXVsdFZhbHVlKHNjaGVtYXMsIHZhbHVlLCB0cnVlKSB9KSlcbiAgICAgICAgLnJlZHVjZSgocHJldiwgY3VycikgPT4gKHsgLi4ucHJldiwgW2N1cnIua2V5XTogY3Vyci52YWx1ZSB9KSwge30pO1xuICAgIH0sXG4gICAgYXJyYXk6ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgaXRlbXMgfSA9IHByb3AgYXMgSURlZmluaXRpb25BcnJheTtcbiAgICAgIHJldHVybiBbc2NoZW1hVHlwZVRvRGVmYXVsdFZhbHVlKHNjaGVtYXMsIGl0ZW1zLCB0cnVlKV07XG4gICAgfSxcbiAgICBkZWZhdWx0OiAoKSA9PiBwcm9wLmRlZmF1bHQgfHwgKHZhbHVlVHlwZVRvRGVmYXVsdCBhcyBhbnkpW3Byb3AudHlwZSBhcyBzdHJpbmddXG4gIH07XG4gIGNvbnN0IG1hcHBlZCA9ICFwcm9wLnR5cGUgPyBtYXBwaW5ncy5vYmplY3QgOiAoXG4gICAgcHJvcC50eXBlIGFzIHN0cmluZyBpbiBtYXBwaW5ncyA/IG1hcHBpbmdzW3Byb3AudHlwZSBhcyBzdHJpbmddIDogbWFwcGluZ3MuZGVmYXVsdFxuICApO1xuICByZXR1cm4gbWFwcGVkKCk7XG59O1xuXG5jb25zdCB0eXBlUHJvcGVydGllc0tleXM6IHtcbiAgW3R5cGUgaW4gU2NoZW1hVHlwZV0/OiBzdHJpbmdbXTtcbn0gPSB7XG4gIFtTY2hlbWFUeXBlLlRlcm1dOiBbJ3R5cGUnLCAnaWQnLCAnQGlkJywgJ25hbWUnXVxufTtcblxuZXhwb3J0IGNvbnN0IGF2YWlsYWJsZVByb3BlcnRpZXMgPSAoXG4gIHNjaGVtYTogZGVmaW5pdGlvbiwgc2NoZW1hVHlwZTogU2NoZW1hVHlwZSwgdmFsdWU6IGFueSwgaXNUb3BMZXZlbCA9IHRydWUsIHNraXBFeGlzdGluZ05vZGUgPSB0cnVlXG4pID0+IHtcbiAgY29uc3QgeyBwcm9wZXJ0aWVzIH0gPSAncHJvcGVydGllcycgaW4gc2NoZW1hID8gc2NoZW1hIDogeyBwcm9wZXJ0aWVzOiB7fSB9O1xuICBjb25zdCBrZXlzID0gc2NoZW1hVHlwZSBpbiB0eXBlUHJvcGVydGllc0tleXMgPyB0eXBlUHJvcGVydGllc0tleXNbc2NoZW1hVHlwZV0gOiBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzIHx8IHt9KTtcbiAgY29uc3QgaW50ZXJuYWxQcm9wcyA9IGtleXM/LmZpbHRlcihwcm9wID0+IHByb3BlcnRpZXNbcHJvcF0uaW50ZXJuYWwpO1xuICBjb25zdCBleGlzdGluZyA9IFtcbiAgICAuLi4oaXNFbXB0eSh2YWx1ZSkgPyBbXSA6IE9iamVjdC5rZXlzKHZhbHVlKS5maWx0ZXIodiA9PiAhaXNFbXB0eSh2YWx1ZVt2XSkgfHwgdmFsdWVbdl0gPT09ICcnKSksXG4gICAgLi4uaW50ZXJuYWxQcm9wcyEsXG4gICAgLi4uKGlzVG9wTGV2ZWwgPyBbXSA6IFsnQGlkJ10pLFxuICAgICdAdHlwZSdcbiAgXTtcbiAgY29uc3QgYXZhaWxhYmxlID0ga2V5cz8uZmlsdGVyKHByb3AgPT4gIWV4aXN0aW5nLmluY2x1ZGVzKHByb3ApKS5yZWR1Y2UoKHByZXY6IGFueSwgcHJvcCkgPT4ge1xuICAgIHByZXZbcHJvcF0gPSBwcm9wZXJ0aWVzW3Byb3BdO1xuICAgIHJldHVybiBwcmV2O1xuICB9LCB7fSk7XG4gIC8vIGF2b2lkIGVkaXRpbmcgYW4gZXhpc3Rpbmcgbm9kZVxuICBjb25zdCBpc0V4aXN0aW5nTm9kZSA9ICFpc1VuZGVmaW5lZCh2YWx1ZSkgJiYgIWlzVW5kZWZpbmVkKHZhbHVlWydAdHlwZSddIHx8IHZhbHVlLnR5cGUpICYmICFpc1VuZGVmaW5lZCh2YWx1ZVsnQGlkJ10pO1xuICByZXR1cm4gaXNFeGlzdGluZ05vZGUgJiYgc2tpcEV4aXN0aW5nTm9kZSA/IHt9IDogYXZhaWxhYmxlO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzU2NoZW1hSXJpID0gKHNjaGVtYT86IElEZWZpbml0aW9uT2JqZWN0KSA9PlxuICBpc0VxdWFsKE9iamVjdC5rZXlzKHNjaGVtYT8ucHJvcGVydGllcyB8fCB7fSksIFsnQGlkJ10pICYmIGlzRXF1YWwoKHNjaGVtYT8ucmVxdWlyZWQgfHwgW10pLCBbJ0BpZCddKTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSGVTY2hlbWFTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzY2hlbWFzTG9hZGluZyA9IGZhbHNlO1xuICBwcml2YXRlIHNjaGVtYXNMb2FkZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc2NoZW1hcyA9IG5ldyBSZXBsYXlTdWJqZWN0PGRlZmluaXRpb25zPigxKTtcblxuICBwcml2YXRlIHNvcnRDb25maWdMb2FkaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgc29ydENvbmZpZ0xvYWRlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9zb3J0Q29uZmlnID0gbmV3IFJlcGxheVN1YmplY3Q8c29ydENvbmZpZz4oMSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnRcbiAgKSB7IH1cblxuICBwcml2YXRlIGxvYWRTY2hlbWFzKCkge1xuICAgIHRoaXMuc2NoZW1hc0xvYWRpbmcgPSB0cnVlO1xuICAgIHJldHVybiBmcm9tKE9iamVjdC52YWx1ZXMoU2NoZW1hVHlwZSkpLnBpcGUoXG4gICAgICBtZXJnZU1hcCh0eXBlID0+IHRoaXMuaHR0cC5nZXQ8SURlZmluaXRpb24+KFxuICAgICAgICBgJHtiYXNlVXJsKCl9L3NjaGVtYS8ke1NDSEVNQV9WRVJTSU9OfS9qc29uLXNjaGVtYS8ke3R5cGV9Lmpzb25gXG4gICAgICApLnBpcGUoXG4gICAgICAgIG1hcChzY2hlbWEgPT4gKHsgdHlwZSwgc2NoZW1hIH0pKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZih7IHR5cGUsIHNjaGVtYTogeyBwcm9wZXJ0aWVzOiBbXSB9IH0pKVxuICAgICAgKSksXG4gICAgICByZWR1Y2UoKHByZXYsIHsgdHlwZSwgc2NoZW1hIH0pID0+ICh7IC4uLnByZXYsIFt0eXBlXTogc2NoZW1hIH0pLCB7fSBhcyBkZWZpbml0aW9ucyksXG4gICAgICBtYXAoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMuX3NjaGVtYXMubmV4dChkYXRhKTtcbiAgICAgICAgdGhpcy5zY2hlbWFzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNjaGVtYXNMb2FkZWQgPSB0cnVlO1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2NoZW1hcyQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2NoZW1hc0xvYWRpbmcgfHwgdGhpcy5zY2hlbWFzTG9hZGVkID8gdGhpcy5fc2NoZW1hcy5hc09ic2VydmFibGUoKSA6IHRoaXMubG9hZFNjaGVtYXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzY2hlbWFzKCkge1xuICAgIHJldHVybiB0aGlzLnNjaGVtYXMkLnBpcGUodGFrZSgxKSkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBwcml2YXRlIGxvYWRTb3J0Q29uZmlnKCkge1xuICAgIHRoaXMuc29ydENvbmZpZ0xvYWRpbmcgPSB0cnVlO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHNvcnRDb25maWc+KGAke2Jhc2VVcmwoKX0vc2NoZW1hLyR7U0NIRU1BX1ZFUlNJT059L3NvcnQtY29uZmlnL2NvbmZpZy5qc29uYCkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoKHVuZGVmaW5lZCBhcyBhbnkpIGFzIHNvcnRDb25maWcpKSxcbiAgICAgIG1hcChkYXRhID0+IHtcbiAgICAgICAgdGhpcy5fc29ydENvbmZpZy5uZXh0KGRhdGEpO1xuICAgICAgICB0aGlzLnNvcnRDb25maWdMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc29ydENvbmZpZ0xvYWRlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBzb3J0Q29uZmlnJCgpIHtcbiAgICByZXR1cm4gdGhpcy5zb3J0Q29uZmlnTG9hZGluZyB8fCB0aGlzLnNvcnRDb25maWdMb2FkZWQgPyB0aGlzLl9zb3J0Q29uZmlnLmFzT2JzZXJ2YWJsZSgpIDogdGhpcy5sb2FkU29ydENvbmZpZygpO1xuICB9XG5cbiAgcHVibGljIHNvcnRDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc29ydENvbmZpZyQucGlwZSh0YWtlKDEpKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBhbmQgc29ydCAoaWYgcG9zc2libGUpIGhlYWRlcnMgZnJvbSBDU1YgY29udGVudCBhY2NvcmRpbmcgdG8gdGhlIHNjaGVtYSBvcmRlci5cbiAgICogVGhpcyB3aWxsIGxvYWQgdGhlIHNvcnQgY29uZmlndXJhdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgc2NoZW1hIHZlcnNpb24uXG4gICAqXG4gICAqIEBwYXJhbSBjc3ZDb250ZW50IFRoZSBjb250ZW50IGFzIGEgc3RyaW5nXG4gICAqIEByZXR1cm5zIExpc3Qgb2Ygc3RyaW5ncyBhcyBPYnNlcnZhYmxlIHdoZW4gcGFyc2luZyAvIHNvcnRpbmcgaXMgZG9uZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBwYXJzZUhlYWRlcnMoY3N2Q29udGVudDogc3RyaW5nKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IGhlYWRlcnNGcm9tQ3N2KGNzdkNvbnRlbnQpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLnNvcnRDb25maWcoKTtcbiAgICAgIHJldHVybiBzb3J0S2V5c0J5VHlwZShoZWFkZXJzLCAnYXNjJywgY29uZmlnKTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgcmV0dXJuIGhlYWRlcnM7XG4gICAgfVxuICB9O1xufVxuIl19
@@ -96,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
96
96
  providedIn: 'root'
97
97
  }]
98
98
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.HeCommonService }]; } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VhcmNoL3NlYXJjaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQ0csUUFBUSxFQUFvRCxVQUFVLEVBQy9FLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUNMLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQWtCLGVBQWUsRUFBRSxvQkFBb0IsRUFDdkgsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQTJEeEIsTUFBTSxpQkFBaUIsR0FBRyxHQUE0QyxFQUFFLENBQUMsQ0FBQztJQUN4RSxJQUFJLEVBQUUsQ0FBQztJQUNQLEtBQUssRUFBRSxDQUFDO0lBQ1IsT0FBTyxFQUFFLEVBQUU7Q0FDYSxDQUFBLENBQUM7QUFFM0IsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQztBQUVqQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUM7SUFDbEQsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUMzQixVQUFVLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN0QyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0NBQ2pDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FDMUIsS0FBYSxFQUFFLElBQVEsRUFBRSxlQUFzQixFQUFFLEVBQ2pELEVBQUUsQ0FBQyxDQUFDO0lBQ0osSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLFlB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LEVBQUUsa0JBQWtCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUM7YUFDOUYsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLE9BQTBCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGdDQUN0RCxNQUFNLEtBQ1QsWUFBWTtnQkFDVixxQ0FBcUM7Z0JBQ3JDLElBQUksRUFBRSxVQUFVLENBQUMsWUFBWSxJQUMxQixNQUFNLENBQUMsWUFBWSxJQUVMLENBQUEsQ0FBQyxDQUFDLENBQ3hCLENBQUM7SUFDTixDQUFDOzs2R0FoRVUsZUFBZTtpSEFBZixlQUFlLGNBRmQsTUFBTTs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgSlNPTkxELCBOb2RlVHlwZSwgSUN5Y2xlSlNPTkxELCBJU291cmNlSlNPTkxELCBJVGVybUpTT05MRCwgU291cmNlLCBTY2hlbWFUeXBlLCBJSW1wYWN0QXNzZXNzbWVudEpTT05MRFxufSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5cbmltcG9ydCB7IEhlQ29tbW9uU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9jb21tb24uc2VydmljZSc7XG5pbXBvcnQge1xuICBtYXRjaFR5cGUsIG1hdGNoUGhyYXNlUXVlcnksIG1hdGNoUGhyYXNlUHJlZml4UXVlcnksIG1hdGNoUXVlcnksIHNlYXJjaGFibGVUeXBlLCBzZWFyY2hhYmxlVHlwZXMsIG1hdGNoQm9vbFByZWZpeFF1ZXJ5XG59IGZyb20gJy4vc2VhcmNoLm1vZGVsJztcblxuZXhwb3J0IHR5cGUgc2VhcmNoUmVzdWx0ID0gSUN5Y2xlSlNPTkxEIHwgSVNvdXJjZUpTT05MRCB8IElJbXBhY3RBc3Nlc3NtZW50SlNPTkxEIHwgSVRlcm1KU09OTEQ7XG5cbmV4cG9ydCB0eXBlIHNvcnRPcmRlcnMgPSAnYXNjJyB8ICdkZXNjJztcblxuaW50ZXJmYWNlIElTZWFyY2hQYXJhbVNvcnQge1xuICBba2V5OiBzdHJpbmddOiBzb3J0T3JkZXJzO1xufVxuXG5pbnRlcmZhY2UgSVNlYXJjaFNjcmlwdCB7XG4gIF9zY3JpcHQ6IHtcbiAgICB0eXBlPzogc3RyaW5nO1xuICAgIG9yZGVyPzogc29ydE9yZGVycztcbiAgICBzY3JpcHQ6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2VhcmNoUGFyYW1zIHtcbiAgbGltaXQ/OiBudW1iZXI7XG4gIG9mZnNldD86IG51bWJlcjtcbiAgZmllbGRzPzogc3RyaW5nW107XG4gIHNvcnQ/OiBJU2VhcmNoUGFyYW1Tb3J0W10gfCBJU2VhcmNoU2NyaXB0O1xuICBxdWVyeT86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2VhcmNoUmVzdWx0RXh0ZW5kZWQge1xuICBfc2NvcmU6IG51bWJlcjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIC8vIGdlb3NwYWNpYWwgc2VhcmNoXG4gIGxvY2F0aW9uPzoge1xuICAgIGxhdDogbnVtYmVyO1xuICAgIGxvbjogbnVtYmVyO1xuICB9O1xuICAvLyB1c2VkIGluIHNlYXJjaFxuICBwcm9wZXJ0aWVzPzogc3RyaW5nW107XG4gIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgZXh0ZW5kZWQ/OiBib29sZWFuO1xuICBwaW5uZWQ/OiBib29sZWFuO1xuICBsb2FkaW5nPzogYm9vbGVhbjtcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xuICAvLyBjb3VudCBmb3IgbGlzdHNcbiAgaW5wdXRzQ291bnQ/OiBudW1iZXI7XG4gIGVtaXNzaW9uc0NvdW50PzogbnVtYmVyO1xuICBwcm9kdWN0c0NvdW50PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTZWFyY2hSZXN1bHRzPEMgZXh0ZW5kcyBKU09OTEQ8VD4sIFQgZXh0ZW5kcyBOb2RlVHlwZSA9IHNlYXJjaGFibGVUeXBlPiB7XG4gIC8qKlxuICAgKiBBbW91bnQgb2YgdGltZSB0aGUgcXVlcnkgdG9va1xuICAgKi9cbiAgdGltZTogbnVtYmVyO1xuICAvKipcbiAgICogTnVtbmJlciBvZiByZXN1bHRzXG4gICAqL1xuICBjb3VudDogbnVtYmVyO1xuICByZXN1bHRzOiAoQyAmIElTZWFyY2hSZXN1bHRFeHRlbmRlZClbXTtcbn1cblxuY29uc3QgZW1wdHlTZWFyY2hSZXN1bHQgPSA8QyBleHRlbmRzIEpTT05MRDxUPiwgVCBleHRlbmRzIE5vZGVUeXBlPigpID0+ICh7XG4gIHRpbWU6IDAsXG4gIGNvdW50OiAwLFxuICByZXN1bHRzOiBbXVxufSBhcyBJU2VhcmNoUmVzdWx0czxDLCBUPik7XG5cbmV4cG9ydCBjb25zdCBNQVhfUkVTVUxUUyA9IDEwMDAwO1xuXG5leHBvcnQgY29uc3Qgc3VnZ2VzdE1hdGNoUXVlcnkgPSAocXVlcnk6IHN0cmluZykgPT4gW1xuICBtYXRjaFBocmFzZVF1ZXJ5KHF1ZXJ5LCAxMCksXG4gIG1hdGNoUXVlcnkoJ25hbWVOb3JtYWxpemVkJywgcXVlcnksIDgpLFxuICBtYXRjaFBocmFzZVByZWZpeFF1ZXJ5KHF1ZXJ5LCAyKVxuXTtcblxuZXhwb3J0IGNvbnN0IHN1Z2dlc3RRdWVyeSA9IDxUIGV4dGVuZHMgTm9kZVR5cGUgPSBzZWFyY2hhYmxlVHlwZT4oXG4gIHF1ZXJ5OiBzdHJpbmcsIHR5cGU/OiBULCBleHRyYVF1ZXJpZXM6IGFueVtdID0gW11cbikgPT4gKHtcbiAgYm9vbDoge1xuICAgIG11c3Q6IGV4dHJhUXVlcmllcyxcbiAgICBzaG91bGQ6ICh0eXBlID8gW3R5cGVdIDogc2VhcmNoYWJsZVR5cGVzKS5tYXAodiA9PiAoe1xuICAgICAgYm9vbDoge1xuICAgICAgICBtdXN0OiBbbWF0Y2hUeXBlKHYpXSxcbiAgICAgICAgc2hvdWxkOiBzdWdnZXN0TWF0Y2hRdWVyeShxdWVyeSksXG4gICAgICAgIG1pbmltdW1fc2hvdWxkX21hdGNoOiAxXG4gICAgICB9XG4gICAgfSkpLFxuICAgIG1pbmltdW1fc2hvdWxkX21hdGNoOiAxXG4gIH1cbn0pO1xuXG5jb25zdCBzdWdnZXN0U291cmNlUXVlcnkgPSAocXVlcnk6IHN0cmluZywgZmllbGRzOiBzdHJpbmdbXSkgPT4gKHtcbiAgYm9vbDoge1xuICAgIG11c3Q6IFttYXRjaFR5cGUoTm9kZVR5cGUuU291cmNlKV0sXG4gICAgc2hvdWxkOiBbXG4gICAgICBtYXRjaFBocmFzZVF1ZXJ5KHF1ZXJ5LCAxMDAsIC4uLmZpZWxkcyksXG4gICAgICBtYXRjaFBocmFzZVByZWZpeFF1ZXJ5KHF1ZXJ5LCAyMCwgLi4uZmllbGRzKSxcbiAgICAgIG1hdGNoQm9vbFByZWZpeFF1ZXJ5KHF1ZXJ5LCAxMCwgLi4uZmllbGRzKVxuICAgIF0sXG4gICAgbWluaW11bV9zaG91bGRfbWF0Y2g6IDFcbiAgfVxufSk7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEhlU2VhcmNoU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGNvbW1vblNlcnZpY2U6IEhlQ29tbW9uU2VydmljZVxuICApIHsgfVxuXG4gIHB1YmxpYyBzZWFyY2g8QyBleHRlbmRzIEpTT05MRDxUPiwgVCBleHRlbmRzIE5vZGVUeXBlID0gc2VhcmNoYWJsZVR5cGU+KHBhcmFtczogSVNlYXJjaFBhcmFtcykge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJU2VhcmNoUmVzdWx0czxDLCBUPj4oYCR7dGhpcy5jb21tb25TZXJ2aWNlLmFwaUJhc2VVcmx9L3NlYXJjaGAsIHBhcmFtcylcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKGVtcHR5U2VhcmNoUmVzdWx0PEMsIFQ+KCkpKVxuICAgICAgKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHVibGljIGNvdW50KHBhcmFtcyA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bWJlcj4oYCR7dGhpcy5jb21tb25TZXJ2aWNlLmFwaUJhc2VVcmx9L2NvdW50YCwgcGFyYW1zKS50b1Byb21pc2UoKS5jYXRjaCgoKSA9PiAwKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQkPEMgZXh0ZW5kcyBKU09OTEQ8VD4sIFQgZXh0ZW5kcyBOb2RlVHlwZT4odHlwZTogVCwgaWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJU2VhcmNoUmVzdWx0czxDLCBUPj4oYCR7dGhpcy5jb21tb25TZXJ2aWNlLmFwaUJhc2VVcmx9L3NlYXJjaGAsIHtcbiAgICAgIGxpbWl0OiAxLFxuICAgICAgcXVlcnk6IHtcbiAgICAgICAgYm9vbDoge1xuICAgICAgICAgIG11c3Q6IFt7IG1hdGNoOiB7ICdAdHlwZSc6IHR5cGUgfSB9LCB7IG1hdGNoOiB7ICdAaWQnOiBpZCB9IH1dXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoZW1wdHlTZWFyY2hSZXN1bHQ8QywgVD4oKSkpLFxuICAgICAgICBtYXAoKHsgcmVzdWx0cyB9KSA9PiByZXN1bHRzWzBdIHx8IG51bGwpXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGdldDxDIGV4dGVuZHMgSlNPTkxEPFQ+LCBUIGV4dGVuZHMgTm9kZVR5cGU+KHR5cGU6IFQsIGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5nZXQkPEMsIFQ+KHR5cGUsIGlkKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWdnZXN0PEMgZXh0ZW5kcyBKU09OTEQ8VD4sIFQgZXh0ZW5kcyBOb2RlVHlwZSA9IHNlYXJjaGFibGVUeXBlPihcbiAgICB0ZXJtOiBzdHJpbmcsIHR5cGU/OiBULCBleHRyYVF1ZXJpZXM6IGFueVtdID0gW10sIGZ1bGxRdWVyeT86IGFueSwgbGltaXQgPSAxMCwgaW5jbHVkZXM6IHN0cmluZ1tdID0gW11cbiAgKSB7XG4gICAgY29uc3QgcXVlcnkgPSBmdWxsUXVlcnkgfHwgc3VnZ2VzdFF1ZXJ5KHRlcm0sIHR5cGUsIGV4dHJhUXVlcmllcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PElTZWFyY2hSZXN1bHRzPEMsIFQ+PihgJHt0aGlzLmNvbW1vblNlcnZpY2UuYXBpQmFzZVVybH0vc2VhcmNoYCwge1xuICAgICAgbGltaXQsXG4gICAgICBmaWVsZHM6IFsnbmFtZScsICdAaWQnLCB0eXBlID8gJycgOiAnQHR5cGUnLCAndGVybVR5cGUnLCAnYWdncmVnYXRlZCcsIC4uLmluY2x1ZGVzXS5maWx0ZXIodmFsID0+ICEhdmFsKSxcbiAgICAgIHF1ZXJ5XG4gICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKGVtcHR5U2VhcmNoUmVzdWx0PEMsIFQ+KCkpKSxcbiAgICAgICAgbWFwKCh7IHJlc3VsdHMgfSkgPT4gcmVzdWx0cy5tYXAoKHsgX3Njb3JlLCAuLi5yZXMgfSkgPT4gcmVzKSlcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3VnZ2VzdFNvdXJjZSh0ZXJtOiBzdHJpbmcsIGxpbWl0ID0gNSwgZmllbGRzID0gWydiaWJsaW9ncmFwaHkudGl0bGUnXSwgaW5jbHVkZXMgPSBbJ2JpYmxpb2dyYXBoeS50aXRsZSddKSB7XG4gICAgcmV0dXJuIHRoaXMuc3VnZ2VzdCh0ZXJtLCBOb2RlVHlwZS5Tb3VyY2UsIFtdLCBzdWdnZXN0U291cmNlUXVlcnkodGVybSwgZmllbGRzKSwgbGltaXQsIGluY2x1ZGVzKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoc291cmNlczogUGFydGlhbDxTb3VyY2U+W10pID0+IHNvdXJjZXMubWFwKHNvdXJjZSA9PiAoe1xuICAgICAgICAgIC4uLnNvdXJjZSxcbiAgICAgICAgICBiaWJsaW9ncmFwaHk6IHtcbiAgICAgICAgICAgIC8vIG5lZWRlZCB0byBjcmVhdGUgYSBuZXN0ZWQgcHJvcGVydHlcbiAgICAgICAgICAgIHR5cGU6IFNjaGVtYVR5cGUuQmlibGlvZ3JhcGh5LFxuICAgICAgICAgICAgLi4uc291cmNlLmJpYmxpb2dyYXBoeVxuICAgICAgICAgIH1cbiAgICAgICAgfSBhcyBQYXJ0aWFsPFNvdXJjZT4pKSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VhcmNoL3NlYXJjaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQ0csUUFBUSxFQUFvRCxVQUFVLEVBQy9FLE1BQU0sc0JBQXNCLENBQUM7QUFHOUIsT0FBTyxFQUNMLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQWtCLGVBQWUsRUFBRSxvQkFBb0IsRUFDdkgsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQTJEeEIsTUFBTSxpQkFBaUIsR0FBRyxHQUE0QyxFQUFFLENBQUMsQ0FBQztJQUN4RSxJQUFJLEVBQUUsQ0FBQztJQUNQLEtBQUssRUFBRSxDQUFDO0lBQ1IsT0FBTyxFQUFFLEVBQUU7Q0FDYSxDQUFBLENBQUM7QUFFM0IsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQztBQUVqQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUM7SUFDbEQsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUMzQixVQUFVLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN0QyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0NBQ2pDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FDMUIsS0FBYSxFQUFFLElBQVEsRUFBRSxlQUFzQixFQUFFLEVBQ2pELEVBQUUsQ0FBQyxDQUFDO0lBQ0osSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLFlB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LEVBQUUsa0JBQWtCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUM7YUFDOUYsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLE9BQTBCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGdDQUN0RCxNQUFNLEtBQ1QsWUFBWTtnQkFDVixxQ0FBcUM7Z0JBQ3JDLElBQUksRUFBRSxVQUFVLENBQUMsWUFBWSxJQUMxQixNQUFNLENBQUMsWUFBWSxJQUVMLENBQUEsQ0FBQyxDQUFDLENBQ3hCLENBQUM7SUFDTixDQUFDOzs2R0FoRVUsZUFBZTtpSEFBZixlQUFlLGNBRmQsTUFBTTs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgSlNPTkxELCBOb2RlVHlwZSwgSUN5Y2xlSlNPTkxELCBJU291cmNlSlNPTkxELCBJVGVybUpTT05MRCwgU291cmNlLCBTY2hlbWFUeXBlLCBJSW1wYWN0QXNzZXNzbWVudEpTT05MRFxufSBmcm9tICdAaGVzdGlhLWVhcnRoL3NjaGVtYSc7XG5cbmltcG9ydCB7IEhlQ29tbW9uU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9jb21tb24uc2VydmljZSc7XG5pbXBvcnQge1xuICBtYXRjaFR5cGUsIG1hdGNoUGhyYXNlUXVlcnksIG1hdGNoUGhyYXNlUHJlZml4UXVlcnksIG1hdGNoUXVlcnksIHNlYXJjaGFibGVUeXBlLCBzZWFyY2hhYmxlVHlwZXMsIG1hdGNoQm9vbFByZWZpeFF1ZXJ5XG59IGZyb20gJy4vc2VhcmNoLm1vZGVsJztcblxuZXhwb3J0IHR5cGUgc2VhcmNoUmVzdWx0ID0gSUN5Y2xlSlNPTkxEIHwgSVNvdXJjZUpTT05MRCB8IElJbXBhY3RBc3Nlc3NtZW50SlNPTkxEIHwgSVRlcm1KU09OTEQ7XG5cbmV4cG9ydCB0eXBlIHNvcnRPcmRlcnMgPSAnYXNjJyB8ICdkZXNjJztcblxuaW50ZXJmYWNlIElTZWFyY2hQYXJhbVNvcnQge1xuICBba2V5OiBzdHJpbmddOiBzb3J0T3JkZXJzO1xufVxuXG5pbnRlcmZhY2UgSVNlYXJjaFNjcmlwdCB7XG4gIF9zY3JpcHQ6IHtcbiAgICB0eXBlPzogc3RyaW5nO1xuICAgIG9yZGVyPzogc29ydE9yZGVycztcbiAgICBzY3JpcHQ6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2VhcmNoUGFyYW1zIHtcbiAgbGltaXQ/OiBudW1iZXI7XG4gIG9mZnNldD86IG51bWJlcjtcbiAgZmllbGRzPzogc3RyaW5nW107XG4gIHNvcnQ/OiBJU2VhcmNoUGFyYW1Tb3J0W10gfCBJU2VhcmNoU2NyaXB0O1xuICBxdWVyeT86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2VhcmNoUmVzdWx0RXh0ZW5kZWQge1xuICBfc2NvcmU6IG51bWJlcjtcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gIC8vIGdlb3NwYWNpYWwgc2VhcmNoXG4gIGxvY2F0aW9uPzoge1xuICAgIGxhdDogbnVtYmVyO1xuICAgIGxvbjogbnVtYmVyO1xuICB9O1xuICAvLyB1c2VkIGluIHNlYXJjaFxuICBwcm9wZXJ0aWVzPzogc3RyaW5nW107XG4gIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgZXh0ZW5kZWQ/OiBib29sZWFuO1xuICBwaW5uZWQ/OiBib29sZWFuO1xuICBsb2FkaW5nPzogYm9vbGVhbjtcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xuICAvLyBjb3VudCBmb3IgbGlzdHNcbiAgaW5wdXRzQ291bnQ/OiBudW1iZXI7XG4gIGVtaXNzaW9uc0NvdW50PzogbnVtYmVyO1xuICBwcm9kdWN0c0NvdW50PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTZWFyY2hSZXN1bHRzPEMgZXh0ZW5kcyBKU09OTEQ8VD4sIFQgZXh0ZW5kcyBOb2RlVHlwZSA9IHNlYXJjaGFibGVUeXBlPiB7XG4gIC8qKlxuICAgKiBBbW91bnQgb2YgdGltZSB0aGUgcXVlcnkgdG9va1xuICAgKi9cbiAgdGltZTogbnVtYmVyO1xuICAvKipcbiAgICogTnVtbmJlciBvZiByZXN1bHRzXG4gICAqL1xuICBjb3VudDogbnVtYmVyO1xuICByZXN1bHRzOiAoQyAmIElTZWFyY2hSZXN1bHRFeHRlbmRlZClbXTtcbn1cblxuY29uc3QgZW1wdHlTZWFyY2hSZXN1bHQgPSA8QyBleHRlbmRzIEpTT05MRDxUPiwgVCBleHRlbmRzIE5vZGVUeXBlPigpID0+ICh7XG4gIHRpbWU6IDAsXG4gIGNvdW50OiAwLFxuICByZXN1bHRzOiBbXVxufSBhcyBJU2VhcmNoUmVzdWx0czxDLCBUPik7XG5cbmV4cG9ydCBjb25zdCBNQVhfUkVTVUxUUyA9IDEwMDAwO1xuXG5leHBvcnQgY29uc3Qgc3VnZ2VzdE1hdGNoUXVlcnkgPSAocXVlcnk6IHN0cmluZykgPT4gW1xuICBtYXRjaFBocmFzZVF1ZXJ5KHF1ZXJ5LCAxMCksXG4gIG1hdGNoUXVlcnkoJ25hbWVOb3JtYWxpemVkJywgcXVlcnksIDgpLFxuICBtYXRjaFBocmFzZVByZWZpeFF1ZXJ5KHF1ZXJ5LCAyKVxuXTtcblxuZXhwb3J0IGNvbnN0IHN1Z2dlc3RRdWVyeSA9IDxUIGV4dGVuZHMgTm9kZVR5cGUgPSBzZWFyY2hhYmxlVHlwZT4oXG4gIHF1ZXJ5OiBzdHJpbmcsIHR5cGU/OiBULCBleHRyYVF1ZXJpZXM6IGFueVtdID0gW11cbikgPT4gKHtcbiAgYm9vbDoge1xuICAgIG11c3Q6IGV4dHJhUXVlcmllcyxcbiAgICBzaG91bGQ6ICh0eXBlID8gW3R5cGVdIDogc2VhcmNoYWJsZVR5cGVzKS5tYXAodiA9PiAoe1xuICAgICAgYm9vbDoge1xuICAgICAgICBtdXN0OiBbbWF0Y2hUeXBlKHYpXSxcbiAgICAgICAgc2hvdWxkOiBzdWdnZXN0TWF0Y2hRdWVyeShxdWVyeSksXG4gICAgICAgIG1pbmltdW1fc2hvdWxkX21hdGNoOiAxXG4gICAgICB9XG4gICAgfSkpLFxuICAgIG1pbmltdW1fc2hvdWxkX21hdGNoOiAxXG4gIH1cbn0pO1xuXG5jb25zdCBzdWdnZXN0U291cmNlUXVlcnkgPSAocXVlcnk6IHN0cmluZywgZmllbGRzOiBzdHJpbmdbXSkgPT4gKHtcbiAgYm9vbDoge1xuICAgIG11c3Q6IFttYXRjaFR5cGUoTm9kZVR5cGUuU291cmNlKV0sXG4gICAgc2hvdWxkOiBbXG4gICAgICBtYXRjaFBocmFzZVF1ZXJ5KHF1ZXJ5LCAxMDAsIC4uLmZpZWxkcyksXG4gICAgICBtYXRjaFBocmFzZVByZWZpeFF1ZXJ5KHF1ZXJ5LCAyMCwgLi4uZmllbGRzKSxcbiAgICAgIG1hdGNoQm9vbFByZWZpeFF1ZXJ5KHF1ZXJ5LCAxMCwgLi4uZmllbGRzKVxuICAgIF0sXG4gICAgbWluaW11bV9zaG91bGRfbWF0Y2g6IDFcbiAgfVxufSk7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEhlU2VhcmNoU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBjb21tb25TZXJ2aWNlOiBIZUNvbW1vblNlcnZpY2VcbiAgKSB7IH1cblxuICBwdWJsaWMgc2VhcmNoPEMgZXh0ZW5kcyBKU09OTEQ8VD4sIFQgZXh0ZW5kcyBOb2RlVHlwZSA9IHNlYXJjaGFibGVUeXBlPihwYXJhbXM6IElTZWFyY2hQYXJhbXMpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8SVNlYXJjaFJlc3VsdHM8QywgVD4+KGAke3RoaXMuY29tbW9uU2VydmljZS5hcGlCYXNlVXJsfS9zZWFyY2hgLCBwYXJhbXMpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihlbXB0eVNlYXJjaFJlc3VsdDxDLCBUPigpKSlcbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBjb3VudChwYXJhbXMgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudW1iZXI+KGAke3RoaXMuY29tbW9uU2VydmljZS5hcGlCYXNlVXJsfS9jb3VudGAsIHBhcmFtcykudG9Qcm9taXNlKCkuY2F0Y2goKCkgPT4gMCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0JDxDIGV4dGVuZHMgSlNPTkxEPFQ+LCBUIGV4dGVuZHMgTm9kZVR5cGU+KHR5cGU6IFQsIGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8SVNlYXJjaFJlc3VsdHM8QywgVD4+KGAke3RoaXMuY29tbW9uU2VydmljZS5hcGlCYXNlVXJsfS9zZWFyY2hgLCB7XG4gICAgICBsaW1pdDogMSxcbiAgICAgIHF1ZXJ5OiB7XG4gICAgICAgIGJvb2w6IHtcbiAgICAgICAgICBtdXN0OiBbeyBtYXRjaDogeyAnQHR5cGUnOiB0eXBlIH0gfSwgeyBtYXRjaDogeyAnQGlkJzogaWQgfSB9XVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKGVtcHR5U2VhcmNoUmVzdWx0PEMsIFQ+KCkpKSxcbiAgICAgICAgbWFwKCh7IHJlc3VsdHMgfSkgPT4gcmVzdWx0c1swXSB8fCBudWxsKVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQ8QyBleHRlbmRzIEpTT05MRDxUPiwgVCBleHRlbmRzIE5vZGVUeXBlPih0eXBlOiBULCBpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0JDxDLCBUPih0eXBlLCBpZCkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBwdWJsaWMgc3VnZ2VzdDxDIGV4dGVuZHMgSlNPTkxEPFQ+LCBUIGV4dGVuZHMgTm9kZVR5cGUgPSBzZWFyY2hhYmxlVHlwZT4oXG4gICAgdGVybTogc3RyaW5nLCB0eXBlPzogVCwgZXh0cmFRdWVyaWVzOiBhbnlbXSA9IFtdLCBmdWxsUXVlcnk/OiBhbnksIGxpbWl0ID0gMTAsIGluY2x1ZGVzOiBzdHJpbmdbXSA9IFtdXG4gICkge1xuICAgIGNvbnN0IHF1ZXJ5ID0gZnVsbFF1ZXJ5IHx8IHN1Z2dlc3RRdWVyeSh0ZXJtLCB0eXBlLCBleHRyYVF1ZXJpZXMpO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJU2VhcmNoUmVzdWx0czxDLCBUPj4oYCR7dGhpcy5jb21tb25TZXJ2aWNlLmFwaUJhc2VVcmx9L3NlYXJjaGAsIHtcbiAgICAgIGxpbWl0LFxuICAgICAgZmllbGRzOiBbJ25hbWUnLCAnQGlkJywgdHlwZSA/ICcnIDogJ0B0eXBlJywgJ3Rlcm1UeXBlJywgJ2FnZ3JlZ2F0ZWQnLCAuLi5pbmNsdWRlc10uZmlsdGVyKHZhbCA9PiAhIXZhbCksXG4gICAgICBxdWVyeVxuICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihlbXB0eVNlYXJjaFJlc3VsdDxDLCBUPigpKSksXG4gICAgICAgIG1hcCgoeyByZXN1bHRzIH0pID0+IHJlc3VsdHMubWFwKCh7IF9zY29yZSwgLi4ucmVzIH0pID0+IHJlcykpXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIHN1Z2dlc3RTb3VyY2UodGVybTogc3RyaW5nLCBsaW1pdCA9IDUsIGZpZWxkcyA9IFsnYmlibGlvZ3JhcGh5LnRpdGxlJ10sIGluY2x1ZGVzID0gWydiaWJsaW9ncmFwaHkudGl0bGUnXSkge1xuICAgIHJldHVybiB0aGlzLnN1Z2dlc3QodGVybSwgTm9kZVR5cGUuU291cmNlLCBbXSwgc3VnZ2VzdFNvdXJjZVF1ZXJ5KHRlcm0sIGZpZWxkcyksIGxpbWl0LCBpbmNsdWRlcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHNvdXJjZXM6IFBhcnRpYWw8U291cmNlPltdKSA9PiBzb3VyY2VzLm1hcChzb3VyY2UgPT4gKHtcbiAgICAgICAgICAuLi5zb3VyY2UsXG4gICAgICAgICAgYmlibGlvZ3JhcGh5OiB7XG4gICAgICAgICAgICAvLyBuZWVkZWQgdG8gY3JlYXRlIGEgbmVzdGVkIHByb3BlcnR5XG4gICAgICAgICAgICB0eXBlOiBTY2hlbWFUeXBlLkJpYmxpb2dyYXBoeSxcbiAgICAgICAgICAgIC4uLnNvdXJjZS5iaWJsaW9ncmFwaHlcbiAgICAgICAgICB9XG4gICAgICAgIH0gYXMgUGFydGlhbDxTb3VyY2U+KSkpXG4gICAgICApO1xuICB9XG59XG4iXX0=