@alauda-fe/common 1.4.9 → 1.4.11

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 (44) hide show
  1. package/core/pipes/parse-json-translate.pipe.d.ts +1 -1
  2. package/core/services/plugin-util.service.d.ts +31 -0
  3. package/core/services/public-api.d.ts +1 -0
  4. package/core/types/k8s/crd.d.ts +3 -2
  5. package/core/types/resource-definitions.d.ts +21 -1
  6. package/esm2022/api/project-api.service.mjs +7 -2
  7. package/esm2022/chart/common/axis/x-axis-ticks.component.mjs +8 -13
  8. package/esm2022/chart/common/legend/legend.component.mjs +5 -6
  9. package/esm2022/chart/common/tooltip/tooltip.component.mjs +6 -7
  10. package/esm2022/code/code-display-dialog/component.mjs +3 -3
  11. package/esm2022/core/pipes/parse-json-translate.pipe.mjs +3 -4
  12. package/esm2022/core/services/plugin-util.service.mjs +60 -0
  13. package/esm2022/core/services/public-api.mjs +2 -1
  14. package/esm2022/core/types/k8s/crd.mjs +1 -1
  15. package/esm2022/core/types/resource-definitions.mjs +11 -1
  16. package/esm2022/core/utils/resources.mjs +2 -2
  17. package/esm2022/editable/editable.component.mjs +5 -17
  18. package/esm2022/k8s-resource-list/footer/component.mjs +2 -2
  19. package/esm2022/multi-search/action-input/component.mjs +83 -51
  20. package/esm2022/multi-search/form/component.mjs +33 -16
  21. package/esm2022/multi-search/multi-search-tags/component.mjs +7 -5
  22. package/esm2022/page-scaffold/navigation/lottie-icons/animation-data.mjs +3 -1
  23. package/esm2022/page-scaffold/navigation/lottie-icons/animations/observe.json +1 -0
  24. package/esm2022/page-scaffold/page-header/common-layout/context.service.mjs +6 -11
  25. package/esm2022/page-scaffold/page-header/common-layout/product-select/component.mjs +12 -13
  26. package/esm2022/table/component.mjs +6 -6
  27. package/esm2022/translate/i18n-assets-loader.mjs +4 -4
  28. package/esm2022/translate/i18n-config.mjs +4 -1
  29. package/esm2022/translate/translate.pipe.mjs +17 -23
  30. package/esm2022/translate/translate.service.mjs +14 -24
  31. package/esm2022/view-chart/legend/legend.component.mjs +5 -6
  32. package/esm2022/view-chart/view-chart.component.mjs +7 -9
  33. package/esm2022/view-zchart/legend/legend.component.mjs +5 -6
  34. package/esm2022/view-zchart/view-zchart.component.mjs +8 -15
  35. package/esm2022/widget/field-set/item/component.mjs +2 -2
  36. package/multi-search/action-input/component.d.ts +4 -1
  37. package/multi-search/form/component.d.ts +4 -1
  38. package/multi-search/multi-search-tags/component.d.ts +2 -1
  39. package/package.json +1 -1
  40. package/page-scaffold/page-header/common-layout/context.service.d.ts +1 -2
  41. package/styles/markdown-body.scss +4 -2
  42. package/translate/i18n-config.d.ts +1 -0
  43. package/translate/translate.pipe.d.ts +1 -2
  44. package/translate/translate.service.d.ts +8 -10
@@ -17,7 +17,7 @@ const _c3 = a0 => ({ "search-focus": a0 });
17
17
  const _c4 = (a0, a1) => ({ "tags-width-with-delete": a0, "tags-width": a1 });
18
18
  function MultiSearchComponent_div_12_Template(rf, ctx) { if (rf & 1) {
19
19
  const _r2 = i0.ɵɵgetCurrentView();
20
- i0.ɵɵelementStart(0, "div", 10)(1, "aui-icon", 11);
20
+ i0.ɵɵelementStart(0, "div", 9)(1, "aui-icon", 10);
21
21
  i0.ɵɵlistener("click", function MultiSearchComponent_div_12_Template_aui_icon_click_1_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); ctx_r2.clearConditions(); ctx_r2.doSearch(); return i0.ɵɵresetView($event.stopPropagation()); });
22
22
  i0.ɵɵelementEnd()();
23
23
  } if (rf & 2) {
@@ -25,6 +25,16 @@ function MultiSearchComponent_div_12_Template(rf, ctx) { if (rf & 1) {
25
25
  i0.ɵɵadvance();
26
26
  i0.ɵɵproperty("ngClass", ctx_r2.CLEAR_ICON_CLASS);
27
27
  } }
28
+ function MultiSearchComponent_div_14_Template(rf, ctx) { if (rf & 1) {
29
+ const _r4 = i0.ɵɵgetCurrentView();
30
+ i0.ɵɵelementStart(0, "div", 6)(1, "div", 11)(2, "aui-icon", 12);
31
+ i0.ɵɵlistener("click", function MultiSearchComponent_div_14_Template_aui_icon_click_2_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); ctx_r2.doSearch(); return i0.ɵɵresetView($event.stopPropagation()); });
32
+ i0.ɵɵelementEnd()()();
33
+ } if (rf & 2) {
34
+ const ctx_r2 = i0.ɵɵnextContext();
35
+ i0.ɵɵadvance(2);
36
+ i0.ɵɵproperty("ngClass", ctx_r2.SEARCH_ICON_CLASS);
37
+ } }
28
38
  export const DEFAULT_OPERATOR = '=';
