valtech-components 4.0.980 → 4.0.982
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/components/atoms/avatar/avatar.component.mjs +3 -3
- package/esm2022/lib/components/atoms/box/box.component.mjs +3 -3
- package/esm2022/lib/components/atoms/button/button.component.mjs +3 -3
- package/esm2022/lib/components/atoms/display/display.component.mjs +3 -3
- package/esm2022/lib/components/atoms/divider/divider.component.mjs +3 -3
- package/esm2022/lib/components/atoms/emoji-rating/emoji-rating.component.mjs +89 -0
- package/esm2022/lib/components/atoms/emoji-rating/types.mjs +11 -0
- package/esm2022/lib/components/atoms/href/href.component.mjs +3 -3
- package/esm2022/lib/components/atoms/icon/icon.component.mjs +3 -3
- package/esm2022/lib/components/atoms/image/image.component.mjs +3 -3
- package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +3 -3
- package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +3 -3
- package/esm2022/lib/components/atoms/text/text.component.mjs +3 -3
- package/esm2022/lib/components/atoms/title/title.component.mjs +3 -3
- package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +3 -3
- package/esm2022/lib/components/molecules/button-group/button-group.component.mjs +3 -3
- package/esm2022/lib/components/molecules/card/card.component.mjs +3 -3
- package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +3 -3
- package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +3 -3
- package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +3 -3
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +3 -3
- package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +3 -3
- package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +3 -3
- package/esm2022/lib/components/molecules/hint/hint.component.mjs +3 -3
- package/esm2022/lib/components/molecules/layered-card/layered-card.component.mjs +3 -3
- package/esm2022/lib/components/molecules/link/link.component.mjs +3 -3
- package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +3 -3
- package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +3 -3
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/pill/pill.component.mjs +3 -3
- package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +3 -3
- package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +3 -3
- package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +3 -3
- package/esm2022/lib/components/molecules/rating/rating.component.mjs +3 -3
- package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +3 -3
- package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +3 -3
- package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/title-block/title-block.component.mjs +3 -3
- package/esm2022/lib/components/organisms/article/article.component.mjs +3 -3
- package/esm2022/lib/components/organisms/banner/banner.component.mjs +3 -3
- package/esm2022/lib/components/organisms/code-validator/code-validator.component.mjs +55 -53
- package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +3 -3
- package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +3 -3
- package/esm2022/lib/components/organisms/form/form.component.mjs +3 -3
- package/esm2022/lib/components/organisms/header/header.component.mjs +3 -3
- package/esm2022/lib/components/organisms/item-list/item-list.component.mjs +3 -3
- package/esm2022/lib/components/organisms/no-content/no-content.component.mjs +3 -3
- package/esm2022/lib/components/organisms/survey-builder/survey-builder.component.mjs +339 -0
- package/esm2022/lib/components/organisms/survey-builder/survey-builder.i18n.mjs +39 -0
- package/esm2022/lib/components/organisms/survey-builder/types.mjs +2 -0
- package/esm2022/lib/components/organisms/survey-response/survey-response.component.mjs +325 -0
- package/esm2022/lib/components/organisms/survey-response/survey-response.i18n.mjs +39 -0
- package/esm2022/lib/components/organisms/survey-response/types.mjs +2 -0
- package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +3 -3
- package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +3 -3
- package/esm2022/lib/components/templates/simple/simple.component.mjs +3 -3
- package/esm2022/lib/services/qr-generator/types.mjs +12 -1
- package/esm2022/lib/services/requests/request.service.mjs +19 -2
- package/esm2022/lib/services/requests/types.mjs +8 -1
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +7 -1
- package/fesm2022/valtech-components.mjs +1228 -386
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/emoji-rating/emoji-rating.component.d.ts +25 -0
- package/lib/components/atoms/emoji-rating/types.d.ts +22 -0
- package/lib/components/organisms/code-validator/code-validator.component.d.ts +8 -1
- package/lib/components/organisms/survey-builder/survey-builder.component.d.ts +43 -0
- package/lib/components/organisms/survey-builder/survey-builder.i18n.d.ts +2 -0
- package/lib/components/organisms/survey-builder/types.d.ts +28 -0
- package/lib/components/organisms/survey-response/survey-response.component.d.ts +68 -0
- package/lib/components/organisms/survey-response/survey-response.i18n.d.ts +2 -0
- package/lib/components/organisms/survey-response/types.d.ts +7 -0
- package/lib/services/qr-generator/types.d.ts +11 -0
- package/lib/services/requests/request.service.d.ts +7 -0
- package/lib/services/requests/types.d.ts +34 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +6 -0
- package/src/lib/components/styles/variables.scss +15 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, EventEmitter, Input, Output, computed, inject, signal
|
|
2
|
+
import { Component, EventEmitter, Input, Output, computed, inject, signal } from '@angular/core';
|
|
3
3
|
import { FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
4
4
|
import { IonButton, IonIcon, IonSpinner } from '@ionic/angular/standalone';
|
|
5
5
|
import { addIcons } from 'ionicons';
|
|
@@ -58,6 +58,13 @@ export class CodeValidatorComponent {
|
|
|
58
58
|
}
|
|
59
59
|
constructor() {
|
|
60
60
|
this.props = {};
|
|
61
|
+
/**
|
|
62
|
+
* Se emite apenas se lee un código, ANTES de invocar `validate`. Sirve para
|
|
63
|
+
* lo que no depende del resultado: analítica de intento de escaneo, o que
|
|
64
|
+
* el producto decida su propia estrategia de reintento alrededor de
|
|
65
|
+
* `validate` sin que el componente sepa de HTTP.
|
|
66
|
+
*/
|
|
67
|
+
this.scanned = new EventEmitter();
|
|
61
68
|
this.validated = new EventEmitter();
|
|
62
69
|
this.closed = new EventEmitter();
|
|
63
70
|
this.i18n = inject(I18nService);
|
|
@@ -153,6 +160,7 @@ export class CodeValidatorComponent {
|
|
|
153
160
|
// partida doble.
|
|
154
161
|
if (this.busy() && this.inFlight === value)
|
|
155
162
|
return;
|
|
163
|
+
this.scanned.emit(value);
|
|
156
164
|
this.clearTimer();
|
|
157
165
|
this.inFlight = value;
|
|
158
166
|
this.busy.set(true);
|
|
@@ -200,7 +208,7 @@ export class CodeValidatorComponent {
|
|
|
200
208
|
}
|
|
201
209
|
}
|
|
202
210
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CodeValidatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
203
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CodeValidatorComponent, isStandalone: true, selector: "val-code-validator", inputs: { props: "props", validate: "validate", _modalRef: "_modalRef" }, outputs: { validated: "validated", closed: "closed" }, ngImport: i0, template: `
|
|
211
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CodeValidatorComponent, isStandalone: true, selector: "val-code-validator", inputs: { props: "props", validate: "validate", _modalRef: "_modalRef" }, outputs: { scanned: "scanned", validated: "validated", closed: "closed" }, ngImport: i0, template: `
|
|
204
212
|
<div class="cv">
|
|
205
213
|
<header class="cv__bar">
|
|
206
214
|
<div class="cv__title">
|
|
@@ -238,10 +246,7 @@ export class CodeValidatorComponent {
|
|
|
238
246
|
</header>
|
|
239
247
|
|
|
240
248
|
<div class="cv__stage">
|
|
241
|
-
<val-qr-scanner
|
|
242
|
-
[props]="scannerProps()"
|
|
243
|
-
(scanned)="onScanned($event)"
|
|
244
|
-
/>
|
|
249
|
+
<val-qr-scanner [props]="scannerProps()" (scanned)="onScanned($event)" />
|
|
245
250
|
|
|
246
251
|
<!-- El resultado tapa la cámara a propósito: es lo único que importa
|
|
247
252
|
en ese segundo, y volver a escanear es automático. -->
|
|
@@ -252,26 +257,26 @@ export class CodeValidatorComponent {
|
|
|
252
257
|
</div>
|
|
253
258
|
} @else {
|
|
254
259
|
@if (current(); as r) {
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
260
|
+
<div class="cv__flash" [attr.data-tone]="r.tone" role="status">
|
|
261
|
+
<ion-icon class="cv__flash-icon" [name]="iconFor(r.tone)" />
|
|
262
|
+
<p class="cv__flash-title">{{ r.title }}</p>
|
|
263
|
+
@if (r.detail) {
|
|
264
|
+
<p class="cv__flash-detail">{{ r.detail }}</p>
|
|
265
|
+
}
|
|
266
|
+
@if (r.meta?.length) {
|
|
267
|
+
<dl class="cv__meta">
|
|
268
|
+
@for (m of r.meta; track m.label) {
|
|
269
|
+
<div class="cv__meta-row">
|
|
270
|
+
<dt>{{ m.label }}</dt>
|
|
271
|
+
<dd>{{ m.value }}</dd>
|
|
272
|
+
</div>
|
|
273
|
+
}
|
|
274
|
+
</dl>
|
|
275
|
+
}
|
|
276
|
+
<ion-button fill="clear" color="light" size="small" (click)="dismiss()">
|
|
277
|
+
{{ t('scanNext') }}
|
|
278
|
+
</ion-button>
|
|
279
|
+
</div>
|
|
275
280
|
}
|
|
276
281
|
}
|
|
277
282
|
</div>
|
|
@@ -339,7 +344,6 @@ export class CodeValidatorComponent {
|
|
|
339
344
|
</button>
|
|
340
345
|
}
|
|
341
346
|
}
|
|
342
|
-
|
|
343
347
|
</footer>
|
|
344
348
|
|
|
345
349
|
<!-- Lista completa. Es una capa DENTRO del componente y no un modal
|
|
@@ -428,10 +432,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
428
432
|
</header>
|
|
429
433
|
|
|
430
434
|
<div class="cv__stage">
|
|
431
|
-
<val-qr-scanner
|
|
432
|
-
[props]="scannerProps()"
|
|
433
|
-
(scanned)="onScanned($event)"
|
|
434
|
-
/>
|
|
435
|
+
<val-qr-scanner [props]="scannerProps()" (scanned)="onScanned($event)" />
|
|
435
436
|
|
|
436
437
|
<!-- El resultado tapa la cámara a propósito: es lo único que importa
|
|
437
438
|
en ese segundo, y volver a escanear es automático. -->
|
|
@@ -442,26 +443,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
442
443
|
</div>
|
|
443
444
|
} @else {
|
|
444
445
|
@if (current(); as r) {
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
446
|
+
<div class="cv__flash" [attr.data-tone]="r.tone" role="status">
|
|
447
|
+
<ion-icon class="cv__flash-icon" [name]="iconFor(r.tone)" />
|
|
448
|
+
<p class="cv__flash-title">{{ r.title }}</p>
|
|
449
|
+
@if (r.detail) {
|
|
450
|
+
<p class="cv__flash-detail">{{ r.detail }}</p>
|
|
451
|
+
}
|
|
452
|
+
@if (r.meta?.length) {
|
|
453
|
+
<dl class="cv__meta">
|
|
454
|
+
@for (m of r.meta; track m.label) {
|
|
455
|
+
<div class="cv__meta-row">
|
|
456
|
+
<dt>{{ m.label }}</dt>
|
|
457
|
+
<dd>{{ m.value }}</dd>
|
|
458
|
+
</div>
|
|
459
|
+
}
|
|
460
|
+
</dl>
|
|
461
|
+
}
|
|
462
|
+
<ion-button fill="clear" color="light" size="small" (click)="dismiss()">
|
|
463
|
+
{{ t('scanNext') }}
|
|
464
|
+
</ion-button>
|
|
465
|
+
</div>
|
|
465
466
|
}
|
|
466
467
|
}
|
|
467
468
|
</div>
|
|
@@ -529,7 +530,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
529
530
|
</button>
|
|
530
531
|
}
|
|
531
532
|
}
|
|
532
|
-
|
|
533
533
|
</footer>
|
|
534
534
|
|
|
535
535
|
<!-- Lista completa. Es una capa DENTRO del componente y no un modal
|
|
@@ -572,6 +572,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
572
572
|
type: Input
|
|
573
573
|
}], validate: [{
|
|
574
574
|
type: Input
|
|
575
|
+
}], scanned: [{
|
|
576
|
+
type: Output
|
|
575
577
|
}], validated: [{
|
|
576
578
|
type: Output
|
|
577
579
|
}], closed: [{
|
|
@@ -579,4 +581,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
579
581
|
}], _modalRef: [{
|
|
580
582
|
type: Input
|
|
581
583
|
}] } });
|
|
582
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS12YWxpZGF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9jb2RlLXZhbGlkYXRvci9jb2RlLXZhbGlkYXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGlCQUFpQixHQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRXJGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIs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QkFBa0I7d0JBQ2xCLGNBQWM7cUJBQ2YsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUxUO3dEQUlRLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQVVFLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQge1xuICBhbGVydENpcmNsZU91dGxpbmUsXG4gIGNoZWNrbWFya0NpcmNsZSxcbiAgY2xvc2VDaXJjbGVPdXRsaW5lLFxuICBjbG9zZU91dGxpbmUsXG4gIGtleXBhZE91dGxpbmUsXG4gIHZvbHVtZUhpZ2hPdXRsaW5lLFxuICB2b2x1bWVNdXRlT3V0bGluZSxcbn0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgSGFwdGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9oYXB0aWNzL2hhcHRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBRclNjYW5uZXJDb21wb25lbnQgfSBmcm9tICcuLi9xci1zY2FubmVyL3FyLXNjYW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0TWV0YWRhdGEgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBDT0RFX1ZBTElEQVRPUl9JMThOIH0gZnJvbSAnLi9jb2RlLXZhbGlkYXRvci5pMThuJztcbmltcG9ydCB7IHBsYXlWYWxpZGF0aW9uU291bmQgfSBmcm9tICcuL3ZhbGlkYXRpb24tc291bmQnO1xuaW1wb3J0IHtcbiAgQ29kZVZhbGlkYXRvck1ldGFkYXRhLFxuICBWYWxpZGF0ZUZuLFxuICBWYWxpZGF0aW9uRW50cnksXG4gIFZhbGlkYXRpb25SZXN1bHQsXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vLyBUb2RvcyBsb3Mgw61jb25vcyBkZSBsYSBwbGFudGlsbGEuIFVuIMOtY29ubyBzaW4gcmVnaXN0cmFyIG5vIHJvbXBlIGVsIGJ1aWxkOlxuLy8gSW9uaWNvbnMgbG8gYnVzY2EgY29tbyBhcmNoaXZvIFNWRywgbm8gbG8gZW5jdWVudHJhIHkgZGVqYSBlbCBodWVjbyB2YWPDrW8uXG5hZGRJY29ucyh7XG4gIGFsZXJ0Q2lyY2xlT3V0bGluZSxcbiAgY2hlY2ttYXJrQ2lyY2xlLFxuICBjbG9zZUNpcmNsZU91dGxpbmUsXG4gIGNsb3NlT3V0bGluZSxcbiAga2V5cGFkT3V0bGluZSxcbiAgdm9sdW1lSGlnaE91dGxpbmUsXG4gIHZvbHVtZU11dGVPdXRsaW5lLFxufSk7XG5cbi8qKlxuICogdmFsLWNvZGUtdmFsaWRhdG9yXG4gKlxuICogU2VzacOzbiBkZSBlc2NhbmVvIGEgcGFudGFsbGEgY29tcGxldGE6IHNlIGxlZSB1biBjw7NkaWdvIHRyYXMgb3RybyBzaW4gcGFyYXIsXG4gKiB5IGNhZGEgdW5vIHNlIHZhbGlkYSBjb250cmEgbGEgcmVnbGEgcXVlIGFwb3J0YSBlbCBwcm9kdWN0by5cbiAqXG4gKiBFcyB1biBNT0RPLCBubyB1biBibG9xdWUgZGUgdW5hIHDDoWdpbmEuIEVzYSBlcyBsYSBkaWZlcmVuY2lhIGNvbiBwb25lciB1blxuICogZXNjw6FuZXIgc3VlbHRvIGVuIHVuYSB2aXN0YTogY3VhbmRvIGFsZ3VpZW4gZXN0w6EgZW4gbGEgcHVlcnRhIHZhbGlkYW5kb1xuICogZW50cmFkYXMsIGxhIHBhbnRhbGxhIG5vIHRpZW5lIHF1ZSBjb21wZXRpciBjb24gbGlzdGFzIG5pIGJ1c2NhZG9yZXMuXG4gKlxuICogRWwgY29tcG9uZW50ZSBubyBzYWJlIGRlIGRvbWluaW9zLiBFbCBwcm9kdWN0byBsZSBwYXNhIGB2YWxpZGF0ZWAgeSByZWNpYmVcbiAqIGB2YWxpZGF0ZWRgOyBxdcOpIHNpZ25pZmljYSBjYWRhIHJlc3VsdGFkbyBsbyBkZWNpZGUgcXVpZW4gdmFsaWRhLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLWNvZGUtdmFsaWRhdG9yXG4gKiAgIFtwcm9wc109XCJ7IHRpdGxlOiAnQ29udHJvbCBkZSBhY2Nlc28nLCBtYW51YWxFbnRyeTogeyBsYWJlbDogJ0ZvbGlvJywgaW5wdXRtb2RlOiAnbnVtZXJpYycgfSB9XCJcbiAqICAgW3ZhbGlkYXRlXT1cInZhbGlkYXJFbnRyYWRhXCJcbiAqICAgKHZhbGlkYXRlZCk9XCJvblJlc3VsdGFkbygkZXZlbnQpXCJcbiAqICAgKGNsb3NlZCk9XCJjZXJyYXIoKVwiXG4gKiAvPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY29kZS12YWxpZGF0b3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgSW9uQnV0dG9uLFxuICAgIElvbkljb24sXG4gICAgSW9uU3Bpbm5lcixcbiAgICBRclNjYW5uZXJDb21wb25lbnQsXG4gICAgVGV4dElucHV0Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjdlwiPlxuICAgICAgPGhlYWRlciBjbGFzcz1cImN2X19iYXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImN2X190aXRsZVwiPlxuICAgICAgICAgIDxwIGNsYXNzPVwiY3ZfX25hbWVcIj57eyBwcm9wcy50aXRsZSB8fCB0KCd0aXRsZScpIH19PC9wPlxuICAgICAgICAgIEBpZiAob2tDb3VudCgpID4gMCkge1xuICAgICAgICAgICAgPHAgY2xhc3M9XCJjdl9fY291bnRcIj57eyBva0NvdW50KCkgfX0gwrcge3sgdCgnc2Vzc2lvbkNvdW50JykgfX08L3A+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImN2X19iYXItYWN0aW9uc1wiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJjdl9faWNvbi1idG5cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzb3VuZE9uKCkgPyB0KCdzb3VuZE9uJykgOiB0KCdzb3VuZE9mZicpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTb3VuZCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8IS0tIERvcyBpb24taWNvbiBlc3TDoXRpY29zLCBubyB1biBbbmFtZV0gZGluw6FtaWNvOiBjb24gZWwgbm9tYnJlXG4gICAgICAgICAgICAgICAgIGF0YWRvIGEgdW5hIGV4cHJlc2nDs24sIElvbmljb25zIHJlY2liZSBudWxsIGVuIGVsIHByaW1lciByZW5kZXJcbiAgICAgICAgICAgICAgICAgeSBkZWphIGVsIGh1ZWNvIHZhY8OtbyBoYXN0YSBxdWUgYWxnbyBsbyBjYW1iaWEuIEVzIGxvIG1pc21vIHF1ZVxuICAgICAgICAgICAgICAgICBwYXNhYmEgY29uIGxhIGxpbnRlcm5hLiAtLT5cbiAgICAgICAgICAgIEBpZiAoc291bmRPbigpKSB7XG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwidm9sdW1lLWhpZ2gtb3V0bGluZVwiIC8+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJ2b2x1bWUtbXV0ZS1vdXRsaW5lXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3ZfX2ljb24tYnRuXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicHJvcHMuY2xvc2VMYWJlbCB8fCB0KCdjbG9zZScpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNsb3NlLW91dGxpbmVcIiAvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvaGVhZGVyPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY3ZfX3N0YWdlXCI+XG4gICAgICAgIDx2YWwtcXItc2Nhbm5lclxuICAgICAgICAgIFtwcm9wc109XCJzY2FubmVyUHJvcHMoKVwiXG4gICAgICAgICAgKHNjYW5uZWQpPVwib25TY2FubmVkKCRldmVudClcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDwhLS0gRWwgcmVzdWx0YWRvIHRhcGEgbGEgY8OhbWFyYSBhIHByb3DDs3NpdG86IGVzIGxvIMO6bmljbyBxdWUgaW1wb3J0YVxuICAgICAgICAgICAgIGVuIGVzZSBzZWd1bmRvLCB5IHZvbHZlciBhIGVzY2FuZWFyIGVzIGF1dG9tw6F0aWNvLiAtLT5cbiAgICAgICAgQGlmIChidXN5KCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3ZfX2ZsYXNoXCIgZGF0YS10b25lPVwiYnVzeVwiPlxuICAgICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiIC8+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImN2X19mbGFzaC10aXRsZVwiPnt7IHQoJ3ZhbGlkYXRpbmcnKSB9fTwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgQGlmIChjdXJyZW50KCk7IGFzIHIpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3ZfX2ZsYXNoXCIgW2F0dHIuZGF0YS10b25lXT1cInIudG9uZVwiIHJvbGU9XCJzdGF0dXNcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBjbGFzcz1cImN2X19mbGFzaC1pY29uXCIgW25hbWVdPVwiaWNvbkZvcihyLnRvbmUpXCIgLz5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiY3ZfX2ZsYXNoLXRpdGxlXCI+e3sgci50aXRsZSB9fTwvcD5cbiAgICAgICAgICAgIEBpZiAoci5kZXRhaWwpIHtcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJjdl9fZmxhc2gtZGV0YWlsXCI+e3sgci5kZXRhaWwgfX08L3A+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHIubWV0YT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIDxkbCBjbGFzcz1cImN2X19tZXRhXCI+XG4gICAgICAgICAgICAgICAgQGZvciAobSBvZiByLm1ldGE7IHRyYWNrIG0ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdl9fbWV0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGR0Pnt7IG0ubGFiZWwgfX08L2R0PlxuICAgICAgICAgICAgICAgICAgICA8ZGQ+e3sgbS52YWx1ZSB9fTwvZGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGw+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImxpZ2h0XCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImRpc21pc3MoKVwiPlxuICAgICAgICAgICAgICB7eyB0KCdzY2FuTmV4dCcpIH19XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGZvb3RlciBjbGFzcz1cImN2X19mb290XCI+XG4gICAgICAgIEBpZiAocHJvcHMubWFudWFsRW50cnk7IGFzIG1hbnVhbCkge1xuICAgICAgICAgIEBpZiAobWFudWFsT3BlbigpKSB7XG4gICAgICAgICAgICA8IS0tIFNpbiBmb3JtOiBlbCBzdWJtaXQgbmF0aXZvIG5hdmVnYWJhIGRlIHZlcmRhZCB5IHNlIGxsZXZhYmEgcHVlc3RhXG4gICAgICAgICAgICAgICAgIGxhIHNlc2lvbi4gVW4gYm90b24gY29tdW4geSBFbnRlciBlbiBlbCBjYW1wbyBoYWNlbiBsbyBtaXNtb1xuICAgICAgICAgICAgICAgICBzaW4gZGVwZW5kZXIgZGVsIHNoaW0gZGUgc3VibWl0IGRlIElvbmljLiAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdl9fbWFudWFsXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdl9fbWFudWFsLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgPCEtLSB2YWwtdGl0bGUsIGlndWFsIHF1ZSB2YWwtZm9ybS1maWVsZDogZWwgbGFiZWwgZGUgdW4gY2FtcG9cbiAgICAgICAgICAgICAgICAgICAgIHRpZW5lIHVuYSB0aXBvZ3JhZsOtYSBkZWZpbmlkYSBlbiBsYSBsaWIgeSBlc2NyaWJpcmxhIGEgbWFub1xuICAgICAgICAgICAgICAgICAgICAgZXJhIGp1c3RvIGxvIHF1ZSBoYWPDrWEgcXVlIG5vIGNhbHphcmEuIC0tPlxuICAgICAgICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3ZfX21hbnVhbC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwieyBjb250ZW50OiBtYW51YWwubGFiZWwsIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnbGlnaHQnLCBib2xkOiBmYWxzZSB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx2YWwtdGV4dC1pbnB1dFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjdl9fbWFudWFsLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJtYW51YWxJbnB1dFByb3BzKG1hbnVhbClcIlxuICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cInN1Ym1pdE1hbnVhbCgpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImN2X19tYW51YWwtc3VibWl0XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cImxpZ2h0XCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnVzeSgpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic3VibWl0TWFudWFsKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdCgnbWFudWFsU3VibWl0JykgfX1cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImN2X19tYW51YWwtdG9nZ2xlXCIgKGNsaWNrKT1cIm1hbnVhbE9wZW4uc2V0KHRydWUpXCI+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwia2V5cGFkLW91dGxpbmVcIiAvPlxuICAgICAgICAgICAgICB7eyB0KCdtYW51YWxUb2dnbGUnKSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChwcm9wcy5oaXN0b3J5ICE9PSBmYWxzZSAmJiBoaXN0b3J5KCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIDwhLS0gU29sbyBsb3Mgw7psdGltb3M6IGxhIHNlc2nDs24gcHVlZGUgYWN1bXVsYXIgZGVjZW5hcyB5IGVsIHBpZSBubyBlc1xuICAgICAgICAgICAgICAgZWwgbHVnYXIgcGFyYSByZXZpc2FybGFzLiBFbCByZXN0byBzZSB2ZSBlbiBsYSBsaXN0YSBjb21wbGV0YS4gLS0+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiY3ZfX2hpc3RvcnlcIj5cbiAgICAgICAgICAgIEBmb3IgKGUgb2YgcmVjZW50SGlzdG9yeSgpOyB0cmFjayBlLmF0KSB7XG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cImN2X19oaXN0b3J5LXJvd1wiIFthdHRyLmRhdGEtdG9uZV09XCJlLnJlc3VsdC50b25lXCI+XG4gICAgICAgICAgICAgICAgQGlmIChlLnJlc3VsdC50b25lID09PSAnb2snKSB7XG4gICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZWNrbWFyay1jaXJjbGVcIiAvPlxuICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGUucmVzdWx0LnRvbmUgPT09ICd3YXJuaW5nJykge1xuICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJhbGVydC1jaXJjbGUtb3V0bGluZVwiIC8+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNsb3NlLWNpcmNsZS1vdXRsaW5lXCIgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdl9faGlzdG9yeS10aXRsZVwiPnt7IGUucmVzdWx0LnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3ZfX2hpc3RvcnktY29kZVwiPnt7IHNob3J0Q29kZShlLmNvZGUpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgQGlmIChoaXN0b3J5KCkubGVuZ3RoID4gcmVjZW50TGltaXQpIHtcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY3ZfX2hpc3RvcnktbW9yZVwiIChjbGljayk9XCJoaXN0b3J5T3Blbi5zZXQodHJ1ZSlcIj5cbiAgICAgICAgICAgICAge3sgdCgnaGlzdG9yeU1vcmUnKSB9fSAoe3sgaGlzdG9yeSgpLmxlbmd0aCB9fSlcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICA8L2Zvb3Rlcj5cblxuICAgICAgPCEtLSBMaXN0YSBjb21wbGV0YS4gRXMgdW5hIGNhcGEgREVOVFJPIGRlbCBjb21wb25lbnRlIHkgbm8gdW4gbW9kYWxcbiAgICAgICAgICAgZW5jaW1hIGRlbCBtb2RhbDogYXBpbGFyIG1vZGFsZXMgc29icmUgdW5hIHNlc2nDs24gYSBwYW50YWxsYSBjb21wbGV0YVxuICAgICAgICAgICB0cmFlIHByb2JsZW1hcyBkZSBmb2NvIHkgZGUgY2llcnJlIHF1ZSBubyBzZSBqdXN0aWZpY2FuIHBhcmEgbW9zdHJhclxuICAgICAgICAgICB1bmEgbGlzdGEuIC0tPlxuICAgICAgQGlmIChoaXN0b3J5T3BlbigpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjdl9fc2hlZXRcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1tb2RhbD1cInRydWVcIj5cbiAgICAgICAgICA8aGVhZGVyIGNsYXNzPVwiY3ZfX3NoZWV0LWJhclwiPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJjdl9fbmFtZVwiPnt7IHQoJ2hpc3RvcnlUaXRsZScpIH19PC9wPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjdl9faWNvbi1idG5cIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInByb3BzLmNsb3NlTGFiZWwgfHwgdCgnY2xvc2UnKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJoaXN0b3J5T3Blbi5zZXQoZmFsc2UpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjbG9zZS1vdXRsaW5lXCIgLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvaGVhZGVyPlxuICAgICAgICAgIDx1bCBjbGFzcz1cImN2X19zaGVldC1saXN0XCI+XG4gICAgICAgICAgICBAZm9yIChlIG9mIGhpc3RvcnkoKTsgdHJhY2sgZS5hdCkge1xuICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJjdl9faGlzdG9yeS1yb3dcIiBbYXR0ci5kYXRhLXRvbmVdPVwiZS5yZXN1bHQudG9uZVwiPlxuICAgICAgICAgICAgICAgIEBpZiAoZS5yZXN1bHQudG9uZSA9PT0gJ29rJykge1xuICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGVja21hcmstY2lyY2xlXCIgLz5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChlLnJlc3VsdC50b25lID09PSAnd2FybmluZycpIHtcbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiYWxlcnQtY2lyY2xlLW91dGxpbmVcIiAvPlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjbG9zZS1jaXJjbGUtb3V0bGluZVwiIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3ZfX2hpc3RvcnktdGl0bGVcIj57eyBlLnJlc3VsdC50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN2X19oaXN0b3J5LWNvZGVcIj57eyBzaG9ydENvZGUoZS5jb2RlKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vY29kZS12YWxpZGF0b3IuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29kZVZhbGlkYXRvckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHByb3BzOiBDb2RlVmFsaWRhdG9yTWV0YWRhdGEgPSB7fTtcblxuICAvKipcbiAgICogTGEgcmVnbGEgZGVsIHByb2R1Y3RvLiBTaW4gZXN0byBlbCBjb21wb25lbnRlIG5vIHZhbGlkYSBuYWRhOiBsZWUgeSBhdmlzYS5cbiAgICovXG4gIEBJbnB1dCgpIHZhbGlkYXRlPzogVmFsaWRhdGVGbjtcblxuICBAT3V0cHV0KCkgdmFsaWRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxWYWxpZGF0aW9uRW50cnk+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jaWEgZGVsIG1vZGFsLCBpbnllY3RhZGEgcG9yIE1vZGFsU2VydmljZS5cbiAgICpcbiAgICogVW4gQE91dHB1dCBOTyBsbGVnYSBhbCBjb25zdW1lciBjdWFuZG8gZWwgY29tcG9uZW50ZSBzZSBtb250YSBjb25cbiAgICogbW9kYWxDb250cm9sbGVyLmNyZWF0ZSgpOiBlbCBtb2RhbCBzZSBjcmVhIGZ1ZXJhIGRlbCDDoXJib2wgZGUgcGxhbnRpbGxhcyB5XG4gICAqIG5vIGhheSBkw7NuZGUgZW5nYW5jaGFyIGVsIGJpbmRpbmcuIFBvciBlc28gZWwgYm90w7NuIGRlIGNlcnJhciBubyBjZXJyYWJhXG4gICAqIG5hZGEuIEVzdMOhIGRvY3VtZW50YWRvIGVuIGZyb250ZW5kL0NMQVVERS5tZCwgUmVnbGEgIzUuXG4gICAqL1xuICBASW5wdXQoKSBfbW9kYWxSZWY/OiB7IGRpc21pc3M6IChkYXRhPzogdW5rbm93biwgcm9sZT86IHN0cmluZykgPT4gdm9pZCB9O1xuXG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgaGFwdGljcyA9IGluamVjdChIYXB0aWNzU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgYnVzeSA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGN1cnJlbnQgPSBzaWduYWw8VmFsaWRhdGlvblJlc3VsdCB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBoaXN0b3J5ID0gc2lnbmFsPFZhbGlkYXRpb25FbnRyeVtdPihbXSk7XG4gIHJlYWRvbmx5IG1hbnVhbE9wZW4gPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBoaXN0b3J5T3BlbiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLyoqIEN1w6FudGFzIGxlY3R1cmFzIHNlIG11ZXN0cmFuIGVuIGVsIHBpZS4gRWwgcmVzdG8sIGVuIGxhIGxpc3RhIGNvbXBsZXRhLiAqL1xuICByZWFkb25seSByZWNlbnRMaW1pdCA9IDM7XG4gIHJlYWRvbmx5IHNvdW5kT24gPSBzaWduYWwodHJ1ZSk7XG5cbiAgLyoqXG4gICAqIENvbnRyb2wgZGVsIGluZ3Jlc28gbWFudWFsLiBFcyB1biBGb3JtQ29udHJvbCB5IG5vIHVuIG5nTW9kZWwgcG9ycXVlIGVsXG4gICAqIGNhbXBvIGxvIHJlbmRlcml6YSBgdmFsLXRleHQtaW5wdXRgLCBlbCBtaXNtbyBpbnB1dCBxdWUgdXNhIGB2YWwtZm9ybWA6XG4gICAqIGFzw60gZXN0ZSBjYW1wbyBzZSB2ZSBpZ3VhbCBxdWUgY3VhbHF1aWVyIG90cm8gZGUgbGEgbGliIGVuIHZleiBkZSB0ZW5lclxuICAgKiBzdSBwcm9waWEgY2FqYSBkaWJ1amFkYSBhIG1hbm8uXG4gICAqL1xuICByZWFkb25seSBtYW51YWxDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcblxuICAvKipcbiAgICogUHJvcHMgZGVsIGlucHV0IG1hbnVhbCwgZGVyaXZhZGFzIGRlIGxhIGNvbmZpZyBkZWwgY29uc3VtaWRvci5cbiAgICpcbiAgICogQ2FjaGVhZG86IGB2YWwtdGV4dC1pbnB1dGAgaW1wbGVtZW50YSBPbkNoYW5nZXMsIHkgZGV2b2x2ZXIgdW4gb2JqZXRvIG51ZXZvXG4gICAqIGVuIGNhZGEgY2ljbG8gZGUgZGV0ZWNjacOzbiBsbyBoYXLDrWEgcmUtcmVzb2x2ZXIgcHJvcHMgc2luIHBhcmFyLlxuICAgKi9cbiAgcHJpdmF0ZSBtYW51YWxJbnB1dFByb3BzQ2FjaGU/OiBQYXJ0aWFsPElucHV0TWV0YWRhdGE+O1xuXG4gIG1hbnVhbElucHV0UHJvcHMobWFudWFsOiB7IGxhYmVsOiBzdHJpbmc7IHBsYWNlaG9sZGVyPzogc3RyaW5nOyBpbnB1dG1vZGU/OiBzdHJpbmcgfSkge1xuICAgIGlmICghdGhpcy5tYW51YWxJbnB1dFByb3BzQ2FjaGUpIHtcbiAgICAgIHRoaXMubWFudWFsSW5wdXRQcm9wc0NhY2hlID0ge1xuICAgICAgICBjb250cm9sOiB0aGlzLm1hbnVhbENvbnRyb2wsXG4gICAgICAgIHBsYWNlaG9sZGVyOiBtYW51YWwucGxhY2Vob2xkZXIgfHwgJycsXG4gICAgICAgIGlucHV0VHlwZTogbWFudWFsLmlucHV0bW9kZSA9PT0gJ251bWVyaWMnID8gJ251bWJlcicgOiAndGV4dCcsXG4gICAgICAgIGxhYmVsOiBtYW51YWwubGFiZWwsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5tYW51YWxJbnB1dFByb3BzQ2FjaGU7XG4gIH1cblxuICAvKiogQ8OzZGlnbyBlbiB2dWVsbzogZXZpdGEgdmFsaWRhciBkb3MgdmVjZXMgbGEgbWlzbWEgbGVjdHVyYS4gKi9cbiAgcHJpdmF0ZSBpbkZsaWdodCA9ICcnO1xuICBwcml2YXRlIHJlc3VsdFRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKCdDb2RlVmFsaWRhdG9yJywgQ09ERV9WQUxJREFUT1JfSTE4Tik7XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCAnQ29kZVZhbGlkYXRvcicpO1xuICB9XG5cbiAgcmVhZG9ubHkgcmVjZW50SGlzdG9yeSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaGlzdG9yeSgpLnNsaWNlKDAsIHRoaXMucmVjZW50TGltaXQpKTtcblxuICAvKipcbiAgICogUmVjb3J0YSBlbCBjw7NkaWdvIHBhcmEgcXVlIHF1ZXBhLlxuICAgKlxuICAgKiBVbiB0b2tlbiBkZSBRUiBvIHVuYSBVUkwgbWlkZW4gZGVjZW5hcyBkZSBjYXJhY3RlcmVzIHksIHNpbiByZWNvcnRhcixcbiAgICogZW1wdWphYmFuIGVsIGFuY2hvIGRlIGxhIGZpbGEgeSB0b2RhIGxhIGxpc3RhIHNlIG1vdsOtYSBkZSBsYWRvLiBTZSBtdWVzdHJhblxuICAgKiBsYXMgcHVudGFzIHBvcnF1ZSBzb24gbGFzIHF1ZSBzaXJ2ZW4gcGFyYSByZWNvbm9jZXJsbyBkZSB1biB2aXN0YXpvLlxuICAgKi9cbiAgc2hvcnRDb2RlKGNvZGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbWF4ID0gMTQ7XG4gICAgaWYgKGNvZGUubGVuZ3RoIDw9IG1heCkgcmV0dXJuIGNvZGU7XG4gICAgcmV0dXJuIGAke2NvZGUuc2xpY2UoMCwgNil94oCmJHtjb2RlLnNsaWNlKC00KX1gO1xuICB9XG5cbiAgcmVhZG9ubHkgb2tDb3VudCA9IGNvbXB1dGVkKFxuICAgICgpID0+IHRoaXMuaGlzdG9yeSgpLmZpbHRlcihlID0+IGUucmVzdWx0LnRvbmUgPT09ICdvaycpLmxlbmd0aCxcbiAgKTtcblxuICAvKipcbiAgICogRWwgZXNjw6FuZXIgYXJyYW5jYSBzb2xvIHkgbm8gc2UgZGV0aWVuZTogbGEgc2VzacOzbiBlcyBcInVubyB0cmFzIG90cm9cIi5cbiAgICogRWwgYW50aS1yZWJvdGUgc3ViZSBwb3JxdWUgYWPDoSBjYWRhIGxlY3R1cmEgZGlzcGFyYSB1bmEgbGxhbWFkYSBkZSByZWQuXG4gICAqL1xuICByZWFkb25seSBzY2FubmVyUHJvcHMgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgIGF1dG9TdGFydDogdHJ1ZSxcbiAgICBjb250aW51b3VzOiB0cnVlLFxuICAgIGRlZHVwZU1zOiAyNTAwLFxuICAgIG9uRGFyazogdHJ1ZSxcbiAgICAuLi4odGhpcy5wcm9wcy5zY2FubmVyID8/IHt9KSxcbiAgfSkpO1xuXG4gIGljb25Gb3IodG9uZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodG9uZSA9PT0gJ29rJykgcmV0dXJuICdjaGVja21hcmstY2lyY2xlJztcbiAgICBpZiAodG9uZSA9PT0gJ3dhcm5pbmcnKSByZXR1cm4gJ2FsZXJ0LWNpcmNsZS1vdXRsaW5lJztcbiAgICByZXR1cm4gJ2Nsb3NlLWNpcmNsZS1vdXRsaW5lJztcbiAgfVxuXG4gIHRvZ2dsZVNvdW5kKCk6IHZvaWQge1xuICAgIHRoaXMuc291bmRPbi51cGRhdGUob24gPT4gIW9uKTtcbiAgfVxuXG4gIGFzeW5jIG9uU2Nhbm5lZChjb2RlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnJ1bihjb2RlKTtcbiAgfVxuXG4gIGFzeW5jIHN1Ym1pdE1hbnVhbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBTdHJpbmcoKTogY29uIGlucHV0bW9kZSBudW1lcmljbyBlbCBjb250cm9sIGRldnVlbHZlIHVuIG51bWJlciwgbm8gdW5cbiAgICAvLyBzdHJpbmcsIHkgbGxhbWFybGUgLnRyaW0oKSByZXZlbnRhYmEgZWwgZW52aW8gYSBtYW5vLlxuICAgIGNvbnN0IHZhbHVlID0gU3RyaW5nKHRoaXMubWFudWFsQ29udHJvbC52YWx1ZSA/PyAnJykudHJpbSgpO1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICB0aGlzLm1hbnVhbENvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgIGF3YWl0IHRoaXMucnVuKHZhbHVlKTtcbiAgfVxuXG4gIC8qKiBDaWVycmEgZWwgcmVzdWx0YWRvIHkgdnVlbHZlIGEgZXNjYW5lYXIgc2luIGVzcGVyYXIgYWwgdGVtcG9yaXphZG9yLiAqL1xuICBkaXNtaXNzKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJUaW1lcigpO1xuICAgIHRoaXMuY3VycmVudC5zZXQobnVsbCk7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmhpc3RvcnlPcGVuLnNldChmYWxzZSk7XG4gICAgdGhpcy5jbGVhclRpbWVyKCk7XG4gICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICAgIHRoaXMuX21vZGFsUmVmPy5kaXNtaXNzKFxuICAgICAgeyB2YWxpZGF0ZWQ6IHRoaXMuaGlzdG9yeSgpIH0sXG4gICAgICAnY2xvc2VkJyxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBydW4oY29kZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdmFsdWUgPSBjb2RlPy50cmltKCk7XG4gICAgaWYgKCF2YWx1ZSB8fCAhdGhpcy52YWxpZGF0ZSkgcmV0dXJuO1xuICAgIC8vIERvcyBsZWN0dXJhcyBkZWwgbWlzbW8gY8OzZGlnbyBtaWVudHJhcyB1bmEgZXN0w6EgZW4gdnVlbG8gc29uIGxhIG1pc21hXG4gICAgLy8gaW50ZW5jacOzbiwgbm8gZG9zOiB2YWxpZGFyIGRvcyB2ZWNlcyBtYXJjYXLDrWEgdW5hIGVudHJhZGEgY29tbyB1c2FkYSBwb3JcbiAgICAvLyBwYXJ0aWRhIGRvYmxlLlxuICAgIGlmICh0aGlzLmJ1c3koKSAmJiB0aGlzLmluRmxpZ2h0ID09PSB2YWx1ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5jbGVhclRpbWVyKCk7XG4gICAgdGhpcy5pbkZsaWdodCA9IHZhbHVlO1xuICAgIHRoaXMuYnVzeS5zZXQodHJ1ZSk7XG4gICAgdGhpcy5jdXJyZW50LnNldChudWxsKTtcblxuICAgIGxldCByZXN1bHQ6IFZhbGlkYXRpb25SZXN1bHQ7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IHRoaXMudmFsaWRhdGUodmFsdWUpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gRWwgcHJvZHVjdG8gbm8gZGViZXLDrWEgbGFuemFyLCBwZXJvIHNpIGxvIGhhY2UgbGEgc2VzacOzbiBzaWd1ZTogZW4gdW5hXG4gICAgICAvLyBwdWVydGEgY29uIGdlbnRlIGVzcGVyYW5kbywgcXVlZGFyc2UgY29sZ2FkbyBlcyBwZW9yIHF1ZSB1biBlcnJvci5cbiAgICAgIHJlc3VsdCA9IHsgdG9uZTogJ2Vycm9yJywgdGl0bGU6IHRoaXMudCgnZXJyb3InKSB9O1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmJ1c3kuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMuaW5GbGlnaHQgPSAnJztcbiAgICB9XG5cbiAgICB0aGlzLmFubm91bmNlKHJlc3VsdCk7XG5cbiAgICBjb25zdCBlbnRyeTogVmFsaWRhdGlvbkVudHJ5ID0geyBjb2RlOiB2YWx1ZSwgcmVzdWx0LCBhdDogRGF0ZS5ub3coKSB9O1xuICAgIGNvbnN0IGxpbWl0ID0gdGhpcy5wcm9wcy5oaXN0b3J5TGltaXQgPz8gMjA7XG4gICAgdGhpcy5oaXN0b3J5LnVwZGF0ZShsaXN0ID0+IFtlbnRyeSwgLi4ubGlzdF0uc2xpY2UoMCwgbGltaXQpKTtcbiAgICB0aGlzLmN1cnJlbnQuc2V0KHJlc3VsdCk7XG4gICAgdGhpcy52YWxpZGF0ZWQuZW1pdChlbnRyeSk7XG5cbiAgICAvLyBFbCByZXN1bHRhZG8gc2UgdmEgc29sbzogcXVpZW4gZXNjYW5lYSBubyBkZWJlcsOtYSB0ZW5lciBxdWUgdG9jYXIgbmFkYVxuICAgIC8vIGVudHJlIHVuYSBlbnRyYWRhIHkgbGEgc2lndWllbnRlLlxuICAgIHRoaXMucmVzdWx0VGltZXIgPSBzZXRUaW1lb3V0KFxuICAgICAgKCkgPT4gdGhpcy5jdXJyZW50LnNldChudWxsKSxcbiAgICAgIHRoaXMucHJvcHMucmVzdWx0TXMgPz8gMTgwMCxcbiAgICApO1xuICB9XG5cbiAgLyoqIFNvbmlkbyArIGjDoXB0aWNhLiBMb3MgZG9zIHNvbiBiZXN0LWVmZm9ydCB5IG5pbmd1bm8gZnJlbmEgbGEgc2VzacOzbi4gKi9cbiAgcHJpdmF0ZSBhbm5vdW5jZShyZXN1bHQ6IFZhbGlkYXRpb25SZXN1bHQpOiB2b2lkIHtcbiAgICBjb25zdCBvayA9IHJlc3VsdC50b25lID09PSAnb2snO1xuICAgIGlmICh0aGlzLnByb3BzLnNvdW5kICE9PSBmYWxzZSAmJiB0aGlzLnNvdW5kT24oKSkge1xuICAgICAgcGxheVZhbGlkYXRpb25Tb3VuZChvayk7XG4gICAgfVxuICAgIGlmIChvaykgdGhpcy5oYXB0aWNzLnN1Y2Nlc3MoKTtcbiAgICBlbHNlIGlmIChyZXN1bHQudG9uZSA9PT0gJ3dhcm5pbmcnKSB0aGlzLmhhcHRpY3Mud2FybmluZygpO1xuICAgIGVsc2UgdGhpcy5oYXB0aWNzLmVycm9yKCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyVGltZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVzdWx0VGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlc3VsdFRpbWVyKTtcbiAgICAgIHRoaXMucmVzdWx0VGltZXIgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
584
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS12YWxpZGF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9jb2RlLXZhbGlkYXRvci9jb2RlLXZhbGlkYXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGlCQUFpQixHQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRXJGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIs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Q2xCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsU0FBUzt3QkFDVCxPQUFPO3dCQUNQLFVBQVU7d0JBQ1Ysa0JBQWtCO3dCQUNsQixrQkFBa0I7d0JBQ2xCLGNBQWM7cUJBQ2YsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2S1Q7d0RBSVEsS0FBSztzQkFBYixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBUUksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFVRSxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25JY29uLCBJb25TcGlubmVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7XG4gIGFsZXJ0Q2lyY2xlT3V0bGluZSxcbiAgY2hlY2ttYXJrQ2lyY2xlLFxuICBjbG9zZUNpcmNsZU91dGxpbmUsXG4gIGNsb3NlT3V0bGluZSxcbiAga2V5cGFkT3V0bGluZSxcbiAgdm9sdW1lSGlnaE91dGxpbmUsXG4gIHZvbHVtZU11dGVPdXRsaW5lLFxufSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBIYXB0aWNzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2hhcHRpY3MvaGFwdGljcy5zZXJ2aWNlJztcbmltcG9ydCB7IFFyU2Nhbm5lckNvbXBvbmVudCB9IGZyb20gJy4uL3FyLXNjYW5uZXIvcXItc2Nhbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRNZXRhZGF0YSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IENPREVfVkFMSURBVE9SX0kxOE4gfSBmcm9tICcuL2NvZGUtdmFsaWRhdG9yLmkxOG4nO1xuaW1wb3J0IHsgcGxheVZhbGlkYXRpb25Tb3VuZCB9IGZyb20gJy4vdmFsaWRhdGlvbi1zb3VuZCc7XG5pbXBvcnQgeyBDb2RlVmFsaWRhdG9yTWV0YWRhdGEsIFZhbGlkYXRlRm4sIFZhbGlkYXRpb25FbnRyeSwgVmFsaWRhdGlvblJlc3VsdCB9IGZyb20gJy4vdHlwZXMnO1xuXG4vLyBUb2RvcyBsb3Mgw61jb25vcyBkZSBsYSBwbGFudGlsbGEuIFVuIMOtY29ubyBzaW4gcmVnaXN0cmFyIG5vIHJvbXBlIGVsIGJ1aWxkOlxuLy8gSW9uaWNvbnMgbG8gYnVzY2EgY29tbyBhcmNoaXZvIFNWRywgbm8gbG8gZW5jdWVudHJhIHkgZGVqYSBlbCBodWVjbyB2YWPDrW8uXG5hZGRJY29ucyh7XG4gIGFsZXJ0Q2lyY2xlT3V0bGluZSxcbiAgY2hlY2ttYXJrQ2lyY2xlLFxuICBjbG9zZUNpcmNsZU91dGxpbmUsXG4gIGNsb3NlT3V0bGluZSxcbiAga2V5cGFkT3V0bGluZSxcbiAgdm9sdW1lSGlnaE91dGxpbmUsXG4gIHZvbHVtZU11dGVPdXRsaW5lLFxufSk7XG5cbi8qKlxuICogdmFsLWNvZGUtdmFsaWRhdG9yXG4gKlxuICogU2VzacOzbiBkZSBlc2NhbmVvIGEgcGFudGFsbGEgY29tcGxldGE6IHNlIGxlZSB1biBjw7NkaWdvIHRyYXMgb3RybyBzaW4gcGFyYXIsXG4gKiB5IGNhZGEgdW5vIHNlIHZhbGlkYSBjb250cmEgbGEgcmVnbGEgcXVlIGFwb3J0YSBlbCBwcm9kdWN0by5cbiAqXG4gKiBFcyB1biBNT0RPLCBubyB1biBibG9xdWUgZGUgdW5hIHDDoWdpbmEuIEVzYSBlcyBsYSBkaWZlcmVuY2lhIGNvbiBwb25lciB1blxuICogZXNjw6FuZXIgc3VlbHRvIGVuIHVuYSB2aXN0YTogY3VhbmRvIGFsZ3VpZW4gZXN0w6EgZW4gbGEgcHVlcnRhIHZhbGlkYW5kb1xuICogZW50cmFkYXMsIGxhIHBhbnRhbGxhIG5vIHRpZW5lIHF1ZSBjb21wZXRpciBjb24gbGlzdGFzIG5pIGJ1c2NhZG9yZXMuXG4gKlxuICogRWwgY29tcG9uZW50ZSBubyBzYWJlIGRlIGRvbWluaW9zLiBFbCBwcm9kdWN0byBsZSBwYXNhIGB2YWxpZGF0ZWAgeSByZWNpYmVcbiAqIGB2YWxpZGF0ZWRgOyBxdcOpIHNpZ25pZmljYSBjYWRhIHJlc3VsdGFkbyBsbyBkZWNpZGUgcXVpZW4gdmFsaWRhLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLWNvZGUtdmFsaWRhdG9yXG4gKiAgIFtwcm9wc109XCJ7IHRpdGxlOiAnQ29udHJvbCBkZSBhY2Nlc28nLCBtYW51YWxFbnRyeTogeyBsYWJlbDogJ0ZvbGlvJywgaW5wdXRtb2RlOiAnbnVtZXJpYycgfSB9XCJcbiAqICAgW3ZhbGlkYXRlXT1cInZhbGlkYXJFbnRyYWRhXCJcbiAqICAgKHZhbGlkYXRlZCk9XCJvblJlc3VsdGFkbygkZXZlbnQpXCJcbiAqICAgKGNsb3NlZCk9XCJjZXJyYXIoKVwiXG4gKiAvPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY29kZS12YWxpZGF0b3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgSW9uQnV0dG9uLFxuICAgIElvbkljb24sXG4gICAgSW9uU3Bpbm5lcixcbiAgICBRclNjYW5uZXJDb21wb25lbnQsXG4gICAgVGV4dElucHV0Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjdlwiPlxuICAgICAgPGhlYWRlciBjbGFzcz1cImN2X19iYXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImN2X190aXRsZVwiPlxuICAgICAgICAgIDxwIGNsYXNzPVwiY3ZfX25hbWVcIj57eyBwcm9wcy50aXRsZSB8fCB0KCd0aXRsZScpIH19PC9wPlxuICAgICAgICAgIEBpZiAob2tDb3VudCgpID4gMCkge1xuICAgICAgICAgICAgPHAgY2xhc3M9XCJjdl9fY291bnRcIj57eyBva0NvdW50KCkgfX0gwrcge3sgdCgnc2Vzc2lvbkNvdW50JykgfX08L3A+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImN2X19iYXItYWN0aW9uc1wiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJjdl9faWNvbi1idG5cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzb3VuZE9uKCkgPyB0KCdzb3VuZE9uJykgOiB0KCdzb3VuZE9mZicpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTb3VuZCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8IS0tIERvcyBpb24taWNvbiBlc3TDoXRpY29zLCBubyB1biBbbmFtZV0gZGluw6FtaWNvOiBjb24gZWwgbm9tYnJlXG4gICAgICAgICAgICAgICAgIGF0YWRvIGEgdW5hIGV4cHJlc2nDs24sIElvbmljb25zIHJlY2liZSBudWxsIGVuIGVsIHByaW1lciByZW5kZXJcbiAgICAgICAgICAgICAgICAgeSBkZWphIGVsIGh1ZWNvIHZhY8OtbyBoYXN0YSBxdWUgYWxnbyBsbyBjYW1iaWEuIEVzIGxvIG1pc21vIHF1ZVxuICAgICAgICAgICAgICAgICBwYXNhYmEgY29uIGxhIGxpbnRlcm5hLiAtLT5cbiAgICAgICAgICAgIEBpZiAoc291bmRPbigpKSB7XG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwidm9sdW1lLWhpZ2gtb3V0bGluZVwiIC8+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJ2b2x1bWUtbXV0ZS1vdXRsaW5lXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3ZfX2ljb24tYnRuXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicHJvcHMuY2xvc2VMYWJlbCB8fCB0KCdjbG9zZScpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNsb3NlLW91dGxpbmVcIiAvPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvaGVhZGVyPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY3ZfX3N0YWdlXCI+XG4gICAgICAgIDx2YWwtcXItc2Nhbm5lciBbcHJvcHNdPVwic2Nhbm5lclByb3BzKClcIiAoc2Nhbm5lZCk9XCJvblNjYW5uZWQoJGV2ZW50KVwiIC8+XG5cbiAgICAgICAgPCEtLSBFbCByZXN1bHRhZG8gdGFwYSBsYSBjw6FtYXJhIGEgcHJvcMOzc2l0bzogZXMgbG8gw7puaWNvIHF1ZSBpbXBvcnRhXG4gICAgICAgICAgICAgZW4gZXNlIHNlZ3VuZG8sIHkgdm9sdmVyIGEgZXNjYW5lYXIgZXMgYXV0b23DoXRpY28uIC0tPlxuICAgICAgICBAaWYgKGJ1c3koKSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdl9fZmxhc2hcIiBkYXRhLXRvbmU9XCJidXN5XCI+XG4gICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImNyZXNjZW50XCIgLz5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiY3ZfX2ZsYXNoLXRpdGxlXCI+e3sgdCgndmFsaWRhdGluZycpIH19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICBAaWYgKGN1cnJlbnQoKTsgYXMgcikge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN2X19mbGFzaFwiIFthdHRyLmRhdGEtdG9uZV09XCJyLnRvbmVcIiByb2xlPVwic3RhdHVzXCI+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBjbGFzcz1cImN2X19mbGFzaC1pY29uXCIgW25hbWVdPVwiaWNvbkZvcihyLnRvbmUpXCIgLz5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJjdl9fZmxhc2gtdGl0bGVcIj57eyByLnRpdGxlIH19PC9wPlxuICAgICAgICAgICAgICBAaWYgKHIuZGV0YWlsKSB7XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJjdl9fZmxhc2gtZGV0YWlsXCI+e3sgci5kZXRhaWwgfX08L3A+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChyLm1ldGE/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIDxkbCBjbGFzcz1cImN2X19tZXRhXCI+XG4gICAgICAgICAgICAgICAgICBAZm9yIChtIG9mIHIubWV0YTsgdHJhY2sgbS5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3ZfX21ldGEtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGR0Pnt7IG0ubGFiZWwgfX08L2R0PlxuICAgICAgICAgICAgICAgICAgICAgIDxkZD57eyBtLnZhbHVlIH19PC9kZD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kbD5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImxpZ2h0XCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImRpc21pc3MoKVwiPlxuICAgICAgICAgICAgICAgIHt7IHQoJ3NjYW5OZXh0JykgfX1cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGZvb3RlciBjbGFzcz1cImN2X19mb290XCI+XG4gICAgICAgIEBpZiAocHJvcHMubWFudWFsRW50cnk7IGFzIG1hbnVhbCkge1xuICAgICAgICAgIEBpZiAobWFudWFsT3BlbigpKSB7XG4gICAgICAgICAgICA8IS0tIFNpbiBmb3JtOiBlbCBzdWJtaXQgbmF0aXZvIG5hdmVnYWJhIGRlIHZlcmRhZCB5IHNlIGxsZXZhYmEgcHVlc3RhXG4gICAgICAgICAgICAgICAgIGxhIHNlc2lvbi4gVW4gYm90b24gY29tdW4geSBFbnRlciBlbiBlbCBjYW1wbyBoYWNlbiBsbyBtaXNtb1xuICAgICAgICAgICAgICAgICBzaW4gZGVwZW5kZXIgZGVsIHNoaW0gZGUgc3VibWl0IGRlIElvbmljLiAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdl9fbWFudWFsXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdl9fbWFudWFsLWZpZWxkXCI+XG4gICAgICAgICAgICAgICAgPCEtLSB2YWwtdGl0bGUsIGlndWFsIHF1ZSB2YWwtZm9ybS1maWVsZDogZWwgbGFiZWwgZGUgdW4gY2FtcG9cbiAgICAgICAgICAgICAgICAgICAgIHRpZW5lIHVuYSB0aXBvZ3JhZsOtYSBkZWZpbmlkYSBlbiBsYSBsaWIgeSBlc2NyaWJpcmxhIGEgbWFub1xuICAgICAgICAgICAgICAgICAgICAgZXJhIGp1c3RvIGxvIHF1ZSBoYWPDrWEgcXVlIG5vIGNhbHphcmEuIC0tPlxuICAgICAgICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3ZfX21hbnVhbC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICBbcHJvcHNdPVwieyBjb250ZW50OiBtYW51YWwubGFiZWwsIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnbGlnaHQnLCBib2xkOiBmYWxzZSB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx2YWwtdGV4dC1pbnB1dFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjdl9fbWFudWFsLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJtYW51YWxJbnB1dFByb3BzKG1hbnVhbClcIlxuICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cInN1Ym1pdE1hbnVhbCgpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImN2X19tYW51YWwtc3VibWl0XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cImxpZ2h0XCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYnVzeSgpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic3VibWl0TWFudWFsKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdCgnbWFudWFsU3VibWl0JykgfX1cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImN2X19tYW51YWwtdG9nZ2xlXCIgKGNsaWNrKT1cIm1hbnVhbE9wZW4uc2V0KHRydWUpXCI+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwia2V5cGFkLW91dGxpbmVcIiAvPlxuICAgICAgICAgICAgICB7eyB0KCdtYW51YWxUb2dnbGUnKSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChwcm9wcy5oaXN0b3J5ICE9PSBmYWxzZSAmJiBoaXN0b3J5KCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIDwhLS0gU29sbyBsb3Mgw7psdGltb3M6IGxhIHNlc2nDs24gcHVlZGUgYWN1bXVsYXIgZGVjZW5hcyB5IGVsIHBpZSBubyBlc1xuICAgICAgICAgICAgICAgZWwgbHVnYXIgcGFyYSByZXZpc2FybGFzLiBFbCByZXN0byBzZSB2ZSBlbiBsYSBsaXN0YSBjb21wbGV0YS4gLS0+XG4gICAgICAgICAgPHVsIGNsYXNzPVwiY3ZfX2hpc3RvcnlcIj5cbiAgICAgICAgICAgIEBmb3IgKGUgb2YgcmVjZW50SGlzdG9yeSgpOyB0cmFjayBlLmF0KSB7XG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cImN2X19oaXN0b3J5LXJvd1wiIFthdHRyLmRhdGEtdG9uZV09XCJlLnJlc3VsdC50b25lXCI+XG4gICAgICAgICAgICAgICAgQGlmIChlLnJlc3VsdC50b25lID09PSAnb2snKSB7XG4gICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZWNrbWFyay1jaXJjbGVcIiAvPlxuICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGUucmVzdWx0LnRvbmUgPT09ICd3YXJuaW5nJykge1xuICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJhbGVydC1jaXJjbGUtb3V0bGluZVwiIC8+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNsb3NlLWNpcmNsZS1vdXRsaW5lXCIgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdl9faGlzdG9yeS10aXRsZVwiPnt7IGUucmVzdWx0LnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3ZfX2hpc3RvcnktY29kZVwiPnt7IHNob3J0Q29kZShlLmNvZGUpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgQGlmIChoaXN0b3J5KCkubGVuZ3RoID4gcmVjZW50TGltaXQpIHtcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY3ZfX2hpc3RvcnktbW9yZVwiIChjbGljayk9XCJoaXN0b3J5T3Blbi5zZXQodHJ1ZSlcIj5cbiAgICAgICAgICAgICAge3sgdCgnaGlzdG9yeU1vcmUnKSB9fSAoe3sgaGlzdG9yeSgpLmxlbmd0aCB9fSlcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgPC9mb290ZXI+XG5cbiAgICAgIDwhLS0gTGlzdGEgY29tcGxldGEuIEVzIHVuYSBjYXBhIERFTlRSTyBkZWwgY29tcG9uZW50ZSB5IG5vIHVuIG1vZGFsXG4gICAgICAgICAgIGVuY2ltYSBkZWwgbW9kYWw6IGFwaWxhciBtb2RhbGVzIHNvYnJlIHVuYSBzZXNpw7NuIGEgcGFudGFsbGEgY29tcGxldGFcbiAgICAgICAgICAgdHJhZSBwcm9ibGVtYXMgZGUgZm9jbyB5IGRlIGNpZXJyZSBxdWUgbm8gc2UganVzdGlmaWNhbiBwYXJhIG1vc3RyYXJcbiAgICAgICAgICAgdW5hIGxpc3RhLiAtLT5cbiAgICAgIEBpZiAoaGlzdG9yeU9wZW4oKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY3ZfX3NoZWV0XCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtbW9kYWw9XCJ0cnVlXCI+XG4gICAgICAgICAgPGhlYWRlciBjbGFzcz1cImN2X19zaGVldC1iYXJcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiY3ZfX25hbWVcIj57eyB0KCdoaXN0b3J5VGl0bGUnKSB9fTwvcD5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY3ZfX2ljb24tYnRuXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwcm9wcy5jbG9zZUxhYmVsIHx8IHQoJ2Nsb3NlJylcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaGlzdG9yeU9wZW4uc2V0KGZhbHNlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvc2Utb3V0bGluZVwiIC8+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2hlYWRlcj5cbiAgICAgICAgICA8dWwgY2xhc3M9XCJjdl9fc2hlZXQtbGlzdFwiPlxuICAgICAgICAgICAgQGZvciAoZSBvZiBoaXN0b3J5KCk7IHRyYWNrIGUuYXQpIHtcbiAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiY3ZfX2hpc3Rvcnktcm93XCIgW2F0dHIuZGF0YS10b25lXT1cImUucmVzdWx0LnRvbmVcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGUucmVzdWx0LnRvbmUgPT09ICdvaycpIHtcbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrLWNpcmNsZVwiIC8+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoZS5yZXN1bHQudG9uZSA9PT0gJ3dhcm5pbmcnKSB7XG4gICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImFsZXJ0LWNpcmNsZS1vdXRsaW5lXCIgLz5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvc2UtY2lyY2xlLW91dGxpbmVcIiAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN2X19oaXN0b3J5LXRpdGxlXCI+e3sgZS5yZXN1bHQudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdl9faGlzdG9yeS1jb2RlXCI+e3sgc2hvcnRDb2RlKGUuY29kZSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2NvZGUtdmFsaWRhdG9yLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvZGVWYWxpZGF0b3JDb21wb25lbnQge1xuICBASW5wdXQoKSBwcm9wczogQ29kZVZhbGlkYXRvck1ldGFkYXRhID0ge307XG5cbiAgLyoqXG4gICAqIExhIHJlZ2xhIGRlbCBwcm9kdWN0by4gU2luIGVzdG8gZWwgY29tcG9uZW50ZSBubyB2YWxpZGEgbmFkYTogbGVlIHkgYXZpc2EuXG4gICAqL1xuICBASW5wdXQoKSB2YWxpZGF0ZT86IFZhbGlkYXRlRm47XG5cbiAgLyoqXG4gICAqIFNlIGVtaXRlIGFwZW5hcyBzZSBsZWUgdW4gY8OzZGlnbywgQU5URVMgZGUgaW52b2NhciBgdmFsaWRhdGVgLiBTaXJ2ZSBwYXJhXG4gICAqIGxvIHF1ZSBubyBkZXBlbmRlIGRlbCByZXN1bHRhZG86IGFuYWzDrXRpY2EgZGUgaW50ZW50byBkZSBlc2NhbmVvLCBvIHF1ZVxuICAgKiBlbCBwcm9kdWN0byBkZWNpZGEgc3UgcHJvcGlhIGVzdHJhdGVnaWEgZGUgcmVpbnRlbnRvIGFscmVkZWRvciBkZVxuICAgKiBgdmFsaWRhdGVgIHNpbiBxdWUgZWwgY29tcG9uZW50ZSBzZXBhIGRlIEhUVFAuXG4gICAqL1xuICBAT3V0cHV0KCkgc2Nhbm5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgdmFsaWRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxWYWxpZGF0aW9uRW50cnk+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jaWEgZGVsIG1vZGFsLCBpbnllY3RhZGEgcG9yIE1vZGFsU2VydmljZS5cbiAgICpcbiAgICogVW4gQE91dHB1dCBOTyBsbGVnYSBhbCBjb25zdW1lciBjdWFuZG8gZWwgY29tcG9uZW50ZSBzZSBtb250YSBjb25cbiAgICogbW9kYWxDb250cm9sbGVyLmNyZWF0ZSgpOiBlbCBtb2RhbCBzZSBjcmVhIGZ1ZXJhIGRlbCDDoXJib2wgZGUgcGxhbnRpbGxhcyB5XG4gICAqIG5vIGhheSBkw7NuZGUgZW5nYW5jaGFyIGVsIGJpbmRpbmcuIFBvciBlc28gZWwgYm90w7NuIGRlIGNlcnJhciBubyBjZXJyYWJhXG4gICAqIG5hZGEuIEVzdMOhIGRvY3VtZW50YWRvIGVuIGZyb250ZW5kL0NMQVVERS5tZCwgUmVnbGEgIzUuXG4gICAqL1xuICBASW5wdXQoKSBfbW9kYWxSZWY/OiB7IGRpc21pc3M6IChkYXRhPzogdW5rbm93biwgcm9sZT86IHN0cmluZykgPT4gdm9pZCB9O1xuXG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgaGFwdGljcyA9IGluamVjdChIYXB0aWNzU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgYnVzeSA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGN1cnJlbnQgPSBzaWduYWw8VmFsaWRhdGlvblJlc3VsdCB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBoaXN0b3J5ID0gc2lnbmFsPFZhbGlkYXRpb25FbnRyeVtdPihbXSk7XG4gIHJlYWRvbmx5IG1hbnVhbE9wZW4gPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBoaXN0b3J5T3BlbiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgLyoqIEN1w6FudGFzIGxlY3R1cmFzIHNlIG11ZXN0cmFuIGVuIGVsIHBpZS4gRWwgcmVzdG8sIGVuIGxhIGxpc3RhIGNvbXBsZXRhLiAqL1xuICByZWFkb25seSByZWNlbnRMaW1pdCA9IDM7XG4gIHJlYWRvbmx5IHNvdW5kT24gPSBzaWduYWwodHJ1ZSk7XG5cbiAgLyoqXG4gICAqIENvbnRyb2wgZGVsIGluZ3Jlc28gbWFudWFsLiBFcyB1biBGb3JtQ29udHJvbCB5IG5vIHVuIG5nTW9kZWwgcG9ycXVlIGVsXG4gICAqIGNhbXBvIGxvIHJlbmRlcml6YSBgdmFsLXRleHQtaW5wdXRgLCBlbCBtaXNtbyBpbnB1dCBxdWUgdXNhIGB2YWwtZm9ybWA6XG4gICAqIGFzw60gZXN0ZSBjYW1wbyBzZSB2ZSBpZ3VhbCBxdWUgY3VhbHF1aWVyIG90cm8gZGUgbGEgbGliIGVuIHZleiBkZSB0ZW5lclxuICAgKiBzdSBwcm9waWEgY2FqYSBkaWJ1amFkYSBhIG1hbm8uXG4gICAqL1xuICByZWFkb25seSBtYW51YWxDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcblxuICAvKipcbiAgICogUHJvcHMgZGVsIGlucHV0IG1hbnVhbCwgZGVyaXZhZGFzIGRlIGxhIGNvbmZpZyBkZWwgY29uc3VtaWRvci5cbiAgICpcbiAgICogQ2FjaGVhZG86IGB2YWwtdGV4dC1pbnB1dGAgaW1wbGVtZW50YSBPbkNoYW5nZXMsIHkgZGV2b2x2ZXIgdW4gb2JqZXRvIG51ZXZvXG4gICAqIGVuIGNhZGEgY2ljbG8gZGUgZGV0ZWNjacOzbiBsbyBoYXLDrWEgcmUtcmVzb2x2ZXIgcHJvcHMgc2luIHBhcmFyLlxuICAgKi9cbiAgcHJpdmF0ZSBtYW51YWxJbnB1dFByb3BzQ2FjaGU/OiBQYXJ0aWFsPElucHV0TWV0YWRhdGE+O1xuXG4gIG1hbnVhbElucHV0UHJvcHMobWFudWFsOiB7IGxhYmVsOiBzdHJpbmc7IHBsYWNlaG9sZGVyPzogc3RyaW5nOyBpbnB1dG1vZGU/OiBzdHJpbmcgfSkge1xuICAgIGlmICghdGhpcy5tYW51YWxJbnB1dFByb3BzQ2FjaGUpIHtcbiAgICAgIHRoaXMubWFudWFsSW5wdXRQcm9wc0NhY2hlID0ge1xuICAgICAgICBjb250cm9sOiB0aGlzLm1hbnVhbENvbnRyb2wsXG4gICAgICAgIHBsYWNlaG9sZGVyOiBtYW51YWwucGxhY2Vob2xkZXIgfHwgJycsXG4gICAgICAgIGlucHV0VHlwZTogbWFudWFsLmlucHV0bW9kZSA9PT0gJ251bWVyaWMnID8gJ251bWJlcicgOiAndGV4dCcsXG4gICAgICAgIGxhYmVsOiBtYW51YWwubGFiZWwsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5tYW51YWxJbnB1dFByb3BzQ2FjaGU7XG4gIH1cblxuICAvKiogQ8OzZGlnbyBlbiB2dWVsbzogZXZpdGEgdmFsaWRhciBkb3MgdmVjZXMgbGEgbWlzbWEgbGVjdHVyYS4gKi9cbiAgcHJpdmF0ZSBpbkZsaWdodCA9ICcnO1xuICBwcml2YXRlIHJlc3VsdFRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKCdDb2RlVmFsaWRhdG9yJywgQ09ERV9WQUxJREFUT1JfSTE4Tik7XG4gIH1cblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCAnQ29kZVZhbGlkYXRvcicpO1xuICB9XG5cbiAgcmVhZG9ubHkgcmVjZW50SGlzdG9yeSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaGlzdG9yeSgpLnNsaWNlKDAsIHRoaXMucmVjZW50TGltaXQpKTtcblxuICAvKipcbiAgICogUmVjb3J0YSBlbCBjw7NkaWdvIHBhcmEgcXVlIHF1ZXBhLlxuICAgKlxuICAgKiBVbiB0b2tlbiBkZSBRUiBvIHVuYSBVUkwgbWlkZW4gZGVjZW5hcyBkZSBjYXJhY3RlcmVzIHksIHNpbiByZWNvcnRhcixcbiAgICogZW1wdWphYmFuIGVsIGFuY2hvIGRlIGxhIGZpbGEgeSB0b2RhIGxhIGxpc3RhIHNlIG1vdsOtYSBkZSBsYWRvLiBTZSBtdWVzdHJhblxuICAgKiBsYXMgcHVudGFzIHBvcnF1ZSBzb24gbGFzIHF1ZSBzaXJ2ZW4gcGFyYSByZWNvbm9jZXJsbyBkZSB1biB2aXN0YXpvLlxuICAgKi9cbiAgc2hvcnRDb2RlKGNvZGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbWF4ID0gMTQ7XG4gICAgaWYgKGNvZGUubGVuZ3RoIDw9IG1heCkgcmV0dXJuIGNvZGU7XG4gICAgcmV0dXJuIGAke2NvZGUuc2xpY2UoMCwgNil94oCmJHtjb2RlLnNsaWNlKC00KX1gO1xuICB9XG5cbiAgcmVhZG9ubHkgb2tDb3VudCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaGlzdG9yeSgpLmZpbHRlcihlID0+IGUucmVzdWx0LnRvbmUgPT09ICdvaycpLmxlbmd0aCk7XG5cbiAgLyoqXG4gICAqIEVsIGVzY8OhbmVyIGFycmFuY2Egc29sbyB5IG5vIHNlIGRldGllbmU6IGxhIHNlc2nDs24gZXMgXCJ1bm8gdHJhcyBvdHJvXCIuXG4gICAqIEVsIGFudGktcmVib3RlIHN1YmUgcG9ycXVlIGFjw6EgY2FkYSBsZWN0dXJhIGRpc3BhcmEgdW5hIGxsYW1hZGEgZGUgcmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2Nhbm5lclByb3BzID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICBhdXRvU3RhcnQ6IHRydWUsXG4gICAgY29udGludW91czogdHJ1ZSxcbiAgICBkZWR1cGVNczogMjUwMCxcbiAgICBvbkRhcms6IHRydWUsXG4gICAgLi4uKHRoaXMucHJvcHMuc2Nhbm5lciA/PyB7fSksXG4gIH0pKTtcblxuICBpY29uRm9yKHRvbmU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHRvbmUgPT09ICdvaycpIHJldHVybiAnY2hlY2ttYXJrLWNpcmNsZSc7XG4gICAgaWYgKHRvbmUgPT09ICd3YXJuaW5nJykgcmV0dXJuICdhbGVydC1jaXJjbGUtb3V0bGluZSc7XG4gICAgcmV0dXJuICdjbG9zZS1jaXJjbGUtb3V0bGluZSc7XG4gIH1cblxuICB0b2dnbGVTb3VuZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNvdW5kT24udXBkYXRlKG9uID0+ICFvbik7XG4gIH1cblxuICBhc3luYyBvblNjYW5uZWQoY29kZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5ydW4oY29kZSk7XG4gIH1cblxuICBhc3luYyBzdWJtaXRNYW51YWwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gU3RyaW5nKCk6IGNvbiBpbnB1dG1vZGUgbnVtZXJpY28gZWwgY29udHJvbCBkZXZ1ZWx2ZSB1biBudW1iZXIsIG5vIHVuXG4gICAgLy8gc3RyaW5nLCB5IGxsYW1hcmxlIC50cmltKCkgcmV2ZW50YWJhIGVsIGVudmlvIGEgbWFuby5cbiAgICBjb25zdCB2YWx1ZSA9IFN0cmluZyh0aGlzLm1hbnVhbENvbnRyb2wudmFsdWUgPz8gJycpLnRyaW0oKTtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgdGhpcy5tYW51YWxDb250cm9sLnNldFZhbHVlKCcnKTtcbiAgICBhd2FpdCB0aGlzLnJ1bih2YWx1ZSk7XG4gIH1cblxuICAvKiogQ2llcnJhIGVsIHJlc3VsdGFkbyB5IHZ1ZWx2ZSBhIGVzY2FuZWFyIHNpbiBlc3BlcmFyIGFsIHRlbXBvcml6YWRvci4gKi9cbiAgZGlzbWlzcygpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyVGltZXIoKTtcbiAgICB0aGlzLmN1cnJlbnQuc2V0KG51bGwpO1xuICB9XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5oaXN0b3J5T3Blbi5zZXQoZmFsc2UpO1xuICAgIHRoaXMuY2xlYXJUaW1lcigpO1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgICB0aGlzLl9tb2RhbFJlZj8uZGlzbWlzcyh7IHZhbGlkYXRlZDogdGhpcy5oaXN0b3J5KCkgfSwgJ2Nsb3NlZCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBydW4oY29kZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdmFsdWUgPSBjb2RlPy50cmltKCk7XG4gICAgaWYgKCF2YWx1ZSB8fCAhdGhpcy52YWxpZGF0ZSkgcmV0dXJuO1xuICAgIC8vIERvcyBsZWN0dXJhcyBkZWwgbWlzbW8gY8OzZGlnbyBtaWVudHJhcyB1bmEgZXN0w6EgZW4gdnVlbG8gc29uIGxhIG1pc21hXG4gICAgLy8gaW50ZW5jacOzbiwgbm8gZG9zOiB2YWxpZGFyIGRvcyB2ZWNlcyBtYXJjYXLDrWEgdW5hIGVudHJhZGEgY29tbyB1c2FkYSBwb3JcbiAgICAvLyBwYXJ0aWRhIGRvYmxlLlxuICAgIGlmICh0aGlzLmJ1c3koKSAmJiB0aGlzLmluRmxpZ2h0ID09PSB2YWx1ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5zY2FubmVkLmVtaXQodmFsdWUpO1xuXG4gICAgdGhpcy5jbGVhclRpbWVyKCk7XG4gICAgdGhpcy5pbkZsaWdodCA9IHZhbHVlO1xuICAgIHRoaXMuYnVzeS5zZXQodHJ1ZSk7XG4gICAgdGhpcy5jdXJyZW50LnNldChudWxsKTtcblxuICAgIGxldCByZXN1bHQ6IFZhbGlkYXRpb25SZXN1bHQ7XG4gICAgdHJ5IHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IHRoaXMudmFsaWRhdGUodmFsdWUpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gRWwgcHJvZHVjdG8gbm8gZGViZXLDrWEgbGFuemFyLCBwZXJvIHNpIGxvIGhhY2UgbGEgc2VzacOzbiBzaWd1ZTogZW4gdW5hXG4gICAgICAvLyBwdWVydGEgY29uIGdlbnRlIGVzcGVyYW5kbywgcXVlZGFyc2UgY29sZ2FkbyBlcyBwZW9yIHF1ZSB1biBlcnJvci5cbiAgICAgIHJlc3VsdCA9IHsgdG9uZTogJ2Vycm9yJywgdGl0bGU6IHRoaXMudCgnZXJyb3InKSB9O1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmJ1c3kuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMuaW5GbGlnaHQgPSAnJztcbiAgICB9XG5cbiAgICB0aGlzLmFubm91bmNlKHJlc3VsdCk7XG5cbiAgICBjb25zdCBlbnRyeTogVmFsaWRhdGlvbkVudHJ5ID0geyBjb2RlOiB2YWx1ZSwgcmVzdWx0LCBhdDogRGF0ZS5ub3coKSB9O1xuICAgIGNvbnN0IGxpbWl0ID0gdGhpcy5wcm9wcy5oaXN0b3J5TGltaXQgPz8gMjA7XG4gICAgdGhpcy5oaXN0b3J5LnVwZGF0ZShsaXN0ID0+IFtlbnRyeSwgLi4ubGlzdF0uc2xpY2UoMCwgbGltaXQpKTtcbiAgICB0aGlzLmN1cnJlbnQuc2V0KHJlc3VsdCk7XG4gICAgdGhpcy52YWxpZGF0ZWQuZW1pdChlbnRyeSk7XG5cbiAgICAvLyBFbCByZXN1bHRhZG8gc2UgdmEgc29sbzogcXVpZW4gZXNjYW5lYSBubyBkZWJlcsOtYSB0ZW5lciBxdWUgdG9jYXIgbmFkYVxuICAgIC8vIGVudHJlIHVuYSBlbnRyYWRhIHkgbGEgc2lndWllbnRlLlxuICAgIHRoaXMucmVzdWx0VGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY3VycmVudC5zZXQobnVsbCksIHRoaXMucHJvcHMucmVzdWx0TXMgPz8gMTgwMCk7XG4gIH1cblxuICAvKiogU29uaWRvICsgaMOhcHRpY2EuIExvcyBkb3Mgc29uIGJlc3QtZWZmb3J0IHkgbmluZ3VubyBmcmVuYSBsYSBzZXNpw7NuLiAqL1xuICBwcml2YXRlIGFubm91bmNlKHJlc3VsdDogVmFsaWRhdGlvblJlc3VsdCk6IHZvaWQge1xuICAgIGNvbnN0IG9rID0gcmVzdWx0LnRvbmUgPT09ICdvayc7XG4gICAgaWYgKHRoaXMucHJvcHMuc291bmQgIT09IGZhbHNlICYmIHRoaXMuc291bmRPbigpKSB7XG4gICAgICBwbGF5VmFsaWRhdGlvblNvdW5kKG9rKTtcbiAgICB9XG4gICAgaWYgKG9rKSB0aGlzLmhhcHRpY3Muc3VjY2VzcygpO1xuICAgIGVsc2UgaWYgKHJlc3VsdC50b25lID09PSAnd2FybmluZycpIHRoaXMuaGFwdGljcy53YXJuaW5nKCk7XG4gICAgZWxzZSB0aGlzLmhhcHRpY3MuZXJyb3IoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJUaW1lcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZXN1bHRUaW1lcikge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMucmVzdWx0VGltZXIpO1xuICAgICAgdGhpcy5yZXN1bHRUaW1lciA9IG51bGw7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -332,7 +332,7 @@ export class CommentSectionComponent {
|
|
|
332
332
|
</div>
|
|
333
333
|
}
|
|
334
334
|
</div>
|
|
335
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.comment-section.loading{pointer-events:none}.section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--ion-color-light-shade)}.header-title{display:flex;align-items:center;gap:8px}.title-icon{font-size:1.5rem;color:var(--ion-color-primary)}.title{margin:0;font-size:1.125rem;font-weight:600;color:var(--ion-text-color)}.count-badge{font-size:.75rem;font-weight:600;--padding-start: 8px;--padding-end: 8px}.header-actions{display:flex;align-items:center;gap:8px}.sort-select-item{--padding-start: 0;--padding-end: 0;--inner-padding-end: 0;--background: transparent;--min-height: 36px}.sort-select-item ion-select{--padding-start: 8px;--padding-end: 8px;min-width:140px;font-size:.875rem}.sort-icon{font-size:1.125rem;color:var(--ion-color-dark);margin-right:4px}.new-comment-section{margin-bottom:24px;padding:16px;background-color:var(--ion-color-light);border-radius:12px}.input-wrapper{display:flex;gap:12px}.input-avatar{flex-shrink:0}.input-avatar val-avatar{--size: 40px}.input-container{flex:1;min-width:0}.comment-textarea{--background: var(--ion-background-color);--padding-start: 12px;--padding-end: 12px;--padding-top: 10px;--padding-bottom: 10px;border-radius:8px;font-size:.875rem;min-height:60px;border:1px solid var(--ion-color-light-shade);transition:border-color .2s}.comment-textarea:focus-within{border-color:var(--ion-color-primary)}.input-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:10px}.char-counter{font-size:.75rem;color:var(--ion-color-dark)}.char-counter.warning{color:var(--ion-color-warning);font-weight:500}.loading-state{display:flex;flex-direction:column;gap:20px}.skeleton-comment{display:flex;gap:12px;padding:12px 0}.skeleton-comment .skeleton-content{flex:1;display:flex;flex-direction:column;gap:8px}.comments-list{display:flex;flex-direction:column;gap:10px}.comments-list.with-dividers{gap:0}.comments-list.with-dividers val-comment{padding:16px 0}.comments-list.with-dividers val-comment:first-child{padding-top:0}.comment-divider{height:1px;background-color:var(--ion-color-light-shade);margin:0}.load-more-section{display:flex;justify-content:center;padding:20px 0}.load-more-section ion-button{min-width:200px}.load-more-section ion-spinner{width:28px;height:28px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-icon{font-size:4rem;color:var(--ion-color-dark);opacity:.5;margin-bottom:16px}.empty-title{margin:0 0 8px;font-size:1.125rem;font-weight:600;color:var(--ion-text-color)}.empty-message{margin:0;font-size:.875rem;color:var(--ion-color-dark);max-width:300px}@media (max-width: 576px){.section-header{flex-direction:column;align-items:flex-start}.header-actions,.sort-select-item{width:100%}.sort-select-item ion-select{width:100%}.input-wrapper{flex-direction:column}.input-avatar{display:none}.input-actions{flex-direction:column;align-items:stretch}.input-actions ion-button{width:100%}}:host-context(body.dark) .new-comment-section,:host-context(.dark) .new-comment-section,:host-context(.ion-palette-dark) .new-comment-section,:host-context(html.ion-palette-dark) .new-comment-section,:host-context([data-theme=dark]) .new-comment-section{background-color:var(--ion-color-step-100, #1a1a1a)}:host-context(body.dark) .comment-textarea,:host-context(.dark) .comment-textarea,:host-context(.ion-palette-dark) .comment-textarea,:host-context(html.ion-palette-dark) .comment-textarea,:host-context([data-theme=dark]) .comment-textarea{--background: var(--ion-color-step-50, #121212);border-color:var(--ion-color-step-200, #2a2a2a)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { kind: "component", type: IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }, { kind: "component", type: CommentComponent, selector: "val-comment", inputs: ["props"], outputs: ["authorClick", "reactionClick", "actionClick", "menuItemClick", "loadMoreClick", "collapseToggle"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: SkeletonComponent, selector: "val-skeleton", inputs: ["props"] }] }); }
|
|
335
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.comment-section.loading{pointer-events:none}.section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--ion-color-light-shade)}.header-title{display:flex;align-items:center;gap:8px}.title-icon{font-size:1.5rem;color:var(--ion-color-primary)}.title{margin:0;font-size:1.125rem;font-weight:600;color:var(--ion-text-color)}.count-badge{font-size:.75rem;font-weight:600;--padding-start: 8px;--padding-end: 8px}.header-actions{display:flex;align-items:center;gap:8px}.sort-select-item{--padding-start: 0;--padding-end: 0;--inner-padding-end: 0;--background: transparent;--min-height: 36px}.sort-select-item ion-select{--padding-start: 8px;--padding-end: 8px;min-width:140px;font-size:.875rem}.sort-icon{font-size:1.125rem;color:var(--ion-color-dark);margin-right:4px}.new-comment-section{margin-bottom:24px;padding:16px;background-color:var(--ion-color-light);border-radius:12px}.input-wrapper{display:flex;gap:12px}.input-avatar{flex-shrink:0}.input-avatar val-avatar{--size: 40px}.input-container{flex:1;min-width:0}.comment-textarea{--background: var(--ion-background-color);--padding-start: 12px;--padding-end: 12px;--padding-top: 10px;--padding-bottom: 10px;border-radius:8px;font-size:.875rem;min-height:60px;border:1px solid var(--ion-color-light-shade);transition:border-color .2s}.comment-textarea:focus-within{border-color:var(--ion-color-primary)}.input-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:10px}.char-counter{font-size:.75rem;color:var(--ion-color-dark)}.char-counter.warning{color:var(--ion-color-warning);font-weight:500}.loading-state{display:flex;flex-direction:column;gap:20px}.skeleton-comment{display:flex;gap:12px;padding:12px 0}.skeleton-comment .skeleton-content{flex:1;display:flex;flex-direction:column;gap:8px}.comments-list{display:flex;flex-direction:column;gap:10px}.comments-list.with-dividers{gap:0}.comments-list.with-dividers val-comment{padding:16px 0}.comments-list.with-dividers val-comment:first-child{padding-top:0}.comment-divider{height:1px;background-color:var(--ion-color-light-shade);margin:0}.load-more-section{display:flex;justify-content:center;padding:20px 0}.load-more-section ion-button{min-width:200px}.load-more-section ion-spinner{width:28px;height:28px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-icon{font-size:4rem;color:var(--ion-color-dark);opacity:.5;margin-bottom:16px}.empty-title{margin:0 0 8px;font-size:1.125rem;font-weight:600;color:var(--ion-text-color)}.empty-message{margin:0;font-size:.875rem;color:var(--ion-color-dark);max-width:300px}@media (max-width: 576px){.section-header{flex-direction:column;align-items:flex-start}.header-actions,.sort-select-item{width:100%}.sort-select-item ion-select{width:100%}.input-wrapper{flex-direction:column}.input-avatar{display:none}.input-actions{flex-direction:column;align-items:stretch}.input-actions ion-button{width:100%}}:host-context(body.dark) .new-comment-section,:host-context(.dark) .new-comment-section,:host-context(.ion-palette-dark) .new-comment-section,:host-context(html.ion-palette-dark) .new-comment-section,:host-context([data-theme=dark]) .new-comment-section{background-color:var(--ion-color-step-100, #1a1a1a)}:host-context(body.dark) .comment-textarea,:host-context(.dark) .comment-textarea,:host-context(.ion-palette-dark) .comment-textarea,:host-context(html.ion-palette-dark) .comment-textarea,:host-context([data-theme=dark]) .comment-textarea{--background: var(--ion-color-step-50, #121212);border-color:var(--ion-color-step-200, #2a2a2a)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { kind: "component", type: IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "errorText", "expandedIcon", "fill", "helperText", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonInfiniteScroll, selector: "ion-infinite-scroll", inputs: ["disabled", "position", "threshold"] }, { kind: "component", type: IonInfiniteScrollContent, selector: "ion-infinite-scroll-content", inputs: ["loadingSpinner", "loadingText"] }, { kind: "component", type: CommentComponent, selector: "val-comment", inputs: ["props"], outputs: ["authorClick", "reactionClick", "actionClick", "menuItemClick", "loadMoreClick", "collapseToggle"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }, { kind: "component", type: SkeletonComponent, selector: "val-skeleton", inputs: ["props"] }] }); }
|
|
336
336
|
}
|
|
337
337
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CommentSectionComponent, decorators: [{
|
|
338
338
|
type: Component,
|
|
@@ -494,7 +494,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
494
494
|
</div>
|
|
495
495
|
}
|
|
496
496
|
</div>
|
|
497
|
-
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.comment-section.loading{pointer-events:none}.section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--ion-color-light-shade)}.header-title{display:flex;align-items:center;gap:8px}.title-icon{font-size:1.5rem;color:var(--ion-color-primary)}.title{margin:0;font-size:1.125rem;font-weight:600;color:var(--ion-text-color)}.count-badge{font-size:.75rem;font-weight:600;--padding-start: 8px;--padding-end: 8px}.header-actions{display:flex;align-items:center;gap:8px}.sort-select-item{--padding-start: 0;--padding-end: 0;--inner-padding-end: 0;--background: transparent;--min-height: 36px}.sort-select-item ion-select{--padding-start: 8px;--padding-end: 8px;min-width:140px;font-size:.875rem}.sort-icon{font-size:1.125rem;color:var(--ion-color-dark);margin-right:4px}.new-comment-section{margin-bottom:24px;padding:16px;background-color:var(--ion-color-light);border-radius:12px}.input-wrapper{display:flex;gap:12px}.input-avatar{flex-shrink:0}.input-avatar val-avatar{--size: 40px}.input-container{flex:1;min-width:0}.comment-textarea{--background: var(--ion-background-color);--padding-start: 12px;--padding-end: 12px;--padding-top: 10px;--padding-bottom: 10px;border-radius:8px;font-size:.875rem;min-height:60px;border:1px solid var(--ion-color-light-shade);transition:border-color .2s}.comment-textarea:focus-within{border-color:var(--ion-color-primary)}.input-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:10px}.char-counter{font-size:.75rem;color:var(--ion-color-dark)}.char-counter.warning{color:var(--ion-color-warning);font-weight:500}.loading-state{display:flex;flex-direction:column;gap:20px}.skeleton-comment{display:flex;gap:12px;padding:12px 0}.skeleton-comment .skeleton-content{flex:1;display:flex;flex-direction:column;gap:8px}.comments-list{display:flex;flex-direction:column;gap:10px}.comments-list.with-dividers{gap:0}.comments-list.with-dividers val-comment{padding:16px 0}.comments-list.with-dividers val-comment:first-child{padding-top:0}.comment-divider{height:1px;background-color:var(--ion-color-light-shade);margin:0}.load-more-section{display:flex;justify-content:center;padding:20px 0}.load-more-section ion-button{min-width:200px}.load-more-section ion-spinner{width:28px;height:28px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-icon{font-size:4rem;color:var(--ion-color-dark);opacity:.5;margin-bottom:16px}.empty-title{margin:0 0 8px;font-size:1.125rem;font-weight:600;color:var(--ion-text-color)}.empty-message{margin:0;font-size:.875rem;color:var(--ion-color-dark);max-width:300px}@media (max-width: 576px){.section-header{flex-direction:column;align-items:flex-start}.header-actions,.sort-select-item{width:100%}.sort-select-item ion-select{width:100%}.input-wrapper{flex-direction:column}.input-avatar{display:none}.input-actions{flex-direction:column;align-items:stretch}.input-actions ion-button{width:100%}}:host-context(body.dark) .new-comment-section,:host-context(.dark) .new-comment-section,:host-context(.ion-palette-dark) .new-comment-section,:host-context(html.ion-palette-dark) .new-comment-section,:host-context([data-theme=dark]) .new-comment-section{background-color:var(--ion-color-step-100, #1a1a1a)}:host-context(body.dark) .comment-textarea,:host-context(.dark) .comment-textarea,:host-context(.ion-palette-dark) .comment-textarea,:host-context(html.ion-palette-dark) .comment-textarea,:host-context([data-theme=dark]) .comment-textarea{--background: var(--ion-color-step-50, #121212);border-color:var(--ion-color-step-200, #2a2a2a)}\n"] }]
|
|
497
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--val-radius-xs: 10px;--val-radius-sm: 16px;--val-radius-md: 20px;--val-radius-lg: 28px;--val-radius-xl: 36px;--val-radius-full: 999px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.comment-section.loading{pointer-events:none}.section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--ion-color-light-shade)}.header-title{display:flex;align-items:center;gap:8px}.title-icon{font-size:1.5rem;color:var(--ion-color-primary)}.title{margin:0;font-size:1.125rem;font-weight:600;color:var(--ion-text-color)}.count-badge{font-size:.75rem;font-weight:600;--padding-start: 8px;--padding-end: 8px}.header-actions{display:flex;align-items:center;gap:8px}.sort-select-item{--padding-start: 0;--padding-end: 0;--inner-padding-end: 0;--background: transparent;--min-height: 36px}.sort-select-item ion-select{--padding-start: 8px;--padding-end: 8px;min-width:140px;font-size:.875rem}.sort-icon{font-size:1.125rem;color:var(--ion-color-dark);margin-right:4px}.new-comment-section{margin-bottom:24px;padding:16px;background-color:var(--ion-color-light);border-radius:12px}.input-wrapper{display:flex;gap:12px}.input-avatar{flex-shrink:0}.input-avatar val-avatar{--size: 40px}.input-container{flex:1;min-width:0}.comment-textarea{--background: var(--ion-background-color);--padding-start: 12px;--padding-end: 12px;--padding-top: 10px;--padding-bottom: 10px;border-radius:8px;font-size:.875rem;min-height:60px;border:1px solid var(--ion-color-light-shade);transition:border-color .2s}.comment-textarea:focus-within{border-color:var(--ion-color-primary)}.input-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:10px}.char-counter{font-size:.75rem;color:var(--ion-color-dark)}.char-counter.warning{color:var(--ion-color-warning);font-weight:500}.loading-state{display:flex;flex-direction:column;gap:20px}.skeleton-comment{display:flex;gap:12px;padding:12px 0}.skeleton-comment .skeleton-content{flex:1;display:flex;flex-direction:column;gap:8px}.comments-list{display:flex;flex-direction:column;gap:10px}.comments-list.with-dividers{gap:0}.comments-list.with-dividers val-comment{padding:16px 0}.comments-list.with-dividers val-comment:first-child{padding-top:0}.comment-divider{height:1px;background-color:var(--ion-color-light-shade);margin:0}.load-more-section{display:flex;justify-content:center;padding:20px 0}.load-more-section ion-button{min-width:200px}.load-more-section ion-spinner{width:28px;height:28px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-icon{font-size:4rem;color:var(--ion-color-dark);opacity:.5;margin-bottom:16px}.empty-title{margin:0 0 8px;font-size:1.125rem;font-weight:600;color:var(--ion-text-color)}.empty-message{margin:0;font-size:.875rem;color:var(--ion-color-dark);max-width:300px}@media (max-width: 576px){.section-header{flex-direction:column;align-items:flex-start}.header-actions,.sort-select-item{width:100%}.sort-select-item ion-select{width:100%}.input-wrapper{flex-direction:column}.input-avatar{display:none}.input-actions{flex-direction:column;align-items:stretch}.input-actions ion-button{width:100%}}:host-context(body.dark) .new-comment-section,:host-context(.dark) .new-comment-section,:host-context(.ion-palette-dark) .new-comment-section,:host-context(html.ion-palette-dark) .new-comment-section,:host-context([data-theme=dark]) .new-comment-section{background-color:var(--ion-color-step-100, #1a1a1a)}:host-context(body.dark) .comment-textarea,:host-context(.dark) .comment-textarea,:host-context(.ion-palette-dark) .comment-textarea,:host-context(html.ion-palette-dark) .comment-textarea,:host-context([data-theme=dark]) .comment-textarea{--background: var(--ion-color-step-50, #121212);border-color:var(--ion-color-step-200, #2a2a2a)}\n"] }]
|
|
498
498
|
}], propDecorators: { props: [{
|
|
499
499
|
type: Input
|
|
500
500
|
}], sortChange: [{
|
|
@@ -518,4 +518,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
518
518
|
}], replyStart: [{
|
|
519
519
|
type: Output
|
|
520
520
|
}] } });
|
|
521
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvY29tbWVudC1zZWN0aW9uL2NvbW1lbnQtc2VjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUNMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxPQUFPLEVBQ1AsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsaUJBQWlCLEVBQ2pCLHdCQUF3QixHQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsV0FBVyxFQUNYLHlCQUF5QixFQUN6QixtQkFBbUIsR0FDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7OztBQWdCNUUsUUFBUSxDQUFDO0lBQ1Asa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixXQUFXO0lBQ1gseUJBQXlCO0lBQ3pCLG1CQUFtQjtDQUNwQixDQUFD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aWFBQ1gsT0FBTywwTkFDUCxTQUFTLGtWQUNULGVBQWUsNkZBQ2YsVUFBVSx5R0FDVixpQkFBaUIsK0dBQ2pCLHdCQUF3QixtSEFDeEIsZ0JBQWdCLHlMQUNoQixlQUFlLDBHQUNmLGlCQUFpQjs7NEZBOExSLHVCQUF1QjtrQkFoTm5DLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsT0FBTzt3QkFDUCxTQUFTO3dCQUNULFFBQVE7d0JBQ1IsV0FBVzt3QkFDWCxPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsZUFBZTt3QkFDZixVQUFVO3dCQUNWLGlCQUFpQjt3QkFDakIsd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsaUJBQWlCO3FCQUNsQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOElUOzhCQWlEUSxLQUFLO3NCQUFiLEtBQUs7Z0JBR0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBR0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBR0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7XG4gIElvbkljb24sXG4gIElvbkJ1dHRvbixcbiAgSW9uQmFkZ2UsXG4gIElvblRleHRhcmVhLFxuICBJb25JdGVtLFxuICBJb25TZWxlY3QsXG4gIElvblNlbGVjdE9wdGlvbixcbiAgSW9uU3Bpbm5lcixcbiAgSW9uSW5maW5pdGVTY3JvbGwsXG4gIElvbkluZmluaXRlU2Nyb2xsQ29udGVudCxcbn0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7XG4gIGNoYXRidWJibGVzT3V0bGluZSxcbiAgZmlsdGVyT3V0bGluZSxcbiAgc2VuZE91dGxpbmUsXG4gIGNoYXRidWJibGVFbGxpcHNlc091dGxpbmUsXG4gIHN3YXBWZXJ0aWNhbE91dGxpbmUsXG59IGZyb20gJ2lvbmljb25zL2ljb25zJztcblxuaW1wb3J0IHsgQ29tbWVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jb21tZW50L2NvbW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvc2tlbGV0b24vc2tlbGV0b24uY29tcG9uZW50JztcbmltcG9ydCB7XG4gIENvbW1lbnRTZWN0aW9uTWV0YWRhdGEsXG4gIENvbW1lbnRTb3J0T3B0aW9uLFxuICBDb21tZW50U29ydENoYW5nZUV2ZW50LFxuICBDb21tZW50U3VibWl0RXZlbnQsXG4gIENvbW1lbnRTZWN0aW9uTG9hZE1vcmVFdmVudCxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICBDb21tZW50QXV0aG9yQ2xpY2tFdmVudCxcbiAgQ29tbWVudFJlYWN0aW9uQ2xpY2tFdmVudCxcbiAgQ29tbWVudEFjdGlvbkNsaWNrRXZlbnQsXG4gIENvbW1lbnRNZW51SXRlbUNsaWNrRXZlbnQsXG4gIENvbW1lbnRMb2FkTW9yZUV2ZW50LFxufSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY29tbWVudC90eXBlcyc7XG5cbmFkZEljb25zKHtcbiAgY2hhdGJ1YmJsZXNPdXRsaW5lLFxuICBmaWx0ZXJPdXRsaW5lLFxuICBzZW5kT3V0bGluZSxcbiAgY2hhdGJ1YmJsZUVsbGlwc2VzT3V0bGluZSxcbiAgc3dhcFZlcnRpY2FsT3V0bGluZSxcbn0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY29tbWVudC1zZWN0aW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBJb25JY29uLFxuICAgIElvbkJ1dHRvbixcbiAgICBJb25CYWRnZSxcbiAgICBJb25UZXh0YXJlYSxcbiAgICBJb25JdGVtLFxuICAgIElvblNlbGVjdCxcbiAgICBJb25TZWxlY3RPcHRpb24sXG4gICAgSW9uU3Bpbm5lcixcbiAgICBJb25JbmZpbml0ZVNjcm9sbCxcbiAgICBJb25JbmZpbml0ZVNjcm9sbENvbnRlbnQsXG4gICAgQ29tbWVudENvbXBvbmVudCxcbiAgICBBdmF0YXJDb21wb25lbnQsXG4gICAgU2tlbGV0b25Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtc2VjdGlvblwiIFtjbGFzcy5sb2FkaW5nXT1cInByb3BzLmxvYWRpbmdcIj5cbiAgICAgIDwhLS0gSGVhZGVyIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdGl0bGVcIj5cbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoYXRidWJibGVzLW91dGxpbmVcIiBjbGFzcz1cInRpdGxlLWljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIDxoMyBjbGFzcz1cInRpdGxlXCI+e3sgZGlzcGxheVRpdGxlIH19PC9oMz5cbiAgICAgICAgICBAaWYgKHByb3BzLnNob3dDb3VudCAhPT0gZmFsc2UgJiYgcHJvcHMuY291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgPGlvbi1iYWRnZSBjb2xvcj1cIm1lZGl1bVwiIGNsYXNzPVwiY291bnQtYmFkZ2VcIj5cbiAgICAgICAgICAgICAge3sgZm9ybWF0Q291bnQocHJvcHMuY291bnQpIH19XG4gICAgICAgICAgICA8L2lvbi1iYWRnZT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIEBpZiAocHJvcHMuc29ydE9wdGlvbnMgJiYgcHJvcHMuc29ydE9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGlvbi1pdGVtIGxpbmVzPVwibm9uZVwiIGNsYXNzPVwic29ydC1zZWxlY3QtaXRlbVwiPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInN3YXAtdmVydGljYWwtb3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiIGNsYXNzPVwic29ydC1pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgPGlvbi1zZWxlY3RcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwicHJvcHMuc2VsZWN0ZWRTb3J0XCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicHJvcHMuc29ydExhYmVsIHx8IGdldFNvcnRCeUxhYmVsKClcIlxuICAgICAgICAgICAgICAgIGludGVyZmFjZT1cInBvcG92ZXJcIlxuICAgICAgICAgICAgICAgIChpb25DaGFuZ2UpPVwib25Tb3J0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGZvciAob3B0aW9uIG9mIHByb3BzLnNvcnRPcHRpb25zOyB0cmFjayBvcHRpb24udG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgIDxpb24tc2VsZWN0LW9wdGlvbiBbdmFsdWVdPVwib3B0aW9uLnRva2VuXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdldFNvcnRPcHRpb25MYWJlbChvcHRpb24pIH19XG4gICAgICAgICAgICAgICAgICA8L2lvbi1zZWxlY3Qtb3B0aW9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9pb24tc2VsZWN0PlxuICAgICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gTmV3IENvbW1lbnQgSW5wdXQgLS0+XG4gICAgICBAaWYgKHByb3BzLnNob3dJbnB1dCAhPT0gZmFsc2UpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5ldy1jb21tZW50LXNlY3Rpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICAgICAgQGlmIChwcm9wcy5pbnB1dENvbmZpZz8uY3VycmVudFVzZXI/LmF2YXRhcikge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtYXZhdGFyXCI+XG4gICAgICAgICAgICAgICAgPHZhbC1hdmF0YXIgW3Byb3BzXT1cInByb3BzLmlucHV0Q29uZmlnLmN1cnJlbnRVc2VyLmF2YXRhclwiPjwvdmFsLWF2YXRhcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgPGlvbi10ZXh0YXJlYVxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibmV3Q29tbWVudFRleHRcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJnZXRJbnB1dFBsYWNlaG9sZGVyKClcIlxuICAgICAgICAgICAgICAgIFttYXhsZW5ndGhdPVwicHJvcHMuaW5wdXRDb25maWc/Lm1heExlbmd0aCB8fCAyMDAwXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicHJvcHMuaW5wdXRDb25maWc/LmRpc2FibGVkIHx8IHByb3BzLmxvYWRpbmdcIlxuICAgICAgICAgICAgICAgIFthdXRvR3Jvd109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICByb3dzPVwiMlwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb21tZW50LXRleHRhcmVhXCJcbiAgICAgICAgICAgICAgPjwvaW9uLXRleHRhcmVhPlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgQGlmIChwcm9wcy5pbnB1dENvbmZpZz8uc2hvd0NvdW50ZXIgJiYgcHJvcHMuaW5wdXRDb25maWc/Lm1heExlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGFyLWNvdW50ZXJcIiBbY2xhc3Mud2FybmluZ109XCJpc05lYXJMaW1pdCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IG5ld0NvbW1lbnRUZXh0Lmxlbmd0aCB9fSAvIHt7IHByb3BzLmlucHV0Q29uZmlnLm1heExlbmd0aCB9fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICBbY29sb3JdPVwicHJvcHMuaW5wdXRDb25maWc/LnN1Ym1pdENvbG9yIHx8IHByb3BzLmNvbG9yIHx8ICdwcmltYXJ5J1wiXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWNhblN1Ym1pdCgpXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TdWJtaXRDb21tZW50KClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwic2VuZC1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgICAgIHt7IGdldFN1Ym1pdExhYmVsKCkgfX1cbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICBAaWYgKHByb3BzLmxvYWRpbmcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctc3RhdGVcIj5cbiAgICAgICAgICBAZm9yIChpIG9mIGdldFNrZWxldG9uQXJyYXkoKTsgdHJhY2sgaSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNrZWxldG9uLWNvbW1lbnRcIj5cbiAgICAgICAgICAgICAgPHZhbC1za2VsZXRvbiBbcHJvcHNdPVwieyB0eXBlOiAnYXZhdGFyJywgd2lkdGg6ICczNnB4JywgaGVpZ2h0OiAnMzZweCcgfVwiPjwvdmFsLXNrZWxldG9uPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2tlbGV0b24tY29udGVudFwiPlxuICAgICAgICAgICAgICAgIDx2YWwtc2tlbGV0b24gW3Byb3BzXT1cInsgdHlwZTogJ3RleHQnLCB3aWR0aDogJzEyMHB4JywgaGVpZ2h0OiAnMTRweCcgfVwiPjwvdmFsLXNrZWxldG9uPlxuICAgICAgICAgICAgICAgIDx2YWwtc2tlbGV0b24gW3Byb3BzXT1cInsgdHlwZTogJ3BhcmFncmFwaCcsIGxpbmVzOiAyIH1cIj48L3ZhbC1za2VsZXRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSBpZiAocHJvcHMuY29tbWVudHMgJiYgcHJvcHMuY29tbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWVudHMtbGlzdFwiIFtjbGFzcy53aXRoLWRpdmlkZXJzXT1cInByb3BzLnNob3dEaXZpZGVyc1wiPlxuICAgICAgICAgIEBmb3IgKGNvbW1lbnQgb2YgcHJvcHMuY29tbWVudHM7IHRyYWNrIGNvbW1lbnQudG9rZW4pIHtcbiAgICAgICAgICAgIDx2YWwtY29tbWVudFxuICAgICAgICAgICAgICBbcHJvcHNdPVwiY29tbWVudFwiXG4gICAgICAgICAgICAgIChhdXRob3JDbGljayk9XCJhdXRob3JDbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAocmVhY3Rpb25DbGljayk9XCJyZWFjdGlvbkNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChhY3Rpb25DbGljayk9XCJvbkNvbW1lbnRBY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChtZW51SXRlbUNsaWNrKT1cIm1lbnVJdGVtQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGxvYWRNb3JlQ2xpY2spPVwiY29tbWVudExvYWRNb3JlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChjb2xsYXBzZVRvZ2dsZSk9XCJjb2xsYXBzZVRvZ2dsZS5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgPjwvdmFsLWNvbW1lbnQ+XG5cbiAgICAgICAgICAgIEBpZiAocHJvcHMuc2hvd0RpdmlkZXJzICYmICEkbGFzdCkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWVudC1kaXZpZGVyXCI+PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChwcm9wcy5oYXNNb3JlICYmIHByb3BzLnBhZ2luYXRpb25Nb2RlICE9PSAnaW5maW5pdGUnKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZC1tb3JlLXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgQGlmIChwcm9wcy5sb2FkaW5nTW9yZSkge1xuICAgICAgICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY2lyY3VsYXJcIiBbY29sb3JdPVwicHJvcHMuY29sb3IgfHwgJ3ByaW1hcnknXCI+PC9pb24tc3Bpbm5lcj5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBbY29sb3JdPVwicHJvcHMuY29sb3IgfHwgJ3ByaW1hcnknXCIgZXhwYW5kPVwiYmxvY2tcIiAoY2xpY2spPVwib25Mb2FkTW9yZSgpXCI+XG4gICAgICAgICAgICAgICAgICB7eyBkaXNwbGF5TG9hZE1vcmVMYWJlbCB9fVxuICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKHByb3BzLnBhZ2luYXRpb25Nb2RlID09PSAnaW5maW5pdGUnKSB7XG4gICAgICAgICAgPGlvbi1pbmZpbml0ZS1zY3JvbGxcbiAgICAgICAgICAgIFt0aHJlc2hvbGRdPVwicHJvcHMuaW5maW5pdGVTY3JvbGxUaHJlc2hvbGQgfHwgJzEwMHB4J1wiXG4gICAgICAgICAgICBbcG9zaXRpb25dPVwicHJvcHMuaW5maW5pdGVTY3JvbGxQb3NpdGlvbiB8fCAnYm90dG9tJ1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXByb3BzLmhhc01vcmVcIlxuICAgICAgICAgICAgKGlvbkluZmluaXRlKT1cIm9uSW5maW5pdGVTY3JvbGwoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlvbi1pbmZpbml0ZS1zY3JvbGwtY29udGVudFxuICAgICAgICAgICAgICBbbG9hZGluZ1NwaW5uZXJdPVwiJ2NyZXNjZW50J1wiXG4gICAgICAgICAgICAgIFtsb2FkaW5nVGV4dF09XCJkaXNwbGF5TG9hZE1vcmVMYWJlbFwiXG4gICAgICAgICAgICA+PC9pb24taW5maW5pdGUtc2Nyb2xsLWNvbnRlbnQ+XG4gICAgICAgICAgPC9pb24taW5maW5pdGUtc2Nyb2xsPlxuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+XG4gICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInByb3BzLmVtcHR5U3RhdGU/Lmljb24gfHwgJ2NoYXRidWJibGUtZWxsaXBzZXMtb3V0bGluZSdcIiBjbGFzcz1cImVtcHR5LWljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIDxoNCBjbGFzcz1cImVtcHR5LXRpdGxlXCI+e3sgZ2V0RW1wdHlUaXRsZSgpIH19PC9oND5cbiAgICAgICAgICA8cCBjbGFzcz1cImVtcHR5LW1lc3NhZ2VcIj57eyBnZXRFbXB0eU1lc3NhZ2UoKSB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2NvbW1lbnQtc2VjdGlvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLWNvbW1lbnQtc2VjdGlvblxuICpcbiAqIEFuIG9yZ2FuaXNtIGNvbXBvbmVudCB0aGF0IHByb3ZpZGVzIGEgY29tcGxldGUgY29tbWVudCBzZWN0aW9uIHdpdGg6XG4gKiAtIEhlYWRlciB3aXRoIHRpdGxlIGFuZCBjb3VudFxuICogLSBTb3J0L2ZpbHRlciBvcHRpb25zXG4gKiAtIE5ldyBjb21tZW50IGlucHV0XG4gKiAtIENvbW1lbnRzIGxpc3Qgd2l0aCB2YWwtY29tbWVudFxuICogLSBMb2FkIG1vcmUgcGFnaW5hdGlvblxuICogLSBFbXB0eSBzdGF0ZVxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlXG4gKiA8dmFsLWNvbW1lbnQtc2VjdGlvbiBbcHJvcHNdPVwie1xuICogICB0aXRsZTogJ0NvbW1lbnRzJyxcbiAqICAgY291bnQ6IDQyLFxuICogICBjb21tZW50czogY29tbWVudHNBcnJheSxcbiAqICAgc2hvd0lucHV0OiB0cnVlXG4gKiB9XCI+PC92YWwtY29tbWVudC1zZWN0aW9uPlxuICpcbiAqIEBleGFtcGxlIFdpdGggc29ydGluZ1xuICogPHZhbC1jb21tZW50LXNlY3Rpb24gW3Byb3BzXT1cIntcbiAqICAgdGl0bGU6ICdSZXZpZXdzJyxcbiAqICAgY291bnQ6IDEyOCxcbiAqICAgY29tbWVudHM6IHJldmlld3MsXG4gKiAgIHNvcnRPcHRpb25zOiBbXG4gKiAgICAgeyB0b2tlbjogJ25ld2VzdCcsIGxhYmVsOiAnTmV3ZXN0IGZpcnN0JyB9LFxuICogICAgIHsgdG9rZW46ICdvbGRlc3QnLCBsYWJlbDogJ09sZGVzdCBmaXJzdCcgfSxcbiAqICAgICB7IHRva2VuOiAncG9wdWxhcicsIGxhYmVsOiAnTW9zdCBwb3B1bGFyJyB9XG4gKiAgIF0sXG4gKiAgIHNlbGVjdGVkU29ydDogJ25ld2VzdCdcbiAqIH1cIiAoc29ydENoYW5nZSk9XCJvblNvcnQoJGV2ZW50KVwiPjwvdmFsLWNvbW1lbnQtc2VjdGlvbj5cbiAqXG4gKiBAaW5wdXQgcHJvcHM6IENvbW1lbnRTZWN0aW9uTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgc2VjdGlvblxuICogQG91dHB1dCBzb3J0Q2hhbmdlIC0gU29ydCBvcHRpb24gY2hhbmdlZFxuICogQG91dHB1dCBjb21tZW50U3VibWl0IC0gTmV3IGNvbW1lbnQgc3VibWl0dGVkXG4gKiBAb3V0cHV0IGxvYWRNb3JlIC0gTG9hZCBtb3JlIGNsaWNrZWRcbiAqIEBvdXRwdXQgYXV0aG9yQ2xpY2sgLSBDb21tZW50IGF1dGhvciBjbGlja2VkIChidWJibGVkIGZyb20gdmFsLWNvbW1lbnQpXG4gKiBAb3V0cHV0IHJlYWN0aW9uQ2xpY2sgLSBSZWFjdGlvbiBjbGlja2VkIChidWJibGVkKVxuICogQG91dHB1dCBhY3Rpb25DbGljayAtIEFjdGlvbiBjbGlja2VkIChidWJibGVkKVxuICogQG91dHB1dCBtZW51SXRlbUNsaWNrIC0gTWVudSBpdGVtIGNsaWNrZWQgKGJ1YmJsZWQpXG4gKiBAb3V0cHV0IGNvbW1lbnRMb2FkTW9yZSAtIExvYWQgbW9yZSByZXBsaWVzIGNsaWNrZWQgKGJ1YmJsZWQpXG4gKiBAb3V0cHV0IGNvbGxhcHNlVG9nZ2xlIC0gQ29tbWVudCBjb2xsYXBzZSB0b2dnbGVkIChidWJibGVkKVxuICovXG5leHBvcnQgY2xhc3MgQ29tbWVudFNlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXG4gIEBJbnB1dCgpIHByb3BzOiBDb21tZW50U2VjdGlvbk1ldGFkYXRhO1xuXG4gIC8vIFNlY3Rpb24gZXZlbnRzXG4gIEBPdXRwdXQoKSBzb3J0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50U29ydENoYW5nZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgY29tbWVudFN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudFN1Ym1pdEV2ZW50PigpO1xuICBAT3V0cHV0KCkgbG9hZE1vcmUgPSBuZXcgRXZlbnRFbWl0dGVyPENvbW1lbnRTZWN0aW9uTG9hZE1vcmVFdmVudD4oKTtcblxuICAvLyBCdWJibGVkIGV2ZW50cyBmcm9tIHZhbC1jb21tZW50XG4gIEBPdXRwdXQoKSBhdXRob3JDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudEF1dGhvckNsaWNrRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSByZWFjdGlvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50UmVhY3Rpb25DbGlja0V2ZW50PigpO1xuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPENvbW1lbnRBY3Rpb25DbGlja0V2ZW50PigpO1xuICBAT3V0cHV0KCkgbWVudUl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudE1lbnVJdGVtQ2xpY2tFdmVudD4oKTtcbiAgQE91dHB1dCgpIGNvbW1lbnRMb2FkTW9yZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudExvYWRNb3JlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBjb2xsYXBzZVRvZ2dsZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0b2tlbjogc3RyaW5nOyBjb2xsYXBzZWQ6IGJvb2xlYW4gfT4oKTtcblxuICAvLyBSZXBseSBzdGF0ZVxuICBAT3V0cHV0KCkgcmVwbHlTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBjb21tZW50VG9rZW46IHN0cmluZyB9PigpO1xuXG4gIG5ld0NvbW1lbnRUZXh0ID0gJyc7XG4gIHJlcGx5aW5nVG86IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGRpc3BsYXlUaXRsZSA9ICcnO1xuICBkaXNwbGF5TG9hZE1vcmVMYWJlbCA9ICcnO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRGlzcGxheVRleHRzKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURpc3BsYXlUZXh0cygpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXlUaXRsZSA9IHRoaXMucHJvcHMudGl0bGUgfHwgdGhpcy5pMThuLnQoJ2NvbW1lbnRzJyk7XG4gICAgdGhpcy5kaXNwbGF5TG9hZE1vcmVMYWJlbCA9IHRoaXMucHJvcHMubG9hZE1vcmVMYWJlbCB8fCB0aGlzLmkxOG4udCgnbG9hZE1vcmVDb21tZW50cycpO1xuICB9XG5cbiAgZ2V0U29ydEJ5TGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoJ3NvcnRCeScpO1xuICB9XG5cbiAgZm9ybWF0Q291bnQoY291bnQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKGNvdW50ID49IDEwMDAwMDApIHtcbiAgICAgIHJldHVybiAoY291bnQgLyAxMDAwMDAwKS50b0ZpeGVkKDEpLnJlcGxhY2UoL1xcLjAkLywgJycpICsgJ00nO1xuICAgIH1cbiAgICBpZiAoY291bnQgPj0gMTAwMCkge1xuICAgICAgcmV0dXJuIChjb3VudCAvIDEwMDApLnRvRml4ZWQoMSkucmVwbGFjZSgvXFwuMCQvLCAnJykgKyAnSyc7XG4gICAgfVxuICAgIHJldHVybiBjb3VudC50b1N0cmluZygpO1xuICB9XG5cbiAgZ2V0U29ydE9wdGlvbkxhYmVsKG9wdGlvbjogQ29tbWVudFNvcnRPcHRpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBvcHRpb24ubGFiZWw7XG4gIH1cblxuICBnZXRJbnB1dFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuaW5wdXRDb25maWc/LnBsYWNlaG9sZGVyIHx8IHRoaXMuaTE4bi50KCd3cml0ZUNvbW1lbnQnKTtcbiAgfVxuXG4gIGdldFN1Ym1pdExhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuaW5wdXRDb25maWc/LnN1Ym1pdExhYmVsIHx8IHRoaXMuaTE4bi50KCdwdWJsaXNoJyk7XG4gIH1cblxuICBnZXRFbXB0eVRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZW1wdHlTdGF0ZT8udGl0bGUgfHwgdGhpcy5pMThuLnQoJ25vQ29tbWVudHNZZXQnKTtcbiAgfVxuXG4gIGdldEVtcHR5TWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmVtcHR5U3RhdGU/Lm1lc3NhZ2UgfHwgdGhpcy5pMThuLnQoJ2JlRmlyc3RUb0NvbW1lbnQnKTtcbiAgfVxuXG4gIGdldFNrZWxldG9uQXJyYXkoKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IGNvdW50ID0gdGhpcy5wcm9wcy5za2VsZXRvbkNvdW50IHx8IDM7XG4gICAgcmV0dXJuIEFycmF5KGNvdW50KVxuICAgICAgLmZpbGwoMClcbiAgICAgIC5tYXAoKF8sIGkpID0+IGkpO1xuICB9XG5cbiAgY2FuU3VibWl0KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG1pbkxlbmd0aCA9IHRoaXMucHJvcHMuaW5wdXRDb25maWc/Lm1pbkxlbmd0aCB8fCAxO1xuICAgIHJldHVybiB0aGlzLm5ld0NvbW1lbnRUZXh0LnRyaW0oKS5sZW5ndGggPj0gbWluTGVuZ3RoICYmICF0aGlzLnByb3BzLmxvYWRpbmcgJiYgIXRoaXMucHJvcHMuaW5wdXRDb25maWc/LmRpc2FibGVkO1xuICB9XG5cbiAgaXNOZWFyTGltaXQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbWF4TGVuZ3RoID0gdGhpcy5wcm9wcy5pbnB1dENvbmZpZz8ubWF4TGVuZ3RoIHx8IDIwMDA7XG4gICAgcmV0dXJuIHRoaXMubmV3Q29tbWVudFRleHQubGVuZ3RoID4gbWF4TGVuZ3RoICogMC45O1xuICB9XG5cbiAgb25Tb3J0Q2hhbmdlKGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkVG9rZW4gPSBldmVudC5kZXRhaWwudmFsdWU7XG4gICAgY29uc3Qgb3B0aW9uID0gdGhpcy5wcm9wcy5zb3J0T3B0aW9ucz8uZmluZChvID0+IG8udG9rZW4gPT09IHNlbGVjdGVkVG9rZW4pO1xuXG4gICAgaWYgKG9wdGlvbikge1xuICAgICAgdGhpcy5zb3J0Q2hhbmdlLmVtaXQoe1xuICAgICAgICBvcHRpb24sXG4gICAgICAgIHByZXZpb3VzU29ydDogdGhpcy5wcm9wcy5zZWxlY3RlZFNvcnQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvblN1Ym1pdENvbW1lbnQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNhblN1Ym1pdCgpKSByZXR1cm47XG5cbiAgICB0aGlzLmNvbW1lbnRTdWJtaXQuZW1pdCh7XG4gICAgICBjb250ZW50OiB0aGlzLm5ld0NvbW1lbnRUZXh0LnRyaW0oKSxcbiAgICAgIHBhcmVudFRva2VuOiB0aGlzLnJlcGx5aW5nVG8gfHwgdW5kZWZpbmVkLFxuICAgICAgc2VjdGlvblRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uZXdDb21tZW50VGV4dCA9ICcnO1xuICAgIHRoaXMucmVwbHlpbmdUbyA9IG51bGw7XG4gIH1cblxuICBvbkNvbW1lbnRBY3Rpb24oZXZlbnQ6IENvbW1lbnRBY3Rpb25DbGlja0V2ZW50KTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgaWYgaXQncyBhIHJlcGx5IGFjdGlvblxuICAgIGlmIChldmVudC5hY3Rpb24udG9rZW4gPT09ICdyZXBseScpIHtcbiAgICAgIHRoaXMucmVwbHlpbmdUbyA9IGV2ZW50LmNvbW1lbnRUb2tlbjtcbiAgICAgIHRoaXMucmVwbHlTdGFydC5lbWl0KHsgY29tbWVudFRva2VuOiBldmVudC5jb21tZW50VG9rZW4gfSk7XG4gICAgfVxuXG4gICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uTG9hZE1vcmUoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkTW9yZS5lbWl0KHtcbiAgICAgIHNlY3Rpb25Ub2tlbjogdGhpcy5wcm9wcy50b2tlbixcbiAgICAgIGN1cnJlbnRDb3VudDogdGhpcy5wcm9wcy5jb21tZW50cz8ubGVuZ3RoIHx8IDAsXG4gICAgfSk7XG4gIH1cblxuICBvbkluZmluaXRlU2Nyb2xsKGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIHRoaXMubG9hZE1vcmUuZW1pdCh7XG4gICAgICBzZWN0aW9uVG9rZW46IHRoaXMucHJvcHMudG9rZW4sXG4gICAgICBjdXJyZW50Q291bnQ6IHRoaXMucHJvcHMuY29tbWVudHM/Lmxlbmd0aCB8fCAwLFxuICAgIH0pO1xuXG4gICAgLy8gVGhlIHBhcmVudCBjb21wb25lbnQgc2hvdWxkIGNhbGwgY29tcGxldGVJbmZpbml0ZVNjcm9sbCgpIHdoZW4gZG9uZSBsb2FkaW5nXG4gICAgLy8gU3RvcmUgcmVmZXJlbmNlIHRvIGNvbXBsZXRlIHRoZSBpbmZpbml0ZSBzY3JvbGxcbiAgICB0aGlzLmluZmluaXRlU2Nyb2xsRXZlbnQgPSBldmVudDtcbiAgfVxuXG4gIC8vIENhbGwgdGhpcyBtZXRob2QgZnJvbSBwYXJlbnQgYWZ0ZXIgbG9hZGluZyBtb3JlIGNvbW1lbnRzXG4gIGNvbXBsZXRlSW5maW5pdGVTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5maW5pdGVTY3JvbGxFdmVudCkge1xuICAgICAgKHRoaXMuaW5maW5pdGVTY3JvbGxFdmVudC50YXJnZXQgYXMgSFRNTElvbkluZmluaXRlU2Nyb2xsRWxlbWVudCkuY29tcGxldGUoKTtcbiAgICAgIHRoaXMuaW5maW5pdGVTY3JvbGxFdmVudCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbmZpbml0ZVNjcm9sbEV2ZW50OiBDdXN0b21FdmVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8vIE1ldGhvZCB0byBwcm9ncmFtbWF0aWNhbGx5IHN0YXJ0IGEgcmVwbHlcbiAgc3RhcnRSZXBseShjb21tZW50VG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVwbHlpbmdUbyA9IGNvbW1lbnRUb2tlbjtcbiAgfVxuXG4gIC8vIE1ldGhvZCB0byBjYW5jZWwgcmVwbHlcbiAgY2FuY2VsUmVwbHkoKTogdm9pZCB7XG4gICAgdGhpcy5yZXBseWluZ1RvID0gbnVsbDtcbiAgfVxufVxuIl19
|
|
521
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvY29tbWVudC1zZWN0aW9uL2NvbW1lbnQtc2VjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUNMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxPQUFPLEVBQ1AsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsaUJBQWlCLEVBQ2pCLHdCQUF3QixHQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsV0FBVyxFQUNYLHlCQUF5QixFQUN6QixtQkFBbUIsR0FDcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7OztBQWdCNUUsUUFBUSxDQUFDO0lBQ1Asa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixXQUFXO0lBQ1gseUJBQXlCO0lBQ3pCLG1CQUFtQjtDQUNwQixDQUFD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aWFBQ1gsT0FBTywwTkFDUCxTQUFTLGtWQUNULGVBQWUsNkZBQ2YsVUFBVSx5R0FDVixpQkFBaUIsK0dBQ2pCLHdCQUF3QixtSEFDeEIsZ0JBQWdCLHlMQUNoQixlQUFlLDBHQUNmLGlCQUFpQjs7NEZBOExSLHVCQUF1QjtrQkFoTm5DLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsT0FBTzt3QkFDUCxTQUFTO3dCQUNULFFBQVE7d0JBQ1IsV0FBVzt3QkFDWCxPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsZUFBZTt3QkFDZixVQUFVO3dCQUNWLGlCQUFpQjt3QkFDakIsd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsaUJBQWlCO3FCQUNsQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOElUOzhCQWlEUSxLQUFLO3NCQUFiLEtBQUs7Z0JBR0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBR0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBR0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7XG4gIElvbkljb24sXG4gIElvbkJ1dHRvbixcbiAgSW9uQmFkZ2UsXG4gIElvblRleHRhcmVhLFxuICBJb25JdGVtLFxuICBJb25TZWxlY3QsXG4gIElvblNlbGVjdE9wdGlvbixcbiAgSW9uU3Bpbm5lcixcbiAgSW9uSW5maW5pdGVTY3JvbGwsXG4gIElvbkluZmluaXRlU2Nyb2xsQ29udGVudCxcbn0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7XG4gIGNoYXRidWJibGVzT3V0bGluZSxcbiAgZmlsdGVyT3V0bGluZSxcbiAgc2VuZE91dGxpbmUsXG4gIGNoYXRidWJibGVFbGxpcHNlc091dGxpbmUsXG4gIHN3YXBWZXJ0aWNhbE91dGxpbmUsXG59IGZyb20gJ2lvbmljb25zL2ljb25zJztcblxuaW1wb3J0IHsgQ29tbWVudENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9jb21tZW50L2NvbW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvc2tlbGV0b24vc2tlbGV0b24uY29tcG9uZW50JztcbmltcG9ydCB7XG4gIENvbW1lbnRTZWN0aW9uTWV0YWRhdGEsXG4gIENvbW1lbnRTb3J0T3B0aW9uLFxuICBDb21tZW50U29ydENoYW5nZUV2ZW50LFxuICBDb21tZW50U3VibWl0RXZlbnQsXG4gIENvbW1lbnRTZWN0aW9uTG9hZE1vcmVFdmVudCxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1xuICBDb21tZW50QXV0aG9yQ2xpY2tFdmVudCxcbiAgQ29tbWVudFJlYWN0aW9uQ2xpY2tFdmVudCxcbiAgQ29tbWVudEFjdGlvbkNsaWNrRXZlbnQsXG4gIENvbW1lbnRNZW51SXRlbUNsaWNrRXZlbnQsXG4gIENvbW1lbnRMb2FkTW9yZUV2ZW50LFxufSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY29tbWVudC90eXBlcyc7XG5cbmFkZEljb25zKHtcbiAgY2hhdGJ1YmJsZXNPdXRsaW5lLFxuICBmaWx0ZXJPdXRsaW5lLFxuICBzZW5kT3V0bGluZSxcbiAgY2hhdGJ1YmJsZUVsbGlwc2VzT3V0bGluZSxcbiAgc3dhcFZlcnRpY2FsT3V0bGluZSxcbn0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY29tbWVudC1zZWN0aW9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBJb25JY29uLFxuICAgIElvbkJ1dHRvbixcbiAgICBJb25CYWRnZSxcbiAgICBJb25UZXh0YXJlYSxcbiAgICBJb25JdGVtLFxuICAgIElvblNlbGVjdCxcbiAgICBJb25TZWxlY3RPcHRpb24sXG4gICAgSW9uU3Bpbm5lcixcbiAgICBJb25JbmZpbml0ZVNjcm9sbCxcbiAgICBJb25JbmZpbml0ZVNjcm9sbENvbnRlbnQsXG4gICAgQ29tbWVudENvbXBvbmVudCxcbiAgICBBdmF0YXJDb21wb25lbnQsXG4gICAgU2tlbGV0b25Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtc2VjdGlvblwiIFtjbGFzcy5sb2FkaW5nXT1cInByb3BzLmxvYWRpbmdcIj5cbiAgICAgIDwhLS0gSGVhZGVyIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdGl0bGVcIj5cbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoYXRidWJibGVzLW91dGxpbmVcIiBjbGFzcz1cInRpdGxlLWljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIDxoMyBjbGFzcz1cInRpdGxlXCI+e3sgZGlzcGxheVRpdGxlIH19PC9oMz5cbiAgICAgICAgICBAaWYgKHByb3BzLnNob3dDb3VudCAhPT0gZmFsc2UgJiYgcHJvcHMuY291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgPGlvbi1iYWRnZSBjb2xvcj1cIm1lZGl1bVwiIGNsYXNzPVwiY291bnQtYmFkZ2VcIj5cbiAgICAgICAgICAgICAge3sgZm9ybWF0Q291bnQocHJvcHMuY291bnQpIH19XG4gICAgICAgICAgICA8L2lvbi1iYWRnZT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIEBpZiAocHJvcHMuc29ydE9wdGlvbnMgJiYgcHJvcHMuc29ydE9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGlvbi1pdGVtIGxpbmVzPVwibm9uZVwiIGNsYXNzPVwic29ydC1zZWxlY3QtaXRlbVwiPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInN3YXAtdmVydGljYWwtb3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiIGNsYXNzPVwic29ydC1pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgPGlvbi1zZWxlY3RcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwicHJvcHMuc2VsZWN0ZWRTb3J0XCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicHJvcHMuc29ydExhYmVsIHx8IGdldFNvcnRCeUxhYmVsKClcIlxuICAgICAgICAgICAgICAgIGludGVyZmFjZT1cInBvcG92ZXJcIlxuICAgICAgICAgICAgICAgIChpb25DaGFuZ2UpPVwib25Tb3J0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQGZvciAob3B0aW9uIG9mIHByb3BzLnNvcnRPcHRpb25zOyB0cmFjayBvcHRpb24udG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgIDxpb24tc2VsZWN0LW9wdGlvbiBbdmFsdWVdPVwib3B0aW9uLnRva2VuXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdldFNvcnRPcHRpb25MYWJlbChvcHRpb24pIH19XG4gICAgICAgICAgICAgICAgICA8L2lvbi1zZWxlY3Qtb3B0aW9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9pb24tc2VsZWN0PlxuICAgICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gTmV3IENvbW1lbnQgSW5wdXQgLS0+XG4gICAgICBAaWYgKHByb3BzLnNob3dJbnB1dCAhPT0gZmFsc2UpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5ldy1jb21tZW50LXNlY3Rpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICAgICAgQGlmIChwcm9wcy5pbnB1dENvbmZpZz8uY3VycmVudFVzZXI/LmF2YXRhcikge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtYXZhdGFyXCI+XG4gICAgICAgICAgICAgICAgPHZhbC1hdmF0YXIgW3Byb3BzXT1cInByb3BzLmlucHV0Q29uZmlnLmN1cnJlbnRVc2VyLmF2YXRhclwiPjwvdmFsLWF2YXRhcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgPGlvbi10ZXh0YXJlYVxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibmV3Q29tbWVudFRleHRcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJnZXRJbnB1dFBsYWNlaG9sZGVyKClcIlxuICAgICAgICAgICAgICAgIFttYXhsZW5ndGhdPVwicHJvcHMuaW5wdXRDb25maWc/Lm1heExlbmd0aCB8fCAyMDAwXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicHJvcHMuaW5wdXRDb25maWc/LmRpc2FibGVkIHx8IHByb3BzLmxvYWRpbmdcIlxuICAgICAgICAgICAgICAgIFthdXRvR3Jvd109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICByb3dzPVwiMlwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb21tZW50LXRleHRhcmVhXCJcbiAgICAgICAgICAgICAgPjwvaW9uLXRleHRhcmVhPlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgQGlmIChwcm9wcy5pbnB1dENvbmZpZz8uc2hvd0NvdW50ZXIgJiYgcHJvcHMuaW5wdXRDb25maWc/Lm1heExlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGFyLWNvdW50ZXJcIiBbY2xhc3Mud2FybmluZ109XCJpc05lYXJMaW1pdCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IG5ld0NvbW1lbnRUZXh0Lmxlbmd0aCB9fSAvIHt7IHByb3BzLmlucHV0Q29uZmlnLm1heExlbmd0aCB9fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICBbY29sb3JdPVwicHJvcHMuaW5wdXRDb25maWc/LnN1Ym1pdENvbG9yIHx8IHByb3BzLmNvbG9yIHx8ICdwcmltYXJ5J1wiXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWNhblN1Ym1pdCgpXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TdWJtaXRDb21tZW50KClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwic2VuZC1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgICAgIHt7IGdldFN1Ym1pdExhYmVsKCkgfX1cbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICBAaWYgKHByb3BzLmxvYWRpbmcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctc3RhdGVcIj5cbiAgICAgICAgICBAZm9yIChpIG9mIGdldFNrZWxldG9uQXJyYXkoKTsgdHJhY2sgaSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNrZWxldG9uLWNvbW1lbnRcIj5cbiAgICAgICAgICAgICAgPHZhbC1za2VsZXRvbiBbcHJvcHNdPVwieyB0eXBlOiAnYXZhdGFyJywgd2lkdGg6ICczNnB4JywgaGVpZ2h0OiAnMzZweCcgfVwiPjwvdmFsLXNrZWxldG9uPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2tlbGV0b24tY29udGVudFwiPlxuICAgICAgICAgICAgICAgIDx2YWwtc2tlbGV0b24gW3Byb3BzXT1cInsgdHlwZTogJ3RleHQnLCB3aWR0aDogJzEyMHB4JywgaGVpZ2h0OiAnMTRweCcgfVwiPjwvdmFsLXNrZWxldG9uPlxuICAgICAgICAgICAgICAgIDx2YWwtc2tlbGV0b24gW3Byb3BzXT1cInsgdHlwZTogJ3BhcmFncmFwaCcsIGxpbmVzOiAyIH1cIj48L3ZhbC1za2VsZXRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSBpZiAocHJvcHMuY29tbWVudHMgJiYgcHJvcHMuY29tbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWVudHMtbGlzdFwiIFtjbGFzcy53aXRoLWRpdmlkZXJzXT1cInByb3BzLnNob3dEaXZpZGVyc1wiPlxuICAgICAgICAgIEBmb3IgKGNvbW1lbnQgb2YgcHJvcHMuY29tbWVudHM7IHRyYWNrIGNvbW1lbnQudG9rZW4pIHtcbiAgICAgICAgICAgIDx2YWwtY29tbWVudFxuICAgICAgICAgICAgICBbcHJvcHNdPVwiY29tbWVudFwiXG4gICAgICAgICAgICAgIChhdXRob3JDbGljayk9XCJhdXRob3JDbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAocmVhY3Rpb25DbGljayk9XCJyZWFjdGlvbkNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChhY3Rpb25DbGljayk9XCJvbkNvbW1lbnRBY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChtZW51SXRlbUNsaWNrKT1cIm1lbnVJdGVtQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGxvYWRNb3JlQ2xpY2spPVwiY29tbWVudExvYWRNb3JlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChjb2xsYXBzZVRvZ2dsZSk9XCJjb2xsYXBzZVRvZ2dsZS5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgPjwvdmFsLWNvbW1lbnQ+XG5cbiAgICAgICAgICAgIEBpZiAocHJvcHMuc2hvd0RpdmlkZXJzICYmICEkbGFzdCkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWVudC1kaXZpZGVyXCI+PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChwcm9wcy5oYXNNb3JlICYmIHByb3BzLnBhZ2luYXRpb25Nb2RlICE9PSAnaW5maW5pdGUnKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZC1tb3JlLXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgQGlmIChwcm9wcy5sb2FkaW5nTW9yZSkge1xuICAgICAgICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY2lyY3VsYXJcIiBbY29sb3JdPVwicHJvcHMuY29sb3IgfHwgJ3ByaW1hcnknXCI+PC9pb24tc3Bpbm5lcj5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBbY29sb3JdPVwicHJvcHMuY29sb3IgfHwgJ3ByaW1hcnknXCIgZXhwYW5kPVwiYmxvY2tcIiAoY2xpY2spPVwib25Mb2FkTW9yZSgpXCI+XG4gICAgICAgICAgICAgICAgICB7eyBkaXNwbGF5TG9hZE1vcmVMYWJlbCB9fVxuICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKHByb3BzLnBhZ2luYXRpb25Nb2RlID09PSAnaW5maW5pdGUnKSB7XG4gICAgICAgICAgPGlvbi1pbmZpbml0ZS1zY3JvbGxcbiAgICAgICAgICAgIFt0aHJlc2hvbGRdPVwicHJvcHMuaW5maW5pdGVTY3JvbGxUaHJlc2hvbGQgfHwgJzEwMHB4J1wiXG4gICAgICAgICAgICBbcG9zaXRpb25dPVwicHJvcHMuaW5maW5pdGVTY3JvbGxQb3NpdGlvbiB8fCAnYm90dG9tJ1wiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXByb3BzLmhhc01vcmVcIlxuICAgICAgICAgICAgKGlvbkluZmluaXRlKT1cIm9uSW5maW5pdGVTY3JvbGwoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlvbi1pbmZpbml0ZS1zY3JvbGwtY29udGVudFxuICAgICAgICAgICAgICBbbG9hZGluZ1NwaW5uZXJdPVwiJ2NyZXNjZW50J1wiXG4gICAgICAgICAgICAgIFtsb2FkaW5nVGV4dF09XCJkaXNwbGF5TG9hZE1vcmVMYWJlbFwiXG4gICAgICAgICAgICA+PC9pb24taW5maW5pdGUtc2Nyb2xsLWNvbnRlbnQ+XG4gICAgICAgICAgPC9pb24taW5maW5pdGUtc2Nyb2xsPlxuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+XG4gICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInByb3BzLmVtcHR5U3RhdGU/Lmljb24gfHwgJ2NoYXRidWJibGUtZWxsaXBzZXMtb3V0bGluZSdcIiBjbGFzcz1cImVtcHR5LWljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIDxoNCBjbGFzcz1cImVtcHR5LXRpdGxlXCI+e3sgZ2V0RW1wdHlUaXRsZSgpIH19PC9oND5cbiAgICAgICAgICA8cCBjbGFzcz1cImVtcHR5LW1lc3NhZ2VcIj57eyBnZXRFbXB0eU1lc3NhZ2UoKSB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2NvbW1lbnQtc2VjdGlvbi5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLWNvbW1lbnQtc2VjdGlvblxuICpcbiAqIEFuIG9yZ2FuaXNtIGNvbXBvbmVudCB0aGF0IHByb3ZpZGVzIGEgY29tcGxldGUgY29tbWVudCBzZWN0aW9uIHdpdGg6XG4gKiAtIEhlYWRlciB3aXRoIHRpdGxlIGFuZCBjb3VudFxuICogLSBTb3J0L2ZpbHRlciBvcHRpb25zXG4gKiAtIE5ldyBjb21tZW50IGlucHV0XG4gKiAtIENvbW1lbnRzIGxpc3Qgd2l0aCB2YWwtY29tbWVudFxuICogLSBMb2FkIG1vcmUgcGFnaW5hdGlvblxuICogLSBFbXB0eSBzdGF0ZVxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlXG4gKiA8dmFsLWNvbW1lbnQtc2VjdGlvbiBbcHJvcHNdPVwie1xuICogICB0aXRsZTogJ0NvbW1lbnRzJyxcbiAqICAgY291bnQ6IDQyLFxuICogICBjb21tZW50czogY29tbWVudHNBcnJheSxcbiAqICAgc2hvd0lucHV0OiB0cnVlXG4gKiB9XCI+PC92YWwtY29tbWVudC1zZWN0aW9uPlxuICpcbiAqIEBleGFtcGxlIFdpdGggc29ydGluZ1xuICogPHZhbC1jb21tZW50LXNlY3Rpb24gW3Byb3BzXT1cIntcbiAqICAgdGl0bGU6ICdSZXZpZXdzJyxcbiAqICAgY291bnQ6IDEyOCxcbiAqICAgY29tbWVudHM6IHJldmlld3MsXG4gKiAgIHNvcnRPcHRpb25zOiBbXG4gKiAgICAgeyB0b2tlbjogJ25ld2VzdCcsIGxhYmVsOiAnTmV3ZXN0IGZpcnN0JyB9LFxuICogICAgIHsgdG9rZW46ICdvbGRlc3QnLCBsYWJlbDogJ09sZGVzdCBmaXJzdCcgfSxcbiAqICAgICB7IHRva2VuOiAncG9wdWxhcicsIGxhYmVsOiAnTW9zdCBwb3B1bGFyJyB9XG4gKiAgIF0sXG4gKiAgIHNlbGVjdGVkU29ydDogJ25ld2VzdCdcbiAqIH1cIiAoc29ydENoYW5nZSk9XCJvblNvcnQoJGV2ZW50KVwiPjwvdmFsLWNvbW1lbnQtc2VjdGlvbj5cbiAqXG4gKiBAaW5wdXQgcHJvcHM6IENvbW1lbnRTZWN0aW9uTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgc2VjdGlvblxuICogQG91dHB1dCBzb3J0Q2hhbmdlIC0gU29ydCBvcHRpb24gY2hhbmdlZFxuICogQG91dHB1dCBjb21tZW50U3VibWl0IC0gTmV3IGNvbW1lbnQgc3VibWl0dGVkXG4gKiBAb3V0cHV0IGxvYWRNb3JlIC0gTG9hZCBtb3JlIGNsaWNrZWRcbiAqIEBvdXRwdXQgYXV0aG9yQ2xpY2sgLSBDb21tZW50IGF1dGhvciBjbGlja2VkIChidWJibGVkIGZyb20gdmFsLWNvbW1lbnQpXG4gKiBAb3V0cHV0IHJlYWN0aW9uQ2xpY2sgLSBSZWFjdGlvbiBjbGlja2VkIChidWJibGVkKVxuICogQG91dHB1dCBhY3Rpb25DbGljayAtIEFjdGlvbiBjbGlja2VkIChidWJibGVkKVxuICogQG91dHB1dCBtZW51SXRlbUNsaWNrIC0gTWVudSBpdGVtIGNsaWNrZWQgKGJ1YmJsZWQpXG4gKiBAb3V0cHV0IGNvbW1lbnRMb2FkTW9yZSAtIExvYWQgbW9yZSByZXBsaWVzIGNsaWNrZWQgKGJ1YmJsZWQpXG4gKiBAb3V0cHV0IGNvbGxhcHNlVG9nZ2xlIC0gQ29tbWVudCBjb2xsYXBzZSB0b2dnbGVkIChidWJibGVkKVxuICovXG5leHBvcnQgY2xhc3MgQ29tbWVudFNlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXG4gIEBJbnB1dCgpIHByb3BzOiBDb21tZW50U2VjdGlvbk1ldGFkYXRhO1xuXG4gIC8vIFNlY3Rpb24gZXZlbnRzXG4gIEBPdXRwdXQoKSBzb3J0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50U29ydENoYW5nZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgY29tbWVudFN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudFN1Ym1pdEV2ZW50PigpO1xuICBAT3V0cHV0KCkgbG9hZE1vcmUgPSBuZXcgRXZlbnRFbWl0dGVyPENvbW1lbnRTZWN0aW9uTG9hZE1vcmVFdmVudD4oKTtcblxuICAvLyBCdWJibGVkIGV2ZW50cyBmcm9tIHZhbC1jb21tZW50XG4gIEBPdXRwdXQoKSBhdXRob3JDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudEF1dGhvckNsaWNrRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSByZWFjdGlvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50UmVhY3Rpb25DbGlja0V2ZW50PigpO1xuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPENvbW1lbnRBY3Rpb25DbGlja0V2ZW50PigpO1xuICBAT3V0cHV0KCkgbWVudUl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudE1lbnVJdGVtQ2xpY2tFdmVudD4oKTtcbiAgQE91dHB1dCgpIGNvbW1lbnRMb2FkTW9yZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudExvYWRNb3JlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBjb2xsYXBzZVRvZ2dsZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0b2tlbjogc3RyaW5nOyBjb2xsYXBzZWQ6IGJvb2xlYW4gfT4oKTtcblxuICAvLyBSZXBseSBzdGF0ZVxuICBAT3V0cHV0KCkgcmVwbHlTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBjb21tZW50VG9rZW46IHN0cmluZyB9PigpO1xuXG4gIG5ld0NvbW1lbnRUZXh0ID0gJyc7XG4gIHJlcGx5aW5nVG86IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGRpc3BsYXlUaXRsZSA9ICcnO1xuICBkaXNwbGF5TG9hZE1vcmVMYWJlbCA9ICcnO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlRGlzcGxheVRleHRzKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURpc3BsYXlUZXh0cygpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXlUaXRsZSA9IHRoaXMucHJvcHMudGl0bGUgfHwgdGhpcy5pMThuLnQoJ2NvbW1lbnRzJyk7XG4gICAgdGhpcy5kaXNwbGF5TG9hZE1vcmVMYWJlbCA9IHRoaXMucHJvcHMubG9hZE1vcmVMYWJlbCB8fCB0aGlzLmkxOG4udCgnbG9hZE1vcmVDb21tZW50cycpO1xuICB9XG5cbiAgZ2V0U29ydEJ5TGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoJ3NvcnRCeScpO1xuICB9XG5cbiAgZm9ybWF0Q291bnQoY291bnQ6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKGNvdW50ID49IDEwMDAwMDApIHtcbiAgICAgIHJldHVybiAoY291bnQgLyAxMDAwMDAwKS50b0ZpeGVkKDEpLnJlcGxhY2UoL1xcLjAkLywgJycpICsgJ00nO1xuICAgIH1cbiAgICBpZiAoY291bnQgPj0gMTAwMCkge1xuICAgICAgcmV0dXJuIChjb3VudCAvIDEwMDApLnRvRml4ZWQoMSkucmVwbGFjZSgvXFwuMCQvLCAnJykgKyAnSyc7XG4gICAgfVxuICAgIHJldHVybiBjb3VudC50b1N0cmluZygpO1xuICB9XG5cbiAgZ2V0U29ydE9wdGlvbkxhYmVsKG9wdGlvbjogQ29tbWVudFNvcnRPcHRpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiBvcHRpb24ubGFiZWw7XG4gIH1cblxuICBnZXRJbnB1dFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuaW5wdXRDb25maWc/LnBsYWNlaG9sZGVyIHx8IHRoaXMuaTE4bi50KCd3cml0ZUNvbW1lbnQnKTtcbiAgfVxuXG4gIGdldFN1Ym1pdExhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuaW5wdXRDb25maWc/LnN1Ym1pdExhYmVsIHx8IHRoaXMuaTE4bi50KCdwdWJsaXNoJyk7XG4gIH1cblxuICBnZXRFbXB0eVRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZW1wdHlTdGF0ZT8udGl0bGUgfHwgdGhpcy5pMThuLnQoJ25vQ29tbWVudHNZZXQnKTtcbiAgfVxuXG4gIGdldEVtcHR5TWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmVtcHR5U3RhdGU/Lm1lc3NhZ2UgfHwgdGhpcy5pMThuLnQoJ2JlRmlyc3RUb0NvbW1lbnQnKTtcbiAgfVxuXG4gIGdldFNrZWxldG9uQXJyYXkoKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IGNvdW50ID0gdGhpcy5wcm9wcy5za2VsZXRvbkNvdW50IHx8IDM7XG4gICAgcmV0dXJuIEFycmF5KGNvdW50KVxuICAgICAgLmZpbGwoMClcbiAgICAgIC5tYXAoKF8sIGkpID0+IGkpO1xuICB9XG5cbiAgY2FuU3VibWl0KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG1pbkxlbmd0aCA9IHRoaXMucHJvcHMuaW5wdXRDb25maWc/Lm1pbkxlbmd0aCB8fCAxO1xuICAgIHJldHVybiB0aGlzLm5ld0NvbW1lbnRUZXh0LnRyaW0oKS5sZW5ndGggPj0gbWluTGVuZ3RoICYmICF0aGlzLnByb3BzLmxvYWRpbmcgJiYgIXRoaXMucHJvcHMuaW5wdXRDb25maWc/LmRpc2FibGVkO1xuICB9XG5cbiAgaXNOZWFyTGltaXQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbWF4TGVuZ3RoID0gdGhpcy5wcm9wcy5pbnB1dENvbmZpZz8ubWF4TGVuZ3RoIHx8IDIwMDA7XG4gICAgcmV0dXJuIHRoaXMubmV3Q29tbWVudFRleHQubGVuZ3RoID4gbWF4TGVuZ3RoICogMC45O1xuICB9XG5cbiAgb25Tb3J0Q2hhbmdlKGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkVG9rZW4gPSBldmVudC5kZXRhaWwudmFsdWU7XG4gICAgY29uc3Qgb3B0aW9uID0gdGhpcy5wcm9wcy5zb3J0T3B0aW9ucz8uZmluZChvID0+IG8udG9rZW4gPT09IHNlbGVjdGVkVG9rZW4pO1xuXG4gICAgaWYgKG9wdGlvbikge1xuICAgICAgdGhpcy5zb3J0Q2hhbmdlLmVtaXQoe1xuICAgICAgICBvcHRpb24sXG4gICAgICAgIHByZXZpb3VzU29ydDogdGhpcy5wcm9wcy5zZWxlY3RlZFNvcnQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvblN1Ym1pdENvbW1lbnQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNhblN1Ym1pdCgpKSByZXR1cm47XG5cbiAgICB0aGlzLmNvbW1lbnRTdWJtaXQuZW1pdCh7XG4gICAgICBjb250ZW50OiB0aGlzLm5ld0NvbW1lbnRUZXh0LnRyaW0oKSxcbiAgICAgIHBhcmVudFRva2VuOiB0aGlzLnJlcGx5aW5nVG8gfHwgdW5kZWZpbmVkLFxuICAgICAgc2VjdGlvblRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uZXdDb21tZW50VGV4dCA9ICcnO1xuICAgIHRoaXMucmVwbHlpbmdUbyA9IG51bGw7XG4gIH1cblxuICBvbkNvbW1lbnRBY3Rpb24oZXZlbnQ6IENvbW1lbnRBY3Rpb25DbGlja0V2ZW50KTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgaWYgaXQncyBhIHJlcGx5IGFjdGlvblxuICAgIGlmIChldmVudC5hY3Rpb24udG9rZW4gPT09ICdyZXBseScpIHtcbiAgICAgIHRoaXMucmVwbHlpbmdUbyA9IGV2ZW50LmNvbW1lbnRUb2tlbjtcbiAgICAgIHRoaXMucmVwbHlTdGFydC5lbWl0KHsgY29tbWVudFRva2VuOiBldmVudC5jb21tZW50VG9rZW4gfSk7XG4gICAgfVxuXG4gICAgdGhpcy5hY3Rpb25DbGljay5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uTG9hZE1vcmUoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkTW9yZS5lbWl0KHtcbiAgICAgIHNlY3Rpb25Ub2tlbjogdGhpcy5wcm9wcy50b2tlbixcbiAgICAgIGN1cnJlbnRDb3VudDogdGhpcy5wcm9wcy5jb21tZW50cz8ubGVuZ3RoIHx8IDAsXG4gICAgfSk7XG4gIH1cblxuICBvbkluZmluaXRlU2Nyb2xsKGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIHRoaXMubG9hZE1vcmUuZW1pdCh7XG4gICAgICBzZWN0aW9uVG9rZW46IHRoaXMucHJvcHMudG9rZW4sXG4gICAgICBjdXJyZW50Q291bnQ6IHRoaXMucHJvcHMuY29tbWVudHM/Lmxlbmd0aCB8fCAwLFxuICAgIH0pO1xuXG4gICAgLy8gVGhlIHBhcmVudCBjb21wb25lbnQgc2hvdWxkIGNhbGwgY29tcGxldGVJbmZpbml0ZVNjcm9sbCgpIHdoZW4gZG9uZSBsb2FkaW5nXG4gICAgLy8gU3RvcmUgcmVmZXJlbmNlIHRvIGNvbXBsZXRlIHRoZSBpbmZpbml0ZSBzY3JvbGxcbiAgICB0aGlzLmluZmluaXRlU2Nyb2xsRXZlbnQgPSBldmVudDtcbiAgfVxuXG4gIC8vIENhbGwgdGhpcyBtZXRob2QgZnJvbSBwYXJlbnQgYWZ0ZXIgbG9hZGluZyBtb3JlIGNvbW1lbnRzXG4gIGNvbXBsZXRlSW5maW5pdGVTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5maW5pdGVTY3JvbGxFdmVudCkge1xuICAgICAgKHRoaXMuaW5maW5pdGVTY3JvbGxFdmVudC50YXJnZXQgYXMgSFRNTElvbkluZmluaXRlU2Nyb2xsRWxlbWVudCkuY29tcGxldGUoKTtcbiAgICAgIHRoaXMuaW5maW5pdGVTY3JvbGxFdmVudCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbmZpbml0ZVNjcm9sbEV2ZW50OiBDdXN0b21FdmVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8vIE1ldGhvZCB0byBwcm9ncmFtbWF0aWNhbGx5IHN0YXJ0IGEgcmVwbHlcbiAgc3RhcnRSZXBseShjb21tZW50VG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucmVwbHlpbmdUbyA9IGNvbW1lbnRUb2tlbjtcbiAgfVxuXG4gIC8vIE1ldGhvZCB0byBjYW5jZWwgcmVwbHlcbiAgY2FuY2VsUmVwbHkoKTogdm9pZCB7XG4gICAgdGhpcy5yZXBseWluZ1RvID0gbnVsbDtcbiAgfVxufVxuIl19
|