ca-components 1.0.9 → 1.0.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 (58) hide show
  1. package/esm2022/lib/components/ca-activity-log-list/ca-activity-log-list.component.mjs +21 -10
  2. package/esm2022/lib/components/ca-activity-log-list/models/activity-log-item-description.model.mjs +1 -1
  3. package/esm2022/lib/components/ca-chart/ca-chart.component.mjs +56 -72
  4. package/esm2022/lib/components/ca-chart/config/ca-base-chart-dataset.config.mjs +2 -3
  5. package/esm2022/lib/components/ca-chart/enums/chart-colors.enum.mjs +2 -0
  6. package/esm2022/lib/components/ca-chart/enums/{chart-event-properties-enum.mjs → chart-event-properties.enum.mjs} +1 -1
  7. package/esm2022/lib/components/ca-chart/enums/{chart-event-types-enum.mjs → chart-event-types.enum.mjs} +1 -1
  8. package/esm2022/lib/components/ca-chart/enums/chart-images.enum.mjs +2 -0
  9. package/esm2022/lib/components/ca-chart/enums/{chart-plugin-ids-enum.mjs → chart-plugin-ids.enum.mjs} +1 -1
  10. package/esm2022/lib/components/ca-chart/enums/chart-types.enum.mjs +2 -0
  11. package/esm2022/lib/components/ca-chart/enums/{cubic-interpolation-mode-enum.mjs → cubic-interpolation-mode.enum.mjs} +1 -1
  12. package/esm2022/lib/components/ca-chart/enums/index.mjs +8 -7
  13. package/esm2022/lib/components/ca-chart/models/chart-config.model.mjs +2 -0
  14. package/esm2022/lib/components/ca-chart/models/index.mjs +2 -1
  15. package/esm2022/lib/components/ca-chart/utils/guards/chart-type.guard.mjs +2 -3
  16. package/esm2022/lib/components/ca-chart/utils/helpers/chart.helper.mjs +4 -5
  17. package/esm2022/lib/components/ca-filters/ca-filter.component.mjs +6 -4
  18. package/esm2022/lib/components/ca-filters/components/ca-location-filter/ca-location-filter.component.mjs +8 -12
  19. package/esm2022/lib/components/ca-filters/utils/constants/directive.constants.mjs +25 -1
  20. package/esm2022/lib/components/ca-input-address-dropdown/ca-input-address-dropdown.component.mjs +4 -2
  21. package/esm2022/lib/components/ca-logo-change/ca-logo-change.component.mjs +3 -3
  22. package/esm2022/lib/components/ca-period-content/ca-period-content.component.mjs +2 -2
  23. package/esm2022/lib/components/ca-right-side-panel/ca-right-side-panel.component.mjs +27 -9
  24. package/esm2022/lib/components/ca-right-side-panel/components/ca-right-side-panel-menu/ca-right-side-panel-menu.component.mjs +4 -4
  25. package/esm2022/lib/components/ca-right-side-panel/components/ca-right-side-panel-top-bar/ca-right-side-panel-top-bar.component.mjs +42 -7
  26. package/esm2022/lib/components/ca-right-side-panel/config/ca-right-side-panel.config.mjs +2 -2
  27. package/esm2022/lib/components/ca-right-side-panel/models/activity-log-filter-params.model.mjs +1 -1
  28. package/fesm2022/ca-components.mjs +189 -133
  29. package/fesm2022/ca-components.mjs.map +1 -1
  30. package/lib/components/ca-activity-log-list/ca-activity-log-list.component.d.ts +8 -4
  31. package/lib/components/ca-activity-log-list/models/activity-log-item-description.model.d.ts +3 -3
  32. package/lib/components/ca-chart/ca-chart.component.d.ts +5 -10
  33. package/lib/components/ca-chart/enums/{chart-colors-enum.d.ts → chart-colors.enum.d.ts} +1 -1
  34. package/lib/components/ca-chart/enums/chart-images.enum.d.ts +7 -0
  35. package/lib/components/ca-chart/enums/{chart-types-enum.d.ts → chart-types.enum.d.ts} +1 -1
  36. package/lib/components/ca-chart/enums/index.d.ts +7 -6
  37. package/lib/components/ca-chart/models/chart-config.model.d.ts +10 -0
  38. package/lib/components/ca-chart/models/index.d.ts +1 -0
  39. package/lib/components/ca-filters/ca-filter.component.d.ts +3 -1
  40. package/lib/components/ca-filters/components/ca-location-filter/ca-location-filter.component.d.ts +4 -2
  41. package/lib/components/ca-filters/utils/constants/directive.constants.d.ts +2 -0
  42. package/lib/components/ca-input-address-dropdown/ca-input-address-dropdown.component.d.ts +2 -2
  43. package/lib/components/ca-right-side-panel/ca-right-side-panel.component.d.ts +8 -5
  44. package/lib/components/ca-right-side-panel/components/ca-right-side-panel-menu/ca-right-side-panel-menu.component.d.ts +1 -1
  45. package/lib/components/ca-right-side-panel/components/ca-right-side-panel-top-bar/ca-right-side-panel-top-bar.component.d.ts +3 -1
  46. package/lib/components/ca-right-side-panel/models/activity-log-filter-params.model.d.ts +2 -1
  47. package/package.json +1 -1
  48. package/src/assets/ca-components/svg/chart/chart_no_data_green.svg +242 -0
  49. package/src/assets/ca-components/svg/chart/chart_no_data_mixed.svg +62 -0
  50. package/src/assets/ca-components/svg/chart/chart_no_data_pay.svg +115 -0
  51. package/src/assets/ca-components/svg/chart/chart_no_data_stacked.svg +225 -0
  52. package/src/assets/ca-components/svg/chart/chart_no_data_yellow.svg +51 -0
  53. package/esm2022/lib/components/ca-chart/enums/chart-colors-enum.mjs +0 -7
  54. package/esm2022/lib/components/ca-chart/enums/chart-types-enum.mjs +0 -7
  55. /package/lib/components/ca-chart/enums/{chart-event-properties-enum.d.ts → chart-event-properties.enum.d.ts} +0 -0
  56. /package/lib/components/ca-chart/enums/{chart-event-types-enum.d.ts → chart-event-types.enum.d.ts} +0 -0
  57. /package/lib/components/ca-chart/enums/{chart-plugin-ids-enum.d.ts → chart-plugin-ids.enum.d.ts} +0 -0
  58. /package/lib/components/ca-chart/enums/{cubic-interpolation-mode-enum.d.ts → cubic-interpolation-mode.enum.d.ts} +0 -0
