ngx-vector-components 4.2.0 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.4.0] (28/06/2022)
4
+
5
+ ### Features
6
+
7
+ - Added `isExternalUrl` in `http-interceptor.ts`;
8
+ - Added `Height` input in `data-table`;
9
+
10
+ ## [4.3.0] (27/06/2022)
11
+
12
+ ### Features
13
+
14
+ - Added `HttpDataResponse` in model `http-response.model.ts`;
15
+
16
+ ## [4.2.1] (27/06/2022)
17
+
18
+ ### Bug Fixes
19
+
20
+ - Added `ADD_REGION` in model `profile.model.ts`;
21
+ - Added `SHOW_REGION` in model `profile.model.ts`;
22
+ - Added `EDIT_REGION` in model `profile.model.ts`;
23
+
3
24
  ## [4.2.0] (24/06/2022)
4
25
 
5
26
  ### Features
@@ -49,8 +49,7 @@ p-button {
49
49
  color: #ffffff;
50
50
  box-shadow: 0px 5px 5px rgba(0, 70, 232, 0.5);
51
51
 
52
-
53
- button{
52
+ button {
54
53
  width: 100% !important;
55
54
  }
56
55
 
@@ -179,13 +178,12 @@ p-button {
179
178
  border-color: var(--success-color-dark);
180
179
 
181
180
  .p-button-label {
182
- color: #fff
181
+ color: #fff;
183
182
  }
184
183
  }
185
184
  }
186
185
  }
187
186
 
188
-
189
187
  .p-autocomplete-input {
190
188
  border-right: none !important;
191
189
  border-top-right-radius: 0px !important;
@@ -231,7 +229,6 @@ p-button {
231
229
  }
232
230
  }
233
231
 
