@dsivd/prestations-ng 16.5.4-beta.3 → 16.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -11,8 +11,15 @@
11
11
  ### Added
12
12
 
13
13
  - [foehn-input-time.component.html](projects/prestations-ng/src/foehn-input-time/foehn-input-time.component.html)
14
+
14
15
  - added `allowLeadingZero` to true to allowed leading 0 in hours and minutes
15
16
 
17
+ - [ApplicationInfo](projects/prestations-ng/src/sdk-appinfo/application-info.ts)
18
+
19
+ - added `baseVdChUrl?: string` to `ApplicationInfo.Configuration.Portail`
20
+ - with default value by environnement
21
+ - use in `BreadcrumbEventService` and `GesdemConfirmationComponent`
22
+
16
23
  ### Fixed
17
24
 
18
25
  - [redirect.component.ts](projects/prestations-ng/src/sdk-redirect/redirect.component.ts)
Binary file
@@ -4,18 +4,19 @@ import { map } from 'rxjs/operators';
4
4
  import { Breadcrumb } from './breadcrumb';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../sdk-session-info/session-info.service";
7
+ import * as i2 from "../sdk-appinfo/application-info.service";
7
8
  const DEFAULT_VALUES = {
8
9
  espaceSecuriseUrl: '/100002/accueil',
9
10
  allPrestationsUrl: '/100002/prestations',
10
- vdChUrl: 'https://www.vd.ch/',
11
- descriptionPageBaseUrl: 'https://www.vd.ch/go.to?prestation=',
11
+ vdChUrl: null,
12
+ descriptionPageBaseUrl: null,
12
13
  // It's better to not display the breadcrumb item if the prestation doesn't give its code.
13
14
  prestationCode: null
14
15
  };
15
16
  // eslint-disable-next-line jsdoc/require-jsdoc
