@vendure/admin-ui 2.0.0 → 2.0.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 (85) hide show
  1. package/catalog/components/move-collections-dialog/move-collections-dialog.component.d.ts +3 -2
  2. package/catalog/components/product-options-editor/product-options-editor.component.d.ts +6 -0
  3. package/core/common/base-detail.component.d.ts +28 -0
  4. package/core/common/version.d.ts +1 -1
  5. package/core/data/providers/interceptor.d.ts +11 -1
  6. package/core/providers/page/page.service.d.ts +7 -0
  7. package/core/shared/components/chart/chart.component.d.ts +3 -1
  8. package/esm2022/catalog/catalog.module.mjs +2 -2
  9. package/esm2022/catalog/components/asset-list/asset-list.component.mjs +3 -3
  10. package/esm2022/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.mjs +3 -3
  11. package/esm2022/catalog/components/move-collections-dialog/move-collections-dialog.component.mjs +34 -8
  12. package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +13 -5
  13. package/esm2022/core/common/base-detail.component.mjs +29 -1
  14. package/esm2022/core/common/base-list.component.mjs +1 -1
  15. package/esm2022/core/common/component-registry-types.mjs +1 -1
  16. package/esm2022/core/common/generated-types.mjs +1 -1
  17. package/esm2022/core/common/introspection-result.mjs +1 -1
  18. package/esm2022/core/common/title-setter.mjs +1 -1
  19. package/esm2022/core/common/version.mjs +2 -2
  20. package/esm2022/core/components/app-shell/app-shell.component.mjs +3 -3
  21. package/esm2022/core/components/breadcrumb/breadcrumb.component.mjs +3 -3
  22. package/esm2022/core/data/providers/interceptor.mjs +32 -11
  23. package/esm2022/core/providers/bulk-action-registry/bulk-action-types.mjs +1 -1
  24. package/esm2022/core/providers/custom-field-component/custom-field-component.service.mjs +1 -1
  25. package/esm2022/core/providers/local-storage/local-storage.service.mjs +1 -4
  26. package/esm2022/core/providers/page/page.service.mjs +5 -2
  27. package/esm2022/core/shared/components/action-bar-items/action-bar-items.component.mjs +1 -1
  28. package/esm2022/core/shared/components/asset-file-input/asset-file-input.component.mjs +1 -1
  29. package/esm2022/core/shared/components/asset-gallery/asset-gallery.component.mjs +2 -2
  30. package/esm2022/core/shared/components/asset-search-input/asset-search-input.component.mjs +3 -3
  31. package/esm2022/core/shared/components/assign-to-channel-dialog/assign-to-channel-dialog.component.mjs +1 -1
  32. package/esm2022/core/shared/components/chart/chart.component.mjs +6 -2
  33. package/esm2022/core/shared/components/chip/chip.component.mjs +2 -2
  34. package/esm2022/core/shared/components/currency-code-selector/currency-code-selector.component.mjs +1 -1
  35. package/esm2022/core/shared/components/data-table/data-table.component.mjs +1 -1
  36. package/esm2022/core/shared/components/language-code-selector/language-code-selector.component.mjs +1 -1
  37. package/esm2022/core/shared/components/select-toggle/select-toggle.component.mjs +3 -3
  38. package/esm2022/core/shared/dynamic-form-inputs/register-dynamic-input-components.mjs +1 -1
  39. package/esm2022/core/shared/pipes/state-i18n-token.pipe.mjs +1 -1
  40. package/esm2022/customer/components/address-card/address-card.component.mjs +3 -3
  41. package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +3 -3
  42. package/esm2022/customer/components/customer-list/customer-list.component.mjs +14 -10
  43. package/esm2022/customer/customer.module.mjs +1 -1
  44. package/esm2022/customer/customer.routes.mjs +2 -2
  45. package/esm2022/dashboard/components/dashboard/dashboard.component.mjs +1 -1
  46. package/esm2022/dashboard/widgets/order-chart-widget/order-chart-widget.component.mjs +13 -13
  47. package/esm2022/marketing/marketing.module.mjs +1 -1
  48. package/esm2022/order/components/add-manual-payment-dialog/add-manual-payment-dialog.component.mjs +3 -3
  49. package/esm2022/order/components/draft-order-detail/draft-order-detail.component.mjs +3 -3
  50. package/esm2022/order/components/order-detail/order-detail.component.mjs +2 -4
  51. package/esm2022/order/components/select-customer-dialog/select-customer-dialog.component.mjs +3 -3
  52. package/esm2022/order/order.module.mjs +1 -1
  53. package/esm2022/order/order.routes.mjs +1 -1
  54. package/esm2022/settings/components/channel-detail/channel-detail.component.mjs +12 -12
  55. package/esm2022/settings/components/tax-rate-detail/tax-rate-detail.component.mjs +8 -8
  56. package/esm2022/settings/settings.module.mjs +1 -1
  57. package/fesm2022/vendure-admin-ui-catalog.mjs +49 -15
  58. package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
  59. package/fesm2022/vendure-admin-ui-core.mjs +80 -27
  60. package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
  61. package/fesm2022/vendure-admin-ui-customer.mjs +18 -14
  62. package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
  63. package/fesm2022/vendure-admin-ui-dashboard.mjs +12 -12
  64. package/fesm2022/vendure-admin-ui-dashboard.mjs.map +1 -1
  65. package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
  66. package/fesm2022/vendure-admin-ui-order.mjs +7 -9
  67. package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
  68. package/fesm2022/vendure-admin-ui-settings.mjs +18 -18
  69. package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
  70. package/package.json +13 -13
  71. package/static/i18n-messages/cs.json +770 -768
  72. package/static/i18n-messages/de.json +771 -769
  73. package/static/i18n-messages/en.json +771 -769
  74. package/static/i18n-messages/es.json +770 -768
  75. package/static/i18n-messages/fr.json +770 -768
  76. package/static/i18n-messages/it.json +770 -768
  77. package/static/i18n-messages/pl.json +770 -768
  78. package/static/i18n-messages/pt_BR.json +770 -768
  79. package/static/i18n-messages/pt_PT.json +770 -768
  80. package/static/i18n-messages/ru.json +770 -768
  81. package/static/i18n-messages/uk.json +770 -768
  82. package/static/i18n-messages/zh_Hans.json +770 -768
  83. package/static/i18n-messages/zh_Hant.json +770 -768
  84. package/static/styles/global/_buttons.scss +24 -0
  85. package/static/theme.min.css +1 -1
@@ -1,10 +1,11 @@
1
1
  import { OnInit } from '@angular/core';
2
2
  import { FormControl } from '@angular/forms';
3
- import { DataService, Dialog, GetCollectionListQuery, ItemOf } from '@vendure/admin-ui/core';
3
+ import { DataService, Dialog, GetCollectionListQuery, I18nService, ItemOf } from '@vendure/admin-ui/core';
4
4
  import { BehaviorSubject, Observable, Subject } from 'rxjs';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class MoveCollectionsDialogComponent implements OnInit, Dialog<ItemOf<GetCollectionListQuery, 'collections'>> {
7
7
  private dataService;
8
+ private i18nService;
8
9
  resolveWith: (result?: ItemOf<GetCollectionListQuery, 'collections'>) => void;
9
10
  searchTermControl: FormControl<string | null>;
10
11
  items$: Observable<Array<ItemOf<GetCollectionListQuery, 'collections'>>>;
@@ -14,7 +15,7 @@ export declare class MoveCollectionsDialogComponent implements OnInit, Dialog<It
14
15
  expandedIds$: Subject<string[]>;
15
16
  expandedIds: string[];
16
17
  subCollections$: Observable<Array<ItemOf<GetCollectionListQuery, 'collections'>>>;
17
- constructor(dataService: DataService);
18
+ constructor(dataService: DataService, i18nService: I18nService);
18
19
  ngOnInit(): void;
19
20
  toggleExpanded(collection: ItemOf<GetCollectionListQuery, 'collections'>): void;
20
21
  static ɵfac: i0.ɵɵFactoryDeclaration<MoveCollectionsDialogComponent, never>;
@@ -22,6 +22,12 @@ export declare class ProductOptionsEditorComponent extends BaseDetailComponent<P
22
22
  optionGroupCustomFields: CustomFieldConfig[];
23
23
  optionCustomFields: CustomFieldConfig[];
24
24
  autoUpdateVariantNames: boolean;
25
+ paginationSettings: {
26
+ [groupId: string]: {
27
+ currentPage: number;
28
+ itemsPerPage: number;
29
+ };
30
+ };
25
31
  readonly updatePermission: Permission[];
26
32
  constructor(route: ActivatedRoute, router: Router, serverConfigService: ServerConfigService, dataService: DataService, productDetailService: ProductDetailService, formBuilder: UntypedFormBuilder, changeDetector: ChangeDetectorRef, notificationService: NotificationService);
27
33
  ngOnInit(): void;
@@ -88,6 +88,34 @@ export declare abstract class TypedBaseDetailComponent<T extends TypedDocumentNo
88
88
  protected constructor();
89
89
  init(): void;
90
90
  }