29
39
  export class MultiSearchComponent {
30
40
  get inputComponent() {
@@ -36,6 +46,8 @@ export class MultiSearchComponent {
36
46
  this.cdr = cdr;
37
47
  this.placeholder = '';
38
48
  this.conditionCreatable = false;
49
+ this.autoScroll = true;
50
+ this.searchSuffix = true;
39
51
  // 搜索操作
40
52
  this.search = new EventEmitter();
41
53
  // 条件变化
@@ -111,7 +123,6 @@ export class MultiSearchComponent {
111
123
  this.inputComponent.toolTipHide();
112
124
  return;
113
125
  }
114
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call
115
126
  if (this.multiSearchRef?.nativeElement?.contains(target)) {
116
127
  // 当点击区域为multi-search组件,自动聚焦
117
128
  // 对于操作按钮,只做hidden toolTip
@@ -293,7 +304,7 @@ export class MultiSearchComponent {
293
304
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.normalInputComponent = _t.first);
294
305
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tagsComponent = _t.first);
295
306
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.multiSearchRef = _t.first);
296
- } }, inputs: { placeholder: "placeholder", conditionCreatable: "conditionCreatable", conditions: "conditions", conditionConfig: "conditionConfig" }, outputs: { search: "search", conditionsChange: "conditionsChange" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 17, vars: 32, consts: [["multiSearch", ""], ["tagsRef", ""], ["inputRef", ""], [1, "aui-input", "multi-search", 3, "ngClass"], [3, "removeCondition", "setConditionEditing", "setConditionDeleting", "search", "completed", "ngClass", "placeholder", "conditionCreatable", "existingConditions", "conditionConfig"], [1, "input-wrapper", 3, "ngModelChange", "completed", "delete", "search", "isEditing", "hidden", "placeholder", "conditionCreatable", "conditionConfig", "existingConditions", "ngModel"], [1, "search-suffix"], ["class", "search-clear", 4, "ngIf"], [1, "suffix-wrapper"], ["icon", "magnifier", 1, "tw-text-n-4", "tw-cursor-pointer", 3, "click", "ngClass"], [1, "search-clear"], ["icon", "xmark_small", "size", "14", 1, "tw-text-n-4", "tw-cursor-pointer", 3, "click", "ngClass"]], template: function MultiSearchComponent_Template(rf, ctx) { if (rf & 1) {
307
+ } }, inputs: { placeholder: "placeholder", conditionCreatable: "conditionCreatable", conditions: "conditions", conditionConfig: "conditionConfig", autoScroll: "autoScroll", searchSuffix: "searchSuffix", showFootAction: "showFootAction" }, outputs: { search: "search", conditionsChange: "conditionsChange" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 15, vars: 35, consts: [["multiSearch", ""], ["tagsRef", ""], ["inputRef", ""], [1, "aui-input", "multi-search", 3, "ngClass"], [3, "removeCondition", "setConditionEditing", "setConditionDeleting", "search", "completed", "ngClass", "placeholder", "conditionCreatable", "existingConditions", "conditionConfig", "showFootAction"], [1, "input-wrapper", 3, "ngModelChange", "completed", "delete", "search", "isEditing", "hidden", "placeholder", "conditionCreatable", "conditionConfig", "existingConditions", "autoScroll", "ngModel", "showFootAction"], [1, "search-suffix"], ["class", "search-clear", 4, "ngIf"], ["class", "search-suffix", 4, "ngIf"], [1, "search-clear"], ["icon", "xmark_small", "size", "14", 1, "tw-text-n-4", "tw-cursor-pointer", 3, "click", "ngClass"], [1, "suffix-wrapper"], ["icon", "magnifier", 1, "tw-text-n-4", "tw-cursor-pointer", 3, "click", "ngClass"]], template: function MultiSearchComponent_Template(rf, ctx) { if (rf & 1) {
297
308
  const _r1 = i0.ɵɵgetCurrentView();
298
309
  i0.ɵɵelementStart(0, "div", 3, 0);
299
310
  i0.ɵɵpipe(2, "async");
@@ -310,22 +321,22 @@ export class MultiSearchComponent {
310
321
  i0.ɵɵelementStart(11, "div", 6);
311
322
  i0.ɵɵtemplate(12, MultiSearchComponent_div_12_Template, 2, 1, "div", 7);
312
323
  i0.ɵɵpipe(13, "async");
313
- i0.ɵɵelementStart(14, "div", 6)(15, "div", 8)(16, "aui-icon", 9);
314
- i0.ɵɵlistener("click", function MultiSearchComponent_Template_aui_icon_click_16_listener($event) { i0.ɵɵrestoreView(_r1); ctx.doSearch(); return i0.ɵɵresetView($event.stopPropagation()); });
315
- i0.ɵɵelementEnd()()()()();
324
+ i0.ɵɵtemplate(14, MultiSearchComponent_div_14_Template, 3, 1, "div", 8);
325
+ i0.ɵɵelementEnd()();
316
326
  } if (rf & 2) {
317
327
  let tmp_4_0;
318
- let tmp_16_0;
319
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(27, _c3, i0.ɵɵpipeBind1(2, 15, ctx.focus$$)));
328
+ let tmp_19_0;
329
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(30, _c3, i0.ɵɵpipeBind1(2, 18, ctx.focus$$)));
320
330
  i0.ɵɵadvance(3);
321
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(29, _c4, (tmp_4_0 = i0.ɵɵpipeBind1(5, 17, ctx.existingConditions$)) == null ? null : tmp_4_0.length, !((tmp_4_0 = i0.ɵɵpipeBind1(6, 19, ctx.existingConditions$)) == null ? null : tmp_4_0.length)))("placeholder", ctx.placeholder)("conditionCreatable", ctx.conditionCreatable)("existingConditions", ctx.existingConditions)("conditionConfig", ctx.conditionConfig);
331
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(32, _c4, (tmp_4_0 = i0.ɵɵpipeBind1(5, 20, ctx.existingConditions$)) == null ? null : tmp_4_0.length, !((tmp_4_0 = i0.ɵɵpipeBind1(6, 22, ctx.existingConditions$)) == null ? null : tmp_4_0.length)))("placeholder", ctx.placeholder)("conditionCreatable", ctx.conditionCreatable)("existingConditions", ctx.existingConditions)("conditionConfig", ctx.conditionConfig)("showFootAction", ctx.showFootAction);
322
332
  i0.ɵɵadvance(4);
323
- i0.ɵɵproperty("isEditing", true)("hidden", i0.ɵɵpipeBind1(9, 21, ctx.addedInputShouldHidden$))("placeholder", ctx.placeholder)("conditionCreatable", ctx.conditionCreatable)("conditionConfig", ctx.conditionConfig)("existingConditions", i0.ɵɵpipeBind1(10, 23, ctx.existingConditions$));
333
+ i0.ɵɵproperty("isEditing", true)("hidden", i0.ɵɵpipeBind1(9, 24, ctx.addedInputShouldHidden$))("placeholder", ctx.placeholder)("conditionCreatable", ctx.conditionCreatable)("conditionConfig", ctx.conditionConfig)("existingConditions", i0.ɵɵpipeBind1(10, 26, ctx.existingConditions$))("autoScroll", ctx.autoScroll);
324
334
  i0.ɵɵtwoWayProperty("ngModel", ctx.addedCondition);
335
+ i0.ɵɵproperty("showFootAction", ctx.showFootAction);
325
336
  i0.ɵɵadvance(5);
326
- i0.ɵɵproperty("ngIf", (tmp_16_0 = i0.ɵɵpipeBind1(13, 25, ctx.existingConditions$)) == null ? null : tmp_16_0.length);
327
- i0.ɵɵadvance(4);
328
- i0.ɵɵproperty("ngClass", ctx.SEARCH_ICON_CLASS);
337
+ i0.ɵɵproperty("ngIf", (tmp_19_0 = i0.ɵɵpipeBind1(13, 28, ctx.existingConditions$)) == null ? null : tmp_19_0.length);
338
+ i0.ɵɵadvance(2);
339
+ i0.ɵɵproperty("ngIf", ctx.searchSuffix);
329
340
  } }, dependencies: [NgClass,
330
341
  AsyncPipe,
331
342
  MultiSearchActionInputComponent,
@@ -355,7 +366,7 @@ __decorate([
355
366
  InputComponent,
356
367
  FormsModule,
357
368
  IconComponent,
358
- ], template: "<div\n class=\"aui-input multi-search\"\n #multiSearch\n [ngClass]=\"{\n 'search-focus': focus$$ | async\n }\"\n>\n <!-- \u5DF2\u9009\u62E9\u7C7B\u76EEtags -->\n <acl-multi-search-tags\n #tagsRef\n [ngClass]=\"{\n 'tags-width-with-delete': $any(existingConditions$ | async)?.length,\n 'tags-width': !($any(existingConditions$ | async)?.length),\n }\"\n [placeholder]=\"placeholder\"\n [conditionCreatable]=\"conditionCreatable\"\n [existingConditions]=\"existingConditions\"\n [conditionConfig]=\"conditionConfig\"\n (removeCondition)=\"removeCondition($event)\"\n (setConditionEditing)=\"setConditionEditing($event)\"\n (setConditionDeleting)=\"setConditionDeleting($event)\"\n (search)=\"doSearch()\"\n (completed)=\"complete($event)\"\n >\n <!-- \u672B\u5C3E\u8F93\u5165\u6846 -->\n <acl-multi-search-action-input\n #inputRef\n class=\"input-wrapper\"\n [isEditing]=\"true\"\n [hidden]=\"addedInputShouldHidden$ | async\"\n [placeholder]=\"placeholder\"\n [conditionCreatable]=\"conditionCreatable\"\n [conditionConfig]=\"conditionConfig\"\n [existingConditions]=\"existingConditions$ | async\"\n [(ngModel)]=\"addedCondition\"\n (completed)=\"complete($event)\"\n (delete)=\"setConditionDeleting()\"\n (search)=\"doSearch()\"\n ></acl-multi-search-action-input>\n </acl-multi-search-tags>\n\n <div class=\"search-suffix\">\n <div\n *ngIf=\"$any(existingConditions$ | async)?.length\"\n class=\"search-clear\"\n >\n <aui-icon\n class=\"tw-text-n-4 tw-cursor-pointer\"\n [ngClass]=\"CLEAR_ICON_CLASS\"\n icon=\"xmark_small\"\n size=\"14\"\n (click)=\"clearConditions(); doSearch(); $event.stopPropagation()\"\n ></aui-icon>\n </div>\n <div class=\"search-suffix\">\n <div class=\"suffix-wrapper\">\n <aui-icon\n class=\"tw-text-n-4 tw-cursor-pointer\"\n [ngClass]=\"SEARCH_ICON_CLASS\"\n icon=\"magnifier\"\n (click)=\"doSearch(); $event.stopPropagation()\"\n ></aui-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{min-width:0}.multi-search{min-width:240px;height:max-content;display:flex;align-items:stretch;padding:0;overflow-y:auto}.multi-search .tags-width{width:calc(100% - 30px)}.multi-search .tags-width-with-delete{width:calc(100% - 48px)}.multi-search .search-clear{width:18px;display:flex;align-items:center}.multi-search .search-clear-icon ::ng-deep .aui-icon{border-radius:50%}.multi-search .search-clear-icon ::ng-deep .aui-icon:hover{color:rgb(var(--aui-color-n-10));background-color:rgb(var(--aui-color-n-5))!important}.multi-search .search-suffix{display:flex;text-align:center}.multi-search .search-suffix .suffix-wrapper{margin-top:4px;margin-bottom:4px;height:calc(100% - 8px);border-left:solid 1px rgb(var(--aui-color-n-7));min-width:30px;display:flex;align-items:center;justify-content:center}.multi-search .search-suffix .suffix-wrapper aui-icon:hover{color:rgb(var(--aui-color-blue))}.search-focus{border-color:rgb(var(--aui-color-primary));box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}\n"] }]
369
+ ], template: "<div\n class=\"aui-input multi-search\"\n #multiSearch\n [ngClass]=\"{\n 'search-focus': focus$$ | async,\n }\"\n>\n <!-- \u5DF2\u9009\u62E9\u7C7B\u76EEtags -->\n <acl-multi-search-tags\n #tagsRef\n [ngClass]=\"{\n 'tags-width-with-delete': $any(existingConditions$ | async)?.length,\n 'tags-width': !$any(existingConditions$ | async)?.length,\n }\"\n [placeholder]=\"placeholder\"\n [conditionCreatable]=\"conditionCreatable\"\n [existingConditions]=\"existingConditions\"\n [conditionConfig]=\"conditionConfig\"\n (removeCondition)=\"removeCondition($event)\"\n (setConditionEditing)=\"setConditionEditing($event)\"\n (setConditionDeleting)=\"setConditionDeleting($event)\"\n [showFootAction]=\"showFootAction\"\n (search)=\"doSearch()\"\n (completed)=\"complete($event)\"\n >\n <!-- \u672B\u5C3E\u8F93\u5165\u6846 -->\n <acl-multi-search-action-input\n #inputRef\n class=\"input-wrapper\"\n [isEditing]=\"true\"\n [hidden]=\"addedInputShouldHidden$ | async\"\n [placeholder]=\"placeholder\"\n [conditionCreatable]=\"conditionCreatable\"\n [conditionConfig]=\"conditionConfig\"\n [existingConditions]=\"existingConditions$ | async\"\n [autoScroll]=\"autoScroll\"\n [(ngModel)]=\"addedCondition\"\n [showFootAction]=\"showFootAction\"\n (completed)=\"complete($event)\"\n (delete)=\"setConditionDeleting()\"\n (search)=\"doSearch()\"\n ></acl-multi-search-action-input>\n </acl-multi-search-tags>\n\n <div class=\"search-suffix\">\n <div\n *ngIf=\"$any(existingConditions$ | async)?.length\"\n class=\"search-clear\"\n >\n <aui-icon\n class=\"tw-text-n-4 tw-cursor-pointer\"\n [ngClass]=\"CLEAR_ICON_CLASS\"\n icon=\"xmark_small\"\n size=\"14\"\n (click)=\"clearConditions(); doSearch(); $event.stopPropagation()\"\n ></aui-icon>\n </div>\n <div\n class=\"search-suffix\"\n *ngIf=\"searchSuffix\"\n >\n <div class=\"suffix-wrapper\">\n <aui-icon\n class=\"tw-text-n-4 tw-cursor-pointer\"\n [ngClass]=\"SEARCH_ICON_CLASS\"\n icon=\"magnifier\"\n (click)=\"doSearch(); $event.stopPropagation()\"\n ></aui-icon>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{min-width:0}.multi-search{min-width:240px;height:max-content;display:flex;align-items:stretch;padding:0;overflow-y:auto}.multi-search .tags-width{width:calc(100% - 30px)}.multi-search .tags-width-with-delete{width:calc(100% - 48px)}.multi-search .search-clear{width:18px;display:flex;align-items:center}.multi-search .search-clear-icon ::ng-deep .aui-icon{border-radius:50%}.multi-search .search-clear-icon ::ng-deep .aui-icon:hover{color:rgb(var(--aui-color-n-10));background-color:rgb(var(--aui-color-n-5))!important}.multi-search .search-suffix{display:flex;text-align:center}.multi-search .search-suffix .suffix-wrapper{margin-top:4px;margin-bottom:4px;height:calc(100% - 8px);border-left:solid 1px rgb(var(--aui-color-n-7));min-width:30px;display:flex;align-items:center;justify-content:center}.multi-search .search-suffix .suffix-wrapper aui-icon:hover{color:rgb(var(--aui-color-blue))}.search-focus{border-color:rgb(var(--aui-color-primary));box-shadow:0 0 0 2px rgba(var(--aui-color-primary),.16)}\n"] }]
359
370
  }], () => [{ type: i0.ChangeDetectorRef }], { placeholder: [{
360
371
  type: Input
361
372
  }], conditionCreatable: [{
@@ -364,8 +375,14 @@ __decorate([
364
375
  type: Input
365
376
  }], conditions$: [], conditionConfig: [{
366
377
  type: Input
367
- }], conditionConfig$: [], search: [{
378
+ }], conditionConfig$: [], autoScroll: [{
379
+ type: Input
380
+ }], searchSuffix: [{
381
+ type: Input
382
+ }], search: [{
368
383
  type: Output
384
+ }], showFootAction: [{
385
+ type: Input
369
386
  }], conditionsChange: [{
370
387
  type: Output
371
388
  }], normalInputComponent: [{
@@ -379,4 +396,4 @@ __decorate([
379
396
  args: ['multiSearch', { static: true }]
380
397
  }] }); })();
381
398
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MultiSearchComponent, { className: "MultiSearchComponent", filePath: "multi-search/form/component.ts", lineNumber: 67 }); })();
382
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL211bHRpLXNlYXJjaC9mb3JtL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9tdWx0aS1zZWFyY2gvZm9ybS90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEQsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUNMLFVBQVUsRUFDVixJQUFJLEVBQ0osT0FBTyxFQUNQLElBQUksRUFDSixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUNMLE9BQU8sRUFDUCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFFBQVEsR0FDVCxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7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O1lBSU4sa0JBQWtCO2tCQURqQixLQUFLO1lBS04sVUFBVTtrQkFEVCxLQUFLO1lBSU4sV0FBVyxNQUlYLGVBQWU7a0JBRGQsS0FBSztZQUlOLGdCQUFnQixNQUloQixNQUFNO2tCQURMLE1BQU07WUFLUCxnQkFBZ0I7a0JBRGYsTUFBTTtZQUlQLG9CQUFvQjtrQkFEbkIsU0FBUzttQkFBQyxVQUFVO1lBSXJCLGFBQWE7a0JBRFosU0FBUzttQkFBQyxTQUFTO1lBSXBCLGNBQWM7a0JBRGIsU0FBUzttQkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOztrRkFuQy9CLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEljb25Db21wb25lbnQsIElucHV0Q29tcG9uZW50LCBUYWdDb21wb25lbnQgfSBmcm9tICdAYWxhdWRhL3VpJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcywgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGlzRW1wdHksIHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmcm9tRXZlbnQsXG4gIG1hcCxcbiAgbWVyZ2UsXG4gIE9ic2VydmFibGUsXG4gIHNjYW4sXG4gIFN1YmplY3QsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgaXNFcXVhbCxcbiAgT2JzZXJ2YWJsZUlucHV0LFxuICBwdWJsaXNoUmVmLFxuICBQdXJlUGlwZSxcbn0gZnJvbSAnLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IE11bHRpU2VhcmNoQWN0aW9uSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9hY3Rpb24taW5wdXQvY29tcG9uZW50JztcbmltcG9ydCB7IE11bHRpU2VhcmNoVGFnc0NvbXBvbmVudCB9IGZyb20gJy4uL211bHRpLXNlYXJjaC10YWdzL2NvbXBvbmVudCc7XG5pbXBvcnQge1xuICBTZWFyY2hDb25kaXRpb25Db25maWcsXG4gIFNlYXJjaENvbmRpdGlvbixcbiAgU2VhcmNoQ29uZGl0aW9uTW9kZWwsXG59IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfT1BFUkFUT1I6IHN0cmluZyA9ICc9JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLW11bHRpLXNlYXJjaCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0NsYXNzLFxuICAgIEFzeW5jUGlwZSxcbiAgICBUYWdDb21wb25lbnQsXG4gICAgUHVyZVBpcGUsXG4gICAgTXVsdGlTZWFyY2hBY3Rpb25JbnB1dENvbXBvbmVudCxcbiAgICBNdWx0aVNlYXJjaFRhZ3NDb21wb25lbnQsXG4gICAgTmdGb3IsXG4gICAgTmdJZixcbiAgICBJbnB1dENvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBJY29uQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aVNlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICBjb25kaXRpb25DcmVhdGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyBzZWFyY2ggdmFsdWVcbiAgQElucHV0KClcbiAgY29uZGl0aW9uczogU2VhcmNoQ29uZGl0aW9uW107XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGNvbmRpdGlvbnMkITogT2JzZXJ2YWJsZTxTZWFyY2hDb25kaXRpb25bXT47XG5cbiAgLy8g57G755uu6YWN572uXG4gIEBJbnB1dCgpXG4gIGNvbmRpdGlvbkNvbmZpZzogU2VhcmNoQ29uZGl0aW9uQ29uZmlnW107XG5cbiAgQE9ic2VydmFibGVJbnB1dCgpXG4gIGNvbmRpdGlvbkNvbmZpZyQhOiBPYnNlcnZhYmxlPFNlYXJjaENvbmRpdGlvbkNvbmZpZ1tdPjtcblxuICAvLyDmkJzntKLmk43kvZxcbiAgQE91dHB1dCgpXG4gIHNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoQ29uZGl0aW9uW10+KCk7XG5cbiAgLy8g5p2h5Lu25Y+Y5YyWXG4gIEBPdXRwdXQoKVxuICBjb25kaXRpb25zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hDb25kaXRpb25bXT4oKTtcblxuICBAVmlld0NoaWxkKCdpbnB1dFJlZicpXG4gIG5vcm1hbElucHV0Q29tcG9uZW50OiBNdWx0aVNlYXJjaEFjdGlvbklucHV0Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3RhZ3NSZWYnKVxuICB0YWdzQ29tcG9uZW50OiBNdWx0aVNlYXJjaFRhZ3NDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnbXVsdGlTZWFyY2gnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBtdWx0aVNlYXJjaFJlZjogRWxlbWVudFJlZjtcblxuICBhZGRlZENvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWw7XG5cbiAgLy8g5b2T5YmNbXVsdGktc2VhcmNo57uE5Lu25piv5ZCmZm9jdXNcbiAgZm9jdXMkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGRlc3Ryb3kkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgYWN0aW9uU2Nhbm5lciQkID0gbmV3IFN1YmplY3Q8XG4gICAgKGl0ZW1zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdXG4gID4oKTtcblxuICBleGlzdGluZ0NvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbk1vZGVsW10gPSBbXTtcbiAgZXhpc3RpbmdDb25kaXRpb25zJCA9IG1lcmdlKFxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuY29uZGl0aW9ucyQsIHRoaXMuY29uZGl0aW9uQ29uZmlnJF0pLnBpcGUoXG4gICAgICBtYXAoKFtjb25kaXRpb25zLCBjb25kaXRpb25Db25maWddKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlcyA9XG4gICAgICAgICAgY29uZGl0aW9ucz8ubWFwKGNvbmRpdGlvbiA9PiB7XG4gICAgICAgICAgICBjb25zdCBleGlzdCA9IHRoaXMuZXhpc3RpbmdDb25kaXRpb25zPy5maW5kKFxuICAgICAgICAgICAgICBleGlzdCA9PiBleGlzdC5jb25kaXRpb24udmFsdWUgPT09IGNvbmRpdGlvbi5jb25kaXRpb24sXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgY29uZmlnID0gY29uZGl0aW9uQ29uZmlnPy5maW5kKFxuICAgICAgICAgICAgICBjb25maWcgPT4gY29uZmlnLmNvbmRpdGlvbi52YWx1ZSA9PT0gY29uZGl0aW9uLmNvbmRpdGlvbixcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIOaJgOe7p+aJv+eahOaVsOaNru+8jOiLpeW3suWtmOWcqGV4aXN077yM5YiZ57un5om/ZXhpc3TvvJvoi6XkuI3lrZjlnKjvvIzliJnnu6fmib9jb25maWdcbiAgICAgICAgICAgIC8vIOatpOWkhOeahOe7p+aJv+aYr+S4uuS6humYsuatouWklueVjGNvbmRpdGlvbnPmlbDmja7nmoTlj5jljJblr7zoh7Tmk43kvZznirbmgIHliLfmlrBcbiAgICAgICAgICAgIC8vIOWboOatpO+8jOmZpOS6hmNvbmRpdGlvbnPmlbDmja7lpJbnmoTpmYTliqDmlbDmja7vvIzpg73lupTor6Xnu6fmib9cbiAgICAgICAgICAgIGNvbnN0IGluaGVyaXQgPSB7XG4gICAgICAgICAgICAgIC4uLmV4aXN0LFxuICAgICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gaXNFbXB0eShpbmhlcml0KVxuICAgICAgICAgICAgICA/ICh7XG4gICAgICAgICAgICAgICAgICBjb25kaXRpb246IHsgdmFsdWU6IGNvbmRpdGlvbi5jb25kaXRpb24gfSxcbiAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBjb25kaXRpb24ub3BlcmF0b3IsXG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlczogY29uZGl0aW9uLnZhbHVlcz8ubWFwKHZhbHVlID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICAgIH0gYXMgU2VhcmNoQ29uZGl0aW9uTW9kZWwpXG4gICAgICAgICAgICAgIDogKHtcbiAgICAgICAgICAgICAgICAgIC4uLmluaGVyaXQsXG4gICAgICAgICAgICAgICAgICBvcGVyYXRvcjogY29uZGl0aW9uLm9wZXJhdG9yLFxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZXM6IGNvbmRpdGlvbi52YWx1ZXM/Lm1hcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbmQgPSBpbmhlcml0LnZhbHVlcz8uZmluZChcbiAgICAgICAgICAgICAgICAgICAgICBpbmhlcml0VmFsdWUgPT4gaW5oZXJpdFZhbHVlLnZhbHVlID09PSB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbmRcbiAgICAgICAgICAgICAgICAgICAgICA/IHsgLi4uZmluZCB9XG4gICAgICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIH0gYXMgU2VhcmNoQ29uZGl0aW9uTW9kZWwpO1xuICAgICAgICAgIH0pIHx8IFtdO1xuICAgICAgICByZXR1cm4gKF86IFNlYXJjaENvbmRpdGlvbk1vZGVsW10pID0+IHJlcztcbiAgICAgIH0pLFxuICAgICksXG4gICAgdGhpcy5hY3Rpb25TY2FubmVyJCQsXG4gICkucGlwZShcbiAgICBzY2FuKChhY2MsIGN1cikgPT4gY3VyKGFjYyksIFtdIGFzIFNlYXJjaENvbmRpdGlvbk1vZGVsW10pLFxuICAgIHRhcChleGlzdGluZ0NvbmRpdGlvbnMgPT4ge1xuICAgICAgdGhpcy5leGlzdGluZ0NvbmRpdGlvbnMgPSBleGlzdGluZ0NvbmRpdGlvbnM7XG4gICAgfSksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIG5vRWRpdGluZ0NvbmRpdGlvbjogYm9vbGVhbiA9IHRydWU7XG4gIG5vRWRpdGluZ0NvbmRpdGlvbiQgPSB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucyQucGlwZShcbiAgICBtYXAoZXhpc3RpbmdDb25kaXRpb25zID0+XG4gICAgICBleGlzdGluZ0NvbmRpdGlvbnM/LmV2ZXJ5KGNvbmRpdGlvbiA9PiAhY29uZGl0aW9uLmlzRWRpdGluZyksXG4gICAgKSxcbiAgICB0YXAobm9FZGl0aW5nQ29uZGl0aW9uID0+ICh0aGlzLm5vRWRpdGluZ0NvbmRpdGlvbiA9IG5vRWRpdGluZ0NvbmRpdGlvbikpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBub0RlbGV0aW5nQ29uZGl0aW9uOiBib29sZWFuID0gdHJ1ZTtcbiAgbm9EZWxldGluZ0NvbmRpdGlvbiQgPSB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucyQucGlwZShcbiAgICBtYXAoZXhpc3RpbmdDb25kaXRpb25zID0+XG4gICAgICBleGlzdGluZ0NvbmRpdGlvbnM/LmV2ZXJ5KGNvbmRpdGlvbiA9PiAhY29uZGl0aW9uLmlzRGVsZXRpbmcpLFxuICAgICksXG4gICAgdGFwKFxuICAgICAgbm9EZWxldGluZ0NvbmRpdGlvbiA9PiAodGhpcy5ub0RlbGV0aW5nQ29uZGl0aW9uID0gbm9EZWxldGluZ0NvbmRpdGlvbiksXG4gICAgKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgYWRkZWRJbnB1dFNob3VsZEhpZGRlbiQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm5vRWRpdGluZ0NvbmRpdGlvbiQsXG4gICAgdGhpcy5ub0RlbGV0aW5nQ29uZGl0aW9uJCxcbiAgICB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucyQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbbm9FZGl0aW5nQ29uZGl0aW9uLCBub0RlbGV0aW5nQ29uZGl0aW9uLCBleGlzdGluZ0NvbmRpdGlvbnNdKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAoIW5vRWRpdGluZ0NvbmRpdGlvbiB8fCAhbm9EZWxldGluZ0NvbmRpdGlvbikgJiZcbiAgICAgICAgZXhpc3RpbmdDb25kaXRpb25zLmxlbmd0aCAhPT0gMFxuICAgICAgKTtcbiAgICB9KSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgZ2V0IGlucHV0Q29tcG9uZW50KCkge1xuICAgIHJldHVybiB0aGlzLm5vRGVsZXRpbmdDb25kaXRpb24gJiYgdGhpcy5ub0VkaXRpbmdDb25kaXRpb25cbiAgICAgID8gdGhpcy5ub3JtYWxJbnB1dENvbXBvbmVudFxuICAgICAgOiB0aGlzLnRhZ3NDb21wb25lbnQ/LmlucHV0Q29tcG9uZW50O1xuICB9XG5cbiAgQ0xFQVJfSUNPTl9DTEFTUyA9ICdzZWFyY2gtY2xlYXItaWNvbic7XG5cbiAgU0VBUkNIX0lDT05fQ0xBU1MgPSAnc2VhcmNoLWljb24nO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5leGlzdGluZ0NvbmRpdGlvbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGE/Lmxlbmd0aCA9PT0gYj8ubGVuZ3RoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoZXhpc3RpbmdDb25kaXRpb25zID0+IHtcbiAgICAgICAgdGhpcy5jb25kaXRpb25zQ2hhbmdlLmVtaXQodGhpcy5nZXRDb25kaXRpb25Nb2RlbChleGlzdGluZ0NvbmRpdGlvbnMpKTtcbiAgICAgIH0pO1xuICAgIC8vIOatpOWkhOeahGNsaWNr5LqL5Lu255uR5ZCs5L2/55So5LqG5o2V6I636ICM6Z2e5YaS5rOh77yM5piv5Li65LqG6K6p5LqL5Lu26Kem5Y+R55qE5pe25py65YWI5LqOdGFnLmNsaWNrXG4gICAgLy8g6IuldGFnLmNsaWNr5YWI6Kem5Y+R77yM5Lya5a+86Ie0ZWxlbWVudC5jb250YWlucygp5Yik5pat5Ye66ZSZXG4gICAgZnJvbUV2ZW50KGRvY3VtZW50LmJvZHksICdjbGljaycsIHsgY2FwdHVyZTogdHJ1ZSB9KVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSlcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgRWxlbWVudDtcblxuICAgICAgICBpZiAodGhpcy5pc1NlYXJjaEJ0bih0YXJnZXQpKSB7XG4gICAgICAgICAgdGhpcy5tYW51YWxDb21wbGV0ZShmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgdGhpcy5pbnB1dENvbXBvbmVudC50b29sVGlwSGlkZSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGxcbiAgICAgICAgaWYgKHRoaXMubXVsdGlTZWFyY2hSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgICAvLyDlvZPngrnlh7vljLrln5/kuLptdWx0aS1zZWFyY2jnu4Tku7bvvIzoh6rliqjogZrnhKZcblxuICAgICAgICAgIC8vIOWvueS6juaTjeS9nOaMiemSru+8jOWPquWBmmhpZGRlbiB0b29sVGlwXG4gICAgICAgICAgaWYgKHRoaXMubm90QWN0aW9uRWxlbWVudCh0YXJnZXQpKSB7XG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gdGhpcy5pbnB1dENvbXBvbmVudD8uaW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGlzRm9jdXMgPSB0aGlzLmZvY3VzJCQudmFsdWU7XG4gICAgICAgICAgICAgIHRoaXMubWFudWFsRm9jdXMoaXNGb2N1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmlucHV0Q29tcG9uZW50LnRvb2xUaXBTaG93KCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubWFudWFsRm9jdXModHJ1ZSk7XG5cbiAgICAgICAgICAgIC8vIHRoaXMuaW5wdXRDb21wb25lbnQudG9vbFRpcEhpZGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8g5b2T54K55Ye75Yy65Z+f5Li66Z2edG9vbHRpcOeahOWFtuS7luWMuuWfn+aXtu+8jOiHquWKqOaUtue8qVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubm90VG9vbHRpcENvbnRlbnQodGFyZ2V0KSkge1xuICAgICAgICAgIHRoaXMubWFudWFsQmx1cigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTZWFyY2hCdG4oZWxlbWVudDogRWxlbWVudCkge1xuICAgIHJldHVybiB0aGlzLmNoZWNrRWxlbWVudChlbGVtZW50LCBlbGVtZW50ID0+XG4gICAgICBlbGVtZW50Py5jbGFzc05hbWU/LmluY2x1ZGVzPy4odGhpcy5TRUFSQ0hfSUNPTl9DTEFTUyksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbm90QWN0aW9uRWxlbWVudChlbGVtZW50OiBFbGVtZW50KSB7XG4gICAgcmV0dXJuICF0aGlzLmNoZWNrRWxlbWVudChcbiAgICAgIGVsZW1lbnQsXG4gICAgICBlbGVtZW50ID0+XG4gICAgICAgIGVsZW1lbnQ/LmNsYXNzTmFtZT8uaW5jbHVkZXM/Lih0aGlzLkNMRUFSX0lDT05fQ0xBU1MpIHx8XG4gICAgICAgIGVsZW1lbnQ/LmNsYXNzTmFtZT8uaW5jbHVkZXM/Lih0aGlzLlNFQVJDSF9JQ09OX0NMQVNTKSB8fFxuICAgICAgICBlbGVtZW50Py5jbGFzc05hbWU/LmluY2x1ZGVzPy4oJ2F1aS10YWdfX2Nsb3NlJyksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbm90VG9vbHRpcENvbnRlbnQoZWxlbWVudDogRWxlbWVudCkge1xuICAgIHJldHVybiAhdGhpcy5jaGVja0VsZW1lbnQoXG4gICAgICBlbGVtZW50LFxuICAgICAgZWxlbWVudCA9PiBlbGVtZW50LnRhZ05hbWUgPT09ICdBVUktVE9PTFRJUCcsXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQsIGZuOiAoZTogRWxlbWVudCkgPT4gYm9vbGVhbikge1xuICAgIHdoaWxlIChlbGVtZW50ICYmICFmbihlbGVtZW50KSkge1xuICAgICAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICB9XG5cbiAgICByZXR1cm4gISFlbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBtYW51YWxDb21wbGV0ZShcbiAgICB0b0NvbnRpbnVlOiBib29sZWFuID0gZmFsc2UsXG4gICAgbWFudWFsRm9jdXM6IGJvb2xlYW4gPSBmYWxzZSxcbiAgKSB7XG4gICAgdGhpcy5pbnB1dENvbXBvbmVudD8uaWZDb21wbGV0ZSh0b0NvbnRpbnVlLCBtYW51YWxGb2N1cyk7XG4gIH1cblxuICBtYW51YWxGb2N1cyhzaWxlbmNlPzogYm9vbGVhbikge1xuICAgIHRoaXMuc2V0Rm9jdXModHJ1ZSk7XG4gICAgdGhpcy5pbnB1dENvbXBvbmVudD8ubWFudWFsRm9jdXMoc2lsZW5jZSk7XG4gIH1cblxuICBzZXRGb2N1cyhmb2N1czogYm9vbGVhbikge1xuICAgIHRoaXMuZm9jdXMkJC5uZXh0KGZvY3VzKTtcbiAgfVxuXG4gIG1hbnVhbEJsdXIoKSB7XG4gICAgdGhpcy5zZXRGb2N1cyhmYWxzZSk7XG4gICAgdGhpcy5pbnB1dENvbXBvbmVudD8ubWFudWFsQmx1cigpO1xuICB9XG5cbiAgLy8g5pCc57Si5pON5L2cXG4gIGRvU2VhcmNoKCkge1xuICAgIHRoaXMuZXhpc3RpbmdDb25kaXRpb25zJFxuICAgICAgLnBpcGUodGFrZSgxKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSlcbiAgICAgIC5zdWJzY3JpYmUoZXhpc3RzID0+IHtcbiAgICAgICAgdGhpcy5zZWFyY2guZW1pdChcbiAgICAgICAgICB0aGlzLmdldENvbmRpdGlvbk1vZGVsKFxuICAgICAgICAgICAgZXhpc3RzPy5maWx0ZXIoZXhpc3QgPT4gIXRoaXMuY29uZGl0aW9uSW5BY3Rpb24oZXhpc3QpKSxcbiAgICAgICAgICApLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gIH1cblxuICAvLyDmuIXpmaTmiYDmnInlt7LpgInmnaHku7ZcbiAgY2xlYXJDb25kaXRpb25zKCkge1xuICAgIHRoaXMuYWRkZWRDb25kaXRpb24gPSBudWxsO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHRoaXMuYWN0aW9uU2Nhbm5lciQkLm5leHQoKF86IFNlYXJjaENvbmRpdGlvbk1vZGVsW10pID0+IFtdKTtcbiAgfVxuXG4gIC8vIOenu+mZpOW9k+WJjeadoeS7tlxuICByZW1vdmVDb25kaXRpb24oY29uZGl0aW9uOiBTZWFyY2hDb25kaXRpb25Nb2RlbCkge1xuICAgIGNvbnN0IHJlbW92ZSA9IChleGlzdGluZ0NvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbk1vZGVsW10pID0+IHtcbiAgICAgIGNvbnN0IGlkeCA9IGV4aXN0aW5nQ29uZGl0aW9ucy5maW5kSW5kZXgoXG4gICAgICAgIGNvbiA9PiBjb24uY29uZGl0aW9uLnZhbHVlID09PSBjb25kaXRpb24uY29uZGl0aW9uLnZhbHVlLFxuICAgICAgKTtcbiAgICAgIGV4aXN0aW5nQ29uZGl0aW9ucy5zcGxpY2UoaWR4LCAxKTtcbiAgICAgIHJldHVybiBbLi4uZXhpc3RpbmdDb25kaXRpb25zXTtcbiAgICB9O1xuICAgIHRoaXMuYWN0aW9uU2Nhbm5lciQkLm5leHQocmVtb3ZlKTtcbiAgfVxuXG4gIC8vIOabtOaWsOadoeS7tlxuICB1cGRhdGVDb25kaXRpb24oY29uZGl0aW9uOiBTZWFyY2hDb25kaXRpb25Nb2RlbCwgaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IF91cGRhdGUgPSAoZXhpc3RpbmdDb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiB7XG4gICAgICBpZiAoY29uZGl0aW9uKSB7XG4gICAgICAgIGV4aXN0aW5nQ29uZGl0aW9ucy5zcGxpY2UoaW5kZXgsIDEsIGNvbmRpdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBleGlzdGluZ0NvbmRpdGlvbnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbLi4uZXhpc3RpbmdDb25kaXRpb25zXTtcbiAgICB9O1xuXG4gICAgdGhpcy5hY3Rpb25TY2FubmVyJCQubmV4dChfdXBkYXRlKTtcbiAgfVxuXG4gIC8vIOa3u+WKoGNvbmRpdGlvblxuICBhZGRDb25kaXRpb24oYWN0aXZlQ29uZGl0aW9uOiBTZWFyY2hDb25kaXRpb25Nb2RlbCkge1xuICAgIGNvbnN0IF9hZGQgPSAoZXhpc3RpbmdDb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiB7XG4gICAgICBleGlzdGluZ0NvbmRpdGlvbnMucHVzaChhY3RpdmVDb25kaXRpb24pO1xuICAgICAgcmV0dXJuIFsuLi5leGlzdGluZ0NvbmRpdGlvbnNdO1xuICAgIH07XG5cbiAgICB0aGlzLmFjdGlvblNjYW5uZXIkJC5uZXh0KF9hZGQpO1xuICB9XG5cbiAgLy8g6K6+572uY29uZGl0aW9u55qE54q25oCB5Li657yW6L6R5oCBXG4gIHNldENvbmRpdGlvbkVkaXRpbmcoY29uZGl0aW9uOiBTZWFyY2hDb25kaXRpb25Nb2RlbCkge1xuICAgIGlmICh0aGlzLmlzR3JhbW1hckN1c3RvbUNvbmRpdGlvbihjb25kaXRpb24pKSByZXR1cm47XG4gICAgY29uc3QgX3VwZGF0ZSA9IChleGlzdGluZ0NvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbk1vZGVsW10pID0+IHtcbiAgICAgIGlmICghZXhpc3RpbmdDb25kaXRpb25zKSByZXR1cm47XG4gICAgICBjb25zdCBpZHggPSBleGlzdGluZ0NvbmRpdGlvbnMuZmluZEluZGV4KFxuICAgICAgICBjb24gPT4gY29uLmNvbmRpdGlvbi52YWx1ZSA9PT0gY29uZGl0aW9uLmNvbmRpdGlvbi52YWx1ZSxcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGNvbmRpdGlvbnNFeGNlcHRDdXIgPSBbXG4gICAgICAgIC4uLihleGlzdGluZ0NvbmRpdGlvbnMuc2xpY2UoMCwgaWR4KSB8fCBbXSksXG4gICAgICAgIC4uLihleGlzdGluZ0NvbmRpdGlvbnMuc2xpY2UoaWR4ICsgMSkgfHwgW10pLFxuICAgICAgXTtcblxuICAgICAgY29uc3QgYWxyZWFkeUhhdmVBY3Rpb24gPSBjb25kaXRpb25zRXhjZXB0Q3VyLnNvbWUoY29uID0+XG4gICAgICAgIHRoaXMuY29uZGl0aW9uSW5BY3Rpb24oY29uKSxcbiAgICAgICk7XG4gICAgICAvLyDlvZPlt7Lnu4/lrZjlnKjmk43kvZzkuK3nmoRjb25kaXRpb27ml7bvvIzkvJrnu6fnu63nu7TmiqTkuYvliY3mk43kvZzvvIzkuK3mraLmlrDnmoTmk43kvZzooYzkuLpcbiAgICAgIC8vIOS4iui/sOWkhOeQhumAu+i+keS4u+imgeaYr+S4uuS6humBv+WFjeaTjeS9nOWIsOS4gOWNiu+8iOavlOWmguacqumAieaLqW9wZXJhdG9y44CB5pyq6YCJ5oupY29uZGl0aW9u5pe277yJ5bCx5YiH5o2i6Iez5Y+m5LiA5LiqY29uZGl0aW9u5pON5L2c77yM5q2k5pe26K+l5pyq5a6M5oiQ55qE5pON5L2c5bqU6K+l5aaC5L2V5aSE55CG77yM5pqC5pyq57uZ5a6a44CCXG4gICAgICBpZiAoYWxyZWFkeUhhdmVBY3Rpb24gfHwgdGhpcy5hZGRlZENvbmRpdGlvbikgcmV0dXJuIGV4aXN0aW5nQ29uZGl0aW9ucztcblxuICAgICAgY29uc3QgZmluZCA9IGV4aXN0aW5nQ29uZGl0aW9uc1tpZHhdO1xuICAgICAgLy8g5bCG5b2T5YmN5omA5pON5L2cY29uZGl0aW9u55qE54q25oCB6YeN572u5Li6ZWRpdGluZ1xuICAgICAgZmluZC5pc0RlbGV0aW5nID0gZmFsc2U7XG4gICAgICBmaW5kLmlzRWRpdGluZyA9IHRydWU7XG5cbiAgICAgIGZpbmQuYWN0aW9uTW9kZWwgPSBjbG9uZURlZXAoZmluZCk7XG4gICAgICByZXR1cm4gWy4uLmV4aXN0aW5nQ29uZGl0aW9uc107XG4gICAgfTtcblxuICAgIHRoaXMuYWN0aW9uU2Nhbm5lciQkLm5leHQoX3VwZGF0ZSk7XG4gIH1cblxuICAvLyDorr7nva5jb25kaXRpb27nmoTnirbmgIHkuLrliKDpmaTmgIFcbiAgc2V0Q29uZGl0aW9uRGVsZXRpbmcoaW5kZXg/OiBudW1iZXIpIHtcbiAgICBjb25zdCBfZGVsZXRlID0gKGV4aXN0aW5nQ29uZGl0aW9uczogU2VhcmNoQ29uZGl0aW9uTW9kZWxbXSkgPT4ge1xuICAgICAgY29uc3QgY29uZGl0aW9uID0gTnVtYmVyLmlzSW50ZWdlcihpbmRleClcbiAgICAgICAgPyBleGlzdGluZ0NvbmRpdGlvbnNbaW5kZXhdXG4gICAgICAgIDogZXhpc3RpbmdDb25kaXRpb25zLmF0KC0xKTtcblxuICAgICAgaWYgKGNvbmRpdGlvbikge1xuICAgICAgICBzZXQoY29uZGl0aW9uLCAnaXNEZWxldGluZycsIHRydWUpO1xuICAgICAgICBjb25kaXRpb24uYWN0aW9uTW9kZWwgPSBjbG9uZURlZXAoY29uZGl0aW9uKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFsuLi5leGlzdGluZ0NvbmRpdGlvbnNdO1xuICAgIH07XG4gICAgdGhpcy5hY3Rpb25TY2FubmVyJCQubmV4dChfZGVsZXRlKTtcbiAgfVxuXG4gIGNvbXBsZXRlKHtcbiAgICBhY3RpdmVDb25kaXRpb24sXG4gICAgdG9Db250aW51ZSxcbiAgICBtYW51YWxGb2N1cyxcbiAgICBpbmRleCxcbiAgfToge1xuICAgIGFjdGl2ZUNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWw7XG4gICAgdG9Db250aW51ZT86IGJvb2xlYW47XG4gICAgbWFudWFsRm9jdXM/OiBib29sZWFuO1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9KSB7XG4gICAgaWYgKGFjdGl2ZUNvbmRpdGlvbikge1xuICAgICAgYWN0aXZlQ29uZGl0aW9uLmlzRWRpdGluZyA9IGZhbHNlO1xuICAgICAgYWN0aXZlQ29uZGl0aW9uLmlzRGVsZXRpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoTnVtYmVyLmlzSW50ZWdlcihpbmRleCkpIHtcbiAgICAgIHRoaXMudXBkYXRlQ29uZGl0aW9uKGFjdGl2ZUNvbmRpdGlvbiwgaW5kZXgpO1xuICAgIH0gZWxzZSBpZiAoYWN0aXZlQ29uZGl0aW9uKSB7XG4gICAgICB0aGlzLmFkZENvbmRpdGlvbihhY3RpdmVDb25kaXRpb24pO1xuICAgIH1cbiAgICAvLyDoh6rliqjogZrnhKZcbiAgICBpZiAobWFudWFsRm9jdXMpIHtcbiAgICAgIHRoaXMubWFudWFsRm9jdXMoIXRvQ29udGludWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNHcmFtbWFyQ3VzdG9tQ29uZGl0aW9uKGNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwpOiBib29sZWFuIHtcbiAgICBjb25zdCBpbkNvbmZpZyA9IHRoaXMuY29uZGl0aW9uQ29uZmlnLnNvbWUoY29uZmlnID0+XG4gICAgICBpc0VxdWFsKGNvbmRpdGlvbi5jb25kaXRpb24sIGNvbmZpZy5jb25kaXRpb24pLFxuICAgICk7XG4gICAgLy8g5aaC5p6c5b2T5YmNY29uZGl0aW9u5LiN5ZyoY29uZmln5Lit77yM5LiUb3BlcmF0b3LkuI3kuLrpu5jorqTlgLzvvIzliJnku6PooajlvZPliY1jb25kaXRpb27mmK/nlKjmiLfpgJrov4for63ms5Xoh6rlrprkuYnnmoTvvIzmraTml7bkuI3lhYHorrjpgJrov4dVSeS/ruaUuVxuICAgIC8vIOiAg+iZkeWIsOacquadpeS8muWFgeiuuOeUqOaIt+i+k+WFpeWIm+W7umNvbmRpdGlvbu+8jOatpOaXtuaYr+WFgeiuuOeUqOaIt+mAmui/h1VJ5YaN5qyh5L+u5pS555qE44CC5q2k57G75oOF5Ya155qE54m55oCn77yaIWluQ29uZmlnICYmIG9wZXJhdG9yID09PSBERUZBVUxUX09QRVJBVE9SXG4gICAgcmV0dXJuICFpbkNvbmZpZyAmJiBjb25kaXRpb24ub3BlcmF0b3IgIT09IERFRkFVTFRfT1BFUkFUT1I7XG4gIH1cblxuICBwcml2YXRlIGdldENvbmRpdGlvbk1vZGVsKGNvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbk1vZGVsW10pIHtcbiAgICByZXR1cm4gY29uZGl0aW9ucz8ubWFwKGNvbmRpdGlvbiA9PiAoe1xuICAgICAgY29uZGl0aW9uOiBjb25kaXRpb24uY29uZGl0aW9uLnZhbHVlLFxuICAgICAgb3BlcmF0b3I6IGNvbmRpdGlvbi5vcGVyYXRvcixcbiAgICAgIHZhbHVlczogY29uZGl0aW9uLnNlbGVjdGVkVmFsdWVzPy5tYXAodmFsdWUgPT4gdmFsdWUudmFsdWUpIHx8IFtdLFxuICAgIH0pKTtcbiAgfVxuXG4gIGNvbmRpdGlvbkluQWN0aW9uKGNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwpIHtcbiAgICByZXR1cm4gY29uZGl0aW9uLmlzRWRpdGluZyB8fCBjb25kaXRpb24uaXNEZWxldGluZztcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQkLm5leHQoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImF1aS1pbnB1dCBtdWx0aS1zZWFyY2hcIlxuICAjbXVsdGlTZWFyY2hcbiAgW25nQ2xhc3NdPVwie1xuICAgICdzZWFyY2gtZm9jdXMnOiBmb2N1cyQkIHwgYXN5bmNcbiAgfVwiXG4+XG4gIDwhLS0g5bey6YCJ5oup57G755uudGFncyAtLT5cbiAgPGFjbC1tdWx0aS1zZWFyY2gtdGFnc1xuICAgICN0YWdzUmVmXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3RhZ3Mtd2lkdGgtd2l0aC1kZWxldGUnOiAkYW55KGV4aXN0aW5nQ29uZGl0aW9ucyQgfCBhc3luYyk/Lmxlbmd0aCxcbiAgICAgICd0YWdzLXdpZHRoJzogISgkYW55KGV4aXN0aW5nQ29uZGl0aW9ucyQgfCBhc3luYyk/Lmxlbmd0aCksXG4gICAgfVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbY29uZGl0aW9uQ3JlYXRhYmxlXT1cImNvbmRpdGlvbkNyZWF0YWJsZVwiXG4gICAgW2V4aXN0aW5nQ29uZGl0aW9uc109XCJleGlzdGluZ0NvbmRpdGlvbnNcIlxuICAgIFtjb25kaXRpb25Db25maWddPVwiY29uZGl0aW9uQ29uZmlnXCJcbiAgICAocmVtb3ZlQ29uZGl0aW9uKT1cInJlbW92ZUNvbmRpdGlvbigkZXZlbnQpXCJcbiAgICAoc2V0Q29uZGl0aW9uRWRpdGluZyk9XCJzZXRDb25kaXRpb25FZGl0aW5nKCRldmVudClcIlxuICAgIChzZXRDb25kaXRpb25EZWxldGluZyk9XCJzZXRDb25kaXRpb25EZWxldGluZygkZXZlbnQpXCJcbiAgICAoc2VhcmNoKT1cImRvU2VhcmNoKClcIlxuICAgIChjb21wbGV0ZWQpPVwiY29tcGxldGUoJGV2ZW50KVwiXG4gID5cbiAgICA8IS0tIOacq+Wwvui+k+WFpeahhiAtLT5cbiAgICA8YWNsLW11bHRpLXNlYXJjaC1hY3Rpb24taW5wdXRcbiAgICAgICNpbnB1dFJlZlxuICAgICAgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCJcbiAgICAgIFtpc0VkaXRpbmddPVwidHJ1ZVwiXG4gICAgICBbaGlkZGVuXT1cImFkZGVkSW5wdXRTaG91bGRIaWRkZW4kIHwgYXN5bmNcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFtjb25kaXRpb25DcmVhdGFibGVdPVwiY29uZGl0aW9uQ3JlYXRhYmxlXCJcbiAgICAgIFtjb25kaXRpb25Db25maWddPVwiY29uZGl0aW9uQ29uZmlnXCJcbiAgICAgIFtleGlzdGluZ0NvbmRpdGlvbnNdPVwiZXhpc3RpbmdDb25kaXRpb25zJCB8IGFzeW5jXCJcbiAgICAgIFsobmdNb2RlbCldPVwiYWRkZWRDb25kaXRpb25cIlxuICAgICAgKGNvbXBsZXRlZCk9XCJjb21wbGV0ZSgkZXZlbnQpXCJcbiAgICAgIChkZWxldGUpPVwic2V0Q29uZGl0aW9uRGVsZXRpbmcoKVwiXG4gICAgICAoc2VhcmNoKT1cImRvU2VhcmNoKClcIlxuICAgID48L2FjbC1tdWx0aS1zZWFyY2gtYWN0aW9uLWlucHV0PlxuICA8L2FjbC1tdWx0aS1zZWFyY2gtdGFncz5cblxuICA8ZGl2IGNsYXNzPVwic2VhcmNoLXN1ZmZpeFwiPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiJGFueShleGlzdGluZ0NvbmRpdGlvbnMkIHwgYXN5bmMpPy5sZW5ndGhcIlxuICAgICAgY2xhc3M9XCJzZWFyY2gtY2xlYXJcIlxuICAgID5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICBjbGFzcz1cInR3LXRleHQtbi00IHR3LWN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiQ0xFQVJfSUNPTl9DTEFTU1wiXG4gICAgICAgIGljb249XCJ4bWFya19zbWFsbFwiXG4gICAgICAgIHNpemU9XCIxNFwiXG4gICAgICAgIChjbGljayk9XCJjbGVhckNvbmRpdGlvbnMoKTsgZG9TZWFyY2goKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtc3VmZml4XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3VmZml4LXdyYXBwZXJcIj5cbiAgICAgICAgPGF1aS1pY29uXG4gICAgICAgICAgY2xhc3M9XCJ0dy10ZXh0LW4tNCB0dy1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiU0VBUkNIX0lDT05fQ0xBU1NcIlxuICAgICAgICAgIGljb249XCJtYWduaWZpZXJcIlxuICAgICAgICAgIChjbGljayk9XCJkb1NlYXJjaCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICA+PC9hdWktaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
399
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL211bHRpLXNlYXJjaC9mb3JtL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9tdWx0aS1zZWFyY2gvZm9ybS90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDekUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEQsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLFNBQVMsRUFDVCxHQUFHLEVBQ0gsS0FBSyxFQUNMLFVBQVUsRUFDVixJQUFJLEVBQ0osT0FBTyxFQUNQLElBQUksRUFDSixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUNMLE9BQU8sRUFDUCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFFBQVEsR0FDVCxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7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b0JBQ1osUUFBUTtvQkFDUiwrQkFBK0I7b0JBQy9CLHdCQUF3QjtvQkFDeEIsS0FBSztvQkFDTCxJQUFJO29CQUNKLGNBQWM7b0JBQ2QsV0FBVztvQkFDWCxhQUFhO2lCQUNkO2tEQUlELFdBQVc7a0JBRFYsS0FBSztZQUlOLGtCQUFrQjtrQkFEakIsS0FBSztZQUtOLFVBQVU7a0JBRFQsS0FBSztZQUlOLFdBQVcsTUFJWCxlQUFlO2tCQURkLEtBQUs7WUFJTixnQkFBZ0IsTUFHaEIsVUFBVTtrQkFEVCxLQUFLO1lBSU4sWUFBWTtrQkFEWCxLQUFLO1lBS04sTUFBTTtrQkFETCxNQUFNO1lBSVAsY0FBYztrQkFEYixLQUFLO1lBS04sZ0JBQWdCO2tCQURmLE1BQU07WUFJUCxvQkFBb0I7a0JBRG5CLFNBQVM7bUJBQUMsVUFBVTtZQUlyQixhQUFhO2tCQURaLFNBQVM7bUJBQUMsU0FBUztZQUlwQixjQUFjO2tCQURiLFNBQVM7bUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7a0ZBNUMvQixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJY29uQ29tcG9uZW50LCBJbnB1dENvbXBvbmVudCwgVGFnQ29tcG9uZW50IH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MsIE5nRm9yLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc0VtcHR5LCBzZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZnJvbUV2ZW50LFxuICBtYXAsXG4gIG1lcmdlLFxuICBPYnNlcnZhYmxlLFxuICBzY2FuLFxuICBTdWJqZWN0LFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIGlzRXF1YWwsXG4gIE9ic2VydmFibGVJbnB1dCxcbiAgcHVibGlzaFJlZixcbiAgUHVyZVBpcGUsXG59IGZyb20gJy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBNdWx0aVNlYXJjaEFjdGlvbklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uLWlucHV0L2NvbXBvbmVudCc7XG5pbXBvcnQgeyBNdWx0aVNlYXJjaFRhZ3NDb21wb25lbnQgfSBmcm9tICcuLi9tdWx0aS1zZWFyY2gtdGFncy9jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgU2VhcmNoQ29uZGl0aW9uQ29uZmlnLFxuICBTZWFyY2hDb25kaXRpb24sXG4gIFNlYXJjaENvbmRpdGlvbk1vZGVsLFxufSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX09QRVJBVE9SOiBzdHJpbmcgPSAnPSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1tdWx0aS1zZWFyY2gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlcy5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgTmdDbGFzcyxcbiAgICBBc3luY1BpcGUsXG4gICAgVGFnQ29tcG9uZW50LFxuICAgIFB1cmVQaXBlLFxuICAgIE11bHRpU2VhcmNoQWN0aW9uSW5wdXRDb21wb25lbnQsXG4gICAgTXVsdGlTZWFyY2hUYWdzQ29tcG9uZW50LFxuICAgIE5nRm9yLFxuICAgIE5nSWYsXG4gICAgSW5wdXRDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgY29uZGl0aW9uQ3JlYXRhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8gc2VhcmNoIHZhbHVlXG4gIEBJbnB1dCgpXG4gIGNvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbltdO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBjb25kaXRpb25zJCE6IE9ic2VydmFibGU8U2VhcmNoQ29uZGl0aW9uW10+O1xuXG4gIC8vIOexu+ebrumFjee9rlxuICBASW5wdXQoKVxuICBjb25kaXRpb25Db25maWc6IFNlYXJjaENvbmRpdGlvbkNvbmZpZ1tdO1xuXG4gIEBPYnNlcnZhYmxlSW5wdXQoKVxuICBjb25kaXRpb25Db25maWckITogT2JzZXJ2YWJsZTxTZWFyY2hDb25kaXRpb25Db25maWdbXT47XG5cbiAgQElucHV0KClcbiAgYXV0b1Njcm9sbDogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgc2VhcmNoU3VmZml4OiBib29sZWFuID0gdHJ1ZTtcblxuICAvLyDmkJzntKLmk43kvZxcbiAgQE91dHB1dCgpXG4gIHNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoQ29uZGl0aW9uW10+KCk7XG5cbiAgQElucHV0KClcbiAgc2hvd0Zvb3RBY3Rpb246IGJvb2xlYW47XG5cbiAgLy8g5p2h5Lu25Y+Y5YyWXG4gIEBPdXRwdXQoKVxuICBjb25kaXRpb25zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hDb25kaXRpb25bXT4oKTtcblxuICBAVmlld0NoaWxkKCdpbnB1dFJlZicpXG4gIG5vcm1hbElucHV0Q29tcG9uZW50OiBNdWx0aVNlYXJjaEFjdGlvbklucHV0Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3RhZ3NSZWYnKVxuICB0YWdzQ29tcG9uZW50OiBNdWx0aVNlYXJjaFRhZ3NDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnbXVsdGlTZWFyY2gnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBtdWx0aVNlYXJjaFJlZjogRWxlbWVudFJlZjtcblxuICBhZGRlZENvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWw7XG5cbiAgLy8g5b2T5YmNbXVsdGktc2VhcmNo57uE5Lu25piv5ZCmZm9jdXNcbiAgZm9jdXMkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGRlc3Ryb3kkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgYWN0aW9uU2Nhbm5lciQkID0gbmV3IFN1YmplY3Q8XG4gICAgKGl0ZW1zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdXG4gID4oKTtcblxuICBleGlzdGluZ0NvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbk1vZGVsW10gPSBbXTtcbiAgZXhpc3RpbmdDb25kaXRpb25zJCA9IG1lcmdlKFxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuY29uZGl0aW9ucyQsIHRoaXMuY29uZGl0aW9uQ29uZmlnJF0pLnBpcGUoXG4gICAgICBtYXAoKFtjb25kaXRpb25zLCBjb25kaXRpb25Db25maWddKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlcyA9XG4gICAgICAgICAgY29uZGl0aW9ucz8ubWFwKGNvbmRpdGlvbiA9PiB7XG4gICAgICAgICAgICBjb25zdCBleGlzdCA9IHRoaXMuZXhpc3RpbmdDb25kaXRpb25zPy5maW5kKFxuICAgICAgICAgICAgICBleGlzdCA9PiBleGlzdC5jb25kaXRpb24udmFsdWUgPT09IGNvbmRpdGlvbi5jb25kaXRpb24sXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgY29uZmlnID0gY29uZGl0aW9uQ29uZmlnPy5maW5kKFxuICAgICAgICAgICAgICBjb25maWcgPT4gY29uZmlnLmNvbmRpdGlvbi52YWx1ZSA9PT0gY29uZGl0aW9uLmNvbmRpdGlvbixcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIOaJgOe7p+aJv+eahOaVsOaNru+8jOiLpeW3suWtmOWcqGV4aXN077yM5YiZ57un5om/ZXhpc3TvvJvoi6XkuI3lrZjlnKjvvIzliJnnu6fmib9jb25maWdcbiAgICAgICAgICAgIC8vIOatpOWkhOeahOe7p+aJv+aYr+S4uuS6humYsuatouWklueVjGNvbmRpdGlvbnPmlbDmja7nmoTlj5jljJblr7zoh7Tmk43kvZznirbmgIHliLfmlrBcbiAgICAgICAgICAgIC8vIOWboOatpO+8jOmZpOS6hmNvbmRpdGlvbnPmlbDmja7lpJbnmoTpmYTliqDmlbDmja7vvIzpg73lupTor6Xnu6fmib9cbiAgICAgICAgICAgIGNvbnN0IGluaGVyaXQgPSB7XG4gICAgICAgICAgICAgIC4uLmV4aXN0LFxuICAgICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gaXNFbXB0eShpbmhlcml0KVxuICAgICAgICAgICAgICA/ICh7XG4gICAgICAgICAgICAgICAgICBjb25kaXRpb246IHsgdmFsdWU6IGNvbmRpdGlvbi5jb25kaXRpb24gfSxcbiAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBjb25kaXRpb24ub3BlcmF0b3IsXG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlczogY29uZGl0aW9uLnZhbHVlcz8ubWFwKHZhbHVlID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICAgIH0gYXMgU2VhcmNoQ29uZGl0aW9uTW9kZWwpXG4gICAgICAgICAgICAgIDogKHtcbiAgICAgICAgICAgICAgICAgIC4uLmluaGVyaXQsXG4gICAgICAgICAgICAgICAgICBvcGVyYXRvcjogY29uZGl0aW9uLm9wZXJhdG9yLFxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZXM6IGNvbmRpdGlvbi52YWx1ZXM/Lm1hcCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbmQgPSBpbmhlcml0LnZhbHVlcz8uZmluZChcbiAgICAgICAgICAgICAgICAgICAgICBpbmhlcml0VmFsdWUgPT4gaW5oZXJpdFZhbHVlLnZhbHVlID09PSB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbmRcbiAgICAgICAgICAgICAgICAgICAgICA/IHsgLi4uZmluZCB9XG4gICAgICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIH0gYXMgU2VhcmNoQ29uZGl0aW9uTW9kZWwpO1xuICAgICAgICAgIH0pIHx8IFtdO1xuICAgICAgICByZXR1cm4gKF86IFNlYXJjaENvbmRpdGlvbk1vZGVsW10pID0+IHJlcztcbiAgICAgIH0pLFxuICAgICksXG4gICAgdGhpcy5hY3Rpb25TY2FubmVyJCQsXG4gICkucGlwZShcbiAgICBzY2FuKChhY2MsIGN1cikgPT4gY3VyKGFjYyksIFtdIGFzIFNlYXJjaENvbmRpdGlvbk1vZGVsW10pLFxuICAgIHRhcChleGlzdGluZ0NvbmRpdGlvbnMgPT4ge1xuICAgICAgdGhpcy5leGlzdGluZ0NvbmRpdGlvbnMgPSBleGlzdGluZ0NvbmRpdGlvbnM7XG4gICAgfSksXG4gICAgcHVibGlzaFJlZigpLFxuICApO1xuXG4gIG5vRWRpdGluZ0NvbmRpdGlvbjogYm9vbGVhbiA9IHRydWU7XG4gIG5vRWRpdGluZ0NvbmRpdGlvbiQgPSB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucyQucGlwZShcbiAgICBtYXAoZXhpc3RpbmdDb25kaXRpb25zID0+XG4gICAgICBleGlzdGluZ0NvbmRpdGlvbnM/LmV2ZXJ5KGNvbmRpdGlvbiA9PiAhY29uZGl0aW9uLmlzRWRpdGluZyksXG4gICAgKSxcbiAgICB0YXAobm9FZGl0aW5nQ29uZGl0aW9uID0+ICh0aGlzLm5vRWRpdGluZ0NvbmRpdGlvbiA9IG5vRWRpdGluZ0NvbmRpdGlvbikpLFxuICAgIHB1Ymxpc2hSZWYoKSxcbiAgKTtcblxuICBub0RlbGV0aW5nQ29uZGl0aW9uOiBib29sZWFuID0gdHJ1ZTtcbiAgbm9EZWxldGluZ0NvbmRpdGlvbiQgPSB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucyQucGlwZShcbiAgICBtYXAoZXhpc3RpbmdDb25kaXRpb25zID0+XG4gICAgICBleGlzdGluZ0NvbmRpdGlvbnM/LmV2ZXJ5KGNvbmRpdGlvbiA9PiAhY29uZGl0aW9uLmlzRGVsZXRpbmcpLFxuICAgICksXG4gICAgdGFwKFxuICAgICAgbm9EZWxldGluZ0NvbmRpdGlvbiA9PiAodGhpcy5ub0RlbGV0aW5nQ29uZGl0aW9uID0gbm9EZWxldGluZ0NvbmRpdGlvbiksXG4gICAgKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgYWRkZWRJbnB1dFNob3VsZEhpZGRlbiQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm5vRWRpdGluZ0NvbmRpdGlvbiQsXG4gICAgdGhpcy5ub0RlbGV0aW5nQ29uZGl0aW9uJCxcbiAgICB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucyQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbbm9FZGl0aW5nQ29uZGl0aW9uLCBub0RlbGV0aW5nQ29uZGl0aW9uLCBleGlzdGluZ0NvbmRpdGlvbnNdKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAoIW5vRWRpdGluZ0NvbmRpdGlvbiB8fCAhbm9EZWxldGluZ0NvbmRpdGlvbikgJiZcbiAgICAgICAgZXhpc3RpbmdDb25kaXRpb25zLmxlbmd0aCAhPT0gMFxuICAgICAgKTtcbiAgICB9KSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgZ2V0IGlucHV0Q29tcG9uZW50KCkge1xuICAgIHJldHVybiB0aGlzLm5vRGVsZXRpbmdDb25kaXRpb24gJiYgdGhpcy5ub0VkaXRpbmdDb25kaXRpb25cbiAgICAgID8gdGhpcy5ub3JtYWxJbnB1dENvbXBvbmVudFxuICAgICAgOiB0aGlzLnRhZ3NDb21wb25lbnQ/LmlucHV0Q29tcG9uZW50O1xuICB9XG5cbiAgQ0xFQVJfSUNPTl9DTEFTUyA9ICdzZWFyY2gtY2xlYXItaWNvbic7XG5cbiAgU0VBUkNIX0lDT05fQ0xBU1MgPSAnc2VhcmNoLWljb24nO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5leGlzdGluZ0NvbmRpdGlvbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGE/Lmxlbmd0aCA9PT0gYj8ubGVuZ3RoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoZXhpc3RpbmdDb25kaXRpb25zID0+IHtcbiAgICAgICAgdGhpcy5jb25kaXRpb25zQ2hhbmdlLmVtaXQodGhpcy5nZXRDb25kaXRpb25Nb2RlbChleGlzdGluZ0NvbmRpdGlvbnMpKTtcbiAgICAgIH0pO1xuICAgIC8vIOatpOWkhOeahGNsaWNr5LqL5Lu255uR5ZCs5L2/55So5LqG5o2V6I636ICM6Z2e5YaS5rOh77yM5piv5Li65LqG6K6p5LqL5Lu26Kem5Y+R55qE5pe25py65YWI5LqOdGFnLmNsaWNrXG4gICAgLy8g6IuldGFnLmNsaWNr5YWI6Kem5Y+R77yM5Lya5a+86Ie0ZWxlbWVudC5jb250YWlucygp5Yik5pat5Ye66ZSZXG4gICAgZnJvbUV2ZW50KGRvY3VtZW50LmJvZHksICdjbGljaycsIHsgY2FwdHVyZTogdHJ1ZSB9KVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQkKSlcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgRWxlbWVudDtcblxuICAgICAgICBpZiAodGhpcy5pc1NlYXJjaEJ0bih0YXJnZXQpKSB7XG4gICAgICAgICAgdGhpcy5tYW51YWxDb21wbGV0ZShmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgdGhpcy5pbnB1dENvbXBvbmVudC50b29sVGlwSGlkZSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm11bHRpU2VhcmNoUmVmPy5uYXRpdmVFbGVtZW50Py5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICAgICAgLy8g5b2T54K55Ye75Yy65Z+f5Li6bXVsdGktc2VhcmNo57uE5Lu277yM6Ieq5Yqo6IGa54SmXG5cbiAgICAgICAgICAvLyDlr7nkuo7mk43kvZzmjInpkq7vvIzlj6rlgZpoaWRkZW4gdG9vbFRpcFxuICAgICAgICAgIGlmICh0aGlzLm5vdEFjdGlvbkVsZW1lbnQodGFyZ2V0KSkge1xuICAgICAgICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgIT09IHRoaXMuaW5wdXRDb21wb25lbnQ/LmlucHV0RWxlbWVudCkge1xuICAgICAgICAgICAgICBjb25zdCBpc0ZvY3VzID0gdGhpcy5mb2N1cyQkLnZhbHVlO1xuICAgICAgICAgICAgICB0aGlzLm1hbnVhbEZvY3VzKGlzRm9jdXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pbnB1dENvbXBvbmVudC50b29sVGlwU2hvdygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1hbnVhbEZvY3VzKHRydWUpO1xuXG4gICAgICAgICAgICAvLyB0aGlzLmlucHV0Q29tcG9uZW50LnRvb2xUaXBIaWRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIOW9k+eCueWHu+WMuuWfn+S4uumdnnRvb2x0aXDnmoTlhbbku5bljLrln5/ml7bvvIzoh6rliqjmlLbnvKlcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm5vdFRvb2x0aXBDb250ZW50KHRhcmdldCkpIHtcbiAgICAgICAgICB0aGlzLm1hbnVhbEJsdXIoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGlzU2VhcmNoQnRuKGVsZW1lbnQ6IEVsZW1lbnQpIHtcbiAgICByZXR1cm4gdGhpcy5jaGVja0VsZW1lbnQoZWxlbWVudCwgZWxlbWVudCA9PlxuICAgICAgZWxlbWVudD8uY2xhc3NOYW1lPy5pbmNsdWRlcz8uKHRoaXMuU0VBUkNIX0lDT05fQ0xBU1MpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG5vdEFjdGlvbkVsZW1lbnQoZWxlbWVudDogRWxlbWVudCkge1xuICAgIHJldHVybiAhdGhpcy5jaGVja0VsZW1lbnQoXG4gICAgICBlbGVtZW50LFxuICAgICAgZWxlbWVudCA9PlxuICAgICAgICBlbGVtZW50Py5jbGFzc05hbWU/LmluY2x1ZGVzPy4odGhpcy5DTEVBUl9JQ09OX0NMQVNTKSB8fFxuICAgICAgICBlbGVtZW50Py5jbGFzc05hbWU/LmluY2x1ZGVzPy4odGhpcy5TRUFSQ0hfSUNPTl9DTEFTUykgfHxcbiAgICAgICAgZWxlbWVudD8uY2xhc3NOYW1lPy5pbmNsdWRlcz8uKCdhdWktdGFnX19jbG9zZScpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG5vdFRvb2x0aXBDb250ZW50KGVsZW1lbnQ6IEVsZW1lbnQpIHtcbiAgICByZXR1cm4gIXRoaXMuY2hlY2tFbGVtZW50KFxuICAgICAgZWxlbWVudCxcbiAgICAgIGVsZW1lbnQgPT4gZWxlbWVudC50YWdOYW1lID09PSAnQVVJLVRPT0xUSVAnLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRWxlbWVudChlbGVtZW50OiBFbGVtZW50LCBmbjogKGU6IEVsZW1lbnQpID0+IGJvb2xlYW4pIHtcbiAgICB3aGlsZSAoZWxlbWVudCAmJiAhZm4oZWxlbWVudCkpIHtcbiAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhZWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgbWFudWFsQ29tcGxldGUoXG4gICAgdG9Db250aW51ZTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIG1hbnVhbEZvY3VzOiBib29sZWFuID0gZmFsc2UsXG4gICkge1xuICAgIHRoaXMuaW5wdXRDb21wb25lbnQ/LmlmQ29tcGxldGUodG9Db250aW51ZSwgbWFudWFsRm9jdXMpO1xuICB9XG5cbiAgbWFudWFsRm9jdXMoc2lsZW5jZT86IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldEZvY3VzKHRydWUpO1xuICAgIHRoaXMuaW5wdXRDb21wb25lbnQ/Lm1hbnVhbEZvY3VzKHNpbGVuY2UpO1xuICB9XG5cbiAgc2V0Rm9jdXMoZm9jdXM6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmZvY3VzJCQubmV4dChmb2N1cyk7XG4gIH1cblxuICBtYW51YWxCbHVyKCkge1xuICAgIHRoaXMuc2V0Rm9jdXMoZmFsc2UpO1xuICAgIHRoaXMuaW5wdXRDb21wb25lbnQ/Lm1hbnVhbEJsdXIoKTtcbiAgfVxuXG4gIC8vIOaQnOe0ouaTjeS9nFxuICBkb1NlYXJjaCgpIHtcbiAgICB0aGlzLmV4aXN0aW5nQ29uZGl0aW9ucyRcbiAgICAgIC5waXBlKHRha2UoMSksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkJCkpXG4gICAgICAuc3Vic2NyaWJlKGV4aXN0cyA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoLmVtaXQoXG4gICAgICAgICAgdGhpcy5nZXRDb25kaXRpb25Nb2RlbChcbiAgICAgICAgICAgIGV4aXN0cz8uZmlsdGVyKGV4aXN0ID0+ICF0aGlzLmNvbmRpdGlvbkluQWN0aW9uKGV4aXN0KSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLy8g5riF6Zmk5omA5pyJ5bey6YCJ5p2h5Lu2XG4gIGNsZWFyQ29uZGl0aW9ucygpIHtcbiAgICB0aGlzLmFkZGVkQ29uZGl0aW9uID0gbnVsbDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLmFjdGlvblNjYW5uZXIkJC5uZXh0KChfOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiBbXSk7XG4gIH1cblxuICAvLyDnp7vpmaTlvZPliY3mnaHku7ZcbiAgcmVtb3ZlQ29uZGl0aW9uKGNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwpIHtcbiAgICBjb25zdCByZW1vdmUgPSAoZXhpc3RpbmdDb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiB7XG4gICAgICBjb25zdCBpZHggPSBleGlzdGluZ0NvbmRpdGlvbnMuZmluZEluZGV4KFxuICAgICAgICBjb24gPT4gY29uLmNvbmRpdGlvbi52YWx1ZSA9PT0gY29uZGl0aW9uLmNvbmRpdGlvbi52YWx1ZSxcbiAgICAgICk7XG4gICAgICBleGlzdGluZ0NvbmRpdGlvbnMuc3BsaWNlKGlkeCwgMSk7XG4gICAgICByZXR1cm4gWy4uLmV4aXN0aW5nQ29uZGl0aW9uc107XG4gICAgfTtcbiAgICB0aGlzLmFjdGlvblNjYW5uZXIkJC5uZXh0KHJlbW92ZSk7XG4gIH1cblxuICAvLyDmm7TmlrDmnaHku7ZcbiAgdXBkYXRlQ29uZGl0aW9uKGNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwsIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBfdXBkYXRlID0gKGV4aXN0aW5nQ29uZGl0aW9uczogU2VhcmNoQ29uZGl0aW9uTW9kZWxbXSkgPT4ge1xuICAgICAgaWYgKGNvbmRpdGlvbikge1xuICAgICAgICBleGlzdGluZ0NvbmRpdGlvbnMuc3BsaWNlKGluZGV4LCAxLCBjb25kaXRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXhpc3RpbmdDb25kaXRpb25zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gWy4uLmV4aXN0aW5nQ29uZGl0aW9uc107XG4gICAgfTtcblxuICAgIHRoaXMuYWN0aW9uU2Nhbm5lciQkLm5leHQoX3VwZGF0ZSk7XG4gIH1cblxuICAvLyDmt7vliqBjb25kaXRpb25cbiAgYWRkQ29uZGl0aW9uKGFjdGl2ZUNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwpIHtcbiAgICBjb25zdCBfYWRkID0gKGV4aXN0aW5nQ29uZGl0aW9uczogU2VhcmNoQ29uZGl0aW9uTW9kZWxbXSkgPT4ge1xuICAgICAgZXhpc3RpbmdDb25kaXRpb25zLnB1c2goYWN0aXZlQ29uZGl0aW9uKTtcbiAgICAgIHJldHVybiBbLi4uZXhpc3RpbmdDb25kaXRpb25zXTtcbiAgICB9O1xuXG4gICAgdGhpcy5hY3Rpb25TY2FubmVyJCQubmV4dChfYWRkKTtcbiAgfVxuXG4gIC8vIOiuvue9rmNvbmRpdGlvbueahOeKtuaAgeS4uue8lui+keaAgVxuICBzZXRDb25kaXRpb25FZGl0aW5nKGNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwpIHtcbiAgICBpZiAodGhpcy5pc0dyYW1tYXJDdXN0b21Db25kaXRpb24oY29uZGl0aW9uKSkgcmV0dXJuO1xuICAgIGNvbnN0IF91cGRhdGUgPSAoZXhpc3RpbmdDb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSA9PiB7XG4gICAgICBpZiAoIWV4aXN0aW5nQ29uZGl0aW9ucykgcmV0dXJuO1xuICAgICAgY29uc3QgaWR4ID0gZXhpc3RpbmdDb25kaXRpb25zLmZpbmRJbmRleChcbiAgICAgICAgY29uID0+IGNvbi5jb25kaXRpb24udmFsdWUgPT09IGNvbmRpdGlvbi5jb25kaXRpb24udmFsdWUsXG4gICAgICApO1xuXG4gICAgICBjb25zdCBjb25kaXRpb25zRXhjZXB0Q3VyID0gW1xuICAgICAgICAuLi4oZXhpc3RpbmdDb25kaXRpb25zLnNsaWNlKDAsIGlkeCkgfHwgW10pLFxuICAgICAgICAuLi4oZXhpc3RpbmdDb25kaXRpb25zLnNsaWNlKGlkeCArIDEpIHx8IFtdKSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IGFscmVhZHlIYXZlQWN0aW9uID0gY29uZGl0aW9uc0V4Y2VwdEN1ci5zb21lKGNvbiA9PlxuICAgICAgICB0aGlzLmNvbmRpdGlvbkluQWN0aW9uKGNvbiksXG4gICAgICApO1xuICAgICAgLy8g5b2T5bey57uP5a2Y5Zyo5pON5L2c5Lit55qEY29uZGl0aW9u5pe277yM5Lya57un57ut57u05oqk5LmL5YmN5pON5L2c77yM5Lit5q2i5paw55qE5pON5L2c6KGM5Li6XG4gICAgICAvLyDkuIrov7DlpITnkIbpgLvovpHkuLvopoHmmK/kuLrkuobpgb/lhY3mk43kvZzliLDkuIDljYrvvIjmr5TlpoLmnKrpgInmi6lvcGVyYXRvcuOAgeacqumAieaLqWNvbmRpdGlvbuaXtu+8ieWwseWIh+aNouiHs+WPpuS4gOS4qmNvbmRpdGlvbuaTjeS9nO+8jOatpOaXtuivpeacquWujOaIkOeahOaTjeS9nOW6lOivpeWmguS9leWkhOeQhu+8jOaaguacque7meWumuOAglxuICAgICAgaWYgKGFscmVhZHlIYXZlQWN0aW9uIHx8IHRoaXMuYWRkZWRDb25kaXRpb24pIHJldHVybiBleGlzdGluZ0NvbmRpdGlvbnM7XG5cbiAgICAgIGNvbnN0IGZpbmQgPSBleGlzdGluZ0NvbmRpdGlvbnNbaWR4XTtcbiAgICAgIC8vIOWwhuW9k+WJjeaJgOaTjeS9nGNvbmRpdGlvbueahOeKtuaAgemHjee9ruS4umVkaXRpbmdcbiAgICAgIGZpbmQuaXNEZWxldGluZyA9IGZhbHNlO1xuICAgICAgZmluZC5pc0VkaXRpbmcgPSB0cnVlO1xuXG4gICAgICBmaW5kLmFjdGlvbk1vZGVsID0gY2xvbmVEZWVwKGZpbmQpO1xuICAgICAgcmV0dXJuIFsuLi5leGlzdGluZ0NvbmRpdGlvbnNdO1xuICAgIH07XG5cbiAgICB0aGlzLmFjdGlvblNjYW5uZXIkJC5uZXh0KF91cGRhdGUpO1xuICB9XG5cbiAgLy8g6K6+572uY29uZGl0aW9u55qE54q25oCB5Li65Yig6Zmk5oCBXG4gIHNldENvbmRpdGlvbkRlbGV0aW5nKGluZGV4PzogbnVtYmVyKSB7XG4gICAgY29uc3QgX2RlbGV0ZSA9IChleGlzdGluZ0NvbmRpdGlvbnM6IFNlYXJjaENvbmRpdGlvbk1vZGVsW10pID0+IHtcbiAgICAgIGNvbnN0IGNvbmRpdGlvbiA9IE51bWJlci5pc0ludGVnZXIoaW5kZXgpXG4gICAgICAgID8gZXhpc3RpbmdDb25kaXRpb25zW2luZGV4XVxuICAgICAgICA6IGV4aXN0aW5nQ29uZGl0aW9ucy5hdCgtMSk7XG5cbiAgICAgIGlmIChjb25kaXRpb24pIHtcbiAgICAgICAgc2V0KGNvbmRpdGlvbiwgJ2lzRGVsZXRpbmcnLCB0cnVlKTtcbiAgICAgICAgY29uZGl0aW9uLmFjdGlvbk1vZGVsID0gY2xvbmVEZWVwKGNvbmRpdGlvbik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbLi4uZXhpc3RpbmdDb25kaXRpb25zXTtcbiAgICB9O1xuICAgIHRoaXMuYWN0aW9uU2Nhbm5lciQkLm5leHQoX2RlbGV0ZSk7XG4gIH1cblxuICBjb21wbGV0ZSh7XG4gICAgYWN0aXZlQ29uZGl0aW9uLFxuICAgIHRvQ29udGludWUsXG4gICAgbWFudWFsRm9jdXMsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICBhY3RpdmVDb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsO1xuICAgIHRvQ29udGludWU/OiBib29sZWFuO1xuICAgIG1hbnVhbEZvY3VzPzogYm9vbGVhbjtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkge1xuICAgIGlmIChhY3RpdmVDb25kaXRpb24pIHtcbiAgICAgIGFjdGl2ZUNvbmRpdGlvbi5pc0VkaXRpbmcgPSBmYWxzZTtcbiAgICAgIGFjdGl2ZUNvbmRpdGlvbi5pc0RlbGV0aW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKE51bWJlci5pc0ludGVnZXIoaW5kZXgpKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvbmRpdGlvbihhY3RpdmVDb25kaXRpb24sIGluZGV4KTtcbiAgICB9IGVsc2UgaWYgKGFjdGl2ZUNvbmRpdGlvbikge1xuICAgICAgdGhpcy5hZGRDb25kaXRpb24oYWN0aXZlQ29uZGl0aW9uKTtcbiAgICB9XG4gICAgLy8g6Ieq5Yqo6IGa54SmXG4gICAgaWYgKG1hbnVhbEZvY3VzKSB7XG4gICAgICB0aGlzLm1hbnVhbEZvY3VzKCF0b0NvbnRpbnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzR3JhbW1hckN1c3RvbUNvbmRpdGlvbihjb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaW5Db25maWcgPSB0aGlzLmNvbmRpdGlvbkNvbmZpZy5zb21lKGNvbmZpZyA9PlxuICAgICAgaXNFcXVhbChjb25kaXRpb24uY29uZGl0aW9uLCBjb25maWcuY29uZGl0aW9uKSxcbiAgICApO1xuICAgIC8vIOWmguaenOW9k+WJjWNvbmRpdGlvbuS4jeWcqGNvbmZpZ+S4re+8jOS4lG9wZXJhdG9y5LiN5Li66buY6K6k5YC877yM5YiZ5Luj6KGo5b2T5YmNY29uZGl0aW9u5piv55So5oi36YCa6L+H6K+t5rOV6Ieq5a6a5LmJ55qE77yM5q2k5pe25LiN5YWB6K646YCa6L+HVUnkv67mlLlcbiAgICAvLyDogIPomZHliLDmnKrmnaXkvJrlhYHorrjnlKjmiLfovpPlhaXliJvlu7pjb25kaXRpb27vvIzmraTml7bmmK/lhYHorrjnlKjmiLfpgJrov4dVSeWGjeasoeS/ruaUueeahOOAguatpOexu+aDheWGteeahOeJueaAp++8miFpbkNvbmZpZyAmJiBvcGVyYXRvciA9PT0gREVGQVVMVF9PUEVSQVRPUlxuICAgIHJldHVybiAhaW5Db25maWcgJiYgY29uZGl0aW9uLm9wZXJhdG9yICE9PSBERUZBVUxUX09QRVJBVE9SO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25kaXRpb25Nb2RlbChjb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdKSB7XG4gICAgcmV0dXJuIGNvbmRpdGlvbnM/Lm1hcChjb25kaXRpb24gPT4gKHtcbiAgICAgIGNvbmRpdGlvbjogY29uZGl0aW9uLmNvbmRpdGlvbi52YWx1ZSxcbiAgICAgIG9wZXJhdG9yOiBjb25kaXRpb24ub3BlcmF0b3IsXG4gICAgICB2YWx1ZXM6IGNvbmRpdGlvbi5zZWxlY3RlZFZhbHVlcz8ubWFwKHZhbHVlID0+IHZhbHVlLnZhbHVlKSB8fCBbXSxcbiAgICB9KSk7XG4gIH1cblxuICBjb25kaXRpb25JbkFjdGlvbihjb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsKSB7XG4gICAgcmV0dXJuIGNvbmRpdGlvbi5pc0VkaXRpbmcgfHwgY29uZGl0aW9uLmlzRGVsZXRpbmc7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkJC5uZXh0KCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJhdWktaW5wdXQgbXVsdGktc2VhcmNoXCJcbiAgI211bHRpU2VhcmNoXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2VhcmNoLWZvY3VzJzogZm9jdXMkJCB8IGFzeW5jLFxuICB9XCJcbj5cbiAgPCEtLSDlt7LpgInmi6nnsbvnm650YWdzIC0tPlxuICA8YWNsLW11bHRpLXNlYXJjaC10YWdzXG4gICAgI3RhZ3NSZWZcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICAndGFncy13aWR0aC13aXRoLWRlbGV0ZSc6ICRhbnkoZXhpc3RpbmdDb25kaXRpb25zJCB8IGFzeW5jKT8ubGVuZ3RoLFxuICAgICAgJ3RhZ3Mtd2lkdGgnOiAhJGFueShleGlzdGluZ0NvbmRpdGlvbnMkIHwgYXN5bmMpPy5sZW5ndGgsXG4gICAgfVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbY29uZGl0aW9uQ3JlYXRhYmxlXT1cImNvbmRpdGlvbkNyZWF0YWJsZVwiXG4gICAgW2V4aXN0aW5nQ29uZGl0aW9uc109XCJleGlzdGluZ0NvbmRpdGlvbnNcIlxuICAgIFtjb25kaXRpb25Db25maWddPVwiY29uZGl0aW9uQ29uZmlnXCJcbiAgICAocmVtb3ZlQ29uZGl0aW9uKT1cInJlbW92ZUNvbmRpdGlvbigkZXZlbnQpXCJcbiAgICAoc2V0Q29uZGl0aW9uRWRpdGluZyk9XCJzZXRDb25kaXRpb25FZGl0aW5nKCRldmVudClcIlxuICAgIChzZXRDb25kaXRpb25EZWxldGluZyk9XCJzZXRDb25kaXRpb25EZWxldGluZygkZXZlbnQpXCJcbiAgICBbc2hvd0Zvb3RBY3Rpb25dPVwic2hvd0Zvb3RBY3Rpb25cIlxuICAgIChzZWFyY2gpPVwiZG9TZWFyY2goKVwiXG4gICAgKGNvbXBsZXRlZCk9XCJjb21wbGV0ZSgkZXZlbnQpXCJcbiAgPlxuICAgIDwhLS0g5pyr5bC+6L6T5YWl5qGGIC0tPlxuICAgIDxhY2wtbXVsdGktc2VhcmNoLWFjdGlvbi1pbnB1dFxuICAgICAgI2lucHV0UmVmXG4gICAgICBjbGFzcz1cImlucHV0LXdyYXBwZXJcIlxuICAgICAgW2lzRWRpdGluZ109XCJ0cnVlXCJcbiAgICAgIFtoaWRkZW5dPVwiYWRkZWRJbnB1dFNob3VsZEhpZGRlbiQgfCBhc3luY1wiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgW2NvbmRpdGlvbkNyZWF0YWJsZV09XCJjb25kaXRpb25DcmVhdGFibGVcIlxuICAgICAgW2NvbmRpdGlvbkNvbmZpZ109XCJjb25kaXRpb25Db25maWdcIlxuICAgICAgW2V4aXN0aW5nQ29uZGl0aW9uc109XCJleGlzdGluZ0NvbmRpdGlvbnMkIHwgYXN5bmNcIlxuICAgICAgW2F1dG9TY3JvbGxdPVwiYXV0b1Njcm9sbFwiXG4gICAgICBbKG5nTW9kZWwpXT1cImFkZGVkQ29uZGl0aW9uXCJcbiAgICAgIFtzaG93Rm9vdEFjdGlvbl09XCJzaG93Rm9vdEFjdGlvblwiXG4gICAgICAoY29tcGxldGVkKT1cImNvbXBsZXRlKCRldmVudClcIlxuICAgICAgKGRlbGV0ZSk9XCJzZXRDb25kaXRpb25EZWxldGluZygpXCJcbiAgICAgIChzZWFyY2gpPVwiZG9TZWFyY2goKVwiXG4gICAgPjwvYWNsLW11bHRpLXNlYXJjaC1hY3Rpb24taW5wdXQ+XG4gIDwvYWNsLW11bHRpLXNlYXJjaC10YWdzPlxuXG4gIDxkaXYgY2xhc3M9XCJzZWFyY2gtc3VmZml4XCI+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIkYW55KGV4aXN0aW5nQ29uZGl0aW9ucyQgfCBhc3luYyk/Lmxlbmd0aFwiXG4gICAgICBjbGFzcz1cInNlYXJjaC1jbGVhclwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgIGNsYXNzPVwidHctdGV4dC1uLTQgdHctY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICBbbmdDbGFzc109XCJDTEVBUl9JQ09OX0NMQVNTXCJcbiAgICAgICAgaWNvbj1cInhtYXJrX3NtYWxsXCJcbiAgICAgICAgc2l6ZT1cIjE0XCJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyQ29uZGl0aW9ucygpOyBkb1NlYXJjaCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzZWFyY2gtc3VmZml4XCJcbiAgICAgICpuZ0lmPVwic2VhcmNoU3VmZml4XCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwic3VmZml4LXdyYXBwZXJcIj5cbiAgICAgICAgPGF1aS1pY29uXG4gICAgICAgICAgY2xhc3M9XCJ0dy10ZXh0LW4tNCB0dy1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwiU0VBUkNIX0lDT05fQ0xBU1NcIlxuICAgICAgICAgIGljb249XCJtYWduaWZpZXJcIlxuICAgICAgICAgIChjbGljayk9XCJkb1NlYXJjaCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICA+PC9hdWktaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -39,12 +39,12 @@ function MultiSearchTagsComponent_ng_container_1_ng_template_2_Template(rf, ctx)
39
39
  } if (rf & 2) {
40
40
  const condition_r2 = i0.ɵɵnextContext().$implicit;
41
41
  const ctx_r2 = i0.ɵɵnextContext();
42
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c2, condition_r2.isDeleting))("isEditing", condition_r2.isEditing)("conditionCreatable", ctx_r2.conditionCreatable)("placeholder", ctx_r2.placeholder)("conditionConfig", ctx_r2.conditionConfig)("existingConditions", ctx_r2.existingConditions);
42
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c2, condition_r2.isDeleting))("isEditing", condition_r2.isEditing)("conditionCreatable", ctx_r2.conditionCreatable)("placeholder", ctx_r2.placeholder)("conditionConfig", ctx_r2.conditionConfig)("existingConditions", ctx_r2.existingConditions)("showFootAction", ctx_r2.showFootAction);
43
43
  i0.ɵɵtwoWayProperty("ngModel", condition_r2.actionModel);
