@provoly/dashboard 1.4.18 → 1.4.20
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/admin/components/admin-classes/admin-classes-view/admin-attributes-edit/admin-attributes-edit.component.d.ts +2 -3
- package/admin/components/admin-classes/admin-classes-view/admin-attributes-new/admin-attributes-new.component.d.ts +2 -3
- package/admin/components/admin-classes/store/admin-class.effects.d.ts +22 -8
- package/admin/components/admin-dataset/store/admin-dataset.effects.d.ts +13 -5
- package/admin/components/admin-fields/store/fields.effects.d.ts +7 -5
- package/admin/store/admin.effects.d.ts +3 -1
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-edit/admin-abac-rules-edit.component.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-new/admin-abac-rules-new.component.mjs +3 -3
- package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-view/admin-abac-rules-view.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-customize/admin-classes-customize.component.mjs +4 -4
- package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +2 -2
- package/esm2022/admin/components/admin-classes/admin-classes-edit/admin-classes-edit.component.mjs +2 -2
- package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +2 -2
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-edit/admin-attributes-edit.component.mjs +5 -6
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-new/admin-attributes-new.component.mjs +5 -6
- package/esm2022/admin/components/admin-classes/admin-classes-view/admin-classes-view.component.mjs +4 -4
- package/esm2022/admin/components/admin-classes/admin-classes.component.mjs +3 -3
- package/esm2022/admin/components/admin-classes/store/admin-class.effects.mjs +14 -13
- package/esm2022/admin/components/admin-dataset/admin-dataset.component.mjs +3 -3
- package/esm2022/admin/components/admin-dataset/admin-form-dataset/admin-form-dataset.component.mjs +3 -3
- package/esm2022/admin/components/admin-dataset/store/admin-dataset.effects.mjs +7 -8
- package/esm2022/admin/components/admin-environment/store/environment.effects.mjs +2 -2
- package/esm2022/admin/components/admin-fields/admin-fields-edit/admin-fields-edit.component.mjs +2 -2
- package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +2 -2
- package/esm2022/admin/components/admin-fields/admin-fields.component.mjs +4 -4
- package/esm2022/admin/components/admin-fields/store/fields.effects.mjs +7 -10
- package/esm2022/admin/components/admin-links/admin-links-new/admin-links-new.component.mjs +3 -3
- package/esm2022/admin/components/admin-links/admin-links.component.mjs +3 -3
- package/esm2022/admin/components/admin-links/store/links.effects.mjs +2 -2
- package/esm2022/admin/components/admin-menu/admin-menu.component.mjs +2 -2
- package/esm2022/admin/components/admin-metadata/admin-metadata.component.mjs +2 -2
- package/esm2022/admin/components/admin-metadata-rules/store/metadata-rules.effects.mjs +2 -2
- package/esm2022/admin/components/admin-metadata-user/store/admin-metadata-user.effects.mjs +2 -2
- package/esm2022/admin/components/admin-predicates/store/predicates.effects.mjs +2 -2
- package/esm2022/admin/components/admin-relation-types/admin-relation-types.component.mjs +2 -2
- package/esm2022/admin/components/admin-user/store/admin-user.effects.mjs +2 -2
- package/esm2022/admin/components/shared/add-category-modal/add-category-modal.component.mjs +2 -2
- package/esm2022/admin/store/admin.effects.mjs +2 -2
- package/esm2022/components/metadata-editor/store/metadata.effects.mjs +2 -2
- package/esm2022/components/text-editor/component/text-editor.component.mjs +2 -2
- package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +3 -4
- package/esm2022/dataset/components/dataset.component.mjs +4 -4
- package/esm2022/filters/autocomplete/autocomplete.component.mjs +4 -4
- package/esm2022/filters/number/number-filter.component.mjs +2 -2
- package/esm2022/filters/text/text-filter.component.mjs +2 -2
- package/esm2022/import/components/form/import-form.component.mjs +2 -2
- package/esm2022/import/components/list/import-list.component.mjs +2 -2
- package/esm2022/import/store/import.effects.mjs +2 -2
- package/esm2022/lib/core/components/select/select.component.mjs +2 -2
- package/esm2022/lib/core/components/share/access-rights-share-modal/access-rights-share-modal.component.mjs +3 -3
- package/esm2022/lib/core/components/snackbar/snackbar.service.mjs +2 -2
- package/esm2022/lib/core/components/upload/upload.component.mjs +2 -2
- package/esm2022/lib/core/errors/http-error-interceptor.service.mjs +2 -2
- package/esm2022/lib/core/model/filter.interface.mjs +1 -1
- package/esm2022/lib/core/store/aggregation/backend-aggregation.service.mjs +3 -4
- package/esm2022/lib/core/store/category/category.actions.mjs +3 -3
- package/esm2022/lib/core/store/category/category.effects.mjs +10 -6
- package/esm2022/lib/core/store/class/class.actions.mjs +3 -3
- package/esm2022/lib/core/store/class/class.effects.mjs +10 -6
- package/esm2022/lib/core/store/config/config.actions.mjs +2 -2
- package/esm2022/lib/core/store/config/config.effects.mjs +13 -8
- package/esm2022/lib/core/store/config/open-map-tiles.service.mjs +2 -2
- package/esm2022/lib/core/store/data-source/data-source.actions.mjs +8 -8
- package/esm2022/lib/core/store/data-source/data-source.effects.mjs +21 -21
- package/esm2022/lib/core/store/field/field.actions.mjs +3 -3
- package/esm2022/lib/core/store/field/field.effects.mjs +10 -6
- package/esm2022/lib/core/store/image/image.effects.mjs +2 -2
- package/esm2022/lib/core/store/item/item.effects.mjs +2 -2
- package/esm2022/lib/core/store/relation-types/relation-types.actions.mjs +4 -4
- package/esm2022/lib/core/store/relation-types/relation-types.effects.mjs +11 -10
- package/esm2022/lib/core/store/search/search.actions.mjs +1 -1
- package/esm2022/lib/core/store/search/search.effects.mjs +3 -2
- package/esm2022/lib/core/store/search/search.selectors.mjs +3 -1
- package/esm2022/lib/core/store/search/search.service.mjs +4 -9
- package/esm2022/lib/dashboard/action-bus/effect/action-bus.effects.mjs +2 -2
- package/esm2022/lib/dashboard/components/context-menu/context-menu.component.mjs +2 -2
- package/esm2022/lib/dashboard/components/dashboard.component.mjs +29 -23
- package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-list/datasource-list.component.mjs +3 -4
- package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +2 -2
- package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widget-instanciator.component.mjs +2 -2
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +2 -2
- package/esm2022/lib/dashboard/store/manifest.service.mjs +2 -2
- package/esm2022/lib/dashboard/store/refresh.service.mjs +2 -2
- package/esm2022/lib/dashboard/store/wms.service.mjs +2 -2
- package/esm2022/notification/components/notification/content/notification-content.component.mjs +2 -2
- package/esm2022/pipeline/components/pipeline-editor/pipeline-editor.component.mjs +3 -5
- package/esm2022/pipeline/factory/pipeline-component-factory.service.mjs +2 -2
- package/esm2022/pipeline/store/pipeline.effects.mjs +2 -2
- package/esm2022/pipeline-components/input-datasource/component/input-datasource.component.mjs +2 -3
- package/esm2022/pipeline-components/input-datasource/input-datasource.module.mjs +2 -2
- package/esm2022/pipeline-components/output-dataset/component/output-dataset.component.mjs +2 -2
- package/esm2022/pipeline-components/output-dataset/output-dataset.module.mjs +2 -2
- package/esm2022/restitution/components/restitution/restitution.component.mjs +5 -5
- package/esm2022/search/search-fulltext/store/search-fulltext.effects.mjs +2 -2
- package/esm2022/search/search-home/search-home.component.mjs +3 -4
- package/esm2022/search/search-mono-class/components/search-mono-class/search-mono-class.component.mjs +2 -2
- package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +2 -2
- package/esm2022/search/search-mono-class/components/search-select-attribute/search-select-attribute.component.mjs +1 -1
- package/esm2022/search/search-mono-class/store/search-mono-class.effects.mjs +2 -2
- package/esm2022/search/search-multi-class/store/search-multi-class.effects.mjs +2 -2
- package/esm2022/search/search-tools/search-tools.component.mjs +5 -6
- package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +2 -2
- package/esm2022/toolbox/components/named-query/named-query.component.mjs +2 -2
- package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +2 -2
- package/esm2022/toolbox/components/toolbox.component.mjs +2 -2
- package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +2 -2
- package/esm2022/widgets/widget-analytic/component/widget-analytic.component.mjs +2 -2
- package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +2 -2
- package/esm2022/widgets/widget-detail/component/widget-detail.component.mjs +2 -2
- package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +10 -13
- package/esm2022/widgets/widget-image/component/widget-image.component.mjs +2 -2
- package/esm2022/widgets/widget-table/component/widget-table.component.mjs +3 -3
- package/esm2022/widgets/widget-table/get-value/get-value.pipe.mjs +2 -2
- package/esm2022/widgets/widget-table/resizable/resizable.directive.mjs +2 -2
- package/esm2022/widgets/widget-template/component/widget-template.component.mjs +2 -2
- package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +2 -2
- package/esm2022/widgets/widget-vega/component/widget-vega.component.mjs +2 -2
- package/fesm2022/provoly-dashboard-admin.mjs +121 -123
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +12 -13
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-text-editor.mjs +1 -2
- package/fesm2022/provoly-dashboard-components-text-editor.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-dataset.mjs +5 -6
- package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-autocomplete.mjs +3 -3
- package/fesm2022/provoly-dashboard-filters-autocomplete.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-number.mjs +1 -2
- package/fesm2022/provoly-dashboard-filters-number.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-filters-text.mjs +1 -2
- package/fesm2022/provoly-dashboard-filters-text.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-import.mjs +5 -6
- package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-notification.mjs +3 -4
- package/fesm2022/provoly-dashboard-notification.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs +2 -3
- package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs +2 -2
- package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-pipeline.mjs +16 -18
- package/fesm2022/provoly-dashboard-pipeline.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-restitution.mjs +4 -4
- package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-search.mjs +19 -20
- package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +3 -4
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +1 -2
- package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs +1 -2
- package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +1 -2
- package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs +1 -2
- package/fesm2022/provoly-dashboard-widgets-widget-detail.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +8 -12
- package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-image.mjs +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-image.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +2 -3
- package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-template.mjs +1 -2
- package/fesm2022/provoly-dashboard-widgets-widget-template.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +1 -2
- package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs +1 -2
- package/fesm2022/provoly-dashboard-widgets-widget-vega.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +989 -975
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/model/filter.interface.d.ts +1 -0
- package/lib/core/store/category/category.actions.d.ts +7 -3
- package/lib/core/store/category/category.effects.d.ts +4 -2
- package/lib/core/store/class/class.actions.d.ts +7 -3
- package/lib/core/store/class/class.effects.d.ts +4 -2
- package/lib/core/store/config/config.actions.d.ts +5 -1
- package/lib/core/store/config/config.effects.d.ts +12 -4
- package/lib/core/store/data-source/data-source.actions.d.ts +23 -11
- package/lib/core/store/data-source/data-source.effects.d.ts +23 -15
- package/lib/core/store/field/field.actions.d.ts +7 -3
- package/lib/core/store/field/field.effects.d.ts +4 -2
- package/lib/core/store/relation-types/relation-types.actions.d.ts +9 -5
- package/lib/core/store/relation-types/relation-types.effects.d.ts +8 -6
- package/lib/core/store/search/search.actions.d.ts +2 -0
- package/lib/core/store/search/search.selectors.d.ts +5 -0
- package/lib/core/store/search/search.service.d.ts +1 -1
- package/lib/dashboard/components/dashboard.component.d.ts +5 -3
- package/package.json +11 -11
- package/search/search-mono-class/store/search-mono-class.effects.d.ts +1 -1
- package/widgets/widget-graph/component/widget-graph.component.d.ts +2 -5
|
@@ -5,6 +5,7 @@ import { DashboardActions } from '../../../dashboard/store/dashboard.actions';
|
|
|
5
5
|
import { DashboardSelectors } from '../../../dashboard/store/dashboard.selectors';
|
|
6
6
|
import { SearchActions } from './search.actions';
|
|
7
7
|
import { DEFAULT_NAMED_QUERY_ID, EXPLORE_NAMED_QUERY_ID } from './search.constants';
|
|
8
|
+
import { SearchSelectors } from './search.selectors';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "@ngrx/effects";
|
|
10
11
|
import * as i2 from "./search.service";
|
|
@@ -50,7 +51,7 @@ export class SearchEffects {
|
|
|
50
51
|
params: action.params,
|
|
51
52
|
next: action.next
|
|
52
53
|
}))));
|
|
53
|
-
this.getPossibleFilterValues$ = createEffect(() => this.actions$.pipe(ofType(SearchActions.getPossibleFilterValues), mergeMap((action) => this.searchService
|
|
54
|
+
this.getPossibleFilterValues$ = createEffect(() => this.actions$.pipe(ofType(SearchActions.getPossibleFilterValues), withLatestFrom(this.store.select(SearchSelectors.filterValues), this.store.select(DashboardSelectors.rank)), filter(([action, filterValues, rank]) => (action.force || !filterValues[action.filterId] || filterValues[action.filterId].length === 0) && rank === 0), mergeMap(([action]) => this.searchService
|
|
54
55
|
.autocomplete(action.attributes, '', action.limit)
|
|
55
56
|
.pipe(map((values) => SearchActions.setPossibleFilterValues({ filterId: action.filterId, values }))))));
|
|
56
57
|
}
|
|
@@ -60,4 +61,4 @@ export class SearchEffects {
|
|
|
60
61
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SearchEffects, decorators: [{
|
|
61
62
|
type: Injectable
|
|
62
63
|
}], ctorParameters: () => [{ type: i1.Actions }, { type: i2.SearchService }, { type: i3.Store }, { type: i4.WidgetFactoryService }] });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9zZWFyY2gvc2VhcmNoLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBR2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBTXBGLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQ1UsUUFBaUIsRUFDakIsYUFBNEIsRUFDNUIsS0FBWSxFQUNaLG9CQUEwQztRQUgxQyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFVBQUssR0FBTCxLQUFLLENBQU87UUFDWix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBR3BELGlCQUFZLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUN4QyxjQUFj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QUFDO1FBRUYsbUJBQWMsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixNQUFNLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxFQUNuQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNiLGdCQUFnQixDQUFDLGVBQWUsQ0FBQztZQUMvQixFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsSUFBSSxzQkFBc0I7WUFDdkMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO1lBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtZQUNyQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7U0FDbEIsQ0FBQyxDQUNILENBQ0YsQ0FDRixDQUFDO1FBRUYsNkJBQXdCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUM3QyxRQUFRLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNsQixJQUFJLENBQUMsYUFBYTthQUNmLFlBQVksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDO2FBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUN2RyxDQUNGLENBQ0YsQ0FBQztJQWhIQyxDQUFDOzhHQU5PLGFBQWE7a0hBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgRU1QVFksIGZpbHRlciwgZ3JvdXBCeSwgbWFwLCBtZXJnZU1hcCwgb2YsIHN3aXRjaE1hcCwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhc2hib2FyZEFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLmFjdGlvbnMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vZGFzaGJvYXJkL3N0b3JlL2Rhc2hib2FyZC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgTW9ub0NsYXNzU2VhcmNoUGF5bG9hZCB9IGZyb20gJy4uLy4uL21vZGVsL3NlYXJjaC1tb25vLWNsYXNzLm1vZGVsJztcbmltcG9ydCB7IEZ1bGxUZXh0U2VhcmNoUGF5bG9hZCwgTXVsdGlDbGFzc1NlYXJjaFBheWxvYWQgfSBmcm9tICcuLi8uLi9tb2RlbC9zZWFyY2gtbXVsdGktY2xhc3MubW9kZWwnO1xuaW1wb3J0IHsgU2VhcmNoQWN0aW9ucyB9IGZyb20gJy4vc2VhcmNoLmFjdGlvbnMnO1xuaW1wb3J0IHsgREVGQVVMVF9OQU1FRF9RVUVSWV9JRCwgRVhQTE9SRV9OQU1FRF9RVUVSWV9JRCB9IGZyb20gJy4vc2VhcmNoLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi9zZWFyY2guc2VydmljZSc7XG5pbXBvcnQgeyBXaWRnZXRGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9jb21wb25lbnRzL3dpZGdldHMvd2lkZ2V0LWluc3RhbmNpYXRvci93aWRnZXQtZmFjdG9yeS5zZXJ2aWNlJztcbmltcG9ydCB7IFdpZGdldE1hbmlmZXN0IH0gZnJvbSAnLi4vLi4vbW9kZWwvbWFuaWZlc3QuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlYXJjaEVmZmVjdHMge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHdpZGdldEZhY3RvcnlTZXJ2aWNlOiBXaWRnZXRGYWN0b3J5U2VydmljZVxuICApIHt9XG5cbiAgc2VhcmNoTmFtZWQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFNlYXJjaEFjdGlvbnMuZ2V0RGF0YXNvdXJjZUl0ZW1zKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKFxuICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucmFuayksXG4gICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5xdWlja09yZGVyKSxcbiAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJlc3VsdFNldHMpXG4gICAgICApLFxuICAgICAgZmlsdGVyKChbXywgcmFua10pID0+IHJhbmsgPT09IDApLFxuICAgICAgZmlsdGVyKChbcHJvcHMsIHJhbmtdKSA9PiBwcm9wcy5pZCAhPT0gREVGQVVMVF9OQU1FRF9RVUVSWV9JRCAmJiBwcm9wcy5pZCAhPT0gRVhQTE9SRV9OQU1FRF9RVUVSWV9JRCksXG4gICAgICBncm91cEJ5KChbcHJvcHMsIHJhbmssIHF1aWNrT3JkZXIsIHJzXSkgPT4gcHJvcHMuaWQpLFxuICAgICAgbWVyZ2VNYXAoKGdyb3VwJCkgPT5cbiAgICAgICAgZ3JvdXAkLnBpcGUoXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICAgICAgc3dpdGNoTWFwKChbcHJvcHMsIHJhbmssIHF1aWNrT3JkZXIsIHJzXSkgPT5cbiAgICAgICAgICAgIHRoaXMuc2VhcmNoU2VydmljZVxuICAgICAgICAgICAgICAuZ2V0SXRlbXMoXG4gICAgICAgICAgICAgICAgcHJvcHMuaWQsXG4gICAgICAgICAgICAgICAgcXVpY2tPcmRlcltwcm9wcy5pZF0sXG4gICAgICAgICAgICAgICAgcHJvcHMuZXhjbHVkZUdlbyxcbiAgICAgICAgICAgICAgICBwcm9wcy5uZXh0ID8gcnNbcHJvcHMuaWRdLnNlYXJjaEFmdGVyIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHByb3BzLmxpbmtlZEl0ZW1zXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHRTZXQpID0+XG4gICAgICAgICAgICAgICAgICBTZWFyY2hBY3Rpb25zLnNlYXJjaFN1Y2Nlc3Moe1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRTZXQsXG4gICAgICAgICAgICAgICAgICAgIGlkOiBwcm9wcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0SXRlbXNTZXJpYWxpemVkUGFyYW1zKHByb3BzLmlkLCBxdWlja09yZGVyKSxcbiAgICAgICAgICAgICAgICAgICAgbmV4dDogcHJvcHMubmV4dFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbU2VhcmNoQWN0aW9ucy5zZWFyY2hGYWlsdXJlKHsgZXJyb3IsIGlkOiBwcm9wcy5pZCB9KV0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgZmV0Y2hNb3JlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXNoYm9hcmRBY3Rpb25zLmZldGNoTW9yZUl0ZW1zKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5yYW5rKSwgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJlc3VsdFNldHMpKSxcbiAgICAgIGZpbHRlcigoW3Byb3BzLCByYW5rLCByc10pID0+IHJhbmsgPT09IDAgJiYgISFyc1twcm9wcy5pZF0uc2VhcmNoQWZ0ZXIpLFxuICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICBtZXJnZU1hcCgoW3Byb3BzXSkgPT4ge1xuICAgICAgICBjb25zdCBkcyA9IHRoaXMud2lkZ2V0RmFjdG9yeVNlcnZpY2UuZGF0YXNvdXJjZXNUb0F1dG9Mb2FkKHtcbiAgICAgICAgICB0eXBlOiBwcm9wcy53aWRnZXRUeXBlLFxuICAgICAgICAgIGRhdGFzb3VyY2U6IFtwcm9wcy5pZF1cbiAgICAgICAgfSBhcyBXaWRnZXRNYW5pZmVzdClbMF07XG5cbiAgICAgICAgaWYgKCEhZHMpIHtcbiAgICAgICAgICByZXR1cm4gb2YoXG4gICAgICAgICAgICBTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyh7XG4gICAgICAgICAgICAgIGlkOiBkcy5kYXRhc2V0SWQsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVHZW86IGRzLmV4Y2x1ZGVHZW8sXG4gICAgICAgICAgICAgIGZyb206ICdmZXRjaE1vcmUnLFxuICAgICAgICAgICAgICBuZXh0OiB0cnVlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBzZWFyY2gkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFNlYXJjaEFjdGlvbnMuc2VhcmNoKSxcbiAgICAgIG1lcmdlTWFwKFxuICAgICAgICAocHJvcHM6IHtcbiAgICAgICAgICBwYXlsb2FkOiBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkIHwgTXVsdGlDbGFzc1NlYXJjaFBheWxvYWQgfCBGdWxsVGV4dFNlYXJjaFBheWxvYWQ7XG4gICAgICAgICAgaWQ/OiBzdHJpbmc7XG4gICAgICAgICAgbGlua2VkSXRlbXM/OiAoJ2Rlc3RpbmF0aW9uJyB8ICdzb3VyY2UnKVtdO1xuICAgICAgICB9KSA9PlxuICAgICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2gocHJvcHMucGF5bG9hZCwgcHJvcHMuaWQsIHByb3BzLmxpbmtlZEl0ZW1zKS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXN1bHRTZXQpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIFNlYXJjaEFjdGlvbnMuc2VhcmNoU3VjY2Vzcyh7IHJlc3VsdFNldCwgaWQ6IHByb3BzLmlkIH0pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW1NlYXJjaEFjdGlvbnMuc2VhcmNoRmFpbHVyZSh7IGVycm9yLCBpZDogcHJvcHMuaWQgfSldKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgc2VhcmNoU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoU2VhcmNoQWN0aW9ucy5zZWFyY2hTdWNjZXNzKSxcbiAgICAgIG1hcCgoYWN0aW9uKSA9PlxuICAgICAgICBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZVJlc3VsdFNldCh7XG4gICAgICAgICAgaWQ6IGFjdGlvbi5pZCA/PyBERUZBVUxUX05BTUVEX1FVRVJZX0lELFxuICAgICAgICAgIHJlc3VsdFNldDogYWN0aW9uLnJlc3VsdFNldCxcbiAgICAgICAgICBwYXJhbXM6IGFjdGlvbi5wYXJhbXMsXG4gICAgICAgICAgbmV4dDogYWN0aW9uLm5leHRcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgZ2V0UG9zc2libGVGaWx0ZXJWYWx1ZXMkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFNlYXJjaEFjdGlvbnMuZ2V0UG9zc2libGVGaWx0ZXJWYWx1ZXMpLFxuICAgICAgbWVyZ2VNYXAoKGFjdGlvbikgPT5cbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlXG4gICAgICAgICAgLmF1dG9jb21wbGV0ZShhY3Rpb24uYXR0cmlidXRlcywgJycsIGFjdGlvbi5saW1pdClcbiAgICAgICAgICAucGlwZShtYXAoKHZhbHVlcykgPT4gU2VhcmNoQWN0aW9ucy5zZXRQb3NzaWJsZUZpbHRlclZhbHVlcyh7IGZpbHRlcklkOiBhY3Rpb24uZmlsdGVySWQsIHZhbHVlcyB9KSkpXG4gICAgICApXG4gICAgKVxuICApO1xufVxuIl19
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9zZWFyY2gvc2VhcmNoLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBR2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUlwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQUdyRCxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUNVLFFBQWlCLEVBQ2pCLGFBQTRCLEVBQzVCLEtBQVksRUFDWixvQkFBMEM7UUFIMUMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1oseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUdwRCxpQkFBWSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hC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Q2YsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7YUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ3ZHLENBQ0YsQ0FDRixDQUFDO0lBckhDLENBQUM7OEdBTk8sYUFBYTtrSEFBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBFTVBUWSwgZmlsdGVyLCBncm91cEJ5LCBtYXAsIG1lcmdlTWFwLCBvZiwgc3dpdGNoTWFwLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQuYWN0aW9ucyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2VhcmNoLW1vbm8tY2xhc3MubW9kZWwnO1xuaW1wb3J0IHsgRnVsbFRleHRTZWFyY2hQYXlsb2FkLCBNdWx0aUNsYXNzU2VhcmNoUGF5bG9hZCB9IGZyb20gJy4uLy4uL21vZGVsL3NlYXJjaC1tdWx0aS1jbGFzcy5tb2RlbCc7XG5pbXBvcnQgeyBTZWFyY2hBY3Rpb25zIH0gZnJvbSAnLi9zZWFyY2guYWN0aW9ucyc7XG5pbXBvcnQgeyBERUZBVUxUX05BTUVEX1FVRVJZX0lELCBFWFBMT1JFX05BTUVEX1FVRVJZX0lEIH0gZnJvbSAnLi9zZWFyY2guY29uc3RhbnRzJztcbmltcG9ydCB7IFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7IFdpZGdldEZhY3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGFzaGJvYXJkL2NvbXBvbmVudHMvd2lkZ2V0cy93aWRnZXQtaW5zdGFuY2lhdG9yL3dpZGdldC1mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgV2lkZ2V0TWFuaWZlc3QgfSBmcm9tICcuLi8uLi9tb2RlbC9tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2VhcmNoU2VsZWN0b3JzIH0gZnJvbSAnLi9zZWFyY2guc2VsZWN0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlYXJjaEVmZmVjdHMge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIHdpZGdldEZhY3RvcnlTZXJ2aWNlOiBXaWRnZXRGYWN0b3J5U2VydmljZVxuICApIHt9XG5cbiAgc2VhcmNoTmFtZWQkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFNlYXJjaEFjdGlvbnMuZ2V0RGF0YXNvdXJjZUl0ZW1zKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKFxuICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMucmFuayksXG4gICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5xdWlja09yZGVyKSxcbiAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJlc3VsdFNldHMpXG4gICAgICApLFxuICAgICAgZmlsdGVyKChbXywgcmFua10pID0+IHJhbmsgPT09IDApLFxuICAgICAgZmlsdGVyKChbcHJvcHMsIHJhbmtdKSA9PiBwcm9wcy5pZCAhPT0gREVGQVVMVF9OQU1FRF9RVUVSWV9JRCAmJiBwcm9wcy5pZCAhPT0gRVhQTE9SRV9OQU1FRF9RVUVSWV9JRCksXG4gICAgICBncm91cEJ5KChbcHJvcHMsIHJhbmssIHF1aWNrT3JkZXIsIHJzXSkgPT4gcHJvcHMuaWQpLFxuICAgICAgbWVyZ2VNYXAoKGdyb3VwJCkgPT5cbiAgICAgICAgZ3JvdXAkLnBpcGUoXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICAgICAgc3dpdGNoTWFwKChbcHJvcHMsIHJhbmssIHF1aWNrT3JkZXIsIHJzXSkgPT5cbiAgICAgICAgICAgIHRoaXMuc2VhcmNoU2VydmljZVxuICAgICAgICAgICAgICAuZ2V0SXRlbXMoXG4gICAgICAgICAgICAgICAgcHJvcHMuaWQsXG4gICAgICAgICAgICAgICAgcXVpY2tPcmRlcltwcm9wcy5pZF0sXG4gICAgICAgICAgICAgICAgcHJvcHMuZXhjbHVkZUdlbyxcbiAgICAgICAgICAgICAgICBwcm9wcy5uZXh0ID8gcnNbcHJvcHMuaWRdLnNlYXJjaEFmdGVyIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHByb3BzLmxpbmtlZEl0ZW1zXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHRTZXQpID0+XG4gICAgICAgICAgICAgICAgICBTZWFyY2hBY3Rpb25zLnNlYXJjaFN1Y2Nlc3Moe1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRTZXQsXG4gICAgICAgICAgICAgICAgICAgIGlkOiBwcm9wcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0SXRlbXNTZXJpYWxpemVkUGFyYW1zKHByb3BzLmlkLCBxdWlja09yZGVyKSxcbiAgICAgICAgICAgICAgICAgICAgbmV4dDogcHJvcHMubmV4dFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiBbU2VhcmNoQWN0aW9ucy5zZWFyY2hGYWlsdXJlKHsgZXJyb3IsIGlkOiBwcm9wcy5pZCB9KV0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgZmV0Y2hNb3JlJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShEYXNoYm9hcmRBY3Rpb25zLmZldGNoTW9yZUl0ZW1zKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5yYW5rKSwgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnJlc3VsdFNldHMpKSxcbiAgICAgIGZpbHRlcigoW3Byb3BzLCByYW5rLCByc10pID0+IHJhbmsgPT09IDAgJiYgISFyc1twcm9wcy5pZF0uc2VhcmNoQWZ0ZXIpLFxuICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICBtZXJnZU1hcCgoW3Byb3BzXSkgPT4ge1xuICAgICAgICBjb25zdCBkcyA9IHRoaXMud2lkZ2V0RmFjdG9yeVNlcnZpY2UuZGF0YXNvdXJjZXNUb0F1dG9Mb2FkKHtcbiAgICAgICAgICB0eXBlOiBwcm9wcy53aWRnZXRUeXBlLFxuICAgICAgICAgIGRhdGFzb3VyY2U6IFtwcm9wcy5pZF1cbiAgICAgICAgfSBhcyBXaWRnZXRNYW5pZmVzdClbMF07XG5cbiAgICAgICAgaWYgKCEhZHMpIHtcbiAgICAgICAgICByZXR1cm4gb2YoXG4gICAgICAgICAgICBTZWFyY2hBY3Rpb25zLmdldERhdGFzb3VyY2VJdGVtcyh7XG4gICAgICAgICAgICAgIGlkOiBkcy5kYXRhc2V0SWQsXG4gICAgICAgICAgICAgIGV4Y2x1ZGVHZW86IGRzLmV4Y2x1ZGVHZW8sXG4gICAgICAgICAgICAgIGZyb206ICdmZXRjaE1vcmUnLFxuICAgICAgICAgICAgICBuZXh0OiB0cnVlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBzZWFyY2gkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFNlYXJjaEFjdGlvbnMuc2VhcmNoKSxcbiAgICAgIG1lcmdlTWFwKFxuICAgICAgICAocHJvcHM6IHtcbiAgICAgICAgICBwYXlsb2FkOiBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkIHwgTXVsdGlDbGFzc1NlYXJjaFBheWxvYWQgfCBGdWxsVGV4dFNlYXJjaFBheWxvYWQ7XG4gICAgICAgICAgaWQ/OiBzdHJpbmc7XG4gICAgICAgICAgbGlua2VkSXRlbXM/OiAoJ2Rlc3RpbmF0aW9uJyB8ICdzb3VyY2UnKVtdO1xuICAgICAgICB9KSA9PlxuICAgICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2gocHJvcHMucGF5bG9hZCwgcHJvcHMuaWQsIHByb3BzLmxpbmtlZEl0ZW1zKS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXN1bHRTZXQpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIFNlYXJjaEFjdGlvbnMuc2VhcmNoU3VjY2Vzcyh7IHJlc3VsdFNldCwgaWQ6IHByb3BzLmlkIH0pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4gW1NlYXJjaEFjdGlvbnMuc2VhcmNoRmFpbHVyZSh7IGVycm9yLCBpZDogcHJvcHMuaWQgfSldKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgc2VhcmNoU3VjY2VzcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGUoU2VhcmNoQWN0aW9ucy5zZWFyY2hTdWNjZXNzKSxcbiAgICAgIG1hcCgoYWN0aW9uKSA9PlxuICAgICAgICBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZVJlc3VsdFNldCh7XG4gICAgICAgICAgaWQ6IGFjdGlvbi5pZCA/PyBERUZBVUxUX05BTUVEX1FVRVJZX0lELFxuICAgICAgICAgIHJlc3VsdFNldDogYWN0aW9uLnJlc3VsdFNldCxcbiAgICAgICAgICBwYXJhbXM6IGFjdGlvbi5wYXJhbXMsXG4gICAgICAgICAgbmV4dDogYWN0aW9uLm5leHRcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgZ2V0UG9zc2libGVGaWx0ZXJWYWx1ZXMkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFNlYXJjaEFjdGlvbnMuZ2V0UG9zc2libGVGaWx0ZXJWYWx1ZXMpLFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5zZWxlY3QoU2VhcmNoU2VsZWN0b3JzLmZpbHRlclZhbHVlcyksIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5yYW5rKSksXG4gICAgICBmaWx0ZXIoXG4gICAgICAgIChbYWN0aW9uLCBmaWx0ZXJWYWx1ZXMsIHJhbmtdKSA9PlxuICAgICAgICAgIChhY3Rpb24uZm9yY2UgfHwgIWZpbHRlclZhbHVlc1thY3Rpb24uZmlsdGVySWRdIHx8IGZpbHRlclZhbHVlc1thY3Rpb24uZmlsdGVySWRdLmxlbmd0aCA9PT0gMCkgJiYgcmFuayA9PT0gMFxuICAgICAgKSxcbiAgICAgIG1lcmdlTWFwKChbYWN0aW9uXSkgPT5cbiAgICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlXG4gICAgICAgICAgLmF1dG9jb21wbGV0ZShhY3Rpb24uYXR0cmlidXRlcywgJycsIGFjdGlvbi5saW1pdClcbiAgICAgICAgICAucGlwZShtYXAoKHZhbHVlcykgPT4gU2VhcmNoQWN0aW9ucy5zZXRQb3NzaWJsZUZpbHRlclZhbHVlcyh7IGZpbHRlcklkOiBhY3Rpb24uZmlsdGVySWQsIHZhbHVlcyB9KSkpXG4gICAgICApXG4gICAgKVxuICApO1xufVxuIl19
|
|
@@ -3,9 +3,11 @@ import * as fromSearch from './search.reducer';
|
|
|
3
3
|
const feature = createFeatureSelector(fromSearch.searchFeatureKey);
|
|
4
4
|
const searchLoading = createSelector(feature, (state) => state.searchLoading);
|
|
5
5
|
const possibleFilterValues = (filterId) => createSelector(feature, (state) => filterId && state.possibleFilterValues[filterId] ? state.possibleFilterValues[filterId] : []);
|
|
6
|
+
const filterValues = createSelector(feature, (state) => state.possibleFilterValues);
|
|
6
7
|
export const SearchSelectors = {
|
|
7
8
|
feature,
|
|
8
9
|
searchLoading,
|
|
10
|
+
filterValues,
|
|
9
11
|
possibleFilterValues
|
|
10
12
|
};
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL3N0b3JlL3NlYXJjaC9zZWFyY2guc2VsZWN0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEUsT0FBTyxLQUFLLFVBQVUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxNQUFNLE9BQU8sR0FBRyxxQkFBcUIsQ0FBeUIsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFM0YsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzlFLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxRQUFpQixFQUFFLEVBQUUsQ0FDakQsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2hDLFFBQVEsSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUM3RixDQUFDO0FBQ0osTUFBTSxZQUFZLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFFcEYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLE9BQU87SUFDUCxhQUFhO0lBQ2IsWUFBWTtJQUNaLG9CQUFvQjtDQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlRmVhdHVyZVNlbGVjdG9yLCBjcmVhdGVTZWxlY3RvciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCAqIGFzIGZyb21TZWFyY2ggZnJvbSAnLi9zZWFyY2gucmVkdWNlcic7XG5cbmNvbnN0IGZlYXR1cmUgPSBjcmVhdGVGZWF0dXJlU2VsZWN0b3I8ZnJvbVNlYXJjaC5TZWFyY2hTdGF0ZT4oZnJvbVNlYXJjaC5zZWFyY2hGZWF0dXJlS2V5KTtcblxuY29uc3Qgc2VhcmNoTG9hZGluZyA9IGNyZWF0ZVNlbGVjdG9yKGZlYXR1cmUsIChzdGF0ZSkgPT4gc3RhdGUuc2VhcmNoTG9hZGluZyk7XG5jb25zdCBwb3NzaWJsZUZpbHRlclZhbHVlcyA9IChmaWx0ZXJJZD86IHN0cmluZykgPT5cbiAgY3JlYXRlU2VsZWN0b3IoZmVhdHVyZSwgKHN0YXRlKSA9PlxuICAgIGZpbHRlcklkICYmIHN0YXRlLnBvc3NpYmxlRmlsdGVyVmFsdWVzW2ZpbHRlcklkXSA/IHN0YXRlLnBvc3NpYmxlRmlsdGVyVmFsdWVzW2ZpbHRlcklkXSA6IFtdXG4gICk7XG5jb25zdCBmaWx0ZXJWYWx1ZXMgPSBjcmVhdGVTZWxlY3RvcihmZWF0dXJlLCAoc3RhdGUpID0+IHN0YXRlLnBvc3NpYmxlRmlsdGVyVmFsdWVzKTtcblxuZXhwb3J0IGNvbnN0IFNlYXJjaFNlbGVjdG9ycyA9IHtcbiAgZmVhdHVyZSxcbiAgc2VhcmNoTG9hZGluZyxcbiAgZmlsdGVyVmFsdWVzLFxuICBwb3NzaWJsZUZpbHRlclZhbHVlc1xufTtcbiJdfQ==
|
|
@@ -41,14 +41,15 @@ export class SearchService {
|
|
|
41
41
|
type: ds?.sourceType === 'namedQuery' ? ds.request.type : NamedQueryTypes.MONO_CLASS,
|
|
42
42
|
excludeGeo: excludeGeo ?? false,
|
|
43
43
|
searchAfter: searchAfter ?? undefined,
|
|
44
|
-
linkedItems
|
|
44
|
+
linkedItems,
|
|
45
|
+
limit: this.limits[id] || this.limits['default']
|
|
45
46
|
}, { params });
|
|
46
47
|
}), map((rs) => this.applyTransformations(id, rs)));
|
|
47
48
|
}
|
|
48
49
|
getItemsSerializedParams(id, quickOrder = {}) {
|
|
49
50
|
return '|' + this.getItemsFilter(id, this.getOrder(quickOrder[id])).toString() + '|';
|
|
50
51
|
}
|
|
51
|
-
getItemsFilter(id, cumulative
|
|
52
|
+
getItemsFilter(id, cumulative) {
|
|
52
53
|
let params = cumulative ?? new HttpParams({ encoder: new FilterParamEncoder() });
|
|
53
54
|
if (this.filters[id]) {
|
|
54
55
|
this.filters[id]
|
|
@@ -73,12 +74,6 @@ export class SearchService {
|
|
|
73
74
|
params = params.append('filter', `${filter.attribute},${filter.operator},${value}`);
|
|
74
75
|
});
|
|
75
76
|
}
|
|
76
|
-
if (includeLimit) {
|
|
77
|
-
const limit = this.limits[id];
|
|
78
|
-
if (limit) {
|
|
79
|
-
params = params.append('limit', limit);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
77
|
return params;
|
|
83
78
|
}
|
|
84
79
|
getOrder(quickOrder) {
|
|
@@ -147,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
147
142
|
providedIn: 'root'
|
|
148
143
|
}]
|
|
149
144
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.Store }] });
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9zZWFyY2gvc2VhcmNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQU9sRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQVEzRSxNQUFNLE9BQU8sYUFBYTtJQU14QixZQUNVLFVBQXNCLEVBQ3RCLEtBQXVDO1FBRHZDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBa0M7UUFQakQsb0JBQWUsR0FBOEIsRUFBRSxDQUFDO1FBQ2hELFlBQU8sR0FBOEMsRUFBRSxDQUFDO1FBQ3hELFdBQU0sR0FBNEIsRUFBRSxDQUFDO1FBQ3JDLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQU03QixL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QUFDLEVBQUU7WUFDdEUsVUFBVSxFQUFFLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRyxLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUs7U0FDTixDQUFDLENBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQzs4R0E5S1UsYUFBYTtrSEFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAsIHRha2UsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi9kYXNoYm9hcmQvc3RvcmUvZGFzaGJvYXJkLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBGaWx0ZXJDb250ZXh0IH0gZnJvbSAnLi4vLi4vbW9kZWwvZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXN1bHRPcmRlciB9IGZyb20gJy4uLy4uL21vZGVsL3Jlc3VsdC1vcmRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVzdWx0U2V0IH0gZnJvbSAnLi4vLi4vbW9kZWwvcmVzdWx0LXNldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTW9ub0NsYXNzU2VhcmNoUGF5bG9hZCB9IGZyb20gJy4uLy4uL21vZGVsL3NlYXJjaC1tb25vLWNsYXNzLm1vZGVsJztcbmltcG9ydCB7IEZ1bGxUZXh0U2VhcmNoUGF5bG9hZCwgTXVsdGlDbGFzc1NlYXJjaFBheWxvYWQgfSBmcm9tICcuLi8uLi9tb2RlbC9zZWFyY2gtbXVsdGktY2xhc3MubW9kZWwnO1xuaW1wb3J0IHsgQ29uZmlnU3RhdGUgfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnJlZHVjZXInO1xuaW1wb3J0IHsgQ29uZmlnU2VsZWN0b3JzIH0gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgREVGQVVMVF9OQU1FRF9RVUVSWV9JRCB9IGZyb20gJy4vc2VhcmNoLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBTZWFyY2hTdGF0ZSB9IGZyb20gJy4vc2VhcmNoLnJlZHVjZXInO1xuaW1wb3J0IHsgRmlsdGVyUGFyYW1FbmNvZGVyIH0gZnJvbSAnLi9maWx0ZXItcGFyYW0tZW5jb2Rlcic7XG5pbXBvcnQgeyBEYXRlVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9kYXNoYm9hcmQvZGF0ZS11dGlscyc7XG5pbXBvcnQgeyBOYW1lZFF1ZXJ5VHlwZXMgfSBmcm9tICcuLi9kYXRhLXNvdXJjZS9uYW1lZC1xdWVyeS10eXBlcy5tb2RlbCc7XG5pbXBvcnQgeyBEYXRhU291cmNlU2VsZWN0b3JzIH0gZnJvbSAnLi4vZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2Uuc2VsZWN0b3JzJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICcuLi9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5tb2RlbCc7XG5cbmV4cG9ydCB0eXBlIFJlc3VsdHNldFRyYW5zZm9ybWF0aW9uID0gKGlkOiBzdHJpbmcsIHJlc3VsdDogUmVzdWx0U2V0KSA9PiBSZXN1bHRTZXQ7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaFNlcnZpY2Uge1xuICB0cmFuc2Zvcm1hdGlvbnM6IFJlc3VsdHNldFRyYW5zZm9ybWF0aW9uW10gPSBbXTtcbiAgZmlsdGVyczogeyBbZGF0YXNvdXJjZTogc3RyaW5nXTogRmlsdGVyQ29udGV4dFtdIH0gPSB7fTtcbiAgbGltaXRzOiB7IFtwOiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuICBkYXRhc291cmNlczogRGF0YVNvdXJjZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPENvbmZpZ1N0YXRlIHwgU2VhcmNoU3RhdGU+XG4gICkge1xuICAgIHN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuZGF0YXNvdXJjZUZpbHRlcnMpLnN1YnNjcmliZSgoZmlsdGVycykgPT4ge1xuICAgICAgdGhpcy5maWx0ZXJzID0gZmlsdGVycztcbiAgICB9KTtcbiAgICBzdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmxpbWl0cykuc3Vic2NyaWJlKChsaW1pdHMpID0+IHtcbiAgICAgIHRoaXMubGltaXRzID0gbGltaXRzO1xuICAgIH0pO1xuICAgIHN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLmdldERhdGFTb3VyY2VzKS5zdWJzY3JpYmUoKGRhdGFzb3VyY2VzKSA9PiB7XG4gICAgICB0aGlzLmRhdGFzb3VyY2VzID0gZGF0YXNvdXJjZXM7XG4gICAgfSk7XG4gIH1cblxuICBnZXRJdGVtcyhcbiAgICBpZDogc3RyaW5nLFxuICAgIHF1aWNrT3JkZXI/OiBSZXN1bHRPcmRlcixcbiAgICBleGNsdWRlR2VvPzogYm9vbGVhbixcbiAgICBzZWFyY2hBZnRlcj86IHN0cmluZyxcbiAgICBsaW5rZWRJdGVtczogKCdkZXN0aW5hdGlvbicgfCAnc291cmNlJylbXSA9IFtdXG4gICk6IE9ic2VydmFibGU8UmVzdWx0U2V0PiB7XG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5nZXRJdGVtc0ZpbHRlcihpZCwgdGhpcy5nZXRPcmRlcihxdWlja09yZGVyKSk7XG4gICAgaWYgKCFpZCkge1xuICAgICAgY29uc29sZS53YXJuKCdOb3Qgc2VuZGluZyBpdGVtcyByZXF1ZXN0IHdpdGggbm8gZGF0YXNvdXJjZSBhdHRhY2hlZC4nKTtcbiAgICAgIHJldHVybiBvZih7IGl0ZW1zOiB7fSwgcmVsYXRpb25zOiBbXSB9IGFzIFJlc3VsdFNldCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5kYXRhVXJsKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKHVybCkgPT4ge1xuICAgICAgICBjb25zdCBkcyA9IHRoaXMuZGF0YXNvdXJjZXMuZmluZCgoZCkgPT4gZC5pZCA9PT0gaWQpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8UmVzdWx0U2V0PihcbiAgICAgICAgICBlbmNvZGVVUkkoYCR7dXJsfS9kYXRhLXNvdXJjZXMvaWQvJHtpZH0vaXRlbXNgKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBkcz8uc291cmNlVHlwZSA9PT0gJ25hbWVkUXVlcnknID8gZHMucmVxdWVzdC50eXBlIDogTmFtZWRRdWVyeVR5cGVzLk1PTk9fQ0xBU1MsXG4gICAgICAgICAgICBleGNsdWRlR2VvOiBleGNsdWRlR2VvID8/IGZhbHNlLFxuICAgICAgICAgICAgc2VhcmNoQWZ0ZXI6IHNlYXJjaEFmdGVyID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGxpbmtlZEl0ZW1zXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IHBhcmFtcyB9XG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIG1hcCgocnMpID0+IHRoaXMuYXBwbHlUcmFuc2Zvcm1hdGlvbnMoaWQsIHJzKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0SXRlbXNTZXJpYWxpemVkUGFyYW1zKGlkOiBzdHJpbmcsIHF1aWNrT3JkZXI6IHsgW2lkOiBzdHJpbmddOiBSZXN1bHRPcmRlciB8IHVuZGVmaW5lZCB9ID0ge30pOiBzdHJpbmcge1xuICAgIHJldHVybiAnfCcgKyB0aGlzLmdldEl0ZW1zRmlsdGVyKGlkLCB0aGlzLmdldE9yZGVyKHF1aWNrT3JkZXJbaWRdKSkudG9TdHJpbmcoKSArICd8JztcbiAgfVxuXG4gIGdldEl0ZW1zRmlsdGVyKGlkOiBzdHJpbmcsIGN1bXVsYXRpdmU/OiBIdHRwUGFyYW1zLCBpbmNsdWRlTGltaXQgPSB0cnVlKTogSHR0cFBhcmFtcyB7XG4gICAgbGV0IHBhcmFtcyA9IGN1bXVsYXRpdmUgPz8gbmV3IEh0dHBQYXJhbXMoeyBlbmNvZGVyOiBuZXcgRmlsdGVyUGFyYW1FbmNvZGVyKCkgfSk7XG4gICAgaWYgKHRoaXMuZmlsdGVyc1tpZF0pIHtcbiAgICAgIHRoaXMuZmlsdGVyc1tpZF1cbiAgICAgICAgLmZpbHRlcigoZmlsdGVyKSA9PiBmaWx0ZXIudmFsdWUgIT09IG51bGwgJiYgZmlsdGVyLnZhbHVlICE9PSB1bmRlZmluZWQpXG4gICAgICAgIC5mb3JFYWNoKChmaWx0ZXIpID0+IHtcbiAgICAgICAgICBsZXQgdmFsdWVzVG9BZGRUb1BhcmFtcyA9IGZpbHRlci52YWx1ZTtcbiAgICAgICAgICAvLyBJTlNJREUgYW5kIE9VVFNJREUgb3BlcmF0b3JzIHVzZXMgMiB2YWx1ZXMgYnV0IG5vdCBzZW50IGluIGFuIGFycmF5LCB2YWx1ZXMgYXJlIHNlcGFyYXRlZCBieSBhIGNvbWFcbiAgICAgICAgICAvLyB3aWNoIG11c3Qgbm90IGJlIGVuY29kZWQgKGFzIGlmIHZhbHVlcyB3ZXJlIGluIGFuIGFycmF5KVxuICAgICAgICAgIGNvbnN0IGlzTXVsdGlWYWx1ZWQgPSBbJ0lOU0lERScsICdPVVRTSURFJ10uZmluZCgodmFsKSA9PiB2YWwgPT09IGZpbHRlci5vcGVyYXRvcikgIT09IHVuZGVmaW5lZDtcbiAgICAgICAgICBpZiAoaXNNdWx0aVZhbHVlZCkge1xuICAgICAgICAgICAgdmFsdWVzVG9BZGRUb1BhcmFtcyA9IChmaWx0ZXIudmFsdWUgYXMgc3RyaW5nKS5zcGxpdCgnLCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBkYXRlIGZpbHRlciB2YWx1ZSBtdXN0IGJlIHNlbmQgaW4gSVNPLTg2MDEgZm9ybWF0XG4gICAgICAgICAgaWYgKGZpbHRlci50eXBlID09PSAnZGF0ZScpIHtcbiAgICAgICAgICAgIHZhbHVlc1RvQWRkVG9QYXJhbXMgPSBpc011bHRpVmFsdWVkXG4gICAgICAgICAgICAgID8gKHZhbHVlc1RvQWRkVG9QYXJhbXMgYXMgc3RyaW5nW10pLm1hcCgodmFsdWUpID0+IERhdGVVdGlscy5wYXJzZVRvSXNvU3RyaW5nKHZhbHVlKSlcbiAgICAgICAgICAgICAgOiBEYXRlVXRpbHMucGFyc2VUb0lzb1N0cmluZyh2YWx1ZXNUb0FkZFRvUGFyYW1zIGFzIHN0cmluZyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHZhbHVlID0gQXJyYXkuaXNBcnJheSh2YWx1ZXNUb0FkZFRvUGFyYW1zKVxuICAgICAgICAgICAgPyB2YWx1ZXNUb0FkZFRvUGFyYW1zLm1hcCgodikgPT4gZW5jb2RlVVJJQ29tcG9uZW50KHYudG9TdHJpbmcoKS5zcGxpdCgnLCcpLmpvaW4oJ1xcXFwsJykpKS5qb2luKCcsJylcbiAgICAgICAgICAgIDogZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlc1RvQWRkVG9QYXJhbXMhLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnXFxcXCwnKSk7XG4gICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnZmlsdGVyJywgYCR7ZmlsdGVyLmF0dHJpYnV0ZX0sJHtmaWx0ZXIub3BlcmF0b3J9LCR7dmFsdWV9YCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoaW5jbHVkZUxpbWl0KSB7XG4gICAgICBjb25zdCBsaW1pdCA9IHRoaXMubGltaXRzW2lkXTtcbiAgICAgIGlmIChsaW1pdCkge1xuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdsaW1pdCcsIGxpbWl0KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfVxuXG4gIGdldE9yZGVyKHF1aWNrT3JkZXI6IFJlc3VsdE9yZGVyIHwgdW5kZWZpbmVkKTogSHR0cFBhcmFtcyB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHsgZW5jb2RlcjogbmV3IEZpbHRlclBhcmFtRW5jb2RlcigpIH0pO1xuICAgIGlmIChxdWlja09yZGVyKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdvcmRlcicsIGAke3F1aWNrT3JkZXIuYXR0cmlidXRlfSwke3F1aWNrT3JkZXIuYXNjID8/ICcnfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdvcmRlcicsICd0cnVlLGFzYycpO1xuICAgIH1cbiAgICByZXR1cm4gcGFyYW1zO1xuICB9XG5cbiAgLyoqXG4gICAqIExhdW5jaCBhIHNlYXJjaCByZXF1ZXN0IChhbmQgc2F2ZXMgaXQgYXMgY3VycmVudCBzZWFyY2gpXG4gICAqIEBwYXJhbSBjb25kaXRpb25cbiAgICovXG4gIHNlYXJjaChcbiAgICBjb25kaXRpb246IE1vbm9DbGFzc1NlYXJjaFBheWxvYWQgfCBNdWx0aUNsYXNzU2VhcmNoUGF5bG9hZCB8IEZ1bGxUZXh0U2VhcmNoUGF5bG9hZCxcbiAgICBpZD86IHN0cmluZyxcbiAgICB3aXRoTGlua2VkSXRlbXM6ICgnZGVzdGluYXRpb24nIHwgJ3NvdXJjZScpW10gPSBbXVxuICApOiBPYnNlcnZhYmxlPFJlc3VsdFNldD4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMuZGF0YVVybCkucGlwZShcbiAgICAgIGZpbHRlcigodXJsKSA9PiAhIXVybCksXG4gICAgICB0YWtlKDEpLFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnF1aWNrT3JkZXIpLCB0aGlzLnN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMubGltaXRzKSksXG4gICAgICBtZXJnZU1hcCgoW3VybCwgcXVpY2tPcmRlciwgbGltaXRzXSkgPT4ge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7fSBhcyB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICAgICAgICBpZiAocXVpY2tPcmRlcltERUZBVUxUX05BTUVEX1FVRVJZX0lEXSkge1xuICAgICAgICAgIHBhcmFtc1snb3JkZXInXSA9IGAke3F1aWNrT3JkZXJbREVGQVVMVF9OQU1FRF9RVUVSWV9JRF0/LmF0dHJpYnV0ZX0sJHtcbiAgICAgICAgICAgIHF1aWNrT3JkZXJbREVGQVVMVF9OQU1FRF9RVUVSWV9JRF0/LmFzYyA/PyAnJ1xuICAgICAgICAgIH1gO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG90aGVyUGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgICAgIGlmICh3aXRoTGlua2VkSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGlmICh3aXRoTGlua2VkSXRlbXMuaW5jbHVkZXMoJ2Rlc3RpbmF0aW9uJykpIHtcbiAgICAgICAgICAgIG90aGVyUGFyYW1zWyd3aXRoRGVzdGluYXRpb25JdGVtcyddID0gJ3RydWUnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAod2l0aExpbmtlZEl0ZW1zLmluY2x1ZGVzKCdzb3VyY2UnKSkge1xuICAgICAgICAgICAgb3RoZXJQYXJhbXNbJ3dpdGhTb3VyY2VJdGVtcyddID0gJ3RydWUnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBfY29uZGl0aW9uID0geyAuLi5jb25kaXRpb24sIGxpbWl0OiBsaW1pdHNbREVGQVVMVF9OQU1FRF9RVUVSWV9JRF0gPz8gbGltaXRzWydkZWZhdWx0J10sIC4uLm90aGVyUGFyYW1zIH07XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxSZXN1bHRTZXQ+KGVuY29kZVVSSShgJHt1cmx9L2l0ZW1zL3NlYXJjaGApLCBfY29uZGl0aW9uLCB7IHBhcmFtcyB9KTtcbiAgICAgIH0pLFxuICAgICAgbWFwKChycykgPT4gdGhpcy5hcHBseVRyYW5zZm9ybWF0aW9ucyhpZCA/PyBERUZBVUxUX05BTUVEX1FVRVJZX0lELCBycykpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gYWRkIGEgdHJhbnNmb3JtYXRpb24gZnVuY3Rpb24gd2hlbiBnZXR0aW5nIHJlc3VsdHMgZnJvbSBiYWNrZW5kXG4gICAqIEBwYXJhbSBmdW5jXG4gICAqL1xuICBhZGRUcmFuc2Zvcm1hdGlvbihmdW5jOiBSZXN1bHRzZXRUcmFuc2Zvcm1hdGlvbikge1xuICAgIHRoaXMudHJhbnNmb3JtYXRpb25zLnB1c2goZnVuYyk7XG4gIH1cblxuICAvKipcbiAgICogQXBwbHkgYWxsIHRyYW5zZm9ybWF0aW9uIGZ1bmN0aW9uc1xuICAgKiBAcGFyYW0gaWRcbiAgICogQHBhcmFtIHJzXG4gICAqL1xuICBhcHBseVRyYW5zZm9ybWF0aW9ucyhpZDogc3RyaW5nLCByczogUmVzdWx0U2V0KSB7XG4gICAgbGV0IHRyYW5zZm9ybWVkID0gcnM7XG4gICAgdGhpcy50cmFuc2Zvcm1hdGlvbnMuZm9yRWFjaCgoZnVuYykgPT4gKHRyYW5zZm9ybWVkID0gZnVuYyhpZCwgdHJhbnNmb3JtZWQpKSk7XG4gICAgcmV0dXJuIHRyYW5zZm9ybWVkO1xuICB9XG5cbiAgYXV0b2NvbXBsZXRlKFxuICAgIGF0dHJpYnV0ZXM6XG4gICAgICB8IHtcbiAgICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICAgIGRhdGFzb3VyY2U6IHN0cmluZztcbiAgICAgICAgfVtdXG4gICAgICB8IHVuZGVmaW5lZCxcbiAgICBzZWFyY2g6IHN0cmluZyA9ICcnLFxuICAgIGxpbWl0PzogbnVtYmVyXG4gICkge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMuZGF0YVVybCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodXJsKSA9PlxuICAgICAgICB0aGlzLmh0dHBDbGllbnQucG9zdDxzdHJpbmdbXT4oZW5jb2RlVVJJKGAke3VybH0vZGF0YS1zb3VyY2VzL3ZhbHVlc2ApLCB7XG4gICAgICAgICAgYXR0cmlidXRlczogKGF0dHJpYnV0ZXMgPz8gW10pLm1hcCgoYXR0cikgPT4gKHsgZGF0YXNvdXJjZTogYXR0ci5kYXRhc291cmNlLCBhdHRyaWJ1dGU6IGF0dHIuaWQgfSkpLFxuICAgICAgICAgIHZhbHVlOiBzZWFyY2gsXG4gICAgICAgICAgbGltaXRcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9zdG9yZS9zZWFyY2gvc2VhcmNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQU9sRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQVEzRSxNQUFNLE9BQU8sYUFBYTtJQU14QixZQUNVLFVBQXNCLEVBQ3RCLEtBQXVDO1FBRHZDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBa0M7UUFQakQsb0JBQWUsR0FBOEIsRUFBRSxDQUFDO1FBQ2hELFlBQU8sR0FBOEMsRUFBRSxDQUFDO1FBQ3hELFdBQU0sR0FBNEIsRUFBRSxDQUFDO1FBQ3JDLGdCQUFXLEdBQWlCLEVBQUUsQ0FBQztRQU03QixL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QUUsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25HLEtBQUssRUFBRSxNQUFNO1lBQ2IsS0FBSztTQUNOLENBQUMsQ0FDSCxDQUNGLENBQUM7SUFDSixDQUFDOzhHQXpLVSxhQUFhO2tIQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBtZXJnZU1hcCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFrZSwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhc2hib2FyZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9zdG9yZS9kYXNoYm9hcmQuc2VsZWN0b3JzJztcbmltcG9ydCB7IEZpbHRlckNvbnRleHQgfSBmcm9tICcuLi8uLi9tb2RlbC9maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdE9yZGVyIH0gZnJvbSAnLi4vLi4vbW9kZWwvcmVzdWx0LW9yZGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXN1bHRTZXQgfSBmcm9tICcuLi8uLi9tb2RlbC9yZXN1bHQtc2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2VhcmNoLW1vbm8tY2xhc3MubW9kZWwnO1xuaW1wb3J0IHsgRnVsbFRleHRTZWFyY2hQYXlsb2FkLCBNdWx0aUNsYXNzU2VhcmNoUGF5bG9hZCB9IGZyb20gJy4uLy4uL21vZGVsL3NlYXJjaC1tdWx0aS1jbGFzcy5tb2RlbCc7XG5pbXBvcnQgeyBDb25maWdTdGF0ZSB9IGZyb20gJy4uL2NvbmZpZy9jb25maWcucmVkdWNlcic7XG5pbXBvcnQgeyBDb25maWdTZWxlY3RvcnMgfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBERUZBVUxUX05BTUVEX1FVRVJZX0lEIH0gZnJvbSAnLi9zZWFyY2guY29uc3RhbnRzJztcbmltcG9ydCB7IFNlYXJjaFN0YXRlIH0gZnJvbSAnLi9zZWFyY2gucmVkdWNlcic7XG5pbXBvcnQgeyBGaWx0ZXJQYXJhbUVuY29kZXIgfSBmcm9tICcuL2ZpbHRlci1wYXJhbS1lbmNvZGVyJztcbmltcG9ydCB7IERhdGVVdGlscyB9IGZyb20gJy4uLy4uLy4uL2Rhc2hib2FyZC9kYXRlLXV0aWxzJztcbmltcG9ydCB7IE5hbWVkUXVlcnlUeXBlcyB9IGZyb20gJy4uL2RhdGEtc291cmNlL25hbWVkLXF1ZXJ5LXR5cGVzLm1vZGVsJztcbmltcG9ydCB7IERhdGFTb3VyY2VTZWxlY3RvcnMgfSBmcm9tICcuLi9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJy4uL2RhdGEtc291cmNlL2RhdGEtc291cmNlLm1vZGVsJztcblxuZXhwb3J0IHR5cGUgUmVzdWx0c2V0VHJhbnNmb3JtYXRpb24gPSAoaWQ6IHN0cmluZywgcmVzdWx0OiBSZXN1bHRTZXQpID0+IFJlc3VsdFNldDtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoU2VydmljZSB7XG4gIHRyYW5zZm9ybWF0aW9uczogUmVzdWx0c2V0VHJhbnNmb3JtYXRpb25bXSA9IFtdO1xuICBmaWx0ZXJzOiB7IFtkYXRhc291cmNlOiBzdHJpbmddOiBGaWx0ZXJDb250ZXh0W10gfSA9IHt9O1xuICBsaW1pdHM6IHsgW3A6IHN0cmluZ106IG51bWJlciB9ID0ge307XG4gIGRhdGFzb3VyY2VzOiBEYXRhU291cmNlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8Q29uZmlnU3RhdGUgfCBTZWFyY2hTdGF0ZT5cbiAgKSB7XG4gICAgc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5kYXRhc291cmNlRmlsdGVycykuc3Vic2NyaWJlKChmaWx0ZXJzKSA9PiB7XG4gICAgICB0aGlzLmZpbHRlcnMgPSBmaWx0ZXJzO1xuICAgIH0pO1xuICAgIHN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMubGltaXRzKS5zdWJzY3JpYmUoKGxpbWl0cykgPT4ge1xuICAgICAgdGhpcy5saW1pdHMgPSBsaW1pdHM7XG4gICAgfSk7XG4gICAgc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0RGF0YVNvdXJjZXMpLnN1YnNjcmliZSgoZGF0YXNvdXJjZXMpID0+IHtcbiAgICAgIHRoaXMuZGF0YXNvdXJjZXMgPSBkYXRhc291cmNlcztcbiAgICB9KTtcbiAgfVxuXG4gIGdldEl0ZW1zKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcXVpY2tPcmRlcj86IFJlc3VsdE9yZGVyLFxuICAgIGV4Y2x1ZGVHZW8/OiBib29sZWFuLFxuICAgIHNlYXJjaEFmdGVyPzogc3RyaW5nLFxuICAgIGxpbmtlZEl0ZW1zOiAoJ2Rlc3RpbmF0aW9uJyB8ICdzb3VyY2UnKVtdID0gW11cbiAgKTogT2JzZXJ2YWJsZTxSZXN1bHRTZXQ+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmdldEl0ZW1zRmlsdGVyKGlkLCB0aGlzLmdldE9yZGVyKHF1aWNrT3JkZXIpKTtcbiAgICBpZiAoIWlkKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ05vdCBzZW5kaW5nIGl0ZW1zIHJlcXVlc3Qgd2l0aCBubyBkYXRhc291cmNlIGF0dGFjaGVkLicpO1xuICAgICAgcmV0dXJuIG9mKHsgaXRlbXM6IHt9LCByZWxhdGlvbnM6IFtdIH0gYXMgUmVzdWx0U2V0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmRhdGFVcmwpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgodXJsKSA9PiB7XG4gICAgICAgIGNvbnN0IGRzID0gdGhpcy5kYXRhc291cmNlcy5maW5kKChkKSA9PiBkLmlkID09PSBpZCk7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxSZXN1bHRTZXQ+KFxuICAgICAgICAgIGVuY29kZVVSSShgJHt1cmx9L2RhdGEtc291cmNlcy9pZC8ke2lkfS9pdGVtc2ApLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IGRzPy5zb3VyY2VUeXBlID09PSAnbmFtZWRRdWVyeScgPyBkcy5yZXF1ZXN0LnR5cGUgOiBOYW1lZFF1ZXJ5VHlwZXMuTU9OT19DTEFTUyxcbiAgICAgICAgICAgIGV4Y2x1ZGVHZW86IGV4Y2x1ZGVHZW8gPz8gZmFsc2UsXG4gICAgICAgICAgICBzZWFyY2hBZnRlcjogc2VhcmNoQWZ0ZXIgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgICAgbGlua2VkSXRlbXMsXG4gICAgICAgICAgICBsaW1pdDogdGhpcy5saW1pdHNbaWRdIHx8IHRoaXMubGltaXRzWydkZWZhdWx0J11cbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgcGFyYW1zIH1cbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKChycykgPT4gdGhpcy5hcHBseVRyYW5zZm9ybWF0aW9ucyhpZCwgcnMpKVxuICAgICk7XG4gIH1cblxuICBnZXRJdGVtc1NlcmlhbGl6ZWRQYXJhbXMoaWQ6IHN0cmluZywgcXVpY2tPcmRlcjogeyBbaWQ6IHN0cmluZ106IFJlc3VsdE9yZGVyIHwgdW5kZWZpbmVkIH0gPSB7fSk6IHN0cmluZyB7XG4gICAgcmV0dXJuICd8JyArIHRoaXMuZ2V0SXRlbXNGaWx0ZXIoaWQsIHRoaXMuZ2V0T3JkZXIocXVpY2tPcmRlcltpZF0pKS50b1N0cmluZygpICsgJ3wnO1xuICB9XG5cbiAgZ2V0SXRlbXNGaWx0ZXIoaWQ6IHN0cmluZywgY3VtdWxhdGl2ZT86IEh0dHBQYXJhbXMpOiBIdHRwUGFyYW1zIHtcbiAgICBsZXQgcGFyYW1zID0gY3VtdWxhdGl2ZSA/PyBuZXcgSHR0cFBhcmFtcyh7IGVuY29kZXI6IG5ldyBGaWx0ZXJQYXJhbUVuY29kZXIoKSB9KTtcbiAgICBpZiAodGhpcy5maWx0ZXJzW2lkXSkge1xuICAgICAgdGhpcy5maWx0ZXJzW2lkXVxuICAgICAgICAuZmlsdGVyKChmaWx0ZXIpID0+IGZpbHRlci52YWx1ZSAhPT0gbnVsbCAmJiBmaWx0ZXIudmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgLmZvckVhY2goKGZpbHRlcikgPT4ge1xuICAgICAgICAgIGxldCB2YWx1ZXNUb0FkZFRvUGFyYW1zID0gZmlsdGVyLnZhbHVlO1xuICAgICAgICAgIC8vIElOU0lERSBhbmQgT1VUU0lERSBvcGVyYXRvcnMgdXNlcyAyIHZhbHVlcyBidXQgbm90IHNlbnQgaW4gYW4gYXJyYXksIHZhbHVlcyBhcmUgc2VwYXJhdGVkIGJ5IGEgY29tYVxuICAgICAgICAgIC8vIHdpY2ggbXVzdCBub3QgYmUgZW5jb2RlZCAoYXMgaWYgdmFsdWVzIHdlcmUgaW4gYW4gYXJyYXkpXG4gICAgICAgICAgY29uc3QgaXNNdWx0aVZhbHVlZCA9IFsnSU5TSURFJywgJ09VVFNJREUnXS5maW5kKCh2YWwpID0+IHZhbCA9PT0gZmlsdGVyLm9wZXJhdG9yKSAhPT0gdW5kZWZpbmVkO1xuICAgICAgICAgIGlmIChpc011bHRpVmFsdWVkKSB7XG4gICAgICAgICAgICB2YWx1ZXNUb0FkZFRvUGFyYW1zID0gKGZpbHRlci52YWx1ZSBhcyBzdHJpbmcpLnNwbGl0KCcsJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGRhdGUgZmlsdGVyIHZhbHVlIG11c3QgYmUgc2VuZCBpbiBJU08tODYwMSBmb3JtYXRcbiAgICAgICAgICBpZiAoZmlsdGVyLnR5cGUgPT09ICdkYXRlJykge1xuICAgICAgICAgICAgdmFsdWVzVG9BZGRUb1BhcmFtcyA9IGlzTXVsdGlWYWx1ZWRcbiAgICAgICAgICAgICAgPyAodmFsdWVzVG9BZGRUb1BhcmFtcyBhcyBzdHJpbmdbXSkubWFwKCh2YWx1ZSkgPT4gRGF0ZVV0aWxzLnBhcnNlVG9Jc29TdHJpbmcodmFsdWUpKVxuICAgICAgICAgICAgICA6IERhdGVVdGlscy5wYXJzZVRvSXNvU3RyaW5nKHZhbHVlc1RvQWRkVG9QYXJhbXMgYXMgc3RyaW5nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbHVlc1RvQWRkVG9QYXJhbXMpXG4gICAgICAgICAgICA/IHZhbHVlc1RvQWRkVG9QYXJhbXMubWFwKCh2KSA9PiBlbmNvZGVVUklDb21wb25lbnQodi50b1N0cmluZygpLnNwbGl0KCcsJykuam9pbignXFxcXCwnKSkpLmpvaW4oJywnKVxuICAgICAgICAgICAgOiBlbmNvZGVVUklDb21wb25lbnQodmFsdWVzVG9BZGRUb1BhcmFtcyEudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csICdcXFxcLCcpKTtcbiAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdmaWx0ZXInLCBgJHtmaWx0ZXIuYXR0cmlidXRlfSwke2ZpbHRlci5vcGVyYXRvcn0sJHt2YWx1ZX1gKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICBnZXRPcmRlcihxdWlja09yZGVyOiBSZXN1bHRPcmRlciB8IHVuZGVmaW5lZCk6IEh0dHBQYXJhbXMge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7IGVuY29kZXI6IG5ldyBGaWx0ZXJQYXJhbUVuY29kZXIoKSB9KTtcbiAgICBpZiAocXVpY2tPcmRlcikge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnb3JkZXInLCBgJHtxdWlja09yZGVyLmF0dHJpYnV0ZX0sJHtxdWlja09yZGVyLmFzYyA/PyAnJ31gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnb3JkZXInLCAndHJ1ZSxhc2MnKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBMYXVuY2ggYSBzZWFyY2ggcmVxdWVzdCAoYW5kIHNhdmVzIGl0IGFzIGN1cnJlbnQgc2VhcmNoKVxuICAgKiBAcGFyYW0gY29uZGl0aW9uXG4gICAqL1xuICBzZWFyY2goXG4gICAgY29uZGl0aW9uOiBNb25vQ2xhc3NTZWFyY2hQYXlsb2FkIHwgTXVsdGlDbGFzc1NlYXJjaFBheWxvYWQgfCBGdWxsVGV4dFNlYXJjaFBheWxvYWQsXG4gICAgaWQ/OiBzdHJpbmcsXG4gICAgd2l0aExpbmtlZEl0ZW1zOiAoJ2Rlc3RpbmF0aW9uJyB8ICdzb3VyY2UnKVtdID0gW11cbiAgKTogT2JzZXJ2YWJsZTxSZXN1bHRTZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmRhdGFVcmwpLnBpcGUoXG4gICAgICBmaWx0ZXIoKHVybCkgPT4gISF1cmwpLFxuICAgICAgdGFrZSgxKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5xdWlja09yZGVyKSwgdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmxpbWl0cykpLFxuICAgICAgbWVyZ2VNYXAoKFt1cmwsIHF1aWNrT3JkZXIsIGxpbWl0c10pID0+IHtcbiAgICAgICAgY29uc3QgcGFyYW1zID0ge30gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICAgICAgaWYgKHF1aWNrT3JkZXJbREVGQVVMVF9OQU1FRF9RVUVSWV9JRF0pIHtcbiAgICAgICAgICBwYXJhbXNbJ29yZGVyJ10gPSBgJHtxdWlja09yZGVyW0RFRkFVTFRfTkFNRURfUVVFUllfSURdPy5hdHRyaWJ1dGV9LCR7XG4gICAgICAgICAgICBxdWlja09yZGVyW0RFRkFVTFRfTkFNRURfUVVFUllfSURdPy5hc2MgPz8gJydcbiAgICAgICAgICB9YDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvdGhlclBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgICAgICBpZiAod2l0aExpbmtlZEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAod2l0aExpbmtlZEl0ZW1zLmluY2x1ZGVzKCdkZXN0aW5hdGlvbicpKSB7XG4gICAgICAgICAgICBvdGhlclBhcmFtc1snd2l0aERlc3RpbmF0aW9uSXRlbXMnXSA9ICd0cnVlJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHdpdGhMaW5rZWRJdGVtcy5pbmNsdWRlcygnc291cmNlJykpIHtcbiAgICAgICAgICAgIG90aGVyUGFyYW1zWyd3aXRoU291cmNlSXRlbXMnXSA9ICd0cnVlJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgX2NvbmRpdGlvbiA9IHsgLi4uY29uZGl0aW9uLCBsaW1pdDogbGltaXRzW0RFRkFVTFRfTkFNRURfUVVFUllfSURdID8/IGxpbWl0c1snZGVmYXVsdCddLCAuLi5vdGhlclBhcmFtcyB9O1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3Q8UmVzdWx0U2V0PihlbmNvZGVVUkkoYCR7dXJsfS9pdGVtcy9zZWFyY2hgKSwgX2NvbmRpdGlvbiwgeyBwYXJhbXMgfSk7XG4gICAgICB9KSxcbiAgICAgIG1hcCgocnMpID0+IHRoaXMuYXBwbHlUcmFuc2Zvcm1hdGlvbnMoaWQgPz8gREVGQVVMVF9OQU1FRF9RVUVSWV9JRCwgcnMpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3dzIHRvIGFkZCBhIHRyYW5zZm9ybWF0aW9uIGZ1bmN0aW9uIHdoZW4gZ2V0dGluZyByZXN1bHRzIGZyb20gYmFja2VuZFxuICAgKiBAcGFyYW0gZnVuY1xuICAgKi9cbiAgYWRkVHJhbnNmb3JtYXRpb24oZnVuYzogUmVzdWx0c2V0VHJhbnNmb3JtYXRpb24pIHtcbiAgICB0aGlzLnRyYW5zZm9ybWF0aW9ucy5wdXNoKGZ1bmMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGx5IGFsbCB0cmFuc2Zvcm1hdGlvbiBmdW5jdGlvbnNcbiAgICogQHBhcmFtIGlkXG4gICAqIEBwYXJhbSByc1xuICAgKi9cbiAgYXBwbHlUcmFuc2Zvcm1hdGlvbnMoaWQ6IHN0cmluZywgcnM6IFJlc3VsdFNldCkge1xuICAgIGxldCB0cmFuc2Zvcm1lZCA9IHJzO1xuICAgIHRoaXMudHJhbnNmb3JtYXRpb25zLmZvckVhY2goKGZ1bmMpID0+ICh0cmFuc2Zvcm1lZCA9IGZ1bmMoaWQsIHRyYW5zZm9ybWVkKSkpO1xuICAgIHJldHVybiB0cmFuc2Zvcm1lZDtcbiAgfVxuXG4gIGF1dG9jb21wbGV0ZShcbiAgICBhdHRyaWJ1dGVzOlxuICAgICAgfCB7XG4gICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgICBkYXRhc291cmNlOiBzdHJpbmc7XG4gICAgICAgIH1bXVxuICAgICAgfCB1bmRlZmluZWQsXG4gICAgc2VhcmNoOiBzdHJpbmcgPSAnJyxcbiAgICBsaW1pdD86IG51bWJlclxuICApIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLmRhdGFVcmwpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHVybCkgPT5cbiAgICAgICAgdGhpcy5odHRwQ2xpZW50LnBvc3Q8c3RyaW5nW10+KGVuY29kZVVSSShgJHt1cmx9L2RhdGEtc291cmNlcy92YWx1ZXNgKSwge1xuICAgICAgICAgIGF0dHJpYnV0ZXM6IChhdHRyaWJ1dGVzID8/IFtdKS5tYXAoKGF0dHIpID0+ICh7IGRhdGFzb3VyY2U6IGF0dHIuZGF0YXNvdXJjZSwgYXR0cmlidXRlOiBhdHRyLmlkIH0pKSxcbiAgICAgICAgICB2YWx1ZTogc2VhcmNoLFxuICAgICAgICAgIGxpbWl0XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { createEffect } from '@ngrx/effects';
|
|
3
|
-
import { filter, tap } from 'rxjs
|
|
3
|
+
import { filter, tap } from 'rxjs';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@ngrx/effects";
|
|
6
6
|
import * as i2 from "@ngrx/store";
|
|
@@ -20,4 +20,4 @@ export class ActionBusEffects {
|
|
|
20
20
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ActionBusEffects, decorators: [{
|
|
21
21
|
type: Injectable
|
|
22
22
|
}], ctorParameters: () => [{ type: i1.Actions }, { type: i2.Store }, { type: i3.BusService }] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ1cy5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9hY3Rpb24tYnVzL2VmZmVjdC9hY3Rpb24tYnVzLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQUluQyxNQUFNLE9BQU8sZ0JBQWdCO0lBVzNCLFlBQ1UsUUFBaUIsRUFDakIsS0FBaUIsRUFDakIsVUFBc0I7UUFGdEIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFiaEMsa0JBQWEsR0FBRyxZQUFZLENBQzFCLEdBQUcsRUFBRSxDQUNILElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTtRQUNoQixvSEFBb0g7UUFDcEgsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUNqRCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQ2xELEVBQ0gsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQ3BCLENBQUM7SUFNQyxDQUFDOzhHQWZPLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0IH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IGZpbHRlciwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCdXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9idXMuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBY3Rpb25CdXNFZmZlY3RzIHtcbiAgZm9yd2FyZE9uQnVzJCA9IGNyZWF0ZUVmZmVjdChcbiAgICAoKSA9PlxuICAgICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgICAvLyBGb3IgYWN0aW9ucyB3aXRoIHR5cGUgY29udGFpbmluZyBcIihidXMpXCIsIGF1dG9tYXRpY2FsbHkgdHJhbnNmZXIgaXQgb24gdGhlIGRhdGEtYnVzIHRvIHByb3BhZ2F0ZSB0byBvdGhlciB3aW5kb3dzXG4gICAgICAgIGZpbHRlcigoYWN0aW9uKSA9PiBhY3Rpb24udHlwZS5pbmNsdWRlcygnKGJ1cyknKSksXG4gICAgICAgIHRhcCgoYWN0aW9uKSA9PiB0aGlzLmJ1c1NlcnZpY2UucG9zdERhdGEoYWN0aW9uKSlcbiAgICAgICksXG4gICAgeyBkaXNwYXRjaDogZmFsc2UgfVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIGJ1c1NlcnZpY2U6IEJ1c1NlcnZpY2VcbiAgKSB7fVxufVxuIl19
|
|
@@ -2,7 +2,7 @@ import { OverlayConfig } from '@angular/cdk/overlay';
|
|
|
2
2
|
import { TemplatePortal } from '@angular/cdk/portal';
|
|
3
3
|
import { Component, TemplateRef, ViewChild } from '@angular/core';
|
|
4
4
|
import { combineLatest, map } from 'rxjs';
|
|
5
|
-
import { withLatestFrom } from 'rxjs
|
|
5
|
+
import { withLatestFrom } from 'rxjs';
|
|
6
6
|
import { ConfigActions } from '../../../core/store/config/config.actions';
|
|
7
7
|
import { ContextMenuActions } from '../../../core/store/context-menu/context-menu.actions';
|
|
8
8
|
import { ContextMenuSelectors } from '../../../core/store/context-menu/context-menu.selectors';
|
|
@@ -130,4 +130,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
130
130
|
type: ViewChild,
|
|
131
131
|
args: ['detailTemplate', { read: TemplateRef }]
|
|
132
132
|
}] } });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7OztBQU94RSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsd0JBQXdCO0lBd0JoRSxZQUNV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SSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdGLENBQUM7OEdBdklVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHlJQWFBLFdBQVcsMkdBRUwsV0FBVyxvRENqQ2xELGkyR0FtRkE7OzJGRGpFYSxvQkFBb0I7a0JBSmhDLFNBQVM7K0JBQ0Usa0JBQWtCO2tLQWdCa0IsUUFBUTtzQkFBckQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUVRLGNBQWM7c0JBQWpFLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbmZpZ0FjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3N0b3JlL2NvbmZpZy9jb25maWcuYWN0aW9ucyc7XG5pbXBvcnQgeyBDb250ZXh0TWVudUFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3N0b3JlL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuYWN0aW9ucyc7XG5pbXBvcnQgeyBDb250ZXh0TWVudVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc3RvcmUvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL2Rhc2hib2FyZC5hY3Rpb25zJztcbmltcG9ydCB7IERhc2hib2FyZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uL3N0b3JlL2Rhc2hib2FyZC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vc3Vic2NyaXB0aW9ubmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBXaWRnZXRGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uL3dpZGdldHMvd2lkZ2V0LWluc3RhbmNpYXRvci93aWRnZXQtZmFjdG9yeS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWNvbnRleHQtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENvbnRleHRNZW51Q29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgYWxsb3dPYmplY3RDcmVhdGlvbiQ6IE9ic2VydmFibGU8Ym9vbGVhbiB8IHVuZGVmaW5lZD47XG4gIG9wZW5lZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHBvc2l0aW9uJDogT2JzZXJ2YWJsZTx7IGNsaWVudFg6IG51bWJlcjsgY2xpZW50WTogbnVtYmVyIH0+O1xuICBpdGVtSWQkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIGl0ZW1JZD86IHN0cmluZztcbiAgaXNTZWxlY3RlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHJlc3VsdFNldDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBzZWxlY3RlZElkcyQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuICBzZWxlY3RlZEl0ZW1zSWRzPzogc3RyaW5nW107XG4gIGZyb20/OiBzdHJpbmc7XG4gIGNvb3JkaW5hdGVzPzogbnVtYmVyW107XG4gIHByaXZhdGUgb3ZlcmxheVJlZj86IE92ZXJsYXlSZWY7XG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIHByaXZhdGUgb3ZlcmxheURldGFpbFJlZj86IE92ZXJsYXlSZWY7XG4gIEBWaWV3Q2hpbGQoJ2RldGFpbFRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBkZXRhaWxUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIGRldGFpbE1hbmlmZXN0ID0ge1xuICAgIHR5cGU6ICdkZXRhaWwnLFxuICAgIGhlYWRlcjogZmFsc2UsXG4gICAgbGF5b3V0OiB7IHg6IDEsIHk6IDEsIHdpZHRoOiAxLCBoZWlnaHQ6IDEgfSxcbiAgICBvcHRpb25zOiB7IGl0ZW1JZHM6IFtdIGFzIHN0cmluZ1tdIH1cbiAgfTtcbiAgaXNNb2R1bGVMb2FkZWQ6IHsgW3R5cGU6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHVibGljIHdpZGdldEZhY3RvcnlTZXJ2aWNlOiBXaWRnZXRGYWN0b3J5U2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWxsb3dPYmplY3RDcmVhdGlvbiQgPSB0aGlzLnN0b3JlLnNlbGVjdChDb250ZXh0TWVudVNlbGVjdG9ycy5hbGxvd09iamVjdENyZWF0aW9uKTtcbiAgICB0aGlzLm9wZW5lZCQgPSB0aGlzLnN0b3JlLnNlbGVjdChDb250ZXh0TWVudVNlbGVjdG9ycy5vcGVuZWQpO1xuICAgIHRoaXMucG9zaXRpb24kID0gdGhpcy5zdG9yZS5zZWxlY3QoQ29udGV4dE1lbnVTZWxlY3RvcnMucG9zaXRpb24pO1xuICAgIHRoaXMuaXRlbUlkJCA9IHRoaXMuc3RvcmUuc2VsZWN0KENvbnRleHRNZW51U2VsZWN0b3JzLml0ZW1JZCk7XG4gICAgdGhpcy5zZWxlY3RlZElkcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuc2VsZWN0ZWRJdGVtSWRzKTtcbiAgICB0aGlzLmlzU2VsZWN0ZWQkID0gY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3RlZElkcyQsIHRoaXMuaXRlbUlkJF0pLnBpcGUoXG4gICAgICBtYXAoKFtpdGVtSWRzLCBpdGVtSWRdKSA9PiBpdGVtSWRzLmluY2x1ZGVzKGl0ZW1JZCkpXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5zdG9yZS5zZWxlY3QoQ29udGV4dE1lbnVTZWxlY3RvcnMuZnJvbSkuc3Vic2NyaWJlKChmcm9tKSA9PiAodGhpcy5mcm9tID0gZnJvbSkpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoQ29udGV4dE1lbnVTZWxlY3RvcnMuY29vcmRpbmF0ZXMpLnN1YnNjcmliZSgoY29vcmRpbmF0ZXMpID0+ICh0aGlzLmNvb3JkaW5hdGVzID0gY29vcmRpbmF0ZXMpKVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLml0ZW1JZCQuc3Vic2NyaWJlKChpdGVtSWQpID0+ICh0aGlzLml0ZW1JZCA9IGl0ZW1JZCkpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuc2VsZWN0ZWRJZHMkLnN1YnNjcmliZSgoaXRlbUlkcykgPT4gKHRoaXMuc2VsZWN0ZWRJdGVtc0lkcyA9IGl0ZW1JZHMpKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KENvbnRleHRNZW51U2VsZWN0b3JzLnJlc3VsdFNldCkuc3Vic2NyaWJlKChyZXN1bHRTZXQpID0+ICh0aGlzLnJlc3VsdFNldCA9IHJlc3VsdFNldCkpXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLm9wZW5lZCQucGlwZSh3aXRoTGF0ZXN0RnJvbSh0aGlzLnBvc2l0aW9uJCkpLnN1YnNjcmliZSgoW29wZW5lZCwgcG9zaXRpb25dKSA9PiB7XG4gICAgICAgIGlmIChvcGVuZWQpIHtcbiAgICAgICAgICB0aGlzLm9wZW5XaXRoVGVtcGxhdGUocG9zaXRpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy53aWRnZXRGYWN0b3J5U2VydmljZS5pc01vZHVsZUxvYWRlZCgnZGV0YWlsJykuc3Vic2NyaWJlKChsb2FkZWQpID0+ICh0aGlzLmlzTW9kdWxlTG9hZGVkWydkZXRhaWwnXSA9IGxvYWRlZCkpO1xuICAgIHRoaXMud2lkZ2V0RmFjdG9yeVNlcnZpY2UuaXNNb2R1bGVMb2FkZWQoJ2dyYXBoJykuc3Vic2NyaWJlKChsb2FkZWQpID0+ICh0aGlzLmlzTW9kdWxlTG9hZGVkWydncmFwaCddID0gbG9hZGVkKSk7XG4gIH1cblxuICBvcGVuV2l0aFRlbXBsYXRlKHBvc2l0aW9uOiBhbnkpIHtcbiAgICBpZiAodGhpcy5mcm9tICE9PSAnbWFwJykge1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnbS1jb250ZXh0LW1lbnUnXSxcbiAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgfSkpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5oaWRlKCkpO1xuICAgICAgY29uc3QgY29udGV4dE1lbnUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXYubS1jb250ZXh0LW1lbnUnKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGlmICghIWNvbnRleHRNZW51KSB7XG4gICAgICAgIGNvbnRleHRNZW51LnN0eWxlLmxlZnQgPVxuICAgICAgICAgIE1hdGgubWF4KDAsIE1hdGgubWluKHdpbmRvdy5pbm5lcldpZHRoIC0gY29udGV4dE1lbnUuY2xpZW50V2lkdGgsIHBvc2l0aW9uLmNsaWVudFggLSAxMCkpICsgJ3B4JztcbiAgICAgICAgY29udGV4dE1lbnUuc3R5bGUudG9wID1cbiAgICAgICAgICBNYXRoLm1heCgwLCBNYXRoLm1pbih3aW5kb3cuaW5uZXJIZWlnaHQgLSBjb250ZXh0TWVudS5jbGllbnRIZWlnaHQsIHBvc2l0aW9uLmNsaWVudFkgLSAxMCkpICsgJ3B4JztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgaGlkZSgpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbnRleHRNZW51QWN0aW9ucy5oaWRlKCkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5jbG9zZU92ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIH0pKTtcbiAgfVxuXG4gIHNlbGVjdGlvbkFkZE9yUmVtb3ZlKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3QoeyBpZDogdGhpcy5pdGVtSWQgPz8gJycsIGN1bXVsYXRpdmU6IHRydWUgfSkpO1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgZXhwbG9yZSgpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuZXhwbG9yZSh7IGlkOiB0aGlzLml0ZW1JZCA/PyAnJyB9KSk7XG4gICAgdGhpcy5oaWRlKCk7XG4gIH1cblxuICBwcm94aW1pdHkoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnByb3hpbWl0eSh7IGlkOiB0aGlzLml0ZW1JZCA/PyAnJywgdGFyZ2V0UmVzdWx0U2V0OiB0aGlzLnJlc3VsdFNldCA/PyAnJyB9KSk7XG4gICAgdGhpcy5oaWRlKCk7XG4gIH1cblxuICBkZXRhaWwoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLmRldGFpbCh7IGlkczogW3RoaXMuaXRlbUlkID8/ICcnXSB9KSk7XG4gICAgdGhpcy5oaWRlKCk7XG4gIH1cblxuICBzZWxlY3Rpb25JbnZlcnQoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLmludmVydFNlbGVjdGlvbigpKTtcbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIGZseWluZ0RldGFpbCgpIHtcbiAgICB0aGlzLmRldGFpbE1hbmlmZXN0Lm9wdGlvbnMuaXRlbUlkcyA9IFt0aGlzLml0ZW1JZCA/PyAnJ107XG4gICAgdGhpcy5vdmVybGF5RGV0YWlsUmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIHBhbmVsQ2xhc3M6IFsnby1zZXR0aW5nc19fcG9wdXAnXSxcbiAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJ1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMub3ZlcmxheURldGFpbFJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuZGV0YWlsVGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSArICctZGV0YWlsJyB9KSk7XG4gICAgdGhpcy5vdmVybGF5RGV0YWlsUmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5oaWRlRGV0YWlsKCkpO1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgaGlkZURldGFpbCgpIHtcbiAgICB0aGlzLm92ZXJsYXlEZXRhaWxSZWY/LmRpc3Bvc2UoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSArICctZGV0YWlsJyB9KSk7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDx1bCBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0XCI+XG4gICAgQGlmICghIWl0ZW1JZCkge1xuICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biAtbGluay1saWtlXCIgKGNsaWNrKT1cInNlbGVjdGlvbkFkZE9yUmVtb3ZlKClcIj5cbiAgICAgICAgICB7eyAoKGlzU2VsZWN0ZWQkIHwgYXN5bmMpID8gJ0BwcnkuY29udGV4dC5yZW1vdmUnIDogJ0BwcnkuY29udGV4dC5hZGQnKSB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biAtbGluay1saWtlXCIgKGNsaWNrKT1cInNlbGVjdGlvbkludmVydCgpXCI+XG4gICAgICAgICAge3sgJ0BwcnkuY29udGV4dC5pbnZlcnQnIHwgaTE4biB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgICBAaWYgKCEhcmVzdWx0U2V0KSB7XG4gICAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCI+XG4gICAgICAgICAgQGlmICghIXJlc3VsdFNldCkge1xuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biAtbGluay1saWtlXCIgKGNsaWNrKT1cInByb3hpbWl0eSgpXCI+XG4gICAgICAgICAgICAgIHt7ICdAcHJ5LmNvbnRleHQucHJveGltaXR5JyB8IGkxOG4gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICAgIEBpZiAoaXNNb2R1bGVMb2FkZWRbJ2dyYXBoJ10pIHtcbiAgICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIC1saW5rLWxpa2VcIiAoY2xpY2spPVwiZXhwbG9yZSgpXCI+XG4gICAgICAgICAgICB7eyAnQHByeS5jb250ZXh0LmV4cGxvcmUnIHwgaTE4biB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgICAgfVxuICAgICAgQGlmIChpc01vZHVsZUxvYWRlZFsnZGV0YWlsJ10pIHtcbiAgICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIC1saW5rLWxpa2VcIiAoY2xpY2spPVwiZGV0YWlsKClcIj5cbiAgICAgICAgICAgIHt7ICdAcHJ5LmNvbnRleHQuZGV0YWlsJyB8IGkxOG4gfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIC1saW5rLWxpa2VcIiAoY2xpY2spPVwiZmx5aW5nRGV0YWlsKClcIj5cbiAgICAgICAgICAgIHt7ICdAcHJ5LmNvbnRleHQuZmx5aW5nRGV0YWlsJyB8IGkxOG4gfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICAgIDxuZy1jb250YWluZXIgKnByeUFjY2Vzcz1cInsgbW9kdWxlOiAnZGFzaGJvYXJkJywgcGFnZTogJ2Rhc2hib2FyZCcsIGFjdGlvbjogJ2VkaXRfb2JqZWN0JyB9XCI+XG4gICAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCI+XG4gICAgICAgICAgQGlmICgoc2VsZWN0ZWRJdGVtc0lkcz8ubGVuZ3RoID8/IDApID4gMCkge1xuICAgICAgICAgICAgPHByeS1vYmplY3QtY3JlYXRpb25cbiAgICAgICAgICAgICAgKGNsb3NlZCk9XCJoaWRlKClcIlxuICAgICAgICAgICAgICBbbGlua109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW29iamVjdF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgIFttZW51XT1cInRydWVcIlxuICAgICAgICAgICAgPjwvcHJ5LW9iamVjdC1jcmVhdGlvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChhbGxvd09iamVjdENyZWF0aW9uJCB8IGFzeW5jKSB7XG4gICAgICAgICAgICA8cHJ5LW9iamVjdC1jcmVhdGlvbiAoY2xvc2VkKT1cImhpZGUoKVwiIFtsaW5rXT1cInRydWVcIiBbb2JqZWN0XT1cInRydWVcIiBbbWVudV09XCJ0cnVlXCI+PC9wcnktb2JqZWN0LWNyZWF0aW9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9saT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICA8bmctY29udGFpbmVyICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2Rhc2hib2FyZCcsIHBhZ2U6ICdkYXNoYm9hcmQnLCBhY3Rpb246ICdlZGl0X29iamVjdCcgfVwiPlxuICAgICAgQGlmIChhbGxvd09iamVjdENyZWF0aW9uJHwgYXN5bmMpIHtcbiAgICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIj5cbiAgICAgICAgICA8cHJ5LW9iamVjdC1jcmVhdGlvbiAoY2xvc2VkKT1cImhpZGUoKVwiIFtvYmplY3RdPVwidHJ1ZVwiIFttZW51XT1cInRydWVcIj48L3ByeS1vYmplY3QtY3JlYXRpb24+XG4gICAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvdWw+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkZXRhaWxUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cIm8tc2V0dGluZ3NfX3BvcHVwX19oZWFkZXJcIj5cbiAgICA8aDIgY2xhc3M9XCJhLWgyXCI+e3sgJ0BwcnkuY29udGV4dC5mbHlpbmdEZXRhaWwnIHwgaTE4biB9fTwvaDI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImhpZGVEZXRhaWwoKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seSAtY2xvc2VcIj5cbiAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIj48L3ByeS1pY29uPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LmFjdGlvbi5jbG9zZScgfCBpMThuIH19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm8tc2V0dGluZ3NfX3BvcHVwX19jb250ZW50XCI+XG4gICAgPHByeS13aWRnZXQtaW5zdGFuY2lhdG9yIFtzdGF0aWNNYW5pZmVzdF09XCJkZXRhaWxNYW5pZmVzdFwiPjwvcHJ5LXdpZGdldC1pbnN0YW5jaWF0b3I+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiby1zZXR0aW5nc19fcG9wdXBfX2Zvb3RlclwiPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImhpZGVEZXRhaWwoKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIj5cbiAgICAgIHt7ICdAcHJ5LmFjdGlvbi5jbG9zZScgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7Ozs7QUFPeEUsTUFBTSxPQUFPLG9CQUFxQixTQUFRLHdCQUF3QjtJQXdCaEUsWUFDVSxL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Q0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDOzhHQXZJVSxvQkFBb0I7a0dBQXBCLG9CQUFvQix5SUFhQSxXQUFXLDJHQUVMLFdBQVcsb0RDakNsRCxpMkdBbUZBOzsyRkRqRWEsb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLGtCQUFrQjtrS0FnQmtCLFFBQVE7c0JBQXJELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFFUSxjQUFjO3NCQUFqRSxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbmZpZ0FjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3N0b3JlL2NvbmZpZy9jb25maWcuYWN0aW9ucyc7XG5pbXBvcnQgeyBDb250ZXh0TWVudUFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3N0b3JlL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuYWN0aW9ucyc7XG5pbXBvcnQgeyBDb250ZXh0TWVudVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc3RvcmUvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL2Rhc2hib2FyZC5hY3Rpb25zJztcbmltcG9ydCB7IERhc2hib2FyZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uL3N0b3JlL2Rhc2hib2FyZC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vc3Vic2NyaXB0aW9ubmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBXaWRnZXRGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uL3dpZGdldHMvd2lkZ2V0LWluc3RhbmNpYXRvci93aWRnZXQtZmFjdG9yeS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWNvbnRleHQtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENvbnRleHRNZW51Q29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgYWxsb3dPYmplY3RDcmVhdGlvbiQ6IE9ic2VydmFibGU8Ym9vbGVhbiB8IHVuZGVmaW5lZD47XG4gIG9wZW5lZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHBvc2l0aW9uJDogT2JzZXJ2YWJsZTx7IGNsaWVudFg6IG51bWJlcjsgY2xpZW50WTogbnVtYmVyIH0+O1xuICBpdGVtSWQkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIGl0ZW1JZD86IHN0cmluZztcbiAgaXNTZWxlY3RlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHJlc3VsdFNldDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBzZWxlY3RlZElkcyQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuICBzZWxlY3RlZEl0ZW1zSWRzPzogc3RyaW5nW107XG4gIGZyb20/OiBzdHJpbmc7XG4gIGNvb3JkaW5hdGVzPzogbnVtYmVyW107XG4gIHByaXZhdGUgb3ZlcmxheVJlZj86IE92ZXJsYXlSZWY7XG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIHByaXZhdGUgb3ZlcmxheURldGFpbFJlZj86IE92ZXJsYXlSZWY7XG4gIEBWaWV3Q2hpbGQoJ2RldGFpbFRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBkZXRhaWxUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIGRldGFpbE1hbmlmZXN0ID0ge1xuICAgIHR5cGU6ICdkZXRhaWwnLFxuICAgIGhlYWRlcjogZmFsc2UsXG4gICAgbGF5b3V0OiB7IHg6IDEsIHk6IDEsIHdpZHRoOiAxLCBoZWlnaHQ6IDEgfSxcbiAgICBvcHRpb25zOiB7IGl0ZW1JZHM6IFtdIGFzIHN0cmluZ1tdIH1cbiAgfTtcbiAgaXNNb2R1bGVMb2FkZWQ6IHsgW3R5cGU6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHVibGljIHdpZGdldEZhY3RvcnlTZXJ2aWNlOiBXaWRnZXRGYWN0b3J5U2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWxsb3dPYmplY3RDcmVhdGlvbiQgPSB0aGlzLnN0b3JlLnNlbGVjdChDb250ZXh0TWVudVNlbGVjdG9ycy5hbGxvd09iamVjdENyZWF0aW9uKTtcbiAgICB0aGlzLm9wZW5lZCQgPSB0aGlzLnN0b3JlLnNlbGVjdChDb250ZXh0TWVudVNlbGVjdG9ycy5vcGVuZWQpO1xuICAgIHRoaXMucG9zaXRpb24kID0gdGhpcy5zdG9yZS5zZWxlY3QoQ29udGV4dE1lbnVTZWxlY3RvcnMucG9zaXRpb24pO1xuICAgIHRoaXMuaXRlbUlkJCA9IHRoaXMuc3RvcmUuc2VsZWN0KENvbnRleHRNZW51U2VsZWN0b3JzLml0ZW1JZCk7XG4gICAgdGhpcy5zZWxlY3RlZElkcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuc2VsZWN0ZWRJdGVtSWRzKTtcbiAgICB0aGlzLmlzU2VsZWN0ZWQkID0gY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3RlZElkcyQsIHRoaXMuaXRlbUlkJF0pLnBpcGUoXG4gICAgICBtYXAoKFtpdGVtSWRzLCBpdGVtSWRdKSA9PiBpdGVtSWRzLmluY2x1ZGVzKGl0ZW1JZCkpXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5zdG9yZS5zZWxlY3QoQ29udGV4dE1lbnVTZWxlY3RvcnMuZnJvbSkuc3Vic2NyaWJlKChmcm9tKSA9PiAodGhpcy5mcm9tID0gZnJvbSkpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoQ29udGV4dE1lbnVTZWxlY3RvcnMuY29vcmRpbmF0ZXMpLnN1YnNjcmliZSgoY29vcmRpbmF0ZXMpID0+ICh0aGlzLmNvb3JkaW5hdGVzID0gY29vcmRpbmF0ZXMpKVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLml0ZW1JZCQuc3Vic2NyaWJlKChpdGVtSWQpID0+ICh0aGlzLml0ZW1JZCA9IGl0ZW1JZCkpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuc2VsZWN0ZWRJZHMkLnN1YnNjcmliZSgoaXRlbUlkcykgPT4gKHRoaXMuc2VsZWN0ZWRJdGVtc0lkcyA9IGl0ZW1JZHMpKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KENvbnRleHRNZW51U2VsZWN0b3JzLnJlc3VsdFNldCkuc3Vic2NyaWJlKChyZXN1bHRTZXQpID0+ICh0aGlzLnJlc3VsdFNldCA9IHJlc3VsdFNldCkpXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLm9wZW5lZCQucGlwZSh3aXRoTGF0ZXN0RnJvbSh0aGlzLnBvc2l0aW9uJCkpLnN1YnNjcmliZSgoW29wZW5lZCwgcG9zaXRpb25dKSA9PiB7XG4gICAgICAgIGlmIChvcGVuZWQpIHtcbiAgICAgICAgICB0aGlzLm9wZW5XaXRoVGVtcGxhdGUocG9zaXRpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy53aWRnZXRGYWN0b3J5U2VydmljZS5pc01vZHVsZUxvYWRlZCgnZGV0YWlsJykuc3Vic2NyaWJlKChsb2FkZWQpID0+ICh0aGlzLmlzTW9kdWxlTG9hZGVkWydkZXRhaWwnXSA9IGxvYWRlZCkpO1xuICAgIHRoaXMud2lkZ2V0RmFjdG9yeVNlcnZpY2UuaXNNb2R1bGVMb2FkZWQoJ2dyYXBoJykuc3Vic2NyaWJlKChsb2FkZWQpID0+ICh0aGlzLmlzTW9kdWxlTG9hZGVkWydncmFwaCddID0gbG9hZGVkKSk7XG4gIH1cblxuICBvcGVuV2l0aFRlbXBsYXRlKHBvc2l0aW9uOiBhbnkpIHtcbiAgICBpZiAodGhpcy5mcm9tICE9PSAnbWFwJykge1xuICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnbS1jb250ZXh0LW1lbnUnXSxcbiAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgfSkpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5oaWRlKCkpO1xuICAgICAgY29uc3QgY29udGV4dE1lbnUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXYubS1jb250ZXh0LW1lbnUnKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGlmICghIWNvbnRleHRNZW51KSB7XG4gICAgICAgIGNvbnRleHRNZW51LnN0eWxlLmxlZnQgPVxuICAgICAgICAgIE1hdGgubWF4KDAsIE1hdGgubWluKHdpbmRvdy5pbm5lcldpZHRoIC0gY29udGV4dE1lbnUuY2xpZW50V2lkdGgsIHBvc2l0aW9uLmNsaWVudFggLSAxMCkpICsgJ3B4JztcbiAgICAgICAgY29udGV4dE1lbnUuc3R5bGUudG9wID1cbiAgICAgICAgICBNYXRoLm1heCgwLCBNYXRoLm1pbih3aW5kb3cuaW5uZXJIZWlnaHQgLSBjb250ZXh0TWVudS5jbGllbnRIZWlnaHQsIHBvc2l0aW9uLmNsaWVudFkgLSAxMCkpICsgJ3B4JztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgaGlkZSgpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbnRleHRNZW51QWN0aW9ucy5oaWRlKCkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5jbG9zZU92ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lIH0pKTtcbiAgfVxuXG4gIHNlbGVjdGlvbkFkZE9yUmVtb3ZlKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3QoeyBpZDogdGhpcy5pdGVtSWQgPz8gJycsIGN1bXVsYXRpdmU6IHRydWUgfSkpO1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgZXhwbG9yZSgpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMuZXhwbG9yZSh7IGlkOiB0aGlzLml0ZW1JZCA/PyAnJyB9KSk7XG4gICAgdGhpcy5oaWRlKCk7XG4gIH1cblxuICBwcm94aW1pdHkoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnByb3hpbWl0eSh7IGlkOiB0aGlzLml0ZW1JZCA/PyAnJywgdGFyZ2V0UmVzdWx0U2V0OiB0aGlzLnJlc3VsdFNldCA/PyAnJyB9KSk7XG4gICAgdGhpcy5oaWRlKCk7XG4gIH1cblxuICBkZXRhaWwoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLmRldGFpbCh7IGlkczogW3RoaXMuaXRlbUlkID8/ICcnXSB9KSk7XG4gICAgdGhpcy5oaWRlKCk7XG4gIH1cblxuICBzZWxlY3Rpb25JbnZlcnQoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLmludmVydFNlbGVjdGlvbigpKTtcbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIGZseWluZ0RldGFpbCgpIHtcbiAgICB0aGlzLmRldGFpbE1hbmlmZXN0Lm9wdGlvbnMuaXRlbUlkcyA9IFt0aGlzLml0ZW1JZCA/PyAnJ107XG4gICAgdGhpcy5vdmVybGF5RGV0YWlsUmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIHBhbmVsQ2xhc3M6IFsnby1zZXR0aW5nc19fcG9wdXAnXSxcbiAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJ1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMub3ZlcmxheURldGFpbFJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuZGV0YWlsVGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSArICctZGV0YWlsJyB9KSk7XG4gICAgdGhpcy5vdmVybGF5RGV0YWlsUmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5oaWRlRGV0YWlsKCkpO1xuICAgIHRoaXMuaGlkZSgpO1xuICB9XG5cbiAgaGlkZURldGFpbCgpIHtcbiAgICB0aGlzLm92ZXJsYXlEZXRhaWxSZWY/LmRpc3Bvc2UoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSArICctZGV0YWlsJyB9KSk7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDx1bCBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0XCI+XG4gICAgQGlmICghIWl0ZW1JZCkge1xuICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biAtbGluay1saWtlXCIgKGNsaWNrKT1cInNlbGVjdGlvbkFkZE9yUmVtb3ZlKClcIj5cbiAgICAgICAgICB7eyAoKGlzU2VsZWN0ZWQkIHwgYXN5bmMpID8gJ0BwcnkuY29udGV4dC5yZW1vdmUnIDogJ0BwcnkuY29udGV4dC5hZGQnKSB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biAtbGluay1saWtlXCIgKGNsaWNrKT1cInNlbGVjdGlvbkludmVydCgpXCI+XG4gICAgICAgICAge3sgJ0BwcnkuY29udGV4dC5pbnZlcnQnIHwgaTE4biB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgICBAaWYgKCEhcmVzdWx0U2V0KSB7XG4gICAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCI+XG4gICAgICAgICAgQGlmICghIXJlc3VsdFNldCkge1xuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biAtbGluay1saWtlXCIgKGNsaWNrKT1cInByb3hpbWl0eSgpXCI+XG4gICAgICAgICAgICAgIHt7ICdAcHJ5LmNvbnRleHQucHJveGltaXR5JyB8IGkxOG4gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICAgIEBpZiAoaXNNb2R1bGVMb2FkZWRbJ2dyYXBoJ10pIHtcbiAgICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIC1saW5rLWxpa2VcIiAoY2xpY2spPVwiZXhwbG9yZSgpXCI+XG4gICAgICAgICAgICB7eyAnQHByeS5jb250ZXh0LmV4cGxvcmUnIHwgaTE4biB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgICAgfVxuICAgICAgQGlmIChpc01vZHVsZUxvYWRlZFsnZGV0YWlsJ10pIHtcbiAgICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIC1saW5rLWxpa2VcIiAoY2xpY2spPVwiZGV0YWlsKClcIj5cbiAgICAgICAgICAgIHt7ICdAcHJ5LmNvbnRleHQuZGV0YWlsJyB8IGkxOG4gfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIC1saW5rLWxpa2VcIiAoY2xpY2spPVwiZmx5aW5nRGV0YWlsKClcIj5cbiAgICAgICAgICAgIHt7ICdAcHJ5LmNvbnRleHQuZmx5aW5nRGV0YWlsJyB8IGkxOG4gfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICAgIDxuZy1jb250YWluZXIgKnByeUFjY2Vzcz1cInsgbW9kdWxlOiAnZGFzaGJvYXJkJywgcGFnZTogJ2Rhc2hib2FyZCcsIGFjdGlvbjogJ2VkaXRfb2JqZWN0JyB9XCI+XG4gICAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCI+XG4gICAgICAgICAgQGlmICgoc2VsZWN0ZWRJdGVtc0lkcz8ubGVuZ3RoID8/IDApID4gMCkge1xuICAgICAgICAgICAgPHByeS1vYmplY3QtY3JlYXRpb25cbiAgICAgICAgICAgICAgKGNsb3NlZCk9XCJoaWRlKClcIlxuICAgICAgICAgICAgICBbbGlua109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW29iamVjdF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgIFttZW51XT1cInRydWVcIlxuICAgICAgICAgICAgPjwvcHJ5LW9iamVjdC1jcmVhdGlvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChhbGxvd09iamVjdENyZWF0aW9uJCB8IGFzeW5jKSB7XG4gICAgICAgICAgICA8cHJ5LW9iamVjdC1jcmVhdGlvbiAoY2xvc2VkKT1cImhpZGUoKVwiIFtsaW5rXT1cInRydWVcIiBbb2JqZWN0XT1cInRydWVcIiBbbWVudV09XCJ0cnVlXCI+PC9wcnktb2JqZWN0LWNyZWF0aW9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9saT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgICA8bmctY29udGFpbmVyICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2Rhc2hib2FyZCcsIHBhZ2U6ICdkYXNoYm9hcmQnLCBhY3Rpb246ICdlZGl0X29iamVjdCcgfVwiPlxuICAgICAgQGlmIChhbGxvd09iamVjdENyZWF0aW9uJHwgYXN5bmMpIHtcbiAgICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIj5cbiAgICAgICAgICA8cHJ5LW9iamVjdC1jcmVhdGlvbiAoY2xvc2VkKT1cImhpZGUoKVwiIFtvYmplY3RdPVwidHJ1ZVwiIFttZW51XT1cInRydWVcIj48L3ByeS1vYmplY3QtY3JlYXRpb24+XG4gICAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvdWw+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNkZXRhaWxUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cIm8tc2V0dGluZ3NfX3BvcHVwX19oZWFkZXJcIj5cbiAgICA8aDIgY2xhc3M9XCJhLWgyXCI+e3sgJ0BwcnkuY29udGV4dC5mbHlpbmdEZXRhaWwnIHwgaTE4biB9fTwvaDI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImhpZGVEZXRhaWwoKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seSAtY2xvc2VcIj5cbiAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIj48L3ByeS1pY29uPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LmFjdGlvbi5jbG9zZScgfCBpMThuIH19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm8tc2V0dGluZ3NfX3BvcHVwX19jb250ZW50XCI+XG4gICAgPHByeS13aWRnZXQtaW5zdGFuY2lhdG9yIFtzdGF0aWNNYW5pZmVzdF09XCJkZXRhaWxNYW5pZmVzdFwiPjwvcHJ5LXdpZGdldC1pbnN0YW5jaWF0b3I+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiby1zZXR0aW5nc19fcG9wdXBfX2Zvb3RlclwiPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImhpZGVEZXRhaWwoKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIj5cbiAgICAgIHt7ICdAcHJ5LmFjdGlvbi5jbG9zZScgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|