igniteui-angular 16.1.2 → 16.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +6 -5
  2. package/esm2022/lib/action-strip/action-strip.component.mjs +3 -3
  3. package/esm2022/lib/action-strip/grid-actions/grid-action-button.component.mjs +3 -3
  4. package/esm2022/lib/banner/banner.component.mjs +8 -8
  5. package/esm2022/lib/card/card.component.mjs +3 -3
  6. package/esm2022/lib/carousel/carousel.component.mjs +7 -7
  7. package/esm2022/lib/combo/combo-dropdown.component.mjs +3 -3
  8. package/esm2022/lib/combo/combo.common.mjs +5 -5
  9. package/esm2022/lib/combo/combo.component.mjs +3 -3
  10. package/esm2022/lib/combo/combo.directives.mjs +2 -2
  11. package/esm2022/lib/core/navigation/directives.mjs +3 -3
  12. package/esm2022/lib/date-common/calendar-container/calendar-container.component.mjs +3 -3
  13. package/esm2022/lib/date-picker/date-picker.component.mjs +7 -7
  14. package/esm2022/lib/date-range-picker/date-range-picker.component.mjs +6 -6
  15. package/esm2022/lib/dialog/dialog.component.mjs +5 -5
  16. package/esm2022/lib/directives/button/button.directive.mjs +8 -8
  17. package/esm2022/lib/directives/ripple/ripple.directive.mjs +6 -6
  18. package/esm2022/lib/directives/tooltip/tooltip-target.directive.mjs +7 -9
  19. package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +2 -2
  20. package/esm2022/lib/drop-down/drop-down.component.mjs +3 -3
  21. package/esm2022/lib/expansion-panel/expansion-panel.component.mjs +4 -4
  22. package/esm2022/lib/grids/column-actions/column-actions.component.mjs +3 -3
  23. package/esm2022/lib/grids/common/crud.service.mjs +2 -2
  24. package/esm2022/lib/grids/filtering/base/grid-filtering-row.component.mjs +3 -3
  25. package/esm2022/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.mjs +3 -3
  26. package/esm2022/lib/grids/filtering/excel-style/excel-style-date-expression.component.mjs +3 -3
  27. package/esm2022/lib/grids/filtering/excel-style/excel-style-default-expression.component.mjs +3 -3
  28. package/esm2022/lib/grids/filtering/excel-style/excel-style-header.component.mjs +3 -3
  29. package/esm2022/lib/grids/filtering/excel-style/excel-style-moving.component.mjs +3 -3
  30. package/esm2022/lib/grids/filtering/excel-style/excel-style-search.component.mjs +3 -3
  31. package/esm2022/lib/grids/filtering/excel-style/excel-style-sorting.component.mjs +3 -3
  32. package/esm2022/lib/grids/grid/grid.component.mjs +3 -3
  33. package/esm2022/lib/grids/grid-base.directive.mjs +4 -4
  34. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +3 -3
  35. package/esm2022/lib/grids/tree-grid/tree-grid.component.mjs +3 -3
  36. package/esm2022/lib/query-builder/query-builder.component.mjs +3 -3
  37. package/esm2022/lib/simple-combo/simple-combo.component.mjs +3 -3
  38. package/esm2022/lib/snackbar/snackbar.component.mjs +4 -4
  39. package/esm2022/lib/tabs/tabs/tabs.component.mjs +3 -3
  40. package/esm2022/lib/time-picker/time-picker.component.mjs +6 -5
  41. package/esm2022/lib/toast/toast.component.mjs +2 -2
  42. package/esm2022/lib/tree/tree-node/tree-node.component.mjs +4 -4
  43. package/fesm2022/igniteui-angular.mjs +117 -118
  44. package/fesm2022/igniteui-angular.mjs.map +1 -1
  45. package/lib/banner/banner.component.d.ts +5 -5
  46. package/lib/card/card.component.d.ts +2 -2
  47. package/lib/carousel/carousel.component.d.ts +6 -6
  48. package/lib/combo/combo.common.d.ts +4 -4
  49. package/lib/combo/combo.directives.d.ts +1 -1
  50. package/lib/core/navigation/directives.d.ts +2 -2
  51. package/lib/date-picker/date-picker.component.d.ts +4 -4
  52. package/lib/date-range-picker/date-range-picker.component.d.ts +3 -3
  53. package/lib/dialog/dialog.component.d.ts +4 -4
  54. package/lib/directives/button/button.directive.d.ts +7 -7
  55. package/lib/directives/ripple/ripple.directive.d.ts +6 -6
  56. package/lib/directives/tooltip/tooltip-target.directive.d.ts +6 -8
  57. package/lib/directives/tooltip/tooltip.directive.d.ts +1 -1
  58. package/lib/expansion-panel/expansion-panel.component.d.ts +3 -3
  59. package/lib/grids/common/crud.service.d.ts +1 -1
  60. package/lib/grids/grid-base.directive.d.ts +3 -3
  61. package/lib/snackbar/snackbar.component.d.ts +1 -1
  62. package/lib/time-picker/time-picker.component.d.ts +1 -1
  63. package/lib/toast/toast.component.d.ts +1 -1
  64. package/lib/tree/tree-node/tree-node.component.d.ts +3 -3
  65. package/migrations/common/UpdateChanges.js +1 -1
  66. package/package.json +1 -1