44
44
  } }
45
45
  function MultiSearchTagsComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {
46
46
  i0.ɵɵelementContainerStart(0);
47
- i0.ɵɵtemplate(1, MultiSearchTagsComponent_ng_container_1_aui_tag_1_Template, 7, 20, "aui-tag", 4)(2, MultiSearchTagsComponent_ng_container_1_ng_template_2_Template, 2, 9, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
47
+ i0.ɵɵtemplate(1, MultiSearchTagsComponent_ng_container_1_aui_tag_1_Template, 7, 20, "aui-tag", 4)(2, MultiSearchTagsComponent_ng_container_1_ng_template_2_Template, 2, 10, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
48
48
  i0.ɵɵelementContainerEnd();
49
49
  } if (rf & 2) {
50
50
  const condition_r2 = ctx.$implicit;
@@ -78,7 +78,7 @@ export class MultiSearchTagsComponent {
78
78
  } if (rf & 2) {
79
79
  let _t;
80
80
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputComponent = _t.first);
81
- } }, inputs: { placeholder: "placeholder", conditionCreatable: "conditionCreatable", conditionConfig: "conditionConfig", existingConditions: "existingConditions" }, outputs: { removeCondition: "removeCondition", setConditionEditing: "setConditionEditing", setConditionDeleting: "setConditionDeleting", search: "search", completed: "completed" }, standalone: true, features: [i0.ɵɵStandaloneFeature], ngContentSelectors: _c1, decls: 3, vars: 1, consts: [["inAction", ""], ["inputRef", ""], [1, "search-content"], [4, "ngFor", "ngForOf"], ["class", "tw-ml-6 tw-h-[22px] tw-mb-4", "size", "mini", 3, "ngClass", "type", "border", "closeable", "close", "click", 4, "ngIf", "ngIfElse"], ["size", "mini", 1, "tw-ml-6", "tw-h-[22px]", "tw-mb-4", 3, "close", "click", "ngClass", "type", "border", "closeable"], [3, "title"], [1, "input-wrapper", 3, "ngModelChange", "completed", "delete", "editing", "search", "ngClass", "isEditing", "conditionCreatable", "placeholder", "conditionConfig", "existingConditions", "ngModel"]], template: function MultiSearchTagsComponent_Template(rf, ctx) { if (rf & 1) {
81
+ } }, inputs: { placeholder: "placeholder", conditionCreatable: "conditionCreatable", conditionConfig: "conditionConfig", existingConditions: "existingConditions", showFootAction: "showFootAction" }, outputs: { removeCondition: "removeCondition", setConditionEditing: "setConditionEditing", setConditionDeleting: "setConditionDeleting", search: "search", completed: "completed" }, standalone: true, features: [i0.ɵɵStandaloneFeature], ngContentSelectors: _c1, decls: 3, vars: 1, consts: [["inAction", ""], ["inputRef", ""], [1, "search-content"], [4, "ngFor", "ngForOf"], ["class", "tw-ml-6 tw-h-[22px] tw-mb-4", "size", "mini", 3, "ngClass", "type", "border", "closeable", "close", "click", 4, "ngIf", "ngIfElse"], ["size", "mini", 1, "tw-ml-6", "tw-h-[22px]", "tw-mb-4", 3, "close", "click", "ngClass", "type", "border", "closeable"], [3, "title"], [1, "input-wrapper", 3, "ngModelChange", "completed", "delete", "editing", "search", "ngClass", "isEditing", "conditionCreatable", "placeholder", "conditionConfig", "existingConditions", "showFootAction", "ngModel"]], template: function MultiSearchTagsComponent_Template(rf, ctx) { if (rf & 1) {
82
82
  i0.ɵɵprojectionDef();
83
83
  i0.ɵɵelementStart(0, "div", 2);
84
84
  i0.ɵɵtemplate(1, MultiSearchTagsComponent_ng_container_1_Template, 4, 2, "ng-container", 3);
@@ -104,7 +104,7 @@ export class MultiSearchTagsComponent {
104
104
  PurePipe,
105
105
  MultiSearchActionInputComponent,
106
106
  FormsModule,
107
- ], template: "<div class=\"search-content\">\n <ng-container *ngFor=\"let condition of existingConditions; let index = index\">\n <aui-tag\n *ngIf=\"!conditionInAction(condition); else inAction\"\n class=\"tw-ml-6 tw-h-[22px] tw-mb-4\"\n [ngClass]=\"condition.tagClass\"\n [type]=\"condition.tagType || 'info'\"\n [border]=\"true\"\n [closeable]=\"true\"\n (close)=\"removeCondition.emit(condition); search.emit()\"\n (click)=\"setConditionEditing.emit(condition)\"\n size=\"mini\"\n >\n <span\n [title]=\"\n (condition | pure: getConditionLabel) +\n ' ' +\n condition.operator +\n ' ' +\n (condition | pure: getValueContent)\n \"\n >\n {{ condition | pure: getConditionLabel }}\n {{ condition.operator }}\n {{ condition | pure: getValueContent }}\n </span>\n </aui-tag>\n\n <ng-template #inAction>\n <acl-multi-search-action-input\n #inputRef\n class=\"input-wrapper\"\n [ngClass]=\"{ 'deleting-input': condition.isDeleting }\"\n [isEditing]=\"condition.isEditing\"\n [conditionCreatable]=\"conditionCreatable\"\n [placeholder]=\"placeholder\"\n [conditionConfig]=\"conditionConfig\"\n [existingConditions]=\"existingConditions\"\n [(ngModel)]=\"condition.actionModel\"\n (completed)=\"\n completed.emit({\n activeCondition: $event.activeCondition,\n toContinue: $event.toContinue,\n manualFocus: $event.manualFocus,\n index: index\n })\n \"\n (delete)=\"setConditionDeleting.emit(index - 1)\"\n (editing)=\"setConditionEditing.emit(condition)\"\n (search)=\"search.emit()\"\n ></acl-multi-search-action-input>\n </ng-template>\n </ng-container>\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:block}:host .search-content{width:100%;min-height:30px;max-height:160px;flex:1;display:flex;flex-wrap:wrap;align-items:center}:host .search-content ::ng-deep aui-tag{max-width:calc(100% - 8px)}:host .search-content ::ng-deep .aui-tag{margin-left:0;max-width:100%}:host .search-content ::ng-deep .input-wrapper{padding-bottom:4px;max-width:100%;width:max-content;min-width:180px;white-space:nowrap;word-break:break-all;overflow:hidden;text-overflow:ellipsis;flex-grow:1;flex-shrink:0}\n"] }]
107
+ ], template: "<div class=\"search-content\">\n <ng-container *ngFor=\"let condition of existingConditions; let index = index\">\n <aui-tag\n *ngIf=\"!conditionInAction(condition); else inAction\"\n class=\"tw-ml-6 tw-h-[22px] tw-mb-4\"\n [ngClass]=\"condition.tagClass\"\n [type]=\"condition.tagType || 'info'\"\n [border]=\"true\"\n [closeable]=\"true\"\n (close)=\"removeCondition.emit(condition); search.emit()\"\n (click)=\"setConditionEditing.emit(condition)\"\n size=\"mini\"\n >\n <span\n [title]=\"\n (condition | pure: getConditionLabel) +\n ' ' +\n condition.operator +\n ' ' +\n (condition | pure: getValueContent)\n \"\n >\n {{ condition | pure: getConditionLabel }}\n {{ condition.operator }}\n {{ condition | pure: getValueContent }}\n </span>\n </aui-tag>\n\n <ng-template #inAction>\n <acl-multi-search-action-input\n #inputRef\n class=\"input-wrapper\"\n [ngClass]=\"{ 'deleting-input': condition.isDeleting }\"\n [isEditing]=\"condition.isEditing\"\n [conditionCreatable]=\"conditionCreatable\"\n [placeholder]=\"placeholder\"\n [conditionConfig]=\"conditionConfig\"\n [existingConditions]=\"existingConditions\"\n [showFootAction]=\"showFootAction\"\n [(ngModel)]=\"condition.actionModel\"\n (completed)=\"\n completed.emit({\n activeCondition: $event.activeCondition,\n toContinue: $event.toContinue,\n manualFocus: $event.manualFocus,\n index: index,\n })\n \"\n (delete)=\"setConditionDeleting.emit(index - 1)\"\n (editing)=\"setConditionEditing.emit(condition)\"\n (search)=\"search.emit()\"\n ></acl-multi-search-action-input>\n </ng-template>\n </ng-container>\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:block}:host .search-content{width:100%;min-height:30px;max-height:160px;flex:1;display:flex;flex-wrap:wrap;align-items:center}:host .search-content ::ng-deep aui-tag{max-width:calc(100% - 8px)}:host .search-content ::ng-deep .aui-tag{margin-left:0;max-width:100%}:host .search-content ::ng-deep .input-wrapper{padding-bottom:4px;max-width:100%;width:max-content;min-width:180px;white-space:nowrap;word-break:break-all;overflow:hidden;text-overflow:ellipsis;flex-grow:1;flex-shrink:0}\n"] }]
108
108
  }], null, { placeholder: [{
109
109
  type: Input
110
110
  }], conditionCreatable: [{
@@ -113,6 +113,8 @@ export class MultiSearchTagsComponent {
113
113
  type: Input
114
114
  }], existingConditions: [{
115
115
  type: Input
116
+ }], showFootAction: [{
117
+ type: Input
116
118
  }], removeCondition: [{
117
119
  type: Output
118
120
  }], setConditionEditing: [{
@@ -128,4 +130,4 @@ export class MultiSearchTagsComponent {
128
130
  args: ['inputRef']
129
131
  }] }); })();
