@c8y/ngx-components 1017.0.456 → 1017.0.463
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/context-dashboard/add-dashboard.factory.d.ts +3 -2
- package/context-dashboard/context-dashboard.model.d.ts +28 -0
- package/context-dashboard/context-dashboard.service.d.ts +4 -2
- package/context-dashboard/dashboard-availability.component.d.ts +3 -2
- package/context-dashboard/report-dashboard/report-dashboard-list.component.d.ts +3 -2
- package/esm2020/context-dashboard/add-dashboard.factory.mjs +17 -5
- package/esm2020/context-dashboard/context-dashboard.component.mjs +23 -3
- package/esm2020/context-dashboard/context-dashboard.model.mjs +29 -1
- package/esm2020/context-dashboard/context-dashboard.service.mjs +21 -6
- package/esm2020/context-dashboard/dashboard-availability.component.mjs +17 -5
- package/esm2020/context-dashboard/report-dashboard/report-dashboard-list.component.mjs +21 -6
- package/esm2020/core/docs/docs.service.mjs +1 -10
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs +114 -13
- package/fesm2015/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +0 -8
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs +113 -13
- package/fesm2020/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +0 -8
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -3,10 +3,10 @@ import { BehaviorSubject, combineLatest } from 'rxjs';
|
|
|
3
3
|
import { BsModalService } from 'ngx-bootstrap/modal';
|
|
4
4
|
import { InventoryService } from '@c8y/client';
|
|
5
5
|
import { debounceTime, distinctUntilChanged, shareReplay, switchMap, tap } from 'rxjs/operators';
|
|
6
|
-
import { FilterInputComponent, gettext, ModalService, Status, AlertService, Permissions } from '@c8y/ngx-components';
|
|
6
|
+
import { FilterInputComponent, gettext, ModalService, Status, AlertService, Permissions, GainsightService } from '@c8y/ngx-components';
|
|
7
7
|
import { DashboardDetailComponent } from '../dashboard-detail.component';
|
|
8
8
|
import { ContextDashboardService } from '../context-dashboard.service';
|
|
9
|
-
import { ContextDashboardType } from '../context-dashboard.model';
|
|
9
|
+
import { ContextDashboardType, PRODUCT_EXPERIENCE } from '../context-dashboard.model';
|
|
10
10
|
import { TranslateService } from '@ngx-translate/core';
|
|
11
11
|
import { ReportDashboardService } from './report-dashboard.service';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
@@ -22,7 +22,7 @@ import * as i9 from "ngx-bootstrap/tooltip";
|
|
|
22
22
|
import * as i10 from "@angular/router";
|
|
23
23
|
import * as i11 from "ngx-bootstrap/popover";
|
|
24
24
|
export class ReportDashboardListComponent {
|
|
25
|
-
constructor(inventoryService, contextDashboardService, bsModal, translateService, modal, alertService, reportDashboardService, permissions) {
|
|
25
|
+
constructor(inventoryService, contextDashboardService, bsModal, translateService, modal, alertService, reportDashboardService, permissions, gainsightService) {
|
|
26
26
|
this.inventoryService = inventoryService;
|
|
27
27
|
this.contextDashboardService = contextDashboardService;
|
|
28
28
|
this.bsModal = bsModal;
|
|
@@ -31,6 +31,7 @@ export class ReportDashboardListComponent {
|
|
|
31
31
|
this.alertService = alertService;
|
|
32
32
|
this.reportDashboardService = reportDashboardService;
|
|
33
33
|
this.permissions = permissions;
|
|
34
|
+
this.gainsightService = gainsightService;
|
|
34
35
|
this.textFilter$ = new BehaviorSubject('');
|
|
35
36
|
this.reload$ = new BehaviorSubject(null);
|
|
36
37
|
this.reloading = false;
|
|
@@ -81,6 +82,13 @@ export class ReportDashboardListComponent {
|
|
|
81
82
|
}
|
|
82
83
|
this.reload$.next();
|
|
83
84
|
modal.close();
|
|
85
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.REPORTS, {
|
|
86
|
+
component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.ADD_REPORT,
|
|
87
|
+
action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.CREATE,
|
|
88
|
+
name: report.name,
|
|
89
|
+
id: report.id,
|
|
90
|
+
context: PRODUCT_EXPERIENCE.DASHBOARD.CONTEXT.REPORT
|
|
91
|
+
});
|
|
84
92
|
}
|
|
85
93
|
catch (ex) {
|
|
86
94
|
if (ex) {
|
|
@@ -110,6 +118,13 @@ export class ReportDashboardListComponent {
|
|
|
110
118
|
this.reportDashboardService.removeNavigatorNode(report);
|
|
111
119
|
}
|
|
112
120
|
this.reload$.next();
|
|
121
|
+
this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.DASHBOARD.EVENTS.REPORTS, {
|
|
122
|
+
component: PRODUCT_EXPERIENCE.DASHBOARD.COMPONENTS.REPORTS_LIST,
|
|
123
|
+
action: PRODUCT_EXPERIENCE.DASHBOARD.ACTIONS.DELETE,
|
|
124
|
+
name: report.name,
|
|
125
|
+
id: report.id,
|
|
126
|
+
context: PRODUCT_EXPERIENCE.DASHBOARD.CONTEXT.REPORT
|
|
127
|
+
});
|
|
113
128
|
}
|
|
114
129
|
catch (ex) {
|
|
115
130
|
if (ex) {
|
|
@@ -125,13 +140,13 @@ export class ReportDashboardListComponent {
|
|
|
125
140
|
: this.reportDashboardService.removeNavigatorNode(report);
|
|
126
141
|
}
|
|
127
142
|
}
|
|
128
|
-
ReportDashboardListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ReportDashboardListComponent, deps: [{ token: i1.InventoryService }, { token: i2.ContextDashboardService }, { token: i3.BsModalService }, { token: i4.TranslateService }, { token: i5.ModalService }, { token: i5.AlertService }, { token: i6.ReportDashboardService }, { token: i5.Permissions }], target: i0.ɵɵFactoryTarget.Component });
|
|
143
|
+
ReportDashboardListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ReportDashboardListComponent, deps: [{ token: i1.InventoryService }, { token: i2.ContextDashboardService }, { token: i3.BsModalService }, { token: i4.TranslateService }, { token: i5.ModalService }, { token: i5.AlertService }, { token: i6.ReportDashboardService }, { token: i5.Permissions }, { token: i5.GainsightService }], target: i0.ɵɵFactoryTarget.Component });
|
|
129
144
|
ReportDashboardListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ReportDashboardListComponent, selector: "c8y-report-dashboard-list", viewQueries: [{ propertyName: "filter", first: true, predicate: FilterInputComponent, descendants: true }], ngImport: i0, template: "<c8y-title>\n {{ 'Reports' | translate }}\n</c8y-title>\n\n<c8y-action-bar-item [placement]=\"'left'\" itemClass=\"navbar-form\">\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n type=\"search\"\n [attr.aria-label]=\"'Filter' | translate\"\n placeholder=\"{{ 'Filter\u2026' | translate }}\"\n [ngModel]=\"textFilter$ | async\"\n (ngModelChange)=\"textFilter$.next($event)\"\n />\n <span class=\"input-group-addon\">\n <i c8yIcon=\"search\" *ngIf=\"(textFilter$ | async).length === 0\"></i>\n <i\n class=\"text-muted\"\n c8yIcon=\"times\"\n *ngIf=\"(textFilter$ | async).length > 0\"\n (click)=\"textFilter$.next('')\"\n px-event=\"Clear filtering reports\"\n ></i>\n </span>\n </div>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add report' | translate }}\"\n [attr.data-cy]=\"'reports-add-report-action-bar-button'\"\n type=\"button\"\n (click)=\"add()\"\n [disabled]=\"!canAddReport\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add report' | translate }}\n </button>\n <button\n *ngIf=\"!canAddReport\"\n class=\"btn btn-dot m-r-16\"\n popover=\"{{ 'You don\\'t have permission to add reports' | translate }}\"\n triggers=\"focus\"\n placement=\"top\"\n container=\"body\"\n >\n <i [c8yIcon]=\"'info-circle'\" class=\"text-primary\"></i>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Reload' | translate }}\"\n type=\"button\"\n (click)=\"loadReports()\"\n >\n <i [ngClass]=\"{ 'icon-spin': reloading }\" c8yIcon=\"refresh\"></i>\n {{ 'Reload' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/users-guide/cockpit/#reports\"></c8y-help>\n\n<c8y-list-group>\n <c8y-li\n class=\"page-sticky-header hidden-xs hidden-sm\"\n *ngIf=\"(reports$ | async)?.data.length > 0\"\n >\n <c8y-li-icon>\n <i class=\"p-l-24\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-60\">\n <div class=\"col-3\">\n {{ 'Report' | translate }}\n </div>\n <div class=\"col-6\">\n {{ 'Description' | translate }}\n </div>\n <div class=\"col-2\">\n {{ 'Show in navigator' | translate }}\n </div>\n </c8y-li-body>\n </c8y-li>\n\n <c8y-li *c8yFor=\"let report of reports$; let i = index; loadMore: 'auto'\">\n <c8y-li-icon [icon]=\"report.icon\"></c8y-li-icon>\n <c8y-li-body class=\"content-flex-60\">\n <div class=\"col-3\">\n <button\n class=\"btn-clean\"\n title=\"{{ report.name }}\"\n type=\"button\"\n routerLink=\"/reports/{{ report.id }}\"\n >\n <span class=\"text-truncate\">\n {{ report.name }}\n </span>\n </button>\n </div>\n <div class=\"col-6\">\n <p class=\"small text-truncate-wrap\">\n <em class=\"text-muted\" *ngIf=\"!report.description; else showDescription\">\n {{ 'No description available' | translate }}\n </em>\n <ng-template #showDescription>\n {{ report.description }}\n </ng-template>\n </p>\n </div>\n <div class=\"col-2 fit-h-20 m-t-xs-8\">\n <label class=\"c8y-switch c8y-switch--inline\" title=\"{{ 'Show in navigator' | translate }}\">\n <input\n [(ngModel)]=\"!!report.c8y_IsNavigatorNode\"\n type=\"checkbox\"\n (change)=\"update(report)\"\n />\n <span></span>\n <span class=\"visible-xs\">\n {{ 'Show in navigator' | translate }}\n </span>\n </label>\n </div>\n <div class=\"col-1 hidden-xs\">\n <button\n class=\"btn btn-dot btn-dot--danger showOnHover m-l-auto d-flex\"\n (click)=\"delete(report)\"\n tooltip=\"{{ 'Remove report' | translate }}\"\n [delay]=\"500\"\n [attr.aria-label]=\"'Remove report' | translate\"\n type=\"button\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n <div class=\"visible-xs p-t-8 text-right\">\n <button\n class=\"btn btn-default btn-sm\"\n (click)=\"delete(report)\"\n title=\"{{ 'Remove report' | translate }}\"\n type=\"button\"\n >\n <i c8yIcon=\"delete\"></i>\n {{ 'Remove report' | translate }}\n </button>\n </div>\n </c8y-li-body>\n </c8y-li>\n</c8y-list-group>\n\n<c8y-ui-empty-state\n *ngIf=\"(reports$ | async)?.data.length === 0\"\n [icon]=\"'c8y-reports'\"\n [title]=\"'There are no reports defined.' | translate\"\n [subtitle]=\"'Add a report first.' | translate\"\n>\n <p>\n <button\n title=\"{{ 'Add report' | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n [attr.data-cy]=\"'reports-add-report-empty-state-button'\"\n [disabled]=\"!canAddReport\"\n (click)=\"add()\"\n >\n {{ 'Add report' | translate }}\n </button>\n </p>\n <p c8y-guide-docs>\n <small translate ngNonBindable>\n Find out more in the\n <a c8y-guide-href=\"users-guide/cockpit/#reports\">User guide`KEEP_ORIGINAL`</a>\n .\n </small>\n </p>\n</c8y-ui-empty-state>\n", dependencies: [{ kind: "component", type: i5.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId"] }, { kind: "component", type: i5.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i5.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount"] }, { kind: "component", type: i5.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "component", type: i5.GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "component", type: i5.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i5.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i5.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i5.ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: i5.HelpComponent, selector: "c8y-help", inputs: ["src", "isCollapsed", "priority", "icon"] }, { kind: "directive", type: i9.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i10.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i11.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "pipe", type: i5.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }] });
|
|
130
145
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ReportDashboardListComponent, decorators: [{
|
|
131
146
|
type: Component,
|
|
132
147
|
args: [{ selector: 'c8y-report-dashboard-list', template: "<c8y-title>\n {{ 'Reports' | translate }}\n</c8y-title>\n\n<c8y-action-bar-item [placement]=\"'left'\" itemClass=\"navbar-form\">\n <div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n type=\"search\"\n [attr.aria-label]=\"'Filter' | translate\"\n placeholder=\"{{ 'Filter\u2026' | translate }}\"\n [ngModel]=\"textFilter$ | async\"\n (ngModelChange)=\"textFilter$.next($event)\"\n />\n <span class=\"input-group-addon\">\n <i c8yIcon=\"search\" *ngIf=\"(textFilter$ | async).length === 0\"></i>\n <i\n class=\"text-muted\"\n c8yIcon=\"times\"\n *ngIf=\"(textFilter$ | async).length > 0\"\n (click)=\"textFilter$.next('')\"\n px-event=\"Clear filtering reports\"\n ></i>\n </span>\n </div>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Add report' | translate }}\"\n [attr.data-cy]=\"'reports-add-report-action-bar-button'\"\n type=\"button\"\n (click)=\"add()\"\n [disabled]=\"!canAddReport\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add report' | translate }}\n </button>\n <button\n *ngIf=\"!canAddReport\"\n class=\"btn btn-dot m-r-16\"\n popover=\"{{ 'You don\\'t have permission to add reports' | translate }}\"\n triggers=\"focus\"\n placement=\"top\"\n container=\"body\"\n >\n <i [c8yIcon]=\"'info-circle'\" class=\"text-primary\"></i>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\">\n <button\n class=\"btn btn-link\"\n title=\"{{ 'Reload' | translate }}\"\n type=\"button\"\n (click)=\"loadReports()\"\n >\n <i [ngClass]=\"{ 'icon-spin': reloading }\" c8yIcon=\"refresh\"></i>\n {{ 'Reload' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-help src=\"/users-guide/cockpit/#reports\"></c8y-help>\n\n<c8y-list-group>\n <c8y-li\n class=\"page-sticky-header hidden-xs hidden-sm\"\n *ngIf=\"(reports$ | async)?.data.length > 0\"\n >\n <c8y-li-icon>\n <i class=\"p-l-24\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-60\">\n <div class=\"col-3\">\n {{ 'Report' | translate }}\n </div>\n <div class=\"col-6\">\n {{ 'Description' | translate }}\n </div>\n <div class=\"col-2\">\n {{ 'Show in navigator' | translate }}\n </div>\n </c8y-li-body>\n </c8y-li>\n\n <c8y-li *c8yFor=\"let report of reports$; let i = index; loadMore: 'auto'\">\n <c8y-li-icon [icon]=\"report.icon\"></c8y-li-icon>\n <c8y-li-body class=\"content-flex-60\">\n <div class=\"col-3\">\n <button\n class=\"btn-clean\"\n title=\"{{ report.name }}\"\n type=\"button\"\n routerLink=\"/reports/{{ report.id }}\"\n >\n <span class=\"text-truncate\">\n {{ report.name }}\n </span>\n </button>\n </div>\n <div class=\"col-6\">\n <p class=\"small text-truncate-wrap\">\n <em class=\"text-muted\" *ngIf=\"!report.description; else showDescription\">\n {{ 'No description available' | translate }}\n </em>\n <ng-template #showDescription>\n {{ report.description }}\n </ng-template>\n </p>\n </div>\n <div class=\"col-2 fit-h-20 m-t-xs-8\">\n <label class=\"c8y-switch c8y-switch--inline\" title=\"{{ 'Show in navigator' | translate }}\">\n <input\n [(ngModel)]=\"!!report.c8y_IsNavigatorNode\"\n type=\"checkbox\"\n (change)=\"update(report)\"\n />\n <span></span>\n <span class=\"visible-xs\">\n {{ 'Show in navigator' | translate }}\n </span>\n </label>\n </div>\n <div class=\"col-1 hidden-xs\">\n <button\n class=\"btn btn-dot btn-dot--danger showOnHover m-l-auto d-flex\"\n (click)=\"delete(report)\"\n tooltip=\"{{ 'Remove report' | translate }}\"\n [delay]=\"500\"\n [attr.aria-label]=\"'Remove report' | translate\"\n type=\"button\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n <div class=\"visible-xs p-t-8 text-right\">\n <button\n class=\"btn btn-default btn-sm\"\n (click)=\"delete(report)\"\n title=\"{{ 'Remove report' | translate }}\"\n type=\"button\"\n >\n <i c8yIcon=\"delete\"></i>\n {{ 'Remove report' | translate }}\n </button>\n </div>\n </c8y-li-body>\n </c8y-li>\n</c8y-list-group>\n\n<c8y-ui-empty-state\n *ngIf=\"(reports$ | async)?.data.length === 0\"\n [icon]=\"'c8y-reports'\"\n [title]=\"'There are no reports defined.' | translate\"\n [subtitle]=\"'Add a report first.' | translate\"\n>\n <p>\n <button\n title=\"{{ 'Add report' | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n [attr.data-cy]=\"'reports-add-report-empty-state-button'\"\n [disabled]=\"!canAddReport\"\n (click)=\"add()\"\n >\n {{ 'Add report' | translate }}\n </button>\n </p>\n <p c8y-guide-docs>\n <small translate ngNonBindable>\n Find out more in the\n <a c8y-guide-href=\"users-guide/cockpit/#reports\">User guide`KEEP_ORIGINAL`</a>\n .\n </small>\n </p>\n</c8y-ui-empty-state>\n" }]
|
|
133
|
-
}], ctorParameters: function () { return [{ type: i1.InventoryService }, { type: i2.ContextDashboardService }, { type: i3.BsModalService }, { type: i4.TranslateService }, { type: i5.ModalService }, { type: i5.AlertService }, { type: i6.ReportDashboardService }, { type: i5.Permissions }]; }, propDecorators: { filter: [{
|
|
148
|
+
}], ctorParameters: function () { return [{ type: i1.InventoryService }, { type: i2.ContextDashboardService }, { type: i3.BsModalService }, { type: i4.TranslateService }, { type: i5.ModalService }, { type: i5.AlertService }, { type: i6.ReportDashboardService }, { type: i5.Permissions }, { type: i5.GainsightService }]; }, propDecorators: { filter: [{
|
|
134
149
|
type: ViewChild,
|
|
135
150
|
args: [FilterInputComponent, { static: false }]
|
|
136
151
|
}] } });
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWRhc2hib2FyZC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbnRleHQtZGFzaGJvYXJkL3JlcG9ydC1kYXNoYm9hcmQvcmVwb3J0LWRhc2hib2FyZC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2NvbnRleHQtZGFzaGJvYXJkL3JlcG9ydC1kYXNoYm9hcmQvcmVwb3J0LWRhc2hib2FyZC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQWtCLGdCQUFnQixFQUFlLE1BQU0sYUFBYSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxZQUFZLEVBQ1osTUFBTSxFQUNOLFlBQVksRUFDWixXQUFXLEVBQ1osTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQU1wRSxNQUFNLE9BQU8s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Q0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUM7WUFDNUQsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5RCxDQUFDOzt5SEFwSVUsNEJBQTRCOzZHQUE1Qiw0QkFBNEIseUdBQzVCLG9CQUFvQixnREN4QmpDLHkwS0FpTEE7MkZEMUphLDRCQUE0QjtrQkFKeEMsU0FBUzsrQkFDRSwyQkFBMkI7OFRBSWUsTUFBTTtzQkFBekQsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgSW52ZW50b3J5U2VydmljZSwgSVJlc3VsdExpc3QgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBGaWx0ZXJJbnB1dENvbXBvbmVudCxcbiAgZ2V0dGV4dCxcbiAgTW9kYWxTZXJ2aWNlLFxuICBTdGF0dXMsXG4gIEFsZXJ0U2VydmljZSxcbiAgUGVybWlzc2lvbnNcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEYXNoYm9hcmREZXRhaWxDb21wb25lbnQgfSBmcm9tICcuLi9kYXNoYm9hcmQtZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb250ZXh0RGFzaGJvYXJkU2VydmljZSB9IGZyb20gJy4uL2NvbnRleHQtZGFzaGJvYXJkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udGV4dERhc2hib2FyZFR5cGUgfSBmcm9tICcuLi9jb250ZXh0LWRhc2hib2FyZC5tb2RlbCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBSZXBvcnREYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi9yZXBvcnQtZGFzaGJvYXJkLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktcmVwb3J0LWRhc2hib2FyZC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlcG9ydC1kYXNoYm9hcmQtbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUmVwb3J0RGFzaGJvYXJkTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoRmlsdGVySW5wdXRDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KSBmaWx0ZXI6IEZpbHRlcklucHV0Q29tcG9uZW50O1xuICB0ZXh0RmlsdGVyJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcbiAgcmVsb2FkJDogQmVoYXZpb3JTdWJqZWN0PHZvaWQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgcmVsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHJlcG9ydHMkOiBPYnNlcnZhYmxlPElSZXN1bHRMaXN0PElNYW5hZ2VkT2JqZWN0Pj4gPSBjb21iaW5lTGF0ZXN0KFxuICAgIHRoaXMudGV4dEZpbHRlciQucGlwZShkZWJvdW5jZVRpbWUoNDAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgdGhpcy5yZWxvYWQkXG4gICkucGlwZShcbiAgICB0YXAoKCkgPT4ge1xuICAgICAgdGhpcy5yZWxvYWRpbmcgPSB0cnVlO1xuICAgIH0pLFxuICAgIHN3aXRjaE1hcCgoW3RleHRdKSA9PiB0aGlzLmxvYWRSZXBvcnRzKHRleHQpKSxcbiAgICB0YXAoKCkgPT4ge1xuICAgICAgdGhpcy5yZWxvYWRpbmcgPSBmYWxzZTtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuICBjYW5BZGRSZXBvcnQgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBERUxFVEVEX1NVQ0NFU1NfTVNHID0gZ2V0dGV4dCgnUmVwb3J0IGRlbGV0ZWQuJyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbnZlbnRvcnlTZXJ2aWNlOiBJbnZlbnRvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29udGV4dERhc2hib2FyZFNlcnZpY2U6IENvbnRleHREYXNoYm9hcmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbDogQnNNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9kYWw6IE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVwb3J0RGFzaGJvYXJkU2VydmljZTogUmVwb3J0RGFzaGJvYXJkU2VydmljZSxcbiAgICBwcml2YXRlIHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uc1xuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jYW5BZGRSZXBvcnQgPSB0aGlzLnBlcm1pc3Npb25zLmhhc0FueVJvbGUoW1xuICAgICAgJ1JPTEVfSU5WRU5UT1JZX0NSRUFURScsXG4gICAgICAnUk9MRV9JTlZFTlRPUllfQURNSU4nXG4gICAgXSk7XG4gIH1cblxuICBhc3luYyBsb2FkUmVwb3J0cyhwYXJ0aWFsTmFtZT86IHN0cmluZykge1xuICAgIHJldHVybiBwYXJ0aWFsTmFtZVxuICAgICAgPyB0aGlzLnJlcG9ydERhc2hib2FyZFNlcnZpY2UubGlzdFJlcG9ydHMoeyBmaWx0ZXI6IHsgbmFtZTogYCoke3BhcnRpYWxOYW1lfSpgIH0gfSlcbiAgICAgIDogdGhpcy5yZXBvcnREYXNoYm9hcmRTZXJ2aWNlLmxpc3RSZXBvcnRzKCk7XG4gIH1cblxuICBhc3luYyBhZGQoKSB7XG4gICAgY29uc3QgaW5pdGlhbFN0YXRlID0ge1xuICAgICAgaXNSZXBvcnQ6IHRydWUsXG4gICAgICBpc05hbWVkRGFzaGJvYXJkOiB0cnVlXG4gICAgfTtcbiAgICBjb25zdCBtb2RhbCA9IHRoaXMuYnNNb2RhbC5zaG93KERhc2hib2FyZERldGFpbENvbXBvbmVudCwge1xuICAgICAgY2xhc3M6ICdtb2RhbC1sZycsXG4gICAgICBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlLFxuICAgICAgYXJpYURlc2NyaWJlZGJ5OiAnbW9kYWwtYm9keScsXG4gICAgICBhcmlhTGFiZWxsZWRCeTogJ21vZGFsLXRpdGxlJyxcbiAgICAgIGluaXRpYWxTdGF0ZVxuICAgIH0pLmNvbnRlbnQgYXMgRGFzaGJvYXJkRGV0YWlsQ29tcG9uZW50O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjZmcgPSBhd2FpdCBtb2RhbC5yZXN1bHQ7XG4gICAgICBjb25zdCB7IG5hbWUsIGljb24sIGM4eV9Jc05hdmlnYXRvck5vZGUsIHByaW9yaXR5LCBkZXNjcmlwdGlvbiwgLi4uZGFzaGJvYXJkQ2ZnIH0gPSBjZmc7XG4gICAgICBjb25zdCByZXBvcnQgPSAoXG4gICAgICAgIGF3YWl0IHRoaXMucmVwb3J0RGFzaGJvYXJkU2VydmljZS5jcmVhdGVSZXBvcnQoe1xuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgaWNvbixcbiAgICAgICAgICBjOHlfSXNOYXZpZ2F0b3JOb2RlLFxuICAgICAgICAgIHByaW9yaXR5LFxuICAgICAgICAgIGRlc2NyaXB0aW9uXG4gICAgICAgIH0gYXMgUGFydGlhbDxJTWFuYWdlZE9iamVjdD4pXG4gICAgICApLmRhdGE7XG5cbiAgICAgIGF3YWl0IHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UuY3JlYXRlKFxuICAgICAgICBkYXNoYm9hcmRDZmcsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgYCR7dGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5SRVBPUlRfUEFSVElBTF9OQU1FfSR7cmVwb3J0LmlkfWBcbiAgICAgICk7XG4gICAgICBpZiAocmVwb3J0LmM4eV9Jc05hdmlnYXRvck5vZGUpIHtcbiAgICAgICAgdGhpcy5yZXBvcnREYXNoYm9hcmRTZXJ2aWNlLmFkZFJlcG9ydE5hdmlnYXRvck5vZGUocmVwb3J0KTtcbiAgICAgIH1cbiAgICAgIHRoaXMucmVsb2FkJC5uZXh0KCk7XG4gICAgICBtb2RhbC5jbG9zZSgpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICBpZiAoZXgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTb21ldGhpbmcgd2VudCB3cm9uZzogJHtleH1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBkZWxldGUocmVwb3J0OiBJTWFuYWdlZE9iamVjdCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBkYXNoYm9hcmQgPSBhd2FpdCB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlXG4gICAgICAgIC5nZXREYXNoYm9hcmQkKGByZXBvcnRfJHtyZXBvcnQuaWR9YCwgW0NvbnRleHREYXNoYm9hcmRUeXBlLk5hbWVkXSlcbiAgICAgICAgLnRvUHJvbWlzZSgpO1xuICAgICAgY29uc3QgaXNEYXNoYm9hcmRGcm96ZW4gPSAhIWRhc2hib2FyZD8uYzh5X0Rhc2hib2FyZD8uaXNGcm96ZW47XG5cbiAgICAgIGNvbnN0IG1zZyA9IGlzRGFzaGJvYXJkRnJvemVuXG4gICAgICAgID8gZ2V0dGV4dChcbiAgICAgICAgICAgIGBZb3UgYXJlIGFib3V0IHRvIGRlbGV0ZSB0aGUgcmVwb3J0IFwie3sgcmVwb3J0TmFtZSB9fVwiLiBCZSBhd2FyZSB0aGF0IHRoZSByZXBvcnQgaGFzIGEgbG9ja2VkIGRhc2hib2FyZCBhc3NpZ25lZC4gRG8geW91IHdhbnQgdG8gcHJvY2VlZD9gXG4gICAgICAgICAgKVxuICAgICAgICA6IGdldHRleHQoYFlvdSBhcmUgYWJvdXQgdG8gZGVsZXRlIHRoZSByZXBvcnQgXCJ7eyByZXBvcnROYW1lIH19XCIuIERvIHlvdSB3YW50IHRvIHByb2NlZWQ/YCk7XG5cbiAgICAgIGF3YWl0IHRoaXMubW9kYWwuY29uZmlybShcbiAgICAgICAgZ2V0dGV4dCgnRGVsZXRlIHJlcG9ydCcpLFxuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChtc2csIHtcbiAgICAgICAgICByZXBvcnROYW1lOiByZXBvcnQubmFtZVxuICAgICAgICB9KSxcbiAgICAgICAgU3RhdHVzLkRBTkdFUixcbiAgICAgICAge1xuICAgICAgICAgIG9rOiBnZXR0ZXh0KCdEZWxldGUnKSxcbiAgICAgICAgICBjYW5jZWw6IGdldHRleHQoJ0NhbmNlbCcpXG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIGF3YWl0IHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2UuZGVsZXRlKGRhc2hib2FyZCwgZmFsc2UpO1xuICAgICAgYXdhaXQgdGhpcy5pbnZlbnRvcnlTZXJ2aWNlLmRlbGV0ZShyZXBvcnQuaWQpO1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2Vzcyh0aGlzLkRFTEVURURfU1VDQ0VTU19NU0cpO1xuICAgICAgaWYgKHJlcG9ydC5jOHlfSXNOYXZpZ2F0b3JOb2RlKSB7XG4gICAgICAgIHRoaXMucmVwb3J0RGFzaGJvYXJkU2VydmljZS5yZW1vdmVOYXZpZ2F0b3JOb2RlKHJlcG9ydCk7XG4gICAgICB9XG4gICAgICB0aGlzLnJlbG9hZCQubmV4dCgpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICBpZiAoZXgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTb21ldGhpbmcgd2VudCB3cm9uZzogJHtleH1gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyB1cGRhdGUocmVwb3J0OiBJTWFuYWdlZE9iamVjdCkge1xuICAgIHJlcG9ydC5jOHlfSXNOYXZpZ2F0b3JOb2RlID0gcmVwb3J0LmM4eV9Jc05hdmlnYXRvck5vZGUgPyB7fSA6IG51bGw7XG4gICAgYXdhaXQgdGhpcy5pbnZlbnRvcnlTZXJ2aWNlLnVwZGF0ZShyZXBvcnQpO1xuICAgIHJlcG9ydC5jOHlfSXNOYXZpZ2F0b3JOb2RlXG4gICAgICA/IHRoaXMucmVwb3J0RGFzaGJvYXJkU2VydmljZS5hZGRSZXBvcnROYXZpZ2F0b3JOb2RlKHJlcG9ydClcbiAgICAgIDogdGhpcy5yZXBvcnREYXNoYm9hcmRTZXJ2aWNlLnJlbW92ZU5hdmlnYXRvck5vZGUocmVwb3J0KTtcbiAgfVxufVxuIiwiPGM4eS10aXRsZT5cbiAge3sgJ1JlcG9ydHMnIHwgdHJhbnNsYXRlIH19XG48L2M4eS10aXRsZT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCInbGVmdCdcIiBpdGVtQ2xhc3M9XCJuYXZiYXItZm9ybVwiPlxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgaW5wdXQtZ3JvdXAtc2VhcmNoXCI+XG4gICAgPGlucHV0XG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0ZpbHRlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnRmlsdGVy4oCmJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICBbbmdNb2RlbF09XCJ0ZXh0RmlsdGVyJCB8IGFzeW5jXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInRleHRGaWx0ZXIkLm5leHQoJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLWFkZG9uXCI+XG4gICAgICA8aSBjOHlJY29uPVwic2VhcmNoXCIgKm5nSWY9XCIodGV4dEZpbHRlciQgfCBhc3luYykubGVuZ3RoID09PSAwXCI+PC9pPlxuICAgICAgPGlcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LW11dGVkXCJcbiAgICAgICAgYzh5SWNvbj1cInRpbWVzXCJcbiAgICAgICAgKm5nSWY9XCIodGV4dEZpbHRlciQgfCBhc3luYykubGVuZ3RoID4gMFwiXG4gICAgICAgIChjbGljayk9XCJ0ZXh0RmlsdGVyJC5uZXh0KCcnKVwiXG4gICAgICAgIHB4LWV2ZW50PVwiQ2xlYXIgZmlsdGVyaW5nIHJlcG9ydHNcIlxuICAgICAgPjwvaT5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9jOHktYWN0aW9uLWJhci1pdGVtPlxuXG48Yzh5LWFjdGlvbi1iYXItaXRlbSBbcGxhY2VtZW50XT1cIidyaWdodCdcIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICB0aXRsZT1cInt7ICdBZGQgcmVwb3J0JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgW2F0dHIuZGF0YS1jeV09XCIncmVwb3J0cy1hZGQtcmVwb3J0LWFjdGlvbi1iYXItYnV0dG9uJ1wiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cImFkZCgpXCJcbiAgICBbZGlzYWJsZWRdPVwiIWNhbkFkZFJlcG9ydFwiXG4gID5cbiAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAge3sgJ0FkZCByZXBvcnQnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCIhY2FuQWRkUmVwb3J0XCJcbiAgICBjbGFzcz1cImJ0biBidG4tZG90IG0tci0xNlwiXG4gICAgcG9wb3Zlcj1cInt7ICdZb3UgZG9uXFwndCBoYXZlIHBlcm1pc3Npb24gdG8gYWRkIHJlcG9ydHMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICB0cmlnZ2Vycz1cImZvY3VzXCJcbiAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICAgIGNvbnRhaW5lcj1cImJvZHlcIlxuICA+XG4gICAgPGkgW2M4eUljb25dPVwiJ2luZm8tY2lyY2xlJ1wiIGNsYXNzPVwidGV4dC1wcmltYXJ5XCI+PC9pPlxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgdGl0bGU9XCJ7eyAnUmVsb2FkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cImxvYWRSZXBvcnRzKClcIlxuICA+XG4gICAgPGkgW25nQ2xhc3NdPVwieyAnaWNvbi1zcGluJzogcmVsb2FkaW5nIH1cIiBjOHlJY29uPVwicmVmcmVzaFwiPjwvaT5cbiAgICB7eyAnUmVsb2FkJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1oZWxwIHNyYz1cIi91c2Vycy1ndWlkZS9jb2NrcGl0LyNyZXBvcnRzXCI+PC9jOHktaGVscD5cblxuPGM4eS1saXN0LWdyb3VwPlxuICA8Yzh5LWxpXG4gICAgY2xhc3M9XCJwYWdlLXN0aWNreS1oZWFkZXIgaGlkZGVuLXhzIGhpZGRlbi1zbVwiXG4gICAgKm5nSWY9XCIocmVwb3J0cyQgfCBhc3luYyk/LmRhdGEubGVuZ3RoID4gMFwiXG4gID5cbiAgICA8Yzh5LWxpLWljb24+XG4gICAgICA8aSBjbGFzcz1cInAtbC0yNFwiPjwvaT5cbiAgICA8L2M4eS1saS1pY29uPlxuICAgIDxjOHktbGktYm9keSBjbGFzcz1cImNvbnRlbnQtZmxleC02MFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+XG4gICAgICAgIHt7ICdSZXBvcnQnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxuICAgICAgICB7eyAnRGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMlwiPlxuICAgICAgICB7eyAnU2hvdyBpbiBuYXZpZ2F0b3InIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2M4eS1saS1ib2R5PlxuICA8L2M4eS1saT5cblxuICA8Yzh5LWxpICpjOHlGb3I9XCJsZXQgcmVwb3J0IG9mIHJlcG9ydHMkOyBsZXQgaSA9IGluZGV4OyBsb2FkTW9yZTogJ2F1dG8nXCI+XG4gICAgPGM4eS1saS1pY29uIFtpY29uXT1cInJlcG9ydC5pY29uXCI+PC9jOHktbGktaWNvbj5cbiAgICA8Yzh5LWxpLWJvZHkgY2xhc3M9XCJjb250ZW50LWZsZXgtNjBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4tY2xlYW5cIlxuICAgICAgICAgIHRpdGxlPVwie3sgcmVwb3J0Lm5hbWUgfX1cIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHJvdXRlckxpbms9XCIvcmVwb3J0cy97eyByZXBvcnQuaWQgfX1cIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+XG4gICAgICAgICAgICB7eyByZXBvcnQubmFtZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxuICAgICAgICA8cCBjbGFzcz1cInNtYWxsIHRleHQtdHJ1bmNhdGUtd3JhcFwiPlxuICAgICAgICAgIDxlbSBjbGFzcz1cInRleHQtbXV0ZWRcIiAqbmdJZj1cIiFyZXBvcnQuZGVzY3JpcHRpb247IGVsc2Ugc2hvd0Rlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICB7eyAnTm8gZGVzY3JpcHRpb24gYXZhaWxhYmxlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvZW0+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNzaG93RGVzY3JpcHRpb24+XG4gICAgICAgICAgICB7eyByZXBvcnQuZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMiBmaXQtaC0yMCBtLXQteHMtOFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJjOHktc3dpdGNoIGM4eS1zd2l0Y2gtLWlubGluZVwiIHRpdGxlPVwie3sgJ1Nob3cgaW4gbmF2aWdhdG9yJyB8IHRyYW5zbGF0ZSB9fVwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCIhIXJlcG9ydC5jOHlfSXNOYXZpZ2F0b3JOb2RlXCJcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZShyZXBvcnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpc2libGUteHNcIj5cbiAgICAgICAgICAgIHt7ICdTaG93IGluIG5hdmlnYXRvcicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMSBoaWRkZW4teHNcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kb3QgYnRuLWRvdC0tZGFuZ2VyIHNob3dPbkhvdmVyIG0tbC1hdXRvIGQtZmxleFwiXG4gICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZShyZXBvcnQpXCJcbiAgICAgICAgICB0b29sdGlwPVwie3sgJ1JlbW92ZSByZXBvcnQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICBbZGVsYXldPVwiNTAwXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZW1vdmUgcmVwb3J0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjOHlJY29uPVwibWludXMtY2lyY2xlXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInZpc2libGUteHMgcC10LTggdGV4dC1yaWdodFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtXCJcbiAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlKHJlcG9ydClcIlxuICAgICAgICAgIHRpdGxlPVwie3sgJ1JlbW92ZSByZXBvcnQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIGM4eUljb249XCJkZWxldGVcIj48L2k+XG4gICAgICAgICAge3sgJ1JlbW92ZSByZXBvcnQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9jOHktbGktYm9keT5cbiAgPC9jOHktbGk+XG48L2M4eS1saXN0LWdyb3VwPlxuXG48Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICpuZ0lmPVwiKHJlcG9ydHMkIHwgYXN5bmMpPy5kYXRhLmxlbmd0aCA9PT0gMFwiXG4gIFtpY29uXT1cIidjOHktcmVwb3J0cydcIlxuICBbdGl0bGVdPVwiJ1RoZXJlIGFyZSBubyByZXBvcnRzIGRlZmluZWQuJyB8IHRyYW5zbGF0ZVwiXG4gIFtzdWJ0aXRsZV09XCInQWRkIGEgcmVwb3J0IGZpcnN0LicgfCB0cmFuc2xhdGVcIlxuPlxuICA8cD5cbiAgICA8YnV0dG9uXG4gICAgICB0aXRsZT1cInt7ICdBZGQgcmVwb3J0JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgIFthdHRyLmRhdGEtY3ldPVwiJ3JlcG9ydHMtYWRkLXJlcG9ydC1lbXB0eS1zdGF0ZS1idXR0b24nXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhY2FuQWRkUmVwb3J0XCJcbiAgICAgIChjbGljayk9XCJhZGQoKVwiXG4gICAgPlxuICAgICAge3sgJ0FkZCByZXBvcnQnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gIDwvcD5cbiAgPHAgYzh5LWd1aWRlLWRvY3M+XG4gICAgPHNtYWxsIHRyYW5zbGF0ZSBuZ05vbkJpbmRhYmxlPlxuICAgICAgRmluZCBvdXQgbW9yZSBpbiB0aGVcbiAgICAgIDxhIGM4eS1ndWlkZS1ocmVmPVwidXNlcnMtZ3VpZGUvY29ja3BpdC8jcmVwb3J0c1wiPlVzZXIgZ3VpZGVgS0VFUF9PUklHSU5BTGA8L2E+XG4gICAgICAuXG4gICAgPC9zbWFsbD5cbiAgPC9wPlxuPC9jOHktdWktZW1wdHktc3RhdGU+XG4iXX0=
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWRhc2hib2FyZC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvbnRleHQtZGFzaGJvYXJkL3JlcG9ydC1kYXNoYm9hcmQvcmVwb3J0LWRhc2hib2FyZC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2NvbnRleHQtZGFzaGJvYXJkL3JlcG9ydC1kYXNoYm9hcmQvcmVwb3J0LWRhc2hib2FyZC1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQWtCLGdCQUFnQixFQUFlLE1BQU0sYUFBYSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxZQUFZLEVBQ1osTUFBTSxFQUNOLFlBQVksRUFDWixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2pCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7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QUp4QyxTQUFTOytCQUNFLDJCQUEyQjs2VkFJZSxNQUFNO3NCQUF6RCxTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJbnZlbnRvcnlTZXJ2aWNlLCBJUmVzdWx0TGlzdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIEZpbHRlcklucHV0Q29tcG9uZW50LFxuICBnZXR0ZXh0LFxuICBNb2RhbFNlcnZpY2UsXG4gIFN0YXR1cyxcbiAgQWxlcnRTZXJ2aWNlLFxuICBQZXJtaXNzaW9ucyxcbiAgR2FpbnNpZ2h0U2VydmljZVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IERhc2hib2FyZERldGFpbENvbXBvbmVudCB9IGZyb20gJy4uL2Rhc2hib2FyZC1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRleHREYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi4vY29udGV4dC1kYXNoYm9hcmQuc2VydmljZSc7XG5pbXBvcnQgeyBDb250ZXh0RGFzaGJvYXJkVHlwZSwgUFJPRFVDVF9FWFBFUklFTkNFIH0gZnJvbSAnLi4vY29udGV4dC1kYXNoYm9hcmQubW9kZWwnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgUmVwb3J0RGFzaGJvYXJkU2VydmljZSB9IGZyb20gJy4vcmVwb3J0LWRhc2hib2FyZC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXJlcG9ydC1kYXNoYm9hcmQtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXBvcnQtZGFzaGJvYXJkLWxpc3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9ydERhc2hib2FyZExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKEZpbHRlcklucHV0Q29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgZmlsdGVyOiBGaWx0ZXJJbnB1dENvbXBvbmVudDtcbiAgdGV4dEZpbHRlciQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgnJyk7XG4gIHJlbG9hZCQ6IEJlaGF2aW9yU3ViamVjdDx2b2lkPiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG4gIHJlbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICByZXBvcnRzJDogT2JzZXJ2YWJsZTxJUmVzdWx0TGlzdDxJTWFuYWdlZE9iamVjdD4+ID0gY29tYmluZUxhdGVzdChcbiAgICB0aGlzLnRleHRGaWx0ZXIkLnBpcGUoZGVib3VuY2VUaW1lKDQwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgIHRoaXMucmVsb2FkJFxuICApLnBpcGUoXG4gICAgdGFwKCgpID0+IHtcbiAgICAgIHRoaXMucmVsb2FkaW5nID0gdHJ1ZTtcbiAgICB9KSxcbiAgICBzd2l0Y2hNYXAoKFt0ZXh0XSkgPT4gdGhpcy5sb2FkUmVwb3J0cyh0ZXh0KSksXG4gICAgdGFwKCgpID0+IHtcbiAgICAgIHRoaXMucmVsb2FkaW5nID0gZmFsc2U7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcbiAgY2FuQWRkUmVwb3J0ID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgREVMRVRFRF9TVUNDRVNTX01TRyA9IGdldHRleHQoJ1JlcG9ydCBkZWxldGVkLicpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW52ZW50b3J5U2VydmljZTogSW52ZW50b3J5U2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHREYXNoYm9hcmRTZXJ2aWNlOiBDb250ZXh0RGFzaGJvYXJkU2VydmljZSxcbiAgICBwcml2YXRlIGJzTW9kYWw6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIG1vZGFsOiBNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJlcG9ydERhc2hib2FyZFNlcnZpY2U6IFJlcG9ydERhc2hib2FyZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZXJtaXNzaW9uczogUGVybWlzc2lvbnMsXG4gICAgcHJpdmF0ZSBnYWluc2lnaHRTZXJ2aWNlOiBHYWluc2lnaHRTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNhbkFkZFJlcG9ydCA9IHRoaXMucGVybWlzc2lvbnMuaGFzQW55Um9sZShbXG4gICAgICAnUk9MRV9JTlZFTlRPUllfQ1JFQVRFJyxcbiAgICAgICdST0xFX0lOVkVOVE9SWV9BRE1JTidcbiAgICBdKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWRSZXBvcnRzKHBhcnRpYWxOYW1lPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHBhcnRpYWxOYW1lXG4gICAgICA/IHRoaXMucmVwb3J0RGFzaGJvYXJkU2VydmljZS5saXN0UmVwb3J0cyh7IGZpbHRlcjogeyBuYW1lOiBgKiR7cGFydGlhbE5hbWV9KmAgfSB9KVxuICAgICAgOiB0aGlzLnJlcG9ydERhc2hib2FyZFNlcnZpY2UubGlzdFJlcG9ydHMoKTtcbiAgfVxuXG4gIGFzeW5jIGFkZCgpIHtcbiAgICBjb25zdCBpbml0aWFsU3RhdGUgPSB7XG4gICAgICBpc1JlcG9ydDogdHJ1ZSxcbiAgICAgIGlzTmFtZWREYXNoYm9hcmQ6IHRydWVcbiAgICB9O1xuICAgIGNvbnN0IG1vZGFsID0gdGhpcy5ic01vZGFsLnNob3coRGFzaGJvYXJkRGV0YWlsQ29tcG9uZW50LCB7XG4gICAgICBjbGFzczogJ21vZGFsLWxnJyxcbiAgICAgIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWUsXG4gICAgICBhcmlhRGVzY3JpYmVkYnk6ICdtb2RhbC1ib2R5JyxcbiAgICAgIGFyaWFMYWJlbGxlZEJ5OiAnbW9kYWwtdGl0bGUnLFxuICAgICAgaW5pdGlhbFN0YXRlXG4gICAgfSkuY29udGVudCBhcyBEYXNoYm9hcmREZXRhaWxDb21wb25lbnQ7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNmZyA9IGF3YWl0IG1vZGFsLnJlc3VsdDtcbiAgICAgIGNvbnN0IHsgbmFtZSwgaWNvbiwgYzh5X0lzTmF2aWdhdG9yTm9kZSwgcHJpb3JpdHksIGRlc2NyaXB0aW9uLCAuLi5kYXNoYm9hcmRDZmcgfSA9IGNmZztcbiAgICAgIGNvbnN0IHJlcG9ydCA9IChcbiAgICAgICAgYXdhaXQgdGhpcy5yZXBvcnREYXNoYm9hcmRTZXJ2aWNlLmNyZWF0ZVJlcG9ydCh7XG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBpY29uLFxuICAgICAgICAgIGM4eV9Jc05hdmlnYXRvck5vZGUsXG4gICAgICAgICAgcHJpb3JpdHksXG4gICAgICAgICAgZGVzY3JpcHRpb25cbiAgICAgICAgfSBhcyBQYXJ0aWFsPElNYW5hZ2VkT2JqZWN0PilcbiAgICAgICkuZGF0YTtcblxuICAgICAgYXdhaXQgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5jcmVhdGUoXG4gICAgICAgIGRhc2hib2FyZENmZyxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICBgJHt0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLlJFUE9SVF9QQVJUSUFMX05BTUV9JHtyZXBvcnQuaWR9YFxuICAgICAgKTtcbiAgICAgIGlmIChyZXBvcnQuYzh5X0lzTmF2aWdhdG9yTm9kZSkge1xuICAgICAgICB0aGlzLnJlcG9ydERhc2hib2FyZFNlcnZpY2UuYWRkUmVwb3J0TmF2aWdhdG9yTm9kZShyZXBvcnQpO1xuICAgICAgfVxuICAgICAgdGhpcy5yZWxvYWQkLm5leHQoKTtcbiAgICAgIG1vZGFsLmNsb3NlKCk7XG4gICAgICB0aGlzLmdhaW5zaWdodFNlcnZpY2UudHJpZ2dlckV2ZW50KFBST0RVQ1RfRVhQRVJJRU5DRS5EQVNIQk9BUkQuRVZFTlRTLlJFUE9SVFMsIHtcbiAgICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0UuREFTSEJPQVJELkNPTVBPTkVOVFMuQUREX1JFUE9SVCxcbiAgICAgICAgYWN0aW9uOiBQUk9EVUNUX0VYUEVSSUVOQ0UuREFTSEJPQVJELkFDVElPTlMuQ1JFQVRFLFxuICAgICAgICBuYW1lOiByZXBvcnQubmFtZSxcbiAgICAgICAgaWQ6IHJlcG9ydC5pZCxcbiAgICAgICAgY29udGV4dDogUFJPRFVDVF9FWFBFUklFTkNFLkRBU0hCT0FSRC5DT05URVhULlJFUE9SVFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIGlmIChleCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFNvbWV0aGluZyB3ZW50IHdyb25nOiAke2V4fWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZShyZXBvcnQ6IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhc2hib2FyZCA9IGF3YWl0IHRoaXMuY29udGV4dERhc2hib2FyZFNlcnZpY2VcbiAgICAgICAgLmdldERhc2hib2FyZCQoYHJlcG9ydF8ke3JlcG9ydC5pZH1gLCBbQ29udGV4dERhc2hib2FyZFR5cGUuTmFtZWRdKVxuICAgICAgICAudG9Qcm9taXNlKCk7XG4gICAgICBjb25zdCBpc0Rhc2hib2FyZEZyb3plbiA9ICEhZGFzaGJvYXJkPy5jOHlfRGFzaGJvYXJkPy5pc0Zyb3plbjtcblxuICAgICAgY29uc3QgbXNnID0gaXNEYXNoYm9hcmRGcm96ZW5cbiAgICAgICAgPyBnZXR0ZXh0KFxuICAgICAgICAgICAgYFlvdSBhcmUgYWJvdXQgdG8gZGVsZXRlIHRoZSByZXBvcnQgXCJ7eyByZXBvcnROYW1lIH19XCIuIEJlIGF3YXJlIHRoYXQgdGhlIHJlcG9ydCBoYXMgYSBsb2NrZWQgZGFzaGJvYXJkIGFzc2lnbmVkLiBEbyB5b3Ugd2FudCB0byBwcm9jZWVkP2BcbiAgICAgICAgICApXG4gICAgICAgIDogZ2V0dGV4dChgWW91IGFyZSBhYm91dCB0byBkZWxldGUgdGhlIHJlcG9ydCBcInt7IHJlcG9ydE5hbWUgfX1cIi4gRG8geW91IHdhbnQgdG8gcHJvY2VlZD9gKTtcblxuICAgICAgYXdhaXQgdGhpcy5tb2RhbC5jb25maXJtKFxuICAgICAgICBnZXR0ZXh0KCdEZWxldGUgcmVwb3J0JyksXG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KG1zZywge1xuICAgICAgICAgIHJlcG9ydE5hbWU6IHJlcG9ydC5uYW1lXG4gICAgICAgIH0pLFxuICAgICAgICBTdGF0dXMuREFOR0VSLFxuICAgICAgICB7XG4gICAgICAgICAgb2s6IGdldHRleHQoJ0RlbGV0ZScpLFxuICAgICAgICAgIGNhbmNlbDogZ2V0dGV4dCgnQ2FuY2VsJylcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgYXdhaXQgdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZS5kZWxldGUoZGFzaGJvYXJkLCBmYWxzZSk7XG4gICAgICBhd2FpdCB0aGlzLmludmVudG9yeVNlcnZpY2UuZGVsZXRlKHJlcG9ydC5pZCk7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKHRoaXMuREVMRVRFRF9TVUNDRVNTX01TRyk7XG4gICAgICBpZiAocmVwb3J0LmM4eV9Jc05hdmlnYXRvck5vZGUpIHtcbiAgICAgICAgdGhpcy5yZXBvcnREYXNoYm9hcmRTZXJ2aWNlLnJlbW92ZU5hdmlnYXRvck5vZGUocmVwb3J0KTtcbiAgICAgIH1cbiAgICAgIHRoaXMucmVsb2FkJC5uZXh0KCk7XG4gICAgICB0aGlzLmdhaW5zaWdodFNlcnZpY2UudHJpZ2dlckV2ZW50KFBST0RVQ1RfRVhQRVJJRU5DRS5EQVNIQk9BUkQuRVZFTlRTLlJFUE9SVFMsIHtcbiAgICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0UuREFTSEJPQVJELkNPTVBPTkVOVFMuUkVQT1JUU19MSVNULFxuICAgICAgICBhY3Rpb246IFBST0RVQ1RfRVhQRVJJRU5DRS5EQVNIQk9BUkQuQUNUSU9OUy5ERUxFVEUsXG4gICAgICAgIG5hbWU6IHJlcG9ydC5uYW1lLFxuICAgICAgICBpZDogcmVwb3J0LmlkLFxuICAgICAgICBjb250ZXh0OiBQUk9EVUNUX0VYUEVSSUVOQ0UuREFTSEJPQVJELkNPTlRFWFQuUkVQT1JUXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgaWYgKGV4KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgU29tZXRoaW5nIHdlbnQgd3Jvbmc6ICR7ZXh9YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdXBkYXRlKHJlcG9ydDogSU1hbmFnZWRPYmplY3QpIHtcbiAgICByZXBvcnQuYzh5X0lzTmF2aWdhdG9yTm9kZSA9IHJlcG9ydC5jOHlfSXNOYXZpZ2F0b3JOb2RlID8ge30gOiBudWxsO1xuICAgIGF3YWl0IHRoaXMuaW52ZW50b3J5U2VydmljZS51cGRhdGUocmVwb3J0KTtcbiAgICByZXBvcnQuYzh5X0lzTmF2aWdhdG9yTm9kZVxuICAgICAgPyB0aGlzLnJlcG9ydERhc2hib2FyZFNlcnZpY2UuYWRkUmVwb3J0TmF2aWdhdG9yTm9kZShyZXBvcnQpXG4gICAgICA6IHRoaXMucmVwb3J0RGFzaGJvYXJkU2VydmljZS5yZW1vdmVOYXZpZ2F0b3JOb2RlKHJlcG9ydCk7XG4gIH1cbn1cbiIsIjxjOHktdGl0bGU+XG4gIHt7ICdSZXBvcnRzJyB8IHRyYW5zbGF0ZSB9fVxuPC9jOHktdGl0bGU+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ2xlZnQnXCIgaXRlbUNsYXNzPVwibmF2YmFyLWZvcm1cIj5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIGlucHV0LWdyb3VwLXNlYXJjaFwiPlxuICAgIDxpbnB1dFxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidGaWx0ZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ0ZpbHRlcuKApicgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgW25nTW9kZWxdPVwidGV4dEZpbHRlciQgfCBhc3luY1wiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJ0ZXh0RmlsdGVyJC5uZXh0KCRldmVudClcIlxuICAgIC8+XG4gICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC1hZGRvblwiPlxuICAgICAgPGkgYzh5SWNvbj1cInNlYXJjaFwiICpuZ0lmPVwiKHRleHRGaWx0ZXIkIHwgYXN5bmMpLmxlbmd0aCA9PT0gMFwiPjwvaT5cbiAgICAgIDxpXG4gICAgICAgIGNsYXNzPVwidGV4dC1tdXRlZFwiXG4gICAgICAgIGM4eUljb249XCJ0aW1lc1wiXG4gICAgICAgICpuZ0lmPVwiKHRleHRGaWx0ZXIkIHwgYXN5bmMpLmxlbmd0aCA+IDBcIlxuICAgICAgICAoY2xpY2spPVwidGV4dEZpbHRlciQubmV4dCgnJylcIlxuICAgICAgICBweC1ldmVudD1cIkNsZWFyIGZpbHRlcmluZyByZXBvcnRzXCJcbiAgICAgID48L2k+XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvYzh5LWFjdGlvbi1iYXItaXRlbT5cblxuPGM4eS1hY3Rpb24tYmFyLWl0ZW0gW3BsYWNlbWVudF09XCIncmlnaHQnXCI+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgdGl0bGU9XCJ7eyAnQWRkIHJlcG9ydCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIFthdHRyLmRhdGEtY3ldPVwiJ3JlcG9ydHMtYWRkLXJlcG9ydC1hY3Rpb24tYmFyLWJ1dHRvbidcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIChjbGljayk9XCJhZGQoKVwiXG4gICAgW2Rpc2FibGVkXT1cIiFjYW5BZGRSZXBvcnRcIlxuICA+XG4gICAgPGkgYzh5SWNvbj1cInBsdXMtY2lyY2xlXCI+PC9pPlxuICAgIHt7ICdBZGQgcmVwb3J0JyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwiIWNhbkFkZFJlcG9ydFwiXG4gICAgY2xhc3M9XCJidG4gYnRuLWRvdCBtLXItMTZcIlxuICAgIHBvcG92ZXI9XCJ7eyAnWW91IGRvblxcJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFkZCByZXBvcnRzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgdHJpZ2dlcnM9XCJmb2N1c1wiXG4gICAgcGxhY2VtZW50PVwidG9wXCJcbiAgICBjb250YWluZXI9XCJib2R5XCJcbiAgPlxuICAgIDxpIFtjOHlJY29uXT1cIidpbmZvLWNpcmNsZSdcIiBjbGFzcz1cInRleHQtcHJpbWFyeVwiPjwvaT5cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktYWN0aW9uLWJhci1pdGVtIFtwbGFjZW1lbnRdPVwiJ3JpZ2h0J1wiPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmtcIlxuICAgIHRpdGxlPVwie3sgJ1JlbG9hZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIChjbGljayk9XCJsb2FkUmVwb3J0cygpXCJcbiAgPlxuICAgIDxpIFtuZ0NsYXNzXT1cInsgJ2ljb24tc3Bpbic6IHJlbG9hZGluZyB9XCIgYzh5SWNvbj1cInJlZnJlc2hcIj48L2k+XG4gICAge3sgJ1JlbG9hZCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG5cbjxjOHktaGVscCBzcmM9XCIvdXNlcnMtZ3VpZGUvY29ja3BpdC8jcmVwb3J0c1wiPjwvYzh5LWhlbHA+XG5cbjxjOHktbGlzdC1ncm91cD5cbiAgPGM4eS1saVxuICAgIGNsYXNzPVwicGFnZS1zdGlja3ktaGVhZGVyIGhpZGRlbi14cyBoaWRkZW4tc21cIlxuICAgICpuZ0lmPVwiKHJlcG9ydHMkIHwgYXN5bmMpPy5kYXRhLmxlbmd0aCA+IDBcIlxuICA+XG4gICAgPGM4eS1saS1pY29uPlxuICAgICAgPGkgY2xhc3M9XCJwLWwtMjRcIj48L2k+XG4gICAgPC9jOHktbGktaWNvbj5cbiAgICA8Yzh5LWxpLWJvZHkgY2xhc3M9XCJjb250ZW50LWZsZXgtNjBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPlxuICAgICAgICB7eyAnUmVwb3J0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cbiAgICAgICAge3sgJ0Rlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTJcIj5cbiAgICAgICAge3sgJ1Nob3cgaW4gbmF2aWdhdG9yJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9jOHktbGktYm9keT5cbiAgPC9jOHktbGk+XG5cbiAgPGM4eS1saSAqYzh5Rm9yPVwibGV0IHJlcG9ydCBvZiByZXBvcnRzJDsgbGV0IGkgPSBpbmRleDsgbG9hZE1vcmU6ICdhdXRvJ1wiPlxuICAgIDxjOHktbGktaWNvbiBbaWNvbl09XCJyZXBvcnQuaWNvblwiPjwvYzh5LWxpLWljb24+XG4gICAgPGM4eS1saS1ib2R5IGNsYXNzPVwiY29udGVudC1mbGV4LTYwXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuLWNsZWFuXCJcbiAgICAgICAgICB0aXRsZT1cInt7IHJlcG9ydC5uYW1lIH19XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICByb3V0ZXJMaW5rPVwiL3JlcG9ydHMve3sgcmVwb3J0LmlkIH19XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiPlxuICAgICAgICAgICAge3sgcmVwb3J0Lm5hbWUgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJzbWFsbCB0ZXh0LXRydW5jYXRlLXdyYXBcIj5cbiAgICAgICAgICA8ZW0gY2xhc3M9XCJ0ZXh0LW11dGVkXCIgKm5nSWY9XCIhcmVwb3J0LmRlc2NyaXB0aW9uOyBlbHNlIHNob3dEZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAge3sgJ05vIGRlc2NyaXB0aW9uIGF2YWlsYWJsZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2VtPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2hvd0Rlc2NyaXB0aW9uPlxuICAgICAgICAgICAge3sgcmVwb3J0LmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTIgZml0LWgtMjAgbS10LXhzLThcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYzh5LXN3aXRjaCBjOHktc3dpdGNoLS1pbmxpbmVcIiB0aXRsZT1cInt7ICdTaG93IGluIG5hdmlnYXRvcicgfCB0cmFuc2xhdGUgfX1cIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiISFyZXBvcnQuYzh5X0lzTmF2aWdhdG9yTm9kZVwiXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGUocmVwb3J0KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2aXNpYmxlLXhzXCI+XG4gICAgICAgICAgICB7eyAnU2hvdyBpbiBuYXZpZ2F0b3InIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEgaGlkZGVuLXhzXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZG90IGJ0bi1kb3QtLWRhbmdlciBzaG93T25Ib3ZlciBtLWwtYXV0byBkLWZsZXhcIlxuICAgICAgICAgIChjbGljayk9XCJkZWxldGUocmVwb3J0KVwiXG4gICAgICAgICAgdG9vbHRpcD1cInt7ICdSZW1vdmUgcmVwb3J0JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInUmVtb3ZlIHJlcG9ydCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgYzh5SWNvbj1cIm1pbnVzLWNpcmNsZVwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2aXNpYmxlLXhzIHAtdC04IHRleHQtcmlnaHRcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbVwiXG4gICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZShyZXBvcnQpXCJcbiAgICAgICAgICB0aXRsZT1cInt7ICdSZW1vdmUgcmVwb3J0JyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjOHlJY29uPVwiZGVsZXRlXCI+PC9pPlxuICAgICAgICAgIHt7ICdSZW1vdmUgcmVwb3J0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvYzh5LWxpLWJvZHk+XG4gIDwvYzh5LWxpPlxuPC9jOHktbGlzdC1ncm91cD5cblxuPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAqbmdJZj1cIihyZXBvcnRzJCB8IGFzeW5jKT8uZGF0YS5sZW5ndGggPT09IDBcIlxuICBbaWNvbl09XCInYzh5LXJlcG9ydHMnXCJcbiAgW3RpdGxlXT1cIidUaGVyZSBhcmUgbm8gcmVwb3J0cyBkZWZpbmVkLicgfCB0cmFuc2xhdGVcIlxuICBbc3VidGl0bGVdPVwiJ0FkZCBhIHJlcG9ydCBmaXJzdC4nIHwgdHJhbnNsYXRlXCJcbj5cbiAgPHA+XG4gICAgPGJ1dHRvblxuICAgICAgdGl0bGU9XCJ7eyAnQWRkIHJlcG9ydCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICBbYXR0ci5kYXRhLWN5XT1cIidyZXBvcnRzLWFkZC1yZXBvcnQtZW1wdHktc3RhdGUtYnV0dG9uJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwiIWNhbkFkZFJlcG9ydFwiXG4gICAgICAoY2xpY2spPVwiYWRkKClcIlxuICAgID5cbiAgICAgIHt7ICdBZGQgcmVwb3J0JyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L3A+XG4gIDxwIGM4eS1ndWlkZS1kb2NzPlxuICAgIDxzbWFsbCB0cmFuc2xhdGUgbmdOb25CaW5kYWJsZT5cbiAgICAgIEZpbmQgb3V0IG1vcmUgaW4gdGhlXG4gICAgICA8YSBjOHktZ3VpZGUtaHJlZj1cInVzZXJzLWd1aWRlL2NvY2twaXQvI3JlcG9ydHNcIj5Vc2VyIGd1aWRlYEtFRVBfT1JJR0lOQUxgPC9hPlxuICAgICAgLlxuICAgIDwvc21hbGw+XG4gIDwvcD5cbjwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuIl19
|
|
@@ -2,7 +2,6 @@ import { Injectable, Injector } from '@angular/core';
|
|
|
2
2
|
import { OptionsService } from '../common/options.service';
|
|
3
3
|
import { documentationItems } from './defaults.items';
|
|
4
4
|
import { AppStateService } from '../common/ui-state.service';
|
|
5
|
-
import { gettext } from '../i18n/gettext';
|
|
6
5
|
import { HOOK_DOCS } from './docs.models';
|
|
7
6
|
import { fromTriggerOnce, getInjectedHooks } from '../common/extension-hooks';
|
|
8
7
|
import { Subject } from 'rxjs';
|
|
@@ -93,14 +92,6 @@ export class DocsService {
|
|
|
93
92
|
});
|
|
94
93
|
staticLinks = staticLinks.concat(links);
|
|
95
94
|
}
|
|
96
|
-
if (supportUrl) {
|
|
97
|
-
staticLinks.push({
|
|
98
|
-
icon: 'comments',
|
|
99
|
-
label: gettext('Forum support'),
|
|
100
|
-
url: supportUrl,
|
|
101
|
-
type: 'doc'
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
95
|
return staticLinks;
|
|
105
96
|
}
|
|
106
97
|
getLink(templateStr, partialLink) {
|
|
@@ -141,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
141
132
|
providedIn: 'root'
|
|
142
133
|
}]
|
|
143
134
|
}], ctorParameters: function () { return [{ type: i1.OptionsService }, { type: i2.AppStateService }, { type: i0.Injector }, { type: i3.Router }]; } });
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9kb2NzL2RvY3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQVcsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQW9DLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hILE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7OztBQUs3QyxNQUFNLE9BQU8sV0FBVztJQWtCdEIsWUFDVSxPQUF1QixFQUN2QixHQUFvQixFQUNwQixZQUFzQixFQUM5QixNQUFjO1FBSE4sWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsUUFBRyxHQUFILEdBQUcsQ0FBaUI7UUFDcEIsaUJBQVksR0FBWixZQUFZLENBQVU7UUFuQmhDOztXQUVHO1FBQ0gsY0FBUyxHQUFnQyxFQUFFLENBQUM7UUFDNUM7OztXQUdHO1FBQ00sbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFB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V0FBVyxJQUFJLFdBQVcsSUFBSSxDQUFDO0lBQzNDLENBQUM7O3dHQWpKVSxXQUFXOzRHQUFYLFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBkb2N1bWVudGF0aW9uSXRlbXMgfSBmcm9tICcuL2RlZmF1bHRzLml0ZW1zJztcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi91aS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi9pMThuL2dldHRleHQnO1xuaW1wb3J0IHsgRG9jTGluaywgSE9PS19ET0NTLCBEb2NMaW5rV2l0aExhYmVsIH0gZnJvbSAnLi9kb2NzLm1vZGVscyc7XG5pbXBvcnQgeyBFeHRlbnNpb25GYWN0b3J5LCBFeHRlbnNpb25Qb2ludCwgZnJvbVRyaWdnZXJPbmNlLCBnZXRJbmplY3RlZEhvb2tzIH0gZnJvbSAnLi4vY29tbW9uL2V4dGVuc2lvbi1ob29rcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgc2hhcmVSZXBsYXksIGZpcnN0LCBmaWx0ZXIsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaXNVbmRlZmluZWQsIGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERvY3NTZXJ2aWNlIGltcGxlbWVudHMgRXh0ZW5zaW9uUG9pbnQ8RG9jTGluaz4ge1xuICBpdGVtcyQ6IE9ic2VydmFibGU8RG9jTGlua1tdPjtcbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZmFjdG9yaWVzIHRoYXQgY2FuIGJlIGFkZGVkIGJ5IHBsdWdpbnMuXG4gICAqL1xuICBmYWN0b3JpZXM6IEV4dGVuc2lvbkZhY3Rvcnk8RG9jTGluaz5bXSA9IFtdO1xuICAvKipcbiAgICogUmVmcmVzaCB0aGUgZXh0ZW5zaW9uIGZhY3RvcmllcyBzdWJqZWN0LlxuICAgKiBAcmVhZG9ubHlcbiAgICovXG4gIHJlYWRvbmx5IHJlZnJlc2hUcmlnZ2VyID0gbmV3IFN1YmplY3QoKTtcblxuICBpbmplY3RvcnMgPSBbdGhpcy5yb290SW5qZWN0b3JdO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGRvY3VtZW50YXRpb24gVVJMLlxuICAgKi9cbiAgcmVhZG9ubHkgREVGQVVMVF9ET0NTX0JBU0VfVVJMID0gJ2h0dHBzOi8vd3d3LmN1bXVsb2NpdHkuY29tL2d1aWRlcy97eyB2ZXJzaW9uIH19JztcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvcHRpb25zOiBPcHRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIGFwcDogQXBwU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm9vdEluamVjdG9yOiBJbmplY3RvcixcbiAgICByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICBjb25zdCBzdXBwb3J0VXJsUmVmcmVzaFRyaWdnZXIgPSB0aGlzLmFwcC5tYXAoKHsgc3VwcG9ydFVybCB9KSA9PiBzdXBwb3J0VXJsKTtcblxuICAgIHRoaXMuaXRlbXMkID0gZnJvbVRyaWdnZXJPbmNlPERvY0xpbms+KFxuICAgICAgcm91dGVyLFxuICAgICAgW3N1cHBvcnRVcmxSZWZyZXNoVHJpZ2dlciwgdGhpcy5yZWZyZXNoVHJpZ2dlcl0sXG4gICAgICBbZ2V0SW5qZWN0ZWRIb29rczxEb2NMaW5rPihIT09LX0RPQ1MsIHRoaXMuaW5qZWN0b3JzKSwgKCkgPT4gdGhpcy5mYWN0b3JpZXMsIHRoaXNdXG4gICAgKS5waXBlKHNoYXJlUmVwbGF5KDEpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgfVxuXG4gIGdldEJhc2VVcmwodWlWZXJzaW9uPzogc3RyaW5nIHwgeyBuZ3g6IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICBjb25zdCBkb2NzQmFzZVVybCA9IHRoaXMub3B0aW9ucy5nZXQoJ2RvY3NCYXNlVXJsJywgdGhpcy5ERUZBVUxUX0RPQ1NfQkFTRV9VUkwpO1xuICAgIHJldHVybiB0aGlzLmdldFVybFdpdGhEb2NzVmVyc2lvbihkb2NzQmFzZVVybCwgdWlWZXJzaW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlcyBhIFVSTCBhbmQgcmVwbGFjZXMgYWxsIGB7eyB2ZXJzaW9uIH19YCBwbGFjZWhvbGRlcnMgd2l0aCB0aGUgcmVsZXZhbnQgZG9jcyB2ZXJzaW9uXG4gICAqICh0aGUgdmVyc2lvbiBpcyBkZXJpdmVkIGZyb20gdGhlIGFwcCBzdGF0ZSBvciBmcm9tIHRoZSBwcm92aWRlZCBwYXJhbWV0ZXIpLlxuICAgKiBAcGFyYW0gdXJsIEFueSBVUkwgdGhhdCBjb250YWlucyBge3sgdmVyc2lvbiB9fWAgcGxhY2Vob2xkZXJzLlxuICAgKiBAcGFyYW0gdWlWZXJzaW9uIEEgdmVyc2lvbiBzdHJpbmcgb3Igb2JqZWN0LCBkZWZhdWx0cyB0byB0aGUgYXBwIHN0YXRlIHZlcnNpb24uXG4gICAqIEByZXR1cm5zIFRoZSBVUkwgd2l0aCByZXBsYWNlZCBge3sgdmVyc2lvbiB9fWAgcGxhY2Vob2xkZXJzLlxuICAgKi9cbiAgZ2V0VXJsV2l0aERvY3NWZXJzaW9uKFxuICAgIHVybDogc3RyaW5nLFxuICAgIHVpVmVyc2lvbjogc3RyaW5nIHwgeyBuZ3g6IHN0cmluZyB9ID0gdGhpcy5hcHAudWlWZXJzaW9uXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgdmVyc2lvbjogc3RyaW5nID0gdHlwZW9mIHVpVmVyc2lvbiA9PT0gJ3N0cmluZycgPyB1aVZlcnNpb24gOiBnZXQodWlWZXJzaW9uLCAnbmd4Jyk7XG4gICAgbGV0IGRvY3NWZXJzaW9uID0gJyc7XG4gICAgaWYgKCEoaXNVbmRlZmluZWQodmVyc2lvbikgfHwgdmVyc2lvbiA9PT0gJycpKSB7XG4gICAgICBkb2NzVmVyc2lvbiA9IHRoaXMuZ2V0RG9jc1ZlcnNpb25Gb3JVaVZlcnNpb24odmVyc2lvbik7XG4gICAgfVxuICAgIHJldHVybiB1cmwucmVwbGFjZSgve3tcXHMqdmVyc2lvblxccyp9fS9nLCBkb2NzVmVyc2lvbikucmVwbGFjZSgvXFwvKyQvZywgJycpO1xuICB9XG5cbiAgZ2V0IHRlbXBsYXRlU3RyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXQoJ2d1aWRlSHJlZlRlbXBsYXRlJywgJyR7ZG9jc0Jhc2VVcmx9JHtwYXJ0aWFsVXJsfScpO1xuICB9XG5cbiAgZ2V0VXNlckd1aWRlTGluayhsaW5rKSB7XG4gICAgaWYgKC9eaHR0cHM/Oi8udGVzdChsaW5rKSkge1xuICAgICAgcmV0dXJuIGxpbms7XG4gICAgfVxuICAgIGlmICh0aGlzLmdldEJhc2VVcmwgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRMaW5rKHRoaXMudGVtcGxhdGVTdHIsIGxpbmspO1xuICB9XG5cbiAgbGlzdCgpIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoaSA9PiAhIWkubGVuZ3RoKSxcbiAgICAgICAgZmlyc3QoKVxuICAgICAgKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLnJlZnJlc2hUcmlnZ2VyLm5leHQoMSk7XG4gIH1cblxuICBnZXQoKSB7XG4gICAgLy8gdXNlIHRoZSBmdW5jdGlvbiBhcyBhIGZhY3RvcnlcbiAgICBjb25zdCB7IGxpbmtzLCBub0RlZmF1bHQsIGV4Y2x1ZGVEZWZhdWx0ID0gW10gfSA9IHRoaXMub3B0aW9ucy5nZXQoJ2RvY3MnLCB7fSk7XG4gICAgY29uc3QgeyBzdXBwb3J0VXJsIH0gPSB0aGlzLmFwcC5zdGF0ZTtcbiAgICBsZXQgc3RhdGljTGlua3MgPSBub0RlZmF1bHRcbiAgICAgID8gW11cbiAgICAgIDogZG9jdW1lbnRhdGlvbkl0ZW1zXG4gICAgICAgICAgLm1hcCgoaXRlbTogRG9jTGlua1dpdGhMYWJlbCkgPT4gKHsgLi4uaXRlbSwgdXJsOiB0aGlzLmdldFVzZXJHdWlkZUxpbmsoaXRlbS51cmwpIH0pKVxuICAgICAgICAgIC5maWx0ZXIoKHsgdXJsIH0pID0+ICFleGNsdWRlRGVmYXVsdC5zb21lKGUgPT4gbmV3IFJlZ0V4cChlKS50ZXN0KHVybCkpKTtcblxuICAgIGlmIChsaW5rcykge1xuICAgICAgLy8gYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICAgIGxpbmtzLm1hcCgobG5rOiBEb2NMaW5rKSA9PiB7XG4gICAgICAgIGlmIChpc1VuZGVmaW5lZChsbmsudHlwZSkpIHtcbiAgICAgICAgICBsbmsudHlwZSA9ICdkb2MnO1xuICAgICAgICAgIHJldHVybiBsbms7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgc3RhdGljTGlua3MgPSBzdGF0aWNMaW5rcy5jb25jYXQobGlua3MpO1xuICAgIH1cbiAgICBpZiAoc3VwcG9ydFVybCkge1xuICAgICAgc3RhdGljTGlua3MucHVzaCh7XG4gICAgICAgIGljb246ICdjb21tZW50cycsXG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdGb3J1bSBzdXBwb3J0JyksXG4gICAgICAgIHVybDogc3VwcG9ydFVybCxcbiAgICAgICAgdHlwZTogJ2RvYydcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc3RhdGljTGlua3M7XG4gIH1cblxuICBwcml2YXRlIGdldExpbmsodGVtcGxhdGVTdHIsIHBhcnRpYWxMaW5rKSB7XG4gICAgaWYgKCF0ZW1wbGF0ZVN0cikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHRlbXBsYXRlU3RyXG4gICAgICAucmVwbGFjZSgvXFwke2RvY3NCYXNlVXJsfS8sIHRoaXMuZ2V0QmFzZVVybCgpKVxuICAgICAgLnJlcGxhY2UoL1xcJHtwYXJ0aWFsVXJsfS8sIHRoaXMucHJlZml4V2l0aFNsYXNoKHBhcnRpYWxMaW5rKSk7XG4gIH1cblxuICBwcml2YXRlIHByZWZpeFdpdGhTbGFzaChwYXJ0aWFsTGluayA9ICcnKSB7XG4gICAgY29uc3Qgc2hvdWxkUHJlZml4ID0gIShwYXJ0aWFsTGluayAmJiAvXlxcLy8udGVzdChwYXJ0aWFsTGluaykpO1xuICAgIGNvbnN0IHByZWZpeCA9IHNob3VsZFByZWZpeCA/ICcvJyA6ICcnO1xuICAgIHJldHVybiBgJHtwcmVmaXh9JHtwYXJ0aWFsTGlua31gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG1vc3QgcmVsZXZhbnQgdmVyc2lvbiBvZiBkb2N1bWVudGF0aW9uIGZvciB0aGUgZ2l2ZW4gdmVyc2lvbiBvZiBVSS5cbiAgICogRm9yIG1haW50ZW5hbmNlIHZlcnNpb25zLCBpdCdzIHRoZSBmaXJzdCB2ZXJzaW9uIGluIHRoZSBsaW5lLCBlLmcuIDEwMTcuMC4xMjMgLT4gMTAuMTcuMC5cbiAgICogRm9yIGRldmVsb3AgdmVyc2lvbnMsIGl0J3MgdGhlIG5leHQgbWlub3Igb25lLCBlLmcuIDEwMTcuMTIzLjAtU05BUFNIT1QgLT4gMTAuMTguMC5cbiAgICpcbiAgICogQHBhcmFtIHVpVmVyc2lvbiBUaGUgdmVyc2lvbiBvZiBVSS5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZ2V0RG9jc1ZlcnNpb25Gb3JVaVZlcnNpb24odWlWZXJzaW9uOiBzdHJpbmcpIHtcbiAgICBjb25zdCBbbWFqb3JNaW5vclN0ciwgcGF0Y2hTdHJdID0gdWlWZXJzaW9uLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgcGF0Y2hOdW1iZXIgPSBwYXJzZUludChwYXRjaFN0ciwgMTApO1xuICAgIGNvbnN0IHRha2VOZXh0TWlub3IgPSBwYXRjaE51bWJlciA+IDA7XG4gICAgY29uc3QgbWFqb3JOdW1iZXIgPSBNYXRoLmZsb29yKHBhcnNlSW50KG1ham9yTWlub3JTdHIsIDEwKSAvIDEwMCk7XG4gICAgY29uc3QgbWlub3JOdW1iZXIgPSBwYXJzZUludChtYWpvck1pbm9yU3RyLCAxMCkgLSBtYWpvck51bWJlciAqIDEwMCArICh0YWtlTmV4dE1pbm9yID8gMSA6IDApO1xuICAgIHJldHVybiBgJHttYWpvck51bWJlcn0uJHttaW5vck51bWJlcn0uMGA7XG4gIH1cbn1cbiJdfQ==
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9kb2NzL2RvY3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdELE9BQU8sRUFBVyxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBb0MsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEgsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7O0FBSzdDLE1BQU0sT0FBTyxXQUFXO0lBa0J0QixZQUNVLE9BQXVCLEVBQ3ZCLEdBQW9CLEVBQ3BCLFlBQXNCLEVBQzlCLE1BQWM7UUFITixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixRQUFHLEdBQUgsR0FBRyxDQUFpQjtRQUNwQixpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQW5CaEM7O1dBRUc7UUFDSCxjQUFTLEdBQWdDLEVBQUUsQ0FBQztRQUM1Qzs7O1dBR0c7UUFDTSxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFeEMsY0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVks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QztJQUVPLGVBQWUsQ0FBQyxXQUFXLEdBQUcsRUFBRTtRQUN0QyxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUMvRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sR0FBRyxNQUFNLEdBQUcsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSywwQkFBMEIsQ0FBQyxTQUFpQjtRQUNsRCxNQUFNLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzQyxNQUFNLGFBQWEsR0FBRyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNsRSxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxHQUFHLFdBQVcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUYsT0FBTyxHQUFHLFdBQVcsSUFBSSxXQUFXLElBQUksQ0FBQztJQUMzQyxDQUFDOzt3R0F6SVUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9vcHRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgZG9jdW1lbnRhdGlvbkl0ZW1zIH0gZnJvbSAnLi9kZWZhdWx0cy5pdGVtcyc7XG5pbXBvcnQgeyBBcHBTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vdWktc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnLi4vaTE4bi9nZXR0ZXh0JztcbmltcG9ydCB7IERvY0xpbmssIEhPT0tfRE9DUywgRG9jTGlua1dpdGhMYWJlbCB9IGZyb20gJy4vZG9jcy5tb2RlbHMnO1xuaW1wb3J0IHsgRXh0ZW5zaW9uRmFjdG9yeSwgRXh0ZW5zaW9uUG9pbnQsIGZyb21UcmlnZ2VyT25jZSwgZ2V0SW5qZWN0ZWRIb29rcyB9IGZyb20gJy4uL2NvbW1vbi9leHRlbnNpb24taG9va3MnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHNoYXJlUmVwbGF5LCBmaXJzdCwgZmlsdGVyLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGlzVW5kZWZpbmVkLCBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEb2NzU2VydmljZSBpbXBsZW1lbnRzIEV4dGVuc2lvblBvaW50PERvY0xpbms+IHtcbiAgaXRlbXMkOiBPYnNlcnZhYmxlPERvY0xpbmtbXT47XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGZhY3RvcmllcyB0aGF0IGNhbiBiZSBhZGRlZCBieSBwbHVnaW5zLlxuICAgKi9cbiAgZmFjdG9yaWVzOiBFeHRlbnNpb25GYWN0b3J5PERvY0xpbms+W10gPSBbXTtcbiAgLyoqXG4gICAqIFJlZnJlc2ggdGhlIGV4dGVuc2lvbiBmYWN0b3JpZXMgc3ViamVjdC5cbiAgICogQHJlYWRvbmx5XG4gICAqL1xuICByZWFkb25seSByZWZyZXNoVHJpZ2dlciA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgaW5qZWN0b3JzID0gW3RoaXMucm9vdEluamVjdG9yXTtcblxuICAvKipcbiAgICogRGVmYXVsdCBkb2N1bWVudGF0aW9uIFVSTC5cbiAgICovXG4gIHJlYWRvbmx5IERFRkFVTFRfRE9DU19CQVNFX1VSTCA9ICdodHRwczovL3d3dy5jdW11bG9jaXR5LmNvbS9ndWlkZXMve3sgdmVyc2lvbiB9fSc7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3B0aW9uczogT3B0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcHA6IEFwcFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJvb3RJbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgY29uc3Qgc3VwcG9ydFVybFJlZnJlc2hUcmlnZ2VyID0gdGhpcy5hcHAubWFwKCh7IHN1cHBvcnRVcmwgfSkgPT4gc3VwcG9ydFVybCk7XG5cbiAgICB0aGlzLml0ZW1zJCA9IGZyb21UcmlnZ2VyT25jZTxEb2NMaW5rPihcbiAgICAgIHJvdXRlcixcbiAgICAgIFtzdXBwb3J0VXJsUmVmcmVzaFRyaWdnZXIsIHRoaXMucmVmcmVzaFRyaWdnZXJdLFxuICAgICAgW2dldEluamVjdGVkSG9va3M8RG9jTGluaz4oSE9PS19ET0NTLCB0aGlzLmluamVjdG9ycyksICgpID0+IHRoaXMuZmFjdG9yaWVzLCB0aGlzXVxuICAgICkucGlwZShzaGFyZVJlcGxheSgxKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIH1cblxuICBnZXRCYXNlVXJsKHVpVmVyc2lvbj86IHN0cmluZyB8IHsgbmd4OiBzdHJpbmcgfSk6IHN0cmluZyB7XG4gICAgY29uc3QgZG9jc0Jhc2VVcmwgPSB0aGlzLm9wdGlvbnMuZ2V0KCdkb2NzQmFzZVVybCcsIHRoaXMuREVGQVVMVF9ET0NTX0JBU0VfVVJMKTtcbiAgICByZXR1cm4gdGhpcy5nZXRVcmxXaXRoRG9jc1ZlcnNpb24oZG9jc0Jhc2VVcmwsIHVpVmVyc2lvbik7XG4gIH1cblxuICAvKipcbiAgICogVGFrZXMgYSBVUkwgYW5kIHJlcGxhY2VzIGFsbCBge3sgdmVyc2lvbiB9fWAgcGxhY2Vob2xkZXJzIHdpdGggdGhlIHJlbGV2YW50IGRvY3MgdmVyc2lvblxuICAgKiAodGhlIHZlcnNpb24gaXMgZGVyaXZlZCBmcm9tIHRoZSBhcHAgc3RhdGUgb3IgZnJvbSB0aGUgcHJvdmlkZWQgcGFyYW1ldGVyKS5cbiAgICogQHBhcmFtIHVybCBBbnkgVVJMIHRoYXQgY29udGFpbnMgYHt7IHZlcnNpb24gfX1gIHBsYWNlaG9sZGVycy5cbiAgICogQHBhcmFtIHVpVmVyc2lvbiBBIHZlcnNpb24gc3RyaW5nIG9yIG9iamVjdCwgZGVmYXVsdHMgdG8gdGhlIGFwcCBzdGF0ZSB2ZXJzaW9uLlxuICAgKiBAcmV0dXJucyBUaGUgVVJMIHdpdGggcmVwbGFjZWQgYHt7IHZlcnNpb24gfX1gIHBsYWNlaG9sZGVycy5cbiAgICovXG4gIGdldFVybFdpdGhEb2NzVmVyc2lvbihcbiAgICB1cmw6IHN0cmluZyxcbiAgICB1aVZlcnNpb246IHN0cmluZyB8IHsgbmd4OiBzdHJpbmcgfSA9IHRoaXMuYXBwLnVpVmVyc2lvblxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IHZlcnNpb246IHN0cmluZyA9IHR5cGVvZiB1aVZlcnNpb24gPT09ICdzdHJpbmcnID8gdWlWZXJzaW9uIDogZ2V0KHVpVmVyc2lvbiwgJ25neCcpO1xuICAgIGxldCBkb2NzVmVyc2lvbiA9ICcnO1xuICAgIGlmICghKGlzVW5kZWZpbmVkKHZlcnNpb24pIHx8IHZlcnNpb24gPT09ICcnKSkge1xuICAgICAgZG9jc1ZlcnNpb24gPSB0aGlzLmdldERvY3NWZXJzaW9uRm9yVWlWZXJzaW9uKHZlcnNpb24pO1xuICAgIH1cbiAgICByZXR1cm4gdXJsLnJlcGxhY2UoL3t7XFxzKnZlcnNpb25cXHMqfX0vZywgZG9jc1ZlcnNpb24pLnJlcGxhY2UoL1xcLyskL2csICcnKTtcbiAgfVxuXG4gIGdldCB0ZW1wbGF0ZVN0cigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZ2V0KCdndWlkZUhyZWZUZW1wbGF0ZScsICcke2RvY3NCYXNlVXJsfSR7cGFydGlhbFVybH0nKTtcbiAgfVxuXG4gIGdldFVzZXJHdWlkZUxpbmsobGluaykge1xuICAgIGlmICgvXmh0dHBzPzovLnRlc3QobGluaykpIHtcbiAgICAgIHJldHVybiBsaW5rO1xuICAgIH1cbiAgICBpZiAodGhpcy5nZXRCYXNlVXJsID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0TGluayh0aGlzLnRlbXBsYXRlU3RyLCBsaW5rKTtcbiAgfVxuXG4gIGxpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKGkgPT4gISFpLmxlbmd0aCksXG4gICAgICAgIGZpcnN0KClcbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHJlZnJlc2goKSB7XG4gICAgdGhpcy5yZWZyZXNoVHJpZ2dlci5uZXh0KDEpO1xuICB9XG5cbiAgZ2V0KCkge1xuICAgIC8vIHVzZSB0aGUgZnVuY3Rpb24gYXMgYSBmYWN0b3J5XG4gICAgY29uc3QgeyBsaW5rcywgbm9EZWZhdWx0LCBleGNsdWRlRGVmYXVsdCA9IFtdIH0gPSB0aGlzLm9wdGlvbnMuZ2V0KCdkb2NzJywge30pO1xuICAgIGNvbnN0IHsgc3VwcG9ydFVybCB9ID0gdGhpcy5hcHAuc3RhdGU7XG4gICAgbGV0IHN0YXRpY0xpbmtzID0gbm9EZWZhdWx0XG4gICAgICA/IFtdXG4gICAgICA6IGRvY3VtZW50YXRpb25JdGVtc1xuICAgICAgICAgIC5tYXAoKGl0ZW06IERvY0xpbmtXaXRoTGFiZWwpID0+ICh7IC4uLml0ZW0sIHVybDogdGhpcy5nZXRVc2VyR3VpZGVMaW5rKGl0ZW0udXJsKSB9KSlcbiAgICAgICAgICAuZmlsdGVyKCh7IHVybCB9KSA9PiAhZXhjbHVkZURlZmF1bHQuc29tZShlID0+IG5ldyBSZWdFeHAoZSkudGVzdCh1cmwpKSk7XG5cbiAgICBpZiAobGlua3MpIHtcbiAgICAgIC8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgICBsaW5rcy5tYXAoKGxuazogRG9jTGluaykgPT4ge1xuICAgICAgICBpZiAoaXNVbmRlZmluZWQobG5rLnR5cGUpKSB7XG4gICAgICAgICAgbG5rLnR5cGUgPSAnZG9jJztcbiAgICAgICAgICByZXR1cm4gbG5rO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHN0YXRpY0xpbmtzID0gc3RhdGljTGlua3MuY29uY2F0KGxpbmtzKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0YXRpY0xpbmtzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMaW5rKHRlbXBsYXRlU3RyLCBwYXJ0aWFsTGluaykge1xuICAgIGlmICghdGVtcGxhdGVTdHIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0ZW1wbGF0ZVN0clxuICAgICAgLnJlcGxhY2UoL1xcJHtkb2NzQmFzZVVybH0vLCB0aGlzLmdldEJhc2VVcmwoKSlcbiAgICAgIC5yZXBsYWNlKC9cXCR7cGFydGlhbFVybH0vLCB0aGlzLnByZWZpeFdpdGhTbGFzaChwYXJ0aWFsTGluaykpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVmaXhXaXRoU2xhc2gocGFydGlhbExpbmsgPSAnJykge1xuICAgIGNvbnN0IHNob3VsZFByZWZpeCA9ICEocGFydGlhbExpbmsgJiYgL15cXC8vLnRlc3QocGFydGlhbExpbmspKTtcbiAgICBjb25zdCBwcmVmaXggPSBzaG91bGRQcmVmaXggPyAnLycgOiAnJztcbiAgICByZXR1cm4gYCR7cHJlZml4fSR7cGFydGlhbExpbmt9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBtb3N0IHJlbGV2YW50IHZlcnNpb24gb2YgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGdpdmVuIHZlcnNpb24gb2YgVUkuXG4gICAqIEZvciBtYWludGVuYW5jZSB2ZXJzaW9ucywgaXQncyB0aGUgZmlyc3QgdmVyc2lvbiBpbiB0aGUgbGluZSwgZS5nLiAxMDE3LjAuMTIzIC0+IDEwLjE3LjAuXG4gICAqIEZvciBkZXZlbG9wIHZlcnNpb25zLCBpdCdzIHRoZSBuZXh0IG1pbm9yIG9uZSwgZS5nLiAxMDE3LjEyMy4wLVNOQVBTSE9UIC0+IDEwLjE4LjAuXG4gICAqXG4gICAqIEBwYXJhbSB1aVZlcnNpb24gVGhlIHZlcnNpb24gb2YgVUkuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGdldERvY3NWZXJzaW9uRm9yVWlWZXJzaW9uKHVpVmVyc2lvbjogc3RyaW5nKSB7XG4gICAgY29uc3QgW21ham9yTWlub3JTdHIsIHBhdGNoU3RyXSA9IHVpVmVyc2lvbi5zcGxpdCgnLicpO1xuICAgIGNvbnN0IHBhdGNoTnVtYmVyID0gcGFyc2VJbnQocGF0Y2hTdHIsIDEwKTtcbiAgICBjb25zdCB0YWtlTmV4dE1pbm9yID0gcGF0Y2hOdW1iZXIgPiAwO1xuICAgIGNvbnN0IG1ham9yTnVtYmVyID0gTWF0aC5mbG9vcihwYXJzZUludChtYWpvck1pbm9yU3RyLCAxMCkgLyAxMDApO1xuICAgIGNvbnN0IG1pbm9yTnVtYmVyID0gcGFyc2VJbnQobWFqb3JNaW5vclN0ciwgMTApIC0gbWFqb3JOdW1iZXIgKiAxMDAgKyAodGFrZU5leHRNaW5vciA/IDEgOiAwKTtcbiAgICByZXR1cm4gYCR7bWFqb3JOdW1iZXJ9LiR7bWlub3JOdW1iZXJ9LjBgO1xuICB9XG59XG4iXX0=
|