234
-
235
232
  p-inputnumber.currency-input:not(.outlined) {
236
233
  &.ng-touched.ng-invalid input.p-inputnumber-input {
237
234
  color: var(--error-color) !important;
@@ -724,7 +721,6 @@ vector-data-table {
724
721
 
725
722
  p-table {
726
723
  .p-datatable-wrapper {
727
- max-height: 300px;
728
724
  }
729
725
 
730
726
  .p-datatable-table {
@@ -761,11 +757,11 @@ vector-data-table {
761
757
  font-size: 10px;
762
758
 
763
759
  &::before {
764
- content: "\e903" !important;
760
+ content: '\e903' !important;
765
761
  }
766
762
 
767
763
  &::after {
768
- content: "\e902" !important;
764
+ content: '\e902' !important;
769
765
  }
770
766
  }
771
767
  }
@@ -777,10 +773,9 @@ vector-data-table {
777
773
  }
778
774
  }
779
775
 
780
- .p-datatable-tbody{
781
-
782
- .p-highlight{
783
- background-color: #EFF6FF !important;
776
+ .p-datatable-tbody {
777
+ .p-highlight {
778
+ background-color: #eff6ff !important;
784
779
  }
785
780
  }
786
781
 
@@ -843,7 +838,7 @@ vector-data-table {
843
838
  flex: 1;
844
839
  overflow-x: auto;
845
840
  overflow-y: hidden;
846
-
841
+
847
842
  .p-tabview-nav-link {
848
843
  justify-content: center;
849
844
  }
@@ -956,7 +951,8 @@ p-tabview {
956
951
  background-color: var(--theme-dark) !important;
957
952
  }
958
953
 
959
- .p-menuitem-icon, .p-menuitem-text {
954
+ .p-menuitem-icon,
955
+ .p-menuitem-text {
960
956
  color: #fff !important;
961
957
  }
962
958
  }
@@ -35,6 +35,7 @@ export class DataTableComponent {
35
35
  this.onExportPDF = new EventEmitter();
36
36
  this.onSelectedRows = new EventEmitter();
37
37
  this.onFilterChanged = new EventEmitter();
38
+ this._height = 'small';
38
39
  this._tabs = [];
39
40
  this.draw = 1;
40
41
  this.firstLazyLoadedDone = false;
@@ -45,10 +46,34 @@ export class DataTableComponent {
45
46
  this._tabs = _tabs;
46
47
  this.tabSelected = _tabs[0];
47
48
  }
49
+ set height(_height) {
50
+ switch (_height) {
51
+ case 'small':
52
+ this._height = '300px';
53
+ break;
54
+ case 'medium':
55
+ this._height = '500px';
56
+ break;
57
+ case 'large':
58
+ this._height = '700px';
59
+ break;
60
+ case 'full':
61
+ this._height = 'flex';
62
+ break;
63
+ default:
64
+ this._height = '300px';
65
+ }
66
+ }
48
67
  get tabs() {
49
68
  return this._tabs;
50
69
  }
70
+ get height() {
71
+ return this._height;
72
+ }
51
73
  ngOnInit() {
74
+ if (!this.height) {
75
+ this.height = 'small';
76
+ }
52
77
  if (!this.pagination || this.virtualPagination) {
53
78
  this.filtersComponent?.search();
54
79
  }
@@ -181,10 +206,10 @@ export class DataTableComponent {
181
206
  }
182
207
  }
183
208
  DataTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: DataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
184
- DataTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: DataTableComponent, selector: "vector-data-table", inputs: { columns: "columns", data: "data", exportExcel: "exportExcel", exportPDF: "exportPDF", totalRecords: "totalRecords", filters: "filters", addItemLabel: "addItemLabel", pagination: "pagination", virtualPagination: "virtualPagination", tabs: "tabs", addItemButtonPlusSign: "addItemButtonPlusSign", hasActions: "hasActions", selectionMode: "selectionMode" }, outputs: { onLazyLoad: "onLazyLoad", onFilter: "onFilter", onAdd: "onAdd", onExportExcel: "onExportExcel", onExportPDF: "onExportPDF", onSelectedRows: "onSelectedRows", onFilterChanged: "onFilterChanged" }, viewQueries: [{ propertyName: "filtersComponent", first: true, predicate: FiltersComponent, descendants: true, static: true }], ngImport: i0, template: "<div class=\"grid\">\r\n <div class=\"col-12\">\r\n <vector-filters\r\n [fields]=\"filters\"\r\n (onSearch)=\"lazyLoaded({ filter: true, data: $event })\"\r\n (formBuilded)=\"subscribeToFilterChanges()\"\r\n ></vector-filters>\r\n </div>\r\n <div class=\"table-header-actions field\" *ngIf=\"addItemLabel\">\r\n <button *ngIf=\"exportExcel\" (click)=\"onExportExcel.emit()\" class=\"export-button export-excel\">\r\n <i class=\"fas fa-file\"></i><span>Excel</span>\r\n </button>\r\n <button *ngIf=\"exportPDF\" (click)=\"onExportPDF.emit()\" class=\"export-button export-pdf\">\r\n <i class=\"fas fa-file\"></i><span>PDF</span>\r\n </button>\r\n <vector-button\r\n class=\"add-item-button\"\r\n [label]=\"addItemLabel\"\r\n (click)=\"onAdd.emit()\"\r\n [rightIcon]=\"addItemButtonPlusSign ? 'pi pi-plus' : ''\"\r\n ></vector-button>\r\n </div>\r\n <div class=\"col-12\">\r\n <vector-panel class=\"data-table-panel\">\r\n <p-tabView (onChange)=\"onTabChange($event)\" *ngIf=\"tabs?.length\">\r\n <p-tabPanel *ngFor=\"let tab of tabs\" [header]=\"tab.name\"></p-tabPanel>\r\n </p-tabView>\r\n <p-table\r\n currentPageReportTemplate=\"Mostrando {first} at\u00E9 {last} de {totalRecords} registros\"\r\n sortMode=\"single\"\r\n [rows]=\"10\"\r\n [lazy]=\"pagination && !virtualPagination\"\r\n [value]=\"data\"\r\n [paginator]=\"pagination\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [rowsPerPageOptions]=\"[10, 25, 50, 100]\"\r\n [responsive]=\"true\"\r\n [resizableColumns]=\"true\"\r\n [scrollable]=\"true\"\r\n scrollDirection=\"vertical\"\r\n responsiveLayout=\"scroll\"\r\n [selectionMode]=\"selectionMode\"\r\n [(selection)]=\"selectedItems\"\r\n (onRowSelect)=\"changeSelectedItems($event)\"\r\n (onRowUnselect)=\"changeSelectedItems($event)\"\r\n (onLazyLoad)=\"lazyLoaded({ filter: false, data: $event })\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"header\">\r\n <th style=\"max-width: 100px\" class=\"centered\" *ngIf=\"hasActions\">A\u00E7\u00F5es</th>\r\n <th *ngFor=\"let col of columns\" [ngStyle]=\"getColStyle(col)\" [pSortableColumn]=\"col.field\">\r\n {{ col.header }} <p-sortIcon [field]=\"col.field\"></p-sortIcon>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-item>\r\n <tr class=\"row\" [pSelectableRow]=\"rowData\">\r\n <td *ngIf=\"hasActions\" style=\"max-width: 100px\" class=\"centered\">\r\n <p-menu #menu [model]=\"item.actions\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <i class=\"actions-menu-button fas fa-cog\" (click)=\"menu.toggle($event)\"></i>\r\n </td>\r\n <td\r\n *ngFor=\"let col of columns\"\r\n class=\"cell\"\r\n [innerHTML]=\"getCellContent(item, col)\"\r\n (click)=\"col && col.clickFunction && col.clickFunction(item)\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n ></td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"row\">\r\n <td class=\"no-results\" [attr.colspan]=\"columns.length + 1\">Nenhum resultado encontrado</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorright\"> </ng-template>\r\n <ng-template let-item pTemplate=\"paginatordropdownitem\"> {{ item.value }} </ng-template>\r\n </p-table>\r\n </vector-panel>\r\n </div>\r\n</div>\r\n", styles: [".no-results{padding:15px;background-color:#fff;width:100%}.centered{display:flex;justify-content:center}.table-header-actions{display:flex;justify-content:flex-end;align-items:flex-end;width:100%;padding-right:7px;margin-bottom:15px!important}@media (min-width: 768px){.table-header-actions{margin-top:-3px}}.table-header-actions .export-button{padding:7px 10px;color:#fff;display:flex;align-items:center;border:none;border-radius:5px;margin:5px;font-size:.75rem;cursor:pointer}.table-header-actions .export-button.export-excel{background-color:var(--success-color)}.table-header-actions .export-button.export-excel:hover{background-color:var(--success-color-dark)}.table-header-actions .export-button.export-pdf{background-color:var(--error-color)}.table-header-actions .export-button.export-pdf:hover{background-color:var(--error-color-dark)}.table-header-actions .export-button i{color:#fff}.table-header-actions .export-button span{margin-left:5px}.table-header-actions .add-item-button{margin-left:10px}.actions-menu-button{font-size:23px;cursor:pointer;color:var(--theme-medium)}\n"], components: [{ type: i1.FiltersComponent, selector: "vector-filters", inputs: ["fields"], outputs: ["onSearch", "formBuilded"] }, { type: i2.ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "style"], outputs: ["onClick"] }, { type: i3.PanelComponent, selector: "vector-panel" }, { type: i4.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { type: i4.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { type: i5.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollDelay", "virtualRowHeight", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "minBufferPx", "maxBufferPx", "responsiveLayout", "breakpoint", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { type: i5.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { type: i6.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i5.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { type: i5.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }] });
209
+ DataTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: DataTableComponent, selector: "vector-data-table", inputs: { columns: "columns", data: "data", exportExcel: "exportExcel", exportPDF: "exportPDF", totalRecords: "totalRecords", filters: "filters", addItemLabel: "addItemLabel", pagination: "pagination", virtualPagination: "virtualPagination", tabs: "tabs", addItemButtonPlusSign: "addItemButtonPlusSign", hasActions: "hasActions", selectionMode: "selectionMode", height: "height" }, outputs: { onLazyLoad: "onLazyLoad", onFilter: "onFilter", onAdd: "onAdd", onExportExcel: "onExportExcel", onExportPDF: "onExportPDF", onSelectedRows: "onSelectedRows", onFilterChanged: "onFilterChanged" }, viewQueries: [{ propertyName: "filtersComponent", first: true, predicate: FiltersComponent, descendants: true, static: true }], ngImport: i0, template: "<div class=\"grid\">\r\n <div class=\"col-12\">\r\n <vector-filters\r\n [fields]=\"filters\"\r\n (onSearch)=\"lazyLoaded({ filter: true, data: $event })\"\r\n (formBuilded)=\"subscribeToFilterChanges()\"\r\n ></vector-filters>\r\n </div>\r\n <div class=\"table-header-actions field\" *ngIf=\"addItemLabel\">\r\n <button *ngIf=\"exportExcel\" (click)=\"onExportExcel.emit()\" class=\"export-button export-excel\">\r\n <i class=\"fas fa-file\"></i><span>Excel</span>\r\n </button>\r\n <button *ngIf=\"exportPDF\" (click)=\"onExportPDF.emit()\" class=\"export-button export-pdf\">\r\n <i class=\"fas fa-file\"></i><span>PDF</span>\r\n </button>\r\n <vector-button\r\n class=\"add-item-button\"\r\n [label]=\"addItemLabel\"\r\n (click)=\"onAdd.emit()\"\r\n [rightIcon]=\"addItemButtonPlusSign ? 'pi pi-plus' : ''\"\r\n ></vector-button>\r\n </div>\r\n <div class=\"col-12\">\r\n <vector-panel class=\"data-table-panel\">\r\n <p-tabView (onChange)=\"onTabChange($event)\" *ngIf=\"tabs?.length\">\r\n <p-tabPanel *ngFor=\"let tab of tabs\" [header]=\"tab.name\"></p-tabPanel>\r\n </p-tabView>\r\n <p-table\r\n currentPageReportTemplate=\"Mostrando {first} at\u00E9 {last} de {totalRecords} registros\"\r\n sortMode=\"single\"\r\n [rows]=\"10\"\r\n [lazy]=\"pagination && !virtualPagination\"\r\n [value]=\"data\"\r\n [paginator]=\"pagination\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [rowsPerPageOptions]=\"[10, 25, 50, 100]\"\r\n [responsive]=\"true\"\r\n [resizableColumns]=\"true\"\r\n [scrollable]=\"true\"\r\n scrollDirection=\"vertical\"\r\n responsiveLayout=\"scroll\"\r\n [scrollHeight]=\"height\"\r\n [selectionMode]=\"selectionMode\"\r\n [(selection)]=\"selectedItems\"\r\n (onRowSelect)=\"changeSelectedItems($event)\"\r\n (onRowUnselect)=\"changeSelectedItems($event)\"\r\n (onLazyLoad)=\"lazyLoaded({ filter: false, data: $event })\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"header\">\r\n <th style=\"max-width: 100px\" class=\"centered\" *ngIf=\"hasActions\">A\u00E7\u00F5es</th>\r\n <th *ngFor=\"let col of columns\" [ngStyle]=\"getColStyle(col)\" [pSortableColumn]=\"col.field\">\r\n {{ col.header }} <p-sortIcon [field]=\"col.field\"></p-sortIcon>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-item>\r\n <tr class=\"row\" [pSelectableRow]=\"rowData\">\r\n <td *ngIf=\"hasActions\" style=\"max-width: 100px\" class=\"centered\">\r\n <p-menu #menu [model]=\"item.actions\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <i class=\"actions-menu-button fas fa-cog\" (click)=\"menu.toggle($event)\"></i>\r\n </td>\r\n <td\r\n *ngFor=\"let col of columns\"\r\n class=\"cell\"\r\n [innerHTML]=\"getCellContent(item, col)\"\r\n (click)=\"col && col.clickFunction && col.clickFunction(item)\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n ></td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"row\">\r\n <td class=\"no-results\" [attr.colspan]=\"columns.length + 1\">Nenhum resultado encontrado</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorright\"> </ng-template>\r\n <ng-template let-item pTemplate=\"paginatordropdownitem\"> {{ item.value }} </ng-template>\r\n </p-table>\r\n </vector-panel>\r\n </div>\r\n</div>\r\n", styles: [".no-results{padding:15px;background-color:#fff;width:100%}.centered{display:flex;justify-content:center}.table-header-actions{display:flex;justify-content:flex-end;align-items:flex-end;width:100%;padding-right:7px;margin-bottom:15px!important}@media (min-width: 768px){.table-header-actions{margin-top:-3px}}.table-header-actions .export-button{padding:7px 10px;color:#fff;display:flex;align-items:center;border:none;border-radius:5px;margin:5px;font-size:.75rem;cursor:pointer}.table-header-actions .export-button.export-excel{background-color:var(--success-color)}.table-header-actions .export-button.export-excel:hover{background-color:var(--success-color-dark)}.table-header-actions .export-button.export-pdf{background-color:var(--error-color)}.table-header-actions .export-button.export-pdf:hover{background-color:var(--error-color-dark)}.table-header-actions .export-button i{color:#fff}.table-header-actions .export-button span{margin-left:5px}.table-header-actions .add-item-button{margin-left:10px}.actions-menu-button{font-size:23px;cursor:pointer;color:var(--theme-medium)}\n"], components: [{ type: i1.FiltersComponent, selector: "vector-filters", inputs: ["fields"], outputs: ["onSearch", "formBuilded"] }, { type: i2.ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "rightIcon", "noShadow", "style"], outputs: ["onClick"] }, { type: i3.PanelComponent, selector: "vector-panel" }, { type: i4.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { type: i4.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { type: i5.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollDelay", "virtualRowHeight", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "minBufferPx", "maxBufferPx", "responsiveLayout", "breakpoint", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { type: i5.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { type: i6.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i5.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { type: i5.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }] });
185
210
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: DataTableComponent, decorators: [{
186
211
  type: Component,
187
- args: [{ selector: 'vector-data-table', template: "<div class=\"grid\">\r\n <div class=\"col-12\">\r\n <vector-filters\r\n [fields]=\"filters\"\r\n (onSearch)=\"lazyLoaded({ filter: true, data: $event })\"\r\n (formBuilded)=\"subscribeToFilterChanges()\"\r\n ></vector-filters>\r\n </div>\r\n <div class=\"table-header-actions field\" *ngIf=\"addItemLabel\">\r\n <button *ngIf=\"exportExcel\" (click)=\"onExportExcel.emit()\" class=\"export-button export-excel\">\r\n <i class=\"fas fa-file\"></i><span>Excel</span>\r\n </button>\r\n <button *ngIf=\"exportPDF\" (click)=\"onExportPDF.emit()\" class=\"export-button export-pdf\">\r\n <i class=\"fas fa-file\"></i><span>PDF</span>\r\n </button>\r\n <vector-button\r\n class=\"add-item-button\"\r\n [label]=\"addItemLabel\"\r\n (click)=\"onAdd.emit()\"\r\n [rightIcon]=\"addItemButtonPlusSign ? 'pi pi-plus' : ''\"\r\n ></vector-button>\r\n </div>\r\n <div class=\"col-12\">\r\n <vector-panel class=\"data-table-panel\">\r\n <p-tabView (onChange)=\"onTabChange($event)\" *ngIf=\"tabs?.length\">\r\n <p-tabPanel *ngFor=\"let tab of tabs\" [header]=\"tab.name\"></p-tabPanel>\r\n </p-tabView>\r\n <p-table\r\n currentPageReportTemplate=\"Mostrando {first} at\u00E9 {last} de {totalRecords} registros\"\r\n sortMode=\"single\"\r\n [rows]=\"10\"\r\n [lazy]=\"pagination && !virtualPagination\"\r\n [value]=\"data\"\r\n [paginator]=\"pagination\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [rowsPerPageOptions]=\"[10, 25, 50, 100]\"\r\n [responsive]=\"true\"\r\n [resizableColumns]=\"true\"\r\n [scrollable]=\"true\"\r\n scrollDirection=\"vertical\"\r\n responsiveLayout=\"scroll\"\r\n [selectionMode]=\"selectionMode\"\r\n [(selection)]=\"selectedItems\"\r\n (onRowSelect)=\"changeSelectedItems($event)\"\r\n (onRowUnselect)=\"changeSelectedItems($event)\"\r\n (onLazyLoad)=\"lazyLoaded({ filter: false, data: $event })\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"header\">\r\n <th style=\"max-width: 100px\" class=\"centered\" *ngIf=\"hasActions\">A\u00E7\u00F5es</th>\r\n <th *ngFor=\"let col of columns\" [ngStyle]=\"getColStyle(col)\" [pSortableColumn]=\"col.field\">\r\n {{ col.header }} <p-sortIcon [field]=\"col.field\"></p-sortIcon>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-item>\r\n <tr class=\"row\" [pSelectableRow]=\"rowData\">\r\n <td *ngIf=\"hasActions\" style=\"max-width: 100px\" class=\"centered\">\r\n <p-menu #menu [model]=\"item.actions\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <i class=\"actions-menu-button fas fa-cog\" (click)=\"menu.toggle($event)\"></i>\r\n </td>\r\n <td\r\n *ngFor=\"let col of columns\"\r\n class=\"cell\"\r\n [innerHTML]=\"getCellContent(item, col)\"\r\n (click)=\"col && col.clickFunction && col.clickFunction(item)\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n ></td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"row\">\r\n <td class=\"no-results\" [attr.colspan]=\"columns.length + 1\">Nenhum resultado encontrado</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorright\"> </ng-template>\r\n <ng-template let-item pTemplate=\"paginatordropdownitem\"> {{ item.value }} </ng-template>\r\n </p-table>\r\n </vector-panel>\r\n </div>\r\n</div>\r\n", styles: [".no-results{padding:15px;background-color:#fff;width:100%}.centered{display:flex;justify-content:center}.table-header-actions{display:flex;justify-content:flex-end;align-items:flex-end;width:100%;padding-right:7px;margin-bottom:15px!important}@media (min-width: 768px){.table-header-actions{margin-top:-3px}}.table-header-actions .export-button{padding:7px 10px;color:#fff;display:flex;align-items:center;border:none;border-radius:5px;margin:5px;font-size:.75rem;cursor:pointer}.table-header-actions .export-button.export-excel{background-color:var(--success-color)}.table-header-actions .export-button.export-excel:hover{background-color:var(--success-color-dark)}.table-header-actions .export-button.export-pdf{background-color:var(--error-color)}.table-header-actions .export-button.export-pdf:hover{background-color:var(--error-color-dark)}.table-header-actions .export-button i{color:#fff}.table-header-actions .export-button span{margin-left:5px}.table-header-actions .add-item-button{margin-left:10px}.actions-menu-button{font-size:23px;cursor:pointer;color:var(--theme-medium)}\n"] }]
212
+ args: [{ selector: 'vector-data-table', template: "<div class=\"grid\">\r\n <div class=\"col-12\">\r\n <vector-filters\r\n [fields]=\"filters\"\r\n (onSearch)=\"lazyLoaded({ filter: true, data: $event })\"\r\n (formBuilded)=\"subscribeToFilterChanges()\"\r\n ></vector-filters>\r\n </div>\r\n <div class=\"table-header-actions field\" *ngIf=\"addItemLabel\">\r\n <button *ngIf=\"exportExcel\" (click)=\"onExportExcel.emit()\" class=\"export-button export-excel\">\r\n <i class=\"fas fa-file\"></i><span>Excel</span>\r\n </button>\r\n <button *ngIf=\"exportPDF\" (click)=\"onExportPDF.emit()\" class=\"export-button export-pdf\">\r\n <i class=\"fas fa-file\"></i><span>PDF</span>\r\n </button>\r\n <vector-button\r\n class=\"add-item-button\"\r\n [label]=\"addItemLabel\"\r\n (click)=\"onAdd.emit()\"\r\n [rightIcon]=\"addItemButtonPlusSign ? 'pi pi-plus' : ''\"\r\n ></vector-button>\r\n </div>\r\n <div class=\"col-12\">\r\n <vector-panel class=\"data-table-panel\">\r\n <p-tabView (onChange)=\"onTabChange($event)\" *ngIf=\"tabs?.length\">\r\n <p-tabPanel *ngFor=\"let tab of tabs\" [header]=\"tab.name\"></p-tabPanel>\r\n </p-tabView>\r\n <p-table\r\n currentPageReportTemplate=\"Mostrando {first} at\u00E9 {last} de {totalRecords} registros\"\r\n sortMode=\"single\"\r\n [rows]=\"10\"\r\n [lazy]=\"pagination && !virtualPagination\"\r\n [value]=\"data\"\r\n [paginator]=\"pagination\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [rowsPerPageOptions]=\"[10, 25, 50, 100]\"\r\n [responsive]=\"true\"\r\n [resizableColumns]=\"true\"\r\n [scrollable]=\"true\"\r\n scrollDirection=\"vertical\"\r\n responsiveLayout=\"scroll\"\r\n [scrollHeight]=\"height\"\r\n [selectionMode]=\"selectionMode\"\r\n [(selection)]=\"selectedItems\"\r\n (onRowSelect)=\"changeSelectedItems($event)\"\r\n (onRowUnselect)=\"changeSelectedItems($event)\"\r\n (onLazyLoad)=\"lazyLoaded({ filter: false, data: $event })\"\r\n >\r\n <ng-template pTemplate=\"header\">\r\n <tr class=\"header\">\r\n <th style=\"max-width: 100px\" class=\"centered\" *ngIf=\"hasActions\">A\u00E7\u00F5es</th>\r\n <th *ngFor=\"let col of columns\" [ngStyle]=\"getColStyle(col)\" [pSortableColumn]=\"col.field\">\r\n {{ col.header }} <p-sortIcon [field]=\"col.field\"></p-sortIcon>\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-item>\r\n <tr class=\"row\" [pSelectableRow]=\"rowData\">\r\n <td *ngIf=\"hasActions\" style=\"max-width: 100px\" class=\"centered\">\r\n <p-menu #menu [model]=\"item.actions\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <i class=\"actions-menu-button fas fa-cog\" (click)=\"menu.toggle($event)\"></i>\r\n </td>\r\n <td\r\n *ngFor=\"let col of columns\"\r\n class=\"cell\"\r\n [innerHTML]=\"getCellContent(item, col)\"\r\n (click)=\"col && col.clickFunction && col.clickFunction(item)\"\r\n [ngStyle]=\"getColStyle(col)\"\r\n ></td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"row\">\r\n <td class=\"no-results\" [attr.colspan]=\"columns.length + 1\">Nenhum resultado encontrado</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"paginatorright\"> </ng-template>\r\n <ng-template let-item pTemplate=\"paginatordropdownitem\"> {{ item.value }} </ng-template>\r\n </p-table>\r\n </vector-panel>\r\n </div>\r\n</div>\r\n", styles: [".no-results{padding:15px;background-color:#fff;width:100%}.centered{display:flex;justify-content:center}.table-header-actions{display:flex;justify-content:flex-end;align-items:flex-end;width:100%;padding-right:7px;margin-bottom:15px!important}@media (min-width: 768px){.table-header-actions{margin-top:-3px}}.table-header-actions .export-button{padding:7px 10px;color:#fff;display:flex;align-items:center;border:none;border-radius:5px;margin:5px;font-size:.75rem;cursor:pointer}.table-header-actions .export-button.export-excel{background-color:var(--success-color)}.table-header-actions .export-button.export-excel:hover{background-color:var(--success-color-dark)}.table-header-actions .export-button.export-pdf{background-color:var(--error-color)}.table-header-actions .export-button.export-pdf:hover{background-color:var(--error-color-dark)}.table-header-actions .export-button i{color:#fff}.table-header-actions .export-button span{margin-left:5px}.table-header-actions .add-item-button{margin-left:10px}.actions-menu-button{font-size:23px;cursor:pointer;color:var(--theme-medium)}\n"] }]
188
213
  }], ctorParameters: function () { return []; }, propDecorators: { columns: [{
189
214
  type: Input
190
215
  }], data: [{
@@ -211,6 +236,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
211
236
  type: Input
212
237
  }], selectionMode: [{
213
238
  type: Input
239
+ }], height: [{
240
+ type: Input
214
241
  }], onLazyLoad: [{
215
242
  type: Output
216
243
  }], onFilter: [{
@@ -229,4 +256,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
229
256
  type: ViewChild,
230
257
  args: [FiltersComponent, { static: true }]
231
258
  }] } });
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBZ0MsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUF1QyxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN4RyxPQUFPLEVBQWUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7OztBQU83RSxNQUFNLE9BQU8sa0JBQWtCO0lBMkQ3QjtRQXpETyxZQUFPLEdBQWtCLEVBQUUsQ0FBQztRQUU1QixTQUFJLEdBQVUsRUFBRSxDQUFDO1FBRWpCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFFakIsWUFBTyxHQUFrQixFQUFFLENBQUM7UUFFNUIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFFbEIs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R0EsV0FBVztzQkFEakIsTUFBTTtnQkFHQSxjQUFjO3NCQURwQixNQUFNO2dCQUdBLGVBQWU7c0JBRHJCLE1BQU07Z0JBR0EsZ0JBQWdCO3NCQUR0QixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJDaGFuZ2VkRXZlbnQsIExpc3RJdGVtLCBTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBEYXRhVGFibGVMYXp5TG9hZEV2ZW50LCBUYWJsZUNvbHVtbiwgVGFibGVDb2x1bW5UeXBlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2RhdGEtdGFibGUubW9kZWwnO1xyXG5pbXBvcnQgeyBGaWx0ZXJGaWVsZCwgRmlsdGVyc0NvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlcnMvZmlsdGVycy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd2ZWN0b3ItZGF0YS10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGEtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjb2x1bW5zOiBUYWJsZUNvbHVtbltdID0gW107XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGF0YTogYW55W10gPSBbXTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBleHBvcnRFeGNlbCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGV4cG9ydFBERiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRvdGFsUmVjb3JkcyA9IDA7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZmlsdGVyczogRmlsdGVyRmllbGRbXSA9IFtdO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFkZEl0ZW1MYWJlbCA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHBhZ2luYXRpb24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHZpcnR1YWxQYWdpbmF0aW9uID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHRhYnMoX3RhYnM6IExpc3RJdGVtW10pIHtcclxuICAgIHRoaXMuX3RhYnMgPSBfdGFicztcclxuICAgIHRoaXMudGFiU2VsZWN0ZWQgPSBfdGFic1swXTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWRkSXRlbUJ1dHRvblBsdXNTaWduID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaGFzQWN0aW9uczogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2VsZWN0aW9uTW9kZTogJ3NpbmdsZScgfCAnbXVsdGlwbGUnIHwgJycgPSAnJztcclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25MYXp5TG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0YVRhYmxlTGF6eUxvYWRFdmVudD4oKTtcclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25GaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25BZGQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uRXhwb3J0RXhjZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uRXhwb3J0UERGID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvblNlbGVjdGVkUm93cyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvbkZpbHRlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlckNoYW5nZWRFdmVudD4oKTtcclxuICBAVmlld0NoaWxkKEZpbHRlcnNDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgcHVibGljIGZpbHRlcnNDb21wb25lbnQ6IEZpbHRlcnNDb21wb25lbnQgfCB1bmRlZmluZWQ7XHJcblxyXG4gIGdldCB0YWJzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYnM7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3RhYnM6IExpc3RJdGVtW10gPSBbXTtcclxuICBwcml2YXRlIGRyYXcgPSAxO1xyXG4gIHByaXZhdGUgZmlyc3RMYXp5TG9hZGVkRG9uZSA9IGZhbHNlO1xyXG4gIHByaXZhdGUgbGFzdExhenlMb2FkRXZlbnQ6IERhdGFUYWJsZUxhenlMb2FkRXZlbnQgfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSB0YWJTZWxlY3RlZDogTGlzdEl0ZW0gfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBmaWx0ZXJTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZEl0ZW1zOiBhbnkgPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5wYWdpbmF0aW9uIHx8IHRoaXMudmlydHVhbFBhZ2luYXRpb24pIHtcclxuICAgICAgdGhpcy5maWx0ZXJzQ29tcG9uZW50Py5zZWFyY2goKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5maWx0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGdldENvbFN0eWxlKGNvbDogVGFibGVDb2x1bW4pIHtcclxuICAgIHJldHVybiB7ICdtaW4td2lkdGgnOiBjb2wud2lkdGggfTtcclxuICB9XHJcblxyXG4gIGxhenlMb2FkZWQocGFyYW1zOiB7IGZpbHRlcjogYm9vbGVhbjsgZGF0YTogYW55IH0gPSB7IGZpbHRlcjogZmFsc2UsIGRhdGE6IHsgc3RhcnQ6IDAsIHJvd3M6IDEwIH0gfSkge1xyXG4gICAgaWYgKCFwYXJhbXMuZmlsdGVyKSB7XHJcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmNvbHVtbnMubWFwKChjb2wpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgZGF0YTogY29sLmZpZWxkLFxyXG4gICAgICAgICAgbmFtZTogYCR7Y29sLmZpZWxkLnN1YnN0cmluZygwLCAxKS50b1VwcGVyQ2FzZSgpfSR7Y29sLmZpZWxkLnN1YnN0cmluZygxLCBjb2wuZmllbGQubGVuZ3RoKX1gLFxyXG4gICAgICAgICAgb3JkZXJhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgc2VhcmNoOiB7IHZhbHVlOiAnJywgcmVnZXg6IGZhbHNlIH0sXHJcbiAgICAgICAgICBzZWFyY2hhYmxlOiB0cnVlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAodGhpcy5oYXNBY3Rpb25zKSB7XHJcbiAgICAgICAgY29sdW1ucy51bnNoaWZ0KHtcclxuICAgICAgICAgIGRhdGE6ICdhY3RpdmUnLFxyXG4gICAgICAgICAgbmFtZTogJ0FjdGl2ZScsXHJcbiAgICAgICAgICBvcmRlcmFibGU6IHRydWUsXHJcbiAgICAgICAgICBzZWFyY2g6IHsgdmFsdWU6ICcnLCByZWdleDogZmFsc2UgfSxcclxuICAgICAgICAgIHNlYXJjaGFibGU6IHRydWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5sYXN0TGF6eUxvYWRFdmVudCA9IHtcclxuICAgICAgICAuLi4odGhpcy5sYXN0TGF6eUxvYWRFdmVudCB8fCAoe30gYXMgYW55KSksXHJcbiAgICAgICAgc3RhcnQ6IHBhcmFtcy5kYXRhLmZpcnN0LFxyXG4gICAgICAgIGxlbmd0aDogcGFyYW1zLmRhdGEucm93cyxcclxuICAgICAgICBkcmF3OiB0aGlzLmRyYXcrKyxcclxuICAgICAgICBvcmRlcjogcGFyYW1zLmRhdGEuc29ydEZpZWxkXHJcbiAgICAgICAgICA/IFtcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW46IHRoaXMuY29sdW1ucy5maW5kSW5kZXgoKGNvbCkgPT4gY29sLmZpZWxkID09PSBwYXJhbXMuZGF0YS5zb3J0RmllbGQpICsgMSxcclxuICAgICAgICAgICAgICAgIGRpcjogcGFyYW1zLmRhdGEuc29ydE9yZGVyID4gMCA/ICdhc2MnIDogJ2Rlc2MnLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgIDogW3sgY29sdW1uOiAwLCBkaXI6ICdkZXNjJyB9XSxcclxuICAgICAgICBjb2x1bW5zOiBjb2x1bW5zLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sYXN0TGF6eUxvYWRFdmVudCA9IHtcclxuICAgICAgICAuLi50aGlzLmxhc3RMYXp5TG9hZEV2ZW50LFxyXG4gICAgICAgIC4uLnBhcmFtcy5kYXRhLFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAodGhpcy50YWJTZWxlY3RlZCkge1xyXG4gICAgICAgIHRoaXMubGFzdExhenlMb2FkRXZlbnQgPSB7XHJcbiAgICAgICAgICAuLi4odGhpcy5sYXN0TGF6eUxvYWRFdmVudCB8fCAoe30gYXMgYW55KSksXHJcbiAgICAgICAgICAuLi57IFN0YXR1czogdGhpcy50YWJTZWxlY3RlZC5jb2RlIH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmZpcnN0TGF6eUxvYWRlZERvbmUpIHtcclxuICAgICAgdGhpcy5vbkxhenlMb2FkLmVtaXQodGhpcy5sYXN0TGF6eUxvYWRFdmVudCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZpcnN0TGF6eUxvYWRlZERvbmUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2VsbENvbnRlbnQoaXRlbTogYW55LCBjb2w6IFRhYmxlQ29sdW1uKSB7XHJcbiAgICBsZXQgY29udGVudCA9IGA8c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+JHtjb2wuaGVhZGVyfTwvc3Bhbj48c3BhbiBjbGFzcz1cInctMTAwXCI+YDtcclxuICAgIGlmICghY29sLnR5cGUgfHwgY29sLnR5cGUgPT09IFRhYmxlQ29sdW1uVHlwZS5URVhUKSB7XHJcbiAgICAgIGNvbnRlbnQgKz0gaXRlbVtjb2wuZmllbGRdIHx8ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2x1bW5UeXBlLkNVU1RPTV9TVFlMRSkge1xyXG4gICAgICBjb250ZW50ICs9IGA8c3BhbiBjbGFzcz1cIiR7Y29sLnRleHRGaWVsZENsYXNzID8gaXRlbVtjb2wudGV4dEZpZWxkQ2xhc3NdIDogJyd9XCI+JHtpdGVtW2NvbC5maWVsZCB8fCAnJ119PC9zcGFuPmA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbHVtblR5cGUuQk9PTEVBTikge1xyXG4gICAgICBjb250ZW50ICs9IGA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJlZFwiPjxpIGNsYXNzPVwiIHN0YXR1cy10YWJsZS1maWVsZCBmYXMgZmEtJHtcclxuICAgICAgICBpdGVtW2NvbC5maWVsZF0gPyAnY2hlY2sgYm9vbGVhbi12YWx1ZS1wb3NpdGl2ZScgOiAndGltZXMgYm9vbGVhbi12YWx1ZS1uZWdhdGl2ZSdcclxuICAgICAgfVwiPjwvaT48L2Rpdj5gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2x1bW5UeXBlLkVOVU0gJiYgY29sLmdldEVudW1UcmFuc2xhdGVkKSB7XHJcbiAgICAgIGNvbnRlbnQgKz0gY29sLmdldEVudW1UcmFuc2xhdGVkKGl0ZW1bY29sLmZpZWxkXSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbHVtblR5cGUuREFURVRJTUUgJiYgaXRlbVtjb2wuZmllbGRdKSB7XHJcbiAgICAgIGNvbnN0IGRhdGVUaW1lID1cclxuICAgICAgICBpdGVtW2NvbC5maWVsZF0gaW5zdGFuY2VvZiBEYXRlID8gRGF0ZVRpbWUuZnJvbUpTRGF0ZShpdGVtW2NvbC5maWVsZF0pIDogRGF0ZVRpbWUuZnJvbUlTTyhpdGVtW2NvbC5maWVsZF0pO1xyXG4gICAgICBjb250ZW50ICs9IGRhdGVUaW1lLnRvRm9ybWF0KCdkZC9NTS95eXl5IEhIOm1tJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbHVtblR5cGUuU1RBVFVTX0JBREdFKSB7XHJcbiAgICAgIGNvbnRlbnQgKz0gYDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlcmVkXCI+PGkgY2xhc3M9XCJmYXMgZmEtY2lyY2xlIHN0YXR1cy10YWJsZS1maWVsZCAke3RoaXMuZ2V0U3RhdHVzQ29sb3IoXHJcbiAgICAgICAgaXRlbVtjb2wuZmllbGRdXHJcbiAgICAgICl9XCI+PC9pPjwvZGl2PmA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbHVtblR5cGUuQUNUSVZFX0JPT0xFQU5fQkFER0UpIHtcclxuICAgICAgY29udGVudCArPSBgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyZWRcIj48aSBjbGFzcz1cImZhcyBmYS1jaXJjbGUgc3RhdHVzLXRhYmxlLWZpZWxkICR7dGhpcy5nZXRBY3RpdmVTdGF0dXNDb2xvcihcclxuICAgICAgICBpdGVtW2NvbC5maWVsZF1cclxuICAgICAgKX1cIj48L2k+PC9kaXY+YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sdW1uVHlwZS5CVVRUT04pIHtcclxuICAgICAgY29udGVudCArPSBgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyZWRcIj48aSBjbGFzcz1cImZhcyAke1xyXG4gICAgICAgIGNvbC5pY29uIHx8ICdmYS1jaXJjbGUnXHJcbiAgICAgIH0gc3RhdHVzLXRhYmxlLWZpZWxkIHRhYmxlLWJ1dHRvblwiPjwvaT48L2Rpdj5gO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnRlbnQgKz0gYDwvc3Bhbj5gO1xyXG4gICAgcmV0dXJuIGNvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBvblRhYkNoYW5nZSgkZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy50YWJTZWxlY3RlZCA9IHRoaXMudGFic1skZXZlbnQuaW5kZXhdO1xyXG4gICAgdGhpcy5sYXp5TG9hZGVkKHsgZmlsdGVyOiB0cnVlLCBkYXRhOiB7fSB9KTtcclxuICB9XHJcblxyXG4gIHN1YnNjcmliZVRvRmlsdGVyQ2hhbmdlcygpIHtcclxuICAgIHRoaXMuZmlsdGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmZpbHRlclN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICAgIE9iamVjdC5rZXlzKHRoaXMuZmlsdGVyc0NvbXBvbmVudD8uZm9ybUdyb3VwLmNvbnRyb2xzIHx8IHt9KS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgdGhpcy5maWx0ZXJTdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICAgIHRoaXMuZmlsdGVyc0NvbXBvbmVudD8uZm9ybUdyb3VwXHJcbiAgICAgICAgICAuZ2V0KGtleSlcclxuICAgICAgICAgID8udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDMwMCkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uRmlsdGVyQ2hhbmdlZC5lbWl0KHsgZmllbGQ6IGtleSwgdmFsdWUgfSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLm9uRmlsdGVyQ2hhbmdlZC5lbWl0KHsgZmllbGQ6IGtleSwgdmFsdWU6IHRoaXMuZmlsdGVyc0NvbXBvbmVudD8uZm9ybUdyb3VwLmdldChrZXkpPy52YWx1ZSB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxpc3RIYXNBY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YS5zb21lKChpdGVtKSA9PiBpdGVtLmFjdGlvbnM/Lmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFN0YXR1c0NvbG9yKHN0YXR1czogU3RhdHVzKSB7XHJcbiAgICBzd2l0Y2ggKHN0YXR1cykge1xyXG4gICAgICBjYXNlIFN0YXR1cy5QRU5ESU5HOlxyXG4gICAgICAgIHJldHVybiAnd2FybmluZyc7XHJcbiAgICAgIGNhc2UgU3RhdHVzLkFQUFJPVkVEOlxyXG4gICAgICAgIHJldHVybiAnc3VjY2Vzcyc7XHJcbiAgICAgIGNhc2UgU3RhdHVzLlJFSkVDVEVEOlxyXG4gICAgICAgIHJldHVybiAnZXJyb3InO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRBY3RpdmVTdGF0dXNDb2xvcihhY3RpdmU6IGJvb2xlYW4pIHtcclxuICAgIHJldHVybiBhY3RpdmUgPyAnc3VjY2VzcycgOiAnZXJyb3InO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZVNlbGVjdGVkSXRlbXModmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5vblNlbGVjdGVkUm93cy5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJncmlkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgPHZlY3Rvci1maWx0ZXJzXHJcbiAgICAgIFtmaWVsZHNdPVwiZmlsdGVyc1wiXHJcbiAgICAgIChvblNlYXJjaCk9XCJsYXp5TG9hZGVkKHsgZmlsdGVyOiB0cnVlLCBkYXRhOiAkZXZlbnQgfSlcIlxyXG4gICAgICAoZm9ybUJ1aWxkZWQpPVwic3Vic2NyaWJlVG9GaWx0ZXJDaGFuZ2VzKClcIlxyXG4gICAgPjwvdmVjdG9yLWZpbHRlcnM+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlci1hY3Rpb25zIGZpZWxkXCIgKm5nSWY9XCJhZGRJdGVtTGFiZWxcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJleHBvcnRFeGNlbFwiIChjbGljayk9XCJvbkV4cG9ydEV4Y2VsLmVtaXQoKVwiIGNsYXNzPVwiZXhwb3J0LWJ1dHRvbiBleHBvcnQtZXhjZWxcIj5cclxuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtZmlsZVwiPjwvaT48c3Bhbj5FeGNlbDwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiAqbmdJZj1cImV4cG9ydFBERlwiIChjbGljayk9XCJvbkV4cG9ydFBERi5lbWl0KClcIiBjbGFzcz1cImV4cG9ydC1idXR0b24gZXhwb3J0LXBkZlwiPlxyXG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1maWxlXCI+PC9pPjxzcGFuPlBERjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPHZlY3Rvci1idXR0b25cclxuICAgICAgY2xhc3M9XCJhZGQtaXRlbS1idXR0b25cIlxyXG4gICAgICBbbGFiZWxdPVwiYWRkSXRlbUxhYmVsXCJcclxuICAgICAgKGNsaWNrKT1cIm9uQWRkLmVtaXQoKVwiXHJcbiAgICAgIFtyaWdodEljb25dPVwiYWRkSXRlbUJ1dHRvblBsdXNTaWduID8gJ3BpIHBpLXBsdXMnIDogJydcIlxyXG4gICAgPjwvdmVjdG9yLWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICA8dmVjdG9yLXBhbmVsIGNsYXNzPVwiZGF0YS10YWJsZS1wYW5lbFwiPlxyXG4gICAgICA8cC10YWJWaWV3IChvbkNoYW5nZSk9XCJvblRhYkNoYW5nZSgkZXZlbnQpXCIgKm5nSWY9XCJ0YWJzPy5sZW5ndGhcIj5cclxuICAgICAgICA8cC10YWJQYW5lbCAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIiBbaGVhZGVyXT1cInRhYi5uYW1lXCI+PC9wLXRhYlBhbmVsPlxyXG4gICAgICA8L3AtdGFiVmlldz5cclxuICAgICAgPHAtdGFibGVcclxuICAgICAgICBjdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlPVwiTW9zdHJhbmRvIHtmaXJzdH0gYXTDqSB7bGFzdH0gZGUge3RvdGFsUmVjb3Jkc30gcmVnaXN0cm9zXCJcclxuICAgICAgICBzb3J0TW9kZT1cInNpbmdsZVwiXHJcbiAgICAgICAgW3Jvd3NdPVwiMTBcIlxyXG4gICAgICAgIFtsYXp5XT1cInBhZ2luYXRpb24gJiYgIXZpcnR1YWxQYWdpbmF0aW9uXCJcclxuICAgICAgICBbdmFsdWVdPVwiZGF0YVwiXHJcbiAgICAgICAgW3BhZ2luYXRvcl09XCJwYWdpbmF0aW9uXCJcclxuICAgICAgICBbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3Jkc1wiXHJcbiAgICAgICAgW3Nob3dDdXJyZW50UGFnZVJlcG9ydF09XCJ0cnVlXCJcclxuICAgICAgICBbcm93c1BlclBhZ2VPcHRpb25zXT1cIlsxMCwgMjUsIDUwLCAxMDBdXCJcclxuICAgICAgICBbcmVzcG9uc2l2ZV09XCJ0cnVlXCJcclxuICAgICAgICBbcmVzaXphYmxlQ29sdW1uc109XCJ0cnVlXCJcclxuICAgICAgICBbc2Nyb2xsYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICBzY3JvbGxEaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiXHJcbiAgICAgICAgcmVzcG9uc2l2ZUxheW91dD1cInNjcm9sbFwiXHJcbiAgICAgICAgW3NlbGVjdGlvbk1vZGVdPVwic2VsZWN0aW9uTW9kZVwiXHJcbiAgICAgICAgWyhzZWxlY3Rpb24pXT1cInNlbGVjdGVkSXRlbXNcIlxyXG4gICAgICAgIChvblJvd1NlbGVjdCk9XCJjaGFuZ2VTZWxlY3RlZEl0ZW1zKCRldmVudClcIlxyXG4gICAgICAgIChvblJvd1Vuc2VsZWN0KT1cImNoYW5nZVNlbGVjdGVkSXRlbXMoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9uTGF6eUxvYWQpPVwibGF6eUxvYWRlZCh7IGZpbHRlcjogZmFsc2UsIGRhdGE6ICRldmVudCB9KVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICA8dHIgY2xhc3M9XCJoZWFkZXJcIj5cclxuICAgICAgICAgICAgPHRoIHN0eWxlPVwibWF4LXdpZHRoOiAxMDBweFwiIGNsYXNzPVwiY2VudGVyZWRcIiAqbmdJZj1cImhhc0FjdGlvbnNcIj5Bw6fDtWVzPC90aD5cclxuICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiIFtuZ1N0eWxlXT1cImdldENvbFN0eWxlKGNvbClcIiBbcFNvcnRhYmxlQ29sdW1uXT1cImNvbC5maWVsZFwiPlxyXG4gICAgICAgICAgICAgIHt7IGNvbC5oZWFkZXIgfX0gPHAtc29ydEljb24gW2ZpZWxkXT1cImNvbC5maWVsZFwiPjwvcC1zb3J0SWNvbj5cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yb3dEYXRhIGxldC1pdGVtPlxyXG4gICAgICAgICAgPHRyIGNsYXNzPVwicm93XCIgW3BTZWxlY3RhYmxlUm93XT1cInJvd0RhdGFcIj5cclxuICAgICAgICAgICAgPHRkICpuZ0lmPVwiaGFzQWN0aW9uc1wiIHN0eWxlPVwibWF4LXdpZHRoOiAxMDBweFwiIGNsYXNzPVwiY2VudGVyZWRcIj5cclxuICAgICAgICAgICAgICA8cC1tZW51ICNtZW51IFttb2RlbF09XCJpdGVtLmFjdGlvbnNcIiBbcG9wdXBdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiPjwvcC1tZW51PlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiYWN0aW9ucy1tZW51LWJ1dHRvbiBmYXMgZmEtY29nXCIgKGNsaWNrKT1cIm1lbnUudG9nZ2xlKCRldmVudClcIj48L2k+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZFxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjZWxsXCJcclxuICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImdldENlbGxDb250ZW50KGl0ZW0sIGNvbClcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjb2wgJiYgY29sLmNsaWNrRnVuY3Rpb24gJiYgY29sLmNsaWNrRnVuY3Rpb24oaXRlbSlcIlxyXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImdldENvbFN0eWxlKGNvbClcIlxyXG4gICAgICAgICAgICA+PC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZW1wdHltZXNzYWdlXCI+XHJcbiAgICAgICAgICA8dHIgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPHRkIGNsYXNzPVwibm8tcmVzdWx0c1wiIFthdHRyLmNvbHNwYW5dPVwiY29sdW1ucy5sZW5ndGggKyAxXCI+TmVuaHVtIHJlc3VsdGFkbyBlbmNvbnRyYWRvPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwicGFnaW5hdG9ycmlnaHRcIj4gPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW0gcFRlbXBsYXRlPVwicGFnaW5hdG9yZHJvcGRvd25pdGVtXCI+IHt7IGl0ZW0udmFsdWUgfX0gPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9wLXRhYmxlPlxyXG4gICAgPC92ZWN0b3ItcGFuZWw+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBZ0MsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUF1QyxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN4RyxPQUFPLEVBQWUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7OztBQU83RSxNQUFNLE9BQU8sa0JBQWtCO0lBbUY3QjtRQWpGTyxZQUFPLEdBQWtCLEVBQUUsQ0FBQztRQUU1QixTQUFJLEdBQVUsRUFBRSxDQUFDO1FBRWpCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFFakIsWUFBTyxHQUFrQixFQUFFLENBQUM7UUFFNUIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFFbEIs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YSxDQUFDLENBQUM7SUFDL0MsQ0FBQzs7K0dBeFBVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHdyQkErRGxCLGdCQUFnQiw4REM1RTdCLG93SEFtRkE7MkZEdEVhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxtQkFBbUI7MEVBTXRCLE9BQU87c0JBRGIsS0FBSztnQkFHQyxJQUFJO3NCQURWLEtBQUs7Z0JBR0MsV0FBVztzQkFEakIsS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0MsWUFBWTtzQkFEbEIsS0FBSztnQkFHQyxPQUFPO3NCQURiLEtBQUs7Z0JBR0MsWUFBWTtzQkFEbEIsS0FBSztnQkFHQyxVQUFVO3NCQURoQixLQUFLO2dCQUdDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFHSyxJQUFJO3NCQURkLEtBQUs7Z0JBTUMscUJBQXFCO3NCQUQzQixLQUFLO2dCQUdDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBR0MsYUFBYTtzQkFEbkIsS0FBSztnQkFHSyxNQUFNO3NCQURoQixLQUFLO2dCQW9CQyxVQUFVO3NCQURoQixNQUFNO2dCQUdBLFFBQVE7c0JBRGQsTUFBTTtnQkFHQSxLQUFLO3NCQURYLE1BQU07Z0JBR0EsYUFBYTtzQkFEbkIsTUFBTTtnQkFHQSxXQUFXO3NCQURqQixNQUFNO2dCQUdBLGNBQWM7c0JBRHBCLE1BQU07Z0JBR0EsZUFBZTtzQkFEckIsTUFBTTtnQkFHQSxnQkFBZ0I7c0JBRHRCLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEZpbHRlckNoYW5nZWRFdmVudCwgTGlzdEl0ZW0sIFN0YXR1cyB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IERhdGFUYWJsZUxhenlMb2FkRXZlbnQsIFRhYmxlQ29sdW1uLCBUYWJsZUNvbHVtblR5cGUgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZGF0YS10YWJsZS5tb2RlbCc7XHJcbmltcG9ydCB7IEZpbHRlckZpZWxkLCBGaWx0ZXJzQ29tcG9uZW50IH0gZnJvbSAnLi4vZmlsdGVycy9maWx0ZXJzLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3ZlY3Rvci1kYXRhLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS10YWJsZS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNvbHVtbnM6IFRhYmxlQ29sdW1uW10gPSBbXTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkYXRhOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGV4cG9ydEV4Y2VsID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZXhwb3J0UERGID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdG90YWxSZWNvcmRzID0gMDtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBmaWx0ZXJzOiBGaWx0ZXJGaWVsZFtdID0gW107XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWRkSXRlbUxhYmVsID0gJyc7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcGFnaW5hdGlvbiA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdmlydHVhbFBhZ2luYXRpb24gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdGFicyhfdGFiczogTGlzdEl0ZW1bXSkge1xyXG4gICAgdGhpcy5fdGFicyA9IF90YWJzO1xyXG4gICAgdGhpcy50YWJTZWxlY3RlZCA9IF90YWJzWzBdO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhZGRJdGVtQnV0dG9uUGx1c1NpZ24gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBoYXNBY3Rpb25zOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxlY3Rpb25Nb2RlOiAnc2luZ2xlJyB8ICdtdWx0aXBsZScgfCAnJyA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBoZWlnaHQoX2hlaWdodDogc3RyaW5nKSB7XHJcbiAgICBzd2l0Y2ggKF9oZWlnaHQpIHtcclxuICAgICAgY2FzZSAnc21hbGwnOlxyXG4gICAgICAgIHRoaXMuX2hlaWdodCA9ICczMDBweCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ21lZGl1bSc6XHJcbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gJzUwMHB4JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbGFyZ2UnOlxyXG4gICAgICAgIHRoaXMuX2hlaWdodCA9ICc3MDBweCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2Z1bGwnOlxyXG4gICAgICAgIHRoaXMuX2hlaWdodCA9ICdmbGV4JztcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLl9oZWlnaHQgPSAnMzAwcHgnO1xyXG4gICAgfVxyXG4gIH1cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25MYXp5TG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0YVRhYmxlTGF6eUxvYWRFdmVudD4oKTtcclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25GaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25BZGQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uRXhwb3J0RXhjZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uRXhwb3J0UERGID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvblNlbGVjdGVkUm93cyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvbkZpbHRlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlckNoYW5nZWRFdmVudD4oKTtcclxuICBAVmlld0NoaWxkKEZpbHRlcnNDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgcHVibGljIGZpbHRlcnNDb21wb25lbnQ6IEZpbHRlcnNDb21wb25lbnQgfCB1bmRlZmluZWQ7XHJcblxyXG4gIGdldCB0YWJzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYnM7XHJcbiAgfVxyXG4gIGdldCBoZWlnaHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faGVpZ2h0O1xyXG4gIH1cclxuICBwcml2YXRlIF9oZWlnaHQ6IHN0cmluZyA9ICdzbWFsbCc7XHJcblxyXG4gIHByaXZhdGUgX3RhYnM6IExpc3RJdGVtW10gPSBbXTtcclxuICBwcml2YXRlIGRyYXcgPSAxO1xyXG4gIHByaXZhdGUgZmlyc3RMYXp5TG9hZGVkRG9uZSA9IGZhbHNlO1xyXG4gIHByaXZhdGUgbGFzdExhenlMb2FkRXZlbnQ6IERhdGFUYWJsZUxhenlMb2FkRXZlbnQgfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSB0YWJTZWxlY3RlZDogTGlzdEl0ZW0gfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBmaWx0ZXJTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZEl0ZW1zOiBhbnkgPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5oZWlnaHQpIHtcclxuICAgICAgdGhpcy5oZWlnaHQgPSAnc21hbGwnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5wYWdpbmF0aW9uIHx8IHRoaXMudmlydHVhbFBhZ2luYXRpb24pIHtcclxuICAgICAgdGhpcy5maWx0ZXJzQ29tcG9uZW50Py5zZWFyY2goKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5maWx0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGdldENvbFN0eWxlKGNvbDogVGFibGVDb2x1bW4pIHtcclxuICAgIHJldHVybiB7ICdtaW4td2lkdGgnOiBjb2wud2lkdGggfTtcclxuICB9XHJcblxyXG4gIGxhenlMb2FkZWQocGFyYW1zOiB7IGZpbHRlcjogYm9vbGVhbjsgZGF0YTogYW55IH0gPSB7IGZpbHRlcjogZmFsc2UsIGRhdGE6IHsgc3RhcnQ6IDAsIHJvd3M6IDEwIH0gfSkge1xyXG4gICAgaWYgKCFwYXJhbXMuZmlsdGVyKSB7XHJcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmNvbHVtbnMubWFwKChjb2wpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgZGF0YTogY29sLmZpZWxkLFxyXG4gICAgICAgICAgbmFtZTogYCR7Y29sLmZpZWxkLnN1YnN0cmluZygwLCAxKS50b1VwcGVyQ2FzZSgpfSR7Y29sLmZpZWxkLnN1YnN0cmluZygxLCBjb2wuZmllbGQubGVuZ3RoKX1gLFxyXG4gICAgICAgICAgb3JkZXJhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgc2VhcmNoOiB7IHZhbHVlOiAnJywgcmVnZXg6IGZhbHNlIH0sXHJcbiAgICAgICAgICBzZWFyY2hhYmxlOiB0cnVlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAodGhpcy5oYXNBY3Rpb25zKSB7XHJcbiAgICAgICAgY29sdW1ucy51bnNoaWZ0KHtcclxuICAgICAgICAgIGRhdGE6ICdhY3RpdmUnLFxyXG4gICAgICAgICAgbmFtZTogJ0FjdGl2ZScsXHJcbiAgICAgICAgICBvcmRlcmFibGU6IHRydWUsXHJcbiAgICAgICAgICBzZWFyY2g6IHsgdmFsdWU6ICcnLCByZWdleDogZmFsc2UgfSxcclxuICAgICAgICAgIHNlYXJjaGFibGU6IHRydWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5sYXN0TGF6eUxvYWRFdmVudCA9IHtcclxuICAgICAgICAuLi4odGhpcy5sYXN0TGF6eUxvYWRFdmVudCB8fCAoe30gYXMgYW55KSksXHJcbiAgICAgICAgc3RhcnQ6IHBhcmFtcy5kYXRhLmZpcnN0LFxyXG4gICAgICAgIGxlbmd0aDogcGFyYW1zLmRhdGEucm93cyxcclxuICAgICAgICBkcmF3OiB0aGlzLmRyYXcrKyxcclxuICAgICAgICBvcmRlcjogcGFyYW1zLmRhdGEuc29ydEZpZWxkXHJcbiAgICAgICAgICA/IFtcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW46IHRoaXMuY29sdW1ucy5maW5kSW5kZXgoKGNvbCkgPT4gY29sLmZpZWxkID09PSBwYXJhbXMuZGF0YS5zb3J0RmllbGQpICsgMSxcclxuICAgICAgICAgICAgICAgIGRpcjogcGFyYW1zLmRhdGEuc29ydE9yZGVyID4gMCA/ICdhc2MnIDogJ2Rlc2MnLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICAgIDogW3sgY29sdW1uOiAwLCBkaXI6ICdkZXNjJyB9XSxcclxuICAgICAgICBjb2x1bW5zOiBjb2x1bW5zLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sYXN0TGF6eUxvYWRFdmVudCA9IHtcclxuICAgICAgICAuLi50aGlzLmxhc3RMYXp5TG9hZEV2ZW50LFxyXG4gICAgICAgIC4uLnBhcmFtcy5kYXRhLFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAodGhpcy50YWJTZWxlY3RlZCkge1xyXG4gICAgICAgIHRoaXMubGFzdExhenlMb2FkRXZlbnQgPSB7XHJcbiAgICAgICAgICAuLi4odGhpcy5sYXN0TGF6eUxvYWRFdmVudCB8fCAoe30gYXMgYW55KSksXHJcbiAgICAgICAgICAuLi57IFN0YXR1czogdGhpcy50YWJTZWxlY3RlZC5jb2RlIH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmZpcnN0TGF6eUxvYWRlZERvbmUpIHtcclxuICAgICAgdGhpcy5vbkxhenlMb2FkLmVtaXQodGhpcy5sYXN0TGF6eUxvYWRFdmVudCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZpcnN0TGF6eUxvYWRlZERvbmUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2VsbENvbnRlbnQoaXRlbTogYW55LCBjb2w6IFRhYmxlQ29sdW1uKSB7XHJcbiAgICBsZXQgY29udGVudCA9IGA8c3BhbiBjbGFzcz1cInAtY29sdW1uLXRpdGxlXCI+JHtjb2wuaGVhZGVyfTwvc3Bhbj48c3BhbiBjbGFzcz1cInctMTAwXCI+YDtcclxuICAgIGlmICghY29sLnR5cGUgfHwgY29sLnR5cGUgPT09IFRhYmxlQ29sdW1uVHlwZS5URVhUKSB7XHJcbiAgICAgIGNvbnRlbnQgKz0gaXRlbVtjb2wuZmllbGRdIHx8ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2x1bW5UeXBlLkNVU1RPTV9TVFlMRSkge1xyXG4gICAgICBjb250ZW50ICs9IGA8c3BhbiBjbGFzcz1cIiR7Y29sLnRleHRGaWVsZENsYXNzID8gaXRlbVtjb2wudGV4dEZpZWxkQ2xhc3NdIDogJyd9XCI+JHtpdGVtW2NvbC5maWVsZCB8fCAnJ119PC9zcGFuPmA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbHVtblR5cGUuQk9PTEVBTikge1xyXG4gICAgICBjb250ZW50ICs9IGA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJlZFwiPjxpIGNsYXNzPVwiIHN0YXR1cy10YWJsZS1maWVsZCBmYXMgZmEtJHtcclxuICAgICAgICBpdGVtW2NvbC5maWVsZF0gPyAnY2hlY2sgYm9vbGVhbi12YWx1ZS1wb3NpdGl2ZScgOiAndGltZXMgYm9vbGVhbi12YWx1ZS1uZWdhdGl2ZSdcclxuICAgICAgfVwiPjwvaT48L2Rpdj5gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2x1bW5UeXBlLkVOVU0gJiYgY29sLmdldEVudW1UcmFuc2xhdGVkKSB7XHJcbiAgICAgIGNvbnRlbnQgKz0gY29sLmdldEVudW1UcmFuc2xhdGVkKGl0ZW1bY29sLmZpZWxkXSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbHVtblR5cGUuREFURVRJTUUgJiYgaXRlbVtjb2wuZmllbGRdKSB7XHJcbiAgICAgIGNvbnN0IGRhdGVUaW1lID1cclxuICAgICAgICBpdGVtW2NvbC5maWVsZF0gaW5zdGFuY2VvZiBEYXRlID8gRGF0ZVRpbWUuZnJvbUpTRGF0ZShpdGVtW2NvbC5maWVsZF0pIDogRGF0ZVRpbWUuZnJvbUlTTyhpdGVtW2NvbC5maWVsZF0pO1xyXG4gICAgICBjb250ZW50ICs9IGRhdGVUaW1lLnRvRm9ybWF0KCdkZC9NTS95eXl5IEhIOm1tJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbHVtblR5cGUuU1RBVFVTX0JBREdFKSB7XHJcbiAgICAgIGNvbnRlbnQgKz0gYDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlcmVkXCI+PGkgY2xhc3M9XCJmYXMgZmEtY2lyY2xlIHN0YXR1cy10YWJsZS1maWVsZCAke3RoaXMuZ2V0U3RhdHVzQ29sb3IoXHJcbiAgICAgICAgaXRlbVtjb2wuZmllbGRdXHJcbiAgICAgICl9XCI+PC9pPjwvZGl2PmA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbHVtblR5cGUuQUNUSVZFX0JPT0xFQU5fQkFER0UpIHtcclxuICAgICAgY29udGVudCArPSBgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyZWRcIj48aSBjbGFzcz1cImZhcyBmYS1jaXJjbGUgc3RhdHVzLXRhYmxlLWZpZWxkICR7dGhpcy5nZXRBY3RpdmVTdGF0dXNDb2xvcihcclxuICAgICAgICBpdGVtW2NvbC5maWVsZF1cclxuICAgICAgKX1cIj48L2k+PC9kaXY+YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sdW1uVHlwZS5CVVRUT04pIHtcclxuICAgICAgY29udGVudCArPSBgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyZWRcIj48aSBjbGFzcz1cImZhcyAke1xyXG4gICAgICAgIGNvbC5pY29uIHx8ICdmYS1jaXJjbGUnXHJcbiAgICAgIH0gc3RhdHVzLXRhYmxlLWZpZWxkIHRhYmxlLWJ1dHRvblwiPjwvaT48L2Rpdj5gO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnRlbnQgKz0gYDwvc3Bhbj5gO1xyXG4gICAgcmV0dXJuIGNvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBvblRhYkNoYW5nZSgkZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy50YWJTZWxlY3RlZCA9IHRoaXMudGFic1skZXZlbnQuaW5kZXhdO1xyXG4gICAgdGhpcy5sYXp5TG9hZGVkKHsgZmlsdGVyOiB0cnVlLCBkYXRhOiB7fSB9KTtcclxuICB9XHJcblxyXG4gIHN1YnNjcmliZVRvRmlsdGVyQ2hhbmdlcygpIHtcclxuICAgIHRoaXMuZmlsdGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmZpbHRlclN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICAgIE9iamVjdC5rZXlzKHRoaXMuZmlsdGVyc0NvbXBvbmVudD8uZm9ybUdyb3VwLmNvbnRyb2xzIHx8IHt9KS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgdGhpcy5maWx0ZXJTdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICAgIHRoaXMuZmlsdGVyc0NvbXBvbmVudD8uZm9ybUdyb3VwXHJcbiAgICAgICAgICAuZ2V0KGtleSlcclxuICAgICAgICAgID8udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDMwMCkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uRmlsdGVyQ2hhbmdlZC5lbWl0KHsgZmllbGQ6IGtleSwgdmFsdWUgfSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLm9uRmlsdGVyQ2hhbmdlZC5lbWl0KHsgZmllbGQ6IGtleSwgdmFsdWU6IHRoaXMuZmlsdGVyc0NvbXBvbmVudD8uZm9ybUdyb3VwLmdldChrZXkpPy52YWx1ZSB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxpc3RIYXNBY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YS5zb21lKChpdGVtKSA9PiBpdGVtLmFjdGlvbnM/Lmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFN0YXR1c0NvbG9yKHN0YXR1czogU3RhdHVzKSB7XHJcbiAgICBzd2l0Y2ggKHN0YXR1cykge1xyXG4gICAgICBjYXNlIFN0YXR1cy5QRU5ESU5HOlxyXG4gICAgICAgIHJldHVybiAnd2FybmluZyc7XHJcbiAgICAgIGNhc2UgU3RhdHVzLkFQUFJPVkVEOlxyXG4gICAgICAgIHJldHVybiAnc3VjY2Vzcyc7XHJcbiAgICAgIGNhc2UgU3RhdHVzLlJFSkVDVEVEOlxyXG4gICAgICAgIHJldHVybiAnZXJyb3InO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRBY3RpdmVTdGF0dXNDb2xvcihhY3RpdmU6IGJvb2xlYW4pIHtcclxuICAgIHJldHVybiBhY3RpdmUgPyAnc3VjY2VzcycgOiAnZXJyb3InO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZVNlbGVjdGVkSXRlbXModmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5vblNlbGVjdGVkUm93cy5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJncmlkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgPHZlY3Rvci1maWx0ZXJzXHJcbiAgICAgIFtmaWVsZHNdPVwiZmlsdGVyc1wiXHJcbiAgICAgIChvblNlYXJjaCk9XCJsYXp5TG9hZGVkKHsgZmlsdGVyOiB0cnVlLCBkYXRhOiAkZXZlbnQgfSlcIlxyXG4gICAgICAoZm9ybUJ1aWxkZWQpPVwic3Vic2NyaWJlVG9GaWx0ZXJDaGFuZ2VzKClcIlxyXG4gICAgPjwvdmVjdG9yLWZpbHRlcnM+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlci1hY3Rpb25zIGZpZWxkXCIgKm5nSWY9XCJhZGRJdGVtTGFiZWxcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJleHBvcnRFeGNlbFwiIChjbGljayk9XCJvbkV4cG9ydEV4Y2VsLmVtaXQoKVwiIGNsYXNzPVwiZXhwb3J0LWJ1dHRvbiBleHBvcnQtZXhjZWxcIj5cclxuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtZmlsZVwiPjwvaT48c3Bhbj5FeGNlbDwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiAqbmdJZj1cImV4cG9ydFBERlwiIChjbGljayk9XCJvbkV4cG9ydFBERi5lbWl0KClcIiBjbGFzcz1cImV4cG9ydC1idXR0b24gZXhwb3J0LXBkZlwiPlxyXG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1maWxlXCI+PC9pPjxzcGFuPlBERjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPHZlY3Rvci1idXR0b25cclxuICAgICAgY2xhc3M9XCJhZGQtaXRlbS1idXR0b25cIlxyXG4gICAgICBbbGFiZWxdPVwiYWRkSXRlbUxhYmVsXCJcclxuICAgICAgKGNsaWNrKT1cIm9uQWRkLmVtaXQoKVwiXHJcbiAgICAgIFtyaWdodEljb25dPVwiYWRkSXRlbUJ1dHRvblBsdXNTaWduID8gJ3BpIHBpLXBsdXMnIDogJydcIlxyXG4gICAgPjwvdmVjdG9yLWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICA8dmVjdG9yLXBhbmVsIGNsYXNzPVwiZGF0YS10YWJsZS1wYW5lbFwiPlxyXG4gICAgICA8cC10YWJWaWV3IChvbkNoYW5nZSk9XCJvblRhYkNoYW5nZSgkZXZlbnQpXCIgKm5nSWY9XCJ0YWJzPy5sZW5ndGhcIj5cclxuICAgICAgICA8cC10YWJQYW5lbCAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIiBbaGVhZGVyXT1cInRhYi5uYW1lXCI+PC9wLXRhYlBhbmVsPlxyXG4gICAgICA8L3AtdGFiVmlldz5cclxuICAgICAgPHAtdGFibGVcclxuICAgICAgICBjdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlPVwiTW9zdHJhbmRvIHtmaXJzdH0gYXTDqSB7bGFzdH0gZGUge3RvdGFsUmVjb3Jkc30gcmVnaXN0cm9zXCJcclxuICAgICAgICBzb3J0TW9kZT1cInNpbmdsZVwiXHJcbiAgICAgICAgW3Jvd3NdPVwiMTBcIlxyXG4gICAgICAgIFtsYXp5XT1cInBhZ2luYXRpb24gJiYgIXZpcnR1YWxQYWdpbmF0aW9uXCJcclxuICAgICAgICBbdmFsdWVdPVwiZGF0YVwiXHJcbiAgICAgICAgW3BhZ2luYXRvcl09XCJwYWdpbmF0aW9uXCJcclxuICAgICAgICBbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3Jkc1wiXHJcbiAgICAgICAgW3Nob3dDdXJyZW50UGFnZVJlcG9ydF09XCJ0cnVlXCJcclxuICAgICAgICBbcm93c1BlclBhZ2VPcHRpb25zXT1cIlsxMCwgMjUsIDUwLCAxMDBdXCJcclxuICAgICAgICBbcmVzcG9uc2l2ZV09XCJ0cnVlXCJcclxuICAgICAgICBbcmVzaXphYmxlQ29sdW1uc109XCJ0cnVlXCJcclxuICAgICAgICBbc2Nyb2xsYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICBzY3JvbGxEaXJlY3Rpb249XCJ2ZXJ0aWNhbFwiXHJcbiAgICAgICAgcmVzcG9uc2l2ZUxheW91dD1cInNjcm9sbFwiXHJcbiAgICAgICAgW3Njcm9sbEhlaWdodF09XCJoZWlnaHRcIlxyXG4gICAgICAgIFtzZWxlY3Rpb25Nb2RlXT1cInNlbGVjdGlvbk1vZGVcIlxyXG4gICAgICAgIFsoc2VsZWN0aW9uKV09XCJzZWxlY3RlZEl0ZW1zXCJcclxuICAgICAgICAob25Sb3dTZWxlY3QpPVwiY2hhbmdlU2VsZWN0ZWRJdGVtcygkZXZlbnQpXCJcclxuICAgICAgICAob25Sb3dVbnNlbGVjdCk9XCJjaGFuZ2VTZWxlY3RlZEl0ZW1zKCRldmVudClcIlxyXG4gICAgICAgIChvbkxhenlMb2FkKT1cImxhenlMb2FkZWQoeyBmaWx0ZXI6IGZhbHNlLCBkYXRhOiAkZXZlbnQgfSlcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG4gICAgICAgICAgPHRyIGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDx0aCBzdHlsZT1cIm1heC13aWR0aDogMTAwcHhcIiBjbGFzcz1cImNlbnRlcmVkXCIgKm5nSWY9XCJoYXNBY3Rpb25zXCI+QcOnw7VlczwvdGg+XHJcbiAgICAgICAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIiBbbmdTdHlsZV09XCJnZXRDb2xTdHlsZShjb2wpXCIgW3BTb3J0YWJsZUNvbHVtbl09XCJjb2wuZmllbGRcIj5cclxuICAgICAgICAgICAgICB7eyBjb2wuaGVhZGVyIH19IDxwLXNvcnRJY29uIFtmaWVsZF09XCJjb2wuZmllbGRcIj48L3Atc29ydEljb24+XHJcbiAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtcm93RGF0YSBsZXQtaXRlbT5cclxuICAgICAgICAgIDx0ciBjbGFzcz1cInJvd1wiIFtwU2VsZWN0YWJsZVJvd109XCJyb3dEYXRhXCI+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cImhhc0FjdGlvbnNcIiBzdHlsZT1cIm1heC13aWR0aDogMTAwcHhcIiBjbGFzcz1cImNlbnRlcmVkXCI+XHJcbiAgICAgICAgICAgICAgPHAtbWVudSAjbWVudSBbbW9kZWxdPVwiaXRlbS5hY3Rpb25zXCIgW3BvcHVwXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIj48L3AtbWVudT5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImFjdGlvbnMtbWVudS1idXR0b24gZmFzIGZhLWNvZ1wiIChjbGljayk9XCJtZW51LnRvZ2dsZSgkZXZlbnQpXCI+PC9pPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGRcclxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2VsbFwiXHJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJnZXRDZWxsQ29udGVudChpdGVtLCBjb2wpXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiY29sICYmIGNvbC5jbGlja0Z1bmN0aW9uICYmIGNvbC5jbGlja0Z1bmN0aW9uKGl0ZW0pXCJcclxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJnZXRDb2xTdHlsZShjb2wpXCJcclxuICAgICAgICAgICAgPjwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxyXG4gICAgICAgICAgPHRyIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm5vLXJlc3VsdHNcIiBbYXR0ci5jb2xzcGFuXT1cImNvbHVtbnMubGVuZ3RoICsgMVwiPk5lbmh1bSByZXN1bHRhZG8gZW5jb250cmFkbzwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cInBhZ2luYXRvcnJpZ2h0XCI+IDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtIHBUZW1wbGF0ZT1cInBhZ2luYXRvcmRyb3Bkb3duaXRlbVwiPiB7eyBpdGVtLnZhbHVlIH19IDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvcC10YWJsZT5cclxuICAgIDwvdmVjdG9yLXBhbmVsPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -19,14 +19,19 @@ export class HttpInterceptorProvider {
19
19
  this.refreshTokenSubject = new BehaviorSubject(null);
20
20
  }
21
21
  intercept(request, next) {
22
+ const isExternalUrl = request.headers.get('external-url');
22
23
  if (!this.isRefreshTokenRequest(request.url)) {
23
- request = this.addTokenIfPresent(request);
24
- request = this.addEncryptPasswordIfPresent(request);
25
- request = this.addAccountUuidIfPresent(request);
26
- request = this.addModifierIdIfPresent(request);
27
- request = this.addContentType(request);
24
+ if (!isExternalUrl) {
25
+ request = this.addTokenIfPresent(request);
26
+ request = this.addEncryptPasswordIfPresent(request);
27
+ request = this.addAccountUuidIfPresent(request);
28
+ request = this.addModifierIdIfPresent(request);
29
+ request = this.addContentType(request);
30
+ }
31
+ }
32
+ if (!isExternalUrl) {
33
+ request = this.fixUrl(request);
28
34
  }
29
- request = this.fixUrl(request);
30
35
  const noSpinnerHeader = request.headers.get('no-spinner');
31
36
  if (!noSpinnerHeader && !request.url.startsWith('/assets/')) {
32
37
  this.loadingService.loading$.next(true);
@@ -44,7 +49,9 @@ export class HttpInterceptorProvider {
44
49
  this.errorMessageService.genericModalErrorMessage$.next('Usuário sem privilégios para realizar essa ação');
45
50
  }
46
51
  else {
47
- this.messageService.add({ severity: MessageStatus.ERROR, summary: 'Erro', detail: response.error });
52
+ if (!isExternalUrl) {
53
+ this.messageService.add({ severity: MessageStatus.ERROR, summary: 'Erro', detail: response.error });
54
+ }
48
55
  }
49
56
  }
50
57
  if (this.activeRequests.includes(this.getUrlWithoutParams(response.url))) {
@@ -173,4 +180,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
173
180
  type: Inject,
174
181
  args: ['environment']
175
182
  }] }]; } });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZWN0b3ItY29tcG9uZW50cy9zcmMvbGliL2ludGVyY2VwdG9ycy9odHRwLWludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFNTCxZQUFZLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZUFBZSxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7QUFJMUMsTUFBTSxPQUFPLHVCQUF1QjtJQUtsQyxZQUNVLGNBQThCLEVBQzlCLG1CQUF3QyxFQUN4QyxjQUE4QixFQUM5QixXQUF3QixFQUN4QixjQUE4QixFQUNQLFdBQWdCO1FBTHZDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDUCxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQVZ6QyxtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUM5QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQix3QkFBbUIsR0FBeUIsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7SUFTaEYsQ0FBQztJQUVKLFNBQVMsQ0FBQyxPQUF5QixFQUFFLElBQWlCO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFC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QUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEh0dHBFcnJvclJlc3BvbnNlLFxyXG4gIEh0dHBFdmVudCxcclxuICBIdHRwSGFuZGxlcixcclxuICBIdHRwSW50ZXJjZXB0b3IsXHJcbiAgSHR0cFJlcXVlc3QsXHJcbiAgSHR0cFJlc3BvbnNlLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgTWVzc2FnZVN0YXR1cyB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBFcnJvck1lc3NhZ2VTZXJ2aWNlLCBMb2FkaW5nU2VydmljZSwgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBIdHRwSW50ZXJjZXB0b3JQcm92aWRlciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgcHJpdmF0ZSBhY3RpdmVSZXF1ZXN0czogc3RyaW5nW10gPSBbXTtcclxuICBwcml2YXRlIGlzUmVmcmVzaGluZyA9IGZhbHNlO1xyXG4gIHByaXZhdGUgcmVmcmVzaFRva2VuU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVycm9yTWVzc2FnZVNlcnZpY2U6IEVycm9yTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxvYWRpbmdTZXJ2aWNlOiBMb2FkaW5nU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueVxyXG4gICkge31cclxuXHJcbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG4gICAgaWYgKCF0aGlzLmlzUmVmcmVzaFRva2VuUmVxdWVzdChyZXF1ZXN0LnVybCkpIHtcclxuICAgICAgcmVxdWVzdCA9IHRoaXMuYWRkVG9rZW5JZlByZXNlbnQocmVxdWVzdCk7XHJcbiAgICAgIHJlcXVlc3QgPSB0aGlzLmFkZEVuY3J5cHRQYXNzd29yZElmUHJlc2VudChyZXF1ZXN0KTtcclxuICAgICAgcmVxdWVzdCA9IHRoaXMuYWRkQWNjb3VudFV1aWRJZlByZXNlbnQocmVxdWVzdCk7XHJcbiAgICAgIHJlcXVlc3QgPSB0aGlzLmFkZE1vZGlmaWVySWRJZlByZXNlbnQocmVxdWVzdCk7XHJcbiAgICAgIHJlcXVlc3QgPSB0aGlzLmFkZENvbnRlbnRUeXBlKHJlcXVlc3QpO1xyXG4gICAgfVxyXG4gICAgcmVxdWVzdCA9IHRoaXMuZml4VXJsKHJlcXVlc3QpO1xyXG5cclxuICAgIGNvbnN0IG5vU3Bpbm5lckhlYWRlciA9IHJlcXVlc3QuaGVhZGVycy5nZXQoJ25vLXNwaW5uZXInKTtcclxuICAgIGlmICghbm9TcGlubmVySGVhZGVyICYmICFyZXF1ZXN0LnVybC5zdGFydHNXaXRoKCcvYXNzZXRzLycpKSB7XHJcbiAgICAgIHRoaXMubG9hZGluZ1NlcnZpY2UubG9hZGluZyQubmV4dCh0cnVlKTtcclxuICAgICAgdGhpcy5hY3RpdmVSZXF1ZXN0cy5wdXNoKHRoaXMuZ2V0VXJsV2l0aG91dFBhcmFtcyhyZXF1ZXN0LnVybCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChyZXNwb25zZTogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2UuZXJyb3I/Lm1lc3NhZ2VzPy5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlU2VydmljZS5nZW5lcmljTW9kYWxFcnJvck1lc3NhZ2UkLm5leHQoXHJcbiAgICAgICAgICAgIHJlc3BvbnNlLmVycm9yLm1lc3NhZ2VzW3Jlc3BvbnNlLmVycm9yLm1lc3NhZ2VzLmxlbmd0aCAtIDFdXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMuaXNSZWZyZXNoVG9rZW5SZXF1ZXN0KHJlcXVlc3QudXJsKSkge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZTQwMUVycm9yKHJlcXVlc3QsIG5leHQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDAzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlU2VydmljZS5nZW5lcmljTW9kYWxFcnJvck1lc3NhZ2UkLm5leHQoJ1VzdcOhcmlvIHNlbSBwcml2aWzDqWdpb3MgcGFyYSByZWFsaXphciBlc3NhIGHDp8OjbycpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogTWVzc2FnZVN0YXR1cy5FUlJPUiwgc3VtbWFyeTogJ0Vycm8nLCBkZXRhaWw6IHJlc3BvbnNlLmVycm9yIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5hY3RpdmVSZXF1ZXN0cy5pbmNsdWRlcyh0aGlzLmdldFVybFdpdGhvdXRQYXJhbXMocmVzcG9uc2UudXJsKSkpIHtcclxuICAgICAgICAgIHRoaXMuYWN0aXZlUmVxdWVzdHMuc3BsaWNlKFxyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVJlcXVlc3RzLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbSA9PT0gdGhpcy5nZXRVcmxXaXRob3V0UGFyYW1zKHJlcXVlc3QudXJsKSksXHJcbiAgICAgICAgICAgIDFcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuYWN0aXZlUmVxdWVzdHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ1NlcnZpY2UubG9hZGluZyQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihyZXNwb25zZSk7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0YXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlIGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5hY3RpdmVSZXF1ZXN0cy5pbmNsdWRlcyh0aGlzLmdldFVybFdpdGhvdXRQYXJhbXMocmVzcG9uc2UudXJsKSkpIHtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVSZXF1ZXN0cy5zcGxpY2UoXHJcbiAgICAgICAgICAgICAgdGhpcy5hY3RpdmVSZXF1ZXN0cy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0gPT09IHRoaXMuZ2V0VXJsV2l0aG91dFBhcmFtcyhyZXF1ZXN0LnVybCkpLFxyXG4gICAgICAgICAgICAgIDFcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmFjdGl2ZVJlcXVlc3RzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIHRoaXMubG9hZGluZ1NlcnZpY2UubG9hZGluZyQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIE9iamVjdChyZXNwb25zZS5ib2R5KS5oYXNPd25Qcm9wZXJ0eSgnc3RhdHVzQ29kZScpICYmXHJcbiAgICAgICAgICAgIHJlc3BvbnNlLmJvZHkuc3RhdHVzQ29kZSA9PT0gNDAwICYmXHJcbiAgICAgICAgICAgIHJlc3BvbnNlLmJvZHkubWVzc2FnZXM/Lmxlbmd0aFxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlU2VydmljZS5nZW5lcmljTW9kYWxFcnJvck1lc3NhZ2UkLm5leHQoXHJcbiAgICAgICAgICAgICAgcmVzcG9uc2UuYm9keS5tZXNzYWdlc1tyZXNwb25zZS5ib2R5Lm1lc3NhZ2VzLmxlbmd0aCAtIDFdXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNSZWZyZXNoVG9rZW5SZXF1ZXN0KHVybDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdXJsLmluY2x1ZGVzKCdjb25uZWN0L3Rva2VuJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFVybFdpdGhvdXRQYXJhbXMoZnVsbFVybDogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWZ1bGxVcmwpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRlY29kZWRVcmwgPSBkZWNvZGVVUklDb21wb25lbnQoZnVsbFVybC50cmltKCkpO1xyXG5cclxuICAgIGlmICghZGVjb2RlZFVybC5pbmNsdWRlcygnPycpKSB7XHJcbiAgICAgIHJldHVybiBkZWNvZGVkVXJsO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkZWNvZGVkVXJsLnN1YnN0cmluZygwLCBkZWNvZGVkVXJsLmluZGV4T2YoJz8nKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZFRva2VuSWZQcmVzZW50KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pOiBIdHRwUmVxdWVzdDxhbnk+IHtcclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRUb2tlbigpO1xyXG4gICAgaWYgKHRva2VuKSB7XHJcbiAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHsgc2V0SGVhZGVyczogeyBBdXRob3JpemF0aW9uOiB0b2tlbiB9IH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZE1vZGlmaWVySWRJZlByZXNlbnQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55Pik6IEh0dHBSZXF1ZXN0PGFueT4ge1xyXG4gICAgY29uc3QgbW9kaWZpZXJJZCA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcklkKCk7XHJcbiAgICBpZiAobW9kaWZpZXJJZCAmJiByZXF1ZXN0Lm1ldGhvZCAhPT0gJ0dFVCcgJiYgIShyZXF1ZXN0LmJvZHkgaW5zdGFuY2VvZiBGb3JtRGF0YSkpIHtcclxuICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoeyBib2R5OiB7IC4uLnJlcXVlc3QuYm9keSwgbW9kaWZpZXJJZCB9IH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZEVuY3J5cHRQYXNzd29yZElmUHJlc2VudChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KTogSHR0cFJlcXVlc3Q8YW55PiB7XHJcbiAgICBjb25zdCBlbmNyaXB0UGFzc3dvcmQgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldCgnZW5jcnlwdFBhc3N3b3JkJyk7XHJcbiAgICBpZiAocmVxdWVzdC5tZXRob2QgIT09ICdHRVQnICYmIGVuY3JpcHRQYXNzd29yZCkge1xyXG4gICAgICBpZiAocmVxdWVzdC5ib2R5IGluc3RhbmNlb2YgRm9ybURhdGEpIHtcclxuICAgICAgICByZXF1ZXN0LmJvZHkuYXBwZW5kKCdlbmNyaXB0UGFzc3dvcmQnLCBlbmNyaXB0UGFzc3dvcmQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHsgYm9keTogeyAuLi5yZXF1ZXN0LmJvZHksIGVuY3JpcHRQYXNzd29yZCB9IH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVxdWVzdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkQWNjb3VudFV1aWRJZlByZXNlbnQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55Pik6IEh0dHBSZXF1ZXN0PGFueT4ge1xyXG4gICAgY29uc3QgYWNjb3VudFV1aWQgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldCgnYWNjb3VudFV1aWQnKTtcclxuICAgIGlmIChyZXF1ZXN0Lm1ldGhvZCAhPT0gJ0dFVCcgJiYgYWNjb3VudFV1aWQpIHtcclxuICAgICAgaWYgKHJlcXVlc3QuYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhKSB7XHJcbiAgICAgICAgcmVxdWVzdC5ib2R5LmFwcGVuZCgnYWNjb3VudFV1aWQnLCBhY2NvdW50VXVpZCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoeyBib2R5OiB7IC4uLnJlcXVlc3QuYm9keSwgYWNjb3VudFV1aWQgfSB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZENvbnRlbnRUeXBlKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pOiBIdHRwUmVxdWVzdDxhbnk+IHtcclxuICAgIHJldHVybiByZXF1ZXN0LmNsb25lKHsgc2V0SGVhZGVyczogeyBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nIH0gfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpeFVybChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KTogSHR0cFJlcXVlc3Q8YW55PiB7XHJcbiAgICBpZiAodGhpcy5pc0F1dGhSZXF1ZXN0KHJlcXVlc3QudXJsKSB8fCB0aGlzLmlzUHJvZmlsZXNSZXF1ZXN0KHJlcXVlc3QudXJsKSkge1xyXG4gICAgICByZXR1cm4gcmVxdWVzdC5jbG9uZSh7XHJcbiAgICAgICAgdXJsOiBgJHt0aGlzLmVudmlyb25tZW50LkFQSV9VUkwucmVwbGFjZSgnL2FwaScsICcnKX0vJHtyZXF1ZXN0LnVybH1gLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXF1ZXN0LmNsb25lKHtcclxuICAgICAgdXJsOiByZXF1ZXN0LnVybC5zdGFydHNXaXRoKCcvYXNzZXRzLycpID8gcmVxdWVzdC51cmwgOiBgJHt0aGlzLmVudmlyb25tZW50LkFQSV9VUkx9LyR7cmVxdWVzdC51cmx9YCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0F1dGhSZXF1ZXN0KHVybDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdXJsLmluY2x1ZGVzKCdjb25uZWN0L3Rva2VuJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzUHJvZmlsZXNSZXF1ZXN0KHVybDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdXJsLmluY2x1ZGVzKCdjb25uZWN0L3VzZXJpbmZvJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZTQwMUVycm9yKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNSZWZyZXNoaW5nKSB7XHJcbiAgICAgIHRoaXMuaXNSZWZyZXNoaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5yZWZyZXNoVG9rZW5TdWJqZWN0Lm5leHQobnVsbCk7XHJcblxyXG4gICAgICBjb25zdCByZWZyZXNoVG9rZW4gPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFJlZnJlc2hUb2tlbigpO1xyXG4gICAgICBpZiAocmVmcmVzaFRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW5CeVJlZnJlc2hUb2tlbihyZWZyZXNoVG9rZW4pLnBpcGUoXHJcbiAgICAgICAgICBzd2l0Y2hNYXAoKHRva2VuOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pc1JlZnJlc2hpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW5TdWJqZWN0Lm5leHQodGhpcy5zdG9yYWdlU2VydmljZS5nZXRUb2tlbigpKTtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHRoaXMuYWRkVG9rZW5JZlByZXNlbnQocmVxdWVzdCkpO1xyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pc1JlZnJlc2hpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5sb2dvdXQoKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmlzUmVmcmVzaGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KCk7XHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IobmV3IEVycm9yKCkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucmVmcmVzaFRva2VuU3ViamVjdC5waXBlKFxyXG4gICAgICBmaWx0ZXIoKHRva2VuKSA9PiB0b2tlbiAhPT0gbnVsbCksXHJcbiAgICAgIHRha2UoMSksXHJcbiAgICAgIHN3aXRjaE1hcCgodG9rZW4pID0+IG5leHQuaGFuZGxlKHRoaXMuYWRkVG9rZW5JZlByZXNlbnQocmVxdWVzdCkpKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZWN0b3ItY29tcG9uZW50cy9zcmMvbGliL2ludGVyY2VwdG9ycy9odHRwLWludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFNTCxZQUFZLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZUFBZSxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7QUFJMUMsTUFBTSxPQUFPLHVCQUF1QjtJQUlsQyxZQUNVLGNBQThCLEVBQzlCLG1CQUF3QyxFQUN4QyxjQUE4QixFQUM5QixXQUF3QixFQUN4QixjQUE4QixFQUNQLFdBQWdCO1FBTHZDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDUCxnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQVR6QyxtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUM5QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQix3QkFBbUIsR0FBeUIsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7SUFRaEYsQ0FBQztJQUVKLFNBQVMsQ0FBQyxPQUF5QixFQUFFLElBQWlCO1FBQ3BELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxP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QUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUNuRSxDQUFDO0lBQ0osQ0FBQzs7b0hBN01VLHVCQUF1QiwwS0FVeEIsYUFBYTt3SEFWWix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVTs7MEJBV04sTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBIdHRwRXJyb3JSZXNwb25zZSxcclxuICBIdHRwRXZlbnQsXHJcbiAgSHR0cEhhbmRsZXIsXHJcbiAgSHR0cEludGVyY2VwdG9yLFxyXG4gIEh0dHBSZXF1ZXN0LFxyXG4gIEh0dHBSZXNwb25zZSxcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTdGF0dXMgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSwgRXJyb3JNZXNzYWdlU2VydmljZSwgTG9hZGluZ1NlcnZpY2UsIFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSHR0cEludGVyY2VwdG9yUHJvdmlkZXIgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG4gIHByaXZhdGUgYWN0aXZlUmVxdWVzdHM6IHN0cmluZ1tdID0gW107XHJcbiAgcHJpdmF0ZSBpc1JlZnJlc2hpbmcgPSBmYWxzZTtcclxuICBwcml2YXRlIHJlZnJlc2hUb2tlblN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVycm9yTWVzc2FnZVNlcnZpY2U6IEVycm9yTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxvYWRpbmdTZXJ2aWNlOiBMb2FkaW5nU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueVxyXG4gICkge31cclxuXHJcbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG4gICAgY29uc3QgaXNFeHRlcm5hbFVybCA9IHJlcXVlc3QuaGVhZGVycy5nZXQoJ2V4dGVybmFsLXVybCcpO1xyXG5cclxuICAgIGlmICghdGhpcy5pc1JlZnJlc2hUb2tlblJlcXVlc3QocmVxdWVzdC51cmwpKSB7XHJcbiAgICAgIGlmICghaXNFeHRlcm5hbFVybCkge1xyXG4gICAgICAgIHJlcXVlc3QgPSB0aGlzLmFkZFRva2VuSWZQcmVzZW50KHJlcXVlc3QpO1xyXG4gICAgICAgIHJlcXVlc3QgPSB0aGlzLmFkZEVuY3J5cHRQYXNzd29yZElmUHJlc2VudChyZXF1ZXN0KTtcclxuICAgICAgICByZXF1ZXN0ID0gdGhpcy5hZGRBY2NvdW50VXVpZElmUHJlc2VudChyZXF1ZXN0KTtcclxuICAgICAgICByZXF1ZXN0ID0gdGhpcy5hZGRNb2RpZmllcklkSWZQcmVzZW50KHJlcXVlc3QpO1xyXG4gICAgICAgIHJlcXVlc3QgPSB0aGlzLmFkZENvbnRlbnRUeXBlKHJlcXVlc3QpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFpc0V4dGVybmFsVXJsKSB7XHJcbiAgICAgIHJlcXVlc3QgPSB0aGlzLmZpeFVybChyZXF1ZXN0KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBub1NwaW5uZXJIZWFkZXIgPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KCduby1zcGlubmVyJyk7XHJcbiAgICBpZiAoIW5vU3Bpbm5lckhlYWRlciAmJiAhcmVxdWVzdC51cmwuc3RhcnRzV2l0aCgnL2Fzc2V0cy8nKSkge1xyXG4gICAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLmxvYWRpbmckLm5leHQodHJ1ZSk7XHJcbiAgICAgIHRoaXMuYWN0aXZlUmVxdWVzdHMucHVzaCh0aGlzLmdldFVybFdpdGhvdXRQYXJhbXMocmVxdWVzdC51cmwpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigocmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZVNlcnZpY2UuZ2VuZXJpY01vZGFsRXJyb3JNZXNzYWdlJC5uZXh0KFxyXG4gICAgICAgICAgICByZXNwb25zZS5lcnJvci5tZXNzYWdlc1tyZXNwb25zZS5lcnJvci5tZXNzYWdlcy5sZW5ndGggLSAxXVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzUmVmcmVzaFRva2VuUmVxdWVzdChyZXF1ZXN0LnVybCkpIHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwMSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGU0MDFFcnJvcihyZXF1ZXN0LCBuZXh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwMykge1xyXG4gICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZVNlcnZpY2UuZ2VuZXJpY01vZGFsRXJyb3JNZXNzYWdlJC5uZXh0KCdVc3XDoXJpbyBzZW0gcHJpdmlsw6lnaW9zIHBhcmEgcmVhbGl6YXIgZXNzYSBhw6fDo28nKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICghaXNFeHRlcm5hbFVybCkge1xyXG4gICAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6IE1lc3NhZ2VTdGF0dXMuRVJST1IsIHN1bW1hcnk6ICdFcnJvJywgZGV0YWlsOiByZXNwb25zZS5lcnJvciB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5hY3RpdmVSZXF1ZXN0cy5pbmNsdWRlcyh0aGlzLmdldFVybFdpdGhvdXRQYXJhbXMocmVzcG9uc2UudXJsKSkpIHtcclxuICAgICAgICAgIHRoaXMuYWN0aXZlUmVxdWVzdHMuc3BsaWNlKFxyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVJlcXVlc3RzLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbSA9PT0gdGhpcy5nZXRVcmxXaXRob3V0UGFyYW1zKHJlcXVlc3QudXJsKSksXHJcbiAgICAgICAgICAgIDFcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuYWN0aXZlUmVxdWVzdHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ1NlcnZpY2UubG9hZGluZyQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihyZXNwb25zZSk7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0YXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlIGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5hY3RpdmVSZXF1ZXN0cy5pbmNsdWRlcyh0aGlzLmdldFVybFdpdGhvdXRQYXJhbXMocmVzcG9uc2UudXJsKSkpIHtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVSZXF1ZXN0cy5zcGxpY2UoXHJcbiAgICAgICAgICAgICAgdGhpcy5hY3RpdmVSZXF1ZXN0cy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0gPT09IHRoaXMuZ2V0VXJsV2l0aG91dFBhcmFtcyhyZXF1ZXN0LnVybCkpLFxyXG4gICAgICAgICAgICAgIDFcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmFjdGl2ZVJlcXVlc3RzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIHRoaXMubG9hZGluZ1NlcnZpY2UubG9hZGluZyQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIE9iamVjdChyZXNwb25zZS5ib2R5KS5oYXNPd25Qcm9wZXJ0eSgnc3RhdHVzQ29kZScpICYmXHJcbiAgICAgICAgICAgIHJlc3BvbnNlLmJvZHkuc3RhdHVzQ29kZSA9PT0gNDAwICYmXHJcbiAgICAgICAgICAgIHJlc3BvbnNlLmJvZHkubWVzc2FnZXM/Lmxlbmd0aFxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlU2VydmljZS5nZW5lcmljTW9kYWxFcnJvck1lc3NhZ2UkLm5leHQoXHJcbiAgICAgICAgICAgICAgcmVzcG9uc2UuYm9keS5tZXNzYWdlc1tyZXNwb25zZS5ib2R5Lm1lc3NhZ2VzLmxlbmd0aCAtIDFdXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNSZWZyZXNoVG9rZW5SZXF1ZXN0KHVybDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdXJsLmluY2x1ZGVzKCdjb25uZWN0L3Rva2VuJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFVybFdpdGhvdXRQYXJhbXMoZnVsbFVybDogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWZ1bGxVcmwpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRlY29kZWRVcmwgPSBkZWNvZGVVUklDb21wb25lbnQoZnVsbFVybC50cmltKCkpO1xyXG5cclxuICAgIGlmICghZGVjb2RlZFVybC5pbmNsdWRlcygnPycpKSB7XHJcbiAgICAgIHJldHVybiBkZWNvZGVkVXJsO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkZWNvZGVkVXJsLnN1YnN0cmluZygwLCBkZWNvZGVkVXJsLmluZGV4T2YoJz8nKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZFRva2VuSWZQcmVzZW50KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pOiBIdHRwUmVxdWVzdDxhbnk+IHtcclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRUb2tlbigpO1xyXG4gICAgaWYgKHRva2VuKSB7XHJcbiAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHsgc2V0SGVhZGVyczogeyBBdXRob3JpemF0aW9uOiB0b2tlbiB9IH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZE1vZGlmaWVySWRJZlByZXNlbnQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55Pik6IEh0dHBSZXF1ZXN0PGFueT4ge1xyXG4gICAgY29uc3QgbW9kaWZpZXJJZCA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcklkKCk7XHJcbiAgICBpZiAobW9kaWZpZXJJZCAmJiByZXF1ZXN0Lm1ldGhvZCAhPT0gJ0dFVCcgJiYgIShyZXF1ZXN0LmJvZHkgaW5zdGFuY2VvZiBGb3JtRGF0YSkpIHtcclxuICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoeyBib2R5OiB7IC4uLnJlcXVlc3QuYm9keSwgbW9kaWZpZXJJZCB9IH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZEVuY3J5cHRQYXNzd29yZElmUHJlc2VudChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KTogSHR0cFJlcXVlc3Q8YW55PiB7XHJcbiAgICBjb25zdCBlbmNyaXB0UGFzc3dvcmQgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldCgnZW5jcnlwdFBhc3N3b3JkJyk7XHJcbiAgICBpZiAocmVxdWVzdC5tZXRob2QgIT09ICdHRVQnICYmIGVuY3JpcHRQYXNzd29yZCkge1xyXG4gICAgICBpZiAocmVxdWVzdC5ib2R5IGluc3RhbmNlb2YgRm9ybURhdGEpIHtcclxuICAgICAgICByZXF1ZXN0LmJvZHkuYXBwZW5kKCdlbmNyaXB0UGFzc3dvcmQnLCBlbmNyaXB0UGFzc3dvcmQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHsgYm9keTogeyAuLi5yZXF1ZXN0LmJvZHksIGVuY3JpcHRQYXNzd29yZCB9IH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVxdWVzdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkQWNjb3VudFV1aWRJZlByZXNlbnQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55Pik6IEh0dHBSZXF1ZXN0PGFueT4ge1xyXG4gICAgY29uc3QgYWNjb3VudFV1aWQgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldCgnYWNjb3VudFV1aWQnKTtcclxuICAgIGlmIChyZXF1ZXN0Lm1ldGhvZCAhPT0gJ0dFVCcgJiYgYWNjb3VudFV1aWQpIHtcclxuICAgICAgaWYgKHJlcXVlc3QuYm9keSBpbnN0YW5jZW9mIEZvcm1EYXRhKSB7XHJcbiAgICAgICAgcmVxdWVzdC5ib2R5LmFwcGVuZCgnYWNjb3VudFV1aWQnLCBhY2NvdW50VXVpZCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoeyBib2R5OiB7IC4uLnJlcXVlc3QuYm9keSwgYWNjb3VudFV1aWQgfSB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZENvbnRlbnRUeXBlKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pOiBIdHRwUmVxdWVzdDxhbnk+IHtcclxuICAgIHJldHVybiByZXF1ZXN0LmNsb25lKHsgc2V0SGVhZGVyczogeyBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nIH0gfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpeFVybChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KTogSHR0cFJlcXVlc3Q8YW55PiB7XHJcbiAgICBpZiAodGhpcy5pc0F1dGhSZXF1ZXN0KHJlcXVlc3QudXJsKSB8fCB0aGlzLmlzUHJvZmlsZXNSZXF1ZXN0KHJlcXVlc3QudXJsKSkge1xyXG4gICAgICByZXR1cm4gcmVxdWVzdC5jbG9uZSh7XHJcbiAgICAgICAgdXJsOiBgJHt0aGlzLmVudmlyb25tZW50LkFQSV9VUkwucmVwbGFjZSgnL2FwaScsICcnKX0vJHtyZXF1ZXN0LnVybH1gLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXF1ZXN0LmNsb25lKHtcclxuICAgICAgdXJsOiByZXF1ZXN0LnVybC5zdGFydHNXaXRoKCcvYXNzZXRzLycpID8gcmVxdWVzdC51cmwgOiBgJHt0aGlzLmVudmlyb25tZW50LkFQSV9VUkx9LyR7cmVxdWVzdC51cmx9YCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0F1dGhSZXF1ZXN0KHVybDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdXJsLmluY2x1ZGVzKCdjb25uZWN0L3Rva2VuJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzUHJvZmlsZXNSZXF1ZXN0KHVybDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdXJsLmluY2x1ZGVzKCdjb25uZWN0L3VzZXJpbmZvJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZTQwMUVycm9yKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNSZWZyZXNoaW5nKSB7XHJcbiAgICAgIHRoaXMuaXNSZWZyZXNoaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5yZWZyZXNoVG9rZW5TdWJqZWN0Lm5leHQobnVsbCk7XHJcblxyXG4gICAgICBjb25zdCByZWZyZXNoVG9rZW4gPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFJlZnJlc2hUb2tlbigpO1xyXG4gICAgICBpZiAocmVmcmVzaFRva2VuKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW5CeVJlZnJlc2hUb2tlbihyZWZyZXNoVG9rZW4pLnBpcGUoXHJcbiAgICAgICAgICBzd2l0Y2hNYXAoKHRva2VuOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pc1JlZnJlc2hpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoVG9rZW5TdWJqZWN0Lm5leHQodGhpcy5zdG9yYWdlU2VydmljZS5nZXRUb2tlbigpKTtcclxuICAgICAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHRoaXMuYWRkVG9rZW5JZlByZXNlbnQocmVxdWVzdCkpO1xyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pc1JlZnJlc2hpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5sb2dvdXQoKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmlzUmVmcmVzaGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nb3V0KCk7XHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IobmV3IEVycm9yKCkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucmVmcmVzaFRva2VuU3ViamVjdC5waXBlKFxyXG4gICAgICBmaWx0ZXIoKHRva2VuKSA9PiB0b2tlbiAhPT0gbnVsbCksXHJcbiAgICAgIHRha2UoMSksXHJcbiAgICAgIHN3aXRjaE1hcCgodG9rZW4pID0+IG5leHQuaGFuZGxlKHRoaXMuYWRkVG9rZW5JZlByZXNlbnQocmVxdWVzdCkpKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXNwb25zZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZWN0b3ItY29tcG9uZW50cy9zcmMvbGliL21vZGVscy9odHRwLXJlc3BvbnNlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBIdHRwUmVzcG9uc2U8VD4gPSB7XHJcbiAgc3VjY2VzczogYm9vbGVhbjtcclxuICBzdGF0dXNDb2RlOiBudW1iZXI7XHJcbiAgZGF0YTogVDtcclxuICBtZXNzYWdlczogYW55W107XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBIdHRwUmVzcG9uc2VQYWdlZDxUPiA9IHtcclxuICBkYXRhOiBUW107XHJcbiAgcGFnZTogbnVtYmVyO1xyXG4gIHRvdGFsQ291bnQ6IG51bWJlcjtcclxuICB0b3RhbFBhZ2VzOiBudW1iZXI7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBIdHRwUmVzcG9uc2VHcmlkUGFnZWQ8VD4gPSB7XHJcbiAgZGF0YTogVFtdO1xyXG4gIGRyYXc6IG51bWJlcjtcclxuICByZWNvcmRzRmlsdGVyZWQ6IG51bWJlcjtcclxuICByZWNvcmRzVG90YWw6IG51bWJlcjtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIEh0dHBMZWdhY3lMaXN0SXRlbSA9IHtcclxuICB0ZXh0OiBzdHJpbmc7XHJcbiAgdmFsdWU6IG51bWJlcjtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIEh0dHBMZWdhY3lJdGVtRGF0YTxUPiA9IHtcclxuICBkOiBUO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgSHR0cExlZ2FjeUNydWRBY3Rpb25SZXNwb25zZSA9IHtcclxuICBkaXNwbGF5TXNnOiBib29sZWFuO1xyXG4gIGVycm9yQ29kZTogbnVtYmVyO1xyXG4gIG1zZ0NvZGU6IG51bWJlcjtcclxuICBvazogYm9vbGVhbjtcclxuICByZXN1bHQ6IG51bWJlcjtcclxufTtcclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXNwb25zZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZWN0b3ItY29tcG9uZW50cy9zcmMvbGliL21vZGVscy9odHRwLXJlc3BvbnNlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBIdHRwUmVzcG9uc2U8VD4gPSB7XHJcbiAgc3VjY2VzczogYm9vbGVhbjtcclxuICBzdGF0dXNDb2RlOiBudW1iZXI7XHJcbiAgZGF0YTogVDtcclxuICBtZXNzYWdlczogYW55W107XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBIdHRwUmVzcG9uc2VQYWdlZDxUPiA9IHtcclxuICBkYXRhOiBUW107XHJcbiAgcGFnZTogbnVtYmVyO1xyXG4gIHRvdGFsQ291bnQ6IG51bWJlcjtcclxuICB0b3RhbFBhZ2VzOiBudW1iZXI7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBIdHRwUmVzcG9uc2VHcmlkUGFnZWQ8VD4gPSB7XHJcbiAgZGF0YTogVFtdO1xyXG4gIGRyYXc6IG51bWJlcjtcclxuICByZWNvcmRzRmlsdGVyZWQ6IG51bWJlcjtcclxuICByZWNvcmRzVG90YWw6IG51bWJlcjtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIEh0dHBMZWdhY3lMaXN0SXRlbSA9IHtcclxuICB0ZXh0OiBzdHJpbmc7XHJcbiAgdmFsdWU6IG51bWJlcjtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIEh0dHBMZWdhY3lJdGVtRGF0YTxUPiA9IHtcclxuICBkOiBUO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgSHR0cExlZ2FjeUNydWRBY3Rpb25SZXNwb25zZSA9IHtcclxuICBkaXNwbGF5TXNnOiBib29sZWFuO1xyXG4gIGVycm9yQ29kZTogbnVtYmVyO1xyXG4gIG1zZ0NvZGU6IG51bWJlcjtcclxuICBvazogYm9vbGVhbjtcclxuICByZXN1bHQ6IG51bWJlcjtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIEh0dHBEYXRhUmVzcG9uc2U8VD4gPSB7XHJcbiAgZGlzcGxheU1zZzogYm9vbGVhbjtcclxuICBlcnJvckNvZGU6IG51bWJlcjtcclxuICBtc2dDb2RlOiBudW1iZXI7XHJcbiAgb2s6IGJvb2xlYW47XHJcbiAgZGF0YTogVDtcclxuICByZXN1bHQ6IG51bWJlcjtcclxufTtcclxuIl19
@@ -117,5 +117,8 @@ export var ProfileModuleActionType;
117
117
  ProfileModuleActionType["ADD_USER"] = "Add User";
118
118
  ProfileModuleActionType["EDIT_USER"] = "Edit User";
119
119
  ProfileModuleActionType["DELETE_USER"] = "Delete User";
120
+ ProfileModuleActionType["ADD_REGION"] = "Add Region";
121
+ ProfileModuleActionType["SHOW_REGION"] = "Show Region";
122
+ ProfileModuleActionType["EDIT_REGION"] = "Edit Region";
120
123
  })(ProfileModuleActionType || (ProfileModuleActionType = {}));
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZWN0b3ItY29tcG9uZW50cy9zcmMvbGliL21vZGVscy9wcm9maWxlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZCQSxNQUFNLENBQU4sSUFBWSxpQkFHWDtBQUhELFdBQVksaUJBQWlCO0lBQzNCLHFFQUFnRCxDQUFBO0lBQ2hELG1EQUE4QixDQUFBO0FBQ2hDLENBQUMsRUFIVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRzVCO0FBRUQsTUFBTSxDQUFOLElBQVksdUJBaUhYO0FBakhELFdBQVksdUJBQXVCO0lBQ2pDLHNEQUEyQixDQUFBO0lBQzNCLHdEQUE2QixDQUFBO0lBQzdCLDREQUFpQyxDQUFBO0lBQ2pDLHdEQUE2QixDQUFBO0lBQzdCLG9EQUF5QixDQUFBO0lBQ3pCLHNEQUEyQixDQUFBO0lBQzNCLDBEQUErQixDQUFBO0lBQy9CLHNEQUEyQixDQUFBO0lBQzNCLHNEQUEyQixDQUFBO0lBQzNCLHdEQUE2QixDQUFBO0lBQzdCLDREQUFpQyxDQUFBO0lBQ2pDLHdEQUE2QixDQUFBO0lBQzdCLHNEQUEyQixDQUFBO0lBQzNCLHdEQUE2QixDQUFBO0lBQzdCLDREQUFpQyxDQUFBO0lBQ2pDLHdEQUE2QixDQUFBO0lBQzdCLDBFQUErQyxDQUFBO0lBQy9DLGdEQUFxQixDQUFBO0lBQ3JCLGtEQUF1QixDQUFBO0lBQ3ZCLG9GQUF5RCxDQUFBO0lBQ3pELGtGQUF1RCxDQUFBO0lBQ3ZELG9GQUF5RCxDQUFBO0lBQ3pELDhFQUFtRCxDQUFBO0lBQ25ELDhFQUFtRCxDQUFBO0lBQ25ELHdEQUE2QixDQUFBO0lBQzdCLDhFQUFtRCxDQUFBO0lBQ25ELHdEQUE2QixDQUFBO0lBQzdCLDBEQUErQixDQUFBO0lBQy9CLDBEQUErQixDQUFBO0lBQy9CLGdFQUFxQyxDQUFBO0lBQ3JDLGtFQUF1QyxDQUFBO0lBQ3ZDLGtFQUF1QyxDQUFBO0lBQ3ZDLHNFQUEyQyxDQUFBO0lBQzNDLDhEQUFtQyxDQUFBO0lBQ25DLDBEQUErQixDQUFBO0lBQy9CLDBEQUErQixDQUFBO0lBQy9CLDhEQUFtQyxDQUFBO0lBQ25DLHdEQUE2QixDQUFBO0lBQzdCLDhDQUFtQixDQUFBO0lBQ25CLGdEQUFxQixDQUFBO0lBQ3JCLG9EQUF5QixDQUFBO0lBQ3pCLGdEQUFxQixDQUFBO0lBQ3JCLDBEQUErQixDQUFBO0lBQy9CLHNEQUEyQixDQUFBO0lBQzNCLGtGQUF1RCxDQUFBO0lBQ3ZELG9GQUF5RCxDQUFBO0lBQ3pELG9GQUF5RCxDQUFBO0lBQ3pELDREQUFpQyxDQUFBO0lBQ2pDLDhEQUFtQyxDQUFBO0lBQ25DLGtFQUF1QyxDQUFBO0lBQ3ZDLGtHQUF1RSxDQUFBO0lBQ3ZFLG9HQUF5RSxDQUFBO0lBQ3pFLG9HQUF5RSxDQUFBO0lBQ3pFLDhEQUFtQyxDQUFBO0lBQ25DLDhEQUFtQyxDQUFBO0lBQ25DLG9HQUF5RSxDQUFBO0lBQ3pFLG9HQUF5RSxDQUFBO0lBQ3pFLG9GQUF5RCxDQUFBO0lBQ3pELHNGQUF1QyxDQUFBO0lBQ3ZDLG9FQUF5QyxDQUFBO0lBQ3pDLGtFQUF1QyxDQUFBO0lBQ3ZDLG9FQUF5QyxDQUFBO0lBQ3pDLGdFQUFxQyxDQUFBO0lBQ3JDLDhFQUFtRCxDQUFBO0lBQ25ELHdEQUE2QixDQUFBO0lBQzdCLDhGQUFtRSxDQUFBO0lBQ25FLDRGQUFpRSxDQUFBO0lBQ2pFLDRGQUFpRSxDQUFBO0lBQ2pFLDBGQUErRCxDQUFBO0lBQy9ELDRGQUFpRSxDQUFBO0lBQ2pFLGdHQUFxRSxDQUFBO0lBQ3JFLDBGQUErRCxDQUFBO0lBQy9ELHdGQUE2RCxDQUFBO0lBQzdELDBGQUErRCxDQUFBO0lBQy9ELDhGQUFtRSxDQUFBO0lBQ25FLHdGQUE2RCxDQUFBO0lBQzdELHNGQUEyRCxDQUFBO0lBQzNELHdGQUE2RCxDQUFBO0lBQzdELDRGQUFpRSxDQUFBO0lBQ2pFLDRGQUFpRSxDQUFBO0lBQ2pFLDBGQUErRCxDQUFBO0lBQy9ELDRGQUFpRSxDQUFBO0lBQ2pFLGdHQUFxRSxDQUFBO0lBQ3JFLDhFQUFtRCxDQUFBO0lBQ25ELDRFQUFpRCxDQUFBO0lBQ2pELGtFQUF1QyxDQUFBO0lBQ3ZDLG9FQUF5QyxDQUFBO0lBQ3pDLGtFQUF1QyxDQUFBO0lBQ3ZDLG9FQUF5QyxDQUFBO0lBQ3pDLHdFQUE2QyxDQUFBO0lBQzdDLDhFQUFtRCxDQUFBO0lBQ25ELDRFQUFpRCxDQUFBO0lBQ2pELDhFQUFtRCxDQUFBO0lBQ25ELHNFQUEyQyxDQUFBO0lBQzNDLG9FQUF5QyxDQUFBO0lBQ3pDLHNFQUEyQyxDQUFBO0lBQzNDLDBFQUErQyxDQUFBO0lBQy9DLG9FQUF5QyxDQUFBO0lBQ3pDLGtFQUF1QyxDQUFBO0lBQ3ZDLHdFQUE2QyxDQUFBO0lBQzdDLHNFQUEyQyxDQUFBO0lBQzNDLGtHQUF1RSxDQUFBO0lBQ3ZFLHdIQUE2RixDQUFBO0lBQzdGLGtIQUF1RixDQUFBO0lBQ3ZGLGdFQUFxQyxDQUFBO0lBQ3JDLDhEQUFtQyxDQUFBO0lBQ25DLDhEQUFtQyxDQUFBO0lBQ25DLHdEQUE2QixDQUFBO0lBQzdCLGtEQUF1QixDQUFBO0lBQ3ZCLGdEQUFxQixDQUFBO0lBQ3JCLGtEQUF1QixDQUFBO0lBQ3ZCLHNEQUEyQixDQUFBO0FBQzdCLENBQUMsRUFqSFcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQWlIbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhVGFibGVCYXNlSXRlbSB9IGZyb20gJy4vZGF0YS10YWJsZS5tb2RlbCc7XHJcblxyXG5leHBvcnQgdHlwZSBQcm9maWxlID0ge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHByb2ZpbGVUeXBlSWQ6IG51bWJlcjtcclxuICBQcm9maWxlVHlwZU5hbWU6IHN0cmluZztcclxuICBtb2R1bGVzOiBQcm9maWxlTW9kdWxlW107XHJcbn0gJiBEYXRhVGFibGVCYXNlSXRlbTtcclxuXHJcbmV4cG9ydCB0eXBlIFByb2ZpbGVNb2R1bGUgPSB7XHJcbiAgbWVudTogc3RyaW5nO1xyXG4gIGFjdGlvbnM6IFByb2ZpbGVNb2R1bGVBY3Rpb25bXTtcclxufSAmIFByb2ZpbGVNb2R1bGVCYXNlO1xyXG5cclxuZXhwb3J0IHR5cGUgUHJvZmlsZU1vZHVsZUdyb3VwZWRCeU1lbnUgPSB7XHJcbiAgbWVudTogc3RyaW5nO1xyXG4gIG1vZHVsZXM6IFByb2ZpbGVNb2R1bGVbXTtcclxuICBjaGlsZHJlbj86IFByb2ZpbGVNb2R1bGVHcm91cGVkQnlNZW51W107XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBQcm9maWxlTW9kdWxlQWN0aW9uID0ge30gJiBQcm9maWxlTW9kdWxlQmFzZTtcclxuXHJcbmV4cG9ydCB0eXBlIFByb2ZpbGVNb2R1bGVCYXNlID0ge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGlzQXZhaWxhYmxlPzogYm9vbGVhbjtcclxufTtcclxuXHJcbmV4cG9ydCBlbnVtIFByb2ZpbGVNb2R1bGVUeXBlIHtcclxuICBPUEVSQVRJT05BTF9FVkFMVUFUSU9OID0gJ09wZXJhdGlvbmFsRXZhbHVhdGlvbicsXHJcbiAgQURNSU5fU1VSVkVZUyA9ICdBZG1pblN1cnZleXMnLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBQcm9maWxlTW9kdWxlQWN0aW9uVHlwZSB7XHJcbiAgQUREX1ZFSElDTEUgPSAnQWRkIFZlaGljbGUnLFxyXG4gIEVESVRfVkVISUNMRSA9ICdFZGl0IFZlaGljbGUnLFxyXG4gIERFTEVURV9WRUhJQ0xFID0gJ0RlbGV0ZSBWZWhpY2xlJyxcclxuICBTSE9XX1ZFSElDTEUgPSAnU2hvdyBWZWhpY2xlJyxcclxuICBBRERfRFJJVkVSID0gJ0FkZCBEcml2ZXInLFxyXG4gIEVESVRfRFJJVkVSID0gJ0VkaXQgRHJpdmVyJyxcclxuICBERUxFVEVfRFJJVkVSID0gJ0RlbGV0ZSBEcml2ZXInLFxyXG4gIFNIT1dfRFJJVkVSID0gJ1Nob3cgRHJpdmVyJyxcclxuICBBRERfQ0FSUklFUiA9ICdBZGQgQ2FycmllcicsXHJcbiAgRURJVF9DQVJSSUVSID0gJ0VkaXQgQ2FycmllcicsXHJcbiAgREVMRVRFX0NBUlJJRVIgPSAnRGVsZXRlIENhcnJpZXInLFxyXG4gIFNIT1dfQ0FSUklFUiA9ICdTaG93IENhcnJpZXInLFxyXG4gIEFERF9QUk9GSUxFID0gJ0FkZCBQcm9maWxlJyxcclxuICBFRElUX1BST0ZJTEUgPSAnRWRpdCBQcm9maWxlJyxcclxuICBERUxFVEVfUFJPRklMRSA9ICdEZWxldGUgUHJvZmlsZScsXHJcbiAgU0hPV19QUk9GSUxFID0gJ1Nob3cgUHJvZmlsZScsXHJcbiAgRURJVF9CUk9BRENBU1RfVkFMVUVTID0gJ0VkaXQgQnJvYWRjYXN0IFZhbHVlcycsXHJcbiAgQUREX1dBVkUgPSAnQWRkIFdhdmUnLFxyXG4gIEVESVRfV0FWRSA9ICdFZGl0IFdhdmUnLFxyXG4gIEhJU1RPUklDQUxfQ0hBTkdFU19WRUhJQ0xFID0gJ0hpc3RvcmljYWwgQ2hhbmdlcyBWZWhpY2xlJyxcclxuICBISVNUT1JJQ0FMX0NIQU5HRVNfRFJJVkVSID0gJ0hpc3RvcmljYWwgQ2hhbmdlcyBEcml2ZXInLFxyXG4gIEhJU1RPUklDQUxfQ0hBTkdFU19DQVJSSUVSID0gJ0hpc3RvcmljYWwgQ2hhbmdlcyBDYXJyaWVyJyxcclxuICBISVNUT1JJQ0FMX0NIQU5HRVNfVFJJUCA9ICdIaXN0b3JpY2FsIENoYW5nZXMgVHJpcCcsXHJcbiAgSElTVE9SSUNBTF9DSEFOR0VTX1VTRVIgPSAnSGlzdG9yaWNhbCBDaGFuZ2VzIFVzZXInLFxyXG4gIENBTkNFTF9UUklQUyA9ICdDYW5jZWwgVHJpcHMnLFxyXG4gIEhJU1RPUklDQUxfQ0hBTkdFU19MT1RTID0gJ0hpc3RvcmljYWwgQ2hhbmdlcyBMb3RzJyxcclxuICBBRERfTE9DQVRJT04gPSAnQWRkIExvY2F0aW9uJyxcclxuICBFRElUX0xPQ0FUSU9OID0gJ0VkaXQgTG9jYXRpb24nLFxyXG4gIFNIT1dfTE9DQVRJT04gPSAnU2hvdyBMb2NhdGlvbicsXHJcbiAgQUREX1JFU1RSSUNUSU9OUyA9ICdBZGQgUmVzdHJpY3Rpb25zJyxcclxuICBFRElUX1JFU1RSSUNUSU9OUyA9ICdFZGl0IFJlc3RyaWN0aW9ucycsXHJcbiAgU0hPV19SRVNUUklDVElPTlMgPSAnU2hvdyBSZXN0cmljdGlvbnMnLFxyXG4gIERFTEVURV9SRVNUUklDVElPTlMgPSAnRGVsZXRlIFJlc3RyaWN0aW9ucycsXHJcbiAgREVMRVRFX0xPQ0FUSU9OID0gJ0RlbGV0ZSBMb2NhdGlvbicsXHJcbiAgU0hPV19NRVNTQUdFUyA9ICdTaG93IE1lc3NhZ2VzJyxcclxuICBFRElUX01FU1NBR0VTID0gJ0VkaXQgTWVzc2FnZXMnLFxyXG4gIERFTEVURV9NRVNTQUdFUyA9ICdEZWxldGUgTWVzc2FnZXMnLFxyXG4gIEFERF9NRVNTQUdFUyA9ICdBZGQgTWVzc2FnZXMnLFxyXG4gIEFERF9MT1QgPSAnQWRkIExvdCcsXHJcbiAgRURJVF9MT1QgPSAnRWRpdCBMb3QnLFxyXG4gIERFTEVURV9MT1QgPSAnRGVsZXRlIExvdCcsXHJcbiAgU0hPV19MT1QgPSAnU2hvdyBMb3QnLFxyXG4gIEFDQ0VQVF9DUkVESVQgPSAnQWNjZXB0IENyZWRpdCcsXHJcbiAgU0hPV19DUkVESVQgPSAnU2hvdyBDcmVkaXQnLFxyXG4gIEFERF9WRUhJQ0xFX0NPTkZJR1VSQVRJT04gPSAnQWRkIFZlaGljbGUgQ29uZmlndXJhdGlvbicsXHJcbiAgRURJVF9WRUhJQ0xFX0NPTkZJR1VSQVRJT04gPSAnRWRpdCBWZWhpY2xlIENvbmZpZ3VyYXRpb24nLFxyXG4gIFNIT1dfVkVISUNMRV9DT05GSUdVUkFUSU9OID0gJ1Nob3cgVmVoaWNsZSBDb25maWd1cmF0aW9uJyxcclxuICBBRERfU0NIRURVTElORyA9ICdBZGQgU2NoZWR1bGluZycsXHJcbiAgRURJVF9TQ0hFRFVMSU5HID0gJ0VkaXQgU2NoZWR1bGluZycsXHJcbiAgREVMRVRFX1NDSEVEVUxJTkcgPSAnRGVsZXRlIFNjaGVkdWxpbmcnLFxyXG4gIEFERF9WRUhJQ0xFX0NPTkZJR1VSQVRJT05fU0hJUFBFUiA9ICdBZGQgVmVoaWNsZSBDb25maWd1cmF0aW9uIFNoaXBwZXInLFxyXG4gIEVESVRfVkVISUNMRV9DT05GSUdVUkFUSU9OX1NISVBQRVIgPSAnRWRpdCBWZWhpY2xlIENvbmZpZ3VyYXRpb24gU2hpcHBlcicsXHJcbiAgU0hPV19WRUhJQ0xFX0NPTkZJR1VSQVRJT05fU0hJUFBFUiA9ICdTaG93IFZlaGljbGUgQ29uZmlndXJhdGlvbiBTaGlwcGVyJyxcclxuICBFRElUX1RSSVBfQlVOR0UgPSAnRWRpdCB0cmlwIEJ1bmdlJyxcclxuICBFRElUX1RSSVBfQ09GQ08gPSAnRWRpdCB0cmlwIENvZmNvJyxcclxuICBTSE9XX01JTklNVU1fVFJBTlNQT1JUX1BSSUNFX1RBQkxFID0gJ1Nob3cgTWluaW11bSBUcmFuc3BvcnQgUHJpY2UgVGFibGUnLFxyXG4gIEVESVRfTUlOSU1VTV9UUkFOU1BPUlRfUFJJQ0VfVEFCTEUgPSAnRWRpdCBNaW5pbXVtIFRyYW5zcG9ydCBQcmljZSBUYWJsZScsXHJcbiAgSElTVE9SSUNBTF9DSEFOR0VTX0NSRURJVFMgPSAnSGlzdG9yaWNhbCBDaGFuZ2VzIENyZWRpdHMnLFxyXG4gIElOVEVHUkHDh8ODT19QQUdCRU0gPSAnSW50ZWdyYcOnw6NvIFBhZ2JlbScsXHJcbiAgVkFMSURBVElPTl9DQVJSSUVSID0gJ1ZhbGlkYXRpb24gQ2FycmllcicsXHJcbiAgVkFMSURBVElPTl9EUklWRVIgPSAnVmFsaWRhdGlvbiBEcml2ZXInLFxyXG4gIFZBTElEQVRJT05fVkVISUNMRSA9ICdWYWxpZGF0aW9uIFZlaGljbGUnLFxyXG4gIEVESVRfVFJJUF9TVEFUVVMgPSAnRWRpdCB0cmlwIHN0YXR1cycsXHJcbiAgUkVHSVNUUkFUSU9OX1ZBTElEQVRJT04gPSAnUmVnaXN0cmF0aW9uIFZhbGlkYXRpb24nLFxyXG4gIEIzX09QRVJBVElPTiA9ICdCMyBPcGVyYXRpb24nLFxyXG4gIFNIT1dfQ0FSUklFUl9ERVRBSUxfSU5URUdSQVRJT04gPSAnU2hvdyBDYXJyaWVyIERldGFpbCBJbnRlZ3JhdGlvbicsXHJcbiAgU0hPV19EUklWRVJfREVUQUlMX0lOVEVHUkFUSU9OID0gJ1Nob3cgRHJpdmVyIERldGFpbCBJbnRlZ3JhdGlvbicsXHJcbiAgRlVFTFNfU0hPV19ESVNUUklCVVRJT05fQ0VOVEVSID0gJ0Z1ZWxzIHNob3cgZGlzdHJpYnV0aW9uIGNlbnRlcicsXHJcbiAgRlVFTFNfQUREX0RJU1RSSUJVVElPTl9DRU5URVIgPSAnRnVlbHMgYWRkIGRpc3RyaWJ1dGlvbiBjZW50ZXInLFxyXG4gIEZVRUxTX0VESVRfRElTVFJJQlVUSU9OX0NFTlRFUiA9ICdGdWVscyBlZGl0IGRpc3RyaWJ1dGlvbiBjZW50ZXInLFxyXG4gIEZVRUxTX0RFTEVURV9ESVNUUklCVVRJT05fQ0VOVEVSID0gJ0Z1ZWxzIGRlbGV0ZSBkaXN0cmlidXRpb24gY2VudGVyJyxcclxuICBGVUVMU19TSE9XX0RJU1RSSUJVVElPTl9QT0lOVCA9ICdGdWVscyBzaG93IGRpc3RyaWJ1dGlvbiBwb2ludCcsXHJcbiAgRlVFTFNfQUREX0RJU1RSSUJVVElPTl9QT0lOVCA9ICdGdWVscyBhZGQgZGlzdHJpYnV0aW9uIHBvaW50JyxcclxuICBGVUVMU19FRElUX0RJU1RSSUJVVElPTl9QT0lOVCA9ICdGdWVscyBlZGl0IGRpc3RyaWJ1dGlvbiBwb2ludCcsXHJcbiAgRlVFTFNfREVMRVRFX0RJU1RSSUJVVElPTl9QT0lOVCA9ICdGdWVscyBkZWxldGUgZGlzdHJpYnV0aW9uIHBvaW50JyxcclxuICBGVUVMU19TSE9XX0RJU1RSSUJVVElPTl9QT1NUID0gJ0Z1ZWxzIHNob3cgZGlzdHJpYnV0aW9uIHBvc3QnLFxyXG4gIEZVRUxTX0FERF9ESVNUUklCVVRJT05fUE9TVCA9ICdGdWVscyBhZGQgZGlzdHJpYnV0aW9uIHBvc3QnLFxyXG4gIEZVRUxTX0VESVRfRElTVFJJQlVUSU9OX1BPU1QgPSAnRnVlbHMgZWRpdCBkaXN0cmlidXRpb24gcG9zdCcsXHJcbiAgRlVFTFNfREVMRVRFX0RJU1RSSUJVVElPTl9QT1NUID0gJ0Z1ZWxzIGRlbGV0ZSBkaXN0cmlidXRpb24gcG9zdCcsXHJcbiAgRlVFTFNfU0hPV19NQVJLRVRQTEFDRV9QUk9EVUNUID0gJ0Z1ZWxzIHNob3cgbWFya2V0cGxhY2UgcHJvZHVjdCcsXHJcbiAgRlVFTFNfQUREX01BUktFVFBMQUNFX1BST0RVQ1QgPSAnRnVlbHMgYWRkIG1hcmtldHBsYWNlIHByb2R1Y3QnLFxyXG4gIEZVRUxTX0VESVRfTUFSS0VUUExBQ0VfUFJPRFVDVCA9ICdGdWVscyBlZGl0IG1hcmtldHBsYWNlIHByb2R1Y3QnLFxyXG4gIEZVRUxTX0RFTEVURV9NQVJLRVRQTEFDRV9QUk9EVUNUID0gJ0Z1ZWxzIGRlbGV0ZSBtYXJrZXRwbGFjZSBwcm9kdWN0JyxcclxuICBGVUVMU19TSE9XX1NUT0NLX1VQREFURSA9ICdGdWVscyBzaG93IHN0b2NrIHVwZGF0ZScsXHJcbiAgRlVFTFNfQUREX1NUT0NLX1VQREFURSA9ICdGdWVscyBhZGQgc3RvY2sgdXBkYXRlJyxcclxuICBTSE9XX01BUktFVFBMQUNFUyA9ICdTaG93IG1hcmtldHBsYWNlcycsXHJcbiAgRlVFTFNfU0hPV19ERVBPU0lUID0gJ0Z1ZWxzIHNob3cgZGVwb3NpdCcsXHJcbiAgRlVFTFNfQUREX0RFUE9TSVQgPSAnRnVlbHMgYWRkIGRlcG9zaXQnLFxyXG4gIEZVRUxTX0VESVRfREVQT1NJVCA9ICdGdWVscyBlZGl0IGRlcG9zaXQnLFxyXG4gIEZVRUxTX0RFTEVURV9ERVBPU0lUID0gJ0Z1ZWxzIGRlbGV0ZSBkZXBvc2l0JyxcclxuICBGVUVMU19TSE9XX1NVUFBMWV9PRkZFUiA9ICdGdWVscyBzaG93IHN1cHBseSBvZmZlcicsXHJcbiAgRlVFTFNfQUREX1NVUFBMWV9PRkZFUiA9ICdGdWVscyBhZGQgc3VwcGx5IG9mZmVyJyxcclxuICBGVUVMU19FRElUX1NVUFBMWV9PRkZFUiA9ICdGdWVscyBlZGl0IHN1cHBseSBvZmZlcicsXHJcbiAgRlVFTFNfU0hPV19PUEVSQVRPUiA9ICdGdWVscyBzaG93IG9wZXJhdG9yJyxcclxuICBGVUVMU19BRERfT1BFUkFUT1IgPSAnRnVlbHMgYWRkIG9wZXJhdG9yJyxcclxuICBGVUVMU19FRElUX09QRVJBVE9SID0gJ0Z1ZWxzIGVkaXQgb3BlcmF0b3InLFxyXG4gIEZVRUxTX0RFTEVURV9PUEVSQVRPUiA9ICdGdWVscyBkZWxldGUgb3BlcmF0b3InLFxyXG4gIEZJTlRFQ0hfQkFOS19BRE1JTiA9ICdGaW50ZWNoIEJhbmsgQWRtaW4nLFxyXG4gIEZJTlRFQ0hfQkFOS19VU0VSID0gJ0ZpbnRlY2ggQmFuayBVc2VyJyxcclxuICBGSU5URUNIX0NSRURJVF9BRE1JTiA9ICdGaW50ZWNoIENyZWRpdCBBZG1pbicsXHJcbiAgRklOVEVDSF9DUkVESVRfVVNFUiA9ICdGaW50ZWNoIENyZWRpdCBVc2VyJyxcclxuICBGSU5URUNIX0JBTktfQURNSU5fQUNDT1VOVFNfVklFVyA9ICdGaW50ZWNoIEJhbmsgQWRtaW4gLSBBY2NvdW50cyBWaWV3JyxcclxuICBGSU5URUNIX0NSRURJVF9BRE1JTl9QUk9QT1NBTF9OT1RfQ09ORklSTUVEID0gJ0ZpbnRlY2ggQ3JlZGl0IEFkbWluIC0gUHJvcG9zYWwgTm90IENvbmZpcm1lZCcsXHJcbiAgRklOVEVDSF9DUkVESVRfQURNSU5fQ09OVFJBQ1RTX0ZPTExPV19VUCA9ICdGaW50ZWNoIENyZWRpdCBBZG1pbiAtIENvbnRyYWN0cyBGb2xsb3ctVXAnLFxyXG4gIEFETUlOX01BUktFUExBQ0UgPSAnQWRtaW4gTWFya2VwbGFjZScsXHJcbiAgQVBQUk9WRV9SRVFVRVNUID0gJ0FwcHJvdmUgUmVxdWVzdCcsXHJcbiAgUkVQUk9WRV9SRVFVRVNUID0gJ1JlcHJvdmUgUmVxdWVzdCcsXHJcbiAgU0hPV19SRVFVRVNUID0gJ1Nob3cgUmVxdWVzdCcsXHJcbiAgU0hPV19VU0VSID0gJ1Nob3cgVXNlcicsXHJcbiAgQUREX1VTRVIgPSAnQWRkIFVzZXInLFxyXG4gIEVESVRfVVNFUiA9ICdFZGl0IFVzZXInLFxyXG4gIERFTEVURV9VU0VSID0gJ0RlbGV0ZSBVc2VyJyxcclxufVxyXG4iXX0=
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12ZWN0b3ItY29tcG9uZW50cy9zcmMvbGliL21vZGVscy9wcm9maWxlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZCQSxNQUFNLENBQU4sSUFBWSxpQkFHWDtBQUhELFdBQVksaUJBQWlCO0lBQzNCLHFFQUFnRCxDQUFBO0lBQ2hELG1EQUE4QixDQUFBO0FBQ2hDLENBQUMsRUFIVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRzVCO0FBRUQsTUFBTSxDQUFOLElBQVksdUJBb0hYO0FBcEhELFdBQVksdUJBQXVCO0lBQ2pDLHNEQUEyQixDQUFBO0lBQzNCLHdEQUE2QixDQUFBO0lBQzdCLDREQUFpQyxDQUFBO0lBQ2pDLHdEQUE2QixDQUFBO0lBQzdCLG9EQUF5QixDQUFBO0lBQ3pCLHNEQUEyQixDQUFBO0lBQzNCLDBEQUErQixDQUFBO0lBQy9CLHNEQUEyQixDQUFBO0lBQzNCLHNEQUEyQixDQUFBO0lBQzNCLHdEQUE2QixDQUFBO0lBQzdCLDREQUFpQyxDQUFBO0lBQ2pDLHdEQUE2QixDQUFBO0lBQzdCLHNEQUEyQixDQUFBO0lBQzNCLHdEQUE2QixDQUFBO0lBQzdCLDREQUFpQyxDQUFBO0lBQ2pDLHdEQUE2QixDQUFBO0lBQzdCLDBFQUErQyxDQUFBO0lBQy9DLGdEQUFxQixDQUFBO0lBQ3JCLGtEQUF1QixDQUFBO0lBQ3ZCLG9GQUF5RCxDQUFBO0lBQ3pELGtGQUF1RCxDQUFBO0lBQ3ZELG9GQUF5RCxDQUFBO0lBQ3pELDhFQUFtRCxDQUFBO0lBQ25ELDhFQUFtRCxDQUFBO0lBQ25ELHdEQUE2QixDQUFBO0lBQzdCLDhFQUFtRCxDQUFBO0lBQ25ELHdEQUE2QixDQUFBO0lBQzdCLDBEQUErQixDQUFBO0lBQy9CLDBEQUErQixDQUFBO0lBQy9CLGdFQUFxQyxDQUFBO0lBQ3JDLGtFQUF1QyxDQUFBO0lBQ3ZDLGtFQUF1QyxDQUFBO0lBQ3ZDLHNFQUEyQyxDQUFBO0lBQzNDLDhEQUFtQyxDQUFBO0lBQ25DLDBEQUErQixDQUFBO0lBQy9CLDBEQUErQixDQUFBO0lBQy9CLDhEQUFtQyxDQUFBO0lBQ25DLHdEQUE2QixDQUFBO0lBQzdCLDhDQUFtQixDQUFBO0lBQ25CLGdEQUFxQixDQUFBO0lBQ3JCLG9EQUF5QixDQUFBO0lBQ3pCLGdEQUFxQixDQUFBO0lBQ3JCLDBEQUErQixDQUFBO0lBQy9CLHNEQUEyQixDQUFBO0lBQzNCLGtGQUF1RCxDQUFBO0lBQ3ZELG9GQUF5RCxDQUFBO0lBQ3pELG9GQUF5RCxDQUFBO0lBQ3pELDREQUFpQyxDQUFBO0lBQ2pDLDhEQUFtQyxDQUFBO0lBQ25DLGtFQUF1QyxDQUFBO0lBQ3ZDLGtHQUF1RSxDQUFBO0lBQ3ZFLG9HQUF5RSxDQUFBO0lBQ3pFLG9HQUF5RSxDQUFBO0lBQ3pFLDhEQUFtQyxDQUFBO0lBQ25DLDhEQUFtQyxDQUFBO0lBQ25DLG9HQUF5RSxDQUFBO0lBQ3pFLG9HQUF5RSxDQUFBO0lBQ3pFLG9GQUF5RCxDQUFBO0lBQ3pELHNGQUF1QyxDQUFBO0lBQ3ZDLG9FQUF5QyxDQUFBO0lBQ3pDLGtFQUF1QyxDQUFBO0lBQ3ZDLG9FQUF5QyxDQUFBO0lBQ3pDLGdFQUFxQyxDQUFBO0lBQ3JDLDhFQUFtRCxDQUFBO0lBQ25ELHdEQUE2QixDQUFBO0lBQzdCLDhGQUFtRSxDQUFBO0lBQ25FLDRGQUFpRSxDQUFBO0lBQ2pFLDRGQUFpRSxDQUFBO0lBQ2pFLDBGQUErRCxDQUFBO0lBQy9ELDRGQUFpRSxDQUFBO0lBQ2pFLGdHQUFxRSxDQUFBO0lBQ3JFLDBGQUErRCxDQUFBO0lBQy9ELHdGQUE2RCxDQUFBO0lBQzdELDBGQUErRCxDQUFBO0lBQy9ELDhGQUFtRSxDQUFBO0lBQ25FLHdGQUE2RCxDQUFBO0lBQzdELHNGQUEyRCxDQUFBO0lBQzNELHdGQUE2RCxDQUFBO0lBQzdELDRGQUFpRSxDQUFBO0lBQ2pFLDRGQUFpRSxDQUFBO0lBQ2pFLDBGQUErRCxDQUFBO0lBQy9ELDRGQUFpRSxDQUFBO0lBQ2pFLGdHQUFxRSxDQUFBO0lBQ3JFLDhFQUFtRCxDQUFBO0lBQ25ELDRFQUFpRCxDQUFBO0lBQ2pELGtFQUF1QyxDQUFBO0lBQ3ZDLG9FQUF5QyxDQUFBO0lBQ3pDLGtFQUF1QyxDQUFBO0lBQ3ZDLG9FQUF5QyxDQUFBO0lBQ3pDLHdFQUE2QyxDQUFBO0lBQzdDLDhFQUFtRCxDQUFBO0lBQ25ELDRFQUFpRCxDQUFBO0lBQ2pELDhFQUFtRCxDQUFBO0lBQ25ELHNFQUEyQyxDQUFBO0lBQzNDLG9FQUF5QyxDQUFBO0lBQ3pDLHNFQUEyQyxDQUFBO0lBQzNDLDBFQUErQyxDQUFBO0lBQy9DLG9FQUF5QyxDQUFBO0lBQ3pDLGtFQUF1QyxDQUFBO0lBQ3ZDLHdFQUE2QyxDQUFBO0lBQzdDLHNFQUEyQyxDQUFBO0lBQzNDLGtHQUF1RSxDQUFBO0lBQ3ZFLHdIQUE2RixDQUFBO0lBQzdGLGtIQUF1RixDQUFBO0lBQ3ZGLGdFQUFxQyxDQUFBO0lBQ3JDLDhEQUFtQyxDQUFBO0lBQ25DLDhEQUFtQyxDQUFBO0lBQ25DLHdEQUE2QixDQUFBO0lBQzdCLGtEQUF1QixDQUFBO0lBQ3ZCLGdEQUFxQixDQUFBO0lBQ3JCLGtEQUF1QixDQUFBO0lBQ3ZCLHNEQUEyQixDQUFBO0lBQzNCLG9EQUF5QixDQUFBO0lBQ3pCLHNEQUEyQixDQUFBO0lBQzNCLHNEQUEyQixDQUFBO0FBQzdCLENBQUMsRUFwSFcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQW9IbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhVGFibGVCYXNlSXRlbSB9IGZyb20gJy4vZGF0YS10YWJsZS5tb2RlbCc7XHJcblxyXG5leHBvcnQgdHlwZSBQcm9maWxlID0ge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHByb2ZpbGVUeXBlSWQ6IG51bWJlcjtcclxuICBQcm9maWxlVHlwZU5hbWU6IHN0cmluZztcclxuICBtb2R1bGVzOiBQcm9maWxlTW9kdWxlW107XHJcbn0gJiBEYXRhVGFibGVCYXNlSXRlbTtcclxuXHJcbmV4cG9ydCB0eXBlIFByb2ZpbGVNb2R1bGUgPSB7XHJcbiAgbWVudTogc3RyaW5nO1xyXG4gIGFjdGlvbnM6IFByb2ZpbGVNb2R1bGVBY3Rpb25bXTtcclxufSAmIFByb2ZpbGVNb2R1bGVCYXNlO1xyXG5cclxuZXhwb3J0IHR5cGUgUHJvZmlsZU1vZHVsZUdyb3VwZWRCeU1lbnUgPSB7XHJcbiAgbWVudTogc3RyaW5nO1xyXG4gIG1vZHVsZXM6IFByb2ZpbGVNb2R1bGVbXTtcclxuICBjaGlsZHJlbj86IFByb2ZpbGVNb2R1bGVHcm91cGVkQnlNZW51W107XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBQcm9maWxlTW9kdWxlQWN0aW9uID0ge30gJiBQcm9maWxlTW9kdWxlQmFzZTtcclxuXHJcbmV4cG9ydCB0eXBlIFByb2ZpbGVNb2R1bGVCYXNlID0ge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGlzQXZhaWxhYmxlPzogYm9vbGVhbjtcclxufTtcclxuXHJcbmV4cG9ydCBlbnVtIFByb2ZpbGVNb2R1bGVUeXBlIHtcclxuICBPUEVSQVRJT05BTF9FVkFMVUFUSU9OID0gJ09wZXJhdGlvbmFsRXZhbHVhdGlvbicsXHJcbiAgQURNSU5fU1VSVkVZUyA9ICdBZG1pblN1cnZleXMnLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBQcm9maWxlTW9kdWxlQWN0aW9uVHlwZSB7XHJcbiAgQUREX1ZFSElDTEUgPSAnQWRkIFZlaGljbGUnLFxyXG4gIEVESVRfVkVISUNMRSA9ICdFZGl0IFZlaGljbGUnLFxyXG4gIERFTEVURV9WRUhJQ0xFID0gJ0RlbGV0ZSBWZWhpY2xlJyxcclxuICBTSE9XX1ZFSElDTEUgPSAnU2hvdyBWZWhpY2xlJyxcclxuICBBRERfRFJJVkVSID0gJ0FkZCBEcml2ZXInLFxyXG4gIEVESVRfRFJJVkVSID0gJ0VkaXQgRHJpdmVyJyxcclxuICBERUxFVEVfRFJJVkVSID0gJ0RlbGV0ZSBEcml2ZXInLFxyXG4gIFNIT1dfRFJJVkVSID0gJ1Nob3cgRHJpdmVyJyxcclxuICBBRERfQ0FSUklFUiA9ICdBZGQgQ2FycmllcicsXHJcbiAgRURJVF9DQVJSSUVSID0gJ0VkaXQgQ2FycmllcicsXHJcbiAgREVMRVRFX0NBUlJJRVIgPSAnRGVsZXRlIENhcnJpZXInLFxyXG4gIFNIT1dfQ0FSUklFUiA9ICdTaG93IENhcnJpZXInLFxyXG4gIEFERF9QUk9GSUxFID0gJ0FkZCBQcm9maWxlJyxcclxuICBFRElUX1BST0ZJTEUgPSAnRWRpdCBQcm9maWxlJyxcclxuICBERUxFVEVfUFJPRklMRSA9ICdEZWxldGUgUHJvZmlsZScsXHJcbiAgU0hPV19QUk9GSUxFID0gJ1Nob3cgUHJvZmlsZScsXHJcbiAgRURJVF9CUk9BRENBU1RfVkFMVUVTID0gJ0VkaXQgQnJvYWRjYXN0IFZhbHVlcycsXHJcbiAgQUREX1dBVkUgPSAnQWRkIFdhdmUnLFxyXG4gIEVESVRfV0FWRSA9ICdFZGl0IFdhdmUnLFxyXG4gIEhJU1RPUklDQUxfQ0hBTkdFU19WRUhJQ0xFID0gJ0hpc3RvcmljYWwgQ2hhbmdlcyBWZWhpY2xlJyxcclxuICBISVNUT1JJQ0FMX0NIQU5HRVNfRFJJVkVSID0gJ0hpc3RvcmljYWwgQ2hhbmdlcyBEcml2ZXInLFxyXG4gIEhJU1RPUklDQUxfQ0hBTkdFU19DQVJSSUVSID0gJ0hpc3RvcmljYWwgQ2hhbmdlcyBDYXJyaWVyJyxcclxuICBISVNUT1JJQ0FMX0NIQU5HRVNfVFJJUCA9ICdIaXN0b3JpY2FsIENoYW5nZXMgVHJpcCcsXHJcbiAgSElTVE9SSUNBTF9DSEFOR0VTX1VTRVIgPSAnSGlzdG9yaWNhbCBDaGFuZ2VzIFVzZXInLFxyXG4gIENBTkNFTF9UUklQUyA9ICdDYW5jZWwgVHJpcHMnLFxyXG4gIEhJU1RPUklDQUxfQ0hBTkdFU19MT1RTID0gJ0hpc3RvcmljYWwgQ2hhbmdlcyBMb3RzJyxcclxuICBBRERfTE9DQVRJT04gPSAnQWRkIExvY2F0aW9uJyxcclxuICBFRElUX0xPQ0FUSU9OID0gJ0VkaXQgTG9jYXRpb24nLFxyXG4gIFNIT1dfTE9DQVRJT04gPSAnU2hvdyBMb2NhdGlvbicsXHJcbiAgQUREX1JFU1RSSUNUSU9OUyA9ICdBZGQgUmVzdHJpY3Rpb25zJyxcclxuICBFRElUX1JFU1RSSUNUSU9OUyA9ICdFZGl0IFJlc3RyaWN0aW9ucycsXHJcbiAgU0hPV19SRVNUUklDVElPTlMgPSAnU2hvdyBSZXN0cmljdGlvbnMnLFxyXG4gIERFTEVURV9SRVNUUklDVElPTlMgPSAnRGVsZXRlIFJlc3RyaWN0aW9ucycsXHJcbiAgREVMRVRFX0xPQ0FUSU9OID0gJ0RlbGV0ZSBMb2NhdGlvbicsXHJcbiAgU0hPV19NRVNTQUdFUyA9ICdTaG93IE1lc3NhZ2VzJyxcclxuICBFRElUX01FU1NBR0VTID0gJ0VkaXQgTWVzc2FnZXMnLFxyXG4gIERFTEVURV9NRVNTQUdFUyA9ICdEZWxldGUgTWVzc2FnZXMnLFxyXG4gIEFERF9NRVNTQUdFUyA9ICdBZGQgTWVzc2FnZXMnLFxyXG4gIEFERF9MT1QgPSAnQWRkIExvdCcsXHJcbiAgRURJVF9MT1QgPSAnRWRpdCBMb3QnLFxyXG4gIERFTEVURV9MT1QgPSAnRGVsZXRlIExvdCcsXHJcbiAgU0hPV19MT1QgPSAnU2hvdyBMb3QnLFxyXG4gIEFDQ0VQVF9DUkVESVQgPSAnQWNjZXB0IENyZWRpdCcsXHJcbiAgU0hPV19DUkVESVQgPSAnU2hvdyBDcmVkaXQnLFxyXG4gIEFERF9WRUhJQ0xFX0NPTkZJR1VSQVRJT04gPSAnQWRkIFZlaGljbGUgQ29uZmlndXJhdGlvbicsXHJcbiAgRURJVF9WRUhJQ0xFX0NPTkZJR1VSQVRJT04gPSAnRWRpdCBWZWhpY2xlIENvbmZpZ3VyYXRpb24nLFxyXG4gIFNIT1dfVkVISUNMRV9DT05GSUdVUkFUSU9OID0gJ1Nob3cgVmVoaWNsZSBDb25maWd1cmF0aW9uJyxcclxuICBBRERfU0NIRURVTElORyA9ICdBZGQgU2NoZWR1bGluZycsXHJcbiAgRURJVF9TQ0hFRFVMSU5HID0gJ0VkaXQgU2NoZWR1bGluZycsXHJcbiAgREVMRVRFX1NDSEVEVUxJTkcgPSAnRGVsZXRlIFNjaGVkdWxpbmcnLFxyXG4gIEFERF9WRUhJQ0xFX0NPTkZJR1VSQVRJT05fU0hJUFBFUiA9ICdBZGQgVmVoaWNsZSBDb25maWd1cmF0aW9uIFNoaXBwZXInLFxyXG4gIEVESVRfVkVISUNMRV9DT05GSUdVUkFUSU9OX1NISVBQRVIgPSAnRWRpdCBWZWhpY2xlIENvbmZpZ3VyYXRpb24gU2hpcHBlcicsXHJcbiAgU0hPV19WRUhJQ0xFX0NPTkZJR1VSQVRJT05fU0hJUFBFUiA9ICdTaG93IFZlaGljbGUgQ29uZmlndXJhdGlvbiBTaGlwcGVyJyxcclxuICBFRElUX1RSSVBfQlVOR0UgPSAnRWRpdCB0cmlwIEJ1bmdlJyxcclxuICBFRElUX1RSSVBfQ09GQ08gPSAnRWRpdCB0cmlwIENvZmNvJyxcclxuICBTSE9XX01JTklNVU1fVFJBTlNQT1JUX1BSSUNFX1RBQkxFID0gJ1Nob3cgTWluaW11bSBUcmFuc3BvcnQgUHJpY2UgVGFibGUnLFxyXG4gIEVESVRfTUlOSU1VTV9UUkFOU1BPUlRfUFJJQ0VfVEFCTEUgPSAnRWRpdCBNaW5pbXVtIFRyYW5zcG9ydCBQcmljZSBUYWJsZScsXHJcbiAgSElTVE9SSUNBTF9DSEFOR0VTX0NSRURJVFMgPSAnSGlzdG9yaWNhbCBDaGFuZ2VzIENyZWRpdHMnLFxyXG4gIElOVEVHUkHDh8ODT19QQUdCRU0gPSAnSW50ZWdyYcOnw6NvIFBhZ2JlbScsXHJcbiAgVkFMSURBVElPTl9DQVJSSUVSID0gJ1ZhbGlkYXRpb24gQ2FycmllcicsXHJcbiAgVkFMSURBVElPTl9EUklWRVIgPSAnVmFsaWRhdGlvbiBEcml2ZXInLFxyXG4gIFZBTElEQVRJT05fVkVISUNMRSA9ICdWYWxpZGF0aW9uIFZlaGljbGUnLFxyXG4gIEVESVRfVFJJUF9TVEFUVVMgPSAnRWRpdCB0cmlwIHN0YXR1cycsXHJcbiAgUkVHSVNUUkFUSU9OX1ZBTElEQVRJT04gPSAnUmVnaXN0cmF0aW9uIFZhbGlkYXRpb24nLFxyXG4gIEIzX09QRVJBVElPTiA9ICdCMyBPcGVyYXRpb24nLFxyXG4gIFNIT1dfQ0FSUklFUl9ERVRBSUxfSU5URUdSQVRJT04gPSAnU2hvdyBDYXJyaWVyIERldGFpbCBJbnRlZ3JhdGlvbicsXHJcbiAgU0hPV19EUklWRVJfREVUQUlMX0lOVEVHUkFUSU9OID0gJ1Nob3cgRHJpdmVyIERldGFpbCBJbnRlZ3JhdGlvbicsXHJcbiAgRlVFTFNfU0hPV19ESVNUUklCVVRJT05fQ0VOVEVSID0gJ0Z1ZWxzIHNob3cgZGlzdHJpYnV0aW9uIGNlbnRlcicsXHJcbiAgRlVFTFNfQUREX0RJU1RSSUJVVElPTl9DRU5URVIgPSAnRnVlbHMgYWRkIGRpc3RyaWJ1dGlvbiBjZW50ZXInLFxyXG4gIEZVRUxTX0VESVRfRElTVFJJQlVUSU9OX0NFTlRFUiA9ICdGdWVscyBlZGl0IGRpc3RyaWJ1dGlvbiBjZW50ZXInLFxyXG4gIEZVRUxTX0RFTEVURV9ESVNUUklCVVRJT05fQ0VOVEVSID0gJ0Z1ZWxzIGRlbGV0ZSBkaXN0cmlidXRpb24gY2VudGVyJyxcclxuICBGVUVMU19TSE9XX0RJU1RSSUJVVElPTl9QT0lOVCA9ICdGdWVscyBzaG93IGRpc3RyaWJ1dGlvbiBwb2ludCcsXHJcbiAgRlVFTFNfQUREX0RJU1RSSUJVVElPTl9QT0lOVCA9ICdGdWVscyBhZGQgZGlzdHJpYnV0aW9uIHBvaW50JyxcclxuICBGVUVMU19FRElUX0RJU1RSSUJVVElPTl9QT0lOVCA9ICdGdWVscyBlZGl0IGRpc3RyaWJ1dGlvbiBwb2ludCcsXHJcbiAgRlVFTFNfREVMRVRFX0RJU1RSSUJVVElPTl9QT0lOVCA9ICdGdWVscyBkZWxldGUgZGlzdHJpYnV0aW9uIHBvaW50JyxcclxuICBGVUVMU19TSE9XX0RJU1RSSUJVVElPTl9QT1NUID0gJ0Z1ZWxzIHNob3cgZGlzdHJpYnV0aW9uIHBvc3QnLFxyXG4gIEZVRUxTX0FERF9ESVNUUklCVVRJT05fUE9TVCA9ICdGdWVscyBhZGQgZGlzdHJpYnV0aW9uIHBvc3QnLFxyXG4gIEZVRUxTX0VESVRfRElTVFJJQlVUSU9OX1BPU1QgPSAnRnVlbHMgZWRpdCBkaXN0cmlidXRpb24gcG9zdCcsXHJcbiAgRlVFTFNfREVMRVRFX0RJU1RSSUJVVElPTl9QT1NUID0gJ0Z1ZWxzIGRlbGV0ZSBkaXN0cmlidXRpb24gcG9zdCcsXHJcbiAgRlVFTFNfU0hPV19NQVJLRVRQTEFDRV9QUk9EVUNUID0gJ0Z1ZWxzIHNob3cgbWFya2V0cGxhY2UgcHJvZHVjdCcsXHJcbiAgRlVFTFNfQUREX01BUktFVFBMQUNFX1BST0RVQ1QgPSAnRnVlbHMgYWRkIG1hcmtldHBsYWNlIHByb2R1Y3QnLFxyXG4gIEZVRUxTX0VESVRfTUFSS0VUUExBQ0VfUFJPRFVDVCA9ICdGdWVscyBlZGl0IG1hcmtldHBsYWNlIHByb2R1Y3QnLFxyXG4gIEZVRUxTX0RFTEVURV9NQVJLRVRQTEFDRV9QUk9EVUNUID0gJ0Z1ZWxzIGRlbGV0ZSBtYXJrZXRwbGFjZSBwcm9kdWN0JyxcclxuICBGVUVMU19TSE9XX1NUT0NLX1VQREFURSA9ICdGdWVscyBzaG93IHN0b2NrIHVwZGF0ZScsXHJcbiAgRlVFTFNfQUREX1NUT0NLX1VQREFURSA9ICdGdWVscyBhZGQgc3RvY2sgdXBkYXRlJyxcclxuICBTSE9XX01BUktFVFBMQUNFUyA9ICdTaG93IG1hcmtldHBsYWNlcycsXHJcbiAgRlVFTFNfU0hPV19ERVBPU0lUID0gJ0Z1ZWxzIHNob3cgZGVwb3NpdCcsXHJcbiAgRlVFTFNfQUREX0RFUE9TSVQgPSAnRnVlbHMgYWRkIGRlcG9zaXQnLFxyXG4gIEZVRUxTX0VESVRfREVQT1NJVCA9ICdGdWVscyBlZGl0IGRlcG9zaXQnLFxyXG4gIEZVRUxTX0RFTEVURV9ERVBPU0lUID0gJ0Z1ZWxzIGRlbGV0ZSBkZXBvc2l0JyxcclxuICBGVUVMU19TSE9XX1NVUFBMWV9PRkZFUiA9ICdGdWVscyBzaG93IHN1cHBseSBvZmZlcicsXHJcbiAgRlVFTFNfQUREX1NVUFBMWV9PRkZFUiA9ICdGdWVscyBhZGQgc3VwcGx5IG9mZmVyJyxcclxuICBGVUVMU19FRElUX1NVUFBMWV9PRkZFUiA9ICdGdWVscyBlZGl0IHN1cHBseSBvZmZlcicsXHJcbiAgRlVFTFNfU0hPV19PUEVSQVRPUiA9ICdGdWVscyBzaG93IG9wZXJhdG9yJyxcclxuICBGVUVMU19BRERfT1BFUkFUT1IgPSAnRnVlbHMgYWRkIG9wZXJhdG9yJyxcclxuICBGVUVMU19FRElUX09QRVJBVE9SID0gJ0Z1ZWxzIGVkaXQgb3BlcmF0b3InLFxyXG4gIEZVRUxTX0RFTEVURV9PUEVSQVRPUiA9ICdGdWVscyBkZWxldGUgb3BlcmF0b3InLFxyXG4gIEZJTlRFQ0hfQkFOS19BRE1JTiA9ICdGaW50ZWNoIEJhbmsgQWRtaW4nLFxyXG4gIEZJTlRFQ0hfQkFOS19VU0VSID0gJ0ZpbnRlY2ggQmFuayBVc2VyJyxcclxuICBGSU5URUNIX0NSRURJVF9BRE1JTiA9ICdGaW50ZWNoIENyZWRpdCBBZG1pbicsXHJcbiAgRklOVEVDSF9DUkVESVRfVVNFUiA9ICdGaW50ZWNoIENyZWRpdCBVc2VyJyxcclxuICBGSU5URUNIX0JBTktfQURNSU5fQUNDT1VOVFNfVklFVyA9ICdGaW50ZWNoIEJhbmsgQWRtaW4gLSBBY2NvdW50cyBWaWV3JyxcclxuICBGSU5URUNIX0NSRURJVF9BRE1JTl9QUk9QT1NBTF9OT1RfQ09ORklSTUVEID0gJ0ZpbnRlY2ggQ3JlZGl0IEFkbWluIC0gUHJvcG9zYWwgTm90IENvbmZpcm1lZCcsXHJcbiAgRklOVEVDSF9DUkVESVRfQURNSU5fQ09OVFJBQ1RTX0ZPTExPV19VUCA9ICdGaW50ZWNoIENyZWRpdCBBZG1pbiAtIENvbnRyYWN0cyBGb2xsb3ctVXAnLFxyXG4gIEFETUlOX01BUktFUExBQ0UgPSAnQWRtaW4gTWFya2VwbGFjZScsXHJcbiAgQVBQUk9WRV9SRVFVRVNUID0gJ0FwcHJvdmUgUmVxdWVzdCcsXHJcbiAgUkVQUk9WRV9SRVFVRVNUID0gJ1JlcHJvdmUgUmVxdWVzdCcsXHJcbiAgU0hPV19SRVFVRVNUID0gJ1Nob3cgUmVxdWVzdCcsXHJcbiAgU0hPV19VU0VSID0gJ1Nob3cgVXNlcicsXHJcbiAgQUREX1VTRVIgPSAnQWRkIFVzZXInLFxyXG4gIEVESVRfVVNFUiA9ICdFZGl0IFVzZXInLFxyXG4gIERFTEVURV9VU0VSID0gJ0RlbGV0ZSBVc2VyJyxcclxuICBBRERfUkVHSU9OID0gXCJBZGQgUmVnaW9uXCIsXHJcbiAgU0hPV19SRUdJT04gPSBcIlNob3cgUmVnaW9uXCIsXHJcbiAgRURJVF9SRUdJT04gPSBcIkVkaXQgUmVnaW9uXCJcclxufVxyXG4iXX0=