@@ -55,11 +55,11 @@ export class IgxExcelStyleSortingComponent {
55
55
  }
56
56
  }
57
57
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IgxExcelStyleSortingComponent, deps: [{ token: i1.BaseFilteringComponent }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
58
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IgxExcelStyleSortingComponent, isStandalone: true, selector: "igx-excel-style-sorting", host: { properties: { "class.igx-excel-filter__sort": "this.defaultClass" } }, viewQueries: [{ propertyName: "sortButtonGroup", first: true, predicate: ["sortButtonGroup"], descendants: true, read: IgxButtonGroupComponent }], ngImport: i0, template: "<ng-container *ngIf=\"esf.column\">\n<header>\n {{ esf.grid.resourceStrings.igx_grid_excel_filter_sorting_header }}\n</header>\n<igx-buttongroup #sortButtonGroup>\n <button igxButton\n [displayDensity]=\"esf.displayDensity\"\n [attr.data-togglable]=\"true\"\n (click)=\"onSortButtonClicked(1)\"\n >\n <igx-icon>arrow_upwards</igx-icon>\n <span>\n {{ esf.displayDensity==='compact'?\n esf.grid.resourceStrings.igx_grid_excel_filter_sorting_asc_short:\n esf.grid.resourceStrings.igx_grid_excel_filter_sorting_asc }}\n </span>\n </button>\n\n <button igxButton\n [displayDensity]=\"esf.displayDensity\"\n [attr.data-togglable]=\"true\"\n (click)=\"onSortButtonClicked(2)\"\n >\n <igx-icon>arrow_downwards</igx-icon>\n <span>\n {{ esf.displayDensity==='compact'?\n esf.grid.resourceStrings.igx_grid_excel_filter_sorting_desc_short:\n esf.grid.resourceStrings.igx_grid_excel_filter_sorting_desc\n }}\n </span>\n </button>\n</igx-buttongroup>\n</ng-container>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IgxButtonGroupComponent, selector: "igx-buttongroup", inputs: ["id", "itemContentCssClass", "multiSelection", "selectionMode", "values", "disabled", "alignment"], outputs: ["selected", "deselected"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }] }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IgxExcelStyleSortingComponent, isStandalone: true, selector: "igx-excel-style-sorting", host: { properties: { "class.igx-excel-filter__sort": "this.defaultClass" } }, viewQueries: [{ propertyName: "sortButtonGroup", first: true, predicate: ["sortButtonGroup"], descendants: true, read: IgxButtonGroupComponent }], ngImport: i0, template: "<ng-container *ngIf=\"esf.column\">\n<header>\n {{ esf.grid.resourceStrings.igx_grid_excel_filter_sorting_header }}\n</header>\n<igx-buttongroup #sortButtonGroup>\n <button type=\"button\"\n igxButton\n [displayDensity]=\"esf.displayDensity\"\n [attr.data-togglable]=\"true\"\n (click)=\"onSortButtonClicked(1)\"\n >\n <igx-icon>arrow_upwards</igx-icon>\n <span>\n {{ esf.displayDensity==='compact'?\n esf.grid.resourceStrings.igx_grid_excel_filter_sorting_asc_short:\n esf.grid.resourceStrings.igx_grid_excel_filter_sorting_asc }}\n </span>\n </button>\n\n <button type=\"button\"\n igxButton\n [displayDensity]=\"esf.displayDensity\"\n [attr.data-togglable]=\"true\"\n (click)=\"onSortButtonClicked(2)\"\n >\n <igx-icon>arrow_downwards</igx-icon>\n <span>\n {{ esf.displayDensity==='compact'?\n esf.grid.resourceStrings.igx_grid_excel_filter_sorting_desc_short:\n esf.grid.resourceStrings.igx_grid_excel_filter_sorting_desc\n }}\n </span>\n </button>\n</igx-buttongroup>\n</ng-container>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IgxButtonGroupComponent, selector: "igx-buttongroup", inputs: ["id", "itemContentCssClass", "multiSelection", "selectionMode", "values", "disabled", "alignment"], outputs: ["selected", "deselected"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }] }); }
59
59
  }
