@provoly/dashboard 0.23.0 → 0.23.2

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.
Files changed (49) hide show
  1. package/admin/admin.module.d.ts +1 -1
  2. package/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.d.ts +12 -2
  3. package/admin/i18n/en.translations.d.ts +5 -0
  4. package/admin/i18n/fr.translations.d.ts +6 -0
  5. package/admin/store/admin.effects.d.ts +7 -1
  6. package/esm2022/admin/admin.module.mjs +8 -5
  7. package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +67 -36
  8. package/esm2022/admin/i18n/en.translations.mjs +7 -2
  9. package/esm2022/admin/i18n/fr.translations.mjs +9 -3
  10. package/esm2022/admin/store/admin.effects.mjs +17 -5
  11. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +3 -3
  12. package/esm2022/lib/core/components/chips-selector/chips-selector.component.mjs +6 -3
  13. package/esm2022/lib/core/components/share/group-share/group-share.component.mjs +5 -4
  14. package/esm2022/lib/core/components/share/share.model.mjs +1 -1
  15. package/esm2022/lib/core/store/data-source/data-source.actions.mjs +2 -1
  16. package/esm2022/lib/core/store/data-source/data-source.effects.mjs +2 -8
  17. package/esm2022/lib/core/store/data-source/data-source.model.mjs +1 -1
  18. package/esm2022/lib/core/store/data-source/data-source.reducer.mjs +4 -1
  19. package/esm2022/lib/core/store/data-source/data-source.selectors.mjs +3 -1
  20. package/esm2022/lib/core/store/data-source/data-source.service.mjs +1 -1
  21. package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +3 -3
  22. package/fesm2022/provoly-dashboard-admin.mjs +97 -42
  23. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  24. package/fesm2022/provoly-dashboard-dataset.mjs +2 -2
  25. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  26. package/fesm2022/provoly-dashboard.mjs +18 -14
  27. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  28. package/lib/core/components/chips-selector/chips-selector.component.d.ts +2 -1
  29. package/lib/core/components/share/group-share/group-share.component.d.ts +4 -0
  30. package/lib/core/components/share/share.model.d.ts +6 -0
  31. package/lib/core/store/data-source/data-source.actions.d.ts +8 -3
  32. package/lib/core/store/data-source/data-source.effects.d.ts +3 -8
  33. package/lib/core/store/data-source/data-source.model.d.ts +2 -0
  34. package/lib/core/store/data-source/data-source.reducer.d.ts +2 -0
  35. package/lib/core/store/data-source/data-source.selectors.d.ts +1 -0
  36. package/lib/core/store/data-source/data-source.service.d.ts +2 -1
  37. package/package.json +37 -37
  38. package/styles/components/_o-chips-selector.scss +12 -1
  39. package/styles/components/_o-modal.scss +1 -1
  40. package/styles/components/_o-pry-admin-dataset-select.scss +13 -0
  41. package/styles/components/_o-tabs.scss +0 -1
  42. package/styles/components/_o-widget.scss +1 -0
  43. package/styles/main.scss +1 -0
  44. package/styles-theme/components-theme/_a-btn.theme.scss +1 -1
  45. package/styles-theme/components-theme/_a-checkbox.theme.scss +5 -0
  46. package/styles-theme/components-theme/_a-chip.theme.scss +1 -1
  47. package/styles-theme/components-theme/_a-form-field.theme.scss +5 -0
  48. package/styles-theme/components-theme/_o-chips-selector.theme.scss +9 -0
  49. package/styles-theme/main-theme.scss +1 -0
@@ -86,6 +86,6 @@ export declare class PryAdminModule {
86
86
  private pryTranslateService;
87
87
  constructor(pryTranslateService: PryI18nService);
88
88
  static ɵfac: i0.ɵɵFactoryDeclaration<PryAdminModule, never>;
89
- static ɵmod: i0.ɵɵNgModuleDeclaration<PryAdminModule, [typeof i1.PryAdminComponent, typeof i2.AdminEnvironmentComponent, typeof i3.AdminMetadataUserComponent, typeof i4.AdminClassesComponent, typeof i5.AdminPredicatesComponent, typeof i6.AdminPredicatesNewComponent, typeof i7.AdminPredicatesUpdateComponent, typeof i8.AdminPredicatesSelectComponent, typeof i9.AdminAbacRulesComponent, typeof i10.AdminMenuComponent, typeof i11.AdminLayoutComponent, typeof i12.AdminTitleComponent, typeof i11.AdminLayoutComponent, typeof i10.AdminMenuComponent, typeof i13.AdminMetadataComponent, typeof i14.AdminEnvironmentNewComponent, typeof i15.AdminEnvironmentUpdateComponent, typeof i16.AdminEnvironmentFormComponent, typeof i17.AdminNewMetadataComponent, typeof i18.AdminAbacRulesEditComponent, typeof i19.AdminAbacRulesViewComponent, typeof i20.AdminAbacRulesNewComponent, typeof i21.SelectMetadataComponent, typeof i22.SelectAttributeComponent, typeof i23.AttributeConditionComponent, typeof i24.MetadataConditionComponent, typeof i25.ComposedConditionComponent, typeof i26.AdminAbacRulesFormComponent, typeof i27.AdminUserNewMetadataComponent, typeof i28.AdminEditMetadataComponent, typeof i29.AdminPredicatesFormComponent, typeof i30.AdminEnvironmentSelectComponent, typeof i31.AdminUserEditMetadataComponent, typeof i29.AdminPredicatesFormComponent, typeof i32.FormMetadataComponent, typeof i33.AdminSelectMetadataComponent, typeof i34.AdminUserSelectMetadataComponent, typeof i35.AdminFieldsComponent, typeof i36.AdminFieldsNewComponent, typeof i34.AdminUserSelectMetadataComponent, typeof i37.AdminClassesFormComponent, typeof i38.AdminClassesNewComponent, typeof i39.AdminClassesViewComponent, typeof i40.AdminAttributesNewComponent, typeof i41.AdminAttributesFormComponent, typeof i42.AdminAttributesSelectComponent, typeof i43.AdminClassesSelectComponent, typeof i44.AdminFieldsFormComponent, typeof i45.AdminFieldsSelectComponent, typeof i46.AdminClassesEditComponent, typeof i47.AdminAttributesEditComponent, typeof i48.AdminFieldsEditComponent, typeof i49.AdminUserComponent, typeof i50.AdminUserSelectComponent, typeof i51.AdminRelationTypesComponent, typeof i52.AdminRelationTypesSelectComponent, typeof i53.AdminRelationTypesModalComponent, typeof i54.AdminLinksComponent, typeof i55.AdminLinksNewComponent, typeof i56.AdminMetadataRulesComponent, typeof i57.AdminSelectMetadataRulesComponent, typeof i58.AdminNewMetadataRulesComponent, typeof i59.AdminEditMetadataRulesComponent, typeof i60.AdminFormMetadataRulesComponent, typeof i61.AdminDatasetComponent, typeof i62.AdminEditDatasetComponent, typeof i63.AdminNewDatasetComponent, typeof i64.AdminSelectDatasetComponent, typeof i65.AdminFormDatasetComponent, typeof i66.AdminClassesCustomizeComponent, typeof i67.AdminClassesCustomizeTooltipComponent, typeof i68.AdminClassesCustomizeSymbolComponent, typeof i69.PryAssociationComponent], [typeof i70.CommonModule, typeof i71.PryCoreModule, typeof i72.AdminRoutingModule, typeof i73.StoreFeatureModule, typeof i73.StoreFeatureModule, typeof i73.StoreFeatureModule, typeof i73.StoreFeatureModule, typeof i73.StoreFeatureModule, typeof i73.StoreFeatureModule, typeof i73.StoreFeatureModule, typeof i73.StoreFeatureModule, typeof i73.StoreFeatureModule, typeof i73.StoreFeatureModule, typeof i74.EffectsFeatureModule, typeof i74.EffectsFeatureModule, typeof i74.EffectsFeatureModule, typeof i74.EffectsFeatureModule, typeof i74.EffectsFeatureModule, typeof i74.EffectsFeatureModule, typeof i74.EffectsFeatureModule, typeof i74.EffectsFeatureModule, typeof i74.EffectsFeatureModule, typeof i74.EffectsFeatureModule, typeof i71.PryIconModule, typeof i75.FormsModule, typeof i75.ReactiveFormsModule, typeof i71.PrySortModule, typeof i76.PryCheckboxModule, typeof i71.PryModalModule, typeof i71.PrySelectModule, typeof i77.PryListMetadataModule, typeof i71.PryToggleModule, typeof i78.OverlayModule, typeof i71.PryOverlayModule, typeof i79.DragDropModule, typeof i71.PryI18nModule, typeof i80.PryExpandPanelModule, typeof i81.PrySinceDateModule, typeof i82.PryDatasetModule], never>;
89
+ static ɵmod: i0.ɵɵNgModuleDeclaration<PryAdminModule, [typeof i1.PryAdminComponent, typeof i2.AdminEnvironmentComponent, typeof i3.AdminMetadataUserComponent, typeof i4.AdminClassesComponent, typeof i5.AdminPredicatesComponent, typeof i6.AdminPredicatesNewComponent, typeof i7.AdminPredicatesUpdateComponent, typeof i8.AdminPredicatesSelectComponent, typeof i9.AdminAbacRulesComponent, typeof i10.AdminMenuComponent, typeof i11.AdminLayoutComponent, typeof i12.AdminTitleComponent, typeof i11.AdminLayoutComponent, typeof i10.AdminMenuComponent, typeof i13.AdminMetadataComponent, typeof i14.AdminEnvironmentNewComponent, typeof i15.AdminEnvironmentUpdateComponent, typeof i16.AdminEnvironmentFormComponent, typeof i17.AdminNewMetadataComponent, typeof i18.AdminAbacRulesEditComponent, typeof i19.AdminAbacRulesViewComponent, typeof i20.AdminAbacRulesNewComponent, typeof i21.SelectMetadataComponent, typeof i22.SelectAttributeComponent, typeof i23.AttributeConditionComponent, typeof i24.MetadataConditionComponent, typeof i25.ComposedConditionComponent, typeof i26.AdminAbacRulesFormComponent, typeof i27.AdminUserNewMetadataComponent, typeof i28.AdminEditMetadataComponent, typeof i29.AdminPredicatesFormComponent, typeof i30.AdminEnvironmentSelectComponent, typeof i31.AdminUserEditMetadataComponent, typeof i29.AdminPredicatesFormComponent, typeof i32.FormMetadataComponent, typeof i33.AdminSelectMetadataComponent, typeof i34.AdminUserSelectMetadataComponent, typeof i35.AdminFieldsComponent, typeof i36.AdminFieldsNewComponent, typeof i34.AdminUserSelectMetadataComponent, typeof i37.AdminClassesFormComponent, typeof i38.AdminClassesNewComponent, typeof i39.AdminClassesViewComponent, typeof i40.AdminAttributesNewComponent, typeof i41.AdminAttributesFormComponent, typeof i42.AdminAttributesSelectComponent, typeof i43.AdminClassesSelectComponent, typeof i44.AdminFieldsFormComponent, typeof i45.AdminFieldsSelectComponent, typeof i46.AdminClassesEditComponent, typeof i47.AdminAttributesEditComponent, typeof i48.AdminFieldsEditComponent, typeof i49.AdminUserComponent, typeof i50.AdminUserSelectComponent, typeof i51.AdminRelationTypesComponent, typeof i52.AdminRelationTypesSelectComponent, typeof i53.AdminRelationTypesModalComponent, typeof i54.AdminLinksComponent, typeof i55.AdminLinksNewComponent, typeof i56.AdminMetadataRulesComponent, typeof i57.AdminSelectMetadataRulesComponent, typeof i58.AdminNewMetadataRulesComponent, typeof i59.AdminEditMetadataRulesComponent, typeof i60.AdminFormMetadataRulesComponent, typeof i61.AdminDatasetComponent, typeof i62.AdminEditDatasetComponent, typeof i63.AdminNewDatasetComponent, typeof i64.AdminSelectDatasetComponent, typeof i65.AdminFormDatasetComponent, typeof i66.AdminClassesCustomizeComponent, typeof i67.AdminClassesCustomizeTooltipComponent, typeof i68.AdminClassesCustomizeSymbolComponent, typeof i69.PryAssociationComponent], [typeof i70.CommonModule, typeof i71.PryCoreModule, typeof i72.AdminRoutingModule, typeof i73.StoreFeatureModule, typeof i73.StoreFeatureModule, typeof i73.StoreFeatureModule, typeof i73.StoreFeatureModule, typeof i73.StoreFeatureModule, typeof i73.StoreFeatureModule, typeof i73.StoreFeatureModule, typeof i73.StoreFeatureModule, typeof i73.StoreFeatureModule, typeof i73.StoreFeatureModule, typeof i74.EffectsFeatureModule, typeof i74.EffectsFeatureModule, typeof i74.EffectsFeatureModule, typeof i74.EffectsFeatureModule, typeof i74.EffectsFeatureModule, typeof i74.EffectsFeatureModule, typeof i74.EffectsFeatureModule, typeof i74.EffectsFeatureModule, typeof i74.EffectsFeatureModule, typeof i74.EffectsFeatureModule, typeof i71.PryIconModule, typeof i75.FormsModule, typeof i75.ReactiveFormsModule, typeof i71.PrySortModule, typeof i76.PryCheckboxModule, typeof i71.PryModalModule, typeof i71.PrySelectModule, typeof i77.PryListMetadataModule, typeof i71.PryToggleModule, typeof i78.OverlayModule, typeof i71.PryOverlayModule, typeof i79.DragDropModule, typeof i71.PryI18nModule, typeof i80.PryExpandPanelModule, typeof i81.PrySinceDateModule, typeof i82.PryDatasetModule, typeof i71.PryShareModule], never>;
90
90
  static ɵinj: i0.ɵɵInjectorDeclaration<PryAdminModule>;
91
91
  }
@@ -1,7 +1,7 @@
1
1
  import { OnDestroy, OnInit } from '@angular/core';
2
2
  import { ActivatedRoute, Router } from '@angular/router';
3
3
  import { Store } from '@ngrx/store';
4
- import { Associations, Dataset, MetadataValue, SubscriptionnerDirective } from '@provoly/dashboard';
4
+ import { Associations, Dataset, MetadataValue, PryI18nService, SubscriptionnerDirective } from '@provoly/dashboard';
5
5
  import { MetaEventType } from '@provoly/dashboard/components/metadata-editor';
6
6
  import { Observable, Subscription } from 'rxjs';
7
7
  import * as i0 from "@angular/core";
@@ -9,6 +9,7 @@ export declare class AdminSelectDatasetComponent extends SubscriptionnerDirectiv
9
9
  private store;
10
10
  private router;
11
11
  private route;
12
+ private i18n;
12
13
  static id: string;
13
14
  selectedDataset$: Observable<Dataset | null>;
14
15
  associations$: Observable<Associations | undefined>;
@@ -16,11 +17,20 @@ export declare class AdminSelectDatasetComponent extends SubscriptionnerDirectiv
16
17
  currentTypeTranslation: string;
17
18
  datasetMetadata$: Observable<MetadataValue[]>;
18
19
  editable$: Observable<boolean>;
19
- constructor(store: Store<any>, router: Router, route: ActivatedRoute);
20
+ accessGroups: string[];
21
+ conflictGroups$: Observable<{
22
+ [key: string]: {
23
+ groups: string[];
24
+ entityName: string;
25
+ };
26
+ } | undefined>;
27
+ constructor(store: Store<any>, router: Router, route: ActivatedRoute, i18n: PryI18nService);
20
28
  ngOnInit(): void;
21
29
  closePanel(): void;
22
30
  removeMetadata(metadata: MetaEventType): void;
