@ieeesa-npm/presentation 0.8.6 → 0.8.7

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 (31) hide show
  1. package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +3 -3
  2. package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +3 -3
  3. package/esm2022/lib/components/checkbox/checkbox.component.mjs +3 -3
  4. package/esm2022/lib/components/chips/chips.component.mjs +3 -3
  5. package/esm2022/lib/components/data-table/data-table.component.mjs +3 -3
  6. package/esm2022/lib/components/date-picker/date-picker.component.mjs +3 -3
  7. package/esm2022/lib/components/date-picker-header/date-picker-header.component.mjs +3 -3
  8. package/esm2022/lib/components/dynamic-form/dynamic-form.component.mjs +3 -3
  9. package/esm2022/lib/components/filter/filter.component.mjs +3 -3
  10. package/esm2022/lib/components/footer/footer.component.mjs +3 -3
  11. package/esm2022/lib/components/form-error/form-error.component.mjs +3 -3
  12. package/esm2022/lib/components/header/header.component.mjs +3 -3
  13. package/esm2022/lib/components/input/input.component.mjs +3 -3
  14. package/esm2022/lib/components/loader/loader.component.mjs +3 -3
  15. package/esm2022/lib/components/menu/menu.component.mjs +3 -3
  16. package/esm2022/lib/components/modal/modal.component.mjs +3 -3
  17. package/esm2022/lib/components/navigation-menu/navigation-menu.component.mjs +3 -3
  18. package/esm2022/lib/components/radio/radio.component.mjs +3 -3
  19. package/esm2022/lib/components/search/search.component.mjs +6 -3
  20. package/esm2022/lib/components/select/select.component.mjs +3 -3
  21. package/esm2022/lib/components/text-area/text-area.component.mjs +3 -3
  22. package/esm2022/lib/components/tile/tile.component.mjs +3 -3
  23. package/esm2022/lib/components/toggle-button/toggle-button.component.mjs +3 -3
  24. package/esm2022/lib/components/welcome/welcome.component.mjs +10 -5
  25. package/esm2022/lib/models/app-config-info.model.mjs +1 -1
  26. package/fesm2022/ieeesa-npm-presentation.mjs +58 -50
  27. package/fesm2022/ieeesa-npm-presentation.mjs.map +1 -1
  28. package/lib/components/search/search.component.d.ts +2 -1
  29. package/lib/components/welcome/welcome.component.d.ts +3 -2
  30. package/lib/models/app-config-info.model.d.ts +1 -0
  31. package/package.json +3 -3
@@ -319,7 +319,7 @@ export class DataTableComponent {
319
319
  this.destroy$.unsubscribe();
320
320
  }
321
321
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataTableComponent, deps: [{ token: i1.BreakpointObserverService }], target: i0.ɵɵFactoryTarget.Component }); }
322
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataTableComponent, isStandalone: true, selector: "ieeesa-data-table", inputs: { tableDataInfo: "tableDataInfo", columnSchemaInfo: "columnSchemaInfo", tableActions: "tableActions", caption: "caption", paginatorConfig: "paginatorConfig", searchPlaceHolderText: "searchPlaceHolderText", rowEditButton: "rowEditButton", rowDeleteButton: "rowDeleteButton", tableEditButton: "tableEditButton", tableDeleteButton: "tableDeleteButton", addButton: "addButton", defaultColumnSortDirection: "defaultColumnSortDirection", defaultSortedColumn: "defaultSortedColumn", filters: "filters", selectedFilterOptions: "selectedFilterOptions", appliedFilterOptions: "appliedFilterOptions", searchType: "searchType" }, outputs: { rowSelected: "rowSelected", selectedRowToEdit: "selectedRowToEdit", selectedRowToDelete: "selectedRowToDelete", selectedRowsToDelete: "selectedRowsToDelete", rowLink: "rowLink", addRow: "addRow", columnDataOnRowLinkClick: "columnDataOnRowLinkClick", paginationChange: "paginationChange", selectedFilter: "selectedFilter", removeFilteredOption: "removeFilteredOption", filteredOptions: "filteredOptions", searchedValue: "searchedValue" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }], ngImport: i0, template: "<div class=\"ieeesa-data-table d-flex flex-column container-fluid\">\r\n <caption class=\"ieeesa-data-table--caption\" *ngIf=\"caption\">\r\n {{\r\n caption\r\n }}\r\n </caption>\r\n <div\r\n *ngIf=\"tableActions\"\r\n class=\"ieeesa-data-table__actions d-flex row justify-content-between align-items-lg-baseline p-sm-0\"\r\n [ngClass]=\"isMobileView ? 'ieeesa-data-table__mobile-view-actions' : ''\"\r\n >\r\n <ng-container\r\n *ngIf=\"!isMobileView\"\r\n [ngTemplateOutlet]=\"filterTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: 'col-md-7 col-lg-6' }\"\r\n ></ng-container>\r\n <div\r\n class=\"d-flex align-items-center gap-lg-4 gap-md-2 gap-sm-1 col-md-5 col-lg-6 justify-content-end\"\r\n >\r\n <ng-container *ngIf=\"!isMobileView\">\r\n <ng-container *ngTemplateOutlet=\"ieeesaSearch\"> </ng-container>\r\n </ng-container>\r\n <ieeesa-icon-button\r\n *ngIf=\"tableActions?.isAddNeeded\"\r\n [iconButton]=\"addButton\"\r\n (iconButtonClick)=\"onAddClick()\"\r\n ></ieeesa-icon-button>\r\n <ieeesa-icon-button\r\n *ngIf=\"tableActions?.isEditNeeded\"\r\n [iconButton]=\"tableEditButton\"\r\n (iconButtonClick)=\"onTableEditClick()\"\r\n [ngClass]=\"\r\n selectedRows.selected.length !== 1\r\n ? 'ieeesa-data-table__actions--disabled'\r\n : ''\r\n \"\r\n ></ieeesa-icon-button>\r\n <ieeesa-icon-button\r\n *ngIf=\"tableActions?.isDeleteNeeded\"\r\n [iconButton]=\"tableDeleteButton\"\r\n (iconButtonClick)=\"onDeleteTableClick()\"\r\n class=\"d-flex justify-content-between align-items-center\"\r\n [ngClass]=\"\r\n selectedRows.selected.length === 0\r\n ? 'ieeesa-data-table__actions--disabled'\r\n : ''\r\n \"\r\n ></ieeesa-icon-button>\r\n <button\r\n mat-button\r\n *ngIf=\"tableActions?.isSearchNeeded\"\r\n [attr.aria-label]=\"constants?.dataTable?.ariaLabel?.search\"\r\n class=\"d-flex d-sm-flex d-md-none d-lg-none d-xl-none ieeesa-data-table__actions--search-group-icon\"\r\n type=\"button\"\r\n (click)=\"onTableSearchClick()\"\r\n >\r\n <i class=\"fa-solid fa-magnifying-glass\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <ng-container\r\n *ngIf=\"isMobileView\"\r\n [ngTemplateOutlet]=\"filterTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: 'ieeesa-data-table__filter' }\"\r\n >\r\n </ng-container>\r\n <ng-template #filterTemplateRef let-className=\"data\">\r\n <ieeesa-filter\r\n class=\"{{ className }} p-0\"\r\n [filters]=\"filters\"\r\n *ngIf=\"tableActions?.isFilterNeeded\"\r\n [selectedFilterOptions]=\"selectedFilterOptions\"\r\n [appliedFilterOptions]=\"appliedFilterOptions\"\r\n (selectedFilter)=\"selectedFilterTypeInfo($event)\"\r\n (removeFilteredOption)=\"onRemovalOfFilteredOption($event)\"\r\n (filteredOptions)=\"onSelectedFilterOptions($event)\"\r\n ></ieeesa-filter>\r\n </ng-template>\r\n <ng-container *ngIf=\"isMobileView && isSearchActive\">\r\n <ng-container *ngTemplateOutlet=\"ieeesaSearch\"> </ng-container>\r\n </ng-container>\r\n <ng-template #ieeesaSearch>\r\n <ieeesa-search\r\n [placeholderLabel]=\"searchPlaceHolderText\"\r\n [searchType]=\"searchType\"\r\n (searchValue)=\"searchValue($event)\"\r\n *ngIf=\"tableActions?.isSearchNeeded\"\r\n class=\"ieeesa-data-table__search-wrapper mt-sm-2 md-sm-2\"\r\n ></ieeesa-search>\r\n </ng-template>\r\n <div class=\"ieeesa-data-table__content\" [ngClass]=\"tableDataInfo && tableDataInfo.length === 0 ? 'ieeesa-data-table__no-table-data': ''\">\r\n <table\r\n mat-table\r\n [dataSource]=\"dataSource\"\r\n matSort\r\n [matSortActive]=\"defaultSortedColumn\"\r\n [matSortDirection]=\"defaultColumnSortDirection\"\r\n [trackBy]=\"trackById\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let column of columnSchemaInfo;\r\n trackBy: trackById;\r\n let id = index\r\n \"\r\n matColumnDef=\"{{ column?.columnDef }}\"\r\n [sticky]=\"column?.isStickyColumn\"\r\n >\r\n <th\r\n mat-header-cell\r\n mat-sort-header\r\n [disabled]=\"!column?.isSortableColumn\"\r\n [ngSwitch]=\"column?.columnDef\"\r\n class=\"ieeesa-data-table-header ieeesa-body-sm-bold-14\"\r\n [ngClass]=\"\r\n column?.columnDef === columnType?.SELECT\r\n ? 'ieeesa-data-table__column-select'\r\n : ''\r\n \"\r\n *matHeaderCellDef\r\n [attr.aria-label]=\"column?.heading\"\r\n >\r\n <ng-container *ngSwitchCase=\"columnType?.SELECT\">\r\n <mat-checkbox\r\n (change)=\"$event ? toggleAllRowsSelection() : null\"\r\n [checked]=\"selectedRows?.hasValue() && isAllRowsSelected()\"\r\n [indeterminate]=\"selectedRows?.hasValue() && !isAllRowsSelected()\"\r\n [aria-label]=\"constants?.dataTable?.ariaLabel?.selectAll\"\r\n >\r\n </mat-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{ column.heading }}</span>\r\n </ng-container>\r\n </th>\r\n <td\r\n mat-cell\r\n [ngSwitch]=\"column?.columnType\"\r\n class=\"ieeesa-data-table__cell-content ieeesa-title-sm-16\"\r\n *matCellDef=\"let row\"\r\n [ngClass]=\"\r\n column?.columnDef === columnType?.SELECT\r\n ? 'ieeesa-data-table__column-select'\r\n : ''\r\n \"\r\n >\r\n <ng-container *ngSwitchDefault>\r\n {{ column?.cellData(row) }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"columnType?.LINK\">\r\n <button\r\n mat-button\r\n (click)=\"onLinkClick(row, column)\"\r\n class=\"ieeesa-title-sm-16 ieeesa-data-table__cell-content-link\"\r\n [attr.aria-label]=\"constants?.dataTable?.ariaLabel?.link\"\r\n >\r\n {{ column?.cellData(row) }}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"columnType?.SELECT\">\r\n <mat-checkbox\r\n class=\"col-2\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? onSelectClick(row) : null\"\r\n [checked]=\"selectedRows.isSelected(row)\"\r\n [aria-label]=\"constants?.dataTable?.ariaLabel?.select\"\r\n >\r\n </mat-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"columnType?.EDIT\">\r\n <ieeesa-icon-button\r\n [iconButton]=\"rowEditButton\"\r\n (iconButtonClick)=\"onEditClick(row)\"\r\n ></ieeesa-icon-button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"columnType?.DELETE\">\r\n <ieeesa-icon-button\r\n [iconButton]=\"rowDeleteButton\"\r\n (iconButtonClick)=\"onDeleteClick(row)\"\r\n ></ieeesa-icon-button>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n <tr\r\n mat-header-row\r\n class=\"ieeesa-data-table__header-row\"\r\n *matHeaderRowDef=\"displayedColumns; sticky: false\"\r\n ></tr>\r\n <tr\r\n mat-row\r\n class=\"ieeesa-data-table__cell-row\"\r\n *matRowDef=\"let row; columns: displayedColumns\"\r\n ></tr>\r\n </table>\r\n </div>\r\n</div>\r\n<ng-container *ngIf=\"tableActions?.isPaginationNeeded\">\r\n <div\r\n class=\"ieeesa-data-table__pagination d-flex flex-row-reverse\"\r\n [attr.aria-label]=\"constants?.dataTable?.ariaLabel?.pagination\"\r\n >\r\n <mat-paginator\r\n [pageSize]=\"paginatorConfig?.recordsPerPage\"\r\n [pageSizeOptions]=\"paginatorConfig.pageSizeOptions\"\r\n (page)=\"handlePagination($event)\"\r\n [length]=\"paginatorConfig?.totalRecords\"\r\n ></mat-paginator>\r\n </div>\r\n</ng-container>\r\n<p\r\n class=\"ieeesa-data-table__message ieeesa-title-lg-bold-24 text-center p-5\"\r\n *ngIf=\"tableDataInfo && tableDataInfo.length === 0\"\r\n>\r\n {{ noRecordFound }}\r\n</p>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.56em;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25em;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625em;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375em;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125em;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875em;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625em;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1em;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-data-table{--mdc-checkbox-selected-focus-icon-color: #00629b;--mdc-checkbox-selected-hover-icon-color: #00629b;--mdc-checkbox-selected-icon-color: #00629b;--mdc-checkbox-selected-pressed-icon-color: #00629b;--mdc-checkbox-selected-focus-state-layer-color: #00629b;--mdc-checkbox-selected-hover-state-layer-color: #00629b;--mdc-checkbox-selected-pressed-state-layer-color: #00629b;--mat-option-selected-state-label-text-color: #00629b}.ieeesa-data-table .mat-mdc-header-row{font-family:Calibri Bold;font-weight:700;font-size:1em}.ieeesa-data-table__content{position:relative;overflow:auto;margin-top:.75em;width:100%}.ieeesa-data-table__message{color:#ba0c2f!important}.ieeesa-data-table__mobile-view-actions{margin-left:3.125em}.ieeesa-data-table__actions-right{width:50%}.ieeesa-data-table__cell-content-link{padding:0!important;font-size:1em;color:#00629b!important;text-decoration:underline;white-space:normal;word-wrap:break-word;border:none;background:none;min-width:auto!important}.ieeesa-data-table__actions{padding:.75em 0 .75em .15em;position:relative}.ieeesa-data-table__actions--disabled .ieeesa-icon-button__svg{fill:#c9c5ca!important}.ieeesa-data-table__actions--search-group-icon{height:1.5em;right:0;min-width:auto!important;padding-left:1em;padding-top:.1875em;color:#00629b!important}.ieeesa-data-table__filter{margin-top:-45px}.ieeesa-data-table__search-wrapper{width:-webkit-fill-available;width:-moz-available}.ieeesa-data-table__search-wrapper .ieeesa-search-field__search-icon{color:#00629b}.ieeesa-data-table__search-wrapper .ieeesa-search-field__button{background:none}.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field{width:100%;height:2.25em;border-radius:.1875em;background:linear-gradient(0deg,#00629b0d 0% 100%),#fffbfe;font-size:1em;box-shadow:0 0 4px #00000080 inset}.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mat-mdc-form-field-infix,.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mdc-text-field{padding:.1875em .5em!important}.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__leading,.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__notch,.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__trailing{border:none}.ieeesa-data-table .ieeesa-icon-button{padding:0 3px}.ieeesa-data-table .ieeesa-icon-button__svg{height:1.5em;width:1.5em;fill:#00629b}.ieeesa-data-table .cell-text{white-space:normal;word-wrap:break-word}.ieeesa-data-table .mat-mdc-table{background:none}.ieeesa-data-table tbody tr:nth-child(odd){background-color:#f7f9ff!important;box-shadow:0 1px #dce3e9 inset}.ieeesa-data-table thead{border-top:1px solid #dce3e9}.ieeesa-data-table__column-select{width:1em;padding:0!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i3.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i3.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i5.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: IconButtonComponent, selector: "ieeesa-icon-button", inputs: ["iconButton"], outputs: ["iconButtonClick"] }, { kind: "component", type: SearchComponent, selector: "ieeesa-search", inputs: ["formControlName", "placeholderLabel", "searchTerm", "searchType", "minCharacterToSearch"], outputs: ["searchValue"] }, { kind: "component", type: FilterComponent, selector: "ieeesa-filter", inputs: ["appliedFilterOptions", "filterButton", "filters", "selectedFilterOptions"], outputs: ["selectedFilter", "filteredOptions", "removeFilteredOption"] }], encapsulation: i0.ViewEncapsulation.None }); }
322
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataTableComponent, isStandalone: true, selector: "ieeesa-data-table", inputs: { tableDataInfo: "tableDataInfo", columnSchemaInfo: "columnSchemaInfo", tableActions: "tableActions", caption: "caption", paginatorConfig: "paginatorConfig", searchPlaceHolderText: "searchPlaceHolderText", rowEditButton: "rowEditButton", rowDeleteButton: "rowDeleteButton", tableEditButton: "tableEditButton", tableDeleteButton: "tableDeleteButton", addButton: "addButton", defaultColumnSortDirection: "defaultColumnSortDirection", defaultSortedColumn: "defaultSortedColumn", filters: "filters", selectedFilterOptions: "selectedFilterOptions", appliedFilterOptions: "appliedFilterOptions", searchType: "searchType" }, outputs: { rowSelected: "rowSelected", selectedRowToEdit: "selectedRowToEdit", selectedRowToDelete: "selectedRowToDelete", selectedRowsToDelete: "selectedRowsToDelete", rowLink: "rowLink", addRow: "addRow", columnDataOnRowLinkClick: "columnDataOnRowLinkClick", paginationChange: "paginationChange", selectedFilter: "selectedFilter", removeFilteredOption: "removeFilteredOption", filteredOptions: "filteredOptions", searchedValue: "searchedValue" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }], ngImport: i0, template: "<div class=\"ieeesa-data-table d-flex flex-column container-fluid\">\r\n <caption class=\"ieeesa-data-table--caption\" *ngIf=\"caption\">\r\n {{\r\n caption\r\n }}\r\n </caption>\r\n <div\r\n *ngIf=\"tableActions\"\r\n class=\"ieeesa-data-table__actions d-flex row justify-content-between align-items-lg-baseline p-sm-0\"\r\n [ngClass]=\"isMobileView ? 'ieeesa-data-table__mobile-view-actions' : ''\"\r\n >\r\n <ng-container\r\n *ngIf=\"!isMobileView\"\r\n [ngTemplateOutlet]=\"filterTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: 'col-md-7 col-lg-6' }\"\r\n ></ng-container>\r\n <div\r\n class=\"d-flex align-items-center gap-lg-4 gap-md-2 gap-sm-1 col-md-5 col-lg-6 justify-content-end\"\r\n >\r\n <ng-container *ngIf=\"!isMobileView\">\r\n <ng-container *ngTemplateOutlet=\"ieeesaSearch\"> </ng-container>\r\n </ng-container>\r\n <ieeesa-icon-button\r\n *ngIf=\"tableActions?.isAddNeeded\"\r\n [iconButton]=\"addButton\"\r\n (iconButtonClick)=\"onAddClick()\"\r\n ></ieeesa-icon-button>\r\n <ieeesa-icon-button\r\n *ngIf=\"tableActions?.isEditNeeded\"\r\n [iconButton]=\"tableEditButton\"\r\n (iconButtonClick)=\"onTableEditClick()\"\r\n [ngClass]=\"\r\n selectedRows.selected.length !== 1\r\n ? 'ieeesa-data-table__actions--disabled'\r\n : ''\r\n \"\r\n ></ieeesa-icon-button>\r\n <ieeesa-icon-button\r\n *ngIf=\"tableActions?.isDeleteNeeded\"\r\n [iconButton]=\"tableDeleteButton\"\r\n (iconButtonClick)=\"onDeleteTableClick()\"\r\n class=\"d-flex justify-content-between align-items-center\"\r\n [ngClass]=\"\r\n selectedRows.selected.length === 0\r\n ? 'ieeesa-data-table__actions--disabled'\r\n : ''\r\n \"\r\n ></ieeesa-icon-button>\r\n <button\r\n mat-button\r\n *ngIf=\"tableActions?.isSearchNeeded\"\r\n [attr.aria-label]=\"constants?.dataTable?.ariaLabel?.search\"\r\n class=\"d-flex d-sm-flex d-md-none d-lg-none d-xl-none ieeesa-data-table__actions--search-group-icon\"\r\n type=\"button\"\r\n (click)=\"onTableSearchClick()\"\r\n >\r\n <i class=\"fa-solid fa-magnifying-glass\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <ng-container\r\n *ngIf=\"isMobileView\"\r\n [ngTemplateOutlet]=\"filterTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: 'ieeesa-data-table__filter' }\"\r\n >\r\n </ng-container>\r\n <ng-template #filterTemplateRef let-className=\"data\">\r\n <ieeesa-filter\r\n class=\"{{ className }} p-0\"\r\n [filters]=\"filters\"\r\n *ngIf=\"tableActions?.isFilterNeeded\"\r\n [selectedFilterOptions]=\"selectedFilterOptions\"\r\n [appliedFilterOptions]=\"appliedFilterOptions\"\r\n (selectedFilter)=\"selectedFilterTypeInfo($event)\"\r\n (removeFilteredOption)=\"onRemovalOfFilteredOption($event)\"\r\n (filteredOptions)=\"onSelectedFilterOptions($event)\"\r\n ></ieeesa-filter>\r\n </ng-template>\r\n <ng-container *ngIf=\"isMobileView && isSearchActive\">\r\n <ng-container *ngTemplateOutlet=\"ieeesaSearch\"> </ng-container>\r\n </ng-container>\r\n <ng-template #ieeesaSearch>\r\n <ieeesa-search\r\n [placeholderLabel]=\"searchPlaceHolderText\"\r\n [searchType]=\"searchType\"\r\n (searchValue)=\"searchValue($event)\"\r\n *ngIf=\"tableActions?.isSearchNeeded\"\r\n class=\"ieeesa-data-table__search-wrapper mt-sm-2 md-sm-2\"\r\n ></ieeesa-search>\r\n </ng-template>\r\n <div class=\"ieeesa-data-table__content\" [ngClass]=\"tableDataInfo && tableDataInfo.length === 0 ? 'ieeesa-data-table__no-table-data': ''\">\r\n <table\r\n mat-table\r\n [dataSource]=\"dataSource\"\r\n matSort\r\n [matSortActive]=\"defaultSortedColumn\"\r\n [matSortDirection]=\"defaultColumnSortDirection\"\r\n [trackBy]=\"trackById\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let column of columnSchemaInfo;\r\n trackBy: trackById;\r\n let id = index\r\n \"\r\n matColumnDef=\"{{ column?.columnDef }}\"\r\n [sticky]=\"column?.isStickyColumn\"\r\n >\r\n <th\r\n mat-header-cell\r\n mat-sort-header\r\n [disabled]=\"!column?.isSortableColumn\"\r\n [ngSwitch]=\"column?.columnDef\"\r\n class=\"ieeesa-data-table-header ieeesa-body-sm-bold-14\"\r\n [ngClass]=\"\r\n column?.columnDef === columnType?.SELECT\r\n ? 'ieeesa-data-table__column-select'\r\n : ''\r\n \"\r\n *matHeaderCellDef\r\n [attr.aria-label]=\"column?.heading\"\r\n >\r\n <ng-container *ngSwitchCase=\"columnType?.SELECT\">\r\n <mat-checkbox\r\n (change)=\"$event ? toggleAllRowsSelection() : null\"\r\n [checked]=\"selectedRows?.hasValue() && isAllRowsSelected()\"\r\n [indeterminate]=\"selectedRows?.hasValue() && !isAllRowsSelected()\"\r\n [aria-label]=\"constants?.dataTable?.ariaLabel?.selectAll\"\r\n >\r\n </mat-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{ column.heading }}</span>\r\n </ng-container>\r\n </th>\r\n <td\r\n mat-cell\r\n [ngSwitch]=\"column?.columnType\"\r\n class=\"ieeesa-data-table__cell-content ieeesa-title-sm-16\"\r\n *matCellDef=\"let row\"\r\n [ngClass]=\"\r\n column?.columnDef === columnType?.SELECT\r\n ? 'ieeesa-data-table__column-select'\r\n : ''\r\n \"\r\n >\r\n <ng-container *ngSwitchDefault>\r\n {{ column?.cellData(row) }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"columnType?.LINK\">\r\n <button\r\n mat-button\r\n (click)=\"onLinkClick(row, column)\"\r\n class=\"ieeesa-title-sm-16 ieeesa-data-table__cell-content-link\"\r\n [attr.aria-label]=\"constants?.dataTable?.ariaLabel?.link\"\r\n >\r\n {{ column?.cellData(row) }}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"columnType?.SELECT\">\r\n <mat-checkbox\r\n class=\"col-2\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? onSelectClick(row) : null\"\r\n [checked]=\"selectedRows.isSelected(row)\"\r\n [aria-label]=\"constants?.dataTable?.ariaLabel?.select\"\r\n >\r\n </mat-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"columnType?.EDIT\">\r\n <ieeesa-icon-button\r\n [iconButton]=\"rowEditButton\"\r\n (iconButtonClick)=\"onEditClick(row)\"\r\n ></ieeesa-icon-button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"columnType?.DELETE\">\r\n <ieeesa-icon-button\r\n [iconButton]=\"rowDeleteButton\"\r\n (iconButtonClick)=\"onDeleteClick(row)\"\r\n ></ieeesa-icon-button>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n <tr\r\n mat-header-row\r\n class=\"ieeesa-data-table__header-row\"\r\n *matHeaderRowDef=\"displayedColumns; sticky: false\"\r\n ></tr>\r\n <tr\r\n mat-row\r\n class=\"ieeesa-data-table__cell-row\"\r\n *matRowDef=\"let row; columns: displayedColumns\"\r\n ></tr>\r\n </table>\r\n </div>\r\n</div>\r\n<ng-container *ngIf=\"tableActions?.isPaginationNeeded\">\r\n <div\r\n class=\"ieeesa-data-table__pagination d-flex flex-row-reverse\"\r\n [attr.aria-label]=\"constants?.dataTable?.ariaLabel?.pagination\"\r\n >\r\n <mat-paginator\r\n [pageSize]=\"paginatorConfig?.recordsPerPage\"\r\n [pageSizeOptions]=\"paginatorConfig.pageSizeOptions\"\r\n (page)=\"handlePagination($event)\"\r\n [length]=\"paginatorConfig?.totalRecords\"\r\n ></mat-paginator>\r\n </div>\r\n</ng-container>\r\n<p\r\n class=\"ieeesa-data-table__message ieeesa-title-lg-bold-24 text-center p-5\"\r\n *ngIf=\"tableDataInfo && tableDataInfo.length === 0\"\r\n>\r\n {{ noRecordFound }}\r\n</p>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.56em;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25em;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625em;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375em;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2em;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125em;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875em;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625em;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1em;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-data-table{--mdc-checkbox-selected-focus-icon-color: #00629b;--mdc-checkbox-selected-hover-icon-color: #00629b;--mdc-checkbox-selected-icon-color: #00629b;--mdc-checkbox-selected-pressed-icon-color: #00629b;--mdc-checkbox-selected-focus-state-layer-color: #00629b;--mdc-checkbox-selected-hover-state-layer-color: #00629b;--mdc-checkbox-selected-pressed-state-layer-color: #00629b;--mat-option-selected-state-label-text-color: #00629b}.ieeesa-data-table .mat-mdc-header-row{font-family:Calibri Bold;font-weight:700;font-size:1em}.ieeesa-data-table__content{position:relative;overflow:auto;margin-top:.75em;width:100%}.ieeesa-data-table__message{color:#ba0c2f!important}.ieeesa-data-table__mobile-view-actions{margin-left:3.125em}.ieeesa-data-table__actions-right{width:50%}.ieeesa-data-table__cell-content-link{padding:0!important;font-size:1em;color:#00629b!important;text-decoration:underline;white-space:normal;word-wrap:break-word;border:none;background:none;min-width:auto!important}.ieeesa-data-table__actions{padding:.75em 0 .75em .15em;position:relative}.ieeesa-data-table__actions--disabled .ieeesa-icon-button__svg{fill:#c9c5ca!important}.ieeesa-data-table__actions--search-group-icon{height:1.5em;right:0;min-width:auto!important;padding-left:1em;padding-top:.1875em;color:#00629b!important}.ieeesa-data-table__filter{margin-top:-45px}.ieeesa-data-table__search-wrapper{width:-webkit-fill-available;width:-moz-available}.ieeesa-data-table__search-wrapper .ieeesa-search-field__search-icon{color:#00629b}.ieeesa-data-table__search-wrapper .ieeesa-search-field__button{background:none}.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field{width:100%;height:2.25em;border-radius:.1875em;background:linear-gradient(0deg,#00629b0d 0% 100%),#fffbfe;font-size:1em;box-shadow:0 0 4px #00000080 inset}.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mat-mdc-form-field-infix,.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mdc-text-field{padding:.1875em .5em!important}.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__leading,.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__notch,.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__trailing{border:none}.ieeesa-data-table .ieeesa-icon-button{padding:0 3px}.ieeesa-data-table .ieeesa-icon-button__svg{height:1.5em;width:1.5em;fill:#00629b}.ieeesa-data-table .cell-text{white-space:normal;word-wrap:break-word}.ieeesa-data-table .mat-mdc-table{background:none}.ieeesa-data-table tbody tr:nth-child(odd){background-color:#f7f9ff!important;box-shadow:0 1px #dce3e9 inset}.ieeesa-data-table thead{border-top:1px solid #dce3e9}.ieeesa-data-table__column-select{width:1em;padding:0!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i3.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i3.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i5.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: IconButtonComponent, selector: "ieeesa-icon-button", inputs: ["iconButton"], outputs: ["iconButtonClick"] }, { kind: "component", type: SearchComponent, selector: "ieeesa-search", inputs: ["formControlName", "placeholderLabel", "searchTerm", "supportMessage", "searchType", "minCharacterToSearch"], outputs: ["searchValue"] }, { kind: "component", type: FilterComponent, selector: "ieeesa-filter", inputs: ["appliedFilterOptions", "filterButton", "filters", "selectedFilterOptions"], outputs: ["selectedFilter", "filteredOptions", "removeFilteredOption"] }], encapsulation: i0.ViewEncapsulation.None }); }
323
323
  }