@@ -21,21 +21,27 @@ export class CaRightSidePanelComponent {
21
21
  dateTo: null,
22
22
  search: null,
23
23
  };
24
- this.activityLogFilterParams = new EventEmitter();
25
24
  this.selectedTab = RightSidePanelCurrentTab.PERSONAL;
26
- this.isPinned = false;
27
25
  this.SelectedModule = SelectedModule;
26
+ this.resetFilters = false;
27
+ this.activityLogFilterParams = new EventEmitter();
28
+ this.selectedNavModule = new EventEmitter();
29
+ this.isSidePanelPinned = new EventEmitter();
28
30
  }
29
31
  selectedNavEvent(selectedNav) {
30
32
  if (!selectedNav)
31
33
  this.selectedTab = RightSidePanelCurrentTab.PERSONAL;
32
- this.selectedNav = selectedNav;
34
+ if (this.selectedNav !== selectedNav) {
35
+ this.selectedTab = RightSidePanelCurrentTab.PERSONAL;
36
+ this.selectedNav = selectedNav;
37
+ this.selectedNavModule.emit(selectedNav);
38
+ }
33
39
  }
34
40
  selectedTabEvent(selectedTab) {
35
41
  this.selectedTab = selectedTab;
36
42
  }
37
43
  pinSidebarEvent(isPinned) {
38
- this.isPinned = isPinned;
44
+ this.isSidePanelPinned.emit(isPinned);
39
45
  }
40
46
  setActivityLogFilterParams(activityLogFilterParams) {
41
47
  this._activityLogFilterParams.companyUserIds =
@@ -49,27 +55,35 @@ export class CaRightSidePanelComponent {
49
55
  activityLogFilterParams.userFilterType;
50
56
  this._activityLogFilterParams.dateFrom = activityLogFilterParams.dateFrom;
51
57
  this._activityLogFilterParams.dateTo = activityLogFilterParams.dateTo;
58
+ this._activityLogFilterParams.reloadFilters =
59
+ activityLogFilterParams.reloadFilters;
52
60
  this.activityLogFilterParams.emit(this._activityLogFilterParams);
53
61
  }
54
62
  searchEvent(searchText) {
55
63
  this._activityLogFilterParams.search = searchText;
56
64
  this.activityLogFilterParams.emit(this._activityLogFilterParams);
57
65
  }
66
+ resetFiltersEvent(resetFilters) {
67
+ this.resetFilters = resetFilters;
68
+ setTimeout(() => {
69
+ this.resetFilters = false;
70
+ });
71
+ }
58
72
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CaRightSidePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
59
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CaRightSidePanelComponent, isStandalone: true, selector: "lib-ca-right-side-panel", inputs: { data: "data", usersFilter: "usersFilter", modulesFilter: "modulesFilter", actionsFilter: "actionsFilter" }, outputs: { activityLogFilterParams: "activityLogFilterParams" }, ngImport: i0, template: "<div class=\"side-panel-container-box\" [class.with-side-bar]=\"isPinned\">\n <div\n class=\"side-panel-container d-flex flex-column\"\n [class.side-panel-pinned]=\"isPinned\"\n >\n <ng-container *ngIf=\"selectedNav\">\n <lib-ca-right-side-panel-top-bar\n [selectedModule]=\"selectedNav\"\n [usersFilter]=\"usersFilter\"\n [modulesFilter]=\"modulesFilter\"\n [actionsFilter]=\"actionsFilter\"\n (selectedTab)=\"selectedTabEvent($event)\"\n (activityLogFilterParams)=\"setActivityLogFilterParams($event)\"\n ></lib-ca-right-side-panel-top-bar>\n </ng-container>\n\n <ng-container *ngIf=\"selectedNav == SelectedModule.ACTIVITY_LOG\">\n <lib-ca-activity-log-list\n [activityLogList]=\"data\"\n [selectedTab]=\"selectedTab\"\n (searchText)=\"searchEvent($event)\"\n ></lib-ca-activity-log-list>\n </ng-container>\n\n <lib-ca-right-side-panel-menu\n (selectedNav)=\"selectedNavEvent($event)\"\n (isPinned)=\"pinSidebarEvent($event)\"\n ></lib-ca-right-side-panel-menu>\n </div>\n</div>\n", styles: [".side-panel-container-box.with-side-bar{margin-right:366px}.side-panel-container-box .side-panel-container{position:fixed;bottom:12px;right:12px;gap:4px;max-height:calc(100vh - 24px)}.side-panel-container-box .side-panel-container.side-panel-pinned{position:absolute;width:350px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: HttpClientModule }, { kind: "component", type:
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CaRightSidePanelComponent, isStandalone: true, selector: "ca-right-side-panel", inputs: { data: "data", usersFilter: "usersFilter", modulesFilter: "modulesFilter", actionsFilter: "actionsFilter" }, outputs: { activityLogFilterParams: "activityLogFilterParams", selectedNavModule: "selectedNavModule", isSidePanelPinned: "isSidePanelPinned" }, ngImport: i0, template: "<div class=\"side-panel-container-box\">\n <div\n class=\"side-panel-container d-flex flex-column\"\n >\n <ng-container *ngIf=\"selectedNav === SelectedModule.ACTIVITY_LOG\">\n <ca-right-side-panel-top-bar\n [selectedModule]=\"selectedNav\"\n [usersFilter]=\"usersFilter\"\n [modulesFilter]=\"modulesFilter\"\n [actionsFilter]=\"actionsFilter\"\n [resetFilters]=\"resetFilters\"\n (selectedTab)=\"selectedTabEvent($event)\"\n (activityLogFilterParams)=\"setActivityLogFilterParams($event)\"\n ></ca-right-side-panel-top-bar>\n <ca-activity-log-list\n [activityLogList]=\"data\"\n [selectedTab]=\"selectedTab\"\n (searchText)=\"searchEvent($event)\"\n (resetFilters)=\"resetFiltersEvent($event)\"\n ></ca-activity-log-list>\n </ng-container>\n\n <ca-right-side-panel-menu\n (selectedNav)=\"selectedNavEvent($event)\"\n (isPinned)=\"pinSidebarEvent($event)\"\n ></ca-right-side-panel-menu>\n </div>\n</div>\n", styles: [".side-panel-container-box .side-panel-container{position:fixed;bottom:12px;right:12px;gap:4px;max-height:calc(100vh - 24px);z-index:999}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: HttpClientModule }, { kind: "component", type:
60
74
  // Components
61
- CaRightSidePanelMenuComponent, selector: "lib-ca-right-side-panel-menu", outputs: ["selectedNav", "isPinned"] }, { kind: "component", type: CaActivityLogListComponent, selector: "lib-ca-activity-log-list", inputs: ["activityLogList", "selectedTab"], outputs: ["searchText"] }, { kind: "component", type: CaRightSidePanelTopBarComponent, selector: "lib-ca-right-side-panel-top-bar", inputs: ["selectedModule", "usersFilter", "modulesFilter", "actionsFilter"], outputs: ["selectedTab", "activityLogFilterParams"] }] }); }
75
+ CaRightSidePanelMenuComponent, selector: "ca-right-side-panel-menu", outputs: ["selectedNav", "isPinned"] }, { kind: "component", type: CaActivityLogListComponent, selector: "ca-activity-log-list", inputs: ["activityLogList", "selectedTab"], outputs: ["searchText", "resetFilters"] }, { kind: "component", type: CaRightSidePanelTopBarComponent, selector: "ca-right-side-panel-top-bar", inputs: ["selectedModule", "usersFilter", "modulesFilter", "actionsFilter", "resetFilters"], outputs: ["selectedTab", "activityLogFilterParams"] }] }); }
62
76
  }