91
+ /**
92
+ * @description
93
+ * A helper function for creating tabs that point to a {@link TypedBaseDetailComponent}. This takes
94
+ * care of the route resolver parts so that the detail component automatically has access to the
95
+ * correct resolved detail data.
96
+ *
97
+ * @example
98
+ * ```TypeScript
99
+ * \@NgModule({
100
+ * imports: [ReviewsSharedModule],
101
+ * declarations: [/* ... *\/],
102
+ * providers: [
103
+ * registerPageTab({
104
+ * location: 'product-detail',
105
+ * tab: 'Specs',
106
+ * route: 'specs',
107
+ * component: detailComponentWithResolver({
108
+ * component: ProductSpecDetailComponent,
109
+ * query: GetProductSpecsDocument,
110
+ * entityKey: 'spec',
111
+ * }),
112
+ * }),
113
+ * ],
114
+ * })
115
+ * export class ProductSpecsUiExtensionModule {}
116
+ * ```
117
+ * @docsCategory list-detail-views
118
+ */
91
119
  export declare function detailComponentWithResolver<T extends TypedDocumentNode<any, {
92
120
  id: string;
93
121
  }>, Field extends keyof ResultOf<T>, R extends Field>(config: {
@@ -1 +1 @@
1
- export declare const ADMIN_UI_VERSION = "2.0.0";
1
+ export declare const ADMIN_UI_VERSION = "2.0.2";
@@ -4,7 +4,7 @@ import { Router } from '@angular/router';
4
4
  import { Observable } from 'rxjs';
5
5
  import { AuthService } from '../../providers/auth/auth.service';
6
6
  import { LocalStorageService } from '../../providers/local-storage/local-storage.service';
7
- import { DataService } from '../providers/data.service';
7
+ import { DataService } from './data.service';
8
8
  import * as i0 from "@angular/core";
9
9
  export declare const AUTH_REDIRECT_PARAM = "redirectTo";
10
10
  /**
@@ -34,6 +34,16 @@ export declare class DefaultInterceptor implements HttpInterceptor {
34
34
  * for the existence of an auth token.
35
35
  */
36
36
  private checkForAuthToken;
37
+ /**
38
+ * Determine if two urls are on the same origin.
39
+ */
40
+ private areUrlsOnSameOrigin;
41
+ /**
42
+ * If the provided `loginUrl` is on the same origin than the AdminUI, return the path
43
+ * after the `/admin`.
44
+ * Else, return the whole login url.
45
+ */
46
+ private getPathFromLoginUrl;
37
47
  static ɵfac: i0.ɵɵFactoryDeclaration<DefaultInterceptor, never>;
38
48
  static ɵprov: i0.ɵɵInjectableDeclaration<DefaultInterceptor>;
39
49
  }
@@ -43,6 +43,13 @@ export interface PageTabConfig {
43
43
  * The component to render at the route of the tab.
44
44
  */
45
45
  component: Type<any> | ReturnType<typeof detailComponentWithResolver>;
46
+ /**
47
+ * @description
48
+ * You can optionally provide any native Angular route configuration options here.
49
+ * Any values provided here will take precedence over the values generated
50
+ * by the `route` and `component` properties.
51
+ */
52
+ routeConfig?: Route;
46
53
  }
47
54
  /**
48
55
  * @description
@@ -1,4 +1,5 @@
1
1
  import { OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
2
+ import { LineChartOptions } from 'chartist';
2
3
  import * as i0 from "@angular/core";
3
4
  export interface ChartFormatOptions {
4
5
  formatValueAs: 'currency' | 'number';
@@ -12,6 +13,7 @@ export interface ChartEntry {
12
13
  }
13
14
  export declare class ChartComponent implements OnInit, OnChanges, OnDestroy {
14
15
  entries: ChartEntry[];
16
+ options?: LineChartOptions;
15
17
  private chartDivRef;
16
18
  private chart;
17
19
  ngOnInit(): void;
@@ -19,5 +21,5 @@ export declare class ChartComponent implements OnInit, OnChanges, OnDestroy {
19
21
  ngOnDestroy(): void;
20
22
  private entriesToLineChartData;
21
23
  static ɵfac: i0.ɵɵFactoryDeclaration<ChartComponent, never>;
22
- static ɵcmp: i0.ɵɵComponentDeclaration<ChartComponent, "vdr-chart", never, { "entries": { "alias": "entries"; "required": false; }; }, {}, never, never, false, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<ChartComponent, "vdr-chart", never, { "entries": { "alias": "entries"; "required": false; }; "options": { "alias": "options"; "required": false; }; }, {}, never, never, false, never>;
23
25
  }
@@ -106,7 +106,7 @@ export class CatalogModule {
106
106
  pageService.registerPageTab({
107
107
  priority: 0,
108
108
  location: 'product-detail',
109
- tab: _('catalog.products'),
109
+ tab: _('catalog.product'),
110
110
  route: '',
111
111
  component: detailComponentWithResolver({
112
112
  component: ProductDetailComponent,
@@ -336,4 +336,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImpor
336
336
  ],
337
337
  }]
338
338
  }], ctorParameters: function () { return [{ type: i1.BulkActionRegistryService }, { type: i1.PageService }]; } });
339
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NhdGFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCx3QkFBd0IsRUFFeEIsNkJBQTZCLEVBQzdCLDJCQUEyQixFQUMzQixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLCtCQUErQixFQUMvQiw4QkFBOEIsRUFDOUIsV0FBVyxFQUNYLFlBQVksR0FDZixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sNEZBQTRGLENBQUM7QUFDcEosT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0ZBQWtGLENBQUM7QUFDckksT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDN0csT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDbEgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdkcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDbkcsT0FBTyxFQUNILG9DQUFvQyxFQUNwQywyQkFBMkIsRUFDM0IseUJBQXlCLEVBQ3pCLHNDQUFzQyxHQUN6QyxNQUFNLDJEQUEyRCxDQUFDO0FBQ25FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQzFHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHdGQUF3RixDQUFDO0FBQy9JLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLDhGQUE4RixDQUFDO0FBQ3ZKLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLG9GQUFvRixDQUFDO0FBQ3pJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFDSCwrQkFBK0IsRUFDL0Isc0JBQXNCLEVBQ3RCLGlDQUFpQyxHQUNwQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQzlILE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQ3hILE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFDSCxxQ0FBcUMsRUFDckMsaUNBQWlDLEVBQ2pDLHdCQUF3QixFQUN4QixtQ0FBbUMsR0FDdEMsTUFBTSxxREFBcUQsQ0FBQztBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUNySCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUNySCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUMvRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUNoSSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUN4SCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUNySCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNsSCxPQUFPLEVBQ0gsdUNBQXVDLEVBQ3ZDLDhCQUE4QixFQUM5Qix5Q0FBeUMsR0FDNUMsTUFBTSxtRUFBbUUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQztBQUN0SSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQzs7OztBQUUvRyxNQUFNLGtCQUFrQixHQUFHO0lBQ3ZCLG9CQUFvQjtJQUNwQixzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLG9CQUFvQjtJQUNwQixnQ0FBZ0M7SUFDaEMseUJBQXlCO0lBQ3pCLGtCQUFrQjtJQUNsQixlQUFlO0lBQ2YsMkJBQTJCO0lBQzNCLHVCQUF1QjtJQUN2Qix5QkFBeUI7SUFDekIsdUJBQXVCO0lBQ3ZCLDJCQUEyQjtJQUMzQiwyQkFBMkI7SUFDM0IsNkJBQTZCO0lBQzdCLHlCQUF5QjtJQUN6QixrQ0FBa0M7SUFDbEMsOEJBQThCO0lBQzlCLHNDQUFzQztJQUN0QyxvQkFBb0I7SUFDcEIscUNBQXFDO0lBQ3JDLDZCQUE2QjtJQUM3QixpQ0FBaUM7SUFDakMsNEJBQTRCO0lBQzVCLHdCQUF3QjtJQUN4Qiw4QkFBOEI7SUFDOUIsMkJBQTJCO0lBQzNCLHNCQUFzQjtJQUN0Qiw2QkFBNkI7SUFDN0IsbUNBQW1DO0lBQ25DLHVDQUF1QztJQUN2QyxnQ0FBZ0M7SUFDaEMsMEJBQTBCO0NBQzdCLENBQUM7QUFlRixNQUFNLE9BQU8sYUFBYTtJQUN0QixZQUNZLHlCQUFvRCxFQUNwRCxXQUF3QjtRQUR4Qiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRWhDLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDcEYseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUNoRix5QkFBeUIsQ0FBQyxrQkFBa0IsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ2xGLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFdkUseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUM5RSx5QkFBeUIsQ0FBQyxrQkFBa0IsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ2hGLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFckUseUJBQXlCLENBQUMsa0JBQWtCLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUN4RSx5QkFBeUIsQ0FBQyxrQkFBa0IsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ25GLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDckYseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUUxRSx5QkFBeUIsQ0FBQyxrQkFBa0IsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBQ3RGLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLHlDQUF5QyxDQUFDLENBQUM7UUFDeEYseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUU3RSxXQUFXLENBQUMsZUFBZSxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxDQUFDO1lBQ1gsUUFBUSxFQUFFLGNBQWM7WUFDeEIsR0FBRyxFQUFFLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztZQUMxQixLQUFLLEVBQUUsRUFBRTtZQUNULFNBQVMsRUFBRSxvQkFBb0I7U0FDbEMsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUN4QixRQUFRLEVBQUUsQ0FBQztZQUNYLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsR0FBRyxFQUFFLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztZQUMxQixLQUFLLEVBQUUsRUFBRTtZQUNULFNBQVMsRUFBRSwyQkFBMkIsQ0FBQztnQkFDbkMsU0FBUyxFQUFFLHNCQUFzQjtnQkFDakMsS0FBSyxFQUFFLHdCQUF3QjtnQkFDL0IsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLGNBQWMsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUN0Qjt3QkFDSSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUM7d0JBQzdELElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7cUJBQ3JCO2lCQUNKO2FBQ0osQ0FBQztTQUNMLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLEVBQUUsY0FBYztZQUN4QixHQUFHLEVBQUUsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO1lBQ2xDLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFNBQVMsRUFBRSwyQkFBMkI7U0FDekMsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUN4QixRQUFRLEVBQUUsQ0FBQztZQUNYLFFBQVEsRUFBRSx1QkFBdUI7WUFDakMsR0FBRyxFQUFFLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQztZQUNoQyxLQUFLLEVBQUUsRUFBRTtZQUNULFNBQVMsRUFBRSwyQkFBMkIsQ0FBQztnQkFDbkMsU0FBUyxFQUFFLDRCQUE0QjtnQkFDdkMsS0FBSyxFQUFFLDhCQUE4QjtnQkFDckMsU0FBUyxFQUFFLGVBQWU7Z0JBQzFCLGNBQWMsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUN0Qjt3QkFDSSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUNBQW1DLENBQUM7d0JBQ3BFLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7cUJBQ3JCO2lCQUNKO2FBQ0osQ0FBQztTQUNMLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLEVBQUUsY0FBYztZQUN4QixHQUFHLEVBQUUsQ0FBQyxDQUFDLHlCQUF5QixDQUFDO1lBQ2pDLEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsU0FBUyxFQUFFLDBCQUEwQjtTQUN4QyxDQUFDLENBQUM7UUFDSCxXQUFXLENBQUMsZUFBZSxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxDQUFDO1lBQ1gsUUFBUSxFQUFFLHdCQUF3QjtZQUNsQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO1lBQ2xDLEtBQUssRUFBRSxFQUFFO1lBQ1QsU0FBUyxFQUFFLDJCQUEyQixDQUFDO2dCQUNuQyxTQUFTLEVBQUUsNkJBQTZCO2dCQUN4QyxLQUFLLEVBQUUsK0JBQStCO2dCQUN0QyxTQUFTLEVBQUUsZ0JBQWdCO2dCQUMzQixjQUFjLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDdEI7d0JBQ0ksS0FBSyxFQUFFLEdBQUcsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUU7d0JBQ2hDLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7cUJBQ3REO29CQUNEO3dCQUNJLEtBQUssRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLEtBQUssTUFBTSxFQUFFLEdBQUcsR0FBRzt3QkFDekMsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUM7cUJBQ2pDO2lCQUNKO2FBQ0osQ0FBQztTQUNMLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLEVBQUUsWUFBWTtZQUN0QixHQUFHLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDO1lBQ3hCLEtBQUssRUFBRSxFQUFFO1lBQ1QsU0FBUyxFQUFFLGtCQUFrQjtTQUNoQyxDQUFDLENBQUM7UUFDSCxXQUFXLENBQUMsZUFBZSxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxDQUFDO1lBQ1gsUUFBUSxFQUFFLGNBQWM7WUFDeEIsR0FBRyxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUM7WUFDdkIsS0FBSyxFQUFFLEVBQUU7WUFDVCxTQUFTLEVBQUUsMkJBQTJCLENBQUM7Z0JBQ25DLFNBQVMsRUFBRSxvQkFBb0I7Z0JBQy9CLEtBQUssRUFBRSxzQkFBc0I7Z0JBQzdCLFNBQVMsRUFBRSxPQUFPO2dCQUNsQixjQUFjLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDdEI7d0JBQ0ksS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO3dCQUMzRCxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO3FCQUNyQjtpQkFDSjthQUNKLENBQUM7U0FDTCxDQUFDLENBQUM7UUFDSCxXQUFXLENBQUMsZUFBZSxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxDQUFDO1lBQ1gsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixHQUFHLEVBQUUsQ0FBQyxDQUFDLHFCQUFxQixDQUFDO1lBQzdCLEtBQUssRUFBRSxFQUFFO1lBQ1QsU0FBUyxFQUFFLHVCQUF1QjtTQUNyQyxDQUFDLENBQUM7UUFDSCxXQUFXLENBQUMsZUFBZSxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxDQUFDO1lBQ1gsUUFBUSxFQUFFLG1CQUFtQjtZQUM3QixHQUFHLEVBQUUsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO1lBQzVCLEtBQUssRUFBRSxFQUFFO1lBQ1QsU0FBUyxFQUFFLDJCQUEyQixDQUFDO2dCQUNuQyxTQUFTLEVBQUUseUJBQXlCO2dCQUNwQyxLQUFLLEVBQUUsNkJBQTZCO2dCQUNwQyxTQUFTLEVBQUUsWUFBWTtnQkFDdkIsY0FBYyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQ3RCO3dCQUNJLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQzt3QkFDaEUsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztxQkFDckI7aUJBQ0o7YUFDSixDQUFDO1NBQ0wsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUN4QixRQUFRLEVBQUUsQ0FBQztZQUNYLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLEdBQUcsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUM7WUFDeEIsS0FBSyxFQUFFLEVBQUU7WUFDVCxTQUFTLEVBQUUsa0JBQWtCO1NBQ2hDLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLEVBQUUsY0FBYztZQUN4QixHQUFHLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQztZQUN2QixLQUFLLEVBQUUsRUFBRTtZQUNULFNBQVMsRUFBRSwyQkFBMkIsQ0FBQztnQkFDbkMsU0FBUyxFQUFFLG9CQUFvQjtnQkFDL0IsS0FBSyxFQUFFLHdCQUF3QjtnQkFDL0IsU0FBUyxFQUFFLE9BQU87Z0JBQ2xCLGNBQWMsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUN0Qjt3QkFDSSxLQUFLLEVBQUUsR0FBRyxNQUFNLEVBQUUsSUFBSSxFQUFFO3dCQUN4QixJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO3FCQUNyQjtpQkFDSjthQUNKLENBQUM7U0FDTCxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQTNLUSxhQUFhOytHQUFiLGFBQWEsaUJBaER0QixvQkFBb0I7WUFDcEIsc0JBQXNCO1lBQ3RCLGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsZ0NBQWdDO1lBQ2hDLHlCQUF5QjtZQUN6QixrQkFBa0I7WUFDbEIsZUFBZTtZQUNmLDJCQUEyQjtZQUMzQix1QkFBdUI7WUFDdkIseUJBQXlCO1lBQ3pCLHVCQUF1QjtZQUN2QiwyQkFBMkI7WUFDM0IsMkJBQTJCO1lBQzNCLDZCQUE2QjtZQUM3Qix5QkFBeUI7WUFDekIsa0NBQWtDO1lBQ2xDLDhCQUE4QjtZQUM5QixzQ0FBc0M7WUFDdEMsb0JBQW9CO1lBQ3BCLHFDQUFxQztZQUNyQyw2QkFBNkI7WUFDN0IsaUNBQWlDO1lBQ2pDLDRCQUE0QjtZQUM1Qix3QkFBd0I7WUFDeEIsOEJBQThCO1lBQzlCLDJCQUEyQjtZQUMzQixzQkFBc0I7WUFDdEIsNkJBQTZCO1lBQzdCLG1DQUFtQztZQUNuQyx1Q0FBdUM7WUFDdkMsZ0NBQWdDO1lBQ2hDLDBCQUEwQixFQU1ZLDRCQUE0QixhQUZ4RCxZQUFZLDhCQXBDdEIsb0JBQW9CO1lBQ3BCLHNCQUFzQjtZQUN0QixrQkFBa0I7WUFDbEIsb0JBQW9CO1lBQ3BCLGdDQUFnQztZQUNoQyx5QkFBeUI7WUFDekIsa0JBQWtCO1lBQ2xCLGVBQWU7WUFDZiwyQkFBMkI7WUFDM0IsdUJBQXVCO1lBQ3ZCLHlCQUF5QjtZQUN6Qix1QkFBdUI7WUFDdkIsMkJBQTJCO1lBQzNCLDJCQUEyQjtZQUMzQiw2QkFBNkI7WUFDN0IseUJBQXlCO1lBQ3pCLGtDQUFrQztZQUNsQyw4QkFBOEI7WUFDOUIsc0NBQXNDO1lBQ3RDLG9CQUFvQjtZQUNwQixxQ0FBcUM7WUFDckMsNkJBQTZCO1lBQzdCLGlDQUFpQztZQUNqQyw0QkFBNEI7WUFDNUIsd0JBQXdCO1lBQ3hCLDhCQUE4QjtZQUM5QiwyQkFBMkI7WUFDM0Isc0JBQXNCO1lBQ3RCLDZCQUE2QjtZQUM3QixtQ0FBbUM7WUFDbkMsdUNBQXVDO1lBQ3ZDLGdDQUFnQztZQUNoQywwQkFBMEI7K0dBZ0JqQixhQUFhLGFBVFg7WUFDUDtnQkFDSSxPQUFPLEVBQUUsTUFBTTtnQkFDZixVQUFVLEVBQUUsQ0FBQyxXQUF3QixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO2dCQUNuRSxLQUFLLEVBQUUsSUFBSTtnQkFDWCxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7YUFDdEI7U0FDSixZQVZTLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQzs7MkZBWXhDLGFBQWE7a0JBYnpCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ2xELE9BQU8sRUFBRSxDQUFDLEdBQUcsa0JBQWtCLENBQUM7b0JBQ2hDLFlBQVksRUFBRSxDQUFDLEdBQUcsa0JBQWtCLEVBQUUsNEJBQTRCLENBQUM7b0JBQ25FLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsTUFBTTs0QkFDZixVQUFVLEVBQUUsQ0FBQyxXQUF3QixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDOzRCQUNuRSxLQUFLLEVBQUUsSUFBSTs0QkFDWCxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7eUJBQ3RCO3FCQUNKO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUk9VVEVTIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcbmltcG9ydCB7XG4gICAgQXNzZXREZXRhaWxRdWVyeURvY3VtZW50LFxuICAgIEJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UsXG4gICAgQ29sbGVjdGlvbkRldGFpbFF1ZXJ5RG9jdW1lbnQsXG4gICAgZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyLFxuICAgIEdldEZhY2V0RGV0YWlsRG9jdW1lbnQsXG4gICAgR2V0UHJvZHVjdERldGFpbERvY3VtZW50LFxuICAgIEdldFByb2R1Y3RWYXJpYW50RGV0YWlsRG9jdW1lbnQsXG4gICAgR2V0U3RvY2tMb2NhdGlvbkRldGFpbERvY3VtZW50LFxuICAgIFBhZ2VTZXJ2aWNlLFxuICAgIFNoYXJlZE1vZHVsZSxcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XG5cbmltcG9ydCB7IGNyZWF0ZVJvdXRlcyB9IGZyb20gJy4vY2F0YWxvZy5yb3V0ZXMnO1xuaW1wb3J0IHsgQXBwbHlGYWNldERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hcHBseS1mYWNldC1kaWFsb2cvYXBwbHktZmFjZXQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBc3NldERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldC1kZXRhaWwvYXNzZXQtZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBc3NldExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXQtbGlzdC9hc3NldC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBc3NldHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXRzL2Fzc2V0cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXNzaWduUHJvZHVjdHNUb0NoYW5uZWxEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwtZGlhbG9nL2Fzc2lnbi1wcm9kdWN0cy10by1jaGFubmVsLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnVsa0FkZEZhY2V0VmFsdWVzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1bGstYWRkLWZhY2V0LXZhbHVlcy1kaWFsb2cvYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkNvbnRlbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tY29udGVudHMvY29sbGVjdGlvbi1jb250ZW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkRhdGFUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLWRhdGEtdGFibGUvY29sbGVjdGlvbi1kYXRhLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tZGV0YWlsL2NvbGxlY3Rpb24tZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uQnJlYWRjcnVtYlBpcGUgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1saXN0L2NvbGxlY3Rpb24tYnJlYWRjcnVtYi5waXBlJztcbmltcG9ydCB7XG4gICAgYXNzaWduQ29sbGVjdGlvbnNUb0NoYW5uZWxCdWxrQWN0aW9uLFxuICAgIGRlbGV0ZUNvbGxlY3Rpb25zQnVsa0FjdGlvbixcbiAgICBtb3ZlQ29sbGVjdGlvbnNCdWxrQWN0aW9uLFxuICAgIHJlbW92ZUNvbGxlY3Rpb25zRnJvbUNoYW5uZWxCdWxrQWN0aW9uLFxufSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1saXN0L2NvbGxlY3Rpb24tbGlzdC1idWxrLWFjdGlvbnMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1saXN0L2NvbGxlY3Rpb24tbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sbGVjdGlvblRyZWVOb2RlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdHJlZS9jb2xsZWN0aW9uLXRyZWUtbm9kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sbGVjdGlvblRyZWVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi10cmVlL2NvbGxlY3Rpb24tdHJlZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZmlybVZhcmlhbnREZWxldGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtLXZhcmlhbnQtZGVsZXRpb24tZGlhbG9nL2NvbmZpcm0tdmFyaWFudC1kZWxldGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENyZWF0ZVByb2R1Y3RPcHRpb25Hcm91cERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jcmVhdGUtcHJvZHVjdC1vcHRpb24tZ3JvdXAtZGlhbG9nL2NyZWF0ZS1wcm9kdWN0LW9wdGlvbi1ncm91cC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENyZWF0ZVByb2R1Y3RWYXJpYW50RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nL2NyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGYWNldERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWNldC1kZXRhaWwvZmFjZXQtZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIGFzc2lnbkZhY2V0c1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXG4gICAgZGVsZXRlRmFjZXRzQnVsa0FjdGlvbixcbiAgICByZW1vdmVGYWNldHNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24sXG59IGZyb20gJy4vY29tcG9uZW50cy9mYWNldC1saXN0L2ZhY2V0LWxpc3QtYnVsay1hY3Rpb25zJztcbmltcG9ydCB7IEZhY2V0TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWNldC1saXN0L2ZhY2V0LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IEdlbmVyYXRlUHJvZHVjdFZhcmlhbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dlbmVyYXRlLXByb2R1Y3QtdmFyaWFudHMvZ2VuZXJhdGUtcHJvZHVjdC12YXJpYW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW92ZUNvbGxlY3Rpb25zRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21vdmUtY29sbGVjdGlvbnMtZGlhbG9nL21vdmUtY29sbGVjdGlvbnMtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcHRpb25WYWx1ZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL29wdGlvbi12YWx1ZS1pbnB1dC9vcHRpb24tdmFsdWUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1Y3REZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwvcHJvZHVjdC1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgYXNzaWduRmFjZXRWYWx1ZXNUb1Byb2R1Y3RzQnVsa0FjdGlvbixcbiAgICBhc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXG4gICAgZGVsZXRlUHJvZHVjdHNCdWxrQWN0aW9uLFxuICAgIHJlbW92ZVByb2R1Y3RzRnJvbUNoYW5uZWxCdWxrQWN0aW9uLFxufSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1saXN0L3Byb2R1Y3QtbGlzdC1idWxrLWFjdGlvbnMnO1xuaW1wb3J0IHsgUHJvZHVjdExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1saXN0L3Byb2R1Y3QtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHVjdE9wdGlvbnNFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1vcHRpb25zLWVkaXRvci9wcm9kdWN0LW9wdGlvbnMtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtZGV0YWlsL3Byb2R1Y3QtdmFyaWFudC1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1Y3RWYXJpYW50TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtbGlzdC9wcm9kdWN0LXZhcmlhbnQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnRRdWlja0p1bXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50LXF1aWNrLWp1bXAvcHJvZHVjdC12YXJpYW50LXF1aWNrLWp1bXAuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1Y3RWYXJpYW50c0VkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnRzLWVkaXRvci9wcm9kdWN0LXZhcmlhbnRzLWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnRzVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50cy10YWJsZS9wcm9kdWN0LXZhcmlhbnRzLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdG9ja0xvY2F0aW9uRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3N0b2NrLWxvY2F0aW9uLWRldGFpbC9zdG9jay1sb2NhdGlvbi1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgYXNzaWduU3RvY2tMb2NhdGlvbnNUb0NoYW5uZWxCdWxrQWN0aW9uLFxuICAgIGRlbGV0ZVN0b2NrTG9jYXRpb25zQnVsa0FjdGlvbixcbiAgICByZW1vdmVTdG9ja0xvY2F0aW9uc0Zyb21DaGFubmVsQnVsa0FjdGlvbixcbn0gZnJvbSAnLi9jb21wb25lbnRzL3N0b2NrLWxvY2F0aW9uLWxpc3Qvc3RvY2stbG9jYXRpb24tbGlzdC1idWxrLWFjdGlvbnMnO1xuaW1wb3J0IHsgU3RvY2tMb2NhdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3RvY2stbG9jYXRpb24tbGlzdC9zdG9jay1sb2NhdGlvbi1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVcGRhdGVQcm9kdWN0T3B0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VwZGF0ZS1wcm9kdWN0LW9wdGlvbi1kaWFsb2cvdXBkYXRlLXByb2R1Y3Qtb3B0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmFyaWFudFByaWNlRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ZhcmlhbnQtcHJpY2UtZGV0YWlsL3ZhcmlhbnQtcHJpY2UtZGV0YWlsLmNvbXBvbmVudCc7XG5cbmNvbnN0IENBVEFMT0dfQ09NUE9ORU5UUyA9IFtcbiAgICBQcm9kdWN0TGlzdENvbXBvbmVudCxcbiAgICBQcm9kdWN0RGV0YWlsQ29tcG9uZW50LFxuICAgIEZhY2V0TGlzdENvbXBvbmVudCxcbiAgICBGYWNldERldGFpbENvbXBvbmVudCxcbiAgICBHZW5lcmF0ZVByb2R1Y3RWYXJpYW50c0NvbXBvbmVudCxcbiAgICBBcHBseUZhY2V0RGlhbG9nQ29tcG9uZW50LFxuICAgIEFzc2V0TGlzdENvbXBvbmVudCxcbiAgICBBc3NldHNDb21wb25lbnQsXG4gICAgVmFyaWFudFByaWNlRGV0YWlsQ29tcG9uZW50LFxuICAgIENvbGxlY3Rpb25MaXN0Q29tcG9uZW50LFxuICAgIENvbGxlY3Rpb25EZXRhaWxDb21wb25lbnQsXG4gICAgQ29sbGVjdGlvblRyZWVDb21wb25lbnQsXG4gICAgQ29sbGVjdGlvblRyZWVOb2RlQ29tcG9uZW50LFxuICAgIENvbGxlY3Rpb25Db250ZW50c0NvbXBvbmVudCxcbiAgICBQcm9kdWN0VmFyaWFudHNUYWJsZUNvbXBvbmVudCxcbiAgICBPcHRpb25WYWx1ZUlucHV0Q29tcG9uZW50LFxuICAgIFVwZGF0ZVByb2R1Y3RPcHRpb25EaWFsb2dDb21wb25lbnQsXG4gICAgUHJvZHVjdFZhcmlhbnRzRWRpdG9yQ29tcG9uZW50LFxuICAgIEFzc2lnblByb2R1Y3RzVG9DaGFubmVsRGlhbG9nQ29tcG9uZW50LFxuICAgIEFzc2V0RGV0YWlsQ29tcG9uZW50LFxuICAgIENvbmZpcm1WYXJpYW50RGVsZXRpb25EaWFsb2dDb21wb25lbnQsXG4gICAgUHJvZHVjdE9wdGlvbnNFZGl0b3JDb21wb25lbnQsXG4gICAgQnVsa0FkZEZhY2V0VmFsdWVzRGlhbG9nQ29tcG9uZW50LFxuICAgIENvbGxlY3Rpb25EYXRhVGFibGVDb21wb25lbnQsXG4gICAgQ29sbGVjdGlvbkJyZWFkY3J1bWJQaXBlLFxuICAgIE1vdmVDb2xsZWN0aW9uc0RpYWxvZ0NvbXBvbmVudCxcbiAgICBQcm9kdWN0VmFyaWFudExpc3RDb21wb25lbnQsXG4gICAgUHJvZHVjdERldGFpbENvbXBvbmVudCxcbiAgICBQcm9kdWN0VmFyaWFudERldGFpbENvbXBvbmVudCxcbiAgICBDcmVhdGVQcm9kdWN0VmFyaWFudERpYWxvZ0NvbXBvbmVudCxcbiAgICBDcmVhdGVQcm9kdWN0T3B0aW9uR3JvdXBEaWFsb2dDb21wb25lbnQsXG4gICAgUHJvZHVjdFZhcmlhbnRRdWlja0p1bXBDb21wb25lbnQsXG4gICAgU3RvY2tMb2NhdGlvbkxpc3RDb21wb25lbnQsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtTaGFyZWRNb2R1bGUsIFJvdXRlck1vZHVsZS5mb3JDaGlsZChbXSldLFxuICAgIGV4cG9ydHM6IFsuLi5DQVRBTE9HX0NPTVBPTkVOVFNdLFxuICAgIGRlY2xhcmF0aW9uczogWy4uLkNBVEFMT0dfQ09NUE9ORU5UUywgU3RvY2tMb2NhdGlvbkRldGFpbENvbXBvbmVudF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFJPVVRFUyxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChwYWdlU2VydmljZTogUGFnZVNlcnZpY2UpID0+IGNyZWF0ZVJvdXRlcyhwYWdlU2VydmljZSksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIGRlcHM6IFtQYWdlU2VydmljZV0sXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ01vZHVsZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZTogQnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBwYWdlU2VydmljZTogUGFnZVNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGFzc2lnbkZhY2V0VmFsdWVzVG9Qcm9kdWN0c0J1bGtBY3Rpb24pO1xuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihhc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbEJ1bGtBY3Rpb24pO1xuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihyZW1vdmVQcm9kdWN0c0Zyb21DaGFubmVsQnVsa0FjdGlvbik7XG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZVByb2R1Y3RzQnVsa0FjdGlvbik7XG5cbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduRmFjZXRzVG9DaGFubmVsQnVsa0FjdGlvbik7XG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKHJlbW92ZUZhY2V0c0Zyb21DaGFubmVsQnVsa0FjdGlvbik7XG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZUZhY2V0c0J1bGtBY3Rpb24pO1xuXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKG1vdmVDb2xsZWN0aW9uc0J1bGtBY3Rpb24pO1xuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihhc3NpZ25Db2xsZWN0aW9uc1RvQ2hhbm5lbEJ1bGtBY3Rpb24pO1xuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihyZW1vdmVDb2xsZWN0aW9uc0Zyb21DaGFubmVsQnVsa0FjdGlvbik7XG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZUNvbGxlY3Rpb25zQnVsa0FjdGlvbik7XG5cbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduU3RvY2tMb2NhdGlvbnNUb0NoYW5uZWxCdWxrQWN0aW9uKTtcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24ocmVtb3ZlU3RvY2tMb2NhdGlvbnNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24pO1xuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkZWxldGVTdG9ja0xvY2F0aW9uc0J1bGtBY3Rpb24pO1xuXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAncHJvZHVjdC1saXN0JyxcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5wcm9kdWN0cycpLFxuICAgICAgICAgICAgcm91dGU6ICcnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0TGlzdENvbXBvbmVudCxcbiAgICAgICAgfSk7XG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAncHJvZHVjdC1kZXRhaWwnLFxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLnByb2R1Y3RzJyksXG4gICAgICAgICAgICByb3V0ZTogJycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0RGV0YWlsQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBHZXRQcm9kdWN0RGV0YWlsRG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAncHJvZHVjdCcsXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlbnRpdHkgPyBlbnRpdHkubmFtZSA6IF8oJ2NhdGFsb2cuY3JlYXRlLW5ldy1wcm9kdWN0JyksXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbZW50aXR5Py5pZF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdwcm9kdWN0LWxpc3QnLFxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLnByb2R1Y3QtdmFyaWFudHMnKSxcbiAgICAgICAgICAgIHJvdXRlOiAndmFyaWFudHMnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0VmFyaWFudExpc3RDb21wb25lbnQsXG4gICAgICAgIH0pO1xuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXG4gICAgICAgICAgICBsb2NhdGlvbjogJ3N0b2NrLWxvY2F0aW9uLWRldGFpbCcsXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cuc3RvY2stbG9jYXRpb24nKSxcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IFN0b2NrTG9jYXRpb25EZXRhaWxDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgcXVlcnk6IEdldFN0b2NrTG9jYXRpb25EZXRhaWxEb2N1bWVudCxcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdzdG9ja0xvY2F0aW9uJyxcbiAgICAgICAgICAgICAgICBnZXRCcmVhZGNydW1iczogZW50aXR5ID0+IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eSA/IGVudGl0eS5uYW1lIDogXygnY2F0YWxvZy5jcmVhdGUtbmV3LXN0b2NrLWxvY2F0aW9uJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbZW50aXR5Py5pZF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdwcm9kdWN0LWxpc3QnLFxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLnN0b2NrLWxvY2F0aW9ucycpLFxuICAgICAgICAgICAgcm91dGU6ICdzdG9jay1sb2NhdGlvbnMnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBTdG9ja0xvY2F0aW9uTGlzdENvbXBvbmVudCxcbiAgICAgICAgfSk7XG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAncHJvZHVjdC12YXJpYW50LWRldGFpbCcsXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cucHJvZHVjdC12YXJpYW50cycpLFxuICAgICAgICAgICAgcm91dGU6ICcnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogUHJvZHVjdFZhcmlhbnREZXRhaWxDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgcXVlcnk6IEdldFByb2R1Y3RWYXJpYW50RGV0YWlsRG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAncHJvZHVjdFZhcmlhbnQnLFxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYCR7ZW50aXR5Py5wcm9kdWN0Lm5hbWV9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFsnL2NhdGFsb2cnLCAnaW52ZW50b3J5JywgZW50aXR5Py5wcm9kdWN0LmlkXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGAke2VudGl0eT8ubmFtZX0gKCR7ZW50aXR5Py5za3V9KWAsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbJ3ZhcmlhbnRzJywgZW50aXR5Py5pZF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdmYWNldC1saXN0JyxcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5mYWNldHMnKSxcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogRmFjZXRMaXN0Q29tcG9uZW50LFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdmYWNldC1kZXRhaWwnLFxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmZhY2V0JyksXG4gICAgICAgICAgICByb3V0ZTogJycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBGYWNldERldGFpbENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBxdWVyeTogR2V0RmFjZXREZXRhaWxEb2N1bWVudCxcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdmYWNldCcsXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlbnRpdHkgPyBlbnRpdHkubmFtZSA6IF8oJ2NhdGFsb2cuY3JlYXRlLW5ldy1mYWNldCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogW2VudGl0eT8uaWRdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnY29sbGVjdGlvbi1saXN0JyxcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5jb2xsZWN0aW9ucycpLFxuICAgICAgICAgICAgcm91dGU6ICcnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBDb2xsZWN0aW9uTGlzdENvbXBvbmVudCxcbiAgICAgICAgfSk7XG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnY29sbGVjdGlvbi1kZXRhaWwnLFxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmNvbGxlY3Rpb24nKSxcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IENvbGxlY3Rpb25EZXRhaWxDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgcXVlcnk6IENvbGxlY3Rpb25EZXRhaWxRdWVyeURvY3VtZW50LFxuICAgICAgICAgICAgICAgIGVudGl0eUtleTogJ2NvbGxlY3Rpb24nLFxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZW50aXR5ID8gZW50aXR5Lm5hbWUgOiBfKCdjYXRhbG9nLmNyZWF0ZS1uZXctY29sbGVjdGlvbicpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogW2VudGl0eT8uaWRdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnYXNzZXQtbGlzdCcsXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cuYXNzZXRzJyksXG4gICAgICAgICAgICByb3V0ZTogJycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IEFzc2V0TGlzdENvbXBvbmVudCxcbiAgICAgICAgfSk7XG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnYXNzZXQtZGV0YWlsJyxcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5hc3NldCcpLFxuICAgICAgICAgICAgcm91dGU6ICcnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQXNzZXREZXRhaWxDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgcXVlcnk6IEFzc2V0RGV0YWlsUXVlcnlEb2N1bWVudCxcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdhc3NldCcsXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBgJHtlbnRpdHk/Lm5hbWV9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
339
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NhdGFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCx3QkFBd0IsRUFFeEIsNkJBQTZCLEVBQzdCLDJCQUEyQixFQUMzQixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLCtCQUErQixFQUMvQiw4QkFBOEIsRUFDOUIsV0FBVyxFQUNYLFlBQVksR0FDZixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sNEZBQTRGLENBQUM7QUFDcEosT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sa0ZBQWtGLENBQUM7QUFDckksT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDN0csT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDbEgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdkcsT0FBTyxFQUFFLHdCQUF3QixF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UDtnQkFDSSxPQUFPLEVBQUUsTUFBTTtnQkFDZixVQUFVLEVBQUUsQ0FBQyxXQUF3QixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO2dCQUNuRSxLQUFLLEVBQUUsSUFBSTtnQkFDWCxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7YUFDdEI7U0FDSixZQVZTLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQzs7MkZBWXhDLGFBQWE7a0JBYnpCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ2xELE9BQU8sRUFBRSxDQUFDLEdBQUcsa0JBQWtCLENBQUM7b0JBQ2hDLFlBQVksRUFBRSxDQUFDLEdBQUcsa0JBQWtCLEVBQUUsNEJBQTRCLENBQUM7b0JBQ25FLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsTUFBTTs0QkFDZixVQUFVLEVBQUUsQ0FBQyxXQUF3QixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDOzRCQUNuRSxLQUFLLEVBQUUsSUFBSTs0QkFDWCxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7eUJBQ3RCO3FCQUNKO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUk9VVEVTIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcbmltcG9ydCB7XG4gICAgQXNzZXREZXRhaWxRdWVyeURvY3VtZW50LFxuICAgIEJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UsXG4gICAgQ29sbGVjdGlvbkRldGFpbFF1ZXJ5RG9jdW1lbnQsXG4gICAgZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyLFxuICAgIEdldEZhY2V0RGV0YWlsRG9jdW1lbnQsXG4gICAgR2V0UHJvZHVjdERldGFpbERvY3VtZW50LFxuICAgIEdldFByb2R1Y3RWYXJpYW50RGV0YWlsRG9jdW1lbnQsXG4gICAgR2V0U3RvY2tMb2NhdGlvbkRldGFpbERvY3VtZW50LFxuICAgIFBhZ2VTZXJ2aWNlLFxuICAgIFNoYXJlZE1vZHVsZSxcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XG5cbmltcG9ydCB7IGNyZWF0ZVJvdXRlcyB9IGZyb20gJy4vY2F0YWxvZy5yb3V0ZXMnO1xuaW1wb3J0IHsgQXBwbHlGYWNldERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hcHBseS1mYWNldC1kaWFsb2cvYXBwbHktZmFjZXQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBc3NldERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldC1kZXRhaWwvYXNzZXQtZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBc3NldExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXQtbGlzdC9hc3NldC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBc3NldHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXRzL2Fzc2V0cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXNzaWduUHJvZHVjdHNUb0NoYW5uZWxEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwtZGlhbG9nL2Fzc2lnbi1wcm9kdWN0cy10by1jaGFubmVsLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnVsa0FkZEZhY2V0VmFsdWVzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1bGstYWRkLWZhY2V0LXZhbHVlcy1kaWFsb2cvYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkNvbnRlbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tY29udGVudHMvY29sbGVjdGlvbi1jb250ZW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkRhdGFUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLWRhdGEtdGFibGUvY29sbGVjdGlvbi1kYXRhLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tZGV0YWlsL2NvbGxlY3Rpb24tZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uQnJlYWRjcnVtYlBpcGUgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1saXN0L2NvbGxlY3Rpb24tYnJlYWRjcnVtYi5waXBlJztcbmltcG9ydCB7XG4gICAgYXNzaWduQ29sbGVjdGlvbnNUb0NoYW5uZWxCdWxrQWN0aW9uLFxuICAgIGRlbGV0ZUNvbGxlY3Rpb25zQnVsa0FjdGlvbixcbiAgICBtb3ZlQ29sbGVjdGlvbnNCdWxrQWN0aW9uLFxuICAgIHJlbW92ZUNvbGxlY3Rpb25zRnJvbUNoYW5uZWxCdWxrQWN0aW9uLFxufSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1saXN0L2NvbGxlY3Rpb24tbGlzdC1idWxrLWFjdGlvbnMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1saXN0L2NvbGxlY3Rpb24tbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sbGVjdGlvblRyZWVOb2RlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdHJlZS9jb2xsZWN0aW9uLXRyZWUtbm9kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sbGVjdGlvblRyZWVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi10cmVlL2NvbGxlY3Rpb24tdHJlZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZmlybVZhcmlhbnREZWxldGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtLXZhcmlhbnQtZGVsZXRpb24tZGlhbG9nL2NvbmZpcm0tdmFyaWFudC1kZWxldGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENyZWF0ZVByb2R1Y3RPcHRpb25Hcm91cERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jcmVhdGUtcHJvZHVjdC1vcHRpb24tZ3JvdXAtZGlhbG9nL2NyZWF0ZS1wcm9kdWN0LW9wdGlvbi1ncm91cC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENyZWF0ZVByb2R1Y3RWYXJpYW50RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nL2NyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGYWNldERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWNldC1kZXRhaWwvZmFjZXQtZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIGFzc2lnbkZhY2V0c1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXG4gICAgZGVsZXRlRmFjZXRzQnVsa0FjdGlvbixcbiAgICByZW1vdmVGYWNldHNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24sXG59IGZyb20gJy4vY29tcG9uZW50cy9mYWNldC1saXN0L2ZhY2V0LWxpc3QtYnVsay1hY3Rpb25zJztcbmltcG9ydCB7IEZhY2V0TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWNldC1saXN0L2ZhY2V0LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IEdlbmVyYXRlUHJvZHVjdFZhcmlhbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dlbmVyYXRlLXByb2R1Y3QtdmFyaWFudHMvZ2VuZXJhdGUtcHJvZHVjdC12YXJpYW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW92ZUNvbGxlY3Rpb25zRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21vdmUtY29sbGVjdGlvbnMtZGlhbG9nL21vdmUtY29sbGVjdGlvbnMtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcHRpb25WYWx1ZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL29wdGlvbi12YWx1ZS1pbnB1dC9vcHRpb24tdmFsdWUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1Y3REZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwvcHJvZHVjdC1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgYXNzaWduRmFjZXRWYWx1ZXNUb1Byb2R1Y3RzQnVsa0FjdGlvbixcbiAgICBhc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXG4gICAgZGVsZXRlUHJvZHVjdHNCdWxrQWN0aW9uLFxuICAgIHJlbW92ZVByb2R1Y3RzRnJvbUNoYW5uZWxCdWxrQWN0aW9uLFxufSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1saXN0L3Byb2R1Y3QtbGlzdC1idWxrLWFjdGlvbnMnO1xuaW1wb3J0IHsgUHJvZHVjdExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1saXN0L3Byb2R1Y3QtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHVjdE9wdGlvbnNFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1vcHRpb25zLWVkaXRvci9wcm9kdWN0LW9wdGlvbnMtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtZGV0YWlsL3Byb2R1Y3QtdmFyaWFudC1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1Y3RWYXJpYW50TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtbGlzdC9wcm9kdWN0LXZhcmlhbnQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnRRdWlja0p1bXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50LXF1aWNrLWp1bXAvcHJvZHVjdC12YXJpYW50LXF1aWNrLWp1bXAuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1Y3RWYXJpYW50c0VkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnRzLWVkaXRvci9wcm9kdWN0LXZhcmlhbnRzLWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnRzVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50cy10YWJsZS9wcm9kdWN0LXZhcmlhbnRzLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdG9ja0xvY2F0aW9uRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3N0b2NrLWxvY2F0aW9uLWRldGFpbC9zdG9jay1sb2NhdGlvbi1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgYXNzaWduU3RvY2tMb2NhdGlvbnNUb0NoYW5uZWxCdWxrQWN0aW9uLFxuICAgIGRlbGV0ZVN0b2NrTG9jYXRpb25zQnVsa0FjdGlvbixcbiAgICByZW1vdmVTdG9ja0xvY2F0aW9uc0Zyb21DaGFubmVsQnVsa0FjdGlvbixcbn0gZnJvbSAnLi9jb21wb25lbnRzL3N0b2NrLWxvY2F0aW9uLWxpc3Qvc3RvY2stbG9jYXRpb24tbGlzdC1idWxrLWFjdGlvbnMnO1xuaW1wb3J0IHsgU3RvY2tMb2NhdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3RvY2stbG9jYXRpb24tbGlzdC9zdG9jay1sb2NhdGlvbi1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVcGRhdGVQcm9kdWN0T3B0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VwZGF0ZS1wcm9kdWN0LW9wdGlvbi1kaWFsb2cvdXBkYXRlLXByb2R1Y3Qtb3B0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmFyaWFudFByaWNlRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ZhcmlhbnQtcHJpY2UtZGV0YWlsL3ZhcmlhbnQtcHJpY2UtZGV0YWlsLmNvbXBvbmVudCc7XG5cbmNvbnN0IENBVEFMT0dfQ09NUE9ORU5UUyA9IFtcbiAgICBQcm9kdWN0TGlzdENvbXBvbmVudCxcbiAgICBQcm9kdWN0RGV0YWlsQ29tcG9uZW50LFxuICAgIEZhY2V0TGlzdENvbXBvbmVudCxcbiAgICBGYWNldERldGFpbENvbXBvbmVudCxcbiAgICBHZW5lcmF0ZVByb2R1Y3RWYXJpYW50c0NvbXBvbmVudCxcbiAgICBBcHBseUZhY2V0RGlhbG9nQ29tcG9uZW50LFxuICAgIEFzc2V0TGlzdENvbXBvbmVudCxcbiAgICBBc3NldHNDb21wb25lbnQsXG4gICAgVmFyaWFudFByaWNlRGV0YWlsQ29tcG9uZW50LFxuICAgIENvbGxlY3Rpb25MaXN0Q29tcG9uZW50LFxuICAgIENvbGxlY3Rpb25EZXRhaWxDb21wb25lbnQsXG4gICAgQ29sbGVjdGlvblRyZWVDb21wb25lbnQsXG4gICAgQ29sbGVjdGlvblRyZWVOb2RlQ29tcG9uZW50LFxuICAgIENvbGxlY3Rpb25Db250ZW50c0NvbXBvbmVudCxcbiAgICBQcm9kdWN0VmFyaWFudHNUYWJsZUNvbXBvbmVudCxcbiAgICBPcHRpb25WYWx1ZUlucHV0Q29tcG9uZW50LFxuICAgIFVwZGF0ZVByb2R1Y3RPcHRpb25EaWFsb2dDb21wb25lbnQsXG4gICAgUHJvZHVjdFZhcmlhbnRzRWRpdG9yQ29tcG9uZW50LFxuICAgIEFzc2lnblByb2R1Y3RzVG9DaGFubmVsRGlhbG9nQ29tcG9uZW50LFxuICAgIEFzc2V0RGV0YWlsQ29tcG9uZW50LFxuICAgIENvbmZpcm1WYXJpYW50RGVsZXRpb25EaWFsb2dDb21wb25lbnQsXG4gICAgUHJvZHVjdE9wdGlvbnNFZGl0b3JDb21wb25lbnQsXG4gICAgQnVsa0FkZEZhY2V0VmFsdWVzRGlhbG9nQ29tcG9uZW50LFxuICAgIENvbGxlY3Rpb25EYXRhVGFibGVDb21wb25lbnQsXG4gICAgQ29sbGVjdGlvbkJyZWFkY3J1bWJQaXBlLFxuICAgIE1vdmVDb2xsZWN0aW9uc0RpYWxvZ0NvbXBvbmVudCxcbiAgICBQcm9kdWN0VmFyaWFudExpc3RDb21wb25lbnQsXG4gICAgUHJvZHVjdERldGFpbENvbXBvbmVudCxcbiAgICBQcm9kdWN0VmFyaWFudERldGFpbENvbXBvbmVudCxcbiAgICBDcmVhdGVQcm9kdWN0VmFyaWFudERpYWxvZ0NvbXBvbmVudCxcbiAgICBDcmVhdGVQcm9kdWN0T3B0aW9uR3JvdXBEaWFsb2dDb21wb25lbnQsXG4gICAgUHJvZHVjdFZhcmlhbnRRdWlja0p1bXBDb21wb25lbnQsXG4gICAgU3RvY2tMb2NhdGlvbkxpc3RDb21wb25lbnQsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtTaGFyZWRNb2R1bGUsIFJvdXRlck1vZHVsZS5mb3JDaGlsZChbXSldLFxuICAgIGV4cG9ydHM6IFsuLi5DQVRBTE9HX0NPTVBPTkVOVFNdLFxuICAgIGRlY2xhcmF0aW9uczogWy4uLkNBVEFMT0dfQ09NUE9ORU5UUywgU3RvY2tMb2NhdGlvbkRldGFpbENvbXBvbmVudF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFJPVVRFUyxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChwYWdlU2VydmljZTogUGFnZVNlcnZpY2UpID0+IGNyZWF0ZVJvdXRlcyhwYWdlU2VydmljZSksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIGRlcHM6IFtQYWdlU2VydmljZV0sXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ01vZHVsZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZTogQnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBwYWdlU2VydmljZTogUGFnZVNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGFzc2lnbkZhY2V0VmFsdWVzVG9Qcm9kdWN0c0J1bGtBY3Rpb24pO1xuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihhc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbEJ1bGtBY3Rpb24pO1xuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihyZW1vdmVQcm9kdWN0c0Zyb21DaGFubmVsQnVsa0FjdGlvbik7XG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZVByb2R1Y3RzQnVsa0FjdGlvbik7XG5cbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduRmFjZXRzVG9DaGFubmVsQnVsa0FjdGlvbik7XG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKHJlbW92ZUZhY2V0c0Zyb21DaGFubmVsQnVsa0FjdGlvbik7XG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZUZhY2V0c0J1bGtBY3Rpb24pO1xuXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKG1vdmVDb2xsZWN0aW9uc0J1bGtBY3Rpb24pO1xuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihhc3NpZ25Db2xsZWN0aW9uc1RvQ2hhbm5lbEJ1bGtBY3Rpb24pO1xuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihyZW1vdmVDb2xsZWN0aW9uc0Zyb21DaGFubmVsQnVsa0FjdGlvbik7XG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZUNvbGxlY3Rpb25zQnVsa0FjdGlvbik7XG5cbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduU3RvY2tMb2NhdGlvbnNUb0NoYW5uZWxCdWxrQWN0aW9uKTtcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24ocmVtb3ZlU3RvY2tMb2NhdGlvbnNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24pO1xuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkZWxldGVTdG9ja0xvY2F0aW9uc0J1bGtBY3Rpb24pO1xuXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAncHJvZHVjdC1saXN0JyxcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5wcm9kdWN0cycpLFxuICAgICAgICAgICAgcm91dGU6ICcnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0TGlzdENvbXBvbmVudCxcbiAgICAgICAgfSk7XG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAncHJvZHVjdC1kZXRhaWwnLFxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLnByb2R1Y3QnKSxcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IFByb2R1Y3REZXRhaWxDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgcXVlcnk6IEdldFByb2R1Y3REZXRhaWxEb2N1bWVudCxcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdwcm9kdWN0JyxcbiAgICAgICAgICAgICAgICBnZXRCcmVhZGNydW1iczogZW50aXR5ID0+IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eSA/IGVudGl0eS5uYW1lIDogXygnY2F0YWxvZy5jcmVhdGUtbmV3LXByb2R1Y3QnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXG4gICAgICAgICAgICBsb2NhdGlvbjogJ3Byb2R1Y3QtbGlzdCcsXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cucHJvZHVjdC12YXJpYW50cycpLFxuICAgICAgICAgICAgcm91dGU6ICd2YXJpYW50cycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IFByb2R1Y3RWYXJpYW50TGlzdENvbXBvbmVudCxcbiAgICAgICAgfSk7XG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnc3RvY2stbG9jYXRpb24tZGV0YWlsJyxcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5zdG9jay1sb2NhdGlvbicpLFxuICAgICAgICAgICAgcm91dGU6ICcnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogU3RvY2tMb2NhdGlvbkRldGFpbENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBxdWVyeTogR2V0U3RvY2tMb2NhdGlvbkRldGFpbERvY3VtZW50LFxuICAgICAgICAgICAgICAgIGVudGl0eUtleTogJ3N0b2NrTG9jYXRpb24nLFxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZW50aXR5ID8gZW50aXR5Lm5hbWUgOiBfKCdjYXRhbG9nLmNyZWF0ZS1uZXctc3RvY2stbG9jYXRpb24nKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXG4gICAgICAgICAgICBsb2NhdGlvbjogJ3Byb2R1Y3QtbGlzdCcsXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cuc3RvY2stbG9jYXRpb25zJyksXG4gICAgICAgICAgICByb3V0ZTogJ3N0b2NrLWxvY2F0aW9ucycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IFN0b2NrTG9jYXRpb25MaXN0Q29tcG9uZW50LFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdwcm9kdWN0LXZhcmlhbnQtZGV0YWlsJyxcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5wcm9kdWN0LXZhcmlhbnRzJyksXG4gICAgICAgICAgICByb3V0ZTogJycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0VmFyaWFudERldGFpbENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBxdWVyeTogR2V0UHJvZHVjdFZhcmlhbnREZXRhaWxEb2N1bWVudCxcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdwcm9kdWN0VmFyaWFudCcsXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBgJHtlbnRpdHk/LnByb2R1Y3QubmFtZX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogWycvY2F0YWxvZycsICdpbnZlbnRvcnknLCBlbnRpdHk/LnByb2R1Y3QuaWRdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYCR7ZW50aXR5Py5uYW1lfSAoJHtlbnRpdHk/LnNrdX0pYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFsndmFyaWFudHMnLCBlbnRpdHk/LmlkXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2ZhY2V0LWxpc3QnLFxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmZhY2V0cycpLFxuICAgICAgICAgICAgcm91dGU6ICcnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBGYWNldExpc3RDb21wb25lbnQsXG4gICAgICAgIH0pO1xuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2ZhY2V0LWRldGFpbCcsXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cuZmFjZXQnKSxcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEZhY2V0RGV0YWlsQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBHZXRGYWNldERldGFpbERvY3VtZW50LFxuICAgICAgICAgICAgICAgIGVudGl0eUtleTogJ2ZhY2V0JyxcbiAgICAgICAgICAgICAgICBnZXRCcmVhZGNydW1iczogZW50aXR5ID0+IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eSA/IGVudGl0eS5uYW1lIDogXygnY2F0YWxvZy5jcmVhdGUtbmV3LWZhY2V0JyksXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbZW50aXR5Py5pZF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdjb2xsZWN0aW9uLWxpc3QnLFxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmNvbGxlY3Rpb25zJyksXG4gICAgICAgICAgICByb3V0ZTogJycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IENvbGxlY3Rpb25MaXN0Q29tcG9uZW50LFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdjb2xsZWN0aW9uLWRldGFpbCcsXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cuY29sbGVjdGlvbicpLFxuICAgICAgICAgICAgcm91dGU6ICcnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQ29sbGVjdGlvbkRldGFpbENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBxdWVyeTogQ29sbGVjdGlvbkRldGFpbFF1ZXJ5RG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAnY29sbGVjdGlvbicsXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlbnRpdHkgPyBlbnRpdHkubmFtZSA6IF8oJ2NhdGFsb2cuY3JlYXRlLW5ldy1jb2xsZWN0aW9uJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbZW50aXR5Py5pZF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdhc3NldC1saXN0JyxcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5hc3NldHMnKSxcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogQXNzZXRMaXN0Q29tcG9uZW50LFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdhc3NldC1kZXRhaWwnLFxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmFzc2V0JyksXG4gICAgICAgICAgICByb3V0ZTogJycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBBc3NldERldGFpbENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBxdWVyeTogQXNzZXREZXRhaWxRdWVyeURvY3VtZW50LFxuICAgICAgICAgICAgICAgIGVudGl0eUtleTogJ2Fzc2V0JyxcbiAgICAgICAgICAgICAgICBnZXRCcmVhZGNydW1iczogZW50aXR5ID0+IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGAke2VudGl0eT8ubmFtZX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogW2VudGl0eT8uaWRdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -111,10 +111,10 @@ export class AssetListComponent extends BaseListComponent {
111
111
  .pipe(switchMap(res => (res ? this.dataService.product.deleteAssets(assetIds, !!message) : EMPTY)), map(res => res.deleteAssets));
112
112
  }
113
113
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: AssetListComponent, deps: [{ token: i1.NotificationService }, { token: i1.ModalService }, { token: i1.DataService }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
114
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: AssetListComponent, selector: "vdr-asset-list", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\r\n <vdr-asset-search-input\r\n class=\"my-2\"\r\n [tags]=\"allTags$ | async\"\r\n (searchTermChange)=\"searchTerm$.next($event)\"\r\n (tagsChange)=\"filterByTags$.next($event)\"\r\n >\r\n <vdr-asset-file-input\r\n (selectFiles)=\"filesSelected($event)\"\r\n [uploading]=\"uploading\"\r\n dropZoneTarget=\".content-area\"\r\n ></vdr-asset-file-input>\r\n </vdr-asset-search-input>\r\n <vdr-asset-gallery\r\n [assets]=\"(items$ | async)! | paginate : (paginationConfig$ | async) || {}\"\r\n [multiSelect]=\"true\"\r\n [canDelete]=\"['DeleteCatalog', 'DeleteAsset'] | hasPermission\"\r\n (deleteAssets)=\"deleteAssets($event)\"\r\n ></vdr-asset-gallery>\r\n\r\n <div class=\"paging-controls\">\r\n <vdr-items-per-page-controls\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n ></vdr-items-per-page-controls>\r\n\r\n <vdr-pagination-controls\r\n [currentPage]=\"currentPage$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n ></vdr-pagination-controls>\r\n </div>\r\n</vdr-page-block>\r\n", styles: [":host{display:flex;flex-direction:column;height:100%}vdr-asset-gallery{flex:1}.paging-controls{padding-top:6px;border-top:1px solid var(--color-component-border-100);display:flex;justify-content:space-between}.search-input{margin-top:6px;min-width:300px}\n"], dependencies: [{ kind: "component", type: i1.AssetSearchInputComponent, selector: "vdr-asset-search-input", inputs: ["tags"], outputs: ["searchTermChange", "tagsChange"] }, { kind: "component", type: i1.ItemsPerPageControlsComponent, selector: "vdr-items-per-page-controls", inputs: ["itemsPerPage"], outputs: ["itemsPerPageChange"] }, { kind: "component", type: i1.PaginationControlsComponent, selector: "vdr-pagination-controls", inputs: ["id", "currentPage", "itemsPerPage", "totalItems"], outputs: ["pageChange"] }, { kind: "component", type: i1.AssetFileInputComponent, selector: "vdr-asset-file-input", inputs: ["dropZoneTarget", "uploading"], outputs: ["selectFiles"] }, { kind: "component", type: i1.AssetGalleryComponent, selector: "vdr-asset-gallery", inputs: ["assets", "multiSelect", "canDelete"], outputs: ["selectionChange", "deleteAssets"] }, { kind: "component", type: i1.PageBlockComponent, selector: "vdr-page-block" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PaginatePipe, name: "paginate" }, { kind: "pipe", type: i1.HasPermissionPipe, name: "hasPermission" }] }); }
114
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: AssetListComponent, selector: "vdr-asset-list", usesInheritance: true, ngImport: i0, template: "<vdr-page-block>\n <div class=\"my-2\">\n <vdr-asset-search-input\n [tags]=\"allTags$ | async\"\n (searchTermChange)=\"searchTerm$.next($event)\"\n (tagsChange)=\"filterByTags$.next($event)\"\n >\n <vdr-asset-file-input\n (selectFiles)=\"filesSelected($event)\"\n [uploading]=\"uploading\"\n dropZoneTarget=\".content-area\"\n ></vdr-asset-file-input>\n </vdr-asset-search-input>\n </div>\n <vdr-asset-gallery\n [assets]=\"(items$ | async)! | paginate : (paginationConfig$ | async) || {}\"\n [multiSelect]=\"true\"\n [canDelete]=\"['DeleteCatalog', 'DeleteAsset'] | hasPermission\"\n (deleteAssets)=\"deleteAssets($event)\"\n ></vdr-asset-gallery>\n\n <div class=\"paging-controls\">\n <vdr-items-per-page-controls\n [itemsPerPage]=\"itemsPerPage$ | async\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n ></vdr-items-per-page-controls>\n\n <vdr-pagination-controls\n [currentPage]=\"currentPage$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n (pageChange)=\"setPageNumber($event)\"\n ></vdr-pagination-controls>\n </div>\n</vdr-page-block>\n", styles: [":host{display:flex;flex-direction:column;height:100%}vdr-asset-gallery{flex:1}.paging-controls{padding-top:6px;border-top:1px solid var(--color-component-border-100);display:flex;justify-content:space-between}.search-input{margin-top:6px;min-width:300px}\n"], dependencies: [{ kind: "component", type: i1.AssetSearchInputComponent, selector: "vdr-asset-search-input", inputs: ["tags"], outputs: ["searchTermChange", "tagsChange"] }, { kind: "component", type: i1.ItemsPerPageControlsComponent, selector: "vdr-items-per-page-controls", inputs: ["itemsPerPage"], outputs: ["itemsPerPageChange"] }, { kind: "component", type: i1.PaginationControlsComponent, selector: "vdr-pagination-controls", inputs: ["id", "currentPage", "itemsPerPage", "totalItems"], outputs: ["pageChange"] }, { kind: "component", type: i1.AssetFileInputComponent, selector: "vdr-asset-file-input", inputs: ["dropZoneTarget", "uploading"], outputs: ["selectFiles"] }, { kind: "component", type: i1.AssetGalleryComponent, selector: "vdr-asset-gallery", inputs: ["assets", "multiSelect", "canDelete"], outputs: ["selectionChange", "deleteAssets"] }, { kind: "component", type: i1.PageBlockComponent, selector: "vdr-page-block" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.PaginatePipe, name: "paginate" }, { kind: "pipe", type: i1.HasPermissionPipe, name: "hasPermission" }] }); }
115
115
  }
116
116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: AssetListComponent, decorators: [{
117
117
  type: Component,
118
- args: [{ selector: 'vdr-asset-list', template: "<vdr-page-block>\r\n <vdr-asset-search-input\r\n class=\"my-2\"\r\n [tags]=\"allTags$ | async\"\r\n (searchTermChange)=\"searchTerm$.next($event)\"\r\n (tagsChange)=\"filterByTags$.next($event)\"\r\n >\r\n <vdr-asset-file-input\r\n (selectFiles)=\"filesSelected($event)\"\r\n [uploading]=\"uploading\"\r\n dropZoneTarget=\".content-area\"\r\n ></vdr-asset-file-input>\r\n </vdr-asset-search-input>\r\n <vdr-asset-gallery\r\n [assets]=\"(items$ | async)! | paginate : (paginationConfig$ | async) || {}\"\r\n [multiSelect]=\"true\"\r\n [canDelete]=\"['DeleteCatalog', 'DeleteAsset'] | hasPermission\"\r\n (deleteAssets)=\"deleteAssets($event)\"\r\n ></vdr-asset-gallery>\r\n\r\n <div class=\"paging-controls\">\r\n <vdr-items-per-page-controls\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\r\n ></vdr-items-per-page-controls>\r\n\r\n <vdr-pagination-controls\r\n [currentPage]=\"currentPage$ | async\"\r\n [itemsPerPage]=\"itemsPerPage$ | async\"\r\n [totalItems]=\"totalItems$ | async\"\r\n (pageChange)=\"setPageNumber($event)\"\r\n ></vdr-pagination-controls>\r\n </div>\r\n</vdr-page-block>\r\n", styles: [":host{display:flex;flex-direction:column;height:100%}vdr-asset-gallery{flex:1}.paging-controls{padding-top:6px;border-top:1px solid var(--color-component-border-100);display:flex;justify-content:space-between}.search-input{margin-top:6px;min-width:300px}\n"] }]
118
+ args: [{ selector: 'vdr-asset-list', template: "<vdr-page-block>\n <div class=\"my-2\">\n <vdr-asset-search-input\n [tags]=\"allTags$ | async\"\n (searchTermChange)=\"searchTerm$.next($event)\"\n (tagsChange)=\"filterByTags$.next($event)\"\n >\n <vdr-asset-file-input\n (selectFiles)=\"filesSelected($event)\"\n [uploading]=\"uploading\"\n dropZoneTarget=\".content-area\"\n ></vdr-asset-file-input>\n </vdr-asset-search-input>\n </div>\n <vdr-asset-gallery\n [assets]=\"(items$ | async)! | paginate : (paginationConfig$ | async) || {}\"\n [multiSelect]=\"true\"\n [canDelete]=\"['DeleteCatalog', 'DeleteAsset'] | hasPermission\"\n (deleteAssets)=\"deleteAssets($event)\"\n ></vdr-asset-gallery>\n\n <div class=\"paging-controls\">\n <vdr-items-per-page-controls\n [itemsPerPage]=\"itemsPerPage$ | async\"\n (itemsPerPageChange)=\"setItemsPerPage($event)\"\n ></vdr-items-per-page-controls>\n\n <vdr-pagination-controls\n [currentPage]=\"currentPage$ | async\"\n [itemsPerPage]=\"itemsPerPage$ | async\"\n [totalItems]=\"totalItems$ | async\"\n (pageChange)=\"setPageNumber($event)\"\n ></vdr-pagination-controls>\n </div>\n</vdr-page-block>\n", styles: [":host{display:flex;flex-direction:column;height:100%}vdr-asset-gallery{flex:1}.paging-controls{padding-top:6px;border-top:1px solid var(--color-component-border-100);display:flex;justify-content:space-between}.search-input{margin-top:6px;min-width:300px}\n"] }]
119
119
  }], ctorParameters: function () { return [{ type: i1.NotificationService }, { type: i1.ModalService }, { type: i1.DataService }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NvbXBvbmVudHMvYXNzZXQtbGlzdC9hc3NldC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9hc3NldC1saXN0L2Fzc2V0LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFFSCxpQkFBaUIsRUFFakIsY0FBYyxFQUlkLGVBQWUsRUFHZixTQUFTLEdBRVosTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBT25GLE1BQU0sT0FBTyxrQkFDVCxTQUFRLGlCQUlQO0lBU0QsWUFDWSxtQkFBd0MsRUFDeEMsWUFBMEIsRUFDMUIsV0FBd0IsRUFDaEMsTUFBYyxFQUNkLEtBQXFCO1FBRXJCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFOYix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBVHBDLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBQ2pFLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQTRCLFNBQVMsQ0FBQyxDQUFD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QUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQy9CLENBQUM7SUFDVixDQUFDOzhHQXhJUSxrQkFBa0I7a0dBQWxCLGtCQUFrQiw2RUMxQi9CLHcxQ0FrQ0E7OzJGRFJhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDSSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQge1xyXG4gICAgQXNzZXQsXHJcbiAgICBCYXNlTGlzdENvbXBvbmVudCxcclxuICAgIERhdGFTZXJ2aWNlLFxyXG4gICAgRGVsZXRpb25SZXN1bHQsXHJcbiAgICBHZXRBc3NldExpc3RRdWVyeSxcclxuICAgIEdldEFzc2V0TGlzdFF1ZXJ5VmFyaWFibGVzLFxyXG4gICAgSXRlbU9mLFxyXG4gICAgTG9naWNhbE9wZXJhdG9yLFxyXG4gICAgTW9kYWxTZXJ2aWNlLFxyXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIFNvcnRPcmRlcixcclxuICAgIFRhZ0ZyYWdtZW50LFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uSW5zdGFuY2UgfSBmcm9tICduZ3gtcGFnaW5hdGlvbic7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgRU1QVFksIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaW5hbGl6ZSwgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItYXNzZXQtbGlzdCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXNzZXQtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9hc3NldC1saXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc3NldExpc3RDb21wb25lbnRcclxuICAgIGV4dGVuZHMgQmFzZUxpc3RDb21wb25lbnQ8XHJcbiAgICAgICAgR2V0QXNzZXRMaXN0UXVlcnksXHJcbiAgICAgICAgSXRlbU9mPEdldEFzc2V0TGlzdFF1ZXJ5LCAnYXNzZXRzJz4sXHJcbiAgICAgICAgR2V0QXNzZXRMaXN0UXVlcnlWYXJpYWJsZXNcclxuICAgID5cclxuICAgIGltcGxlbWVudHMgT25Jbml0XHJcbntcclxuICAgIHNlYXJjaFRlcm0kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcbiAgICBmaWx0ZXJCeVRhZ3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWdGcmFnbWVudFtdIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gICAgdXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICBhbGxUYWdzJDogT2JzZXJ2YWJsZTxUYWdGcmFnbWVudFtdPjtcclxuICAgIHBhZ2luYXRpb25Db25maWckOiBPYnNlcnZhYmxlPFBhZ2luYXRpb25JbnN0YW5jZT47XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXHJcbiAgICAgICAgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIocm91dGVyLCByb3V0ZSk7XHJcbiAgICAgICAgc3VwZXIuc2V0UXVlcnlGbihcclxuICAgICAgICAgICAgKC4uLmFyZ3M6IGFueVtdKSA9PiB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QuZ2V0QXNzZXRMaXN0KC4uLmFyZ3MpLnJlZmV0Y2hPbkNoYW5uZWxDaGFuZ2UoKSxcclxuICAgICAgICAgICAgZGF0YSA9PiBkYXRhLmFzc2V0cyxcclxuICAgICAgICAgICAgKHNraXAsIHRha2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNlYXJjaFRlcm0gPSB0aGlzLnNlYXJjaFRlcm0kLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGFncyA9IHRoaXMuZmlsdGVyQnlUYWdzJC52YWx1ZT8ubWFwKHQgPT4gdC52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2tpcCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHNlYXJjaFRlcm1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogeyBjb250YWluczogc2VhcmNoVGVybSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogU29ydE9yZGVyLkRFU0MsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhZ3MsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhZ3NPcGVyYXRvcjogTG9naWNhbE9wZXJhdG9yLkFORCxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyB0YWtlOiAyNSwgc2tpcDogMCB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25Db25maWckID0gY29tYmluZUxhdGVzdCh0aGlzLml0ZW1zUGVyUGFnZSQsIHRoaXMuY3VycmVudFBhZ2UkLCB0aGlzLnRvdGFsSXRlbXMkKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKFtpdGVtc1BlclBhZ2UsIGN1cnJlbnRQYWdlLCB0b3RhbEl0ZW1zXSkgPT4gKHsgaXRlbXNQZXJQYWdlLCBjdXJyZW50UGFnZSwgdG90YWxJdGVtcyB9KSksXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnNlYXJjaFRlcm0kLnBpcGUoZGVib3VuY2VUaW1lKDI1MCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVmcmVzaCgpKTtcclxuXHJcbiAgICAgICAgdGhpcy5maWx0ZXJCeVRhZ3MkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWZyZXNoKCkpO1xyXG4gICAgICAgIHRoaXMuYWxsVGFncyQgPSB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QuZ2V0VGFnTGlzdCgpLm1hcFN0cmVhbShkYXRhID0+IGRhdGEudGFncy5pdGVtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZmlsZXNTZWxlY3RlZChmaWxlczogRmlsZVtdKSB7XHJcbiAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdFxyXG4gICAgICAgICAgICAgICAgLmNyZWF0ZUFzc2V0cyhmaWxlcylcclxuICAgICAgICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLnVwbG9hZGluZyA9IGZhbHNlKSkpXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCh7IGNyZWF0ZUFzc2V0cyB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHN1Y2Nlc3NDb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCByZXN1bHQgb2YgY3JlYXRlQXNzZXRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAocmVzdWx0Ll9fdHlwZW5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0Fzc2V0JzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzQ291bnQrKztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ01pbWVUeXBlRXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihyZXN1bHQubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKDAgPCBzdWNjZXNzQ291bnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VwZXIucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdhc3NldC5ub3RpZnktY3JlYXRlLWFzc2V0cy1zdWNjZXNzJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50OiBzdWNjZXNzQ291bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkZWxldGVBc3NldHMoYXNzZXRzOiBBc3NldFtdKSB7XHJcbiAgICAgICAgdGhpcy5zaG93TW9kYWxBbmREZWxldGUoYXNzZXRzLm1hcChhID0+IGEuaWQpKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlc3VsdCA9PT0gRGVsZXRpb25SZXN1bHQuREVMRVRFRCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW3RydWVdO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNob3dNb2RhbEFuZERlbGV0ZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0cy5tYXAoYSA9PiBhLmlkKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLm1lc3NhZ2UgfHwgJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkucGlwZShtYXAociA9PiByLnJlc3VsdCA9PT0gRGVsZXRpb25SZXN1bHQuREVMRVRFRCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS1kZWxldGUtc3VjY2VzcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ0Fzc2V0cycsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXygnY29tbW9uLm5vdGlmeS1kZWxldGUtZXJyb3InKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdBc3NldHMnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNob3dNb2RhbEFuZERlbGV0ZShhc3NldElkczogc3RyaW5nW10sIG1lc3NhZ2U/OiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tb2RhbFNlcnZpY2VcclxuICAgICAgICAgICAgLmRpYWxvZyh7XHJcbiAgICAgICAgICAgICAgICB0aXRsZTogXygnY2F0YWxvZy5jb25maXJtLWRlbGV0ZS1hc3NldHMnKSxcclxuICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uVmFyczoge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvdW50OiBhc3NldElkcy5sZW5ndGgsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYm9keTogbWVzc2FnZSxcclxuICAgICAgICAgICAgICAgIGJ1dHRvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICdzZWNvbmRhcnknLCBsYWJlbDogXygnY29tbW9uLmNhbmNlbCcpIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAnZGFuZ2VyJywgbGFiZWw6IF8oJ2NvbW1vbi5kZWxldGUnKSwgcmV0dXJuVmFsdWU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlcyA9PiAocmVzID8gdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LmRlbGV0ZUFzc2V0cyhhc3NldElkcywgISFtZXNzYWdlKSA6IEVNUFRZKSksXHJcbiAgICAgICAgICAgICAgICBtYXAocmVzID0+IHJlcy5kZWxldGVBc3NldHMpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiIsIjx2ZHItcGFnZS1ibG9jaz5cclxuICAgIDx2ZHItYXNzZXQtc2VhcmNoLWlucHV0XHJcbiAgICAgICAgY2xhc3M9XCJteS0yXCJcclxuICAgICAgICBbdGFnc109XCJhbGxUYWdzJCB8IGFzeW5jXCJcclxuICAgICAgICAoc2VhcmNoVGVybUNoYW5nZSk9XCJzZWFyY2hUZXJtJC5uZXh0KCRldmVudClcIlxyXG4gICAgICAgICh0YWdzQ2hhbmdlKT1cImZpbHRlckJ5VGFncyQubmV4dCgkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgICA8dmRyLWFzc2V0LWZpbGUtaW5wdXRcclxuICAgICAgICAgICAgKHNlbGVjdEZpbGVzKT1cImZpbGVzU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFt1cGxvYWRpbmddPVwidXBsb2FkaW5nXCJcclxuICAgICAgICAgICAgZHJvcFpvbmVUYXJnZXQ9XCIuY29udGVudC1hcmVhXCJcclxuICAgICAgICA+PC92ZHItYXNzZXQtZmlsZS1pbnB1dD5cclxuICAgIDwvdmRyLWFzc2V0LXNlYXJjaC1pbnB1dD5cclxuICAgIDx2ZHItYXNzZXQtZ2FsbGVyeVxyXG4gICAgICAgIFthc3NldHNdPVwiKGl0ZW1zJCB8IGFzeW5jKSEgfCBwYWdpbmF0ZSA6IChwYWdpbmF0aW9uQ29uZmlnJCB8IGFzeW5jKSB8fCB7fVwiXHJcbiAgICAgICAgW211bHRpU2VsZWN0XT1cInRydWVcIlxyXG4gICAgICAgIFtjYW5EZWxldGVdPVwiWydEZWxldGVDYXRhbG9nJywgJ0RlbGV0ZUFzc2V0J10gfCBoYXNQZXJtaXNzaW9uXCJcclxuICAgICAgICAoZGVsZXRlQXNzZXRzKT1cImRlbGV0ZUFzc2V0cygkZXZlbnQpXCJcclxuICAgID48L3Zkci1hc3NldC1nYWxsZXJ5PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwYWdpbmctY29udHJvbHNcIj5cclxuICAgICAgICA8dmRyLWl0ZW1zLXBlci1wYWdlLWNvbnRyb2xzXHJcbiAgICAgICAgICAgIFtpdGVtc1BlclBhZ2VdPVwiaXRlbXNQZXJQYWdlJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgKGl0ZW1zUGVyUGFnZUNoYW5nZSk9XCJzZXRJdGVtc1BlclBhZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvdmRyLWl0ZW1zLXBlci1wYWdlLWNvbnRyb2xzPlxyXG5cclxuICAgICAgICA8dmRyLXBhZ2luYXRpb24tY29udHJvbHNcclxuICAgICAgICAgICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgW2l0ZW1zUGVyUGFnZV09XCJpdGVtc1BlclBhZ2UkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICBbdG90YWxJdGVtc109XCJ0b3RhbEl0ZW1zJCB8IGFzeW5jXCJcclxuICAgICAgICAgICAgKHBhZ2VDaGFuZ2UpPVwic2V0UGFnZU51bWJlcigkZXZlbnQpXCJcclxuICAgICAgICA+PC92ZHItcGFnaW5hdGlvbi1jb250cm9scz5cclxuICAgIDwvZGl2PlxyXG48L3Zkci1wYWdlLWJsb2NrPlxyXG4iXX0=
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NvbXBvbmVudHMvYXNzZXQtbGlzdC9hc3NldC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9hc3NldC1saXN0L2Fzc2V0LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFFSCxpQkFBaUIsRUFFakIsY0FBYyxFQUlkLGVBQWUsRUFHZixTQUFTLEdBRVosTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBT25GLE1BQU0sT0FBTyxrQkFDVCxTQUFRLGlCQUlQO0lBU0QsWUFDWSxtQkFBd0MsRUFDeEMsWUFBMEIsRUFDMUIsV0FBd0IsRUFDaEMsTUFBYyxFQUNkLEtBQXFCO1FBRXJCLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFOYix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBVHBDLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBQ2pFLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQTRCLFNBQVMsQ0FBQyxDQUFD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QUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQy9CLENBQUM7SUFDVixDQUFDOzhHQXhJUSxrQkFBa0I7a0dBQWxCLGtCQUFrQiw2RUMxQi9CLDgwQ0FtQ0E7OzJGRFRhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDSSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQge1xyXG4gICAgQXNzZXQsXHJcbiAgICBCYXNlTGlzdENvbXBvbmVudCxcclxuICAgIERhdGFTZXJ2aWNlLFxyXG4gICAgRGVsZXRpb25SZXN1bHQsXHJcbiAgICBHZXRBc3NldExpc3RRdWVyeSxcclxuICAgIEdldEFzc2V0TGlzdFF1ZXJ5VmFyaWFibGVzLFxyXG4gICAgSXRlbU9mLFxyXG4gICAgTG9naWNhbE9wZXJhdG9yLFxyXG4gICAgTW9kYWxTZXJ2aWNlLFxyXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIFNvcnRPcmRlcixcclxuICAgIFRhZ0ZyYWdtZW50LFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uSW5zdGFuY2UgfSBmcm9tICduZ3gtcGFnaW5hdGlvbic7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgRU1QVFksIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaW5hbGl6ZSwgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItYXNzZXQtbGlzdCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXNzZXQtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9hc3NldC1saXN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc3NldExpc3RDb21wb25lbnRcclxuICAgIGV4dGVuZHMgQmFzZUxpc3RDb21wb25lbnQ8XHJcbiAgICAgICAgR2V0QXNzZXRMaXN0UXVlcnksXHJcbiAgICAgICAgSXRlbU9mPEdldEFzc2V0TGlzdFF1ZXJ5LCAnYXNzZXRzJz4sXHJcbiAgICAgICAgR2V0QXNzZXRMaXN0UXVlcnlWYXJpYWJsZXNcclxuICAgID5cclxuICAgIGltcGxlbWVudHMgT25Jbml0XHJcbntcclxuICAgIHNlYXJjaFRlcm0kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcbiAgICBmaWx0ZXJCeVRhZ3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWdGcmFnbWVudFtdIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gICAgdXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICBhbGxUYWdzJDogT2JzZXJ2YWJsZTxUYWdGcmFnbWVudFtdPjtcclxuICAgIHBhZ2luYXRpb25Db25maWckOiBPYnNlcnZhYmxlPFBhZ2luYXRpb25JbnN0YW5jZT47XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXHJcbiAgICAgICAgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAgICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIocm91dGVyLCByb3V0ZSk7XHJcbiAgICAgICAgc3VwZXIuc2V0UXVlcnlGbihcclxuICAgICAgICAgICAgKC4uLmFyZ3M6IGFueVtdKSA9PiB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QuZ2V0QXNzZXRMaXN0KC4uLmFyZ3MpLnJlZmV0Y2hPbkNoYW5uZWxDaGFuZ2UoKSxcclxuICAgICAgICAgICAgZGF0YSA9PiBkYXRhLmFzc2V0cyxcclxuICAgICAgICAgICAgKHNraXAsIHRha2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNlYXJjaFRlcm0gPSB0aGlzLnNlYXJjaFRlcm0kLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGFncyA9IHRoaXMuZmlsdGVyQnlUYWdzJC52YWx1ZT8ubWFwKHQgPT4gdC52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2tpcCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHNlYXJjaFRlcm1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogeyBjb250YWluczogc2VhcmNoVGVybSB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7fSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvcnQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogU29ydE9yZGVyLkRFU0MsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhZ3MsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhZ3NPcGVyYXRvcjogTG9naWNhbE9wZXJhdG9yLkFORCxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyB0YWtlOiAyNSwgc2tpcDogMCB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25Db25maWckID0gY29tYmluZUxhdGVzdCh0aGlzLml0ZW1zUGVyUGFnZSQsIHRoaXMuY3VycmVudFBhZ2UkLCB0aGlzLnRvdGFsSXRlbXMkKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKFtpdGVtc1BlclBhZ2UsIGN1cnJlbnRQYWdlLCB0b3RhbEl0ZW1zXSkgPT4gKHsgaXRlbXNQZXJQYWdlLCBjdXJyZW50UGFnZSwgdG90YWxJdGVtcyB9KSksXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnNlYXJjaFRlcm0kLnBpcGUoZGVib3VuY2VUaW1lKDI1MCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVmcmVzaCgpKTtcclxuXHJcbiAgICAgICAgdGhpcy5maWx0ZXJCeVRhZ3MkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZWZyZXNoKCkpO1xyXG4gICAgICAgIHRoaXMuYWxsVGFncyQgPSB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QuZ2V0VGFnTGlzdCgpLm1hcFN0cmVhbShkYXRhID0+IGRhdGEudGFncy5pdGVtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZmlsZXNTZWxlY3RlZChmaWxlczogRmlsZVtdKSB7XHJcbiAgICAgICAgaWYgKGZpbGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdFxyXG4gICAgICAgICAgICAgICAgLmNyZWF0ZUFzc2V0cyhmaWxlcylcclxuICAgICAgICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+ICh0aGlzLnVwbG9hZGluZyA9IGZhbHNlKSkpXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCh7IGNyZWF0ZUFzc2V0cyB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHN1Y2Nlc3NDb3VudCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCByZXN1bHQgb2YgY3JlYXRlQXNzZXRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAocmVzdWx0Ll9fdHlwZW5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0Fzc2V0JzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzQ291bnQrKztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ01pbWVUeXBlRXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihyZXN1bHQubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKDAgPCBzdWNjZXNzQ291bnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VwZXIucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdhc3NldC5ub3RpZnktY3JlYXRlLWFzc2V0cy1zdWNjZXNzJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50OiBzdWNjZXNzQ291bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkZWxldGVBc3NldHMoYXNzZXRzOiBBc3NldFtdKSB7XHJcbiAgICAgICAgdGhpcy5zaG93TW9kYWxBbmREZWxldGUoYXNzZXRzLm1hcChhID0+IGEuaWQpKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlc3VsdCA9PT0gRGVsZXRpb25SZXN1bHQuREVMRVRFRCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW3RydWVdO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNob3dNb2RhbEFuZERlbGV0ZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2V0cy5tYXAoYSA9PiBhLmlkKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLm1lc3NhZ2UgfHwgJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkucGlwZShtYXAociA9PiByLnJlc3VsdCA9PT0gRGVsZXRpb25SZXN1bHQuREVMRVRFRCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS1kZWxldGUtc3VjY2VzcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogJ0Fzc2V0cycsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXygnY29tbW9uLm5vdGlmeS1kZWxldGUtZXJyb3InKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHk6ICdBc3NldHMnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNob3dNb2RhbEFuZERlbGV0ZShhc3NldElkczogc3RyaW5nW10sIG1lc3NhZ2U/OiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tb2RhbFNlcnZpY2VcclxuICAgICAgICAgICAgLmRpYWxvZyh7XHJcbiAgICAgICAgICAgICAgICB0aXRsZTogXygnY2F0YWxvZy5jb25maXJtLWRlbGV0ZS1hc3NldHMnKSxcclxuICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uVmFyczoge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvdW50OiBhc3NldElkcy5sZW5ndGgsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYm9keTogbWVzc2FnZSxcclxuICAgICAgICAgICAgICAgIGJ1dHRvbnM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7IHR5cGU6ICdzZWNvbmRhcnknLCBsYWJlbDogXygnY29tbW9uLmNhbmNlbCcpIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgeyB0eXBlOiAnZGFuZ2VyJywgbGFiZWw6IF8oJ2NvbW1vbi5kZWxldGUnKSwgcmV0dXJuVmFsdWU6IHRydWUgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlcyA9PiAocmVzID8gdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LmRlbGV0ZUFzc2V0cyhhc3NldElkcywgISFtZXNzYWdlKSA6IEVNUFRZKSksXHJcbiAgICAgICAgICAgICAgICBtYXAocmVzID0+IHJlcy5kZWxldGVBc3NldHMpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiIsIjx2ZHItcGFnZS1ibG9jaz5cbiAgICA8ZGl2IGNsYXNzPVwibXktMlwiPlxuICAgICAgICA8dmRyLWFzc2V0LXNlYXJjaC1pbnB1dFxuICAgICAgICAgICAgW3RhZ3NdPVwiYWxsVGFncyQgfCBhc3luY1wiXG4gICAgICAgICAgICAoc2VhcmNoVGVybUNoYW5nZSk9XCJzZWFyY2hUZXJtJC5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgKHRhZ3NDaGFuZ2UpPVwiZmlsdGVyQnlUYWdzJC5uZXh0KCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8dmRyLWFzc2V0LWZpbGUtaW5wdXRcbiAgICAgICAgICAgICAgICAoc2VsZWN0RmlsZXMpPVwiZmlsZXNTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbdXBsb2FkaW5nXT1cInVwbG9hZGluZ1wiXG4gICAgICAgICAgICAgICAgZHJvcFpvbmVUYXJnZXQ9XCIuY29udGVudC1hcmVhXCJcbiAgICAgICAgICAgID48L3Zkci1hc3NldC1maWxlLWlucHV0PlxuICAgICAgICA8L3Zkci1hc3NldC1zZWFyY2gtaW5wdXQ+XG4gICAgPC9kaXY+XG4gICAgPHZkci1hc3NldC1nYWxsZXJ5XG4gICAgICAgIFthc3NldHNdPVwiKGl0ZW1zJCB8IGFzeW5jKSEgfCBwYWdpbmF0ZSA6IChwYWdpbmF0aW9uQ29uZmlnJCB8IGFzeW5jKSB8fCB7fVwiXG4gICAgICAgIFttdWx0aVNlbGVjdF09XCJ0cnVlXCJcbiAgICAgICAgW2NhbkRlbGV0ZV09XCJbJ0RlbGV0ZUNhdGFsb2cnLCAnRGVsZXRlQXNzZXQnXSB8IGhhc1Blcm1pc3Npb25cIlxuICAgICAgICAoZGVsZXRlQXNzZXRzKT1cImRlbGV0ZUFzc2V0cygkZXZlbnQpXCJcbiAgICA+PC92ZHItYXNzZXQtZ2FsbGVyeT5cblxuICAgIDxkaXYgY2xhc3M9XCJwYWdpbmctY29udHJvbHNcIj5cbiAgICAgICAgPHZkci1pdGVtcy1wZXItcGFnZS1jb250cm9sc1xuICAgICAgICAgICAgW2l0ZW1zUGVyUGFnZV09XCJpdGVtc1BlclBhZ2UkIHwgYXN5bmNcIlxuICAgICAgICAgICAgKGl0ZW1zUGVyUGFnZUNoYW5nZSk9XCJzZXRJdGVtc1BlclBhZ2UoJGV2ZW50KVwiXG4gICAgICAgID48L3Zkci1pdGVtcy1wZXItcGFnZS1jb250cm9scz5cblxuICAgICAgICA8dmRyLXBhZ2luYXRpb24tY29udHJvbHNcbiAgICAgICAgICAgIFtjdXJyZW50UGFnZV09XCJjdXJyZW50UGFnZSQgfCBhc3luY1wiXG4gICAgICAgICAgICBbaXRlbXNQZXJQYWdlXT1cIml0ZW1zUGVyUGFnZSQgfCBhc3luY1wiXG4gICAgICAgICAgICBbdG90YWxJdGVtc109XCJ0b3RhbEl0ZW1zJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIChwYWdlQ2hhbmdlKT1cInNldFBhZ2VOdW1iZXIoJGV2ZW50KVwiXG4gICAgICAgID48L3Zkci1wYWdpbmF0aW9uLWNvbnRyb2xzPlxuICAgIDwvZGl2PlxuPC92ZHItcGFnZS1ibG9jaz5cbiJdfQ==
@@ -68,10 +68,10 @@ export class CreateProductVariantDialogComponent {
68
68
  return this.product.optionGroups.find(og => og.code === code)?.id ?? '';
69
69
  }
70
70
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: CreateProductVariantDialogComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
71
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: CreateProductVariantDialogComponent, selector: "vdr-create-product-variant-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n {{ 'catalog.create-product-variant' | translate }}\r\n</ng-template>\r\n<form [formGroup]=\"form\">\r\n <div formGroupName=\"options\" class=\"form-grid\">\r\n <vdr-form-field [label]=\"optionGroup.name\" *ngFor=\"let optionGroup of product.optionGroups\">\r\n <ng-select\r\n [items]=\"optionGroup.options\"\r\n [formControlName]=\"optionGroup.code\"\r\n bindLabel=\"name\"\r\n bindValue=\"id\"\r\n appendTo=\"body\"\r\n >\r\n </ng-select>\r\n </vdr-form-field>\r\n </div>\r\n <div *ngIf=\"existingVariant\" class=\"mt-2\">\r\n <clr-alert clrAlertType=\"warning\" [clrAlertClosable]=\"false\" class=\"\">\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ 'catalog.product-variant-exists' | translate }}: {{ existingVariant.name }} ({{ existingVariant.sku }})\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <div class=\"form-grid mt-2\">\r\n <vdr-form-field [label]=\"'common.name' | translate\">\r\n <input type=\"text\" formControlName=\"name\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'catalog.sku' | translate\">\r\n <input type=\"text\" formControlName=\"sku\" />\r\n </vdr-form-field>\r\n </div>\r\n</form>\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"confirm()\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"form.invalid || existingVariant\"\r\n >\r\n {{ 'common.confirm' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "component", type: i2.ClrAlert, selector: "clr-alert", inputs: ["clrAlertSizeSmall", "clrAlertClosable", "clrAlertAppLevel", "clrCloseButtonAriaLabel", "clrAlertClosed", "clrAlertType", "clrAlertIcon"], outputs: ["clrAlertClosedChange"] }, { kind: "component", type: i2.ClrAlertItem, selector: "clr-alert-item" }, { kind: "directive", type: i2.ClrAlertText, selector: ".alert-text" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i5.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"] }, { kind: "directive", type: i5.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "directive", type: i5.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i5.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
71
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: CreateProductVariantDialogComponent, selector: "vdr-create-product-variant-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n {{ 'catalog.create-product-variant' | translate }}\r\n</ng-template>\r\n<form [formGroup]=\"form\">\r\n <div formGroupName=\"options\" class=\"form-grid\">\r\n <vdr-form-field [label]=\"optionGroup.name\" *ngFor=\"let optionGroup of product.optionGroups\">\r\n <ng-select\r\n [items]=\"optionGroup.options\"\r\n [formControlName]=\"optionGroup.code\"\r\n bindLabel=\"name\"\r\n bindValue=\"id\"\r\n appendTo=\"body\"\r\n >\r\n </ng-select>\r\n </vdr-form-field>\r\n <clr-alert\r\n *ngIf=\"product.optionGroups.length === 0\"\r\n clrAlertType=\"warning\"\r\n [clrAlertClosable]=\"false\"\r\n class=\"form-grid-span\"\r\n >\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ 'catalog.cannot-create-variants-without-options' | translate }}\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <div *ngIf=\"existingVariant\" class=\"mt-2\">\r\n <clr-alert clrAlertType=\"warning\" [clrAlertClosable]=\"false\" class=\"\">\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ 'catalog.product-variant-exists' | translate }}: {{ existingVariant.name }} ({{\r\n existingVariant.sku\r\n }})\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <div class=\"form-grid mt-2\">\r\n <vdr-form-field [label]=\"'common.name' | translate\">\r\n <input type=\"text\" formControlName=\"name\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'catalog.sku' | translate\">\r\n <input type=\"text\" formControlName=\"sku\" />\r\n </vdr-form-field>\r\n </div>\r\n</form>\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"confirm()\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"form.invalid || existingVariant || product.optionGroups.length === 0\"\r\n >\r\n {{ 'common.confirm' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "component", type: i2.ClrAlert, selector: "clr-alert", inputs: ["clrAlertSizeSmall", "clrAlertClosable", "clrAlertAppLevel", "clrCloseButtonAriaLabel", "clrAlertClosed", "clrAlertType", "clrAlertIcon"], outputs: ["clrAlertClosedChange"] }, { kind: "component", type: i2.ClrAlertItem, selector: "clr-alert-item" }, { kind: "directive", type: i2.ClrAlertText, selector: ".alert-text" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i5.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"] }, { kind: "directive", type: i5.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "directive", type: i5.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i5.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
72
72
  }
73
73
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: CreateProductVariantDialogComponent, decorators: [{
74
74
  type: Component,
75
- args: [{ selector: 'vdr-create-product-variant-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n {{ 'catalog.create-product-variant' | translate }}\r\n</ng-template>\r\n<form [formGroup]=\"form\">\r\n <div formGroupName=\"options\" class=\"form-grid\">\r\n <vdr-form-field [label]=\"optionGroup.name\" *ngFor=\"let optionGroup of product.optionGroups\">\r\n <ng-select\r\n [items]=\"optionGroup.options\"\r\n [formControlName]=\"optionGroup.code\"\r\n bindLabel=\"name\"\r\n bindValue=\"id\"\r\n appendTo=\"body\"\r\n >\r\n </ng-select>\r\n </vdr-form-field>\r\n </div>\r\n <div *ngIf=\"existingVariant\" class=\"mt-2\">\r\n <clr-alert clrAlertType=\"warning\" [clrAlertClosable]=\"false\" class=\"\">\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ 'catalog.product-variant-exists' | translate }}: {{ existingVariant.name }} ({{ existingVariant.sku }})\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <div class=\"form-grid mt-2\">\r\n <vdr-form-field [label]=\"'common.name' | translate\">\r\n <input type=\"text\" formControlName=\"name\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'catalog.sku' | translate\">\r\n <input type=\"text\" formControlName=\"sku\" />\r\n </vdr-form-field>\r\n </div>\r\n</form>\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"confirm()\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"form.invalid || existingVariant\"\r\n >\r\n {{ 'common.confirm' | translate }}\r\n </button>\r\n</ng-template>\r\n" }]
75
+ args: [{ selector: 'vdr-create-product-variant-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n {{ 'catalog.create-product-variant' | translate }}\r\n</ng-template>\r\n<form [formGroup]=\"form\">\r\n <div formGroupName=\"options\" class=\"form-grid\">\r\n <vdr-form-field [label]=\"optionGroup.name\" *ngFor=\"let optionGroup of product.optionGroups\">\r\n <ng-select\r\n [items]=\"optionGroup.options\"\r\n [formControlName]=\"optionGroup.code\"\r\n bindLabel=\"name\"\r\n bindValue=\"id\"\r\n appendTo=\"body\"\r\n >\r\n </ng-select>\r\n </vdr-form-field>\r\n <clr-alert\r\n *ngIf=\"product.optionGroups.length === 0\"\r\n clrAlertType=\"warning\"\r\n [clrAlertClosable]=\"false\"\r\n class=\"form-grid-span\"\r\n >\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ 'catalog.cannot-create-variants-without-options' | translate }}\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <div *ngIf=\"existingVariant\" class=\"mt-2\">\r\n <clr-alert clrAlertType=\"warning\" [clrAlertClosable]=\"false\" class=\"\">\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ 'catalog.product-variant-exists' | translate }}: {{ existingVariant.name }} ({{\r\n existingVariant.sku\r\n }})\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <div class=\"form-grid mt-2\">\r\n <vdr-form-field [label]=\"'common.name' | translate\">\r\n <input type=\"text\" formControlName=\"name\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'catalog.sku' | translate\">\r\n <input type=\"text\" formControlName=\"sku\" />\r\n </vdr-form-field>\r\n </div>\r\n</form>\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"confirm()\"\r\n class=\"btn btn-primary\"\r\n [disabled]=\"form.invalid || existingVariant || product.optionGroups.length === 0\"\r\n >\r\n {{ 'common.confirm' | translate }}\r\n </button>\r\n</ng-template>\r\n" }]
76
76
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }]; } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXByb2R1Y3QtdmFyaWFudC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jYXRhbG9nL3NyYy9jb21wb25lbnRzL2NyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nL2NyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBZSxXQUFXLEVBQWMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7O0FBUXRFLE1BQU0sT0FBTyxtQ0FBbUM7SUFVNUMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFQNUMsU0FBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQzFCLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQy9CLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQzlCLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBUyxFQUFFLENBQUM7U0FDL0MsQ0FBQyxDQUFDO0lBRzRDLENBQUM7SUFFaEQsUUFBUTtRQUNKLEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDaEQsSUFBSSxDQUFDLElB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dkMsSUFBSTtpQkFDUDthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEVBQVU7UUFDakMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7SUFDMUUsQ0FBQztJQUVPLGtCQUFrQixDQUFDLElBQVk7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUUsQ0FBQzs4R0E1RVEsbUNBQW1DO2tHQUFuQyxtQ0FBbUMseUVDWGhELGsxREE2Q0E7OzJGRGxDYSxtQ0FBbUM7a0JBTi9DLFNBQVM7K0JBQ0ksbUNBQW1DLG1CQUc1Qix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybVJlY29yZCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ3JlYXRlUHJvZHVjdFZhcmlhbnRJbnB1dCwgRGlhbG9nLCBHZXRQcm9kdWN0VmFyaWFudE9wdGlvbnNRdWVyeSB9IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWNyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVhdGVQcm9kdWN0VmFyaWFudERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIERpYWxvZzxDcmVhdGVQcm9kdWN0VmFyaWFudElucHV0PiwgT25Jbml0IHtcclxuICAgIHJlc29sdmVXaXRoOiAocmVzdWx0PzogQ3JlYXRlUHJvZHVjdFZhcmlhbnRJbnB1dCkgPT4gdm9pZDtcclxuICAgIHByb2R1Y3Q6IE5vbk51bGxhYmxlPEdldFByb2R1Y3RWYXJpYW50T3B0aW9uc1F1ZXJ5Wydwcm9kdWN0J10+O1xyXG4gICAgZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAgIG5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgc2t1OiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgIG9wdGlvbnM6IHRoaXMuZm9ybUJ1aWxkZXIucmVjb3JkPHN0cmluZz4oe30pLFxyXG4gICAgfSk7XHJcbiAgICBleGlzdGluZ1ZhcmlhbnQ6IE5vbk51bGxhYmxlPEdldFByb2R1Y3RWYXJpYW50T3B0aW9uc1F1ZXJ5Wydwcm9kdWN0J10+Wyd2YXJpYW50cyddW251bWJlcl0gfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBvcHRpb25Hcm91cCBvZiB0aGlzLnByb2R1Y3Qub3B0aW9uR3JvdXBzKSB7XHJcbiAgICAgICAgICAgICh0aGlzLmZvcm0uZ2V0KCdvcHRpb25zJykgYXMgRm9ybVJlY29yZCkuYWRkQ29udHJvbChcclxuICAgICAgICAgICAgICAgIG9wdGlvbkdyb3VwLmNvZGUsXHJcbiAgICAgICAgICAgICAgICBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBvcHRpb25zUmVjb3JkID0gdGhpcy5mb3JtLmdldCgnb3B0aW9ucycpIGFzIEZvcm1SZWNvcmQ7XHJcbiAgICAgICAgb3B0aW9uc1JlY29yZC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbmFtZUNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KCduYW1lJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGFsbE51bGwgPSBPYmplY3QudmFsdWVzKHZhbHVlKS5ldmVyeSh2ID0+IHYgPT0gbnVsbCk7XHJcbiAgICAgICAgICAgIGlmICghYWxsTnVsbCAmJiB2YWx1ZSAmJiBuYW1lQ29udHJvbCAmJiAhbmFtZUNvbnRyb2wuZGlydHkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBPYmplY3QuZW50cmllcyh2YWx1ZSlcclxuICAgICAgICAgICAgICAgICAgICAubWFwKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoW2dyb3VwQ29kZSwgb3B0aW9uSWRdKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0Lm9wdGlvbkdyb3Vwc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKG9nID0+IG9nLmNvZGUgPT09IGdyb3VwQ29kZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Lm9wdGlvbnMuZmluZChvID0+IG8uaWQgPT09IG9wdGlvbklkKT8ubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJyAnKTtcclxuICAgICAgICAgICAgICAgIG5hbWVDb250cm9sLnNldFZhbHVlKGAke3RoaXMucHJvZHVjdC5uYW1lfSAke25hbWV9YCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgYWxsU2VsZWN0ZWQgPSBPYmplY3QudmFsdWVzKHZhbHVlKS5ldmVyeSh2ID0+IHYgIT0gbnVsbCk7XHJcbiAgICAgICAgICAgIGlmIChhbGxTZWxlY3RlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5leGlzdGluZ1ZhcmlhbnQgPSB0aGlzLnByb2R1Y3QudmFyaWFudHMuZmluZCh2ID0+XHJcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXModmFsdWUpLmV2ZXJ5KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoW2dyb3VwQ29kZSwgb3B0aW9uSWRdKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5vcHRpb25zLmZpbmQobyA9PiBvLmdyb3VwSWQgPT09IHRoaXMuZ2V0R3JvdXBJZEZyb21Db2RlKGdyb3VwQ29kZSkpPy5pZCA9PT1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uZmlybSgpIHtcclxuICAgICAgICBjb25zdCB7IG5hbWUsIHNrdSwgb3B0aW9ucyB9ID0gdGhpcy5mb3JtLnZhbHVlO1xyXG4gICAgICAgIGlmICghbmFtZSB8fCAhc2t1IHx8ICFvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uSWRzID0gT2JqZWN0LnZhbHVlcyhvcHRpb25zKS5maWx0ZXIobm90TnVsbE9yVW5kZWZpbmVkKTtcclxuICAgICAgICB0aGlzLnJlc29sdmVXaXRoKHtcclxuICAgICAgICAgICAgcHJvZHVjdElkOiB0aGlzLnByb2R1Y3QuaWQsXHJcbiAgICAgICAgICAgIHNrdSxcclxuICAgICAgICAgICAgb3B0aW9uSWRzLFxyXG4gICAgICAgICAgICB0cmFuc2xhdGlvbnM6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZUNvZGU6IHRoaXMucHJvZHVjdC5sYW5ndWFnZUNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2FuY2VsKCkge1xyXG4gICAgICAgIHRoaXMucmVzb2x2ZVdpdGgoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEdyb3VwQ29kZUZyb21JZChpZDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9kdWN0Lm9wdGlvbkdyb3Vwcy5maW5kKG9nID0+IG9nLmlkID09PSBpZCk/LmNvZGUgPz8gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRHcm91cElkRnJvbUNvZGUoY29kZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9kdWN0Lm9wdGlvbkdyb3Vwcy5maW5kKG9nID0+IG9nLmNvZGUgPT09IGNvZGUpPy5pZCA/PyAnJztcclxuICAgIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgdmRyRGlhbG9nVGl0bGU+XHJcbiAgICB7eyAnY2F0YWxvZy5jcmVhdGUtcHJvZHVjdC12YXJpYW50JyB8IHRyYW5zbGF0ZSB9fVxyXG48L25nLXRlbXBsYXRlPlxyXG48Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIj5cclxuICAgIDxkaXYgZm9ybUdyb3VwTmFtZT1cIm9wdGlvbnNcIiBjbGFzcz1cImZvcm0tZ3JpZFwiPlxyXG4gICAgICAgIDx2ZHItZm9ybS1maWVsZCBbbGFiZWxdPVwib3B0aW9uR3JvdXAubmFtZVwiICpuZ0Zvcj1cImxldCBvcHRpb25Hcm91cCBvZiBwcm9kdWN0Lm9wdGlvbkdyb3Vwc1wiPlxyXG4gICAgICAgICAgICA8bmctc2VsZWN0XHJcbiAgICAgICAgICAgICAgICBbaXRlbXNdPVwib3B0aW9uR3JvdXAub3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvbkdyb3VwLmNvZGVcIlxyXG4gICAgICAgICAgICAgICAgYmluZExhYmVsPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICBiaW5kVmFsdWU9XCJpZFwiXHJcbiAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvbmctc2VsZWN0PlxyXG4gICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJleGlzdGluZ1ZhcmlhbnRcIiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgICA8Y2xyLWFsZXJ0IGNsckFsZXJ0VHlwZT1cIndhcm5pbmdcIiBbY2xyQWxlcnRDbG9zYWJsZV09XCJmYWxzZVwiIGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgIDxjbHItYWxlcnQtaXRlbT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWxlcnQtdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdjYXRhbG9nLnByb2R1Y3QtdmFyaWFudC1leGlzdHMnIHwgdHJhbnNsYXRlIH19OiB7eyBleGlzdGluZ1ZhcmlhbnQubmFtZSB9fSAoe3sgZXhpc3RpbmdWYXJpYW50LnNrdSB9fSlcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9jbHItYWxlcnQtaXRlbT5cclxuICAgICAgICA8L2Nsci1hbGVydD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JpZCBtdC0yXCI+XHJcbiAgICAgICAgPHZkci1mb3JtLWZpZWxkIFtsYWJlbF09XCInY29tbW9uLm5hbWUnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiAvPlxyXG4gICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPHZkci1mb3JtLWZpZWxkIFtsYWJlbF09XCInY2F0YWxvZy5za3UnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cInNrdVwiIC8+XHJcbiAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG48L2Zvcm0+XHJcbjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dCdXR0b25zPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG5cIiAoY2xpY2spPVwiY2FuY2VsKClcIj57eyAnY29tbW9uLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAoY2xpY2spPVwiY29uZmlybSgpXCJcclxuICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZCB8fCBleGlzdGluZ1ZhcmlhbnRcIlxyXG4gICAgPlxyXG4gICAgICAgIHt7ICdjb21tb24uY29uZmlybScgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXByb2R1Y3QtdmFyaWFudC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jYXRhbG9nL3NyYy9jb21wb25lbnRzL2NyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nL2NyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBZSxXQUFXLEVBQWMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7O0FBUXRFLE1BQU0sT0FBTyxtQ0FBbUM7SUFVNUMsWUFBb0IsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFQNUMsU0FBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQzFCLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQy9CLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQzlCLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBUyxFQUFFLENBQUM7U0FDL0MsQ0FBQyxDQUFDO0lBRzRDLENBQUM7SUFFaEQsUUFBUTtRQUNKLEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDaEQsSUFBSSxDQUFDLElB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dkMsSUFBSTtpQkFDUDthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEVBQVU7UUFDakMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7SUFDMUUsQ0FBQztJQUVPLGtCQUFrQixDQUFDLElBQVk7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUUsQ0FBQzs4R0E1RVEsbUNBQW1DO2tHQUFuQyxtQ0FBbUMseUVDWGhELGc0RUEyREE7OzJGRGhEYSxtQ0FBbUM7a0JBTi9DLFNBQVM7K0JBQ0ksbUNBQW1DLG1CQUc1Qix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybVJlY29yZCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ3JlYXRlUHJvZHVjdFZhcmlhbnRJbnB1dCwgRGlhbG9nLCBHZXRQcm9kdWN0VmFyaWFudE9wdGlvbnNRdWVyeSB9IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWNyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVhdGVQcm9kdWN0VmFyaWFudERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIERpYWxvZzxDcmVhdGVQcm9kdWN0VmFyaWFudElucHV0PiwgT25Jbml0IHtcclxuICAgIHJlc29sdmVXaXRoOiAocmVzdWx0PzogQ3JlYXRlUHJvZHVjdFZhcmlhbnRJbnB1dCkgPT4gdm9pZDtcclxuICAgIHByb2R1Y3Q6IE5vbk51bGxhYmxlPEdldFByb2R1Y3RWYXJpYW50T3B0aW9uc1F1ZXJ5Wydwcm9kdWN0J10+O1xyXG4gICAgZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAgIG5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgc2t1OiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgIG9wdGlvbnM6IHRoaXMuZm9ybUJ1aWxkZXIucmVjb3JkPHN0cmluZz4oe30pLFxyXG4gICAgfSk7XHJcbiAgICBleGlzdGluZ1ZhcmlhbnQ6IE5vbk51bGxhYmxlPEdldFByb2R1Y3RWYXJpYW50T3B0aW9uc1F1ZXJ5Wydwcm9kdWN0J10+Wyd2YXJpYW50cyddW251bWJlcl0gfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBvcHRpb25Hcm91cCBvZiB0aGlzLnByb2R1Y3Qub3B0aW9uR3JvdXBzKSB7XHJcbiAgICAgICAgICAgICh0aGlzLmZvcm0uZ2V0KCdvcHRpb25zJykgYXMgRm9ybVJlY29yZCkuYWRkQ29udHJvbChcclxuICAgICAgICAgICAgICAgIG9wdGlvbkdyb3VwLmNvZGUsXHJcbiAgICAgICAgICAgICAgICBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBvcHRpb25zUmVjb3JkID0gdGhpcy5mb3JtLmdldCgnb3B0aW9ucycpIGFzIEZvcm1SZWNvcmQ7XHJcbiAgICAgICAgb3B0aW9uc1JlY29yZC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbmFtZUNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KCduYW1lJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGFsbE51bGwgPSBPYmplY3QudmFsdWVzKHZhbHVlKS5ldmVyeSh2ID0+IHYgPT0gbnVsbCk7XHJcbiAgICAgICAgICAgIGlmICghYWxsTnVsbCAmJiB2YWx1ZSAmJiBuYW1lQ29udHJvbCAmJiAhbmFtZUNvbnRyb2wuZGlydHkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBPYmplY3QuZW50cmllcyh2YWx1ZSlcclxuICAgICAgICAgICAgICAgICAgICAubWFwKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoW2dyb3VwQ29kZSwgb3B0aW9uSWRdKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0Lm9wdGlvbkdyb3Vwc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKG9nID0+IG9nLmNvZGUgPT09IGdyb3VwQ29kZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Lm9wdGlvbnMuZmluZChvID0+IG8uaWQgPT09IG9wdGlvbklkKT8ubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJyAnKTtcclxuICAgICAgICAgICAgICAgIG5hbWVDb250cm9sLnNldFZhbHVlKGAke3RoaXMucHJvZHVjdC5uYW1lfSAke25hbWV9YCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgYWxsU2VsZWN0ZWQgPSBPYmplY3QudmFsdWVzKHZhbHVlKS5ldmVyeSh2ID0+IHYgIT0gbnVsbCk7XHJcbiAgICAgICAgICAgIGlmIChhbGxTZWxlY3RlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5leGlzdGluZ1ZhcmlhbnQgPSB0aGlzLnByb2R1Y3QudmFyaWFudHMuZmluZCh2ID0+XHJcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXModmFsdWUpLmV2ZXJ5KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoW2dyb3VwQ29kZSwgb3B0aW9uSWRdKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5vcHRpb25zLmZpbmQobyA9PiBvLmdyb3VwSWQgPT09IHRoaXMuZ2V0R3JvdXBJZEZyb21Db2RlKGdyb3VwQ29kZSkpPy5pZCA9PT1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uZmlybSgpIHtcclxuICAgICAgICBjb25zdCB7IG5hbWUsIHNrdSwgb3B0aW9ucyB9ID0gdGhpcy5mb3JtLnZhbHVlO1xyXG4gICAgICAgIGlmICghbmFtZSB8fCAhc2t1IHx8ICFvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uSWRzID0gT2JqZWN0LnZhbHVlcyhvcHRpb25zKS5maWx0ZXIobm90TnVsbE9yVW5kZWZpbmVkKTtcclxuICAgICAgICB0aGlzLnJlc29sdmVXaXRoKHtcclxuICAgICAgICAgICAgcHJvZHVjdElkOiB0aGlzLnByb2R1Y3QuaWQsXHJcbiAgICAgICAgICAgIHNrdSxcclxuICAgICAgICAgICAgb3B0aW9uSWRzLFxyXG4gICAgICAgICAgICB0cmFuc2xhdGlvbnM6IFtcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZUNvZGU6IHRoaXMucHJvZHVjdC5sYW5ndWFnZUNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2FuY2VsKCkge1xyXG4gICAgICAgIHRoaXMucmVzb2x2ZVdpdGgoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEdyb3VwQ29kZUZyb21JZChpZDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9kdWN0Lm9wdGlvbkdyb3Vwcy5maW5kKG9nID0+IG9nLmlkID09PSBpZCk/LmNvZGUgPz8gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRHcm91cElkRnJvbUNvZGUoY29kZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9kdWN0Lm9wdGlvbkdyb3Vwcy5maW5kKG9nID0+IG9nLmNvZGUgPT09IGNvZGUpPy5pZCA/PyAnJztcclxuICAgIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgdmRyRGlhbG9nVGl0bGU+XHJcbiAgICB7eyAnY2F0YWxvZy5jcmVhdGUtcHJvZHVjdC12YXJpYW50JyB8IHRyYW5zbGF0ZSB9fVxyXG48L25nLXRlbXBsYXRlPlxyXG48Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIj5cclxuICAgIDxkaXYgZm9ybUdyb3VwTmFtZT1cIm9wdGlvbnNcIiBjbGFzcz1cImZvcm0tZ3JpZFwiPlxyXG4gICAgICAgIDx2ZHItZm9ybS1maWVsZCBbbGFiZWxdPVwib3B0aW9uR3JvdXAubmFtZVwiICpuZ0Zvcj1cImxldCBvcHRpb25Hcm91cCBvZiBwcm9kdWN0Lm9wdGlvbkdyb3Vwc1wiPlxyXG4gICAgICAgICAgICA8bmctc2VsZWN0XHJcbiAgICAgICAgICAgICAgICBbaXRlbXNdPVwib3B0aW9uR3JvdXAub3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvbkdyb3VwLmNvZGVcIlxyXG4gICAgICAgICAgICAgICAgYmluZExhYmVsPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICBiaW5kVmFsdWU9XCJpZFwiXHJcbiAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvbmctc2VsZWN0PlxyXG4gICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPGNsci1hbGVydFxyXG4gICAgICAgICAgICAqbmdJZj1cInByb2R1Y3Qub3B0aW9uR3JvdXBzLmxlbmd0aCA9PT0gMFwiXHJcbiAgICAgICAgICAgIGNsckFsZXJ0VHlwZT1cIndhcm5pbmdcIlxyXG4gICAgICAgICAgICBbY2xyQWxlcnRDbG9zYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1ncmlkLXNwYW5cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGNsci1hbGVydC1pdGVtPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhbGVydC10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ2NhdGFsb2cuY2Fubm90LWNyZWF0ZS12YXJpYW50cy13aXRob3V0LW9wdGlvbnMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvY2xyLWFsZXJ0LWl0ZW0+XHJcbiAgICAgICAgPC9jbHItYWxlcnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJleGlzdGluZ1ZhcmlhbnRcIiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgICA8Y2xyLWFsZXJ0IGNsckFsZXJ0VHlwZT1cIndhcm5pbmdcIiBbY2xyQWxlcnRDbG9zYWJsZV09XCJmYWxzZVwiIGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgIDxjbHItYWxlcnQtaXRlbT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWxlcnQtdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdjYXRhbG9nLnByb2R1Y3QtdmFyaWFudC1leGlzdHMnIHwgdHJhbnNsYXRlIH19OiB7eyBleGlzdGluZ1ZhcmlhbnQubmFtZSB9fSAoe3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdWYXJpYW50LnNrdVxyXG4gICAgICAgICAgICAgICAgICAgIH19KVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Nsci1hbGVydC1pdGVtPlxyXG4gICAgICAgIDwvY2xyLWFsZXJ0PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncmlkIG10LTJcIj5cclxuICAgICAgICA8dmRyLWZvcm0tZmllbGQgW2xhYmVsXT1cIidjb21tb24ubmFtZScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIC8+XHJcbiAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICA8dmRyLWZvcm0tZmllbGQgW2xhYmVsXT1cIidjYXRhbG9nLnNrdScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwic2t1XCIgLz5cclxuICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbjwvZm9ybT5cclxuPG5nLXRlbXBsYXRlIHZkckRpYWxvZ0J1dHRvbnM+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJjYW5jZWwoKVwiPnt7ICdjb21tb24uY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgIChjbGljayk9XCJjb25maXJtKClcIlxyXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkIHx8IGV4aXN0aW5nVmFyaWFudCB8fCBwcm9kdWN0Lm9wdGlvbkdyb3Vwcy5sZW5ndGggPT09IDBcIlxyXG4gICAgPlxyXG4gICAgICAgIHt7ICdjb21tb24uY29uZmlybScgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=