@theseam/ui-common 0.2.8 → 0.2.12
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/bundles/theseam-ui-common-data-exporter.umd.js.map +1 -1
- package/bundles/theseam-ui-common-datatable.umd.js +54 -4
- package/bundles/theseam-ui-common-datatable.umd.js.map +1 -1
- package/bundles/theseam-ui-common-framework.umd.js +2 -2
- package/bundles/theseam-ui-common-framework.umd.js.map +1 -1
- package/bundles/theseam-ui-common-table-cell-types.umd.js +245 -19
- package/bundles/theseam-ui-common-table-cell-types.umd.js.map +1 -1
- package/bundles/theseam-ui-common-utils.umd.js.map +1 -1
- package/data-exporter/data-exporter.d.ts +4 -0
- package/data-exporter/theseam-ui-common-data-exporter.metadata.json +1 -1
- package/datatable/datatable/datatable.component.d.ts +2 -0
- package/datatable/datatable-footer/datatable-footer-tpl.directive.d.ts +5 -0
- package/datatable/datatable-footer/datatable-footer.directive.d.ts +6 -0
- package/datatable/public-api.d.ts +2 -0
- package/datatable/theseam-ui-common-datatable.metadata.json +1 -1
- package/esm2015/data-exporter/data-exporter.js +1 -1
- package/esm2015/datatable/datatable/datatable.component.js +5 -3
- package/esm2015/datatable/datatable-export-button/datatable-export-button.component.js +8 -3
- package/esm2015/datatable/datatable-footer/datatable-footer-tpl.directive.js +15 -0
- package/esm2015/datatable/datatable-footer/datatable-footer.directive.js +18 -0
- package/esm2015/datatable/datatable.module.js +7 -1
- package/esm2015/datatable/public-api.js +3 -1
- package/esm2015/framework/side-nav/side-nav-item/side-nav-item.component.js +3 -3
- package/esm2015/table-cell-types/public-api.js +8 -1
- package/esm2015/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.js +2 -0
- package/esm2015/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.js +74 -0
- package/esm2015/table-cell-types/table-cell-type-currency/table-cell-type-currency.js +2 -0
- package/esm2015/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.js +1 -1
- package/esm2015/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.js +73 -0
- package/esm2015/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.js +2 -0
- package/esm2015/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.js +1 -1
- package/esm2015/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.js +71 -0
- package/esm2015/table-cell-types/table-cell-type-integer/table-cell-type-integer.js +2 -0
- package/esm2015/table-cell-types/table-cell-type-manifests.js +29 -17
- package/esm2015/table-cell-types/table-cell-types.module.js +9 -2
- package/esm2015/utils/router/is-empty-url-route.js +1 -1
- package/fesm2015/theseam-ui-common-data-exporter.js.map +1 -1
- package/fesm2015/theseam-ui-common-datatable.js +45 -5
- package/fesm2015/theseam-ui-common-datatable.js.map +1 -1
- package/fesm2015/theseam-ui-common-framework.js +2 -2
- package/fesm2015/theseam-ui-common-framework.js.map +1 -1
- package/fesm2015/theseam-ui-common-table-cell-types.js +232 -20
- package/fesm2015/theseam-ui-common-table-cell-types.js.map +1 -1
- package/fesm2015/theseam-ui-common-utils.js.map +1 -1
- package/framework/side-nav/side-nav-item/side-nav-item.component.scss +36 -9
- package/framework/theseam-ui-common-framework.metadata.json +1 -1
- package/package.json +1 -1
- package/styles/common/_table.scss +0 -5
- package/styles/vendor/ngx-datatable/_ngx-datatable.scss +478 -87
- package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +174 -0
- package/styles/vendor/ngx-datatable/_themes/dark/_variables.scss +166 -0
- package/styles/vendor/ngx-datatable/_themes/material/_variables.scss +165 -0
- package/styles/vendor/ngx-datatable/_variables.scss +3 -0
- package/table-cell-types/public-api.d.ts +7 -0
- package/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.d.ts +39 -0
- package/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.d.ts +19 -0
- package/table-cell-types/table-cell-type-currency/table-cell-type-currency.d.ts +3 -0
- package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.d.ts +31 -1
- package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.d.ts +19 -0
- package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.d.ts +3 -0
- package/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.d.ts +23 -1
- package/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.d.ts +19 -0
- package/table-cell-types/table-cell-type-integer/table-cell-type-integer.d.ts +3 -0
- package/table-cell-types/table-cell-type-manifests.d.ts +2 -1
- package/table-cell-types/theseam-ui-common-table-cell-types.metadata.json +1 -1
|
@@ -14,6 +14,7 @@ import { isDataSource } from '@angular/cdk/collections';
|
|
|
14
14
|
import { isObservable } from 'rxjs';
|
|
15
15
|
import { DatatableActionMenuComponent } from '../datatable-action-menu/datatable-action-menu.component';
|
|
16
16
|
import { DatatableColumnComponent } from '../datatable-column/datatable-column.component';
|
|
17
|
+
import { TheSeamDatatableFooterDirective } from '../datatable-footer/datatable-footer.directive';
|
|
17
18
|
import { DatatableMenuBarComponent } from '../datatable-menu-bar/datatable-menu-bar.component';
|
|
18
19
|
import { TheSeamDatatableRowDetailDirective } from '../datatable-row-detail/datatable-row-detail.directive';
|
|
19
20
|
import { DatatableRowActionItemDirective } from '../directives/datatable-row-action-item.directive';
|
|
@@ -434,7 +435,7 @@ export class DatatableComponent {
|
|
|
434
435
|
DatatableComponent.decorators = [
|
|
435
436
|
{ type: Component, args: [{
|
|
436
437
|
selector: 'seam-datatable',
|
|
437
|
-
template: "<div class=\"datatable-wrapper\">\n <ng-content select=\"seam-datatable-menu-bar\"></ng-content>\n <div class=\"datatable-table-wrapper\">\n <ng-container>\n <ngx-datatable\n
|
|
438
|
+
template: "<div class=\"datatable-wrapper\">\n <ng-content select=\"seam-datatable-menu-bar\"></ng-content>\n <div class=\"datatable-table-wrapper\">\n <ng-container>\n <ngx-datatable\n [columnMode]=\"$any(columnMode)\"\n [scrollbarV]=\"scrollbarV\"\n [scrollbarH]=\"scrollbarH\"\n [virtualization]=\"virtualization\"\n [targetMarkerTemplate]=\"targetMarkerTemplate\"\n [groupRowsBy]=\"$any(groupRowsBy)\"\n [groupedRows]=\"$any(groupedRows)\"\n [selected]=\"$any(selected)\"\n [externalPaging]=\"externalPaging\"\n [externalSorting]=\"externalSorting\"\n [limit]=\"$any(limit)\"\n [count]=\"$any(count)\"\n [offset]=\"$any(offset)\"\n [loadingIndicator]=\"loadingIndicator\"\n [selectionType]=\"$any(selectionType)\"\n [reorderable]=\"reorderable\"\n [swapColumns]=\"swapColumns\"\n [sortType]=\"$any(sortType)\"\n [sorts]=\"$any(_sorts)\"\n [cssClasses]=\"cssClasses\"\n [messages]=\"messages\"\n [rowIdentity]=\"$any(rowIdentity)\"\n [rowClass]=\"rowClass\"\n [selectCheck]=\"selectCheck\"\n [displayCheck]=\"$any(displayCheck)\"\n [groupExpansionDefault]=\"groupExpansionDefault\"\n [trackByProp]=\"$any(trackByProp)\"\n [selectAllRowsOnPage]=\"selectAllRowsOnPage\"\n [treeFromRelation]=\"$any(treeFromRelation)\"\n [treeToRelation]=\"$any(treeToRelation)\"\n [summaryRow]=\"summaryRow\"\n [summaryHeight]=\"$any(summaryHeight)\"\n [summaryPosition]=\"$any(summaryPosition)\"\n [rows]=\"rows$ | async\"\n [columns]=\"$any(displayColumns$ | async)\"\n [headerHeight]=\"$any(headerHeight)\"\n [rowHeight]=\"$any(rowHeight)\"\n [footerHeight]=\"$any(footerHeight)\"\n (scroll)=\"scroll.emit($event)\"\n (activate)=\"activate.emit($event)\"\n (select)=\"select.emit($event)\"\n (sort)=\"sort.emit($event)\"\n (page)=\"page.emit($event)\"\n (reorder)=\"reorder.emit($event)\"\n (resize)=\"_onResize($event)\"\n (tableContextmenu)=\"tableContextmenu.emit($event)\"\n (treeAction)=\"treeAction.emit($event)\"\n (seamElemResized)=\"onDatatableResize($event)\"\n (treeAction)=\"_onTreeAction($event)\">\n\n <ngx-datatable-group-header [rowHeight]=\"50\" #myGroupHeader *ngIf=\"groupRowsBy\">\n <ng-template let-group=\"group\" let-expanded=\"expanded\" ngx-datatable-group-header-template>\n <div\n class=\"w-100 bg-light p-1\"\n [class.border-bottom]=\"!expanded\"\n [class.datatable-icon-right]=\"!expanded\"\n [class.datatable-icon-down]=\"expanded\"\n title=\"Expand/Collapse Group\"\n (click)=\"ngxDatatable?.groupHeader?.toggleExpandGroup(group)\">\n <b>Age: {{ group.age }}</b>\n </div>\n </ng-template>\n </ngx-datatable-group-header>\n\n <ngx-datatable-row-detail *ngIf=\"rowDetail && rowDetail.template\"\n [rowHeight]=\"rowDetail.rowHeight || 0\"\n [template]=\"$any(rowDetail.template)\"\n (toggle)=\"rowDetail.toggle.emit($event)\">\n </ngx-datatable-row-detail>\n\n <ngx-datatable-footer *ngIf=\"footer && footer.template\"\n [template]=\"$any(footer.template)\">\n </ngx-datatable-footer>\n </ngx-datatable>\n </ng-container>\n </div>\n</div>\n\n<ng-template #blankHeaderTpl ngx-datatable-header-template></ng-template>\n\n<ng-template #headerTpl ngx-datatable-header-template\n let-column=\"column\" let-sortFn=\"sortFn\">\n <strong *ngIf=\"!column.sortable\" class=\"draggable\">{{column.name}}</strong>\n <strong *ngIf=\"column.sortable\" class=\"datatable-sort-target draggable\" (click)=\"sortFn()\">{{column.name}}</strong>\n <div class=\"datatable-column-header-separator\"></div>\n</ng-template>\n\n<ng-template #cellTypeSelectorTpl ngx-datatable-cell-template\n let-value=\"value\" let-rowIndex=\"rowIndex\" let-row=\"row\" let-column=\"column\">\n <seam-table-cell-type-selector *ngIf=\"row\"\n [type]=\"column.cellType\"\n [value]=\"value\"\n [rowIndex]=\"rowIndex\"\n [row]=\"row\"\n [colData]=\"column\">\n </seam-table-cell-type-selector>\n</ng-template>\n\n<ng-template #actionMenuCellTpl ngx-datatable-cell-template\n let-value=\"value\" let-rowIndex=\"rowIndex\" let-row=\"row\">\n\n <ng-container *ngIf=\"row && rowActionItem?.template\">\n <ng-template\n [ngTemplateOutlet]=\"$any(rowActionItem?.template)\"\n [ngTemplateOutletContext]=\"{ $implicit: row, row: row, rowIndex: rowIndex }\">\n </ng-template>\n </ng-container>\n\n</ng-template>\n\n<ng-template #treeToggleTpl ngx-datatable-tree-toggle let-tree=\"cellContext\">\n <button\n class=\"p-0 bg-transparent border-0 btn\"\n [disabled]=\"tree.treeStatus==='disabled'\"\n (click)=\"tree.onTreeAction()\">\n <span *ngIf=\"tree.treeStatus==='loading'\">\n <fa-icon [icon]=\"faSpinner\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='collapsed'\">\n <fa-icon [icon]=\"faChevronRight\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='expanded'\">\n <fa-icon [icon]=\"faChevronDown\"></fa-icon>\n </span>\n <span *ngIf=\"tree.treeStatus==='disabled'\">\n <fa-icon [icon]=\"faChevronRight\"></fa-icon>\n </span>\n </button>\n</ng-template>\n",
|
|
438
439
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
439
440
|
animations: [
|
|
440
441
|
trigger('slideDown', [
|
|
@@ -449,7 +450,7 @@ DatatableComponent.decorators = [
|
|
|
449
450
|
])
|
|
450
451
|
],
|
|
451
452
|
providers: [_THESEAM_DATATABLE, DatatableColumnChangesService, _THESEAM_DATATABLE_ACCESSOR],
|
|
452
|
-
styles: [":host{display:flex;flex-grow:1;flex-direction:column}::ng-deep .seam-datatable-action-menu{min-width:auto!important}ngx-datatable{position:absolute;top:0;left:0;right:0;bottom:0}.datatable-wrapper{display:flex;flex-direction:column;flex-grow:1}.datatable-wrapper .datatable-table-wrapper{position:relative;flex:1 1 100%}.datatable-column-header-separator{position:absolute
|
|
453
|
+
styles: [":host{display:flex;flex-grow:1;flex-direction:column}::ng-deep .seam-datatable-action-menu{min-width:auto!important}ngx-datatable{position:absolute!important;top:0;left:0;right:0;bottom:0}.datatable-wrapper{display:flex;flex-direction:column;flex-grow:1}.datatable-wrapper .datatable-table-wrapper{position:relative;flex:1 1 100%}.datatable-column-header-separator{position:absolute}.datatable-sort-target{cursor:pointer}"]
|
|
453
454
|
},] }
|
|
454
455
|
];
|
|
455
456
|
DatatableComponent.ctorParameters = () => [
|
|
@@ -514,6 +515,7 @@ DatatableComponent.propDecorators = {
|
|
|
514
515
|
actionMenu: [{ type: ContentChild, args: [DatatableActionMenuComponent, { static: true },] }],
|
|
515
516
|
rowActionItem: [{ type: ContentChild, args: [DatatableRowActionItemDirective, { static: true },] }],
|
|
516
517
|
rowDetail: [{ type: ContentChild, args: [TheSeamDatatableRowDetailDirective, { static: true },] }],
|
|
518
|
+
footer: [{ type: ContentChild, args: [TheSeamDatatableFooterDirective, { static: true },] }],
|
|
517
519
|
menuBarComponent: [{ type: ContentChild, args: [DatatableMenuBarComponent,] }],
|
|
518
520
|
ngxDatatable: [{ type: ViewChild, args: [NgxDatatableComponent,] }],
|
|
519
521
|
ngxDatatableElement: [{ type: ViewChild, args: [NgxDatatableComponent, { read: ElementRef },] }],
|
|
@@ -581,4 +583,4 @@ __decorate([
|
|
|
581
583
|
__decorate([
|
|
582
584
|
InputBoolean()
|
|
583
585
|
], DatatableComponent.prototype, "scrollbarH", void 0);
|
|
584
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvZGF0YXRhYmxlL2RhdGF0YWJsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN6RSxPQUFPLEVBQWdCLFdBQVcsRUFBZSxNQUFNLHVCQUF1QixDQUFBO0FBQzlFLE9BQU8sRUFDYSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFDbkYsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFDM0QsZUFBZSxFQUFxQixNQUFNLEVBQTBCLFNBQVMsRUFDOUUsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDNUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2xHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBRXZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQzVGLE9BQU8sRUFDTCxVQUFVLEVBS1Ysa0JBQWtCLElBQUkscUJBQXFCLEVBQzNDLDJCQUEyQixFQUMzQixpQkFBaUIsRUFDakIsUUFBUSxFQUVSLGtCQUFrQixFQUVuQixNQUFNLHVCQUF1QixDQUFBO0FBRzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0s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OzZEQUFtQztBQUVuQztJQUFkLFdBQVcsRUFBRTtpREFBMEI7QUFDeEI7SUFBZixXQUFXLENBQUMsQ0FBQyxDQUFDO2lEQUFrQjtBQUNqQjtJQUFmLFdBQVcsQ0FBQyxDQUFDLENBQUM7a0RBQW1CO0FBRWxCO0lBQWYsWUFBWSxFQUFFOzREQUFrQztBQUlqQztJQUFmLFlBQVksRUFBRTt1REFBNEI7QUFDM0I7SUFBZixZQUFZLEVBQUU7dURBQTZCO0FBdUM1QjtJQUFmLFlBQVksRUFBRTtpRUFBdUM7QUFJdEM7SUFBZixZQUFZLEVBQUU7K0RBQXFDO0FBSXBDO0lBQWYsWUFBWSxFQUFFO3NEQUE0QjtBQUM1QjtJQUFkLFdBQVcsRUFBRTt5REFBMkI7QUFHekI7SUFBZixZQUFZLEVBQUU7MERBQStCO0FBRS9CO0lBQWQsV0FBVyxFQUFFO3dEQUEwQjtBQUN6QjtJQUFkLFdBQVcsRUFBRTtxREFBdUI7QUFDdEI7SUFBZCxXQUFXLEVBQUU7d0RBQTBCO0FBRXhCO0lBQWYsWUFBWSxFQUFFO3NEQUEyQjtBQUMxQjtJQUFmLFlBQVksRUFBRTtzREFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUFycmF5LCBOdW1iZXJJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbidcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIEluamVjdGlvblRva2VuLCBJbnB1dCwgS2V5VmFsdWVEaWZmZXIsXG4gIEtleVZhbHVlRGlmZmVycywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgY29uY2F0TWFwLCBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IERhdGF0YWJsZURhdGFTb3VyY2UgfSBmcm9tICcuLy4uL21vZGVscy9kYXRhdGFibGUtZGF0YS1zb3VyY2UnXG5cbmltcG9ydCB7IGZhQ2hldnJvbkRvd24sIGZhQ2hldnJvblJpZ2h0LCBmYVNwaW5uZXIgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnXG5pbXBvcnQge1xuICBDb2x1bW5Nb2RlLFxuICBDb250ZXh0bWVudVR5cGUsXG4gIERhdGFUYWJsZUNvbHVtbkNlbGxUcmVlVG9nZ2xlLFxuICBEYXRhVGFibGVDb2x1bW5EaXJlY3RpdmUsXG4gIERhdGFUYWJsZUNvbHVtbkhlYWRlckRpcmVjdGl2ZSxcbiAgRGF0YXRhYmxlQ29tcG9uZW50IGFzIE5neERhdGF0YWJsZUNvbXBvbmVudCxcbiAgRGF0YXRhYmxlUm93RGV0YWlsRGlyZWN0aXZlLFxuICBzZXRDb2x1bW5EZWZhdWx0cyxcbiAgU29ydFR5cGUsXG4gIFRhYmxlQ29sdW1uLFxuICB0cmFuc2xhdGVUZW1wbGF0ZXMsXG4gIFRyZWVTdGF0dXNcbn0gZnJvbSAnQG1hcmtsYi9uZ3gtZGF0YXRhYmxlJ1xuaW1wb3J0IHR5cGUgeyBTZWxlY3Rpb25UeXBlIH0gZnJvbSAnQG1hcmtsYi9uZ3gtZGF0YXRhYmxlJ1xuXG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4sIElucHV0TnVtYmVyIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2NvcmUnXG5pbXBvcnQgeyBjb21wb3NlRGF0YUZpbHRlcnMsIGNvbXBvc2VEYXRhRmlsdGVyU3RhdGVzLCBEYXRhRmlsdGVyU3RhdGUsIElEYXRhRmlsdGVyIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2RhdGEtZmlsdGVycydcbmltcG9ydCB7IElFbGVtZW50UmVzaXplZEV2ZW50IH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3NoYXJlZCdcbmltcG9ydCB7IGhhc1Byb3BlcnR5LCBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5cbmltcG9ydCB7IENvbGxlY3Rpb25WaWV3ZXIsIERhdGFTb3VyY2UsIGlzRGF0YVNvdXJjZSwgTGlzdFJhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJ1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IERhdGF0YWJsZUFjdGlvbk1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9kYXRhdGFibGUtYWN0aW9uLW1lbnUvZGF0YXRhYmxlLWFjdGlvbi1tZW51LmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGF0YWJsZS1jb2x1bW4vZGF0YXRhYmxlLWNvbHVtbi5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVNZW51QmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0YXRhYmxlLW1lbnUtYmFyL2RhdGF0YWJsZS1tZW51LWJhci5jb21wb25lbnQnXG5pbXBvcnQgeyBUaGVTZWFtRGF0YXRhYmxlUm93RGV0YWlsRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGF0YXRhYmxlLXJvdy1kZXRhaWwvZGF0YXRhYmxlLXJvdy1kZXRhaWwuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRGF0YXRhYmxlUm93QWN0aW9uSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLXJvdy1hY3Rpb24taXRlbS5kaXJlY3RpdmUnXG5pbXBvcnQgeyBUaGVTZWFtRGF0YXRhYmxlQWNjZXNzb3IgfSBmcm9tICcuLi9tb2RlbHMvZGF0YXRhYmxlLWFjY2Vzc29yJ1xuaW1wb3J0IHsgVGhlU2VhbVBhZ2VJbmZvIH0gZnJvbSAnLi4vbW9kZWxzL3BhZ2UtaW5mbydcbmltcG9ydCB7IFNvcnRFdmVudCB9IGZyb20gJy4uL21vZGVscy9zb3J0LWV2ZW50J1xuaW1wb3J0IHsgU29ydEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvc29ydC1pdGVtJ1xuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUNvbHVtbiB9IGZyb20gJy4uL21vZGVscy90YWJsZS1jb2x1bW4nXG5pbXBvcnQgeyBEYXRhdGFibGVDb2x1bW5DaGFuZ2VzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RhdGF0YWJsZS1jb2x1bW4tY2hhbmdlcy5zZXJ2aWNlJ1xuaW1wb3J0IHsgRGF0YXRhYmxlUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZGF0YXRhYmxlLXByZWZlcmVuY2VzLnNlcnZpY2UnXG5pbXBvcnQgeyBUSEVTRUFNX0RBVEFUQUJMRV9BQ0NFU1NPUiB9IGZyb20gJy4uL3Rva2Vucy9kYXRhdGFibGUtYWNjZXNzb3InXG5cbmV4cG9ydCBmdW5jdGlvbiBfc2V0Q29sdW1uRGVmYXVsdHMoY29sdW1uczogVGhlU2VhbURhdGF0YWJsZUNvbHVtbltdKTogdm9pZCB7XG4gIGZvciAoY29uc3QgY29sdW1uIG9mIGNvbHVtbnMpIHtcbiAgICBpZiAoIWNvbHVtbi5oYXNPd25Qcm9wZXJ0eSgnaGlkZGVuJykpIHtcbiAgICAgIGNvbHVtbi5oaWRkZW4gPSBmYWxzZVxuICAgIH1cbiAgfVxuICBzZXRDb2x1bW5EZWZhdWx0cyhjb2x1bW5zKVxufVxuXG4vKipcbiAqIE5PVEU6IFRoaXMgaXMgc3RpbGwgYmVpbmcgd29ya2VkIG9uLiBJIGFtIHRyeWluZyB0byBmaWd1cmUgb3V0IHRoaXMgbW9kZWxcbiAqIGJlY2F1c2UgYG5neC1kYXRhdGFibGVgIGp1c3QgdXNlcyBhbiB1bnR5cGVkIG9iamVjdCBhbmQgc2V0cyBwcm9wZXJ0aWVzIGluXG4gKiBtdWx0aXBsZSBwbGFjZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNlbGxDb250ZXh0IHtcbiAgYWxsUm93c1NlbGVjdGVkOiBmYWxzZVxuXG4gIHNlbGVjdEZuOiAoKSA9PiBhbnlcbiAgc29ydERpcj86ICdhc2MnIHwgJ2Rlc2MnXG4gIHNvcnRGbjogKCkgPT4gYW55XG5cbiAgZXhwYW5kZWQ/OiBib29sZWFuXG5cbiAgb25DaGVja2JveENoYW5nZUZuPzogYW55XG4gIGFjdGl2YXRlRm4/OiBhbnlcbiAgcm93PzogYW55XG4gIGdyb3VwPzogYW55XG4gIHZhbHVlPzogYW55XG4gIGNvbHVtbj86IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5cbiAgcm93SGVpZ2h0PzogbnVtYmVyXG4gIGlzU2VsZWN0ZWQ/OiBib29sZWFuXG4gIHJvd0luZGV4PzogbnVtYmVyXG4gIHRyZWVTdGF0dXM/OiBUcmVlU3RhdHVzXG4gIG9uVHJlZUFjdGlvbj86IGFueVxufVxuXG4vKipcbiAqIEludGVuZGVkIGZvciBpbnRlcm5hbCBjbGFzc2VzIGRlY2xhcmVkIGJ5IHRoZSBgVGhlU2VhbURhdGF0YWJsZU1vZHVsZWAuXG4gKi9cbmV4cG9ydCBjb25zdCBUSEVTRUFNX0RBVEFUQUJMRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJRGF0YUZpbHRlcj4oJ0xpYkRhdGF0YWJsZScpXG5cbmV4cG9ydCBjb25zdCBfVEhFU0VBTV9EQVRBVEFCTEU6IGFueSA9IHtcbiAgcHJvdmlkZTogVEhFU0VBTV9EQVRBVEFCTEUsXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby11c2UtYmVmb3JlLWRlY2xhcmVcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0YXRhYmxlQ29tcG9uZW50KVxufVxuXG5leHBvcnQgY29uc3QgX1RIRVNFQU1fREFUQVRBQkxFX0FDQ0VTU09SOiBhbnkgPSB7XG4gIHByb3ZpZGU6IFRIRVNFQU1fREFUQVRBQkxFX0FDQ0VTU09SLFxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tdXNlLWJlZm9yZS1kZWNsYXJlXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGF0YWJsZUNvbXBvbmVudClcbn1cblxuLy8gVE9ETzogUmVkdWNlIHJlbGlhbmNlIG9uIEJlaGF2aW9yU3ViamVjdCBiYXNlZCBvYnNlcnZhYmxlcywgYmVjYXVzZSBpdCBzaG91bGRcbi8vIGJlIGVhc2llciB0byBhdm9pdCBvdmVyIGVtaXR0aW5nIG9ic2VydmFibGVzLlxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VhbS1kYXRhdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignc2xpZGVEb3duJywgW1xuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTIwJSknLCBvcGFjaXR5OiAnMCcgfSksXG4gICAgICAgIGFuaW1hdGUoJzI1MG1zJywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDApJywgb3BhY2l0eTogJzEnIH0pKSxcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknLCBvcGFjaXR5OiAnMScgfSksXG4gICAgICAgIGFuaW1hdGUoJzI1MG1zJywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC0yMCUpJywgb3BhY2l0eTogJzAnIH0pKSxcbiAgICAgIF0pXG4gICAgXSlcbiAgXSxcbiAgcHJvdmlkZXJzOiBbIF9USEVTRUFNX0RBVEFUQUJMRSwgRGF0YXRhYmxlQ29sdW1uQ2hhbmdlc1NlcnZpY2UsIF9USEVTRUFNX0RBVEFUQUJMRV9BQ0NFU1NPUiBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGF0YWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0LCBUaGVTZWFtRGF0YXRhYmxlQWNjZXNzb3IsIENvbGxlY3Rpb25WaWV3ZXIge1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZXh0ZXJuYWxQYWdpbmc6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZXh0ZXJuYWxTb3J0aW5nOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2V4dGVybmFsRmlsdGVyaW5nOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2xvYWRpbmdJbmRpY2F0b3I6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcmVvcmRlcmFibGU6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfc3dhcENvbHVtbnM6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZ3JvdXBFeHBhbnNpb25EZWZhdWx0OiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3NlbGVjdEFsbFJvd3NPblBhZ2U6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfc3VtbWFyeVJvdzogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV92aXJ0dWFsaXphdGlvbjogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zY3JvbGxiYXJWOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3Njcm9sbGJhckg6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbGltaXQ6IE51bWJlcklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9jb3VudDogTnVtYmVySW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX29mZnNldDogTnVtYmVySW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2hlYWRlckhlaWdodDogTnVtYmVySW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3Jvd0hlaWdodDogTnVtYmVySW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Zvb3RlckhlaWdodDogTnVtYmVySW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3N1bW1hcnlIZWlnaHQ6IE51bWJlcklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9jb2x1bW5zOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10gfCB1bmRlZmluZWQgfCBudWxsXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zb3J0czogU29ydEl0ZW1bXSB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBmYUNoZXZyb25Eb3duID0gZmFDaGV2cm9uRG93blxuICBmYUNoZXZyb25SaWdodCA9IGZhQ2hldnJvblJpZ2h0XG4gIGZhU3Bpbm5lciA9IGZhU3Bpbm5lclxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlcnNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJRGF0YUZpbHRlcltdPihbXSlcbiAgcHJpdmF0ZSByZWFkb25seSBfY29sdW1uc09ic2VydmFibGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE9ic2VydmFibGU8VGhlU2VhbURhdGF0YWJsZUNvbHVtbltdPiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhU291cmNlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0YVNvdXJjZTxhbnk+IHwgYW55W10gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcblxuICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyU3RhdGVzOiBPYnNlcnZhYmxlPERhdGFGaWx0ZXJTdGF0ZVtdPlxuXG4gIGdldCBmaWx0ZXJzKCk6IElEYXRhRmlsdGVyW10geyByZXR1cm4gdGhpcy5fZmlsdGVyc1N1YmplY3QudmFsdWUgfVxuXG4gIHB1YmxpYyByZWFkb25seSBmaWx0ZXJzJDogT2JzZXJ2YWJsZTxJRGF0YUZpbHRlcltdPlxuXG4gIEBJbnB1dCgpXG4gIGdldCBwcmVmZXJlbmNlc0tleSgpOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsIHsgcmV0dXJuIHRoaXMuX3ByZWZlcmVuY2VzS2V5LnZhbHVlIH1cbiAgc2V0IHByZWZlcmVuY2VzS2V5KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsKSB7IHRoaXMuX3ByZWZlcmVuY2VzS2V5Lm5leHQodmFsdWUgfHwgdW5kZWZpbmVkKSB9XG4gIHByaXZhdGUgX3ByZWZlcmVuY2VzS2V5ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsPih1bmRlZmluZWQpXG5cbiAgQElucHV0KCkgdGFyZ2V0TWFya2VyVGVtcGxhdGU6IGFueVxuXG4gIEBJbnB1dCgpXG4gIGdldCBjb2x1bW5zKCk6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXSB7IHJldHVybiB0aGlzLl9jb2x1bW5zLnZhbHVlIH1cbiAgc2V0IGNvbHVtbnModmFsdWU6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXSkge1xuICAgIC8vIGNvbnNvbGUubG9nKCdjb2x1bW5zIGlucHV0JywgdmFsdWUpXG4gICAgdGhpcy5fY29sdW1ucy5uZXh0KEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbXSlcbiAgfVxuICBwcml2YXRlIF9jb2x1bW5zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10+KFtdKVxuXG4gIEBJbnB1dCgpXG4gIGdldCByb3dzKCk6IGFueVtdIHsgcmV0dXJuIHRoaXMuX3Jvd3MudmFsdWUgfVxuICBzZXQgcm93cyh2YWx1ZTogYW55W10pIHsgdGhpcy5fcm93cy5uZXh0KHZhbHVlIHx8IFtdKSB9XG4gIHByaXZhdGUgX3Jvd3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSlcblxuICBwdWJsaWMgcm93cyQ6IE9ic2VydmFibGU8YW55W10+XG5cbiAgQElucHV0KCkgY29sdW1uTW9kZTogQ29sdW1uTW9kZSB8IHVuZGVmaW5lZCB8IG51bGwgPSBDb2x1bW5Nb2RlLmZvcmNlXG5cbiAgQElucHV0KCkgZ3JvdXBSb3dzQnk6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcbiAgQElucHV0KCkgZ3JvdXBlZFJvd3M6IGFueVtdIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIEBJbnB1dCgpIHNlbGVjdGVkOiBhbnlbXSB8IHVuZGVmaW5lZCB8IG51bGwgPSBbXVxuXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBleHRlcm5hbFBhZ2luZzogYm9vbGVhbiA9IGZhbHNlXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBleHRlcm5hbFNvcnRpbmc6IGJvb2xlYW4gPSBmYWxzZVxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgZXh0ZXJuYWxGaWx0ZXJpbmc6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIEBJbnB1dCgpIEBJbnB1dE51bWJlcigpIGxpbWl0OiBudW1iZXIgfCB1bmRlZmluZWRcbiAgQElucHV0KCkgQElucHV0TnVtYmVyKDApIGNvdW50OiBudW1iZXIgPSAwXG4gIEBJbnB1dCgpIEBJbnB1dE51bWJlcigwKSBvZmZzZXQ6IG51bWJlciA9IDBcblxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgbG9hZGluZ0luZGljYXRvcjogYm9vbGVhbiA9IGZhbHNlXG5cbiAgQElucHV0KCkgc2VsZWN0aW9uVHlwZTogU2VsZWN0aW9uVHlwZSB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgcmVvcmRlcmFibGU6IGJvb2xlYW4gPSB0cnVlXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzd2FwQ29sdW1uczogYm9vbGVhbiA9IGZhbHNlXG5cbiAgQElucHV0KCkgc29ydFR5cGU6IFNvcnRUeXBlIHwgdW5kZWZpbmVkIHwgbnVsbCA9IFNvcnRUeXBlLnNpbmdsZVxuXG4gIEBJbnB1dCgpXG4gIGdldCBzb3J0cygpOiBTb3J0SXRlbVtdIHsgcmV0dXJuIHRoaXMubmd4RGF0YXRhYmxlID8gdGhpcy5uZ3hEYXRhdGFibGUuc29ydHMgOiB0aGlzLl9zb3J0cyB9XG4gIHNldCBzb3J0cyh2YWx1ZTogU29ydEl0ZW1bXSkge1xuICAgIHRoaXMuX3NvcnRzID0gbm90TnVsbE9yVW5kZWZpbmVkKHZhbHVlKSA/IGNvZXJjZUFycmF5KHZhbHVlKSA6IFtdXG4gIH1cbiAgX3NvcnRzOiBTb3J0SXRlbVtdID0gW11cblxuICBASW5wdXQoKSBjc3NDbGFzc2VzOiBhbnkgfCB1bmRlZmluZWQgfCBudWxsID0ge1xuICAgIHNvcnRBc2NlbmRpbmc6ICdkYXRhdGFibGUtaWNvbi11cCcsXG4gICAgc29ydERlc2NlbmRpbmc6ICdkYXRhdGFibGUtaWNvbi1kb3duJyxcbiAgICBwYWdlckxlZnRBcnJvdzogJ2RhdGF0YWJsZS1pY29uLWxlZnQnLFxuICAgIHBhZ2VyUmlnaHRBcnJvdzogJ2RhdGF0YWJsZS1pY29uLXJpZ2h0JyxcbiAgICBwYWdlclByZXZpb3VzOiAnZGF0YXRhYmxlLWljb24tcHJldicsXG4gICAgcGFnZXJOZXh0OiAnZGF0YXRhYmxlLWljb24tc2tpcCdcbiAgfVxuXG4gIEBJbnB1dCgpIG1lc3NhZ2VzOiBhbnkgfCB1bmRlZmluZWQgfCBudWxsID0ge1xuICAgIC8vIE1lc3NhZ2UgdG8gc2hvdyB3aGVuIGFycmF5IGlzIHByZXNlbnRlZFxuICAgIC8vIGJ1dCBjb250YWlucyBubyB2YWx1ZXNcbiAgICBlbXB0eU1lc3NhZ2U6ICdObyByZWNvcmRzIGZvdW5kJyxcblxuICAgIC8vIEZvb3RlciB0b3RhbCBtZXNzYWdlXG4gICAgdG90YWxNZXNzYWdlOiAndG90YWwnLFxuXG4gICAgLy8gRm9vdGVyIHNlbGVjdGVkIG1lc3NhZ2VcbiAgICBzZWxlY3RlZE1lc3NhZ2U6ICdzZWxlY3RlZCdcbiAgfVxuXG4gIEBJbnB1dCgpIHJvd0lkZW50aXR5OiAoKHg6IGFueSkgPT4gYW55KSB8IHVuZGVmaW5lZCB8IG51bGwgPSAoKHg6IGFueSkgPT4geClcblxuICBASW5wdXQoKSByb3dDbGFzczogYW55IHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIEBJbnB1dCgpIHNlbGVjdENoZWNrOiBhbnkgfCB1bmRlZmluZWQgfCBudWxsXG4gIEBJbnB1dCgpIGRpc3BsYXlDaGVjazogKChyb3c6IGFueSwgY29sdW1uPzogYW55LCB2YWx1ZT86IGFueSkgPT4gYm9vbGVhbikgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGdyb3VwRXhwYW5zaW9uRGVmYXVsdDogYm9vbGVhbiA9IGZhbHNlXG5cbiAgQElucHV0KCkgdHJhY2tCeVByb3A6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgc2VsZWN0QWxsUm93c09uUGFnZTogYm9vbGVhbiA9IGZhbHNlXG5cbiAgQElucHV0KCkgdHJlZUZyb21SZWxhdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbFxuICBASW5wdXQoKSB0cmVlVG9SZWxhdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbFxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgc3VtbWFyeVJvdzogYm9vbGVhbiA9IGZhbHNlXG4gIEBJbnB1dCgpIEBJbnB1dE51bWJlcigpIHN1bW1hcnlIZWlnaHQ6IG51bWJlciA9IDMwXG4gIEBJbnB1dCgpIHN1bW1hcnlQb3NpdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCA9ICd0b3AnXG5cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHZpcnR1YWxpemF0aW9uOiBib29sZWFuID0gdHJ1ZVxuXG4gIEBJbnB1dCgpIEBJbnB1dE51bWJlcigpIGhlYWRlckhlaWdodDogbnVtYmVyID0gNTBcbiAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgcm93SGVpZ2h0OiBudW1iZXIgPSA1MFxuICBASW5wdXQoKSBASW5wdXROdW1iZXIoKSBmb290ZXJIZWlnaHQ6IG51bWJlciA9IDQwXG5cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHNjcm9sbGJhclY6IGJvb2xlYW4gPSB0cnVlXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzY3JvbGxiYXJIOiBib29sZWFuID0gdHJ1ZVxuXG4gIEBJbnB1dCgpXG4gIHNldCBkYXRhU291cmNlKHZhbHVlOiBEYXRhU291cmNlPGFueT4gfCBhbnlbXSB8IHVuZGVmaW5lZCB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRhdGFibGVEYXRhU291cmNlKSB7XG4gICAgICB2YWx1ZS5zZXREYXRhdGFibGVBY2Nlc3Nvcih0aGlzKVxuICAgIH1cbiAgICB0aGlzLl9kYXRhU291cmNlU3ViamVjdC5uZXh0KHZhbHVlIHx8IHVuZGVmaW5lZClcbiAgfVxuXG4gIEBPdXRwdXQoKSByZWFkb25seSBzY3JvbGwgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBAT3V0cHV0KCkgcmVhZG9ubHkgYWN0aXZhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNvcnQgPSBuZXcgRXZlbnRFbWl0dGVyPFNvcnRFdmVudD4oKVxuICBAT3V0cHV0KCkgcmVhZG9ubHkgcGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGhlU2VhbVBhZ2VJbmZvPigpXG4gIEBPdXRwdXQoKSByZWFkb25seSByZW9yZGVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHJlc2l6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gIEBPdXRwdXQoKSByZWFkb25seSB0YWJsZUNvbnRleHRtZW51ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGV2ZW50OiBNb3VzZUV2ZW50LCB0eXBlOiBDb250ZXh0bWVudVR5cGUsIGNvbnRlbnQ6IGFueSB9PihmYWxzZSlcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHRyZWVBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuXG4gIEBPdXRwdXQoKSByZWFkb25seSBhY3Rpb25SZWZyZXNoUmVxdWVzdCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKVxuICBAT3V0cHV0KCkgcmVhZG9ubHkgaGlkZGVuQ29sdW1uc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KClcblxuICBAQ29udGVudENoaWxkcmVuKERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudCkgY29sdW1uQ29tcG9uZW50cz86IFF1ZXJ5TGlzdDxEYXRhdGFibGVDb2x1bW5Db21wb25lbnQ+XG5cbiAgQENvbnRlbnRDaGlsZChEYXRhdGFibGVBY3Rpb25NZW51Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBhY3Rpb25NZW51PzogRGF0YXRhYmxlQWN0aW9uTWVudUNvbXBvbmVudFxuICBAQ29udGVudENoaWxkKERhdGF0YWJsZVJvd0FjdGlvbkl0ZW1EaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIHJvd0FjdGlvbkl0ZW0/OiBEYXRhdGFibGVSb3dBY3Rpb25JdGVtRGlyZWN0aXZlXG4gIEBDb250ZW50Q2hpbGQoVGhlU2VhbURhdGF0YWJsZVJvd0RldGFpbERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgcm93RGV0YWlsPzogVGhlU2VhbURhdGF0YWJsZVJvd0RldGFpbERpcmVjdGl2ZVxuXG4gIEBDb250ZW50Q2hpbGQoRGF0YXRhYmxlTWVudUJhckNvbXBvbmVudClcbiAgZ2V0IG1lbnVCYXJDb21wb25lbnQoKTogRGF0YXRhYmxlTWVudUJhckNvbXBvbmVudCB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLl9tZW51QmFyQ29tcG9uZW50IH1cbiAgc2V0IG1lbnVCYXJDb21wb25lbnQodmFsdWU6IERhdGF0YWJsZU1lbnVCYXJDb21wb25lbnQgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9tZW51QmFyQ29tcG9uZW50ID0gdmFsdWVcblxuICAgIGlmICh0aGlzLl9tZW51QmFyU3ViKSB7IHRoaXMuX21lbnVCYXJTdWIudW5zdWJzY3JpYmUoKSB9XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX3NldE1lbnVCYXJGaWx0ZXJzKHZhbHVlLmZpbHRlcnMoKSlcblxuICAgICAgdGhpcy5fbWVudUJhclN1YiA9IHRoaXMuX21lbnVCYXJDb21wb25lbnQ/LmZpbHRlcnNDaGFuZ2VkXG4gICAgICAgIC5zdWJzY3JpYmUodiA9PiB7IHRoaXMuX3NldE1lbnVCYXJGaWx0ZXJzKHZhbHVlLmZpbHRlcnMoKSkgfSlcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfbWVudUJhckNvbXBvbmVudDogRGF0YXRhYmxlTWVudUJhckNvbXBvbmVudCB8IHVuZGVmaW5lZFxuICBwcml2YXRlIF9tZW51QmFyU3ViOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWRcblxuICBAVmlld0NoaWxkKE5neERhdGF0YWJsZUNvbXBvbmVudCkgbmd4RGF0YXRhYmxlPzogTmd4RGF0YXRhYmxlQ29tcG9uZW50XG4gIEBWaWV3Q2hpbGQoTmd4RGF0YXRhYmxlQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgbmd4RGF0YXRhYmxlRWxlbWVudD86IEVsZW1lbnRSZWZcbiAgQFZpZXdDaGlsZChEYXRhdGFibGVSb3dEZXRhaWxEaXJlY3RpdmUpIG5neFJvd0RldGFpbD86IERhdGF0YWJsZVJvd0RldGFpbERpcmVjdGl2ZVxuXG4gIEBWaWV3Q2hpbGQoJ2FjdGlvbk1lbnVDZWxsVHBsJywgeyBzdGF0aWM6IHRydWUgfSkgYWN0aW9uTWVudUNlbGxUcGw/OiBUZW1wbGF0ZVJlZjxEYXRhVGFibGVDb2x1bW5EaXJlY3RpdmU+XG4gIEBWaWV3Q2hpbGQoJ3RyZWVUb2dnbGVUcGwnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0cmVlVG9nZ2xlVHBsPzogVGVtcGxhdGVSZWY8RGF0YVRhYmxlQ29sdW1uQ2VsbFRyZWVUb2dnbGU+XG4gIEBWaWV3Q2hpbGQoJ2hlYWRlclRwbCcsIHsgc3RhdGljOiB0cnVlIH0pIGhlYWRlclRwbD86IFRlbXBsYXRlUmVmPERhdGFUYWJsZUNvbHVtbkhlYWRlckRpcmVjdGl2ZT5cbiAgQFZpZXdDaGlsZCgnYmxhbmtIZWFkZXJUcGwnLCB7IHN0YXRpYzogdHJ1ZSB9KSBibGFua0hlYWRlclRwbD86IFRlbXBsYXRlUmVmPERhdGFUYWJsZUNvbHVtbkhlYWRlckRpcmVjdGl2ZT5cbiAgQFZpZXdDaGlsZCgnY2VsbFR5cGVTZWxlY3RvclRwbCcsIHsgc3RhdGljOiB0cnVlIH0pIGNlbGxUeXBlU2VsZWN0b3JUcGw/OiBUZW1wbGF0ZVJlZjxEYXRhVGFibGVDb2x1bW5EaXJlY3RpdmU+XG5cbiAgcHVibGljIGNvbHVtbkNvbXBvbmVudHMkPzogT2JzZXJ2YWJsZTxEYXRhdGFibGVDb2x1bW5Db21wb25lbnRbXT5cbiAgcHJpdmF0ZSBfY29sRGlmZmVyc0lucDogeyBbcHJvcE5hbWU6IHN0cmluZ106IEtleVZhbHVlRGlmZmVyPGFueSwgYW55PiB9ID0ge31cbiAgcHJpdmF0ZSBfY29sRGlmZmVyc1RwbDogeyBbcHJvcE5hbWU6IHN0cmluZ106IEtleVZhbHVlRGlmZmVyPGFueSwgYW55PiB9ID0ge31cblxuICBwdWJsaWMgcmVhZG9ubHkgY29sdW1ucyQ6IE9ic2VydmFibGU8VGhlU2VhbURhdGF0YWJsZUNvbHVtbltdPlxuICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheUNvbHVtbnMkOiBPYnNlcnZhYmxlPFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXT5cblxuICB2aWV3Q2hhbmdlOiBPYnNlcnZhYmxlPExpc3RSYW5nZT5cblxuICBwcml2YXRlIF9yb3dEZXRhaWxUb2dnbGVTdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFlcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb2x1bW5DaGFuZ2VzU2VydmljZTogRGF0YXRhYmxlQ29sdW1uQ2hhbmdlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGlmZmVyczogS2V5VmFsdWVEaWZmZXJzLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ByZWZlcmVuY2VzOiBEYXRhdGFibGVQcmVmZXJlbmNlc1NlcnZpY2VcbiAgKSB7XG4gICAgLy8gdGhpcy5kaXNwbGF5Q29sdW1ucyQgPSB0aGlzLmhpZGRlbkNvbHVtbnMkLnBpcGUoXG4gICAgLy8gICBzd2l0Y2hNYXAoaGlkZGVuQ29sdW1ucyA9PiB0aGlzLmNvbHVtbnMkLnBpcGUobWFwKGNvbHMgPT4gY29scy5maWx0ZXIoYyA9PiBoaWRkZW5Db2x1bW5zLmZpbmRJbmRleChoYyA9PiBoYyA9PT0gYy5wcm9wKSA9PT0gLTEpKSkpXG4gICAgLy8gKVxuXG4gICAgY29uc3QgYXBwbHlQcmVmcyA9IChjb2xzOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10pID0+IHRoaXMuX3ByZWZlcmVuY2VzS2V5LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAobmFtZSA9PiAhIW5hbWVcbiAgICAgICAgLy8gTk9URTogVGhpcyBwZW5kaW5nIGNoZWNrIGlzIHRlbXBvcmFyeSB0byBhdm9pZCB0YWJsZSB1c2luZyBwcmV2aW91c2x5XG4gICAgICAgIC8vIHJldHJpZXZlZCBwcmVmZXJlbmNlIHdoaWxlIHRoZSBuZXcgb25lIGlzIGJlaW5nIHVwZGF0ZWQgb24gdGhlXG4gICAgICAgIC8vIHNlcnZlci5cbiAgICAgICAgPyAhdGhpcy5fcHJlZmVyZW5jZXMucGVuZGluZ1xuICAgICAgICAgID8gdGhpcy5fcHJlZmVyZW5jZXMud2l0aENvbHVtblByZWZlcmVuY2VzKG5hbWUsIGNvbHMpXG4gICAgICAgICAgOiBvZihjb2xzKVxuICAgICAgICA6IG9mKGNvbHMpXG4gICAgICApXG4gICAgKVxuXG4gICAgdGhpcy5jb2x1bW5zJCA9IHRoaXMuX2NvbHVtbnNPYnNlcnZhYmxlLnBpcGUoc3dpdGNoTWFwKGNvbHNPYnMgPT4gY29sc09icyA/PyBvZihbXSkpKVxuXG4gICAgdGhpcy5kaXNwbGF5Q29sdW1ucyQgPSB0aGlzLmNvbHVtbnMkLnBpcGUoXG4gICAgICBtYXAoY29scyA9PiBjb2xzLmZpbHRlcihjID0+ICFjLmhpZGRlbikpLFxuICAgICAgdGFwKHYgPT4gdGhpcy5fcmVtb3ZlVW51c2VkRGlmZnModikpLFxuICAgICAgc3dpdGNoTWFwKGNvbHMgPT4gYXBwbHlQcmVmcyhjb2xzKSksXG4gICAgKVxuXG4gICAgdGhpcy5maWx0ZXJzJCA9IHRoaXMuX2ZpbHRlcnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpXG5cbiAgICB0aGlzLmZpbHRlclN0YXRlcyA9IHRoaXMuX2ZpbHRlcnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoZmlsdGVycyA9PiBjb21wb3NlRGF0YUZpbHRlclN0YXRlcyhmaWx0ZXJzKSlcbiAgICApXG5cbiAgICAvLyB0aGlzLnJvd3MkID0gdGhpcy5fZmlsdGVyc1N1YmplY3QuYXNPYnNlcnZhYmxlKClcbiAgICAvLyAgIC5waXBlKFxuICAgIC8vICAgICBzd2l0Y2hNYXAoZmlsdGVycyA9PiB7XG4gICAgLy8gICAgICAgaWYgKHRoaXMuZXh0ZXJuYWxGaWx0ZXJpbmcpIHtcbiAgICAvLyAgICAgICAgIHJldHVybiB0aGlzLl9yb3dzLmFzT2JzZXJ2YWJsZSgpXG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICAgIHJldHVybiB0aGlzLl9yb3dzLmFzT2JzZXJ2YWJsZSgpLnBpcGUoY29tcG9zZURhdGFGaWx0ZXJzKGZpbHRlcnMpKVxuICAgIC8vICAgICB9KVxuICAgIC8vICAgKVxuXG4gICAgdGhpcy5yb3dzJCA9IHRoaXMuX2RhdGFTb3VyY2VTdWJqZWN0LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoZGF0YVNvdXJjZSA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdkYXRhU291cmNlJywgZGF0YVNvdXJjZSlcbiAgICAgICAgbGV0IGRhdGFTdHJlYW06IE9ic2VydmFibGU8YW55W10+XG5cbiAgICAgICAgaWYgKGlzRGF0YVNvdXJjZShkYXRhU291cmNlKSkge1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCd+ZGF0YXNvdXJjZScpXG4gICAgICAgICAgZGF0YVN0cmVhbSA9IGRhdGFTb3VyY2UuY29ubmVjdCh0aGlzKSBhcyBhbnlcbiAgICAgICAgfSBlbHNlIGlmIChpc09ic2VydmFibGUoZGF0YVNvdXJjZSkpIHtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnfm9ic2VydmFibGUnKVxuICAgICAgICAgIGRhdGFTdHJlYW0gPSBkYXRhU291cmNlIGFzIGFueVxuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVNvdXJjZSkpIHtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnfmFycmF5JylcbiAgICAgICAgICBkYXRhU3RyZWFtID0gb2YoZGF0YVNvdXJjZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnfnJvd3MgZmFsbGJhY2snKVxuICAgICAgICAgIGRhdGFTdHJlYW0gPSB0aGlzLl9yb3dzLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAvLyAucGlwZSh0YXAodiA9PiBjb25zb2xlLmxvZygncm93c34nLCB2KSkpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuZXh0ZXJuYWxGaWx0ZXJpbmcpIHtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnbm90IHVzaW5nIGV4dGVybmFsRmlsdGVyaW5nJylcbiAgICAgICAgICBkYXRhU3RyZWFtID0gZGF0YVN0cmVhbS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKHJvd3MgPT4gdGhpcy5fZmlsdGVyc1N1YmplY3QucGlwZShcbiAgICAgICAgICAgICAgLy8gdGFwKHYgPT4gY29uc29sZS5sb2coJ2ZpbHRlcnMnLCB2KSksXG4gICAgICAgICAgICAgIGNvbmNhdE1hcChmaWx0ZXJzID0+IG9mKHJvd3MpLnBpcGUoY29tcG9zZURhdGFGaWx0ZXJzKGZpbHRlcnMpKSksXG4gICAgICAgICAgICAgIC8vIHRhcCh2ID0+IGNvbnNvbGUubG9nKCdjb21wb3NlZCBmaWx0ZXJzJywgdikpLFxuICAgICAgICAgICAgKSlcbiAgICAgICAgICApXG5cbiAgICAgICAgICAvLyBkYXRhU3RyZWFtID0gdGhpcy5fZmlsdGVyc1N1YmplY3QucGlwZShcbiAgICAgICAgICAvLyAgIHRhcCh2ID0+IGNvbnNvbGUubG9nKCdmaWx0ZXJzJywgdikpLFxuICAgICAgICAgIC8vICAgY29uY2F0TWFwKGZpbHRlcnMgPT4gZGF0YVN0cmVhbS5waXBlKGNvbXBvc2VEYXRhRmlsdGVycyhmaWx0ZXJzKSkpLFxuICAgICAgICAgIC8vICAgdGFwKHYgPT4gY29uc29sZS5sb2coJ2NvbXBvc2VkIGZpbHRlcnMnLCB2KSksXG4gICAgICAgICAgLy8gKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGFTdHJlYW0ucGlwZShcbiAgICAgICAgICAvLyB0YXAodiA9PiBjb25zb2xlLmxvZygnc3RyZWFtJywgdikpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKVxuICAgICAgICApXG4gICAgICB9KVxuICAgIClcblxuICAgIC8vIHRoaXMuaGlkZGVuQ29sdW1ucyQgPSB0aGlzLl9oaWRkZW5Db2x1bW5zLmFzT2JzZXJ2YWJsZSgpXG5cbiAgICAvLyB0aGlzLl9oaWRkZW5Db2x1bW5zLnBpcGUoXG4gICAgLy8gICBza2lwKDEpLFxuICAgIC8vICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IHtcbiAgICAvLyAgICAgY29uc3QgX2EgPSBBcnJheS5pc0FycmF5KGEpID8gYSA6IFtdXG4gICAgLy8gICAgIGNvbnN0IF9iID0gQXJyYXkuaXNBcnJheShiKSA/IGIgOiBbXVxuICAgIC8vICAgICBpZiAoX2EubGVuZ3RoICE9PSBfYi5sZW5ndGgpIHsgcmV0dXJuIGZhbHNlIH1cbiAgICAvLyAgICAgY29uc3QgX2FzID0gX2Euc29ydCgpXG4gICAgLy8gICAgIGNvbnN0IF9icyA9IF9iLnNvcnQoKVxuICAgIC8vICAgICByZXR1cm4gIV9hcy5zb3J0KCkuZXZlcnkoKHZhbHVlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IF9ic1tpbmRleF0gPT09IHZhbHVlKVxuICAgIC8vICAgfSksXG4gICAgLy8gICB0YXAodiA9PiB0aGlzLmhpZGRlbkNvbHVtbnNDaGFuZ2UuZW1pdCh2KSksXG4gICAgLy8gICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgIC8vICkuc3Vic2NyaWJlKHYgPT4gY29uc29sZS5sb2coJ2hpZGRlbkNvbHVtbnNDaGFuZ2UnLCB2KSlcblxuICAgIC8vIFRPRE86IEltcGxlbWVudCB2aWV3Q2hhbmdlIGZvciBDb2xsZWN0aW9uVmlld2VyLlxuICAgIHRoaXMudmlld0NoYW5nZSA9IHRoaXMucGFnZS5waXBlKG1hcChwID0+ICh7IHN0YXJ0OiAwLCBlbmQ6IHAuY291bnQgfSkpKVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMucm93RGV0YWlsKSB7XG4gICAgICB0aGlzLl9yb3dEZXRhaWxUb2dnbGVTdWJzY3JpcHRpb24gPSB0aGlzLnJvd0RldGFpbC5fdG9nZ2xlLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIGlmICh0aGlzLm5neFJvd0RldGFpbCkge1xuICAgICAgICAgIHRoaXMubmd4Um93RGV0YWlsLnRvZ2dsZS5lbWl0KGV2ZW50KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3Jvd0RldGFpbFRvZ2dsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5jb2x1bW5Db21wb25lbnRzJCA9IHRoaXMuX2NvbHVtbkNoYW5nZXNTZXJ2aWNlLmNvbHVtbklucHV0Q2hhbmdlcyQucGlwZShcbiAgICAgIG1hcCgoKSA9PiB0aGlzLmNvbHVtbkNvbXBvbmVudHM/LnRvQXJyYXkoKSA/PyBbXSksXG4gICAgICBzdGFydFdpdGgodGhpcy5jb2x1bW5Db21wb25lbnRzPy50b0FycmF5KCkgPz8gW10pLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgIClcblxuICAgIGNvbnN0IF9jb2x1bW5zID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNvbHVtbkNvbXBvbmVudHMkLFxuICAgICAgdGhpcy5fY29sdW1uc1xuICAgIF0pLnBpcGUoXG4gICAgICBtYXAodiA9PiB0aGlzLl9nZXRNZXJnZWRUcGxBbmRJbnBDb2x1bW5zKHZbMF0sIHZbMV0gPz8gW10pKSxcbiAgICAgIC8vIHRhcCh2ID0+IGNvbnNvbGUubG9nKCdjb2xzJywgdikpLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSxcbiAgICApXG4gICAgdGhpcy5fY29sdW1uc09ic2VydmFibGUubmV4dChfY29sdW1ucylcbiAgfVxuXG4gIHByaXZhdGUgX2dldE1lcmdlZFRwbEFuZElucENvbHVtbnMoXG4gICAgdHBsQ29sczogRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50W10sXG4gICAgaW5wQ29sczogVGhlU2VhbURhdGF0YWJsZUNvbHVtbltdXG4gICk6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXSB7XG4gICAgY29uc3QgY29sczogVGhlU2VhbURhdGF0YWJsZUNvbHVtbltdID0gW11cblxuICAgIGlmICh0aGlzLnNlbGVjdGlvblR5cGUgPT09ICdjaGVja2JveCcpIHtcbiAgICAgIGNvbnN0IGNoZWNrQm94Q29sOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uID0ge1xuICAgICAgICBwcm9wOiAnJCRfX2NoZWNrYm94X18nLFxuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgd2lkdGg6IDQwLFxuICAgICAgICBzb3J0YWJsZTogZmFsc2UsXG4gICAgICAgIGNhbkF1dG9SZXNpemU6IGZhbHNlLFxuICAgICAgICBkcmFnZ2FibGU6IGZhbHNlLFxuICAgICAgICByZXNpemVhYmxlOiBmYWxzZSxcbiAgICAgICAgaGVhZGVyQ2hlY2tib3hhYmxlOiB0cnVlLFxuICAgICAgICBjaGVja2JveGFibGU6IHRydWVcbiAgICAgIH1cblxuICAgICAgY29scy5wdXNoKGNoZWNrQm94Q29sKVxuICAgIH1cblxuICAgIGNvbnN0IF90cGxDb2xzID0gdHJhbnNsYXRlVGVtcGxhdGVzKDxhbnk+KHRwbENvbHMgfHwgW10pKVxuICAgIGZvciAoY29uc3QgY29sIG9mIGlucENvbHMpIHtcbiAgICAgIGNvbnN0IHRwbENvbCA9IF90cGxDb2xzLmZpbmQodCA9PiB0LnByb3AgPT09IGNvbC5wcm9wKVxuICAgICAgLy8gY29uc29sZS5sb2coeyBjb2w6IHsgLi4uKGNvbCB8fCB7fSkgfSwgdHBsQ29sOiB7IC4uLih0cGxDb2wgfHwge30pIH0gfSlcblxuICAgICAgY29uc3QgZHRDb2x1bW5zID0gKHRoaXMubmd4RGF0YXRhYmxlICYmIHRoaXMubmd4RGF0YXRhYmxlLl9pbnRlcm5hbENvbHVtbnMpIHx8IFtdXG4gICAgICBjb25zdCBwcmV2ID0gZHRDb2x1bW5zLmZpbmQoYyA9PiBjLnByb3AgPT09IGNvbC5wcm9wKVxuXG4gICAgICBjb25zdCBpbnBDb2xEaWZmID0gdGhpcy5fZ2V0Q29sRGlmZihjb2wpXG4gICAgICBjb25zdCBfaW5wQ29sID0gaW5wQ29sRGlmZiA/IHt9IDogdGhpcy5faGFzUHJldkNvbERpZmYoY29sKSA/IHt9IDogY29sXG4gICAgICBpZiAoaW5wQ29sRGlmZikge1xuICAgICAgICBpbnBDb2xEaWZmLmZvckVhY2hSZW1vdmVkSXRlbShyID0+IHtcbiAgICAgICAgICBpZiAocHJldiAmJiBwcmV2Lmhhc093blByb3BlcnR5KHIua2V5KSkge1xuICAgICAgICAgICAgY29uc3QgayA9IHIua2V5IGFzIGtleW9mIFRhYmxlQ29sdW1uXG4gICAgICAgICAgICBkZWxldGUgcHJldltrXVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgaW5wQ29sRGlmZi5mb3JFYWNoQWRkZWRJdGVtKHIgPT4gKF9pbnBDb2wgYXMgYW55KVtyLmtleV0gPSByLmN1cnJlbnRWYWx1ZSlcbiAgICAgICAgaW5wQ29sRGlmZi5mb3JFYWNoQ2hhbmdlZEl0ZW0ociA9PiAoX2lucENvbCBhcyBhbnkpW3Iua2V5XSA9IHIuY3VycmVudFZhbHVlKVxuICAgICAgfVxuXG4gICAgICBsZXQgX3RwbENvbDogVGhlU2VhbURhdGF0YWJsZUNvbHVtbiA9IHt9XG4gICAgICBpZiAodHBsQ29sKSB7XG4gICAgICAgIGNvbnN0IHRwbENvbERpZmYgPSB0cGxDb2wgPyB0aGlzLl9nZXRDb2xEaWZmKHRwbENvbCwgdHJ1ZSkgOiB1bmRlZmluZWRcbiAgICAgICAgX3RwbENvbCA9IHRwbENvbERpZmYgPyB7fSA6IHRoaXMuX2hhc1ByZXZDb2xEaWZmKGNvbCwgdHJ1ZSkgPyB7fSA6IHRwbENvbFxuICAgICAgICBpZiAodHBsQ29sRGlmZikge1xuICAgICAgICAgIHRwbENvbERpZmYuZm9yRWFjaFJlbW92ZWRJdGVtKHIgPT4ge1xuICAgICAgICAgICAgaWYgKHByZXYgJiYgcHJldi5oYXNPd25Qcm9wZXJ0eShyLmtleSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgayA9IHIua2V5IGFzIGtleW9mIFRhYmxlQ29sdW1uXG4gICAgICAgICAgICAgIGRlbGV0ZSBwcmV2W2tdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgICB0cGxDb2xEaWZmLmZvckVhY2hBZGRlZEl0ZW0ociA9PiAoX3RwbENvbCBhcyBhbnkpW3Iua2V5XSA9IHIuY3VycmVudFZhbHVlKVxuICAgICAgICAgIHRwbENvbERpZmYuZm9yRWFjaENoYW5nZWRJdGVtKHIgPT4gKF90cGxDb2wgYXMgYW55KVtyLmtleV0gPSByLmN1cnJlbnRWYWx1ZSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBfY29sOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uID0ge1xuICAgICAgICAuLi4ocHJldiB8fCB7fSksXG4gICAgICAgIC4uLl9pbnBDb2wsXG4gICAgICAgIC4uLl90cGxDb2xcbiAgICAgIH1cblxuICAgICAgY29scy5wdXNoKF9jb2wpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMucm93QWN0aW9uSXRlbSkge1xuICAgICAgY29uc3QgYWN0aW9uTWVudUNvbHVtbjogVGhlU2VhbURhdGF0YWJsZUNvbHVtbiA9IHtcbiAgICAgICAgcHJvcDogJyQkX19hY3Rpb25NZW51X18nLFxuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgd2lkdGg6IDUwLFxuICAgICAgICBtaW5XaWR0aDogNTAsXG4gICAgICAgIG1heFdpZHRoOiA1MCxcbiAgICAgICAgcmVzaXplYWJsZTogZmFsc2UsXG4gICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgZHJhZ2dhYmxlOiBmYWxzZSxcbiAgICAgICAgLy8gVE9ETzogRml4IGNvbHVtbiBhdXRvIHNpemluZyB3aXRoIGZpeGVkIGNvbHVtbiBhbmQgY2VsbCBvdmVybGF5IGJlZm9yZSBlbmFibGluZy5cbiAgICAgICAgLy8gZnJvemVuUmlnaHQ6IHRydWUsXG4gICAgICAgIGNlbGxUZW1wbGF0ZTogdGhpcy5hY3Rpb25NZW51Q2VsbFRwbCxcbiAgICAgICAgaGVhZGVyVGVtcGxhdGU6IHRoaXMuYmxhbmtIZWFkZXJUcGxcbiAgICAgIH1cbiAgICAgIGNvbHMucHVzaChhY3Rpb25NZW51Q29sdW1uKVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgY29sIG9mIGNvbHMpIHtcbiAgICAgIGlmIChjb2wuaXNUcmVlQ29sdW1uICYmIGhhc1Byb3BlcnR5KGNvbCwgJ3RyZWVUb2dnbGVUZW1wbGF0ZScpKSB7XG4gICAgICAgIGNvbC50cmVlVG9nZ2xlVGVtcGxhdGUgPSB0aGlzLnRyZWVUb2dnbGVUcGxcbiAgICAgIH1cblxuICAgICAgaWYgKCFoYXNQcm9wZXJ0eShjb2wsICdoZWFkZXJUZW1wbGF0ZScpKSB7XG4gICAgICAgIGNvbC5oZWFkZXJUZW1wbGF0ZSA9IHRoaXMuaGVhZGVyVHBsXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQcm9wZXJ0eShjb2wsICdjZWxsVHlwZScpKSB7XG4gICAgICAgIGNvbC5jZWxsVGVtcGxhdGUgPSB0aGlzLmNlbGxUeXBlU2VsZWN0b3JUcGxcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzZXRDb2x1bW5EZWZhdWx0cyhjb2xzKVxuICAgIF9zZXRDb2x1bW5EZWZhdWx0cyhjb2xzKVxuXG5cbiAgICAvLyBjb25zb2xlLmxvZyhjb2xzLm1hcChjID0+ICh7IHByb3A6IGMucHJvcCwgY2FuQXV0b1Jlc2l6ZTogYy5jYW5BdXRvUmVzaXplIH0pKSlcblxuICAgIHJldHVybiBjb2xzXG4gIH1cblxuICBwcml2YXRlIF9oYXNQcmV2Q29sRGlmZihjb2w6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4sIGlzVHBsOiBib29sZWFuID0gZmFsc2UpOiBib29sZWFuIHtcbiAgICBpZiAoIWNvbCB8fCAhY29sLnByb3ApIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNvbnN0IGRpZmZlcnNNYXAgPSBpc1RwbCA/IHRoaXMuX2NvbERpZmZlcnNUcGwgOiB0aGlzLl9jb2xEaWZmZXJzSW5wXG5cbiAgICByZXR1cm4gISFkaWZmZXJzTWFwXG4gIH1cblxuICBwcml2YXRlIF9nZXRDb2xEaWZmKGNvbDogVGhlU2VhbURhdGF0YWJsZUNvbHVtbiwgaXNUcGw6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGlmICghY29sIHx8ICFjb2wucHJvcCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgZGlmZmVyc01hcCA9IGlzVHBsID8gdGhpcy5fY29sRGlmZmVyc1RwbCA6IHRoaXMuX2NvbERpZmZlcnNJbnBcblxuICAgIGlmICghZGlmZmVyc01hcFtjb2wucHJvcF0pIHtcbiAgICAgIGRpZmZlcnNNYXBbY29sLnByb3BdID0gdGhpcy5fZGlmZmVycy5maW5kKHt9KS5jcmVhdGUoKVxuICAgIH1cblxuICAgIGNvbnN0IGRpZmZlciA9IGRpZmZlcnNNYXBbY29sLnByb3BdXG5cbiAgICBjb25zdCBkaWZmID0gZGlmZmVyLmRpZmYoY29sKVxuICAgIHJldHVybiBkaWZmXG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVVbnVzZWREaWZmcyhjb2xzOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10pIHtcbiAgICBjb25zdCBpbnBLZXlzID0gT2JqZWN0LmtleXModGhpcy5fY29sRGlmZmVyc0lucClcbiAgICBpbnBLZXlzLmZpbHRlcihrID0+IGNvbHMuZmluZEluZGV4KGMgPT4gYy5wcm9wID09PSBrKSA9PT0gLTEpXG4gICAgICAuZm9yRWFjaChrID0+IHsgZGVsZXRlIHRoaXMuX2NvbERpZmZlcnNJbnBba10gfSlcblxuICAgIGNvbnN0IHRwbEtleXMgPSBPYmplY3Qua2V5cyh0aGlzLl9jb2xEaWZmZXJzVHBsKVxuICAgIHRwbEtleXMuZmlsdGVyKGsgPT4gY29scy5maW5kSW5kZXgoYyA9PiBjLnByb3AgPT09IGspID09PSAtMSlcbiAgICAgIC5mb3JFYWNoKGsgPT4geyBkZWxldGUgdGhpcy5fY29sRGlmZmVyc1RwbFtrXSB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0TWVudUJhckZpbHRlcnMoZmlsdGVyczogSURhdGFGaWx0ZXJbXSkge1xuICAgIC8vIGNvbnNvbGUubG9nKCdfc2V0TWVudUJhckZpbHRlcnMnLCBmaWx0ZXJzKVxuICAgIHRoaXMuX2ZpbHRlcnNTdWJqZWN0Lm5leHQoZmlsdGVycyB8fCBbXSlcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb2x1bW5Db21wb25lbnQocHJvcE5hbWU6IHN0cmluZyk6IERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudCB8IG51bGwge1xuICAgIGlmICghdGhpcy5jb2x1bW5Db21wb25lbnRzIHx8IHRoaXMuY29sdW1uQ29tcG9uZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3QgdHBsID0gdGhpcy5jb2x1bW5Db21wb25lbnRzLmZpbmQodCA9PiB0LnByb3AgPT09IHByb3BOYW1lKVxuICAgIGlmICh0cGwpIHtcbiAgICAgIHJldHVybiB0cGxcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgX2NvbHVtbkRhdGEoY29sOiBhbnkpOiB7IGNvbDogYW55LCBjb21wOiBEYXRhdGFibGVDb2x1bW5Db21wb25lbnQgfCBudWxsIH0ge1xuICAgIGNvbnN0IGNvbXAgPSB0aGlzLmdldENvbHVtbkNvbXBvbmVudChjb2wucHJvcClcbiAgICByZXR1cm4geyBjb2wsIGNvbXAgfVxuICB9XG5cbiAgX2dldFJvd0V4cGFuZGVkKHJvdzogYW55KSB7XG4gICAgaWYgKHRoaXMubmd4RGF0YXRhYmxlICYmIHRoaXMubmd4RGF0YXRhYmxlLmJvZHlDb21wb25lbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLm5neERhdGF0YWJsZS5ib2R5Q29tcG9uZW50LmdldFJvd0V4cGFuZGVkKHJvdylcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeUZuQ29sdW1uKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xuICAgIHJldHVybiBpdGVtLnByb3BcbiAgfVxuXG4gIHB1YmxpYyBvbkRhdGF0YWJsZVJlc2l6ZShldmVudDogSUVsZW1lbnRSZXNpemVkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5uZ3hEYXRhdGFibGUgJiYgdGhpcy5uZ3hEYXRhdGFibGVFbGVtZW50ICYmIHRoaXMubmd4RGF0YXRhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAvLyBUT0RPOiBDb25zaWRlciBpbnRlZ3JhdGluZyB0aGlzIGludG8gdGhlIG5neC1kYXRhdGFibGUgbGlicmFyeSB0byBhdm9pZFxuICAgICAgLy8gbXVsdGlwbGUgcmVzaXplIGNhbGxzIHdoZW4gdGhlIHRhYmxlIHJlc2l6ZXMgaXRzZWxmLlxuICAgICAgdGhpcy5uZ3hEYXRhdGFibGUucmVjYWxjdWxhdGUoKVxuICAgIH1cbiAgfVxuXG4gIF9vblJlc2l6ZShldmVudDogYW55KSB7XG4gICAgLy8gY29uc29sZS5sb2coJ3Jlc2l6ZScsIGV2ZW50LCBldmVudC5jb2x1bW4ucHJvcClcbiAgICB0aGlzLnJlc2l6ZS5lbWl0KGV2ZW50KVxuXG4gICAgaWYgKGV2ZW50LmlzRG9uZSAmJiB0aGlzLmNvbHVtbnMpIHtcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmNvbHVtbnNcbiAgICAgIGNvbnN0IGNvbCA9IGNvbHVtbnMuZmluZChjID0+IGMucHJvcCA9PT0gZXZlbnQuY29sdW1uLnByb3ApXG4gICAgICBpZiAoY29sKSB7XG4gICAgICAgIGNvbC5jYW5BdXRvUmVzaXplID0gZmFsc2VcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMucHJlZmVyZW5jZXNLZXkpIHtcbiAgICAgICAgY29uc3QgcHJlZiA9IHsgcHJvcDogZXZlbnQuY29sdW1uLnByb3AsIHdpZHRoOiBldmVudC5jb2x1bW4ud2lkdGgsIGNhbkF1dG9SZXNpemU6IGZhbHNlIH1cbiAgICAgICAgdGhpcy5fcHJlZmVyZW5jZXMuc2V0Q29sdW1uUHJlZmVyZW5jZSh0aGlzLnByZWZlcmVuY2VzS2V5LCBwcmVmKVxuICAgICAgfVxuXG4gICAgICB0aGlzLmNvbHVtbnMgPSBbIC4uLnRoaXMuY29sdW1ucyBdXG4gICAgfVxuICB9XG5cbiAgX29uVHJlZUFjdGlvbihldmVudDogYW55KSB7XG4gICAgY29uc3QgaW5kZXggPSBldmVudC5yb3dJbmRleFxuICAgIGNvbnN0IHJvdyA9IGV2ZW50LnJvd1xuICAgIGlmIChyb3cudHJlZVN0YXR1cyA9PT0gJ2NvbGxhcHNlZCcpIHtcbiAgICAgIHJvdy50cmVlU3RhdHVzID0gJ2V4cGFuZGVkJ1xuICAgIH0gZWxzZSB7XG4gICAgICByb3cudHJlZVN0YXR1cyA9ICdjb2xsYXBzZWQnXG4gICAgfVxuICAgIHRoaXMucm93cyA9IFsgLi4udGhpcy5yb3dzIF1cbiAgfVxuXG4gIHB1YmxpYyB0cmlnZ2VyQWN0aW9uUmVmcmVzaFJlcXVlc3QoKSB7XG4gICAgdGhpcy5hY3Rpb25SZWZyZXNoUmVxdWVzdC5lbWl0KHVuZGVmaW5lZClcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFnZUluZm8oKTogVGhlU2VhbVBhZ2VJbmZvIHtcbiAgICByZXR1cm4ge1xuICAgICAgb2Zmc2V0OiB0aGlzLm5neERhdGF0YWJsZT8ub2Zmc2V0ID8/IDAsXG4gICAgICBwYWdlU2l6ZTogdGhpcy5uZ3hEYXRhdGFibGU/LnBhZ2VTaXplID8/IDAsXG4gICAgICBsaW1pdDogdGhpcy5uZ3hEYXRhdGFibGU/LmxpbWl0LFxuICAgICAgY291bnQ6IHRoaXMubmd4RGF0YXRhYmxlPy5jb3VudCA/PyAwXG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
586
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvZGF0YXRhYmxlL2RhdGF0YWJsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN6RSxPQUFPLEVBQWdCLFdBQVcsRUFBZSxNQUFNLHVCQUF1QixDQUFBO0FBQzlFLE9BQU8sRUFDYSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFDbkYsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFDM0QsZUFBZSxFQUFxQixNQUFNLEVBQTBCLFNBQVMsRUFDOUUsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDNUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2xHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBRXZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQzVGLE9BQU8sRUFDTCxVQUFVLEVBS1Ysa0JBQWtCLElBQUkscUJBQXFCLEVBQzNDLDJCQUEyQixFQUMzQixpQkFBaUIsRUFDakIsUUFBUSxFQUVSLGtCQUFrQixFQUVuQixNQUFNLHVCQUF1QixDQUFBO0FBRzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0s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LE1BQU0sRUFBRSxJQUFJLEVBQUU7O0FBOUh6QjtJQUFmLFlBQVksRUFBRTswREFBZ0M7QUFDL0I7SUFBZixZQUFZLEVBQUU7MkRBQWlDO0FBQ2hDO0lBQWYsWUFBWSxFQUFFOzZEQUFtQztBQUVuQztJQUFkLFdBQVcsRUFBRTtpREFBMEI7QUFDeEI7SUFBZixXQUFXLENBQUMsQ0FBQyxDQUFDO2lEQUFrQjtBQUNqQjtJQUFmLFdBQVcsQ0FBQyxDQUFDLENBQUM7a0RBQW1CO0FBRWxCO0lBQWYsWUFBWSxFQUFFOzREQUFrQztBQUlqQztJQUFmLFlBQVksRUFBRTt1REFBNEI7QUFDM0I7SUFBZixZQUFZLEVBQUU7dURBQTZCO0FBdUM1QjtJQUFmLFlBQVksRUFBRTtpRUFBdUM7QUFJdEM7SUFBZixZQUFZLEVBQUU7K0RBQXFDO0FBSXBDO0lBQWYsWUFBWSxFQUFFO3NEQUE0QjtBQUM1QjtJQUFkLFdBQVcsRUFBRTt5REFBMkI7QUFHekI7SUFBZixZQUFZLEVBQUU7MERBQStCO0FBRS9CO0lBQWQsV0FBVyxFQUFFO3dEQUEwQjtBQUN6QjtJQUFkLFdBQVcsRUFBRTtxREFBdUI7QUFDdEI7SUFBZCxXQUFXLEVBQUU7d0RBQTBCO0FBRXhCO0lBQWYsWUFBWSxFQUFFO3NEQUEyQjtBQUMxQjtJQUFmLFlBQVksRUFBRTtzREFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUFycmF5LCBOdW1iZXJJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbidcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIEluamVjdGlvblRva2VuLCBJbnB1dCwgS2V5VmFsdWVEaWZmZXIsXG4gIEtleVZhbHVlRGlmZmVycywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgY29uY2F0TWFwLCBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IERhdGF0YWJsZURhdGFTb3VyY2UgfSBmcm9tICcuLy4uL21vZGVscy9kYXRhdGFibGUtZGF0YS1zb3VyY2UnXG5cbmltcG9ydCB7IGZhQ2hldnJvbkRvd24sIGZhQ2hldnJvblJpZ2h0LCBmYVNwaW5uZXIgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnXG5pbXBvcnQge1xuICBDb2x1bW5Nb2RlLFxuICBDb250ZXh0bWVudVR5cGUsXG4gIERhdGFUYWJsZUNvbHVtbkNlbGxUcmVlVG9nZ2xlLFxuICBEYXRhVGFibGVDb2x1bW5EaXJlY3RpdmUsXG4gIERhdGFUYWJsZUNvbHVtbkhlYWRlckRpcmVjdGl2ZSxcbiAgRGF0YXRhYmxlQ29tcG9uZW50IGFzIE5neERhdGF0YWJsZUNvbXBvbmVudCxcbiAgRGF0YXRhYmxlUm93RGV0YWlsRGlyZWN0aXZlLFxuICBzZXRDb2x1bW5EZWZhdWx0cyxcbiAgU29ydFR5cGUsXG4gIFRhYmxlQ29sdW1uLFxuICB0cmFuc2xhdGVUZW1wbGF0ZXMsXG4gIFRyZWVTdGF0dXNcbn0gZnJvbSAnQG1hcmtsYi9uZ3gtZGF0YXRhYmxlJ1xuaW1wb3J0IHR5cGUgeyBTZWxlY3Rpb25UeXBlIH0gZnJvbSAnQG1hcmtsYi9uZ3gtZGF0YXRhYmxlJ1xuXG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4sIElucHV0TnVtYmVyIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2NvcmUnXG5pbXBvcnQgeyBjb21wb3NlRGF0YUZpbHRlcnMsIGNvbXBvc2VEYXRhRmlsdGVyU3RhdGVzLCBEYXRhRmlsdGVyU3RhdGUsIElEYXRhRmlsdGVyIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2RhdGEtZmlsdGVycydcbmltcG9ydCB7IElFbGVtZW50UmVzaXplZEV2ZW50IH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3NoYXJlZCdcbmltcG9ydCB7IGhhc1Byb3BlcnR5LCBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5cbmltcG9ydCB7IENvbGxlY3Rpb25WaWV3ZXIsIERhdGFTb3VyY2UsIGlzRGF0YVNvdXJjZSwgTGlzdFJhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJ1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IERhdGF0YWJsZUFjdGlvbk1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9kYXRhdGFibGUtYWN0aW9uLW1lbnUvZGF0YXRhYmxlLWFjdGlvbi1tZW51LmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGF0YWJsZS1jb2x1bW4vZGF0YXRhYmxlLWNvbHVtbi5jb21wb25lbnQnXG5pbXBvcnQgeyBUaGVTZWFtRGF0YXRhYmxlRm9vdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGF0YXRhYmxlLWZvb3Rlci9kYXRhdGFibGUtZm9vdGVyLmRpcmVjdGl2ZSdcbmltcG9ydCB7IERhdGF0YWJsZU1lbnVCYXJDb21wb25lbnQgfSBmcm9tICcuLi9kYXRhdGFibGUtbWVudS1iYXIvZGF0YXRhYmxlLW1lbnUtYmFyLmNvbXBvbmVudCdcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVSb3dEZXRhaWxEaXJlY3RpdmUgfSBmcm9tICcuLi9kYXRhdGFibGUtcm93LWRldGFpbC9kYXRhdGFibGUtcm93LWRldGFpbC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBEYXRhdGFibGVSb3dBY3Rpb25JdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9kYXRhdGFibGUtcm93LWFjdGlvbi1pdGVtLmRpcmVjdGl2ZSdcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVBY2Nlc3NvciB9IGZyb20gJy4uL21vZGVscy9kYXRhdGFibGUtYWNjZXNzb3InXG5pbXBvcnQgeyBUaGVTZWFtUGFnZUluZm8gfSBmcm9tICcuLi9tb2RlbHMvcGFnZS1pbmZvJ1xuaW1wb3J0IHsgU29ydEV2ZW50IH0gZnJvbSAnLi4vbW9kZWxzL3NvcnQtZXZlbnQnXG5pbXBvcnQgeyBTb3J0SXRlbSB9IGZyb20gJy4uL21vZGVscy9zb3J0LWl0ZW0nXG5pbXBvcnQgeyBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vbW9kZWxzL3RhYmxlLWNvbHVtbidcbmltcG9ydCB7IERhdGF0YWJsZUNvbHVtbkNoYW5nZXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZGF0YXRhYmxlLWNvbHVtbi1jaGFuZ2VzLnNlcnZpY2UnXG5pbXBvcnQgeyBEYXRhdGFibGVQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9kYXRhdGFibGUtcHJlZmVyZW5jZXMuc2VydmljZSdcbmltcG9ydCB7IFRIRVNFQU1fREFUQVRBQkxFX0FDQ0VTU09SIH0gZnJvbSAnLi4vdG9rZW5zL2RhdGF0YWJsZS1hY2Nlc3NvcidcblxuZXhwb3J0IGZ1bmN0aW9uIF9zZXRDb2x1bW5EZWZhdWx0cyhjb2x1bW5zOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10pOiB2b2lkIHtcbiAgZm9yIChjb25zdCBjb2x1bW4gb2YgY29sdW1ucykge1xuICAgIGlmICghY29sdW1uLmhhc093blByb3BlcnR5KCdoaWRkZW4nKSkge1xuICAgICAgY29sdW1uLmhpZGRlbiA9IGZhbHNlXG4gICAgfVxuICB9XG4gIHNldENvbHVtbkRlZmF1bHRzKGNvbHVtbnMpXG59XG5cbi8qKlxuICogTk9URTogVGhpcyBpcyBzdGlsbCBiZWluZyB3b3JrZWQgb24uIEkgYW0gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgdGhpcyBtb2RlbFxuICogYmVjYXVzZSBgbmd4LWRhdGF0YWJsZWAganVzdCB1c2VzIGFuIHVudHlwZWQgb2JqZWN0IGFuZCBzZXRzIHByb3BlcnRpZXMgaW5cbiAqIG11bHRpcGxlIHBsYWNlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2VsbENvbnRleHQge1xuICBhbGxSb3dzU2VsZWN0ZWQ6IGZhbHNlXG5cbiAgc2VsZWN0Rm46ICgpID0+IGFueVxuICBzb3J0RGlyPzogJ2FzYycgfCAnZGVzYydcbiAgc29ydEZuOiAoKSA9PiBhbnlcblxuICBleHBhbmRlZD86IGJvb2xlYW5cblxuICBvbkNoZWNrYm94Q2hhbmdlRm4/OiBhbnlcbiAgYWN0aXZhdGVGbj86IGFueVxuICByb3c/OiBhbnlcbiAgZ3JvdXA/OiBhbnlcbiAgdmFsdWU/OiBhbnlcbiAgY29sdW1uPzogVGhlU2VhbURhdGF0YWJsZUNvbHVtblxuICByb3dIZWlnaHQ/OiBudW1iZXJcbiAgaXNTZWxlY3RlZD86IGJvb2xlYW5cbiAgcm93SW5kZXg/OiBudW1iZXJcbiAgdHJlZVN0YXR1cz86IFRyZWVTdGF0dXNcbiAgb25UcmVlQWN0aW9uPzogYW55XG59XG5cbi8qKlxuICogSW50ZW5kZWQgZm9yIGludGVybmFsIGNsYXNzZXMgZGVjbGFyZWQgYnkgdGhlIGBUaGVTZWFtRGF0YXRhYmxlTW9kdWxlYC5cbiAqL1xuZXhwb3J0IGNvbnN0IFRIRVNFQU1fREFUQVRBQkxFID0gbmV3IEluamVjdGlvblRva2VuPElEYXRhRmlsdGVyPignTGliRGF0YXRhYmxlJylcblxuZXhwb3J0IGNvbnN0IF9USEVTRUFNX0RBVEFUQUJMRTogYW55ID0ge1xuICBwcm92aWRlOiBUSEVTRUFNX0RBVEFUQUJMRSxcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLXVzZS1iZWZvcmUtZGVjbGFyZVxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRhdGFibGVDb21wb25lbnQpXG59XG5cbmV4cG9ydCBjb25zdCBfVEhFU0VBTV9EQVRBVEFCTEVfQUNDRVNTT1I6IGFueSA9IHtcbiAgcHJvdmlkZTogVEhFU0VBTV9EQVRBVEFCTEVfQUNDRVNTT1IsXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby11c2UtYmVmb3JlLWRlY2xhcmVcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0YXRhYmxlQ29tcG9uZW50KVxufVxuXG4vLyBUT0RPOiBSZWR1Y2UgcmVsaWFuY2Ugb24gQmVoYXZpb3JTdWJqZWN0IGJhc2VkIG9ic2VydmFibGVzLCBiZWNhdXNlIGl0IHNob3VsZFxuLy8gYmUgZWFzaWVyIHRvIGF2b2l0IG92ZXIgZW1pdHRpbmcgb2JzZXJ2YWJsZXMuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLWRhdGF0YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRhdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdzbGlkZURvd24nLCBbXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgtMjAlKScsIG9wYWNpdHk6ICcwJyB9KSxcbiAgICAgICAgYW5pbWF0ZSgnMjUwbXMnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknLCBvcGFjaXR5OiAnMScgfSkpLFxuICAgICAgXSksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScsIG9wYWNpdHk6ICcxJyB9KSxcbiAgICAgICAgYW5pbWF0ZSgnMjUwbXMnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTIwJSknLCBvcGFjaXR5OiAnMCcgfSkpLFxuICAgICAgXSlcbiAgICBdKVxuICBdLFxuICBwcm92aWRlcnM6IFsgX1RIRVNFQU1fREFUQVRBQkxFLCBEYXRhdGFibGVDb2x1bW5DaGFuZ2VzU2VydmljZSwgX1RIRVNFQU1fREFUQVRBQkxFX0FDQ0VTU09SIF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0YXRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQsIFRoZVNlYW1EYXRhdGFibGVBY2Nlc3NvciwgQ29sbGVjdGlvblZpZXdlciB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9leHRlcm5hbFBhZ2luZzogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9leHRlcm5hbFNvcnRpbmc6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZXh0ZXJuYWxGaWx0ZXJpbmc6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbG9hZGluZ0luZGljYXRvcjogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZW9yZGVyYWJsZTogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zd2FwQ29sdW1uczogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9ncm91cEV4cGFuc2lvbkRlZmF1bHQ6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfc2VsZWN0QWxsUm93c09uUGFnZTogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zdW1tYXJ5Um93OiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3ZpcnR1YWxpemF0aW9uOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3Njcm9sbGJhclY6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfc2Nyb2xsYmFySDogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9saW1pdDogTnVtYmVySW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2NvdW50OiBOdW1iZXJJbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfb2Zmc2V0OiBOdW1iZXJJbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfaGVhZGVySGVpZ2h0OiBOdW1iZXJJbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcm93SGVpZ2h0OiBOdW1iZXJJbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZm9vdGVySGVpZ2h0OiBOdW1iZXJJbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfc3VtbWFyeUhlaWdodDogTnVtYmVySW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2NvbHVtbnM6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXSB8IHVuZGVmaW5lZCB8IG51bGxcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3NvcnRzOiBTb3J0SXRlbVtdIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIGZhQ2hldnJvbkRvd24gPSBmYUNoZXZyb25Eb3duXG4gIGZhQ2hldnJvblJpZ2h0ID0gZmFDaGV2cm9uUmlnaHRcbiAgZmFTcGlubmVyID0gZmFTcGlubmVyXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KClcbiAgcHJpdmF0ZSByZWFkb25seSBfZmlsdGVyc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElEYXRhRmlsdGVyW10+KFtdKVxuICBwcml2YXRlIHJlYWRvbmx5IF9jb2x1bW5zT2JzZXJ2YWJsZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T2JzZXJ2YWJsZTxUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10+IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGFTb3VyY2VTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhU291cmNlPGFueT4gfCBhbnlbXSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuXG4gIHB1YmxpYyByZWFkb25seSBmaWx0ZXJTdGF0ZXM6IE9ic2VydmFibGU8RGF0YUZpbHRlclN0YXRlW10+XG5cbiAgZ2V0IGZpbHRlcnMoKTogSURhdGFGaWx0ZXJbXSB7IHJldHVybiB0aGlzLl9maWx0ZXJzU3ViamVjdC52YWx1ZSB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGZpbHRlcnMkOiBPYnNlcnZhYmxlPElEYXRhRmlsdGVyW10+XG5cbiAgQElucHV0KClcbiAgZ2V0IHByZWZlcmVuY2VzS2V5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgeyByZXR1cm4gdGhpcy5fcHJlZmVyZW5jZXNLZXkudmFsdWUgfVxuICBzZXQgcHJlZmVyZW5jZXNLZXkodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpIHsgdGhpcy5fcHJlZmVyZW5jZXNLZXkubmV4dCh2YWx1ZSB8fCB1bmRlZmluZWQpIH1cbiAgcHJpdmF0ZSBfcHJlZmVyZW5jZXNLZXkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw+KHVuZGVmaW5lZClcblxuICBASW5wdXQoKSB0YXJnZXRNYXJrZXJUZW1wbGF0ZTogYW55XG5cbiAgQElucHV0KClcbiAgZ2V0IGNvbHVtbnMoKTogVGhlU2VhbURhdGF0YWJsZUNvbHVtbltdIHsgcmV0dXJuIHRoaXMuX2NvbHVtbnMudmFsdWUgfVxuICBzZXQgY29sdW1ucyh2YWx1ZTogVGhlU2VhbURhdGF0YWJsZUNvbHVtbltdKSB7XG4gICAgLy8gY29uc29sZS5sb2coJ2NvbHVtbnMgaW5wdXQnLCB2YWx1ZSlcbiAgICB0aGlzLl9jb2x1bW5zLm5leHQoQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFtdKVxuICB9XG4gIHByaXZhdGUgX2NvbHVtbnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXT4oW10pXG5cbiAgQElucHV0KClcbiAgZ2V0IHJvd3MoKTogYW55W10geyByZXR1cm4gdGhpcy5fcm93cy52YWx1ZSB9XG4gIHNldCByb3dzKHZhbHVlOiBhbnlbXSkgeyB0aGlzLl9yb3dzLm5leHQodmFsdWUgfHwgW10pIH1cbiAgcHJpdmF0ZSBfcm93cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55W10+KFtdKVxuXG4gIHB1YmxpYyByb3dzJDogT2JzZXJ2YWJsZTxhbnlbXT5cblxuICBASW5wdXQoKSBjb2x1bW5Nb2RlOiBDb2x1bW5Nb2RlIHwgdW5kZWZpbmVkIHwgbnVsbCA9IENvbHVtbk1vZGUuZm9yY2VcblxuICBASW5wdXQoKSBncm91cFJvd3NCeTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbFxuICBASW5wdXQoKSBncm91cGVkUm93czogYW55W10gfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgc2VsZWN0ZWQ6IGFueVtdIHwgdW5kZWZpbmVkIHwgbnVsbCA9IFtdXG5cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGV4dGVybmFsUGFnaW5nOiBib29sZWFuID0gZmFsc2VcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGV4dGVybmFsU29ydGluZzogYm9vbGVhbiA9IGZhbHNlXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBleHRlcm5hbEZpbHRlcmluZzogYm9vbGVhbiA9IGZhbHNlXG5cbiAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgbGltaXQ6IG51bWJlciB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBASW5wdXROdW1iZXIoMCkgY291bnQ6IG51bWJlciA9IDBcbiAgQElucHV0KCkgQElucHV0TnVtYmVyKDApIG9mZnNldDogbnVtYmVyID0gMFxuXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBsb2FkaW5nSW5kaWNhdG9yOiBib29sZWFuID0gZmFsc2VcblxuICBASW5wdXQoKSBzZWxlY3Rpb25UeXBlOiBTZWxlY3Rpb25UeXBlIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSByZW9yZGVyYWJsZTogYm9vbGVhbiA9IHRydWVcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHN3YXBDb2x1bW5zOiBib29sZWFuID0gZmFsc2VcblxuICBASW5wdXQoKSBzb3J0VHlwZTogU29ydFR5cGUgfCB1bmRlZmluZWQgfCBudWxsID0gU29ydFR5cGUuc2luZ2xlXG5cbiAgQElucHV0KClcbiAgZ2V0IHNvcnRzKCk6IFNvcnRJdGVtW10geyByZXR1cm4gdGhpcy5uZ3hEYXRhdGFibGUgPyB0aGlzLm5neERhdGF0YWJsZS5zb3J0cyA6IHRoaXMuX3NvcnRzIH1cbiAgc2V0IHNvcnRzKHZhbHVlOiBTb3J0SXRlbVtdKSB7XG4gICAgdGhpcy5fc29ydHMgPSBub3ROdWxsT3JVbmRlZmluZWQodmFsdWUpID8gY29lcmNlQXJyYXkodmFsdWUpIDogW11cbiAgfVxuICBfc29ydHM6IFNvcnRJdGVtW10gPSBbXVxuXG4gIEBJbnB1dCgpIGNzc0NsYXNzZXM6IGFueSB8IHVuZGVmaW5lZCB8IG51bGwgPSB7XG4gICAgc29ydEFzY2VuZGluZzogJ2RhdGF0YWJsZS1pY29uLXVwJyxcbiAgICBzb3J0RGVzY2VuZGluZzogJ2RhdGF0YWJsZS1pY29uLWRvd24nLFxuICAgIHBhZ2VyTGVmdEFycm93OiAnZGF0YXRhYmxlLWljb24tbGVmdCcsXG4gICAgcGFnZXJSaWdodEFycm93OiAnZGF0YXRhYmxlLWljb24tcmlnaHQnLFxuICAgIHBhZ2VyUHJldmlvdXM6ICdkYXRhdGFibGUtaWNvbi1wcmV2JyxcbiAgICBwYWdlck5leHQ6ICdkYXRhdGFibGUtaWNvbi1za2lwJ1xuICB9XG5cbiAgQElucHV0KCkgbWVzc2FnZXM6IGFueSB8IHVuZGVmaW5lZCB8IG51bGwgPSB7XG4gICAgLy8gTWVzc2FnZSB0byBzaG93IHdoZW4gYXJyYXkgaXMgcHJlc2VudGVkXG4gICAgLy8gYnV0IGNvbnRhaW5zIG5vIHZhbHVlc1xuICAgIGVtcHR5TWVzc2FnZTogJ05vIHJlY29yZHMgZm91bmQnLFxuXG4gICAgLy8gRm9vdGVyIHRvdGFsIG1lc3NhZ2VcbiAgICB0b3RhbE1lc3NhZ2U6ICd0b3RhbCcsXG5cbiAgICAvLyBGb290ZXIgc2VsZWN0ZWQgbWVzc2FnZVxuICAgIHNlbGVjdGVkTWVzc2FnZTogJ3NlbGVjdGVkJ1xuICB9XG5cbiAgQElucHV0KCkgcm93SWRlbnRpdHk6ICgoeDogYW55KSA9PiBhbnkpIHwgdW5kZWZpbmVkIHwgbnVsbCA9ICgoeDogYW55KSA9PiB4KVxuXG4gIEBJbnB1dCgpIHJvd0NsYXNzOiBhbnkgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgc2VsZWN0Q2hlY2s6IGFueSB8IHVuZGVmaW5lZCB8IG51bGxcbiAgQElucHV0KCkgZGlzcGxheUNoZWNrOiAoKHJvdzogYW55LCBjb2x1bW4/OiBhbnksIHZhbHVlPzogYW55KSA9PiBib29sZWFuKSB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgZ3JvdXBFeHBhbnNpb25EZWZhdWx0OiBib29sZWFuID0gZmFsc2VcblxuICBASW5wdXQoKSB0cmFja0J5UHJvcDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzZWxlY3RBbGxSb3dzT25QYWdlOiBib29sZWFuID0gZmFsc2VcblxuICBASW5wdXQoKSB0cmVlRnJvbVJlbGF0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsXG4gIEBJbnB1dCgpIHRyZWVUb1JlbGF0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzdW1tYXJ5Um93OiBib29sZWFuID0gZmFsc2VcbiAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgc3VtbWFyeUhlaWdodDogbnVtYmVyID0gMzBcbiAgQElucHV0KCkgc3VtbWFyeVBvc2l0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsID0gJ3RvcCdcblxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgdmlydHVhbGl6YXRpb246IGJvb2xlYW4gPSB0cnVlXG5cbiAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgaGVhZGVySGVpZ2h0OiBudW1iZXIgPSA1MFxuICBASW5wdXQoKSBASW5wdXROdW1iZXIoKSByb3dIZWlnaHQ6IG51bWJlciA9IDUwXG4gIEBJbnB1dCgpIEBJbnB1dE51bWJlcigpIGZvb3RlckhlaWdodDogbnVtYmVyID0gNDBcblxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgc2Nyb2xsYmFyVjogYm9vbGVhbiA9IHRydWVcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHNjcm9sbGJhckg6IGJvb2xlYW4gPSB0cnVlXG5cbiAgQElucHV0KClcbiAgc2V0IGRhdGFTb3VyY2UodmFsdWU6IERhdGFTb3VyY2U8YW55PiB8IGFueVtdIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGF0YWJsZURhdGFTb3VyY2UpIHtcbiAgICAgIHZhbHVlLnNldERhdGF0YWJsZUFjY2Vzc29yKHRoaXMpXG4gICAgfVxuICAgIHRoaXMuX2RhdGFTb3VyY2VTdWJqZWN0Lm5leHQodmFsdWUgfHwgdW5kZWZpbmVkKVxuICB9XG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNjcm9sbCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gIEBPdXRwdXQoKSByZWFkb25seSBhY3RpdmF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG4gIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBAT3V0cHV0KCkgcmVhZG9ubHkgc29ydCA9IG5ldyBFdmVudEVtaXR0ZXI8U29ydEV2ZW50PigpXG4gIEBPdXRwdXQoKSByZWFkb25seSBwYWdlID0gbmV3IEV2ZW50RW1pdHRlcjxUaGVTZWFtUGFnZUluZm8+KClcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHJlb3JkZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuICBAT3V0cHV0KCkgcmVhZG9ubHkgcmVzaXplID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHRhYmxlQ29udGV4dG1lbnUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZXZlbnQ6IE1vdXNlRXZlbnQsIHR5cGU6IENvbnRleHRtZW51VHlwZSwgY29udGVudDogYW55IH0+KGZhbHNlKVxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdHJlZUFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG5cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGFjdGlvblJlZnJlc2hSZXF1ZXN0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG4gIEBPdXRwdXQoKSByZWFkb25seSBoaWRkZW5Db2x1bW5zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKVxuXG4gIEBDb250ZW50Q2hpbGRyZW4oRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50KSBjb2x1bW5Db21wb25lbnRzPzogUXVlcnlMaXN0PERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudD5cblxuICBAQ29udGVudENoaWxkKERhdGF0YWJsZUFjdGlvbk1lbnVDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIGFjdGlvbk1lbnU/OiBEYXRhdGFibGVBY3Rpb25NZW51Q29tcG9uZW50XG4gIEBDb250ZW50Q2hpbGQoRGF0YXRhYmxlUm93QWN0aW9uSXRlbURpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgcm93QWN0aW9uSXRlbT86IERhdGF0YWJsZVJvd0FjdGlvbkl0ZW1EaXJlY3RpdmVcbiAgQENvbnRlbnRDaGlsZChUaGVTZWFtRGF0YXRhYmxlUm93RGV0YWlsRGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KSByb3dEZXRhaWw/OiBUaGVTZWFtRGF0YXRhYmxlUm93RGV0YWlsRGlyZWN0aXZlXG4gIEBDb250ZW50Q2hpbGQoVGhlU2VhbURhdGF0YWJsZUZvb3RlckRpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgZm9vdGVyPzogVGhlU2VhbURhdGF0YWJsZUZvb3RlckRpcmVjdGl2ZVxuXG4gIEBDb250ZW50Q2hpbGQoRGF0YXRhYmxlTWVudUJhckNvbXBvbmVudClcbiAgZ2V0IG1lbnVCYXJDb21wb25lbnQoKTogRGF0YXRhYmxlTWVudUJhckNvbXBvbmVudCB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLl9tZW51QmFyQ29tcG9uZW50IH1cbiAgc2V0IG1lbnVCYXJDb21wb25lbnQodmFsdWU6IERhdGF0YWJsZU1lbnVCYXJDb21wb25lbnQgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9tZW51QmFyQ29tcG9uZW50ID0gdmFsdWVcblxuICAgIGlmICh0aGlzLl9tZW51QmFyU3ViKSB7IHRoaXMuX21lbnVCYXJTdWIudW5zdWJzY3JpYmUoKSB9XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX3NldE1lbnVCYXJGaWx0ZXJzKHZhbHVlLmZpbHRlcnMoKSlcblxuICAgICAgdGhpcy5fbWVudUJhclN1YiA9IHRoaXMuX21lbnVCYXJDb21wb25lbnQ/LmZpbHRlcnNDaGFuZ2VkXG4gICAgICAgIC5zdWJzY3JpYmUodiA9PiB7IHRoaXMuX3NldE1lbnVCYXJGaWx0ZXJzKHZhbHVlLmZpbHRlcnMoKSkgfSlcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfbWVudUJhckNvbXBvbmVudDogRGF0YXRhYmxlTWVudUJhckNvbXBvbmVudCB8IHVuZGVmaW5lZFxuICBwcml2YXRlIF9tZW51QmFyU3ViOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWRcblxuICBAVmlld0NoaWxkKE5neERhdGF0YWJsZUNvbXBvbmVudCkgbmd4RGF0YXRhYmxlPzogTmd4RGF0YXRhYmxlQ29tcG9uZW50XG4gIEBWaWV3Q2hpbGQoTmd4RGF0YXRhYmxlQ29tcG9uZW50LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgbmd4RGF0YXRhYmxlRWxlbWVudD86IEVsZW1lbnRSZWZcbiAgQFZpZXdDaGlsZChEYXRhdGFibGVSb3dEZXRhaWxEaXJlY3RpdmUpIG5neFJvd0RldGFpbD86IERhdGF0YWJsZVJvd0RldGFpbERpcmVjdGl2ZVxuXG4gIEBWaWV3Q2hpbGQoJ2FjdGlvbk1lbnVDZWxsVHBsJywgeyBzdGF0aWM6IHRydWUgfSkgYWN0aW9uTWVudUNlbGxUcGw/OiBUZW1wbGF0ZVJlZjxEYXRhVGFibGVDb2x1bW5EaXJlY3RpdmU+XG4gIEBWaWV3Q2hpbGQoJ3RyZWVUb2dnbGVUcGwnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0cmVlVG9nZ2xlVHBsPzogVGVtcGxhdGVSZWY8RGF0YVRhYmxlQ29sdW1uQ2VsbFRyZWVUb2dnbGU+XG4gIEBWaWV3Q2hpbGQoJ2hlYWRlclRwbCcsIHsgc3RhdGljOiB0cnVlIH0pIGhlYWRlclRwbD86IFRlbXBsYXRlUmVmPERhdGFUYWJsZUNvbHVtbkhlYWRlckRpcmVjdGl2ZT5cbiAgQFZpZXdDaGlsZCgnYmxhbmtIZWFkZXJUcGwnLCB7IHN0YXRpYzogdHJ1ZSB9KSBibGFua0hlYWRlclRwbD86IFRlbXBsYXRlUmVmPERhdGFUYWJsZUNvbHVtbkhlYWRlckRpcmVjdGl2ZT5cbiAgQFZpZXdDaGlsZCgnY2VsbFR5cGVTZWxlY3RvclRwbCcsIHsgc3RhdGljOiB0cnVlIH0pIGNlbGxUeXBlU2VsZWN0b3JUcGw/OiBUZW1wbGF0ZVJlZjxEYXRhVGFibGVDb2x1bW5EaXJlY3RpdmU+XG5cbiAgcHVibGljIGNvbHVtbkNvbXBvbmVudHMkPzogT2JzZXJ2YWJsZTxEYXRhdGFibGVDb2x1bW5Db21wb25lbnRbXT5cbiAgcHJpdmF0ZSBfY29sRGlmZmVyc0lucDogeyBbcHJvcE5hbWU6IHN0cmluZ106IEtleVZhbHVlRGlmZmVyPGFueSwgYW55PiB9ID0ge31cbiAgcHJpdmF0ZSBfY29sRGlmZmVyc1RwbDogeyBbcHJvcE5hbWU6IHN0cmluZ106IEtleVZhbHVlRGlmZmVyPGFueSwgYW55PiB9ID0ge31cblxuICBwdWJsaWMgcmVhZG9ubHkgY29sdW1ucyQ6IE9ic2VydmFibGU8VGhlU2VhbURhdGF0YWJsZUNvbHVtbltdPlxuICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheUNvbHVtbnMkOiBPYnNlcnZhYmxlPFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXT5cblxuICB2aWV3Q2hhbmdlOiBPYnNlcnZhYmxlPExpc3RSYW5nZT5cblxuICBwcml2YXRlIF9yb3dEZXRhaWxUb2dnbGVTdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFlcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jb2x1bW5DaGFuZ2VzU2VydmljZTogRGF0YXRhYmxlQ29sdW1uQ2hhbmdlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGlmZmVyczogS2V5VmFsdWVEaWZmZXJzLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ByZWZlcmVuY2VzOiBEYXRhdGFibGVQcmVmZXJlbmNlc1NlcnZpY2VcbiAgKSB7XG4gICAgLy8gdGhpcy5kaXNwbGF5Q29sdW1ucyQgPSB0aGlzLmhpZGRlbkNvbHVtbnMkLnBpcGUoXG4gICAgLy8gICBzd2l0Y2hNYXAoaGlkZGVuQ29sdW1ucyA9PiB0aGlzLmNvbHVtbnMkLnBpcGUobWFwKGNvbHMgPT4gY29scy5maWx0ZXIoYyA9PiBoaWRkZW5Db2x1bW5zLmZpbmRJbmRleChoYyA9PiBoYyA9PT0gYy5wcm9wKSA9PT0gLTEpKSkpXG4gICAgLy8gKVxuXG4gICAgY29uc3QgYXBwbHlQcmVmcyA9IChjb2xzOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10pID0+IHRoaXMuX3ByZWZlcmVuY2VzS2V5LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAobmFtZSA9PiAhIW5hbWVcbiAgICAgICAgLy8gTk9URTogVGhpcyBwZW5kaW5nIGNoZWNrIGlzIHRlbXBvcmFyeSB0byBhdm9pZCB0YWJsZSB1c2luZyBwcmV2aW91c2x5XG4gICAgICAgIC8vIHJldHJpZXZlZCBwcmVmZXJlbmNlIHdoaWxlIHRoZSBuZXcgb25lIGlzIGJlaW5nIHVwZGF0ZWQgb24gdGhlXG4gICAgICAgIC8vIHNlcnZlci5cbiAgICAgICAgPyAhdGhpcy5fcHJlZmVyZW5jZXMucGVuZGluZ1xuICAgICAgICAgID8gdGhpcy5fcHJlZmVyZW5jZXMud2l0aENvbHVtblByZWZlcmVuY2VzKG5hbWUsIGNvbHMpXG4gICAgICAgICAgOiBvZihjb2xzKVxuICAgICAgICA6IG9mKGNvbHMpXG4gICAgICApXG4gICAgKVxuXG4gICAgdGhpcy5jb2x1bW5zJCA9IHRoaXMuX2NvbHVtbnNPYnNlcnZhYmxlLnBpcGUoc3dpdGNoTWFwKGNvbHNPYnMgPT4gY29sc09icyA/PyBvZihbXSkpKVxuXG4gICAgdGhpcy5kaXNwbGF5Q29sdW1ucyQgPSB0aGlzLmNvbHVtbnMkLnBpcGUoXG4gICAgICBtYXAoY29scyA9PiBjb2xzLmZpbHRlcihjID0+ICFjLmhpZGRlbikpLFxuICAgICAgdGFwKHYgPT4gdGhpcy5fcmVtb3ZlVW51c2VkRGlmZnModikpLFxuICAgICAgc3dpdGNoTWFwKGNvbHMgPT4gYXBwbHlQcmVmcyhjb2xzKSksXG4gICAgKVxuXG4gICAgdGhpcy5maWx0ZXJzJCA9IHRoaXMuX2ZpbHRlcnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpXG5cbiAgICB0aGlzLmZpbHRlclN0YXRlcyA9IHRoaXMuX2ZpbHRlcnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoZmlsdGVycyA9PiBjb21wb3NlRGF0YUZpbHRlclN0YXRlcyhmaWx0ZXJzKSlcbiAgICApXG5cbiAgICAvLyB0aGlzLnJvd3MkID0gdGhpcy5fZmlsdGVyc1N1YmplY3QuYXNPYnNlcnZhYmxlKClcbiAgICAvLyAgIC5waXBlKFxuICAgIC8vICAgICBzd2l0Y2hNYXAoZmlsdGVycyA9PiB7XG4gICAgLy8gICAgICAgaWYgKHRoaXMuZXh0ZXJuYWxGaWx0ZXJpbmcpIHtcbiAgICAvLyAgICAgICAgIHJldHVybiB0aGlzLl9yb3dzLmFzT2JzZXJ2YWJsZSgpXG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICAgIHJldHVybiB0aGlzLl9yb3dzLmFzT2JzZXJ2YWJsZSgpLnBpcGUoY29tcG9zZURhdGFGaWx0ZXJzKGZpbHRlcnMpKVxuICAgIC8vICAgICB9KVxuICAgIC8vICAgKVxuXG4gICAgdGhpcy5yb3dzJCA9IHRoaXMuX2RhdGFTb3VyY2VTdWJqZWN0LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoZGF0YVNvdXJjZSA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdkYXRhU291cmNlJywgZGF0YVNvdXJjZSlcbiAgICAgICAgbGV0IGRhdGFTdHJlYW06IE9ic2VydmFibGU8YW55W10+XG5cbiAgICAgICAgaWYgKGlzRGF0YVNvdXJjZShkYXRhU291cmNlKSkge1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCd+ZGF0YXNvdXJjZScpXG4gICAgICAgICAgZGF0YVN0cmVhbSA9IGRhdGFTb3VyY2UuY29ubmVjdCh0aGlzKSBhcyBhbnlcbiAgICAgICAgfSBlbHNlIGlmIChpc09ic2VydmFibGUoZGF0YVNvdXJjZSkpIHtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnfm9ic2VydmFibGUnKVxuICAgICAgICAgIGRhdGFTdHJlYW0gPSBkYXRhU291cmNlIGFzIGFueVxuICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVNvdXJjZSkpIHtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnfmFycmF5JylcbiAgICAgICAgICBkYXRhU3RyZWFtID0gb2YoZGF0YVNvdXJjZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnfnJvd3MgZmFsbGJhY2snKVxuICAgICAgICAgIGRhdGFTdHJlYW0gPSB0aGlzLl9yb3dzLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAvLyAucGlwZSh0YXAodiA9PiBjb25zb2xlLmxvZygncm93c34nLCB2KSkpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuZXh0ZXJuYWxGaWx0ZXJpbmcpIHtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnbm90IHVzaW5nIGV4dGVybmFsRmlsdGVyaW5nJylcbiAgICAgICAgICBkYXRhU3RyZWFtID0gZGF0YVN0cmVhbS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKHJvd3MgPT4gdGhpcy5fZmlsdGVyc1N1YmplY3QucGlwZShcbiAgICAgICAgICAgICAgLy8gdGFwKHYgPT4gY29uc29sZS5sb2coJ2ZpbHRlcnMnLCB2KSksXG4gICAgICAgICAgICAgIGNvbmNhdE1hcChmaWx0ZXJzID0+IG9mKHJvd3MpLnBpcGUoY29tcG9zZURhdGFGaWx0ZXJzKGZpbHRlcnMpKSksXG4gICAgICAgICAgICAgIC8vIHRhcCh2ID0+IGNvbnNvbGUubG9nKCdjb21wb3NlZCBmaWx0ZXJzJywgdikpLFxuICAgICAgICAgICAgKSlcbiAgICAgICAgICApXG5cbiAgICAgICAgICAvLyBkYXRhU3RyZWFtID0gdGhpcy5fZmlsdGVyc1N1YmplY3QucGlwZShcbiAgICAgICAgICAvLyAgIHRhcCh2ID0+IGNvbnNvbGUubG9nKCdmaWx0ZXJzJywgdikpLFxuICAgICAgICAgIC8vICAgY29uY2F0TWFwKGZpbHRlcnMgPT4gZGF0YVN0cmVhbS5waXBlKGNvbXBvc2VEYXRhRmlsdGVycyhmaWx0ZXJzKSkpLFxuICAgICAgICAgIC8vICAgdGFwKHYgPT4gY29uc29sZS5sb2coJ2NvbXBvc2VkIGZpbHRlcnMnLCB2KSksXG4gICAgICAgICAgLy8gKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGFTdHJlYW0ucGlwZShcbiAgICAgICAgICAvLyB0YXAodiA9PiBjb25zb2xlLmxvZygnc3RyZWFtJywgdikpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKVxuICAgICAgICApXG4gICAgICB9KVxuICAgIClcblxuICAgIC8vIHRoaXMuaGlkZGVuQ29sdW1ucyQgPSB0aGlzLl9oaWRkZW5Db2x1bW5zLmFzT2JzZXJ2YWJsZSgpXG5cbiAgICAvLyB0aGlzLl9oaWRkZW5Db2x1bW5zLnBpcGUoXG4gICAgLy8gICBza2lwKDEpLFxuICAgIC8vICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IHtcbiAgICAvLyAgICAgY29uc3QgX2EgPSBBcnJheS5pc0FycmF5KGEpID8gYSA6IFtdXG4gICAgLy8gICAgIGNvbnN0IF9iID0gQXJyYXkuaXNBcnJheShiKSA/IGIgOiBbXVxuICAgIC8vICAgICBpZiAoX2EubGVuZ3RoICE9PSBfYi5sZW5ndGgpIHsgcmV0dXJuIGZhbHNlIH1cbiAgICAvLyAgICAgY29uc3QgX2FzID0gX2Euc29ydCgpXG4gICAgLy8gICAgIGNvbnN0IF9icyA9IF9iLnNvcnQoKVxuICAgIC8vICAgICByZXR1cm4gIV9hcy5zb3J0KCkuZXZlcnkoKHZhbHVlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IF9ic1tpbmRleF0gPT09IHZhbHVlKVxuICAgIC8vICAgfSksXG4gICAgLy8gICB0YXAodiA9PiB0aGlzLmhpZGRlbkNvbHVtbnNDaGFuZ2UuZW1pdCh2KSksXG4gICAgLy8gICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgIC8vICkuc3Vic2NyaWJlKHYgPT4gY29uc29sZS5sb2coJ2hpZGRlbkNvbHVtbnNDaGFuZ2UnLCB2KSlcblxuICAgIC8vIFRPRE86IEltcGxlbWVudCB2aWV3Q2hhbmdlIGZvciBDb2xsZWN0aW9uVmlld2VyLlxuICAgIHRoaXMudmlld0NoYW5nZSA9IHRoaXMucGFnZS5waXBlKG1hcChwID0+ICh7IHN0YXJ0OiAwLCBlbmQ6IHAuY291bnQgfSkpKVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMucm93RGV0YWlsKSB7XG4gICAgICB0aGlzLl9yb3dEZXRhaWxUb2dnbGVTdWJzY3JpcHRpb24gPSB0aGlzLnJvd0RldGFpbC5fdG9nZ2xlLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIGlmICh0aGlzLm5neFJvd0RldGFpbCkge1xuICAgICAgICAgIHRoaXMubmd4Um93RGV0YWlsLnRvZ2dsZS5lbWl0KGV2ZW50KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3Jvd0RldGFpbFRvZ2dsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5jb2x1bW5Db21wb25lbnRzJCA9IHRoaXMuX2NvbHVtbkNoYW5nZXNTZXJ2aWNlLmNvbHVtbklucHV0Q2hhbmdlcyQucGlwZShcbiAgICAgIG1hcCgoKSA9PiB0aGlzLmNvbHVtbkNvbXBvbmVudHM/LnRvQXJyYXkoKSA/PyBbXSksXG4gICAgICBzdGFydFdpdGgodGhpcy5jb2x1bW5Db21wb25lbnRzPy50b0FycmF5KCkgPz8gW10pLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgIClcblxuICAgIGNvbnN0IF9jb2x1bW5zID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNvbHVtbkNvbXBvbmVudHMkLFxuICAgICAgdGhpcy5fY29sdW1uc1xuICAgIF0pLnBpcGUoXG4gICAgICBtYXAodiA9PiB0aGlzLl9nZXRNZXJnZWRUcGxBbmRJbnBDb2x1bW5zKHZbMF0sIHZbMV0gPz8gW10pKSxcbiAgICAgIC8vIHRhcCh2ID0+IGNvbnNvbGUubG9nKCdjb2xzJywgdikpLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSxcbiAgICApXG4gICAgdGhpcy5fY29sdW1uc09ic2VydmFibGUubmV4dChfY29sdW1ucylcbiAgfVxuXG4gIHByaXZhdGUgX2dldE1lcmdlZFRwbEFuZElucENvbHVtbnMoXG4gICAgdHBsQ29sczogRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50W10sXG4gICAgaW5wQ29sczogVGhlU2VhbURhdGF0YWJsZUNvbHVtbltdXG4gICk6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXSB7XG4gICAgY29uc3QgY29sczogVGhlU2VhbURhdGF0YWJsZUNvbHVtbltdID0gW11cblxuICAgIGlmICh0aGlzLnNlbGVjdGlvblR5cGUgPT09ICdjaGVja2JveCcpIHtcbiAgICAgIGNvbnN0IGNoZWNrQm94Q29sOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uID0ge1xuICAgICAgICBwcm9wOiAnJCRfX2NoZWNrYm94X18nLFxuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgd2lkdGg6IDQwLFxuICAgICAgICBzb3J0YWJsZTogZmFsc2UsXG4gICAgICAgIGNhbkF1dG9SZXNpemU6IGZhbHNlLFxuICAgICAgICBkcmFnZ2FibGU6IGZhbHNlLFxuICAgICAgICByZXNpemVhYmxlOiBmYWxzZSxcbiAgICAgICAgaGVhZGVyQ2hlY2tib3hhYmxlOiB0cnVlLFxuICAgICAgICBjaGVja2JveGFibGU6IHRydWVcbiAgICAgIH1cblxuICAgICAgY29scy5wdXNoKGNoZWNrQm94Q29sKVxuICAgIH1cblxuICAgIGNvbnN0IF90cGxDb2xzID0gdHJhbnNsYXRlVGVtcGxhdGVzKDxhbnk+KHRwbENvbHMgfHwgW10pKVxuICAgIGZvciAoY29uc3QgY29sIG9mIGlucENvbHMpIHtcbiAgICAgIGNvbnN0IHRwbENvbCA9IF90cGxDb2xzLmZpbmQodCA9PiB0LnByb3AgPT09IGNvbC5wcm9wKVxuICAgICAgLy8gY29uc29sZS5sb2coeyBjb2w6IHsgLi4uKGNvbCB8fCB7fSkgfSwgdHBsQ29sOiB7IC4uLih0cGxDb2wgfHwge30pIH0gfSlcblxuICAgICAgY29uc3QgZHRDb2x1bW5zID0gKHRoaXMubmd4RGF0YXRhYmxlICYmIHRoaXMubmd4RGF0YXRhYmxlLl9pbnRlcm5hbENvbHVtbnMpIHx8IFtdXG4gICAgICBjb25zdCBwcmV2ID0gZHRDb2x1bW5zLmZpbmQoYyA9PiBjLnByb3AgPT09IGNvbC5wcm9wKVxuXG4gICAgICBjb25zdCBpbnBDb2xEaWZmID0gdGhpcy5fZ2V0Q29sRGlmZihjb2wpXG4gICAgICBjb25zdCBfaW5wQ29sID0gaW5wQ29sRGlmZiA/IHt9IDogdGhpcy5faGFzUHJldkNvbERpZmYoY29sKSA/IHt9IDogY29sXG4gICAgICBpZiAoaW5wQ29sRGlmZikge1xuICAgICAgICBpbnBDb2xEaWZmLmZvckVhY2hSZW1vdmVkSXRlbShyID0+IHtcbiAgICAgICAgICBpZiAocHJldiAmJiBwcmV2Lmhhc093blByb3BlcnR5KHIua2V5KSkge1xuICAgICAgICAgICAgY29uc3QgayA9IHIua2V5IGFzIGtleW9mIFRhYmxlQ29sdW1uXG4gICAgICAgICAgICBkZWxldGUgcHJldltrXVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgaW5wQ29sRGlmZi5mb3JFYWNoQWRkZWRJdGVtKHIgPT4gKF9pbnBDb2wgYXMgYW55KVtyLmtleV0gPSByLmN1cnJlbnRWYWx1ZSlcbiAgICAgICAgaW5wQ29sRGlmZi5mb3JFYWNoQ2hhbmdlZEl0ZW0ociA9PiAoX2lucENvbCBhcyBhbnkpW3Iua2V5XSA9IHIuY3VycmVudFZhbHVlKVxuICAgICAgfVxuXG4gICAgICBsZXQgX3RwbENvbDogVGhlU2VhbURhdGF0YWJsZUNvbHVtbiA9IHt9XG4gICAgICBpZiAodHBsQ29sKSB7XG4gICAgICAgIGNvbnN0IHRwbENvbERpZmYgPSB0cGxDb2wgPyB0aGlzLl9nZXRDb2xEaWZmKHRwbENvbCwgdHJ1ZSkgOiB1bmRlZmluZWRcbiAgICAgICAgX3RwbENvbCA9IHRwbENvbERpZmYgPyB7fSA6IHRoaXMuX2hhc1ByZXZDb2xEaWZmKGNvbCwgdHJ1ZSkgPyB7fSA6IHRwbENvbFxuICAgICAgICBpZiAodHBsQ29sRGlmZikge1xuICAgICAgICAgIHRwbENvbERpZmYuZm9yRWFjaFJlbW92ZWRJdGVtKHIgPT4ge1xuICAgICAgICAgICAgaWYgKHByZXYgJiYgcHJldi5oYXNPd25Qcm9wZXJ0eShyLmtleSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgayA9IHIua2V5IGFzIGtleW9mIFRhYmxlQ29sdW1uXG4gICAgICAgICAgICAgIGRlbGV0ZSBwcmV2W2tdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgICB0cGxDb2xEaWZmLmZvckVhY2hBZGRlZEl0ZW0ociA9PiAoX3RwbENvbCBhcyBhbnkpW3Iua2V5XSA9IHIuY3VycmVudFZhbHVlKVxuICAgICAgICAgIHRwbENvbERpZmYuZm9yRWFjaENoYW5nZWRJdGVtKHIgPT4gKF90cGxDb2wgYXMgYW55KVtyLmtleV0gPSByLmN1cnJlbnRWYWx1ZSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBfY29sOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uID0ge1xuICAgICAgICAuLi4ocHJldiB8fCB7fSksXG4gICAgICAgIC4uLl9pbnBDb2wsXG4gICAgICAgIC4uLl90cGxDb2xcbiAgICAgIH1cblxuICAgICAgY29scy5wdXNoKF9jb2wpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMucm93QWN0aW9uSXRlbSkge1xuICAgICAgY29uc3QgYWN0aW9uTWVudUNvbHVtbjogVGhlU2VhbURhdGF0YWJsZUNvbHVtbiA9IHtcbiAgICAgICAgcHJvcDogJyQkX19hY3Rpb25NZW51X18nLFxuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgd2lkdGg6IDUwLFxuICAgICAgICBtaW5XaWR0aDogNTAsXG4gICAgICAgIG1heFdpZHRoOiA1MCxcbiAgICAgICAgcmVzaXplYWJsZTogZmFsc2UsXG4gICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgZHJhZ2dhYmxlOiBmYWxzZSxcbiAgICAgICAgLy8gVE9ETzogRml4IGNvbHVtbiBhdXRvIHNpemluZyB3aXRoIGZpeGVkIGNvbHVtbiBhbmQgY2VsbCBvdmVybGF5IGJlZm9yZSBlbmFibGluZy5cbiAgICAgICAgLy8gZnJvemVuUmlnaHQ6IHRydWUsXG4gICAgICAgIGNlbGxUZW1wbGF0ZTogdGhpcy5hY3Rpb25NZW51Q2VsbFRwbCxcbiAgICAgICAgaGVhZGVyVGVtcGxhdGU6IHRoaXMuYmxhbmtIZWFkZXJUcGxcbiAgICAgIH1cbiAgICAgIGNvbHMucHVzaChhY3Rpb25NZW51Q29sdW1uKVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgY29sIG9mIGNvbHMpIHtcbiAgICAgIGlmIChjb2wuaXNUcmVlQ29sdW1uICYmIGhhc1Byb3BlcnR5KGNvbCwgJ3RyZWVUb2dnbGVUZW1wbGF0ZScpKSB7XG4gICAgICAgIGNvbC50cmVlVG9nZ2xlVGVtcGxhdGUgPSB0aGlzLnRyZWVUb2dnbGVUcGxcbiAgICAgIH1cblxuICAgICAgaWYgKCFoYXNQcm9wZXJ0eShjb2wsICdoZWFkZXJUZW1wbGF0ZScpKSB7XG4gICAgICAgIGNvbC5oZWFkZXJUZW1wbGF0ZSA9IHRoaXMuaGVhZGVyVHBsXG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNQcm9wZXJ0eShjb2wsICdjZWxsVHlwZScpKSB7XG4gICAgICAgIGNvbC5jZWxsVGVtcGxhdGUgPSB0aGlzLmNlbGxUeXBlU2VsZWN0b3JUcGxcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzZXRDb2x1bW5EZWZhdWx0cyhjb2xzKVxuICAgIF9zZXRDb2x1bW5EZWZhdWx0cyhjb2xzKVxuXG5cbiAgICAvLyBjb25zb2xlLmxvZyhjb2xzLm1hcChjID0+ICh7IHByb3A6IGMucHJvcCwgY2FuQXV0b1Jlc2l6ZTogYy5jYW5BdXRvUmVzaXplIH0pKSlcblxuICAgIHJldHVybiBjb2xzXG4gIH1cblxuICBwcml2YXRlIF9oYXNQcmV2Q29sRGlmZihjb2w6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4sIGlzVHBsOiBib29sZWFuID0gZmFsc2UpOiBib29sZWFuIHtcbiAgICBpZiAoIWNvbCB8fCAhY29sLnByb3ApIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNvbnN0IGRpZmZlcnNNYXAgPSBpc1RwbCA/IHRoaXMuX2NvbERpZmZlcnNUcGwgOiB0aGlzLl9jb2xEaWZmZXJzSW5wXG5cbiAgICByZXR1cm4gISFkaWZmZXJzTWFwXG4gIH1cblxuICBwcml2YXRlIF9nZXRDb2xEaWZmKGNvbDogVGhlU2VhbURhdGF0YWJsZUNvbHVtbiwgaXNUcGw6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGlmICghY29sIHx8ICFjb2wucHJvcCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgZGlmZmVyc01hcCA9IGlzVHBsID8gdGhpcy5fY29sRGlmZmVyc1RwbCA6IHRoaXMuX2NvbERpZmZlcnNJbnBcblxuICAgIGlmICghZGlmZmVyc01hcFtjb2wucHJvcF0pIHtcbiAgICAgIGRpZmZlcnNNYXBbY29sLnByb3BdID0gdGhpcy5fZGlmZmVycy5maW5kKHt9KS5jcmVhdGUoKVxuICAgIH1cblxuICAgIGNvbnN0IGRpZmZlciA9IGRpZmZlcnNNYXBbY29sLnByb3BdXG5cbiAgICBjb25zdCBkaWZmID0gZGlmZmVyLmRpZmYoY29sKVxuICAgIHJldHVybiBkaWZmXG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVVbnVzZWREaWZmcyhjb2xzOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10pIHtcbiAgICBjb25zdCBpbnBLZXlzID0gT2JqZWN0LmtleXModGhpcy5fY29sRGlmZmVyc0lucClcbiAgICBpbnBLZXlzLmZpbHRlcihrID0+IGNvbHMuZmluZEluZGV4KGMgPT4gYy5wcm9wID09PSBrKSA9PT0gLTEpXG4gICAgICAuZm9yRWFjaChrID0+IHsgZGVsZXRlIHRoaXMuX2NvbERpZmZlcnNJbnBba10gfSlcblxuICAgIGNvbnN0IHRwbEtleXMgPSBPYmplY3Qua2V5cyh0aGlzLl9jb2xEaWZmZXJzVHBsKVxuICAgIHRwbEtleXMuZmlsdGVyKGsgPT4gY29scy5maW5kSW5kZXgoYyA9PiBjLnByb3AgPT09IGspID09PSAtMSlcbiAgICAgIC5mb3JFYWNoKGsgPT4geyBkZWxldGUgdGhpcy5fY29sRGlmZmVyc1RwbFtrXSB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0TWVudUJhckZpbHRlcnMoZmlsdGVyczogSURhdGFGaWx0ZXJbXSkge1xuICAgIC8vIGNvbnNvbGUubG9nKCdfc2V0TWVudUJhckZpbHRlcnMnLCBmaWx0ZXJzKVxuICAgIHRoaXMuX2ZpbHRlcnNTdWJqZWN0Lm5leHQoZmlsdGVycyB8fCBbXSlcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb2x1bW5Db21wb25lbnQocHJvcE5hbWU6IHN0cmluZyk6IERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudCB8IG51bGwge1xuICAgIGlmICghdGhpcy5jb2x1bW5Db21wb25lbnRzIHx8IHRoaXMuY29sdW1uQ29tcG9uZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3QgdHBsID0gdGhpcy5jb2x1bW5Db21wb25lbnRzLmZpbmQodCA9PiB0LnByb3AgPT09IHByb3BOYW1lKVxuICAgIGlmICh0cGwpIHtcbiAgICAgIHJldHVybiB0cGxcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgX2NvbHVtbkRhdGEoY29sOiBhbnkpOiB7IGNvbDogYW55LCBjb21wOiBEYXRhdGFibGVDb2x1bW5Db21wb25lbnQgfCBudWxsIH0ge1xuICAgIGNvbnN0IGNvbXAgPSB0aGlzLmdldENvbHVtbkNvbXBvbmVudChjb2wucHJvcClcbiAgICByZXR1cm4geyBjb2wsIGNvbXAgfVxuICB9XG5cbiAgX2dldFJvd0V4cGFuZGVkKHJvdzogYW55KSB7XG4gICAgaWYgKHRoaXMubmd4RGF0YXRhYmxlICYmIHRoaXMubmd4RGF0YXRhYmxlLmJvZHlDb21wb25lbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLm5neERhdGF0YWJsZS5ib2R5Q29tcG9uZW50LmdldFJvd0V4cGFuZGVkKHJvdylcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeUZuQ29sdW1uKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xuICAgIHJldHVybiBpdGVtLnByb3BcbiAgfVxuXG4gIHB1YmxpYyBvbkRhdGF0YWJsZVJlc2l6ZShldmVudDogSUVsZW1lbnRSZXNpemVkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5uZ3hEYXRhdGFibGUgJiYgdGhpcy5uZ3hEYXRhdGFibGVFbGVtZW50ICYmIHRoaXMubmd4RGF0YXRhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAvLyBUT0RPOiBDb25zaWRlciBpbnRlZ3JhdGluZyB0aGlzIGludG8gdGhlIG5neC1kYXRhdGFibGUgbGlicmFyeSB0byBhdm9pZFxuICAgICAgLy8gbXVsdGlwbGUgcmVzaXplIGNhbGxzIHdoZW4gdGhlIHRhYmxlIHJlc2l6ZXMgaXRzZWxmLlxuICAgICAgdGhpcy5uZ3hEYXRhdGFibGUucmVjYWxjdWxhdGUoKVxuICAgIH1cbiAgfVxuXG4gIF9vblJlc2l6ZShldmVudDogYW55KSB7XG4gICAgLy8gY29uc29sZS5sb2coJ3Jlc2l6ZScsIGV2ZW50LCBldmVudC5jb2x1bW4ucHJvcClcbiAgICB0aGlzLnJlc2l6ZS5lbWl0KGV2ZW50KVxuXG4gICAgaWYgKGV2ZW50LmlzRG9uZSAmJiB0aGlzLmNvbHVtbnMpIHtcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmNvbHVtbnNcbiAgICAgIGNvbnN0IGNvbCA9IGNvbHVtbnMuZmluZChjID0+IGMucHJvcCA9PT0gZXZlbnQuY29sdW1uLnByb3ApXG4gICAgICBpZiAoY29sKSB7XG4gICAgICAgIGNvbC5jYW5BdXRvUmVzaXplID0gZmFsc2VcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMucHJlZmVyZW5jZXNLZXkpIHtcbiAgICAgICAgY29uc3QgcHJlZiA9IHsgcHJvcDogZXZlbnQuY29sdW1uLnByb3AsIHdpZHRoOiBldmVudC5jb2x1bW4ud2lkdGgsIGNhbkF1dG9SZXNpemU6IGZhbHNlIH1cbiAgICAgICAgdGhpcy5fcHJlZmVyZW5jZXMuc2V0Q29sdW1uUHJlZmVyZW5jZSh0aGlzLnByZWZlcmVuY2VzS2V5LCBwcmVmKVxuICAgICAgfVxuXG4gICAgICB0aGlzLmNvbHVtbnMgPSBbIC4uLnRoaXMuY29sdW1ucyBdXG4gICAgfVxuICB9XG5cbiAgX29uVHJlZUFjdGlvbihldmVudDogYW55KSB7XG4gICAgY29uc3QgaW5kZXggPSBldmVudC5yb3dJbmRleFxuICAgIGNvbnN0IHJvdyA9IGV2ZW50LnJvd1xuICAgIGlmIChyb3cudHJlZVN0YXR1cyA9PT0gJ2NvbGxhcHNlZCcpIHtcbiAgICAgIHJvdy50cmVlU3RhdHVzID0gJ2V4cGFuZGVkJ1xuICAgIH0gZWxzZSB7XG4gICAgICByb3cudHJlZVN0YXR1cyA9ICdjb2xsYXBzZWQnXG4gICAgfVxuICAgIHRoaXMucm93cyA9IFsgLi4udGhpcy5yb3dzIF1cbiAgfVxuXG4gIHB1YmxpYyB0cmlnZ2VyQWN0aW9uUmVmcmVzaFJlcXVlc3QoKSB7XG4gICAgdGhpcy5hY3Rpb25SZWZyZXNoUmVxdWVzdC5lbWl0KHVuZGVmaW5lZClcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFnZUluZm8oKTogVGhlU2VhbVBhZ2VJbmZvIHtcbiAgICByZXR1cm4ge1xuICAgICAgb2Zmc2V0OiB0aGlzLm5neERhdGF0YWJsZT8ub2Zmc2V0ID8/IDAsXG4gICAgICBwYWdlU2l6ZTogdGhpcy5uZ3hEYXRhdGFibGU/LnBhZ2VTaXplID8/IDAsXG4gICAgICBsaW1pdDogdGhpcy5uZ3hEYXRhdGFibGU/LmxpbWl0LFxuICAgICAgY291bnQ6IHRoaXMubmd4RGF0YXRhYmxlPy5jb3VudCA/PyAwXG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -31,7 +31,12 @@ export class DatatableExportButtonComponent {
|
|
|
31
31
|
this._toastr.error(msg, 'Data Export');
|
|
32
32
|
}
|
|
33
33
|
const export$ = this._datatable.rows$
|
|
34
|
-
.pipe(take(1), map(rows =>
|
|
34
|
+
.pipe(take(1), map(rows => {
|
|
35
|
+
if (exporter.skipDataMapping) {
|
|
36
|
+
return rows;
|
|
37
|
+
}
|
|
38
|
+
return this._mapExportData(this._datatable.columns || [], rows);
|
|
39
|
+
}), concatMap(data => exporter.export(data)), catchError(err => {
|
|
35
40
|
console.error(err);
|
|
36
41
|
return of(false);
|
|
37
42
|
}), tap(success => {
|
|
@@ -39,7 +44,7 @@ export class DatatableExportButtonComponent {
|
|
|
39
44
|
this._toastr.success(`${exporter.label} export complete.`, 'Data Export');
|
|
40
45
|
}
|
|
41
46
|
else {
|
|
42
|
-
this._toastr.
|
|
47
|
+
this._toastr.error(`${exporter.label} export failed.`, 'Data Export');
|
|
43
48
|
}
|
|
44
49
|
}));
|
|
45
50
|
this._loading.while(export$).subscribe();
|
|
@@ -90,4 +95,4 @@ DatatableExportButtonComponent.ctorParameters = () => [
|
|
|
90
95
|
DatatableExportButtonComponent.propDecorators = {
|
|
91
96
|
exporters: [{ type: Input }]
|
|
92
97
|
};
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWV4cG9ydC1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9kYXRhdGFibGUtZXhwb3J0LWJ1dHRvbi9kYXRhdGFibGUtZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBVSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDOUcsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUN6QixPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXRFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRzFDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQzVGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUV0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQWF4RixNQUFNLE9BQU8sOEJBQThCO0lBVXpDLFlBQzhDLFVBQThCLEVBQ3pELE9BQXNCLEVBQ3RCLFFBQXNDLEVBQ3RDLFlBQXVDLEVBQ0csS0FBa0M7UUFKakQsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFDekQsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUE4QjtRQUN0QyxpQkFBWSxH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QUMsTUFBTSxDQUFDLENBQUE7U0FDbEI7UUFFRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFTyxTQUFTLENBQUMsTUFBOEIsRUFBRSxHQUFRO1FBQ3hELElBQUksV0FBVyxDQUFDLE1BQWEsRUFBRSxhQUFhLENBQUMsRUFBRTtZQUM3QyxNQUFNLE9BQU8sR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUE7WUFDMUUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBRSxNQUFjLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1NBQ3hFO1FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQTtRQUMzQixJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQ3BCO1FBQ0QsT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQzs7O1lBaEdGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsOEJBQThCO2dCQUN4QyxzZkFBdUQ7Z0JBRXZELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBWlEsa0JBQWtCLHVCQXdCdEIsTUFBTSxTQUFDLGlCQUFpQjtZQS9CcEIsYUFBYTtZQUliLDRCQUE0QjtZQUQ1Qix5QkFBeUI7NENBZ0M3QixRQUFRLFlBQUksTUFBTSxTQUFDLG9CQUFvQjs7O3dCQVh6QyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgaXNEZXZNb2RlLCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGNvbmNhdE1hcCwgbWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgZmFGaWxlRG93bmxvYWQgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cidcblxuaW1wb3J0IHsgSURhdGFFeHBvcnRlciB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9kYXRhLWV4cG9ydGVyJ1xuaW1wb3J0IHsgRHluYW1pY1ZhbHVlSGVscGVyU2VydmljZSwgVEhFU0VBTV9EWU5BTUlDX0RBVEEgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZHluYW1pYydcbmltcG9ydCB7IFRoZVNlYW1Mb2FkaW5nT3ZlcmxheVNlcnZpY2UgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vbG9hZGluZydcbmltcG9ydCB7IGhhc1Byb3BlcnR5IH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzJ1xuXG5pbXBvcnQgeyBEYXRhdGFibGVDb21wb25lbnQsIFRIRVNFQU1fREFUQVRBQkxFIH0gZnJvbSAnLi4vZGF0YXRhYmxlL2RhdGF0YWJsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vbW9kZWxzL3RhYmxlLWNvbHVtbidcblxuZXhwb3J0IGludGVyZmFjZSBJRGF0YXRhYmxlRXhwb3J0QnV0dG9uRGF0YSB7XG4gIGV4cG9ydGVyczogSURhdGFFeHBvcnRlcltdXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tZGF0YXRhYmxlLWV4cG9ydC1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YXRhYmxlLWV4cG9ydC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhdGFibGUtZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVFeHBvcnRCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGljb24gPSBmYUZpbGVEb3dubG9hZFxuXG4gIEBJbnB1dCgpIGV4cG9ydGVyczogSURhdGFFeHBvcnRlcltdIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gISh0aGlzLmV4cG9ydGVycyAmJiB0aGlzLmV4cG9ydGVycy5sZW5ndGggPiAwKVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChUSEVTRUFNX0RBVEFUQUJMRSkgcHJpdmF0ZSByZWFkb25seSBfZGF0YXRhYmxlOiBEYXRhdGFibGVDb21wb25lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2xvYWRpbmc6IFRoZVNlYW1Mb2FkaW5nT3ZlcmxheVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdmFsdWVIZWxwZXI6IER5bmFtaWNWYWx1ZUhlbHBlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUSEVTRUFNX0RZTkFNSUNfREFUQSkgcHJpdmF0ZSByZWFkb25seSBfZGF0YT86IElEYXRhdGFibGVFeHBvcnRCdXR0b25EYXRhXG4gICkge1xuICAgIGlmICh0aGlzLl9kYXRhICYmIHRoaXMuX2RhdGEuZXhwb3J0ZXJzKSB7XG4gICAgICB0aGlzLmV4cG9ydGVycyA9IHRoaXMuX2RhdGEuZXhwb3J0ZXJzXG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7IH1cblxuICBfb25FeHBvcnRlckNsaWNrZWQoZXhwb3J0ZXI6IElEYXRhRXhwb3J0ZXIpIHtcbiAgICBpZiAoIWV4cG9ydGVyLmV4cG9ydCkge1xuICAgICAgY29uc3QgbXNnID0gaXNEZXZNb2RlKClcbiAgICAgICAgPyBgRXhwb3J0ZXIgJyR7ZXhwb3J0ZXIubmFtZX0nIGlzIG1pc3NpbmcgYW4gZXhwb3J0IG1ldGhvZC5gXG4gICAgICAgIDogYCR7ZXhwb3J0ZXIubGFiZWx9IGV4cG9ydCBpcyBub3QgYXZhaWxhYmxlLmBcbiAgICAgIHRoaXMuX3RvYXN0ci5lcnJvcihtc2csICdEYXRhIEV4cG9ydCcpXG4gICAgfVxuXG4gICAgY29uc3QgZXhwb3J0JCA9IHRoaXMuX2RhdGF0YWJsZS5yb3dzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIG1hcChyb3dzID0+IHtcbiAgICAgICAgICBpZiAoZXhwb3J0ZXIuc2tpcERhdGFNYXBwaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gcm93c1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5fbWFwRXhwb3J0RGF0YSh0aGlzLl9kYXRhdGFibGUuY29sdW1ucyB8fCBbXSwgcm93cylcbiAgICAgICAgfSksXG4gICAgICAgIGNvbmNhdE1hcChkYXRhID0+IGV4cG9ydGVyLmV4cG9ydChkYXRhKSksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycilcbiAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpXG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoc3VjY2VzcyA9PiB7XG4gICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMuX3RvYXN0ci5zdWNjZXNzKGAke2V4cG9ydGVyLmxhYmVsfSBleHBvcnQgY29tcGxldGUuYCwgJ0RhdGEgRXhwb3J0JylcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fdG9hc3RyLmVycm9yKGAke2V4cG9ydGVyLmxhYmVsfSBleHBvcnQgZmFpbGVkLmAsICdEYXRhIEV4cG9ydCcpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKVxuXG4gICAgdGhpcy5fbG9hZGluZy53aGlsZShleHBvcnQkKS5zdWJzY3JpYmUoKVxuICB9XG5cbiAgcHJpdmF0ZSBfbWFwRXhwb3J0RGF0YShjb2x1bW5zOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10sIHJvd3M6IGFueVtdKSB7XG4gICAgY29uc3QgZGF0YTogYW55W10gPSBbXVxuXG4gICAgZm9yIChjb25zdCByb3cgb2Ygcm93cykge1xuICAgICAgY29uc3QgbmV3Um93OiBhbnkgPSB7fVxuXG4gICAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2x1bW5zKSB7XG4gICAgICAgIGlmICghY29sLmV4cG9ydElnbm9yZSkge1xuICAgICAgICAgIGNvbnN0IGNvbE5hbWUgPSBjb2wuZXhwb3J0SGVhZGVyIHx8IGNvbC5uYW1lIHx8IGNvbC5wcm9wXG4gICAgICAgICAgaWYgKGNvbE5hbWUpIHtcbiAgICAgICAgICAgIG5ld1Jvd1tjb2xOYW1lXSA9IHRoaXMuX3Jvd1ZhbHVlKGNvbCwgcm93KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkYXRhLnB1c2gobmV3Um93KVxuICAgIH1cblxuICAgIHJldHVybiBkYXRhXG4gIH1cblxuICBwcml2YXRlIF9yb3dWYWx1ZShjb2x1bW46IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4sIHJvdzogYW55KSB7XG4gICAgaWYgKGhhc1Byb3BlcnR5KGNvbHVtbiBhcyBhbnksICdleHBvcnRWYWx1ZScpKSB7XG4gICAgICBjb25zdCBjb250ZXh0ID0geyB2YWx1ZTogY29sdW1uLnByb3AgPyByb3dbY29sdW1uLnByb3BdIDogdW5kZWZpbmVkLCByb3cgfVxuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlSGVscGVyLmV2YWxTeW5jKChjb2x1bW4gYXMgYW55KS5leHBvcnRWYWx1ZSwgY29udGV4dClcbiAgICB9XG5cbiAgICBjb25zdCBjb2xQcm9wID0gY29sdW1uLnByb3BcbiAgICBpZiAoY29sUHJvcCkge1xuICAgICAgcmV0dXJuIHJvd1tjb2xQcm9wXVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxufVxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Directive, TemplateRef } from '@angular/core';
|
|
2
|
+
export class DatatableFooterTplDirective {
|
|
3
|
+
constructor(template) {
|
|
4
|
+
this.template = template;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
DatatableFooterTplDirective.decorators = [
|
|
8
|
+
{ type: Directive, args: [{
|
|
9
|
+
selector: '[seamDatatableFooterTpl]'
|
|
10
|
+
},] }
|
|
11
|
+
];
|
|
12
|
+
DatatableFooterTplDirective.ctorParameters = () => [
|
|
13
|
+
{ type: TemplateRef }
|
|
14
|
+
];
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWZvb3Rlci10cGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS9kYXRhdGFibGUtZm9vdGVyL2RhdGF0YWJsZS1mb290ZXItdHBsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUt0RCxNQUFNLE9BQU8sMkJBQTJCO0lBRXRDLFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBQUksQ0FBQzs7O1lBTG5ELFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMEJBQTBCO2FBQ3JDOzs7WUFKbUIsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2VhbURhdGF0YWJsZUZvb3RlclRwbF0nXG59KVxuZXhwb3J0IGNsYXNzIERhdGF0YWJsZUZvb3RlclRwbERpcmVjdGl2ZSB7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7IH1cblxufVxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ContentChild, Directive, Input, TemplateRef } from '@angular/core';
|
|
2
|
+
import { DatatableFooterTplDirective } from './datatable-footer-tpl.directive';
|
|
3
|
+
export class TheSeamDatatableFooterDirective {
|
|
4
|
+
get template() {
|
|
5
|
+
return this._templateInput || this._templateQuery;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
TheSeamDatatableFooterDirective.decorators = [
|
|
9
|
+
{ type: Directive, args: [{
|
|
10
|
+
// tslint:disable-next-line: directive-selector
|
|
11
|
+
selector: 'seam-datatable-footer'
|
|
12
|
+
},] }
|
|
13
|
+
];
|
|
14
|
+
TheSeamDatatableFooterDirective.propDecorators = {
|
|
15
|
+
_templateInput: [{ type: Input, args: ['template',] }],
|
|
16
|
+
_templateQuery: [{ type: ContentChild, args: [DatatableFooterTplDirective, { read: TemplateRef, static: true },] }]
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWZvb3Rlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL2RhdGF0YWJsZS1mb290ZXIvZGF0YXRhYmxlLWZvb3Rlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUzRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQU05RSxNQUFNLE9BQU8sK0JBQStCO0lBUzFDLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFBO0lBQ25ELENBQUM7OztZQWZGLFNBQVMsU0FBQztnQkFDVCwrQ0FBK0M7Z0JBQy9DLFFBQVEsRUFBRSx1QkFBdUI7YUFDbEM7Ozs2QkFJRSxLQUFLLFNBQUMsVUFBVTs2QkFHaEIsWUFBWSxTQUFDLDJCQUEyQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGVudENoaWxkLCBEaXJlY3RpdmUsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IERhdGF0YWJsZUZvb3RlclRwbERpcmVjdGl2ZSB9IGZyb20gJy4vZGF0YXRhYmxlLWZvb3Rlci10cGwuZGlyZWN0aXZlJ1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBkaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdzZWFtLWRhdGF0YWJsZS1mb290ZXInXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1EYXRhdGFibGVGb290ZXJEaXJlY3RpdmUge1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgndGVtcGxhdGUnKVxuICBfdGVtcGxhdGVJbnB1dDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBAQ29udGVudENoaWxkKERhdGF0YWJsZUZvb3RlclRwbERpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIF90ZW1wbGF0ZVF1ZXJ5OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIGdldCB0ZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlSW5wdXQgfHwgdGhpcy5fdGVtcGxhdGVRdWVyeVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -24,6 +24,8 @@ import { DatatableColumnPreferencesButtonComponent } from './datatable-column-pr
|
|
|
24
24
|
import { DatatableColumnPreferencesComponent } from './datatable-column-preferences/datatable-column-preferences.component';
|
|
25
25
|
import { DatatableColumnComponent } from './datatable-column/datatable-column.component';
|
|
26
26
|
import { DatatableExportButtonComponent } from './datatable-export-button/datatable-export-button.component';
|
|
27
|
+
import { DatatableFooterTplDirective } from './datatable-footer/datatable-footer-tpl.directive';
|
|
28
|
+
import { TheSeamDatatableFooterDirective } from './datatable-footer/datatable-footer.directive';
|
|
27
29
|
import { DatatableMenuBarColumnCenterComponent } from './datatable-menu-bar-column-center/datatable-menu-bar-column-center.component';
|
|
28
30
|
import { DatatableMenuBarColumnLeftComponent } from './datatable-menu-bar-column-left/datatable-menu-bar-column-left.component';
|
|
29
31
|
import { DatatableMenuBarColumnRightComponent } from './datatable-menu-bar-column-right/datatable-menu-bar-column-right.component';
|
|
@@ -56,6 +58,8 @@ TheSeamDatatableModule.decorators = [
|
|
|
56
58
|
DatatableExportButtonComponent,
|
|
57
59
|
TheSeamDatatableRowDetailDirective,
|
|
58
60
|
DatatableRowDetailTplDirective,
|
|
61
|
+
TheSeamDatatableFooterDirective,
|
|
62
|
+
DatatableFooterTplDirective,
|
|
59
63
|
DatatableColumnPreferencesComponent,
|
|
60
64
|
DatatableColumnPreferencesButtonComponent,
|
|
61
65
|
DatatableActionMenuItemDirective,
|
|
@@ -98,6 +102,8 @@ TheSeamDatatableModule.decorators = [
|
|
|
98
102
|
DatatableExportButtonComponent,
|
|
99
103
|
TheSeamDatatableRowDetailDirective,
|
|
100
104
|
DatatableRowDetailTplDirective,
|
|
105
|
+
TheSeamDatatableFooterDirective,
|
|
106
|
+
DatatableFooterTplDirective,
|
|
101
107
|
DatatableColumnPreferencesComponent,
|
|
102
108
|
DatatableColumnPreferencesButtonComponent,
|
|
103
109
|
DatatableActionMenuItemDirective,
|
|
@@ -117,4 +123,4 @@ TheSeamDatatableModule.decorators = [
|
|
|
117
123
|
]
|
|
118
124
|
},] }
|
|
119
125
|
];
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvZGF0YXRhYmxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDbkUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0s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QWdDO29CQUNoQyx5QkFBeUI7b0JBQ3pCLHdCQUF3QjtvQkFDeEIsK0JBQStCO29CQUMvQiw4QkFBOEI7b0JBQzlCLGtDQUFrQztvQkFDbEMsOEJBQThCO29CQUM5QixtQ0FBbUM7b0JBQ25DLHlDQUF5QztvQkFDekMsZ0NBQWdDO29CQUNoQyw0QkFBNEI7b0JBQzVCLG1DQUFtQztvQkFDbkMscUNBQXFDO29CQUNyQyxvQ0FBb0M7b0JBQ3BDLDZCQUE2QjtpQkFDOUI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsc0NBQXNDLEVBQUU7aUJBQy9FO2dCQUNELGVBQWUsRUFBRTtvQkFDZixtQ0FBbUM7b0JBQ25DLDhCQUE4QjtvQkFDOUIsNkJBQTZCO2lCQUM5QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5J1xuaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5J1xuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcblxuaW1wb3J0IHsgRm9udEF3ZXNvbWVNb2R1bGUgfSBmcm9tICdAZm9ydGF3ZXNvbWUvYW5ndWxhci1mb250YXdlc29tZSdcbmltcG9ydCB7IE5neERhdGF0YWJsZU1vZHVsZSwgU2Nyb2xsYmFySGVscGVyIH0gZnJvbSAnQG1hcmtsYi9uZ3gtZGF0YXRhYmxlJ1xuaW1wb3J0IHsgVG9hc3RyTW9kdWxlIH0gZnJvbSAnbmd4LXRvYXN0cidcblxuaW1wb3J0IHsgVGhlU2VhbUJ1dHRvbnNNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vYnV0dG9ucydcbmltcG9ydCB7IFRoZVNlYW1DaGVja2JveE1vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9jaGVja2JveCdcbmltcG9ydCB7IFRoZVNlYW1Db25maXJtRGlhbG9nTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2NvbmZpcm0tZGlhbG9nJ1xuaW1wb3J0IHsgVGhlU2VhbUZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9mb3JtLWZpZWxkJ1xuaW1wb3J0IHsgVGhlU2VhbUljb25Nb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vaWNvbidcbmltcG9ydCB7IFRoZVNlYW1Mb2FkaW5nTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2xvYWRpbmcnXG5pbXBvcnQgeyBUaGVTZWFtTWVudU1vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9tZW51J1xuaW1wb3J0IHsgVGhlU2VhbVBvcG92ZXJNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vcG9wb3ZlcidcbmltcG9ydCB7IFRoZVNlYW1TaGFyZWRNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vc2hhcmVkJ1xuaW1wb3J0IHsgVGhlU2VhbVRhYmxlQ2VsbFR5cGVNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdGFibGUtY2VsbC10eXBlJ1xuXG5pbXBvcnQgeyBEYXRhdGFibGVBY3Rpb25NZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZGF0YXRhYmxlLWFjdGlvbi1tZW51LWl0ZW0vZGF0YXRhYmxlLWFjdGlvbi1tZW51LWl0ZW0uY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YXRhYmxlQWN0aW9uTWVudUNvbXBvbmVudCB9IGZyb20gJy4vZGF0YXRhYmxlLWFjdGlvbi1tZW51L2RhdGF0YWJsZS1hY3Rpb24tbWVudS5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVDb2x1bW5QcmVmZXJlbmNlc0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy1idXR0b24vZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy1idXR0b24uY29tcG9uZW50JyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOiBtYXgtbGluZS1sZW5ndGhcbmltcG9ydCB7IERhdGF0YWJsZUNvbHVtblByZWZlcmVuY2VzQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzL2RhdGF0YWJsZS1jb2x1bW4tcHJlZmVyZW5jZXMuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUtY29sdW1uL2RhdGF0YWJsZS1jb2x1bW4uY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YXRhYmxlRXhwb3J0QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUtZXhwb3J0LWJ1dHRvbi9kYXRhdGFibGUtZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVNZW51QmFyQ29sdW1uQ2VudGVyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUtbWVudS1iYXItY29sdW1uLWNlbnRlci9kYXRhdGFibGUtbWVudS1iYXItY29sdW1uLWNlbnRlci5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVNZW51QmFyQ29sdW1uTGVmdENvbXBvbmVudCB9IGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1sZWZ0L2RhdGF0YWJsZS1tZW51LWJhci1jb2x1bW4tbGVmdC5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVNZW51QmFyQ29sdW1uUmlnaHRDb21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1tZW51LWJhci1jb2x1bW4tcmlnaHQvZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1yaWdodC5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVNZW51QmFyUm93Q29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUtbWVudS1iYXItcm93L2RhdGF0YWJsZS1tZW51LWJhci1yb3cuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YXRhYmxlTWVudUJhclRleHRDb21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1tZW51LWJhci10ZXh0L2RhdGF0YWJsZS1tZW51LWJhci10ZXh0LmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZU1lbnVCYXJDb21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1tZW51LWJhci9kYXRhdGFibGUtbWVudS1iYXIuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YXRhYmxlUm93RGV0YWlsVHBsRGlyZWN0aXZlIH0gZnJvbSAnLi9kYXRhdGFibGUtcm93LWRldGFpbC9kYXRhdGFibGUtcm93LWRldGFpbC10cGwuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZVJvd0RldGFpbERpcmVjdGl2ZSB9IGZyb20gJy4vZGF0YXRhYmxlLXJvdy1kZXRhaWwvZGF0YXRhYmxlLXJvdy1kZXRhaWwuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRGF0YXRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUvZGF0YXRhYmxlLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZUFjdGlvbk1lbnVJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1hY3Rpb24tbWVudS1pdGVtLmRpcmVjdGl2ZSdcbmltcG9ydCB7IERhdGF0YWJsZUFjdGlvbk1lbnVUb2dnbGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWFjdGlvbi1tZW51LXRvZ2dsZS5kaXJlY3RpdmUnXG5pbXBvcnQgeyBEYXRhdGFibGVDZWxsVHBsRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1jZWxsLXRwbC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBEYXRhdGFibGVGaWx0ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWZpbHRlci5kaXJlY3RpdmUnXG5pbXBvcnQgeyBEYXRhdGFibGVSb3dBY3Rpb25JdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1yb3ctYWN0aW9uLWl0ZW0uZGlyZWN0aXZlJ1xuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZVNjcm9sbGJhckhlbHBlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RhdGF0YWJsZS1zY3JvbGxiYXItaGVscGVyLnNlcnZpY2UnXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIERhdGF0YWJsZUNvbXBvbmVudCxcbiAgICBEYXRhdGFibGVDZWxsVHBsRGlyZWN0aXZlLFxuICAgIERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudCxcbiAgICBEYXRhdGFibGVBY3Rpb25NZW51Q29tcG9uZW50LFxuICAgIERhdGF0YWJsZUFjdGlvbk1lbnVUb2dnbGVEaXJlY3RpdmUsXG4gICAgRGF0YXRhYmxlQWN0aW9uTWVudUl0ZW1Db21wb25lbnQsXG4gICAgRGF0YXRhYmxlTWVudUJhckNvbXBvbmVudCxcbiAgICBEYXRhdGFibGVGaWx0ZXJEaXJlY3RpdmUsXG4gICAgRGF0YXRhYmxlUm93QWN0aW9uSXRlbURpcmVjdGl2ZSxcbiAgICBEYXRhdGFibGVFeHBvcnRCdXR0b25Db21wb25lbnQsXG4gICAgVGhlU2VhbURhdGF0YWJsZVJvd0RldGFpbERpcmVjdGl2ZSxcbiAgICBEYXRhdGFibGVSb3dEZXRhaWxUcGxEaXJlY3RpdmUsXG4gICAgRGF0YXRhYmxlQ29sdW1uUHJlZmVyZW5jZXNDb21wb25lbnQsXG4gICAgRGF0YXRhYmxlQ29sdW1uUHJlZmVyZW5jZXNCdXR0b25Db21wb25lbnQsXG4gICAgRGF0YXRhYmxlQWN0aW9uTWVudUl0ZW1EaXJlY3RpdmUsXG4gICAgRGF0YXRhYmxlTWVudUJhclJvd0NvbXBvbmVudCxcbiAgICBEYXRhdGFibGVNZW51QmFyQ29sdW1uTGVmdENvbXBvbmVudCxcbiAgICBEYXRhdGFibGVNZW51QmFyQ29sdW1uQ2VudGVyQ29tcG9uZW50LFxuICAgIERhdGF0YWJsZU1lbnVCYXJDb2x1bW5SaWdodENvbXBvbmVudCxcbiAgICBEYXRhdGFibGVNZW51QmFyVGV4dENvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBOZ3hEYXRhdGFibGVNb2R1bGUsXG4gICAgRm9udEF3ZXNvbWVNb2R1bGUsXG4gICAgT3ZlcmxheU1vZHVsZSxcbiAgICBBMTF5TW9kdWxlLFxuICAgIFRoZVNlYW1TaGFyZWRNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFRoZVNlYW1NZW51TW9kdWxlLFxuICAgIFRoZVNlYW1CdXR0b25zTW9kdWxlLFxuICAgIFRoZVNlYW1JY29uTW9kdWxlLFxuICAgIFRvYXN0ck1vZHVsZSxcbiAgICBUaGVTZWFtTG9hZGluZ01vZHVsZSxcbiAgICBQb3J0YWxNb2R1bGUsXG4gICAgVGhlU2VhbUNvbmZpcm1EaWFsb2dNb2R1bGUsXG4gICAgVGhlU2VhbVBvcG92ZXJNb2R1bGUsXG4gICAgVGhlU2VhbUNoZWNrYm94TW9kdWxlLFxuICAgIFRoZVNlYW1Gb3JtRmllbGRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBUaGVTZWFtVGFibGVDZWxsVHlwZU1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRGF0YXRhYmxlQ29tcG9uZW50LFxuICAgIERhdGF0YWJsZUNlbGxUcGxEaXJlY3RpdmUsXG4gICAgRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50LFxuICAgIERhdGF0YWJsZUFjdGlvbk1lbnVDb21wb25lbnQsXG4gICAgRGF0YXRhYmxlQWN0aW9uTWVudUl0ZW1Db21wb25lbnQsXG4gICAgRGF0YXRhYmxlTWVudUJhckNvbXBvbmVudCxcbiAgICBEYXRhdGFibGVGaWx0ZXJEaXJlY3RpdmUsXG4gICAgRGF0YXRhYmxlUm93QWN0aW9uSXRlbURpcmVjdGl2ZSxcbiAgICBEYXRhdGFibGVFeHBvcnRCdXR0b25Db21wb25lbnQsXG4gICAgVGhlU2VhbURhdGF0YWJsZVJvd0RldGFpbERpcmVjdGl2ZSxcbiAgICBEYXRhdGFibGVSb3dEZXRhaWxUcGxEaXJlY3RpdmUsXG4gICAgRGF0YXRhYmxlQ29sdW1uUHJlZmVyZW5jZXNDb21wb25lbnQsXG4gICAgRGF0YXRhYmxlQ29sdW1uUHJlZmVyZW5jZXNCdXR0b25Db21wb25lbnQsXG4gICAgRGF0YXRhYmxlQWN0aW9uTWVudUl0ZW1EaXJlY3RpdmUsXG4gICAgRGF0YXRhYmxlTWVudUJhclJvd0NvbXBvbmVudCxcbiAgICBEYXRhdGFibGVNZW51QmFyQ29sdW1uTGVmdENvbXBvbmVudCxcbiAgICBEYXRhdGFibGVNZW51QmFyQ29sdW1uQ2VudGVyQ29tcG9uZW50LFxuICAgIERhdGF0YWJsZU1lbnVCYXJDb2x1bW5SaWdodENvbXBvbmVudCxcbiAgICBEYXRhdGFibGVNZW51QmFyVGV4dENvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IFNjcm9sbGJhckhlbHBlciwgdXNlQ2xhc3M6IFRoZVNlYW1EYXRhdGFibGVTY3JvbGxiYXJIZWxwZXJTZXJ2aWNlIH1cbiAgXSxcbiAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgRGF0YXRhYmxlQ29sdW1uUHJlZmVyZW5jZXNDb21wb25lbnQsXG4gICAgRGF0YXRhYmxlRXhwb3J0QnV0dG9uQ29tcG9uZW50LFxuICAgIERhdGF0YWJsZU1lbnVCYXJUZXh0Q29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVGhlU2VhbURhdGF0YWJsZU1vZHVsZSB7IH1cbiJdfQ==
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvZGF0YXRhYmxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDbkUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0s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QjtvQkFDdEIsbUJBQW1CO29CQUNuQiwwQkFBMEI7aUJBQzNCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxrQkFBa0I7b0JBQ2xCLHlCQUF5QjtvQkFDekIsd0JBQXdCO29CQUN4Qiw0QkFBNEI7b0JBQzVCLGdDQUFnQztvQkFDaEMseUJBQXlCO29CQUN6Qix3QkFBd0I7b0JBQ3hCLCtCQUErQjtvQkFDL0IsOEJBQThCO29CQUM5QixrQ0FBa0M7b0JBQ2xDLDhCQUE4QjtvQkFDOUIsK0JBQStCO29CQUMvQiwyQkFBMkI7b0JBQzNCLG1DQUFtQztvQkFDbkMseUNBQXlDO29CQUN6QyxnQ0FBZ0M7b0JBQ2hDLDRCQUE0QjtvQkFDNUIsbUNBQW1DO29CQUNuQyxxQ0FBcUM7b0JBQ3JDLG9DQUFvQztvQkFDcEMsNkJBQTZCO2lCQUM5QjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxzQ0FBc0MsRUFBRTtpQkFDL0U7Z0JBQ0QsZUFBZSxFQUFFO29CQUNmLG1DQUFtQztvQkFDbkMsOEJBQThCO29CQUM5Qiw2QkFBNkI7aUJBQzlCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknXG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknXG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuXG5pbXBvcnQgeyBGb250QXdlc29tZU1vZHVsZSB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJ1xuaW1wb3J0IHsgTmd4RGF0YXRhYmxlTW9kdWxlLCBTY3JvbGxiYXJIZWxwZXIgfSBmcm9tICdAbWFya2xiL25neC1kYXRhdGFibGUnXG5pbXBvcnQgeyBUb2FzdHJNb2R1bGUgfSBmcm9tICduZ3gtdG9hc3RyJ1xuXG5pbXBvcnQgeyBUaGVTZWFtQnV0dG9uc01vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9idXR0b25zJ1xuaW1wb3J0IHsgVGhlU2VhbUNoZWNrYm94TW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2NoZWNrYm94J1xuaW1wb3J0IHsgVGhlU2VhbUNvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vY29uZmlybS1kaWFsb2cnXG5pbXBvcnQgeyBUaGVTZWFtRm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2Zvcm0tZmllbGQnXG5pbXBvcnQgeyBUaGVTZWFtSWNvbk1vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9pY29uJ1xuaW1wb3J0IHsgVGhlU2VhbUxvYWRpbmdNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vbG9hZGluZydcbmltcG9ydCB7IFRoZVNlYW1NZW51TW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL21lbnUnXG5pbXBvcnQgeyBUaGVTZWFtUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9wb3BvdmVyJ1xuaW1wb3J0IHsgVGhlU2VhbVNoYXJlZE1vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9zaGFyZWQnXG5pbXBvcnQgeyBUaGVTZWFtVGFibGVDZWxsVHlwZU1vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi90YWJsZS1jZWxsLXR5cGUnXG5cbmltcG9ydCB7IERhdGF0YWJsZUFjdGlvbk1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUtYWN0aW9uLW1lbnUtaXRlbS9kYXRhdGFibGUtYWN0aW9uLW1lbnUtaXRlbS5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVBY3Rpb25NZW51Q29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUtYWN0aW9uLW1lbnUvZGF0YXRhYmxlLWFjdGlvbi1tZW51LmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZUNvbHVtblByZWZlcmVuY2VzQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLWJ1dHRvbi9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLWJ1dHRvbi5jb21wb25lbnQnIC8vIHRzbGludDpkaXNhYmxlLWxpbmU6IG1heC1saW5lLWxlbmd0aFxuaW1wb3J0IHsgRGF0YXRhYmxlQ29sdW1uUHJlZmVyZW5jZXNDb21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1jb2x1bW4tcHJlZmVyZW5jZXMvZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1jb2x1bW4vZGF0YXRhYmxlLWNvbHVtbi5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVFeHBvcnRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1leHBvcnQtYnV0dG9uL2RhdGF0YWJsZS1leHBvcnQtYnV0dG9uLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZUZvb3RlclRwbERpcmVjdGl2ZSB9IGZyb20gJy4vZGF0YXRhYmxlLWZvb3Rlci9kYXRhdGFibGUtZm9vdGVyLXRwbC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBUaGVTZWFtRGF0YXRhYmxlRm9vdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kYXRhdGFibGUtZm9vdGVyL2RhdGF0YWJsZS1mb290ZXIuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRGF0YXRhYmxlTWVudUJhckNvbHVtbkNlbnRlckNvbXBvbmVudCB9IGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1jZW50ZXIvZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1jZW50ZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YXRhYmxlTWVudUJhckNvbHVtbkxlZnRDb21wb25lbnQgfSBmcm9tICcuL2RhdGF0YWJsZS1tZW51LWJhci1jb2x1bW4tbGVmdC9kYXRhdGFibGUtbWVudS1iYXItY29sdW1uLWxlZnQuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YXRhYmxlTWVudUJhckNvbHVtblJpZ2h0Q29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUtbWVudS1iYXItY29sdW1uLXJpZ2h0L2RhdGF0YWJsZS1tZW51LWJhci1jb2x1bW4tcmlnaHQuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YXRhYmxlTWVudUJhclJvd0NvbXBvbmVudCB9IGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLXJvdy9kYXRhdGFibGUtbWVudS1iYXItcm93LmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZU1lbnVCYXJUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUtbWVudS1iYXItdGV4dC9kYXRhdGFibGUtbWVudS1iYXItdGV4dC5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVNZW51QmFyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUtbWVudS1iYXIvZGF0YXRhYmxlLW1lbnUtYmFyLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGF0YWJsZVJvd0RldGFpbFRwbERpcmVjdGl2ZSB9IGZyb20gJy4vZGF0YXRhYmxlLXJvdy1kZXRhaWwvZGF0YXRhYmxlLXJvdy1kZXRhaWwtdHBsLmRpcmVjdGl2ZSdcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVSb3dEZXRhaWxEaXJlY3RpdmUgfSBmcm9tICcuL2RhdGF0YWJsZS1yb3ctZGV0YWlsL2RhdGF0YWJsZS1yb3ctZGV0YWlsLmRpcmVjdGl2ZSdcbmltcG9ydCB7IERhdGF0YWJsZUNvbXBvbmVudCB9IGZyb20gJy4vZGF0YXRhYmxlL2RhdGF0YWJsZS5jb21wb25lbnQnXG5pbXBvcnQgeyBEYXRhdGFibGVBY3Rpb25NZW51SXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9kYXRhdGFibGUtYWN0aW9uLW1lbnUtaXRlbS5kaXJlY3RpdmUnXG5pbXBvcnQgeyBEYXRhdGFibGVBY3Rpb25NZW51VG9nZ2xlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1hY3Rpb24tbWVudS10b2dnbGUuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRGF0YXRhYmxlQ2VsbFRwbERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9kYXRhdGFibGUtY2VsbC10cGwuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRGF0YXRhYmxlRmlsdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2RhdGF0YWJsZS1maWx0ZXIuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRGF0YXRhYmxlUm93QWN0aW9uSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9kYXRhdGFibGUtcm93LWFjdGlvbi1pdGVtLmRpcmVjdGl2ZSdcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVTY3JvbGxiYXJIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9kYXRhdGFibGUtc2Nyb2xsYmFyLWhlbHBlci5zZXJ2aWNlJ1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBEYXRhdGFibGVDb21wb25lbnQsXG4gICAgRGF0YXRhYmxlQ2VsbFRwbERpcmVjdGl2ZSxcbiAgICBEYXRhdGFibGVDb2x1bW5Db21wb25lbnQsXG4gICAgRGF0YXRhYmxlQWN0aW9uTWVudUNvbXBvbmVudCxcbiAgICBEYXRhdGFibGVBY3Rpb25NZW51VG9nZ2xlRGlyZWN0aXZlLFxuICAgIERhdGF0YWJsZUFjdGlvbk1lbnVJdGVtQ29tcG9uZW50LFxuICAgIERhdGF0YWJsZU1lbnVCYXJDb21wb25lbnQsXG4gICAgRGF0YXRhYmxlRmlsdGVyRGlyZWN0aXZlLFxuICAgIERhdGF0YWJsZVJvd0FjdGlvbkl0ZW1EaXJlY3RpdmUsXG4gICAgRGF0YXRhYmxlRXhwb3J0QnV0dG9uQ29tcG9uZW50LFxuICAgIFRoZVNlYW1EYXRhdGFibGVSb3dEZXRhaWxEaXJlY3RpdmUsXG4gICAgRGF0YXRhYmxlUm93RGV0YWlsVHBsRGlyZWN0aXZlLFxuICAgIFRoZVNlYW1EYXRhdGFibGVGb290ZXJEaXJlY3RpdmUsXG4gICAgRGF0YXRhYmxlRm9vdGVyVHBsRGlyZWN0aXZlLFxuICAgIERhdGF0YWJsZUNvbHVtblByZWZlcmVuY2VzQ29tcG9uZW50LFxuICAgIERhdGF0YWJsZUNvbHVtblByZWZlcmVuY2VzQnV0dG9uQ29tcG9uZW50LFxuICAgIERhdGF0YWJsZUFjdGlvbk1lbnVJdGVtRGlyZWN0aXZlLFxuICAgIERhdGF0YWJsZU1lbnVCYXJSb3dDb21wb25lbnQsXG4gICAgRGF0YXRhYmxlTWVudUJhckNvbHVtbkxlZnRDb21wb25lbnQsXG4gICAgRGF0YXRhYmxlTWVudUJhckNvbHVtbkNlbnRlckNvbXBvbmVudCxcbiAgICBEYXRhdGFibGVNZW51QmFyQ29sdW1uUmlnaHRDb21wb25lbnQsXG4gICAgRGF0YXRhYmxlTWVudUJhclRleHRDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTmd4RGF0YXRhYmxlTW9kdWxlLFxuICAgIEZvbnRBd2Vzb21lTW9kdWxlLFxuICAgIE92ZXJsYXlNb2R1bGUsXG4gICAgQTExeU1vZHVsZSxcbiAgICBUaGVTZWFtU2hhcmVkTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZSxcbiAgICBUaGVTZWFtTWVudU1vZHVsZSxcbiAgICBUaGVTZWFtQnV0dG9uc01vZHVsZSxcbiAgICBUaGVTZWFtSWNvbk1vZHVsZSxcbiAgICBUb2FzdHJNb2R1bGUsXG4gICAgVGhlU2VhbUxvYWRpbmdNb2R1bGUsXG4gICAgUG9ydGFsTW9kdWxlLFxuICAgIFRoZVNlYW1Db25maXJtRGlhbG9nTW9kdWxlLFxuICAgIFRoZVNlYW1Qb3BvdmVyTW9kdWxlLFxuICAgIFRoZVNlYW1DaGVja2JveE1vZHVsZSxcbiAgICBUaGVTZWFtRm9ybUZpZWxkTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVGhlU2VhbVRhYmxlQ2VsbFR5cGVNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIERhdGF0YWJsZUNvbXBvbmVudCxcbiAgICBEYXRhdGFibGVDZWxsVHBsRGlyZWN0aXZlLFxuICAgIERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudCxcbiAgICBEYXRhdGFibGVBY3Rpb25NZW51Q29tcG9uZW50LFxuICAgIERhdGF0YWJsZUFjdGlvbk1lbnVJdGVtQ29tcG9uZW50LFxuICAgIERhdGF0YWJsZU1lbnVCYXJDb21wb25lbnQsXG4gICAgRGF0YXRhYmxlRmlsdGVyRGlyZWN0aXZlLFxuICAgIERhdGF0YWJsZVJvd0FjdGlvbkl0ZW1EaXJlY3RpdmUsXG4gICAgRGF0YXRhYmxlRXhwb3J0QnV0dG9uQ29tcG9uZW50LFxuICAgIFRoZVNlYW1EYXRhdGFibGVSb3dEZXRhaWxEaXJlY3RpdmUsXG4gICAgRGF0YXRhYmxlUm93RGV0YWlsVHBsRGlyZWN0aXZlLFxuICAgIFRoZVNlYW1EYXRhdGFibGVGb290ZXJEaXJlY3RpdmUsXG4gICAgRGF0YXRhYmxlRm9vdGVyVHBsRGlyZWN0aXZlLFxuICAgIERhdGF0YWJsZUNvbHVtblByZWZlcmVuY2VzQ29tcG9uZW50LFxuICAgIERhdGF0YWJsZUNvbHVtblByZWZlcmVuY2VzQnV0dG9uQ29tcG9uZW50LFxuICAgIERhdGF0YWJsZUFjdGlvbk1lbnVJdGVtRGlyZWN0aXZlLFxuICAgIERhdGF0YWJsZU1lbnVCYXJSb3dDb21wb25lbnQsXG4gICAgRGF0YXRhYmxlTWVudUJhckNvbHVtbkxlZnRDb21wb25lbnQsXG4gICAgRGF0YXRhYmxlTWVudUJhckNvbHVtbkNlbnRlckNvbXBvbmVudCxcbiAgICBEYXRhdGFibGVNZW51QmFyQ29sdW1uUmlnaHRDb21wb25lbnQsXG4gICAgRGF0YXRhYmxlTWVudUJhclRleHRDb21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBTY3JvbGxiYXJIZWxwZXIsIHVzZUNsYXNzOiBUaGVTZWFtRGF0YXRhYmxlU2Nyb2xsYmFySGVscGVyU2VydmljZSB9XG4gIF0sXG4gIGVudHJ5Q29tcG9uZW50czogW1xuICAgIERhdGF0YWJsZUNvbHVtblByZWZlcmVuY2VzQ29tcG9uZW50LFxuICAgIERhdGF0YWJsZUV4cG9ydEJ1dHRvbkNvbXBvbmVudCxcbiAgICBEYXRhdGFibGVNZW51QmFyVGV4dENvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1EYXRhdGFibGVNb2R1bGUgeyB9XG4iXX0=
|
|
@@ -5,6 +5,8 @@ export * from './datatable-column/datatable-column.component';
|
|
|
5
5
|
export * from './datatable-column-preferences/datatable-column-preferences.component';
|
|
6
6
|
export * from './datatable-column-preferences-button/datatable-column-preferences-button.component';
|
|
7
7
|
export * from './datatable-export-button/datatable-export-button.component';
|
|
8
|
+
export * from './datatable-footer/datatable-footer-tpl.directive';
|
|
9
|
+
export * from './datatable-footer/datatable-footer.directive';
|
|
8
10
|
export * from './datatable-menu-bar/datatable-menu-bar.component';
|
|
9
11
|
export * from './datatable-menu-bar-column-center/datatable-menu-bar-column-center.component';
|
|
10
12
|
export * from './datatable-menu-bar-column-left/datatable-menu-bar-column-left.component';
|
|
@@ -36,4 +38,4 @@ export * from './tokens/datatable-preferences-accessor';
|
|
|
36
38
|
export * from './tokens/menubar-item-data';
|
|
37
39
|
export * from './utils/with-stored-column-info';
|
|
38
40
|
export * from './datatable.module';
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMseURBQXlELENBQUE7QUFDdkUsY0FBYyxtRUFBbUUsQ0FBQTtBQUNqRixjQUFjLCtDQUErQyxDQUFBO0FBQzdELGNBQWMsdUVBQXVFLENBQUE7QUFDckYsY0FBYyxxRkFBcUYsQ0FBQTtBQUNuRyxjQUFjLDZEQUE2RCxDQUFBO0FBQzNFLGNBQWMsbURBQW1ELENBQUE7QUFDakUsY0FBYywrQ0FBK0MsQ0FBQTtBQUM3RCxjQUFjLG1EQUFtRCxDQUFBO0FBQ2pFLGNBQWMsK0VBQStFLENBQUE7QUFDN0YsY0FBYywyRUFBMkUsQ0FBQTtBQUN6RixjQUFjLDZFQUE2RSxDQUFBO0FBQzNGLGNBQWMsMkRBQTJELENBQUE7QUFDekUsY0FBYyw2REFBNkQsQ0FBQTtBQUMzRSxjQUFjLDJEQUEyRCxDQUFBO0FBQ3pFLGNBQWMsdURBQXVELENBQUE7QUFFckUsY0FBYyxtREFBbUQsQ0FBQTtBQUNqRSxjQUFjLHFEQUFxRCxDQUFBO0FBQ25FLGNBQWMsMkNBQTJDLENBQUE7QUFDekQsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLGtEQUFrRCxDQUFBO0FBRWhFLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyxnQ0FBZ0MsQ0FBQTtBQUM5QyxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsNEJBQTRCLENBQUE7QUFDMUMsY0FBYyxvQkFBb0IsQ0FBQTtBQUNsQyxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsc0JBQXNCLENBQUE7QUFDcEMsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsb0JBQW9CLENBQUE7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQTtBQUVyQyxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMsMENBQTBDLENBQUE7QUFDeEQsY0FBYywrQ0FBK0MsQ0FBQTtBQUU3RCxjQUFjLHlDQUF5QyxDQUFBO0FBQ3ZELGNBQWMsNEJBQTRCLENBQUE7QUFFMUMsY0FBYyxpQ0FBaUMsQ0FBQTtBQUUvQyxjQUFjLG9CQUFvQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUvZGF0YXRhYmxlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLWFjdGlvbi1tZW51L2RhdGF0YWJsZS1hY3Rpb24tbWVudS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1hY3Rpb24tbWVudS1pdGVtL2RhdGF0YWJsZS1hY3Rpb24tbWVudS1pdGVtLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLWNvbHVtbi9kYXRhdGFibGUtY29sdW1uLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy9kYXRhdGFibGUtY29sdW1uLXByZWZlcmVuY2VzLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy1idXR0b24vZGF0YXRhYmxlLWNvbHVtbi1wcmVmZXJlbmNlcy1idXR0b24uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtZXhwb3J0LWJ1dHRvbi9kYXRhdGFibGUtZXhwb3J0LWJ1dHRvbi5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2RhdGF0YWJsZS1mb290ZXIvZGF0YXRhYmxlLWZvb3Rlci10cGwuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtZm9vdGVyL2RhdGF0YWJsZS1mb290ZXIuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtbWVudS1iYXIvZGF0YXRhYmxlLW1lbnUtYmFyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1jZW50ZXIvZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1jZW50ZXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtbWVudS1iYXItY29sdW1uLWxlZnQvZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1sZWZ0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLWNvbHVtbi1yaWdodC9kYXRhdGFibGUtbWVudS1iYXItY29sdW1uLXJpZ2h0LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLXJvdy9kYXRhdGFibGUtbWVudS1iYXItcm93LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZGF0YXRhYmxlLW1lbnUtYmFyLXRleHQvZGF0YXRhYmxlLW1lbnUtYmFyLXRleHQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtcm93LWRldGFpbC9kYXRhdGFibGUtcm93LWRldGFpbC10cGwuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUtcm93LWRldGFpbC9kYXRhdGFibGUtcm93LWRldGFpbC5kaXJlY3RpdmUnXG5cbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9kYXRhdGFibGUtYWN0aW9uLW1lbnUtaXRlbS5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWFjdGlvbi1tZW51LXRvZ2dsZS5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZGF0YXRhYmxlLWNlbGwtdHBsLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9kYXRhdGFibGUtZmlsdGVyLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9kYXRhdGFibGUtcm93LWFjdGlvbi1pdGVtLmRpcmVjdGl2ZSdcblxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvZGF0YXRhYmxlLWFjY2Vzc29yJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvZGF0YXRhYmxlLWRhdGEtc291cmNlJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvZGF0YXRhYmxlLWdxbC1kYXRhLXNvdXJjZSdcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL21lbnViYXItaXRlbS1kYXRhJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvcGFnZS1pbmZvJ1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvcHJlZmVyZW5jZXMtYWNjZXNzb3InXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9wcmVmZXJlbmNlcydcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3RhYmxlLWNvbHVtbidcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3NvcnQtZXZlbnQnXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9zb3J0LWl0ZW0nXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy90YWJsZS1jb2x1bW4nXG5cbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZGF0YXRhYmxlLWNvbHVtbi1jaGFuZ2VzLnNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2RhdGF0YWJsZS1wcmVmZXJlbmNlcy5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9kYXRhdGFibGUtc2Nyb2xsYmFyLWhlbHBlci5zZXJ2aWNlJ1xuXG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucy9kYXRhdGFibGUtcHJlZmVyZW5jZXMtYWNjZXNzb3InXG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucy9tZW51YmFyLWl0ZW0tZGF0YSdcblxuZXhwb3J0ICogZnJvbSAnLi91dGlscy93aXRoLXN0b3JlZC1jb2x1bW4taW5mbydcblxuZXhwb3J0ICogZnJvbSAnLi9kYXRhdGFibGUubW9kdWxlJ1xuIl19
|