16
- function getNotConnectedBreadcrumb({ vdChUrl = DEFAULT_VALUES.vdChUrl, descriptionPageBaseUrl = DEFAULT_VALUES.descriptionPageBaseUrl, prestationCode = DEFAULT_VALUES.prestationCode }) {
17
+ function getNotConnectedBreadcrumb({ vdChUrl, descriptionPageBaseUrl, prestationCode = DEFAULT_VALUES.prestationCode }, vdChUrlFromAppInfo) {
17
18
  const rootElement = {
18
- url: vdChUrl,
19
+ url: vdChUrl || vdChUrlFromAppInfo,
19
20
  routerLink: null,
20
21
  label: 'vd.ch'
21
22
  };
@@ -29,7 +30,9 @@ function getNotConnectedBreadcrumb({ vdChUrl = DEFAULT_VALUES.vdChUrl, descripti
29
30
  rootElement,
30
31
  {
31
32
  // e.g. https://www.vd.ch/go.to?prestation=101016
32
- url: `${descriptionPageBaseUrl}${prestationCode}`,
33
+ url: descriptionPageBaseUrl
34
+ ? `${descriptionPageBaseUrl}${prestationCode}`
35
+ : `${vdChUrlFromAppInfo}/go.to?prestation=${prestationCode}`,
33
36
  routerLink: null,
34
37
  label: 'Description de la prestation'
35
38
  }
@@ -56,22 +59,23 @@ function getConnectedBreadcrumb({ espaceSecuriseUrl = DEFAULT_VALUES.espaceSecur
56
59
  * @param sessionInfoData data info on session
57
60
  * @param configuration as breadcrumb config.
58
61
  * @param currentItem as breadcrumb current item
62
+ * @param vdChBaseUrl typo3 base url for current env
59
63
  * @returns Breadcrumb
60
64
  */
61
- function getBreadcrumb(sessionInfoData, configuration, currentItem) {
65
+ function getBreadcrumb(sessionInfoData, configuration, currentItem, vdChBaseUrl) {
62
66
  // Whether the user has a context we consider it as connected.
63
67
  const isConnectedCyber = !!sessionInfoData && !!sessionInfoData.context;
64
68
  const breadcrumb = new Breadcrumb();
65
69
  // Depending on whether the user is connected, the content of the items change.
66
70
  breadcrumb.breadcrumbItems = isConnectedCyber
67
71
  ? getConnectedBreadcrumb(configuration, sessionInfoData)
68
- : getNotConnectedBreadcrumb(configuration);
72
+ : getNotConnectedBreadcrumb(configuration, vdChBaseUrl);
69
73
  // Optionally set the current item.
70
74
  breadcrumb.current = currentItem;
71
75
  return breadcrumb;
72
76
  }
73
77
  // eslint-disable-next-line jsdoc/require-jsdoc
74
- function mapBreadcrumb([override, configuration, currentItem, sessionInfoData]) {
78
+ function mapBreadcrumb([override, configuration, currentItem, sessionInfoData, applicationInfo]) {
75
79
  // Take the override if it exists
76
80
  if (override) {
77
81
  // Although there's an override, we do want to assign the current item
@@ -84,14 +88,15 @@ function mapBreadcrumb([override, configuration, currentItem, sessionInfoData])
84
88
  }
85
89
  // Otherwise get a breadcrumb based on the configuration
86
90
  if (configuration) {
87
- return getBreadcrumb(sessionInfoData, configuration, currentItem);
91
+ return getBreadcrumb(sessionInfoData, configuration, currentItem, applicationInfo.configuration.portail.baseVdChUrl);
88
92
  }
89
93
  // Only output a breadcrumb of there's a configuration or an override
90
94
  return null;
91
95
  }
92
96
  export class BreadcrumbEventService {
93
- constructor(sessionInfo) {
97
+ constructor(sessionInfo, applicationInfoService) {
94
98
  this.sessionInfo = sessionInfo;
99
+ this.applicationInfoService = applicationInfoService;
95
100
  this._breadcrumbOverride = new BehaviorSubject(null);
96
101
  this._breadcrumbConfiguration = new BehaviorSubject(null);
97
102
  this._currentBreadcrumbItem = new BehaviorSubject(null);
@@ -101,7 +106,8 @@ export class BreadcrumbEventService {
101
106
  this._breadcrumbOverride,
102
107
  this._breadcrumbConfiguration,
103
108
  this._currentBreadcrumbItem,
104
- this.sessionInfo.data
109
+ this.sessionInfo.data,
110
+ this.applicationInfoService.data
105
111
  ]).pipe(
106
112
  // Put together the breadcrumb, or just take the override if it exists.
107
113
  map(mapBreadcrumb));
@@ -110,7 +116,8 @@ export class BreadcrumbEventService {
110
116
  this._breadcrumbOverride,
111
117
  this._breadcrumbConfiguration,
112
118
  this._currentBreadcrumbItem,
113
- of(null)
119
+ of(null),
120
+ this.applicationInfoService.data
114
121
  ]).pipe(
115
122
  // Put together the breadcrumb, or just take the override if it exists.
116
123
  map(mapBreadcrumb));
@@ -165,12 +172,12 @@ export class BreadcrumbEventService {
165
172
  this._breadcrumbConfiguration.next(configuration);
166
173
  }
167
174
  }
168
- BreadcrumbEventService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BreadcrumbEventService, deps: [{ token: i1.SessionInfo }], target: i0.ɵɵFactoryTarget.Injectable });
175
+ BreadcrumbEventService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BreadcrumbEventService, deps: [{ token: i1.SessionInfo }, { token: i2.ApplicationInfoService }], target: i0.ɵɵFactoryTarget.Injectable });
169
176
  BreadcrumbEventService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BreadcrumbEventService, providedIn: 'root' });
170
177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BreadcrumbEventService, decorators: [{
171
178
  type: Injectable,
172
179
  args: [{
173
180
  providedIn: 'root'
174
181
  }]
175
- }], ctorParameters: function () { return [{ type: i1.SessionInfo }]; } });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1ldmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWJyZWFkY3J1bWIvYnJlYWRjcnVtYi1ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyQyxPQUFPLEVBQ0gsVUFBVSxFQUdiLE1BQU0sY0FBYyxDQUFDOzs7QUFFdEIsTUFBTSxjQUFjLEdBQTRCO0lBQzVDLGlCQUFpQixFQUFFLGlCQUFpQjtJQUNwQyxpQkFBaUIsRUFBRSxxQkFBcUI7SUFDeEMsT0FBTyxFQUFFLG9CQUFvQjtJQUM3QixzQkFBc0IsRUFBRSxxQ0FBcUM7SUFDN0QsMEZBQTBGO0lBQzFGLGNBQWMsRUFBRSxJQUFJO0NBQ3ZCLENBQUM7QUFFRiwrQ0FBK0M7QUFDL0MsU0FBUyx5QkFBeUIsQ0FBQyxFQUMvQixPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFDaEMsc0JBQXNCLEdBQUcsY0FBYyxDQUFDLHNCQUFzQixFQUM5RCxjQUFjLEdBQUcsY0FBYyxDQUFDLGNBQWMsRUFDeEI7SUFDdEIsTUFBTSxXQUFXLEdBQW1CO1FBQ2hDLEdBQUcsRUFBRSxPQUFPO1FBQ1osVUFBVSxFQUFFLElBQUk7UUFDaEIsS0FBSyxFQUFFLE9BQU87S0FDakIsQ0FBQztJQUVGLG1GQUFtRjtJQUNuRixzRkFBc0Y7SUFDdEYsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUU7UUFDakIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ3hCO0lBRUQsT0FBTztRQUNILFdBQVc7UUFDWDtZ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QUFDO0lBRUQsSUFBSSwwQ0FBMEM7UUFDMUMsT0FBTyxJQUFJLENBQUMsMkNBQTJDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksMENBQTBDLENBQUMsS0FBYztRQUN6RCxJQUFJLENBQUMsMkNBQTJDLEdBQUcsS0FBSyxDQUFDO0lBQzdELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxVQUFzQjtRQUNoQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsb0JBQW9CO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3RDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsa0NBQWtDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLG1DQUFtQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsb0JBQW9CLENBQUMsV0FBMkI7UUFDNUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCLENBQUMsYUFBc0M7UUFDbkQsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0RCxDQUFDOztvSEF6RlEsc0JBQXNCO3dIQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs0RkFFVCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTZXNzaW9uSW5mbyB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2Vzc2lvbkluZm9EYXRhIH0gZnJvbSAnLi4vc2RrLXNlc3Npb24taW5mby9zZXNzaW9uLWluZm8tZGF0YSc7XG5pbXBvcnQge1xuICAgIEJyZWFkY3J1bWIsXG4gICAgQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgQnJlYWRjcnVtYkl0ZW1cbn0gZnJvbSAnLi9icmVhZGNydW1iJztcblxuY29uc3QgREVGQVVMVF9WQUxVRVM6IEJyZWFkY3J1bWJDb25maWd1cmF0aW9uID0ge1xuICAgIGVzcGFjZVNlY3VyaXNlVXJsOiAnLzEwMDAwMi9hY2N1ZWlsJyxcbiAgICBhbGxQcmVzdGF0aW9uc1VybDogJy8xMDAwMDIvcHJlc3RhdGlvbnMnLFxuICAgIHZkQ2hVcmw6ICdodHRwczovL3d3dy52ZC5jaC8nLFxuICAgIGRlc2NyaXB0aW9uUGFnZUJhc2VVcmw6ICdodHRwczovL3d3dy52ZC5jaC9nby50bz9wcmVzdGF0aW9uPScsXG4gICAgLy8gSXQncyBiZXR0ZXIgdG8gbm90IGRpc3BsYXkgdGhlIGJyZWFkY3J1bWIgaXRlbSBpZiB0aGUgcHJlc3RhdGlvbiBkb2Vzbid0IGdpdmUgaXRzIGNvZGUuXG4gICAgcHJlc3RhdGlvbkNvZGU6IG51bGxcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5mdW5jdGlvbiBnZXROb3RDb25uZWN0ZWRCcmVhZGNydW1iKHtcbiAgICB2ZENoVXJsID0gREVGQVVMVF9WQUxVRVMudmRDaFVybCxcbiAgICBkZXNjcmlwdGlvblBhZ2VCYXNlVXJsID0gREVGQVVMVF9WQUxVRVMuZGVzY3JpcHRpb25QYWdlQmFzZVVybCxcbiAgICBwcmVzdGF0aW9uQ29kZSA9IERFRkFVTFRfVkFMVUVTLnByZXN0YXRpb25Db2RlXG59OiBCcmVhZGNydW1iQ29uZmlndXJhdGlvbik6IEJyZWFkY3J1bWJJdGVtW10ge1xuICAgIGNvbnN0IHJvb3RFbGVtZW50OiBCcmVhZGNydW1iSXRlbSA9IHtcbiAgICAgICAgdXJsOiB2ZENoVXJsLFxuICAgICAgICByb3V0ZXJMaW5rOiBudWxsLFxuICAgICAgICBsYWJlbDogJ3ZkLmNoJ1xuICAgIH07XG5cbiAgICAvLyBEbyBub3QgZGlzcGxheSB0aGUgc2Vjb25kIGVsZW1lbnQgaWYgdGhlIHByZXN0YXRpb24gY29kZSBpcyBub3QgdGhlcmUgc28gd2UgaGF2ZVxuICAgIC8vIGEgY2hhbmNlIHRvIHJlYWxpemUgdGhhdCBzb21ldGhpbmcncyBtaXNzaW5nIHJhdGhlciB0aGFuIGhhdmluZyBhIGxpbmsgdGhhdCBkb2Vzbid0XG4gICAgLy8gcG9pbnQgdG8gc29tZXRoaW5nIG1lYW5pbmdmdWwuXG4gICAgaWYgKCFwcmVzdGF0aW9uQ29kZSkge1xuICAgICAgICByZXR1cm4gW3Jvb3RFbGVtZW50XTtcbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAgICByb290RWxlbWVudCxcbiAgICAgICAge1xuICAgICAgICAgICAgLy8gZS5nLiBodHRwczovL3d3dy52ZC5jaC9nby50bz9wcmVzdGF0aW9uPTEwMTAxNlxuICAgICAgICAgICAgdXJsOiBgJHtkZXNjcmlwdGlvblBhZ2VCYXNlVXJsfSR7cHJlc3RhdGlvbkNvZGV9YCxcbiAgICAgICAgICAgIHJvdXRlckxpbms6IG51bGwsXG4gICAgICAgICAgICBsYWJlbDogJ0Rlc2NyaXB0aW9uIGRlIGxhIHByZXN0YXRpb24nXG4gICAgICAgIH1cbiAgICBdO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZnVuY3Rpb24gZ2V0Q29ubmVjdGVkQnJlYWRjcnVtYihcbiAgICB7XG4gICAgICAgIGVzcGFjZVNlY3VyaXNlVXJsID0gREVGQVVMVF9WQUxVRVMuZXNwYWNlU2VjdXJpc2VVcmxcbiAgICB9OiBCcmVhZGNydW1iQ29uZmlndXJhdGlvbixcbiAgICBzZXNzaW9uSW5mb0RhdGE6IFNlc3Npb25JbmZvRGF0YVxuKTogQnJlYWRjcnVtYkl0ZW1bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgICAgdXJsOiBlc3BhY2VTZWN1cmlzZVVybCxcbiAgICAgICAgICAgIHJvdXRlckxpbms6IG51bGwsXG4gICAgICAgICAgICBsYWJlbDogc2Vzc2lvbkluZm9EYXRhLmVzcGFjZUxhYmVsXG4gICAgICAgIH1cbiAgICBdO1xufVxuXG4vKipcbiAqIEdldCB0aGUgYnJlYWRjcnVtYiBkZXBlbmRpbmcgb24gdGhlIHN0YXRlIG9mIHRoZSB1c2VyLlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogQ29ubmVjdGVkIHVzZXIgOiBcIk1vbiBlc3BhY2VcIlxuICogQW5vbnltb3VzIHVzZXIgOiBcInZkLmNoID4gRGVzY3JpcHRpb24gZGUgbGEgcHJlc3RhdGlvblwiXG4gKlxuICogQHBhcmFtIHNlc3Npb25JbmZvRGF0YSBkYXRhIGluZm8gb24gc2Vzc2lvblxuICogQHBhcmFtIGNvbmZpZ3VyYXRpb24gYXMgYnJlYWRjcnVtYiBjb25maWcuXG4gKiBAcGFyYW0gY3VycmVudEl0ZW0gYXMgYnJlYWRjcnVtYiBjdXJyZW50IGl0ZW1cbiAqIEByZXR1cm5zIEJyZWFkY3J1bWJcbiAqL1xuZnVuY3Rpb24gZ2V0QnJlYWRjcnVtYihcbiAgICBzZXNzaW9uSW5mb0RhdGE6IFNlc3Npb25JbmZvRGF0YSxcbiAgICBjb25maWd1cmF0aW9uOiBCcmVhZGNydW1iQ29uZmlndXJhdGlvbixcbiAgICBjdXJyZW50SXRlbTogQnJlYWRjcnVtYkl0ZW1cbik6IEJyZWFkY3J1bWIge1xuICAgIC8vIFdoZXRoZXIgdGhlIHVzZXIgaGFzIGEgY29udGV4dCB3ZSBjb25zaWRlciBpdCBhcyBjb25uZWN0ZWQuXG4gICAgY29uc3QgaXNDb25uZWN0ZWRDeWJlciA9ICEhc2Vzc2lvbkluZm9EYXRhICYmICEhc2Vzc2lvbkluZm9EYXRhLmNvbnRleHQ7XG5cbiAgICBjb25zdCBicmVhZGNydW1iID0gbmV3IEJyZWFkY3J1bWIoKTtcblxuICAgIC8vIERlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSB1c2VyIGlzIGNvbm5lY3RlZCwgdGhlIGNvbnRlbnQgb2YgdGhlIGl0ZW1zIGNoYW5nZS5cbiAgICBicmVhZGNydW1iLmJyZWFkY3J1bWJJdGVtcyA9IGlzQ29ubmVjdGVkQ3liZXJcbiAgICAgICAgPyBnZXRDb25uZWN0ZWRCcmVhZGNydW1iKGNvbmZpZ3VyYXRpb24sIHNlc3Npb25JbmZvRGF0YSlcbiAgICAgICAgOiBnZXROb3RDb25uZWN0ZWRCcmVhZGNydW1iKGNvbmZpZ3VyYXRpb24pO1xuXG4gICAgLy8gT3B0aW9uYWxseSBzZXQgdGhlIGN1cnJlbnQgaXRlbS5cbiAgICBicmVhZGNydW1iLmN1cnJlbnQgPSBjdXJyZW50SXRlbTtcblxuICAgIHJldHVybiBicmVhZGNydW1iO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZnVuY3Rpb24gbWFwQnJlYWRjcnVtYihbXG4gICAgb3ZlcnJpZGUsXG4gICAgY29uZmlndXJhdGlvbixcbiAgICBjdXJyZW50SXRlbSxcbiAgICBzZXNzaW9uSW5mb0RhdGFcbl06IFtcbiAgICBCcmVhZGNydW1iLFxuICAgIEJyZWFkY3J1bWJDb25maWd1cmF0aW9uLFxuICAgIEJyZWFkY3J1bWJJdGVtLFxuICAgIFNlc3Npb25JbmZvRGF0YVxuXSk6IEJyZWFkY3J1bWIge1xuICAgIC8vIFRha2UgdGhlIG92ZXJyaWRlIGlmIGl0IGV4aXN0c1xuICAgIGlmIChvdmVycmlkZSkge1xuICAgICAgICAvLyBBbHRob3VnaCB0aGVyZSdzIGFuIG92ZXJyaWRlLCB3ZSBkbyB3YW50IHRvIGFzc2lnbiB0aGUgY3VycmVudCBpdGVtXG4gICAgICAgIC8vIHNvIGVhY2ggcGFnZSBkYW5zIHNldCBpdHMgb3duIG5hbWUgcmF0aGVyIHRoYW4gbGV0dGluZyB0aGUgb3ZlcnJpZGVcbiAgICAgICAgLy8gaGFuZGxlIHRoaXMuXG4gICAgICAgIGlmIChjdXJyZW50SXRlbSkge1xuICAgICAgICAgICAgb3ZlcnJpZGUuY3VycmVudCA9IGN1cnJlbnRJdGVtO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdmVycmlkZTtcbiAgICB9XG5cbiAgICAvLyBPdGhlcndpc2UgZ2V0IGEgYnJlYWRjcnVtYiBiYXNlZCBvbiB0aGUgY29uZmlndXJhdGlvblxuICAgIGlmIChjb25maWd1cmF0aW9uKSB7XG4gICAgICAgIHJldHVybiBnZXRCcmVhZGNydW1iKHNlc3Npb25JbmZvRGF0YSwgY29uZmlndXJhdGlvbiwgY3VycmVudEl0ZW0pO1xuICAgIH1cblxuICAgIC8vIE9ubHkgb3V0cHV0IGEgYnJlYWRjcnVtYiBvZiB0aGVyZSdzIGEgY29uZmlndXJhdGlvbiBvciBhbiBvdmVycmlkZVxuICAgIHJldHVybiBudWxsO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJFdmVudFNlcnZpY2Uge1xuICAgIHByaXZhdGUgX2JyZWFkY3J1bWJPdmVycmlkZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnJlYWRjcnVtYj4obnVsbCk7XG4gICAgcHJpdmF0ZSBfYnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJyZWFkY3J1bWJDb25maWd1cmF0aW9uPihcbiAgICAgICAgbnVsbFxuICAgICk7XG4gICAgcHJpdmF0ZSBfY3VycmVudEJyZWFkY3J1bWJJdGVtID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCcmVhZGNydW1iSXRlbT4obnVsbCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfYnJlYWRjcnVtYk9ic2VydmFibGU6IE9ic2VydmFibGU8QnJlYWRjcnVtYj47XG4gICAgcHJpdmF0ZSByZWFkb25seSBfbmV2ZXJDb25uZWN0ZWRCcmVhZGNydW1iT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxCcmVhZGNydW1iPjtcblxuICAgIHByaXZhdGUgX3NraXBMZWF2aW5nQWxlcnRCZWNhdXNlRGVtYW5kSXNUcmFuc21pdHRlZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXNzaW9uSW5mbzogU2Vzc2lvbkluZm8pIHtcbiAgICAgICAgLy8gV2hlbiB0aGUgdXNlciBtaWdodCBiZSBjb25uZWN0ZWRcbiAgICAgICAgdGhpcy5fYnJlYWRjcnVtYk9ic2VydmFibGUgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuX2JyZWFkY3J1bWJPdmVycmlkZSxcbiAgICAgICAgICAgIHRoaXMuX2JyZWFkY3J1bWJDb25maWd1cmF0aW9uLFxuICAgICAgICAgICAgdGhpcy5fY3VycmVudEJyZWFkY3J1bWJJdGVtLFxuICAgICAgICAgICAgdGhpcy5zZXNzaW9uSW5mby5kYXRhXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAvLyBQdXQgdG9nZXRoZXIgdGhlIGJyZWFkY3J1bWIsIG9yIGp1c3QgdGFrZSB0aGUgb3ZlcnJpZGUgaWYgaXQgZXhpc3RzLlxuICAgICAgICAgICAgbWFwKG1hcEJyZWFkY3J1bWIpXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gSWYgdGhlIHVzZXIgaXMgTkVWRVIgY29ubmVjdGVkIChmb3IgaW5zdGFuY2UgaW4gY3liZXJsb2dpbilcbiAgICAgICAgdGhpcy5fbmV2ZXJDb25uZWN0ZWRCcmVhZGNydW1iT2JzZXJ2YWJsZSA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5fYnJlYWRjcnVtYk92ZXJyaWRlLFxuICAgICAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50QnJlYWRjcnVtYkl0ZW0sXG4gICAgICAgICAgICBvZihudWxsKVxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgLy8gUHV0IHRvZ2V0aGVyIHRoZSBicmVhZGNydW1iLCBvciBqdXN0IHRha2UgdGhlIG92ZXJyaWRlIGlmIGl0IGV4aXN0cy5cbiAgICAgICAgICAgIG1hcChtYXBCcmVhZGNydW1iKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBza2lwTGVhdmluZ0FsZXJ0QmVjYXVzZURlbWFuZElzVHJhbnNtaXR0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9za2lwTGVhdmluZ0FsZXJ0QmVjYXVzZURlbWFuZElzVHJhbnNtaXR0ZWQ7XG4gICAgfVxuXG4gICAgc2V0IHNraXBMZWF2aW5nQWxlcnRCZWNhdXNlRGVtYW5kSXNUcmFuc21pdHRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9za2lwTGVhdmluZ0FsZXJ0QmVjYXVzZURlbWFuZElzVHJhbnNtaXR0ZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIGJyZWFkY3J1bWIuIFRoaXMgdmFsdWUgd2lsbCBvdmVycmlkZSBhbnkgY29uZmlndXJhdGlvbiBpbmplY3RlZCB3aXRoXG4gICAgICogYHNldENvbmZpZ3VyYXRpb25gLiBPbmx5IHVzZSBpZiB5b3Ugd2FudCB0byBoYW5kbGUgdGhlIGJyZWFkY3J1bWIgbWFudWFsbHkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYnJlYWRjcnVtYiBhcyBCcmVhZGNydW1iXG4gICAgICovXG4gICAgc2V0QnJlYWRjcnVtYihicmVhZGNydW1iOiBCcmVhZGNydW1iKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2JyZWFkY3J1bWJPdmVycmlkZS5uZXh0KGJyZWFkY3J1bWIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBicmVhZGNydW1iIHZhbHVlLlxuICAgICAqXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxCcmVhZGNydW1iPlxuICAgICAqL1xuICAgIGJyZWFkY3J1bWJPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8QnJlYWRjcnVtYj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYnJlYWRjcnVtYk9ic2VydmFibGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGJyZWFkY3J1bWIgdmFsdWUgaWYgbmV2ZXIgY29ubmVjdGVkLlxuICAgICAqXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxCcmVhZGNydW1iPlxuICAgICAqL1xuICAgIG5ldmVyQ29ubmVjdGVkQnJlYWRjcnVtYk9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxCcmVhZGNydW1iPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9uZXZlckNvbm5lY3RlZEJyZWFkY3J1bWJPYnNlcnZhYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgY3VycmVudCBpdGVtLiBVc2VkIGZvciBhY2Nlc3NpYmlsaXR5IHB1cnBvc2VzLlxuICAgICAqXG4gICAgICogQHBhcmFtIGN1cnJlbnRJdGVtIGFzIEJyZWFkY3J1bWJJdGVtXG4gICAgICovXG4gICAgc2V0Q3VycmVudEJyZWFkY3J1bWIoY3VycmVudEl0ZW06IEJyZWFkY3J1bWJJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRCcmVhZGNydW1iSXRlbS5uZXh0KGN1cnJlbnRJdGVtKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIGN1cnJlbnQgYnJlYWRjcnVtYiBjb25maWd1cmF0aW9uLlxuICAgICAqXG4gICAgICogU2V0IHRvIGBudWxsYCB0byBkaXNhYmxlIHRoZSBicmVhZGNydW1iLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNvbmZpZ3VyYXRpb24gYXMgQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb25cbiAgICAgKi9cbiAgICBzZXRDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb246IEJyZWFkY3J1bWJDb25maWd1cmF0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2JyZWFkY3J1bWJDb25maWd1cmF0aW9uLm5leHQoY29uZmlndXJhdGlvbik7XG4gICAgfVxufVxuIl19
182
+ }], ctorParameters: function () { return [{ type: i1.SessionInfo }, { type: i2.ApplicationInfoService }]; } });
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1ldmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWJyZWFkY3J1bWIvYnJlYWRjcnVtYi1ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU1yQyxPQUFPLEVBQ0gsVUFBVSxFQUdiLE1BQU0sY0FBYyxDQUFDOzs7O0FBRXRCLE1BQU0sY0FBYyxHQUE0QjtJQUM1QyxpQkFBaUIsRUFBRSxpQkFBaUI7SUFDcEMsaUJBQWlCLEVBQUUscUJBQXFCO0lBQ3hDLE9BQU8sRUFBRSxJQUFJO0lBQ2Isc0JBQXNCLEVBQUUsSUFBSTtJQUM1QiwwRkFBMEY7SUFDMUYsY0FBYyxFQUFFLElBQUk7Q0FDdkIsQ0FBQztBQUVGLCtDQUErQztBQUMvQyxTQUFTLHlCQUF5QixDQUM5QixFQUNJLE9BQU8sRUFDUCxzQkFBc0IsRUFDdEIsY0FBYyxHQUFHLGNBQWMsQ0FBQyxjQUFjLEVBQ3hCLEVBQzFCLGtCQUEwQjtJQUUxQixNQUFNLFdBQVcsR0FBbUI7UUFDaEMsR0FBRyxFQUFFLE9BQU8sSUFBSSxrQkFBa0I7UUFDbEMsVUFBVSxFQUFFLElBQUk7UUFDaEIsS0FBSyxFQUFFLE9BQU87S0FDakIsQ0FBQztJQUVGLG1GQUFtRjtJQUNuRixzRkFBc0Y7SUFDdEYsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUU7UUFDakIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ3hCO0lBRUQsT0FBTztRQUNILFdBQVc7UUFDWDtZQUNJLGlEQUFpRDtZQUNqRCxHQUFH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TUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5mbyB9IGZyb20gJy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvU2VydmljZSB9IGZyb20gJy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uSW5mbyB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2Vzc2lvbkluZm9EYXRhIH0gZnJvbSAnLi4vc2RrLXNlc3Npb24taW5mby9zZXNzaW9uLWluZm8tZGF0YSc7XG5pbXBvcnQge1xuICAgIEJyZWFkY3J1bWIsXG4gICAgQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgQnJlYWRjcnVtYkl0ZW1cbn0gZnJvbSAnLi9icmVhZGNydW1iJztcblxuY29uc3QgREVGQVVMVF9WQUxVRVM6IEJyZWFkY3J1bWJDb25maWd1cmF0aW9uID0ge1xuICAgIGVzcGFjZVNlY3VyaXNlVXJsOiAnLzEwMDAwMi9hY2N1ZWlsJyxcbiAgICBhbGxQcmVzdGF0aW9uc1VybDogJy8xMDAwMDIvcHJlc3RhdGlvbnMnLFxuICAgIHZkQ2hVcmw6IG51bGwsXG4gICAgZGVzY3JpcHRpb25QYWdlQmFzZVVybDogbnVsbCxcbiAgICAvLyBJdCdzIGJldHRlciB0byBub3QgZGlzcGxheSB0aGUgYnJlYWRjcnVtYiBpdGVtIGlmIHRoZSBwcmVzdGF0aW9uIGRvZXNuJ3QgZ2l2ZSBpdHMgY29kZS5cbiAgICBwcmVzdGF0aW9uQ29kZTogbnVsbFxufTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmZ1bmN0aW9uIGdldE5vdENvbm5lY3RlZEJyZWFkY3J1bWIoXG4gICAge1xuICAgICAgICB2ZENoVXJsLFxuICAgICAgICBkZXNjcmlwdGlvblBhZ2VCYXNlVXJsLFxuICAgICAgICBwcmVzdGF0aW9uQ29kZSA9IERFRkFVTFRfVkFMVUVTLnByZXN0YXRpb25Db2RlXG4gICAgfTogQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgdmRDaFVybEZyb21BcHBJbmZvOiBzdHJpbmdcbik6IEJyZWFkY3J1bWJJdGVtW10ge1xuICAgIGNvbnN0IHJvb3RFbGVtZW50OiBCcmVhZGNydW1iSXRlbSA9IHtcbiAgICAgICAgdXJsOiB2ZENoVXJsIHx8IHZkQ2hVcmxGcm9tQXBwSW5mbyxcbiAgICAgICAgcm91dGVyTGluazogbnVsbCxcbiAgICAgICAgbGFiZWw6ICd2ZC5jaCdcbiAgICB9O1xuXG4gICAgLy8gRG8gbm90IGRpc3BsYXkgdGhlIHNlY29uZCBlbGVtZW50IGlmIHRoZSBwcmVzdGF0aW9uIGNvZGUgaXMgbm90IHRoZXJlIHNvIHdlIGhhdmVcbiAgICAvLyBhIGNoYW5jZSB0byByZWFsaXplIHRoYXQgc29tZXRoaW5nJ3MgbWlzc2luZyByYXRoZXIgdGhhbiBoYXZpbmcgYSBsaW5rIHRoYXQgZG9lc24ndFxuICAgIC8vIHBvaW50IHRvIHNvbWV0aGluZyBtZWFuaW5nZnVsLlxuICAgIGlmICghcHJlc3RhdGlvbkNvZGUpIHtcbiAgICAgICAgcmV0dXJuIFtyb290RWxlbWVudF07XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgcm9vdEVsZW1lbnQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIC8vIGUuZy4gaHR0cHM6Ly93d3cudmQuY2gvZ28udG8/cHJlc3RhdGlvbj0xMDEwMTZcbiAgICAgICAgICAgIHVybDogZGVzY3JpcHRpb25QYWdlQmFzZVVybFxuICAgICAgICAgICAgICAgID8gYCR7ZGVzY3JpcHRpb25QYWdlQmFzZVVybH0ke3ByZXN0YXRpb25Db2RlfWBcbiAgICAgICAgICAgICAgICA6IGAke3ZkQ2hVcmxGcm9tQXBwSW5mb30vZ28udG8/cHJlc3RhdGlvbj0ke3ByZXN0YXRpb25Db2RlfWAsXG4gICAgICAgICAgICByb3V0ZXJMaW5rOiBudWxsLFxuICAgICAgICAgICAgbGFiZWw6ICdEZXNjcmlwdGlvbiBkZSBsYSBwcmVzdGF0aW9uJ1xuICAgICAgICB9XG4gICAgXTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmZ1bmN0aW9uIGdldENvbm5lY3RlZEJyZWFkY3J1bWIoXG4gICAge1xuICAgICAgICBlc3BhY2VTZWN1cmlzZVVybCA9IERFRkFVTFRfVkFMVUVTLmVzcGFjZVNlY3VyaXNlVXJsXG4gICAgfTogQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgc2Vzc2lvbkluZm9EYXRhOiBTZXNzaW9uSW5mb0RhdGFcbik6IEJyZWFkY3J1bWJJdGVtW10ge1xuICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHVybDogZXNwYWNlU2VjdXJpc2VVcmwsXG4gICAgICAgICAgICByb3V0ZXJMaW5rOiBudWxsLFxuICAgICAgICAgICAgbGFiZWw6IHNlc3Npb25JbmZvRGF0YS5lc3BhY2VMYWJlbFxuICAgICAgICB9XG4gICAgXTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGJyZWFkY3J1bWIgZGVwZW5kaW5nIG9uIHRoZSBzdGF0ZSBvZiB0aGUgdXNlci5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIENvbm5lY3RlZCB1c2VyIDogXCJNb24gZXNwYWNlXCJcbiAqIEFub255bW91cyB1c2VyIDogXCJ2ZC5jaCA+IERlc2NyaXB0aW9uIGRlIGxhIHByZXN0YXRpb25cIlxuICpcbiAqIEBwYXJhbSBzZXNzaW9uSW5mb0RhdGEgZGF0YSBpbmZvIG9uIHNlc3Npb25cbiAqIEBwYXJhbSBjb25maWd1cmF0aW9uIGFzIGJyZWFkY3J1bWIgY29uZmlnLlxuICogQHBhcmFtIGN1cnJlbnRJdGVtIGFzIGJyZWFkY3J1bWIgY3VycmVudCBpdGVtXG4gKiBAcGFyYW0gdmRDaEJhc2VVcmwgdHlwbzMgYmFzZSB1cmwgZm9yIGN1cnJlbnQgZW52XG4gKiBAcmV0dXJucyBCcmVhZGNydW1iXG4gKi9cbmZ1bmN0aW9uIGdldEJyZWFkY3J1bWIoXG4gICAgc2Vzc2lvbkluZm9EYXRhOiBTZXNzaW9uSW5mb0RhdGEsXG4gICAgY29uZmlndXJhdGlvbjogQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgY3VycmVudEl0ZW06IEJyZWFkY3J1bWJJdGVtLFxuICAgIHZkQ2hCYXNlVXJsOiBzdHJpbmdcbik6IEJyZWFkY3J1bWIge1xuICAgIC8vIFdoZXRoZXIgdGhlIHVzZXIgaGFzIGEgY29udGV4dCB3ZSBjb25zaWRlciBpdCBhcyBjb25uZWN0ZWQuXG4gICAgY29uc3QgaXNDb25uZWN0ZWRDeWJlciA9ICEhc2Vzc2lvbkluZm9EYXRhICYmICEhc2Vzc2lvbkluZm9EYXRhLmNvbnRleHQ7XG5cbiAgICBjb25zdCBicmVhZGNydW1iID0gbmV3IEJyZWFkY3J1bWIoKTtcblxuICAgIC8vIERlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSB1c2VyIGlzIGNvbm5lY3RlZCwgdGhlIGNvbnRlbnQgb2YgdGhlIGl0ZW1zIGNoYW5nZS5cbiAgICBicmVhZGNydW1iLmJyZWFkY3J1bWJJdGVtcyA9IGlzQ29ubmVjdGVkQ3liZXJcbiAgICAgICAgPyBnZXRDb25uZWN0ZWRCcmVhZGNydW1iKGNvbmZpZ3VyYXRpb24sIHNlc3Npb25JbmZvRGF0YSlcbiAgICAgICAgOiBnZXROb3RDb25uZWN0ZWRCcmVhZGNydW1iKGNvbmZpZ3VyYXRpb24sIHZkQ2hCYXNlVXJsKTtcblxuICAgIC8vIE9wdGlvbmFsbHkgc2V0IHRoZSBjdXJyZW50IGl0ZW0uXG4gICAgYnJlYWRjcnVtYi5jdXJyZW50ID0gY3VycmVudEl0ZW07XG5cbiAgICByZXR1cm4gYnJlYWRjcnVtYjtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmZ1bmN0aW9uIG1hcEJyZWFkY3J1bWIoW1xuICAgIG92ZXJyaWRlLFxuICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgY3VycmVudEl0ZW0sXG4gICAgc2Vzc2lvbkluZm9EYXRhLFxuICAgIGFwcGxpY2F0aW9uSW5mb1xuXTogW1xuICAgIEJyZWFkY3J1bWIsXG4gICAgQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgQnJlYWRjcnVtYkl0ZW0sXG4gICAgU2Vzc2lvbkluZm9EYXRhLFxuICAgIEFwcGxpY2F0aW9uSW5mb1xuXSk6IEJyZWFkY3J1bWIge1xuICAgIC8vIFRha2UgdGhlIG92ZXJyaWRlIGlmIGl0IGV4aXN0c1xuICAgIGlmIChvdmVycmlkZSkge1xuICAgICAgICAvLyBBbHRob3VnaCB0aGVyZSdzIGFuIG92ZXJyaWRlLCB3ZSBkbyB3YW50IHRvIGFzc2lnbiB0aGUgY3VycmVudCBpdGVtXG4gICAgICAgIC8vIHNvIGVhY2ggcGFnZSBkYW5zIHNldCBpdHMgb3duIG5hbWUgcmF0aGVyIHRoYW4gbGV0dGluZyB0aGUgb3ZlcnJpZGVcbiAgICAgICAgLy8gaGFuZGxlIHRoaXMuXG4gICAgICAgIGlmIChjdXJyZW50SXRlbSkge1xuICAgICAgICAgICAgb3ZlcnJpZGUuY3VycmVudCA9IGN1cnJlbnRJdGVtO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdmVycmlkZTtcbiAgICB9XG5cbiAgICAvLyBPdGhlcndpc2UgZ2V0IGEgYnJlYWRjcnVtYiBiYXNlZCBvbiB0aGUgY29uZmlndXJhdGlvblxuICAgIGlmIChjb25maWd1cmF0aW9uKSB7XG4gICAgICAgIHJldHVybiBnZXRCcmVhZGNydW1iKFxuICAgICAgICAgICAgc2Vzc2lvbkluZm9EYXRhLFxuICAgICAgICAgICAgY29uZmlndXJhdGlvbixcbiAgICAgICAgICAgIGN1cnJlbnRJdGVtLFxuICAgICAgICAgICAgYXBwbGljYXRpb25JbmZvLmNvbmZpZ3VyYXRpb24ucG9ydGFpbC5iYXNlVmRDaFVybFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIE9ubHkgb3V0cHV0IGEgYnJlYWRjcnVtYiBvZiB0aGVyZSdzIGEgY29uZmlndXJhdGlvbiBvciBhbiBvdmVycmlkZVxuICAgIHJldHVybiBudWxsO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJFdmVudFNlcnZpY2Uge1xuICAgIHByaXZhdGUgX2JyZWFkY3J1bWJPdmVycmlkZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnJlYWRjcnVtYj4obnVsbCk7XG4gICAgcHJpdmF0ZSBfYnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJyZWFkY3J1bWJDb25maWd1cmF0aW9uPihcbiAgICAgICAgbnVsbFxuICAgICk7XG4gICAgcHJpdmF0ZSBfY3VycmVudEJyZWFkY3J1bWJJdGVtID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCcmVhZGNydW1iSXRlbT4obnVsbCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfYnJlYWRjcnVtYk9ic2VydmFibGU6IE9ic2VydmFibGU8QnJlYWRjcnVtYj47XG4gICAgcHJpdmF0ZSByZWFkb25seSBfbmV2ZXJDb25uZWN0ZWRCcmVhZGNydW1iT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxCcmVhZGNydW1iPjtcblxuICAgIHByaXZhdGUgX3NraXBMZWF2aW5nQWxlcnRCZWNhdXNlRGVtYW5kSXNUcmFuc21pdHRlZCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvbkluZm86IFNlc3Npb25JbmZvLFxuICAgICAgICBwcml2YXRlIGFwcGxpY2F0aW9uSW5mb1NlcnZpY2U6IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgLy8gV2hlbiB0aGUgdXNlciBtaWdodCBiZSBjb25uZWN0ZWRcbiAgICAgICAgdGhpcy5fYnJlYWRjcnVtYk9ic2VydmFibGUgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuX2JyZWFkY3J1bWJPdmVycmlkZSxcbiAgICAgICAgICAgIHRoaXMuX2JyZWFkY3J1bWJDb25maWd1cmF0aW9uLFxuICAgICAgICAgICAgdGhpcy5fY3VycmVudEJyZWFkY3J1bWJJdGVtLFxuICAgICAgICAgICAgdGhpcy5zZXNzaW9uSW5mby5kYXRhLFxuICAgICAgICAgICAgdGhpcy5hcHBsaWNhdGlvbkluZm9TZXJ2aWNlLmRhdGFcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIC8vIFB1dCB0b2dldGhlciB0aGUgYnJlYWRjcnVtYiwgb3IganVzdCB0YWtlIHRoZSBvdmVycmlkZSBpZiBpdCBleGlzdHMuXG4gICAgICAgICAgICBtYXAobWFwQnJlYWRjcnVtYilcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBJZiB0aGUgdXNlciBpcyBORVZFUiBjb25uZWN0ZWQgKGZvciBpbnN0YW5jZSBpbiBjeWJlcmxvZ2luKVxuICAgICAgICB0aGlzLl9uZXZlckNvbm5lY3RlZEJyZWFkY3J1bWJPYnNlcnZhYmxlID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLl9icmVhZGNydW1iT3ZlcnJpZGUsXG4gICAgICAgICAgICB0aGlzLl9icmVhZGNydW1iQ29uZmlndXJhdGlvbixcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRCcmVhZGNydW1iSXRlbSxcbiAgICAgICAgICAgIG9mKG51bGwpLFxuICAgICAgICAgICAgdGhpcy5hcHBsaWNhdGlvbkluZm9TZXJ2aWNlLmRhdGFcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIC8vIFB1dCB0b2dldGhlciB0aGUgYnJlYWRjcnVtYiwgb3IganVzdCB0YWtlIHRoZSBvdmVycmlkZSBpZiBpdCBleGlzdHMuXG4gICAgICAgICAgICBtYXAobWFwQnJlYWRjcnVtYilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgc2tpcExlYXZpbmdBbGVydEJlY2F1c2VEZW1hbmRJc1RyYW5zbWl0dGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2tpcExlYXZpbmdBbGVydEJlY2F1c2VEZW1hbmRJc1RyYW5zbWl0dGVkO1xuICAgIH1cblxuICAgIHNldCBza2lwTGVhdmluZ0FsZXJ0QmVjYXVzZURlbWFuZElzVHJhbnNtaXR0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2tpcExlYXZpbmdBbGVydEJlY2F1c2VEZW1hbmRJc1RyYW5zbWl0dGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBicmVhZGNydW1iLiBUaGlzIHZhbHVlIHdpbGwgb3ZlcnJpZGUgYW55IGNvbmZpZ3VyYXRpb24gaW5qZWN0ZWQgd2l0aFxuICAgICAqIGBzZXRDb25maWd1cmF0aW9uYC4gT25seSB1c2UgaWYgeW91IHdhbnQgdG8gaGFuZGxlIHRoZSBicmVhZGNydW1iIG1hbnVhbGx5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGJyZWFkY3J1bWIgYXMgQnJlYWRjcnVtYlxuICAgICAqL1xuICAgIHNldEJyZWFkY3J1bWIoYnJlYWRjcnVtYjogQnJlYWRjcnVtYik6IHZvaWQge1xuICAgICAgICB0aGlzLl9icmVhZGNydW1iT3ZlcnJpZGUubmV4dChicmVhZGNydW1iKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYnJlYWRjcnVtYiB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8QnJlYWRjcnVtYj5cbiAgICAgKi9cbiAgICBicmVhZGNydW1iT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JyZWFkY3J1bWJPYnNlcnZhYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBicmVhZGNydW1iIHZhbHVlIGlmIG5ldmVyIGNvbm5lY3RlZC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8QnJlYWRjcnVtYj5cbiAgICAgKi9cbiAgICBuZXZlckNvbm5lY3RlZEJyZWFkY3J1bWJPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8QnJlYWRjcnVtYj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbmV2ZXJDb25uZWN0ZWRCcmVhZGNydW1iT2JzZXJ2YWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIGN1cnJlbnQgaXRlbS4gVXNlZCBmb3IgYWNjZXNzaWJpbGl0eSBwdXJwb3Nlcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjdXJyZW50SXRlbSBhcyBCcmVhZGNydW1iSXRlbVxuICAgICAqL1xuICAgIHNldEN1cnJlbnRCcmVhZGNydW1iKGN1cnJlbnRJdGVtOiBCcmVhZGNydW1iSXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50QnJlYWRjcnVtYkl0ZW0ubmV4dChjdXJyZW50SXRlbSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBjdXJyZW50IGJyZWFkY3J1bWIgY29uZmlndXJhdGlvbi5cbiAgICAgKlxuICAgICAqIFNldCB0byBgbnVsbGAgdG8gZGlzYWJsZSB0aGUgYnJlYWRjcnVtYi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb25maWd1cmF0aW9uIGFzIEJyZWFkY3J1bWJDb25maWd1cmF0aW9uXG4gICAgICovXG4gICAgc2V0Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uOiBCcmVhZGNydW1iQ29uZmlndXJhdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9icmVhZGNydW1iQ29uZmlndXJhdGlvbi5uZXh0KGNvbmZpZ3VyYXRpb24pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,10 +1,11 @@
1
1
  import { Component, Input } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { first, map } from 'rxjs/operators';
