@klippa/ngx-enhancy-forms 18.23.8 → 18.24.0
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/esm2022/lib/form/form.component.mjs +46 -35
- package/esm2022/lib/withTooltip.component.mjs +7 -2
- package/fesm2022/klippa-ngx-enhancy-forms.mjs +52 -36
- package/fesm2022/klippa-ngx-enhancy-forms.mjs.map +1 -1
- package/lib/form/form.component.d.ts +5 -3
- package/lib/withTooltip.component.d.ts +2 -1
- package/package.json +1 -1
|
@@ -35,6 +35,7 @@ export class FormComponent {
|
|
|
35
35
|
this.activeControls = [];
|
|
36
36
|
}
|
|
37
37
|
ngOnInit() {
|
|
38
|
+
this.topLevelFormControl = this.formGroup ?? this.formArray;
|
|
38
39
|
if (isValueSet(this.patchValueInterceptor)) {
|
|
39
40
|
this.addSupportForPatchValueInterceptor();
|
|
40
41
|
}
|
|
@@ -46,13 +47,13 @@ export class FormComponent {
|
|
|
46
47
|
throw new Error(`cannot index FormArray with ${typeof injectAt}`);
|
|
47
48
|
}
|
|
48
49
|
if (injectInto.at(injectAt)?.disabled) {
|
|
49
|
-
this.
|
|
50
|
+
this.topLevelFormControl.disable();
|
|
50
51
|
}
|
|
51
52
|
const valueBeforeInject = injectInto.at(injectAt)?.value;
|
|
52
53
|
if (isValueSet(valueBeforeInject)) {
|
|
53
|
-
this.
|
|
54
|
+
this.topLevelFormControl.patchValue(valueBeforeInject);
|
|
54
55
|
}
|
|
55
|
-
injectInto.setControl(injectAt, this.
|
|
56
|
+
injectInto.setControl(injectAt, this.topLevelFormControl);
|
|
56
57
|
this.onInjected.emit(valueBeforeInject);
|
|
57
58
|
}
|
|
58
59
|
else if (injectInto instanceof UntypedFormGroup) {
|
|
@@ -60,13 +61,13 @@ export class FormComponent {
|
|
|
60
61
|
throw new Error(`cannot index FormGroup with ${typeof injectAt}`);
|
|
61
62
|
}
|
|
62
63
|
if (injectInto.get(injectAt)?.disabled) {
|
|
63
|
-
this.
|
|
64
|
+
this.topLevelFormControl.disable();
|
|
64
65
|
}
|
|
65
66
|
const valueBeforeInject = injectInto.get(injectAt)?.value;
|
|
66
67
|
if (isValueSet(valueBeforeInject)) {
|
|
67
|
-
this.
|
|
68
|
+
this.topLevelFormControl.patchValue(valueBeforeInject);
|
|
68
69
|
}
|
|
69
|
-
injectInto.setControl(injectAt, this.
|
|
70
|
+
injectInto.setControl(injectAt, this.topLevelFormControl);
|
|
70
71
|
this.onInjected.emit(valueBeforeInject);
|
|
71
72
|
}
|
|
72
73
|
}
|
|
@@ -87,7 +88,7 @@ export class FormComponent {
|
|
|
87
88
|
const injectInto = this.subFormPlaceholder.injectInto;
|
|
88
89
|
const injectAt = this.subFormPlaceholder.at;
|
|
89
90
|
if (injectInto instanceof UntypedFormArray) {
|
|
90
|
-
const idx = injectInto.controls.findIndex(e => e === this.
|
|
91
|
+
const idx = injectInto.controls.findIndex(e => e === this.topLevelFormControl);
|
|
91
92
|
injectInto.setControl(idx, new FormControl());
|
|
92
93
|
}
|
|
93
94
|
else if (injectInto instanceof UntypedFormGroup) {
|
|
@@ -137,15 +138,15 @@ export class FormComponent {
|
|
|
137
138
|
};
|
|
138
139
|
}
|
|
139
140
|
addSupportForPatchValueInterceptor() {
|
|
140
|
-
const fn = this.
|
|
141
|
+
const fn = this.topLevelFormControl.patchValue;
|
|
141
142
|
const newFn = (value, options) => {
|
|
142
143
|
this.patchValueInterceptor(value).then((val) => {
|
|
143
144
|
setTimeout(() => {
|
|
144
|
-
fn.call(this.
|
|
145
|
+
fn.call(this.topLevelFormControl, val, options);
|
|
145
146
|
});
|
|
146
147
|
});
|
|
147
148
|
};
|
|
148
|
-
this.
|
|
149
|
+
this.topLevelFormControl.patchValue = newFn;
|
|
149
150
|
}
|
|
150
151
|
registerControl(formControl, formElement) {
|
|
151
152
|
this.activeControls.push({ formControl, formElement });
|
|
@@ -196,7 +197,12 @@ export class FormComponent {
|
|
|
196
197
|
}
|
|
197
198
|
getAllFormControls() {
|
|
198
199
|
const result = [];
|
|
199
|
-
|
|
200
|
+
if (this.topLevelFormControl instanceof FormGroup) {
|
|
201
|
+
this.addFormGroupControls(this.topLevelFormControl, result);
|
|
202
|
+
}
|
|
203
|
+
else if (this.topLevelFormControl instanceof FormArray) {
|
|
204
|
+
this.addFormArrayControls(this.topLevelFormControl, result);
|
|
205
|
+
}
|
|
200
206
|
return result;
|
|
201
207
|
}
|
|
202
208
|
addFormControl(control, result) {
|
|
@@ -214,36 +220,39 @@ export class FormComponent {
|
|
|
214
220
|
return this.warnings.get(control);
|
|
215
221
|
}
|
|
216
222
|
trySubmit() {
|
|
217
|
-
this.
|
|
223
|
+
this.topLevelFormControl.markAllAsTouched();
|
|
218
224
|
const allControls = this.getAllFormControls();
|
|
219
225
|
const originalDisabledStates = allControls.map(e => {
|
|
220
226
|
return { control: e, disabled: e.disabled };
|
|
221
227
|
});
|
|
222
228
|
allControls.forEach(e => this.disableInactiveFormControl(e));
|
|
223
229
|
allControls.forEach(e => e.updateValueAndValidity());
|
|
224
|
-
const formGroupValue = this.
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
.
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
.
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
230
|
+
const formGroupValue = this.topLevelFormControl.value;
|
|
231
|
+
if (this.topLevelFormControl instanceof FormGroup) {
|
|
232
|
+
const renderedAndEnabledValues = this.getRenderedFieldValuesFormGroup(this.topLevelFormControl, true);
|
|
233
|
+
const renderedButDisabledValues = this.getRenderedFieldValuesFormGroup(this.topLevelFormControl, false);
|
|
234
|
+
return new Promise((resolve, reject) => {
|
|
235
|
+
if (this.topLevelFormControl.pending) {
|
|
236
|
+
const sub = this.topLevelFormControl.statusChanges.subscribe((res) => {
|
|
237
|
+
if (res !== 'PENDING') {
|
|
238
|
+
sub.unsubscribe();
|
|
239
|
+
this.handleSubmission(originalDisabledStates, renderedAndEnabledValues, renderedButDisabledValues, formGroupValue)
|
|
240
|
+
.then(resolve)
|
|
241
|
+
.catch(reject);
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
this.handleSubmission(originalDisabledStates, renderedAndEnabledValues, renderedButDisabledValues, formGroupValue)
|
|
247
|
+
.then(resolve)
|
|
248
|
+
.catch(reject);
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
throw new Error('Submitting a FormArray as topLevel not supported (yet). Wrap it in a FormGroup.');
|
|
244
253
|
}
|
|
245
254
|
handleSubmission(originalDisabledStates, renderedAndEnabledValues, renderedButDisabledValues, formGroupValue) {
|
|
246
|
-
if (this.
|
|
255
|
+
if (this.topLevelFormControl.invalid) {
|
|
247
256
|
this.activeControls.find((e) => e.formControl.invalid)?.formElement?.scrollTo();
|
|
248
257
|
this.setDisabledStatesForAllControls(originalDisabledStates);
|
|
249
258
|
return Promise.reject(invalidFieldsSymbol);
|
|
@@ -298,7 +307,7 @@ export class FormComponent {
|
|
|
298
307
|
});
|
|
299
308
|
}
|
|
300
309
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FormComponent, deps: [{ token: FormComponent, optional: true, skipSelf: true }, { token: SubFormDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
301
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: FormComponent, selector: "klp-form", inputs: { readOnly: "readOnly", showErrorMessages: "showErrorMessages", errorMessageLocation: "errorMessageLocation", formGroup: "formGroup", warnings: "warnings", errors: "errors", patchValueInterceptor: "patchValueInterceptor", allowSubmitOn: "allowSubmitOn" }, outputs: { onInjected: "onInjected" }, usesOnChanges: true, ngImport: i0, template: "<form>\n\t<ng-content></ng-content>\n</form>\n\n\n", styles: [":host{display:block}:host.row{display:flex}:host form{height:inherit}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] }); }
|
|
310
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: FormComponent, selector: "klp-form", inputs: { readOnly: "readOnly", showErrorMessages: "showErrorMessages", errorMessageLocation: "errorMessageLocation", formGroup: "formGroup", formArray: "formArray", warnings: "warnings", errors: "errors", patchValueInterceptor: "patchValueInterceptor", allowSubmitOn: "allowSubmitOn" }, outputs: { onInjected: "onInjected" }, usesOnChanges: true, ngImport: i0, template: "<form>\n\t<ng-content></ng-content>\n</form>\n\n\n", styles: [":host{display:block}:host.row{display:flex}:host form{height:inherit}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] }); }
|
|
302
311
|
}
|
|
303
312
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FormComponent, decorators: [{
|
|
304
313
|
type: Component,
|
|
@@ -317,6 +326,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
317
326
|
type: Input
|
|
318
327
|
}], formGroup: [{
|
|
319
328
|
type: Input
|
|
329
|
+
}], formArray: [{
|
|
330
|
+
type: Input
|
|
320
331
|
}], warnings: [{
|
|
321
332
|
type: Input
|
|
322
333
|
}], errors: [{
|
|
@@ -328,4 +339,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
328
339
|
}], onInjected: [{
|
|
329
340
|
type: Output
|
|
330
341
|
}] } });
|
|
331
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjL2xpYi9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2xpcHBhL25neC1lbmhhbmN5LWZvcm1zL3NyYy9saWIvZm9ybS9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUFFLFlBQVksRUFDdkIsS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBRU4sUUFBUSxFQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBa0IsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxSSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFNUMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFNdEUsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCO2tHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1YsOENBQThDO29CQUM5QyxRQUFRLEVBQUUsY0FBYztpQkFDeEI7OEJBRVMsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7O0FBUVAsTUFBTSxPQUFPLGFBQWE7SUFpQnpCLFlBQTRDLE1BQXFCLEVBQXNCLGtCQUFvQztRQUEvRSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQXNCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBa0I7UUFoQjNH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LEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLHFCQUFxQjtzQkFBcEMsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNXLFVBQVU7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDb21wb25lbnQsXG5cdERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLFxuXHRJbnB1dCxcblx0T25DaGFuZ2VzLFxuXHRPbkRlc3Ryb3ksXG5cdE9uSW5pdCxcblx0T3B0aW9uYWwsXG5cdE91dHB1dCxcblx0U2ltcGxlQ2hhbmdlcyxcblx0U2tpcFNlbGYsIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVW50eXBlZEZvcm1BcnJheSwgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0Zvcm1FbGVtZW50Q29tcG9uZW50fSBmcm9tICcuL2Zvcm0tZWxlbWVudC9mb3JtLWVsZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7aXNWYWx1ZVNldH0gZnJvbSAnLi4vdXRpbC92YWx1ZXMnO1xuaW1wb3J0IHsgZGVlcE1lcmdlIH0gZnJvbSAnLi4vdXRpbC9vYmplY3RzJztcblxuZXhwb3J0IGNvbnN0IGludmFsaWRGaWVsZHNTeW1ib2wgPSBTeW1ib2woJ05vdCBhbGwgZmllbGRzIGFyZSB2YWxpZCcpO1xuXG5ARGlyZWN0aXZlKHtcblx0Ly8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRpcmVjdGl2ZS1zZWxlY3RvclxuXHRzZWxlY3RvcjogJ2tscC1zdWItZm9ybScsXG59KVxuZXhwb3J0IGNsYXNzIFN1YkZvcm1EaXJlY3RpdmUge1xuXHRASW5wdXQoKSBpbmplY3RJbnRvOiBVbnR5cGVkRm9ybUFycmF5IHwgVW50eXBlZEZvcm1Hcm91cDtcblx0QElucHV0KCkgYXQ6IG51bWJlciB8IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAna2xwLWZvcm0nLFxuXHR0ZW1wbGF0ZVVybDogJy4vZm9ybS5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL2Zvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuXHRASW5wdXQoKSBwdWJsaWMgcmVhZE9ubHkgPSBmYWxzZTtcblx0QElucHV0KCkgcHVibGljIHNob3dFcnJvck1lc3NhZ2VzID0gdHJ1ZTtcblx0QElucHV0KCkgcHVibGljIGVycm9yTWVzc2FnZUxvY2F0aW9uOiAnYmVsb3dDYXB0aW9uJyB8ICdyaWdodE9mQ2FwdGlvbicgPSAnYmVsb3dDYXB0aW9uJztcblx0QElucHV0KCkgcHVibGljIGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cDtcblx0QElucHV0KCkgcHVibGljIHdhcm5pbmdzOiBNYXA8QWJzdHJhY3RDb250cm9sLCBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+PiA9IG5ldyBNYXA8QWJzdHJhY3RDb250cm9sLCBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+PigpO1xuXHRASW5wdXQoKSBwdWJsaWMgZXJyb3JzOiBNYXA8QWJzdHJhY3RDb250cm9sLCBzdHJpbmc+ID0gbmV3IE1hcDxBYnN0cmFjdENvbnRyb2wsIHN0cmluZz4oKTtcblx0QElucHV0KCkgcHVibGljIHBhdGNoVmFsdWVJbnRlcmNlcHRvcjogKHZhbHVlczogYW55KSA9PiBQcm9taXNlPGFueT47XG5cdEBJbnB1dCgpIHB1YmxpYyBhbGxvd1N1Ym1pdE9uOiAnYnV0dG9uQW5kRW50ZXInIHwgJ2J1dHRvbk9ubHknID0gJ2J1dHRvbkFuZEVudGVyJztcblx0QE91dHB1dCgpIHB1YmxpYyBvbkluamVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ8c3RyaW5nLCBhbnk+PigpO1xuXG5cdC8vIHdlIGtlZXAgdHJhY2sgb2Ygd2hhdCBmb3JtIGNvbnRyb2xzIGFyZSBhY3R1YWxseSByZW5kZXJlZC4gT25seSB0aG9zZSBjb3VudCB3aGVuIGxvb2tpbmcgYXQgZm9ybSB2YWxpZGF0aW9uXG5cdHByaXZhdGUgYWN0aXZlQ29udHJvbHM6IEFycmF5PHtcblx0XHRmb3JtQ29udHJvbDogVW50eXBlZEZvcm1Db250cm9sO1xuXHRcdGZvcm1FbGVtZW50OiBGb3JtRWxlbWVudENvbXBvbmVudDtcblx0fT4gPSBbXTtcblxuXHRjb25zdHJ1Y3RvcihAU2tpcFNlbGYoKSBAT3B0aW9uYWwoKSBwcml2YXRlIHBhcmVudDogRm9ybUNvbXBvbmVudCwgQE9wdGlvbmFsKCkgcHJpdmF0ZSBzdWJGb3JtUGxhY2Vob2xkZXI6IFN1YkZvcm1EaXJlY3RpdmUpIHtcblx0fVxuXG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdGlmIChpc1ZhbHVlU2V0KHRoaXMucGF0Y2hWYWx1ZUludGVyY2VwdG9yKSkge1xuXHRcdFx0dGhpcy5hZGRTdXBwb3J0Rm9yUGF0Y2hWYWx1ZUludGVyY2VwdG9yKCk7XG5cdFx0fVxuXHRcdGlmIChpc1ZhbHVlU2V0KHRoaXMucGFyZW50KSAmJiBpc1ZhbHVlU2V0KHRoaXMuc3ViRm9ybVBsYWNlaG9sZGVyKSkge1xuXHRcdFx0Y29uc3QgaW5qZWN0SW50byA9IHRoaXMuc3ViRm9ybVBsYWNlaG9sZGVyLmluamVjdEludG87XG5cdFx0XHRjb25zdCBpbmplY3RBdCA9IHRoaXMuc3ViRm9ybVBsYWNlaG9sZGVyLmF0O1xuXHRcdFx0aWYgKGluamVjdEludG8gaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUFycmF5KSB7XG5cdFx0XHRcdGlmICh0eXBlb2YgaW5qZWN0QXQgIT09ICdudW1iZXInKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGBjYW5ub3QgaW5kZXggRm9ybUFycmF5IHdpdGggJHt0eXBlb2YgaW5qZWN0QXR9YCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGluamVjdEludG8uYXQoaW5qZWN0QXQpPy5kaXNhYmxlZCkge1xuXHRcdFx0XHRcdHRoaXMuZm9ybUdyb3VwLmRpc2FibGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCB2YWx1ZUJlZm9yZUluamVjdCA9IGluamVjdEludG8uYXQoaW5qZWN0QXQpPy52YWx1ZTtcblx0XHRcdFx0aWYgKGlzVmFsdWVTZXQodmFsdWVCZWZvcmVJbmplY3QpKSB7XG5cdFx0XHRcdFx0dGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSh2YWx1ZUJlZm9yZUluamVjdCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aW5qZWN0SW50by5zZXRDb250cm9sKGluamVjdEF0LCB0aGlzLmZvcm1Hcm91cCk7XG5cdFx0XHRcdHRoaXMub25JbmplY3RlZC5lbWl0KHZhbHVlQmVmb3JlSW5qZWN0KTtcblx0XHRcdH0gZWxzZSBpZiAoaW5qZWN0SW50byBpbnN0YW5jZW9mIFVudHlwZWRGb3JtR3JvdXApIHtcblx0XHRcdFx0aWYgKHR5cGVvZiBpbmplY3RBdCAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCBpbmRleCBGb3JtR3JvdXAgd2l0aCAke3R5cGVvZiBpbmplY3RBdH1gKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoaW5qZWN0SW50by5nZXQoaW5qZWN0QXQpPy5kaXNhYmxlZCkge1xuXHRcdFx0XHRcdHRoaXMuZm9ybUdyb3VwLmRpc2FibGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCB2YWx1ZUJlZm9yZUluamVjdCA9IGluamVjdEludG8uZ2V0KGluamVjdEF0KT8udmFsdWU7XG5cdFx0XHRcdGlmIChpc1ZhbHVlU2V0KHZhbHVlQmVmb3JlSW5qZWN0KSkge1xuXHRcdFx0XHRcdHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUodmFsdWVCZWZvcmVJbmplY3QpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGluamVjdEludG8uc2V0Q29udHJvbChpbmplY3RBdCwgdGhpcy5mb3JtR3JvdXApO1xuXHRcdFx0XHR0aGlzLm9uSW5qZWN0ZWQuZW1pdCh2YWx1ZUJlZm9yZUluamVjdCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0bmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuXHRcdGlmIChzaW1wbGVDaGFuZ2VzLnJlYWRPbmx5Py5jdXJyZW50VmFsdWUgPT09IHRydWUpIHtcblx0XHRcdHRoaXMuYWN0aXZlQ29udHJvbHMuZm9yRWFjaChlID0+IGUuZm9ybUNvbnRyb2wuZGlzYWJsZSgpKTtcblx0XHR9XG5cdFx0aWYgKGlzVmFsdWVTZXQoc2ltcGxlQ2hhbmdlcy53YXJuaW5ncz8uY3VycmVudFZhbHVlKSkge1xuXHRcdFx0dGhpcy5wYXRjaEZvcm1XYXJuaW5nc01hcCgpO1xuXHRcdH1cblx0XHRpZiAoaXNWYWx1ZVNldChzaW1wbGVDaGFuZ2VzLmVycm9ycz8uY3VycmVudFZhbHVlKSkge1xuXHRcdFx0dGhpcy5wYXRjaEZvcm1FcnJvcnNNYXAoKTtcblx0XHR9XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHRpZiAoaXNWYWx1ZVNldCh0aGlzLnBhcmVudCkgJiYgaXNWYWx1ZVNldCh0aGlzLnN1YkZvcm1QbGFjZWhvbGRlcikpIHtcblx0XHRcdGNvbnN0IGluamVjdEludG8gPSB0aGlzLnN1YkZvcm1QbGFjZWhvbGRlci5pbmplY3RJbnRvO1xuXHRcdFx0Y29uc3QgaW5qZWN0QXQgPSB0aGlzLnN1YkZvcm1QbGFjZWhvbGRlci5hdDtcblx0XHRcdGlmIChpbmplY3RJbnRvIGluc3RhbmNlb2YgVW50eXBlZEZvcm1BcnJheSkge1xuXHRcdFx0XHRjb25zdCBpZHggPSBpbmplY3RJbnRvLmNvbnRyb2xzLmZpbmRJbmRleChlID0+IGUgPT09IHRoaXMuZm9ybUdyb3VwKTtcblx0XHRcdFx0aW5qZWN0SW50by5zZXRDb250cm9sKGlkeCwgbmV3IEZvcm1Db250cm9sKCkpO1xuXHRcdFx0fSBlbHNlIGlmIChpbmplY3RJbnRvIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Hcm91cCkge1xuXHRcdFx0XHRpZiAodHlwZW9mIGluamVjdEF0ICE9PSAnc3RyaW5nJykge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihgY2Fubm90IGluZGV4IEZvcm1Hcm91cCB3aXRoICR7dHlwZW9mIGluamVjdEF0fWApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGluamVjdEludG8uc2V0Q29udHJvbChpbmplY3RBdCwgbmV3IEZvcm1Db250cm9sKCkpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgcGF0Y2hGb3JtV2FybmluZ3NNYXAoKTogdm9pZCB7XG5cdFx0Y29uc3Qgc2V0Rm4gPSB0aGlzLndhcm5pbmdzLnNldDtcblx0XHR0aGlzLndhcm5pbmdzLnNldCA9IChrZXk6IEFic3RyYWN0Q29udHJvbCwgdmFsdWU6IHN0cmluZyk6IE1hcDxBYnN0cmFjdENvbnRyb2wsIHN0cmluZz4gPT4ge1xuXHRcdFx0Y29uc3QgcHJldlZhbCA9IHRoaXMud2FybmluZ3MuZ2V0KGtleSk7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBzZXRGbi5jYWxsKHRoaXMud2FybmluZ3MsIGtleSwgdmFsdWUpO1xuXHRcdFx0aWYgKHByZXZWYWwgIT09IHZhbHVlKSB7XG5cdFx0XHRcdHRoaXMuZ2V0Rm9ybUVsZW1lbnRCeUZvcm1Db250cm9sKGtleSk/LmRldGVybWluZVBvcHVwU3RhdGUoKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fTtcblxuXHRcdGNvbnN0IGRlbGV0ZUZuID0gdGhpcy53YXJuaW5ncy5kZWxldGU7XG5cdFx0dGhpcy53YXJuaW5ncy5kZWxldGUgPSAoa2V5OiBBYnN0cmFjdENvbnRyb2wpOiBib29sZWFuID0+IHtcblx0XHRcdGNvbnN0IHJlc3VsdCA9IGRlbGV0ZUZuLmNhbGwodGhpcy53YXJuaW5ncywga2V5KTtcblx0XHRcdHRoaXMuZ2V0Rm9ybUVsZW1lbnRCeUZvcm1Db250cm9sKGtleSk/LmRldGVybWluZVBvcHVwU3RhdGUoKTtcblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fTtcblx0fVxuXG5cdHByaXZhdGUgcGF0Y2hGb3JtRXJyb3JzTWFwKCk6IHZvaWQge1xuXHRcdGNvbnN0IHNldEZuID0gdGhpcy5lcnJvcnMuc2V0O1xuXHRcdHRoaXMuZXJyb3JzLnNldCA9IChrZXk6IEFic3RyYWN0Q29udHJvbCwgdmFsdWU6IHN0cmluZyk6IE1hcDxBYnN0cmFjdENvbnRyb2wsIHN0cmluZz4gPT4ge1xuXHRcdFx0Y29uc3QgcHJldlZhbCA9IHRoaXMuZXJyb3JzLmdldChrZXkpO1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gc2V0Rm4uY2FsbCh0aGlzLmVycm9ycywga2V5LCB2YWx1ZSk7XG5cdFx0XHRrZXkuc2V0RXJyb3JzKHsgLi4ua2V5LmVycm9ycywgZm9ybUxldmVsOiB2YWx1ZX0pO1xuXHRcdFx0aWYgKHByZXZWYWwgIT09IHZhbHVlKSB7XG5cdFx0XHRcdHRoaXMuZ2V0Rm9ybUVsZW1lbnRCeUZvcm1Db250cm9sKGtleSk/LmRldGVybWluZVBvcHVwU3RhdGUoKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fTtcblxuXHRcdGNvbnN0IGRlbGV0ZUZuID0gdGhpcy5lcnJvcnMuZGVsZXRlO1xuXHRcdHRoaXMuZXJyb3JzLmRlbGV0ZSA9IChrZXk6IEFic3RyYWN0Q29udHJvbCk6IGJvb2xlYW4gPT4ge1xuXHRcdFx0Y29uc3QgbmV3RXJyb3JzT2JqZWN0ID0ga2V5LmVycm9ycztcblx0XHRcdGRlbGV0ZSBuZXdFcnJvcnNPYmplY3QuZm9ybUxldmVsO1xuXHRcdFx0a2V5LnNldEVycm9ycyhuZXdFcnJvcnNPYmplY3QpO1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gZGVsZXRlRm4uY2FsbCh0aGlzLmVycm9ycywga2V5KTtcblx0XHRcdHRoaXMuZ2V0Rm9ybUVsZW1lbnRCeUZvcm1Db250cm9sKGtleSk/LmRldGVybWluZVBvcHVwU3RhdGUoKTtcblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fTtcblx0fVxuXG5cdHByaXZhdGUgYWRkU3VwcG9ydEZvclBhdGNoVmFsdWVJbnRlcmNlcHRvcigpOiB2b2lkIHtcblx0XHRjb25zdCBmbiA9IHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWU7XG5cdFx0Y29uc3QgbmV3Rm4gPSAoXG5cdFx0XHR2YWx1ZToge1xuXHRcdFx0XHRba2V5OiBzdHJpbmddOiBhbnk7XG5cdFx0XHR9LFxuXHRcdFx0b3B0aW9ucz86IHtcblx0XHRcdFx0b25seVNlbGY/OiBib29sZWFuO1xuXHRcdFx0XHRlbWl0RXZlbnQ/OiBib29sZWFuO1xuXHRcdFx0fVxuXHRcdCk6IHZvaWQgPT4ge1xuXHRcdFx0dGhpcy5wYXRjaFZhbHVlSW50ZXJjZXB0b3IodmFsdWUpLnRoZW4oKHZhbCkgPT4ge1xuXHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRmbi5jYWxsKHRoaXMuZm9ybUdyb3VwLCB2YWwsIG9wdGlvbnMpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdH07XG5cdFx0dGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZSA9IG5ld0ZuO1xuXHR9XG5cblx0cHVibGljIHJlZ2lzdGVyQ29udHJvbChmb3JtQ29udHJvbDogVW50eXBlZEZvcm1Db250cm9sLCBmb3JtRWxlbWVudDogRm9ybUVsZW1lbnRDb21wb25lbnQpOiB2b2lkIHtcblx0XHR0aGlzLmFjdGl2ZUNvbnRyb2xzLnB1c2goe2Zvcm1Db250cm9sLCBmb3JtRWxlbWVudH0pO1xuXHRcdGlmICh0aGlzLnBhcmVudCkge1xuXHRcdFx0dGhpcy5wYXJlbnQucmVnaXN0ZXJDb250cm9sKGZvcm1Db250cm9sLCBmb3JtRWxlbWVudCk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLnJlYWRPbmx5KSB7XG5cdFx0XHRmb3JtQ29udHJvbC5kaXNhYmxlKCk7XG5cdFx0fVxuXHRcdGNvbnN0IGVuYWJsZUZuOiAob3B0cz86IHsgb25seVNlbGY/OiBib29sZWFuOyBlbWl0RXZlbnQ/OiBib29sZWFuIH0pID0+IHZvaWQgPSBmb3JtQ29udHJvbC5lbmFibGU7XG5cdFx0Zm9ybUNvbnRyb2wuZW5hYmxlID0gKG9wdHM/OiB7IG9ubHlTZWxmPzogYm9vbGVhbjsgZW1pdEV2ZW50PzogYm9vbGVhbiB9KSA9PiB7XG5cdFx0XHRpZiAoIXRoaXMucmVhZE9ubHkpIHtcblx0XHRcdFx0ZW5hYmxlRm4uY2FsbChmb3JtQ29udHJvbCwgb3B0cyk7XG5cdFx0XHR9XG5cdFx0fTtcblx0fVxuXG5cdHB1YmxpYyB1bnJlZ2lzdGVyQ29udHJvbChmb3JtQ29udHJvbDogVW50eXBlZEZvcm1Db250cm9sKTogdm9pZCB7XG5cdFx0dGhpcy5hY3RpdmVDb250cm9scyA9IHRoaXMuYWN0aXZlQ29udHJvbHMuZmlsdGVyKChlKSA9PiBlLmZvcm1Db250cm9sICE9PSBmb3JtQ29udHJvbCk7XG5cdFx0aWYgKHRoaXMucGFyZW50KSB7XG5cdFx0XHR0aGlzLnBhcmVudC51bnJlZ2lzdGVyQ29udHJvbChmb3JtQ29udHJvbCk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBhZGRGb3JtR3JvdXBDb250cm9scyhmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsIHJlc3VsdDogQXJyYXk8VW50eXBlZEZvcm1Db250cm9sPik6IHZvaWQge1xuXHRcdE9iamVjdC52YWx1ZXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuXHRcdFx0aWYgKHZhbHVlIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Hcm91cCkge1xuXHRcdFx0XHR0aGlzLmFkZEZvcm1Hcm91cENvbnRyb2xzKHZhbHVlLCByZXN1bHQpO1xuXHRcdFx0fSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVudHlwZWRGb3JtQXJyYXkpIHtcblx0XHRcdFx0dGhpcy5hZGRGb3JtQXJyYXlDb250cm9scyh2YWx1ZSwgcmVzdWx0KTtcblx0XHRcdH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcblx0XHRcdFx0dGhpcy5hZGRGb3JtQ29udHJvbCh2YWx1ZSwgcmVzdWx0KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgYWRkRm9ybUFycmF5Q29udHJvbHMoZm9ybUFycmF5OiBVbnR5cGVkRm9ybUFycmF5LCByZXN1bHQ6IEFycmF5PFVudHlwZWRGb3JtQ29udHJvbD4pOiB2b2lkIHtcblx0XHRmb3JtQXJyYXkuY29udHJvbHMuZm9yRWFjaCgodmFsdWUpID0+IHtcblx0XHRcdGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVudHlwZWRGb3JtR3JvdXApIHtcblx0XHRcdFx0dGhpcy5hZGRGb3JtR3JvdXBDb250cm9scyh2YWx1ZSwgcmVzdWx0KTtcblx0XHRcdH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUFycmF5KSB7XG5cdFx0XHRcdHRoaXMuYWRkRm9ybUFycmF5Q29udHJvbHModmFsdWUsIHJlc3VsdCk7XG5cdFx0XHR9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Db250cm9sKSB7XG5cdFx0XHRcdHRoaXMuYWRkRm9ybUNvbnRyb2wodmFsdWUsIHJlc3VsdCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGdldEFsbEZvcm1Db250cm9scygpOiBBcnJheTxVbnR5cGVkRm9ybUNvbnRyb2w+IHtcblx0XHRjb25zdCByZXN1bHQgPSBbXTtcblx0XHR0aGlzLmFkZEZvcm1Hcm91cENvbnRyb2xzKHRoaXMuZm9ybUdyb3VwLCByZXN1bHQpO1xuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHRwcml2YXRlIGFkZEZvcm1Db250cm9sKGNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCwgcmVzdWx0OiBBcnJheTxVbnR5cGVkRm9ybUNvbnRyb2w+KTogdm9pZCB7XG5cdFx0cmVzdWx0LnB1c2goY29udHJvbCk7XG5cdH1cblxuXHRwcml2YXRlIGRpc2FibGVJbmFjdGl2ZUZvcm1Db250cm9sKGNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCk6IHZvaWQge1xuXHRcdGlmICghdGhpcy5hY3RpdmVDb250cm9scy5zb21lKChlKSA9PiBlLmZvcm1Db250cm9sID09PSBjb250cm9sKSkge1xuXHRcdFx0Y29udHJvbC5kaXNhYmxlKCk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGdldEZvcm1FbGVtZW50QnlGb3JtQ29udHJvbChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBGb3JtRWxlbWVudENvbXBvbmVudCB7XG5cdFx0cmV0dXJuIHRoaXMuYWN0aXZlQ29udHJvbHMuZmluZCgoZSkgPT4gZS5mb3JtQ29udHJvbCA9PT0gY29udHJvbCk/LmZvcm1FbGVtZW50O1xuXHR9XG5cblx0cHVibGljIGdldFdhcm5pbmdUb1Nob3coY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB7XG5cdFx0cmV0dXJuIHRoaXMud2FybmluZ3MuZ2V0KGNvbnRyb2wpO1xuXHR9XG5cblx0dHJ5U3VibWl0KCk6IFByb21pc2U8YW55PiB7XG5cdFx0dGhpcy5mb3JtR3JvdXAubWFya0FsbEFzVG91Y2hlZCgpO1xuXHRcdGNvbnN0IGFsbENvbnRyb2xzOiBBcnJheTxVbnR5cGVkRm9ybUNvbnRyb2w+ID0gdGhpcy5nZXRBbGxGb3JtQ29udHJvbHMoKTtcblx0XHRjb25zdCBvcmlnaW5hbERpc2FibGVkU3RhdGVzID0gYWxsQ29udHJvbHMubWFwKGUgPT4ge1xuXHRcdFx0cmV0dXJuIHtjb250cm9sOiBlLCBkaXNhYmxlZDogZS5kaXNhYmxlZH07XG5cdFx0fSk7XG5cdFx0YWxsQ29udHJvbHMuZm9yRWFjaChlID0+IHRoaXMuZGlzYWJsZUluYWN0aXZlRm9ybUNvbnRyb2woZSkpO1xuXHRcdGFsbENvbnRyb2xzLmZvckVhY2goZSA9PiBlLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKSk7XG5cdFx0Y29uc3QgZm9ybUdyb3VwVmFsdWUgPSB0aGlzLmZvcm1Hcm91cC52YWx1ZTtcblx0XHRjb25zdCByZW5kZXJlZEFuZEVuYWJsZWRWYWx1ZXMgPSB0aGlzLmdldFJlbmRlcmVkRmllbGRWYWx1ZXNGb3JtR3JvdXAodGhpcy5mb3JtR3JvdXAsIHRydWUpO1xuXHRcdGNvbnN0IHJlbmRlcmVkQnV0RGlzYWJsZWRWYWx1ZXMgPSB0aGlzLmdldFJlbmRlcmVkRmllbGRWYWx1ZXNGb3JtR3JvdXAodGhpcy5mb3JtR3JvdXAsIGZhbHNlKTtcblxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRpZiAodGhpcy5mb3JtR3JvdXAucGVuZGluZykge1xuXHRcdFx0XHRjb25zdCBzdWIgPSB0aGlzLmZvcm1Hcm91cC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSgocmVzKSA9PiB7XG5cdFx0XHRcdFx0aWYgKHJlcyAhPT0gJ1BFTkRJTkcnKSB7XG5cdFx0XHRcdFx0XHRzdWIudW5zdWJzY3JpYmUoKTtcblx0XHRcdFx0XHRcdHRoaXMuaGFuZGxlU3VibWlzc2lvbihvcmlnaW5hbERpc2FibGVkU3RhdGVzLCByZW5kZXJlZEFuZEVuYWJsZWRWYWx1ZXMsIHJlbmRlcmVkQnV0RGlzYWJsZWRWYWx1ZXMsIGZvcm1Hcm91cFZhbHVlKVxuXHRcdFx0XHRcdFx0LnRoZW4ocmVzb2x2ZSlcblx0XHRcdFx0XHRcdC5jYXRjaChyZWplY3QpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLmhhbmRsZVN1Ym1pc3Npb24ob3JpZ2luYWxEaXNhYmxlZFN0YXRlcywgcmVuZGVyZWRBbmRFbmFibGVkVmFsdWVzLCByZW5kZXJlZEJ1dERpc2FibGVkVmFsdWVzLCBmb3JtR3JvdXBWYWx1ZSlcblx0XHRcdFx0LnRoZW4ocmVzb2x2ZSlcblx0XHRcdFx0LmNhdGNoKHJlamVjdCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0fVxuXG5cdHByaXZhdGUgaGFuZGxlU3VibWlzc2lvbihcblx0XHRvcmlnaW5hbERpc2FibGVkU3RhdGVzOiBBcnJheTx7IGNvbnRyb2w6IEZvcm1Db250cm9sPGFueT47IGRpc2FibGVkOiBib29sZWFuIH0+LFxuXHRcdHJlbmRlcmVkQW5kRW5hYmxlZFZhbHVlczogUmVjb3JkPGFueSwgYW55Pixcblx0XHRyZW5kZXJlZEJ1dERpc2FibGVkVmFsdWVzOiBSZWNvcmQ8YW55LCBhbnk+LFxuXHRcdGZvcm1Hcm91cFZhbHVlKTogUHJvbWlzZTxhbnk+XG5cdHtcblx0XHRpZiAodGhpcy5mb3JtR3JvdXAuaW52YWxpZCkge1xuXHRcdFx0dGhpcy5hY3RpdmVDb250cm9scy5maW5kKChlKSA9PiBlLmZvcm1Db250cm9sLmludmFsaWQpPy5mb3JtRWxlbWVudD8uc2Nyb2xsVG8oKTtcblx0XHRcdHRoaXMuc2V0RGlzYWJsZWRTdGF0ZXNGb3JBbGxDb250cm9scyhvcmlnaW5hbERpc2FibGVkU3RhdGVzKTtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlamVjdChpbnZhbGlkRmllbGRzU3ltYm9sKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5zZXREaXNhYmxlZFN0YXRlc0ZvckFsbENvbnRyb2xzKG9yaWdpbmFsRGlzYWJsZWRTdGF0ZXMpO1xuXHRcdFx0Y29uc3QgcmVuZGVyZWRWYWx1ZXMgPSBkZWVwTWVyZ2UocmVuZGVyZWRBbmRFbmFibGVkVmFsdWVzLCByZW5kZXJlZEJ1dERpc2FibGVkVmFsdWVzKTtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoW2Zvcm1Hcm91cFZhbHVlLCByZW5kZXJlZFZhbHVlc10pO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgZ2V0UmVuZGVyZWRGaWVsZFZhbHVlc0Zvcm1Hcm91cChmb3JtR3JvdXA6IEZvcm1Hcm91cCwgZW5hYmxlZDogYm9vbGVhbiwgdmFsdWVPYmplY3QgPSB7fSk6IG9iamVjdCB7XG5cdFx0T2JqZWN0LmVudHJpZXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKChbbmFtZSwgY29udHJvbF0pID0+IHtcblx0XHRcdGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wgJiYgY29udHJvbC5lbmFibGVkID09PSBlbmFibGVkICYmIHRoaXMuYWN0aXZlQ29udHJvbHMuc29tZShlID0+IGUuZm9ybUNvbnRyb2wgPT09IGNvbnRyb2wpKSB7XG5cdFx0XHRcdHZhbHVlT2JqZWN0W25hbWVdID0gY29udHJvbC52YWx1ZTtcblx0XHRcdH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuXHRcdFx0XHR2YWx1ZU9iamVjdFtuYW1lXSA9IFtdO1xuXHRcdFx0XHR0aGlzLmdldFJlbmRlcmVkRmllbGRWYWx1ZXNGb3JtQXJyYXkoY29udHJvbCwgZW5hYmxlZCwgdmFsdWVPYmplY3RbbmFtZV0pO1xuXHRcdFx0fSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG5cdFx0XHRcdHZhbHVlT2JqZWN0W25hbWVdID0ge307XG5cdFx0XHRcdHRoaXMuZ2V0UmVuZGVyZWRGaWVsZFZhbHVlc0Zvcm1Hcm91cChjb250cm9sLCBlbmFibGVkLCB2YWx1ZU9iamVjdFtuYW1lXSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHZhbHVlT2JqZWN0O1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRSZW5kZXJlZEZpZWxkVmFsdWVzRm9ybUFycmF5KGZvcm1BcnJheTogRm9ybUFycmF5LCBlbmFibGVkOiBib29sZWFuLCB2YWx1ZUFycmF5OiBBcnJheTxhbnk+KTogdm9pZCB7XG5cdFx0Zm9ybUFycmF5LmNvbnRyb2xzLmZvckVhY2goKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xuXHRcdFx0aWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCAmJiBjb250cm9sLmVuYWJsZWQgPT09IGVuYWJsZWQgJiYgdGhpcy5hY3RpdmVDb250cm9scy5zb21lKGUgPT4gZS5mb3JtQ29udHJvbCA9PT0gY29udHJvbCkpIHtcblx0XHRcdFx0dmFsdWVBcnJheS5wdXNoKGNvbnRyb2wudmFsdWUpO1xuXHRcdFx0fSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XG5cdFx0XHRcdGNvbnN0IG5ld0FycmF5ID0gW107XG5cdFx0XHRcdHZhbHVlQXJyYXkucHVzaChuZXdBcnJheSk7XG5cdFx0XHRcdHRoaXMuZ2V0UmVuZGVyZWRGaWVsZFZhbHVlc0Zvcm1BcnJheShjb250cm9sLCBlbmFibGVkLCBuZXdBcnJheSk7XG5cdFx0XHR9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcblx0XHRcdFx0Y29uc3QgbmV3T2JqZWN0ID0ge307XG5cdFx0XHRcdHZhbHVlQXJyYXkucHVzaChuZXdPYmplY3QpO1xuXHRcdFx0XHR0aGlzLmdldFJlbmRlcmVkRmllbGRWYWx1ZXNGb3JtR3JvdXAoY29udHJvbCwgZW5hYmxlZCwgbmV3T2JqZWN0KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgc2V0RGlzYWJsZWRTdGF0ZXNGb3JBbGxDb250cm9scyhvcmlnaW5hbERpc2FibGVkU3RhdGVzOiBBcnJheTx7IGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDsgZGlzYWJsZWQ6IGJvb2xlYW4gfT4pOiB2b2lkIHtcblx0XHRvcmlnaW5hbERpc2FibGVkU3RhdGVzLmZvckVhY2goKGUpID0+IHtcblx0XHRcdGlmIChlLmRpc2FibGVkKSB7XG5cdFx0XHRcdGUuY29udHJvbC5kaXNhYmxlKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRlLmNvbnRyb2wuZW5hYmxlKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cbiIsIjxmb3JtPlxuXHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Zvcm0+XG5cblxuIl19
|
|
342
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rbGlwcGEvbmd4LWVuaGFuY3ktZm9ybXMvc3JjL2xpYi9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2xpcHBhL25neC1lbmhhbmN5LWZvcm1zL3NyYy9saWIvZm9ybS9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUFFLFlBQVksRUFDdkIsS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBRU4sUUFBUSxFQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBa0IsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxSSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFNUMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFNdEUsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCO2tHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1YsOENBQThDO29CQUM5QyxRQUFRLEVBQUUsY0FBYztpQkFDeEI7OEJBRVMsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7O0FBUVAsTUFBTSxPQUFPLGFBQWE7SUFvQnpCLFlBQTRDLE1BQXFCLEVBQXNCLGtCQUFvQztRQUEvRSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQXNCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBa0I7UUFuQjNH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QUFFO1lBQ3BDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoQixDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLENBQUM7aUJBQU0sQ0FBQztnQkFDUCxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBM1RXLGFBQWE7a0dBQWIsYUFBYSw0WUNqQzFCLG9EQUtBOzsyRkQ0QmEsYUFBYTtrQkFMekIsU0FBUzsrQkFDQyxVQUFVOzswQkF3QlAsUUFBUTs7MEJBQUksUUFBUTs7MEJBQW1DLFFBQVE7eUNBbkI1RCxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLGlCQUFpQjtzQkFBaEMsS0FBSztnQkFDVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxxQkFBcUI7c0JBQXBDLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVyxVQUFVO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q29tcG9uZW50LFxuXHREaXJlY3RpdmUsIEV2ZW50RW1pdHRlcixcblx0SW5wdXQsXG5cdE9uQ2hhbmdlcyxcblx0T25EZXN0cm95LFxuXHRPbkluaXQsXG5cdE9wdGlvbmFsLFxuXHRPdXRwdXQsXG5cdFNpbXBsZUNoYW5nZXMsXG5cdFNraXBTZWxmLCBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFVudHlwZWRGb3JtQXJyYXksIFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtGb3JtRWxlbWVudENvbXBvbmVudH0gZnJvbSAnLi9mb3JtLWVsZW1lbnQvZm9ybS1lbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQge2lzVmFsdWVTZXR9IGZyb20gJy4uL3V0aWwvdmFsdWVzJztcbmltcG9ydCB7IGRlZXBNZXJnZSB9IGZyb20gJy4uL3V0aWwvb2JqZWN0cyc7XG5cbmV4cG9ydCBjb25zdCBpbnZhbGlkRmllbGRzU3ltYm9sID0gU3ltYm9sKCdOb3QgYWxsIGZpZWxkcyBhcmUgdmFsaWQnKTtcblxuQERpcmVjdGl2ZSh7XG5cdC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkaXJlY3RpdmUtc2VsZWN0b3Jcblx0c2VsZWN0b3I6ICdrbHAtc3ViLWZvcm0nLFxufSlcbmV4cG9ydCBjbGFzcyBTdWJGb3JtRGlyZWN0aXZlIHtcblx0QElucHV0KCkgaW5qZWN0SW50bzogVW50eXBlZEZvcm1BcnJheSB8IFVudHlwZWRGb3JtR3JvdXA7XG5cdEBJbnB1dCgpIGF0OiBudW1iZXIgfCBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2tscC1mb3JtJyxcblx0dGVtcGxhdGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcblx0QElucHV0KCkgcHVibGljIHJlYWRPbmx5ID0gZmFsc2U7XG5cdEBJbnB1dCgpIHB1YmxpYyBzaG93RXJyb3JNZXNzYWdlcyA9IHRydWU7XG5cdEBJbnB1dCgpIHB1YmxpYyBlcnJvck1lc3NhZ2VMb2NhdGlvbjogJ2JlbG93Q2FwdGlvbicgfCAncmlnaHRPZkNhcHRpb24nID0gJ2JlbG93Q2FwdGlvbic7XG5cdEBJbnB1dCgpIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcblx0QElucHV0KCkgcHVibGljIGZvcm1BcnJheTogRm9ybUFycmF5O1xuXHRASW5wdXQoKSBwdWJsaWMgd2FybmluZ3M6IE1hcDxBYnN0cmFjdENvbnRyb2wsIHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4+ID0gbmV3IE1hcDxBYnN0cmFjdENvbnRyb2wsIHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4+KCk7XG5cdEBJbnB1dCgpIHB1YmxpYyBlcnJvcnM6IE1hcDxBYnN0cmFjdENvbnRyb2wsIHN0cmluZz4gPSBuZXcgTWFwPEFic3RyYWN0Q29udHJvbCwgc3RyaW5nPigpO1xuXHRASW5wdXQoKSBwdWJsaWMgcGF0Y2hWYWx1ZUludGVyY2VwdG9yOiAodmFsdWVzOiBhbnkpID0+IFByb21pc2U8YW55Pjtcblx0QElucHV0KCkgcHVibGljIGFsbG93U3VibWl0T246ICdidXR0b25BbmRFbnRlcicgfCAnYnV0dG9uT25seScgPSAnYnV0dG9uQW5kRW50ZXInO1xuXHRAT3V0cHV0KCkgcHVibGljIG9uSW5qZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZDxzdHJpbmcsIGFueT4+KCk7XG5cblx0cHJpdmF0ZSB0b3BMZXZlbEZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2w7XG5cblx0Ly8gd2Uga2VlcCB0cmFjayBvZiB3aGF0IGZvcm0gY29udHJvbHMgYXJlIGFjdHVhbGx5IHJlbmRlcmVkLiBPbmx5IHRob3NlIGNvdW50IHdoZW4gbG9va2luZyBhdCBmb3JtIHZhbGlkYXRpb25cblx0cHJpdmF0ZSBhY3RpdmVDb250cm9sczogQXJyYXk8e1xuXHRcdGZvcm1Db250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2w7XG5cdFx0Zm9ybUVsZW1lbnQ6IEZvcm1FbGVtZW50Q29tcG9uZW50O1xuXHR9PiA9IFtdO1xuXG5cdGNvbnN0cnVjdG9yKEBTa2lwU2VsZigpIEBPcHRpb25hbCgpIHByaXZhdGUgcGFyZW50OiBGb3JtQ29tcG9uZW50LCBAT3B0aW9uYWwoKSBwcml2YXRlIHN1YkZvcm1QbGFjZWhvbGRlcjogU3ViRm9ybURpcmVjdGl2ZSkge1xuXHR9XG5cblx0bmdPbkluaXQoKTogdm9pZCB7XG5cdFx0dGhpcy50b3BMZXZlbEZvcm1Db250cm9sID0gdGhpcy5mb3JtR3JvdXAgPz8gdGhpcy5mb3JtQXJyYXk7XG5cdFx0aWYgKGlzVmFsdWVTZXQodGhpcy5wYXRjaFZhbHVlSW50ZXJjZXB0b3IpKSB7XG5cdFx0XHR0aGlzLmFkZFN1cHBvcnRGb3JQYXRjaFZhbHVlSW50ZXJjZXB0b3IoKTtcblx0XHR9XG5cdFx0aWYgKGlzVmFsdWVTZXQodGhpcy5wYXJlbnQpICYmIGlzVmFsdWVTZXQodGhpcy5zdWJGb3JtUGxhY2Vob2xkZXIpKSB7XG5cdFx0XHRjb25zdCBpbmplY3RJbnRvID0gdGhpcy5zdWJGb3JtUGxhY2Vob2xkZXIuaW5qZWN0SW50bztcblx0XHRcdGNvbnN0IGluamVjdEF0ID0gdGhpcy5zdWJGb3JtUGxhY2Vob2xkZXIuYXQ7XG5cdFx0XHRpZiAoaW5qZWN0SW50byBpbnN0YW5jZW9mIFVudHlwZWRGb3JtQXJyYXkpIHtcblx0XHRcdFx0aWYgKHR5cGVvZiBpbmplY3RBdCAhPT0gJ251bWJlcicpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYGNhbm5vdCBpbmRleCBGb3JtQXJyYXkgd2l0aCAke3R5cGVvZiBpbmplY3RBdH1gKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoaW5qZWN0SW50by5hdChpbmplY3RBdCk/LmRpc2FibGVkKSB7XG5cdFx0XHRcdFx0dGhpcy50b3BMZXZlbEZvcm1Db250cm9sLmRpc2FibGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCB2YWx1ZUJlZm9yZUluamVjdCA9IGluamVjdEludG8uYXQoaW5qZWN0QXQpPy52YWx1ZTtcblx0XHRcdFx0aWYgKGlzVmFsdWVTZXQodmFsdWVCZWZvcmVJbmplY3QpKSB7XG5cdFx0XHRcdFx0dGhpcy50b3BMZXZlbEZvcm1Db250cm9sLnBhdGNoVmFsdWUodmFsdWVCZWZvcmVJbmplY3QpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGluamVjdEludG8uc2V0Q29udHJvbChpbmplY3RBdCwgdGhpcy50b3BMZXZlbEZvcm1Db250cm9sKTtcblx0XHRcdFx0dGhpcy5vbkluamVjdGVkLmVtaXQodmFsdWVCZWZvcmVJbmplY3QpO1xuXHRcdFx0fSBlbHNlIGlmIChpbmplY3RJbnRvIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Hcm91cCkge1xuXHRcdFx0XHRpZiAodHlwZW9mIGluamVjdEF0ICE9PSAnc3RyaW5nJykge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihgY2Fubm90IGluZGV4IEZvcm1Hcm91cCB3aXRoICR7dHlwZW9mIGluamVjdEF0fWApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChpbmplY3RJbnRvLmdldChpbmplY3RBdCk/LmRpc2FibGVkKSB7XG5cdFx0XHRcdFx0dGhpcy50b3BMZXZlbEZvcm1Db250cm9sLmRpc2FibGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCB2YWx1ZUJlZm9yZUluamVjdCA9IGluamVjdEludG8uZ2V0KGluamVjdEF0KT8udmFsdWU7XG5cdFx0XHRcdGlmIChpc1ZhbHVlU2V0KHZhbHVlQmVmb3JlSW5qZWN0KSkge1xuXHRcdFx0XHRcdHRoaXMudG9wTGV2ZWxGb3JtQ29udHJvbC5wYXRjaFZhbHVlKHZhbHVlQmVmb3JlSW5qZWN0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpbmplY3RJbnRvLnNldENvbnRyb2woaW5qZWN0QXQsIHRoaXMudG9wTGV2ZWxGb3JtQ29udHJvbCk7XG5cdFx0XHRcdHRoaXMub25JbmplY3RlZC5lbWl0KHZhbHVlQmVmb3JlSW5qZWN0KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cdFx0aWYgKHNpbXBsZUNoYW5nZXMucmVhZE9ubHk/LmN1cnJlbnRWYWx1ZSA9PT0gdHJ1ZSkge1xuXHRcdFx0dGhpcy5hY3RpdmVDb250cm9scy5mb3JFYWNoKGUgPT4gZS5mb3JtQ29udHJvbC5kaXNhYmxlKCkpO1xuXHRcdH1cblx0XHRpZiAoaXNWYWx1ZVNldChzaW1wbGVDaGFuZ2VzLndhcm5pbmdzPy5jdXJyZW50VmFsdWUpKSB7XG5cdFx0XHR0aGlzLnBhdGNoRm9ybVdhcm5pbmdzTWFwKCk7XG5cdFx0fVxuXHRcdGlmIChpc1ZhbHVlU2V0KHNpbXBsZUNoYW5nZXMuZXJyb3JzPy5jdXJyZW50VmFsdWUpKSB7XG5cdFx0XHR0aGlzLnBhdGNoRm9ybUVycm9yc01hcCgpO1xuXHRcdH1cblx0fVxuXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdGlmIChpc1ZhbHVlU2V0KHRoaXMucGFyZW50KSAmJiBpc1ZhbHVlU2V0KHRoaXMuc3ViRm9ybVBsYWNlaG9sZGVyKSkge1xuXHRcdFx0Y29uc3QgaW5qZWN0SW50byA9IHRoaXMuc3ViRm9ybVBsYWNlaG9sZGVyLmluamVjdEludG87XG5cdFx0XHRjb25zdCBpbmplY3RBdCA9IHRoaXMuc3ViRm9ybVBsYWNlaG9sZGVyLmF0O1xuXHRcdFx0aWYgKGluamVjdEludG8gaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUFycmF5KSB7XG5cdFx0XHRcdGNvbnN0IGlkeCA9IGluamVjdEludG8uY29udHJvbHMuZmluZEluZGV4KGUgPT4gZSA9PT0gdGhpcy50b3BMZXZlbEZvcm1Db250cm9sKTtcblx0XHRcdFx0aW5qZWN0SW50by5zZXRDb250cm9sKGlkeCwgbmV3IEZvcm1Db250cm9sKCkpO1xuXHRcdFx0fSBlbHNlIGlmIChpbmplY3RJbnRvIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Hcm91cCkge1xuXHRcdFx0XHRpZiAodHlwZW9mIGluamVjdEF0ICE9PSAnc3RyaW5nJykge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihgY2Fubm90IGluZGV4IEZvcm1Hcm91cCB3aXRoICR7dHlwZW9mIGluamVjdEF0fWApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGluamVjdEludG8uc2V0Q29udHJvbChpbmplY3RBdCwgbmV3IEZvcm1Db250cm9sKCkpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgcGF0Y2hGb3JtV2FybmluZ3NNYXAoKTogdm9pZCB7XG5cdFx0Y29uc3Qgc2V0Rm4gPSB0aGlzLndhcm5pbmdzLnNldDtcblx0XHR0aGlzLndhcm5pbmdzLnNldCA9IChrZXk6IEFic3RyYWN0Q29udHJvbCwgdmFsdWU6IHN0cmluZyk6IE1hcDxBYnN0cmFjdENvbnRyb2wsIHN0cmluZz4gPT4ge1xuXHRcdFx0Y29uc3QgcHJldlZhbCA9IHRoaXMud2FybmluZ3MuZ2V0KGtleSk7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBzZXRGbi5jYWxsKHRoaXMud2FybmluZ3MsIGtleSwgdmFsdWUpO1xuXHRcdFx0aWYgKHByZXZWYWwgIT09IHZhbHVlKSB7XG5cdFx0XHRcdHRoaXMuZ2V0Rm9ybUVsZW1lbnRCeUZvcm1Db250cm9sKGtleSk/LmRldGVybWluZVBvcHVwU3RhdGUoKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fTtcblxuXHRcdGNvbnN0IGRlbGV0ZUZuID0gdGhpcy53YXJuaW5ncy5kZWxldGU7XG5cdFx0dGhpcy53YXJuaW5ncy5kZWxldGUgPSAoa2V5OiBBYnN0cmFjdENvbnRyb2wpOiBib29sZWFuID0+IHtcblx0XHRcdGNvbnN0IHJlc3VsdCA9IGRlbGV0ZUZuLmNhbGwodGhpcy53YXJuaW5ncywga2V5KTtcblx0XHRcdHRoaXMuZ2V0Rm9ybUVsZW1lbnRCeUZvcm1Db250cm9sKGtleSk/LmRldGVybWluZVBvcHVwU3RhdGUoKTtcblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fTtcblx0fVxuXG5cdHByaXZhdGUgcGF0Y2hGb3JtRXJyb3JzTWFwKCk6IHZvaWQge1xuXHRcdGNvbnN0IHNldEZuID0gdGhpcy5lcnJvcnMuc2V0O1xuXHRcdHRoaXMuZXJyb3JzLnNldCA9IChrZXk6IEFic3RyYWN0Q29udHJvbCwgdmFsdWU6IHN0cmluZyk6IE1hcDxBYnN0cmFjdENvbnRyb2wsIHN0cmluZz4gPT4ge1xuXHRcdFx0Y29uc3QgcHJldlZhbCA9IHRoaXMuZXJyb3JzLmdldChrZXkpO1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gc2V0Rm4uY2FsbCh0aGlzLmVycm9ycywga2V5LCB2YWx1ZSk7XG5cdFx0XHRrZXkuc2V0RXJyb3JzKHsgLi4ua2V5LmVycm9ycywgZm9ybUxldmVsOiB2YWx1ZX0pO1xuXHRcdFx0aWYgKHByZXZWYWwgIT09IHZhbHVlKSB7XG5cdFx0XHRcdHRoaXMuZ2V0Rm9ybUVsZW1lbnRCeUZvcm1Db250cm9sKGtleSk/LmRldGVybWluZVBvcHVwU3RhdGUoKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fTtcblxuXHRcdGNvbnN0IGRlbGV0ZUZuID0gdGhpcy5lcnJvcnMuZGVsZXRlO1xuXHRcdHRoaXMuZXJyb3JzLmRlbGV0ZSA9IChrZXk6IEFic3RyYWN0Q29udHJvbCk6IGJvb2xlYW4gPT4ge1xuXHRcdFx0Y29uc3QgbmV3RXJyb3JzT2JqZWN0ID0ga2V5LmVycm9ycztcblx0XHRcdGRlbGV0ZSBuZXdFcnJvcnNPYmplY3QuZm9ybUxldmVsO1xuXHRcdFx0a2V5LnNldEVycm9ycyhuZXdFcnJvcnNPYmplY3QpO1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gZGVsZXRlRm4uY2FsbCh0aGlzLmVycm9ycywga2V5KTtcblx0XHRcdHRoaXMuZ2V0Rm9ybUVsZW1lbnRCeUZvcm1Db250cm9sKGtleSk/LmRldGVybWluZVBvcHVwU3RhdGUoKTtcblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fTtcblx0fVxuXG5cdHByaXZhdGUgYWRkU3VwcG9ydEZvclBhdGNoVmFsdWVJbnRlcmNlcHRvcigpOiB2b2lkIHtcblx0XHRjb25zdCBmbiA9IHRoaXMudG9wTGV2ZWxGb3JtQ29udHJvbC5wYXRjaFZhbHVlO1xuXHRcdGNvbnN0IG5ld0ZuID0gKFxuXHRcdFx0dmFsdWU6IHtcblx0XHRcdFx0W2tleTogc3RyaW5nXTogYW55O1xuXHRcdFx0fSxcblx0XHRcdG9wdGlvbnM/OiB7XG5cdFx0XHRcdG9ubHlTZWxmPzogYm9vbGVhbjtcblx0XHRcdFx0ZW1pdEV2ZW50PzogYm9vbGVhbjtcblx0XHRcdH1cblx0XHQpOiB2b2lkID0+IHtcblx0XHRcdHRoaXMucGF0Y2hWYWx1ZUludGVyY2VwdG9yKHZhbHVlKS50aGVuKCh2YWwpID0+IHtcblx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0Zm4uY2FsbCh0aGlzLnRvcExldmVsRm9ybUNvbnRyb2wsIHZhbCwgb3B0aW9ucyk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0fTtcblx0XHR0aGlzLnRvcExldmVsRm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSA9IG5ld0ZuO1xuXHR9XG5cblx0cHVibGljIHJlZ2lzdGVyQ29udHJvbChmb3JtQ29udHJvbDogVW50eXBlZEZvcm1Db250cm9sLCBmb3JtRWxlbWVudDogRm9ybUVsZW1lbnRDb21wb25lbnQpOiB2b2lkIHtcblx0XHR0aGlzLmFjdGl2ZUNvbnRyb2xzLnB1c2goe2Zvcm1Db250cm9sLCBmb3JtRWxlbWVudH0pO1xuXHRcdGlmICh0aGlzLnBhcmVudCkge1xuXHRcdFx0dGhpcy5wYXJlbnQucmVnaXN0ZXJDb250cm9sKGZvcm1Db250cm9sLCBmb3JtRWxlbWVudCk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLnJlYWRPbmx5KSB7XG5cdFx0XHRmb3JtQ29udHJvbC5kaXNhYmxlKCk7XG5cdFx0fVxuXHRcdGNvbnN0IGVuYWJsZUZuOiAob3B0cz86IHsgb25seVNlbGY/OiBib29sZWFuOyBlbWl0RXZlbnQ/OiBib29sZWFuIH0pID0+IHZvaWQgPSBmb3JtQ29udHJvbC5lbmFibGU7XG5cdFx0Zm9ybUNvbnRyb2wuZW5hYmxlID0gKG9wdHM/OiB7IG9ubHlTZWxmPzogYm9vbGVhbjsgZW1pdEV2ZW50PzogYm9vbGVhbiB9KSA9PiB7XG5cdFx0XHRpZiAoIXRoaXMucmVhZE9ubHkpIHtcblx0XHRcdFx0ZW5hYmxlRm4uY2FsbChmb3JtQ29udHJvbCwgb3B0cyk7XG5cdFx0XHR9XG5cdFx0fTtcblx0fVxuXG5cdHB1YmxpYyB1bnJlZ2lzdGVyQ29udHJvbChmb3JtQ29udHJvbDogVW50eXBlZEZvcm1Db250cm9sKTogdm9pZCB7XG5cdFx0dGhpcy5hY3RpdmVDb250cm9scyA9IHRoaXMuYWN0aXZlQ29udHJvbHMuZmlsdGVyKChlKSA9PiBlLmZvcm1Db250cm9sICE9PSBmb3JtQ29udHJvbCk7XG5cdFx0aWYgKHRoaXMucGFyZW50KSB7XG5cdFx0XHR0aGlzLnBhcmVudC51bnJlZ2lzdGVyQ29udHJvbChmb3JtQ29udHJvbCk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBhZGRGb3JtR3JvdXBDb250cm9scyhmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsIHJlc3VsdDogQXJyYXk8VW50eXBlZEZvcm1Db250cm9sPik6IHZvaWQge1xuXHRcdE9iamVjdC52YWx1ZXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuXHRcdFx0aWYgKHZhbHVlIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Hcm91cCkge1xuXHRcdFx0XHR0aGlzLmFkZEZvcm1Hcm91cENvbnRyb2xzKHZhbHVlLCByZXN1bHQpO1xuXHRcdFx0fSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVudHlwZWRGb3JtQXJyYXkpIHtcblx0XHRcdFx0dGhpcy5hZGRGb3JtQXJyYXlDb250cm9scyh2YWx1ZSwgcmVzdWx0KTtcblx0XHRcdH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcblx0XHRcdFx0dGhpcy5hZGRGb3JtQ29udHJvbCh2YWx1ZSwgcmVzdWx0KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgYWRkRm9ybUFycmF5Q29udHJvbHMoZm9ybUFycmF5OiBVbnR5cGVkRm9ybUFycmF5LCByZXN1bHQ6IEFycmF5PFVudHlwZWRGb3JtQ29udHJvbD4pOiB2b2lkIHtcblx0XHRmb3JtQXJyYXkuY29udHJvbHMuZm9yRWFjaCgodmFsdWUpID0+IHtcblx0XHRcdGlmICh2YWx1ZSBpbnN0YW5jZW9mIFVudHlwZWRGb3JtR3JvdXApIHtcblx0XHRcdFx0dGhpcy5hZGRGb3JtR3JvdXBDb250cm9scyh2YWx1ZSwgcmVzdWx0KTtcblx0XHRcdH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUFycmF5KSB7XG5cdFx0XHRcdHRoaXMuYWRkRm9ybUFycmF5Q29udHJvbHModmFsdWUsIHJlc3VsdCk7XG5cdFx0XHR9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Db250cm9sKSB7XG5cdFx0XHRcdHRoaXMuYWRkRm9ybUNvbnRyb2wodmFsdWUsIHJlc3VsdCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGdldEFsbEZvcm1Db250cm9scygpOiBBcnJheTxVbnR5cGVkRm9ybUNvbnRyb2w+IHtcblx0XHRjb25zdCByZXN1bHQgPSBbXTtcblx0XHRpZiAodGhpcy50b3BMZXZlbEZvcm1Db250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG5cdFx0XHR0aGlzLmFkZEZvcm1Hcm91cENvbnRyb2xzKHRoaXMudG9wTGV2ZWxGb3JtQ29udHJvbCwgcmVzdWx0KTtcblx0XHR9IGVsc2UgaWYgKHRoaXMudG9wTGV2ZWxGb3JtQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuXHRcdFx0dGhpcy5hZGRGb3JtQXJyYXlDb250cm9scyh0aGlzLnRvcExldmVsRm9ybUNvbnRyb2wsIHJlc3VsdCk7XG5cdFx0fVxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHRwcml2YXRlIGFkZEZvcm1Db250cm9sKGNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCwgcmVzdWx0OiBBcnJheTxVbnR5cGVkRm9ybUNvbnRyb2w+KTogdm9pZCB7XG5cdFx0cmVzdWx0LnB1c2goY29udHJvbCk7XG5cdH1cblxuXHRwcml2YXRlIGRpc2FibGVJbmFjdGl2ZUZvcm1Db250cm9sKGNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCk6IHZvaWQge1xuXHRcdGlmICghdGhpcy5hY3RpdmVDb250cm9scy5zb21lKChlKSA9PiBlLmZvcm1Db250cm9sID09PSBjb250cm9sKSkge1xuXHRcdFx0Y29udHJvbC5kaXNhYmxlKCk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGdldEZvcm1FbGVtZW50QnlGb3JtQ29udHJvbChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBGb3JtRWxlbWVudENvbXBvbmVudCB7XG5cdFx0cmV0dXJuIHRoaXMuYWN0aXZlQ29udHJvbHMuZmluZCgoZSkgPT4gZS5mb3JtQ29udHJvbCA9PT0gY29udHJvbCk/LmZvcm1FbGVtZW50O1xuXHR9XG5cblx0cHVibGljIGdldFdhcm5pbmdUb1Nob3coY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB7XG5cdFx0cmV0dXJuIHRoaXMud2FybmluZ3MuZ2V0KGNvbnRyb2wpO1xuXHR9XG5cblx0dHJ5U3VibWl0KCk6IFByb21pc2U8YW55PiB7XG5cdFx0dGhpcy50b3BMZXZlbEZvcm1Db250cm9sLm1hcmtBbGxBc1RvdWNoZWQoKTtcblx0XHRjb25zdCBhbGxDb250cm9sczogQXJyYXk8VW50eXBlZEZvcm1Db250cm9sPiA9IHRoaXMuZ2V0QWxsRm9ybUNvbnRyb2xzKCk7XG5cdFx0Y29uc3Qgb3JpZ2luYWxEaXNhYmxlZFN0YXRlcyA9IGFsbENvbnRyb2xzLm1hcChlID0+IHtcblx0XHRcdHJldHVybiB7Y29udHJvbDogZSwgZGlzYWJsZWQ6IGUuZGlzYWJsZWR9O1xuXHRcdH0pO1xuXHRcdGFsbENvbnRyb2xzLmZvckVhY2goZSA9PiB0aGlzLmRpc2FibGVJbmFjdGl2ZUZvcm1Db250cm9sKGUpKTtcblx0XHRhbGxDb250cm9scy5mb3JFYWNoKGUgPT4gZS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCkpO1xuXHRcdGNvbnN0IGZvcm1Hcm91cFZhbHVlID0gdGhpcy50b3BMZXZlbEZvcm1Db250cm9sLnZhbHVlO1xuXHRcdGlmICh0aGlzLnRvcExldmVsRm9ybUNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcblx0XHRcdGNvbnN0IHJlbmRlcmVkQW5kRW5hYmxlZFZhbHVlcyA9IHRoaXMuZ2V0UmVuZGVyZWRGaWVsZFZhbHVlc0Zvcm1Hcm91cCh0aGlzLnRvcExldmVsRm9ybUNvbnRyb2wsIHRydWUpO1xuXHRcdFx0Y29uc3QgcmVuZGVyZWRCdXREaXNhYmxlZFZhbHVlcyA9IHRoaXMuZ2V0UmVuZGVyZWRGaWVsZFZhbHVlc0Zvcm1Hcm91cCh0aGlzLnRvcExldmVsRm9ybUNvbnRyb2wsIGZhbHNlKTtcblxuXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdFx0aWYgKHRoaXMudG9wTGV2ZWxGb3JtQ29udHJvbC5wZW5kaW5nKSB7XG5cdFx0XHRcdFx0Y29uc3Qgc3ViID0gdGhpcy50b3BMZXZlbEZvcm1Db250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKChyZXMpID0+IHtcblx0XHRcdFx0XHRcdGlmIChyZXMgIT09ICdQRU5ESU5HJykge1xuXHRcdFx0XHRcdFx0XHRzdWIudW5zdWJzY3JpYmUoKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5oYW5kbGVTdWJtaXNzaW9uKG9yaWdpbmFsRGlzYWJsZWRTdGF0ZXMsIHJlbmRlcmVkQW5kRW5hYmxlZFZhbHVlcywgcmVuZGVyZWRCdXREaXNhYmxlZFZhbHVlcywgZm9ybUdyb3VwVmFsdWUpXG5cdFx0XHRcdFx0XHRcdC50aGVuKHJlc29sdmUpXG5cdFx0XHRcdFx0XHRcdC5jYXRjaChyZWplY3QpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuaGFuZGxlU3VibWlzc2lvbihvcmlnaW5hbERpc2FibGVkU3RhdGVzLCByZW5kZXJlZEFuZEVuYWJsZWRWYWx1ZXMsIHJlbmRlcmVkQnV0RGlzYWJsZWRWYWx1ZXMsIGZvcm1Hcm91cFZhbHVlKVxuXHRcdFx0XHRcdC50aGVuKHJlc29sdmUpXG5cdFx0XHRcdFx0LmNhdGNoKHJlamVjdCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0XHR0aHJvdyBuZXcgRXJyb3IoJ1N1Ym1pdHRpbmcgYSBGb3JtQXJyYXkgYXMgdG9wTGV2ZWwgbm90IHN1cHBvcnRlZCAoeWV0KS4gV3JhcCBpdCBpbiBhIEZvcm1Hcm91cC4nKTtcblx0fVxuXG5cdHByaXZhdGUgaGFuZGxlU3VibWlzc2lvbihcblx0XHRvcmlnaW5hbERpc2FibGVkU3RhdGVzOiBBcnJheTx7IGNvbnRyb2w6IEZvcm1Db250cm9sPGFueT47IGRpc2FibGVkOiBib29sZWFuIH0+LFxuXHRcdHJlbmRlcmVkQW5kRW5hYmxlZFZhbHVlczogUmVjb3JkPGFueSwgYW55Pixcblx0XHRyZW5kZXJlZEJ1dERpc2FibGVkVmFsdWVzOiBSZWNvcmQ8YW55LCBhbnk+LFxuXHRcdGZvcm1Hcm91cFZhbHVlKTogUHJvbWlzZTxhbnk+XG5cdHtcblx0XHRpZiAodGhpcy50b3BMZXZlbEZvcm1Db250cm9sLmludmFsaWQpIHtcblx0XHRcdHRoaXMuYWN0aXZlQ29udHJvbHMuZmluZCgoZSkgPT4gZS5mb3JtQ29udHJvbC5pbnZhbGlkKT8uZm9ybUVsZW1lbnQ/LnNjcm9sbFRvKCk7XG5cdFx0XHR0aGlzLnNldERpc2FibGVkU3RhdGVzRm9yQWxsQ29udHJvbHMob3JpZ2luYWxEaXNhYmxlZFN0YXRlcyk7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZWplY3QoaW52YWxpZEZpZWxkc1N5bWJvbCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuc2V0RGlzYWJsZWRTdGF0ZXNGb3JBbGxDb250cm9scyhvcmlnaW5hbERpc2FibGVkU3RhdGVzKTtcblx0XHRcdGNvbnN0IHJlbmRlcmVkVmFsdWVzID0gZGVlcE1lcmdlKHJlbmRlcmVkQW5kRW5hYmxlZFZhbHVlcywgcmVuZGVyZWRCdXREaXNhYmxlZFZhbHVlcyk7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtmb3JtR3JvdXBWYWx1ZSwgcmVuZGVyZWRWYWx1ZXNdKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGdldFJlbmRlcmVkRmllbGRWYWx1ZXNGb3JtR3JvdXAoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGVuYWJsZWQ6IGJvb2xlYW4sIHZhbHVlT2JqZWN0ID0ge30pOiBvYmplY3Qge1xuXHRcdE9iamVjdC5lbnRyaWVzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaCgoW25hbWUsIGNvbnRyb2xdKSA9PiB7XG5cdFx0XHRpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sICYmIGNvbnRyb2wuZW5hYmxlZCA9PT0gZW5hYmxlZCAmJiB0aGlzLmFjdGl2ZUNvbnRyb2xzLnNvbWUoZSA9PiBlLmZvcm1Db250cm9sID09PSBjb250cm9sKSkge1xuXHRcdFx0XHR2YWx1ZU9iamVjdFtuYW1lXSA9IGNvbnRyb2wudmFsdWU7XG5cdFx0XHR9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcblx0XHRcdFx0dmFsdWVPYmplY3RbbmFtZV0gPSBbXTtcblx0XHRcdFx0dGhpcy5nZXRSZW5kZXJlZEZpZWxkVmFsdWVzRm9ybUFycmF5KGNvbnRyb2wsIGVuYWJsZWQsIHZhbHVlT2JqZWN0W25hbWVdKTtcblx0XHRcdH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuXHRcdFx0XHR2YWx1ZU9iamVjdFtuYW1lXSA9IHt9O1xuXHRcdFx0XHR0aGlzLmdldFJlbmRlcmVkRmllbGRWYWx1ZXNGb3JtR3JvdXAoY29udHJvbCwgZW5hYmxlZCwgdmFsdWVPYmplY3RbbmFtZV0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHJldHVybiB2YWx1ZU9iamVjdDtcblx0fVxuXG5cdHByaXZhdGUgZ2V0UmVuZGVyZWRGaWVsZFZhbHVlc0Zvcm1BcnJheShmb3JtQXJyYXk6IEZvcm1BcnJheSwgZW5hYmxlZDogYm9vbGVhbiwgdmFsdWVBcnJheTogQXJyYXk8YW55Pik6IHZvaWQge1xuXHRcdGZvcm1BcnJheS5jb250cm9scy5mb3JFYWNoKChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcblx0XHRcdGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wgJiYgY29udHJvbC5lbmFibGVkID09PSBlbmFibGVkICYmIHRoaXMuYWN0aXZlQ29udHJvbHMuc29tZShlID0+IGUuZm9ybUNvbnRyb2wgPT09IGNvbnRyb2wpKSB7XG5cdFx0XHRcdHZhbHVlQXJyYXkucHVzaChjb250cm9sLnZhbHVlKTtcblx0XHRcdH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuXHRcdFx0XHRjb25zdCBuZXdBcnJheSA9IFtdO1xuXHRcdFx0XHR2YWx1ZUFycmF5LnB1c2gobmV3QXJyYXkpO1xuXHRcdFx0XHR0aGlzLmdldFJlbmRlcmVkRmllbGRWYWx1ZXNGb3JtQXJyYXkoY29udHJvbCwgZW5hYmxlZCwgbmV3QXJyYXkpO1xuXHRcdFx0fSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG5cdFx0XHRcdGNvbnN0IG5ld09iamVjdCA9IHt9O1xuXHRcdFx0XHR2YWx1ZUFycmF5LnB1c2gobmV3T2JqZWN0KTtcblx0XHRcdFx0dGhpcy5nZXRSZW5kZXJlZEZpZWxkVmFsdWVzRm9ybUdyb3VwKGNvbnRyb2wsIGVuYWJsZWQsIG5ld09iamVjdCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIHNldERpc2FibGVkU3RhdGVzRm9yQWxsQ29udHJvbHMob3JpZ2luYWxEaXNhYmxlZFN0YXRlczogQXJyYXk8eyBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w7IGRpc2FibGVkOiBib29sZWFuIH0+KTogdm9pZCB7XG5cdFx0b3JpZ2luYWxEaXNhYmxlZFN0YXRlcy5mb3JFYWNoKChlKSA9PiB7XG5cdFx0XHRpZiAoZS5kaXNhYmxlZCkge1xuXHRcdFx0XHRlLmNvbnRyb2wuZGlzYWJsZSgpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZS5jb250cm9sLmVuYWJsZSgpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG4iLCI8Zm9ybT5cblx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9mb3JtPlxuXG5cbiJdfQ==
|
|
@@ -61,6 +61,9 @@ export class WithTooltipDirective {
|
|
|
61
61
|
this.div.style.top = `${el.nativeElement.getBoundingClientRect().y + el.nativeElement.getBoundingClientRect().height}px`;
|
|
62
62
|
this.div.style.transform = `translate(calc(-100% + ${el.nativeElement.getBoundingClientRect().width}px), calc(0% + 0.3rem))`;
|
|
63
63
|
}
|
|
64
|
+
if (this.tooltipMinWidth > 0) {
|
|
65
|
+
this.div.style.minWidth = `${this.tooltipMinWidth}px`;
|
|
66
|
+
}
|
|
64
67
|
this.div.style.maxWidth = `${this.tooltipMaxWidth}px`;
|
|
65
68
|
this.div.style.whiteSpace = 'break-spaces';
|
|
66
69
|
this.div.style.border = `1px solid ${colors[this.klpWithTooltip].withAlpha}`;
|
|
@@ -159,7 +162,7 @@ export class WithTooltipDirective {
|
|
|
159
162
|
this.viewRefForTemplate.destroy();
|
|
160
163
|
}
|
|
161
164
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: WithTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.ApplicationRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
162
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: WithTooltipDirective, selector: "[klpWithTooltip]", inputs: { klpWithTooltip: "klpWithTooltip", tooltipText: "tooltipText", tooltipTemplate: "tooltipTemplate", tooltipMaxWidth: "tooltipMaxWidth", position: "position" }, ngImport: i0 }); }
|
|
165
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: WithTooltipDirective, selector: "[klpWithTooltip]", inputs: { klpWithTooltip: "klpWithTooltip", tooltipText: "tooltipText", tooltipTemplate: "tooltipTemplate", tooltipMinWidth: "tooltipMinWidth", tooltipMaxWidth: "tooltipMaxWidth", position: "position" }, ngImport: i0 }); }
|
|
163
166
|
}
|
|
164
167
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: WithTooltipDirective, decorators: [{
|
|
165
168
|
type: Directive,
|
|
@@ -172,9 +175,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
172
175
|
type: Input
|
|
173
176
|
}], tooltipTemplate: [{
|
|
174
177
|
type: Input
|
|
178
|
+
}], tooltipMinWidth: [{
|
|
179
|
+
type: Input
|
|
175
180
|
}], tooltipMaxWidth: [{
|
|
176
181
|
type: Input
|
|
177
182
|
}], position: [{
|
|
178
183
|
type: Input
|
|
179
184
|
}] } });
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aFRvb2x0aXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2xpcHBhL25neC1lbmhhbmN5LWZvcm1zL3NyYy9saWIvd2l0aFRvb2x0aXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTixTQUFTLEVBR1QsS0FBSyxFQUVMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFFbkQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDO0FBQzVCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQztBQUU3QixNQUFNLE1BQU0sR0FBRztJQUNkLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsaUNBQWlDLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFDO0lBQ3RILEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsZ0NBQWdDLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFDO0lBQ25ILFlBQVksRUFBRSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsbUNBQW1DLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFDO0NBQzlILENBQUM7QUFLRixNQUFNLE9BQU8sb0JBQW9CO0lBV2hDLFlBQW9CLEVBQWMsRUFBVSxNQUFzQixFQUFVLE1BQWM7UUFBdEUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVBqRixtQkFBYyxHQUF1QyxRQUFRLENBQUM7UUFHOUQsb0JBQWUsR0FBRyxHQUFHLENBQUM7UUFDdEIsYUFBUSxHQUFxQixLQUFLLENBQUM7UUFJM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFD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Q0FBQztJQUNuQyxDQUFDOzhHQXZKVyxvQkFBb0I7a0dBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsa0JBQWtCO2lCQUM1QjtpSUFLUyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRBcHBsaWNhdGlvblJlZixcblx0RGlyZWN0aXZlLFxuXHRFbGVtZW50UmVmLFxuXHRFbWJlZGRlZFZpZXdSZWYsXG5cdElucHV0LCBOZ1pvbmUsXG5cdFRlbXBsYXRlUmVmXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge3N0cmluZ0lzU2V0QW5kRmlsbGVkfSBmcm9tIFwiLi91dGlsL3ZhbHVlc1wiO1xuXG5jb25zdCB0cmlhbmdsZVNpemUgPSAnMTJweCc7XG5jb25zdCB6SW5kZXhTdGFydCA9IDk5OTk5OTk5O1xuXG5jb25zdCBjb2xvcnMgPSB7XG5cdG9yYW5nZTogeyBub0FscGhhOiAncmdiKDI1NSwgMTI4LCAwKScsIHdpdGhBbHBoYTogJ3JnYmEoMjU1LCAxMjgsIDAsIDAuMTI1NDkwMTk2MSknLCBiYWNrZ3JvdW5kOiAncmdiKDI1NSwgMjU1LCAyNTUpJ30sXG5cdGJsYWNrOiB7IG5vQWxwaGE6ICdyZ2IoNDAsIDQwLCA0MCknLCB3aXRoQWxwaGE6ICdyZ2JhKDQwLCA0MCwgNDAsIDAuMTI1NDkwMTk2MSknLCBiYWNrZ3JvdW5kOiAncmdiKDI1NSwgMjU1LCAyNTUpJ30sXG5cdHdoaXRlT25CbGFjazogeyBub0FscGhhOiAncmdiKDI1NSwgMjU1LCAyNTUpJywgd2l0aEFscGhhOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyNTQ5MDE5NjEpJywgYmFja2dyb3VuZDogJ3JnYmEoMTIsIDE3LCAyOSknfSxcbn07XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1trbHBXaXRoVG9vbHRpcF0nXG59KVxuZXhwb3J0IGNsYXNzIFdpdGhUb29sdGlwRGlyZWN0aXZlIHtcblx0cHJpdmF0ZSBkaXY6IEhUTUxFbGVtZW50O1xuXHRwcml2YXRlIHRyaWFuZ2xlOiBIVE1MRWxlbWVudDtcblx0cHJpdmF0ZSB0cmlhbmdsZVdoaXRlOiBIVE1MRWxlbWVudDtcblx0QElucHV0KCkga2xwV2l0aFRvb2x0aXA6ICdvcmFuZ2UnfCAnYmxhY2snIHwgJ3doaXRlT25CbGFjaycgPSAnb3JhbmdlJztcblx0QElucHV0KCkgdG9vbHRpcFRleHQ6IHN0cmluZztcblx0QElucHV0KCkgdG9vbHRpcFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXHRASW5wdXQoKSB0b29sdGlwTWF4V2lkdGggPSAyMDA7XG5cdEBJbnB1dCgpIHBvc2l0aW9uOiAndG9wJyB8ICdib3R0b20nID0gJ3RvcCc7XG5cdHByaXZhdGUgdGVtcGxhdGVJbnN0YW5jZTogSFRNTEVsZW1lbnQ7XG5cdHByaXZhdGUgdmlld1JlZkZvclRlbXBsYXRlOiBFbWJlZGRlZFZpZXdSZWY8YW55Pjtcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLCBwcml2YXRlIG5nWm9uZTogTmdab25lKSB7XG5cdFx0dGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0ZWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgKCkgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy50b29sdGlwVGVtcGxhdGUpIHtcblx0XHRcdFx0XHR0aGlzLmhvb2tVcFRlbXBsYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0bGV0IHRleHRUb0Rpc3BsYXk6IHN0cmluZztcblx0XHRcdFx0aWYgKCF0aGlzLnRlbXBsYXRlSW5zdGFuY2UpIHtcblx0XHRcdFx0XHR0ZXh0VG9EaXNwbGF5ID0gdGhpcy50b29sdGlwVGV4dCB8fCBlbC5uYXRpdmVFbGVtZW50LmlubmVyVGV4dC50cmltKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCFzdHJpbmdJc1NldEFuZEZpbGxlZCh0aGlzLmtscFdpdGhUb29sdGlwKSkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIXN0cmluZ0lzU2V0QW5kRmlsbGVkKHRleHRUb0Rpc3BsYXkpICYmICF0aGlzLnRvb2x0aXBUZW1wbGF0ZSkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoc3RyaW5nSXNTZXRBbmRGaWxsZWQodGhpcy50b29sdGlwVGV4dCkpIHtcblx0XHRcdFx0XHRpZiAodGhpcy50b29sdGlwVGV4dCA9PT0gZWwubmF0aXZlRWxlbWVudC5pbm5lclRleHQpIHtcblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gZWxzZSBpZiAodGhpcy50b29sdGlwVGVtcGxhdGUpIHtcblx0XHRcdFx0XHQvLyBubyBuZWVkIHRvIGNoZWNrIGhlcmUsIGp1c3QgcmVuZGVyIHRoZSB0ZW1wbGF0ZVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGlmIChlbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoID49IGVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGgpIHtcblx0XHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGdldENvbXB1dGVkU3R5bGUoZWwubmF0aXZlRWxlbWVudCkucG9zaXRpb24gPT09ICdzdGF0aWMnKSB7XG5cdFx0XHRcdFx0ZWwubmF0aXZlRWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0aGlzLmRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXHRcdFx0XHR0aGlzLmRpdi5zdHlsZS56SW5kZXggPSBgJHt6SW5kZXhTdGFydCArIDJ9YDtcblx0XHRcdFx0dGhpcy5kaXYuc3R5bGUuY29sb3IgPSBgJHtjb2xvcnNbdGhpcy5rbHBXaXRoVG9vbHRpcF0ubm9BbHBoYX1gO1xuXHRcdFx0XHR0aGlzLmRpdi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBgJHtjb2xvcnNbdGhpcy5rbHBXaXRoVG9vbHRpcF0uYmFja2dyb3VuZH1gO1xuXHRcdFx0XHR0aGlzLmRpdi5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG5cdFx0XHRcdHRoaXMuZGl2LnN0eWxlLmxlZnQgPSBgJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnh9cHhgO1xuXHRcdFx0XHRpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ3RvcCcpIHtcblx0XHRcdFx0XHR0aGlzLmRpdi5zdHlsZS50b3AgPSBgJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnl9cHhgO1xuXHRcdFx0XHRcdHRoaXMuZGl2LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoY2FsYygtMTAwJSArICR7ZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weCksIGNhbGMoLTEwMCUgLSAwLjNyZW0pKWA7XG5cdFx0XHRcdH0gZWxzZSBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbScpIHtcblx0XHRcdFx0XHR0aGlzLmRpdi5zdHlsZS50b3AgPSBgJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnkgKyBlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodH1weGA7XG5cdFx0XHRcdFx0dGhpcy5kaXYuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZShjYWxjKC0xMDAlICsgJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRofXB4KSwgY2FsYygwJSArIDAuM3JlbSkpYDtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLmRpdi5zdHlsZS5tYXhXaWR0aCA9IGAke3RoaXMudG9vbHRpcE1heFdpZHRofXB4YDtcblx0XHRcdFx0dGhpcy5kaXYuc3R5bGUud2hpdGVTcGFjZSA9ICdicmVhay1zcGFjZXMnO1xuXHRcdFx0XHR0aGlzLmRpdi5zdHlsZS5ib3JkZXIgPSBgMXB4IHNvbGlkICR7Y29sb3JzW3RoaXMua2xwV2l0aFRvb2x0aXBdLndpdGhBbHBoYX1gO1xuXHRcdFx0XHR0aGlzLmRpdi5zdHlsZS5ib3hTaGFkb3cgPSBgMnB4IDNweCAxMHB4IDBweCAke2NvbG9yc1t0aGlzLmtscFdpdGhUb29sdGlwXS53aXRoQWxwaGF9YDtcblx0XHRcdFx0dGhpcy5kaXYuc3R5bGUucGFkZGluZyA9ICcwLjNyZW0gMC41cmVtJztcblx0XHRcdFx0dGhpcy5kaXYuc3R5bGUuYm94U2l6aW5nID0gJ2JvcmRlci1ib3gnO1xuXHRcdFx0XHR0aGlzLmRpdi5zdHlsZS5ib3JkZXJSYWRpdXMgPSAnM3B4Jztcblx0XHRcdFx0dGhpcy5kaXYuc3R5bGUud29yZEJyZWFrID0gJ2JyZWFrLXdvcmQnO1xuXHRcdFx0XHRpZiAoc3RyaW5nSXNTZXRBbmRGaWxsZWQodGV4dFRvRGlzcGxheSkpIHtcblx0XHRcdFx0XHR0aGlzLmRpdi50ZXh0Q29udGVudCA9IHRleHRUb0Rpc3BsYXk7XG5cdFx0XHRcdH0gZWxzZSBpZiAodGhpcy50ZW1wbGF0ZUluc3RhbmNlKSB7XG5cdFx0XHRcdFx0dGhpcy5kaXYuc3R5bGUubWF4V2lkdGggPSAnbm9uZSc7XG5cdFx0XHRcdFx0dGhpcy5kaXYuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuXHRcdFx0XHRcdHRoaXMuZGl2LmFwcGVuZENoaWxkKHRoaXMudGVtcGxhdGVJbnN0YW5jZSk7XG5cdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRjb25zdCBjb2xvciA9IGdldENvbXB1dGVkU3R5bGUodGhpcy50ZW1wbGF0ZUluc3RhbmNlKS5iYWNrZ3JvdW5kQ29sb3IgfHwgZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnRlbXBsYXRlSW5zdGFuY2UpLmJhY2tncm91bmQ7XG5cdFx0XHRcdFx0XHR0aGlzLmRpdi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBjb2xvcjtcblx0XHRcdFx0XHRcdHRoaXMuZGl2LnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWwubmF0aXZlRWxlbWVudC5wcmVwZW5kKHRoaXMuZGl2KTtcblxuXHRcdFx0XHR0aGlzLnRyaWFuZ2xlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cdFx0XHRcdHRoaXMudHJpYW5nbGUuc3R5bGUuekluZGV4ID0gYCR7ekluZGV4U3RhcnQgKyAxfWA7XG5cdFx0XHRcdHRoaXMudHJpYW5nbGUuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuXHRcdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLmxlZnQgPSBgY2FsYygke2VsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCArIGVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGh9cHggLSAwLjhyZW0pYDtcblx0XHRcdFx0aWYgKHRoaXMucG9zaXRpb24gPT09ICd0b3AnKSB7XG5cdFx0XHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS50b3AgPSBgJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnl9cHhgO1xuXHRcdFx0XHRcdHRoaXMudHJpYW5nbGUuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgtNTAlLCBjYWxjKC0xMDAlICsgMC4xcmVtKSlgO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHRoaXMucG9zaXRpb24gPT09ICdib3R0b20nKSB7XG5cdFx0XHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS50b3AgPSBgJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnkgKyBlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodH1weGA7XG5cdFx0XHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKC01MCUsIDByZW0pIHJvdGF0ZSgxODBkZWcpYDtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLndpZHRoID0gJzAnO1xuXHRcdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLmhlaWdodCA9ICcwJztcblx0XHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS5ib3JkZXJMZWZ0ID0gYCR7dHJpYW5nbGVTaXplfSBzb2xpZCB0cmFuc3BhcmVudGA7XG5cdFx0XHRcdHRoaXMudHJpYW5nbGUuc3R5bGUuYm9yZGVyUmlnaHQgPSBgJHt0cmlhbmdsZVNpemV9IHNvbGlkIHRyYW5zcGFyZW50YDtcblx0XHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS5ib3JkZXJUb3AgPSBgJHt0cmlhbmdsZVNpemV9IHNvbGlkICR7Y29sb3JzW3RoaXMua2xwV2l0aFRvb2x0aXBdLndpdGhBbHBoYX1gO1xuXHRcdFx0XHRlbC5uYXRpdmVFbGVtZW50LnByZXBlbmQodGhpcy50cmlhbmdsZSk7XG5cblx0XHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cdFx0XHRcdHRoaXMudHJpYW5nbGVXaGl0ZS5zdHlsZS56SW5kZXggPSBgJHt6SW5kZXhTdGFydCArIDN9YDtcblx0XHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcblx0XHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLmxlZnQgPSBgY2FsYygke2VsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCArIGVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGh9cHggLSAwLjhyZW0pYDtcblx0XHRcdFx0aWYgKHRoaXMucG9zaXRpb24gPT09ICd0b3AnKSB7XG5cdFx0XHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLnRvcCA9IGAke2VsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueX1weGA7XG5cdFx0XHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoLTUwJSwgY2FsYygtMTAwJSArIDAuMXJlbSAtIDJweCkpYDtcblx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLnBvc2l0aW9uID09PSAnYm90dG9tJykge1xuXHRcdFx0XHRcdHRoaXMudHJpYW5nbGVXaGl0ZS5zdHlsZS50b3AgPSBgJHtlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnkgKyBlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodH1weGA7XG5cdFx0XHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoLTUwJSwgLTJweCkgcm90YXRlKDE4MGRlZylgO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMudHJpYW5nbGVXaGl0ZS5zdHlsZS53aWR0aCA9ICcwJztcblx0XHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLmhlaWdodCA9ICcwJztcblx0XHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLmJvcmRlckxlZnQgPSBgJHt0cmlhbmdsZVNpemV9IHNvbGlkIHRyYW5zcGFyZW50YDtcblx0XHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLmJvcmRlclJpZ2h0ID0gYCR7dHJpYW5nbGVTaXplfSBzb2xpZCB0cmFuc3BhcmVudGA7XG5cblx0XHRcdFx0aWYgKHN0cmluZ0lzU2V0QW5kRmlsbGVkKHRleHRUb0Rpc3BsYXkpKSB7XG5cdFx0XHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLmJvcmRlclRvcCA9IGAke3RyaWFuZ2xlU2l6ZX0gc29saWQgJHtjb2xvcnNbdGhpcy5rbHBXaXRoVG9vbHRpcF0uYmFja2dyb3VuZH1gO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHRoaXMudGVtcGxhdGVJbnN0YW5jZSkge1xuXHRcdFx0XHRcdHRoaXMuZGl2LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcblx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IGNvbG9yID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnRlbXBsYXRlSW5zdGFuY2UpLmJhY2tncm91bmRDb2xvciB8fCBnZXRDb21wdXRlZFN0eWxlKHRoaXMudGVtcGxhdGVJbnN0YW5jZSkuYmFja2dyb3VuZDtcblx0XHRcdFx0XHRcdHRoaXMudHJpYW5nbGVXaGl0ZS5zdHlsZS5ib3JkZXJUb3AgPSBgJHt0cmlhbmdsZVNpemV9IHNvbGlkICR7Y29sb3J9YDtcblx0XHRcdFx0XHRcdHRoaXMuZGl2LnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJsZSc7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRlbC5uYXRpdmVFbGVtZW50LnByZXBlbmQodGhpcy50cmlhbmdsZVdoaXRlKTtcblx0XHRcdH0pO1xuXG5cdFx0XHRlbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoKSA9PiB7XG5cdFx0XHRcdGlmICh0aGlzLnRvb2x0aXBUZW1wbGF0ZSkge1xuXHRcdFx0XHRcdHRoaXMuY2xlYW5VcFRlbXBsYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRlbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuZGl2KTtcblx0XHRcdFx0fSBjYXRjaCAoZXgpIHt9XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0ZWwubmF0aXZlRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLnRyaWFuZ2xlKTtcblx0XHRcdFx0fSBjYXRjaCAoZXgpIHt9XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0ZWwubmF0aXZlRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLnRyaWFuZ2xlV2hpdGUpO1xuXHRcdFx0XHR9IGNhdGNoIChleCkge31cblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG5cblx0cHVibGljIGhvb2tVcFRlbXBsYXRlKCk6IHZvaWQge1xuXHRcdHRoaXMudmlld1JlZkZvclRlbXBsYXRlID0gdGhpcy50b29sdGlwVGVtcGxhdGUuY3JlYXRlRW1iZWRkZWRWaWV3KG51bGwpO1xuXHRcdHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy52aWV3UmVmRm9yVGVtcGxhdGUpO1xuXHRcdHRoaXMudGVtcGxhdGVJbnN0YW5jZSA9IHRoaXMudmlld1JlZkZvclRlbXBsYXRlLnJvb3ROb2Rlc1swXTtcblx0fVxuXG5cdHB1YmxpYyBjbGVhblVwVGVtcGxhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy5hcHBSZWYuZGV0YWNoVmlldyh0aGlzLnZpZXdSZWZGb3JUZW1wbGF0ZSk7XG5cdFx0dGhpcy52aWV3UmVmRm9yVGVtcGxhdGUuZGVzdHJveSgpO1xuXHR9XG59XG4iXX0=
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aFRvb2x0aXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2xpcHBhL25neC1lbmhhbmN5LWZvcm1zL3NyYy9saWIvd2l0aFRvb2x0aXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTixTQUFTLEVBR1QsS0FBSyxFQUVMLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFFbkQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDO0FBQzVCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQztBQUU3QixNQUFNLE1BQU0sR0FBRztJQUNkLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsaUNBQWlDLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFDO0lBQ3RILEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsZ0NBQWdDLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFDO0lBQ25ILFlBQVksRUFBRSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsbUNBQW1DLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFDO0NBQzlILENBQUM7QUFLRixNQUFNLE9BQU8sb0JBQW9CO0lBWWhDLFlBQW9CLEVBQWMsRUFBVSxNQUFzQixFQUFVLE1BQWM7UUFBdEUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVJqRixtQkFBYyxHQUF1QyxRQUFRLENBQUM7UUFJOUQsb0JBQWUsR0FBRyxHQUFHLENBQUM7UUFDdEIsYUFBUSxHQUFxQixLQUFLLENBQUM7UUFJM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFD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QUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxlQUFlO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQyxDQUFDOzhHQTNKVyxvQkFBb0I7a0dBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsa0JBQWtCO2lCQUM1QjtpSUFLUyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdEFwcGxpY2F0aW9uUmVmLFxuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdEVtYmVkZGVkVmlld1JlZixcblx0SW5wdXQsIE5nWm9uZSxcblx0VGVtcGxhdGVSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7c3RyaW5nSXNTZXRBbmRGaWxsZWR9IGZyb20gXCIuL3V0aWwvdmFsdWVzXCI7XG5cbmNvbnN0IHRyaWFuZ2xlU2l6ZSA9ICcxMnB4JztcbmNvbnN0IHpJbmRleFN0YXJ0ID0gOTk5OTk5OTk7XG5cbmNvbnN0IGNvbG9ycyA9IHtcblx0b3JhbmdlOiB7IG5vQWxwaGE6ICdyZ2IoMjU1LCAxMjgsIDApJywgd2l0aEFscGhhOiAncmdiYSgyNTUsIDEyOCwgMCwgMC4xMjU0OTAxOTYxKScsIGJhY2tncm91bmQ6ICdyZ2IoMjU1LCAyNTUsIDI1NSknfSxcblx0YmxhY2s6IHsgbm9BbHBoYTogJ3JnYig0MCwgNDAsIDQwKScsIHdpdGhBbHBoYTogJ3JnYmEoNDAsIDQwLCA0MCwgMC4xMjU0OTAxOTYxKScsIGJhY2tncm91bmQ6ICdyZ2IoMjU1LCAyNTUsIDI1NSknfSxcblx0d2hpdGVPbkJsYWNrOiB7IG5vQWxwaGE6ICdyZ2IoMjU1LCAyNTUsIDI1NSknLCB3aXRoQWxwaGE6ICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTI1NDkwMTk2MSknLCBiYWNrZ3JvdW5kOiAncmdiYSgxMiwgMTcsIDI5KSd9LFxufTtcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2tscFdpdGhUb29sdGlwXSdcbn0pXG5leHBvcnQgY2xhc3MgV2l0aFRvb2x0aXBEaXJlY3RpdmUge1xuXHRwcml2YXRlIGRpdjogSFRNTEVsZW1lbnQ7XG5cdHByaXZhdGUgdHJpYW5nbGU6IEhUTUxFbGVtZW50O1xuXHRwcml2YXRlIHRyaWFuZ2xlV2hpdGU6IEhUTUxFbGVtZW50O1xuXHRASW5wdXQoKSBrbHBXaXRoVG9vbHRpcDogJ29yYW5nZSd8ICdibGFjaycgfCAnd2hpdGVPbkJsYWNrJyA9ICdvcmFuZ2UnO1xuXHRASW5wdXQoKSB0b29sdGlwVGV4dDogc3RyaW5nO1xuXHRASW5wdXQoKSB0b29sdGlwVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cdEBJbnB1dCgpIHRvb2x0aXBNaW5XaWR0aDtcblx0QElucHV0KCkgdG9vbHRpcE1heFdpZHRoID0gMjAwO1xuXHRASW5wdXQoKSBwb3NpdGlvbjogJ3RvcCcgfCAnYm90dG9tJyA9ICd0b3AnO1xuXHRwcml2YXRlIHRlbXBsYXRlSW5zdGFuY2U6IEhUTUxFbGVtZW50O1xuXHRwcml2YXRlIHZpZXdSZWZGb3JUZW1wbGF0ZTogRW1iZWRkZWRWaWV3UmVmPGFueT47XG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZiwgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkge1xuXHRcdHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0XHRcdGVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsICgpID0+IHtcblx0XHRcdFx0aWYgKHRoaXMudG9vbHRpcFRlbXBsYXRlKSB7XG5cdFx0XHRcdFx0dGhpcy5ob29rVXBUZW1wbGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGxldCB0ZXh0VG9EaXNwbGF5OiBzdHJpbmc7XG5cdFx0XHRcdGlmICghdGhpcy50ZW1wbGF0ZUluc3RhbmNlKSB7XG5cdFx0XHRcdFx0dGV4dFRvRGlzcGxheSA9IHRoaXMudG9vbHRpcFRleHQgfHwgZWwubmF0aXZlRWxlbWVudC5pbm5lclRleHQudHJpbSgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICghc3RyaW5nSXNTZXRBbmRGaWxsZWQodGhpcy5rbHBXaXRoVG9vbHRpcCkpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCFzdHJpbmdJc1NldEFuZEZpbGxlZCh0ZXh0VG9EaXNwbGF5KSAmJiAhdGhpcy50b29sdGlwVGVtcGxhdGUpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHN0cmluZ0lzU2V0QW5kRmlsbGVkKHRoaXMudG9vbHRpcFRleHQpKSB7XG5cdFx0XHRcdFx0aWYgKHRoaXMudG9vbHRpcFRleHQgPT09IGVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0KSB7XG5cdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2UgaWYgKHRoaXMudG9vbHRpcFRlbXBsYXRlKSB7XG5cdFx0XHRcdFx0Ly8gbm8gbmVlZCB0byBjaGVjayBoZXJlLCBqdXN0IHJlbmRlciB0aGUgdGVtcGxhdGVcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRpZiAoZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCA+PSBlbC5uYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRoKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChnZXRDb21wdXRlZFN0eWxlKGVsLm5hdGl2ZUVsZW1lbnQpLnBvc2l0aW9uID09PSAnc3RhdGljJykge1xuXHRcdFx0XHRcdGVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGhpcy5kaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblx0XHRcdFx0dGhpcy5kaXYuc3R5bGUuekluZGV4ID0gYCR7ekluZGV4U3RhcnQgKyAyfWA7XG5cdFx0XHRcdHRoaXMuZGl2LnN0eWxlLmNvbG9yID0gYCR7Y29sb3JzW3RoaXMua2xwV2l0aFRvb2x0aXBdLm5vQWxwaGF9YDtcblx0XHRcdFx0dGhpcy5kaXYuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gYCR7Y29sb3JzW3RoaXMua2xwV2l0aFRvb2x0aXBdLmJhY2tncm91bmR9YDtcblx0XHRcdFx0dGhpcy5kaXYuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuXHRcdFx0XHR0aGlzLmRpdi5zdHlsZS5sZWZ0ID0gYCR7ZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS54fXB4YDtcblx0XHRcdFx0aWYgKHRoaXMucG9zaXRpb24gPT09ICd0b3AnKSB7XG5cdFx0XHRcdFx0dGhpcy5kaXYuc3R5bGUudG9wID0gYCR7ZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55fXB4YDtcblx0XHRcdFx0XHR0aGlzLmRpdi5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKGNhbGMoLTEwMCUgKyAke2VsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGh9cHgpLCBjYWxjKC0xMDAlIC0gMC4zcmVtKSlgO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHRoaXMucG9zaXRpb24gPT09ICdib3R0b20nKSB7XG5cdFx0XHRcdFx0dGhpcy5kaXYuc3R5bGUudG9wID0gYCR7ZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55ICsgZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHR9cHhgO1xuXHRcdFx0XHRcdHRoaXMuZGl2LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoY2FsYygtMTAwJSArICR7ZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weCksIGNhbGMoMCUgKyAwLjNyZW0pKWA7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKHRoaXMudG9vbHRpcE1pbldpZHRoID4gMCkge1xuXHRcdFx0XHRcdHRoaXMuZGl2LnN0eWxlLm1pbldpZHRoID0gYCR7dGhpcy50b29sdGlwTWluV2lkdGh9cHhgO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuZGl2LnN0eWxlLm1heFdpZHRoID0gYCR7dGhpcy50b29sdGlwTWF4V2lkdGh9cHhgO1xuXHRcdFx0XHR0aGlzLmRpdi5zdHlsZS53aGl0ZVNwYWNlID0gJ2JyZWFrLXNwYWNlcyc7XG5cdFx0XHRcdHRoaXMuZGl2LnN0eWxlLmJvcmRlciA9IGAxcHggc29saWQgJHtjb2xvcnNbdGhpcy5rbHBXaXRoVG9vbHRpcF0ud2l0aEFscGhhfWA7XG5cdFx0XHRcdHRoaXMuZGl2LnN0eWxlLmJveFNoYWRvdyA9IGAycHggM3B4IDEwcHggMHB4ICR7Y29sb3JzW3RoaXMua2xwV2l0aFRvb2x0aXBdLndpdGhBbHBoYX1gO1xuXHRcdFx0XHR0aGlzLmRpdi5zdHlsZS5wYWRkaW5nID0gJzAuM3JlbSAwLjVyZW0nO1xuXHRcdFx0XHR0aGlzLmRpdi5zdHlsZS5ib3hTaXppbmcgPSAnYm9yZGVyLWJveCc7XG5cdFx0XHRcdHRoaXMuZGl2LnN0eWxlLmJvcmRlclJhZGl1cyA9ICczcHgnO1xuXHRcdFx0XHR0aGlzLmRpdi5zdHlsZS53b3JkQnJlYWsgPSAnYnJlYWstd29yZCc7XG5cdFx0XHRcdGlmIChzdHJpbmdJc1NldEFuZEZpbGxlZCh0ZXh0VG9EaXNwbGF5KSkge1xuXHRcdFx0XHRcdHRoaXMuZGl2LnRleHRDb250ZW50ID0gdGV4dFRvRGlzcGxheTtcblx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLnRlbXBsYXRlSW5zdGFuY2UpIHtcblx0XHRcdFx0XHR0aGlzLmRpdi5zdHlsZS5tYXhXaWR0aCA9ICdub25lJztcblx0XHRcdFx0XHR0aGlzLmRpdi5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG5cdFx0XHRcdFx0dGhpcy5kaXYuYXBwZW5kQ2hpbGQodGhpcy50ZW1wbGF0ZUluc3RhbmNlKTtcblx0XHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRcdGNvbnN0IGNvbG9yID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnRlbXBsYXRlSW5zdGFuY2UpLmJhY2tncm91bmRDb2xvciB8fCBnZXRDb21wdXRlZFN0eWxlKHRoaXMudGVtcGxhdGVJbnN0YW5jZSkuYmFja2dyb3VuZDtcblx0XHRcdFx0XHRcdHRoaXMuZGl2LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGNvbG9yO1xuXHRcdFx0XHRcdFx0dGhpcy5kaXYuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRlbC5uYXRpdmVFbGVtZW50LnByZXBlbmQodGhpcy5kaXYpO1xuXG5cdFx0XHRcdHRoaXMudHJpYW5nbGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblx0XHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS56SW5kZXggPSBgJHt6SW5kZXhTdGFydCArIDF9YDtcblx0XHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XG5cdFx0XHRcdHRoaXMudHJpYW5nbGUuc3R5bGUubGVmdCA9IGBjYWxjKCR7ZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS54ICsgZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weCAtIDAuOHJlbSlgO1xuXHRcdFx0XHRpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ3RvcCcpIHtcblx0XHRcdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLnRvcCA9IGAke2VsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueX1weGA7XG5cdFx0XHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKC01MCUsIGNhbGMoLTEwMCUgKyAwLjFyZW0pKWA7XG5cdFx0XHRcdH0gZWxzZSBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbScpIHtcblx0XHRcdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLnRvcCA9IGAke2VsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueSArIGVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0fXB4YDtcblx0XHRcdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoLTUwJSwgMHJlbSkgcm90YXRlKDE4MGRlZylgO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMudHJpYW5nbGUuc3R5bGUud2lkdGggPSAnMCc7XG5cdFx0XHRcdHRoaXMudHJpYW5nbGUuc3R5bGUuaGVpZ2h0ID0gJzAnO1xuXHRcdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLmJvcmRlckxlZnQgPSBgJHt0cmlhbmdsZVNpemV9IHNvbGlkIHRyYW5zcGFyZW50YDtcblx0XHRcdFx0dGhpcy50cmlhbmdsZS5zdHlsZS5ib3JkZXJSaWdodCA9IGAke3RyaWFuZ2xlU2l6ZX0gc29saWQgdHJhbnNwYXJlbnRgO1xuXHRcdFx0XHR0aGlzLnRyaWFuZ2xlLnN0eWxlLmJvcmRlclRvcCA9IGAke3RyaWFuZ2xlU2l6ZX0gc29saWQgJHtjb2xvcnNbdGhpcy5rbHBXaXRoVG9vbHRpcF0ud2l0aEFscGhhfWA7XG5cdFx0XHRcdGVsLm5hdGl2ZUVsZW1lbnQucHJlcGVuZCh0aGlzLnRyaWFuZ2xlKTtcblxuXHRcdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblx0XHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLnpJbmRleCA9IGAke3pJbmRleFN0YXJ0ICsgM31gO1xuXHRcdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuXHRcdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUuc3R5bGUubGVmdCA9IGBjYWxjKCR7ZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS54ICsgZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weCAtIDAuOHJlbSlgO1xuXHRcdFx0XHRpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ3RvcCcpIHtcblx0XHRcdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUuc3R5bGUudG9wID0gYCR7ZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55fXB4YDtcblx0XHRcdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgtNTAlLCBjYWxjKC0xMDAlICsgMC4xcmVtIC0gMnB4KSlgO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHRoaXMucG9zaXRpb24gPT09ICdib3R0b20nKSB7XG5cdFx0XHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLnRvcCA9IGAke2VsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueSArIGVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0fXB4YDtcblx0XHRcdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgtNTAlLCAtMnB4KSByb3RhdGUoMTgwZGVnKWA7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLndpZHRoID0gJzAnO1xuXHRcdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUuc3R5bGUuaGVpZ2h0ID0gJzAnO1xuXHRcdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUuc3R5bGUuYm9yZGVyTGVmdCA9IGAke3RyaWFuZ2xlU2l6ZX0gc29saWQgdHJhbnNwYXJlbnRgO1xuXHRcdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUuc3R5bGUuYm9yZGVyUmlnaHQgPSBgJHt0cmlhbmdsZVNpemV9IHNvbGlkIHRyYW5zcGFyZW50YDtcblxuXHRcdFx0XHRpZiAoc3RyaW5nSXNTZXRBbmRGaWxsZWQodGV4dFRvRGlzcGxheSkpIHtcblx0XHRcdFx0XHR0aGlzLnRyaWFuZ2xlV2hpdGUuc3R5bGUuYm9yZGVyVG9wID0gYCR7dHJpYW5nbGVTaXplfSBzb2xpZCAke2NvbG9yc1t0aGlzLmtscFdpdGhUb29sdGlwXS5iYWNrZ3JvdW5kfWA7XG5cdFx0XHRcdH0gZWxzZSBpZiAodGhpcy50ZW1wbGF0ZUluc3RhbmNlKSB7XG5cdFx0XHRcdFx0dGhpcy5kaXYuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuXHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgY29sb3IgPSBnZXRDb21wdXRlZFN0eWxlKHRoaXMudGVtcGxhdGVJbnN0YW5jZSkuYmFja2dyb3VuZENvbG9yIHx8IGdldENvbXB1dGVkU3R5bGUodGhpcy50ZW1wbGF0ZUluc3RhbmNlKS5iYWNrZ3JvdW5kO1xuXHRcdFx0XHRcdFx0dGhpcy50cmlhbmdsZVdoaXRlLnN0eWxlLmJvcmRlclRvcCA9IGAke3RyaWFuZ2xlU2l6ZX0gc29saWQgJHtjb2xvcn1gO1xuXHRcdFx0XHRcdFx0dGhpcy5kaXYuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGVsLm5hdGl2ZUVsZW1lbnQucHJlcGVuZCh0aGlzLnRyaWFuZ2xlV2hpdGUpO1xuXHRcdFx0fSk7XG5cblx0XHRcdGVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgpID0+IHtcblx0XHRcdFx0aWYgKHRoaXMudG9vbHRpcFRlbXBsYXRlKSB7XG5cdFx0XHRcdFx0dGhpcy5jbGVhblVwVGVtcGxhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGVsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5kaXYpO1xuXHRcdFx0XHR9IGNhdGNoIChleCkge31cblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRlbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMudHJpYW5nbGUpO1xuXHRcdFx0XHR9IGNhdGNoIChleCkge31cblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRlbC5uYXRpdmVFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMudHJpYW5nbGVXaGl0ZSk7XG5cdFx0XHRcdH0gY2F0Y2ggKGV4KSB7fVxuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgaG9va1VwVGVtcGxhdGUoKTogdm9pZCB7XG5cdFx0dGhpcy52aWV3UmVmRm9yVGVtcGxhdGUgPSB0aGlzLnRvb2x0aXBUZW1wbGF0ZS5jcmVhdGVFbWJlZGRlZFZpZXcobnVsbCk7XG5cdFx0dGhpcy5hcHBSZWYuYXR0YWNoVmlldyh0aGlzLnZpZXdSZWZGb3JUZW1wbGF0ZSk7XG5cdFx0dGhpcy50ZW1wbGF0ZUluc3RhbmNlID0gdGhpcy52aWV3UmVmRm9yVGVtcGxhdGUucm9vdE5vZGVzWzBdO1xuXHR9XG5cblx0cHVibGljIGNsZWFuVXBUZW1wbGF0ZSgpOiB2b2lkIHtcblx0XHR0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMudmlld1JlZkZvclRlbXBsYXRlKTtcblx0XHR0aGlzLnZpZXdSZWZGb3JUZW1wbGF0ZS5kZXN0cm95KCk7XG5cdH1cbn1cbiJdfQ==
|