ontimize-web-ngx 15.6.0-next.0 → 15.6.0-next.10
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/esm2020/lib/components/app-header/o-app-header.component.mjs +3 -3
- package/esm2020/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.mjs +19 -3
- package/esm2020/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.mjs +17 -4
- package/esm2020/lib/components/app-sidenav/o-app-sidenav.component.mjs +7 -5
- package/esm2020/lib/components/filter-builder/o-filter-builder.component.mjs +1 -1
- package/esm2020/lib/components/form/navigation/o-form-navigation.component.mjs +42 -24
- package/esm2020/lib/components/form/o-form.component.mjs +4 -3
- package/esm2020/lib/components/form/services/o-form-message.service.mjs +2 -2
- package/esm2020/lib/components/grid/o-grid.component.mjs +19 -17
- package/esm2020/lib/components/grid/skeketon/o-grid-skeleton.component.mjs +12 -15
- package/esm2020/lib/components/index.mjs +2 -1
- package/esm2020/lib/components/input/file-input/o-file-input.component.mjs +3 -2
- package/esm2020/lib/components/input/o-boolean-form-data-component.class.mjs +9 -1
- package/esm2020/lib/components/input/o-form-service-component.class.mjs +5 -4
- package/esm2020/lib/components/list/list-item/o-list-item.component.mjs +8 -3
- package/esm2020/lib/components/list/o-list.component.mjs +41 -16
- package/esm2020/lib/components/list/skeleton/o-list-skeleton.component.mjs +12 -15
- package/esm2020/lib/components/o-form-data-component.class.mjs +2 -2
- package/esm2020/lib/components/o-repeatable-skeleton.component.mjs +33 -0
- package/esm2020/lib/components/o-service-base-component.class.mjs +5 -4
- package/esm2020/lib/components/o-service-component.class.mjs +10 -9
- package/esm2020/lib/components/o-skeleton.component.mjs +15 -6
- package/esm2020/lib/components/table/column/cell-editor/o-base-table-cell-editor.class.mjs +2 -2
- package/esm2020/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.mjs +1 -1
- package/esm2020/lib/components/table/column/cell-renderer/service/o-table-cell-renderer-service.component.mjs +5 -4
- package/esm2020/lib/components/table/column/o-column.class.mjs +2 -1
- package/esm2020/lib/components/table/column/o-table-column.component.mjs +10 -4
- package/esm2020/lib/components/table/extensions/contextmenu/o-table-context-menu.component.mjs +24 -6
- package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +75 -87
- package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.mjs +53 -0
- package/esm2020/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.mjs +12 -4
- package/esm2020/lib/components/table/extensions/header/table-menu/o-table-menu.component.mjs +2 -2
- package/esm2020/lib/components/table/extensions/o-table.dao.mjs +14 -14
- package/esm2020/lib/components/table/extensions/skeleton/o-table-skeleton.component.mjs +5 -19
- package/esm2020/lib/components/table/o-table-base.class.mjs +1 -1
- package/esm2020/lib/components/table/o-table.component.mjs +104 -10
- package/esm2020/lib/components/table/o-table.module.mjs +4 -1
- package/esm2020/lib/components/tree/o-tree.component.mjs +96 -14
- package/esm2020/lib/components/tree/o-tree.datasource.mjs +3 -3
- package/esm2020/lib/components/user-info/o-user-info.component.mjs +5 -4
- package/esm2020/lib/config/app-config.mjs +1 -1
- package/esm2020/lib/config/o-providers.mjs +6 -6
- package/esm2020/lib/i18n/i18n.mjs +6 -3
- package/esm2020/lib/injection-tokens/index.mjs +19 -0
- package/esm2020/lib/interfaces/base-response.interface.mjs +1 -1
- package/esm2020/lib/interfaces/form-layout-manager.interface.mjs +1 -1
- package/esm2020/lib/interfaces/index.mjs +3 -1
- package/esm2020/lib/interfaces/jsonapi-config.interface.mjs +3 -0
- package/esm2020/lib/interfaces/jsonapi-response.interface.mjs +2 -1
- package/esm2020/lib/interfaces/o-table-column.interface.mjs +1 -1
- package/esm2020/lib/interfaces/service-response.interface.mjs +1 -1
- package/esm2020/lib/layouts/app-layout/o-app-layout-base.class.mjs +1 -1
- package/esm2020/lib/layouts/app-layout/o-app-layout.component.mjs +26 -9
- package/esm2020/lib/layouts/form-layout/o-form-layout-manager.component.mjs +4 -3
- package/esm2020/lib/layouts/form-layout/split-pane/o-form-layout-split-pane.component.mjs +2 -2
- package/esm2020/lib/layouts/form-layout/tabgroup/o-form-layout-tabgroup.component.mjs +2 -1
- package/esm2020/lib/services/base-data-service.class.mjs +2 -1
- package/esm2020/lib/services/base-service.class.mjs +3 -3
- package/esm2020/lib/services/factories.mjs +26 -54
- package/esm2020/lib/services/index.mjs +3 -2
- package/esm2020/lib/services/jsonapi/jsonapi-preferences.service.mjs +16 -14
- package/esm2020/lib/services/jsonapi/jsonapi.service.mjs +54 -23
- package/esm2020/lib/services/ontimize/index.mjs +1 -2
- package/esm2020/lib/services/ontimize/ontimize-ee.service.mjs +1 -5
- package/esm2020/lib/services/ontimize/ontimize-export-3xx.service.mjs +2 -2
- package/esm2020/lib/services/ontimize/ontimize-preferences.service.mjs +4 -6
- package/esm2020/lib/services/request-adapter/base-request-argument.adapter.mjs +12 -0
- package/esm2020/lib/services/request-adapter/base-request-argument.interface.mjs +2 -0
- package/esm2020/lib/services/request-adapter/index.mjs +5 -0
- package/esm2020/lib/services/request-adapter/jsonapi-request-arguments.adapter.mjs +70 -0
- package/esm2020/lib/services/request-adapter/ontimize-request-arguments.adapter.mjs +19 -0
- package/esm2020/lib/services/state/o-filter-builder-component-state.service.mjs +1 -1
- package/esm2020/lib/services/state/o-table-component-state.class.mjs +7 -1
- package/esm2020/lib/services/state/o-table-component-state.service.mjs +8 -2
- package/esm2020/lib/services/translate/o-translate.service.mjs +8 -4
- package/esm2020/lib/types/config.type.mjs +1 -1
- package/esm2020/lib/types/form-layout-detail-component-data.type.mjs +1 -1
- package/esm2020/lib/types/index.mjs +1 -2
- package/esm2020/lib/types/service-configuration.type.mjs +1 -1
- package/esm2020/lib/types/table/index.mjs +2 -1
- package/esm2020/lib/types/table/o-column-value-filter.type.mjs +1 -1
- package/esm2020/lib/types/table/o-table-expandable-row-state.type.mjs +2 -0
- package/esm2020/lib/util/codes.mjs +3 -1
- package/esm2020/lib/util/errors.mjs +3 -9
- package/esm2020/lib/util/factory.util.mjs +67 -0
- package/esm2020/lib/util/index.mjs +3 -1
- package/esm2020/lib/util/injection-token.utils.mjs +4 -0
- package/esm2020/lib/util/preference-mapping-util.mjs +22 -7
- package/esm2020/lib/util/sqltypes.mjs +2 -2
- package/esm2020/lib/util/util.mjs +11 -38
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/ontimize-web-ngx.mjs +6801 -6332
- package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
- package/fesm2020/ontimize-web-ngx.mjs +6660 -6211
- package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
- package/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.d.ts +3 -0
- package/lib/components/app-sidenav/menu-item/o-app-sidenav-menu-item.component.d.ts +1 -0
- package/lib/components/app-sidenav/o-app-sidenav.component.d.ts +2 -1
- package/lib/components/filter-builder/o-filter-builder.component.d.ts +1 -1
- package/lib/components/form/navigation/o-form-navigation.component.d.ts +7 -4
- package/lib/components/grid/skeketon/o-grid-skeleton.component.d.ts +4 -7
- package/lib/components/index.d.ts +1 -0
- package/lib/components/input/o-boolean-form-data-component.class.d.ts +1 -0
- package/lib/components/list/o-list.component.d.ts +5 -1
- package/lib/components/list/skeleton/o-list-skeleton.component.d.ts +4 -7
- package/lib/components/o-repeatable-skeleton.component.d.ts +9 -0
- package/lib/components/o-skeleton.component.d.ts +10 -5
- package/lib/components/table/column/cell-renderer/o-base-table-cell-renderer.class.d.ts +1 -1
- package/lib/components/table/column/o-column.class.d.ts +2 -1
- package/lib/components/table/column/o-table-column.component.d.ts +2 -2
- package/lib/components/table/extensions/contextmenu/o-table-context-menu.component.d.ts +2 -0
- package/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.d.ts +9 -6
- package/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column.service.d.ts +12 -0
- package/lib/components/table/extensions/header/o-table-header-components.d.ts +2 -2
- package/lib/components/table/extensions/header/table-columns-filter/o-table-columns-filter.component.d.ts +1 -1
- package/lib/components/table/extensions/o-table.dao.d.ts +3 -2
- package/lib/components/table/extensions/skeleton/o-table-skeleton.component.d.ts +1 -10
- package/lib/components/table/o-table-base.class.d.ts +3 -0
- package/lib/components/table/o-table.component.d.ts +12 -2
- package/lib/components/tree/o-tree.component.d.ts +10 -1
- package/lib/components/user-info/o-user-info.component.d.ts +2 -1
- package/lib/config/app-config.d.ts +1 -1
- package/lib/config/o-directives.d.ts +1 -1
- package/lib/i18n/i18n.d.ts +3 -0
- package/lib/injection-tokens/index.d.ts +33 -0
- package/lib/interfaces/base-response.interface.d.ts +0 -2
- package/lib/interfaces/form-layout-manager.interface.d.ts +1 -1
- package/lib/interfaces/index.d.ts +2 -0
- package/lib/interfaces/jsonapi-config.interface.d.ts +3 -0
- package/lib/interfaces/jsonapi-response.interface.d.ts +47 -7
- package/lib/interfaces/o-table-column.interface.d.ts +2 -1
- package/lib/interfaces/service-response.interface.d.ts +2 -0
- package/lib/layouts/app-layout/o-app-layout-base.class.d.ts +1 -1
- package/lib/layouts/app-layout/o-app-layout.component.d.ts +7 -3
- package/lib/services/base-data-service.class.d.ts +1 -0
- package/lib/services/base-service.class.d.ts +2 -2
- package/lib/services/factories.d.ts +10 -31
- package/lib/services/index.d.ts +2 -1
- package/lib/services/jsonapi/jsonapi-preferences.service.d.ts +1 -1
- package/lib/services/jsonapi/jsonapi.service.d.ts +7 -5
- package/lib/services/ontimize/index.d.ts +0 -1
- package/lib/services/ontimize/ontimize-ee.service.d.ts +0 -1
- package/lib/services/{query-arguments/base-query-argument.adapter.d.ts → request-adapter/base-request-argument.adapter.d.ts} +2 -1
- package/lib/services/{query-arguments/base-query-argument.interface.d.ts → request-adapter/base-request-argument.interface.d.ts} +1 -1
- package/lib/services/request-adapter/index.d.ts +4 -0
- package/lib/services/request-adapter/jsonapi-request-arguments.adapter.d.ts +13 -0
- package/lib/services/request-adapter/ontimize-request-arguments.adapter.d.ts +8 -0
- package/lib/services/state/o-filter-builder-component-state.service.d.ts +1 -1
- package/lib/services/state/o-table-component-state.class.d.ts +3 -0
- package/lib/services/translate/o-translate.service.d.ts +1 -0
- package/lib/types/config.type.d.ts +2 -2
- package/lib/types/form-layout-detail-component-data.type.d.ts +1 -1
- package/lib/types/index.d.ts +0 -1
- package/lib/types/service-configuration.type.d.ts +12 -2
- package/lib/types/table/index.d.ts +1 -0
- package/lib/types/table/o-column-value-filter.type.d.ts +3 -0
- package/lib/types/table/o-table-expandable-row-state.type.d.ts +5 -0
- package/lib/util/codes.d.ts +3 -0
- package/lib/util/factory.util.d.ts +10 -0
- package/lib/util/index.d.ts +2 -0
- package/lib/util/injection-token.utils.d.ts +2 -0
- package/lib/util/preference-mapping-util.d.ts +22 -3
- package/lib/util/util.d.ts +1 -3
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/esm2020/lib/services/ontimize/o-preference-query-argument.adapter.mjs +0 -17
- package/esm2020/lib/services/query-arguments/base-query-argument.adapter.mjs +0 -9
- package/esm2020/lib/services/query-arguments/base-query-argument.interface.mjs +0 -2
- package/esm2020/lib/services/query-arguments/index.mjs +0 -5
- package/esm2020/lib/services/query-arguments/jsonapi-query-arguments.adapter.mjs +0 -63
- package/esm2020/lib/services/query-arguments/ontimize-query-arguments.adapter.mjs +0 -19
- package/esm2020/lib/types/ontimize-service-config.type.mjs +0 -2
- package/lib/services/ontimize/o-preference-query-argument.adapter.d.ts +0 -7
- package/lib/services/query-arguments/index.d.ts +0 -4
- package/lib/services/query-arguments/jsonapi-query-arguments.adapter.d.ts +0 -12
- package/lib/services/query-arguments/ontimize-query-arguments.adapter.d.ts +0 -8
- package/lib/types/ontimize-service-config.type.d.ts +0 -5
|
@@ -22,4 +22,4 @@ OFilterBuilderComponentStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVer
|
|
|
22
22
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OFilterBuilderComponentStateService, decorators: [{
|
|
23
23
|
type: Injectable
|
|
24
24
|
}] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1maWx0ZXItYnVpbGRlci1jb21wb25lbnQtc3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy9zdGF0ZS9vLWZpbHRlci1idWlsZGVyLWNvbXBvbmVudC1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBSzdGLE1BQU0sT0FBTyxtQ0FBb0MsU0FBUSw2QkFBb0Y7SUFFM0ksVUFBVSxDQUFDLFNBQTZCO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxpQ0FBaUMsRUFBRSxDQUFDO1FBQ3JELEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUF3QztRQUN0RCxLQUFLLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBNEI7UUFDdEMsSUFBSSxTQUFTLEdBQXlCLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3RixNQUFNLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQzNELFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLFlBQVksQ0FBQztRQUNsRCxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDOztnSUFoQlUsbUNBQW1DO29JQUFuQyxtQ0FBbUM7MkZBQW5DLG1DQUFtQztrQkFEL0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9vLWNvbXBvbmVudC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVDbGFzcyB9IGZyb20gJy4vby1maWx0ZXItYnVpbGRlci1jb21wb25lbnQtc3RhdGUuY2xhc3MnO1xuaW1wb3J0IHsgT0ZpbHRlckJ1aWxkZXJCYXNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9maWx0ZXItYnVpbGRlci9vLWZpbHRlci1idWlsZGVyLWJhc2UuY2xhc3MnO1xuaW1wb3J0IHsgT0ZpbHRlckJ1aWxkZXJTdGF0dXMgfSBmcm9tICcuLi8uLi90eXBlcy9vLWZpbHRlci1idWlsZGVyLXZhbHVlcy50eXBlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVTZXJ2aWNlIGV4dGVuZHMgQWJzdHJhY3RDb21wb25lbnRTdGF0ZVNlcnZpY2U8T0ZpbHRlckJ1aWxkZXJDb21wb25lbnRTdGF0ZUNsYXNzLCBPRmlsdGVyQnVpbGRlckJhc2U+IHtcblxuICBpbml0aWFsaXplKGNvbXBvbmVudDogT0ZpbHRlckJ1aWxkZXJCYXNlKSB7XG4gICAgdGhpcy5zdGF0ZSA9IG5ldyBPRmlsdGVyQnVpbGRlckNvbXBvbmVudFN0YXRlQ2xhc3MoKTtcbiAgICBzdXBlci5pbml0aWFsaXplKGNvbXBvbmVudCk7XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoc3RhdGU6IE9GaWx0ZXJCdWlsZGVyQ29tcG9uZW50U3RhdGVDbGFzcykge1xuICAgIHN1cGVyLmluaXRpYWxpemVTdGF0ZShzdGF0ZSk7XG4gIH1cblxuICBzdG9yZUZpbHRlcihmaWx0ZXI6IE9GaWx0ZXJCdWlsZGVyU3RhdHVzKSB7XG4gICAgbGV0IG5ld0ZpbHRlcjogT0ZpbHRlckJ1aWxkZXJTdGF0dXMgPSB7IG5hbWU6IGZpbHRlci5uYW1lLCBkZXNjcmlwdGlvbjogZmlsdGVyLmRlc2NyaXB0aW9uIH07XG4gICAgY29uc3Qgc3RvcmVkRmlsdGVyID0gWy4uLnRoaXMuY29tcG9uZW50LmdldEZpbHRlclZhbHVlcygpXTtcbiAgICBuZXdGaWx0ZXJbJ2ZpbHRlci1idWlsZGVyLXZhbHVlcyddID0gc3RvcmVkRmlsdGVyO1xuICAgIHRoaXMuc3RhdGUuYWRkU3RvcmVkRmlsdGVyKG5ld0ZpbHRlcik7XG4gIH1cblxufVxuXG4iXX0=
|
|
@@ -74,6 +74,12 @@ export class OTableComponentStateClass extends DefaultServiceComponentStateClass
|
|
|
74
74
|
get storedFilters() {
|
|
75
75
|
return this['user-stored-filters'] || [];
|
|
76
76
|
}
|
|
77
|
+
set expandableRows(value) {
|
|
78
|
+
this['expandable-rows'] = value;
|
|
79
|
+
}
|
|
80
|
+
get expandableRows() {
|
|
81
|
+
return this['expandable-rows'];
|
|
82
|
+
}
|
|
77
83
|
addStoredFilter(filter) {
|
|
78
84
|
if (!Util.isDefined(this['user-stored-filters'])) {
|
|
79
85
|
this['user-stored-filters'] = [];
|
|
@@ -172,4 +178,4 @@ export class OTableComponentStateClass extends DefaultServiceComponentStateClass
|
|
|
172
178
|
});
|
|
173
179
|
}
|
|
174
180
|
}
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jb21wb25lbnQtc3RhdGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvc2VydmljZXMvc3RhdGUvby10YWJsZS1jb21wb25lbnQtc3RhdGUuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJOUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3ZDLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxpQ0FBaUM7SUFBaEY7O1FBOEJZLDRCQUFzQixHQUEwQixFQUFFLENBQUM7SUFzTS9ELENBQUM7SUFwTUMsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsSUFBVyxtQkFBbUIsQ0FBQyxLQUE2QjtRQUMxRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksbUJBQW1CLENBQUMsS0FBYztRQUNwQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLGdCQUFnQixDQUFDLEtBQWE7UUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksY0FBYyxDQUFDLEtB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Q29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE9Db2x1bW4gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3RhYmxlL2NvbHVtbi9vLWNvbHVtbi5jbGFzcyc7XG5pbXBvcnQge1xuICBPRmlsdGVyQ29sdW1uXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvdGFibGUvZXh0ZW5zaW9ucy9oZWFkZXIvdGFibGUtY29sdW1ucy1maWx0ZXIvY29sdW1ucy9vLXRhYmxlLWNvbHVtbnMtZmlsdGVyLWNvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgT0NvbHVtbkRpc3BsYXkgfSBmcm9tICcuLi8uLi90eXBlcy90YWJsZS9vLWNvbHVtbi1kaXNwbGF5LnR5cGUnO1xuaW1wb3J0IHsgT0NvbHVtblNlYXJjaGFibGUgfSBmcm9tICcuLi8uLi90eXBlcy90YWJsZS9vLWNvbHVtbi1zZWFyY2hhYmxlLnR5cGUnO1xuaW1wb3J0IHsgT0NvbHVtblZhbHVlRmlsdGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby1jb2x1bW4tdmFsdWUtZmlsdGVyLnR5cGUnO1xuaW1wb3J0IHsgRGVmYXVsdFNlcnZpY2VDb21wb25lbnRTdGF0ZUNsYXNzIH0gZnJvbSAnLi9vLWNvbXBvbmVudC1zdGF0ZS5jbGFzcyc7XG5pbXBvcnQgeyBPVGFibGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby10YWJsZS1jb25maWd1cmF0aW9uLnR5cGUnO1xuaW1wb3J0IHsgT1RhYmxlRmlsdGVyc1N0YXR1cywgT1RhYmxlU3RvcmVkRmlsdGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby10YWJsZS1maWx0ZXItc3RhdHVzLnR5cGUnO1xuaW1wb3J0IHsgT0ZpbHRlckJ1aWxkZXJWYWx1ZXMgfSBmcm9tICcuLi8uLi90eXBlcy9vLWZpbHRlci1idWlsZGVyLXZhbHVlcy50eXBlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT0dyb3VwZWRDb2x1bW5UeXBlcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIE9UYWJsZUNvbXBvbmVudFN0YXRlQ2xhc3MgZXh0ZW5kcyBEZWZhdWx0U2VydmljZUNvbXBvbmVudFN0YXRlQ2xhc3Mge1xuICAvLyBzb3J0XG4gIHByb3RlY3RlZCAnc29ydC1jb2x1bW5zJzogc3RyaW5nO1xuICAvLyBjb2x1bW5zLWRpc3BsYXlcbiAgcHJvdGVjdGVkICdvQ29sdW1ucy1kaXNwbGF5JzogT0NvbHVtbkRpc3BsYXlbXTtcbiAgcHJvdGVjdGVkICdzZWxlY3QtY29sdW1uLXZpc2libGUnOiBib29sZWFuO1xuICAvLyBxdWljay1maWx0ZXJcbiAgcHJvdGVjdGVkICdmaWx0ZXInOiBzdHJpbmc7XG4gIHByb3RlY3RlZCAnb0NvbHVtbnMnOiBPQ29sdW1uU2VhcmNoYWJsZVtdO1xuICAvLyBjb2x1bW5zLWZpbHRlclxuICBwcm90ZWN0ZWQgJ2NvbHVtbi12YWx1ZS1maWx0ZXJzJzogT0NvbHVtblZhbHVlRmlsdGVyW107XG4gIC8vIHBhZ2VcbiAgJ2N1cnJlbnRQYWdlJzogbnVtYmVyO1xuICAvLyBzZWxlY3Rpb25cbiAgJ3NlbGVjdGlvbic6IGFueVtdO1xuICAvLyBpbml0aWFsLWNvbmZpZ3VyYXRpb25cbiAgcHJvdGVjdGVkICdpbml0aWFsLWNvbmZpZ3VyYXRpb24nOiBPVGFibGVDb21wb25lbnRTdGF0ZUNsYXNzO1xuICAvLyBmaWx0ZXItY29sdW1uLWFjdGl2ZVxuICBwcm90ZWN0ZWQgJ2ZpbHRlci1jb2x1bW4tYWN0aXZlJzogYm9vbGVhbjtcbiAgLy8gZmlsdGVyLWNvbHVtbnNcbiAgcHJvdGVjdGVkICdmaWx0ZXItY29sdW1ucyc6IE9GaWx0ZXJDb2x1bW5bXTtcbiAgcHJvdGVjdGVkICdmaWx0ZXItY29sdW1uLWFjdGl2ZS1ieS1kZWZhdWx0JzogYm9vbGVhbjtcbiAgLy8gZ3JvdXBlZC1jb2x1bW5zXG4gIHByb3RlY3RlZCAnZ3JvdXBlZC1jb2x1bW5zJzogc3RyaW5nW107XG4gIC8vIHN0b3JlZCBmaWx0ZXJzIGFuZCBjb25maWd1cmF0aW9uc1xuICBwcm90ZWN0ZWQgJ3VzZXItc3RvcmVkLWZpbHRlcnMnOiBPVGFibGVGaWx0ZXJzU3RhdHVzW107XG4gIHByb3RlY3RlZCAndXNlci1zdG9yZWQtY29uZmlndXJhdGlvbnMnOiBPVGFibGVDb25maWd1cmF0aW9uW107XG4gIC8vIHN0b3JlZCBmaWx0ZXJzIGJ1aWxkZXIgdmFsdWVzXG4gIHByb3RlY3RlZCAnZmlsdGVyLWJ1aWxkZXItdmFsdWVzJzogT0ZpbHRlckJ1aWxkZXJWYWx1ZXNbXTtcblxuICBwcm90ZWN0ZWQgJ2dyb3VwZWQtY29sdW1uLXR5cGVzJzogT0dyb3VwZWRDb2x1bW5UeXBlc1tdID0gW107XG5cbiAgcHVibGljIGdldCBmaWx0ZXJCdWlsZGVyVmFsdWVzKCk6IE9GaWx0ZXJCdWlsZGVyVmFsdWVzW10ge1xuICAgIHJldHVybiB0aGlzWydmaWx0ZXItYnVpbGRlci12YWx1ZXMnXTtcbiAgfVxuICBwdWJsaWMgc2V0IGZpbHRlckJ1aWxkZXJWYWx1ZXModmFsdWU6IE9GaWx0ZXJCdWlsZGVyVmFsdWVzW10pIHtcbiAgICB0aGlzWydmaWx0ZXItYnVpbGRlci12YWx1ZXMnXSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHNlbGVjdENvbHVtblZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXNbJ3NlbGVjdC1jb2x1bW4tdmlzaWJsZSddO1xuICB9XG5cbiAgc2V0IHNlbGVjdENvbHVtblZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzWydzZWxlY3QtY29sdW1uLXZpc2libGUnXSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHF1aWNrRmlsdGVyVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpc1snZmlsdGVyJ107XG4gIH1cblxuICBzZXQgcXVpY2tGaWx0ZXJWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpc1snZmlsdGVyJ10gPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBjb2x1bW5zRGlzcGxheSgpOiBPQ29sdW1uRGlzcGxheVtdIHtcbiAgICByZXR1cm4gdGhpc1snb0NvbHVtbnMtZGlzcGxheSddO1xuICB9XG5cbiAgc2V0IGNvbHVtbnNEaXNwbGF5KHZhbHVlOiBPQ29sdW1uRGlzcGxheVtdKSB7XG4gICAgdGhpc1snb0NvbHVtbnMtZGlzcGxheSddID0gdmFsdWU7XG4gIH1cblxuICBnZXRDb2x1bW5EaXNwbGF5KG9Db2w6IE9Db2x1bW4pOiBPQ29sdW1uRGlzcGxheSB7XG4gICAgcmV0dXJuICh0aGlzLmNvbHVtbnNEaXNwbGF5IHx8IFtdKS5maW5kKGNvbCA9PiBjb2wuYXR0ciA9PT0gb0NvbC5hdHRyKTtcbiAgfVxuXG4gIGdldCBpbml0aWFsQ29uZmlndXJhdGlvbigpOiBPVGFibGVDb21wb25lbnRTdGF0ZUNsYXNzIHtcbiAgICByZXR1cm4gdGhpc1snaW5pdGlhbC1jb25maWd1cmF0aW9uJ107XG4gIH1cblxuICBzZXQgaW5pdGlhbENvbmZpZ3VyYXRpb24odmFsdWU6IE9UYWJsZUNvbXBvbmVudFN0YXRlQ2xhc3MpIHtcbiAgICB0aGlzWydpbml0aWFsLWNvbmZpZ3VyYXRpb24nXSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHNvcnRDb2x1bW5zKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXNbJ3NvcnQtY29sdW1ucyddO1xuICB9XG5cbiAgc2V0IHNvcnRDb2x1bW5zKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzWydzb3J0LWNvbHVtbnMnXSA9IHZhbHVlO1xuICB9XG4gIGdldCBncm91cGVkQ29sdW1uVHlwZXMoKTogT0dyb3VwZWRDb2x1bW5UeXBlc1tdIHtcbiAgICByZXR1cm4gdGhpc1snZ3JvdXBlZC1jb2x1bW4tdHlwZXMnXTtcbiAgfVxuICBzZXQgZ3JvdXBlZENvbHVtblR5cGVzKHZhbHVlOiBPR3JvdXBlZENvbHVtblR5cGVzW10pIHtcbiAgICB0aGlzWydncm91cGVkLWNvbHVtbi10eXBlcyddID0gdmFsdWU7XG4gIH1cbiAgZ2V0IGZpbHRlckNvbHVtbnMoKTogT0ZpbHRlckNvbHVtbltdIHtcbiAgICByZXR1cm4gdGhpc1snZmlsdGVyLWNvbHVtbnMnXTtcbiAgfVxuXG4gIHNldCBmaWx0ZXJDb2x1bW5zKHZhbHVlOiBPRmlsdGVyQ29sdW1uW10pIHtcbiAgICB0aGlzWydmaWx0ZXItY29sdW1ucyddID0gdmFsdWU7XG4gIH1cblxuICBnZXQgZmlsdGVyQ29sdW1uQWN0aXZlQnlEZWZhdWx0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzWydmaWx0ZXItY29sdW1uLWFjdGl2ZS1ieS1kZWZhdWx0J107XG4gIH1cblxuICBnZXQgZ3JvdXBlZENvbHVtbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzWydncm91cGVkLWNvbHVtbnMnXTtcbiAgfVxuXG4gIHNldCBncm91cGVkQ29sdW1ucyh2YWx1ZTogc3RyaW5nW10pIHtcbiAgICB0aGlzWydncm91cGVkLWNvbHVtbnMnXSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGNvbHVtblZhbHVlRmlsdGVycygpOiBPQ29sdW1uVmFsdWVGaWx0ZXJbXSB7XG4gICAgcmV0dXJuIHRoaXNbJ2NvbHVtbi12YWx1ZS1maWx0ZXJzJ10gfHwgW107XG4gIH1cblxuICBzZXQgY29sdW1uVmFsdWVGaWx0ZXJzKHZhbHVlOiBPQ29sdW1uVmFsdWVGaWx0ZXJbXSkge1xuICAgIHRoaXNbJ2NvbHVtbi12YWx1ZS1maWx0ZXJzJ10gPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBzdG9yZWRGaWx0ZXJzKCk6IE9UYWJsZUZpbHRlcnNTdGF0dXNbXSB7XG4gICAgcmV0dXJuIHRoaXNbJ3VzZXItc3RvcmVkLWZpbHRlcnMnXSB8fCBbXTtcbiAgfVxuXG4gIGFkZFN0b3JlZEZpbHRlcihmaWx0ZXI6IE9UYWJsZUZpbHRlcnNTdGF0dXMpIHtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXNbJ3VzZXItc3RvcmVkLWZpbHRlcnMnXSkpIHtcbiAgICAgIHRoaXNbJ3VzZXItc3RvcmVkLWZpbHRlcnMnXSA9IFtdO1xuICAgIH1cbiAgICB0aGlzLnN0b3JlZEZpbHRlcnMucHVzaChmaWx0ZXIpO1xuICB9XG5cbiAgZGVsZXRlU3RvcmVkRmlsdGVyKGZpbHRlck5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zdG9yZWRGaWx0ZXJzLmZpbmRJbmRleCgoaXRlbTogT1RhYmxlRmlsdGVyc1N0YXR1cykgPT4gaXRlbS5uYW1lID09PSBmaWx0ZXJOYW1lKTtcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdGhpcy5zdG9yZWRGaWx0ZXJzLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U3RvcmVkRmlsdGVyKGZpbHRlck5hbWU6IHN0cmluZyk6IE9UYWJsZVN0b3JlZEZpbHRlciB7XG4gICAgbGV0IHJlc3VsdDogT1RhYmxlU3RvcmVkRmlsdGVyO1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuc3RvcmVkRmlsdGVycy5maW5kKChpdGVtOiBPVGFibGVGaWx0ZXJzU3RhdHVzKSA9PiBpdGVtLm5hbWUgPT09IGZpbHRlck5hbWUpO1xuICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgIHJlc3VsdCA9IGZpbHRlclsnc3RvcmVkLWZpbHRlciddO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgYXBwbHlGaWx0ZXIoZmlsdGVyTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5nZXRTdG9yZWRGaWx0ZXIoZmlsdGVyTmFtZSk7XG4gICAgaWYgKGZpbHRlcikge1xuICAgICAgdGhpcy5jb2x1bW5WYWx1ZUZpbHRlcnMgPSBmaWx0ZXJbJ2NvbHVtbi12YWx1ZS1maWx0ZXJzJ107XG4gICAgICB0aGlzLnF1aWNrRmlsdGVyVmFsdWUgPSBmaWx0ZXJbJ2ZpbHRlciddO1xuICAgICAgdGhpcy5maWx0ZXJDYXNlU2Vuc2l0aXZlID0gZmlsdGVyWydmaWx0ZXItY2FzZS1zZW5zaXRpdmUnXTtcbiAgICAgIHRoaXMuZmlsdGVyQnVpbGRlclZhbHVlcyA9IGZpbHRlclsnZmlsdGVyLWJ1aWxkZXItdmFsdWVzJ107XG4gICAgICB0aGlzLm9Db2x1bW5zID0gZmlsdGVyWydvQ29sdW1ucyddO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzdG9yZWRDb25maWd1cmF0aW9ucygpOiBPVGFibGVDb25maWd1cmF0aW9uW10ge1xuICAgIHJldHVybiB0aGlzWyd1c2VyLXN0b3JlZC1jb25maWd1cmF0aW9ucyddIHx8IFtdO1xuICB9XG5cbiAgYWRkU3RvcmVkQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uOiBPVGFibGVDb25maWd1cmF0aW9uKSB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZCh0aGlzWyd1c2VyLXN0b3JlZC1jb25maWd1cmF0aW9ucyddKSkge1xuICAgICAgdGhpc1sndXNlci1zdG9yZWQtY29uZmlndXJhdGlvbnMnXSA9IFtdO1xuICAgIH1cbiAgICB0aGlzLnN0b3JlZENvbmZpZ3VyYXRpb25zLnB1c2goY29uZmlndXJhdGlvbik7XG4gIH1cblxuICBkZWxldGVTdG9yZWRDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb25OYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc3RvcmVkQ29uZmlndXJhdGlvbnMuZmluZEluZGV4KChpdGVtOiBPVGFibGVDb25maWd1cmF0aW9uKSA9PiBpdGVtLm5hbWUgPT09IGNvbmZpZ3VyYXRpb25OYW1lKTtcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdGhpcy5zdG9yZWRDb25maWd1cmF0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgfVxuXG4gIGdldFN0b3JlZENvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbk5hbWU6IHN0cmluZyk6IE9UYWJsZUNvbmZpZ3VyYXRpb24ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlZENvbmZpZ3VyYXRpb25zLmZpbmQoKGl0ZW06IE9UYWJsZUNvbmZpZ3VyYXRpb24pID0+IGl0ZW0ubmFtZSA9PT0gY29uZmlndXJhdGlvbk5hbWUpO1xuICB9XG5cbiAgYXBwbHlDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb25OYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjb25maWd1cmF0aW9uID0gdGhpcy5nZXRTdG9yZWRDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb25OYW1lKTtcbiAgICBpZiAoY29uZmlndXJhdGlvbikge1xuICAgICAgY29uc3QgcHJvcGVydGllcyA9IGNvbmZpZ3VyYXRpb25bJ3N0b3JlZC1wcm9wZXJ0aWVzJ10gfHwgW107XG4gICAgICBjb25zdCBjb25mOiBPVGFibGVDb21wb25lbnRTdGF0ZUNsYXNzID0gY29uZmlndXJhdGlvblsnc3RvcmVkLWNvbmZpZ3VyYXRpb24nXTtcbiAgICAgIHRoaXMuY29weVByb3BlcnRpZXNGcm9tQ29uZmlndXJhdGlvbihwcm9wZXJ0aWVzLCBjb25mKTtcbiAgICB9XG4gIH1cblxuICByZXNldChwYWdlYWJsZTogYm9vbGVhbikge1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgICd1c2VyLXN0b3JlZC1maWx0ZXJzJzogdGhpcy5zdG9yZWRGaWx0ZXJzLFxuICAgICAgJ3VzZXItc3RvcmVkLWNvbmZpZ3VyYXRpb25zJzogdGhpcy5zdG9yZWRDb25maWd1cmF0aW9uc1xuICAgIH07XG4gICAgaWYgKHBhZ2VhYmxlKSB7XG4gICAgICByZXN1bHRbJ3RvdGFsUXVlcnlSZWNvcmRzTnVtYmVyJ10gPSB0aGlzLnRvdGFsUXVlcnlSZWNvcmRzTnVtYmVyO1xuICAgIH1cbiAgICByZXN1bHRbJ2N1cnJlbnRQYWdlJ10gPSAwO1xuXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCB7fSk7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCByZXN1bHQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvcHlQcm9wZXJ0aWVzRnJvbUNvbmZpZ3VyYXRpb24ocHJvcGVydGllczogc3RyaW5nW10sIGNvbmZpZ3VyYXRpb246IE9UYWJsZUNvbXBvbmVudFN0YXRlQ2xhc3MpIHtcbiAgICBwcm9wZXJ0aWVzLmZvckVhY2gocHJvcGVydHkgPT4ge1xuICAgICAgc3dpdGNoIChwcm9wZXJ0eSkge1xuICAgICAgICBjYXNlICdzb3J0LWNvbHVtbnMnOlxuICAgICAgICAgIHRoaXMuc29ydENvbHVtbnMgPSBjb25maWd1cmF0aW9uWydzb3J0LWNvbHVtbnMnXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnb0NvbHVtbnMtZGlzcGxheSc6XG4gICAgICAgICAgdGhpcy5jb2x1bW5zRGlzcGxheSA9IGNvbmZpZ3VyYXRpb25bJ29Db2x1bW5zLWRpc3BsYXknXTtcbiAgICAgICAgICB0aGlzLnNlbGVjdENvbHVtblZpc2libGUgPSBjb25maWd1cmF0aW9uWydzZWxlY3QtY29sdW1uLXZpc2libGUnXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncXVpY2stZmlsdGVyJzpcbiAgICAgICAgY2FzZSAnY29sdW1ucy1maWx0ZXInOlxuICAgICAgICAgIHRoaXMuY29sdW1uVmFsdWVGaWx0ZXJzID0gY29uZmlndXJhdGlvblsnY29sdW1uLXZhbHVlLWZpbHRlcnMnXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZ3JvdXBlZC1jb2x1bW5zJzpcbiAgICAgICAgICB0aGlzLmdyb3VwZWRDb2x1bW5zID0gY29uZmlndXJhdGlvblsnZ3JvdXBlZC1jb2x1bW5zJ107XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3BhZ2UnOlxuICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSBjb25maWd1cmF0aW9uWydjdXJyZW50UGFnZSddO1xuICAgICAgICAgIHRoaXMudG90YWxRdWVyeVJlY29yZHNOdW1iZXIgPSBjb25maWd1cmF0aW9uWyd0b3RhbFF1ZXJ5UmVjb3Jkc051bWJlciddO1xuICAgICAgICAgIHRoaXMucXVlcnlSZWNvcmRPZmZzZXQgPSBjb25maWd1cmF0aW9uWydxdWVyeVJlY29yZE9mZnNldCddO1xuICAgICAgICAgIHRoaXMucXVlcnlSb3dzID0gY29uZmlndXJhdGlvblsncXVlcnktcm93cyddO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdmaWx0ZXItYnVpbGRlcic6XG4gICAgICAgICAgdGhpcy5maWx0ZXJCdWlsZGVyVmFsdWVzID0gY29uZmlndXJhdGlvblsnZmlsdGVyLWJ1aWxkZXInXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jb21wb25lbnQtc3RhdGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvc2VydmljZXMvc3RhdGUvby10YWJsZS1jb21wb25lbnQtc3RhdGUuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJOUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSXZDLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxpQ0FBaUM7SUFBaEY7O1FBOEJZLDRCQUFzQixHQUEwQixFQUFFLENBQUM7SUE4TS9ELENBQUM7SUE1TUMsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsSUFBVyxtQkFBbUIsQ0FBQyxLQUE2QjtRQUMxRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksbUJBQW1CLENBQUMsS0FBYztRQUNwQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLGdCQUFnQixDQUFDLEtBQWE7UUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksY0FBYyxDQUFDLEtBQXVCO1FBQ3hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBYTtRQUM1QixPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxvQkFBb0IsQ0FBQyxLQUFnQztRQUN2RCxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxLQUFhO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELElBQUksa0JBQWtCLENBQUMsS0FBNEI7UUFDakQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLGFBQWEsQ0FBQyxLQUFzQjtRQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksMkJBQTJCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLGNBQWMsQ0FBQyxLQUFlO1FBQ2hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksa0JBQWtCLENBQUMsS0FBMkI7UUFDaEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxjQUFjLENBQUMsS0FBaUM7UUFDbEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQTJCO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUU7WUFDaEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQ2xDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGtCQUFrQixDQUFDLFVBQWtCO1FBQ25DLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBeUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQztRQUNwRyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLFVBQWtCO1FBQ2hDLElBQUksTUFBMEIsQ0FBQztRQUMvQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQXlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUM7UUFDaEcsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxVQUFrQjtRQUM1QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQ3pELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRCxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsYUFBa0M7UUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUMsRUFBRTtZQUN2RCxJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDekM7UUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxpQkFBeUI7UUFDakQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQXlCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssaUJBQWlCLENBQUMsQ0FBQztRQUNsSCxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM1QztJQUNILENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxpQkFBeUI7UUFDOUMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBeUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxpQkFBeUI7UUFDMUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckUsSUFBSSxhQUFhLEVBQUU7WUFDakIsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQzVELE1BQU0sSUFBSSxHQUE4QixhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsK0JBQStCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFpQjtRQUNyQixNQUFNLE1BQU0sR0FBRztZQUNiLHFCQUFxQixFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ3pDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxvQkFBb0I7U0FDeEQsQ0FBQztRQUNGLElBQUksUUFBUSxFQUFFO1lBQ1osTUFBTSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1NBQ2xFO1FBQ0QsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUUxQixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRVMsK0JBQStCLENBQUMsVUFBb0IsRUFBRSxhQUF3QztRQUN0RyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzVCLFFBQVEsUUFBUSxFQUFFO2dCQUNoQixLQUFLLGNBQWM7b0JBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUNqRCxNQUFNO2dCQUNSLEtBQUssa0JBQWtCO29CQUNyQixJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO29CQUN4RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsYUFBYSxDQUFDLHVCQUF1QixDQUFDLENBQUM7b0JBQ2xFLE1BQU07Z0JBQ1IsS0FBSyxjQUFjLENBQUM7Z0JBQ3BCLEtBQUssZ0JBQWdCO29CQUNuQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsYUFBYSxDQUFDLHNCQUFzQixDQUFDLENBQUM7b0JBQ2hFLE1BQU07Z0JBQ1IsS0FBSyxpQkFBaUI7b0JBQ3BCLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7b0JBQ3ZELE1BQU07Z0JBQ1IsS0FBSyxNQUFNO29CQUNULElBQUksQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUNoRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsYUFBYSxDQUFDLHlCQUF5QixDQUFDLENBQUM7b0JBQ3hFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztvQkFDNUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzdDLE1BQU07Z0JBQ1IsS0FBSyxnQkFBZ0I7b0JBQ25CLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztvQkFDM0QsTUFBTTthQUNUO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE9Db2x1bW4gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3RhYmxlL2NvbHVtbi9vLWNvbHVtbi5jbGFzcyc7XG5pbXBvcnQge1xuICBPRmlsdGVyQ29sdW1uXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvdGFibGUvZXh0ZW5zaW9ucy9oZWFkZXIvdGFibGUtY29sdW1ucy1maWx0ZXIvY29sdW1ucy9vLXRhYmxlLWNvbHVtbnMtZmlsdGVyLWNvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgT0NvbHVtbkRpc3BsYXkgfSBmcm9tICcuLi8uLi90eXBlcy90YWJsZS9vLWNvbHVtbi1kaXNwbGF5LnR5cGUnO1xuaW1wb3J0IHsgT0NvbHVtblNlYXJjaGFibGUgfSBmcm9tICcuLi8uLi90eXBlcy90YWJsZS9vLWNvbHVtbi1zZWFyY2hhYmxlLnR5cGUnO1xuaW1wb3J0IHsgT0NvbHVtblZhbHVlRmlsdGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby1jb2x1bW4tdmFsdWUtZmlsdGVyLnR5cGUnO1xuaW1wb3J0IHsgRGVmYXVsdFNlcnZpY2VDb21wb25lbnRTdGF0ZUNsYXNzIH0gZnJvbSAnLi9vLWNvbXBvbmVudC1zdGF0ZS5jbGFzcyc7XG5pbXBvcnQgeyBPVGFibGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby10YWJsZS1jb25maWd1cmF0aW9uLnR5cGUnO1xuaW1wb3J0IHsgT1RhYmxlRmlsdGVyc1N0YXR1cywgT1RhYmxlU3RvcmVkRmlsdGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby10YWJsZS1maWx0ZXItc3RhdHVzLnR5cGUnO1xuaW1wb3J0IHsgT0ZpbHRlckJ1aWxkZXJWYWx1ZXMgfSBmcm9tICcuLi8uLi90eXBlcy9vLWZpbHRlci1idWlsZGVyLXZhbHVlcy50eXBlJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgT0dyb3VwZWRDb2x1bW5UeXBlcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IE9UYWJsZUV4cGFuZGFibGVSb3dTdGF0ZSB9IGZyb20gJy4uLy4uL3R5cGVzL3RhYmxlL28tdGFibGUtZXhwYW5kYWJsZS1yb3ctc3RhdGUudHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBPVGFibGVDb21wb25lbnRTdGF0ZUNsYXNzIGV4dGVuZHMgRGVmYXVsdFNlcnZpY2VDb21wb25lbnRTdGF0ZUNsYXNzIHtcbiAgLy8gc29ydFxuICBwcm90ZWN0ZWQgJ3NvcnQtY29sdW1ucyc6IHN0cmluZztcbiAgLy8gY29sdW1ucy1kaXNwbGF5XG4gIHByb3RlY3RlZCAnb0NvbHVtbnMtZGlzcGxheSc6IE9Db2x1bW5EaXNwbGF5W107XG4gIHByb3RlY3RlZCAnc2VsZWN0LWNvbHVtbi12aXNpYmxlJzogYm9vbGVhbjtcbiAgLy8gcXVpY2stZmlsdGVyXG4gIHByb3RlY3RlZCAnZmlsdGVyJzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgJ29Db2x1bW5zJzogT0NvbHVtblNlYXJjaGFibGVbXTtcbiAgLy8gY29sdW1ucy1maWx0ZXJcbiAgcHJvdGVjdGVkICdjb2x1bW4tdmFsdWUtZmlsdGVycyc6IE9Db2x1bW5WYWx1ZUZpbHRlcltdO1xuICAvLyBwYWdlXG4gICdjdXJyZW50UGFnZSc6IG51bWJlcjtcbiAgLy8gc2VsZWN0aW9uXG4gICdzZWxlY3Rpb24nOiBhbnlbXTtcbiAgLy8gaW5pdGlhbC1jb25maWd1cmF0aW9uXG4gIHByb3RlY3RlZCAnaW5pdGlhbC1jb25maWd1cmF0aW9uJzogT1RhYmxlQ29tcG9uZW50U3RhdGVDbGFzcztcbiAgLy8gZmlsdGVyLWNvbHVtbi1hY3RpdmVcbiAgcHJvdGVjdGVkICdmaWx0ZXItY29sdW1uLWFjdGl2ZSc6IGJvb2xlYW47XG4gIC8vIGZpbHRlci1jb2x1bW5zXG4gIHByb3RlY3RlZCAnZmlsdGVyLWNvbHVtbnMnOiBPRmlsdGVyQ29sdW1uW107XG4gIHByb3RlY3RlZCAnZmlsdGVyLWNvbHVtbi1hY3RpdmUtYnktZGVmYXVsdCc6IGJvb2xlYW47XG4gIC8vIGdyb3VwZWQtY29sdW1uc1xuICBwcm90ZWN0ZWQgJ2dyb3VwZWQtY29sdW1ucyc6IHN0cmluZ1tdO1xuICAvLyBzdG9yZWQgZmlsdGVycyBhbmQgY29uZmlndXJhdGlvbnNcbiAgcHJvdGVjdGVkICd1c2VyLXN0b3JlZC1maWx0ZXJzJzogT1RhYmxlRmlsdGVyc1N0YXR1c1tdO1xuICBwcm90ZWN0ZWQgJ3VzZXItc3RvcmVkLWNvbmZpZ3VyYXRpb25zJzogT1RhYmxlQ29uZmlndXJhdGlvbltdO1xuICAvLyBzdG9yZWQgZmlsdGVycyBidWlsZGVyIHZhbHVlc1xuICBwcm90ZWN0ZWQgJ2ZpbHRlci1idWlsZGVyLXZhbHVlcyc6IE9GaWx0ZXJCdWlsZGVyVmFsdWVzW107XG5cbiAgcHJvdGVjdGVkICdncm91cGVkLWNvbHVtbi10eXBlcyc6IE9Hcm91cGVkQ29sdW1uVHlwZXNbXSA9IFtdO1xuXG4gIHB1YmxpYyBnZXQgZmlsdGVyQnVpbGRlclZhbHVlcygpOiBPRmlsdGVyQnVpbGRlclZhbHVlc1tdIHtcbiAgICByZXR1cm4gdGhpc1snZmlsdGVyLWJ1aWxkZXItdmFsdWVzJ107XG4gIH1cbiAgcHVibGljIHNldCBmaWx0ZXJCdWlsZGVyVmFsdWVzKHZhbHVlOiBPRmlsdGVyQnVpbGRlclZhbHVlc1tdKSB7XG4gICAgdGhpc1snZmlsdGVyLWJ1aWxkZXItdmFsdWVzJ10gPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBzZWxlY3RDb2x1bW5WaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzWydzZWxlY3QtY29sdW1uLXZpc2libGUnXTtcbiAgfVxuXG4gIHNldCBzZWxlY3RDb2x1bW5WaXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpc1snc2VsZWN0LWNvbHVtbi12aXNpYmxlJ10gPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBxdWlja0ZpbHRlclZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXNbJ2ZpbHRlciddO1xuICB9XG5cbiAgc2V0IHF1aWNrRmlsdGVyVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXNbJ2ZpbHRlciddID0gdmFsdWU7XG4gIH1cblxuICBnZXQgY29sdW1uc0Rpc3BsYXkoKTogT0NvbHVtbkRpc3BsYXlbXSB7XG4gICAgcmV0dXJuIHRoaXNbJ29Db2x1bW5zLWRpc3BsYXknXTtcbiAgfVxuXG4gIHNldCBjb2x1bW5zRGlzcGxheSh2YWx1ZTogT0NvbHVtbkRpc3BsYXlbXSkge1xuICAgIHRoaXNbJ29Db2x1bW5zLWRpc3BsYXknXSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0Q29sdW1uRGlzcGxheShvQ29sOiBPQ29sdW1uKTogT0NvbHVtbkRpc3BsYXkge1xuICAgIHJldHVybiAodGhpcy5jb2x1bW5zRGlzcGxheSB8fCBbXSkuZmluZChjb2wgPT4gY29sLmF0dHIgPT09IG9Db2wuYXR0cik7XG4gIH1cblxuICBnZXQgaW5pdGlhbENvbmZpZ3VyYXRpb24oKTogT1RhYmxlQ29tcG9uZW50U3RhdGVDbGFzcyB7XG4gICAgcmV0dXJuIHRoaXNbJ2luaXRpYWwtY29uZmlndXJhdGlvbiddO1xuICB9XG5cbiAgc2V0IGluaXRpYWxDb25maWd1cmF0aW9uKHZhbHVlOiBPVGFibGVDb21wb25lbnRTdGF0ZUNsYXNzKSB7XG4gICAgdGhpc1snaW5pdGlhbC1jb25maWd1cmF0aW9uJ10gPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBzb3J0Q29sdW1ucygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzWydzb3J0LWNvbHVtbnMnXTtcbiAgfVxuXG4gIHNldCBzb3J0Q29sdW1ucyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpc1snc29ydC1jb2x1bW5zJ10gPSB2YWx1ZTtcbiAgfVxuICBnZXQgZ3JvdXBlZENvbHVtblR5cGVzKCk6IE9Hcm91cGVkQ29sdW1uVHlwZXNbXSB7XG4gICAgcmV0dXJuIHRoaXNbJ2dyb3VwZWQtY29sdW1uLXR5cGVzJ107XG4gIH1cbiAgc2V0IGdyb3VwZWRDb2x1bW5UeXBlcyh2YWx1ZTogT0dyb3VwZWRDb2x1bW5UeXBlc1tdKSB7XG4gICAgdGhpc1snZ3JvdXBlZC1jb2x1bW4tdHlwZXMnXSA9IHZhbHVlO1xuICB9XG4gIGdldCBmaWx0ZXJDb2x1bW5zKCk6IE9GaWx0ZXJDb2x1bW5bXSB7XG4gICAgcmV0dXJuIHRoaXNbJ2ZpbHRlci1jb2x1bW5zJ107XG4gIH1cblxuICBzZXQgZmlsdGVyQ29sdW1ucyh2YWx1ZTogT0ZpbHRlckNvbHVtbltdKSB7XG4gICAgdGhpc1snZmlsdGVyLWNvbHVtbnMnXSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGZpbHRlckNvbHVtbkFjdGl2ZUJ5RGVmYXVsdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpc1snZmlsdGVyLWNvbHVtbi1hY3RpdmUtYnktZGVmYXVsdCddO1xuICB9XG5cbiAgZ2V0IGdyb3VwZWRDb2x1bW5zKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpc1snZ3JvdXBlZC1jb2x1bW5zJ107XG4gIH1cblxuICBzZXQgZ3JvdXBlZENvbHVtbnModmFsdWU6IHN0cmluZ1tdKSB7XG4gICAgdGhpc1snZ3JvdXBlZC1jb2x1bW5zJ10gPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBjb2x1bW5WYWx1ZUZpbHRlcnMoKTogT0NvbHVtblZhbHVlRmlsdGVyW10ge1xuICAgIHJldHVybiB0aGlzWydjb2x1bW4tdmFsdWUtZmlsdGVycyddIHx8IFtdO1xuICB9XG5cbiAgc2V0IGNvbHVtblZhbHVlRmlsdGVycyh2YWx1ZTogT0NvbHVtblZhbHVlRmlsdGVyW10pIHtcbiAgICB0aGlzWydjb2x1bW4tdmFsdWUtZmlsdGVycyddID0gdmFsdWU7XG4gIH1cblxuICBnZXQgc3RvcmVkRmlsdGVycygpOiBPVGFibGVGaWx0ZXJzU3RhdHVzW10ge1xuICAgIHJldHVybiB0aGlzWyd1c2VyLXN0b3JlZC1maWx0ZXJzJ10gfHwgW107XG4gIH1cblxuICBzZXQgZXhwYW5kYWJsZVJvd3ModmFsdWU6IE9UYWJsZUV4cGFuZGFibGVSb3dTdGF0ZVtdKSB7XG4gICAgdGhpc1snZXhwYW5kYWJsZS1yb3dzJ10gPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBleHBhbmRhYmxlUm93cygpOiBPVGFibGVFeHBhbmRhYmxlUm93U3RhdGVbXSB7XG4gICAgcmV0dXJuIHRoaXNbJ2V4cGFuZGFibGUtcm93cyddO1xuICB9XG5cbiAgYWRkU3RvcmVkRmlsdGVyKGZpbHRlcjogT1RhYmxlRmlsdGVyc1N0YXR1cykge1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpc1sndXNlci1zdG9yZWQtZmlsdGVycyddKSkge1xuICAgICAgdGhpc1sndXNlci1zdG9yZWQtZmlsdGVycyddID0gW107XG4gICAgfVxuICAgIHRoaXMuc3RvcmVkRmlsdGVycy5wdXNoKGZpbHRlcik7XG4gIH1cblxuICBkZWxldGVTdG9yZWRGaWx0ZXIoZmlsdGVyTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnN0b3JlZEZpbHRlcnMuZmluZEluZGV4KChpdGVtOiBPVGFibGVGaWx0ZXJzU3RhdHVzKSA9PiBpdGVtLm5hbWUgPT09IGZpbHRlck5hbWUpO1xuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB0aGlzLnN0b3JlZEZpbHRlcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gIH1cblxuICBnZXRTdG9yZWRGaWx0ZXIoZmlsdGVyTmFtZTogc3RyaW5nKTogT1RhYmxlU3RvcmVkRmlsdGVyIHtcbiAgICBsZXQgcmVzdWx0OiBPVGFibGVTdG9yZWRGaWx0ZXI7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5zdG9yZWRGaWx0ZXJzLmZpbmQoKGl0ZW06IE9UYWJsZUZpbHRlcnNTdGF0dXMpID0+IGl0ZW0ubmFtZSA9PT0gZmlsdGVyTmFtZSk7XG4gICAgaWYgKGZpbHRlcikge1xuICAgICAgcmVzdWx0ID0gZmlsdGVyWydzdG9yZWQtZmlsdGVyJ107XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBhcHBseUZpbHRlcihmaWx0ZXJOYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmdldFN0b3JlZEZpbHRlcihmaWx0ZXJOYW1lKTtcbiAgICBpZiAoZmlsdGVyKSB7XG4gICAgICB0aGlzLmNvbHVtblZhbHVlRmlsdGVycyA9IGZpbHRlclsnY29sdW1uLXZhbHVlLWZpbHRlcnMnXTtcbiAgICAgIHRoaXMucXVpY2tGaWx0ZXJWYWx1ZSA9IGZpbHRlclsnZmlsdGVyJ107XG4gICAgICB0aGlzLmZpbHRlckNhc2VTZW5zaXRpdmUgPSBmaWx0ZXJbJ2ZpbHRlci1jYXNlLXNlbnNpdGl2ZSddO1xuICAgICAgdGhpcy5maWx0ZXJCdWlsZGVyVmFsdWVzID0gZmlsdGVyWydmaWx0ZXItYnVpbGRlci12YWx1ZXMnXTtcbiAgICAgIHRoaXMub0NvbHVtbnMgPSBmaWx0ZXJbJ29Db2x1bW5zJ107XG4gICAgfVxuICB9XG5cbiAgZ2V0IHN0b3JlZENvbmZpZ3VyYXRpb25zKCk6IE9UYWJsZUNvbmZpZ3VyYXRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXNbJ3VzZXItc3RvcmVkLWNvbmZpZ3VyYXRpb25zJ10gfHwgW107XG4gIH1cblxuICBhZGRTdG9yZWRDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb246IE9UYWJsZUNvbmZpZ3VyYXRpb24pIHtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXNbJ3VzZXItc3RvcmVkLWNvbmZpZ3VyYXRpb25zJ10pKSB7XG4gICAgICB0aGlzWyd1c2VyLXN0b3JlZC1jb25maWd1cmF0aW9ucyddID0gW107XG4gICAgfVxuICAgIHRoaXMuc3RvcmVkQ29uZmlndXJhdGlvbnMucHVzaChjb25maWd1cmF0aW9uKTtcbiAgfVxuXG4gIGRlbGV0ZVN0b3JlZENvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbk5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zdG9yZWRDb25maWd1cmF0aW9ucy5maW5kSW5kZXgoKGl0ZW06IE9UYWJsZUNvbmZpZ3VyYXRpb24pID0+IGl0ZW0ubmFtZSA9PT0gY29uZmlndXJhdGlvbk5hbWUpO1xuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICB0aGlzLnN0b3JlZENvbmZpZ3VyYXRpb25zLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U3RvcmVkQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uTmFtZTogc3RyaW5nKTogT1RhYmxlQ29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVkQ29uZmlndXJhdGlvbnMuZmluZCgoaXRlbTogT1RhYmxlQ29uZmlndXJhdGlvbikgPT4gaXRlbS5uYW1lID09PSBjb25maWd1cmF0aW9uTmFtZSk7XG4gIH1cblxuICBhcHBseUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbk5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSB0aGlzLmdldFN0b3JlZENvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbk5hbWUpO1xuICAgIGlmIChjb25maWd1cmF0aW9uKSB7XG4gICAgICBjb25zdCBwcm9wZXJ0aWVzID0gY29uZmlndXJhdGlvblsnc3RvcmVkLXByb3BlcnRpZXMnXSB8fCBbXTtcbiAgICAgIGNvbnN0IGNvbmY6IE9UYWJsZUNvbXBvbmVudFN0YXRlQ2xhc3MgPSBjb25maWd1cmF0aW9uWydzdG9yZWQtY29uZmlndXJhdGlvbiddO1xuICAgICAgdGhpcy5jb3B5UHJvcGVydGllc0Zyb21Db25maWd1cmF0aW9uKHByb3BlcnRpZXMsIGNvbmYpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0KHBhZ2VhYmxlOiBib29sZWFuKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgJ3VzZXItc3RvcmVkLWZpbHRlcnMnOiB0aGlzLnN0b3JlZEZpbHRlcnMsXG4gICAgICAndXNlci1zdG9yZWQtY29uZmlndXJhdGlvbnMnOiB0aGlzLnN0b3JlZENvbmZpZ3VyYXRpb25zXG4gICAgfTtcbiAgICBpZiAocGFnZWFibGUpIHtcbiAgICAgIHJlc3VsdFsndG90YWxRdWVyeVJlY29yZHNOdW1iZXInXSA9IHRoaXMudG90YWxRdWVyeVJlY29yZHNOdW1iZXI7XG4gICAgfVxuICAgIHJlc3VsdFsnY3VycmVudFBhZ2UnXSA9IDA7XG5cbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHt9KTtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHJlc3VsdCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29weVByb3BlcnRpZXNGcm9tQ29uZmlndXJhdGlvbihwcm9wZXJ0aWVzOiBzdHJpbmdbXSwgY29uZmlndXJhdGlvbjogT1RhYmxlQ29tcG9uZW50U3RhdGVDbGFzcykge1xuICAgIHByb3BlcnRpZXMuZm9yRWFjaChwcm9wZXJ0eSA9PiB7XG4gICAgICBzd2l0Y2ggKHByb3BlcnR5KSB7XG4gICAgICAgIGNhc2UgJ3NvcnQtY29sdW1ucyc6XG4gICAgICAgICAgdGhpcy5zb3J0Q29sdW1ucyA9IGNvbmZpZ3VyYXRpb25bJ3NvcnQtY29sdW1ucyddO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdvQ29sdW1ucy1kaXNwbGF5JzpcbiAgICAgICAgICB0aGlzLmNvbHVtbnNEaXNwbGF5ID0gY29uZmlndXJhdGlvblsnb0NvbHVtbnMtZGlzcGxheSddO1xuICAgICAgICAgIHRoaXMuc2VsZWN0Q29sdW1uVmlzaWJsZSA9IGNvbmZpZ3VyYXRpb25bJ3NlbGVjdC1jb2x1bW4tdmlzaWJsZSddO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdxdWljay1maWx0ZXInOlxuICAgICAgICBjYXNlICdjb2x1bW5zLWZpbHRlcic6XG4gICAgICAgICAgdGhpcy5jb2x1bW5WYWx1ZUZpbHRlcnMgPSBjb25maWd1cmF0aW9uWydjb2x1bW4tdmFsdWUtZmlsdGVycyddO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdncm91cGVkLWNvbHVtbnMnOlxuICAgICAgICAgIHRoaXMuZ3JvdXBlZENvbHVtbnMgPSBjb25maWd1cmF0aW9uWydncm91cGVkLWNvbHVtbnMnXTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncGFnZSc6XG4gICAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IGNvbmZpZ3VyYXRpb25bJ2N1cnJlbnRQYWdlJ107XG4gICAgICAgICAgdGhpcy50b3RhbFF1ZXJ5UmVjb3Jkc051bWJlciA9IGNvbmZpZ3VyYXRpb25bJ3RvdGFsUXVlcnlSZWNvcmRzTnVtYmVyJ107XG4gICAgICAgICAgdGhpcy5xdWVyeVJlY29yZE9mZnNldCA9IGNvbmZpZ3VyYXRpb25bJ3F1ZXJ5UmVjb3JkT2Zmc2V0J107XG4gICAgICAgICAgdGhpcy5xdWVyeVJvd3MgPSBjb25maWd1cmF0aW9uWydxdWVyeS1yb3dzJ107XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2ZpbHRlci1idWlsZGVyJzpcbiAgICAgICAgICB0aGlzLmZpbHRlckJ1aWxkZXJWYWx1ZXMgPSBjb25maWd1cmF0aW9uWydmaWx0ZXItYnVpbGRlciddO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -33,7 +33,8 @@ export class OTableComponentStateService extends AbstractComponentStateService {
|
|
|
33
33
|
'grouped-columns',
|
|
34
34
|
'grouped-column-types',
|
|
35
35
|
'user-stored-filters',
|
|
36
|
-
'user-stored-configurations'
|
|
36
|
+
'user-stored-configurations',
|
|
37
|
+
'expandable-rows'
|
|
37
38
|
];
|
|
38
39
|
Object.assign(dataToStore, this.getTablePropertiesToStore(propertiesKeys));
|
|
39
40
|
return dataToStore;
|
|
@@ -111,6 +112,11 @@ export class OTableComponentStateService extends AbstractComponentStateService {
|
|
|
111
112
|
result['filter-builder'] = this.component.filterBuilder.getFilterValues();
|
|
112
113
|
}
|
|
113
114
|
break;
|
|
115
|
+
case 'expandable-rows':
|
|
116
|
+
if (this.component.isColumnExpandable()) {
|
|
117
|
+
result['expandable-rows'] = this.state.expandableRows;
|
|
118
|
+
}
|
|
119
|
+
break;
|
|
114
120
|
}
|
|
115
121
|
return result;
|
|
116
122
|
}
|
|
@@ -237,4 +243,4 @@ OTableComponentStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "1
|
|
|
237
243
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OTableComponentStateService, decorators: [{
|
|
238
244
|
type: Injectable
|
|
239
245
|
}] });
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jb21wb25lbnQtc3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy9zdGF0ZS9vLXRhYmxlLWNvbXBvbmVudC1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFHNUUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLDZCQUF5RTtJQUV4SCxVQUFVLENBQUMsU0FBMEI7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUM7UUFDN0MsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWdDO1FBQzlDLEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsTUFBTSwwQkFBMEIsR0FBRyxLQUFLLENBQUMsb0JBQW9CLElBQUksRUFBRSxDQUFDO1FBQ3BFLEtBQUssQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUM7UUFDN0QsS0FBSyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNsRCxDQUFD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QUFDLG1CQUFtQjtnQkFDM0QsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCO2dCQUM5QyxpQ0FBaUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLDJCQUEyQjtnQkFDN0UsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUI7Z0JBQ3RELGlCQUFpQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsMkJBQTJCO2FBQzlEO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFUyxZQUFZO1FBQ3BCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDdkQsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyx1QkFBdUIsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckYsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPO1lBQ0wsY0FBYyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDO1NBQzlELENBQUM7SUFDSixDQUFDOzt3SEF4UFUsMkJBQTJCOzRIQUEzQiwyQkFBMkI7MkZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBPQ29sdW1uIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy90YWJsZS9jb2x1bW4vby1jb2x1bW4uY2xhc3MnO1xuaW1wb3J0IHsgT1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy90YWJsZS9vLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPRmlsdGVyRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzL28tZmlsdGVyLWRlZmluaXRpb24udHlwZSc7XG5pbXBvcnQgeyBPQ29sdW1uRGlzcGxheSB9IGZyb20gJy4uLy4uL3R5cGVzL3RhYmxlL28tY29sdW1uLWRpc3BsYXkudHlwZSc7XG5pbXBvcnQgeyBPQ29sdW1uU2VhcmNoYWJsZSB9IGZyb20gJy4uLy4uL3R5cGVzL3RhYmxlL28tY29sdW1uLXNlYXJjaGFibGUudHlwZSc7XG5pbXBvcnQgeyBPVGFibGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby10YWJsZS1jb25maWd1cmF0aW9uLnR5cGUnO1xuaW1wb3J0IHsgT1RhYmxlRmlsdGVyc1N0YXR1cywgT1RhYmxlU3RvcmVkRmlsdGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby10YWJsZS1maWx0ZXItc3RhdHVzLnR5cGUnO1xuaW1wb3J0IHsgQ29kZXMgfSBmcm9tICcuLi8uLi91dGlsL2NvZGVzJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21wb25lbnRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL28tY29tcG9uZW50LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT1RhYmxlQ29tcG9uZW50U3RhdGVDbGFzcyB9IGZyb20gJy4vby10YWJsZS1jb21wb25lbnQtc3RhdGUuY2xhc3MnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT1RhYmxlQ29tcG9uZW50U3RhdGVTZXJ2aWNlIGV4dGVuZHMgQWJzdHJhY3RDb21wb25lbnRTdGF0ZVNlcnZpY2U8T1RhYmxlQ29tcG9uZW50U3RhdGVDbGFzcywgT1RhYmxlQ29tcG9uZW50PiB7XG5cbiAgaW5pdGlhbGl6ZShjb21wb25lbnQ6IE9UYWJsZUNvbXBvbmVudCkge1xuICAgIHRoaXMuc3RhdGUgPSBuZXcgT1RhYmxlQ29tcG9uZW50U3RhdGVDbGFzcygpO1xuICAgIHN1cGVyLmluaXRpYWxpemUoY29tcG9uZW50KTtcbiAgfVxuXG4gIGluaXRpYWxpemVTdGF0ZShzdGF0ZTogT1RhYmxlQ29tcG9uZW50U3RhdGVDbGFzcykge1xuICAgIHN1cGVyLmluaXRpYWxpemVTdGF0ZShzdGF0ZSk7XG4gICAgY29uc3QgaW5pdGlhbENvbmZpZ3VyYXRpb25SYXdPYmogPSBzdGF0ZS5pbml0aWFsQ29uZmlndXJhdGlvbiB8fCB7fTtcbiAgICBzdGF0ZS5pbml0aWFsQ29uZmlndXJhdGlvbiA9IG5ldyBPVGFibGVDb21wb25lbnRTdGF0ZUNsYXNzKCk7XG4gICAgc3RhdGUuaW5pdGlhbENvbmZpZ3VyYXRpb24uc2V0RGF0YShpbml0aWFsQ29uZmlndXJhdGlvblJhd09iaik7XG4gIH1cblxuICByZWZyZXNoU2VsZWN0aW9uKCkge1xuICAgIHRoaXMuc3RhdGUuc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb25TdGF0ZSgpO1xuICB9XG5cbiAgZ2V0RGF0YVRvU3RvcmUoKTogYW55IHtcbiAgICBjb25zdCBkYXRhVG9TdG9yZTogYW55ID0ge307XG4gICAgY29uc3QgcHJvcGVydGllc0tleXMgPSBbXG4gICAgICAnc29ydC1jb2x1bW5zJyxcbiAgICAgICdvQ29sdW1ucy1kaXNwbGF5JyxcbiAgICAgICdjb2x1bW5zLWZpbHRlcicsXG4gICAgICAncXVpY2stZmlsdGVyJyxcbiAgICAgICdwYWdlJyxcbiAgICAgICdzZWxlY3Rpb24nLFxuICAgICAgJ2luaXRpYWwtY29uZmlndXJhdGlvbicsXG4gICAgICAnZmlsdGVyLWNvbHVtbnMnLFxuICAgICAgJ2ZpbHRlci1jb2x1bW4tYWN0aXZlJyxcbiAgICAgICdncm91cGVkLWNvbHVtbnMnLFxuICAgICAgJ2dyb3VwZWQtY29sdW1uLXR5cGVzJyxcbiAgICAgICd1c2VyLXN0b3JlZC1maWx0ZXJzJyxcbiAgICAgICd1c2VyLXN0b3JlZC1jb25maWd1cmF0aW9ucydcbiAgICBdO1xuICAgIE9iamVjdC5hc3NpZ24oZGF0YVRvU3RvcmUsIHRoaXMuZ2V0VGFibGVQcm9wZXJ0aWVzVG9TdG9yZShwcm9wZXJ0aWVzS2V5cykpO1xuICAgIHJldHVybiBkYXRhVG9TdG9yZTtcbiAgfVxuXG4gIHN0b3JlRmlsdGVyKGZpbHRlcjogT0ZpbHRlckRlZmluaXRpb24pIHtcbiAgICBsZXQgbmV3RmlsdGVyOiBPVGFibGVGaWx0ZXJzU3RhdHVzID0geyBuYW1lOiBmaWx0ZXIubmFtZSwgZGVzY3JpcHRpb246IGZpbHRlci5kZXNjcmlwdGlvbiB9O1xuICAgIGNvbnN0IHN0b3JlZEZpbHRlciA9IHt9XG4gICAgT2JqZWN0LmFzc2lnbihzdG9yZWRGaWx0ZXIsIHRoaXMuZ2V0Q29sdW1uRmlsdGVyc1N0YXRlKCkpO1xuICAgIE9iamVjdC5hc3NpZ24oc3RvcmVkRmlsdGVyLCB0aGlzLmdldENvbHVtbnNRdWlja0ZpbHRlclN0YXRlKCkpO1xuICAgIE9iamVjdC5hc3NpZ24oc3RvcmVkRmlsdGVyLCB0aGlzLmdldEZpbHRlckJ1aWxkZXJTdGF0ZSgpKTtcbiAgICBuZXdGaWx0ZXJbJ3N0b3JlZC1maWx0ZXInXSA9IHN0b3JlZEZpbHRlciBhcyBPVGFibGVTdG9yZWRGaWx0ZXI7XG4gICAgdGhpcy5zdGF0ZS5hZGRTdG9yZWRGaWx0ZXIobmV3RmlsdGVyKTtcbiAgfVxuXG4gIHN0b3JlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uQWdzOiBPVGFibGVDb25maWd1cmF0aW9uLCB0YWJsZVByb3BlcnRpZXM6IGFueVtdKSB7XG4gICAgY29uc3QgbmV3Q29uZmlndXJhdGlvbjogT1RhYmxlQ29uZmlndXJhdGlvbiA9IHt9O1xuICAgIHRoaXMuY29tcG9uZW50LnN0b3JlUGFnaW5hdGlvblN0YXRlID0gdHJ1ZTtcbiAgICBjb25zdCBzdG9yZWRDb25maWd1cmF0aW9uID0gdGhpcy5nZXRUYWJsZVByb3BlcnRpZXNUb1N0b3JlKHRhYmxlUHJvcGVydGllcyk7XG4gICAgdGhpcy5jb21wb25lbnQuc3RvcmVQYWdpbmF0aW9uU3RhdGUgPSBmYWxzZTtcblxuICAgIG5ld0NvbmZpZ3VyYXRpb25bJ3N0b3JlZC1jb25maWd1cmF0aW9uJ10gPSBzdG9yZWRDb25maWd1cmF0aW9uO1xuICAgIE9iamVjdC5hc3NpZ24obmV3Q29uZmlndXJhdGlvbiwgY29uZmlndXJhdGlvbkFncyk7XG4gICAgbmV3Q29uZmlndXJhdGlvblsnc3RvcmVkLXByb3BlcnRpZXMnXSA9IHRhYmxlUHJvcGVydGllcztcblxuICAgIHRoaXMuc3RhdGUuYWRkU3RvcmVkQ29uZmlndXJhdGlvbihuZXdDb25maWd1cmF0aW9uKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRUYWJsZVByb3BlcnRpZXNUb1N0b3JlKHByb3BlcnRpZXM6IHN0cmluZ1tdKTogYW55IHtcbiAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICBwcm9wZXJ0aWVzLmZvckVhY2gocHJvcCA9PiB7XG4gICAgICBPYmplY3QuYXNzaWduKHJlc3VsdCwgdGhpcy5nZXRUYWJsZVByb3BlcnR5VG9TdG9yZShwcm9wKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRUYWJsZVByb3BlcnR5VG9TdG9yZShwcm9wZXJ0eTogc3RyaW5nKTogYW55IHtcbiAgICBsZXQgcmVzdWx0OiBhbnkgPSB7fTtcbiAgICBzd2l0Y2ggKHByb3BlcnR5KSB7XG4gICAgICBjYXNlICdzb3J0LWNvbHVtbnMnOlxuICAgICAgICByZXN1bHQgPSB0aGlzLmdldFNvcnRTdGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ29Db2x1bW5zLWRpc3BsYXknOlxuICAgICAgICByZXN1bHQgPSB0aGlzLmdldENvbHVtbnNEaXNwbGF5U3RhdGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdxdWljay1maWx0ZXInOlxuICAgICAgICByZXN1bHQgPSB0aGlzLmdldENvbHVtbnNRdWlja0ZpbHRlclN0YXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY29sdW1ucy1maWx0ZXInOlxuICAgICAgICByZXN1bHQgPSB0aGlzLmdldENvbHVtbkZpbHRlcnNTdGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3BhZ2UnOlxuICAgICAgICByZXN1bHQgPSB0aGlzLmdldFBhZ2VTdGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlbGVjdGlvbic6XG4gICAgICAgIHJlc3VsdFsnc2VsZWN0aW9uJ10gPSB0aGlzLmdldFNlbGVjdGlvblN0YXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaW5pdGlhbC1jb25maWd1cmF0aW9uJzpcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5nZXRJbml0aWFsQ29uZmlndXJhdGlvblN0YXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZmlsdGVyLWNvbHVtbi1hY3RpdmUnOlxuICAgICAgICByZXN1bHRbJ2ZpbHRlci1jb2x1bW4tYWN0aXZlJ10gPSB0aGlzLmNvbXBvbmVudC5pc0NvbHVtbkZpbHRlcnNBY3RpdmU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZmlsdGVyLWNvbHVtbnMnOlxuICAgICAgICByZXN1bHRbJ2ZpbHRlci1jb2x1bW5zJ10gPSB0aGlzLmNvbXBvbmVudC5maWx0ZXJDb2x1bW5zO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2dyb3VwZWQtY29sdW1ucyc6XG4gICAgICAgIHJlc3VsdFsnZ3JvdXBlZC1jb2x1bW5zJ10gPSB0aGlzLmNvbXBvbmVudC5ncm91cGVkQ29sdW1uc0FycmF5O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2dyb3VwZWQtY29sdW1uLXR5cGVzJzpcbiAgICAgICAgcmVzdWx0Wydncm91cGVkLWNvbHVtbi10eXBlcyddID0gdGhpcy5jb21wb25lbnQuZ3JvdXBlZENvbHVtblR5cGVzO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3VzZXItc3RvcmVkLWZpbHRlcnMnOlxuICAgICAgICByZXN1bHRbJ3VzZXItc3RvcmVkLWZpbHRlcnMnXSA9IHRoaXMuc3RhdGUuc3RvcmVkRmlsdGVycztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd1c2VyLXN0b3JlZC1jb25maWd1cmF0aW9ucyc6XG4gICAgICAgIHJlc3VsdFsndXNlci1zdG9yZWQtY29uZmlndXJhdGlvbnMnXSA9IHRoaXMuc3RhdGUuc3RvcmVkQ29uZmlndXJhdGlvbnM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZmlsdGVyLWJ1aWxkZXInOlxuICAgICAgICBpZiAodGhpcy5jb21wb25lbnQuZmlsdGVyQnVpbGRlcikge1xuICAgICAgICAgIHJlc3VsdFsnZmlsdGVyLWJ1aWxkZXInXSA9IHRoaXMuY29tcG9uZW50LmZpbHRlckJ1aWxkZXIuZ2V0RmlsdGVyVmFsdWVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q29sdW1uc0Rpc3BsYXlTdGF0ZSgpIHtcbiAgICBjb25zdCBvQ29sdW1uc0RhdGEgPSBbXTtcbiAgICB0aGlzLmNvbXBvbmVudC5vVGFibGVPcHRpb25zLmNvbHVtbnMuZm9yRWFjaCgob0NvbDogT0NvbHVtbikgPT4ge1xuICAgICAgb0NvbHVtbnNEYXRhLnB1c2goe1xuICAgICAgICBhdHRyOiBvQ29sLmF0dHIsXG4gICAgICAgIHZpc2libGU6IG9Db2wudmlzaWJsZSxcbiAgICAgICAgd2lkdGg6IG9Db2wuZ2V0V2lkdGhUb1N0b3JlKClcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAnb0NvbHVtbnMtZGlzcGxheSc6IG9Db2x1bW5zRGF0YSxcbiAgICAgICdzZWxlY3QtY29sdW1uLXZpc2libGUnOiB0aGlzLmNvbXBvbmVudC5vVGFibGVPcHRpb25zLnNlbGVjdENvbHVtbi52aXNpYmxlXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb2x1bW5zUXVpY2tGaWx0ZXJTdGF0ZSgpIHtcbiAgICBjb25zdCB0YWJsZU9wdGlvbnMgPSB0aGlzLmNvbXBvbmVudC5vVGFibGVPcHRpb25zO1xuICAgIGNvbnN0IG9Db2x1bW5zRGF0YTogT0NvbHVtblNlYXJjaGFibGVbXSA9IFtdO1xuICAgIHRhYmxlT3B0aW9ucy5jb2x1bW5zLmZvckVhY2goKG9Db2w6IE9Db2x1bW4pID0+IHtcbiAgICAgIG9Db2x1bW5zRGF0YS5wdXNoKHtcbiAgICAgICAgYXR0cjogb0NvbC5hdHRyLFxuICAgICAgICBzZWFyY2hhYmxlOiBvQ29sLnNlYXJjaGFibGUsXG4gICAgICAgIHNlYXJjaGluZzogb0NvbC5zZWFyY2hpbmdcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAnb0NvbHVtbnMnOiBvQ29sdW1uc0RhdGEsXG4gICAgICAnZmlsdGVyLWNhc2Utc2Vuc2l0aXZlJzogdGFibGVPcHRpb25zLmZpbHRlckNhc2VTZW5zaXRpdmUsXG4gICAgICAnZmlsdGVyJzogdGhpcy5jb21wb25lbnQub1RhYmxlUXVpY2tGaWx0ZXJDb21wb25lbnQgPyB0aGlzLmNvbXBvbmVudC5vVGFibGVRdWlja0ZpbHRlckNvbXBvbmVudC52YWx1ZSA6ICcnXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRGaWx0ZXJCdWlsZGVyU3RhdGUoKTogYW55IHtcbiAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICBpZiAodGhpcy5jb21wb25lbnQuZmlsdGVyQnVpbGRlcikge1xuICAgICAgbGV0IGZpbHRlckJ1aWxkZXIgPSB0aGlzLmNvbXBvbmVudC5maWx0ZXJCdWlsZGVyLmdldEZpbHRlclZhbHVlcygpO1xuICAgICAgaWYgKCFVdGlsLmlzT2JqZWN0RW1wdHkoZmlsdGVyQnVpbGRlcikpIHtcbiAgICAgICAgcmVzdWx0WydmaWx0ZXItYnVpbGRlci12YWx1ZXMnXSA9IGZpbHRlckJ1aWxkZXI7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBnZXRDb2x1bW5GaWx0ZXJzU3RhdGUoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgaWYgKHRoaXMuY29tcG9uZW50LmRhdGFTb3VyY2UpIHtcbiAgICAgIGNvbnN0IGNvbHVtblZhbHVlRmlsdGVycyA9IHRoaXMuY29tcG9uZW50LmRhdGFTb3VyY2UuZ2V0Q29sdW1uVmFsdWVGaWx0ZXJzKCk7XG4gICAgICBpZiAoY29sdW1uVmFsdWVGaWx0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmVzdWx0Wydjb2x1bW4tdmFsdWUtZmlsdGVycyddID0gY29sdW1uVmFsdWVGaWx0ZXJzO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFBhZ2VTdGF0ZSgpOiBhbnkge1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG5cbiAgICBpZiAodGhpcy5jb21wb25lbnQubWF0cGFnaW5hdG9yKSB7XG4gICAgICByZXN1bHRbJ3F1ZXJ5LXJvd3MnXSA9IHRoaXMuY29tcG9uZW50Lm1hdHBhZ2luYXRvci5wYWdlU2l6ZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29tcG9uZW50LnN0YXRlLnF1ZXJ5Um93cykge1xuICAgICAgcmVzdWx0WydxdWVyeS1yb3dzJ10gPSB0aGlzLmNvbXBvbmVudC5zdGF0ZS5xdWVyeVJvd3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFsncXVlcnktcm93cyddID0gdGhpcy5jb21wb25lbnQub3JpZ2luYWxRdWVyeVJvd3M7XG4gICAgfTtcblxuICAgIGlmICh0aGlzLmNvbXBvbmVudC5jdXJyZW50UGFnZSA+IDAgJiYgdGhpcy5jb21wb25lbnQuc3RvcmVQYWdpbmF0aW9uU3RhdGUpIHtcbiAgICAgIHJlc3VsdC5jdXJyZW50UGFnZSA9IHRoaXMuY29tcG9uZW50LmN1cnJlbnRQYWdlO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb21wb25lbnQucGFnZWFibGUgJiYgdGhpcy5jb21wb25lbnQuc3RvcmVQYWdpbmF0aW9uU3RhdGUpIHtcbiAgICAgIHJlc3VsdC50b3RhbFF1ZXJ5UmVjb3Jkc051bWJlciA9IHRoaXMuY29tcG9uZW50LnN0YXRlLnRvdGFsUXVlcnlSZWNvcmRzTnVtYmVyO1xuICAgICAgcmVzdWx0LnF1ZXJ5UmVjb3JkT2Zmc2V0ID0gTWF0aC5tYXgoXG4gICAgICAgICh0aGlzLmNvbXBvbmVudC5zdGF0ZS5xdWVyeVJlY29yZE9mZnNldCAtIHRoaXMuY29tcG9uZW50LmRhdGFTb3VyY2UucmVuZGVyZWREYXRhLmxlbmd0aCksXG4gICAgICAgICh0aGlzLmNvbXBvbmVudC5zdGF0ZS5xdWVyeVJlY29yZE9mZnNldCAtIHRoaXMuY29tcG9uZW50LnF1ZXJ5Um93cylcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0U2VsZWN0aW9uU3RhdGUoKTogYW55IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSBbXTtcbiAgICBpZiAodGhpcy5jb21wb25lbnQgJiYgdGhpcy5jb21wb25lbnQua2VlcFNlbGVjdGVkSXRlbXMpIHtcbiAgICAgIC8vIHN0b3Jpbmcgc2VsZWN0ZWQgaXRlbXMga2V5cyB2YWx1ZXNcbiAgICAgIGNvbnN0IHRhYmxlS2V5cyA9IHRoaXMuY29tcG9uZW50LmdldEtleXMoKTtcbiAgICAgIHRoaXMuY29tcG9uZW50LmdldFNlbGVjdGVkSXRlbXMoKS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBkYXRhID0ge307XG4gICAgICAgIHRhYmxlS2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgZGF0YVtrZXldID0gaXRlbVtrZXldO1xuICAgICAgICB9KTtcbiAgICAgICAgc2VsZWN0aW9uLnB1c2goZGF0YSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRJbml0aWFsQ29uZmlndXJhdGlvblN0YXRlKCk6IGFueSB7XG4gICAgY29uc3Qgb0NvbHVtbnNEYXRhOiBPQ29sdW1uRGlzcGxheVtdID0gW107XG4gICAgVXRpbC5wYXJzZUFycmF5KHRoaXMuY29tcG9uZW50LnZpc2libGVDb2x1bW5zLCB0cnVlKS5mb3JFYWNoKChjb2x1bW5BdHRyOiBzdHJpbmcpID0+IHtcbiAgICAgIGxldCBvQ29sID0gdGhpcy5jb21wb25lbnQuZ2V0T0NvbHVtbihjb2x1bW5BdHRyKTtcbiAgICAgIG9Db2x1bW5zRGF0YS5wdXNoKHtcbiAgICAgICAgYXR0cjogb0NvbC5hdHRyLFxuICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICB3aWR0aDogb0NvbC5kZWZpbml0aW9uID8gb0NvbC5kZWZpbml0aW9uLm9yaWdpbmFsV2lkdGggOiB1bmRlZmluZWRcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAnaW5pdGlhbC1jb25maWd1cmF0aW9uJzoge1xuICAgICAgICAnb0NvbHVtbnMtZGlzcGxheSc6IG9Db2x1bW5zRGF0YSxcbiAgICAgICAgJ3NvcnQtY29sdW1ucyc6IHRoaXMuY29tcG9uZW50LnNvcnRDb2x1bW5zLFxuICAgICAgICAnc2VsZWN0LWNvbHVtbi12aXNpYmxlJzogdGhpcy5jb21wb25lbnQub1RhYmxlT3B0aW9ucy5zZWxlY3RDb2x1bW4udmlzaWJsZSxcbiAgICAgICAgJ2ZpbHRlci1jYXNlLXNlbnNpdGl2ZSc6IHRoaXMuY29tcG9uZW50LmZpbHRlckNhc2VTZW5zaXRpdmUsXG4gICAgICAgICdxdWVyeS1yb3dzJzogdGhpcy5jb21wb25lbnQub3JpZ2luYWxRdWVyeVJvd3MsXG4gICAgICAgICdmaWx0ZXItY29sdW1uLWFjdGl2ZS1ieS1kZWZhdWx0JzogdGhpcy5jb21wb25lbnQuZmlsdGVyQ29sdW1uQWN0aXZlQnlEZWZhdWx0LFxuICAgICAgICAnZmlsdGVyLWNvbHVtbnMnOiB0aGlzLmNvbXBvbmVudC5vcmlnaW5hbEZpbHRlckNvbHVtbnMsXG4gICAgICAgICdncm91cGVkLWNvbHVtbnMnOiB0aGlzLmNvbXBvbmVudC5vcmlnaW5hbEdyb3VwZWRDb2x1bW5zQXJyYXlcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFNvcnRTdGF0ZSgpIHtcbiAgICBjb25zdCBzb3J0Q29sdW1ucyA9IFtdO1xuICAgIHRoaXMuY29tcG9uZW50LnNvcnQ/LmdldFNvcnRDb2x1bW5zKCkuZm9yRWFjaChzb3J0RGF0YSA9PiB7XG4gICAgICBzb3J0Q29sdW1ucy5wdXNoKHNvcnREYXRhLmlkICsgQ29kZXMuQ09MVU1OU19BTElBU19TRVBBUkFUT1IgKyBzb3J0RGF0YS5kaXJlY3Rpb24pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAnc29ydC1jb2x1bW5zJzogc29ydENvbHVtbnMuam9pbihDb2Rlcy5BUlJBWV9JTlBVVF9TRVBBUkFUT1IpXG4gICAgfTtcbiAgfVxufVxuXG5cbiJdfQ==
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jb21wb25lbnQtc3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy9zdGF0ZS9vLXRhYmxlLWNvbXBvbmVudC1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFHNUUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLDZCQUF5RTtJQUV4SCxVQUFVLENBQUMsU0FBMEI7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUM7UUFDN0MsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWdDO1FBQzlDLEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsTUFBTSwwQkFBMEIsR0FBRyxLQUFLLENBQUMsb0JBQW9CLElBQUksRUFBRSxDQUFDO1FBQ3BFLEtBQUssQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUM7UUFDN0QsS0FBSyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNsRCxDQUFD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dkIsa0JBQWtCLEVBQUUsWUFBWTtnQkFDaEMsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVztnQkFDMUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLE9BQU87Z0JBQzFFLHVCQUF1QixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CO2dCQUMzRCxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUI7Z0JBQzlDLGlDQUFpQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsMkJBQTJCO2dCQUM3RSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQjtnQkFDdEQsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQywyQkFBMkI7YUFDOUQ7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVTLFlBQVk7UUFDcEIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN2RCxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLHVCQUF1QixHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU87WUFDTCxjQUFjLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUM7U0FDOUQsQ0FBQztJQUNKLENBQUM7O3dIQTlQVSwyQkFBMkI7NEhBQTNCLDJCQUEyQjsyRkFBM0IsMkJBQTJCO2tCQUR2QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7IE9Db2x1bW4gfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3RhYmxlL2NvbHVtbi9vLWNvbHVtbi5jbGFzcyc7XG5pbXBvcnQgeyBPVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3RhYmxlL28tdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IE9GaWx0ZXJEZWZpbml0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvby1maWx0ZXItZGVmaW5pdGlvbi50eXBlJztcbmltcG9ydCB7IE9Db2x1bW5EaXNwbGF5IH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby1jb2x1bW4tZGlzcGxheS50eXBlJztcbmltcG9ydCB7IE9Db2x1bW5TZWFyY2hhYmxlIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby1jb2x1bW4tc2VhcmNoYWJsZS50eXBlJztcbmltcG9ydCB7IE9UYWJsZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi8uLi90eXBlcy90YWJsZS9vLXRhYmxlLWNvbmZpZ3VyYXRpb24udHlwZSc7XG5pbXBvcnQgeyBPVGFibGVGaWx0ZXJzU3RhdHVzLCBPVGFibGVTdG9yZWRGaWx0ZXIgfSBmcm9tICcuLi8uLi90eXBlcy90YWJsZS9vLXRhYmxlLWZpbHRlci1zdGF0dXMudHlwZSc7XG5pbXBvcnQgeyBDb2RlcyB9IGZyb20gJy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbXBvbmVudFN0YXRlU2VydmljZSB9IGZyb20gJy4vby1jb21wb25lbnQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBPVGFibGVDb21wb25lbnRTdGF0ZUNsYXNzIH0gZnJvbSAnLi9vLXRhYmxlLWNvbXBvbmVudC1zdGF0ZS5jbGFzcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPVGFibGVDb21wb25lbnRTdGF0ZVNlcnZpY2UgZXh0ZW5kcyBBYnN0cmFjdENvbXBvbmVudFN0YXRlU2VydmljZTxPVGFibGVDb21wb25lbnRTdGF0ZUNsYXNzLCBPVGFibGVDb21wb25lbnQ+IHtcblxuICBpbml0aWFsaXplKGNvbXBvbmVudDogT1RhYmxlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5zdGF0ZSA9IG5ldyBPVGFibGVDb21wb25lbnRTdGF0ZUNsYXNzKCk7XG4gICAgc3VwZXIuaW5pdGlhbGl6ZShjb21wb25lbnQpO1xuICB9XG5cbiAgaW5pdGlhbGl6ZVN0YXRlKHN0YXRlOiBPVGFibGVDb21wb25lbnRTdGF0ZUNsYXNzKSB7XG4gICAgc3VwZXIuaW5pdGlhbGl6ZVN0YXRlKHN0YXRlKTtcbiAgICBjb25zdCBpbml0aWFsQ29uZmlndXJhdGlvblJhd09iaiA9IHN0YXRlLmluaXRpYWxDb25maWd1cmF0aW9uIHx8IHt9O1xuICAgIHN0YXRlLmluaXRpYWxDb25maWd1cmF0aW9uID0gbmV3IE9UYWJsZUNvbXBvbmVudFN0YXRlQ2xhc3MoKTtcbiAgICBzdGF0ZS5pbml0aWFsQ29uZmlndXJhdGlvbi5zZXREYXRhKGluaXRpYWxDb25maWd1cmF0aW9uUmF3T2JqKTtcbiAgfVxuXG4gIHJlZnJlc2hTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5zdGF0ZS5zZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvblN0YXRlKCk7XG4gIH1cblxuICBnZXREYXRhVG9TdG9yZSgpOiBhbnkge1xuICAgIGNvbnN0IGRhdGFUb1N0b3JlOiBhbnkgPSB7fTtcbiAgICBjb25zdCBwcm9wZXJ0aWVzS2V5cyA9IFtcbiAgICAgICdzb3J0LWNvbHVtbnMnLFxuICAgICAgJ29Db2x1bW5zLWRpc3BsYXknLFxuICAgICAgJ2NvbHVtbnMtZmlsdGVyJyxcbiAgICAgICdxdWljay1maWx0ZXInLFxuICAgICAgJ3BhZ2UnLFxuICAgICAgJ3NlbGVjdGlvbicsXG4gICAgICAnaW5pdGlhbC1jb25maWd1cmF0aW9uJyxcbiAgICAgICdmaWx0ZXItY29sdW1ucycsXG4gICAgICAnZmlsdGVyLWNvbHVtbi1hY3RpdmUnLFxuICAgICAgJ2dyb3VwZWQtY29sdW1ucycsXG4gICAgICAnZ3JvdXBlZC1jb2x1bW4tdHlwZXMnLFxuICAgICAgJ3VzZXItc3RvcmVkLWZpbHRlcnMnLFxuICAgICAgJ3VzZXItc3RvcmVkLWNvbmZpZ3VyYXRpb25zJyxcbiAgICAgICdleHBhbmRhYmxlLXJvd3MnXG4gICAgXTtcbiAgICBPYmplY3QuYXNzaWduKGRhdGFUb1N0b3JlLCB0aGlzLmdldFRhYmxlUHJvcGVydGllc1RvU3RvcmUocHJvcGVydGllc0tleXMpKTtcbiAgICByZXR1cm4gZGF0YVRvU3RvcmU7XG4gIH1cblxuICBzdG9yZUZpbHRlcihmaWx0ZXI6IE9GaWx0ZXJEZWZpbml0aW9uKSB7XG4gICAgbGV0IG5ld0ZpbHRlcjogT1RhYmxlRmlsdGVyc1N0YXR1cyA9IHsgbmFtZTogZmlsdGVyLm5hbWUsIGRlc2NyaXB0aW9uOiBmaWx0ZXIuZGVzY3JpcHRpb24gfTtcbiAgICBjb25zdCBzdG9yZWRGaWx0ZXIgPSB7fVxuICAgIE9iamVjdC5hc3NpZ24oc3RvcmVkRmlsdGVyLCB0aGlzLmdldENvbHVtbkZpbHRlcnNTdGF0ZSgpKTtcbiAgICBPYmplY3QuYXNzaWduKHN0b3JlZEZpbHRlciwgdGhpcy5nZXRDb2x1bW5zUXVpY2tGaWx0ZXJTdGF0ZSgpKTtcbiAgICBPYmplY3QuYXNzaWduKHN0b3JlZEZpbHRlciwgdGhpcy5nZXRGaWx0ZXJCdWlsZGVyU3RhdGUoKSk7XG4gICAgbmV3RmlsdGVyWydzdG9yZWQtZmlsdGVyJ10gPSBzdG9yZWRGaWx0ZXIgYXMgT1RhYmxlU3RvcmVkRmlsdGVyO1xuICAgIHRoaXMuc3RhdGUuYWRkU3RvcmVkRmlsdGVyKG5ld0ZpbHRlcik7XG4gIH1cblxuICBzdG9yZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbkFnczogT1RhYmxlQ29uZmlndXJhdGlvbiwgdGFibGVQcm9wZXJ0aWVzOiBhbnlbXSkge1xuICAgIGNvbnN0IG5ld0NvbmZpZ3VyYXRpb246IE9UYWJsZUNvbmZpZ3VyYXRpb24gPSB7fTtcbiAgICB0aGlzLmNvbXBvbmVudC5zdG9yZVBhZ2luYXRpb25TdGF0ZSA9IHRydWU7XG4gICAgY29uc3Qgc3RvcmVkQ29uZmlndXJhdGlvbiA9IHRoaXMuZ2V0VGFibGVQcm9wZXJ0aWVzVG9TdG9yZSh0YWJsZVByb3BlcnRpZXMpO1xuICAgIHRoaXMuY29tcG9uZW50LnN0b3JlUGFnaW5hdGlvblN0YXRlID0gZmFsc2U7XG5cbiAgICBuZXdDb25maWd1cmF0aW9uWydzdG9yZWQtY29uZmlndXJhdGlvbiddID0gc3RvcmVkQ29uZmlndXJhdGlvbjtcbiAgICBPYmplY3QuYXNzaWduKG5ld0NvbmZpZ3VyYXRpb24sIGNvbmZpZ3VyYXRpb25BZ3MpO1xuICAgIG5ld0NvbmZpZ3VyYXRpb25bJ3N0b3JlZC1wcm9wZXJ0aWVzJ10gPSB0YWJsZVByb3BlcnRpZXM7XG5cbiAgICB0aGlzLnN0YXRlLmFkZFN0b3JlZENvbmZpZ3VyYXRpb24obmV3Q29uZmlndXJhdGlvbik7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VGFibGVQcm9wZXJ0aWVzVG9TdG9yZShwcm9wZXJ0aWVzOiBzdHJpbmdbXSk6IGFueSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgcHJvcGVydGllcy5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgT2JqZWN0LmFzc2lnbihyZXN1bHQsIHRoaXMuZ2V0VGFibGVQcm9wZXJ0eVRvU3RvcmUocHJvcCkpO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VGFibGVQcm9wZXJ0eVRvU3RvcmUocHJvcGVydHk6IHN0cmluZyk6IGFueSB7XG4gICAgbGV0IHJlc3VsdDogYW55ID0ge307XG4gICAgc3dpdGNoIChwcm9wZXJ0eSkge1xuICAgICAgY2FzZSAnc29ydC1jb2x1bW5zJzpcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5nZXRTb3J0U3RhdGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdvQ29sdW1ucy1kaXNwbGF5JzpcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5nZXRDb2x1bW5zRGlzcGxheVN0YXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncXVpY2stZmlsdGVyJzpcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5nZXRDb2x1bW5zUXVpY2tGaWx0ZXJTdGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NvbHVtbnMtZmlsdGVyJzpcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5nZXRDb2x1bW5GaWx0ZXJzU3RhdGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdwYWdlJzpcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5nZXRQYWdlU3RhdGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdzZWxlY3Rpb24nOlxuICAgICAgICByZXN1bHRbJ3NlbGVjdGlvbiddID0gdGhpcy5nZXRTZWxlY3Rpb25TdGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2luaXRpYWwtY29uZmlndXJhdGlvbic6XG4gICAgICAgIHJlc3VsdCA9IHRoaXMuZ2V0SW5pdGlhbENvbmZpZ3VyYXRpb25TdGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ZpbHRlci1jb2x1bW4tYWN0aXZlJzpcbiAgICAgICAgcmVzdWx0WydmaWx0ZXItY29sdW1uLWFjdGl2ZSddID0gdGhpcy5jb21wb25lbnQuaXNDb2x1bW5GaWx0ZXJzQWN0aXZlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ZpbHRlci1jb2x1bW5zJzpcbiAgICAgICAgcmVzdWx0WydmaWx0ZXItY29sdW1ucyddID0gdGhpcy5jb21wb25lbnQuZmlsdGVyQ29sdW1ucztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdncm91cGVkLWNvbHVtbnMnOlxuICAgICAgICByZXN1bHRbJ2dyb3VwZWQtY29sdW1ucyddID0gdGhpcy5jb21wb25lbnQuZ3JvdXBlZENvbHVtbnNBcnJheTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdncm91cGVkLWNvbHVtbi10eXBlcyc6XG4gICAgICAgIHJlc3VsdFsnZ3JvdXBlZC1jb2x1bW4tdHlwZXMnXSA9IHRoaXMuY29tcG9uZW50Lmdyb3VwZWRDb2x1bW5UeXBlcztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd1c2VyLXN0b3JlZC1maWx0ZXJzJzpcbiAgICAgICAgcmVzdWx0Wyd1c2VyLXN0b3JlZC1maWx0ZXJzJ10gPSB0aGlzLnN0YXRlLnN0b3JlZEZpbHRlcnM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndXNlci1zdG9yZWQtY29uZmlndXJhdGlvbnMnOlxuICAgICAgICByZXN1bHRbJ3VzZXItc3RvcmVkLWNvbmZpZ3VyYXRpb25zJ10gPSB0aGlzLnN0YXRlLnN0b3JlZENvbmZpZ3VyYXRpb25zO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ZpbHRlci1idWlsZGVyJzpcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50LmZpbHRlckJ1aWxkZXIpIHtcbiAgICAgICAgICByZXN1bHRbJ2ZpbHRlci1idWlsZGVyJ10gPSB0aGlzLmNvbXBvbmVudC5maWx0ZXJCdWlsZGVyLmdldEZpbHRlclZhbHVlcygpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZXhwYW5kYWJsZS1yb3dzJzpcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50LmlzQ29sdW1uRXhwYW5kYWJsZSgpKSB7XG4gICAgICAgICAgcmVzdWx0WydleHBhbmRhYmxlLXJvd3MnXSA9IHRoaXMuc3RhdGUuZXhwYW5kYWJsZVJvd3M7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q29sdW1uc0Rpc3BsYXlTdGF0ZSgpIHtcbiAgICBjb25zdCBvQ29sdW1uc0RhdGEgPSBbXTtcbiAgICB0aGlzLmNvbXBvbmVudC5vVGFibGVPcHRpb25zLmNvbHVtbnMuZm9yRWFjaCgob0NvbDogT0NvbHVtbikgPT4ge1xuICAgICAgb0NvbHVtbnNEYXRhLnB1c2goe1xuICAgICAgICBhdHRyOiBvQ29sLmF0dHIsXG4gICAgICAgIHZpc2libGU6IG9Db2wudmlzaWJsZSxcbiAgICAgICAgd2lkdGg6IG9Db2wuZ2V0V2lkdGhUb1N0b3JlKClcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAnb0NvbHVtbnMtZGlzcGxheSc6IG9Db2x1bW5zRGF0YSxcbiAgICAgICdzZWxlY3QtY29sdW1uLXZpc2libGUnOiB0aGlzLmNvbXBvbmVudC5vVGFibGVPcHRpb25zLnNlbGVjdENvbHVtbi52aXNpYmxlXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb2x1bW5zUXVpY2tGaWx0ZXJTdGF0ZSgpIHtcbiAgICBjb25zdCB0YWJsZU9wdGlvbnMgPSB0aGlzLmNvbXBvbmVudC5vVGFibGVPcHRpb25zO1xuICAgIGNvbnN0IG9Db2x1bW5zRGF0YTogT0NvbHVtblNlYXJjaGFibGVbXSA9IFtdO1xuICAgIHRhYmxlT3B0aW9ucy5jb2x1bW5zLmZvckVhY2goKG9Db2w6IE9Db2x1bW4pID0+IHtcbiAgICAgIG9Db2x1bW5zRGF0YS5wdXNoKHtcbiAgICAgICAgYXR0cjogb0NvbC5hdHRyLFxuICAgICAgICBzZWFyY2hhYmxlOiBvQ29sLnNlYXJjaGFibGUsXG4gICAgICAgIHNlYXJjaGluZzogb0NvbC5zZWFyY2hpbmdcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAnb0NvbHVtbnMnOiBvQ29sdW1uc0RhdGEsXG4gICAgICAnZmlsdGVyLWNhc2Utc2Vuc2l0aXZlJzogdGFibGVPcHRpb25zLmZpbHRlckNhc2VTZW5zaXRpdmUsXG4gICAgICAnZmlsdGVyJzogdGhpcy5jb21wb25lbnQub1RhYmxlUXVpY2tGaWx0ZXJDb21wb25lbnQgPyB0aGlzLmNvbXBvbmVudC5vVGFibGVRdWlja0ZpbHRlckNvbXBvbmVudC52YWx1ZSA6ICcnXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRGaWx0ZXJCdWlsZGVyU3RhdGUoKTogYW55IHtcbiAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICBpZiAodGhpcy5jb21wb25lbnQuZmlsdGVyQnVpbGRlcikge1xuICAgICAgbGV0IGZpbHRlckJ1aWxkZXIgPSB0aGlzLmNvbXBvbmVudC5maWx0ZXJCdWlsZGVyLmdldEZpbHRlclZhbHVlcygpO1xuICAgICAgaWYgKCFVdGlsLmlzT2JqZWN0RW1wdHkoZmlsdGVyQnVpbGRlcikpIHtcbiAgICAgICAgcmVzdWx0WydmaWx0ZXItYnVpbGRlci12YWx1ZXMnXSA9IGZpbHRlckJ1aWxkZXI7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBnZXRDb2x1bW5GaWx0ZXJzU3RhdGUoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgaWYgKHRoaXMuY29tcG9uZW50LmRhdGFTb3VyY2UpIHtcbiAgICAgIGNvbnN0IGNvbHVtblZhbHVlRmlsdGVycyA9IHRoaXMuY29tcG9uZW50LmRhdGFTb3VyY2UuZ2V0Q29sdW1uVmFsdWVGaWx0ZXJzKCk7XG4gICAgICBpZiAoY29sdW1uVmFsdWVGaWx0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmVzdWx0Wydjb2x1bW4tdmFsdWUtZmlsdGVycyddID0gY29sdW1uVmFsdWVGaWx0ZXJzO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFBhZ2VTdGF0ZSgpOiBhbnkge1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG5cbiAgICBpZiAodGhpcy5jb21wb25lbnQubWF0cGFnaW5hdG9yKSB7XG4gICAgICByZXN1bHRbJ3F1ZXJ5LXJvd3MnXSA9IHRoaXMuY29tcG9uZW50Lm1hdHBhZ2luYXRvci5wYWdlU2l6ZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29tcG9uZW50LnN0YXRlLnF1ZXJ5Um93cykge1xuICAgICAgcmVzdWx0WydxdWVyeS1yb3dzJ10gPSB0aGlzLmNvbXBvbmVudC5zdGF0ZS5xdWVyeVJvd3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFsncXVlcnktcm93cyddID0gdGhpcy5jb21wb25lbnQub3JpZ2luYWxRdWVyeVJvd3M7XG4gICAgfTtcblxuICAgIGlmICh0aGlzLmNvbXBvbmVudC5jdXJyZW50UGFnZSA+IDAgJiYgdGhpcy5jb21wb25lbnQuc3RvcmVQYWdpbmF0aW9uU3RhdGUpIHtcbiAgICAgIHJlc3VsdC5jdXJyZW50UGFnZSA9IHRoaXMuY29tcG9uZW50LmN1cnJlbnRQYWdlO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb21wb25lbnQucGFnZWFibGUgJiYgdGhpcy5jb21wb25lbnQuc3RvcmVQYWdpbmF0aW9uU3RhdGUpIHtcbiAgICAgIHJlc3VsdC50b3RhbFF1ZXJ5UmVjb3Jkc051bWJlciA9IHRoaXMuY29tcG9uZW50LnN0YXRlLnRvdGFsUXVlcnlSZWNvcmRzTnVtYmVyO1xuICAgICAgcmVzdWx0LnF1ZXJ5UmVjb3JkT2Zmc2V0ID0gTWF0aC5tYXgoXG4gICAgICAgICh0aGlzLmNvbXBvbmVudC5zdGF0ZS5xdWVyeVJlY29yZE9mZnNldCAtIHRoaXMuY29tcG9uZW50LmRhdGFTb3VyY2UucmVuZGVyZWREYXRhLmxlbmd0aCksXG4gICAgICAgICh0aGlzLmNvbXBvbmVudC5zdGF0ZS5xdWVyeVJlY29yZE9mZnNldCAtIHRoaXMuY29tcG9uZW50LnF1ZXJ5Um93cylcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0U2VsZWN0aW9uU3RhdGUoKTogYW55IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSBbXTtcbiAgICBpZiAodGhpcy5jb21wb25lbnQgJiYgdGhpcy5jb21wb25lbnQua2VlcFNlbGVjdGVkSXRlbXMpIHtcbiAgICAgIC8vIHN0b3Jpbmcgc2VsZWN0ZWQgaXRlbXMga2V5cyB2YWx1ZXNcbiAgICAgIGNvbnN0IHRhYmxlS2V5cyA9IHRoaXMuY29tcG9uZW50LmdldEtleXMoKTtcbiAgICAgIHRoaXMuY29tcG9uZW50LmdldFNlbGVjdGVkSXRlbXMoKS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBkYXRhID0ge307XG4gICAgICAgIHRhYmxlS2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgZGF0YVtrZXldID0gaXRlbVtrZXldO1xuICAgICAgICB9KTtcbiAgICAgICAgc2VsZWN0aW9uLnB1c2goZGF0YSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRJbml0aWFsQ29uZmlndXJhdGlvblN0YXRlKCk6IGFueSB7XG4gICAgY29uc3Qgb0NvbHVtbnNEYXRhOiBPQ29sdW1uRGlzcGxheVtdID0gW107XG4gICAgVXRpbC5wYXJzZUFycmF5KHRoaXMuY29tcG9uZW50LnZpc2libGVDb2x1bW5zLCB0cnVlKS5mb3JFYWNoKChjb2x1bW5BdHRyOiBzdHJpbmcpID0+IHtcbiAgICAgIGxldCBvQ29sID0gdGhpcy5jb21wb25lbnQuZ2V0T0NvbHVtbihjb2x1bW5BdHRyKTtcbiAgICAgIG9Db2x1bW5zRGF0YS5wdXNoKHtcbiAgICAgICAgYXR0cjogb0NvbC5hdHRyLFxuICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICB3aWR0aDogb0NvbC5kZWZpbml0aW9uID8gb0NvbC5kZWZpbml0aW9uLm9yaWdpbmFsV2lkdGggOiB1bmRlZmluZWRcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAnaW5pdGlhbC1jb25maWd1cmF0aW9uJzoge1xuICAgICAgICAnb0NvbHVtbnMtZGlzcGxheSc6IG9Db2x1bW5zRGF0YSxcbiAgICAgICAgJ3NvcnQtY29sdW1ucyc6IHRoaXMuY29tcG9uZW50LnNvcnRDb2x1bW5zLFxuICAgICAgICAnc2VsZWN0LWNvbHVtbi12aXNpYmxlJzogdGhpcy5jb21wb25lbnQub1RhYmxlT3B0aW9ucy5zZWxlY3RDb2x1bW4udmlzaWJsZSxcbiAgICAgICAgJ2ZpbHRlci1jYXNlLXNlbnNpdGl2ZSc6IHRoaXMuY29tcG9uZW50LmZpbHRlckNhc2VTZW5zaXRpdmUsXG4gICAgICAgICdxdWVyeS1yb3dzJzogdGhpcy5jb21wb25lbnQub3JpZ2luYWxRdWVyeVJvd3MsXG4gICAgICAgICdmaWx0ZXItY29sdW1uLWFjdGl2ZS1ieS1kZWZhdWx0JzogdGhpcy5jb21wb25lbnQuZmlsdGVyQ29sdW1uQWN0aXZlQnlEZWZhdWx0LFxuICAgICAgICAnZmlsdGVyLWNvbHVtbnMnOiB0aGlzLmNvbXBvbmVudC5vcmlnaW5hbEZpbHRlckNvbHVtbnMsXG4gICAgICAgICdncm91cGVkLWNvbHVtbnMnOiB0aGlzLmNvbXBvbmVudC5vcmlnaW5hbEdyb3VwZWRDb2x1bW5zQXJyYXlcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFNvcnRTdGF0ZSgpIHtcbiAgICBjb25zdCBzb3J0Q29sdW1ucyA9IFtdO1xuICAgIHRoaXMuY29tcG9uZW50LnNvcnQ/LmdldFNvcnRDb2x1bW5zKCkuZm9yRWFjaChzb3J0RGF0YSA9PiB7XG4gICAgICBzb3J0Q29sdW1ucy5wdXNoKHNvcnREYXRhLmlkICsgQ29kZXMuQ09MVU1OU19BTElBU19TRVBBUkFUT1IgKyBzb3J0RGF0YS5kaXJlY3Rpb24pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAnc29ydC1jb2x1bW5zJzogc29ydENvbHVtbnMuam9pbihDb2Rlcy5BUlJBWV9JTlBVVF9TRVBBUkFUT1IpXG4gICAgfTtcbiAgfVxufVxuXG5cbiJdfQ==
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
2
|
import { EventEmitter, Injectable, Injector } from '@angular/core';
|
|
3
|
+
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
3
4
|
import { TranslateService } from '@ngx-translate/core';
|
|
4
5
|
import { Observable } from 'rxjs';
|
|
5
6
|
import { AppConfig } from '../../config/app-config';
|
|
6
7
|
import * as CORE_TRANSLATIONS from '../../i18n/i18n';
|
|
7
8
|
import { MomentService } from '../../services/moment.service';
|
|
8
9
|
import { ObservableWrapper } from '../../util/async';
|
|
9
|
-
import { _getInjectionTokenValue, O_TRANSLATE_SERVICE } from '../factories';
|
|
10
|
-
import { Util } from '../../util/util';
|
|
11
10
|
import { Codes } from '../../util/codes';
|
|
12
|
-
import {
|
|
11
|
+
import { Util } from '../../util/util';
|
|
12
|
+
import { O_TRANSLATE_SERVICE } from '../../injection-tokens';
|
|
13
|
+
import { _getInjectionTokenValue } from '../../util/injection-token.utils';
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
15
|
export function translateServiceFactory(injector) {
|
|
15
16
|
const serviceClass = _getInjectionTokenValue(O_TRANSLATE_SERVICE, injector);
|
|
@@ -141,6 +142,9 @@ export class OTranslateService {
|
|
|
141
142
|
observer.next(langRes);
|
|
142
143
|
}
|
|
143
144
|
}
|
|
145
|
+
getNgxTranslateService() {
|
|
146
|
+
return this.ngxTranslateService;
|
|
147
|
+
}
|
|
144
148
|
getCurrentLang() {
|
|
145
149
|
return this.ngxTranslateService.currentLang;
|
|
146
150
|
}
|
|
@@ -168,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
168
172
|
type: Injectable,
|
|
169
173
|
args: [{ providedIn: 'root', useFactory: translateServiceFactory, deps: [Injector] }]
|
|
170
174
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10cmFuc2xhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy90cmFuc2xhdGUvby10cmFuc2xhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxpQkFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQU0xRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsUUFBa0I7SUFDeEQsTUFBTSxZQUFZLEdBQUcsdUJBQXVCLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNu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Q0FBQztRQUN2RyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDbkMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDbkMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOztBQW5LYSw2QkFBVyxHQUFHLGdCQUFnQixDQUFDO0FBQy9CLGtDQUFnQixHQUFHLE9BQU8sQ0FBQzs4R0FIOUIsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FESixNQUFNLGNBQWMsdUJBQXVCLGtCQUFTLFFBQVE7MkZBQ3pFLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmliZXIgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uZmlnL2FwcC1jb25maWcnO1xuaW1wb3J0ICogYXMgQ09SRV9UUkFOU0xBVElPTlMgZnJvbSAnLi4vLi4vaTE4bi9pMThuJztcbmltcG9ydCB7IE1vbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tb21lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlV3JhcHBlciB9IGZyb20gJy4uLy4uL3V0aWwvYXN5bmMnO1xuaW1wb3J0IHsgX2dldEluamVjdGlvblRva2VuVmFsdWUsIE9fVFJBTlNMQVRFX1NFUlZJQ0UgfSBmcm9tICcuLi9mYWN0b3JpZXMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBDb2RlcyB9IGZyb20gJy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuXG4vKipcbiAqIGBPVHJhbnNsYXRlU2VydmljZWAgZmFjdG9yeS5cbiAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHRyYW5zbGF0ZSBzZXJ2aWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNsYXRlU2VydmljZUZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogYW55IHtcbiAgY29uc3Qgc2VydmljZUNsYXNzID0gX2dldEluamVjdGlvblRva2VuVmFsdWUoT19UUkFOU0xBVEVfU0VSVklDRSwgaW5qZWN0b3IpO1xuICBjb25zdCBzZXJ2aWNlID0gVXRpbC5jcmVhdGVTZXJ2aWNlSW5zdGFuY2Uoc2VydmljZUNsYXNzLCBpbmplY3Rvcik7XG4gIHJldHVybiBVdGlsLmlzRGVmaW5lZChzZXJ2aWNlKSA/IHNlcnZpY2UgOiBuZXcgT1RyYW5zbGF0ZVNlcnZpY2UoaW5qZWN0b3IpO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JywgdXNlRmFjdG9yeTogdHJhbnNsYXRlU2VydmljZUZhY3RvcnksIGRlcHM6IFtJbmplY3Rvcl0gfSlcbmV4cG9ydCBjbGFzcyBPVHJhbnNsYXRlU2VydmljZSB7XG5cbiAgcHVibGljIHN0YXRpYyBBU1NFVFNfUEFUSCA9ICcuL2Fzc2V0cy9pMThuLyc7XG4gIHB1YmxpYyBzdGF0aWMgQVNTRVRTX0VYVEVOU0lPTiA9ICcuanNvbic7XG4gIHB1YmxpYyBERUZBVUxUX0xBTkcgPSAnZW4nO1xuICBwdWJsaWMgb25MYW5ndWFnZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByb3RlY3RlZCBuZ3hUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgbW9tZW50U2VydmljZTogTW9tZW50U2VydmljZTtcbiAgcHJvdGVjdGVkIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQ7XG5cbiAgcHJvdGVjdGVkIGxvY2FsU3RvcmFnZUtleTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgbm90Rm91bmRMYW5nOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIHByb3RlY3RlZCBhcHBDb25maWc6IEFwcENvbmZpZztcbiAgcHJvdGVjdGVkIGV4aXN0aW5nTGFuZ0ZpbGVzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIHByb3RlY3RlZCBkZWZhdWx0TG9jYWxlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHRoaXMubmd4VHJhbnNsYXRlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICAgIHRoaXMubW9tZW50U2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KE1vbWVudFNlcnZpY2UpO1xuICAgIHRoaXMuaHR0cENsaWVudCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEh0dHBDbGllbnQpO1xuICAgIHRoaXMuYXBwQ29uZmlnID0gdGhpcy5pbmplY3Rvci5nZXQoQXBwQ29uZmlnKTtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZUtleSA9IHRoaXMuYXBwQ29uZmlnLmdldENvbmZpZ3VyYXRpb24oKS51dWlkO1xuICAgIHRoaXMuZGVmYXVsdExvY2FsZSA9IHRoaXMuYXBwQ29uZmlnLmdldENvbmZpZ3VyYXRpb24oKS5kZWZhdWx0TG9jYWxlO1xuICB9XG5cbiAgcHVibGljIHN0b3JlTGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChsYW5ndWFnZSkge1xuICAgICAgY29uc3QgZGF0YVN0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlS2V5KTtcbiAgICAgIGNvbnN0IGRhdGEgPSAoZGF0YVN0ciAmJiBkYXRhU3RyLmxlbmd0aCA+IDApID8gSlNPTi5wYXJzZShkYXRhU3RyKSA6IHt9O1xuICAgICAgZGF0YVtDb2Rlcy5MQU5HVUFHRV9LRVldID0gbGFuZ3VhZ2U7XG4gICAgICB0cnkge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmxvY2FsU3RvcmFnZUtleSwgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiQ2Fubm90IHNldCBuZXcgaXRlbSBpbiBsb2NhbFN0b3JhZ2UuIEVycm9yOiBcIiArIGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRTdG9yZWRMYW5ndWFnZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRhdGFTdHIgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmxvY2FsU3RvcmFnZUtleSk7XG4gICAgcmV0dXJuIGRhdGFTdHIgPyBKU09OLnBhcnNlKGRhdGFTdHIpW0NvZGVzLkxBTkdVQUdFX0tFWV0gOiB2b2lkIDA7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tFeGlzdGluZ0xhbmdGaWxlKGxhbmc6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBpZiAoc2VsZi5leGlzdGluZ0xhbmdGaWxlcy5pbmRleE9mKGxhbmcpICE9PSAtMSkge1xuICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBsb2NhbGVBc3NldHNQYXRoID0gKHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS5jdXJyZW50TG9hZGVyIGFzIGFueSkucHJlZml4O1xuICAgICAgY29uc3QgbG9jYWxlQXNzZXRzRXh0ZW5zaW9uID0gKHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS5jdXJyZW50TG9hZGVyIGFzIGFueSkuc3VmZml4O1xuICAgICAgc2VsZi5odHRwQ2xpZW50LmdldChsb2NhbGVBc3NldHNQYXRoICsgbGFuZyArIGxvY2FsZUFzc2V0c0V4dGVuc2lvbikuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHNlbGYuZXhpc3RpbmdMYW5nRmlsZXMuaW5kZXhPZihsYW5nKSA9PT0gLTEpIHtcbiAgICAgICAgICBzZWxmLmV4aXN0aW5nTGFuZ0ZpbGVzLnB1c2gobGFuZyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSTE4TiBGaWxlIGxvYWRlZCBzdWNjZXNzZnVsbHlcbiAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgIH0sICgpID0+IHtcbiAgICAgICAgLy8gSTE4TiBGaWxlIGZhaWxlZCB0byBsb2FkXG4gICAgICAgIGlmIChzZWxmLm5vdEZvdW5kTGFuZy5pbmRleE9mKGxhbmcpID09PSAtMSkge1xuICAgICAgICAgIHNlbGYubm90Rm91bmRMYW5nLnB1c2gobGFuZyk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREZWZhdWx0TGFuZyhsYW5nOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm5neFRyYW5zbGF0ZVNlcnZpY2UuZGVmYXVsdExhbmcgPSBsYW5nO1xuICAgIHRoaXMuY2hlY2tFeGlzdGluZ0xhbmdGaWxlKGxhbmcpLnRoZW4oKGV4aXN0cykgPT4ge1xuICAgICAgaWYgKCFleGlzdHMpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRGVmYXVsdCBsYW5ndWFnZSgnICsgbGFuZyArICcpIGhhcyBubyBidW5kbGUgZmlsZSBkZWZpbmVkJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0KHRleHQ6IHN0cmluZywgdmFsdWVzOiBhbnlbXSA9IFtdKTogc3RyaW5nIHtcbiAgICBsZXQgdGV4dFRyYW5zbGF0ZWQ7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJ1bmRsZSA9IHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS5nZXQodGV4dCwgdmFsdWVzKTtcbiAgICAgIGlmIChidW5kbGUpIHtcbiAgICAgICAgYnVuZGxlLnN1YnNjcmliZSh4ID0+IHRleHRUcmFuc2xhdGVkID0geCk7XG4gICAgICB9XG4gICAgICB0ZXh0VHJhbnNsYXRlZCA9IHRleHRUcmFuc2xhdGVkID09PSB0ZXh0ID8gdW5kZWZpbmVkIDogdGV4dFRyYW5zbGF0ZWQ7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGV4dFRyYW5zbGF0ZWQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICghdGV4dFRyYW5zbGF0ZWQpIHtcbiAgICAgIGNvbnN0IGJ1bmRsZSA9IENPUkVfVFJBTlNMQVRJT05TLk1BUFt0aGlzLm5neFRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmddIHx8IENPUkVfVFJBTlNMQVRJT05TLk1BUFt0aGlzLmRlZmF1bHRMb2NhbGVdIHx8IENPUkVfVFJBTlNMQVRJT05TLk1BUFt0aGlzLkRFRkFVTFRfTEFOR107XG4gICAgICBpZiAoYnVuZGxlICYmIGJ1bmRsZVt0ZXh0XSkge1xuICAgICAgICB0ZXh0VHJhbnNsYXRlZCA9IGJ1bmRsZVt0ZXh0XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRleHRUcmFuc2xhdGVkID0gdGV4dDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRleHRUcmFuc2xhdGVkO1xuICB9XG5cbiAgcHVibGljIHNldEFwcExhbmcobGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBvYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgICAgdGhpcy51c2UobGFuZywgb2JzZXJ2ZXIpO1xuICAgIH0pO1xuICAgIHJldHVybiBvYnNlcnZhYmxlO1xuICB9XG5cbiAgcHVibGljIHVzZShsYW5nOiBzdHJpbmcsIG9ic2VydmVyPzogU3Vic2NyaWJlcjxhbnk+KTogdm9pZCB7XG4gICAgaWYgKGxhbmcgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgbmV3TGFuZyA9IGxhbmcgfHwgdGhpcy5ERUZBVUxUX0xBTkc7XG4gICAgICAvLyBzZXR0aW5nIGxhbmcgZm9yIGluaXRpYWxpeklORyBtb21lbnQgYW5kIG90aGVyIGNvbXBvbmVudHNcbiAgICAgIHRoaXMucHJvcGFnYXRlTGFuZyhuZXdMYW5nLCB7fSwgb2JzZXJ2ZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNoZWNrRXhpc3RpbmdMYW5nRmlsZShsYW5nKS50aGVuKChleGlzdHMpID0+IHtcbiAgICAgICAgbGV0IG5ld0xhbmcgPSBsYW5nO1xuICAgICAgICBpZiAoIWV4aXN0cykge1xuICAgICAgICAgIG5ld0xhbmcgPSBVdGlsLmlzRGVmaW5lZCh0aGlzLmFwcENvbmZpZ1snX2NvbmZpZyddWydkZWZhdWx0TG9jYWxlJ10pID8gdGhpcy5hcHBDb25maWdbJ19jb25maWcnXVsnZGVmYXVsdExvY2FsZSddIDogdGhpcy5uZ3hUcmFuc2xhdGVTZXJ2aWNlLmdldERlZmF1bHRMYW5nKCk7XG4gICAgICAgICAgY29uc3QgdHJhbnNsYXRpb25zID0gQ09SRV9UUkFOU0xBVElPTlMuTUFQW25ld0xhbmddIHx8IENPUkVfVFJBTlNMQVRJT05TLk1BUFt0aGlzLkRFRkFVTFRfTEFOR107XG4gICAgICAgICAgY29uc3QgbXNnID0gdHJhbnNsYXRpb25zWydNRVNTQUdFUy5FUlJPUl9NSVNTSU5HX0xBTkcnXTtcbiAgICAgICAgICB0aGlzLmluamVjdG9yLmdldChNYXRTbmFja0Jhcikub3Blbihtc2csICcgJywge1xuICAgICAgICAgICAgZHVyYXRpb246IDI1MDBcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5neFRyYW5zbGF0ZVNlcnZpY2UudXNlKG5ld0xhbmcpLnN1YnNjcmliZShcbiAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdG9yZUxhbmd1YWdlKG5ld0xhbmcpO1xuICAgICAgICAgICAgdGhpcy5wcm9wYWdhdGVMYW5nKG5ld0xhbmcsIHJlcywgb2JzZXJ2ZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBwcm9wYWdhdGVMYW5nKGxhbmc6IHN0cmluZywgbGFuZ1Jlcz86IGFueSwgb2JzZXJ2ZXI/OiBTdWJzY3JpYmVyPGFueT4pIHtcbiAgICBjb25zdCBjb3JlQnVuZGxlID0gQ09SRV9UUkFOU0xBVElPTlMuTUFQW2xhbmcgfHwgdGhpcy5ERUZBVUxUX0xBTkddO1xuICAgIGlmIChjb3JlQnVuZGxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IG1peGVkID0gT2JqZWN0LmFzc2lnbih7fSwgY29yZUJ1bmRsZSwgbGFuZ1Jlcyk7XG4gICAgICB0aGlzLm5neFRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRpb25zW2xhbmddID0gbWl4ZWQ7XG4gICAgfVxuICAgIHRoaXMubW9tZW50U2VydmljZS5sb2FkKGxhbmcpO1xuICAgIE9ic2VydmFibGVXcmFwcGVyLmNhbGxFbWl0KHRoaXMub25MYW5ndWFnZUNoYW5nZWQsIGxhbmcpO1xuICAgIGlmIChvYnNlcnZlcikge1xuICAgICAgb2JzZXJ2ZXIubmV4dChsYW5nUmVzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VycmVudExhbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZztcbiAgfVxuXG4gIHB1YmxpYyBnZXRCcm93c2VyTGFuZygpIHtcbiAgICAvLyBjb3B5aW5nIHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS5nZXRCcm93c2VyTGFuZygpIGJ1dCB3aXRoIGEgZml4IGZvciBkZWZhdWx0IHNlbGVjdGVkIGxhbmd1YWdlIChicm93c2VyTGFuZylcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHdpbmRvdy5uYXZpZ2F0b3IgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBuYXZpZ2F0b3I6IGFueSA9IHdpbmRvdy5uYXZpZ2F0b3I7XG4gICAgbGV0IGJyb3dzZXJMYW5nID0gbmF2aWdhdG9yLmxhbmd1YWdlcyA/IG5hdmlnYXRvci5sYW5ndWFnZXNbMF0gOiBudWxsO1xuICAgIGJyb3dzZXJMYW5nID0gbmF2aWdhdG9yLmxhbmd1YWdlIHx8IGJyb3dzZXJMYW5nIHx8IG5hdmlnYXRvci5icm93c2VyTGFuZ3VhZ2UgfHwgbmF2aWdhdG9yLnVzZXJMYW5ndWFnZTtcbiAgICBpZiAoYnJvd3NlckxhbmcuaW5kZXhPZignLScpICE9PSAtMSkge1xuICAgICAgYnJvd3NlckxhbmcgPSBicm93c2VyTGFuZy5zcGxpdCgnLScpWzBdO1xuICAgIH1cbiAgICBpZiAoYnJvd3NlckxhbmcuaW5kZXhPZignXycpICE9PSAtMSkge1xuICAgICAgYnJvd3NlckxhbmcgPSBicm93c2VyTGFuZy5zcGxpdCgnXycpWzBdO1xuICAgIH1cbiAgICByZXR1cm4gYnJvd3Nlckxhbmc7XG4gIH1cblxufVxuIl19
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10cmFuc2xhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy90cmFuc2xhdGUvby10cmFuc2xhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssaUJBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdkMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBTTNFLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxRQUFrQjtJQUN4RCxNQUFNLFlBQVksR0FBRyx1QkFBdUIsQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM1RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMscUJBQXFC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SUFBSSxDQUFDO1FBQ3RFLFdBQVcsR0FBRyxTQUFTLENBQUMsUUFBUSxJQUFJLFdBQVcsSUFBSSxTQUFTLENBQUMsZUFBZSxJQUFJLFNBQVMsQ0FBQyxZQUFZLENBQUM7UUFDdkcsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ25DLFdBQVcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ25DLFdBQVcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs7QUF2S2EsNkJBQVcsR0FBRyxnQkFBZ0IsQ0FBQztBQUMvQixrQ0FBZ0IsR0FBRyxPQUFPLENBQUM7OEdBSDlCLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBREosTUFBTSxjQUFjLHVCQUF1QixrQkFBUyxRQUFROzJGQUN6RSxpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpYmVyIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbmZpZy9hcHAtY29uZmlnJztcbmltcG9ydCAqIGFzIENPUkVfVFJBTlNMQVRJT05TIGZyb20gJy4uLy4uL2kxOG4vaTE4bic7XG5pbXBvcnQgeyBNb21lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbW9tZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZVdyYXBwZXIgfSBmcm9tICcuLi8uLi91dGlsL2FzeW5jJztcbmltcG9ydCB7IENvZGVzIH0gZnJvbSAnLi4vLi4vdXRpbC9jb2Rlcyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlsJztcblxuaW1wb3J0IHsgT19UUkFOU0xBVEVfU0VSVklDRSB9IGZyb20gJy4uLy4uL2luamVjdGlvbi10b2tlbnMnO1xuaW1wb3J0IHsgX2dldEluamVjdGlvblRva2VuVmFsdWUgfSBmcm9tICcuLi8uLi91dGlsL2luamVjdGlvbi10b2tlbi51dGlscyc7XG5cbi8qKlxuICogYE9UcmFuc2xhdGVTZXJ2aWNlYCBmYWN0b3J5LlxuICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgdHJhbnNsYXRlIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2xhdGVTZXJ2aWNlRmFjdG9yeShpbmplY3RvcjogSW5qZWN0b3IpOiBhbnkge1xuICBjb25zdCBzZXJ2aWNlQ2xhc3MgPSBfZ2V0SW5qZWN0aW9uVG9rZW5WYWx1ZShPX1RSQU5TTEFURV9TRVJWSUNFLCBpbmplY3Rvcik7XG4gIGNvbnN0IHNlcnZpY2UgPSBVdGlsLmNyZWF0ZVNlcnZpY2VJbnN0YW5jZShzZXJ2aWNlQ2xhc3MsIGluamVjdG9yKTtcbiAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHNlcnZpY2UpID8gc2VydmljZSA6IG5ldyBPVHJhbnNsYXRlU2VydmljZShpbmplY3Rvcik7XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnLCB1c2VGYWN0b3J5OiB0cmFuc2xhdGVTZXJ2aWNlRmFjdG9yeSwgZGVwczogW0luamVjdG9yXSB9KVxuZXhwb3J0IGNsYXNzIE9UcmFuc2xhdGVTZXJ2aWNlIHtcblxuICBwdWJsaWMgc3RhdGljIEFTU0VUU19QQVRIID0gJy4vYXNzZXRzL2kxOG4vJztcbiAgcHVibGljIHN0YXRpYyBBU1NFVFNfRVhURU5TSU9OID0gJy5qc29uJztcbiAgcHVibGljIERFRkFVTFRfTEFORyA9ICdlbic7XG4gIHB1YmxpYyBvbkxhbmd1YWdlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJvdGVjdGVkIG5neFRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2U7XG4gIHByb3RlY3RlZCBtb21lbnRTZXJ2aWNlOiBNb21lbnRTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgaHR0cENsaWVudDogSHR0cENsaWVudDtcblxuICBwcm90ZWN0ZWQgbG9jYWxTdG9yYWdlS2V5OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBub3RGb3VuZExhbmc6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgcHJvdGVjdGVkIGFwcENvbmZpZzogQXBwQ29uZmlnO1xuICBwcm90ZWN0ZWQgZXhpc3RpbmdMYW5nRmlsZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcbiAgcHJvdGVjdGVkIGRlZmF1bHRMb2NhbGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgdGhpcy5uZ3hUcmFuc2xhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSk7XG4gICAgdGhpcy5tb21lbnRTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoTW9tZW50U2VydmljZSk7XG4gICAgdGhpcy5odHRwQ2xpZW50ID0gdGhpcy5pbmplY3Rvci5nZXQoSHR0cENsaWVudCk7XG4gICAgdGhpcy5hcHBDb25maWcgPSB0aGlzLmluamVjdG9yLmdldChBcHBDb25maWcpO1xuICAgIHRoaXMubG9jYWxTdG9yYWdlS2V5ID0gdGhpcy5hcHBDb25maWcuZ2V0Q29uZmlndXJhdGlvbigpLnV1aWQ7XG4gICAgdGhpcy5kZWZhdWx0TG9jYWxlID0gdGhpcy5hcHBDb25maWcuZ2V0Q29uZmlndXJhdGlvbigpLmRlZmF1bHRMb2NhbGU7XG4gIH1cblxuICBwdWJsaWMgc3RvcmVMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGxhbmd1YWdlKSB7XG4gICAgICBjb25zdCBkYXRhU3RyID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5sb2NhbFN0b3JhZ2VLZXkpO1xuICAgICAgY29uc3QgZGF0YSA9IChkYXRhU3RyICYmIGRhdGFTdHIubGVuZ3RoID4gMCkgPyBKU09OLnBhcnNlKGRhdGFTdHIpIDoge307XG4gICAgICBkYXRhW0NvZGVzLkxBTkdVQUdFX0tFWV0gPSBsYW5ndWFnZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlS2V5LCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJDYW5ub3Qgc2V0IG5ldyBpdGVtIGluIGxvY2FsU3RvcmFnZS4gRXJyb3I6IFwiICsgZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFN0b3JlZExhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0YVN0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlS2V5KTtcbiAgICByZXR1cm4gZGF0YVN0ciA/IEpTT04ucGFyc2UoZGF0YVN0cilbQ29kZXMuTEFOR1VBR0VfS0VZXSA6IHZvaWQgMDtcbiAgfVxuXG4gIHByb3RlY3RlZCBjaGVja0V4aXN0aW5nTGFuZ0ZpbGUobGFuZzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGlmIChzZWxmLmV4aXN0aW5nTGFuZ0ZpbGVzLmluZGV4T2YobGFuZykgIT09IC0xKSB7XG4gICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGxvY2FsZUFzc2V0c1BhdGggPSAodGhpcy5uZ3hUcmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMb2FkZXIgYXMgYW55KS5wcmVmaXg7XG4gICAgICBjb25zdCBsb2NhbGVBc3NldHNFeHRlbnNpb24gPSAodGhpcy5uZ3hUcmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMb2FkZXIgYXMgYW55KS5zdWZmaXg7XG4gICAgICBzZWxmLmh0dHBDbGllbnQuZ2V0KGxvY2FsZUFzc2V0c1BhdGggKyBsYW5nICsgbG9jYWxlQXNzZXRzRXh0ZW5zaW9uKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAoc2VsZi5leGlzdGluZ0xhbmdGaWxlcy5pbmRleE9mKGxhbmcpID09PSAtMSkge1xuICAgICAgICAgIHNlbGYuZXhpc3RpbmdMYW5nRmlsZXMucHVzaChsYW5nKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJMThOIEZpbGUgbG9hZGVkIHN1Y2Nlc3NmdWxseVxuICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgfSwgKCkgPT4ge1xuICAgICAgICAvLyBJMThOIEZpbGUgZmFpbGVkIHRvIGxvYWRcbiAgICAgICAgaWYgKHNlbGYubm90Rm91bmRMYW5nLmluZGV4T2YobGFuZykgPT09IC0xKSB7XG4gICAgICAgICAgc2VsZi5ub3RGb3VuZExhbmcucHVzaChsYW5nKTtcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldERlZmF1bHRMYW5nKGxhbmc6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS5kZWZhdWx0TGFuZyA9IGxhbmc7XG4gICAgdGhpcy5jaGVja0V4aXN0aW5nTGFuZ0ZpbGUobGFuZykudGhlbigoZXhpc3RzKSA9PiB7XG4gICAgICBpZiAoIWV4aXN0cykge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdEZWZhdWx0IGxhbmd1YWdlKCcgKyBsYW5nICsgJykgaGFzIG5vIGJ1bmRsZSBmaWxlIGRlZmluZWQnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQodGV4dDogc3RyaW5nLCB2YWx1ZXM6IGFueVtdID0gW10pOiBzdHJpbmcge1xuICAgIGxldCB0ZXh0VHJhbnNsYXRlZDtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYnVuZGxlID0gdGhpcy5uZ3hUcmFuc2xhdGVTZXJ2aWNlLmdldCh0ZXh0LCB2YWx1ZXMpO1xuICAgICAgaWYgKGJ1bmRsZSkge1xuICAgICAgICBidW5kbGUuc3Vic2NyaWJlKHggPT4gdGV4dFRyYW5zbGF0ZWQgPSB4KTtcbiAgICAgIH1cbiAgICAgIHRleHRUcmFuc2xhdGVkID0gdGV4dFRyYW5zbGF0ZWQgPT09IHRleHQgPyB1bmRlZmluZWQgOiB0ZXh0VHJhbnNsYXRlZDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0ZXh0VHJhbnNsYXRlZCA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKCF0ZXh0VHJhbnNsYXRlZCkge1xuICAgICAgY29uc3QgYnVuZGxlID0gQ09SRV9UUkFOU0xBVElPTlMuTUFQW3RoaXMubmd4VHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZ10gfHwgQ09SRV9UUkFOU0xBVElPTlMuTUFQW3RoaXMuZGVmYXVsdExvY2FsZV0gfHwgQ09SRV9UUkFOU0xBVElPTlMuTUFQW3RoaXMuREVGQVVMVF9MQU5HXTtcbiAgICAgIGlmIChidW5kbGUgJiYgYnVuZGxlW3RleHRdKSB7XG4gICAgICAgIHRleHRUcmFuc2xhdGVkID0gYnVuZGxlW3RleHRdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGV4dFRyYW5zbGF0ZWQgPSB0ZXh0O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGV4dFRyYW5zbGF0ZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0QXBwTGFuZyhsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IG9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICB0aGlzLnVzZShsYW5nLCBvYnNlcnZlcik7XG4gICAgfSk7XG4gICAgcmV0dXJuIG9ic2VydmFibGU7XG4gIH1cblxuICBwdWJsaWMgdXNlKGxhbmc6IHN0cmluZywgb2JzZXJ2ZXI/OiBTdWJzY3JpYmVyPGFueT4pOiB2b2lkIHtcbiAgICBpZiAobGFuZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBuZXdMYW5nID0gbGFuZyB8fCB0aGlzLkRFRkFVTFRfTEFORztcbiAgICAgIC8vIHNldHRpbmcgbGFuZyBmb3IgaW5pdGlhbGl6SU5HIG1vbWVudCBhbmQgb3RoZXIgY29tcG9uZW50c1xuICAgICAgdGhpcy5wcm9wYWdhdGVMYW5nKG5ld0xhbmcsIHt9LCBvYnNlcnZlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2hlY2tFeGlzdGluZ0xhbmdGaWxlKGxhbmcpLnRoZW4oKGV4aXN0cykgPT4ge1xuICAgICAgICBsZXQgbmV3TGFuZyA9IGxhbmc7XG4gICAgICAgIGlmICghZXhpc3RzKSB7XG4gICAgICAgICAgbmV3TGFuZyA9IFV0aWwuaXNEZWZpbmVkKHRoaXMuYXBwQ29uZmlnWydfY29uZmlnJ11bJ2RlZmF1bHRMb2NhbGUnXSkgPyB0aGlzLmFwcENvbmZpZ1snX2NvbmZpZyddWydkZWZhdWx0TG9jYWxlJ10gOiB0aGlzLm5neFRyYW5zbGF0ZVNlcnZpY2UuZ2V0RGVmYXVsdExhbmcoKTtcbiAgICAgICAgICBjb25zdCB0cmFuc2xhdGlvbnMgPSBDT1JFX1RSQU5TTEFUSU9OUy5NQVBbbmV3TGFuZ10gfHwgQ09SRV9UUkFOU0xBVElPTlMuTUFQW3RoaXMuREVGQVVMVF9MQU5HXTtcbiAgICAgICAgICBjb25zdCBtc2cgPSB0cmFuc2xhdGlvbnNbJ01FU1NBR0VTLkVSUk9SX01JU1NJTkdfTEFORyddO1xuICAgICAgICAgIHRoaXMuaW5qZWN0b3IuZ2V0KE1hdFNuYWNrQmFyKS5vcGVuKG1zZywgJyAnLCB7XG4gICAgICAgICAgICBkdXJhdGlvbjogMjUwMFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS51c2UobmV3TGFuZykuc3Vic2NyaWJlKFxuICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlTGFuZ3VhZ2UobmV3TGFuZyk7XG4gICAgICAgICAgICB0aGlzLnByb3BhZ2F0ZUxhbmcobmV3TGFuZywgcmVzLCBvYnNlcnZlcik7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHByb3BhZ2F0ZUxhbmcobGFuZzogc3RyaW5nLCBsYW5nUmVzPzogYW55LCBvYnNlcnZlcj86IFN1YnNjcmliZXI8YW55Pikge1xuICAgIGNvbnN0IGNvcmVCdW5kbGUgPSBDT1JFX1RSQU5TTEFUSU9OUy5NQVBbbGFuZyB8fCB0aGlzLkRFRkFVTFRfTEFOR107XG4gICAgaWYgKGNvcmVCdW5kbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgbWl4ZWQgPSBPYmplY3QuYXNzaWduKHt9LCBjb3JlQnVuZGxlLCBsYW5nUmVzKTtcbiAgICAgIHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGlvbnNbbGFuZ10gPSBtaXhlZDtcbiAgICB9XG4gICAgdGhpcy5tb21lbnRTZXJ2aWNlLmxvYWQobGFuZyk7XG4gICAgT2JzZXJ2YWJsZVdyYXBwZXIuY2FsbEVtaXQodGhpcy5vbkxhbmd1YWdlQ2hhbmdlZCwgbGFuZyk7XG4gICAgaWYgKG9ic2VydmVyKSB7XG4gICAgICBvYnNlcnZlci5uZXh0KGxhbmdSZXMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXROZ3hUcmFuc2xhdGVTZXJ2aWNlKCkge1xuICAgIHJldHVybiB0aGlzLm5neFRyYW5zbGF0ZVNlcnZpY2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VycmVudExhbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZztcbiAgfVxuXG4gIHB1YmxpYyBnZXRCcm93c2VyTGFuZygpIHtcbiAgICAvLyBjb3B5aW5nIHRoaXMubmd4VHJhbnNsYXRlU2VydmljZS5nZXRCcm93c2VyTGFuZygpIGJ1dCB3aXRoIGEgZml4IGZvciBkZWZhdWx0IHNlbGVjdGVkIGxhbmd1YWdlIChicm93c2VyTGFuZylcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHdpbmRvdy5uYXZpZ2F0b3IgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBuYXZpZ2F0b3I6IGFueSA9IHdpbmRvdy5uYXZpZ2F0b3I7XG4gICAgbGV0IGJyb3dzZXJMYW5nID0gbmF2aWdhdG9yLmxhbmd1YWdlcyA/IG5hdmlnYXRvci5sYW5ndWFnZXNbMF0gOiBudWxsO1xuICAgIGJyb3dzZXJMYW5nID0gbmF2aWdhdG9yLmxhbmd1YWdlIHx8IGJyb3dzZXJMYW5nIHx8IG5hdmlnYXRvci5icm93c2VyTGFuZ3VhZ2UgfHwgbmF2aWdhdG9yLnVzZXJMYW5ndWFnZTtcbiAgICBpZiAoYnJvd3NlckxhbmcuaW5kZXhPZignLScpICE9PSAtMSkge1xuICAgICAgYnJvd3NlckxhbmcgPSBicm93c2VyTGFuZy5zcGxpdCgnLScpWzBdO1xuICAgIH1cbiAgICBpZiAoYnJvd3NlckxhbmcuaW5kZXhPZignXycpICE9PSAtMSkge1xuICAgICAgYnJvd3NlckxhbmcgPSBicm93c2VyTGFuZy5zcGxpdCgnXycpWzBdO1xuICAgIH1cbiAgICByZXR1cm4gYnJvd3Nlckxhbmc7XG4gIH1cblxufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvY29uZmlnLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9FeHBvcnRDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9leHBvcnQtY29uZmlndXJhdGlvbi50eXBlJztcbmltcG9ydCB7IE1lbnVSb290SXRlbSB9IGZyb20gJy4vbWVudS1yb290LWl0ZW0udHlwZSc7XG5pbXBvcnQgeyBPbnRpbWl6ZUVFUGVybWlzc2lvbnNDb25maWcgfSBmcm9tICcuL29udGltaXplLWVlLXBlcm1pc3Npb25zLWNvbmZpZy50eXBlJztcbmltcG9ydCB7IE9udGltaXplUGVybWlzc2lvbnNDb25maWcgfSBmcm9tICcuL29udGltaXplLXBlcm1pc3Npb25zLWNvbmZpZy50eXBlJztcbmltcG9ydCB7IE9SZW1vdGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9yZW1vdGUtY29uZmlndXJhdGlvbi50eXBlJztcbmltcG9ydCB7IEpTT05BUElTZXJ2aWNlQ29uZmlnLCBPbnRpbWl6ZVNlcnZpY2VDb25maWcgfSBmcm9tICcuL3NlcnZpY2UtY29uZmlndXJhdGlvbi50eXBlJztcblxuZXhwb3J0IHR5cGUgQ29uZmlnID0ge1xuICAvLyBhcGlFbmRwb2ludCBbc3RyaW5nXTogVGhlIGJhc2UgcGF0aCBvZiB0aGUgVVJMIHVzZWQgYnkgYXBwIHNlcnZpY2VzLlxuICBhcGlFbmRwb2ludD86IHN0cmluZztcblxuICBidW5kbGU/OiB7XG4gICAgLy8gZW5kcG9pbnQgW3N0cmluZ106IFRoZSBiYXNlIHBhdGggb2YgdGhlIFVSTCB1c2VkIGJ5IGJ1bmRsZSBzZXJ2aWNlLlxuICAgIGVuZHBvaW50Pzogc3RyaW5nO1xuICAgIC8vIHBhdGggW3N0cmluZ106IFRoZSBwYXRoIG9mIHRoZSBVUkwgdG8gcmVtb3RlIGJ1bmRsZSBtZXRob2QuXG4gICAgcGF0aD86IHN0cmluZztcbiAgfTtcblxuICAvKiogUmVtb3RlIGNvbmZpZ3VyYXRpb24gc3RvcmFnZSBwYXJhbWV0ZXIgKi9cbiAgcmVtb3RlQ29uZmlnPzogT1JlbW90ZUNvbmZpZ3VyYXRpb247XG5cbiAgLy8gc3RhcnRTZXNzaW9uUGF0aCBbc3RyaW5nXTogVGhlIHBhdGggb2YgdGhlIFVSTCB0byBzdGFydHNlc3Npb24gbWV0aG9kLlxuICBzdGFydFNlc3Npb25QYXRoPzogc3RyaW5nO1xuXG4gIC8vIHV1aWQgW3N0cmluZ106IEFwcGxpY2F0aW9uIGlkZW50aWZpZXIuIElzIHRoZSB1bmlxdWUgcGFja2FnZSBpZGVudGlmaWVyIG9mIHRoZSBhcHAuIEl0IGlzIHVzZWQgd2hlbiBzdG9yaW5nIG9yIG1hbmFnaW5nIHRlbXBvcmFsIGRhdGEgcmVsYXRlZCB3aXRoIHRoZSBhcHAuIEJ5IGRlZmF1bHQgaXMgc2V0IGFzICdvbnRpbWl6ZS13ZWItdXVpZCcuL1xuICB1dWlkPzogc3RyaW5nO1xuXG4gIC8vIHRpdGxlIFtzdHJpbmddOiBUaXRsZSBvZiB0aGUgYXBwLiBCeSBkZWZhdWx0ICdPbnRpbWl6ZSBXZWIgQXBwJy5cbiAgdGl0bGU6IHN0cmluZztcblxuICAvLyBsb2NhbGUgW3N0cmluZ11bZW58ZXNdOiBMYW5ndWFnZSBvZiB0aGUgYXBwbGljYXRpb24uIEJ5IGRlZmF1bHQgJ2VuJ1xuICBsb2NhbGU/OiBzdHJpbmc7XG5cbiAgLy8gbG9jYWxlIFtzdHJpbmddOiBMb2NhdGlvbiBvZiBhcHBsaWNhdGlvbiB0cmFuc2xhdGlvbiBhc3NldHMuIERlZmF1bHQgJ2Fzc2V0cy9pMThuLydcbiAgYXNzZXRzPzoge1xuICAgIGkxOG4/OiB7XG4gICAgICBwYXRoPzogc3RyaW5nO1xuICAgICAgZXh0ZW5zaW9uPzogc3RyaW5nO1xuICAgIH1cbiAgICBjc3M/OiBzdHJpbmc7XG4gICAgaW1hZ2VzPzogc3RyaW5nO1xuICAgIGpzPzogc3RyaW5nO1xuICB9O1xuXG4gIGFwcGxpY2F0aW9uTG9jYWxlcz86IHN0cmluZ1tdO1xuICBkZWZhdWx0TG9jYWxlPzogc3RyaW5nO1xuXG4gIC8vIHNlcnZpY2VUeXBlIFsgdW5kZWZpbmVkIHwgJycgfCBjbGFzcyBdOiBUaGUgc2VydmljZSB0eXBlIHVzZWQgKE9udGltaXplIFJFU1Qgc3RhbmRhcnQsIE9udGltaXplIFJFU1QgSkVFLCBKU09OIEFQSSBvciBjdXN0b20gaW1wbGVtZW50YXRpb24pIGluIHRoZSB3aG9sZSBhcHBsaWNhdGlvbi4gQnkgZGVmYXVsdCAndW5kZWZpbmVkJywgdGhhdCBpcywgT250aW1pemUgUkVTVCBzdGFuZGFyZCBzZXJ2aWNlLlxuICBzZXJ2aWNlVHlwZT86IGFueTtcblxuICAvLyBleHBvcnRTZXJ2aWNlVHlwZSBbIHVuZGVmaW5lZCB8ICcnIHwgY2xhc3MgXTogVGhlIHNlcnZpY2UgdXNlZCBmb3IgZXhwb3J0YXRpb24gaW4gdGhlIHdob2xlIGFwcGxpY2F0aW9uLiBJdCBzaG9sZCBpbXBsZW1lbnQgYElFeHBvcnRTZXJ2aWNlYCBpbnRlcmZhY2UuIEJ5IGRlZmF1bHQgJ3VuZGVmaW5lZCcgT250aW1pemVFeHBvcnRTZXJ2aWNlLlxuICBleHBvcnRTZXJ2aWNlVHlwZT86IGFueTtcblxuICAvLyBzZXJ2aWNlc0NvbmZpZ3VyYXRpb246IFtPbnRpbWl6ZVNlcnZpY2VDb25maWcgfCBKU09OQVBJU2VydmljZUNvbmZpZ106IENvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBvZiBhcHBsaWNhdGlvbiBzZXJ2aWNlcy5cbiAgc2VydmljZXNDb25maWd1cmF0aW9uPzogT250aW1pemVTZXJ2aWNlQ29uZmlnIHwgSlNPTkFQSVNlcnZpY2VDb25maWc7XG5cbiAgLy8gYXBwTWVudUNvbmZpZ3VyYXRpb24/OiBNZW51R3JvdXBbXTtcbiAgYXBwTWVudUNvbmZpZ3VyYXRpb24/OiBNZW51Um9vdEl0ZW1bXTtcblxuICAvLyBwZXJtaXNzaW9uc0NvbmZpZ3VyYXRpb24gW09iamVjdF06IENvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBvZiBhcHBsaWNhdGlvbiBwZXJtaXNzaW9ucy5cbiAgcGVybWlzc2lvbnNDb25maWd1cmF0aW9uPzogT250aW1pemVQZXJtaXNzaW9uc0NvbmZpZyB8IE9udGltaXplRUVQZXJtaXNzaW9uc0NvbmZpZztcblxuICAvLyBwZXJtaXNzaW9uc1NlcnZpY2VUeXBlIFsgdW5kZWZpbmVkIHwgJycgfCBjbGFzcyBdOiBUaGUgcGVybWlzc2lvbnMgc2VydmljZSB0eXBlIHVzZWQgKE9udGltaXplIFJFU1Qgc3RhbmRhcnQgJ09udGltaXplUGVybWlzc2lvbnMnLCBPbnRpbWl6ZSBSRVNUIEpFRSAnT250aW1pemVFRVBlcm1pc3Npb25zJyBvciBjdXN0b20gaW1wbGVtZW50YXRpb24pIGluIHRoZSB3aG9sZSBhcHBsaWNhdGlvbi4gQnkgZGVmYXVsdCAnT250aW1pemVQZXJtaXNzaW9ucycuXG4gIHBlcm1pc3Npb25zU2VydmljZVR5cGU/OiBhbnk7XG5cbiAgZXhwb3J0Q29uZmlndXJhdGlvbj86IE9FeHBvcnRDb25maWd1cmF0aW9uLFxuXG4gIG5hbWVDb252ZW50aW9uPzogJ3VwcGVyJyB8ICdsb3dlcicgfCAnZGF0YWJhc2UnXG59O1xuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1sYXlvdXQtZGV0YWlsLWNvbXBvbmVudC1kYXRhLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvZm9ybS1sYXlvdXQtZGV0YWlsLWNvbXBvbmVudC1kYXRhLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5cbmV4cG9ydCB0eXBlIEZvcm1MYXlvdXRJbm5lckZvcm1JbmZvID0ge1xuICBtb2RpZmllZDogYm9vbGVhbjtcbiAgY29uZmlybU9uRXhpdDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgRm9ybUxheW91dERldGFpbENvbXBvbmVudERhdGEgPSB7XG4gIHBhcmFtczogYW55O1xuICBxdWVyeVBhcmFtczogYW55O1xuICB1cmxTZWdtZW50czogYW55O1xuICBpZDogc3RyaW5nO1xuICBjb21wb25lbnQ6IGFueTtcbiAgbGFiZWw6IHN0cmluZztcbiAgaW5uZXJGb3Jtc0luZm86IHsgW2Zvcm1BdHRyOiBzdHJpbmddOiBGb3JtTGF5b3V0SW5uZXJGb3JtSW5mbyB9O1xuICB1cmw6IHN0cmluZztcbiAgcmVuZGVyZWQ/OiBib29sZWFuO1xuICBpbnNlcnRpb25Nb2RlPzogYm9vbGVhbjtcbiAgZm9ybURhdGFCeUxhYmVsQ29sdW1ucz86IGFueTtcbiAgcmVuZGVyZXJTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG59O1xuXG5leHBvcnQgdHlwZSBGb3JtTGF5b3V0Q2xvc2VEZXRhaWxPcHRpb25zID0ge1xuICBleGl0V2l0aG91dENvbmZpcm1hdGlvbj86IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -27,7 +27,6 @@ export * from './o-permissions.type';
|
|
|
27
27
|
export * from './o-route-permissions.type';
|
|
28
28
|
export * from './ontimize-ee-permissions-config.type';
|
|
29
29
|
export * from './ontimize-permissions-config.type';
|
|
30
|
-
export * from './ontimize-service-config.type';
|
|
31
30
|
export * from './operation-function.type';
|
|
32
31
|
export * from './query-data-args.type';
|
|
33
32
|
export * from './quick-filter-function.type';
|
|
@@ -44,4 +43,4 @@ export * from './query-params.type';
|
|
|
44
43
|
export * from './json-query-parameter.type';
|
|
45
44
|
export * from './error-form-validation.type';
|
|
46
45
|
export * from './service-configuration.type';
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsdUNBQXVDLENBQUE7QUFDckQsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdDQUFnQyxDQUFBO0FBQzlDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RhYmxlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vYWdncmVnYXRlLWZ1bmN0aW9uLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNpYy1leHByZXNzaW9uLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maWcudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZ3VyZS1tZXNzYWdlLXNlcnZpY2UtYXJncy50eXBlJ1xuZXhwb3J0ICogZnJvbSAnLi9jb25maWd1cmUtc2VydmljZS1hcmdzLnR5cGUnXG5leHBvcnQgKiBmcm9tICcuL2RhdGUtY3VzdG9tLWNsYXNzLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLWZpbHRlci1mdW5jdGlvbi50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3ItZGF0YS50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZXhwcmVzc2lvbi50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyLWV4cHJlc3Npb24udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tbGF5b3V0LWRldGFpbC1jb21wb25lbnQtZGF0YS50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS12YWx1ZS1vcHRpb25zLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9odHRwLXJlcXVlc3Qtb3B0aW9ucy50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbWVudS1yb290LWl0ZW0udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL28tYnJlYWRjcnVtYi1pdGVtLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWNvbXBvbmVudC1wZXJtaXNzaW9ucy50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vby1kYXRlLXZhbHVlLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWZpbHRlci1idWlsZGVyLXZhbHVlcy50eXBlJ1xuZXhwb3J0ICogZnJvbSAnLi9vLWZvcm0taW5pdGlhbGl6YXRpb24tb3B0aW9ucy50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vby1mb3JtLXBlcm1pc3Npb25zLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWlucHV0cy1vcHRpb25zLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWxpc3QtaW5pdGlhbGl6YXRpb24tb3B0aW9ucy50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vby1tYXQtZXJyb3IudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL28tcGVybWlzc2lvbnMtZGVmaW5pdGlvbi50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vby1wZXJtaXNzaW9ucy50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vby1yb3V0ZS1wZXJtaXNzaW9ucy50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vb250aW1pemUtZWUtcGVybWlzc2lvbnMtY29uZmlnLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vbnRpbWl6ZS1wZXJtaXNzaW9ucy1jb25maWcudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL29wZXJhdGlvbi1mdW5jdGlvbi50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcnktZGF0YS1hcmdzLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWljay1maWx0ZXItZnVuY3Rpb24udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3JlbW90ZS1jb25maWd1cmF0aW9uLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLXJlcXVlc3QtcGFyYW0udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb24taW5mby50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3FsLW9yZGVyLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWdyb3VwZWQtY29sdW1uLXR5cGVzLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWZpbHRlci1kZWZpbml0aW9uLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vby1nbG9iYWwtY29uZmlnLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wcmVmZXJlbmNlcy50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcnktcGFyYW1zLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9qc29uLXF1ZXJ5LXBhcmFtZXRlci50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3ItZm9ybS12YWxpZGF0aW9uLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLWNvbmZpZ3VyYXRpb24udHlwZSc7XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25maWd1cmF0aW9uLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvc2VydmljZS1jb25maWd1cmF0aW9uLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlc3Npb25JbmZvIH0gZnJvbSBcIi4vc2Vzc2lvbi1pbmZvLnR5cGVcIjtcblxuZXhwb3J0IHR5cGUgU2VydmljZUNvbmZpZyA9IHtcbiAgW2tleTogc3RyaW5nXToge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBzZXJ2aWNlVHlwZT86IHN0cmluZztcbiAgICAvKiogVVJMIHVzZWQgZ2xvYmFsbHkgZm9yIHNlbmRpbmcgSFRUUCByZXF1ZXN0cyAqL1xuICAgIHVybEJhc2U/OiBzdHJpbmc7XG4gICAgLyoqIFNlc3Npb24gaW5mb3JtYXRpb24gKi9cbiAgICBzZXNzaW9uPzogU2Vzc2lvbkluZm87XG4gICAgLyogKE9udGltaXplIEJvb3QgMi54IG9yIGVhcmxpZXIpIEFQSSBlbmRwb2ludCB1c2VkIHRvIGdlbmVyYXRlIGV4cG9ydCBmaWxlcyAoZS5nLiwgQ1NWLCBFeGNlbCwgUERGKSBmcm9tIGFuIG8tdGFibGUuKi9cbiAgICBleHBvcnRQYXRoPzogc3RyaW5nO1xuICAgIC8qIChPbnRpbWl6ZSBCb290IDIueCBvciBlYXJsaWVyKSBBUEkgZW5kcG9pbnQgdXNlZCB0byBkb3dubG9hZCBhIHByZXZpb3VzbHkgZXhwb3J0ZWQgZmlsZSB2aWEgaXRzIGZpbGUgSUQuKi9cbiAgICBkb3dubG9hZFBhdGg/OnN0cmluZ1xuICB9O1xufTtcbmV4cG9ydCB0eXBlIE9udGltaXplU2VydmljZUNvbmZpZyA9IFNlcnZpY2VDb25maWcgJiB7XG4gIGZpbGVNYW5hZ2VyUGF0aD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEpTT05BUElTZXJ2aWNlQ29uZmlnID0gU2VydmljZUNvbmZpZyAmIHtcbiAgZGVsaW1pdGVyPzogc3RyaW5nO1xufTtcblxuIl19
|
|
@@ -10,4 +10,5 @@ export * from './o-table-initialization-options.type';
|
|
|
10
10
|
export * from './o-table-menu-permissions.type';
|
|
11
11
|
export * from './o-table-permissions.type';
|
|
12
12
|
export * from './o-table-global-config.type';
|
|
13
|
-
|
|
13
|
+
export * from './o-table-expandable-row-state.type';
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvdGFibGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vby1jb2x1bW4tYWdncmVnYXRlLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWNvbHVtbi1kaXNwbGF5LnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWNvbHVtbi1zZWFyY2hhYmxlLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWNvbHVtbi10b29sdGlwLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWNvbHVtbi12YWx1ZS1maWx0ZXIudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL28tdGFibGUtY29uZmlndXJhdGlvbi50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vby10YWJsZS1maWx0ZXItYnktY29sdW1uLWRhdGEudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL28tdGFibGUtZmlsdGVyLXN0YXR1cy50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vby10YWJsZS1pbml0aWFsaXphdGlvbi1vcHRpb25zLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLXRhYmxlLW1lbnUtcGVybWlzc2lvbnMudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL28tdGFibGUtcGVybWlzc2lvbnMudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL28tdGFibGUtZ2xvYmFsLWNvbmZpZy50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vby10YWJsZS1leHBhbmRhYmxlLXJvdy1zdGF0ZS50eXBlJztcbiJdfQ==
|
|
@@ -6,4 +6,4 @@ export var ColumnValueFilterOperator;
|
|
|
6
6
|
ColumnValueFilterOperator[ColumnValueFilterOperator["BETWEEN"] = 3] = "BETWEEN";
|
|
7
7
|
ColumnValueFilterOperator[ColumnValueFilterOperator["EQUAL"] = 4] = "EQUAL";
|
|
8
8
|
})(ColumnValueFilterOperator || (ColumnValueFilterOperator = {}));
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1jb2x1bW4tdmFsdWUtZmlsdGVyLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvdGFibGUvby1jb2x1bW4tdmFsdWUtZmlsdGVyLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVkseUJBQXdFO0FBQXBGLFdBQVkseUJBQXlCO0lBQUcscUVBQUUsQ0FBQTtJQUFFLHFGQUFVLENBQUE7SUFBRSxxRkFBVSxDQUFBO0lBQUUsK0VBQU8sQ0FBQTtJQUFFLDJFQUFLLENBQUE7QUFBQyxDQUFDLEVBQXhFLHlCQUF5QixLQUF6Qix5QkFBeUIsUUFBK0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFeHByZXNzaW9uIH0gZnJvbSBcIi4uL2V4cHJlc3Npb24udHlwZVwiO1xuXG5leHBvcnQgZW51bSBDb2x1bW5WYWx1ZUZpbHRlck9wZXJhdG9yIHsgSU4sIExFU1NfRVFVQUwsIE1PUkVfRVFVQUwsIEJFVFdFRU4sIEVRVUFMIH1cblxuZXhwb3J0IHR5cGUgT0NvbHVtblZhbHVlRmlsdGVyID0ge1xuICBhdHRyOiBzdHJpbmc7XG4gIG9wZXJhdG9yOiBDb2x1bW5WYWx1ZUZpbHRlck9wZXJhdG9yO1xuICB2YWx1ZXM6IGFueTtcbiAgYXZhaWxhYmxlVmFsdWVzOiBhbnlbXTtcbiAgZmlsdGVyVmFsdWVzSW5EYXRhOiAnY3VycmVudC1wYWdlJyB8ICdhbGwtZGF0YSc7XG4gIGZpbHRlckV4cHJlc2lvbiA6RXhwcmVzc2lvblxufTtcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1leHBhbmRhYmxlLXJvdy1zdGF0ZS50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3R5cGVzL3RhYmxlL28tdGFibGUtZXhwYW5kYWJsZS1yb3ctc3RhdGUudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgT1RhYmxlRXhwYW5kYWJsZVJvd1N0YXRlID0ge1xuICBrZXlzOiB7IFtrOiBzdHJpbmddOiBhbnkgfTtcbn07XG4iXX0=
|
|
@@ -124,4 +124,6 @@ Codes.VISIBLE_EXPORT_BUTTONS = ['xlsx', 'pdf', 'html'];
|
|
|
124
124
|
Codes.VISIBLE_EXPORT_BUTTONS3X = ['xlsx', 'pdf', 'csv'];
|
|
125
125
|
Codes.DEFAULT_CHANGE_EVENT = 'onValueChange';
|
|
126
126
|
Codes.TYPES_DATE_GROUPS = ["YEAR", "MONTH", "YEAR_MONTH", "YEAR_MONTH_DAY"];
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdXRpbC9jb2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLE9BQU8sS0FBSztJQThIaEIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQWE7UUFDcEMsT0FBTyxLQUFLLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBYTtRQUNuQyxPQUFPLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUI7UUFDdEIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2YsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDOUIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFjO1FBQ2hDLE9BQU8sQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRUQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQWdCO1FBRXhDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFL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QUM7QUFDdkMsa0JBQVksR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFeEMsNkJBQXVCLEdBQW1CLFNBQVMsQ0FBQztBQUNwRCw0QkFBc0IsR0FBbUIsUUFBUSxDQUFDO0FBQ2xELDRCQUFzQixHQUFhLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMzRCw4QkFBd0IsR0FBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFNUQsMEJBQW9CLEdBQWtCLGVBQWUsQ0FBQztBQUN0RCx1QkFBaUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBPQXBwTGF5b3V0TW9kZSA9ICdtb2JpbGUnIHwgJ2Rlc2t0b3AnO1xuZXhwb3J0IHR5cGUgT1NpZGVuYXZNb2RlID0gJ292ZXInIHwgJ3B1c2gnIHwgJ3NpZGUnO1xuZXhwb3J0IHR5cGUgQ0hBTkdFX0VWRU5UUyA9ICdvblZhbHVlQ2hhbmdlJyB8ICdvbkNoYW5nZSc7XG5cbmV4cG9ydCB0eXBlIE9Sb3dIZWlnaHQgPSAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnO1xuZXhwb3J0IHR5cGUgT1RhYmxlRWRpdGlvbk1vZGUgPSAnbm9uZScgfCAnY2xpY2snIHwgJ2RibGNsaWNrJyB8ICdkb3VibGVjbGljayc7XG5leHBvcnQgdHlwZSBPVGFibGVEZXRhaWxNb2RlID0gJ25vbmUnIHwgJ2NsaWNrJyB8ICdkYmxjbGljaycgfCAnZG91YmxlY2xpY2snO1xuZXhwb3J0IGNsYXNzIENvZGVzIHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBR0lOQVRFRF9RVUVSWV9NRVRIT0QgPSAnYWR2YW5jZWRRdWVyeSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVMRVRFX01FVEhPRCA9ICdkZWxldGUnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElOU0VSVF9NRVRIT0QgPSAnaW5zZXJ0JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBVUERBVEVfTUVUSE9EID0gJ3VwZGF0ZSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUVVFUllfTUVUSE9EID0gJ3F1ZXJ5JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBRVUVSWUJZSURfTUVUSE9EID0gJ3F1ZXJ5QnlJZCc7XG5cbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX1FVRVJZX1JPV1MgPSAxMDtcbiAgcHVibGljIHN0YXRpYyBQQUdFX1NJWkVfT1BUSU9OUyA9IFsxMCwgMjUsIDUwLCAxMDBdO1xuXG4gIHB1YmxpYyBzdGF0aWMgREVUQUlMX0lDT04gPSAnY2hldnJvbl9yaWdodCc7XG4gIHB1YmxpYyBzdGF0aWMgRURJVF9JQ09OID0gJ21vZGVfZWRpdCc7XG5cbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX1JPV19IRUlHSFQgPSAnbWVkaXVtJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVkFJTEFCTEVfUk9XX0hFSUdIVFNfVkFMVUVTID0gWydzbWFsbCcsICdtZWRpdW0nLCAnbGFyZ2UnXTtcblxuICBwdWJsaWMgc3RhdGljIERFVEFJTF9NT0RFX05PTkUgPSAnbm9uZSc7XG4gIHB1YmxpYyBzdGF0aWMgREVUQUlMX01PREVfQ0xJQ0sgPSAnY2xpY2snO1xuICBwdWJsaWMgc3RhdGljIERFVEFJTF9NT0RFX0RCTENMSUNLX1ZBTFVFUyA9IFsnZGJsY2xpY2snLCAnZG91YmxlY2xpY2snXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVkFJTEFCTEVfREVUQUlMX01PREVTID0gW0NvZGVzLkRFVEFJTF9NT0RFX05PTkUsIENvZGVzLkRFVEFJTF9NT0RFX0NMSUNLLCAuLi5Db2Rlcy5ERVRBSUxfTU9ERV9EQkxDTElDS19WQUxVRVNdO1xuXG4gIHB1YmxpYyBzdGF0aWMgRURJVElPTl9NT0RFX05PTkUgPSAnbm9uZSc7XG4gIHB1YmxpYyBzdGF0aWMgRURJVElPTl9NT0RFX0NMSUNLID0gJ2NsaWNrJztcbiAgcHVibGljIHN0YXRpYyBFRElUSU9OX01PREVfREJMQ0xJQ0tfVkFMVUVTID0gWydkYmxjbGljaycsICdkb3VibGVjbGljayddO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWQUlMQUJMRV9NT0RFUyA9IFtDb2Rlcy5FRElUSU9OX01PREVfTk9ORSwgQ29kZXMuRURJVElPTl9NT0RFX0NMSUNLLCAuLi5Db2Rlcy5FRElUSU9OX01PREVfREJMQ0xJQ0tfVkFMVUVTXTtcblxuICBwdWJsaWMgc3RhdGljIFNFTEVDVElPTl9NT0RFX05PTkUgPSAnbm9uZSc7XG4gIHB1YmxpYyBzdGF0aWMgU0VMRUNUSU9OX01PREVfU0lOR0xFID0gJ3NpbmdsZSc7XG4gIHB1YmxpYyBzdGF0aWMgU0VMRUNUSU9OX01PREVfTVVMVElQTEUgPSAnbXVsdGlwbGUnO1xuXG4gIHB1YmxpYyBzdGF0aWMgRVhQT1JUX01PREVfVklTSUJMRSA9ICd2aXNpYmxlJztcbiAgcHVibGljIHN0YXRpYyBFWFBPUlRfTU9ERV9MT0NBTCA9ICdsb2NhbCc7XG4gIHB1YmxpYyBzdGF0aWMgRVhQT1JUX01PREVfQUxMID0gJ2FsbCc7XG5cbiAgcHVibGljIHN0YXRpYyBIWVBIRU5fU0VQQVJBVE9SID0gJy0nO1xuICBwdWJsaWMgc3RhdGljIFNQQUNFX1NFUEFSQVRPUiA9ICcgJztcbiAgcHVibGljIHN0YXRpYyBDT0xVTU5TX0FMSUFTX1NFUEFSQVRPUiA9ICc6JztcbiAgcHVibGljIHN0YXRpYyBBUlJBWV9JTlBVVF9TRVBBUkFUT1IgPSAnOyc7XG4gIHB1YmxpYyBzdGF0aWMgVFlQRV9TRVBBUkFUT1IgPSAnOic7XG4gIHB1YmxpYyBzdGF0aWMgVkFMVUVTX1NFUEFSQVRPUiA9ICc9JztcbiAgcHVibGljIHN0YXRpYyBBU0NfU09SVCA9ICdhc2MnO1xuICBwdWJsaWMgc3RhdGljIERFU0NfU09SVCA9ICdkZXNjJztcblxuICBwdWJsaWMgc3RhdGljIFRZUEVfSU5UID0gJ2ludCc7XG5cbiAgcHVibGljIHN0YXRpYyBST1VURV9TRVBBUkFUT1IgPSAnLyc7XG4gIHB1YmxpYyBzdGF0aWMgUk9VVEVfVkFSSUFCTEVfQ0hBUiA9ICc6JztcblxuICBwdWJsaWMgc3RhdGljIFBBUkVOVF9LRVlTX0tFWSA9ICdwayc7XG4gIHB1YmxpYyBzdGF0aWMgUVVFUllfUEFSQU1TID0gJ3F1ZXJ5UGFyYW1zJztcbiAgcHVibGljIHN0YXRpYyBJU19ERVRBSUwgPSAnaXNkZXRhaWwnO1xuXG4gIHB1YmxpYyBzdGF0aWMgTEFOR1VBR0VfS0VZID0gJ2xhbmcnO1xuICBwdWJsaWMgc3RhdGljIFNFU1NJT05fS0VZID0gJ3Nlc3Npb24nO1xuICBwdWJsaWMgc3RhdGljIFNFU1NJT05fRVhQSVJFRF9LRVkgPSAnc2Vzc2lvbi1leHBpcmVkJztcblxuICBwdWJsaWMgc3RhdGljIExPR0lOX1JPVVRFID0gJy9sb2dpbic7XG4gIHB1YmxpYyBzdGF0aWMgRk9SQklEREVOX1JPVVRFID0gJzQwMyc7XG4gIHB1YmxpYyBzdGF0aWMgREVGQVVMVF9FRElUX1JPVVRFID0gJ2VkaXQnO1xuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfREVUQUlMX1JPVVRFID0gdW5kZWZpbmVkO1xuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfSU5TRVJUX1JPVVRFID0gJ25ldyc7XG5cbiAgcHVibGljIHN0YXRpYyBJR05PUkVfQ0FOX0RFQUNUSVZBVEUgPSAnaWdub3JlX2Nhbl9kZWFjdGl2YXRlJztcbiAgcHVibGljIHN0YXRpYyBJTlNFUlRJT05fTU9ERSA9ICdpbnNlcnRpb25Nb2RlJztcblxuICBwdWJsaWMgc3RhdGljIE9OVElNSVpFX1NVQ0NFU1NGVUxfQ09ERSA9IDA7XG4gIHB1YmxpYyBzdGF0aWMgT05USU1JWkVfRkFJTEVEX0NPREUgPSAxO1xuICBwdWJsaWMgc3RhdGljIE9OVElNSVpFX1VOQVVUSE9SSVpFRF9DT0RFID0gMztcblxuICBwdWJsaWMgc3RhdGljIElDT05fUE9TSVRJT05fTEVGVCA9ICdsZWZ0JztcbiAgcHVibGljIHN0YXRpYyBJQ09OX1BPU0lUSU9OX1JJR0hUID0gJ3JpZ2h0JztcblxuICBwdWJsaWMgc3RhdGljIENPTFVNTl9USVRMRV9BTElHTl9TVEFSVCA9ICdzdGFydCc7XG4gIHB1YmxpYyBzdGF0aWMgQ09MVU1OX1RJVExFX0FMSUdOX0NFTlRFUiA9ICdjZW50ZXInO1xuICBwdWJsaWMgc3RhdGljIENPTFVNTl9USVRMRV9BTElHTl9FTkQgPSAnZW5kJztcbiAgcHVibGljIHN0YXRpYyBDT0xVTU5fVElUTEVfQUxJR05fQVVUTyA9ICdhdXRvJztcbiAgcHVibGljIHN0YXRpYyBBVkFJTEFCTEVfQ09MVU1OX1RJVExFX0FMSUdOUyA9XG4gICAgW0NvZGVzLkNPTFVNTl9USVRMRV9BTElHTl9TVEFSVCwgQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0NFTlRFUiwgQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0VORCwgQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0FVVE9dO1xuXG4gIHB1YmxpYyBzdGF0aWMgT19NQVRfRVJST1JfU1RBTkRBUkQgPSAnc3RhbmRhcmQnO1xuICBwdWJsaWMgc3RhdGljIE9fTUFUX0VSUk9SX0xJVEUgPSAnbGl0ZSc7XG5cbiAgcHVibGljIHN0YXRpYyBPX0lOUFVUU19PUFRJT05TX0NPTE9SX0FDQ0VOVCA9ICdhY2NlbnQnO1xuICBwdWJsaWMgc3RhdGljIEhvdXJGb3JtYXQgPSB7XG4gICAgVFdFTFZFOiAnaGg6bW0gYScsXG4gICAgVFdFTlRZX0ZPVVI6ICdISDptbSBhJyxcbiAgfTtcblxuICAvLyBPRm9ybUNvbXBvbmVudFxuICBwdWJsaWMgc3RhdGljIENMT1NFX0RFVEFJTF9BQ1RJT046IHN0cmluZyA9ICdDTE9TRSc7XG4gIHB1YmxpYyBzdGF0aWMgQkFDS19BQ1RJT046IHN0cmluZyA9ICdCQUNLJztcbiAgcHVibGljIHN0YXRpYyBSRUxPQURfQUNUSU9OOiBzdHJpbmcgPSAnUkVMT0FEJztcbiAgcHVibGljIHN0YXRpYyBHT19FRElUX0FDVElPTjogc3RyaW5nID0gJ0dPX0VESVQnO1xuICBwdWJsaWMgc3RhdGljIEVESVRfQUNUSU9OOiBzdHJpbmcgPSAnRURJVCc7XG4gIHB1YmxpYyBzdGF0aWMgSU5TRVJUX0FDVElPTjogc3RyaW5nID0gJ0lOU0VSVCc7XG4gIHB1YmxpYyBzdGF0aWMgR09fSU5TRVJUX0FDVElPTjogc3RyaW5nID0gJ0dPX0lOU0VSVCc7XG4gIHB1YmxpYyBzdGF0aWMgREVMRVRFX0FDVElPTjogc3RyaW5nID0gJ0RFTEVURSc7XG4gIHB1YmxpYyBzdGF0aWMgVU5ET19MQVNUX0NIQU5HRV9BQ1RJT046IHN0cmluZyA9ICdVTkRPX0xBU1RfQ0hBTkdFJztcblxuICAvLyBPVGFibGVDb21wb25lbnRcbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX0NPTFVNTl9NSU5fV0lEVEggPSA4MDtcbiAgcHVibGljIHN0YXRpYyBOQU1FX0NPTFVNTl9TRUxFQ1QgPSAnc2VsZWN0JztcbiAgcHVibGljIHN0YXRpYyBOQU1FX0NPTFVNTl9FWFBBTkRBQkxFID0gJ2V4cGFuZGFibGUnO1xuICBwdWJsaWMgc3RhdGljIFNVRkZJWF9DT0xVTU5fSU5TRVJUQUJMRSA9ICdfaW5zZXJ0YWJsZSc7XG4gIHB1YmxpYyBzdGF0aWMgTElNSVRfU0NST0xMVklSVFVBTCA9IDUwO1xuXG4gIHB1YmxpYyBzdGF0aWMgVFdFTlRZX0ZPVVJfSE9VUl9GT1JNQVQgPSAyNDtcbiAgcHVibGljIHN0YXRpYyBUV0VMVkVfRk9VUl9IT1VSX0ZPUk1BVCA9IDEyO1xuXG4gIHB1YmxpYyBzdGF0aWMgT0FwcExheW91dE1vZGVzOiBPQXBwTGF5b3V0TW9kZVtdID0gWydtb2JpbGUnLCAnZGVza3RvcCddO1xuICBwdWJsaWMgc3RhdGljIE9TaWRlbmF2TW9kZXM6IE9TaWRlbmF2TW9kZVtdID0gWydvdmVyJywgJ3B1c2gnLCAnc2lkZSddO1xuXG4gIHB1YmxpYyBzdGF0aWMgT0FwcExheW91dE1vZGUgPSBbJ21vYmlsZScsICdkZXNrdG9wJ107XG4gIHB1YmxpYyBzdGF0aWMgT1NpZGVuYXZNb2RlID0gWydvdmVyJywgJ3B1c2gnLCAnc2lkZSddO1xuXG4gIHB1YmxpYyBzdGF0aWMgQVBQX0xBWU9VVF9NT0RFX0RFU0tUT1A6IE9BcHBMYXlvdXRNb2RlID0gJ2Rlc2t0b3AnO1xuICBwdWJsaWMgc3RhdGljIEFQUF9MQVlPVVRfTU9ERV9NT0JJTEU6IE9BcHBMYXlvdXRNb2RlID0gJ21vYmlsZSc7XG4gIHB1YmxpYyBzdGF0aWMgVklTSUJMRV9FWFBPUlRfQlVUVE9OUzogc3RyaW5nW10gPSBbJ3hsc3gnLCAncGRmJywgJ2h0bWwnXTtcbiAgcHVibGljIHN0YXRpYyBWSVNJQkxFX0VYUE9SVF9CVVRUT05TM1g6IHN0cmluZ1tdID0gWyd4bHN4JywgJ3BkZicsICdjc3YnXTtcblxuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfQ0hBTkdFX0VWRU5UOiBDSEFOR0VfRVZFTlRTID0gJ29uVmFsdWVDaGFuZ2UnO1xuICBwdWJsaWMgc3RhdGljIFRZUEVTX0RBVEVfR1JPVVBTID0gW1wiWUVBUlwiLCBcIk1PTlRIXCIsIFwiWUVBUl9NT05USFwiLCBcIllFQVJfTU9OVEhfREFZXCJdO1xuXG5cbiAgc3RhdGljIGlzRG91YmxlQ2xpY2tNb2RlKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQ29kZXMuREVUQUlMX01PREVfREJMQ0xJQ0tfVkFMVUVTLmluZGV4T2YodmFsdWUpICE9PSAtMTtcbiAgfVxuXG4gIHN0YXRpYyBpc1ZhbGlkUm93SGVpZ2h0KHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQ29kZXMuQVZBSUxBQkxFX1JPV19IRUlHSFRTX1ZBTFVFUy5pbmRleE9mKHZhbHVlKSAhPT0gLTE7XG4gIH1cblxuICBzdGF0aWMgZ2V0SXNEZXRhaWxPYmplY3QoKTogYW55IHtcbiAgICBjb25zdCByZXMgPSB7fTtcbiAgICByZXNbQ29kZXMuSVNfREVUQUlMXSA9ICd0cnVlJztcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgc3RhdGljIGZvcm1hdFN0cmluZyhmb3JtYXQ6IG51bWJlcikge1xuICAgIHJldHVybiAoZm9ybWF0ID09PSBDb2Rlcy5UV0VOVFlfRk9VUl9IT1VSX0ZPUk1BVCA/IENvZGVzLkhvdXJGb3JtYXQuVFdFTlRZX0ZPVVIgOiBDb2Rlcy5Ib3VyRm9ybWF0LlRXRUxWRSk7XG4gIH1cblxuICBzdGF0aWMgaXNIb3VySW5wdXRBbGxvd2VkKGU6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICAvLyBBbGxvdzogYmFja3NwYWNlLCBkZWxldGUsIHRhYiwgZXNjYXBlLCBlbnRlclxuICAgIGlmIChbNDYsIDgsIDksIDI3LCAxM10uc29tZShuID0+IG4gPT09IGUua2V5Q29kZSkgfHxcbiAgICAgIChlLmtleSA9PT0gJzonKSB8fFxuICAgICAgLy8gQWxsb3c6IEN0cmwvY21kK0FcbiAgICAgIChlLmtleUNvZGUgPT09IDY1ICYmIChlLmN0cmxLZXkgPT09IHRydWUgfHwgZS5tZXRhS2V5ID09PSB0cnVlKSkgfHxcbiAgICAgIC8vIEFsbG93OiBDdHJsL2NtZCtDXG4gICAgICAoZS5rZXlDb2RlID09PSA2NyAmJiAoZS5jdHJsS2V5ID09PSB0cnVlIHx8IGUubWV0YUtleSA9PT0gdHJ1ZSkpIHx8XG4gICAgICAvLyBBbGxvdzogQ3RybC9jbWQrWFxuICAgICAgKGUua2V5Q29kZSA9PT0gODggJiYgKGUuY3RybEtleSA9PT0gdHJ1ZSB8fCBlLm1ldGFLZXkgPT09IHRydWUpKSB8fFxuICAgICAgLy8gQWxsb3c6IGhvbWUsIGVuZCwgbGVmdCwgcmlnaHQsIHVwLCBkb3duXG4gICAgICAoZS5rZXlDb2RlID49IDM1ICYmIGUua2V5Q29kZSA8PSA0MCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gISgoZS5rZXlDb2RlIDwgNDggfHwgZS5rZXlDb2RlID4gNTcpICYmIChlLmtleUNvZGUgPCA5NiB8fCBlLmtleUNvZGUgPiAxMDUpKTtcbiAgfVxuICBzdGF0aWMgaXNWYWxpZEVkaXRpb25Nb2RlKGVkaXRpb25Nb2RlOiBPVGFibGVFZGl0aW9uTW9kZSkge1xuICAgIHJldHVybiBDb2Rlcy5BVkFJTEFCTEVfTU9ERVMuaW5kZXhPZihlZGl0aW9uTW9kZSkgIT09IC0xO1xuICB9XG4gIHN0YXRpYyBpc1ZhbGlkRGV0YWlsTW9kZShkZXRhaWxNb2RlOiBPVGFibGVEZXRhaWxNb2RlKTogYW55IHtcbiAgICByZXR1cm4gQ29kZXMuQVZBSUxBQkxFX0RFVEFJTF9NT0RFUy5pbmRleE9mKGRldGFpbE1vZGUpICE9PSAtMTtcbiAgfVxuXG59XG4iXX0=
|
|
127
|
+
Codes.TOOLTIP_DISPLAY_MODE = ['always', 'never', 'only-collapsed', 'only-expanded'];
|
|
128
|
+
Codes.TOOLTIP_DISPLAY_COLLAPSED = 'only-collapsed';
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdXRpbC9jb2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxNQUFNLE9BQU8sS0FBSztJQWdJaEIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQWE7UUFDcEMsT0FBTyxLQUFLLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBYTtRQUNuQyxPQUFPLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUI7UUFDdEIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2YsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDOUIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFjO1FBQ2hDLE9BQU8sQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRUQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQWdCO1FBRXhDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFL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QUM7QUFDdkMsa0JBQVksR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFeEMsNkJBQXVCLEdBQW1CLFNBQVMsQ0FBQztBQUNwRCw0QkFBc0IsR0FBbUIsUUFBUSxDQUFDO0FBQ2xELDRCQUFzQixHQUFhLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMzRCw4QkFBd0IsR0FBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFNUQsMEJBQW9CLEdBQWtCLGVBQWUsQ0FBQztBQUN0RCx1QkFBaUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDN0QsMEJBQW9CLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBQzlFLCtCQUF5QixHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgT0FwcExheW91dE1vZGUgPSAnbW9iaWxlJyB8ICdkZXNrdG9wJztcbmV4cG9ydCB0eXBlIE9TaWRlbmF2TW9kZSA9ICdvdmVyJyB8ICdwdXNoJyB8ICdzaWRlJztcbmV4cG9ydCB0eXBlIENIQU5HRV9FVkVOVFMgPSAnb25WYWx1ZUNoYW5nZScgfCAnb25DaGFuZ2UnO1xuXG5leHBvcnQgdHlwZSBPUm93SGVpZ2h0ID0gJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJztcbmV4cG9ydCB0eXBlIE9UYWJsZUVkaXRpb25Nb2RlID0gJ25vbmUnIHwgJ2NsaWNrJyB8ICdkYmxjbGljaycgfCAnZG91YmxlY2xpY2snO1xuZXhwb3J0IHR5cGUgT1RhYmxlRGV0YWlsTW9kZSA9ICdub25lJyB8ICdjbGljaycgfCAnZGJsY2xpY2snIHwgJ2RvdWJsZWNsaWNrJztcbmV4cG9ydCB0eXBlIE9Ub29sdGlwRGlzcGxheU1vZGUgPSAnYWx3YXlzJ3wgJ25ldmVyJyB8ICdvbmx5LWNvbGxhcHNlZCd8ICdvbmx5LWV4cGFuZGVkJztcblxuZXhwb3J0IGNsYXNzIENvZGVzIHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBR0lOQVRFRF9RVUVSWV9NRVRIT0QgPSAnYWR2YW5jZWRRdWVyeSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVMRVRFX01FVEhPRCA9ICdkZWxldGUnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElOU0VSVF9NRVRIT0QgPSAnaW5zZXJ0JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBVUERBVEVfTUVUSE9EID0gJ3VwZGF0ZSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUVVFUllfTUVUSE9EID0gJ3F1ZXJ5JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBRVUVSWUJZSURfTUVUSE9EID0gJ3F1ZXJ5QnlJZCc7XG5cbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX1FVRVJZX1JPV1MgPSAxMDtcbiAgcHVibGljIHN0YXRpYyBQQUdFX1NJWkVfT1BUSU9OUyA9IFsxMCwgMjUsIDUwLCAxMDBdO1xuXG4gIHB1YmxpYyBzdGF0aWMgREVUQUlMX0lDT04gPSAnY2hldnJvbl9yaWdodCc7XG4gIHB1YmxpYyBzdGF0aWMgRURJVF9JQ09OID0gJ21vZGVfZWRpdCc7XG5cbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX1JPV19IRUlHSFQgPSAnbWVkaXVtJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVkFJTEFCTEVfUk9XX0hFSUdIVFNfVkFMVUVTID0gWydzbWFsbCcsICdtZWRpdW0nLCAnbGFyZ2UnXTtcblxuICBwdWJsaWMgc3RhdGljIERFVEFJTF9NT0RFX05PTkUgPSAnbm9uZSc7XG4gIHB1YmxpYyBzdGF0aWMgREVUQUlMX01PREVfQ0xJQ0sgPSAnY2xpY2snO1xuICBwdWJsaWMgc3RhdGljIERFVEFJTF9NT0RFX0RCTENMSUNLX1ZBTFVFUyA9IFsnZGJsY2xpY2snLCAnZG91YmxlY2xpY2snXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVkFJTEFCTEVfREVUQUlMX01PREVTID0gW0NvZGVzLkRFVEFJTF9NT0RFX05PTkUsIENvZGVzLkRFVEFJTF9NT0RFX0NMSUNLLCAuLi5Db2Rlcy5ERVRBSUxfTU9ERV9EQkxDTElDS19WQUxVRVNdO1xuXG4gIHB1YmxpYyBzdGF0aWMgRURJVElPTl9NT0RFX05PTkUgPSAnbm9uZSc7XG4gIHB1YmxpYyBzdGF0aWMgRURJVElPTl9NT0RFX0NMSUNLID0gJ2NsaWNrJztcbiAgcHVibGljIHN0YXRpYyBFRElUSU9OX01PREVfREJMQ0xJQ0tfVkFMVUVTID0gWydkYmxjbGljaycsICdkb3VibGVjbGljayddO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWQUlMQUJMRV9NT0RFUyA9IFtDb2Rlcy5FRElUSU9OX01PREVfTk9ORSwgQ29kZXMuRURJVElPTl9NT0RFX0NMSUNLLCAuLi5Db2Rlcy5FRElUSU9OX01PREVfREJMQ0xJQ0tfVkFMVUVTXTtcblxuICBwdWJsaWMgc3RhdGljIFNFTEVDVElPTl9NT0RFX05PTkUgPSAnbm9uZSc7XG4gIHB1YmxpYyBzdGF0aWMgU0VMRUNUSU9OX01PREVfU0lOR0xFID0gJ3NpbmdsZSc7XG4gIHB1YmxpYyBzdGF0aWMgU0VMRUNUSU9OX01PREVfTVVMVElQTEUgPSAnbXVsdGlwbGUnO1xuXG4gIHB1YmxpYyBzdGF0aWMgRVhQT1JUX01PREVfVklTSUJMRSA9ICd2aXNpYmxlJztcbiAgcHVibGljIHN0YXRpYyBFWFBPUlRfTU9ERV9MT0NBTCA9ICdsb2NhbCc7XG4gIHB1YmxpYyBzdGF0aWMgRVhQT1JUX01PREVfQUxMID0gJ2FsbCc7XG5cbiAgcHVibGljIHN0YXRpYyBIWVBIRU5fU0VQQVJBVE9SID0gJy0nO1xuICBwdWJsaWMgc3RhdGljIFNQQUNFX1NFUEFSQVRPUiA9ICcgJztcbiAgcHVibGljIHN0YXRpYyBDT0xVTU5TX0FMSUFTX1NFUEFSQVRPUiA9ICc6JztcbiAgcHVibGljIHN0YXRpYyBBUlJBWV9JTlBVVF9TRVBBUkFUT1IgPSAnOyc7XG4gIHB1YmxpYyBzdGF0aWMgVFlQRV9TRVBBUkFUT1IgPSAnOic7XG4gIHB1YmxpYyBzdGF0aWMgVkFMVUVTX1NFUEFSQVRPUiA9ICc9JztcbiAgcHVibGljIHN0YXRpYyBBU0NfU09SVCA9ICdhc2MnO1xuICBwdWJsaWMgc3RhdGljIERFU0NfU09SVCA9ICdkZXNjJztcblxuICBwdWJsaWMgc3RhdGljIFRZUEVfSU5UID0gJ2ludCc7XG5cbiAgcHVibGljIHN0YXRpYyBST1VURV9TRVBBUkFUT1IgPSAnLyc7XG4gIHB1YmxpYyBzdGF0aWMgUk9VVEVfVkFSSUFCTEVfQ0hBUiA9ICc6JztcblxuICBwdWJsaWMgc3RhdGljIFBBUkVOVF9LRVlTX0tFWSA9ICdwayc7XG4gIHB1YmxpYyBzdGF0aWMgUVVFUllfUEFSQU1TID0gJ3F1ZXJ5UGFyYW1zJztcbiAgcHVibGljIHN0YXRpYyBJU19ERVRBSUwgPSAnaXNkZXRhaWwnO1xuXG4gIHB1YmxpYyBzdGF0aWMgTEFOR1VBR0VfS0VZID0gJ2xhbmcnO1xuICBwdWJsaWMgc3RhdGljIFNFU1NJT05fS0VZID0gJ3Nlc3Npb24nO1xuICBwdWJsaWMgc3RhdGljIFNFU1NJT05fRVhQSVJFRF9LRVkgPSAnc2Vzc2lvbi1leHBpcmVkJztcblxuICBwdWJsaWMgc3RhdGljIExPR0lOX1JPVVRFID0gJy9sb2dpbic7XG4gIHB1YmxpYyBzdGF0aWMgRk9SQklEREVOX1JPVVRFID0gJzQwMyc7XG4gIHB1YmxpYyBzdGF0aWMgREVGQVVMVF9FRElUX1JPVVRFID0gJ2VkaXQnO1xuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfREVUQUlMX1JPVVRFID0gdW5kZWZpbmVkO1xuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfSU5TRVJUX1JPVVRFID0gJ25ldyc7XG5cbiAgcHVibGljIHN0YXRpYyBJR05PUkVfQ0FOX0RFQUNUSVZBVEUgPSAnaWdub3JlX2Nhbl9kZWFjdGl2YXRlJztcbiAgcHVibGljIHN0YXRpYyBJTlNFUlRJT05fTU9ERSA9ICdpbnNlcnRpb25Nb2RlJztcblxuICBwdWJsaWMgc3RhdGljIE9OVElNSVpFX1NVQ0NFU1NGVUxfQ09ERSA9IDA7XG4gIHB1YmxpYyBzdGF0aWMgT05USU1JWkVfRkFJTEVEX0NPREUgPSAxO1xuICBwdWJsaWMgc3RhdGljIE9OVElNSVpFX1VOQVVUSE9SSVpFRF9DT0RFID0gMztcblxuICBwdWJsaWMgc3RhdGljIElDT05fUE9TSVRJT05fTEVGVCA9ICdsZWZ0JztcbiAgcHVibGljIHN0YXRpYyBJQ09OX1BPU0lUSU9OX1JJR0hUID0gJ3JpZ2h0JztcblxuICBwdWJsaWMgc3RhdGljIENPTFVNTl9USVRMRV9BTElHTl9TVEFSVCA9ICdzdGFydCc7XG4gIHB1YmxpYyBzdGF0aWMgQ09MVU1OX1RJVExFX0FMSUdOX0NFTlRFUiA9ICdjZW50ZXInO1xuICBwdWJsaWMgc3RhdGljIENPTFVNTl9USVRMRV9BTElHTl9FTkQgPSAnZW5kJztcbiAgcHVibGljIHN0YXRpYyBDT0xVTU5fVElUTEVfQUxJR05fQVVUTyA9ICdhdXRvJztcbiAgcHVibGljIHN0YXRpYyBBVkFJTEFCTEVfQ09MVU1OX1RJVExFX0FMSUdOUyA9XG4gICAgW0NvZGVzLkNPTFVNTl9USVRMRV9BTElHTl9TVEFSVCwgQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0NFTlRFUiwgQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0VORCwgQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0FVVE9dO1xuXG4gIHB1YmxpYyBzdGF0aWMgT19NQVRfRVJST1JfU1RBTkRBUkQgPSAnc3RhbmRhcmQnO1xuICBwdWJsaWMgc3RhdGljIE9fTUFUX0VSUk9SX0xJVEUgPSAnbGl0ZSc7XG5cbiAgcHVibGljIHN0YXRpYyBPX0lOUFVUU19PUFRJT05TX0NPTE9SX0FDQ0VOVCA9ICdhY2NlbnQnO1xuICBwdWJsaWMgc3RhdGljIEhvdXJGb3JtYXQgPSB7XG4gICAgVFdFTFZFOiAnaGg6bW0gYScsXG4gICAgVFdFTlRZX0ZPVVI6ICdISDptbSBhJyxcbiAgfTtcblxuICAvLyBPRm9ybUNvbXBvbmVudFxuICBwdWJsaWMgc3RhdGljIENMT1NFX0RFVEFJTF9BQ1RJT046IHN0cmluZyA9ICdDTE9TRSc7XG4gIHB1YmxpYyBzdGF0aWMgQkFDS19BQ1RJT046IHN0cmluZyA9ICdCQUNLJztcbiAgcHVibGljIHN0YXRpYyBSRUxPQURfQUNUSU9OOiBzdHJpbmcgPSAnUkVMT0FEJztcbiAgcHVibGljIHN0YXRpYyBHT19FRElUX0FDVElPTjogc3RyaW5nID0gJ0dPX0VESVQnO1xuICBwdWJsaWMgc3RhdGljIEVESVRfQUNUSU9OOiBzdHJpbmcgPSAnRURJVCc7XG4gIHB1YmxpYyBzdGF0aWMgSU5TRVJUX0FDVElPTjogc3RyaW5nID0gJ0lOU0VSVCc7XG4gIHB1YmxpYyBzdGF0aWMgR09fSU5TRVJUX0FDVElPTjogc3RyaW5nID0gJ0dPX0lOU0VSVCc7XG4gIHB1YmxpYyBzdGF0aWMgREVMRVRFX0FDVElPTjogc3RyaW5nID0gJ0RFTEVURSc7XG4gIHB1YmxpYyBzdGF0aWMgVU5ET19MQVNUX0NIQU5HRV9BQ1RJT046IHN0cmluZyA9ICdVTkRPX0xBU1RfQ0hBTkdFJztcblxuICAvLyBPVGFibGVDb21wb25lbnRcbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX0NPTFVNTl9NSU5fV0lEVEggPSA4MDtcbiAgcHVibGljIHN0YXRpYyBOQU1FX0NPTFVNTl9TRUxFQ1QgPSAnc2VsZWN0JztcbiAgcHVibGljIHN0YXRpYyBOQU1FX0NPTFVNTl9FWFBBTkRBQkxFID0gJ2V4cGFuZGFibGUnO1xuICBwdWJsaWMgc3RhdGljIFNVRkZJWF9DT0xVTU5fSU5TRVJUQUJMRSA9ICdfaW5zZXJ0YWJsZSc7XG4gIHB1YmxpYyBzdGF0aWMgTElNSVRfU0NST0xMVklSVFVBTCA9IDUwO1xuXG4gIHB1YmxpYyBzdGF0aWMgVFdFTlRZX0ZPVVJfSE9VUl9GT1JNQVQgPSAyNDtcbiAgcHVibGljIHN0YXRpYyBUV0VMVkVfRk9VUl9IT1VSX0ZPUk1BVCA9IDEyO1xuXG4gIHB1YmxpYyBzdGF0aWMgT0FwcExheW91dE1vZGVzOiBPQXBwTGF5b3V0TW9kZVtdID0gWydtb2JpbGUnLCAnZGVza3RvcCddO1xuICBwdWJsaWMgc3RhdGljIE9TaWRlbmF2TW9kZXM6IE9TaWRlbmF2TW9kZVtdID0gWydvdmVyJywgJ3B1c2gnLCAnc2lkZSddO1xuXG4gIHB1YmxpYyBzdGF0aWMgT0FwcExheW91dE1vZGUgPSBbJ21vYmlsZScsICdkZXNrdG9wJ107XG4gIHB1YmxpYyBzdGF0aWMgT1NpZGVuYXZNb2RlID0gWydvdmVyJywgJ3B1c2gnLCAnc2lkZSddO1xuXG4gIHB1YmxpYyBzdGF0aWMgQVBQX0xBWU9VVF9NT0RFX0RFU0tUT1A6IE9BcHBMYXlvdXRNb2RlID0gJ2Rlc2t0b3AnO1xuICBwdWJsaWMgc3RhdGljIEFQUF9MQVlPVVRfTU9ERV9NT0JJTEU6IE9BcHBMYXlvdXRNb2RlID0gJ21vYmlsZSc7XG4gIHB1YmxpYyBzdGF0aWMgVklTSUJMRV9FWFBPUlRfQlVUVE9OUzogc3RyaW5nW10gPSBbJ3hsc3gnLCAncGRmJywgJ2h0bWwnXTtcbiAgcHVibGljIHN0YXRpYyBWSVNJQkxFX0VYUE9SVF9CVVRUT05TM1g6IHN0cmluZ1tdID0gWyd4bHN4JywgJ3BkZicsICdjc3YnXTtcblxuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfQ0hBTkdFX0VWRU5UOiBDSEFOR0VfRVZFTlRTID0gJ29uVmFsdWVDaGFuZ2UnO1xuICBwdWJsaWMgc3RhdGljIFRZUEVTX0RBVEVfR1JPVVBTID0gW1wiWUVBUlwiLCBcIk1PTlRIXCIsIFwiWUVBUl9NT05USFwiLCBcIllFQVJfTU9OVEhfREFZXCJdO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRPT0xUSVBfRElTUExBWV9NT0RFID0gWydhbHdheXMnLCAnbmV2ZXInLCAnb25seS1jb2xsYXBzZWQnLCAnb25seS1leHBhbmRlZCddO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRPT0xUSVBfRElTUExBWV9DT0xMQVBTRUQgPSAnb25seS1jb2xsYXBzZWQnO1xuXG5cbiAgc3RhdGljIGlzRG91YmxlQ2xpY2tNb2RlKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQ29kZXMuREVUQUlMX01PREVfREJMQ0xJQ0tfVkFMVUVTLmluZGV4T2YodmFsdWUpICE9PSAtMTtcbiAgfVxuXG4gIHN0YXRpYyBpc1ZhbGlkUm93SGVpZ2h0KHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQ29kZXMuQVZBSUxBQkxFX1JPV19IRUlHSFRTX1ZBTFVFUy5pbmRleE9mKHZhbHVlKSAhPT0gLTE7XG4gIH1cblxuICBzdGF0aWMgZ2V0SXNEZXRhaWxPYmplY3QoKTogYW55IHtcbiAgICBjb25zdCByZXMgPSB7fTtcbiAgICByZXNbQ29kZXMuSVNfREVUQUlMXSA9ICd0cnVlJztcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgc3RhdGljIGZvcm1hdFN0cmluZyhmb3JtYXQ6IG51bWJlcikge1xuICAgIHJldHVybiAoZm9ybWF0ID09PSBDb2Rlcy5UV0VOVFlfRk9VUl9IT1VSX0ZPUk1BVCA/IENvZGVzLkhvdXJGb3JtYXQuVFdFTlRZX0ZPVVIgOiBDb2Rlcy5Ib3VyRm9ybWF0LlRXRUxWRSk7XG4gIH1cblxuICBzdGF0aWMgaXNIb3VySW5wdXRBbGxvd2VkKGU6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICAvLyBBbGxvdzogYmFja3NwYWNlLCBkZWxldGUsIHRhYiwgZXNjYXBlLCBlbnRlclxuICAgIGlmIChbNDYsIDgsIDksIDI3LCAxM10uc29tZShuID0+IG4gPT09IGUua2V5Q29kZSkgfHxcbiAgICAgIChlLmtleSA9PT0gJzonKSB8fFxuICAgICAgLy8gQWxsb3c6IEN0cmwvY21kK0FcbiAgICAgIChlLmtleUNvZGUgPT09IDY1ICYmIChlLmN0cmxLZXkgPT09IHRydWUgfHwgZS5tZXRhS2V5ID09PSB0cnVlKSkgfHxcbiAgICAgIC8vIEFsbG93OiBDdHJsL2NtZCtDXG4gICAgICAoZS5rZXlDb2RlID09PSA2NyAmJiAoZS5jdHJsS2V5ID09PSB0cnVlIHx8IGUubWV0YUtleSA9PT0gdHJ1ZSkpIHx8XG4gICAgICAvLyBBbGxvdzogQ3RybC9jbWQrWFxuICAgICAgKGUua2V5Q29kZSA9PT0gODggJiYgKGUuY3RybEtleSA9PT0gdHJ1ZSB8fCBlLm1ldGFLZXkgPT09IHRydWUpKSB8fFxuICAgICAgLy8gQWxsb3c6IGhvbWUsIGVuZCwgbGVmdCwgcmlnaHQsIHVwLCBkb3duXG4gICAgICAoZS5rZXlDb2RlID49IDM1ICYmIGUua2V5Q29kZSA8PSA0MCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gISgoZS5rZXlDb2RlIDwgNDggfHwgZS5rZXlDb2RlID4gNTcpICYmIChlLmtleUNvZGUgPCA5NiB8fCBlLmtleUNvZGUgPiAxMDUpKTtcbiAgfVxuICBzdGF0aWMgaXNWYWxpZEVkaXRpb25Nb2RlKGVkaXRpb25Nb2RlOiBPVGFibGVFZGl0aW9uTW9kZSkge1xuICAgIHJldHVybiBDb2Rlcy5BVkFJTEFCTEVfTU9ERVMuaW5kZXhPZihlZGl0aW9uTW9kZSkgIT09IC0xO1xuICB9XG4gIHN0YXRpYyBpc1ZhbGlkRGV0YWlsTW9kZShkZXRhaWxNb2RlOiBPVGFibGVEZXRhaWxNb2RlKTogYW55IHtcbiAgICByZXR1cm4gQ29kZXMuQVZBSUxBQkxFX0RFVEFJTF9NT0RFUy5pbmRleE9mKGRldGFpbE1vZGUpICE9PSAtMTtcbiAgfVxuXG59XG4iXX0=
|