@dereekb/dbx-web 12.3.1 → 12.3.2
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/esm2022/table/lib/table.component.mjs +4 -3
- package/esm2022/table/lib/table.mjs +1 -1
- package/esm2022/table/lib/table.reader.mjs +1 -1
- package/esm2022/table/lib/table.store.mjs +4 -1
- package/fesm2022/dereekb-dbx-web-table.mjs +6 -3
- package/fesm2022/dereekb-dbx-web-table.mjs.map +1 -1
- package/lib/extension/table/_table.scss +4 -2
- package/lib/layout/list/_list.scss +12 -0
- package/lib/style/_mixin.scss +20 -23
- package/lib/style/_root-variables.scss +41 -1
- package/lib/style/_variables.scss +32 -3
- package/package.json +1 -1
- package/table/lib/table.component.d.ts +1 -0
- package/table/lib/table.d.ts +5 -1
- package/table/lib/table.reader.d.ts +1 -1
- package/table/lib/table.store.d.ts +2 -0
|
@@ -118,6 +118,7 @@ export class DbxTableViewComponent {
|
|
|
118
118
|
dataLoadingContextSignal = toSignal(this.dataLoadingContext.state$);
|
|
119
119
|
viewDelegateSignal = toSignal(this.tableStore.viewDelegate$);
|
|
120
120
|
elementsSignal = toSignal(this.elements$, { initialValue: [] });
|
|
121
|
+
tableCssClasses = toSignal(this.tableStore.spaceSeparatedTableCssClasses$);
|
|
121
122
|
onScrollDown() {
|
|
122
123
|
this.tableStore.loadMore();
|
|
123
124
|
}
|
|
@@ -145,7 +146,7 @@ export class DbxTableViewComponent {
|
|
|
145
146
|
provide: DBX_TABLE_COLUMN_SIZE_PARENT_ELEMENT_REF_TOKEN,
|
|
146
147
|
useExisting: ElementRef
|
|
147
148
|
}
|
|
148
|
-
], viewQueries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true, isSignal: true }], ngImport: i0, template: "<dbx-loading [context]=\"context\">\n <dbx-loading class=\"dbx-table-view-loading\" [linear]=\"true\" [context]=\"dataLoadingContext\"></dbx-loading>\n <section class=\"dbx-table-view\" dbx-table-column-size #columnSize=\"dbxTableColumnSize\" infinite-scroll [infiniteScrollDistance]=\"scrollDistance()\" [infiniteScrollThrottle]=\"throttleScroll()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\">\n
|
|
149
|
+
], viewQueries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true, isSignal: true }], ngImport: i0, template: "<dbx-loading [context]=\"context\">\n <dbx-loading class=\"dbx-table-view-loading\" [linear]=\"true\" [context]=\"dataLoadingContext\"></dbx-loading>\n <div class=\"dbx-table-view\" [ngClass]=\"tableCssClasses()\">\n <section class=\"dbx-table-view-table-wrapper\" dbx-table-column-size #columnSize=\"dbxTableColumnSize\" infinite-scroll [infiniteScrollDistance]=\"scrollDistance()\" [infiniteScrollThrottle]=\"throttleScroll()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\">\n <table class=\"dbx-table-view-table\" mat-table [dataSource]=\"elementsSignal()\" [trackBy]=\"trackElementByFunctionSignal()\" multiTemplateDataRows>\n <!-- Groups -->\n <!-- Group Header column -->\n <ng-container matColumnDef=\"groupHeaderColumn\" [sticky]=\"true\">\n <td mat-cell [attr.colspan]=\"columnSize.visibleColumnsSignal()\" *matCellDef=\"let element\">\n <dbx-table-group-header [group]=\"element.group\"></dbx-table-group-header>\n </td>\n </ng-container>\n\n <!-- Group Footer column -->\n <ng-container matColumnDef=\"groupFooterColumn\" [sticky]=\"true\">\n <td mat-cell [attr.colspan]=\"columnSize.visibleColumnsSignal()\" *matCellDef=\"let element\">\n <dbx-table-group-footer [group]=\"element.group\"></dbx-table-group-footer>\n </td>\n </ng-container>\n\n <!-- Items -->\n <!-- Header/Item column -->\n <ng-container [matColumnDef]=\"itemsColumnName\" [sticky]=\"true\">\n <th dbx-column-size-column=\"head\" mat-header-cell *matHeaderCellDef>\n <dbx-table-input-cell></dbx-table-input-cell>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <dbx-table-item-header [item]=\"element.item\"></dbx-table-item-header>\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-summary-start-cell></dbx-table-summary-start-cell>\n </td>\n </ng-container>\n\n <!-- Column Definitions -->\n @for (column of innerColumnsSignal(); track column.columnName) {\n <ng-container [matColumnDef]=\"column.columnName\" [sticky]=\"false\">\n <th [dbx-column-size-column]=\"$index\" mat-header-cell *matHeaderCellDef>\n <dbx-table-column-header [column]=\"column\"></dbx-table-column-header>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <dbx-table-item-cell [item]=\"element.item\" [column]=\"column\"></dbx-table-item-cell>\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-column-footer [column]=\"column\"></dbx-table-column-footer>\n </td>\n </ng-container>\n }\n\n <!-- Tail/Action column -->\n <ng-container [matColumnDef]=\"actionsColumnName\" [stickyEnd]=\"true\">\n <th dbx-column-size-column=\"tail\" mat-header-cell *matHeaderCellDef>\n <dbx-table-action-cell></dbx-table-action-cell>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <dbx-table-item-action [item]=\"element.item\"></dbx-table-item-action>\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-summary-end-cell></dbx-table-summary-end-cell>\n </td>\n </ng-container>\n\n <!-- Table View -->\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsSignal(); sticky: true\"></tr>\n\n <tr mat-row *matRowDef=\"let row; columns: ['groupHeaderColumn']; when: showGroupHeaderRow\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumnsSignal(); when: showItemRow\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['groupFooterColumn']; when: showGroupFooterRow\"></tr>\n\n <tr [ngClass]=\"{ 'dbx-hide': !showFooterRowSignal() }\" mat-footer-row *matFooterRowDef=\"displayedColumnsSignal(); sticky: true\"></tr>\n </table>\n </section>\n <!-- Full summary row -->\n @if (showFullSummaryRowSignal()) {\n <div class=\"mat-mdc-table dbx-table-view-full-summary-row-container\">\n <div class=\"mdc-data-table__cell mat-mdc-row\">\n <dbx-table-full-summary-row></dbx-table-full-summary-row>\n </div>\n </div>\n }\n </div>\n</dbx-loading>\n", dependencies: [{ kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i1.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i1.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i1.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i1.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "component", type: DbxTableInputCellComponent, selector: "dbx-table-input-cell" }, { kind: "component", type: DbxTableItemHeaderComponent, selector: "dbx-table-item-header" }, { kind: "component", type: DbxTableItemCellComponent, selector: "dbx-table-item-cell", inputs: ["column"] }, { kind: "component", type: DbxTableItemActionComponent, selector: "dbx-table-item-action" }, { kind: "component", type: DbxTableActionCellComponent, selector: "dbx-table-action-cell" }, { kind: "component", type: DbxTableColumnHeaderComponent, selector: "dbx-table-column-header" }, { kind: "component", type: DbxTableColumnFooterComponent, selector: "dbx-table-column-footer" }, { kind: "component", type: DbxTableSummaryStartCellComponent, selector: "dbx-table-summary-start-cell" }, { kind: "component", type: DbxTableSummaryEndCellComponent, selector: "dbx-table-summary-end-cell" }, { kind: "component", type: DbxTableGroupHeaderComponent, selector: "dbx-table-group-header" }, { kind: "component", type: DbxTableGroupFooterComponent, selector: "dbx-table-group-footer" }, { kind: "component", type: DbxTableFullSummaryRowComponent, selector: "dbx-table-full-summary-row" }, { kind: "directive", type: DbxTableColumnSizeDirective, selector: "[dbx-table-column-size]", exportAs: ["dbxTableColumnSize"] }, { kind: "directive", type: DbxColumnSizeColumnDirective, selector: "[dbx-column-size-column]", inputs: ["dbx-column-size-column"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
149
150
|
}
|
|
150
151
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableViewComponent, decorators: [{
|
|
151
152
|
type: Component,
|
|
@@ -173,6 +174,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
173
174
|
provide: DBX_TABLE_COLUMN_SIZE_PARENT_ELEMENT_REF_TOKEN,
|
|
174
175
|
useExisting: ElementRef
|
|
175
176
|
}
|
|
176
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<dbx-loading [context]=\"context\">\n <dbx-loading class=\"dbx-table-view-loading\" [linear]=\"true\" [context]=\"dataLoadingContext\"></dbx-loading>\n <section class=\"dbx-table-view\" dbx-table-column-size #columnSize=\"dbxTableColumnSize\" infinite-scroll [infiniteScrollDistance]=\"scrollDistance()\" [infiniteScrollThrottle]=\"throttleScroll()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\">\n
|
|
177
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<dbx-loading [context]=\"context\">\n <dbx-loading class=\"dbx-table-view-loading\" [linear]=\"true\" [context]=\"dataLoadingContext\"></dbx-loading>\n <div class=\"dbx-table-view\" [ngClass]=\"tableCssClasses()\">\n <section class=\"dbx-table-view-table-wrapper\" dbx-table-column-size #columnSize=\"dbxTableColumnSize\" infinite-scroll [infiniteScrollDistance]=\"scrollDistance()\" [infiniteScrollThrottle]=\"throttleScroll()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\">\n <table class=\"dbx-table-view-table\" mat-table [dataSource]=\"elementsSignal()\" [trackBy]=\"trackElementByFunctionSignal()\" multiTemplateDataRows>\n <!-- Groups -->\n <!-- Group Header column -->\n <ng-container matColumnDef=\"groupHeaderColumn\" [sticky]=\"true\">\n <td mat-cell [attr.colspan]=\"columnSize.visibleColumnsSignal()\" *matCellDef=\"let element\">\n <dbx-table-group-header [group]=\"element.group\"></dbx-table-group-header>\n </td>\n </ng-container>\n\n <!-- Group Footer column -->\n <ng-container matColumnDef=\"groupFooterColumn\" [sticky]=\"true\">\n <td mat-cell [attr.colspan]=\"columnSize.visibleColumnsSignal()\" *matCellDef=\"let element\">\n <dbx-table-group-footer [group]=\"element.group\"></dbx-table-group-footer>\n </td>\n </ng-container>\n\n <!-- Items -->\n <!-- Header/Item column -->\n <ng-container [matColumnDef]=\"itemsColumnName\" [sticky]=\"true\">\n <th dbx-column-size-column=\"head\" mat-header-cell *matHeaderCellDef>\n <dbx-table-input-cell></dbx-table-input-cell>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <dbx-table-item-header [item]=\"element.item\"></dbx-table-item-header>\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-summary-start-cell></dbx-table-summary-start-cell>\n </td>\n </ng-container>\n\n <!-- Column Definitions -->\n @for (column of innerColumnsSignal(); track column.columnName) {\n <ng-container [matColumnDef]=\"column.columnName\" [sticky]=\"false\">\n <th [dbx-column-size-column]=\"$index\" mat-header-cell *matHeaderCellDef>\n <dbx-table-column-header [column]=\"column\"></dbx-table-column-header>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <dbx-table-item-cell [item]=\"element.item\" [column]=\"column\"></dbx-table-item-cell>\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-column-footer [column]=\"column\"></dbx-table-column-footer>\n </td>\n </ng-container>\n }\n\n <!-- Tail/Action column -->\n <ng-container [matColumnDef]=\"actionsColumnName\" [stickyEnd]=\"true\">\n <th dbx-column-size-column=\"tail\" mat-header-cell *matHeaderCellDef>\n <dbx-table-action-cell></dbx-table-action-cell>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <dbx-table-item-action [item]=\"element.item\"></dbx-table-item-action>\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-summary-end-cell></dbx-table-summary-end-cell>\n </td>\n </ng-container>\n\n <!-- Table View -->\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsSignal(); sticky: true\"></tr>\n\n <tr mat-row *matRowDef=\"let row; columns: ['groupHeaderColumn']; when: showGroupHeaderRow\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumnsSignal(); when: showItemRow\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['groupFooterColumn']; when: showGroupFooterRow\"></tr>\n\n <tr [ngClass]=\"{ 'dbx-hide': !showFooterRowSignal() }\" mat-footer-row *matFooterRowDef=\"displayedColumnsSignal(); sticky: true\"></tr>\n </table>\n </section>\n <!-- Full summary row -->\n @if (showFullSummaryRowSignal()) {\n <div class=\"mat-mdc-table dbx-table-view-full-summary-row-container\">\n <div class=\"mdc-data-table__cell mat-mdc-row\">\n <dbx-table-full-summary-row></dbx-table-full-summary-row>\n </div>\n </div>\n }\n </div>\n</dbx-loading>\n" }]
|
|
177
178
|
}] });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi90YWJsZS9zcmMvbGliL3RhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvdGFibGUvc3JjL2xpYi90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFtQixNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVJLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBZ0IsbUJBQW1CLEVBQUUsZ0NBQWdDLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQWMsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSx5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LElBQUksQ0FBQztJQUM5QyxDQUFDLENBQUMsQ0FBQzt3R0F4SlEscUJBQXFCOzRGQUFyQixxQkFBcUIsK1dBVHJCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLDhDQUE4QztnQkFDdkQsV0FBVyxFQUFFLFVBQVU7YUFDeEI7U0FDRixpRUFNd0UsUUFBUSxnRUN2Rm5GLHFnSUFnRkEsNENEdkJJLG1CQUFtQixtS0FDbkIsT0FBTyxvRkFDUCx1QkFBdUIseVdBQ3ZCLGNBQWMsMDdDQUNkLDBCQUEwQixpRUFDMUIsMkJBQTJCLGtFQUMzQix5QkFBeUIsb0ZBQ3pCLDJCQUEyQixrRUFDM0IsMkJBQTJCLGtFQUMzQiw2QkFBNkIsb0VBQzdCLDZCQUE2QixvRUFDN0IsaUNBQWlDLHlFQUNqQywrQkFBK0IsdUVBQy9CLDRCQUE0QixtRUFDNUIsNEJBQTRCLG1FQUM1QiwrQkFBK0IsdUVBQy9CLDJCQUEyQixzR0FDM0IsNEJBQTRCOzs0RkFXbkIscUJBQXFCO2tCQWhDakMsU0FBUzsrQkFDRSxnQkFBZ0IsV0FFakI7d0JBQ1AsbUJBQW1CO3dCQUNuQixPQUFPO3dCQUNQLHVCQUF1Qjt3QkFDdkIsY0FBYzt3QkFDZCwwQkFBMEI7d0JBQzFCLDJCQUEyQjt3QkFDM0IseUJBQXlCO3dCQUN6QiwyQkFBMkI7d0JBQzNCLDJCQUEyQjt3QkFDM0IsNkJBQTZCO3dCQUM3Qiw2QkFBNkI7d0JBQzdCLGlDQUFpQzt3QkFDakMsK0JBQStCO3dCQUMvQiw0QkFBNEI7d0JBQzVCLDRCQUE0Qjt3QkFDNUIsK0JBQStCO3dCQUMvQiwyQkFBMkI7d0JBQzNCLDRCQUE0QjtxQkFDN0IsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsOENBQThDOzRCQUN2RCxXQUFXLEVBQUUsVUFBVTt5QkFDeEI7cUJBQ0YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFRyYWNrQnlGdW5jdGlvbiwgaW5qZWN0LCBjb21wdXRlZCwgaW5wdXQsIFNpZ25hbCwgdmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IERieFRhYmxlU3RvcmUgfSBmcm9tICcuL3RhYmxlLnN0b3JlJztcbmltcG9ydCB7IExvYWRpbmdTdGF0ZSwgbG9hZGluZ1N0YXRlQ29udGV4dCwgbWFwTG9hZGluZ1N0YXRlVmFsdWVXaXRoT3BlcmF0b3IsIHZhbHVlRnJvbUZpbmlzaGVkTG9hZGluZ1N0YXRlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBzaGFyZVJlcGxheSwgbWFwLCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXAsIHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGJ4TG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxEaXJlY3RpdmUgfSBmcm9tICduZ3gtaW5maW5pdGUtc2Nyb2xsJztcbmltcG9ydCB7IE1hdFRhYmxlLCBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IERieFRhYmxlSW5wdXRDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5jZWxsLmlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhUYWJsZVN1bW1hcnlFbmRDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5jZWxsLnN1bW1hcnllbmQuY29tcG9uZW50JztcbmltcG9ydCB7IERieFRhYmxlU3VtbWFyeVN0YXJ0Q2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuY2VsbC5zdW1tYXJ5c3RhcnQuY29tcG9uZW50JztcbmltcG9ydCB7IERieFRhYmxlQ29sdW1uRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5jb2x1bW4uZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhUYWJsZUl0ZW1DZWxsQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5pdGVtLmNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IERieFRhYmxlSXRlbUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuaXRlbS5oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERieFRhYmxlSXRlbUFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuaXRlbS5hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IERieFRhYmxlQWN0aW9uQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuY2VsbC5hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IERieFRhYmxlQ29sdW1uSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5jb2x1bW4uaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhUYWJsZUl0ZW1Hcm91cCwgRGVmYXVsdERieFRhYmxlSXRlbUdyb3VwIH0gZnJvbSAnLi90YWJsZSc7XG5pbXBvcnQgeyBEYnhUYWJsZUdyb3VwSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5ncm91cC5oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERieFRhYmxlR3JvdXBGb290ZXJDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLmdyb3VwLmZvb3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgcHVzaEFycmF5SXRlbXNJbnRvQXJyYXkgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGJ4VGFibGVGdWxsU3VtbWFyeVJvd0NvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuZnVsbHN1bW1hcnlyb3cuY29tcG9uZW50JztcbmltcG9ydCB7IERieFRhYmxlQ29sdW1uU2l6ZURpcmVjdGl2ZSwgRGJ4Q29sdW1uU2l6ZUNvbHVtbkRpcmVjdGl2ZSB9IGZyb20gJy4vdGFibGUuY29sdW1uLnNpemUuZGlyZWN0aXZlJztcbmltcG9ydCB7IERCWF9UQUJMRV9DT0xVTU5fU0laRV9QQVJFTlRfRUxFTUVOVF9SRUZfVE9LRU4gfSBmcm9tICcuL3RhYmxlLmNvbHVtbi5zaXplJztcblxuZXhwb3J0IGNvbnN0IERCWF9UQUJMRV9JVEVNU19DT0xVTU5fTkFNRSA9ICdfaXRlbXMnO1xuZXhwb3J0IGNvbnN0IERCWF9UQUJMRV9BQ1RJT05TX0NPTFVNTl9OQU1FID0gJ19hY3Rpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhUYWJsZVZpZXdHcm91cEVsZW1lbnQ8VCwgRz4ge1xuICByZWFkb25seSB0eXBlOiAnZ3JvdXAnO1xuICByZWFkb25seSBsb2NhdGlvbjogJ2hlYWRlcicgfCAnZm9vdGVyJztcbiAgcmVhZG9ubHkgZ3JvdXA6IERieFRhYmxlSXRlbUdyb3VwPFQsIEc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieFRhYmxlVmlld0l0ZW1FbGVtZW50PFQsIEc+IHtcbiAgcmVhZG9ubHkgdHlwZTogJ2l0ZW0nO1xuICByZWFkb25seSBpdGVtOiBUO1xufVxuXG5leHBvcnQgdHlwZSBEYnhUYWJsZVZpZXdFbGVtZW50PFQsIEc+ID0gRGJ4VGFibGVWaWV3R3JvdXBFbGVtZW50PFQsIEc+IHwgRGJ4VGFibGVWaWV3SXRlbUVsZW1lbnQ8VCwgRz47XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RieFRhYmxlVmlld0dyb3VwRWxlbWVudDxULCBHPihlbGVtZW50OiBEYnhUYWJsZVZpZXdFbGVtZW50PFQsIEc+KTogZWxlbWVudCBpcyBEYnhUYWJsZVZpZXdHcm91cEVsZW1lbnQ8VCwgRz4ge1xuICByZXR1cm4gZWxlbWVudC50eXBlID09PSAnZ3JvdXAnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEYnhUYWJsZVZpZXdJdGVtRWxlbWVudDxULCBHPihlbGVtZW50OiBEYnhUYWJsZVZpZXdFbGVtZW50PFQsIEc+KTogZWxlbWVudCBpcyBEYnhUYWJsZVZpZXdJdGVtRWxlbWVudDxULCBHPiB7XG4gIHJldHVybiBlbGVtZW50LnR5cGUgPT09ICdpdGVtJztcbn1cblxuLyoqXG4gKiBBIHRhYmxlIHdpdGggZml4ZWQgY29udGVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtdGFibGUtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIGltcG9ydHM6IFtcbiAgICBEYnhMb2FkaW5nQ29tcG9uZW50LFxuICAgIE5nQ2xhc3MsXG4gICAgSW5maW5pdGVTY3JvbGxEaXJlY3RpdmUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgRGJ4VGFibGVJbnB1dENlbGxDb21wb25lbnQsXG4gICAgRGJ4VGFibGVJdGVtSGVhZGVyQ29tcG9uZW50LFxuICAgIERieFRhYmxlSXRlbUNlbGxDb21wb25lbnQsXG4gICAgRGJ4VGFibGVJdGVtQWN0aW9uQ29tcG9uZW50LFxuICAgIERieFRhYmxlQWN0aW9uQ2VsbENvbXBvbmVudCxcbiAgICBEYnhUYWJsZUNvbHVtbkhlYWRlckNvbXBvbmVudCxcbiAgICBEYnhUYWJsZUNvbHVtbkZvb3RlckNvbXBvbmVudCxcbiAgICBEYnhUYWJsZVN1bW1hcnlTdGFydENlbGxDb21wb25lbnQsXG4gICAgRGJ4VGFibGVTdW1tYXJ5RW5kQ2VsbENvbXBvbmVudCxcbiAgICBEYnhUYWJsZUdyb3VwSGVhZGVyQ29tcG9uZW50LFxuICAgIERieFRhYmxlR3JvdXBGb290ZXJDb21wb25lbnQsXG4gICAgRGJ4VGFibGVGdWxsU3VtbWFyeVJvd0NvbXBvbmVudCxcbiAgICBEYnhUYWJsZUNvbHVtblNpemVEaXJlY3RpdmUsXG4gICAgRGJ4Q29sdW1uU2l6ZUNvbHVtbkRpcmVjdGl2ZVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBEQlhfVEFCTEVfQ09MVU1OX1NJWkVfUEFSRU5UX0VMRU1FTlRfUkVGX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IEVsZW1lbnRSZWZcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieFRhYmxlVmlld0NvbXBvbmVudDxJLCBDLCBULCBHID0gdW5rbm93bj4ge1xuICByZWFkb25seSB0YWJsZVN0b3JlID0gaW5qZWN0KERieFRhYmxlU3RvcmU8SSwgQywgVCwgRz4pO1xuICByZWFkb25seSB0YWJsZSA9IHZpZXdDaGlsZC5yZXF1aXJlZDxNYXRUYWJsZTxEYnhUYWJsZVZpZXdFbGVtZW50PFQsIEc+Pj4oTWF0VGFibGUpO1xuXG4gIHJlYWRvbmx5IERFRkFVTFRfVFJBQ0tfQllfRlVOQ1RJT046IFRyYWNrQnlGdW5jdGlvbjxhbnk+ID0gKGluZGV4KSA9PiB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9O1xuXG4gIHJlYWRvbmx5IHNjcm9sbERpc3RhbmNlID0gaW5wdXQ8bnVtYmVyPigwLjUpO1xuICByZWFkb25seSB0aHJvdHRsZVNjcm9sbCA9IGlucHV0PG51bWJlcj4oNTApO1xuXG4gIHJlYWRvbmx5IGl0ZW1zQ29sdW1uTmFtZSA9IERCWF9UQUJMRV9JVEVNU19DT0xVTU5fTkFNRTtcbiAgcmVhZG9ubHkgYWN0aW9uc0NvbHVtbk5hbWUgPSBEQlhfVEFCTEVfQUNUSU9OU19DT0xVTU5fTkFNRTtcblxuICByZWFkb25seSBpbm5lckNvbHVtbnMkID0gdGhpcy50YWJsZVN0b3JlLmNvbHVtbnMkO1xuICByZWFkb25seSBpbm5lckNvbHVtbk5hbWVzJCA9IHRoaXMuaW5uZXJDb2x1bW5zJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5tYXAoKHkpID0+IHkuY29sdW1uTmFtZSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaW5uZXJDb2x1bW5zU2lnbmFsID0gdG9TaWduYWwodGhpcy5pbm5lckNvbHVtbnMkKTtcbiAgcmVhZG9ubHkgaW5uZXJDb2x1bW5OYW1lc1NpZ25hbCA9IHRvU2lnbmFsKHRoaXMuaW5uZXJDb2x1bW5OYW1lcyQpO1xuXG4gIHJlYWRvbmx5IGVsZW1lbnRzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhUYWJsZVZpZXdFbGVtZW50PFQsIEc+W10+PiA9IHRoaXMudGFibGVTdG9yZS5ncm91cHNTdGF0ZSQucGlwZShcbiAgICBtYXBMb2FkaW5nU3RhdGVWYWx1ZVdpdGhPcGVyYXRvcihcbiAgICAgIHN3aXRjaE1hcCgoZ3JvdXBzKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhYmxlU3RvcmUudmlld0RlbGVnYXRlJC5waXBlKFxuICAgICAgICAgIG1hcCgodmlld0RlbGVnYXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGdyb3VwSGVhZGVyOiBpbnB1dEdyb3VwSGVhZGVyLCBncm91cEZvb3RlcjogaW5wdXRHcm91cEZvb3RlciB9ID0gdmlld0RlbGVnYXRlO1xuICAgICAgICAgICAgY29uc3QgaGFzR3JvdXBIZWFkZXIgPSBpbnB1dEdyb3VwSGVhZGVyICE9IG51bGwgPyAoZ3JvdXA6IERieFRhYmxlSXRlbUdyb3VwPFQsIEc+KSA9PiBpbnB1dEdyb3VwSGVhZGVyKGdyb3VwKSAhPSBudWxsIDogKCkgPT4gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBoYXNHcm91cEZvb3RlciA9IGlucHV0R3JvdXBGb290ZXIgIT0gbnVsbCA/IChncm91cDogRGJ4VGFibGVJdGVtR3JvdXA8VCwgRz4pID0+IGlucHV0R3JvdXBGb290ZXIoZ3JvdXApICE9IG51bGwgOiAoKSA9PiBmYWxzZTtcblxuICAgICAgICAgICAgcmV0dXJuIGdyb3Vwc1xuICAgICAgICAgICAgICAubWFwKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaXRlbXMgfSA9IGdyb3VwO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUVsZW1lbnRzOiBEYnhUYWJsZVZpZXdJdGVtRWxlbWVudDxULCBHPltdID0gaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ2l0ZW0nLFxuICAgICAgICAgICAgICAgICAgaXRlbVxuICAgICAgICAgICAgICAgIH0pKTtcblxuICAgICAgICAgICAgICAgIGxldCBlbGVtZW50czogRGJ4VGFibGVWaWV3RWxlbWVudDxULCBHPltdO1xuXG4gICAgICAgICAgICAgICAgaWYgKChncm91cCBhcyBEZWZhdWx0RGJ4VGFibGVJdGVtR3JvdXA8VCwgRz4pLmRlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgIGVsZW1lbnRzID0gaXRlbUVsZW1lbnRzO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXIgPSBoYXNHcm91cEhlYWRlcihncm91cCk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBmb290ZXIgPSBoYXNHcm91cEZvb3Rlcihncm91cCk7XG5cbiAgICAgICAgICAgICAgICAgIGVsZW1lbnRzID0gW107XG5cbiAgICAgICAgICAgICAgICAgIGlmIChoZWFkZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2dyb3VwJyxcbiAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjogJ2hlYWRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgZ3JvdXBcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHB1c2hBcnJheUl0ZW1zSW50b0FycmF5KGVsZW1lbnRzLCBpdGVtRWxlbWVudHMpO1xuXG4gICAgICAgICAgICAgICAgICBpZiAoZm9vdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdncm91cCcsXG4gICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246ICdmb290ZXInLFxuICAgICAgICAgICAgICAgICAgICAgIGdyb3VwXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50cztcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmZsYXQoKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZWxlbWVudHMkID0gdGhpcy5lbGVtZW50c1N0YXRlJC5waXBlKFxuICAgIHZhbHVlRnJvbUZpbmlzaGVkTG9hZGluZ1N0YXRlKCgpID0+IFtdKSxcbiAgICB0aHJvdHRsZVRpbWUoNTAsIHVuZGVmaW5lZCwgeyBsZWFkaW5nOiB0cnVlLCB0cmFpbGluZzogdHJ1ZSB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRpc3BsYXllZENvbHVtbnMkID0gdGhpcy5pbm5lckNvbHVtbk5hbWVzJC5waXBlKFxuICAgIG1hcCgoY29sdW1uTmFtZXMpID0+IHtcbiAgICAgIHJldHVybiBbdGhpcy5pdGVtc0NvbHVtbk5hbWUsIC4uLmNvbHVtbk5hbWVzLCB0aGlzLmFjdGlvbnNDb2x1bW5OYW1lXTtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRpc3BsYXllZENvbHVtbnNTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29sdW1uTmFtZXMgPSB0aGlzLmlubmVyQ29sdW1uTmFtZXNTaWduYWwoKSB8fCBbXTtcbiAgICByZXR1cm4gW3RoaXMuaXRlbXNDb2x1bW5OYW1lLCAuLi5jb2x1bW5OYW1lcywgdGhpcy5hY3Rpb25zQ29sdW1uTmFtZV07XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHRyYWNrQnlGdW5jdGlvbiQ6IE9ic2VydmFibGU8VHJhY2tCeUZ1bmN0aW9uPFQ+PiA9IHRoaXMudGFibGVTdG9yZS52aWV3RGVsZWdhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnRyYWNrQnkgPz8gdGhpcy5ERUZBVUxUX1RSQUNLX0JZX0ZVTkNUSU9OKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlucHV0VHJhY2tCeUZ1bmN0aW9uU2lnbmFsID0gdG9TaWduYWwodGhpcy50cmFja0J5RnVuY3Rpb24kLCB7IGluaXRpYWxWYWx1ZTogdGhpcy5ERUZBVUxUX1RSQUNLX0JZX0ZVTkNUSU9OIH0pO1xuICByZWFkb25seSB0cmFja0VsZW1lbnRCeUZ1bmN0aW9uU2lnbmFsOiBTaWduYWw8VHJhY2tCeUZ1bmN0aW9uPERieFRhYmxlVmlld0VsZW1lbnQ8VCwgRz4+PiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB0cmFja0J5RnVuY3Rpb24gPSB0aGlzLmlucHV0VHJhY2tCeUZ1bmN0aW9uU2lnbmFsKCkgYXMgVHJhY2tCeUZ1bmN0aW9uPFQ+O1xuXG4gICAgY29uc3QgZm46IFRyYWNrQnlGdW5jdGlvbjxEYnhUYWJsZVZpZXdFbGVtZW50PFQsIEc+PiA9IChpbmRleDogbnVtYmVyLCBlbGVtZW50OiBEYnhUYWJsZVZpZXdFbGVtZW50PFQsIEc+KSA9PiB7XG4gICAgICBpZiAoZWxlbWVudC50eXBlID09PSAnaXRlbScpIHtcbiAgICAgICAgcmV0dXJuIGBpXyR7dHJhY2tCeUZ1bmN0aW9uKGluZGV4LCBlbGVtZW50Lml0ZW0gYXMgVCl9YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBgZ18ke2VsZW1lbnQuZ3JvdXAuZ3JvdXBJZH1gO1xuICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gZm47XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGNvbnRleHQgPSBsb2FkaW5nU3RhdGVDb250ZXh0KHsgb2JzOiB0aGlzLnRhYmxlU3RvcmUuZGF0YVN0YXRlJCB9KTtcbiAgcmVhZG9ubHkgZGF0YUxvYWRpbmdDb250ZXh0ID0gbG9hZGluZ1N0YXRlQ29udGV4dCh7IG9iczogdGhpcy5lbGVtZW50c1N0YXRlJCB9KTtcblxuICByZWFkb25seSBjb250ZXh0U2lnbmFsID0gdG9TaWduYWwodGhpcy5jb250ZXh0LnN0YXRlJCk7XG4gIHJlYWRvbmx5IGRhdGFMb2FkaW5nQ29udGV4dFNpZ25hbCA9IHRvU2lnbmFsKHRoaXMuZGF0YUxvYWRpbmdDb250ZXh0LnN0YXRlJCk7XG5cbiAgcmVhZG9ubHkgdmlld0RlbGVnYXRlU2lnbmFsID0gdG9TaWduYWwodGhpcy50YWJsZVN0b3JlLnZpZXdEZWxlZ2F0ZSQpO1xuICByZWFkb25seSBlbGVtZW50c1NpZ25hbCA9IHRvU2lnbmFsKHRoaXMuZWxlbWVudHMkLCB7IGluaXRpYWxWYWx1ZTogW10gfSk7XG5cbiAgb25TY3JvbGxEb3duKCk6IHZvaWQge1xuICAgIHRoaXMudGFibGVTdG9yZS5sb2FkTW9yZSgpO1xuICB9XG5cbiAgc2hvd0l0ZW1Sb3coXzogbnVtYmVyLCByb3c6IERieFRhYmxlVmlld0VsZW1lbnQ8VCwgRz4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gcm93LnR5cGUgPT09ICdpdGVtJztcbiAgfVxuXG4gIHNob3dHcm91cEhlYWRlclJvdyhfOiBudW1iZXIsIHJvdzogRGJ4VGFibGVWaWV3RWxlbWVudDxULCBHPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiByb3cudHlwZSA9PT0gJ2dyb3VwJyAmJiByb3cubG9jYXRpb24gPT09ICdoZWFkZXInO1xuICB9XG5cbiAgc2hvd0dyb3VwRm9vdGVyUm93KF86IG51bWJlciwgcm93OiBEYnhUYWJsZVZpZXdFbGVtZW50PFQsIEc+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHJvdy50eXBlID09PSAnZ3JvdXAnICYmIHJvdy5sb2NhdGlvbiA9PT0gJ2Zvb3Rlcic7XG4gIH1cblxuICByZWFkb25seSBzaG93Rm9vdGVyUm93U2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHZpZXdEZWxlZ2F0ZSA9IHRoaXMudmlld0RlbGVnYXRlU2lnbmFsKCk7XG4gICAgY29uc3Qgc2hvd0Zvb3RlclJvdyA9IHZpZXdEZWxlZ2F0ZSAmJiAodmlld0RlbGVnYXRlLnN1bW1hcnlSb3dIZWFkZXIgIT0gbnVsbCB8fCB2aWV3RGVsZWdhdGUuY29sdW1uRm9vdGVyICE9IG51bGwgfHwgdmlld0RlbGVnYXRlLnN1bW1hcnlSb3dFbmQgIT0gbnVsbCk7XG4gICAgcmV0dXJuIHNob3dGb290ZXJSb3c7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHNob3dGdWxsU3VtbWFyeVJvd1NpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB2aWV3RGVsZWdhdGUgPSB0aGlzLnZpZXdEZWxlZ2F0ZVNpZ25hbCgpO1xuICAgIHJldHVybiB2aWV3RGVsZWdhdGU/LmZ1bGxTdW1tYXJ5Um93ICE9IG51bGw7XG4gIH0pO1xufVxuIiwiPGRieC1sb2FkaW5nIFtjb250ZXh0XT1cImNvbnRleHRcIj5cbiAgPGRieC1sb2FkaW5nIGNsYXNzPVwiZGJ4LXRhYmxlLXZpZXctbG9hZGluZ1wiIFtsaW5lYXJdPVwidHJ1ZVwiIFtjb250ZXh0XT1cImRhdGFMb2FkaW5nQ29udGV4dFwiPjwvZGJ4LWxvYWRpbmc+XG4gIDxzZWN0aW9uIGNsYXNzPVwiZGJ4LXRhYmxlLXZpZXdcIiBkYngtdGFibGUtY29sdW1uLXNpemUgI2NvbHVtblNpemU9XCJkYnhUYWJsZUNvbHVtblNpemVcIiBpbmZpbml0ZS1zY3JvbGwgW2luZmluaXRlU2Nyb2xsRGlzdGFuY2VdPVwic2Nyb2xsRGlzdGFuY2UoKVwiIFtpbmZpbml0ZVNjcm9sbFRocm90dGxlXT1cInRocm90dGxlU2Nyb2xsKClcIiBbc2Nyb2xsV2luZG93XT1cImZhbHNlXCIgKHNjcm9sbGVkKT1cIm9uU2Nyb2xsRG93bigpXCI+XG4gICAgPHRhYmxlIGNsYXNzPVwiZGJ4LXRhYmxlLXZpZXctdGFibGVcIiBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZWxlbWVudHNTaWduYWwoKVwiIFt0cmFja0J5XT1cInRyYWNrRWxlbWVudEJ5RnVuY3Rpb25TaWduYWwoKVwiIG11bHRpVGVtcGxhdGVEYXRhUm93cz5cbiAgICAgIDwhLS0gR3JvdXBzIC0tPlxuICAgICAgPCEtLSBHcm91cCBIZWFkZXIgY29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJncm91cEhlYWRlckNvbHVtblwiIFtzdGlja3ldPVwidHJ1ZVwiPlxuICAgICAgICA8dGQgbWF0LWNlbGwgW2F0dHIuY29sc3Bhbl09XCJjb2x1bW5TaXplLnZpc2libGVDb2x1bW5zU2lnbmFsKClcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgPGRieC10YWJsZS1ncm91cC1oZWFkZXIgW2dyb3VwXT1cImVsZW1lbnQuZ3JvdXBcIj48L2RieC10YWJsZS1ncm91cC1oZWFkZXI+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBHcm91cCBGb290ZXIgY29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJncm91cEZvb3RlckNvbHVtblwiIFtzdGlja3ldPVwidHJ1ZVwiPlxuICAgICAgICA8dGQgbWF0LWNlbGwgW2F0dHIuY29sc3Bhbl09XCJjb2x1bW5TaXplLnZpc2libGVDb2x1bW5zU2lnbmFsKClcIiAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgPGRieC10YWJsZS1ncm91cC1mb290ZXIgW2dyb3VwXT1cImVsZW1lbnQuZ3JvdXBcIj48L2RieC10YWJsZS1ncm91cC1mb290ZXI+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBJdGVtcyAtLT5cbiAgICAgIDwhLS0gSGVhZGVyL0l0ZW0gY29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cIml0ZW1zQ29sdW1uTmFtZVwiIFtzdGlja3ldPVwidHJ1ZVwiPlxuICAgICAgICA8dGggZGJ4LWNvbHVtbi1zaXplLWNvbHVtbj1cImhlYWRcIiBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XG4gICAgICAgICAgPGRieC10YWJsZS1pbnB1dC1jZWxsPjwvZGJ4LXRhYmxlLWlucHV0LWNlbGw+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgPGRieC10YWJsZS1pdGVtLWhlYWRlciBbaXRlbV09XCJlbGVtZW50Lml0ZW1cIj48L2RieC10YWJsZS1pdGVtLWhlYWRlcj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZj5cbiAgICAgICAgICA8ZGJ4LXRhYmxlLXN1bW1hcnktc3RhcnQtY2VsbD48L2RieC10YWJsZS1zdW1tYXJ5LXN0YXJ0LWNlbGw+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBDb2x1bW4gRGVmaW5pdGlvbnMgLS0+XG4gICAgICBAZm9yIChjb2x1bW4gb2YgaW5uZXJDb2x1bW5zU2lnbmFsKCk7IHRyYWNrIGNvbHVtbi5jb2x1bW5OYW1lKSB7XG4gICAgICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJjb2x1bW4uY29sdW1uTmFtZVwiIFtzdGlja3ldPVwiZmFsc2VcIj5cbiAgICAgICAgICA8dGggW2RieC1jb2x1bW4tc2l6ZS1jb2x1bW5dPVwiJGluZGV4XCIgbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxuICAgICAgICAgICAgPGRieC10YWJsZS1jb2x1bW4taGVhZGVyIFtjb2x1bW5dPVwiY29sdW1uXCI+PC9kYngtdGFibGUtY29sdW1uLWhlYWRlcj5cbiAgICAgICAgICA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICA8ZGJ4LXRhYmxlLWl0ZW0tY2VsbCBbaXRlbV09XCJlbGVtZW50Lml0ZW1cIiBbY29sdW1uXT1cImNvbHVtblwiPjwvZGJ4LXRhYmxlLWl0ZW0tY2VsbD5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+XG4gICAgICAgICAgICA8ZGJ4LXRhYmxlLWNvbHVtbi1mb290ZXIgW2NvbHVtbl09XCJjb2x1bW5cIj48L2RieC10YWJsZS1jb2x1bW4tZm9vdGVyPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgfVxuXG4gICAgICA8IS0tIFRhaWwvQWN0aW9uIGNvbHVtbiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJhY3Rpb25zQ29sdW1uTmFtZVwiIFtzdGlja3lFbmRdPVwidHJ1ZVwiPlxuICAgICAgICA8dGggZGJ4LWNvbHVtbi1zaXplLWNvbHVtbj1cInRhaWxcIiBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XG4gICAgICAgICAgPGRieC10YWJsZS1hY3Rpb24tY2VsbD48L2RieC10YWJsZS1hY3Rpb24tY2VsbD5cbiAgICAgICAgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICA8ZGJ4LXRhYmxlLWl0ZW0tYWN0aW9uIFtpdGVtXT1cImVsZW1lbnQuaXRlbVwiPjwvZGJ4LXRhYmxlLWl0ZW0tYWN0aW9uPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgbWF0LWZvb3Rlci1jZWxsICptYXRGb290ZXJDZWxsRGVmPlxuICAgICAgICAgIDxkYngtdGFibGUtc3VtbWFyeS1lbmQtY2VsbD48L2RieC10YWJsZS1zdW1tYXJ5LWVuZC1jZWxsPlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gVGFibGUgVmlldyAtLT5cbiAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1NpZ25hbCgpOyBzdGlja3k6IHRydWVcIj48L3RyPlxuXG4gICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogWydncm91cEhlYWRlckNvbHVtbiddOyB3aGVuOiBzaG93R3JvdXBIZWFkZXJSb3dcIj48L3RyPlxuICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnNTaWduYWwoKTsgd2hlbjogc2hvd0l0ZW1Sb3dcIj48L3RyPlxuICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IFsnZ3JvdXBGb290ZXJDb2x1bW4nXTsgd2hlbjogc2hvd0dyb3VwRm9vdGVyUm93XCI+PC90cj5cblxuICAgICAgPHRyIFtuZ0NsYXNzXT1cInsgJ2RieC1oaWRlJzogIXNob3dGb290ZXJSb3dTaWduYWwoKSB9XCIgbWF0LWZvb3Rlci1yb3cgKm1hdEZvb3RlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNTaWduYWwoKTsgc3RpY2t5OiB0cnVlXCI+PC90cj5cbiAgICA8L3RhYmxlPlxuICA8L3NlY3Rpb24+XG4gIDwhLS0gRnVsbCBzdW1tYXJ5IHJvdyAtLT5cbiAgQGlmIChzaG93RnVsbFN1bW1hcnlSb3dTaWduYWwoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJtYXQtbWRjLXRhYmxlIGRieC10YWJsZS12aWV3LWZ1bGwtc3VtbWFyeS1yb3ctY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWRjLWRhdGEtdGFibGVfX2NlbGwgbWF0LW1kYy1yb3dcIj5cbiAgICAgICAgPGRieC10YWJsZS1mdWxsLXN1bW1hcnktcm93PjwvZGJ4LXRhYmxlLWZ1bGwtc3VtbWFyeS1yb3c+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kYngtbG9hZGluZz5cbiJdfQ==
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi90YWJsZS9zcmMvbGliL3RhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvdGFibGUvc3JjL2xpYi90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFtQixNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVJLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBZ0IsbUJBQW1CLEVBQUUsZ0NBQWdDLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQWMsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUcsT0FBTyxFQUFFLDhDQUE4QyxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUVyRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxRQUFRLENBQUM7QUFDcEQsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsVUFBVSxDQUFDO0FBZXhELE1BQU0sVUFBVSwwQkFBMEIsQ0FBTyxPQUFrQztJQUNqRixPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDO0FBQ2xDLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQU8sT0FBa0M7SUFDaEYsT0FBTyxPQUFPLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQztBQUNqQyxDQUFDO0FBRUQ7O0dBRUc7QUFpQ0gsTUFBTSxPQUFPLHFCQUFxQjtJQUN2QixVQUFVLEdBQUcsTUFBTSxDQUFDLENBQUEsYUFBeUIsQ0FBQSxDQUFDLENBQUM7SUFDL0MsS0FBSyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQXNDLFFBQVEsQ0FBQyxDQUFDO0lBRTFFLHlCQUF5QixHQUF5QixDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ25FLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0lBRU8sY0FBYyxHQUFHLEtBQUssQ0FBUyxHQUFHLENBQUMsQ0FBQztJQUNwQyxjQUFjLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBRW5DLGVBQWUsR0FBRywyQkFBMkIsQ0FBQztJQUM5QyxpQkFBaUIsR0FBRyw2QkFBNkIsQ0FBQztJQUVsRCxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFDekMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ2xELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQ3RDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRU8sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNsRCxzQkFBc0IsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFMUQsY0FBYyxHQUEwRCxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ2hILGdDQUFnQyxDQUM5QixTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUNuQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDdkMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDbkIsTUFBTSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxZQUFZLENBQUM7WUFDdEYsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQThCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3BJLE1BQU0sY0FBYyxHQUFHLGdCQUFnQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUE4QixFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUVwSSxPQUFPLE1BQU07aUJBQ1YsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2IsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQztnQkFFeEIsTUFBTSxZQUFZLEdBQW9DLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ3pFLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUk7aUJBQ0wsQ0FBQyxDQUFDLENBQUM7Z0JBRUosSUFBSSxRQUFxQyxDQUFDO2dCQUUxQyxJQUFLLEtBQXdDLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ3RELFFBQVEsR0FBRyxZQUFZLENBQUM7Z0JBQzFCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3JDLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFFckMsUUFBUSxHQUFHLEVBQUUsQ0FBQztvQkFFZCxJQUFJLE1BQU0sRUFBRSxDQUFDO3dCQUNYLFFBQVEsQ0FBQyxJQUFJLENBQUM7NEJBQ1osSUFBSSxFQUFFLE9BQU87NEJBQ2IsUUFBUSxFQUFFLFFBQVE7NEJBQ2xCLEtBQUs7eUJBQ04sQ0FBQyxDQUFDO29CQUNMLENBQUM7b0JBRUQsdUJBQXVCLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO29CQUVoRCxJQUFJLE1BQU0sRUFBRSxDQUFDO3dCQUNYLFFBQVEsQ0FBQyxJQUFJLENBQUM7NEJBQ1osSUFBSSxFQUFFLE9BQU87NEJBQ2IsUUFBUSxFQUFFLFFBQVE7NEJBQ2xCLEtBQUs7eUJBQ04sQ0FBQyxDQUFDO29CQUNMLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxPQUFPLFFBQVEsQ0FBQztZQUNsQixDQUFDLENBQUM7aUJBQ0QsSUFBSSxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQ0gsRUFDRCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVPLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDM0MsNkJBQTZCLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQ3ZDLFlBQVksQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFDOUQsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFTyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUN0RCxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxHQUFHLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN4RSxDQUFDLENBQUMsRUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVPLHNCQUFzQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDOUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsV0FBVyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3hFLENBQUMsQ0FBQyxDQUFDO0lBRU0sZ0JBQWdCLEdBQW1DLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDNUYsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxFQUN2RCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVPLDBCQUEwQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQztJQUMvRyw0QkFBNEIsR0FBdUQsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN4RyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQXdCLENBQUM7UUFFaEYsTUFBTSxFQUFFLEdBQStDLENBQUMsS0FBYSxFQUFFLE9BQWtDLEVBQUUsRUFBRTtZQUMzRyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sS0FBSyxlQUFlLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFTLENBQUMsRUFBRSxDQUFDO1lBQzFELENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLEtBQUssT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDLENBQUMsQ0FBQztJQUVNLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDbkUsa0JBQWtCLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFFdkUsYUFBYSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLHdCQUF3QixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFcEUsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDN0QsY0FBYyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFaEUsZUFBZSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFFcEYsWUFBWTtRQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxDQUFTLEVBQUUsR0FBOEI7UUFDbkQsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsQ0FBUyxFQUFFLEdBQThCO1FBQzFELE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksR0FBRyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUM7SUFDM0QsQ0FBQztJQUVELGtCQUFrQixDQUFDLENBQVMsRUFBRSxHQUE4QjtRQUMxRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDO0lBQzNELENBQUM7SUFFUSxtQkFBbUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQzNDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQy9DLE1BQU0sYUFBYSxHQUFHLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLElBQUksWUFBWSxDQUFDLFlBQVksSUFBSSxJQUFJLElBQUksWUFBWSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUN6SixPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDLENBQUMsQ0FBQztJQUVNLHdCQUF3QixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDaEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDL0MsT0FBTyxZQUFZLEVBQUUsY0FBYyxJQUFJLElBQUksQ0FBQztJQUM5QyxDQUFDLENBQUMsQ0FBQzt3R0ExSlEscUJBQXFCOzRGQUFyQixxQkFBcUIsK1dBVHJCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLDhDQUE4QztnQkFDdkQsV0FBVyxFQUFFLFVBQVU7YUFDeEI7U0FDRixpRUFNd0UsUUFBUSxnRUN2Rm5GLDJ1SUFrRkEsNENEekJJLG1CQUFtQixtS0FDbkIsT0FBTyxvRkFDUCx1QkFBdUIseVdBQ3ZCLGNBQWMsMDdDQUNkLDBCQUEwQixpRUFDMUIsMkJBQTJCLGtFQUMzQix5QkFBeUIsb0ZBQ3pCLDJCQUEyQixrRUFDM0IsMkJBQTJCLGtFQUMzQiw2QkFBNkIsb0VBQzdCLDZCQUE2QixvRUFDN0IsaUNBQWlDLHlFQUNqQywrQkFBK0IsdUVBQy9CLDRCQUE0QixtRUFDNUIsNEJBQTRCLG1FQUM1QiwrQkFBK0IsdUVBQy9CLDJCQUEyQixzR0FDM0IsNEJBQTRCOzs0RkFXbkIscUJBQXFCO2tCQWhDakMsU0FBUzsrQkFDRSxnQkFBZ0IsV0FFakI7d0JBQ1AsbUJBQW1CO3dCQUNuQixPQUFPO3dCQUNQLHVCQUF1Qjt3QkFDdkIsY0FBYzt3QkFDZCwwQkFBMEI7d0JBQzFCLDJCQUEyQjt3QkFDM0IseUJBQXlCO3dCQUN6QiwyQkFBMkI7d0JBQzNCLDJCQUEyQjt3QkFDM0IsNkJBQTZCO3dCQUM3Qiw2QkFBNkI7d0JBQzdCLGlDQUFpQzt3QkFDakMsK0JBQStCO3dCQUMvQiw0QkFBNEI7d0JBQzVCLDRCQUE0Qjt3QkFDNUIsK0JBQStCO3dCQUMvQiwyQkFBMkI7d0JBQzNCLDRCQUE0QjtxQkFDN0IsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsOENBQThDOzRCQUN2RCxXQUFXLEVBQUUsVUFBVTt5QkFDeEI7cUJBQ0YsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFRyYWNrQnlGdW5jdGlvbiwgaW5qZWN0LCBjb21wdXRlZCwgaW5wdXQsIFNpZ25hbCwgdmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IERieFRhYmxlU3RvcmUgfSBmcm9tICcuL3RhYmxlLnN0b3JlJztcbmltcG9ydCB7IExvYWRpbmdTdGF0ZSwgbG9hZGluZ1N0YXRlQ29udGV4dCwgbWFwTG9hZGluZ1N0YXRlVmFsdWVXaXRoT3BlcmF0b3IsIHZhbHVlRnJvbUZpbmlzaGVkTG9hZGluZ1N0YXRlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBzaGFyZVJlcGxheSwgbWFwLCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXAsIHRocm90dGxlVGltZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGJ4TG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxEaXJlY3RpdmUgfSBmcm9tICduZ3gtaW5maW5pdGUtc2Nyb2xsJztcbmltcG9ydCB7IE1hdFRhYmxlLCBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IERieFRhYmxlSW5wdXRDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5jZWxsLmlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhUYWJsZVN1bW1hcnlFbmRDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5jZWxsLnN1bW1hcnllbmQuY29tcG9uZW50JztcbmltcG9ydCB7IERieFRhYmxlU3VtbWFyeVN0YXJ0Q2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuY2VsbC5zdW1tYXJ5c3RhcnQuY29tcG9uZW50JztcbmltcG9ydCB7IERieFRhYmxlQ29sdW1uRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5jb2x1bW4uZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhUYWJsZUl0ZW1DZWxsQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5pdGVtLmNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IERieFRhYmxlSXRlbUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuaXRlbS5oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERieFRhYmxlSXRlbUFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuaXRlbS5hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IERieFRhYmxlQWN0aW9uQ2VsbENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuY2VsbC5hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IERieFRhYmxlQ29sdW1uSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5jb2x1bW4uaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhUYWJsZUl0ZW1Hcm91cCwgRGVmYXVsdERieFRhYmxlSXRlbUdyb3VwIH0gZnJvbSAnLi90YWJsZSc7XG5pbXBvcnQgeyBEYnhUYWJsZUdyb3VwSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5ncm91cC5oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERieFRhYmxlR3JvdXBGb290ZXJDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLmdyb3VwLmZvb3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgcHVzaEFycmF5SXRlbXNJbnRvQXJyYXkgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGJ4VGFibGVGdWxsU3VtbWFyeVJvd0NvbXBvbmVudCB9IGZyb20gJy4vdGFibGUuZnVsbHN1bW1hcnlyb3cuY29tcG9uZW50JztcbmltcG9ydCB7IERieFRhYmxlQ29sdW1uU2l6ZURpcmVjdGl2ZSwgRGJ4Q29sdW1uU2l6ZUNvbHVtbkRpcmVjdGl2ZSB9IGZyb20gJy4vdGFibGUuY29sdW1uLnNpemUuZGlyZWN0aXZlJztcbmltcG9ydCB7IERCWF9UQUJMRV9DT0xVTU5fU0laRV9QQVJFTlRfRUxFTUVOVF9SRUZfVE9LRU4gfSBmcm9tICcuL3RhYmxlLmNvbHVtbi5zaXplJztcblxuZXhwb3J0IGNvbnN0IERCWF9UQUJMRV9JVEVNU19DT0xVTU5fTkFNRSA9ICdfaXRlbXMnO1xuZXhwb3J0IGNvbnN0IERCWF9UQUJMRV9BQ1RJT05TX0NPTFVNTl9OQU1FID0gJ19hY3Rpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhUYWJsZVZpZXdHcm91cEVsZW1lbnQ8VCwgRz4ge1xuICByZWFkb25seSB0eXBlOiAnZ3JvdXAnO1xuICByZWFkb25seSBsb2NhdGlvbjogJ2hlYWRlcicgfCAnZm9vdGVyJztcbiAgcmVhZG9ubHkgZ3JvdXA6IERieFRhYmxlSXRlbUdyb3VwPFQsIEc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieFRhYmxlVmlld0l0ZW1FbGVtZW50PFQsIEc+IHtcbiAgcmVhZG9ubHkgdHlwZTogJ2l0ZW0nO1xuICByZWFkb25seSBpdGVtOiBUO1xufVxuXG5leHBvcnQgdHlwZSBEYnhUYWJsZVZpZXdFbGVtZW50PFQsIEc+ID0gRGJ4VGFibGVWaWV3R3JvdXBFbGVtZW50PFQsIEc+IHwgRGJ4VGFibGVWaWV3SXRlbUVsZW1lbnQ8VCwgRz47XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RieFRhYmxlVmlld0dyb3VwRWxlbWVudDxULCBHPihlbGVtZW50OiBEYnhUYWJsZVZpZXdFbGVtZW50PFQsIEc+KTogZWxlbWVudCBpcyBEYnhUYWJsZVZpZXdHcm91cEVsZW1lbnQ8VCwgRz4ge1xuICByZXR1cm4gZWxlbWVudC50eXBlID09PSAnZ3JvdXAnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEYnhUYWJsZVZpZXdJdGVtRWxlbWVudDxULCBHPihlbGVtZW50OiBEYnhUYWJsZVZpZXdFbGVtZW50PFQsIEc+KTogZWxlbWVudCBpcyBEYnhUYWJsZVZpZXdJdGVtRWxlbWVudDxULCBHPiB7XG4gIHJldHVybiBlbGVtZW50LnR5cGUgPT09ICdpdGVtJztcbn1cblxuLyoqXG4gKiBBIHRhYmxlIHdpdGggZml4ZWQgY29udGVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtdGFibGUtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIGltcG9ydHM6IFtcbiAgICBEYnhMb2FkaW5nQ29tcG9uZW50LFxuICAgIE5nQ2xhc3MsXG4gICAgSW5maW5pdGVTY3JvbGxEaXJlY3RpdmUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgRGJ4VGFibGVJbnB1dENlbGxDb21wb25lbnQsXG4gICAgRGJ4VGFibGVJdGVtSGVhZGVyQ29tcG9uZW50LFxuICAgIERieFRhYmxlSXRlbUNlbGxDb21wb25lbnQsXG4gICAgRGJ4VGFibGVJdGVtQWN0aW9uQ29tcG9uZW50LFxuICAgIERieFRhYmxlQWN0aW9uQ2VsbENvbXBvbmVudCxcbiAgICBEYnhUYWJsZUNvbHVtbkhlYWRlckNvbXBvbmVudCxcbiAgICBEYnhUYWJsZUNvbHVtbkZvb3RlckNvbXBvbmVudCxcbiAgICBEYnhUYWJsZVN1bW1hcnlTdGFydENlbGxDb21wb25lbnQsXG4gICAgRGJ4VGFibGVTdW1tYXJ5RW5kQ2VsbENvbXBvbmVudCxcbiAgICBEYnhUYWJsZUdyb3VwSGVhZGVyQ29tcG9uZW50LFxuICAgIERieFRhYmxlR3JvdXBGb290ZXJDb21wb25lbnQsXG4gICAgRGJ4VGFibGVGdWxsU3VtbWFyeVJvd0NvbXBvbmVudCxcbiAgICBEYnhUYWJsZUNvbHVtblNpemVEaXJlY3RpdmUsXG4gICAgRGJ4Q29sdW1uU2l6ZUNvbHVtbkRpcmVjdGl2ZVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBEQlhfVEFCTEVfQ09MVU1OX1NJWkVfUEFSRU5UX0VMRU1FTlRfUkVGX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IEVsZW1lbnRSZWZcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieFRhYmxlVmlld0NvbXBvbmVudDxJLCBDLCBULCBHID0gdW5rbm93bj4ge1xuICByZWFkb25seSB0YWJsZVN0b3JlID0gaW5qZWN0KERieFRhYmxlU3RvcmU8SSwgQywgVCwgRz4pO1xuICByZWFkb25seSB0YWJsZSA9IHZpZXdDaGlsZC5yZXF1aXJlZDxNYXRUYWJsZTxEYnhUYWJsZVZpZXdFbGVtZW50PFQsIEc+Pj4oTWF0VGFibGUpO1xuXG4gIHJlYWRvbmx5IERFRkFVTFRfVFJBQ0tfQllfRlVOQ1RJT046IFRyYWNrQnlGdW5jdGlvbjxhbnk+ID0gKGluZGV4KSA9PiB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9O1xuXG4gIHJlYWRvbmx5IHNjcm9sbERpc3RhbmNlID0gaW5wdXQ8bnVtYmVyPigwLjUpO1xuICByZWFkb25seSB0aHJvdHRsZVNjcm9sbCA9IGlucHV0PG51bWJlcj4oNTApO1xuXG4gIHJlYWRvbmx5IGl0ZW1zQ29sdW1uTmFtZSA9IERCWF9UQUJMRV9JVEVNU19DT0xVTU5fTkFNRTtcbiAgcmVhZG9ubHkgYWN0aW9uc0NvbHVtbk5hbWUgPSBEQlhfVEFCTEVfQUNUSU9OU19DT0xVTU5fTkFNRTtcblxuICByZWFkb25seSBpbm5lckNvbHVtbnMkID0gdGhpcy50YWJsZVN0b3JlLmNvbHVtbnMkO1xuICByZWFkb25seSBpbm5lckNvbHVtbk5hbWVzJCA9IHRoaXMuaW5uZXJDb2x1bW5zJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5tYXAoKHkpID0+IHkuY29sdW1uTmFtZSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaW5uZXJDb2x1bW5zU2lnbmFsID0gdG9TaWduYWwodGhpcy5pbm5lckNvbHVtbnMkKTtcbiAgcmVhZG9ubHkgaW5uZXJDb2x1bW5OYW1lc1NpZ25hbCA9IHRvU2lnbmFsKHRoaXMuaW5uZXJDb2x1bW5OYW1lcyQpO1xuXG4gIHJlYWRvbmx5IGVsZW1lbnRzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhUYWJsZVZpZXdFbGVtZW50PFQsIEc+W10+PiA9IHRoaXMudGFibGVTdG9yZS5ncm91cHNTdGF0ZSQucGlwZShcbiAgICBtYXBMb2FkaW5nU3RhdGVWYWx1ZVdpdGhPcGVyYXRvcihcbiAgICAgIHN3aXRjaE1hcCgoZ3JvdXBzKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhYmxlU3RvcmUudmlld0RlbGVnYXRlJC5waXBlKFxuICAgICAgICAgIG1hcCgodmlld0RlbGVnYXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGdyb3VwSGVhZGVyOiBpbnB1dEdyb3VwSGVhZGVyLCBncm91cEZvb3RlcjogaW5wdXRHcm91cEZvb3RlciB9ID0gdmlld0RlbGVnYXRlO1xuICAgICAgICAgICAgY29uc3QgaGFzR3JvdXBIZWFkZXIgPSBpbnB1dEdyb3VwSGVhZGVyICE9IG51bGwgPyAoZ3JvdXA6IERieFRhYmxlSXRlbUdyb3VwPFQsIEc+KSA9PiBpbnB1dEdyb3VwSGVhZGVyKGdyb3VwKSAhPSBudWxsIDogKCkgPT4gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBoYXNHcm91cEZvb3RlciA9IGlucHV0R3JvdXBGb290ZXIgIT0gbnVsbCA/IChncm91cDogRGJ4VGFibGVJdGVtR3JvdXA8VCwgRz4pID0+IGlucHV0R3JvdXBGb290ZXIoZ3JvdXApICE9IG51bGwgOiAoKSA9PiBmYWxzZTtcblxuICAgICAgICAgICAgcmV0dXJuIGdyb3Vwc1xuICAgICAgICAgICAgICAubWFwKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaXRlbXMgfSA9IGdyb3VwO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUVsZW1lbnRzOiBEYnhUYWJsZVZpZXdJdGVtRWxlbWVudDxULCBHPltdID0gaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ2l0ZW0nLFxuICAgICAgICAgICAgICAgICAgaXRlbVxuICAgICAgICAgICAgICAgIH0pKTtcblxuICAgICAgICAgICAgICAgIGxldCBlbGVtZW50czogRGJ4VGFibGVWaWV3RWxlbWVudDxULCBHPltdO1xuXG4gICAgICAgICAgICAgICAgaWYgKChncm91cCBhcyBEZWZhdWx0RGJ4VGFibGVJdGVtR3JvdXA8VCwgRz4pLmRlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgIGVsZW1lbnRzID0gaXRlbUVsZW1lbnRzO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXIgPSBoYXNHcm91cEhlYWRlcihncm91cCk7XG4gICAgICAgICAgICAgICAgICBjb25zdCBmb290ZXIgPSBoYXNHcm91cEZvb3Rlcihncm91cCk7XG5cbiAgICAgICAgICAgICAgICAgIGVsZW1lbnRzID0gW107XG5cbiAgICAgICAgICAgICAgICAgIGlmIChoZWFkZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2dyb3VwJyxcbiAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjogJ2hlYWRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgZ3JvdXBcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHB1c2hBcnJheUl0ZW1zSW50b0FycmF5KGVsZW1lbnRzLCBpdGVtRWxlbWVudHMpO1xuXG4gICAgICAgICAgICAgICAgICBpZiAoZm9vdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdncm91cCcsXG4gICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246ICdmb290ZXInLFxuICAgICAgICAgICAgICAgICAgICAgIGdyb3VwXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50cztcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmZsYXQoKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZWxlbWVudHMkID0gdGhpcy5lbGVtZW50c1N0YXRlJC5waXBlKFxuICAgIHZhbHVlRnJvbUZpbmlzaGVkTG9hZGluZ1N0YXRlKCgpID0+IFtdKSxcbiAgICB0aHJvdHRsZVRpbWUoNTAsIHVuZGVmaW5lZCwgeyBsZWFkaW5nOiB0cnVlLCB0cmFpbGluZzogdHJ1ZSB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRpc3BsYXllZENvbHVtbnMkID0gdGhpcy5pbm5lckNvbHVtbk5hbWVzJC5waXBlKFxuICAgIG1hcCgoY29sdW1uTmFtZXMpID0+IHtcbiAgICAgIHJldHVybiBbdGhpcy5pdGVtc0NvbHVtbk5hbWUsIC4uLmNvbHVtbk5hbWVzLCB0aGlzLmFjdGlvbnNDb2x1bW5OYW1lXTtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRpc3BsYXllZENvbHVtbnNTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29sdW1uTmFtZXMgPSB0aGlzLmlubmVyQ29sdW1uTmFtZXNTaWduYWwoKSB8fCBbXTtcbiAgICByZXR1cm4gW3RoaXMuaXRlbXNDb2x1bW5OYW1lLCAuLi5jb2x1bW5OYW1lcywgdGhpcy5hY3Rpb25zQ29sdW1uTmFtZV07XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHRyYWNrQnlGdW5jdGlvbiQ6IE9ic2VydmFibGU8VHJhY2tCeUZ1bmN0aW9uPFQ+PiA9IHRoaXMudGFibGVTdG9yZS52aWV3RGVsZWdhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnRyYWNrQnkgPz8gdGhpcy5ERUZBVUxUX1RSQUNLX0JZX0ZVTkNUSU9OKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlucHV0VHJhY2tCeUZ1bmN0aW9uU2lnbmFsID0gdG9TaWduYWwodGhpcy50cmFja0J5RnVuY3Rpb24kLCB7IGluaXRpYWxWYWx1ZTogdGhpcy5ERUZBVUxUX1RSQUNLX0JZX0ZVTkNUSU9OIH0pO1xuICByZWFkb25seSB0cmFja0VsZW1lbnRCeUZ1bmN0aW9uU2lnbmFsOiBTaWduYWw8VHJhY2tCeUZ1bmN0aW9uPERieFRhYmxlVmlld0VsZW1lbnQ8VCwgRz4+PiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB0cmFja0J5RnVuY3Rpb24gPSB0aGlzLmlucHV0VHJhY2tCeUZ1bmN0aW9uU2lnbmFsKCkgYXMgVHJhY2tCeUZ1bmN0aW9uPFQ+O1xuXG4gICAgY29uc3QgZm46IFRyYWNrQnlGdW5jdGlvbjxEYnhUYWJsZVZpZXdFbGVtZW50PFQsIEc+PiA9IChpbmRleDogbnVtYmVyLCBlbGVtZW50OiBEYnhUYWJsZVZpZXdFbGVtZW50PFQsIEc+KSA9PiB7XG4gICAgICBpZiAoZWxlbWVudC50eXBlID09PSAnaXRlbScpIHtcbiAgICAgICAgcmV0dXJuIGBpXyR7dHJhY2tCeUZ1bmN0aW9uKGluZGV4LCBlbGVtZW50Lml0ZW0gYXMgVCl9YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBgZ18ke2VsZW1lbnQuZ3JvdXAuZ3JvdXBJZH1gO1xuICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gZm47XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGNvbnRleHQgPSBsb2FkaW5nU3RhdGVDb250ZXh0KHsgb2JzOiB0aGlzLnRhYmxlU3RvcmUuZGF0YVN0YXRlJCB9KTtcbiAgcmVhZG9ubHkgZGF0YUxvYWRpbmdDb250ZXh0ID0gbG9hZGluZ1N0YXRlQ29udGV4dCh7IG9iczogdGhpcy5lbGVtZW50c1N0YXRlJCB9KTtcblxuICByZWFkb25seSBjb250ZXh0U2lnbmFsID0gdG9TaWduYWwodGhpcy5jb250ZXh0LnN0YXRlJCk7XG4gIHJlYWRvbmx5IGRhdGFMb2FkaW5nQ29udGV4dFNpZ25hbCA9IHRvU2lnbmFsKHRoaXMuZGF0YUxvYWRpbmdDb250ZXh0LnN0YXRlJCk7XG5cbiAgcmVhZG9ubHkgdmlld0RlbGVnYXRlU2lnbmFsID0gdG9TaWduYWwodGhpcy50YWJsZVN0b3JlLnZpZXdEZWxlZ2F0ZSQpO1xuICByZWFkb25seSBlbGVtZW50c1NpZ25hbCA9IHRvU2lnbmFsKHRoaXMuZWxlbWVudHMkLCB7IGluaXRpYWxWYWx1ZTogW10gfSk7XG5cbiAgcmVhZG9ubHkgdGFibGVDc3NDbGFzc2VzID0gdG9TaWduYWwodGhpcy50YWJsZVN0b3JlLnNwYWNlU2VwYXJhdGVkVGFibGVDc3NDbGFzc2VzJCk7XG5cbiAgb25TY3JvbGxEb3duKCk6IHZvaWQge1xuICAgIHRoaXMudGFibGVTdG9yZS5sb2FkTW9yZSgpO1xuICB9XG5cbiAgc2hvd0l0ZW1Sb3coXzogbnVtYmVyLCByb3c6IERieFRhYmxlVmlld0VsZW1lbnQ8VCwgRz4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gcm93LnR5cGUgPT09ICdpdGVtJztcbiAgfVxuXG4gIHNob3dHcm91cEhlYWRlclJvdyhfOiBudW1iZXIsIHJvdzogRGJ4VGFibGVWaWV3RWxlbWVudDxULCBHPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiByb3cudHlwZSA9PT0gJ2dyb3VwJyAmJiByb3cubG9jYXRpb24gPT09ICdoZWFkZXInO1xuICB9XG5cbiAgc2hvd0dyb3VwRm9vdGVyUm93KF86IG51bWJlciwgcm93OiBEYnhUYWJsZVZpZXdFbGVtZW50PFQsIEc+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHJvdy50eXBlID09PSAnZ3JvdXAnICYmIHJvdy5sb2NhdGlvbiA9PT0gJ2Zvb3Rlcic7XG4gIH1cblxuICByZWFkb25seSBzaG93Rm9vdGVyUm93U2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHZpZXdEZWxlZ2F0ZSA9IHRoaXMudmlld0RlbGVnYXRlU2lnbmFsKCk7XG4gICAgY29uc3Qgc2hvd0Zvb3RlclJvdyA9IHZpZXdEZWxlZ2F0ZSAmJiAodmlld0RlbGVnYXRlLnN1bW1hcnlSb3dIZWFkZXIgIT0gbnVsbCB8fCB2aWV3RGVsZWdhdGUuY29sdW1uRm9vdGVyICE9IG51bGwgfHwgdmlld0RlbGVnYXRlLnN1bW1hcnlSb3dFbmQgIT0gbnVsbCk7XG4gICAgcmV0dXJuIHNob3dGb290ZXJSb3c7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHNob3dGdWxsU3VtbWFyeVJvd1NpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB2aWV3RGVsZWdhdGUgPSB0aGlzLnZpZXdEZWxlZ2F0ZVNpZ25hbCgpO1xuICAgIHJldHVybiB2aWV3RGVsZWdhdGU/LmZ1bGxTdW1tYXJ5Um93ICE9IG51bGw7XG4gIH0pO1xufVxuIiwiPGRieC1sb2FkaW5nIFtjb250ZXh0XT1cImNvbnRleHRcIj5cbiAgPGRieC1sb2FkaW5nIGNsYXNzPVwiZGJ4LXRhYmxlLXZpZXctbG9hZGluZ1wiIFtsaW5lYXJdPVwidHJ1ZVwiIFtjb250ZXh0XT1cImRhdGFMb2FkaW5nQ29udGV4dFwiPjwvZGJ4LWxvYWRpbmc+XG4gIDxkaXYgY2xhc3M9XCJkYngtdGFibGUtdmlld1wiIFtuZ0NsYXNzXT1cInRhYmxlQ3NzQ2xhc3NlcygpXCI+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJkYngtdGFibGUtdmlldy10YWJsZS13cmFwcGVyXCIgZGJ4LXRhYmxlLWNvbHVtbi1zaXplICNjb2x1bW5TaXplPVwiZGJ4VGFibGVDb2x1bW5TaXplXCIgaW5maW5pdGUtc2Nyb2xsIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cInNjcm9sbERpc3RhbmNlKClcIiBbaW5maW5pdGVTY3JvbGxUaHJvdHRsZV09XCJ0aHJvdHRsZVNjcm9sbCgpXCIgW3Njcm9sbFdpbmRvd109XCJmYWxzZVwiIChzY3JvbGxlZCk9XCJvblNjcm9sbERvd24oKVwiPlxuICAgICAgPHRhYmxlIGNsYXNzPVwiZGJ4LXRhYmxlLXZpZXctdGFibGVcIiBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwiZWxlbWVudHNTaWduYWwoKVwiIFt0cmFja0J5XT1cInRyYWNrRWxlbWVudEJ5RnVuY3Rpb25TaWduYWwoKVwiIG11bHRpVGVtcGxhdGVEYXRhUm93cz5cbiAgICAgICAgPCEtLSBHcm91cHMgLS0+XG4gICAgICAgIDwhLS0gR3JvdXAgSGVhZGVyIGNvbHVtbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJncm91cEhlYWRlckNvbHVtblwiIFtzdGlja3ldPVwidHJ1ZVwiPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCBbYXR0ci5jb2xzcGFuXT1cImNvbHVtblNpemUudmlzaWJsZUNvbHVtbnNTaWduYWwoKVwiICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgIDxkYngtdGFibGUtZ3JvdXAtaGVhZGVyIFtncm91cF09XCJlbGVtZW50Lmdyb3VwXCI+PC9kYngtdGFibGUtZ3JvdXAtaGVhZGVyPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gR3JvdXAgRm9vdGVyIGNvbHVtbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJncm91cEZvb3RlckNvbHVtblwiIFtzdGlja3ldPVwidHJ1ZVwiPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCBbYXR0ci5jb2xzcGFuXT1cImNvbHVtblNpemUudmlzaWJsZUNvbHVtbnNTaWduYWwoKVwiICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgIDxkYngtdGFibGUtZ3JvdXAtZm9vdGVyIFtncm91cF09XCJlbGVtZW50Lmdyb3VwXCI+PC9kYngtdGFibGUtZ3JvdXAtZm9vdGVyPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gSXRlbXMgLS0+XG4gICAgICAgIDwhLS0gSGVhZGVyL0l0ZW0gY29sdW1uIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwiaXRlbXNDb2x1bW5OYW1lXCIgW3N0aWNreV09XCJ0cnVlXCI+XG4gICAgICAgICAgPHRoIGRieC1jb2x1bW4tc2l6ZS1jb2x1bW49XCJoZWFkXCIgbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxuICAgICAgICAgICAgPGRieC10YWJsZS1pbnB1dC1jZWxsPjwvZGJ4LXRhYmxlLWlucHV0LWNlbGw+XG4gICAgICAgICAgPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgICAgPGRieC10YWJsZS1pdGVtLWhlYWRlciBbaXRlbV09XCJlbGVtZW50Lml0ZW1cIj48L2RieC10YWJsZS1pdGVtLWhlYWRlcj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+XG4gICAgICAgICAgICA8ZGJ4LXRhYmxlLXN1bW1hcnktc3RhcnQtY2VsbD48L2RieC10YWJsZS1zdW1tYXJ5LXN0YXJ0LWNlbGw+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBDb2x1bW4gRGVmaW5pdGlvbnMgLS0+XG4gICAgICAgIEBmb3IgKGNvbHVtbiBvZiBpbm5lckNvbHVtbnNTaWduYWwoKTsgdHJhY2sgY29sdW1uLmNvbHVtbk5hbWUpIHtcbiAgICAgICAgICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwiY29sdW1uLmNvbHVtbk5hbWVcIiBbc3RpY2t5XT1cImZhbHNlXCI+XG4gICAgICAgICAgICA8dGggW2RieC1jb2x1bW4tc2l6ZS1jb2x1bW5dPVwiJGluZGV4XCIgbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxuICAgICAgICAgICAgICA8ZGJ4LXRhYmxlLWNvbHVtbi1oZWFkZXIgW2NvbHVtbl09XCJjb2x1bW5cIj48L2RieC10YWJsZS1jb2x1bW4taGVhZGVyPlxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICAgIDxkYngtdGFibGUtaXRlbS1jZWxsIFtpdGVtXT1cImVsZW1lbnQuaXRlbVwiIFtjb2x1bW5dPVwiY29sdW1uXCI+PC9kYngtdGFibGUtaXRlbS1jZWxsPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+XG4gICAgICAgICAgICAgIDxkYngtdGFibGUtY29sdW1uLWZvb3RlciBbY29sdW1uXT1cImNvbHVtblwiPjwvZGJ4LXRhYmxlLWNvbHVtbi1mb290ZXI+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBUYWlsL0FjdGlvbiBjb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJhY3Rpb25zQ29sdW1uTmFtZVwiIFtzdGlja3lFbmRdPVwidHJ1ZVwiPlxuICAgICAgICAgIDx0aCBkYngtY29sdW1uLXNpemUtY29sdW1uPVwidGFpbFwiIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cbiAgICAgICAgICAgIDxkYngtdGFibGUtYWN0aW9uLWNlbGw+PC9kYngtdGFibGUtYWN0aW9uLWNlbGw+XG4gICAgICAgICAgPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgICAgPGRieC10YWJsZS1pdGVtLWFjdGlvbiBbaXRlbV09XCJlbGVtZW50Lml0ZW1cIj48L2RieC10YWJsZS1pdGVtLWFjdGlvbj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZCBtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+XG4gICAgICAgICAgICA8ZGJ4LXRhYmxlLXN1bW1hcnktZW5kLWNlbGw+PC9kYngtdGFibGUtc3VtbWFyeS1lbmQtY2VsbD5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIFRhYmxlIFZpZXcgLS0+XG4gICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1NpZ25hbCgpOyBzdGlja3k6IHRydWVcIj48L3RyPlxuXG4gICAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBbJ2dyb3VwSGVhZGVyQ29sdW1uJ107IHdoZW46IHNob3dHcm91cEhlYWRlclJvd1wiPjwvdHI+XG4gICAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zU2lnbmFsKCk7IHdoZW46IHNob3dJdGVtUm93XCI+PC90cj5cbiAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IFsnZ3JvdXBGb290ZXJDb2x1bW4nXTsgd2hlbjogc2hvd0dyb3VwRm9vdGVyUm93XCI+PC90cj5cblxuICAgICAgICA8dHIgW25nQ2xhc3NdPVwieyAnZGJ4LWhpZGUnOiAhc2hvd0Zvb3RlclJvd1NpZ25hbCgpIH1cIiBtYXQtZm9vdGVyLXJvdyAqbWF0Rm9vdGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1NpZ25hbCgpOyBzdGlja3k6IHRydWVcIj48L3RyPlxuICAgICAgPC90YWJsZT5cbiAgICA8L3NlY3Rpb24+XG4gICAgPCEtLSBGdWxsIHN1bW1hcnkgcm93IC0tPlxuICAgIEBpZiAoc2hvd0Z1bGxTdW1tYXJ5Um93U2lnbmFsKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJtYXQtbWRjLXRhYmxlIGRieC10YWJsZS12aWV3LWZ1bGwtc3VtbWFyeS1yb3ctY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZGMtZGF0YS10YWJsZV9fY2VsbCBtYXQtbWRjLXJvd1wiPlxuICAgICAgICAgIDxkYngtdGFibGUtZnVsbC1zdW1tYXJ5LXJvdz48L2RieC10YWJsZS1mdWxsLXN1bW1hcnktcm93PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L2RieC1sb2FkaW5nPlxuIl19
|
|
@@ -7,4 +7,4 @@ export function defaultDbxTableItemGroup(items) {
|
|
|
7
7
|
default: true
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3RhYmxlL3NyYy9saWIvdGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0RBLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUM7QUFrQm5DLE1BQU0sVUFBVSx3QkFBd0IsQ0FBaUIsS0FBVTtJQUNqRSxPQUFPO1FBQ0wsT0FBTyxFQUFFLFlBQVk7UUFDckIsS0FBSztRQUNMLElBQUksRUFBRSxTQUFjO1FBQ3BCLE9BQU8sRUFBRSxJQUFJO0tBQ2QsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2FkaW5nU3RhdGUsIE9ic2VydmFibGVPclZhbHVlLCBQYWdlTGlzdExvYWRpbmdTdGF0ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgQ3NzQ2xhc3Nlc0FycmF5LCB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBUcmFja0J5RnVuY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBEZWxlZ2F0ZSB1c2VkIGZvciByZXRyaWV2aW5nIGRhdGEgZm9yIGEgdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4VGFibGVDb250ZXh0RGF0YURlbGVnYXRlPEksIEMsIFQ+IHtcbiAgLyoqXG4gICAqIExvYWRzIGRhdGEgZ2l2ZW4gdGhlIGlucHV0LlxuICAgKlxuICAgKiBAcGFyYW0gaW5wdXRcbiAgICovXG4gIGxvYWREYXRhKGlucHV0OiBJKTogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RGJ4VGFibGVDb250ZXh0RGF0YTxJLCBDLCBUPj4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieFRhYmxlQ29udGV4dERhdGE8SSwgQywgVD4ge1xuICAvKipcbiAgICogT3JpZ2luYWwgY29udGV4dCBpbnB1dFxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXQ6IEk7XG4gIC8qKlxuICAgKiBBbGwgY29sdW1ucyBpbiB0aGlzIGRhdGEgY29udGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbHVtbnM6IERieFRhYmxlQ29sdW1uPEM+W107XG4gIC8qKlxuICAgKiBBbGwgY3VycmVudGx5IGxvYWRlZCBpdGVtcy5cbiAgICovXG4gIHJlYWRvbmx5IGl0ZW1zJDogT2JzZXJ2YWJsZTxQYWdlTGlzdExvYWRpbmdTdGF0ZTxUPj47XG4gIC8qKlxuICAgKiBMb2FkcyBtb3JlIGl0ZW1zLCBpZiBhcHBsaWNhYmxlLlxuICAgKi9cbiAgbG9hZE1vcmU/KCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4VGFibGVDb2x1bW48Qz4ge1xuICAvKipcbiAgICogVW5pcXVlIGNvbHVtbiBuYW1lXG4gICAqL1xuICByZWFkb25seSBjb2x1bW5OYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDb2x1bW4gbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IG1ldGE6IEM7XG59XG5cbmV4cG9ydCBjb25zdCBOT19HUk9VUFNfSUQgPSAnbm9uZSc7XG5cbi8qKlxuICogVW5pcXVlIGlkZW50aWZpZXIgdXNlZCBmb3IgZ3JvdXBpbmcgaXRlbXMgdG9nZXRoZXIuXG4gKi9cbmV4cG9ydCB0eXBlIERieFRhYmxlR3JvdXBJZCA9IHN0cmluZztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhUYWJsZUl0ZW1Hcm91cDxULCBHID0gdW5rbm93bj4ge1xuICByZWFkb25seSBncm91cElkOiBEYnhUYWJsZUdyb3VwSWQ7XG4gIHJlYWRvbmx5IGl0ZW1zOiBUW107XG4gIHJlYWRvbmx5IG1ldGE6IEc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdERieFRhYmxlSXRlbUdyb3VwPFQsIEcgPSB1bmtub3duPiBleHRlbmRzIERieFRhYmxlSXRlbUdyb3VwPFQsIEc+IHtcbiAgcmVhZG9ubHkgZ3JvdXBJZDogdHlwZW9mIE5PX0dST1VQU19JRDtcbiAgcmVhZG9ubHkgZGVmYXVsdDogdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHREYnhUYWJsZUl0ZW1Hcm91cDxULCBHID0gdW5rbm93bj4oaXRlbXM6IFRbXSk6IERlZmF1bHREYnhUYWJsZUl0ZW1Hcm91cDxULCBHPiB7XG4gIHJldHVybiB7XG4gICAgZ3JvdXBJZDogTk9fR1JPVVBTX0lELFxuICAgIGl0ZW1zLFxuICAgIG1ldGE6IHVuZGVmaW5lZCBhcyBHLFxuICAgIGRlZmF1bHQ6IHRydWVcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgRGJ4VGFibGVHcm91cEJ5RnVuY3Rpb248VCwgRyA9IHVua25vd24+ID0gKGl0ZW1zOiBUW10pID0+IE9ic2VydmFibGVPclZhbHVlPERieFRhYmxlSXRlbUdyb3VwPFQsIEc+W10+O1xuXG4vKipcbiAqIERlbGVnYXRlIHVzZWQgZm9yIGdlbmVyYXRpbmcgdmlldyBjb25maWd1cmF0aW9ucyBnaXZlbiB0aGUgaW5wdXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4VGFibGVWaWV3RGVsZWdhdGU8SSA9IHVua25vd24sIEMgPSB1bmtub3duLCBUID0gdW5rbm93biwgRyA9IHVua25vd24+IHtcbiAgLyoqXG4gICAqIFRyYWNrIGJ5XG4gICAqL1xuICByZWFkb25seSB0cmFja0J5PzogVHJhY2tCeUZ1bmN0aW9uPFQ+O1xuICAvKipcbiAgICogSWYgcHJvdmlkZWQsIHdpbGwgZ3JvdXAgaXRlbXMgdG9nZXRoZXJcbiAgICovXG4gIHJlYWRvbmx5IGdyb3VwQnk/OiBEYnhUYWJsZUdyb3VwQnlGdW5jdGlvbjxULCBHPjtcbiAgLyoqXG4gICAqIElucHV0IHBpY2tlciB2aWV3IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGlucHV0SGVhZGVyPzogTWF5YmU8RGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPGFueT4+O1xuICAvKipcbiAgICogQWN0aW9uIGhlYWRlciB2aWV3IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGFjdGlvbkhlYWRlcj86IE1heWJlPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzxhbnk+PjtcbiAgLyoqXG4gICAqIEZ1bGwtd2lkdGggc3VtbWFyeSByb3cgdmlldyBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZnVsbFN1bW1hcnlSb3c/OiBNYXliZTxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8YW55Pj47XG4gIC8qKlxuICAgKiBTdW1tYXJ5IHJvdyBoZWFkZXIgdmlldyBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc3VtbWFyeVJvd0hlYWRlcj86IE1heWJlPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzxhbnk+PjtcbiAgLyoqXG4gICAqIFN1bW1hcnkgcm93IGVuZCB2aWV3IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHN1bW1hcnlSb3dFbmQ/OiBNYXliZTxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8YW55Pj47XG4gIC8qKlxuICAgKiBHcm91cCByb3cgaGVhZGVyIHZpZXcgY29uZmlndXJhdGlvbiBmb3IgYSBzcGVjaWZpYyBncm91cC5cbiAgICpcbiAgICogSWYgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHVuZGVmaW5lZCwgdGhlIGdyb3VwIHJvdyB3aWxsIG5vdCBiZSBzaG93bi5cbiAgICpcbiAgICogQHBhcmFtIGdyb3VwXG4gICAqL1xuICBncm91cEhlYWRlcj8oZ3JvdXA6IERieFRhYmxlSXRlbUdyb3VwPFQsIEc+KTogTWF5YmU8RGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnPGFueT4+O1xuICAvKipcbiAgICogR3JvdXAgcm93IGZvb3RlciB2aWV3IGNvbmZpZ3VyYXRpb24gZm9yIGEgc3BlY2lmaWMgZ3JvdXAuXG4gICAqXG4gICAqIElmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB1bmRlZmluZWQsIHRoZSBncm91cCByb3cgd2lsbCBub3QgYmUgc2hvd24uXG4gICAqXG4gICAqIEBwYXJhbSBncm91cFxuICAgKi9cbiAgZ3JvdXBGb290ZXI/KGdyb3VwOiBEYnhUYWJsZUl0ZW1Hcm91cDxULCBHPik6IE1heWJlPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzxhbnk+PjtcbiAgLyoqXG4gICAqIENvbHVtbiBoZWFkZXIgdmlldyBjb25maWd1cmF0aW9uIGZvciBhIHNwZWNpZmljIGNvbHVtbi5cbiAgICpcbiAgICogQHBhcmFtIGl0ZW1cbiAgICovXG4gIGNvbHVtbkhlYWRlcj8oY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPik6IE1heWJlPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzxhbnk+PjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGNvbHVtbiBmb290ZXIgdmlldyBjb25maWd1cmF0aW9uIGZvciBhIHNwZWNpZmljIGNvbHVtbi5cbiAgICpcbiAgICogQHBhcmFtIGl0ZW1cbiAgICovXG4gIGNvbHVtbkZvb3Rlcj8oY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPik6IE1heWJlPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZzxhbnk+PjtcbiAgLyoqXG4gICAqIEl0ZW0gaGVhZGVyIHZpZXcgKGxlZnQtbW9zdCBjb2x1bW4gZm9yIGFuIGl0ZW0gcm93KSBjb25maWd1cmF0aW9uIGZvciBhIHNwZWNpZmljIGl0ZW0uXG4gICAqXG4gICAqIEBwYXJhbSBpdGVtXG4gICAqL1xuICBpdGVtSGVhZGVyKGl0ZW06IFQpOiBNYXliZTxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8YW55Pj47XG4gIC8qKlxuICAgKiBJdGVtIGNlbGwgdmlldyAobWlkZGxlIGNvbHVtbnMgZm9yIGFuIGl0ZW0gcm93KSBjb25maWd1cmF0aW9uIGZvciBhIHNwZWNpZmljIGl0ZW0gYW5kIGNvbHVtbi5cbiAgICpcbiAgICogQHBhcmFtIGl0ZW1cbiAgICovXG4gIGl0ZW1DZWxsKGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4sIGl0ZW06IFQpOiBNYXliZTxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8YW55Pj47XG4gIC8qKlxuICAgKiBJdGVtIGFjdGlvbiB2aWV3IChyaWdodC1tb3N0IGNvbHVtbiBmb3IgYW4gaXRlbSByb3cpIGNvbmZpZ3VyYXRpb24gZm9yIGEgc3BlY2lmaWMgaXRlbS5cbiAgICpcbiAgICogQHBhcmFtIGl0ZW1cbiAgICovXG4gIGl0ZW1BY3Rpb24/KGl0ZW06IFQpOiBNYXliZTxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8YW55Pj47XG4gIC8qKlxuICAgKiBPcHRpb25hbCBjbGFzc2VzIHRvIGFwcGx5IHRvIHRoZSB0YWJsZS5cbiAgICovXG4gIHRhYmxlQ2xhc3Nlcz86IENzc0NsYXNzZXNBcnJheTtcbn1cbiJdfQ==
|
|
@@ -100,4 +100,4 @@ export function dbxTableReader(config) {
|
|
|
100
100
|
cellDataForColumnAndItem
|
|
101
101
|
};
|
|
102
102
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucmVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi90YWJsZS9zcmMvbGliL3RhYmxlLnJlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0YsT0FBTyxFQUF1QixzQkFBc0IsRUFBMkIsTUFBTSxlQUFlLENBQUM7QUEyQnJHOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSx3Q0FBd0MsR0FBcUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7QUE0RXhKLE1BQU0sVUFBVSxjQUFjLENBQXVCLE1BQXdDO0lBQzNGLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ3hDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUM7SUFDOUIsTUFBTSxFQUFFLHlCQUF5QixFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDekYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSx3Q0FBd0MsQ0FBMkMsQ0FBQztJQVU3SCxNQUFNLDJCQUEyQixHQUFHLENBQUMsTUFBeUIsRUFBd0QsRUFBRTtRQUN0SCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsTUFBTSxjQUFjLEdBQXNELEVBQUUsQ0FBQztZQUM3RSxNQUFNLGVBQWUsR0FBbUQsRUFBRSxDQUFDO1lBRTNFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDakIsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FB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Q0FBQyxDQUNmLENBQUM7UUFFRixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDLENBQUM7SUFFRixNQUFNLHdCQUF3QixHQUFHLENBQUMsTUFBeUIsRUFBRSxJQUFPLEVBQXdCLEVBQUU7UUFDNUYsT0FBTyw0QkFBNEIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLFVBQVU7UUFDVixRQUFRO1FBQ1Isc0JBQXNCO1FBQ3RCLGlCQUFpQjtRQUNqQiw0QkFBNEI7UUFDNUIsd0JBQXdCO0tBQ3pCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcmltYXRpdmVLZXksIE1heWJlLCBmaWx0ZXJNYXliZUFycmF5VmFsdWVzLCBSZWFkUmVxdWlyZWRLZXlGdW5jdGlvbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4VGFibGVDb2x1bW4gfSBmcm9tICcuL3RhYmxlJztcbmltcG9ydCB7IERieFRhYmxlU3RvcmUgfSBmcm9tICcuL3RhYmxlLnN0b3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhUYWJsZVJlYWRlckNlbGxQYWlyPEMsIFQ+IHtcbiAgcmVhZG9ubHkgY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPjtcbiAgcmVhZG9ubHkgaXRlbTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhUYWJsZVJlYWRlckNlbGxEYXRhUGFpcjxDLCBULCBPPiBleHRlbmRzIERieFRhYmxlUmVhZGVyQ2VsbFBhaXI8QywgVD4ge1xuICByZWFkb25seSB2YWx1ZTogTztcbn1cblxuLyoqXG4gKiBLZXkgdXNlZCBmb3IgdHJhY2tpbmcgY29sdW1ucy5cbiAqXG4gKiBHZW5lcmFsbHkgdGhlIHRhYmxlIG5hbWUgaXMgdXNlZCBmb3IgdGhpcy5cbiAqL1xuZXhwb3J0IHR5cGUgRGJ4VGFibGVSZWFkZXJDb2x1bW5LZXkgPSBzdHJpbmc7XG5cbi8qKlxuICogS2V5IHVzZWQgZm9yIHRyYWNraW5nIGl0ZW1zLlxuICpcbiAqIEdlbmVyYWxseSB0aGUgaXRlbSdzIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHVzZWQgZm9yIHRoaXMuXG4gKi9cbmV4cG9ydCB0eXBlIERieFRhYmxlUmVhZGVySXRlbUtleSA9IFByaW1hdGl2ZUtleTtcblxuLyoqXG4gKiBEZWZhdWx0IHRyYWNrIGJ5IGZ1bmN0aW9uIGZvciBEYnhUYWJsZUNvbHVtbi5cbiAqXG4gKiBSZXR1cm5zIHRoZSBjb2x1bW4gbmFtZS5cbiAqXG4gKiBAcGFyYW0gY29sdW1uXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9EQlhfVEFCTEVfUkVBREVSX0NPTFVNTl9UUkFDS19CWTogUmVhZFJlcXVpcmVkS2V5RnVuY3Rpb248RGJ4VGFibGVDb2x1bW48RGJ4VGFibGVSZWFkZXJDb2x1bW5LZXk+PiA9IChjb2x1bW4pID0+IGNvbHVtbi5jb2x1bW5OYW1lO1xuXG4vKipcbiAqIEZ1bmN0aW9uIHVzZWQgZm9yIHRyYWNraW5nIHVuaXF1ZSBjb2x1bW5zIHVzaW5nIHRoZSBjb2x1bW4ncyBkYXRhLlxuICpcbiAqIElmIHRoZSBjb2x1bW4ga2V5IHZhbHVlIGlzIHRoZSBzYW1lIGJldHdlZW4gdGhvc2UgdHdvIGNvbHVtbnMsIHRoZW4gdGhlIG1ldGFkYXRhIG9mIGJvdGggY29sdW1ucyB3aWxsIGJlIGNvbnNpZGVyZWQgdGhlIHNhbWUvZXF1YWwuXG4gKi9cbmV4cG9ydCB0eXBlIERieFRhYmxlUmVhZGVyQ29sdW1uVHJhY2tCeUZ1bmN0aW9uPEM+ID0gUmVhZFJlcXVpcmVkS2V5RnVuY3Rpb248RGJ4VGFibGVDb2x1bW48Qz4sIERieFRhYmxlUmVhZGVyQ29sdW1uS2V5PjtcblxuLyoqXG4gKiBGdW5jdGlvbiB1c2VkIGZvciB0cmFja2luZyB1bmlxdWUgY29sdW1ucyB1c2luZyB0aGUgY29sdW1uJ3MgZGF0YS5cbiAqXG4gKiBJZiB0aGUgY29sdW1uIGtleSB2YWx1ZSBpcyB0aGUgc2FtZSBiZXR3ZWVuIHRob3NlIHR3byBjb2x1bW5zLCB0aGVuIHRoZSBtZXRhZGF0YSBvZiBib3RoIGNvbHVtbnMgd2lsbCBiZSBjb25zaWRlcmVkIHRoZSBzYW1lL2VxdWFsLlxuICovXG5leHBvcnQgdHlwZSBEYnhUYWJsZVJlYWRlckl0ZW1UcmFja0J5RnVuY3Rpb248VD4gPSBSZWFkUmVxdWlyZWRLZXlGdW5jdGlvbjxULCBEYnhUYWJsZVJlYWRlckl0ZW1LZXk+O1xuXG5leHBvcnQgaW50ZXJmYWNlIERieFRhYmxlUmVhZGVyRGVsZWdhdGU8QywgVCwgTz4ge1xuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBkYXRhIGZvciBhIHNwZWNpZmljIGNvbHVtbiBhbmQgaXRlbS9yb3cuXG4gICAqXG4gICAqIEBwYXJhbSBjb2x1bW5cbiAgICogQHBhcmFtIGl0ZW1cbiAgICovXG4gIHJlYWRJdGVtQ2VsbERhdGFGb3JDb2x1bW4oY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPiwgaXRlbTogVCk6IE9ic2VydmFibGU8Tz47XG4gIC8qKlxuICAgKiBVc2VkIGZvciB0cmFja2luZyB1bmlxdWUgY29sdW1ucy5cbiAgICpcbiAgICogVXNlIGlmIHRoZSBtZXRhZGF0YSBiZXR3ZWVuIGNvbHVtbnMgc2hvdWxkIGJlIHVzZWQgZm9yIHVuaXF1ZSBpZGVudGlmaWNhdGlvbi5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gdXNpbmcgdGhlIGNvbHVtbiBuYW1lIGFzIHRoZSBrZXkgaWYgbm90IGRlZmluZWQuXG4gICAqL1xuICB0cmFja0NvbHVtbj86IERieFRhYmxlUmVhZGVyQ29sdW1uVHJhY2tCeUZ1bmN0aW9uPEM+O1xuICAvKipcbiAgICogVXNlZCBmb3IgdHJhY2tpbmcgdW5pcXVlIGl0ZW1zL3Jvd3MuXG4gICAqXG4gICAqIFVzZSBpZiB0aGUgbWV0YWRhdGEgYmV0d2VlbiBpdGVtcyBzaG91bGQgYmUgdXNlZCBmb3IgdW5pcXVlIGlkZW50aWZpY2F0aW9uLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byB1c2luZyB0aGUgaXRlbSBpdHNlbGYgYXMgdGhlIGtleSBpZiBub3QgZGVmaW5lZC5cbiAgICovXG4gIHRyYWNrSXRlbTogRGJ4VGFibGVSZWFkZXJJdGVtVHJhY2tCeUZ1bmN0aW9uPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieFRhYmxlUmVhZGVyQ29uZmlnPEMsIFQsIE8sIEcgPSB1bmtub3duPiB7XG4gIC8qKlxuICAgKiBEZWxlZ2F0ZSB1c2VkIGZvciByZXRyaWV2aW5nIHRoZSBkYXRhIGZvciBhIHNwZWNpZmljIGNvbHVtbiBhbmQgaXRlbS9yb3cuXG4gICAqL1xuICByZWFkb25seSBkZWxlZ2F0ZTogRGJ4VGFibGVSZWFkZXJEZWxlZ2F0ZTxDLCBULCBPPjtcbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBzdG9yZSB1c2VkIGZvciByZXRyaWV2aW5nIHRoZSBpdGVtcy5cbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlU3RvcmU6IERieFRhYmxlU3RvcmU8dW5rbm93biwgQywgVCwgRz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4VGFibGVSZWFkZXI8QywgVCwgTywgRyA9IHVua25vd24+IGV4dGVuZHMgRGJ4VGFibGVSZWFkZXJDb25maWc8QywgVCwgTywgRz4ge1xuICAvKipcbiAgICogUmV0cmlldmVzIGFsbCBjZWxsIGRhdGEgcGFpcnMgZm9yIGEgc3BlY2lmaWMgY29sdW1uLlxuICAgKi9cbiAgY2VsbERhdGFQYWlyc0ZvckNvbHVtbihjb2x1bW46IERieFRhYmxlQ29sdW1uPEM+KTogT2JzZXJ2YWJsZTxEYnhUYWJsZVJlYWRlckNlbGxEYXRhUGFpcjxDLCBULCBPPltdPjtcbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhbGwgY2VsbCBkYXRhIGZvciBhIHNwZWNpZmljIGNvbHVtbi5cbiAgICovXG4gIGNlbGxEYXRhRm9yQ29sdW1uKGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4pOiBPYnNlcnZhYmxlPE9bXT47XG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGNlbGwgZGF0YSBwYWlyIGZvciBhIHNwZWNpZmljIGNvbHVtbiBhbmQgaXRlbS5cbiAgICpcbiAgICogUmV0dXJucyBudWxsIGlmIHRoZSBjb2x1bW4gaXMgbm90IHZpc2libGUgb3IgdGhlIGl0ZW0gaXMgbm90IGZvdW5kLlxuICAgKi9cbiAgY2VsbERhdGFQYWlyRm9yQ29sdW1uQW5kSXRlbShjb2x1bW46IERieFRhYmxlQ29sdW1uPEM+LCBpdGVtOiBUKTogT2JzZXJ2YWJsZTxNYXliZTxEYnhUYWJsZVJlYWRlckNlbGxEYXRhUGFpcjxDLCBULCBPPj4+O1xuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBjZWxsIGRhdGEgZm9yIGEgc3BlY2lmaWMgY29sdW1uIGFuZCBpdGVtLlxuICAgKlxuICAgKiBSZXR1cm5zIG51bGwgaWYgdGhlIGNvbHVtbiBpcyBub3QgdmlzaWJsZSBvciB0aGUgaXRlbSBpcyBub3QgZm91bmQuXG4gICAqL1xuICBjZWxsRGF0YUZvckNvbHVtbkFuZEl0ZW0oY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPiwgaXRlbTogVCk6IE9ic2VydmFibGU8TWF5YmU8Tz4+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGJ4VGFibGVSZWFkZXI8QywgVCwgTywgRyA9IHVua25vd24+KGNvbmZpZzogRGJ4VGFibGVSZWFkZXJDb25maWc8QywgVCwgTywgRz4pOiBEYnhUYWJsZVJlYWRlcjxDLCBULCBPLCBHPiB7XG4gIGNvbnN0IHsgZGVsZWdhdGUsIHRhYmxlU3RvcmUgfSA9IGNvbmZpZztcbiAgY29uc3QgeyBpdGVtcyQgfSA9IHRhYmxlU3RvcmU7XG4gIGNvbnN0IHsgcmVhZEl0ZW1DZWxsRGF0YUZvckNvbHVtbiwgdHJhY2tDb2x1bW46IGlucHV0VHJhY2tDb2x1bW4sIHRyYWNrSXRlbSB9ID0gZGVsZWdhdGU7XG4gIGNvbnN0IHRyYWNrQ29sdW1uID0gKGlucHV0VHJhY2tDb2x1bW4gPz8gREVGQVVMVF9EQlhfVEFCTEVfUkVBREVSX0NPTFVNTl9UUkFDS19CWSkgYXMgRGJ4VGFibGVSZWFkZXJDb2x1bW5UcmFja0J5RnVuY3Rpb248Qz47XG5cbiAgaW50ZXJmYWNlIERieFRhYmxlUmVhZGVyQ2VsbERhdGFBY2Nlc3NvcnNGb3JDb2x1bW4ge1xuICAgIHJlYWRvbmx5IGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz47XG4gICAgcmVhZG9ubHkgYWxsVmFsdWVzJDogT2JzZXJ2YWJsZTxEYnhUYWJsZVJlYWRlckNlbGxEYXRhUGFpcjxDLCBULCBPPltdPjtcbiAgICByZWFkb25seSBhY2Nlc3NvcnNSZWNvcmQ6IERieFRhYmxlUmVhZGVyQ2VsbERhdGFBY2Nlc3NvcnNGb3JDb2x1bW5SZWNvcmQ7XG4gIH1cblxuICB0eXBlIERieFRhYmxlUmVhZGVyQ2VsbERhdGFBY2Nlc3NvcnNGb3JDb2x1bW5SZWNvcmQgPSBSZWNvcmQ8RGJ4VGFibGVSZWFkZXJJdGVtS2V5LCBPYnNlcnZhYmxlPERieFRhYmxlUmVhZGVyQ2VsbERhdGFQYWlyPEMsIFQsIE8+Pj47XG5cbiAgY29uc3QgX2NlbGxEYXRhQWNjZXNzb3JzRm9yQ29sdW1uID0gKGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4pOiBPYnNlcnZhYmxlPERieFRhYmxlUmVhZGVyQ2VsbERhdGFBY2Nlc3NvcnNGb3JDb2x1bW4+ID0+IHtcbiAgICByZXR1cm4gaXRlbXMkLnBpcGUoXG4gICAgICBtYXAoKHgpID0+IHtcbiAgICAgICAgY29uc3QgYWxsT2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8RGJ4VGFibGVSZWFkZXJDZWxsRGF0YVBhaXI8QywgVCwgTz4+W10gPSBbXTtcbiAgICAgICAgY29uc3QgYWNjZXNzb3JzUmVjb3JkOiBEYnhUYWJsZVJlYWRlckNlbGxEYXRhQWNjZXNzb3JzRm9yQ29sdW1uUmVjb3JkID0ge307XG5cbiAgICAgICAgeC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgY29uc3QgaXRlbUtleSA9IHRyYWNrSXRlbShpdGVtKTtcbiAgICAgICAgICBjb25zdCBhY2Nlc3NvciQgPSByZWFkSXRlbUNlbGxEYXRhRm9yQ29sdW1uKGNvbHVtbiwgaXRlbSkucGlwZShcbiAgICAgICAgICAgIG1hcCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgYWNjZXNzb3JzUmVjb3JkW2l0ZW1LZXldID0gYWNjZXNzb3IkO1xuICAgICAgICAgIGFsbE9ic2VydmFibGVzLnB1c2goYWNjZXNzb3IkKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgYWxsVmFsdWVzJCA9IGNvbWJpbmVMYXRlc3QoYWxsT2JzZXJ2YWJsZXMpLnBpcGUoc3RhcnRXaXRoKFtdKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29sdW1uLFxuICAgICAgICAgIGFsbFZhbHVlcyQsXG4gICAgICAgICAgYWNjZXNzb3JzUmVjb3JkXG4gICAgICAgIH07XG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfTtcblxuICBpbnRlcmZhY2UgRGJ4VGFibGVSZWFkZXJDb2x1bW5EYXRhQ2VsbHNBY2Nlc3NvciB7XG4gICAgcmVhZG9ubHkgY29sdW1uS2V5OiBEYnhUYWJsZVJlYWRlckNvbHVtbktleTtcbiAgICByZWFkb25seSBjb2x1bW46IERieFRhYmxlQ29sdW1uPEM+O1xuICAgIHJlYWRvbmx5IGNlbGxEYXRhQWNjZXNzb3JzJDogT2JzZXJ2YWJsZTxEYnhUYWJsZVJlYWRlckNlbGxEYXRhQWNjZXNzb3JzRm9yQ29sdW1uPjtcbiAgICByZWFkb25seSBjZWxsRGF0YSQ6IE9ic2VydmFibGU8RGJ4VGFibGVSZWFkZXJDZWxsRGF0YVBhaXI8QywgVCwgTz5bXT47XG4gIH1cblxuICBmdW5jdGlvbiBjb2x1bW5EYXRhQ2VsbHNBY2Nlc3Nvcihjb2x1bW5LZXk6IERieFRhYmxlUmVhZGVyQ29sdW1uS2V5LCBjb2x1bW46IERieFRhYmxlQ29sdW1uPEM+KTogRGJ4VGFibGVSZWFkZXJDb2x1bW5EYXRhQ2VsbHNBY2Nlc3NvciB7XG4gICAgY29uc3QgY2VsbERhdGFBY2Nlc3NvcnMkID0gX2NlbGxEYXRhQWNjZXNzb3JzRm9yQ29sdW1uKGNvbHVtbik7XG4gICAgY29uc3QgY2VsbERhdGEkID0gY2VsbERhdGFBY2Nlc3NvcnMkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHJlY29yZCkgPT4gcmVjb3JkLmFsbFZhbHVlcyQpLFxuICAgICAgc3RhcnRXaXRoKFtdKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBjb2x1bW5LZXksXG4gICAgICBjb2x1bW4sXG4gICAgICBjZWxsRGF0YUFjY2Vzc29ycyQsXG4gICAgICBjZWxsRGF0YSRcbiAgICB9O1xuICB9XG5cbiAgaW50ZXJmYWNlIERieFRhYmxlUmVhZGVyQ29sdW1uRGF0YUFjY3VtdWxhdG9yIHtcbiAgICByZWFkb25seSByZWNvcmQ6IERieFRhYmxlUmVhZGVyQ29sdW1uRGF0YVJlY29yZDtcbiAgfVxuXG4gIHR5cGUgRGJ4VGFibGVSZWFkZXJDb2x1bW5EYXRhUmVjb3JkID0gUmVjb3JkPERieFRhYmxlUmVhZGVyQ29sdW1uS2V5LCBEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFDZWxsc0FjY2Vzc29yPjtcblxuICBjb25zdCBhbGxDb2x1bW5zRGF0YSQ6IE9ic2VydmFibGU8RGJ4VGFibGVSZWFkZXJDb2x1bW5EYXRhQWNjdW11bGF0b3I+ID0gdGFibGVTdG9yZS5jb2x1bW5zJC5waXBlKFxuICAgIG1hcCgobmV4dENvbHVtbnM6IERieFRhYmxlQ29sdW1uPEM+W10pID0+IHtcbiAgICAgIGNvbnN0IHJlY29yZDogRGJ4VGFibGVSZWFkZXJDb2x1bW5EYXRhUmVjb3JkID0ge307XG5cbiAgICAgIG5leHRDb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICBjb25zdCBjb2x1bW5LZXkgPSB0cmFja0NvbHVtbihjb2x1bW4pO1xuICAgICAgICByZWNvcmRbY29sdW1uS2V5XSA9IGNvbHVtbkRhdGFDZWxsc0FjY2Vzc29yKGNvbHVtbktleSwgY29sdW1uKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWNvcmRcbiAgICAgIH07XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICBjb25zdCBfY29sdW1uQWNjZXNzb3JGb3JDb2x1bW4gPSAoY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPik6IE9ic2VydmFibGU8TWF5YmU8RGJ4VGFibGVSZWFkZXJDb2x1bW5EYXRhQ2VsbHNBY2Nlc3Nvcj4+ID0+IHtcbiAgICBjb25zdCBjb2x1bW5LZXkgPSB0cmFja0NvbHVtbihjb2x1bW4pO1xuICAgIHJldHVybiBhbGxDb2x1bW5zRGF0YSQucGlwZShcbiAgICAgIG1hcCgoY29sdW1uc0RhdGEpID0+IGNvbHVtbnNEYXRhLnJlY29yZFtjb2x1bW5LZXldKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBsb2FkQ2VsbERhdGFQYWlyc0ZvckNvbHVtbiA9IChjb2x1bW46IERieFRhYmxlQ29sdW1uPEM+KTogT2JzZXJ2YWJsZTxEYnhUYWJsZVJlYWRlckNlbGxEYXRhUGFpcjxDLCBULCBPPltdPiA9PiB7XG4gICAgY29uc3QgY29sdW1uc0RhdGEkID0gX2NvbHVtbkFjY2Vzc29yRm9yQ29sdW1uKGNvbHVtbikucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoYWNjZXNzb3IpID0+IHtcbiAgICAgICAgLy8gd2hlbiB2aXNpYmlsaXR5IGNoYW5nZXMsIHRoZSBkYXRhIHdpbGwgY2hhbmdlIHRvIGJlIGFuIGVtcHR5IGFycmF5XG4gICAgICAgIHJldHVybiBhY2Nlc3NvciA/IGFjY2Vzc29yLmNlbGxEYXRhJCA6IG9mKFtdKTtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgcmV0dXJuIGNvbHVtbnNEYXRhJDtcbiAgfTtcblxuICBjb25zdCBjZWxsRGF0YVBhaXJzRm9yQ29sdW1uID0gKGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4pOiBPYnNlcnZhYmxlPERieFRhYmxlUmVhZGVyQ2VsbERhdGFQYWlyPEMsIFQsIE8+W10+ID0+IHtcbiAgICByZXR1cm4gbG9hZENlbGxEYXRhUGFpcnNGb3JDb2x1bW4oY29sdW1uKTtcbiAgfTtcblxuICBjb25zdCBjZWxsRGF0YUZvckNvbHVtbiA9IChjb2x1bW46IERieFRhYmxlQ29sdW1uPEM+KTogT2JzZXJ2YWJsZTxPW10+ID0+IHtcbiAgICByZXR1cm4gY2VsbERhdGFQYWlyc0ZvckNvbHVtbihjb2x1bW4pLnBpcGUoXG4gICAgICBtYXAoKHBhaXJzKSA9PiBmaWx0ZXJNYXliZUFycmF5VmFsdWVzKHBhaXJzLm1hcCgocGFpcikgPT4gcGFpci52YWx1ZSkpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBjZWxsRGF0YVBhaXJGb3JDb2x1bW5BbmRJdGVtID0gKGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4sIGl0ZW06IFQpOiBPYnNlcnZhYmxlPE1heWJlPERieFRhYmxlUmVhZGVyQ2VsbERhdGFQYWlyPEMsIFQsIE8+Pj4gPT4ge1xuICAgIGNvbnN0IGl0ZW1LZXkgPSB0cmFja0l0ZW0oaXRlbSk7XG4gICAgY29uc3QgY29sdW1uc0RhdGEkID0gX2NvbHVtbkFjY2Vzc29yRm9yQ29sdW1uKGNvbHVtbikucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoY29sdW1uc0RhdGEpID0+IHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbnNEYXRhXG4gICAgICAgICAgPyBjb2x1bW5zRGF0YS5jZWxsRGF0YUFjY2Vzc29ycyQucGlwZShcbiAgICAgICAgICAgICAgc3dpdGNoTWFwKChjZWxsRGF0YUFjY2Vzc29yKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUFjY2Vzc29yID0gY2VsbERhdGFBY2Nlc3Nvci5hY2Nlc3NvcnNSZWNvcmRbaXRlbUtleV07XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBPYnNlcnZhYmxlPE1heWJlPERieFRhYmxlUmVhZGVyQ2VsbERhdGFQYWlyPEMsIFQsIE8+Pj4gPSBpdGVtQWNjZXNzb3IgPyBpdGVtQWNjZXNzb3IgOiBvZihudWxsKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogb2YobnVsbCk7XG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcblxuICAgIHJldHVybiBjb2x1bW5zRGF0YSQ7XG4gIH07XG5cbiAgY29uc3QgY2VsbERhdGFGb3JDb2x1bW5BbmRJdGVtID0gKGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4sIGl0ZW06IFQpOiBPYnNlcnZhYmxlPE1heWJlPE8+PiA9PiB7XG4gICAgcmV0dXJuIGNlbGxEYXRhUGFpckZvckNvbHVtbkFuZEl0ZW0oY29sdW1uLCBpdGVtKS5waXBlKG1hcCgocGFpcikgPT4gcGFpcj8udmFsdWUpKTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIHRhYmxlU3RvcmUsXG4gICAgZGVsZWdhdGUsXG4gICAgY2VsbERhdGFQYWlyc0ZvckNvbHVtbixcbiAgICBjZWxsRGF0YUZvckNvbHVtbixcbiAgICBjZWxsRGF0YVBhaXJGb3JDb2x1bW5BbmRJdGVtLFxuICAgIGNlbGxEYXRhRm9yQ29sdW1uQW5kSXRlbVxuICB9O1xufVxuIl19
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucmVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi90YWJsZS9zcmMvbGliL3RhYmxlLnJlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0YsT0FBTyxFQUF1QixzQkFBc0IsRUFBMkIsTUFBTSxlQUFlLENBQUM7QUEyQnJHOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSx3Q0FBd0MsR0FBcUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7QUE0RXhKLE1BQU0sVUFBVSxjQUFjLENBQXVCLE1BQXdDO0lBQzNGLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ3hDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUM7SUFDOUIsTUFBTSxFQUFFLHlCQUF5QixFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDekYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSx3Q0FBd0MsQ0FBMkMsQ0FBQztJQVU3SCxNQUFNLDJCQUEyQixHQUFHLENBQUMsTUFBeUIsRUFBd0QsRUFBRTtRQUN0SCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsTUFBTSxjQUFjLEdBQXNELEVBQUUsQ0FBQztZQUM3RSxNQUFNLGVBQWUsR0FBbUQsRUFBRSxDQUFDO1lBRTNFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDakIsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FB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Q0FBQyxDQUNmLENBQUM7UUFFRixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDLENBQUM7SUFFRixNQUFNLHdCQUF3QixHQUFHLENBQUMsTUFBeUIsRUFBRSxJQUFPLEVBQXdCLEVBQUU7UUFDNUYsT0FBTyw0QkFBNEIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLFVBQVU7UUFDVixRQUFRO1FBQ1Isc0JBQXNCO1FBQ3RCLGlCQUFpQjtRQUNqQiw0QkFBNEI7UUFDNUIsd0JBQXdCO0tBQ3pCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcmltYXRpdmVLZXksIE1heWJlLCBmaWx0ZXJNYXliZUFycmF5VmFsdWVzLCBSZWFkUmVxdWlyZWRLZXlGdW5jdGlvbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4VGFibGVDb2x1bW4gfSBmcm9tICcuL3RhYmxlJztcbmltcG9ydCB7IERieFRhYmxlU3RvcmUgfSBmcm9tICcuL3RhYmxlLnN0b3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhUYWJsZVJlYWRlckNlbGxQYWlyPEMsIFQ+IHtcbiAgcmVhZG9ubHkgY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPjtcbiAgcmVhZG9ubHkgaXRlbTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhUYWJsZVJlYWRlckNlbGxEYXRhUGFpcjxDLCBULCBPPiBleHRlbmRzIERieFRhYmxlUmVhZGVyQ2VsbFBhaXI8QywgVD4ge1xuICByZWFkb25seSB2YWx1ZTogTztcbn1cblxuLyoqXG4gKiBLZXkgdXNlZCBmb3IgdHJhY2tpbmcgY29sdW1ucy5cbiAqXG4gKiBHZW5lcmFsbHkgdGhlIHRhYmxlIG5hbWUgaXMgdXNlZCBmb3IgdGhpcy5cbiAqL1xuZXhwb3J0IHR5cGUgRGJ4VGFibGVSZWFkZXJDb2x1bW5LZXkgPSBzdHJpbmc7XG5cbi8qKlxuICogS2V5IHVzZWQgZm9yIHRyYWNraW5nIGl0ZW1zLlxuICpcbiAqIEdlbmVyYWxseSB0aGUgaXRlbSdzIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHVzZWQgZm9yIHRoaXMuXG4gKi9cbmV4cG9ydCB0eXBlIERieFRhYmxlUmVhZGVySXRlbUtleSA9IFByaW1hdGl2ZUtleTtcblxuLyoqXG4gKiBEZWZhdWx0IHRyYWNrIGJ5IGZ1bmN0aW9uIGZvciBEYnhUYWJsZUNvbHVtbi5cbiAqXG4gKiBSZXR1cm5zIHRoZSBjb2x1bW4gbmFtZS5cbiAqXG4gKiBAcGFyYW0gY29sdW1uXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9EQlhfVEFCTEVfUkVBREVSX0NPTFVNTl9UUkFDS19CWTogUmVhZFJlcXVpcmVkS2V5RnVuY3Rpb248RGJ4VGFibGVDb2x1bW48RGJ4VGFibGVSZWFkZXJDb2x1bW5LZXk+PiA9IChjb2x1bW4pID0+IGNvbHVtbi5jb2x1bW5OYW1lO1xuXG4vKipcbiAqIEZ1bmN0aW9uIHVzZWQgZm9yIHRyYWNraW5nIHVuaXF1ZSBjb2x1bW5zIHVzaW5nIHRoZSBjb2x1bW4ncyBkYXRhLlxuICpcbiAqIElmIHRoZSBjb2x1bW4ga2V5IHZhbHVlIGlzIHRoZSBzYW1lIGJldHdlZW4gdGhvc2UgdHdvIGNvbHVtbnMsIHRoZW4gdGhlIG1ldGFkYXRhIG9mIGJvdGggY29sdW1ucyB3aWxsIGJlIGNvbnNpZGVyZWQgdGhlIHNhbWUvZXF1YWwuXG4gKi9cbmV4cG9ydCB0eXBlIERieFRhYmxlUmVhZGVyQ29sdW1uVHJhY2tCeUZ1bmN0aW9uPEM+ID0gUmVhZFJlcXVpcmVkS2V5RnVuY3Rpb248RGJ4VGFibGVDb2x1bW48Qz4sIERieFRhYmxlUmVhZGVyQ29sdW1uS2V5PjtcblxuLyoqXG4gKiBGdW5jdGlvbiB1c2VkIGZvciB0cmFja2luZyB1bmlxdWUgY29sdW1ucyB1c2luZyB0aGUgY29sdW1uJ3MgZGF0YS5cbiAqXG4gKiBJZiB0aGUgY29sdW1uIGtleSB2YWx1ZSBpcyB0aGUgc2FtZSBiZXR3ZWVuIHRob3NlIHR3byBjb2x1bW5zLCB0aGVuIHRoZSBtZXRhZGF0YSBvZiBib3RoIGNvbHVtbnMgd2lsbCBiZSBjb25zaWRlcmVkIHRoZSBzYW1lL2VxdWFsLlxuICovXG5leHBvcnQgdHlwZSBEYnhUYWJsZVJlYWRlckl0ZW1UcmFja0J5RnVuY3Rpb248VD4gPSBSZWFkUmVxdWlyZWRLZXlGdW5jdGlvbjxULCBEYnhUYWJsZVJlYWRlckl0ZW1LZXk+O1xuXG5leHBvcnQgaW50ZXJmYWNlIERieFRhYmxlUmVhZGVyRGVsZWdhdGU8QywgVCwgTz4ge1xuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBkYXRhIGZvciBhIHNwZWNpZmljIGNvbHVtbiBhbmQgaXRlbS9yb3cuXG4gICAqXG4gICAqIEBwYXJhbSBjb2x1bW5cbiAgICogQHBhcmFtIGl0ZW1cbiAgICovXG4gIHJlYWRJdGVtQ2VsbERhdGFGb3JDb2x1bW4oY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPiwgaXRlbTogVCk6IE9ic2VydmFibGU8Tz47XG4gIC8qKlxuICAgKiBVc2VkIGZvciB0cmFja2luZyB1bmlxdWUgY29sdW1ucy5cbiAgICpcbiAgICogVXNlIGlmIHRoZSBtZXRhZGF0YSBiZXR3ZWVuIGNvbHVtbnMgc2hvdWxkIGJlIHVzZWQgZm9yIHVuaXF1ZSBpZGVudGlmaWNhdGlvbi5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gdXNpbmcgdGhlIGNvbHVtbiBuYW1lIGFzIHRoZSBrZXkgaWYgbm90IGRlZmluZWQuXG4gICAqL1xuICB0cmFja0NvbHVtbj86IERieFRhYmxlUmVhZGVyQ29sdW1uVHJhY2tCeUZ1bmN0aW9uPEM+O1xuICAvKipcbiAgICogVXNlZCBmb3IgdHJhY2tpbmcgdW5pcXVlIGl0ZW1zL3Jvd3MuXG4gICAqXG4gICAqIFVzZSBpZiB0aGUgbWV0YWRhdGEgYmV0d2VlbiBpdGVtcyBzaG91bGQgYmUgdXNlZCBmb3IgdW5pcXVlIGlkZW50aWZpY2F0aW9uLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byB1c2luZyB0aGUgaXRlbSBpdHNlbGYgYXMgdGhlIGtleSBpZiBub3QgZGVmaW5lZC5cbiAgICovXG4gIHRyYWNrSXRlbTogRGJ4VGFibGVSZWFkZXJJdGVtVHJhY2tCeUZ1bmN0aW9uPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERieFRhYmxlUmVhZGVyQ29uZmlnPEMsIFQsIE8sIEcgPSB1bmtub3duPiB7XG4gIC8qKlxuICAgKiBEZWxlZ2F0ZSB1c2VkIGZvciByZXRyaWV2aW5nIHRoZSBkYXRhIGZvciBhIHNwZWNpZmljIGNvbHVtbiBhbmQgaXRlbS9yb3cuXG4gICAqL1xuICByZWFkb25seSBkZWxlZ2F0ZTogRGJ4VGFibGVSZWFkZXJEZWxlZ2F0ZTxDLCBULCBPPjtcbiAgLyoqXG4gICAqIFRoZSB0YWJsZSBzdG9yZSB1c2VkIGZvciByZXRyaWV2aW5nIHRoZSBpdGVtcy5cbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlU3RvcmU6IERieFRhYmxlU3RvcmU8YW55LCBDLCBULCBHPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhUYWJsZVJlYWRlcjxDLCBULCBPLCBHID0gdW5rbm93bj4gZXh0ZW5kcyBEYnhUYWJsZVJlYWRlckNvbmZpZzxDLCBULCBPLCBHPiB7XG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgYWxsIGNlbGwgZGF0YSBwYWlycyBmb3IgYSBzcGVjaWZpYyBjb2x1bW4uXG4gICAqL1xuICBjZWxsRGF0YVBhaXJzRm9yQ29sdW1uKGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4pOiBPYnNlcnZhYmxlPERieFRhYmxlUmVhZGVyQ2VsbERhdGFQYWlyPEMsIFQsIE8+W10+O1xuICAvKipcbiAgICogUmV0cmlldmVzIGFsbCBjZWxsIGRhdGEgZm9yIGEgc3BlY2lmaWMgY29sdW1uLlxuICAgKi9cbiAgY2VsbERhdGFGb3JDb2x1bW4oY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPik6IE9ic2VydmFibGU8T1tdPjtcbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgY2VsbCBkYXRhIHBhaXIgZm9yIGEgc3BlY2lmaWMgY29sdW1uIGFuZCBpdGVtLlxuICAgKlxuICAgKiBSZXR1cm5zIG51bGwgaWYgdGhlIGNvbHVtbiBpcyBub3QgdmlzaWJsZSBvciB0aGUgaXRlbSBpcyBub3QgZm91bmQuXG4gICAqL1xuICBjZWxsRGF0YVBhaXJGb3JDb2x1bW5BbmRJdGVtKGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4sIGl0ZW06IFQpOiBPYnNlcnZhYmxlPE1heWJlPERieFRhYmxlUmVhZGVyQ2VsbERhdGFQYWlyPEMsIFQsIE8+Pj47XG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGNlbGwgZGF0YSBmb3IgYSBzcGVjaWZpYyBjb2x1bW4gYW5kIGl0ZW0uXG4gICAqXG4gICAqIFJldHVybnMgbnVsbCBpZiB0aGUgY29sdW1uIGlzIG5vdCB2aXNpYmxlIG9yIHRoZSBpdGVtIGlzIG5vdCBmb3VuZC5cbiAgICovXG4gIGNlbGxEYXRhRm9yQ29sdW1uQW5kSXRlbShjb2x1bW46IERieFRhYmxlQ29sdW1uPEM+LCBpdGVtOiBUKTogT2JzZXJ2YWJsZTxNYXliZTxPPj47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYnhUYWJsZVJlYWRlcjxDLCBULCBPLCBHID0gdW5rbm93bj4oY29uZmlnOiBEYnhUYWJsZVJlYWRlckNvbmZpZzxDLCBULCBPLCBHPik6IERieFRhYmxlUmVhZGVyPEMsIFQsIE8sIEc+IHtcbiAgY29uc3QgeyBkZWxlZ2F0ZSwgdGFibGVTdG9yZSB9ID0gY29uZmlnO1xuICBjb25zdCB7IGl0ZW1zJCB9ID0gdGFibGVTdG9yZTtcbiAgY29uc3QgeyByZWFkSXRlbUNlbGxEYXRhRm9yQ29sdW1uLCB0cmFja0NvbHVtbjogaW5wdXRUcmFja0NvbHVtbiwgdHJhY2tJdGVtIH0gPSBkZWxlZ2F0ZTtcbiAgY29uc3QgdHJhY2tDb2x1bW4gPSAoaW5wdXRUcmFja0NvbHVtbiA/PyBERUZBVUxUX0RCWF9UQUJMRV9SRUFERVJfQ09MVU1OX1RSQUNLX0JZKSBhcyBEYnhUYWJsZVJlYWRlckNvbHVtblRyYWNrQnlGdW5jdGlvbjxDPjtcblxuICBpbnRlcmZhY2UgRGJ4VGFibGVSZWFkZXJDZWxsRGF0YUFjY2Vzc29yc0ZvckNvbHVtbiB7XG4gICAgcmVhZG9ubHkgY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPjtcbiAgICByZWFkb25seSBhbGxWYWx1ZXMkOiBPYnNlcnZhYmxlPERieFRhYmxlUmVhZGVyQ2VsbERhdGFQYWlyPEMsIFQsIE8+W10+O1xuICAgIHJlYWRvbmx5IGFjY2Vzc29yc1JlY29yZDogRGJ4VGFibGVSZWFkZXJDZWxsRGF0YUFjY2Vzc29yc0ZvckNvbHVtblJlY29yZDtcbiAgfVxuXG4gIHR5cGUgRGJ4VGFibGVSZWFkZXJDZWxsRGF0YUFjY2Vzc29yc0ZvckNvbHVtblJlY29yZCA9IFJlY29yZDxEYnhUYWJsZVJlYWRlckl0ZW1LZXksIE9ic2VydmFibGU8RGJ4VGFibGVSZWFkZXJDZWxsRGF0YVBhaXI8QywgVCwgTz4+PjtcblxuICBjb25zdCBfY2VsbERhdGFBY2Nlc3NvcnNGb3JDb2x1bW4gPSAoY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPik6IE9ic2VydmFibGU8RGJ4VGFibGVSZWFkZXJDZWxsRGF0YUFjY2Vzc29yc0ZvckNvbHVtbj4gPT4ge1xuICAgIHJldHVybiBpdGVtcyQucGlwZShcbiAgICAgIG1hcCgoeCkgPT4ge1xuICAgICAgICBjb25zdCBhbGxPYnNlcnZhYmxlczogT2JzZXJ2YWJsZTxEYnhUYWJsZVJlYWRlckNlbGxEYXRhUGFpcjxDLCBULCBPPj5bXSA9IFtdO1xuICAgICAgICBjb25zdCBhY2Nlc3NvcnNSZWNvcmQ6IERieFRhYmxlUmVhZGVyQ2VsbERhdGFBY2Nlc3NvcnNGb3JDb2x1bW5SZWNvcmQgPSB7fTtcblxuICAgICAgICB4LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICBjb25zdCBpdGVtS2V5ID0gdHJhY2tJdGVtKGl0ZW0pO1xuICAgICAgICAgIGNvbnN0IGFjY2Vzc29yJCA9IHJlYWRJdGVtQ2VsbERhdGFGb3JDb2x1bW4oY29sdW1uLCBpdGVtKS5waXBlKFxuICAgICAgICAgICAgbWFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgICAgICAgICBpdGVtLFxuICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBhY2Nlc3NvcnNSZWNvcmRbaXRlbUtleV0gPSBhY2Nlc3NvciQ7XG4gICAgICAgICAgYWxsT2JzZXJ2YWJsZXMucHVzaChhY2Nlc3NvciQpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBhbGxWYWx1ZXMkID0gY29tYmluZUxhdGVzdChhbGxPYnNlcnZhYmxlcykucGlwZShzdGFydFdpdGgoW10pLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgYWxsVmFsdWVzJCxcbiAgICAgICAgICBhY2Nlc3NvcnNSZWNvcmRcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9O1xuXG4gIGludGVyZmFjZSBEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFDZWxsc0FjY2Vzc29yIHtcbiAgICByZWFkb25seSBjb2x1bW5LZXk6IERieFRhYmxlUmVhZGVyQ29sdW1uS2V5O1xuICAgIHJlYWRvbmx5IGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz47XG4gICAgcmVhZG9ubHkgY2VsbERhdGFBY2Nlc3NvcnMkOiBPYnNlcnZhYmxlPERieFRhYmxlUmVhZGVyQ2VsbERhdGFBY2Nlc3NvcnNGb3JDb2x1bW4+O1xuICAgIHJlYWRvbmx5IGNlbGxEYXRhJDogT2JzZXJ2YWJsZTxEYnhUYWJsZVJlYWRlckNlbGxEYXRhUGFpcjxDLCBULCBPPltdPjtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNvbHVtbkRhdGFDZWxsc0FjY2Vzc29yKGNvbHVtbktleTogRGJ4VGFibGVSZWFkZXJDb2x1bW5LZXksIGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4pOiBEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFDZWxsc0FjY2Vzc29yIHtcbiAgICBjb25zdCBjZWxsRGF0YUFjY2Vzc29ycyQgPSBfY2VsbERhdGFBY2Nlc3NvcnNGb3JDb2x1bW4oY29sdW1uKTtcbiAgICBjb25zdCBjZWxsRGF0YSQgPSBjZWxsRGF0YUFjY2Vzc29ycyQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgocmVjb3JkKSA9PiByZWNvcmQuYWxsVmFsdWVzJCksXG4gICAgICBzdGFydFdpdGgoW10pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbHVtbktleSxcbiAgICAgIGNvbHVtbixcbiAgICAgIGNlbGxEYXRhQWNjZXNzb3JzJCxcbiAgICAgIGNlbGxEYXRhJFxuICAgIH07XG4gIH1cblxuICBpbnRlcmZhY2UgRGJ4VGFibGVSZWFkZXJDb2x1bW5EYXRhQWNjdW11bGF0b3Ige1xuICAgIHJlYWRvbmx5IHJlY29yZDogRGJ4VGFibGVSZWFkZXJDb2x1bW5EYXRhUmVjb3JkO1xuICB9XG5cbiAgdHlwZSBEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFSZWNvcmQgPSBSZWNvcmQ8RGJ4VGFibGVSZWFkZXJDb2x1bW5LZXksIERieFRhYmxlUmVhZGVyQ29sdW1uRGF0YUNlbGxzQWNjZXNzb3I+O1xuXG4gIGNvbnN0IGFsbENvbHVtbnNEYXRhJDogT2JzZXJ2YWJsZTxEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFBY2N1bXVsYXRvcj4gPSB0YWJsZVN0b3JlLmNvbHVtbnMkLnBpcGUoXG4gICAgbWFwKChuZXh0Q29sdW1uczogRGJ4VGFibGVDb2x1bW48Qz5bXSkgPT4ge1xuICAgICAgY29uc3QgcmVjb3JkOiBEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFSZWNvcmQgPSB7fTtcblxuICAgICAgbmV4dENvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbHVtbktleSA9IHRyYWNrQ29sdW1uKGNvbHVtbik7XG4gICAgICAgIHJlY29yZFtjb2x1bW5LZXldID0gY29sdW1uRGF0YUNlbGxzQWNjZXNzb3IoY29sdW1uS2V5LCBjb2x1bW4pO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlY29yZFxuICAgICAgfTtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIGNvbnN0IF9jb2x1bW5BY2Nlc3NvckZvckNvbHVtbiA9IChjb2x1bW46IERieFRhYmxlQ29sdW1uPEM+KTogT2JzZXJ2YWJsZTxNYXliZTxEYnhUYWJsZVJlYWRlckNvbHVtbkRhdGFDZWxsc0FjY2Vzc29yPj4gPT4ge1xuICAgIGNvbnN0IGNvbHVtbktleSA9IHRyYWNrQ29sdW1uKGNvbHVtbik7XG4gICAgcmV0dXJuIGFsbENvbHVtbnNEYXRhJC5waXBlKFxuICAgICAgbWFwKChjb2x1bW5zRGF0YSkgPT4gY29sdW1uc0RhdGEucmVjb3JkW2NvbHVtbktleV0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGxvYWRDZWxsRGF0YVBhaXJzRm9yQ29sdW1uID0gKGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4pOiBPYnNlcnZhYmxlPERieFRhYmxlUmVhZGVyQ2VsbERhdGFQYWlyPEMsIFQsIE8+W10+ID0+IHtcbiAgICBjb25zdCBjb2x1bW5zRGF0YSQgPSBfY29sdW1uQWNjZXNzb3JGb3JDb2x1bW4oY29sdW1uKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChhY2Nlc3NvcikgPT4ge1xuICAgICAgICAvLyB3aGVuIHZpc2liaWxpdHkgY2hhbmdlcywgdGhlIGRhdGEgd2lsbCBjaGFuZ2UgdG8gYmUgYW4gZW1wdHkgYXJyYXlcbiAgICAgICAgcmV0dXJuIGFjY2Vzc29yID8gYWNjZXNzb3IuY2VsbERhdGEkIDogb2YoW10pO1xuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG5cbiAgICByZXR1cm4gY29sdW1uc0RhdGEkO1xuICB9O1xuXG4gIGNvbnN0IGNlbGxEYXRhUGFpcnNGb3JDb2x1bW4gPSAoY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPik6IE9ic2VydmFibGU8RGJ4VGFibGVSZWFkZXJDZWxsRGF0YVBhaXI8QywgVCwgTz5bXT4gPT4ge1xuICAgIHJldHVybiBsb2FkQ2VsbERhdGFQYWlyc0ZvckNvbHVtbihjb2x1bW4pO1xuICB9O1xuXG4gIGNvbnN0IGNlbGxEYXRhRm9yQ29sdW1uID0gKGNvbHVtbjogRGJ4VGFibGVDb2x1bW48Qz4pOiBPYnNlcnZhYmxlPE9bXT4gPT4ge1xuICAgIHJldHVybiBjZWxsRGF0YVBhaXJzRm9yQ29sdW1uKGNvbHVtbikucGlwZShcbiAgICAgIG1hcCgocGFpcnMpID0+IGZpbHRlck1heWJlQXJyYXlWYWx1ZXMocGFpcnMubWFwKChwYWlyKSA9PiBwYWlyLnZhbHVlKSkpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGNlbGxEYXRhUGFpckZvckNvbHVtbkFuZEl0ZW0gPSAoY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPiwgaXRlbTogVCk6IE9ic2VydmFibGU8TWF5YmU8RGJ4VGFibGVSZWFkZXJDZWxsRGF0YVBhaXI8QywgVCwgTz4+PiA9PiB7XG4gICAgY29uc3QgaXRlbUtleSA9IHRyYWNrSXRlbShpdGVtKTtcbiAgICBjb25zdCBjb2x1bW5zRGF0YSQgPSBfY29sdW1uQWNjZXNzb3JGb3JDb2x1bW4oY29sdW1uKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChjb2x1bW5zRGF0YSkgPT4ge1xuICAgICAgICByZXR1cm4gY29sdW1uc0RhdGFcbiAgICAgICAgICA/IGNvbHVtbnNEYXRhLmNlbGxEYXRhQWNjZXNzb3JzJC5waXBlKFxuICAgICAgICAgICAgICBzd2l0Y2hNYXAoKGNlbGxEYXRhQWNjZXNzb3IpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtQWNjZXNzb3IgPSBjZWxsRGF0YUFjY2Vzc29yLmFjY2Vzc29yc1JlY29yZFtpdGVtS2V5XTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQ6IE9ic2VydmFibGU8TWF5YmU8RGJ4VGFibGVSZWFkZXJDZWxsRGF0YVBhaXI8QywgVCwgTz4+PiA9IGl0ZW1BY2Nlc3NvciA/IGl0ZW1BY2Nlc3NvciA6IG9mKG51bGwpO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBvZihudWxsKTtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgcmV0dXJuIGNvbHVtbnNEYXRhJDtcbiAgfTtcblxuICBjb25zdCBjZWxsRGF0YUZvckNvbHVtbkFuZEl0ZW0gPSAoY29sdW1uOiBEYnhUYWJsZUNvbHVtbjxDPiwgaXRlbTogVCk6IE9ic2VydmFibGU8TWF5YmU8Tz4+ID0+IHtcbiAgICByZXR1cm4gY2VsbERhdGFQYWlyRm9yQ29sdW1uQW5kSXRlbShjb2x1bW4sIGl0ZW0pLnBpcGUobWFwKChwYWlyKSA9PiBwYWlyPy52YWx1ZSkpO1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgdGFibGVTdG9yZSxcbiAgICBkZWxlZ2F0ZSxcbiAgICBjZWxsRGF0YVBhaXJzRm9yQ29sdW1uLFxuICAgIGNlbGxEYXRhRm9yQ29sdW1uLFxuICAgIGNlbGxEYXRhUGFpckZvckNvbHVtbkFuZEl0ZW0sXG4gICAgY2VsbERhdGFGb3JDb2x1bW5BbmRJdGVtXG4gIH07XG59XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { asObservable, beginLoading, filterMaybe, mapLoadingStateValueWithOperator, valueFromFinishedLoadingState } from '@dereekb/rxjs';
|
|
3
|
+
import { spaceSeparatedCssClasses } from '@dereekb/util';
|
|
3
4
|
import { ComponentStore } from '@ngrx/component-store';
|
|
4
5
|
import { distinctUntilChanged, first, map, shareReplay, switchMap, tap, combineLatest, of } from 'rxjs';
|
|
5
6
|
import { defaultDbxTableItemGroup } from './table';
|
|
@@ -25,6 +26,8 @@ export class DbxTableStore extends ComponentStore {
|
|
|
25
26
|
dataDelegate$ = this.state$.pipe(map((x) => x.dataDelegate), distinctUntilChanged(), shareReplay(1));
|
|
26
27
|
currentViewDelegate$ = this.state$.pipe(map((x) => x.viewDelegate), distinctUntilChanged(), shareReplay(1));
|
|
27
28
|
viewDelegate$ = this.currentViewDelegate$.pipe(filterMaybe());
|
|
29
|
+
tableCssClasses$ = this.viewDelegate$.pipe(map((x) => x.tableClasses));
|
|
30
|
+
spaceSeparatedTableCssClasses$ = this.tableCssClasses$.pipe(map((x) => spaceSeparatedCssClasses(x)), distinctUntilChanged(), shareReplay(1));
|
|
28
31
|
dataState$ = combineLatest([this.input$, this.dataDelegate$]).pipe(switchMap(([input, dataDelegate]) => {
|
|
29
32
|
let obs;
|
|
30
33
|
if (input && dataDelegate) {
|
|
@@ -64,4 +67,4 @@ export class DbxTableStore extends ComponentStore {
|
|
|
64
67
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableStore, decorators: [{
|
|
65
68
|
type: Injectable
|
|
66
69
|
}], ctorParameters: () => [] });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3RhYmxlL3NyYy9saWIvdGFibGUuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQWdCLGdDQUFnQyxFQUF3Qiw2QkFBNkIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3SyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFjLG9CQUFvQixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwSCxPQUFPLEVBQTZHLHdCQUF3QixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQWtCOUosTUFBTSxPQUFPLGFBQWtFLFNBQVEsY0FBOEM7SUFDbkk7UUFDRSxLQUFLLENBQUM7WUFDSixLQUFLLEVBQUUsSUFBSTtZQUNYLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0I7SUFDUCxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQXVCLEVBQUUsRUFBRTtRQUMxRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQ2YsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNiLEtBQUssRUFBRSxFQUNQLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1IsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2YsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2YsQ0FBQztR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QUFDLENBQUM7WUFDakQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyx3QkFBd0IsQ0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsQ0FBQztZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDLENBQUMsQ0FDSCxFQUNELFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRU8sT0FBTyxHQUEwQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRWpKLHNCQUFzQjtJQUNiLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzRSxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxZQUF5RCxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25JLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLFlBQXFELEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0dBM0c3SCxhQUFhOzRHQUFiLGFBQWE7OzRGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhc09ic2VydmFibGUsIGJlZ2luTG9hZGluZywgZmlsdGVyTWF5YmUsIExvYWRpbmdTdGF0ZSwgbWFwTG9hZGluZ1N0YXRlVmFsdWVXaXRoT3BlcmF0b3IsIFBhZ2VMaXN0TG9hZGluZ1N0YXRlLCB2YWx1ZUZyb21GaW5pc2hlZExvYWRpbmdTdGF0ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQtc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpcnN0LCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCwgY29tYmluZUxhdGVzdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieFRhYmxlQ29sdW1uLCBEYnhUYWJsZUNvbnRleHREYXRhLCBEYnhUYWJsZUNvbnRleHREYXRhRGVsZWdhdGUsIERieFRhYmxlSXRlbUdyb3VwLCBEYnhUYWJsZVZpZXdEZWxlZ2F0ZSwgZGVmYXVsdERieFRhYmxlSXRlbUdyb3VwIH0gZnJvbSAnLi90YWJsZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4VGFibGVTdG9yZVN0YXRlPEksIEMsIFQsIEc+IHtcbiAgLyoqXG4gICAqIENvbnRleHR1YWwgaW5wdXQgdGhhdCBpcyBwYXNzZWQgdG8gdGhlIGRhdGEgZGVsZWdhdGUuXG4gICAqL1xuICByZWFkb25seSBpbnB1dDogTWF5YmU8ST47XG4gIC8qKlxuICAgKiBEZWxlZ2F0ZSB1c2VkIGZvciByZXRyaWV2aW5nIGluZm8gZ2l2ZW4gdGhlIHNlbGVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFEZWxlZ2F0ZTogTWF5YmU8RGJ4VGFibGVDb250ZXh0RGF0YURlbGVnYXRlPEksIEMsIFQ+PjtcbiAgLyoqXG4gICAqIERlbGVnYXRlIHVzZWQgZm9yIHJldHJpZXZpbmcgdmlldyBjb25maWd1cmF0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IHZpZXdEZWxlZ2F0ZTogTWF5YmU8RGJ4VGFibGVWaWV3RGVsZWdhdGU8SSwgQywgVCwgRz4+O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGJ4VGFibGVTdG9yZTxJID0gdW5rbm93biwgQyA9IHVua25vd24sIFQgPSB1bmtub3duLCBHID0gdW5rbm93bj4gZXh0ZW5kcyBDb21wb25lbnRTdG9yZTxEYnhUYWJsZVN0b3JlU3RhdGU8SSwgQywgVCwgRz4+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoe1xuICAgICAgaW5wdXQ6IG51bGwsXG4gICAgICBkYXRhRGVsZWdhdGU6IG51bGwsXG4gICAgICB2aWV3RGVsZWdhdGU6IG51bGxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIE1BUks6IEVmZmVjdHNcbiAgcmVhZG9ubHkgbG9hZE1vcmUgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICB0aGlzLmRhdGEkLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICB0YXAoKHgpID0+IHtcbiAgICAgICAgICAgIGlmICh4LmxvYWRNb3JlKSB7XG4gICAgICAgICAgICAgIHgubG9hZE1vcmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG5cbiAgLy8gTUFSSzogQWNjZXNzb3JzXG4gIHJlYWRvbmx5IGlucHV0JCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmlucHV0KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZGF0YURlbGVnYXRlJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmRhdGFEZWxlZ2F0ZSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRWaWV3RGVsZWdhdGUkID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHgudmlld0RlbGVnYXRlKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgdmlld0RlbGVnYXRlJCA9IHRoaXMuY3VycmVudFZpZXdEZWxlZ2F0ZSQucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICByZWFkb25seSBkYXRhU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhUYWJsZUNvbnRleHREYXRhPEksIEMsIFQ+Pj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmlucHV0JCwgdGhpcy5kYXRhRGVsZWdhdGUkXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFtpbnB1dCwgZGF0YURlbGVnYXRlXSkgPT4ge1xuICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RGJ4VGFibGVDb250ZXh0RGF0YTxJLCBDLCBUPj4+O1xuXG4gICAgICBpZiAoaW5wdXQgJiYgZGF0YURlbGVnYXRlKSB7XG4gICAgICAgIG9icyA9IGRhdGFEZWxlZ2F0ZS5sb2FkRGF0YShpbnB1dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvYnMgPSBvZihiZWdpbkxvYWRpbmc8RGJ4VGFibGVDb250ZXh0RGF0YTxJLCBDLCBUPj4oKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYnM7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkYXRhJDogT2JzZXJ2YWJsZTxEYnhUYWJsZUNvbnRleHREYXRhPEksIEMsIFQ+PiA9IHRoaXMuZGF0YVN0YXRlJC5waXBlKFxuICAgIC8vXG4gICAgdmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUoKSxcbiAgICBmaWx0ZXJNYXliZSgpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjb2x1bW5zJDogT2JzZXJ2YWJsZTxEYnhUYWJsZUNvbHVtbjxDPltdPiA9IHRoaXMuZGF0YSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguY29sdW1ucyksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpdGVtc1N0YXRlJDogT2JzZXJ2YWJsZTxQYWdlTGlzdExvYWRpbmdTdGF0ZTxUPj4gPSB0aGlzLmRhdGEkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiB4Lml0ZW1zJCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpdGVtcyQ6IE9ic2VydmFibGU8VFtdPiA9IHRoaXMuaXRlbXNTdGF0ZSQucGlwZSh2YWx1ZUZyb21GaW5pc2hlZExvYWRpbmdTdGF0ZSgpLCBmaWx0ZXJNYXliZSgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgZ3JvdXBzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhUYWJsZUl0ZW1Hcm91cDxULCBHPltdPj4gPSB0aGlzLml0ZW1zU3RhdGUkLnBpcGUoXG4gICAgbWFwTG9hZGluZ1N0YXRlVmFsdWVXaXRoT3BlcmF0b3IoXG4gICAgICBzd2l0Y2hNYXAoKHgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0RlbGVnYXRlJC5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcCgodmlld0RlbGVnYXRlKSA9PiB7XG4gICAgICAgICAgICBsZXQgZ3JvdXBzOiBPYnNlcnZhYmxlPERieFRhYmxlSXRlbUdyb3VwPFQsIEc+W10+O1xuXG4gICAgICAgICAgICBpZiAodmlld0RlbGVnYXRlLmdyb3VwQnkpIHtcbiAgICAgICAgICAgICAgZ3JvdXBzID0gYXNPYnNlcnZhYmxlKHZpZXdEZWxlZ2F0ZS5ncm91cEJ5KHgpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGdyb3VwcyA9IG9mKFtkZWZhdWx0RGJ4VGFibGVJdGVtR3JvdXA8VCwgRz4oeCldKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGdyb3VwcztcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZ3JvdXBzJDogT2JzZXJ2YWJsZTxEYnhUYWJsZUl0ZW1Hcm91cDxULCBHPltdPiA9IHRoaXMuZ3JvdXBzU3RhdGUkLnBpcGUodmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUoKSwgZmlsdGVyTWF5YmUoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIC8vIE1BUks6IFN0YXRlIENoYW5nZXNcbiAgcmVhZG9ubHkgc2V0SW5wdXQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBpbnB1dDogTWF5YmU8ST4pID0+ICh7IC4uLnN0YXRlLCBpbnB1dCB9KSk7XG4gIHJlYWRvbmx5IHNldERhdGFEZWxlZ2F0ZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGRhdGFEZWxlZ2F0ZTogTWF5YmU8RGJ4VGFibGVDb250ZXh0RGF0YURlbGVnYXRlPEksIEMsIFQ+PikgPT4gKHsgLi4uc3RhdGUsIGRhdGFEZWxlZ2F0ZSB9KSk7XG4gIHJlYWRvbmx5IHNldFZpZXdEZWxlZ2F0ZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHZpZXdEZWxlZ2F0ZTogTWF5YmU8RGJ4VGFibGVWaWV3RGVsZWdhdGU8SSwgQywgVCwgRz4+KSA9PiAoeyAuLi5zdGF0ZSwgdmlld0RlbGVnYXRlIH0pKTtcbn1cbiJdfQ==
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3RhYmxlL3NyYy9saWIvdGFibGUuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQWdCLGdDQUFnQyxFQUF3Qiw2QkFBNkIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3SyxPQUFPLEVBQUUsd0JBQXdCLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBYyxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEgsT0FBTyxFQUE2Ryx3QkFBd0IsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFrQjlKLE1BQU0sT0FBTyxhQUFrRSxTQUFRLGNBQThDO0lBQ25JO1FBQ0UsS0FBSyxDQUFDO1lBQ0osS0FBSyxFQUFFLElBQUk7WUFDWCxZQUFZLEVBQUUsSUFBSTtZQUNsQixZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCO0lBQ1AsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUF1QixFQUFFLEVBQUU7UUFDMUQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUNmLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FDYixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixLQUFLLEVBQUUsRUFDUCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNSLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFD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SSxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxZQUFxRCxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO3dHQWpIN0gsYUFBYTs0R0FBYixhQUFhOzs0RkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNPYnNlcnZhYmxlLCBiZWdpbkxvYWRpbmcsIGZpbHRlck1heWJlLCBMb2FkaW5nU3RhdGUsIG1hcExvYWRpbmdTdGF0ZVZhbHVlV2l0aE9wZXJhdG9yLCBQYWdlTGlzdExvYWRpbmdTdGF0ZSwgdmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IHNwYWNlU2VwYXJhdGVkQ3NzQ2xhc3NlcywgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQtc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpcnN0LCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCwgY29tYmluZUxhdGVzdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieFRhYmxlQ29sdW1uLCBEYnhUYWJsZUNvbnRleHREYXRhLCBEYnhUYWJsZUNvbnRleHREYXRhRGVsZWdhdGUsIERieFRhYmxlSXRlbUdyb3VwLCBEYnhUYWJsZVZpZXdEZWxlZ2F0ZSwgZGVmYXVsdERieFRhYmxlSXRlbUdyb3VwIH0gZnJvbSAnLi90YWJsZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4VGFibGVTdG9yZVN0YXRlPEksIEMsIFQsIEc+IHtcbiAgLyoqXG4gICAqIENvbnRleHR1YWwgaW5wdXQgdGhhdCBpcyBwYXNzZWQgdG8gdGhlIGRhdGEgZGVsZWdhdGUuXG4gICAqL1xuICByZWFkb25seSBpbnB1dDogTWF5YmU8ST47XG4gIC8qKlxuICAgKiBEZWxlZ2F0ZSB1c2VkIGZvciByZXRyaWV2aW5nIGluZm8gZ2l2ZW4gdGhlIHNlbGVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFEZWxlZ2F0ZTogTWF5YmU8RGJ4VGFibGVDb250ZXh0RGF0YURlbGVnYXRlPEksIEMsIFQ+PjtcbiAgLyoqXG4gICAqIERlbGVnYXRlIHVzZWQgZm9yIHJldHJpZXZpbmcgdmlldyBjb25maWd1cmF0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IHZpZXdEZWxlZ2F0ZTogTWF5YmU8RGJ4VGFibGVWaWV3RGVsZWdhdGU8SSwgQywgVCwgRz4+O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGJ4VGFibGVTdG9yZTxJID0gdW5rbm93biwgQyA9IHVua25vd24sIFQgPSB1bmtub3duLCBHID0gdW5rbm93bj4gZXh0ZW5kcyBDb21wb25lbnRTdG9yZTxEYnhUYWJsZVN0b3JlU3RhdGU8SSwgQywgVCwgRz4+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoe1xuICAgICAgaW5wdXQ6IG51bGwsXG4gICAgICBkYXRhRGVsZWdhdGU6IG51bGwsXG4gICAgICB2aWV3RGVsZWdhdGU6IG51bGxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIE1BUks6IEVmZmVjdHNcbiAgcmVhZG9ubHkgbG9hZE1vcmUgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICB0aGlzLmRhdGEkLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICB0YXAoKHgpID0+IHtcbiAgICAgICAgICAgIGlmICh4LmxvYWRNb3JlKSB7XG4gICAgICAgICAgICAgIHgubG9hZE1vcmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG5cbiAgLy8gTUFSSzogQWNjZXNzb3JzXG4gIHJlYWRvbmx5IGlucHV0JCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmlucHV0KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZGF0YURlbGVnYXRlJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmRhdGFEZWxlZ2F0ZSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRWaWV3RGVsZWdhdGUkID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHgudmlld0RlbGVnYXRlKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgdmlld0RlbGVnYXRlJCA9IHRoaXMuY3VycmVudFZpZXdEZWxlZ2F0ZSQucGlwZShmaWx0ZXJNYXliZSgpKTtcbiAgcmVhZG9ubHkgdGFibGVDc3NDbGFzc2VzJCA9IHRoaXMudmlld0RlbGVnYXRlJC5waXBlKG1hcCgoeCkgPT4geC50YWJsZUNsYXNzZXMpKTtcbiAgcmVhZG9ubHkgc3BhY2VTZXBhcmF0ZWRUYWJsZUNzc0NsYXNzZXMkID0gdGhpcy50YWJsZUNzc0NsYXNzZXMkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBzcGFjZVNlcGFyYXRlZENzc0NsYXNzZXMoeCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkYXRhU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhUYWJsZUNvbnRleHREYXRhPEksIEMsIFQ+Pj4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmlucHV0JCwgdGhpcy5kYXRhRGVsZWdhdGUkXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFtpbnB1dCwgZGF0YURlbGVnYXRlXSkgPT4ge1xuICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RGJ4VGFibGVDb250ZXh0RGF0YTxJLCBDLCBUPj4+O1xuXG4gICAgICBpZiAoaW5wdXQgJiYgZGF0YURlbGVnYXRlKSB7XG4gICAgICAgIG9icyA9IGRhdGFEZWxlZ2F0ZS5sb2FkRGF0YShpbnB1dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvYnMgPSBvZihiZWdpbkxvYWRpbmc8RGJ4VGFibGVDb250ZXh0RGF0YTxJLCBDLCBUPj4oKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvYnM7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkYXRhJDogT2JzZXJ2YWJsZTxEYnhUYWJsZUNvbnRleHREYXRhPEksIEMsIFQ+PiA9IHRoaXMuZGF0YVN0YXRlJC5waXBlKFxuICAgIC8vXG4gICAgdmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUoKSxcbiAgICBmaWx0ZXJNYXliZSgpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjb2x1bW5zJDogT2JzZXJ2YWJsZTxEYnhUYWJsZUNvbHVtbjxDPltdPiA9IHRoaXMuZGF0YSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguY29sdW1ucyksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpdGVtc1N0YXRlJDogT2JzZXJ2YWJsZTxQYWdlTGlzdExvYWRpbmdTdGF0ZTxUPj4gPSB0aGlzLmRhdGEkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiB4Lml0ZW1zJCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpdGVtcyQ6IE9ic2VydmFibGU8VFtdPiA9IHRoaXMuaXRlbXNTdGF0ZSQucGlwZSh2YWx1ZUZyb21GaW5pc2hlZExvYWRpbmdTdGF0ZSgpLCBmaWx0ZXJNYXliZSgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgZ3JvdXBzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhUYWJsZUl0ZW1Hcm91cDxULCBHPltdPj4gPSB0aGlzLml0ZW1zU3RhdGUkLnBpcGUoXG4gICAgbWFwTG9hZGluZ1N0YXRlVmFsdWVXaXRoT3BlcmF0b3IoXG4gICAgICBzd2l0Y2hNYXAoKHgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0RlbGVnYXRlJC5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcCgodmlld0RlbGVnYXRlKSA9PiB7XG4gICAgICAgICAgICBsZXQgZ3JvdXBzOiBPYnNlcnZhYmxlPERieFRhYmxlSXRlbUdyb3VwPFQsIEc+W10+O1xuXG4gICAgICAgICAgICBpZiAodmlld0RlbGVnYXRlLmdyb3VwQnkpIHtcbiAgICAgICAgICAgICAgZ3JvdXBzID0gYXNPYnNlcnZhYmxlKHZpZXdEZWxlZ2F0ZS5ncm91cEJ5KHgpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGdyb3VwcyA9IG9mKFtkZWZhdWx0RGJ4VGFibGVJdGVtR3JvdXA8VCwgRz4oeCldKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGdyb3VwcztcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZ3JvdXBzJDogT2JzZXJ2YWJsZTxEYnhUYWJsZUl0ZW1Hcm91cDxULCBHPltdPiA9IHRoaXMuZ3JvdXBzU3RhdGUkLnBpcGUodmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUoKSwgZmlsdGVyTWF5YmUoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIC8vIE1BUks6IFN0YXRlIENoYW5nZXNcbiAgcmVhZG9ubHkgc2V0SW5wdXQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBpbnB1dDogTWF5YmU8ST4pID0+ICh7IC4uLnN0YXRlLCBpbnB1dCB9KSk7XG4gIHJlYWRvbmx5IHNldERhdGFEZWxlZ2F0ZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGRhdGFEZWxlZ2F0ZTogTWF5YmU8RGJ4VGFibGVDb250ZXh0RGF0YURlbGVnYXRlPEksIEMsIFQ+PikgPT4gKHsgLi4uc3RhdGUsIGRhdGFEZWxlZ2F0ZSB9KSk7XG4gIHJlYWRvbmx5IHNldFZpZXdEZWxlZ2F0ZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHZpZXdEZWxlZ2F0ZTogTWF5YmU8RGJ4VGFibGVWaWV3RGVsZWdhdGU8SSwgQywgVCwgRz4+KSA9PiAoeyAuLi5zdGF0ZSwgdmlld0RlbGVnYXRlIH0pKTtcbn1cbiJdfQ==
|
|
@@ -3,6 +3,7 @@ import { signal, Component, ChangeDetectionStrategy, Injectable, inject, compute
|
|
|
3
3
|
import { DatePipe, NgClass } from '@angular/common';
|
|
4
4
|
import { isSameDateDay } from '@dereekb/date';
|
|
5
5
|
import { filterMaybe, beginLoading, valueFromFinishedLoadingState, mapLoadingStateValueWithOperator, asObservable, SubscriptionObject, maybeValueFromObservableOrValue, loadingStateContext } from '@dereekb/rxjs';
|
|
6
|
+
import { spaceSeparatedCssClasses, pushArrayItemsIntoArray, filterMaybeArrayValues } from '@dereekb/util';
|
|
6
7
|
import { ComponentStore } from '@ngrx/component-store';
|
|
7
8
|
import { switchMap, first, tap, map, distinctUntilChanged, shareReplay, combineLatest, of, startWith, filter, throttleTime, BehaviorSubject } from 'rxjs';
|
|
8
9
|
import * as i1 from '@angular/material/datepicker';
|
|
@@ -19,7 +20,6 @@ import { resizeSignal, DbxLoadingComponent } from '@dereekb/dbx-web';
|
|
|
19
20
|
import { InfiniteScrollDirective } from 'ngx-infinite-scroll';
|
|
20
21
|
import * as i1$1 from '@angular/material/table';
|
|
21
22
|
import { MatTable, MatTableModule } from '@angular/material/table';
|
|
22
|
-
import { pushArrayItemsIntoArray, filterMaybeArrayValues } from '@dereekb/util';
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* A table header component used for rendering date values on the header.
|
|
@@ -104,6 +104,8 @@ class DbxTableStore extends ComponentStore {
|
|
|
104
104
|
dataDelegate$ = this.state$.pipe(map((x) => x.dataDelegate), distinctUntilChanged(), shareReplay(1));
|
|
105
105
|
currentViewDelegate$ = this.state$.pipe(map((x) => x.viewDelegate), distinctUntilChanged(), shareReplay(1));
|
|
106
106
|
viewDelegate$ = this.currentViewDelegate$.pipe(filterMaybe());
|
|
107
|
+
tableCssClasses$ = this.viewDelegate$.pipe(map((x) => x.tableClasses));
|
|
108
|
+
spaceSeparatedTableCssClasses$ = this.tableCssClasses$.pipe(map((x) => spaceSeparatedCssClasses(x)), distinctUntilChanged(), shareReplay(1));
|
|
107
109
|
dataState$ = combineLatest([this.input$, this.dataDelegate$]).pipe(switchMap(([input, dataDelegate]) => {
|
|
108
110
|
let obs;
|
|
109
111
|
if (input && dataDelegate) {
|
|
@@ -842,6 +844,7 @@ class DbxTableViewComponent {
|
|
|
842
844
|
dataLoadingContextSignal = toSignal(this.dataLoadingContext.state$);
|
|
843
845
|
viewDelegateSignal = toSignal(this.tableStore.viewDelegate$);
|
|
844
846
|
elementsSignal = toSignal(this.elements$, { initialValue: [] });
|
|
847
|
+
tableCssClasses = toSignal(this.tableStore.spaceSeparatedTableCssClasses$);
|
|
845
848
|
onScrollDown() {
|
|
846
849
|
this.tableStore.loadMore();
|
|
847
850
|
}
|
|
@@ -869,7 +872,7 @@ class DbxTableViewComponent {
|
|
|
869
872
|
provide: DBX_TABLE_COLUMN_SIZE_PARENT_ELEMENT_REF_TOKEN,
|
|
870
873
|
useExisting: ElementRef
|
|
871
874
|
}
|
|
872
|
-
], viewQueries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true, isSignal: true }], ngImport: i0, template: "<dbx-loading [context]=\"context\">\n <dbx-loading class=\"dbx-table-view-loading\" [linear]=\"true\" [context]=\"dataLoadingContext\"></dbx-loading>\n <section class=\"dbx-table-view\" dbx-table-column-size #columnSize=\"dbxTableColumnSize\" infinite-scroll [infiniteScrollDistance]=\"scrollDistance()\" [infiniteScrollThrottle]=\"throttleScroll()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\">\n
|
|
875
|
+
], viewQueries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true, isSignal: true }], ngImport: i0, template: "<dbx-loading [context]=\"context\">\n <dbx-loading class=\"dbx-table-view-loading\" [linear]=\"true\" [context]=\"dataLoadingContext\"></dbx-loading>\n <div class=\"dbx-table-view\" [ngClass]=\"tableCssClasses()\">\n <section class=\"dbx-table-view-table-wrapper\" dbx-table-column-size #columnSize=\"dbxTableColumnSize\" infinite-scroll [infiniteScrollDistance]=\"scrollDistance()\" [infiniteScrollThrottle]=\"throttleScroll()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\">\n <table class=\"dbx-table-view-table\" mat-table [dataSource]=\"elementsSignal()\" [trackBy]=\"trackElementByFunctionSignal()\" multiTemplateDataRows>\n <!-- Groups -->\n <!-- Group Header column -->\n <ng-container matColumnDef=\"groupHeaderColumn\" [sticky]=\"true\">\n <td mat-cell [attr.colspan]=\"columnSize.visibleColumnsSignal()\" *matCellDef=\"let element\">\n <dbx-table-group-header [group]=\"element.group\"></dbx-table-group-header>\n </td>\n </ng-container>\n\n <!-- Group Footer column -->\n <ng-container matColumnDef=\"groupFooterColumn\" [sticky]=\"true\">\n <td mat-cell [attr.colspan]=\"columnSize.visibleColumnsSignal()\" *matCellDef=\"let element\">\n <dbx-table-group-footer [group]=\"element.group\"></dbx-table-group-footer>\n </td>\n </ng-container>\n\n <!-- Items -->\n <!-- Header/Item column -->\n <ng-container [matColumnDef]=\"itemsColumnName\" [sticky]=\"true\">\n <th dbx-column-size-column=\"head\" mat-header-cell *matHeaderCellDef>\n <dbx-table-input-cell></dbx-table-input-cell>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <dbx-table-item-header [item]=\"element.item\"></dbx-table-item-header>\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-summary-start-cell></dbx-table-summary-start-cell>\n </td>\n </ng-container>\n\n <!-- Column Definitions -->\n @for (column of innerColumnsSignal(); track column.columnName) {\n <ng-container [matColumnDef]=\"column.columnName\" [sticky]=\"false\">\n <th [dbx-column-size-column]=\"$index\" mat-header-cell *matHeaderCellDef>\n <dbx-table-column-header [column]=\"column\"></dbx-table-column-header>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <dbx-table-item-cell [item]=\"element.item\" [column]=\"column\"></dbx-table-item-cell>\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-column-footer [column]=\"column\"></dbx-table-column-footer>\n </td>\n </ng-container>\n }\n\n <!-- Tail/Action column -->\n <ng-container [matColumnDef]=\"actionsColumnName\" [stickyEnd]=\"true\">\n <th dbx-column-size-column=\"tail\" mat-header-cell *matHeaderCellDef>\n <dbx-table-action-cell></dbx-table-action-cell>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <dbx-table-item-action [item]=\"element.item\"></dbx-table-item-action>\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-summary-end-cell></dbx-table-summary-end-cell>\n </td>\n </ng-container>\n\n <!-- Table View -->\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsSignal(); sticky: true\"></tr>\n\n <tr mat-row *matRowDef=\"let row; columns: ['groupHeaderColumn']; when: showGroupHeaderRow\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumnsSignal(); when: showItemRow\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['groupFooterColumn']; when: showGroupFooterRow\"></tr>\n\n <tr [ngClass]=\"{ 'dbx-hide': !showFooterRowSignal() }\" mat-footer-row *matFooterRowDef=\"displayedColumnsSignal(); sticky: true\"></tr>\n </table>\n </section>\n <!-- Full summary row -->\n @if (showFullSummaryRowSignal()) {\n <div class=\"mat-mdc-table dbx-table-view-full-summary-row-container\">\n <div class=\"mdc-data-table__cell mat-mdc-row\">\n <dbx-table-full-summary-row></dbx-table-full-summary-row>\n </div>\n </div>\n }\n </div>\n</dbx-loading>\n", dependencies: [{ kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i1$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i1$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i1$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i1$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i1$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i1$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i1$1.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i1$1.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i1$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i1$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i1$1.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i1$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i1$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i1$1.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "component", type: DbxTableInputCellComponent, selector: "dbx-table-input-cell" }, { kind: "component", type: DbxTableItemHeaderComponent, selector: "dbx-table-item-header" }, { kind: "component", type: DbxTableItemCellComponent, selector: "dbx-table-item-cell", inputs: ["column"] }, { kind: "component", type: DbxTableItemActionComponent, selector: "dbx-table-item-action" }, { kind: "component", type: DbxTableActionCellComponent, selector: "dbx-table-action-cell" }, { kind: "component", type: DbxTableColumnHeaderComponent, selector: "dbx-table-column-header" }, { kind: "component", type: DbxTableColumnFooterComponent, selector: "dbx-table-column-footer" }, { kind: "component", type: DbxTableSummaryStartCellComponent, selector: "dbx-table-summary-start-cell" }, { kind: "component", type: DbxTableSummaryEndCellComponent, selector: "dbx-table-summary-end-cell" }, { kind: "component", type: DbxTableGroupHeaderComponent, selector: "dbx-table-group-header" }, { kind: "component", type: DbxTableGroupFooterComponent, selector: "dbx-table-group-footer" }, { kind: "component", type: DbxTableFullSummaryRowComponent, selector: "dbx-table-full-summary-row" }, { kind: "directive", type: DbxTableColumnSizeDirective, selector: "[dbx-table-column-size]", exportAs: ["dbxTableColumnSize"] }, { kind: "directive", type: DbxColumnSizeColumnDirective, selector: "[dbx-column-size-column]", inputs: ["dbx-column-size-column"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
873
876
|
}
|
|
874
877
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableViewComponent, decorators: [{
|
|
875
878
|
type: Component,
|
|
@@ -897,7 +900,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
897
900
|
provide: DBX_TABLE_COLUMN_SIZE_PARENT_ELEMENT_REF_TOKEN,
|
|
898
901
|
useExisting: ElementRef
|
|
899
902
|
}
|
|
900
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<dbx-loading [context]=\"context\">\n <dbx-loading class=\"dbx-table-view-loading\" [linear]=\"true\" [context]=\"dataLoadingContext\"></dbx-loading>\n <section class=\"dbx-table-view\" dbx-table-column-size #columnSize=\"dbxTableColumnSize\" infinite-scroll [infiniteScrollDistance]=\"scrollDistance()\" [infiniteScrollThrottle]=\"throttleScroll()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\">\n
|
|
903
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<dbx-loading [context]=\"context\">\n <dbx-loading class=\"dbx-table-view-loading\" [linear]=\"true\" [context]=\"dataLoadingContext\"></dbx-loading>\n <div class=\"dbx-table-view\" [ngClass]=\"tableCssClasses()\">\n <section class=\"dbx-table-view-table-wrapper\" dbx-table-column-size #columnSize=\"dbxTableColumnSize\" infinite-scroll [infiniteScrollDistance]=\"scrollDistance()\" [infiniteScrollThrottle]=\"throttleScroll()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\">\n <table class=\"dbx-table-view-table\" mat-table [dataSource]=\"elementsSignal()\" [trackBy]=\"trackElementByFunctionSignal()\" multiTemplateDataRows>\n <!-- Groups -->\n <!-- Group Header column -->\n <ng-container matColumnDef=\"groupHeaderColumn\" [sticky]=\"true\">\n <td mat-cell [attr.colspan]=\"columnSize.visibleColumnsSignal()\" *matCellDef=\"let element\">\n <dbx-table-group-header [group]=\"element.group\"></dbx-table-group-header>\n </td>\n </ng-container>\n\n <!-- Group Footer column -->\n <ng-container matColumnDef=\"groupFooterColumn\" [sticky]=\"true\">\n <td mat-cell [attr.colspan]=\"columnSize.visibleColumnsSignal()\" *matCellDef=\"let element\">\n <dbx-table-group-footer [group]=\"element.group\"></dbx-table-group-footer>\n </td>\n </ng-container>\n\n <!-- Items -->\n <!-- Header/Item column -->\n <ng-container [matColumnDef]=\"itemsColumnName\" [sticky]=\"true\">\n <th dbx-column-size-column=\"head\" mat-header-cell *matHeaderCellDef>\n <dbx-table-input-cell></dbx-table-input-cell>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <dbx-table-item-header [item]=\"element.item\"></dbx-table-item-header>\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-summary-start-cell></dbx-table-summary-start-cell>\n </td>\n </ng-container>\n\n <!-- Column Definitions -->\n @for (column of innerColumnsSignal(); track column.columnName) {\n <ng-container [matColumnDef]=\"column.columnName\" [sticky]=\"false\">\n <th [dbx-column-size-column]=\"$index\" mat-header-cell *matHeaderCellDef>\n <dbx-table-column-header [column]=\"column\"></dbx-table-column-header>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <dbx-table-item-cell [item]=\"element.item\" [column]=\"column\"></dbx-table-item-cell>\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-column-footer [column]=\"column\"></dbx-table-column-footer>\n </td>\n </ng-container>\n }\n\n <!-- Tail/Action column -->\n <ng-container [matColumnDef]=\"actionsColumnName\" [stickyEnd]=\"true\">\n <th dbx-column-size-column=\"tail\" mat-header-cell *matHeaderCellDef>\n <dbx-table-action-cell></dbx-table-action-cell>\n </th>\n <td mat-cell *matCellDef=\"let element\">\n <dbx-table-item-action [item]=\"element.item\"></dbx-table-item-action>\n </td>\n <td mat-footer-cell *matFooterCellDef>\n <dbx-table-summary-end-cell></dbx-table-summary-end-cell>\n </td>\n </ng-container>\n\n <!-- Table View -->\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsSignal(); sticky: true\"></tr>\n\n <tr mat-row *matRowDef=\"let row; columns: ['groupHeaderColumn']; when: showGroupHeaderRow\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumnsSignal(); when: showItemRow\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['groupFooterColumn']; when: showGroupFooterRow\"></tr>\n\n <tr [ngClass]=\"{ 'dbx-hide': !showFooterRowSignal() }\" mat-footer-row *matFooterRowDef=\"displayedColumnsSignal(); sticky: true\"></tr>\n </table>\n </section>\n <!-- Full summary row -->\n @if (showFullSummaryRowSignal()) {\n <div class=\"mat-mdc-table dbx-table-view-full-summary-row-container\">\n <div class=\"mdc-data-table__cell mat-mdc-row\">\n <dbx-table-full-summary-row></dbx-table-full-summary-row>\n </div>\n </div>\n }\n </div>\n</dbx-loading>\n" }]
|
|
901
904
|
}] });
|
|
902
905
|
|
|
903
906
|
/**
|