ets-fe-ng-sdk 17.0.79 → 17.0.81
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/assets/scss/styles.scss +3 -0
- package/esm2022/lib/Shared/directives/input-formatter.directive.mjs +23 -28
- package/esm2022/lib/Shared/models/environment.model.mjs +1 -1
- package/esm2022/lib/Shared/pipes/utility.pipe.mjs +13 -35
- package/fesm2022/ets-fe-ng-sdk.mjs +33 -60
- package/fesm2022/ets-fe-ng-sdk.mjs.map +1 -1
- package/lib/Shared/components/info-dialog/info-dialog.component.d.ts +1 -1
- package/lib/Shared/directives/input-formatter.directive.d.ts +9 -0
- package/lib/Shared/models/environment.model.d.ts +0 -3
- package/lib/Shared/pipes/utility.pipe.d.ts +1 -1
- package/package.json +1 -1
package/assets/scss/styles.scss
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { Directive, forwardRef, HostListener, Input, NgModule
|
|
1
|
+
import { Directive, forwardRef, HostListener, inject, Input, NgModule } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { MAT_INPUT_VALUE_ACCESSOR as MAT_INPUT_VALUE_ACCESSOR } from '@angular/material/input';
|
|
4
4
|
import { CommonModule, DecimalPipe } from '@angular/common';
|
|
5
5
|
import { Pipe } from '@angular/core';
|
|
6
|
-
import {
|
|
6
|
+
import { Injectable } from '@angular/core';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@angular/common";
|
|
9
9
|
export class InputFormatDirective {
|
|
10
10
|
get noFormatting() {
|
|
11
|
-
return this.el?.dataset.noformat == 'true' ||
|
|
11
|
+
return this.el?.dataset.noformat == 'true' || this.inputFormatService.pageNoformat;
|
|
12
12
|
}
|
|
13
13
|
get noTextFormat() {
|
|
14
|
-
return
|
|
14
|
+
return this.el?.dataset.notextformat == 'true' || this.inputFormatService.pageNoTextFormat;
|
|
15
15
|
}
|
|
16
16
|
get isDebug() {
|
|
17
17
|
return this.el?.dataset.debug == 'true';
|
|
@@ -24,13 +24,11 @@ export class InputFormatDirective {
|
|
|
24
24
|
this.formatterService = formatterService;
|
|
25
25
|
this.decimalPipe = decimalPipe;
|
|
26
26
|
this.acceptedType = ['text', 'number', 'percentage'];
|
|
27
|
+
this.inputFormatService = inject(InputFormatService);
|
|
27
28
|
}
|
|
28
29
|
ngOnInit() {
|
|
29
30
|
this.el = this.elementRef.nativeElement;
|
|
30
|
-
this.oType =
|
|
31
|
-
this.el.dataset.otype == 'percentage'
|
|
32
|
-
? 'percentage'
|
|
33
|
-
: (this.el.type + '');
|
|
31
|
+
this.oType = this.el.dataset.otype == 'percentage' ? 'percentage' : (this.el.type + '');
|
|
34
32
|
if (!this.noFormatting) {
|
|
35
33
|
if (this.oType == 'number') {
|
|
36
34
|
this.el.type = 'text';
|
|
@@ -46,17 +44,13 @@ export class InputFormatDirective {
|
|
|
46
44
|
this.value = this._value;
|
|
47
45
|
}
|
|
48
46
|
ngAfterViewInit() {
|
|
49
|
-
if (this.el.dataset.otype == 'percentage' &&
|
|
50
|
-
!this.noFormatting &&
|
|
51
|
-
this.el.parentElement.classList.contains('position-relative')) {
|
|
47
|
+
if (this.el.dataset.otype == 'percentage' && !this.noFormatting && this.el.parentElement.classList.contains('position-relative')) {
|
|
52
48
|
// debugger
|
|
53
49
|
const icon = document.createElement('i');
|
|
54
50
|
icon.className = 'input-icon fa fa-percentage';
|
|
55
51
|
this.el.parentNode.insertBefore(icon, this.el);
|
|
56
52
|
}
|
|
57
|
-
else if (this.oType == 'number' &&
|
|
58
|
-
!this.noFormatting &&
|
|
59
|
-
this.el.parentElement.classList.contains('position-relative')) {
|
|
53
|
+
else if (this.oType == 'number' && !this.noFormatting && this.el.parentElement.classList.contains('position-relative')) {
|
|
60
54
|
const icon = document.createElement('i');
|
|
61
55
|
icon.className = 'input-icon fa fa-hashtag';
|
|
62
56
|
this.el.parentNode.insertBefore(icon, this.el);
|
|
@@ -210,8 +204,7 @@ export class InputFormatDirective {
|
|
|
210
204
|
this.elementRef.nativeElement.value = '';
|
|
211
205
|
return;
|
|
212
206
|
}
|
|
213
|
-
this.elementRef.nativeElement.value =
|
|
214
|
-
this.formatterService.toTitleCase(value);
|
|
207
|
+
this.elementRef.nativeElement.value = this.formatterService.toTitleCase(value);
|
|
215
208
|
}
|
|
216
209
|
/**
|
|
217
210
|
* Set new value on the HTML Input for the UI update
|
|
@@ -322,14 +315,8 @@ export class InputFormattersPipe {
|
|
|
322
315
|
this.THOUSANDS_SEPARATOR = ',';
|
|
323
316
|
}
|
|
324
317
|
transform(value, fractionSize = 2) {
|
|
325
|
-
let [integer, fraction = ''] = (value || '')
|
|
326
|
-
|
|
327
|
-
.split(this.DECIMAL_SEPARATOR);
|
|
328
|
-
fraction =
|
|
329
|
-
fractionSize > 0
|
|
330
|
-
? this.DECIMAL_SEPARATOR +
|
|
331
|
-
(fraction + PADDING).substring(0, fractionSize)
|
|
332
|
-
: '';
|
|
318
|
+
let [integer, fraction = ''] = (value || '').toString().split(this.DECIMAL_SEPARATOR);
|
|
319
|
+
fraction = fractionSize > 0 ? this.DECIMAL_SEPARATOR + (fraction + PADDING).substring(0, fractionSize) : '';
|
|
333
320
|
integer = integer.replace(/\B(?=(\d{3})+(?!\d))/g, this.THOUSANDS_SEPARATOR);
|
|
334
321
|
return integer + fraction;
|
|
335
322
|
}
|
|
@@ -342,9 +329,7 @@ export class InputFormattersPipe {
|
|
|
342
329
|
return +value.replace(/[^\d.-]/g, '');
|
|
343
330
|
}
|
|
344
331
|
toTitleCase(str) {
|
|
345
|
-
return (
|
|
346
|
-
?.toString()
|
|
347
|
-
.replace(/\w\S*/g, (txt) => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()) || '');
|
|
332
|
+
return str?.toString().replace(/\w\S*/g, (txt) => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()) || '';
|
|
348
333
|
}
|
|
349
334
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: InputFormattersPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
350
335
|
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: InputFormattersPipe, name: "inputFormatters" }); }
|
|
@@ -368,4 +353,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
|
|
|
368
353
|
providers: [DecimalPipe, InputFormattersPipe],
|
|
369
354
|
}]
|
|
370
355
|
}] });
|
|
371
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZm9ybWF0dGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvZGlyZWN0aXZlcy9pbnB1dC1mb3JtYXR0ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLElBQUksd0JBQXdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRixPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXBELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBaUJoRSxNQUFNLE9BQU8sb0JBQW9CO0lBRy9CLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsUUFBUSxJQUFJLE1BQU0sSUFBSSxXQUFXLENBQUMsWUFBWSxDQUFDO0lBQ3pFLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDZCxPQUFPLENBQ0wsSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsWUFBWSxJQUFJLE1BQU0sSUFBSSxXQUFXLENBQUMsZ0JBQWdCLENBQ3hFLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDO0lBQzFDLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxZQUFZLENB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LENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FDbkUsSUFBSSxFQUFFLENBQ1YsQ0FBQztJQUNKLENBQUM7OEdBL0NVLG1CQUFtQjs0R0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFOztBQW1EakMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBQ3JDLG9CQUFvQjtBQU1wQixNQUFNLE9BQU8sMkJBQTJCOzhHQUEzQiwyQkFBMkI7K0dBQTNCLDJCQUEyQixZQUo1QixZQUFZLEVBalZYLG9CQUFvQixhQUFwQixvQkFBb0I7K0dBcVZwQiwyQkFBMkIsYUFGM0IsQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLENBQUMsWUFGbkMsWUFBWTs7MkZBSVgsMkJBQTJCO2tCQUx2QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxHQUFHLEtBQUssQ0FBQztvQkFDakMsT0FBTyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7b0JBQ25CLFNBQVMsRUFBRSxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQztpQkFDOUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE5nTW9kdWxlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1BVF9JTlBVVF9WQUxVRV9BQ0NFU1NPUiBhcyBNQVRfSU5QVVRfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4uL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lucHV0Om5vdChbbWF0SW5wdXRdKTpub3QoW25vZm9ybWF0XSknLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBNQVRfSU5QVVRfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogSW5wdXRGb3JtYXREaXJlY3RpdmUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0Rm9ybWF0RGlyZWN0aXZlKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0Rm9ybWF0RGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwcml2YXRlIGVsOiBIVE1MSW5wdXRFbGVtZW50O1xuICBvVHlwZTogSW5wdXRUeXBlO1xuICBnZXQgbm9Gb3JtYXR0aW5nKCkge1xuICAgIHJldHVybiB0aGlzLmVsPy5kYXRhc2V0Lm5vZm9ybWF0ID09ICd0cnVlJyB8fCBlbnZpcm9ubWVudC5wYWdlTm9mb3JtYXQ7XG4gIH1cbiAgZ2V0IG5vVGV4dEZvcm1hdCgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5lbD8uZGF0YXNldC5ub3RleHRmb3JtYXQgPT0gJ3RydWUnIHx8IGVudmlyb25tZW50LnBhZ2VOb1RleHRGb3JtYXRcbiAgICApO1xuICB9XG4gIGdldCBpc0RlYnVnKCkge1xuICAgIHJldHVybiB0aGlzLmVsPy5kYXRhc2V0LmRlYnVnID09ICd0cnVlJztcbiAgfVxuICBnZXQgc2hvdWxkRm9ybWF0KCkge1xuICAgIHJldHVybiB0aGlzLmFjY2VwdGVkVHlwZS5pbmNsdWRlcyh0aGlzLm9UeXBlKTtcbiAgfVxuICByZWFkb25seSBhY2NlcHRlZFR5cGU6IElucHV0VHlwZVtdID0gWyd0ZXh0JywgJ251bWJlcicsICdwZXJjZW50YWdlJ107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgZm9ybWF0dGVyU2VydmljZTogSW5wdXRGb3JtYXR0ZXJzUGlwZSxcbiAgICBwcml2YXRlIGRlY2ltYWxQaXBlOiBEZWNpbWFsUGlwZSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZWwgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLm9UeXBlID1cbiAgICAgIHRoaXMuZWwuZGF0YXNldC5vdHlwZSA9PSAncGVyY2VudGFnZSdcbiAgICAgICAgPyAncGVyY2VudGFnZSdcbiAgICAgICAgOiAoKHRoaXMuZWwudHlwZSArICcnKSBhcyBhbnkpO1xuICAgIGlmICghdGhpcy5ub0Zvcm1hdHRpbmcpIHtcbiAgICAgIGlmICh0aGlzLm9UeXBlID09ICdudW1iZXInKSB7XG4gICAgICAgIHRoaXMuZWwudHlwZSA9ICd0ZXh0JztcbiAgICAgICAgdGhpcy5lbC52YWx1ZSA9IHRoaXMuZGVjaW1hbFBpcGUudHJhbnNmb3JtKFxuICAgICAgICAgIHRoaXMuZWwudmFsdWUucmVwbGFjZSgvW15cXGQuLV0vZywgJycpLFxuICAgICAgICAgICcxLjAtOScsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5vVHlwZSA9PSAncGVyY2VudGFnZScpIHtcbiAgICAgICAgdGhpcy5lbC50eXBlID0gJ3RleHQnO1xuICAgICAgICB0aGlzLmVsLnZhbHVlID0gdGhpcy5lbC52YWx1ZSA/IHRoaXMuZWwudmFsdWUgKyAnJScgOiAnMCUnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGRlYnVnZ2VyO1xuICAgIGlmICh0aGlzLl92YWx1ZSkgdGhpcy52YWx1ZSA9IHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuZWwuZGF0YXNldC5vdHlwZSA9PSAncGVyY2VudGFnZScgJiZcbiAgICAgICF0aGlzLm5vRm9ybWF0dGluZyAmJlxuICAgICAgdGhpcy5lbC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygncG9zaXRpb24tcmVsYXRpdmUnKVxuICAgICkge1xuICAgICAgLy8gZGVidWdnZXJcbiAgICAgIGNvbnN0IGljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpJyk7XG4gICAgICBpY29uLmNsYXNzTmFtZSA9ICdpbnB1dC1pY29uIGZhIGZhLXBlcmNlbnRhZ2UnO1xuICAgICAgdGhpcy5lbC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpY29uLCB0aGlzLmVsKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdGhpcy5vVHlwZSA9PSAnbnVtYmVyJyAmJlxuICAgICAgIXRoaXMubm9Gb3JtYXR0aW5nICYmXG4gICAgICB0aGlzLmVsLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdwb3NpdGlvbi1yZWxhdGl2ZScpXG4gICAgKSB7XG4gICAgICBjb25zdCBpY29uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaScpO1xuICAgICAgaWNvbi5jbGFzc05hbWUgPSAnaW5wdXQtaWNvbiBmYSBmYS1oYXNodGFnJztcbiAgICAgIHRoaXMuZWwucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaWNvbiwgdGhpcy5lbCk7XG4gICAgICAvLyB0aGlzLmVsLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncG9zaXRpb24tcmVsYXRpdmUnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMub1R5cGUgPT0gJ2NoZWNrYm94Jykge1xuICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAvLyB0aGlzLnZhbHVlID0gKHRoaXMuZWwuY2hlY2tlZCA9PSB0cnVlKSBhcyBhbnk7XG4gICAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5lbC5jaGVja2VkID09IHRydWUpO1xuICAgICAgdGhpcy5pbnB1dCh0aGlzLmVsLmNoZWNrZWQgPT0gdHJ1ZSk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbDtcblxuICBnZXQgdmFsdWUoKTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgndmFsdWUnKVxuICBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsKSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICBpZiAodGhpcy5pc0RlYnVnKSBkZWJ1Z2dlcjtcbiAgICBpZiAodGhpcy5ub0Zvcm1hdHRpbmcpIHRoaXMuc2V0SW5wdXQodmFsdWUgYXMgYW55KTtcbiAgICBlbHNlIGlmICh0aGlzLm9UeXBlID09ICdudW1iZXInKSB0aGlzLnNldE51bWJlcklucHV0KHZhbHVlIGFzIGFueSk7XG4gICAgZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAncGVyY2VudGFnZScpIHRoaXMuc2V0UGVyY2VudGFnZUlucHV0KHZhbHVlIGFzIGFueSk7XG4gICAgZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAndGV4dCcgJiYgIXRoaXMubm9UZXh0Rm9ybWF0KSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuZm9ybWF0dGVyU2VydmljZS50b1RpdGxlQ2FzZSh2YWx1ZSBhcyBhbnkpO1xuICAgICAgdGhpcy5zZXRUZXh0SW5wdXQodmFsdWUgYXMgYW55KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ2NoZWNrYm94Jykge1xuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZSA9PSB0cnVlIHx8IHZhbHVlID09ICd0cnVlJztcbiAgICAgIHRoaXMuc2V0Q2hlY2tib3hJbnB1dCh2YWx1ZSBhcyBhbnkpO1xuICAgIH0gZWxzZSB0aGlzLnNldElucHV0KHZhbHVlIGFzIGFueSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdpbnB1dCcsIFsnJGV2ZW50LnRhcmdldC52YWx1ZSddKVxuICBpbnB1dCh2YWx1ZSkge1xuICAgIC8vIGRlYnVnZ2VyXG4gICAgaWYgKHRoaXMuaXNEZWJ1ZykgZGVidWdnZXI7XG4gICAgaWYgKHRoaXMubm9Gb3JtYXR0aW5nICYmIHRoaXMub1R5cGUgIT0gJ2NoZWNrYm94JykgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICBlbHNlIGlmICh0aGlzLm9UeXBlID09ICd0ZXh0JyAmJiAhdGhpcy5ub1RleHRGb3JtYXQpXG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuZm9ybWF0dGVyU2VydmljZS50b1RpdGxlQ2FzZSh2YWx1ZSk7XG4gICAgZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAnY2hlY2tib3gnKSB0aGlzLl92YWx1ZSA9IHRoaXMuZWw/LmNoZWNrZWQgYXMgYW55O1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ251bWJlcicpXG4gICAgICBpZiAodGhpcy5pc0xhc3RDaGFyYWN0ZXJEZWNpbWFsU2VwYXJhdG9yKHZhbHVlKSkgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICAgIGVsc2UgdGhpcy5fdmFsdWUgPSB0aGlzLmZvcm1hdHRlclNlcnZpY2UucmVtb3ZlQ29tbWFzKHZhbHVlKTtcbiAgICBlbHNlIGlmICh0aGlzLm9UeXBlID09ICdwZXJjZW50YWdlJylcbiAgICAgIHRoaXMuX3ZhbHVlID0gU3RyaW5nKHZhbHVlKT8ucmVwbGFjZSgnJScsICcnKTtcbiAgICBlbHNlIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG5cbiAgICAvLyBoZXJlIHRvIG5vdGlmeSBBbmd1bGFyIFZhbGlkYXRvcnNcbiAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgX29uQmx1cigpIHtcbiAgICBpZiAodGhpcy5ub0Zvcm1hdHRpbmcpXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuX3ZhbHVlIHx8ICgnJyBhcyBhbnkpO1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ251bWJlcicpIHRoaXMuc2V0TnVtYmVySW5wdXQodGhpcy5fdmFsdWUgYXMgYW55KTtcbiAgICBlbHNlIGlmICh0aGlzLm9UeXBlID09ICdwZXJjZW50YWdlJylcbiAgICAgIHRoaXMuc2V0UGVyY2VudGFnZUlucHV0KHRoaXMuX3ZhbHVlIGFzIGFueSk7XG4gICAgZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAndGV4dCcgJiYgIXRoaXMubm9UZXh0Rm9ybWF0KVxuICAgICAgdGhpcy5lbC52YWx1ZSA9IHRoaXMuZm9ybWF0dGVyU2VydmljZS50b1RpdGxlQ2FzZSh0aGlzLl92YWx1ZSBhcyBhbnkpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICBvbkZvY3VzKCkge1xuICAgIGlmICh0aGlzLm5vRm9ybWF0dGluZykgcmV0dXJuO1xuICAgIGlmICh0aGlzLm9UeXBlID09ICdudW1iZXInKSB0aGlzLnVuRm9ybWF0TnVtYmVyKCk7XG4gICAgaWYgKHRoaXMub1R5cGUgPT0gJ3BlcmNlbnRhZ2UnKSB0aGlzLnVuRm9ybWF0UGVyY2VudGFnZSgpO1xuICB9XG5cbiAgX29uQ2hhbmdlKHZhbHVlOiBhbnkpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKiBhcHBseSBmb3JtYXR0aW5nIG9uIHZhbHVlIGFzc2lnbm1lbnRcbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLmlzRGVidWcpIGRlYnVnZ2VyO1xuICAgIGlmICh0aGlzLm5vRm9ybWF0dGluZykgdGhpcy5zZXRJbnB1dCh2YWx1ZSk7XG4gICAgZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAndGV4dCcgJiYgIXRoaXMubm9UZXh0Rm9ybWF0KSB7XG4gICAgICBpZiAodGhpcy5lbC5kaXNhYmxlZCkgdGhpcy5zZXRJbnB1dCh2YWx1ZSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLmZvcm1hdHRlclNlcnZpY2UudG9UaXRsZUNhc2UodmFsdWUpO1xuICAgICAgICB0aGlzLnNldFRleHRJbnB1dCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLm9UeXBlID09ICdudW1iZXInKSB0aGlzLnNldE51bWJlcklucHV0KHZhbHVlKTtcbiAgICBlbHNlIGlmICh0aGlzLm9UeXBlID09ICdwZXJjZW50YWdlJykgdGhpcy5zZXRQZXJjZW50YWdlSW5wdXQodmFsdWUpO1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ2NoZWNrYm94JylcbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB0aGlzLmlucHV0KGZhbHNlKTtcbiAgICAgIGVsc2UgdGhpcy5zZXRDaGVja2JveElucHV0KHZhbHVlIGFzIGFueSk7XG4gICAgZWxzZSB0aGlzLnNldElucHV0KHZhbHVlKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiB2b2lkKSB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKCkge31cblxuICBpc0xhc3RDaGFyYWN0ZXJEZWNpbWFsU2VwYXJhdG9yKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICByZXR1cm4gaXNOYU4oK3ZhbHVlPy50b1N0cmluZygpW3ZhbHVlPy50b1N0cmluZygpLmxlbmd0aCAtIDFdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXQgbnVtbWJlciBieSBhZGRpbmcgY29tbWFzXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJpdmF0ZSBzZXROdW1iZXJJbnB1dCh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCkge1xuICAgIGNvbnN0IHZhbCA9IHZhbHVlPy50b1N0cmluZygpLnJlcGxhY2UoL1teXFxkLi1dL2csICcnKTtcbiAgICBpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNMYXN0Q2hhcmFjdGVyRGVjaW1hbFNlcGFyYXRvcih2YWwpKSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gZGVidWdnZXJcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuZGVjaW1hbFBpcGUudHJhbnNmb3JtKFxuICAgICAgdmFsLFxuICAgICAgYDEuMC05YCxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCBudW1tYmVyIGJ5ICUgc2lnbiBhdCB0aGUgZW5kXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJpdmF0ZSBzZXRQZXJjZW50YWdlSW5wdXQodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwpIHtcbiAgICB0aGlzLnNldE51bWJlcklucHV0KHZhbHVlKTtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlXG4gICAgICA/IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlICsgJyUnXG4gICAgICA6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdCB0ZXh0IGJ5IG1ha2luZyBpdCBpbiB0aGUgdGl0bGUgY2FzZVxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICogQHJldHVybnNcbiAgICovXG4gIHByaXZhdGUgc2V0VGV4dElucHV0KHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID1cbiAgICAgIHRoaXMuZm9ybWF0dGVyU2VydmljZS50b1RpdGxlQ2FzZSh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IG5ldyB2YWx1ZSBvbiB0aGUgSFRNTCBJbnB1dCBmb3IgdGhlIFVJIHVwZGF0ZVxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICogQHJldHVybnNcbiAgICovXG4gIHByaXZhdGUgc2V0SW5wdXQodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLm9UeXBlID09ICdjaGVja2JveCcpIHRoaXMuc2V0Q2hlY2tib3hJbnB1dCh2YWx1ZSBhcyBhbnkpO1xuICAgIGVsc2Uge1xuICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbHVlIGFzIGFueTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IG5ldyB2YWx1ZSBvbiB0aGUgSFRNTCBJbnB1dCBDaGVja2JveCBmb3IgdGhlIFVJIHVwZGF0ZVxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICogQHJldHVybnNcbiAgICovXG4gIHByaXZhdGUgc2V0Q2hlY2tib3hJbnB1dCh2YWx1ZTogYm9vbGVhbiB8IG51bGwpIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGVja2VkID0gdmFsdWUgfHwgZmFsc2U7XG4gICAgaWYgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPT0gbnVsbCkgZGVidWdnZXI7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBjb21tYXMgZnJvbSB0aGUgbnVtYmVyc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJpdmF0ZSB1bkZvcm1hdE51bWJlcigpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIGlmICh0aGlzLmlzTGFzdENoYXJhY3RlckRlY2ltYWxTZXBhcmF0b3IodmFsdWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdmFsdWUgPSB0aGlzLmZvcm1hdHRlclNlcnZpY2UucmVtb3ZlQ29tbWFzKHZhbHVlKTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5fdmFsdWUgYXMgYW55O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgY29tbWFzIGZyb20gdGhlIG51bWJlcnNcbiAgICogQHJldHVybnNcbiAgICovXG4gIHByaXZhdGUgdW5Gb3JtYXRQZXJjZW50YWdlKCkge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWUuc2xpY2UoMCwgdmFsdWUubGVuZ3RoIC0gMSk7XG4gICAgdGhpcy51bkZvcm1hdE51bWJlcigpO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZSh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5kaXNhYmxlZCA9ICEhdmFsO1xuICAgIC8vIGRlYnVnZ2VyXG4gICAgLy8gdGhpcy5fb25CbHVyKClcbiAgfVxufVxuXG5jb25zdCBQQURESU5HID0gJzAwMDAwMCc7XG5cbkBQaXBlKHsgbmFtZTogJ2lucHV0Rm9ybWF0dGVycycgfSlcbmV4cG9ydCBjbGFzcyBJbnB1dEZvcm1hdHRlcnNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgREVDSU1BTF9TRVBBUkFUT1I6IHN0cmluZztcbiAgcHJpdmF0ZSBUSE9VU0FORFNfU0VQQVJBVE9SOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gVE9ETyBjb21lcyBmcm9tIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3NcbiAgICB0aGlzLkRFQ0lNQUxfU0VQQVJBVE9SID0gJy4nO1xuICAgIHRoaXMuVEhPVVNBTkRTX1NFUEFSQVRPUiA9ICcsJztcbiAgfVxuXG4gIHRyYW5zZm9ybSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBmcmFjdGlvblNpemU6IG51bWJlciA9IDIpOiBzdHJpbmcge1xuICAgIGxldCBbaW50ZWdlciwgZnJhY3Rpb24gPSAnJ10gPSAodmFsdWUgfHwgJycpXG4gICAgICAudG9TdHJpbmcoKVxuICAgICAgLnNwbGl0KHRoaXMuREVDSU1BTF9TRVBBUkFUT1IpO1xuXG4gICAgZnJhY3Rpb24gPVxuICAgICAgZnJhY3Rpb25TaXplID4gMFxuICAgICAgICA/IHRoaXMuREVDSU1BTF9TRVBBUkFUT1IgK1xuICAgICAgICAgIChmcmFjdGlvbiArIFBBRERJTkcpLnN1YnN0cmluZygwLCBmcmFjdGlvblNpemUpXG4gICAgICAgIDogJyc7XG5cbiAgICBpbnRlZ2VyID0gaW50ZWdlci5yZXBsYWNlKFxuICAgICAgL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csXG4gICAgICB0aGlzLlRIT1VTQU5EU19TRVBBUkFUT1IsXG4gICAgKTtcblxuICAgIHJldHVybiBpbnRlZ2VyICsgZnJhY3Rpb247XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBpbnB1dCB2YWx1ZSB0byBudW1iZXJcbiAgICogQHBhcmFtIHZhbHVlIElucHV0IHZhbHVlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICByZW1vdmVDb21tYXModmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiArdmFsdWUucmVwbGFjZSgvW15cXGQuLV0vZywgJycpO1xuICB9XG5cbiAgdG9UaXRsZUNhc2Uoc3RyOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiAoXG4gICAgICBzdHJcbiAgICAgICAgPy50b1N0cmluZygpXG4gICAgICAgIC5yZXBsYWNlKFxuICAgICAgICAgIC9cXHdcXFMqL2csXG4gICAgICAgICAgKHR4dCkgPT4gdHh0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdHh0LnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICApIHx8ICcnXG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBjb21wcyA9IFtJbnB1dEZvcm1hdERpcmVjdGl2ZV07XG4vLyBjb25zdCBjb21wcyA9IFtdO1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgLi4uY29tcHNdLFxuICBleHBvcnRzOiBbLi4uY29tcHNdLFxuICBwcm92aWRlcnM6IFtEZWNpbWFsUGlwZSwgSW5wdXRGb3JtYXR0ZXJzUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIElucHV0Rm9ybWF0RGlyZWN0aXZlc01vZHVsZSB7fVxuIl19
|
|
356
|
+
export class InputFormatService {
|
|
357
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: InputFormatService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
358
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: InputFormatService, providedIn: 'root' }); }
|
|
359
|
+
}
|
|
360
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: InputFormatService, decorators: [{
|
|
361
|
+
type: Injectable,
|
|
362
|
+
args: [{
|
|
363
|
+
providedIn: 'root',
|
|
364
|
+
}]
|
|
365
|
+
}] });
|
|
366
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZm9ybWF0dGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvZGlyZWN0aXZlcy9pbnB1dC1mb3JtYXR0ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLHdCQUF3QixJQUFJLHdCQUF3QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0YsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFpQjNDLE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUM7SUFDckYsQ0FBQztJQUNELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsWUFBWSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUM7SUFDN0YsQ0FBQztJQUNELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQztJQUMxQyxDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBQ2Qs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QyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNySCxDQUFDOzhHQS9CVSxtQkFBbUI7NEdBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTs7QUFtQ2pDLE1BQU0sS0FBSyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUNyQyxvQkFBb0I7QUFNcEIsTUFBTSxPQUFPLDJCQUEyQjs4R0FBM0IsMkJBQTJCOytHQUEzQiwyQkFBMkIsWUFKNUIsWUFBWSxFQTFTWCxvQkFBb0IsYUFBcEIsb0JBQW9COytHQThTcEIsMkJBQTJCLGFBRjNCLENBQUMsV0FBVyxFQUFFLG1CQUFtQixDQUFDLFlBRm5DLFlBQVk7OzJGQUlYLDJCQUEyQjtrQkFMdkMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxLQUFLLENBQUM7b0JBQ2pDLE9BQU8sRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO29CQUNuQixTQUFTLEVBQUUsQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLENBQUM7aUJBQzlDOztBQU1ELE1BQU0sT0FBTyxrQkFBa0I7OEdBQWxCLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCBJbnB1dCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1BVF9JTlBVVF9WQUxVRV9BQ0NFU1NPUiBhcyBNQVRfSU5QVVRfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4uL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lucHV0Om5vdChbbWF0SW5wdXRdKTpub3QoW25vZm9ybWF0XSknLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBNQVRfSU5QVVRfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogSW5wdXRGb3JtYXREaXJlY3RpdmUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0Rm9ybWF0RGlyZWN0aXZlKSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0Rm9ybWF0RGlyZWN0aXZlIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwcml2YXRlIGVsOiBIVE1MSW5wdXRFbGVtZW50O1xuICBvVHlwZTogSW5wdXRUeXBlO1xuICBnZXQgbm9Gb3JtYXR0aW5nKCkge1xuICAgIHJldHVybiB0aGlzLmVsPy5kYXRhc2V0Lm5vZm9ybWF0ID09ICd0cnVlJyB8fCB0aGlzLmlucHV0Rm9ybWF0U2VydmljZS5wYWdlTm9mb3JtYXQ7XG4gIH1cbiAgZ2V0IG5vVGV4dEZvcm1hdCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbD8uZGF0YXNldC5ub3RleHRmb3JtYXQgPT0gJ3RydWUnIHx8IHRoaXMuaW5wdXRGb3JtYXRTZXJ2aWNlLnBhZ2VOb1RleHRGb3JtYXQ7XG4gIH1cbiAgZ2V0IGlzRGVidWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWw/LmRhdGFzZXQuZGVidWcgPT0gJ3RydWUnO1xuICB9XG4gIGdldCBzaG91bGRGb3JtYXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWNjZXB0ZWRUeXBlLmluY2x1ZGVzKHRoaXMub1R5cGUpO1xuICB9XG4gIHJlYWRvbmx5IGFjY2VwdGVkVHlwZTogSW5wdXRUeXBlW10gPSBbJ3RleHQnLCAnbnVtYmVyJywgJ3BlcmNlbnRhZ2UnXTtcblxuICBwdWJsaWMgaW5wdXRGb3JtYXRTZXJ2aWNlID0gaW5qZWN0KElucHV0Rm9ybWF0U2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgZm9ybWF0dGVyU2VydmljZTogSW5wdXRGb3JtYXR0ZXJzUGlwZSxcbiAgICBwcml2YXRlIGRlY2ltYWxQaXBlOiBEZWNpbWFsUGlwZSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZWwgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLm9UeXBlID0gdGhpcy5lbC5kYXRhc2V0Lm90eXBlID09ICdwZXJjZW50YWdlJyA/ICdwZXJjZW50YWdlJyA6ICgodGhpcy5lbC50eXBlICsgJycpIGFzIGFueSk7XG4gICAgaWYgKCF0aGlzLm5vRm9ybWF0dGluZykge1xuICAgICAgaWYgKHRoaXMub1R5cGUgPT0gJ251bWJlcicpIHtcbiAgICAgICAgdGhpcy5lbC50eXBlID0gJ3RleHQnO1xuICAgICAgICB0aGlzLmVsLnZhbHVlID0gdGhpcy5kZWNpbWFsUGlwZS50cmFuc2Zvcm0odGhpcy5lbC52YWx1ZS5yZXBsYWNlKC9bXlxcZC4tXS9nLCAnJyksICcxLjAtOScpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMub1R5cGUgPT0gJ3BlcmNlbnRhZ2UnKSB7XG4gICAgICAgIHRoaXMuZWwudHlwZSA9ICd0ZXh0JztcbiAgICAgICAgdGhpcy5lbC52YWx1ZSA9IHRoaXMuZWwudmFsdWUgPyB0aGlzLmVsLnZhbHVlICsgJyUnIDogJzAlJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICBpZiAodGhpcy5fdmFsdWUpIHRoaXMudmFsdWUgPSB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbC5kYXRhc2V0Lm90eXBlID09ICdwZXJjZW50YWdlJyAmJiAhdGhpcy5ub0Zvcm1hdHRpbmcgJiYgdGhpcy5lbC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygncG9zaXRpb24tcmVsYXRpdmUnKSkge1xuICAgICAgLy8gZGVidWdnZXJcbiAgICAgIGNvbnN0IGljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpJyk7XG4gICAgICBpY29uLmNsYXNzTmFtZSA9ICdpbnB1dC1pY29uIGZhIGZhLXBlcmNlbnRhZ2UnO1xuICAgICAgdGhpcy5lbC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpY29uLCB0aGlzLmVsKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ251bWJlcicgJiYgIXRoaXMubm9Gb3JtYXR0aW5nICYmIHRoaXMuZWwucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ3Bvc2l0aW9uLXJlbGF0aXZlJykpIHtcbiAgICAgIGNvbnN0IGljb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpJyk7XG4gICAgICBpY29uLmNsYXNzTmFtZSA9ICdpbnB1dC1pY29uIGZhIGZhLWhhc2h0YWcnO1xuICAgICAgdGhpcy5lbC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpY29uLCB0aGlzLmVsKTtcbiAgICAgIC8vIHRoaXMuZWwucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdwb3NpdGlvbi1yZWxhdGl2ZScpO1xuICAgIH1cbiAgICBpZiAodGhpcy5vVHlwZSA9PSAnY2hlY2tib3gnKSB7XG4gICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgIC8vIHRoaXMudmFsdWUgPSAodGhpcy5lbC5jaGVja2VkID09IHRydWUpIGFzIGFueTtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLmVsLmNoZWNrZWQgPT0gdHJ1ZSk7XG4gICAgICB0aGlzLmlucHV0KHRoaXMuZWwuY2hlY2tlZCA9PSB0cnVlKTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsO1xuXG4gIGdldCB2YWx1ZSgpOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgQElucHV0KCd2YWx1ZScpXG4gIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIGlmICh0aGlzLmlzRGVidWcpIGRlYnVnZ2VyO1xuICAgIGlmICh0aGlzLm5vRm9ybWF0dGluZykgdGhpcy5zZXRJbnB1dCh2YWx1ZSBhcyBhbnkpO1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ251bWJlcicpIHRoaXMuc2V0TnVtYmVySW5wdXQodmFsdWUgYXMgYW55KTtcbiAgICBlbHNlIGlmICh0aGlzLm9UeXBlID09ICdwZXJjZW50YWdlJykgdGhpcy5zZXRQZXJjZW50YWdlSW5wdXQodmFsdWUgYXMgYW55KTtcbiAgICBlbHNlIGlmICh0aGlzLm9UeXBlID09ICd0ZXh0JyAmJiAhdGhpcy5ub1RleHRGb3JtYXQpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5mb3JtYXR0ZXJTZXJ2aWNlLnRvVGl0bGVDYXNlKHZhbHVlIGFzIGFueSk7XG4gICAgICB0aGlzLnNldFRleHRJbnB1dCh2YWx1ZSBhcyBhbnkpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAnY2hlY2tib3gnKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlID09IHRydWUgfHwgdmFsdWUgPT0gJ3RydWUnO1xuICAgICAgdGhpcy5zZXRDaGVja2JveElucHV0KHZhbHVlIGFzIGFueSk7XG4gICAgfSBlbHNlIHRoaXMuc2V0SW5wdXQodmFsdWUgYXMgYW55KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQudGFyZ2V0LnZhbHVlJ10pXG4gIGlucHV0KHZhbHVlKSB7XG4gICAgLy8gZGVidWdnZXJcbiAgICBpZiAodGhpcy5pc0RlYnVnKSBkZWJ1Z2dlcjtcbiAgICBpZiAodGhpcy5ub0Zvcm1hdHRpbmcgJiYgdGhpcy5vVHlwZSAhPSAnY2hlY2tib3gnKSB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ3RleHQnICYmICF0aGlzLm5vVGV4dEZvcm1hdCkgdGhpcy5fdmFsdWUgPSB0aGlzLmZvcm1hdHRlclNlcnZpY2UudG9UaXRsZUNhc2UodmFsdWUpO1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ2NoZWNrYm94JykgdGhpcy5fdmFsdWUgPSB0aGlzLmVsPy5jaGVja2VkIGFzIGFueTtcbiAgICBlbHNlIGlmICh0aGlzLm9UeXBlID09ICdudW1iZXInKVxuICAgICAgaWYgKHRoaXMuaXNMYXN0Q2hhcmFjdGVyRGVjaW1hbFNlcGFyYXRvcih2YWx1ZSkpIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICBlbHNlIHRoaXMuX3ZhbHVlID0gdGhpcy5mb3JtYXR0ZXJTZXJ2aWNlLnJlbW92ZUNvbW1hcyh2YWx1ZSk7XG4gICAgZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAncGVyY2VudGFnZScpIHRoaXMuX3ZhbHVlID0gU3RyaW5nKHZhbHVlKT8ucmVwbGFjZSgnJScsICcnKTtcbiAgICBlbHNlIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG5cbiAgICAvLyBoZXJlIHRvIG5vdGlmeSBBbmd1bGFyIFZhbGlkYXRvcnNcbiAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgX29uQmx1cigpIHtcbiAgICBpZiAodGhpcy5ub0Zvcm1hdHRpbmcpIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5fdmFsdWUgfHwgKCcnIGFzIGFueSk7XG4gICAgZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAnbnVtYmVyJykgdGhpcy5zZXROdW1iZXJJbnB1dCh0aGlzLl92YWx1ZSBhcyBhbnkpO1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ3BlcmNlbnRhZ2UnKSB0aGlzLnNldFBlcmNlbnRhZ2VJbnB1dCh0aGlzLl92YWx1ZSBhcyBhbnkpO1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ3RleHQnICYmICF0aGlzLm5vVGV4dEZvcm1hdCkgdGhpcy5lbC52YWx1ZSA9IHRoaXMuZm9ybWF0dGVyU2VydmljZS50b1RpdGxlQ2FzZSh0aGlzLl92YWx1ZSBhcyBhbnkpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICBvbkZvY3VzKCkge1xuICAgIGlmICh0aGlzLm5vRm9ybWF0dGluZykgcmV0dXJuO1xuICAgIGlmICh0aGlzLm9UeXBlID09ICdudW1iZXInKSB0aGlzLnVuRm9ybWF0TnVtYmVyKCk7XG4gICAgaWYgKHRoaXMub1R5cGUgPT0gJ3BlcmNlbnRhZ2UnKSB0aGlzLnVuRm9ybWF0UGVyY2VudGFnZSgpO1xuICB9XG5cbiAgX29uQ2hhbmdlKHZhbHVlOiBhbnkpOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKiBhcHBseSBmb3JtYXR0aW5nIG9uIHZhbHVlIGFzc2lnbm1lbnRcbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLmlzRGVidWcpIGRlYnVnZ2VyO1xuICAgIGlmICh0aGlzLm5vRm9ybWF0dGluZykgdGhpcy5zZXRJbnB1dCh2YWx1ZSk7XG4gICAgZWxzZSBpZiAodGhpcy5vVHlwZSA9PSAndGV4dCcgJiYgIXRoaXMubm9UZXh0Rm9ybWF0KSB7XG4gICAgICBpZiAodGhpcy5lbC5kaXNhYmxlZCkgdGhpcy5zZXRJbnB1dCh2YWx1ZSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLmZvcm1hdHRlclNlcnZpY2UudG9UaXRsZUNhc2UodmFsdWUpO1xuICAgICAgICB0aGlzLnNldFRleHRJbnB1dCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLm9UeXBlID09ICdudW1iZXInKSB0aGlzLnNldE51bWJlcklucHV0KHZhbHVlKTtcbiAgICBlbHNlIGlmICh0aGlzLm9UeXBlID09ICdwZXJjZW50YWdlJykgdGhpcy5zZXRQZXJjZW50YWdlSW5wdXQodmFsdWUpO1xuICAgIGVsc2UgaWYgKHRoaXMub1R5cGUgPT0gJ2NoZWNrYm94JylcbiAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB0aGlzLmlucHV0KGZhbHNlKTtcbiAgICAgIGVsc2UgdGhpcy5zZXRDaGVja2JveElucHV0KHZhbHVlIGFzIGFueSk7XG4gICAgZWxzZSB0aGlzLnNldElucHV0KHZhbHVlKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiB2b2lkKSB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKCkge31cblxuICBpc0xhc3RDaGFyYWN0ZXJEZWNpbWFsU2VwYXJhdG9yKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICByZXR1cm4gaXNOYU4oK3ZhbHVlPy50b1N0cmluZygpW3ZhbHVlPy50b1N0cmluZygpLmxlbmd0aCAtIDFdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JtYXQgbnVtbWJlciBieSBhZGRpbmcgY29tbWFzXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJpdmF0ZSBzZXROdW1iZXJJbnB1dCh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCkge1xuICAgIGNvbnN0IHZhbCA9IHZhbHVlPy50b1N0cmluZygpLnJlcGxhY2UoL1teXFxkLi1dL2csICcnKTtcbiAgICBpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNMYXN0Q2hhcmFjdGVyRGVjaW1hbFNlcGFyYXRvcih2YWwpKSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gZGVidWdnZXJcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuZGVjaW1hbFBpcGUudHJhbnNmb3JtKHZhbCwgYDEuMC05YCk7XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IG51bW1iZXIgYnkgJSBzaWduIGF0IHRoZSBlbmRcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcml2YXRlIHNldFBlcmNlbnRhZ2VJbnB1dCh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCkge1xuICAgIHRoaXMuc2V0TnVtYmVySW5wdXQodmFsdWUpO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWVcbiAgICAgID8gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgKyAnJSdcbiAgICAgIDogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IHRleHQgYnkgbWFraW5nIGl0IGluIHRoZSB0aXRsZSBjYXNlXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJpdmF0ZSBzZXRUZXh0SW5wdXQodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmZvcm1hdHRlclNlcnZpY2UudG9UaXRsZUNhc2UodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBuZXcgdmFsdWUgb24gdGhlIEhUTUwgSW5wdXQgZm9yIHRoZSBVSSB1cGRhdGVcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcml2YXRlIHNldElucHV0KHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsKSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5vVHlwZSA9PSAnY2hlY2tib3gnKSB0aGlzLnNldENoZWNrYm94SW5wdXQodmFsdWUgYXMgYW55KTtcbiAgICBlbHNlIHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZSBhcyBhbnk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBuZXcgdmFsdWUgb24gdGhlIEhUTUwgSW5wdXQgQ2hlY2tib3ggZm9yIHRoZSBVSSB1cGRhdGVcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcml2YXRlIHNldENoZWNrYm94SW5wdXQodmFsdWU6IGJvb2xlYW4gfCBudWxsKSB7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHZhbHVlIHx8IGZhbHNlO1xuICAgIGlmICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jaGVja2VkID09IG51bGwpIGRlYnVnZ2VyO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgY29tbWFzIGZyb20gdGhlIG51bWJlcnNcbiAgICogQHJldHVybnNcbiAgICovXG4gIHByaXZhdGUgdW5Gb3JtYXROdW1iZXIoKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICBpZiAodGhpcy5pc0xhc3RDaGFyYWN0ZXJEZWNpbWFsU2VwYXJhdG9yKHZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5mb3JtYXR0ZXJTZXJ2aWNlLnJlbW92ZUNvbW1hcyh2YWx1ZSk7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuX3ZhbHVlIGFzIGFueTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGNvbW1hcyBmcm9tIHRoZSBudW1iZXJzXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcml2YXRlIHVuRm9ybWF0UGVyY2VudGFnZSgpIHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbHVlLnNsaWNlKDAsIHZhbHVlLmxlbmd0aCAtIDEpO1xuICAgIHRoaXMudW5Gb3JtYXROdW1iZXIoKTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUodmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQgPSAhIXZhbDtcbiAgICAvLyBkZWJ1Z2dlclxuICAgIC8vIHRoaXMuX29uQmx1cigpXG4gIH1cbn1cblxuY29uc3QgUEFERElORyA9ICcwMDAwMDAnO1xuXG5AUGlwZSh7IG5hbWU6ICdpbnB1dEZvcm1hdHRlcnMnIH0pXG5leHBvcnQgY2xhc3MgSW5wdXRGb3JtYXR0ZXJzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIERFQ0lNQUxfU0VQQVJBVE9SOiBzdHJpbmc7XG4gIHByaXZhdGUgVEhPVVNBTkRTX1NFUEFSQVRPUjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIFRPRE8gY29tZXMgZnJvbSBjb25maWd1cmF0aW9uIHNldHRpbmdzXG4gICAgdGhpcy5ERUNJTUFMX1NFUEFSQVRPUiA9ICcuJztcbiAgICB0aGlzLlRIT1VTQU5EU19TRVBBUkFUT1IgPSAnLCc7XG4gIH1cblxuICB0cmFuc2Zvcm0odmFsdWU6IG51bWJlciB8IHN0cmluZywgZnJhY3Rpb25TaXplOiBudW1iZXIgPSAyKTogc3RyaW5nIHtcbiAgICBsZXQgW2ludGVnZXIsIGZyYWN0aW9uID0gJyddID0gKHZhbHVlIHx8ICcnKS50b1N0cmluZygpLnNwbGl0KHRoaXMuREVDSU1BTF9TRVBBUkFUT1IpO1xuXG4gICAgZnJhY3Rpb24gPSBmcmFjdGlvblNpemUgPiAwID8gdGhpcy5ERUNJTUFMX1NFUEFSQVRPUiArIChmcmFjdGlvbiArIFBBRERJTkcpLnN1YnN0cmluZygwLCBmcmFjdGlvblNpemUpIDogJyc7XG5cbiAgICBpbnRlZ2VyID0gaW50ZWdlci5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCB0aGlzLlRIT1VTQU5EU19TRVBBUkFUT1IpO1xuXG4gICAgcmV0dXJuIGludGVnZXIgKyBmcmFjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGlucHV0IHZhbHVlIHRvIG51bWJlclxuICAgKiBAcGFyYW0gdmFsdWUgSW5wdXQgdmFsdWVcbiAgICogQHJldHVybnNcbiAgICovXG4gIHJlbW92ZUNvbW1hcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuICt2YWx1ZS5yZXBsYWNlKC9bXlxcZC4tXS9nLCAnJyk7XG4gIH1cblxuICB0b1RpdGxlQ2FzZShzdHI6IHN0cmluZyB8IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0cj8udG9TdHJpbmcoKS5yZXBsYWNlKC9cXHdcXFMqL2csICh0eHQpID0+IHR4dC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHR4dC5zdWJzdHIoMSkudG9Mb3dlckNhc2UoKSkgfHwgJyc7XG4gIH1cbn1cblxuY29uc3QgY29tcHMgPSBbSW5wdXRGb3JtYXREaXJlY3RpdmVdO1xuLy8gY29uc3QgY29tcHMgPSBbXTtcbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIC4uLmNvbXBzXSxcbiAgZXhwb3J0czogWy4uLmNvbXBzXSxcbiAgcHJvdmlkZXJzOiBbRGVjaW1hbFBpcGUsIElucHV0Rm9ybWF0dGVyc1BpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dEZvcm1hdERpcmVjdGl2ZXNNb2R1bGUge31cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0Rm9ybWF0U2VydmljZSB7XG4gIC8qKiBEb24ndCB1c2UgdGhlIGlucHV0IGZvcm1hdHR0ZXIgb24gdGhpcyBwYWdlICovXG4gIHBhZ2VOb2Zvcm1hdDogYm9vbGVhbjtcbiAgLyoqIERvbid0IHVzZSB0aGUgaW5wdXQgZm9ybWF0dHRlciBmb3IgdGV4dCBpbnB1dHMgb24gdGhpcyBwYWdlICovXG4gIHBhZ2VOb1RleHRGb3JtYXQ6IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -78,4 +78,4 @@ export class Environment extends SDKEnvironment {
|
|
|
78
78
|
this._targetLanguage = value;
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL21vZGVscy9lbnZpcm9ubWVudC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHMUQsT0FBTyxFQUEwQixTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFN0UsTUFBTSxPQUFnQixjQUFjO0lBb0VsQyxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxDQUFVO1FBQ3BCLElBQUksQ0FBQztZQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7O1lBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUNELFlBQ1MsVUFBbUIsRUFDMUIsSUFBWTtRQURMLGVBQVUsR0FBVixVQUFVLENBQVM7UUF2RTVCLGtCQUFhLEdBQXFCLElBQUksR0FBRyxDQUFjLEVBQUUsQ0FBQyxDQUFDO1FBTTNEOztXQUVHO1FBQ00sNkJBQXdCLEdBQUcsZ0JBQWdCLENBQUM7UUFDckQ7O1dBRUc7UUFDTSxrQ0FBNkIsR0FBRyxxQkFBcUIsQ0FBQztRQVV0RCxzQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUVyQyxpQkFBWSxHQUFHLFdBQVcsQ0FBQztRQUMzQix5QkFBb0IsR0FBRyxtQkFBbUIsQ0FBQztRQUMzQyxnQkFBVyxHQUFHLFVBQVUsQ0FBQztRQUdsQyxlQUFVLEdBQXNDLGNBQWMsQ0FBQztRQU8vRDs7V0FFRztRQUNILG1CQUFjLEdBQWtCLElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFHdEUsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFLbkIsZUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDOUIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFHUixZQUFPLEdBQUcsTUFBTSxDQUFDO1FBRTFCLFlBQU8sR0FBVyxXQUFXLENBQUM7UUFHckIsYUFBUSxHQUFHLGlDQUFpQyxDQUFDO1FBQzdDLG1CQUFjLEdBQUcsYUFBYSxDQUFDO1FBQy9CLG1CQUFjLEdBQUcsTUFBTSxDQUFDO1FBRWpDLG1CQUFjLEdBQVcsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQWFwQyxJQUFJLENBQUMsVUFBVTtZQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJO1lBQUUsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLElBQUksSUFBSSxDQUFDO0lBQzFFLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxLQUFjO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFJLGNBQWMsQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFDRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsR0FBUTtRQUNiLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQUNELE1BQU0sT0FBTyxXQUFZLFNBQVEsY0FBYztJQVE3QyxZQUNTLFVBQW1CLEVBQzFCLElBQVk7UUFFWixLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBSGpCLGVBQVUsR0FBVixVQUFVLENBQVM7UUFINUIsbUJBQWMsR0FBYyxTQUFTLENBQUMsRUFBRSxDQUFDO0lBT3pDLENBQUM7SUFHRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFJLGNBQWMsQ0FBQyxLQUFnQjtRQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQYWdlTG9hZGVyIH0gZnJvbSAnLi4vY2xhc3Nlcy9wYWdlLWxvYWRlci5jbGFzcyc7XG5pbXBvcnQgeyBFVFNNZW51SXRlbSB9IGZyb20gJy4vSU1lbnVJdGVtJztcbmltcG9ydCB7IEFwcFJvdXRlQmFzZSB9IGZyb20gJy4vUm91dGVJdGVtLmNsYXNzJztcbmltcG9ydCB7IElDb25maWdJbWFnZXMsIEVTeXN0ZW0sIEVMYW5ndWFnZSwgRU1lbnVUeXBlIH0gZnJvbSAnLi9pbmRleC5tb2RlbCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTREtFbnZpcm9ubWVudCB7XG4gIGFwcFJvdXRlcz86IGFueTtcbiAgYWN0aXZlU3lzdGVtczogYW55W107XG4gIGJvdHRvbU1lbnU6IGFueVtdO1xuICBjdXJyZW50U3lzdGVtOiBhbnk7XG4gIGV4Y2x1ZGVkTWVudXM6IE1hcDxzdHJpbmcsIGFueT4gPSBuZXcgTWFwPHN0cmluZywgYW55PihbXSk7XG4gIGxvZ1JlcTogYm9vbGVhbjtcbiAgbWVudXM6IGFueVtdO1xuICBub1VzZXJSb2xlQ2hlY2s6IGJvb2xlYW47IFxuICBwYWdlVGl0bGU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHN0b3JhZ2Uga2V5IGZvciB0aGUgbGFzdCB0aW1lc3RhbXAgYW4gdXBkYXRlIHdhcyBmb3VuZFxuICAgKi9cbiAgcmVhZG9ubHkgbGFzdFVwZGF0ZVRpbWVTdG9yYWdlS2V5ID0gJ2xhc3RVcGRhdGVUaW1lJztcbiAgLyoqXG4gICAqIFRoZSBzdG9yYWdlIGtleSBmb3IgdGhlIGxhc3QgdGltZXN0YW1wIGFuIHVwZGF0ZSB3YXMgY2hlY2tlZFxuICAgKi9cbiAgcmVhZG9ubHkgbGFzdFVwZGF0ZUNoZWNrVGltZVN0b3JhZ2VLZXkgPSAnbGFzdFVwZGF0ZUNoZWNrVGltZSc7XG4gIC8qKlxuICAgKiBMYXN0IHRpbWVzdGFtcCBhbiB1cGRhdGUgd2FzIGZvdW5kXG4gICAqL1xuICBsYXN0VXBkYXRlVGltZTogbnVtYmVyO1xuICAvKipcbiAgICogTGFzdCB0aW1lc3RhbXAgYW4gdXBkYXRlIHdhcyBjaGVja2VkXG4gICAqL1xuICBsYXN0VXBkYXRlQ2hlY2tUaW1lOiBudW1iZXI7XG4gIGltYWdlczogSUNvbmZpZ0ltYWdlcztcbiAgcmVhZG9ubHkgdGFyZ2V0TGFuZ3VhZ2VLZXkgPSAndGFyZ2V0TGFuZ3VhZ2UnO1xuICByZWFkb25seSB0cmFuc0dsb3NzYXJ5S2V5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRyYW5zbGF0ZUtleSA9ICd0cmFuc2xhdGUnO1xuICByZWFkb25seSB1c2VyQ29tcGFueUNvbmZpZ0tleSA9ICd1c2VyQ29tcGFueUNvbmZpZyc7XG4gIHJlYWRvbmx5IHVzZXJNZW51S2V5ID0gJ3VzZXJNZW51JztcbiAgc2luZ2xlVGFiVXNhZ2U6IGJvb2xlYW47XG4gIGxvZ0FjdGl2aXRpZXM6IGJvb2xlYW47XG4gIHN0b3JhZ2VLZXk6ICdsb2NhbFN0b3JhZ2UnIHwgJ3Nlc3Npb25TdG9yYWdlJyA9ICdsb2NhbFN0b3JhZ2UnO1xuICB0cmFuc0dsb3NzYXJ5OiBhbnk7XG4gIHVzZXJDb21wYW55Q29uZmlnOiBhbnk7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IHdoZXRoZXIgdG8gdXNlIGNvbnRhaW5lciBvciBjb250YWluZXItZmx1aWQgZm9yIHRoZSBib2R5IG9mIHRoZSB2aWV3LiBJdCBzaG91bGQgYmUgdW5zZXQgYXQgdGhlIG5nT25EZXN0cm95IGZ1bmN0aW9uXG4gICAqL1xuICB3aWRlU2NyZWVuOiBib29sZWFuO1xuICAvKipcbiAgICogRW50ZXIgdmFsdWUgaW4gbWlsbGlzZWNvbmQgb3IgRGF0ZSBvYmplY3RcbiAgICovXG4gIHJlcXVlc3RUaW1lb3V0OiBudW1iZXIgfCBEYXRlID0gbmV3IERhdGUoODY0MDAwMDAgKiAzNjUgKyBEYXRlLm5vdygpKTtcbiAgYWxyZWFkeU9wZW5lZDogYm9vbGVhbjtcbiAgdXNlQnVzbGluZTogYW55O1xuICB1c2VVc2VyTWVudSA9IHRydWU7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IGFkZGl0aW9uYWwgY2xhc3MoZXMpIHRvIGJlIGFkZGVkIHRvIHRoZSBib2R5IG9mIHRoZSB2aWV3LiBJdCBzaG91bGQgYmUgdW5zZXQgYXQgdGhlIG5nT25EZXN0cm95IGZ1bmN0aW9uXG4gICAqL1xuICBib2R5Q2xhc3M6IHN0cmluZztcbiAgcGFnZUxvYWRlciA9IG5ldyBQYWdlTG9hZGVyKCk7XG4gIHJlcXVlc3RDb3VudCA9IDA7XG4gIHVzaW5nQWN0aXZlRGlyZWN0b3J5OiBib29sZWFuO1xuICBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGU7XG4gIHJlYWRvbmx5IGxvZ3NLZXkgPSAnbG9ncyc7XG4gIGFwaUJhc2VVcmw/OiBzdHJpbmc7XG4gIGFwcE5hbWU6IHN0cmluZyA9ICdFdm9sdXRpY3MnO1xuICBhdXRoZW50aWNhdGU/OiBib29sZWFuO1xuICBkZWJ1Zz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGhlbHBMaW5rID0gJ2h0dHBzOi8vaGVscC5ldm9sdXRpY3N0ZWNoLmNvbS8nO1xuICByZWFkb25seSB1c2VyUHJvZmlsZUtleSA9ICd1c2VyUHJvZmlsZSc7XG4gIHJlYWRvbmx5IHVzZXJTdG9yYWdlS2V5ID0gJ3VzZXInO1xuICByZWFkb25seSB3YXRlcm1hcms/OiBzdHJpbmc7XG4gIHNvdXJjZUxhbmd1YWdlOiBzdHJpbmcgPSBFTGFuZ3VhZ2UuRU47XG4gIHNlY3JldEtleTogc3RyaW5nO1xuICBnZXQgdG9rZW4oKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgc2V0IGxvYWRpbmcodjogYm9vbGVhbikge1xuICAgIGlmICh2KSB0aGlzLnBhZ2VMb2FkZXIuc3RhcnRQbCgpO1xuICAgIGVsc2UgdGhpcy5wYWdlTG9hZGVyLnN0b3BQbCgpO1xuICB9XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBwcm9kdWN0aW9uOiBib29sZWFuLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgKSB7XG4gICAgaWYgKCFwcm9kdWN0aW9uKSB0aGlzLmRlYnVnID0gdHJ1ZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIGlmICh0aGlzLmxvZ0FjdGl2aXRpZXMgPT0gbnVsbCkgdGhpcy5sb2dBY3Rpdml0aWVzID0gcHJvZHVjdGlvbiA9PSB0cnVlO1xuICB9XG4gIHByb3RlY3RlZCBfdHJhbnNsYXRlPzogYm9vbGVhbjtcbiAgZ2V0IHRyYW5zbGF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlIHx8IGZhbHNlO1xuICB9XG4gIHNldCB0cmFuc2xhdGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl90cmFuc2xhdGUgPSB2YWx1ZTtcbiAgfVxuICBfdGFyZ2V0TGFuZ3VhZ2U/OiBzdHJpbmc7XG4gIGdldCB0YXJnZXRMYW5ndWFnZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90YXJnZXRMYW5ndWFnZTtcbiAgfVxuICBzZXQgdGFyZ2V0TGFuZ3VhZ2UodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3RhcmdldExhbmd1YWdlID0gdmFsdWU7XG4gIH1cbiAgLyoqXG4gICAqIFJlaW5pdGlhbGlzZSB0aGUgZW52aXJvbm1lbnQgb2JqZWN0XG4gICAqIEBwYXJhbSBlbnYgTmV3IEVudmlyb25tZW50IG9iamVjdCB0byB1c2UgdG8gcmVzZXN0IHRoaXMgb2JqZWN0XG4gICAqL1xuICByZWluaXQoZW52OiBhbnkpIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGVudik7XG4gIH1cbn1cbmV4cG9ydCBjbGFzcyBFbnZpcm9ubWVudCBleHRlbmRzIFNES0Vudmlyb25tZW50IHtcbiAgYWN0aXZlU3lzdGVtczogRVN5c3RlbVtdO1xuICBhcHBSb3V0ZXM6IEFwcFJvdXRlQmFzZTtcbiAgYm90dG9tTWVudTogRVRTTWVudUl0ZW1bXTtcbiAgbWVudXM6IEVUU01lbnVJdGVtW107XG4gIGN1cnJlbnRTeXN0ZW06IEVTeXN0ZW07XG4gIHNvdXJjZUxhbmd1YWdlOiBFTGFuZ3VhZ2UgPSBFTGFuZ3VhZ2UuRU47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHByb2R1Y3Rpb246IGJvb2xlYW4sXG4gICAgbmFtZTogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcihwcm9kdWN0aW9uLCBuYW1lKTtcbiAgfVxuXG4gIF90YXJnZXRMYW5ndWFnZT86IEVMYW5ndWFnZTtcbiAgZ2V0IHRhcmdldExhbmd1YWdlKCk6IEVMYW5ndWFnZSB7XG4gICAgcmV0dXJuIHRoaXMuX3RhcmdldExhbmd1YWdlO1xuICB9XG4gIHNldCB0YXJnZXRMYW5ndWFnZSh2YWx1ZTogRUxhbmd1YWdlKSB7XG4gICAgdGhpcy5fdGFyZ2V0TGFuZ3VhZ2UgPSB2YWx1ZTtcbiAgfVxufVxuIl19
|