@provoly/dashboard 1.4.10 → 1.4.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/esm2022/lib/core/store/search/search.effects.mjs +4 -6
- package/esm2022/lib/dashboard/components/widgets/base-widget.component.mjs +5 -1
- package/esm2022/lib/dashboard/filter/components/filter-group/filter-group.component.mjs +2 -2
- package/esm2022/lib/dashboard/store/dashboard.actions.mjs +3 -2
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +5 -2
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +3 -2
- package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +1 -1
- package/esm2022/widgets/widget-analytic/component/widget-analytic.component.mjs +1 -1
- package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +1 -1
- package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +1 -1
- package/esm2022/widgets/widget-iframe/component/widget-iframe.component.mjs +1 -1
- package/esm2022/widgets/widget-map/component/widget-map.component.mjs +1 -1
- package/esm2022/widgets/widget-table/component/widget-table.component.mjs +1 -1
- package/esm2022/widgets/widget-template/component/widget-template.component.mjs +1 -1
- package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +1 -1
- package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +2 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-iframe.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-template.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +14 -6
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/dashboard/components/widgets/base-widget.component.d.ts +1 -0
- package/lib/dashboard/store/dashboard.actions.d.ts +6 -1
- package/lib/dashboard/store/dashboard.effects.d.ts +1 -0
- package/package.json +37 -37
|
@@ -256,4 +256,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
256
256
|
type: Component,
|
|
257
257
|
args: [{ selector: 'pry-widget-table', template: "<pry-widget-table-css></pry-widget-table-css>\n<div class=\"o-widget o-widget--table\">\n @if (displayHeader$ | async) {\n <pry-widget-header\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n #header\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n (click)=\"refresh()\"\n >\n <pry-settings\n (click)=\"refresh()\"\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n (triggerClick)=\"this.refresh()\"\n class=\"o-settings\"\n >\n @if (optionsCopy && optionsCopy.style) {\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"table_style_headerTextAlign\">{{\n '@pry.widget.table.headerTextAlign' | i18n\n }}</label>\n <pry-select\n [items]=\"ALIGNMENT_OPTIONS\"\n [ngModel]=\"optionsCopy.style.headerTextAlign\"\n (ngModelChange)=\"updateStyle($event, 'headerTextAlign')\"\n id=\"table_style_headerTextAlign\"\n i18nPrefix=\"@pry.widget.table.align.\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"table_style_cellTextAlign\">{{\n '@pry.widget.table.cellTextAlign' | i18n\n }}</label>\n <pry-select\n [items]=\"ALIGNMENT_OPTIONS\"\n [ngModel]=\"optionsCopy.style.cellTextAlign\"\n (ngModelChange)=\"updateStyle($event, 'cellTextAlign')\"\n id=\"table_style_cellTextAlign\"\n i18nPrefix=\"@pry.widget.table.align.\"\n ></pry-select>\n </div>\n <div\n class=\"m-form-label-field u-display-flex -row -justify-space-between o-widget--table__vertical-separator\"\n >\n <label class=\"a-label\" for=\"table_style_verticalSeparator\">{{\n '@pry.widget.table.verticalSeparator' | i18n\n }}</label>\n <pry-checkbox\n [ngModel]=\"optionsCopy.style.showVerticalSeparator\"\n (ngModelChange)=\"updateStyle($event, 'showVerticalSeparator')\"\n id=\"table_style_verticalSeparator\"\n ></pry-checkbox>\n </div>\n }\n\n <div class=\"o-settings__popup__content__actions\">\n <button type=\"button\" class=\"a-btn a-btn--icon-text -link-like\" (click)=\"addColumn()\">\n <pry-icon iconSvg=\"post_add\"></pry-icon>\n {{ '@pry.widget.table.addColumn' | i18n }}\n </button>\n </div>\n\n @for (columnDef of optionsCopy?.columns ?? []; track columnDef.attributeId; let i = $index) {\n <div class=\"o-settings__popup__content__fields\" (click)=\"refresh()\">\n <div class=\"o-settings__popup__content__fields__head\">\n <div class=\"m-btn-group\">\n @if (i > 0) {\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"invertLayers(i, i - 1)\">\n <pry-icon iconSvg=\"fleche_haut\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.moveUp' | i18n }}</span>\n </button>\n }\n @if (i < (optionsCopy?.columns?.length ?? 0) - 1) {\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"invertLayers(i, i + 1)\">\n <pry-icon iconSvg=\"fleche_bas\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.action.moveDown' | i18n }}</span>\n </button>\n }\n </div>\n </div>\n\n <div class=\"o-settings__popup__content__fields__content\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"table_property\">{{ '@pry.widget.table.property' | i18n }}</label>\n <pry-select\n (click)=\"refresh()\"\n (ngModelChange)=\"changePropertyName($event, columnDef)\"\n [items]=\"properties$ | async\"\n [ngModel]=\"columnDef.property\"\n bindLabel=\"label\"\n bindValue=\"property\"\n id=\"table_property\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"table_label\">{{ '@pry.widget.table.label' | i18n }}</label>\n <input\n id=\"table_label\"\n class=\"a-form-field\"\n type=\"text\"\n (input)=\"changeLabel($event, columnDef)\"\n [value]=\"columnDef.label\"\n />\n </div>\n </div>\n <button\n (click)=\"deleteColumn(i)\"\n aria-label=\"delete\"\n type=\"button\"\n class=\"a-btn a-btn--icon-text -link-like\"\n data-func=\"delete\"\n >\n <pry-icon iconSvg=\"delete\" [width]=\"19\" [height]=\"19\"></pry-icon>\n <span>{{ '@pry.widget.table.deleteColumn' | i18n }}</span>\n </button>\n </div>\n }\n </pry-settings>\n </pry-widget-header>\n }\n\n <div class=\"a-table-wrapper\">\n @if (pagination$ | async; as pagination) {\n @if (pagination?.items ?? []; as allObjects) {\n @if (pagination.noFillersItems === 0) {\n <div class=\"no-result\" [style.height.%]=\"pagination.totalPages > 0 ? 80 : 100\">\n <img\n class=\"no-result__search\"\n src=\"../../../assets/svgs/pry_recherche_pas_de_resultat.svg\"\n alt=\"{{ '@pry.widget.table.empty' | i18n }}\"\n aria-hidden=\"true\"\n />\n <span class=\"no-result__text\">{{ '@pry.widget.table.empty' | i18n }}</span>\n </div>\n } @else if (pagination.noFillersItems > 0) {\n @if ((selectedIds$ | async) ?? []; as selectedIds) {\n @if ((columns$ | async) ?? []; as columns) {\n <table\n class=\"a-table\"\n [class.-show-vertical-separator]=\"optionsCopy?.style?.showVerticalSeparator\"\n [attr.aria-label]=\"'@pry.widget.table.description' | i18n\"\n >\n <thead>\n <tr>\n @if (allObjects?.length ?? 0 > 0) {\n <th>\n <pry-checkbox [ngModel]=\"areAllSelected\" (ngModelChange)=\"selectAll($event)\"></pry-checkbox>\n </th>\n }\n @for (column of columns; track column.attributeId; let i = $index) {\n <th\n resizable\n (click)=\"setOrder(column)\"\n [ngClass]=\"'u-txt-' + optionsCopy?.style?.headerTextAlign\"\n >\n <span>{{ column.label }}</span>\n @if (quickOrder$ | async; as quickOrder) {\n @if (quickOrder.attribute === column.attributeId) {\n <pry-icon\n [iconSvg]=\"quickOrder.asc ? 'chevron_top' : 'chevron_bottom'\"\n [height]=\"12\"\n [width]=\"12\"\n ></pry-icon>\n }\n }\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (item of allObjects; track item.id) {\n <tr\n [class.is-selected]=\"selectedIds.includes(item.id)\"\n [class.context-menu-selected]=\"contextMenuClickedId === item.id && (isContextMenuOpened$ | async)\"\n (contextmenu)=\"contextMenu($event, item)\"\n detachRow\n (selectedValue)=\"selection($event, item)\"\n [class.filler]=\"item.metadata!['__widget-table-filler']\"\n >\n <td class=\"checkbox-wrapper\">\n <pry-checkbox [ngModel]=\"selectedIds.includes(item.id)\"></pry-checkbox>\n </td>\n @for (column of columns; track column.attributeId) {\n <td class=\"u-ellipsis\" [ngClass]=\"'u-txt-' + optionsCopy?.style?.cellTextAlign\">\n @if (column.property === 'metadata') {\n <pry-metadata [item]=\"item\"></pry-metadata>\n }\n @if (column.property === 'oClass') {\n <p class=\"content-img\">\n <img\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"item | translateItemToSymbol | async\"\n [alt]=\"item.oClass | translateId: { type: 'class', output: 'name' } | async\"\n />\n </p>\n }\n @if (!['metadata', 'oClass'].includes(column.property)) {\n <pry-expand-value\n [value]=\"item | getValue: column.property | async\"\n [field]=\"column.field\"\n ></pry-expand-value>\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n }\n }\n }\n @if (pagination.totalPages > 0) {\n <div class=\"u-display-flex\">\n <pry-paginator\n [totalItemNb]=\"pagination.total\"\n (pageChange)=\"goToPage($event - 1)\"\n [nbPerPage]=\"pagination.rows\"\n [loaded]=\"pagination.loaded\"\n mode=\"short\"\n ></pry-paginator>\n @if (pagination.totalPages !== pagination.loadedPages) {\n <div class=\"a-table__pagination-label\">\n ({{\n '@pry.widget.table.remaining' | i18n: { remaining: pagination.totalPages - pagination.loadedPages }\n }})\n </div>\n }\n </div>\n }\n }\n }\n </div>\n</div>\n" }]
|
|
258
258
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }] });
|
|
259
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3dpZGdldHMvd2lkZ2V0LXRhYmxlL2NvbXBvbmVudC93aWRnZXQtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdGFibGUvY29tcG9uZW50L3dpZGdldC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUV6RSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUVsQixZQUFZLEVBQ1osY0FBYyxFQUVkLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUUxQixTQUFTLEVBRVQsU0FBUyxFQUtULG9CQUFvQixFQUNyQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sS0FBSyxNQUFNLHFCQUFxQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFpQjFCLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUF1QjNELFlBQ0UsS0FBaUIsRUFDakIsRUFBYyxFQUNOLEdBQXNCO1FBRTlCLEtBQUssQ0FBQyxL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UUFDRCxPQUFPLFdBQVcsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM3RixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWEsRUFBRSxJQUFVO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQWM7UUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs4R0F4VVUsb0JBQW9CO2tHQUFwQixvQkFBb0IsK0VDOUNqQyxvclZBa1BBOzsyRkRwTWEsb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQUxJR05NRU5UX09QVElPTlMsXG4gIGJhc2VJdGVtUHJvcGVydGllcyxcbiAgQ2xhc3MsXG4gIENsYXNzQWN0aW9ucyxcbiAgQ2xhc3NTZWxlY3RvcnMsXG4gIENvbHVtbkRlZmluaXRpb24sXG4gIENvbmZpZ1NlbGVjdG9ycyxcbiAgQ29udGV4dE1lbnVBY3Rpb25zLFxuICBDb250ZXh0TWVudVNlbGVjdG9ycyxcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGFzaGJvYXJkU2VsZWN0b3JzLFxuICBEYXRhV2lkZ2V0Q29tcG9uZW50LFxuICBERUZBVUxUX1RBQkxFX1dJREdFVF9TVFlMRSxcbiAgRmllbGQsXG4gIEZpZWxkVHlwZSxcbiAgSXRlbSxcbiAgSXRlbVV0aWxzLFxuICBPcmRlclZhbHVlLFxuICBSZXN1bHRPcmRlcixcbiAgVGFibGVXaWRnZXRPcHRpb25zLFxuICBUYWJsZVdpZGdldFN0eWxlLFxuICBXSURHRVRfSEVBREVSX0hFSUdIVFxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbC9lczYnO1xuaW1wb3J0IHsgYXVkaXRUaW1lLCBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSwgT2JzZXJ2YWJsZSwgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVsYXksIGZpbHRlciwgbWFwLCB0YXAsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgdjQgfSBmcm9tICd1dWlkJztcblxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmF0aW9uIHtcbiAgdG90YWxQYWdlczogbnVtYmVyO1xuICBwYWdlOiBudW1iZXI7XG4gIHJvd3M6IG51bWJlcjtcbiAgaXRlbXM6IEl0ZW1bXTtcbiAgbG9hZGVkOiBudW1iZXI7XG4gIGxvYWRlZFBhZ2VzOiBudW1iZXI7XG4gIG5vRmlsbGVyc0l0ZW1zOiBudW1iZXI7XG4gIHRvdGFsOiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS13aWRnZXQtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0LXRhYmxlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRUYWJsZUNvbXBvbmVudCBleHRlbmRzIERhdGFXaWRnZXRDb21wb25lbnQge1xuICBvcHRpb25zJDogT2JzZXJ2YWJsZTxUYWJsZVdpZGdldE9wdGlvbnM+O1xuICBjb2x1bW5zJDogT2JzZXJ2YWJsZTxDb2x1bW5EZWZpbml0aW9uW10+O1xuICBvcHRpb25zQ29weT86IFRhYmxlV2lkZ2V0T3B0aW9ucztcbiAgZmllbGRzJDogT2JzZXJ2YWJsZTxGaWVsZFtdPjtcbiAgc2VsZWN0ZWRJZHMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcbiAgQXJyYXkgPSBBcnJheTtcbiAgY3VycmVudENsYXNzZXM6IHN0cmluZ1tdID0gW107XG4gIHNlbGVjdGVkSWRzOiBzdHJpbmdbXSA9IFtdO1xuICBXSURHRVRfSEVBREVSX0hFSUdIVCA9IFdJREdFVF9IRUFERVJfSEVJR0hUO1xuICBwcml2YXRlIGNsYXNzZXMkOiBPYnNlcnZhYmxlPENsYXNzW10+O1xuICBwcm9wZXJ0aWVzJDogT2JzZXJ2YWJsZTx7IGxhYmVsOiBzdHJpbmc7IHByb3BlcnR5OiBzdHJpbmcgfVtdPjtcbiAgYWxsU2VsZWN0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBhcmVBbGxTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBhbGxJZHM6IHN0cmluZ1tdID0gW107XG4gIGNvbnRleHRNZW51Q2xpY2tlZElkOiBzdHJpbmcgPSAnJztcbiAgaXNDb250ZXh0TWVudU9wZW5lZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHF1aWNrT3JkZXIkOiBPYnNlcnZhYmxlPFJlc3VsdE9yZGVyIHwgdW5kZWZpbmVkPjtcbiAgcHJpdmF0ZSBfcmVmcmVzaCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KHVuZGVmaW5lZCk7XG4gIGFjdHVhbFBhZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICBwYWdpbmF0aW9uJDogT2JzZXJ2YWJsZTxQYWdpbmF0aW9uPjtcbiAgaXNPcGVuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RvcmU6IFN0b3JlPGFueT4sXG4gICAgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKHN0b3JlLCBlbCk7XG5cbiAgICB0aGlzLmNsYXNzZXMkID0gdGhpcy5zdG9yZS5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3Nlcyk7XG5cbiAgICB0aGlzLmZpZWxkcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnJlc3VsdFNldCQsIHRoaXMuY2xhc3NlcyRdKS5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICAoW3Jlc3VsdFNldCwgY2xhc3Nlc10pID0+XG4gICAgICAgICAgW1xuICAgICAgICAgICAgLi4uSXRlbVV0aWxzLmdldEZpZWxkc0ZvckNsYXNzZXMoT2JqZWN0LmtleXMocmVzdWx0U2V0Lml0ZW1zKSwgY2xhc3NlcyksXG4gICAgICAgICAgICAuLi5iYXNlSXRlbVByb3BlcnRpZXMubWFwKChwKSA9PiAoeyBuYW1lOiBwLCBpZDogcCB9KSBhcyBGaWVsZClcbiAgICAgICAgICBdIGFzIEZpZWxkW11cbiAgICAgICksXG4gICAgICBtYXAoKGZpZWxkcykgPT4gZmllbGRzLmZpbHRlcigoZmllbGQpID0+IGZpZWxkLnR5cGUgIT09IEZpZWxkVHlwZS5SQVcpKVxuICAgICk7XG5cbiAgICB0aGlzLm9wdGlvbnMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLm1hbmlmZXN0JC5waXBlKG1hcCgobWFuaWZlc3QpID0+IG1hbmlmZXN0Lm9wdGlvbnMgYXMgVGFibGVXaWRnZXRPcHRpb25zKSksXG4gICAgICB0aGlzLnJlc3VsdFNldCQsXG4gICAgICB0aGlzLmNsYXNzZXMkLFxuICAgICAgdGhpcy5maWVsZHMkLFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLnRhYmxlRGVmYXVsdEF0dHJpYnV0ZXNEZWZpbml0aW9ucylcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbb3B0aW9ucywgcmVzdWx0U2V0LCBjbGFzc2VzLCBmaWVsZHMsIGRlZnNdKSA9PiB7XG4gICAgICAgIGlmICghb3B0aW9ucy5jb2x1bW5zIHx8IG9wdGlvbnMuY29sdW1ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gSXRlbVV0aWxzLmdldEF0dHJpYnV0ZXNGcm9tUnMocmVzdWx0U2V0LCBjbGFzc2VzLCBmaWVsZHMsIGRlZnMpO1xuICAgICAgICAgIGNvbnN0IHVuaXF1ZVByb3BzID0gWy4uLm5ldyBTZXQoYXR0cmlidXRlcy5tYXAoKGF0dHIpID0+IGF0dHIudGVjaG5pY2FsTmFtZSkpXTtcblxuICAgICAgICAgIG9wdGlvbnMuY29sdW1ucyA9IHVuaXF1ZVByb3BzLm1hcCgodGVjaG5pY2FsTmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvcGVydHkgPSBhdHRyaWJ1dGVzLmZpbmQoKGF0dHIpID0+IGF0dHIudGVjaG5pY2FsTmFtZSA9PT0gdGVjaG5pY2FsTmFtZSkhO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgcHJvcGVydHk6IHRlY2huaWNhbE5hbWUsXG4gICAgICAgICAgICAgIGxhYmVsOiBwcm9wZXJ0eS5uYW1lLFxuICAgICAgICAgICAgICBhdHRyaWJ1dGVJZDogcHJvcGVydHkuaWQsXG4gICAgICAgICAgICAgIGZpZWxkOiBwcm9wZXJ0eS5maWVsZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSBhcyBDb2x1bW5EZWZpbml0aW9uW107XG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9ucy5zdHlsZSA9IG9wdGlvbnMuc3R5bGUgPz8gREVGQVVMVF9UQUJMRV9XSURHRVRfU1RZTEUudmFsdWU7XG4gICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMub3B0aW9ucyQucGlwZShmaWx0ZXIoKG9wdCkgPT4gISFvcHQpKS5zdWJzY3JpYmUoKG9wdGlvbnMpID0+IHtcbiAgICAgICAgdGhpcy5vcHRpb25zQ29weSA9IHsgLi4uKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob3B0aW9ucykpIGFzIFRhYmxlV2lkZ2V0T3B0aW9ucykgfTtcbiAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuYWxsSXRlbXMkLnN1YnNjcmliZSgoYWxsT2JqZWN0cykgPT4gKHRoaXMuYWxsSWRzID0gYWxsT2JqZWN0cy5tYXAoKG9iaikgPT4gb2JqLmlkKSkpKTtcblxuICAgIGNvbnN0IEhFQURFUl9TSVpFID0gMzA7XG4gICAgY29uc3QgUEFHSU5BVElPTl9TSVpFID0gMzU7XG4gICAgY29uc3QgTElORV9TSVpFID0gMzA7XG5cbiAgICB0aGlzLnBhZ2luYXRpb24kID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmFsbEl0ZW1zJCxcbiAgICAgIHRoaXMuYWN0dWFsUGFnZSQsXG4gICAgICB0aGlzLndpZGdldFNpemUkLFxuICAgICAgdGhpcy5yZXN1bHRTZXQkLFxuICAgICAgdGhpcy5kaXNwbGF5SGVhZGVyJCxcbiAgICAgIHRoaXMubWFuaWZlc3QkXG4gICAgXSkucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgbWFwKChbaXRlbXMsIGFjdHVhbFBhZ2UsIHNpemUsIHJzLCBoZWFkZXJQcmVzZW50LCBtYW5pZmVzdF0pID0+IHtcbiAgICAgICAgY29uc3Qgcm93cyA9IE1hdGgubWF4KFxuICAgICAgICAgIDEsXG4gICAgICAgICAgTWF0aC5mbG9vcihcbiAgICAgICAgICAgIChzaXplLmhlaWdodCAtIEhFQURFUl9TSVpFIC0gUEFHSU5BVElPTl9TSVpFIC0gKGhlYWRlclByZXNlbnQgPyBXSURHRVRfSEVBREVSX0hFSUdIVC52YWx1ZSA6IDApKSAvIExJTkVfU0laRVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgdG90YWwgPSBPYmplY3QudmFsdWVzKHJzLmNvdW50ID8/IHt9KS5yZWR1Y2UoKHAsIGMpID0+IGMuY291bnQgKyBwLCAwKTtcbiAgICAgICAgY29uc3QgbG9hZGVkUGFnZXMgPSBNYXRoLmNlaWwoaXRlbXMubGVuZ3RoIC8gcm93cyk7XG4gICAgICAgIGlmIChhY3R1YWxQYWdlID4gMCAmJiBhY3R1YWxQYWdlID49IGxvYWRlZFBhZ2VzIC0gMikge1xuICAgICAgICAgIChBcnJheS5pc0FycmF5KG1hbmlmZXN0LmRhdGFzb3VyY2UpXG4gICAgICAgICAgICA/IG1hbmlmZXN0LmRhdGFzb3VyY2VcbiAgICAgICAgICAgIDogKFttYW5pZmVzdC5kYXRhc291cmNlXS5maWx0ZXIoKHMpID0+ICEhcykgYXMgc3RyaW5nW10pXG4gICAgICAgICAgKS5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy5mZXRjaE1vcmVJdGVtcyh7XG4gICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgd2lkZ2V0VHlwZTogJ3RhYmxlJ1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYWdlID0gYWN0dWFsUGFnZSA8PSBsb2FkZWRQYWdlcyA/IGFjdHVhbFBhZ2UgOiBNYXRoLm1heCgwLCBsb2FkZWRQYWdlcyAtIDEpO1xuICAgICAgICBjb25zdCBmaWx0ZXJlZCA9IGl0ZW1zLmZpbHRlcigoXywgaWR4KSA9PiBpZHggPj0gcm93cyAqIHBhZ2UgJiYgaWR4IDwgcm93cyAqIChwYWdlICsgMSkpO1xuICAgICAgICBjb25zdCBmaWx0ZXJlZFdpdGhGaWxsZXJzID1cbiAgICAgICAgICBmaWx0ZXJlZC5sZW5ndGggPT09IHJvd3NcbiAgICAgICAgICAgID8gZmlsdGVyZWRcbiAgICAgICAgICAgIDogZmlsdGVyZWQuY29uY2F0KFxuICAgICAgICAgICAgICAgIG5ldyBBcnJheShyb3dzIC0gZmlsdGVyZWQubGVuZ3RoKVxuICAgICAgICAgICAgICAgICAgLmZpbGwoe1xuICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YTogeyAnX193aWRnZXQtdGFibGUtZmlsbGVyJzogdHJ1ZSB9XG4gICAgICAgICAgICAgICAgICB9IGFzIHVua25vd24gYXMgSXRlbSlcbiAgICAgICAgICAgICAgICAgIC5tYXAoKG9iaikgPT4gKHsgLi4ub2JqLCBpZDogdjQoKSB9KSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByb3dzLFxuICAgICAgICAgIHBhZ2UsXG4gICAgICAgICAgaXRlbXM6IGZpbHRlcmVkV2l0aEZpbGxlcnMsXG4gICAgICAgICAgbm9GaWxsZXJzSXRlbXM6IGZpbHRlcmVkLmxlbmd0aCxcbiAgICAgICAgICB0b3RhbCxcbiAgICAgICAgICB0b3RhbFBhZ2VzOiBNYXRoLmNlaWwodG90YWwgLyByb3dzKSxcbiAgICAgICAgICBsb2FkZWQ6IGl0ZW1zLmxlbmd0aCxcbiAgICAgICAgICBsb2FkZWRQYWdlc1xuICAgICAgICB9O1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLnBhZ2luYXRpb24kLnBpcGUoYXVkaXRUaW1lKDIwMCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlZnJlc2goKSkpO1xuXG4gICAgdGhpcy5jb2x1bW5zJCA9IHRoaXMub3B0aW9ucyQucGlwZShcbiAgICAgIG1hcCgob3B0aW9ucykgPT4gb3B0aW9ucz8uY29sdW1ucyA/PyBbXSksXG4gICAgICB0YXAoKCkgPT4gc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlZnJlc2goKSwgNTAwKSlcbiAgICApO1xuXG4gICAgdGhpcy5pc0NvbnRleHRNZW51T3BlbmVkJCA9IHRoaXMuc3RvcmUuc2VsZWN0KENvbnRleHRNZW51U2VsZWN0b3JzLm9wZW5lZCk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5yZXN1bHRTZXQkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcigocnMpID0+ICEhcnMpLFxuICAgICAgICAgIG1hcCgocnMpID0+IE9iamVjdC5rZXlzKHJzLml0ZW1zKSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChjbGFzc2VzKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuY3VycmVudENsYXNzZXMubGVuZ3RoID4gMCAmJiAhZXF1YWwodGhpcy5jdXJyZW50Q2xhc3NlcywgY2xhc3NlcykpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5vcHRpb25zQ29weSkge1xuICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNDb3B5ID0ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5vcHRpb25zQ29weS5jb2x1bW5zO1xuICAgICAgICAgICAgdGhpcy5lbWl0TWFuaWZlc3QoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5jdXJyZW50Q2xhc3NlcyA9IGNsYXNzZXM7XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc2VsZWN0ZWRJZHMkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnNlbGVjdGVkSXRlbUlkcyk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuc2VsZWN0ZWRJZHMkLnN1YnNjcmliZSgoc2VsZWN0ZWRJZHMpID0+IHRoaXMuc2VsZWN0ZWRJZHMgPT09IHNlbGVjdGVkSWRzKSk7XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENsYXNzQWN0aW9ucy5sb2FkKCkpO1xuXG4gICAgdGhpcy5wcm9wZXJ0aWVzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMucmVzdWx0U2V0JCwgdGhpcy5jbGFzc2VzJCwgdGhpcy5maWVsZHMkXSkucGlwZShcbiAgICAgIG1hcCgoW3JzLCBjbGFzc2VzLCBmaWVsZHNdKSA9PiBbXG4gICAgICAgIC4uLk9iamVjdC5rZXlzKHJzLml0ZW1zKVxuICAgICAgICAgIC5tYXAoKGNsYXNzSWQpID0+IChjbGFzc2VzLmZpbmQoKGNsKSA9PiBjbC5pZCA9PT0gY2xhc3NJZCkgPz8geyBhdHRyaWJ1dGVzOiBbXSB9KS5hdHRyaWJ1dGVzKVxuICAgICAgICAgIC5mbGF0KClcbiAgICAgICAgICAubWFwKChhdHRyKSA9PiAoeyB0ZWNobmljYWxOYW1lOiBhdHRyLnRlY2huaWNhbE5hbWUsIG5hbWU6IGF0dHIubmFtZSB9KSlcbiAgICAgIF0pLFxuICAgICAgbWFwKChwcm9wcykgPT4ge1xuICAgICAgICBjb25zdCBzb3J0ZWRQcm9wcyA9IFsuLi5wcm9wc107XG4gICAgICAgIHNvcnRlZFByb3BzLnNvcnQoKHBBLCBwQikgPT4gcEEubmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmxvY2FsZUNvbXBhcmUocEIubmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpKSk7XG4gICAgICAgIHJldHVybiBzb3J0ZWRQcm9wcztcbiAgICAgIH0pLFxuICAgICAgbWFwKChwcm9wcykgPT4gcHJvcHMubWFwKChwcm9wKSA9PiAoeyBsYWJlbDogcHJvcC5uYW1lLCBwcm9wZXJ0eTogcHJvcC50ZWNobmljYWxOYW1lIH0pKSksXG4gICAgICB0YXAoKCkgPT4gc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlZnJlc2goKSwgNTAwKSlcbiAgICApO1xuXG4gICAgdGhpcy5hbGxTZWxlY3RlZCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNlbGVjdGVkSWRzJCwgdGhpcy5hbGxJdGVtcyRdKS5waXBlKFxuICAgICAgbWFwKChbc2VsZWN0ZWRJZHMsIGFsbE9iamVjdHNdKSA9PiB7XG4gICAgICAgIGNvbnN0IGFsbElkcyA9IGFsbE9iamVjdHMubWFwKChvYmplY3QpID0+IG9iamVjdC5pZCk7XG4gICAgICAgIHJldHVybiAhYWxsSWRzLmZpbmQoKGlkKSA9PiAhc2VsZWN0ZWRJZHMuaW5jbHVkZXMoaWQpKTtcbiAgICAgIH0pLFxuICAgICAgdGFwKChhbGxTZWxlY3RlZCkgPT4gKHRoaXMuYXJlQWxsU2VsZWN0ZWQgPSBhbGxTZWxlY3RlZCkpXG4gICAgKTtcblxuICAgIHRoaXMucXVpY2tPcmRlciQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucXVpY2tPcmRlciksIHRoaXMuZGF0YXNvdXJjZUlkcyRdKS5waXBlKFxuICAgICAgbWFwKChbb3JkZXIsIG5xc10pID0+IChucXMubGVuZ3RoID09PSAxID8gb3JkZXJbbnFzWzBdXSA6IHVuZGVmaW5lZCkpXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5fcmVmcmVzaCQucGlwZShkZWxheSgxMDApKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKSk7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMuX3JlZnJlc2gkLm5leHQoKTtcbiAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlbjtcbiAgfVxuXG4gIGVtaXRNYW5pZmVzdCgpIHtcbiAgICB0aGlzLm1hbmlmZXN0TW9kaWZpZWQuZW1pdCh7XG4gICAgICB3aWRnZXRJbmRleDogdGhpcy53aWRnZXRJbmRleCxcbiAgICAgIG1hbmlmZXN0OiB7IC4uLnRoaXMubWFuaWZlc3QsIG9wdGlvbnM6IHRoaXMub3B0aW9uc0NvcHkgfVxuICAgIH0pO1xuICB9XG5cbiAgYWRkQ29sdW1uKCkge1xuICAgIGlmICghdGhpcy5vcHRpb25zQ29weT8uY29sdW1ucykge1xuICAgICAgdGhpcy5vcHRpb25zQ29weSA9IHsgY29sdW1uczogW10gfTtcbiAgICB9XG4gICAgdGhpcy5vcHRpb25zQ29weS5jb2x1bW5zPy5wdXNoKHsgbGFiZWw6ICcnLCBwcm9wZXJ0eTogJycgfSk7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cblxuICBjaGFuZ2VQcm9wZXJ0eU5hbWUoJGV2ZW50OiBhbnksIGNvbHVtbkRlZjogQ29sdW1uRGVmaW5pdGlvbikge1xuICAgIGNvbHVtbkRlZi5wcm9wZXJ0eSA9ICRldmVudDtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIGNoYW5nZUxhYmVsKCRldmVudDogRXZlbnQsIGNvbHVtbkRlZjogQ29sdW1uRGVmaW5pdGlvbikge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBuZXdMYWJlbCA9ICRldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgIGlmIChjb2x1bW5EZWYubGFiZWwgIT09IG5ld0xhYmVsKSB7XG4gICAgICBjb2x1bW5EZWYubGFiZWwgPSBuZXdMYWJlbDtcbiAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgfVxuXG4gIGRlbGV0ZUNvbHVtbihpOiBudW1iZXIpIHtcbiAgICB0aGlzLm9wdGlvbnNDb3B5Py5jb2x1bW5zPy5zcGxpY2UoaSwgMSk7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cblxuICBzZWxlY3Rpb24oJGV2ZW50OiBNb3VzZUV2ZW50LCBpdGVtOiBJdGVtKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdCh7IGlkOiBpdGVtLmlkLCBjdW11bGF0aXZlOiAhJGV2ZW50LnNoaWZ0S2V5IH0pKTtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBjb250ZXh0TWVudSgkZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IEl0ZW0pIHtcbiAgICBpZiAodGhpcy5tYW5pZmVzdC5jb250ZXh0TWVudSAhPT0gZmFsc2UpIHtcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgQ29udGV4dE1lbnVBY3Rpb25zLm9wZW4oe1xuICAgICAgICAgIGl0ZW1JZDogaXRlbS5pZCxcbiAgICAgICAgICBjbGllbnRYOiAkZXZlbnQuY2xpZW50WCxcbiAgICAgICAgICBjbGllbnRZOiAkZXZlbnQuY2xpZW50WSxcbiAgICAgICAgICByZXN1bHRTZXQ6IEFycmF5LmlzQXJyYXkodGhpcy5tYW5pZmVzdC5kYXRhc291cmNlKSA/IHRoaXMubWFuaWZlc3QuZGF0YXNvdXJjZVswXSA6IHRoaXMubWFuaWZlc3QuZGF0YXNvdXJjZSxcbiAgICAgICAgICBmcm9tOiAndGFibGUnLFxuICAgICAgICAgIGFsbG93T2JqZWN0Q3JlYXRpb246IGZhbHNlXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5jb250ZXh0TWVudUNsaWNrZWRJZCA9IGl0ZW0uaWQ7XG4gICAgfVxuICB9XG5cbiAgaW52ZXJ0TGF5ZXJzKGlkeDogbnVtYmVyLCBpZHhXaXRoOiBudW1iZXIpIHtcbiAgICBpZiAoISF0aGlzLm9wdGlvbnNDb3B5ICYmICEhdGhpcy5vcHRpb25zQ29weS5jb2x1bW5zKSB7XG4gICAgICBjb25zdCB0bXAgPSB0aGlzLm9wdGlvbnNDb3B5LmNvbHVtbnNbaWR4V2l0aF07XG4gICAgICB0aGlzLm9wdGlvbnNDb3B5LmNvbHVtbnNbaWR4V2l0aF0gPSB0aGlzLm9wdGlvbnNDb3B5LmNvbHVtbnNbaWR4XTtcbiAgICAgIHRoaXMub3B0aW9uc0NvcHkuY29sdW1uc1tpZHhdID0gdG1wO1xuICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0QWxsKCRldmVudDogYW55KSB7XG4gICAgaWYgKCRldmVudCkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdE1hbnkoeyBpZHM6IHRoaXMuYWxsSWRzIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdE1hbnkoeyBpZHM6IFtdIH0pKTtcbiAgICB9XG4gIH1cblxuICBzZXRPcmRlcihjb2x1bW46IENvbHVtbkRlZmluaXRpb24pIHtcbiAgICB0aGlzLmRhdGFzb3VyY2VJZHMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgZmlsdGVyKChucXMpID0+IG5xcy5sZW5ndGggPT09IDEpLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLnF1aWNrT3JkZXIkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoW25xcywgYWN0dWFsT3JkZXJdKSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy5xdWlja09yZGVyKHtcbiAgICAgICAgICAgIGRhdGFzb3VyY2VJZDogbnFzWzBdLFxuICAgICAgICAgICAgYXR0cmlidXRlOiBjb2x1bW4uYXR0cmlidXRlSWQgPz8gJycsXG4gICAgICAgICAgICBhc2M6IHRoaXMubmV4dE9yZGVyKGNvbHVtbiwgYWN0dWFsT3JkZXIpXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlU3R5bGUoJGV2ZW50OiBzdHJpbmcgfCBib29sZWFuLCBwcm9wOiBrZXlvZiBUYWJsZVdpZGdldFN0eWxlKSB7XG4gICAgaWYgKHRoaXMub3B0aW9uc0NvcHkgJiYgdGhpcy5vcHRpb25zQ29weS5zdHlsZSkge1xuICAgICAgc3dpdGNoIChwcm9wKSB7XG4gICAgICAgIGNhc2UgJ2hlYWRlclRleHRBbGlnbic6XG4gICAgICAgIGNhc2UgJ2NlbGxUZXh0QWxpZ24nOlxuICAgICAgICAgIHRoaXMub3B0aW9uc0NvcHkuc3R5bGVbcHJvcF0gPSAkZXZlbnQgYXMgc3RyaW5nO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzaG93VmVydGljYWxTZXBhcmF0b3InOlxuICAgICAgICAgIHRoaXMub3B0aW9uc0NvcHkuc3R5bGVbcHJvcF0gPSAkZXZlbnQgYXMgYm9vbGVhbjtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG5leHRPcmRlcihjb2x1bW46IENvbHVtbkRlZmluaXRpb24sIGFjdHVhbE9yZGVyOiBSZXN1bHRPcmRlciB8IHVuZGVmaW5lZCk6IE9yZGVyVmFsdWUge1xuICAgIGlmICghYWN0dWFsT3JkZXIgfHwgYWN0dWFsT3JkZXIuYXR0cmlidXRlICE9PSBjb2x1bW4uYXR0cmlidXRlSWQpIHtcbiAgICAgIHJldHVybiAnYXNjJztcbiAgICB9XG4gICAgcmV0dXJuIGFjdHVhbE9yZGVyLmFzYyA9PT0gJ2FzYycgPyAnZGVzYycgOiBhY3R1YWxPcmRlci5hc2MgPT09ICdkZXNjJyA/IHVuZGVmaW5lZCA6ICdhc2MnO1xuICB9XG5cbiAgdHJhY2tPYmplY3RzKGluZGV4OiBudW1iZXIsIGl0ZW06IEl0ZW0pIHtcbiAgICByZXR1cm4gaXRlbS5pZDtcbiAgfVxuXG4gIGdvVG9QYWdlKG51bWJlcjogbnVtYmVyKSB7XG4gICAgdGhpcy5hY3R1YWxQYWdlJC5uZXh0KG51bWJlcik7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgQUxJR05NRU5UX09QVElPTlMgPSBBTElHTk1FTlRfT1BUSU9OUztcbn1cbiIsIjxwcnktd2lkZ2V0LXRhYmxlLWNzcz48L3ByeS13aWRnZXQtdGFibGUtY3NzPlxuPGRpdiBjbGFzcz1cIm8td2lkZ2V0IG8td2lkZ2V0LS10YWJsZVwiPlxuICBAaWYgKGRpc3BsYXlIZWFkZXIkIHwgYXN5bmMpIHtcbiAgICA8cHJ5LXdpZGdldC1oZWFkZXJcbiAgICAgIFtkYXRhc291cmNlSWRzXT1cIihkYXRhc291cmNlSWRzJCB8IGFzeW5jKSA/PyBbXVwiXG4gICAgICBbd2lkZ2V0SW5kZXhdPVwid2lkZ2V0SW5kZXhcIlxuICAgICAgW21hbmlmZXN0XT1cIm1hbmlmZXN0XCJcbiAgICAgIChtYW5pZmVzdE1vZGlmaWVkKT1cIm1hbmlmZXN0TW9kaWZpZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICNoZWFkZXJcbiAgICAgIFtoZWFkZXJPcHRpb25zXT1cIihkaXNwbGF5SGVhZGVyJCB8IGFzeW5jKSA/PyB7fVwiXG4gICAgICAoY2xpY2spPVwicmVmcmVzaCgpXCJcbiAgICA+XG4gICAgICA8cHJ5LXNldHRpbmdzXG4gICAgICAgIChjbGljayk9XCJyZWZyZXNoKClcIlxuICAgICAgICAoc2F2ZVRyaWdnZXJlZCk9XCJlbWl0TWFuaWZlc3QoKVwiXG4gICAgICAgIChjaGFuZ2VUaXRsZSk9XCJjaGFuZ2VXaWRnZXRUaXRsZSgkZXZlbnQpXCJcbiAgICAgICAgW2hlYWRlclByZXNlbnRdPVwiZGlzcGxheUhlYWRlciQgfCBhc3luY1wiXG4gICAgICAgIFt3aWRnZXRJbmRleF09XCJ3aWRnZXRJbmRleFwiXG4gICAgICAgIFtoZWFkZXJdPVwiaGVhZGVyXCJcbiAgICAgICAgW29wZW4kXT1cIm9wZW4kXCJcbiAgICAgICAgKHRyaWdnZXJDbGljayk9XCJ0aGlzLnJlZnJlc2goKVwiXG4gICAgICAgIGNsYXNzPVwiby1zZXR0aW5nc1wiXG4gICAgICA+XG4gICAgICAgIEBpZiAob3B0aW9uc0NvcHkgJiYgb3B0aW9uc0NvcHkuc3R5bGUpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwidGFibGVfc3R5bGVfaGVhZGVyVGV4dEFsaWduXCI+e3tcbiAgICAgICAgICAgICAgJ0Bwcnkud2lkZ2V0LnRhYmxlLmhlYWRlclRleHRBbGlnbicgfCBpMThuXG4gICAgICAgICAgICB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgICBbaXRlbXNdPVwiQUxJR05NRU5UX09QVElPTlNcIlxuICAgICAgICAgICAgICBbbmdNb2RlbF09XCJvcHRpb25zQ29weS5zdHlsZS5oZWFkZXJUZXh0QWxpZ25cIlxuICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVTdHlsZSgkZXZlbnQsICdoZWFkZXJUZXh0QWxpZ24nKVwiXG4gICAgICAgICAgICAgIGlkPVwidGFibGVfc3R5bGVfaGVhZGVyVGV4dEFsaWduXCJcbiAgICAgICAgICAgICAgaTE4blByZWZpeD1cIkBwcnkud2lkZ2V0LnRhYmxlLmFsaWduLlwiXG4gICAgICAgICAgICA+PC9wcnktc2VsZWN0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJ0YWJsZV9zdHlsZV9jZWxsVGV4dEFsaWduXCI+e3tcbiAgICAgICAgICAgICAgJ0Bwcnkud2lkZ2V0LnRhYmxlLmNlbGxUZXh0QWxpZ24nIHwgaTE4blxuICAgICAgICAgICAgfX08L2xhYmVsPlxuICAgICAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICAgICAgW2l0ZW1zXT1cIkFMSUdOTUVOVF9PUFRJT05TXCJcbiAgICAgICAgICAgICAgW25nTW9kZWxdPVwib3B0aW9uc0NvcHkuc3R5bGUuY2VsbFRleHRBbGlnblwiXG4gICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZVN0eWxlKCRldmVudCwgJ2NlbGxUZXh0QWxpZ24nKVwiXG4gICAgICAgICAgICAgIGlkPVwidGFibGVfc3R5bGVfY2VsbFRleHRBbGlnblwiXG4gICAgICAgICAgICAgIGkxOG5QcmVmaXg9XCJAcHJ5LndpZGdldC50YWJsZS5hbGlnbi5cIlxuICAgICAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCB1LWRpc3BsYXktZmxleCAtcm93IC1qdXN0aWZ5LXNwYWNlLWJldHdlZW4gby13aWRnZXQtLXRhYmxlX192ZXJ0aWNhbC1zZXBhcmF0b3JcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJ0YWJsZV9zdHlsZV92ZXJ0aWNhbFNlcGFyYXRvclwiPnt7XG4gICAgICAgICAgICAgICdAcHJ5LndpZGdldC50YWJsZS52ZXJ0aWNhbFNlcGFyYXRvcicgfCBpMThuXG4gICAgICAgICAgICB9fTwvbGFiZWw+XG4gICAgICAgICAgICA8cHJ5LWNoZWNrYm94XG4gICAgICAgICAgICAgIFtuZ01vZGVsXT1cIm9wdGlvbnNDb3B5LnN0eWxlLnNob3dWZXJ0aWNhbFNlcGFyYXRvclwiXG4gICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZVN0eWxlKCRldmVudCwgJ3Nob3dWZXJ0aWNhbFNlcGFyYXRvcicpXCJcbiAgICAgICAgICAgICAgaWQ9XCJ0YWJsZV9zdHlsZV92ZXJ0aWNhbFNlcGFyYXRvclwiXG4gICAgICAgICAgICA+PC9wcnktY2hlY2tib3g+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiby1zZXR0aW5nc19fcG9wdXBfX2NvbnRlbnRfX2FjdGlvbnNcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLXRleHQgLWxpbmstbGlrZVwiIChjbGljayk9XCJhZGRDb2x1bW4oKVwiPlxuICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJwb3N0X2FkZFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICB7eyAnQHByeS53aWRnZXQudGFibGUuYWRkQ29sdW1uJyB8IGkxOG4gfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGZvciAoY29sdW1uRGVmIG9mIG9wdGlvbnNDb3B5Py5jb2x1bW5zID8/IFtdOyB0cmFjayBjb2x1bW5EZWYuYXR0cmlidXRlSWQ7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8tc2V0dGluZ3NfX3BvcHVwX19jb250ZW50X19maWVsZHNcIiAoY2xpY2spPVwicmVmcmVzaCgpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1zZXR0aW5nc19fcG9wdXBfX2NvbnRlbnRfX2ZpZWxkc19faGVhZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGkgPiAwKSB7XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiAoY2xpY2spPVwiaW52ZXJ0TGF5ZXJzKGksIGkgLSAxKVwiPlxuICAgICAgICAgICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImZsZWNoZV9oYXV0XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LmFjdGlvbi5tb3ZlVXAnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGkgPCAob3B0aW9uc0NvcHk/LmNvbHVtbnM/Lmxlbmd0aCA/PyAwKSAtIDEpIHtcbiAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJpbnZlcnRMYXllcnMoaSwgaSArIDEpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiZmxlY2hlX2Jhc1wiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS5hY3Rpb24ubW92ZURvd24nIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm8tc2V0dGluZ3NfX3BvcHVwX19jb250ZW50X19maWVsZHNfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJ0YWJsZV9wcm9wZXJ0eVwiPnt7ICdAcHJ5LndpZGdldC50YWJsZS5wcm9wZXJ0eScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlZnJlc2goKVwiXG4gICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VQcm9wZXJ0eU5hbWUoJGV2ZW50LCBjb2x1bW5EZWYpXCJcbiAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJwcm9wZXJ0aWVzJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImNvbHVtbkRlZi5wcm9wZXJ0eVwiXG4gICAgICAgICAgICAgICAgICBiaW5kTGFiZWw9XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgICBiaW5kVmFsdWU9XCJwcm9wZXJ0eVwiXG4gICAgICAgICAgICAgICAgICBpZD1cInRhYmxlX3Byb3BlcnR5XCJcbiAgICAgICAgICAgICAgICA+PC9wcnktc2VsZWN0PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cInRhYmxlX2xhYmVsXCI+e3sgJ0Bwcnkud2lkZ2V0LnRhYmxlLmxhYmVsJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgaWQ9XCJ0YWJsZV9sYWJlbFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAoaW5wdXQpPVwiY2hhbmdlTGFiZWwoJGV2ZW50LCBjb2x1bW5EZWYpXCJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjb2x1bW5EZWYubGFiZWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVDb2x1bW4oaSlcIlxuICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiZGVsZXRlXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tdGV4dCAtbGluay1saWtlXCJcbiAgICAgICAgICAgICAgZGF0YS1mdW5jPVwiZGVsZXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJkZWxldGVcIiBbd2lkdGhdPVwiMTlcIiBbaGVpZ2h0XT1cIjE5XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgJ0Bwcnkud2lkZ2V0LnRhYmxlLmRlbGV0ZUNvbHVtbicgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvcHJ5LXNldHRpbmdzPlxuICAgIDwvcHJ5LXdpZGdldC1oZWFkZXI+XG4gIH1cblxuICA8ZGl2IGNsYXNzPVwiYS10YWJsZS13cmFwcGVyXCI+XG4gICAgQGlmIChwYWdpbmF0aW9uJCB8IGFzeW5jOyBhcyBwYWdpbmF0aW9uKSB7XG4gICAgICBAaWYgKHBhZ2luYXRpb24/Lml0ZW1zID8/IFtdOyBhcyBhbGxPYmplY3RzKSB7XG4gICAgICAgIEBpZiAocGFnaW5hdGlvbi5ub0ZpbGxlcnNJdGVtcyA9PT0gMCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJuby1yZXN1bHRcIiBbc3R5bGUuaGVpZ2h0LiVdPVwicGFnaW5hdGlvbi50b3RhbFBhZ2VzID4gMCA/IDgwIDogMTAwXCI+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgIGNsYXNzPVwibm8tcmVzdWx0X19zZWFyY2hcIlxuICAgICAgICAgICAgICBzcmM9XCIuLi8uLi8uLi9hc3NldHMvc3Zncy9wcnlfcmVjaGVyY2hlX3Bhc19kZV9yZXN1bHRhdC5zdmdcIlxuICAgICAgICAgICAgICBhbHQ9XCJ7eyAnQHByeS53aWRnZXQudGFibGUuZW1wdHknIHwgaTE4biB9fVwiXG4gICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuby1yZXN1bHRfX3RleHRcIj57eyAnQHByeS53aWRnZXQudGFibGUuZW1wdHknIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSBpZiAocGFnaW5hdGlvbi5ub0ZpbGxlcnNJdGVtcyA+IDApIHtcbiAgICAgICAgICBAaWYgKChzZWxlY3RlZElkcyQgfCBhc3luYykgPz8gW107IGFzIHNlbGVjdGVkSWRzKSB7XG4gICAgICAgICAgICBAaWYgKChjb2x1bW5zJCB8IGFzeW5jKSA/PyBbXTsgYXMgY29sdW1ucykge1xuICAgICAgICAgICAgICA8dGFibGVcbiAgICAgICAgICAgICAgICBjbGFzcz1cImEtdGFibGVcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy4tc2hvdy12ZXJ0aWNhbC1zZXBhcmF0b3JdPVwib3B0aW9uc0NvcHk/LnN0eWxlPy5zaG93VmVydGljYWxTZXBhcmF0b3JcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0Bwcnkud2lkZ2V0LnRhYmxlLmRlc2NyaXB0aW9uJyB8IGkxOG5cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGFsbE9iamVjdHM/Lmxlbmd0aCA/PyAwID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgIDx0aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwcnktY2hlY2tib3ggW25nTW9kZWxdPVwiYXJlQWxsU2VsZWN0ZWRcIiAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RBbGwoJGV2ZW50KVwiPjwvcHJ5LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrIGNvbHVtbi5hdHRyaWJ1dGVJZDsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8dGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc2l6YWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldE9yZGVyKGNvbHVtbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiJ3UtdHh0LScgKyBvcHRpb25zQ29weT8uc3R5bGU/LmhlYWRlclRleHRBbGlnblwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgY29sdW1uLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChxdWlja09yZGVyJCB8IGFzeW5jOyBhcyBxdWlja09yZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAocXVpY2tPcmRlci5hdHRyaWJ1dGUgPT09IGNvbHVtbi5hdHRyaWJ1dGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcnktaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25TdmddPVwicXVpY2tPcmRlci5hc2MgPyAnY2hldnJvbl90b3AnIDogJ2NoZXZyb25fYm90dG9tJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cIjEyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt3aWR0aF09XCIxMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBhbGxPYmplY3RzOyB0cmFjayBpdGVtLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIDx0clxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1zZWxlY3RlZF09XCJzZWxlY3RlZElkcy5pbmNsdWRlcyhpdGVtLmlkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmNvbnRleHQtbWVudS1zZWxlY3RlZF09XCJjb250ZXh0TWVudUNsaWNrZWRJZCA9PT0gaXRlbS5pZCAmJiAoaXNDb250ZXh0TWVudU9wZW5lZCQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgICAgICAgIChjb250ZXh0bWVudSk9XCJjb250ZXh0TWVudSgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICBkZXRhY2hSb3dcbiAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRWYWx1ZSk9XCJzZWxlY3Rpb24oJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZpbGxlcl09XCJpdGVtLm1ldGFkYXRhIVsnX193aWRnZXQtdGFibGUtZmlsbGVyJ11cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiY2hlY2tib3gtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHByeS1jaGVja2JveCBbbmdNb2RlbF09XCJzZWxlY3RlZElkcy5pbmNsdWRlcyhpdGVtLmlkKVwiPjwvcHJ5LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgQGZvciAoY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrIGNvbHVtbi5hdHRyaWJ1dGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidS1lbGxpcHNpc1wiIFtuZ0NsYXNzXT1cIid1LXR4dC0nICsgb3B0aW9uc0NvcHk/LnN0eWxlPy5jZWxsVGV4dEFsaWduXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoY29sdW1uLnByb3BlcnR5ID09PSAnbWV0YWRhdGEnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByeS1tZXRhZGF0YSBbaXRlbV09XCJpdGVtXCI+PC9wcnktbWV0YWRhdGE+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjb2x1bW4ucHJvcGVydHkgPT09ICdvQ2xhc3MnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJjb250ZW50LWltZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cIjI1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3dpZHRoXT1cIjI1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJpdGVtIHwgdHJhbnNsYXRlSXRlbVRvU3ltYm9sIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cIml0ZW0ub0NsYXNzIHwgdHJhbnNsYXRlSWQ6IHsgdHlwZTogJ2NsYXNzJywgb3V0cHV0OiAnbmFtZScgfSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIVsnbWV0YWRhdGEnLCAnb0NsYXNzJ10uaW5jbHVkZXMoY29sdW1uLnByb3BlcnR5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcnktZXhwYW5kLXZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbSB8IGdldFZhbHVlOiBjb2x1bW4ucHJvcGVydHkgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmllbGRdPVwiY29sdW1uLmZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9wcnktZXhwYW5kLXZhbHVlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHBhZ2luYXRpb24udG90YWxQYWdlcyA+IDApIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidS1kaXNwbGF5LWZsZXhcIj5cbiAgICAgICAgICAgIDxwcnktcGFnaW5hdG9yXG4gICAgICAgICAgICAgIFt0b3RhbEl0ZW1OYl09XCJwYWdpbmF0aW9uLnRvdGFsXCJcbiAgICAgICAgICAgICAgKHBhZ2VDaGFuZ2UpPVwiZ29Ub1BhZ2UoJGV2ZW50IC0gMSlcIlxuICAgICAgICAgICAgICBbbmJQZXJQYWdlXT1cInBhZ2luYXRpb24ucm93c1wiXG4gICAgICAgICAgICAgIFtsb2FkZWRdPVwicGFnaW5hdGlvbi5sb2FkZWRcIlxuICAgICAgICAgICAgICBtb2RlPVwic2hvcnRcIlxuICAgICAgICAgICAgPjwvcHJ5LXBhZ2luYXRvcj5cbiAgICAgICAgICAgIEBpZiAocGFnaW5hdGlvbi50b3RhbFBhZ2VzICE9PSBwYWdpbmF0aW9uLmxvYWRlZFBhZ2VzKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhLXRhYmxlX19wYWdpbmF0aW9uLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgKHt7XG4gICAgICAgICAgICAgICAgICAnQHByeS53aWRnZXQudGFibGUucmVtYWluaW5nJyB8IGkxOG46IHsgcmVtYWluaW5nOiBwYWdpbmF0aW9uLnRvdGFsUGFnZXMgLSBwYWdpbmF0aW9uLmxvYWRlZFBhZ2VzIH1cbiAgICAgICAgICAgICAgICB9fSlcbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
259
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3dpZGdldHMvd2lkZ2V0LXRhYmxlL2NvbXBvbmVudC93aWRnZXQtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdGFibGUvY29tcG9uZW50L3dpZGdldC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUV6RSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUVsQixZQUFZLEVBQ1osY0FBYyxFQUVkLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUUxQixTQUFTLEVBRVQsU0FBUyxFQUtULG9CQUFvQixFQUNyQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sS0FBSyxNQUFNLHFCQUFxQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFpQjFCLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxtQkFBbUI7SUF1QjNELFlBQ0UsS0FBaUIsRUFDakIsRUFBYyxFQUNOLEdBQXNCO1FBRTlCLEtBQUssQ0FBQyxL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O1FBQ0QsT0FBTyxXQUFXLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDN0YsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhLEVBQUUsSUFBVTtRQUNwQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFjO1FBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OEdBeFVVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLCtFQzlDakMsb3JWQWtQQTs7MkZEcE1hLG9CQUFvQjtrQkFKaEMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIEFMSUdOTUVOVF9PUFRJT05TLFxuICBiYXNlSXRlbVByb3BlcnRpZXMsXG4gIENsYXNzLFxuICBDbGFzc0FjdGlvbnMsXG4gIENsYXNzU2VsZWN0b3JzLFxuICBDb2x1bW5EZWZpbml0aW9uLFxuICBDb25maWdTZWxlY3RvcnMsXG4gIENvbnRleHRNZW51QWN0aW9ucyxcbiAgQ29udGV4dE1lbnVTZWxlY3RvcnMsXG4gIERhc2hib2FyZEFjdGlvbnMsXG4gIERhc2hib2FyZFNlbGVjdG9ycyxcbiAgRGF0YVdpZGdldENvbXBvbmVudCxcbiAgREVGQVVMVF9UQUJMRV9XSURHRVRfU1RZTEUsXG4gIEZpZWxkLFxuICBGaWVsZFR5cGUsXG4gIEl0ZW0sXG4gIEl0ZW1VdGlscyxcbiAgT3JkZXJWYWx1ZSxcbiAgUmVzdWx0T3JkZXIsXG4gIFRhYmxlV2lkZ2V0T3B0aW9ucyxcbiAgVGFibGVXaWRnZXRTdHlsZSxcbiAgV0lER0VUX0hFQURFUl9IRUlHSFRcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCBlcXVhbCBmcm9tICdmYXN0LWRlZXAtZXF1YWwvZXM2JztcbmltcG9ydCB7IGF1ZGl0VGltZSwgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBkZWJvdW5jZVRpbWUsIE9ic2VydmFibGUsIHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCBmaWx0ZXIsIG1hcCwgdGFwLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHY0IH0gZnJvbSAndXVpZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvbiB7XG4gIHRvdGFsUGFnZXM6IG51bWJlcjtcbiAgcGFnZTogbnVtYmVyO1xuICByb3dzOiBudW1iZXI7XG4gIGl0ZW1zOiBJdGVtW107XG4gIGxvYWRlZDogbnVtYmVyO1xuICBsb2FkZWRQYWdlczogbnVtYmVyO1xuICBub0ZpbGxlcnNJdGVtczogbnVtYmVyO1xuICB0b3RhbDogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktd2lkZ2V0LXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC10YWJsZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0VGFibGVDb21wb25lbnQgZXh0ZW5kcyBEYXRhV2lkZ2V0Q29tcG9uZW50IHtcbiAgb3B0aW9ucyQ6IE9ic2VydmFibGU8VGFibGVXaWRnZXRPcHRpb25zPjtcbiAgY29sdW1ucyQ6IE9ic2VydmFibGU8Q29sdW1uRGVmaW5pdGlvbltdPjtcbiAgb3B0aW9uc0NvcHk/OiBUYWJsZVdpZGdldE9wdGlvbnM7XG4gIGZpZWxkcyQ6IE9ic2VydmFibGU8RmllbGRbXT47XG4gIHNlbGVjdGVkSWRzJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG4gIEFycmF5ID0gQXJyYXk7XG4gIGN1cnJlbnRDbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuICBzZWxlY3RlZElkczogc3RyaW5nW10gPSBbXTtcbiAgV0lER0VUX0hFQURFUl9IRUlHSFQgPSBXSURHRVRfSEVBREVSX0hFSUdIVDtcbiAgcHJpdmF0ZSBjbGFzc2VzJDogT2JzZXJ2YWJsZTxDbGFzc1tdPjtcbiAgcHJvcGVydGllcyQ6IE9ic2VydmFibGU8eyBsYWJlbDogc3RyaW5nOyBwcm9wZXJ0eTogc3RyaW5nIH1bXT47XG4gIGFsbFNlbGVjdGVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgYXJlQWxsU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYWxsSWRzOiBzdHJpbmdbXSA9IFtdO1xuICBjb250ZXh0TWVudUNsaWNrZWRJZDogc3RyaW5nID0gJyc7XG4gIGlzQ29udGV4dE1lbnVPcGVuZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBxdWlja09yZGVyJDogT2JzZXJ2YWJsZTxSZXN1bHRPcmRlciB8IHVuZGVmaW5lZD47XG4gIHByaXZhdGUgX3JlZnJlc2gkID0gbmV3IEJlaGF2aW9yU3ViamVjdDx2b2lkPih1bmRlZmluZWQpO1xuICBhY3R1YWxQYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcGFnaW5hdGlvbiQ6IE9ic2VydmFibGU8UGFnaW5hdGlvbj47XG4gIGlzT3BlbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0b3JlOiBTdG9yZTxhbnk+LFxuICAgIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBzdXBlcihzdG9yZSwgZWwpO1xuXG4gICAgdGhpcy5jbGFzc2VzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KENsYXNzU2VsZWN0b3JzLmNsYXNzZXMpO1xuXG4gICAgdGhpcy5maWVsZHMkID0gY29tYmluZUxhdGVzdChbdGhpcy5yZXN1bHRTZXQkLCB0aGlzLmNsYXNzZXMkXSkucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKFtyZXN1bHRTZXQsIGNsYXNzZXNdKSA9PlxuICAgICAgICAgIFtcbiAgICAgICAgICAgIC4uLkl0ZW1VdGlscy5nZXRGaWVsZHNGb3JDbGFzc2VzKE9iamVjdC5rZXlzKHJlc3VsdFNldC5pdGVtcyksIGNsYXNzZXMpLFxuICAgICAgICAgICAgLi4uYmFzZUl0ZW1Qcm9wZXJ0aWVzLm1hcCgocCkgPT4gKHsgbmFtZTogcCwgaWQ6IHAgfSkgYXMgRmllbGQpXG4gICAgICAgICAgXSBhcyBGaWVsZFtdXG4gICAgICApLFxuICAgICAgbWFwKChmaWVsZHMpID0+IGZpZWxkcy5maWx0ZXIoKGZpZWxkKSA9PiBmaWVsZC50eXBlICE9PSBGaWVsZFR5cGUuUkFXKSlcbiAgICApO1xuXG4gICAgdGhpcy5vcHRpb25zJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5tYW5pZmVzdCQucGlwZShtYXAoKG1hbmlmZXN0KSA9PiBtYW5pZmVzdC5vcHRpb25zIGFzIFRhYmxlV2lkZ2V0T3B0aW9ucykpLFxuICAgICAgdGhpcy5yZXN1bHRTZXQkLFxuICAgICAgdGhpcy5jbGFzc2VzJCxcbiAgICAgIHRoaXMuZmllbGRzJCxcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy50YWJsZURlZmF1bHRBdHRyaWJ1dGVzRGVmaW5pdGlvbnMpXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW29wdGlvbnMsIHJlc3VsdFNldCwgY2xhc3NlcywgZmllbGRzLCBkZWZzXSkgPT4ge1xuICAgICAgICBpZiAoIW9wdGlvbnMuY29sdW1ucyB8fCBvcHRpb25zLmNvbHVtbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9IEl0ZW1VdGlscy5nZXRBdHRyaWJ1dGVzRnJvbVJzKHJlc3VsdFNldCwgY2xhc3NlcywgZmllbGRzLCBkZWZzKTtcbiAgICAgICAgICBjb25zdCB1bmlxdWVQcm9wcyA9IFsuLi5uZXcgU2V0KGF0dHJpYnV0ZXMubWFwKChhdHRyKSA9PiBhdHRyLnRlY2huaWNhbE5hbWUpKV07XG5cbiAgICAgICAgICBvcHRpb25zLmNvbHVtbnMgPSB1bmlxdWVQcm9wcy5tYXAoKHRlY2huaWNhbE5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb3BlcnR5ID0gYXR0cmlidXRlcy5maW5kKChhdHRyKSA9PiBhdHRyLnRlY2huaWNhbE5hbWUgPT09IHRlY2huaWNhbE5hbWUpITtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHByb3BlcnR5OiB0ZWNobmljYWxOYW1lLFxuICAgICAgICAgICAgICBsYWJlbDogcHJvcGVydHkubmFtZSxcbiAgICAgICAgICAgICAgYXR0cmlidXRlSWQ6IHByb3BlcnR5LmlkLFxuICAgICAgICAgICAgICBmaWVsZDogcHJvcGVydHkuZmllbGRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSkgYXMgQ29sdW1uRGVmaW5pdGlvbltdO1xuICAgICAgICB9XG4gICAgICAgIG9wdGlvbnMuc3R5bGUgPSBvcHRpb25zLnN0eWxlID8/IERFRkFVTFRfVEFCTEVfV0lER0VUX1NUWUxFLnZhbHVlO1xuICAgICAgICByZXR1cm4gb3B0aW9ucztcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLm9wdGlvbnMkLnBpcGUoZmlsdGVyKChvcHQpID0+ICEhb3B0KSkuc3Vic2NyaWJlKChvcHRpb25zKSA9PiB7XG4gICAgICAgIHRoaXMub3B0aW9uc0NvcHkgPSB7IC4uLihKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpKSBhcyBUYWJsZVdpZGdldE9wdGlvbnMpIH07XG4gICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLmFsbEl0ZW1zJC5zdWJzY3JpYmUoKGFsbE9iamVjdHMpID0+ICh0aGlzLmFsbElkcyA9IGFsbE9iamVjdHMubWFwKChvYmopID0+IG9iai5pZCkpKSk7XG5cbiAgICBjb25zdCBIRUFERVJfU0laRSA9IDMwO1xuICAgIGNvbnN0IFBBR0lOQVRJT05fU0laRSA9IDM1O1xuICAgIGNvbnN0IExJTkVfU0laRSA9IDMwO1xuXG4gICAgdGhpcy5wYWdpbmF0aW9uJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5hbGxJdGVtcyQsXG4gICAgICB0aGlzLmFjdHVhbFBhZ2UkLFxuICAgICAgdGhpcy53aWRnZXRTaXplJCxcbiAgICAgIHRoaXMucmVzdWx0U2V0JCxcbiAgICAgIHRoaXMuZGlzcGxheUhlYWRlciQsXG4gICAgICB0aGlzLm1hbmlmZXN0JFxuICAgIF0pLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgIG1hcCgoW2l0ZW1zLCBhY3R1YWxQYWdlLCBzaXplLCBycywgaGVhZGVyUHJlc2VudCwgbWFuaWZlc3RdKSA9PiB7XG4gICAgICAgIGNvbnN0IHJvd3MgPSBNYXRoLm1heChcbiAgICAgICAgICAxLFxuICAgICAgICAgIE1hdGguZmxvb3IoXG4gICAgICAgICAgICAoc2l6ZS5oZWlnaHQgLSBIRUFERVJfU0laRSAtIFBBR0lOQVRJT05fU0laRSAtIChoZWFkZXJQcmVzZW50ID8gV0lER0VUX0hFQURFUl9IRUlHSFQudmFsdWUgOiAwKSkgLyBMSU5FX1NJWkVcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHRvdGFsID0gT2JqZWN0LnZhbHVlcyhycy5jb3VudCA/PyB7fSkucmVkdWNlKChwLCBjKSA9PiBjLmNvdW50ICsgcCwgMCk7XG4gICAgICAgIGNvbnN0IGxvYWRlZFBhZ2VzID0gTWF0aC5jZWlsKGl0ZW1zLmxlbmd0aCAvIHJvd3MpO1xuICAgICAgICBpZiAoYWN0dWFsUGFnZSA+IDAgJiYgYWN0dWFsUGFnZSA+PSBsb2FkZWRQYWdlcyAtIDIpIHtcbiAgICAgICAgICAoQXJyYXkuaXNBcnJheShtYW5pZmVzdC5kYXRhc291cmNlKVxuICAgICAgICAgICAgPyBtYW5pZmVzdC5kYXRhc291cmNlXG4gICAgICAgICAgICA6IChbbWFuaWZlc3QuZGF0YXNvdXJjZV0uZmlsdGVyKChzKSA9PiAhIXMpIGFzIHN0cmluZ1tdKVxuICAgICAgICAgICkuZm9yRWFjaCgoaWQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgIERhc2hib2FyZEFjdGlvbnMuZmV0Y2hNb3JlSXRlbXMoe1xuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIHdpZGdldFR5cGU6ICd0YWJsZSdcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFnZSA9IGFjdHVhbFBhZ2UgPD0gbG9hZGVkUGFnZXMgPyBhY3R1YWxQYWdlIDogTWF0aC5tYXgoMCwgbG9hZGVkUGFnZXMgLSAxKTtcbiAgICAgICAgY29uc3QgZmlsdGVyZWQgPSBpdGVtcy5maWx0ZXIoKF8sIGlkeCkgPT4gaWR4ID49IHJvd3MgKiBwYWdlICYmIGlkeCA8IHJvd3MgKiAocGFnZSArIDEpKTtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRXaXRoRmlsbGVycyA9XG4gICAgICAgICAgZmlsdGVyZWQubGVuZ3RoID09PSByb3dzXG4gICAgICAgICAgICA/IGZpbHRlcmVkXG4gICAgICAgICAgICA6IGZpbHRlcmVkLmNvbmNhdChcbiAgICAgICAgICAgICAgICBuZXcgQXJyYXkocm93cyAtIGZpbHRlcmVkLmxlbmd0aClcbiAgICAgICAgICAgICAgICAgIC5maWxsKHtcbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IHsgJ19fd2lkZ2V0LXRhYmxlLWZpbGxlcic6IHRydWUgfVxuICAgICAgICAgICAgICAgICAgfSBhcyB1bmtub3duIGFzIEl0ZW0pXG4gICAgICAgICAgICAgICAgICAubWFwKChvYmopID0+ICh7IC4uLm9iaiwgaWQ6IHY0KCkgfSkpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcm93cyxcbiAgICAgICAgICBwYWdlLFxuICAgICAgICAgIGl0ZW1zOiBmaWx0ZXJlZFdpdGhGaWxsZXJzLFxuICAgICAgICAgIG5vRmlsbGVyc0l0ZW1zOiBmaWx0ZXJlZC5sZW5ndGgsXG4gICAgICAgICAgdG90YWwsXG4gICAgICAgICAgdG90YWxQYWdlczogTWF0aC5jZWlsKHRvdGFsIC8gcm93cyksXG4gICAgICAgICAgbG9hZGVkOiBpdGVtcy5sZW5ndGgsXG4gICAgICAgICAgbG9hZGVkUGFnZXNcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5wYWdpbmF0aW9uJC5waXBlKGF1ZGl0VGltZSgyMDApKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWZyZXNoKCkpKTtcblxuICAgIHRoaXMuY29sdW1ucyQgPSB0aGlzLm9wdGlvbnMkLnBpcGUoXG4gICAgICBtYXAoKG9wdGlvbnMpID0+IG9wdGlvbnM/LmNvbHVtbnMgPz8gW10pLFxuICAgICAgdGFwKCgpID0+IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZWZyZXNoKCksIDUwMCkpXG4gICAgKTtcblxuICAgIHRoaXMuaXNDb250ZXh0TWVudU9wZW5lZCQgPSB0aGlzLnN0b3JlLnNlbGVjdChDb250ZXh0TWVudVNlbGVjdG9ycy5vcGVuZWQpO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMucmVzdWx0U2V0JFxuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoKHJzKSA9PiAhIXJzKSxcbiAgICAgICAgICBtYXAoKHJzKSA9PiBPYmplY3Qua2V5cyhycy5pdGVtcykpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoY2xhc3NlcykgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRDbGFzc2VzLmxlbmd0aCA+IDAgJiYgIWVxdWFsKHRoaXMuY3VycmVudENsYXNzZXMsIGNsYXNzZXMpKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMub3B0aW9uc0NvcHkpIHtcbiAgICAgICAgICAgICAgdGhpcy5vcHRpb25zQ29weSA9IHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVsZXRlIHRoaXMub3B0aW9uc0NvcHkuY29sdW1ucztcbiAgICAgICAgICAgIHRoaXMuZW1pdE1hbmlmZXN0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY3VycmVudENsYXNzZXMgPSBjbGFzc2VzO1xuICAgICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnNlbGVjdGVkSWRzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5zZWxlY3RlZEl0ZW1JZHMpO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLnNlbGVjdGVkSWRzJC5zdWJzY3JpYmUoKHNlbGVjdGVkSWRzKSA9PiB0aGlzLnNlbGVjdGVkSWRzID09PSBzZWxlY3RlZElkcykpO1xuXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDbGFzc0FjdGlvbnMubG9hZCgpKTtcblxuICAgIHRoaXMucHJvcGVydGllcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnJlc3VsdFNldCQsIHRoaXMuY2xhc3NlcyQsIHRoaXMuZmllbGRzJF0pLnBpcGUoXG4gICAgICBtYXAoKFtycywgY2xhc3NlcywgZmllbGRzXSkgPT4gW1xuICAgICAgICAuLi5PYmplY3Qua2V5cyhycy5pdGVtcylcbiAgICAgICAgICAubWFwKChjbGFzc0lkKSA9PiAoY2xhc3Nlcy5maW5kKChjbCkgPT4gY2wuaWQgPT09IGNsYXNzSWQpID8/IHsgYXR0cmlidXRlczogW10gfSkuYXR0cmlidXRlcylcbiAgICAgICAgICAuZmxhdCgpXG4gICAgICAgICAgLm1hcCgoYXR0cikgPT4gKHsgdGVjaG5pY2FsTmFtZTogYXR0ci50ZWNobmljYWxOYW1lLCBuYW1lOiBhdHRyLm5hbWUgfSkpXG4gICAgICBdKSxcbiAgICAgIG1hcCgocHJvcHMpID0+IHtcbiAgICAgICAgY29uc3Qgc29ydGVkUHJvcHMgPSBbLi4ucHJvcHNdO1xuICAgICAgICBzb3J0ZWRQcm9wcy5zb3J0KChwQSwgcEIpID0+IHBBLm5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKHBCLm5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKSkpO1xuICAgICAgICByZXR1cm4gc29ydGVkUHJvcHM7XG4gICAgICB9KSxcbiAgICAgIG1hcCgocHJvcHMpID0+IHByb3BzLm1hcCgocHJvcCkgPT4gKHsgbGFiZWw6IHByb3AubmFtZSwgcHJvcGVydHk6IHByb3AudGVjaG5pY2FsTmFtZSB9KSkpLFxuICAgICAgdGFwKCgpID0+IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZWZyZXNoKCksIDUwMCkpXG4gICAgKTtcblxuICAgIHRoaXMuYWxsU2VsZWN0ZWQkID0gY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3RlZElkcyQsIHRoaXMuYWxsSXRlbXMkXSkucGlwZShcbiAgICAgIG1hcCgoW3NlbGVjdGVkSWRzLCBhbGxPYmplY3RzXSkgPT4ge1xuICAgICAgICBjb25zdCBhbGxJZHMgPSBhbGxPYmplY3RzLm1hcCgob2JqZWN0KSA9PiBvYmplY3QuaWQpO1xuICAgICAgICByZXR1cm4gIWFsbElkcy5maW5kKChpZCkgPT4gIXNlbGVjdGVkSWRzLmluY2x1ZGVzKGlkKSk7XG4gICAgICB9KSxcbiAgICAgIHRhcCgoYWxsU2VsZWN0ZWQpID0+ICh0aGlzLmFyZUFsbFNlbGVjdGVkID0gYWxsU2VsZWN0ZWQpKVxuICAgICk7XG5cbiAgICB0aGlzLnF1aWNrT3JkZXIkID0gY29tYmluZUxhdGVzdChbdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnF1aWNrT3JkZXIpLCB0aGlzLmRhdGFzb3VyY2VJZHMkXSkucGlwZShcbiAgICAgIG1hcCgoW29yZGVyLCBucXNdKSA9PiAobnFzLmxlbmd0aCA9PT0gMSA/IG9yZGVyW25xc1swXV0gOiB1bmRlZmluZWQpKVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuX3JlZnJlc2gkLnBpcGUoZGVsYXkoMTAwKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSkpO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLl9yZWZyZXNoJC5uZXh0KCk7XG4gICAgdGhpcy5pc09wZW4gPSAhdGhpcy5pc09wZW47XG4gIH1cblxuICBvdmVycmlkZSBlbWl0TWFuaWZlc3QoKSB7XG4gICAgdGhpcy5tYW5pZmVzdE1vZGlmaWVkLmVtaXQoe1xuICAgICAgd2lkZ2V0SW5kZXg6IHRoaXMud2lkZ2V0SW5kZXgsXG4gICAgICBtYW5pZmVzdDogeyAuLi50aGlzLm1hbmlmZXN0LCBvcHRpb25zOiB0aGlzLm9wdGlvbnNDb3B5IH1cbiAgICB9KTtcbiAgfVxuXG4gIGFkZENvbHVtbigpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9uc0NvcHk/LmNvbHVtbnMpIHtcbiAgICAgIHRoaXMub3B0aW9uc0NvcHkgPSB7IGNvbHVtbnM6IFtdIH07XG4gICAgfVxuICAgIHRoaXMub3B0aW9uc0NvcHkuY29sdW1ucz8ucHVzaCh7IGxhYmVsOiAnJywgcHJvcGVydHk6ICcnIH0pO1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgY2hhbmdlUHJvcGVydHlOYW1lKCRldmVudDogYW55LCBjb2x1bW5EZWY6IENvbHVtbkRlZmluaXRpb24pIHtcbiAgICBjb2x1bW5EZWYucHJvcGVydHkgPSAkZXZlbnQ7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cblxuICBjaGFuZ2VMYWJlbCgkZXZlbnQ6IEV2ZW50LCBjb2x1bW5EZWY6IENvbHVtbkRlZmluaXRpb24pIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgbmV3TGFiZWwgPSAkZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZTtcbiAgICBpZiAoY29sdW1uRGVmLmxhYmVsICE9PSBuZXdMYWJlbCkge1xuICAgICAgY29sdW1uRGVmLmxhYmVsID0gbmV3TGFiZWw7XG4gICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICB9XG4gIH1cblxuICBkZWxldGVDb2x1bW4oaTogbnVtYmVyKSB7XG4gICAgdGhpcy5vcHRpb25zQ29weT8uY29sdW1ucz8uc3BsaWNlKGksIDEpO1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgc2VsZWN0aW9uKCRldmVudDogTW91c2VFdmVudCwgaXRlbTogSXRlbSkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3QoeyBpZDogaXRlbS5pZCwgY3VtdWxhdGl2ZTogISRldmVudC5zaGlmdEtleSB9KSk7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgY29udGV4dE1lbnUoJGV2ZW50OiBNb3VzZUV2ZW50LCBpdGVtOiBJdGVtKSB7XG4gICAgaWYgKHRoaXMubWFuaWZlc3QuY29udGV4dE1lbnUgIT09IGZhbHNlKSB7XG4gICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIENvbnRleHRNZW51QWN0aW9ucy5vcGVuKHtcbiAgICAgICAgICBpdGVtSWQ6IGl0ZW0uaWQsXG4gICAgICAgICAgY2xpZW50WDogJGV2ZW50LmNsaWVudFgsXG4gICAgICAgICAgY2xpZW50WTogJGV2ZW50LmNsaWVudFksXG4gICAgICAgICAgcmVzdWx0U2V0OiBBcnJheS5pc0FycmF5KHRoaXMubWFuaWZlc3QuZGF0YXNvdXJjZSkgPyB0aGlzLm1hbmlmZXN0LmRhdGFzb3VyY2VbMF0gOiB0aGlzLm1hbmlmZXN0LmRhdGFzb3VyY2UsXG4gICAgICAgICAgZnJvbTogJ3RhYmxlJyxcbiAgICAgICAgICBhbGxvd09iamVjdENyZWF0aW9uOiBmYWxzZVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMuY29udGV4dE1lbnVDbGlja2VkSWQgPSBpdGVtLmlkO1xuICAgIH1cbiAgfVxuXG4gIGludmVydExheWVycyhpZHg6IG51bWJlciwgaWR4V2l0aDogbnVtYmVyKSB7XG4gICAgaWYgKCEhdGhpcy5vcHRpb25zQ29weSAmJiAhIXRoaXMub3B0aW9uc0NvcHkuY29sdW1ucykge1xuICAgICAgY29uc3QgdG1wID0gdGhpcy5vcHRpb25zQ29weS5jb2x1bW5zW2lkeFdpdGhdO1xuICAgICAgdGhpcy5vcHRpb25zQ29weS5jb2x1bW5zW2lkeFdpdGhdID0gdGhpcy5vcHRpb25zQ29weS5jb2x1bW5zW2lkeF07XG4gICAgICB0aGlzLm9wdGlvbnNDb3B5LmNvbHVtbnNbaWR4XSA9IHRtcDtcbiAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEFsbCgkZXZlbnQ6IGFueSkge1xuICAgIGlmICgkZXZlbnQpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3RNYW55KHsgaWRzOiB0aGlzLmFsbElkcyB9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3RNYW55KHsgaWRzOiBbXSB9KSk7XG4gICAgfVxuICB9XG5cbiAgc2V0T3JkZXIoY29sdW1uOiBDb2x1bW5EZWZpbml0aW9uKSB7XG4gICAgdGhpcy5kYXRhc291cmNlSWRzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIGZpbHRlcigobnFzKSA9PiBucXMubGVuZ3RoID09PSAxKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5xdWlja09yZGVyJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtucXMsIGFjdHVhbE9yZGVyXSkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgIERhc2hib2FyZEFjdGlvbnMucXVpY2tPcmRlcih7XG4gICAgICAgICAgICBkYXRhc291cmNlSWQ6IG5xc1swXSxcbiAgICAgICAgICAgIGF0dHJpYnV0ZTogY29sdW1uLmF0dHJpYnV0ZUlkID8/ICcnLFxuICAgICAgICAgICAgYXNjOiB0aGlzLm5leHRPcmRlcihjb2x1bW4sIGFjdHVhbE9yZGVyKVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZVN0eWxlKCRldmVudDogc3RyaW5nIHwgYm9vbGVhbiwgcHJvcDoga2V5b2YgVGFibGVXaWRnZXRTdHlsZSkge1xuICAgIGlmICh0aGlzLm9wdGlvbnNDb3B5ICYmIHRoaXMub3B0aW9uc0NvcHkuc3R5bGUpIHtcbiAgICAgIHN3aXRjaCAocHJvcCkge1xuICAgICAgICBjYXNlICdoZWFkZXJUZXh0QWxpZ24nOlxuICAgICAgICBjYXNlICdjZWxsVGV4dEFsaWduJzpcbiAgICAgICAgICB0aGlzLm9wdGlvbnNDb3B5LnN0eWxlW3Byb3BdID0gJGV2ZW50IGFzIHN0cmluZztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnc2hvd1ZlcnRpY2FsU2VwYXJhdG9yJzpcbiAgICAgICAgICB0aGlzLm9wdGlvbnNDb3B5LnN0eWxlW3Byb3BdID0gJGV2ZW50IGFzIGJvb2xlYW47XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBuZXh0T3JkZXIoY29sdW1uOiBDb2x1bW5EZWZpbml0aW9uLCBhY3R1YWxPcmRlcjogUmVzdWx0T3JkZXIgfCB1bmRlZmluZWQpOiBPcmRlclZhbHVlIHtcbiAgICBpZiAoIWFjdHVhbE9yZGVyIHx8IGFjdHVhbE9yZGVyLmF0dHJpYnV0ZSAhPT0gY29sdW1uLmF0dHJpYnV0ZUlkKSB7XG4gICAgICByZXR1cm4gJ2FzYyc7XG4gICAgfVxuICAgIHJldHVybiBhY3R1YWxPcmRlci5hc2MgPT09ICdhc2MnID8gJ2Rlc2MnIDogYWN0dWFsT3JkZXIuYXNjID09PSAnZGVzYycgPyB1bmRlZmluZWQgOiAnYXNjJztcbiAgfVxuXG4gIHRyYWNrT2JqZWN0cyhpbmRleDogbnVtYmVyLCBpdGVtOiBJdGVtKSB7XG4gICAgcmV0dXJuIGl0ZW0uaWQ7XG4gIH1cblxuICBnb1RvUGFnZShudW1iZXI6IG51bWJlcikge1xuICAgIHRoaXMuYWN0dWFsUGFnZSQubmV4dChudW1iZXIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEFMSUdOTUVOVF9PUFRJT05TID0gQUxJR05NRU5UX09QVElPTlM7XG59XG4iLCI8cHJ5LXdpZGdldC10YWJsZS1jc3M+PC9wcnktd2lkZ2V0LXRhYmxlLWNzcz5cbjxkaXYgY2xhc3M9XCJvLXdpZGdldCBvLXdpZGdldC0tdGFibGVcIj5cbiAgQGlmIChkaXNwbGF5SGVhZGVyJCB8IGFzeW5jKSB7XG4gICAgPHByeS13aWRnZXQtaGVhZGVyXG4gICAgICBbZGF0YXNvdXJjZUlkc109XCIoZGF0YXNvdXJjZUlkcyQgfCBhc3luYykgPz8gW11cIlxuICAgICAgW3dpZGdldEluZGV4XT1cIndpZGdldEluZGV4XCJcbiAgICAgIFttYW5pZmVzdF09XCJtYW5pZmVzdFwiXG4gICAgICAobWFuaWZlc3RNb2RpZmllZCk9XCJtYW5pZmVzdE1vZGlmaWVkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAjaGVhZGVyXG4gICAgICBbaGVhZGVyT3B0aW9uc109XCIoZGlzcGxheUhlYWRlciQgfCBhc3luYykgPz8ge31cIlxuICAgICAgKGNsaWNrKT1cInJlZnJlc2goKVwiXG4gICAgPlxuICAgICAgPHByeS1zZXR0aW5nc1xuICAgICAgICAoY2xpY2spPVwicmVmcmVzaCgpXCJcbiAgICAgICAgKHNhdmVUcmlnZ2VyZWQpPVwiZW1pdE1hbmlmZXN0KClcIlxuICAgICAgICAoY2hhbmdlVGl0bGUpPVwiY2hhbmdlV2lkZ2V0VGl0bGUoJGV2ZW50KVwiXG4gICAgICAgIFtoZWFkZXJQcmVzZW50XT1cImRpc3BsYXlIZWFkZXIkIHwgYXN5bmNcIlxuICAgICAgICBbd2lkZ2V0SW5kZXhdPVwid2lkZ2V0SW5kZXhcIlxuICAgICAgICBbaGVhZGVyXT1cImhlYWRlclwiXG4gICAgICAgIFtvcGVuJF09XCJvcGVuJFwiXG4gICAgICAgICh0cmlnZ2VyQ2xpY2spPVwidGhpcy5yZWZyZXNoKClcIlxuICAgICAgICBjbGFzcz1cIm8tc2V0dGluZ3NcIlxuICAgICAgPlxuICAgICAgICBAaWYgKG9wdGlvbnNDb3B5ICYmIG9wdGlvbnNDb3B5LnN0eWxlKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cInRhYmxlX3N0eWxlX2hlYWRlclRleHRBbGlnblwiPnt7XG4gICAgICAgICAgICAgICdAcHJ5LndpZGdldC50YWJsZS5oZWFkZXJUZXh0QWxpZ24nIHwgaTE4blxuICAgICAgICAgICAgfX08L2xhYmVsPlxuICAgICAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICAgICAgW2l0ZW1zXT1cIkFMSUdOTUVOVF9PUFRJT05TXCJcbiAgICAgICAgICAgICAgW25nTW9kZWxdPVwib3B0aW9uc0NvcHkuc3R5bGUuaGVhZGVyVGV4dEFsaWduXCJcbiAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlU3R5bGUoJGV2ZW50LCAnaGVhZGVyVGV4dEFsaWduJylcIlxuICAgICAgICAgICAgICBpZD1cInRhYmxlX3N0eWxlX2hlYWRlclRleHRBbGlnblwiXG4gICAgICAgICAgICAgIGkxOG5QcmVmaXg9XCJAcHJ5LndpZGdldC50YWJsZS5hbGlnbi5cIlxuICAgICAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwidGFibGVfc3R5bGVfY2VsbFRleHRBbGlnblwiPnt7XG4gICAgICAgICAgICAgICdAcHJ5LndpZGdldC50YWJsZS5jZWxsVGV4dEFsaWduJyB8IGkxOG5cbiAgICAgICAgICAgIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgICAgIFtpdGVtc109XCJBTElHTk1FTlRfT1BUSU9OU1wiXG4gICAgICAgICAgICAgIFtuZ01vZGVsXT1cIm9wdGlvbnNDb3B5LnN0eWxlLmNlbGxUZXh0QWxpZ25cIlxuICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVTdHlsZSgkZXZlbnQsICdjZWxsVGV4dEFsaWduJylcIlxuICAgICAgICAgICAgICBpZD1cInRhYmxlX3N0eWxlX2NlbGxUZXh0QWxpZ25cIlxuICAgICAgICAgICAgICBpMThuUHJlZml4PVwiQHByeS53aWRnZXQudGFibGUuYWxpZ24uXCJcbiAgICAgICAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgdS1kaXNwbGF5LWZsZXggLXJvdyAtanVzdGlmeS1zcGFjZS1iZXR3ZWVuIG8td2lkZ2V0LS10YWJsZV9fdmVydGljYWwtc2VwYXJhdG9yXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwidGFibGVfc3R5bGVfdmVydGljYWxTZXBhcmF0b3JcIj57e1xuICAgICAgICAgICAgICAnQHByeS53aWRnZXQudGFibGUudmVydGljYWxTZXBhcmF0b3InIHwgaTE4blxuICAgICAgICAgICAgfX08L2xhYmVsPlxuICAgICAgICAgICAgPHByeS1jaGVja2JveFxuICAgICAgICAgICAgICBbbmdNb2RlbF09XCJvcHRpb25zQ29weS5zdHlsZS5zaG93VmVydGljYWxTZXBhcmF0b3JcIlxuICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVTdHlsZSgkZXZlbnQsICdzaG93VmVydGljYWxTZXBhcmF0b3InKVwiXG4gICAgICAgICAgICAgIGlkPVwidGFibGVfc3R5bGVfdmVydGljYWxTZXBhcmF0b3JcIlxuICAgICAgICAgICAgPjwvcHJ5LWNoZWNrYm94PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm8tc2V0dGluZ3NfX3BvcHVwX19jb250ZW50X19hY3Rpb25zXCI+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi10ZXh0IC1saW5rLWxpa2VcIiAoY2xpY2spPVwiYWRkQ29sdW1uKClcIj5cbiAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwicG9zdF9hZGRcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAge3sgJ0Bwcnkud2lkZ2V0LnRhYmxlLmFkZENvbHVtbicgfCBpMThuIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIEBmb3IgKGNvbHVtbkRlZiBvZiBvcHRpb25zQ29weT8uY29sdW1ucyA/PyBbXTsgdHJhY2sgY29sdW1uRGVmLmF0dHJpYnV0ZUlkOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXNldHRpbmdzX19wb3B1cF9fY29udGVudF9fZmllbGRzXCIgKGNsaWNrKT1cInJlZnJlc2goKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm8tc2V0dGluZ3NfX3BvcHVwX19jb250ZW50X19maWVsZHNfX2hlYWRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgQGlmIChpID4gMCkge1xuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCIgKGNsaWNrKT1cImludmVydExheWVycyhpLCBpIC0gMSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJmbGVjaGVfaGF1dFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS5hY3Rpb24ubW92ZVVwJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChpIDwgKG9wdGlvbnNDb3B5Py5jb2x1bW5zPy5sZW5ndGggPz8gMCkgLSAxKSB7XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiAoY2xpY2spPVwiaW52ZXJ0TGF5ZXJzKGksIGkgKyAxKVwiPlxuICAgICAgICAgICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImZsZWNoZV9iYXNcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkuYWN0aW9uLm1vdmVEb3duJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXNldHRpbmdzX19wb3B1cF9fY29udGVudF9fZmllbGRzX19jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwidGFibGVfcHJvcGVydHlcIj57eyAnQHByeS53aWRnZXQudGFibGUucHJvcGVydHknIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZWZyZXNoKClcIlxuICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlUHJvcGVydHlOYW1lKCRldmVudCwgY29sdW1uRGVmKVwiXG4gICAgICAgICAgICAgICAgICBbaXRlbXNdPVwicHJvcGVydGllcyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJjb2x1bW5EZWYucHJvcGVydHlcIlxuICAgICAgICAgICAgICAgICAgYmluZExhYmVsPVwibGFiZWxcIlxuICAgICAgICAgICAgICAgICAgYmluZFZhbHVlPVwicHJvcGVydHlcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJ0YWJsZV9wcm9wZXJ0eVwiXG4gICAgICAgICAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJ0YWJsZV9sYWJlbFwiPnt7ICdAcHJ5LndpZGdldC50YWJsZS5sYWJlbCcgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIGlkPVwidGFibGVfbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgKGlucHV0KT1cImNoYW5nZUxhYmVsKCRldmVudCwgY29sdW1uRGVmKVwiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY29sdW1uRGVmLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlQ29sdW1uKGkpXCJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cImRlbGV0ZVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLXRleHQgLWxpbmstbGlrZVwiXG4gICAgICAgICAgICAgIGRhdGEtZnVuYz1cImRlbGV0ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiZGVsZXRlXCIgW3dpZHRoXT1cIjE5XCIgW2hlaWdodF09XCIxOVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIDxzcGFuPnt7ICdAcHJ5LndpZGdldC50YWJsZS5kZWxldGVDb2x1bW4nIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L3ByeS1zZXR0aW5ncz5cbiAgICA8L3ByeS13aWRnZXQtaGVhZGVyPlxuICB9XG5cbiAgPGRpdiBjbGFzcz1cImEtdGFibGUtd3JhcHBlclwiPlxuICAgIEBpZiAocGFnaW5hdGlvbiQgfCBhc3luYzsgYXMgcGFnaW5hdGlvbikge1xuICAgICAgQGlmIChwYWdpbmF0aW9uPy5pdGVtcyA/PyBbXTsgYXMgYWxsT2JqZWN0cykge1xuICAgICAgICBAaWYgKHBhZ2luYXRpb24ubm9GaWxsZXJzSXRlbXMgPT09IDApIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibm8tcmVzdWx0XCIgW3N0eWxlLmhlaWdodC4lXT1cInBhZ2luYXRpb24udG90YWxQYWdlcyA+IDAgPyA4MCA6IDEwMFwiPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICBjbGFzcz1cIm5vLXJlc3VsdF9fc2VhcmNoXCJcbiAgICAgICAgICAgICAgc3JjPVwiLi4vLi4vLi4vYXNzZXRzL3N2Z3MvcHJ5X3JlY2hlcmNoZV9wYXNfZGVfcmVzdWx0YXQuc3ZnXCJcbiAgICAgICAgICAgICAgYWx0PVwie3sgJ0Bwcnkud2lkZ2V0LnRhYmxlLmVtcHR5JyB8IGkxOG4gfX1cIlxuICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm8tcmVzdWx0X190ZXh0XCI+e3sgJ0Bwcnkud2lkZ2V0LnRhYmxlLmVtcHR5JyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2UgaWYgKHBhZ2luYXRpb24ubm9GaWxsZXJzSXRlbXMgPiAwKSB7XG4gICAgICAgICAgQGlmICgoc2VsZWN0ZWRJZHMkIHwgYXN5bmMpID8/IFtdOyBhcyBzZWxlY3RlZElkcykge1xuICAgICAgICAgICAgQGlmICgoY29sdW1ucyQgfCBhc3luYykgPz8gW107IGFzIGNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgPHRhYmxlXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhLXRhYmxlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuLXNob3ctdmVydGljYWwtc2VwYXJhdG9yXT1cIm9wdGlvbnNDb3B5Py5zdHlsZT8uc2hvd1ZlcnRpY2FsU2VwYXJhdG9yXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidAcHJ5LndpZGdldC50YWJsZS5kZXNjcmlwdGlvbicgfCBpMThuXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChhbGxPYmplY3RzPy5sZW5ndGggPz8gMCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICA8dGg+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cHJ5LWNoZWNrYm94IFtuZ01vZGVsXT1cImFyZUFsbFNlbGVjdGVkXCIgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0QWxsKCRldmVudClcIj48L3ByeS1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFjayBjb2x1bW4uYXR0cmlidXRlSWQ7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNpemFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRPcmRlcihjb2x1bW4pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIid1LXR4dC0nICsgb3B0aW9uc0NvcHk/LnN0eWxlPy5oZWFkZXJUZXh0QWxpZ25cIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGNvbHVtbi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAocXVpY2tPcmRlciQgfCBhc3luYzsgYXMgcXVpY2tPcmRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHF1aWNrT3JkZXIuYXR0cmlidXRlID09PSBjb2x1bW4uYXR0cmlidXRlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJ5LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uU3ZnXT1cInF1aWNrT3JkZXIuYXNjID8gJ2NoZXZyb25fdG9wJyA6ICdjaGV2cm9uX2JvdHRvbSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlaWdodF09XCIxMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbd2lkdGhdPVwiMTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3ByeS1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgYWxsT2JqZWN0czsgdHJhY2sgaXRlbS5pZCkge1xuICAgICAgICAgICAgICAgICAgICA8dHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtc2VsZWN0ZWRdPVwic2VsZWN0ZWRJZHMuaW5jbHVkZXMoaXRlbS5pZClcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5jb250ZXh0LW1lbnUtc2VsZWN0ZWRdPVwiY29udGV4dE1lbnVDbGlja2VkSWQgPT09IGl0ZW0uaWQgJiYgKGlzQ29udGV4dE1lbnVPcGVuZWQkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY29udGV4dG1lbnUpPVwiY29udGV4dE1lbnUoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgZGV0YWNoUm93XG4gICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkVmFsdWUpPVwic2VsZWN0aW9uKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5maWxsZXJdPVwiaXRlbS5tZXRhZGF0YSFbJ19fd2lkZ2V0LXRhYmxlLWZpbGxlciddXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImNoZWNrYm94LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwcnktY2hlY2tib3ggW25nTW9kZWxdPVwic2VsZWN0ZWRJZHMuaW5jbHVkZXMoaXRlbS5pZClcIj48L3ByeS1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFjayBjb2x1bW4uYXR0cmlidXRlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInUtZWxsaXBzaXNcIiBbbmdDbGFzc109XCIndS10eHQtJyArIG9wdGlvbnNDb3B5Py5zdHlsZT8uY2VsbFRleHRBbGlnblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNvbHVtbi5wcm9wZXJ0eSA9PT0gJ21ldGFkYXRhJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcnktbWV0YWRhdGEgW2l0ZW1dPVwiaXRlbVwiPjwvcHJ5LW1ldGFkYXRhPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoY29sdW1uLnByb3BlcnR5ID09PSAnb0NsYXNzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiY29udGVudC1pbWdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlaWdodF09XCIyNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt3aWR0aF09XCIyNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaXRlbSB8IHRyYW5zbGF0ZUl0ZW1Ub1N5bWJvbCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJpdGVtLm9DbGFzcyB8IHRyYW5zbGF0ZUlkOiB7IHR5cGU6ICdjbGFzcycsIG91dHB1dDogJ25hbWUnIH0gfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFbJ21ldGFkYXRhJywgJ29DbGFzcyddLmluY2x1ZGVzKGNvbHVtbi5wcm9wZXJ0eSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJ5LWV4cGFuZC12YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0gfCBnZXRWYWx1ZTogY29sdW1uLnByb3BlcnR5IHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkXT1cImNvbHVtbi5maWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcHJ5LWV4cGFuZC12YWx1ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChwYWdpbmF0aW9uLnRvdGFsUGFnZXMgPiAwKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInUtZGlzcGxheS1mbGV4XCI+XG4gICAgICAgICAgICA8cHJ5LXBhZ2luYXRvclxuICAgICAgICAgICAgICBbdG90YWxJdGVtTmJdPVwicGFnaW5hdGlvbi50b3RhbFwiXG4gICAgICAgICAgICAgIChwYWdlQ2hhbmdlKT1cImdvVG9QYWdlKCRldmVudCAtIDEpXCJcbiAgICAgICAgICAgICAgW25iUGVyUGFnZV09XCJwYWdpbmF0aW9uLnJvd3NcIlxuICAgICAgICAgICAgICBbbG9hZGVkXT1cInBhZ2luYXRpb24ubG9hZGVkXCJcbiAgICAgICAgICAgICAgbW9kZT1cInNob3J0XCJcbiAgICAgICAgICAgID48L3ByeS1wYWdpbmF0b3I+XG4gICAgICAgICAgICBAaWYgKHBhZ2luYXRpb24udG90YWxQYWdlcyAhPT0gcGFnaW5hdGlvbi5sb2FkZWRQYWdlcykge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYS10YWJsZV9fcGFnaW5hdGlvbi1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICh7e1xuICAgICAgICAgICAgICAgICAgJ0Bwcnkud2lkZ2V0LnRhYmxlLnJlbWFpbmluZycgfCBpMThuOiB7IHJlbWFpbmluZzogcGFnaW5hdGlvbi50b3RhbFBhZ2VzIC0gcGFnaW5hdGlvbi5sb2FkZWRQYWdlcyB9XG4gICAgICAgICAgICAgICAgfX0pXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
92
92
|
type: Component,
|
|
93
93
|
args: [{ selector: 'pry-widget-template', template: "<pry-widget-template-css></pry-widget-template-css>\n<pry-widget-header\n *ngIf=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n #header\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n>\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"o-settings__fields\">\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"html_src\">{{ '@pry.widget.template.html' | i18n }}</label>\n <textarea\n class=\"a-form-field a-text-area -overflow\"\n id=\"html_src\"\n [value]=\"optionsCopy.html\"\n (input)=\"changeHtml($event)\"\n ></textarea>\n </div>\n\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"css_src\">{{ '@pry.widget.template.css' | i18n }}</label>\n <textarea\n class=\"a-form-field a-text-area -overflow\"\n id=\"css_src\"\n [value]=\"optionsCopy.css\"\n (input)=\"changeCss($event)\"\n ></textarea>\n </div>\n </div>\n </pry-settings>\n</pry-widget-header>\n<div *ngIf=\"css$ | async as css\" [innerHtml]=\"css\"></div>\n<div *ngIf=\"template$ | async as template\" [class]=\"'pry-template-' + id\" [innerHtml]=\"template\"></div>\n" }]
|
|
94
94
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i0.ElementRef }, { type: i2.DomSanitizer }] });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3dpZGdldHMvd2lkZ2V0LXRlbXBsYXRlL2NvbXBvbmVudC93aWRnZXQtdGVtcGxhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdGVtcGxhdGUvY29tcG9uZW50L3dpZGdldC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBR3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBeUIsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQU03QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsbUJBQW1CO2FBTXZELGdCQUFXLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUFFdkIsWUFDRSxLQUFpQixFQUNqQixFQUFjLEVBQ04sU0FBdUI7UUFFL0IsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUZULGNBQVMsR0FBVCxTQUFTLENBQWM7UUFUakMsZ0JBQVcsR0FBMEIsRUFBRSxDQUFDO1FBWXRDLElBQUksQ0FBQyxFQUFFLEdBQUcsdUJBQXVCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFnQyxDQUFDLENBQUMsQ0FBQztRQUVsRyxJ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Y29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IERhdGFXaWRnZXRDb21wb25lbnQsIFRlbXBsYXRlV2lkZ2V0T3B0aW9ucyB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0V2l0aCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS13aWRnZXQtdGVtcGxhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0LXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRUZW1wbGF0ZUNvbXBvbmVudCBleHRlbmRzIERhdGFXaWRnZXRDb21wb25lbnQge1xuICBvcHRpb25zJDogT2JzZXJ2YWJsZTxUZW1wbGF0ZVdpZGdldE9wdGlvbnM+O1xuICBvcHRpb25zQ29weTogVGVtcGxhdGVXaWRnZXRPcHRpb25zID0ge307XG4gIHRlbXBsYXRlJDogT2JzZXJ2YWJsZTxTYWZlSHRtbD47XG4gIGNzcyQ6IE9ic2VydmFibGU8U2FmZUh0bWw+O1xuICBpZDogbnVtYmVyO1xuICBzdGF0aWMgaWRHZW5lcmF0b3IgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0b3JlOiBTdG9yZTxhbnk+LFxuICAgIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcbiAgKSB7XG4gICAgc3VwZXIoc3RvcmUsIGVsKTtcbiAgICB0aGlzLmlkID0gV2lkZ2V0VGVtcGxhdGVDb21wb25lbnQuaWRHZW5lcmF0b3IrKztcbiAgICB0aGlzLm9wdGlvbnMkID0gdGhpcy5tYW5pZmVzdCQucGlwZShtYXAoKG1hbmlmZXN0KSA9PiBtYW5pZmVzdC5vcHRpb25zIGFzIFRlbXBsYXRlV2lkZ2V0T3B0aW9ucykpO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMub3B0aW9ucyQucGlwZShmaWx0ZXIoKG9wdCkgPT4gISFvcHQpKS5zdWJzY3JpYmUoKG9wdGlvbnMpID0+IHtcbiAgICAgICAgdGhpcy5vcHRpb25zQ29weSA9IHsgLi4uKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob3B0aW9ucykpIGFzIFRlbXBsYXRlV2lkZ2V0T3B0aW9ucykgfTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMudGVtcGxhdGUkID0gdGhpcy5vcHRpb25zJC5waXBlKFxuICAgICAgbWFwKChvcHRpb25zKSA9PiAoISFvcHRpb25zLnN2ZyA/IG9wdGlvbnMuc3ZnIDogb3B0aW9ucy5odG1sID8/ICcnKSksXG4gICAgICBjb21iaW5lTGF0ZXN0V2l0aCh0aGlzLnJlc3VsdFNldCQpLFxuICAgICAgbWFwKChbdGVtcGxhdGUsIHJzXSkgPT4gdGhpcy5ldmFsdWF0ZSh0ZW1wbGF0ZSwgcnMpKVxuICAgICk7XG5cbiAgICB0aGlzLmNzcyQgPSB0aGlzLm9wdGlvbnMkLnBpcGUoXG4gICAgICBtYXAoKG9wdGlvbnMpID0+IGA8c3R5bGU+JHt0aGlzLmxpbWl0U2NvcGUob3B0aW9ucy5jc3MgPz8gJycpfTwvc3R5bGU+YCksXG4gICAgICBjb21iaW5lTGF0ZXN0V2l0aCh0aGlzLnJlc3VsdFNldCQpLFxuICAgICAgbWFwKChbdGVtcGxhdGUsIHJzXSkgPT4gdGhpcy5ldmFsdWF0ZSh0ZW1wbGF0ZSwgcnMpKVxuICAgICk7XG4gIH1cblxuICBlbWl0TWFuaWZlc3QoKSB7XG4gICAgdGhpcy5tYW5pZmVzdE1vZGlmaWVkLmVtaXQoe1xuICAgICAgd2lkZ2V0SW5kZXg6IHRoaXMud2lkZ2V0SW5kZXgsXG4gICAgICBtYW5pZmVzdDogeyAuLi50aGlzLm1hbmlmZXN0LCBvcHRpb25zOiB0aGlzLm9wdGlvbnNDb3B5IH1cbiAgICB9KTtcbiAgfVxuXG4gIGV2YWx1YXRlKHRlbXBsYXRlOiBzdHJpbmcsIHJzOiBhbnkpOiBTYWZlSHRtbCB7XG4gICAgY29uc3QgcmVnZXhwID0gbmV3IFJlZ0V4cCgne3soLio/KX19JywgJ2cnKTtcbiAgICBjb25zdCB0b1JlcGxhY2UgPSB0ZW1wbGF0ZS5tYXRjaChyZWdleHApO1xuICAgIGxldCByZXN1bHQgPSB0ZW1wbGF0ZTtcblxuICAgIGlmICghIXRvUmVwbGFjZSkge1xuICAgICAgdG9SZXBsYWNlLmZvckVhY2goKGV4dHJhY3RlZCkgPT4ge1xuICAgICAgICBjb25zdCBleHByID0gZXh0cmFjdGVkLnN1YnN0cmluZygyLCBleHRyYWN0ZWQubGVuZ3RoIC0gMik7XG4gICAgICAgIGNvbnN0IHNwbGl0dGVkID0gZXhwci5zcGxpdCgvWy5cXF1dLykuZmlsdGVyKChleHRyKSA9PiBleHRyICE9PSAnJyk7XG4gICAgICAgIGxldCBldmFsdWF0aW9uOiBhbnkgPSBudWxsO1xuXG4gICAgICAgIHNwbGl0dGVkLmZvckVhY2goKF9zcGxpdFBhcnQpID0+IHtcbiAgICAgICAgICBjb25zdCBzcGxpdFBhcnQgPSBfc3BsaXRQYXJ0LnRyaW0oKTtcbiAgICAgICAgICBpZiAoc3BsaXRQYXJ0LnN0YXJ0c1dpdGgoJ3JzJykpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsYXNzSWQgPSAoZXhwci5tYXRjaCgvcnNcXFsnKC4pKj8nLykgPz8gWyduby1jbGFzcy1pZC1kZXRlY3RlZCddKVswXVxuICAgICAgICAgICAgICAucmVwbGFjZShcInJzWydcIiwgJycpXG4gICAgICAgICAgICAgIC5yZXBsYWNlKFwiJ1wiLCAnJyk7XG4gICAgICAgICAgICBldmFsdWF0aW9uID0gcnMuaXRlbXNbY2xhc3NJZF07XG4gICAgICAgICAgfSBlbHNlIGlmIChzcGxpdFBhcnQuc3RhcnRzV2l0aCgnWycpKSB7XG4gICAgICAgICAgICBpZiAoISFldmFsdWF0aW9uKSB7XG4gICAgICAgICAgICAgIGV2YWx1YXRpb24gPSBldmFsdWF0aW9uW3BhcnNlSW50KHNwbGl0UGFydC5zdWJzdHJpbmcoMSksIDEwKV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghIWV2YWx1YXRpb24pIHtcbiAgICAgICAgICAgICAgY29uc3QgaW5kZXhPZkNhcmV0ID0gc3BsaXRQYXJ0LmluZGV4T2YoJ1snKTtcbiAgICAgICAgICAgICAgaWYgKGluZGV4T2ZDYXJldCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBldmFsdWF0aW9uID0gZXZhbHVhdGlvbltzcGxpdFBhcnRdO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByb3AgPSBzcGxpdFBhcnQuc3Vic3RyaW5nKDAsIGluZGV4T2ZDYXJldCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3ViUHJvcCA9IHNwbGl0UGFydC5zdWJzdHJpbmcoaW5kZXhPZkNhcmV0ICsgMSk7XG4gICAgICAgICAgICAgICAgZXZhbHVhdGlvbiA9IGV2YWx1YXRpb25bcHJvcF0udmFsdWVzW3N1YlByb3BdO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmICghIWV2YWx1YXRpb24gJiYgZXZhbHVhdGlvbi50eXBlID09PSAnVkFMVUUnKSB7XG4gICAgICAgICAgICAgICAgZXZhbHVhdGlvbiA9IGV2YWx1YXRpb24udmFsdWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKGV4dHJhY3RlZCwgZXZhbHVhdGlvbik7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocmVzdWx0KTtcbiAgfVxuXG4gIHByaXZhdGUgbGltaXRTY29wZShjc3M6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2NvcGUgPSBgLnByeS10ZW1wbGF0ZS0ke3RoaXMuaWR9YDtcblxuICAgIGNvbnN0IHNjb3BlZCA9IGNzcy5yZXBsYWNlKC8oW30sXSA/KS9nLCBgJDEke3Njb3BlfSBgKS5yZXBsYWNlKG5ldyBSZWdFeHAoc2NvcGUgKyAnICQnKSwgJycpO1xuXG4gICAgcmV0dXJuIHNjb3BlICsgJyAnICsgc2NvcGVkO1xuICB9XG5cbiAgY2hhbmdlSHRtbCgkZXZlbnQ6IEV2ZW50KSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMub3B0aW9uc0NvcHkuaHRtbCA9ICRldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICB9XG5cbiAgY2hhbmdlQ3NzKCRldmVudDogRXZlbnQpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy5vcHRpb25zQ29weS5jc3MgPSAkZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZTtcbiAgfVxufVxuIiwiPHByeS13aWRnZXQtdGVtcGxhdGUtY3NzPjwvcHJ5LXdpZGdldC10ZW1wbGF0ZS1jc3M+XG48cHJ5LXdpZGdldC1oZWFkZXJcbiAgKm5nSWY9XCJkaXNwbGF5SGVhZGVyJCB8IGFzeW5jXCJcbiAgW3dpZGdldEluZGV4XT1cIndpZGdldEluZGV4XCJcbiAgW21hbmlmZXN0XT1cIm1hbmlmZXN0XCJcbiAgKG1hbmlmZXN0TW9kaWZpZWQpPVwibWFuaWZlc3RNb2RpZmllZC5lbWl0KCRldmVudClcIlxuICAjaGVhZGVyXG4gIFtoZWFkZXJPcHRpb25zXT1cIihkaXNwbGF5SGVhZGVyJCB8IGFzeW5jKSA/PyB7fVwiXG4gIFtkYXRhc291cmNlSWRzXT1cIihkYXRhc291cmNlSWRzJCB8IGFzeW5jKSA/PyBbXVwiXG4+XG4gIDxwcnktc2V0dGluZ3NcbiAgICAoc2F2ZVRyaWdnZXJlZCk9XCJlbWl0TWFuaWZlc3QoKVwiXG4gICAgKGNoYW5nZVRpdGxlKT1cImNoYW5nZVdpZGdldFRpdGxlKCRldmVudClcIlxuICAgIFtoZWFkZXJQcmVzZW50XT1cImRpc3BsYXlIZWFkZXIkIHwgYXN5bmNcIlxuICAgIFt3aWRnZXRJbmRleF09XCJ3aWRnZXRJbmRleFwiXG4gICAgW2hlYWRlcl09XCJoZWFkZXJcIlxuICAgIFtvcGVuJF09XCJvcGVuJFwiXG4gICAgY2xhc3M9XCJvLXNldHRpbmdzXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJvLXNldHRpbmdzX19maWVsZHNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImh0bWxfc3JjXCI+e3sgJ0Bwcnkud2lkZ2V0LnRlbXBsYXRlLmh0bWwnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkIGEtdGV4dC1hcmVhIC1vdmVyZmxvd1wiXG4gICAgICAgICAgaWQ9XCJodG1sX3NyY1wiXG4gICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbnNDb3B5Lmh0bWxcIlxuICAgICAgICAgIChpbnB1dCk9XCJjaGFuZ2VIdG1sKCRldmVudClcIlxuICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJjc3Nfc3JjXCI+e3sgJ0Bwcnkud2lkZ2V0LnRlbXBsYXRlLmNzcycgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGQgYS10ZXh0LWFyZWEgLW92ZXJmbG93XCJcbiAgICAgICAgICBpZD1cImNzc19zcmNcIlxuICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25zQ29weS5jc3NcIlxuICAgICAgICAgIChpbnB1dCk9XCJjaGFuZ2VDc3MoJGV2ZW50KVwiXG4gICAgICAgID48L3RleHRhcmVhPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvcHJ5LXNldHRpbmdzPlxuPC9wcnktd2lkZ2V0LWhlYWRlcj5cbjxkaXYgKm5nSWY9XCJjc3MkIHwgYXN5bmMgYXMgY3NzXCIgW2lubmVySHRtbF09XCJjc3NcIj48L2Rpdj5cbjxkaXYgKm5nSWY9XCJ0ZW1wbGF0ZSQgfCBhc3luYyBhcyB0ZW1wbGF0ZVwiIFtjbGFzc109XCIncHJ5LXRlbXBsYXRlLScgKyBpZFwiIFtpbm5lckh0bWxdPVwidGVtcGxhdGVcIj48L2Rpdj5cbiJdfQ==
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3dpZGdldHMvd2lkZ2V0LXRlbXBsYXRlL2NvbXBvbmVudC93aWRnZXQtdGVtcGxhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdGVtcGxhdGUvY29tcG9uZW50L3dpZGdldC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBR3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBeUIsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQU03QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsbUJBQW1CO2FBTXZELGdCQUFXLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUFFdkIsWUFDRSxLQUFpQixFQUNqQixFQUFjLEVBQ04sU0FBdUI7UUFFL0IsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUZULGNBQVMsR0FBVCxTQUFTLENBQWM7UUFUakMsZ0JBQVcsR0FBMEIsRUFBRSxDQUFDO1FBWXRDLElBQUksQ0FBQyxFQUFFLEdBQUcsdUJBQXVCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFnQyxDQUFDLENBQUMsQ0FBQztRQUVsRyxJ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QUssT0FBTyxFQUFFLENBQUM7Z0NBQ2hELFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDOzRCQUNoQyxDQUFDO3dCQUNILENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFFSCxNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDakQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTyxVQUFVLENBQUMsR0FBVztRQUM1QixNQUFNLEtBQUssR0FBRyxpQkFBaUIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBRXpDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTdGLE9BQU8sS0FBSyxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFhO1FBQ3RCLGFBQWE7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUNyRCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWE7UUFDckIsYUFBYTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ3BELENBQUM7OEdBekdVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGtGQ1hwQyxxa0RBNENBOzsyRkRqQ2EsdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBEYXRhV2lkZ2V0Q29tcG9uZW50LCBUZW1wbGF0ZVdpZGdldE9wdGlvbnMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdFdpdGgsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktd2lkZ2V0LXRlbXBsYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0VGVtcGxhdGVDb21wb25lbnQgZXh0ZW5kcyBEYXRhV2lkZ2V0Q29tcG9uZW50IHtcbiAgb3B0aW9ucyQ6IE9ic2VydmFibGU8VGVtcGxhdGVXaWRnZXRPcHRpb25zPjtcbiAgb3B0aW9uc0NvcHk6IFRlbXBsYXRlV2lkZ2V0T3B0aW9ucyA9IHt9O1xuICB0ZW1wbGF0ZSQ6IE9ic2VydmFibGU8U2FmZUh0bWw+O1xuICBjc3MkOiBPYnNlcnZhYmxlPFNhZmVIdG1sPjtcbiAgaWQ6IG51bWJlcjtcbiAgc3RhdGljIGlkR2VuZXJhdG9yID0gMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzdG9yZTogU3RvcmU8YW55PixcbiAgICBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyXG4gICkge1xuICAgIHN1cGVyKHN0b3JlLCBlbCk7XG4gICAgdGhpcy5pZCA9IFdpZGdldFRlbXBsYXRlQ29tcG9uZW50LmlkR2VuZXJhdG9yKys7XG4gICAgdGhpcy5vcHRpb25zJCA9IHRoaXMubWFuaWZlc3QkLnBpcGUobWFwKChtYW5pZmVzdCkgPT4gbWFuaWZlc3Qub3B0aW9ucyBhcyBUZW1wbGF0ZVdpZGdldE9wdGlvbnMpKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLm9wdGlvbnMkLnBpcGUoZmlsdGVyKChvcHQpID0+ICEhb3B0KSkuc3Vic2NyaWJlKChvcHRpb25zKSA9PiB7XG4gICAgICAgIHRoaXMub3B0aW9uc0NvcHkgPSB7IC4uLihKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpKSBhcyBUZW1wbGF0ZVdpZGdldE9wdGlvbnMpIH07XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnRlbXBsYXRlJCA9IHRoaXMub3B0aW9ucyQucGlwZShcbiAgICAgIG1hcCgob3B0aW9ucykgPT4gKCEhb3B0aW9ucy5zdmcgPyBvcHRpb25zLnN2ZyA6IG9wdGlvbnMuaHRtbCA/PyAnJykpLFxuICAgICAgY29tYmluZUxhdGVzdFdpdGgodGhpcy5yZXN1bHRTZXQkKSxcbiAgICAgIG1hcCgoW3RlbXBsYXRlLCByc10pID0+IHRoaXMuZXZhbHVhdGUodGVtcGxhdGUsIHJzKSlcbiAgICApO1xuXG4gICAgdGhpcy5jc3MkID0gdGhpcy5vcHRpb25zJC5waXBlKFxuICAgICAgbWFwKChvcHRpb25zKSA9PiBgPHN0eWxlPiR7dGhpcy5saW1pdFNjb3BlKG9wdGlvbnMuY3NzID8/ICcnKX08L3N0eWxlPmApLFxuICAgICAgY29tYmluZUxhdGVzdFdpdGgodGhpcy5yZXN1bHRTZXQkKSxcbiAgICAgIG1hcCgoW3RlbXBsYXRlLCByc10pID0+IHRoaXMuZXZhbHVhdGUodGVtcGxhdGUsIHJzKSlcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgZW1pdE1hbmlmZXN0KCkge1xuICAgIHRoaXMubWFuaWZlc3RNb2RpZmllZC5lbWl0KHtcbiAgICAgIHdpZGdldEluZGV4OiB0aGlzLndpZGdldEluZGV4LFxuICAgICAgbWFuaWZlc3Q6IHsgLi4udGhpcy5tYW5pZmVzdCwgb3B0aW9uczogdGhpcy5vcHRpb25zQ29weSB9XG4gICAgfSk7XG4gIH1cblxuICBldmFsdWF0ZSh0ZW1wbGF0ZTogc3RyaW5nLCByczogYW55KTogU2FmZUh0bWwge1xuICAgIGNvbnN0IHJlZ2V4cCA9IG5ldyBSZWdFeHAoJ3t7KC4qPyl9fScsICdnJyk7XG4gICAgY29uc3QgdG9SZXBsYWNlID0gdGVtcGxhdGUubWF0Y2gocmVnZXhwKTtcbiAgICBsZXQgcmVzdWx0ID0gdGVtcGxhdGU7XG5cbiAgICBpZiAoISF0b1JlcGxhY2UpIHtcbiAgICAgIHRvUmVwbGFjZS5mb3JFYWNoKChleHRyYWN0ZWQpID0+IHtcbiAgICAgICAgY29uc3QgZXhwciA9IGV4dHJhY3RlZC5zdWJzdHJpbmcoMiwgZXh0cmFjdGVkLmxlbmd0aCAtIDIpO1xuICAgICAgICBjb25zdCBzcGxpdHRlZCA9IGV4cHIuc3BsaXQoL1suXFxdXS8pLmZpbHRlcigoZXh0cikgPT4gZXh0ciAhPT0gJycpO1xuICAgICAgICBsZXQgZXZhbHVhdGlvbjogYW55ID0gbnVsbDtcblxuICAgICAgICBzcGxpdHRlZC5mb3JFYWNoKChfc3BsaXRQYXJ0KSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3BsaXRQYXJ0ID0gX3NwbGl0UGFydC50cmltKCk7XG4gICAgICAgICAgaWYgKHNwbGl0UGFydC5zdGFydHNXaXRoKCdycycpKSB7XG4gICAgICAgICAgICBjb25zdCBjbGFzc0lkID0gKGV4cHIubWF0Y2goL3JzXFxbJyguKSo/Jy8pID8/IFsnbm8tY2xhc3MtaWQtZGV0ZWN0ZWQnXSlbMF1cbiAgICAgICAgICAgICAgLnJlcGxhY2UoXCJyc1snXCIsICcnKVxuICAgICAgICAgICAgICAucmVwbGFjZShcIidcIiwgJycpO1xuICAgICAgICAgICAgZXZhbHVhdGlvbiA9IHJzLml0ZW1zW2NsYXNzSWRdO1xuICAgICAgICAgIH0gZWxzZSBpZiAoc3BsaXRQYXJ0LnN0YXJ0c1dpdGgoJ1snKSkge1xuICAgICAgICAgICAgaWYgKCEhZXZhbHVhdGlvbikge1xuICAgICAgICAgICAgICBldmFsdWF0aW9uID0gZXZhbHVhdGlvbltwYXJzZUludChzcGxpdFBhcnQuc3Vic3RyaW5nKDEpLCAxMCldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoISFldmFsdWF0aW9uKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4T2ZDYXJldCA9IHNwbGl0UGFydC5pbmRleE9mKCdbJyk7XG4gICAgICAgICAgICAgIGlmIChpbmRleE9mQ2FyZXQgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgZXZhbHVhdGlvbiA9IGV2YWx1YXRpb25bc3BsaXRQYXJ0XTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9wID0gc3BsaXRQYXJ0LnN1YnN0cmluZygwLCBpbmRleE9mQ2FyZXQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1YlByb3AgPSBzcGxpdFBhcnQuc3Vic3RyaW5nKGluZGV4T2ZDYXJldCArIDEpO1xuICAgICAgICAgICAgICAgIGV2YWx1YXRpb24gPSBldmFsdWF0aW9uW3Byb3BdLnZhbHVlc1tzdWJQcm9wXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoISFldmFsdWF0aW9uICYmIGV2YWx1YXRpb24udHlwZSA9PT0gJ1ZBTFVFJykge1xuICAgICAgICAgICAgICAgIGV2YWx1YXRpb24gPSBldmFsdWF0aW9uLnZhbHVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZShleHRyYWN0ZWQsIGV2YWx1YXRpb24pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHJlc3VsdCk7XG4gIH1cblxuICBwcml2YXRlIGxpbWl0U2NvcGUoY3NzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNjb3BlID0gYC5wcnktdGVtcGxhdGUtJHt0aGlzLmlkfWA7XG5cbiAgICBjb25zdCBzY29wZWQgPSBjc3MucmVwbGFjZSgvKFt9LF0gPykvZywgYCQxJHtzY29wZX0gYCkucmVwbGFjZShuZXcgUmVnRXhwKHNjb3BlICsgJyAkJyksICcnKTtcblxuICAgIHJldHVybiBzY29wZSArICcgJyArIHNjb3BlZDtcbiAgfVxuXG4gIGNoYW5nZUh0bWwoJGV2ZW50OiBFdmVudCkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB0aGlzLm9wdGlvbnNDb3B5Lmh0bWwgPSAkZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZTtcbiAgfVxuXG4gIGNoYW5nZUNzcygkZXZlbnQ6IEV2ZW50KSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMub3B0aW9uc0NvcHkuY3NzID0gJGV2ZW50LmN1cnJlbnRUYXJnZXQudmFsdWU7XG4gIH1cbn1cbiIsIjxwcnktd2lkZ2V0LXRlbXBsYXRlLWNzcz48L3ByeS13aWRnZXQtdGVtcGxhdGUtY3NzPlxuPHByeS13aWRnZXQtaGVhZGVyXG4gICpuZ0lmPVwiZGlzcGxheUhlYWRlciQgfCBhc3luY1wiXG4gIFt3aWRnZXRJbmRleF09XCJ3aWRnZXRJbmRleFwiXG4gIFttYW5pZmVzdF09XCJtYW5pZmVzdFwiXG4gIChtYW5pZmVzdE1vZGlmaWVkKT1cIm1hbmlmZXN0TW9kaWZpZWQuZW1pdCgkZXZlbnQpXCJcbiAgI2hlYWRlclxuICBbaGVhZGVyT3B0aW9uc109XCIoZGlzcGxheUhlYWRlciQgfCBhc3luYykgPz8ge31cIlxuICBbZGF0YXNvdXJjZUlkc109XCIoZGF0YXNvdXJjZUlkcyQgfCBhc3luYykgPz8gW11cIlxuPlxuICA8cHJ5LXNldHRpbmdzXG4gICAgKHNhdmVUcmlnZ2VyZWQpPVwiZW1pdE1hbmlmZXN0KClcIlxuICAgIChjaGFuZ2VUaXRsZSk9XCJjaGFuZ2VXaWRnZXRUaXRsZSgkZXZlbnQpXCJcbiAgICBbaGVhZGVyUHJlc2VudF09XCJkaXNwbGF5SGVhZGVyJCB8IGFzeW5jXCJcbiAgICBbd2lkZ2V0SW5kZXhdPVwid2lkZ2V0SW5kZXhcIlxuICAgIFtoZWFkZXJdPVwiaGVhZGVyXCJcbiAgICBbb3BlbiRdPVwib3BlbiRcIlxuICAgIGNsYXNzPVwiby1zZXR0aW5nc1wiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiby1zZXR0aW5nc19fZmllbGRzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJodG1sX3NyY1wiPnt7ICdAcHJ5LndpZGdldC50ZW1wbGF0ZS5odG1sJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZCBhLXRleHQtYXJlYSAtb3ZlcmZsb3dcIlxuICAgICAgICAgIGlkPVwiaHRtbF9zcmNcIlxuICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25zQ29weS5odG1sXCJcbiAgICAgICAgICAoaW5wdXQpPVwiY2hhbmdlSHRtbCgkZXZlbnQpXCJcbiAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwiY3NzX3NyY1wiPnt7ICdAcHJ5LndpZGdldC50ZW1wbGF0ZS5jc3MnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkIGEtdGV4dC1hcmVhIC1vdmVyZmxvd1wiXG4gICAgICAgICAgaWQ9XCJjc3Nfc3JjXCJcbiAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uc0NvcHkuY3NzXCJcbiAgICAgICAgICAoaW5wdXQpPVwiY2hhbmdlQ3NzKCRldmVudClcIlxuICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3ByeS1zZXR0aW5ncz5cbjwvcHJ5LXdpZGdldC1oZWFkZXI+XG48ZGl2ICpuZ0lmPVwiY3NzJCB8IGFzeW5jIGFzIGNzc1wiIFtpbm5lckh0bWxdPVwiY3NzXCI+PC9kaXY+XG48ZGl2ICpuZ0lmPVwidGVtcGxhdGUkIHwgYXN5bmMgYXMgdGVtcGxhdGVcIiBbY2xhc3NdPVwiJ3ByeS10ZW1wbGF0ZS0nICsgaWRcIiBbaW5uZXJIdG1sXT1cInRlbXBsYXRlXCI+PC9kaXY+XG4iXX0=
|
|
@@ -128,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
128
128
|
type: Component,
|
|
129
129
|
args: [{ selector: 'pry-widget-tile', template: "<pry-widget-tile-css></pry-widget-tile-css>\n<div class=\"o-widget o-widget--tile\">\n <pry-widget-header\n [datasourceIds]=\"(datasourceIds$ | async) ?? []\"\n *ngIf=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [manifest]=\"manifest\"\n (manifestModified)=\"manifestModified.emit($event)\"\n [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n #header\n >\n <pry-settings\n (saveTriggered)=\"emitManifest()\"\n (changeTitle)=\"changeWidgetTitle($event)\"\n [headerPresent]=\"displayHeader$ | async\"\n [widgetIndex]=\"widgetIndex\"\n [header]=\"header\"\n [open$]=\"open$\"\n class=\"o-settings\"\n >\n <div class=\"m-form-label-field\">\n <label class=\"a-label\" for=\"tile_classes\">{{ '@pry.widget.tile.classes' | i18n }}</label>\n <pry-select\n (ngModelChange)=\"changeClasses($event)\"\n [items]=\"classes$ | async\"\n [multiple]=\"true\"\n [closeOnSelect]=\"false\"\n [ngModel]=\"optionsCopy.classes\"\n bindLabel=\"name\"\n bindValue=\"id\"\n id=\"tile_classes\"\n ></pry-select>\n </div>\n </pry-settings>\n </pry-widget-header>\n <div class=\"o-widget--tile-wrapper\" [style.top]=\"(displayHeader$ | async) ? WIDGET_HEADER_HEIGHT + 'px' : 0\">\n @if ((items$ | async)?.length === 0) {\n <div class=\"no-result\">\n <img\n class=\"no-result__search\"\n src=\"../../../assets/svgs/pry_recherche_pas_de_resultat.svg\"\n alt=\"{{ '@pry.widget.tile.empty' | i18n }}\"\n aria-hidden=\"true\"\n />\n <span class=\"no-result__text\">{{ '@pry.widget.tile.empty' | i18n }}</span>\n </div>\n }\n <ul class=\"o-widget--tile__list\">\n @for (item of items$ | async; track item.id; let index = $index) {\n <li class=\"o-widget--tile__list__item\" (contextmenu)=\"contextMenu($event, item)\">\n <div class=\"o-widget--tile__list__item__header\">\n <img\n [height]=\"25\"\n [width]=\"25\"\n [src]=\"item | translateItemToSymbol | async\"\n [alt]=\"item.oClass | translateId: { type: 'class', output: 'name' } | async\"\n />\n <h3 class=\"o-widget--tile__list__item__header__title\">\n {{\n item.oClass\n | translateId\n : {\n type: 'class',\n output: 'name'\n }\n | async\n }}\n </h3>\n <pry-checkbox\n [ngModel]=\"(selectedIds$ | async).includes(item.id)\"\n (click)=\"select($event, item)\"\n ></pry-checkbox>\n </div>\n <div class=\"o-properties\">\n <ul class=\"o-properties__list\">\n @for (property of (propertiesToDisplay$ | async)![item.oClass]; track property.prop) {\n <li\n *ngFor=\"let value of getValue(item, property.prop); let i = index; let c = count\"\n class=\"o-properties__list__item\"\n >\n @if (i === 0) {\n <p class=\"o-properties__list__item__label\">{{ property.label }}:</p>\n }\n @if (!isRaw(property.label, item.oClass)) {\n <p class=\"o-properties__list__item__value\">\n {{ value?.value | dataFormat: property.field }}\n </p>\n } @else {\n <p class=\"o-properties__list__item__raw\">\n <pry-vizualize-raw [item]=\"item\" [propertyName]=\"property.label\"></pry-vizualize-raw>\n </p>\n }\n @if (hasMetadata(value)) {\n <pry-metadata [item]=\"value\"></pry-metadata>\n }\n </li>\n }\n </ul>\n </div>\n <div (click)=\"toggleMap(index, item)\" class=\"o-widget--tile__list__item__footer\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--icon-text -link-like\"\n aria-controls=\"tile-map-xxx\"\n aria-expanded=\"false\"\n >\n {{ '@pry.widget.tile.map' | i18n }}\n </button>\n </div>\n @if (maps[index]) {\n <div class=\"o-widget--tile__list__item__map\" id=\"tile-map-xxx\">\n <pry-widget-map [staticManifest]=\"mapManifest\" [staticResultSet]=\"maps[index]!\"></pry-widget-map>\n </div>\n }\n </li>\n }\n </ul>\n </div>\n</div>\n" }]
|
|
130
130
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i0.ElementRef }] });
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXRpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdGlsZS9jb21wb25lbnQvd2lkZ2V0LXRpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdGlsZS9jb21wb25lbnQvd2lkZ2V0LXRpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBR0wsY0FBYyxFQUNkLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFFbkIsY0FBYyxFQUNkLFNBQVMsRUFFVCxTQUFTLEVBR1Qsb0JBQW9CLEVBQ3JCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBTTdDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxtQkFBbUI7SUFrQjFELFlBQVksS0FBaUIsRUFBRSxFQUFjO1FBQzNDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFmbkIsU0FBSSxHQUE4QixFQUFFLENBQUM7UUFDckMsZ0JBQVcsR0FBRztZQUNaLElBQUksRUFBRSxLQUFLO1lBQ1gsTUFBTSxFQUFFLEtBQUs7WUFDYixNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFO1lBQzNDLE9BQU8s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QyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQWdCLEVBQUUsT0FBZTtRQUNyQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsQ0FBQztRQUNqRSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztRQUN0RSxPQUFPLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDO0lBQ3JELENBQUM7SUFFRCxXQUFXLENBQUMsS0FBa0M7UUFDNUMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN2RCxDQUFDOzhHQXhJVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiw4RUMzQmhDLHlwSkF1SEE7OzJGRDVGYSxtQkFBbUI7a0JBSi9CLFNBQVM7K0JBQ0UsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIEF0dHJpYnV0ZVNpbXBsZVZhbHVlLFxuICBDbGFzcyxcbiAgQ2xhc3NTZWxlY3RvcnMsXG4gIENvbmZpZ1NlbGVjdG9ycyxcbiAgQ29udGV4dE1lbnVBY3Rpb25zLFxuICBEYXNoYm9hcmRBY3Rpb25zLFxuICBEYXNoYm9hcmRTZWxlY3RvcnMsXG4gIERhdGFXaWRnZXRDb21wb25lbnQsXG4gIEZpZWxkLFxuICBGaWVsZFNlbGVjdG9ycyxcbiAgRmllbGRUeXBlLFxuICBJdGVtLFxuICBJdGVtVXRpbHMsXG4gIFJlc3VsdFNldCxcbiAgVGlsZVdpZGdldE9wdGlvbnMsXG4gIFdJREdFVF9IRUFERVJfSEVJR0hUXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LXdpZGdldC10aWxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC10aWxlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRUaWxlQ29tcG9uZW50IGV4dGVuZHMgRGF0YVdpZGdldENvbXBvbmVudCB7XG4gIG9wdGlvbnMkOiBPYnNlcnZhYmxlPFRpbGVXaWRnZXRPcHRpb25zPjtcbiAgaXRlbXMkOiBPYnNlcnZhYmxlPEl0ZW1bXT47XG4gIHNlbGVjdGVkSWRzJDogT2JzZXJ2YWJsZTxhbnk+O1xuICBtYXBzOiAodW5kZWZpbmVkIHwgUmVzdWx0U2V0KVtdID0gW107XG4gIG1hcE1hbmlmZXN0ID0ge1xuICAgIHR5cGU6ICdtYXAnLFxuICAgIGhlYWRlcjogZmFsc2UsXG4gICAgbGF5b3V0OiB7IHg6IDEsIHk6IDEsIHdpZHRoOiAxLCBoZWlnaHQ6IDEgfSxcbiAgICBvcHRpb25zOiB7IGxheWVyczogW3sgdHlwZTogJ21hcmtlcicgfV0sIGZpdDogdHJ1ZSB9XG4gIH07XG4gIGNsYXNzZXMkOiBPYnNlcnZhYmxlPENsYXNzW10+O1xuICBvcHRpb25zQ29weTogVGlsZVdpZGdldE9wdGlvbnMgPSB7fTtcbiAgV0lER0VUX0hFQURFUl9IRUlHSFQgPSBXSURHRVRfSEVBREVSX0hFSUdIVDtcbiAgcHJvcGVydGllc1RvRGlzcGxheSQ6IE9ic2VydmFibGU8eyBbcDogc3RyaW5nXTogeyBsYWJlbDogc3RyaW5nOyBwcm9wOiBzdHJpbmc7IGZpZWxkOiBGaWVsZCB9W10gfSB8IHVuZGVmaW5lZD47XG4gIGZpZWxkczogRmllbGRbXSA9IFtdO1xuICBjbGFzc2VzOiBDbGFzc1tdID0gW107XG5cbiAgY29uc3RydWN0b3Ioc3RvcmU6IFN0b3JlPGFueT4sIGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoc3RvcmUsIGVsKTtcbiAgICB0aGlzLm9wdGlvbnMkID0gdGhpcy5tYW5pZmVzdCQucGlwZShtYXAoKG1hbmlmZXN0KSA9PiBtYW5pZmVzdC5vcHRpb25zIGFzIFRpbGVXaWRnZXRPcHRpb25zKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMub3B0aW9ucyQucGlwZShmaWx0ZXIoKG9wdCkgPT4gISFvcHQpKS5zdWJzY3JpYmUoKG9wdGlvbnMpID0+IHtcbiAgICAgICAgdGhpcy5vcHRpb25zQ29weSA9IHsgLi4uKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob3B0aW9ucykpIGFzIFRpbGVXaWRnZXRPcHRpb25zKSB9O1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuaXRlbXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnJlc3VsdFNldCQucGlwZShtYXAoKHJzKSA9PiBPYmplY3QudmFsdWVzKHJzLml0ZW1zKS5yZWR1Y2UoKHAsIGMpID0+IFsuLi5wLCAuLi5jXSwgW10pKSksXG4gICAgICB0aGlzLm9wdGlvbnMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2l0ZW1zLCBvcHRpb25zXSkgPT5cbiAgICAgICAgaXRlbXMuZmlsdGVyKFxuICAgICAgICAgIChpdGVtKSA9PiAhb3B0aW9ucy5jbGFzc2VzIHx8IG9wdGlvbnMuY2xhc3Nlcy5sZW5ndGggPT09IDAgfHwgb3B0aW9ucy5jbGFzc2VzLmluY2x1ZGVzKGl0ZW0ub0NsYXNzKVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnNlbGVjdGVkSWRzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5zZWxlY3RlZEl0ZW1JZHMpO1xuICAgIHRoaXMuY2xhc3NlcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChDbGFzc1NlbGVjdG9ycy5jbGFzc2VzKTtcbiAgICB0aGlzLnByb3BlcnRpZXNUb0Rpc3BsYXkkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNsYXNzZXMkLFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLnRpbGVBdHRyaWJ1dGVzRGVmaW5pdGlvbnMpLFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLm1heEF0dHJpYnV0ZXNJblRpbGVzKVxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtjbGFzc2VzLCB0aWxlRGVmcywgbWF4VGlsZXNBdHRyaWJ1dGVzXSkgPT4gKHtcbiAgICAgICAgLi4uY2xhc3Nlc1xuICAgICAgICAgIC5tYXAoKGNsYXp6KSA9PiAoe1xuICAgICAgICAgICAgW2NsYXp6LmlkXTogW1xuICAgICAgICAgICAgICAuLi5jbGF6ei5hdHRyaWJ1dGVzXG4gICAgICAgICAgICAgICAgLm1hcCgoYXR0cikgPT4gKHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBhdHRyLm5hbWUsXG4gICAgICAgICAgICAgICAgICBwcm9wOiBhdHRyLnRlY2huaWNhbE5hbWUsXG4gICAgICAgICAgICAgICAgICBmaWVsZDogYXR0ci5maWVsZFxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKF8sIGkpID0+IGkgPCBtYXhUaWxlc0F0dHJpYnV0ZXMpXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSkpXG4gICAgICAgICAgLnJlZHVjZSgocCwgYykgPT4gKHsgLi4ucCwgLi4uYyB9KSwge30pLFxuICAgICAgICAuLi5jbGFzc2VzXG4gICAgICAgICAgLmZpbHRlcigoY2xhenopID0+ICEhdGlsZURlZnNbY2xhenouaWRdKVxuICAgICAgICAgIC5tYXAoKGNsYXp6KSA9PiAoe1xuICAgICAgICAgICAgW2NsYXp6LmlkXTogW1xuICAgICAgICAgICAgICAuLi5jbGF6ei5hdHRyaWJ1dGVzXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoYXR0cikgPT4gdGlsZURlZnNbY2xhenouaWRdLmluY2x1ZGVzKGF0dHIubmFtZSkpXG4gICAgICAgICAgICAgICAgLm1hcCgoYXR0cikgPT4gKHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBhdHRyLm5hbWUsXG4gICAgICAgICAgICAgICAgICBwcm9wOiBhdHRyLnRlY2huaWNhbE5hbWUsXG4gICAgICAgICAgICAgICAgICBmaWVsZDogYXR0ci5maWVsZFxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0pKVxuICAgICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+ICh7IC4uLnAsIC4uLmMgfSksIHt9KVxuICAgICAgfSkpXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuc3RvcmUuc2VsZWN0KEZpZWxkU2VsZWN0b3JzLmZpZWxkcykuc3Vic2NyaWJlKChmaWVsZHMpID0+ICh0aGlzLmZpZWxkcyA9IGZpZWxkcykpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuY2xhc3NlcyQuc3Vic2NyaWJlKChjbGFzc2VzKSA9PiAodGhpcy5jbGFzc2VzID0gY2xhc3NlcykpKTtcbiAgfVxuXG4gIGNvbnRleHRNZW51KCRldmVudDogTW91c2VFdmVudCwgaXRlbTogSXRlbSkge1xuICAgIGlmICh0aGlzLm1hbmlmZXN0LmNvbnRleHRNZW51ICE9PSBmYWxzZSkge1xuICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBDb250ZXh0TWVudUFjdGlvbnMub3Blbih7XG4gICAgICAgICAgaXRlbUlkOiBpdGVtLmlkLFxuICAgICAgICAgIGNsaWVudFg6ICRldmVudC5jbGllbnRYLFxuICAgICAgICAgIGNsaWVudFk6ICRldmVudC5jbGllbnRZLFxuICAgICAgICAgIGZyb206ICd0aWxlJyxcbiAgICAgICAgICBhbGxvd09iamVjdENyZWF0aW9uOiBmYWxzZVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3QoJGV2ZW50OiBNb3VzZUV2ZW50LCBpdGVtOiBJdGVtKSB7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3QoeyBpZDogaXRlbS5pZCwgY3VtdWxhdGl2ZTogISRldmVudC5zaGlmdEtleSB9KSk7XG4gIH1cblxuICB0b2dnbGVNYXAoaW5kZXg6IG51bWJlciwgaXRlbTogSXRlbSkge1xuICAgIHRoaXMubWFwc1tpbmRleF0gPSAhdGhpcy5tYXBzW2luZGV4XVxuICAgICAgPyAoeyBpdGVtczogeyBbaXRlbS5vQ2xhc3NdOiBbaXRlbV0gfSwgcmVsYXRpb25zOiBbXSB9IGFzIFJlc3VsdFNldClcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcmVzdWx0U2V0V2l0aEl0ZW0oaXRlbTogSXRlbSk6IFJlc3VsdFNldCB7XG4gICAgcmV0dXJuIHsgaXRlbXM6IHsgW2l0ZW0ub0NsYXNzXTogW2l0ZW1dIH0sIHJlbGF0aW9uczogW10gfTtcbiAgfVxuXG4gIGVtaXRNYW5pZmVzdCgpIHtcbiAgICB0aGlzLm1hbmlmZXN0TW9kaWZpZWQuZW1pdCh7XG4gICAgICB3aWRnZXRJbmRleDogdGhpcy53aWRnZXRJbmRleCxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIC4uLnRoaXMubWFuaWZlc3QsXG4gICAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9uc0NvcHlcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNoYW5nZUNsYXNzZXMoJGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm9wdGlvbnNDb3B5LmNsYXNzZXMgPSAkZXZlbnQ7XG4gIH1cblxuICBnZXRWYWx1ZShpdGVtOiBJdGVtLCBwcm9wZXJ0eTogc3RyaW5nKTogQXR0cmlidXRlU2ltcGxlVmFsdWVbXSB7XG4gICAgY29uc3QgdmFsdWUgPSBJdGVtVXRpbHMuZ2V0QXR0cmlidXRlVmFsdWUoaXRlbSwgcHJvcGVydHkpO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgfVxuXG4gIGlzUmF3KHByb3BlcnR5OiBzdHJpbmcsIGNsYXNzSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNsYXp6ID0gdGhpcy5jbGFzc2VzLmZpbmQoKGNsYXp6KSA9PiBjbGF6ei5pZCA9PT0gY2xhc3NJZCk7XG4gICAgY29uc3QgcHJvcCA9IGNsYXp6Py5hdHRyaWJ1dGVzLmZpbmQoKGF0dHIpID0+IGF0dHIubmFtZSA9PT0gcHJvcGVydHkpO1xuICAgIHJldHVybiBwcm9wPy5maWVsZC50eXBlID09PSBGaWVsZFR5cGUuUkFXID8/IGZhbHNlO1xuICB9XG5cbiAgaGFzTWV0YWRhdGEodmFsdWU6IEF0dHJpYnV0ZVNpbXBsZVZhbHVlIHwgSXRlbSkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh2YWx1ZT8ubWV0YWRhdGEgPz8ge30pLmxlbmd0aCA+IDA7XG4gIH1cbn1cbiIsIjxwcnktd2lkZ2V0LXRpbGUtY3NzPjwvcHJ5LXdpZGdldC10aWxlLWNzcz5cbjxkaXYgY2xhc3M9XCJvLXdpZGdldCBvLXdpZGdldC0tdGlsZVwiPlxuICA8cHJ5LXdpZGdldC1oZWFkZXJcbiAgICBbZGF0YXNvdXJjZUlkc109XCIoZGF0YXNvdXJjZUlkcyQgfCBhc3luYykgPz8gW11cIlxuICAgICpuZ0lmPVwiZGlzcGxheUhlYWRlciQgfCBhc3luY1wiXG4gICAgW3dpZGdldEluZGV4XT1cIndpZGdldEluZGV4XCJcbiAgICBbbWFuaWZlc3RdPVwibWFuaWZlc3RcIlxuICAgIChtYW5pZmVzdE1vZGlmaWVkKT1cIm1hbmlmZXN0TW9kaWZpZWQuZW1pdCgkZXZlbnQpXCJcbiAgICBbaGVhZGVyT3B0aW9uc109XCIoZGlzcGxheUhlYWRlciQgfCBhc3luYykgPz8ge31cIlxuICAgICNoZWFkZXJcbiAgPlxuICAgIDxwcnktc2V0dGluZ3NcbiAgICAgIChzYXZlVHJpZ2dlcmVkKT1cImVtaXRNYW5pZmVzdCgpXCJcbiAgICAgIChjaGFuZ2VUaXRsZSk9XCJjaGFuZ2VXaWRnZXRUaXRsZSgkZXZlbnQpXCJcbiAgICAgIFtoZWFkZXJQcmVzZW50XT1cImRpc3BsYXlIZWFkZXIkIHwgYXN5bmNcIlxuICAgICAgW3dpZGdldEluZGV4XT1cIndpZGdldEluZGV4XCJcbiAgICAgIFtoZWFkZXJdPVwiaGVhZGVyXCJcbiAgICAgIFtvcGVuJF09XCJvcGVuJFwiXG4gICAgICBjbGFzcz1cIm8tc2V0dGluZ3NcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cInRpbGVfY2xhc3Nlc1wiPnt7ICdAcHJ5LndpZGdldC50aWxlLmNsYXNzZXMnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlQ2xhc3NlcygkZXZlbnQpXCJcbiAgICAgICAgICBbaXRlbXNdPVwiY2xhc3NlcyQgfCBhc3luY1wiXG4gICAgICAgICAgW211bHRpcGxlXT1cInRydWVcIlxuICAgICAgICAgIFtjbG9zZU9uU2VsZWN0XT1cImZhbHNlXCJcbiAgICAgICAgICBbbmdNb2RlbF09XCJvcHRpb25zQ29weS5jbGFzc2VzXCJcbiAgICAgICAgICBiaW5kTGFiZWw9XCJuYW1lXCJcbiAgICAgICAgICBiaW5kVmFsdWU9XCJpZFwiXG4gICAgICAgICAgaWQ9XCJ0aWxlX2NsYXNzZXNcIlxuICAgICAgICA+PC9wcnktc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgPC9wcnktc2V0dGluZ3M+XG4gIDwvcHJ5LXdpZGdldC1oZWFkZXI+XG4gIDxkaXYgY2xhc3M9XCJvLXdpZGdldC0tdGlsZS13cmFwcGVyXCIgW3N0eWxlLnRvcF09XCIoZGlzcGxheUhlYWRlciQgfCBhc3luYykgPyBXSURHRVRfSEVBREVSX0hFSUdIVCArICdweCcgOiAwXCI+XG4gICAgQGlmICgoaXRlbXMkIHwgYXN5bmMpPy5sZW5ndGggPT09IDApIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJuby1yZXN1bHRcIj5cbiAgICAgICAgPGltZ1xuICAgICAgICAgIGNsYXNzPVwibm8tcmVzdWx0X19zZWFyY2hcIlxuICAgICAgICAgIHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9zdmdzL3ByeV9yZWNoZXJjaGVfcGFzX2RlX3Jlc3VsdGF0LnN2Z1wiXG4gICAgICAgICAgYWx0PVwie3sgJ0Bwcnkud2lkZ2V0LnRpbGUuZW1wdHknIHwgaTE4biB9fVwiXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJuby1yZXN1bHRfX3RleHRcIj57eyAnQHByeS53aWRnZXQudGlsZS5lbXB0eScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIDx1bCBjbGFzcz1cIm8td2lkZ2V0LS10aWxlX19saXN0XCI+XG4gICAgICBAZm9yIChpdGVtIG9mIGl0ZW1zJCB8IGFzeW5jOyB0cmFjayBpdGVtLmlkOyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcbiAgICAgICAgPGxpIGNsYXNzPVwiby13aWRnZXQtLXRpbGVfX2xpc3RfX2l0ZW1cIiAoY29udGV4dG1lbnUpPVwiY29udGV4dE1lbnUoJGV2ZW50LCBpdGVtKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXdpZGdldC0tdGlsZV9fbGlzdF9faXRlbV9faGVhZGVyXCI+XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgIFtoZWlnaHRdPVwiMjVcIlxuICAgICAgICAgICAgICBbd2lkdGhdPVwiMjVcIlxuICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0gfCB0cmFuc2xhdGVJdGVtVG9TeW1ib2wgfCBhc3luY1wiXG4gICAgICAgICAgICAgIFthbHRdPVwiaXRlbS5vQ2xhc3MgfCB0cmFuc2xhdGVJZDogeyB0eXBlOiAnY2xhc3MnLCBvdXRwdXQ6ICduYW1lJyB9IHwgYXN5bmNcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxoMyBjbGFzcz1cIm8td2lkZ2V0LS10aWxlX19saXN0X19pdGVtX19oZWFkZXJfX3RpdGxlXCI+XG4gICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgaXRlbS5vQ2xhc3NcbiAgICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlSWRcbiAgICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnY2xhc3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0OiAnbmFtZSdcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB8IGFzeW5jXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgPHByeS1jaGVja2JveFxuICAgICAgICAgICAgICBbbmdNb2RlbF09XCIoc2VsZWN0ZWRJZHMkIHwgYXN5bmMpLmluY2x1ZGVzKGl0ZW0uaWQpXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdCgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgID48L3ByeS1jaGVja2JveD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1wcm9wZXJ0aWVzXCI+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJvLXByb3BlcnRpZXNfX2xpc3RcIj5cbiAgICAgICAgICAgICAgQGZvciAocHJvcGVydHkgb2YgKHByb3BlcnRpZXNUb0Rpc3BsYXkkIHwgYXN5bmMpIVtpdGVtLm9DbGFzc107IHRyYWNrIHByb3BlcnR5LnByb3ApIHtcbiAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBnZXRWYWx1ZShpdGVtLCBwcm9wZXJ0eS5wcm9wKTsgbGV0IGkgPSBpbmRleDsgbGV0IGMgPSBjb3VudFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm8tcHJvcGVydGllc19fbGlzdF9faXRlbVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiby1wcm9wZXJ0aWVzX19saXN0X19pdGVtX19sYWJlbFwiPnt7IHByb3BlcnR5LmxhYmVsIH19OjwvcD5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBpZiAoIWlzUmF3KHByb3BlcnR5LmxhYmVsLCBpdGVtLm9DbGFzcykpIHtcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJvLXByb3BlcnRpZXNfX2xpc3RfX2l0ZW1fX3ZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgdmFsdWU/LnZhbHVlIHwgZGF0YUZvcm1hdDogcHJvcGVydHkuZmllbGQgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiby1wcm9wZXJ0aWVzX19saXN0X19pdGVtX19yYXdcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8cHJ5LXZpenVhbGl6ZS1yYXcgW2l0ZW1dPVwiaXRlbVwiIFtwcm9wZXJ0eU5hbWVdPVwicHJvcGVydHkubGFiZWxcIj48L3ByeS12aXp1YWxpemUtcmF3PlxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAaWYgKGhhc01ldGFkYXRhKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICA8cHJ5LW1ldGFkYXRhIFtpdGVtXT1cInZhbHVlXCI+PC9wcnktbWV0YWRhdGE+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IChjbGljayk9XCJ0b2dnbGVNYXAoaW5kZXgsIGl0ZW0pXCIgY2xhc3M9XCJvLXdpZGdldC0tdGlsZV9fbGlzdF9faXRlbV9fZm9vdGVyXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLXRleHQgLWxpbmstbGlrZVwiXG4gICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJ0aWxlLW1hcC14eHhcIlxuICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnQHByeS53aWRnZXQudGlsZS5tYXAnIHwgaTE4biB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgQGlmIChtYXBzW2luZGV4XSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm8td2lkZ2V0LS10aWxlX19saXN0X19pdGVtX19tYXBcIiBpZD1cInRpbGUtbWFwLXh4eFwiPlxuICAgICAgICAgICAgICA8cHJ5LXdpZGdldC1tYXAgW3N0YXRpY01hbmlmZXN0XT1cIm1hcE1hbmlmZXN0XCIgW3N0YXRpY1Jlc3VsdFNldF09XCJtYXBzW2luZGV4XSFcIj48L3ByeS13aWRnZXQtbWFwPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2xpPlxuICAgICAgfVxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXRpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdGlsZS9jb21wb25lbnQvd2lkZ2V0LXRpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdGlsZS9jb21wb25lbnQvd2lkZ2V0LXRpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUV0RCxPQUFPLEVBR0wsY0FBYyxFQUNkLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFFbkIsY0FBYyxFQUNkLFNBQVMsRUFFVCxTQUFTLEVBR1Qsb0JBQW9CLEVBQ3JCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBTTdDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxtQkFBbUI7SUFrQjFELFlBQVksS0FBaUIsRUFBRSxFQUFjO1FBQzNDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFmbkIsU0FBSSxHQUE4QixFQUFFLENBQUM7UUFDckMsZ0JBQVcsR0FBRztZQUNaLElBQUksRUFBRSxLQUFLO1lBQ1gsTUFBTSxFQUFFLEtBQUs7WUFDYixNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFO1lBQzNDLE9BQU8s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QUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFnQixFQUFFLE9BQWU7UUFDckMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDakUsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDdEUsT0FBTyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQztJQUNyRCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWtDO1FBQzVDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs4R0F4SVUsbUJBQW1CO2tHQUFuQixtQkFBbUIsOEVDM0JoQyx5cEpBdUhBOzsyRkQ1RmEsbUJBQW1CO2tCQUovQixTQUFTOytCQUNFLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSxcbiAgQ2xhc3MsXG4gIENsYXNzU2VsZWN0b3JzLFxuICBDb25maWdTZWxlY3RvcnMsXG4gIENvbnRleHRNZW51QWN0aW9ucyxcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGFzaGJvYXJkU2VsZWN0b3JzLFxuICBEYXRhV2lkZ2V0Q29tcG9uZW50LFxuICBGaWVsZCxcbiAgRmllbGRTZWxlY3RvcnMsXG4gIEZpZWxkVHlwZSxcbiAgSXRlbSxcbiAgSXRlbVV0aWxzLFxuICBSZXN1bHRTZXQsXG4gIFRpbGVXaWRnZXRPcHRpb25zLFxuICBXSURHRVRfSEVBREVSX0hFSUdIVFxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS13aWRnZXQtdGlsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtdGlsZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0VGlsZUNvbXBvbmVudCBleHRlbmRzIERhdGFXaWRnZXRDb21wb25lbnQge1xuICBvcHRpb25zJDogT2JzZXJ2YWJsZTxUaWxlV2lkZ2V0T3B0aW9ucz47XG4gIGl0ZW1zJDogT2JzZXJ2YWJsZTxJdGVtW10+O1xuICBzZWxlY3RlZElkcyQ6IE9ic2VydmFibGU8YW55PjtcbiAgbWFwczogKHVuZGVmaW5lZCB8IFJlc3VsdFNldClbXSA9IFtdO1xuICBtYXBNYW5pZmVzdCA9IHtcbiAgICB0eXBlOiAnbWFwJyxcbiAgICBoZWFkZXI6IGZhbHNlLFxuICAgIGxheW91dDogeyB4OiAxLCB5OiAxLCB3aWR0aDogMSwgaGVpZ2h0OiAxIH0sXG4gICAgb3B0aW9uczogeyBsYXllcnM6IFt7IHR5cGU6ICdtYXJrZXInIH1dLCBmaXQ6IHRydWUgfVxuICB9O1xuICBjbGFzc2VzJDogT2JzZXJ2YWJsZTxDbGFzc1tdPjtcbiAgb3B0aW9uc0NvcHk6IFRpbGVXaWRnZXRPcHRpb25zID0ge307XG4gIFdJREdFVF9IRUFERVJfSEVJR0hUID0gV0lER0VUX0hFQURFUl9IRUlHSFQ7XG4gIHByb3BlcnRpZXNUb0Rpc3BsYXkkOiBPYnNlcnZhYmxlPHsgW3A6IHN0cmluZ106IHsgbGFiZWw6IHN0cmluZzsgcHJvcDogc3RyaW5nOyBmaWVsZDogRmllbGQgfVtdIH0gfCB1bmRlZmluZWQ+O1xuICBmaWVsZHM6IEZpZWxkW10gPSBbXTtcbiAgY2xhc3NlczogQ2xhc3NbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHN0b3JlOiBTdG9yZTxhbnk+LCBlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKHN0b3JlLCBlbCk7XG4gICAgdGhpcy5vcHRpb25zJCA9IHRoaXMubWFuaWZlc3QkLnBpcGUobWFwKChtYW5pZmVzdCkgPT4gbWFuaWZlc3Qub3B0aW9ucyBhcyBUaWxlV2lkZ2V0T3B0aW9ucykpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLm9wdGlvbnMkLnBpcGUoZmlsdGVyKChvcHQpID0+ICEhb3B0KSkuc3Vic2NyaWJlKChvcHRpb25zKSA9PiB7XG4gICAgICAgIHRoaXMub3B0aW9uc0NvcHkgPSB7IC4uLihKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpKSBhcyBUaWxlV2lkZ2V0T3B0aW9ucykgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLml0ZW1zJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5yZXN1bHRTZXQkLnBpcGUobWFwKChycykgPT4gT2JqZWN0LnZhbHVlcyhycy5pdGVtcykucmVkdWNlKChwLCBjKSA9PiBbLi4ucCwgLi4uY10sIFtdKSkpLFxuICAgICAgdGhpcy5vcHRpb25zJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtpdGVtcywgb3B0aW9uc10pID0+XG4gICAgICAgIGl0ZW1zLmZpbHRlcihcbiAgICAgICAgICAoaXRlbSkgPT4gIW9wdGlvbnMuY2xhc3NlcyB8fCBvcHRpb25zLmNsYXNzZXMubGVuZ3RoID09PSAwIHx8IG9wdGlvbnMuY2xhc3Nlcy5pbmNsdWRlcyhpdGVtLm9DbGFzcylcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5zZWxlY3RlZElkcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuc2VsZWN0ZWRJdGVtSWRzKTtcbiAgICB0aGlzLmNsYXNzZXMkID0gdGhpcy5zdG9yZS5zZWxlY3QoQ2xhc3NTZWxlY3RvcnMuY2xhc3Nlcyk7XG4gICAgdGhpcy5wcm9wZXJ0aWVzVG9EaXNwbGF5JCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jbGFzc2VzJCxcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy50aWxlQXR0cmlidXRlc0RlZmluaXRpb25zKSxcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5tYXhBdHRyaWJ1dGVzSW5UaWxlcylcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbY2xhc3NlcywgdGlsZURlZnMsIG1heFRpbGVzQXR0cmlidXRlc10pID0+ICh7XG4gICAgICAgIC4uLmNsYXNzZXNcbiAgICAgICAgICAubWFwKChjbGF6eikgPT4gKHtcbiAgICAgICAgICAgIFtjbGF6ei5pZF06IFtcbiAgICAgICAgICAgICAgLi4uY2xhenouYXR0cmlidXRlc1xuICAgICAgICAgICAgICAgIC5tYXAoKGF0dHIpID0+ICh7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogYXR0ci5uYW1lLFxuICAgICAgICAgICAgICAgICAgcHJvcDogYXR0ci50ZWNobmljYWxOYW1lLFxuICAgICAgICAgICAgICAgICAgZmllbGQ6IGF0dHIuZmllbGRcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChfLCBpKSA9PiBpIDwgbWF4VGlsZXNBdHRyaWJ1dGVzKVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0pKVxuICAgICAgICAgIC5yZWR1Y2UoKHAsIGMpID0+ICh7IC4uLnAsIC4uLmMgfSksIHt9KSxcbiAgICAgICAgLi4uY2xhc3Nlc1xuICAgICAgICAgIC5maWx0ZXIoKGNsYXp6KSA9PiAhIXRpbGVEZWZzW2NsYXp6LmlkXSlcbiAgICAgICAgICAubWFwKChjbGF6eikgPT4gKHtcbiAgICAgICAgICAgIFtjbGF6ei5pZF06IFtcbiAgICAgICAgICAgICAgLi4uY2xhenouYXR0cmlidXRlc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGF0dHIpID0+IHRpbGVEZWZzW2NsYXp6LmlkXS5pbmNsdWRlcyhhdHRyLm5hbWUpKVxuICAgICAgICAgICAgICAgIC5tYXAoKGF0dHIpID0+ICh7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogYXR0ci5uYW1lLFxuICAgICAgICAgICAgICAgICAgcHJvcDogYXR0ci50ZWNobmljYWxOYW1lLFxuICAgICAgICAgICAgICAgICAgZmllbGQ6IGF0dHIuZmllbGRcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9KSlcbiAgICAgICAgICAucmVkdWNlKChwLCBjKSA9PiAoeyAuLi5wLCAuLi5jIH0pLCB7fSlcbiAgICAgIH0pKVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLnN0b3JlLnNlbGVjdChGaWVsZFNlbGVjdG9ycy5maWVsZHMpLnN1YnNjcmliZSgoZmllbGRzKSA9PiAodGhpcy5maWVsZHMgPSBmaWVsZHMpKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLmNsYXNzZXMkLnN1YnNjcmliZSgoY2xhc3NlcykgPT4gKHRoaXMuY2xhc3NlcyA9IGNsYXNzZXMpKSk7XG4gIH1cblxuICBjb250ZXh0TWVudSgkZXZlbnQ6IE1vdXNlRXZlbnQsIGl0ZW06IEl0ZW0pIHtcbiAgICBpZiAodGhpcy5tYW5pZmVzdC5jb250ZXh0TWVudSAhPT0gZmFsc2UpIHtcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgQ29udGV4dE1lbnVBY3Rpb25zLm9wZW4oe1xuICAgICAgICAgIGl0ZW1JZDogaXRlbS5pZCxcbiAgICAgICAgICBjbGllbnRYOiAkZXZlbnQuY2xpZW50WCxcbiAgICAgICAgICBjbGllbnRZOiAkZXZlbnQuY2xpZW50WSxcbiAgICAgICAgICBmcm9tOiAndGlsZScsXG4gICAgICAgICAgYWxsb3dPYmplY3RDcmVhdGlvbjogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0KCRldmVudDogTW91c2VFdmVudCwgaXRlbTogSXRlbSkge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuc2VsZWN0KHsgaWQ6IGl0ZW0uaWQsIGN1bXVsYXRpdmU6ICEkZXZlbnQuc2hpZnRLZXkgfSkpO1xuICB9XG5cbiAgdG9nZ2xlTWFwKGluZGV4OiBudW1iZXIsIGl0ZW06IEl0ZW0pIHtcbiAgICB0aGlzLm1hcHNbaW5kZXhdID0gIXRoaXMubWFwc1tpbmRleF1cbiAgICAgID8gKHsgaXRlbXM6IHsgW2l0ZW0ub0NsYXNzXTogW2l0ZW1dIH0sIHJlbGF0aW9uczogW10gfSBhcyBSZXN1bHRTZXQpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJlc3VsdFNldFdpdGhJdGVtKGl0ZW06IEl0ZW0pOiBSZXN1bHRTZXQge1xuICAgIHJldHVybiB7IGl0ZW1zOiB7IFtpdGVtLm9DbGFzc106IFtpdGVtXSB9LCByZWxhdGlvbnM6IFtdIH07XG4gIH1cblxuICBvdmVycmlkZSBlbWl0TWFuaWZlc3QoKSB7XG4gICAgdGhpcy5tYW5pZmVzdE1vZGlmaWVkLmVtaXQoe1xuICAgICAgd2lkZ2V0SW5kZXg6IHRoaXMud2lkZ2V0SW5kZXgsXG4gICAgICBtYW5pZmVzdDoge1xuICAgICAgICAuLi50aGlzLm1hbmlmZXN0LFxuICAgICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnNDb3B5XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjaGFuZ2VDbGFzc2VzKCRldmVudDogYW55KSB7XG4gICAgdGhpcy5vcHRpb25zQ29weS5jbGFzc2VzID0gJGV2ZW50O1xuICB9XG5cbiAgZ2V0VmFsdWUoaXRlbTogSXRlbSwgcHJvcGVydHk6IHN0cmluZyk6IEF0dHJpYnV0ZVNpbXBsZVZhbHVlW10ge1xuICAgIGNvbnN0IHZhbHVlID0gSXRlbVV0aWxzLmdldEF0dHJpYnV0ZVZhbHVlKGl0ZW0sIHByb3BlcnR5KTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gIH1cblxuICBpc1Jhdyhwcm9wZXJ0eTogc3RyaW5nLCBjbGFzc0lkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBjbGF6eiA9IHRoaXMuY2xhc3Nlcy5maW5kKChjbGF6eikgPT4gY2xhenouaWQgPT09IGNsYXNzSWQpO1xuICAgIGNvbnN0IHByb3AgPSBjbGF6ej8uYXR0cmlidXRlcy5maW5kKChhdHRyKSA9PiBhdHRyLm5hbWUgPT09IHByb3BlcnR5KTtcbiAgICByZXR1cm4gcHJvcD8uZmllbGQudHlwZSA9PT0gRmllbGRUeXBlLlJBVyA/PyBmYWxzZTtcbiAgfVxuXG4gIGhhc01ldGFkYXRhKHZhbHVlOiBBdHRyaWJ1dGVTaW1wbGVWYWx1ZSB8IEl0ZW0pIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModmFsdWU/Lm1ldGFkYXRhID8/IHt9KS5sZW5ndGggPiAwO1xuICB9XG59XG4iLCI8cHJ5LXdpZGdldC10aWxlLWNzcz48L3ByeS13aWRnZXQtdGlsZS1jc3M+XG48ZGl2IGNsYXNzPVwiby13aWRnZXQgby13aWRnZXQtLXRpbGVcIj5cbiAgPHByeS13aWRnZXQtaGVhZGVyXG4gICAgW2RhdGFzb3VyY2VJZHNdPVwiKGRhdGFzb3VyY2VJZHMkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAqbmdJZj1cImRpc3BsYXlIZWFkZXIkIHwgYXN5bmNcIlxuICAgIFt3aWRnZXRJbmRleF09XCJ3aWRnZXRJbmRleFwiXG4gICAgW21hbmlmZXN0XT1cIm1hbmlmZXN0XCJcbiAgICAobWFuaWZlc3RNb2RpZmllZCk9XCJtYW5pZmVzdE1vZGlmaWVkLmVtaXQoJGV2ZW50KVwiXG4gICAgW2hlYWRlck9wdGlvbnNdPVwiKGRpc3BsYXlIZWFkZXIkIHwgYXN5bmMpID8/IHt9XCJcbiAgICAjaGVhZGVyXG4gID5cbiAgICA8cHJ5LXNldHRpbmdzXG4gICAgICAoc2F2ZVRyaWdnZXJlZCk9XCJlbWl0TWFuaWZlc3QoKVwiXG4gICAgICAoY2hhbmdlVGl0bGUpPVwiY2hhbmdlV2lkZ2V0VGl0bGUoJGV2ZW50KVwiXG4gICAgICBbaGVhZGVyUHJlc2VudF09XCJkaXNwbGF5SGVhZGVyJCB8IGFzeW5jXCJcbiAgICAgIFt3aWRnZXRJbmRleF09XCJ3aWRnZXRJbmRleFwiXG4gICAgICBbaGVhZGVyXT1cImhlYWRlclwiXG4gICAgICBbb3BlbiRdPVwib3BlbiRcIlxuICAgICAgY2xhc3M9XCJvLXNldHRpbmdzXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJ0aWxlX2NsYXNzZXNcIj57eyAnQHByeS53aWRnZXQudGlsZS5jbGFzc2VzJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUNsYXNzZXMoJGV2ZW50KVwiXG4gICAgICAgICAgW2l0ZW1zXT1cImNsYXNzZXMkIHwgYXN5bmNcIlxuICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcbiAgICAgICAgICBbY2xvc2VPblNlbGVjdF09XCJmYWxzZVwiXG4gICAgICAgICAgW25nTW9kZWxdPVwib3B0aW9uc0NvcHkuY2xhc3Nlc1wiXG4gICAgICAgICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgICAgICAgYmluZFZhbHVlPVwiaWRcIlxuICAgICAgICAgIGlkPVwidGlsZV9jbGFzc2VzXCJcbiAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvcHJ5LXNldHRpbmdzPlxuICA8L3ByeS13aWRnZXQtaGVhZGVyPlxuICA8ZGl2IGNsYXNzPVwiby13aWRnZXQtLXRpbGUtd3JhcHBlclwiIFtzdHlsZS50b3BdPVwiKGRpc3BsYXlIZWFkZXIkIHwgYXN5bmMpID8gV0lER0VUX0hFQURFUl9IRUlHSFQgKyAncHgnIDogMFwiPlxuICAgIEBpZiAoKGl0ZW1zJCB8IGFzeW5jKT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwibm8tcmVzdWx0XCI+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICBjbGFzcz1cIm5vLXJlc3VsdF9fc2VhcmNoXCJcbiAgICAgICAgICBzcmM9XCIuLi8uLi8uLi9hc3NldHMvc3Zncy9wcnlfcmVjaGVyY2hlX3Bhc19kZV9yZXN1bHRhdC5zdmdcIlxuICAgICAgICAgIGFsdD1cInt7ICdAcHJ5LndpZGdldC50aWxlLmVtcHR5JyB8IGkxOG4gfX1cIlxuICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibm8tcmVzdWx0X190ZXh0XCI+e3sgJ0Bwcnkud2lkZ2V0LnRpbGUuZW1wdHknIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICA8dWwgY2xhc3M9XCJvLXdpZGdldC0tdGlsZV9fbGlzdFwiPlxuICAgICAgQGZvciAoaXRlbSBvZiBpdGVtcyQgfCBhc3luYzsgdHJhY2sgaXRlbS5pZDsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgIDxsaSBjbGFzcz1cIm8td2lkZ2V0LS10aWxlX19saXN0X19pdGVtXCIgKGNvbnRleHRtZW51KT1cImNvbnRleHRNZW51KCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby13aWRnZXQtLXRpbGVfX2xpc3RfX2l0ZW1fX2hlYWRlclwiPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICBbaGVpZ2h0XT1cIjI1XCJcbiAgICAgICAgICAgICAgW3dpZHRoXT1cIjI1XCJcbiAgICAgICAgICAgICAgW3NyY109XCJpdGVtIHwgdHJhbnNsYXRlSXRlbVRvU3ltYm9sIHwgYXN5bmNcIlxuICAgICAgICAgICAgICBbYWx0XT1cIml0ZW0ub0NsYXNzIHwgdHJhbnNsYXRlSWQ6IHsgdHlwZTogJ2NsYXNzJywgb3V0cHV0OiAnbmFtZScgfSB8IGFzeW5jXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJvLXdpZGdldC0tdGlsZV9fbGlzdF9faXRlbV9faGVhZGVyX190aXRsZVwiPlxuICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgIGl0ZW0ub0NsYXNzXG4gICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZUlkXG4gICAgICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2NsYXNzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dDogJ25hbWUnXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfCBhc3luY1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgIDxwcnktY2hlY2tib3hcbiAgICAgICAgICAgICAgW25nTW9kZWxdPVwiKHNlbGVjdGVkSWRzJCB8IGFzeW5jKS5pbmNsdWRlcyhpdGVtLmlkKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3QoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgICA+PC9wcnktY2hlY2tib3g+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8tcHJvcGVydGllc1wiPlxuICAgICAgICAgICAgPHVsIGNsYXNzPVwiby1wcm9wZXJ0aWVzX19saXN0XCI+XG4gICAgICAgICAgICAgIEBmb3IgKHByb3BlcnR5IG9mIChwcm9wZXJ0aWVzVG9EaXNwbGF5JCB8IGFzeW5jKSFbaXRlbS5vQ2xhc3NdOyB0cmFjayBwcm9wZXJ0eS5wcm9wKSB7XG4gICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgZ2V0VmFsdWUoaXRlbSwgcHJvcGVydHkucHJvcCk7IGxldCBpID0gaW5kZXg7IGxldCBjID0gY291bnRcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJvLXByb3BlcnRpZXNfX2xpc3RfX2l0ZW1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIEBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm8tcHJvcGVydGllc19fbGlzdF9faXRlbV9fbGFiZWxcIj57eyBwcm9wZXJ0eS5sYWJlbCB9fTo8L3A+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAaWYgKCFpc1Jhdyhwcm9wZXJ0eS5sYWJlbCwgaXRlbS5vQ2xhc3MpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiby1wcm9wZXJ0aWVzX19saXN0X19pdGVtX192YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IHZhbHVlPy52YWx1ZSB8IGRhdGFGb3JtYXQ6IHByb3BlcnR5LmZpZWxkIH19XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm8tcHJvcGVydGllc19fbGlzdF9faXRlbV9fcmF3XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHByeS12aXp1YWxpemUtcmF3IFtpdGVtXT1cIml0ZW1cIiBbcHJvcGVydHlOYW1lXT1cInByb3BlcnR5LmxhYmVsXCI+PC9wcnktdml6dWFsaXplLXJhdz5cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGlmIChoYXNNZXRhZGF0YSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgPHByeS1tZXRhZGF0YSBbaXRlbV09XCJ2YWx1ZVwiPjwvcHJ5LW1ldGFkYXRhPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiAoY2xpY2spPVwidG9nZ2xlTWFwKGluZGV4LCBpdGVtKVwiIGNsYXNzPVwiby13aWRnZXQtLXRpbGVfX2xpc3RfX2l0ZW1fX2Zvb3RlclwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi10ZXh0IC1saW5rLWxpa2VcIlxuICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwidGlsZS1tYXAteHh4XCJcbiAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ0Bwcnkud2lkZ2V0LnRpbGUubWFwJyB8IGkxOG4gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIEBpZiAobWFwc1tpbmRleF0pIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLXdpZGdldC0tdGlsZV9fbGlzdF9faXRlbV9fbWFwXCIgaWQ9XCJ0aWxlLW1hcC14eHhcIj5cbiAgICAgICAgICAgICAgPHByeS13aWRnZXQtbWFwIFtzdGF0aWNNYW5pZmVzdF09XCJtYXBNYW5pZmVzdFwiIFtzdGF0aWNSZXN1bHRTZXRdPVwibWFwc1tpbmRleF0hXCI+PC9wcnktd2lkZ2V0LW1hcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -134,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
134
134
|
type: ViewChild,
|
|
135
135
|
args: ['vega']
|
|
136
136
|
}] } });
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXZlZ2EuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdmVnYS9jb21wb25lbnQvd2lkZ2V0LXZlZ2EuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdmVnYS9jb21wb25lbnQvd2lkZ2V0LXZlZ2EuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBaUIsU0FBUyxFQUFjLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEYsT0FBTyxFQUVMLG1CQUFtQixFQU9uQixvQkFBb0IsRUFDckIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sS0FBNEIsTUFBTSxZQUFZLENBQUM7Ozs7OztBQU10RCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsbUJBQW1CO0lBVTFELFlBQ0UsS0FBaUIsRUFDVCxnQkFBZ0MsRUFDeEMsRUFBYyxFQUNZLFFBQWtCLEVBQ3BDLFlBQWdDO1FBRXhDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFMVCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWdCO1FBRWQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFYMUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0IsZ0JBQVcsR0FBc0IsRUFBRSxRQUFR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QyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFhO1FBQ3RCLElBQUksQ0FBQztZQUNILGFBQWE7WUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDO2dCQUNqRCxJQUFJLEVBQUUsT0FBTztnQkFDYixPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQztnQkFDM0UsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUM7YUFDckUsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxFQUFFLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztZQUM1RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOzhHQTVJVSxtQkFBbUIsK0ZBY3BCLFFBQVE7a0dBZFAsbUJBQW1CLDRLQ3ZCaEMsOGxEQThDQTs7MkZEdkJhLG1CQUFtQjtrQkFKL0IsU0FBUzsrQkFDRSxpQkFBaUI7OzBCQWlCeEIsTUFBTTsyQkFBQyxRQUFROzBFQWJDLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQXR0cmlidXRlU2ltcGxlVmFsdWUsXG4gIERhdGFXaWRnZXRDb21wb25lbnQsXG4gIEl0ZW0sXG4gIFByeUkxOG5TZXJ2aWNlLFxuICBQcnlTbmFja2JhclNlcnZpY2UsXG4gIFJlc3VsdFNldCxcbiAgVmFsdWVUeXBlLFxuICBWZWdhV2lkZ2V0T3B0aW9ucyxcbiAgV0lER0VUX0hFQURFUl9IRUlHSFRcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVmlldyB9IGZyb20gJ3ZlZ2EnO1xuaW1wb3J0IGVtYmVkLCB7IFZpc3VhbGl6YXRpb25TcGVjIH0gZnJvbSAndmVnYS1lbWJlZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS13aWRnZXQtdmVnYScsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtdmVnYS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0VmVnYUNvbXBvbmVudCBleHRlbmRzIERhdGFXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZCgndmVnYScpIHZlZ2EhOiBFbGVtZW50UmVmO1xuICB2aWV3PzogVmlldztcbiAgdmVnYVNwZWMkOiBPYnNlcnZhYmxlPFZpc3VhbGl6YXRpb25TcGVjPjtcbiAgdHJpZ2dlciQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBvcHRpb25zJDogT2JzZXJ2YWJsZTxhbnk+O1xuICBvcHRpb25zQ29weTogVmVnYVdpZGdldE9wdGlvbnMgPSB7IGJhc2VTcGVjOiB7fSwgcGxhY2VEYXRhOiBbXSB9O1xuICBmb3JtYXR0ZWRCYXNlU3BlYzogc3RyaW5nID0gJ3t9JztcbiAgaW5pdGlhbEZvcm1hdHRlZEJhc2VTcGVjOiBzdHJpbmcgPSAne30nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHN0b3JlOiBTdG9yZTxhbnk+LFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogUHJ5STE4blNlcnZpY2UsXG4gICAgZWw6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgcHJpdmF0ZSBzbmFja1NlcnZpY2U6IFByeVNuYWNrYmFyU2VydmljZVxuICApIHtcbiAgICBzdXBlcihzdG9yZSwgZWwpO1xuXG4gICAgdGhpcy5vcHRpb25zJCA9IHRoaXMubWFuaWZlc3QkLnBpcGUobWFwKChtYW5pZmVzdCkgPT4gKG1hbmlmZXN0Lm9wdGlvbnMgPz8ge30pIGFzIGFueSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLm9wdGlvbnMkLnN1YnNjcmliZSgob3B0aW9ucykgPT4ge1xuICAgICAgICB0aGlzLm9wdGlvbnNDb3B5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvcHRpb25zKSk7XG4gICAgICAgIHRoaXMuZm9ybWF0dGVkQmFzZVNwZWMgPSBKU09OLnN0cmluZ2lmeSh0aGlzLm9wdGlvbnNDb3B5LmJhc2VTcGVjLCB1bmRlZmluZWQsIDQpO1xuICAgICAgICB0aGlzLmluaXRpYWxGb3JtYXR0ZWRCYXNlU3BlYyA9IEpTT04uc3RyaW5naWZ5KHRoaXMub3B0aW9uc0NvcHkuYmFzZVNwZWMsIHVuZGVmaW5lZCwgNCk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnZlZ2FTcGVjJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMub3B0aW9ucyQsIHRoaXMucmVzdWx0U2V0JCwgdGhpcy53aWRnZXRTaXplJCwgdGhpcy5kaXNwbGF5SGVhZGVyJF0pLnBpcGUoXG4gICAgICBmaWx0ZXIoKFtvcHRpb25zLCBycywgc2l6ZSwgaGVhZGVyXSkgPT4gISFycyksXG4gICAgICBtYXAoKFtvcHRpb25zLCBycywgc2l6ZSwgaGVhZGVyXSkgPT4ge1xuICAgICAgICBjb25zdCBkYXRhID0gV2lkZ2V0VmVnYUNvbXBvbmVudC5nZXRWYWx1ZXMocnMpO1xuXG4gICAgICAgIGNvbnN0IHZlZ2FTcGVjID0gV2lkZ2V0VmVnYUNvbXBvbmVudC5wbGFjZURhdGEob3B0aW9ucywgSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShvcHRpb25zLmJhc2VTcGVjKSksIGRhdGEpO1xuXG4gICAgICAgIHZlZ2FTcGVjLndpZHRoID0gdmVnYVNwZWMud2lkdGggPz8gc2l6ZS53aWR0aCAtIDU7XG4gICAgICAgIHZlZ2FTcGVjLmhlaWdodCA9IHZlZ2FTcGVjLmhlaWdodCA/PyBzaXplLmhlaWdodCAtIDUgLSAoaGVhZGVyID8gV0lER0VUX0hFQURFUl9IRUlHSFQudmFsdWUgOiAwKTtcbiAgICAgICAgdmVnYVNwZWMuYXV0b3NpemUgPSB2ZWdhU3BlYy5hdXRvc2l6ZSA/PyB7IHR5cGU6ICdmaXQnLCBjb250YWluczogJ3BhZGRpbmcnIH07XG4gICAgICAgIHZlZ2FTcGVjLnBhZGRpbmcgPSB2ZWdhU3BlYy5wYWRkaW5nID8/IDE1O1xuXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKHdpbmRvdy53aWRnZXRWZWdhTG9nZ2luZyA9PT0gdHJ1ZSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHZlZ2FTcGVjLCB1bmRlZmluZWQsIDQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2ZWdhU3BlYztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRWYWx1ZXMoZGF0YTogUmVzdWx0U2V0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGRhdGEuaXRlbXMpXG4gICAgICAubWFwKChjbGF6eikgPT4gZGF0YS5pdGVtc1tjbGF6el0ubWFwKChpdGVtKSA9PiBXaWRnZXRWZWdhQ29tcG9uZW50LnRyYW5zZm9ybVByb3ZvbHlNb2RlbFRvQ2xhc3NpYyhpdGVtKSkpXG4gICAgICAuZmxhdCgpO1xuICB9XG5cbiAgc3RhdGljIHRyYW5zZm9ybVByb3ZvbHlNb2RlbFRvQ2xhc3NpYyh2YWx1ZXM6IEl0ZW0pIHtcbiAgICBjb25zdCByZXN1bHQgPSB7fSBhcyB7IFtrZXk6IHN0cmluZ106IFZhbHVlVHlwZSB9O1xuICAgIE9iamVjdC5rZXlzKHZhbHVlcy5hdHRyaWJ1dGVzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIHJlc3VsdFtrZXldID0gKHZhbHVlcy5hdHRyaWJ1dGVzW2tleV0gYXMgQXR0cmlidXRlU2ltcGxlVmFsdWUpLnZhbHVlO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHN0YXRpYyBwbGFjZURhdGEob3B0aW9uczogVmVnYVdpZGdldE9wdGlvbnMsIGJhc2VTcGVjOiBhbnksIGRhdGE6IHsgW2tleTogc3RyaW5nXTogVmFsdWVUeXBlIH1bXSkge1xuICAgIGNvbnN0IGNsb25lID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShiYXNlU3BlYykpO1xuICAgIGxldCByZWYgPSBjbG9uZTtcbiAgICAob3B0aW9ucy5wbGFjZURhdGEgPz8gW10pLmZvckVhY2goKHByb3AsIGlkeCwgYXJyKSA9PiB7XG4gICAgICBpZiAocmVmKSB7XG4gICAgICAgIGlmIChpZHggPCBhcnIubGVuZ3RoIC0gMSkge1xuICAgICAgICAgIHJlZiA9IHJlZltwcm9wXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWZbcHJvcF0gPSBkYXRhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNsb25lO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnZlZ2FTcGVjJCwgdGhpcy50cmlnZ2VyJCwgdGhpcy53aWRnZXRTaXplJF0pLnN1YnNjcmliZSgoW3NwZWMsIF8sIHNpemVdKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnZlZ2EpIHtcbiAgICAgICAgICB0aGlzLnZpZXc/LmZpbmFsaXplKCk7XG5cbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnQubG9nVmVnYVNwZWMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoc3BlYywgdW5kZWZpbmVkLCA0KSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZW1iZWQodGhpcy52ZWdhLm5hdGl2ZUVsZW1lbnQsIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoc3BlYykpLCB7XG4gICAgICAgICAgICBhY3Rpb25zOiBmYWxzZSxcbiAgICAgICAgICAgIHJlbmRlcmVyOiAnY2FudmFzJyxcbiAgICAgICAgICAgIGZvcm1hdExvY2FsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnRPYmplY3QoJ0Bwcnkud2lkZ2V0LmNoYXJ0Lm51bWJlckxvY2FsZScpLFxuICAgICAgICAgICAgdGltZUZvcm1hdExvY2FsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnRPYmplY3QoJ0Bwcnkud2lkZ2V0LmNoYXJ0LnRpbWVGb3JtYXRMb2NhbGUnKVxuICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4gKHRoaXMudmlldyA9IHJlc3VsdC52aWV3KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnRyaWdnZXIkLm5leHQoKSwgMTAwKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMudHJpZ2dlciQubmV4dCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgdG9JbWFnZSgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICByZXNvbHZlKHRoaXMudmVnYS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2NhbnZhcycpWzBdLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJykpO1xuICAgIH0pO1xuICB9XG5cbiAgZW1pdE1hbmlmZXN0KCkge1xuICAgIHRoaXMubWFuaWZlc3RNb2RpZmllZC5lbWl0KHtcbiAgICAgIHdpZGdldEluZGV4OiB0aGlzLndpZGdldEluZGV4LFxuICAgICAgbWFuaWZlc3Q6IHsgLi4udGhpcy5tYW5pZmVzdCwgb3B0aW9uczogdGhpcy5vcHRpb25zQ29weSB9XG4gICAgfSk7XG4gIH1cblxuICBjaGFuZ2VQbGFjZURhdGEoJGV2ZW50OiBFdmVudCkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBleHByID0gJGV2ZW50LmN1cnJlbnRUYXJnZXQudmFsdWU7XG4gICAgdGhpcy5vcHRpb25zQ29weS5wbGFjZURhdGEgPSBleHByXG4gICAgICAuc3BsaXQoJy4nKVxuICAgICAgLm1hcCgodmFsOiBzdHJpbmcpID0+IChwYXJzZUludCh2YWwpICsgJycgPT09IGAke3ZhbH1gID8gcGFyc2VJbnQodmFsKSA6IHZhbCkpO1xuICB9XG5cbiAgY2hhbmdlU3BlYygkZXZlbnQ6IEV2ZW50KSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRoaXMub3B0aW9uc0NvcHkuYmFzZVNwZWMgPSBKU09OLnBhcnNlKCRldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5zbmFja1NlcnZpY2Uubm90TWl0aWdhdGVkT3Blbih7XG4gICAgICAgIHR5cGU6ICdlcnJvcicsXG4gICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdAcHJ5LndpZGdldC52ZWdhLm5vdFBhcnNlYWJsZVNwZWMnKSxcbiAgICAgICAgYWN0aW9uOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQHByeS53aWRnZXQudmVnYS5zcGVjUmVpbml0JylcbiAgICAgIH0pO1xuICAgICAgbWVzc2FnZT8uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5vcHRpb25zQ29weS5iYXNlU3BlYyA9IHRoaXMuaW5pdGlhbEZvcm1hdHRlZEJhc2VTcGVjO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8cHJ5LXdpZGdldC12ZWdhLWNzcz48L3ByeS13aWRnZXQtdmVnYS1jc3M+XG48ZGl2IGNsYXNzPVwiby13aWRnZXQgby13aWRnZXQtLWNoYXJ0XCI+XG4gIDxwcnktd2lkZ2V0LWhlYWRlclxuICAgICpuZ0lmPVwiZGlzcGxheUhlYWRlciQgfCBhc3luY1wiXG4gICAgW3dpZGdldEluZGV4XT1cIndpZGdldEluZGV4XCJcbiAgICBbbWFuaWZlc3RdPVwibWFuaWZlc3RcIlxuICAgIChtYW5pZmVzdE1vZGlmaWVkKT1cIm1hbmlmZXN0TW9kaWZpZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAjaGVhZGVyXG4gICAgW2hlYWRlck9wdGlvbnNdPVwiKGRpc3BsYXlIZWFkZXIkIHwgYXN5bmMpID8/IHt9XCJcbiAgICBbZGF0YXNvdXJjZUlkc109XCIoZGF0YXNvdXJjZUlkcyQgfCBhc3luYykgPz8gW11cIlxuICA+XG4gICAgPHByeS1zZXR0aW5nc1xuICAgICAgKHNhdmVUcmlnZ2VyZWQpPVwiZW1pdE1hbmlmZXN0KClcIlxuICAgICAgKGNoYW5nZVRpdGxlKT1cImNoYW5nZVdpZGdldFRpdGxlKCRldmVudClcIlxuICAgICAgW2hlYWRlclByZXNlbnRdPVwiZGlzcGxheUhlYWRlciQgfCBhc3luY1wiXG4gICAgICBbd2lkZ2V0SW5kZXhdPVwid2lkZ2V0SW5kZXhcIlxuICAgICAgW2hlYWRlcl09XCJoZWFkZXJcIlxuICAgICAgW29wZW4kXT1cIm9wZW4kXCJcbiAgICAgIGNsYXNzPVwiby1zZXR0aW5nc1wiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tc2V0dGluZ3NfX2ZpZWxkc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cInBsYWNlRGF0YV9zcmNcIj57eyAnQHByeS53aWRnZXQudmVnYS5wbGFjZURhdGEnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICBpZD1cInBsYWNlRGF0YV9zcmNcIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIihvcHRpb25zQ29weS5wbGFjZURhdGEgPz8gW10pLmpvaW4oJy4nKVwiXG4gICAgICAgICAgICAoaW5wdXQpPVwiY2hhbmdlUGxhY2VEYXRhKCRldmVudClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwic3BlY19zcmNcIj57eyAnQHByeS53aWRnZXQudmVnYS5zcGVjJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGQgYS10ZXh0LWFyZWFcIlxuICAgICAgICAgICAgaWQ9XCJzcGVjX3NyY1wiXG4gICAgICAgICAgICBbdmFsdWVdPVwiZm9ybWF0dGVkQmFzZVNwZWNcIlxuICAgICAgICAgICAgKGlucHV0KT1cImNoYW5nZVNwZWMoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9wcnktc2V0dGluZ3M+XG4gIDwvcHJ5LXdpZGdldC1oZWFkZXI+XG4gIDxkaXYgY2xhc3M9XCJvLXdpZGdldC0tY2hhcnQtLWNoYXJ0XCIgI3ZlZ2E+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXZlZ2EuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdmVnYS9jb21wb25lbnQvd2lkZ2V0LXZlZ2EuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvd2lkZ2V0cy93aWRnZXQtdmVnYS9jb21wb25lbnQvd2lkZ2V0LXZlZ2EuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBaUIsU0FBUyxFQUFjLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEYsT0FBTyxFQUVMLG1CQUFtQixFQU9uQixvQkFBb0IsRUFDckIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sS0FBNEIsTUFBTSxZQUFZLENBQUM7Ozs7OztBQU10RCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsbUJBQW1CO0lBVTFELFlBQ0UsS0FBaUIsRUFDVCxnQkFBZ0MsRUFDeEMsRUFBYyxFQUNZLFFBQWtCLEVBQ3BDLFlBQWdDO1FBRXhDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFMVCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWdCO1FBRWQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFYMUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0IsZ0JBQVcsR0FBc0IsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNqRSxzQkFBaUIsR0FBVyxJQUFJLENBQUM7UUFDakMsNkJBQXdCLEdBQVcsSUFBSSxDQUFDO1FBV3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDN0MsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQ2xDLE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUUvQyxNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUU1RyxRQUFRLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDbEQsUUFBUSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pHLFFBQVEsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQzlFLFFBQVEsQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFFMUMsYUFBYTtZQUNiLElBQUksTUFBTSxDQUFDLGlCQUFpQixLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RELENBQUM7WUFFRCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBZTtRQUM5QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUMzQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ3pHLElBQUksRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxNQUFZO1FBQ2hELE1BQU0sTUFBTSxHQUFHLEVBQWtDLENBQUM7UUFDbEQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDN0MsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUEwQixDQUFDLEtBQUssQ0FBQztRQUN2RSxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQTBCLEVBQUUsUUFBYSxFQUFFLElBQW9DO1FBQzlGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ25ELElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNoQixDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNuRCxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNSLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3pCLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDN0YsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztnQkFFdEIsYUFBYTtnQkFDYixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUM1QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsRCxDQUFDO2dCQUVELEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtvQkFDL0QsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFlBQVksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLGdDQUFnQyxDQUFDO29CQUNuRixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLG9DQUFvQyxDQUFDO2lCQUM1RixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDakQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzlDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRVEsT0FBTztRQUNkLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVRLFlBQVk7UUFDbkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztZQUN6QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsUUFBUSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO1NBQzFELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBYTtRQUMzQixhQUFhO1FBQ2IsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsSUFBSTthQUM5QixLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1YsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxVQUFVLENBQUMsTUFBYTtRQUN0QixJQUFJLENBQUM7WUFDSCxhQUFhO1lBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDakQsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsbUNBQW1DLENBQUM7Z0JBQzNFLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLDZCQUE2QixDQUFDO2FBQ3JFLENBQUMsQ0FBQztZQUNILE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUM7WUFDNUQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs4R0E1SVUsbUJBQW1CLCtGQWNwQixRQUFRO2tHQWRQLG1CQUFtQiw0S0N2QmhDLDhsREE4Q0E7OzJGRHZCYSxtQkFBbUI7a0JBSi9CLFNBQVM7K0JBQ0UsaUJBQWlCOzswQkFpQnhCLE1BQU07MkJBQUMsUUFBUTswRUFiQyxJQUFJO3NCQUF0QixTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIEF0dHJpYnV0ZVNpbXBsZVZhbHVlLFxuICBEYXRhV2lkZ2V0Q29tcG9uZW50LFxuICBJdGVtLFxuICBQcnlJMThuU2VydmljZSxcbiAgUHJ5U25hY2tiYXJTZXJ2aWNlLFxuICBSZXN1bHRTZXQsXG4gIFZhbHVlVHlwZSxcbiAgVmVnYVdpZGdldE9wdGlvbnMsXG4gIFdJREdFVF9IRUFERVJfSEVJR0hUXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFZpZXcgfSBmcm9tICd2ZWdhJztcbmltcG9ydCBlbWJlZCwgeyBWaXN1YWxpemF0aW9uU3BlYyB9IGZyb20gJ3ZlZ2EtZW1iZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktd2lkZ2V0LXZlZ2EnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0LXZlZ2EuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldFZlZ2FDb21wb25lbnQgZXh0ZW5kcyBEYXRhV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBWaWV3Q2hpbGQoJ3ZlZ2EnKSB2ZWdhITogRWxlbWVudFJlZjtcbiAgdmlldz86IFZpZXc7XG4gIHZlZ2FTcGVjJDogT2JzZXJ2YWJsZTxWaXN1YWxpemF0aW9uU3BlYz47XG4gIHRyaWdnZXIkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgb3B0aW9ucyQ6IE9ic2VydmFibGU8YW55PjtcbiAgb3B0aW9uc0NvcHk6IFZlZ2FXaWRnZXRPcHRpb25zID0geyBiYXNlU3BlYzoge30sIHBsYWNlRGF0YTogW10gfTtcbiAgZm9ybWF0dGVkQmFzZVNwZWM6IHN0cmluZyA9ICd7fSc7XG4gIGluaXRpYWxGb3JtYXR0ZWRCYXNlU3BlYzogc3RyaW5nID0gJ3t9JztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlLFxuICAgIGVsOiBFbGVtZW50UmVmLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIHByaXZhdGUgc25hY2tTZXJ2aWNlOiBQcnlTbmFja2JhclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoc3RvcmUsIGVsKTtcblxuICAgIHRoaXMub3B0aW9ucyQgPSB0aGlzLm1hbmlmZXN0JC5waXBlKG1hcCgobWFuaWZlc3QpID0+IChtYW5pZmVzdC5vcHRpb25zID8/IHt9KSBhcyBhbnkpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5vcHRpb25zJC5zdWJzY3JpYmUoKG9wdGlvbnMpID0+IHtcbiAgICAgICAgdGhpcy5vcHRpb25zQ29weSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob3B0aW9ucykpO1xuICAgICAgICB0aGlzLmZvcm1hdHRlZEJhc2VTcGVjID0gSlNPTi5zdHJpbmdpZnkodGhpcy5vcHRpb25zQ29weS5iYXNlU3BlYywgdW5kZWZpbmVkLCA0KTtcbiAgICAgICAgdGhpcy5pbml0aWFsRm9ybWF0dGVkQmFzZVNwZWMgPSBKU09OLnN0cmluZ2lmeSh0aGlzLm9wdGlvbnNDb3B5LmJhc2VTcGVjLCB1bmRlZmluZWQsIDQpO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy52ZWdhU3BlYyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLm9wdGlvbnMkLCB0aGlzLnJlc3VsdFNldCQsIHRoaXMud2lkZ2V0U2l6ZSQsIHRoaXMuZGlzcGxheUhlYWRlciRdKS5waXBlKFxuICAgICAgZmlsdGVyKChbb3B0aW9ucywgcnMsIHNpemUsIGhlYWRlcl0pID0+ICEhcnMpLFxuICAgICAgbWFwKChbb3B0aW9ucywgcnMsIHNpemUsIGhlYWRlcl0pID0+IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IFdpZGdldFZlZ2FDb21wb25lbnQuZ2V0VmFsdWVzKHJzKTtcblxuICAgICAgICBjb25zdCB2ZWdhU3BlYyA9IFdpZGdldFZlZ2FDb21wb25lbnQucGxhY2VEYXRhKG9wdGlvbnMsIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkob3B0aW9ucy5iYXNlU3BlYykpLCBkYXRhKTtcblxuICAgICAgICB2ZWdhU3BlYy53aWR0aCA9IHZlZ2FTcGVjLndpZHRoID8/IHNpemUud2lkdGggLSA1O1xuICAgICAgICB2ZWdhU3BlYy5oZWlnaHQgPSB2ZWdhU3BlYy5oZWlnaHQgPz8gc2l6ZS5oZWlnaHQgLSA1IC0gKGhlYWRlciA/IFdJREdFVF9IRUFERVJfSEVJR0hULnZhbHVlIDogMCk7XG4gICAgICAgIHZlZ2FTcGVjLmF1dG9zaXplID0gdmVnYVNwZWMuYXV0b3NpemUgPz8geyB0eXBlOiAnZml0JywgY29udGFpbnM6ICdwYWRkaW5nJyB9O1xuICAgICAgICB2ZWdhU3BlYy5wYWRkaW5nID0gdmVnYVNwZWMucGFkZGluZyA/PyAxNTtcblxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGlmICh3aW5kb3cud2lkZ2V0VmVnYUxvZ2dpbmcgPT09IHRydWUpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh2ZWdhU3BlYywgdW5kZWZpbmVkLCA0KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmVnYVNwZWM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgZ2V0VmFsdWVzKGRhdGE6IFJlc3VsdFNldCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhkYXRhLml0ZW1zKVxuICAgICAgLm1hcCgoY2xhenopID0+IGRhdGEuaXRlbXNbY2xhenpdLm1hcCgoaXRlbSkgPT4gV2lkZ2V0VmVnYUNvbXBvbmVudC50cmFuc2Zvcm1Qcm92b2x5TW9kZWxUb0NsYXNzaWMoaXRlbSkpKVxuICAgICAgLmZsYXQoKTtcbiAgfVxuXG4gIHN0YXRpYyB0cmFuc2Zvcm1Qcm92b2x5TW9kZWxUb0NsYXNzaWModmFsdWVzOiBJdGVtKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge30gYXMgeyBba2V5OiBzdHJpbmddOiBWYWx1ZVR5cGUgfTtcbiAgICBPYmplY3Qua2V5cyh2YWx1ZXMuYXR0cmlidXRlcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICByZXN1bHRba2V5XSA9ICh2YWx1ZXMuYXR0cmlidXRlc1trZXldIGFzIEF0dHJpYnV0ZVNpbXBsZVZhbHVlKS52YWx1ZTtcbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzdGF0aWMgcGxhY2VEYXRhKG9wdGlvbnM6IFZlZ2FXaWRnZXRPcHRpb25zLCBiYXNlU3BlYzogYW55LCBkYXRhOiB7IFtrZXk6IHN0cmluZ106IFZhbHVlVHlwZSB9W10pIHtcbiAgICBjb25zdCBjbG9uZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYmFzZVNwZWMpKTtcbiAgICBsZXQgcmVmID0gY2xvbmU7XG4gICAgKG9wdGlvbnMucGxhY2VEYXRhID8/IFtdKS5mb3JFYWNoKChwcm9wLCBpZHgsIGFycikgPT4ge1xuICAgICAgaWYgKHJlZikge1xuICAgICAgICBpZiAoaWR4IDwgYXJyLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICByZWYgPSByZWZbcHJvcF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVmW3Byb3BdID0gZGF0YTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBjbG9uZTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy52ZWdhU3BlYyQsIHRoaXMudHJpZ2dlciQsIHRoaXMud2lkZ2V0U2l6ZSRdKS5zdWJzY3JpYmUoKFtzcGVjLCBfLCBzaXplXSkgPT4ge1xuICAgICAgICBpZiAodGhpcy52ZWdhKSB7XG4gICAgICAgICAgdGhpcy52aWV3Py5maW5hbGl6ZSgpO1xuXG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIGlmICh0aGlzLmRvY3VtZW50LmxvZ1ZlZ2FTcGVjICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHNwZWMsIHVuZGVmaW5lZCwgNCkpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGVtYmVkKHRoaXMudmVnYS5uYXRpdmVFbGVtZW50LCBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHNwZWMpKSwge1xuICAgICAgICAgICAgYWN0aW9uczogZmFsc2UsXG4gICAgICAgICAgICByZW5kZXJlcjogJ2NhbnZhcycsXG4gICAgICAgICAgICBmb3JtYXRMb2NhbGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50T2JqZWN0KCdAcHJ5LndpZGdldC5jaGFydC5udW1iZXJMb2NhbGUnKSxcbiAgICAgICAgICAgIHRpbWVGb3JtYXRMb2NhbGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50T2JqZWN0KCdAcHJ5LndpZGdldC5jaGFydC50aW1lRm9ybWF0TG9jYWxlJylcbiAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+ICh0aGlzLnZpZXcgPSByZXN1bHQudmlldykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy50cmlnZ2VyJC5uZXh0KCksIDEwMCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnRyaWdnZXIkLm5leHQoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHRvSW1hZ2UoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgcmVzb2x2ZSh0aGlzLnZlZ2EubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdjYW52YXMnKVswXS50b0RhdGFVUkwoJ2ltYWdlL3BuZycpKTtcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGVtaXRNYW5pZmVzdCgpIHtcbiAgICB0aGlzLm1hbmlmZXN0TW9kaWZpZWQuZW1pdCh7XG4gICAgICB3aWRnZXRJbmRleDogdGhpcy53aWRnZXRJbmRleCxcbiAgICAgIG1hbmlmZXN0OiB7IC4uLnRoaXMubWFuaWZlc3QsIG9wdGlvbnM6IHRoaXMub3B0aW9uc0NvcHkgfVxuICAgIH0pO1xuICB9XG5cbiAgY2hhbmdlUGxhY2VEYXRhKCRldmVudDogRXZlbnQpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgZXhwciA9ICRldmVudC5jdXJyZW50VGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMub3B0aW9uc0NvcHkucGxhY2VEYXRhID0gZXhwclxuICAgICAgLnNwbGl0KCcuJylcbiAgICAgIC5tYXAoKHZhbDogc3RyaW5nKSA9PiAocGFyc2VJbnQodmFsKSArICcnID09PSBgJHt2YWx9YCA/IHBhcnNlSW50KHZhbCkgOiB2YWwpKTtcbiAgfVxuXG4gIGNoYW5nZVNwZWMoJGV2ZW50OiBFdmVudCkge1xuICAgIHRyeSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLm9wdGlvbnNDb3B5LmJhc2VTcGVjID0gSlNPTi5wYXJzZSgkZXZlbnQuY3VycmVudFRhcmdldC52YWx1ZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuc25hY2tTZXJ2aWNlLm5vdE1pdGlnYXRlZE9wZW4oe1xuICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICBtZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQHByeS53aWRnZXQudmVnYS5ub3RQYXJzZWFibGVTcGVjJyksXG4gICAgICAgIGFjdGlvbjogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0Bwcnkud2lkZ2V0LnZlZ2Euc3BlY1JlaW5pdCcpXG4gICAgICB9KTtcbiAgICAgIG1lc3NhZ2U/LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMub3B0aW9uc0NvcHkuYmFzZVNwZWMgPSB0aGlzLmluaXRpYWxGb3JtYXR0ZWRCYXNlU3BlYztcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPHByeS13aWRnZXQtdmVnYS1jc3M+PC9wcnktd2lkZ2V0LXZlZ2EtY3NzPlxuPGRpdiBjbGFzcz1cIm8td2lkZ2V0IG8td2lkZ2V0LS1jaGFydFwiPlxuICA8cHJ5LXdpZGdldC1oZWFkZXJcbiAgICAqbmdJZj1cImRpc3BsYXlIZWFkZXIkIHwgYXN5bmNcIlxuICAgIFt3aWRnZXRJbmRleF09XCJ3aWRnZXRJbmRleFwiXG4gICAgW21hbmlmZXN0XT1cIm1hbmlmZXN0XCJcbiAgICAobWFuaWZlc3RNb2RpZmllZCk9XCJtYW5pZmVzdE1vZGlmaWVkLmVtaXQoJGV2ZW50KVwiXG4gICAgI2hlYWRlclxuICAgIFtoZWFkZXJPcHRpb25zXT1cIihkaXNwbGF5SGVhZGVyJCB8IGFzeW5jKSA/PyB7fVwiXG4gICAgW2RhdGFzb3VyY2VJZHNdPVwiKGRhdGFzb3VyY2VJZHMkIHwgYXN5bmMpID8/IFtdXCJcbiAgPlxuICAgIDxwcnktc2V0dGluZ3NcbiAgICAgIChzYXZlVHJpZ2dlcmVkKT1cImVtaXRNYW5pZmVzdCgpXCJcbiAgICAgIChjaGFuZ2VUaXRsZSk9XCJjaGFuZ2VXaWRnZXRUaXRsZSgkZXZlbnQpXCJcbiAgICAgIFtoZWFkZXJQcmVzZW50XT1cImRpc3BsYXlIZWFkZXIkIHwgYXN5bmNcIlxuICAgICAgW3dpZGdldEluZGV4XT1cIndpZGdldEluZGV4XCJcbiAgICAgIFtoZWFkZXJdPVwiaGVhZGVyXCJcbiAgICAgIFtvcGVuJF09XCJvcGVuJFwiXG4gICAgICBjbGFzcz1cIm8tc2V0dGluZ3NcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLXNldHRpbmdzX19maWVsZHNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJwbGFjZURhdGFfc3JjXCI+e3sgJ0Bwcnkud2lkZ2V0LnZlZ2EucGxhY2VEYXRhJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgaWQ9XCJwbGFjZURhdGFfc3JjXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCIob3B0aW9uc0NvcHkucGxhY2VEYXRhID8/IFtdKS5qb2luKCcuJylcIlxuICAgICAgICAgICAgKGlucHV0KT1cImNoYW5nZVBsYWNlRGF0YSgkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cInNwZWNfc3JjXCI+e3sgJ0Bwcnkud2lkZ2V0LnZlZ2Euc3BlYycgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkIGEtdGV4dC1hcmVhXCJcbiAgICAgICAgICAgIGlkPVwic3BlY19zcmNcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImZvcm1hdHRlZEJhc2VTcGVjXCJcbiAgICAgICAgICAgIChpbnB1dCk9XCJjaGFuZ2VTcGVjKCRldmVudClcIlxuICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvcHJ5LXNldHRpbmdzPlxuICA8L3ByeS13aWRnZXQtaGVhZGVyPlxuICA8ZGl2IGNsYXNzPVwiby13aWRnZXQtLWNoYXJ0LS1jaGFydFwiICN2ZWdhPjwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -595,6 +595,7 @@ class SaveViewComponent extends ToolboxActionComponent {
|
|
|
595
595
|
}
|
|
596
596
|
save() {
|
|
597
597
|
this.store.dispatch(DashboardActions.requestAllRoutes());
|
|
598
|
+
this.store.dispatch(DashboardActions.requestManifestsToEmit());
|
|
598
599
|
// Give time for routes to be updated
|
|
599
600
|
setTimeout(() => {
|
|
600
601
|
let presentation = {
|
|
@@ -624,7 +625,7 @@ class SaveViewComponent extends ToolboxActionComponent {
|
|
|
624
625
|
presentation: presentation
|
|
625
626
|
}));
|
|
626
627
|
this.mode = 'directSave';
|
|
627
|
-
},
|
|
628
|
+
}, 1000); // Wait for routes and all widget manifests to be updated
|
|
628
629
|
this.overlayRefSaveAs?.dispose();
|
|
629
630
|
this.closeModals();
|
|
630
631
|
}
|