2
+ import { BehaviorSubject, combineLatest } from 'rxjs';
3
+ import { first, map, tap } from 'rxjs/operators';
4
4
  import { BreadcrumbEventService } from '../foehn-breadcrumb/breadcrumb-event.service';
5
5
  import { FoehnNavigationService } from '../foehn-navigation/foehn-navigation.service';
6
6
  import { FoehnPageService } from '../foehn-page/foehn-page.service';
7
7
  import { ActionStatut, GesdemStatutUtils } from '../gesdem/gesdem-statut-utils';
8
+ import { ApplicationInfoService } from '../sdk-appinfo/application-info.service';
8
9
  import { SdkEventType } from '../sdk-events-logger/sdk-event-type';
9
10
  import { SdkEventsLoggerService } from '../sdk-events-logger/sdk-events-logger.service';
10
11
  import { SessionInfo } from '../sdk-session-info/session-info.service';
@@ -43,6 +44,7 @@ export class GesdemConfirmationComponent {
43
44
  this._sessionInfo = ServiceLocator.injector.get(SessionInfo);
44
45
  this._navigation = ServiceLocator.injector.get(FoehnNavigationService);
45
46
  this._eventsLoggerService = ServiceLocator.injector.get(SdkEventsLoggerService);
47
+ this._applicationInfoService = ServiceLocator.injector.get(ApplicationInfoService);
46
48
  const route = FoehnNavigationService.getRootRouteRecursive(activatedRoute.snapshot);
47
49
  this._navigation.initRoute(route);
48
50
  // Override from the routing.
@@ -86,18 +88,20 @@ export class GesdemConfirmationComponent {
86
88
  this.closeButtonConnectedText ||
87
89
  'gesdem-confirmation.exit-button-connected';
88
90
  // default closeLink if not by @Input and not by route data
89
- this.foehnPageService
90
- .onEtapeIdChange()
91
- .pipe(first())
92
- // eslint-disable-next-line rxjs/no-nested-subscribe,rxjs-angular/prefer-async-pipe
93
- .subscribe(etapeId => {
91
+ combineLatest([
92
+ this.foehnPageService.onEtapeIdChange().pipe(first()),
93
+ this._applicationInfoService.data.pipe(first())
94
+ ])
95
+ .pipe(first(), tap(([etapeId, appInfo]) => {
94
96
  if (!this.closeLinkNotConnected.getValue()) {
95
- this.closeLinkNotConnected.next(`https://www.vd.ch/go.to?prestation=${etapeId}`);
97
+ this.closeLinkNotConnected.next(`${appInfo.configuration.portail.baseVdChUrl}/go.to?prestation=${etapeId}`);
96
98
  }
97
99
  if (!this.closeLinkConnected.getValue()) {
98
100
  this.closeLinkConnected.next('/100018/logout');
99
101
  }
100
- });
102
+ }))
103
+ // eslint-disable-next-line rxjs/no-nested-subscribe,rxjs-angular/prefer-async-pipe,rxjs/no-nested-subscribe
104
+ .subscribe();
101
105
  });
102
106
  }
