@veloceapps/sdk 11.0.0-1 → 11.0.0-10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (30) hide show
  1. package/cms/cms.actions.d.ts +0 -40
  2. package/cms/vendor-map.d.ts +10 -21
  3. package/core/modules/configuration/services/configuration-state.service.d.ts +0 -4
  4. package/core/modules/configuration/services/configuration.service.d.ts +5 -1
  5. package/core/modules/configuration/services/runtime-context.service.d.ts +1 -1
  6. package/core/modules/configuration/types/configuration-runtime.types.d.ts +2 -0
  7. package/core/types/flow-customization.types.d.ts +0 -12
  8. package/esm2020/cms/cms.actions.mjs +1 -36
  9. package/esm2020/cms/components/element-tools-panel/element-tools-panel.component.mjs +3 -3
  10. package/esm2020/cms/vendor-map.mjs +4 -9
  11. package/esm2020/core/modules/configuration/services/configuration-runtime.service.mjs +4 -2
  12. package/esm2020/core/modules/configuration/services/configuration-state.service.mjs +2 -3
  13. package/esm2020/core/modules/configuration/services/configuration.service.mjs +29 -10
  14. package/esm2020/core/modules/configuration/services/runtime-context.service.mjs +5 -3
  15. package/esm2020/core/modules/configuration/types/configuration-runtime.types.mjs +1 -1
  16. package/esm2020/core/types/flow-customization.types.mjs +1 -1
  17. package/esm2020/src/pages/product/product.component.mjs +9 -2
  18. package/fesm2015/veloceapps-sdk-cms.mjs +15 -52
  19. package/fesm2015/veloceapps-sdk-cms.mjs.map +1 -1
  20. package/fesm2015/veloceapps-sdk-core.mjs +32 -14
  21. package/fesm2015/veloceapps-sdk-core.mjs.map +1 -1
  22. package/fesm2015/veloceapps-sdk.mjs +9 -2
  23. package/fesm2015/veloceapps-sdk.mjs.map +1 -1
  24. package/fesm2020/veloceapps-sdk-cms.mjs +7 -54
  25. package/fesm2020/veloceapps-sdk-cms.mjs.map +1 -1
  26. package/fesm2020/veloceapps-sdk-core.mjs +34 -14
  27. package/fesm2020/veloceapps-sdk-core.mjs.map +1 -1
  28. package/fesm2020/veloceapps-sdk.mjs +8 -1
  29. package/fesm2020/veloceapps-sdk.mjs.map +1 -1
  30. package/package.json +1 -1
@@ -41,46 +41,6 @@ export declare namespace FlowAction {
41
41
  }) => IntegrationAction;
42
42
  const OpenDialog: (dialog: string) => IntegrationAction;
43
43
  }