63
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CaRightSidePanelComponent, decorators: [{
64
78
  type: Component,
65
- args: [{ selector: 'lib-ca-right-side-panel', standalone: true, imports: [
79
+ args: [{ selector: 'ca-right-side-panel', standalone: true, imports: [
66
80
  CommonModule,
67
81
  HttpClientModule,
68
82
  // Components
69
83
  CaRightSidePanelMenuComponent,
70
84
  CaActivityLogListComponent,
71
85
  CaRightSidePanelTopBarComponent,
72
- ], template: "<div class=\"side-panel-container-box\" [class.with-side-bar]=\"isPinned\">\n <div\n class=\"side-panel-container d-flex flex-column\"\n [class.side-panel-pinned]=\"isPinned\"\n >\n <ng-container *ngIf=\"selectedNav\">\n <lib-ca-right-side-panel-top-bar\n [selectedModule]=\"selectedNav\"\n [usersFilter]=\"usersFilter\"\n [modulesFilter]=\"modulesFilter\"\n [actionsFilter]=\"actionsFilter\"\n (selectedTab)=\"selectedTabEvent($event)\"\n (activityLogFilterParams)=\"setActivityLogFilterParams($event)\"\n ></lib-ca-right-side-panel-top-bar>\n </ng-container>\n\n <ng-container *ngIf=\"selectedNav == SelectedModule.ACTIVITY_LOG\">\n <lib-ca-activity-log-list\n [activityLogList]=\"data\"\n [selectedTab]=\"selectedTab\"\n (searchText)=\"searchEvent($event)\"\n ></lib-ca-activity-log-list>\n </ng-container>\n\n <lib-ca-right-side-panel-menu\n (selectedNav)=\"selectedNavEvent($event)\"\n (isPinned)=\"pinSidebarEvent($event)\"\n ></lib-ca-right-side-panel-menu>\n </div>\n</div>\n", styles: [".side-panel-container-box.with-side-bar{margin-right:366px}.side-panel-container-box .side-panel-container{position:fixed;bottom:12px;right:12px;gap:4px;max-height:calc(100vh - 24px)}.side-panel-container-box .side-panel-container.side-panel-pinned{position:absolute;width:350px}\n"] }]
86
+ ], template: "<div class=\"side-panel-container-box\">\n <div\n class=\"side-panel-container d-flex flex-column\"\n >\n <ng-container *ngIf=\"selectedNav === SelectedModule.ACTIVITY_LOG\">\n <ca-right-side-panel-top-bar\n [selectedModule]=\"selectedNav\"\n [usersFilter]=\"usersFilter\"\n [modulesFilter]=\"modulesFilter\"\n [actionsFilter]=\"actionsFilter\"\n [resetFilters]=\"resetFilters\"\n (selectedTab)=\"selectedTabEvent($event)\"\n (activityLogFilterParams)=\"setActivityLogFilterParams($event)\"\n ></ca-right-side-panel-top-bar>\n <ca-activity-log-list\n [activityLogList]=\"data\"\n [selectedTab]=\"selectedTab\"\n (searchText)=\"searchEvent($event)\"\n (resetFilters)=\"resetFiltersEvent($event)\"\n ></ca-activity-log-list>\n </ng-container>\n\n <ca-right-side-panel-menu\n (selectedNav)=\"selectedNavEvent($event)\"\n (isPinned)=\"pinSidebarEvent($event)\"\n ></ca-right-side-panel-menu>\n </div>\n</div>\n", styles: [".side-panel-container-box .side-panel-container{position:fixed;bottom:12px;right:12px;gap:4px;max-height:calc(100vh - 24px);z-index:999}\n"] }]
73
87
  }], propDecorators: { data: [{
74
88
  type: Input
75
89
  }], usersFilter: [{
@@ -80,5 +94,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
80
94
  type: Input
81
95
  }], activityLogFilterParams: [{
82
96
  type: Output
97
+ }], selectedNavModule: [{
98
+ type: Output
99
+ }], isSidePanelPinned: [{
100
+ type: Output
83
101
  }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtcmlnaHQtc2lkZS1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1yaWdodC1zaWRlLXBhbmVsL2NhLXJpZ2h0LXNpZGUtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtcmlnaHQtc2lkZS1wYW5lbC9jYS1yaWdodC1zaWRlLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLGFBQWE7QUFDYixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUN6SCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNwRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQVdqSSxRQUFRO0FBQ1IsT0FBTyxFQUNMLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNmLE1BQU0sU0FBUyxDQUFDOzs7QUFpQmpCLE1BQU0sT0FBTyx5QkFBeUI7SUFmdEM7UUFnQlMsNkJBQXdCLEdBQTRCO1lBQ3pELGNBQWMsRUFBRSxFQUFFO1lBQ2xCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLHFCQUFxQixFQUFFLEVBQUU7WUFDekIsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFVBQVU7WUFDcEMsY0FBYyxFQUFFLHdCQUF3QixDQUFDLFFBQVE7WUFDakQsUUFBUSxFQUFFLElBQUk7WUFDZCxNQUFNLEVBQUUsSUFBSTtZQUNaLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQztRQU9RLDRCQUF1QixHQUMvQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR2QsZ0JBQVcsR0FDaEIsd0JBQXdCLENBQUMsUUFBUSxDQUFDO1FBQzdCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsbUJBQWMsR0FBRyxjQUFjLENBQUM7S0FvQ3hDO0lBbENRLGdCQUFnQixDQUFDLFdBQTJCO1FBQ2pELElBQUksQ0FBQyxXQUFXO1lBQUUsSUFBSSxDQUFDLFdBQVcsR0FBRyx3QkFBd0IsQ0FBQyxRQUFRLENBQUM7UUFDdkUsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVNLGdCQUFnQixDQUFDLFdBQXFDO1FBQzNELElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxlQUFlLENBQUMsUUFBaUI7UUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVNLDBCQUEwQixDQUMvQix1QkFBZ0Q7UUFFaEQsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGNBQWM7WUFDMUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDO1FBQ3pDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZO1lBQ3hDLHVCQUF1QixDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsd0JBQXdCLENBQUMscUJBQXFCO1lBQ2pELHVCQUF1QixDQUFDLHFCQUFxQixDQUFDO1FBQ2hELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxDQUFDO1FBQ2xFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxjQUFjO1lBQzFDLHVCQUF1QixDQUFDLGNBQWMsQ0FBQztRQUN6QyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxHQUFHLHVCQUF1QixDQUFDLFFBQVEsQ0FBQztRQUMxRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxHQUFHLHVCQUF1QixDQUFDLE1BQU0sQ0FBQztRQUN0RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTSxXQUFXLENBQUMsVUFBa0I7UUFDbkMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUM7UUFDbEQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUNuRSxDQUFDOytHQTNEVSx5QkFBeUI7bUdBQXpCLHlCQUF5QiwwUUN4Q3RDLGlsQ0E4QkEsa1ZEQ0ksWUFBWSxrSUFDWixnQkFBZ0I7Z0JBRWhCLGFBQWE7Z0JBQ2IsNkJBQTZCLCtHQUM3QiwwQkFBMEIsMElBQzFCLCtCQUErQjs7NEZBR3RCLHlCQUF5QjtrQkFmckMsU0FBUzsrQkFDRSx5QkFBeUIsY0FHdkIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUVoQixhQUFhO3dCQUNiLDZCQUE2Qjt3QkFDN0IsMEJBQTBCO3dCQUMxQiwrQkFBK0I7cUJBQ2hDOzhCQWNRLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSx1QkFBdUI7c0JBQWhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIGNvbXBvbmVudHNcbmltcG9ydCB7IENhUmlnaHRTaWRlUGFuZWxNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLXJpZ2h0LXNpZGUtcGFuZWwtbWVudS9jYS1yaWdodC1zaWRlLXBhbmVsLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IENhQWN0aXZpdHlMb2dMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vY2EtYWN0aXZpdHktbG9nLWxpc3QvY2EtYWN0aXZpdHktbG9nLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IENhUmlnaHRTaWRlUGFuZWxUb3BCYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2EtcmlnaHQtc2lkZS1wYW5lbC10b3AtYmFyL2NhLXJpZ2h0LXNpZGUtcGFuZWwtdG9wLWJhci5jb21wb25lbnQnO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IEFjdGl2aXR5TG9nSXRlbSB9IGZyb20gJy4uL2NhLWFjdGl2aXR5LWxvZy1saXN0L21vZGVscyc7XG5pbXBvcnQge1xuICBBY3Rpb25GaWx0ZXJJbnB1dERhdGEsXG4gIEFjdGl2aXR5TG9nRmlsdGVyUGFyYW1zLFxuICBNb2R1bGVGaWx0ZXJJbnB1dERhdGEsXG4gIFVzZXJGaWx0ZXJJbnB1dERhdGEsXG59IGZyb20gJy4vbW9kZWxzJztcblxuLy8gZW51bXNcbmltcG9ydCB7XG4gIEFjdGl2aXR5TG9nU29ydFR5cGUsXG4gIFJpZ2h0U2lkZVBhbmVsQ3VycmVudFRhYixcbiAgU2VsZWN0ZWRNb2R1bGUsXG59IGZyb20gJy4vZW51bXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY2EtcmlnaHQtc2lkZS1wYW5lbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYS1yaWdodC1zaWRlLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2EtcmlnaHQtc2lkZS1wYW5lbC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG5cbiAgICAvLyBDb21wb25lbnRzXG4gICAgQ2FSaWdodFNpZGVQYW5lbE1lbnVDb21wb25lbnQsXG4gICAgQ2FBY3Rpdml0eUxvZ0xpc3RDb21wb25lbnQsXG4gICAgQ2FSaWdodFNpZGVQYW5lbFRvcEJhckNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FSaWdodFNpZGVQYW5lbENvbXBvbmVudCB7XG4gIHB1YmxpYyBfYWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXM6IEFjdGl2aXR5TG9nRmlsdGVyUGFyYW1zID0ge1xuICAgIGNvbXBhbnlVc2VySWRzOiBbXSxcbiAgICBhY3Rpb25Mb2dJZHM6IFtdLFxuICAgIGVudGl0eVR5cGVBY3Rpdml0eUlkczogW10sXG4gICAgc29ydDogQWN0aXZpdHlMb2dTb3J0VHlwZS5ERVNDRU5ESU5HLFxuICAgIHVzZXJGaWx0ZXJUeXBlOiBSaWdodFNpZGVQYW5lbEN1cnJlbnRUYWIuUEVSU09OQUwsXG4gICAgZGF0ZUZyb206IG51bGwsXG4gICAgZGF0ZVRvOiBudWxsLFxuICAgIHNlYXJjaDogbnVsbCxcbiAgfTtcblxuICBASW5wdXQoKSBkYXRhITogQWN0aXZpdHlMb2dJdGVtW107XG4gIEBJbnB1dCgpIHVzZXJzRmlsdGVyITogVXNlckZpbHRlcklucHV0RGF0YVtdO1xuICBASW5wdXQoKSBtb2R1bGVzRmlsdGVyITogTW9kdWxlRmlsdGVySW5wdXREYXRhW107XG4gIEBJbnB1dCgpIGFjdGlvbnNGaWx0ZXIhOiBBY3Rpb25GaWx0ZXJJbnB1dERhdGFbXTtcblxuICBAT3V0cHV0KCkgYWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXM6IEV2ZW50RW1pdHRlcjxBY3Rpdml0eUxvZ0ZpbHRlclBhcmFtcz4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgc2VsZWN0ZWROYXY/OiBTZWxlY3RlZE1vZHVsZTtcbiAgcHVibGljIHNlbGVjdGVkVGFiOiBSaWdodFNpZGVQYW5lbEN1cnJlbnRUYWIgPVxuICAgIFJpZ2h0U2lkZVBhbmVsQ3VycmVudFRhYi5QRVJTT05BTDtcbiAgcHVibGljIGlzUGlubmVkOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBTZWxlY3RlZE1vZHVsZSA9IFNlbGVjdGVkTW9kdWxlO1xuXG4gIHB1YmxpYyBzZWxlY3RlZE5hdkV2ZW50KHNlbGVjdGVkTmF2OiBTZWxlY3RlZE1vZHVsZSk6IHZvaWQge1xuICAgIGlmICghc2VsZWN0ZWROYXYpIHRoaXMuc2VsZWN0ZWRUYWIgPSBSaWdodFNpZGVQYW5lbEN1cnJlbnRUYWIuUEVSU09OQUw7XG4gICAgdGhpcy5zZWxlY3RlZE5hdiA9IHNlbGVjdGVkTmF2O1xuICB9XG5cbiAgcHVibGljIHNlbGVjdGVkVGFiRXZlbnQoc2VsZWN0ZWRUYWI6IFJpZ2h0U2lkZVBhbmVsQ3VycmVudFRhYik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSBzZWxlY3RlZFRhYjtcbiAgfVxuXG4gIHB1YmxpYyBwaW5TaWRlYmFyRXZlbnQoaXNQaW5uZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzUGlubmVkID0gaXNQaW5uZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0QWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXMoXG4gICAgYWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXM6IEFjdGl2aXR5TG9nRmlsdGVyUGFyYW1zXG4gICk6IHZvaWQge1xuICAgIHRoaXMuX2FjdGl2aXR5TG9nRmlsdGVyUGFyYW1zLmNvbXBhbnlVc2VySWRzID1cbiAgICAgIGFjdGl2aXR5TG9nRmlsdGVyUGFyYW1zLmNvbXBhbnlVc2VySWRzO1xuICAgIHRoaXMuX2FjdGl2aXR5TG9nRmlsdGVyUGFyYW1zLmFjdGlvbkxvZ0lkcyA9XG4gICAgICBhY3Rpdml0eUxvZ0ZpbHRlclBhcmFtcy5hY3Rpb25Mb2dJZHM7XG4gICAgdGhpcy5fYWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXMuZW50aXR5VHlwZUFjdGl2aXR5SWRzID1cbiAgICAgIGFjdGl2aXR5TG9nRmlsdGVyUGFyYW1zLmVudGl0eVR5cGVBY3Rpdml0eUlkcztcbiAgICB0aGlzLl9hY3Rpdml0eUxvZ0ZpbHRlclBhcmFtcy5zb3J0ID0gYWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXMuc29ydDtcbiAgICB0aGlzLl9hY3Rpdml0eUxvZ0ZpbHRlclBhcmFtcy51c2VyRmlsdGVyVHlwZSA9XG4gICAgICBhY3Rpdml0eUxvZ0ZpbHRlclBhcmFtcy51c2VyRmlsdGVyVHlwZTtcbiAgICB0aGlzLl9hY3Rpdml0eUxvZ0ZpbHRlclBhcmFtcy5kYXRlRnJvbSA9IGFjdGl2aXR5TG9nRmlsdGVyUGFyYW1zLmRhdGVGcm9tO1xuICAgIHRoaXMuX2FjdGl2aXR5TG9nRmlsdGVyUGFyYW1zLmRhdGVUbyA9IGFjdGl2aXR5TG9nRmlsdGVyUGFyYW1zLmRhdGVUbztcbiAgICB0aGlzLmFjdGl2aXR5TG9nRmlsdGVyUGFyYW1zLmVtaXQodGhpcy5fYWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXMpO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEV2ZW50KHNlYXJjaFRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2FjdGl2aXR5TG9nRmlsdGVyUGFyYW1zLnNlYXJjaCA9IHNlYXJjaFRleHQ7XG4gICAgdGhpcy5hY3Rpdml0eUxvZ0ZpbHRlclBhcmFtcy5lbWl0KHRoaXMuX2FjdGl2aXR5TG9nRmlsdGVyUGFyYW1zKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNpZGUtcGFuZWwtY29udGFpbmVyLWJveFwiIFtjbGFzcy53aXRoLXNpZGUtYmFyXT1cImlzUGlubmVkXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNpZGUtcGFuZWwtY29udGFpbmVyIGQtZmxleCBmbGV4LWNvbHVtblwiXG4gICAgW2NsYXNzLnNpZGUtcGFuZWwtcGlubmVkXT1cImlzUGlubmVkXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZE5hdlwiPlxuICAgICAgPGxpYi1jYS1yaWdodC1zaWRlLXBhbmVsLXRvcC1iYXJcbiAgICAgICAgW3NlbGVjdGVkTW9kdWxlXT1cInNlbGVjdGVkTmF2XCJcbiAgICAgICAgW3VzZXJzRmlsdGVyXT1cInVzZXJzRmlsdGVyXCJcbiAgICAgICAgW21vZHVsZXNGaWx0ZXJdPVwibW9kdWxlc0ZpbHRlclwiXG4gICAgICAgIFthY3Rpb25zRmlsdGVyXT1cImFjdGlvbnNGaWx0ZXJcIlxuICAgICAgICAoc2VsZWN0ZWRUYWIpPVwic2VsZWN0ZWRUYWJFdmVudCgkZXZlbnQpXCJcbiAgICAgICAgKGFjdGl2aXR5TG9nRmlsdGVyUGFyYW1zKT1cInNldEFjdGl2aXR5TG9nRmlsdGVyUGFyYW1zKCRldmVudClcIlxuICAgICAgPjwvbGliLWNhLXJpZ2h0LXNpZGUtcGFuZWwtdG9wLWJhcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZE5hdiA9PSBTZWxlY3RlZE1vZHVsZS5BQ1RJVklUWV9MT0dcIj5cbiAgICAgIDxsaWItY2EtYWN0aXZpdHktbG9nLWxpc3RcbiAgICAgICAgW2FjdGl2aXR5TG9nTGlzdF09XCJkYXRhXCJcbiAgICAgICAgW3NlbGVjdGVkVGFiXT1cInNlbGVjdGVkVGFiXCJcbiAgICAgICAgKHNlYXJjaFRleHQpPVwic2VhcmNoRXZlbnQoJGV2ZW50KVwiXG4gICAgICA+PC9saWItY2EtYWN0aXZpdHktbG9nLWxpc3Q+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bGliLWNhLXJpZ2h0LXNpZGUtcGFuZWwtbWVudVxuICAgICAgKHNlbGVjdGVkTmF2KT1cInNlbGVjdGVkTmF2RXZlbnQoJGV2ZW50KVwiXG4gICAgICAoaXNQaW5uZWQpPVwicGluU2lkZWJhckV2ZW50KCRldmVudClcIlxuICAgID48L2xpYi1jYS1yaWdodC1zaWRlLXBhbmVsLW1lbnU+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtcmlnaHQtc2lkZS1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1yaWdodC1zaWRlLXBhbmVsL2NhLXJpZ2h0LXNpZGUtcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtcmlnaHQtc2lkZS1wYW5lbC9jYS1yaWdodC1zaWRlLXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLGFBQWE7QUFDYixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUN6SCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNwRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQVdqSSxRQUFRO0FBQ1IsT0FBTyxFQUNMLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNmLE1BQU0sU0FBUyxDQUFDOzs7QUFpQmpCLE1BQU0sT0FBTyx5QkFBeUI7SUFmdEM7UUFnQlMsNkJBQXdCLEdBQTRCO1lBQ3pELGNBQWMsRUFBRSxFQUFFO1lBQ2xCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLHFCQUFxQixFQUFFLEVBQUU7WUFDekIsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFVBQVU7WUFDcEMsY0FBYyxFQUFFLHdCQUF3QixDQUFDLFFBQVE7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O3dCQUNaLGdCQUFnQjt3QkFFaEIsYUFBYTt3QkFDYiw2QkFBNkI7d0JBQzdCLDBCQUEwQjt3QkFDMUIsK0JBQStCO3FCQUNoQzs4QkFtQlEsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVJLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFHRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBR0csaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBjb21wb25lbnRzXG5pbXBvcnQgeyBDYVJpZ2h0U2lkZVBhbmVsTWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1yaWdodC1zaWRlLXBhbmVsLW1lbnUvY2EtcmlnaHQtc2lkZS1wYW5lbC1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYUFjdGl2aXR5TG9nTGlzdENvbXBvbmVudCB9IGZyb20gJy4uL2NhLWFjdGl2aXR5LWxvZy1saXN0L2NhLWFjdGl2aXR5LWxvZy1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYVJpZ2h0U2lkZVBhbmVsVG9wQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLXJpZ2h0LXNpZGUtcGFuZWwtdG9wLWJhci9jYS1yaWdodC1zaWRlLXBhbmVsLXRvcC1iYXIuY29tcG9uZW50JztcblxuLy8gbW9kZWxzXG5pbXBvcnQgeyBBY3Rpdml0eUxvZ0l0ZW0gfSBmcm9tICcuLi9jYS1hY3Rpdml0eS1sb2ctbGlzdC9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgQWN0aW9uRmlsdGVySW5wdXREYXRhLFxuICBBY3Rpdml0eUxvZ0ZpbHRlclBhcmFtcyxcbiAgTW9kdWxlRmlsdGVySW5wdXREYXRhLFxuICBVc2VyRmlsdGVySW5wdXREYXRhLFxufSBmcm9tICcuL21vZGVscyc7XG5cbi8vIGVudW1zXG5pbXBvcnQge1xuICBBY3Rpdml0eUxvZ1NvcnRUeXBlLFxuICBSaWdodFNpZGVQYW5lbEN1cnJlbnRUYWIsXG4gIFNlbGVjdGVkTW9kdWxlLFxufSBmcm9tICcuL2VudW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2EtcmlnaHQtc2lkZS1wYW5lbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYS1yaWdodC1zaWRlLXBhbmVsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2EtcmlnaHQtc2lkZS1wYW5lbC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG5cbiAgICAvLyBDb21wb25lbnRzXG4gICAgQ2FSaWdodFNpZGVQYW5lbE1lbnVDb21wb25lbnQsXG4gICAgQ2FBY3Rpdml0eUxvZ0xpc3RDb21wb25lbnQsXG4gICAgQ2FSaWdodFNpZGVQYW5lbFRvcEJhckNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FSaWdodFNpZGVQYW5lbENvbXBvbmVudCB7XG4gIHB1YmxpYyBfYWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXM6IEFjdGl2aXR5TG9nRmlsdGVyUGFyYW1zID0ge1xuICAgIGNvbXBhbnlVc2VySWRzOiBbXSxcbiAgICBhY3Rpb25Mb2dJZHM6IFtdLFxuICAgIGVudGl0eVR5cGVBY3Rpdml0eUlkczogW10sXG4gICAgc29ydDogQWN0aXZpdHlMb2dTb3J0VHlwZS5ERVNDRU5ESU5HLFxuICAgIHVzZXJGaWx0ZXJUeXBlOiBSaWdodFNpZGVQYW5lbEN1cnJlbnRUYWIuUEVSU09OQUwsXG4gICAgZGF0ZUZyb206IG51bGwsXG4gICAgZGF0ZVRvOiBudWxsLFxuICAgIHNlYXJjaDogbnVsbCxcbiAgfTtcbiAgcHVibGljIHNlbGVjdGVkTmF2PzogU2VsZWN0ZWRNb2R1bGU7XG4gIHB1YmxpYyBzZWxlY3RlZFRhYjogUmlnaHRTaWRlUGFuZWxDdXJyZW50VGFiID1cbiAgICBSaWdodFNpZGVQYW5lbEN1cnJlbnRUYWIuUEVSU09OQUw7XG4gIHB1YmxpYyBTZWxlY3RlZE1vZHVsZSA9IFNlbGVjdGVkTW9kdWxlO1xuICBwdWJsaWMgcmVzZXRGaWx0ZXJzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgZGF0YSE6IEFjdGl2aXR5TG9nSXRlbVtdO1xuICBASW5wdXQoKSB1c2Vyc0ZpbHRlciE6IFVzZXJGaWx0ZXJJbnB1dERhdGFbXTtcbiAgQElucHV0KCkgbW9kdWxlc0ZpbHRlciE6IE1vZHVsZUZpbHRlcklucHV0RGF0YVtdO1xuICBASW5wdXQoKSBhY3Rpb25zRmlsdGVyITogQWN0aW9uRmlsdGVySW5wdXREYXRhW107XG5cbiAgQE91dHB1dCgpIGFjdGl2aXR5TG9nRmlsdGVyUGFyYW1zOiBFdmVudEVtaXR0ZXI8QWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXM+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIHNlbGVjdGVkTmF2TW9kdWxlOiBFdmVudEVtaXR0ZXI8U2VsZWN0ZWRNb2R1bGU+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIGlzU2lkZVBhbmVsUGlubmVkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIHNlbGVjdGVkTmF2RXZlbnQoc2VsZWN0ZWROYXY6IFNlbGVjdGVkTW9kdWxlKTogdm9pZCB7XG4gICAgaWYgKCFzZWxlY3RlZE5hdikgdGhpcy5zZWxlY3RlZFRhYiA9IFJpZ2h0U2lkZVBhbmVsQ3VycmVudFRhYi5QRVJTT05BTDtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE5hdiAhPT0gc2VsZWN0ZWROYXYpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSBSaWdodFNpZGVQYW5lbEN1cnJlbnRUYWIuUEVSU09OQUw7XG4gICAgICB0aGlzLnNlbGVjdGVkTmF2ID0gc2VsZWN0ZWROYXY7XG4gICAgICB0aGlzLnNlbGVjdGVkTmF2TW9kdWxlLmVtaXQoc2VsZWN0ZWROYXYpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RlZFRhYkV2ZW50KHNlbGVjdGVkVGFiOiBSaWdodFNpZGVQYW5lbEN1cnJlbnRUYWIpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gc2VsZWN0ZWRUYWI7XG4gIH1cblxuICBwdWJsaWMgcGluU2lkZWJhckV2ZW50KGlzUGlubmVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc1NpZGVQYW5lbFBpbm5lZC5lbWl0KGlzUGlubmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBY3Rpdml0eUxvZ0ZpbHRlclBhcmFtcyhcbiAgICBhY3Rpdml0eUxvZ0ZpbHRlclBhcmFtczogQWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXNcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5fYWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXMuY29tcGFueVVzZXJJZHMgPVxuICAgICAgYWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXMuY29tcGFueVVzZXJJZHM7XG4gICAgdGhpcy5fYWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXMuYWN0aW9uTG9nSWRzID1cbiAgICAgIGFjdGl2aXR5TG9nRmlsdGVyUGFyYW1zLmFjdGlvbkxvZ0lkcztcbiAgICB0aGlzLl9hY3Rpdml0eUxvZ0ZpbHRlclBhcmFtcy5lbnRpdHlUeXBlQWN0aXZpdHlJZHMgPVxuICAgICAgYWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXMuZW50aXR5VHlwZUFjdGl2aXR5SWRzO1xuICAgIHRoaXMuX2FjdGl2aXR5TG9nRmlsdGVyUGFyYW1zLnNvcnQgPSBhY3Rpdml0eUxvZ0ZpbHRlclBhcmFtcy5zb3J0O1xuICAgIHRoaXMuX2FjdGl2aXR5TG9nRmlsdGVyUGFyYW1zLnVzZXJGaWx0ZXJUeXBlID1cbiAgICAgIGFjdGl2aXR5TG9nRmlsdGVyUGFyYW1zLnVzZXJGaWx0ZXJUeXBlO1xuICAgIHRoaXMuX2FjdGl2aXR5TG9nRmlsdGVyUGFyYW1zLmRhdGVGcm9tID0gYWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXMuZGF0ZUZyb207XG4gICAgdGhpcy5fYWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXMuZGF0ZVRvID0gYWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXMuZGF0ZVRvO1xuICAgIHRoaXMuX2FjdGl2aXR5TG9nRmlsdGVyUGFyYW1zLnJlbG9hZEZpbHRlcnMgPVxuICAgICAgYWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXMucmVsb2FkRmlsdGVycztcbiAgICB0aGlzLmFjdGl2aXR5TG9nRmlsdGVyUGFyYW1zLmVtaXQodGhpcy5fYWN0aXZpdHlMb2dGaWx0ZXJQYXJhbXMpO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEV2ZW50KHNlYXJjaFRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2FjdGl2aXR5TG9nRmlsdGVyUGFyYW1zLnNlYXJjaCA9IHNlYXJjaFRleHQ7XG4gICAgdGhpcy5hY3Rpdml0eUxvZ0ZpbHRlclBhcmFtcy5lbWl0KHRoaXMuX2FjdGl2aXR5TG9nRmlsdGVyUGFyYW1zKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldEZpbHRlcnNFdmVudChyZXNldEZpbHRlcnM6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnJlc2V0RmlsdGVycyA9IHJlc2V0RmlsdGVycztcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVzZXRGaWx0ZXJzID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzaWRlLXBhbmVsLWNvbnRhaW5lci1ib3hcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2lkZS1wYW5lbC1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZE5hdiA9PT0gU2VsZWN0ZWRNb2R1bGUuQUNUSVZJVFlfTE9HXCI+XG4gICAgICA8Y2EtcmlnaHQtc2lkZS1wYW5lbC10b3AtYmFyXG4gICAgICAgIFtzZWxlY3RlZE1vZHVsZV09XCJzZWxlY3RlZE5hdlwiXG4gICAgICAgIFt1c2Vyc0ZpbHRlcl09XCJ1c2Vyc0ZpbHRlclwiXG4gICAgICAgIFttb2R1bGVzRmlsdGVyXT1cIm1vZHVsZXNGaWx0ZXJcIlxuICAgICAgICBbYWN0aW9uc0ZpbHRlcl09XCJhY3Rpb25zRmlsdGVyXCJcbiAgICAgICAgW3Jlc2V0RmlsdGVyc109XCJyZXNldEZpbHRlcnNcIlxuICAgICAgICAoc2VsZWN0ZWRUYWIpPVwic2VsZWN0ZWRUYWJFdmVudCgkZXZlbnQpXCJcbiAgICAgICAgKGFjdGl2aXR5TG9nRmlsdGVyUGFyYW1zKT1cInNldEFjdGl2aXR5TG9nRmlsdGVyUGFyYW1zKCRldmVudClcIlxuICAgICAgPjwvY2EtcmlnaHQtc2lkZS1wYW5lbC10b3AtYmFyPlxuICAgICAgPGNhLWFjdGl2aXR5LWxvZy1saXN0XG4gICAgICAgIFthY3Rpdml0eUxvZ0xpc3RdPVwiZGF0YVwiXG4gICAgICAgIFtzZWxlY3RlZFRhYl09XCJzZWxlY3RlZFRhYlwiXG4gICAgICAgIChzZWFyY2hUZXh0KT1cInNlYXJjaEV2ZW50KCRldmVudClcIlxuICAgICAgICAocmVzZXRGaWx0ZXJzKT1cInJlc2V0RmlsdGVyc0V2ZW50KCRldmVudClcIlxuICAgICAgPjwvY2EtYWN0aXZpdHktbG9nLWxpc3Q+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8Y2EtcmlnaHQtc2lkZS1wYW5lbC1tZW51XG4gICAgICAoc2VsZWN0ZWROYXYpPVwic2VsZWN0ZWROYXZFdmVudCgkZXZlbnQpXCJcbiAgICAgIChpc1Bpbm5lZCk9XCJwaW5TaWRlYmFyRXZlbnQoJGV2ZW50KVwiXG4gICAgPjwvY2EtcmlnaHQtc2lkZS1wYW5lbC1tZW51PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19