60
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IgxExcelStyleSortingComponent, decorators: [{
61
61
  type: Component,
62
- args: [{ selector: 'igx-excel-style-sorting', standalone: true, imports: [NgIf, IgxButtonGroupComponent, IgxButtonDirective, IgxIconComponent], template: "<ng-container *ngIf=\"esf.column\">\n<header>\n {{ esf.grid.resourceStrings.igx_grid_excel_filter_sorting_header }}\n</header>\n<igx-buttongroup #sortButtonGroup>\n <button igxButton\n [displayDensity]=\"esf.displayDensity\"\n [attr.data-togglable]=\"true\"\n (click)=\"onSortButtonClicked(1)\"\n >\n <igx-icon>arrow_upwards</igx-icon>\n <span>\n {{ esf.displayDensity==='compact'?\n esf.grid.resourceStrings.igx_grid_excel_filter_sorting_asc_short:\n esf.grid.resourceStrings.igx_grid_excel_filter_sorting_asc }}\n </span>\n </button>\n\n <button igxButton\n [displayDensity]=\"esf.displayDensity\"\n [attr.data-togglable]=\"true\"\n (click)=\"onSortButtonClicked(2)\"\n >\n <igx-icon>arrow_downwards</igx-icon>\n <span>\n {{ esf.displayDensity==='compact'?\n esf.grid.resourceStrings.igx_grid_excel_filter_sorting_desc_short:\n esf.grid.resourceStrings.igx_grid_excel_filter_sorting_desc\n }}\n </span>\n </button>\n</igx-buttongroup>\n</ng-container>\n" }]
62
+ args: [{ selector: 'igx-excel-style-sorting', standalone: true, imports: [NgIf, IgxButtonGroupComponent, IgxButtonDirective, IgxIconComponent], template: "<ng-container *ngIf=\"esf.column\">\n<header>\n {{ esf.grid.resourceStrings.igx_grid_excel_filter_sorting_header }}\n</header>\n<igx-buttongroup #sortButtonGroup>\n <button type=\"button\"\n igxButton\n [displayDensity]=\"esf.displayDensity\"\n [attr.data-togglable]=\"true\"\n (click)=\"onSortButtonClicked(1)\"\n >\n <igx-icon>arrow_upwards</igx-icon>\n <span>\n {{ esf.displayDensity==='compact'?\n esf.grid.resourceStrings.igx_grid_excel_filter_sorting_asc_short:\n esf.grid.resourceStrings.igx_grid_excel_filter_sorting_asc }}\n </span>\n </button>\n\n <button type=\"button\"\n igxButton\n [displayDensity]=\"esf.displayDensity\"\n [attr.data-togglable]=\"true\"\n (click)=\"onSortButtonClicked(2)\"\n >\n <igx-icon>arrow_downwards</igx-icon>\n <span>\n {{ esf.displayDensity==='compact'?\n esf.grid.resourceStrings.igx_grid_excel_filter_sorting_desc_short:\n esf.grid.resourceStrings.igx_grid_excel_filter_sorting_desc\n }}\n </span>\n </button>\n</igx-buttongroup>\n</ng-container>\n" }]
63
63
  }], ctorParameters: function () { return [{ type: i1.BaseFilteringComponent }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { defaultClass: [{
64
64
  type: HostBinding,
65
65
  args: ['class.igx-excel-filter__sort']
@@ -67,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImpor
67
67
  type: ViewChild,
68
68
  args: ['sortButtonGroup', { read: IgxButtonGroupComponent }]
69
69
  }] } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtc3R5bGUtc29ydGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvZmlsdGVyaW5nL2V4Y2VsLXN0eWxlL2V4Y2VsLXN0eWxlLXNvcnRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2ZpbHRlcmluZy9leGNlbC1zdHlsZS9leGNlbC1zdHlsZS1zb3J0aW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUVULFdBQVcsRUFFZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUV2Qzs7R0FFRztBQU9ILE1BQU0sT0FBTyw2QkFBNkI7SUFldEMsWUFBbUIsR0FBMkIsRUFBVSxHQUFzQjtRQUEzRCxRQUFHLEdBQUgsR0FBRyxDQUF3QjtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBZDlFOztXQUVHO1FBRUksaUJBQVksR0FBRyxJQUFJLENBQUM7UUFRbkIsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFHdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFTSxXQUFXO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxtQkFBbUIsQ0FBQyxhQUFhO1FBQ3BDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNuRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDdEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3hEO2lCQUFNO2dCQUNILElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNsRDtTQUNKO2FBQU07WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDbEc7SUFDTCxDQUFDO0lBRU8scUJBQXFCLENBQUMsU0FBaUI7UUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUU3RixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFHO1lBQ25CLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUN0RSxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDeEQ7SUFDTCxDQUFDOzhHQXJEUSw2QkFBNkI7a0dBQTdCLDZCQUE2QixpUUFVQSx1QkFBdUIsNkJDbENqRSx3bkNBaUNBLDRDRFhjLElBQUksNkZBQUUsdUJBQXVCLDhNQUFFLGtCQUFrQix3TUFBRSxnQkFBZ0I7OzJGQUVwRSw2QkFBNkI7a0JBTnpDLFNBQVM7K0JBQ0kseUJBQXlCLGNBRXZCLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsQ0FBQzs2SUFPdkUsWUFBWTtzQkFEbEIsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBT3BDLGVBQWU7c0JBRHJCLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgT25EZXN0cm95LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWd4QnV0dG9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9idXR0b25Hcm91cC9idXR0b25Hcm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzZUZpbHRlcmluZ0NvbXBvbmVudCB9IGZyb20gJy4vYmFzZS1maWx0ZXJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IElneEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IElneEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICogQSBjb21wb25lbnQgdXNlZCBmb3IgcHJlc2VudGluZyBFeGNlbCBzdHlsZSBjb2x1bW4gc29ydGluZyBVSS5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtZXhjZWwtc3R5bGUtc29ydGluZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V4Y2VsLXN0eWxlLXNvcnRpbmcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIElneEJ1dHRvbkdyb3VwQ29tcG9uZW50LCBJZ3hCdXR0b25EaXJlY3RpdmUsIElneEljb25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIElneEV4Y2VsU3R5bGVTb3J0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWV4Y2VsLWZpbHRlcl9fc29ydCcpXG4gICAgcHVibGljIGRlZmF1bHRDbGFzcyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ3NvcnRCdXR0b25Hcm91cCcsIHsgcmVhZDogSWd4QnV0dG9uR3JvdXBDb21wb25lbnQgfSlcbiAgICBwdWJsaWMgc29ydEJ1dHRvbkdyb3VwOiBJZ3hCdXR0b25Hcm91cENvbXBvbmVudDtcblxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGVzZjogQmFzZUZpbHRlcmluZ0NvbXBvbmVudCwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHRoaXMuZXNmLnNvcnRpbmdDaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZEJ1dHRvbnModGhpcy5lc2YuY29sdW1uLmZpZWxkKTtcbiAgICAgICAgfSk7XG4gICAgIH1cblxuICAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG9uU29ydEJ1dHRvbkNsaWNrZWQoc29ydERpcmVjdGlvbikge1xuICAgICAgICBpZiAodGhpcy5zb3J0QnV0dG9uR3JvdXAuc2VsZWN0ZWRJbmRleGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZXNmLmdyaWQuaXNDb2x1bW5Hcm91cGVkKHRoaXMuZXNmLmNvbHVtbi5maWVsZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNvcnRCdXR0b25Hcm91cC5zZWxlY3RCdXR0b24oc29ydERpcmVjdGlvbiAtIDEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVzZi5ncmlkLmNsZWFyU29ydCh0aGlzLmVzZi5jb2x1bW4uZmllbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lc2YuZ3JpZC5zb3J0KHsgZmllbGROYW1lOiB0aGlzLmVzZi5jb2x1bW4uZmllbGQsIGRpcjogc29ydERpcmVjdGlvbiwgaWdub3JlQ2FzZTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWRCdXR0b25zKGZpZWxkTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHNvcnRJbmRleCA9IHRoaXMuZXNmLmdyaWQuc29ydGluZ0V4cHJlc3Npb25zLmZpbmRJbmRleChzID0+IHMuZmllbGROYW1lID09PSBmaWVsZE5hbWUpO1xuXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5zb3J0QnV0dG9uR3JvdXAuYnV0dG9ucy5mb3JFYWNoKChiLCBpKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNvcnRCdXR0b25Hcm91cC5kZXNlbGVjdEJ1dHRvbihpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHNvcnRJbmRleCAhPT0gLTEgKSB7XG4gICAgICAgICAgICBjb25zdCBzb3J0RGlyZWN0aW9uID0gdGhpcy5lc2YuZ3JpZC5zb3J0aW5nRXhwcmVzc2lvbnNbc29ydEluZGV4XS5kaXI7XG4gICAgICAgICAgICB0aGlzLnNvcnRCdXR0b25Hcm91cC5zZWxlY3RCdXR0b24oc29ydERpcmVjdGlvbiAtIDEpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImVzZi5jb2x1bW5cIj5cbjxoZWFkZXI+XG4gICAge3sgZXNmLmdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9zb3J0aW5nX2hlYWRlciB9fVxuPC9oZWFkZXI+XG48aWd4LWJ1dHRvbmdyb3VwICNzb3J0QnV0dG9uR3JvdXA+XG4gICAgPGJ1dHRvbiBpZ3hCdXR0b25cbiAgICAgICAgW2Rpc3BsYXlEZW5zaXR5XT1cImVzZi5kaXNwbGF5RGVuc2l0eVwiXG4gICAgICAgIFthdHRyLmRhdGEtdG9nZ2xhYmxlXT1cInRydWVcIlxuICAgICAgICAoY2xpY2spPVwib25Tb3J0QnV0dG9uQ2xpY2tlZCgxKVwiXG4gICAgICAgID5cbiAgICAgICAgPGlneC1pY29uPmFycm93X3Vwd2FyZHM8L2lneC1pY29uPlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgIHt7IGVzZi5kaXNwbGF5RGVuc2l0eT09PSdjb21wYWN0Jz9cbiAgICAgICAgICAgIGVzZi5ncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9leGNlbF9maWx0ZXJfc29ydGluZ19hc2Nfc2hvcnQ6XG4gICAgICAgICAgICBlc2YuZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfZXhjZWxfZmlsdGVyX3NvcnRpbmdfYXNjICB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uIGlneEJ1dHRvblxuICAgICAgICBbZGlzcGxheURlbnNpdHldPVwiZXNmLmRpc3BsYXlEZW5zaXR5XCJcbiAgICAgICAgW2F0dHIuZGF0YS10b2dnbGFibGVdPVwidHJ1ZVwiXG4gICAgICAgIChjbGljayk9XCJvblNvcnRCdXR0b25DbGlja2VkKDIpXCJcbiAgICAgICAgPlxuICAgICAgICA8aWd4LWljb24+YXJyb3dfZG93bndhcmRzPC9pZ3gtaWNvbj5cbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICB7eyBlc2YuZGlzcGxheURlbnNpdHk9PT0nY29tcGFjdCc/XG4gICAgICAgICAgICBlc2YuZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfZXhjZWxfZmlsdGVyX3NvcnRpbmdfZGVzY19zaG9ydDpcbiAgICAgICAgICAgIGVzZi5ncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9leGNlbF9maWx0ZXJfc29ydGluZ19kZXNjXG4gICAgICAgIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbjwvaWd4LWJ1dHRvbmdyb3VwPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtc3R5bGUtc29ydGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvZmlsdGVyaW5nL2V4Y2VsLXN0eWxlL2V4Y2VsLXN0eWxlLXNvcnRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2ZpbHRlcmluZy9leGNlbC1zdHlsZS9leGNlbC1zdHlsZS1zb3J0aW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUVULFdBQVcsRUFFZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUV2Qzs7R0FFRztBQU9ILE1BQU0sT0FBTyw2QkFBNkI7SUFldEMsWUFBbUIsR0FBMkIsRUFBVSxHQUFzQjtRQUEzRCxRQUFHLEdBQUgsR0FBRyxDQUF3QjtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBZDlFOztXQUVHO1FBRUksaUJBQVksR0FBRyxJQUFJLENBQUM7UUFRbkIsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFHdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFTSxXQUFXO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxtQkFBbUIsQ0FBQyxhQUFhO1FBQ3BDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNuRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDdEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3hEO2lCQUFNO2dCQUNILElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNsRDtTQUNKO2FBQU07WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDbEc7SUFDTCxDQUFDO0lBRU8scUJBQXFCLENBQUMsU0FBaUI7UUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUU3RixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFHO1lBQ25CLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUN0RSxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDeEQ7SUFDTCxDQUFDOzhHQXJEUSw2QkFBNkI7a0dBQTdCLDZCQUE2QixpUUFVQSx1QkFBdUIsNkJDbENqRSwwcUNBbUNBLDRDRGJjLElBQUksNkZBQUUsdUJBQXVCLDhNQUFFLGtCQUFrQix3TUFBRSxnQkFBZ0I7OzJGQUVwRSw2QkFBNkI7a0JBTnpDLFNBQVM7K0JBQ0kseUJBQXlCLGNBRXZCLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsQ0FBQzs2SUFPdkUsWUFBWTtzQkFEbEIsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBT3BDLGVBQWU7c0JBRHJCLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgT25EZXN0cm95LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWd4QnV0dG9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9idXR0b25Hcm91cC9idXR0b25Hcm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQmFzZUZpbHRlcmluZ0NvbXBvbmVudCB9IGZyb20gJy4vYmFzZS1maWx0ZXJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IElneEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IElneEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICogQSBjb21wb25lbnQgdXNlZCBmb3IgcHJlc2VudGluZyBFeGNlbCBzdHlsZSBjb2x1bW4gc29ydGluZyBVSS5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtZXhjZWwtc3R5bGUtc29ydGluZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V4Y2VsLXN0eWxlLXNvcnRpbmcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIElneEJ1dHRvbkdyb3VwQ29tcG9uZW50LCBJZ3hCdXR0b25EaXJlY3RpdmUsIElneEljb25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIElneEV4Y2VsU3R5bGVTb3J0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWV4Y2VsLWZpbHRlcl9fc29ydCcpXG4gICAgcHVibGljIGRlZmF1bHRDbGFzcyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ3NvcnRCdXR0b25Hcm91cCcsIHsgcmVhZDogSWd4QnV0dG9uR3JvdXBDb21wb25lbnQgfSlcbiAgICBwdWJsaWMgc29ydEJ1dHRvbkdyb3VwOiBJZ3hCdXR0b25Hcm91cENvbXBvbmVudDtcblxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGVzZjogQmFzZUZpbHRlcmluZ0NvbXBvbmVudCwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHRoaXMuZXNmLnNvcnRpbmdDaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZEJ1dHRvbnModGhpcy5lc2YuY29sdW1uLmZpZWxkKTtcbiAgICAgICAgfSk7XG4gICAgIH1cblxuICAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG9uU29ydEJ1dHRvbkNsaWNrZWQoc29ydERpcmVjdGlvbikge1xuICAgICAgICBpZiAodGhpcy5zb3J0QnV0dG9uR3JvdXAuc2VsZWN0ZWRJbmRleGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZXNmLmdyaWQuaXNDb2x1bW5Hcm91cGVkKHRoaXMuZXNmLmNvbHVtbi5maWVsZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNvcnRCdXR0b25Hcm91cC5zZWxlY3RCdXR0b24oc29ydERpcmVjdGlvbiAtIDEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVzZi5ncmlkLmNsZWFyU29ydCh0aGlzLmVzZi5jb2x1bW4uZmllbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lc2YuZ3JpZC5zb3J0KHsgZmllbGROYW1lOiB0aGlzLmVzZi5jb2x1bW4uZmllbGQsIGRpcjogc29ydERpcmVjdGlvbiwgaWdub3JlQ2FzZTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWRCdXR0b25zKGZpZWxkTmFtZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHNvcnRJbmRleCA9IHRoaXMuZXNmLmdyaWQuc29ydGluZ0V4cHJlc3Npb25zLmZpbmRJbmRleChzID0+IHMuZmllbGROYW1lID09PSBmaWVsZE5hbWUpO1xuXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5zb3J0QnV0dG9uR3JvdXAuYnV0dG9ucy5mb3JFYWNoKChiLCBpKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNvcnRCdXR0b25Hcm91cC5kZXNlbGVjdEJ1dHRvbihpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHNvcnRJbmRleCAhPT0gLTEgKSB7XG4gICAgICAgICAgICBjb25zdCBzb3J0RGlyZWN0aW9uID0gdGhpcy5lc2YuZ3JpZC5zb3J0aW5nRXhwcmVzc2lvbnNbc29ydEluZGV4XS5kaXI7XG4gICAgICAgICAgICB0aGlzLnNvcnRCdXR0b25Hcm91cC5zZWxlY3RCdXR0b24oc29ydERpcmVjdGlvbiAtIDEpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImVzZi5jb2x1bW5cIj5cbjxoZWFkZXI+XG4gICAge3sgZXNmLmdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9zb3J0aW5nX2hlYWRlciB9fVxuPC9oZWFkZXI+XG48aWd4LWJ1dHRvbmdyb3VwICNzb3J0QnV0dG9uR3JvdXA+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgaWd4QnV0dG9uXG4gICAgICAgIFtkaXNwbGF5RGVuc2l0eV09XCJlc2YuZGlzcGxheURlbnNpdHlcIlxuICAgICAgICBbYXR0ci5kYXRhLXRvZ2dsYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU29ydEJ1dHRvbkNsaWNrZWQoMSlcIlxuICAgICAgICA+XG4gICAgICAgIDxpZ3gtaWNvbj5hcnJvd191cHdhcmRzPC9pZ3gtaWNvbj5cbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICB7eyBlc2YuZGlzcGxheURlbnNpdHk9PT0nY29tcGFjdCc/XG4gICAgICAgICAgICBlc2YuZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfZXhjZWxfZmlsdGVyX3NvcnRpbmdfYXNjX3Nob3J0OlxuICAgICAgICAgICAgZXNmLmdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9zb3J0aW5nX2FzYyAgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgaWd4QnV0dG9uXG4gICAgICAgIFtkaXNwbGF5RGVuc2l0eV09XCJlc2YuZGlzcGxheURlbnNpdHlcIlxuICAgICAgICBbYXR0ci5kYXRhLXRvZ2dsYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU29ydEJ1dHRvbkNsaWNrZWQoMilcIlxuICAgICAgICA+XG4gICAgICAgIDxpZ3gtaWNvbj5hcnJvd19kb3dud2FyZHM8L2lneC1pY29uPlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgIHt7IGVzZi5kaXNwbGF5RGVuc2l0eT09PSdjb21wYWN0Jz9cbiAgICAgICAgICAgIGVzZi5ncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9leGNlbF9maWx0ZXJfc29ydGluZ19kZXNjX3Nob3J0OlxuICAgICAgICAgICAgZXNmLmdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2V4Y2VsX2ZpbHRlcl9zb3J0aW5nX2Rlc2NcbiAgICAgICAgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuPC9pZ3gtYnV0dG9uZ3JvdXA+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==