23
31
  addDatasetMetadata(metadata: MetaEventType): void;
32
+ share(dataset: Dataset): void;
33
+ getGroupLabel(groupName: string): string;
24
34
  static ɵfac: i0.ɵɵFactoryDeclaration<AdminSelectDatasetComponent, never>;
25
35
  static ɵcmp: i0.ɵɵComponentDeclaration<AdminSelectDatasetComponent, "pry-admin-select-dataset", never, {}, {}, never, never, false, never>;
26
36
  }
@@ -134,6 +134,7 @@ export declare const enTranslations: {
134
134
  dataset: {
135
135
  delete: string;
136
136
  title: string;
137
+ details: string;
137
138
  id: string;
138
139
  name: string;
139
140
  oClass: string;
@@ -148,6 +149,10 @@ export declare const enTranslations: {
148
149
  OPEN: string;
149
150
  CLOSED: string;
150
151
  MODIFIABLE: string;
152
+ conflict: string;
153
+ entities: {
154
+ dashboard: string;
155
+ };
151
156
  };
152
157
  'abac-rules': {
153
158
  delete: string;
@@ -14,6 +14,7 @@ export declare const frTranslations: {
14
14
  addAttribute: string;
15
15
  create: string;
16
16
  upload: string;
17
+ share: string;
17
18
  cancel: string;
18
19
  back: string;
19
20
  next: string;
@@ -134,6 +135,7 @@ export declare const frTranslations: {
134
135
  dataset: {
135
136
  delete: string;
136
137
  title: string;
138
+ details: string;
137
139
  id: string;
138
140
  name: string;
139
141
  oClass: string;
@@ -148,6 +150,10 @@ export declare const frTranslations: {
148
150
  OPEN: string;
149
151
  CLOSED: string;
150
152
  MODIFIABLE: string;
153
+ conflict: string;
154
+ entities: {
155
+ dashboard: string;
156
+ };
151
157
  };
152
158
  'abac-rules': {
153
159
  delete: string;
@@ -1,11 +1,14 @@
1
1
  import { Router } from '@angular/router';
2
2
  import { Actions } from '@ngrx/effects';
3
+ import { DataSourceService } from '@provoly/dashboard';
3
4
  import { AdminService } from './admin.service';
5
+ import { Action } from '@ngrx/store';
4
6
  import * as i0 from "@angular/core";
5
7
  export declare class AdminEffects {
6
8
  private actions$;
7
9
  private service;
8
10
  private router;
11
+ private dsService;
9
12
  routeTo$: import("rxjs").Observable<import("@ngrx/store/src/models").TypedAction<"[Admin] reset toolbox main and sub actions">> & import("@ngrx/effects").CreateEffectMetadata;
10
13
  goToNewMetadata$: import("rxjs").Observable<{
11
14
  path: string;
@@ -54,7 +57,10 @@ export declare class AdminEffects {
54
57
  } & import("@ngrx/store/src/models").TypedAction<"[Admin] Fetch Associations Success">) | ({
55
58
  error: any;
56
59
  } & import("@ngrx/store/src/models").TypedAction<"[Admin] Fetch Associations failure">)> & import("@ngrx/effects").CreateEffectMetadata;
57
- constructor(actions$: Actions, service: AdminService, router: Router);
60
+ updateDataset$: import("rxjs").Observable<Action | ({
61
+ error: any;
62
+ } & import("@ngrx/store/src/models").TypedAction<"[Dataset] failure effect Dataset">)> & import("@ngrx/effects").CreateEffectMetadata;
63
+ constructor(actions$: Actions, service: AdminService, router: Router, dsService: DataSourceService);
58
64
  static ɵfac: i0.ɵɵFactoryDeclaration<AdminEffects, never>;
59
65
  static ɵprov: i0.ɵɵInjectableDeclaration<AdminEffects>;
60
66
  }
@@ -5,7 +5,7 @@ import { NgModule } from '@angular/core';
5
5
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
6
6
  import { EffectsModule } from '@ngrx/effects';
7
7
  import { StoreModule } from '@ngrx/store';
8
- import { PryCoreModule, PryI18nModule, PryIconModule, PryModalModule, PryOverlayModule, PrySelectModule, PrySortModule, PryToggleModule } from '@provoly/dashboard';
8
+ import { PryCoreModule, PryI18nModule, PryIconModule, PryModalModule, PryOverlayModule, PrySelectModule, PryShareModule, PrySortModule, PryToggleModule } from '@provoly/dashboard';
9
9
  import { PryCheckboxModule } from '@provoly/dashboard/components/checkbox';
10
10
  import { PryExpandPanelModule } from '@provoly/dashboard/components/metadata-editor';
11
11
  import { AdminRoutingModule } from './admin-routing.module';
@@ -203,7 +203,8 @@ export class PryAdminModule {
203
203
  PryI18nModule,
204
204
  PryExpandPanelModule,
205
205
  PrySinceDateModule,
206
- PryDatasetModule] }); }
206
+ PryDatasetModule,
207
+ PryShareModule] }); }
207
208
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryAdminModule, providers: [DatePipe], imports: [CommonModule,
208
209
  PryCoreModule,
209
210
  AdminRoutingModule,
@@ -242,7 +243,8 @@ export class PryAdminModule {
242
243
  PryI18nModule,
243
244
  PryExpandPanelModule,
244
245
  PrySinceDateModule,
245
- PryDatasetModule] }); }
246
+ PryDatasetModule,
247
+ PryShareModule] }); }
246
248
  }
247
249
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryAdminModule, decorators: [{
248
250
  type: NgModule,
@@ -362,8 +364,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
362
364
  PryI18nModule,
363
365
  PryExpandPanelModule,
364
366
  PrySinceDateModule,
365
- PryDatasetModule
367
+ PryDatasetModule,
368
+ PryShareModule
366
369
  ]
367
370
  }]
368
371
  }], ctorParameters: () => [{ type: i1.PryI18nService }] });