324
324
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataTableComponent, decorators: [{
325
325
  type: Component,
@@ -336,7 +336,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
336
336
  IconButtonComponent,
337
337
  SearchComponent,
338
338
  FilterComponent,
339
- ], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-data-table d-flex flex-column container-fluid\">\r\n <caption class=\"ieeesa-data-table--caption\" *ngIf=\"caption\">\r\n {{\r\n caption\r\n }}\r\n </caption>\r\n <div\r\n *ngIf=\"tableActions\"\r\n class=\"ieeesa-data-table__actions d-flex row justify-content-between align-items-lg-baseline p-sm-0\"\r\n [ngClass]=\"isMobileView ? 'ieeesa-data-table__mobile-view-actions' : ''\"\r\n >\r\n <ng-container\r\n *ngIf=\"!isMobileView\"\r\n [ngTemplateOutlet]=\"filterTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: 'col-md-7 col-lg-6' }\"\r\n ></ng-container>\r\n <div\r\n class=\"d-flex align-items-center gap-lg-4 gap-md-2 gap-sm-1 col-md-5 col-lg-6 justify-content-end\"\r\n >\r\n <ng-container *ngIf=\"!isMobileView\">\r\n <ng-container *ngTemplateOutlet=\"ieeesaSearch\"> </ng-container>\r\n </ng-container>\r\n <ieeesa-icon-button\r\n *ngIf=\"tableActions?.isAddNeeded\"\r\n [iconButton]=\"addButton\"\r\n (iconButtonClick)=\"onAddClick()\"\r\n ></ieeesa-icon-button>\r\n <ieeesa-icon-button\r\n *ngIf=\"tableActions?.isEditNeeded\"\r\n [iconButton]=\"tableEditButton\"\r\n (iconButtonClick)=\"onTableEditClick()\"\r\n [ngClass]=\"\r\n selectedRows.selected.length !== 1\r\n ? 'ieeesa-data-table__actions--disabled'\r\n : ''\r\n \"\r\n ></ieeesa-icon-button>\r\n <ieeesa-icon-button\r\n *ngIf=\"tableActions?.isDeleteNeeded\"\r\n [iconButton]=\"tableDeleteButton\"\r\n (iconButtonClick)=\"onDeleteTableClick()\"\r\n class=\"d-flex justify-content-between align-items-center\"\r\n [ngClass]=\"\r\n selectedRows.selected.length === 0\r\n ? 'ieeesa-data-table__actions--disabled'\r\n : ''\r\n \"\r\n ></ieeesa-icon-button>\r\n <button\r\n mat-button\r\n *ngIf=\"tableActions?.isSearchNeeded\"\r\n [attr.aria-label]=\"constants?.dataTable?.ariaLabel?.search\"\r\n class=\"d-flex d-sm-flex d-md-none d-lg-none d-xl-none ieeesa-data-table__actions--search-group-icon\"\r\n type=\"button\"\r\n (click)=\"onTableSearchClick()\"\r\n >\r\n <i class=\"fa-solid fa-magnifying-glass\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <ng-container\r\n *ngIf=\"isMobileView\"\r\n [ngTemplateOutlet]=\"filterTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: 'ieeesa-data-table__filter' }\"\r\n >\r\n </ng-container>\r\n <ng-template #filterTemplateRef let-className=\"data\">\r\n <ieeesa-filter\r\n class=\"{{ className }} p-0\"\r\n [filters]=\"filters\"\r\n *ngIf=\"tableActions?.isFilterNeeded\"\r\n [selectedFilterOptions]=\"selectedFilterOptions\"\r\n [appliedFilterOptions]=\"appliedFilterOptions\"\r\n (selectedFilter)=\"selectedFilterTypeInfo($event)\"\r\n (removeFilteredOption)=\"onRemovalOfFilteredOption($event)\"\r\n (filteredOptions)=\"onSelectedFilterOptions($event)\"\r\n ></ieeesa-filter>\r\n </ng-template>\r\n <ng-container *ngIf=\"isMobileView && isSearchActive\">\r\n <ng-container *ngTemplateOutlet=\"ieeesaSearch\"> </ng-container>\r\n </ng-container>\r\n <ng-template #ieeesaSearch>\r\n <ieeesa-search\r\n [placeholderLabel]=\"searchPlaceHolderText\"\r\n [searchType]=\"searchType\"\r\n (searchValue)=\"searchValue($event)\"\r\n *ngIf=\"tableActions?.isSearchNeeded\"\r\n class=\"ieeesa-data-table__search-wrapper mt-sm-2 md-sm-2\"\r\n ></ieeesa-search>\r\n </ng-template>\r\n <div class=\"ieeesa-data-table__content\" [ngClass]=\"tableDataInfo && tableDataInfo.length === 0 ? 'ieeesa-data-table__no-table-data': ''\">\r\n <table\r\n mat-table\r\n [dataSource]=\"dataSource\"\r\n matSort\r\n [matSortActive]=\"defaultSortedColumn\"\r\n [matSortDirection]=\"defaultColumnSortDirection\"\r\n [trackBy]=\"trackById\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let column of columnSchemaInfo;\r\n trackBy: trackById;\r\n let id = index\r\n \"\r\n matColumnDef=\"{{ column?.columnDef }}\"\r\n [sticky]=\"column?.isStickyColumn\"\r\n >\r\n <th\r\n mat-header-cell\r\n mat-sort-header\r\n [disabled]=\"!column?.isSortableColumn\"\r\n [ngSwitch]=\"column?.columnDef\"\r\n class=\"ieeesa-data-table-header ieeesa-body-sm-bold-14\"\r\n [ngClass]=\"\r\n column?.columnDef === columnType?.SELECT\r\n ? 'ieeesa-data-table__column-select'\r\n : ''\r\n \"\r\n *matHeaderCellDef\r\n [attr.aria-label]=\"column?.heading\"\r\n >\r\n <ng-container *ngSwitchCase=\"columnType?.SELECT\">\r\n <mat-checkbox\r\n (change)=\"$event ? toggleAllRowsSelection() : null\"\r\n [checked]=\"selectedRows?.hasValue() && isAllRowsSelected()\"\r\n [indeterminate]=\"selectedRows?.hasValue() && !isAllRowsSelected()\"\r\n [aria-label]=\"constants?.dataTable?.ariaLabel?.selectAll\"\r\n >\r\n </mat-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{ column.heading }}</span>\r\n </ng-container>\r\n </th>\r\n <td\r\n mat-cell\r\n [ngSwitch]=\"column?.columnType\"\r\n class=\"ieeesa-data-table__cell-content ieeesa-title-sm-16\"\r\n *matCellDef=\"let row\"\r\n [ngClass]=\"\r\n column?.columnDef === columnType?.SELECT\r\n ? 'ieeesa-data-table__column-select'\r\n : ''\r\n \"\r\n >\r\n <ng-container *ngSwitchDefault>\r\n {{ column?.cellData(row) }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"columnType?.LINK\">\r\n <button\r\n mat-button\r\n (click)=\"onLinkClick(row, column)\"\r\n class=\"ieeesa-title-sm-16 ieeesa-data-table__cell-content-link\"\r\n [attr.aria-label]=\"constants?.dataTable?.ariaLabel?.link\"\r\n >\r\n {{ column?.cellData(row) }}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"columnType?.SELECT\">\r\n <mat-checkbox\r\n class=\"col-2\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? onSelectClick(row) : null\"\r\n [checked]=\"selectedRows.isSelected(row)\"\r\n [aria-label]=\"constants?.dataTable?.ariaLabel?.select\"\r\n >\r\n </mat-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"columnType?.EDIT\">\r\n <ieeesa-icon-button\r\n [iconButton]=\"rowEditButton\"\r\n (iconButtonClick)=\"onEditClick(row)\"\r\n ></ieeesa-icon-button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"columnType?.DELETE\">\r\n <ieeesa-icon-button\r\n [iconButton]=\"rowDeleteButton\"\r\n (iconButtonClick)=\"onDeleteClick(row)\"\r\n ></ieeesa-icon-button>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n <tr\r\n mat-header-row\r\n class=\"ieeesa-data-table__header-row\"\r\n *matHeaderRowDef=\"displayedColumns; sticky: false\"\r\n ></tr>\r\n <tr\r\n mat-row\r\n class=\"ieeesa-data-table__cell-row\"\r\n *matRowDef=\"let row; columns: displayedColumns\"\r\n ></tr>\r\n </table>\r\n </div>\r\n</div>\r\n<ng-container *ngIf=\"tableActions?.isPaginationNeeded\">\r\n <div\r\n class=\"ieeesa-data-table__pagination d-flex flex-row-reverse\"\r\n [attr.aria-label]=\"constants?.dataTable?.ariaLabel?.pagination\"\r\n >\r\n <mat-paginator\r\n [pageSize]=\"paginatorConfig?.recordsPerPage\"\r\n [pageSizeOptions]=\"paginatorConfig.pageSizeOptions\"\r\n (page)=\"handlePagination($event)\"\r\n [length]=\"paginatorConfig?.totalRecords\"\r\n ></mat-paginator>\r\n </div>\r\n</ng-container>\r\n<p\r\n class=\"ieeesa-data-table__message ieeesa-title-lg-bold-24 text-center p-5\"\r\n *ngIf=\"tableDataInfo && tableDataInfo.length === 0\"\r\n>\r\n {{ noRecordFound }}\r\n</p>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.56em;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25em;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625em;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375em;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125em;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875em;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625em;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1em;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-data-table{--mdc-checkbox-selected-focus-icon-color: #00629b;--mdc-checkbox-selected-hover-icon-color: #00629b;--mdc-checkbox-selected-icon-color: #00629b;--mdc-checkbox-selected-pressed-icon-color: #00629b;--mdc-checkbox-selected-focus-state-layer-color: #00629b;--mdc-checkbox-selected-hover-state-layer-color: #00629b;--mdc-checkbox-selected-pressed-state-layer-color: #00629b;--mat-option-selected-state-label-text-color: #00629b}.ieeesa-data-table .mat-mdc-header-row{font-family:Calibri Bold;font-weight:700;font-size:1em}.ieeesa-data-table__content{position:relative;overflow:auto;margin-top:.75em;width:100%}.ieeesa-data-table__message{color:#ba0c2f!important}.ieeesa-data-table__mobile-view-actions{margin-left:3.125em}.ieeesa-data-table__actions-right{width:50%}.ieeesa-data-table__cell-content-link{padding:0!important;font-size:1em;color:#00629b!important;text-decoration:underline;white-space:normal;word-wrap:break-word;border:none;background:none;min-width:auto!important}.ieeesa-data-table__actions{padding:.75em 0 .75em .15em;position:relative}.ieeesa-data-table__actions--disabled .ieeesa-icon-button__svg{fill:#c9c5ca!important}.ieeesa-data-table__actions--search-group-icon{height:1.5em;right:0;min-width:auto!important;padding-left:1em;padding-top:.1875em;color:#00629b!important}.ieeesa-data-table__filter{margin-top:-45px}.ieeesa-data-table__search-wrapper{width:-webkit-fill-available;width:-moz-available}.ieeesa-data-table__search-wrapper .ieeesa-search-field__search-icon{color:#00629b}.ieeesa-data-table__search-wrapper .ieeesa-search-field__button{background:none}.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field{width:100%;height:2.25em;border-radius:.1875em;background:linear-gradient(0deg,#00629b0d 0% 100%),#fffbfe;font-size:1em;box-shadow:0 0 4px #00000080 inset}.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mat-mdc-form-field-infix,.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mdc-text-field{padding:.1875em .5em!important}.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__leading,.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__notch,.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__trailing{border:none}.ieeesa-data-table .ieeesa-icon-button{padding:0 3px}.ieeesa-data-table .ieeesa-icon-button__svg{height:1.5em;width:1.5em;fill:#00629b}.ieeesa-data-table .cell-text{white-space:normal;word-wrap:break-word}.ieeesa-data-table .mat-mdc-table{background:none}.ieeesa-data-table tbody tr:nth-child(odd){background-color:#f7f9ff!important;box-shadow:0 1px #dce3e9 inset}.ieeesa-data-table thead{border-top:1px solid #dce3e9}.ieeesa-data-table__column-select{width:1em;padding:0!important}\n"] }]
339
+ ], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-data-table d-flex flex-column container-fluid\">\r\n <caption class=\"ieeesa-data-table--caption\" *ngIf=\"caption\">\r\n {{\r\n caption\r\n }}\r\n </caption>\r\n <div\r\n *ngIf=\"tableActions\"\r\n class=\"ieeesa-data-table__actions d-flex row justify-content-between align-items-lg-baseline p-sm-0\"\r\n [ngClass]=\"isMobileView ? 'ieeesa-data-table__mobile-view-actions' : ''\"\r\n >\r\n <ng-container\r\n *ngIf=\"!isMobileView\"\r\n [ngTemplateOutlet]=\"filterTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: 'col-md-7 col-lg-6' }\"\r\n ></ng-container>\r\n <div\r\n class=\"d-flex align-items-center gap-lg-4 gap-md-2 gap-sm-1 col-md-5 col-lg-6 justify-content-end\"\r\n >\r\n <ng-container *ngIf=\"!isMobileView\">\r\n <ng-container *ngTemplateOutlet=\"ieeesaSearch\"> </ng-container>\r\n </ng-container>\r\n <ieeesa-icon-button\r\n *ngIf=\"tableActions?.isAddNeeded\"\r\n [iconButton]=\"addButton\"\r\n (iconButtonClick)=\"onAddClick()\"\r\n ></ieeesa-icon-button>\r\n <ieeesa-icon-button\r\n *ngIf=\"tableActions?.isEditNeeded\"\r\n [iconButton]=\"tableEditButton\"\r\n (iconButtonClick)=\"onTableEditClick()\"\r\n [ngClass]=\"\r\n selectedRows.selected.length !== 1\r\n ? 'ieeesa-data-table__actions--disabled'\r\n : ''\r\n \"\r\n ></ieeesa-icon-button>\r\n <ieeesa-icon-button\r\n *ngIf=\"tableActions?.isDeleteNeeded\"\r\n [iconButton]=\"tableDeleteButton\"\r\n (iconButtonClick)=\"onDeleteTableClick()\"\r\n class=\"d-flex justify-content-between align-items-center\"\r\n [ngClass]=\"\r\n selectedRows.selected.length === 0\r\n ? 'ieeesa-data-table__actions--disabled'\r\n : ''\r\n \"\r\n ></ieeesa-icon-button>\r\n <button\r\n mat-button\r\n *ngIf=\"tableActions?.isSearchNeeded\"\r\n [attr.aria-label]=\"constants?.dataTable?.ariaLabel?.search\"\r\n class=\"d-flex d-sm-flex d-md-none d-lg-none d-xl-none ieeesa-data-table__actions--search-group-icon\"\r\n type=\"button\"\r\n (click)=\"onTableSearchClick()\"\r\n >\r\n <i class=\"fa-solid fa-magnifying-glass\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <ng-container\r\n *ngIf=\"isMobileView\"\r\n [ngTemplateOutlet]=\"filterTemplateRef\"\r\n [ngTemplateOutletContext]=\"{ data: 'ieeesa-data-table__filter' }\"\r\n >\r\n </ng-container>\r\n <ng-template #filterTemplateRef let-className=\"data\">\r\n <ieeesa-filter\r\n class=\"{{ className }} p-0\"\r\n [filters]=\"filters\"\r\n *ngIf=\"tableActions?.isFilterNeeded\"\r\n [selectedFilterOptions]=\"selectedFilterOptions\"\r\n [appliedFilterOptions]=\"appliedFilterOptions\"\r\n (selectedFilter)=\"selectedFilterTypeInfo($event)\"\r\n (removeFilteredOption)=\"onRemovalOfFilteredOption($event)\"\r\n (filteredOptions)=\"onSelectedFilterOptions($event)\"\r\n ></ieeesa-filter>\r\n </ng-template>\r\n <ng-container *ngIf=\"isMobileView && isSearchActive\">\r\n <ng-container *ngTemplateOutlet=\"ieeesaSearch\"> </ng-container>\r\n </ng-container>\r\n <ng-template #ieeesaSearch>\r\n <ieeesa-search\r\n [placeholderLabel]=\"searchPlaceHolderText\"\r\n [searchType]=\"searchType\"\r\n (searchValue)=\"searchValue($event)\"\r\n *ngIf=\"tableActions?.isSearchNeeded\"\r\n class=\"ieeesa-data-table__search-wrapper mt-sm-2 md-sm-2\"\r\n ></ieeesa-search>\r\n </ng-template>\r\n <div class=\"ieeesa-data-table__content\" [ngClass]=\"tableDataInfo && tableDataInfo.length === 0 ? 'ieeesa-data-table__no-table-data': ''\">\r\n <table\r\n mat-table\r\n [dataSource]=\"dataSource\"\r\n matSort\r\n [matSortActive]=\"defaultSortedColumn\"\r\n [matSortDirection]=\"defaultColumnSortDirection\"\r\n [trackBy]=\"trackById\"\r\n >\r\n <ng-container\r\n *ngFor=\"\r\n let column of columnSchemaInfo;\r\n trackBy: trackById;\r\n let id = index\r\n \"\r\n matColumnDef=\"{{ column?.columnDef }}\"\r\n [sticky]=\"column?.isStickyColumn\"\r\n >\r\n <th\r\n mat-header-cell\r\n mat-sort-header\r\n [disabled]=\"!column?.isSortableColumn\"\r\n [ngSwitch]=\"column?.columnDef\"\r\n class=\"ieeesa-data-table-header ieeesa-body-sm-bold-14\"\r\n [ngClass]=\"\r\n column?.columnDef === columnType?.SELECT\r\n ? 'ieeesa-data-table__column-select'\r\n : ''\r\n \"\r\n *matHeaderCellDef\r\n [attr.aria-label]=\"column?.heading\"\r\n >\r\n <ng-container *ngSwitchCase=\"columnType?.SELECT\">\r\n <mat-checkbox\r\n (change)=\"$event ? toggleAllRowsSelection() : null\"\r\n [checked]=\"selectedRows?.hasValue() && isAllRowsSelected()\"\r\n [indeterminate]=\"selectedRows?.hasValue() && !isAllRowsSelected()\"\r\n [aria-label]=\"constants?.dataTable?.ariaLabel?.selectAll\"\r\n >\r\n </mat-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{ column.heading }}</span>\r\n </ng-container>\r\n </th>\r\n <td\r\n mat-cell\r\n [ngSwitch]=\"column?.columnType\"\r\n class=\"ieeesa-data-table__cell-content ieeesa-title-sm-16\"\r\n *matCellDef=\"let row\"\r\n [ngClass]=\"\r\n column?.columnDef === columnType?.SELECT\r\n ? 'ieeesa-data-table__column-select'\r\n : ''\r\n \"\r\n >\r\n <ng-container *ngSwitchDefault>\r\n {{ column?.cellData(row) }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"columnType?.LINK\">\r\n <button\r\n mat-button\r\n (click)=\"onLinkClick(row, column)\"\r\n class=\"ieeesa-title-sm-16 ieeesa-data-table__cell-content-link\"\r\n [attr.aria-label]=\"constants?.dataTable?.ariaLabel?.link\"\r\n >\r\n {{ column?.cellData(row) }}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"columnType?.SELECT\">\r\n <mat-checkbox\r\n class=\"col-2\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? onSelectClick(row) : null\"\r\n [checked]=\"selectedRows.isSelected(row)\"\r\n [aria-label]=\"constants?.dataTable?.ariaLabel?.select\"\r\n >\r\n </mat-checkbox>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"columnType?.EDIT\">\r\n <ieeesa-icon-button\r\n [iconButton]=\"rowEditButton\"\r\n (iconButtonClick)=\"onEditClick(row)\"\r\n ></ieeesa-icon-button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"columnType?.DELETE\">\r\n <ieeesa-icon-button\r\n [iconButton]=\"rowDeleteButton\"\r\n (iconButtonClick)=\"onDeleteClick(row)\"\r\n ></ieeesa-icon-button>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n <tr\r\n mat-header-row\r\n class=\"ieeesa-data-table__header-row\"\r\n *matHeaderRowDef=\"displayedColumns; sticky: false\"\r\n ></tr>\r\n <tr\r\n mat-row\r\n class=\"ieeesa-data-table__cell-row\"\r\n *matRowDef=\"let row; columns: displayedColumns\"\r\n ></tr>\r\n </table>\r\n </div>\r\n</div>\r\n<ng-container *ngIf=\"tableActions?.isPaginationNeeded\">\r\n <div\r\n class=\"ieeesa-data-table__pagination d-flex flex-row-reverse\"\r\n [attr.aria-label]=\"constants?.dataTable?.ariaLabel?.pagination\"\r\n >\r\n <mat-paginator\r\n [pageSize]=\"paginatorConfig?.recordsPerPage\"\r\n [pageSizeOptions]=\"paginatorConfig.pageSizeOptions\"\r\n (page)=\"handlePagination($event)\"\r\n [length]=\"paginatorConfig?.totalRecords\"\r\n ></mat-paginator>\r\n </div>\r\n</ng-container>\r\n<p\r\n class=\"ieeesa-data-table__message ieeesa-title-lg-bold-24 text-center p-5\"\r\n *ngIf=\"tableDataInfo && tableDataInfo.length === 0\"\r\n>\r\n {{ noRecordFound }}\r\n</p>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.56em;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25em;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625em;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375em;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375em;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2em;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125em;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875em;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625em;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5em;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125em;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1em;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875em;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875em;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5em;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1em;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1em;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125em;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-data-table{--mdc-checkbox-selected-focus-icon-color: #00629b;--mdc-checkbox-selected-hover-icon-color: #00629b;--mdc-checkbox-selected-icon-color: #00629b;--mdc-checkbox-selected-pressed-icon-color: #00629b;--mdc-checkbox-selected-focus-state-layer-color: #00629b;--mdc-checkbox-selected-hover-state-layer-color: #00629b;--mdc-checkbox-selected-pressed-state-layer-color: #00629b;--mat-option-selected-state-label-text-color: #00629b}.ieeesa-data-table .mat-mdc-header-row{font-family:Calibri Bold;font-weight:700;font-size:1em}.ieeesa-data-table__content{position:relative;overflow:auto;margin-top:.75em;width:100%}.ieeesa-data-table__message{color:#ba0c2f!important}.ieeesa-data-table__mobile-view-actions{margin-left:3.125em}.ieeesa-data-table__actions-right{width:50%}.ieeesa-data-table__cell-content-link{padding:0!important;font-size:1em;color:#00629b!important;text-decoration:underline;white-space:normal;word-wrap:break-word;border:none;background:none;min-width:auto!important}.ieeesa-data-table__actions{padding:.75em 0 .75em .15em;position:relative}.ieeesa-data-table__actions--disabled .ieeesa-icon-button__svg{fill:#c9c5ca!important}.ieeesa-data-table__actions--search-group-icon{height:1.5em;right:0;min-width:auto!important;padding-left:1em;padding-top:.1875em;color:#00629b!important}.ieeesa-data-table__filter{margin-top:-45px}.ieeesa-data-table__search-wrapper{width:-webkit-fill-available;width:-moz-available}.ieeesa-data-table__search-wrapper .ieeesa-search-field__search-icon{color:#00629b}.ieeesa-data-table__search-wrapper .ieeesa-search-field__button{background:none}.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field{width:100%;height:2.25em;border-radius:.1875em;background:linear-gradient(0deg,#00629b0d 0% 100%),#fffbfe;font-size:1em;box-shadow:0 0 4px #00000080 inset}.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mat-mdc-form-field-infix,.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mdc-text-field{padding:.1875em .5em!important}.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__leading,.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__notch,.ieeesa-data-table__search-wrapper .ieeesa-search-field .mat-mdc-form-field .mdc-notched-outline__trailing{border:none}.ieeesa-data-table .ieeesa-icon-button{padding:0 3px}.ieeesa-data-table .ieeesa-icon-button__svg{height:1.5em;width:1.5em;fill:#00629b}.ieeesa-data-table .cell-text{white-space:normal;word-wrap:break-word}.ieeesa-data-table .mat-mdc-table{background:none}.ieeesa-data-table tbody tr:nth-child(odd){background-color:#f7f9ff!important;box-shadow:0 1px #dce3e9 inset}.ieeesa-data-table thead{border-top:1px solid #dce3e9}.ieeesa-data-table__column-select{width:1em;padding:0!important}\n"] }]
340
340
  }], ctorParameters: function () { return [{ type: i1.BreakpointObserverService }]; }, propDecorators: { tableDataInfo: [{
341
341
  type: Input
342
342
  }], columnSchemaInfo: [{
@@ -402,4 +402,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
402
402
  type: ViewChild,
403
403
  args: [MatPaginator]
404
404
  }] } });
