@sunbird-cb/utils-v2 0.0.21 → 0.0.22-ang-9-12
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/bundles/sunbird-cb-utils-v2.umd.js +1284 -2508
- package/bundles/sunbird-cb-utils-v2.umd.js.map +1 -1
- package/bundles/sunbird-cb-utils-v2.umd.min.js +1 -1
- package/bundles/sunbird-cb-utils-v2.umd.min.js.map +1 -1
- package/esm2015/lib/components/image-crop/image-crop.component.js +19 -47
- package/esm2015/lib/components/image-crop/image-crop.module.js +8 -2
- package/esm2015/lib/constants/features.enum.js +555 -555
- package/esm2015/lib/constants/instances.enum.js +5 -5
- package/esm2015/lib/constants/misc.constants.js +1 -0
- package/esm2015/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.js +11 -21
- package/esm2015/lib/directives/default-thumbnail/default-thumbnail.directive.js +1 -7
- package/esm2015/lib/directives/image-responsive/image-responsive.directive.js +6 -11
- package/esm2015/lib/directives/in-view-port/in-view-port.directive.js +9 -12
- package/esm2015/lib/directives/navigation/navigation.directive.js +1 -6
- package/esm2015/lib/helpers/functions/getStringifiedQueryParams.js +4 -4
- package/esm2015/lib/helpers/horizontal-scroller/horizontal-scroller.component.js +10 -19
- package/esm2015/lib/helpers/horizontal-scroller/horizontal-scroller.module.js +4 -2
- package/esm2015/lib/helpers/horizontal-scroller-v2/horizontal-scroller-v2.component.js +15 -31
- package/esm2015/lib/helpers/horizontal-scroller-v2/horizontal-scroller-v2.module.js +4 -2
- package/esm2015/lib/helpers/logout/logout.component.js +11 -14
- package/esm2015/lib/helpers/logout/logout.module.js +3 -2
- package/esm2015/lib/models/profile-v3.models.js +2 -104
- package/esm2015/lib/pipes/pipe-certificate-image-URL/pipe-certimage-URL.pipe.js +4 -4
- package/esm2015/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.js +1 -7
- package/esm2015/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.js +1 -1
- package/esm2015/lib/pipes/pipe-coursename/pipe-coursename.pipe.js +1 -1
- package/esm2015/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.js +1 -11
- package/esm2015/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.js +1 -1
- package/esm2015/lib/pipes/pipe-filter/pipe-filter.pipe.js +3 -3
- package/esm2015/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.js +5 -5
- package/esm2015/lib/pipes/pipe-filter-v2/pipe-filter-v2.pipe.js +3 -3
- package/esm2015/lib/pipes/pipe-filter-v3/pipe-filter-v3.pipe.js +6 -6
- package/esm2015/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.js +1 -1
- package/esm2015/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.js +4 -4
- package/esm2015/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.js +1 -6
- package/esm2015/lib/pipes/pipe-nic-relative/pipe-nic-relative.pipe.js +4 -4
- package/esm2015/lib/pipes/pipe-order-by/pipe-order-by.pipe.js +1 -4
- package/esm2015/lib/pipes/pipe-ordinal/pipe-ordinal.pipe.js +1 -1
- package/esm2015/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.js +1 -1
- package/esm2015/lib/pipes/pipe-public-URL/pipe-public-URL.pipe.js +4 -4
- package/esm2015/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.js +5 -5
- package/esm2015/lib/resolvers/explore-detail.resolver.js +17 -19
- package/esm2015/lib/resolvers/marketing-offering.resolve.js +10 -10
- package/esm2015/lib/resolvers/module-name.resolver.js +2 -5
- package/esm2015/lib/resolvers/page-name.resolver.js +2 -2
- package/esm2015/lib/resolvers/page.constant.js +1 -1
- package/esm2015/lib/resolvers/page.model.js +2 -48
- package/esm2015/lib/resolvers/page.resolver.js +16 -17
- package/esm2015/lib/resolvers/resolver.model.js +2 -6
- package/esm2015/lib/services/auth-keycloak.service.js +35 -35
- package/esm2015/lib/services/auth-microsoft.service.js +21 -17
- package/esm2015/lib/services/card-content.model.js +1 -21
- package/esm2015/lib/services/configurations.model.js +2 -551
- package/esm2015/lib/services/configurations.service.js +2 -63
- package/esm2015/lib/services/content-strip-multiple.model.js +2 -75
- package/esm2015/lib/services/event.model.js +1 -114
- package/esm2015/lib/services/event.service.js +31 -24
- package/esm2015/lib/services/logger.service.js +8 -13
- package/esm2015/lib/services/ms-office.model.js +2 -8
- package/esm2015/lib/services/multilingual-translations.service.js +11 -15
- package/esm2015/lib/services/nps-grid.service.js +6 -8
- package/esm2015/lib/services/subapplication-respond.service.js +16 -20
- package/esm2015/lib/services/telemetry.service.js +73 -80
- package/esm2015/lib/services/user-preference.model.js +2 -38
- package/esm2015/lib/services/user-preference.service.js +23 -15
- package/esm2015/lib/services/utility.service.js +16 -27
- package/esm2015/lib/services/value.service.js +8 -10
- package/esm2015/lib/services/widget-content.model.js +1 -242
- package/esm2015/lib/services/widget-content.service.js +29 -21
- package/esm2015/lib/services/widget-resolver.model.js +2 -57
- package/esm2015/lib/services/widget-search.model.js +2 -126
- package/esm2015/public-api.js +96 -88
- package/esm2015/sunbird-cb-utils-v2.js +2 -10
- package/esm5/lib/components/image-crop/image-crop.component.js +30 -48
- package/esm5/lib/components/image-crop/image-crop.module.js +8 -2
- package/esm5/lib/constants/features.enum.js +555 -555
- package/esm5/lib/constants/instances.enum.js +5 -5
- package/esm5/lib/constants/misc.constants.js +1 -0
- package/esm5/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.js +14 -24
- package/esm5/lib/directives/default-thumbnail/default-thumbnail.directive.js +1 -7
- package/esm5/lib/directives/image-responsive/image-responsive.directive.js +6 -11
- package/esm5/lib/directives/in-view-port/in-view-port.directive.js +9 -12
- package/esm5/lib/directives/navigation/navigation.directive.js +1 -6
- package/esm5/lib/helpers/functions/getStringifiedQueryParams.js +4 -4
- package/esm5/lib/helpers/horizontal-scroller/horizontal-scroller.component.js +10 -19
- package/esm5/lib/helpers/horizontal-scroller/horizontal-scroller.module.js +4 -2
- package/esm5/lib/helpers/horizontal-scroller-v2/horizontal-scroller-v2.component.js +15 -31
- package/esm5/lib/helpers/horizontal-scroller-v2/horizontal-scroller-v2.module.js +4 -2
- package/esm5/lib/helpers/logout/logout.component.js +12 -15
- package/esm5/lib/helpers/logout/logout.module.js +3 -2
- package/esm5/lib/models/profile-v3.models.js +2 -104
- package/esm5/lib/pipes/pipe-certificate-image-URL/pipe-certimage-URL.pipe.js +4 -4
- package/esm5/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.js +1 -7
- package/esm5/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.js +1 -1
- package/esm5/lib/pipes/pipe-coursename/pipe-coursename.pipe.js +1 -1
- package/esm5/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.js +1 -11
- package/esm5/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.js +1 -1
- package/esm5/lib/pipes/pipe-filter/pipe-filter.pipe.js +3 -3
- package/esm5/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.js +5 -5
- package/esm5/lib/pipes/pipe-filter-v2/pipe-filter-v2.pipe.js +3 -3
- package/esm5/lib/pipes/pipe-filter-v3/pipe-filter-v3.pipe.js +9 -9
- package/esm5/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.js +1 -1
- package/esm5/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.js +4 -4
- package/esm5/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.js +1 -6
- package/esm5/lib/pipes/pipe-nic-relative/pipe-nic-relative.pipe.js +4 -4
- package/esm5/lib/pipes/pipe-order-by/pipe-order-by.pipe.js +1 -4
- package/esm5/lib/pipes/pipe-ordinal/pipe-ordinal.pipe.js +1 -1
- package/esm5/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.js +13 -3
- package/esm5/lib/pipes/pipe-public-URL/pipe-public-URL.pipe.js +4 -4
- package/esm5/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.js +5 -5
- package/esm5/lib/resolvers/explore-detail.resolver.js +17 -19
- package/esm5/lib/resolvers/marketing-offering.resolve.js +10 -10
- package/esm5/lib/resolvers/module-name.resolver.js +2 -5
- package/esm5/lib/resolvers/page-name.resolver.js +2 -2
- package/esm5/lib/resolvers/page.constant.js +1 -1
- package/esm5/lib/resolvers/page.model.js +2 -48
- package/esm5/lib/resolvers/page.resolver.js +36 -22
- package/esm5/lib/resolvers/resolver.model.js +2 -6
- package/esm5/lib/services/auth-keycloak.service.js +86 -48
- package/esm5/lib/services/auth-microsoft.service.js +55 -24
- package/esm5/lib/services/card-content.model.js +1 -21
- package/esm5/lib/services/configurations.model.js +2 -551
- package/esm5/lib/services/configurations.service.js +2 -63
- package/esm5/lib/services/content-strip-multiple.model.js +2 -75
- package/esm5/lib/services/event.model.js +1 -114
- package/esm5/lib/services/event.service.js +66 -28
- package/esm5/lib/services/logger.service.js +12 -17
- package/esm5/lib/services/ms-office.model.js +2 -8
- package/esm5/lib/services/multilingual-translations.service.js +11 -15
- package/esm5/lib/services/nps-grid.service.js +6 -8
- package/esm5/lib/services/subapplication-respond.service.js +30 -24
- package/esm5/lib/services/telemetry.service.js +94 -91
- package/esm5/lib/services/user-preference.model.js +2 -38
- package/esm5/lib/services/user-preference.service.js +63 -17
- package/esm5/lib/services/utility.service.js +23 -34
- package/esm5/lib/services/value.service.js +8 -10
- package/esm5/lib/services/widget-content.model.js +1 -242
- package/esm5/lib/services/widget-content.service.js +69 -23
- package/esm5/lib/services/widget-resolver.model.js +2 -57
- package/esm5/lib/services/widget-search.model.js +2 -126
- package/esm5/public-api.js +96 -88
- package/esm5/sunbird-cb-utils-v2.js +2 -10
- package/fesm2015/sunbird-cb-utils-v2.js +972 -2207
- package/fesm2015/sunbird-cb-utils-v2.js.map +1 -1
- package/fesm5/sunbird-cb-utils-v2.js +1262 -2264
- package/fesm5/sunbird-cb-utils-v2.js.map +1 -1
- package/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.d.ts +3 -3
- package/lib/helpers/logout/logout.component.d.ts +2 -2
- package/lib/pipes/pipe-order-by/pipe-order-by.pipe.d.ts +4 -4
- package/lib/resolvers/page.model.d.ts +1 -1
- package/lib/services/auth-keycloak.service.d.ts +9 -9
- package/lib/services/auth-microsoft.service.d.ts +2 -2
- package/lib/services/configurations.model.d.ts +29 -27
- package/lib/services/content-strip-multiple.model.d.ts +7 -6
- package/lib/services/event.service.d.ts +2 -0
- package/lib/services/logger.service.d.ts +4 -4
- package/lib/services/telemetry.service.d.ts +3 -3
- package/lib/services/utility.service.d.ts +7 -7
- package/lib/services/widget-content.model.d.ts +21 -20
- package/package.json +12 -12
- package/public-api.d.ts +8 -0
- package/sunbird-cb-utils-v2-0.0.22-ang-9-12.tgz +0 -0
- package/sunbird-cb-utils-v2.d.ts +0 -8
- package/sunbird-cb-utils-v2.metadata.json +1 -1
|
@@ -1,4 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
2
12
|
import { Injectable } from '@angular/core';
|
|
3
13
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
4
14
|
import { WidgetContentService } from './widget-content.service';
|
|
@@ -25,15 +35,15 @@ var SubapplicationRespondService = (function () {
|
|
|
25
35
|
this.continueLearningData = null;
|
|
26
36
|
this.loaded = false;
|
|
27
37
|
this.changeContextrespond();
|
|
28
|
-
this.configSvc.prefChangeNotifier.subscribe(
|
|
38
|
+
this.configSvc.prefChangeNotifier.subscribe(function () {
|
|
29
39
|
_this.changeContextrespond();
|
|
30
|
-
})
|
|
40
|
+
});
|
|
31
41
|
}
|
|
32
42
|
SubapplicationRespondService.prototype.loadedRespond = function (contentWindow, applicationName, id) {
|
|
33
43
|
var _this = this;
|
|
34
44
|
if (id && this.activatedRoute.snapshot.queryParams.viewMode && this.activatedRoute.snapshot.queryParams.viewMode === 'RESUME') {
|
|
35
45
|
this.continueLearningData = null;
|
|
36
|
-
this.contentSvc.fetchContentHistory(id).subscribe(
|
|
46
|
+
this.contentSvc.fetchContentHistory(id).subscribe(function (data) {
|
|
37
47
|
_this.continueLearningData = data.continueData;
|
|
38
48
|
if (_this.configSvc && _this.configSvc.userProfile) {
|
|
39
49
|
var firstName = _this.configSvc.userProfile.userName ?
|
|
@@ -49,7 +59,7 @@ var SubapplicationRespondService = (function () {
|
|
|
49
59
|
domainName: window.location.host,
|
|
50
60
|
url: _this.router.url,
|
|
51
61
|
rootOrg: _this.configSvc.rootOrg,
|
|
52
|
-
theme: _this.configSvc.activeThemeObject ?
|
|
62
|
+
theme: _this.configSvc.activeThemeObject ? __assign({ name: _this.configSvc.activeThemeObject.themeName }, _this.configSvc.activeThemeObject.color) : '',
|
|
53
63
|
fontSize: _this.configSvc.activeFontObject ? _this.configSvc.activeFontObject.baseFontSize : '14px',
|
|
54
64
|
locale: (_this.configSvc.userPreference && _this.configSvc.userPreference.selectedLocale) || 'en',
|
|
55
65
|
darkMode: _this.configSvc.isDarkMode,
|
|
@@ -71,7 +81,7 @@ var SubapplicationRespondService = (function () {
|
|
|
71
81
|
_this.loaded = true;
|
|
72
82
|
_this.subAppname = applicationName;
|
|
73
83
|
}
|
|
74
|
-
})
|
|
84
|
+
});
|
|
75
85
|
}
|
|
76
86
|
else {
|
|
77
87
|
if (this.configSvc && this.configSvc.userProfile) {
|
|
@@ -88,7 +98,7 @@ var SubapplicationRespondService = (function () {
|
|
|
88
98
|
domainName: window.location.host,
|
|
89
99
|
url: this.router.url,
|
|
90
100
|
rootOrg: this.configSvc.rootOrg,
|
|
91
|
-
theme: this.configSvc.activeThemeObject ?
|
|
101
|
+
theme: this.configSvc.activeThemeObject ? __assign({ name: this.configSvc.activeThemeObject.themeName }, this.configSvc.activeThemeObject.color) : '',
|
|
92
102
|
fontSize: this.configSvc.activeFontObject ? this.configSvc.activeFontObject.baseFontSize : '14px',
|
|
93
103
|
locale: (this.configSvc.userPreference && this.configSvc.userPreference.selectedLocale) || 'en',
|
|
94
104
|
darkMode: this.configSvc.isDarkMode,
|
|
@@ -127,7 +137,7 @@ var SubapplicationRespondService = (function () {
|
|
|
127
137
|
this.eventSvc.dispatchEvent({
|
|
128
138
|
eventType: WsEvents.WsEventType.Telemetry,
|
|
129
139
|
eventLogLevel: WsEvents.WsEventLogLevel.Warn,
|
|
130
|
-
data:
|
|
140
|
+
data: __assign(__assign({}, tData.data), { eventSubType: WsEvents.EnumTelemetrySubType.Interact }),
|
|
131
141
|
from: tData.subApplicationName,
|
|
132
142
|
to: 'Telemetry',
|
|
133
143
|
});
|
|
@@ -136,7 +146,7 @@ var SubapplicationRespondService = (function () {
|
|
|
136
146
|
this.eventSvc.dispatchEvent({
|
|
137
147
|
eventType: WsEvents.WsEventType.Telemetry,
|
|
138
148
|
eventLogLevel: WsEvents.WsEventLogLevel.Trace,
|
|
139
|
-
data:
|
|
149
|
+
data: __assign(__assign({}, tData.data), { eventSubType: WsEvents.EnumTelemetrySubType.HeartBeat }),
|
|
140
150
|
from: tData.subApplicationName,
|
|
141
151
|
to: 'Telemetry',
|
|
142
152
|
});
|
|
@@ -170,7 +180,7 @@ var SubapplicationRespondService = (function () {
|
|
|
170
180
|
domainName: window.location.host,
|
|
171
181
|
url: this.router.url,
|
|
172
182
|
rootOrg: this.configSvc.rootOrg,
|
|
173
|
-
theme: this.configSvc.activeThemeObject ?
|
|
183
|
+
theme: this.configSvc.activeThemeObject ? __assign({ name: this.configSvc.activeThemeObject.themeName }, this.configSvc.activeThemeObject.color) : '',
|
|
174
184
|
fontSize: this.configSvc.activeFontObject ? this.configSvc.activeFontObject.baseFontSize : '14px',
|
|
175
185
|
locale: (this.configSvc.userPreference && this.configSvc.userPreference.selectedLocale) || 'en',
|
|
176
186
|
darkMode: this.configSvc.isDarkMode,
|
|
@@ -187,6 +197,15 @@ var SubapplicationRespondService = (function () {
|
|
|
187
197
|
this.contentWindowinfo.postMessage(response, '*');
|
|
188
198
|
}
|
|
189
199
|
};
|
|
200
|
+
SubapplicationRespondService.ctorParameters = function () { return [
|
|
201
|
+
{ type: ConfigurationsService },
|
|
202
|
+
{ type: WidgetContentService },
|
|
203
|
+
{ type: ActivatedRoute },
|
|
204
|
+
{ type: Router },
|
|
205
|
+
{ type: EventService },
|
|
206
|
+
{ type: TelemetryService }
|
|
207
|
+
]; };
|
|
208
|
+
SubapplicationRespondService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SubapplicationRespondService_Factory() { return new SubapplicationRespondService(i0.ɵɵinject(i1.ConfigurationsService), i0.ɵɵinject(i2.WidgetContentService), i0.ɵɵinject(i3.ActivatedRoute), i0.ɵɵinject(i3.Router), i0.ɵɵinject(i4.EventService), i0.ɵɵinject(i5.TelemetryService)); }, token: SubapplicationRespondService, providedIn: "root" });
|
|
190
209
|
SubapplicationRespondService.decorators = [
|
|
191
210
|
{ type: Injectable, args: [{
|
|
192
211
|
providedIn: 'root',
|
|
@@ -200,20 +219,7 @@ var SubapplicationRespondService = (function () {
|
|
|
200
219
|
{ type: EventService },
|
|
201
220
|
{ type: TelemetryService }
|
|
202
221
|
]; };
|
|
203
|
-
/** @nocollapse */ SubapplicationRespondService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function SubapplicationRespondService_Factory() { return new SubapplicationRespondService(i0.ɵɵinject(i1.ConfigurationsService), i0.ɵɵinject(i2.WidgetContentService), i0.ɵɵinject(i3.ActivatedRoute), i0.ɵɵinject(i3.Router), i0.ɵɵinject(i4.EventService), i0.ɵɵinject(i5.TelemetryService)); }, token: SubapplicationRespondService, providedIn: "root" });
|
|
204
222
|
return SubapplicationRespondService;
|
|
205
223
|
}());
|
|
206
224
|
export { SubapplicationRespondService };
|
|
207
|
-
if (false) {
|
|
208
|
-
SubapplicationRespondService.prototype.subAppname;
|
|
209
|
-
SubapplicationRespondService.prototype.continueLearningData;
|
|
210
|
-
SubapplicationRespondService.prototype.contentWindowinfo;
|
|
211
|
-
SubapplicationRespondService.prototype.loaded;
|
|
212
|
-
SubapplicationRespondService.prototype.configSvc;
|
|
213
|
-
SubapplicationRespondService.prototype.contentSvc;
|
|
214
|
-
SubapplicationRespondService.prototype.activatedRoute;
|
|
215
|
-
SubapplicationRespondService.prototype.router;
|
|
216
|
-
SubapplicationRespondService.prototype.eventSvc;
|
|
217
|
-
SubapplicationRespondService.prototype.teleSvc;
|
|
218
|
-
}
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViYXBwbGljYXRpb24tcmVzcG9uZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN1bmJpcmQtY2IvdXRpbHMtdjIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvc3ViYXBwbGljYXRpb24tcmVzcG9uZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDeEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7Ozs7Ozs7QUFDdEQ7SUFRRSxzQ0FDVSxTQUFnQyxFQUNoQyxVQUFnQyxFQUVoQyxjQUE4QixFQUM5QixNQUFjLEVBQ2QsUUFBc0IsRUFDdEIsT0FBeUI7UUFQbkMsaUJBYUM7UUFaUyxjQUFTLEdBQVQsU0FBUyxDQUF1QjtRQUNoQyxlQUFVLEdBQVYsVUFBVSxDQUFzQjtRQUVoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQWM7UUFDdEIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFYbkMsZUFBVSxHQUFHLEVBQUUsQ0FBQTtRQUNmLHlCQUFvQixHQUFRLElBQUksQ0FBQTtRQUVoQyxXQUFNLEdBQUcsS0FBSyxDQUFBO1FBVVosSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUE7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FB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ckIsb0JBQW9CO2dCQURwQixjQUFjO2dCQUFFLE1BQU07Z0JBS3RCLFlBQVk7Z0JBQ1osZ0JBQWdCOzs7dUNBUHpCO0NBa05DLEFBMU1ELElBME1DO1NBdk1ZLDRCQUE0Qjs7SUFDdkMsa0RBQWU7SUFDZiw0REFBZ0M7SUFDaEMseURBQXNCO0lBQ3RCLDhDQUFjO0lBRVosaURBQXdDO0lBQ3hDLGtEQUF3QztJQUV4QyxzREFBc0M7SUFDdEMsOENBQXNCO0lBQ3RCLGdEQUE4QjtJQUM5QiwrQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcclxuaW1wb3J0IHsgV2lkZ2V0Q29udGVudFNlcnZpY2UgfSBmcm9tICcuL3dpZGdldC1jb250ZW50LnNlcnZpY2UnXHJcbi8vIGltcG9ydCB7IEF1dGhLZXljbG9ha1NlcnZpY2UgfSBmcm9tICcuL2F1dGgta2V5Y2xvYWsuc2VydmljZSdcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9ucy5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBXc0V2ZW50cyB9IGZyb20gJy4vZXZlbnQubW9kZWwnXHJcbmltcG9ydCB7IEV2ZW50U2VydmljZSB9IGZyb20gJy4vZXZlbnQuc2VydmljZSdcclxuaW1wb3J0IHsgVGVsZW1ldHJ5U2VydmljZSB9IGZyb20gJy4vdGVsZW1ldHJ5LnNlcnZpY2UnXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdWJhcHBsaWNhdGlvblJlc3BvbmRTZXJ2aWNlIHtcclxuICBzdWJBcHBuYW1lID0gJydcclxuICBjb250aW51ZUxlYXJuaW5nRGF0YTogYW55ID0gbnVsbFxyXG4gIGNvbnRlbnRXaW5kb3dpbmZvOiBhbnlcclxuICBsb2FkZWQgPSBmYWxzZVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgY29udGVudFN2YzogV2lkZ2V0Q29udGVudFNlcnZpY2UsXHJcbiAgICAvLyBwcml2YXRlIGtleUNsb2FrU3ZjOiBBdXRoS2V5Y2xvYWtTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBldmVudFN2YzogRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0ZWxlU3ZjOiBUZWxlbWV0cnlTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgdGhpcy5jaGFuZ2VDb250ZXh0cmVzcG9uZCgpXHJcbiAgICB0aGlzLmNvbmZpZ1N2Yy5wcmVmQ2hhbmdlTm90aWZpZXIuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5jaGFuZ2VDb250ZXh0cmVzcG9uZCgpXHJcbiAgICB9KVxyXG4gIH1cclxuICBsb2FkZWRSZXNwb25kKGNvbnRlbnRXaW5kb3c6IGFueSwgYXBwbGljYXRpb25OYW1lOiBzdHJpbmcsIGlkPzogc3RyaW5nKSB7XHJcbiAgICBpZiAoaWQgJiYgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy52aWV3TW9kZSAmJiB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnZpZXdNb2RlID09PSAnUkVTVU1FJykge1xyXG4gICAgICB0aGlzLmNvbnRpbnVlTGVhcm5pbmdEYXRhID0gbnVsbFxyXG4gICAgICB0aGlzLmNvbnRlbnRTdmMuZmV0Y2hDb250ZW50SGlzdG9yeShpZCkuc3Vic2NyaWJlKFxyXG4gICAgICAgIGRhdGEgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jb250aW51ZUxlYXJuaW5nRGF0YSA9IGRhdGEuY29udGludWVEYXRhXHJcbiAgICAgICAgICBpZiAodGhpcy5jb25maWdTdmMgJiYgdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUpIHtcclxuICAgICAgICAgICAgY29uc3QgZmlyc3ROYW1lID0gdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUudXNlck5hbWUgP1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnVzZXJOYW1lLnNwbGl0KCcgJywgMilbMF0gOiAnJ1xyXG4gICAgICAgICAgICBjb25zdCBsYXN0TmFtZSA9IHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnVzZXJOYW1lID9cclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VyTmFtZS5zcGxpdCgnICcsIDIpWzFdIDogJydcclxuICAgICAgICAgICAgY29uc3Qgdmlld01vZGU6IHN0cmluZyA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMudmlld01vZGUgP1xyXG4gICAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMudmlld01vZGUgOiAnJ1xyXG4gICAgICAgICAgICAvLyBjb25zdCB0b2tlbiA9IHRoaXMua2V5Q2xvYWtTdmMudG9rZW5cclxuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgc3ViQXBwbGljYXRpb25OYW1lOiBhcHBsaWNhdGlvbk5hbWUsXHJcbiAgICAgICAgICAgICAgcmVxdWVzdElkOiAnTE9BREVEJyxcclxuICAgICAgICAgICAgICBwYXJlbnRDb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICBkb21haW5OYW1lOiB3aW5kb3cubG9jYXRpb24uaG9zdCxcclxuICAgICAgICAgICAgICAgIHVybDogdGhpcy5yb3V0ZXIudXJsLFxyXG4gICAgICAgICAgICAgICAgcm9vdE9yZzogdGhpcy5jb25maWdTdmMucm9vdE9yZyxcclxuICAgICAgICAgICAgICAgIHRoZW1lOiB0aGlzLmNvbmZpZ1N2Yy5hY3RpdmVUaGVtZU9iamVjdCA/IHtcclxuICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5jb25maWdTdmMuYWN0aXZlVGhlbWVPYmplY3QudGhlbWVOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAuLi50aGlzLmNvbmZpZ1N2Yy5hY3RpdmVUaGVtZU9iamVjdC5jb2xvcixcclxuICAgICAgICAgICAgICAgIH0gOiAnJyxcclxuICAgICAgICAgICAgICAgIGZvbnRTaXplOiB0aGlzLmNvbmZpZ1N2Yy5hY3RpdmVGb250T2JqZWN0ID8gdGhpcy5jb25maWdTdmMuYWN0aXZlRm9udE9iamVjdC5iYXNlRm9udFNpemUgOiAnMTRweCcsXHJcbiAgICAgICAgICAgICAgICBsb2NhbGU6ICh0aGlzLmNvbmZpZ1N2Yy51c2VyUHJlZmVyZW5jZSAmJiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJlZmVyZW5jZS5zZWxlY3RlZExvY2FsZSkgfHwgJ2VuJyxcclxuICAgICAgICAgICAgICAgIGRhcmtNb2RlOiB0aGlzLmNvbmZpZ1N2Yy5pc0RhcmtNb2RlLFxyXG4gICAgICAgICAgICAgICAgc3ViQXBwbGljYXRpb25TdGFydE1vZGU6IHZpZXdNb2RlLnRvVXBwZXJDYXNlKCksXHJcbiAgICAgICAgICAgICAgICB1c2VyOiB7XHJcbiAgICAgICAgICAgICAgICAgIGZpcnN0TmFtZSxcclxuICAgICAgICAgICAgICAgICAgbGFzdE5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIC8vIHRva2VuLFxyXG4gICAgICAgICAgICAgICAgICB1c2VySWQ6IHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnVzZXJJZCA/IHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnVzZXJJZCA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICByb2xlczogdGhpcy5jb25maWdTdmMudXNlclJvbGVzID8gQXJyYXkuZnJvbSh0aGlzLmNvbmZpZ1N2Yy51c2VyUm9sZXMpIDogW10sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgaGVhcnRiZWF0RnJlcXVlbmN5OiAnMjAwJyxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGRhdGE6IHRoaXMuY29udGludWVMZWFybmluZ0RhdGEuZGF0YSA/IHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlTGVhcm5pbmc6IHRoaXMuY29udGludWVMZWFybmluZ0RhdGEuZGF0YSxcclxuICAgICAgICAgICAgICB9IDogbnVsbCxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZW50V2luZG93LnBvc3RNZXNzYWdlKHJlc3BvbnNlLCAnKicpXHJcbiAgICAgICAgICAgIHRoaXMuY29udGVudFdpbmRvd2luZm8gPSBjb250ZW50V2luZG93XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZVxyXG4gICAgICAgICAgICB0aGlzLnN1YkFwcG5hbWUgPSBhcHBsaWNhdGlvbk5hbWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuY29uZmlnU3ZjICYmIHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlKSB7XHJcbiAgICAgICAgY29uc3QgZmlyc3ROYW1lID0gdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUudXNlck5hbWUgP1xyXG4gICAgICAgICAgdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUudXNlck5hbWUuc3BsaXQoJyAnLCAyKVswXSA6ICcnXHJcbiAgICAgICAgY29uc3QgbGFzdE5hbWUgPSB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VyTmFtZSA/XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VyTmFtZS5zcGxpdCgnICcsIDIpWzFdIDogJydcclxuICAgICAgICBjb25zdCB2aWV3TW9kZTogc3RyaW5nID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy52aWV3TW9kZSA/XHJcbiAgICAgICAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnZpZXdNb2RlIDogJydcclxuICAgICAgICAvLyBjb25zdCB0b2tlbiA9IHRoaXMua2V5Q2xvYWtTdmMudG9rZW5cclxuICAgICAgICBjb25zdCByZXNwb25zZSA9IHtcclxuICAgICAgICAgIHN1YkFwcGxpY2F0aW9uTmFtZTogYXBwbGljYXRpb25OYW1lLFxyXG4gICAgICAgICAgcmVxdWVzdElkOiAnTE9BREVEJyxcclxuICAgICAgICAgIHBhcmVudENvbnRleHQ6IHtcclxuICAgICAgICAgICAgZG9tYWluTmFtZTogd2luZG93LmxvY2F0aW9uLmhvc3QsXHJcbiAgICAgICAgICAgIHVybDogdGhpcy5yb3V0ZXIudXJsLFxyXG4gICAgICAgICAgICByb290T3JnOiB0aGlzLmNvbmZpZ1N2Yy5yb290T3JnLFxyXG4gICAgICAgICAgICB0aGVtZTogdGhpcy5jb25maWdTdmMuYWN0aXZlVGhlbWVPYmplY3QgPyB7XHJcbiAgICAgICAgICAgICAgbmFtZTogdGhpcy5jb25maWdTdmMuYWN0aXZlVGhlbWVPYmplY3QudGhlbWVOYW1lLFxyXG4gICAgICAgICAgICAgIC4uLnRoaXMuY29uZmlnU3ZjLmFjdGl2ZVRoZW1lT2JqZWN0LmNvbG9yLFxyXG4gICAgICAgICAgICB9IDogJycsXHJcbiAgICAgICAgICAgIGZvbnRTaXplOiB0aGlzLmNvbmZpZ1N2Yy5hY3RpdmVGb250T2JqZWN0ID8gdGhpcy5jb25maWdTdmMuYWN0aXZlRm9udE9iamVjdC5iYXNlRm9udFNpemUgOiAnMTRweCcsXHJcbiAgICAgICAgICAgIGxvY2FsZTogKHRoaXMuY29uZmlnU3ZjLnVzZXJQcmVmZXJlbmNlICYmIHRoaXMuY29uZmlnU3ZjLnVzZXJQcmVmZXJlbmNlLnNlbGVjdGVkTG9jYWxlKSB8fCAnZW4nLFxyXG4gICAgICAgICAgICBkYXJrTW9kZTogdGhpcy5jb25maWdTdmMuaXNEYXJrTW9kZSxcclxuICAgICAgICAgICAgc3ViQXBwbGljYXRpb25TdGFydE1vZGU6IHZpZXdNb2RlLnRvVXBwZXJDYXNlKCksXHJcbiAgICAgICAgICAgIHVzZXI6IHtcclxuICAgICAgICAgICAgICBmaXJzdE5hbWUsXHJcbiAgICAgICAgICAgICAgbGFzdE5hbWUsXHJcbiAgICAgICAgICAgICAgLy8gdG9rZW4sXHJcbiAgICAgICAgICAgICAgdXNlcklkOiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VySWQgPyB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VySWQgOiAnJyxcclxuICAgICAgICAgICAgICByb2xlczogdGhpcy5jb25maWdTdmMudXNlclJvbGVzID8gQXJyYXkuZnJvbSh0aGlzLmNvbmZpZ1N2Yy51c2VyUm9sZXMpIDogW10sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGhlYXJ0YmVhdEZyZXF1ZW5jeTogJzIwMCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGF0YTogbnVsbCxcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZShyZXNwb25zZSwgJyonKVxyXG4gICAgICAgIHRoaXMuY29udGVudFdpbmRvd2luZm8gPSBjb250ZW50V2luZG93XHJcbiAgICAgICAgdGhpcy5sb2FkZWQgPSB0cnVlXHJcbiAgICAgICAgdGhpcy5zdWJBcHBuYW1lID0gYXBwbGljYXRpb25OYW1lXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY29udGludWVMZWFybmluZ1Jlc3BvbmQoaWQ6IHN0cmluZywgY29udGludWVMZWFybmluZzogYW55KSB7XHJcbiAgICB0aGlzLmNvbnRlbnRTdmMuc2F2ZUNvbnRpbnVlTGVhcm5pbmcoXHJcbiAgICAgIHtcclxuICAgICAgICBjb250ZXh0UGF0aElkOiBpZCxcclxuICAgICAgICByZXNvdXJjZUlkOiBpZCxcclxuICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7IHRpbWVzdGFtcDogRGF0ZS5ub3coKSwgZGF0YTogY29udGludWVMZWFybmluZyB9KSxcclxuICAgICAgICBkYXRlQWNjZXNzZWQ6IERhdGUubm93KCksXHJcbiAgICAgIH0sXHJcbiAgICApXHJcbiAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAuY2F0Y2goKVxyXG4gIH1cclxuICB0ZWxlbWV0cnlFdmVudHModERhdGE6IGFueSkge1xyXG4gICAgaWYgKHREYXRhKSB7XHJcbiAgICAgIHN3aXRjaCAodERhdGEuZXZlbnRJZCkge1xyXG4gICAgICAgIGNhc2UgJ0lOVEVSQUNUJzpcclxuICAgICAgICAgIHRoaXMuZXZlbnRTdmMuZGlzcGF0Y2hFdmVudDxXc0V2ZW50cy5JV3NFdmVudFRlbGVtZXRyeUludGVyYWN0Pih7XHJcbiAgICAgICAgICAgIGV2ZW50VHlwZTogV3NFdmVudHMuV3NFdmVudFR5cGUuVGVsZW1ldHJ5LFxyXG4gICAgICAgICAgICBldmVudExvZ0xldmVsOiBXc0V2ZW50cy5Xc0V2ZW50TG9nTGV2ZWwuV2FybixcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgIC4uLnREYXRhLmRhdGEsXHJcbiAgICAgICAgICAgICAgZXZlbnRTdWJUeXBlOiBXc0V2ZW50cy5FbnVtVGVsZW1ldHJ5U3ViVHlwZS5JbnRlcmFjdCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZnJvbTogdERhdGEuc3ViQXBwbGljYXRpb25OYW1lLFxyXG4gICAgICAgICAgICB0bzogJ1RlbGVtZXRyeScsXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgYnJlYWtcclxuICAgICAgICBjYXNlICdIRUFSVEJFQVQnOlxyXG4gICAgICAgICAgdGhpcy5ldmVudFN2Yy5kaXNwYXRjaEV2ZW50PFdzRXZlbnRzLklXc0V2ZW50VGVsZW1ldHJ5SGVhcnRCZWF0Pih7XHJcbiAgICAgICAgICAgIGV2ZW50VHlwZTogV3NFdmVudHMuV3NFdmVudFR5cGUuVGVsZW1ldHJ5LFxyXG4gICAgICAgICAgICBldmVudExvZ0xldmVsOiBXc0V2ZW50cy5Xc0V2ZW50TG9nTGV2ZWwuVHJhY2UsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAuLi50RGF0YS5kYXRhLFxyXG4gICAgICAgICAgICAgIGV2ZW50U3ViVHlwZTogV3NFdmVudHMuRW51bVRlbGVtZXRyeVN1YlR5cGUuSGVhcnRCZWF0LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmcm9tOiB0RGF0YS5zdWJBcHBsaWNhdGlvbk5hbWUsXHJcbiAgICAgICAgICAgIHRvOiAnVGVsZW1ldHJ5JyxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBicmVha1xyXG4gICAgICAgIGNhc2UgJ0lNUFJFU1NJT04nOlxyXG4gICAgICAgICAgdGhpcy50ZWxlU3ZjLmV4dGVybmFsSW1wcmVzc2lvbih0RGF0YS5kYXRhKVxyXG4gICAgICAgICAgYnJlYWtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgYnJlYWtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICB1bnN1YnNjcmliZVJlc3BvbnNlKCkge1xyXG4gICAgdGhpcy5zdWJBcHBuYW1lID0gJydcclxuICAgIHRoaXMuY29udGludWVMZWFybmluZ0RhdGEgPSBudWxsXHJcbiAgICB0aGlzLmNvbnRlbnRXaW5kb3dpbmZvID0gbnVsbFxyXG4gICAgdGhpcy5sb2FkZWQgPSBmYWxzZVxyXG4gIH1cclxuICBjaGFuZ2VDb250ZXh0cmVzcG9uZCgpIHtcclxuICAgIGlmICh0aGlzLmxvYWRlZCAmJiB0aGlzLmNvbnRlbnRXaW5kb3dpbmZvICYmIHRoaXMuY29uZmlnU3ZjICYmIHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlICYmIHRoaXMuc3ViQXBwbmFtZSkge1xyXG4gICAgICBjb25zdCBmaXJzdE5hbWUgPSB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VyTmFtZSA/XHJcbiAgICAgICAgdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUudXNlck5hbWUuc3BsaXQoJyAnLCAyKVswXSA6ICcnXHJcbiAgICAgIGNvbnN0IGxhc3ROYW1lID0gdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUudXNlck5hbWUgP1xyXG4gICAgICAgIHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnVzZXJOYW1lLnNwbGl0KCcgJywgMilbMV0gOiAnJ1xyXG4gICAgICBjb25zdCB2aWV3TW9kZTogc3RyaW5nID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy52aWV3TW9kZSA/XHJcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy52aWV3TW9kZSA6ICcnXHJcbiAgICAgIC8vIGNvbnN0IHRva2VuID0gdGhpcy5rZXlDbG9ha1N2Yy50b2tlblxyXG4gICAgICBjb25zdCByZXNwb25zZSA9IHtcclxuICAgICAgICBzdWJBcHBsaWNhdGlvbk5hbWU6IHRoaXMuc3ViQXBwbmFtZSxcclxuICAgICAgICByZXF1ZXN0SWQ6ICdDT05URVhUX0NIQU5HRScsXHJcbiAgICAgICAgcGFyZW50Q29udGV4dDoge1xyXG4gICAgICAgICAgZG9tYWluTmFtZTogd2luZG93LmxvY2F0aW9uLmhvc3QsXHJcbiAgICAgICAgICB1cmw6IHRoaXMucm91dGVyLnVybCxcclxuICAgICAgICAgIHJvb3RPcmc6IHRoaXMuY29uZmlnU3ZjLnJvb3RPcmcsXHJcbiAgICAgICAgICB0aGVtZTogdGhpcy5jb25maWdTdmMuYWN0aXZlVGhlbWVPYmplY3QgPyB7XHJcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuY29uZmlnU3ZjLmFjdGl2ZVRoZW1lT2JqZWN0LnRoZW1lTmFtZSxcclxuICAgICAgICAgICAgLi4udGhpcy5jb25maWdTdmMuYWN0aXZlVGhlbWVPYmplY3QuY29sb3IsXHJcbiAgICAgICAgICB9IDogJycsXHJcbiAgICAgICAgICBmb250U2l6ZTogdGhpcy5jb25maWdTdmMuYWN0aXZlRm9udE9iamVjdCA/IHRoaXMuY29uZmlnU3ZjLmFjdGl2ZUZvbnRPYmplY3QuYmFzZUZvbnRTaXplIDogJzE0cHgnLFxyXG4gICAgICAgICAgbG9jYWxlOiAodGhpcy5jb25maWdTdmMudXNlclByZWZlcmVuY2UgJiYgdGhpcy5jb25maWdTdmMudXNlclByZWZlcmVuY2Uuc2VsZWN0ZWRMb2NhbGUpIHx8ICdlbicsXHJcbiAgICAgICAgICBkYXJrTW9kZTogdGhpcy5jb25maWdTdmMuaXNEYXJrTW9kZSxcclxuICAgICAgICAgIHN1YkFwcGxpY2F0aW9uU3RhcnRNb2RlOiB2aWV3TW9kZS50b1VwcGVyQ2FzZSgpLFxyXG4gICAgICAgICAgdXNlcjoge1xyXG4gICAgICAgICAgICBmaXJzdE5hbWUsXHJcbiAgICAgICAgICAgIGxhc3ROYW1lLFxyXG4gICAgICAgICAgICAvLyB0b2tlbixcclxuICAgICAgICAgICAgdXNlcklkOiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VySWQgPyB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VySWQgOiAnJyxcclxuICAgICAgICAgICAgcm9sZXM6IHRoaXMuY29uZmlnU3ZjLnVzZXJSb2xlcyA/IEFycmF5LmZyb20odGhpcy5jb25maWdTdmMudXNlclJvbGVzKSA6IFtdLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGhlYXJ0YmVhdEZyZXF1ZW5jeTogJzIwMCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbnRlbnRXaW5kb3dpbmZvLnBvc3RNZXNzYWdlKHJlc3BvbnNlLCAnKicpXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViYXBwbGljYXRpb24tcmVzcG9uZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN1bmJpcmQtY2IvdXRpbHMtdjIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvc3ViYXBwbGljYXRpb24tcmVzcG9uZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBRS9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBOzs7Ozs7O0FBQ3REO0lBUUUsc0NBQ1UsU0FBZ0MsRUFDaEMsVUFBZ0MsRUFFaEMsY0FBOEIsRUFDOUIsTUFBYyxFQUNkLFFBQXNCLEVBQ3RCLE9BQXlCO1FBUG5DLGlCQWFDO1FBWlMsY0FBUyxHQUFULFNBQVMsQ0FBdUI7UUFDaEMsZUFBVSxHQUFWLFVBQVUsQ0FBc0I7UUFFaEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFjO1FBQ3RCLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBWG5DLGVBQVUsR0FBRyxFQUFFLENBQUE7UUFDZix5QkFBb0IsR0FBUSxJQUFJLENBQUE7UUFFaEMsV0FBTSxHQUFHLEtBQUssQ0FBQTtRQVVaLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFBO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMs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QixDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUE7U0FDbEQ7SUFDSCxDQUFDOztnQkFoTW9CLHFCQUFxQjtnQkFDcEIsb0JBQW9CO2dCQUVoQixjQUFjO2dCQUN0QixNQUFNO2dCQUNKLFlBQVk7Z0JBQ2IsZ0JBQWdCOzs7O2dCQWZwQyxVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7Z0JBTlEscUJBQXFCO2dCQUZyQixvQkFBb0I7Z0JBRHBCLGNBQWM7Z0JBQUUsTUFBTTtnQkFLdEIsWUFBWTtnQkFDWixnQkFBZ0I7O3VDQVB6QjtDQWtOQyxBQTFNRCxJQTBNQztTQXZNWSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcclxuaW1wb3J0IHsgV2lkZ2V0Q29udGVudFNlcnZpY2UgfSBmcm9tICcuL3dpZGdldC1jb250ZW50LnNlcnZpY2UnXHJcbi8vIGltcG9ydCB7IEF1dGhLZXljbG9ha1NlcnZpY2UgfSBmcm9tICcuL2F1dGgta2V5Y2xvYWsuc2VydmljZSdcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9ucy5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBXc0V2ZW50cyB9IGZyb20gJy4vZXZlbnQubW9kZWwnXHJcbmltcG9ydCB7IEV2ZW50U2VydmljZSB9IGZyb20gJy4vZXZlbnQuc2VydmljZSdcclxuaW1wb3J0IHsgVGVsZW1ldHJ5U2VydmljZSB9IGZyb20gJy4vdGVsZW1ldHJ5LnNlcnZpY2UnXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdWJhcHBsaWNhdGlvblJlc3BvbmRTZXJ2aWNlIHtcclxuICBzdWJBcHBuYW1lID0gJydcclxuICBjb250aW51ZUxlYXJuaW5nRGF0YTogYW55ID0gbnVsbFxyXG4gIGNvbnRlbnRXaW5kb3dpbmZvOiBhbnlcclxuICBsb2FkZWQgPSBmYWxzZVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgY29udGVudFN2YzogV2lkZ2V0Q29udGVudFNlcnZpY2UsXHJcbiAgICAvLyBwcml2YXRlIGtleUNsb2FrU3ZjOiBBdXRoS2V5Y2xvYWtTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBldmVudFN2YzogRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0ZWxlU3ZjOiBUZWxlbWV0cnlTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgdGhpcy5jaGFuZ2VDb250ZXh0cmVzcG9uZCgpXHJcbiAgICB0aGlzLmNvbmZpZ1N2Yy5wcmVmQ2hhbmdlTm90aWZpZXIuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5jaGFuZ2VDb250ZXh0cmVzcG9uZCgpXHJcbiAgICB9KVxyXG4gIH1cclxuICBsb2FkZWRSZXNwb25kKGNvbnRlbnRXaW5kb3c6IGFueSwgYXBwbGljYXRpb25OYW1lOiBzdHJpbmcsIGlkPzogc3RyaW5nKSB7XHJcbiAgICBpZiAoaWQgJiYgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy52aWV3TW9kZSAmJiB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnZpZXdNb2RlID09PSAnUkVTVU1FJykge1xyXG4gICAgICB0aGlzLmNvbnRpbnVlTGVhcm5pbmdEYXRhID0gbnVsbFxyXG4gICAgICB0aGlzLmNvbnRlbnRTdmMuZmV0Y2hDb250ZW50SGlzdG9yeShpZCkuc3Vic2NyaWJlKFxyXG4gICAgICAgIGRhdGEgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jb250aW51ZUxlYXJuaW5nRGF0YSA9IGRhdGEuY29udGludWVEYXRhXHJcbiAgICAgICAgICBpZiAodGhpcy5jb25maWdTdmMgJiYgdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUpIHtcclxuICAgICAgICAgICAgY29uc3QgZmlyc3ROYW1lID0gdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUudXNlck5hbWUgP1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnVzZXJOYW1lLnNwbGl0KCcgJywgMilbMF0gOiAnJ1xyXG4gICAgICAgICAgICBjb25zdCBsYXN0TmFtZSA9IHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnVzZXJOYW1lID9cclxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VyTmFtZS5zcGxpdCgnICcsIDIpWzFdIDogJydcclxuICAgICAgICAgICAgY29uc3Qgdmlld01vZGU6IHN0cmluZyA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMudmlld01vZGUgP1xyXG4gICAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMudmlld01vZGUgOiAnJ1xyXG4gICAgICAgICAgICAvLyBjb25zdCB0b2tlbiA9IHRoaXMua2V5Q2xvYWtTdmMudG9rZW5cclxuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB7XHJcbiAgICAgICAgICAgICAgc3ViQXBwbGljYXRpb25OYW1lOiBhcHBsaWNhdGlvbk5hbWUsXHJcbiAgICAgICAgICAgICAgcmVxdWVzdElkOiAnTE9BREVEJyxcclxuICAgICAgICAgICAgICBwYXJlbnRDb250ZXh0OiB7XHJcbiAgICAgICAgICAgICAgICBkb21haW5OYW1lOiB3aW5kb3cubG9jYXRpb24uaG9zdCxcclxuICAgICAgICAgICAgICAgIHVybDogdGhpcy5yb3V0ZXIudXJsLFxyXG4gICAgICAgICAgICAgICAgcm9vdE9yZzogdGhpcy5jb25maWdTdmMucm9vdE9yZyxcclxuICAgICAgICAgICAgICAgIHRoZW1lOiB0aGlzLmNvbmZpZ1N2Yy5hY3RpdmVUaGVtZU9iamVjdCA/IHtcclxuICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5jb25maWdTdmMuYWN0aXZlVGhlbWVPYmplY3QudGhlbWVOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAuLi50aGlzLmNvbmZpZ1N2Yy5hY3RpdmVUaGVtZU9iamVjdC5jb2xvcixcclxuICAgICAgICAgICAgICAgIH0gOiAnJyxcclxuICAgICAgICAgICAgICAgIGZvbnRTaXplOiB0aGlzLmNvbmZpZ1N2Yy5hY3RpdmVGb250T2JqZWN0ID8gdGhpcy5jb25maWdTdmMuYWN0aXZlRm9udE9iamVjdC5iYXNlRm9udFNpemUgOiAnMTRweCcsXHJcbiAgICAgICAgICAgICAgICBsb2NhbGU6ICh0aGlzLmNvbmZpZ1N2Yy51c2VyUHJlZmVyZW5jZSAmJiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJlZmVyZW5jZS5zZWxlY3RlZExvY2FsZSkgfHwgJ2VuJyxcclxuICAgICAgICAgICAgICAgIGRhcmtNb2RlOiB0aGlzLmNvbmZpZ1N2Yy5pc0RhcmtNb2RlLFxyXG4gICAgICAgICAgICAgICAgc3ViQXBwbGljYXRpb25TdGFydE1vZGU6IHZpZXdNb2RlLnRvVXBwZXJDYXNlKCksXHJcbiAgICAgICAgICAgICAgICB1c2VyOiB7XHJcbiAgICAgICAgICAgICAgICAgIGZpcnN0TmFtZSxcclxuICAgICAgICAgICAgICAgICAgbGFzdE5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIC8vIHRva2VuLFxyXG4gICAgICAgICAgICAgICAgICB1c2VySWQ6IHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnVzZXJJZCA/IHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnVzZXJJZCA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICByb2xlczogdGhpcy5jb25maWdTdmMudXNlclJvbGVzID8gQXJyYXkuZnJvbSh0aGlzLmNvbmZpZ1N2Yy51c2VyUm9sZXMpIDogW10sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgaGVhcnRiZWF0RnJlcXVlbmN5OiAnMjAwJyxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGRhdGE6IHRoaXMuY29udGludWVMZWFybmluZ0RhdGEuZGF0YSA/IHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlTGVhcm5pbmc6IHRoaXMuY29udGludWVMZWFybmluZ0RhdGEuZGF0YSxcclxuICAgICAgICAgICAgICB9IDogbnVsbCxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb250ZW50V2luZG93LnBvc3RNZXNzYWdlKHJlc3BvbnNlLCAnKicpXHJcbiAgICAgICAgICAgIHRoaXMuY29udGVudFdpbmRvd2luZm8gPSBjb250ZW50V2luZG93XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZVxyXG4gICAgICAgICAgICB0aGlzLnN1YkFwcG5hbWUgPSBhcHBsaWNhdGlvbk5hbWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuY29uZmlnU3ZjICYmIHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlKSB7XHJcbiAgICAgICAgY29uc3QgZmlyc3ROYW1lID0gdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUudXNlck5hbWUgP1xyXG4gICAgICAgICAgdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUudXNlck5hbWUuc3BsaXQoJyAnLCAyKVswXSA6ICcnXHJcbiAgICAgICAgY29uc3QgbGFzdE5hbWUgPSB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VyTmFtZSA/XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VyTmFtZS5zcGxpdCgnICcsIDIpWzFdIDogJydcclxuICAgICAgICBjb25zdCB2aWV3TW9kZTogc3RyaW5nID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy52aWV3TW9kZSA/XHJcbiAgICAgICAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnZpZXdNb2RlIDogJydcclxuICAgICAgICAvLyBjb25zdCB0b2tlbiA9IHRoaXMua2V5Q2xvYWtTdmMudG9rZW5cclxuICAgICAgICBjb25zdCByZXNwb25zZSA9IHtcclxuICAgICAgICAgIHN1YkFwcGxpY2F0aW9uTmFtZTogYXBwbGljYXRpb25OYW1lLFxyXG4gICAgICAgICAgcmVxdWVzdElkOiAnTE9BREVEJyxcclxuICAgICAgICAgIHBhcmVudENvbnRleHQ6IHtcclxuICAgICAgICAgICAgZG9tYWluTmFtZTogd2luZG93LmxvY2F0aW9uLmhvc3QsXHJcbiAgICAgICAgICAgIHVybDogdGhpcy5yb3V0ZXIudXJsLFxyXG4gICAgICAgICAgICByb290T3JnOiB0aGlzLmNvbmZpZ1N2Yy5yb290T3JnLFxyXG4gICAgICAgICAgICB0aGVtZTogdGhpcy5jb25maWdTdmMuYWN0aXZlVGhlbWVPYmplY3QgPyB7XHJcbiAgICAgICAgICAgICAgbmFtZTogdGhpcy5jb25maWdTdmMuYWN0aXZlVGhlbWVPYmplY3QudGhlbWVOYW1lLFxyXG4gICAgICAgICAgICAgIC4uLnRoaXMuY29uZmlnU3ZjLmFjdGl2ZVRoZW1lT2JqZWN0LmNvbG9yLFxyXG4gICAgICAgICAgICB9IDogJycsXHJcbiAgICAgICAgICAgIGZvbnRTaXplOiB0aGlzLmNvbmZpZ1N2Yy5hY3RpdmVGb250T2JqZWN0ID8gdGhpcy5jb25maWdTdmMuYWN0aXZlRm9udE9iamVjdC5iYXNlRm9udFNpemUgOiAnMTRweCcsXHJcbiAgICAgICAgICAgIGxvY2FsZTogKHRoaXMuY29uZmlnU3ZjLnVzZXJQcmVmZXJlbmNlICYmIHRoaXMuY29uZmlnU3ZjLnVzZXJQcmVmZXJlbmNlLnNlbGVjdGVkTG9jYWxlKSB8fCAnZW4nLFxyXG4gICAgICAgICAgICBkYXJrTW9kZTogdGhpcy5jb25maWdTdmMuaXNEYXJrTW9kZSxcclxuICAgICAgICAgICAgc3ViQXBwbGljYXRpb25TdGFydE1vZGU6IHZpZXdNb2RlLnRvVXBwZXJDYXNlKCksXHJcbiAgICAgICAgICAgIHVzZXI6IHtcclxuICAgICAgICAgICAgICBmaXJzdE5hbWUsXHJcbiAgICAgICAgICAgICAgbGFzdE5hbWUsXHJcbiAgICAgICAgICAgICAgLy8gdG9rZW4sXHJcbiAgICAgICAgICAgICAgdXNlcklkOiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VySWQgPyB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VySWQgOiAnJyxcclxuICAgICAgICAgICAgICByb2xlczogdGhpcy5jb25maWdTdmMudXNlclJvbGVzID8gQXJyYXkuZnJvbSh0aGlzLmNvbmZpZ1N2Yy51c2VyUm9sZXMpIDogW10sXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGhlYXJ0YmVhdEZyZXF1ZW5jeTogJzIwMCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGF0YTogbnVsbCxcclxuICAgICAgICB9XHJcbiAgICAgICAgY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZShyZXNwb25zZSwgJyonKVxyXG4gICAgICAgIHRoaXMuY29udGVudFdpbmRvd2luZm8gPSBjb250ZW50V2luZG93XHJcbiAgICAgICAgdGhpcy5sb2FkZWQgPSB0cnVlXHJcbiAgICAgICAgdGhpcy5zdWJBcHBuYW1lID0gYXBwbGljYXRpb25OYW1lXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY29udGludWVMZWFybmluZ1Jlc3BvbmQoaWQ6IHN0cmluZywgY29udGludWVMZWFybmluZzogYW55KSB7XHJcbiAgICB0aGlzLmNvbnRlbnRTdmMuc2F2ZUNvbnRpbnVlTGVhcm5pbmcoXHJcbiAgICAgIHtcclxuICAgICAgICBjb250ZXh0UGF0aElkOiBpZCxcclxuICAgICAgICByZXNvdXJjZUlkOiBpZCxcclxuICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7IHRpbWVzdGFtcDogRGF0ZS5ub3coKSwgZGF0YTogY29udGludWVMZWFybmluZyB9KSxcclxuICAgICAgICBkYXRlQWNjZXNzZWQ6IERhdGUubm93KCksXHJcbiAgICAgIH0sXHJcbiAgICApXHJcbiAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAuY2F0Y2goKVxyXG4gIH1cclxuICB0ZWxlbWV0cnlFdmVudHModERhdGE6IGFueSkge1xyXG4gICAgaWYgKHREYXRhKSB7XHJcbiAgICAgIHN3aXRjaCAodERhdGEuZXZlbnRJZCkge1xyXG4gICAgICAgIGNhc2UgJ0lOVEVSQUNUJzpcclxuICAgICAgICAgIHRoaXMuZXZlbnRTdmMuZGlzcGF0Y2hFdmVudDxXc0V2ZW50cy5JV3NFdmVudFRlbGVtZXRyeUludGVyYWN0Pih7XHJcbiAgICAgICAgICAgIGV2ZW50VHlwZTogV3NFdmVudHMuV3NFdmVudFR5cGUuVGVsZW1ldHJ5LFxyXG4gICAgICAgICAgICBldmVudExvZ0xldmVsOiBXc0V2ZW50cy5Xc0V2ZW50TG9nTGV2ZWwuV2FybixcclxuICAgICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAgIC4uLnREYXRhLmRhdGEsXHJcbiAgICAgICAgICAgICAgZXZlbnRTdWJUeXBlOiBXc0V2ZW50cy5FbnVtVGVsZW1ldHJ5U3ViVHlwZS5JbnRlcmFjdCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZnJvbTogdERhdGEuc3ViQXBwbGljYXRpb25OYW1lLFxyXG4gICAgICAgICAgICB0bzogJ1RlbGVtZXRyeScsXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgYnJlYWtcclxuICAgICAgICBjYXNlICdIRUFSVEJFQVQnOlxyXG4gICAgICAgICAgdGhpcy5ldmVudFN2Yy5kaXNwYXRjaEV2ZW50PFdzRXZlbnRzLklXc0V2ZW50VGVsZW1ldHJ5SGVhcnRCZWF0Pih7XHJcbiAgICAgICAgICAgIGV2ZW50VHlwZTogV3NFdmVudHMuV3NFdmVudFR5cGUuVGVsZW1ldHJ5LFxyXG4gICAgICAgICAgICBldmVudExvZ0xldmVsOiBXc0V2ZW50cy5Xc0V2ZW50TG9nTGV2ZWwuVHJhY2UsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAuLi50RGF0YS5kYXRhLFxyXG4gICAgICAgICAgICAgIGV2ZW50U3ViVHlwZTogV3NFdmVudHMuRW51bVRlbGVtZXRyeVN1YlR5cGUuSGVhcnRCZWF0LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmcm9tOiB0RGF0YS5zdWJBcHBsaWNhdGlvbk5hbWUsXHJcbiAgICAgICAgICAgIHRvOiAnVGVsZW1ldHJ5JyxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBicmVha1xyXG4gICAgICAgIGNhc2UgJ0lNUFJFU1NJT04nOlxyXG4gICAgICAgICAgdGhpcy50ZWxlU3ZjLmV4dGVybmFsSW1wcmVzc2lvbih0RGF0YS5kYXRhKVxyXG4gICAgICAgICAgYnJlYWtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgYnJlYWtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICB1bnN1YnNjcmliZVJlc3BvbnNlKCkge1xyXG4gICAgdGhpcy5zdWJBcHBuYW1lID0gJydcclxuICAgIHRoaXMuY29udGludWVMZWFybmluZ0RhdGEgPSBudWxsXHJcbiAgICB0aGlzLmNvbnRlbnRXaW5kb3dpbmZvID0gbnVsbFxyXG4gICAgdGhpcy5sb2FkZWQgPSBmYWxzZVxyXG4gIH1cclxuICBjaGFuZ2VDb250ZXh0cmVzcG9uZCgpIHtcclxuICAgIGlmICh0aGlzLmxvYWRlZCAmJiB0aGlzLmNvbnRlbnRXaW5kb3dpbmZvICYmIHRoaXMuY29uZmlnU3ZjICYmIHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlICYmIHRoaXMuc3ViQXBwbmFtZSkge1xyXG4gICAgICBjb25zdCBmaXJzdE5hbWUgPSB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VyTmFtZSA/XHJcbiAgICAgICAgdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUudXNlck5hbWUuc3BsaXQoJyAnLCAyKVswXSA6ICcnXHJcbiAgICAgIGNvbnN0IGxhc3ROYW1lID0gdGhpcy5jb25maWdTdmMudXNlclByb2ZpbGUudXNlck5hbWUgP1xyXG4gICAgICAgIHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLnVzZXJOYW1lLnNwbGl0KCcgJywgMilbMV0gOiAnJ1xyXG4gICAgICBjb25zdCB2aWV3TW9kZTogc3RyaW5nID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy52aWV3TW9kZSA/XHJcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy52aWV3TW9kZSA6ICcnXHJcbiAgICAgIC8vIGNvbnN0IHRva2VuID0gdGhpcy5rZXlDbG9ha1N2Yy50b2tlblxyXG4gICAgICBjb25zdCByZXNwb25zZSA9IHtcclxuICAgICAgICBzdWJBcHBsaWNhdGlvbk5hbWU6IHRoaXMuc3ViQXBwbmFtZSxcclxuICAgICAgICByZXF1ZXN0SWQ6ICdDT05URVhUX0NIQU5HRScsXHJcbiAgICAgICAgcGFyZW50Q29udGV4dDoge1xyXG4gICAgICAgICAgZG9tYWluTmFtZTogd2luZG93LmxvY2F0aW9uLmhvc3QsXHJcbiAgICAgICAgICB1cmw6IHRoaXMucm91dGVyLnVybCxcclxuICAgICAgICAgIHJvb3RPcmc6IHRoaXMuY29uZmlnU3ZjLnJvb3RPcmcsXHJcbiAgICAgICAgICB0aGVtZTogdGhpcy5jb25maWdTdmMuYWN0aXZlVGhlbWVPYmplY3QgPyB7XHJcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuY29uZmlnU3ZjLmFjdGl2ZVRoZW1lT2JqZWN0LnRoZW1lTmFtZSxcclxuICAgICAgICAgICAgLi4udGhpcy5jb25maWdTdmMuYWN0aXZlVGhlbWVPYmplY3QuY29sb3IsXHJcbiAgICAgICAgICB9IDogJycsXHJcbiAgICAgICAgICBmb250U2l6ZTogdGhpcy5jb25maWdTdmMuYWN0aXZlRm9udE9iamVjdCA/IHRoaXMuY29uZmlnU3ZjLmFjdGl2ZUZvbnRPYmplY3QuYmFzZUZvbnRTaXplIDogJzE0cHgnLFxyXG4gICAgICAgICAgbG9jYWxlOiAodGhpcy5jb25maWdTdmMudXNlclByZWZlcmVuY2UgJiYgdGhpcy5jb25maWdTdmMudXNlclByZWZlcmVuY2Uuc2VsZWN0ZWRMb2NhbGUpIHx8ICdlbicsXHJcbiAgICAgICAgICBkYXJrTW9kZTogdGhpcy5jb25maWdTdmMuaXNEYXJrTW9kZSxcclxuICAgICAgICAgIHN1YkFwcGxpY2F0aW9uU3RhcnRNb2RlOiB2aWV3TW9kZS50b1VwcGVyQ2FzZSgpLFxyXG4gICAgICAgICAgdXNlcjoge1xyXG4gICAgICAgICAgICBmaXJzdE5hbWUsXHJcbiAgICAgICAgICAgIGxhc3ROYW1lLFxyXG4gICAgICAgICAgICAvLyB0b2tlbixcclxuICAgICAgICAgICAgdXNlcklkOiB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VySWQgPyB0aGlzLmNvbmZpZ1N2Yy51c2VyUHJvZmlsZS51c2VySWQgOiAnJyxcclxuICAgICAgICAgICAgcm9sZXM6IHRoaXMuY29uZmlnU3ZjLnVzZXJSb2xlcyA/IEFycmF5LmZyb20odGhpcy5jb25maWdTdmMudXNlclJvbGVzKSA6IFtdLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGhlYXJ0YmVhdEZyZXF1ZW5jeTogJzIwMCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbnRlbnRXaW5kb3dpbmZvLnBvc3RNZXNzYWdlKHJlc3BvbnNlLCAnKicpXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|