369
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vYWRtaW4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUNMLGFBQWEsRUFDYixhQUFhLEVBRWIsYUFBYSxFQUNiLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGFBQWEsRUFDYixlQUFlLEVBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scUZBQXFGLENBQUM7QUFDbEksT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scUZBQXFGLENBQUM7QUFDbEksT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUZBQW1GLENBQUM7QUFDL0gsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scUZBQXFGLENB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QUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7cUJBQ25CO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVmZmVjdHNNb2R1bGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlTW9kdWxlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgUHJ5Q29yZU1vZHVsZSxcbiAgUHJ5STE4bk1vZHVsZSxcbiAgUHJ5STE4blNlcnZpY2UsXG4gIFByeUljb25Nb2R1bGUsXG4gIFByeU1vZGFsTW9kdWxlLFxuICBQcnlPdmVybGF5TW9kdWxlLFxuICBQcnlTZWxlY3RNb2R1bGUsXG4gIFByeVNvcnRNb2R1bGUsXG4gIFByeVRvZ2dsZU1vZHVsZVxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgUHJ5Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvY29tcG9uZW50cy9jaGVja2JveCc7XG5pbXBvcnQgeyBQcnlFeHBhbmRQYW5lbE1vZHVsZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvcic7XG5pbXBvcnQgeyBBZG1pblJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2FkbWluLXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7IEFkbWluQWJhY1J1bGVzRWRpdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL2FkbWluLWFiYWMtcnVsZXMtZWRpdC9hZG1pbi1hYmFjLXJ1bGVzLWVkaXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQWJhY1J1bGVzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL2FkbWluLWFiYWMtcnVsZXMtZm9ybS9hZG1pbi1hYmFjLXJ1bGVzLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQWJhY1J1bGVzTmV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvYWRtaW4tYWJhYy1ydWxlcy1uZXcvYWRtaW4tYWJhYy1ydWxlcy1uZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQWJhY1J1bGVzVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL2FkbWluLWFiYWMtcnVsZXMtdmlldy9hZG1pbi1hYmFjLXJ1bGVzLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQWJhY1J1bGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvYWRtaW4tYWJhYy1ydWxlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXR0cmlidXRlQ29uZGl0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvY29tcG9uZW50cy9hdHRyaWJ1dGUtY29uZGl0aW9uL2F0dHJpYnV0ZS1jb25kaXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvc2VkQ29uZGl0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvY29tcG9uZW50cy9jb21wb3NlZC1jb25kaXRpb24vY29tcG9zZWQtY29uZGl0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZXRhZGF0YUNvbmRpdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL2NvbXBvbmVudHMvbWV0YWRhdGEtY29uZGl0aW9uL21ldGFkYXRhLWNvbmRpdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0QXR0cmlidXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvY29tcG9uZW50cy9zZWxlY3QtYXR0cmlidXRlL3NlbGVjdC1hdHRyaWJ1dGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdE1ldGFkYXRhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvY29tcG9uZW50cy9zZWxlY3QtbWV0YWRhdGEvc2VsZWN0LW1ldGFkYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYmFjUnVsZXNFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvc3RvcmUvYWJhYy1ydWxlcy5lZmZlY3RzJztcbmltcG9ydCB7IGFiYWNSdWxlUmVkdWNlciwgYWJhY1J1bGVzRmVhdHVyZUtleSB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL3N0b3JlL2FiYWMtcnVsZXMucmVkdWNlcic7XG5pbXBvcnQgeyBBZG1pbkNsYXNzZXNDdXN0b21pemVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc2VzQ3VzdG9taXplU3ltYm9sQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUvc3ltYm9sL2FkbWluLWNsYXNzZXMtY3VzdG9taXplLXN5bWJvbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc2VzQ3VzdG9taXplVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtY3VzdG9taXplL3Rvb2x0aXAvYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUtdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc2VzRWRpdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtZWRpdC9hZG1pbi1jbGFzc2VzLWVkaXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQ2xhc3Nlc0Zvcm1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLWZvcm0vYWRtaW4tY2xhc3Nlcy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkNsYXNzZXNOZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLW5ldy9hZG1pbi1jbGFzc2VzLW5ldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc2VzU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy1zZWxlY3QvYWRtaW4tY2xhc3Nlcy1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQXR0cmlidXRlc0VkaXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXZpZXcvYWRtaW4tYXR0cmlidXRlcy1lZGl0L2FkbWluLWF0dHJpYnV0ZXMtZWRpdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5BdHRyaWJ1dGVzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtdmlldy9hZG1pbi1hdHRyaWJ1dGVzLWZvcm0vYWRtaW4tYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkF0dHJpYnV0ZXNOZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXZpZXcvYWRtaW4tYXR0cmlidXRlcy1uZXcvYWRtaW4tYXR0cmlidXRlcy1uZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQXR0cmlidXRlc1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtdmlldy9hZG1pbi1hdHRyaWJ1dGVzLXNlbGVjdC9hZG1pbi1hdHRyaWJ1dGVzLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc2VzVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtdmlldy9hZG1pbi1jbGFzc2VzLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQ2xhc3Nlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQ2xhc3NFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvc3RvcmUvYWRtaW4tY2xhc3MuZWZmZWN0cyc7XG5pbXBvcnQgeyBjbGFzc2VzRmVhdHVyZUtleSwgY2xhc3NSZWR1Y2VyIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvc3RvcmUvYWRtaW4tY2xhc3MucmVkdWNlcic7XG5pbXBvcnQgeyBBZG1pbkRhdGFzZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZGF0YXNldC9hZG1pbi1kYXRhc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkVkaXREYXRhc2V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWRhdGFzZXQvYWRtaW4tZWRpdC1kYXRhc2V0L2FkbWluLWVkaXQtZGF0YXNldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5OZXdEYXRhc2V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWRhdGFzZXQvYWRtaW4tbmV3LWRhdGFzZXQvYWRtaW4tbmV3LWRhdGFzZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluU2VsZWN0RGF0YXNldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1kYXRhc2V0L2FkbWluLXNlbGVjdC1kYXRhc2V0L2FkbWluLXNlbGVjdC1kYXRhc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkZvcm1EYXRhc2V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWRhdGFzZXQvc2hhcmVkL2FkbWluLWZvcm0tZGF0YXNldC9hZG1pbi1mb3JtLWRhdGFzZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluRW52aXJvbm1lbnRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWVudmlyb25tZW50L2FkbWluLWVudmlyb25tZW50LWZvcm0vYWRtaW4tZW52aXJvbm1lbnQtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5FbnZpcm9ubWVudE5ld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1lbnZpcm9ubWVudC9hZG1pbi1lbnZpcm9ubWVudC1uZXcvYWRtaW4tZW52aXJvbm1lbnQtbmV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkVudmlyb25tZW50U2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWVudmlyb25tZW50L2FkbWluLWVudmlyb25tZW50LXNlbGVjdC9hZG1pbi1lbnZpcm9ubWVudC1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluRW52aXJvbm1lbnRVcGRhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZW52aXJvbm1lbnQvYWRtaW4tZW52aXJvbm1lbnQtdXBkYXRlL2FkbWluLWVudmlyb25tZW50LXVwZGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5FbnZpcm9ubWVudENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1lbnZpcm9ubWVudC9hZG1pbi1lbnZpcm9ubWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWVudmlyb25tZW50L3N0b3JlL2Vudmlyb25tZW50LmVmZmVjdHMnO1xuaW1wb3J0IHsgZW52aXJvbm1lbnRGZWF0dXJlS2V5LCBlbnZpcm9ubWVudFJlZHVjZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZW52aXJvbm1lbnQvc3RvcmUvZW52aXJvbm1lbnQucmVkdWNlcic7XG5pbXBvcnQgeyBBZG1pbkZpZWxkc0VkaXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZmllbGRzL2FkbWluLWZpZWxkcy1lZGl0L2FkbWluLWZpZWxkcy1lZGl0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkZpZWxkc0Zvcm1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZmllbGRzL2FkbWluLWZpZWxkcy1mb3JtL2FkbWluLWZpZWxkcy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkZpZWxkc05ld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1maWVsZHMvYWRtaW4tZmllbGRzLW5ldy9hZG1pbi1maWVsZHMtbmV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkZpZWxkc1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1maWVsZHMvYWRtaW4tZmllbGRzLXNlbGVjdC9hZG1pbi1maWVsZHMtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkZpZWxkc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1maWVsZHMvYWRtaW4tZmllbGRzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWVsZHNFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWZpZWxkcy9zdG9yZS9maWVsZHMuZWZmZWN0cyc7XG5pbXBvcnQgeyBmaWVsZFJlZHVjZXIsIGZpZWxkc0ZlYXR1cmVLZXkgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZmllbGRzL3N0b3JlL2ZpZWxkcy5yZWR1Y2VyJztcbmltcG9ydCB7IEFkbWluTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWxheW91dC9hZG1pbi1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluTGlua3NOZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbGlua3MvYWRtaW4tbGlua3MtbmV3L2FkbWluLWxpbmtzLW5ldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5MaW5rc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1saW5rcy9hZG1pbi1saW5rcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlua3NFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWxpbmtzL3N0b3JlL2xpbmtzLmVmZmVjdHMnO1xuaW1wb3J0IHsgbGlua1JlZHVjZXIsIGxpbmtzRmVhdHVyZUtleSB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1saW5rcy9zdG9yZS9saW5rcy5yZWR1Y2VyJztcbmltcG9ydCB7IEFkbWluTWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZW51L2FkbWluLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluRWRpdE1ldGFkYXRhUnVsZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtcnVsZXMvYWRtaW4tZWRpdC1tZXRhZGF0YS1ydWxlcy9hZG1pbi1lZGl0LW1ldGFkYXRhLXJ1bGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbk1ldGFkYXRhUnVsZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtcnVsZXMvYWRtaW4tbWV0YWRhdGEtcnVsZXMuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluTmV3TWV0YWRhdGFSdWxlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS1ydWxlcy9hZG1pbi1uZXctbWV0YWRhdGEtcnVsZXMvYWRtaW4tbmV3LW1ldGFkYXRhLXJ1bGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblNlbGVjdE1ldGFkYXRhUnVsZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtcnVsZXMvYWRtaW4tc2VsZWN0LW1ldGFkYXRhLXJ1bGVzL2FkbWluLXNlbGVjdC1tZXRhZGF0YS1ydWxlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5Gb3JtTWV0YWRhdGFSdWxlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS1ydWxlcy9zaGFyZWQvYWRtaW4tZm9ybS1tZXRhZGF0YS1ydWxlcy9hZG1pbi1mb3JtLW1ldGFkYXRhLXJ1bGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbk1ldGFkYXRhUnVsZXNFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhLXJ1bGVzL3N0b3JlL21ldGFkYXRhLXJ1bGVzLmVmZmVjdHMnO1xuaW1wb3J0IHtcbiAgYWRtaW5NZXRhZGF0YVJ1bGVzRmVhdHVyZUtleSxcbiAgYWRtaW5NZXRhZGF0YVJ1bGVzUmVkdWNlclxufSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtcnVsZXMvc3RvcmUvbWV0YWRhdGEtcnVsZXMucmVkdWNlcic7XG5pbXBvcnQgeyBBZG1pbk1ldGFkYXRhVXNlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS11c2VyL2FkbWluLW1ldGFkYXRhLXVzZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluVXNlckVkaXRNZXRhZGF0YUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS11c2VyL2FkbWluLXVzZXItZWRpdC1tZXRhZGF0YS9hZG1pbi11c2VyLWVkaXQtbWV0YWRhdGEuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluVXNlck5ld01ldGFkYXRhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhLXVzZXIvYWRtaW4tdXNlci1uZXctbWV0YWRhdGEvYWRtaW4tdXNlci1uZXctbWV0YWRhdGEuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluVXNlclNlbGVjdE1ldGFkYXRhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhLXVzZXIvYWRtaW4tdXNlci1zZWxlY3QtbWV0YWRhdGEvYWRtaW4tdXNlci1zZWxlY3QtbWV0YWRhdGEuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluTWV0YWRhdGFVc2VyRWZmZWN0cyB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS11c2VyL3N0b3JlL2FkbWluLW1ldGFkYXRhLXVzZXIuZWZmZWN0cyc7XG5pbXBvcnQge1xuICBhZG1pbk1ldGFkYXRhVXNlckZlYXR1cmVLZXksXG4gIGFkbWluTWV0YWRhdGFVc2VyUmVkdWNlclxufSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtdXNlci9zdG9yZS9hZG1pbi1tZXRhZGF0YS11c2VyLnJlZHVjZXInO1xuaW1wb3J0IHsgQWRtaW5FZGl0TWV0YWRhdGFDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEvYWRtaW4tZWRpdC1tZXRhZGF0YS9hZG1pbi1lZGl0LW1ldGFkYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbk1ldGFkYXRhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhL2FkbWluLW1ldGFkYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbk5ld01ldGFkYXRhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhL2FkbWluLW5ldy1tZXRhZGF0YS9hZG1pbi1uZXctbWV0YWRhdGEuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluU2VsZWN0TWV0YWRhdGFDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEvYWRtaW4tc2VsZWN0LW1ldGFkYXRhL2FkbWluLXNlbGVjdC1tZXRhZGF0YS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybU1ldGFkYXRhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhL3NoYXJlZC9mb3JtLW1ldGFkYXRhL2Zvcm0tbWV0YWRhdGEuY29tcG9uZW50JztcbmltcG9ydCB7IFByeUxpc3RNZXRhZGF0YU1vZHVsZSB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS9zaGFyZWQvbGlzdC1tZXRhZGF0YS9saXN0LW1ldGFkYXRhLm1vZHVsZSc7XG5pbXBvcnQgeyBBZG1pblByZWRpY2F0ZXNGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXByZWRpY2F0ZXMvYWRtaW4tcHJlZGljYXRlcy1mb3JtL2FkbWluLXByZWRpY2F0ZXMtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5QcmVkaWNhdGVzTmV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXByZWRpY2F0ZXMvYWRtaW4tcHJlZGljYXRlcy1uZXcvYWRtaW4tcHJlZGljYXRlcy1uZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluUHJlZGljYXRlc1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1wcmVkaWNhdGVzL2FkbWluLXByZWRpY2F0ZXMtc2VsZWN0L2FkbWluLXByZWRpY2F0ZXMtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblByZWRpY2F0ZXNVcGRhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tcHJlZGljYXRlcy9hZG1pbi1wcmVkaWNhdGVzLXVwZGF0ZS9hZG1pbi1wcmVkaWNhdGVzLXVwZGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5QcmVkaWNhdGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXByZWRpY2F0ZXMvYWRtaW4tcHJlZGljYXRlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJlZGljYXRlc0VmZmVjdHMgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tcHJlZGljYXRlcy9zdG9yZS9wcmVkaWNhdGVzLmVmZmVjdHMnO1xuaW1wb3J0IHsgcHJlZGljYXRlUmVkdWNlciwgcHJlZGljYXRlc0ZlYXR1cmVLZXkgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tcHJlZGljYXRlcy9zdG9yZS9wcmVkaWNhdGVzLnJlZHVjZXInO1xuaW1wb3J0IHsgQWRtaW5SZWxhdGlvblR5cGVzTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tcmVsYXRpb24tdHlwZXMvYWRtaW4tcmVsYXRpb24tdHlwZXMtbW9kYWwvYWRtaW4tcmVsYXRpb24tdHlwZXMtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluUmVsYXRpb25UeXBlc1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1yZWxhdGlvbi10eXBlcy9hZG1pbi1yZWxhdGlvbi10eXBlcy1zZWxlY3QvYWRtaW4tcmVsYXRpb24tdHlwZXMtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblJlbGF0aW9uVHlwZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tcmVsYXRpb24tdHlwZXMvYWRtaW4tcmVsYXRpb24tdHlwZXMuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tdGl0bGUvYWRtaW4tdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluVXNlclNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi11c2VyL2FkbWluLXVzZXItc2VsZWN0L2FkbWluLXVzZXItc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblVzZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tdXNlci9hZG1pbi11c2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblVzZXJFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXVzZXIvc3RvcmUvYWRtaW4tdXNlci5lZmZlY3RzJztcbmltcG9ydCB7IGFkbWluVXNlckZlYXR1cmVLZXksIGFkbWluVXNlclJlZHVjZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tdXNlci9zdG9yZS9hZG1pbi11c2VyLnJlZHVjZXInO1xuaW1wb3J0IHsgUHJ5QWRtaW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4uY29tcG9uZW50JztcbmltcG9ydCB7IFByeUFzc29jaWF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Fzc29jaWF0aW9uL2Fzc29jaWF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBlblRyYW5zbGF0aW9ucyB9IGZyb20gJy4vaTE4bi9lbi50cmFuc2xhdGlvbnMnO1xuaW1wb3J0IHsgZnJUcmFuc2xhdGlvbnMgfSBmcm9tICcuL2kxOG4vZnIudHJhbnNsYXRpb25zJztcbmltcG9ydCB7IEFkbWluRWZmZWN0cyB9IGZyb20gJy4vc3RvcmUvYWRtaW4uZWZmZWN0cyc7XG5pbXBvcnQgeyBhZG1pbkZlYXR1cmVLZXksIGFkbWluUmVkdWNlciB9IGZyb20gJy4vc3RvcmUvYWRtaW4ucmVkdWNlcic7XG5pbXBvcnQgeyBQcnlTaW5jZURhdGVNb2R1bGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvY29tcG9uZW50cy9zaW5jZURhdGUnO1xuaW1wb3J0IHsgUHJ5RGF0YXNldE1vZHVsZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9kYXRhc2V0JztcblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbRGF0ZVBpcGVdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBQcnlBZG1pbkNvbXBvbmVudCxcbiAgICBBZG1pbkVudmlyb25tZW50Q29tcG9uZW50LFxuICAgIEFkbWluTWV0YWRhdGFVc2VyQ29tcG9uZW50LFxuICAgIEFkbWluQ2xhc3Nlc0NvbXBvbmVudCxcbiAgICBBZG1pblByZWRpY2F0ZXNDb21wb25lbnQsXG4gICAgQWRtaW5QcmVkaWNhdGVzTmV3Q29tcG9uZW50LFxuICAgIEFkbWluUHJlZGljYXRlc1VwZGF0ZUNvbXBvbmVudCxcbiAgICBBZG1pblByZWRpY2F0ZXNTZWxlY3RDb21wb25lbnQsXG4gICAgQWRtaW5BYmFjUnVsZXNDb21wb25lbnQsXG4gICAgQWRtaW5NZW51Q29tcG9uZW50LFxuICAgIEFkbWluTGF5b3V0Q29tcG9uZW50LFxuICAgIEFkbWluVGl0bGVDb21wb25lbnQsXG4gICAgQWRtaW5MYXlvdXRDb21wb25lbnQsXG4gICAgQWRtaW5NZW51Q29tcG9uZW50LFxuICAgIEFkbWluTWV0YWRhdGFDb21wb25lbnQsXG4gICAgQWRtaW5FbnZpcm9ubWVudE5ld0NvbXBvbmVudCxcbiAgICBBZG1pbkVudmlyb25tZW50VXBkYXRlQ29tcG9uZW50LFxuICAgIEFkbWluRW52aXJvbm1lbnRGb3JtQ29tcG9uZW50LFxuICAgIEFkbWluTmV3TWV0YWRhdGFDb21wb25lbnQsXG4gICAgQWRtaW5BYmFjUnVsZXNFZGl0Q29tcG9uZW50LFxuICAgIEFkbWluQWJhY1J1bGVzVmlld0NvbXBvbmVudCxcbiAgICBBZG1pbkFiYWNSdWxlc05ld0NvbXBvbmVudCxcbiAgICBTZWxlY3RNZXRhZGF0YUNvbXBvbmVudCxcbiAgICBTZWxlY3RBdHRyaWJ1dGVDb21wb25lbnQsXG4gICAgQXR0cmlidXRlQ29uZGl0aW9uQ29tcG9uZW50LFxuICAgIE1ldGFkYXRhQ29uZGl0aW9uQ29tcG9uZW50LFxuICAgIENvbXBvc2VkQ29uZGl0aW9uQ29tcG9uZW50LFxuICAgIEFkbWluQWJhY1J1bGVzRm9ybUNvbXBvbmVudCxcbiAgICBBZG1pblVzZXJOZXdNZXRhZGF0YUNvbXBvbmVudCxcbiAgICBBZG1pbkVkaXRNZXRhZGF0YUNvbXBvbmVudCxcbiAgICBBZG1pblByZWRpY2F0ZXNGb3JtQ29tcG9uZW50LFxuICAgIEFkbWluRW52aXJvbm1lbnRTZWxlY3RDb21wb25lbnQsXG4gICAgQWRtaW5Vc2VyRWRpdE1ldGFkYXRhQ29tcG9uZW50LFxuICAgIEFkbWluUHJlZGljYXRlc0Zvcm1Db21wb25lbnQsXG4gICAgRm9ybU1ldGFkYXRhQ29tcG9uZW50LFxuICAgIEFkbWluU2VsZWN0TWV0YWRhdGFDb21wb25lbnQsXG4gICAgQWRtaW5Vc2VyU2VsZWN0TWV0YWRhdGFDb21wb25lbnQsXG4gICAgQWRtaW5GaWVsZHNDb21wb25lbnQsXG4gICAgQWRtaW5GaWVsZHNOZXdDb21wb25lbnQsXG4gICAgQWRtaW5Vc2VyU2VsZWN0TWV0YWRhdGFDb21wb25lbnQsXG4gICAgQWRtaW5DbGFzc2VzRm9ybUNvbXBvbmVudCxcbiAgICBBZG1pbkNsYXNzZXNOZXdDb21wb25lbnQsXG4gICAgQWRtaW5DbGFzc2VzVmlld0NvbXBvbmVudCxcbiAgICBBZG1pbkF0dHJpYnV0ZXNOZXdDb21wb25lbnQsXG4gICAgQWRtaW5BdHRyaWJ1dGVzRm9ybUNvbXBvbmVudCxcbiAgICBBZG1pbkF0dHJpYnV0ZXNTZWxlY3RDb21wb25lbnQsXG4gICAgQWRtaW5DbGFzc2VzU2VsZWN0Q29tcG9uZW50LFxuICAgIEFkbWluRmllbGRzRm9ybUNvbXBvbmVudCxcbiAgICBBZG1pbkZpZWxkc1NlbGVjdENvbXBvbmVudCxcbiAgICBBZG1pbkNsYXNzZXNFZGl0Q29tcG9uZW50LFxuICAgIEFkbWluQXR0cmlidXRlc0VkaXRDb21wb25lbnQsXG4gICAgQWRtaW5GaWVsZHNFZGl0Q29tcG9uZW50LFxuICAgIEFkbWluVXNlckNvbXBvbmVudCxcbiAgICBBZG1pblVzZXJTZWxlY3RDb21wb25lbnQsXG4gICAgQWRtaW5SZWxhdGlvblR5cGVzQ29tcG9uZW50LFxuICAgIEFkbWluUmVsYXRpb25UeXBlc1NlbGVjdENvbXBvbmVudCxcbiAgICBBZG1pblJlbGF0aW9uVHlwZXNNb2RhbENvbXBvbmVudCxcbiAgICBBZG1pbkxpbmtzQ29tcG9uZW50LFxuICAgIEFkbWluTGlua3NOZXdDb21wb25lbnQsXG4gICAgQWRtaW5NZXRhZGF0YVJ1bGVzQ29tcG9uZW50LFxuICAgIEFkbWluU2VsZWN0TWV0YWRhdGFSdWxlc0NvbXBvbmVudCxcbiAgICBBZG1pbk5ld01ldGFkYXRhUnVsZXNDb21wb25lbnQsXG4gICAgQWRtaW5FZGl0TWV0YWRhdGFSdWxlc0NvbXBvbmVudCxcbiAgICBBZG1pbkZvcm1NZXRhZGF0YVJ1bGVzQ29tcG9uZW50LFxuICAgIEFkbWluRGF0YXNldENvbXBvbmVudCxcbiAgICBBZG1pbkVkaXREYXRhc2V0Q29tcG9uZW50LFxuICAgIEFkbWluTmV3RGF0YXNldENvbXBvbmVudCxcbiAgICBBZG1pblNlbGVjdERhdGFzZXRDb21wb25lbnQsXG4gICAgQWRtaW5Gb3JtRGF0YXNldENvbXBvbmVudCxcbiAgICBBZG1pbkNsYXNzZXNDdXN0b21pemVDb21wb25lbnQsXG4gICAgQWRtaW5DbGFzc2VzQ3VzdG9taXplVG9vbHRpcENvbXBvbmVudCxcbiAgICBBZG1pbkNsYXNzZXNDdXN0b21pemVTeW1ib2xDb21wb25lbnQsXG4gICAgUHJ5QXNzb2NpYXRpb25Db21wb25lbnRcbiAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUHJ5Q29yZU1vZHVsZSxcbiAgICAgICAgQWRtaW5Sb3V0aW5nTW9kdWxlLFxuICAgICAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKGFkbWluRmVhdHVyZUtleSwgYWRtaW5SZWR1Y2VyKSxcbiAgICAgICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShwcmVkaWNhdGVzRmVhdHVyZUtleSwgcHJlZGljYXRlUmVkdWNlciksXG4gICAgICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoYWJhY1J1bGVzRmVhdHVyZUtleSwgYWJhY1J1bGVSZWR1Y2VyKSxcbiAgICAgICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShlbnZpcm9ubWVudEZlYXR1cmVLZXksIGVudmlyb25tZW50UmVkdWNlciksXG4gICAgICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoYWRtaW5NZXRhZGF0YVVzZXJGZWF0dXJlS2V5LCBhZG1pbk1ldGFkYXRhVXNlclJlZHVjZXIpLFxuICAgICAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKGFkbWluTWV0YWRhdGFSdWxlc0ZlYXR1cmVLZXksIGFkbWluTWV0YWRhdGFSdWxlc1JlZHVjZXIpLFxuICAgICAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKGNsYXNzZXNGZWF0dXJlS2V5LCBjbGFzc1JlZHVjZXIpLFxuICAgICAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKGZpZWxkc0ZlYXR1cmVLZXksIGZpZWxkUmVkdWNlciksXG4gICAgICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoYWRtaW5Vc2VyRmVhdHVyZUtleSwgYWRtaW5Vc2VyUmVkdWNlciksXG4gICAgICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUobGlua3NGZWF0dXJlS2V5LCBsaW5rUmVkdWNlciksXG4gICAgICAgIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShbQWRtaW5FZmZlY3RzXSksXG4gICAgICAgIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShbUHJlZGljYXRlc0VmZmVjdHNdKSxcbiAgICAgICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtFbnZpcm9ubWVudEVmZmVjdHNdKSxcbiAgICAgICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtBYmFjUnVsZXNFZmZlY3RzXSksXG4gICAgICAgIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShbQWRtaW5NZXRhZGF0YVVzZXJFZmZlY3RzXSksXG4gICAgICAgIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShbQWRtaW5DbGFzc0VmZmVjdHNdKSxcbiAgICAgICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtGaWVsZHNFZmZlY3RzXSksXG4gICAgICAgIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShbQWRtaW5Vc2VyRWZmZWN0c10pLFxuICAgICAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW0xpbmtzRWZmZWN0c10pLFxuICAgICAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW0FkbWluTWV0YWRhdGFSdWxlc0VmZmVjdHNdKSxcbiAgICAgICAgUHJ5SWNvbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFByeVNvcnRNb2R1bGUsXG4gICAgICAgIFByeUNoZWNrYm94TW9kdWxlLFxuICAgICAgICBQcnlNb2RhbE1vZHVsZSxcbiAgICAgICAgUHJ5U2VsZWN0TW9kdWxlLFxuICAgICAgICBQcnlMaXN0TWV0YWRhdGFNb2R1bGUsXG4gICAgICAgIFByeVRvZ2dsZU1vZHVsZSxcbiAgICAgICAgT3ZlcmxheU1vZHVsZSxcbiAgICAgICAgUHJ5T3ZlcmxheU1vZHVsZSxcbiAgICAgICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgICAgIFByeUkxOG5Nb2R1bGUsXG4gICAgICAgIFByeUV4cGFuZFBhbmVsTW9kdWxlLFxuICAgICAgICBQcnlTaW5jZURhdGVNb2R1bGUsXG4gICAgICAgIFByeURhdGFzZXRNb2R1bGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFByeUFkbWluTW9kdWxlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwcnlUcmFuc2xhdGVTZXJ2aWNlOiBQcnlJMThuU2VydmljZSkge1xuICAgIHRoaXMucHJ5VHJhbnNsYXRlU2VydmljZS5hZGRMYW5nT2JqZWN0KCdmcicsICdhZG1pbicsIGZyVHJhbnNsYXRpb25zKTtcbiAgICB0aGlzLnByeVRyYW5zbGF0ZVNlcnZpY2UuYWRkTGFuZ09iamVjdCgnZW4nLCAnYWRtaW4nLCBlblRyYW5zbGF0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
372
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vYWRtaW4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUNMLGFBQWEsRUFDYixhQUFhLEVBRWIsYUFBYSxFQUNiLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNoQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFGQUFxRixDQUFDO0FBQ2xJLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFGQUFxRixDQUFDO0FBQ2xJLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1GQUFtRixDQUFDO0FBQy9ILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFN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O3dCQUNiLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLGNBQWM7cUJBQ2Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRWZmZWN0c01vZHVsZSB9IGZyb20gJ0BuZ3J4L2VmZmVjdHMnO1xuaW1wb3J0IHsgU3RvcmVNb2R1bGUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBQcnlDb3JlTW9kdWxlLFxuICBQcnlJMThuTW9kdWxlLFxuICBQcnlJMThuU2VydmljZSxcbiAgUHJ5SWNvbk1vZHVsZSxcbiAgUHJ5TW9kYWxNb2R1bGUsXG4gIFByeU92ZXJsYXlNb2R1bGUsXG4gIFByeVNlbGVjdE1vZHVsZSxcbiAgUHJ5U2hhcmVNb2R1bGUsXG4gIFByeVNvcnRNb2R1bGUsXG4gIFByeVRvZ2dsZU1vZHVsZVxufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgUHJ5Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvY29tcG9uZW50cy9jaGVja2JveCc7XG5pbXBvcnQgeyBQcnlFeHBhbmRQYW5lbE1vZHVsZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvcic7XG5pbXBvcnQgeyBBZG1pblJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2FkbWluLXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7IEFkbWluQWJhY1J1bGVzRWRpdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL2FkbWluLWFiYWMtcnVsZXMtZWRpdC9hZG1pbi1hYmFjLXJ1bGVzLWVkaXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQWJhY1J1bGVzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL2FkbWluLWFiYWMtcnVsZXMtZm9ybS9hZG1pbi1hYmFjLXJ1bGVzLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQWJhY1J1bGVzTmV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvYWRtaW4tYWJhYy1ydWxlcy1uZXcvYWRtaW4tYWJhYy1ydWxlcy1uZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQWJhY1J1bGVzVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL2FkbWluLWFiYWMtcnVsZXMtdmlldy9hZG1pbi1hYmFjLXJ1bGVzLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQWJhY1J1bGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvYWRtaW4tYWJhYy1ydWxlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXR0cmlidXRlQ29uZGl0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvY29tcG9uZW50cy9hdHRyaWJ1dGUtY29uZGl0aW9uL2F0dHJpYnV0ZS1jb25kaXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvc2VkQ29uZGl0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvY29tcG9uZW50cy9jb21wb3NlZC1jb25kaXRpb24vY29tcG9zZWQtY29uZGl0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZXRhZGF0YUNvbmRpdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL2NvbXBvbmVudHMvbWV0YWRhdGEtY29uZGl0aW9uL21ldGFkYXRhLWNvbmRpdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0QXR0cmlidXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvY29tcG9uZW50cy9zZWxlY3QtYXR0cmlidXRlL3NlbGVjdC1hdHRyaWJ1dGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdE1ldGFkYXRhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvY29tcG9uZW50cy9zZWxlY3QtbWV0YWRhdGEvc2VsZWN0LW1ldGFkYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYmFjUnVsZXNFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWFiYWMtcnVsZXMvc3RvcmUvYWJhYy1ydWxlcy5lZmZlY3RzJztcbmltcG9ydCB7IGFiYWNSdWxlUmVkdWNlciwgYWJhY1J1bGVzRmVhdHVyZUtleSB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1hYmFjLXJ1bGVzL3N0b3JlL2FiYWMtcnVsZXMucmVkdWNlcic7XG5pbXBvcnQgeyBBZG1pbkNsYXNzZXNDdXN0b21pemVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS9hZG1pbi1jbGFzc2VzLWN1c3RvbWl6ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc2VzQ3VzdG9taXplU3ltYm9sQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUvc3ltYm9sL2FkbWluLWNsYXNzZXMtY3VzdG9taXplLXN5bWJvbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc2VzQ3VzdG9taXplVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtY3VzdG9taXplL3Rvb2x0aXAvYWRtaW4tY2xhc3Nlcy1jdXN0b21pemUtdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc2VzRWRpdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtZWRpdC9hZG1pbi1jbGFzc2VzLWVkaXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQ2xhc3Nlc0Zvcm1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLWZvcm0vYWRtaW4tY2xhc3Nlcy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkNsYXNzZXNOZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLW5ldy9hZG1pbi1jbGFzc2VzLW5ldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc2VzU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy1zZWxlY3QvYWRtaW4tY2xhc3Nlcy1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQXR0cmlidXRlc0VkaXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXZpZXcvYWRtaW4tYXR0cmlidXRlcy1lZGl0L2FkbWluLWF0dHJpYnV0ZXMtZWRpdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5BdHRyaWJ1dGVzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtdmlldy9hZG1pbi1hdHRyaWJ1dGVzLWZvcm0vYWRtaW4tYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkF0dHJpYnV0ZXNOZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXZpZXcvYWRtaW4tYXR0cmlidXRlcy1uZXcvYWRtaW4tYXR0cmlidXRlcy1uZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQXR0cmlidXRlc1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtdmlldy9hZG1pbi1hdHRyaWJ1dGVzLXNlbGVjdC9hZG1pbi1hdHRyaWJ1dGVzLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5DbGFzc2VzVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMtdmlldy9hZG1pbi1jbGFzc2VzLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQ2xhc3Nlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1jbGFzc2VzL2FkbWluLWNsYXNzZXMuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluQ2xhc3NFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvc3RvcmUvYWRtaW4tY2xhc3MuZWZmZWN0cyc7XG5pbXBvcnQgeyBjbGFzc2VzRmVhdHVyZUtleSwgY2xhc3NSZWR1Y2VyIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvc3RvcmUvYWRtaW4tY2xhc3MucmVkdWNlcic7XG5pbXBvcnQgeyBBZG1pbkRhdGFzZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZGF0YXNldC9hZG1pbi1kYXRhc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkVkaXREYXRhc2V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWRhdGFzZXQvYWRtaW4tZWRpdC1kYXRhc2V0L2FkbWluLWVkaXQtZGF0YXNldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5OZXdEYXRhc2V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWRhdGFzZXQvYWRtaW4tbmV3LWRhdGFzZXQvYWRtaW4tbmV3LWRhdGFzZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluU2VsZWN0RGF0YXNldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1kYXRhc2V0L2FkbWluLXNlbGVjdC1kYXRhc2V0L2FkbWluLXNlbGVjdC1kYXRhc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkZvcm1EYXRhc2V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWRhdGFzZXQvc2hhcmVkL2FkbWluLWZvcm0tZGF0YXNldC9hZG1pbi1mb3JtLWRhdGFzZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluRW52aXJvbm1lbnRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWVudmlyb25tZW50L2FkbWluLWVudmlyb25tZW50LWZvcm0vYWRtaW4tZW52aXJvbm1lbnQtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5FbnZpcm9ubWVudE5ld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1lbnZpcm9ubWVudC9hZG1pbi1lbnZpcm9ubWVudC1uZXcvYWRtaW4tZW52aXJvbm1lbnQtbmV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkVudmlyb25tZW50U2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWVudmlyb25tZW50L2FkbWluLWVudmlyb25tZW50LXNlbGVjdC9hZG1pbi1lbnZpcm9ubWVudC1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluRW52aXJvbm1lbnRVcGRhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZW52aXJvbm1lbnQvYWRtaW4tZW52aXJvbm1lbnQtdXBkYXRlL2FkbWluLWVudmlyb25tZW50LXVwZGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5FbnZpcm9ubWVudENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1lbnZpcm9ubWVudC9hZG1pbi1lbnZpcm9ubWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWVudmlyb25tZW50L3N0b3JlL2Vudmlyb25tZW50LmVmZmVjdHMnO1xuaW1wb3J0IHsgZW52aXJvbm1lbnRGZWF0dXJlS2V5LCBlbnZpcm9ubWVudFJlZHVjZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZW52aXJvbm1lbnQvc3RvcmUvZW52aXJvbm1lbnQucmVkdWNlcic7XG5pbXBvcnQgeyBBZG1pbkZpZWxkc0VkaXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZmllbGRzL2FkbWluLWZpZWxkcy1lZGl0L2FkbWluLWZpZWxkcy1lZGl0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkZpZWxkc0Zvcm1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZmllbGRzL2FkbWluLWZpZWxkcy1mb3JtL2FkbWluLWZpZWxkcy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkZpZWxkc05ld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1maWVsZHMvYWRtaW4tZmllbGRzLW5ldy9hZG1pbi1maWVsZHMtbmV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkZpZWxkc1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1maWVsZHMvYWRtaW4tZmllbGRzLXNlbGVjdC9hZG1pbi1maWVsZHMtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkZpZWxkc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1maWVsZHMvYWRtaW4tZmllbGRzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWVsZHNFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWZpZWxkcy9zdG9yZS9maWVsZHMuZWZmZWN0cyc7XG5pbXBvcnQgeyBmaWVsZFJlZHVjZXIsIGZpZWxkc0ZlYXR1cmVLZXkgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZmllbGRzL3N0b3JlL2ZpZWxkcy5yZWR1Y2VyJztcbmltcG9ydCB7IEFkbWluTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWxheW91dC9hZG1pbi1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluTGlua3NOZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbGlua3MvYWRtaW4tbGlua3MtbmV3L2FkbWluLWxpbmtzLW5ldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5MaW5rc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1saW5rcy9hZG1pbi1saW5rcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlua3NFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLWxpbmtzL3N0b3JlL2xpbmtzLmVmZmVjdHMnO1xuaW1wb3J0IHsgbGlua1JlZHVjZXIsIGxpbmtzRmVhdHVyZUtleSB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1saW5rcy9zdG9yZS9saW5rcy5yZWR1Y2VyJztcbmltcG9ydCB7IEFkbWluTWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZW51L2FkbWluLW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluRWRpdE1ldGFkYXRhUnVsZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtcnVsZXMvYWRtaW4tZWRpdC1tZXRhZGF0YS1ydWxlcy9hZG1pbi1lZGl0LW1ldGFkYXRhLXJ1bGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbk1ldGFkYXRhUnVsZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtcnVsZXMvYWRtaW4tbWV0YWRhdGEtcnVsZXMuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluTmV3TWV0YWRhdGFSdWxlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS1ydWxlcy9hZG1pbi1uZXctbWV0YWRhdGEtcnVsZXMvYWRtaW4tbmV3LW1ldGFkYXRhLXJ1bGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblNlbGVjdE1ldGFkYXRhUnVsZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtcnVsZXMvYWRtaW4tc2VsZWN0LW1ldGFkYXRhLXJ1bGVzL2FkbWluLXNlbGVjdC1tZXRhZGF0YS1ydWxlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5Gb3JtTWV0YWRhdGFSdWxlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS1ydWxlcy9zaGFyZWQvYWRtaW4tZm9ybS1tZXRhZGF0YS1ydWxlcy9hZG1pbi1mb3JtLW1ldGFkYXRhLXJ1bGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbk1ldGFkYXRhUnVsZXNFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhLXJ1bGVzL3N0b3JlL21ldGFkYXRhLXJ1bGVzLmVmZmVjdHMnO1xuaW1wb3J0IHtcbiAgYWRtaW5NZXRhZGF0YVJ1bGVzRmVhdHVyZUtleSxcbiAgYWRtaW5NZXRhZGF0YVJ1bGVzUmVkdWNlclxufSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtcnVsZXMvc3RvcmUvbWV0YWRhdGEtcnVsZXMucmVkdWNlcic7XG5pbXBvcnQgeyBBZG1pbk1ldGFkYXRhVXNlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS11c2VyL2FkbWluLW1ldGFkYXRhLXVzZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluVXNlckVkaXRNZXRhZGF0YUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS11c2VyL2FkbWluLXVzZXItZWRpdC1tZXRhZGF0YS9hZG1pbi11c2VyLWVkaXQtbWV0YWRhdGEuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluVXNlck5ld01ldGFkYXRhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhLXVzZXIvYWRtaW4tdXNlci1uZXctbWV0YWRhdGEvYWRtaW4tdXNlci1uZXctbWV0YWRhdGEuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluVXNlclNlbGVjdE1ldGFkYXRhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhLXVzZXIvYWRtaW4tdXNlci1zZWxlY3QtbWV0YWRhdGEvYWRtaW4tdXNlci1zZWxlY3QtbWV0YWRhdGEuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluTWV0YWRhdGFVc2VyRWZmZWN0cyB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS11c2VyL3N0b3JlL2FkbWluLW1ldGFkYXRhLXVzZXIuZWZmZWN0cyc7XG5pbXBvcnQge1xuICBhZG1pbk1ldGFkYXRhVXNlckZlYXR1cmVLZXksXG4gIGFkbWluTWV0YWRhdGFVc2VyUmVkdWNlclxufSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEtdXNlci9zdG9yZS9hZG1pbi1tZXRhZGF0YS11c2VyLnJlZHVjZXInO1xuaW1wb3J0IHsgQWRtaW5FZGl0TWV0YWRhdGFDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEvYWRtaW4tZWRpdC1tZXRhZGF0YS9hZG1pbi1lZGl0LW1ldGFkYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbk1ldGFkYXRhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhL2FkbWluLW1ldGFkYXRhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbk5ld01ldGFkYXRhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhL2FkbWluLW5ldy1tZXRhZGF0YS9hZG1pbi1uZXctbWV0YWRhdGEuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluU2VsZWN0TWV0YWRhdGFDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tbWV0YWRhdGEvYWRtaW4tc2VsZWN0LW1ldGFkYXRhL2FkbWluLXNlbGVjdC1tZXRhZGF0YS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybU1ldGFkYXRhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhL3NoYXJlZC9mb3JtLW1ldGFkYXRhL2Zvcm0tbWV0YWRhdGEuY29tcG9uZW50JztcbmltcG9ydCB7IFByeUxpc3RNZXRhZGF0YU1vZHVsZSB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS9zaGFyZWQvbGlzdC1tZXRhZGF0YS9saXN0LW1ldGFkYXRhLm1vZHVsZSc7XG5pbXBvcnQgeyBBZG1pblByZWRpY2F0ZXNGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXByZWRpY2F0ZXMvYWRtaW4tcHJlZGljYXRlcy1mb3JtL2FkbWluLXByZWRpY2F0ZXMtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5QcmVkaWNhdGVzTmV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXByZWRpY2F0ZXMvYWRtaW4tcHJlZGljYXRlcy1uZXcvYWRtaW4tcHJlZGljYXRlcy1uZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluUHJlZGljYXRlc1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1wcmVkaWNhdGVzL2FkbWluLXByZWRpY2F0ZXMtc2VsZWN0L2FkbWluLXByZWRpY2F0ZXMtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblByZWRpY2F0ZXNVcGRhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tcHJlZGljYXRlcy9hZG1pbi1wcmVkaWNhdGVzLXVwZGF0ZS9hZG1pbi1wcmVkaWNhdGVzLXVwZGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRtaW5QcmVkaWNhdGVzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXByZWRpY2F0ZXMvYWRtaW4tcHJlZGljYXRlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJlZGljYXRlc0VmZmVjdHMgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tcHJlZGljYXRlcy9zdG9yZS9wcmVkaWNhdGVzLmVmZmVjdHMnO1xuaW1wb3J0IHsgcHJlZGljYXRlUmVkdWNlciwgcHJlZGljYXRlc0ZlYXR1cmVLZXkgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tcHJlZGljYXRlcy9zdG9yZS9wcmVkaWNhdGVzLnJlZHVjZXInO1xuaW1wb3J0IHsgQWRtaW5SZWxhdGlvblR5cGVzTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tcmVsYXRpb24tdHlwZXMvYWRtaW4tcmVsYXRpb24tdHlwZXMtbW9kYWwvYWRtaW4tcmVsYXRpb24tdHlwZXMtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluUmVsYXRpb25UeXBlc1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1yZWxhdGlvbi10eXBlcy9hZG1pbi1yZWxhdGlvbi10eXBlcy1zZWxlY3QvYWRtaW4tcmVsYXRpb24tdHlwZXMtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblJlbGF0aW9uVHlwZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tcmVsYXRpb24tdHlwZXMvYWRtaW4tcmVsYXRpb24tdHlwZXMuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tdGl0bGUvYWRtaW4tdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFkbWluVXNlclNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi11c2VyL2FkbWluLXVzZXItc2VsZWN0L2FkbWluLXVzZXItc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblVzZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tdXNlci9hZG1pbi11c2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pblVzZXJFZmZlY3RzIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkbWluLXVzZXIvc3RvcmUvYWRtaW4tdXNlci5lZmZlY3RzJztcbmltcG9ydCB7IGFkbWluVXNlckZlYXR1cmVLZXksIGFkbWluVXNlclJlZHVjZXIgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tdXNlci9zdG9yZS9hZG1pbi11c2VyLnJlZHVjZXInO1xuaW1wb3J0IHsgUHJ5QWRtaW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4uY29tcG9uZW50JztcbmltcG9ydCB7IFByeUFzc29jaWF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Fzc29jaWF0aW9uL2Fzc29jaWF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBlblRyYW5zbGF0aW9ucyB9IGZyb20gJy4vaTE4bi9lbi50cmFuc2xhdGlvbnMnO1xuaW1wb3J0IHsgZnJUcmFuc2xhdGlvbnMgfSBmcm9tICcuL2kxOG4vZnIudHJhbnNsYXRpb25zJztcbmltcG9ydCB7IEFkbWluRWZmZWN0cyB9IGZyb20gJy4vc3RvcmUvYWRtaW4uZWZmZWN0cyc7XG5pbXBvcnQgeyBhZG1pbkZlYXR1cmVLZXksIGFkbWluUmVkdWNlciB9IGZyb20gJy4vc3RvcmUvYWRtaW4ucmVkdWNlcic7XG5pbXBvcnQgeyBQcnlTaW5jZURhdGVNb2R1bGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvY29tcG9uZW50cy9zaW5jZURhdGUnO1xuaW1wb3J0IHsgUHJ5RGF0YXNldE1vZHVsZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9kYXRhc2V0JztcblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbRGF0ZVBpcGVdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBQcnlBZG1pbkNvbXBvbmVudCxcbiAgICBBZG1pbkVudmlyb25tZW50Q29tcG9uZW50LFxuICAgIEFkbWluTWV0YWRhdGFVc2VyQ29tcG9uZW50LFxuICAgIEFkbWluQ2xhc3Nlc0NvbXBvbmVudCxcbiAgICBBZG1pblByZWRpY2F0ZXNDb21wb25lbnQsXG4gICAgQWRtaW5QcmVkaWNhdGVzTmV3Q29tcG9uZW50LFxuICAgIEFkbWluUHJlZGljYXRlc1VwZGF0ZUNvbXBvbmVudCxcbiAgICBBZG1pblByZWRpY2F0ZXNTZWxlY3RDb21wb25lbnQsXG4gICAgQWRtaW5BYmFjUnVsZXNDb21wb25lbnQsXG4gICAgQWRtaW5NZW51Q29tcG9uZW50LFxuICAgIEFkbWluTGF5b3V0Q29tcG9uZW50LFxuICAgIEFkbWluVGl0bGVDb21wb25lbnQsXG4gICAgQWRtaW5MYXlvdXRDb21wb25lbnQsXG4gICAgQWRtaW5NZW51Q29tcG9uZW50LFxuICAgIEFkbWluTWV0YWRhdGFDb21wb25lbnQsXG4gICAgQWRtaW5FbnZpcm9ubWVudE5ld0NvbXBvbmVudCxcbiAgICBBZG1pbkVudmlyb25tZW50VXBkYXRlQ29tcG9uZW50LFxuICAgIEFkbWluRW52aXJvbm1lbnRGb3JtQ29tcG9uZW50LFxuICAgIEFkbWluTmV3TWV0YWRhdGFDb21wb25lbnQsXG4gICAgQWRtaW5BYmFjUnVsZXNFZGl0Q29tcG9uZW50LFxuICAgIEFkbWluQWJhY1J1bGVzVmlld0NvbXBvbmVudCxcbiAgICBBZG1pbkFiYWNSdWxlc05ld0NvbXBvbmVudCxcbiAgICBTZWxlY3RNZXRhZGF0YUNvbXBvbmVudCxcbiAgICBTZWxlY3RBdHRyaWJ1dGVDb21wb25lbnQsXG4gICAgQXR0cmlidXRlQ29uZGl0aW9uQ29tcG9uZW50LFxuICAgIE1ldGFkYXRhQ29uZGl0aW9uQ29tcG9uZW50LFxuICAgIENvbXBvc2VkQ29uZGl0aW9uQ29tcG9uZW50LFxuICAgIEFkbWluQWJhY1J1bGVzRm9ybUNvbXBvbmVudCxcbiAgICBBZG1pblVzZXJOZXdNZXRhZGF0YUNvbXBvbmVudCxcbiAgICBBZG1pbkVkaXRNZXRhZGF0YUNvbXBvbmVudCxcbiAgICBBZG1pblByZWRpY2F0ZXNGb3JtQ29tcG9uZW50LFxuICAgIEFkbWluRW52aXJvbm1lbnRTZWxlY3RDb21wb25lbnQsXG4gICAgQWRtaW5Vc2VyRWRpdE1ldGFkYXRhQ29tcG9uZW50LFxuICAgIEFkbWluUHJlZGljYXRlc0Zvcm1Db21wb25lbnQsXG4gICAgRm9ybU1ldGFkYXRhQ29tcG9uZW50LFxuICAgIEFkbWluU2VsZWN0TWV0YWRhdGFDb21wb25lbnQsXG4gICAgQWRtaW5Vc2VyU2VsZWN0TWV0YWRhdGFDb21wb25lbnQsXG4gICAgQWRtaW5GaWVsZHNDb21wb25lbnQsXG4gICAgQWRtaW5GaWVsZHNOZXdDb21wb25lbnQsXG4gICAgQWRtaW5Vc2VyU2VsZWN0TWV0YWRhdGFDb21wb25lbnQsXG4gICAgQWRtaW5DbGFzc2VzRm9ybUNvbXBvbmVudCxcbiAgICBBZG1pbkNsYXNzZXNOZXdDb21wb25lbnQsXG4gICAgQWRtaW5DbGFzc2VzVmlld0NvbXBvbmVudCxcbiAgICBBZG1pbkF0dHJpYnV0ZXNOZXdDb21wb25lbnQsXG4gICAgQWRtaW5BdHRyaWJ1dGVzRm9ybUNvbXBvbmVudCxcbiAgICBBZG1pbkF0dHJpYnV0ZXNTZWxlY3RDb21wb25lbnQsXG4gICAgQWRtaW5DbGFzc2VzU2VsZWN0Q29tcG9uZW50LFxuICAgIEFkbWluRmllbGRzRm9ybUNvbXBvbmVudCxcbiAgICBBZG1pbkZpZWxkc1NlbGVjdENvbXBvbmVudCxcbiAgICBBZG1pbkNsYXNzZXNFZGl0Q29tcG9uZW50LFxuICAgIEFkbWluQXR0cmlidXRlc0VkaXRDb21wb25lbnQsXG4gICAgQWRtaW5GaWVsZHNFZGl0Q29tcG9uZW50LFxuICAgIEFkbWluVXNlckNvbXBvbmVudCxcbiAgICBBZG1pblVzZXJTZWxlY3RDb21wb25lbnQsXG4gICAgQWRtaW5SZWxhdGlvblR5cGVzQ29tcG9uZW50LFxuICAgIEFkbWluUmVsYXRpb25UeXBlc1NlbGVjdENvbXBvbmVudCxcbiAgICBBZG1pblJlbGF0aW9uVHlwZXNNb2RhbENvbXBvbmVudCxcbiAgICBBZG1pbkxpbmtzQ29tcG9uZW50LFxuICAgIEFkbWluTGlua3NOZXdDb21wb25lbnQsXG4gICAgQWRtaW5NZXRhZGF0YVJ1bGVzQ29tcG9uZW50LFxuICAgIEFkbWluU2VsZWN0TWV0YWRhdGFSdWxlc0NvbXBvbmVudCxcbiAgICBBZG1pbk5ld01ldGFkYXRhUnVsZXNDb21wb25lbnQsXG4gICAgQWRtaW5FZGl0TWV0YWRhdGFSdWxlc0NvbXBvbmVudCxcbiAgICBBZG1pbkZvcm1NZXRhZGF0YVJ1bGVzQ29tcG9uZW50LFxuICAgIEFkbWluRGF0YXNldENvbXBvbmVudCxcbiAgICBBZG1pbkVkaXREYXRhc2V0Q29tcG9uZW50LFxuICAgIEFkbWluTmV3RGF0YXNldENvbXBvbmVudCxcbiAgICBBZG1pblNlbGVjdERhdGFzZXRDb21wb25lbnQsXG4gICAgQWRtaW5Gb3JtRGF0YXNldENvbXBvbmVudCxcbiAgICBBZG1pbkNsYXNzZXNDdXN0b21pemVDb21wb25lbnQsXG4gICAgQWRtaW5DbGFzc2VzQ3VzdG9taXplVG9vbHRpcENvbXBvbmVudCxcbiAgICBBZG1pbkNsYXNzZXNDdXN0b21pemVTeW1ib2xDb21wb25lbnQsXG4gICAgUHJ5QXNzb2NpYXRpb25Db21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBQcnlDb3JlTW9kdWxlLFxuICAgIEFkbWluUm91dGluZ01vZHVsZSxcbiAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKGFkbWluRmVhdHVyZUtleSwgYWRtaW5SZWR1Y2VyKSxcbiAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKHByZWRpY2F0ZXNGZWF0dXJlS2V5LCBwcmVkaWNhdGVSZWR1Y2VyKSxcbiAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKGFiYWNSdWxlc0ZlYXR1cmVLZXksIGFiYWNSdWxlUmVkdWNlciksXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShlbnZpcm9ubWVudEZlYXR1cmVLZXksIGVudmlyb25tZW50UmVkdWNlciksXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShhZG1pbk1ldGFkYXRhVXNlckZlYXR1cmVLZXksIGFkbWluTWV0YWRhdGFVc2VyUmVkdWNlciksXG4gICAgU3RvcmVNb2R1bGUuZm9yRmVhdHVyZShhZG1pbk1ldGFkYXRhUnVsZXNGZWF0dXJlS2V5LCBhZG1pbk1ldGFkYXRhUnVsZXNSZWR1Y2VyKSxcbiAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKGNsYXNzZXNGZWF0dXJlS2V5LCBjbGFzc1JlZHVjZXIpLFxuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoZmllbGRzRmVhdHVyZUtleSwgZmllbGRSZWR1Y2VyKSxcbiAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKGFkbWluVXNlckZlYXR1cmVLZXksIGFkbWluVXNlclJlZHVjZXIpLFxuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUobGlua3NGZWF0dXJlS2V5LCBsaW5rUmVkdWNlciksXG4gICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtBZG1pbkVmZmVjdHNdKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW1ByZWRpY2F0ZXNFZmZlY3RzXSksXG4gICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtFbnZpcm9ubWVudEVmZmVjdHNdKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW0FiYWNSdWxlc0VmZmVjdHNdKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW0FkbWluTWV0YWRhdGFVc2VyRWZmZWN0c10pLFxuICAgIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShbQWRtaW5DbGFzc0VmZmVjdHNdKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW0ZpZWxkc0VmZmVjdHNdKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW0FkbWluVXNlckVmZmVjdHNdKSxcbiAgICBFZmZlY3RzTW9kdWxlLmZvckZlYXR1cmUoW0xpbmtzRWZmZWN0c10pLFxuICAgIEVmZmVjdHNNb2R1bGUuZm9yRmVhdHVyZShbQWRtaW5NZXRhZGF0YVJ1bGVzRWZmZWN0c10pLFxuICAgIFByeUljb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBQcnlTb3J0TW9kdWxlLFxuICAgIFByeUNoZWNrYm94TW9kdWxlLFxuICAgIFByeU1vZGFsTW9kdWxlLFxuICAgIFByeVNlbGVjdE1vZHVsZSxcbiAgICBQcnlMaXN0TWV0YWRhdGFNb2R1bGUsXG4gICAgUHJ5VG9nZ2xlTW9kdWxlLFxuICAgIE92ZXJsYXlNb2R1bGUsXG4gICAgUHJ5T3ZlcmxheU1vZHVsZSxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICBQcnlJMThuTW9kdWxlLFxuICAgIFByeUV4cGFuZFBhbmVsTW9kdWxlLFxuICAgIFByeVNpbmNlRGF0ZU1vZHVsZSxcbiAgICBQcnlEYXRhc2V0TW9kdWxlLFxuICAgIFByeVNoYXJlTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUHJ5QWRtaW5Nb2R1bGUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHByeVRyYW5zbGF0ZVNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlKSB7XG4gICAgdGhpcy5wcnlUcmFuc2xhdGVTZXJ2aWNlLmFkZExhbmdPYmplY3QoJ2ZyJywgJ2FkbWluJywgZnJUcmFuc2xhdGlvbnMpO1xuICAgIHRoaXMucHJ5VHJhbnNsYXRlU2VydmljZS5hZGRMYW5nT2JqZWN0KCdlbicsICdhZG1pbicsIGVuVHJhbnNsYXRpb25zKTtcbiAgfVxufVxuIl19
@@ -1,61 +1,84 @@
1
1
  import { Component } from '@angular/core';