103
107
  get isTransferred() {
@@ -226,4 +230,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
226
230
  }], hideReference: [{
227
231
  type: Input
228
232
  }] } });
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzZGVtLWNvbmZpcm1hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZ2VzZGVtLWNvbmZpcm1hdGlvbi9nZXNkZW0tY29uZmlybWF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9nZXNkZW0tY29uZmlybWF0aW9uL2dlc2RlbS1jb25maXJtYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBTVIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7OztBQUVwRCxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBYyxFQUFXLEVBQUUsQ0FDakQsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxD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c0JBRHZCLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZSxcbiAgICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0LCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEJyZWFkY3J1bWJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1icmVhZGNydW1iL2JyZWFkY3J1bWItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBGb2Vobk5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tbmF2aWdhdGlvbi9mb2Vobi1uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5QYWdlU2VydmljZSB9IGZyb20gJy4uL2ZvZWhuLXBhZ2UvZm9laG4tcGFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IEdlc2RlbUhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VzZGVtL2dlc2RlbS1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aW9uU3RhdHV0LCBHZXNkZW1TdGF0dXRVdGlscyB9IGZyb20gJy4uL2dlc2RlbS9nZXNkZW0tc3RhdHV0LXV0aWxzJztcbmltcG9ydCB7IFNka0RpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLWRpY3Rpb25hcnkvc2RrLWRpY3Rpb25hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBTZGtFdmVudFR5cGUgfSBmcm9tICcuLi9zZGstZXZlbnRzLWxvZ2dlci9zZGstZXZlbnQtdHlwZSc7XG5pbXBvcnQgeyBTZGtFdmVudHNMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLWV2ZW50cy1sb2dnZXIvc2RrLWV2ZW50cy1sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uSW5mbyB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VydmljZUxvY2F0b3IgfSBmcm9tICcuLi9zZXJ2aWNlLWxvY2F0b3InO1xuXG5jb25zdCBpc0Jvb2xlYW5EZWZpbmVkID0gKHZhbHVlOiBib29sZWFuKTogYm9vbGVhbiA9PlxuICAgIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSBmYWxzZTtcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2dlc2RlbS1jb25maXJtYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9nZXNkZW0tY29uZmlybWF0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBHZXNkZW1Db25maXJtYXRpb25Db21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpXG4gICAgcmVmZXJlbmNlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldFBhZ2VUaXRsZSA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIGhhc0VtYWlsU2VudCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBjbG9zZUhyZWY6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VIcmVmQ29ubmVjdGVkOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHNob3dEb3dubG9hZFBkZlJlY2FwQnV0dG9uID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2hvd0xpbmtUb015RGVtYW5kZXMgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBkZW1hbmRlSXNDbG9zZWRPblRyYW5zbWl0ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGFjdGlvblN0YXR1dCA9IEFjdGlvblN0YXR1dC5UUkFOU0ZFUlJFRDtcblxuICAgIEBJbnB1dCgpXG4gICAgY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZSA9XG4gICAgICAgICdWb3VzIGF2ZXogZWZmZWN0dcOpIGxhIHByZW1pw6hyZSDDqXRhcGUgZGUgdm90cmUgZMOpbWFyY2hlIGF2ZWMgc3VjY8OocyAhJztcblxuICAgIEBJbnB1dCgpXG4gICAgY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZUlmQWJhbmRvbmVkID1cbiAgICAgICAgXCJMYSBkZW1hbmRlIMOgIGxhcXVlbGxlIHZvdXMgZXNzYXlleiBkJ2FjY8OpZGVyIGEgw6l0w6kgYWJhbmRvbm7DqWUuXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIGRvd25sb2FkUGRmUmVjYXBCdXR0b25UZXh0OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlQnV0dG9uVGV4dDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBjbG9zZUJ1dHRvbkNvbm5lY3RlZFRleHQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgYmFzZVVybFBkZiA9ICdhcGkvZG9jdW1lbnQvcGRmLyc7XG5cbiAgICBASW5wdXQoKVxuICAgIGhpZGVSZWZlcmVuY2UgPSBmYWxzZTtcblxuICAgIGlzQ29ubmVjdGVkQ3liZXI6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgZmlyc3RQYWdlTGluayA9ICcvJztcbiAgICB1cmxQZGY6IHN0cmluZztcbiAgICBjbG9zZUxpbmtOb3RDb25uZWN0ZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbCk7XG5cbiAgICBjbG9zZUxpbmtDb25uZWN0ZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbCk7XG5cbiAgICBwcm90ZWN0ZWQgX2JyZWFkY3J1bWJFdmVudFNlcnZpY2U6IEJyZWFkY3J1bWJFdmVudFNlcnZpY2U7XG4gICAgcHJvdGVjdGVkIF9mb2VoblBhZ2VTZXJ2aWNlOiBGb2VoblBhZ2VTZXJ2aWNlO1xuICAgIHByb3RlY3RlZCBfc2Vzc2lvbkluZm86IFNlc3Npb25JbmZvO1xuICAgIHByb3RlY3RlZCBfbmF2aWdhdGlvbjogRm9laG5OYXZpZ2F0aW9uU2VydmljZTtcbiAgICBwcm90ZWN0ZWQgX2V2ZW50c0xvZ2dlclNlcnZpY2U6IFNka0V2ZW50c0xvZ2dlclNlcnZpY2U7XG5cbiAgICBwcml2YXRlIGRhdGFTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIHBhZ2VUaXRsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBnZXNkZW1TZXJ2aWNlOiBHZXNkZW1IYW5kbGVyU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGZvZWhuUGFnZVNlcnZpY2U6IEZvZWhuUGFnZVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogU2RrRGljdGlvbmFyeVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBsb2NhdGlvbjogTG9jYXRpb25cbiAgICApIHtcbiAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkV2ZW50U2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChcbiAgICAgICAgICAgIEJyZWFkY3J1bWJFdmVudFNlcnZpY2VcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fZm9laG5QYWdlU2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChGb2VoblBhZ2VTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5fc2Vzc2lvbkluZm8gPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoU2Vzc2lvbkluZm8pO1xuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KEZvZWhuTmF2aWdhdGlvblNlcnZpY2UpO1xuICAgICAgICB0aGlzLl9ldmVudHNMb2dnZXJTZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgU2RrRXZlbnRzTG9nZ2VyU2VydmljZVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHJvdXRlID0gRm9laG5OYXZpZ2F0aW9uU2VydmljZS5nZXRSb290Um91dGVSZWN1cnNpdmUoXG4gICAgICAgICAgICBhY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdFxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uLmluaXRSb3V0ZShyb3V0ZSk7XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgZnJvbSB0aGUgcm91dGluZy5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICB0aGlzLmRhdGFTdWJzY3JpcHRpb24gPSB0aGlzLmFjdGl2YXRlZFJvdXRlLmRhdGEuc3Vic2NyaWJlKFxuICAgICAgICAgICAgcm91dGVEYXRhID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhc0VtYWlsU2VudCA9IHJvdXRlRGF0YS5oYXNFbWFpbFNlbnQgfHwgdGhpcy5oYXNFbWFpbFNlbnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZUxpbmtOb3RDb25uZWN0ZWQubmV4dChcbiAgICAgICAgICAgICAgICAgICAgcm91dGVEYXRhLmNsb3NlSHJlZiB8fCB0aGlzLmNsb3NlTGlua05vdENvbm5lY3RlZC5nZXRWYWx1ZSgpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlTGlua0Nvbm5lY3RlZC5uZXh0KFxuICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuY2xvc2VIcmVmQ29ubmVjdGVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlTGlua0Nvbm5lY3RlZC5nZXRWYWx1ZSgpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2UgPVxuICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZSB8fFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlSWZBYmFuZG9uZWQgPVxuICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZUlmQWJhbmRvbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZUlmQWJhbmRvbmVkO1xuICAgICAgICAgICAgICAgIGlmIChpc0Jvb2xlYW5EZWZpbmVkKHJvdXRlRGF0YS5zaG93RG93bmxvYWRQZGZSZWNhcEJ1dHRvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93RG93bmxvYWRQZGZSZWNhcEJ1dHRvbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuc2hvd0Rvd25sb2FkUGRmUmVjYXBCdXR0b247XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpc0Jvb2xlYW5EZWZpbmVkKHJvdXRlRGF0YS5zaG93TGlua1RvTXlEZW1hbmRlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93TGlua1RvTXlEZW1hbmRlcyA9IHJvdXRlRGF0YS5zaG93TGlua1RvTXlEZW1hbmRlcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlzQm9vbGVhbkRlZmluZWQocm91dGVEYXRhLmRlbWFuZGVJc0Nsb3NlZE9uVHJhbnNtaXQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVtYW5kZUlzQ2xvc2VkT25UcmFuc21pdCA9XG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuZGVtYW5kZUlzQ2xvc2VkT25UcmFuc21pdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlzQm9vbGVhbkRlZmluZWQocm91dGVEYXRhLmhpZGVSZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZVJlZmVyZW5jZSA9IHJvdXRlRGF0YS5oaWRlUmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmRvd25sb2FkUGRmUmVjYXBCdXR0b25UZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgcm91dGVEYXRhLmRvd25sb2FkUGRmUmVjYXBCdXR0b25UZXh0IHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG93bmxvYWRQZGZSZWNhcEJ1dHRvblRleHQgfHxcbiAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZG93bmxvYWQtcGRmLXJlY2FwLWJ1dHRvbic7XG4gICAgICAgICAgICAgICAgdGhpcy5iYXNlVXJsUGRmID0gcm91dGVEYXRhLmJhc2VVcmxQZGYgfHwgdGhpcy5iYXNlVXJsUGRmO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VCdXR0b25UZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgcm91dGVEYXRhLmNsb3NlQnV0dG9uVGV4dCB8fFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQnV0dG9uVGV4dCB8fFxuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5leGl0LWJ1dHRvbic7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQnV0dG9uQ29ubmVjdGVkVGV4dCA9XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlRGF0YS5jbG9zZUJ1dHRvbkNvbm5lY3RlZFRleHQgfHxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZUJ1dHRvbkNvbm5lY3RlZFRleHQgfHxcbiAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZXhpdC1idXR0b24tY29ubmVjdGVkJztcblxuICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgY2xvc2VMaW5rIGlmIG5vdCBieSBASW5wdXQgYW5kIG5vdCBieSByb3V0ZSBkYXRhXG4gICAgICAgICAgICAgICAgdGhpcy5mb2VoblBhZ2VTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgIC5vbkV0YXBlSWRDaGFuZ2UoKVxuICAgICAgICAgICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy9uby1uZXN0ZWQtc3Vic2NyaWJlLHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGV0YXBlSWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNsb3NlTGlua05vdENvbm5lY3RlZC5nZXRWYWx1ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZUxpbmtOb3RDb25uZWN0ZWQubmV4dChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGh0dHBzOi8vd3d3LnZkLmNoL2dvLnRvP3ByZXN0YXRpb249JHtldGFwZUlkfWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNsb3NlTGlua0Nvbm5lY3RlZC5nZXRWYWx1ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZUxpbmtDb25uZWN0ZWQubmV4dCgnLzEwMDAxOC9sb2dvdXQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGlzVHJhbnNmZXJyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmFjdGlvblN0YXR1dCAmJiB0aGlzLmFjdGlvblN0YXR1dCA9PT0gQWN0aW9uU3RhdHV0LlRSQU5TRkVSUkVEXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGlzQWJhbmRvbmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5hY3Rpb25TdGF0dXQgJiYgdGhpcy5hY3Rpb25TdGF0dXQgPT09IEFjdGlvblN0YXR1dC5BQkFORE9ORURcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgaXNJblByb2dyZXNzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIUdlc2RlbVN0YXR1dFV0aWxzLmlzRmluYWwodGhpcy5hY3Rpb25TdGF0dXQpO1xuICAgIH1cblxuICAgIGdldCBzdWNjZXNzTGFiZWxEaWNvS2V5KCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGlzRmlyc3RBY3Rpb24gPVxuICAgICAgICAgICAgdGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZT8ubWV0YT8uY3VycmVudEFjdGlvbiA9PT0gMTtcbiAgICAgICAgcmV0dXJuIGlzRmlyc3RBY3Rpb25cbiAgICAgICAgICAgID8gJ2dlc2RlbS1jb25maXJtYXRpb24uc3VjY2Vzcy1sYWJlbCdcbiAgICAgICAgICAgIDogJ2dlc2RlbS1jb25maXJtYXRpb24ubmV4dC1zdGVwLnN1Y2Nlc3MtbGFiZWwnO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2hhbmdlTm90Q29ubmVjdGVkOiBTaW1wbGVDaGFuZ2UgPSBjaGFuZ2VzLmNsb3NlSHJlZjtcbiAgICAgICAgaWYgKGNoYW5nZU5vdENvbm5lY3RlZCAmJiBjaGFuZ2VOb3RDb25uZWN0ZWQuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlTGlua05vdENvbm5lY3RlZC5uZXh0KGNoYW5nZU5vdENvbm5lY3RlZC5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2hhbmdlQ29ubmVjdGVkOiBTaW1wbGVDaGFuZ2UgPSBjaGFuZ2VzLmNsb3NlSHJlZkNvbm5lY3RlZDtcbiAgICAgICAgaWYgKGNoYW5nZUNvbm5lY3RlZCAmJiBjaGFuZ2VDb25uZWN0ZWQuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlTGlua0Nvbm5lY3RlZC5uZXh0KGNoYW5nZUNvbm5lY3RlZC5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ290VG9Ub3AoKTtcbiAgICAgICAgY29uc3QgbGFzdFJlc3BvbnNlID0gdGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZTtcbiAgICAgICAgaWYgKGxhc3RSZXNwb25zZSkge1xuICAgICAgICAgICAgdGhpcy5yZWZlcmVuY2UgPSBsYXN0UmVzcG9uc2UubWV0YS5yZWZlcmVuY2U7XG4gICAgICAgICAgICB0aGlzLmFjdGlvblN0YXR1dCA9XG4gICAgICAgICAgICAgICAgQWN0aW9uU3RhdHV0W2xhc3RSZXNwb25zZS5tZXRhLnN0YXR1dCBhcyBBY3Rpb25TdGF0dXRdO1xuICAgICAgICAgICAgdGhpcy51cmxQZGYgPSB0aGlzLmJhc2VVcmxQZGYgKyB0aGlzLnJlZmVyZW5jZTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRBY3Rpb24gPSBsYXN0UmVzcG9uc2UubWV0YS5jdXJyZW50QWN0aW9uO1xuICAgICAgICAgICAgaWYgKCEhY3VycmVudEFjdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMudXJsUGRmICs9IGAtJHtjdXJyZW50QWN0aW9ufWA7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubG9jYXRpb24ucGF0aCgpLmluY2x1ZGVzKGAvJHt0aGlzLnJlZmVyZW5jZX0vYCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZnVsbFJlZmVyZW5jZVVybCA9IHRoaXMubG9jYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIC5wYXRoKClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVmZXJlbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke3RoaXMucmVmZXJlbmNlfS0ke2N1cnJlbnRBY3Rpb259YFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoZnVsbFJlZmVyZW5jZVVybCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBsYW5ndWFnZUNvZGUgPSBsYXN0UmVzcG9uc2UuZm9ybS5sYW5ndWFnZTtcbiAgICAgICAgICAgIHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuY2hhbmdlTGFuZ3VhZ2UobGFuZ3VhZ2VDb2RlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdoZXRoZXIgdGhlIHVzZXIgaGFzIGEgY29udGV4dCB3ZSBjb25zaWRlciBpdCBhcyBjb25uZWN0ZWQuXG4gICAgICAgIHRoaXMuaXNDb25uZWN0ZWRDeWJlciA9IHRoaXMuX3Nlc3Npb25JbmZvLmRhdGEucGlwZShcbiAgICAgICAgICAgIG1hcCh1c2VySW5mbyA9PiAhIXVzZXJJbmZvICYmICEhdXNlckluZm8uY29udGV4dClcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodGhpcy5zZXRQYWdlVGl0bGUpIHtcbiAgICAgICAgICAgIHRoaXMucGFnZVRpdGxlU3Vic2NyaXB0aW9uID0gdGhpcy5kaWN0aW9uYXJ5U2VydmljZVxuICAgICAgICAgICAgICAgIC5nZXRLZXkoJ2dlc2RlbS1jb25maXJtYXRpb24udGl0bGUnKVxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGVcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHRpdGxlID0+IHRoaXMuX2ZvZWhuUGFnZVNlcnZpY2Uuc2V0UGFnZVRpdGxlKHRpdGxlKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZpcnN0UGFnZUxpbmsgPSB0aGlzLmdldEZpcnN0UGFnZUxpbmsoKTtcblxuICAgICAgICB0aGlzLl9icmVhZGNydW1iRXZlbnRTZXJ2aWNlLnNraXBMZWF2aW5nQWxlcnRCZWNhdXNlRGVtYW5kSXNUcmFuc21pdHRlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRhdGFTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBhZ2VUaXRsZVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5wYWdlVGl0bGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhc0Nvbm5lY3RlZENvbnRlbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGhhc0NvbmZNZXNzYWdlID1cbiAgICAgICAgICAgIHRoaXMuaXNUcmFuc2ZlcnJlZCAmJiAhIXRoaXMuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZTtcbiAgICAgICAgY29uc3QgaGFzQWJhbmRvbmVkQ29uZk1lc3NhZ2UgPVxuICAgICAgICAgICAgIXRoaXMuaXNUcmFuc2ZlcnJlZCAmJlxuICAgICAgICAgICAgISF0aGlzLmNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2VJZkFiYW5kb25lZDtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgaGFzQ29uZk1lc3NhZ2UgfHxcbiAgICAgICAgICAgIGhhc0FiYW5kb25lZENvbmZNZXNzYWdlIHx8XG4gICAgICAgICAgICAhIXRoaXMuc2hvd0xpbmtUb015RGVtYW5kZXNcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBsb2dQZGZEb3dubG9hZGVkRXZlbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2V2ZW50c0xvZ2dlclNlcnZpY2UuYWRkRXZlbnQoU2RrRXZlbnRUeXBlLlBERl9SRUNBUF9ET1dOTE9BRCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGaXJzdFBhZ2VMaW5rKCk6IHN0cmluZyB7XG4gICAgICAgIGxldCBsaW5rID0gJy8nO1xuICAgICAgICBjb25zdCBmaXJzdFBhZ2UgPSB0aGlzLl9uYXZpZ2F0aW9uLmdldEZpcnN0Um91dGUoKTtcbiAgICAgICAgaWYgKHRoaXMuZ2VzZGVtU2VydmljZS5wcmVmaXgpIHtcbiAgICAgICAgICAgIGxpbmsgKz0gYCR7dGhpcy5nZXNkZW1TZXJ2aWNlLnByZWZpeH0vYDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHtsaW5rICsgdGhpcy5yZWZlcmVuY2V9LyR7Zmlyc3RQYWdlLnBhdGh9YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdvdFRvVG9wKCk6IHZvaWQge1xuICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lciBtdC01XCIgKm5nSWY9XCJyZWZlcmVuY2UgJiYgIWlzSW5Qcm9ncmVzc1wiPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJhbGVydCB0ZXh0LWNlbnRlciBtYi0yXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiaXNUcmFuc2ZlcnJlZCA/ICdhbGVydC1zdWNjZXNzJyA6ICdhbGVydC1kYW5nZXInXCJcbiAgICA+XG4gICAgICAgIDxwIGNsYXNzPVwiaDJcIj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgaXNUcmFuc2ZlcnJlZFxuICAgICAgICAgICAgICAgICAgICA/IChzdWNjZXNzTGFiZWxEaWNvS2V5IHwgZnJvbURpY3Rpb25hcnkpXG4gICAgICAgICAgICAgICAgICAgIDogKCdnZXNkZW0tY29uZmlybWF0aW9uLmFib3J0LWxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5KVxuICAgICAgICAgICAgfX1cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGwgKm5nSWY9XCIhaGlkZVJlZmVyZW5jZVwiPlxuICAgICAgICAgICAgPGR0IGNsYXNzPVwiZm9udC13ZWlnaHQtbGlnaHRcIj5cbiAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5yZWZlcmVuY2UtdGl0bGUubGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9kdD5cbiAgICAgICAgICAgIDxkZCBpZD1cIm51bURlbWFuZGVcIiBjbGFzcz1cImg0IGQtYmxvY2sgbXQtM1wiPnt7IHJlZmVyZW5jZSB9fTwvZGQ+XG4gICAgICAgIDwvZGw+XG4gICAgICAgIDxwICpuZ0lmPVwiaGFzRW1haWxTZW50ICYmICEoaXNDb25uZWN0ZWRDeWJlciB8IGFzeW5jKVwiPlxuICAgICAgICAgICAge3sgJ2dlc2RlbS1jb25maXJtYXRpb24ubWFpbC1zZW50LmxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgIDwvcD5cbiAgICA8L2Rpdj5cblxuICAgIDxzcGFuXG4gICAgICAgIFtpbm5lckhUTUxdPVwiJ2dlc2RlbS1jb25maXJtYXRpb24uZXh0cmEtY29udGVudCcgfCBmcm9tRGljdGlvbmFyeVwiXG4gICAgPjwvc3Bhbj5cblxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJjb2wtbWQtMTIgdmQtaGlnaGxpZ2h0XCJcbiAgICAgICAgKm5nSWY9XCIoaXNDb25uZWN0ZWRDeWJlciB8IGFzeW5jKSAmJiBoYXNDb25uZWN0ZWRDb250ZW50KClcIlxuICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwic3Itb25seVwiXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnRyYW5zbWlzc2lvbi1pbmZvcm1hdGlvbi5sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgXCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xXCI+XG4gICAgICAgICAgICAgICAgPGZvZWhuLWljb24taW5mby1jaXJjbGUgY2xhc3M9XCJoM1wiPjwvZm9laG4taWNvbi1pbmZvLWNpcmNsZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMVwiPlxuICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1RyYW5zZmVycmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBjb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlSWZBYmFuZG9uZWRcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9wPlxuICAgICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgICAgIGlkPVwibGlua1RvVHJlYXRlZERlbWFuZGVzXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dMaW5rVG9NeURlbWFuZGVzICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGVtYW5kZUlzQ2xvc2VkT25UcmFuc21pdCB8fCBpc0FiYW5kb25lZClcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5kZW1hbmQtZGV0YWlsLWxpbmsubGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi8xMDAwMDIvZGVtYW5kZXMve3sgcmVmZXJlbmNlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1kZW1hbmQtZGV0YWlsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5OiB7IHJlZmVyZW5jZTogcmVmZXJlbmNlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInJlZmVyZW5jZVwiXG4gICAgICAgICAgICAgICAgICAgID48L2E+XG4gICAgICAgICAgICAgICAgICAgIC5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJsaW5rVG9JblByb2dyZXNzRGVtYW5kZXNcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xpbmtUb015RGVtYW5kZXMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICFkZW1hbmRlSXNDbG9zZWRPblRyYW5zbWl0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhaXNBYmFuZG9uZWRcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5kZW1hbmQtcHJvY2Vzc2luZy1wcm9ncmVzcy1saW5rLmxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCIvMTAwMDAyL2RlbWFuZGVzL3t7IHJlZmVyZW5jZSB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXNkZW0tZGVtYW5kLWRldGFpbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeTogeyByZWZlcmVuY2U6IHJlZmVyZW5jZSB9XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJyZWZlcmVuY2VcIlxuICAgICAgICAgICAgICAgICAgICA+PC9hPlxuICAgICAgICAgICAgICAgICAgICAuXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBsaXN0LXVuc3R5bGVkIGQtbWQtZmxleCBwLTAgbXQtNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWwtMCBtci1tZC1hdXRvIG1yLW1kLTIgbWItMiBtdC0yXCI+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0Rvd25sb2FkUGRmUmVjYXBCdXR0b25cIlxuICAgICAgICAgICAgICAgIFtocmVmXT1cInVybFBkZlwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImxvZ1BkZkRvd25sb2FkZWRFdmVudCgpXCJcbiAgICAgICAgICAgICAgICBpZD1cInRlbGVjaGFyZ2VyQnRuXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHctMTAwXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLmRvd25sb2FkLXBkZi5idXR0b24udGl0bGUnIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGRvd25sb2FkUGRmUmVjYXBCdXR0b25UZXh0IHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJtci0wIG1sLW1kLWF1dG8gbWItMiBtdC0yXCJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgIShpc0Nvbm5lY3RlZEN5YmVyIHwgYXN5bmMpICYmIGNsb3NlTGlua05vdENvbm5lY3RlZFxuICAgICAgICAgICAgICAgICAgICB8IGFzeW5jIGFzIGxpbmtcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxhIFtocmVmXT1cImxpbmtcIiBpZD1cInRlcm1pbmVyQnRuXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy0xMDBcIj5cbiAgICAgICAgICAgICAgICB7eyBjbG9zZUJ1dHRvblRleHQgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cIm1yLTAgbWwtbWQtYXV0byBtYi0yIG10LTJcIlxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAhIShpc0Nvbm5lY3RlZEN5YmVyIHwgYXN5bmMpICYmIGNsb3NlTGlua0Nvbm5lY3RlZFxuICAgICAgICAgICAgICAgICAgICB8IGFzeW5jIGFzIGxpbmtcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgW2hyZWZdPVwibGlua1wiXG4gICAgICAgICAgICAgICAgaWQ9XCJ0ZXJtaW5lckNvbm5lY3RlZEJ0blwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy0xMDBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGNsb3NlQnV0dG9uQ29ubmVjdGVkVGV4dCB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJjb250YWluZXIgbXQtNVwiICpuZ0lmPVwiIWhpZGVSZWZlcmVuY2UgJiYgcmVmZXJlbmNlICYmIGlzSW5Qcm9ncmVzc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvIHRleHQtY2VudGVyIG1iLTJcIj5cbiAgICAgICAgPHBcbiAgICAgICAgICAgIGNsYXNzPVwiaDJcIlxuICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5kZW1hbmQtaW4tcHJvZ3Jlc3MudGl0bGUnIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgIFwiXG4gICAgICAgID48L3A+XG4gICAgICAgIDxkbD5cbiAgICAgICAgICAgIDxkdCBjbGFzcz1cImZvbnQtd2VpZ2h0LWxpZ2h0XCI+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1jb25maXJtYXRpb24ucmVmZXJlbmNlLXRpdGxlLmxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvZHQ+XG4gICAgICAgICAgICA8ZGQgaWQ9XCJudW1EZW1hbmRlRW5Db3Vyc1wiIGNsYXNzPVwiaDQgZC1ibG9jayBtdC0zXCI+XG4gICAgICAgICAgICAgICAge3sgcmVmZXJlbmNlIH19XG4gICAgICAgICAgICA8L2RkPlxuICAgICAgICA8L2RsPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiB2ZC1oaWdobGlnaHRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xXCI+XG4gICAgICAgICAgICAgICAgPGZvZWhuLWljb24taW5mby1jaXJjbGUgY2xhc3M9XCJoM1wiPjwvZm9laG4taWNvbi1pbmZvLWNpcmNsZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMVwiPlxuICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1jb25maXJtYXRpb24ucmVzdW1lLW15LWRlbWFuZC5sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJmaXJzdFBhZ2VMaW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnJlc3VtZS1teS1kZW1hbmQuYnV0dG9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzZGVtLWNvbmZpcm1hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZ2VzZGVtLWNvbmZpcm1hdGlvbi9nZXNkZW0tY29uZmlybWF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9nZXNkZW0tY29uZmlybWF0aW9uL2dlc2RlbS1jb25maXJtYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILFNBQVMsRUFDVCxLQUFLLEVBTVIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDeEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7O0FBRXBELE1BQU0sZ0JBQWdCLEdB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LFNBQVM7K0JBRUkscUJBQXFCO2lPQU0vQixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixLQUFLO2dCQUlOLDBCQUEwQjtzQkFEekIsS0FBSztnQkFJTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBSU4seUJBQXlCO3NCQUR4QixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTiw0QkFBNEI7c0JBRDNCLEtBQUs7Z0JBS04sdUNBQXVDO3NCQUR0QyxLQUFLO2dCQUtOLDBCQUEwQjtzQkFEekIsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sd0JBQXdCO3NCQUR2QixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBTaW1wbGVDaGFuZ2UsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEJyZWFkY3J1bWJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1icmVhZGNydW1iL2JyZWFkY3J1bWItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBGb2Vobk5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tbmF2aWdhdGlvbi9mb2Vobi1uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9laG5QYWdlU2VydmljZSB9IGZyb20gJy4uL2ZvZWhuLXBhZ2UvZm9laG4tcGFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IEdlc2RlbUhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VzZGVtL2dlc2RlbS1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aW9uU3RhdHV0LCBHZXNkZW1TdGF0dXRVdGlscyB9IGZyb20gJy4uL2dlc2RlbS9nZXNkZW0tc3RhdHV0LXV0aWxzJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2UgfSBmcm9tICcuLi9zZGstYXBwaW5mby9hcHBsaWNhdGlvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2RrRGljdGlvbmFyeVNlcnZpY2UgfSBmcm9tICcuLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFNka0V2ZW50VHlwZSB9IGZyb20gJy4uL3Nkay1ldmVudHMtbG9nZ2VyL3Nkay1ldmVudC10eXBlJztcbmltcG9ydCB7IFNka0V2ZW50c0xvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi9zZGstZXZlbnRzLWxvZ2dlci9zZGstZXZlbnRzLWxvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25JbmZvIH0gZnJvbSAnLi4vc2RrLXNlc3Npb24taW5mby9zZXNzaW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBTZXJ2aWNlTG9jYXRvciB9IGZyb20gJy4uL3NlcnZpY2UtbG9jYXRvcic7XG5cbmNvbnN0IGlzQm9vbGVhbkRlZmluZWQgPSAodmFsdWU6IGJvb2xlYW4pOiBib29sZWFuID0+XG4gICAgdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09IGZhbHNlO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZ2VzZGVtLWNvbmZpcm1hdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dlc2RlbS1jb25maXJtYXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEdlc2RlbUNvbmZpcm1hdGlvbkNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KClcbiAgICByZWZlcmVuY2U6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0UGFnZVRpdGxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgaGFzRW1haWxTZW50ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlSHJlZjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBjbG9zZUhyZWZDb25uZWN0ZWQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgc2hvd0Rvd25sb2FkUGRmUmVjYXBCdXR0b24gPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBzaG93TGlua1RvTXlEZW1hbmRlcyA9IHRydWU7XG5cbiAgICBASW5wdXQoKVxuICAgIGRlbWFuZGVJc0Nsb3NlZE9uVHJhbnNtaXQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgYWN0aW9uU3RhdHV0ID0gQWN0aW9uU3RhdHV0LlRSQU5TRkVSUkVEO1xuXG4gICAgQElucHV0KClcbiAgICBjb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlID1cbiAgICAgICAgJ1ZvdXMgYXZleiBlZmZlY3R1w6kgbGEgcHJlbWnDqHJlIMOpdGFwZSBkZSB2b3RyZSBkw6ltYXJjaGUgYXZlYyBzdWNjw6hzICEnO1xuXG4gICAgQElucHV0KClcbiAgICBjb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlSWZBYmFuZG9uZWQgPVxuICAgICAgICBcIkxhIGRlbWFuZGUgw6AgbGFxdWVsbGUgdm91cyBlc3NheWV6IGQnYWNjw6lkZXIgYSDDqXTDqSBhYmFuZG9ubsOpZS5cIjtcblxuICAgIEBJbnB1dCgpXG4gICAgZG93bmxvYWRQZGZSZWNhcEJ1dHRvblRleHQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VCdXR0b25UZXh0OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlQnV0dG9uQ29ubmVjdGVkVGV4dDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBiYXNlVXJsUGRmID0gJ2FwaS9kb2N1bWVudC9wZGYvJztcblxuICAgIEBJbnB1dCgpXG4gICAgaGlkZVJlZmVyZW5jZSA9IGZhbHNlO1xuXG4gICAgaXNDb25uZWN0ZWRDeWJlcjogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBmaXJzdFBhZ2VMaW5rID0gJy8nO1xuICAgIHVybFBkZjogc3RyaW5nO1xuICAgIGNsb3NlTGlua05vdENvbm5lY3RlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihudWxsKTtcblxuICAgIGNsb3NlTGlua0Nvbm5lY3RlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihudWxsKTtcblxuICAgIHByb3RlY3RlZCBfYnJlYWRjcnVtYkV2ZW50U2VydmljZTogQnJlYWRjcnVtYkV2ZW50U2VydmljZTtcbiAgICBwcm90ZWN0ZWQgX2ZvZWhuUGFnZVNlcnZpY2U6IEZvZWhuUGFnZVNlcnZpY2U7XG4gICAgcHJvdGVjdGVkIF9zZXNzaW9uSW5mbzogU2Vzc2lvbkluZm87XG4gICAgcHJvdGVjdGVkIF9uYXZpZ2F0aW9uOiBGb2Vobk5hdmlnYXRpb25TZXJ2aWNlO1xuICAgIHByb3RlY3RlZCBfZXZlbnRzTG9nZ2VyU2VydmljZTogU2RrRXZlbnRzTG9nZ2VyU2VydmljZTtcbiAgICBwcm90ZWN0ZWQgX2FwcGxpY2F0aW9uSW5mb1NlcnZpY2U6IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2U7XG5cbiAgICBwcml2YXRlIGRhdGFTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIHBhZ2VUaXRsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBnZXNkZW1TZXJ2aWNlOiBHZXNkZW1IYW5kbGVyU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGZvZWhuUGFnZVNlcnZpY2U6IEZvZWhuUGFnZVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogU2RrRGljdGlvbmFyeVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBsb2NhdGlvbjogTG9jYXRpb25cbiAgICApIHtcbiAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkV2ZW50U2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChcbiAgICAgICAgICAgIEJyZWFkY3J1bWJFdmVudFNlcnZpY2VcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fZm9laG5QYWdlU2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChGb2VoblBhZ2VTZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5fc2Vzc2lvbkluZm8gPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoU2Vzc2lvbkluZm8pO1xuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KEZvZWhuTmF2aWdhdGlvblNlcnZpY2UpO1xuICAgICAgICB0aGlzLl9ldmVudHNMb2dnZXJTZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgU2RrRXZlbnRzTG9nZ2VyU2VydmljZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9hcHBsaWNhdGlvbkluZm9TZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgQXBwbGljYXRpb25JbmZvU2VydmljZVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHJvdXRlID0gRm9laG5OYXZpZ2F0aW9uU2VydmljZS5nZXRSb290Um91dGVSZWN1cnNpdmUoXG4gICAgICAgICAgICBhY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdFxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uLmluaXRSb3V0ZShyb3V0ZSk7XG5cbiAgICAgICAgLy8gT3ZlcnJpZGUgZnJvbSB0aGUgcm91dGluZy5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICB0aGlzLmRhdGFTdWJzY3JpcHRpb24gPSB0aGlzLmFjdGl2YXRlZFJvdXRlLmRhdGEuc3Vic2NyaWJlKFxuICAgICAgICAgICAgcm91dGVEYXRhID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhc0VtYWlsU2VudCA9IHJvdXRlRGF0YS5oYXNFbWFpbFNlbnQgfHwgdGhpcy5oYXNFbWFpbFNlbnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZUxpbmtOb3RDb25uZWN0ZWQubmV4dChcbiAgICAgICAgICAgICAgICAgICAgcm91dGVEYXRhLmNsb3NlSHJlZiB8fCB0aGlzLmNsb3NlTGlua05vdENvbm5lY3RlZC5nZXRWYWx1ZSgpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlTGlua0Nvbm5lY3RlZC5uZXh0KFxuICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuY2xvc2VIcmVmQ29ubmVjdGVkIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlTGlua0Nvbm5lY3RlZC5nZXRWYWx1ZSgpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2UgPVxuICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZSB8fFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlSWZBYmFuZG9uZWQgPVxuICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZUlmQWJhbmRvbmVkIHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZUlmQWJhbmRvbmVkO1xuICAgICAgICAgICAgICAgIGlmIChpc0Jvb2xlYW5EZWZpbmVkKHJvdXRlRGF0YS5zaG93RG93bmxvYWRQZGZSZWNhcEJ1dHRvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93RG93bmxvYWRQZGZSZWNhcEJ1dHRvbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuc2hvd0Rvd25sb2FkUGRmUmVjYXBCdXR0b247XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpc0Jvb2xlYW5EZWZpbmVkKHJvdXRlRGF0YS5zaG93TGlua1RvTXlEZW1hbmRlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93TGlua1RvTXlEZW1hbmRlcyA9IHJvdXRlRGF0YS5zaG93TGlua1RvTXlEZW1hbmRlcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlzQm9vbGVhbkRlZmluZWQocm91dGVEYXRhLmRlbWFuZGVJc0Nsb3NlZE9uVHJhbnNtaXQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVtYW5kZUlzQ2xvc2VkT25UcmFuc21pdCA9XG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZURhdGEuZGVtYW5kZUlzQ2xvc2VkT25UcmFuc21pdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlzQm9vbGVhbkRlZmluZWQocm91dGVEYXRhLmhpZGVSZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZVJlZmVyZW5jZSA9IHJvdXRlRGF0YS5oaWRlUmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmRvd25sb2FkUGRmUmVjYXBCdXR0b25UZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgcm91dGVEYXRhLmRvd25sb2FkUGRmUmVjYXBCdXR0b25UZXh0IHx8XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG93bmxvYWRQZGZSZWNhcEJ1dHRvblRleHQgfHxcbiAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZG93bmxvYWQtcGRmLXJlY2FwLWJ1dHRvbic7XG4gICAgICAgICAgICAgICAgdGhpcy5iYXNlVXJsUGRmID0gcm91dGVEYXRhLmJhc2VVcmxQZGYgfHwgdGhpcy5iYXNlVXJsUGRmO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VCdXR0b25UZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgcm91dGVEYXRhLmNsb3NlQnV0dG9uVGV4dCB8fFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQnV0dG9uVGV4dCB8fFxuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5leGl0LWJ1dHRvbic7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQnV0dG9uQ29ubmVjdGVkVGV4dCA9XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlRGF0YS5jbG9zZUJ1dHRvbkNvbm5lY3RlZFRleHQgfHxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZUJ1dHRvbkNvbm5lY3RlZFRleHQgfHxcbiAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZXhpdC1idXR0b24tY29ubmVjdGVkJztcblxuICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgY2xvc2VMaW5rIGlmIG5vdCBieSBASW5wdXQgYW5kIG5vdCBieSByb3V0ZSBkYXRhXG5cbiAgICAgICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2VoblBhZ2VTZXJ2aWNlLm9uRXRhcGVJZENoYW5nZSgpLnBpcGUoZmlyc3QoKSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uSW5mb1NlcnZpY2UuZGF0YS5waXBlKGZpcnN0KCkpXG4gICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFwKChbZXRhcGVJZCwgYXBwSW5mb10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY2xvc2VMaW5rTm90Q29ubmVjdGVkLmdldFZhbHVlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZUxpbmtOb3RDb25uZWN0ZWQubmV4dChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke2FwcEluZm8uY29uZmlndXJhdGlvbi5wb3J0YWlsLmJhc2VWZENoVXJsfS9nby50bz9wcmVzdGF0aW9uPSR7ZXRhcGVJZH1gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5jbG9zZUxpbmtDb25uZWN0ZWQuZ2V0VmFsdWUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlTGlua0Nvbm5lY3RlZC5uZXh0KCcvMTAwMDE4L2xvZ291dCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMvbm8tbmVzdGVkLXN1YnNjcmliZSxyeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGUscnhqcy9uby1uZXN0ZWQtc3Vic2NyaWJlXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgaXNUcmFuc2ZlcnJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uU3RhdHV0ICYmIHRoaXMuYWN0aW9uU3RhdHV0ID09PSBBY3Rpb25TdGF0dXQuVFJBTlNGRVJSRURcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgaXNBYmFuZG9uZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmFjdGlvblN0YXR1dCAmJiB0aGlzLmFjdGlvblN0YXR1dCA9PT0gQWN0aW9uU3RhdHV0LkFCQU5ET05FRFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBpc0luUHJvZ3Jlc3MoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhR2VzZGVtU3RhdHV0VXRpbHMuaXNGaW5hbCh0aGlzLmFjdGlvblN0YXR1dCk7XG4gICAgfVxuXG4gICAgZ2V0IHN1Y2Nlc3NMYWJlbERpY29LZXkoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgaXNGaXJzdEFjdGlvbiA9XG4gICAgICAgICAgICB0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlPy5tZXRhPy5jdXJyZW50QWN0aW9uID09PSAxO1xuICAgICAgICByZXR1cm4gaXNGaXJzdEFjdGlvblxuICAgICAgICAgICAgPyAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5zdWNjZXNzLWxhYmVsJ1xuICAgICAgICAgICAgOiAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5uZXh0LXN0ZXAuc3VjY2Vzcy1sYWJlbCc7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBjaGFuZ2VOb3RDb25uZWN0ZWQ6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXMuY2xvc2VIcmVmO1xuICAgICAgICBpZiAoY2hhbmdlTm90Q29ubmVjdGVkICYmIGNoYW5nZU5vdENvbm5lY3RlZC5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VMaW5rTm90Q29ubmVjdGVkLm5leHQoY2hhbmdlTm90Q29ubmVjdGVkLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjaGFuZ2VDb25uZWN0ZWQ6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXMuY2xvc2VIcmVmQ29ubmVjdGVkO1xuICAgICAgICBpZiAoY2hhbmdlQ29ubmVjdGVkICYmIGNoYW5nZUNvbm5lY3RlZC5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VMaW5rQ29ubmVjdGVkLm5leHQoY2hhbmdlQ29ubmVjdGVkLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nb3RUb1RvcCgpO1xuICAgICAgICBjb25zdCBsYXN0UmVzcG9uc2UgPSB0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlO1xuICAgICAgICBpZiAobGFzdFJlc3BvbnNlKSB7XG4gICAgICAgICAgICB0aGlzLnJlZmVyZW5jZSA9IGxhc3RSZXNwb25zZS5tZXRhLnJlZmVyZW5jZTtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uU3RhdHV0ID1cbiAgICAgICAgICAgICAgICBBY3Rpb25TdGF0dXRbbGFzdFJlc3BvbnNlLm1ldGEuc3RhdHV0IGFzIEFjdGlvblN0YXR1dF07XG4gICAgICAgICAgICB0aGlzLnVybFBkZiA9IHRoaXMuYmFzZVVybFBkZiArIHRoaXMucmVmZXJlbmNlO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEFjdGlvbiA9IGxhc3RSZXNwb25zZS5tZXRhLmN1cnJlbnRBY3Rpb247XG4gICAgICAgICAgICBpZiAoISFjdXJyZW50QWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cmxQZGYgKz0gYC0ke2N1cnJlbnRBY3Rpb259YDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2NhdGlvbi5wYXRoKCkuaW5jbHVkZXMoYC8ke3RoaXMucmVmZXJlbmNlfS9gKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmdWxsUmVmZXJlbmNlVXJsID0gdGhpcy5sb2NhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgLnBhdGgoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5yZWZlcmVuY2V9LSR7Y3VycmVudEFjdGlvbn1gXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZShmdWxsUmVmZXJlbmNlVXJsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGxhbmd1YWdlQ29kZSA9IGxhc3RSZXNwb25zZS5mb3JtLmxhbmd1YWdlO1xuICAgICAgICAgICAgdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5jaGFuZ2VMYW5ndWFnZShsYW5ndWFnZUNvZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2hldGhlciB0aGUgdXNlciBoYXMgYSBjb250ZXh0IHdlIGNvbnNpZGVyIGl0IGFzIGNvbm5lY3RlZC5cbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZEN5YmVyID0gdGhpcy5fc2Vzc2lvbkluZm8uZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKHVzZXJJbmZvID0+ICEhdXNlckluZm8gJiYgISF1c2VySW5mby5jb250ZXh0KVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICh0aGlzLnNldFBhZ2VUaXRsZSkge1xuICAgICAgICAgICAgdGhpcy5wYWdlVGl0bGVTdWJzY3JpcHRpb24gPSB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldEtleSgnZ2VzZGVtLWNvbmZpcm1hdGlvbi50aXRsZScpXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUodGl0bGUgPT4gdGhpcy5fZm9laG5QYWdlU2VydmljZS5zZXRQYWdlVGl0bGUodGl0bGUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmlyc3RQYWdlTGluayA9IHRoaXMuZ2V0Rmlyc3RQYWdlTGluaygpO1xuXG4gICAgICAgIHRoaXMuX2JyZWFkY3J1bWJFdmVudFNlcnZpY2Uuc2tpcExlYXZpbmdBbGVydEJlY2F1c2VEZW1hbmRJc1RyYW5zbWl0dGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YVN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5kYXRhU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucGFnZVRpdGxlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VUaXRsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFzQ29ubmVjdGVkQ29udGVudCgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgaGFzQ29uZk1lc3NhZ2UgPVxuICAgICAgICAgICAgdGhpcy5pc1RyYW5zZmVycmVkICYmICEhdGhpcy5jb25uZWN0ZWRDb25maXJtYXRpb25NZXNzYWdlO1xuICAgICAgICBjb25zdCBoYXNBYmFuZG9uZWRDb25mTWVzc2FnZSA9XG4gICAgICAgICAgICAhdGhpcy5pc1RyYW5zZmVycmVkICYmXG4gICAgICAgICAgICAhIXRoaXMuY29ubmVjdGVkQ29uZmlybWF0aW9uTWVzc2FnZUlmQWJhbmRvbmVkO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBoYXNDb25mTWVzc2FnZSB8fFxuICAgICAgICAgICAgaGFzQWJhbmRvbmVkQ29uZk1lc3NhZ2UgfHxcbiAgICAgICAgICAgICEhdGhpcy5zaG93TGlua1RvTXlEZW1hbmRlc1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGxvZ1BkZkRvd25sb2FkZWRFdmVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZXZlbnRzTG9nZ2VyU2VydmljZS5hZGRFdmVudChTZGtFdmVudFR5cGUuUERGX1JFQ0FQX0RPV05MT0FEKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpcnN0UGFnZUxpbmsoKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGxpbmsgPSAnLyc7XG4gICAgICAgIGNvbnN0IGZpcnN0UGFnZSA9IHRoaXMuX25hdmlnYXRpb24uZ2V0Rmlyc3RSb3V0ZSgpO1xuICAgICAgICBpZiAodGhpcy5nZXNkZW1TZXJ2aWNlLnByZWZpeCkge1xuICAgICAgICAgICAgbGluayArPSBgJHt0aGlzLmdlc2RlbVNlcnZpY2UucHJlZml4fS9gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGAke2xpbmsgKyB0aGlzLnJlZmVyZW5jZX0vJHtmaXJzdFBhZ2UucGF0aH1gO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ290VG9Ub3AoKTogdm9pZCB7XG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyIG10LTVcIiAqbmdJZj1cInJlZmVyZW5jZSAmJiAhaXNJblByb2dyZXNzXCI+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImFsZXJ0IHRleHQtY2VudGVyIG1iLTJcIlxuICAgICAgICBbbmdDbGFzc109XCJpc1RyYW5zZmVycmVkID8gJ2FsZXJ0LXN1Y2Nlc3MnIDogJ2FsZXJ0LWRhbmdlcidcIlxuICAgID5cbiAgICAgICAgPHAgY2xhc3M9XCJoMlwiPlxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICBpc1RyYW5zZmVycmVkXG4gICAgICAgICAgICAgICAgICAgID8gKHN1Y2Nlc3NMYWJlbERpY29LZXkgfCBmcm9tRGljdGlvbmFyeSlcbiAgICAgICAgICAgICAgICAgICAgOiAoJ2dlc2RlbS1jb25maXJtYXRpb24uYWJvcnQtbGFiZWwnIHwgZnJvbURpY3Rpb25hcnkpXG4gICAgICAgICAgICB9fVxuICAgICAgICA8L3A+XG4gICAgICAgIDxkbCAqbmdJZj1cIiFoaWRlUmVmZXJlbmNlXCI+XG4gICAgICAgICAgICA8ZHQgY2xhc3M9XCJmb250LXdlaWdodC1saWdodFwiPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnJlZmVyZW5jZS10aXRsZS5sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L2R0PlxuICAgICAgICAgICAgPGRkIGlkPVwibnVtRGVtYW5kZVwiIGNsYXNzPVwiaDQgZC1ibG9jayBtdC0zXCI+e3sgcmVmZXJlbmNlIH19PC9kZD5cbiAgICAgICAgPC9kbD5cbiAgICAgICAgPHAgKm5nSWY9XCJoYXNFbWFpbFNlbnQgJiYgIShpc0Nvbm5lY3RlZEN5YmVyIHwgYXN5bmMpXCI+XG4gICAgICAgICAgICB7eyAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5tYWlsLXNlbnQubGFiZWwnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgPC9wPlxuICAgIDwvZGl2PlxuXG4gICAgPHNwYW5cbiAgICAgICAgW2lubmVySFRNTF09XCInZ2VzZGVtLWNvbmZpcm1hdGlvbi5leHRyYS1jb250ZW50JyB8IGZyb21EaWN0aW9uYXJ5XCJcbiAgICA+PC9zcGFuPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNvbC1tZC0xMiB2ZC1oaWdobGlnaHRcIlxuICAgICAgICAqbmdJZj1cIihpc0Nvbm5lY3RlZEN5YmVyIHwgYXN5bmMpICYmIGhhc0Nvbm5lY3RlZENvbnRlbnQoKVwiXG4gICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJzci1vbmx5XCJcbiAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgJ2dlc2RlbS1jb25maXJtYXRpb24udHJhbnNtaXNzaW9uLWluZm9ybWF0aW9uLmxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICBcIlxuICAgICAgICA+PC9zcGFuPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTFcIj5cbiAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi1pbmZvLWNpcmNsZSBjbGFzcz1cImgzXCI+PC9mb2Vobi1pY29uLWluZm8tY2lyY2xlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTExXCI+XG4gICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzVHJhbnNmZXJyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbm5lY3RlZENvbmZpcm1hdGlvbk1lc3NhZ2VJZkFiYW5kb25lZFxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L3A+XG4gICAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJsaW5rVG9UcmVhdGVkRGVtYW5kZXNcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xpbmtUb015RGVtYW5kZXMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIChkZW1hbmRlSXNDbG9zZWRPblRyYW5zbWl0IHx8IGlzQWJhbmRvbmVkKVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmRlbWFuZC1kZXRhaWwtbGluay5sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiLzEwMDAwMi9kZW1hbmRlcy97eyByZWZlcmVuY2UgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWRlbWFuZC1kZXRhaWwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnk6IHsgcmVmZXJlbmNlOiByZWZlcmVuY2UgfVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwicmVmZXJlbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgLlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgICBpZD1cImxpbmtUb0luUHJvZ3Jlc3NEZW1hbmRlc1wiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93TGlua1RvTXlEZW1hbmRlcyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIWRlbWFuZGVJc0Nsb3NlZE9uVHJhbnNtaXQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICFpc0FiYW5kb25lZFxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmRlbWFuZC1wcm9jZXNzaW5nLXByb2dyZXNzLWxpbmsubGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cIi8xMDAwMDIvZGVtYW5kZXMve3sgcmVmZXJlbmNlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1kZW1hbmQtZGV0YWlsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5OiB7IHJlZmVyZW5jZTogcmVmZXJlbmNlIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInJlZmVyZW5jZVwiXG4gICAgICAgICAgICAgICAgICAgID48L2E+XG4gICAgICAgICAgICAgICAgICAgIC5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGxpc3QtdW5zdHlsZWQgZC1tZC1mbGV4IHAtMCBtdC00XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtbC0wIG1yLW1kLWF1dG8gbXItbWQtMiBtYi0yIG10LTJcIj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93RG93bmxvYWRQZGZSZWNhcEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2hyZWZdPVwidXJsUGRmXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibG9nUGRmRG93bmxvYWRlZEV2ZW50KClcIlxuICAgICAgICAgICAgICAgIGlkPVwidGVsZWNoYXJnZXJCdG5cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgdy0xMDBcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0uZG93bmxvYWQtcGRmLmJ1dHRvbi50aXRsZScgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgZG93bmxvYWRQZGZSZWNhcEJ1dHRvblRleHQgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cIm1yLTAgbWwtbWQtYXV0byBtYi0yIG10LTJcIlxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAhKGlzQ29ubmVjdGVkQ3liZXIgfCBhc3luYykgJiYgY2xvc2VMaW5rTm90Q29ubmVjdGVkXG4gICAgICAgICAgICAgICAgICAgIHwgYXN5bmMgYXMgbGlua1xuICAgICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGEgW2hyZWZdPVwibGlua1wiIGlkPVwidGVybWluZXJCdG5cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMFwiPlxuICAgICAgICAgICAgICAgIHt7IGNsb3NlQnV0dG9uVGV4dCB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibXItMCBtbC1tZC1hdXRvIG1iLTIgbXQtMlwiXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICEhKGlzQ29ubmVjdGVkQ3liZXIgfCBhc3luYykgJiYgY2xvc2VMaW5rQ29ubmVjdGVkXG4gICAgICAgICAgICAgICAgICAgIHwgYXN5bmMgYXMgbGlua1xuICAgICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBbaHJlZl09XCJsaW5rXCJcbiAgICAgICAgICAgICAgICBpZD1cInRlcm1pbmVyQ29ubmVjdGVkQnRuXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgY2xvc2VCdXR0b25Db25uZWN0ZWRUZXh0IHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImNvbnRhaW5lciBtdC01XCIgKm5nSWY9XCIhaGlkZVJlZmVyZW5jZSAmJiByZWZlcmVuY2UgJiYgaXNJblByb2dyZXNzXCI+XG4gICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm8gdGV4dC1jZW50ZXIgbWItMlwiPlxuICAgICAgICA8cFxuICAgICAgICAgICAgY2xhc3M9XCJoMlwiXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmRlbWFuZC1pbi1wcm9ncmVzcy50aXRsZScgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgXCJcbiAgICAgICAgPjwvcD5cbiAgICAgICAgPGRsPlxuICAgICAgICAgICAgPGR0IGNsYXNzPVwiZm9udC13ZWlnaHQtbGlnaHRcIj5cbiAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5yZWZlcmVuY2UtdGl0bGUubGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9kdD5cbiAgICAgICAgICAgIDxkZCBpZD1cIm51bURlbWFuZGVFbkNvdXJzXCIgY2xhc3M9XCJoNCBkLWJsb2NrIG10LTNcIj5cbiAgICAgICAgICAgICAgICB7eyByZWZlcmVuY2UgfX1cbiAgICAgICAgICAgIDwvZGQ+XG4gICAgICAgIDwvZGw+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIHZkLWhpZ2hsaWdodFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTFcIj5cbiAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi1pbmZvLWNpcmNsZSBjbGFzcz1cImgzXCI+PC9mb2Vobi1pY29uLWluZm8tY2lyY2xlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTExXCI+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5yZXN1bWUtbXktZGVtYW5kLmxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cImZpcnN0UGFnZUxpbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1jb25maXJtYXRpb24ucmVzdW1lLW15LWRlbWFuZC5idXR0b24nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,9 +1,15 @@
1
1
  // eslint-disable max-classes-per-file
