@progress-chef/platform-shared-components 0.0.46 → 0.0.48

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.
@@ -57,11 +57,11 @@ export class TypographyComponent {
57
57
  this.showDefaultText = !this.isLabel && (!childrenCount || childrenCount == 0);
58
58
  }
59
59
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TypographyComponent, deps: [{ token: i1.ThemesService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
60
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TypographyComponent, selector: "lib-typography", inputs: { type: "type", defaultText: "defaultText", isLabel: "isLabel", hiddenLabel: "hiddenLabel" }, viewQueries: [{ propertyName: "child", first: true, predicate: ["ref"], descendants: true }, { propertyName: "labelChild", first: true, predicate: ["ref_label"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container>\n <!-- <span *ngIf=\"!isLabel\" #ref [class]=\"font\"><ng-content></ng-content></span> -->\n <label *ngIf=\"isLabel\" #ref_label [class]=\"font\" attr.for=\"{{input_id}}\">\n <span class=\"visually-hidden\">{{hiddenLabel}}</span>\n {{defaultText}}\n <ng-container *ngTemplateOutlet=\"customText\"></ng-container>\n </label>\n <span *ngIf=\"showDefaultText && !isLabel\" [class]=\"font\">\n {{defaultText}}\n <ng-container *ngTemplateOutlet=\"customText\"></ng-container>\n </span>\n</ng-container>\n\n<ng-template #customText>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".display-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:40px!important;line-height:48px!important}.display-medium{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:32px!important;line-height:40px!important}.display-small{font-family:Inter,sans-serif!important;font-weight:300!important;font-style:normal!important;font-size:24px!important;line-height:36px!important}.heading-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:24px!important;line-height:36px!important}.heading-medium{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:18px!important;line-height:24px!important;letter-spacing:.15px!important}.heading-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.subtitle-regular{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.subtitle-small{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-large{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.body-medium{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.body-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-unit-label{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:11px!important;line-height:12px!important;letter-spacing:.5px!important}.overline-label-regular,.overline-label-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important}.button-regular{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important;letter-spacing:.5px!important}.button-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important}.visually-hidden{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}label{display:inline}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TypographyComponent, selector: "lib-typography", inputs: { type: "type", defaultText: "defaultText", isLabel: "isLabel", hiddenLabel: "hiddenLabel" }, viewQueries: [{ propertyName: "child", first: true, predicate: ["ref"], descendants: true }, { propertyName: "labelChild", first: true, predicate: ["ref_label"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container>\n <!-- <span *ngIf=\"!isLabel\" #ref [class]=\"font\"><ng-content></ng-content></span> -->\n <label *ngIf=\"isLabel\" #ref_label [class]=\"font\" attr.for=\"{{input_id}}\">\n <span class=\"visually-hidden\">{{hiddenLabel}}</span>{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </label>\n <span *ngIf=\"showDefaultText && !isLabel\" [class]=\"font\">{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </span>\n</ng-container>\n\n<ng-template #customText>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".display-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:40px!important;line-height:48px!important}.display-medium{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:32px!important;line-height:40px!important}.display-small{font-family:Inter,sans-serif!important;font-weight:300!important;font-style:normal!important;font-size:24px!important;line-height:36px!important}.heading-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:24px!important;line-height:36px!important}.heading-medium{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:18px!important;line-height:24px!important;letter-spacing:.15px!important}.heading-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.subtitle-regular{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.subtitle-small{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-large{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.body-medium{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.body-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-unit-label{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:11px!important;line-height:12px!important;letter-spacing:.5px!important}.overline-label-regular,.overline-label-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important}.button-regular{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important;letter-spacing:.5px!important}.button-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important}.visually-hidden{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}label{display:inline}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
61
61
  }
62
62
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TypographyComponent, decorators: [{
63
63
  type: Component,
64
- args: [{ selector: 'lib-typography', template: "<ng-container>\n <!-- <span *ngIf=\"!isLabel\" #ref [class]=\"font\"><ng-content></ng-content></span> -->\n <label *ngIf=\"isLabel\" #ref_label [class]=\"font\" attr.for=\"{{input_id}}\">\n <span class=\"visually-hidden\">{{hiddenLabel}}</span>\n {{defaultText}}\n <ng-container *ngTemplateOutlet=\"customText\"></ng-container>\n </label>\n <span *ngIf=\"showDefaultText && !isLabel\" [class]=\"font\">\n {{defaultText}}\n <ng-container *ngTemplateOutlet=\"customText\"></ng-container>\n </span>\n</ng-container>\n\n<ng-template #customText>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".display-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:40px!important;line-height:48px!important}.display-medium{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:32px!important;line-height:40px!important}.display-small{font-family:Inter,sans-serif!important;font-weight:300!important;font-style:normal!important;font-size:24px!important;line-height:36px!important}.heading-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:24px!important;line-height:36px!important}.heading-medium{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:18px!important;line-height:24px!important;letter-spacing:.15px!important}.heading-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.subtitle-regular{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.subtitle-small{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-large{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.body-medium{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.body-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-unit-label{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:11px!important;line-height:12px!important;letter-spacing:.5px!important}.overline-label-regular,.overline-label-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important}.button-regular{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important;letter-spacing:.5px!important}.button-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important}.visually-hidden{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}label{display:inline}\n"] }]
64
+ args: [{ selector: 'lib-typography', template: "<ng-container>\n <!-- <span *ngIf=\"!isLabel\" #ref [class]=\"font\"><ng-content></ng-content></span> -->\n <label *ngIf=\"isLabel\" #ref_label [class]=\"font\" attr.for=\"{{input_id}}\">\n <span class=\"visually-hidden\">{{hiddenLabel}}</span>{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </label>\n <span *ngIf=\"showDefaultText && !isLabel\" [class]=\"font\">{{defaultText}}<ng-container\n *ngTemplateOutlet=\"customText\"></ng-container>\n </span>\n</ng-container>\n\n<ng-template #customText>\n <ng-content></ng-content>\n</ng-template>\n", styles: [".display-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:40px!important;line-height:48px!important}.display-medium{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:32px!important;line-height:40px!important}.display-small{font-family:Inter,sans-serif!important;font-weight:300!important;font-style:normal!important;font-size:24px!important;line-height:36px!important}.heading-large{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:24px!important;line-height:36px!important}.heading-medium{font-family:Inter,sans-serif!important;font-weight:700!important;font-style:normal!important;font-size:18px!important;line-height:24px!important;letter-spacing:.15px!important}.heading-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.subtitle-regular{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.subtitle-small{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-large{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:16px!important;line-height:24px!important}.body-medium{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}.body-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}.body-unit-label{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:11px!important;line-height:12px!important;letter-spacing:.5px!important}.overline-label-regular,.overline-label-small{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important}.button-regular{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:16px!important;line-height:24px!important;letter-spacing:.5px!important}.button-small{font-family:Inter,sans-serif!important;font-weight:500!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.5px!important}.visually-hidden{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}label{display:inline}\n"] }]
65
65
  }], ctorParameters: function () { return [{ type: i1.ThemesService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { type: [{
66
66
  type: Input
67
67
  }], defaultText: [{
@@ -77,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
77
77
  type: ViewChild,
78
78
  args: ['ref_label', { static: false }]
79
79
  }] } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwb2dyYXBoeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9hdG9tcy90eXBvZ3JhcGh5L3R5cG9ncmFwaHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvYXRvbXMvdHlwb2dyYXBoeS90eXBvZ3JhcGh5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFjLEtBQUssRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFJckgsTUFBTSxVQUFVLEdBQUc7SUFDakIsYUFBYSxFQUFFLGVBQWU7SUFDOUIsY0FBYyxFQUFFLGdCQUFnQjtJQUNoQyxhQUFhLEVBQUUsZUFBZTtJQUM5QixhQUFhLEVBQUUsZUFBZTtJQUM5QixjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLGFBQWEsRUFBRSxlQUFlO0lBQzlCLGdCQUFnQixFQUFFLGtCQUFrQjtJQUNwQyxjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLFVBQVUsRUFBQyxZQUFZO0lBQ3ZCLGVBQWUsRUFBRSxpQkFBaUI7SUFDbEMsc0JBQXNCLEVBQUUsd0JBQXdCO0lBQ2hELG9CQUFvQixFQUFFLHNCQUFzQjtJQUM1QyxjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLFlBQVksRUFBRSxjQUFjO0NBQzdCLENBQUE7QUFRRCxNQUFNLE9BQU8sbUJBQW1CO0lBVzlCLFlBQW9CLGFBQTRCLEVBQVUsS0FBd0I7UUFBOUQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQVZ6RSxTQUFJLEdBQW1CLGFBQWEsQ0FBQztRQUNyQyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBR2xDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLFNBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLGFBQVEsR0FBRyxJQUFJLENBQUM7SUFFc0UsQ0FBQztJQUV2RixlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELHNCQUFzQjtJQUN0QiwrQkFBK0I7SUFDL0IsSUFBSTtJQUVKLHFCQUFxQjtRQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsaUJBQWlCLENBQUM7UUFDckUsSUFBSSxhQUFhLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JHO0lBQ0gsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxhQUFhLElBQUksYUFBYSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7K0dBekNVLG1CQUFtQjttR0FBbkIsbUJBQW1CLHlXQzdCaEMsaW1CQWdCQTs7NEZEYWEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGdCQUFnQjtvSUFNakIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQytCLEtBQUs7c0JBQXpDLFNBQVM7dUJBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDUSxVQUFVO3NCQUFwRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFR5cG9ncmFwaHlUeXBlIH0gZnJvbSAnLi9UeXBvZ3JhcGh5VHlwZSc7XG5pbXBvcnQgeyBUaGVtZXNTZXJ2aWNlIH0gZnJvbSAnQHByb2dyZXNzLWNoZWYvcGxhdGZvcm0tdGhlbWVzLXNlcnZpY2UnO1xuXG5jb25zdCBUeXBvZ3JhcGh5ID0ge1xuICBESVNQTEFZX0xBUkdFOiAnZGlzcGxheS1sYXJnZScsXG4gIERJU1BMQVlfTUVESVVNOiAnZGlzcGxheS1tZWRpdW0nLFxuICBESVNQTEFZX1NNQUxMOiAnZGlzcGxheS1zbWFsbCcsXG4gIEhFQURJTkdfTEFSR0U6ICdoZWFkaW5nLWxhcmdlJyxcbiAgSEVBRElOR19NRURJVU06ICdoZWFkaW5nLW1lZGl1bScsXG4gIEhFQURJTkdfU01BTEw6ICdoZWFkaW5nLXNtYWxsJyxcbiAgU1VCVElUTEVfUkVHVUxBUjogJ3N1YnRpdGxlLXJlZ3VsYXInLFxuICBTVUJUSVRMRV9TTUFMTDogJ3N1YnRpdGxlLXNtYWxsJyxcbiAgQk9EWV9MQVJHRTogJ2JvZHktbGFyZ2UnLFxuICBCT0RZX01FRElVTTogJ2JvZHktbWVkaXVtJyxcbiAgQk9EWV9TTUFMTDonYm9keS1zbWFsbCcsXG4gIEJPRFlfVU5JVF9MQUJFTDogJ2JvZHktdW5pdC1sYWJlbCcsXG4gIE9WRVJMSU5FX0xBQkVMX1JFR1VMQVI6ICdvdmVybGluZS1sYWJlbC1yZWd1bGFyJyxcbiAgT1ZFUkxJTkVfTEFCRUxfU01BTEw6ICdvdmVybGluZS1sYWJlbC1zbWFsbCcsXG4gIEJVVFRPTl9SRUdVTEFSOiAnYnV0dG9uLXJlZ3VsYXInLFxuICBCVVRUT05fU01BTEw6ICdidXR0b24tc21hbGwnXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi10eXBvZ3JhcGh5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3R5cG9ncmFwaHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90eXBvZ3JhcGh5LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5cbmV4cG9ydCBjbGFzcyBUeXBvZ3JhcGh5Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdHlwZTogVHlwb2dyYXBoeVR5cGUgPSAnQk9EWV9NRURJVU0nO1xuICBASW5wdXQoKSBkZWZhdWx0VGV4dDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgaXNMYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRkZW5MYWJlbDogc3RyaW5nID0gXCJcIjtcbiAgQFZpZXdDaGlsZCgncmVmJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNoaWxkOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuICBAVmlld0NoaWxkKCdyZWZfbGFiZWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgbGFiZWxDaGlsZDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcbiAgc2hvd0RlZmF1bHRUZXh0ID0gdHJ1ZTtcbiAgZm9udCA9IFR5cG9ncmFwaHlbdGhpcy50eXBlXTtcbiAgaW5wdXRfaWQgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGhlbWVzU2VydmljZTogVGhlbWVzU2VydmljZSwgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaW5wdXRfaWQpIHtcbiAgICAgIHRoaXMuY2hlY2tGb3JMYWJlbCgpXG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5mb250ID0gVHlwb2dyYXBoeVt0aGlzLnR5cGVdO1xuICB9XG5cbiAgLy8gbmdBZnRlclZpZXdJbml0KCkge1xuICAvLyB0aGlzLmNoZWNrU2hvd0RlZmF1bHRUZXh0KCk7XG4gIC8vIH1cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKSB7XG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBjaGVja0ZvckxhYmVsKCkge1xuICAgIGxldCBjaGlsZHJlbkNvdW50ID0gdGhpcy5sYWJlbENoaWxkPy5uYXRpdmVFbGVtZW50LmNoaWxkRWxlbWVudENvdW50O1xuICAgIGlmIChjaGlsZHJlbkNvdW50ID4gMCkge1xuICAgICAgdGhpcy5pbnB1dF9pZCA9IHRoaXMubGFiZWxDaGlsZD8ubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXT8uZ2V0QXR0cmlidXRlKCdpZCcpO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrU2hvd0RlZmF1bHRUZXh0KCkge1xuICAgIGxldCBjaGlsZHJlbkNvdW50ID0gdGhpcy5jaGlsZD8ubmF0aXZlRWxlbWVudC5jaGlsZE5vZGVzLmxlbmd0aDtcbiAgICB0aGlzLnNob3dEZWZhdWx0VGV4dCA9ICF0aGlzLmlzTGFiZWwgJiYgKCFjaGlsZHJlbkNvdW50IHx8IGNoaWxkcmVuQ291bnQgPT0gMCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXI+XG4gIDwhLS0gPHNwYW4gKm5nSWY9XCIhaXNMYWJlbFwiICNyZWYgW2NsYXNzXT1cImZvbnRcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9zcGFuPiAtLT5cbiAgPGxhYmVsICpuZ0lmPVwiaXNMYWJlbFwiICNyZWZfbGFiZWwgW2NsYXNzXT1cImZvbnRcIiBhdHRyLmZvcj1cInt7aW5wdXRfaWR9fVwiPlxuICAgIDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+e3toaWRkZW5MYWJlbH19PC9zcGFuPlxuICAgIHt7ZGVmYXVsdFRleHR9fVxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21UZXh0XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbGFiZWw+XG4gIDxzcGFuICpuZ0lmPVwic2hvd0RlZmF1bHRUZXh0ICYmICFpc0xhYmVsXCIgW2NsYXNzXT1cImZvbnRcIj5cbiAgICB7e2RlZmF1bHRUZXh0fX1cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tVGV4dFwiPjwvbmctY29udGFpbmVyPlxuIDwvc3Bhbj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2N1c3RvbVRleHQ+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwb2dyYXBoeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9hdG9tcy90eXBvZ3JhcGh5L3R5cG9ncmFwaHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvYXRvbXMvdHlwb2dyYXBoeS90eXBvZ3JhcGh5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUFjLEtBQUssRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFJckgsTUFBTSxVQUFVLEdBQUc7SUFDakIsYUFBYSxFQUFFLGVBQWU7SUFDOUIsY0FBYyxFQUFFLGdCQUFnQjtJQUNoQyxhQUFhLEVBQUUsZUFBZTtJQUM5QixhQUFhLEVBQUUsZUFBZTtJQUM5QixjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLGFBQWEsRUFBRSxlQUFlO0lBQzlCLGdCQUFnQixFQUFFLGtCQUFrQjtJQUNwQyxjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLFdBQVcsRUFBRSxhQUFhO0lBQzFCLFVBQVUsRUFBQyxZQUFZO0lBQ3ZCLGVBQWUsRUFBRSxpQkFBaUI7SUFDbEMsc0JBQXNCLEVBQUUsd0JBQXdCO0lBQ2hELG9CQUFvQixFQUFFLHNCQUFzQjtJQUM1QyxjQUFjLEVBQUUsZ0JBQWdCO0lBQ2hDLFlBQVksRUFBRSxjQUFjO0NBQzdCLENBQUE7QUFRRCxNQUFNLE9BQU8sbUJBQW1CO0lBVzlCLFlBQW9CLGFBQTRCLEVBQVUsS0FBd0I7UUFBOUQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQVZ6RSxTQUFJLEdBQW1CLGFBQWEsQ0FBQztRQUNyQyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBR2xDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLFNBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLGFBQVEsR0FBRyxJQUFJLENBQUM7SUFFc0UsQ0FBQztJQUV2RixlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELHNCQUFzQjtJQUN0QiwrQkFBK0I7SUFDL0IsSUFBSTtJQUVKLHFCQUFxQjtRQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsaUJBQWlCLENBQUM7UUFDckUsSUFBSSxhQUFhLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3JHO0lBQ0gsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxhQUFhLElBQUksYUFBYSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7K0dBekNVLG1CQUFtQjttR0FBbkIsbUJBQW1CLHlXQzdCaEMsd2xCQWNBOzs0RkRlYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsZ0JBQWdCO29JQU1qQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDK0IsS0FBSztzQkFBekMsU0FBUzt1QkFBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNRLFVBQVU7c0JBQXBELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeVR5cGUgfSBmcm9tICcuL1R5cG9ncmFwaHlUeXBlJztcbmltcG9ydCB7IFRoZW1lc1NlcnZpY2UgfSBmcm9tICdAcHJvZ3Jlc3MtY2hlZi9wbGF0Zm9ybS10aGVtZXMtc2VydmljZSc7XG5cbmNvbnN0IFR5cG9ncmFwaHkgPSB7XG4gIERJU1BMQVlfTEFSR0U6ICdkaXNwbGF5LWxhcmdlJyxcbiAgRElTUExBWV9NRURJVU06ICdkaXNwbGF5LW1lZGl1bScsXG4gIERJU1BMQVlfU01BTEw6ICdkaXNwbGF5LXNtYWxsJyxcbiAgSEVBRElOR19MQVJHRTogJ2hlYWRpbmctbGFyZ2UnLFxuICBIRUFESU5HX01FRElVTTogJ2hlYWRpbmctbWVkaXVtJyxcbiAgSEVBRElOR19TTUFMTDogJ2hlYWRpbmctc21hbGwnLFxuICBTVUJUSVRMRV9SRUdVTEFSOiAnc3VidGl0bGUtcmVndWxhcicsXG4gIFNVQlRJVExFX1NNQUxMOiAnc3VidGl0bGUtc21hbGwnLFxuICBCT0RZX0xBUkdFOiAnYm9keS1sYXJnZScsXG4gIEJPRFlfTUVESVVNOiAnYm9keS1tZWRpdW0nLFxuICBCT0RZX1NNQUxMOidib2R5LXNtYWxsJyxcbiAgQk9EWV9VTklUX0xBQkVMOiAnYm9keS11bml0LWxhYmVsJyxcbiAgT1ZFUkxJTkVfTEFCRUxfUkVHVUxBUjogJ292ZXJsaW5lLWxhYmVsLXJlZ3VsYXInLFxuICBPVkVSTElORV9MQUJFTF9TTUFMTDogJ292ZXJsaW5lLWxhYmVsLXNtYWxsJyxcbiAgQlVUVE9OX1JFR1VMQVI6ICdidXR0b24tcmVndWxhcicsXG4gIEJVVFRPTl9TTUFMTDogJ2J1dHRvbi1zbWFsbCdcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXR5cG9ncmFwaHknLFxuICB0ZW1wbGF0ZVVybDogJy4vdHlwb2dyYXBoeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3R5cG9ncmFwaHkuY29tcG9uZW50LnNjc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIFR5cG9ncmFwaHlDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSB0eXBlOiBUeXBvZ3JhcGh5VHlwZSA9ICdCT0RZX01FRElVTSc7XG4gIEBJbnB1dCgpIGRlZmF1bHRUZXh0OiBzdHJpbmcgPSBcIlwiO1xuICBASW5wdXQoKSBpc0xhYmVsOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhpZGRlbkxhYmVsOiBzdHJpbmcgPSBcIlwiO1xuICBAVmlld0NoaWxkKCdyZWYnLCB7IHN0YXRpYzogZmFsc2UgfSkgY2hpbGQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG4gIEBWaWV3Q2hpbGQoJ3JlZl9sYWJlbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBsYWJlbENoaWxkOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuICBzaG93RGVmYXVsdFRleHQgPSB0cnVlO1xuICBmb250ID0gVHlwb2dyYXBoeVt0aGlzLnR5cGVdO1xuICBpbnB1dF9pZCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0aGVtZXNTZXJ2aWNlOiBUaGVtZXNTZXJ2aWNlLCBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pbnB1dF9pZCkge1xuICAgICAgdGhpcy5jaGVja0ZvckxhYmVsKClcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLmZvbnQgPSBUeXBvZ3JhcGh5W3RoaXMudHlwZV07XG4gIH1cblxuICAvLyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gIC8vIHRoaXMuY2hlY2tTaG93RGVmYXVsdFRleHQoKTtcbiAgLy8gfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGNoZWNrRm9yTGFiZWwoKSB7XG4gICAgbGV0IGNoaWxkcmVuQ291bnQgPSB0aGlzLmxhYmVsQ2hpbGQ/Lm5hdGl2ZUVsZW1lbnQuY2hpbGRFbGVtZW50Q291bnQ7XG4gICAgaWYgKGNoaWxkcmVuQ291bnQgPiAwKSB7XG4gICAgICB0aGlzLmlucHV0X2lkID0gdGhpcy5sYWJlbENoaWxkPy5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpWzBdPy5nZXRBdHRyaWJ1dGUoJ2lkJyk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tTaG93RGVmYXVsdFRleHQoKSB7XG4gICAgbGV0IGNoaWxkcmVuQ291bnQgPSB0aGlzLmNoaWxkPy5uYXRpdmVFbGVtZW50LmNoaWxkTm9kZXMubGVuZ3RoO1xuICAgIHRoaXMuc2hvd0RlZmF1bHRUZXh0ID0gIXRoaXMuaXNMYWJlbCAmJiAoIWNoaWxkcmVuQ291bnQgfHwgY2hpbGRyZW5Db3VudCA9PSAwKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lcj5cbiAgPCEtLSA8c3BhbiAqbmdJZj1cIiFpc0xhYmVsXCIgI3JlZiBbY2xhc3NdPVwiZm9udFwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L3NwYW4+IC0tPlxuICA8bGFiZWwgKm5nSWY9XCJpc0xhYmVsXCIgI3JlZl9sYWJlbCBbY2xhc3NdPVwiZm9udFwiIGF0dHIuZm9yPVwie3tpbnB1dF9pZH19XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57e2hpZGRlbkxhYmVsfX08L3NwYW4+e3tkZWZhdWx0VGV4dH19PG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21UZXh0XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbGFiZWw+XG4gIDxzcGFuICpuZ0lmPVwic2hvd0RlZmF1bHRUZXh0ICYmICFpc0xhYmVsXCIgW2NsYXNzXT1cImZvbnRcIj57e2RlZmF1bHRUZXh0fX08bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbVRleHRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9zcGFuPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjY3VzdG9tVGV4dD5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -104,9 +104,12 @@ export class GridPaginationComponent {
104
104
  this.setSelectableSettings();
105
105
  }
106
106
  ngOnInit() {
107
- for (let column of this.columnData) {
107
+ this.columnData.forEach((column, index) => {
108
108
  column.sortable = column.sortable == undefined ? true : column.sortable;
109
- }
109
+ if (!this.ignoreColumnCellClick.includes(index)) {
110
+ column.class = 'column-cursor-pointer';
111
+ }
112
+ });
110
113
  if (!this.hasApiSorting) {
111
114
  this.loadGridData();
112
115
  }
@@ -195,7 +198,7 @@ export class GridPaginationComponent {
195
198
  if (this.ignoreColumnCellClick.includes(args.columnIndex)) {
196
199
  return;
197
200
  }
198
- this.rowDataOfClickedCell.emit(args.dataItem);
201
+ this.rowDataOfClickedCell.emit({ dataItem: args.dataItem, columnIndex: args.columnIndex });
199
202
  }
200
203
  if (this.allowEditingCell) {
201
204
  this.formGroup = createFormGroup(args.dataItem);
@@ -312,11 +315,11 @@ export class GridPaginationComponent {
312
315
  this.grid.cancelCell();
313
316
  }
314
317
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridPaginationComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
315
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridPaginationComponent, selector: "lib-grid-pagination", inputs: { gridView: "gridView", skip: "skip", columnData: "columnData", pageSize: "pageSize", pageable: "pageable", sortable: "sortable", groupable: "groupable", reorderable: "reorderable", resizable: "resizable", checkBoxWidth: "checkBoxWidth", checkBoxColumnResizable: "checkBoxColumnResizable", checkBoxColumnMenu: "checkBoxColumnMenu", checkBoxColumnShowSelectedAll: "checkBoxColumnShowSelectedAll", checkBoxRequired: "checkBoxRequired", columnMenu: "columnMenu", mode: "mode", checkboxOnly: "checkboxOnly", dragColumns: "dragColumns", navigable: "navigable", gridRowSelectByValue: "gridRowSelectByValue", noRecordsContent: "noRecordsContent", showToolbar: "showToolbar", kebabList: "kebabList", showKebab: "showKebab", icon: "icon", kebabColumnWidth: "kebabColumnWidth", selectColumn: "selectColumn", preSelected: "preSelected", ignoreColumnCellClick: "ignoreColumnCellClick", allowColumnClick: "allowColumnClick", sort: "sort", hasApiSorting: "hasApiSorting", expandRowIndex: "expandRowIndex", customExpandRowColumn: "customExpandRowColumn", deleteColumnWidth: "deleteColumnWidth", sizes: "sizes", pageCount: "pageCount", showDeleteColumn: "showDeleteColumn", hideKebabRowIndex: "hideKebabRowIndex", loading: "loading", loaderType: "loaderType", loaderSize: "loaderSize", loaderTheme: "loaderTheme", disablePreSelectedRows: "disablePreSelectedRows", allowEditingCell: "allowEditingCell" }, outputs: { selectedRowData: "selectedRowData", rowDetails: "rowDetails", kebabItemClick: "kebabItemClick", rowDataOfClickedCell: "rowDataOfClickedCell", onPageChange: "onPageChange", sortDirection: "sortDirection", deletedRowData: "deletedRowData", updatedData: "updatedData" }, host: { listeners: { "window:resize": "resize($event)" } }, queries: [{ propertyName: "templateRef", first: true, predicate: ["multiColumnData"], descendants: true }, { propertyName: "detailTemplate", first: true, predicate: ["detailTemplate"], descendants: true }, { propertyName: "impactColumn", first: true, predicate: ["impactColumn"], descendants: true }], viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }, { propertyName: "gridElement", first: true, predicate: ["gridElement"], descendants: true }], ngImport: i0, template: "<div #gridElement (window:resize)=\"resize($event)\">\n <kendo-grid [data]=\"gridView\" [pageSize]=\"pageSize\" [skip]=\"skip\" [selectable]=\"selectableSettings\"\n [pageable]=\"pageable\" [sortable]=\"sortable\" [groupable]=\"groupable\" [reorderable]=\"reorderable\"\n [resizable]=\"resizable\" [columnMenu]=\"columnMenu\" [navigable]=\"navigable\" [height]=\"height\" [style.height]=\"height\"\n (change)=\"setSelectableSettings()\" (selectedKeysChange)=\"selectedKeysChange($event)\"\n [kendoGridSelectBy]=\"gridRowSelectByValue\" (detailExpand)=\"onDetailExpand($event)\" [selectedKeys]=\"preSelected\"\n (pageChange)=\"pageChange($event)\" (cellClick)=\"cellClickHandler($event)\" (cellClose)=\"cellCloseHandler($event)\" [sort]=\"sort\"\n (sortChange)=\"sortChange($event)\" [ngClass]=\"getHeaderHeight()\" id=\"lib-grid\" [rowClass]=\"rowClass\">\n\n <ng-template *ngIf=\"showToolbar\" kendoGridToolbarTemplate>\n <ng-content></ng-content>\n </ng-template>\n\n <ng-template *ngIf=\"this.gridView.total === 0\" kendoGridNoRecordsTemplate>\n <lib-typography *ngIf=\"!loading\" [defaultText]=\"noRecordsContent\" type=\"BODY_MEDIUM\"></lib-typography>\n <lib-loader *ngIf=\"loading\" [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n\n <ng-container *ngIf=\"this.gridView.total > 0\">\n <kendo-grid-checkbox-column *ngIf=\"checkBoxRequired === true\" [width]=\"checkBoxWidth\"\n [resizable]=\"checkBoxColumnResizable\" [columnMenu]=\"checkBoxColumnMenu\" class=\"checkbox-column\">\n <ng-template kendoGridHeaderTemplate>\n <input id=\"selectAllCheckboxId\" type=\"checkbox\" kendoCheckBox kendoGridSelectAllCheckbox\n [state]=\"selectAllState\" (selectAllChange)=\"onSelectAllChange($event)\" />\n </ng-template>\n </kendo-grid-checkbox-column>\n \n <kendo-grid-column class=\"grid-column\" *ngFor=\"let item of columnData\" [field]=\"item.field\" [title]=\"item.title\"\n [width]=\"item.columnWidth\" [sortable]=\"item.sortable\" [editor]=\"item.editor\">\n\n <ng-template *ngIf=\"sortable\" kendoGridHeaderTemplate>\n {{item.title}}\n <span *ngIf=\"sort[0].field === item.field\">\n <span *ngIf=\"sort[0].dir === 'asc'\"></span>\n <span *ngIf=\"sort[0].dir === 'desc'\"></span>\n </span>\n </ng-template>\n\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.impact\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"impactColumn; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column *ngIf=\"showDeleteColumn\" [width]=\"deleteColumnWidth\" class=\"delete-column\" title=\"Action\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <lib-tooltip showOn=\"hover\" position=\"bottom\" class=\"remove-tooltip\">\n <lib-icon name=\"delete\" class=\"delete-icon\" (click)=\"onDelete(dataItem)\"></lib-icon>\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Remove\"></lib-typography>\n </div>\n </lib-tooltip>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column [width]=\"kebabColumnWidth\" class=\"kebab-column\" *ngIf=\"showKebab\" title=\"Actions\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <kendo-dropdownbutton *ngIf=\"!hideKebabRowIndex.includes(rowIndex)\" [svgIcon]=\"icon\" fillMode=\"none\"\n [data]=\"kebabList | kebabMenuFilter : dataItem\" class=\"kebab\" (itemClick)=\"onKebabClick($event, dataItem)\"\n [popupSettings]=\"{ align: 'right', animate: true, popupClass: 'kebab-list' }\">\n </kendo-dropdownbutton>\n </ng-template>\n </kendo-grid-column>\n </ng-container>\n\n <ng-template kendoGridDetailTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <kendo-grid-column *ngIf=\"customExpandRowColumn\" [width]=\"expandRowColumnWidth\" class=\"grid-column expand-column\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <div [ngClass]=\"expandColumnClass()\">\n <span *ngIf=\"selectedRows.includes(dataItem[gridRowSelectByValue]) && disablePreSelectedRows\"\n class=\"expand-column-text\">\n Already added\n </span>\n <kendo-button *ngIf=\"!expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowDownIcon\"\n (click)=\"expandRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n <kendo-button *ngIf=\"expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowUpIcon\"\n (click)=\"collapseRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n </div>\n </ng-template>\n </kendo-grid-column>\n\n <ng-template kendoPagerTemplate let-totalPages=\"totalPages\" let-currentPage=\"currentPage\">\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons [buttonCount]=\"pageCount\"></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n <kendo-pager-page-sizes [pageSizes]=\"sizes\"></kendo-pager-page-sizes>\n </ng-template>\n\n </kendo-grid>\n</div>\n", styles: ["::ng-deep .k-grid tr{height:50px}::ng-deep .k-grid .k-table-th,::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important;border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:2px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important}::ng-deep .k-grid tbody>tr:not(.k-detail-row):hover{background-color:#d0dcf5!important}::ng-deep .k-grid .k-table-row.k-selected>.k-table-td{background-color:#c9d7f4!important}::ng-deep .k-grid .k-table-td{border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:1px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-table-alt-row{background-color:inherit!important}::ng-deep .k-grid .k-table-td{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .k-grid-norecords{text-align:center!important;opacity:.4}::ng-deep .k-grid-norecords td{padding:14px 0 14px 24px!important}::ng-deep kendo-pager.k-pager-wrap.k-grid-pager{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}::ng-deep .k-pager{border-style:none!important}::ng-deep .k-grid th.k-header{vertical-align:middle!important;padding-left:16px;padding-right:0}::ng-deep .grid-column,::ng-deep .kebab-column,::ng-deep .delete-column{padding:0!important}::ng-deep .grid-column kendo-button,::ng-deep .kebab-column kendo-button,::ng-deep .delete-column kendo-button{align-items:center!important;justify-content:center!important;display:flex!important}::ng-deep .k-checkbox{width:20px!important;height:20px!important;border-radius:0!important}::ng-deep .k-grid .k-hierarchy-cell,::ng-deep .k-grid .k-hierarchy-col{width:0;display:none}::ng-deep .k-grid .k-detail-row .k-detail-cell{padding:16px!important}::ng-deep .delete-icon{color:#dc267f!important;padding-left:12px;cursor:pointer}::ng-deep .remove-tooltip kendo-tooltip.k-tooltip{background-color:#fff;color:#000}::ng-deep .hide-header .k-grid-header{border:0px!important}::ng-deep .k-grid-toolbar{padding:4px 16px!important;height:50px}::ng-deep .k-grid td:not(.kebab-column):not(.expand-column){padding-left:16px!important;padding-right:16px!important}::ng-deep .view-header .k-table-thead tr{height:50px}::ng-deep .hide-header .k-table-thead tr{height:0px;padding:0;display:block}::ng-deep td.kebab-column{display:flex;justify-content:center;align-items:center;height:inherit}::ng-deep .k-grid .k-table-td>.k-checkbox{vertical-align:middle!important}::ng-deep .kebab .k-button,::ng-deep .expand-column .k-button{border:0px}::ng-deep .expand-column{pointer-events:all!important}::ng-deep .expand-column-text{margin-right:32px}::ng-deep .expand-row{display:flex;align-items:center;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: i2.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { kind: "component", type: i3.IconComponent, selector: "lib-icon", inputs: ["name", "fontSize", "type"] }, { kind: "directive", type: i4.CheckBoxDirective, selector: "input[kendoCheckBox]", inputs: ["size", "rounded"] }, { kind: "component", type: i5.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "rowReorderable", "navigable", "navigatable", "autoSize", "rowClass", "rowSticky", "rowSelected", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "isDetailExpanded", "isGroupExpanded"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i5.ToolbarTemplateDirective, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { kind: "directive", type: i5.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "component", type: i5.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: i5.DetailTemplateDirective, selector: "[kendoGridDetailTemplate]", inputs: ["kendoGridDetailTemplateShowIf"] }, { kind: "component", type: i5.CheckboxColumnComponent, selector: "kendo-grid-checkbox-column", inputs: ["showSelectAll"] }, { kind: "directive", type: i5.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i5.NoRecordsTemplateDirective, selector: "[kendoGridNoRecordsTemplate]" }, { kind: "directive", type: i5.HeaderTemplateDirective, selector: "[kendoGridHeaderTemplate]" }, { kind: "directive", type: i5.SelectAllCheckboxDirective, selector: "[kendoGridSelectAllCheckbox]", inputs: ["state"], outputs: ["selectAllChange"] }, { kind: "component", type: i5.PagerPrevButtonsComponent, selector: "kendo-pager-prev-buttons" }, { kind: "component", type: i5.PagerNextButtonsComponent, selector: "kendo-pager-next-buttons" }, { kind: "component", type: i5.PagerNumericButtonsComponent, selector: "kendo-pager-numeric-buttons", inputs: ["buttonCount"] }, { kind: "component", type: i5.PagerInfoComponent, selector: "kendo-pager-info" }, { kind: "component", type: i5.PagerPageSizesComponent, selector: "kendo-pager-page-sizes", inputs: ["pageSizes"] }, { kind: "directive", type: i5.PagerTemplateDirective, selector: "[kendoPagerTemplate]" }, { kind: "component", type: i6.TooltipComponent, selector: "lib-tooltip", inputs: ["position", "tooltipWidth", "tooltipHeight", "showOn", "closable", "title", "callout"] }, { kind: "component", type: i7.TypographyComponent, selector: "lib-typography", inputs: ["type", "defaultText", "isLabel", "hiddenLabel"] }, { kind: "component", type: i8.LoaderComponent, selector: "lib-loader", inputs: ["size", "type", "themeColor"] }, { kind: "pipe", type: i9.KebabMenuFilterPipe, name: "kebabMenuFilter" }] }); }
318
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridPaginationComponent, selector: "lib-grid-pagination", inputs: { gridView: "gridView", skip: "skip", columnData: "columnData", pageSize: "pageSize", pageable: "pageable", sortable: "sortable", groupable: "groupable", reorderable: "reorderable", resizable: "resizable", checkBoxWidth: "checkBoxWidth", checkBoxColumnResizable: "checkBoxColumnResizable", checkBoxColumnMenu: "checkBoxColumnMenu", checkBoxColumnShowSelectedAll: "checkBoxColumnShowSelectedAll", checkBoxRequired: "checkBoxRequired", columnMenu: "columnMenu", mode: "mode", checkboxOnly: "checkboxOnly", dragColumns: "dragColumns", navigable: "navigable", gridRowSelectByValue: "gridRowSelectByValue", noRecordsContent: "noRecordsContent", showToolbar: "showToolbar", kebabList: "kebabList", showKebab: "showKebab", icon: "icon", kebabColumnWidth: "kebabColumnWidth", selectColumn: "selectColumn", preSelected: "preSelected", ignoreColumnCellClick: "ignoreColumnCellClick", allowColumnClick: "allowColumnClick", sort: "sort", hasApiSorting: "hasApiSorting", expandRowIndex: "expandRowIndex", customExpandRowColumn: "customExpandRowColumn", deleteColumnWidth: "deleteColumnWidth", sizes: "sizes", pageCount: "pageCount", showDeleteColumn: "showDeleteColumn", hideKebabRowIndex: "hideKebabRowIndex", loading: "loading", loaderType: "loaderType", loaderSize: "loaderSize", loaderTheme: "loaderTheme", disablePreSelectedRows: "disablePreSelectedRows", allowEditingCell: "allowEditingCell" }, outputs: { selectedRowData: "selectedRowData", rowDetails: "rowDetails", kebabItemClick: "kebabItemClick", rowDataOfClickedCell: "rowDataOfClickedCell", onPageChange: "onPageChange", sortDirection: "sortDirection", deletedRowData: "deletedRowData", updatedData: "updatedData" }, host: { listeners: { "window:resize": "resize($event)" } }, queries: [{ propertyName: "templateRef", first: true, predicate: ["multiColumnData"], descendants: true }, { propertyName: "detailTemplate", first: true, predicate: ["detailTemplate"], descendants: true }, { propertyName: "impactColumn", first: true, predicate: ["impactColumn"], descendants: true }], viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }, { propertyName: "gridElement", first: true, predicate: ["gridElement"], descendants: true }], ngImport: i0, template: "<div #gridElement (window:resize)=\"resize($event)\">\n <kendo-grid [data]=\"gridView\" [pageSize]=\"pageSize\" [skip]=\"skip\" [selectable]=\"selectableSettings\"\n [pageable]=\"pageable\" [sortable]=\"sortable\" [groupable]=\"groupable\" [reorderable]=\"reorderable\"\n [resizable]=\"resizable\" [columnMenu]=\"columnMenu\" [navigable]=\"navigable\" [height]=\"height\" [style.height]=\"height\"\n (change)=\"setSelectableSettings()\" (selectedKeysChange)=\"selectedKeysChange($event)\"\n [kendoGridSelectBy]=\"gridRowSelectByValue\" (detailExpand)=\"onDetailExpand($event)\" [selectedKeys]=\"preSelected\"\n (pageChange)=\"pageChange($event)\" (cellClick)=\"cellClickHandler($event)\" (cellClose)=\"cellCloseHandler($event)\" [sort]=\"sort\"\n (sortChange)=\"sortChange($event)\" [ngClass]=\"getHeaderHeight()\" id=\"lib-grid\" [rowClass]=\"rowClass\">\n\n <ng-template *ngIf=\"showToolbar\" kendoGridToolbarTemplate>\n <ng-content></ng-content>\n </ng-template>\n\n <ng-template *ngIf=\"this.gridView.total === 0\" kendoGridNoRecordsTemplate>\n <lib-typography *ngIf=\"!loading\" [defaultText]=\"noRecordsContent\" type=\"BODY_MEDIUM\"></lib-typography>\n <lib-loader *ngIf=\"loading\" [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n\n <ng-container *ngIf=\"this.gridView.total > 0\">\n <kendo-grid-checkbox-column *ngIf=\"checkBoxRequired === true\" [width]=\"checkBoxWidth\"\n [resizable]=\"checkBoxColumnResizable\" [columnMenu]=\"checkBoxColumnMenu\" class=\"checkbox-column\">\n <ng-template kendoGridHeaderTemplate>\n <input id=\"selectAllCheckboxId\" type=\"checkbox\" kendoCheckBox kendoGridSelectAllCheckbox\n [state]=\"selectAllState\" (selectAllChange)=\"onSelectAllChange($event)\" />\n </ng-template>\n </kendo-grid-checkbox-column>\n \n <kendo-grid-column class=\"grid-column\" *ngFor=\"let item of columnData\" [field]=\"item.field\" [title]=\"item.title\"\n [width]=\"item.columnWidth\" [sortable]=\"item.sortable\" [editor]=\"item.editor\" [class]=\"item.class\">\n\n <ng-template *ngIf=\"sortable\" kendoGridHeaderTemplate>\n {{item.title}}\n <span *ngIf=\"sort[0].field === item.field\">\n <span *ngIf=\"sort[0].dir === 'asc'\"></span>\n <span *ngIf=\"sort[0].dir === 'desc'\"></span>\n </span>\n </ng-template>\n\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.impact\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"impactColumn; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column *ngIf=\"showDeleteColumn\" [width]=\"deleteColumnWidth\" class=\"delete-column\" title=\"Action\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <lib-tooltip showOn=\"hover\" position=\"bottom\" class=\"remove-tooltip\">\n <lib-icon name=\"delete\" class=\"delete-icon\" (click)=\"onDelete(dataItem)\"></lib-icon>\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Remove\"></lib-typography>\n </div>\n </lib-tooltip>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column [width]=\"kebabColumnWidth\" class=\"kebab-column\" *ngIf=\"showKebab\" title=\"Actions\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <kendo-dropdownbutton *ngIf=\"!hideKebabRowIndex.includes(rowIndex)\" [svgIcon]=\"icon\" fillMode=\"none\"\n [data]=\"kebabList | kebabMenuFilter : dataItem\" class=\"kebab\" (itemClick)=\"onKebabClick($event, dataItem)\"\n [popupSettings]=\"{ align: 'right', animate: true, popupClass: 'kebab-list' }\">\n </kendo-dropdownbutton>\n </ng-template>\n </kendo-grid-column>\n </ng-container>\n\n <ng-template kendoGridDetailTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <kendo-grid-column *ngIf=\"customExpandRowColumn\" [width]=\"expandRowColumnWidth\" class=\"grid-column expand-column\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <div [ngClass]=\"expandColumnClass()\">\n <span *ngIf=\"selectedRows.includes(dataItem[gridRowSelectByValue]) && disablePreSelectedRows\"\n class=\"expand-column-text\">\n Already added\n </span>\n <kendo-button *ngIf=\"!expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowDownIcon\"\n (click)=\"expandRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n <kendo-button *ngIf=\"expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowUpIcon\"\n (click)=\"collapseRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n </div>\n </ng-template>\n </kendo-grid-column>\n\n <ng-template kendoPagerTemplate let-totalPages=\"totalPages\" let-currentPage=\"currentPage\">\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons [buttonCount]=\"pageCount\"></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n <kendo-pager-page-sizes [pageSizes]=\"sizes\"></kendo-pager-page-sizes>\n </ng-template>\n\n </kendo-grid>\n</div>\n", styles: ["::ng-deep .k-grid tr{height:50px}::ng-deep .k-grid .k-table-th,::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important;border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:2px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important}::ng-deep .k-grid tbody>tr:not(.k-detail-row):hover{background-color:#d0dcf5!important}::ng-deep .k-grid .k-table-row.k-selected>.k-table-td{background-color:#c9d7f4!important}::ng-deep .k-grid .k-table-td{border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:1px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-table-alt-row{background-color:inherit!important}::ng-deep .k-grid .k-table-td{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .k-grid-norecords{text-align:center!important;opacity:.4}::ng-deep .k-grid-norecords td{padding:14px 0 14px 24px!important}::ng-deep kendo-pager.k-pager-wrap.k-grid-pager{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}::ng-deep .k-pager{border-style:none!important}::ng-deep .k-grid th.k-header{vertical-align:middle!important;padding-left:16px;padding-right:0}::ng-deep .grid-column,::ng-deep .kebab-column,::ng-deep .delete-column{padding:0!important}::ng-deep .grid-column kendo-button,::ng-deep .kebab-column kendo-button,::ng-deep .delete-column kendo-button{align-items:center!important;justify-content:center!important;display:flex!important}::ng-deep .k-checkbox{width:20px!important;height:20px!important;border-radius:0!important}::ng-deep .k-grid .k-hierarchy-cell,::ng-deep .k-grid .k-hierarchy-col{width:0;display:none}::ng-deep .k-grid .k-detail-row .k-detail-cell{padding:16px!important}::ng-deep .delete-icon{color:#dc267f!important;padding-left:12px;cursor:pointer}::ng-deep .remove-tooltip kendo-tooltip.k-tooltip{background-color:#fff;color:#000}::ng-deep .hide-header .k-grid-header{border:0px!important}::ng-deep .k-grid-toolbar{padding:4px 16px!important;height:50px}::ng-deep .k-grid td:not(.kebab-column):not(.expand-column){padding-left:16px!important;padding-right:16px!important}::ng-deep .view-header .k-table-thead tr{height:50px}::ng-deep .hide-header .k-table-thead tr{height:0px;padding:0;display:block}::ng-deep td.kebab-column{display:flex;justify-content:center;align-items:center;height:inherit}::ng-deep .k-grid .k-table-td>.k-checkbox{vertical-align:middle!important}::ng-deep .kebab .k-button,::ng-deep .expand-column .k-button{border:0px}::ng-deep .expand-column{pointer-events:all!important}::ng-deep .expand-column-text{margin-right:32px}::ng-deep .expand-row{display:flex;align-items:center;justify-content:flex-end}::ng-deep .column-cursor-pointer{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: i2.DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }, { kind: "component", type: i3.IconComponent, selector: "lib-icon", inputs: ["name", "fontSize", "type"] }, { kind: "directive", type: i4.CheckBoxDirective, selector: "input[kendoCheckBox]", inputs: ["size", "rounded"] }, { kind: "component", type: i5.GridComponent, selector: "kendo-grid", inputs: ["data", "pageSize", "height", "rowHeight", "detailRowHeight", "skip", "scrollable", "selectable", "sort", "size", "trackBy", "filter", "group", "virtualColumns", "filterable", "sortable", "pageable", "groupable", "rowReorderable", "navigable", "navigatable", "autoSize", "rowClass", "rowSticky", "rowSelected", "cellSelected", "resizable", "reorderable", "loading", "columnMenu", "hideHeader", "isDetailExpanded", "isGroupExpanded"], outputs: ["filterChange", "pageChange", "groupChange", "sortChange", "selectionChange", "rowReorder", "dataStateChange", "groupExpand", "groupCollapse", "detailExpand", "detailCollapse", "edit", "cancel", "save", "remove", "add", "cellClose", "cellClick", "pdfExport", "excelExport", "columnResize", "columnReorder", "columnVisibilityChange", "columnLockedChange", "columnStickyChange", "scrollBottom", "contentScroll"], exportAs: ["kendoGrid"] }, { kind: "directive", type: i5.ToolbarTemplateDirective, selector: "[kendoGridToolbarTemplate]", inputs: ["position"] }, { kind: "directive", type: i5.SelectionDirective, selector: "[kendoGridSelectBy]" }, { kind: "component", type: i5.ColumnComponent, selector: "kendo-grid-column", inputs: ["field", "format", "sortable", "groupable", "editor", "filter", "filterable", "editable"] }, { kind: "directive", type: i5.DetailTemplateDirective, selector: "[kendoGridDetailTemplate]", inputs: ["kendoGridDetailTemplateShowIf"] }, { kind: "component", type: i5.CheckboxColumnComponent, selector: "kendo-grid-checkbox-column", inputs: ["showSelectAll"] }, { kind: "directive", type: i5.CellTemplateDirective, selector: "[kendoGridCellTemplate]" }, { kind: "directive", type: i5.NoRecordsTemplateDirective, selector: "[kendoGridNoRecordsTemplate]" }, { kind: "directive", type: i5.HeaderTemplateDirective, selector: "[kendoGridHeaderTemplate]" }, { kind: "directive", type: i5.SelectAllCheckboxDirective, selector: "[kendoGridSelectAllCheckbox]", inputs: ["state"], outputs: ["selectAllChange"] }, { kind: "component", type: i5.PagerPrevButtonsComponent, selector: "kendo-pager-prev-buttons" }, { kind: "component", type: i5.PagerNextButtonsComponent, selector: "kendo-pager-next-buttons" }, { kind: "component", type: i5.PagerNumericButtonsComponent, selector: "kendo-pager-numeric-buttons", inputs: ["buttonCount"] }, { kind: "component", type: i5.PagerInfoComponent, selector: "kendo-pager-info" }, { kind: "component", type: i5.PagerPageSizesComponent, selector: "kendo-pager-page-sizes", inputs: ["pageSizes"] }, { kind: "directive", type: i5.PagerTemplateDirective, selector: "[kendoPagerTemplate]" }, { kind: "component", type: i6.TooltipComponent, selector: "lib-tooltip", inputs: ["position", "tooltipWidth", "tooltipHeight", "showOn", "closable", "title", "callout"] }, { kind: "component", type: i7.TypographyComponent, selector: "lib-typography", inputs: ["type", "defaultText", "isLabel", "hiddenLabel"] }, { kind: "component", type: i8.LoaderComponent, selector: "lib-loader", inputs: ["size", "type", "themeColor"] }, { kind: "pipe", type: i9.KebabMenuFilterPipe, name: "kebabMenuFilter" }] }); }
316
319
  }
317
320
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridPaginationComponent, decorators: [{
318
321
  type: Component,
319
- args: [{ selector: 'lib-grid-pagination', template: "<div #gridElement (window:resize)=\"resize($event)\">\n <kendo-grid [data]=\"gridView\" [pageSize]=\"pageSize\" [skip]=\"skip\" [selectable]=\"selectableSettings\"\n [pageable]=\"pageable\" [sortable]=\"sortable\" [groupable]=\"groupable\" [reorderable]=\"reorderable\"\n [resizable]=\"resizable\" [columnMenu]=\"columnMenu\" [navigable]=\"navigable\" [height]=\"height\" [style.height]=\"height\"\n (change)=\"setSelectableSettings()\" (selectedKeysChange)=\"selectedKeysChange($event)\"\n [kendoGridSelectBy]=\"gridRowSelectByValue\" (detailExpand)=\"onDetailExpand($event)\" [selectedKeys]=\"preSelected\"\n (pageChange)=\"pageChange($event)\" (cellClick)=\"cellClickHandler($event)\" (cellClose)=\"cellCloseHandler($event)\" [sort]=\"sort\"\n (sortChange)=\"sortChange($event)\" [ngClass]=\"getHeaderHeight()\" id=\"lib-grid\" [rowClass]=\"rowClass\">\n\n <ng-template *ngIf=\"showToolbar\" kendoGridToolbarTemplate>\n <ng-content></ng-content>\n </ng-template>\n\n <ng-template *ngIf=\"this.gridView.total === 0\" kendoGridNoRecordsTemplate>\n <lib-typography *ngIf=\"!loading\" [defaultText]=\"noRecordsContent\" type=\"BODY_MEDIUM\"></lib-typography>\n <lib-loader *ngIf=\"loading\" [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n\n <ng-container *ngIf=\"this.gridView.total > 0\">\n <kendo-grid-checkbox-column *ngIf=\"checkBoxRequired === true\" [width]=\"checkBoxWidth\"\n [resizable]=\"checkBoxColumnResizable\" [columnMenu]=\"checkBoxColumnMenu\" class=\"checkbox-column\">\n <ng-template kendoGridHeaderTemplate>\n <input id=\"selectAllCheckboxId\" type=\"checkbox\" kendoCheckBox kendoGridSelectAllCheckbox\n [state]=\"selectAllState\" (selectAllChange)=\"onSelectAllChange($event)\" />\n </ng-template>\n </kendo-grid-checkbox-column>\n \n <kendo-grid-column class=\"grid-column\" *ngFor=\"let item of columnData\" [field]=\"item.field\" [title]=\"item.title\"\n [width]=\"item.columnWidth\" [sortable]=\"item.sortable\" [editor]=\"item.editor\">\n\n <ng-template *ngIf=\"sortable\" kendoGridHeaderTemplate>\n {{item.title}}\n <span *ngIf=\"sort[0].field === item.field\">\n <span *ngIf=\"sort[0].dir === 'asc'\"></span>\n <span *ngIf=\"sort[0].dir === 'desc'\"></span>\n </span>\n </ng-template>\n\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.impact\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"impactColumn; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column *ngIf=\"showDeleteColumn\" [width]=\"deleteColumnWidth\" class=\"delete-column\" title=\"Action\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <lib-tooltip showOn=\"hover\" position=\"bottom\" class=\"remove-tooltip\">\n <lib-icon name=\"delete\" class=\"delete-icon\" (click)=\"onDelete(dataItem)\"></lib-icon>\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Remove\"></lib-typography>\n </div>\n </lib-tooltip>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column [width]=\"kebabColumnWidth\" class=\"kebab-column\" *ngIf=\"showKebab\" title=\"Actions\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <kendo-dropdownbutton *ngIf=\"!hideKebabRowIndex.includes(rowIndex)\" [svgIcon]=\"icon\" fillMode=\"none\"\n [data]=\"kebabList | kebabMenuFilter : dataItem\" class=\"kebab\" (itemClick)=\"onKebabClick($event, dataItem)\"\n [popupSettings]=\"{ align: 'right', animate: true, popupClass: 'kebab-list' }\">\n </kendo-dropdownbutton>\n </ng-template>\n </kendo-grid-column>\n </ng-container>\n\n <ng-template kendoGridDetailTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <kendo-grid-column *ngIf=\"customExpandRowColumn\" [width]=\"expandRowColumnWidth\" class=\"grid-column expand-column\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <div [ngClass]=\"expandColumnClass()\">\n <span *ngIf=\"selectedRows.includes(dataItem[gridRowSelectByValue]) && disablePreSelectedRows\"\n class=\"expand-column-text\">\n Already added\n </span>\n <kendo-button *ngIf=\"!expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowDownIcon\"\n (click)=\"expandRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n <kendo-button *ngIf=\"expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowUpIcon\"\n (click)=\"collapseRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n </div>\n </ng-template>\n </kendo-grid-column>\n\n <ng-template kendoPagerTemplate let-totalPages=\"totalPages\" let-currentPage=\"currentPage\">\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons [buttonCount]=\"pageCount\"></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n <kendo-pager-page-sizes [pageSizes]=\"sizes\"></kendo-pager-page-sizes>\n </ng-template>\n\n </kendo-grid>\n</div>\n", styles: ["::ng-deep .k-grid tr{height:50px}::ng-deep .k-grid .k-table-th,::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important;border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:2px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important}::ng-deep .k-grid tbody>tr:not(.k-detail-row):hover{background-color:#d0dcf5!important}::ng-deep .k-grid .k-table-row.k-selected>.k-table-td{background-color:#c9d7f4!important}::ng-deep .k-grid .k-table-td{border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:1px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-table-alt-row{background-color:inherit!important}::ng-deep .k-grid .k-table-td{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .k-grid-norecords{text-align:center!important;opacity:.4}::ng-deep .k-grid-norecords td{padding:14px 0 14px 24px!important}::ng-deep kendo-pager.k-pager-wrap.k-grid-pager{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}::ng-deep .k-pager{border-style:none!important}::ng-deep .k-grid th.k-header{vertical-align:middle!important;padding-left:16px;padding-right:0}::ng-deep .grid-column,::ng-deep .kebab-column,::ng-deep .delete-column{padding:0!important}::ng-deep .grid-column kendo-button,::ng-deep .kebab-column kendo-button,::ng-deep .delete-column kendo-button{align-items:center!important;justify-content:center!important;display:flex!important}::ng-deep .k-checkbox{width:20px!important;height:20px!important;border-radius:0!important}::ng-deep .k-grid .k-hierarchy-cell,::ng-deep .k-grid .k-hierarchy-col{width:0;display:none}::ng-deep .k-grid .k-detail-row .k-detail-cell{padding:16px!important}::ng-deep .delete-icon{color:#dc267f!important;padding-left:12px;cursor:pointer}::ng-deep .remove-tooltip kendo-tooltip.k-tooltip{background-color:#fff;color:#000}::ng-deep .hide-header .k-grid-header{border:0px!important}::ng-deep .k-grid-toolbar{padding:4px 16px!important;height:50px}::ng-deep .k-grid td:not(.kebab-column):not(.expand-column){padding-left:16px!important;padding-right:16px!important}::ng-deep .view-header .k-table-thead tr{height:50px}::ng-deep .hide-header .k-table-thead tr{height:0px;padding:0;display:block}::ng-deep td.kebab-column{display:flex;justify-content:center;align-items:center;height:inherit}::ng-deep .k-grid .k-table-td>.k-checkbox{vertical-align:middle!important}::ng-deep .kebab .k-button,::ng-deep .expand-column .k-button{border:0px}::ng-deep .expand-column{pointer-events:all!important}::ng-deep .expand-column-text{margin-right:32px}::ng-deep .expand-row{display:flex;align-items:center;justify-content:flex-end}\n"] }]
322
+ args: [{ selector: 'lib-grid-pagination', template: "<div #gridElement (window:resize)=\"resize($event)\">\n <kendo-grid [data]=\"gridView\" [pageSize]=\"pageSize\" [skip]=\"skip\" [selectable]=\"selectableSettings\"\n [pageable]=\"pageable\" [sortable]=\"sortable\" [groupable]=\"groupable\" [reorderable]=\"reorderable\"\n [resizable]=\"resizable\" [columnMenu]=\"columnMenu\" [navigable]=\"navigable\" [height]=\"height\" [style.height]=\"height\"\n (change)=\"setSelectableSettings()\" (selectedKeysChange)=\"selectedKeysChange($event)\"\n [kendoGridSelectBy]=\"gridRowSelectByValue\" (detailExpand)=\"onDetailExpand($event)\" [selectedKeys]=\"preSelected\"\n (pageChange)=\"pageChange($event)\" (cellClick)=\"cellClickHandler($event)\" (cellClose)=\"cellCloseHandler($event)\" [sort]=\"sort\"\n (sortChange)=\"sortChange($event)\" [ngClass]=\"getHeaderHeight()\" id=\"lib-grid\" [rowClass]=\"rowClass\">\n\n <ng-template *ngIf=\"showToolbar\" kendoGridToolbarTemplate>\n <ng-content></ng-content>\n </ng-template>\n\n <ng-template *ngIf=\"this.gridView.total === 0\" kendoGridNoRecordsTemplate>\n <lib-typography *ngIf=\"!loading\" [defaultText]=\"noRecordsContent\" type=\"BODY_MEDIUM\"></lib-typography>\n <lib-loader *ngIf=\"loading\" [type]=\"loaderType\" [size]=\"loaderSize\" [themeColor]=\"loaderTheme\"></lib-loader>\n </ng-template>\n\n <ng-container *ngIf=\"this.gridView.total > 0\">\n <kendo-grid-checkbox-column *ngIf=\"checkBoxRequired === true\" [width]=\"checkBoxWidth\"\n [resizable]=\"checkBoxColumnResizable\" [columnMenu]=\"checkBoxColumnMenu\" class=\"checkbox-column\">\n <ng-template kendoGridHeaderTemplate>\n <input id=\"selectAllCheckboxId\" type=\"checkbox\" kendoCheckBox kendoGridSelectAllCheckbox\n [state]=\"selectAllState\" (selectAllChange)=\"onSelectAllChange($event)\" />\n </ng-template>\n </kendo-grid-checkbox-column>\n \n <kendo-grid-column class=\"grid-column\" *ngFor=\"let item of columnData\" [field]=\"item.field\" [title]=\"item.title\"\n [width]=\"item.columnWidth\" [sortable]=\"item.sortable\" [editor]=\"item.editor\" [class]=\"item.class\">\n\n <ng-template *ngIf=\"sortable\" kendoGridHeaderTemplate>\n {{item.title}}\n <span *ngIf=\"sort[0].field === item.field\">\n <span *ngIf=\"sort[0].dir === 'asc'\"></span>\n <span *ngIf=\"sort[0].dir === 'desc'\"></span>\n </span>\n </ng-template>\n\n <ng-template *ngIf=\"item.custom\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"templateRef; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n <ng-template *ngIf=\"item.impact\" kendoGridCellTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"impactColumn; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column *ngIf=\"showDeleteColumn\" [width]=\"deleteColumnWidth\" class=\"delete-column\" title=\"Action\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <lib-tooltip showOn=\"hover\" position=\"bottom\" class=\"remove-tooltip\">\n <lib-icon name=\"delete\" class=\"delete-icon\" (click)=\"onDelete(dataItem)\"></lib-icon>\n <div class=\"tooltip-content\">\n <lib-typography defaultText=\"Remove\"></lib-typography>\n </div>\n </lib-tooltip>\n </ng-template>\n </kendo-grid-column>\n\n <kendo-grid-column [width]=\"kebabColumnWidth\" class=\"kebab-column\" *ngIf=\"showKebab\" title=\"Actions\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <kendo-dropdownbutton *ngIf=\"!hideKebabRowIndex.includes(rowIndex)\" [svgIcon]=\"icon\" fillMode=\"none\"\n [data]=\"kebabList | kebabMenuFilter : dataItem\" class=\"kebab\" (itemClick)=\"onKebabClick($event, dataItem)\"\n [popupSettings]=\"{ align: 'right', animate: true, popupClass: 'kebab-list' }\">\n </kendo-dropdownbutton>\n </ng-template>\n </kendo-grid-column>\n </ng-container>\n\n <ng-template kendoGridDetailTemplate let-dataItem>\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: dataItem}\"></ng-container>\n </ng-template>\n\n <kendo-grid-column *ngIf=\"customExpandRowColumn\" [width]=\"expandRowColumnWidth\" class=\"grid-column expand-column\">\n <ng-template kendoGridCellTemplate let-dataItem let-rowIndex=\"rowIndex\">\n <div [ngClass]=\"expandColumnClass()\">\n <span *ngIf=\"selectedRows.includes(dataItem[gridRowSelectByValue]) && disablePreSelectedRows\"\n class=\"expand-column-text\">\n Already added\n </span>\n <kendo-button *ngIf=\"!expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowDownIcon\"\n (click)=\"expandRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n <kendo-button *ngIf=\"expandRowIndex.includes(rowIndex)\" [svgIcon]=\"arrowUpIcon\"\n (click)=\"collapseRow(rowIndex)\" fillMode=\"none\" class=\"arrow-btn\">\n </kendo-button>\n </div>\n </ng-template>\n </kendo-grid-column>\n\n <ng-template kendoPagerTemplate let-totalPages=\"totalPages\" let-currentPage=\"currentPage\">\n <kendo-pager-prev-buttons></kendo-pager-prev-buttons>\n <kendo-pager-numeric-buttons [buttonCount]=\"pageCount\"></kendo-pager-numeric-buttons>\n <kendo-pager-next-buttons></kendo-pager-next-buttons>\n <kendo-pager-info></kendo-pager-info>\n <kendo-pager-page-sizes [pageSizes]=\"sizes\"></kendo-pager-page-sizes>\n </ng-template>\n\n </kendo-grid>\n</div>\n", styles: ["::ng-deep .k-grid tr{height:50px}::ng-deep .k-grid .k-table-th,::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important;border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:2px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-grid .k-table-th.k-sorted{font-family:Inter,sans-serif!important;font-weight:600!important;font-style:normal!important;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important;background-color:#dee6f7!important}::ng-deep .k-grid tbody>tr:not(.k-detail-row):hover{background-color:#d0dcf5!important}::ng-deep .k-grid .k-table-row.k-selected>.k-table-td{background-color:#c9d7f4!important}::ng-deep .k-grid .k-table-td{border-bottom-color:#ebecec!important;border-bottom-style:solid!important;border-bottom-width:1px!important;border-right:0px!important;border-left:0px!important}::ng-deep .k-table-alt-row{background-color:inherit!important}::ng-deep .k-grid .k-table-td{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal;font-size:12px!important;line-height:16px!important;letter-spacing:.25px!important}::ng-deep .k-grid-norecords{text-align:center!important;opacity:.4}::ng-deep .k-grid-norecords td{padding:14px 0 14px 24px!important}::ng-deep kendo-pager.k-pager-wrap.k-grid-pager{font-family:Inter,sans-serif!important;font-weight:400!important;font-style:normal!important;font-size:14px!important;line-height:20px!important;letter-spacing:.25px!important}::ng-deep .k-pager{border-style:none!important}::ng-deep .k-grid th.k-header{vertical-align:middle!important;padding-left:16px;padding-right:0}::ng-deep .grid-column,::ng-deep .kebab-column,::ng-deep .delete-column{padding:0!important}::ng-deep .grid-column kendo-button,::ng-deep .kebab-column kendo-button,::ng-deep .delete-column kendo-button{align-items:center!important;justify-content:center!important;display:flex!important}::ng-deep .k-checkbox{width:20px!important;height:20px!important;border-radius:0!important}::ng-deep .k-grid .k-hierarchy-cell,::ng-deep .k-grid .k-hierarchy-col{width:0;display:none}::ng-deep .k-grid .k-detail-row .k-detail-cell{padding:16px!important}::ng-deep .delete-icon{color:#dc267f!important;padding-left:12px;cursor:pointer}::ng-deep .remove-tooltip kendo-tooltip.k-tooltip{background-color:#fff;color:#000}::ng-deep .hide-header .k-grid-header{border:0px!important}::ng-deep .k-grid-toolbar{padding:4px 16px!important;height:50px}::ng-deep .k-grid td:not(.kebab-column):not(.expand-column){padding-left:16px!important;padding-right:16px!important}::ng-deep .view-header .k-table-thead tr{height:50px}::ng-deep .hide-header .k-table-thead tr{height:0px;padding:0;display:block}::ng-deep td.kebab-column{display:flex;justify-content:center;align-items:center;height:inherit}::ng-deep .k-grid .k-table-td>.k-checkbox{vertical-align:middle!important}::ng-deep .kebab .k-button,::ng-deep .expand-column .k-button{border:0px}::ng-deep .expand-column{pointer-events:all!important}::ng-deep .expand-column-text{margin-right:32px}::ng-deep .expand-row{display:flex;align-items:center;justify-content:flex-end}::ng-deep .column-cursor-pointer{cursor:pointer}\n"] }]
320
323
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { templateRef: [{
321
324
  type: ContentChild,
322
325
  args: ['multiColumnData']
@@ -442,4 +445,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
442
445
  type: HostListener,
443
446
  args: ['window:resize', ['$event']]
444
447
  }] } });
445
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLGFBQWEsRUFNZCxNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBa0IsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUVMLGVBQWUsRUFDZixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2pCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7O0FBRXRELE1BQU0sZUFBZSxHQUFHLENBQUMsUUFBYSxFQUFhLEVBQUU7SUFDbkQsTUFBTSxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0IsS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3RDLElBQUks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Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQU1HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFHRSxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFNRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBbUxOLE1BQU07c0JBREwsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTZWxlY3RhYmxlU2V0dGluZ3MsXG4gIFNlbGVjdGFibGVNb2RlLFxuICBDZWxsQ2xpY2tFdmVudCxcbiAgR3JpZENvbXBvbmVudCxcbiAgR3JpZERhdGFSZXN1bHQsXG4gIFBhZ2VDaGFuZ2VFdmVudCxcbiAgUm93Q2xhc3NBcmdzLFxuICBTZWxlY3RBbGxDaGVja2JveFN0YXRlLFxuICBDZWxsQ2xvc2VFdmVudFxufSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ncmlkJztcbmltcG9ydCB7IFNvcnREZXNjcmlwdG9yLCBvcmRlckJ5IH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnknO1xuaW1wb3J0IHtcbiAgU1ZHSWNvbixcbiAgY2hldnJvbkRvd25JY29uLFxuICBjaGV2cm9uVXBJY29uLFxuICBtb3JlVmVydGljYWxJY29uXG59IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1zdmctaWNvbnMnO1xuaW1wb3J0IHsgTG9hZGVyU2l6ZSwgTG9hZGVyVHlwZSwgTG9hZGVyVGhlbWVDb2xvciB9IGZyb20gJy4uLy4uL2F0b21zL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBLZXlzIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItY29tbW9uJztcblxuY29uc3QgY3JlYXRlRm9ybUdyb3VwID0gKGRhdGFJdGVtOiBhbnkpOiBGb3JtR3JvdXAgPT4ge1xuICBjb25zdCBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIGZvciAobGV0IGRhdGEgb2YgT2JqZWN0LmtleXMoZGF0YUl0ZW0pKSB7XG4gICAgZm9ybS5hZGRDb250cm9sKGRhdGEsIG5ldyBGb3JtQ29udHJvbChkYXRhSXRlbVtkYXRhXSwgVmFsaWRhdG9ycy5yZXF1aXJlZCkpXG4gIH1cbiAgcmV0dXJuIGZvcm1cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1ncmlkLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRQYWdpbmF0aW9uQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQENvbnRlbnRDaGlsZCgnbXVsdGlDb2x1bW5EYXRhJykgdGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgQENvbnRlbnRDaGlsZCgnZGV0YWlsVGVtcGxhdGUnKSBkZXRhaWxUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICBAQ29udGVudENoaWxkKCdpbXBhY3RDb2x1bW4nKSBpbXBhY3RDb2x1bW4hOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgQFZpZXdDaGlsZChHcmlkQ29tcG9uZW50KSBncmlkITogR3JpZENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnZ3JpZEVsZW1lbnQnKSBncmlkRWxlbWVudCE6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgZ3JpZFZpZXc6IEdyaWREYXRhUmVzdWx0ID0geyBkYXRhOiBbXSwgdG90YWw6IDAgfTtcbiAgQElucHV0KCkgc2tpcDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgY29sdW1uRGF0YTogYW55ID0gW107XG4gIEBJbnB1dCgpIHBhZ2VTaXplOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBwYWdlYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBncm91cGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVvcmRlcmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVzaXphYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNoZWNrQm94V2lkdGg6IG51bWJlciA9IDQ1O1xuICBASW5wdXQoKSBjaGVja0JveENvbHVtblJlc2l6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjaGVja0JveENvbHVtbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY2hlY2tCb3hDb2x1bW5TaG93U2VsZWN0ZWRBbGw6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBjaGVja0JveFJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvbHVtbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbW9kZTogU2VsZWN0YWJsZU1vZGUgfCB1bmRlZmluZWQgPSAnbXVsdGlwbGUnO1xuICBASW5wdXQoKSBjaGVja2JveE9ubHkgPSB0cnVlO1xuICBASW5wdXQoKSBkcmFnQ29sdW1ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBuYXZpZ2FibGU6IGJvb2xlYW4gPSB0cnVlO1xuICBoZWlnaHQ6IGFueTtcbiAgQElucHV0KCkgZ3JpZFJvd1NlbGVjdEJ5VmFsdWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBub1JlY29yZHNDb250ZW50OiBzdHJpbmcgPSAnTm8gUmVjb3JkcyBBdmFpbGFibGUnO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSb3dEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQElucHV0KCkgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXh0cmFjdERhdGFJdGVtczogYW55O1xuICBzZWxlY3RhYmxlU2V0dGluZ3M6IFNlbGVjdGFibGVTZXR0aW5ncyA9IHt9O1xuICBASW5wdXQoKSBrZWJhYkxpc3Q6IGFueSA9IFtdO1xuICBASW5wdXQoKSBzaG93S2ViYWI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHJvd0RldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBAT3V0cHV0KCkga2ViYWJJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgaWNvbjogU1ZHSWNvbiA9IG1vcmVWZXJ0aWNhbEljb247XG4gIEBJbnB1dCgpIGtlYmFiQ29sdW1uV2lkdGg6IG51bWJlciA9IDYwO1xuICBkYXRhOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0Q29sdW1uID0gJyc7XG4gIEBPdXRwdXQoKSByb3dEYXRhT2ZDbGlja2VkQ2VsbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBwcmVTZWxlY3RlZDogYW55W10gPSBbXTtcbiAgcHJlU2VsZWN0ZWRSZWNvcmRzOiBhbnlbXSA9IFtdO1xuICBAT3V0cHV0KCkgb25QYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGlnbm9yZUNvbHVtbkNlbGxDbGljazogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgYWxsb3dDb2x1bW5DbGljazogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0OiBTb3J0RGVzY3JpcHRvcltdID0gW1xuICAgIHtcbiAgICAgIGZpZWxkOiAnJyxcbiAgICAgIGRpcjogdW5kZWZpbmVkLFxuICAgIH0sXG4gIF07XG4gIEBJbnB1dCgpIGhhc0FwaVNvcnRpbmcgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHNvcnREaXJlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIGFycm93RG93bkljb246IFNWR0ljb24gPSBjaGV2cm9uRG93bkljb247XG4gIHB1YmxpYyBhcnJvd1VwSWNvbjogU1ZHSWNvbiA9IGNoZXZyb25VcEljb247XG4gIEBJbnB1dCgpIGV4cGFuZFJvd0luZGV4OiBudW1iZXJbXSA9IFtdO1xuICBASW5wdXQoKSBjdXN0b21FeHBhbmRSb3dDb2x1bW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZGVsZXRlQ29sdW1uV2lkdGg6IG51bWJlciA9IDQyO1xuICBleHBhbmRSb3dDb2x1bW5XaWR0aDogbnVtYmVyID0gNTY7XG4gIEBPdXRwdXQoKSBkZWxldGVkUm93RGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBzaXplczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgcGFnZUNvdW50ID0gMDtcbiAgQElucHV0KCkgc2hvd0RlbGV0ZUNvbHVtbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlS2ViYWJSb3dJbmRleDogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBsb2FkZXJUeXBlOiBMb2FkZXJUeXBlID0gTG9hZGVyVHlwZS5wdWxzaW5nO1xuICBASW5wdXQoKSBsb2FkZXJTaXplOiBMb2FkZXJTaXplID0gTG9hZGVyU2l6ZS5tZWRpdW07XG4gIEBJbnB1dCgpIGxvYWRlclRoZW1lOiBMb2FkZXJUaGVtZUNvbG9yID0gTG9hZGVyVGhlbWVDb2xvci5wcmltYXJ5O1xuICBpbml0aWFsR3JpZEhlaWdodDogYW55O1xuICBncmlkQm90dG9tU3BhY2UgPSAyNDtcbiAgcmVzaXplSGVpZ2h0OiBhbnkgPSAwO1xuICBzZWxlY3RBbGxTdGF0ZTogU2VsZWN0QWxsQ2hlY2tib3hTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICBzZWxlY3RlZFJvd3M6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGRpc2FibGVQcmVTZWxlY3RlZFJvd3MgPSBmYWxzZTtcbiAgcHVibGljIGZvcm1Hcm91cCE6IEZvcm1Hcm91cCB8IGFueTtcbiAgQE91dHB1dCgpIHVwZGF0ZWREYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGFsbG93RWRpdGluZ0NlbGwgPSBmYWxzZTtcbiAgXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5zZXRTZWxlY3RhYmxlU2V0dGluZ3MoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGZvciAobGV0IGNvbHVtbiBvZiB0aGlzLmNvbHVtbkRhdGEpIHtcbiAgICAgIGNvbHVtbi5zb3J0YWJsZSA9IGNvbHVtbi5zb3J0YWJsZSA9PSB1bmRlZmluZWQgPyB0cnVlIDogY29sdW1uLnNvcnRhYmxlO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaGFzQXBpU29ydGluZykge1xuICAgICAgdGhpcy5sb2FkR3JpZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBhZ2VhYmxlKSB7XG4gICAgICB0aGlzLnBhZ2VTaXplID0gdGhpcy5ncmlkVmlldy5kYXRhPy5sZW5ndGg7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmN1c3RvbUV4cGFuZFJvd0NvbHVtbikge1xuICAgICAgdGhpcy5leHBhbmRSb3dJbmRleC5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgICB0aGlzLmdyaWQuZXhwYW5kUm93KGlkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkUm93cyA9IHRoaXMucHJlU2VsZWN0ZWQ7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA9PSB0aGlzLmdyaWRWaWV3LnRvdGFsKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnY2hlY2tlZCc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ3VuY2hlY2tlZCc7XG4gICAgfVxuICAgIHRoaXMuaW5pdGlhbEdyaWRIZWlnaHQgPVxuICAgICAgdGhpcy5ncmlkRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCArIHRoaXMuZ3JpZEJvdHRvbVNwYWNlO1xuICAgIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcGFnZUNoYW5nZShldmVudDogUGFnZUNoYW5nZUV2ZW50KSB7XG4gICAgdGhpcy5vblBhZ2VDaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBzZXRTZWxlY3RhYmxlU2V0dGluZ3MoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2hlY2tib3hPbmx5IHx8IHRoaXMubW9kZSA9PT0gJ3NpbmdsZScpIHtcbiAgICAgIHRoaXMuZHJhZ0NvbHVtbnMgPSBmYWxzZTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGFibGVTZXR0aW5ncyA9IHtcbiAgICAgIGNoZWNrYm94T25seTogdGhpcy5jaGVja2JveE9ubHksXG4gICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICBkcmFnOiB0aGlzLmRyYWdDb2x1bW5zLFxuICAgIH07XG4gIH1cblxuICAvLyBXZSBjYW4gZXh0cmFjdCBkYXRhIG91dCBvZiByb3cgbnVtYmVyIHVzaW5nIGJlbG93IGZ1bmN0aW9uXG4gIC8qIGV4dHJhY3QoKSB7XG4gICAgdGhpcy5leHRyYWN0RGF0YUl0ZW1zID0gdGhpcy5teVNlbGVjdGlvbi5tYXAoaWR4ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmdyaWREYXRhLmZpbmQoKGRhdGE6IHsgUHJvZHVjdElEOiBudW1iZXI7IH0pID0+IGRhdGEuUHJvZHVjdElEID09PSBpZHgpO1xuICAgIH0pO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuZXh0cmFjdERhdGFJdGVtcylcbiAgICB0aGlzLnNlbGVjdGVkUm93RGF0YS5lbWl0KHRoaXMuZXh0cmFjdERhdGFJdGVtcyk7XG4gIH0gKi9cblxuICBzZWxlY3RlZEtleXNDaGFuZ2Uocm93czogbnVtYmVyW10pIHtcbiAgICBsZXQgc2VsZWN0ZWRSb3dEYXRhID0gW107XG4gICAgbGV0IHNlbGVjdGVkUm93c0NvdW50ID0gMDtcblxuICAgIGlmIChyb3dzPy5sZW5ndGggPiAwKSB7XG4gICAgICBzZWxlY3RlZFJvd3NDb3VudCA9IHJvd3M/Lmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgc2VsZWN0ZWRSb3dzQ291bnQgPSB0aGlzLnNlbGVjdGVkUm93cz8ubGVuZ3RoO1xuICAgICAgcm93cyA9IHRoaXMuc2VsZWN0ZWRSb3dzO1xuICAgIH1cblxuICAgIGlmIChzZWxlY3RlZFJvd3NDb3VudCA9PSB0aGlzLmdyaWRWaWV3LnRvdGFsKSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2NoZWNrZWQnO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRSb3dzQ291bnQgPT0gMCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ2luZGV0ZXJtaW5hdGUnO1xuICAgIH1cblxuICAgIHNlbGVjdGVkUm93RGF0YSA9IHJvd3MubWFwKHJvd0RhdGEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ3JpZFZpZXcuZGF0YS5maW5kKChkYXRhKSA9PiBkYXRhW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdID09PSByb3dEYXRhKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2VsZWN0ZWRSb3dEYXRhLmVtaXQoc2VsZWN0ZWRSb3dEYXRhKTtcbiAgfVxuXG4gIG9uS2ViYWJDbGljayhpdGVtOiBhbnksIHJvd0RldGFpbHM6IGFueSkge1xuICAgIHRoaXMua2ViYWJJdGVtQ2xpY2suZW1pdCh7IGFjdGlvbjogaXRlbSwgcm93RGV0YWlscyB9KTtcbiAgfVxuXG4gIG9uRGV0YWlsRXhwYW5kKHJvd0RhdGE6IGFueSkge1xuICAgIHRoaXMucm93RGV0YWlscy5lbWl0KHJvd0RhdGEuZGF0YUl0ZW0pO1xuICB9XG5cbiAgY2VsbENsaWNrSGFuZGxlcihhcmdzOiBDZWxsQ2xpY2tFdmVudCkge1xuICAgIGlmICh0aGlzLmFsbG93Q29sdW1uQ2xpY2spIHtcbiAgICAgIGlmICh0aGlzLmlnbm9yZUNvbHVtbkNlbGxDbGljay5pbmNsdWRlcyhhcmdzLmNvbHVtbkluZGV4KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnJvd0RhdGFPZkNsaWNrZWRDZWxsLmVtaXQoYXJncy5kYXRhSXRlbSk7XG4gICAgfVxuICAgIGlmKHRoaXMuYWxsb3dFZGl0aW5nQ2VsbCl7XG4gICAgICB0aGlzLmZvcm1Hcm91cCA9IGNyZWF0ZUZvcm1Hcm91cChhcmdzLmRhdGFJdGVtKTtcbiAgICAgICAgICAgIGFyZ3Muc2VuZGVyLmVkaXRDZWxsKGFyZ3Mucm93SW5kZXgsIGFyZ3MuY29sdW1uSW5kZXgsIHRoaXMuZm9ybUdyb3VwKTtcbiAgICAgIH1cbiAgfVxuXG4gIHNvcnRDaGFuZ2Uoc29ydDogU29ydERlc2NyaXB0b3JbXSk6IHZvaWQge1xuICAgIHRoaXMuc29ydCA9IHNvcnQ7XG4gICAgaWYgKCF0aGlzLmhhc0FwaVNvcnRpbmcpIHtcbiAgICAgIHRoaXMubG9hZEdyaWREYXRhKCk7XG4gICAgfVxuICAgIHRoaXMuc29ydERpcmVjdGlvbi5lbWl0KHRoaXMuc29ydCk7XG4gIH1cblxuICBsb2FkR3JpZERhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5ncmlkVmlldyA9IHtcbiAgICAgIGRhdGE6IG9yZGVyQnkodGhpcy5ncmlkVmlldz8uZGF0YSwgdGhpcy5zb3J0KSxcbiAgICAgIHRvdGFsOiB0aGlzLmdyaWRWaWV3Py50b3RhbCxcbiAgICB9O1xuICB9XG5cbiAgZXhwYW5kUm93KGlkOiBudW1iZXIpIHtcbiAgICB0aGlzLmdyaWQuZXhwYW5kUm93KGlkKTtcbiAgICB0aGlzLmV4cGFuZFJvd0luZGV4LnB1c2goaWQpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5nZXRHcmlkSGVpZ2h0KCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBjb2xsYXBzZVJvdyhpZDogbnVtYmVyKSB7XG4gICAgdGhpcy5ncmlkLmNvbGxhcHNlUm93KGlkKTtcbiAgICB0aGlzLmV4cGFuZFJvd0luZGV4LnNwbGljZSh0aGlzLmV4cGFuZFJvd0luZGV4LmluZGV4T2YoaWQpLCAxKTtcbiAgICBpZiAodGhpcy5leHBhbmRSb3dJbmRleD8ubGVuZ3RoID09IDApIHtcbiAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgIGNvbnN0IHZpZXdwb3J0OiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGliLWdyaWQnKTtcbiAgICAgIGNvbnN0IGdyaWRPZmZzZXQgPSB2aWV3cG9ydC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgIGlmICh3aW5kb3dIZWlnaHQgPiBncmlkT2Zmc2V0ICsgdGhpcy5pbml0aWFsR3JpZEhlaWdodCkge1xuICAgICAgICB0aGlzLmhlaWdodCA9ICcxMDAlJztcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5nZXRHcmlkSGVpZ2h0KCk7XG4gICAgfVxuICB9XG5cbiAgb25EZWxldGUocm93RGV0YWlsczogYW55KSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmdldEhlYWRlckhlaWdodCgpO1xuICAgIH0sIDEwMDApO1xuICAgIHRoaXMuZGVsZXRlZFJvd0RhdGEuZW1pdChyb3dEZXRhaWxzKTtcbiAgfVxuXG4gIGdldEhlYWRlckhlaWdodCgpIHtcbiAgICBpZiAodGhpcy5ncmlkVmlldz8uZGF0YT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gJ2hpZGUtaGVhZGVyJztcbiAgICB9XG4gICAgcmV0dXJuICd2aWV3LWhlYWRlcic7XG4gIH1cblxuICBnZXRHcmlkSGVpZ2h0KCkge1xuICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICBjb25zdCB2aWV3cG9ydDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpYi1ncmlkJyk7XG4gICAgY29uc3QgZ3JpZE9mZnNldCA9IHZpZXdwb3J0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5zY3JvbGxZO1xuICAgIGNvbnN0IGdyaWRIZWlnaHQgPVxuICAgICAgdGhpcy5ncmlkRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCArIHRoaXMuZ3JpZEJvdHRvbVNwYWNlOyAvL2dyaWQgc2hvdWxkIGhhdmUgMjRweCBzcGFjZSBhdCBib3R0b21cbiAgICBpZiAoZ3JpZE9mZnNldCArIGdyaWRIZWlnaHQgPj0gd2luZG93SGVpZ2h0KSB7XG4gICAgICB0aGlzLmhlaWdodCA9IHdpbmRvd0hlaWdodCAtIChncmlkT2Zmc2V0ICsgdGhpcy5ncmlkQm90dG9tU3BhY2UpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICByZXNpemUoZXY6IGFueSkge1xuICAgIGlmIChldi50YXJnZXQuaW5uZXJIZWlnaHQgPiB0aGlzLnJlc2l6ZUhlaWdodCkge1xuICAgICAgdGhpcy5yZXNpemVIZWlnaHQgPSBldi50YXJnZXQuaW5uZXJIZWlnaHQ7XG4gICAgICB0aGlzLmhlaWdodCA9ICcxMDAlJztcbiAgICB9XG4gICAgaWYgKHRoaXMucmVzaXplSGVpZ2h0ID4gd2luZG93LmlubmVySGVpZ2h0KSB7XG4gICAgICB0aGlzLnJlc2l6ZUhlaWdodCA9IDA7XG4gICAgfVxuICAgIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuICB9XG5cbiAgcm93Q2xhc3MgPSAoYXJnczogUm93Q2xhc3NBcmdzKSA9PiB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJ2stZGlzYWJsZWQnOiB0aGlzLnNlbGVjdGVkUm93cy5pbmNsdWRlcyhcbiAgICAgICAgICBhcmdzLmRhdGFJdGVtW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH07XG5cbiAgZXhwYW5kQ29sdW1uQ2xhc3MoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgdGhpcy5leHBhbmRSb3dDb2x1bW5XaWR0aCA9IDE5NDtcbiAgICAgIHJldHVybiAnZXhwYW5kLXJvdyc7XG4gICAgfVxuICAgIHRoaXMuZXhwYW5kUm93Q29sdW1uV2lkdGggPSA1NjtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBvblNlbGVjdEFsbENoYW5nZShjaGVja2VkU3RhdGU6IFNlbGVjdEFsbENoZWNrYm94U3RhdGUpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBjaGVja2VkU3RhdGUgPT09ICdjaGVja2VkJyB8fFxuICAgICAgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPT0gdGhpcy5ncmlkVmlldy50b3RhbCAmJlxuICAgICAgICB0aGlzLmRpc2FibGVQcmVTZWxlY3RlZFJvd3MpXG4gICAgKSB7XG4gICAgICB0aGlzLnByZVNlbGVjdGVkID0gdGhpcy5ncmlkVmlldy5kYXRhXG4gICAgICAgIC5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXSlcbiAgICAgICAgLmZpbHRlcigoaWQ6IGFueSkgPT4gaWQpO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdjaGVja2VkJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgdGhpcy5wcmVTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRSb3dzO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdpbmRldGVybWluYXRlJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmVTZWxlY3RlZCA9IFtdO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjZWxsQ2xvc2VIYW5kbGVyKGFyZ3M6IENlbGxDbG9zZUV2ZW50KTogdm9pZCB7XG4gICAgbGV0IHsgZm9ybUdyb3VwLCBkYXRhSXRlbSB9ID0gYXJncztcbiAgICBpZiAoIWZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgYXJncy5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0gZWxzZSBpZiAoZm9ybUdyb3VwLmRpcnR5KSB7XG4gICAgICBpZiAoYXJncy5vcmlnaW5hbEV2ZW50ICYmIGFyZ3Mub3JpZ2luYWxFdmVudC5rZXlDb2RlID09PSBLZXlzLkVzY2FwZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBPYmplY3QuYXNzaWduKGRhdGFJdGVtLCBmb3JtR3JvdXAudmFsdWUpO1xuICAgICAgdGhpcy5zYXZlQ2hhbmdlcygpO1xuICAgICAgdGhpcy51cGRhdGVkRGF0YS5lbWl0KHRoaXMuZ3JpZC5kYXRhKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzYXZlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmdyaWQuY2xvc2VDZWxsKCk7XG4gICAgdGhpcy5ncmlkLmNhbmNlbENlbGwoKTtcbiAgfVxufVxuIiwiPGRpdiAjZ3JpZEVsZW1lbnQgKHdpbmRvdzpyZXNpemUpPVwicmVzaXplKCRldmVudClcIj5cbiAgPGtlbmRvLWdyaWQgW2RhdGFdPVwiZ3JpZFZpZXdcIiBbcGFnZVNpemVdPVwicGFnZVNpemVcIiBbc2tpcF09XCJza2lwXCIgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVNldHRpbmdzXCJcbiAgICBbcGFnZWFibGVdPVwicGFnZWFibGVcIiBbc29ydGFibGVdPVwic29ydGFibGVcIiBbZ3JvdXBhYmxlXT1cImdyb3VwYWJsZVwiIFtyZW9yZGVyYWJsZV09XCJyZW9yZGVyYWJsZVwiXG4gICAgW3Jlc2l6YWJsZV09XCJyZXNpemFibGVcIiBbY29sdW1uTWVudV09XCJjb2x1bW5NZW51XCIgW25hdmlnYWJsZV09XCJuYXZpZ2FibGVcIiBbaGVpZ2h0XT1cImhlaWdodFwiIFtzdHlsZS5oZWlnaHRdPVwiaGVpZ2h0XCJcbiAgICAoY2hhbmdlKT1cInNldFNlbGVjdGFibGVTZXR0aW5ncygpXCIgKHNlbGVjdGVkS2V5c0NoYW5nZSk9XCJzZWxlY3RlZEtleXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2tlbmRvR3JpZFNlbGVjdEJ5XT1cImdyaWRSb3dTZWxlY3RCeVZhbHVlXCIgKGRldGFpbEV4cGFuZCk9XCJvbkRldGFpbEV4cGFuZCgkZXZlbnQpXCIgW3NlbGVjdGVkS2V5c109XCJwcmVTZWxlY3RlZFwiXG4gICAgKHBhZ2VDaGFuZ2UpPVwicGFnZUNoYW5nZSgkZXZlbnQpXCIgKGNlbGxDbGljayk9XCJjZWxsQ2xpY2tIYW5kbGVyKCRldmVudClcIiAoY2VsbENsb3NlKT1cImNlbGxDbG9zZUhhbmRsZXIoJGV2ZW50KVwiIFtzb3J0XT1cInNvcnRcIlxuICAgIChzb3J0Q2hhbmdlKT1cInNvcnRDaGFuZ2UoJGV2ZW50KVwiIFtuZ0NsYXNzXT1cImdldEhlYWRlckhlaWdodCgpXCIgaWQ9XCJsaWItZ3JpZFwiIFtyb3dDbGFzc109XCJyb3dDbGFzc1wiPlxuXG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwic2hvd1Rvb2xiYXJcIiBrZW5kb0dyaWRUb29sYmFyVGVtcGxhdGU+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInRoaXMuZ3JpZFZpZXcudG90YWwgPT09IDBcIiBrZW5kb0dyaWROb1JlY29yZHNUZW1wbGF0ZT5cbiAgICAgIDxsaWItdHlwb2dyYXBoeSAqbmdJZj1cIiFsb2FkaW5nXCIgW2RlZmF1bHRUZXh0XT1cIm5vUmVjb3Jkc0NvbnRlbnRcIiB0eXBlPVwiQk9EWV9NRURJVU1cIj48L2xpYi10eXBvZ3JhcGh5PlxuICAgICAgPGxpYi1sb2FkZXIgKm5nSWY9XCJsb2FkaW5nXCIgW3R5cGVdPVwibG9hZGVyVHlwZVwiIFtzaXplXT1cImxvYWRlclNpemVcIiBbdGhlbWVDb2xvcl09XCJsb2FkZXJUaGVtZVwiPjwvbGliLWxvYWRlcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRoaXMuZ3JpZFZpZXcudG90YWwgPiAwXCI+XG4gICAgICA8a2VuZG8tZ3JpZC1jaGVja2JveC1jb2x1bW4gKm5nSWY9XCJjaGVja0JveFJlcXVpcmVkID09PSB0cnVlXCIgW3dpZHRoXT1cImNoZWNrQm94V2lkdGhcIlxuICAgICAgICBbcmVzaXphYmxlXT1cImNoZWNrQm94Q29sdW1uUmVzaXphYmxlXCIgW2NvbHVtbk1lbnVdPVwiY2hlY2tCb3hDb2x1bW5NZW51XCIgY2xhc3M9XCJjaGVja2JveC1jb2x1bW5cIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZEhlYWRlclRlbXBsYXRlPlxuICAgICAgICAgIDxpbnB1dCBpZD1cInNlbGVjdEFsbENoZWNrYm94SWRcIiB0eXBlPVwiY2hlY2tib3hcIiBrZW5kb0NoZWNrQm94IGtlbmRvR3JpZFNlbGVjdEFsbENoZWNrYm94XG4gICAgICAgICAgICBbc3RhdGVdPVwic2VsZWN0QWxsU3RhdGVcIiAoc2VsZWN0QWxsQ2hhbmdlKT1cIm9uU2VsZWN0QWxsQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9rZW5kby1ncmlkLWNoZWNrYm94LWNvbHVtbj5cbiAgICAgIFxuICAgICAgPGtlbmRvLWdyaWQtY29sdW1uIGNsYXNzPVwiZ3JpZC1jb2x1bW5cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb2x1bW5EYXRhXCIgW2ZpZWxkXT1cIml0ZW0uZmllbGRcIiBbdGl0bGVdPVwiaXRlbS50aXRsZVwiXG4gICAgICAgIFt3aWR0aF09XCJpdGVtLmNvbHVtbldpZHRoXCIgW3NvcnRhYmxlXT1cIml0ZW0uc29ydGFibGVcIiBbZWRpdG9yXT1cIml0ZW0uZWRpdG9yXCI+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwic29ydGFibGVcIiBrZW5kb0dyaWRIZWFkZXJUZW1wbGF0ZT5cbiAgICAgICAgICB7e2l0ZW0udGl0bGV9fVxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydFswXS5maWVsZCA9PT0gaXRlbS5maWVsZFwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0WzBdLmRpciA9PT0gJ2FzYydcIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRbMF0uZGlyID09PSAnZGVzYydcIj48L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIml0ZW0uY3VzdG9tXCIga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVSZWY7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGRhdGFJdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJpdGVtLmltcGFjdFwiIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImltcGFjdENvbHVtbjsgY29udGV4dDogeyRpbXBsaWNpdDogZGF0YUl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuXG4gICAgICA8a2VuZG8tZ3JpZC1jb2x1bW4gKm5nSWY9XCJzaG93RGVsZXRlQ29sdW1uXCIgW3dpZHRoXT1cImRlbGV0ZUNvbHVtbldpZHRoXCIgY2xhc3M9XCJkZWxldGUtY29sdW1uXCIgdGl0bGU9XCJBY3Rpb25cIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0gbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgICAgICA8bGliLXRvb2x0aXAgc2hvd09uPVwiaG92ZXJcIiBwb3NpdGlvbj1cImJvdHRvbVwiIGNsYXNzPVwicmVtb3ZlLXRvb2x0aXBcIj5cbiAgICAgICAgICAgIDxsaWItaWNvbiBuYW1lPVwiZGVsZXRlXCIgY2xhc3M9XCJkZWxldGUtaWNvblwiIChjbGljayk9XCJvbkRlbGV0ZShkYXRhSXRlbSlcIj48L2xpYi1pY29uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGVudFwiPlxuICAgICAgICAgICAgICA8bGliLXR5cG9ncmFwaHkgZGVmYXVsdFRleHQ9XCJSZW1vdmVcIj48L2xpYi10eXBvZ3JhcGh5PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9saWItdG9vbHRpcD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG5cbiAgICAgIDxrZW5kby1ncmlkLWNvbHVtbiBbd2lkdGhdPVwia2ViYWJDb2x1bW5XaWR0aFwiIGNsYXNzPVwia2ViYWItY29sdW1uXCIgKm5nSWY9XCJzaG93S2ViYWJcIiB0aXRsZT1cIkFjdGlvbnNcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0gbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgICAgICA8a2VuZG8tZHJvcGRvd25idXR0b24gKm5nSWY9XCIhaGlkZUtlYmFiUm93SW5kZXguaW5jbHVkZXMocm93SW5kZXgpXCIgW3N2Z0ljb25dPVwiaWNvblwiIGZpbGxNb2RlPVwibm9uZVwiXG4gICAgICAgICAgICBbZGF0YV09XCJrZWJhYkxpc3QgfCBrZWJhYk1lbnVGaWx0ZXIgOiBkYXRhSXRlbVwiIGNsYXNzPVwia2ViYWJcIiAoaXRlbUNsaWNrKT1cIm9uS2ViYWJDbGljaygkZXZlbnQsIGRhdGFJdGVtKVwiXG4gICAgICAgICAgICBbcG9wdXBTZXR0aW5nc109XCJ7IGFsaWduOiAncmlnaHQnLCBhbmltYXRlOiB0cnVlLCBwb3B1cENsYXNzOiAna2ViYWItbGlzdCcgfVwiPlxuICAgICAgICAgIDwva2VuZG8tZHJvcGRvd25idXR0b24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZERldGFpbFRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZXRhaWxUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogZGF0YUl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxrZW5kby1ncmlkLWNvbHVtbiAqbmdJZj1cImN1c3RvbUV4cGFuZFJvd0NvbHVtblwiIFt3aWR0aF09XCJleHBhbmRSb3dDb2x1bW5XaWR0aFwiIGNsYXNzPVwiZ3JpZC1jb2x1bW4gZXhwYW5kLWNvbHVtblwiPlxuICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZENlbGxUZW1wbGF0ZSBsZXQtZGF0YUl0ZW0gbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJleHBhbmRDb2x1bW5DbGFzcygpXCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZFJvd3MuaW5jbHVkZXMoZGF0YUl0ZW1bZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdKSAmJiBkaXNhYmxlUHJlU2VsZWN0ZWRSb3dzXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZXhwYW5kLWNvbHVtbi10ZXh0XCI+XG4gICAgICAgICAgICBBbHJlYWR5IGFkZGVkXG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxrZW5kby1idXR0b24gKm5nSWY9XCIhZXhwYW5kUm93SW5kZXguaW5jbHVkZXMocm93SW5kZXgpXCIgW3N2Z0ljb25dPVwiYXJyb3dEb3duSWNvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZXhwYW5kUm93KHJvd0luZGV4KVwiIGZpbGxNb2RlPVwibm9uZVwiIGNsYXNzPVwiYXJyb3ctYnRuXCI+XG4gICAgICAgICAgPC9rZW5kby1idXR0b24+XG4gICAgICAgICAgPGtlbmRvLWJ1dHRvbiAqbmdJZj1cImV4cGFuZFJvd0luZGV4LmluY2x1ZGVzKHJvd0luZGV4KVwiIFtzdmdJY29uXT1cImFycm93VXBJY29uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjb2xsYXBzZVJvdyhyb3dJbmRleClcIiBmaWxsTW9kZT1cIm5vbmVcIiBjbGFzcz1cImFycm93LWJ0blwiPlxuICAgICAgICAgIDwva2VuZG8tYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9rZW5kby1ncmlkLWNvbHVtbj5cblxuICAgIDxuZy10ZW1wbGF0ZSBrZW5kb1BhZ2VyVGVtcGxhdGUgbGV0LXRvdGFsUGFnZXM9XCJ0b3RhbFBhZ2VzXCIgbGV0LWN1cnJlbnRQYWdlPVwiY3VycmVudFBhZ2VcIj5cbiAgICAgIDxrZW5kby1wYWdlci1wcmV2LWJ1dHRvbnM+PC9rZW5kby1wYWdlci1wcmV2LWJ1dHRvbnM+XG4gICAgICA8a2VuZG8tcGFnZXItbnVtZXJpYy1idXR0b25zIFtidXR0b25Db3VudF09XCJwYWdlQ291bnRcIj48L2tlbmRvLXBhZ2VyLW51bWVyaWMtYnV0dG9ucz5cbiAgICAgIDxrZW5kby1wYWdlci1uZXh0LWJ1dHRvbnM+PC9rZW5kby1wYWdlci1uZXh0LWJ1dHRvbnM+XG4gICAgICA8a2VuZG8tcGFnZXItaW5mbz48L2tlbmRvLXBhZ2VyLWluZm8+XG4gICAgICA8a2VuZG8tcGFnZXItcGFnZS1zaXplcyBbcGFnZVNpemVzXT1cInNpemVzXCI+PC9rZW5kby1wYWdlci1wYWdlLXNpemVzPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgPC9rZW5kby1ncmlkPlxuPC9kaXY+XG4iXX0=
448
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZC9zcmMvbGliL21vbGVjdWxlcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLGFBQWEsRUFNZCxNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBa0IsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUVMLGVBQWUsRUFDZixhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2pCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7O0FBRXRELE1BQU0sZUFBZSxHQUFHLENBQUMsUUFBYSxFQUFhLEVBQUU7SUFDbkQsTUFBTSxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0IsS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3RDLElBQUks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O2dCQUNFLElBQUk7c0JBQVosS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0UsV0FBVztzQkFBbkIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNFLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQU1HLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFHRSxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFNRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBc0xOLE1BQU07c0JBREwsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTZWxlY3RhYmxlU2V0dGluZ3MsXG4gIFNlbGVjdGFibGVNb2RlLFxuICBDZWxsQ2xpY2tFdmVudCxcbiAgR3JpZENvbXBvbmVudCxcbiAgR3JpZERhdGFSZXN1bHQsXG4gIFBhZ2VDaGFuZ2VFdmVudCxcbiAgUm93Q2xhc3NBcmdzLFxuICBTZWxlY3RBbGxDaGVja2JveFN0YXRlLFxuICBDZWxsQ2xvc2VFdmVudFxufSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ncmlkJztcbmltcG9ydCB7IFNvcnREZXNjcmlwdG9yLCBvcmRlckJ5IH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnknO1xuaW1wb3J0IHtcbiAgU1ZHSWNvbixcbiAgY2hldnJvbkRvd25JY29uLFxuICBjaGV2cm9uVXBJY29uLFxuICBtb3JlVmVydGljYWxJY29uXG59IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1zdmctaWNvbnMnO1xuaW1wb3J0IHsgTG9hZGVyU2l6ZSwgTG9hZGVyVHlwZSwgTG9hZGVyVGhlbWVDb2xvciB9IGZyb20gJy4uLy4uL2F0b21zL2xvYWRlci9sb2FkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBLZXlzIH0gZnJvbSAnQHByb2dyZXNzL2tlbmRvLWFuZ3VsYXItY29tbW9uJztcblxuY29uc3QgY3JlYXRlRm9ybUdyb3VwID0gKGRhdGFJdGVtOiBhbnkpOiBGb3JtR3JvdXAgPT4ge1xuICBjb25zdCBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIGZvciAobGV0IGRhdGEgb2YgT2JqZWN0LmtleXMoZGF0YUl0ZW0pKSB7XG4gICAgZm9ybS5hZGRDb250cm9sKGRhdGEsIG5ldyBGb3JtQ29udHJvbChkYXRhSXRlbVtkYXRhXSwgVmFsaWRhdG9ycy5yZXF1aXJlZCkpXG4gIH1cbiAgcmV0dXJuIGZvcm1cbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1ncmlkLXBhZ2luYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRQYWdpbmF0aW9uQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQENvbnRlbnRDaGlsZCgnbXVsdGlDb2x1bW5EYXRhJykgdGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgQENvbnRlbnRDaGlsZCgnZGV0YWlsVGVtcGxhdGUnKSBkZXRhaWxUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICBAQ29udGVudENoaWxkKCdpbXBhY3RDb2x1bW4nKSBpbXBhY3RDb2x1bW4hOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbDtcbiAgQFZpZXdDaGlsZChHcmlkQ29tcG9uZW50KSBncmlkITogR3JpZENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnZ3JpZEVsZW1lbnQnKSBncmlkRWxlbWVudCE6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgZ3JpZFZpZXc6IEdyaWREYXRhUmVzdWx0ID0geyBkYXRhOiBbXSwgdG90YWw6IDAgfTtcbiAgQElucHV0KCkgc2tpcDogbnVtYmVyID0gMDtcbiAgQElucHV0KCkgY29sdW1uRGF0YTogYW55ID0gW107XG4gIEBJbnB1dCgpIHBhZ2VTaXplOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBwYWdlYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBncm91cGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVvcmRlcmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVzaXphYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNoZWNrQm94V2lkdGg6IG51bWJlciA9IDQ1O1xuICBASW5wdXQoKSBjaGVja0JveENvbHVtblJlc2l6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjaGVja0JveENvbHVtbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgY2hlY2tCb3hDb2x1bW5TaG93U2VsZWN0ZWRBbGw6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBjaGVja0JveFJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvbHVtbk1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbW9kZTogU2VsZWN0YWJsZU1vZGUgfCB1bmRlZmluZWQgPSAnbXVsdGlwbGUnO1xuICBASW5wdXQoKSBjaGVja2JveE9ubHkgPSB0cnVlO1xuICBASW5wdXQoKSBkcmFnQ29sdW1ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBuYXZpZ2FibGU6IGJvb2xlYW4gPSB0cnVlO1xuICBoZWlnaHQ6IGFueTtcbiAgQElucHV0KCkgZ3JpZFJvd1NlbGVjdEJ5VmFsdWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBub1JlY29yZHNDb250ZW50OiBzdHJpbmcgPSAnTm8gUmVjb3JkcyBBdmFpbGFibGUnO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRSb3dEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQElucHV0KCkgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXh0cmFjdERhdGFJdGVtczogYW55O1xuICBzZWxlY3RhYmxlU2V0dGluZ3M6IFNlbGVjdGFibGVTZXR0aW5ncyA9IHt9O1xuICBASW5wdXQoKSBrZWJhYkxpc3Q6IGFueSA9IFtdO1xuICBASW5wdXQoKSBzaG93S2ViYWI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHJvd0RldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBAT3V0cHV0KCkga2ViYWJJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgaWNvbjogU1ZHSWNvbiA9IG1vcmVWZXJ0aWNhbEljb247XG4gIEBJbnB1dCgpIGtlYmFiQ29sdW1uV2lkdGg6IG51bWJlciA9IDYwO1xuICBkYXRhOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgc2VsZWN0Q29sdW1uID0gJyc7XG4gIEBPdXRwdXQoKSByb3dEYXRhT2ZDbGlja2VkQ2VsbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBwcmVTZWxlY3RlZDogYW55W10gPSBbXTtcbiAgcHJlU2VsZWN0ZWRSZWNvcmRzOiBhbnlbXSA9IFtdO1xuICBAT3V0cHV0KCkgb25QYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGlnbm9yZUNvbHVtbkNlbGxDbGljazogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgYWxsb3dDb2x1bW5DbGljazogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzb3J0OiBTb3J0RGVzY3JpcHRvcltdID0gW1xuICAgIHtcbiAgICAgIGZpZWxkOiAnJyxcbiAgICAgIGRpcjogdW5kZWZpbmVkLFxuICAgIH0sXG4gIF07XG4gIEBJbnB1dCgpIGhhc0FwaVNvcnRpbmcgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHNvcnREaXJlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIGFycm93RG93bkljb246IFNWR0ljb24gPSBjaGV2cm9uRG93bkljb247XG4gIHB1YmxpYyBhcnJvd1VwSWNvbjogU1ZHSWNvbiA9IGNoZXZyb25VcEljb247XG4gIEBJbnB1dCgpIGV4cGFuZFJvd0luZGV4OiBudW1iZXJbXSA9IFtdO1xuICBASW5wdXQoKSBjdXN0b21FeHBhbmRSb3dDb2x1bW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZGVsZXRlQ29sdW1uV2lkdGg6IG51bWJlciA9IDQyO1xuICBleHBhbmRSb3dDb2x1bW5XaWR0aDogbnVtYmVyID0gNTY7XG4gIEBPdXRwdXQoKSBkZWxldGVkUm93RGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBzaXplczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgcGFnZUNvdW50ID0gMDtcbiAgQElucHV0KCkgc2hvd0RlbGV0ZUNvbHVtbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoaWRlS2ViYWJSb3dJbmRleDogbnVtYmVyW10gPSBbXTtcbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBsb2FkZXJUeXBlOiBMb2FkZXJUeXBlID0gTG9hZGVyVHlwZS5wdWxzaW5nO1xuICBASW5wdXQoKSBsb2FkZXJTaXplOiBMb2FkZXJTaXplID0gTG9hZGVyU2l6ZS5tZWRpdW07XG4gIEBJbnB1dCgpIGxvYWRlclRoZW1lOiBMb2FkZXJUaGVtZUNvbG9yID0gTG9hZGVyVGhlbWVDb2xvci5wcmltYXJ5O1xuICBpbml0aWFsR3JpZEhlaWdodDogYW55O1xuICBncmlkQm90dG9tU3BhY2UgPSAyNDtcbiAgcmVzaXplSGVpZ2h0OiBhbnkgPSAwO1xuICBzZWxlY3RBbGxTdGF0ZTogU2VsZWN0QWxsQ2hlY2tib3hTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICBzZWxlY3RlZFJvd3M6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGRpc2FibGVQcmVTZWxlY3RlZFJvd3MgPSBmYWxzZTtcbiAgcHVibGljIGZvcm1Hcm91cCE6IEZvcm1Hcm91cCB8IGFueTtcbiAgQE91dHB1dCgpIHVwZGF0ZWREYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGFsbG93RWRpdGluZ0NlbGwgPSBmYWxzZTtcbiAgXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5zZXRTZWxlY3RhYmxlU2V0dGluZ3MoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29sdW1uRGF0YS5mb3JFYWNoKChjb2x1bW46YW55LGluZGV4Om51bWJlcik9PntcbiAgICAgIGNvbHVtbi5zb3J0YWJsZSA9IGNvbHVtbi5zb3J0YWJsZSA9PSB1bmRlZmluZWQgPyB0cnVlIDogY29sdW1uLnNvcnRhYmxlO1xuICAgICAgaWYoIXRoaXMuaWdub3JlQ29sdW1uQ2VsbENsaWNrLmluY2x1ZGVzKGluZGV4KSl7XG4gICAgICAgIGNvbHVtbi5jbGFzcz0nY29sdW1uLWN1cnNvci1wb2ludGVyJztcbiAgICAgIH1cbiAgICB9KVxuICAgIGlmICghdGhpcy5oYXNBcGlTb3J0aW5nKSB7XG4gICAgICB0aGlzLmxvYWRHcmlkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucGFnZWFibGUpIHtcbiAgICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLmdyaWRWaWV3LmRhdGE/Lmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuY3VzdG9tRXhwYW5kUm93Q29sdW1uKSB7XG4gICAgICB0aGlzLmV4cGFuZFJvd0luZGV4LmZvckVhY2goKGlkKSA9PiB7XG4gICAgICAgIHRoaXMuZ3JpZC5leHBhbmRSb3coaWQpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRSb3dzID0gdGhpcy5wcmVTZWxlY3RlZDtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkUm93cz8ubGVuZ3RoID09IHRoaXMuZ3JpZFZpZXcudG90YWwpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdjaGVja2VkJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnaW5kZXRlcm1pbmF0ZSc7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAndW5jaGVja2VkJztcbiAgICB9XG4gICAgdGhpcy5pbml0aWFsR3JpZEhlaWdodCA9XG4gICAgICB0aGlzLmdyaWRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgdGhpcy5ncmlkQm90dG9tU3BhY2U7XG4gICAgdGhpcy5nZXRHcmlkSGVpZ2h0KCk7XG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwYWdlQ2hhbmdlKGV2ZW50OiBQYWdlQ2hhbmdlRXZlbnQpIHtcbiAgICB0aGlzLm9uUGFnZUNoYW5nZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHNldFNlbGVjdGFibGVTZXR0aW5ncygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jaGVja2JveE9ubHkgfHwgdGhpcy5tb2RlID09PSAnc2luZ2xlJykge1xuICAgICAgdGhpcy5kcmFnQ29sdW1ucyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0YWJsZVNldHRpbmdzID0ge1xuICAgICAgY2hlY2tib3hPbmx5OiB0aGlzLmNoZWNrYm94T25seSxcbiAgICAgIG1vZGU6IHRoaXMubW9kZSxcbiAgICAgIGRyYWc6IHRoaXMuZHJhZ0NvbHVtbnMsXG4gICAgfTtcbiAgfVxuXG4gIC8vIFdlIGNhbiBleHRyYWN0IGRhdGEgb3V0IG9mIHJvdyBudW1iZXIgdXNpbmcgYmVsb3cgZnVuY3Rpb25cbiAgLyogZXh0cmFjdCgpIHtcbiAgICB0aGlzLmV4dHJhY3REYXRhSXRlbXMgPSB0aGlzLm15U2VsZWN0aW9uLm1hcChpZHggPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuZ3JpZERhdGEuZmluZCgoZGF0YTogeyBQcm9kdWN0SUQ6IG51bWJlcjsgfSkgPT4gZGF0YS5Qcm9kdWN0SUQgPT09IGlkeCk7XG4gICAgfSk7XG4gICAgY29uc29sZS5sb2codGhpcy5leHRyYWN0RGF0YUl0ZW1zKVxuICAgIHRoaXMuc2VsZWN0ZWRSb3dEYXRhLmVtaXQodGhpcy5leHRyYWN0RGF0YUl0ZW1zKTtcbiAgfSAqL1xuXG4gIHNlbGVjdGVkS2V5c0NoYW5nZShyb3dzOiBudW1iZXJbXSkge1xuICAgIGxldCBzZWxlY3RlZFJvd0RhdGEgPSBbXTtcbiAgICBsZXQgc2VsZWN0ZWRSb3dzQ291bnQgPSAwO1xuXG4gICAgaWYgKHJvd3M/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHNlbGVjdGVkUm93c0NvdW50ID0gcm93cz8ubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCA+IDAgJiYgdGhpcy5kaXNhYmxlUHJlU2VsZWN0ZWRSb3dzKSB7XG4gICAgICBzZWxlY3RlZFJvd3NDb3VudCA9IHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGg7XG4gICAgICByb3dzID0gdGhpcy5zZWxlY3RlZFJvd3M7XG4gICAgfVxuXG4gICAgaWYgKHNlbGVjdGVkUm93c0NvdW50ID09IHRoaXMuZ3JpZFZpZXcudG90YWwpIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnY2hlY2tlZCc7XG4gICAgfSBlbHNlIGlmIChzZWxlY3RlZFJvd3NDb3VudCA9PSAwKSB7XG4gICAgICB0aGlzLnNlbGVjdEFsbFN0YXRlID0gJ3VuY2hlY2tlZCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsU3RhdGUgPSAnaW5kZXRlcm1pbmF0ZSc7XG4gICAgfVxuXG4gICAgc2VsZWN0ZWRSb3dEYXRhID0gcm93cy5tYXAocm93RGF0YSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5ncmlkVmlldy5kYXRhLmZpbmQoKGRhdGEpID0+IGRhdGFbdGhpcy5ncmlkUm93U2VsZWN0QnlWYWx1ZV0gPT09IHJvd0RhdGEpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zZWxlY3RlZFJvd0RhdGEuZW1pdChzZWxlY3RlZFJvd0RhdGEpO1xuICB9XG5cbiAgb25LZWJhYkNsaWNrKGl0ZW06IGFueSwgcm93RGV0YWlsczogYW55KSB7XG4gICAgdGhpcy5rZWJhYkl0ZW1DbGljay5lbWl0KHsgYWN0aW9uOiBpdGVtLCByb3dEZXRhaWxzIH0pO1xuICB9XG5cbiAgb25EZXRhaWxFeHBhbmQocm93RGF0YTogYW55KSB7XG4gICAgdGhpcy5yb3dEZXRhaWxzLmVtaXQocm93RGF0YS5kYXRhSXRlbSk7XG4gIH1cblxuICBjZWxsQ2xpY2tIYW5kbGVyKGFyZ3M6IENlbGxDbGlja0V2ZW50KSB7XG4gICAgaWYgKHRoaXMuYWxsb3dDb2x1bW5DbGljaykge1xuICAgICAgaWYgKHRoaXMuaWdub3JlQ29sdW1uQ2VsbENsaWNrLmluY2x1ZGVzKGFyZ3MuY29sdW1uSW5kZXgpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMucm93RGF0YU9mQ2xpY2tlZENlbGwuZW1pdCh7ZGF0YUl0ZW06YXJncy5kYXRhSXRlbSxjb2x1bW5JbmRleDphcmdzLmNvbHVtbkluZGV4fSk7XG4gICAgfVxuICAgIGlmKHRoaXMuYWxsb3dFZGl0aW5nQ2VsbCl7XG4gICAgICB0aGlzLmZvcm1Hcm91cCA9IGNyZWF0ZUZvcm1Hcm91cChhcmdzLmRhdGFJdGVtKTtcbiAgICAgICAgICAgIGFyZ3Muc2VuZGVyLmVkaXRDZWxsKGFyZ3Mucm93SW5kZXgsIGFyZ3MuY29sdW1uSW5kZXgsIHRoaXMuZm9ybUdyb3VwKTtcbiAgICAgIH1cbiAgfVxuXG4gIHNvcnRDaGFuZ2Uoc29ydDogU29ydERlc2NyaXB0b3JbXSk6IHZvaWQge1xuICAgIHRoaXMuc29ydCA9IHNvcnQ7XG4gICAgaWYgKCF0aGlzLmhhc0FwaVNvcnRpbmcpIHtcbiAgICAgIHRoaXMubG9hZEdyaWREYXRhKCk7XG4gICAgfVxuICAgIHRoaXMuc29ydERpcmVjdGlvbi5lbWl0KHRoaXMuc29ydCk7XG4gIH1cblxuICBsb2FkR3JpZERhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5ncmlkVmlldyA9IHtcbiAgICAgIGRhdGE6IG9yZGVyQnkodGhpcy5ncmlkVmlldz8uZGF0YSwgdGhpcy5zb3J0KSxcbiAgICAgIHRvdGFsOiB0aGlzLmdyaWRWaWV3Py50b3RhbCxcbiAgICB9O1xuICB9XG5cbiAgZXhwYW5kUm93KGlkOiBudW1iZXIpIHtcbiAgICB0aGlzLmdyaWQuZXhwYW5kUm93KGlkKTtcbiAgICB0aGlzLmV4cGFuZFJvd0luZGV4LnB1c2goaWQpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5nZXRHcmlkSGVpZ2h0KCk7XG4gICAgfSwgMCk7XG4gIH1cblxuICBjb2xsYXBzZVJvdyhpZDogbnVtYmVyKSB7XG4gICAgdGhpcy5ncmlkLmNvbGxhcHNlUm93KGlkKTtcbiAgICB0aGlzLmV4cGFuZFJvd0luZGV4LnNwbGljZSh0aGlzLmV4cGFuZFJvd0luZGV4LmluZGV4T2YoaWQpLCAxKTtcbiAgICBpZiAodGhpcy5leHBhbmRSb3dJbmRleD8ubGVuZ3RoID09IDApIHtcbiAgICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgIGNvbnN0IHZpZXdwb3J0OiBhbnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGliLWdyaWQnKTtcbiAgICAgIGNvbnN0IGdyaWRPZmZzZXQgPSB2aWV3cG9ydC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgIGlmICh3aW5kb3dIZWlnaHQgPiBncmlkT2Zmc2V0ICsgdGhpcy5pbml0aWFsR3JpZEhlaWdodCkge1xuICAgICAgICB0aGlzLmhlaWdodCA9ICcxMDAlJztcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5nZXRHcmlkSGVpZ2h0KCk7XG4gICAgfVxuICB9XG5cbiAgb25EZWxldGUocm93RGV0YWlsczogYW55KSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmdldEhlYWRlckhlaWdodCgpO1xuICAgIH0sIDEwMDApO1xuICAgIHRoaXMuZGVsZXRlZFJvd0RhdGEuZW1pdChyb3dEZXRhaWxzKTtcbiAgfVxuXG4gIGdldEhlYWRlckhlaWdodCgpIHtcbiAgICBpZiAodGhpcy5ncmlkVmlldz8uZGF0YT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gJ2hpZGUtaGVhZGVyJztcbiAgICB9XG4gICAgcmV0dXJuICd2aWV3LWhlYWRlcic7XG4gIH1cblxuICBnZXRHcmlkSGVpZ2h0KCkge1xuICAgIGNvbnN0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICBjb25zdCB2aWV3cG9ydDogYW55ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xpYi1ncmlkJyk7XG4gICAgY29uc3QgZ3JpZE9mZnNldCA9IHZpZXdwb3J0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIHdpbmRvdy5zY3JvbGxZO1xuICAgIGNvbnN0IGdyaWRIZWlnaHQgPVxuICAgICAgdGhpcy5ncmlkRWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCArIHRoaXMuZ3JpZEJvdHRvbVNwYWNlOyAvL2dyaWQgc2hvdWxkIGhhdmUgMjRweCBzcGFjZSBhdCBib3R0b21cbiAgICBpZiAoZ3JpZE9mZnNldCArIGdyaWRIZWlnaHQgPj0gd2luZG93SGVpZ2h0KSB7XG4gICAgICB0aGlzLmhlaWdodCA9IHdpbmRvd0hlaWdodCAtIChncmlkT2Zmc2V0ICsgdGhpcy5ncmlkQm90dG9tU3BhY2UpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxuICByZXNpemUoZXY6IGFueSkge1xuICAgIGlmIChldi50YXJnZXQuaW5uZXJIZWlnaHQgPiB0aGlzLnJlc2l6ZUhlaWdodCkge1xuICAgICAgdGhpcy5yZXNpemVIZWlnaHQgPSBldi50YXJnZXQuaW5uZXJIZWlnaHQ7XG4gICAgICB0aGlzLmhlaWdodCA9ICcxMDAlJztcbiAgICB9XG4gICAgaWYgKHRoaXMucmVzaXplSGVpZ2h0ID4gd2luZG93LmlubmVySGVpZ2h0KSB7XG4gICAgICB0aGlzLnJlc2l6ZUhlaWdodCA9IDA7XG4gICAgfVxuICAgIHRoaXMuZ2V0R3JpZEhlaWdodCgpO1xuICB9XG5cbiAgcm93Q2xhc3MgPSAoYXJnczogUm93Q2xhc3NBcmdzKSA9PiB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJ2stZGlzYWJsZWQnOiB0aGlzLnNlbGVjdGVkUm93cy5pbmNsdWRlcyhcbiAgICAgICAgICBhcmdzLmRhdGFJdGVtW3RoaXMuZ3JpZFJvd1NlbGVjdEJ5VmFsdWVdXG4gICAgICAgICksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH07XG5cbiAgZXhwYW5kQ29sdW1uQ2xhc3MoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgdGhpcy5leHBhbmRSb3dDb2x1bW5XaWR0aCA9IDE5NDtcbiAgICAgIHJldHVybiAnZXhwYW5kLXJvdyc7XG4gICAgfVxuICAgIHRoaXMuZXhwYW5kUm93Q29sdW1uV2lkdGggPSA1NjtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBvblNlbGVjdEFsbENoYW5nZShjaGVja2VkU3RhdGU6IFNlbGVjdEFsbENoZWNrYm94U3RhdGUpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBjaGVja2VkU3RhdGUgPT09ICdjaGVja2VkJyB8fFxuICAgICAgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPT0gdGhpcy5ncmlkVmlldy50b3RhbCAmJlxuICAgICAgICB0aGlzLmRpc2FibGVQcmVTZWxlY3RlZFJvd3MpXG4gICAgKSB7XG4gICAgICB0aGlzLnByZVNlbGVjdGVkID0gdGhpcy5ncmlkVmlldy5kYXRhXG4gICAgICAgIC5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbVt0aGlzLmdyaWRSb3dTZWxlY3RCeVZhbHVlXSlcbiAgICAgICAgLmZpbHRlcigoaWQ6IGFueSkgPT4gaWQpO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdjaGVja2VkJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGggPiAwICYmIHRoaXMuZGlzYWJsZVByZVNlbGVjdGVkUm93cykge1xuICAgICAgdGhpcy5wcmVTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRSb3dzO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICdpbmRldGVybWluYXRlJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmVTZWxlY3RlZCA9IFtdO1xuICAgICAgdGhpcy5zZWxlY3RBbGxTdGF0ZSA9ICd1bmNoZWNrZWQnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjZWxsQ2xvc2VIYW5kbGVyKGFyZ3M6IENlbGxDbG9zZUV2ZW50KTogdm9pZCB7XG4gICAgbGV0IHsgZm9ybUdyb3VwLCBkYXRhSXRlbSB9ID0gYXJncztcbiAgICBpZiAoIWZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgYXJncy5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0gZWxzZSBpZiAoZm9ybUdyb3VwLmRpcnR5KSB7XG4gICAgICBpZiAoYXJncy5vcmlnaW5hbEV2ZW50ICYmIGFyZ3Mub3JpZ2luYWxFdmVudC5rZXlDb2RlID09PSBLZXlzLkVzY2FwZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBPYmplY3QuYXNzaWduKGRhdGFJdGVtLCBmb3JtR3JvdXAudmFsdWUpO1xuICAgICAgdGhpcy5zYXZlQ2hhbmdlcygpO1xuICAgICAgdGhpcy51cGRhdGVkRGF0YS5lbWl0KHRoaXMuZ3JpZC5kYXRhKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzYXZlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmdyaWQuY2xvc2VDZWxsKCk7XG4gICAgdGhpcy5ncmlkLmNhbmNlbENlbGwoKTtcbiAgfVxufVxuIiwiPGRpdiAjZ3JpZEVsZW1lbnQgKHdpbmRvdzpyZXNpemUpPVwicmVzaXplKCRldmVudClcIj5cbiAgPGtlbmRvLWdyaWQgW2RhdGFdPVwiZ3JpZFZpZXdcIiBbcGFnZVNpemVdPVwicGFnZVNpemVcIiBbc2tpcF09XCJza2lwXCIgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVNldHRpbmdzXCJcbiAgICBbcGFnZWFibGVdPVwicGFnZWFibGVcIiBbc29ydGFibGVdPVwic29ydGFibGVcIiBbZ3JvdXBhYmxlXT1cImdyb3VwYWJsZVwiIFtyZW9yZGVyYWJsZV09XCJyZW9yZGVyYWJsZVwiXG4gICAgW3Jlc2l6YWJsZV09XCJyZXNpemFibGVcIiBbY29sdW1uTWVudV09XCJjb2x1bW5NZW51XCIgW25hdmlnYWJsZV09XCJuYXZpZ2FibGVcIiBbaGVpZ2h0XT1cImhlaWdodFwiIFtzdHlsZS5oZWlnaHRdPVwiaGVpZ2h0XCJcbiAgICAoY2hhbmdlKT1cInNldFNlbGVjdGFibGVTZXR0aW5ncygpXCIgKHNlbGVjdGVkS2V5c0NoYW5nZSk9XCJzZWxlY3RlZEtleXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2tlbmRvR3JpZFNlbGVjdEJ5XT1cImdyaWRSb3dTZWxlY3RCeVZhbHVlXCIgKGRldGFpbEV4cGFuZCk9XCJvbkRldGFpbEV4cGFuZCgkZXZlbnQpXCIgW3NlbGVjdGVkS2V5c109XCJwcmVTZWxlY3RlZFwiXG4gICAgKHBhZ2VDaGFuZ2UpPVwicGFnZUNoYW5nZSgkZXZlbnQpXCIgKGNlbGxDbGljayk9XCJjZWxsQ2xpY2tIYW5kbGVyKCRldmVudClcIiAoY2VsbENsb3NlKT1cImNlbGxDbG9zZUhhbmRsZXIoJGV2ZW50KVwiIFtzb3J0XT1cInNvcnRcIlxuICAgIChzb3J0Q2hhbmdlKT1cInNvcnRDaGFuZ2UoJGV2ZW50KVwiIFtuZ0NsYXNzXT1cImdldEhlYWRlckhlaWdodCgpXCIgaWQ9XCJsaWItZ3JpZFwiIFtyb3dDbGFzc109XCJyb3dDbGFzc1wiPlxuXG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwic2hvd1Rvb2xiYXJcIiBrZW5kb0dyaWRUb29sYmFyVGVtcGxhdGU+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cInRoaXMuZ3JpZFZpZXcudG90YWwgPT09IDBcIiBrZW5kb0dyaWROb1JlY29yZHNUZW1wbGF0ZT5cbiAgICAgIDxsaWItdHlwb2dyYXBoeSAqbmdJZj1cIiFsb2FkaW5nXCIgW2RlZmF1bHRUZXh0XT1cIm5vUmVjb3Jkc0NvbnRlbnRcIiB0eXBlPVwiQk9EWV9NRURJVU1cIj48L2xpYi10eXBvZ3JhcGh5PlxuICAgICAgPGxpYi1sb2FkZXIgKm5nSWY9XCJsb2FkaW5nXCIgW3R5cGVdPVwibG9hZGVyVHlwZVwiIFtzaXplXT1cImxvYWRlclNpemVcIiBbdGhlbWVDb2xvcl09XCJsb2FkZXJUaGVtZVwiPjwvbGliLWxvYWRlcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRoaXMuZ3JpZFZpZXcudG90YWwgPiAwXCI+XG4gICAgICA8a2VuZG8tZ3JpZC1jaGVja2JveC1jb2x1bW4gKm5nSWY9XCJjaGVja0JveFJlcXVpcmVkID09PSB0cnVlXCIgW3dpZHRoXT1cImNoZWNrQm94V2lkdGhcIlxuICAgICAgICBbcmVzaXphYmxlXT1cImNoZWNrQm94Q29sdW1uUmVzaXphYmxlXCIgW2NvbHVtbk1lbnVdPVwiY2hlY2tCb3hDb2x1bW5NZW51XCIgY2xhc3M9XCJjaGVja2JveC1jb2x1bW5cIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvR3JpZEhlYWRlclRlbXBsYXRlPlxuICAgICAgICAgIDxpbnB1dCBpZD1cInNlbGVjdEFsbENoZWNrYm94SWRcIiB0eXBlPVwiY2hlY2tib3hcIiBrZW5kb0NoZWNrQm94IGtlbmRvR3JpZFNlbGVjdEFsbENoZWNrYm94XG4gICAgICAgICAgICBbc3RhdGVdPVwic2VsZWN0QWxsU3RhdGVcIiAoc2VsZWN0QWxsQ2hhbmdlKT1cIm9uU2VsZWN0QWxsQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9rZW5kby1ncmlkLWNoZWNrYm94LWNvbHVtbj5cbiAgICAgIFxuICAgICAgPGtlbmRvLWdyaWQtY29sdW1uIGNsYXNzPVwiZ3JpZC1jb2x1bW5cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb2x1bW5EYXRhXCIgW2ZpZWxkXT1cIml0ZW0uZmllbGRcIiBbdGl0bGVdPVwiaXRlbS50aXRsZVwiXG4gICAgICAgIFt3aWR0aF09XCJpdGVtLmNvbHVtbldpZHRoXCIgW3NvcnRhYmxlXT1cIml0ZW0uc29ydGFibGVcIiBbZWRpdG9yXT1cIml0ZW0uZWRpdG9yXCIgW2NsYXNzXT1cIml0ZW0uY2xhc3NcIj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJzb3J0YWJsZVwiIGtlbmRvR3JpZEhlYWRlclRlbXBsYXRlPlxuICAgICAgICAgIHt7aXRlbS50aXRsZX19XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0WzBdLmZpZWxkID09PSBpdGVtLmZpZWxkXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRbMF0uZGlyID09PSAnYXNjJ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydFswXS5kaXIgPT09ICdkZXNjJ1wiPjwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiaXRlbS5jdXN0b21cIiBrZW5kb0dyaWRDZWxsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZVJlZjsgY29udGV4dDogeyRpbXBsaWNpdDogZGF0YUl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cIml0ZW0uaW1wYWN0XCIga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW1wYWN0Q29sdW1uOyBjb250ZXh0OiB7JGltcGxpY2l0OiBkYXRhSXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG5cbiAgICAgIDxrZW5kby1ncmlkLWNvbHVtbiAqbmdJZj1cInNob3dEZWxldGVDb2x1bW5cIiBbd2lkdGhdPVwiZGVsZXRlQ29sdW1uV2lkdGhcIiBjbGFzcz1cImRlbGV0ZS1jb2x1bW5cIiB0aXRsZT1cIkFjdGlvblwiPlxuICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbSBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgICAgIDxsaWItdG9vbHRpcCBzaG93T249XCJob3ZlclwiIHBvc2l0aW9uPVwiYm90dG9tXCIgY2xhc3M9XCJyZW1vdmUtdG9vbHRpcFwiPlxuICAgICAgICAgICAgPGxpYi1pY29uIG5hbWU9XCJkZWxldGVcIiBjbGFzcz1cImRlbGV0ZS1pY29uXCIgKGNsaWNrKT1cIm9uRGVsZXRlKGRhdGFJdGVtKVwiPjwvbGliLWljb24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbHRpcC1jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxsaWItdHlwb2dyYXBoeSBkZWZhdWx0VGV4dD1cIlJlbW92ZVwiPjwvbGliLXR5cG9ncmFwaHk+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2xpYi10b29sdGlwPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9rZW5kby1ncmlkLWNvbHVtbj5cblxuICAgICAgPGtlbmRvLWdyaWQtY29sdW1uIFt3aWR0aF09XCJrZWJhYkNvbHVtbldpZHRoXCIgY2xhc3M9XCJrZWJhYi1jb2x1bW5cIiAqbmdJZj1cInNob3dLZWJhYlwiIHRpdGxlPVwiQWN0aW9uc1wiPlxuICAgICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbSBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgICAgIDxrZW5kby1kcm9wZG93bmJ1dHRvbiAqbmdJZj1cIiFoaWRlS2ViYWJSb3dJbmRleC5pbmNsdWRlcyhyb3dJbmRleClcIiBbc3ZnSWNvbl09XCJpY29uXCIgZmlsbE1vZGU9XCJub25lXCJcbiAgICAgICAgICAgIFtkYXRhXT1cImtlYmFiTGlzdCB8IGtlYmFiTWVudUZpbHRlciA6IGRhdGFJdGVtXCIgY2xhc3M9XCJrZWJhYlwiIChpdGVtQ2xpY2spPVwib25LZWJhYkNsaWNrKCRldmVudCwgZGF0YUl0ZW0pXCJcbiAgICAgICAgICAgIFtwb3B1cFNldHRpbmdzXT1cInsgYWxpZ246ICdyaWdodCcsIGFuaW1hdGU6IHRydWUsIHBvcHVwQ2xhc3M6ICdrZWJhYi1saXN0JyB9XCI+XG4gICAgICAgICAgPC9rZW5kby1kcm9wZG93bmJ1dHRvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwva2VuZG8tZ3JpZC1jb2x1bW4+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkRGV0YWlsVGVtcGxhdGUgbGV0LWRhdGFJdGVtPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRldGFpbFRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBkYXRhSXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPGtlbmRvLWdyaWQtY29sdW1uICpuZ0lmPVwiY3VzdG9tRXhwYW5kUm93Q29sdW1uXCIgW3dpZHRoXT1cImV4cGFuZFJvd0NvbHVtbldpZHRoXCIgY2xhc3M9XCJncmlkLWNvbHVtbiBleHBhbmQtY29sdW1uXCI+XG4gICAgICA8bmctdGVtcGxhdGUga2VuZG9HcmlkQ2VsbFRlbXBsYXRlIGxldC1kYXRhSXRlbSBsZXQtcm93SW5kZXg9XCJyb3dJbmRleFwiPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImV4cGFuZENvbHVtbkNsYXNzKClcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkUm93cy5pbmNsdWRlcyhkYXRhSXRlbVtncmlkUm93U2VsZWN0QnlWYWx1ZV0pICYmIGRpc2FibGVQcmVTZWxlY3RlZFJvd3NcIlxuICAgICAgICAgICAgY2xhc3M9XCJleHBhbmQtY29sdW1uLXRleHRcIj5cbiAgICAgICAgICAgIEFscmVhZHkgYWRkZWRcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGtlbmRvLWJ1dHRvbiAqbmdJZj1cIiFleHBhbmRSb3dJbmRleC5pbmNsdWRlcyhyb3dJbmRleClcIiBbc3ZnSWNvbl09XCJhcnJvd0Rvd25JY29uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJleHBhbmRSb3cocm93SW5kZXgpXCIgZmlsbE1vZGU9XCJub25lXCIgY2xhc3M9XCJhcnJvdy1idG5cIj5cbiAgICAgICAgICA8L2tlbmRvLWJ1dHRvbj5cbiAgICAgICAgICA8a2VuZG8tYnV0dG9uICpuZ0lmPVwiZXhwYW5kUm93SW5kZXguaW5jbHVkZXMocm93SW5kZXgpXCIgW3N2Z0ljb25dPVwiYXJyb3dVcEljb25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNvbGxhcHNlUm93KHJvd0luZGV4KVwiIGZpbGxNb2RlPVwibm9uZVwiIGNsYXNzPVwiYXJyb3ctYnRuXCI+XG4gICAgICAgICAgPC9rZW5kby1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2tlbmRvLWdyaWQtY29sdW1uPlxuXG4gICAgPG5nLXRlbXBsYXRlIGtlbmRvUGFnZXJUZW1wbGF0ZSBsZXQtdG90YWxQYWdlcz1cInRvdGFsUGFnZXNcIiBsZXQtY3VycmVudFBhZ2U9XCJjdXJyZW50UGFnZVwiPlxuICAgICAgPGtlbmRvLXBhZ2VyLXByZXYtYnV0dG9ucz48L2tlbmRvLXBhZ2VyLXByZXYtYnV0dG9ucz5cbiAgICAgIDxrZW5kby1wYWdlci1udW1lcmljLWJ1dHRvbnMgW2J1dHRvbkNvdW50XT1cInBhZ2VDb3VudFwiPjwva2VuZG8tcGFnZXItbnVtZXJpYy1idXR0b25zPlxuICAgICAgPGtlbmRvLXBhZ2VyLW5leHQtYnV0dG9ucz48L2tlbmRvLXBhZ2VyLW5leHQtYnV0dG9ucz5cbiAgICAgIDxrZW5kby1wYWdlci1pbmZvPjwva2VuZG8tcGFnZXItaW5mbz5cbiAgICAgIDxrZW5kby1wYWdlci1wYWdlLXNpemVzIFtwYWdlU2l6ZXNdPVwic2l6ZXNcIj48L2tlbmRvLXBhZ2VyLXBhZ2Utc2l6ZXM+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICA8L2tlbmRvLWdyaWQ+XG48L2Rpdj5cbiJdfQ==