2
- import { DataSourceActions, DataSourceSelectors, SubscriptionnerDirective } from '@provoly/dashboard';
2
+ import { DashboardSelectors, DataSourceActions, DataSourceSelectors, SubscriptionnerDirective } from '@provoly/dashboard';
3
3
  import { MetadataActions, MetadataSelectors } from '@provoly/dashboard/components/metadata-editor';
4
- import { Subscription } from 'rxjs';
4
+ import { map, Subscription, withLatestFrom } from 'rxjs';
5
5
  import { AdminActions } from '../../../store/admin.actions';
6
6
  import { AdminSelectors } from '../../../store/admin.selectors';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@ngrx/store";
9
9
  import * as i2 from "@angular/router";
10
- import * as i3 from "@angular/common";
11
- import * as i4 from "@provoly/dashboard";
12
- import * as i5 from "@provoly/dashboard/components/metadata-editor";
13
- import * as i6 from "../../association/association.component";
10
+ import * as i3 from "@provoly/dashboard";
11
+ import * as i4 from "@angular/common";
12
+ import * as i5 from "@angular/forms";
13
+ import * as i6 from "@provoly/dashboard/components/metadata-editor";
14
+ import * as i7 from "../../association/association.component";
14
15
  export class AdminSelectDatasetComponent extends SubscriptionnerDirective {
15
16
  static { this.id = 'AdminSelectDatasetComponent'; }
16
- constructor(store, router, route) {
17
+ constructor(store, router, route, i18n) {
17
18
  super();
18
19
  this.store = store;
19
20
  this.router = router;
20
21
  this.route = route;
22
+ this.i18n = i18n;
21
23
  this.sub = new Subscription();
22
24
  this.currentTypeTranslation = '';
25
+ this.accessGroups = [];
23
26
  this.store.dispatch(MetadataActions.loadMetadata());
24
27
  this.selectedDataset$ = this.store.select(DataSourceSelectors.selectedDataset);
25
28
  this.datasetMetadata$ = this.store.select(DataSourceSelectors.selectedDatasetMetadata);
26
29
  this.associations$ = this.store.select(AdminSelectors.selectedAssociation);
27
30
  this.editable$ = this.store.select(MetadataSelectors.editable);
31
+ this.conflictGroups$ = this.store.select(DataSourceSelectors.selectedDatasetConflictGroups).pipe(withLatestFrom(this.store.select(DashboardSelectors.manifestsList)), map(([conflict, manifests]) => {
32
+ const result = {};
33
+ Object.keys(conflict ?? {}).forEach((entityId) => {
34
+ result[entityId] = {
35
+ groups: conflict?.[entityId] ?? [],
36
+ entityName: manifests.find((m) => m.id === entityId)?.name ?? entityId
37
+ };
38
+ });
39
+ return Object.keys(result).length > 0 ? result : undefined;
40
+ }));
28
41
  }
29
42
  ngOnInit() {
30
43
  this.subscriptions.add(this.selectedDataset$.subscribe((dataset) => {
31
44
  if (dataset) {
45
+ this.accessGroups = dataset?.groups ?? [];
32
46
  const editPath = this.router.createUrlTree(['.', 'dataset', 'edit', dataset.id], {
33
47
  relativeTo: this.route
34
48
  });
35
- this.store.dispatch(AdminActions.mainActions({
36
- actions: [
37
- {
38
- action: AdminActions.routeTo({ path: editPath.toString() }),
39
- label: 'edit',
40
- icon: 'edit',
41
- moduleAccess: 'admin',
42
- pageAccess: 'dataset',
43
- actionAccess: 'write'
44
- },
45
- {
46
- action: DataSourceActions.dataset.confirmDataSourceDeletion({
47
- name: dataset.id,
48
- route: this.router.createUrlTree(['.', 'dataset'], { relativeTo: this.route }).toString(),
49
- addRoute: this.router.createUrlTree(['.', 'dataset', 'new'], { relativeTo: this.route }).toString()
50
- }),
51
- label: 'delete',
52
- icon: 'delete',
53
- moduleAccess: 'admin',
54
- pageAccess: 'dataset',
55
- actionAccess: 'write'
56
- }
57
- ]
58
- }));
49
+ if (dataset.owner) {
50
+ this.store.dispatch(AdminActions.mainActions({
51
+ actions: [
52
+ {
53
+ action: AdminActions.routeTo({ path: editPath.toString() }),
54
+ label: 'edit',
55
+ icon: 'edit',
56
+ moduleAccess: 'admin',
57
+ pageAccess: 'dataset',
58
+ actionAccess: 'write'
59
+ },
60
+ {
61
+ action: DataSourceActions.dataset.confirmDataSourceDeletion({
62
+ name: dataset.id,
63
+ route: this.router.createUrlTree(['.', 'dataset'], { relativeTo: this.route }).toString(),
64
+ addRoute: this.router
65
+ .createUrlTree(['.', 'dataset', 'new'], { relativeTo: this.route })
66
+ .toString()
67
+ }),
68
+ label: 'delete',
69
+ icon: 'delete',
70
+ moduleAccess: 'admin',
71
+ pageAccess: 'dataset',
72
+ actionAccess: 'write'
73
+ }
74
+ ]
75
+ }));
76
+ }
77
+ else {
78
+ this.store.dispatch(AdminActions.mainActions({
79
+ actions: []
80
+ }));
81
+ }
59
82
  }
60
83
  }));
61
84
  }
@@ -86,11 +109,19 @@ export class AdminSelectDatasetComponent extends SubscriptionnerDirective {
86
109
  value: metadata.value
87
110
  }));