2
2
  export class ApplicationInfo {
3
+ constructor() {
4
+ this.configuration = new Configuration();
5
+ }
3
6
  }
4
7
  export class EtapeInfo {
5
8
  }
6
9
  export class Configuration {
10
+ constructor() {
11
+ this.portail = new Portail();
12
+ }
7
13
  }
8
14
  export class Session {
9
15
  }
@@ -13,4 +19,4 @@ export class Captcha {
13
19
  }
14
20
  export class Portail {
15
21
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24taW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstYXBwaW5mby9hcHBsaWNhdGlvbi1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNDQUFzQztBQUN0QyxNQUFNLE9BQU8sZUFBZTtDQVUzQjtBQUVELE1BQU0sT0FBTyxTQUFTO0NBWXJCO0FBRUQsTUFBTSxPQUFPLGFBQWE7Q0FLekI7QUFFRCxNQUFNLE9BQU8sT0FBTztDQUVuQjtBQUVELE1BQU0sT0FBTyxRQUFRO0NBS3BCO0FBRUQsTUFBTSxPQUFPLE9BQU87Q0FFbkI7QUFFRCxNQUFNLE9BQU8sT0FBTztDQUtuQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlIG1heC1jbGFzc2VzLXBlci1maWxlXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25JbmZvIHtcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgYnVpbGR0aW1lOiBzdHJpbmc7XG4gICAgY29udGV4dFBhdGg6IHN0cmluZztcbiAgICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICAgIGVudmlyb25tZW50TGFiZWw6IHN0cmluZztcbiAgICBhcHBQcm9wZXJ0aWVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICAgIGV0YXBlSW5mb3M6IHsgW2tleTogc3RyaW5nXTogRXRhcGVJbmZvIH07XG4gICAgY29uZmlndXJhdGlvbj86IENvbmZpZ3VyYXRpb247XG4gICAgbW9ja2VkU2VydmljZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgRXRhcGVJbmZvIHtcbiAgICB0aXRyZUV0YXBlOiBzdHJpbmc7XG4gICAgaWRNZXRpZXJFdGFwZTogc3RyaW5nO1xuICAgIHJlcHJpc2VQb3NzaWJsZTogYm9vbGVhbjtcbiAgICB0aXRyZVByZXN0YXRpb246IHN0cmluZztcbiAgICBpZE1ldGllclByZXN0YXRpb246IHN0cmluZztcbiAgICBwdWJsaWNDaWJsZTogc3RyaW5nW107XG4gICAgZGVjaXNpb25FbGVjdHJvbmlxdWVBdmFpbGFibGU6IGJvb2xlYW47XG4gICAgZGVwbG95ZWVDeWJlcjogYm9vbGVhbjtcbiAgICBsaWVuQWNjZXM6IHN0cmluZztcbiAgICBkcmFmdERlbVJldGVudGlvbkRheXNQdWJsaWM6IG51bWJlcjtcbiAgICBkcmFmdERlbVJldGVudGlvbkRheXNDb25uZWN0ZWQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIENvbmZpZ3VyYXRpb24ge1xuICAgIGNhcHRjaGE/OiBDYXB0Y2hhO1xuICAgIHBvcnRhaWw/OiBQb3J0YWlsO1xuICAgIGRvY3VtZW50PzogRG9jdW1lbnQ7XG4gICAgc2Vzc2lvbj86IFNlc3Npb247XG59XG5cbmV4cG9ydCBjbGFzcyBTZXNzaW9uIHtcbiAgICBtZXNzYWdlRGVsYXlJbk1pbnV0ZXM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIERvY3VtZW50IHtcbiAgICBmaWxlTWF4U2l6ZUluQnl0ZXNCeUZvcm1LZXk6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH07XG4gICAgbWF4RmlsZU5hbWVMZW5ndGg6IHN0cmluZztcbiAgICBmaWxlRXh0ZW5zaW9uczogc3RyaW5nO1xuICAgIGlsbGVnYWxDaGFyYWN0ZXJzOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBDYXB0Y2hhIHtcbiAgICBwdWJsaWNrZXk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBQb3J0YWlsIHtcbiAgICBjeWJlckxvZ2luVXJsPzogc3RyaW5nO1xuICAgIHN1cHBvcnRGb3JtVXJsPzogc3RyaW5nO1xuICAgIGVzcGFjZVNlY3VyaXNlVXJsPzogc3RyaW5nO1xuICAgIHBvcnRhaWxUaXRsZXNCeVByZXN0YUNvZGU/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24taW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstYXBwaW5mby9hcHBsaWNhdGlvbi1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNDQUFzQztBQUN0QyxNQUFNLE9BQU8sZUFBZTtJQUE1QjtRQVFJLGtCQUFhLEdBQWtCLElBQUksYUFBYSxFQUFFLENBQUM7SUFFdkQsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLFNBQVM7Q0FZckI7QUFFRCxNQUFNLE9BQU8sYUFBYTtJQUExQjtRQUVJLFlBQU8sR0FBWSxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBR3JDLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxPQUFPO0NBRW5CO0FBRUQsTUFBTSxPQUFPLFFBQVE7Q0FLcEI7QUFFRCxNQUFNLE9BQU8sT0FBTztDQUVuQjtBQUVELE1BQU0sT0FBTyxPQUFPO0NBTW5CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUgbWF4LWNsYXNzZXMtcGVyLWZpbGVcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkluZm8ge1xuICAgIHZlcnNpb246IHN0cmluZztcbiAgICBidWlsZHRpbWU6IHN0cmluZztcbiAgICBjb250ZXh0UGF0aDogc3RyaW5nO1xuICAgIGVudmlyb25tZW50OiBzdHJpbmc7XG4gICAgZW52aXJvbm1lbnRMYWJlbDogc3RyaW5nO1xuICAgIGFwcFByb3BlcnRpZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gICAgZXRhcGVJbmZvczogeyBba2V5OiBzdHJpbmddOiBFdGFwZUluZm8gfTtcbiAgICBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oKTtcbiAgICBtb2NrZWRTZXJ2aWNlczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBFdGFwZUluZm8ge1xuICAgIHRpdHJlRXRhcGU6IHN0cmluZztcbiAgICBpZE1ldGllckV0YXBlOiBzdHJpbmc7XG4gICAgcmVwcmlzZVBvc3NpYmxlOiBib29sZWFuO1xuICAgIHRpdHJlUHJlc3RhdGlvbjogc3RyaW5nO1xuICAgIGlkTWV0aWVyUHJlc3RhdGlvbjogc3RyaW5nO1xuICAgIHB1YmxpY0NpYmxlOiBzdHJpbmdbXTtcbiAgICBkZWNpc2lvbkVsZWN0cm9uaXF1ZUF2YWlsYWJsZTogYm9vbGVhbjtcbiAgICBkZXBsb3llZUN5YmVyOiBib29sZWFuO1xuICAgIGxpZW5BY2Nlczogc3RyaW5nO1xuICAgIGRyYWZ0RGVtUmV0ZW50aW9uRGF5c1B1YmxpYzogbnVtYmVyO1xuICAgIGRyYWZ0RGVtUmV0ZW50aW9uRGF5c0Nvbm5lY3RlZDogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvbiB7XG4gICAgY2FwdGNoYT86IENhcHRjaGE7XG4gICAgcG9ydGFpbDogUG9ydGFpbCA9IG5ldyBQb3J0YWlsKCk7XG4gICAgZG9jdW1lbnQ/OiBEb2N1bWVudDtcbiAgICBzZXNzaW9uPzogU2Vzc2lvbjtcbn1cblxuZXhwb3J0IGNsYXNzIFNlc3Npb24ge1xuICAgIG1lc3NhZ2VEZWxheUluTWludXRlczogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgRG9jdW1lbnQge1xuICAgIGZpbGVNYXhTaXplSW5CeXRlc0J5Rm9ybUtleTogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfTtcbiAgICBtYXhGaWxlTmFtZUxlbmd0aDogc3RyaW5nO1xuICAgIGZpbGVFeHRlbnNpb25zOiBzdHJpbmc7XG4gICAgaWxsZWdhbENoYXJhY3RlcnM6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIENhcHRjaGEge1xuICAgIHB1YmxpY2tleT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFBvcnRhaWwge1xuICAgIGJhc2VWZENoVXJsPzogc3RyaW5nO1xuICAgIGN5YmVyTG9naW5Vcmw/OiBzdHJpbmc7XG4gICAgc3VwcG9ydEZvcm1Vcmw/OiBzdHJpbmc7XG4gICAgZXNwYWNlU2VjdXJpc2VVcmw/OiBzdHJpbmc7XG4gICAgcG9ydGFpbFRpdGxlc0J5UHJlc3RhQ29kZT86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { combineLatest } from 'rxjs';
3
- import { filter, map, shareReplay } from 'rxjs/operators';
3
+ import { filter, map, shareReplay, tap } from 'rxjs/operators';
4
4
  import { ApplicationInfo } from './application-info';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common/http";
@@ -34,7 +34,25 @@ export class ApplicationInfoService {
34
34
  this.pulling_.subscribe((ai) => this.setApplicationInfo(ai));
35
35
  }
36
36
  get data() {
37
- return this.pulling_;
37
+ return this.pulling_.pipe(tap(appInfo => {
38
+ if (!!appInfo.configuration.portail.baseVdChUrl?.length) {
39
+ // already set by the backend
40
+ return;
41
+ }
42
+ switch (appInfo.environment?.toUpperCase()) {
43
+ case 'IN':
44
+ appInfo.configuration.portail.baseVdChUrl =
45
+ 'https://int.vd.ch';
46
+ break;
47
+ case 'VA':
48
+ appInfo.configuration.portail.baseVdChUrl =
49
+ 'https://valid.vd.ch';
50
+ break;
51
+ default:
52
+ appInfo.configuration.portail.baseVdChUrl =
53
+ 'https://www.vd.ch';
54
+ }
55
+ }));
38
56
  }
39
57
  get firstEtapeInfo() {
40
58
  return this.firstEtapeInfo_;
@@ -113,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
113
131
  providedIn: 'root'
114
132
  }]