405
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFFVCxpQkFBaUIsR0FFbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0UsT0FBTyxFQUNMLFlBQVksRUFDWixrQkFBa0IsR0FFbkIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBaUIsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFz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QVM7c0JBQWpDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIE9uRGVzdHJveSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UsIE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQge1xyXG4gIE1hdFBhZ2luYXRvcixcclxuICBNYXRQYWdpbmF0b3JNb2R1bGUsXHJcbiAgUGFnZUV2ZW50LFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFNvcnQsIE1hdFNvcnRNb2R1bGUsIFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcclxuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyU2VydmljZSB9IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi1idXR0b24vaWNvbi1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuLi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIFRhYmxlQ29sdW1uU2NoZW1hLFxyXG4gIFRhYmxlQ29sdW1uVHlwZSxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGUtc2NoZW1hLm1vZGVsJztcclxuaW1wb3J0IHsgUGFnaW5hdG9yQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BhZ2luYXRvci1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBDaGVja2JveE9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9jaGVja2JveC1vcHRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ljb24tYnV0dG9uLm1vZGVsJztcclxuaW1wb3J0IHsgU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi4vc2VhcmNoL3NlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlQWN0aW9ucyB9IGZyb20gJy4uLy4uL21vZGVscy90YWJsZS1hY3Rpb25zLm1vZGVsJztcclxuaW1wb3J0IHsgQ2hpcE9wdGlvbiwgQ2hpcHNUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NoaXAtb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IFNlYXJjaFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VhcmNoLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBQcm92aWRlcyBhIE1hdGVyaWFsIERlc2lnbiBzdHlsZWQgZGF0YS10YWJsZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGRpc3BsYXkgcm93cyBvZiBkYXRhIHdpdGggc29ydEJ5LCBmaWx0ZXJCeSwgYWRkL2VkaXQvZGVsZXRlIHRhYmxlIHJvdyBkYXRhLCBwYWdpbmF0aW9uLCBzZWFyY2ggdGFibGUgZGF0YS5cclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgRGF0YVRhYmxlQ29tcG9uZW50XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XHJcbiAqIEBpbXBsZW1lbnRzIHtBZnRlclZpZXdJbml0fVxyXG4gKiBAaW1wbGVtZW50cyB7T25EZXN0cm95fVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZWVlc2EtZGF0YS10YWJsZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0U29ydE1vZHVsZSxcclxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxyXG4gICAgTWF0VGFibGVNb2R1bGUsXHJcbiAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIENoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgSWNvbkJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFNlYXJjaENvbXBvbmVudCxcclxuICAgIEZpbHRlckNvbXBvbmVudCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRhLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHByaXZhdGUgdGFibGVEYXRhITogYW55W107XHJcbiAgQElucHV0KClcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHNldCB0YWJsZURhdGFJbmZvKHZhbHVlOiBhbnlbXSkge1xyXG4gICAgdGhpcy50YWJsZURhdGEgPSB2YWx1ZTtcclxuICAgIHRoaXMudGFibGVEYXRhQ2hhbmdlcygpO1xyXG4gIH1cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGdldCB0YWJsZURhdGFJbmZvKCk6IGFueVtdIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlRGF0YTtcclxuICB9XHJcbiAgcHJpdmF0ZSBjb2x1bW5TY2hlbWEhOiBUYWJsZUNvbHVtblNjaGVtYVtdO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGNvbHVtblNjaGVtYUluZm8odmFsdWU6IFRhYmxlQ29sdW1uU2NoZW1hW10pIHtcclxuICAgIHRoaXMuY29sdW1uU2NoZW1hID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCBjb2x1bW5TY2hlbWFJbmZvKCk6IFRhYmxlQ29sdW1uU2NoZW1hW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29sdW1uU2NoZW1hO1xyXG4gIH1cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gY29uc3RhbnRzO1xyXG4gIEBJbnB1dCgpIHRhYmxlQWN0aW9ucyE6IFRhYmxlQWN0aW9ucztcclxuICBASW5wdXQoKSBjYXB0aW9uITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBhZ2luYXRvckNvbmZpZyE6IFBhZ2luYXRvckNvbmZpZztcclxuICBASW5wdXQoKSBzZWFyY2hQbGFjZUhvbGRlclRleHQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcm93RWRpdEJ1dHRvbiE6IEljb25CdXR0b247XHJcbiAgQElucHV0KCkgcm93RGVsZXRlQnV0dG9uITogSWNvbkJ1dHRvbjtcclxuICBASW5wdXQoKSB0YWJsZUVkaXRCdXR0b24hOiBJY29uQnV0dG9uO1xyXG4gIEBJbnB1dCgpIHRhYmxlRGVsZXRlQnV0dG9uITogSWNvbkJ1dHRvbjtcclxuICBASW5wdXQoKSBhZGRCdXR0b24hOiBJY29uQnV0dG9uO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uITogU29ydERpcmVjdGlvbjtcclxuICBASW5wdXQoKSBkZWZhdWx0U29ydGVkQ29sdW1uITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZpbHRlcnMhOiBDaGlwT3B0aW9uW107XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zITogQ2hlY2tib3hPcHRpb25bXTtcclxuICBASW5wdXQoKSBhcHBsaWVkRmlsdGVyT3B0aW9ucyE6IENoaXBPcHRpb25bXTtcclxuICBASW5wdXQoKSBzZWFyY2hUeXBlOiBTZWFyY2hUeXBlID0gU2VhcmNoVHlwZS5PTl9DTElDSztcclxuICBAT3V0cHV0KCkgcm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkUm93VG9FZGl0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZFJvd1RvRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZFJvd3NUb0RlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVDb2x1bW5TY2hlbWFbXT4oKTtcclxuICBAT3V0cHV0KCkgcm93TGluayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYWRkUm93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjb2x1bW5EYXRhT25Sb3dMaW5rQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHBhZ2luYXRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIHBhZ2VPZmZzZXQ6IG51bWJlcjtcclxuICAgIHBhZ2VMaW1pdDogbnVtYmVyO1xyXG4gIH0+KCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkRmlsdGVyID0gbmV3IEV2ZW50RW1pdHRlcjxDaGlwT3B0aW9uPigpO1xyXG4gIEBPdXRwdXQoKSByZW1vdmVGaWx0ZXJlZE9wdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZmlsdGVyZWRPcHRpb25zID0gbmV3IEV2ZW50RW1pdHRlcjxDaGVja2JveE9wdGlvbltdPigpO1xyXG4gIEBPdXRwdXQoKSBzZWFyY2hlZFZhbHVlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgZGlzcGxheWVkQ29sdW1ucyE6IHN0cmluZ1tdO1xyXG4gIGlzTW9iaWxlVmlldyA9IGZhbHNlO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZGF0YVNvdXJjZSE6IE1hdFRhYmxlRGF0YVNvdXJjZTxhbnk+O1xyXG4gIHNlbGVjdGVkUm93cyA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxUYWJsZUNvbHVtblNjaGVtYT4odHJ1ZSwgW10pO1xyXG4gIHBhZ2VMaW1pdCE6IG51bWJlcjtcclxuICBwYWdlT2Zmc2V0ITogbnVtYmVyO1xyXG4gIGNvbHVtblR5cGUgPSBUYWJsZUNvbHVtblR5cGU7XHJcbiAgaXNTZWFyY2hBY3RpdmUgPSBmYWxzZTtcclxuICBjbGVhckFsbCA9IHRoaXMuY29uc3RhbnRzPy5kYXRhVGFibGU/LmxhYmVsPy5jbGVhckFsbDtcclxuICBub1JlY29yZEZvdW5kID0gdGhpcy5jb25zdGFudHM/LmRhdGFUYWJsZT8ubWVzc2FnZT8ubm9SZWNvcmRGb3VuZDtcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0ITogTWF0U29ydDtcclxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcikgcGFnaW5hdG9yITogTWF0UGFnaW5hdG9yO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFycywgbm8tZW1wdHktZnVuY3Rpb25cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlOiBCcmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2VcclxuICAgICAgLmdldEJyZWFrcG9pbnQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNNb2JpbGVWaWV3ID0gcmVzdWx0Lm1hdGNoZXM7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGRhdGEgdGFibGUgY29tcG9uZW50IGFuZCBzZXRzIHRoZSB0YWJsZSBhY3Rpb24gYnV0dG9ucy5cclxuICAgKiBAbWVtYmVyb2YgRGF0YVRhYmxlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmNvbHVtblNjaGVtYT8ubWFwKChjKSA9PiBjPy5jb2x1bW5EZWYpO1xyXG4gICAgY29uc3QgdGFibGVBY3Rpb25CdXR0b25zOiBJY29uQnV0dG9uW10gPSB0aGlzLmNvbnN0YW50cz8uZGF0YVRhYmxlPy5idXR0b25zO1xyXG4gICAgdGhpcy5yb3dFZGl0QnV0dG9uID0gdGhpcy5yb3dFZGl0QnV0dG9uID8/IHRhYmxlQWN0aW9uQnV0dG9uc1szXTtcclxuICAgIHRoaXMucm93RGVsZXRlQnV0dG9uID0gdGhpcy5yb3dEZWxldGVCdXR0b24gPz8gdGFibGVBY3Rpb25CdXR0b25zWzRdO1xyXG4gICAgdGhpcy5hZGRCdXR0b24gPSB0aGlzLmFkZEJ1dHRvbiA/PyB0YWJsZUFjdGlvbkJ1dHRvbnNbMl07XHJcbiAgICB0aGlzLnRhYmxlRWRpdEJ1dHRvbiA9IHRoaXMudGFibGVFZGl0QnV0dG9uID8/IHRhYmxlQWN0aW9uQnV0dG9uc1swXTtcclxuICAgIHRoaXMudGFibGVFZGl0QnV0dG9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgIHRoaXMudGFibGVEZWxldGVCdXR0b24gPSB0aGlzLnRhYmxlRGVsZXRlQnV0dG9uID8/IHRhYmxlQWN0aW9uQnV0dG9uc1sxXTtcclxuICAgIHRoaXMudGFibGVEZWxldGVCdXR0b24uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWxlY3RlZFJvd3MuY2hhbmdlZFxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHRoaXMudGFibGVFZGl0QnV0dG9uLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50YWJsZURlbGV0ZUJ1dHRvbi5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChyZXN1bHQ/LnNvdXJjZT8uc2VsZWN0ZWQ/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgdGhpcy50YWJsZUVkaXRCdXR0b24uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy50YWJsZURlbGV0ZUJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQ/LnNvdXJjZT8uc2VsZWN0ZWQ/Lmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgIHRoaXMudGFibGVEZWxldGVCdXR0b24uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudGFibGVFZGl0QnV0dG9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSh0aGlzLnRhYmxlRGF0YSk7XHJcbiAgICB0aGlzLnRhYmxlRGF0YUNoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemVzIHRoZSBzb3J0IGZlYXR1cmUgb2YgZGF0YVNvdXJjZVxyXG4gICAqIEBtZW1iZXJvZiBEYXRhVGFibGVDb21wb25lbnRcclxuICAgKi9cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcclxuICAgIHRoaXMuc29ydC5kaXNhYmxlQ2xlYXIgPSB0cnVlO1xyXG4gICAgdGhpcy5kYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZGF0YVNvdXJjZSB3aGVuZXZlciB0aGUgdGFibGUgZGF0YSBjaGFuZ2VzLlxyXG4gICAqIEBtZW1iZXJvZiBEYXRhVGFibGVDb21wb25lbnRcclxuICAgKi9cclxuICB0YWJsZURhdGFDaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZSkge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMudGFibGVEYXRhO1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcclxuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuY2xlYXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uU2VsZWN0Q2xpY2sgbWV0aG9kIGVtaXRzIHRoZSByb3dTZWxlY3RlZCBldmVudCB3aXRoIHNlbGVjdGVkIHJvdyBkYXRhLlxyXG4gICAqIEBwYXJhbSB7Kn0gcm93XHJcbiAgICogQHBhcmFtIHtib29sZWFufSBjaGVja2VkXHJcbiAgICogQG1lbWJlcm9mIERhdGFUYWJsZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgb25TZWxlY3RDbGljayhyb3c6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZFJvd3MudG9nZ2xlKHJvdyk7XHJcbiAgICByb3cuY2hlY2tlZCA9ICFyb3cuY2hlY2tlZDtcclxuICAgIHRoaXMucm93U2VsZWN0ZWQuZW1pdChyb3cpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT25FZGl0Q2xpY2sgbWV0aG9kIGVtaXRzIHRoZSBzZWxlY3RlZFJvd1RvRWRpdCBldmVudCB3aXRoIHRoZSBzZWxlY3RlZCByb3cgZGF0YS5cclxuICAgKiBAcGFyYW0geyp9IHJvd1xyXG4gICAqIEBtZW1iZXJvZiBEYXRhVGFibGVDb21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIG9uRWRpdENsaWNrKHJvdzogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUm93VG9FZGl0LmVtaXQocm93KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uRGVsZXRlQ2xpY2sgbWV0aG9kIGVtaXRzIHRoZSBzZWxlY3RlZFJvd1RvRGVsZXRlIGV2ZW50IHdpdGggdGhlIHNlbGVjdGVkIHJvdyBkYXRhLlxyXG4gICAqIEBwYXJhbSB7Kn0gcm93XHJcbiAgICogQG1lbWJlcm9mIERhdGFUYWJsZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgb25EZWxldGVDbGljayhyb3c6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZFJvd1RvRGVsZXRlLmVtaXQocm93KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqT25MaW5rQ2xpY2sgbWV0aG9kIGVtaXRzIHRoZSBldmVudCB3aXRoIHJvdyBhbmQgY29sdW1uLlxyXG4gICAqIEBwYXJhbSB7Kn0gcm93XHJcbiAgICogQHBhcmFtIHtUYWJsZUNvbHVtblNjaGVtYX0gW2NvbHVtbl1cclxuICAgKiBAbWVtYmVyb2YgRGF0YVRhYmxlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBvbkxpbmtDbGljayhyb3c6IGFueSwgY29sdW1uPzogVGFibGVDb2x1bW5TY2hlbWEpOiB2b2lkIHtcclxuICAgIHRoaXMucm93TGluay5lbWl0KHJvdyk7XHJcbiAgICB0aGlzLmNvbHVtbkRhdGFPblJvd0xpbmtDbGljay5lbWl0KHsgcm93LCBjb2x1bW4gfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPblRhYmxlRWRpdENsaWNrIG1ldGhvZCBlbWl0cyBldmVudCB3aXRoIHNlbGVjdGVkIHJvd3MgZGF0YSB3aGVuIGVkaXQgYnV0dG9uIGNsaWNrZWQuXHJcbiAgICogQG1lbWJlcm9mIERhdGFUYWJsZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uVGFibGVFZGl0Q2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUm93VG9FZGl0LmVtaXQodGhpcy5zZWxlY3RlZFJvd3Muc2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT25EZWxldGVUYWJsZUNsaWNrIG1ldGhvZCBlbWl0cyBldmVudCB3aXRoIHNlbGVjdGVkIHJvdyBkYXRhIHdoZW4gZGVsZXRlIGJ1dHRvbiBjbGlja2VkLlxyXG4gICAqIEBtZW1iZXJvZiBEYXRhVGFibGVDb21wb25lbnRcclxuICAgKi9cclxuICBvbkRlbGV0ZVRhYmxlQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUm93c1RvRGVsZXRlLmVtaXQodGhpcy5zZWxlY3RlZFJvd3Muc2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT25BZGRDbGljayBtZXRob2QgZW1pdHMgdGhlIGFkZCBldmVudCB3aGVuIGFkZCBidXR0b24gY2xpY2tlZC5cclxuICAgKiBAbWVtYmVyb2YgRGF0YVRhYmxlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25BZGRDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkUm93LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uVGFibGVTZWFyY2hDbGljayBtZXRob2QgdG9nZ2xlcyB0aGUgaXNTZWFyY2hBY3RpdmUgc3RhdGUgd2hlbiB0aGUgc2VhcmNoIGljb24gaXMgY2xpY2tlZCBmb3IgdGhlIG1vYmlsZSB2aWV3LlxyXG4gICAqIEBtZW1iZXJvZiBEYXRhVGFibGVDb21wb25lbnRcclxuICAgKi9cclxuICBvblRhYmxlU2VhcmNoQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzU2VhcmNoQWN0aXZlID0gIXRoaXMuaXNTZWFyY2hBY3RpdmU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWxlY3RlZEZpbHRlckluZm8gbWV0aG9kIGVtaXRzIHRoZSBzZWxlY3RlZEZpbHRlciBldmVudCB3aXRoIHNlbGVjdGVkIGZpbHRlciBpbmZvcm1hdGlvbi5cclxuICAgKiBAcGFyYW0ge0NoaXBPcHRpb259IG9wdGlvblxyXG4gICAqIEBtZW1iZXJvZiBEYXRhVGFibGVDb21wb25lbnRcclxuICAgKi9cclxuICBzZWxlY3RlZEZpbHRlclR5cGVJbmZvKG9wdGlvbjogQ2hpcE9wdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlci5lbWl0KG9wdGlvbik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPblNlbGVjdGVkRmlsdGVyT3B0aW9ucyBtZXRob2QgZW1pdHMgdGhlIGZpbHRlcmVkT3B0aW9ucyBldmVudCB3aXRoIHRoZSBzZWxlY3RlZCBvcHRpb25zIGFuZCBhZGRzIFwiQ2xlYXIgYWxsXCIgb3B0aW9uIHRvIGNsZWFyIHRoZSBhbGwgc2VsZWN0aW9ucy5cclxuICAgKiBAcGFyYW0ge0NoZWNrYm94T3B0aW9uW119IG9wdGlvbnNcclxuICAgKiBAbWVtYmVyb2YgRGF0YVRhYmxlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25TZWxlY3RlZEZpbHRlck9wdGlvbnMob3B0aW9uczogQ2hlY2tib3hPcHRpb25bXSk6IHZvaWQge1xyXG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMuZW1pdChvcHRpb25zKTtcclxuICAgIHRoaXMuYXBwbGllZEZpbHRlck9wdGlvbnMgPSBbXTtcclxuICAgIG9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiB7XHJcbiAgICAgIGlmIChvcHRpb24uY2hlY2tlZCkge1xyXG4gICAgICAgIHRoaXMuYXBwbGllZEZpbHRlck9wdGlvbnMucHVzaCh7XHJcbiAgICAgICAgICBpZDogb3B0aW9uLmlkLFxyXG4gICAgICAgICAgbmFtZTogb3B0aW9uLm5hbWUgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgY2hlY2tlZDogb3B0aW9uLmNoZWNrZWQsXHJcbiAgICAgICAgICBkaXNhYmxlZDogb3B0aW9uLmRpc2FibGVkLFxyXG4gICAgICAgICAgY2hpcFR5cGU6IENoaXBzVHlwZS5UT0dHTEUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5hcHBsaWVkRmlsdGVyT3B0aW9ucy5wdXNoKHtcclxuICAgICAgaWQ6IHRoaXMuY2xlYXJBbGwsXHJcbiAgICAgIG5hbWU6IHRoaXMuY2xlYXJBbGwsXHJcbiAgICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIGNoaXBUeXBlOiBDaGlwc1R5cGUuU1RBVElDLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE9uUmVtb3ZhbE9mRmlsdGVyZWRPcHRpb24gbWV0aG9kIGVtaXRzIHRoZSByZW1vdmVGaWx0ZXJlZE9wdGlvbiBldmVudCB3aXRoIHJlbW92ZWQgb3B0aW9uLlxyXG4gICAqIFNldHMgdGhlIG5ldyBhcHBsaWVkRmlsdGVyT3B0aW9ucyB3aXRob3V0IHJlbW92ZWQgb3B0aW9uLlxyXG4gICAqIEBwYXJhbSB7Q2hpcE9wdGlvbn0gb3B0aW9uXHJcbiAgICogQG1lbWJlcm9mIERhdGFUYWJsZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uUmVtb3ZhbE9mRmlsdGVyZWRPcHRpb24ob3B0aW9uOiBDaGlwT3B0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAob3B0aW9uPy5uYW1lID09PSB0aGlzLmNsZWFyQWxsKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlRmlsdGVyZWRPcHRpb24uZW1pdChbXSk7XHJcbiAgICAgIHRoaXMuYXBwbGllZEZpbHRlck9wdGlvbnMgPSBbXTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlck9wdGlvbnM/LmZvckVhY2goKG9wdGlvbikgPT4gKG9wdGlvbi5jaGVja2VkID0gZmFsc2UpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYXBwbGllZEZpbHRlck9wdGlvbnMgPSB0aGlzLmFwcGxpZWRGaWx0ZXJPcHRpb25zLmZpbHRlcihcclxuICAgICAgICAocmVzOiBDaGlwT3B0aW9uKSA9PiByZXMuaWQgIT09IG9wdGlvbi5pZFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmFwcGxpZWRGaWx0ZXJPcHRpb25zID1cclxuICAgICAgICB0aGlzLmFwcGxpZWRGaWx0ZXJPcHRpb25zLmxlbmd0aCA9PT0gMSA/IFtdIDogdGhpcy5hcHBsaWVkRmlsdGVyT3B0aW9ucztcclxuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlck9wdGlvbnM/LmZvckVhY2goKHNlbGVjdGVkT3B0aW9uKSA9PiB7XHJcbiAgICAgICAgaWYgKG9wdGlvbi5pZCA9PT0gc2VsZWN0ZWRPcHRpb24uaWQpIHtcclxuICAgICAgICAgIHNlbGVjdGVkT3B0aW9uLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnJlbW92ZUZpbHRlcmVkT3B0aW9uLmVtaXQoXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlck9wdGlvbnM/LmZpbHRlcihcclxuICAgICAgICAgIChyZXM6IENoZWNrYm94T3B0aW9uKSA9PiByZXM/LmNoZWNrZWRcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWFyY2hWYWx1ZSBtZXRob2QgZW1pdHMgdGhlIHNlYXJjaGVkIHZhbHVlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxyXG4gICAqIEBtZW1iZXJvZiBEYXRhVGFibGVDb21wb25lbnRcclxuICAgKi9cclxuICBzZWFyY2hWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaGVkVmFsdWUuZW1pdCh2YWx1ZSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgdGhlIHBhZ2luYXRpb24gZm9yIGV2ZXJ5IHBhZ2UuXHJcbiAgICogQHBhcmFtIHtQYWdlRXZlbnR9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIERhdGFUYWJsZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGhhbmRsZVBhZ2luYXRpb24oZXZlbnQ6IFBhZ2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5wYWdpbmF0aW9uQ2hhbmdlLmVtaXQoe1xyXG4gICAgICBwYWdlT2Zmc2V0OiBldmVudC5wYWdlSW5kZXggKiBldmVudC5wYWdlU2l6ZSxcclxuICAgICAgcGFnZUxpbWl0OiBldmVudC5wYWdlU2l6ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBJc0FsbFJvd1NlbGVjdGVkIG1ldGhvZCByZXR1cm5zIHRoZSBib29sZWFuIHZhbHVlIGJ5IGNoZWNraW5nIHNlbGVjdGVkUm93cyBhbmQgdG90YWxSb3dzIGxlbmd0aC5cclxuICAgKiBAcmV0dXJuIHsqfSAge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIERhdGFUYWJsZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGlzQWxsUm93c1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRSb3dzLnNlbGVjdGVkLmxlbmd0aCA9PT0gdGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVG9nZ2xlQWxsUm93c1NlbGVjdGlvbiBtZXRob2QgY2xlYXJzIHNlbGVjdGVkUm93cyB3aGVuIGFsbCByb3dzIGFyZSBzZWxlY3RlZCBlbHNlIHNlbGVjdHMgdGhlIGFsbCByb3dzLlxyXG4gICAqIEByZXR1cm4geyp9ICB7dm9pZH1cclxuICAgKiBAbWVtYmVyb2YgRGF0YVRhYmxlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdG9nZ2xlQWxsUm93c1NlbGVjdGlvbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzQWxsUm93c1NlbGVjdGVkKCkpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuY2xlYXIoKTtcclxuICAgIH0gZWxzZSB0aGlzLnNlbGVjdGVkUm93cy5zZWxlY3QoLi4udGhpcy5kYXRhU291cmNlLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWxsb3dzIEFuZ3VsYXIgdG8gZGV0ZWN0IHRoZSBzcGVjaWZpYyB0YWJsZSByb3cgdGhhdCBuZWVkcyB0byBjaGFuZ2Ugb3IgYmUgYWRkZWQgYnkgdHJhY2tpbmcgcm93IHVuaXF1ZSBJZC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcclxuICAgKiBAcGFyYW0ge1RhYmxlQ29sdW1uU2NoZW1hfSBjb2x1bW5cclxuICAgKiBAcmV0dXJuIHsqfSAge251bWJlcn1cclxuICAgKiBAbWVtYmVyb2YgRGF0YVRhYmxlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdHJhY2tCeUlkKGluZGV4OiBudW1iZXIsIGNvbHVtbjogVGFibGVDb2x1bW5TY2hlbWEpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIGNvbHVtbi5pZDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTmdPbkRlc3Ryb3kgcGVyZm9ybXMgbmVjZXNzYXJ5IGNsZWFudXAgdGFza3MsIHN1Y2ggYXMgdW5zdWJzY3JpYmluZyBmcm9tIHN1YnNjcmlwdGlvbiB3aGVuIHRoZSBjb21wb25lbnQgaXMgYmVpbmcgZGVzdHJveWVkLlxyXG4gICAqIEBtZW1iZXJvZiBEYXRhVGFibGVDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImllZWVzYS1kYXRhLXRhYmxlIGQtZmxleCBmbGV4LWNvbHVtbiBjb250YWluZXItZmx1aWRcIj5cclxuICA8Y2FwdGlvbiBjbGFzcz1cImllZWVzYS1kYXRhLXRhYmxlLS1jYXB0aW9uXCIgKm5nSWY9XCJjYXB0aW9uXCI+XHJcbiAgICB7e1xyXG4gICAgICBjYXB0aW9uXHJcbiAgICB9fVxyXG4gIDwvY2FwdGlvbj5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cInRhYmxlQWN0aW9uc1wiXHJcbiAgICBjbGFzcz1cImllZWVzYS1kYXRhLXRhYmxlX19hY3Rpb25zIGQtZmxleCByb3cganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtbGctYmFzZWxpbmUgcC1zbS0wXCJcclxuICAgIFtuZ0NsYXNzXT1cImlzTW9iaWxlVmlldyA/ICdpZWVlc2EtZGF0YS10YWJsZV9fbW9iaWxlLXZpZXctYWN0aW9ucycgOiAnJ1wiXHJcbiAgPlxyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAqbmdJZj1cIiFpc01vYmlsZVZpZXdcIlxyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWx0ZXJUZW1wbGF0ZVJlZlwiXHJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGRhdGE6ICdjb2wtbWQtNyBjb2wtbGctNicgfVwiXHJcbiAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtbGctNCBnYXAtbWQtMiBnYXAtc20tMSBjb2wtbWQtNSBjb2wtbGctNiBqdXN0aWZ5LWNvbnRlbnQtZW5kXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc01vYmlsZVZpZXdcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWVlZXNhU2VhcmNoXCI+IDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPGllZWVzYS1pY29uLWJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwidGFibGVBY3Rpb25zPy5pc0FkZE5lZWRlZFwiXHJcbiAgICAgICAgW2ljb25CdXR0b25dPVwiYWRkQnV0dG9uXCJcclxuICAgICAgICAoaWNvbkJ1dHRvbkNsaWNrKT1cIm9uQWRkQ2xpY2soKVwiXHJcbiAgICAgID48L2llZWVzYS1pY29uLWJ1dHRvbj5cclxuICAgICAgPGllZWVzYS1pY29uLWJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwidGFibGVBY3Rpb25zPy5pc0VkaXROZWVkZWRcIlxyXG4gICAgICAgIFtpY29uQnV0dG9uXT1cInRhYmxlRWRpdEJ1dHRvblwiXHJcbiAgICAgICAgKGljb25CdXR0b25DbGljayk9XCJvblRhYmxlRWRpdENsaWNrKClcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgc2VsZWN0ZWRSb3dzLnNlbGVjdGVkLmxlbmd0aCAhPT0gMVxyXG4gICAgICAgICAgICA/ICdpZWVlc2EtZGF0YS10YWJsZV9fYWN0aW9ucy0tZGlzYWJsZWQnXHJcbiAgICAgICAgICAgIDogJydcclxuICAgICAgICBcIlxyXG4gICAgICA+PC9pZWVlc2EtaWNvbi1idXR0b24+XHJcbiAgICAgIDxpZWVlc2EtaWNvbi1idXR0b25cclxuICAgICAgICAqbmdJZj1cInRhYmxlQWN0aW9ucz8uaXNEZWxldGVOZWVkZWRcIlxyXG4gICAgICAgIFtpY29uQnV0dG9uXT1cInRhYmxlRGVsZXRlQnV0dG9uXCJcclxuICAgICAgICAoaWNvbkJ1dHRvbkNsaWNrKT1cIm9uRGVsZXRlVGFibGVDbGljaygpXCJcclxuICAgICAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgc2VsZWN0ZWRSb3dzLnNlbGVjdGVkLmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgICA/ICdpZWVlc2EtZGF0YS10YWJsZV9fYWN0aW9ucy0tZGlzYWJsZWQnXHJcbiAgICAgICAgICAgIDogJydcclxuICAgICAgICBcIlxyXG4gICAgICA+PC9pZWVlc2EtaWNvbi1idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJ0YWJsZUFjdGlvbnM/LmlzU2VhcmNoTmVlZGVkXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNvbnN0YW50cz8uZGF0YVRhYmxlPy5hcmlhTGFiZWw/LnNlYXJjaFwiXHJcbiAgICAgICAgY2xhc3M9XCJkLWZsZXggZC1zbS1mbGV4IGQtbWQtbm9uZSBkLWxnLW5vbmUgZC14bC1ub25lIGllZWVzYS1kYXRhLXRhYmxlX19hY3Rpb25zLS1zZWFyY2gtZ3JvdXAtaWNvblwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uVGFibGVTZWFyY2hDbGljaygpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtbWFnbmlmeWluZy1nbGFzc1wiPjwvaT5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8bmctY29udGFpbmVyXHJcbiAgICAqbmdJZj1cImlzTW9iaWxlVmlld1wiXHJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWx0ZXJUZW1wbGF0ZVJlZlwiXHJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBkYXRhOiAnaWVlZXNhLWRhdGEtdGFibGVfX2ZpbHRlcicgfVwiXHJcbiAgPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy10ZW1wbGF0ZSAjZmlsdGVyVGVtcGxhdGVSZWYgbGV0LWNsYXNzTmFtZT1cImRhdGFcIj5cclxuICAgIDxpZWVlc2EtZmlsdGVyXHJcbiAgICAgIGNsYXNzPVwie3sgY2xhc3NOYW1lIH19IHAtMFwiXHJcbiAgICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxyXG4gICAgICAqbmdJZj1cInRhYmxlQWN0aW9ucz8uaXNGaWx0ZXJOZWVkZWRcIlxyXG4gICAgICBbc2VsZWN0ZWRGaWx0ZXJPcHRpb25zXT1cInNlbGVjdGVkRmlsdGVyT3B0aW9uc1wiXHJcbiAgICAgIFthcHBsaWVkRmlsdGVyT3B0aW9uc109XCJhcHBsaWVkRmlsdGVyT3B0aW9uc1wiXHJcbiAgICAgIChzZWxlY3RlZEZpbHRlcik9XCJzZWxlY3RlZEZpbHRlclR5cGVJbmZvKCRldmVudClcIlxyXG4gICAgICAocmVtb3ZlRmlsdGVyZWRPcHRpb24pPVwib25SZW1vdmFsT2ZGaWx0ZXJlZE9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgKGZpbHRlcmVkT3B0aW9ucyk9XCJvblNlbGVjdGVkRmlsdGVyT3B0aW9ucygkZXZlbnQpXCJcclxuICAgID48L2llZWVzYS1maWx0ZXI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNNb2JpbGVWaWV3ICYmIGlzU2VhcmNoQWN0aXZlXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWVlZXNhU2VhcmNoXCI+IDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy10ZW1wbGF0ZSAjaWVlZXNhU2VhcmNoPlxyXG4gICAgPGllZWVzYS1zZWFyY2hcclxuICAgICAgW3BsYWNlaG9sZGVyTGFiZWxdPVwic2VhcmNoUGxhY2VIb2xkZXJUZXh0XCJcclxuICAgICAgW3NlYXJjaFR5cGVdPVwic2VhcmNoVHlwZVwiXHJcbiAgICAgIChzZWFyY2hWYWx1ZSk9XCJzZWFyY2hWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgKm5nSWY9XCJ0YWJsZUFjdGlvbnM/LmlzU2VhcmNoTmVlZGVkXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtZGF0YS10YWJsZV9fc2VhcmNoLXdyYXBwZXIgbXQtc20tMiBtZC1zbS0yXCJcclxuICAgID48L2llZWVzYS1zZWFyY2g+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwiaWVlZXNhLWRhdGEtdGFibGVfX2NvbnRlbnRcIiBbbmdDbGFzc109XCJ0YWJsZURhdGFJbmZvICYmIHRhYmxlRGF0YUluZm8ubGVuZ3RoID09PSAwID8gJ2llZWVzYS1kYXRhLXRhYmxlX19uby10YWJsZS1kYXRhJzogJydcIj5cclxuICAgIDx0YWJsZVxyXG4gICAgICBtYXQtdGFibGVcclxuICAgICAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiXHJcbiAgICAgIG1hdFNvcnRcclxuICAgICAgW21hdFNvcnRBY3RpdmVdPVwiZGVmYXVsdFNvcnRlZENvbHVtblwiXHJcbiAgICAgIFttYXRTb3J0RGlyZWN0aW9uXT1cImRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uXCJcclxuICAgICAgW3RyYWNrQnldPVwidHJhY2tCeUlkXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgbGV0IGNvbHVtbiBvZiBjb2x1bW5TY2hlbWFJbmZvO1xyXG4gICAgICAgICAgdHJhY2tCeTogdHJhY2tCeUlkO1xyXG4gICAgICAgICAgbGV0IGlkID0gaW5kZXhcclxuICAgICAgICBcIlxyXG4gICAgICAgIG1hdENvbHVtbkRlZj1cInt7IGNvbHVtbj8uY29sdW1uRGVmIH19XCJcclxuICAgICAgICBbc3RpY2t5XT1cImNvbHVtbj8uaXNTdGlja3lDb2x1bW5cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHRoXHJcbiAgICAgICAgICBtYXQtaGVhZGVyLWNlbGxcclxuICAgICAgICAgIG1hdC1zb3J0LWhlYWRlclxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFjb2x1bW4/LmlzU29ydGFibGVDb2x1bW5cIlxyXG4gICAgICAgICAgW25nU3dpdGNoXT1cImNvbHVtbj8uY29sdW1uRGVmXCJcclxuICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWRhdGEtdGFibGUtaGVhZGVyIGllZWVzYS1ib2R5LXNtLWJvbGQtMTRcIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgIGNvbHVtbj8uY29sdW1uRGVmID09PSBjb2x1bW5UeXBlPy5TRUxFQ1RcclxuICAgICAgICAgICAgICA/ICdpZWVlc2EtZGF0YS10YWJsZV9fY29sdW1uLXNlbGVjdCdcclxuICAgICAgICAgICAgICA6ICcnXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgKm1hdEhlYWRlckNlbGxEZWZcclxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29sdW1uPy5oZWFkaW5nXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5UeXBlPy5TRUxFQ1RcIj5cclxuICAgICAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gdG9nZ2xlQWxsUm93c1NlbGVjdGlvbigpIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRSb3dzPy5oYXNWYWx1ZSgpICYmIGlzQWxsUm93c1NlbGVjdGVkKClcIlxyXG4gICAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cInNlbGVjdGVkUm93cz8uaGFzVmFsdWUoKSAmJiAhaXNBbGxSb3dzU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiY29uc3RhbnRzPy5kYXRhVGFibGU/LmFyaWFMYWJlbD8uc2VsZWN0QWxsXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBjb2x1bW4uaGVhZGluZyB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvdGg+XHJcbiAgICAgICAgPHRkXHJcbiAgICAgICAgICBtYXQtY2VsbFxyXG4gICAgICAgICAgW25nU3dpdGNoXT1cImNvbHVtbj8uY29sdW1uVHlwZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImllZWVzYS1kYXRhLXRhYmxlX19jZWxsLWNvbnRlbnQgaWVlZXNhLXRpdGxlLXNtLTE2XCJcclxuICAgICAgICAgICptYXRDZWxsRGVmPVwibGV0IHJvd1wiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgY29sdW1uPy5jb2x1bW5EZWYgPT09IGNvbHVtblR5cGU/LlNFTEVDVFxyXG4gICAgICAgICAgICAgID8gJ2llZWVzYS1kYXRhLXRhYmxlX19jb2x1bW4tc2VsZWN0J1xyXG4gICAgICAgICAgICAgIDogJydcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgICB7eyBjb2x1bW4/LmNlbGxEYXRhKHJvdykgfX1cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uVHlwZT8uTElOS1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkxpbmtDbGljayhyb3csIGNvbHVtbilcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLXRpdGxlLXNtLTE2IGllZWVzYS1kYXRhLXRhYmxlX19jZWxsLWNvbnRlbnQtbGlua1wiXHJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb25zdGFudHM/LmRhdGFUYWJsZT8uYXJpYUxhYmVsPy5saW5rXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7IGNvbHVtbj8uY2VsbERhdGEocm93KSB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uVHlwZT8uU0VMRUNUXCI+XHJcbiAgICAgICAgICAgIDxtYXQtY2hlY2tib3hcclxuICAgICAgICAgICAgICBjbGFzcz1cImNvbC0yXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgICAoY2hhbmdlKT1cIiRldmVudCA/IG9uU2VsZWN0Q2xpY2socm93KSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkUm93cy5pc1NlbGVjdGVkKHJvdylcIlxyXG4gICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cImNvbnN0YW50cz8uZGF0YVRhYmxlPy5hcmlhTGFiZWw/LnNlbGVjdFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNvbHVtblR5cGU/LkVESVRcIj5cclxuICAgICAgICAgICAgPGllZWVzYS1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgIFtpY29uQnV0dG9uXT1cInJvd0VkaXRCdXR0b25cIlxyXG4gICAgICAgICAgICAgIChpY29uQnV0dG9uQ2xpY2spPVwib25FZGl0Q2xpY2socm93KVwiXHJcbiAgICAgICAgICAgID48L2llZWVzYS1pY29uLWJ1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uVHlwZT8uREVMRVRFXCI+XHJcbiAgICAgICAgICAgIDxpZWVlc2EtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICBbaWNvbkJ1dHRvbl09XCJyb3dEZWxldGVCdXR0b25cIlxyXG4gICAgICAgICAgICAgIChpY29uQnV0dG9uQ2xpY2spPVwib25EZWxldGVDbGljayhyb3cpXCJcclxuICAgICAgICAgICAgPjwvaWVlZXNhLWljb24tYnV0dG9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDx0clxyXG4gICAgICAgIG1hdC1oZWFkZXItcm93XHJcbiAgICAgICAgY2xhc3M9XCJpZWVlc2EtZGF0YS10YWJsZV9faGVhZGVyLXJvd1wiXHJcbiAgICAgICAgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnM7IHN0aWNreTogZmFsc2VcIlxyXG4gICAgICA+PC90cj5cclxuICAgICAgPHRyXHJcbiAgICAgICAgbWF0LXJvd1xyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWRhdGEtdGFibGVfX2NlbGwtcm93XCJcclxuICAgICAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1uc1wiXHJcbiAgICAgID48L3RyPlxyXG4gICAgPC90YWJsZT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJsZUFjdGlvbnM/LmlzUGFnaW5hdGlvbk5lZWRlZFwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWVlZXNhLWRhdGEtdGFibGVfX3BhZ2luYXRpb24gZC1mbGV4IGZsZXgtcm93LXJldmVyc2VcIlxyXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb25zdGFudHM/LmRhdGFUYWJsZT8uYXJpYUxhYmVsPy5wYWdpbmF0aW9uXCJcclxuICA+XHJcbiAgICA8bWF0LXBhZ2luYXRvclxyXG4gICAgICBbcGFnZVNpemVdPVwicGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZVwiXHJcbiAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwicGFnaW5hdG9yQ29uZmlnLnBhZ2VTaXplT3B0aW9uc1wiXHJcbiAgICAgIChwYWdlKT1cImhhbmRsZVBhZ2luYXRpb24oJGV2ZW50KVwiXHJcbiAgICAgIFtsZW5ndGhdPVwicGFnaW5hdG9yQ29uZmlnPy50b3RhbFJlY29yZHNcIlxyXG4gICAgPjwvbWF0LXBhZ2luYXRvcj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxwXHJcbiAgY2xhc3M9XCJpZWVlc2EtZGF0YS10YWJsZV9fbWVzc2FnZSBpZWVlc2EtdGl0bGUtbGctYm9sZC0yNCB0ZXh0LWNlbnRlciBwLTVcIlxyXG4gICpuZ0lmPVwidGFibGVEYXRhSW5mbyAmJiB0YWJsZURhdGFJbmZvLmxlbmd0aCA9PT0gMFwiXHJcbj5cclxuICB7eyBub1JlY29yZEZvdW5kIH19XHJcbjwvcD5cclxuIl19
405
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdGFibGUvZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFFVCxpQkFBaUIsR0FFbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0UsT0FBTyxFQUNMLFlBQVksRUFDWixrQkFBa0IsR0FFbkIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBaUIsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFz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QVM7c0JBQWpDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIE9uRGVzdHJveSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UsIE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQge1xyXG4gIE1hdFBhZ2luYXRvcixcclxuICBNYXRQYWdpbmF0b3JNb2R1bGUsXHJcbiAgUGFnZUV2ZW50LFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFNvcnQsIE1hdFNvcnRNb2R1bGUsIFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcclxuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyU2VydmljZSB9IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi1idXR0b24vaWNvbi1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuLi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIFRhYmxlQ29sdW1uU2NoZW1hLFxyXG4gIFRhYmxlQ29sdW1uVHlwZSxcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGUtc2NoZW1hLm1vZGVsJztcclxuaW1wb3J0IHsgUGFnaW5hdG9yQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BhZ2luYXRvci1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBDaGVja2JveE9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9jaGVja2JveC1vcHRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ljb24tYnV0dG9uLm1vZGVsJztcclxuaW1wb3J0IHsgU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnLi4vc2VhcmNoL3NlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlQWN0aW9ucyB9IGZyb20gJy4uLy4uL21vZGVscy90YWJsZS1hY3Rpb25zLm1vZGVsJztcclxuaW1wb3J0IHsgQ2hpcE9wdGlvbiwgQ2hpcHNUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NoaXAtb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IFNlYXJjaFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VhcmNoLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBQcm92aWRlcyBhIE1hdGVyaWFsIERlc2lnbiBzdHlsZWQgZGF0YS10YWJsZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGRpc3BsYXkgcm93cyBvZiBkYXRhIHdpdGggc29ydEJ5LCBmaWx0ZXJCeSwgYWRkL2VkaXQvZGVsZXRlIHRhYmxlIHJvdyBkYXRhLCBwYWdpbmF0aW9uLCBzZWFyY2ggdGFibGUgZGF0YS5cclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgRGF0YVRhYmxlQ29tcG9uZW50XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XHJcbiAqIEBpbXBsZW1lbnRzIHtBZnRlclZpZXdJbml0fVxyXG4gKiBAaW1wbGVtZW50cyB7T25EZXN0cm95fVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZWVlc2EtZGF0YS10YWJsZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0U29ydE1vZHVsZSxcclxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxyXG4gICAgTWF0VGFibGVNb2R1bGUsXHJcbiAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIENoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgSWNvbkJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFNlYXJjaENvbXBvbmVudCxcclxuICAgIEZpbHRlckNvbXBvbmVudCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRhLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHByaXZhdGUgdGFibGVEYXRhITogYW55W107XHJcbiAgQElucHV0KClcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHNldCB0YWJsZURhdGFJbmZvKHZhbHVlOiBhbnlbXSkge1xyXG4gICAgdGhpcy50YWJsZURhdGEgPSB2YWx1ZTtcclxuICAgIHRoaXMudGFibGVEYXRhQ2hhbmdlcygpO1xyXG4gIH1cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGdldCB0YWJsZURhdGFJbmZvKCk6IGFueVtdIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlRGF0YTtcclxuICB9XHJcbiAgcHJpdmF0ZSBjb2x1bW5TY2hlbWEhOiBUYWJsZUNvbHVtblNjaGVtYVtdO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGNvbHVtblNjaGVtYUluZm8odmFsdWU6IFRhYmxlQ29sdW1uU2NoZW1hW10pIHtcclxuICAgIHRoaXMuY29sdW1uU2NoZW1hID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCBjb2x1bW5TY2hlbWFJbmZvKCk6IFRhYmxlQ29sdW1uU2NoZW1hW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29sdW1uU2NoZW1hO1xyXG4gIH1cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gY29uc3RhbnRzO1xyXG4gIEBJbnB1dCgpIHRhYmxlQWN0aW9ucyE6IFRhYmxlQWN0aW9ucztcclxuICBASW5wdXQoKSBjYXB0aW9uITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBhZ2luYXRvckNvbmZpZyE6IFBhZ2luYXRvckNvbmZpZztcclxuICBASW5wdXQoKSBzZWFyY2hQbGFjZUhvbGRlclRleHQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcm93RWRpdEJ1dHRvbiE6IEljb25CdXR0b247XHJcbiAgQElucHV0KCkgcm93RGVsZXRlQnV0dG9uITogSWNvbkJ1dHRvbjtcclxuICBASW5wdXQoKSB0YWJsZUVkaXRCdXR0b24hOiBJY29uQnV0dG9uO1xyXG4gIEBJbnB1dCgpIHRhYmxlRGVsZXRlQnV0dG9uITogSWNvbkJ1dHRvbjtcclxuICBASW5wdXQoKSBhZGRCdXR0b24hOiBJY29uQnV0dG9uO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uITogU29ydERpcmVjdGlvbjtcclxuICBASW5wdXQoKSBkZWZhdWx0U29ydGVkQ29sdW1uITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZpbHRlcnMhOiBDaGlwT3B0aW9uW107XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRGaWx0ZXJPcHRpb25zITogQ2hlY2tib3hPcHRpb25bXTtcclxuICBASW5wdXQoKSBhcHBsaWVkRmlsdGVyT3B0aW9ucyE6IENoaXBPcHRpb25bXTtcclxuICBASW5wdXQoKSBzZWFyY2hUeXBlOiBTZWFyY2hUeXBlID0gU2VhcmNoVHlwZS5PTl9DTElDSztcclxuICBAT3V0cHV0KCkgcm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkUm93VG9FZGl0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZFJvd1RvRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZFJvd3NUb0RlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVDb2x1bW5TY2hlbWFbXT4oKTtcclxuICBAT3V0cHV0KCkgcm93TGluayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYWRkUm93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjb2x1bW5EYXRhT25Sb3dMaW5rQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHBhZ2luYXRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIHBhZ2VPZmZzZXQ6IG51bWJlcjtcclxuICAgIHBhZ2VMaW1pdDogbnVtYmVyO1xyXG4gIH0+KCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkRmlsdGVyID0gbmV3IEV2ZW50RW1pdHRlcjxDaGlwT3B0aW9uPigpO1xyXG4gIEBPdXRwdXQoKSByZW1vdmVGaWx0ZXJlZE9wdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZmlsdGVyZWRPcHRpb25zID0gbmV3IEV2ZW50RW1pdHRlcjxDaGVja2JveE9wdGlvbltdPigpO1xyXG4gIEBPdXRwdXQoKSBzZWFyY2hlZFZhbHVlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgZGlzcGxheWVkQ29sdW1ucyE6IHN0cmluZ1tdO1xyXG4gIGlzTW9iaWxlVmlldyA9IGZhbHNlO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgZGF0YVNvdXJjZSE6IE1hdFRhYmxlRGF0YVNvdXJjZTxhbnk+O1xyXG4gIHNlbGVjdGVkUm93cyA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxUYWJsZUNvbHVtblNjaGVtYT4odHJ1ZSwgW10pO1xyXG4gIHBhZ2VMaW1pdCE6IG51bWJlcjtcclxuICBwYWdlT2Zmc2V0ITogbnVtYmVyO1xyXG4gIGNvbHVtblR5cGUgPSBUYWJsZUNvbHVtblR5cGU7XHJcbiAgaXNTZWFyY2hBY3RpdmUgPSBmYWxzZTtcclxuICBjbGVhckFsbCA9IHRoaXMuY29uc3RhbnRzPy5kYXRhVGFibGU/LmxhYmVsPy5jbGVhckFsbDtcclxuICBub1JlY29yZEZvdW5kID0gdGhpcy5jb25zdGFudHM/LmRhdGFUYWJsZT8ubWVzc2FnZT8ubm9SZWNvcmRGb3VuZDtcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0ITogTWF0U29ydDtcclxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcikgcGFnaW5hdG9yITogTWF0UGFnaW5hdG9yO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFycywgbm8tZW1wdHktZnVuY3Rpb25cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlOiBCcmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2VcclxuICAgICAgLmdldEJyZWFrcG9pbnQoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNNb2JpbGVWaWV3ID0gcmVzdWx0Lm1hdGNoZXM7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgdGhlIGRhdGEgdGFibGUgY29tcG9uZW50IGFuZCBzZXRzIHRoZSB0YWJsZSBhY3Rpb24gYnV0dG9ucy5cclxuICAgKiBAbWVtYmVyb2YgRGF0YVRhYmxlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmNvbHVtblNjaGVtYT8ubWFwKChjKSA9PiBjPy5jb2x1bW5EZWYpO1xyXG4gICAgY29uc3QgdGFibGVBY3Rpb25CdXR0b25zOiBJY29uQnV0dG9uW10gPSB0aGlzLmNvbnN0YW50cz8uZGF0YVRhYmxlPy5idXR0b25zO1xyXG4gICAgdGhpcy5yb3dFZGl0QnV0dG9uID0gdGhpcy5yb3dFZGl0QnV0dG9uID8/IHRhYmxlQWN0aW9uQnV0dG9uc1szXTtcclxuICAgIHRoaXMucm93RGVsZXRlQnV0dG9uID0gdGhpcy5yb3dEZWxldGVCdXR0b24gPz8gdGFibGVBY3Rpb25CdXR0b25zWzRdO1xyXG4gICAgdGhpcy5hZGRCdXR0b24gPSB0aGlzLmFkZEJ1dHRvbiA/PyB0YWJsZUFjdGlvbkJ1dHRvbnNbMl07XHJcbiAgICB0aGlzLnRhYmxlRWRpdEJ1dHRvbiA9IHRoaXMudGFibGVFZGl0QnV0dG9uID8/IHRhYmxlQWN0aW9uQnV0dG9uc1swXTtcclxuICAgIHRoaXMudGFibGVFZGl0QnV0dG9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgIHRoaXMudGFibGVEZWxldGVCdXR0b24gPSB0aGlzLnRhYmxlRGVsZXRlQnV0dG9uID8/IHRhYmxlQWN0aW9uQnV0dG9uc1sxXTtcclxuICAgIHRoaXMudGFibGVEZWxldGVCdXR0b24uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWxlY3RlZFJvd3MuY2hhbmdlZFxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHRoaXMudGFibGVFZGl0QnV0dG9uLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50YWJsZURlbGV0ZUJ1dHRvbi5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChyZXN1bHQ/LnNvdXJjZT8uc2VsZWN0ZWQ/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgdGhpcy50YWJsZUVkaXRCdXR0b24uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy50YWJsZURlbGV0ZUJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQ/LnNvdXJjZT8uc2VsZWN0ZWQ/Lmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgIHRoaXMudGFibGVEZWxldGVCdXR0b24uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudGFibGVFZGl0QnV0dG9uLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSh0aGlzLnRhYmxlRGF0YSk7XHJcbiAgICB0aGlzLnRhYmxlRGF0YUNoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemVzIHRoZSBzb3J0IGZlYXR1cmUgb2YgZGF0YVNvdXJjZVxyXG4gICAqIEBtZW1iZXJvZiBEYXRhVGFibGVDb21wb25lbnRcclxuICAgKi9cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcclxuICAgIHRoaXMuc29ydC5kaXNhYmxlQ2xlYXIgPSB0cnVlO1xyXG4gICAgdGhpcy5kYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZGF0YVNvdXJjZSB3aGVuZXZlciB0aGUgdGFibGUgZGF0YSBjaGFuZ2VzLlxyXG4gICAqIEBtZW1iZXJvZiBEYXRhVGFibGVDb21wb25lbnRcclxuICAgKi9cclxuICB0YWJsZURhdGFDaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZSkge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMudGFibGVEYXRhO1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcclxuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuY2xlYXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uU2VsZWN0Q2xpY2sgbWV0aG9kIGVtaXRzIHRoZSByb3dTZWxlY3RlZCBldmVudCB3aXRoIHNlbGVjdGVkIHJvdyBkYXRhLlxyXG4gICAqIEBwYXJhbSB7Kn0gcm93XHJcbiAgICogQHBhcmFtIHtib29sZWFufSBjaGVja2VkXHJcbiAgICogQG1lbWJlcm9mIERhdGFUYWJsZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgb25TZWxlY3RDbGljayhyb3c6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZFJvd3MudG9nZ2xlKHJvdyk7XHJcbiAgICByb3cuY2hlY2tlZCA9ICFyb3cuY2hlY2tlZDtcclxuICAgIHRoaXMucm93U2VsZWN0ZWQuZW1pdChyb3cpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT25FZGl0Q2xpY2sgbWV0aG9kIGVtaXRzIHRoZSBzZWxlY3RlZFJvd1RvRWRpdCBldmVudCB3aXRoIHRoZSBzZWxlY3RlZCByb3cgZGF0YS5cclxuICAgKiBAcGFyYW0geyp9IHJvd1xyXG4gICAqIEBtZW1iZXJvZiBEYXRhVGFibGVDb21wb25lbnRcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIG9uRWRpdENsaWNrKHJvdzogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUm93VG9FZGl0LmVtaXQocm93KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uRGVsZXRlQ2xpY2sgbWV0aG9kIGVtaXRzIHRoZSBzZWxlY3RlZFJvd1RvRGVsZXRlIGV2ZW50IHdpdGggdGhlIHNlbGVjdGVkIHJvdyBkYXRhLlxyXG4gICAqIEBwYXJhbSB7Kn0gcm93XHJcbiAgICogQG1lbWJlcm9mIERhdGFUYWJsZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgb25EZWxldGVDbGljayhyb3c6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZFJvd1RvRGVsZXRlLmVtaXQocm93KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqT25MaW5rQ2xpY2sgbWV0aG9kIGVtaXRzIHRoZSBldmVudCB3aXRoIHJvdyBhbmQgY29sdW1uLlxyXG4gICAqIEBwYXJhbSB7Kn0gcm93XHJcbiAgICogQHBhcmFtIHtUYWJsZUNvbHVtblNjaGVtYX0gW2NvbHVtbl1cclxuICAgKiBAbWVtYmVyb2YgRGF0YVRhYmxlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBvbkxpbmtDbGljayhyb3c6IGFueSwgY29sdW1uPzogVGFibGVDb2x1bW5TY2hlbWEpOiB2b2lkIHtcclxuICAgIHRoaXMucm93TGluay5lbWl0KHJvdyk7XHJcbiAgICB0aGlzLmNvbHVtbkRhdGFPblJvd0xpbmtDbGljay5lbWl0KHsgcm93LCBjb2x1bW4gfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPblRhYmxlRWRpdENsaWNrIG1ldGhvZCBlbWl0cyBldmVudCB3aXRoIHNlbGVjdGVkIHJvd3MgZGF0YSB3aGVuIGVkaXQgYnV0dG9uIGNsaWNrZWQuXHJcbiAgICogQG1lbWJlcm9mIERhdGFUYWJsZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uVGFibGVFZGl0Q2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUm93VG9FZGl0LmVtaXQodGhpcy5zZWxlY3RlZFJvd3Muc2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT25EZWxldGVUYWJsZUNsaWNrIG1ldGhvZCBlbWl0cyBldmVudCB3aXRoIHNlbGVjdGVkIHJvdyBkYXRhIHdoZW4gZGVsZXRlIGJ1dHRvbiBjbGlja2VkLlxyXG4gICAqIEBtZW1iZXJvZiBEYXRhVGFibGVDb21wb25lbnRcclxuICAgKi9cclxuICBvbkRlbGV0ZVRhYmxlQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUm93c1RvRGVsZXRlLmVtaXQodGhpcy5zZWxlY3RlZFJvd3Muc2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT25BZGRDbGljayBtZXRob2QgZW1pdHMgdGhlIGFkZCBldmVudCB3aGVuIGFkZCBidXR0b24gY2xpY2tlZC5cclxuICAgKiBAbWVtYmVyb2YgRGF0YVRhYmxlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25BZGRDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkUm93LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uVGFibGVTZWFyY2hDbGljayBtZXRob2QgdG9nZ2xlcyB0aGUgaXNTZWFyY2hBY3RpdmUgc3RhdGUgd2hlbiB0aGUgc2VhcmNoIGljb24gaXMgY2xpY2tlZCBmb3IgdGhlIG1vYmlsZSB2aWV3LlxyXG4gICAqIEBtZW1iZXJvZiBEYXRhVGFibGVDb21wb25lbnRcclxuICAgKi9cclxuICBvblRhYmxlU2VhcmNoQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzU2VhcmNoQWN0aXZlID0gIXRoaXMuaXNTZWFyY2hBY3RpdmU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWxlY3RlZEZpbHRlckluZm8gbWV0aG9kIGVtaXRzIHRoZSBzZWxlY3RlZEZpbHRlciBldmVudCB3aXRoIHNlbGVjdGVkIGZpbHRlciBpbmZvcm1hdGlvbi5cclxuICAgKiBAcGFyYW0ge0NoaXBPcHRpb259IG9wdGlvblxyXG4gICAqIEBtZW1iZXJvZiBEYXRhVGFibGVDb21wb25lbnRcclxuICAgKi9cclxuICBzZWxlY3RlZEZpbHRlclR5cGVJbmZvKG9wdGlvbjogQ2hpcE9wdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlci5lbWl0KG9wdGlvbik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPblNlbGVjdGVkRmlsdGVyT3B0aW9ucyBtZXRob2QgZW1pdHMgdGhlIGZpbHRlcmVkT3B0aW9ucyBldmVudCB3aXRoIHRoZSBzZWxlY3RlZCBvcHRpb25zIGFuZCBhZGRzIFwiQ2xlYXIgYWxsXCIgb3B0aW9uIHRvIGNsZWFyIHRoZSBhbGwgc2VsZWN0aW9ucy5cclxuICAgKiBAcGFyYW0ge0NoZWNrYm94T3B0aW9uW119IG9wdGlvbnNcclxuICAgKiBAbWVtYmVyb2YgRGF0YVRhYmxlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25TZWxlY3RlZEZpbHRlck9wdGlvbnMob3B0aW9uczogQ2hlY2tib3hPcHRpb25bXSk6IHZvaWQge1xyXG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMuZW1pdChvcHRpb25zKTtcclxuICAgIHRoaXMuYXBwbGllZEZpbHRlck9wdGlvbnMgPSBbXTtcclxuICAgIG9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKSA9PiB7XHJcbiAgICAgIGlmIChvcHRpb24uY2hlY2tlZCkge1xyXG4gICAgICAgIHRoaXMuYXBwbGllZEZpbHRlck9wdGlvbnMucHVzaCh7XHJcbiAgICAgICAgICBpZDogb3B0aW9uLmlkLFxyXG4gICAgICAgICAgbmFtZTogb3B0aW9uLm5hbWUgYXMgc3RyaW5nLFxyXG4gICAgICAgICAgY2hlY2tlZDogb3B0aW9uLmNoZWNrZWQsXHJcbiAgICAgICAgICBkaXNhYmxlZDogb3B0aW9uLmRpc2FibGVkLFxyXG4gICAgICAgICAgY2hpcFR5cGU6IENoaXBzVHlwZS5UT0dHTEUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5hcHBsaWVkRmlsdGVyT3B0aW9ucy5wdXNoKHtcclxuICAgICAgaWQ6IHRoaXMuY2xlYXJBbGwsXHJcbiAgICAgIG5hbWU6IHRoaXMuY2xlYXJBbGwsXHJcbiAgICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIGNoaXBUeXBlOiBDaGlwc1R5cGUuU1RBVElDLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIE9uUmVtb3ZhbE9mRmlsdGVyZWRPcHRpb24gbWV0aG9kIGVtaXRzIHRoZSByZW1vdmVGaWx0ZXJlZE9wdGlvbiBldmVudCB3aXRoIHJlbW92ZWQgb3B0aW9uLlxyXG4gICAqIFNldHMgdGhlIG5ldyBhcHBsaWVkRmlsdGVyT3B0aW9ucyB3aXRob3V0IHJlbW92ZWQgb3B0aW9uLlxyXG4gICAqIEBwYXJhbSB7Q2hpcE9wdGlvbn0gb3B0aW9uXHJcbiAgICogQG1lbWJlcm9mIERhdGFUYWJsZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uUmVtb3ZhbE9mRmlsdGVyZWRPcHRpb24ob3B0aW9uOiBDaGlwT3B0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAob3B0aW9uPy5uYW1lID09PSB0aGlzLmNsZWFyQWxsKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlRmlsdGVyZWRPcHRpb24uZW1pdChbXSk7XHJcbiAgICAgIHRoaXMuYXBwbGllZEZpbHRlck9wdGlvbnMgPSBbXTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlck9wdGlvbnM/LmZvckVhY2goKG9wdGlvbikgPT4gKG9wdGlvbi5jaGVja2VkID0gZmFsc2UpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYXBwbGllZEZpbHRlck9wdGlvbnMgPSB0aGlzLmFwcGxpZWRGaWx0ZXJPcHRpb25zLmZpbHRlcihcclxuICAgICAgICAocmVzOiBDaGlwT3B0aW9uKSA9PiByZXMuaWQgIT09IG9wdGlvbi5pZFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmFwcGxpZWRGaWx0ZXJPcHRpb25zID1cclxuICAgICAgICB0aGlzLmFwcGxpZWRGaWx0ZXJPcHRpb25zLmxlbmd0aCA9PT0gMSA/IFtdIDogdGhpcy5hcHBsaWVkRmlsdGVyT3B0aW9ucztcclxuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlck9wdGlvbnM/LmZvckVhY2goKHNlbGVjdGVkT3B0aW9uKSA9PiB7XHJcbiAgICAgICAgaWYgKG9wdGlvbi5pZCA9PT0gc2VsZWN0ZWRPcHRpb24uaWQpIHtcclxuICAgICAgICAgIHNlbGVjdGVkT3B0aW9uLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnJlbW92ZUZpbHRlcmVkT3B0aW9uLmVtaXQoXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlck9wdGlvbnM/LmZpbHRlcihcclxuICAgICAgICAgIChyZXM6IENoZWNrYm94T3B0aW9uKSA9PiByZXM/LmNoZWNrZWRcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWFyY2hWYWx1ZSBtZXRob2QgZW1pdHMgdGhlIHNlYXJjaGVkIHZhbHVlLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxyXG4gICAqIEBtZW1iZXJvZiBEYXRhVGFibGVDb21wb25lbnRcclxuICAgKi9cclxuICBzZWFyY2hWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaGVkVmFsdWUuZW1pdCh2YWx1ZSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgdGhlIHBhZ2luYXRpb24gZm9yIGV2ZXJ5IHBhZ2UuXHJcbiAgICogQHBhcmFtIHtQYWdlRXZlbnR9IGV2ZW50XHJcbiAgICogQG1lbWJlcm9mIERhdGFUYWJsZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGhhbmRsZVBhZ2luYXRpb24oZXZlbnQ6IFBhZ2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5wYWdpbmF0aW9uQ2hhbmdlLmVtaXQoe1xyXG4gICAgICBwYWdlT2Zmc2V0OiBldmVudC5wYWdlSW5kZXggKiBldmVudC5wYWdlU2l6ZSxcclxuICAgICAgcGFnZUxpbWl0OiBldmVudC5wYWdlU2l6ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBJc0FsbFJvd1NlbGVjdGVkIG1ldGhvZCByZXR1cm5zIHRoZSBib29sZWFuIHZhbHVlIGJ5IGNoZWNraW5nIHNlbGVjdGVkUm93cyBhbmQgdG90YWxSb3dzIGxlbmd0aC5cclxuICAgKiBAcmV0dXJuIHsqfSAge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIERhdGFUYWJsZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGlzQWxsUm93c1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRSb3dzLnNlbGVjdGVkLmxlbmd0aCA9PT0gdGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVG9nZ2xlQWxsUm93c1NlbGVjdGlvbiBtZXRob2QgY2xlYXJzIHNlbGVjdGVkUm93cyB3aGVuIGFsbCByb3dzIGFyZSBzZWxlY3RlZCBlbHNlIHNlbGVjdHMgdGhlIGFsbCByb3dzLlxyXG4gICAqIEByZXR1cm4geyp9ICB7dm9pZH1cclxuICAgKiBAbWVtYmVyb2YgRGF0YVRhYmxlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdG9nZ2xlQWxsUm93c1NlbGVjdGlvbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzQWxsUm93c1NlbGVjdGVkKCkpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFJvd3MuY2xlYXIoKTtcclxuICAgIH0gZWxzZSB0aGlzLnNlbGVjdGVkUm93cy5zZWxlY3QoLi4udGhpcy5kYXRhU291cmNlLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWxsb3dzIEFuZ3VsYXIgdG8gZGV0ZWN0IHRoZSBzcGVjaWZpYyB0YWJsZSByb3cgdGhhdCBuZWVkcyB0byBjaGFuZ2Ugb3IgYmUgYWRkZWQgYnkgdHJhY2tpbmcgcm93IHVuaXF1ZSBJZC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcclxuICAgKiBAcGFyYW0ge1RhYmxlQ29sdW1uU2NoZW1hfSBjb2x1bW5cclxuICAgKiBAcmV0dXJuIHsqfSAge251bWJlcn1cclxuICAgKiBAbWVtYmVyb2YgRGF0YVRhYmxlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdHJhY2tCeUlkKGluZGV4OiBudW1iZXIsIGNvbHVtbjogVGFibGVDb2x1bW5TY2hlbWEpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIGNvbHVtbi5pZDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTmdPbkRlc3Ryb3kgcGVyZm9ybXMgbmVjZXNzYXJ5IGNsZWFudXAgdGFza3MsIHN1Y2ggYXMgdW5zdWJzY3JpYmluZyBmcm9tIHN1YnNjcmlwdGlvbiB3aGVuIHRoZSBjb21wb25lbnQgaXMgYmVpbmcgZGVzdHJveWVkLlxyXG4gICAqIEBtZW1iZXJvZiBEYXRhVGFibGVDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImllZWVzYS1kYXRhLXRhYmxlIGQtZmxleCBmbGV4LWNvbHVtbiBjb250YWluZXItZmx1aWRcIj5cclxuICA8Y2FwdGlvbiBjbGFzcz1cImllZWVzYS1kYXRhLXRhYmxlLS1jYXB0aW9uXCIgKm5nSWY9XCJjYXB0aW9uXCI+XHJcbiAgICB7e1xyXG4gICAgICBjYXB0aW9uXHJcbiAgICB9fVxyXG4gIDwvY2FwdGlvbj5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cInRhYmxlQWN0aW9uc1wiXHJcbiAgICBjbGFzcz1cImllZWVzYS1kYXRhLXRhYmxlX19hY3Rpb25zIGQtZmxleCByb3cganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtbGctYmFzZWxpbmUgcC1zbS0wXCJcclxuICAgIFtuZ0NsYXNzXT1cImlzTW9iaWxlVmlldyA/ICdpZWVlc2EtZGF0YS10YWJsZV9fbW9iaWxlLXZpZXctYWN0aW9ucycgOiAnJ1wiXHJcbiAgPlxyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAqbmdJZj1cIiFpc01vYmlsZVZpZXdcIlxyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWx0ZXJUZW1wbGF0ZVJlZlwiXHJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGRhdGE6ICdjb2wtbWQtNyBjb2wtbGctNicgfVwiXHJcbiAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtbGctNCBnYXAtbWQtMiBnYXAtc20tMSBjb2wtbWQtNSBjb2wtbGctNiBqdXN0aWZ5LWNvbnRlbnQtZW5kXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc01vYmlsZVZpZXdcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWVlZXNhU2VhcmNoXCI+IDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPGllZWVzYS1pY29uLWJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwidGFibGVBY3Rpb25zPy5pc0FkZE5lZWRlZFwiXHJcbiAgICAgICAgW2ljb25CdXR0b25dPVwiYWRkQnV0dG9uXCJcclxuICAgICAgICAoaWNvbkJ1dHRvbkNsaWNrKT1cIm9uQWRkQ2xpY2soKVwiXHJcbiAgICAgID48L2llZWVzYS1pY29uLWJ1dHRvbj5cclxuICAgICAgPGllZWVzYS1pY29uLWJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwidGFibGVBY3Rpb25zPy5pc0VkaXROZWVkZWRcIlxyXG4gICAgICAgIFtpY29uQnV0dG9uXT1cInRhYmxlRWRpdEJ1dHRvblwiXHJcbiAgICAgICAgKGljb25CdXR0b25DbGljayk9XCJvblRhYmxlRWRpdENsaWNrKClcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgc2VsZWN0ZWRSb3dzLnNlbGVjdGVkLmxlbmd0aCAhPT0gMVxyXG4gICAgICAgICAgICA/ICdpZWVlc2EtZGF0YS10YWJsZV9fYWN0aW9ucy0tZGlzYWJsZWQnXHJcbiAgICAgICAgICAgIDogJydcclxuICAgICAgICBcIlxyXG4gICAgICA+PC9pZWVlc2EtaWNvbi1idXR0b24+XHJcbiAgICAgIDxpZWVlc2EtaWNvbi1idXR0b25cclxuICAgICAgICAqbmdJZj1cInRhYmxlQWN0aW9ucz8uaXNEZWxldGVOZWVkZWRcIlxyXG4gICAgICAgIFtpY29uQnV0dG9uXT1cInRhYmxlRGVsZXRlQnV0dG9uXCJcclxuICAgICAgICAoaWNvbkJ1dHRvbkNsaWNrKT1cIm9uRGVsZXRlVGFibGVDbGljaygpXCJcclxuICAgICAgICBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgc2VsZWN0ZWRSb3dzLnNlbGVjdGVkLmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgICA/ICdpZWVlc2EtZGF0YS10YWJsZV9fYWN0aW9ucy0tZGlzYWJsZWQnXHJcbiAgICAgICAgICAgIDogJydcclxuICAgICAgICBcIlxyXG4gICAgICA+PC9pZWVlc2EtaWNvbi1idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJ0YWJsZUFjdGlvbnM/LmlzU2VhcmNoTmVlZGVkXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNvbnN0YW50cz8uZGF0YVRhYmxlPy5hcmlhTGFiZWw/LnNlYXJjaFwiXHJcbiAgICAgICAgY2xhc3M9XCJkLWZsZXggZC1zbS1mbGV4IGQtbWQtbm9uZSBkLWxnLW5vbmUgZC14bC1ub25lIGllZWVzYS1kYXRhLXRhYmxlX19hY3Rpb25zLS1zZWFyY2gtZ3JvdXAtaWNvblwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uVGFibGVTZWFyY2hDbGljaygpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtbWFnbmlmeWluZy1nbGFzc1wiPjwvaT5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8bmctY29udGFpbmVyXHJcbiAgICAqbmdJZj1cImlzTW9iaWxlVmlld1wiXHJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWx0ZXJUZW1wbGF0ZVJlZlwiXHJcbiAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBkYXRhOiAnaWVlZXNhLWRhdGEtdGFibGVfX2ZpbHRlcicgfVwiXHJcbiAgPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy10ZW1wbGF0ZSAjZmlsdGVyVGVtcGxhdGVSZWYgbGV0LWNsYXNzTmFtZT1cImRhdGFcIj5cclxuICAgIDxpZWVlc2EtZmlsdGVyXHJcbiAgICAgIGNsYXNzPVwie3sgY2xhc3NOYW1lIH19IHAtMFwiXHJcbiAgICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxyXG4gICAgICAqbmdJZj1cInRhYmxlQWN0aW9ucz8uaXNGaWx0ZXJOZWVkZWRcIlxyXG4gICAgICBbc2VsZWN0ZWRGaWx0ZXJPcHRpb25zXT1cInNlbGVjdGVkRmlsdGVyT3B0aW9uc1wiXHJcbiAgICAgIFthcHBsaWVkRmlsdGVyT3B0aW9uc109XCJhcHBsaWVkRmlsdGVyT3B0aW9uc1wiXHJcbiAgICAgIChzZWxlY3RlZEZpbHRlcik9XCJzZWxlY3RlZEZpbHRlclR5cGVJbmZvKCRldmVudClcIlxyXG4gICAgICAocmVtb3ZlRmlsdGVyZWRPcHRpb24pPVwib25SZW1vdmFsT2ZGaWx0ZXJlZE9wdGlvbigkZXZlbnQpXCJcclxuICAgICAgKGZpbHRlcmVkT3B0aW9ucyk9XCJvblNlbGVjdGVkRmlsdGVyT3B0aW9ucygkZXZlbnQpXCJcclxuICAgID48L2llZWVzYS1maWx0ZXI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNNb2JpbGVWaWV3ICYmIGlzU2VhcmNoQWN0aXZlXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWVlZXNhU2VhcmNoXCI+IDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy10ZW1wbGF0ZSAjaWVlZXNhU2VhcmNoPlxyXG4gICAgPGllZWVzYS1zZWFyY2hcclxuICAgICAgW3BsYWNlaG9sZGVyTGFiZWxdPVwic2VhcmNoUGxhY2VIb2xkZXJUZXh0XCJcclxuICAgICAgW3NlYXJjaFR5cGVdPVwic2VhcmNoVHlwZVwiXHJcbiAgICAgIChzZWFyY2hWYWx1ZSk9XCJzZWFyY2hWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgKm5nSWY9XCJ0YWJsZUFjdGlvbnM/LmlzU2VhcmNoTmVlZGVkXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtZGF0YS10YWJsZV9fc2VhcmNoLXdyYXBwZXIgbXQtc20tMiBtZC1zbS0yXCJcclxuICAgID48L2llZWVzYS1zZWFyY2g+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8ZGl2IGNsYXNzPVwiaWVlZXNhLWRhdGEtdGFibGVfX2NvbnRlbnRcIiBbbmdDbGFzc109XCJ0YWJsZURhdGFJbmZvICYmIHRhYmxlRGF0YUluZm8ubGVuZ3RoID09PSAwID8gJ2llZWVzYS1kYXRhLXRhYmxlX19uby10YWJsZS1kYXRhJzogJydcIj5cclxuICAgIDx0YWJsZVxyXG4gICAgICBtYXQtdGFibGVcclxuICAgICAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiXHJcbiAgICAgIG1hdFNvcnRcclxuICAgICAgW21hdFNvcnRBY3RpdmVdPVwiZGVmYXVsdFNvcnRlZENvbHVtblwiXHJcbiAgICAgIFttYXRTb3J0RGlyZWN0aW9uXT1cImRlZmF1bHRDb2x1bW5Tb3J0RGlyZWN0aW9uXCJcclxuICAgICAgW3RyYWNrQnldPVwidHJhY2tCeUlkXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgbGV0IGNvbHVtbiBvZiBjb2x1bW5TY2hlbWFJbmZvO1xyXG4gICAgICAgICAgdHJhY2tCeTogdHJhY2tCeUlkO1xyXG4gICAgICAgICAgbGV0IGlkID0gaW5kZXhcclxuICAgICAgICBcIlxyXG4gICAgICAgIG1hdENvbHVtbkRlZj1cInt7IGNvbHVtbj8uY29sdW1uRGVmIH19XCJcclxuICAgICAgICBbc3RpY2t5XT1cImNvbHVtbj8uaXNTdGlja3lDb2x1bW5cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHRoXHJcbiAgICAgICAgICBtYXQtaGVhZGVyLWNlbGxcclxuICAgICAgICAgIG1hdC1zb3J0LWhlYWRlclxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFjb2x1bW4/LmlzU29ydGFibGVDb2x1bW5cIlxyXG4gICAgICAgICAgW25nU3dpdGNoXT1cImNvbHVtbj8uY29sdW1uRGVmXCJcclxuICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWRhdGEtdGFibGUtaGVhZGVyIGllZWVzYS1ib2R5LXNtLWJvbGQtMTRcIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgIGNvbHVtbj8uY29sdW1uRGVmID09PSBjb2x1bW5UeXBlPy5TRUxFQ1RcclxuICAgICAgICAgICAgICA/ICdpZWVlc2EtZGF0YS10YWJsZV9fY29sdW1uLXNlbGVjdCdcclxuICAgICAgICAgICAgICA6ICcnXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgKm1hdEhlYWRlckNlbGxEZWZcclxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29sdW1uPy5oZWFkaW5nXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5UeXBlPy5TRUxFQ1RcIj5cclxuICAgICAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gdG9nZ2xlQWxsUm93c1NlbGVjdGlvbigpIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRSb3dzPy5oYXNWYWx1ZSgpICYmIGlzQWxsUm93c1NlbGVjdGVkKClcIlxyXG4gICAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cInNlbGVjdGVkUm93cz8uaGFzVmFsdWUoKSAmJiAhaXNBbGxSb3dzU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiY29uc3RhbnRzPy5kYXRhVGFibGU/LmFyaWFMYWJlbD8uc2VsZWN0QWxsXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBjb2x1bW4uaGVhZGluZyB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvdGg+XHJcbiAgICAgICAgPHRkXHJcbiAgICAgICAgICBtYXQtY2VsbFxyXG4gICAgICAgICAgW25nU3dpdGNoXT1cImNvbHVtbj8uY29sdW1uVHlwZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImllZWVzYS1kYXRhLXRhYmxlX19jZWxsLWNvbnRlbnQgaWVlZXNhLXRpdGxlLXNtLTE2XCJcclxuICAgICAgICAgICptYXRDZWxsRGVmPVwibGV0IHJvd1wiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgY29sdW1uPy5jb2x1bW5EZWYgPT09IGNvbHVtblR5cGU/LlNFTEVDVFxyXG4gICAgICAgICAgICAgID8gJ2llZWVzYS1kYXRhLXRhYmxlX19jb2x1bW4tc2VsZWN0J1xyXG4gICAgICAgICAgICAgIDogJydcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgICB7eyBjb2x1bW4/LmNlbGxEYXRhKHJvdykgfX1cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uVHlwZT8uTElOS1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkxpbmtDbGljayhyb3csIGNvbHVtbilcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLXRpdGxlLXNtLTE2IGllZWVzYS1kYXRhLXRhYmxlX19jZWxsLWNvbnRlbnQtbGlua1wiXHJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb25zdGFudHM/LmRhdGFUYWJsZT8uYXJpYUxhYmVsPy5saW5rXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7IGNvbHVtbj8uY2VsbERhdGEocm93KSB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uVHlwZT8uU0VMRUNUXCI+XHJcbiAgICAgICAgICAgIDxtYXQtY2hlY2tib3hcclxuICAgICAgICAgICAgICBjbGFzcz1cImNvbC0yXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgICAoY2hhbmdlKT1cIiRldmVudCA/IG9uU2VsZWN0Q2xpY2socm93KSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkUm93cy5pc1NlbGVjdGVkKHJvdylcIlxyXG4gICAgICAgICAgICAgIFthcmlhLWxhYmVsXT1cImNvbnN0YW50cz8uZGF0YVRhYmxlPy5hcmlhTGFiZWw/LnNlbGVjdFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNvbHVtblR5cGU/LkVESVRcIj5cclxuICAgICAgICAgICAgPGllZWVzYS1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgIFtpY29uQnV0dG9uXT1cInJvd0VkaXRCdXR0b25cIlxyXG4gICAgICAgICAgICAgIChpY29uQnV0dG9uQ2xpY2spPVwib25FZGl0Q2xpY2socm93KVwiXHJcbiAgICAgICAgICAgID48L2llZWVzYS1pY29uLWJ1dHRvbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uVHlwZT8uREVMRVRFXCI+XHJcbiAgICAgICAgICAgIDxpZWVlc2EtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICBbaWNvbkJ1dHRvbl09XCJyb3dEZWxldGVCdXR0b25cIlxyXG4gICAgICAgICAgICAgIChpY29uQnV0dG9uQ2xpY2spPVwib25EZWxldGVDbGljayhyb3cpXCJcclxuICAgICAgICAgICAgPjwvaWVlZXNhLWljb24tYnV0dG9uPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDx0clxyXG4gICAgICAgIG1hdC1oZWFkZXItcm93XHJcbiAgICAgICAgY2xhc3M9XCJpZWVlc2EtZGF0YS10YWJsZV9faGVhZGVyLXJvd1wiXHJcbiAgICAgICAgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnM7IHN0aWNreTogZmFsc2VcIlxyXG4gICAgICA+PC90cj5cclxuICAgICAgPHRyXHJcbiAgICAgICAgbWF0LXJvd1xyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWRhdGEtdGFibGVfX2NlbGwtcm93XCJcclxuICAgICAgICAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1uc1wiXHJcbiAgICAgID48L3RyPlxyXG4gICAgPC90YWJsZT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJsZUFjdGlvbnM/LmlzUGFnaW5hdGlvbk5lZWRlZFwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWVlZXNhLWRhdGEtdGFibGVfX3BhZ2luYXRpb24gZC1mbGV4IGZsZXgtcm93LXJldmVyc2VcIlxyXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb25zdGFudHM/LmRhdGFUYWJsZT8uYXJpYUxhYmVsPy5wYWdpbmF0aW9uXCJcclxuICA+XHJcbiAgICA8bWF0LXBhZ2luYXRvclxyXG4gICAgICBbcGFnZVNpemVdPVwicGFnaW5hdG9yQ29uZmlnPy5yZWNvcmRzUGVyUGFnZVwiXHJcbiAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwicGFnaW5hdG9yQ29uZmlnLnBhZ2VTaXplT3B0aW9uc1wiXHJcbiAgICAgIChwYWdlKT1cImhhbmRsZVBhZ2luYXRpb24oJGV2ZW50KVwiXHJcbiAgICAgIFtsZW5ndGhdPVwicGFnaW5hdG9yQ29uZmlnPy50b3RhbFJlY29yZHNcIlxyXG4gICAgPjwvbWF0LXBhZ2luYXRvcj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxwXHJcbiAgY2xhc3M9XCJpZWVlc2EtZGF0YS10YWJsZV9fbWVzc2FnZSBpZWVlc2EtdGl0bGUtbGctYm9sZC0yNCB0ZXh0LWNlbnRlciBwLTVcIlxyXG4gICpuZ0lmPVwidGFibGVEYXRhSW5mbyAmJiB0YWJsZURhdGFJbmZvLmxlbmd0aCA9PT0gMFwiXHJcbj5cclxuICB7eyBub1JlY29yZEZvdW5kIH19XHJcbjwvcD5cclxuIl19