88
111
  }
89
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminSelectDatasetComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
90
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminSelectDatasetComponent, selector: "pry-admin-select-dataset", usesInheritance: true, ngImport: i0, template: "<div\n *ngIf=\"selectedDataset$ | async as dataset\"\n [id]=\"'panel-dataset-' + dataset.id\"\n [attr.aria-labelledby]=\"'button-dataset-' + dataset.id\"\n class=\"o-panel\"\n>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"datasetMetadata\" name=\"metadata.title\"></pry-tab>\n <pry-tab [templateRef]=\"datasetAssociations\" name=\"classes.associations\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #datasetMetadata>\n <pry-metadata-editor\n [targetId]=\"(selectedDataset$ | async)?.id ?? ''\"\n [isModification]=\"(editable$ | async) ?? false\"\n [metadata]=\"(datasetMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addDatasetMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </ng-template>\n\n <ng-template #datasetAssociations>\n <div *ngIf=\"associations$ | async as associations\" class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <pry-association [associations]=\"associations\"></pry-association>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i4.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5.PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: ["isModification", "targetId", "type", "metadata"], outputs: ["addMeta", "removeMeta"] }, { kind: "component", type: i6.PryAssociationComponent, selector: "pry-association", inputs: ["associations"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
112
+ share(dataset) {
113
+ this.store.dispatch(DataSourceActions.dataset.update({ dataset: { ...dataset, groups: this.accessGroups }, route: '' }));
114
+ }
115
+ getGroupLabel(groupName) {
116
+ const i18nBase = '@pry.components.chipsSelector.share.groups.';
117
+ const label = this.i18n.instant(i18nBase + groupName);
118
+ return label.startsWith(i18nBase) ? groupName : label;
119
+ }
120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminSelectDatasetComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
121
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: AdminSelectDatasetComponent, selector: "pry-admin-select-dataset", usesInheritance: true, ngImport: i0, template: "<div\n *ngIf=\"selectedDataset$ | async as dataset\"\n [id]=\"'panel-dataset-' + dataset.id\"\n [attr.aria-labelledby]=\"'button-dataset-' + dataset.id\"\n class=\"o-panel o-pry-admin-dataset-select\"\n>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 class=\"a-h3\">\n {{ '@pry.admin.dataset.details' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"datasetMetadata\" name=\"metadata.title\"></pry-tab>\n <pry-tab [templateRef]=\"datasetAssociations\" name=\"classes.associations\"></pry-tab>\n <pry-tab *ngIf=\"dataset.owner\" [templateRef]=\"shareDataset\" name=\"share\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #datasetMetadata>\n <pry-metadata-editor\n [targetId]=\"(selectedDataset$ | async)?.id ?? ''\"\n [isModification]=\"(editable$ | async) ?? false\"\n [metadata]=\"(datasetMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addDatasetMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </ng-template>\n\n <ng-template #datasetAssociations>\n <div *ngIf=\"associations$ | async as associations\" class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <pry-association [associations]=\"associations\"></pry-association>\n </div>\n </ng-template>\n\n <ng-template #shareDataset>\n <div class=\"o-pry-admin-dataset-select__share\">\n <pry-group-share [ngModel]=\"dataset.groups\" (ngModelChange)=\"accessGroups = $event\"></pry-group-share>\n <button type=\"submit\" class=\"a-btn a-btn--primary u-self-end\" #submit (click)=\"share(dataset)\">\n {{ '@pry.admin.validate' | i18n }}\n </button>\n @if(conflictGroups$ | async; as conflictGroups) {\n <div class=\"u-display-flex -column\">\n <span>{{ '@pry.admin.dataset.conflict' | i18n }}</span>\n @for(conflict of conflictGroups | keyvalue; track conflict.key) {\n <div>\n {{ '@pry.admin.dataset.entities.dashboard' | i18n }} <strong>{{ conflict.value.entityName }}</strong>\n <div class=\"u-display-flex\">\n @for(group of conflict.value.groups; track group) {\n <span class=\"a-chip\">{{ getGroupLabel(group) }}</span>\n }\n </div>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"] }, { kind: "component", type: i3.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: ["isModification", "targetId", "type", "metadata"], outputs: ["addMeta", "removeMeta"] }, { kind: "component", type: i3.PryGroupShareComponent, selector: "pry-group-share" }, { kind: "component", type: i7.PryAssociationComponent, selector: "pry-association", inputs: ["associations"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
91
122
  }
92
123
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminSelectDatasetComponent, decorators: [{
93
124
  type: Component,
94
- args: [{ selector: 'pry-admin-select-dataset', template: "<div\n *ngIf=\"selectedDataset$ | async as dataset\"\n [id]=\"'panel-dataset-' + dataset.id\"\n [attr.aria-labelledby]=\"'button-dataset-' + dataset.id\"\n class=\"o-panel\"\n>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 class=\"a-h3\">\n {{ '@pry.admin.metadata.details' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"datasetMetadata\" name=\"metadata.title\"></pry-tab>\n <pry-tab [templateRef]=\"datasetAssociations\" name=\"classes.associations\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #datasetMetadata>\n <pry-metadata-editor\n [targetId]=\"(selectedDataset$ | async)?.id ?? ''\"\n [isModification]=\"(editable$ | async) ?? false\"\n [metadata]=\"(datasetMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addDatasetMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </ng-template>\n\n <ng-template #datasetAssociations>\n <div *ngIf=\"associations$ | async as associations\" class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <pry-association [associations]=\"associations\"></pry-association>\n </div>\n </ng-template>\n</div>\n" }]
95
- }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }] });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tc2VsZWN0LWRhdGFzZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vY29tcG9uZW50cy9hZG1pbi1kYXRhc2V0L2FkbWluLXNlbGVjdC1kYXRhc2V0L2FkbWluLXNlbGVjdC1kYXRhc2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tZGF0YXNldC9hZG1pbi1zZWxlY3QtZGF0YXNldC9hZG1pbi1zZWxlY3QtZGF0YXNldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUc3RCxPQUFPLEVBR0wsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUVuQix3QkFBd0IsRUFDekIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFpQixNQUFNLCtDQUErQyxDQUFDO0FBQ2xILE9BQU8sRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7QUFNaEUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHdCQUF3QjthQUNoRSxPQUFFLEdBQUcsNkJBQTZCLEFBQWhDLENBQWlDO0lBUTFDLFlBQW9CLEtBQWlCLEVBQVUsTUFBYyxFQUFVLEtBQXFCO1FBQzFGLEtBQUssRUFBRSxDQUFDO1FBRFUsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUw1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dGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgQXNzb2NpYXRpb25zLFxuICBEYXRhc2V0LFxuICBEYXRhU291cmNlQWN0aW9ucyxcbiAgRGF0YVNvdXJjZVNlbGVjdG9ycyxcbiAgTWV0YWRhdGFWYWx1ZSxcbiAgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBNZXRhZGF0YUFjdGlvbnMsIE1ldGFkYXRhU2VsZWN0b3JzLCBNZXRhRXZlbnRUeXBlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvbWV0YWRhdGEtZWRpdG9yJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWRtaW5BY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvYWRtaW4uYWN0aW9ucyc7XG5pbXBvcnQgeyBBZG1pblNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2FkbWluLnNlbGVjdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hZG1pbi1zZWxlY3QtZGF0YXNldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZG1pbi1zZWxlY3QtZGF0YXNldC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWRtaW5TZWxlY3REYXRhc2V0Q29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBzdGF0aWMgaWQgPSAnQWRtaW5TZWxlY3REYXRhc2V0Q29tcG9uZW50JztcbiAgc2VsZWN0ZWREYXRhc2V0JDogT2JzZXJ2YWJsZTxEYXRhc2V0IHwgbnVsbD47XG4gIGFzc29jaWF0aW9ucyQ6IE9ic2VydmFibGU8QXNzb2NpYXRpb25zIHwgdW5kZWZpbmVkPjtcbiAgc3ViID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBjdXJyZW50VHlwZVRyYW5zbGF0aW9uID0gJyc7XG4gIGRhdGFzZXRNZXRhZGF0YSQ6IE9ic2VydmFibGU8TWV0YWRhdGFWYWx1ZVtdPjtcbiAgZWRpdGFibGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT4sIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1ldGFkYXRhQWN0aW9ucy5sb2FkTWV0YWRhdGEoKSk7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFzZXQkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5zZWxlY3RlZERhdGFzZXQpO1xuICAgIHRoaXMuZGF0YXNldE1ldGFkYXRhJCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuc2VsZWN0ZWREYXRhc2V0TWV0YWRhdGEpO1xuICAgIHRoaXMuYXNzb2NpYXRpb25zJCA9IHRoaXMuc3RvcmUuc2VsZWN0KEFkbWluU2VsZWN0b3JzLnNlbGVjdGVkQXNzb2NpYXRpb24pO1xuICAgIHRoaXMuZWRpdGFibGUkID0gdGhpcy5zdG9yZS5zZWxlY3QoTWV0YWRhdGFTZWxlY3RvcnMuZWRpdGFibGUpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRhc2V0JC5zdWJzY3JpYmUoKGRhdGFzZXQpID0+IHtcbiAgICAgICAgaWYgKGRhdGFzZXQpIHtcbiAgICAgICAgICBjb25zdCBlZGl0UGF0aCA9IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWycuJywgJ2RhdGFzZXQnLCAnZWRpdCcsIGRhdGFzZXQuaWRdLCB7XG4gICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgIEFkbWluQWN0aW9ucy5tYWluQWN0aW9ucyh7XG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBhY3Rpb246IEFkbWluQWN0aW9ucy5yb3V0ZVRvKHsgcGF0aDogZWRpdFBhdGgudG9TdHJpbmcoKSB9KSxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnZWRpdCcsXG4gICAgICAgICAgICAgICAgICBpY29uOiAnZWRpdCcsXG4gICAgICAgICAgICAgICAgICBtb2R1bGVBY2Nlc3M6ICdhZG1pbicsXG4gICAgICAgICAgICAgICAgICBwYWdlQWNjZXNzOiAnZGF0YXNldCcsXG4gICAgICAgICAgICAgICAgICBhY3Rpb25BY2Nlc3M6ICd3cml0ZSdcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGFjdGlvbjogRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5jb25maXJtRGF0YVNvdXJjZURlbGV0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogZGF0YXNldC5pZCxcbiAgICAgICAgICAgICAgICAgICAgcm91dGU6IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWycuJywgJ2RhdGFzZXQnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIGFkZFJvdXRlOiB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLicsICdkYXRhc2V0JywgJ25ldyddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSkudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ2RlbGV0ZScsXG4gICAgICAgICAgICAgICAgICBpY29uOiAnZGVsZXRlJyxcbiAgICAgICAgICAgICAgICAgIG1vZHVsZUFjY2VzczogJ2FkbWluJyxcbiAgICAgICAgICAgICAgICAgIHBhZ2VBY2Nlc3M6ICdkYXRhc2V0JyxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbkFjY2VzczogJ3dyaXRlJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBjbG9zZVBhbmVsKCkge1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLicsICdkYXRhc2V0JywgJ25ldyddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LnVuc2VsZWN0RGF0YXNldCgpKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQWN0aW9ucy50b2dnbGVQYW5lbCh7IHBhbmVsT3BlbjogZmFsc2UgfSkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBBZG1pbkFjdGlvbnMubWFpbkFjdGlvbnMoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWN0aW9uOiBBZG1pbkFjdGlvbnMucm91dGVUbyh7IHBhdGg6IHBhdGgudG9TdHJpbmcoKSB9KSxcbiAgICAgICAgICAgIGxhYmVsOiAnYWRkJyxcbiAgICAgICAgICAgIGljb246ICdhZGRfY29sdW1uJyxcbiAgICAgICAgICAgIG1vZHVsZUFjY2VzczogJ2FkbWluJyxcbiAgICAgICAgICAgIHBhZ2VBY2Nlc3M6ICdtZXRhZGF0YV9ydWxlcycsXG4gICAgICAgICAgICBhY3Rpb25BY2Nlc3M6ICd3cml0ZSdcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJlbW92ZU1ldGFkYXRhKG1ldGFkYXRhOiBNZXRhRXZlbnRUeXBlKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIE1ldGFkYXRhQWN0aW9ucy5kZWxldGVEYXRhc2V0TWV0YWRhdGEoeyBkYXRhc2V0SWQ6IG1ldGFkYXRhLmlkLCBtZXRhZGF0YUlkOiBtZXRhZGF0YS5tZXRhZGF0YUlkIH0pXG4gICAgKTtcbiAgfVxuXG4gIGFkZERhdGFzZXRNZXRhZGF0YShtZXRhZGF0YTogTWV0YUV2ZW50VHlwZSkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBNZXRhZGF0YUFjdGlvbnMuYWRkRGF0YXNldE1ldGFkYXRhKHtcbiAgICAgICAgZGF0YXNldElkOiBtZXRhZGF0YS5pZCxcbiAgICAgICAgbWV0YWRhdGFJZDogbWV0YWRhdGEubWV0YWRhdGFJZCxcbiAgICAgICAgdmFsdWU6IG1ldGFkYXRhLnZhbHVlXG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJzZWxlY3RlZERhdGFzZXQkIHwgYXN5bmMgYXMgZGF0YXNldFwiXG4gIFtpZF09XCIncGFuZWwtZGF0YXNldC0nICsgZGF0YXNldC5pZFwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInYnV0dG9uLWRhdGFzZXQtJyArIGRhdGFzZXQuaWRcIlxuICBjbGFzcz1cIm8tcGFuZWxcIlxuPlxuICA8ZGl2IGNsYXNzPVwiby1wYW5lbF9faGVhZGVyXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCIgKGNsaWNrKT1cImNsb3NlUGFuZWwoKVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LmFjdGlvbi5jbG9zZVBhbmVsJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNsb3NlXCI+PC9wcnktaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxoMyBjbGFzcz1cImEtaDNcIj5cbiAgICAgIHt7ICdAcHJ5LmFkbWluLm1ldGFkYXRhLmRldGFpbHMnIHwgaTE4biB9fVxuICAgIDwvaDM+XG4gIDwvZGl2PlxuXG4gIDxwcnktdGFiLWdyb3VwIHRyYW5zbGF0aW9uU3RyaW5nQmFzZT1cIkBwcnkuYWRtaW4uXCI+XG4gICAgPHByeS10YWIgW3RlbXBsYXRlUmVmXT1cImRhdGFzZXRNZXRhZGF0YVwiIG5hbWU9XCJtZXRhZGF0YS50aXRsZVwiPjwvcHJ5LXRhYj5cbiAgICA8cHJ5LXRhYiBbdGVtcGxhdGVSZWZdPVwiZGF0YXNldEFzc29jaWF0aW9uc1wiIG5hbWU9XCJjbGFzc2VzLmFzc29jaWF0aW9uc1wiPjwvcHJ5LXRhYj5cbiAgPC9wcnktdGFiLWdyb3VwPlxuXG4gIDxuZy10ZW1wbGF0ZSAjZGF0YXNldE1ldGFkYXRhPlxuICAgIDxwcnktbWV0YWRhdGEtZWRpdG9yXG4gICAgICBbdGFyZ2V0SWRdPVwiKHNlbGVjdGVkRGF0YXNldCQgfCBhc3luYyk/LmlkID8/ICcnXCJcbiAgICAgIFtpc01vZGlmaWNhdGlvbl09XCIoZWRpdGFibGUkIHwgYXN5bmMpID8/IGZhbHNlXCJcbiAgICAgIFttZXRhZGF0YV09XCIoZGF0YXNldE1ldGFkYXRhJCB8IGFzeW5jKSA/PyBbXVwiXG4gICAgICAocmVtb3ZlTWV0YSk9XCJyZW1vdmVNZXRhZGF0YSgkZXZlbnQpXCJcbiAgICAgIChhZGRNZXRhKT1cImFkZERhdGFzZXRNZXRhZGF0YSgkZXZlbnQpXCJcbiAgICAgIFt0eXBlXT1cIidtZXRhJ1wiXG4gICAgPjwvcHJ5LW1ldGFkYXRhLWVkaXRvcj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgI2RhdGFzZXRBc3NvY2lhdGlvbnM+XG4gICAgPGRpdiAqbmdJZj1cImFzc29jaWF0aW9ucyQgfCBhc3luYyBhcyBhc3NvY2lhdGlvbnNcIiBjbGFzcz1cIm8tdGFic19fcGFuZWxzX19pdGVtX19jb250ZW50XCI+XG4gICAgICA8aDQgY2xhc3M9XCJhLWg0XCI+e3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5hc3NvY2lhdGlvbnMnIHwgaTE4biB9fTwvaDQ+XG4gICAgICA8cHJ5LWFzc29jaWF0aW9uIFthc3NvY2lhdGlvbnNdPVwiYXNzb2NpYXRpb25zXCI+PC9wcnktYXNzb2NpYXRpb24+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
125
+ args: [{ selector: 'pry-admin-select-dataset', template: "<div\n *ngIf=\"selectedDataset$ | async as dataset\"\n [id]=\"'panel-dataset-' + dataset.id\"\n [attr.aria-labelledby]=\"'button-dataset-' + dataset.id\"\n class=\"o-panel o-pry-admin-dataset-select\"\n>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 class=\"a-h3\">\n {{ '@pry.admin.dataset.details' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"datasetMetadata\" name=\"metadata.title\"></pry-tab>\n <pry-tab [templateRef]=\"datasetAssociations\" name=\"classes.associations\"></pry-tab>\n <pry-tab *ngIf=\"dataset.owner\" [templateRef]=\"shareDataset\" name=\"share\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #datasetMetadata>\n <pry-metadata-editor\n [targetId]=\"(selectedDataset$ | async)?.id ?? ''\"\n [isModification]=\"(editable$ | async) ?? false\"\n [metadata]=\"(datasetMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addDatasetMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </ng-template>\n\n <ng-template #datasetAssociations>\n <div *ngIf=\"associations$ | async as associations\" class=\"o-tabs__panels__item__content\">\n <h4 class=\"a-h4\">{{ '@pry.admin.classes.associations' | i18n }}</h4>\n <pry-association [associations]=\"associations\"></pry-association>\n </div>\n </ng-template>\n\n <ng-template #shareDataset>\n <div class=\"o-pry-admin-dataset-select__share\">\n <pry-group-share [ngModel]=\"dataset.groups\" (ngModelChange)=\"accessGroups = $event\"></pry-group-share>\n <button type=\"submit\" class=\"a-btn a-btn--primary u-self-end\" #submit (click)=\"share(dataset)\">\n {{ '@pry.admin.validate' | i18n }}\n </button>\n @if(conflictGroups$ | async; as conflictGroups) {\n <div class=\"u-display-flex -column\">\n <span>{{ '@pry.admin.dataset.conflict' | i18n }}</span>\n @for(conflict of conflictGroups | keyvalue; track conflict.key) {\n <div>\n {{ '@pry.admin.dataset.entities.dashboard' | i18n }} <strong>{{ conflict.value.entityName }}</strong>\n <div class=\"u-display-flex\">\n @for(group of conflict.value.groups; track group) {\n <span class=\"a-chip\">{{ getGroupLabel(group) }}</span>\n }\n </div>\n </div>\n }\n </div>\n }\n </div>\n </ng-template>\n</div>\n" }]
126
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.PryI18nService }] });
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tc2VsZWN0LWRhdGFzZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vY29tcG9uZW50cy9hZG1pbi1kYXRhc2V0L2FkbWluLXNlbGVjdC1kYXRhc2V0L2FkbWluLXNlbGVjdC1kYXRhc2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tZGF0YXNldC9hZG1pbi1zZWxlY3QtZGF0YXNldC9hZG1pbi1zZWxlY3QtZGF0YXNldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUc3RCxPQUFPLEVBRUwsa0JBQWtCLEVBRWxCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFHbkIsd0JBQXdCLEVBQ3pCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSwrQ0FBK0MsQ0FBQztBQUNsSCxPQUFPLEVBQUUsR0FBRyxFQUFjLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7O0FBTWhFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSx3QkFBd0I7YUFDaEUsT0FBRSxHQUFHLDZCQUE2QixBQUFoQyxDQUFpQztJQVUxQyxZQUNVLEtBQWlCLEVBQ2pCLE1BQWMsRUFDZCxLQUFxQixFQUNyQixJQUFvQjtRQUU1QixLQUFLLEVBQUUsQ0FBQztRQUxBLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBWDlCLFFBQUcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3pCLDJCQUFzQixHQUFHLEVBQUUsQ0FBQztRQUc1QixpQkFBWSxHQUFhLEVBQUUsQ0FBQztRQVUxQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxJQUFJLENBQzlGLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUNuRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFO1lBQzVCLE1BQU0sTUFBTSxHQUFnRSxFQUFFLENBQUM7WUFDL0UsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQy9DLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRztvQkFDakIsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7b0JBQ2xDLFVBQVUsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxFQUFFLElBQUksSUFBSSxRQUFRO2lCQUN2RSxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMxQyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO29CQUMvRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7aUJBQ3ZCLENBQUMsQ0FBQztnQkFDSCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLFlBQVksQ0FBQyxXQUFXLENBQUM7d0JBQ3ZCLE9BQU8sRUFBRTs0QkFDUDtnQ0FDRSxNQUFNLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztnQ0FDM0QsS0FBSyxFQUFFLE1BQU07Z0NBQ2IsSUFBSSxFQUFFLE1BQU07Z0NBQ1osWUFBWSxFQUFFLE9BQU87Z0NBQ3JCLFVBQVUsRUFBRSxTQUFTO2dDQUNyQixZQUFZLEVBQUUsT0FBTzs2QkFDdEI7NEJBQ0Q7Z0NBQ0UsTUFBTSxFQUFFLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQztvQ0FDMUQsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFO29DQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO29DQUN6RixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU07eUNBQ2xCLGFBQWEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO3lDQUNsRSxRQUFRLEVBQUU7aUNBQ2QsQ0FBQztnQ0FDRixLQUFLLEVBQUUsUUFBUTtnQ0FDZixJQUFJLEVBQUUsUUFBUTtnQ0FDZCxZQUFZLEVBQUUsT0FBTztnQ0FDckIsVUFBVSxFQUFFLFNBQVM7Z0NBQ3JCLFlBQVksRUFBRSxPQUFPOzZCQUN0Qjt5QkFDRjtxQkFDRixDQUFDLENBQ0gsQ0FBQztnQkFDSixDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLFlBQVksQ0FBQyxXQUFXLENBQUM7d0JBQ3ZCLE9BQU8sRUFBRSxFQUFFO3FCQUNaLENBQUMsQ0FDSCxDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVO1FBQ1IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNqQixZQUFZLENBQUMsV0FBVyxDQUFDO1lBQ3ZCLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxNQUFNLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztvQkFDdkQsS0FBSyxFQUFFLEtBQUs7b0JBQ1osSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLFlBQVksRUFBRSxPQUFPO29CQUNyQixVQUFVLEVBQUUsZ0JBQWdCO29CQUM1QixZQUFZLEVBQUUsT0FBTztpQkFDdEI7YUFDRjtTQUNGLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUF1QjtRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsZUFBZSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUNuRyxDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQixDQUFDLFFBQXVCO1FBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNqQixlQUFlLENBQUMsa0JBQWtCLENBQUM7WUFDakMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxFQUFFO1lBQ3RCLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtZQUMvQixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7U0FDdEIsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQWdCO1FBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNqQixpQkFBaUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FDcEcsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhLENBQUMsU0FBaUI7UUFDN0IsTUFBTSxRQUFRLEdBQUcsNkNBQTZDLENBQUM7UUFDL0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDeEQsQ0FBQzs4R0FySVUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsdUZDdEJ4QyxnckZBaUVBOzsyRkQzQ2EsMkJBQTJCO2tCQUp2QyxTQUFTOytCQUNFLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBBc3NvY2lhdGlvbnMsXG4gIERhc2hib2FyZFNlbGVjdG9ycyxcbiAgRGF0YXNldCxcbiAgRGF0YVNvdXJjZUFjdGlvbnMsXG4gIERhdGFTb3VyY2VTZWxlY3RvcnMsXG4gIE1ldGFkYXRhVmFsdWUsXG4gIFByeUkxOG5TZXJ2aWNlLFxuICBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmVcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IE1ldGFkYXRhQWN0aW9ucywgTWV0YWRhdGFTZWxlY3RvcnMsIE1ldGFFdmVudFR5cGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvY29tcG9uZW50cy9tZXRhZGF0YS1lZGl0b3InO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBZG1pbkFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9hZG1pbi5hY3Rpb25zJztcbmltcG9ydCB7IEFkbWluU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvYWRtaW4uc2VsZWN0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWFkbWluLXNlbGVjdC1kYXRhc2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkbWluLXNlbGVjdC1kYXRhc2V0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZG1pblNlbGVjdERhdGFzZXRDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHN0YXRpYyBpZCA9ICdBZG1pblNlbGVjdERhdGFzZXRDb21wb25lbnQnO1xuICBzZWxlY3RlZERhdGFzZXQkOiBPYnNlcnZhYmxlPERhdGFzZXQgfCBudWxsPjtcbiAgYXNzb2NpYXRpb25zJDogT2JzZXJ2YWJsZTxBc3NvY2lhdGlvbnMgfCB1bmRlZmluZWQ+O1xuICBzdWIgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIGN1cnJlbnRUeXBlVHJhbnNsYXRpb24gPSAnJztcbiAgZGF0YXNldE1ldGFkYXRhJDogT2JzZXJ2YWJsZTxNZXRhZGF0YVZhbHVlW10+O1xuICBlZGl0YWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGFjY2Vzc0dyb3Vwczogc3RyaW5nW10gPSBbXTtcbiAgY29uZmxpY3RHcm91cHMkOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogeyBncm91cHM6IHN0cmluZ1tdOyBlbnRpdHlOYW1lOiBzdHJpbmcgfSB9IHwgdW5kZWZpbmVkPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxhbnk+LFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBpMThuOiBQcnlJMThuU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTWV0YWRhdGFBY3Rpb25zLmxvYWRNZXRhZGF0YSgpKTtcbiAgICB0aGlzLnNlbGVjdGVkRGF0YXNldCQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLnNlbGVjdGVkRGF0YXNldCk7XG4gICAgdGhpcy5kYXRhc2V0TWV0YWRhdGEkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5zZWxlY3RlZERhdGFzZXRNZXRhZGF0YSk7XG4gICAgdGhpcy5hc3NvY2lhdGlvbnMkID0gdGhpcy5zdG9yZS5zZWxlY3QoQWRtaW5TZWxlY3RvcnMuc2VsZWN0ZWRBc3NvY2lhdGlvbik7XG4gICAgdGhpcy5lZGl0YWJsZSQgPSB0aGlzLnN0b3JlLnNlbGVjdChNZXRhZGF0YVNlbGVjdG9ycy5lZGl0YWJsZSk7XG4gICAgdGhpcy5jb25mbGljdEdyb3VwcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXRhU291cmNlU2VsZWN0b3JzLnNlbGVjdGVkRGF0YXNldENvbmZsaWN0R3JvdXBzKS5waXBlKFxuICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLm1hbmlmZXN0c0xpc3QpKSxcbiAgICAgIG1hcCgoW2NvbmZsaWN0LCBtYW5pZmVzdHNdKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogeyBba2V5OiBzdHJpbmddOiB7IGdyb3Vwczogc3RyaW5nW107IGVudGl0eU5hbWU6IHN0cmluZyB9IH0gPSB7fTtcbiAgICAgICAgT2JqZWN0LmtleXMoY29uZmxpY3QgPz8ge30pLmZvckVhY2goKGVudGl0eUlkKSA9PiB7XG4gICAgICAgICAgcmVzdWx0W2VudGl0eUlkXSA9IHtcbiAgICAgICAgICAgIGdyb3VwczogY29uZmxpY3Q/LltlbnRpdHlJZF0gPz8gW10sXG4gICAgICAgICAgICBlbnRpdHlOYW1lOiBtYW5pZmVzdHMuZmluZCgobSkgPT4gbS5pZCA9PT0gZW50aXR5SWQpPy5uYW1lID8/IGVudGl0eUlkXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhyZXN1bHQpLmxlbmd0aCA+IDAgPyByZXN1bHQgOiB1bmRlZmluZWQ7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zZWxlY3RlZERhdGFzZXQkLnN1YnNjcmliZSgoZGF0YXNldCkgPT4ge1xuICAgICAgICBpZiAoZGF0YXNldCkge1xuICAgICAgICAgIHRoaXMuYWNjZXNzR3JvdXBzID0gZGF0YXNldD8uZ3JvdXBzID8/IFtdO1xuICAgICAgICAgIGNvbnN0IGVkaXRQYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4nLCAnZGF0YXNldCcsICdlZGl0JywgZGF0YXNldC5pZF0sIHtcbiAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoZGF0YXNldC5vd25lcikge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgQWRtaW5BY3Rpb25zLm1haW5BY3Rpb25zKHtcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBlZGl0UGF0aC50b1N0cmluZygpIH0pLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ2VkaXQnLFxuICAgICAgICAgICAgICAgICAgICBpY29uOiAnZWRpdCcsXG4gICAgICAgICAgICAgICAgICAgIG1vZHVsZUFjY2VzczogJ2FkbWluJyxcbiAgICAgICAgICAgICAgICAgICAgcGFnZUFjY2VzczogJ2RhdGFzZXQnLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb25BY2Nlc3M6ICd3cml0ZSdcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC5jb25maXJtRGF0YVNvdXJjZURlbGV0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBkYXRhc2V0LmlkLFxuICAgICAgICAgICAgICAgICAgICAgIHJvdXRlOiB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLicsICdkYXRhc2V0J10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICAgIGFkZFJvdXRlOiB0aGlzLnJvdXRlclxuICAgICAgICAgICAgICAgICAgICAgICAgLmNyZWF0ZVVybFRyZWUoWycuJywgJ2RhdGFzZXQnLCAnbmV3J10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnZGVsZXRlJyxcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2RlbGV0ZScsXG4gICAgICAgICAgICAgICAgICAgIG1vZHVsZUFjY2VzczogJ2FkbWluJyxcbiAgICAgICAgICAgICAgICAgICAgcGFnZUFjY2VzczogJ2RhdGFzZXQnLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb25BY2Nlc3M6ICd3cml0ZSdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICBBZG1pbkFjdGlvbnMubWFpbkFjdGlvbnMoe1xuICAgICAgICAgICAgICAgIGFjdGlvbnM6IFtdXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY2xvc2VQYW5lbCgpIHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4nLCAnZGF0YXNldCcsICduZXcnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGF0YVNvdXJjZUFjdGlvbnMuZGF0YXNldC51bnNlbGVjdERhdGFzZXQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkFjdGlvbnMudG9nZ2xlUGFuZWwoeyBwYW5lbE9wZW46IGZhbHNlIH0pKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgQWRtaW5BY3Rpb25zLm1haW5BY3Rpb25zKHtcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFjdGlvbjogQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBwYXRoLnRvU3RyaW5nKCkgfSksXG4gICAgICAgICAgICBsYWJlbDogJ2FkZCcsXG4gICAgICAgICAgICBpY29uOiAnYWRkX2NvbHVtbicsXG4gICAgICAgICAgICBtb2R1bGVBY2Nlc3M6ICdhZG1pbicsXG4gICAgICAgICAgICBwYWdlQWNjZXNzOiAnbWV0YWRhdGFfcnVsZXMnLFxuICAgICAgICAgICAgYWN0aW9uQWNjZXNzOiAnd3JpdGUnXG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICByZW1vdmVNZXRhZGF0YShtZXRhZGF0YTogTWV0YUV2ZW50VHlwZSkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBNZXRhZGF0YUFjdGlvbnMuZGVsZXRlRGF0YXNldE1ldGFkYXRhKHsgZGF0YXNldElkOiBtZXRhZGF0YS5pZCwgbWV0YWRhdGFJZDogbWV0YWRhdGEubWV0YWRhdGFJZCB9KVxuICAgICk7XG4gIH1cblxuICBhZGREYXRhc2V0TWV0YWRhdGEobWV0YWRhdGE6IE1ldGFFdmVudFR5cGUpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgTWV0YWRhdGFBY3Rpb25zLmFkZERhdGFzZXRNZXRhZGF0YSh7XG4gICAgICAgIGRhdGFzZXRJZDogbWV0YWRhdGEuaWQsXG4gICAgICAgIG1ldGFkYXRhSWQ6IG1ldGFkYXRhLm1ldGFkYXRhSWQsXG4gICAgICAgIHZhbHVlOiBtZXRhZGF0YS52YWx1ZVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgc2hhcmUoZGF0YXNldDogRGF0YXNldCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXRhU291cmNlQWN0aW9ucy5kYXRhc2V0LnVwZGF0ZSh7IGRhdGFzZXQ6IHsgLi4uZGF0YXNldCwgZ3JvdXBzOiB0aGlzLmFjY2Vzc0dyb3VwcyB9LCByb3V0ZTogJycgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0R3JvdXBMYWJlbChncm91cE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGkxOG5CYXNlID0gJ0BwcnkuY29tcG9uZW50cy5jaGlwc1NlbGVjdG9yLnNoYXJlLmdyb3Vwcy4nO1xuICAgIGNvbnN0IGxhYmVsID0gdGhpcy5pMThuLmluc3RhbnQoaTE4bkJhc2UgKyBncm91cE5hbWUpO1xuICAgIHJldHVybiBsYWJlbC5zdGFydHNXaXRoKGkxOG5CYXNlKSA/IGdyb3VwTmFtZSA6IGxhYmVsO1xuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwic2VsZWN0ZWREYXRhc2V0JCB8IGFzeW5jIGFzIGRhdGFzZXRcIlxuICBbaWRdPVwiJ3BhbmVsLWRhdGFzZXQtJyArIGRhdGFzZXQuaWRcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ2J1dHRvbi1kYXRhc2V0LScgKyBkYXRhc2V0LmlkXCJcbiAgY2xhc3M9XCJvLXBhbmVsIG8tcHJ5LWFkbWluLWRhdGFzZXQtc2VsZWN0XCJcbj5cbiAgPGRpdiBjbGFzcz1cIm8tcGFuZWxfX2hlYWRlclwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJjbG9zZVBhbmVsKClcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS5hY3Rpb24uY2xvc2VQYW5lbCcgfCBpMThuIH19PC9zcGFuPlxuICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbG9zZVwiPjwvcHJ5LWljb24+XG4gICAgPC9idXR0b24+XG5cbiAgICA8aDMgY2xhc3M9XCJhLWgzXCI+XG4gICAgICB7eyAnQHByeS5hZG1pbi5kYXRhc2V0LmRldGFpbHMnIHwgaTE4biB9fVxuICAgIDwvaDM+XG4gIDwvZGl2PlxuXG4gIDxwcnktdGFiLWdyb3VwIHRyYW5zbGF0aW9uU3RyaW5nQmFzZT1cIkBwcnkuYWRtaW4uXCI+XG4gICAgPHByeS10YWIgW3RlbXBsYXRlUmVmXT1cImRhdGFzZXRNZXRhZGF0YVwiIG5hbWU9XCJtZXRhZGF0YS50aXRsZVwiPjwvcHJ5LXRhYj5cbiAgICA8cHJ5LXRhYiBbdGVtcGxhdGVSZWZdPVwiZGF0YXNldEFzc29jaWF0aW9uc1wiIG5hbWU9XCJjbGFzc2VzLmFzc29jaWF0aW9uc1wiPjwvcHJ5LXRhYj5cbiAgICA8cHJ5LXRhYiAqbmdJZj1cImRhdGFzZXQub3duZXJcIiBbdGVtcGxhdGVSZWZdPVwic2hhcmVEYXRhc2V0XCIgbmFtZT1cInNoYXJlXCI+PC9wcnktdGFiPlxuICA8L3ByeS10YWItZ3JvdXA+XG5cbiAgPG5nLXRlbXBsYXRlICNkYXRhc2V0TWV0YWRhdGE+XG4gICAgPHByeS1tZXRhZGF0YS1lZGl0b3JcbiAgICAgIFt0YXJnZXRJZF09XCIoc2VsZWN0ZWREYXRhc2V0JCB8IGFzeW5jKT8uaWQgPz8gJydcIlxuICAgICAgW2lzTW9kaWZpY2F0aW9uXT1cIihlZGl0YWJsZSQgfCBhc3luYykgPz8gZmFsc2VcIlxuICAgICAgW21ldGFkYXRhXT1cIihkYXRhc2V0TWV0YWRhdGEkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAgIChyZW1vdmVNZXRhKT1cInJlbW92ZU1ldGFkYXRhKCRldmVudClcIlxuICAgICAgKGFkZE1ldGEpPVwiYWRkRGF0YXNldE1ldGFkYXRhKCRldmVudClcIlxuICAgICAgW3R5cGVdPVwiJ21ldGEnXCJcbiAgICA+PC9wcnktbWV0YWRhdGEtZWRpdG9yPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAjZGF0YXNldEFzc29jaWF0aW9ucz5cbiAgICA8ZGl2ICpuZ0lmPVwiYXNzb2NpYXRpb25zJCB8IGFzeW5jIGFzIGFzc29jaWF0aW9uc1wiIGNsYXNzPVwiby10YWJzX19wYW5lbHNfX2l0ZW1fX2NvbnRlbnRcIj5cbiAgICAgIDxoNCBjbGFzcz1cImEtaDRcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmFzc29jaWF0aW9ucycgfCBpMThuIH19PC9oND5cbiAgICAgIDxwcnktYXNzb2NpYXRpb24gW2Fzc29jaWF0aW9uc109XCJhc3NvY2lhdGlvbnNcIj48L3ByeS1hc3NvY2lhdGlvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgI3NoYXJlRGF0YXNldD5cbiAgICA8ZGl2IGNsYXNzPVwiby1wcnktYWRtaW4tZGF0YXNldC1zZWxlY3RfX3NoYXJlXCI+XG4gICAgICA8cHJ5LWdyb3VwLXNoYXJlIFtuZ01vZGVsXT1cImRhdGFzZXQuZ3JvdXBzXCIgKG5nTW9kZWxDaGFuZ2UpPVwiYWNjZXNzR3JvdXBzID0gJGV2ZW50XCI+PC9wcnktZ3JvdXAtc2hhcmU+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5IHUtc2VsZi1lbmRcIiAjc3VibWl0IChjbGljayk9XCJzaGFyZShkYXRhc2V0KVwiPlxuICAgICAgICB7eyAnQHByeS5hZG1pbi52YWxpZGF0ZScgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIEBpZihjb25mbGljdEdyb3VwcyQgfCBhc3luYzsgYXMgY29uZmxpY3RHcm91cHMpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInUtZGlzcGxheS1mbGV4IC1jb2x1bW5cIj5cbiAgICAgICAgICA8c3Bhbj57eyAnQHByeS5hZG1pbi5kYXRhc2V0LmNvbmZsaWN0JyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgQGZvcihjb25mbGljdCBvZiBjb25mbGljdEdyb3VwcyB8IGtleXZhbHVlOyB0cmFjayBjb25mbGljdC5rZXkpIHtcbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLmRhdGFzZXQuZW50aXRpZXMuZGFzaGJvYXJkJyB8IGkxOG4gfX0gPHN0cm9uZz57eyBjb25mbGljdC52YWx1ZS5lbnRpdHlOYW1lIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1LWRpc3BsYXktZmxleFwiPlxuICAgICAgICAgICAgICAgIEBmb3IoZ3JvdXAgb2YgY29uZmxpY3QudmFsdWUuZ3JvdXBzOyB0cmFjayBncm91cCkge1xuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhLWNoaXBcIj57eyBnZXRHcm91cExhYmVsKGdyb3VwKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19