aril 2.0.1-dev.4 → 2.0.1
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/boot/config/apps/src/interfaces.d.ts +7 -1
- package/boot/config/apps/src/route-close.service.d.ts +8 -3
- package/boot/config/apps/src/route-permissions.d.ts +2 -2
- package/esm2022/boot/config/api/src/interfaces.mjs +3 -2
- package/esm2022/boot/config/apps/src/apps.service.mjs +2 -2
- package/esm2022/boot/config/apps/src/custom-route-reuse-strategy.class.mjs +4 -4
- package/esm2022/boot/config/apps/src/interfaces.mjs +2 -1
- package/esm2022/boot/config/apps/src/route-close.service.mjs +11 -4
- package/esm2022/boot/config/apps/src/route-permissions.mjs +24 -6
- package/esm2022/boot/config/plugins/src/plugins.service.mjs +7 -5
- package/esm2022/boot/host/src/bootstrap.mjs +5 -3
- package/esm2022/boot/mfe/src/bootstrap.mjs +11 -3
- package/esm2022/http/index.mjs +1 -2
- package/esm2022/http/src/serviceBase.mjs +4 -4
- package/esm2022/http/src/serviceStateMethods.mjs +9 -1
- package/esm2022/keycloak/src/auth.interceptor.mjs +5 -2
- package/esm2022/selection/aril-selection.mjs +5 -0
- package/esm2022/selection/index.mjs +2 -0
- package/esm2022/selection/src/interfaces.mjs +2 -0
- package/esm2022/selection/src/selection-group.service.mjs +195 -0
- package/esm2022/theme/layout/app/profileSidebar/modals/edit-profile-modal/edit-profile-modal.component.mjs +2 -2
- package/esm2022/theme/layout/index.mjs +4 -2
- package/esm2022/theme/layout/service/tab-session.service.mjs +1 -1
- package/esm2022/ui/button/index.mjs +1 -2
- package/esm2022/ui/button/src/button.component.mjs +5 -2
- package/esm2022/ui/charts/index.mjs +1 -11
- package/esm2022/ui/lib/index.mjs +1 -4
- package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +9 -5
- package/esm2022/ui/multiSelect/src/multi-select.component.mjs +25 -25
- package/esm2022/ui/relativeDateSelector/src/relative-date-selector.component.mjs +2 -2
- package/esm2022/ui/selectBox/src/select-box.component.mjs +11 -34
- package/esm2022/ui/table/src/table.component.mjs +10 -5
- package/esm2022/ui/value/src/value.component.mjs +3 -2
- package/esm2022/ui-business/enumPicker/src/enum-picker.component.mjs +14 -6
- package/esm2022/util/activity/aril-util-activity.mjs +5 -0
- package/esm2022/util/activity/index.mjs +4 -0
- package/esm2022/util/activity/src/activity.constants.mjs +4 -0
- package/esm2022/util/activity/src/activity.service.mjs +218 -0
- package/esm2022/util/activity/src/activity.types.mjs +2 -0
- package/esm2022/util/block/src/block.mjs +9 -25
- package/esm2022/util/pub-sub/src/pub-sub.service.mjs +10 -5
- package/fesm2022/{aril-app.component-s14ruALV.mjs → aril-app.component-MjG_tPEe.mjs} +2 -1
- package/fesm2022/{aril-app.component-s14ruALV.mjs.map → aril-app.component-MjG_tPEe.mjs.map} +1 -1
- package/fesm2022/aril-boot-config-api.mjs +2 -1
- package/fesm2022/aril-boot-config-api.mjs.map +1 -1
- package/fesm2022/aril-boot-config-apps.mjs +36 -12
- package/fesm2022/aril-boot-config-apps.mjs.map +1 -1
- package/fesm2022/aril-boot-config-plugins.mjs +6 -4
- package/fesm2022/aril-boot-config-plugins.mjs.map +1 -1
- package/fesm2022/aril-boot-host.mjs +4 -2
- package/fesm2022/aril-boot-host.mjs.map +1 -1
- package/fesm2022/{aril-boot-mfe-app.component-oxzMhRXe.mjs → aril-boot-mfe-app.component-DtspQ3J8.mjs} +3 -2
- package/fesm2022/{aril-boot-mfe-app.component-oxzMhRXe.mjs.map → aril-boot-mfe-app.component-DtspQ3J8.mjs.map} +1 -1
- package/fesm2022/{aril-boot-mfe-aril-boot-mfe-CKOM61xb.mjs → aril-boot-mfe-aril-boot-mfe-lovoFcgw.mjs} +12 -4
- package/fesm2022/aril-boot-mfe-aril-boot-mfe-lovoFcgw.mjs.map +1 -0
- package/fesm2022/aril-boot-mfe.mjs +2 -1
- package/fesm2022/aril-boot-mfe.mjs.map +1 -1
- package/fesm2022/aril-http.mjs +11 -7
- package/fesm2022/aril-http.mjs.map +1 -1
- package/fesm2022/aril-keycloak.mjs +4 -1
- package/fesm2022/aril-keycloak.mjs.map +1 -1
- package/fesm2022/aril-selection.mjs +202 -0
- package/fesm2022/aril-selection.mjs.map +1 -0
- package/fesm2022/aril-theme-layout.mjs +4 -193
- package/fesm2022/aril-theme-layout.mjs.map +1 -1
- package/fesm2022/aril-ui-business-enumPicker.mjs +14 -6
- package/fesm2022/aril-ui-business-enumPicker.mjs.map +1 -1
- package/fesm2022/aril-ui-button.mjs +5 -17
- package/fesm2022/aril-ui-button.mjs.map +1 -1
- package/fesm2022/aril-ui-charts.mjs +4 -1302
- package/fesm2022/aril-ui-charts.mjs.map +1 -1
- package/fesm2022/aril-ui-lib.mjs +10 -98
- package/fesm2022/aril-ui-lib.mjs.map +1 -1
- package/fesm2022/aril-ui-multiSelect.mjs +24 -24
- package/fesm2022/aril-ui-multiSelect.mjs.map +1 -1
- package/fesm2022/aril-ui-relativeDateSelector.mjs +1 -1
- package/fesm2022/aril-ui-relativeDateSelector.mjs.map +1 -1
- package/fesm2022/aril-ui-selectBox.mjs +10 -33
- package/fesm2022/aril-ui-selectBox.mjs.map +1 -1
- package/fesm2022/aril-ui-table.mjs +9 -4
- package/fesm2022/aril-ui-table.mjs.map +1 -1
- package/fesm2022/aril-ui-value.mjs +2 -1
- package/fesm2022/aril-ui-value.mjs.map +1 -1
- package/fesm2022/aril-util-activity.mjs +228 -0
- package/fesm2022/aril-util-activity.mjs.map +1 -0
- package/fesm2022/aril-util-block.mjs +9 -25
- package/fesm2022/aril-util-block.mjs.map +1 -1
- package/fesm2022/aril-util-pub-sub.mjs +9 -4
- package/fesm2022/aril-util-pub-sub.mjs.map +1 -1
- package/fesm2022/aril.mjs +14 -5
- package/fesm2022/aril.mjs.map +1 -1
- package/http/index.d.ts +0 -1
- package/http/src/serviceStateMethods.d.ts +1 -0
- package/package.json +184 -208
- package/scripts/mf-shared.js +47 -47
- package/selection/index.d.ts +1 -0
- package/selection/src/interfaces.d.ts +8 -0
- package/{theme/layout/service → selection/src}/selection-group.service.d.ts +1 -1
- package/theme/layout/index.d.ts +1 -1
- package/theme/layout/index.ts +3 -1
- package/theme/layout/service/tab-session.service.ts +138 -138
- package/ui/button/index.d.ts +0 -1
- package/ui/button/src/button.component.d.ts +2 -0
- package/ui/charts/index.d.ts +0 -10
- package/ui/lib/index.d.ts +0 -3
- package/ui/lib/src/form/form-error-message.directive.d.ts +4 -3
- package/ui/multiSelect/src/multi-select.component.d.ts +4 -5
- package/ui/selectBox/src/select-box.component.d.ts +2 -7
- package/ui/table/src/table.component.d.ts +3 -2
- package/util/activity/index.d.ts +3 -0
- package/util/activity/src/activity.constants.d.ts +3 -0
- package/util/activity/src/activity.service.d.ts +35 -0
- package/util/activity/src/activity.types.d.ts +13 -0
- package/util/block/src/block.d.ts +4 -10
- package/util/pub-sub/src/pub-sub.service.d.ts +2 -2
- package/esm2022/http/src/serviceMockBase.mjs +0 -4
- package/esm2022/theme/layout/service/selection-group.service.mjs +0 -195
- package/esm2022/ui/button/src/split-button.component.mjs +0 -18
- package/esm2022/ui/charts/src/amCharts/column/column-chart.component.mjs +0 -124
- package/esm2022/ui/charts/src/amCharts/line/line-chart.component.mjs +0 -164
- package/esm2022/ui/charts/src/amCharts/pie/pie-chart.component.mjs +0 -116
- package/esm2022/ui/charts/src/highCharts/area/area-chart.component.mjs +0 -114
- package/esm2022/ui/charts/src/highCharts/bar/bar-chart.component.mjs +0 -100
- package/esm2022/ui/charts/src/highCharts/column/column-chart.component.mjs +0 -117
- package/esm2022/ui/charts/src/highCharts/heatmap/heatMap-chart.component.mjs +0 -252
- package/esm2022/ui/charts/src/highCharts/line/line-chart-series.component.mjs +0 -89
- package/esm2022/ui/charts/src/highCharts/line/line-chart.component.mjs +0 -82
- package/esm2022/ui/charts/src/highCharts/pie/pie-chart.component.mjs +0 -137
- package/esm2022/ui/charts/src/theme/theme.mjs +0 -54
- package/esm2022/ui/dxEditor/aril-ui-dxEditor.mjs +0 -5
- package/esm2022/ui/dxEditor/index.mjs +0 -2
- package/esm2022/ui/dxEditor/src/dx-editor.component.mjs +0 -26
- package/esm2022/ui/lib/src/form/form-field-builder.mjs +0 -23
- package/esm2022/ui/lib/src/input/common-input-validators.service.mjs +0 -49
- package/esm2022/ui/lib/src/input/input-disabled.directive.mjs +0 -25
- package/esm2022/ui/overlayPanel/aril-ui-overlayPanel.mjs +0 -5
- package/esm2022/ui/overlayPanel/index.mjs +0 -2
- package/esm2022/ui/overlayPanel/src/overlay-panel.component.mjs +0 -20
- package/esm2022/ui/tooltip/aril-ui-tooltip.mjs +0 -5
- package/esm2022/ui/tooltip/index.mjs +0 -2
- package/esm2022/ui/tooltip/src/tooltip-component.mjs +0 -23
- package/esm2022/ui/treeTable/aril-ui-treeTable.mjs +0 -5
- package/esm2022/ui/treeTable/index.mjs +0 -2
- package/esm2022/ui/treeTable/src/tree-table.component.mjs +0 -55
- package/esm2022/ui-business/operation-types-dialog/aril-ui-business-operation-types-dialog.mjs +0 -5
- package/esm2022/ui-business/operation-types-dialog/index.mjs +0 -2
- package/esm2022/ui-business/operation-types-dialog/src/operation-types-dialog.component.mjs +0 -76
- package/esm2022/util/unwrap/aril-util-unwrap.mjs +0 -5
- package/esm2022/util/unwrap/index.mjs +0 -2
- package/esm2022/util/unwrap/src/unwrap-tag.directive.mjs +0 -24
- package/fesm2022/aril-boot-mfe-aril-boot-mfe-CKOM61xb.mjs.map +0 -1
- package/fesm2022/aril-ui-business-operation-types-dialog.mjs +0 -83
- package/fesm2022/aril-ui-business-operation-types-dialog.mjs.map +0 -1
- package/fesm2022/aril-ui-dxEditor.mjs +0 -33
- package/fesm2022/aril-ui-dxEditor.mjs.map +0 -1
- package/fesm2022/aril-ui-overlayPanel.mjs +0 -27
- package/fesm2022/aril-ui-overlayPanel.mjs.map +0 -1
- package/fesm2022/aril-ui-tooltip.mjs +0 -30
- package/fesm2022/aril-ui-tooltip.mjs.map +0 -1
- package/fesm2022/aril-ui-treeTable.mjs +0 -62
- package/fesm2022/aril-ui-treeTable.mjs.map +0 -1
- package/fesm2022/aril-util-unwrap.mjs +0 -31
- package/fesm2022/aril-util-unwrap.mjs.map +0 -1
- package/http/src/serviceMockBase.d.ts +0 -6
- package/theme/layout/service/selection-group.service.ts +0 -209
- package/ui/button/src/split-button.component.d.ts +0 -8
- package/ui/charts/src/amCharts/column/column-chart.component.d.ts +0 -25
- package/ui/charts/src/amCharts/line/line-chart.component.d.ts +0 -26
- package/ui/charts/src/amCharts/pie/pie-chart.component.d.ts +0 -24
- package/ui/charts/src/highCharts/area/area-chart.component.d.ts +0 -20
- package/ui/charts/src/highCharts/bar/bar-chart.component.d.ts +0 -26
- package/ui/charts/src/highCharts/column/column-chart.component.d.ts +0 -28
- package/ui/charts/src/highCharts/heatmap/heatMap-chart.component.d.ts +0 -32
- package/ui/charts/src/highCharts/line/line-chart-series.component.d.ts +0 -21
- package/ui/charts/src/highCharts/line/line-chart.component.d.ts +0 -21
- package/ui/charts/src/highCharts/pie/pie-chart.component.d.ts +0 -27
- package/ui/charts/src/theme/theme.d.ts +0 -5
- package/ui/dxEditor/index.d.ts +0 -1
- package/ui/dxEditor/src/dx-editor.component.d.ts +0 -11
- package/ui/lib/src/form/form-field-builder.d.ts +0 -8
- package/ui/lib/src/input/common-input-validators.service.d.ts +0 -20
- package/ui/lib/src/input/input-disabled.directive.d.ts +0 -9
- package/ui/overlayPanel/index.d.ts +0 -1
- package/ui/overlayPanel/src/overlay-panel.component.d.ts +0 -8
- package/ui/tooltip/index.d.ts +0 -1
- package/ui/tooltip/src/tooltip-component.d.ts +0 -14
- package/ui/treeTable/index.d.ts +0 -1
- package/ui/treeTable/src/tree-table.component.d.ts +0 -21
- package/ui-business/operation-types-dialog/index.d.ts +0 -1
- package/ui-business/operation-types-dialog/src/operation-types-dialog.component.d.ts +0 -28
- package/util/unwrap/index.d.ts +0 -1
- package/util/unwrap/src/unwrap-tag.directive.d.ts +0 -9
|
@@ -15,6 +15,7 @@ import { API_CONFIGS } from 'aril/boot/config/api';
|
|
|
15
15
|
import { LanguageCode, TR_TRANSLATIONS } from 'aril/boot/config/translate';
|
|
16
16
|
import { HttpBackendService } from 'aril/http';
|
|
17
17
|
import { provideHost, provideHostRouter } from 'aril/provider';
|
|
18
|
+
import { ActivityService } from 'aril/util/activity';
|
|
18
19
|
import { getNgZone } from './getNgZone';
|
|
19
20
|
import { FactoryClass } from './interfaces';
|
|
20
21
|
export const PLUGINS = new FactoryClass();
|
|
@@ -41,8 +42,8 @@ export async function bootPlugin(selector, component) {
|
|
|
41
42
|
getNgZone(),
|
|
42
43
|
{
|
|
43
44
|
provide: APP_INITIALIZER,
|
|
44
|
-
useFactory: (httpBackend, translocoService, primeNgConfig) => {
|
|
45
|
-
return () => {
|
|
45
|
+
useFactory: (httpBackend, translocoService, primeNgConfig, activityService) => {
|
|
46
|
+
return async () => {
|
|
46
47
|
const activeLang = localStorage.getItem('lang') ?? LanguageCode.TR;
|
|
47
48
|
translocoService.setActiveLang(activeLang);
|
|
48
49
|
if (!activeLang?.length) {
|
|
@@ -57,10 +58,11 @@ export async function bootPlugin(selector, component) {
|
|
|
57
58
|
.pipe(tap((configs) => {
|
|
58
59
|
Object.assign(API_CONFIGS, { ...configs });
|
|
59
60
|
}));
|
|
60
|
-
|
|
61
|
+
await firstValueFrom(observable$);
|
|
62
|
+
activityService.start({ shellMode: false });
|
|
61
63
|
};
|
|
62
64
|
},
|
|
63
|
-
deps: [HttpBackendService, TranslocoService, PrimeNGConfig],
|
|
65
|
+
deps: [HttpBackendService, TranslocoService, PrimeNGConfig, ActivityService],
|
|
64
66
|
multi: true
|
|
65
67
|
}
|
|
66
68
|
]
|
|
@@ -69,4 +71,4 @@ export async function bootPlugin(selector, component) {
|
|
|
69
71
|
const plugin = createCustomElement(component, { injector: appRef.injector });
|
|
70
72
|
customElements.define(selector, plugin);
|
|
71
73
|
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC9ib290L2NvbmZpZy9wbHVnaW5zL3NyYy9wbHVnaW5zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBMkIsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFF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QUFDO0lBRUYsTUFBTSxNQUFNLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvQyxNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFFN0UsY0FBYyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDekMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgQXBwbGljYXRpb25Db25maWcsIFR5cGUsIGltcG9ydFByb3ZpZGVyc0Zyb20sIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjcmVhdGVDdXN0b21FbGVtZW50IH0gZnJvbSAnQGFuZ3VsYXIvZWxlbWVudHMnO1xyXG5pbXBvcnQgeyBjcmVhdGVBcHBsaWNhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5cclxuaW1wb3J0IHsgUHJpbWVOR0NvbmZpZyB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgQ29uZmlybURpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY29uZmlybWRpYWxvZyc7XHJcbmltcG9ydCB7IENvbmZpcm1Qb3B1cE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY29uZmlybXBvcHVwJztcclxuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNZXNzYWdlc01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvbWVzc2FnZXMnO1xyXG5pbXBvcnQgeyBUb2FzdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9hc3QnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIHRhcCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgSE9TVF9JMThOX0ZPTERFUiwgY3JlYXRlQmFzZUFwcENvbmZpZyB9IGZyb20gJ2FyaWwvYm9vdC9iYXNlJztcclxuaW1wb3J0IHsgYnJpZGdlIH0gZnJvbSAnYXJpbC9ib290L2JyaWRnZSc7XHJcbmltcG9ydCB7IEFQSV9DT05GSUdTLCBBcGlDb25maWdzRmFjdG9yeSB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvYXBpJztcclxuaW1wb3J0IHsgTGFuZ3VhZ2VDb2RlLCBUUl9UUkFOU0xBVElPTlMgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL3RyYW5zbGF0ZSc7XHJcbmltcG9ydCB7IEh0dHBCYWNrZW5kU2VydmljZSB9IGZyb20gJ2FyaWwvaHR0cCc7XHJcbmltcG9ydCB7IHByb3ZpZGVIb3N0LCBwcm92aWRlSG9zdFJvdXRlciB9IGZyb20gJ2FyaWwvcHJvdmlkZXInO1xyXG5pbXBvcnQgeyBBY3Rpdml0eVNlcnZpY2UgfSBmcm9tICdhcmlsL3V0aWwvYWN0aXZpdHknO1xyXG5cclxuaW1wb3J0IHsgZ2V0Tmdab25lIH0gZnJvbSAnLi9nZXROZ1pvbmUnO1xyXG5pbXBvcnQgeyBGYWN0b3J5Q2xhc3MsIFBsdWdpbkNvbmZpZ3MgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBMVUdJTlMgPSBuZXcgRmFjdG9yeUNsYXNzKCkgYXMgRmFjdG9yeUNsYXNzICYgUGx1Z2luQ29uZmlncztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUGx1Z2lucygpOiAoKSA9PiB2b2lkIHtcclxuXHRyZXR1cm4gKCkgPT4ge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3QgcGx1Z2luc0RhdGEgPSBicmlkZ2UucGx1Z2luSnNvbigpO1xyXG5cdFx0XHRPYmplY3QuYXNzaWduKFBMVUdJTlMsIHBsdWdpbnNEYXRhKTtcclxuXHRcdH0gY2F0Y2ggKGVycikge1xyXG5cdFx0XHRjb25zb2xlLmxvZygnRXJyb3IgUGx1Z2lucyBMb2FkaW5nJywgZXJyKTtcclxuXHRcdH1cclxuXHR9O1xyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYm9vdFBsdWdpbihzZWxlY3Rvcjogc3RyaW5nLCBjb21wb25lbnQ6IFR5cGU8YW55Pikge1xyXG5cdGlmIChjdXN0b21FbGVtZW50cy5nZXQoc2VsZWN0b3IpKSByZXR1cm47XHJcblxyXG5cdGNvbnN0IGNvbmZpZzogQXBwbGljYXRpb25Db25maWcgPSB7XHJcblx0XHRwcm92aWRlcnM6IFtcclxuXHRcdFx0Y3JlYXRlQmFzZUFwcENvbmZpZyh7IGkxOG5Gb2xkZXI6IEhPU1RfSTE4Tl9GT0xERVIgfSksXHJcblx0XHRcdHByb3ZpZGVIb3N0KHNlbGVjdG9yIGFzIGFueSksIC8vIHRvZG8gcmVmYWN0b3JcclxuXHRcdFx0cHJvdmlkZUhvc3RSb3V0ZXIoKSxcclxuXHRcdFx0aW1wb3J0UHJvdmlkZXJzRnJvbShcclxuXHRcdFx0XHRDb25maXJtRGlhbG9nTW9kdWxlLFxyXG5cdFx0XHRcdENvbmZpcm1Qb3B1cE1vZHVsZSxcclxuXHRcdFx0XHREaWFsb2dNb2R1bGUsXHJcblx0XHRcdFx0TWVzc2FnZXNNb2R1bGUsXHJcblx0XHRcdFx0VG9hc3RNb2R1bGVcclxuXHRcdFx0KSxcclxuXHRcdFx0Z2V0Tmdab25lKCksXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcblx0XHRcdFx0dXNlRmFjdG9yeTogKFxyXG5cdFx0XHRcdFx0aHR0cEJhY2tlbmQ6IHsgaHR0cENsaWVudDogSHR0cENsaWVudCB9LFxyXG5cdFx0XHRcdFx0dHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuXHRcdFx0XHRcdHByaW1lTmdDb25maWc6IFByaW1lTkdDb25maWcsXHJcblx0XHRcdFx0XHRhY3Rpdml0eVNlcnZpY2U6IEFjdGl2aXR5U2VydmljZVxyXG5cdFx0XHRcdCkgPT4ge1xyXG5cdFx0XHRcdFx0cmV0dXJuIGFzeW5jICgpID0+IHtcclxuXHRcdFx0XHRcdFx0Y29uc3QgYWN0aXZlTGFuZzogTGFuZ3VhZ2VDb2RlID0gKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5nJykgYXMgTGFuZ3VhZ2VDb2RlKSA/PyBMYW5ndWFnZUNvZGUuVFI7XHJcblxyXG5cdFx0XHRcdFx0XHR0cmFuc2xvY29TZXJ2aWNlLnNldEFjdGl2ZUxhbmcoYWN0aXZlTGFuZyk7XHJcblxyXG5cdFx0XHRcdFx0XHRpZiAoIWFjdGl2ZUxhbmc/Lmxlbmd0aCkge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUud2FybignTm8gbGFuZ3VhZ2Ugc2VsZWN0ZWQnKTtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGlmIChhY3RpdmVMYW5nID09PSBMYW5ndWFnZUNvZGUuVFIpIHtcclxuXHRcdFx0XHRcdFx0XHRwcmltZU5nQ29uZmlnLnNldFRyYW5zbGF0aW9uKFRSX1RSQU5TTEFUSU9OUyk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGNvbnN0IG9ic2VydmFibGUkID0gaHR0cEJhY2tlbmQuaHR0cENsaWVudFxyXG5cdFx0XHRcdFx0XHRcdC5nZXQ8QXBpQ29uZmlnc0ZhY3Rvcnk+KGlzRGV2TW9kZSgpID8gJy4vYXNzZXRzL2xvY2FsLWNvbmZpZ3MvYXBpLmxvY2FsLmpzb24nIDogJy4vYXBpLmpzb24nKVxyXG5cdFx0XHRcdFx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdFx0XHRcdFx0dGFwKChjb25maWdzKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdE9iamVjdC5hc3NpZ24oQVBJX0NPTkZJR1MsIHsgLi4uY29uZmlncyB9KTtcclxuXHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0KTtcclxuXHJcblx0XHRcdFx0XHRcdGF3YWl0IGZpcnN0VmFsdWVGcm9tKG9ic2VydmFibGUkKTtcclxuXHRcdFx0XHRcdFx0YWN0aXZpdHlTZXJ2aWNlLnN0YXJ0KHsgc2hlbGxNb2RlOiBmYWxzZSB9KTtcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHRkZXBzOiBbSHR0cEJhY2tlbmRTZXJ2aWNlLCBUcmFuc2xvY29TZXJ2aWNlLCBQcmltZU5HQ29uZmlnLCBBY3Rpdml0eVNlcnZpY2VdLFxyXG5cdFx0XHRcdG11bHRpOiB0cnVlXHJcblx0XHRcdH1cclxuXHRcdF1cclxuXHR9O1xyXG5cclxuXHRjb25zdCBhcHBSZWYgPSBhd2FpdCBjcmVhdGVBcHBsaWNhdGlvbihjb25maWcpO1xyXG5cdGNvbnN0IHBsdWdpbiA9IGNyZWF0ZUN1c3RvbUVsZW1lbnQoY29tcG9uZW50LCB7IGluamVjdG9yOiBhcHBSZWYuaW5qZWN0b3IgfSk7XHJcblxyXG5cdGN1c3RvbUVsZW1lbnRzLmRlZmluZShzZWxlY3RvciwgcGx1Z2luKTtcclxufVxyXG4iXX0=
|
|
@@ -10,6 +10,7 @@ import { loadApiConfigs, loadInitData } from 'aril/boot/config/api';
|
|
|
10
10
|
import { CustomRouteReuseStrategy, MicroAppService, TabAwareUrlSerializer } from 'aril/boot/config/apps';
|
|
11
11
|
import { loadPlugins } from 'aril/boot/config/plugins';
|
|
12
12
|
import { i18nFolderName } from 'aril/i18n';
|
|
13
|
+
import { ActivityService } from 'aril/util/activity';
|
|
13
14
|
import { AppComponent } from './app.component';
|
|
14
15
|
export var appName;
|
|
15
16
|
export const boot = (_appName, routes) => {
|
|
@@ -33,7 +34,7 @@ export const boot = (_appName, routes) => {
|
|
|
33
34
|
},
|
|
34
35
|
{
|
|
35
36
|
provide: APP_INITIALIZER,
|
|
36
|
-
useFactory: (httpClient, keycloak, router, folderName, microAppService, location) => {
|
|
37
|
+
useFactory: (httpClient, keycloak, router, folderName, microAppService, location, activityService) => {
|
|
37
38
|
if (router)
|
|
38
39
|
bridge.hostRouter = router;
|
|
39
40
|
if (location)
|
|
@@ -45,13 +46,14 @@ export const boot = (_appName, routes) => {
|
|
|
45
46
|
await runLoadApiConfigs();
|
|
46
47
|
await runLoadInitData();
|
|
47
48
|
runLoadPlugins();
|
|
49
|
+
activityService.start({ shellMode: true });
|
|
48
50
|
};
|
|
49
51
|
},
|
|
50
52
|
multi: true,
|
|
51
|
-
deps: [HttpClient, KeycloakService, Router, i18nFolderName, MicroAppService, Location]
|
|
53
|
+
deps: [HttpClient, KeycloakService, Router, i18nFolderName, MicroAppService, Location, ActivityService]
|
|
52
54
|
}
|
|
53
55
|
]
|
|
54
56
|
};
|
|
55
57
|
bootstrapApplication(AppComponent, appConfig).catch((err) => console.error(err));
|
|
56
58
|
};
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC9ib290L2hvc3Qvc3JjL2Jvb3RzdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFDTixrQkFBa0IsRUFDbEIsTUFBTSxFQUVOLGFBQWEsRUFDYixhQUFhLEVBQ2IseUJBQXlCLEVBQ3pCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEUsT0FBTyxFQUFRLHdCQUF3QixFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9HLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsTUFBTSxDQUFDLElBQUksT0FBYSxDQUFDO0FBRXpCLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLFFBQWMsRUFBRSxNQUFjLEVBQUUsRUFBRTtJQUN0RCxPQUFPLEdBQUcsUUFBUSxDQUFDO0lBQ25CLE1BQU0sU0FBUyxHQUFzQjtRQUNwQyxTQUFTLEVBQUU7WUFDVixtQkFBbUIsQ0FBQyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3JELGFBQWEsQ0FDWixNQUFNLEVBQ04seUJBQXlCLEVBQUUsRUFDM0IsZ0JBQWdCLEVBQUUsRUFDbEIsZ0JBQWdCLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUNuRDtZQUNELDhGQUE4RjtZQUM5RixxRkFBcUY7WUFDckYsb0ZBQW9GO1lBQ3BGLG9CQUFvQjtZQUNwQjtnQkFDQyxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsd0JBQXdCO2FBQ3JDO1lBQ0QsMEZBQTBGO1lBQzFGO2dCQUNDLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixXQUFXLEVBQUUscUJBQXFCO2FBQ2xDO1lBQ0Q7Z0JBQ0MsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLFVBQVUsRUFBRSxDQUNYLFVBQXNCLEVBQ3RCLFFBQXlCLEVBQ3pCLE1BQWMsRUFDZCxVQUFpQyxFQUNqQyxlQUFnQyxFQUNoQyxRQUFrQixFQUNsQixlQUFnQyxFQUMvQixFQUFFO29CQUNILElBQUksTUFBTTt3QkFBRSxNQUFNLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztvQkFDdkMsSUFBSSxRQUFRO3dCQUFFLE1BQU0sQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO29CQUU3QyxNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FDdkMsVUFBVSxFQUNWLFFBQVEsRUFDUixVQUErQixFQUMvQixlQUFlLENBQ2YsQ0FBQztvQkFDRixNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ2pELE1BQU0sY0FBYyxHQUFHLFdBQVcsRUFBRSxDQUFDO29CQUNyQyxPQUFPLEtBQUssSUFBSSxFQUFFO3dCQUNqQixNQUFNLGlCQUFpQixFQUFFLENBQUM7d0JBQzFCLE1BQU0sZUFBZSxFQUFFLENBQUM7d0JBQ3hCLGNBQWMsRUFBRSxDQUFDO3dCQUNqQixlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7b0JBQzVDLENBQUMsQ0FBQztnQkFDSCxDQUFDO2dCQUNELEtBQUssRUFBRSxJQUFJO2dCQUNYLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLGVBQWUsQ0FBQzthQUN2RztTQUNEO0tBQ0QsQ0FBQztJQUVGLG9CQUFvQixDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNsRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgQXBwbGljYXRpb25Db25maWcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgYm9vdHN0cmFwQXBwbGljYXRpb24gfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHtcclxuXHRSb3V0ZVJldXNlU3RyYXRlZ3ksXHJcblx0Um91dGVyLFxyXG5cdFJvdXRlcyxcclxuXHRVcmxTZXJpYWxpemVyLFxyXG5cdHByb3ZpZGVSb3V0ZXIsXHJcblx0d2l0aENvbXBvbmVudElucHV0QmluZGluZyxcclxuXHR3aXRoSGFzaExvY2F0aW9uLFxyXG5cdHdpdGhSb3V0ZXJDb25maWdcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgS2V5Y2xvYWtTZXJ2aWNlIH0gZnJvbSAna2V5Y2xvYWstYW5ndWxhcic7XHJcblxyXG5pbXBvcnQgeyBIT1NUX0kxOE5fRk9MREVSLCBjcmVhdGVCYXNlQXBwQ29uZmlnIH0gZnJvbSAnYXJpbC9ib290L2Jhc2UnO1xyXG5pbXBvcnQgeyBicmlkZ2UgfSBmcm9tICdhcmlsL2Jvb3QvYnJpZGdlJztcclxuaW1wb3J0IHsgbG9hZEFwaUNvbmZpZ3MsIGxvYWRJbml0RGF0YSB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvYXBpJztcclxuaW1wb3J0IHsgQXBwcywgQ3VzdG9tUm91dGVSZXVzZVN0cmF0ZWd5LCBNaWNyb0FwcFNlcnZpY2UsIFRhYkF3YXJlVXJsU2VyaWFsaXplciB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvYXBwcyc7XHJcbmltcG9ydCB7IGxvYWRQbHVnaW5zIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9wbHVnaW5zJztcclxuaW1wb3J0IHsgaTE4bkZvbGRlck5hbWUgfSBmcm9tICdhcmlsL2kxOG4nO1xyXG5pbXBvcnQgeyBBY3Rpdml0eVNlcnZpY2UgfSBmcm9tICdhcmlsL3V0aWwvYWN0aXZpdHknO1xyXG5cclxuaW1wb3J0IHsgQXBwQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCB2YXIgYXBwTmFtZTogQXBwcztcclxuXHJcbmV4cG9ydCBjb25zdCBib290ID0gKF9hcHBOYW1lOiBBcHBzLCByb3V0ZXM6IFJvdXRlcykgPT4ge1xyXG5cdGFwcE5hbWUgPSBfYXBwTmFtZTtcclxuXHRjb25zdCBhcHBDb25maWc6IEFwcGxpY2F0aW9uQ29uZmlnID0ge1xyXG5cdFx0cHJvdmlkZXJzOiBbXHJcblx0XHRcdGNyZWF0ZUJhc2VBcHBDb25maWcoeyBpMThuRm9sZGVyOiBIT1NUX0kxOE5fRk9MREVSIH0pLFxyXG5cdFx0XHRwcm92aWRlUm91dGVyKFxyXG5cdFx0XHRcdHJvdXRlcyxcclxuXHRcdFx0XHR3aXRoQ29tcG9uZW50SW5wdXRCaW5kaW5nKCksXHJcblx0XHRcdFx0d2l0aEhhc2hMb2NhdGlvbigpLFxyXG5cdFx0XHRcdHdpdGhSb3V0ZXJDb25maWcoeyBvblNhbWVVcmxOYXZpZ2F0aW9uOiAncmVsb2FkJyB9KVxyXG5cdFx0XHQpLFxyXG5cdFx0XHQvLyBgdXNlRXhpc3RpbmdgOiBgQ3VzdG9tUm91dGVSZXVzZVN0cmF0ZWd5YCBgcHJvdmlkZWRJbjogJ3Jvb3QnYCBvbGR1xJ91IGnDp2luIHJvb3QgaW5qZWN0b3InZGFcclxuXHRcdFx0Ly8gemF0ZW4gYmlyIGluc3RhbmNlIHZhci4gUm91dGVyJ2EgYXluxLEgaW5zdGFuY2UnxLEgYmHEn2xhbWFrIGlsZXJpZGUgY2xhc3MnYSBkb8SfcnVkYW5cclxuXHRcdFx0Ly8gZXJpxZ9tZWsgaXN0ZXllbiB0w7xrZXRpY2lsZXIgKMO2cm4uIHRlc3QgaG9vaydsYXLEsSwgZGVidWcgcGFuZWxpKSBpw6dpbiB0ZWstaW5zdGFuY2VcclxuXHRcdFx0Ly8gZ2FyYW50aXNpIHNhxJ9sYXIuXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwcm92aWRlOiBSb3V0ZVJldXNlU3RyYXRlZ3ksXHJcblx0XHRcdFx0dXNlRXhpc3Rpbmc6IEN1c3RvbVJvdXRlUmV1c2VTdHJhdGVneVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyBgX3RhYmAgcXVlcnkgcGFyYW0nxLEgYWRkcmVzcyBiYXInZGFuIHN0cmlwIGVkZXI7IFJvdXRlciBpbnRlcm5hbCBgcXVlcnlQYXJhbXNgJ8SxIGtvcnVyLlxyXG5cdFx0XHR7XHJcblx0XHRcdFx0cHJvdmlkZTogVXJsU2VyaWFsaXplcixcclxuXHRcdFx0XHR1c2VFeGlzdGluZzogVGFiQXdhcmVVcmxTZXJpYWxpemVyXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcblx0XHRcdFx0dXNlRmFjdG9yeTogKFxyXG5cdFx0XHRcdFx0aHR0cENsaWVudDogSHR0cENsaWVudCxcclxuXHRcdFx0XHRcdGtleWNsb2FrOiBLZXljbG9ha1NlcnZpY2UsXHJcblx0XHRcdFx0XHRyb3V0ZXI6IFJvdXRlcixcclxuXHRcdFx0XHRcdGZvbGRlck5hbWU6IHR5cGVvZiBpMThuRm9sZGVyTmFtZSxcclxuXHRcdFx0XHRcdG1pY3JvQXBwU2VydmljZTogTWljcm9BcHBTZXJ2aWNlLFxyXG5cdFx0XHRcdFx0bG9jYXRpb246IExvY2F0aW9uLFxyXG5cdFx0XHRcdFx0YWN0aXZpdHlTZXJ2aWNlOiBBY3Rpdml0eVNlcnZpY2VcclxuXHRcdFx0XHQpID0+IHtcclxuXHRcdFx0XHRcdGlmIChyb3V0ZXIpIGJyaWRnZS5ob3N0Um91dGVyID0gcm91dGVyO1xyXG5cdFx0XHRcdFx0aWYgKGxvY2F0aW9uKSBicmlkZ2UuaG9zdExvY2F0aW9uID0gbG9jYXRpb247XHJcblxyXG5cdFx0XHRcdFx0Y29uc3QgcnVuTG9hZEFwaUNvbmZpZ3MgPSBsb2FkQXBpQ29uZmlncyhcclxuXHRcdFx0XHRcdFx0aHR0cENsaWVudCxcclxuXHRcdFx0XHRcdFx0a2V5Y2xvYWssXHJcblx0XHRcdFx0XHRcdGZvbGRlck5hbWUgYXMgdW5rbm93biBhcyBzdHJpbmcsXHJcblx0XHRcdFx0XHRcdG1pY3JvQXBwU2VydmljZVxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdGNvbnN0IHJ1bkxvYWRJbml0RGF0YSA9IGxvYWRJbml0RGF0YShodHRwQ2xpZW50KTtcclxuXHRcdFx0XHRcdGNvbnN0IHJ1bkxvYWRQbHVnaW5zID0gbG9hZFBsdWdpbnMoKTtcclxuXHRcdFx0XHRcdHJldHVybiBhc3luYyAoKSA9PiB7XHJcblx0XHRcdFx0XHRcdGF3YWl0IHJ1bkxvYWRBcGlDb25maWdzKCk7XHJcblx0XHRcdFx0XHRcdGF3YWl0IHJ1bkxvYWRJbml0RGF0YSgpO1xyXG5cdFx0XHRcdFx0XHRydW5Mb2FkUGx1Z2lucygpO1xyXG5cdFx0XHRcdFx0XHRhY3Rpdml0eVNlcnZpY2Uuc3RhcnQoeyBzaGVsbE1vZGU6IHRydWUgfSk7XHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0bXVsdGk6IHRydWUsXHJcblx0XHRcdFx0ZGVwczogW0h0dHBDbGllbnQsIEtleWNsb2FrU2VydmljZSwgUm91dGVyLCBpMThuRm9sZGVyTmFtZSwgTWljcm9BcHBTZXJ2aWNlLCBMb2NhdGlvbiwgQWN0aXZpdHlTZXJ2aWNlXVxyXG5cdFx0XHR9XHJcblx0XHRdXHJcblx0fTtcclxuXHJcblx0Ym9vdHN0cmFwQXBwbGljYXRpb24oQXBwQ29tcG9uZW50LCBhcHBDb25maWcpLmNhdGNoKChlcnIpID0+IGNvbnNvbGUuZXJyb3IoZXJyKSk7XHJcbn07XHJcbiJdfQ==
|
|
@@ -13,6 +13,7 @@ import { CustomRouteReuseStrategy, TabAwareUrlSerializer } from 'aril/boot/confi
|
|
|
13
13
|
import { getNgZone, loadPlugins } from 'aril/boot/config/plugins';
|
|
14
14
|
import { i18nFolderName } from 'aril/i18n';
|
|
15
15
|
import { provideHost } from 'aril/provider';
|
|
16
|
+
import { ActivityService } from 'aril/util/activity';
|
|
16
17
|
import { PubSubService } from 'aril/util/pub-sub';
|
|
17
18
|
import { appComponentLoader } from './appComponentLoader';
|
|
18
19
|
import { IsolatedLocationStrategy } from './isolated-location-strategy';
|
|
@@ -47,16 +48,17 @@ export const boot = (_appName, _routes, _menuItems) => {
|
|
|
47
48
|
getNgZone(),
|
|
48
49
|
{
|
|
49
50
|
provide: APP_INITIALIZER,
|
|
50
|
-
useFactory: (httpClient, keycloak, folderName) => {
|
|
51
|
+
useFactory: (httpClient, keycloak, folderName, activityService) => {
|
|
51
52
|
const runApiInit = setApiConfigOnMFEMode(httpClient, keycloak, folderName);
|
|
52
53
|
const runLoadPlugins = loadPlugins();
|
|
53
54
|
return async () => {
|
|
54
55
|
await runApiInit();
|
|
55
56
|
runLoadPlugins();
|
|
57
|
+
activityService.start({ shellMode: false });
|
|
56
58
|
};
|
|
57
59
|
},
|
|
58
60
|
multi: true,
|
|
59
|
-
deps: [HttpClient, KeycloakService, i18nFolderName]
|
|
61
|
+
deps: [HttpClient, KeycloakService, i18nFolderName, ActivityService]
|
|
60
62
|
},
|
|
61
63
|
importProvidersFrom(MonacoEditorModule.forRoot()),
|
|
62
64
|
{ provide: NGX_MONACO_EDITOR_CONFIG, useValue: monacoConfig }
|
|
@@ -154,6 +156,12 @@ export const boot = (_appName, _routes, _menuItems) => {
|
|
|
154
156
|
// (BreadcrumbService bilinçli olarak child-local bırakıldı: her tab kendi breadcrumb'ı.)
|
|
155
157
|
{ provide: PubSubService, useFactory: () => sharedAppRef.injector.get(PubSubService) },
|
|
156
158
|
{ provide: PrimeNGConfig, useFactory: () => sharedAppRef.injector.get(PrimeNGConfig) },
|
|
159
|
+
// ActivityService shared'da `APP_INITIALIZER` ile başlatıldı (Keycloak listener'ları + sessionId
|
|
160
|
+
// capture). Tab child injector'ında `ɵINJECTOR_SCOPE:'root'` yan etkisiyle ayrı bir instance
|
|
161
|
+
// üretilirdi — bu instance hiç `start()` çağrılmadığı için `track()` no-op olur ve aril-button
|
|
162
|
+
// click'leri sessizce kaybolur. Shared instance'ı forward ederek tek başlatılmış instance'ı
|
|
163
|
+
// her tab'a paylaştırıyoruz (authInterceptor'ın okuduğu `sessionId` ile birebir aynı).
|
|
164
|
+
{ provide: ActivityService, useFactory: () => sharedAppRef.injector.get(ActivityService) },
|
|
157
165
|
// Toast/confirm GLOBAL: tek shared MessageService/ConfirmationService. Aksi halde her tab
|
|
158
166
|
// kendi instance'ına sahip olur → host'tan tetiklenen toast MFE tab'ında (ya da tersi)
|
|
159
167
|
// görünmez. Shared instance ile tüm `<p-toast key="toast-root">` container'ları aynı kuyruğu dinler.
|
|
@@ -276,4 +284,4 @@ export const boot = (_appName, _routes, _menuItems) => {
|
|
|
276
284
|
throw e;
|
|
277
285
|
}
|
|
278
286
|
};
|
|
279
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC9ib290L21mZS9zcmMvYm9vdHN0cmFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNOLGVBQWUsRUFFZixjQUFjLEVBRWQsbUJBQW1CLEVBR25CLGVBQWUsRUFDZix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLE1BQU0sRUFDTixTQUFTLEVBQ1QsZUFBZSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFDTixrQkFBa0IsRUFDbEIsTUFBTSxFQUVOLGFBQWEsRUFDYixhQUFhLEVBQ2IseUJBQXlCLEVBQ3pCLGdCQUFnQixFQUNoQixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWpGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQVEsd0JBQXdCLEVBQWtCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxX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QUFDO1lBQ2pFLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxPQUFPLGdEQUFnRCxDQUFDLENBQUM7WUFDL0UsT0FBTztRQUNSLENBQUM7UUFDRCxNQUFNLENBQUMsQ0FBQztJQUNULENBQUM7QUFDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiwgTG9jYXRpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7XHJcblx0QVBQX0lOSVRJQUxJWkVSLFxyXG5cdEFwcGxpY2F0aW9uQ29uZmlnLFxyXG5cdEFwcGxpY2F0aW9uUmVmLFxyXG5cdENvbXBvbmVudFJlZixcclxuXHRFbnZpcm9ubWVudEluamVjdG9yLFxyXG5cdEVudmlyb25tZW50UHJvdmlkZXJzLFxyXG5cdFByb3ZpZGVyLFxyXG5cdGNyZWF0ZUNvbXBvbmVudCxcclxuXHRjcmVhdGVFbnZpcm9ubWVudEluamVjdG9yLFxyXG5cdGltcG9ydFByb3ZpZGVyc0Zyb20sXHJcblx0aW5qZWN0LFxyXG5cdGlzRGV2TW9kZSxcclxuXHTJtUlOSkVDVE9SX1NDT1BFXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNyZWF0ZUFwcGxpY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7XHJcblx0Um91dGVSZXVzZVN0cmF0ZWd5LFxyXG5cdFJvdXRlcixcclxuXHRSb3V0ZXMsXHJcblx0VXJsU2VyaWFsaXplcixcclxuXHRwcm92aWRlUm91dGVyLFxyXG5cdHdpdGhDb21wb25lbnRJbnB1dEJpbmRpbmcsXHJcblx0d2l0aFJvdXRlckNvbmZpZ1xyXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlU2VydmljZSwgUHJpbWVOR0NvbmZpZyB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XHJcblxyXG5pbXBvcnQgeyBLZXljbG9ha1NlcnZpY2UgfSBmcm9tICdrZXljbG9hay1hbmd1bGFyJztcclxuaW1wb3J0IHsgTW9uYWNvRWRpdG9yTW9kdWxlLCBOR1hfTU9OQUNPX0VESVRPUl9DT05GSUcgfSBmcm9tICduZ3gtbW9uYWNvLWVkaXRvci12Mic7XHJcblxyXG5pbXBvcnQgeyBjcmVhdGVCYXNlQXBwQ29uZmlnIH0gZnJvbSAnYXJpbC9ib290L2Jhc2UnO1xyXG5pbXBvcnQgeyBzZXRBcGlDb25maWdPbk1GRU1vZGUgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwaSc7XHJcbmltcG9ydCB7IEFwcHMsIEN1c3RvbVJvdXRlUmV1c2VTdHJhdGVneSwgUGx1Z2luTWVudUl0ZW0sIFRhYkF3YXJlVXJsU2VyaWFsaXplciB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvYXBwcyc7XHJcbmltcG9ydCB7IGdldE5nWm9uZSwgbG9hZFBsdWdpbnMgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL3BsdWdpbnMnO1xyXG5pbXBvcnQgeyBpMThuRm9sZGVyTmFtZSB9IGZyb20gJ2FyaWwvaTE4bic7XHJcbmltcG9ydCB7IHByb3ZpZGVIb3N0IH0gZnJvbSAnYXJpbC9wcm92aWRlcic7XHJcbmltcG9ydCB7IFB1YlN1YlNlcnZpY2UgfSBmcm9tICdhcmlsL3V0aWwvcHViLXN1Yic7XHJcblxyXG5pbXBvcnQgeyBhcHBDb21wb25lbnRMb2FkZXIgfSBmcm9tICcuL2FwcENvbXBvbmVudExvYWRlcic7XHJcbmltcG9ydCB7IElzb2xhdGVkTG9jYXRpb25TdHJhdGVneSB9IGZyb20gJy4vaXNvbGF0ZWQtbG9jYXRpb24tc3RyYXRlZ3knO1xyXG5pbXBvcnQgeyBtb25hY29Db25maWcgfSBmcm9tICcuL21vbmFjby5jb25maWcnO1xyXG5cclxuZXhwb3J0IHZhciBhcHBOYW1lOiBBcHBzO1xyXG5leHBvcnQgdmFyIG1lbnVJdGVtczogUGx1Z2luTWVudUl0ZW1bXSA9IFtdO1xyXG5cclxuLyoqXHJcbiAqIGBib290YCDDp2HEn3LEsWxhcsSxbsSxbiBpZGVtcG90ZW50IGthbG1hc8SxbsSxIHNhxJ9sYXlhbiBzeW5jIGd1YXJkLiBBeW7EsSByZW1vdGUgacOnaW5cclxuICogYmlyZGVuIGZhemxhIHBhcmFsZWwgYGJvb3QoJ3dkbScsIC4uLilgIMOnYcSfcsSxc8SxIGdlbGRpxJ9pbmRlLCBpbGsgYGN1c3RvbUVsZW1lbnRzLmRlZmluZWBcclxuICogdGFtYW1sYW5tYWRhbiBpa2luY2kgw6dhxJ9yxLEgYGN1c3RvbUVsZW1lbnRzLmdldGAgZ3VhcmQnxLFuxLEgZ2XDp2l5b3JkdSDihpIgaGVyIGlraXNpIGRlXHJcbiAqIGRlZmluZSBldG1leWUgw6dhbMSxxZ/EsXAgYE5vdFN1cHBvcnRlZEVycm9yOiB0aGUgbmFtZSBcImFwcC13ZG1cIiBoYXMgYWxyZWFkeSBiZWVuIHVzZWRgXHJcbiAqIGhhdGFzxLEgZsSxcmxhdMSxbMSxeW9yZHUuIFNldCBpbGUgc3luYyBtYXJrIGVkZXJlayB0ZWsgYmlyIGRlZmluZSBjeWNsZSfEsSBnYXJhbnRpIGVkaXlvcnV6LlxyXG4gKi9cclxuY29uc3QgYm9vdGVkQXBwcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG5cclxuZXhwb3J0IGNvbnN0IGJvb3QgPSAoX2FwcE5hbWU6IEFwcHMsIF9yb3V0ZXM6IFJvdXRlcywgX21lbnVJdGVtczogUGx1Z2luTWVudUl0ZW1bXSkgPT4ge1xyXG5cdGlmIChib290ZWRBcHBzLmhhcyhfYXBwTmFtZSkgfHwgY3VzdG9tRWxlbWVudHMuZ2V0KGBhcHAtJHtfYXBwTmFtZX1gKSkgcmV0dXJuO1xyXG5cdGJvb3RlZEFwcHMuYWRkKF9hcHBOYW1lKTtcclxuXHJcblx0YXBwTmFtZSA9IF9hcHBOYW1lO1xyXG5cdG1lbnVJdGVtcyA9IF9tZW51SXRlbXM7XHJcblxyXG5cdC8qKlxyXG5cdCAqICoqUGF5bGHFn8SxbGFuIGJhc2UgY29uZmlnKiog4oCUIHJlbW90ZSBiYcWfxLFuYSBURUsgYGNyZWF0ZUFwcGxpY2F0aW9uYC4gQcSfxLFyIHNlcnZpc2xlclxyXG5cdCAqIChIdHRwQ2xpZW50ICsgaW50ZXJjZXB0b3IgY2hhaW4sIEtleWNsb2FrLCBpMThuL1RyYW5zbG9jbywgTW9uYWNvLCBhbmltYXRpb25zKSBidXJhZGFcclxuXHQgKiB5YcWfYXI7IGBwcm92aWRlZEluYCB0YcWfxLFtYXlhbiBleHBsaWNpdCBwcm92aWRlciBvbGR1a2xhcsSxIGnDp2luIHTDvG0gdGFiJ2xhcsSxbiBjaGlsZFxyXG5cdCAqIGluamVjdG9yJ2xhcsSxbmRhbiBwYXJlbnQgb2xhcmFrIHBheWxhxZ/EsWzEsXIg4oaSIFJBTSBsaW5lZXIgYsO8ecO8bWV6LiBSb3V0ZXIvTG9jYXRpb24vXHJcblx0ICogUmV1c2VTdHJhdGVneS9VcmxTZXJpYWxpemVyIGJ1cmFkYSBZT0s7IG9ubGFyIHRhYiBiYcWfxLFuYSBpem9sZSBjaGlsZCBpbmplY3RvcidkYSB2ZXJpbGlyLlxyXG5cdCAqL1xyXG5cdGNvbnN0IHNoYXJlZEJhc2VDb25maWc6IEFwcGxpY2F0aW9uQ29uZmlnID0ge1xyXG5cdFx0cHJvdmlkZXJzOiBbXHJcblx0XHRcdGNyZWF0ZUJhc2VBcHBDb25maWcoeyBpMThuRm9sZGVyOiBfYXBwTmFtZSB9KSxcclxuXHRcdFx0cHJvdmlkZUhvc3QoX2FwcE5hbWUpLFxyXG5cdFx0XHRnZXROZ1pvbmUoKSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuXHRcdFx0XHR1c2VGYWN0b3J5OiAoaHR0cENsaWVudDogSHR0cENsaWVudCwga2V5Y2xvYWs6IEtleWNsb2FrU2VydmljZSwgZm9sZGVyTmFtZTogdHlwZW9mIGkxOG5Gb2xkZXJOYW1lKSA9PiB7XHJcblx0XHRcdFx0XHRjb25zdCBydW5BcGlJbml0ID0gc2V0QXBpQ29uZmlnT25NRkVNb2RlKGh0dHBDbGllbnQsIGtleWNsb2FrLCBmb2xkZXJOYW1lIGFzIHVua25vd24gYXMgQXBwcyk7XHJcblx0XHRcdFx0XHRjb25zdCBydW5Mb2FkUGx1Z2lucyA9IGxvYWRQbHVnaW5zKCk7XHJcblx0XHRcdFx0XHRyZXR1cm4gYXN5bmMgKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRhd2FpdCBydW5BcGlJbml0KCk7XHJcblx0XHRcdFx0XHRcdHJ1bkxvYWRQbHVnaW5zKCk7XHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0bXVsdGk6IHRydWUsXHJcblx0XHRcdFx0ZGVwczogW0h0dHBDbGllbnQsIEtleWNsb2FrU2VydmljZSwgaTE4bkZvbGRlck5hbWVdXHJcblx0XHRcdH0sXHJcblx0XHRcdGltcG9ydFByb3ZpZGVyc0Zyb20oTW9uYWNvRWRpdG9yTW9kdWxlLmZvclJvb3QoKSksXHJcblx0XHRcdHsgcHJvdmlkZTogTkdYX01PTkFDT19FRElUT1JfQ09ORklHLCB1c2VWYWx1ZTogbW9uYWNvQ29uZmlnIH1cclxuXHRcdF1cclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBSZW1vdGUgYmHFn8SxbmEgVEVLIHBheWxhxZ/EsWxhbiBgQXBwbGljYXRpb25SZWZgIOKAlCBjbG9zdXJlLXNjb3BlLiDEsGxrIGA8YXBwLSR7YXBwTmFtZX0+YFxyXG5cdCAqIGVsZW1lbnQnaSBgY3JlYXRlQXBwbGljYXRpb24oc2hhcmVkQmFzZUNvbmZpZylgIMOnYcSfxLFyxLFyLCBzb25yYWtpIHTDvG0gZWxlbWVudCdsZXIgYXluxLFcclxuXHQgKiBwcm9taXNlJ8SxIGJla2xlciAoZHVwbGljYXRlIEFwcGxpY2F0aW9uIHlhcmF0xLFtxLEgaW1rw6Juc8SxeikuIEhlciBlbGVtZW50IGtlbmRpIGNoaWxkXHJcblx0ICogaW5qZWN0b3IgKyBgY3JlYXRlQ29tcG9uZW50YCBpbGUga2VuZGkgYEFwcENvbXBvbmVudGAgdmlldyfEsW7EsSB5YXJhdMSxcCBzaGFyZWQgYXBwJ2VcclxuXHQgKiBgYXR0YWNoVmlld2AgaWxlIGJhxJ9sYXIuIFNoYXJlZCBhcHAgdXp1biDDtm3DvHJsw7xkw7xyICh0YWInbGFyIGthcGFuc2EgZGEgZGVzdHJveSBlZGlsbWV6KS5cclxuXHQgKlxyXG5cdCAqIGBjaGlsZFByb3ZpZGVyc2AndGFraSBgVHJhbnNsb2NvU2VydmljZWAgZmFjdG9yeSdzaSBidSByZWZlcmFuc8SxIGt1bGxhbmTEscSfxLEgacOnaW5cclxuXHQgKiBgY2hpbGRQcm92aWRlcnNgJ3RhbiDDlk5DRSB0YW7EsW1sYW7EsXIgKGZvcndhcmQgVERaJ3lpIMO2bmxlcikuXHJcblx0ICovXHJcblx0bGV0IHNoYXJlZEFwcFJlZjogQXBwbGljYXRpb25SZWYgfCBudWxsID0gbnVsbDtcclxuXHRsZXQgc2hhcmVkQXBwUHJvbWlzZTogUHJvbWlzZTxBcHBsaWNhdGlvblJlZj4gfCBudWxsID0gbnVsbDtcclxuXHJcblx0LyoqXHJcblx0ICogKipUYWIgYmHFn8SxbmEgaXpvbGUgUm91dGVyIHN0YWNrKiog4oCUIGhlciBgPGFwcC0ke2FwcE5hbWV9PmAga2VuZGkgY2hpbGRcclxuXHQgKiBgRW52aXJvbm1lbnRJbmplY3RvcmAnxLFuZGEgYnVubGFyxLEgYWzEsXIuIGDJtUlOSkVDVE9SX1NDT1BFOiAncm9vdCdgIGNoaWxkJ8SxICdyb290J1xyXG5cdCAqIHNjb3BlIHlhcGFyIChBbmd1bGFyIGBSM0luamVjdG9yYCBjdG9yOiBgc2NvcGVzLmFkZCgncm9vdCcpYCk7IGLDtnlsZWNlIGBwcm92aWRlUm91dGVyYCfEsW5cclxuXHQgKiBpbmplY3QgZXR0acSfaSBgcHJvdmlkZWRJbjoncm9vdCdgIFJvdXRlciBzZXJ2aXNsZXJpIOKAlCBgUm91dGVyYCwgYENoaWxkcmVuT3V0bGV0Q29udGV4dHNgLFxyXG5cdCAqIGBMb2NhdGlvbmAsIGBOYXZpZ2F0aW9uVHJhbnNpdGlvbnNgIHZiLiDigJQgY2hpbGQtTE9DQUwgw7xyZXRpbGlyLiBTb251w6c6IGhlciB0YWIga2VuZGlcclxuXHQgKiBSb3V0ZXIgKyBrZW5kaSBgUm91dGVyT3V0bGV0YCBjb250ZXh0J2luZSBzYWhpcCBvbHVyIOKGkiAqKjEgUm91dGVyIDogMSBvdXRsZXQqKi5cclxuXHQgKlxyXG5cdCAqIE5lZGVuIGdlcmVrbGk6IHBheWxhxZ/EsWxhbiB0ZWsgQXBwbGljYXRpb24nZGEgTiBgPHJvdXRlci1vdXRsZXQ+YCBheW7EsSB0ZWtcclxuXHQgKiBgQ2hpbGRyZW5PdXRsZXRDb250ZXh0c2AnZSBcInByaW1hcnlcIiBkaXllIGtheWRvbHVwIGJpcmJpcmluaSBleml5b3JkdSAoYGNvbnRleHRzLnNldGBcclxuXHQgKiBvdmVyd3JpdGUpIOKGkiB0YWIgZ2XDp2nFn2kgc29ucmFzxLEgYXluxLEgdGFiIGnDp2kgbmF2aWdhc3lvbiAobGlzdOKGkmRldGFpbCkgeWFubMSxxZ8gb3V0bGV0J2VcclxuXHQgKiByZW5kZXIgb2x1eW9yZHUuIENoaWxkLWluamVjdG9yIGl6b2xhc3lvbnUgYnVudSBrw7ZrdGVuIMOnw7Z6ZXIuXHJcblx0ICpcclxuXHQgKiAqKlRyYW5zbG9jb1NlcnZpY2UgaXN0aXNuYXPEsSoqOiBgJ3Jvb3QnYCBzY29wZSBvbnUgZGEgY2hpbGQtbG9jYWwgeWFwYXJkxLE7IGFtYSBnbG9iYWxcclxuXHQgKiAoc2NvcGUnc3V6KSDDp2V2aXJpbGVyIHNoYXJlZCBhcHAnaW4gaW5pdCBha8SxxZ/EsW5kYSB5w7xrbGVuZGnEn2luZGVuIOKAlCBgY3JlYXRlQ29tcG9uZW50YFxyXG5cdCAqIGBBUFBfSU5JVElBTElaRVJgIMOnYWzEscWfdMSxcm1heiDigJQgY2hpbGQtbG9jYWwgc2VydmljZSdpbiBnbG9iYWwgY2FjaGUnaSBib8WfIGthbMSxcCBoYW0ga2V5XHJcblx0ICogZ8O2c3Rlcml5b3JkdS4gVGFiIGJhxZ/EsW5hIGF5csSxIGRpbCBzZW5hcnlvc3UgeW9rOyBzZXJ2aWNlJ2kgc2hhcmVkIGFwcCd0ZW4gcGF5bGHFn3TEsXLEsXlvcnV6XHJcblx0ICogKGdsb2JhbCDDp2V2aXJpIHRlayB5ZXJkZSB5w7xrbGVuaXIsIHRlayB0cmFuc2xhdGlvbiBjYWNoZSDihpIgZWsgUkFNIGthemFuY8SxKS4gU2NvcGUgw6dldmlyaWxlcmlcclxuXHQgKiAoYHByb3ZpZGVpMThuU2NvcGVgKSBjb21wb25lbnQtbGV2ZWwgc2HEn2xhbmTEscSfxLEgacOnaW4gcGF5bGHFn8SxbGFuIHNlcnZpY2UnbGUgZGUgw6dhbMSxxZ/EsXIuXHJcblx0ICpcclxuXHQgKiBOT1Q6IGDJtUlOSkVDVE9SX1NDT1BFYCBBbmd1bGFyIHByaXZhdGUgQVBJJ3NpZGlyOyBtaW5vciBzw7xyw7xtIHnDvGtzZWx0bWVsZXJpbmRlIGRhdnJhbsSxxZ/EsVxyXG5cdCAqIGRvxJ9ydWxhbm1hbMSxIChhxZ9hxJ/EsWRha2kgUE9DIGl6b2xhc3lvbiBsb2cndSBidW51biBpw6dpbiBixLFyYWvEsWxkxLEpLlxyXG5cdCAqL1xyXG5cdGNvbnN0IGNoaWxkUHJvdmlkZXJzOiBBcnJheTxQcm92aWRlciB8IEVudmlyb25tZW50UHJvdmlkZXJzPiA9IFtcclxuXHRcdHsgcHJvdmlkZTogybVJTkpFQ1RPUl9TQ09QRSwgdXNlVmFsdWU6ICdyb290JyB9LFxyXG5cdFx0cHJvdmlkZVJvdXRlcihcclxuXHRcdFx0X3JvdXRlcyxcclxuXHRcdFx0d2l0aENvbXBvbmVudElucHV0QmluZGluZygpLFxyXG5cdFx0XHR3aXRoUm91dGVyQ29uZmlnKHsgb25TYW1lVXJsTmF2aWdhdGlvbjogJ3JlbG9hZCcgfSlcclxuXHRcdCksXHJcblx0XHR7IHByb3ZpZGU6IExvY2F0aW9uU3RyYXRlZ3ksIHVzZUNsYXNzOiBJc29sYXRlZExvY2F0aW9uU3RyYXRlZ3kgfSxcclxuXHRcdHsgcHJvdmlkZTogTG9jYXRpb24sIHVzZUNsYXNzOiBMb2NhdGlvbiB9LFxyXG5cdFx0eyBwcm92aWRlOiBSb3V0ZVJldXNlU3RyYXRlZ3ksIHVzZUV4aXN0aW5nOiBDdXN0b21Sb3V0ZVJldXNlU3RyYXRlZ3kgfSxcclxuXHRcdHsgcHJvdmlkZTogVXJsU2VyaWFsaXplciwgdXNlRXhpc3Rpbmc6IFRhYkF3YXJlVXJsU2VyaWFsaXplciB9LFxyXG5cdFx0eyBwcm92aWRlOiBUcmFuc2xvY29TZXJ2aWNlLCB1c2VGYWN0b3J5OiAoKSA9PiBzaGFyZWRBcHBSZWYhLmluamVjdG9yLmdldChUcmFuc2xvY29TZXJ2aWNlKSB9LFxyXG5cdFx0Ly8gYMm1SU5KRUNUT1JfU0NPUEU6J3Jvb3QnYCB5YW4gZXRraXNpOiBgQXBwbGljYXRpb25SZWZgIGRlIGBwcm92aWRlZEluOidyb290J2Agb2xkdcSfdSBpw6dpblxyXG5cdFx0Ly8gY2hpbGQgaW5qZWN0b3InZGEgY2hpbGQtTE9LQUwgKHNhaHRlKSBiaXIgaW5zdGFuY2Ugw7xyZXRpbGlyZGkg4oCUIGJ1IGluc3RhbmNlIE5nWm9uZSd1blxyXG5cdFx0Ly8gdGljayBkw7ZuZ8O8c8O8bmUgYmHEn2zEsSBERcSexLBMRMSwUi4gU29udcOnOiBidSBhcHBSZWYnZSBgYXR0YWNoVmlld2AgZWRpbGVuIHZpZXcnbGFyIGhpw6cgY2hhbmdlXHJcblx0XHQvLyBkZXRlY3Rpb24gYWxtYXouIEFwcENvbXBvbmVudCdpIGJpeiBhw6fEsWvDp2EgYHNoYXJlZEFwcFJlZi5hdHRhY2hWaWV3YCBpbGUgYmHEn2xhZMSxxJ/EsW3EsXogacOnaW5cclxuXHRcdC8vIMOnYWzEscWfxLFyOyBhbWEgYGluamVjdChBcHBsaWNhdGlvblJlZilgIHlhcGFuIMO8w6fDvG5jw7wgdGFyYWYga29kIChQcmltZU5HIGBEaWFsb2dTZXJ2aWNlYCDihpJcclxuXHRcdC8vIGB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3YCkgY2hpbGQtbG9jYWwgc2FodGUgYXBwUmVmJ2kgYWzEsXAgZGlhbG9nJ3Ugb25hIGJhxJ9sxLF5b3JkdSDihpIgZGlhbG9nXHJcblx0XHQvLyB5YXJhdMSxbMSxeW9yIGFtYSBgKm5nSWY9XCJ2aXNpYmxlXCJgIGhpw6cgcmVuZGVyIGVkaWxtaXlvcmR1IChib8WfIGHDp8SxbMSxeW9yZHUpLlxyXG5cdFx0Ly9cclxuXHRcdC8vIMOHw7Z6w7xtIOKAlCBgc2hhcmVkQXBwUmVmYCdpIHNhcmFuIFByb3h5OiBUw5xNIMO8eWVsZXIgKGF0dGFjaFZpZXcvZGV0YWNoVmlldy90aWNrL2NvbXBvbmVudHPigKYpXHJcblx0XHQvLyBnZXLDp2VrIGBzaGFyZWRBcHBSZWZgJ2UgZGVsZWdlIG9sdXIgKG1ldGhvZCdsYXIgYHRhcmdldGAnYSBiaW5kJ2xpIOKGkiBwcml2YXRlIGZpZWxkIGRhaGlsXHJcblx0XHQvLyBkb8SfcnUgYHRoaXNgKSwgVEVLIGZhcmsgYC5pbmplY3RvcmAg4oaSIGJ1IHRhYifEsW4gY2hpbGQgaW5qZWN0b3InxLEuIE5lZGVuIGtyaXRpazogUHJpbWVOR1xyXG5cdFx0Ly8gYERpYWxvZ1NlcnZpY2VgIGRpYWxvZyd1IGBjcmVhdGVDb21wb25lbnQoLi4uLCB7IGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuYXBwUmVmLmluamVjdG9yIH0pYFxyXG5cdFx0Ly8gaWxlIHlhcmF0xLFyLiBEw7x6IGBzaGFyZWRBcHBSZWZgIGTDtm5lcnNlayBkaWFsb2cgacOnZXJpxJ9pIHNoYXJlZCBST09UJ3RhIMOnw7Z6w7xsw7xyLCBzYXlmYSBpc2VcclxuXHRcdC8vIGNoaWxkIGluamVjdG9yJ2RhIOKGkiBgcHJvdmlkZWRJbjoncm9vdCdgIGhlciBzZXJ2aXMgxLBLxLAgYXlyxLEgaW5zdGFuY2Ugb2x1ciAoc3BsaXQtYnJhaW4pIHZlXHJcblx0XHQvLyBCZWhhdmlvclN1YmplY3QgdGFiYW5sxLEgc2F5ZmHihpRkaWFsb2cgc3RhdGUgc2Vua3Jvbml6ZSBPTE1BWiAoc2XDp2lsaSBrYXnEsXQgZGlhbG9nJ2RhIG51bGwpLlxyXG5cdFx0Ly8gYC5pbmplY3RvcmAnxLEgY2hpbGQnYSB5w7ZubGVuZGlyaW5jZSBkaWFsb2cgacOnZXJpxJ9pIHNheWZheWxhIEFZTkkgaW5qZWN0b3InZGEgw6fDtnplciDihpIgb3RvbWF0aWtcclxuXHRcdC8vIHRlayBpbnN0YW5jZSwgVMOcTSAobWV2Y3V0K2dlbGVjZWspIHNlcnZpc2xlciBpw6dpbiDigJQgc2VydmlzIGxpc3Rlc2kgdHV0bWF5YSBnZXJlayB5b2suXHJcblx0XHQvLyBgYXR0YWNoVmlld2AgeWluZSBgc2hhcmVkQXBwUmVmYCdlIGdpdHRpxJ9pIGnDp2luIHRlayB0aWNrIGTDtm5nw7xzw7wvY2hhbmdlIGRldGVjdGlvbiBrb3J1bnVyLlxyXG5cdFx0e1xyXG5cdFx0XHRwcm92aWRlOiBBcHBsaWNhdGlvblJlZixcclxuXHRcdFx0dXNlRmFjdG9yeTogKCkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHRhYkluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xyXG5cdFx0XHRcdHJldHVybiBuZXcgUHJveHkoc2hhcmVkQXBwUmVmISwge1xyXG5cdFx0XHRcdFx0Z2V0KHRhcmdldCwgcHJvcCkge1xyXG5cdFx0XHRcdFx0XHRpZiAocHJvcCA9PT0gJ2luamVjdG9yJykgcmV0dXJuIHRhYkluamVjdG9yO1xyXG5cdFx0XHRcdFx0XHQvLyBgbmdPbkRlc3Ryb3lgJ3UgR8SwWkxFICh1bmRlZmluZWQgZMO2bmTDvHIpLiBBa3NpIGhhbGRlIGBpbmplY3QoQXBwbGljYXRpb25SZWYpYFxyXG5cdFx0XHRcdFx0XHQvLyB5YXBhbiB0YWIgY2hpbGQgaW5qZWN0b3InxLEgKFByaW1lTkcgRGlhbG9nU2VydmljZSB2ZXlhIGHFn2HEn8SxZGFraSBkZXYgZ3VhcmQpXHJcblx0XHRcdFx0XHRcdC8vIHByb3h5J3lpIGtlbmRpIGBfbmdPbkRlc3Ryb3lIb29rc2AndW5hIGtheWRlZGVyIChSM0luamVjdG9yLmh5ZHJhdGUg4oaSXHJcblx0XHRcdFx0XHRcdC8vIGhhc09uRGVzdHJveT10cnVlKSB2ZSB0YWIga2FwYW7EscWfxLFuZGEgYGNoaWxkSW5qZWN0b3IuZGVzdHJveSgpYCDihpJcclxuXHRcdFx0XHRcdFx0Ly8gYHNoYXJlZEFwcFJlZi5uZ09uRGVzdHJveSgpYCDihpIgYcOnxLFrIFTDnE0gdGFiJ2xhcsSxbiB2aWV3J2xhcsSxbsSxIGRlc3Ryb3kgZWRpcFxyXG5cdFx0XHRcdFx0XHQvLyBzaGFyZWQgYXBwJ2kgw7ZsZMO8csO8ci4gU2hhcmVkIGFwcCdpbiBsaWZlY3ljbGUnxLEgYm9vdHN0cmFwJ2EgYWl0dGlyLCB0YWInYSBkZcSfaWxcclxuXHRcdFx0XHRcdFx0Ly8gKGdlcsOnZWsgYHNoYXJlZEFwcFJlZi5uZ09uRGVzdHJveWAgZXRraWxlbm1lejsgeWFsbsSxemNhIHByb3h5IMO8emVyaW5kZW4gZ2l6bGVuaXIpLlxyXG5cdFx0XHRcdFx0XHRpZiAocHJvcCA9PT0gJ25nT25EZXN0cm95JykgcmV0dXJuIHVuZGVmaW5lZDtcclxuXHRcdFx0XHRcdFx0Y29uc3QgdmFsdWUgPSBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3AsIHRhcmdldCk7XHJcblx0XHRcdFx0XHRcdHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgPyB2YWx1ZS5iaW5kKHRhcmdldCkgOiB2YWx1ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdC8vIFRhcmFtYSAobG9nMTUpIGlsZSBzYXB0YW5hbiwgY2hpbGQtbG9jYWwgb2x1bmNhIGJvenVsYW4gZWsgYHByb3ZpZGVkSW46J3Jvb3QnYCBzZXJ2aXNsZXJpOlxyXG5cdFx0Ly8g4oCiIFB1YlN1YlNlcnZpY2Ug4oCUIE1GRSduaW4gYGJyZWFkY3J1bWJVcGRhdGVkYCBldmVudCdpIGhvc3QgYGhpc3Rvcnkuc2VydmljZWAnZSB1bGHFn21hbMSxO1xyXG5cdFx0Ly8gICBjaGlsZC1sb2NhbCBvbHVuY2EgTUZF4oaUaG9zdCBldmVudCBrw7ZwcsO8c8O8IGtvcHV5b3JkdS5cclxuXHRcdC8vIOKAoiBQcmltZU5HQ29uZmlnIOKAlCBkaW5hbWlrIGRpYWxvZydsYXIgc2hhcmVkIHJvb3QgY29udGV4dCdpbmRlIHlhcmF0xLFsZMSxxJ/EsSBpw6dpbiBQcmltZU5HXHJcblx0XHQvLyAgIMOnZXZpcmlsZXJpIChjYWxlbmRhci9wYWdpbmF0b3IgdmIuKSB2ZSBgc2V0VHJhbnNsYXRpb25gIHNoYXJlZCBpbnN0YW5jZSd0YW4gb2t1bm1hbMSxLlxyXG5cdFx0Ly8gKEJyZWFkY3J1bWJTZXJ2aWNlIGJpbGluw6dsaSBvbGFyYWsgY2hpbGQtbG9jYWwgYsSxcmFrxLFsZMSxOiBoZXIgdGFiIGtlbmRpIGJyZWFkY3J1bWInxLEuKVxyXG5cdFx0eyBwcm92aWRlOiBQdWJTdWJTZXJ2aWNlLCB1c2VGYWN0b3J5OiAoKSA9PiBzaGFyZWRBcHBSZWYhLmluamVjdG9yLmdldChQdWJTdWJTZXJ2aWNlKSB9LFxyXG5cdFx0eyBwcm92aWRlOiBQcmltZU5HQ29uZmlnLCB1c2VGYWN0b3J5OiAoKSA9PiBzaGFyZWRBcHBSZWYhLmluamVjdG9yLmdldChQcmltZU5HQ29uZmlnKSB9LFxyXG5cdFx0Ly8gVG9hc3QvY29uZmlybSBHTE9CQUw6IHRlayBzaGFyZWQgTWVzc2FnZVNlcnZpY2UvQ29uZmlybWF0aW9uU2VydmljZS4gQWtzaSBoYWxkZSBoZXIgdGFiXHJcblx0XHQvLyBrZW5kaSBpbnN0YW5jZSfEsW5hIHNhaGlwIG9sdXIg4oaSIGhvc3QndGFuIHRldGlrbGVuZW4gdG9hc3QgTUZFIHRhYifEsW5kYSAoeWEgZGEgdGVyc2kpXHJcblx0XHQvLyBnw7Zyw7xubWV6LiBTaGFyZWQgaW5zdGFuY2UgaWxlIHTDvG0gYDxwLXRvYXN0IGtleT1cInRvYXN0LXJvb3RcIj5gIGNvbnRhaW5lcidsYXLEsSBheW7EsSBrdXlydcSfdSBkaW5sZXIuXHJcblx0XHR7IHByb3ZpZGU6IE1lc3NhZ2VTZXJ2aWNlLCB1c2VGYWN0b3J5OiAoKSA9PiBzaGFyZWRBcHBSZWYhLmluamVjdG9yLmdldChNZXNzYWdlU2VydmljZSkgfSxcclxuXHRcdHsgcHJvdmlkZTogQ29uZmlybWF0aW9uU2VydmljZSwgdXNlRmFjdG9yeTogKCkgPT4gc2hhcmVkQXBwUmVmIS5pbmplY3Rvci5nZXQoQ29uZmlybWF0aW9uU2VydmljZSkgfVxyXG5cdFx0Ly8gU2VsZWN0aW9uR3JvdXBTZXJ2aWNlIGJpbGluw6dsaSBvbGFyYWsgQlVSQURBIFlPSzogdMO8bSBzdGF0ZSdpIChzaWduYWwgKyBsb2FkZWQvbG9hZGluZyArXHJcblx0XHQvLyBpbml0IGZsYWcnaSkgZ2xvYmFsVGhpcyBicmlkZ2UnZGUgeWHFn2FyOyBjaGlsZC1sb2NhbCBpbnN0YW5jZSdsYXIgZGEgYXluxLEgc3RhdGUnaSBhbGlhcydsYXIsXHJcblx0XHQvLyBidSB5w7x6ZGVuIGluc3RhbmNlIHNhecSxc8SxbsSxbiDDtm5lbWkgeW9rdHVyIOKAlCBmb3J3YXJkaW5nIHlhbG7EsXpjYSBpbnN0YW5jZS1sb2NhbCBzdGF0ZSdpIG9sYW5cclxuXHRcdC8vIHNlcnZpc2xlciAoTWVzc2FnZVNlcnZpY2UgdmIuKSBpw6dpbiBnZXJla2xpZGlyLlxyXG5cdF07XHJcblxyXG5cdGNvbnN0IGFwcENvbXBvbmVudFByb21pc2UgPSBhcHBDb21wb25lbnRMb2FkZXIoKTtcclxuXHJcblx0Y2xhc3MgTUZFQXBwRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHtcclxuXHRcdHByaXZhdGUgY2hpbGRJbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvciB8IG51bGwgPSBudWxsO1xyXG5cdFx0cHJpdmF0ZSBjb21wUmVmOiBDb21wb25lbnRSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcclxuXHRcdHByaXZhdGUgaXNCb290c3RyYXBwaW5nID0gZmFsc2U7XHJcblx0XHRwcml2YXRlIGRlc3Ryb3lUaW1lcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcclxuXHJcblx0XHRhc3luYyBjb25uZWN0ZWRDYWxsYmFjaygpOiBQcm9taXNlPHZvaWQ+IHtcclxuXHRcdFx0Ly8gU3RyYXRlZ3kgaGlkZGVuIGNvbnRhaW5lciDihpQgdmlldyBhcmFzxLEgdGHFn8SxbWFsYXJkYSByZS1ib290c3RyYXAnxLEgw7ZubGUg4oCUXHJcblx0XHRcdC8vIHZpZXcgemF0ZW4geWFyYXTEsWxkxLF5c2Egc2tpcC4gZGVzdHJveVRpbWVyIHBlbmRpbmcgaXNlIGlwdGFsIGV0LlxyXG5cdFx0XHRpZiAodGhpcy5jb21wUmVmIHx8IHRoaXMuaXNCb290c3RyYXBwaW5nKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMuZGVzdHJveVRpbWVyKSB7XHJcblx0XHRcdFx0XHRjbGVhclRpbWVvdXQodGhpcy5kZXN0cm95VGltZXIpO1xyXG5cdFx0XHRcdFx0dGhpcy5kZXN0cm95VGltZXIgPSBudWxsO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5pc0Jvb3RzdHJhcHBpbmcgPSB0cnVlO1xyXG5cdFx0XHR0cnkge1xyXG5cdFx0XHRcdC8vIFBheWxhxZ/EsWxhbiBBcHBsaWNhdGlvbiDigJQgaWxrIMOnYcSfxLFyYW4geWFyYXTEsXIsIGRpxJ9lcmxlcmkgYXluxLEgcHJvbWlzZSfEsSBiZWtsZXIuXHJcblx0XHRcdFx0aWYgKCFzaGFyZWRBcHBQcm9taXNlKSB7XHJcblx0XHRcdFx0XHRzaGFyZWRBcHBQcm9taXNlID0gY3JlYXRlQXBwbGljYXRpb24oc2hhcmVkQmFzZUNvbmZpZyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGNvbnN0IFthcHBSZWYsIEFwcENvbXBvbmVudF0gPSBhd2FpdCBQcm9taXNlLmFsbChbc2hhcmVkQXBwUHJvbWlzZSwgYXBwQ29tcG9uZW50UHJvbWlzZV0pO1xyXG5cdFx0XHRcdHNoYXJlZEFwcFJlZiA9IGFwcFJlZjtcclxuXHJcblx0XHRcdFx0Ly8gQnUgdGFiIGnDp2luIGl6b2xlIFJvdXRlciBzdGFjaydpIGJhcsSxbmTEsXJhbiBjaGlsZCBpbmplY3Rvci5cclxuXHRcdFx0XHRjb25zdCB0YWJJZCA9IHRoaXMuZ2V0QXR0cmlidXRlKCdhcmlsLXRhYi1pZCcpID8/ICcnO1xyXG5cdFx0XHRcdHRoaXMuY2hpbGRJbmplY3RvciA9IGNyZWF0ZUVudmlyb25tZW50SW5qZWN0b3IoXHJcblx0XHRcdFx0XHRjaGlsZFByb3ZpZGVycyxcclxuXHRcdFx0XHRcdGFwcFJlZi5pbmplY3RvcixcclxuXHRcdFx0XHRcdGBtZmU6JHtfYXBwTmFtZX06JHt0YWJJZCB8fCAncGVuZGluZyd9YFxyXG5cdFx0XHRcdCk7XHJcblxyXG5cdFx0XHRcdC8vIFtIaWJyaXQgaXpvbGFzeW9uIGd1YXJkIOKAlCBrYWzEsWPEsV0gYMm1SU5KRUNUT1JfU0NPUEU6J3Jvb3QnYCBpbGUgY2hpbGQgaW5qZWN0b3InxLFuXHJcblx0XHRcdFx0Ly8gS0VORMSwIFJvdXRlciArIENoaWxkcmVuT3V0bGV0Q29udGV4dHMnaSBvbG1hc8SxLCB0YWIgaXpvbGFzeW9udW51biB0ZW1lbGlkaXJcclxuXHRcdFx0XHQvLyAoXCIxIFJvdXRlciA6IDEgb3V0bGV0XCIpLiBCdSBwcml2YXRlIEFQSSBBbmd1bGFyIHVwZ3JhZGUnaW5kZSBkYXZyYW7EscWfIGRlxJ9pxZ90aXJpcnNlXHJcblx0XHRcdFx0Ly8gYnVyYWRhIGVya2VuIHlha2FsYW7EsXI7IGFrc2kgaGFsZGUgXCIxIFJvdXRlciA6IE4gb3V0bGV0XCIgYnVnJ8SxIHNlc3NpemNlIGdlcmkgZMO2bmVyLlxyXG5cdFx0XHRcdGlmIChpc0Rldk1vZGUoKSAmJiB0aGlzLmNoaWxkSW5qZWN0b3IuZ2V0KFJvdXRlcikgPT09IGFwcFJlZi5pbmplY3Rvci5nZXQoUm91dGVyKSkge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5lcnJvcihcclxuXHRcdFx0XHRcdFx0YFtib290OiR7X2FwcE5hbWV9XSBIxLBCUsSwVCDEsFpPTEFTWU9OIEJPWlVMRFU6IGNoaWxkIFJvdXRlciBzaGFyZWQgcm9vdCBpbGUgYXluxLEgaW5zdGFuY2UhIGAgK1xyXG5cdFx0XHRcdFx0XHRcdGDJtUlOSkVDVE9SX1NDT1BFIGRhdnJhbsSxxZ/EsSBkZcSfacWfbWnFnyBvbGFiaWxpciAoQW5ndWxhciB1cGdyYWRlPykg4oCUIHRhYiBpem9sYXN5b251IMOnYWzEscWfbWF6LmBcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyBbRGlhbG9nIGluamVjdG9yIGvDtnByw7xzw7wgZ3VhcmQg4oCUIGthbMSxY8SxXSBBcHBsaWNhdGlvblJlZiBwcm94eSdzaW5pbiBgLmluamVjdG9yYCfEsSBidVxyXG5cdFx0XHRcdC8vIHRhYifEsW4gY2hpbGQgaW5qZWN0b3InxLFuxLEgZ8O2c3Rlcm1lbGk7IGFrc2kgaGFsZGUgUHJpbWVORyBEaWFsb2dTZXJ2aWNlIGRpYWxvZyBpw6dlcmnEn2luaVxyXG5cdFx0XHRcdC8vIHNoYXJlZCByb290J3RhIMOnw7Z6ZXIg4oaSIHNheWZh4oaUZGlhbG9nIGBwcm92aWRlZEluOidyb290J2Agc3BsaXQtYnJhaW4gZ2VyaSBkw7ZuZXIuIFByaW1lTkdcclxuXHRcdFx0XHQvLyB5YSBkYSBBbmd1bGFyIHVwZ3JhZGUnaSBgYXBwUmVmLmluamVjdG9yYCBrdWxsYW7EsW3EsW7EsSBkZcSfacWfdGlyaXJzZSBidXJhZGEgeWFrYWxhbsSxci5cclxuXHRcdFx0XHRpZiAoaXNEZXZNb2RlKCkgJiYgdGhpcy5jaGlsZEluamVjdG9yLmdldChBcHBsaWNhdGlvblJlZikuaW5qZWN0b3IgIT09IHRoaXMuY2hpbGRJbmplY3Rvcikge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5lcnJvcihcclxuXHRcdFx0XHRcdFx0YFtib290OiR7X2FwcE5hbWV9XSBESUFMT0cgSU5KRUNUT1IgS8OWUFLDnFPDnCBCT1pVTERVOiBBcHBsaWNhdGlvblJlZi5pbmplY3RvciB0YWIgY2hpbGQgYCArXHJcblx0XHRcdFx0XHRcdFx0YGluamVjdG9yJ8SxIGfDtnN0ZXJtaXlvciDigJQgZGlhbG9nIGnDp2VyacSfaSBzYXlmYWRhbiBmYXJrbMSxIGluamVjdG9yJ2RhIMOnw7Z6w7xsw7xyIChzcGxpdC1icmFpbikuYFxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC8vIEFwcENvbXBvbmVudCdpIGNoaWxkIGluamVjdG9yIGNvbnRleHQnaW5kZSB5YXJhdCDihpIgaW5qZWN0KFJvdXRlcikvTG9jYXRpb25TdHJhdGVneVxyXG5cdFx0XHRcdC8vIGNoaWxkLWxvY2FsOyBpbmplY3QoTWZlQnJpZGdlKS9IdHRwQ2xpZW50L0tleWNsb2FrL1RyYW5zbG9jb1NlcnZpY2UgdmIuIHBhcmVudCd0YW5cclxuXHRcdFx0XHQvLyBwYXlsYcWfxLFtbMSxLiBgYXR0YWNoVmlld2Agc2hhcmVkIGFwcCdpbiBjaGFuZ2UgZGV0ZWN0aW9uIGTDtm5nw7xzw7xuZSBiYcSfbGFyLiAoYGJvb3RzdHJhcGBcclxuXHRcdFx0XHQvLyBkZcSfaWw6IEFQUF9CT09UU1RSQVBfTElTVEVORVIgw6dhbMSxxZ9tYXosIGNoaWxkIFJvdXRlcifEsW4gaW5pdGlhbCBuYXZpZ2F0aW9uJ8SxbsSxXHJcblx0XHRcdFx0Ly8gQXBwQ29tcG9uZW50IGhvc3QtUm91dGVyIHN5bmMnaSBgc2FmZU5hdmlnYXRlYCBpbGUgeWFwxLF5b3IuKVxyXG5cdFx0XHRcdHRoaXMuY29tcFJlZiA9IGNyZWF0ZUNvbXBvbmVudChBcHBDb21wb25lbnQgYXMgbmV2ZXIsIHtcclxuXHRcdFx0XHRcdGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuY2hpbGRJbmplY3RvcixcclxuXHRcdFx0XHRcdGhvc3RFbGVtZW50OiB0aGlzXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0YXBwUmVmLmF0dGFjaFZpZXcodGhpcy5jb21wUmVmLmhvc3RWaWV3KTtcclxuXHRcdFx0XHQvLyBCYcWfYXLEsWzEsSBib290OiBndWFyZCBhcnTEsWsgYGNvbXBSZWZgIMO8emVyaW5kZW4gw6dhbMSxxZ/EsXIg4oaSIGBpc0Jvb3RzdHJhcHBpbmdgJ2kgYsSxcmFrLlxyXG5cdFx0XHRcdC8vIChhd2FpdCBzxLFyYXPEsW5kYSBkaXNjb25uZWN0IG9sdXAgaGF0YSBvbHXFn21henNhIGZsYWcgdGFrxLFsxLEga2FsbWFzxLFuOyBha3NpIGhhbGRlXHJcblx0XHRcdFx0Ly8gcmVjb25uZWN0J3RlIGd1YXJkIGVya2VuIHJldHVybiBlZGlwIHRhYifEsSBrYWzEsWPEsSBib8WfIGLEsXJha8Sxci4pXHJcblx0XHRcdFx0dGhpcy5pc0Jvb3RzdHJhcHBpbmcgPSBmYWxzZTtcclxuXHRcdFx0fSBjYXRjaCAoZXJyKSB7XHJcblx0XHRcdFx0Y29uc29sZS5lcnJvcihgW2Jvb3Q6JHtfYXBwTmFtZX1dIGFwcGxpY2F0aW9uIGJvb3RzdHJhcCBoYXRhc8SxOmAsIGVycik7XHJcblx0XHRcdFx0dGhpcy5pc0Jvb3RzdHJhcHBpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHQvLyBzaGFyZWRBcHAgaGVuw7x6IHNldCBlZGlsbWVkaXlzZSAoY3JlYXRlQXBwbGljYXRpb24gYmHFn2FyxLFzxLF6KSBwcm9taXNlJ8SxIHPEsWbEsXJsYSBraVxyXG5cdFx0XHRcdC8vIHNvbnJha2kgdGFiIHJldHJ5IGVkZWJpbHNpbiDigJQgYWtzaSBoYWxkZSByZWplY3RlZCBwcm9taXNlIGNsb3N1cmUnZGEga2FsxLFjxLEga2FsxLFyIHZlXHJcblx0XHRcdFx0Ly8gcmVtb3RlIHNheWZhIHllbmlsZW1lZGVuIGJpciBkYWhhIGJvb3QgZWRpbGVtZXouIChjcmVhdGVDb21wb25lbnQgaGF0YXPEsW5kYVxyXG5cdFx0XHRcdC8vIHNoYXJlZEFwcFJlZiB6YXRlbiBzZXQndGlyOyBvIGR1cnVtZGEgcHJvbWlzZSBrb3J1bnVyLCBhcHAgeWVuaWRlbiB5YXJhdMSxbG1hei4pXHJcblx0XHRcdFx0aWYgKCFzaGFyZWRBcHBSZWYpIHNoYXJlZEFwcFByb21pc2UgPSBudWxsO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0ZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XHJcblx0XHRcdC8vIFN0cmF0ZWd5IGhpZGRlbiBjb250YWluZXIg4oaUIHZpZXcgYXJhc8SxIHRhxZ/EsW1hbGFyZGEgYHJlbW92ZUNoaWxkYCArIGBhcHBlbmRDaGlsZGBcclxuXHRcdFx0Ly8gYXJkxLHFn8SxayBvbGR1xJ91IGnDp2luIGRpc2Nvbm5lY3RlZENhbGxiYWNrIHBhcmVudCBkZcSfacWfaW1peWxlIHRldGlrbGVuaXIg4oCUIGVsZW1lbnRcclxuXHRcdFx0Ly8gZ2Vyw6dla3RlbiBkZXN0cm95IGVkaWxtaXlvci4gYHByZXNlcnZlV2ViQ29tcG9uZW50RWxlbWVudGAgw7ZuY2VzaW5kZSBTdHJhdGVneVxyXG5cdFx0XHQvLyBgX19hcmlsUHJlc2VydmVEdXJpbmdEZXRhY2hgIGZsYWcnaSBzZXQgZWRpeW9yOyBvIGZsYWcgdmFyc2EgdmlldyBrb3J1bnVyLlxyXG5cdFx0XHRjb25zdCBwcmVzZXJ2ZUZsYWcgPSAodGhpcyBhcyBIVE1MRWxlbWVudCAmIHsgX19hcmlsUHJlc2VydmVEdXJpbmdEZXRhY2g/OiBib29sZWFuIH0pLl9fYXJpbFByZXNlcnZlRHVyaW5nRGV0YWNoO1xyXG5cdFx0XHRpZiAocHJlc2VydmVGbGFnKSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIEZsYWcgeW9rIOKGkiBnZXLDp2VrIGRlc3Ryb3kuIEFzeW5jIHJlLWNvbm5lY3QgaWh0aW1hbGluZSBrYXLFn8SxIG1pY3JvdGFzayBzxLFuxLFybMSxXHJcblx0XHRcdC8vIGRlZmFuc2lmIGdlY2lrbWU7IGJpciBzb25yYWtpIHRpY2sndGUgaMOibMOiIGRpc2Nvbm5lY3RlZCBtxLEgZGl5ZSBzb24ga29udHJvbC5cclxuXHRcdFx0aWYgKHRoaXMuZGVzdHJveVRpbWVyKSBjbGVhclRpbWVvdXQodGhpcy5kZXN0cm95VGltZXIpO1xyXG5cdFx0XHR0aGlzLmRlc3Ryb3lUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdGlmICghdGhpcy5pc0Nvbm5lY3RlZCAmJiB0aGlzLmNvbXBSZWYpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGBbYm9vdDoke19hcHBOYW1lfV0gZ2Vyw6dlayBkZXN0cm95IOKGkiB2aWV3ICsgY2hpbGQgaW5qZWN0b3IgZGVzdHJveWApO1xyXG5cdFx0XHRcdFx0Ly8gU2hhcmVkIGFwcCdlIEFTTEEgZG9rdW5tYTsgc2FkZWNlIGJ1IHRhYifEsW4gdmlldyfEsW7EsSB2ZSBjaGlsZCBpbmplY3RvcifEsW7EsSB5xLFrLlxyXG5cdFx0XHRcdFx0aWYgKHNoYXJlZEFwcFJlZikgc2hhcmVkQXBwUmVmLmRldGFjaFZpZXcodGhpcy5jb21wUmVmLmhvc3RWaWV3KTtcclxuXHRcdFx0XHRcdHRoaXMuY29tcFJlZi5kZXN0cm95KCk7XHJcblx0XHRcdFx0XHR0aGlzLmNoaWxkSW5qZWN0b3I/LmRlc3Ryb3koKTtcclxuXHRcdFx0XHRcdHRoaXMuY29tcFJlZiA9IG51bGw7XHJcblx0XHRcdFx0XHR0aGlzLmNoaWxkSW5qZWN0b3IgPSBudWxsO1xyXG5cdFx0XHRcdFx0dGhpcy5pc0Jvb3RzdHJhcHBpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5kZXN0cm95VGltZXIgPSBudWxsO1xyXG5cdFx0XHR9LCAwKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHRyeSB7XHJcblx0XHRjdXN0b21FbGVtZW50cy5kZWZpbmUoYGFwcC0ke2FwcE5hbWV9YCwgTUZFQXBwRWxlbWVudCk7XHJcblx0fSBjYXRjaCAoZSkge1xyXG5cdFx0aWYgKGUgaW5zdGFuY2VvZiBET01FeGNlcHRpb24gJiYgZS5uYW1lID09PSAnTm90U3VwcG9ydGVkRXJyb3InKSB7XHJcblx0XHRcdGNvbnNvbGUud2FybihgW2Jvb3Q6JHthcHBOYW1lfV0gY3VzdG9tIGVsZW1lbnQgemF0ZW4gdGFuxLFtbMSxLCBkZWZpbmUgYXRsYW5kxLFgKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhyb3cgZTtcclxuXHR9XHJcbn07XHJcbiJdfQ==
|
|
287
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC9ib290L21mZS9zcmMvYm9vdHN0cmFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNOLGVBQWUsRUFFZixjQUFjLEVBRWQsbUJBQW1CLEVBR25CLGVBQWUsRUFDZix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLE1BQU0sRUFDTixTQUFTLEVBQ1QsZUFBZSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFDTixrQkFBa0IsRUFDbEIsTUFBTSxFQUVOLGFBQWEsRUFDYixhQUFhLEVBQ2IseUJBQXlCLEVBQ3pCLGdCQUFnQixFQUNoQixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWpGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQVEsd0JBQXdCLEVBQWtCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUcsT0FBTyxFQUFFLFNBQVMsRUFBRSxX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SSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7Z0JBQzlCLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDMUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztLQUNEO0lBRUQsSUFBSSxDQUFDO1FBQ0osY0FBYyxDQUFDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1osSUFBSSxDQUFDLFlBQVksWUFBWSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssbUJBQW1CLEVBQUUsQ0FBQztZQUNqRSxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsT0FBTyxnREFBZ0QsQ0FBQyxDQUFDO1lBQy9FLE9BQU87UUFDUixDQUFDO1FBQ0QsTUFBTSxDQUFDLENBQUM7SUFDVCxDQUFDO0FBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9jYXRpb24sIExvY2F0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG5cdEFQUF9JTklUSUFMSVpFUixcclxuXHRBcHBsaWNhdGlvbkNvbmZpZyxcclxuXHRBcHBsaWNhdGlvblJlZixcclxuXHRDb21wb25lbnRSZWYsXHJcblx0RW52aXJvbm1lbnRJbmplY3RvcixcclxuXHRFbnZpcm9ubWVudFByb3ZpZGVycyxcclxuXHRQcm92aWRlcixcclxuXHRjcmVhdGVDb21wb25lbnQsXHJcblx0Y3JlYXRlRW52aXJvbm1lbnRJbmplY3RvcixcclxuXHRpbXBvcnRQcm92aWRlcnNGcm9tLFxyXG5cdGluamVjdCxcclxuXHRpc0Rldk1vZGUsXHJcblx0ybVJTkpFQ1RPUl9TQ09QRVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjcmVhdGVBcHBsaWNhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQge1xyXG5cdFJvdXRlUmV1c2VTdHJhdGVneSxcclxuXHRSb3V0ZXIsXHJcblx0Um91dGVzLFxyXG5cdFVybFNlcmlhbGl6ZXIsXHJcblx0cHJvdmlkZVJvdXRlcixcclxuXHR3aXRoQ29tcG9uZW50SW5wdXRCaW5kaW5nLFxyXG5cdHdpdGhSb3V0ZXJDb25maWdcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVzc2FnZVNlcnZpY2UsIFByaW1lTkdDb25maWcgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xyXG5cclxuaW1wb3J0IHsgS2V5Y2xvYWtTZXJ2aWNlIH0gZnJvbSAna2V5Y2xvYWstYW5ndWxhcic7XHJcbmltcG9ydCB7IE1vbmFjb0VkaXRvck1vZHVsZSwgTkdYX01PTkFDT19FRElUT1JfQ09ORklHIH0gZnJvbSAnbmd4LW1vbmFjby1lZGl0b3ItdjInO1xyXG5cclxuaW1wb3J0IHsgY3JlYXRlQmFzZUFwcENvbmZpZyB9IGZyb20gJ2FyaWwvYm9vdC9iYXNlJztcclxuaW1wb3J0IHsgc2V0QXBpQ29uZmlnT25NRkVNb2RlIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9hcGknO1xyXG5pbXBvcnQgeyBBcHBzLCBDdXN0b21Sb3V0ZVJldXNlU3RyYXRlZ3ksIFBsdWdpbk1lbnVJdGVtLCBUYWJBd2FyZVVybFNlcmlhbGl6ZXIgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwcHMnO1xyXG5pbXBvcnQgeyBnZXROZ1pvbmUsIGxvYWRQbHVnaW5zIH0gZnJvbSAnYXJpbC9ib290L2NvbmZpZy9wbHVnaW5zJztcclxuaW1wb3J0IHsgaTE4bkZvbGRlck5hbWUgfSBmcm9tICdhcmlsL2kxOG4nO1xyXG5pbXBvcnQgeyBwcm92aWRlSG9zdCB9IGZyb20gJ2FyaWwvcHJvdmlkZXInO1xyXG5pbXBvcnQgeyBBY3Rpdml0eVNlcnZpY2UgfSBmcm9tICdhcmlsL3V0aWwvYWN0aXZpdHknO1xyXG5pbXBvcnQgeyBQdWJTdWJTZXJ2aWNlIH0gZnJvbSAnYXJpbC91dGlsL3B1Yi1zdWInO1xyXG5cclxuaW1wb3J0IHsgYXBwQ29tcG9uZW50TG9hZGVyIH0gZnJvbSAnLi9hcHBDb21wb25lbnRMb2FkZXInO1xyXG5pbXBvcnQgeyBJc29sYXRlZExvY2F0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL2lzb2xhdGVkLWxvY2F0aW9uLXN0cmF0ZWd5JztcclxuaW1wb3J0IHsgbW9uYWNvQ29uZmlnIH0gZnJvbSAnLi9tb25hY28uY29uZmlnJztcclxuXHJcbmV4cG9ydCB2YXIgYXBwTmFtZTogQXBwcztcclxuZXhwb3J0IHZhciBtZW51SXRlbXM6IFBsdWdpbk1lbnVJdGVtW10gPSBbXTtcclxuXHJcbi8qKlxyXG4gKiBgYm9vdGAgw6dhxJ9yxLFsYXLEsW7EsW4gaWRlbXBvdGVudCBrYWxtYXPEsW7EsSBzYcSfbGF5YW4gc3luYyBndWFyZC4gQXluxLEgcmVtb3RlIGnDp2luXHJcbiAqIGJpcmRlbiBmYXpsYSBwYXJhbGVsIGBib290KCd3ZG0nLCAuLi4pYCDDp2HEn3LEsXPEsSBnZWxkacSfaW5kZSwgaWxrIGBjdXN0b21FbGVtZW50cy5kZWZpbmVgXHJcbiAqIHRhbWFtbGFubWFkYW4gaWtpbmNpIMOnYcSfcsSxIGBjdXN0b21FbGVtZW50cy5nZXRgIGd1YXJkJ8SxbsSxIGdlw6dpeW9yZHUg4oaSIGhlciBpa2lzaSBkZVxyXG4gKiBkZWZpbmUgZXRtZXllIMOnYWzEscWfxLFwIGBOb3RTdXBwb3J0ZWRFcnJvcjogdGhlIG5hbWUgXCJhcHAtd2RtXCIgaGFzIGFscmVhZHkgYmVlbiB1c2VkYFxyXG4gKiBoYXRhc8SxIGbEsXJsYXTEsWzEsXlvcmR1LiBTZXQgaWxlIHN5bmMgbWFyayBlZGVyZWsgdGVrIGJpciBkZWZpbmUgY3ljbGUnxLEgZ2FyYW50aSBlZGl5b3J1ei5cclxuICovXHJcbmNvbnN0IGJvb3RlZEFwcHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuXHJcbmV4cG9ydCBjb25zdCBib290ID0gKF9hcHBOYW1lOiBBcHBzLCBfcm91dGVzOiBSb3V0ZXMsIF9tZW51SXRlbXM6IFBsdWdpbk1lbnVJdGVtW10pID0+IHtcclxuXHRpZiAoYm9vdGVkQXBwcy5oYXMoX2FwcE5hbWUpIHx8IGN1c3RvbUVsZW1lbnRzLmdldChgYXBwLSR7X2FwcE5hbWV9YCkpIHJldHVybjtcclxuXHRib290ZWRBcHBzLmFkZChfYXBwTmFtZSk7XHJcblxyXG5cdGFwcE5hbWUgPSBfYXBwTmFtZTtcclxuXHRtZW51SXRlbXMgPSBfbWVudUl0ZW1zO1xyXG5cclxuXHQvKipcclxuXHQgKiAqKlBheWxhxZ/EsWxhbiBiYXNlIGNvbmZpZyoqIOKAlCByZW1vdGUgYmHFn8SxbmEgVEVLIGBjcmVhdGVBcHBsaWNhdGlvbmAuIEHEn8SxciBzZXJ2aXNsZXJcclxuXHQgKiAoSHR0cENsaWVudCArIGludGVyY2VwdG9yIGNoYWluLCBLZXljbG9haywgaTE4bi9UcmFuc2xvY28sIE1vbmFjbywgYW5pbWF0aW9ucykgYnVyYWRhXHJcblx0ICogeWHFn2FyOyBgcHJvdmlkZWRJbmAgdGHFn8SxbWF5YW4gZXhwbGljaXQgcHJvdmlkZXIgb2xkdWtsYXLEsSBpw6dpbiB0w7xtIHRhYidsYXLEsW4gY2hpbGRcclxuXHQgKiBpbmplY3RvcidsYXLEsW5kYW4gcGFyZW50IG9sYXJhayBwYXlsYcWfxLFsxLFyIOKGkiBSQU0gbGluZWVyIGLDvHnDvG1lei4gUm91dGVyL0xvY2F0aW9uL1xyXG5cdCAqIFJldXNlU3RyYXRlZ3kvVXJsU2VyaWFsaXplciBidXJhZGEgWU9LOyBvbmxhciB0YWIgYmHFn8SxbmEgaXpvbGUgY2hpbGQgaW5qZWN0b3InZGEgdmVyaWxpci5cclxuXHQgKi9cclxuXHRjb25zdCBzaGFyZWRCYXNlQ29uZmlnOiBBcHBsaWNhdGlvbkNvbmZpZyA9IHtcclxuXHRcdHByb3ZpZGVyczogW1xyXG5cdFx0XHRjcmVhdGVCYXNlQXBwQ29uZmlnKHsgaTE4bkZvbGRlcjogX2FwcE5hbWUgfSksXHJcblx0XHRcdHByb3ZpZGVIb3N0KF9hcHBOYW1lKSxcclxuXHRcdFx0Z2V0Tmdab25lKCksXHJcblx0XHRcdHtcclxuXHRcdFx0XHRwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcblx0XHRcdFx0dXNlRmFjdG9yeTogKFxyXG5cdFx0XHRcdFx0aHR0cENsaWVudDogSHR0cENsaWVudCxcclxuXHRcdFx0XHRcdGtleWNsb2FrOiBLZXljbG9ha1NlcnZpY2UsXHJcblx0XHRcdFx0XHRmb2xkZXJOYW1lOiB0eXBlb2YgaTE4bkZvbGRlck5hbWUsXHJcblx0XHRcdFx0XHRhY3Rpdml0eVNlcnZpY2U6IEFjdGl2aXR5U2VydmljZVxyXG5cdFx0XHRcdCkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgcnVuQXBpSW5pdCA9IHNldEFwaUNvbmZpZ09uTUZFTW9kZShodHRwQ2xpZW50LCBrZXljbG9haywgZm9sZGVyTmFtZSBhcyB1bmtub3duIGFzIEFwcHMpO1xyXG5cdFx0XHRcdFx0Y29uc3QgcnVuTG9hZFBsdWdpbnMgPSBsb2FkUGx1Z2lucygpO1xyXG5cdFx0XHRcdFx0cmV0dXJuIGFzeW5jICgpID0+IHtcclxuXHRcdFx0XHRcdFx0YXdhaXQgcnVuQXBpSW5pdCgpO1xyXG5cdFx0XHRcdFx0XHRydW5Mb2FkUGx1Z2lucygpO1xyXG5cdFx0XHRcdFx0XHRhY3Rpdml0eVNlcnZpY2Uuc3RhcnQoeyBzaGVsbE1vZGU6IGZhbHNlIH0pO1xyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdG11bHRpOiB0cnVlLFxyXG5cdFx0XHRcdGRlcHM6IFtIdHRwQ2xpZW50LCBLZXljbG9ha1NlcnZpY2UsIGkxOG5Gb2xkZXJOYW1lLCBBY3Rpdml0eVNlcnZpY2VdXHJcblx0XHRcdH0sXHJcblx0XHRcdGltcG9ydFByb3ZpZGVyc0Zyb20oTW9uYWNvRWRpdG9yTW9kdWxlLmZvclJvb3QoKSksXHJcblx0XHRcdHsgcHJvdmlkZTogTkdYX01PTkFDT19FRElUT1JfQ09ORklHLCB1c2VWYWx1ZTogbW9uYWNvQ29uZmlnIH1cclxuXHRcdF1cclxuXHR9O1xyXG5cclxuXHQvKipcclxuXHQgKiBSZW1vdGUgYmHFn8SxbmEgVEVLIHBheWxhxZ/EsWxhbiBgQXBwbGljYXRpb25SZWZgIOKAlCBjbG9zdXJlLXNjb3BlLiDEsGxrIGA8YXBwLSR7YXBwTmFtZX0+YFxyXG5cdCAqIGVsZW1lbnQnaSBgY3JlYXRlQXBwbGljYXRpb24oc2hhcmVkQmFzZUNvbmZpZylgIMOnYcSfxLFyxLFyLCBzb25yYWtpIHTDvG0gZWxlbWVudCdsZXIgYXluxLFcclxuXHQgKiBwcm9taXNlJ8SxIGJla2xlciAoZHVwbGljYXRlIEFwcGxpY2F0aW9uIHlhcmF0xLFtxLEgaW1rw6Juc8SxeikuIEhlciBlbGVtZW50IGtlbmRpIGNoaWxkXHJcblx0ICogaW5qZWN0b3IgKyBgY3JlYXRlQ29tcG9uZW50YCBpbGUga2VuZGkgYEFwcENvbXBvbmVudGAgdmlldyfEsW7EsSB5YXJhdMSxcCBzaGFyZWQgYXBwJ2VcclxuXHQgKiBgYXR0YWNoVmlld2AgaWxlIGJhxJ9sYXIuIFNoYXJlZCBhcHAgdXp1biDDtm3DvHJsw7xkw7xyICh0YWInbGFyIGthcGFuc2EgZGEgZGVzdHJveSBlZGlsbWV6KS5cclxuXHQgKlxyXG5cdCAqIGBjaGlsZFByb3ZpZGVyc2AndGFraSBgVHJhbnNsb2NvU2VydmljZWAgZmFjdG9yeSdzaSBidSByZWZlcmFuc8SxIGt1bGxhbmTEscSfxLEgacOnaW5cclxuXHQgKiBgY2hpbGRQcm92aWRlcnNgJ3RhbiDDlk5DRSB0YW7EsW1sYW7EsXIgKGZvcndhcmQgVERaJ3lpIMO2bmxlcikuXHJcblx0ICovXHJcblx0bGV0IHNoYXJlZEFwcFJlZjogQXBwbGljYXRpb25SZWYgfCBudWxsID0gbnVsbDtcclxuXHRsZXQgc2hhcmVkQXBwUHJvbWlzZTogUHJvbWlzZTxBcHBsaWNhdGlvblJlZj4gfCBudWxsID0gbnVsbDtcclxuXHJcblx0LyoqXHJcblx0ICogKipUYWIgYmHFn8SxbmEgaXpvbGUgUm91dGVyIHN0YWNrKiog4oCUIGhlciBgPGFwcC0ke2FwcE5hbWV9PmAga2VuZGkgY2hpbGRcclxuXHQgKiBgRW52aXJvbm1lbnRJbmplY3RvcmAnxLFuZGEgYnVubGFyxLEgYWzEsXIuIGDJtUlOSkVDVE9SX1NDT1BFOiAncm9vdCdgIGNoaWxkJ8SxICdyb290J1xyXG5cdCAqIHNjb3BlIHlhcGFyIChBbmd1bGFyIGBSM0luamVjdG9yYCBjdG9yOiBgc2NvcGVzLmFkZCgncm9vdCcpYCk7IGLDtnlsZWNlIGBwcm92aWRlUm91dGVyYCfEsW5cclxuXHQgKiBpbmplY3QgZXR0acSfaSBgcHJvdmlkZWRJbjoncm9vdCdgIFJvdXRlciBzZXJ2aXNsZXJpIOKAlCBgUm91dGVyYCwgYENoaWxkcmVuT3V0bGV0Q29udGV4dHNgLFxyXG5cdCAqIGBMb2NhdGlvbmAsIGBOYXZpZ2F0aW9uVHJhbnNpdGlvbnNgIHZiLiDigJQgY2hpbGQtTE9DQUwgw7xyZXRpbGlyLiBTb251w6c6IGhlciB0YWIga2VuZGlcclxuXHQgKiBSb3V0ZXIgKyBrZW5kaSBgUm91dGVyT3V0bGV0YCBjb250ZXh0J2luZSBzYWhpcCBvbHVyIOKGkiAqKjEgUm91dGVyIDogMSBvdXRsZXQqKi5cclxuXHQgKlxyXG5cdCAqIE5lZGVuIGdlcmVrbGk6IHBheWxhxZ/EsWxhbiB0ZWsgQXBwbGljYXRpb24nZGEgTiBgPHJvdXRlci1vdXRsZXQ+YCBheW7EsSB0ZWtcclxuXHQgKiBgQ2hpbGRyZW5PdXRsZXRDb250ZXh0c2AnZSBcInByaW1hcnlcIiBkaXllIGtheWRvbHVwIGJpcmJpcmluaSBleml5b3JkdSAoYGNvbnRleHRzLnNldGBcclxuXHQgKiBvdmVyd3JpdGUpIOKGkiB0YWIgZ2XDp2nFn2kgc29ucmFzxLEgYXluxLEgdGFiIGnDp2kgbmF2aWdhc3lvbiAobGlzdOKGkmRldGFpbCkgeWFubMSxxZ8gb3V0bGV0J2VcclxuXHQgKiByZW5kZXIgb2x1eW9yZHUuIENoaWxkLWluamVjdG9yIGl6b2xhc3lvbnUgYnVudSBrw7ZrdGVuIMOnw7Z6ZXIuXHJcblx0ICpcclxuXHQgKiAqKlRyYW5zbG9jb1NlcnZpY2UgaXN0aXNuYXPEsSoqOiBgJ3Jvb3QnYCBzY29wZSBvbnUgZGEgY2hpbGQtbG9jYWwgeWFwYXJkxLE7IGFtYSBnbG9iYWxcclxuXHQgKiAoc2NvcGUnc3V6KSDDp2V2aXJpbGVyIHNoYXJlZCBhcHAnaW4gaW5pdCBha8SxxZ/EsW5kYSB5w7xrbGVuZGnEn2luZGVuIOKAlCBgY3JlYXRlQ29tcG9uZW50YFxyXG5cdCAqIGBBUFBfSU5JVElBTElaRVJgIMOnYWzEscWfdMSxcm1heiDigJQgY2hpbGQtbG9jYWwgc2VydmljZSdpbiBnbG9iYWwgY2FjaGUnaSBib8WfIGthbMSxcCBoYW0ga2V5XHJcblx0ICogZ8O2c3Rlcml5b3JkdS4gVGFiIGJhxZ/EsW5hIGF5csSxIGRpbCBzZW5hcnlvc3UgeW9rOyBzZXJ2aWNlJ2kgc2hhcmVkIGFwcCd0ZW4gcGF5bGHFn3TEsXLEsXlvcnV6XHJcblx0ICogKGdsb2JhbCDDp2V2aXJpIHRlayB5ZXJkZSB5w7xrbGVuaXIsIHRlayB0cmFuc2xhdGlvbiBjYWNoZSDihpIgZWsgUkFNIGthemFuY8SxKS4gU2NvcGUgw6dldmlyaWxlcmlcclxuXHQgKiAoYHByb3ZpZGVpMThuU2NvcGVgKSBjb21wb25lbnQtbGV2ZWwgc2HEn2xhbmTEscSfxLEgacOnaW4gcGF5bGHFn8SxbGFuIHNlcnZpY2UnbGUgZGUgw6dhbMSxxZ/EsXIuXHJcblx0ICpcclxuXHQgKiBOT1Q6IGDJtUlOSkVDVE9SX1NDT1BFYCBBbmd1bGFyIHByaXZhdGUgQVBJJ3NpZGlyOyBtaW5vciBzw7xyw7xtIHnDvGtzZWx0bWVsZXJpbmRlIGRhdnJhbsSxxZ/EsVxyXG5cdCAqIGRvxJ9ydWxhbm1hbMSxIChhxZ9hxJ/EsWRha2kgUE9DIGl6b2xhc3lvbiBsb2cndSBidW51biBpw6dpbiBixLFyYWvEsWxkxLEpLlxyXG5cdCAqL1xyXG5cdGNvbnN0IGNoaWxkUHJvdmlkZXJzOiBBcnJheTxQcm92aWRlciB8IEVudmlyb25tZW50UHJvdmlkZXJzPiA9IFtcclxuXHRcdHsgcHJvdmlkZTogybVJTkpFQ1RPUl9TQ09QRSwgdXNlVmFsdWU6ICdyb290JyB9LFxyXG5cdFx0cHJvdmlkZVJvdXRlcihcclxuXHRcdFx0X3JvdXRlcyxcclxuXHRcdFx0d2l0aENvbXBvbmVudElucHV0QmluZGluZygpLFxyXG5cdFx0XHR3aXRoUm91dGVyQ29uZmlnKHsgb25TYW1lVXJsTmF2aWdhdGlvbjogJ3JlbG9hZCcgfSlcclxuXHRcdCksXHJcblx0XHR7IHByb3ZpZGU6IExvY2F0aW9uU3RyYXRlZ3ksIHVzZUNsYXNzOiBJc29sYXRlZExvY2F0aW9uU3RyYXRlZ3kgfSxcclxuXHRcdHsgcHJvdmlkZTogTG9jYXRpb24sIHVzZUNsYXNzOiBMb2NhdGlvbiB9LFxyXG5cdFx0eyBwcm92aWRlOiBSb3V0ZVJldXNlU3RyYXRlZ3ksIHVzZUV4aXN0aW5nOiBDdXN0b21Sb3V0ZVJldXNlU3RyYXRlZ3kgfSxcclxuXHRcdHsgcHJvdmlkZTogVXJsU2VyaWFsaXplciwgdXNlRXhpc3Rpbmc6IFRhYkF3YXJlVXJsU2VyaWFsaXplciB9LFxyXG5cdFx0eyBwcm92aWRlOiBUcmFuc2xvY29TZXJ2aWNlLCB1c2VGYWN0b3J5OiAoKSA9PiBzaGFyZWRBcHBSZWYhLmluamVjdG9yLmdldChUcmFuc2xvY29TZXJ2aWNlKSB9LFxyXG5cdFx0Ly8gYMm1SU5KRUNUT1JfU0NPUEU6J3Jvb3QnYCB5YW4gZXRraXNpOiBgQXBwbGljYXRpb25SZWZgIGRlIGBwcm92aWRlZEluOidyb290J2Agb2xkdcSfdSBpw6dpblxyXG5cdFx0Ly8gY2hpbGQgaW5qZWN0b3InZGEgY2hpbGQtTE9LQUwgKHNhaHRlKSBiaXIgaW5zdGFuY2Ugw7xyZXRpbGlyZGkg4oCUIGJ1IGluc3RhbmNlIE5nWm9uZSd1blxyXG5cdFx0Ly8gdGljayBkw7ZuZ8O8c8O8bmUgYmHEn2zEsSBERcSexLBMRMSwUi4gU29udcOnOiBidSBhcHBSZWYnZSBgYXR0YWNoVmlld2AgZWRpbGVuIHZpZXcnbGFyIGhpw6cgY2hhbmdlXHJcblx0XHQvLyBkZXRlY3Rpb24gYWxtYXouIEFwcENvbXBvbmVudCdpIGJpeiBhw6fEsWvDp2EgYHNoYXJlZEFwcFJlZi5hdHRhY2hWaWV3YCBpbGUgYmHEn2xhZMSxxJ/EsW3EsXogacOnaW5cclxuXHRcdC8vIMOnYWzEscWfxLFyOyBhbWEgYGluamVjdChBcHBsaWNhdGlvblJlZilgIHlhcGFuIMO8w6fDvG5jw7wgdGFyYWYga29kIChQcmltZU5HIGBEaWFsb2dTZXJ2aWNlYCDihpJcclxuXHRcdC8vIGB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3YCkgY2hpbGQtbG9jYWwgc2FodGUgYXBwUmVmJ2kgYWzEsXAgZGlhbG9nJ3Ugb25hIGJhxJ9sxLF5b3JkdSDihpIgZGlhbG9nXHJcblx0XHQvLyB5YXJhdMSxbMSxeW9yIGFtYSBgKm5nSWY9XCJ2aXNpYmxlXCJgIGhpw6cgcmVuZGVyIGVkaWxtaXlvcmR1IChib8WfIGHDp8SxbMSxeW9yZHUpLlxyXG5cdFx0Ly9cclxuXHRcdC8vIMOHw7Z6w7xtIOKAlCBgc2hhcmVkQXBwUmVmYCdpIHNhcmFuIFByb3h5OiBUw5xNIMO8eWVsZXIgKGF0dGFjaFZpZXcvZGV0YWNoVmlldy90aWNrL2NvbXBvbmVudHPigKYpXHJcblx0XHQvLyBnZXLDp2VrIGBzaGFyZWRBcHBSZWZgJ2UgZGVsZWdlIG9sdXIgKG1ldGhvZCdsYXIgYHRhcmdldGAnYSBiaW5kJ2xpIOKGkiBwcml2YXRlIGZpZWxkIGRhaGlsXHJcblx0XHQvLyBkb8SfcnUgYHRoaXNgKSwgVEVLIGZhcmsgYC5pbmplY3RvcmAg4oaSIGJ1IHRhYifEsW4gY2hpbGQgaW5qZWN0b3InxLEuIE5lZGVuIGtyaXRpazogUHJpbWVOR1xyXG5cdFx0Ly8gYERpYWxvZ1NlcnZpY2VgIGRpYWxvZyd1IGBjcmVhdGVDb21wb25lbnQoLi4uLCB7IGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuYXBwUmVmLmluamVjdG9yIH0pYFxyXG5cdFx0Ly8gaWxlIHlhcmF0xLFyLiBEw7x6IGBzaGFyZWRBcHBSZWZgIGTDtm5lcnNlayBkaWFsb2cgacOnZXJpxJ9pIHNoYXJlZCBST09UJ3RhIMOnw7Z6w7xsw7xyLCBzYXlmYSBpc2VcclxuXHRcdC8vIGNoaWxkIGluamVjdG9yJ2RhIOKGkiBgcHJvdmlkZWRJbjoncm9vdCdgIGhlciBzZXJ2aXMgxLBLxLAgYXlyxLEgaW5zdGFuY2Ugb2x1ciAoc3BsaXQtYnJhaW4pIHZlXHJcblx0XHQvLyBCZWhhdmlvclN1YmplY3QgdGFiYW5sxLEgc2F5ZmHihpRkaWFsb2cgc3RhdGUgc2Vua3Jvbml6ZSBPTE1BWiAoc2XDp2lsaSBrYXnEsXQgZGlhbG9nJ2RhIG51bGwpLlxyXG5cdFx0Ly8gYC5pbmplY3RvcmAnxLEgY2hpbGQnYSB5w7ZubGVuZGlyaW5jZSBkaWFsb2cgacOnZXJpxJ9pIHNheWZheWxhIEFZTkkgaW5qZWN0b3InZGEgw6fDtnplciDihpIgb3RvbWF0aWtcclxuXHRcdC8vIHRlayBpbnN0YW5jZSwgVMOcTSAobWV2Y3V0K2dlbGVjZWspIHNlcnZpc2xlciBpw6dpbiDigJQgc2VydmlzIGxpc3Rlc2kgdHV0bWF5YSBnZXJlayB5b2suXHJcblx0XHQvLyBgYXR0YWNoVmlld2AgeWluZSBgc2hhcmVkQXBwUmVmYCdlIGdpdHRpxJ9pIGnDp2luIHRlayB0aWNrIGTDtm5nw7xzw7wvY2hhbmdlIGRldGVjdGlvbiBrb3J1bnVyLlxyXG5cdFx0e1xyXG5cdFx0XHRwcm92aWRlOiBBcHBsaWNhdGlvblJlZixcclxuXHRcdFx0dXNlRmFjdG9yeTogKCkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHRhYkluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xyXG5cdFx0XHRcdHJldHVybiBuZXcgUHJveHkoc2hhcmVkQXBwUmVmISwge1xyXG5cdFx0XHRcdFx0Z2V0KHRhcmdldCwgcHJvcCkge1xyXG5cdFx0XHRcdFx0XHRpZiAocHJvcCA9PT0gJ2luamVjdG9yJykgcmV0dXJuIHRhYkluamVjdG9yO1xyXG5cdFx0XHRcdFx0XHQvLyBgbmdPbkRlc3Ryb3lgJ3UgR8SwWkxFICh1bmRlZmluZWQgZMO2bmTDvHIpLiBBa3NpIGhhbGRlIGBpbmplY3QoQXBwbGljYXRpb25SZWYpYFxyXG5cdFx0XHRcdFx0XHQvLyB5YXBhbiB0YWIgY2hpbGQgaW5qZWN0b3InxLEgKFByaW1lTkcgRGlhbG9nU2VydmljZSB2ZXlhIGHFn2HEn8SxZGFraSBkZXYgZ3VhcmQpXHJcblx0XHRcdFx0XHRcdC8vIHByb3h5J3lpIGtlbmRpIGBfbmdPbkRlc3Ryb3lIb29rc2AndW5hIGtheWRlZGVyIChSM0luamVjdG9yLmh5ZHJhdGUg4oaSXHJcblx0XHRcdFx0XHRcdC8vIGhhc09uRGVzdHJveT10cnVlKSB2ZSB0YWIga2FwYW7EscWfxLFuZGEgYGNoaWxkSW5qZWN0b3IuZGVzdHJveSgpYCDihpJcclxuXHRcdFx0XHRcdFx0Ly8gYHNoYXJlZEFwcFJlZi5uZ09uRGVzdHJveSgpYCDihpIgYcOnxLFrIFTDnE0gdGFiJ2xhcsSxbiB2aWV3J2xhcsSxbsSxIGRlc3Ryb3kgZWRpcFxyXG5cdFx0XHRcdFx0XHQvLyBzaGFyZWQgYXBwJ2kgw7ZsZMO8csO8ci4gU2hhcmVkIGFwcCdpbiBsaWZlY3ljbGUnxLEgYm9vdHN0cmFwJ2EgYWl0dGlyLCB0YWInYSBkZcSfaWxcclxuXHRcdFx0XHRcdFx0Ly8gKGdlcsOnZWsgYHNoYXJlZEFwcFJlZi5uZ09uRGVzdHJveWAgZXRraWxlbm1lejsgeWFsbsSxemNhIHByb3h5IMO8emVyaW5kZW4gZ2l6bGVuaXIpLlxyXG5cdFx0XHRcdFx0XHRpZiAocHJvcCA9PT0gJ25nT25EZXN0cm95JykgcmV0dXJuIHVuZGVmaW5lZDtcclxuXHRcdFx0XHRcdFx0Y29uc3QgdmFsdWUgPSBSZWZsZWN0LmdldCh0YXJnZXQsIHByb3AsIHRhcmdldCk7XHJcblx0XHRcdFx0XHRcdHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgPyB2YWx1ZS5iaW5kKHRhcmdldCkgOiB2YWx1ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdC8vIFRhcmFtYSAobG9nMTUpIGlsZSBzYXB0YW5hbiwgY2hpbGQtbG9jYWwgb2x1bmNhIGJvenVsYW4gZWsgYHByb3ZpZGVkSW46J3Jvb3QnYCBzZXJ2aXNsZXJpOlxyXG5cdFx0Ly8g4oCiIFB1YlN1YlNlcnZpY2Ug4oCUIE1GRSduaW4gYGJyZWFkY3J1bWJVcGRhdGVkYCBldmVudCdpIGhvc3QgYGhpc3Rvcnkuc2VydmljZWAnZSB1bGHFn21hbMSxO1xyXG5cdFx0Ly8gICBjaGlsZC1sb2NhbCBvbHVuY2EgTUZF4oaUaG9zdCBldmVudCBrw7ZwcsO8c8O8IGtvcHV5b3JkdS5cclxuXHRcdC8vIOKAoiBQcmltZU5HQ29uZmlnIOKAlCBkaW5hbWlrIGRpYWxvZydsYXIgc2hhcmVkIHJvb3QgY29udGV4dCdpbmRlIHlhcmF0xLFsZMSxxJ/EsSBpw6dpbiBQcmltZU5HXHJcblx0XHQvLyAgIMOnZXZpcmlsZXJpIChjYWxlbmRhci9wYWdpbmF0b3IgdmIuKSB2ZSBgc2V0VHJhbnNsYXRpb25gIHNoYXJlZCBpbnN0YW5jZSd0YW4gb2t1bm1hbMSxLlxyXG5cdFx0Ly8gKEJyZWFkY3J1bWJTZXJ2aWNlIGJpbGluw6dsaSBvbGFyYWsgY2hpbGQtbG9jYWwgYsSxcmFrxLFsZMSxOiBoZXIgdGFiIGtlbmRpIGJyZWFkY3J1bWInxLEuKVxyXG5cdFx0eyBwcm92aWRlOiBQdWJTdWJTZXJ2aWNlLCB1c2VGYWN0b3J5OiAoKSA9PiBzaGFyZWRBcHBSZWYhLmluamVjdG9yLmdldChQdWJTdWJTZXJ2aWNlKSB9LFxyXG5cdFx0eyBwcm92aWRlOiBQcmltZU5HQ29uZmlnLCB1c2VGYWN0b3J5OiAoKSA9PiBzaGFyZWRBcHBSZWYhLmluamVjdG9yLmdldChQcmltZU5HQ29uZmlnKSB9LFxyXG5cdFx0Ly8gQWN0aXZpdHlTZXJ2aWNlIHNoYXJlZCdkYSBgQVBQX0lOSVRJQUxJWkVSYCBpbGUgYmHFn2xhdMSxbGTEsSAoS2V5Y2xvYWsgbGlzdGVuZXInbGFyxLEgKyBzZXNzaW9uSWRcclxuXHRcdC8vIGNhcHR1cmUpLiBUYWIgY2hpbGQgaW5qZWN0b3InxLFuZGEgYMm1SU5KRUNUT1JfU0NPUEU6J3Jvb3QnYCB5YW4gZXRraXNpeWxlIGF5csSxIGJpciBpbnN0YW5jZVxyXG5cdFx0Ly8gw7xyZXRpbGlyZGkg4oCUIGJ1IGluc3RhbmNlIGhpw6cgYHN0YXJ0KClgIMOnYcSfcsSxbG1hZMSxxJ/EsSBpw6dpbiBgdHJhY2soKWAgbm8tb3Agb2x1ciB2ZSBhcmlsLWJ1dHRvblxyXG5cdFx0Ly8gY2xpY2snbGVyaSBzZXNzaXpjZSBrYXlib2x1ci4gU2hhcmVkIGluc3RhbmNlJ8SxIGZvcndhcmQgZWRlcmVrIHRlayBiYcWfbGF0xLFsbcSxxZ8gaW5zdGFuY2UnxLFcclxuXHRcdC8vIGhlciB0YWInYSBwYXlsYcWfdMSxcsSxeW9ydXogKGF1dGhJbnRlcmNlcHRvcifEsW4gb2t1ZHXEn3UgYHNlc3Npb25JZGAgaWxlIGJpcmViaXIgYXluxLEpLlxyXG5cdFx0eyBwcm92aWRlOiBBY3Rpdml0eVNlcnZpY2UsIHVzZUZhY3Rvcnk6ICgpID0+IHNoYXJlZEFwcFJlZiEuaW5qZWN0b3IuZ2V0KEFjdGl2aXR5U2VydmljZSkgfSxcclxuXHRcdC8vIFRvYXN0L2NvbmZpcm0gR0xPQkFMOiB0ZWsgc2hhcmVkIE1lc3NhZ2VTZXJ2aWNlL0NvbmZpcm1hdGlvblNlcnZpY2UuIEFrc2kgaGFsZGUgaGVyIHRhYlxyXG5cdFx0Ly8ga2VuZGkgaW5zdGFuY2UnxLFuYSBzYWhpcCBvbHVyIOKGkiBob3N0J3RhbiB0ZXRpa2xlbmVuIHRvYXN0IE1GRSB0YWInxLFuZGEgKHlhIGRhIHRlcnNpKVxyXG5cdFx0Ly8gZ8O2csO8bm1lei4gU2hhcmVkIGluc3RhbmNlIGlsZSB0w7xtIGA8cC10b2FzdCBrZXk9XCJ0b2FzdC1yb290XCI+YCBjb250YWluZXInbGFyxLEgYXluxLEga3V5cnXEn3UgZGlubGVyLlxyXG5cdFx0eyBwcm92aWRlOiBNZXNzYWdlU2VydmljZSwgdXNlRmFjdG9yeTogKCkgPT4gc2hhcmVkQXBwUmVmIS5pbmplY3Rvci5nZXQoTWVzc2FnZVNlcnZpY2UpIH0sXHJcblx0XHR7IHByb3ZpZGU6IENvbmZpcm1hdGlvblNlcnZpY2UsIHVzZUZhY3Rvcnk6ICgpID0+IHNoYXJlZEFwcFJlZiEuaW5qZWN0b3IuZ2V0KENvbmZpcm1hdGlvblNlcnZpY2UpIH1cclxuXHRcdC8vIFNlbGVjdGlvbkdyb3VwU2VydmljZSBiaWxpbsOnbGkgb2xhcmFrIEJVUkFEQSBZT0s6IHTDvG0gc3RhdGUnaSAoc2lnbmFsICsgbG9hZGVkL2xvYWRpbmcgK1xyXG5cdFx0Ly8gaW5pdCBmbGFnJ2kpIGdsb2JhbFRoaXMgYnJpZGdlJ2RlIHlhxZ9hcjsgY2hpbGQtbG9jYWwgaW5zdGFuY2UnbGFyIGRhIGF5bsSxIHN0YXRlJ2kgYWxpYXMnbGFyLFxyXG5cdFx0Ly8gYnUgecO8emRlbiBpbnN0YW5jZSBzYXnEsXPEsW7EsW4gw7ZuZW1pIHlva3R1ciDigJQgZm9yd2FyZGluZyB5YWxuxLF6Y2EgaW5zdGFuY2UtbG9jYWwgc3RhdGUnaSBvbGFuXHJcblx0XHQvLyBzZXJ2aXNsZXIgKE1lc3NhZ2VTZXJ2aWNlIHZiLikgacOnaW4gZ2VyZWtsaWRpci5cclxuXHRdO1xyXG5cclxuXHRjb25zdCBhcHBDb21wb25lbnRQcm9taXNlID0gYXBwQ29tcG9uZW50TG9hZGVyKCk7XHJcblxyXG5cdGNsYXNzIE1GRUFwcEVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7XHJcblx0XHRwcml2YXRlIGNoaWxkSW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IgfCBudWxsID0gbnVsbDtcclxuXHRcdHByaXZhdGUgY29tcFJlZjogQ29tcG9uZW50UmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XHJcblx0XHRwcml2YXRlIGlzQm9vdHN0cmFwcGluZyA9IGZhbHNlO1xyXG5cdFx0cHJpdmF0ZSBkZXN0cm95VGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XHJcblxyXG5cdFx0YXN5bmMgY29ubmVjdGVkQ2FsbGJhY2soKTogUHJvbWlzZTx2b2lkPiB7XHJcblx0XHRcdC8vIFN0cmF0ZWd5IGhpZGRlbiBjb250YWluZXIg4oaUIHZpZXcgYXJhc8SxIHRhxZ/EsW1hbGFyZGEgcmUtYm9vdHN0cmFwJ8SxIMO2bmxlIOKAlFxyXG5cdFx0XHQvLyB2aWV3IHphdGVuIHlhcmF0xLFsZMSxeXNhIHNraXAuIGRlc3Ryb3lUaW1lciBwZW5kaW5nIGlzZSBpcHRhbCBldC5cclxuXHRcdFx0aWYgKHRoaXMuY29tcFJlZiB8fCB0aGlzLmlzQm9vdHN0cmFwcGluZykge1xyXG5cdFx0XHRcdGlmICh0aGlzLmRlc3Ryb3lUaW1lcikge1xyXG5cdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMuZGVzdHJveVRpbWVyKTtcclxuXHRcdFx0XHRcdHRoaXMuZGVzdHJveVRpbWVyID0gbnVsbDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuaXNCb290c3RyYXBwaW5nID0gdHJ1ZTtcclxuXHRcdFx0dHJ5IHtcclxuXHRcdFx0XHQvLyBQYXlsYcWfxLFsYW4gQXBwbGljYXRpb24g4oCUIGlsayDDp2HEn8SxcmFuIHlhcmF0xLFyLCBkacSfZXJsZXJpIGF5bsSxIHByb21pc2UnxLEgYmVrbGVyLlxyXG5cdFx0XHRcdGlmICghc2hhcmVkQXBwUHJvbWlzZSkge1xyXG5cdFx0XHRcdFx0c2hhcmVkQXBwUHJvbWlzZSA9IGNyZWF0ZUFwcGxpY2F0aW9uKHNoYXJlZEJhc2VDb25maWcpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRjb25zdCBbYXBwUmVmLCBBcHBDb21wb25lbnRdID0gYXdhaXQgUHJvbWlzZS5hbGwoW3NoYXJlZEFwcFByb21pc2UsIGFwcENvbXBvbmVudFByb21pc2VdKTtcclxuXHRcdFx0XHRzaGFyZWRBcHBSZWYgPSBhcHBSZWY7XHJcblxyXG5cdFx0XHRcdC8vIEJ1IHRhYiBpw6dpbiBpem9sZSBSb3V0ZXIgc3RhY2snaSBiYXLEsW5kxLFyYW4gY2hpbGQgaW5qZWN0b3IuXHJcblx0XHRcdFx0Y29uc3QgdGFiSWQgPSB0aGlzLmdldEF0dHJpYnV0ZSgnYXJpbC10YWItaWQnKSA/PyAnJztcclxuXHRcdFx0XHR0aGlzLmNoaWxkSW5qZWN0b3IgPSBjcmVhdGVFbnZpcm9ubWVudEluamVjdG9yKFxyXG5cdFx0XHRcdFx0Y2hpbGRQcm92aWRlcnMsXHJcblx0XHRcdFx0XHRhcHBSZWYuaW5qZWN0b3IsXHJcblx0XHRcdFx0XHRgbWZlOiR7X2FwcE5hbWV9OiR7dGFiSWQgfHwgJ3BlbmRpbmcnfWBcclxuXHRcdFx0XHQpO1xyXG5cclxuXHRcdFx0XHQvLyBbSGlicml0IGl6b2xhc3lvbiBndWFyZCDigJQga2FsxLFjxLFdIGDJtUlOSkVDVE9SX1NDT1BFOidyb290J2AgaWxlIGNoaWxkIGluamVjdG9yJ8SxblxyXG5cdFx0XHRcdC8vIEtFTkTEsCBSb3V0ZXIgKyBDaGlsZHJlbk91dGxldENvbnRleHRzJ2kgb2xtYXPEsSwgdGFiIGl6b2xhc3lvbnVudW4gdGVtZWxpZGlyXHJcblx0XHRcdFx0Ly8gKFwiMSBSb3V0ZXIgOiAxIG91dGxldFwiKS4gQnUgcHJpdmF0ZSBBUEkgQW5ndWxhciB1cGdyYWRlJ2luZGUgZGF2cmFuxLHFnyBkZcSfacWfdGlyaXJzZVxyXG5cdFx0XHRcdC8vIGJ1cmFkYSBlcmtlbiB5YWthbGFuxLFyOyBha3NpIGhhbGRlIFwiMSBSb3V0ZXIgOiBOIG91dGxldFwiIGJ1ZyfEsSBzZXNzaXpjZSBnZXJpIGTDtm5lci5cclxuXHRcdFx0XHRpZiAoaXNEZXZNb2RlKCkgJiYgdGhpcy5jaGlsZEluamVjdG9yLmdldChSb3V0ZXIpID09PSBhcHBSZWYuaW5qZWN0b3IuZ2V0KFJvdXRlcikpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoXHJcblx0XHRcdFx0XHRcdGBbYm9vdDoke19hcHBOYW1lfV0gSMSwQlLEsFQgxLBaT0xBU1lPTiBCT1pVTERVOiBjaGlsZCBSb3V0ZXIgc2hhcmVkIHJvb3QgaWxlIGF5bsSxIGluc3RhbmNlISBgICtcclxuXHRcdFx0XHRcdFx0XHRgybVJTkpFQ1RPUl9TQ09QRSBkYXZyYW7EscWfxLEgZGXEn2nFn21pxZ8gb2xhYmlsaXIgKEFuZ3VsYXIgdXBncmFkZT8pIOKAlCB0YWIgaXpvbGFzeW9udSDDp2FsxLHFn21hei5gXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gW0RpYWxvZyBpbmplY3RvciBrw7ZwcsO8c8O8IGd1YXJkIOKAlCBrYWzEsWPEsV0gQXBwbGljYXRpb25SZWYgcHJveHknc2luaW4gYC5pbmplY3RvcmAnxLEgYnVcclxuXHRcdFx0XHQvLyB0YWInxLFuIGNoaWxkIGluamVjdG9yJ8SxbsSxIGfDtnN0ZXJtZWxpOyBha3NpIGhhbGRlIFByaW1lTkcgRGlhbG9nU2VydmljZSBkaWFsb2cgacOnZXJpxJ9pbmlcclxuXHRcdFx0XHQvLyBzaGFyZWQgcm9vdCd0YSDDp8O2emVyIOKGkiBzYXlmYeKGlGRpYWxvZyBgcHJvdmlkZWRJbjoncm9vdCdgIHNwbGl0LWJyYWluIGdlcmkgZMO2bmVyLiBQcmltZU5HXHJcblx0XHRcdFx0Ly8geWEgZGEgQW5ndWxhciB1cGdyYWRlJ2kgYGFwcFJlZi5pbmplY3RvcmAga3VsbGFuxLFtxLFuxLEgZGXEn2nFn3Rpcmlyc2UgYnVyYWRhIHlha2FsYW7EsXIuXHJcblx0XHRcdFx0aWYgKGlzRGV2TW9kZSgpICYmIHRoaXMuY2hpbGRJbmplY3Rvci5nZXQoQXBwbGljYXRpb25SZWYpLmluamVjdG9yICE9PSB0aGlzLmNoaWxkSW5qZWN0b3IpIHtcclxuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoXHJcblx0XHRcdFx0XHRcdGBbYm9vdDoke19hcHBOYW1lfV0gRElBTE9HIElOSkVDVE9SIEvDllBSw5xTw5wgQk9aVUxEVTogQXBwbGljYXRpb25SZWYuaW5qZWN0b3IgdGFiIGNoaWxkIGAgK1xyXG5cdFx0XHRcdFx0XHRcdGBpbmplY3RvcifEsSBnw7ZzdGVybWl5b3Ig4oCUIGRpYWxvZyBpw6dlcmnEn2kgc2F5ZmFkYW4gZmFya2zEsSBpbmplY3RvcidkYSDDp8O2esO8bMO8ciAoc3BsaXQtYnJhaW4pLmBcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyBBcHBDb21wb25lbnQnaSBjaGlsZCBpbmplY3RvciBjb250ZXh0J2luZGUgeWFyYXQg4oaSIGluamVjdChSb3V0ZXIpL0xvY2F0aW9uU3RyYXRlZ3lcclxuXHRcdFx0XHQvLyBjaGlsZC1sb2NhbDsgaW5qZWN0KE1mZUJyaWRnZSkvSHR0cENsaWVudC9LZXljbG9hay9UcmFuc2xvY29TZXJ2aWNlIHZiLiBwYXJlbnQndGFuXHJcblx0XHRcdFx0Ly8gcGF5bGHFn8SxbWzEsS4gYGF0dGFjaFZpZXdgIHNoYXJlZCBhcHAnaW4gY2hhbmdlIGRldGVjdGlvbiBkw7ZuZ8O8c8O8bmUgYmHEn2xhci4gKGBib290c3RyYXBgXHJcblx0XHRcdFx0Ly8gZGXEn2lsOiBBUFBfQk9PVFNUUkFQX0xJU1RFTkVSIMOnYWzEscWfbWF6LCBjaGlsZCBSb3V0ZXInxLFuIGluaXRpYWwgbmF2aWdhdGlvbifEsW7EsVxyXG5cdFx0XHRcdC8vIEFwcENvbXBvbmVudCBob3N0LVJvdXRlciBzeW5jJ2kgYHNhZmVOYXZpZ2F0ZWAgaWxlIHlhcMSxeW9yLilcclxuXHRcdFx0XHR0aGlzLmNvbXBSZWYgPSBjcmVhdGVDb21wb25lbnQoQXBwQ29tcG9uZW50IGFzIG5ldmVyLCB7XHJcblx0XHRcdFx0XHRlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmNoaWxkSW5qZWN0b3IsXHJcblx0XHRcdFx0XHRob3N0RWxlbWVudDogdGhpc1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdGFwcFJlZi5hdHRhY2hWaWV3KHRoaXMuY29tcFJlZi5ob3N0Vmlldyk7XHJcblx0XHRcdFx0Ly8gQmHFn2FyxLFsxLEgYm9vdDogZ3VhcmQgYXJ0xLFrIGBjb21wUmVmYCDDvHplcmluZGVuIMOnYWzEscWfxLFyIOKGkiBgaXNCb290c3RyYXBwaW5nYCdpIGLEsXJhay5cclxuXHRcdFx0XHQvLyAoYXdhaXQgc8SxcmFzxLFuZGEgZGlzY29ubmVjdCBvbHVwIGhhdGEgb2x1xZ9tYXpzYSBmbGFnIHRha8SxbMSxIGthbG1hc8SxbjsgYWtzaSBoYWxkZVxyXG5cdFx0XHRcdC8vIHJlY29ubmVjdCd0ZSBndWFyZCBlcmtlbiByZXR1cm4gZWRpcCB0YWInxLEga2FsxLFjxLEgYm/FnyBixLFyYWvEsXIuKVxyXG5cdFx0XHRcdHRoaXMuaXNCb290c3RyYXBwaW5nID0gZmFsc2U7XHJcblx0XHRcdH0gY2F0Y2ggKGVycikge1xyXG5cdFx0XHRcdGNvbnNvbGUuZXJyb3IoYFtib290OiR7X2FwcE5hbWV9XSBhcHBsaWNhdGlvbiBib290c3RyYXAgaGF0YXPEsTpgLCBlcnIpO1xyXG5cdFx0XHRcdHRoaXMuaXNCb290c3RyYXBwaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0Ly8gc2hhcmVkQXBwIGhlbsO8eiBzZXQgZWRpbG1lZGl5c2UgKGNyZWF0ZUFwcGxpY2F0aW9uIGJhxZ9hcsSxc8SxeikgcHJvbWlzZSfEsSBzxLFmxLFybGEga2lcclxuXHRcdFx0XHQvLyBzb25yYWtpIHRhYiByZXRyeSBlZGViaWxzaW4g4oCUIGFrc2kgaGFsZGUgcmVqZWN0ZWQgcHJvbWlzZSBjbG9zdXJlJ2RhIGthbMSxY8SxIGthbMSxciB2ZVxyXG5cdFx0XHRcdC8vIHJlbW90ZSBzYXlmYSB5ZW5pbGVtZWRlbiBiaXIgZGFoYSBib290IGVkaWxlbWV6LiAoY3JlYXRlQ29tcG9uZW50IGhhdGFzxLFuZGFcclxuXHRcdFx0XHQvLyBzaGFyZWRBcHBSZWYgemF0ZW4gc2V0J3RpcjsgbyBkdXJ1bWRhIHByb21pc2Uga29ydW51ciwgYXBwIHllbmlkZW4geWFyYXTEsWxtYXouKVxyXG5cdFx0XHRcdGlmICghc2hhcmVkQXBwUmVmKSBzaGFyZWRBcHBQcm9taXNlID0gbnVsbDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xyXG5cdFx0XHQvLyBTdHJhdGVneSBoaWRkZW4gY29udGFpbmVyIOKGlCB2aWV3IGFyYXPEsSB0YcWfxLFtYWxhcmRhIGByZW1vdmVDaGlsZGAgKyBgYXBwZW5kQ2hpbGRgXHJcblx0XHRcdC8vIGFyZMSxxZ/EsWsgb2xkdcSfdSBpw6dpbiBkaXNjb25uZWN0ZWRDYWxsYmFjayBwYXJlbnQgZGXEn2nFn2ltaXlsZSB0ZXRpa2xlbmlyIOKAlCBlbGVtZW50XHJcblx0XHRcdC8vIGdlcsOnZWt0ZW4gZGVzdHJveSBlZGlsbWl5b3IuIGBwcmVzZXJ2ZVdlYkNvbXBvbmVudEVsZW1lbnRgIMO2bmNlc2luZGUgU3RyYXRlZ3lcclxuXHRcdFx0Ly8gYF9fYXJpbFByZXNlcnZlRHVyaW5nRGV0YWNoYCBmbGFnJ2kgc2V0IGVkaXlvcjsgbyBmbGFnIHZhcnNhIHZpZXcga29ydW51ci5cclxuXHRcdFx0Y29uc3QgcHJlc2VydmVGbGFnID0gKHRoaXMgYXMgSFRNTEVsZW1lbnQgJiB7IF9fYXJpbFByZXNlcnZlRHVyaW5nRGV0YWNoPzogYm9vbGVhbiB9KS5fX2FyaWxQcmVzZXJ2ZUR1cmluZ0RldGFjaDtcclxuXHRcdFx0aWYgKHByZXNlcnZlRmxhZykge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHQvLyBGbGFnIHlvayDihpIgZ2Vyw6dlayBkZXN0cm95LiBBc3luYyByZS1jb25uZWN0IGlodGltYWxpbmUga2FyxZ/EsSBtaWNyb3Rhc2sgc8SxbsSxcmzEsVxyXG5cdFx0XHQvLyBkZWZhbnNpZiBnZWNpa21lOyBiaXIgc29ucmFraSB0aWNrJ3RlIGjDomzDoiBkaXNjb25uZWN0ZWQgbcSxIGRpeWUgc29uIGtvbnRyb2wuXHJcblx0XHRcdGlmICh0aGlzLmRlc3Ryb3lUaW1lcikgY2xlYXJUaW1lb3V0KHRoaXMuZGVzdHJveVRpbWVyKTtcclxuXHRcdFx0dGhpcy5kZXN0cm95VGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0XHRpZiAoIXRoaXMuaXNDb25uZWN0ZWQgJiYgdGhpcy5jb21wUmVmKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhgW2Jvb3Q6JHtfYXBwTmFtZX1dIGdlcsOnZWsgZGVzdHJveSDihpIgdmlldyArIGNoaWxkIGluamVjdG9yIGRlc3Ryb3lgKTtcclxuXHRcdFx0XHRcdC8vIFNoYXJlZCBhcHAnZSBBU0xBIGRva3VubWE7IHNhZGVjZSBidSB0YWInxLFuIHZpZXcnxLFuxLEgdmUgY2hpbGQgaW5qZWN0b3InxLFuxLEgecSxay5cclxuXHRcdFx0XHRcdGlmIChzaGFyZWRBcHBSZWYpIHNoYXJlZEFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuY29tcFJlZi5ob3N0Vmlldyk7XHJcblx0XHRcdFx0XHR0aGlzLmNvbXBSZWYuZGVzdHJveSgpO1xyXG5cdFx0XHRcdFx0dGhpcy5jaGlsZEluamVjdG9yPy5kZXN0cm95KCk7XHJcblx0XHRcdFx0XHR0aGlzLmNvbXBSZWYgPSBudWxsO1xyXG5cdFx0XHRcdFx0dGhpcy5jaGlsZEluamVjdG9yID0gbnVsbDtcclxuXHRcdFx0XHRcdHRoaXMuaXNCb290c3RyYXBwaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMuZGVzdHJveVRpbWVyID0gbnVsbDtcclxuXHRcdFx0fSwgMCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHR0cnkge1xyXG5cdFx0Y3VzdG9tRWxlbWVudHMuZGVmaW5lKGBhcHAtJHthcHBOYW1lfWAsIE1GRUFwcEVsZW1lbnQpO1xyXG5cdH0gY2F0Y2ggKGUpIHtcclxuXHRcdGlmIChlIGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uICYmIGUubmFtZSA9PT0gJ05vdFN1cHBvcnRlZEVycm9yJykge1xyXG5cdFx0XHRjb25zb2xlLndhcm4oYFtib290OiR7YXBwTmFtZX1dIGN1c3RvbSBlbGVtZW50IHphdGVuIHRhbsSxbWzEsSwgZGVmaW5lIGF0bGFuZMSxYCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRocm93IGU7XHJcblx0fVxyXG59O1xyXG4iXX0=
|
package/esm2022/http/index.mjs
CHANGED
|
@@ -5,8 +5,7 @@ export * from './lib/interfaces';
|
|
|
5
5
|
export * from './src/httpBackend';
|
|
6
6
|
export * from './src/httpClient';
|
|
7
7
|
export * from './src/serviceBase';
|
|
8
|
-
export * from './src/serviceMockBase';
|
|
9
8
|
export * from './src/serviceStateMethods';
|
|
10
9
|
/* interceptor */
|
|
11
10
|
export * from './src/interceptor/accept-language.interceptor';
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9hcmlsL2h0dHAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUztBQUNULGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsa0JBQWtCLENBQUM7QUFFakMsU0FBUztBQUNULGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsMkJBQTJCLENBQUM7QUFFMUMsaUJBQWlCO0FBQ2pCLGNBQWMsK0NBQStDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBsaWIgKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZW51bXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzJztcclxuXHJcbi8qIHNyYyAqL1xyXG5leHBvcnQgKiBmcm9tICcuL3NyYy9odHRwQmFja2VuZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2h0dHBDbGllbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NyYy9zZXJ2aWNlQmFzZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3NlcnZpY2VTdGF0ZU1ldGhvZHMnO1xyXG5cclxuLyogaW50ZXJjZXB0b3IgKi9cclxuZXhwb3J0ICogZnJvbSAnLi9zcmMvaW50ZXJjZXB0b3IvYWNjZXB0LWxhbmd1YWdlLmludGVyY2VwdG9yJztcclxuIl19
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { runInInjectionContext } from '@angular/core';
|
|
2
2
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
3
|
import { Observable, of } from 'rxjs';
|
|
4
|
-
import { catchError, map, tap } from 'rxjs/operators';
|
|
4
|
+
import { catchError, finalize, map, tap } from 'rxjs/operators';
|
|
5
5
|
import { API_CONFIGS } from 'aril/boot/config/api';
|
|
6
6
|
import { HTTPMethods, HTTPStatusCodes } from '../lib/enums';
|
|
7
7
|
import { ErrorResponse, ServiceResponse } from '../lib/interfaces';
|
|
8
8
|
import { getRequest } from './serviceRequest';
|
|
9
|
-
import { callState, errorState, successState, warningState } from './serviceStateMethods';
|
|
9
|
+
import { callState, clearWaitingState, errorState, successState, warningState } from './serviceStateMethods';
|
|
10
10
|
export function ServiceCall(httpMethod, proxy, serviceURL, message, remoteAPI, isMockAPI = false) {
|
|
11
11
|
return function (serviceClass, serviceName, descriptor) {
|
|
12
12
|
// const originalFunction = descriptor.value;
|
|
@@ -131,10 +131,10 @@ export function ServiceCall(httpMethod, proxy, serviceURL, message, remoteAPI, i
|
|
|
131
131
|
}), catchError((error) => {
|
|
132
132
|
errorState(states, serviceName, error, this.translocoService, this.messageService, this.keycloak, message);
|
|
133
133
|
return of(new ErrorResponse(error));
|
|
134
|
-
}), takeUntilDestroyed());
|
|
134
|
+
}), takeUntilDestroyed(), finalize(() => clearWaitingState(states, serviceName)));
|
|
135
135
|
return observable;
|
|
136
136
|
});
|
|
137
137
|
};
|
|
138
138
|
};
|
|
139
139
|
}
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZUJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL2h0dHAvc3JjL3NlcnZpY2VCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQWMsTUFBTSxjQUFjLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBdUIsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRixNQUFNLFVBQVUsV0FBVyxDQUMxQixVQUF1QixFQUN2QixLQUFpQixFQUNqQixVQUFrQixFQUNsQixPQUFxRixFQUNyRixTQUFnQixFQUNoQixTQUFTLEdBQUcsS0FBSztJQUVqQixPQUFPLFVBQVUsWUFBb0IsRUFBRSxXQUE0QixFQUFFLFVBQThCO1FBQ2xHLDZDQUE2QztRQUU3QyxVQUFVLENBQUMsS0FBSyxHQUFHLFVBQVUsR0FBRyxJQUFXO1lBQzFDLE9BQU8scUJBQXFCLENBQU8sSUFBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ3ZELE1BQU0sVUFBVSxHQUFxQixJQUFLLENBQUMsVUFBVSxDQUFD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LENBQUMsU0FBUyxDQUFDLCtCQUErQixDQUFDOzRCQUNoRixNQUFNLEVBQVEsSUFBSyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQzt5QkFDekUsQ0FBQyxDQUFDO29CQUNKLENBQUM7eUJBQU0sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyw0QkFBNEIsRUFBRSxDQUFDO3dCQUN0RSxZQUFZLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsUUFBUSxFQUFRLElBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFDcEYsQ0FBQzt5QkFBTSxDQUFDO3dCQUNQLFlBQVksQ0FDWCxNQUFNLEVBQ04sV0FBVyxFQUNMLElBQUssQ0FBQyxnQkFBZ0IsRUFDdEIsSUFBSyxDQUFDLGNBQWMsRUFDMUIsT0FBTyxFQUNQLFVBQVUsQ0FDVixDQUFDO29CQUNILENBQUM7Z0JBQ0YsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFO29CQUN2QyxVQUFVLENBQ1QsTUFBTSxFQUNOLFdBQVcsRUFDWCxLQUFLLEVBQ0MsSUFBSyxDQUFDLGdCQUFnQixFQUN0QixJQUFLLENBQUMsY0FBYyxFQUNwQixJQUFLLENBQUMsUUFBUSxFQUNwQixPQUFPLENBQ1AsQ0FBQztvQkFDRixPQUFPLEVBQUUsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNyQyxDQUFDLENBQUMsRUFDRixrQkFBa0IsRUFBRSxDQUNwQixDQUFDO2dCQUVGLE9BQU8sVUFBVSxDQUFDO1lBQ25CLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBQYXJhbXMsIEh0dHBTdGF0dXNDb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBydW5JbkluamVjdGlvbkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBBUElfQ09ORklHUyB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvYXBpJztcclxuaW1wb3J0IHsgQXBwcyB9IGZyb20gJ2FyaWwvYm9vdC9jb25maWcvYXBwcyc7XHJcblxyXG5pbXBvcnQgeyBIVFRQTWV0aG9kcywgSFRUUFN0YXR1c0NvZGVzLCBQcm94eVR5cGVzIH0gZnJvbSAnLi4vbGliL2VudW1zJztcclxuaW1wb3J0IHsgRXJyb3JSZXNwb25zZSwgU2VydmljZUNhbGxTdGF0ZU1hcCwgU2VydmljZVJlc3BvbnNlIH0gZnJvbSAnLi4vbGliL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBnZXRSZXF1ZXN0IH0gZnJvbSAnLi9zZXJ2aWNlUmVxdWVzdCc7XHJcbmltcG9ydCB7IGNhbGxTdGF0ZSwgZXJyb3JTdGF0ZSwgc3VjY2Vzc1N0YXRlLCB3YXJuaW5nU3RhdGUgfSBmcm9tICcuL3NlcnZpY2VTdGF0ZU1ldGhvZHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNlcnZpY2VDYWxsKFxyXG5cdGh0dHBNZXRob2Q6IEhUVFBNZXRob2RzLFxyXG5cdHByb3h5OiBQcm94eVR5cGVzLFxyXG5cdHNlcnZpY2VVUkw6IHN0cmluZyxcclxuXHRtZXNzYWdlPzogeyBzdWNjZXNzPzogc3RyaW5nOyBlcnJvcj86IHN0cmluZzsgaWdub3JlZFN0YXR1c0NvZGVzPzogSHR0cFN0YXR1c0NvZGVbXSB9LFxyXG5cdHJlbW90ZUFQST86IEFwcHMsXHJcblx0aXNNb2NrQVBJID0gZmFsc2VcclxuKTogTWV0aG9kRGVjb3JhdG9yIHtcclxuXHRyZXR1cm4gZnVuY3Rpb24gKHNlcnZpY2VDbGFzczogb2JqZWN0LCBzZXJ2aWNlTmFtZTogc3RyaW5nIHwgc3ltYm9sLCBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpIHtcclxuXHRcdC8vIGNvbnN0IG9yaWdpbmFsRnVuY3Rpb24gPSBkZXNjcmlwdG9yLnZhbHVlO1xyXG5cclxuXHRcdGRlc2NyaXB0b3IudmFsdWUgPSBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcclxuXHRcdFx0cmV0dXJuIHJ1bkluSW5qZWN0aW9uQ29udGV4dCgoPGFueT50aGlzKS5pbmplY3RvciwgKCkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGh0dHBDbGllbnQ6IEh0dHBDbGllbnQgPSAoPGFueT50aGlzKS5odHRwQ2xpZW50O1xyXG5cclxuXHRcdFx0XHRsZXQgYXBpID0gJyc7XHJcblx0XHRcdFx0aWYgKGlzTW9ja0FQSSkgYXBpID0gPHN0cmluZz5yZW1vdGVBUEk7XHJcblx0XHRcdFx0ZWxzZSBpZiAocmVtb3RlQVBJKSB7XHJcblx0XHRcdFx0XHRjb25zdCB1cmwgPSBuZXcgVVJMKEFQSV9DT05GSUdTLmFwaSk7XHJcblx0XHRcdFx0XHRhcGkgPSB1cmwub3JpZ2luICsgJy8nICsgQVBJX0NPTkZJR1MucHJlZml4TWFwW3JlbW90ZUFQSV07XHJcblx0XHRcdFx0fSBlbHNlIGFwaSA9IEFQSV9DT05GSUdTLmFwaTtcclxuXHJcblx0XHRcdFx0Y29uc3QgZW5kUG9pbnQgPSBhcGkgKyAnLycgKyBzZXJ2aWNlVVJMO1xyXG5cdFx0XHRcdGNvbnN0IHJlcXVlc3QgPSBnZXRSZXF1ZXN0KGh0dHBNZXRob2QsIGFyZ3MpO1xyXG5cdFx0XHRcdGNvbnN0IHN0YXRlczogU2VydmljZUNhbGxTdGF0ZU1hcDxhbnk+ID0gKDxhbnk+dGhpcykuc3RhdGVzO1xyXG5cclxuXHRcdFx0XHRjYWxsU3RhdGUoc3RhdGVzLCBzZXJ2aWNlTmFtZSk7XHJcblxyXG5cdFx0XHRcdGxldCBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4gPSBuZXcgT2JzZXJ2YWJsZTxhbnk+KCk7XHJcblx0XHRcdFx0bGV0IGdldER5bmFtaWNTZXJ2aWNlVXJsOiBzdHJpbmc7XHJcblxyXG5cdFx0XHRcdHN3aXRjaCAoaHR0cE1ldGhvZCkge1xyXG5cdFx0XHRcdFx0Y2FzZSBIVFRQTWV0aG9kcy5HRVQ6XHJcblx0XHRcdFx0XHRcdGxldCBnZXRSZXEgPSBhcmdzLmxlbmd0aCA/ICcvJyArIGFyZ3NbMF0gOiAnJztcclxuXHRcdFx0XHRcdFx0b2JzZXJ2YWJsZSA9IGh0dHBDbGllbnQuZ2V0PGFueT4oZW5kUG9pbnQgKyBnZXRSZXEsIHtvYnNlcnZlOiAncmVzcG9uc2UnLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIEhUVFBNZXRob2RzLkdFVEJZUEFSQU1TOlxyXG5cdFx0XHRcdFx0XHRvYnNlcnZhYmxlID0gaHR0cENsaWVudC5nZXQ8YW55PihlbmRQb2ludCwgeyBwYXJhbXM6IHJlcXVlc3QgYXMgSHR0cFBhcmFtcywgb2JzZXJ2ZTogJ3Jlc3BvbnNlJywgcmVzcG9uc2VUeXBlOiAnanNvbicgfSk7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSBIVFRQTWV0aG9kcy5HRVRCWURZTkFNSUNQQVRIOlxyXG5cdFx0XHRcdFx0XHRnZXREeW5hbWljU2VydmljZVVybCA9IHNlcnZpY2VVUkw7XHJcblx0XHRcdFx0XHRcdGFyZ3MuZm9yRWFjaCgoYXJnKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0Z2V0RHluYW1pY1NlcnZpY2VVcmwgPSBnZXREeW5hbWljU2VydmljZVVybC5yZXBsYWNlKCckJywgYXJnKTtcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdG9ic2VydmFibGUgPSBodHRwQ2xpZW50LmdldDxhbnk+KGFwaSArICcvJyArIGdldER5bmFtaWNTZXJ2aWNlVXJsLCB7b2JzZXJ2ZTogJ3Jlc3BvbnNlJywgcmVzcG9uc2VUeXBlOiAnanNvbicgfSk7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSBIVFRQTWV0aG9kcy5HRVRCWVBBUkFNU0FORERZTkFNSUNQQVRIOlxyXG5cdFx0XHRcdFx0XHRsZXQgZ2V0UGFyYW1zID0ge307XHJcblx0XHRcdFx0XHRcdGxldCBnZXREeW5hbWljU2VydmljZVVybFdpdGhQYXJhbXMgPSBzZXJ2aWNlVVJMO1xyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0YXJncy5mb3JFYWNoKChhcmcpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRpZiAodHlwZW9mIGFyZyA9PT0gJ29iamVjdCcpIGdldFBhcmFtcyA9IGFyZztcclxuXHRcdFx0XHRcdFx0XHRlbHNlIGdldER5bmFtaWNTZXJ2aWNlVXJsV2l0aFBhcmFtcyA9IGdldER5bmFtaWNTZXJ2aWNlVXJsV2l0aFBhcmFtcy5yZXBsYWNlKCckJywgYXJnKTtcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRvYnNlcnZhYmxlID0gaHR0cENsaWVudC5nZXQ8YW55PihhcGkgKyAnLycgKyBnZXREeW5hbWljU2VydmljZVVybFdpdGhQYXJhbXMsIHtcclxuXHRcdFx0XHRcdFx0XHRwYXJhbXM6IGdldFBhcmFtcyBhcyBIdHRwUGFyYW1zLFxyXG5cdFx0XHRcdFx0XHRcdG9ic2VydmU6ICdyZXNwb25zZScsXHJcblx0XHRcdFx0XHRcdFx0cmVzcG9uc2VUeXBlOiAnanNvbidcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSBIVFRQTWV0aG9kcy5QT1NUOlxyXG5cdFx0XHRcdFx0XHRvYnNlcnZhYmxlID0gaHR0cENsaWVudC5wb3N0PGFueT4oZW5kUG9pbnQsIGFyZ3NbMF0sIHtvYnNlcnZlOiAncmVzcG9uc2UnLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIEhUVFBNZXRob2RzLlBPU1RCWVBBUkFNUzpcclxuXHRcdFx0XHRcdFx0b2JzZXJ2YWJsZSA9IGh0dHBDbGllbnQucG9zdDxhbnk+KGVuZFBvaW50LCBhcmdzWzBdLmJvZHksIHsgcGFyYW1zOiByZXF1ZXN0LCBvYnNlcnZlOiAncmVzcG9uc2UnLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIEhUVFBNZXRob2RzLlBPU1RCWURZTkFNSUNQQVRIOlxyXG5cdFx0XHRcdFx0XHRsZXQgYm9keSA9IHt9O1xyXG5cdFx0XHRcdFx0XHRsZXQgZHluYW1pY1NlcnZpY2VVcmwgPSBzZXJ2aWNlVVJMO1xyXG5cclxuXHRcdFx0XHRcdFx0YXJncy5mb3JFYWNoKChhcmcpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRpZiAodHlwZW9mIGFyZyA9PT0gJ29iamVjdCcpIGJvZHkgPSBhcmc7XHJcblx0XHRcdFx0XHRcdFx0ZWxzZSBkeW5hbWljU2VydmljZVVybCA9IGR5bmFtaWNTZXJ2aWNlVXJsLnJlcGxhY2UoJyQnLCBhcmcpO1xyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0b2JzZXJ2YWJsZSA9IGh0dHBDbGllbnQucG9zdDxhbnk+KGFwaSArICcvJyArIGR5bmFtaWNTZXJ2aWNlVXJsLCBib2R5LCB7IG9ic2VydmU6ICdyZXNwb25zZScsIHJlc3BvbnNlVHlwZTogJ2pzb24nIH0pO1xyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdGNhc2UgSFRUUE1ldGhvZHMuUFVUOlxyXG5cdFx0XHRcdFx0XHRvYnNlcnZhYmxlID0gaHR0cENsaWVudC5wdXQ8YW55PihlbmRQb2ludCArICcvJyArIGFyZ3NbMF0sIHJlcXVlc3QsIHsgb2JzZXJ2ZTogJ3Jlc3BvbnNlJywgcmVzcG9uc2VUeXBlOiAnanNvbicgfSk7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSBIVFRQTWV0aG9kcy5QVVRCWVBBUkFNUzpcclxuXHRcdFx0XHRcdFx0b2JzZXJ2YWJsZSA9IGh0dHBDbGllbnQucHV0PGFueT4oZW5kUG9pbnQsIGFyZ3NbMF0sIHsgb2JzZXJ2ZTogJ3Jlc3BvbnNlJywgcmVzcG9uc2VUeXBlOiAnanNvbicgfSk7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cclxuXHRcdFx0XHRcdGNhc2UgSFRUUE1ldGhvZHMuUFVUQllEWU5BTUlDUEFUSDpcclxuXHRcdFx0XHRcdFx0bGV0IHB1dEJvZHkgPSB7fTtcclxuXHRcdFx0XHRcdFx0bGV0IHB1dER5bmFtaWNTZXJ2aWNlVXJsID0gc2VydmljZVVSTDtcclxuXHJcblx0XHRcdFx0XHRcdGFyZ3MuZm9yRWFjaCgoYXJnKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBhcmcgPT09ICdvYmplY3QnKSBwdXRCb2R5ID0gYXJnO1xyXG5cdFx0XHRcdFx0XHRcdGVsc2UgcHV0RHluYW1pY1NlcnZpY2VVcmwgPSBwdXREeW5hbWljU2VydmljZVVybC5yZXBsYWNlKCckJywgYXJnKTtcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdG9ic2VydmFibGUgPSBodHRwQ2xpZW50LnB1dDxhbnk+KGFwaSArICcvJyArIHB1dER5bmFtaWNTZXJ2aWNlVXJsLCBwdXRCb2R5LCB7b2JzZXJ2ZTogJ3Jlc3BvbnNlJywgcmVzcG9uc2VUeXBlOiAnanNvbicgfSk7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSBIVFRQTWV0aG9kcy5ERUxFVEU6XHJcblx0XHRcdFx0XHRcdG9ic2VydmFibGUgPSBodHRwQ2xpZW50LmRlbGV0ZTxhbnk+KGVuZFBvaW50ICsgJy8nICsgYXJnc1swXSwge29ic2VydmU6ICdyZXNwb25zZScsIHJlc3BvbnNlVHlwZTogJ2pzb24nIH0pO1xyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdGNhc2UgSFRUUE1ldGhvZHMuREVMRVRFQllQQVJBTVM6XHJcblx0XHRcdFx0XHRcdG9ic2VydmFibGUgPSBodHRwQ2xpZW50LmRlbGV0ZTxhbnk+KGVuZFBvaW50LCB7IHBhcmFtczogcmVxdWVzdCBhcyBIdHRwUGFyYW1zLCBvYnNlcnZlOiAncmVzcG9uc2UnLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIEhUVFBNZXRob2RzLkRFTEVURUJZRFlOQU1JQ1BBVEg6XHJcblx0XHRcdFx0XHRcdGxldCBkZWxldGVQYXJhbXMgPSB7fTtcclxuXHRcdFx0XHRcdFx0bGV0IGRlbGV0ZUR5bmFtaWNTZXJ2aWNlVXJsID0gc2VydmljZVVSTDtcclxuXHJcblx0XHRcdFx0XHRcdGFyZ3MuZm9yRWFjaCgoYXJnKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBhcmcgPT09ICdvYmplY3QnKSBkZWxldGVQYXJhbXMgPSBhcmc7XHJcblx0XHRcdFx0XHRcdFx0ZWxzZSBkZWxldGVEeW5hbWljU2VydmljZVVybCA9IGRlbGV0ZUR5bmFtaWNTZXJ2aWNlVXJsLnJlcGxhY2UoJyQnLCBhcmcpO1xyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0XHRcdG9ic2VydmFibGUgPSBodHRwQ2xpZW50LmRlbGV0ZTxhbnk+KGFwaSArICcvJyArIGRlbGV0ZUR5bmFtaWNTZXJ2aWNlVXJsLCB7XHJcblx0XHRcdFx0XHRcdFx0cGFyYW1zOiBkZWxldGVQYXJhbXMsXHJcblx0XHRcdFx0XHRcdFx0b2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcclxuXHRcdFx0XHRcdFx0XHRyZXNwb25zZVR5cGU6ICdqc29uJ1xyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdG9ic2VydmFibGUgPSBvYnNlcnZhYmxlLnBpcGUoXHJcblx0XHRcdFx0XHRtYXAoKHJlc3BvbnNlKSA9PiBuZXcgU2VydmljZVJlc3BvbnNlKHJlcXVlc3QsIHJlc3BvbnNlPy5ib2R5LCBwcm94eSwgcmVzcG9uc2U/LnN0YXR1cykpLFxyXG5cdFx0XHRcdFx0dGFwKChzZXJ2aWNlUmVzKSA9PiB7XHJcblx0XHRcdFx0XHRcdGlmIChzZXJ2aWNlUmVzPy5zdGF0dXNDb2RlID09PSBIVFRQU3RhdHVzQ29kZXMuTk9fQ09OVEVOVCkge1xyXG5cdFx0XHRcdFx0XHRcdCg8YW55PnRoaXMpLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcblx0XHRcdFx0XHRcdFx0XHRrZXk6ICd0b2FzdC1yb290JyxcclxuXHRcdFx0XHRcdFx0XHRcdHNldmVyaXR5OiAnc3VjY2VzcycsXHJcblx0XHRcdFx0XHRcdFx0XHRzdW1tYXJ5OiAoPGFueT50aGlzKS50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnbWVzc2FnZXMuc3VjY2Vzc01lc3NhZ2VIZWFkZXInKSxcclxuXHRcdFx0XHRcdFx0XHRcdGRldGFpbDogKDxhbnk+dGhpcykudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ21lc3NhZ2VzLnN1Y2Nlc3NNZXNzYWdlJylcclxuXHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChzZXJ2aWNlUmVzLnJlc3BvbnNlLnR5cGUgPT09ICdWYWxpZGF0aW9uV2FybmluZ0V4Y2VwdGlvbicpIHtcclxuXHRcdFx0XHRcdFx0XHR3YXJuaW5nU3RhdGUoc3RhdGVzLCBzZXJ2aWNlTmFtZSwgc2VydmljZVJlcy5yZXNwb25zZSwgKDxhbnk+dGhpcykubWVzc2FnZVNlcnZpY2UpO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdHN1Y2Nlc3NTdGF0ZShcclxuXHRcdFx0XHRcdFx0XHRcdHN0YXRlcyxcclxuXHRcdFx0XHRcdFx0XHRcdHNlcnZpY2VOYW1lLFxyXG5cdFx0XHRcdFx0XHRcdFx0KDxhbnk+dGhpcykudHJhbnNsb2NvU2VydmljZSxcclxuXHRcdFx0XHRcdFx0XHRcdCg8YW55PnRoaXMpLm1lc3NhZ2VTZXJ2aWNlLFxyXG5cdFx0XHRcdFx0XHRcdFx0bWVzc2FnZSxcclxuXHRcdFx0XHRcdFx0XHRcdHNlcnZpY2VSZXNcclxuXHRcdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KSxcclxuXHRcdFx0XHRcdGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRlcnJvclN0YXRlKFxyXG5cdFx0XHRcdFx0XHRcdHN0YXRlcyxcclxuXHRcdFx0XHRcdFx0XHRzZXJ2aWNlTmFtZSxcclxuXHRcdFx0XHRcdFx0XHRlcnJvcixcclxuXHRcdFx0XHRcdFx0XHQoPGFueT50aGlzKS50cmFuc2xvY29TZXJ2aWNlLFxyXG5cdFx0XHRcdFx0XHRcdCg8YW55PnRoaXMpLm1lc3NhZ2VTZXJ2aWNlLFxyXG5cdFx0XHRcdFx0XHRcdCg8YW55PnRoaXMpLmtleWNsb2FrLFxyXG5cdFx0XHRcdFx0XHRcdG1lc3NhZ2VcclxuXHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIG9mKG5ldyBFcnJvclJlc3BvbnNlKGVycm9yKSk7XHJcblx0XHRcdFx0XHR9KSxcclxuXHRcdFx0XHRcdHRha2VVbnRpbERlc3Ryb3llZCgpXHJcblx0XHRcdFx0KTtcclxuXHJcblx0XHRcdFx0cmV0dXJuIG9ic2VydmFibGU7XHJcblx0XHRcdH0pO1xyXG5cdFx0fTtcclxuXHR9O1xyXG59XHJcbiJdfQ==
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZUJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL2h0dHAvc3JjL3NlcnZpY2VCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFjLE1BQU0sY0FBYyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQXVCLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFN0csTUFBTSxVQUFVLFdBQVcsQ0FDMUIsVUFBdUIsRUFDdkIsS0FBaUIsRUFDakIsVUFBa0IsRUFDbEIsT0FBcUYsRUFDckYsU0FBZ0IsRUFDaEIsU0FBUyxHQUFHLEtBQUs7SUFFakIsT0FBTyxVQUFVLFlBQW9CLEVBQUUsV0FBNEIsRUFBRSxVQUE4QjtRQUNsRyw2Q0FBNkM7UUFFN0MsVUFBVSxDQUFDLEtBQUssR0FBRyxVQUFVLEdBQUcsSUFBVztZQUMxQyxPQUFPLHFCQUFxQixDQUFPLElBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUN2RCxNQUFNLFVBQVUsR0FB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bGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBQYXJhbXMsIEh0dHBTdGF0dXNDb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBydW5JbkluamVjdGlvbkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmluYWxpemUsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQVBJX0NPTkZJR1MgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwaSc7XHJcbmltcG9ydCB7IEFwcHMgfSBmcm9tICdhcmlsL2Jvb3QvY29uZmlnL2FwcHMnO1xyXG5cclxuaW1wb3J0IHsgSFRUUE1ldGhvZHMsIEhUVFBTdGF0dXNDb2RlcywgUHJveHlUeXBlcyB9IGZyb20gJy4uL2xpYi9lbnVtcyc7XHJcbmltcG9ydCB7IEVycm9yUmVzcG9uc2UsIFNlcnZpY2VDYWxsU3RhdGVNYXAsIFNlcnZpY2VSZXNwb25zZSB9IGZyb20gJy4uL2xpYi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgZ2V0UmVxdWVzdCB9IGZyb20gJy4vc2VydmljZVJlcXVlc3QnO1xyXG5pbXBvcnQgeyBjYWxsU3RhdGUsIGNsZWFyV2FpdGluZ1N0YXRlLCBlcnJvclN0YXRlLCBzdWNjZXNzU3RhdGUsIHdhcm5pbmdTdGF0ZSB9IGZyb20gJy4vc2VydmljZVN0YXRlTWV0aG9kcyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gU2VydmljZUNhbGwoXHJcblx0aHR0cE1ldGhvZDogSFRUUE1ldGhvZHMsXHJcblx0cHJveHk6IFByb3h5VHlwZXMsXHJcblx0c2VydmljZVVSTDogc3RyaW5nLFxyXG5cdG1lc3NhZ2U/OiB7IHN1Y2Nlc3M/OiBzdHJpbmc7IGVycm9yPzogc3RyaW5nOyBpZ25vcmVkU3RhdHVzQ29kZXM/OiBIdHRwU3RhdHVzQ29kZVtdIH0sXHJcblx0cmVtb3RlQVBJPzogQXBwcyxcclxuXHRpc01vY2tBUEkgPSBmYWxzZVxyXG4pOiBNZXRob2REZWNvcmF0b3Ige1xyXG5cdHJldHVybiBmdW5jdGlvbiAoc2VydmljZUNsYXNzOiBvYmplY3QsIHNlcnZpY2VOYW1lOiBzdHJpbmcgfCBzeW1ib2wsIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvcikge1xyXG5cdFx0Ly8gY29uc3Qgb3JpZ2luYWxGdW5jdGlvbiA9IGRlc2NyaXB0b3IudmFsdWU7XHJcblxyXG5cdFx0ZGVzY3JpcHRvci52YWx1ZSA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xyXG5cdFx0XHRyZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KCg8YW55PnRoaXMpLmluamVjdG9yLCAoKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgaHR0cENsaWVudDogSHR0cENsaWVudCA9ICg8YW55PnRoaXMpLmh0dHBDbGllbnQ7XHJcblxyXG5cdFx0XHRcdGxldCBhcGkgPSAnJztcclxuXHRcdFx0XHRpZiAoaXNNb2NrQVBJKSBhcGkgPSA8c3RyaW5nPnJlbW90ZUFQSTtcclxuXHRcdFx0XHRlbHNlIGlmIChyZW1vdGVBUEkpIHtcclxuXHRcdFx0XHRcdGNvbnN0IHVybCA9IG5ldyBVUkwoQVBJX0NPTkZJR1MuYXBpKTtcclxuXHRcdFx0XHRcdGFwaSA9IHVybC5vcmlnaW4gKyAnLycgKyBBUElfQ09ORklHUy5wcmVmaXhNYXBbcmVtb3RlQVBJXTtcclxuXHRcdFx0XHR9IGVsc2UgYXBpID0gQVBJX0NPTkZJR1MuYXBpO1xyXG5cclxuXHRcdFx0XHRjb25zdCBlbmRQb2ludCA9IGFwaSArICcvJyArIHNlcnZpY2VVUkw7XHJcblx0XHRcdFx0Y29uc3QgcmVxdWVzdCA9IGdldFJlcXVlc3QoaHR0cE1ldGhvZCwgYXJncyk7XHJcblx0XHRcdFx0Y29uc3Qgc3RhdGVzOiBTZXJ2aWNlQ2FsbFN0YXRlTWFwPGFueT4gPSAoPGFueT50aGlzKS5zdGF0ZXM7XHJcblxyXG5cdFx0XHRcdGNhbGxTdGF0ZShzdGF0ZXMsIHNlcnZpY2VOYW1lKTtcclxuXHJcblx0XHRcdFx0bGV0IG9ic2VydmFibGU6IE9ic2VydmFibGU8YW55PiA9IG5ldyBPYnNlcnZhYmxlPGFueT4oKTtcclxuXHRcdFx0XHRsZXQgZ2V0RHluYW1pY1NlcnZpY2VVcmw6IHN0cmluZztcclxuXHJcblx0XHRcdFx0c3dpdGNoIChodHRwTWV0aG9kKSB7XHJcblx0XHRcdFx0XHRjYXNlIEhUVFBNZXRob2RzLkdFVDpcclxuXHRcdFx0XHRcdFx0bGV0IGdldFJlcSA9IGFyZ3MubGVuZ3RoID8gJy8nICsgYXJnc1swXSA6ICcnO1xyXG5cdFx0XHRcdFx0XHRvYnNlcnZhYmxlID0gaHR0cENsaWVudC5nZXQ8YW55PihlbmRQb2ludCArIGdldFJlcSwge29ic2VydmU6ICdyZXNwb25zZScsIHJlc3BvbnNlVHlwZTogJ2pzb24nIH0pO1xyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdGNhc2UgSFRUUE1ldGhvZHMuR0VUQllQQVJBTVM6XHJcblx0XHRcdFx0XHRcdG9ic2VydmFibGUgPSBodHRwQ2xpZW50LmdldDxhbnk+KGVuZFBvaW50LCB7IHBhcmFtczogcmVxdWVzdCBhcyBIdHRwUGFyYW1zLCBvYnNlcnZlOiAncmVzcG9uc2UnLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIEhUVFBNZXRob2RzLkdFVEJZRFlOQU1JQ1BBVEg6XHJcblx0XHRcdFx0XHRcdGdldER5bmFtaWNTZXJ2aWNlVXJsID0gc2VydmljZVVSTDtcclxuXHRcdFx0XHRcdFx0YXJncy5mb3JFYWNoKChhcmcpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRnZXREeW5hbWljU2VydmljZVVybCA9IGdldER5bmFtaWNTZXJ2aWNlVXJsLnJlcGxhY2UoJyQnLCBhcmcpO1xyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0b2JzZXJ2YWJsZSA9IGh0dHBDbGllbnQuZ2V0PGFueT4oYXBpICsgJy8nICsgZ2V0RHluYW1pY1NlcnZpY2VVcmwsIHtvYnNlcnZlOiAncmVzcG9uc2UnLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIEhUVFBNZXRob2RzLkdFVEJZUEFSQU1TQU5ERFlOQU1JQ1BBVEg6XHJcblx0XHRcdFx0XHRcdGxldCBnZXRQYXJhbXMgPSB7fTtcclxuXHRcdFx0XHRcdFx0bGV0IGdldER5bmFtaWNTZXJ2aWNlVXJsV2l0aFBhcmFtcyA9IHNlcnZpY2VVUkw7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRhcmdzLmZvckVhY2goKGFyZykgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGlmICh0eXBlb2YgYXJnID09PSAnb2JqZWN0JykgZ2V0UGFyYW1zID0gYXJnO1xyXG5cdFx0XHRcdFx0XHRcdGVsc2UgZ2V0RHluYW1pY1NlcnZpY2VVcmxXaXRoUGFyYW1zID0gZ2V0RHluYW1pY1NlcnZpY2VVcmxXaXRoUGFyYW1zLnJlcGxhY2UoJyQnLCBhcmcpO1xyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdG9ic2VydmFibGUgPSBodHRwQ2xpZW50LmdldDxhbnk+KGFwaSArICcvJyArIGdldER5bmFtaWNTZXJ2aWNlVXJsV2l0aFBhcmFtcywge1xyXG5cdFx0XHRcdFx0XHRcdHBhcmFtczogZ2V0UGFyYW1zIGFzIEh0dHBQYXJhbXMsXHJcblx0XHRcdFx0XHRcdFx0b2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcclxuXHRcdFx0XHRcdFx0XHRyZXNwb25zZVR5cGU6ICdqc29uJ1xyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIEhUVFBNZXRob2RzLlBPU1Q6XHJcblx0XHRcdFx0XHRcdG9ic2VydmFibGUgPSBodHRwQ2xpZW50LnBvc3Q8YW55PihlbmRQb2ludCwgYXJnc1swXSwge29ic2VydmU6ICdyZXNwb25zZScsIHJlc3BvbnNlVHlwZTogJ2pzb24nIH0pO1xyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdGNhc2UgSFRUUE1ldGhvZHMuUE9TVEJZUEFSQU1TOlxyXG5cdFx0XHRcdFx0XHRvYnNlcnZhYmxlID0gaHR0cENsaWVudC5wb3N0PGFueT4oZW5kUG9pbnQsIGFyZ3NbMF0uYm9keSwgeyBwYXJhbXM6IHJlcXVlc3QsIG9ic2VydmU6ICdyZXNwb25zZScsIHJlc3BvbnNlVHlwZTogJ2pzb24nIH0pO1xyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdGNhc2UgSFRUUE1ldGhvZHMuUE9TVEJZRFlOQU1JQ1BBVEg6XHJcblx0XHRcdFx0XHRcdGxldCBib2R5ID0ge307XHJcblx0XHRcdFx0XHRcdGxldCBkeW5hbWljU2VydmljZVVybCA9IHNlcnZpY2VVUkw7XHJcblxyXG5cdFx0XHRcdFx0XHRhcmdzLmZvckVhY2goKGFyZykgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGlmICh0eXBlb2YgYXJnID09PSAnb2JqZWN0JykgYm9keSA9IGFyZztcclxuXHRcdFx0XHRcdFx0XHRlbHNlIGR5bmFtaWNTZXJ2aWNlVXJsID0gZHluYW1pY1NlcnZpY2VVcmwucmVwbGFjZSgnJCcsIGFyZyk7XHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHRvYnNlcnZhYmxlID0gaHR0cENsaWVudC5wb3N0PGFueT4oYXBpICsgJy8nICsgZHluYW1pY1NlcnZpY2VVcmwsIGJvZHksIHsgb2JzZXJ2ZTogJ3Jlc3BvbnNlJywgcmVzcG9uc2VUeXBlOiAnanNvbicgfSk7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSBIVFRQTWV0aG9kcy5QVVQ6XHJcblx0XHRcdFx0XHRcdG9ic2VydmFibGUgPSBodHRwQ2xpZW50LnB1dDxhbnk+KGVuZFBvaW50ICsgJy8nICsgYXJnc1swXSwgcmVxdWVzdCwgeyBvYnNlcnZlOiAncmVzcG9uc2UnLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIEhUVFBNZXRob2RzLlBVVEJZUEFSQU1TOlxyXG5cdFx0XHRcdFx0XHRvYnNlcnZhYmxlID0gaHR0cENsaWVudC5wdXQ8YW55PihlbmRQb2ludCwgYXJnc1swXSwgeyBvYnNlcnZlOiAncmVzcG9uc2UnLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblxyXG5cdFx0XHRcdFx0Y2FzZSBIVFRQTWV0aG9kcy5QVVRCWURZTkFNSUNQQVRIOlxyXG5cdFx0XHRcdFx0XHRsZXQgcHV0Qm9keSA9IHt9O1xyXG5cdFx0XHRcdFx0XHRsZXQgcHV0RHluYW1pY1NlcnZpY2VVcmwgPSBzZXJ2aWNlVVJMO1xyXG5cclxuXHRcdFx0XHRcdFx0YXJncy5mb3JFYWNoKChhcmcpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRpZiAodHlwZW9mIGFyZyA9PT0gJ29iamVjdCcpIHB1dEJvZHkgPSBhcmc7XHJcblx0XHRcdFx0XHRcdFx0ZWxzZSBwdXREeW5hbWljU2VydmljZVVybCA9IHB1dER5bmFtaWNTZXJ2aWNlVXJsLnJlcGxhY2UoJyQnLCBhcmcpO1xyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0b2JzZXJ2YWJsZSA9IGh0dHBDbGllbnQucHV0PGFueT4oYXBpICsgJy8nICsgcHV0RHluYW1pY1NlcnZpY2VVcmwsIHB1dEJvZHksIHtvYnNlcnZlOiAncmVzcG9uc2UnLCByZXNwb25zZVR5cGU6ICdqc29uJyB9KTtcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRjYXNlIEhUVFBNZXRob2RzLkRFTEVURTpcclxuXHRcdFx0XHRcdFx0b2JzZXJ2YWJsZSA9IGh0dHBDbGllbnQuZGVsZXRlPGFueT4oZW5kUG9pbnQgKyAnLycgKyBhcmdzWzBdLCB7b2JzZXJ2ZTogJ3Jlc3BvbnNlJywgcmVzcG9uc2VUeXBlOiAnanNvbicgfSk7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0Y2FzZSBIVFRQTWV0aG9kcy5ERUxFVEVCWVBBUkFNUzpcclxuXHRcdFx0XHRcdFx0b2JzZXJ2YWJsZSA9IGh0dHBDbGllbnQuZGVsZXRlPGFueT4oZW5kUG9pbnQsIHsgcGFyYW1zOiByZXF1ZXN0IGFzIEh0dHBQYXJhbXMsIG9ic2VydmU6ICdyZXNwb25zZScsIHJlc3BvbnNlVHlwZTogJ2pzb24nIH0pO1xyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdGNhc2UgSFRUUE1ldGhvZHMuREVMRVRFQllEWU5BTUlDUEFUSDpcclxuXHRcdFx0XHRcdFx0bGV0IGRlbGV0ZVBhcmFtcyA9IHt9O1xyXG5cdFx0XHRcdFx0XHRsZXQgZGVsZXRlRHluYW1pY1NlcnZpY2VVcmwgPSBzZXJ2aWNlVVJMO1xyXG5cclxuXHRcdFx0XHRcdFx0YXJncy5mb3JFYWNoKChhcmcpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRpZiAodHlwZW9mIGFyZyA9PT0gJ29iamVjdCcpIGRlbGV0ZVBhcmFtcyA9IGFyZztcclxuXHRcdFx0XHRcdFx0XHRlbHNlIGRlbGV0ZUR5bmFtaWNTZXJ2aWNlVXJsID0gZGVsZXRlRHluYW1pY1NlcnZpY2VVcmwucmVwbGFjZSgnJCcsIGFyZyk7XHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cclxuXHRcdFx0XHRcdFx0b2JzZXJ2YWJsZSA9IGh0dHBDbGllbnQuZGVsZXRlPGFueT4oYXBpICsgJy8nICsgZGVsZXRlRHluYW1pY1NlcnZpY2VVcmwsIHtcclxuXHRcdFx0XHRcdFx0XHRwYXJhbXM6IGRlbGV0ZVBhcmFtcyxcclxuXHRcdFx0XHRcdFx0XHRvYnNlcnZlOiAncmVzcG9uc2UnLFxyXG5cdFx0XHRcdFx0XHRcdHJlc3BvbnNlVHlwZTogJ2pzb24nXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0b2JzZXJ2YWJsZSA9IG9ic2VydmFibGUucGlwZShcclxuXHRcdFx0XHRcdG1hcCgocmVzcG9uc2UpID0+IG5ldyBTZXJ2aWNlUmVzcG9uc2UocmVxdWVzdCwgcmVzcG9uc2U/LmJvZHksIHByb3h5LCByZXNwb25zZT8uc3RhdHVzKSksXHJcblx0XHRcdFx0XHR0YXAoKHNlcnZpY2VSZXMpID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKHNlcnZpY2VSZXM/LnN0YXR1c0NvZGUgPT09IEhUVFBTdGF0dXNDb2Rlcy5OT19DT05URU5UKSB7XHJcblx0XHRcdFx0XHRcdFx0KDxhbnk+dGhpcykubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuXHRcdFx0XHRcdFx0XHRcdGtleTogJ3RvYXN0LXJvb3QnLFxyXG5cdFx0XHRcdFx0XHRcdFx0c2V2ZXJpdHk6ICdzdWNjZXNzJyxcclxuXHRcdFx0XHRcdFx0XHRcdHN1bW1hcnk6ICg8YW55PnRoaXMpLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdtZXNzYWdlcy5zdWNjZXNzTWVzc2FnZUhlYWRlcicpLFxyXG5cdFx0XHRcdFx0XHRcdFx0ZGV0YWlsOiAoPGFueT50aGlzKS50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnbWVzc2FnZXMuc3VjY2Vzc01lc3NhZ2UnKVxyXG5cdFx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHNlcnZpY2VSZXMucmVzcG9uc2UudHlwZSA9PT0gJ1ZhbGlkYXRpb25XYXJuaW5nRXhjZXB0aW9uJykge1xyXG5cdFx0XHRcdFx0XHRcdHdhcm5pbmdTdGF0ZShzdGF0ZXMsIHNlcnZpY2VOYW1lLCBzZXJ2aWNlUmVzLnJlc3BvbnNlLCAoPGFueT50aGlzKS5tZXNzYWdlU2VydmljZSk7XHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0c3VjY2Vzc1N0YXRlKFxyXG5cdFx0XHRcdFx0XHRcdFx0c3RhdGVzLFxyXG5cdFx0XHRcdFx0XHRcdFx0c2VydmljZU5hbWUsXHJcblx0XHRcdFx0XHRcdFx0XHQoPGFueT50aGlzKS50cmFuc2xvY29TZXJ2aWNlLFxyXG5cdFx0XHRcdFx0XHRcdFx0KDxhbnk+dGhpcykubWVzc2FnZVNlcnZpY2UsXHJcblx0XHRcdFx0XHRcdFx0XHRtZXNzYWdlLFxyXG5cdFx0XHRcdFx0XHRcdFx0c2VydmljZVJlc1xyXG5cdFx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pLFxyXG5cdFx0XHRcdFx0Y2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcblx0XHRcdFx0XHRcdGVycm9yU3RhdGUoXHJcblx0XHRcdFx0XHRcdFx0c3RhdGVzLFxyXG5cdFx0XHRcdFx0XHRcdHNlcnZpY2VOYW1lLFxyXG5cdFx0XHRcdFx0XHRcdGVycm9yLFxyXG5cdFx0XHRcdFx0XHRcdCg8YW55PnRoaXMpLnRyYW5zbG9jb1NlcnZpY2UsXHJcblx0XHRcdFx0XHRcdFx0KDxhbnk+dGhpcykubWVzc2FnZVNlcnZpY2UsXHJcblx0XHRcdFx0XHRcdFx0KDxhbnk+dGhpcykua2V5Y2xvYWssXHJcblx0XHRcdFx0XHRcdFx0bWVzc2FnZVxyXG5cdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gb2YobmV3IEVycm9yUmVzcG9uc2UoZXJyb3IpKTtcclxuXHRcdFx0XHRcdH0pLFxyXG5cdFx0XHRcdFx0dGFrZVVudGlsRGVzdHJveWVkKCksXHJcblx0XHRcdFx0XHRmaW5hbGl6ZSgoKSA9PiBjbGVhcldhaXRpbmdTdGF0ZShzdGF0ZXMsIHNlcnZpY2VOYW1lKSlcclxuXHRcdFx0XHQpO1xyXG5cclxuXHRcdFx0XHRyZXR1cm4gb2JzZXJ2YWJsZTtcclxuXHRcdFx0fSk7XHJcblx0XHR9O1xyXG5cdH07XHJcbn1cclxuIl19
|
|
@@ -6,6 +6,14 @@ export const callState = (states, serviceName) => {
|
|
|
6
6
|
serviceCallFailed: false
|
|
7
7
|
};
|
|
8
8
|
};
|
|
9
|
+
// İstek iptal/teardown olduğunda (finalize) waitingForResponse'u temizler. Normal akış
|
|
10
|
+
// (success/warning/error) state'i zaten güncellediyse no-op — yalnızca takılı kalan true'yu düşürür.
|
|
11
|
+
export const clearWaitingState = (states, serviceName) => {
|
|
12
|
+
const current = states[serviceName];
|
|
13
|
+
if (current?.waitingForResponse) {
|
|
14
|
+
states[serviceName] = { ...current, waitingForResponse: false };
|
|
15
|
+
}
|
|
16
|
+
};
|
|
9
17
|
export const successState = (states, serviceName, translocoService, messageService, message, response) => {
|
|
10
18
|
states[serviceName] = {
|
|
11
19
|
serviceCalled: true,
|
|
@@ -166,4 +174,4 @@ const getTranslatedMessage = (messageCode, translocoService, response) => {
|
|
|
166
174
|
}
|
|
167
175
|
return translatedMessage;
|
|
168
176
|
};
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZVN0YXRlTWV0aG9kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvaHR0cC9zcmMvc2VydmljZVN0YXRlTWV0aG9kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFnQyxFQUFFLFdBQWdCLEVBQVEsRUFBRTtJQUNyRixNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUc7UUFDckIsYUFBYSxFQUFFLElBQUk7UUFDbkIsa0JBQWtCLEVBQUUsSUFBSTtRQUN4QixrQkFBa0IsRUFBRSxLQUFLO1FBQ3pCLGlCQUFpQixFQUFFLEtBQUs7S0FDeEIsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUMzQixNQUFnQyxFQUNoQyxXQUFnQixFQUNoQixnQkFBa0MsRUFDbEMsY0FBOEIsRUFDOUIsT0FBcUYsRUFDckYsUUFBYyxFQUNQLEVBQUU7SUFDVCxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUc7UUFDckIsYUFBYSxFQUFFLElBQUk7UUFDbkIsa0JBQWtCLEVBQUUsS0FBSztRQUN6QixrQkFBa0IsRUFBRSxJQUFJO1FBQ3hCLGlCQUFpQixFQUFFLEtBQUs7S0FDeEIsQ0FBQztJQUVGLElBQUksT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLGNBQWMsQ0FBQyxHQUFHLENBQUM7WUFDbEIsR0FBRyxFQUFFLFlBQVk7WUFDakIsUUFBUSxFQUFFLFNBQVM7WUFDbkIsT0FBTyxFQUFFLG9CQUFvQixDQUFTLE9BQU8sQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDO1NBQ2xGLENBQUMsQ0FBQztJQUNKLENBQUM7QUFDRixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsS0FBSyxFQUM5QixNQUFnQyxFQUNoQyxXQUFnQixFQUNoQixLQUF3QixFQUN4QixnQkFBa0MsRUFDbEMsY0FBOEIsRUFDOUIsZUFBZ0MsRUFDaEMsT0FBcUYsRUFDcEYsRUFBRTtJQUNILE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRztRQUNyQixhQUFhLEVBQUUsSUFBSTtRQUNuQixrQkFBa0IsRUFBRSxLQUFLO1FBQ3pCLGtCQUFrQixFQUFFLElBQUk7UUFDeEIsaUJBQWlCLEVBQUUsSUFBSTtLQUN2QixDQUFDO0lBRUYsSUFBSSxTQUFpQixDQUFDO0lBRXRCLFFBQVEsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLEtBQUssR0FBRztZQUNQLFNBQVMsR0FBRyxjQUFjLENBQUM7WUFDM0IsTUFBTTtRQUNQLEtBQUssR0FBRztZQUNQLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQztZQUM5QixNQUFNLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLE1BQU07UUFDUCxLQUFLLEdBQUc7WUFDUCxTQUFTLEdBQUcsbUJBQW1CLENBQUM7WUFDaEMsSUFBSSxlQUFlLENBQUMsY0FBYyxFQUFFO2dCQUFFLE1BQU0sZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDekcsTUFBTTtRQUNQLEtBQUssR0FBRztZQUNQLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQztZQUNoQyxNQUFNO1FBQ1AsS0FBSyxHQUFHO1lBQ1AsU0FBUyxHQUFHLHVCQUF1QixDQUFDO1lBQ3BDLE1BQU07UUFDUCxLQUFLLEdBQUc7WUFDUCxTQUFTLEdBQUcsdUJBQXVCLENBQUM7WUFDcEMsTUFBTTtRQUNQLEtBQUssR0FBRztZQUNQLFNBQVMsR0FBRyxhQUFhLENBQUM7WUFDMUIsTUFBTTtRQUNQLEtBQUssR0FBRztZQUNQLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDdEIsTUFBTTtRQUNQLEtBQUssR0FBRztZQUNQLFNBQVMsR0FBRyxlQUFlLENBQUM7WUFDNUIsTUFBTTtRQUNQLEtBQUssR0FBRztZQUNQLFNBQVMsR0FBRyw0QkFBNEIsQ0FBQztZQUN6QyxNQUFNO1FBQ1AsS0FBSyxHQUFHO1lBQ1AsU0FBUyxHQUFHLG9CQUFvQixDQUFDO1lBQ2pDLE1BQU07UUFDUCxLQUFLLEdBQUc7WUFDUCxTQUFTLEdBQUcsd0JBQXdCLENBQUM7WUFDckMsTUFBTTtRQUNQLEtBQUssR0FBRztZQUNQLFNBQVMsR0FBRyx1QkFBdUIsQ0FBQztZQUNwQyxNQUFNO1FBQ1AsS0FBSyxHQUFHO1lBQ1AsU0FBUyxHQUFHLDhCQUE4QixDQUFDO1lBQzNDLE1BQU07UUFDUCxLQUFLLEdBQUc7WUFDUCxTQUFTLEdBQUcsK0JBQStCLENBQUM7WUFDNUMsTUFBTTtRQUNQLEtBQUssR0FBRztZQUNQLFNBQVMsR0FBRywyQkFBMkIsQ0FBQztZQUN4QyxNQUFNO1FBQ1A7WUFDQyxTQUFTLEdBQUcsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUM7WUFDbEMsTUFBTTtJQUNSLENBQUM7SUFFRCxJQUFJLENBQUMsU0FBUztRQUFFLE9BQU87SUFFdkIsSUFBSSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFBRSxPQUFPO0lBRWhFLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3hFLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQW1CLEVBQUUsRUFBRTtZQUNuRCxNQUFNLEdBQUcsR0FBRyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUN6QyxNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEQsTUFBTSxJQUFJLEdBQUcsZUFBZSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1lBRTFFLE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUUxRSxjQUFjLENBQUMsR0FBRyxDQUFDO2dCQUNsQixHQUFHLEVBQUUsWUFBWTtnQkFDakIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU87Z0JBQzlCLE1BQU0sRUFBRSxVQUFVO2FBQ2xCLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztTQUFNLENBQUM7UUFDUCxjQUFjLENBQUMsR0FBRyxDQUFDO1lBQ2xCLEdBQUcsRUFBRSxZQUFZO1lBQ2pCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU87U0FDN0IsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3BCLGNBQWMsQ0FBQyxHQUFHLENBQUM7WUFDbEIsR0FBRyxFQUFFLFlBQVk7WUFDakIsUUFBUSxFQUFFLE9BQU87WUFDakIsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxJQUFJLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUM7U0FDdkYsQ0FBQyxDQUFDO0lBQ0osQ0FBQztBQUNGLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUMzQixNQUFnQyxFQUNoQyxXQUFnQixFQUNoQixRQUFhLEVBQ2IsY0FBOEIsRUFDdkIsRUFBRTtJQUNULE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRztRQUNyQixhQUFhLEVBQUUsSUFBSTtRQUNuQixrQkFBa0IsRUFBRSxLQUFLO1FBQ3pCLGtCQUFrQixFQUFFLElBQUk7UUFDeEIsaUJBQWlCLEVBQUUsSUFBSTtLQUN2QixDQUFDO0lBRUYsSUFBSSxRQUFRLEVBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3pGLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBbUIsRUFBRSxFQUFFO1lBQ2hELGNBQWMsQ0FBQyxHQUFHLENBQUM7Z0JBQ2xCLEdBQUcsRUFBRSxZQUFZO2dCQUNqQixRQUFRLEVBQUUsTUFBTTtnQkFDaEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPO2dCQUMxQixNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNO2FBQ25GLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztTQUFNLENBQUM7UUFDUCxjQUFjLENBQUMsR0FBRyxDQUFDO1lBQ2xCLEdBQUcsRUFBRSxZQUFZO1lBQ2pCLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTztTQUN6QixDQUFDLENBQUM7SUFDSixDQUFDO0FBQ0YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFdBQW1CLEVBQUUsZ0JBQWtDLEVBQUUsUUFBYyxFQUFVLEVBQUU7SUFDaEgsTUFBTSxlQUFlLEdBQUcsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDaEcsSUFBSSxpQkFBaUIsR0FBRyxlQUFlLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxXQUFXLENBQUM7SUFFdEUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDOUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDO0lBRTVCLElBQUksUUFBUSxJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBQzVHLEdBQUcsQ0FBQztZQUNILElBQUksZUFBZSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2xFLElBQUksYUFBYSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM5RCxJQUFJLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztZQUVqRyxnREFBZ0Q7WUFDaEQsSUFBSSxZQUFZLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QyxJQUFJLFVBQVUsQ0FBQztZQUVmLEtBQUssSUFBSSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQzlCLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNELENBQUM7WUFFRCxJQUFJLGNBQWMsR0FBRyxHQUFHLGdCQUFnQixHQUFHLFFBQVEsR0FBRyxjQUFjLEVBQUUsQ0FBQztZQUN2RSxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzNFLENBQUMsUUFBUSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtJQUN4RCxDQUFDO0lBRUQsT0FBTyxpQkFBaUIsQ0FBQztBQUMxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwU3RhdHVzQ29kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgS2V5Y2xvYWtTZXJ2aWNlIH0gZnJvbSAna2V5Y2xvYWstYW5ndWxhcic7XHJcblxyXG5pbXBvcnQgeyBFcnJvckRldGFpbCwgU2VydmljZUNhbGxTdGF0ZU1hcCB9IGZyb20gJy4uL2xpYi9pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBjb25zdCBjYWxsU3RhdGUgPSAoc3RhdGVzOiBTZXJ2aWNlQ2FsbFN0YXRlTWFwPGFueT4sIHNlcnZpY2VOYW1lOiBhbnkpOiB2b2lkID0+IHtcclxuXHRzdGF0ZXNbc2VydmljZU5hbWVdID0ge1xyXG5cdFx0c2VydmljZUNhbGxlZDogdHJ1ZSxcclxuXHRcdHdhaXRpbmdGb3JSZXNwb25zZTogdHJ1ZSxcclxuXHRcdHJlc3BvbnNlSXNSZWNpZXZlZDogZmFsc2UsXHJcblx0XHRzZXJ2aWNlQ2FsbEZhaWxlZDogZmFsc2VcclxuXHR9O1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHN1Y2Nlc3NTdGF0ZSA9IChcclxuXHRzdGF0ZXM6IFNlcnZpY2VDYWxsU3RhdGVNYXA8YW55PixcclxuXHRzZXJ2aWNlTmFtZTogYW55LFxyXG5cdHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UsXHJcblx0bWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG5cdG1lc3NhZ2U/OiB7IHN1Y2Nlc3M/OiBzdHJpbmc7IGVycm9yPzogc3RyaW5nOyBpZ25vcmVkU3RhdHVzQ29kZXM/OiBIdHRwU3RhdHVzQ29kZVtdIH0sXHJcblx0cmVzcG9uc2U/OiBhbnlcclxuKTogdm9pZCA9PiB7XHJcblx0c3RhdGVzW3NlcnZpY2VOYW1lXSA9IHtcclxuXHRcdHNlcnZpY2VDYWxsZWQ6IHRydWUsXHJcblx0XHR3YWl0aW5nRm9yUmVzcG9uc2U6IGZhbHNlLFxyXG5cdFx0cmVzcG9uc2VJc1JlY2lldmVkOiB0cnVlLFxyXG5cdFx0c2VydmljZUNhbGxGYWlsZWQ6IGZhbHNlXHJcblx0fTtcclxuXHJcblx0aWYgKG1lc3NhZ2U/LnN1Y2Nlc3MpIHtcclxuXHRcdG1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcblx0XHRcdGtleTogJ3RvYXN0LXJvb3QnLFxyXG5cdFx0XHRzZXZlcml0eTogJ3N1Y2Nlc3MnLFxyXG5cdFx0XHRzdW1tYXJ5OiBnZXRUcmFuc2xhdGVkTWVzc2FnZSg8c3RyaW5nPm1lc3NhZ2Uuc3VjY2VzcywgdHJhbnNsb2NvU2VydmljZSwgcmVzcG9uc2UpXHJcblx0XHR9KTtcclxuXHR9XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZXJyb3JTdGF0ZSA9IGFzeW5jIChcclxuXHRzdGF0ZXM6IFNlcnZpY2VDYWxsU3RhdGVNYXA8YW55PixcclxuXHRzZXJ2aWNlTmFtZTogYW55LFxyXG5cdGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSxcclxuXHR0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG5cdG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuXHRrZXljbG9ha1NlcnZpY2U6IEtleWNsb2FrU2VydmljZSxcclxuXHRtZXNzYWdlPzogeyBzdWNjZXNzPzogc3RyaW5nOyBlcnJvcj86IHN0cmluZzsgaWdub3JlZFN0YXR1c0NvZGVzPzogSHR0cFN0YXR1c0NvZGVbXSB9XHJcbikgPT4ge1xyXG5cdHN0YXRlc1tzZXJ2aWNlTmFtZV0gPSB7XHJcblx0XHRzZXJ2aWNlQ2FsbGVkOiB0cnVlLFxyXG5cdFx0d2FpdGluZ0ZvclJlc3BvbnNlOiBmYWxzZSxcclxuXHRcdHJlc3BvbnNlSXNSZWNpZXZlZDogdHJ1ZSxcclxuXHRcdHNlcnZpY2VDYWxsRmFpbGVkOiB0cnVlXHJcblx0fTtcclxuXHJcblx0bGV0IGh0dHBFcnJvcjogc3RyaW5nO1xyXG5cclxuXHRzd2l0Y2ggKGVycm9yLnN0YXR1cykge1xyXG5cdFx0Y2FzZSA0MDA6XHJcblx0XHRcdGh0dHBFcnJvciA9ICdIYXRhbMSxIMSwc3Rlayc7XHJcblx0XHRcdGJyZWFrO1xyXG5cdFx0Y2FzZSA0MDE6XHJcblx0XHRcdGh0dHBFcnJvciA9ICdZZXRraXNpeiBFcmnFn2ltJztcclxuXHRcdFx0YXdhaXQga2V5Y2xvYWtTZXJ2aWNlLmxvZ2luKHsgcmVkaXJlY3RVcmk6IHdpbmRvdy5sb2NhdGlvbi5ocmVmIH0pO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGNhc2UgNDAzOlxyXG5cdFx0XHRodHRwRXJyb3IgPSAnRXJpxZ9pbSBFbmdlbGxlbmRpJztcclxuXHRcdFx0aWYgKGtleWNsb2FrU2VydmljZS5pc1Rva2VuRXhwaXJlZCgpKSBhd2FpdCBrZXljbG9ha1NlcnZpY2UubG9naW4oeyByZWRpcmVjdFVyaTogd2luZG93LmxvY2F0aW9uLmhyZWYgfSk7XHJcblx0XHRcdGJyZWFrO1xyXG5cdFx0Y2FzZSA0MDQ6XHJcblx0XHRcdGh0dHBFcnJvciA9ICdLYXluYWsgQnVsdW5hbWFkxLEnO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGNhc2UgNDA1OlxyXG5cdFx0XHRodHRwRXJyb3IgPSAnxLB6aW4gVmVyaWxtZXllbiBNZXRvZCc7XHJcblx0XHRcdGJyZWFrO1xyXG5cdFx0Y2FzZSA0MDY6XHJcblx0XHRcdGh0dHBFcnJvciA9ICdLYWJ1bCBFZGlsZW1leiBCYcWfbMSxayc7XHJcblx0XHRcdGJyZWFrO1xyXG5cdFx0Y2FzZSA0MDg6XHJcblx0XHRcdGh0dHBFcnJvciA9ICdaYW1hbiBBxZ/EsW3EsSc7XHJcblx0XHRcdGJyZWFrO1xyXG5cdFx0Y2FzZSA0MDk6XHJcblx0XHRcdGh0dHBFcnJvciA9ICfDh2FrxLHFn21hJztcclxuXHRcdFx0YnJlYWs7XHJcblx0XHRjYXNlIDUwMDpcclxuXHRcdFx0aHR0cEVycm9yID0gJ1N1bnVjdSBIYXRhc8SxJztcclxuXHRcdFx0YnJlYWs7XHJcblx0XHRjYXNlIDUwMTpcclxuXHRcdFx0aHR0cEVycm9yID0gJ1N1bnVjdSBZYXDEsWxhbmTEsXJtYSBIYXRhc8SxJztcclxuXHRcdFx0YnJlYWs7XHJcblx0XHRjYXNlIDUwMjpcclxuXHRcdFx0aHR0cEVycm9yID0gJ0dlw6dlcnNpeiBBxJ8gR2XDp2lkaSc7XHJcblx0XHRcdGJyZWFrO1xyXG5cdFx0Y2FzZSA1MDM6XHJcblx0XHRcdGh0dHBFcnJvciA9ICdTdW51Y3UgSGl6bWV0IFZlcm1peW9yJztcclxuXHRcdFx0YnJlYWs7XHJcblx0XHRjYXNlIDUwNDpcclxuXHRcdFx0aHR0cEVycm9yID0gJ0HEnyBHZcOnaWRpIFphbWFuIEHFn8SxbcSxJztcclxuXHRcdFx0YnJlYWs7XHJcblx0XHRjYXNlIDUwNTpcclxuXHRcdFx0aHR0cEVycm9yID0gJ0hUVFAgUHJvdG9rb2wgRGVzdGVrbGVubWl5b3InO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGNhc2UgNTExOlxyXG5cdFx0XHRodHRwRXJyb3IgPSAnQcSfIEtpbWxpayBEb8SfcnVsYW1hc8SxIEdlcmVrbGknO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGNhc2UgNTk5OlxyXG5cdFx0XHRodHRwRXJyb3IgPSAnQcSfIEJhxJ9sYW50xLFzxLEgWmFtYW4gQcWfxLFtxLEnO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGRlZmF1bHQ6XHJcblx0XHRcdGh0dHBFcnJvciA9IGVycm9yPy5lcnJvcj8ubWVzc2FnZTtcclxuXHRcdFx0YnJlYWs7XHJcblx0fVxyXG5cclxuXHRpZiAoIWh0dHBFcnJvcikgcmV0dXJuO1xyXG5cclxuXHRpZiAobWVzc2FnZT8uaWdub3JlZFN0YXR1c0NvZGVzPy5pbmNsdWRlcyhlcnJvci5zdGF0dXMpKSByZXR1cm47XHJcblxyXG5cdGlmIChlcnJvci5lcnJvcj8uZGV0YWlscz8ubGVuZ3RoICYmIEFycmF5LmlzQXJyYXkoZXJyb3IuZXJyb3IuZGV0YWlscykpIHtcclxuXHRcdGVycm9yLmVycm9yLmRldGFpbHMuZm9yRWFjaCgoZGV0YWlsOiBFcnJvckRldGFpbCkgPT4ge1xyXG5cdFx0XHRjb25zdCBrZXkgPSAnZmllbGRzLicgKyBkZXRhaWwuZmllbGROYW1lO1xyXG5cdFx0XHRjb25zdCB0cmFuc2xhdGVkRmllbGQgPSB0cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZShrZXkpO1xyXG5cdFx0XHRjb25zdCB0ZXh0ID0gdHJhbnNsYXRlZEZpZWxkID09PSBrZXkgPyBkZXRhaWwuZmllbGROYW1lIDogdHJhbnNsYXRlZEZpZWxkO1xyXG5cclxuXHRcdFx0Y29uc3QgZGV0YWlsVGV4dCA9IChkZXRhaWwuZmllbGROYW1lID8gdGV4dCArICcgLSAnIDogJycpICsgZGV0YWlsLnJlYXNvbjtcclxuXHJcblx0XHRcdG1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcblx0XHRcdFx0a2V5OiAndG9hc3Qtcm9vdCcsXHJcblx0XHRcdFx0c2V2ZXJpdHk6ICdlcnJvcicsXHJcblx0XHRcdFx0c3VtbWFyeTogZXJyb3I/LmVycm9yPy5tZXNzYWdlLFxyXG5cdFx0XHRcdGRldGFpbDogZGV0YWlsVGV4dFxyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdH0gZWxzZSB7XHJcblx0XHRtZXNzYWdlU2VydmljZS5hZGQoe1xyXG5cdFx0XHRrZXk6ICd0b2FzdC1yb290JyxcclxuXHRcdFx0c2V2ZXJpdHk6ICdlcnJvcicsXHJcblx0XHRcdHN1bW1hcnk6IGh0dHBFcnJvcixcclxuXHRcdFx0ZGV0YWlsOiBlcnJvcj8uZXJyb3I/Lm1lc3NhZ2VcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aWYgKG1lc3NhZ2U/LmVycm9yKSB7XHJcblx0XHRtZXNzYWdlU2VydmljZS5hZGQoe1xyXG5cdFx0XHRrZXk6ICd0b2FzdC1yb290JyxcclxuXHRcdFx0c2V2ZXJpdHk6ICdlcnJvcicsXHJcblx0XHRcdHN1bW1hcnk6IGVycm9yPy5lcnJvcj8ubWVzc2FnZSB8fCBnZXRUcmFuc2xhdGVkTWVzc2FnZShtZXNzYWdlLmVycm9yLCB0cmFuc2xvY29TZXJ2aWNlKVxyXG5cdFx0fSk7XHJcblx0fVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHdhcm5pbmdTdGF0ZSA9IChcclxuXHRzdGF0ZXM6IFNlcnZpY2VDYWxsU3RhdGVNYXA8YW55PixcclxuXHRzZXJ2aWNlTmFtZTogYW55LFxyXG5cdHJlc3BvbnNlOiBhbnksXHJcblx0bWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlXHJcbik6IHZvaWQgPT4ge1xyXG5cdHN0YXRlc1tzZXJ2aWNlTmFtZV0gPSB7XHJcblx0XHRzZXJ2aWNlQ2FsbGVkOiB0cnVlLFxyXG5cdFx0d2FpdGluZ0ZvclJlc3BvbnNlOiBmYWxzZSxcclxuXHRcdHJlc3BvbnNlSXNSZWNpZXZlZDogdHJ1ZSxcclxuXHRcdHNlcnZpY2VDYWxsRmFpbGVkOiB0cnVlXHJcblx0fTtcclxuXHJcblx0aWYgKHJlc3BvbnNlPy5kZXRhaWxzICYmIEFycmF5LmlzQXJyYXkocmVzcG9uc2UuZGV0YWlscykgJiYgcmVzcG9uc2UuZGV0YWlscy5sZW5ndGggPiAwKSB7XHJcblx0XHRyZXNwb25zZS5kZXRhaWxzLmZvckVhY2goKGRldGFpbDogRXJyb3JEZXRhaWwpID0+IHtcclxuXHRcdFx0bWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuXHRcdFx0XHRrZXk6ICd0b2FzdC1yb290JyxcclxuXHRcdFx0XHRzZXZlcml0eTogJ3dhcm4nLFxyXG5cdFx0XHRcdHN1bW1hcnk6IHJlc3BvbnNlPy5tZXNzYWdlLFxyXG5cdFx0XHRcdGRldGFpbDogKGRldGFpbC5maWVsZE5hbWUgIT09IG51bGwgPyBkZXRhaWwuZmllbGROYW1lICsgJyAtICcgOiAnJykgKyBkZXRhaWwucmVhc29uXHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fSBlbHNlIHtcclxuXHRcdG1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcblx0XHRcdGtleTogJ3RvYXN0LXJvb3QnLFxyXG5cdFx0XHRzZXZlcml0eTogJ3dhcm4nLFxyXG5cdFx0XHRkZXRhaWw6IHJlc3BvbnNlPy5tZXNzYWdlXHJcblx0XHR9KTtcclxuXHR9XHJcbn07XHJcblxyXG5jb25zdCBnZXRUcmFuc2xhdGVkTWVzc2FnZSA9IChtZXNzYWdlQ29kZTogc3RyaW5nLCB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLCByZXNwb25zZT86IGFueSk6IHN0cmluZyA9PiB7XHJcblx0Y29uc3QgdHJhbnNsYXRlT2JqZWN0ID0gdHJhbnNsb2NvU2VydmljZS5nZXRUcmFuc2xhdGlvbigpLmdldCh0cmFuc2xvY29TZXJ2aWNlLmdldEFjdGl2ZUxhbmcoKSk7XHJcblx0bGV0IHRyYW5zbGF0ZWRNZXNzYWdlID0gdHJhbnNsYXRlT2JqZWN0Py5bbWVzc2FnZUNvZGVdID8/IG1lc3NhZ2VDb2RlO1xyXG5cclxuXHRjb25zdCBwYXJhbVN0YXJ0U3ltYm9sID0gJ3t7JztcclxuXHRjb25zdCBwYXJhbUVuZFN5bWJvbCA9ICd9fSc7XHJcblxyXG5cdGlmIChyZXNwb25zZSAmJiB0cmFuc2xhdGVkTWVzc2FnZS5pbmNsdWRlcyhwYXJhbVN0YXJ0U3ltYm9sKSAmJiB0cmFuc2xhdGVkTWVzc2FnZS5pbmNsdWRlcyhwYXJhbUVuZFN5bWJvbCkpIHtcclxuXHRcdGRvIHtcclxuXHRcdFx0bGV0IHBhcmFtU3RhcnRJbmRleCA9IHRyYW5zbGF0ZWRNZXNzYWdlLmluZGV4T2YocGFyYW1TdGFydFN5bWJvbCk7XHJcblx0XHRcdGxldCBwYXJhbUVuZEluZGV4ID0gdHJhbnNsYXRlZE1lc3NhZ2UuaW5kZXhPZihwYXJhbUVuZFN5bWJvbCk7XHJcblx0XHRcdGxldCBwYXJhbUtleSA9IHRyYW5zbGF0ZWRNZXNzYWdlLnNsaWNlKHBhcmFtU3RhcnRJbmRleCArIHBhcmFtU3RhcnRTeW1ib2wubGVuZ3RoLCBwYXJhbUVuZEluZGV4KTtcclxuXHJcblx0XHRcdC8vIFNwbGl0dGluZyB0aGUga2V5IHRvIGdldCBuZXN0ZWQgb2JqZWN0IHZhbHVlc1xyXG5cdFx0XHRsZXQgcGFyYW1LZXlMaXN0ID0gcGFyYW1LZXkuc3BsaXQoJy4nKTtcclxuXHRcdFx0bGV0IHBhcmFtVmFsdWU7XHJcblxyXG5cdFx0XHRmb3IgKGxldCBrZXkgb2YgcGFyYW1LZXlMaXN0KSB7XHJcblx0XHRcdFx0cGFyYW1WYWx1ZSA9IHBhcmFtVmFsdWUgPyBwYXJhbVZhbHVlW2tleV0gOiByZXNwb25zZVtrZXldO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRsZXQgcmVwbGFjZVBhdHRlcm4gPSBgJHtwYXJhbVN0YXJ0U3ltYm9sfSR7cGFyYW1LZXl9JHtwYXJhbUVuZFN5bWJvbH1gO1xyXG5cdFx0XHR0cmFuc2xhdGVkTWVzc2FnZSA9IHRyYW5zbGF0ZWRNZXNzYWdlLnJlcGxhY2UocmVwbGFjZVBhdHRlcm4sIHBhcmFtVmFsdWUpO1xyXG5cdFx0fSB3aGlsZSAodHJhbnNsYXRlZE1lc3NhZ2UuaW5jbHVkZXMocGFyYW1TdGFydFN5bWJvbCkpO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIHRyYW5zbGF0ZWRNZXNzYWdlO1xyXG59O1xyXG4iXX0=
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZVN0YXRlTWV0aG9kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwvaHR0cC9zcmMvc2VydmljZVN0YXRlTWV0aG9kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFnQyxFQUFFLFdBQWdCLEVBQVEsRUFBRTtJQUNyRixNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUc7UUFDckIsYUFBYSxFQUFFLElBQUk7UUFDbkIsa0JBQWtCLEVBQUUsSUFBSTtRQUN4QixrQkFBa0IsRUFBRSxLQUFLO1FBQ3pCLGlCQUFpQixFQUFFLEtBQUs7S0FDeEIsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLHVGQUF1RjtBQUN2RixxR0FBcUc7QUFDckcsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxNQUFnQyxFQUFFLFdBQWdCLEVBQVEsRUFBRTtJQUM3RixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEMsSUFBSSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztRQUNqQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0FBQ0YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQzNCLE1BQWdDLEVBQ2hDLFdBQWdCLEVBQ2hCLGdCQUFrQyxFQUNsQyxjQUE4QixFQUM5QixPQUFxRixFQUNyRixRQUFjLEVBQ1AsRUFBRTtJQUNULE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRztRQUNyQixhQUFhLEVBQUUsSUFBSTtRQUNuQixrQkFBa0IsRUFBRSxLQUFLO1FBQ3pCLGtCQUFrQixFQUFFLElBQUk7UUFDeEIsaUJBQWlCLEVBQUUsS0FBSztLQUN4QixDQUFDO0lBRUYsSUFBSSxPQUFP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QUFHLEdBQUcsZ0JBQWdCLEdBQUcsUUFBUSxHQUFHLGNBQWMsRUFBRSxDQUFDO1lBQ3ZFLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDM0UsQ0FBQyxRQUFRLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO0lBQ3hELENBQUM7SUFFRCxPQUFPLGlCQUFpQixDQUFDO0FBQzFCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBTdGF0dXNDb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQG5nbmVhdC90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBLZXljbG9ha1NlcnZpY2UgfSBmcm9tICdrZXljbG9hay1hbmd1bGFyJztcclxuXHJcbmltcG9ydCB7IEVycm9yRGV0YWlsLCBTZXJ2aWNlQ2FsbFN0YXRlTWFwIH0gZnJvbSAnLi4vbGliL2ludGVyZmFjZXMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGNhbGxTdGF0ZSA9IChzdGF0ZXM6IFNlcnZpY2VDYWxsU3RhdGVNYXA8YW55Piwgc2VydmljZU5hbWU6IGFueSk6IHZvaWQgPT4ge1xyXG5cdHN0YXRlc1tzZXJ2aWNlTmFtZV0gPSB7XHJcblx0XHRzZXJ2aWNlQ2FsbGVkOiB0cnVlLFxyXG5cdFx0d2FpdGluZ0ZvclJlc3BvbnNlOiB0cnVlLFxyXG5cdFx0cmVzcG9uc2VJc1JlY2lldmVkOiBmYWxzZSxcclxuXHRcdHNlcnZpY2VDYWxsRmFpbGVkOiBmYWxzZVxyXG5cdH07XHJcbn07XHJcblxyXG4vLyDEsHN0ZWsgaXB0YWwvdGVhcmRvd24gb2xkdcSfdW5kYSAoZmluYWxpemUpIHdhaXRpbmdGb3JSZXNwb25zZSd1IHRlbWl6bGVyLiBOb3JtYWwgYWvEscWfXHJcbi8vIChzdWNjZXNzL3dhcm5pbmcvZXJyb3IpIHN0YXRlJ2kgemF0ZW4gZ8O8bmNlbGxlZGl5c2Ugbm8tb3Ag4oCUIHlhbG7EsXpjYSB0YWvEsWzEsSBrYWxhbiB0cnVlJ3l1IGTDvMWfw7xyw7xyLlxyXG5leHBvcnQgY29uc3QgY2xlYXJXYWl0aW5nU3RhdGUgPSAoc3RhdGVzOiBTZXJ2aWNlQ2FsbFN0YXRlTWFwPGFueT4sIHNlcnZpY2VOYW1lOiBhbnkpOiB2b2lkID0+IHtcclxuXHRjb25zdCBjdXJyZW50ID0gc3RhdGVzW3NlcnZpY2VOYW1lXTtcclxuXHRpZiAoY3VycmVudD8ud2FpdGluZ0ZvclJlc3BvbnNlKSB7XHJcblx0XHRzdGF0ZXNbc2VydmljZU5hbWVdID0geyAuLi5jdXJyZW50LCB3YWl0aW5nRm9yUmVzcG9uc2U6IGZhbHNlIH07XHJcblx0fVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHN1Y2Nlc3NTdGF0ZSA9IChcclxuXHRzdGF0ZXM6IFNlcnZpY2VDYWxsU3RhdGVNYXA8YW55PixcclxuXHRzZXJ2aWNlTmFtZTogYW55LFxyXG5cdHRyYW5zbG9jb1NlcnZpY2U6IFRyYW5zbG9jb1NlcnZpY2UsXHJcblx0bWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG5cdG1lc3NhZ2U/OiB7IHN1Y2Nlc3M/OiBzdHJpbmc7IGVycm9yPzogc3RyaW5nOyBpZ25vcmVkU3RhdHVzQ29kZXM/OiBIdHRwU3RhdHVzQ29kZVtdIH0sXHJcblx0cmVzcG9uc2U/OiBhbnlcclxuKTogdm9pZCA9PiB7XHJcblx0c3RhdGVzW3NlcnZpY2VOYW1lXSA9IHtcclxuXHRcdHNlcnZpY2VDYWxsZWQ6IHRydWUsXHJcblx0XHR3YWl0aW5nRm9yUmVzcG9uc2U6IGZhbHNlLFxyXG5cdFx0cmVzcG9uc2VJc1JlY2lldmVkOiB0cnVlLFxyXG5cdFx0c2VydmljZUNhbGxGYWlsZWQ6IGZhbHNlXHJcblx0fTtcclxuXHJcblx0aWYgKG1lc3NhZ2U/LnN1Y2Nlc3MpIHtcclxuXHRcdG1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcblx0XHRcdGtleTogJ3RvYXN0LXJvb3QnLFxyXG5cdFx0XHRzZXZlcml0eTogJ3N1Y2Nlc3MnLFxyXG5cdFx0XHRzdW1tYXJ5OiBnZXRUcmFuc2xhdGVkTWVzc2FnZSg8c3RyaW5nPm1lc3NhZ2Uuc3VjY2VzcywgdHJhbnNsb2NvU2VydmljZSwgcmVzcG9uc2UpXHJcblx0XHR9KTtcclxuXHR9XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgZXJyb3JTdGF0ZSA9IGFzeW5jIChcclxuXHRzdGF0ZXM6IFNlcnZpY2VDYWxsU3RhdGVNYXA8YW55PixcclxuXHRzZXJ2aWNlTmFtZTogYW55LFxyXG5cdGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSxcclxuXHR0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLFxyXG5cdG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuXHRrZXljbG9ha1NlcnZpY2U6IEtleWNsb2FrU2VydmljZSxcclxuXHRtZXNzYWdlPzogeyBzdWNjZXNzPzogc3RyaW5nOyBlcnJvcj86IHN0cmluZzsgaWdub3JlZFN0YXR1c0NvZGVzPzogSHR0cFN0YXR1c0NvZGVbXSB9XHJcbikgPT4ge1xyXG5cdHN0YXRlc1tzZXJ2aWNlTmFtZV0gPSB7XHJcblx0XHRzZXJ2aWNlQ2FsbGVkOiB0cnVlLFxyXG5cdFx0d2FpdGluZ0ZvclJlc3BvbnNlOiBmYWxzZSxcclxuXHRcdHJlc3BvbnNlSXNSZWNpZXZlZDogdHJ1ZSxcclxuXHRcdHNlcnZpY2VDYWxsRmFpbGVkOiB0cnVlXHJcblx0fTtcclxuXHJcblx0bGV0IGh0dHBFcnJvcjogc3RyaW5nO1xyXG5cclxuXHRzd2l0Y2ggKGVycm9yLnN0YXR1cykge1xyXG5cdFx0Y2FzZSA0MDA6XHJcblx0XHRcdGh0dHBFcnJvciA9ICdIYXRhbMSxIMSwc3Rlayc7XHJcblx0XHRcdGJyZWFrO1xyXG5cdFx0Y2FzZSA0MDE6XHJcblx0XHRcdGh0dHBFcnJvciA9ICdZZXRraXNpeiBFcmnFn2ltJztcclxuXHRcdFx0YXdhaXQga2V5Y2xvYWtTZXJ2aWNlLmxvZ2luKHsgcmVkaXJlY3RVcmk6IHdpbmRvdy5sb2NhdGlvbi5ocmVmIH0pO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGNhc2UgNDAzOlxyXG5cdFx0XHRodHRwRXJyb3IgPSAnRXJpxZ9pbSBFbmdlbGxlbmRpJztcclxuXHRcdFx0aWYgKGtleWNsb2FrU2VydmljZS5pc1Rva2VuRXhwaXJlZCgpKSBhd2FpdCBrZXljbG9ha1NlcnZpY2UubG9naW4oeyByZWRpcmVjdFVyaTogd2luZG93LmxvY2F0aW9uLmhyZWYgfSk7XHJcblx0XHRcdGJyZWFrO1xyXG5cdFx0Y2FzZSA0MDQ6XHJcblx0XHRcdGh0dHBFcnJvciA9ICdLYXluYWsgQnVsdW5hbWFkxLEnO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGNhc2UgNDA1OlxyXG5cdFx0XHRodHRwRXJyb3IgPSAnxLB6aW4gVmVyaWxtZXllbiBNZXRvZCc7XHJcblx0XHRcdGJyZWFrO1xyXG5cdFx0Y2FzZSA0MDY6XHJcblx0XHRcdGh0dHBFcnJvciA9ICdLYWJ1bCBFZGlsZW1leiBCYcWfbMSxayc7XHJcblx0XHRcdGJyZWFrO1xyXG5cdFx0Y2FzZSA0MDg6XHJcblx0XHRcdGh0dHBFcnJvciA9ICdaYW1hbiBBxZ/EsW3EsSc7XHJcblx0XHRcdGJyZWFrO1xyXG5cdFx0Y2FzZSA0MDk6XHJcblx0XHRcdGh0dHBFcnJvciA9ICfDh2FrxLHFn21hJztcclxuXHRcdFx0YnJlYWs7XHJcblx0XHRjYXNlIDUwMDpcclxuXHRcdFx0aHR0cEVycm9yID0gJ1N1bnVjdSBIYXRhc8SxJztcclxuXHRcdFx0YnJlYWs7XHJcblx0XHRjYXNlIDUwMTpcclxuXHRcdFx0aHR0cEVycm9yID0gJ1N1bnVjdSBZYXDEsWxhbmTEsXJtYSBIYXRhc8SxJztcclxuXHRcdFx0YnJlYWs7XHJcblx0XHRjYXNlIDUwMjpcclxuXHRcdFx0aHR0cEVycm9yID0gJ0dlw6dlcnNpeiBBxJ8gR2XDp2lkaSc7XHJcblx0XHRcdGJyZWFrO1xyXG5cdFx0Y2FzZSA1MDM6XHJcblx0XHRcdGh0dHBFcnJvciA9ICdTdW51Y3UgSGl6bWV0IFZlcm1peW9yJztcclxuXHRcdFx0YnJlYWs7XHJcblx0XHRjYXNlIDUwNDpcclxuXHRcdFx0aHR0cEVycm9yID0gJ0HEnyBHZcOnaWRpIFphbWFuIEHFn8SxbcSxJztcclxuXHRcdFx0YnJlYWs7XHJcblx0XHRjYXNlIDUwNTpcclxuXHRcdFx0aHR0cEVycm9yID0gJ0hUVFAgUHJvdG9rb2wgRGVzdGVrbGVubWl5b3InO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGNhc2UgNTExOlxyXG5cdFx0XHRodHRwRXJyb3IgPSAnQcSfIEtpbWxpayBEb8SfcnVsYW1hc8SxIEdlcmVrbGknO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGNhc2UgNTk5OlxyXG5cdFx0XHRodHRwRXJyb3IgPSAnQcSfIEJhxJ9sYW50xLFzxLEgWmFtYW4gQcWfxLFtxLEnO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGRlZmF1bHQ6XHJcblx0XHRcdGh0dHBFcnJvciA9IGVycm9yPy5lcnJvcj8ubWVzc2FnZTtcclxuXHRcdFx0YnJlYWs7XHJcblx0fVxyXG5cclxuXHRpZiAoIWh0dHBFcnJvcikgcmV0dXJuO1xyXG5cclxuXHRpZiAobWVzc2FnZT8uaWdub3JlZFN0YXR1c0NvZGVzPy5pbmNsdWRlcyhlcnJvci5zdGF0dXMpKSByZXR1cm47XHJcblxyXG5cdGlmIChlcnJvci5lcnJvcj8uZGV0YWlscz8ubGVuZ3RoICYmIEFycmF5LmlzQXJyYXkoZXJyb3IuZXJyb3IuZGV0YWlscykpIHtcclxuXHRcdGVycm9yLmVycm9yLmRldGFpbHMuZm9yRWFjaCgoZGV0YWlsOiBFcnJvckRldGFpbCkgPT4ge1xyXG5cdFx0XHRjb25zdCBrZXkgPSAnZmllbGRzLicgKyBkZXRhaWwuZmllbGROYW1lO1xyXG5cdFx0XHRjb25zdCB0cmFuc2xhdGVkRmllbGQgPSB0cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZShrZXkpO1xyXG5cdFx0XHRjb25zdCB0ZXh0ID0gdHJhbnNsYXRlZEZpZWxkID09PSBrZXkgPyBkZXRhaWwuZmllbGROYW1lIDogdHJhbnNsYXRlZEZpZWxkO1xyXG5cclxuXHRcdFx0Y29uc3QgZGV0YWlsVGV4dCA9IChkZXRhaWwuZmllbGROYW1lID8gdGV4dCArICcgLSAnIDogJycpICsgZGV0YWlsLnJlYXNvbjtcclxuXHJcblx0XHRcdG1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcblx0XHRcdFx0a2V5OiAndG9hc3Qtcm9vdCcsXHJcblx0XHRcdFx0c2V2ZXJpdHk6ICdlcnJvcicsXHJcblx0XHRcdFx0c3VtbWFyeTogZXJyb3I/LmVycm9yPy5tZXNzYWdlLFxyXG5cdFx0XHRcdGRldGFpbDogZGV0YWlsVGV4dFxyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdH0gZWxzZSB7XHJcblx0XHRtZXNzYWdlU2VydmljZS5hZGQoe1xyXG5cdFx0XHRrZXk6ICd0b2FzdC1yb290JyxcclxuXHRcdFx0c2V2ZXJpdHk6ICdlcnJvcicsXHJcblx0XHRcdHN1bW1hcnk6IGh0dHBFcnJvcixcclxuXHRcdFx0ZGV0YWlsOiBlcnJvcj8uZXJyb3I/Lm1lc3NhZ2VcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aWYgKG1lc3NhZ2U/LmVycm9yKSB7XHJcblx0XHRtZXNzYWdlU2VydmljZS5hZGQoe1xyXG5cdFx0XHRrZXk6ICd0b2FzdC1yb290JyxcclxuXHRcdFx0c2V2ZXJpdHk6ICdlcnJvcicsXHJcblx0XHRcdHN1bW1hcnk6IGVycm9yPy5lcnJvcj8ubWVzc2FnZSB8fCBnZXRUcmFuc2xhdGVkTWVzc2FnZShtZXNzYWdlLmVycm9yLCB0cmFuc2xvY29TZXJ2aWNlKVxyXG5cdFx0fSk7XHJcblx0fVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHdhcm5pbmdTdGF0ZSA9IChcclxuXHRzdGF0ZXM6IFNlcnZpY2VDYWxsU3RhdGVNYXA8YW55PixcclxuXHRzZXJ2aWNlTmFtZTogYW55LFxyXG5cdHJlc3BvbnNlOiBhbnksXHJcblx0bWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlXHJcbik6IHZvaWQgPT4ge1xyXG5cdHN0YXRlc1tzZXJ2aWNlTmFtZV0gPSB7XHJcblx0XHRzZXJ2aWNlQ2FsbGVkOiB0cnVlLFxyXG5cdFx0d2FpdGluZ0ZvclJlc3BvbnNlOiBmYWxzZSxcclxuXHRcdHJlc3BvbnNlSXNSZWNpZXZlZDogdHJ1ZSxcclxuXHRcdHNlcnZpY2VDYWxsRmFpbGVkOiB0cnVlXHJcblx0fTtcclxuXHJcblx0aWYgKHJlc3BvbnNlPy5kZXRhaWxzICYmIEFycmF5LmlzQXJyYXkocmVzcG9uc2UuZGV0YWlscykgJiYgcmVzcG9uc2UuZGV0YWlscy5sZW5ndGggPiAwKSB7XHJcblx0XHRyZXNwb25zZS5kZXRhaWxzLmZvckVhY2goKGRldGFpbDogRXJyb3JEZXRhaWwpID0+IHtcclxuXHRcdFx0bWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuXHRcdFx0XHRrZXk6ICd0b2FzdC1yb290JyxcclxuXHRcdFx0XHRzZXZlcml0eTogJ3dhcm4nLFxyXG5cdFx0XHRcdHN1bW1hcnk6IHJlc3BvbnNlPy5tZXNzYWdlLFxyXG5cdFx0XHRcdGRldGFpbDogKGRldGFpbC5maWVsZE5hbWUgIT09IG51bGwgPyBkZXRhaWwuZmllbGROYW1lICsgJyAtICcgOiAnJykgKyBkZXRhaWwucmVhc29uXHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fSBlbHNlIHtcclxuXHRcdG1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcblx0XHRcdGtleTogJ3RvYXN0LXJvb3QnLFxyXG5cdFx0XHRzZXZlcml0eTogJ3dhcm4nLFxyXG5cdFx0XHRkZXRhaWw6IHJlc3BvbnNlPy5tZXNzYWdlXHJcblx0XHR9KTtcclxuXHR9XHJcbn07XHJcblxyXG5jb25zdCBnZXRUcmFuc2xhdGVkTWVzc2FnZSA9IChtZXNzYWdlQ29kZTogc3RyaW5nLCB0cmFuc2xvY29TZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLCByZXNwb25zZT86IGFueSk6IHN0cmluZyA9PiB7XHJcblx0Y29uc3QgdHJhbnNsYXRlT2JqZWN0ID0gdHJhbnNsb2NvU2VydmljZS5nZXRUcmFuc2xhdGlvbigpLmdldCh0cmFuc2xvY29TZXJ2aWNlLmdldEFjdGl2ZUxhbmcoKSk7XHJcblx0bGV0IHRyYW5zbGF0ZWRNZXNzYWdlID0gdHJhbnNsYXRlT2JqZWN0Py5bbWVzc2FnZUNvZGVdID8/IG1lc3NhZ2VDb2RlO1xyXG5cclxuXHRjb25zdCBwYXJhbVN0YXJ0U3ltYm9sID0gJ3t7JztcclxuXHRjb25zdCBwYXJhbUVuZFN5bWJvbCA9ICd9fSc7XHJcblxyXG5cdGlmIChyZXNwb25zZSAmJiB0cmFuc2xhdGVkTWVzc2FnZS5pbmNsdWRlcyhwYXJhbVN0YXJ0U3ltYm9sKSAmJiB0cmFuc2xhdGVkTWVzc2FnZS5pbmNsdWRlcyhwYXJhbUVuZFN5bWJvbCkpIHtcclxuXHRcdGRvIHtcclxuXHRcdFx0bGV0IHBhcmFtU3RhcnRJbmRleCA9IHRyYW5zbGF0ZWRNZXNzYWdlLmluZGV4T2YocGFyYW1TdGFydFN5bWJvbCk7XHJcblx0XHRcdGxldCBwYXJhbUVuZEluZGV4ID0gdHJhbnNsYXRlZE1lc3NhZ2UuaW5kZXhPZihwYXJhbUVuZFN5bWJvbCk7XHJcblx0XHRcdGxldCBwYXJhbUtleSA9IHRyYW5zbGF0ZWRNZXNzYWdlLnNsaWNlKHBhcmFtU3RhcnRJbmRleCArIHBhcmFtU3RhcnRTeW1ib2wubGVuZ3RoLCBwYXJhbUVuZEluZGV4KTtcclxuXHJcblx0XHRcdC8vIFNwbGl0dGluZyB0aGUga2V5IHRvIGdldCBuZXN0ZWQgb2JqZWN0IHZhbHVlc1xyXG5cdFx0XHRsZXQgcGFyYW1LZXlMaXN0ID0gcGFyYW1LZXkuc3BsaXQoJy4nKTtcclxuXHRcdFx0bGV0IHBhcmFtVmFsdWU7XHJcblxyXG5cdFx0XHRmb3IgKGxldCBrZXkgb2YgcGFyYW1LZXlMaXN0KSB7XHJcblx0XHRcdFx0cGFyYW1WYWx1ZSA9IHBhcmFtVmFsdWUgPyBwYXJhbVZhbHVlW2tleV0gOiByZXNwb25zZVtrZXldO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRsZXQgcmVwbGFjZVBhdHRlcm4gPSBgJHtwYXJhbVN0YXJ0U3ltYm9sfSR7cGFyYW1LZXl9JHtwYXJhbUVuZFN5bWJvbH1gO1xyXG5cdFx0XHR0cmFuc2xhdGVkTWVzc2FnZSA9IHRyYW5zbGF0ZWRNZXNzYWdlLnJlcGxhY2UocmVwbGFjZVBhdHRlcm4sIHBhcmFtVmFsdWUpO1xyXG5cdFx0fSB3aGlsZSAodHJhbnNsYXRlZE1lc3NhZ2UuaW5jbHVkZXMocGFyYW1TdGFydFN5bWJvbCkpO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIHRyYW5zbGF0ZWRNZXNzYWdlO1xyXG59O1xyXG4iXX0=
|