130
132
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MultiSearchTagsComponent, { className: "MultiSearchTagsComponent", filePath: "multi-search/multi-search-tags/component.ts", lineNumber: 33 }); })();
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL211bHRpLXNlYXJjaC9tdWx0aS1zZWFyY2gtdGFncy9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvbXVsdGktc2VhcmNoL211bHRpLXNlYXJjaC10YWdzL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7O0lDWHhFLGtDQVVDO0lBRkMsQUFEQSxxT0FBUyx5Q0FBK0Isd0JBQUUsb0JBQWEsS0FBQyw4T0FDL0MsNkNBQW1DLEtBQUM7SUFHN0MsK0JBUUM7OztJQUNDLFlBR0Y7OztJQUNGLEFBREUsaUJBQU8sRUFDQzs7OztJQWxCUixBQURBLEFBREEsQUFEQSwrQ0FBOEIsd0NBQ00sZ0JBQ3JCLG1CQUNHO0lBTWhCLGNBTUM7SUFORCxzTEFNQztJQUVELGVBR0Y7SUFIRSw0TEFHRjs7OztJQUlBLDJEQXFCQztJQVpDLHlYQUFtQztJQVduQyxBQURBLEFBREEsQUFSQSwyUkFDYSxzQkFDWiw0SEFLQSxDQUNULEtBRFMsa1FBQ1MsNENBQWtDLENBQUMsQ0FBQyxLQUFDLDRRQUNwQyw2Q0FBbUMsS0FBQyx3TkFDckMsb0JBQWEsS0FBQztJQUN6QixpQkFBZ0M7Ozs7SUFiL0IsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLDZFQUFzRCxxQ0FDckIsaURBQ1EsbUNBQ2QsMkNBQ1EsaURBQ007SUFDekMsd0RBQW1DOzs7SUFyQ3pDLDZCQUE4RTtJQTJCNUUsQUExQkEsaUdBVUMsNEhBZ0JzQjs7Ozs7O0lBekJwQixjQUFxQztJQUFBLEFBQXJDLDhEQUFxQyx5QkFBYTs7QUQ2QnpELE1BQU0sT0FBTyx3QkFBd0I7SUFoQnJDO1FBOEJFLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFHM0Qsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFHL0QseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUdsRCxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUdsQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBS3hCLENBQUM7S0FrQk47SUFiQyxpQkFBaUIsQ0FBQyxTQUErQjtRQUMvQyxPQUFPLFNBQVMsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsU0FBK0I7UUFDL0MsT0FBTyxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssSUFBSSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQztJQUNwRSxDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQStCO1FBQzdDLE9BQU8sU0FBUyxFQUFFLGNBQWM7WUFDOUIsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQztZQUM1RCxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7eUZBaERVLHdCQUF3QjtvRUFBeEIsd0JBQXdCOzs7Ozs7O1lDaENyQyw4QkFBNEI7WUFDMUIsMkZBQThFO1lBb0Q5RSxrQkFBeUI7WUFDM0IsaUJBQU07O1lBckRnQyxjQUF1QjtZQUF2QixnREFBdUI7NEJEc0J6RCxJQUFJO1lBQ0osS0FBSztZQUNMLFNBQVMsbUJBQ1QsT0FBTztZQUNQLFFBQVE7WUFDUiwrQkFBK0I7WUFDL0IsV0FBVzs7aUZBR0Ysd0JBQXdCO2NBaEJwQyxTQUFTOzJCQUNFLHVCQUF1QixjQUNyQixJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7b0JBQ1AsSUFBSTtvQkFDSixLQUFLO29CQUNMLFNBQVM7b0JBQ1QsT0FBTztvQkFDUCxRQUFRO29CQUNSLCtCQUErQjtvQkFDL0IsV0FBVztpQkFDWjtnQkFJRCxXQUFXO2tCQURWLEtBQUs7WUFJTixrQkFBa0I7a0JBRGpCLEtBQUs7WUFJTixlQUFlO2tCQURkLEtBQUs7WUFJTixrQkFBa0I7a0JBRGpCLEtBQUs7WUFJTixlQUFlO2tCQURkLE1BQU07WUFJUCxtQkFBbUI7a0JBRGxCLE1BQU07WUFJUCxvQkFBb0I7a0JBRG5CLE1BQU07WUFJUCxNQUFNO2tCQURMLE1BQU07WUFJUCxTQUFTO2tCQURSLE1BQU07WUFTUCxjQUFjO2tCQURiLFNBQVM7bUJBQUMsVUFBVTs7a0ZBakNWLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhZ01vZHVsZSB9IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFB1cmVQaXBlIH0gZnJvbSAnLi4vLi4vcHVibGljLWFwaSc7XG5pbXBvcnQgeyBNdWx0aVNlYXJjaEFjdGlvbklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uLWlucHV0L2NvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hDb25kaXRpb25Db25maWcsIFNlYXJjaENvbmRpdGlvbk1vZGVsIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtbXVsdGktc2VhcmNoLXRhZ3MnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0eWxlcy5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ0ZvcixcbiAgICBUYWdNb2R1bGUsXG4gICAgTmdDbGFzcyxcbiAgICBQdXJlUGlwZSxcbiAgICBNdWx0aVNlYXJjaEFjdGlvbklucHV0Q29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aVNlYXJjaFRhZ3NDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGNvbmRpdGlvbkNyZWF0YWJsZTogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBjb25kaXRpb25Db25maWc6IFNlYXJjaENvbmRpdGlvbkNvbmZpZ1tdO1xuXG4gIEBJbnB1dCgpXG4gIGV4aXN0aW5nQ29uZGl0aW9uczogU2VhcmNoQ29uZGl0aW9uTW9kZWxbXTtcblxuICBAT3V0cHV0KClcbiAgcmVtb3ZlQ29uZGl0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hDb25kaXRpb25Nb2RlbD4oKTtcblxuICBAT3V0cHV0KClcbiAgc2V0Q29uZGl0aW9uRWRpdGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoQ29uZGl0aW9uTW9kZWw+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHNldENvbmRpdGlvbkRlbGV0aW5nID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgY29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgYWN0aXZlQ29uZGl0aW9uOiBTZWFyY2hDb25kaXRpb25Nb2RlbDtcbiAgICB0b0NvbnRpbnVlOiBib29sZWFuO1xuICAgIG1hbnVhbEZvY3VzOiBib29sZWFuO1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0UmVmJylcbiAgaW5wdXRDb21wb25lbnQ6IE11bHRpU2VhcmNoQWN0aW9uSW5wdXRDb21wb25lbnQ7XG5cbiAgY29uZGl0aW9uSW5BY3Rpb24oY29uZGl0aW9uOiBTZWFyY2hDb25kaXRpb25Nb2RlbCkge1xuICAgIHJldHVybiBjb25kaXRpb24uaXNFZGl0aW5nIHx8IGNvbmRpdGlvbi5pc0RlbGV0aW5nO1xuICB9XG5cbiAgZ2V0Q29uZGl0aW9uTGFiZWwoY29uZGl0aW9uOiBTZWFyY2hDb25kaXRpb25Nb2RlbCkge1xuICAgIHJldHVybiBjb25kaXRpb24/LmNvbmRpdGlvbj8ubGFiZWwgPz8gY29uZGl0aW9uPy5jb25kaXRpb24/LnZhbHVlO1xuICB9XG5cbiAgZ2V0VmFsdWVDb250ZW50KGNvbmRpdGlvbjogU2VhcmNoQ29uZGl0aW9uTW9kZWwpIHtcbiAgICByZXR1cm4gY29uZGl0aW9uPy5zZWxlY3RlZFZhbHVlc1xuICAgICAgPy5tYXAodmFsdWUgPT4gdmFsdWUudGFnTGFiZWwgfHwgdmFsdWUubGFiZWwgfHwgdmFsdWUudmFsdWUpXG4gICAgICA/LmpvaW4oY29uZGl0aW9uLnNlcGFyYXRvciA/PyAnIHwgJyk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZWFyY2gtY29udGVudFwiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb25kaXRpb24gb2YgZXhpc3RpbmdDb25kaXRpb25zOyBsZXQgaW5kZXggPSBpbmRleFwiPlxuICAgIDxhdWktdGFnXG4gICAgICAqbmdJZj1cIiFjb25kaXRpb25JbkFjdGlvbihjb25kaXRpb24pOyBlbHNlIGluQWN0aW9uXCJcbiAgICAgIGNsYXNzPVwidHctbWwtNiB0dy1oLVsyMnB4XSB0dy1tYi00XCJcbiAgICAgIFtuZ0NsYXNzXT1cImNvbmRpdGlvbi50YWdDbGFzc1wiXG4gICAgICBbdHlwZV09XCJjb25kaXRpb24udGFnVHlwZSB8fCAnaW5mbydcIlxuICAgICAgW2JvcmRlcl09XCJ0cnVlXCJcbiAgICAgIFtjbG9zZWFibGVdPVwidHJ1ZVwiXG4gICAgICAoY2xvc2UpPVwicmVtb3ZlQ29uZGl0aW9uLmVtaXQoY29uZGl0aW9uKTsgc2VhcmNoLmVtaXQoKVwiXG4gICAgICAoY2xpY2spPVwic2V0Q29uZGl0aW9uRWRpdGluZy5lbWl0KGNvbmRpdGlvbilcIlxuICAgICAgc2l6ZT1cIm1pbmlcIlxuICAgID5cbiAgICAgIDxzcGFuXG4gICAgICAgIFt0aXRsZV09XCJcbiAgICAgICAgICAoY29uZGl0aW9uIHwgcHVyZTogZ2V0Q29uZGl0aW9uTGFiZWwpICtcbiAgICAgICAgICAnICcgK1xuICAgICAgICAgIGNvbmRpdGlvbi5vcGVyYXRvciArXG4gICAgICAgICAgJyAnICtcbiAgICAgICAgICAoY29uZGl0aW9uIHwgcHVyZTogZ2V0VmFsdWVDb250ZW50KVxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICB7eyBjb25kaXRpb24gfCBwdXJlOiBnZXRDb25kaXRpb25MYWJlbCB9fVxuICAgICAgICB7eyBjb25kaXRpb24ub3BlcmF0b3IgfX1cbiAgICAgICAge3sgY29uZGl0aW9uIHwgcHVyZTogZ2V0VmFsdWVDb250ZW50IH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9hdWktdGFnPlxuXG4gICAgPG5nLXRlbXBsYXRlICNpbkFjdGlvbj5cbiAgICAgIDxhY2wtbXVsdGktc2VhcmNoLWFjdGlvbi1pbnB1dFxuICAgICAgICAjaW5wdXRSZWZcbiAgICAgICAgY2xhc3M9XCJpbnB1dC13cmFwcGVyXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnZGVsZXRpbmctaW5wdXQnOiBjb25kaXRpb24uaXNEZWxldGluZyB9XCJcbiAgICAgICAgW2lzRWRpdGluZ109XCJjb25kaXRpb24uaXNFZGl0aW5nXCJcbiAgICAgICAgW2NvbmRpdGlvbkNyZWF0YWJsZV09XCJjb25kaXRpb25DcmVhdGFibGVcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbY29uZGl0aW9uQ29uZmlnXT1cImNvbmRpdGlvbkNvbmZpZ1wiXG4gICAgICAgIFtleGlzdGluZ0NvbmRpdGlvbnNdPVwiZXhpc3RpbmdDb25kaXRpb25zXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJjb25kaXRpb24uYWN0aW9uTW9kZWxcIlxuICAgICAgICAoY29tcGxldGVkKT1cIlxuICAgICAgICAgIGNvbXBsZXRlZC5lbWl0KHtcbiAgICAgICAgICAgIGFjdGl2ZUNvbmRpdGlvbjogJGV2ZW50LmFjdGl2ZUNvbmRpdGlvbixcbiAgICAgICAgICAgIHRvQ29udGludWU6ICRldmVudC50b0NvbnRpbnVlLFxuICAgICAgICAgICAgbWFudWFsRm9jdXM6ICRldmVudC5tYW51YWxGb2N1cyxcbiAgICAgICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgICAgIH0pXG4gICAgICAgIFwiXG4gICAgICAgIChkZWxldGUpPVwic2V0Q29uZGl0aW9uRGVsZXRpbmcuZW1pdChpbmRleCAtIDEpXCJcbiAgICAgICAgKGVkaXRpbmcpPVwic2V0Q29uZGl0aW9uRWRpdGluZy5lbWl0KGNvbmRpdGlvbilcIlxuICAgICAgICAoc2VhcmNoKT1cInNlYXJjaC5lbWl0KClcIlxuICAgICAgPjwvYWNsLW11bHRpLXNlYXJjaC1hY3Rpb24taW5wdXQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL211bHRpLXNlYXJjaC9tdWx0aS1zZWFyY2gtdGFncy9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvbXVsdGktc2VhcmNoL211bHRpLXNlYXJjaC10YWdzL3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7O0lDWHhFLGtDQVVDO0lBRkMsQUFEQSxxT0FBUyx5Q0FBK0Isd0JBQUUsb0JBQWEsS0FBQyw4T0FDL0MsNkNBQW1DLEtBQUM7SUFHN0MsK0JBUUM7OztJQUNDLFlBR0Y7OztJQUNGLEFBREUsaUJBQU8sRUFDQzs7OztJQWxCUixBQURBLEFBREEsQUFEQSwrQ0FBOEIsd0NBQ00sZ0JBQ3JCLG1CQUNHO0lBTWhCLGNBTUM7SUFORCxzTEFNQztJQUVELGVBR0Y7SUFIRSw0TEFHRjs7OztJQUlBLDJEQXNCQztJQVpDLHlYQUFtQztJQVduQyxBQURBLEFBREEsQUFSQSwyUkFDYSxzQkFDWiw0SEFLQSxDQUNULEtBRFMsa1FBQ1MsNENBQWtDLENBQUMsQ0FBQyxLQUFDLDRRQUNwQyw2Q0FBbUMsS0FBQyx3TkFDckMsb0JBQWEsS0FBQztJQUN6QixpQkFBZ0M7Ozs7SUFiL0IsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLEFBREEsNkVBQXNELHFDQUNyQixpREFDUSxtQ0FDZCwyQ0FDUSxpREFDTSx5Q0FDUjtJQUNqQyx3REFBbUM7OztJQXRDekMsNkJBQThFO0lBMkI1RSxBQTFCQSxpR0FVQyw2SEFnQnNCOzs7Ozs7SUF6QnBCLGNBQXFDO0lBQUEsQUFBckMsOERBQXFDLHlCQUFhOztBRDZCekQsTUFBTSxPQUFPLHdCQUF3QjtJQWhCckM7UUFpQ0Usb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUczRCx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUcvRCx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBR2xELFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBR2xDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFLeEIsQ0FBQztLQWtCTjtJQWJDLGlCQUFpQixDQUFDLFNBQStCO1FBQy9DLE9BQU8sU0FBUyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDO0lBQ3JELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxTQUErQjtRQUMvQyxPQUFPLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxJQUFJLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxlQUFlLENBQUMsU0FBK0I7UUFDN0MsT0FBTyxTQUFTLEVBQUUsY0FBYztZQUM5QixFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzVELEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQzt5RkFuRFUsd0JBQXdCO29FQUF4Qix3QkFBd0I7Ozs7Ozs7WUNoQ3JDLDhCQUE0QjtZQUMxQiwyRkFBOEU7WUFxRDlFLGtCQUF5QjtZQUMzQixpQkFBTTs7WUF0RGdDLGNBQXVCO1lBQXZCLGdEQUF1Qjs0QkRzQnpELElBQUk7WUFDSixLQUFLO1lBQ0wsU0FBUyxtQkFDVCxPQUFPO1lBQ1AsUUFBUTtZQUNSLCtCQUErQjtZQUMvQixXQUFXOztpRkFHRix3QkFBd0I7Y0FoQnBDLFNBQVM7MkJBQ0UsdUJBQXVCLGNBQ3JCLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QztvQkFDUCxJQUFJO29CQUNKLEtBQUs7b0JBQ0wsU0FBUztvQkFDVCxPQUFPO29CQUNQLFFBQVE7b0JBQ1IsK0JBQStCO29CQUMvQixXQUFXO2lCQUNaO2dCQUlELFdBQVc7a0JBRFYsS0FBSztZQUlOLGtCQUFrQjtrQkFEakIsS0FBSztZQUlOLGVBQWU7a0JBRGQsS0FBSztZQUlOLGtCQUFrQjtrQkFEakIsS0FBSztZQUlOLGNBQWM7a0JBRGIsS0FBSztZQUlOLGVBQWU7a0JBRGQsTUFBTTtZQUlQLG1CQUFtQjtrQkFEbEIsTUFBTTtZQUlQLG9CQUFvQjtrQkFEbkIsTUFBTTtZQUlQLE1BQU07a0JBREwsTUFBTTtZQUlQLFNBQVM7a0JBRFIsTUFBTTtZQVNQLGNBQWM7a0JBRGIsU0FBUzttQkFBQyxVQUFVOztrRkFwQ1Ysd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFnTW9kdWxlIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgUHVyZVBpcGUgfSBmcm9tICcuLi8uLi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IE11bHRpU2VhcmNoQWN0aW9uSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9hY3Rpb24taW5wdXQvY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaENvbmRpdGlvbkNvbmZpZywgU2VhcmNoQ29uZGl0aW9uTW9kZWwgfSBmcm9tICcuLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1tdWx0aS1zZWFyY2gtdGFncycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW1wbGF0ZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIE5nRm9yLFxuICAgIFRhZ01vZHVsZSxcbiAgICBOZ0NsYXNzLFxuICAgIFB1cmVQaXBlLFxuICAgIE11bHRpU2VhcmNoQWN0aW9uSW5wdXRDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VhcmNoVGFnc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgY29uZGl0aW9uQ3JlYXRhYmxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIGNvbmRpdGlvbkNvbmZpZzogU2VhcmNoQ29uZGl0aW9uQ29uZmlnW107XG5cbiAgQElucHV0KClcbiAgZXhpc3RpbmdDb25kaXRpb25zOiBTZWFyY2hDb25kaXRpb25Nb2RlbFtdO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dGb290QWN0aW9uOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKVxuICByZW1vdmVDb25kaXRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaENvbmRpdGlvbk1vZGVsPigpO1xuXG4gIEBPdXRwdXQoKVxuICBzZXRDb25kaXRpb25FZGl0aW5nID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hDb25kaXRpb25Nb2RlbD4oKTtcblxuICBAT3V0cHV0KClcbiAgc2V0Q29uZGl0aW9uRGVsZXRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBAT3V0cHV0KClcbiAgc2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBjb21wbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBhY3RpdmVDb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsO1xuICAgIHRvQ29udGludWU6IGJvb2xlYW47XG4gICAgbWFudWFsRm9jdXM6IGJvb2xlYW47XG4gICAgaW5kZXg/OiBudW1iZXI7XG4gIH0+KCk7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnKVxuICBpbnB1dENvbXBvbmVudDogTXVsdGlTZWFyY2hBY3Rpb25JbnB1dENvbXBvbmVudDtcblxuICBjb25kaXRpb25JbkFjdGlvbihjb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsKSB7XG4gICAgcmV0dXJuIGNvbmRpdGlvbi5pc0VkaXRpbmcgfHwgY29uZGl0aW9uLmlzRGVsZXRpbmc7XG4gIH1cblxuICBnZXRDb25kaXRpb25MYWJlbChjb25kaXRpb246IFNlYXJjaENvbmRpdGlvbk1vZGVsKSB7XG4gICAgcmV0dXJuIGNvbmRpdGlvbj8uY29uZGl0aW9uPy5sYWJlbCA/PyBjb25kaXRpb24/LmNvbmRpdGlvbj8udmFsdWU7XG4gIH1cblxuICBnZXRWYWx1ZUNvbnRlbnQoY29uZGl0aW9uOiBTZWFyY2hDb25kaXRpb25Nb2RlbCkge1xuICAgIHJldHVybiBjb25kaXRpb24/LnNlbGVjdGVkVmFsdWVzXG4gICAgICA/Lm1hcCh2YWx1ZSA9PiB2YWx1ZS50YWdMYWJlbCB8fCB2YWx1ZS5sYWJlbCB8fCB2YWx1ZS52YWx1ZSlcbiAgICAgID8uam9pbihjb25kaXRpb24uc2VwYXJhdG9yID8/ICcgfCAnKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNlYXJjaC1jb250ZW50XCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbmRpdGlvbiBvZiBleGlzdGluZ0NvbmRpdGlvbnM7IGxldCBpbmRleCA9IGluZGV4XCI+XG4gICAgPGF1aS10YWdcbiAgICAgICpuZ0lmPVwiIWNvbmRpdGlvbkluQWN0aW9uKGNvbmRpdGlvbik7IGVsc2UgaW5BY3Rpb25cIlxuICAgICAgY2xhc3M9XCJ0dy1tbC02IHR3LWgtWzIycHhdIHR3LW1iLTRcIlxuICAgICAgW25nQ2xhc3NdPVwiY29uZGl0aW9uLnRhZ0NsYXNzXCJcbiAgICAgIFt0eXBlXT1cImNvbmRpdGlvbi50YWdUeXBlIHx8ICdpbmZvJ1wiXG4gICAgICBbYm9yZGVyXT1cInRydWVcIlxuICAgICAgW2Nsb3NlYWJsZV09XCJ0cnVlXCJcbiAgICAgIChjbG9zZSk9XCJyZW1vdmVDb25kaXRpb24uZW1pdChjb25kaXRpb24pOyBzZWFyY2guZW1pdCgpXCJcbiAgICAgIChjbGljayk9XCJzZXRDb25kaXRpb25FZGl0aW5nLmVtaXQoY29uZGl0aW9uKVwiXG4gICAgICBzaXplPVwibWluaVwiXG4gICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgIChjb25kaXRpb24gfCBwdXJlOiBnZXRDb25kaXRpb25MYWJlbCkgK1xuICAgICAgICAgICcgJyArXG4gICAgICAgICAgY29uZGl0aW9uLm9wZXJhdG9yICtcbiAgICAgICAgICAnICcgK1xuICAgICAgICAgIChjb25kaXRpb24gfCBwdXJlOiBnZXRWYWx1ZUNvbnRlbnQpXG4gICAgICAgIFwiXG4gICAgICA+XG4gICAgICAgIHt7IGNvbmRpdGlvbiB8IHB1cmU6IGdldENvbmRpdGlvbkxhYmVsIH19XG4gICAgICAgIHt7IGNvbmRpdGlvbi5vcGVyYXRvciB9fVxuICAgICAgICB7eyBjb25kaXRpb24gfCBwdXJlOiBnZXRWYWx1ZUNvbnRlbnQgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2F1aS10YWc+XG5cbiAgICA8bmctdGVtcGxhdGUgI2luQWN0aW9uPlxuICAgICAgPGFjbC1tdWx0aS1zZWFyY2gtYWN0aW9uLWlucHV0XG4gICAgICAgICNpbnB1dFJlZlxuICAgICAgICBjbGFzcz1cImlucHV0LXdyYXBwZXJcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdkZWxldGluZy1pbnB1dCc6IGNvbmRpdGlvbi5pc0RlbGV0aW5nIH1cIlxuICAgICAgICBbaXNFZGl0aW5nXT1cImNvbmRpdGlvbi5pc0VkaXRpbmdcIlxuICAgICAgICBbY29uZGl0aW9uQ3JlYXRhYmxlXT1cImNvbmRpdGlvbkNyZWF0YWJsZVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFtjb25kaXRpb25Db25maWddPVwiY29uZGl0aW9uQ29uZmlnXCJcbiAgICAgICAgW2V4aXN0aW5nQ29uZGl0aW9uc109XCJleGlzdGluZ0NvbmRpdGlvbnNcIlxuICAgICAgICBbc2hvd0Zvb3RBY3Rpb25dPVwic2hvd0Zvb3RBY3Rpb25cIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImNvbmRpdGlvbi5hY3Rpb25Nb2RlbFwiXG4gICAgICAgIChjb21wbGV0ZWQpPVwiXG4gICAgICAgICAgY29tcGxldGVkLmVtaXQoe1xuICAgICAgICAgICAgYWN0aXZlQ29uZGl0aW9uOiAkZXZlbnQuYWN0aXZlQ29uZGl0aW9uLFxuICAgICAgICAgICAgdG9Db250aW51ZTogJGV2ZW50LnRvQ29udGludWUsXG4gICAgICAgICAgICBtYW51YWxGb2N1czogJGV2ZW50Lm1hbnVhbEZvY3VzLFxuICAgICAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICAgIH0pXG4gICAgICAgIFwiXG4gICAgICAgIChkZWxldGUpPVwic2V0Q29uZGl0aW9uRGVsZXRpbmcuZW1pdChpbmRleCAtIDEpXCJcbiAgICAgICAgKGVkaXRpbmcpPVwic2V0Q29uZGl0aW9uRWRpdGluZy5lbWl0KGNvbmRpdGlvbilcIlxuICAgICAgICAoc2VhcmNoKT1cInNlYXJjaC5lbWl0KClcIlxuICAgICAgPjwvYWNsLW11bHRpLXNlYXJjaC1hY3Rpb24taW5wdXQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
@@ -29,6 +29,7 @@ import mysql from './animations/mysql.json';
29
29
  import namespace from './animations/namespace.json';