115
133
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.FoehnPageService }]; } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24taW5mby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJMUQsT0FBTyxFQUFFLGVBQWUsRUFBYSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBRWhFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDO0FBQ3RELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLGdDQUFnQyxDQUFDO0FBQ3JFLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUMxQywyREFBMkQsQ0FBQztBQUtoRSxNQUFNLE9BQU8sc0JBQXNCO0lBTS9CLFlBQ1ksSUFBZ0IsRUFDaEIsZ0JBQWtDO1FBRGxDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVB0QyxvQkFBZSxHQUFvQixJQUFJLGVBQWUsRUFBRSxDQUFDO1FBUzdELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUk7YUFDcEIsR0FBRyxDQUFrQixnQkFBZ0IsQ0FBQzthQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFMUIsZ0VBQWdFO1FBQ2hFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3JDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxD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Z0JBQ0QsT0FBTyxDQUFDLENBQUM7b0JBQ0wsZ0JBQWdCO2lCQUNuQjthQUNKO1NBQ0o7SUFDTCxDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBd0I7UUFDOUMsT0FBTyxPQUFPLENBQUMsV0FBVyxLQUFLLElBQUk7WUFDL0IsQ0FBQyxDQUFDLG9CQUFvQjtZQUN0QixDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDO0lBQ3ZDLENBQUM7O29IQXZKUSxzQkFBc0I7d0hBQXRCLHNCQUFzQixjQUZuQixNQUFNOzRGQUVULHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGb2VoblBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tcGFnZS9mb2Vobi1wYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybUVycm9yIH0gZnJvbSAnLi4vZm9ybS1lcnJvcic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm8sIEV0YXBlSW5mbyB9IGZyb20gJy4vYXBwbGljYXRpb24taW5mbyc7XG5cbmV4cG9ydCBjb25zdCBBUFBfSU5GT19BUElfVVJMID0gJ2FwaS9hcHBsaWNhdGlvbkluZm8nO1xuZXhwb3J0IGNvbnN0IFBPUlRBSUxfQkFTRV9VUkxfSU5UID0gJ2h0dHBzOi8vaW50LXByZXN0YXRpb25zLnZkLmNoLyc7XG5leHBvcnQgY29uc3QgRk9STV9TVVBQT1JUX0NZQkVSX1RJVExFX0ZBTExCQUNLID1cbiAgICBcIkRlbWFuZGVyIGRlIGwnYWlkZSBwb3VyIGwndXRpbGlzYXRpb24gZHUgcG9ydGFpbCBzw6ljdXJpc8OpXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBwbGljYXRpb25JbmZvU2VydmljZSB7XG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvbkluZm86IEFwcGxpY2F0aW9uSW5mbyA9IG5ldyBBcHBsaWNhdGlvbkluZm8oKTtcbiAgICBwcml2YXRlIHB1bGxpbmdfOiBPYnNlcnZhYmxlPEFwcGxpY2F0aW9uSW5mbz47XG4gICAgcHJpdmF0ZSBmaXJzdEV0YXBlSW5mb186IE9ic2VydmFibGU8RXRhcGVJbmZvPjtcbiAgICBwcml2YXRlIGN1cnJlbnRFdGFwZUluZm9fOiBPYnNlcnZhYmxlPEV0YXBlSW5mbz47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBwcml2YXRlIGZvZWhuUGFnZVNlcnZpY2U6IEZvZWhuUGFnZVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5wdWxsaW5nXyA9IHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldDxBcHBsaWNhdGlvbkluZm8+KEFQUF9JTkZPX0FQSV9VUkwpXG4gICAgICAgICAgICAucGlwZShzaGFyZVJlcGxheSgxKSk7XG5cbiAgICAgICAgLy8gSW4gbW9zdCBwcmVzdGF0aW9uLCB3ZSdyZSBpbnRlcmVzdGVkIGluIHRoZSBmaXJzdCBldGFwZSBpbmZvLlxuICAgICAgICB0aGlzLmZpcnN0RXRhcGVJbmZvXyA9IHRoaXMucHVsbGluZ18ucGlwZShcbiAgICAgICAgICAgIGZpbHRlcihhcHBJbmZvID0+ICEhYXBwSW5mbyAmJiAhIWFwcEluZm8uZXRhcGVJbmZvcyksXG4gICAgICAgICAgICBtYXAoKHsgZXRhcGVJbmZvcyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gQ2hlY2tzIHdoZXRoZXIgdGhlIHNlcnZlciByZXR1cm5zIGEgZmlyc3Qga2V5LCBvdGhlcndpc2UgZmFpbHMgdGhlXG4gICAgICAgICAgICAgICAgLy8gb2JzZXJ2YWJsZSB0byBlbnN1cmUgdGhhdCBjbGllbnQgYXBwbGljYXRpb25zIGRvbid0IHRyeSB0byB1c2UgdGhpcyB2YWx1ZVxuICAgICAgICAgICAgICAgIC8vIGFuZCBhcmUgYWJsZSB0byBpbXBsZW1lbnQgZmFsbGJhY2sgc3RyYXRlZ2llcy5cbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdEtleSA9IE9iamVjdC5rZXlzKGV0YXBlSW5mb3MpWzBdO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFmaXJzdEtleSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAnVGhlcmUgbXVzdCBiZSBhdCBsZWFzdCBvbmUga2V5IGluIHRoZSBldGFwZUluZm9zJ1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBldGFwZUluZm9zW2ZpcnN0S2V5XTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5jdXJyZW50RXRhcGVJbmZvXyA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5mb2VoblBhZ2VTZXJ2aWNlLm9uRXRhcGVJZENoYW5nZSgpLFxuICAgICAgICAgICAgdGhpcy5wdWxsaW5nX1xuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgIChbZXRhcGVJZCwgYXBwbGljYXRpb25JbmZvXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25JbmZvLmV0YXBlSW5mb3NbZXRhcGVJZF1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMucHVsbGluZ18uc3Vic2NyaWJlKChhaTogQXBwbGljYXRpb25JbmZvKSA9PlxuICAgICAgICAgICAgdGhpcy5zZXRBcHBsaWNhdGlvbkluZm8oYWkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGRhdGEoKTogT2JzZXJ2YWJsZTxBcHBsaWNhdGlvbkluZm8+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHVsbGluZ187XG4gICAgfVxuXG4gICAgZ2V0IGZpcnN0RXRhcGVJbmZvKCk6IE9ic2VydmFibGU8RXRhcGVJbmZvPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpcnN0RXRhcGVJbmZvXztcbiAgICB9XG5cbiAgICBnZXQgY3VycmVudEV0YXBlSW5mbygpOiBPYnNlcnZhYmxlPEV0YXBlSW5mbz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50RXRhcGVJbmZvXztcbiAgICB9XG5cbiAgICBnZXRTYWZlQ3liZXJMb2dpblVybCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLnBpcGUoXG4gICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgYXBwSW5mbyA9PlxuICAgICAgICAgICAgICAgICAgICBhcHBJbmZvLmNvbmZpZ3VyYXRpb24/LnBvcnRhaWw/LmN5YmVyTG9naW5VcmwgfHxcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5nZXRQb3J0YWlsQmFzZVVybChhcHBJbmZvKX0xMDAwMTgvYFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldFNhZmVTdXBwb3J0Rm9ybVVybChcbiAgICAgICAgcmVmZXJlbmNlPzogc3RyaW5nLFxuICAgICAgICBlcnJvcnM/OiBGb3JtRXJyb3JbXVxuICAgICk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEucGlwZShcbiAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICBhcHBJbmZvID0+XG4gICAgICAgICAgICAgICAgICAgIGFwcEluZm8uY29uZmlndXJhdGlvbj8ucG9ydGFpbD8uc3VwcG9ydEZvcm1VcmwgfHxcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5nZXRQb3J0YWlsQmFzZVVybChhcHBJbmZvKX1wdWIvMTAxMDk4L2BcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBtYXAobGluayA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCEhcmVmZXJlbmNlPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgbGluayArPSBgP2NvbmNlcm5lZFJlZmVyZW5jZT0ke3JlZmVyZW5jZX1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoISFlcnJvcnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBsaW5rICs9ICEhcmVmZXJlbmNlPy5sZW5ndGggPyAnJicgOiAnPyc7XG4gICAgICAgICAgICAgICAgICAgIC8vIE5lZWQgZm9sbG93aW5nIGNvZGUgdG8gYXZvaWQgYnJvd3NlciBTYW5pdGl6aW5nIGVycm9yIHdoZW4gdXNpbmcgSlNPTi5zdHJpbmdpZnlcbiAgICAgICAgICAgICAgICAgICAgbGluayArPSBgZXJyb3JzPSR7ZXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKGVycm9yID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoZXJyb3IpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAodmFsdWUgPT4gYCR7dmFsdWUuam9pbignPScpfWApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcsJylcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCc7Jyl9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxpbms7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldFNhZmVTdXBwb3J0Rm9ybVRpdGxlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEucGlwZShcbiAgICAgICAgICAgIG1hcChhcHBJbmZvID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aXRsZSA9XG4gICAgICAgICAgICAgICAgICAgIGFwcEluZm8uY29uZmlndXJhdGlvbj8ucG9ydGFpbFxuICAgICAgICAgICAgICAgICAgICAgICAgPy5wb3J0YWlsVGl0bGVzQnlQcmVzdGFDb2RlPy5bMTAxMDk4XTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGl0bGUgJiYgdGl0bGUubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgID8gdGl0bGVcbiAgICAgICAgICAgICAgICAgICAgOiBGT1JNX1NVUFBPUlRfQ1lCRVJfVElUTEVfRkFMTEJBQ0s7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldFNhZmVFc3BhY2VzU2VjdXJpc2VVcmwoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgIGFwcEluZm8gPT5cbiAgICAgICAgICAgICAgICAgICAgYXBwSW5mby5jb25maWd1cmF0aW9uPy5wb3J0YWlsPy5lc3BhY2VTZWN1cmlzZVVybCB8fFxuICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLmdldFBvcnRhaWxCYXNlVXJsKGFwcEluZm8pfTEwMDAwMi9gXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRBcHBsaWNhdGlvbkluZm8oYXBwbGljYXRpb25JbmZvOiBBcHBsaWNhdGlvbkluZm8pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hcHBsaWNhdGlvbkluZm8gPSBhcHBsaWNhdGlvbkluZm87XG4gICAgICAgIGlmICh0aGlzLmFwcGxpY2F0aW9uSW5mbykge1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLmFwcGxpY2F0aW9uSW5mby5lbnZpcm9ubWVudCkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ0NPJzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mby5lbnZpcm9ubWVudExhYmVsID0gJ2TDqXZlbG9wcGVtZW50JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ0lOJzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mby5lbnZpcm9ubWVudExhYmVsID0gJ2ludMOpZ3JhdGlvbic7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICdWQSc6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBsaWNhdGlvbkluZm8uZW52aXJvbm1lbnRMYWJlbCA9ICd2YWxpZGF0aW9uJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTm90aGluZyB0byBkb1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UG9ydGFpbEJhc2VVcmwoYXBwSW5mbzogQXBwbGljYXRpb25JbmZvKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGFwcEluZm8uZW52aXJvbm1lbnQgPT09ICdDTydcbiAgICAgICAgICAgID8gUE9SVEFJTF9CQVNFX1VSTF9JTlRcbiAgICAgICAgICAgIDogYCR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn0vYDtcbiAgICB9XG59XG4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24taW5mby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSS9ELE9BQU8sRUFBRSxlQUFlLEVBQWEsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQUVoRSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxxQkFBcUIsQ0FBQztBQUN0RCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FDMUMsMkRBQTJELENBQUM7QUFLaEUsTUFBTSxPQUFPLHNCQUFzQjtJQU0vQixZQUNZLElBQWdCLEVBQ2hCLGdCQUFrQztRQURsQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFQdEMsb0JBQWUsR0FBb0IsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQVM3RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJO2FBQ3BCLEdBQUcsQ0FBa0IsZ0JBQWdCLENBQUM7YUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTFCLGdFQUFnRTtRQUNoRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNyQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJ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QUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQ2xELENBQ0osQ0FBQztJQUNOLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxlQUFnQztRQUN2RCxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdEIsUUFBUSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRTtnQkFDdEMsS0FBSyxJQUFJLENBQUMsQ0FBQztvQkFDUCxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztvQkFDeEQsTUFBTTtpQkFDVDtnQkFDRCxLQUFLLElBQUksQ0FBQyxDQUFDO29CQUNQLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEdBQUcsYUFBYSxDQUFDO29CQUN0RCxNQUFNO2lCQUNUO2dCQUNELEtBQUssSUFBSSxDQUFDLENBQUM7b0JBQ1AsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsR0FBRyxZQUFZLENBQUM7b0JBQ3JELE1BQU07aUJBQ1Q7Z0JBQ0QsT0FBTyxDQUFDLENBQUM7b0JBQ0wsZ0JBQWdCO2lCQUNuQjthQUNKO1NBQ0o7SUFDTCxDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBd0I7UUFDOUMsT0FBTyxPQUFPLENBQUMsV0FBVyxLQUFLLElBQUk7WUFDL0IsQ0FBQyxDQUFDLG9CQUFvQjtZQUN0QixDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDO0lBQ3ZDLENBQUM7O29IQTNLUSxzQkFBc0I7d0hBQXRCLHNCQUFzQixjQUZuQixNQUFNOzRGQUVULHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZvZWhuUGFnZVNlcnZpY2UgfSBmcm9tICcuLi9mb2Vobi1wYWdlL2ZvZWhuLXBhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtRXJyb3IgfSBmcm9tICcuLi9mb3JtLWVycm9yJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5mbywgRXRhcGVJbmZvIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1pbmZvJztcblxuZXhwb3J0IGNvbnN0IEFQUF9JTkZPX0FQSV9VUkwgPSAnYXBpL2FwcGxpY2F0aW9uSW5mbyc7XG5leHBvcnQgY29uc3QgUE9SVEFJTF9CQVNFX1VSTF9JTlQgPSAnaHR0cHM6Ly9pbnQtcHJlc3RhdGlvbnMudmQuY2gvJztcbmV4cG9ydCBjb25zdCBGT1JNX1NVUFBPUlRfQ1lCRVJfVElUTEVfRkFMTEJBQ0sgPVxuICAgIFwiRGVtYW5kZXIgZGUgbCdhaWRlIHBvdXIgbCd1dGlsaXNhdGlvbiBkdSBwb3J0YWlsIHPDqWN1cmlzw6lcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkluZm9TZXJ2aWNlIHtcbiAgICBwcml2YXRlIGFwcGxpY2F0aW9uSW5mbzogQXBwbGljYXRpb25JbmZvID0gbmV3IEFwcGxpY2F0aW9uSW5mbygpO1xuICAgIHByaXZhdGUgcHVsbGluZ186IE9ic2VydmFibGU8QXBwbGljYXRpb25JbmZvPjtcbiAgICBwcml2YXRlIGZpcnN0RXRhcGVJbmZvXzogT2JzZXJ2YWJsZTxFdGFwZUluZm8+O1xuICAgIHByaXZhdGUgY3VycmVudEV0YXBlSW5mb186IE9ic2VydmFibGU8RXRhcGVJbmZvPjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgIHByaXZhdGUgZm9laG5QYWdlU2VydmljZTogRm9laG5QYWdlU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLnB1bGxpbmdfID0gdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0PEFwcGxpY2F0aW9uSW5mbz4oQVBQX0lORk9fQVBJX1VSTClcbiAgICAgICAgICAgIC5waXBlKHNoYXJlUmVwbGF5KDEpKTtcblxuICAgICAgICAvLyBJbiBtb3N0IHByZXN0YXRpb24sIHdlJ3JlIGludGVyZXN0ZWQgaW4gdGhlIGZpcnN0IGV0YXBlIGluZm8uXG4gICAgICAgIHRoaXMuZmlyc3RFdGFwZUluZm9fID0gdGhpcy5wdWxsaW5nXy5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKGFwcEluZm8gPT4gISFhcHBJbmZvICYmICEhYXBwSW5mby5ldGFwZUluZm9zKSxcbiAgICAgICAgICAgIG1hcCgoeyBldGFwZUluZm9zIH0pID0+IHtcbiAgICAgICAgICAgICAgICAvLyBDaGVja3Mgd2hldGhlciB0aGUgc2VydmVyIHJldHVybnMgYSBmaXJzdCBrZXksIG90aGVyd2lzZSBmYWlscyB0aGVcbiAgICAgICAgICAgICAgICAvLyBvYnNlcnZhYmxlIHRvIGVuc3VyZSB0aGF0IGNsaWVudCBhcHBsaWNhdGlvbnMgZG9uJ3QgdHJ5IHRvIHVzZSB0aGlzIHZhbHVlXG4gICAgICAgICAgICAgICAgLy8gYW5kIGFyZSBhYmxlIHRvIGltcGxlbWVudCBmYWxsYmFjayBzdHJhdGVnaWVzLlxuICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0S2V5ID0gT2JqZWN0LmtleXMoZXRhcGVJbmZvcylbMF07XG5cbiAgICAgICAgICAgICAgICBpZiAoIWZpcnN0S2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICdUaGVyZSBtdXN0IGJlIGF0IGxlYXN0IG9uZSBrZXkgaW4gdGhlIGV0YXBlSW5mb3MnXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGV0YXBlSW5mb3NbZmlyc3RLZXldO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmN1cnJlbnRFdGFwZUluZm9fID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLmZvZWhuUGFnZVNlcnZpY2Uub25FdGFwZUlkQ2hhbmdlKCksXG4gICAgICAgICAgICB0aGlzLnB1bGxpbmdfXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgKFtldGFwZUlkLCBhcHBsaWNhdGlvbkluZm9dKSA9PlxuICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkluZm8uZXRhcGVJbmZvc1tldGFwZUlkXVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5wdWxsaW5nXy5zdWJzY3JpYmUoKGFpOiBBcHBsaWNhdGlvbkluZm8pID0+XG4gICAgICAgICAgICB0aGlzLnNldEFwcGxpY2F0aW9uSW5mbyhhaSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgZGF0YSgpOiBPYnNlcnZhYmxlPEFwcGxpY2F0aW9uSW5mbz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wdWxsaW5nXy5waXBlKFxuICAgICAgICAgICAgdGFwKGFwcEluZm8gPT4ge1xuICAgICAgICAgICAgICAgIGlmICghIWFwcEluZm8uY29uZmlndXJhdGlvbi5wb3J0YWlsLmJhc2VWZENoVXJsPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gYWxyZWFkeSBzZXQgYnkgdGhlIGJhY2tlbmRcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGFwcEluZm8uZW52aXJvbm1lbnQ/LnRvVXBwZXJDYXNlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnSU4nOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwSW5mby5jb25maWd1cmF0aW9uLnBvcnRhaWwuYmFzZVZkQ2hVcmwgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwczovL2ludC52ZC5jaCc7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnVkEnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwSW5mby5jb25maWd1cmF0aW9uLnBvcnRhaWwuYmFzZVZkQ2hVcmwgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwczovL3ZhbGlkLnZkLmNoJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwSW5mby5jb25maWd1cmF0aW9uLnBvcnRhaWwuYmFzZVZkQ2hVcmwgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwczovL3d3dy52ZC5jaCc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgZmlyc3RFdGFwZUluZm8oKTogT2JzZXJ2YWJsZTxFdGFwZUluZm8+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlyc3RFdGFwZUluZm9fO1xuICAgIH1cblxuICAgIGdldCBjdXJyZW50RXRhcGVJbmZvKCk6IE9ic2VydmFibGU8RXRhcGVJbmZvPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRFdGFwZUluZm9fO1xuICAgIH1cblxuICAgIGdldFNhZmVDeWJlckxvZ2luVXJsKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEucGlwZShcbiAgICAgICAgICAgIG1hcChcbiAgICAgICAgICAgICAgICBhcHBJbmZvID0+XG4gICAgICAgICAgICAgICAgICAgIGFwcEluZm8uY29uZmlndXJhdGlvbj8ucG9ydGFpbD8uY3liZXJMb2dpblVybCB8fFxuICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLmdldFBvcnRhaWxCYXNlVXJsKGFwcEluZm8pfTEwMDAxOC9gXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0U2FmZVN1cHBvcnRGb3JtVXJsKFxuICAgICAgICByZWZlcmVuY2U/OiBzdHJpbmcsXG4gICAgICAgIGVycm9ycz86IEZvcm1FcnJvcltdXG4gICAgKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKFxuICAgICAgICAgICAgICAgIGFwcEluZm8gPT5cbiAgICAgICAgICAgICAgICAgICAgYXBwSW5mby5jb25maWd1cmF0aW9uPy5wb3J0YWlsPy5zdXBwb3J0Rm9ybVVybCB8fFxuICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLmdldFBvcnRhaWxCYXNlVXJsKGFwcEluZm8pfXB1Yi8xMDEwOTgvYFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG1hcChsaW5rID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoISFyZWZlcmVuY2U/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBsaW5rICs9IGA/Y29uY2VybmVkUmVmZXJlbmNlPSR7cmVmZXJlbmNlfWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghIWVycm9ycz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxpbmsgKz0gISFyZWZlcmVuY2U/Lmxlbmd0aCA/ICcmJyA6ICc/JztcbiAgICAgICAgICAgICAgICAgICAgLy8gTmVlZCBmb2xsb3dpbmcgY29kZSB0byBhdm9pZCBicm93c2VyIFNhbml0aXppbmcgZXJyb3Igd2hlbiB1c2luZyBKU09OLnN0cmluZ2lmeVxuICAgICAgICAgICAgICAgICAgICBsaW5rICs9IGBlcnJvcnM9JHtlcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoZXJyb3IgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhlcnJvcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCh2YWx1ZSA9PiBgJHt2YWx1ZS5qb2luKCc9Jyl9YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oJywnKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oJzsnKX1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbGluaztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0U2FmZVN1cHBvcnRGb3JtVGl0bGUoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKGFwcEluZm8gPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRpdGxlID1cbiAgICAgICAgICAgICAgICAgICAgYXBwSW5mby5jb25maWd1cmF0aW9uPy5wb3J0YWlsXG4gICAgICAgICAgICAgICAgICAgICAgICA/LnBvcnRhaWxUaXRsZXNCeVByZXN0YUNvZGU/LlsxMDEwOThdO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aXRsZSAmJiB0aXRsZS5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgPyB0aXRsZVxuICAgICAgICAgICAgICAgICAgICA6IEZPUk1fU1VQUE9SVF9DWUJFUl9USVRMRV9GQUxMQkFDSztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0U2FmZUVzcGFjZXNTZWN1cmlzZVVybCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLnBpcGUoXG4gICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgYXBwSW5mbyA9PlxuICAgICAgICAgICAgICAgICAgICBhcHBJbmZvLmNvbmZpZ3VyYXRpb24/LnBvcnRhaWw/LmVzcGFjZVNlY3VyaXNlVXJsIHx8XG4gICAgICAgICAgICAgICAgICAgIGAke3RoaXMuZ2V0UG9ydGFpbEJhc2VVcmwoYXBwSW5mbyl9MTAwMDAyL2BcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEFwcGxpY2F0aW9uSW5mbyhhcHBsaWNhdGlvbkluZm86IEFwcGxpY2F0aW9uSW5mbyk6IHZvaWQge1xuICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mbyA9IGFwcGxpY2F0aW9uSW5mbztcbiAgICAgICAgaWYgKHRoaXMuYXBwbGljYXRpb25JbmZvKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMuYXBwbGljYXRpb25JbmZvLmVudmlyb25tZW50KSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnQ08nOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbGljYXRpb25JbmZvLmVudmlyb25tZW50TGFiZWwgPSAnZMOpdmVsb3BwZW1lbnQnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSAnSU4nOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbGljYXRpb25JbmZvLmVudmlyb25tZW50TGFiZWwgPSAnaW50w6lncmF0aW9uJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ1ZBJzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mby5lbnZpcm9ubWVudExhYmVsID0gJ3ZhbGlkYXRpb24nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgICAgICAvLyBOb3RoaW5nIHRvIGRvXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQb3J0YWlsQmFzZVVybChhcHBJbmZvOiBBcHBsaWNhdGlvbkluZm8pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYXBwSW5mby5lbnZpcm9ubWVudCA9PT0gJ0NPJ1xuICAgICAgICAgICAgPyBQT1JUQUlMX0JBU0VfVVJMX0lOVFxuICAgICAgICAgICAgOiBgJHt3aW5kb3cubG9jYXRpb24ub3JpZ2lufS9gO1xuICAgIH1cbn1cbiJdfQ==