@mediusinc/mng-commons 5.0.0-rc.0 → 5.0.0-rc.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/core/data-list/data-list-params-helpers.d.ts +82 -0
- package/core/descriptors/action.descriptor.d.ts +3 -3
- package/core/descriptors/column.descriptor.d.ts +1 -1
- package/core/descriptors/editor.descriptor.d.ts +6 -6
- package/core/descriptors/enum.descriptor.d.ts +6 -0
- package/core/descriptors/filter.descriptor.d.ts +1 -1
- package/core/descriptors/model.descriptor.d.ts +1 -1
- package/core/descriptors/table.descriptor.d.ts +6 -6
- package/core/descriptors/tableview.descriptor.d.ts +10 -10
- package/core/enum/enum-helpers.d.ts +49 -0
- package/core/error/error-helpers.d.ts +114 -0
- package/core/helpers/date.d.ts +14 -0
- package/core/helpers/object.d.ts +27 -0
- package/core/helpers/route.d.ts +35 -0
- package/core/helpers/string.d.ts +7 -0
- package/core/helpers/templates.d.ts +3 -0
- package/core/i18n/i18n-common.d.ts +6 -0
- package/core/i18n/i18n-error.d.ts +4 -0
- package/core/i18n/i18n-type.d.ts +20 -0
- package/core/index.d.ts +15 -9
- package/{model → core}/pipes/enum.pipe.d.ts +2 -2
- package/core/pipes/enumerate.pipe.d.ts +3 -3
- package/{model → core}/pipes/i18n-property.pipe.d.ts +2 -2
- package/core/pipes/template.pipe.d.ts +0 -2
- package/core/router/route-builder.d.ts +2 -4
- package/core/router/routes-builder.d.ts +5 -6
- package/core/security/permission-helpers.d.ts +3 -0
- package/core/security/permissions.model.d.ts +2 -2
- package/esm2022/core/components/notification/notification-wrapper.component.mjs +4 -4
- package/esm2022/core/components/pages/error/error.page.component.mjs +3 -3
- package/esm2022/core/components/pages/not-found/not-found.page.component.mjs +3 -3
- package/esm2022/core/data-list/data-list-params-helpers.mjs +415 -0
- package/esm2022/core/data-list/filter-match.model.mjs +1 -1
- package/esm2022/core/data-providers/base.data-provider.mjs +1 -1
- package/esm2022/core/descriptors/action.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/column.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/editor.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/enum.descriptor.mjs +2 -0
- package/esm2022/core/descriptors/filter.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/model.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/table.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/tableview.descriptor.mjs +1 -1
- package/esm2022/core/directives/component.directive.mjs +4 -4
- package/esm2022/core/directives/dialog-keydown-handler.directive.mjs +4 -4
- package/esm2022/core/directives/template.directive.mjs +3 -3
- package/esm2022/core/enum/enum-helpers.mjs +81 -0
- package/esm2022/core/error/error-handler.mjs +3 -3
- package/esm2022/core/error/error-helpers.mjs +247 -0
- package/esm2022/core/helpers/coercion.mjs +1 -1
- package/esm2022/core/helpers/date.mjs +119 -0
- package/esm2022/core/helpers/object.mjs +145 -0
- package/esm2022/core/helpers/route.mjs +58 -0
- package/esm2022/core/helpers/string.mjs +57 -0
- package/esm2022/core/helpers/templates.mjs +4 -0
- package/esm2022/core/i18n/i18n-common.mjs +24 -0
- package/esm2022/core/i18n/i18n-error.mjs +27 -0
- package/esm2022/core/i18n/i18n-type.mjs +79 -0
- package/esm2022/core/index.mjs +17 -11
- package/esm2022/core/log/log-publisher-console.service.mjs +3 -3
- package/esm2022/core/log/logger.service.mjs +3 -3
- package/esm2022/core/pipes/boolean.pipe.mjs +4 -4
- package/esm2022/core/pipes/class-map.pipe.mjs +4 -4
- package/esm2022/core/pipes/enum.pipe.mjs +27 -0
- package/esm2022/core/pipes/enumerate-async.pipe.mjs +8 -8
- package/esm2022/core/pipes/enumerate.pipe.mjs +10 -10
- package/esm2022/core/pipes/getter.pipe.mjs +4 -4
- package/esm2022/core/pipes/i18n-property.pipe.mjs +19 -0
- package/esm2022/core/pipes/json-path.pipe.mjs +6 -6
- package/esm2022/core/pipes/parametrize.pipe.mjs +6 -6
- package/esm2022/core/pipes/template.pipe.mjs +7 -8
- package/esm2022/core/provide.mjs +1 -21
- package/esm2022/core/reflect/type-enum-metadata.mjs +1 -1
- package/esm2022/core/registry/type-registry.mjs +1 -1
- package/esm2022/core/router/route-builder.mjs +8 -24
- package/esm2022/core/router/routes-builder.mjs +17 -16
- package/esm2022/core/security/permission-helpers.mjs +14 -0
- package/esm2022/core/security/permission.guard.mjs +1 -1
- package/esm2022/core/security/permission.service.mjs +6 -6
- package/esm2022/core/security/permissions.model.mjs +1 -1
- package/esm2022/core/services/commons-configuration.service.mjs +6 -6
- package/esm2022/core/services/commons-init.service.mjs +4 -4
- package/esm2022/core/services/commons-router.service.mjs +4 -4
- package/esm2022/core/services/commons.service.mjs +4 -4
- package/esm2022/core/services/local-storage-config.service.mjs +4 -4
- package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +9 -10
- package/esm2022/filter/descriptors/filter.descriptor.mjs +1 -1
- package/esm2022/form/api/data-providers/lookup.data-provider.mjs +1 -1
- package/esm2022/form/api/descriptors/button-style.builder.mjs +1 -1
- package/esm2022/form/components/autocomplete/autocomplete.component.mjs +7 -7
- package/esm2022/form/components/date-range/date-range.component.mjs +4 -4
- package/esm2022/form/components/dropdown/dropdown.component.mjs +7 -7
- package/esm2022/form/directives/input-trim.directive.mjs +4 -4
- package/esm2022/model/descriptors/enum.descriptor.mjs +1 -1
- package/esm2022/model/descriptors/model.descriptor.mjs +4 -4
- package/esm2022/model/helpers/i18n.mjs +45 -0
- package/esm2022/model/helpers/model.mjs +71 -0
- package/esm2022/model/index.mjs +4 -7
- package/esm2022/table/api/data-providers/table.data-provider.mjs +1 -1
- package/esm2022/table/api/descriptors/column.descriptor.mjs +1 -1
- package/esm2022/table/api/descriptors/table.descriptor.mjs +36 -8
- package/esm2022/table/api/helpers/class-attribute-converter.mjs +1 -1
- package/esm2022/table/components/column-filter-full/column-filter-full.component.mjs +9 -9
- package/esm2022/table/components/column-value/column-value.component.mjs +12 -14
- package/esm2022/table/components/table/table.component.mjs +20 -37
- package/esm2022/table/helpers/notification.mjs +4 -4
- package/esm2022/table/pipes/locale-default-row-class.pipe.mjs +4 -4
- package/esm2022/table/pipes/table-column-filter-class.pipe.mjs +4 -4
- package/esm2022/table/services/data-list.service.mjs +3 -3
- package/esm2022/tableview/action/components/action/action.component.mjs +9 -9
- package/esm2022/tableview/action/components/editor/action-editor.component.mjs +4 -4
- package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +6 -6
- package/esm2022/tableview/action/components/localization/data-language-dropdown.component.mjs +3 -3
- package/esm2022/tableview/action/components/route/action-route.component.mjs +4 -4
- package/esm2022/tableview/action/components/table/action-table.component.mjs +12 -24
- package/esm2022/tableview/action/helpers/i18n.mjs +82 -0
- package/esm2022/tableview/action/helpers/notification.mjs +8 -8
- package/esm2022/tableview/action/helpers/styles.mjs +1 -1
- package/esm2022/tableview/action/models/execution/action-context.model.mjs +1 -1
- package/esm2022/tableview/action/models/execution/action-instance.model.mjs +1 -1
- package/esm2022/tableview/action/services/action-error-mapper.service.mjs +1 -1
- package/esm2022/tableview/action/services/action-executor.service.mjs +9 -8
- package/esm2022/tableview/action/services/component-action-executor.service.mjs +3 -3
- package/esm2022/tableview/action/services/data-provider-executor.service.mjs +3 -3
- package/esm2022/tableview/action/services/navigation.service.mjs +4 -4
- package/esm2022/tableview/action/services/providers/provide-view-container.mjs +1 -1
- package/esm2022/tableview/action/services/root-action-executor.service.mjs +3 -3
- package/esm2022/tableview/action/services/view-container.service.mjs +3 -3
- package/esm2022/tableview/api/action/descriptors/action-confirmation.descriptor.mjs +1 -1
- package/esm2022/tableview/api/action/descriptors/action-editor.descriptor.mjs +1 -1
- package/esm2022/tableview/api/action/descriptors/action.descriptor.mjs +1 -1
- package/esm2022/tableview/api/action/helpers/data-provider-executors.mjs +1 -1
- package/esm2022/tableview/api/editor/data-providers/editor.data-provider.mjs +1 -1
- package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +4 -4
- package/esm2022/tableview/api/editor/descriptors/field-action.descriptor.mjs +1 -1
- package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +3 -3
- package/esm2022/tableview/api/editor/descriptors/field-group.descriptor.mjs +1 -1
- package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +8 -8
- package/esm2022/tableview/api/editor/descriptors/field-many.descriptor.mjs +1 -1
- package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +4 -4
- package/esm2022/tableview/api/editor/helpers/class-attribute-converter.mjs +1 -1
- package/esm2022/tableview/api/editor/helpers/field-validators.mjs +1 -1
- package/esm2022/tableview/api/editor/models/editor-fields.model.mjs +1 -1
- package/esm2022/tableview/api/editor/models/formly-custom-field.model.mjs +3 -3
- package/esm2022/tableview/api/tableview/data-providers/tableview.data-provider.mjs +1 -1
- package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +4 -4
- package/esm2022/tableview/api/tableview/helpers/class-attribute-converter.mjs +1 -1
- package/esm2022/tableview/api/tableview/helpers/files-export.mjs +1 -1
- package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +4 -4
- package/esm2022/tableview/api/tableview/helpers/tableview-input-builder.mjs +1 -1
- package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +9 -9
- package/esm2022/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-label/formly-field-label.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +7 -7
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +9 -9
- package/esm2022/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +4 -4
- package/esm2022/tableview/editor/helpers/editor-formly.mjs +335 -0
- package/esm2022/tableview/editor/helpers/formly-config.mjs +1 -1
- package/esm2022/tableview/editor/services/formly-config.provider.mjs +1 -1
- package/esm2022/tableview/index.mjs +3 -5
- package/esm2022/tableview/provide.mjs +2 -1
- package/esm2022/tableview/tableview/components/route/tableview-route.component.mjs +3 -3
- package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +10 -19
- package/esm2022/tableview/tableview/router/tableview-route-builder.mjs +1 -1
- package/fesm2022/mediusinc-mng-commons-core.mjs +1367 -1389
- package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-filter.mjs +8 -9
- package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form.mjs +17 -17
- package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-model.mjs +99 -148
- package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table-api.mjs +35 -7
- package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table.mjs +48 -65
- package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +19 -19
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview.mjs +507 -572
- package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
- package/filter/descriptors/filter.descriptor.d.ts +2 -2
- package/model/descriptors/model.descriptor.d.ts +2 -2
- package/model/helpers/i18n.d.ts +10 -0
- package/model/helpers/model.d.ts +5 -0
- package/model/index.d.ts +2 -4
- package/package.json +7 -7
- package/table/api/descriptors/table.descriptor.d.ts +10 -0
- package/table/components/column-value/column-value.component.d.ts +3 -4
- package/table/components/table/table.component.d.ts +13 -13
- package/tableview/action/components/table/action-table.component.d.ts +6 -6
- package/tableview/action/helpers/i18n.d.ts +22 -0
- package/tableview/action/models/execution/action-instance-state.model.d.ts +21 -21
- package/tableview/action/services/action-executor.service.d.ts +1 -1
- package/tableview/api/action/descriptors/action-editor.descriptor.d.ts +1 -1
- package/tableview/api/action/descriptors/action.descriptor.d.ts +3 -3
- package/tableview/api/action/models/action.type.d.ts +2 -2
- package/tableview/api/action/models/execution/action-instance-state.model.d.ts +21 -21
- package/tableview/api/editor/descriptors/editor.descriptor.d.ts +2 -2
- package/tableview/api/editor/descriptors/field-action.descriptor.d.ts +2 -2
- package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +5 -5
- package/tableview/api/editor/descriptors/field-group.descriptor.d.ts +4 -4
- package/tableview/api/editor/descriptors/field-lookup.descriptor.d.ts +4 -4
- package/tableview/api/editor/descriptors/field-many.descriptor.d.ts +4 -4
- package/tableview/api/editor/descriptors/field.descriptor.d.ts +2 -2
- package/tableview/api/editor/models/editor-fields.model.d.ts +3 -3
- package/tableview/api/tableview/descriptors/tableview.descriptor.d.ts +2 -2
- package/tableview/editor/helpers/editor-formly.d.ts +10 -0
- package/tableview/index.d.ts +2 -2
- package/tableview/tableview/components/tableview/tableview.component.d.ts +5 -5
- package/core/data-list/data-list-params.util.d.ts +0 -84
- package/core/enum/enum.util.d.ts +0 -51
- package/core/error/error.util.d.ts +0 -116
- package/core/security/permission.util.d.ts +0 -5
- package/core/utils/date.util.d.ts +0 -20
- package/core/utils/i18n.util.d.ts +0 -36
- package/core/utils/object.util.d.ts +0 -31
- package/core/utils/route.util.d.ts +0 -37
- package/core/utils/string.util.d.ts +0 -9
- package/esm2022/core/data-list/data-list-params.util.mjs +0 -417
- package/esm2022/core/enum/enum.util.mjs +0 -83
- package/esm2022/core/error/error.util.mjs +0 -249
- package/esm2022/core/security/permission.util.mjs +0 -16
- package/esm2022/core/utils/date.util.mjs +0 -136
- package/esm2022/core/utils/i18n.util.mjs +0 -137
- package/esm2022/core/utils/object.util.mjs +0 -147
- package/esm2022/core/utils/route.util.mjs +0 -60
- package/esm2022/core/utils/string.util.mjs +0 -59
- package/esm2022/model/pipes/enum.pipe.mjs +0 -26
- package/esm2022/model/pipes/i18n-property.pipe.mjs +0 -19
- package/esm2022/model/utils/i18n.util.mjs +0 -51
- package/esm2022/model/utils/model.util.mjs +0 -73
- package/esm2022/tableview/action/utils/i18n.util.mjs +0 -126
- package/esm2022/tableview/editor/utils/editor-formly.util.mjs +0 -337
- package/model/utils/i18n.util.d.ts +0 -15
- package/model/utils/model.util.d.ts +0 -8
- package/tableview/action/utils/i18n.util.d.ts +0 -48
- package/tableview/editor/utils/editor-formly.util.d.ts +0 -12
|
@@ -4,7 +4,7 @@ import { combineLatest, of } from 'rxjs';
|
|
|
4
4
|
import { map } from 'rxjs/operators';
|
|
5
5
|
import { LoggerService } from '../log/logger.service';
|
|
6
6
|
import { CommonsService } from '../services/commons.service';
|
|
7
|
-
import {
|
|
7
|
+
import { isPermitted } from './permission-helpers';
|
|
8
8
|
import { PermissionTypeEnum } from './permissions.model';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
export class PermissionService {
|
|
@@ -23,7 +23,7 @@ export class PermissionService {
|
|
|
23
23
|
case PermissionTypeEnum.Service:
|
|
24
24
|
return this.isPermittedService(permissions, route, actionCtx);
|
|
25
25
|
default:
|
|
26
|
-
return this.commons.userRoles$.pipe(map(ur =>
|
|
26
|
+
return this.commons.userRoles$.pipe(map(ur => isPermitted(permissions, ur)));
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
isPermittedAll(permission, route, actionCtx) {
|
|
@@ -40,10 +40,10 @@ export class PermissionService {
|
|
|
40
40
|
}
|
|
41
41
|
return serviceInstance.isPermitted(route, this.router.routerState.snapshot, actionCtx);
|
|
42
42
|
}
|
|
43
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2
|
|
44
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2
|
|
43
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: PermissionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
44
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: PermissionService }); }
|
|
45
45
|
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: PermissionService, decorators: [{
|
|
47
47
|
type: Injectable
|
|
48
48
|
}] });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9zcmMvc2VjdXJpdHkvcGVybWlzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQXlCLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRS9ELE9BQU8sRUFBYSxhQUFhLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQXlDLGtCQUFrQixFQUFjLE1BQU0scUJBQXFCLENBQUM7O0FBRzVHLE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFFcUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLFlBQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztLQStCbEY7SUE3QlUsV0FBVyxDQUFDLFdBQXlCLEVBQUUsS0FBOEIsRUFBRSxTQUFzRDtRQUNoSSxRQUFRLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3BDLEtBQUssa0JBQWtCLENBQUMsR0FBRztnQkFDdkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQThCLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2pGLEtBQUssa0JBQWtCLENBQUMsR0FBRztnQkFDdkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQThCLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2pGLEtBQUssa0JBQWtCLENBQUMsT0FBTztnQkFDM0IsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBa0MsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDekY7Z0JBQ0ksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckYsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsVUFBMkIsRUFBRSxLQUE4QixFQUFFLFNBQXNEO1FBQ3RJLE9BQU8sYUFBYSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEosQ0FBQztJQUVPLGNBQWMsQ0FBQyxVQUEyQixFQUFFLEtBQThCLEVBQUUsU0FBc0Q7UUFDdEksT0FBTyxhQUFhLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvSSxDQUFDO0lBRU8sa0JBQWtCLENBQUMsVUFBK0IsRUFBRSxLQUE4QixFQUFFLFNBQXNEO1FBQzlJLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsNkRBQTZELFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3JHLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPLGVBQWUsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMzRixDQUFDOzhHQWxDUSxpQkFBaUI7a0hBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgSW5qZWN0b3IsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uL2xvZy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge0NvbW1vbnNTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9jb21tb25zLnNlcnZpY2UnO1xuaW1wb3J0IHtpc1Blcm1pdHRlZH0gZnJvbSAnLi9wZXJtaXNzaW9uLWhlbHBlcnMnO1xuaW1wb3J0IHtBUGVybWlzc2lvbnMsIElBY3Rpb25Db250ZXh0VmFsaWRhdGlvbiwgUGVybWlzc2lvblR5cGVFbnVtLCBQZXJtaXNzaW9uc30gZnJvbSAnLi9wZXJtaXNzaW9ucy5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1vbnMgPSBpbmplY3QoQ29tbW9uc1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gaW5qZWN0KExvZ2dlclNlcnZpY2UpLmNyZWF0ZSgnQXV0aG9yaXphdGlvblNlcnZpY2UnKTtcblxuICAgIHB1YmxpYyBpc1Blcm1pdHRlZChwZXJtaXNzaW9uczogQVBlcm1pc3Npb25zLCByb3V0ZT86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGFjdGlvbkN0eD86IElBY3Rpb25Db250ZXh0VmFsaWRhdGlvbjx1bmtub3duLCB1bmtub3duPik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICBzd2l0Y2ggKHBlcm1pc3Npb25zLmF1dGhvcml6YXRpb25UeXBlKSB7XG4gICAgICAgICAgICBjYXNlIFBlcm1pc3Npb25UeXBlRW51bS5BbGw6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNQZXJtaXR0ZWRBbGwocGVybWlzc2lvbnMgYXMgUGVybWlzc2lvbnMuQWxsLCByb3V0ZSwgYWN0aW9uQ3R4KTtcbiAgICAgICAgICAgIGNhc2UgUGVybWlzc2lvblR5cGVFbnVtLkFueTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pc1Blcm1pdHRlZEFueShwZXJtaXNzaW9ucyBhcyBQZXJtaXNzaW9ucy5BbnksIHJvdXRlLCBhY3Rpb25DdHgpO1xuICAgICAgICAgICAgY2FzZSBQZXJtaXNzaW9uVHlwZUVudW0uU2VydmljZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pc1Blcm1pdHRlZFNlcnZpY2UocGVybWlzc2lvbnMgYXMgUGVybWlzc2lvbnMuU2VydmljZSwgcm91dGUsIGFjdGlvbkN0eCk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbW1vbnMudXNlclJvbGVzJC5waXBlKG1hcCh1ciA9PiBpc1Blcm1pdHRlZChwZXJtaXNzaW9ucywgdXIpKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUGVybWl0dGVkQWxsKHBlcm1pc3Npb246IFBlcm1pc3Npb25zLkFsbCwgcm91dGU/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBhY3Rpb25DdHg/OiBJQWN0aW9uQ29udGV4dFZhbGlkYXRpb248dW5rbm93biwgdW5rbm93bj4pIHtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QocGVybWlzc2lvbi5wZXJtaXNzaW9ucy5tYXAocCA9PiB0aGlzLmlzUGVybWl0dGVkKHAsIHJvdXRlLCBhY3Rpb25DdHgpKSkucGlwZShtYXAocmVzID0+IHJlcy5ldmVyeShpcCA9PiBpcCA9PT0gdHJ1ZSkpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUGVybWl0dGVkQW55KHBlcm1pc3Npb246IFBlcm1pc3Npb25zLkFueSwgcm91dGU/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBhY3Rpb25DdHg/OiBJQWN0aW9uQ29udGV4dFZhbGlkYXRpb248dW5rbm93biwgdW5rbm93bj4pIHtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QocGVybWlzc2lvbi5wZXJtaXNzaW9ucy5tYXAocCA9PiB0aGlzLmlzUGVybWl0dGVkKHAsIHJvdXRlLCBhY3Rpb25DdHgpKSkucGlwZShtYXAocmVzID0+IHJlcy5zb21lKGlwID0+IGlwID09PSB0cnVlKSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNQZXJtaXR0ZWRTZXJ2aWNlKHBlcm1pc3Npb246IFBlcm1pc3Npb25zLlNlcnZpY2UsIHJvdXRlPzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgYWN0aW9uQ3R4PzogSUFjdGlvbkNvbnRleHRWYWxpZGF0aW9uPHVua25vd24sIHVua25vd24+KSB7XG4gICAgICAgIGNvbnN0IHNlcnZpY2VJbnN0YW5jZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KHBlcm1pc3Npb24uc2VydmljZSk7XG4gICAgICAgIGlmICghc2VydmljZUluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgV0FSTklORzogU2VydmljZSBpbnN0YW5jZSBjb3VsZCBub3QgYmUgcmV0cmVpdmVkIGZvciB0eXBlICR7cGVybWlzc2lvbi5zZXJ2aWNlfWApO1xuICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VydmljZUluc3RhbmNlLmlzUGVybWl0dGVkKHJvdXRlLCB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdCwgYWN0aW9uQ3R4KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -90,4 +90,4 @@ export var Permissions;
|
|
|
90
90
|
}
|
|
91
91
|
Permissions.Service = Service;
|
|
92
92
|
})(Permissions || (Permissions = {}));
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NyYy9zZWN1cml0eS9wZXJtaXNzaW9ucy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxNQUFNLENBQU4sSUFBWSxrQkFLWDtBQUxELFdBQVksa0JBQWtCO0lBQzFCLGlDQUFXLENBQUE7SUFDWCxpQ0FBVyxDQUFBO0lBQ1gsd0RBQWtDLENBQUE7SUFDbEMseUNBQW1CLENBQUE7QUFDdkIsQ0FBQyxFQUxXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFLN0I7QUFhRCxNQUFNLE9BQWdCLFlBQVk7SUFHOUIsWUFBWSxJQUF3QjtRQUNoQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLGlCQUFpQjtRQUN4QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0NBQ0o7QUFFRCxNQUFNLEtBQVcsV0FBVyxDQXVGM0I7QUF2RkQsV0FBaUIsV0FBVztJQUN4QixNQUFhLEdBQUksU0FBUSxZQUFZO1FBR2pDO1lBQ0ksS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBSDFCLGlCQUFZLEdBQXdCLEVBQUUsQ0FBQztRQUkvQyxDQUFDO1FBRU0sTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQWdDO1lBQ2hELE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxJQUFXLFdBQVc7WUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzdCLENBQUM7UUFFTSxHQUFHLENBQUMsR0FBRyxXQUFnQztZQUMxQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7S0FDSjtJQXJCWSxlQUFHLE1BcUJmLENBQUE7SUFFRCxNQUFhLEdBQUksU0FBUSxZQUFZO1FBR2pDO1lBQ0ksS0FBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBSDFCLGlCQUFZLEdBQXdCLEVBQUUsQ0FBQztRQUkvQyxDQUFDO1FBRU0sTUFBTSxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQWdDO1lBQ2hELE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxJQUFXLFdBQVc7WUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzdCLENBQUM7UUFFTSxFQUFFLENBQUMsR0FBRyxXQUFnQztZQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7S0FDSjtJQXJCWSxlQUFHLE1BcUJmLENBQUE7SUFFRCxNQUFhLEtBQU0sU0FBUSxZQUFZO1FBR25DO1lBQ0ksS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBSDNCLFdBQU0sR0FBeUIsRUFBRSxDQUFDO1FBSTFDLENBQUM7UUFFTSxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBb0I7WUFDcEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDbEIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELElBQVcsS0FBSztZQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN2QixDQUFDO1FBRU0sR0FBRyxDQUFDLEdBQUcsS0FBb0I7WUFDOUIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekIsQ0FBQztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDbkQsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVNLEVBQUUsQ0FBQyxHQUFHLEtBQW9CO1lBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7S0FDSjtJQTdCWSxpQkFBSyxRQTZCakIsQ0FBQTtJQUVELE1BQWEsT0FBUSxTQUFRLFlBQVk7UUFDckMsWUFBb0MsT0FBaUM7WUFDakUsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBREYsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFFckUsQ0FBQztRQUVNLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBaUM7WUFDOUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxDQUFDO0tBQ0o7SUFSWSxtQkFBTyxVQVFuQixDQUFBO0FBQ0wsQ0FBQyxFQXZGZ0IsV0FBVyxLQUFYLFdBQVcsUUF1RjNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyU3RhdGVTbmFwc2hvdH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtBY3Rpb25QYXJhbWV0ZXJzfSBmcm9tICcuLi9hY3Rpb24vYWN0aW9uLXBhcmFtZXRlcnMubW9kZWwnO1xuaW1wb3J0IHtJRGF0YVByb3ZpZGVyfSBmcm9tICcuLi9kYXRhLXByb3ZpZGVycy9iYXNlLmRhdGEtcHJvdmlkZXInO1xuaW1wb3J0IHtJQWN0aW9uRGVzY3JpcHRvcn0gZnJvbSAnLi4vZGVzY3JpcHRvcnMvYWN0aW9uLmRlc2NyaXB0b3InO1xuXG5leHBvcnQgZW51bSBQZXJtaXNzaW9uVHlwZUVudW0ge1xuICAgIEFsbCA9ICdBTEwnLFxuICAgIEFueSA9ICdBTlknLFxuICAgIFJiYWMgPSAnUk9MRV9CQVNFRF9BQ0NFU1NfQ09OVFJPTCcsXG4gICAgU2VydmljZSA9ICdTRVJWSUNFJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElBY3Rpb25Db250ZXh0VmFsaWRhdGlvbjxJdGVtLCBTZXJ2aWNlID0gdW5kZWZpbmVkPiB7XG4gICAgZGVzY3JpcHRvcjogSUFjdGlvbkRlc2NyaXB0b3I8SXRlbSwgU2VydmljZT47XG4gICAgcGFyYW1ldGVyczogQWN0aW9uUGFyYW1ldGVyczxJdGVtPjtcbiAgICBzZXJ2aWNlSW5zdGFuY2U6IFNlcnZpY2U7XG4gICAgZGF0YVByb3ZpZGVyPzogSURhdGFQcm92aWRlcjxJdGVtLCBTZXJ2aWNlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGVybWlzc2lvblNlcnZpY2Uge1xuICAgIGlzUGVybWl0dGVkKHJvdXRlPzogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgcm91dGVyU3RhdGU/OiBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBhY3Rpb25DdHg/OiBJQWN0aW9uQ29udGV4dFZhbGlkYXRpb248YW55LCBhbnk+KTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFQZXJtaXNzaW9ucyB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfYXV0aG9yaXphdGlvblR5cGU6IFBlcm1pc3Npb25UeXBlRW51bTtcblxuICAgIGNvbnN0cnVjdG9yKHR5cGU6IFBlcm1pc3Npb25UeXBlRW51bSkge1xuICAgICAgICB0aGlzLl9hdXRob3JpemF0aW9uVHlwZSA9IHR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhdXRob3JpemF0aW9uVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F1dGhvcml6YXRpb25UeXBlO1xuICAgIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQZXJtaXNzaW9ucyB7XG4gICAgZXhwb3J0IGNsYXNzIEFsbCBleHRlbmRzIEFQZXJtaXNzaW9ucyB7XG4gICAgICAgIHByaXZhdGUgX3Blcm1pc3Npb25zOiBBcnJheTxBUGVybWlzc2lvbnM+ID0gW107XG5cbiAgICAgICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgICAgIHN1cGVyKFBlcm1pc3Npb25UeXBlRW51bS5BbGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIHN0YXRpYyBvZiguLi5wZXJtaXNzaW9uczogQXJyYXk8QVBlcm1pc3Npb25zPik6IEFsbCB7XG4gICAgICAgICAgICBjb25zdCBpbnN0ID0gbmV3IEFsbCgpO1xuICAgICAgICAgICAgaW5zdC5hbmQoLi4ucGVybWlzc2lvbnMpO1xuICAgICAgICAgICAgcmV0dXJuIGluc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgZ2V0IHBlcm1pc3Npb25zKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25zO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGFuZCguLi5wZXJtaXNzaW9uczogQXJyYXk8QVBlcm1pc3Npb25zPik6IHRoaXMge1xuICAgICAgICAgICAgdGhpcy5fcGVybWlzc2lvbnMucHVzaCguLi5wZXJtaXNzaW9ucyk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGV4cG9ydCBjbGFzcyBBbnkgZXh0ZW5kcyBBUGVybWlzc2lvbnMge1xuICAgICAgICBwcml2YXRlIF9wZXJtaXNzaW9uczogQXJyYXk8QVBlcm1pc3Npb25zPiA9IFtdO1xuXG4gICAgICAgIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG4gICAgICAgICAgICBzdXBlcihQZXJtaXNzaW9uVHlwZUVudW0uQW55KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgb2YoLi4ucGVybWlzc2lvbnM6IEFycmF5PEFQZXJtaXNzaW9ucz4pOiBBbnkge1xuICAgICAgICAgICAgY29uc3QgaW5zdCA9IG5ldyBBbnkoKTtcbiAgICAgICAgICAgIGluc3Qub3IoLi4ucGVybWlzc2lvbnMpO1xuICAgICAgICAgICAgcmV0dXJuIGluc3Q7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgZ2V0IHBlcm1pc3Npb25zKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25zO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIG9yKC4uLnBlcm1pc3Npb25zOiBBcnJheTxBUGVybWlzc2lvbnM+KTogdGhpcyB7XG4gICAgICAgICAgICB0aGlzLl9wZXJtaXNzaW9ucy5wdXNoKC4uLnBlcm1pc3Npb25zKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZXhwb3J0IGNsYXNzIFJvbGVzIGV4dGVuZHMgQVBlcm1pc3Npb25zIHtcbiAgICAgICAgcHJpdmF0ZSBfcm9sZXM6IEFycmF5PEFycmF5PHN0cmluZz4+ID0gW107XG5cbiAgICAgICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgICAgIHN1cGVyKFBlcm1pc3Npb25UeXBlRW51bS5SYmFjKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBzdGF0aWMgb2YoLi4ucm9sZXM6IEFycmF5PHN0cmluZz4pOiBSb2xlcyB7XG4gICAgICAgICAgICBjb25zdCBpbnN0ID0gbmV3IFJvbGVzKCk7XG4gICAgICAgICAgICBpbnN0Lm9yKC4uLnJvbGVzKTtcbiAgICAgICAgICAgIHJldHVybiBpbnN0O1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGdldCByb2xlcygpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9yb2xlcztcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBhbmQoLi4ucm9sZXM6IEFycmF5PHN0cmluZz4pOiB0aGlzIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9yb2xlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yb2xlcy5wdXNoKFtdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3JvbGVzW3RoaXMuX3JvbGVzLmxlbmd0aCAtIDFdLnB1c2goLi4ucm9sZXMpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgb3IoLi4ucm9sZXM6IEFycmF5PHN0cmluZz4pOiB0aGlzIHtcbiAgICAgICAgICAgIHRoaXMuX3JvbGVzLnB1c2goLi4ucm9sZXMubWFwKHMgPT4gW3NdKSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGV4cG9ydCBjbGFzcyBTZXJ2aWNlIGV4dGVuZHMgQVBlcm1pc3Npb25zIHtcbiAgICAgICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgc2VydmljZTogVHlwZTxJUGVybWlzc2lvblNlcnZpY2U+KSB7XG4gICAgICAgICAgICBzdXBlcihQZXJtaXNzaW9uVHlwZUVudW0uU2VydmljZSk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgc3RhdGljIG9mKHNlcnZpY2U6IFR5cGU8SVBlcm1pc3Npb25TZXJ2aWNlPik6IFNlcnZpY2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBTZXJ2aWNlKHNlcnZpY2UpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { combineLatest, of, tap } from 'rxjs';
|
|
2
2
|
import { catchError, map } from 'rxjs/operators';
|
|
3
|
-
import {
|
|
3
|
+
import { objectDeepMerge } from '../helpers/object';
|
|
4
4
|
export class CommonsConfigurationService {
|
|
5
5
|
static { this._instance = new CommonsConfigurationService(); }
|
|
6
6
|
static get() {
|
|
@@ -148,7 +148,7 @@ export class CommonsConfigurationService {
|
|
|
148
148
|
// 1. object sources have highest priority
|
|
149
149
|
if (this.objectSources.length) {
|
|
150
150
|
for (const objConfig of this.objectSources) {
|
|
151
|
-
config =
|
|
151
|
+
config = objectDeepMerge(config, objConfig);
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
154
|
// 2. JSON sources come next
|
|
@@ -156,19 +156,19 @@ export class CommonsConfigurationService {
|
|
|
156
156
|
if (jsonConfigs.length) {
|
|
157
157
|
for (const jsonConfig of jsonConfigs) {
|
|
158
158
|
if (jsonConfig) {
|
|
159
|
-
config =
|
|
159
|
+
config = objectDeepMerge(config, jsonConfig);
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
// 3. project env has the next priority
|
|
164
164
|
if (this.projectEnvironment) {
|
|
165
|
-
config =
|
|
165
|
+
config = objectDeepMerge(config, this.projectEnvironment);
|
|
166
166
|
}
|
|
167
167
|
// 4. module config has the lowest priority
|
|
168
168
|
if (this.moduleConfig) {
|
|
169
|
-
config =
|
|
169
|
+
config = objectDeepMerge(config, this.moduleConfig);
|
|
170
170
|
}
|
|
171
171
|
this.configuration = config;
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9ucy1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NyYy9zZXJ2aWNlcy9jb21tb25zLWNvbmZpZ3VyYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWEsYUFBYSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHaEQsTUFBTSxPQUFPLDJCQUEyQjthQUNyQixjQUFTLEdBQWdDLElBQUksMkJBQTJCLEVBQUUsQUFBakUsQ0FBa0U7SUFFbkYsTUFBTSxDQUFDLEdBQUc7UUFDYixPQUFPLDJCQUEyQixDQUFDLFNBQVMsQ0FBQztJQUNqRCxDQUFDO0lBWUQ7UUFMUSxnQkFBVyxHQUE4QixFQUFFLENBQUM7UUFDNUMsa0JBQWEsR0FBZSxFQUFFLENBQUM7UUFFL0Isa0JBQWEsR0FBRyxFQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFDLENBQUM7UUF1RXJEOztXQUVHO1FBQ0ssMkJBQXNCLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1FBRWxHOzs7V0FHRztRQUNJLDJCQUFzQixHQUFHLEdBQXdCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBN0UzSCw0Q0FBNEM7SUFDaEQsQ0FBQztJQUVNLElBQUksQ0FBQyxVQUFzQixFQUFFLE1BQXVCO1FB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SUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLE9BQU8sTUFBTSxDQUFDLGFBQWEsS0FBSyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkosSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQ3BCLEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFO2dCQUNsQyxJQUFJLFVBQVUsRUFBRTtvQkFDWixNQUFNLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7aUJBQ3JEO2FBQ0o7U0FDSjtRQUVELHVDQUF1QztRQUN2QyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUN6QixNQUFNLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDbEU7UUFFRCwyQ0FBMkM7UUFDM0MsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLE1BQU0sR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDNUQ7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztJQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQge09ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIG9mLCB0YXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtJTG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vbG9nL2xvZy5tb2RlbCc7XG5pbXBvcnQge09iamVjdFV0aWx9IGZyb20gJy4uL3V0aWxzL29iamVjdC51dGlsJztcbmltcG9ydCB7Q29tbW9uc01vZHVsZUNvbmZpZ30gZnJvbSAnLi90b2tlbnMvbW9kdWxlLWNvbmZpZy50b2tlbic7XG5cbmV4cG9ydCBjbGFzcyBDb21tb25zQ29uZmlndXJhdGlvblNlcnZpY2Uge1xuICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogQ29tbW9uc0NvbmZpZ3VyYXRpb25TZXJ2aWNlID0gbmV3IENvbW1vbnNDb25maWd1cmF0aW9uU2VydmljZSgpO1xuXG4gICAgcHVibGljIHN0YXRpYyBnZXQoKTogQ29tbW9uc0NvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcbiAgICAgICAgcmV0dXJuIENvbW1vbnNDb25maWd1cmF0aW9uU2VydmljZS5faW5zdGFuY2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2dnZXI/OiBJTG9nZ2VyU2VydmljZTtcblxuICAgIHByaXZhdGUgaHR0cD86IEh0dHBDbGllbnQ7XG4gICAgcHJpdmF0ZSBtb2R1bGVDb25maWc/OiBDb21tb25zTW9kdWxlQ29uZmlnO1xuICAgIHByaXZhdGUgcHJvamVjdEVudmlyb25tZW50PzogYW55O1xuICAgIHByaXZhdGUganNvblNvdXJjZXM6IEFycmF5PEpzb25Tb3VyY2VMb2FkSW5mbz4gPSBbXTtcbiAgICBwcml2YXRlIG9iamVjdFNvdXJjZXM6IEFycmF5PGFueT4gPSBbXTtcblxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvbiA9IHsuLi50aGlzLnByb2plY3RFbnZpcm9ubWVudH07XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvLyBlbXB0eSwgYnV0IG5lZWRlZCBmb3IgcHJpdmF0ZSBjb25zdHJ1Y3RvclxuICAgIH1cblxuICAgIHB1YmxpYyBpbml0KGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsIGxvZ2dlcj86IElMb2dnZXJTZXJ2aWNlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuaHR0cCA9IGh0dHBDbGllbnQ7XG4gICAgICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyPy5jcmVhdGUoJ0NvbmZpZ3VyYXRpb25TZXJ2aWNlJyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBjb21tb25zIG1vZHVsZSBjb25maWcuXG4gICAgICogQHBhcmFtIGNvbmZpZyBNb2R1bGUgY29uZmlnLlxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRNb2R1bGVDb25maWdTb3VyY2UoY29uZmlnPzogQ29tbW9uc01vZHVsZUNvbmZpZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZHVsZUNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgdGhpcy5tZXJnZUNvbmZpZ3MoKTtcbiAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBNb2R1bGUgY29uZmlndXJhdGlvbiBzb3VyY2UgYWRkZWQuYCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHByb2plY3QgZW52aXJvbm1lbnQgc291cmNlLlxuICAgICAqIEBwYXJhbSBlbnZpcm9ubWVudCBFbnZpcm9ubWVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkRW52aXJvbm1lbnRTb3VyY2UoZW52aXJvbm1lbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2plY3RFbnZpcm9ubWVudCA9IGVudmlyb25tZW50O1xuICAgICAgICB0aGlzLm1lcmdlQ29uZmlncygpO1xuICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoYEVudmlyb25tZW50IGNvbmZpZ3VyYXRpb24gc291cmNlIGFkZGVkLmApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgbmV3IGNvbmZpZyBzb3VyY2UgZnJvbSBKU09OIGZpbGUgbG9hZGVkIGZyb20gSFRUUC5cbiAgICAgKiBAcGFyYW0gY29uZmlnIENvbmZpZyBmb3IgSlNPTiBmaWxlLlxuICAgICAqIEBwYXJhbSBsb2FkSW1tZWRpYXRlbHkgTG9hZCBpcyBieSBkZWZhdWx0IHRyaWdnZXJlZCBvbiBhcHAgaW5pdGlhbGl6YXRpb24uIElmIGltbWVkaWF0ZSBsb2FkIGlzIHJlcXVpcmVkLCBwYXNzIHRydWUuXG4gICAgICovXG4gICAgcHVibGljIGFkZEpzb25Tb3VyY2UoY29uZmlnOiB7dXJsPzogc3RyaW5nOyBlbmFibGVFbnZQcm9kPzogYm9vbGVhbn0gPSB7fSwgbG9hZEltbWVkaWF0ZWx5ID0gZmFsc2UpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgaWYgKCFjb25maWcpIHtcbiAgICAgICAgICAgIGNvbmZpZyA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHVybCA9IGNvbmZpZz8udXJsID8/ICdhc3NldHMvY29uZmlnL2Vudnt7ZW52aXJvbm1lbnR9fS5qc29uJztcbiAgICAgICAgY29uc3QgZW5hYmxlRW52UHJvZFJlcGxhY2UgPSBjb25maWc/LmVuYWJsZUVudlByb2QgPz8gZmFsc2U7XG5cbiAgICAgICAgY29uc3Qgc291cmNlSW5mbzogSnNvblNvdXJjZUxvYWRJbmZvID0ge1xuICAgICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgICBpc0Vudmlyb25tZW50OiBmYWxzZSxcbiAgICAgICAgICAgIGVudmlyb25tZW50RW5hYmxlRW52UHJvZDogZW5hYmxlRW52UHJvZFJlcGxhY2UsXG4gICAgICAgICAgICBpc0xvYWRlZDogZmFsc2VcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5qc29uU291cmNlcy5wdXNoKHNvdXJjZUluZm8pO1xuXG4gICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhgSlNPTiBjb25maWd1cmF0aW9uIHNvdXJjZSBhZGRlZDogJHt1cmx9LmApO1xuXG4gICAgICAgIGlmIChsb2FkSW1tZWRpYXRlbHkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRKc29uQ29uZmlndXJhdGlvbnMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgbmV3IGNvbmZpZyBvYmplY3QgZnJvbSBhbnkgb2JqZWN0LlxuICAgICAqIEBwYXJhbSBjb25maWcgQ29uZmlnIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkT2JqZWN0U291cmNlKGNvbmZpZzogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JqZWN0U291cmNlcy5wdXNoKGNvbmZpZyk7XG4gICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhgT2JqZWN0IGNvbmZpZ3VyYXRpb24gc291cmNlIGFkZGVkLmApO1xuICAgICAgICB0aGlzLm1lcmdlQ29uZmlncygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBubyBqc29uU291cmNlc1xuICAgICAqL1xuICAgIHByaXZhdGUgc2tpcEpzb25Db25maWdzTG9hZGluZyA9ICgpID0+IHRoaXMuanNvblNvdXJjZXMgPT09IG51bGwgfHwgdGhpcy5qc29uU291cmNlcy5sZW5ndGggPT09IDA7XG5cbiAgICAvKipcbiAgICAgKiBsb2FkcyBqc29uIHNvdXJjZXMgb3Igc2tpcHMgdGhlbSByZXR1cm5pbmcgdHJ1ZSBpbiBib3RoIGNhc2VzXG4gICAgICogdXNlZCBmb3IgYHNraXBKc29uU291cmNlSW5pdGAgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZEpzb25Db25maWd1cmF0aW9ucyA9ICgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0+ICh0aGlzLnNraXBKc29uQ29uZmlnc0xvYWRpbmcoKSA/IG9mKHRydWUpIDogdGhpcy5sb2FkSnNvblNvdXJjZXMoKSk7XG5cbiAgICBwcml2YXRlIGxvYWRKc29uU291cmNlcygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgaWYgKCF0aGlzLmh0dHApIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy53YXJuKCdIVFRQIGNsaWVudCB3YXMgbm90IGluaXRpYWxpemVkLiBKc29uIHNvdXJjZSBjYW5ub3QgYmUgbG9hZGVkJyk7XG4gICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaHR0cENsaWVudCA9IHRoaXMuaHR0cDtcblxuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChcbiAgICAgICAgICAgIHRoaXMuanNvblNvdXJjZXNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKHNvdXJjZSA9PiAhc291cmNlLmlzTG9hZGVkKVxuICAgICAgICAgICAgICAgIC5tYXAoc291cmNlSW5mbyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB1cmwgPSBzb3VyY2VJbmZvLnVybDtcbiAgICAgICAgICAgICAgICAgICAgc291cmNlSW5mby5lbnZpcm9ubWVudCA9IHRoaXMucHJvamVjdEVudmlyb25tZW50Py5uYW1lIHx8ICh0aGlzLnByb2plY3RFbnZpcm9ubWVudD8ucHJvZHVjdGlvbiA/IChzb3VyY2VJbmZvLmVudmlyb25tZW50RW5hYmxlRW52UHJvZCA/ICdwcm9kJyA6IG51bGwpIDogJ2RldicpO1xuICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmZvLmlzRW52aXJvbm1lbnQgPSAhIXNvdXJjZUluZm8uZW52aXJvbm1lbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUluZm8uaXNFbnZpcm9ubWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJ3t7ZW52aXJvbm1lbnR9fScsICcuJyArIHNvdXJjZUluZm8uZW52aXJvbm1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVwbGFjZSBwb3NzaWJsZSBlbnZpcm9ubWVudCBlbnRyeSBhbmQgY2hhbmdlIHNvdXJjZSBpbmZvIHVybFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJ3t7ZW52aXJvbm1lbnR9fScsICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZm8udXJsID0gdXJsO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBMb2FkaW5nIEpTT04gY29uZmlndXJhdGlvbiBzb3VyY2UgZnJvbSAke3VybH0uYCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGh0dHBDbGllbnQuZ2V0PG9iamVjdD4odXJsKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VJbmZvLmlzRW52aXJvbm1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9FbnZVcmwgPSBzb3VyY2VJbmZvLnVybC5yZXBsYWNlKCd7e2Vudmlyb25tZW50fX0nLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZm8uZW52aXJvbm1lbnQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaHR0cENsaWVudC5nZXQ8b2JqZWN0Pihub0VudlVybCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXI/Lndhcm4oYENvbmZpZ3VyYXRpb24gZmlsZSAke3VybH0gbm90IGxvYWRlZGAsIGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcChjb25maWd1cmF0aW9uID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbmZpZ3VyYXRpb24gIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmZvLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZm8uaXNMb2FkZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAgIG1hcChzb3VyY2VSZXN1bHRzID0+IHNvdXJjZVJlc3VsdHMuZXZlcnkoc3IgPT4gc3IpKSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLm1lcmdlQ29uZmlncygpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb25maWcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGNvbmZpZ3VyYXRpb24gdmFsdWUgZm9yIGtleS5cbiAgICAgKiBAcGFyYW0ga2V5IENvbmZpZ3VyYXRpb24ga2V5LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb25maWdWYWx1ZTxUID0gYW55PihrZXk6IHN0cmluZyk6IFQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbltrZXldID8gdGhpcy5jb25maWd1cmF0aW9uW2tleV0gOiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhcyBjb25maWd1cmF0aW9uIGZvciBrZXkuXG4gICAgICogQHBhcmFtIGtleSBDb25maWd1cmF0aW9uIGtleS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaGFzQ29uZmlnS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNvbmZpZ3VyYXRpb24pLnNvbWUoayA9PiBrID09PSBrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1lcmdlcyBjb25maWd1cmF0aW9uIGZyb20gbXVsdGlwbGUgc291cmNlcyB3aXRoXG4gICAgICovXG4gICAgcHJpdmF0ZSBtZXJnZUNvbmZpZ3MoKSB7XG4gICAgICAgIGxldCBjb25maWcgPSB7fTtcblxuICAgICAgICAvLyAxLiBvYmplY3Qgc291cmNlcyBoYXZlIGhpZ2hlc3QgcHJpb3JpdHlcbiAgICAgICAgaWYgKHRoaXMub2JqZWN0U291cmNlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgb2JqQ29uZmlnIG9mIHRoaXMub2JqZWN0U291cmNlcykge1xuICAgICAgICAgICAgICAgIGNvbmZpZyA9IE9iamVjdFV0aWwuZGVlcE1lcmdlKGNvbmZpZywgb2JqQ29uZmlnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDIuIEpTT04gc291cmNlcyBjb21lIG5leHRcbiAgICAgICAgY29uc3QganNvbkNvbmZpZ3MgPSB0aGlzLmpzb25Tb3VyY2VzLmZpbHRlcihzb3VyY2UgPT4gc291cmNlLmlzTG9hZGVkICYmIHR5cGVvZiBzb3VyY2UuY29uZmlndXJhdGlvbiA9PT0gJ29iamVjdCcpLm1hcChzb3VyY2UgPT4gc291cmNlLmNvbmZpZ3VyYXRpb24pO1xuICAgICAgICBpZiAoanNvbkNvbmZpZ3MubGVuZ3RoKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGpzb25Db25maWcgb2YganNvbkNvbmZpZ3MpIHtcbiAgICAgICAgICAgICAgICBpZiAoanNvbkNvbmZpZykge1xuICAgICAgICAgICAgICAgICAgICBjb25maWcgPSBPYmplY3RVdGlsLmRlZXBNZXJnZShjb25maWcsIGpzb25Db25maWcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDMuIHByb2plY3QgZW52IGhhcyB0aGUgbmV4dCBwcmlvcml0eVxuICAgICAgICBpZiAodGhpcy5wcm9qZWN0RW52aXJvbm1lbnQpIHtcbiAgICAgICAgICAgIGNvbmZpZyA9IE9iamVjdFV0aWwuZGVlcE1lcmdlKGNvbmZpZywgdGhpcy5wcm9qZWN0RW52aXJvbm1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gNC4gbW9kdWxlIGNvbmZpZyBoYXMgdGhlIGxvd2VzdCBwcmlvcml0eVxuICAgICAgICBpZiAodGhpcy5tb2R1bGVDb25maWcpIHtcbiAgICAgICAgICAgIGNvbmZpZyA9IE9iamVjdFV0aWwuZGVlcE1lcmdlKGNvbmZpZywgdGhpcy5tb2R1bGVDb25maWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlnO1xuICAgIH1cbn1cblxuaW50ZXJmYWNlIEpzb25Tb3VyY2VMb2FkSW5mbyB7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgaXNMb2FkZWQ6IGJvb2xlYW47XG4gICAgaXNFbnZpcm9ubWVudDogYm9vbGVhbjtcbiAgICBlbnZpcm9ubWVudD86IHN0cmluZyB8IG51bGw7XG4gICAgZW52aXJvbm1lbnRFbmFibGVFbnZQcm9kPzogYm9vbGVhbjtcbiAgICBjb25maWd1cmF0aW9uPzogb2JqZWN0O1xufVxuIl19
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9ucy1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NyYy9zZXJ2aWNlcy9jb21tb25zLWNvbmZpZ3VyYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWEsYUFBYSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFJbEQsTUFBTSxPQUFPLDJCQUEyQjthQUNyQixjQUFTLEdBQWdDLElBQUksMkJBQTJCLEVBQUUsQUFBakUsQ0FBa0U7SUFFbkYsTUFBTSxDQUFDLEdBQUc7UUFDYixPQUFPLDJCQUEyQixDQUFDLFNBQVMsQ0FBQztJQUNqRCxDQUFDO0lBWUQ7UUFMUSxnQkFBVyxHQUE4QixFQUFFLENBQUM7UUFDNUMsa0JBQWEsR0FBZSxFQUFFLENBQUM7UUFFL0Isa0JBQWEsR0FBRyxFQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFDLENBQUM7UUF1RXJEOztXQUVHO1FBQ0ssMkJBQXNCLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1FBRWxHOzs7V0FHRztRQUNJLDJCQUFzQixHQUFHLEdBQXdCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBN0UzSCw0Q0FBNEM7SUFDaEQsQ0FBQztJQUVNLElBQUksQ0FBQyxVQUFzQixFQUFFLE1BQXVCO1FB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QyxNQUFNLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNoRCxDQUFDO1FBQ0wsQ0FBQztRQUVELDRCQUE0QjtRQUM1QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksT0FBTyxNQUFNLENBQUMsYUFBYSxLQUFLLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2SixJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNyQixLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLFVBQVUsRUFBRSxDQUFDO29CQUNiLE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7UUFFRCx1Q0FBdUM7UUFDdkMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMxQixNQUFNLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBRUQsMkNBQTJDO1FBQzNDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7SUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBvZiwgdGFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7b2JqZWN0RGVlcE1lcmdlfSBmcm9tICcuLi9oZWxwZXJzL29iamVjdCc7XG5pbXBvcnQge0lMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi9sb2cvbG9nLm1vZGVsJztcbmltcG9ydCB7Q29tbW9uc01vZHVsZUNvbmZpZ30gZnJvbSAnLi90b2tlbnMvbW9kdWxlLWNvbmZpZy50b2tlbic7XG5cbmV4cG9ydCBjbGFzcyBDb21tb25zQ29uZmlndXJhdGlvblNlcnZpY2Uge1xuICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogQ29tbW9uc0NvbmZpZ3VyYXRpb25TZXJ2aWNlID0gbmV3IENvbW1vbnNDb25maWd1cmF0aW9uU2VydmljZSgpO1xuXG4gICAgcHVibGljIHN0YXRpYyBnZXQoKTogQ29tbW9uc0NvbmZpZ3VyYXRpb25TZXJ2aWNlIHtcbiAgICAgICAgcmV0dXJuIENvbW1vbnNDb25maWd1cmF0aW9uU2VydmljZS5faW5zdGFuY2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2dnZXI/OiBJTG9nZ2VyU2VydmljZTtcblxuICAgIHByaXZhdGUgaHR0cD86IEh0dHBDbGllbnQ7XG4gICAgcHJpdmF0ZSBtb2R1bGVDb25maWc/OiBDb21tb25zTW9kdWxlQ29uZmlnO1xuICAgIHByaXZhdGUgcHJvamVjdEVudmlyb25tZW50PzogYW55O1xuICAgIHByaXZhdGUganNvblNvdXJjZXM6IEFycmF5PEpzb25Tb3VyY2VMb2FkSW5mbz4gPSBbXTtcbiAgICBwcml2YXRlIG9iamVjdFNvdXJjZXM6IEFycmF5PGFueT4gPSBbXTtcblxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvbiA9IHsuLi50aGlzLnByb2plY3RFbnZpcm9ubWVudH07XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvLyBlbXB0eSwgYnV0IG5lZWRlZCBmb3IgcHJpdmF0ZSBjb25zdHJ1Y3RvclxuICAgIH1cblxuICAgIHB1YmxpYyBpbml0KGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsIGxvZ2dlcj86IElMb2dnZXJTZXJ2aWNlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuaHR0cCA9IGh0dHBDbGllbnQ7XG4gICAgICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyPy5jcmVhdGUoJ0NvbmZpZ3VyYXRpb25TZXJ2aWNlJyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBjb21tb25zIG1vZHVsZSBjb25maWcuXG4gICAgICogQHBhcmFtIGNvbmZpZyBNb2R1bGUgY29uZmlnLlxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRNb2R1bGVDb25maWdTb3VyY2UoY29uZmlnPzogQ29tbW9uc01vZHVsZUNvbmZpZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZHVsZUNvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgdGhpcy5tZXJnZUNvbmZpZ3MoKTtcbiAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBNb2R1bGUgY29uZmlndXJhdGlvbiBzb3VyY2UgYWRkZWQuYCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHByb2plY3QgZW52aXJvbm1lbnQgc291cmNlLlxuICAgICAqIEBwYXJhbSBlbnZpcm9ubWVudCBFbnZpcm9ubWVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkRW52aXJvbm1lbnRTb3VyY2UoZW52aXJvbm1lbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb2plY3RFbnZpcm9ubWVudCA9IGVudmlyb25tZW50O1xuICAgICAgICB0aGlzLm1lcmdlQ29uZmlncygpO1xuICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoYEVudmlyb25tZW50IGNvbmZpZ3VyYXRpb24gc291cmNlIGFkZGVkLmApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgbmV3IGNvbmZpZyBzb3VyY2UgZnJvbSBKU09OIGZpbGUgbG9hZGVkIGZyb20gSFRUUC5cbiAgICAgKiBAcGFyYW0gY29uZmlnIENvbmZpZyBmb3IgSlNPTiBmaWxlLlxuICAgICAqIEBwYXJhbSBsb2FkSW1tZWRpYXRlbHkgTG9hZCBpcyBieSBkZWZhdWx0IHRyaWdnZXJlZCBvbiBhcHAgaW5pdGlhbGl6YXRpb24uIElmIGltbWVkaWF0ZSBsb2FkIGlzIHJlcXVpcmVkLCBwYXNzIHRydWUuXG4gICAgICovXG4gICAgcHVibGljIGFkZEpzb25Tb3VyY2UoY29uZmlnOiB7dXJsPzogc3RyaW5nOyBlbmFibGVFbnZQcm9kPzogYm9vbGVhbn0gPSB7fSwgbG9hZEltbWVkaWF0ZWx5ID0gZmFsc2UpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgaWYgKCFjb25maWcpIHtcbiAgICAgICAgICAgIGNvbmZpZyA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHVybCA9IGNvbmZpZz8udXJsID8/ICdhc3NldHMvY29uZmlnL2Vudnt7ZW52aXJvbm1lbnR9fS5qc29uJztcbiAgICAgICAgY29uc3QgZW5hYmxlRW52UHJvZFJlcGxhY2UgPSBjb25maWc/LmVuYWJsZUVudlByb2QgPz8gZmFsc2U7XG5cbiAgICAgICAgY29uc3Qgc291cmNlSW5mbzogSnNvblNvdXJjZUxvYWRJbmZvID0ge1xuICAgICAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgICAgICBpc0Vudmlyb25tZW50OiBmYWxzZSxcbiAgICAgICAgICAgIGVudmlyb25tZW50RW5hYmxlRW52UHJvZDogZW5hYmxlRW52UHJvZFJlcGxhY2UsXG4gICAgICAgICAgICBpc0xvYWRlZDogZmFsc2VcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5qc29uU291cmNlcy5wdXNoKHNvdXJjZUluZm8pO1xuXG4gICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhgSlNPTiBjb25maWd1cmF0aW9uIHNvdXJjZSBhZGRlZDogJHt1cmx9LmApO1xuXG4gICAgICAgIGlmIChsb2FkSW1tZWRpYXRlbHkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRKc29uQ29uZmlndXJhdGlvbnMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgbmV3IGNvbmZpZyBvYmplY3QgZnJvbSBhbnkgb2JqZWN0LlxuICAgICAqIEBwYXJhbSBjb25maWcgQ29uZmlnIG9iamVjdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkT2JqZWN0U291cmNlKGNvbmZpZzogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JqZWN0U291cmNlcy5wdXNoKGNvbmZpZyk7XG4gICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhgT2JqZWN0IGNvbmZpZ3VyYXRpb24gc291cmNlIGFkZGVkLmApO1xuICAgICAgICB0aGlzLm1lcmdlQ29uZmlncygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBubyBqc29uU291cmNlc1xuICAgICAqL1xuICAgIHByaXZhdGUgc2tpcEpzb25Db25maWdzTG9hZGluZyA9ICgpID0+IHRoaXMuanNvblNvdXJjZXMgPT09IG51bGwgfHwgdGhpcy5qc29uU291cmNlcy5sZW5ndGggPT09IDA7XG5cbiAgICAvKipcbiAgICAgKiBsb2FkcyBqc29uIHNvdXJjZXMgb3Igc2tpcHMgdGhlbSByZXR1cm5pbmcgdHJ1ZSBpbiBib3RoIGNhc2VzXG4gICAgICogdXNlZCBmb3IgYHNraXBKc29uU291cmNlSW5pdGAgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZEpzb25Db25maWd1cmF0aW9ucyA9ICgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0+ICh0aGlzLnNraXBKc29uQ29uZmlnc0xvYWRpbmcoKSA/IG9mKHRydWUpIDogdGhpcy5sb2FkSnNvblNvdXJjZXMoKSk7XG5cbiAgICBwcml2YXRlIGxvYWRKc29uU291cmNlcygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgaWYgKCF0aGlzLmh0dHApIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy53YXJuKCdIVFRQIGNsaWVudCB3YXMgbm90IGluaXRpYWxpemVkLiBKc29uIHNvdXJjZSBjYW5ub3QgYmUgbG9hZGVkJyk7XG4gICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaHR0cENsaWVudCA9IHRoaXMuaHR0cDtcblxuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChcbiAgICAgICAgICAgIHRoaXMuanNvblNvdXJjZXNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKHNvdXJjZSA9PiAhc291cmNlLmlzTG9hZGVkKVxuICAgICAgICAgICAgICAgIC5tYXAoc291cmNlSW5mbyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB1cmwgPSBzb3VyY2VJbmZvLnVybDtcbiAgICAgICAgICAgICAgICAgICAgc291cmNlSW5mby5lbnZpcm9ubWVudCA9IHRoaXMucHJvamVjdEVudmlyb25tZW50Py5uYW1lIHx8ICh0aGlzLnByb2plY3RFbnZpcm9ubWVudD8ucHJvZHVjdGlvbiA/IChzb3VyY2VJbmZvLmVudmlyb25tZW50RW5hYmxlRW52UHJvZCA/ICdwcm9kJyA6IG51bGwpIDogJ2RldicpO1xuICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmZvLmlzRW52aXJvbm1lbnQgPSAhIXNvdXJjZUluZm8uZW52aXJvbm1lbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNvdXJjZUluZm8uaXNFbnZpcm9ubWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJ3t7ZW52aXJvbm1lbnR9fScsICcuJyArIHNvdXJjZUluZm8uZW52aXJvbm1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVwbGFjZSBwb3NzaWJsZSBlbnZpcm9ubWVudCBlbnRyeSBhbmQgY2hhbmdlIHNvdXJjZSBpbmZvIHVybFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoJ3t7ZW52aXJvbm1lbnR9fScsICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZm8udXJsID0gdXJsO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBMb2FkaW5nIEpTT04gY29uZmlndXJhdGlvbiBzb3VyY2UgZnJvbSAke3VybH0uYCk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGh0dHBDbGllbnQuZ2V0PG9iamVjdD4odXJsKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2VJbmZvLmlzRW52aXJvbm1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9FbnZVcmwgPSBzb3VyY2VJbmZvLnVybC5yZXBsYWNlKCd7e2Vudmlyb25tZW50fX0nLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZm8uZW52aXJvbm1lbnQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaHR0cENsaWVudC5nZXQ8b2JqZWN0Pihub0VudlVybCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXI/Lndhcm4oYENvbmZpZ3VyYXRpb24gZmlsZSAke3VybH0gbm90IGxvYWRlZGAsIGVycik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcChjb25maWd1cmF0aW9uID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbmZpZ3VyYXRpb24gIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJbmZvLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUluZm8uaXNMb2FkZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAgIG1hcChzb3VyY2VSZXN1bHRzID0+IHNvdXJjZVJlc3VsdHMuZXZlcnkoc3IgPT4gc3IpKSxcbiAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLm1lcmdlQ29uZmlncygpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb25maWcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGNvbmZpZ3VyYXRpb24gdmFsdWUgZm9yIGtleS5cbiAgICAgKiBAcGFyYW0ga2V5IENvbmZpZ3VyYXRpb24ga2V5LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb25maWdWYWx1ZTxUID0gYW55PihrZXk6IHN0cmluZyk6IFQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbltrZXldID8gdGhpcy5jb25maWd1cmF0aW9uW2tleV0gOiBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhcyBjb25maWd1cmF0aW9uIGZvciBrZXkuXG4gICAgICogQHBhcmFtIGtleSBDb25maWd1cmF0aW9uIGtleS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaGFzQ29uZmlnS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNvbmZpZ3VyYXRpb24pLnNvbWUoayA9PiBrID09PSBrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1lcmdlcyBjb25maWd1cmF0aW9uIGZyb20gbXVsdGlwbGUgc291cmNlcyB3aXRoXG4gICAgICovXG4gICAgcHJpdmF0ZSBtZXJnZUNvbmZpZ3MoKSB7XG4gICAgICAgIGxldCBjb25maWcgPSB7fTtcblxuICAgICAgICAvLyAxLiBvYmplY3Qgc291cmNlcyBoYXZlIGhpZ2hlc3QgcHJpb3JpdHlcbiAgICAgICAgaWYgKHRoaXMub2JqZWN0U291cmNlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgb2JqQ29uZmlnIG9mIHRoaXMub2JqZWN0U291cmNlcykge1xuICAgICAgICAgICAgICAgIGNvbmZpZyA9IG9iamVjdERlZXBNZXJnZShjb25maWcsIG9iakNvbmZpZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyAyLiBKU09OIHNvdXJjZXMgY29tZSBuZXh0XG4gICAgICAgIGNvbnN0IGpzb25Db25maWdzID0gdGhpcy5qc29uU291cmNlcy5maWx0ZXIoc291cmNlID0+IHNvdXJjZS5pc0xvYWRlZCAmJiB0eXBlb2Ygc291cmNlLmNvbmZpZ3VyYXRpb24gPT09ICdvYmplY3QnKS5tYXAoc291cmNlID0+IHNvdXJjZS5jb25maWd1cmF0aW9uKTtcbiAgICAgICAgaWYgKGpzb25Db25maWdzLmxlbmd0aCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBqc29uQ29uZmlnIG9mIGpzb25Db25maWdzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGpzb25Db25maWcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnID0gb2JqZWN0RGVlcE1lcmdlKGNvbmZpZywganNvbkNvbmZpZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMy4gcHJvamVjdCBlbnYgaGFzIHRoZSBuZXh0IHByaW9yaXR5XG4gICAgICAgIGlmICh0aGlzLnByb2plY3RFbnZpcm9ubWVudCkge1xuICAgICAgICAgICAgY29uZmlnID0gb2JqZWN0RGVlcE1lcmdlKGNvbmZpZywgdGhpcy5wcm9qZWN0RW52aXJvbm1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gNC4gbW9kdWxlIGNvbmZpZyBoYXMgdGhlIGxvd2VzdCBwcmlvcml0eVxuICAgICAgICBpZiAodGhpcy5tb2R1bGVDb25maWcpIHtcbiAgICAgICAgICAgIGNvbmZpZyA9IG9iamVjdERlZXBNZXJnZShjb25maWcsIHRoaXMubW9kdWxlQ29uZmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZztcbiAgICB9XG59XG5cbmludGVyZmFjZSBKc29uU291cmNlTG9hZEluZm8ge1xuICAgIHVybDogc3RyaW5nO1xuICAgIGlzTG9hZGVkOiBib29sZWFuO1xuICAgIGlzRW52aXJvbm1lbnQ6IGJvb2xlYW47XG4gICAgZW52aXJvbm1lbnQ/OiBzdHJpbmcgfCBudWxsO1xuICAgIGVudmlyb25tZW50RW5hYmxlRW52UHJvZD86IGJvb2xlYW47XG4gICAgY29uZmlndXJhdGlvbj86IG9iamVjdDtcbn1cbiJdfQ==
|
|
@@ -102,10 +102,10 @@ export class CommonsInitService {
|
|
|
102
102
|
return throwError(() => err);
|
|
103
103
|
}));
|
|
104
104
|
}
|
|
105
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2
|
|
106
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2
|
|
105
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: CommonsInitService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
106
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: CommonsInitService }); }
|
|
107
107
|
}
|
|
108
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: CommonsInitService, decorators: [{
|
|
109
109
|
type: Injectable
|
|
110
110
|
}] });
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9ucy1pbml0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NyYy9zZXJ2aWNlcy9jb21tb25zLWluaXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFhLGFBQWEsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN2RyxPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDOztBQUV0RSxNQUFNLENBQU4sSUFBWSxvQkFRWDtBQVJELFdBQVksb0JBQW9CO0lBQzVCLHVGQUFnQixDQUFBO0lBQ2hCLHVHQUF3QixDQUFBO0lBQ3hCLCtHQUE0QixDQUFBO0lBQzVCLGlHQUFxQixDQUFBO0lBQ3JCLG1HQUFzQixDQUFBO0lBQ3RCLG1GQUFjLENBQUE7SUFDZCx1RkFBZ0IsQ0FBQTtBQUNwQixDQUFDLEVBUlcsb0JBQW9C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QUFHLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQzs4R0EvRlEsa0JBQWtCO2tIQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBCYWNrZW5kLCBIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0luamVjdGFibGUsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWVyZ2VNYXAsIG9mLCB0YWtlLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vbG9nL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7Q29tbW9uc0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuL2NvbW1vbnMtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7Q29tbW9uc1JvdXRlclNlcnZpY2V9IGZyb20gJy4vY29tbW9ucy1yb3V0ZXIuc2VydmljZSc7XG5pbXBvcnQge0NvbW1vbnNTZXJ2aWNlfSBmcm9tICcuL2NvbW1vbnMuc2VydmljZSc7XG5pbXBvcnQge0NPTU1PTlNfSU5JVElBTElaRVJfSVR9IGZyb20gJy4vdG9rZW5zL2NvbW1vbnMtaW5pdC50b2tlbic7XG5pbXBvcnQge0xPR19QVUJMSVNIRVJTfSBmcm9tICcuL3Rva2Vucy9sb2ctcHVibGlzaGVyLnRva2VuJztcbmltcG9ydCB7Q09NTU9OU19NT0RVTEVfQ09ORklHX0lUfSBmcm9tICcuL3Rva2Vucy9tb2R1bGUtY29uZmlnLnRva2VuJztcblxuZXhwb3J0IGVudW0gQ29tbW9uc0luaXRFdmVudEVudW0ge1xuICAgIENvbW1vbnNJbml0U3RhcnQsXG4gICAgQ29uZmlnU291cmNlTW9kdWxlTG9hZGVkLFxuICAgIENvbmZpZ1NvdXJjZVByb2plY3RFbnZMb2FkZWQsXG4gICAgQ29uZmlnU291cmNlSnNvbkFkZGVkLFxuICAgIENvbmZpZ1NvdXJjZUpzb25Mb2FkZWQsXG4gICAgQ29tbW9uc0luaXRFbmQsXG4gICAgQ29tbW9uc0luaXRFcnJvclxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29tbW9uc0luaXRTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IGluamVjdChMb2dnZXJTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ1B1Ymxpc2hlcnMgPSBpbmplY3QoTE9HX1BVQkxJU0hFUlMsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KENvbW1vbnNDb25maWd1cmF0aW9uU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25zID0gaW5qZWN0KENvbW1vbnNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1vbnNSb3V0ZXIgPSBpbmplY3QoQ29tbW9uc1JvdXRlclNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kdWxlQ29uZmlnID0gaW5qZWN0KENPTU1PTlNfTU9EVUxFX0NPTkZJR19JVCwge29wdGlvbmFsOiB0cnVlfSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25zSW5pdGlhbGl6ZXJzID0gaW5qZWN0KENPTU1PTlNfSU5JVElBTElaRVJfSVQsIHtvcHRpb25hbDogdHJ1ZX0pO1xuXG4gICAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGh0dHBDbGllbnQhOiBIdHRwQ2xpZW50O1xuXG4gICAgcHJpdmF0ZSBpc0luaXRpYWxpemVkU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSBjb21tb25zSW5pdFNlcnZpY2VFdmVudHMgPSBuZXcgU3ViamVjdDxDb21tb25zSW5pdEV2ZW50RW51bT4oKTtcblxuICAgIHB1YmxpYyBnZXQgZXZlbnRzJCgpOiBPYnNlcnZhYmxlPENvbW1vbnNJbml0RXZlbnRFbnVtPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbW1vbnNJbml0U2VydmljZUV2ZW50cy5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzSW5pdGlhbGl6ZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0luaXRpYWxpemVkU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKHRha2UoMSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0aWFsaXplKGhhbmRsZXI6IEh0dHBCYWNrZW5kKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih2b2lkIDApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICAgICAgTG9nZ2VyU2VydmljZS5jb25maWd1cmUoe3RpbWVzdGFtcEZvcm1hdDogdGhpcy5tb2R1bGVDb25maWc/LmxvZz8udGltZXN0YW1wRm9ybWF0fSk7XG5cbiAgICAgICAgY29uc3QgY3R4TG9nZ2VyID0gdGhpcy5sb2dnZXIuY3JlYXRlKCdDb21tb25zSW5pdFNlcnZpY2UnKTtcbiAgICAgICAgY3R4TG9nZ2VyLmRlYnVnKCdDb21tb25zIGluaXRpYWxpemF0aW9uIGlzIHN0YXJ0aW5nJyk7XG4gICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29tbW9uc0luaXRTdGFydCk7XG5cbiAgICAgICAgLy8gaW5pdCBodHRwIGNsaWVudFxuICAgICAgICB0aGlzLmh0dHBDbGllbnQgPSBuZXcgSHR0cENsaWVudChoYW5kbGVyKTtcblxuICAgICAgICAvLyBpbml0IHJvdXRlclxuICAgICAgICB0aGlzLmNvbW1vbnNSb3V0ZXIuaW5pdGlhbGl6ZSgpO1xuXG4gICAgICAgIC8vIGluaXQgY29uZmlndXJhdGlvbnMgd2l0aCBzZXR0aW5ncyBmcm9tIG1vZHVsZSBjb25maWdcbiAgICAgICAgdGhpcy5jb25maWcuaW5pdCh0aGlzLmh0dHBDbGllbnQsIHRoaXMubG9nZ2VyKTtcbiAgICAgICAgdGhpcy5jb25maWcuYWRkTW9kdWxlQ29uZmlnU291cmNlKHRoaXMubW9kdWxlQ29uZmlnID8/IHVuZGVmaW5lZCk7XG4gICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29uZmlnU291cmNlTW9kdWxlTG9hZGVkKTtcbiAgICAgICAgaWYgKHRoaXMubW9kdWxlQ29uZmlnPy5jb25maWd1cmF0aW9uPy5wcm9qZWN0RW52aXJvbm1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLmFkZEVudmlyb25tZW50U291cmNlKHRoaXMubW9kdWxlQ29uZmlnLmNvbmZpZ3VyYXRpb24ucHJvamVjdEVudmlyb25tZW50KTtcbiAgICAgICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29uZmlnU291cmNlUHJvamVjdEVudkxvYWRlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpbml0IGNvbmZpZ3VyYXRpb25zIHdpdGggc2V0dGluZ3MgZnJvbSBtb2R1bGUgY29uZmlnIGZvciBqc29uIHNvdXJjZVxuICAgICAgICBpZiAoISh0aGlzLm1vZHVsZUNvbmZpZz8uY29uZmlndXJhdGlvbj8uc2tpcEpzb25Tb3VyY2VJbml0ID8/IGZhbHNlKSkge1xuICAgICAgICAgICAgY29uc3QganNvblNvdXJjZUVuYWJsZUVudlByb2QgPSB0aGlzLm1vZHVsZUNvbmZpZz8uY29uZmlndXJhdGlvbj8uanNvblNvdXJjZUVuYWJsZUVudlByb2QgPz8gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBqc29uU291cmNlID0gdGhpcy5tb2R1bGVDb25maWc/LmNvbmZpZ3VyYXRpb24/Lmpzb25Tb3VyY2U7XG4gICAgICAgICAgICBpZiAoIWpzb25Tb3VyY2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5hZGRKc29uU291cmNlKHtlbmFibGVFbnZQcm9kOiBqc29uU291cmNlRW5hYmxlRW52UHJvZH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGpzb25Tb3VyY2UpKSB7XG4gICAgICAgICAgICAgICAganNvblNvdXJjZS5mb3JFYWNoKHNvdXJjZSA9PiB0aGlzLmNvbmZpZy5hZGRKc29uU291cmNlKHt1cmw6IHNvdXJjZSwgZW5hYmxlRW52UHJvZDoganNvblNvdXJjZUVuYWJsZUVudlByb2R9KSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmFkZEpzb25Tb3VyY2Uoe3VybDoganNvblNvdXJjZSwgZW5hYmxlRW52UHJvZDoganNvblNvdXJjZUVuYWJsZUVudlByb2R9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29uZmlnU291cmNlSnNvbkFkZGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5sb2FkSnNvbkNvbmZpZ3VyYXRpb25zKCkucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoISh0aGlzLm1vZHVsZUNvbmZpZz8uY29uZmlndXJhdGlvbj8uc2tpcEpzb25Tb3VyY2VJbml0ID8/IGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbW1vbnNJbml0U2VydmljZUV2ZW50cy5uZXh0KENvbW1vbnNJbml0RXZlbnRFbnVtLkNvbmZpZ1NvdXJjZUpzb25Mb2FkZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBpbml0IGxvZ2dlclxuICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2UuaW5pdCh0aGlzLmNvbmZpZywgdGhpcy5sb2dQdWJsaXNoZXJzID8/IFtdKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbW1vbnNJbml0aWFsaXplcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4TG9nZ2VyLmRlYnVnKCdQcm9qZWN0IGluaXRpYWxpemVycyBhcmUgYmVpbmcgaW5pdGlhbGl6ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QodGhpcy5jb21tb25zSW5pdGlhbGl6ZXJzLm1hcChjaSA9PiBjaSgpKSkucGlwZShtYXAocmVzID0+IHJlcykpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY3R4TG9nZ2VyLmRlYnVnKCdDb21tb25zIGluaXRpYWxpemF0aW9uIGlzIGZpbmlzaGVkJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tb25zSW5pdFNlcnZpY2VFdmVudHMubmV4dChDb21tb25zSW5pdEV2ZW50RW51bS5Db21tb25zSW5pdEVuZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tb25zSW5pdFNlcnZpY2VFdmVudHMuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzSW5pdGlhbGl6ZWRTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29tbW9ucy5yZXNldCgpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgY3R4TG9nZ2VyLndhcm4oJ0NvbW1vbnMgaW5pdGlhbGl6YXRpb24gZmFpbGVkIHdpdGggZXJyb3InLCBlcnIpO1xuICAgICAgICAgICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29tbW9uc0luaXRFcnJvcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tb25zSW5pdFNlcnZpY2VFdmVudHMuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzSW5pdGlhbGl6ZWRTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9ucy1pbml0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3NyYy9zZXJ2aWNlcy9jb21tb25zLWluaXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFhLGFBQWEsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN2RyxPQUFPLEVBQUMsVUFBVSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDOztBQUV0RSxNQUFNLENBQU4sSUFBWSxvQkFRWDtBQVJELFdBQVksb0JBQW9CO0lBQzVCLHVGQUFnQixDQUFBO0lBQ2hCLHVHQUF3QixDQUFBO0lBQ3hCLCtHQUE0QixDQUFBO0lBQzVCLGlHQUFxQixDQUFBO0lBQ3JCLG1HQUFzQixDQUFBO0lBQ3RCLG1GQUFjLENBQUE7SUFDZCx1RkFBZ0IsQ0FBQTtBQUNwQixDQUFDLEVBUlcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQVEvQjtBQUdELE1BQU0sT0FBTyxrQkFBa0I7SUFEL0I7UUFFcUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUN6RCxXQUFNLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDN0MsWUFBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqQyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzdDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDbEUsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFFaEYsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFJdEIseUJBQW9CLEdBQUcsSUFBSSxhQUFhLEVBQVcsQ0FBQztRQUNwRCw2QkFBd0IsR0FBRyxJQUFJLE9BQU8sRUFBd0IsQ0FBQztLQWtGMUU7SUFoRkcsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQVcsY0FBYztRQUNyQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUFvQjtRQUNsQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUUxQixhQUFhLENBQUMsU0FBUyxDQUFDLEVBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBQyxDQUFDLENBQUM7UUFFcEYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMzRCxTQUFTLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTFFLG1CQUFtQjtRQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFDLGNBQWM7UUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWhDLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksU0FBUyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ2xGLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDckYsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQzFGLENBQUM7UUFFRCx1RUFBdUU7UUFDdkUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsa0JBQWtCLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuRSxNQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLHVCQUF1QixJQUFJLEtBQUssQ0FBQztZQUNuRyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUM7WUFDaEUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUMsYUFBYSxFQUFFLHVCQUF1QixFQUFDLENBQUMsQ0FBQztZQUN4RSxDQUFDO2lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUNuQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSx1QkFBdUIsRUFBQyxDQUFDLENBQUMsQ0FBQztZQUNuSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSx1QkFBdUIsRUFBQyxDQUFDLENBQUM7WUFDekYsQ0FBQztZQUNELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNuRixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUMsSUFBSSxDQUM1QyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsa0JBQWtCLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbkUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQ3BGLENBQUM7WUFDRCxjQUFjO1lBQ2QsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLENBQUM7WUFFMUQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDM0IsU0FBUyxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO2dCQUM5RCxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3pGLENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQixDQUFDO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNMLFNBQVMsQ0FBQyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3hFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQyxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDYixTQUFTLENBQUMsSUFBSSxDQUFDLDBDQUEwQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUMxRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQzs4R0EvRlEsa0JBQWtCO2tIQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBCYWNrZW5kLCBIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0luamVjdGFibGUsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWVyZ2VNYXAsIG9mLCB0YWtlLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vbG9nL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7Q29tbW9uc0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuL2NvbW1vbnMtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7Q29tbW9uc1JvdXRlclNlcnZpY2V9IGZyb20gJy4vY29tbW9ucy1yb3V0ZXIuc2VydmljZSc7XG5pbXBvcnQge0NvbW1vbnNTZXJ2aWNlfSBmcm9tICcuL2NvbW1vbnMuc2VydmljZSc7XG5pbXBvcnQge0NPTU1PTlNfSU5JVElBTElaRVJfSVR9IGZyb20gJy4vdG9rZW5zL2NvbW1vbnMtaW5pdC50b2tlbic7XG5pbXBvcnQge0xPR19QVUJMSVNIRVJTfSBmcm9tICcuL3Rva2Vucy9sb2ctcHVibGlzaGVyLnRva2VuJztcbmltcG9ydCB7Q09NTU9OU19NT0RVTEVfQ09ORklHX0lUfSBmcm9tICcuL3Rva2Vucy9tb2R1bGUtY29uZmlnLnRva2VuJztcblxuZXhwb3J0IGVudW0gQ29tbW9uc0luaXRFdmVudEVudW0ge1xuICAgIENvbW1vbnNJbml0U3RhcnQsXG4gICAgQ29uZmlnU291cmNlTW9kdWxlTG9hZGVkLFxuICAgIENvbmZpZ1NvdXJjZVByb2plY3RFbnZMb2FkZWQsXG4gICAgQ29uZmlnU291cmNlSnNvbkFkZGVkLFxuICAgIENvbmZpZ1NvdXJjZUpzb25Mb2FkZWQsXG4gICAgQ29tbW9uc0luaXRFbmQsXG4gICAgQ29tbW9uc0luaXRFcnJvclxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29tbW9uc0luaXRTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IGluamVjdChMb2dnZXJTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ1B1Ymxpc2hlcnMgPSBpbmplY3QoTE9HX1BVQkxJU0hFUlMsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KENvbW1vbnNDb25maWd1cmF0aW9uU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25zID0gaW5qZWN0KENvbW1vbnNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1vbnNSb3V0ZXIgPSBpbmplY3QoQ29tbW9uc1JvdXRlclNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbW9kdWxlQ29uZmlnID0gaW5qZWN0KENPTU1PTlNfTU9EVUxFX0NPTkZJR19JVCwge29wdGlvbmFsOiB0cnVlfSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25zSW5pdGlhbGl6ZXJzID0gaW5qZWN0KENPTU1PTlNfSU5JVElBTElaRVJfSVQsIHtvcHRpb25hbDogdHJ1ZX0pO1xuXG4gICAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGh0dHBDbGllbnQhOiBIdHRwQ2xpZW50O1xuXG4gICAgcHJpdmF0ZSBpc0luaXRpYWxpemVkU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSBjb21tb25zSW5pdFNlcnZpY2VFdmVudHMgPSBuZXcgU3ViamVjdDxDb21tb25zSW5pdEV2ZW50RW51bT4oKTtcblxuICAgIHB1YmxpYyBnZXQgZXZlbnRzJCgpOiBPYnNlcnZhYmxlPENvbW1vbnNJbml0RXZlbnRFbnVtPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbW1vbnNJbml0U2VydmljZUV2ZW50cy5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzSW5pdGlhbGl6ZWQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0luaXRpYWxpemVkU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKHRha2UoMSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0aWFsaXplKGhhbmRsZXI6IEh0dHBCYWNrZW5kKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih2b2lkIDApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICAgICAgTG9nZ2VyU2VydmljZS5jb25maWd1cmUoe3RpbWVzdGFtcEZvcm1hdDogdGhpcy5tb2R1bGVDb25maWc/LmxvZz8udGltZXN0YW1wRm9ybWF0fSk7XG5cbiAgICAgICAgY29uc3QgY3R4TG9nZ2VyID0gdGhpcy5sb2dnZXIuY3JlYXRlKCdDb21tb25zSW5pdFNlcnZpY2UnKTtcbiAgICAgICAgY3R4TG9nZ2VyLmRlYnVnKCdDb21tb25zIGluaXRpYWxpemF0aW9uIGlzIHN0YXJ0aW5nJyk7XG4gICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29tbW9uc0luaXRTdGFydCk7XG5cbiAgICAgICAgLy8gaW5pdCBodHRwIGNsaWVudFxuICAgICAgICB0aGlzLmh0dHBDbGllbnQgPSBuZXcgSHR0cENsaWVudChoYW5kbGVyKTtcblxuICAgICAgICAvLyBpbml0IHJvdXRlclxuICAgICAgICB0aGlzLmNvbW1vbnNSb3V0ZXIuaW5pdGlhbGl6ZSgpO1xuXG4gICAgICAgIC8vIGluaXQgY29uZmlndXJhdGlvbnMgd2l0aCBzZXR0aW5ncyBmcm9tIG1vZHVsZSBjb25maWdcbiAgICAgICAgdGhpcy5jb25maWcuaW5pdCh0aGlzLmh0dHBDbGllbnQsIHRoaXMubG9nZ2VyKTtcbiAgICAgICAgdGhpcy5jb25maWcuYWRkTW9kdWxlQ29uZmlnU291cmNlKHRoaXMubW9kdWxlQ29uZmlnID8/IHVuZGVmaW5lZCk7XG4gICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29uZmlnU291cmNlTW9kdWxlTG9hZGVkKTtcbiAgICAgICAgaWYgKHRoaXMubW9kdWxlQ29uZmlnPy5jb25maWd1cmF0aW9uPy5wcm9qZWN0RW52aXJvbm1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLmFkZEVudmlyb25tZW50U291cmNlKHRoaXMubW9kdWxlQ29uZmlnLmNvbmZpZ3VyYXRpb24ucHJvamVjdEVudmlyb25tZW50KTtcbiAgICAgICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29uZmlnU291cmNlUHJvamVjdEVudkxvYWRlZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpbml0IGNvbmZpZ3VyYXRpb25zIHdpdGggc2V0dGluZ3MgZnJvbSBtb2R1bGUgY29uZmlnIGZvciBqc29uIHNvdXJjZVxuICAgICAgICBpZiAoISh0aGlzLm1vZHVsZUNvbmZpZz8uY29uZmlndXJhdGlvbj8uc2tpcEpzb25Tb3VyY2VJbml0ID8/IGZhbHNlKSkge1xuICAgICAgICAgICAgY29uc3QganNvblNvdXJjZUVuYWJsZUVudlByb2QgPSB0aGlzLm1vZHVsZUNvbmZpZz8uY29uZmlndXJhdGlvbj8uanNvblNvdXJjZUVuYWJsZUVudlByb2QgPz8gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBqc29uU291cmNlID0gdGhpcy5tb2R1bGVDb25maWc/LmNvbmZpZ3VyYXRpb24/Lmpzb25Tb3VyY2U7XG4gICAgICAgICAgICBpZiAoIWpzb25Tb3VyY2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5hZGRKc29uU291cmNlKHtlbmFibGVFbnZQcm9kOiBqc29uU291cmNlRW5hYmxlRW52UHJvZH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGpzb25Tb3VyY2UpKSB7XG4gICAgICAgICAgICAgICAganNvblNvdXJjZS5mb3JFYWNoKHNvdXJjZSA9PiB0aGlzLmNvbmZpZy5hZGRKc29uU291cmNlKHt1cmw6IHNvdXJjZSwgZW5hYmxlRW52UHJvZDoganNvblNvdXJjZUVuYWJsZUVudlByb2R9KSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmFkZEpzb25Tb3VyY2Uoe3VybDoganNvblNvdXJjZSwgZW5hYmxlRW52UHJvZDoganNvblNvdXJjZUVuYWJsZUVudlByb2R9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29uZmlnU291cmNlSnNvbkFkZGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5sb2FkSnNvbkNvbmZpZ3VyYXRpb25zKCkucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoISh0aGlzLm1vZHVsZUNvbmZpZz8uY29uZmlndXJhdGlvbj8uc2tpcEpzb25Tb3VyY2VJbml0ID8/IGZhbHNlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbW1vbnNJbml0U2VydmljZUV2ZW50cy5uZXh0KENvbW1vbnNJbml0RXZlbnRFbnVtLkNvbmZpZ1NvdXJjZUpzb25Mb2FkZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBpbml0IGxvZ2dlclxuICAgICAgICAgICAgICAgIExvZ2dlclNlcnZpY2UuaW5pdCh0aGlzLmNvbmZpZywgdGhpcy5sb2dQdWJsaXNoZXJzID8/IFtdKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbW1vbnNJbml0aWFsaXplcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY3R4TG9nZ2VyLmRlYnVnKCdQcm9qZWN0IGluaXRpYWxpemVycyBhcmUgYmVpbmcgaW5pdGlhbGl6ZWQnKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QodGhpcy5jb21tb25zSW5pdGlhbGl6ZXJzLm1hcChjaSA9PiBjaSgpKSkucGlwZShtYXAocmVzID0+IHJlcykpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY3R4TG9nZ2VyLmRlYnVnKCdDb21tb25zIGluaXRpYWxpemF0aW9uIGlzIGZpbmlzaGVkJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tb25zSW5pdFNlcnZpY2VFdmVudHMubmV4dChDb21tb25zSW5pdEV2ZW50RW51bS5Db21tb25zSW5pdEVuZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tb25zSW5pdFNlcnZpY2VFdmVudHMuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzSW5pdGlhbGl6ZWRTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29tbW9ucy5yZXNldCgpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgY3R4TG9nZ2VyLndhcm4oJ0NvbW1vbnMgaW5pdGlhbGl6YXRpb24gZmFpbGVkIHdpdGggZXJyb3InLCBlcnIpO1xuICAgICAgICAgICAgICAgIHRoaXMuY29tbW9uc0luaXRTZXJ2aWNlRXZlbnRzLm5leHQoQ29tbW9uc0luaXRFdmVudEVudW0uQ29tbW9uc0luaXRFcnJvcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tb25zSW5pdFNlcnZpY2VFdmVudHMuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzSW5pdGlhbGl6ZWRTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -171,10 +171,10 @@ export class CommonsRouterService {
|
|
|
171
171
|
getModulePathFromRouterLink(path) {
|
|
172
172
|
return ('/' + (Array.isArray(path) ? path.join('/') : path)).replace(/\/\//g, '/');
|
|
173
173
|
}
|
|
174
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2
|
|
175
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2
|
|
174
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: CommonsRouterService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
175
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: CommonsRouterService }); }
|
|
176
176
|
}
|
|
177
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2
|
|
177
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: CommonsRouterService, decorators: [{
|
|
178
178
|
type: Injectable
|
|
179
179
|
}], ctorParameters: () => [{ type: i1.Router }] });
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9ucy1yb3V0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc3JjL3NlcnZpY2VzL2NvbW1vbnMtcm91dGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFTLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBUyxNQUFNLGlCQUFpQixDQUFDO0FBRW5LLE9BQU8sRUFBYSxhQUFhLEVBQVUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBR3BELE1BQU0sT0FBTyxvQkFBb0I7SUFnQjdCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBZmpCLFdBQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDOUQsd0JBQW1CLEdBQUcsZUFBZSxDQUFDO1FBRy9DLGdDQUEyQixHQUFhLEVBQUUsQ0FBQztRQUUzQywyQkFBc0IsR0FPMUIsRUFBRSxDQUFDO0lBRThCLENBQUM7SUFFL0Isc0JBQXNCLENBQUMsSUFBNEI7UUFDdEQsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQy9GLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxJQUE0QjtRQUN2RCxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIs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Y3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRW5kLCBOYXZpZ2F0aW9uRXJyb3IsIE5hdmlnYXRpb25TdGFydCwgUm91dGUsIFJvdXRlQ29uZmlnTG9hZEVuZCwgUm91dGVDb25maWdMb2FkU3RhcnQsIFJvdXRlciwgUm91dGVzfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge09ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaXJzdH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uL2xvZy9sb2dnZXIuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb21tb25zUm91dGVyU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBpbmplY3QoTG9nZ2VyU2VydmljZSkuY3JlYXRlKCdDb21tb25zUm91dGVyU2VydmljZScpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVzTG9hZGVkUHJvcEtleSA9ICdfbG9hZGVkUm91dGVzJztcblxuICAgIHByaXZhdGUgY3VycmVudE5hdmlnYXRpb25QYXRoPzogc3RyaW5nO1xuICAgIHByaXZhdGUgY3VycmVudE5hdmlnYXRpb25Nb2R1bGVLZXlzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBsYXp5TG9hZGVkUm91dGVzQ29uZmlnOiB7XG4gICAgICAgIFtwYXRoOiBzdHJpbmddOiB7XG4gICAgICAgICAgICByb3V0ZT86IFJvdXRlO1xuICAgICAgICAgICAgaXNMb2FkRW5kOiBib29sZWFuO1xuICAgICAgICAgICAgbG9hZGVkUm91dGVzPzogUm91dGVzO1xuICAgICAgICAgICAgbG9hZGVkUm91dGVzU3ViamVjdDogU3ViamVjdDxSb3V0ZXM+O1xuICAgICAgICB9O1xuICAgIH0gPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHt9XG5cbiAgICBwdWJsaWMgZ2V0Um91dGVMb2FkZWRDaGlsZHJlbihwYXRoOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+KTogUm91dGVzIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T3JDcmVhdGVSb3V0ZUZvck1vZHVsZSh0aGlzLmdldE1vZHVsZVBhdGhGcm9tUm91dGVyTGluayhwYXRoKSkubG9hZGVkUm91dGVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSb3V0ZUxvYWRlZENoaWxkcmVuJChwYXRoOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxSb3V0ZXM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T3JDcmVhdGVSb3V0ZUZvck1vZHVsZSh0aGlzLmdldE1vZHVsZVBhdGhGcm9tUm91dGVyTGluayhwYXRoKSkubG9hZGVkUm91dGVzU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGZpcnN0KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0aWFsaXplKCkge1xuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnROYXZpZ2F0aW9uKGV2ZW50LnVybCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgUm91dGVDb25maWdMb2FkU3RhcnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1hcmtOYXZpZ2F0aW9uQ29uZmlnTG9hZChldmVudC5yb3V0ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgUm91dGVDb25maWdMb2FkRW5kKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXJrTmF2aWdhdGlvbkNvbmZpZ0xvYWQoZXZlbnQucm91dGUsIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHwgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsIHx8IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maW5pc2hOYXZpZ2F0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhcnROYXZpZ2F0aW9uKHVybDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuY3VycmVudE5hdmlnYXRpb25QYXRoID0gdXJsLnNwbGl0KCc/JylbMF0uc3BsaXQoJyMnKVswXTtcbiAgICAgICAgdGhpcy5jdXJyZW50TmF2aWdhdGlvbk1vZHVsZUtleXMgPSBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmlzaE5hdmlnYXRpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnROYXZpZ2F0aW9uTW9kdWxlS2V5cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE5hdmlnYXRpb25Nb2R1bGVLZXlzLmZvckVhY2goayA9PiB0aGlzLmdldExvYWRlZFJvdXRlc0Zyb21Sb3V0ZShrLCB0cnVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50TmF2aWdhdGlvblBhdGggPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYXJrTmF2aWdhdGlvbkNvbmZpZ0xvYWQocm91dGU6IFJvdXRlLCBpc0VuZCA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IHJvdXRlUGF0aCA9IHJvdXRlLnBhdGggPz8gJyc7XG5cbiAgICAgICAgbGV0IG1vZHVsZUtleSA9IHJvdXRlUGF0aDtcbiAgICAgICAgY29uc3QgY3VycmVudE5hdmlnYXRpb25QYXRoUm91dGVQYXRoSWR4ID0gdGhpcy5jdXJyZW50TmF2aWdhdGlvblBhdGg/LmluZGV4T2Yocm91dGVQYXRoKSA/PyAtMTtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE5hdmlnYXRpb25QYXRoICYmIGN1cnJlbnROYXZpZ2F0aW9uUGF0aFJvdXRlUGF0aElkeCA+PSAwKSB7XG4gICAgICAgICAgICBtb2R1bGVLZXkgPSB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uUGF0aC5zdWJzdHJpbmcoMCwgY3VycmVudE5hdmlnYXRpb25QYXRoUm91dGVQYXRoSWR4ICsgcm91dGVQYXRoLmxlbmd0aCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50TmF2aWdhdGlvblBhdGggJiYgcm91dGVQYXRoICE9PSB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uUGF0aCAmJiAhcm91dGVQYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgLy8gdXN1YWxseSBtZWFucyB0aGF0IHJlZGlyZWN0IHRvIGN1cnJlbnROYXZpZ2F0aW9uUGF0aCB3YXMgZG9uZSwgYWRkaXRpb25hbGx5LCByb3V0ZSBwYXRoIHdhcyBhbHNvIHRyaWdnZXJlZCBvbiBsYXp5IHJvdXRlcyBsb2FkXG4gICAgICAgICAgICBtb2R1bGVLZXkgPSBgJHt0aGlzLmN1cnJlbnROYXZpZ2F0aW9uUGF0aH0vJHtyb3V0ZVBhdGh9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNFbmQgJiYgdGhpcy5jdXJyZW50TmF2aWdhdGlvbk1vZHVsZUtleXMuaW5kZXhPZihtb2R1bGVLZXkpIDwgMCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TmF2aWdhdGlvbk1vZHVsZUtleXMucHVzaChtb2R1bGVLZXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sb2dnZXIudHJhY2UoYENvbmZpZyBsb2FkICR7aXNFbmQgPyAnZW5kJyA6ICdzdGFydCd9IGZvciAke21vZHVsZUtleX0gKHJvdXRlUGF0aDogJHtyb3V0ZVBhdGh9OyBuYXZpZ2F0aW9uVXJsOiAke3RoaXMuY3VycmVudE5hdmlnYXRpb25QYXRofSlgKTtcblxuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmdldE9yQ3JlYXRlUm91dGVGb3JNb2R1bGUobW9kdWxlS2V5KTtcbiAgICAgICAgY29uZmlnLnJvdXRlID0gcm91dGU7XG4gICAgICAgIGNvbmZpZy5pc0xvYWRFbmQgPSBpc0VuZDtcblxuICAgICAgICBpZiAoaXNFbmQpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0TG9hZGVkUm91dGVzRnJvbVJvdXRlKG1vZHVsZUtleSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExvYWRlZFJvdXRlc0Zyb21Sb3V0ZShtb2R1bGVLZXk6IHN0cmluZywgaXNGaW5pc2ggPSBmYWxzZSkge1xuICAgICAgICBjb25zdCBtb2R1bGVDb25maWcgPSB0aGlzLmxhenlMb2FkZWRSb3V0ZXNDb25maWdbbW9kdWxlS2V5XTtcbiAgICAgICAgaWYgKCFtb2R1bGVDb25maWc/LnJvdXRlIHx8IEFycmF5LmlzQXJyYXkobW9kdWxlQ29uZmlnLmxvYWRlZFJvdXRlcykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXMgPSBtb2R1bGVDb25maWcucm91dGUhW3RoaXMucm91dGVzTG9hZGVkUHJvcEtleSBhcyBrZXlvZiBvYmplY3RdO1xuXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShtb2R1bGVDb25maWcubG9hZGVkUm91dGVzKSAmJiBpc0ZpbmlzaCkge1xuICAgICAgICAgICAgLy8gaWYgaXMgY2FsbGVkIGZyb20gZmluaXNoIGFuZCBubyBsYXp5IGxvYWRlZCByb3V0ZXMgYXJlIG1hdGNoZWQgZnJvbSByb3V0ZXIgZXZlbnRzLCB0cnkgZmluZGluZyBpbiByb3V0ZSBjb25maWcsIGl0IHNob3VsZCBiZSB0aGVyZSFcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLnRyYWNlKGBSb3V0ZSBsb2FkZWRSb3V0ZXMgZm9yICR7bW9kdWxlS2V5fSBub3QgZm91bmQsIHNlYXJjaGluZyBpbiByb3V0ZXIgY29uZmlnIG5vd2ApO1xuICAgICAgICAgICAgY29uc3Qgcm91dGUgPSB0aGlzLmZpbmRSb3V0ZUluUm91dGVDb25maWcobW9kdWxlS2V5KTtcbiAgICAgICAgICAgIGlmIChyb3V0ZSkge1xuICAgICAgICAgICAgICAgIG1vZHVsZUNvbmZpZy5yb3V0ZSA9IHJvdXRlO1xuICAgICAgICAgICAgICAgIG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXMgPSBtb2R1bGVDb25maWcucm91dGUhW3RoaXMucm91dGVzTG9hZGVkUHJvcEtleSBhcyBrZXlvZiBvYmplY3RdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBSb3V0ZSBsb2FkZWRSb3V0ZXMgZm9yICR7bW9kdWxlS2V5fSB3ZXJlIG5vdCBmb3VuZCBpbiByb3V0ZXIgY29uZmlnYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBtb2R1bGVDb25maWcubG9hZGVkUm91dGVzU3ViamVjdC5uZXh0KG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXMhKTtcbiAgICAgICAgICAgIG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXNTdWJqZWN0LmNvbXBsZXRlKCk7XG5cbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLnRyYWNlKGBDb25maWcgbG9hZCBmb3IgJHttb2R1bGVLZXl9IGlzIGNvbXBsZXRlYCwgbW9kdWxlQ29uZmlnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlYXJjaCBmb3Igcm91dGUgY29uZmlnIGJ5IG1vZHVsZSBwYXRoIGJ5IHJlY3Vyc2l2ZSBzY2FubmluZyBvZiByb3V0ZXIgY29uZmlnIHRyZWUuXG4gICAgICogQHBhcmFtIG1vZHVsZVBhdGggUGF0aCBvZiBtb2R1bGUgdGhhdCBpcyBzZWFyY2hlZC5cbiAgICAgKiBAcGFyYW0gcm91dGVzIFJvdXRlcyB0byBiZSBzY2FubmVkLiBJZiBub3QgcHJvdmlkZWQsIGl0IHN0YXJ0cyBvbiByb290IHJvdXRlciBjb25maWcuXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGZpbmRSb3V0ZUluUm91dGVDb25maWcobW9kdWxlUGF0aDogc3RyaW5nLCByb3V0ZXM6IFJvdXRlcyA9IHRoaXMucm91dGVyLmNvbmZpZyk6IFJvdXRlIHwgbnVsbCB7XG4gICAgICAgIGlmIChtb2R1bGVQYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgbW9kdWxlUGF0aCA9IG1vZHVsZVBhdGguc3Vic3RyaW5nKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCByb3V0ZSBvZiByb3V0ZXMpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygcm91dGUucGF0aCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCByb3V0ZVBhdGggPSByb3V0ZS5wYXRoO1xuICAgICAgICAgICAgaWYgKHJvdXRlUGF0aC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgICAgICAgICByb3V0ZVBhdGggPSByb3V0ZVBhdGguc3Vic3RyaW5nKDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBsb25nZXN0UGF0aE1hdGNoID0gdGhpcy5maW5kTG9uZ2VzdFBhdGhNYXRjaChtb2R1bGVQYXRoLCByb3V0ZVBhdGgpO1xuICAgICAgICAgICAgaWYgKGxvbmdlc3RQYXRoTWF0Y2ggPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gdGhlcmUgaXMgYSBwYXJ0aWFsIG9yIGZ1bGwgbWF0Y2hcbiAgICAgICAgICAgIGlmIChyb3V0ZS5sb2FkQ2hpbGRyZW4gJiYgbW9kdWxlUGF0aCA9PT0gbG9uZ2VzdFBhdGhNYXRjaCkge1xuICAgICAgICAgICAgICAgIC8vIGl0J3MgYSBoaXQhXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvdXRlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyb3V0ZS5sb2FkQ2hpbGRyZW4gJiYgQXJyYXkuaXNBcnJheShyb3V0ZVt0aGlzLnJvdXRlc0xvYWRlZFByb3BLZXkgYXMga2V5b2Ygb2JqZWN0XSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZpbmRSb3V0ZUluUm91dGVDb25maWcobW9kdWxlUGF0aC5zdWJzdHJpbmcobG9uZ2VzdFBhdGhNYXRjaC5sZW5ndGgsIG1vZHVsZVBhdGgubGVuZ3RoKSwgcm91dGVbdGhpcy5yb3V0ZXNMb2FkZWRQcm9wS2V5IGFzIGtleW9mIG9iamVjdF0pO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJvdXRlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5maW5kUm91dGVJblJvdXRlQ29uZmlnKG1vZHVsZVBhdGguc3Vic3RyaW5nKGxvbmdlc3RQYXRoTWF0Y2gubGVuZ3RoLCBtb2R1bGVQYXRoLmxlbmd0aCksIHJvdXRlLmNoaWxkcmVuKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgbG9uZ2VzdCBwYXRoIG1hdGNoIG9mIHNvdXJjZSB0byBtYXRjaCBzdHJpbmcuIElmIG1hdGNoIGlzICcnLCBpdCBpcyBjb25zaWRlcmVkIGFzIGEgbWF0Y2ggaW4gQW5ndWxhciByb3V0aW5nLlxuICAgICAqIEBwYXJhbSBzb3VyY2UgU291cmNlIHN0cmluZyBmcm9tIG9uIHdoaWNoIGNvbXBhcmlzb24gaXMgYmFzZWQuXG4gICAgICogQHBhcmFtIG1hdGNoIE1hdGNoIHN0cmluZyB0byB3aGljaCB0aGUgc291cmNlIGlzIG1hdGNoZWQgdG8uXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGZpbmRMb25nZXN0UGF0aE1hdGNoKHNvdXJjZTogc3RyaW5nLCBtYXRjaDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHNvdXJjZVNlZ21lbnRzID0gc291cmNlLnNwbGl0KCcvJyk7XG4gICAgICAgIGNvbnN0IG1hdGNoU2VnbWVudHMgPSBtYXRjaC5zcGxpdCgnLycpO1xuXG4gICAgICAgIGlmIChtYXRjaFNlZ21lbnRzLmxlbmd0aCA9PT0gMSAmJiBtYXRjaFNlZ21lbnRzWzBdID09PSAnJykge1xuICAgICAgICAgICAgLy8gaXQncyBhIGhpdCwgYmVjYXVzZSBlbXB0eSByb3V0ZSBtdXN0IGFsd2F5cyBiZSBwcm9jZXNzZWQgKGtpbmQgb2YgYSBcImFic3RyYWN0XCIgcm91dGUpXG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc291cmNlU2VnbWVudHNbMF0gPT09IG1hdGNoU2VnbWVudHNbMF0pIHtcbiAgICAgICAgICAgIC8vIHRoZXJlIGlzIGEgbWF0Y2gsIGZpbmQgaG93IGxvbmcgaXQgaXNcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgc291cmNlU2VnbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoc291cmNlU2VnbWVudHNbaV0gIT09IG1hdGNoU2VnbWVudHNbaV0pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZW5kIG9mIG1hdGNoXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2VTZWdtZW50cy5zbGljZSgwLCBpKS5qb2luKCcvJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyB0aGVyZSBpcyBmdWxsIG1hdGNoXG4gICAgICAgICAgICByZXR1cm4gc291cmNlU2VnbWVudHMuam9pbignLycpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPckNyZWF0ZVJvdXRlRm9yTW9kdWxlKG1vZHVsZUtleTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5sYXp5TG9hZGVkUm91dGVzQ29uZmlnW21vZHVsZUtleV0pIHtcbiAgICAgICAgICAgIHRoaXMubGF6eUxvYWRlZFJvdXRlc0NvbmZpZ1ttb2R1bGVLZXldID0ge1xuICAgICAgICAgICAgICAgIGxvYWRlZFJvdXRlc1N1YmplY3Q6IG5ldyBSZXBsYXlTdWJqZWN0PFJvdXRlcz4oMSksXG4gICAgICAgICAgICAgICAgaXNMb2FkRW5kOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmxhenlMb2FkZWRSb3V0ZXNDb25maWdbbW9kdWxlS2V5XTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1vZHVsZVBhdGhGcm9tUm91dGVyTGluayhwYXRoOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+KSB7XG4gICAgICAgIHJldHVybiAoJy8nICsgKEFycmF5LmlzQXJyYXkocGF0aCkgPyBwYXRoLmpvaW4oJy8nKSA6IHBhdGgpKS5yZXBsYWNlKC9cXC9cXC8vZywgJy8nKTtcbiAgICB9XG59XG4iXX0=
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9ucy1yb3V0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvc3JjL3NlcnZpY2VzL2NvbW1vbnMtcm91dGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFTLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBUyxNQUFNLGlCQUFpQixDQUFDO0FBRW5LLE9BQU8sRUFBYSxhQUFhLEVBQVUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBR3BELE1BQU0sT0FBTyxvQkFBb0I7SUFnQjdCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBZmpCLFdBQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDOUQsd0JBQW1CLEdBQUcsZUFBZSxDQUFDO1FBRy9DLGdDQUEyQixHQUFhLEVBQUUsQ0FBQztRQUUzQywyQkFBc0IsR0FPMUIsRUFBRSxDQUFDO0lBRThCLENBQUM7SUFFL0Isc0JBQXNCLENBQUMsSUFBNEI7UUFDdEQsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQy9GLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxJQUE0QjtRQUN2RCxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIs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QTRCO1FBQzVELE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkYsQ0FBQzs4R0FwTVEsb0JBQW9CO2tIQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05hdmlnYXRpb25DYW5jZWwsIE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25FcnJvciwgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZSwgUm91dGVDb25maWdMb2FkRW5kLCBSb3V0ZUNvbmZpZ0xvYWRTdGFydCwgUm91dGVyLCBSb3V0ZXN9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpcnN0fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vbG9nL2xvZ2dlci5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbW1vbnNSb3V0ZXJTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IGluamVjdChMb2dnZXJTZXJ2aWNlKS5jcmVhdGUoJ0NvbW1vbnNSb3V0ZXJTZXJ2aWNlJyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXNMb2FkZWRQcm9wS2V5ID0gJ19sb2FkZWRSb3V0ZXMnO1xuXG4gICAgcHJpdmF0ZSBjdXJyZW50TmF2aWdhdGlvblBhdGg/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBjdXJyZW50TmF2aWdhdGlvbk1vZHVsZUtleXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBwcml2YXRlIGxhenlMb2FkZWRSb3V0ZXNDb25maWc6IHtcbiAgICAgICAgW3BhdGg6IHN0cmluZ106IHtcbiAgICAgICAgICAgIHJvdXRlPzogUm91dGU7XG4gICAgICAgICAgICBpc0xvYWRFbmQ6IGJvb2xlYW47XG4gICAgICAgICAgICBsb2FkZWRSb3V0ZXM/OiBSb3V0ZXM7XG4gICAgICAgICAgICBsb2FkZWRSb3V0ZXNTdWJqZWN0OiBTdWJqZWN0PFJvdXRlcz47XG4gICAgICAgIH07XG4gICAgfSA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cblxuICAgIHB1YmxpYyBnZXRSb3V0ZUxvYWRlZENoaWxkcmVuKHBhdGg6IHN0cmluZyB8IEFycmF5PHN0cmluZz4pOiBSb3V0ZXMgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRPckNyZWF0ZVJvdXRlRm9yTW9kdWxlKHRoaXMuZ2V0TW9kdWxlUGF0aEZyb21Sb3V0ZXJMaW5rKHBhdGgpKS5sb2FkZWRSb3V0ZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJvdXRlTG9hZGVkQ2hpbGRyZW4kKHBhdGg6IHN0cmluZyB8IEFycmF5PHN0cmluZz4pOiBPYnNlcnZhYmxlPFJvdXRlcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRPckNyZWF0ZVJvdXRlRm9yTW9kdWxlKHRoaXMuZ2V0TW9kdWxlUGF0aEZyb21Sb3V0ZXJMaW5rKHBhdGgpKS5sb2FkZWRSb3V0ZXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZmlyc3QoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRpYWxpemUoKSB7XG4gICAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydE5hdmlnYXRpb24oZXZlbnQudXJsKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBSb3V0ZUNvbmZpZ0xvYWRTdGFydCkge1xuICAgICAgICAgICAgICAgIHRoaXMubWFya05hdmlnYXRpb25Db25maWdMb2FkKGV2ZW50LnJvdXRlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBSb3V0ZUNvbmZpZ0xvYWRFbmQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1hcmtOYXZpZ2F0aW9uQ29uZmlnTG9hZChldmVudC5yb3V0ZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCB8fCBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25DYW5jZWwgfHwgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbmlzaE5hdmlnYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGFydE5hdmlnYXRpb24odXJsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50TmF2aWdhdGlvblBhdGggPSB1cmwuc3BsaXQoJz8nKVswXS5zcGxpdCgnIycpWzBdO1xuICAgICAgICB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uTW9kdWxlS2V5cyA9IFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluaXNoTmF2aWdhdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE5hdmlnYXRpb25Nb2R1bGVLZXlzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TmF2aWdhdGlvbk1vZHVsZUtleXMuZm9yRWFjaChrID0+IHRoaXMuZ2V0TG9hZGVkUm91dGVzRnJvbVJvdXRlKGssIHRydWUpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uUGF0aCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hcmtOYXZpZ2F0aW9uQ29uZmlnTG9hZChyb3V0ZTogUm91dGUsIGlzRW5kID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3Qgcm91dGVQYXRoID0gcm91dGUucGF0aCA/PyAnJztcblxuICAgICAgICBsZXQgbW9kdWxlS2V5ID0gcm91dGVQYXRoO1xuICAgICAgICBjb25zdCBjdXJyZW50TmF2aWdhdGlvblBhdGhSb3V0ZVBhdGhJZHggPSB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uUGF0aD8uaW5kZXhPZihyb3V0ZVBhdGgpID8/IC0xO1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50TmF2aWdhdGlvblBhdGggJiYgY3VycmVudE5hdmlnYXRpb25QYXRoUm91dGVQYXRoSWR4ID49IDApIHtcbiAgICAgICAgICAgIG1vZHVsZUtleSA9IHRoaXMuY3VycmVudE5hdmlnYXRpb25QYXRoLnN1YnN0cmluZygwLCBjdXJyZW50TmF2aWdhdGlvblBhdGhSb3V0ZVBhdGhJZHggKyByb3V0ZVBhdGgubGVuZ3RoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnROYXZpZ2F0aW9uUGF0aCAmJiByb3V0ZVBhdGggIT09IHRoaXMuY3VycmVudE5hdmlnYXRpb25QYXRoICYmICFyb3V0ZVBhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICAvLyB1c3VhbGx5IG1lYW5zIHRoYXQgcmVkaXJlY3QgdG8gY3VycmVudE5hdmlnYXRpb25QYXRoIHdhcyBkb25lLCBhZGRpdGlvbmFsbHksIHJvdXRlIHBhdGggd2FzIGFsc28gdHJpZ2dlcmVkIG9uIGxhenkgcm91dGVzIGxvYWRcbiAgICAgICAgICAgIG1vZHVsZUtleSA9IGAke3RoaXMuY3VycmVudE5hdmlnYXRpb25QYXRofS8ke3JvdXRlUGF0aH1gO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc0VuZCAmJiB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uTW9kdWxlS2V5cy5pbmRleE9mKG1vZHVsZUtleSkgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnROYXZpZ2F0aW9uTW9kdWxlS2V5cy5wdXNoKG1vZHVsZUtleSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxvZ2dlci50cmFjZShgQ29uZmlnIGxvYWQgJHtpc0VuZCA/ICdlbmQnIDogJ3N0YXJ0J30gZm9yICR7bW9kdWxlS2V5fSAocm91dGVQYXRoOiAke3JvdXRlUGF0aH07IG5hdmlnYXRpb25Vcmw6ICR7dGhpcy5jdXJyZW50TmF2aWdhdGlvblBhdGh9KWApO1xuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuZ2V0T3JDcmVhdGVSb3V0ZUZvck1vZHVsZShtb2R1bGVLZXkpO1xuICAgICAgICBjb25maWcucm91dGUgPSByb3V0ZTtcbiAgICAgICAgY29uZmlnLmlzTG9hZEVuZCA9IGlzRW5kO1xuXG4gICAgICAgIGlmIChpc0VuZCkge1xuICAgICAgICAgICAgdGhpcy5nZXRMb2FkZWRSb3V0ZXNGcm9tUm91dGUobW9kdWxlS2V5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TG9hZGVkUm91dGVzRnJvbVJvdXRlKG1vZHVsZUtleTogc3RyaW5nLCBpc0ZpbmlzaCA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IG1vZHVsZUNvbmZpZyA9IHRoaXMubGF6eUxvYWRlZFJvdXRlc0NvbmZpZ1ttb2R1bGVLZXldO1xuICAgICAgICBpZiAoIW1vZHVsZUNvbmZpZz8ucm91dGUgfHwgQXJyYXkuaXNBcnJheShtb2R1bGVDb25maWcubG9hZGVkUm91dGVzKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbW9kdWxlQ29uZmlnLmxvYWRlZFJvdXRlcyA9IG1vZHVsZUNvbmZpZy5yb3V0ZSFbdGhpcy5yb3V0ZXNMb2FkZWRQcm9wS2V5IGFzIGtleW9mIG9iamVjdF07XG5cbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXMpICYmIGlzRmluaXNoKSB7XG4gICAgICAgICAgICAvLyBpZiBpcyBjYWxsZWQgZnJvbSBmaW5pc2ggYW5kIG5vIGxhenkgbG9hZGVkIHJvdXRlcyBhcmUgbWF0Y2hlZCBmcm9tIHJvdXRlciBldmVudHMsIHRyeSBmaW5kaW5nIGluIHJvdXRlIGNvbmZpZywgaXQgc2hvdWxkIGJlIHRoZXJlIVxuICAgICAgICAgICAgdGhpcy5sb2dnZXIudHJhY2UoYFJvdXRlIGxvYWRlZFJvdXRlcyBmb3IgJHttb2R1bGVLZXl9IG5vdCBmb3VuZCwgc2VhcmNoaW5nIGluIHJvdXRlciBjb25maWcgbm93YCk7XG4gICAgICAgICAgICBjb25zdCByb3V0ZSA9IHRoaXMuZmluZFJvdXRlSW5Sb3V0ZUNvbmZpZyhtb2R1bGVLZXkpO1xuICAgICAgICAgICAgaWYgKHJvdXRlKSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlQ29uZmlnLnJvdXRlID0gcm91dGU7XG4gICAgICAgICAgICAgICAgbW9kdWxlQ29uZmlnLmxvYWRlZFJvdXRlcyA9IG1vZHVsZUNvbmZpZy5yb3V0ZSFbdGhpcy5yb3V0ZXNMb2FkZWRQcm9wS2V5IGFzIGtleW9mIG9iamVjdF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYFJvdXRlIGxvYWRlZFJvdXRlcyBmb3IgJHttb2R1bGVLZXl9IHdlcmUgbm90IGZvdW5kIGluIHJvdXRlciBjb25maWdgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgbW9kdWxlQ29uZmlnLmxvYWRlZFJvdXRlcyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIG1vZHVsZUNvbmZpZy5sb2FkZWRSb3V0ZXNTdWJqZWN0Lm5leHQobW9kdWxlQ29uZmlnLmxvYWRlZFJvdXRlcyEpO1xuICAgICAgICAgICAgbW9kdWxlQ29uZmlnLmxvYWRlZFJvdXRlc1N1YmplY3QuY29tcGxldGUoKTtcblxuICAgICAgICAgICAgdGhpcy5sb2dnZXIudHJhY2UoYENvbmZpZyBsb2FkIGZvciAke21vZHVsZUtleX0gaXMgY29tcGxldGVgLCBtb2R1bGVDb25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VhcmNoIGZvciByb3V0ZSBjb25maWcgYnkgbW9kdWxlIHBhdGggYnkgcmVjdXJzaXZlIHNjYW5uaW5nIG9mIHJvdXRlciBjb25maWcgdHJlZS5cbiAgICAgKiBAcGFyYW0gbW9kdWxlUGF0aCBQYXRoIG9mIG1vZHVsZSB0aGF0IGlzIHNlYXJjaGVkLlxuICAgICAqIEBwYXJhbSByb3V0ZXMgUm91dGVzIHRvIGJlIHNjYW5uZWQuIElmIG5vdCBwcm92aWRlZCwgaXQgc3RhcnRzIG9uIHJvb3Qgcm91dGVyIGNvbmZpZy5cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZmluZFJvdXRlSW5Sb3V0ZUNvbmZpZyhtb2R1bGVQYXRoOiBzdHJpbmcsIHJvdXRlczogUm91dGVzID0gdGhpcy5yb3V0ZXIuY29uZmlnKTogUm91dGUgfCBudWxsIHtcbiAgICAgICAgaWYgKG1vZHVsZVBhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgICBtb2R1bGVQYXRoID0gbW9kdWxlUGF0aC5zdWJzdHJpbmcoMSk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IHJvdXRlIG9mIHJvdXRlcykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiByb3V0ZS5wYXRoID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHJvdXRlUGF0aCA9IHJvdXRlLnBhdGg7XG4gICAgICAgICAgICBpZiAocm91dGVQYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgICAgICAgICAgIHJvdXRlUGF0aCA9IHJvdXRlUGF0aC5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGxvbmdlc3RQYXRoTWF0Y2ggPSB0aGlzLmZpbmRMb25nZXN0UGF0aE1hdGNoKG1vZHVsZVBhdGgsIHJvdXRlUGF0aCk7XG4gICAgICAgICAgICBpZiAobG9uZ2VzdFBhdGhNYXRjaCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyB0aGVyZSBpcyBhIHBhcnRpYWwgb3IgZnVsbCBtYXRjaFxuICAgICAgICAgICAgaWYgKHJvdXRlLmxvYWRDaGlsZHJlbiAmJiBtb2R1bGVQYXRoID09PSBsb25nZXN0UGF0aE1hdGNoKSB7XG4gICAgICAgICAgICAgICAgLy8gaXQncyBhIGhpdCFcbiAgICAgICAgICAgICAgICByZXR1cm4gcm91dGU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJvdXRlLmxvYWRDaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KHJvdXRlW3RoaXMucm91dGVzTG9hZGVkUHJvcEtleSBhcyBrZXlvZiBvYmplY3RdKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZmluZFJvdXRlSW5Sb3V0ZUNvbmZpZyhtb2R1bGVQYXRoLnN1YnN0cmluZyhsb25nZXN0UGF0aE1hdGNoLmxlbmd0aCwgbW9kdWxlUGF0aC5sZW5ndGgpLCByb3V0ZVt0aGlzLnJvdXRlc0xvYWRlZFByb3BLZXkgYXMga2V5b2Ygb2JqZWN0XSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAocm91dGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZpbmRSb3V0ZUluUm91dGVDb25maWcobW9kdWxlUGF0aC5zdWJzdHJpbmcobG9uZ2VzdFBhdGhNYXRjaC5sZW5ndGgsIG1vZHVsZVBhdGgubGVuZ3RoKSwgcm91dGUuY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGaW5kcyBsb25nZXN0IHBhdGggbWF0Y2ggb2Ygc291cmNlIHRvIG1hdGNoIHN0cmluZy4gSWYgbWF0Y2ggaXMgJycsIGl0IGlzIGNvbnNpZGVyZWQgYXMgYSBtYXRjaCBpbiBBbmd1bGFyIHJvdXRpbmcuXG4gICAgICogQHBhcmFtIHNvdXJjZSBTb3VyY2Ugc3RyaW5nIGZyb20gb24gd2hpY2ggY29tcGFyaXNvbiBpcyBiYXNlZC5cbiAgICAgKiBAcGFyYW0gbWF0Y2ggTWF0Y2ggc3RyaW5nIHRvIHdoaWNoIHRoZSBzb3VyY2UgaXMgbWF0Y2hlZCB0by5cbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgZmluZExvbmdlc3RQYXRoTWF0Y2goc291cmNlOiBzdHJpbmcsIG1hdGNoOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgY29uc3Qgc291cmNlU2VnbWVudHMgPSBzb3VyY2Uuc3BsaXQoJy8nKTtcbiAgICAgICAgY29uc3QgbWF0Y2hTZWdtZW50cyA9IG1hdGNoLnNwbGl0KCcvJyk7XG5cbiAgICAgICAgaWYgKG1hdGNoU2VnbWVudHMubGVuZ3RoID09PSAxICYmIG1hdGNoU2VnbWVudHNbMF0gPT09ICcnKSB7XG4gICAgICAgICAgICAvLyBpdCdzIGEgaGl0LCBiZWNhdXNlIGVtcHR5IHJvdXRlIG11c3QgYWx3YXlzIGJlIHByb2Nlc3NlZCAoa2luZCBvZiBhIFwiYWJzdHJhY3RcIiByb3V0ZSlcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzb3VyY2VTZWdtZW50c1swXSA9PT0gbWF0Y2hTZWdtZW50c1swXSkge1xuICAgICAgICAgICAgLy8gdGhlcmUgaXMgYSBtYXRjaCwgZmluZCBob3cgbG9uZyBpdCBpc1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPCBzb3VyY2VTZWdtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChzb3VyY2VTZWdtZW50c1tpXSAhPT0gbWF0Y2hTZWdtZW50c1tpXSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBlbmQgb2YgbWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNvdXJjZVNlZ21lbnRzLnNsaWNlKDAsIGkpLmpvaW4oJy8nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIHRoZXJlIGlzIGZ1bGwgbWF0Y2hcbiAgICAgICAgICAgIHJldHVybiBzb3VyY2VTZWdtZW50cy5qb2luKCcvJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9yQ3JlYXRlUm91dGVGb3JNb2R1bGUobW9kdWxlS2V5OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKCF0aGlzLmxhenlMb2FkZWRSb3V0ZXNDb25maWdbbW9kdWxlS2V5XSkge1xuICAgICAgICAgICAgdGhpcy5sYXp5TG9hZGVkUm91dGVzQ29uZmlnW21vZHVsZUtleV0gPSB7XG4gICAgICAgICAgICAgICAgbG9hZGVkUm91dGVzU3ViamVjdDogbmV3IFJlcGxheVN1YmplY3Q8Um91dGVzPigxKSxcbiAgICAgICAgICAgICAgICBpc0xvYWRFbmQ6IGZhbHNlXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubGF6eUxvYWRlZFJvdXRlc0NvbmZpZ1ttb2R1bGVLZXldO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TW9kdWxlUGF0aEZyb21Sb3V0ZXJMaW5rKHBhdGg6IHN0cmluZyB8IEFycmF5PHN0cmluZz4pIHtcbiAgICAgICAgcmV0dXJuICgnLycgKyAoQXJyYXkuaXNBcnJheShwYXRoKSA/IHBhdGguam9pbignLycpIDogcGF0aCkpLnJlcGxhY2UoL1xcL1xcLy9nLCAnLycpO1xuICAgIH1cbn1cbiJdfQ==
|