44
- /**
45
- * @deprecated
46
- * Use FlowAction namespace instead
47
- */
48
- export declare const ConfigureProductAction: ({ lineItemId, productId, }: {
49
- lineItemId?: string | undefined;
50
- productId?: string | undefined;
51
- }) => IntegrationAction;
52
- /**
53
- * @deprecated
54
- * Use FlowAction namespace instead
55
- */
56
- export declare const NavigateBackAction: () => IntegrationAction;
57
- /**
58
- * @deprecated
59
- * Use FlowAction namespace instead
60
- */
61
- export declare const NavigateToCatalogAction: () => IntegrationAction;
62
- /**
63
- * @deprecated
64
- * Use FlowAction namespace instead
65
- */
66
- export declare const ApplyProductConfigurationAction: () => IntegrationAction;
67
- /**
68
- * @deprecated
69
- * Use FlowAction namespace instead
70
- */
71
- export declare const RemoteApplyAction: () => IntegrationAction;
72
- /**
73
- * @deprecated
74
- * Use FlowAction namespace instead
75
- */
76
- export declare const RemoteCancelAction: () => IntegrationAction;
77
- /**
78
- * @deprecated
79
- * Use FlowAction namespace instead
80
- */
81
- export declare const SwitchObjectAction: (payload: {
82
- id: string;
83
- }) => IntegrationAction;
84
44
  export declare namespace CmsAction {
85
45
  const GO_TO_PAGE = "[CMS]_GO_TO_PAGE";
86
46
  const UPDATE_CUSTOMIZATION = "[CMS]_UPDATE_CUSTOMIZATION";
@@ -3,7 +3,7 @@ import * as angularCore from '@angular/core';
3
3
  import * as angularForms from '@angular/forms';
4
4
  import { CatalogApiService, ConfigurationSettingsApiService, ContractedPriceApiService, DeltaApiService, DocumentAttachmentApiService, GuidedSellingApiService, PicklistsApiService, PriceApiService, QuoteApiService, RampApiService, SalesforceApiService, ShoppingCartSettingsApiService } from '@veloceapps/api';
5
5
  import { ToastService, ToastType } from '@veloceapps/components';
6
- import { ConfigurationContextMode, Operator, Predicate, parseJsonSafely, parseJwt } from '@veloceapps/core';
6
+ import { ConfigurationContextMode, Operator, Predicate, TokenInfoService, parseJsonSafely, parseJwt } from '@veloceapps/core';
7
7
  import { ActionCodePipe, ConfigurationService, ConfigurationStateService, ContextService, DatePipe, FlowConfigurationService, FlowStateConfigurationService, FlowStateService, IntegrationState, LineItemWorker, NumberPipe, PricePipe, ProductImagesService, QuoteDraftService, RuntimeSettingsService } from '@veloceapps/sdk/core';
8
8
  import lodash from 'lodash';
9
9
  import * as rxjs from 'rxjs';
@@ -12,14 +12,6 @@ import * as cmsActions from './cms.actions';
12
12
  import { ResourcesService } from './services/resources.service';
13
13
  import { TemplatesService } from './services/templates.service';
14
14
  export declare const vendorMap: {
15
- '@angular/core': typeof angularCore;
16
- '@angular/forms': typeof angularForms;
17
- '@angular/cdk/collections': {
18
- DataSource: typeof DataSource;
19
- };
20
- rxjs: typeof rxjs;
21
- 'rxjs/operators': typeof rxjsOperators;
22
- lodash: lodash.LoDashStatic;
23
15
  '@veloceapps/core': {
24
16
  isDefined: <T>(value: T) => value is Exclude<T, null | undefined>;
25
17
  Operator: typeof Operator;
@@ -27,6 +19,7 @@ export declare const vendorMap: {
27
19
  parseJsonSafely: typeof parseJsonSafely;
28
20
  ConfigurationContextMode: typeof ConfigurationContextMode;
29
21
  parseJwt: typeof parseJwt;
22
+ TokenInfoService: typeof TokenInfoService;
30
23
  };
31
24
  '@veloceapps/components': {
32
25
  ToastService: typeof ToastService;
@@ -92,18 +85,6 @@ export declare const vendorMap: {
92
85
  ResourcesService: typeof ResourcesService;
93
86
  cmsInject: <T_2 = unknown>(token: string) => T_2;
94
87
  FlowAction: typeof cmsActions.FlowAction;
95
- ConfigureProductAction: ({ lineItemId, productId, }: {
96
- lineItemId?: string | undefined;
97
- productId?: string | undefined;
98
- }) => import("@veloceapps/sdk/core").IntegrationAction<any>;
99
- NavigateBackAction: () => import("@veloceapps/sdk/core").IntegrationAction<any>;
100
- NavigateToCatalogAction: () => import("@veloceapps/sdk/core").IntegrationAction<any>;
101
- ApplyProductConfigurationAction: () => import("@veloceapps/sdk/core").IntegrationAction<any>;
102
- RemoteApplyAction: () => import("@veloceapps/sdk/core").IntegrationAction<any>;
103
- RemoteCancelAction: () => import("@veloceapps/sdk/core").IntegrationAction<any>;
104
- SwitchObjectAction: (payload: {
105
- id: string;
106
- }) => import("@veloceapps/sdk/core").IntegrationAction<any>;
107
88
  CmsAction: typeof cmsActions.CmsAction;
108
89
  DEFAULT_PLUGINS_TOKEN: angularCore.InjectionToken<typeof import("./engine/models/plugin").Plugin[]>;
109
90
  UI_DEFINITION_METADATA: angularCore.InjectionToken<import("@veloceapps/core").UIDefinitionMetadata>;
@@ -111,5 +92,13 @@ export declare const vendorMap: {
111
92
  SHARED_ELEMENT_METADATA: angularCore.InjectionToken<import("@veloceapps/sdk/cms").ElementMetadata | undefined>;
112
93
  ELEMENT_CONFIG: angularCore.InjectionToken<import("@veloceapps/sdk/cms").ElementConfig>;
113
94
  };
95
+ '@angular/core': typeof angularCore;
96
+ '@angular/forms': typeof angularForms;
97
+ '@angular/cdk/collections': {
98
+ DataSource: typeof DataSource;
99
+ };
100
+ rxjs: typeof rxjs;
101
+ 'rxjs/operators': typeof rxjsOperators;
102
+ lodash: lodash.LoDashStatic;
114
103
  };
115
104
  export type VendorMap = typeof vendorMap;
@@ -40,10 +40,6 @@ export declare class ConfigurationStateService {
40
40
  select$<Response = unknown>(selectorName: string, inputData?: unknown): Observable<FlowStateSelectorResponse<Response>>;
41
41
  subscribe$<Response = unknown>(selectorName: string, inputData?: unknown, options?: FlowStateSubscriptionOptions): Observable<FlowStateSelectorResponse<Response>>;
42
42
  saveConfiguration(flow?: boolean): Observable<SaveQuoteResponse>;
43
- /**
44
- * @deprecated Will be removed in @veloceapps/sdk@9
45
- */
46
- saveConfiguration(quoteId?: string, flow?: boolean): Observable<SaveQuoteResponse>;
47
43
  cancelConfiguration(): Observable<void>;
48
44
  private get isStatefulConfiguration();
49
45
  private initStateful$;
@@ -5,6 +5,7 @@ import { MessageService } from 'primeng/api';
5
5
  import { DialogService } from 'primeng/dynamicdialog';
6
6
  import { Observable } from 'rxjs';
7
7
  import { ContextService } from '../../../services/context.service';
8
+ import { FlowInfoService } from '../../../services/flow-info.service';
8
9
  import { QuoteDraftService } from '../../../services/quote-draft.service';
9
10
  import { RuntimeSettingsService } from '../../../services/runtime-settings.service';
10
11
  import { RuntimeContext } from '../../../types';
@@ -19,6 +20,7 @@ export declare class ConfigurationService {
19
20
  private messageService;
20
21
  private dialogService;
21
22
  private runtimeSettings;
23
+ private flowInfoService;
22
24
  private mode;
23
25
  private configurableRamp;
24
26
  private configurationState;
@@ -26,7 +28,7 @@ export declare class ConfigurationService {
26
28
  private isLoadingSubj$;
27
29
  isLoading$: Observable<boolean>;
28
30
  hasUnsavedChanges: boolean;
29
- constructor(quoteDraftService: QuoteDraftService, runtimeService: ConfigurationRuntimeService, contextService: ContextService, configurationApiService: ConfigurationApiService, messageService: MessageService, dialogService: DialogService, runtimeSettings: RuntimeSettingsService);
31
+ constructor(quoteDraftService: QuoteDraftService, runtimeService: ConfigurationRuntimeService, contextService: ContextService, configurationApiService: ConfigurationApiService, messageService: MessageService, dialogService: DialogService, runtimeSettings: RuntimeSettingsService, flowInfoService: FlowInfoService);
30
32
  reset(): void;
31
33
  patch$(lineItem: LineItem, options?: PatchLineItemOptions): Observable<LineItem>;
32
34
  patch(lineItem: LineItem, options?: PatchLineItemOptions): void;
@@ -55,6 +57,8 @@ export declare class ConfigurationService {
55
57
  getAsset(): LineItem | undefined;
56
58
  private getUIDefinitionProperties;
57
59
  private showInactiveProductsConfirmation;
60
+ private extendedConfigureLineItem$;
61
+ private extendConfigurationRequest;
58
62
  static ɵfac: i0.ɵɵFactoryDeclaration<ConfigurationService, never>;
59
63
  static ɵprov: i0.ɵɵInjectableDeclaration<ConfigurationService>;
60
64
  }
@@ -5,7 +5,7 @@ import * as i0 from "@angular/core";
5
5
  export declare class RuntimeContextService {
6
6
  private configurationApiService;
7
7
  constructor(configurationApiService: ConfigurationApiService);
8
- getRuntimeContext(productId: string, offeringId?: string): Observable<RuntimeContext>;
8
+ getRuntimeContext(productId: string, offeringId?: string, defaultUIDefinitionId?: string, requiredUIDefinitionId?: string): Observable<RuntimeContext>;
9
9
  private getUIDefinitionContainer;
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<RuntimeContextService, never>;
11
11
  static ɵprov: i0.ɵɵInjectableDeclaration<RuntimeContextService>;
@@ -3,4 +3,6 @@ export interface RuntimeInitializationProps {
3
3
  offeringId?: string;
4
4
  defaultQty?: number;
5
5
  attributesMap?: Record<string, any>;
6
+ defaultUIDefinitionId?: string;
7
+ requiredUIDefinitionId?: string;
6
8
  }
@@ -4,18 +4,6 @@ import { Observable } from 'rxjs';
4
4
  export declare const FLOW_CUSTOMIZATION: InjectionToken<FlowCustomization>;
5
5
  export interface FlowCustomization {
6
6
  getUiDefinition?(productId: string): Observable<UIDefinitionContainer | null>;
7
- /**
8
- * @deprecated Use `getTemplateComponents` instead
9
- */
10
- getShoppingCartComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;
11
- /**
12
- * @deprecated Use `getTemplateComponents` instead
13
- */
14
- getCatalogComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;
15
- /**
16
- * @deprecated Use `getTemplateComponents` instead
17
- */
18
- getAssetsComponent?(templateName: string): Observable<TemplateComponentWithAttachments | null>;
19
7
  getTemplates?(): Observable<UITemplate[]>;
20
8
  getTemplateComponents?(templateName: string): Observable<TemplateComponentWithAttachments[] | null>;
21
9
  getTemplateConfigurationProcessors?(templateName: string): Observable<ConfigurationProcessor[] | null>;
@@ -62,41 +62,6 @@ export var FlowAction;
62
62
  payload: { dialog },
63
63
  });
64
64
  })(FlowAction || (FlowAction = {}));
65
- /**
66
- * @deprecated
67
- * Use FlowAction namespace instead
68
- */
69
- export const ConfigureProductAction = FlowAction.ConfigureProductAction;
70
- /**
71
- * @deprecated
72
- * Use FlowAction namespace instead
73
- */
74
- export const NavigateBackAction = FlowAction.NavigateBackAction;
75
- /**
76
- * @deprecated
77
- * Use FlowAction namespace instead
78
- */
79
- export const NavigateToCatalogAction = FlowAction.NavigateToCatalogAction;
80
- /**
81
- * @deprecated
82
- * Use FlowAction namespace instead
83
- */
84
- export const ApplyProductConfigurationAction = FlowAction.ApplyProductConfigurationAction;
85
- /**
86
- * @deprecated
87
- * Use FlowAction namespace instead
88
- */
89
- export const RemoteApplyAction = FlowAction.RemoteApplyAction;
90
- /**
91
- * @deprecated
92
- * Use FlowAction namespace instead
93
- */
94
- export const RemoteCancelAction = FlowAction.RemoteCancelAction;
95
- /**
96
- * @deprecated
97
- * Use FlowAction namespace instead
98
- */
99
- export const SwitchObjectAction = FlowAction.SwitchObjectAction;
100
65
  export var CmsAction;
101
66
  (function (CmsAction) {
102
67
  CmsAction.GO_TO_PAGE = '[CMS]_GO_TO_PAGE';
@@ -161,4 +126,4 @@ export var CmsAction;
161
126
  type: CmsAction.HIDE_ALL_OVERLAYS,
162
127
  });
163
128
  })(CmsAction || (CmsAction = {}));
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY21zLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxLQUFXLFVBQVUsQ0FpRjFCO0FBakZELFdBQWlCLFVBQVU7SUFDWixpQ0FBc0IsR0FBRywwQkFBMEIsQ0FBQztJQUNwRCw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1QywyQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQztJQUN4QyxtQ0FBd0IsR0FBRyw0QkFBNEIsQ0FBQztJQUN4RCx5Q0FBOEIsR0FBRyxrQ0FBa0MsQ0FBQztJQUNwRSwyQ0FBZ0MsR0FBRyxvQ0FBb0MsQ0FBQztJQUN4RSw0QkFBaUIsR0FBRyxxQkFBcUIsQ0FBQztJQUMxQyw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1Qyw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1Qyx1QkFBWSxHQUFHLHFCQUFxQixDQUFDO0lBQ3JDLHdCQUFhLEdBQUcsc0JBQXNCLENBQUM7SUFDdkMsOEJBQW1CLEdBQUcsNEJBQTRCLENBQUM7SUFDbkQsZ0NBQXFCLEdBQUcsOEJBQThCLENBQUM7SUFDdkQsK0JBQW9CLEdBQUcsNkJBQTZCLENBQUM7SUFDckQsc0JBQVcsR0FBRyxvQkFBb0IsQ0FBQztJQUVuQyxpQ0FBc0IsR0FBRyxDQUFDLEVBQ3JDLFVBQVUsRUFDVixTQUFTLEdBSVYsRUFBcUIsRUFBRSxDQUFDLENBQUM7UUFDeEIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxzQkFBc0I7UUFDdkMsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRTtLQUNuQyxDQUFDLENBQUM7SUFFVSw2QkFBa0IsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztRQUMxRCxJQUFJLEVBQUUsVUFBVSxDQUFDLGtCQUFrQjtLQUNwQyxDQUFDLENBQUM7SUFFVSwyQkFBZ0IsR0FBRyxDQUFDLElBQVksRUFB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bGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZSAqL1xuaW1wb3J0IHsgQ3VzdG9taXphdGlvbkNoYW5nZXMgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IEludGVncmF0aW9uQWN0aW9uIH0gZnJvbSAnQHZlbG9jZWFwcHMvc2RrL2NvcmUnO1xuXG5leHBvcnQgbmFtZXNwYWNlIEZsb3dBY3Rpb24ge1xuICBleHBvcnQgY29uc3QgRkxPV19DT05GSUdVUkVfUFJPRFVDVCA9ICdbRkxPV11fQ09ORklHVVJFX1BST0RVQ1QnO1xuICBleHBvcnQgY29uc3QgRkxPV19OQVZJR0FURV9CQUNLID0gJ1tGTE9XXV9OQVZJR0FURV9CQUNLJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfTkFWSUdBVEVfVE8gPSAnW0ZMT1ddX05BVklHQVRFX1RPJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfTkFWSUdBVEVfVE9fQ0FUQUxPRyA9ICdbRkxPV11fTkFWSUdBVEVfVE9fQ0FUQUxPRyc7XG4gIGV4cG9ydCBjb25zdCBGTE9XX05BVklHQVRFX1RPX1NIT1BQSU5HX0NBUlQgPSAnW0ZMT1ddX05BVklHQVRFX1RPX1NIT1BQSU5HX0NBUlQnO1xuICBleHBvcnQgY29uc3QgRkxPV19BUFBMWV9QUk9EVUNUX0NPTkZJR1VSQVRJT04gPSAnW0ZMT1ddX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTic7XG4gIGV4cG9ydCBjb25zdCBGTE9XX09QRU5fRE9DX0dFTiA9ICdbRkxPV11fT1BFTl9ET0NfR0VOJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfQ0xPU0VfRE9DX0dFTiA9ICdbRkxPV11fQ0xPU0VfRE9DX0dFTic7XG4gIGV4cG9ydCBjb25zdCBGTE9XX1NXSVRDSF9PQkpFQ1QgPSAnW0ZMT1ddX1NXSVRDSF9PQkpFQ1QnO1xuICBleHBvcnQgY29uc3QgUkVNT1RFX0FQUExZID0gJ1tGTE9XXV9SRU1PVEVfQVBQTFknO1xuICBleHBvcnQgY29uc3QgUkVNT1RFX0NBTkNFTCA9ICdbRkxPV11fUkVNT1RFX0NBTkNFTCc7XG4gIGV4cG9ydCBjb25zdCBPUEVOX0dVSURFRF9TRUxMSU5HID0gJ1tGTE9XXV9PUEVOX0dVSURFRF9TRUxMSU5HJztcbiAgZXhwb3J0IGNvbnN0IFNVQk1JVF9HVUlERURfU0VMTElORyA9ICdbRkxPV11fU1VCTUlUX0dVSURFRF9TRUxMSU5HJztcbiAgZXhwb3J0IGNvbnN0IENMT1NFX0dVSURFRF9TRUxMSU5HID0gJ1tGTE9XXV9DTE9TRV9HVUlERURfU0VMTElORyc7XG4gIGV4cG9ydCBjb25zdCBPUEVOX0RJQUxPRyA9ICdbRkxPV11fT1BFTl9ESUFMT0cnO1xuXG4gIGV4cG9ydCBjb25zdCBDb25maWd1cmVQcm9kdWN0QWN0aW9uID0gKHtcbiAgICBsaW5lSXRlbUlkLFxuICAgIHByb2R1Y3RJZCxcbiAgfToge1xuICAgIGxpbmVJdGVtSWQ/OiBzdHJpbmc7XG4gICAgcHJvZHVjdElkPzogc3RyaW5nO1xuICB9KTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfQ09ORklHVVJFX1BST0RVQ1QsXG4gICAgcGF5bG9hZDogeyBsaW5lSXRlbUlkLCBwcm9kdWN0SWQgfSxcbiAgfSk7XG5cbiAgZXhwb3J0IGNvbnN0IE5hdmlnYXRlQmFja0FjdGlvbiA9ICgpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19OQVZJR0FURV9CQUNLLFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgTmF2aWdhdGVUb0FjdGlvbiA9IChwYXRoOiBzdHJpbmcsIHByb2R1Y3RJZD86IHN0cmluZywgbGluZUl0ZW1JZD86IHN0cmluZyk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX1RPLFxuICAgIHBheWxvYWQ6IHsgcGF0aCwgcHJvZHVjdElkLCBsaW5lSXRlbUlkIH0sXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBOYXZpZ2F0ZVRvQ2F0YWxvZ0FjdGlvbiA9ICgpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19OQVZJR0FURV9UT19DQVRBTE9HLFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgTmF2aWdhdGVUb1Nob3BwaW5nQ2FydEFjdGlvbiA9ICgpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19OQVZJR0FURV9UT19TSE9QUElOR19DQVJULFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgQXBwbHlQcm9kdWN0Q29uZmlndXJhdGlvbkFjdGlvbiA9ICgpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19BUFBMWV9QUk9EVUNUX0NPTkZJR1VSQVRJT04sXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBSZW1vdGVBcHBseUFjdGlvbiA9ICgpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uUkVNT1RFX0FQUExZLFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgUmVtb3RlQ2FuY2VsQWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5SRU1PVEVfQ0FOQ0VMLFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgU3dpdGNoT2JqZWN0QWN0aW9uID0gKHBheWxvYWQ6IHsgaWQ6IHN0cmluZyB9KTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfU1dJVENIX09CSkVDVCxcbiAgICBwYXlsb2FkLFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgT3Blbkd1aWRlZFNlbGxpbmcgPSAocGF5bG9hZDogeyBndWlkZWRTZWxsaW5nSWQ6IHN0cmluZyB9KTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBGbG93QWN0aW9uLk9QRU5fR1VJREVEX1NFTExJTkcsXG4gICAgcGF5bG9hZCxcbiAgfSk7XG5cbiAgZXhwb3J0IGNvbnN0IENsb3NlR3VpZGVkU2VsbGluZyA9IChwYXlsb2FkPzogeyBrZWVwU3RhdGU/OiBib29sZWFuIH0pOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uQ0xPU0VfR1VJREVEX1NFTExJTkcsXG4gICAgcGF5bG9hZCxcbiAgfSk7XG5cbiAgZXhwb3J0IGNvbnN0IFN1Ym1pdEd1aWRlZFNlbGxpbmcgPSAocGF5bG9hZDogeyByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4gfSk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5TVUJNSVRfR1VJREVEX1NFTExJTkcsXG4gICAgcGF5bG9hZCxcbiAgfSk7XG5cbiAgZXhwb3J0IGNvbnN0IE9wZW5EaWFsb2cgPSAoZGlhbG9nOiBzdHJpbmcpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uT1BFTl9ESUFMT0csXG4gICAgcGF5bG9hZDogeyBkaWFsb2cgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIFVzZSBGbG93QWN0aW9uIG5hbWVzcGFjZSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBDb25maWd1cmVQcm9kdWN0QWN0aW9uID0gRmxvd0FjdGlvbi5Db25maWd1cmVQcm9kdWN0QWN0aW9uO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBVc2UgRmxvd0FjdGlvbiBuYW1lc3BhY2UgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgTmF2aWdhdGVCYWNrQWN0aW9uID0gRmxvd0FjdGlvbi5OYXZpZ2F0ZUJhY2tBY3Rpb247XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIFVzZSBGbG93QWN0aW9uIG5hbWVzcGFjZSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBOYXZpZ2F0ZVRvQ2F0YWxvZ0FjdGlvbiA9IEZsb3dBY3Rpb24uTmF2aWdhdGVUb0NhdGFsb2dBY3Rpb247XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIFVzZSBGbG93QWN0aW9uIG5hbWVzcGFjZSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBBcHBseVByb2R1Y3RDb25maWd1cmF0aW9uQWN0aW9uID0gRmxvd0FjdGlvbi5BcHBseVByb2R1Y3RDb25maWd1cmF0aW9uQWN0aW9uO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBVc2UgRmxvd0FjdGlvbiBuYW1lc3BhY2UgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgUmVtb3RlQXBwbHlBY3Rpb24gPSBGbG93QWN0aW9uLlJlbW90ZUFwcGx5QWN0aW9uO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBVc2UgRmxvd0FjdGlvbiBuYW1lc3BhY2UgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgUmVtb3RlQ2FuY2VsQWN0aW9uID0gRmxvd0FjdGlvbi5SZW1vdGVDYW5jZWxBY3Rpb247XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIFVzZSBGbG93QWN0aW9uIG5hbWVzcGFjZSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBTd2l0Y2hPYmplY3RBY3Rpb24gPSBGbG93QWN0aW9uLlN3aXRjaE9iamVjdEFjdGlvbjtcblxuZXhwb3J0IG5hbWVzcGFjZSBDbXNBY3Rpb24ge1xuICBleHBvcnQgY29uc3QgR09fVE9fUEFHRSA9ICdbQ01TXV9HT19UT19QQUdFJztcbiAgZXhwb3J0IGNvbnN0IFVQREFURV9DVVNUT01JWkFUSU9OID0gJ1tDTVNdX1VQREFURV9DVVNUT01JWkFUSU9OJztcbiAgZXhwb3J0IGNvbnN0IEVNSVRfQ1VTVE9NSVpBVElPTl9DSEFOR0VTID0gJ1tDTVNdX0VNSVRfQ1VTVE9NSVpBVElPTl9DSEFOR0VTJztcbiAgZXhwb3J0IGNvbnN0IFNIT1dfT1ZFUkxBWSA9ICdbQ01TXV9TSE9XX09WRVJMQVknO1xuICBleHBvcnQgY29uc3QgSElERV9PVkVSTEFZID0gJ1tDTVNdX0hJREVfT1ZFUkxBWSc7XG4gIGV4cG9ydCBjb25zdCBISURFX0FMTF9PVkVSTEFZUyA9ICdbQ01TXV9ISURFX0FMTF9PVkVSTEFZUyc7XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRlIFVJIGRlZmluaXRpb24gdG8gYSBzcGVjaWZpYyBwYWdlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlTmFtZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBleHBvcnQgY29uc3QgR29Ub1BhZ2UgPSAocGFnZU5hbWU6IHN0cmluZyk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogR09fVE9fUEFHRSxcbiAgICBwYXlsb2FkOiB7IHBhZ2VOYW1lIH0sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgVUkgZGVmaW5pdGlvbiBjdXN0b21pemF0aW9uIHN0YXRlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlTmFtZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBleHBvcnQgY29uc3QgVXBkYXRlQ3VzdG9taXphdGlvbiA9ICh2YWx1ZTogYW55KTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBVUERBVEVfQ1VTVE9NSVpBVElPTixcbiAgICBwYXlsb2FkOiB7IHZhbHVlIH0sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBFbWl0IGN1c3RvbWl6YXRpb24gcGFnZSBjaGFuZ2VzXG4gICAqXG4gICAqIEBwYXJhbSBjaGFuZ2VzIC0gb2JqZWN0IHdpdGggY3VzdG9taXphdGlvbiBwYWdlIGNoYW5nZXNcbiAgICovXG4gIGV4cG9ydCBjb25zdCBFbWl0Q3VzdG9taXphdGlvbkNoYW5nZXMgPSAoY2hhbmdlczogQ3VzdG9taXphdGlvbkNoYW5nZXMpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEVNSVRfQ1VTVE9NSVpBVElPTl9DSEFOR0VTLFxuICAgIHBheWxvYWQ6IHsgY2hhbmdlcyB9LFxuICB9KTtcblxuICAvKipcbiAgICogU2hvdyBhbiBPdmVybGF5IG9uIHRoZSBzZWxlY3RlZCBwYWdlXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIC0gbmFtZSBvZiB0aGUgb3ZlcmxheVxuICAgKiBAcmV0dXJucyB2b2lkXG4gICAqL1xuICBleHBvcnQgY29uc3QgU2hvd092ZXJsYXkgPSAobmFtZTogc3RyaW5nKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBTSE9XX09WRVJMQVksXG4gICAgcGF5bG9hZDogeyBuYW1lIH0sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBIaWRlIGFuIE92ZXJsYXkgb24gdGhlIHNlbGVjdGVkIHBhZ2VcbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBuYW1lIG9mIHRoZSBvdmVybGF5XG4gICAqIEByZXR1cm5zIHZvaWRcbiAgICovXG4gIGV4cG9ydCBjb25zdCBIaWRlT3ZlcmxheSA9IChuYW1lOiBzdHJpbmcpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEhJREVfT1ZFUkxBWSxcbiAgICBwYXlsb2FkOiB7IG5hbWUgfSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEhpZGUgYWxsIE92ZXJsYXlzIG9uIHRoZSBzZWxlY3RlZCBwYWdlXG4gICAqXG4gICAqIEByZXR1cm5zIHZvaWRcbiAgICovXG4gIGV4cG9ydCBjb25zdCBIaWRlQWxsT3ZlcmxheXMgPSAoKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBISURFX0FMTF9PVkVSTEFZUyxcbiAgfSk7XG59XG4iXX0=
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3Nkay9jbXMvY21zLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxLQUFXLFVBQVUsQ0FpRjFCO0FBakZELFdBQWlCLFVBQVU7SUFDWixpQ0FBc0IsR0FBRywwQkFBMEIsQ0FBQztJQUNwRCw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1QywyQkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQztJQUN4QyxtQ0FBd0IsR0FBRyw0QkFBNEIsQ0FBQztJQUN4RCx5Q0FBOEIsR0FBRyxrQ0FBa0MsQ0FBQztJQUNwRSwyQ0FBZ0MsR0FBRyxvQ0FBb0MsQ0FBQztJQUN4RSw0QkFBaUIsR0FBRyxxQkFBcUIsQ0FBQztJQUMxQyw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1Qyw2QkFBa0IsR0FBRyxzQkFBc0IsQ0FBQztJQUM1Qyx1QkFBWSxHQUFHLHFCQUFxQixDQUFDO0lBQ3JDLHdCQUFhLEdBQUcsc0JBQXNCLENBQUM7SUFDdkMsOEJBQW1CLEdBQUcsNEJBQTRCLENBQUM7SUFDbkQsZ0NBQXFCLEdBQUcsOEJBQThCLENBQUM7SUFDdkQsK0JBQW9CLEdBQUcsNkJBQTZCLENBQUM7SUFDckQsc0JBQVcsR0FBRyxvQkFBb0IsQ0FBQztJQUVuQyxpQ0FBc0IsR0FBRyxDQUFDLEVBQ3JDLFVBQVUsRUFDVixTQUFTLEdBSVYsRUFBcUIsRUFBRSxDQUFDLENBQUM7UUFDeEIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxzQkFBc0I7UUFDdkMsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRTtLQUNuQyxDQUFDLENBQUM7SUFFVSw2QkFBa0IsR0FBRyxHQUFzQixFQUFFLENBQUMsQ0FBQztRQUMxRCxJQUFJLEVBQUUsVUFBVSxDQUFDLGtCQUFrQjtLQUNwQyxDQUFDLENBQUM7SUFFVSwyQkFBZ0IsR0FBRyxDQUFDLElBQVksRUFB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Ozs7O09BS0c7SUFDVSxxQkFBVyxHQUFHLENBQUMsSUFBWSxFQUFxQixFQUFFLENBQUMsQ0FBQztRQUMvRCxJQUFJLEVBQUUsVUFBQSxZQUFZO1FBQ2xCLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRTtLQUNsQixDQUFDLENBQUM7SUFFSDs7Ozs7T0FLRztJQUNVLHFCQUFXLEdBQUcsQ0FBQyxJQUFZLEVBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELElBQUksRUFBRSxVQUFBLFlBQVk7UUFDbEIsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFO0tBQ2xCLENBQUMsQ0FBQztJQUVIOzs7O09BSUc7SUFDVSx5QkFBZSxHQUFHLEdBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksRUFBRSxVQUFBLGlCQUFpQjtLQUN4QixDQUFDLENBQUM7QUFDTCxDQUFDLEVBcEVnQixTQUFTLEtBQVQsU0FBUyxRQW9FekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlICovXG5pbXBvcnQgeyBDdXN0b21pemF0aW9uQ2hhbmdlcyB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgSW50ZWdyYXRpb25BY3Rpb24gfSBmcm9tICdAdmVsb2NlYXBwcy9zZGsvY29yZSc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgRmxvd0FjdGlvbiB7XG4gIGV4cG9ydCBjb25zdCBGTE9XX0NPTkZJR1VSRV9QUk9EVUNUID0gJ1tGTE9XXV9DT05GSUdVUkVfUFJPRFVDVCc7XG4gIGV4cG9ydCBjb25zdCBGTE9XX05BVklHQVRFX0JBQ0sgPSAnW0ZMT1ddX05BVklHQVRFX0JBQ0snO1xuICBleHBvcnQgY29uc3QgRkxPV19OQVZJR0FURV9UTyA9ICdbRkxPV11fTkFWSUdBVEVfVE8nO1xuICBleHBvcnQgY29uc3QgRkxPV19OQVZJR0FURV9UT19DQVRBTE9HID0gJ1tGTE9XXV9OQVZJR0FURV9UT19DQVRBTE9HJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfTkFWSUdBVEVfVE9fU0hPUFBJTkdfQ0FSVCA9ICdbRkxPV11fTkFWSUdBVEVfVE9fU0hPUFBJTkdfQ0FSVCc7XG4gIGV4cG9ydCBjb25zdCBGTE9XX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTiA9ICdbRkxPV11fQVBQTFlfUFJPRFVDVF9DT05GSUdVUkFUSU9OJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfT1BFTl9ET0NfR0VOID0gJ1tGTE9XXV9PUEVOX0RPQ19HRU4nO1xuICBleHBvcnQgY29uc3QgRkxPV19DTE9TRV9ET0NfR0VOID0gJ1tGTE9XXV9DTE9TRV9ET0NfR0VOJztcbiAgZXhwb3J0IGNvbnN0IEZMT1dfU1dJVENIX09CSkVDVCA9ICdbRkxPV11fU1dJVENIX09CSkVDVCc7XG4gIGV4cG9ydCBjb25zdCBSRU1PVEVfQVBQTFkgPSAnW0ZMT1ddX1JFTU9URV9BUFBMWSc7XG4gIGV4cG9ydCBjb25zdCBSRU1PVEVfQ0FOQ0VMID0gJ1tGTE9XXV9SRU1PVEVfQ0FOQ0VMJztcbiAgZXhwb3J0IGNvbnN0IE9QRU5fR1VJREVEX1NFTExJTkcgPSAnW0ZMT1ddX09QRU5fR1VJREVEX1NFTExJTkcnO1xuICBleHBvcnQgY29uc3QgU1VCTUlUX0dVSURFRF9TRUxMSU5HID0gJ1tGTE9XXV9TVUJNSVRfR1VJREVEX1NFTExJTkcnO1xuICBleHBvcnQgY29uc3QgQ0xPU0VfR1VJREVEX1NFTExJTkcgPSAnW0ZMT1ddX0NMT1NFX0dVSURFRF9TRUxMSU5HJztcbiAgZXhwb3J0IGNvbnN0IE9QRU5fRElBTE9HID0gJ1tGTE9XXV9PUEVOX0RJQUxPRyc7XG5cbiAgZXhwb3J0IGNvbnN0IENvbmZpZ3VyZVByb2R1Y3RBY3Rpb24gPSAoe1xuICAgIGxpbmVJdGVtSWQsXG4gICAgcHJvZHVjdElkLFxuICB9OiB7XG4gICAgbGluZUl0ZW1JZD86IHN0cmluZztcbiAgICBwcm9kdWN0SWQ/OiBzdHJpbmc7XG4gIH0pOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19DT05GSUdVUkVfUFJPRFVDVCxcbiAgICBwYXlsb2FkOiB7IGxpbmVJdGVtSWQsIHByb2R1Y3RJZCB9LFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgTmF2aWdhdGVCYWNrQWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX0JBQ0ssXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBOYXZpZ2F0ZVRvQWN0aW9uID0gKHBhdGg6IHN0cmluZywgcHJvZHVjdElkPzogc3RyaW5nLCBsaW5lSXRlbUlkPzogc3RyaW5nKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBGbG93QWN0aW9uLkZMT1dfTkFWSUdBVEVfVE8sXG4gICAgcGF5bG9hZDogeyBwYXRoLCBwcm9kdWN0SWQsIGxpbmVJdGVtSWQgfSxcbiAgfSk7XG5cbiAgZXhwb3J0IGNvbnN0IE5hdmlnYXRlVG9DYXRhbG9nQWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX1RPX0NBVEFMT0csXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBOYXZpZ2F0ZVRvU2hvcHBpbmdDYXJ0QWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX05BVklHQVRFX1RPX1NIT1BQSU5HX0NBUlQsXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBBcHBseVByb2R1Y3RDb25maWd1cmF0aW9uQWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5GTE9XX0FQUExZX1BST0RVQ1RfQ09ORklHVVJBVElPTixcbiAgfSk7XG5cbiAgZXhwb3J0IGNvbnN0IFJlbW90ZUFwcGx5QWN0aW9uID0gKCk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5SRU1PVEVfQVBQTFksXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBSZW1vdGVDYW5jZWxBY3Rpb24gPSAoKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBGbG93QWN0aW9uLlJFTU9URV9DQU5DRUwsXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBTd2l0Y2hPYmplY3RBY3Rpb24gPSAocGF5bG9hZDogeyBpZDogc3RyaW5nIH0pOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uRkxPV19TV0lUQ0hfT0JKRUNULFxuICAgIHBheWxvYWQsXG4gIH0pO1xuXG4gIGV4cG9ydCBjb25zdCBPcGVuR3VpZGVkU2VsbGluZyA9IChwYXlsb2FkOiB7IGd1aWRlZFNlbGxpbmdJZDogc3RyaW5nIH0pOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEZsb3dBY3Rpb24uT1BFTl9HVUlERURfU0VMTElORyxcbiAgICBwYXlsb2FkLFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgQ2xvc2VHdWlkZWRTZWxsaW5nID0gKHBheWxvYWQ/OiB7IGtlZXBTdGF0ZT86IGJvb2xlYW4gfSk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5DTE9TRV9HVUlERURfU0VMTElORyxcbiAgICBwYXlsb2FkLFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgU3VibWl0R3VpZGVkU2VsbGluZyA9IChwYXlsb2FkOiB7IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55PiB9KTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBGbG93QWN0aW9uLlNVQk1JVF9HVUlERURfU0VMTElORyxcbiAgICBwYXlsb2FkLFxuICB9KTtcblxuICBleHBvcnQgY29uc3QgT3BlbkRpYWxvZyA9IChkaWFsb2c6IHN0cmluZyk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogRmxvd0FjdGlvbi5PUEVOX0RJQUxPRyxcbiAgICBwYXlsb2FkOiB7IGRpYWxvZyB9LFxuICB9KTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBDbXNBY3Rpb24ge1xuICBleHBvcnQgY29uc3QgR09fVE9fUEFHRSA9ICdbQ01TXV9HT19UT19QQUdFJztcbiAgZXhwb3J0IGNvbnN0IFVQREFURV9DVVNUT01JWkFUSU9OID0gJ1tDTVNdX1VQREFURV9DVVNUT01JWkFUSU9OJztcbiAgZXhwb3J0IGNvbnN0IEVNSVRfQ1VTVE9NSVpBVElPTl9DSEFOR0VTID0gJ1tDTVNdX0VNSVRfQ1VTVE9NSVpBVElPTl9DSEFOR0VTJztcbiAgZXhwb3J0IGNvbnN0IFNIT1dfT1ZFUkxBWSA9ICdbQ01TXV9TSE9XX09WRVJMQVknO1xuICBleHBvcnQgY29uc3QgSElERV9PVkVSTEFZID0gJ1tDTVNdX0hJREVfT1ZFUkxBWSc7XG4gIGV4cG9ydCBjb25zdCBISURFX0FMTF9PVkVSTEFZUyA9ICdbQ01TXV9ISURFX0FMTF9PVkVSTEFZUyc7XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRlIFVJIGRlZmluaXRpb24gdG8gYSBzcGVjaWZpYyBwYWdlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlTmFtZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBleHBvcnQgY29uc3QgR29Ub1BhZ2UgPSAocGFnZU5hbWU6IHN0cmluZyk6IEludGVncmF0aW9uQWN0aW9uID0+ICh7XG4gICAgdHlwZTogR09fVE9fUEFHRSxcbiAgICBwYXlsb2FkOiB7IHBhZ2VOYW1lIH0sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBVcGRhdGUgVUkgZGVmaW5pdGlvbiBjdXN0b21pemF0aW9uIHN0YXRlXG4gICAqXG4gICAqIEBwYXJhbSBwYWdlTmFtZSBuYW1lIG9mIHRoZSBwYWdlXG4gICAqL1xuICBleHBvcnQgY29uc3QgVXBkYXRlQ3VzdG9taXphdGlvbiA9ICh2YWx1ZTogYW55KTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBVUERBVEVfQ1VTVE9NSVpBVElPTixcbiAgICBwYXlsb2FkOiB7IHZhbHVlIH0sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBFbWl0IGN1c3RvbWl6YXRpb24gcGFnZSBjaGFuZ2VzXG4gICAqXG4gICAqIEBwYXJhbSBjaGFuZ2VzIC0gb2JqZWN0IHdpdGggY3VzdG9taXphdGlvbiBwYWdlIGNoYW5nZXNcbiAgICovXG4gIGV4cG9ydCBjb25zdCBFbWl0Q3VzdG9taXphdGlvbkNoYW5nZXMgPSAoY2hhbmdlczogQ3VzdG9taXphdGlvbkNoYW5nZXMpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEVNSVRfQ1VTVE9NSVpBVElPTl9DSEFOR0VTLFxuICAgIHBheWxvYWQ6IHsgY2hhbmdlcyB9LFxuICB9KTtcblxuICAvKipcbiAgICogU2hvdyBhbiBPdmVybGF5IG9uIHRoZSBzZWxlY3RlZCBwYWdlXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIC0gbmFtZSBvZiB0aGUgb3ZlcmxheVxuICAgKiBAcmV0dXJucyB2b2lkXG4gICAqL1xuICBleHBvcnQgY29uc3QgU2hvd092ZXJsYXkgPSAobmFtZTogc3RyaW5nKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBTSE9XX09WRVJMQVksXG4gICAgcGF5bG9hZDogeyBuYW1lIH0sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBIaWRlIGFuIE92ZXJsYXkgb24gdGhlIHNlbGVjdGVkIHBhZ2VcbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBuYW1lIG9mIHRoZSBvdmVybGF5XG4gICAqIEByZXR1cm5zIHZvaWRcbiAgICovXG4gIGV4cG9ydCBjb25zdCBIaWRlT3ZlcmxheSA9IChuYW1lOiBzdHJpbmcpOiBJbnRlZ3JhdGlvbkFjdGlvbiA9PiAoe1xuICAgIHR5cGU6IEhJREVfT1ZFUkxBWSxcbiAgICBwYXlsb2FkOiB7IG5hbWUgfSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEhpZGUgYWxsIE92ZXJsYXlzIG9uIHRoZSBzZWxlY3RlZCBwYWdlXG4gICAqXG4gICAqIEByZXR1cm5zIHZvaWRcbiAgICovXG4gIGV4cG9ydCBjb25zdCBIaWRlQWxsT3ZlcmxheXMgPSAoKTogSW50ZWdyYXRpb25BY3Rpb24gPT4gKHtcbiAgICB0eXBlOiBISURFX0FMTF9PVkVSTEFZUyxcbiAgfSk7XG59XG4iXX0=