30
30
  import notice from './animations/notice.json';
31
31
  import oam from './animations/oam.json';
32
+ import observe from './animations/observe.json';
32
33
  import operation_center from './animations/operation_center.json';
33
34
  import params_template from './animations/params_template.json';
34
35
  import pipeline from './animations/pipeline.json';
@@ -85,6 +86,7 @@ export default {
85
86
  product,
86
87
  project,
87
88
  resource_list,
89
+ observe,
88
90
  rocketmq,
89
91
  scrum,
90
92
  secrets,
@@ -110,4 +112,4 @@ export default {
110
112
  gitops,
111
113
  events,
112
114
  };
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvcGFnZS1zY2FmZm9sZC9uYXZpZ2F0aW9uL2xvdHRpZS1pY29ucy9hbmltYXRpb24tZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSx5QkFBeUIsQ0FBQztBQUM1QyxPQUFPLEdBQUcsTUFBTSx1QkFBdUIsQ0FBQztBQUN4QyxPQUFPLFdBQVcsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RCxPQUFPLFdBQVcsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssTUFBTSx5QkFBeUIsQ0FBQztBQUM1QyxPQUFPLGtCQUFrQixNQUFNLHNDQUFzQyxDQUFDO0FBQ3RFLE9BQU8sTUFBTSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sU0FBUyxNQUFNLDZCQUE2QixDQUFDO0FBQ3BELE9BQU8sSUFBSSxNQUFNLHdCQUF3QixDQUFDO0FBQzFDLE9BQU8sT0FBTyxNQUFNLDJCQUEyQixDQUFDO0FBQ2hELE9BQU8sV0FBVyxNQUFNLCtCQUErQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RDLE9BQU8sSUFBSSxNQUFNLHdCQUF3QixDQUFDO0FBQzFDLE9BQU8sWUFBWSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFELE9BQU8sTUFBTSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sWUFBWSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFELE9BQU8sTUFBTSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sSUFBSSxNQUFNLHdCQUF3QixDQUFDO0FBQzFDLE9BQU8sT0FBTyxNQUFNLDJCQUEyQixDQUFDO0FBQ2hELE9BQU8sTUFBTSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sVUFBVSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RELE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sS0FBSyxNQUFNLHlCQUF5QixDQUFDO0FBQzVDLE9BQU8sR0FBRyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hDLE9BQU8sTUFBTSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sT0FBTyxNQUFNLDJCQUEyQixDQUFDO0FBQ2hELE9BQU8sT0FBTyxNQUFNLDJCQUEyQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxNQUFNLHlCQUF5QixDQUFDO0FBQzVDLE9BQU8sU0FBUyxNQUFNLDZCQUE2QixDQUFDO0FBQ3BELE9BQU8sTUFBTSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sR0FBRyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hDLE9BQU8sZ0JBQWdCLE1BQU0sb0NBQW9DLENBQUM7QUFDbEUsT0FBTyxlQUFlLE1BQU0sbUNBQW1DLENBQUM7QUFDaEUsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxpQkFBaUIsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLFVBQVUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RCxPQUFPLE9BQU8sTUFBTSwyQkFBMkIsQ0FBQztBQUNoRCxPQUFPLE9BQU8sTUFBTSx3QkFBd0IsQ0FBQztBQUM3QyxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLEtBQUssTUFBTSx5QkFBeUIsQ0FBQztBQUM1QyxPQUFPLGFBQWEsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLEtBQUssTUFBTSx5QkFBeUIsQ0FBQztBQUM1QyxPQUFPLE9BQU8sTUFBTSwyQkFBMkIsQ0FBQztBQUNoRCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLE1BQU0sTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLFlBQVksTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRCxPQUFPLE9BQU8sTUFBTSwyQkFBMkIsQ0FBQztBQUNoRCxPQUFPLFVBQVUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RCxPQUFPLE9BQU8sTUFBTSwyQkFBMkIsQ0FBQztBQUNoRCxPQUFPLGVBQWUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRSxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLFNBQVMsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRCxPQUFPLFdBQVcsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RCxPQUFPLGNBQWMsTUFBTSxrQ0FBa0MsQ0FBQztBQUU5RCxlQUFlO0lBQ2IsS0FBSztJQUNMLEdBQUc7SUFDSCxXQUFXO0lBQ1gsV0FBVztJQUNYLEtBQUs7SUFDTCxrQkFBa0I7SUFDbEIsTUFBTTtJQUNOLFNBQVM7SUFDVCxJQUFJO0lBQ0osT0FBTztJQUNQLFdBQVc7SUFDWCxFQUFFO0lBQ0YsSUFBSTtJQUNKLFlBQVk7SUFDWixZQUFZO0lBQ1osTUFBTTtJQUNOLElBQUk7SUFDSixPQUFPO0lBQ1AsVUFBVTtJQUNWLFFBQVE7SUFDUixHQUFHO0lBQ0gsTUFBTTtJQUNOLE9BQU87SUFDUCxTQUFTO0lBQ1QsTUFBTTtJQUNOLGdCQUFnQjtJQUNoQixRQUFRO0lBQ1IsaUJBQWlCO0lBQ2pCLE9BQU87SUFDUCxPQUFPO0lBQ1AsYUFBYTtJQUNiLFFBQVE7SUFDUixLQUFLO0lBQ0wsT0FBTztJQUNQLFFBQVE7SUFDUixNQUFNO0lBQ04sWUFBWTtJQUNaLE9BQU87SUFDUCxPQUFPO0lBQ1AsUUFBUTtJQUNSLFNBQVM7SUFDVCxXQUFXO0lBQ1gsY0FBYztJQUNkLEdBQUc7SUFDSCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxPQUFPO0lBQ1AsUUFBUTtJQUNSLFVBQVU7SUFDVixVQUFVO0lBQ1YsZUFBZTtJQUNmLGVBQWU7SUFDZixNQUFNO0lBQ04sTUFBTTtDQUNnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFsYXJtIGZyb20gJy4vYW5pbWF0aW9ucy9hbGFybS5qc29uJztcbmltcG9ydCBhcHAgZnJvbSAnLi9hbmltYXRpb25zL2FwcC5qc29uJztcbmltcG9ydCBhcHBsaWNhdGlvbiBmcm9tICcuL2FuaW1hdGlvbnMvYXBwbGljYXRpb24uanNvbic7XG5pbXBvcnQgYXJ0aWZhY3RvcnkgZnJvbSAnLi9hbmltYXRpb25zL2FydGlmYWN0b3J5Lmpzb24nO1xuaW1wb3J0IGF1ZGl0IGZyb20gJy4vYW5pbWF0aW9ucy9hdWRpdC5qc29uJztcbmltcG9ydCBhdXhpbGlhcnlfZnVuY3Rpb24gZnJvbSAnLi9hbmltYXRpb25zL2F1eGlsaWFyeV9mdW5jdGlvbi5qc29uJztcbmltcG9ydCBiYWNrdXAgZnJvbSAnLi9hbmltYXRpb25zL2JhY2t1cC5qc29uJztcbmltcG9ydCBiYXJfY2hhcnQgZnJvbSAnLi9hbmltYXRpb25zL2Jhcl9jaGFydC5qc29uJztcbmltcG9ydCBiaWxsIGZyb20gJy4vYW5pbWF0aW9ucy9iaWxsLmpzb24nO1xuaW1wb3J0IGNhdGFsb2cgZnJvbSAnLi9hbmltYXRpb25zL2NhdGFsb2cuanNvbic7XG5pbXBvcnQgY2VydGlmaWNhdGUgZnJvbSAnLi9hbmltYXRpb25zL2NlcnRpZmljYXRlLmpzb24nO1xuaW1wb3J0IGNpIGZyb20gJy4vYW5pbWF0aW9ucy9jaS5qc29uJztcbmltcG9ydCBjb2RlIGZyb20gJy4vYW5pbWF0aW9ucy9jb2RlLmpzb24nO1xuaW1wb3J0IGRhdGFfc2VydmljZSBmcm9tICcuL2FuaW1hdGlvbnMvZGF0YV9zZXJ2aWNlLmpzb24nO1xuaW1wb3J0IGRldm9wcyBmcm9tICcuL2FuaW1hdGlvbnMvZGV2b3BzLmpzb24nO1xuaW1wb3J0IGRldm9wc190b29scyBmcm9tICcuL2FuaW1hdGlvbnMvZGV2b3BzX3Rvb2xzLmpzb24nO1xuaW1wb3J0IGV2ZW50cyBmcm9tICcuL2FuaW1hdGlvbnMvZXZlbnRzLmpzb24nO1xuaW1wb3J0IGZpbGUgZnJvbSAnLi9hbmltYXRpb25zL2ZpbGUuanNvbic7XG5pbXBvcnQgZ2F0ZXdheSBmcm9tICcuL2FuaW1hdGlvbnMvZ2F0ZXdheS5qc29uJztcbmltcG9ydCBnaXRvcHMgZnJvbSAnLi9hbmltYXRpb25zL2dpdG9wcy5qc29uJztcbmltcG9ydCBpbnNwZWN0aW9uIGZyb20gJy4vYW5pbWF0aW9ucy9pbnNwZWN0aW9uLmpzb24nO1xuaW1wb3J0IGludGVybmV0IGZyb20gJy4vYW5pbWF0aW9ucy9pbnRlcm5ldC5qc29uJztcbmltcG9ydCBrYWZrYSBmcm9tICcuL2FuaW1hdGlvbnMva2Fma2EuanNvbic7XG5pbXBvcnQgbG9nIGZyb20gJy4vYW5pbWF0aW9ucy9sb2cuanNvbic7XG5pbXBvcnQgbWVtYmVyIGZyb20gJy4vYW5pbWF0aW9ucy9tZW1iZXIuanNvbic7XG5pbXBvcnQgbW9uZ29kYiBmcm9tICcuL2FuaW1hdGlvbnMvbW9uZ29kYi5qc29uJztcbmltcG9ydCBtb25pdG9yIGZyb20gJy4vYW5pbWF0aW9ucy9tb25pdG9yLmpzb24nO1xuaW1wb3J0IG15c3FsIGZyb20gJy4vYW5pbWF0aW9ucy9teXNxbC5qc29uJztcbmltcG9ydCBuYW1lc3BhY2UgZnJvbSAnLi9hbmltYXRpb25zL25hbWVzcGFjZS5qc29uJztcbmltcG9ydCBub3RpY2UgZnJvbSAnLi9hbmltYXRpb25zL25vdGljZS5qc29uJztcbmltcG9ydCBvYW0gZnJvbSAnLi9hbmltYXRpb25zL29hbS5qc29uJztcbmltcG9ydCBvcGVyYXRpb25fY2VudGVyIGZyb20gJy4vYW5pbWF0aW9ucy9vcGVyYXRpb25fY2VudGVyLmpzb24nO1xuaW1wb3J0IHBhcmFtc190ZW1wbGF0ZSBmcm9tICcuL2FuaW1hdGlvbnMvcGFyYW1zX3RlbXBsYXRlLmpzb24nO1xuaW1wb3J0IHBpcGVsaW5lIGZyb20gJy4vYW5pbWF0aW9ucy9waXBlbGluZS5qc29uJztcbmltcG9ydCBwbGF0Zm9ybV9zZXR0aW5ncyBmcm9tICcuL2FuaW1hdGlvbnMvcGxhdGZvcm1fc2V0dGluZ3MuanNvbic7XG5pbXBvcnQgcG9zdGdyZXNxbCBmcm9tICcuL2FuaW1hdGlvbnMvcG9zdGdyZXNxbC5qc29uJztcbmltcG9ydCBwcm9kdWN0IGZyb20gJy4vYW5pbWF0aW9ucy9wcm9kdWN0Lmpzb24nO1xuaW1wb3J0IHByb2plY3QgZnJvbSAnLi9hbmltYXRpb25zL3Byb2ouanNvbic7XG5pbXBvcnQgcmFiYml0bXEgZnJvbSAnLi9hbmltYXRpb25zL3JhYmJpdG1xLmpzb24nO1xuaW1wb3J0IHJlZGlzIGZyb20gJy4vYW5pbWF0aW9ucy9yZWRpcy5qc29uJztcbmltcG9ydCByZXNvdXJjZV9saXN0IGZyb20gJy4vYW5pbWF0aW9ucy9yZXNvdXJjZV9saXN0Lmpzb24nO1xuaW1wb3J0IHJvY2tldG1xIGZyb20gJy4vYW5pbWF0aW9ucy9yb2NrZXRtcS5qc29uJztcbmltcG9ydCBzY3J1bSBmcm9tICcuL2FuaW1hdGlvbnMvc2NydW0uanNvbic7XG5pbXBvcnQgc2VjcmV0cyBmcm9tICcuL2FuaW1hdGlvbnMvc2VjcmV0cy5qc29uJztcbmltcG9ydCBzZWN1cml0eSBmcm9tICcuL2FuaW1hdGlvbnMvc2VjdXJpdHkuanNvbic7XG5pbXBvcnQgc2VydmVyIGZyb20gJy4vYW5pbWF0aW9ucy9zZXJ2ZXIuanNvbic7XG5pbXBvcnQgc2VydmljZV9tZXNoIGZyb20gJy4vYW5pbWF0aW9ucy9zZXJ2aWNlX21lc2guanNvbic7XG5pbXBvcnQgc2l0ZW1hcCBmcm9tICcuL2FuaW1hdGlvbnMvc2l0ZW1hcC5qc29uJztcbmltcG9ydCBzbGlkZXJzX3VwIGZyb20gJy4vYW5pbWF0aW9ucy9zbGlkZXJzX3VwLmpzb24nO1xuaW1wb3J0IHN0b3JhZ2UgZnJvbSAnLi9hbmltYXRpb25zL3N0b3JhZ2UuanNvbic7XG5pbXBvcnQgdGVzdF9tYW5hZ2VtZW50IGZyb20gJy4vYW5pbWF0aW9ucy90ZXN0X21hbmFnZW1lbnQuanNvbic7XG5pbXBvcnQgdG9wb2xvZ3kgZnJvbSAnLi9hbmltYXRpb25zL3RvcG9sb2d5Lmpzb24nO1xuaW1wb3J0IHVzZXJfcm9sZSBmcm9tICcuL2FuaW1hdGlvbnMvdXNlcl9yb2xlLmpzb24nO1xuaW1wb3J0IHZpZXdfamFlZ2VyIGZyb20gJy4vYW5pbWF0aW9ucy92aWV3X2phZWdlci5qc29uJztcbmltcG9ydCB2aXJ0dWFsaXphdGlvbiBmcm9tICcuL2FuaW1hdGlvbnMvdmlydHVhbGl6YXRpb24uanNvbic7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgYWxhcm0sXG4gIGFwcCxcbiAgYXBwbGljYXRpb24sXG4gIGFydGlmYWN0b3J5LFxuICBhdWRpdCxcbiAgYXV4aWxpYXJ5X2Z1bmN0aW9uLFxuICBiYWNrdXAsXG4gIGJhcl9jaGFydCxcbiAgYmlsbCxcbiAgY2F0YWxvZyxcbiAgY2VydGlmaWNhdGUsXG4gIGNpLFxuICBjb2RlLFxuICBkYXRhX3NlcnZpY2UsXG4gIGRldm9wc190b29scyxcbiAgZGV2b3BzLFxuICBmaWxlLFxuICBnYXRld2F5LFxuICBzbGlkZXJzX3VwLFxuICBpbnRlcm5ldCxcbiAgbG9nLFxuICBtZW1iZXIsXG4gIG1vbml0b3IsXG4gIG5hbWVzcGFjZSxcbiAgbm90aWNlLFxuICBvcGVyYXRpb25fY2VudGVyLFxuICBwaXBlbGluZSxcbiAgcGxhdGZvcm1fc2V0dGluZ3MsXG4gIHByb2R1Y3QsXG4gIHByb2plY3QsXG4gIHJlc291cmNlX2xpc3QsXG4gIHJvY2tldG1xLFxuICBzY3J1bSxcbiAgc2VjcmV0cyxcbiAgc2VjdXJpdHksXG4gIHNlcnZlcixcbiAgc2VydmljZV9tZXNoLFxuICBzaXRlbWFwLFxuICBzdG9yYWdlLFxuICB0b3BvbG9neSxcbiAgdXNlcl9yb2xlLFxuICB2aWV3X2phZWdlcixcbiAgdmlydHVhbGl6YXRpb24sXG4gIG9hbSxcbiAga2Fma2EsXG4gIHJlZGlzLFxuICBteXNxbCxcbiAgbW9uZ29kYixcbiAgcmFiYml0bXEsXG4gIHBvc3RncmVzcWwsXG4gIGluc3BlY3Rpb24sXG4gIHRlc3RfbWFuYWdlbWVudCxcbiAgcGFyYW1zX3RlbXBsYXRlLFxuICBnaXRvcHMsXG4gIGV2ZW50cyxcbn0gYXMgUmVjb3JkPHN0cmluZywgYW55PjtcbiJdfQ==
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvcGFnZS1zY2FmZm9sZC9uYXZpZ2F0aW9uL2xvdHRpZS1pY29ucy9hbmltYXRpb24tZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSx5QkFBeUIsQ0FBQztBQUM1QyxPQUFPLEdBQUcsTUFBTSx1QkFBdUIsQ0FBQztBQUN4QyxPQUFPLFdBQVcsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RCxPQUFPLFdBQVcsTUFBTSwrQkFBK0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssTUFBTSx5QkFBeUIsQ0FBQztBQUM1QyxPQUFPLGtCQUFrQixNQUFNLHNDQUFzQyxDQUFDO0FBQ3RFLE9BQU8sTUFBTSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sU0FBUyxNQUFNLDZCQUE2QixDQUFDO0FBQ3BELE9BQU8sSUFBSSxNQUFNLHdCQUF3QixDQUFDO0FBQzFDLE9BQU8sT0FBTyxNQUFNLDJCQUEyQixDQUFDO0FBQ2hELE9BQU8sV0FBVyxNQUFNLCtCQUErQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RDLE9BQU8sSUFBSSxNQUFNLHdCQUF3QixDQUFDO0FBQzFDLE9BQU8sWUFBWSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFELE9BQU8sTUFBTSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sWUFBWSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFELE9BQU8sTUFBTSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sSUFBSSxNQUFNLHdCQUF3QixDQUFDO0FBQzFDLE9BQU8sT0FBTyxNQUFNLDJCQUEyQixDQUFDO0FBQ2hELE9BQU8sTUFBTSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sVUFBVSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RELE9BQU8sUUFBUSxNQUFN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cnQgYXBwIGZyb20gJy4vYW5pbWF0aW9ucy9hcHAuanNvbic7XG5pbXBvcnQgYXBwbGljYXRpb24gZnJvbSAnLi9hbmltYXRpb25zL2FwcGxpY2F0aW9uLmpzb24nO1xuaW1wb3J0IGFydGlmYWN0b3J5IGZyb20gJy4vYW5pbWF0aW9ucy9hcnRpZmFjdG9yeS5qc29uJztcbmltcG9ydCBhdWRpdCBmcm9tICcuL2FuaW1hdGlvbnMvYXVkaXQuanNvbic7XG5pbXBvcnQgYXV4aWxpYXJ5X2Z1bmN0aW9uIGZyb20gJy4vYW5pbWF0aW9ucy9hdXhpbGlhcnlfZnVuY3Rpb24uanNvbic7XG5pbXBvcnQgYmFja3VwIGZyb20gJy4vYW5pbWF0aW9ucy9iYWNrdXAuanNvbic7XG5pbXBvcnQgYmFyX2NoYXJ0IGZyb20gJy4vYW5pbWF0aW9ucy9iYXJfY2hhcnQuanNvbic7XG5pbXBvcnQgYmlsbCBmcm9tICcuL2FuaW1hdGlvbnMvYmlsbC5qc29uJztcbmltcG9ydCBjYXRhbG9nIGZyb20gJy4vYW5pbWF0aW9ucy9jYXRhbG9nLmpzb24nO1xuaW1wb3J0IGNlcnRpZmljYXRlIGZyb20gJy4vYW5pbWF0aW9ucy9jZXJ0aWZpY2F0ZS5qc29uJztcbmltcG9ydCBjaSBmcm9tICcuL2FuaW1hdGlvbnMvY2kuanNvbic7XG5pbXBvcnQgY29kZSBmcm9tICcuL2FuaW1hdGlvbnMvY29kZS5qc29uJztcbmltcG9ydCBkYXRhX3NlcnZpY2UgZnJvbSAnLi9hbmltYXRpb25zL2RhdGFfc2VydmljZS5qc29uJztcbmltcG9ydCBkZXZvcHMgZnJvbSAnLi9hbmltYXRpb25zL2Rldm9wcy5qc29uJztcbmltcG9ydCBkZXZvcHNfdG9vbHMgZnJvbSAnLi9hbmltYXRpb25zL2Rldm9wc190b29scy5qc29uJztcbmltcG9ydCBldmVudHMgZnJvbSAnLi9hbmltYXRpb25zL2V2ZW50cy5qc29uJztcbmltcG9ydCBmaWxlIGZyb20gJy4vYW5pbWF0aW9ucy9maWxlLmpzb24nO1xuaW1wb3J0IGdhdGV3YXkgZnJvbSAnLi9hbmltYXRpb25zL2dhdGV3YXkuanNvbic7XG5pbXBvcnQgZ2l0b3BzIGZyb20gJy4vYW5pbWF0aW9ucy9naXRvcHMuanNvbic7XG5pbXBvcnQgaW5zcGVjdGlvbiBmcm9tICcuL2FuaW1hdGlvbnMvaW5zcGVjdGlvbi5qc29uJztcbmltcG9ydCBpbnRlcm5ldCBmcm9tICcuL2FuaW1hdGlvbnMvaW50ZXJuZXQuanNvbic7XG5pbXBvcnQga2Fma2EgZnJvbSAnLi9hbmltYXRpb25zL2thZmthLmpzb24nO1xuaW1wb3J0IGxvZyBmcm9tICcuL2FuaW1hdGlvbnMvbG9nLmpzb24nO1xuaW1wb3J0IG1lbWJlciBmcm9tICcuL2FuaW1hdGlvbnMvbWVtYmVyLmpzb24nO1xuaW1wb3J0IG1vbmdvZGIgZnJvbSAnLi9hbmltYXRpb25zL21vbmdvZGIuanNvbic7XG5pbXBvcnQgbW9uaXRvciBmcm9tICcuL2FuaW1hdGlvbnMvbW9uaXRvci5qc29uJztcbmltcG9ydCBteXNxbCBmcm9tICcuL2FuaW1hdGlvbnMvbXlzcWwuanNvbic7XG5pbXBvcnQgbmFtZXNwYWNlIGZyb20gJy4vYW5pbWF0aW9ucy9uYW1lc3BhY2UuanNvbic7XG5pbXBvcnQgbm90aWNlIGZyb20gJy4vYW5pbWF0aW9ucy9ub3RpY2UuanNvbic7XG5pbXBvcnQgb2FtIGZyb20gJy4vYW5pbWF0aW9ucy9vYW0uanNvbic7XG5pbXBvcnQgb2JzZXJ2ZSBmcm9tICcuL2FuaW1hdGlvbnMvb2JzZXJ2ZS5qc29uJztcbmltcG9ydCBvcGVyYXRpb25fY2VudGVyIGZyb20gJy4vYW5pbWF0aW9ucy9vcGVyYXRpb25fY2VudGVyLmpzb24nO1xuaW1wb3J0IHBhcmFtc190ZW1wbGF0ZSBmcm9tICcuL2FuaW1hdGlvbnMvcGFyYW1zX3RlbXBsYXRlLmpzb24nO1xuaW1wb3J0IHBpcGVsaW5lIGZyb20gJy4vYW5pbWF0aW9ucy9waXBlbGluZS5qc29uJztcbmltcG9ydCBwbGF0Zm9ybV9zZXR0aW5ncyBmcm9tICcuL2FuaW1hdGlvbnMvcGxhdGZvcm1fc2V0dGluZ3MuanNvbic7XG5pbXBvcnQgcG9zdGdyZXNxbCBmcm9tICcuL2FuaW1hdGlvbnMvcG9zdGdyZXNxbC5qc29uJztcbmltcG9ydCBwcm9kdWN0IGZyb20gJy4vYW5pbWF0aW9ucy9wcm9kdWN0Lmpzb24nO1xuaW1wb3J0IHByb2plY3QgZnJvbSAnLi9hbmltYXRpb25zL3Byb2ouanNvbic7XG5pbXBvcnQgcmFiYml0bXEgZnJvbSAnLi9hbmltYXRpb25zL3JhYmJpdG1xLmpzb24nO1xuaW1wb3J0IHJlZGlzIGZyb20gJy4vYW5pbWF0aW9ucy9yZWRpcy5qc29uJztcbmltcG9ydCByZXNvdXJjZV9saXN0IGZyb20gJy4vYW5pbWF0aW9ucy9yZXNvdXJjZV9saXN0Lmpzb24nO1xuaW1wb3J0IHJvY2tldG1xIGZyb20gJy4vYW5pbWF0aW9ucy9yb2NrZXRtcS5qc29uJztcbmltcG9ydCBzY3J1bSBmcm9tICcuL2FuaW1hdGlvbnMvc2NydW0uanNvbic7XG5pbXBvcnQgc2VjcmV0cyBmcm9tICcuL2FuaW1hdGlvbnMvc2VjcmV0cy5qc29uJztcbmltcG9ydCBzZWN1cml0eSBmcm9tICcuL2FuaW1hdGlvbnMvc2VjdXJpdHkuanNvbic7XG5pbXBvcnQgc2VydmVyIGZyb20gJy4vYW5pbWF0aW9ucy9zZXJ2ZXIuanNvbic7XG5pbXBvcnQgc2VydmljZV9tZXNoIGZyb20gJy4vYW5pbWF0aW9ucy9zZXJ2aWNlX21lc2guanNvbic7XG5pbXBvcnQgc2l0ZW1hcCBmcm9tICcuL2FuaW1hdGlvbnMvc2l0ZW1hcC5qc29uJztcbmltcG9ydCBzbGlkZXJzX3VwIGZyb20gJy4vYW5pbWF0aW9ucy9zbGlkZXJzX3VwLmpzb24nO1xuaW1wb3J0IHN0b3JhZ2UgZnJvbSAnLi9hbmltYXRpb25zL3N0b3JhZ2UuanNvbic7XG5pbXBvcnQgdGVzdF9tYW5hZ2VtZW50IGZyb20gJy4vYW5pbWF0aW9ucy90ZXN0X21hbmFnZW1lbnQuanNvbic7XG5pbXBvcnQgdG9wb2xvZ3kgZnJvbSAnLi9hbmltYXRpb25zL3RvcG9sb2d5Lmpzb24nO1xuaW1wb3J0IHVzZXJfcm9sZSBmcm9tICcuL2FuaW1hdGlvbnMvdXNlcl9yb2xlLmpzb24nO1xuaW1wb3J0IHZpZXdfamFlZ2VyIGZyb20gJy4vYW5pbWF0aW9ucy92aWV3X2phZWdlci5qc29uJztcbmltcG9ydCB2aXJ0dWFsaXphdGlvbiBmcm9tICcuL2FuaW1hdGlvbnMvdmlydHVhbGl6YXRpb24uanNvbic7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgYWxhcm0sXG4gIGFwcCxcbiAgYXBwbGljYXRpb24sXG4gIGFydGlmYWN0b3J5LFxuICBhdWRpdCxcbiAgYXV4aWxpYXJ5X2Z1bmN0aW9uLFxuICBiYWNrdXAsXG4gIGJhcl9jaGFydCxcbiAgYmlsbCxcbiAgY2F0YWxvZyxcbiAgY2VydGlmaWNhdGUsXG4gIGNpLFxuICBjb2RlLFxuICBkYXRhX3NlcnZpY2UsXG4gIGRldm9wc190b29scyxcbiAgZGV2b3BzLFxuICBmaWxlLFxuICBnYXRld2F5LFxuICBzbGlkZXJzX3VwLFxuICBpbnRlcm5ldCxcbiAgbG9nLFxuICBtZW1iZXIsXG4gIG1vbml0b3IsXG4gIG5hbWVzcGFjZSxcbiAgbm90aWNlLFxuICBvcGVyYXRpb25fY2VudGVyLFxuICBwaXBlbGluZSxcbiAgcGxhdGZvcm1fc2V0dGluZ3MsXG4gIHByb2R1Y3QsXG4gIHByb2plY3QsXG4gIHJlc291cmNlX2xpc3QsXG4gIG9ic2VydmUsXG4gIHJvY2tldG1xLFxuICBzY3J1bSxcbiAgc2VjcmV0cyxcbiAgc2VjdXJpdHksXG4gIHNlcnZlcixcbiAgc2VydmljZV9tZXNoLFxuICBzaXRlbWFwLFxuICBzdG9yYWdlLFxuICB0b3BvbG9neSxcbiAgdXNlcl9yb2xlLFxuICB2aWV3X2phZWdlcixcbiAgdmlydHVhbGl6YXRpb24sXG4gIG9hbSxcbiAga2Fma2EsXG4gIHJlZGlzLFxuICBteXNxbCxcbiAgbW9uZ29kYixcbiAgcmFiYml0bXEsXG4gIHBvc3RncmVzcWwsXG4gIGluc3BlY3Rpb24sXG4gIHRlc3RfbWFuYWdlbWVudCxcbiAgcGFyYW1zX3RlbXBsYXRlLFxuICBnaXRvcHMsXG4gIGV2ZW50cyxcbn0gYXMgUmVjb3JkPHN0cmluZywgYW55PjtcbiJdfQ==
@@ -0,0 +1 @@
1
+ { "v": "5.10.2", "fr": 60, "ip": 0, "op": 40, "w": 96, "h": 96, "nm": "observe 3", "ddd": 0, "assets": [], "layers": [{ "ddd": 0, "ind": 1, "ty": 4, "nm": "路径备份 2", "parent": 3, "sr": 1, "ks": { "o": { "a": 0, "k": 100, "ix": 11 }, "r": { "a": 0, "k": 0, "ix": 10 }, "p": { "a": 0, "k": [8.31, -9.093, 0], "ix": 2, "l": 2 }, "a": { "a": 0, "k": [0, 0, 0], "ix": 1, "l": 2 }, "s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 } }, "ao": 0, "shapes": [{ "ty": "gr", "it": [{ "ind": 0, "ty": "sh", "ix": 1, "ks": { "a": 0, "k": { "i": [[0, 0], [0, 0], [0, 0], [0.24, -0.36], [0.44, 0], [0, 0.73], [-0.29, 0.25], [-0.39, -0.06], [0, 0]], "o": [[0, 0], [0, 0], [0.17, 0.4], [-0.25, 0.37], [-0.73, 0], [0, -0.39], [0.3, -0.26], [0, 0], [0, 0]], "v": [[1.834, -2.839], [2.744, -1.93], [-0.206, 1.02], [-0.326, 2.251], [-1.426, 2.84], [-2.746, 1.52], [-2.286, 0.51], [-1.206, 0.21], [1.824, -2.839]], "c": true }, "ix": 2 }, "nm": "路径 1", "mn": "ADBE Vector Shape - Group", "hd": false }, { "ty": "fl", "c": { "a": 1, "k": [{ "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 0, "s": [0.486274510622, 0.494117647409, 0.505882382393, 1] }, { "t": 1, "s": [0, 0.478431373835, 0.960784316063, 1] }], "ix": 4 }, "o": { "a": 0, "k": 100, "ix": 5 }, "r": 1, "bm": 0, "nm": "填充 1", "mn": "ADBE Vector Graphic - Fill", "hd": false }, { "ty": "tr", "p": { "a": 0, "k": [0.015, 0.059], "ix": 2 }, "a": { "a": 0, "k": [0, 0], "ix": 1 }, "s": { "a": 0, "k": [600, 600], "ix": 3 }, "r": { "a": 0, "k": 0, "ix": 6 }, "o": { "a": 0, "k": 100, "ix": 7 }, "sk": { "a": 0, "k": 0, "ix": 4 }, "sa": { "a": 0, "k": 0, "ix": 5 }, "nm": "变换" }], "nm": "路径备份 2", "np": 2, "cix": 2, "bm": 0, "ix": 1, "mn": "ADBE Vector Group", "hd": false }], "ip": 0, "op": 300, "st": 0, "ct": 1, "bm": 0 }, { "ddd": 0, "ind": 2, "ty": 4, "nm": "路径", "sr": 1, "ks": { "o": { "a": 0, "k": 100, "ix": 11 }, "r": { "a": 0, "k": 0, "ix": 10 }, "p": { "a": 0, "k": [48, 53.121, 0], "ix": 2, "l": 2 }, "a": { "a": 0, "k": [0, 0, 0], "ix": 1, "l": 2 }, "s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 } }, "ao": 0, "shapes": [{ "ty": "gr", "it": [{ "ind": 0, "ty": "sh", "ix": 1, "ks": { "a": 0, "k": { "i": [[-1.27, 1.01], [0, 0], [-0.01, -1.26], [-0.78, -0.77], [-1.1, 0], [-0.78, 0.78], [0, 1.1], [0.56, 0.71], [0, 0], [0, 0], [0, -1.23], [2.96, 0], [1, 1.01], [0, 1.42]], "o": [[0, 0], [-0.99, 0.79], [-0.01, 1.1], [0.78, 0.78], [1.1, 0], [0.78, -0.77], [0, -0.94], [0, 0], [0, 0], [0.76, 0.94], [0, 2.96], [-1.42, 0], [-1.01, -1], [0, -1.65]], "v": [[-3.33, -4.783], [-2.58, -3.833], [-4.14, -0.583], [-2.93, 2.346], [0, 3.566], [2.93, 2.346], [4.15, -0.583], [3.27, -3.133], [4.13, -4.003], [4.18, -3.934], [5.36, -0.583], [0, 4.786], [-3.79, 3.206], [-5.36, -0.583]], "c": true }, "ix": 2 }, "nm": "路径 1", "mn": "ADBE Vector Shape - Group", "hd": false }, { "ty": "fl", "c": { "a": 1, "k": [{ "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 0, "s": [0.486274510622, 0.494117647409, 0.505882382393, 1] }, { "t": 1, "s": [0, 0.478431373835, 0.960784316063, 1] }], "ix": 4 }, "o": { "a": 0, "k": 100, "ix": 5 }, "r": 1, "bm": 0, "nm": "填充 1", "mn": "ADBE Vector Graphic - Fill", "hd": false }, { "ty": "tr", "p": { "a": 0, "k": [0, 0], "ix": 2 }, "a": { "a": 0, "k": [0, 0], "ix": 1 }, "s": { "a": 0, "k": [600, 600], "ix": 3 }, "r": { "a": 0, "k": 0, "ix": 6 }, "o": { "a": 0, "k": 100, "ix": 7 }, "sk": { "a": 0, "k": 0, "ix": 4 }, "sa": { "a": 0, "k": 0, "ix": 5 }, "nm": "变换" }], "nm": "路径", "np": 2, "cix": 2, "bm": 0, "ix": 1, "mn": "ADBE Vector Group", "hd": false }], "ip": 0, "op": 300, "st": 0, "ct": 1, "bm": 0 }, { "ddd": 0, "ind": 3, "ty": 4, "nm": "形状", "sr": 1, "ks": { "o": { "a": 0, "k": 100, "ix": 11 }, "r": { "a": 1, "k": [{ "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 1, "s": [0] }, { "t": 40, "s": [360] }], "ix": 10 }, "p": { "a": 0, "k": [48, 49.8, 0], "ix": 2, "l": 2 }, "a": { "a": 0, "k": [0, 0, 0], "ix": 1, "l": 2 }, "s": { "a": 0, "k": [100, 100, 100], "ix": 6, "l": 2 } }, "ao": 0, "shapes": [{ "ty": "gr", "it": [{ "ind": 0, "ty": "sh", "ix": 1, "ks": { "a": 0, "k": { "i": [[0, 0], [0, 0], [0, -2.09], [-1.63, -1.27], [0, 0], [0, 2.46], [-1.95, 1.51]], "o": [[0, 0], [-1.65, 1.27], [0, 2.1], [0, 0], [-1.94, -1.51], [0, -2.47], [0, 0]], "v": [[-4.9, -6.3], [-4.13, -5.31], [-6.75, 0.01], [-4.15, 5.32], [-4.92, 6.3], [-8, 0.01], [-4.9, -6.3]], "c": true }, "ix": 2 }, "nm": "路径 1", "mn": "ADBE Vector Shape - Group", "hd": false }, { "ind": 1, "ty": "sh", "ix": 2, "ks": { "a": 0, "k": { "i": [[0, 0], [0, -2.42], [1.9, -1.51], [0, 0], [0, 2.04], [1.59, 1.27]], "o": [[1.91, 1.51], [0, 2.43], [0, 0], [1.61, -1.27], [0, -2.08], [0, 0]], "v": [[4.987, -6.227], [7.997, 0.003], [4.997, 6.243], [4.207, 5.263], [6.747, 0.013], [4.207, -5.247]], "c": true }, "ix": 2 }, "nm": "路径 2", "mn": "ADBE Vector Shape - Group", "hd": false }, { "ty": "mm", "mm": 1, "nm": "合并路径 1", "mn": "ADBE Vector Filter - Merge", "hd": false }, { "ty": "fl", "c": { "a": 1, "k": [{ "i": { "x": [0.833], "y": [0.833] }, "o": { "x": [0.167], "y": [0.167] }, "t": 0, "s": [0.68235296011, 0.690196096897, 0.701960802078, 1] }, { "t": 1, "s": [0.40000000596, 0.686274528503, 0.976470589638, 1] }], "ix": 4 }, "o": { "a": 0, "k": 100, "ix": 5 }, "r": 1, "bm": 0, "nm": "填充 1", "mn": "ADBE Vector Graphic - Fill", "hd": false }, { "ty": "tr", "p": { "a": 0, "k": [0, 0], "ix": 2 }, "a": { "a": 0, "k": [0, 0], "ix": 1 }, "s": { "a": 0, "k": [600, 600], "ix": 3 }, "r": { "a": 0, "k": 0, "ix": 6 }, "o": { "a": 0, "k": 100, "ix": 7 }, "sk": { "a": 0, "k": 0, "ix": 4 }, "sa": { "a": 0, "k": 0, "ix": 5 }, "nm": "变换" }], "nm": "形状", "np": 4, "cix": 2, "bm": 0, "ix": 1, "mn": "ADBE Vector Group", "hd": false }], "ip": 0, "op": 300, "st": 0, "ct": 1, "bm": 0 }], "markers": [] }
@@ -1,10 +1,9 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
- import { Inject, Injectable } from '@angular/core';
2
+ import { Injectable } from '@angular/core';
3
3
  import { combineLatest, of, catchError, map, pluck } from 'rxjs';
4
4
  import { K8sApiService } from '../../../api/k8s-api.service';
5
5
  import { ProjectService } from '../../../business/resource-select/project.service';
6
6
  import { API_GATEWAY } from '../../../core/constants/constants';
7
- import { TOKEN_GLOBAL_NAMESPACE } from '../../../core/constants/tokens';
8
7
  import { publishRef, COMMON_RESOURCE_DEFINITIONS, } from '../../../core/public-api';
9
8
  import * as i0 from "@angular/core";
10
9
  import * as i1 from "../../../api/k8s-api.service";
@@ -28,10 +27,9 @@ export const ProductEntryName = {
28
27
  CEC: 'cec',
29
28
  };
30
29
  export class CommonLayoutContextService {
31
- constructor(k8sApi, httpClient, globalNamespace, projectService) {
30
+ constructor(k8sApi, httpClient, projectService) {
32
31
  this.k8sApi = k8sApi;
33
32
  this.httpClient = httpClient;
34
- this.globalNamespace = globalNamespace;
35
33
  this.projectService = projectService;
36
34
  }
37
35
  getProjects() {
@@ -61,7 +59,7 @@ export class CommonLayoutContextService {
61
59
  .get(`${API_GATEWAY}/apis/auth.alauda.io/v1/projects/${_projectName}`)
62
60
  .pipe(catchError(() => of(null))),
63
61
  this.httpClient
64
- .get(`${API_GATEWAY}/apis/clusterregistry.k8s.io/v1alpha1/namespaces/${this.globalNamespace}/clusters`)
62
+ .get(API_GATEWAY + '/auth/v1/clusters')
65
63
  .pipe(pluck('items'), catchError(() => of([]))),
66
64
  ]).pipe(map(([project, clusters]) => {
67
65
  const clusterRefs = project.spec.clusters;
@@ -73,14 +71,11 @@ export class CommonLayoutContextService {
73
71
  .get(`${API_GATEWAY}/auth/v1/projects/${_projectName}/clusters/${_clusterName}/namespaces`)
74
72
  .pipe(pluck(ITEMS));
75
73
  }
76
- static { this.ɵfac = function CommonLayoutContextService_Factory(t) { return new (t || CommonLayoutContextService)(i0.ɵɵinject(i1.K8sApiService), i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(TOKEN_GLOBAL_NAMESPACE), i0.ɵɵinject(i3.ProjectService)); }; }
74
+ static { this.ɵfac = function CommonLayoutContextService_Factory(t) { return new (t || CommonLayoutContextService)(i0.ɵɵinject(i1.K8sApiService), i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i3.ProjectService)); }; }
77
75
  static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CommonLayoutContextService, factory: CommonLayoutContextService.ɵfac, providedIn: 'root' }); }
78
76
  }
79
77
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CommonLayoutContextService, [{
80
78
  type: Injectable,
81
79
  args: [{ providedIn: 'root' }]
82
- }], () => [{ type: i1.K8sApiService }, { type: i2.HttpClient }, { type: undefined, decorators: [{
83
- type: Inject,
84
- args: [TOKEN_GLOBAL_NAMESPACE]
85
- }] }, { type: i3.ProjectService }], null); })();
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3BhZ2Utc2NhZmZvbGQvcGFnZS1oZWFkZXIvY29tbW9uLWxheW91dC9jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDbkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFLTCxVQUFVLEVBQ1YsMkJBQTJCLEdBRzVCLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBR2xDOzs7R0FHRztBQUVILE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQztBQXNDdEIsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsR0FBRyxFQUFFLEtBQUs7SUFDVixNQUFNLEVBQUUsUUFBUTtJQUNoQixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLE9BQU87SUFDWixRQUFRLEVBQUUsVUFBVTtJQUNwQixRQUFRLEVBQUUsVUFBVTtJQUNwQixPQUFPLEVBQUUsU0FBUztJQUNsQixhQUFhLEVBQUUsY0FBYztJQUM3QixHQUFHLEVBQUUsS0FBSztDQUNGLENBQUM7QUFLWCxNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLFlBQ21CLE1BQXFCLEVBQ3JCLFVBQXNCLEVBQ1UsZUFBdUIsRUFDdkQsY0FBOEI7UUFIOUIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ1Usb0JBQWUsR0FBZixlQUFlLENBQVE7UUFDdkQsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQzlDLENBQUM7SUFFSixXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxNQUFNO2FBQ2YscUJBQXFCLENBQWU7WUFDbkMsVUFBVSxFQUFFLDJCQUEyQixDQUFDLGFBQWE7WUFDckQsV0FBVyxFQUFFO2dCQUNYLEtBQUssRUFBRSxHQUFHO2FBQ1g7U0FDRixDQUFDO2FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxNQUFNO2FBQ2YsaUJBQWlCLENBQWU7WUFDL0IsVUFBVSxFQUFFLDJCQUEyQixDQUFDLGFBQWE7WUFDckQsSUFBSTtTQUNMLENBQUM7YUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsWUFBb0I7UUFDckMsT0FBTyxhQUFhLENBQUM7WUFDbkIsSUFBSSxDQUFDLFVBQVU7aUJBQ1osR0FBRyxDQUNGLEdBQUcsV0FBVyxvQ0FBb0MsWUFBWSxFQUFFLENBQ2pFO2lCQUNBLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQWUsQ0FBQyxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLFVBQVU7aUJBQ1osR0FBRyxDQUNGLEdBQUcsV0FBVyxvREFBb0QsSUFBSSxDQUFDLGVBQWUsV0FBVyxDQUNsRztpQkFDQSxJQUFJLENBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUNkLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDekI7U0FDSixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDMUIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDMUMsT0FBUSxRQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUN4QyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUN0RCxDQUFDO1FBQ0osQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVELG9CQUFvQixDQUNsQixZQUFvQixFQUNwQixZQUFvQjtRQUVwQixPQUFPLElBQUksQ0FBQyxVQUFVO2FBQ25CLEdBQUcsQ0FDRixHQUFHLFdBQVcscUJBQXFCLFlBQVksYUFBYSxZQUFZLGFBQWEsQ0FDdEY7YUFDQSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQzsyRkFuRVUsMEJBQTBCLHlFQUkzQixzQkFBc0I7dUVBSnJCLDBCQUEwQixXQUExQiwwQkFBMEIsbUJBRGIsTUFBTTs7aUZBQ25CLDBCQUEwQjtjQUR0QyxVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztzQkFLN0IsTUFBTTt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBvZiwgY2F0Y2hFcnJvciwgbWFwLCBwbHVjayB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBLOHNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2s4cy1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9qZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2J1c2luZXNzL3Jlc291cmNlLXNlbGVjdC9wcm9qZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVBJX0dBVEVXQVkgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2NvbnN0YW50cy9jb25zdGFudHMnO1xuaW1wb3J0IHsgVE9LRU5fR0xPQkFMX05BTUVTUEFDRSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvY29uc3RhbnRzL3Rva2Vucyc7XG5pbXBvcnQge1xuICBLdWJlcm5ldGVzUmVzb3VyY2UsXG4gIEt1YmVybmV0ZXNSZXNvdXJjZUxpc3QsXG4gIE9iamVjdE1ldGEsXG4gIFZhbHVlT2YsXG4gIHB1Ymxpc2hSZWYsXG4gIENPTU1PTl9SRVNPVVJDRV9ERUZJTklUSU9OUyxcbiAgUHJvamVjdCxcbiAgUHJvZHVjdEVudHJ5LFxufSBmcm9tICcuLi8uLi8uLi9jb3JlL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgVHJhbnNsYXRlS2V5IH0gZnJvbSAnLi4vLi4vLi4vdHJhbnNsYXRlL3R5cGVzJztcblxuLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgY29tbW9uLWxheW91dFxuICovXG5cbmNvbnN0IElURU1TID0gJ2l0ZW1zJztcbmludGVyZmFjZSBDbHVzdGVyIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgbWV0YWRhdGE/OiBPYmplY3RNZXRhICYge1xuICAgIGZpbmFsaXplcnM/OiBzdHJpbmdbXTtcbiAgfTtcbiAgZGV0YWlscz86IHtcbiAgICBncm91cDogc3RyaW5nO1xuICAgIGtpbmQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdWlkOiBzdHJpbmc7XG4gIH07XG59XG5cbmludGVyZmFjZSBOYW1lc3BhY2UgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBzdGF0dXM/OiB7XG4gICAgcGhhc2U/OiBzdHJpbmc7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdGlvbiBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIGtpbmQ6ICdQcm9kdWN0aW9uJztcbiAgc3BlYzoge1xuICAgIGdyb3VwOiAncHJvZHVjdGlvbicgfCAnb3RoZXJzJztcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIGxvZ29VUkw/OiBzdHJpbmc7XG4gICAgdGl0bGU6IFRyYW5zbGF0ZUtleTtcbiAgICB2ZXJzaW9uPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIG9wZW5JbkJsYW5rPzogYm9vbGVhbjtcbiAgICBob21lcGFnZTogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5hbWVzcGFjZUlkZW50aXR5IHtcbiAgY2x1c3Rlcjogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBQcm9kdWN0RW50cnlOYW1lID0ge1xuICBBQ1A6ICdhY3AnLFxuICBEZXZPcHM6ICdkZXZvcHMnLFxuICBBU006ICdhc20nLFxuICBBTUw6ICdhbWwnLFxuICBBQU06ICdlLWFhbScsXG4gIFNFQ1VSSVRZOiAnc2VjdXJpdHknLFxuICBQTEFURk9STTogJ3BsYXRmb3JtJyxcbiAgUFJPSkVDVDogJ3Byb2plY3QnLFxuICBEQVRBX1NFUlZJQ0VTOiAnZGF0YXNlcnZpY2VzJyxcbiAgQ0VDOiAnY2VjJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFByb2R1Y3RFbnRyeU5hbWUgPSBWYWx1ZU9mPHR5cGVvZiBQcm9kdWN0RW50cnlOYW1lPjtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDb21tb25MYXlvdXRDb250ZXh0U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgazhzQXBpOiBLOHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICBASW5qZWN0KFRPS0VOX0dMT0JBTF9OQU1FU1BBQ0UpIHByaXZhdGUgcmVhZG9ubHkgZ2xvYmFsTmFtZXNwYWNlOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsXG4gICkge31cblxuICBnZXRQcm9qZWN0cygpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0U2VydmljZS5nZXRQcm9qZWN0cyhudWxsLCBmYWxzZSk7XG4gIH1cblxuICBnZXRQcm9kdWN0cygpOiBPYnNlcnZhYmxlPFByb2R1Y3RFbnRyeVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuazhzQXBpXG4gICAgICAuZ2V0R2xvYmFsUmVzb3VyY2VMaXN0PFByb2R1Y3RFbnRyeT4oe1xuICAgICAgICBkZWZpbml0aW9uOiBDT01NT05fUkVTT1VSQ0VfREVGSU5JVElPTlMuUFJPRFVDVF9FTlRSWSxcbiAgICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgICBsaW1pdDogJzAnLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5waXBlKHBsdWNrKCdpdGVtcycpKTtcbiAgfVxuXG4gIGdldFByb2R1Y3QobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9kdWN0RW50cnk+IHtcbiAgICByZXR1cm4gdGhpcy5rOHNBcGlcbiAgICAgIC5nZXRHbG9iYWxSZXNvdXJjZTxQcm9kdWN0RW50cnk+KHtcbiAgICAgICAgZGVmaW5pdGlvbjogQ09NTU9OX1JFU09VUkNFX0RFRklOSVRJT05TLlBST0RVQ1RfRU5UUlksXG4gICAgICAgIG5hbWUsXG4gICAgICB9KVxuICAgICAgLnBpcGUocHVibGlzaFJlZigpKTtcbiAgfVxuXG4gIGdldFByb2plY3RDbHVzdGVycyhfcHJvamVjdE5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8S3ViZXJuZXRlc1Jlc291cmNlW10+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgLmdldDxQcm9qZWN0PihcbiAgICAgICAgICBgJHtBUElfR0FURVdBWX0vYXBpcy9hdXRoLmFsYXVkYS5pby92MS9wcm9qZWN0cy8ke19wcm9qZWN0TmFtZX1gLFxuICAgICAgICApXG4gICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2YobnVsbCBhcyBQcm9qZWN0KSkpLFxuICAgICAgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgIC5nZXQoXG4gICAgICAgICAgYCR7QVBJX0dBVEVXQVl9L2FwaXMvY2x1c3RlcnJlZ2lzdHJ5Lms4cy5pby92MWFscGhhMS9uYW1lc3BhY2VzLyR7dGhpcy5nbG9iYWxOYW1lc3BhY2V9L2NsdXN0ZXJzYCxcbiAgICAgICAgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBwbHVjaygnaXRlbXMnKSxcbiAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKFtdKSksXG4gICAgICAgICksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3Byb2plY3QsIGNsdXN0ZXJzXSkgPT4ge1xuICAgICAgICBjb25zdCBjbHVzdGVyUmVmcyA9IHByb2plY3Quc3BlYy5jbHVzdGVycztcbiAgICAgICAgcmV0dXJuIChjbHVzdGVycyBhcyBDbHVzdGVyW10pLmZpbHRlcihjID0+XG4gICAgICAgICAgY2x1c3RlclJlZnMuZmluZChyZWYgPT4gcmVmLm5hbWUgPT09IGMubWV0YWRhdGEubmFtZSksXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoW10pKSxcbiAgICApO1xuICB9XG5cbiAgZ2V0Q2x1c3Rlck5hbWVzcGFjZXMoXG4gICAgX3Byb2plY3ROYW1lOiBzdHJpbmcsXG4gICAgX2NsdXN0ZXJOYW1lOiBzdHJpbmcsXG4gICk6IE9ic2VydmFibGU8S3ViZXJuZXRlc1Jlc291cmNlW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZ2V0PEt1YmVybmV0ZXNSZXNvdXJjZUxpc3Q8TmFtZXNwYWNlPj4oXG4gICAgICAgIGAke0FQSV9HQVRFV0FZfS9hdXRoL3YxL3Byb2plY3RzLyR7X3Byb2plY3ROYW1lfS9jbHVzdGVycy8ke19jbHVzdGVyTmFtZX0vbmFtZXNwYWNlc2AsXG4gICAgICApXG4gICAgICAucGlwZShwbHVjayhJVEVNUykpO1xuICB9XG59XG4iXX0=
80
+ }], () => [{ type: i1.K8sApiService }, { type: i2.HttpClient }, { type: i3.ProjectService }], null); })();
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL3BhZ2Utc2NhZmZvbGQvcGFnZS1oZWFkZXIvY29tbW9uLWxheW91dC9jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLGFBQWEsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDaEUsT0FBTyxFQUtMLFVBQVUsRUFDViwyQkFBMkIsR0FHNUIsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFHbEM7OztHQUdHO0FBRUgsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDO0FBc0N0QixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixHQUFHLEVBQUUsS0FBSztJQUNWLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEdBQUcsRUFBRSxLQUFLO0lBQ1YsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsT0FBTztJQUNaLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLGFBQWEsRUFBRSxjQUFjO0lBQzdCLEdBQUcsRUFBRSxLQUFLO0NBQ0YsQ0FBQztBQUtYLE1BQU0sT0FBTywwQkFBMEI7SUFDckMsWUFDbUIsTUFBcUIsRUFDckIsVUFBc0IsRUFDdEIsY0FBOEI7UUFGOUIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUM5QyxDQUFDO0lBRUosV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTTthQUNmLHFCQUFxQixDQUFlO1lBQ25DLFVBQVUsRUFBRSwyQkFBMkIsQ0FBQyxhQUFhO1lBQ3JELFdBQVcsRUFBRTtnQkFDWCxLQUFLLEVBQUUsR0FBRzthQUNYO1NBQ0YsQ0FBQzthQUNELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsTUFBTTthQUNmLGlCQUFpQixDQUFlO1lBQy9CLFVBQVUsRUFBRSwyQkFBMkIsQ0FBQyxhQUFhO1lBQ3JELElBQUk7U0FDTCxDQUFDO2FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELGtCQUFrQixDQUFDLFlBQW9CO1FBQ3JDLE9BQU8sYUFBYSxDQUFDO1lBQ25CLElBQUksQ0FBQyxVQUFVO2lCQUNaLEdBQUcsQ0FDRixHQUFHLFdBQVcsb0NBQW9DLFlBQVksRUFBRSxDQUNqRTtpQkFDQSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFlLENBQUMsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxVQUFVO2lCQUNaLEdBQUcsQ0FBa0MsV0FBVyxHQUFHLG1CQUFtQixDQUFDO2lCQUN2RSxJQUFJLENBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUNkLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDekI7U0FDSixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDMUIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDMUMsT0FBUSxRQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUN4QyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUN0RCxDQUFDO1FBQ0osQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVELG9CQUFvQixDQUNsQixZQUFvQixFQUNwQixZQUFvQjtRQUVwQixPQUFPLElBQUksQ0FBQyxVQUFVO2FBQ25CLEdBQUcsQ0FFRixHQUFHLFdBQVcscUJBQXFCLFlBQVksYUFBYSxZQUFZLGFBQWEsQ0FBQzthQUN2RixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEIsQ0FBQzsyRkFoRVUsMEJBQTBCO3VFQUExQiwwQkFBMEIsV0FBMUIsMEJBQTBCLG1CQURiLE1BQU07O2lGQUNuQiwwQkFBMEI7Y0FEdEMsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBvZiwgY2F0Y2hFcnJvciwgbWFwLCBwbHVjayB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBLOHNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2s4cy1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9qZWN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2J1c2luZXNzL3Jlc291cmNlLXNlbGVjdC9wcm9qZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVBJX0dBVEVXQVkgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2NvbnN0YW50cy9jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgS3ViZXJuZXRlc1Jlc291cmNlLFxuICBLdWJlcm5ldGVzUmVzb3VyY2VMaXN0LFxuICBPYmplY3RNZXRhLFxuICBWYWx1ZU9mLFxuICBwdWJsaXNoUmVmLFxuICBDT01NT05fUkVTT1VSQ0VfREVGSU5JVElPTlMsXG4gIFByb2plY3QsXG4gIFByb2R1Y3RFbnRyeSxcbn0gZnJvbSAnLi4vLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFRyYW5zbGF0ZUtleSB9IGZyb20gJy4uLy4uLy4uL3RyYW5zbGF0ZS90eXBlcyc7XG5cbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIGNvbW1vbi1sYXlvdXRcbiAqL1xuXG5jb25zdCBJVEVNUyA9ICdpdGVtcyc7XG5pbnRlcmZhY2UgQ2x1c3RlciBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZSB7XG4gIG1ldGFkYXRhPzogT2JqZWN0TWV0YSAmIHtcbiAgICBmaW5hbGl6ZXJzPzogc3RyaW5nW107XG4gIH07XG4gIGRldGFpbHM/OiB7XG4gICAgZ3JvdXA6IHN0cmluZztcbiAgICBraW5kOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHVpZDogc3RyaW5nO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgTmFtZXNwYWNlIGV4dGVuZHMgS3ViZXJuZXRlc1Jlc291cmNlIHtcbiAgc3RhdHVzPzoge1xuICAgIHBoYXNlPzogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3Rpb24gZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2Uge1xuICBraW5kOiAnUHJvZHVjdGlvbic7XG4gIHNwZWM6IHtcbiAgICBncm91cDogJ3Byb2R1Y3Rpb24nIHwgJ290aGVycyc7XG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICBsb2dvVVJMPzogc3RyaW5nO1xuICAgIHRpdGxlOiBUcmFuc2xhdGVLZXk7XG4gICAgdmVyc2lvbj86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBvcGVuSW5CbGFuaz86IGJvb2xlYW47XG4gICAgaG9tZXBhZ2U6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOYW1lc3BhY2VJZGVudGl0eSB7XG4gIGNsdXN0ZXI6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgUHJvZHVjdEVudHJ5TmFtZSA9IHtcbiAgQUNQOiAnYWNwJyxcbiAgRGV2T3BzOiAnZGV2b3BzJyxcbiAgQVNNOiAnYXNtJyxcbiAgQU1MOiAnYW1sJyxcbiAgQUFNOiAnZS1hYW0nLFxuICBTRUNVUklUWTogJ3NlY3VyaXR5JyxcbiAgUExBVEZPUk06ICdwbGF0Zm9ybScsXG4gIFBST0pFQ1Q6ICdwcm9qZWN0JyxcbiAgREFUQV9TRVJWSUNFUzogJ2RhdGFzZXJ2aWNlcycsXG4gIENFQzogJ2NlYycsXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgdHlwZSBQcm9kdWN0RW50cnlOYW1lID0gVmFsdWVPZjx0eXBlb2YgUHJvZHVjdEVudHJ5TmFtZT47XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ29tbW9uTGF5b3V0Q29udGV4dFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGs4c0FwaTogSzhzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsXG4gICkge31cblxuICBnZXRQcm9qZWN0cygpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0U2VydmljZS5nZXRQcm9qZWN0cyhudWxsLCBmYWxzZSk7XG4gIH1cblxuICBnZXRQcm9kdWN0cygpOiBPYnNlcnZhYmxlPFByb2R1Y3RFbnRyeVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuazhzQXBpXG4gICAgICAuZ2V0R2xvYmFsUmVzb3VyY2VMaXN0PFByb2R1Y3RFbnRyeT4oe1xuICAgICAgICBkZWZpbml0aW9uOiBDT01NT05fUkVTT1VSQ0VfREVGSU5JVElPTlMuUFJPRFVDVF9FTlRSWSxcbiAgICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgICBsaW1pdDogJzAnLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5waXBlKHBsdWNrKCdpdGVtcycpKTtcbiAgfVxuXG4gIGdldFByb2R1Y3QobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9kdWN0RW50cnk+IHtcbiAgICByZXR1cm4gdGhpcy5rOHNBcGlcbiAgICAgIC5nZXRHbG9iYWxSZXNvdXJjZTxQcm9kdWN0RW50cnk+KHtcbiAgICAgICAgZGVmaW5pdGlvbjogQ09NTU9OX1JFU09VUkNFX0RFRklOSVRJT05TLlBST0RVQ1RfRU5UUlksXG4gICAgICAgIG5hbWUsXG4gICAgICB9KVxuICAgICAgLnBpcGUocHVibGlzaFJlZigpKTtcbiAgfVxuXG4gIGdldFByb2plY3RDbHVzdGVycyhfcHJvamVjdE5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8S3ViZXJuZXRlc1Jlc291cmNlW10+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgLmdldDxQcm9qZWN0PihcbiAgICAgICAgICBgJHtBUElfR0FURVdBWX0vYXBpcy9hdXRoLmFsYXVkYS5pby92MS9wcm9qZWN0cy8ke19wcm9qZWN0TmFtZX1gLFxuICAgICAgICApXG4gICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKCkgPT4gb2YobnVsbCBhcyBQcm9qZWN0KSkpLFxuICAgICAgdGhpcy5odHRwQ2xpZW50XG4gICAgICAgIC5nZXQ8S3ViZXJuZXRlc1Jlc291cmNlTGlzdDxDbHVzdGVyPj4oQVBJX0dBVEVXQVkgKyAnL2F1dGgvdjEvY2x1c3RlcnMnKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBwbHVjaygnaXRlbXMnKSxcbiAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKFtdKSksXG4gICAgICAgICksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3Byb2plY3QsIGNsdXN0ZXJzXSkgPT4ge1xuICAgICAgICBjb25zdCBjbHVzdGVyUmVmcyA9IHByb2plY3Quc3BlYy5jbHVzdGVycztcbiAgICAgICAgcmV0dXJuIChjbHVzdGVycyBhcyBDbHVzdGVyW10pLmZpbHRlcihjID0+XG4gICAgICAgICAgY2x1c3RlclJlZnMuZmluZChyZWYgPT4gcmVmLm5hbWUgPT09IGMubWV0YWRhdGEubmFtZSksXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoW10pKSxcbiAgICApO1xuICB9XG5cbiAgZ2V0Q2x1c3Rlck5hbWVzcGFjZXMoXG4gICAgX3Byb2plY3ROYW1lOiBzdHJpbmcsXG4gICAgX2NsdXN0ZXJOYW1lOiBzdHJpbmcsXG4gICk6IE9ic2VydmFibGU8S3ViZXJuZXRlc1Jlc291cmNlW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZ2V0PFxuICAgICAgICBLdWJlcm5ldGVzUmVzb3VyY2VMaXN0PE5hbWVzcGFjZT5cbiAgICAgID4oYCR7QVBJX0dBVEVXQVl9L2F1dGgvdjEvcHJvamVjdHMvJHtfcHJvamVjdE5hbWV9L2NsdXN0ZXJzLyR7X2NsdXN0ZXJOYW1lfS9uYW1lc3BhY2VzYClcbiAgICAgIC5waXBlKHBsdWNrKElURU1TKSk7XG4gIH1cbn1cbiJdfQ==