valtech-components 4.0.4 → 4.0.6
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/button/button.component.mjs +15 -5
- package/esm2022/lib/components/atoms/fab/fab.component.mjs +8 -18
- package/esm2022/lib/components/atoms/horizontal-scroll/horizontal-scroll.component.mjs +5 -7
- package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +3 -1
- package/esm2022/lib/components/atoms/progress-bar/types.mjs +1 -1
- package/esm2022/lib/components/molecules/accordion/accordion.component.mjs +4 -6
- package/esm2022/lib/components/molecules/action-card/action-card.component.mjs +5 -5
- package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +5 -5
- package/esm2022/lib/components/molecules/card/card.component.mjs +19 -9
- package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +21 -13
- package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +5 -5
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +29 -56
- package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +13 -3
- package/esm2022/lib/components/molecules/date-picker/date-picker.component.mjs +7 -15
- package/esm2022/lib/components/molecules/date-range-input/date-range-input.component.mjs +6 -10
- package/esm2022/lib/components/molecules/docs-code-example/docs-code-example.component.mjs +13 -5
- package/esm2022/lib/components/molecules/docs-nav-links/docs-nav-links.component.mjs +7 -13
- package/esm2022/lib/components/molecules/docs-search/docs-search.component.mjs +12 -28
- package/esm2022/lib/components/molecules/features-list/features-list.component.mjs +5 -5
- package/esm2022/lib/components/molecules/feedback-form/feedback-form.component.mjs +5 -5
- package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +9 -3
- package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +17 -15
- package/esm2022/lib/components/molecules/language-selector/language-selector.component.mjs +7 -5
- package/esm2022/lib/components/molecules/link/link.component.mjs +3 -3
- package/esm2022/lib/components/molecules/media-object/media-object.component.mjs +3 -3
- package/esm2022/lib/components/molecules/metric-card/metric-card.component.mjs +5 -3
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +11 -3
- package/esm2022/lib/components/molecules/pill/pill.component.mjs +7 -7
- package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +7 -7
- package/esm2022/lib/components/molecules/segment-control/segment-control.component.mjs +3 -3
- package/esm2022/lib/components/molecules/select-search/select-search.component.mjs +15 -3
- package/esm2022/lib/components/molecules/share-buttons/share-buttons.component.mjs +3 -1
- package/esm2022/lib/components/molecules/stats-card/stats-card.component.mjs +5 -5
- package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +11 -13
- package/esm2022/lib/components/molecules/tabs/tabs.component.mjs +4 -6
- package/esm2022/lib/components/molecules/ticket-card/ticket-card.component.mjs +3 -3
- package/esm2022/lib/components/organisms/banner/types.mjs +1 -1
- package/esm2022/lib/components/organisms/cookie-banner/cookie-banner.component.mjs +3 -1
- package/esm2022/lib/components/organisms/cookie-banner/types.mjs +1 -1
- package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +11 -7
- package/esm2022/lib/components/organisms/login/login.component.mjs +3 -3
- package/esm2022/lib/services/icons.service.mjs +3 -2
- package/esm2022/lib/services/page-state/page-state.i18n.mjs +19 -0
- package/esm2022/lib/services/page-state/page-state.mjs +101 -0
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +4 -1
- package/fesm2022/valtech-components.mjs +405 -279
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/progress-bar/types.d.ts +2 -0
- package/lib/components/organisms/banner/types.d.ts +1 -1
- package/lib/components/organisms/cookie-banner/types.d.ts +2 -0
- package/lib/services/page-state/page-state.d.ts +74 -0
- package/lib/services/page-state/page-state.i18n.d.ts +6 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/src/lib/services/firebase/firebase-messaging-sw.js +145 -0
|
@@ -99,7 +99,7 @@ export class CommentComponent {
|
|
|
99
99
|
getInitials(name) {
|
|
100
100
|
return name
|
|
101
101
|
.split(' ')
|
|
102
|
-
.map(
|
|
102
|
+
.map(n => n[0])
|
|
103
103
|
.join('')
|
|
104
104
|
.substring(0, 2)
|
|
105
105
|
.toUpperCase();
|
|
@@ -184,8 +184,8 @@ export class CommentComponent {
|
|
|
184
184
|
return item.label || item.contentFallback || '';
|
|
185
185
|
}
|
|
186
186
|
hasChildren() {
|
|
187
|
-
return !!(this.props.children && this.props.children.length > 0) ||
|
|
188
|
-
!!(this.props.replyCount && this.props.replyCount > 0);
|
|
187
|
+
return (!!(this.props.children && this.props.children.length > 0) ||
|
|
188
|
+
!!(this.props.replyCount && this.props.replyCount > 0));
|
|
189
189
|
}
|
|
190
190
|
canShowChildren() {
|
|
191
191
|
const maxDepth = this.props.maxDepth ?? 3;
|
|
@@ -258,7 +258,7 @@ export class CommentComponent {
|
|
|
258
258
|
>
|
|
259
259
|
@if (props.pinned) {
|
|
260
260
|
<div class="pinned-indicator">
|
|
261
|
-
<ion-icon name="pin"></ion-icon>
|
|
261
|
+
<ion-icon name="pin" aria-hidden="true"></ion-icon>
|
|
262
262
|
<span>{{ i18n.t('pinned') }}</span>
|
|
263
263
|
</div>
|
|
264
264
|
}
|
|
@@ -279,7 +279,7 @@ export class CommentComponent {
|
|
|
279
279
|
<button type="button" class="author-info" [attr.aria-label]="authorLabel()" (click)="onAuthorClick()">
|
|
280
280
|
<span class="author-name">{{ props.author.name }}</span>
|
|
281
281
|
@if (props.author.verified) {
|
|
282
|
-
<ion-icon name="checkmark-circle" class="verified-badge"></ion-icon>
|
|
282
|
+
<ion-icon name="checkmark-circle" class="verified-badge" aria-hidden="true"></ion-icon>
|
|
283
283
|
}
|
|
284
284
|
@if (props.author.username) {
|
|
285
285
|
<span class="author-username">@{{ props.author.username }}</span>
|
|
@@ -299,14 +299,12 @@ export class CommentComponent {
|
|
|
299
299
|
size="small"
|
|
300
300
|
class="more-button"
|
|
301
301
|
[id]="'menu-trigger-' + props.token"
|
|
302
|
+
[attr.aria-label]="'Más opciones'"
|
|
302
303
|
>
|
|
303
|
-
<ion-icon name="ellipsis-horizontal" slot="icon-only"></ion-icon>
|
|
304
|
+
<ion-icon name="ellipsis-horizontal" slot="icon-only" aria-hidden="true"></ion-icon>
|
|
304
305
|
</ion-button>
|
|
305
306
|
|
|
306
|
-
<ion-popover
|
|
307
|
-
[trigger]="'menu-trigger-' + props.token"
|
|
308
|
-
[dismissOnSelect]="true"
|
|
309
|
-
>
|
|
307
|
+
<ion-popover [trigger]="'menu-trigger-' + props.token" [dismissOnSelect]="true">
|
|
310
308
|
<ng-template>
|
|
311
309
|
<ion-list>
|
|
312
310
|
@for (item of props.menuItems; track item.token) {
|
|
@@ -320,11 +318,7 @@ export class CommentComponent {
|
|
|
320
318
|
(click)="onMenuItemClick(item)"
|
|
321
319
|
>
|
|
322
320
|
@if (item.icon) {
|
|
323
|
-
<ion-icon
|
|
324
|
-
[name]="item.icon"
|
|
325
|
-
slot="start"
|
|
326
|
-
[color]="item.color"
|
|
327
|
-
></ion-icon>
|
|
321
|
+
<ion-icon [name]="item.icon" slot="start" [color]="item.color" aria-hidden="true"></ion-icon>
|
|
328
322
|
}
|
|
329
323
|
<ion-label [color]="item.color">
|
|
330
324
|
{{ getMenuItemLabel(item) }}
|
|
@@ -338,10 +332,7 @@ export class CommentComponent {
|
|
|
338
332
|
</div>
|
|
339
333
|
|
|
340
334
|
@if (!props.collapsed) {
|
|
341
|
-
<div
|
|
342
|
-
class="comment-content"
|
|
343
|
-
[innerHTML]="processContent(displayContent)"
|
|
344
|
-
></div>
|
|
335
|
+
<div class="comment-content" [innerHTML]="processContent(displayContent)"></div>
|
|
345
336
|
|
|
346
337
|
@if (props.reactions && props.reactions.length > 0) {
|
|
347
338
|
<div class="comment-reactions">
|
|
@@ -352,7 +343,7 @@ export class CommentComponent {
|
|
|
352
343
|
[style.--reaction-color]="getReactionColor(reaction)"
|
|
353
344
|
(click)="onReactionClick(reaction)"
|
|
354
345
|
>
|
|
355
|
-
<ion-icon [name]="reaction.icon"></ion-icon>
|
|
346
|
+
<ion-icon [name]="reaction.icon" aria-hidden="true"></ion-icon>
|
|
356
347
|
@if (reaction.count > 0) {
|
|
357
348
|
<span class="reaction-count">{{ formatCount(reaction.count) }}</span>
|
|
358
349
|
}
|
|
@@ -372,7 +363,7 @@ export class CommentComponent {
|
|
|
372
363
|
(click)="onActionClick(action)"
|
|
373
364
|
>
|
|
374
365
|
@if (action.icon) {
|
|
375
|
-
<ion-icon [name]="action.icon" slot="start"></ion-icon>
|
|
366
|
+
<ion-icon [name]="action.icon" slot="start" aria-hidden="true"></ion-icon>
|
|
376
367
|
}
|
|
377
368
|
{{ getActionLabel(action) }}
|
|
378
369
|
</ion-button>
|
|
@@ -381,7 +372,7 @@ export class CommentComponent {
|
|
|
381
372
|
}
|
|
382
373
|
} @else {
|
|
383
374
|
<button class="expand-button" (click)="onToggleCollapse()">
|
|
384
|
-
<ion-icon name="chevron-down"></ion-icon>
|
|
375
|
+
<ion-icon name="chevron-down" aria-hidden="true"></ion-icon>
|
|
385
376
|
<span>{{ i18n.t('showComment') }}</span>
|
|
386
377
|
</button>
|
|
387
378
|
}
|
|
@@ -392,7 +383,7 @@ export class CommentComponent {
|
|
|
392
383
|
<div class="comment-children">
|
|
393
384
|
@if (props.collapsed) {
|
|
394
385
|
<button class="collapse-button" (click)="onToggleCollapse()">
|
|
395
|
-
<ion-icon name="chevron-up"></ion-icon>
|
|
386
|
+
<ion-icon name="chevron-up" aria-hidden="true"></ion-icon>
|
|
396
387
|
<span>{{ i18n.t('hideReplies') }}</span>
|
|
397
388
|
</button>
|
|
398
389
|
}
|
|
@@ -412,7 +403,7 @@ export class CommentComponent {
|
|
|
412
403
|
|
|
413
404
|
@if (hasMoreReplies()) {
|
|
414
405
|
<button class="load-more-button" (click)="onLoadMoreClick()">
|
|
415
|
-
<ion-icon name="chatbubble-outline"></ion-icon>
|
|
406
|
+
<ion-icon name="chatbubble-outline" aria-hidden="true"></ion-icon>
|
|
416
407
|
<span>{{ getLoadMoreRepliesText() }}</span>
|
|
417
408
|
</button>
|
|
418
409
|
}
|
|
@@ -429,16 +420,7 @@ export class CommentComponent {
|
|
|
429
420
|
}
|
|
430
421
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CommentComponent, decorators: [{
|
|
431
422
|
type: Component,
|
|
432
|
-
args: [{ selector: 'val-comment', standalone: true, imports: [
|
|
433
|
-
CommonModule,
|
|
434
|
-
IonIcon,
|
|
435
|
-
IonButton,
|
|
436
|
-
IonPopover,
|
|
437
|
-
IonList,
|
|
438
|
-
IonItem,
|
|
439
|
-
IonLabel,
|
|
440
|
-
AvatarComponent,
|
|
441
|
-
], template: `
|
|
423
|
+
args: [{ selector: 'val-comment', standalone: true, imports: [CommonModule, IonIcon, IonButton, IonPopover, IonList, IonItem, IonLabel, AvatarComponent], template: `
|
|
442
424
|
<div
|
|
443
425
|
class="comment"
|
|
444
426
|
[class.highlighted]="props.highlighted"
|
|
@@ -448,7 +430,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
448
430
|
>
|
|
449
431
|
@if (props.pinned) {
|
|
450
432
|
<div class="pinned-indicator">
|
|
451
|
-
<ion-icon name="pin"></ion-icon>
|
|
433
|
+
<ion-icon name="pin" aria-hidden="true"></ion-icon>
|
|
452
434
|
<span>{{ i18n.t('pinned') }}</span>
|
|
453
435
|
</div>
|
|
454
436
|
}
|
|
@@ -469,7 +451,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
469
451
|
<button type="button" class="author-info" [attr.aria-label]="authorLabel()" (click)="onAuthorClick()">
|
|
470
452
|
<span class="author-name">{{ props.author.name }}</span>
|
|
471
453
|
@if (props.author.verified) {
|
|
472
|
-
<ion-icon name="checkmark-circle" class="verified-badge"></ion-icon>
|
|
454
|
+
<ion-icon name="checkmark-circle" class="verified-badge" aria-hidden="true"></ion-icon>
|
|
473
455
|
}
|
|
474
456
|
@if (props.author.username) {
|
|
475
457
|
<span class="author-username">@{{ props.author.username }}</span>
|
|
@@ -489,14 +471,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
489
471
|
size="small"
|
|
490
472
|
class="more-button"
|
|
491
473
|
[id]="'menu-trigger-' + props.token"
|
|
474
|
+
[attr.aria-label]="'Más opciones'"
|
|
492
475
|
>
|
|
493
|
-
<ion-icon name="ellipsis-horizontal" slot="icon-only"></ion-icon>
|
|
476
|
+
<ion-icon name="ellipsis-horizontal" slot="icon-only" aria-hidden="true"></ion-icon>
|
|
494
477
|
</ion-button>
|
|
495
478
|
|
|
496
|
-
<ion-popover
|
|
497
|
-
[trigger]="'menu-trigger-' + props.token"
|
|
498
|
-
[dismissOnSelect]="true"
|
|
499
|
-
>
|
|
479
|
+
<ion-popover [trigger]="'menu-trigger-' + props.token" [dismissOnSelect]="true">
|
|
500
480
|
<ng-template>
|
|
501
481
|
<ion-list>
|
|
502
482
|
@for (item of props.menuItems; track item.token) {
|
|
@@ -510,11 +490,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
510
490
|
(click)="onMenuItemClick(item)"
|
|
511
491
|
>
|
|
512
492
|
@if (item.icon) {
|
|
513
|
-
<ion-icon
|
|
514
|
-
[name]="item.icon"
|
|
515
|
-
slot="start"
|
|
516
|
-
[color]="item.color"
|
|
517
|
-
></ion-icon>
|
|
493
|
+
<ion-icon [name]="item.icon" slot="start" [color]="item.color" aria-hidden="true"></ion-icon>
|
|
518
494
|
}
|
|
519
495
|
<ion-label [color]="item.color">
|
|
520
496
|
{{ getMenuItemLabel(item) }}
|
|
@@ -528,10 +504,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
528
504
|
</div>
|
|
529
505
|
|
|
530
506
|
@if (!props.collapsed) {
|
|
531
|
-
<div
|
|
532
|
-
class="comment-content"
|
|
533
|
-
[innerHTML]="processContent(displayContent)"
|
|
534
|
-
></div>
|
|
507
|
+
<div class="comment-content" [innerHTML]="processContent(displayContent)"></div>
|
|
535
508
|
|
|
536
509
|
@if (props.reactions && props.reactions.length > 0) {
|
|
537
510
|
<div class="comment-reactions">
|
|
@@ -542,7 +515,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
542
515
|
[style.--reaction-color]="getReactionColor(reaction)"
|
|
543
516
|
(click)="onReactionClick(reaction)"
|
|
544
517
|
>
|
|
545
|
-
<ion-icon [name]="reaction.icon"></ion-icon>
|
|
518
|
+
<ion-icon [name]="reaction.icon" aria-hidden="true"></ion-icon>
|
|
546
519
|
@if (reaction.count > 0) {
|
|
547
520
|
<span class="reaction-count">{{ formatCount(reaction.count) }}</span>
|
|
548
521
|
}
|
|
@@ -562,7 +535,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
562
535
|
(click)="onActionClick(action)"
|
|
563
536
|
>
|
|
564
537
|
@if (action.icon) {
|
|
565
|
-
<ion-icon [name]="action.icon" slot="start"></ion-icon>
|
|
538
|
+
<ion-icon [name]="action.icon" slot="start" aria-hidden="true"></ion-icon>
|
|
566
539
|
}
|
|
567
540
|
{{ getActionLabel(action) }}
|
|
568
541
|
</ion-button>
|
|
@@ -571,7 +544,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
571
544
|
}
|
|
572
545
|
} @else {
|
|
573
546
|
<button class="expand-button" (click)="onToggleCollapse()">
|
|
574
|
-
<ion-icon name="chevron-down"></ion-icon>
|
|
547
|
+
<ion-icon name="chevron-down" aria-hidden="true"></ion-icon>
|
|
575
548
|
<span>{{ i18n.t('showComment') }}</span>
|
|
576
549
|
</button>
|
|
577
550
|
}
|
|
@@ -582,7 +555,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
582
555
|
<div class="comment-children">
|
|
583
556
|
@if (props.collapsed) {
|
|
584
557
|
<button class="collapse-button" (click)="onToggleCollapse()">
|
|
585
|
-
<ion-icon name="chevron-up"></ion-icon>
|
|
558
|
+
<ion-icon name="chevron-up" aria-hidden="true"></ion-icon>
|
|
586
559
|
<span>{{ i18n.t('hideReplies') }}</span>
|
|
587
560
|
</button>
|
|
588
561
|
}
|
|
@@ -602,7 +575,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
602
575
|
|
|
603
576
|
@if (hasMoreReplies()) {
|
|
604
577
|
<button class="load-more-button" (click)="onLoadMoreClick()">
|
|
605
|
-
<ion-icon name="chatbubble-outline"></ion-icon>
|
|
578
|
+
<ion-icon name="chatbubble-outline" aria-hidden="true"></ion-icon>
|
|
606
579
|
<span>{{ getLoadMoreRepliesText() }}</span>
|
|
607
580
|
</button>
|
|
608
581
|
}
|
|
@@ -631,4 +604,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
631
604
|
}], collapseToggle: [{
|
|
632
605
|
type: Output
|
|
633
606
|
}] } });
|
|
634
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbW1lbnQvY29tbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLEtBQUssRUFDTCxlQUFlLEVBQ2YsUUFBUSxFQUNSLFlBQVksRUFDWixLQUFLLEVBQ0wsVUFBVSxFQUNWLEdBQUcsRUFDSCxXQUFXLEVBQ1gsU0FBUyxFQUNULEdBQUcsRUFDSCxNQUFNLEVBQ04sS0FBSyxFQUNMLElBQUksRUFDSixLQUFLLEdBQ04sTUFBTSxnQkFBZ0IsQ0FBQzs7QUFjeEIsUUFBUSxDQUFDO0lBQ1Asa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsWUFBWTtJQUNaLEtBQUs7SUFDTCxlQUFlO0lBQ2YsUUFBUTtJQUNSLFlBQVk7SUFDWixLQUFLO0lBQ0wsVUFBVTtJQUNWLEdBQUc7SUFDSCxXQUFXO0lBQ1gsU0FBUztJQUNULEdBQUc7SUFDSCxNQUFNO0lBQ04sS0FBSztJQUNMLElBQUk7SUFDSixLQUFLO0NBQ04sQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxZQUFZLEdBQUc7SUFDbkIsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixFQUFFO0lBQzdDLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSx3QkFBd0IsRUFBRTtDQUNoRCxDQUFDO0FBbU1GOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Q0c7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBYzNCO1FBYlUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUkzQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUEyQixDQUFDO1FBQzFELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFDOUQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUMxRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUE2QixDQUFDO1FBQzlELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFDekQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBeUMsQ0FBQztRQUVyRixtQkFBYyxHQUFXLEVBQUUsQ0FBQztRQUcxQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDckQsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7SUFDL0UsQ0FBQztJQUVELGtFQUFrRTtJQUNsRSxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVk7UUFDdEIsT0FBTyxJQUFJO2FBQ1IsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNWLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hCLElBQUksQ0FBQyxFQUFFLENBQUM7YUFDUixTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNmLFdBQVcsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxlQUFlLENBQUMsU0FBd0I7UUFDdEMsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRXBDLElBQUksT0FBTyxHQUFHLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELElBQUksT0FBTyxHQUFHLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvRixJQUFJLEtBQUssR0FBRyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkYsSUFBSSxJQUFJLEdBQUcsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWxGLE9BQU8sU0FBUyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsS0FBSyxLQUFLLEdBQUcsQ0FBQztJQUN4RCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDeEUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxLQUFLLEtBQUssR0FBRyxDQUFDO0lBQ3BELENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYTtRQUN2QixJQUFJLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNyQixPQUFPLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbEIsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDN0QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBZTtRQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQsb0JBQW9CO1FBQ3BCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFekMsWUFBWTtRQUNaLE1BQU0sUUFBUSxHQUFHLHlDQUF5QyxDQUFDO1FBQzNELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUMzQixRQUFRLEVBQ1Isb0ZBQW9GLENBQ3JGLENBQUM7UUFFRixZQUFZO1FBQ1osTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQy9CLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUMzQixZQUFZLEVBQ1osMENBQTBDLENBQzNDLENBQUM7UUFFRixZQUFZO1FBQ1osTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQy9CLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUMzQixZQUFZLEVBQ1osMENBQTBDLENBQzNDLENBQUM7UUFFRix1QkFBdUI7UUFDdkIsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTdDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyxVQUFVLENBQUMsSUFBWTtRQUM3QixNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQztJQUN2QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBeUI7UUFDeEMsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1QyxPQUFPLG1CQUFtQixRQUFRLENBQUMsV0FBVyxHQUFHLENBQUM7UUFDcEQsQ0FBQztRQUNELElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE9BQU8sMEJBQTBCLENBQUM7UUFDcEMsQ0FBQztRQUNELElBQUksUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25CLE9BQU8sbUJBQW1CLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsT0FBTyx5QkFBeUIsQ0FBQztJQUNuQyxDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQXFCO1FBQ2xDLE9BQU8sTUFBTSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBcUI7UUFDcEMsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3pELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO1FBQzFDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUMzQyxPQUFPLFlBQVksR0FBRyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBc0I7UUFDbEMsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDbEMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLENBQUM7U0FDbkMsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3pDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7SUFDN0MsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQztRQUN6QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ2hELE9BQU8sS0FBSyxHQUFHLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3BCLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU07WUFDekIsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZSxDQUFDLFFBQXlCO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO1lBQ3RCLFFBQVE7WUFDUixZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLO1lBQzlCLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBcUI7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDcEIsTUFBTTtZQUNOLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7U0FDL0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFxQjtRQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztZQUN0QixRQUFRLEVBQUUsSUFBSTtZQUNkLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7U0FDL0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztZQUN0QixZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLO1lBQzlCLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLElBQUksQ0FBQztTQUMvQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDdkIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztZQUN2QixTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVM7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FyTlUsZ0JBQWdCO21HQUFoQixnQkFBZ0IsMFNBNU5qQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUxULHd6U0EyQ1UsZ0JBQWdCLHdMQXJPekIsWUFBWSwrQkFDWixPQUFPLDJKQUNQLFNBQVMsb1BBQ1QsVUFBVSx3REFDVixPQUFPLHlGQUNQLE9BQU8sME5BQ1AsUUFBUSw2RkFDUixlQUFlOzs0RkE4Tk4sZ0JBQWdCO2tCQXpPNUIsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osT0FBTzt3QkFDUCxTQUFTO3dCQUNULFVBQVU7d0JBQ1YsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLFFBQVE7d0JBQ1IsZUFBZTtxQkFDaEIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUxUO3dEQThDUSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJb25JY29uLCBJb25CdXR0b24sIElvblBvcG92ZXIsIElvbkxpc3QsIElvbkl0ZW0sIElvbkxhYmVsIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQge1xuICBlbGxpcHNpc0hvcml6b250YWwsXG4gIGNoZWNrbWFya0NpcmNsZSxcbiAgY2hhdGJ1YmJsZU91dGxpbmUsXG4gIGhlYXJ0T3V0bGluZSxcbiAgaGVhcnQsXG4gIHRodW1ic1VwT3V0bGluZSxcbiAgdGh1bWJzVXAsXG4gIGhhcHB5T3V0bGluZSxcbiAgaGFwcHksXG4gIHNhZE91dGxpbmUsXG4gIHNhZCxcbiAgY2hldnJvbkRvd24sXG4gIGNoZXZyb25VcCxcbiAgcGluLFxuICBwZW5jaWwsXG4gIHRyYXNoLFxuICBmbGFnLFxuICBzaGFyZSxcbn0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHtcbiAgQ29tbWVudE1ldGFkYXRhLFxuICBDb21tZW50QXV0aG9yLFxuICBDb21tZW50UmVhY3Rpb24sXG4gIENvbW1lbnRBY3Rpb24sXG4gIENvbW1lbnRNZW51SXRlbSxcbiAgQ29tbWVudEF1dGhvckNsaWNrRXZlbnQsXG4gIENvbW1lbnRSZWFjdGlvbkNsaWNrRXZlbnQsXG4gIENvbW1lbnRBY3Rpb25DbGlja0V2ZW50LFxuICBDb21tZW50TWVudUl0ZW1DbGlja0V2ZW50LFxuICBDb21tZW50TG9hZE1vcmVFdmVudCxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmFkZEljb25zKHtcbiAgZWxsaXBzaXNIb3Jpem9udGFsLFxuICBjaGVja21hcmtDaXJjbGUsXG4gIGNoYXRidWJibGVPdXRsaW5lLFxuICBoZWFydE91dGxpbmUsXG4gIGhlYXJ0LFxuICB0aHVtYnNVcE91dGxpbmUsXG4gIHRodW1ic1VwLFxuICBoYXBweU91dGxpbmUsXG4gIGhhcHB5LFxuICBzYWRPdXRsaW5lLFxuICBzYWQsXG4gIGNoZXZyb25Eb3duLFxuICBjaGV2cm9uVXAsXG4gIHBpbixcbiAgcGVuY2lsLFxuICB0cmFzaCxcbiAgZmxhZyxcbiAgc2hhcmUsXG59KTtcblxuLyoqXG4gKiBEZWZhdWx0cyBpMThuIChlcy9lbikg4oCUIGF1dG8tcmVnaXN0cmFkb3Mgc2kgZWwgY29uc3VtZXIgbm8gcHJvdmV5w7MgZWxcbiAqIG5hbWVzcGFjZSBgQ29tbWVudGAuIEN1YnJlIGVsIGFyaWEtbGFiZWwgZGVsIGF1dG9yIChhdmF0YXIgKyBub21icmUpLlxuICovXG5jb25zdCBDT01NRU5UX0kxOE4gPSB7XG4gIGVzOiB7IHZpZXdQcm9maWxlT2Y6ICdWZXIgcGVyZmlsIGRlIHtuYW1lfScgfSxcbiAgZW46IHsgdmlld1Byb2ZpbGVPZjogJ1ZpZXcgcHJvZmlsZSBvZiB7bmFtZX0nIH0sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY29tbWVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uSWNvbixcbiAgICBJb25CdXR0b24sXG4gICAgSW9uUG9wb3ZlcixcbiAgICBJb25MaXN0LFxuICAgIElvbkl0ZW0sXG4gICAgSW9uTGFiZWwsXG4gICAgQXZhdGFyQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY29tbWVudFwiXG4gICAgICBbY2xhc3MuaGlnaGxpZ2h0ZWRdPVwicHJvcHMuaGlnaGxpZ2h0ZWRcIlxuICAgICAgW2NsYXNzLnBpbm5lZF09XCJwcm9wcy5waW5uZWRcIlxuICAgICAgW2NsYXNzLmNvbGxhcHNlZF09XCJwcm9wcy5jb2xsYXBzZWRcIlxuICAgICAgW3N0eWxlLi0tZGVwdGhdPVwicHJvcHMuZGVwdGggfHwgMFwiXG4gICAgPlxuICAgICAgQGlmIChwcm9wcy5waW5uZWQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInBpbm5lZC1pbmRpY2F0b3JcIj5cbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInBpblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgPHNwYW4+e3sgaTE4bi50KCdwaW5uZWQnKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb21tZW50LW1haW5cIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjb21tZW50LWF2YXRhclwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYXV0aG9yTGFiZWwoKVwiIChjbGljayk9XCJvbkF1dGhvckNsaWNrKClcIj5cbiAgICAgICAgICBAaWYgKHByb3BzLmF1dGhvci5hdmF0YXIpIHtcbiAgICAgICAgICAgIDx2YWwtYXZhdGFyIFtwcm9wc109XCJwcm9wcy5hdXRob3IuYXZhdGFyXCI+PC92YWwtYXZhdGFyPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1wbGFjZWhvbGRlclwiPlxuICAgICAgICAgICAgICB7eyBnZXRJbml0aWFscyhwcm9wcy5hdXRob3IubmFtZSkgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtYm9keVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21tZW50LWhlYWRlclwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhdXRob3ItaW5mb1wiIFthdHRyLmFyaWEtbGFiZWxdPVwiYXV0aG9yTGFiZWwoKVwiIChjbGljayk9XCJvbkF1dGhvckNsaWNrKClcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdXRob3ItbmFtZVwiPnt7IHByb3BzLmF1dGhvci5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICBAaWYgKHByb3BzLmF1dGhvci52ZXJpZmllZCkge1xuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrLWNpcmNsZVwiIGNsYXNzPVwidmVyaWZpZWQtYmFkZ2VcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAocHJvcHMuYXV0aG9yLnVzZXJuYW1lKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdXRob3ItdXNlcm5hbWVcIj4mIzY0O3t7IHByb3BzLmF1dGhvci51c2VybmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21tZW50LW1ldGFcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1lc3RhbXBcIj57eyBmb3JtYXRUaW1lc3RhbXAocHJvcHMudGltZXN0YW1wKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgQGlmIChwcm9wcy5lZGl0ZWQpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVkaXRlZC1sYWJlbFwiPnt7IGkxOG4udCgnZWRpdGVkJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICBAaWYgKHByb3BzLm1lbnVJdGVtcyAmJiBwcm9wcy5tZW51SXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vcmUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbaWRdPVwiJ21lbnUtdHJpZ2dlci0nICsgcHJvcHMudG9rZW5cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJlbGxpcHNpcy1ob3Jpem9udGFsXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgICAgICAgICA8aW9uLXBvcG92ZXJcbiAgICAgICAgICAgICAgICBbdHJpZ2dlcl09XCInbWVudS10cmlnZ2VyLScgKyBwcm9wcy50b2tlblwiXG4gICAgICAgICAgICAgICAgW2Rpc21pc3NPblNlbGVjdF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgIDxpb24tbGlzdD5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBwcm9wcy5tZW51SXRlbXM7IHRyYWNrIGl0ZW0udG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uZGl2aWRlckJlZm9yZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtZGl2aWRlclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA8aW9uLWl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGV0YWlsXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk1lbnVJdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIml0ZW0uaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdD1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiaXRlbS5jb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2lvbi1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1sYWJlbCBbY29sb3JdPVwiaXRlbS5jb2xvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRNZW51SXRlbUxhYmVsKGl0ZW0pIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L2lvbi1saXN0PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvaW9uLXBvcG92ZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICBAaWYgKCFwcm9wcy5jb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb21tZW50LWNvbnRlbnRcIlxuICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInByb2Nlc3NDb250ZW50KGRpc3BsYXlDb250ZW50KVwiXG4gICAgICAgICAgICA+PC9kaXY+XG5cbiAgICAgICAgICAgIEBpZiAocHJvcHMucmVhY3Rpb25zICYmIHByb3BzLnJlYWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21tZW50LXJlYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIEBmb3IgKHJlYWN0aW9uIG9mIHByb3BzLnJlYWN0aW9uczsgdHJhY2sgcmVhY3Rpb24udG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZWFjdGlvbi1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInJlYWN0aW9uLmFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS4tLXJlYWN0aW9uLWNvbG9yXT1cImdldFJlYWN0aW9uQ29sb3IocmVhY3Rpb24pXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUmVhY3Rpb25DbGljayhyZWFjdGlvbilcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicmVhY3Rpb24uaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAocmVhY3Rpb24uY291bnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWFjdGlvbi1jb3VudFwiPnt7IGZvcm1hdENvdW50KHJlYWN0aW9uLmNvdW50KSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIChwcm9wcy5hY3Rpb25zICYmIHByb3BzLmFjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWVudC1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgQGZvciAoYWN0aW9uIG9mIHByb3BzLmFjdGlvbnM7IHRyYWNrIGFjdGlvbi50b2tlbikge1xuICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImFjdGlvbi5jb2xvciB8fCAnbWVkaXVtJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb24uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BY3Rpb25DbGljayhhY3Rpb24pXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChhY3Rpb24uaWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJhY3Rpb24uaWNvblwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAge3sgZ2V0QWN0aW9uTGFiZWwoYWN0aW9uKSB9fVxuICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZXhwYW5kLWJ1dHRvblwiIChjbGljayk9XCJvblRvZ2dsZUNvbGxhcHNlKClcIj5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLWRvd25cIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBpMThuLnQoJ3Nob3dDb21tZW50JykgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAoIXByb3BzLmNvbGxhcHNlZCAmJiBoYXNDaGlsZHJlbigpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb21tZW50LWNoaWxkcmVuXCI+XG4gICAgICAgICAgQGlmIChwcm9wcy5jb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb2xsYXBzZS1idXR0b25cIiAoY2xpY2spPVwib25Ub2dnbGVDb2xsYXBzZSgpXCI+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hldnJvbi11cFwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGkxOG4udCgnaGlkZVJlcGxpZXMnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiAoY2FuU2hvd0NoaWxkcmVuKCkpIHtcbiAgICAgICAgICAgIEBmb3IgKGNoaWxkIG9mIHByb3BzLmNoaWxkcmVuOyB0cmFjayBjaGlsZC50b2tlbikge1xuICAgICAgICAgICAgICA8dmFsLWNvbW1lbnRcbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwiZ2V0Q2hpbGRQcm9wcyhjaGlsZClcIlxuICAgICAgICAgICAgICAgIChhdXRob3JDbGljayk9XCJhdXRob3JDbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgIChyZWFjdGlvbkNsaWNrKT1cInJlYWN0aW9uQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoYWN0aW9uQ2xpY2spPVwiYWN0aW9uQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAobWVudUl0ZW1DbGljayk9XCJtZW51SXRlbUNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGxvYWRNb3JlQ2xpY2spPVwibG9hZE1vcmVDbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjb2xsYXBzZVRvZ2dsZSk9XCJjb2xsYXBzZVRvZ2dsZS5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICA+PC92YWwtY29tbWVudD5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIChoYXNNb3JlUmVwbGllcygpKSB7XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJsb2FkLW1vcmUtYnV0dG9uXCIgKGNsaWNrKT1cIm9uTG9hZE1vcmVDbGljaygpXCI+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGF0YnViYmxlLW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGdldExvYWRNb3JlUmVwbGllc1RleHQoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwidmlldy1yZXBsaWVzLWJ1dHRvblwiIChjbGljayk9XCJvbkxvYWRNb3JlQ2xpY2soKVwiPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoYXRidWJibGUtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGdldFZpZXdSZXBsaWVzVGV4dCgpIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vY29tbWVudC5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLWNvbW1lbnRcbiAqXG4gKiBBIHZlcnNhdGlsZSBjb21tZW50IGNvbXBvbmVudCBmb3IgZm9ydW1zLCByZXZpZXdzLCBhbmQgc29jaWFsIG1lZGlhLlxuICogU3VwcG9ydHMgYXV0aG9yIGluZm8sIHJlYWN0aW9ucywgYWN0aW9ucywgbmVzdGVkIHJlcGxpZXMsIGFuZCBtb3JlLlxuICpcbiAqIEBleGFtcGxlIEJhc2ljIGNvbW1lbnRcbiAqIDx2YWwtY29tbWVudCBbcHJvcHNdPVwie1xuICogICB0b2tlbjogJzEnLFxuICogICBhdXRob3I6IHsgbmFtZTogJ0pvaG4gRG9lJywgdXNlcm5hbWU6ICdqb2huZCcgfSxcbiAqICAgY29udGVudDogJ1RoaXMgaXMgYSBncmVhdCBwb3N0IScsXG4gKiAgIHRpbWVzdGFtcDogJzIgaG91cnMgYWdvJ1xuICogfVwiPjwvdmFsLWNvbW1lbnQ+XG4gKlxuICogQGV4YW1wbGUgV2l0aCByZWFjdGlvbnMgYW5kIGFjdGlvbnNcbiAqIDx2YWwtY29tbWVudCBbcHJvcHNdPVwie1xuICogICB0b2tlbjogJzEnLFxuICogICBhdXRob3I6IHsgbmFtZTogJ0phbmUnLCBhdmF0YXI6IGF2YXRhclByb3BzLCB2ZXJpZmllZDogdHJ1ZSB9LFxuICogICBjb250ZW50OiAnQW1hemluZyBjb250ZW50ISBDaGVjayBvdXQgaHR0cHM6Ly9leGFtcGxlLmNvbScsXG4gKiAgIHRpbWVzdGFtcDogbmV3IERhdGUoKSxcbiAqICAgcmVhY3Rpb25zOiBbXG4gKiAgICAgeyB0b2tlbjogJ2xpa2UnLCBpY29uOiAnaGVhcnQtb3V0bGluZScsIGNvdW50OiA0MiwgYWN0aXZlOiBmYWxzZSB9XG4gKiAgIF0sXG4gKiAgIGFjdGlvbnM6IFtcbiAqICAgICB7IHRva2VuOiAncmVwbHknLCBsYWJlbDogJ1JlcGx5JywgaWNvbjogJ2NoYXRidWJibGUtb3V0bGluZScgfVxuICogICBdLFxuICogICBtZW51SXRlbXM6IFtcbiAqICAgICB7IHRva2VuOiAnZWRpdCcsIGxhYmVsOiAnRWRpdCcsIGljb246ICdwZW5jaWwnIH0sXG4gKiAgICAgeyB0b2tlbjogJ2RlbGV0ZScsIGxhYmVsOiAnRGVsZXRlJywgaWNvbjogJ3RyYXNoJywgY29sb3I6ICdkYW5nZXInIH1cbiAqICAgXVxuICogfVwiPjwvdmFsLWNvbW1lbnQ+XG4gKlxuICogQGlucHV0IHByb3BzOiBDb21tZW50TWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgY29tbWVudFxuICogQG91dHB1dCBhdXRob3JDbGljayAtIEVtaXRzIHdoZW4gYXV0aG9yIG5hbWUvYXZhdGFyIGlzIGNsaWNrZWRcbiAqIEBvdXRwdXQgcmVhY3Rpb25DbGljayAtIEVtaXRzIHdoZW4gYSByZWFjdGlvbiBpcyBjbGlja2VkXG4gKiBAb3V0cHV0IGFjdGlvbkNsaWNrIC0gRW1pdHMgd2hlbiBhbiBhY3Rpb24gYnV0dG9uIGlzIGNsaWNrZWRcbiAqIEBvdXRwdXQgbWVudUl0ZW1DbGljayAtIEVtaXRzIHdoZW4gYSBtZW51IGl0ZW0gaXMgY2xpY2tlZFxuICogQG91dHB1dCBsb2FkTW9yZUNsaWNrIC0gRW1pdHMgd2hlbiBsb2FkIG1vcmUgcmVwbGllcyBpcyBjbGlja2VkXG4gKiBAb3V0cHV0IGNvbGxhcHNlVG9nZ2xlIC0gRW1pdHMgd2hlbiBjb21tZW50IGlzIGNvbGxhcHNlZC9leHBhbmRlZFxuICovXG5leHBvcnQgY2xhc3MgQ29tbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3RlY3RlZCBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICBASW5wdXQoKSBwcm9wczogQ29tbWVudE1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKSBhdXRob3JDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudEF1dGhvckNsaWNrRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSByZWFjdGlvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50UmVhY3Rpb25DbGlja0V2ZW50PigpO1xuICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPENvbW1lbnRBY3Rpb25DbGlja0V2ZW50PigpO1xuICBAT3V0cHV0KCkgbWVudUl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudE1lbnVJdGVtQ2xpY2tFdmVudD4oKTtcbiAgQE91dHB1dCgpIGxvYWRNb3JlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPENvbW1lbnRMb2FkTW9yZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgY29sbGFwc2VUb2dnbGUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdG9rZW46IHN0cmluZzsgY29sbGFwc2VkOiBib29sZWFuIH0+KCk7XG5cbiAgZGlzcGxheUNvbnRlbnQ6IHN0cmluZyA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZSgnQ29tbWVudCcpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJDb250ZW50KCdDb21tZW50JywgQ09NTUVOVF9JMThOKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXlDb250ZW50ID0gdGhpcy5wcm9wcy5jb250ZW50IHx8IHRoaXMucHJvcHMuY29udGVudEZhbGxiYWNrIHx8ICcnO1xuICB9XG5cbiAgLyoqIEFyaWEtbGFiZWwgYWNjZXNpYmxlIGRlbCBhdXRvciAoYXZhdGFyICsgbm9tYnJlIGNsaWNhYmxlcykuICovXG4gIGF1dGhvckxhYmVsKCk6IHN0cmluZyB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoJ3ZpZXdQcm9maWxlT2YnLCAnQ29tbWVudCcsIHsgbmFtZTogdGhpcy5wcm9wcy5hdXRob3IubmFtZSB9KTtcbiAgfVxuXG4gIGdldEluaXRpYWxzKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5hbWVcbiAgICAgIC5zcGxpdCgnICcpXG4gICAgICAubWFwKChuKSA9PiBuWzBdKVxuICAgICAgLmpvaW4oJycpXG4gICAgICAuc3Vic3RyaW5nKDAsIDIpXG4gICAgICAudG9VcHBlckNhc2UoKTtcbiAgfVxuXG4gIGZvcm1hdFRpbWVzdGFtcCh0aW1lc3RhbXA6IHN0cmluZyB8IERhdGUpOiBzdHJpbmcge1xuICAgIGlmICh0eXBlb2YgdGltZXN0YW1wID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIHRpbWVzdGFtcDtcbiAgICB9XG5cbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IGRpZmYgPSBub3cuZ2V0VGltZSgpIC0gdGltZXN0YW1wLmdldFRpbWUoKTtcbiAgICBjb25zdCBzZWNvbmRzID0gTWF0aC5mbG9vcihkaWZmIC8gMTAwMCk7XG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAvIDYwKTtcbiAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3IobWludXRlcyAvIDYwKTtcbiAgICBjb25zdCBkYXlzID0gTWF0aC5mbG9vcihob3VycyAvIDI0KTtcblxuICAgIGlmIChzZWNvbmRzIDwgNjApIHJldHVybiB0aGlzLmkxOG4udCgnanVzdE5vdycpO1xuICAgIGlmIChtaW51dGVzIDwgNjApIHJldHVybiB0aGlzLmkxOG4udCgnbWludXRlc0FnbycsICdfZ2xvYmFsJywgeyBtaW51dGVzOiBtaW51dGVzLnRvU3RyaW5nKCkgfSk7XG4gICAgaWYgKGhvdXJzIDwgMjQpIHJldHVybiB0aGlzLmkxOG4udCgnaG91cnNBZ28nLCAnX2dsb2JhbCcsIHsgaG91cnM6IGhvdXJzLnRvU3RyaW5nKCkgfSk7XG4gICAgaWYgKGRheXMgPCA3KSByZXR1cm4gdGhpcy5pMThuLnQoJ2RheXNBZ28nLCAnX2dsb2JhbCcsIHsgZGF5czogZGF5cy50b1N0cmluZygpIH0pO1xuXG4gICAgcmV0dXJuIHRpbWVzdGFtcC50b0xvY2FsZURhdGVTdHJpbmcoKTtcbiAgfVxuXG4gIGdldExvYWRNb3JlUmVwbGllc1RleHQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb3VudCA9IHRoaXMuZ2V0UmVtYWluaW5nQ291bnQoKTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoJ2xvYWRNb3JlUmVwbGllcycpICsgYCAoJHtjb3VudH0pYDtcbiAgfVxuXG4gIGdldFZpZXdSZXBsaWVzVGV4dCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvdW50ID0gdGhpcy5wcm9wcy5yZXBseUNvdW50IHx8IHRoaXMucHJvcHMuY2hpbGRyZW4/Lmxlbmd0aCB8fCAwO1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgndmlld1JlcGxpZXMnKSArIGAgKCR7Y291bnR9KWA7XG4gIH1cblxuICBmb3JtYXRDb3VudChjb3VudDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAoY291bnQgPj0gMTAwMDAwMCkge1xuICAgICAgcmV0dXJuIChjb3VudCAvIDEwMDAwMDApLnRvRml4ZWQoMSkucmVwbGFjZSgvXFwuMCQvLCAnJykgKyAnTSc7XG4gICAgfVxuICAgIGlmIChjb3VudCA+PSAxMDAwKSB7XG4gICAgICByZXR1cm4gKGNvdW50IC8gMTAwMCkudG9GaXhlZCgxKS5yZXBsYWNlKC9cXC4wJC8sICcnKSArICdLJztcbiAgICB9XG4gICAgcmV0dXJuIGNvdW50LnRvU3RyaW5nKCk7XG4gIH1cblxuICBwcm9jZXNzQ29udGVudChjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnByb3BzLmF1dG9MaW5raWZ5ID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZXNjYXBlSHRtbChjb250ZW50KTtcbiAgICB9XG5cbiAgICAvLyBFc2NhcGUgSFRNTCBmaXJzdFxuICAgIGxldCBwcm9jZXNzZWQgPSB0aGlzLmVzY2FwZUh0bWwoY29udGVudCk7XG5cbiAgICAvLyBVUkwgcmVnZXhcbiAgICBjb25zdCB1cmxSZWdleCA9IC8oaHR0cHM/OlxcL1xcL1teXFxzPF0rW15cXHM8Liw7OiE/KVxcXSdcIl0pL2dpO1xuICAgIHByb2Nlc3NlZCA9IHByb2Nlc3NlZC5yZXBsYWNlKFxuICAgICAgdXJsUmVnZXgsXG4gICAgICAnPGEgaHJlZj1cIiQxXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiIGNsYXNzPVwiY29tbWVudC1saW5rXCI+JDE8L2E+J1xuICAgICk7XG5cbiAgICAvLyBAbWVudGlvbnNcbiAgICBjb25zdCBtZW50aW9uUmVnZXggPSAvQChcXHcrKS9nO1xuICAgIHByb2Nlc3NlZCA9IHByb2Nlc3NlZC5yZXBsYWNlKFxuICAgICAgbWVudGlvblJlZ2V4LFxuICAgICAgJzxzcGFuIGNsYXNzPVwiY29tbWVudC1tZW50aW9uXCI+QCQxPC9zcGFuPidcbiAgICApO1xuXG4gICAgLy8gI2hhc2h0YWdzXG4gICAgY29uc3QgaGFzaHRhZ1JlZ2V4ID0gLyMoXFx3KykvZztcbiAgICBwcm9jZXNzZWQgPSBwcm9jZXNzZWQucmVwbGFjZShcbiAgICAgIGhhc2h0YWdSZWdleCxcbiAgICAgICc8c3BhbiBjbGFzcz1cImNvbW1lbnQtaGFzaHRhZ1wiPiMkMTwvc3Bhbj4nXG4gICAgKTtcblxuICAgIC8vIFByZXNlcnZlIGxpbmUgYnJlYWtzXG4gICAgcHJvY2Vzc2VkID0gcHJvY2Vzc2VkLnJlcGxhY2UoL1xcbi9nLCAnPGJyPicpO1xuXG4gICAgcmV0dXJuIHByb2Nlc3NlZDtcbiAgfVxuXG4gIHByaXZhdGUgZXNjYXBlSHRtbCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGRpdi50ZXh0Q29udGVudCA9IHRleHQ7XG4gICAgcmV0dXJuIGRpdi5pbm5lckhUTUw7XG4gIH1cblxuICBnZXRSZWFjdGlvbkNvbG9yKHJlYWN0aW9uOiBDb21tZW50UmVhY3Rpb24pOiBzdHJpbmcge1xuICAgIGlmIChyZWFjdGlvbi5hY3RpdmUgJiYgcmVhY3Rpb24uYWN0aXZlQ29sb3IpIHtcbiAgICAgIHJldHVybiBgdmFyKC0taW9uLWNvbG9yLSR7cmVhY3Rpb24uYWN0aXZlQ29sb3J9KWA7XG4gICAgfVxuICAgIGlmIChyZWFjdGlvbi5hY3RpdmUpIHtcbiAgICAgIHJldHVybiAndmFyKC0taW9uLWNvbG9yLXByaW1hcnkpJztcbiAgICB9XG4gICAgaWYgKHJlYWN0aW9uLmNvbG9yKSB7XG4gICAgICByZXR1cm4gYHZhcigtLWlvbi1jb2xvci0ke3JlYWN0aW9uLmNvbG9yfSlgO1xuICAgIH1cbiAgICByZXR1cm4gJ3ZhcigtLWlvbi1jb2xvci1tZWRpdW0pJztcbiAgfVxuXG4gIGdldEFjdGlvbkxhYmVsKGFjdGlvbjogQ29tbWVudEFjdGlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFjdGlvbi5sYWJlbCB8fCBhY3Rpb24uY29udGVudEZhbGxiYWNrIHx8ICcnO1xuICB9XG5cbiAgZ2V0TWVudUl0ZW1MYWJlbChpdGVtOiBDb21tZW50TWVudUl0ZW0pOiBzdHJpbmcge1xuICAgIHJldHVybiBpdGVtLmxhYmVsIHx8IGl0ZW0uY29udGVudEZhbGxiYWNrIHx8ICcnO1xuICB9XG5cbiAgaGFzQ2hpbGRyZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMucHJvcHMuY2hpbGRyZW4gJiYgdGhpcy5wcm9wcy5jaGlsZHJlbi5sZW5ndGggPiAwKSB8fFxuICAgICAgICAgICAhISh0aGlzLnByb3BzLnJlcGx5Q291bnQgJiYgdGhpcy5wcm9wcy5yZXBseUNvdW50ID4gMCk7XG4gIH1cblxuICBjYW5TaG93Q2hpbGRyZW4oKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbWF4RGVwdGggPSB0aGlzLnByb3BzLm1heERlcHRoID8/IDM7XG4gICAgY29uc3QgY3VycmVudERlcHRoID0gdGhpcy5wcm9wcy5kZXB0aCA/PyAwO1xuICAgIHJldHVybiBjdXJyZW50RGVwdGggPCBtYXhEZXB0aCAmJiAhISh0aGlzLnByb3BzLmNoaWxkcmVuICYmIHRoaXMucHJvcHMuY2hpbGRyZW4ubGVuZ3RoID4gMCk7XG4gIH1cblxuICBnZXRDaGlsZFByb3BzKGNoaWxkOiBDb21tZW50TWV0YWRhdGEpOiBDb21tZW50TWV0YWRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jaGlsZCxcbiAgICAgIGRlcHRoOiAodGhpcy5wcm9wcy5kZXB0aCA/PyAwKSArIDEsXG4gICAgICBtYXhEZXB0aDogdGhpcy5wcm9wcy5tYXhEZXB0aCA/PyAzLFxuICAgIH07XG4gIH1cblxuICBoYXNNb3JlUmVwbGllcygpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMucHJvcHMucmVwbHlDb3VudCkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGxvYWRlZENvdW50ID0gdGhpcy5wcm9wcy5jaGlsZHJlbj8ubGVuZ3RoID8/IDA7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucmVwbHlDb3VudCA+IGxvYWRlZENvdW50O1xuICB9XG5cbiAgZ2V0UmVtYWluaW5nQ291bnQoKTogbnVtYmVyIHtcbiAgICBjb25zdCB0b3RhbCA9IHRoaXMucHJvcHMucmVwbHlDb3VudCA/PyAwO1xuICAgIGNvbnN0IGxvYWRlZCA9IHRoaXMucHJvcHMuY2hpbGRyZW4/Lmxlbmd0aCA/PyAwO1xuICAgIHJldHVybiB0b3RhbCAtIGxvYWRlZDtcbiAgfVxuXG4gIG9uQXV0aG9yQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5hdXRob3JDbGljay5lbWl0KHtcbiAgICAgIGF1dGhvcjogdGhpcy5wcm9wcy5hdXRob3IsXG4gICAgICBjb21tZW50VG9rZW46IHRoaXMucHJvcHMudG9rZW4sXG4gICAgfSk7XG4gIH1cblxuICBvblJlYWN0aW9uQ2xpY2socmVhY3Rpb246IENvbW1lbnRSZWFjdGlvbik6IHZvaWQge1xuICAgIHRoaXMucmVhY3Rpb25DbGljay5lbWl0KHtcbiAgICAgIHJlYWN0aW9uLFxuICAgICAgY29tbWVudFRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgICAgaXNBY3RpdmU6ICFyZWFjdGlvbi5hY3RpdmUsXG4gICAgfSk7XG4gIH1cblxuICBvbkFjdGlvbkNsaWNrKGFjdGlvbjogQ29tbWVudEFjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuYWN0aW9uQ2xpY2suZW1pdCh7XG4gICAgICBhY3Rpb24sXG4gICAgICBjb21tZW50VG9rZW46IHRoaXMucHJvcHMudG9rZW4sXG4gICAgfSk7XG4gIH1cblxuICBvbk1lbnVJdGVtQ2xpY2soaXRlbTogQ29tbWVudE1lbnVJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5tZW51SXRlbUNsaWNrLmVtaXQoe1xuICAgICAgbWVudUl0ZW06IGl0ZW0sXG4gICAgICBjb21tZW50VG9rZW46IHRoaXMucHJvcHMudG9rZW4sXG4gICAgfSk7XG4gIH1cblxuICBvbkxvYWRNb3JlQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkTW9yZUNsaWNrLmVtaXQoe1xuICAgICAgY29tbWVudFRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgICAgY3VycmVudENvdW50OiB0aGlzLnByb3BzLmNoaWxkcmVuPy5sZW5ndGggPz8gMCxcbiAgICB9KTtcbiAgfVxuXG4gIG9uVG9nZ2xlQ29sbGFwc2UoKTogdm9pZCB7XG4gICAgdGhpcy5jb2xsYXBzZVRvZ2dsZS5lbWl0KHtcbiAgICAgIHRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgICAgY29sbGFwc2VkOiAhdGhpcy5wcm9wcy5jb2xsYXBzZWQsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
607
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbW1lbnQvY29tbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLEtBQUssRUFDTCxlQUFlLEVBQ2YsUUFBUSxFQUNSLFlBQVksRUFDWixLQUFLLEVBQ0wsVUFBVSxFQUNWLEdBQUcsRUFDSCxXQUFXLEVBQ1gsU0FBUyxFQUNULEdBQUcsRUFDSCxNQUFNLEVBQ04sS0FBSyxFQUNMLElBQUksRUFDSixLQUFLLEdBQ04sTUFBTSxnQkFBZ0IsQ0FBQzs7QUFjeEIsUUFBUSxDQUFDO0lBQ1Asa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsWUFBWTtJQUNaLEtBQUs7SUFDTCxlQUFlO0lBQ2YsUUFBUTtJQUNSLFlBQVk7SUFDWixLQUFLO0lBQ0wsVUFBVTtJQUNWLEdBQUc7SUFDSCxXQUFXO0lBQ1gsU0FBUztJQUNULEdBQUc7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QiwwU0FuTmpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3S1Qsd3pTQTJDVSxnQkFBZ0Isd0xBcE5qQixZQUFZLCtCQUFFLE9BQU8sMkpBQUUsU0FBUyxvUEFBRSxVQUFVLHdEQUFFLE9BQU8seUZBQUUsT0FBTywwTkFBRSxRQUFRLDZGQUFFLGVBQWU7OzRGQW9OeEYsZ0JBQWdCO2tCQXZONUIsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLGVBQWUsQ0FBQyxZQUMxRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0tUO3dEQThDUSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJb25JY29uLCBJb25CdXR0b24sIElvblBvcG92ZXIsIElvbkxpc3QsIElvbkl0ZW0sIElvbkxhYmVsIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQge1xuICBlbGxpcHNpc0hvcml6b250YWwsXG4gIGNoZWNrbWFya0NpcmNsZSxcbiAgY2hhdGJ1YmJsZU91dGxpbmUsXG4gIGhlYXJ0T3V0bGluZSxcbiAgaGVhcnQsXG4gIHRodW1ic1VwT3V0bGluZSxcbiAgdGh1bWJzVXAsXG4gIGhhcHB5T3V0bGluZSxcbiAgaGFwcHksXG4gIHNhZE91dGxpbmUsXG4gIHNhZCxcbiAgY2hldnJvbkRvd24sXG4gIGNoZXZyb25VcCxcbiAgcGluLFxuICBwZW5jaWwsXG4gIHRyYXNoLFxuICBmbGFnLFxuICBzaGFyZSxcbn0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHtcbiAgQ29tbWVudE1ldGFkYXRhLFxuICBDb21tZW50QXV0aG9yLFxuICBDb21tZW50UmVhY3Rpb24sXG4gIENvbW1lbnRBY3Rpb24sXG4gIENvbW1lbnRNZW51SXRlbSxcbiAgQ29tbWVudEF1dGhvckNsaWNrRXZlbnQsXG4gIENvbW1lbnRSZWFjdGlvbkNsaWNrRXZlbnQsXG4gIENvbW1lbnRBY3Rpb25DbGlja0V2ZW50LFxuICBDb21tZW50TWVudUl0ZW1DbGlja0V2ZW50LFxuICBDb21tZW50TG9hZE1vcmVFdmVudCxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmFkZEljb25zKHtcbiAgZWxsaXBzaXNIb3Jpem9udGFsLFxuICBjaGVja21hcmtDaXJjbGUsXG4gIGNoYXRidWJibGVPdXRsaW5lLFxuICBoZWFydE91dGxpbmUsXG4gIGhlYXJ0LFxuICB0aHVtYnNVcE91dGxpbmUsXG4gIHRodW1ic1VwLFxuICBoYXBweU91dGxpbmUsXG4gIGhhcHB5LFxuICBzYWRPdXRsaW5lLFxuICBzYWQsXG4gIGNoZXZyb25Eb3duLFxuICBjaGV2cm9uVXAsXG4gIHBpbixcbiAgcGVuY2lsLFxuICB0cmFzaCxcbiAgZmxhZyxcbiAgc2hhcmUsXG59KTtcblxuLyoqXG4gKiBEZWZhdWx0cyBpMThuIChlcy9lbikg4oCUIGF1dG8tcmVnaXN0cmFkb3Mgc2kgZWwgY29uc3VtZXIgbm8gcHJvdmV5w7MgZWxcbiAqIG5hbWVzcGFjZSBgQ29tbWVudGAuIEN1YnJlIGVsIGFyaWEtbGFiZWwgZGVsIGF1dG9yIChhdmF0YXIgKyBub21icmUpLlxuICovXG5jb25zdCBDT01NRU5UX0kxOE4gPSB7XG4gIGVzOiB7IHZpZXdQcm9maWxlT2Y6ICdWZXIgcGVyZmlsIGRlIHtuYW1lfScgfSxcbiAgZW46IHsgdmlld1Byb2ZpbGVPZjogJ1ZpZXcgcHJvZmlsZSBvZiB7bmFtZX0nIH0sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY29tbWVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkljb24sIElvbkJ1dHRvbiwgSW9uUG9wb3ZlciwgSW9uTGlzdCwgSW9uSXRlbSwgSW9uTGFiZWwsIEF2YXRhckNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJjb21tZW50XCJcbiAgICAgIFtjbGFzcy5oaWdobGlnaHRlZF09XCJwcm9wcy5oaWdobGlnaHRlZFwiXG4gICAgICBbY2xhc3MucGlubmVkXT1cInByb3BzLnBpbm5lZFwiXG4gICAgICBbY2xhc3MuY29sbGFwc2VkXT1cInByb3BzLmNvbGxhcHNlZFwiXG4gICAgICBbc3R5bGUuLS1kZXB0aF09XCJwcm9wcy5kZXB0aCB8fCAwXCJcbiAgICA+XG4gICAgICBAaWYgKHByb3BzLnBpbm5lZCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicGlubmVkLWluZGljYXRvclwiPlxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwicGluXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8c3Bhbj57eyBpMThuLnQoJ3Bpbm5lZCcpIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtbWFpblwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNvbW1lbnQtYXZhdGFyXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhdXRob3JMYWJlbCgpXCIgKGNsaWNrKT1cIm9uQXV0aG9yQ2xpY2soKVwiPlxuICAgICAgICAgIEBpZiAocHJvcHMuYXV0aG9yLmF2YXRhcikge1xuICAgICAgICAgICAgPHZhbC1hdmF0YXIgW3Byb3BzXT1cInByb3BzLmF1dGhvci5hdmF0YXJcIj48L3ZhbC1hdmF0YXI+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLXBsYWNlaG9sZGVyXCI+XG4gICAgICAgICAgICAgIHt7IGdldEluaXRpYWxzKHByb3BzLmF1dGhvci5uYW1lKSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWVudC1ib2R5XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtaGVhZGVyXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImF1dGhvci1pbmZvXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhdXRob3JMYWJlbCgpXCIgKGNsaWNrKT1cIm9uQXV0aG9yQ2xpY2soKVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF1dGhvci1uYW1lXCI+e3sgcHJvcHMuYXV0aG9yLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIEBpZiAocHJvcHMuYXV0aG9yLnZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGVja21hcmstY2lyY2xlXCIgY2xhc3M9XCJ2ZXJpZmllZC1iYWRnZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChwcm9wcy5hdXRob3IudXNlcm5hbWUpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF1dGhvci11c2VybmFtZVwiPiYjNjQ7e3sgcHJvcHMuYXV0aG9yLnVzZXJuYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtbWV0YVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWVzdGFtcFwiPnt7IGZvcm1hdFRpbWVzdGFtcChwcm9wcy50aW1lc3RhbXApIH19PC9zcGFuPlxuICAgICAgICAgICAgICBAaWYgKHByb3BzLmVkaXRlZCkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZWRpdGVkLWxhYmVsXCI+e3sgaTE4bi50KCdlZGl0ZWQnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIEBpZiAocHJvcHMubWVudUl0ZW1zICYmIHByb3BzLm1lbnVJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibW9yZS1idXR0b25cIlxuICAgICAgICAgICAgICAgIFtpZF09XCInbWVudS10cmlnZ2VyLScgKyBwcm9wcy50b2tlblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInTcOhcyBvcGNpb25lcydcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJlbGxpcHNpcy1ob3Jpem9udGFsXCIgc2xvdD1cImljb24tb25seVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgICAgICAgICA8aW9uLXBvcG92ZXIgW3RyaWdnZXJdPVwiJ21lbnUtdHJpZ2dlci0nICsgcHJvcHMudG9rZW5cIiBbZGlzbWlzc09uU2VsZWN0XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8aW9uLWxpc3Q+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgcHJvcHMubWVudUl0ZW1zOyB0cmFjayBpdGVtLnRva2VuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmRpdmlkZXJCZWZvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWRpdmlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RldGFpbF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25NZW51SXRlbUNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uaWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiaXRlbS5pY29uXCIgc2xvdD1cInN0YXJ0XCIgW2NvbG9yXT1cIml0ZW0uY29sb3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1sYWJlbCBbY29sb3JdPVwiaXRlbS5jb2xvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRNZW51SXRlbUxhYmVsKGl0ZW0pIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L2lvbi1saXN0PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvaW9uLXBvcG92ZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICBAaWYgKCFwcm9wcy5jb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21tZW50LWNvbnRlbnRcIiBbaW5uZXJIVE1MXT1cInByb2Nlc3NDb250ZW50KGRpc3BsYXlDb250ZW50KVwiPjwvZGl2PlxuXG4gICAgICAgICAgICBAaWYgKHByb3BzLnJlYWN0aW9ucyAmJiBwcm9wcy5yZWFjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWVudC1yZWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChyZWFjdGlvbiBvZiBwcm9wcy5yZWFjdGlvbnM7IHRyYWNrIHJlYWN0aW9uLnRva2VuKSB7XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVhY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJyZWFjdGlvbi5hY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuLS1yZWFjdGlvbi1jb2xvcl09XCJnZXRSZWFjdGlvbkNvbG9yKHJlYWN0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJlYWN0aW9uQ2xpY2socmVhY3Rpb24pXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInJlYWN0aW9uLmljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHJlYWN0aW9uLmNvdW50ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVhY3Rpb24tY291bnRcIj57eyBmb3JtYXRDb3VudChyZWFjdGlvbi5jb3VudCkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAocHJvcHMuYWN0aW9ucyAmJiBwcm9wcy5hY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIEBmb3IgKGFjdGlvbiBvZiBwcm9wcy5hY3Rpb25zOyB0cmFjayBhY3Rpb24udG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJhY3Rpb24uY29sb3IgfHwgJ21lZGl1bSdcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uQ2xpY2soYWN0aW9uKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoYWN0aW9uLmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiYWN0aW9uLmljb25cIiBzbG90PVwic3RhcnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHt7IGdldEFjdGlvbkxhYmVsKGFjdGlvbikgfX1cbiAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImV4cGFuZC1idXR0b25cIiAoY2xpY2spPVwib25Ub2dnbGVDb2xsYXBzZSgpXCI+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hldnJvbi1kb3duXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgaTE4bi50KCdzaG93Q29tbWVudCcpIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICBAaWYgKCFwcm9wcy5jb2xsYXBzZWQgJiYgaGFzQ2hpbGRyZW4oKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWVudC1jaGlsZHJlblwiPlxuICAgICAgICAgIEBpZiAocHJvcHMuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY29sbGFwc2UtYnV0dG9uXCIgKGNsaWNrKT1cIm9uVG9nZ2xlQ29sbGFwc2UoKVwiPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZXZyb24tdXBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBpMThuLnQoJ2hpZGVSZXBsaWVzJykgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKGNhblNob3dDaGlsZHJlbigpKSB7XG4gICAgICAgICAgICBAZm9yIChjaGlsZCBvZiBwcm9wcy5jaGlsZHJlbjsgdHJhY2sgY2hpbGQudG9rZW4pIHtcbiAgICAgICAgICAgICAgPHZhbC1jb21tZW50XG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cImdldENoaWxkUHJvcHMoY2hpbGQpXCJcbiAgICAgICAgICAgICAgICAoYXV0aG9yQ2xpY2spPVwiYXV0aG9yQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAocmVhY3Rpb25DbGljayk9XCJyZWFjdGlvbkNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGFjdGlvbkNsaWNrKT1cImFjdGlvbkNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG1lbnVJdGVtQ2xpY2spPVwibWVudUl0ZW1DbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgIChsb2FkTW9yZUNsaWNrKT1cImxvYWRNb3JlQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY29sbGFwc2VUb2dnbGUpPVwiY29sbGFwc2VUb2dnbGUuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPjwvdmFsLWNvbW1lbnQ+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoaGFzTW9yZVJlcGxpZXMoKSkge1xuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibG9hZC1tb3JlLWJ1dHRvblwiIChjbGljayk9XCJvbkxvYWRNb3JlQ2xpY2soKVwiPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hhdGJ1YmJsZS1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRMb2FkTW9yZVJlcGxpZXNUZXh0KCkgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInZpZXctcmVwbGllcy1idXR0b25cIiAoY2xpY2spPVwib25Mb2FkTW9yZUNsaWNrKClcIj5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGF0YnViYmxlLW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRWaWV3UmVwbGllc1RleHQoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2NvbW1lbnQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1jb21tZW50XG4gKlxuICogQSB2ZXJzYXRpbGUgY29tbWVudCBjb21wb25lbnQgZm9yIGZvcnVtcywgcmV2aWV3cywgYW5kIHNvY2lhbCBtZWRpYS5cbiAqIFN1cHBvcnRzIGF1dGhvciBpbmZvLCByZWFjdGlvbnMsIGFjdGlvbnMsIG5lc3RlZCByZXBsaWVzLCBhbmQgbW9yZS5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyBjb21tZW50XG4gKiA8dmFsLWNvbW1lbnQgW3Byb3BzXT1cIntcbiAqICAgdG9rZW46ICcxJyxcbiAqICAgYXV0aG9yOiB7IG5hbWU6ICdKb2huIERvZScsIHVzZXJuYW1lOiAnam9obmQnIH0sXG4gKiAgIGNvbnRlbnQ6ICdUaGlzIGlzIGEgZ3JlYXQgcG9zdCEnLFxuICogICB0aW1lc3RhbXA6ICcyIGhvdXJzIGFnbydcbiAqIH1cIj48L3ZhbC1jb21tZW50PlxuICpcbiAqIEBleGFtcGxlIFdpdGggcmVhY3Rpb25zIGFuZCBhY3Rpb25zXG4gKiA8dmFsLWNvbW1lbnQgW3Byb3BzXT1cIntcbiAqICAgdG9rZW46ICcxJyxcbiAqICAgYXV0aG9yOiB7IG5hbWU6ICdKYW5lJywgYXZhdGFyOiBhdmF0YXJQcm9wcywgdmVyaWZpZWQ6IHRydWUgfSxcbiAqICAgY29udGVudDogJ0FtYXppbmcgY29udGVudCEgQ2hlY2sgb3V0IGh0dHBzOi8vZXhhbXBsZS5jb20nLFxuICogICB0aW1lc3RhbXA6IG5ldyBEYXRlKCksXG4gKiAgIHJlYWN0aW9uczogW1xuICogICAgIHsgdG9rZW46ICdsaWtlJywgaWNvbjogJ2hlYXJ0LW91dGxpbmUnLCBjb3VudDogNDIsIGFjdGl2ZTogZmFsc2UgfVxuICogICBdLFxuICogICBhY3Rpb25zOiBbXG4gKiAgICAgeyB0b2tlbjogJ3JlcGx5JywgbGFiZWw6ICdSZXBseScsIGljb246ICdjaGF0YnViYmxlLW91dGxpbmUnIH1cbiAqICAgXSxcbiAqICAgbWVudUl0ZW1zOiBbXG4gKiAgICAgeyB0b2tlbjogJ2VkaXQnLCBsYWJlbDogJ0VkaXQnLCBpY29uOiAncGVuY2lsJyB9LFxuICogICAgIHsgdG9rZW46ICdkZWxldGUnLCBsYWJlbDogJ0RlbGV0ZScsIGljb246ICd0cmFzaCcsIGNvbG9yOiAnZGFuZ2VyJyB9XG4gKiAgIF1cbiAqIH1cIj48L3ZhbC1jb21tZW50PlxuICpcbiAqIEBpbnB1dCBwcm9wczogQ29tbWVudE1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGNvbW1lbnRcbiAqIEBvdXRwdXQgYXV0aG9yQ2xpY2sgLSBFbWl0cyB3aGVuIGF1dGhvciBuYW1lL2F2YXRhciBpcyBjbGlja2VkXG4gKiBAb3V0cHV0IHJlYWN0aW9uQ2xpY2sgLSBFbWl0cyB3aGVuIGEgcmVhY3Rpb24gaXMgY2xpY2tlZFxuICogQG91dHB1dCBhY3Rpb25DbGljayAtIEVtaXRzIHdoZW4gYW4gYWN0aW9uIGJ1dHRvbiBpcyBjbGlja2VkXG4gKiBAb3V0cHV0IG1lbnVJdGVtQ2xpY2sgLSBFbWl0cyB3aGVuIGEgbWVudSBpdGVtIGlzIGNsaWNrZWRcbiAqIEBvdXRwdXQgbG9hZE1vcmVDbGljayAtIEVtaXRzIHdoZW4gbG9hZCBtb3JlIHJlcGxpZXMgaXMgY2xpY2tlZFxuICogQG91dHB1dCBjb2xsYXBzZVRvZ2dsZSAtIEVtaXRzIHdoZW4gY29tbWVudCBpcyBjb2xsYXBzZWQvZXhwYW5kZWRcbiAqL1xuZXhwb3J0IGNsYXNzIENvbW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm90ZWN0ZWQgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgQElucHV0KCkgcHJvcHM6IENvbW1lbnRNZXRhZGF0YTtcblxuICBAT3V0cHV0KCkgYXV0aG9yQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPENvbW1lbnRBdXRob3JDbGlja0V2ZW50PigpO1xuICBAT3V0cHV0KCkgcmVhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudFJlYWN0aW9uQ2xpY2tFdmVudD4oKTtcbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50QWN0aW9uQ2xpY2tFdmVudD4oKTtcbiAgQE91dHB1dCgpIG1lbnVJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPENvbW1lbnRNZW51SXRlbUNsaWNrRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBsb2FkTW9yZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50TG9hZE1vcmVFdmVudD4oKTtcbiAgQE91dHB1dCgpIGNvbGxhcHNlVG9nZ2xlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRva2VuOiBzdHJpbmc7IGNvbGxhcHNlZDogYm9vbGVhbiB9PigpO1xuXG4gIGRpc3BsYXlDb250ZW50OiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UoJ0NvbW1lbnQnKSkge1xuICAgICAgdGhpcy5pMThuLnJlZ2lzdGVyQ29udGVudCgnQ29tbWVudCcsIENPTU1FTlRfSTE4Tik7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5Q29udGVudCA9IHRoaXMucHJvcHMuY29udGVudCB8fCB0aGlzLnByb3BzLmNvbnRlbnRGYWxsYmFjayB8fCAnJztcbiAgfVxuXG4gIC8qKiBBcmlhLWxhYmVsIGFjY2VzaWJsZSBkZWwgYXV0b3IgKGF2YXRhciArIG5vbWJyZSBjbGljYWJsZXMpLiAqL1xuICBhdXRob3JMYWJlbCgpOiBzdHJpbmcge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCd2aWV3UHJvZmlsZU9mJywgJ0NvbW1lbnQnLCB7IG5hbWU6IHRoaXMucHJvcHMuYXV0aG9yLm5hbWUgfSk7XG4gIH1cblxuICBnZXRJbml0aWFscyhuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBuYW1lXG4gICAgICAuc3BsaXQoJyAnKVxuICAgICAgLm1hcChuID0+IG5bMF0pXG4gICAgICAuam9pbignJylcbiAgICAgIC5zdWJzdHJpbmcoMCwgMilcbiAgICAgIC50b1VwcGVyQ2FzZSgpO1xuICB9XG5cbiAgZm9ybWF0VGltZXN0YW1wKHRpbWVzdGFtcDogc3RyaW5nIHwgRGF0ZSk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiB0aW1lc3RhbXAgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGltZXN0YW1wO1xuICAgIH1cblxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgZGlmZiA9IG5vdy5nZXRUaW1lKCkgLSB0aW1lc3RhbXAuZ2V0VGltZSgpO1xuICAgIGNvbnN0IHNlY29uZHMgPSBNYXRoLmZsb29yKGRpZmYgLyAxMDAwKTtcbiAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcihzZWNvbmRzIC8gNjApO1xuICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcihtaW51dGVzIC8gNjApO1xuICAgIGNvbnN0IGRheXMgPSBNYXRoLmZsb29yKGhvdXJzIC8gMjQpO1xuXG4gICAgaWYgKHNlY29uZHMgPCA2MCkgcmV0dXJuIHRoaXMuaTE4bi50KCdqdXN0Tm93Jyk7XG4gICAgaWYgKG1pbnV0ZXMgPCA2MCkgcmV0dXJuIHRoaXMuaTE4bi50KCdtaW51dGVzQWdvJywgJ19nbG9iYWwnLCB7IG1pbnV0ZXM6IG1pbnV0ZXMudG9TdHJpbmcoKSB9KTtcbiAgICBpZiAoaG91cnMgPCAyNCkgcmV0dXJuIHRoaXMuaTE4bi50KCdob3Vyc0FnbycsICdfZ2xvYmFsJywgeyBob3VyczogaG91cnMudG9TdHJpbmcoKSB9KTtcbiAgICBpZiAoZGF5cyA8IDcpIHJldHVybiB0aGlzLmkxOG4udCgnZGF5c0FnbycsICdfZ2xvYmFsJywgeyBkYXlzOiBkYXlzLnRvU3RyaW5nKCkgfSk7XG5cbiAgICByZXR1cm4gdGltZXN0YW1wLnRvTG9jYWxlRGF0ZVN0cmluZygpO1xuICB9XG5cbiAgZ2V0TG9hZE1vcmVSZXBsaWVzVGV4dCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvdW50ID0gdGhpcy5nZXRSZW1haW5pbmdDb3VudCgpO1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgnbG9hZE1vcmVSZXBsaWVzJykgKyBgICgke2NvdW50fSlgO1xuICB9XG5cbiAgZ2V0Vmlld1JlcGxpZXNUZXh0KCk6IHN0cmluZyB7XG4gICAgY29uc3QgY291bnQgPSB0aGlzLnByb3BzLnJlcGx5Q291bnQgfHwgdGhpcy5wcm9wcy5jaGlsZHJlbj8ubGVuZ3RoIHx8IDA7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCd2aWV3UmVwbGllcycpICsgYCAoJHtjb3VudH0pYDtcbiAgfVxuXG4gIGZvcm1hdENvdW50KGNvdW50OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmIChjb3VudCA+PSAxMDAwMDAwKSB7XG4gICAgICByZXR1cm4gKGNvdW50IC8gMTAwMDAwMCkudG9GaXhlZCgxKS5yZXBsYWNlKC9cXC4wJC8sICcnKSArICdNJztcbiAgICB9XG4gICAgaWYgKGNvdW50ID49IDEwMDApIHtcbiAgICAgIHJldHVybiAoY291bnQgLyAxMDAwKS50b0ZpeGVkKDEpLnJlcGxhY2UoL1xcLjAkLywgJycpICsgJ0snO1xuICAgIH1cbiAgICByZXR1cm4gY291bnQudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHByb2Nlc3NDb250ZW50KGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuYXV0b0xpbmtpZnkgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5lc2NhcGVIdG1sKGNvbnRlbnQpO1xuICAgIH1cblxuICAgIC8vIEVzY2FwZSBIVE1MIGZpcnN0XG4gICAgbGV0IHByb2Nlc3NlZCA9IHRoaXMuZXNjYXBlSHRtbChjb250ZW50KTtcblxuICAgIC8vIFVSTCByZWdleFxuICAgIGNvbnN0IHVybFJlZ2V4ID0gLyhodHRwcz86XFwvXFwvW15cXHM8XStbXlxcczwuLDs6IT8pXFxdJ1wiXSkvZ2k7XG4gICAgcHJvY2Vzc2VkID0gcHJvY2Vzc2VkLnJlcGxhY2UoXG4gICAgICB1cmxSZWdleCxcbiAgICAgICc8YSBocmVmPVwiJDFcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgY2xhc3M9XCJjb21tZW50LWxpbmtcIj4kMTwvYT4nXG4gICAgKTtcblxuICAgIC8vIEBtZW50aW9uc1xuICAgIGNvbnN0IG1lbnRpb25SZWdleCA9IC9AKFxcdyspL2c7XG4gICAgcHJvY2Vzc2VkID0gcHJvY2Vzc2VkLnJlcGxhY2UobWVudGlvblJlZ2V4LCAnPHNwYW4gY2xhc3M9XCJjb21tZW50LW1lbnRpb25cIj5AJDE8L3NwYW4+Jyk7XG5cbiAgICAvLyAjaGFzaHRhZ3NcbiAgICBjb25zdCBoYXNodGFnUmVnZXggPSAvIyhcXHcrKS9nO1xuICAgIHByb2Nlc3NlZCA9IHByb2Nlc3NlZC5yZXBsYWNlKGhhc2h0YWdSZWdleCwgJzxzcGFuIGNsYXNzPVwiY29tbWVudC1oYXNodGFnXCI+IyQxPC9zcGFuPicpO1xuXG4gICAgLy8gUHJlc2VydmUgbGluZSBicmVha3NcbiAgICBwcm9jZXNzZWQgPSBwcm9jZXNzZWQucmVwbGFjZSgvXFxuL2csICc8YnI+Jyk7XG5cbiAgICByZXR1cm4gcHJvY2Vzc2VkO1xuICB9XG5cbiAgcHJpdmF0ZSBlc2NhcGVIdG1sKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgZGl2LnRleHRDb250ZW50ID0gdGV4dDtcbiAgICByZXR1cm4gZGl2LmlubmVySFRNTDtcbiAgfVxuXG4gIGdldFJlYWN0aW9uQ29sb3IocmVhY3Rpb246IENvbW1lbnRSZWFjdGlvbik6IHN0cmluZyB7XG4gICAgaWYgKHJlYWN0aW9uLmFjdGl2ZSAmJiByZWFjdGlvbi5hY3RpdmVDb2xvcikge1xuICAgICAgcmV0dXJuIGB2YXIoLS1pb24tY29sb3ItJHtyZWFjdGlvbi5hY3RpdmVDb2xvcn0pYDtcbiAgICB9XG4gICAgaWYgKHJlYWN0aW9uLmFjdGl2ZSkge1xuICAgICAgcmV0dXJuICd2YXIoLS1pb24tY29sb3ItcHJpbWFyeSknO1xuICAgIH1cbiAgICBpZiAocmVhY3Rpb24uY29sb3IpIHtcbiAgICAgIHJldHVybiBgdmFyKC0taW9uLWNvbG9yLSR7cmVhY3Rpb24uY29sb3J9KWA7XG4gICAgfVxuICAgIHJldHVybiAndmFyKC0taW9uLWNvbG9yLW1lZGl1bSknO1xuICB9XG5cbiAgZ2V0QWN0aW9uTGFiZWwoYWN0aW9uOiBDb21tZW50QWN0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYWN0aW9uLmxhYmVsIHx8IGFjdGlvbi5jb250ZW50RmFsbGJhY2sgfHwgJyc7XG4gIH1cblxuICBnZXRNZW51SXRlbUxhYmVsKGl0ZW06IENvbW1lbnRNZW51SXRlbSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGl0ZW0ubGFiZWwgfHwgaXRlbS5jb250ZW50RmFsbGJhY2sgfHwgJyc7XG4gIH1cblxuICBoYXNDaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISEodGhpcy5wcm9wcy5jaGlsZHJlbiAmJiB0aGlzLnByb3BzLmNoaWxkcmVuLmxlbmd0aCA+IDApIHx8XG4gICAgICAhISh0aGlzLnByb3BzLnJlcGx5Q291bnQgJiYgdGhpcy5wcm9wcy5yZXBseUNvdW50ID4gMClcbiAgICApO1xuICB9XG5cbiAgY2FuU2hvd0NoaWxkcmVuKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG1heERlcHRoID0gdGhpcy5wcm9wcy5tYXhEZXB0aCA/PyAzO1xuICAgIGNvbnN0IGN1cnJlbnREZXB0aCA9IHRoaXMucHJvcHMuZGVwdGggPz8gMDtcbiAgICByZXR1cm4gY3VycmVudERlcHRoIDwgbWF4RGVwdGggJiYgISEodGhpcy5wcm9wcy5jaGlsZHJlbiAmJiB0aGlzLnByb3BzLmNoaWxkcmVuLmxlbmd0aCA+IDApO1xuICB9XG5cbiAgZ2V0Q2hpbGRQcm9wcyhjaGlsZDogQ29tbWVudE1ldGFkYXRhKTogQ29tbWVudE1ldGFkYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY2hpbGQsXG4gICAgICBkZXB0aDogKHRoaXMucHJvcHMuZGVwdGggPz8gMCkgKyAxLFxuICAgICAgbWF4RGVwdGg6IHRoaXMucHJvcHMubWF4RGVwdGggPz8gMyxcbiAgICB9O1xuICB9XG5cbiAgaGFzTW9yZVJlcGxpZXMoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnByb3BzLnJlcGx5Q291bnQpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBsb2FkZWRDb3VudCA9IHRoaXMucHJvcHMuY2hpbGRyZW4/Lmxlbmd0aCA/PyAwO1xuICAgIHJldHVybiB0aGlzLnByb3BzLnJlcGx5Q291bnQgPiBsb2FkZWRDb3VudDtcbiAgfVxuXG4gIGdldFJlbWFpbmluZ0NvdW50KCk6IG51bWJlciB7XG4gICAgY29uc3QgdG90YWwgPSB0aGlzLnByb3BzLnJlcGx5Q291bnQgPz8gMDtcbiAgICBjb25zdCBsb2FkZWQgPSB0aGlzLnByb3BzLmNoaWxkcmVuPy5sZW5ndGggPz8gMDtcbiAgICByZXR1cm4gdG90YWwgLSBsb2FkZWQ7XG4gIH1cblxuICBvbkF1dGhvckNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuYXV0aG9yQ2xpY2suZW1pdCh7XG4gICAgICBhdXRob3I6IHRoaXMucHJvcHMuYXV0aG9yLFxuICAgICAgY29tbWVudFRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgIH0pO1xuICB9XG5cbiAgb25SZWFjdGlvbkNsaWNrKHJlYWN0aW9uOiBDb21tZW50UmVhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLnJlYWN0aW9uQ2xpY2suZW1pdCh7XG4gICAgICByZWFjdGlvbixcbiAgICAgIGNvbW1lbnRUb2tlbjogdGhpcy5wcm9wcy50b2tlbixcbiAgICAgIGlzQWN0aXZlOiAhcmVhY3Rpb24uYWN0aXZlLFxuICAgIH0pO1xuICB9XG5cbiAgb25BY3Rpb25DbGljayhhY3Rpb246IENvbW1lbnRBY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoe1xuICAgICAgYWN0aW9uLFxuICAgICAgY29tbWVudFRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgIH0pO1xuICB9XG5cbiAgb25NZW51SXRlbUNsaWNrKGl0ZW06IENvbW1lbnRNZW51SXRlbSk6IHZvaWQge1xuICAgIHRoaXMubWVudUl0ZW1DbGljay5lbWl0KHtcbiAgICAgIG1lbnVJdGVtOiBpdGVtLFxuICAgICAgY29tbWVudFRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgIH0pO1xuICB9XG5cbiAgb25Mb2FkTW9yZUNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMubG9hZE1vcmVDbGljay5lbWl0KHtcbiAgICAgIGNvbW1lbnRUb2tlbjogdGhpcy5wcm9wcy50b2tlbixcbiAgICAgIGN1cnJlbnRDb3VudDogdGhpcy5wcm9wcy5jaGlsZHJlbj8ubGVuZ3RoID8/IDAsXG4gICAgfSk7XG4gIH1cblxuICBvblRvZ2dsZUNvbGxhcHNlKCk6IHZvaWQge1xuICAgIHRoaXMuY29sbGFwc2VUb2dnbGUuZW1pdCh7XG4gICAgICB0b2tlbjogdGhpcy5wcm9wcy50b2tlbixcbiAgICAgIGNvbGxhcHNlZDogIXRoaXMucHJvcHMuY29sbGFwc2VkLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -19,7 +19,12 @@ export class ContentLoaderComponent {
|
|
|
19
19
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ContentLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
20
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ContentLoaderComponent, isStandalone: true, selector: "val-content-loader", inputs: { props: "props" }, ngImport: i0, template: `
|
|
21
21
|
<div [ngClass]="['spinner-wrapper', props.size]">
|
|
22
|
-
<ion-spinner
|
|
22
|
+
<ion-spinner
|
|
23
|
+
[ngClass]="[props.size]"
|
|
24
|
+
[name]="props.name"
|
|
25
|
+
[color]="props.color"
|
|
26
|
+
[attr.aria-label]="props.text || 'Cargando'"
|
|
27
|
+
></ion-spinner>
|
|
23
28
|
<ion-text [color]="props.color">
|
|
24
29
|
<p>{{ props.text }}</p>
|
|
25
30
|
</ion-text>
|
|
@@ -30,7 +35,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
30
35
|
type: Component,
|
|
31
36
|
args: [{ selector: 'val-content-loader', standalone: true, imports: [CommonModule, IonSpinner, IonText], template: `
|
|
32
37
|
<div [ngClass]="['spinner-wrapper', props.size]">
|
|
33
|
-
<ion-spinner
|
|
38
|
+
<ion-spinner
|
|
39
|
+
[ngClass]="[props.size]"
|
|
40
|
+
[name]="props.name"
|
|
41
|
+
[color]="props.color"
|
|
42
|
+
[attr.aria-label]="props.text || 'Cargando'"
|
|
43
|
+
></ion-spinner>
|
|
34
44
|
<ion-text [color]="props.color">
|
|
35
45
|
<p>{{ props.text }}</p>
|
|
36
46
|
</ion-text>
|
|
@@ -39,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
39
49
|
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
40
50
|
type: Input
|
|
41
51
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1sb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb250ZW50LWxvYWRlci9jb250ZW50LWxvYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQXNCaEU7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtJQVlqQyxnQkFBZSxDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDOytHQWRGLHNCQUFzQjttR0FBdEIsc0JBQXNCLDBHQXpCdkI7Ozs7Ozs7Ozs7OztHQVlULDgzR0FiUyxZQUFZLDZIQUFFLFVBQVUseUdBQUUsT0FBTzs7NEZBMEJoQyxzQkFBc0I7a0JBN0JsQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxZQUNsQzs7Ozs7Ozs7Ozs7O0dBWVQ7d0RBdUJELEtBQUs7c0JBREosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvblNwaW5uZXIsIElvblRleHQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IENvbnRlbnRMb2FkZXJNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY29udGVudC1sb2FkZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25TcGlubmVyLCBJb25UZXh0XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cIlsnc3Bpbm5lci13cmFwcGVyJywgcHJvcHMuc2l6ZV1cIj5cbiAgICAgIDxpb24tc3Bpbm5lclxuICAgICAgICBbbmdDbGFzc109XCJbcHJvcHMuc2l6ZV1cIlxuICAgICAgICBbbmFtZV09XCJwcm9wcy5uYW1lXCJcbiAgICAgICAgW2NvbG9yXT1cInByb3BzLmNvbG9yXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwcm9wcy50ZXh0IHx8ICdDYXJnYW5kbydcIlxuICAgICAgPjwvaW9uLXNwaW5uZXI+XG4gICAgICA8aW9uLXRleHQgW2NvbG9yXT1cInByb3BzLmNvbG9yXCI+XG4gICAgICAgIDxwPnt7IHByb3BzLnRleHQgfX08L3A+XG4gICAgICA8L2lvbi10ZXh0PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9jb250ZW50LWxvYWRlci5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLWNvbnRlbnQtbG9hZGVyXG4gKlxuICogQSBsb2FkaW5nIHNwaW5uZXIgd2l0aCBvcHRpb25hbCB0ZXh0LCBmb3IgaW5kaWNhdGluZyBsb2FkaW5nIHN0YXRlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogPHZhbC1jb250ZW50LWxvYWRlciBbcHJvcHNdPVwieyBzaXplOiAnbGFyZ2UnLCBjb2xvcjogJ3ByaW1hcnknLCB0ZXh0OiAnTG9hZGluZy4uLicgfVwiPjwvdmFsLWNvbnRlbnQtbG9hZGVyPlxuICpcbiAqIEBpbnB1dCBwcm9wczogQ29udGVudExvYWRlck1ldGFkYXRhIC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGxvYWRlciAoc2l6ZSwgY29sb3IsIHRleHQsIGV0Yy4pXG4gKi9cbmV4cG9ydCBjbGFzcyBDb250ZW50TG9hZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIExvYWRlciBjb25maWd1cmF0aW9uIG9iamVjdC5cbiAgICogQHR5cGUge0NvbnRlbnRMb2FkZXJNZXRhZGF0YX1cbiAgICogQHByb3BlcnR5IHNpemUgLSBUaGUgc3Bpbm5lciBzaXplLlxuICAgKiBAcHJvcGVydHkgY29sb3IgLSBUaGUgc3Bpbm5lciBjb2xvci5cbiAgICogQHByb3BlcnR5IHRleHQgLSBUaGUgbG9hZGluZyB0ZXh0IChvcHRpb25hbCkuXG4gICAqIEBwcm9wZXJ0eSBuYW1lIC0gVGhlIHNwaW5uZXIgbmFtZSAob3B0aW9uYWwpLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHJvcHM6IENvbnRlbnRMb2FkZXJNZXRhZGF0YTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxufVxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, inject, signal, } from '@angular/core';
|
|
3
|
-
import { IonButton, IonButtons, IonContent, IonHeader, IonIcon, IonModal, IonSpinner, IonToolbar } from '@ionic/angular/standalone';
|
|
3
|
+
import { IonButton, IonButtons, IonContent, IonHeader, IonIcon, IonModal, IonSpinner, IonToolbar, } from '@ionic/angular/standalone';
|
|
4
4
|
import { addIcons } from 'ionicons';
|
|
5
5
|
import { calendarOutline, closeOutline } from 'ionicons/icons';
|
|
6
6
|
import { Calendar } from 'vanilla-calendar-pro';
|
|
@@ -100,7 +100,7 @@ export class DatePickerComponent {
|
|
|
100
100
|
selectedDates: value ? [value] : [],
|
|
101
101
|
displayDateMin: (this.props.min ?? undefined),
|
|
102
102
|
displayDateMax: (this.props.max ?? undefined),
|
|
103
|
-
onClickDate:
|
|
103
|
+
onClickDate: self => {
|
|
104
104
|
const picked = self.context.selectedDates[0] ?? null;
|
|
105
105
|
if (picked)
|
|
106
106
|
this.apply(picked);
|
|
@@ -165,7 +165,7 @@ export class DatePickerComponent {
|
|
|
165
165
|
[class.is-placeholder]="!displayValue"
|
|
166
166
|
(click)="sheetOpen.set(true)"
|
|
167
167
|
>
|
|
168
|
-
<ion-icon name="calendar-outline" slot="start" />
|
|
168
|
+
<ion-icon name="calendar-outline" slot="start" aria-hidden="true" />
|
|
169
169
|
{{ displayValue || placeholderText }}
|
|
170
170
|
</ion-button>
|
|
171
171
|
</div>
|
|
@@ -204,11 +204,7 @@ export class DatePickerComponent {
|
|
|
204
204
|
}
|
|
205
205
|
|
|
206
206
|
<!-- Calendario: siempre en el DOM para que #cal exista; fade-in al estar listo -->
|
|
207
|
-
<div
|
|
208
|
-
#cal
|
|
209
|
-
class="vdp-sheet__cal"
|
|
210
|
-
[class.is-ready]="calReady()"
|
|
211
|
-
></div>
|
|
207
|
+
<div #cal class="vdp-sheet__cal" [class.is-ready]="calReady()"></div>
|
|
212
208
|
|
|
213
209
|
@if (props.clearable && displayValue) {
|
|
214
210
|
<ion-button expand="block" fill="clear" color="medium" (click)="clear()">
|
|
@@ -250,7 +246,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
250
246
|
[class.is-placeholder]="!displayValue"
|
|
251
247
|
(click)="sheetOpen.set(true)"
|
|
252
248
|
>
|
|
253
|
-
<ion-icon name="calendar-outline" slot="start" />
|
|
249
|
+
<ion-icon name="calendar-outline" slot="start" aria-hidden="true" />
|
|
254
250
|
{{ displayValue || placeholderText }}
|
|
255
251
|
</ion-button>
|
|
256
252
|
</div>
|
|
@@ -289,11 +285,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
289
285
|
}
|
|
290
286
|
|
|
291
287
|
<!-- Calendario: siempre en el DOM para que #cal exista; fade-in al estar listo -->
|
|
292
|
-
<div
|
|
293
|
-
#cal
|
|
294
|
-
class="vdp-sheet__cal"
|
|
295
|
-
[class.is-ready]="calReady()"
|
|
296
|
-
></div>
|
|
288
|
+
<div #cal class="vdp-sheet__cal" [class.is-ready]="calReady()"></div>
|
|
297
289
|
|
|
298
290
|
@if (props.clearable && displayValue) {
|
|
299
291
|
<ion-button expand="block" fill="clear" color="medium" (click)="clear()">
|
|
@@ -323,4 +315,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
323
315
|
type: ViewChild,
|
|
324
316
|
args: ['cal']
|
|
325
317
|
}] } });
|
|
326
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEksT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXRELFFBQVEsQ0FBQyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0FBRTVDLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQztBQUU3Qjs7Ozs7Ozs7Ozs7O0dBWUc7QUEwRkgsTUFBTSxPQUFPLG1CQUFtQjtJQUc5QjtRQUZRLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFRMUIsVUFBSyxHQUF1QixFQUFFLENBQUM7UUFDOUIsZ0JBQVcsR0FBRyxJ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QUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsWUFDdEc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlGVDt3REFZUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFFbUIsTUFBTTtzQkFBL0IsU0FBUzt1QkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5qZWN0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25CdXR0b25zLCBJb25Db250ZW50LCBJb25IZWFkZXIsIElvbkljb24sIElvbk1vZGFsLCBJb25TcGlubmVyLCBJb25Ub29sYmFyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGNhbGVuZGFyT3V0bGluZSwgY2xvc2VPdXRsaW5lIH0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHsgQ2FsZW5kYXIgfSBmcm9tICd2YW5pbGxhLWNhbGVuZGFyLXBybyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBEYXRlUGlja2VyTWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IERBVEVfUElDS0VSX0kxOE4gfSBmcm9tICcuL2RhdGUtcGlja2VyLmkxOG4nO1xuXG5hZGRJY29ucyh7IGNhbGVuZGFyT3V0bGluZSwgY2xvc2VPdXRsaW5lIH0pO1xuXG5jb25zdCBJMThOX05TID0gJ0RhdGVQaWNrZXInO1xuXG4vKipcbiAqIGB2YWwtZGF0ZS1waWNrZXJgIOKAlCBzZWxlY3RvciBkZSBmZWNoYSBjb24gY2FsZW5kYXJpbyB2YW5pbGxhLWNhbGVuZGFyLXBybyB2M1xuICogKE5PIGlvbi1kYXRldGltZSkuIFNlIHByZXNlbnRhIGNvbW8gKipzaGVldCBtb2RhbCoqIChib3R0b20gc2hlZXQpLCBpZ3VhbCBxdWVcbiAqIGVsIHJlc3RvIGRlIGxvcyBtb2RhbGVzIGRlIGxhIGFwcCwgY29uIGVzcGFjaW8gcHJvcGlvIHkgc2luIHByb2JsZW1hcyBkZVxuICogcG9zaWNpb25hbWllbnRvIG8gYm90dG9tLW5hdi5cbiAqXG4gKiBUcmlnZ2VyIChib3TDs24gY29uIGxhIGZlY2hhIG8gcGxhY2Vob2xkZXIpIOKGkiBzaGVldCBjb24gaGVhZGVyIENlcnJhciArIGNhbGVuZGFyaW9cbiAqIOKGkiBjbGljayBlbiB1biBkw61hIGxvIGFwbGljYSB5IGNpZXJyYSBlbCBzaGVldC4gVmFsb3IgYFlZWVktTU0tRERgIChmZWNoYSBsb2NhbCxcbiAqIHNpbiB6b25hIGhvcmFyaWEpLiBJbnRlZ3JhIGNvbiBgRm9ybUNvbnRyb2xgIG8gYHZhbHVlYC9gKHZhbHVlQ2hhbmdlKWAuXG4gKlxuICogYFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVgOiBlbCBjYWxlbmRhcmlvIGVzIGluc3RhbmNpYWRvIHBvciBKUyBmdWVyYSBkZWwgc2hhZG93O1xuICogbG9zIGVzdGlsb3MgZGUgbWFyY2EgZGViZW4gc2VyIGdsb2JhbGVzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZGF0ZS1waWNrZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25CdXR0b24sIElvbkJ1dHRvbnMsIElvbkNvbnRlbnQsIElvbkhlYWRlciwgSW9uSWNvbiwgSW9uTW9kYWwsIElvblNwaW5uZXIsIElvblRvb2xiYXJdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ2ZHBcIj5cbiAgICAgIEBpZiAocHJvcHMubGFiZWwpIHtcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidmRwX19sYWJlbFwiIFthdHRyLmZvcl09XCJ0cmlnZ2VySWRcIj57eyBwcm9wcy5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICB9XG4gICAgICBAaWYgKHByb3BzLmhpbnQpIHtcbiAgICAgICAgPHAgY2xhc3M9XCJ2ZHBfX2hpbnRcIj57eyBwcm9wcy5oaW50IH19PC9wPlxuICAgICAgfVxuICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgW2lkXT1cInRyaWdnZXJJZFwiXG4gICAgICAgIGNsYXNzPVwidmRwX190cmlnZ2VyXCJcbiAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxuICAgICAgICBjb2xvcj1cIm1lZGl1bVwiXG4gICAgICAgIGV4cGFuZD1cImJsb2NrXCJcbiAgICAgICAgW2NsYXNzLmlzLXBsYWNlaG9sZGVyXT1cIiFkaXNwbGF5VmFsdWVcIlxuICAgICAgICAoY2xpY2spPVwic2hlZXRPcGVuLnNldCh0cnVlKVwiXG4gICAgICA+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2FsZW5kYXItb3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiIC8+XG4gICAgICAgIHt7IGRpc3BsYXlWYWx1ZSB8fCBwbGFjZWhvbGRlclRleHQgfX1cbiAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxpb24tbW9kYWxcbiAgICAgIFtpc09wZW5dPVwic2hlZXRPcGVuKClcIlxuICAgICAgW2JyZWFrcG9pbnRzXT1cIlswLCAxXVwiXG4gICAgICBbaW5pdGlhbEJyZWFrcG9pbnRdPVwiMVwiXG4gICAgICBbaGFuZGxlXT1cInRydWVcIlxuICAgICAgKGRpZFByZXNlbnQpPVwib25TaGVldFByZXNlbnQoKVwiXG4gICAgICAoZGlkRGlzbWlzcyk9XCJvblNoZWV0RGlzbWlzcygpXCJcbiAgICAgIGNsYXNzPVwidmRwLXNoZWV0XCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgIDxpb24taGVhZGVyPlxuICAgICAgICAgIDxpb24tdG9vbGJhcj5cbiAgICAgICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwiZGFya1wiIChjbGljayk9XCJzaGVldE9wZW4uc2V0KGZhbHNlKVwiPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgdCgnY2xvc2UnKSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b25zPlxuICAgICAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgICAgIDwvaW9uLWhlYWRlcj5cblxuICAgICAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZHAtc2hlZXRfX3RpdGxlXCI+e3sgcHJvcHMubGFiZWwgfHwgdCgnc2VsZWN0JykgfX08L2Rpdj5cbiAgICAgICAgICBAaWYgKGRpc3BsYXlWYWx1ZSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZkcC1zaGVldF9fdmFsdWVcIj57eyBkaXNwbGF5VmFsdWUgfX08L2Rpdj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8IS0tIExvYWRlciBtaWVudHJhcyBlbCBjYWxlbmRhcmlvIG5vIGVzdMOhIGxpc3RvIC0tPlxuICAgICAgICAgIEBpZiAoIWNhbFJlYWR5KCkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZHAtc2hlZXRfX2xvYWRlclwiPlxuICAgICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImNyZXNjZW50XCIgY29sb3I9XCJwcmltYXJ5XCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cblxuICAgICAgICAgIDwhLS0gQ2FsZW5kYXJpbzogc2llbXByZSBlbiBlbCBET00gcGFyYSBxdWUgI2NhbCBleGlzdGE7IGZhZGUtaW4gYWwgZXN0YXIgbGlzdG8gLS0+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgI2NhbFxuICAgICAgICAgICAgY2xhc3M9XCJ2ZHAtc2hlZXRfX2NhbFwiXG4gICAgICAgICAgICBbY2xhc3MuaXMtcmVhZHldPVwiY2FsUmVhZHkoKVwiXG4gICAgICAgICAgPjwvZGl2PlxuXG4gICAgICAgICAgQGlmIChwcm9wcy5jbGVhcmFibGUgJiYgZGlzcGxheVZhbHVlKSB7XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBleHBhbmQ9XCJibG9ja1wiIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwibWVkaXVtXCIgKGNsaWNrKT1cImNsZWFyKClcIj5cbiAgICAgICAgICAgICAge3sgdCgnY2xlYXInKSB9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIDwhLS0gQ2VycmFyIG91dGxpbmUgYWwgcGllLCBpZ3VhbCBxdWUgb3Ryb3MgbW9kYWxlcyBkZSBsYSBsaWIgLS0+XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgIGV4cGFuZD1cImJsb2NrXCJcbiAgICAgICAgICAgIGZpbGw9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgIGNvbG9yPVwiZGFya1wiXG4gICAgICAgICAgICBjbGFzcz1cInZkcC1zaGVldF9fY2xvc2UtYnRuXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzaGVldE9wZW4uc2V0KGZhbHNlKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgdCgnY2xvc2UnKSB9fVxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tY29udGVudD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9pb24tbW9kYWw+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKCF0aGlzLmkxOG4uaGFzTmFtZXNwYWNlKEkxOE5fTlMpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJDb250ZW50KEkxOE5fTlMsIERBVEVfUElDS0VSX0kxOE4pO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIHByb3BzOiBEYXRlUGlja2VyTWV0YWRhdGEgPSB7fTtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2NhbCcpIHByaXZhdGUgY2FsUmVmPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgcmVhZG9ubHkgc2hlZXRPcGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgLyoqIHRydWUgY3VhbmRvIGVsIGNhbGVuZGFyaW8geWEgc2UgY29uc3RydXnDsyB5IGVzIHZpc2libGUgKGZhZGUtaW4pLiAqL1xuICByZWFkb25seSBjYWxSZWFkeSA9IHNpZ25hbChmYWxzZSk7XG4gIHByaXZhdGUgY2FsZW5kYXI/OiBDYWxlbmRhcjtcblxuICBnZXQgdHJpZ2dlcklkKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnByb3BzLnRva2VuKSB7XG4gICAgICB0aGlzLnByb3BzLnRva2VuID0gYHZkcC0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsIDEwKX1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wcm9wcy50b2tlbjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGxvY2FsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmxvY2FsZSB8fCAnZXMtRVMnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY3VycmVudCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodGhpcy5wcm9wcy5jb250cm9sKSByZXR1cm4gdGhpcy5wcm9wcy5jb250cm9sLnZhbHVlID8/IG51bGw7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMudmFsdWUgPz8gbnVsbDtcbiAgfVxuXG4gIGdldCBwbGFjZWhvbGRlclRleHQoKTogc3RyaW5nIHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB0aGlzLnByb3BzLnBsYWNlaG9sZGVyIHx8IHRoaXMudCgnc2VsZWN0Jyk7XG4gIH1cblxuICBnZXQgZGlzcGxheVZhbHVlKCk6IHN0cmluZyB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCB2ID0gdGhpcy5jdXJyZW50O1xuICAgIGNvbnN0IGQgPSB0aGlzLnBhcnNlTG9jYWwodik7XG4gICAgaWYgKCFkKSByZXR1cm4gJyc7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh0aGlzLmxvY2FsZSwgeyBkYXRlU3R5bGU6ICdsb25nJyB9KS5mb3JtYXQoZCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gdiA/PyAnJztcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhfY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNoZWV0T3BlbigpICYmIHRoaXMuY2FsZW5kYXIpIHtcbiAgICAgIHRoaXMuY2FsZW5kYXIuc2V0KHsgc2VsZWN0ZWREYXRlczogdGhpcy5jdXJyZW50ID8gW3RoaXMuY3VycmVudCBhcyBuZXZlcl0gOiBbXSB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lDYWxlbmRhcigpO1xuICB9XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgSTE4Tl9OUyk7XG4gIH1cblxuICBvblNoZWV0UHJlc2VudCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbFJlYWR5LnNldChmYWxzZSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmJ1aWxkQ2FsZW5kYXIoKSwgMCk7XG4gIH1cblxuICBvblNoZWV0RGlzbWlzcygpOiB2b2lkIHtcbiAgICB0aGlzLnNoZWV0T3Blbi5zZXQoZmFsc2UpO1xuICAgIHRoaXMuY2FsUmVhZHkuc2V0KGZhbHNlKTtcbiAgICB0aGlzLmRlc3Ryb3lDYWxlbmRhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENhbGVuZGFyKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5jYWxSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIHRoaXMuZGVzdHJveUNhbGVuZGFyKCk7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmN1cnJlbnQ7XG4gICAgdGhpcy5jYWxlbmRhciA9IG5ldyBDYWxlbmRhcihlbCwge1xuICAgICAgdHlwZTogJ2RlZmF1bHQnLFxuICAgICAgbG9jYWxlOiB0aGlzLmxvY2FsZSxcbiAgICAgIHNlbGVjdGVkVGhlbWU6ICdsaWdodCcsXG4gICAgICBmaXJzdFdlZWtkYXk6IHRoaXMucHJvcHMuZmlyc3RXZWVrZGF5ID8/IDEsXG4gICAgICBzZWxlY3Rpb25EYXRlc01vZGU6ICdzaW5nbGUnLFxuICAgICAgc2VsZWN0ZWREYXRlczogdmFsdWUgPyBbdmFsdWUgYXMgbmV2ZXJdIDogW10sXG4gICAgICBkaXNwbGF5RGF0ZU1pbjogKHRoaXMucHJvcHMubWluID8/IHVuZGVmaW5lZCkgYXMgbmV2ZXIsXG4gICAgICBkaXNwbGF5RGF0ZU1heDogKHRoaXMucHJvcHMubWF4ID8/IHVuZGVmaW5lZCkgYXMgbmV2ZXIsXG4gICAgICBvbkNsaWNrRGF0ZTogKHNlbGYpID0+IHtcbiAgICAgICAgY29uc3QgcGlja2VkID0gc2VsZi5jb250ZXh0LnNlbGVjdGVkRGF0ZXNbMF0gPz8gbnVsbDtcbiAgICAgICAgaWYgKHBpY2tlZCkgdGhpcy5hcHBseShwaWNrZWQpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLmNhbGVuZGFyLmluaXQoKTtcbiAgICAvLyBQZXF1ZcOxbyBkZWxheSBwYXJhIHF1ZSBlbCBET00gZGVsIGNhbGVuZGFyaW8gZXN0w6kgcGludGFkbyBhbnRlcyBkZWwgZmFkZS1pbi5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2FsUmVhZHkuc2V0KHRydWUpLCA1MCk7XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lDYWxlbmRhcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jYWxlbmRhcikge1xuICAgICAgdGhpcy5jYWxlbmRhci5kZXN0cm95KCk7XG4gICAgICB0aGlzLmNhbGVuZGFyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwbHkoZGF0ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZXRWYWx1ZShkYXRlKTtcbiAgICB0aGlzLnNoZWV0T3Blbi5zZXQoZmFsc2UpO1xuICAgIHRoaXMuZGVzdHJveUNhbGVuZGFyKCk7XG4gIH1cblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMuc2hlZXRPcGVuLnNldChmYWxzZSk7XG4gICAgdGhpcy5kZXN0cm95Q2FsZW5kYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VmFsdWUoZGF0ZTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLmNvbnRyb2wpIHtcbiAgICAgIHRoaXMucHJvcHMuY29udHJvbC5zZXRWYWx1ZShkYXRlKTtcbiAgICAgIHRoaXMucHJvcHMuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgdGhpcy5wcm9wcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9wcy52YWx1ZSA9IGRhdGU7XG4gICAgfVxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChkYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VMb2NhbCh2OiBzdHJpbmcgfCBudWxsKTogRGF0ZSB8IG51bGwge1xuICAgIGlmICghdikgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgbSA9IC9eKFxcZHs0fSktKFxcZHsyfSktKFxcZHsyfSkvLmV4ZWModik7XG4gICAgaWYgKCFtKSB7XG4gICAgICBjb25zdCBkID0gbmV3IERhdGUodik7XG4gICAgICByZXR1cm4gaXNOYU4oZC5nZXRUaW1lKCkpID8gbnVsbCA6IGQ7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF0ZShOdW1iZXIobVsxXSksIE51bWJlcihtWzJdKSAtIDEsIE51bWJlcihtWzNdKSk7XG4gIH1cbn1cbiJdfQ==
|
|
318
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxFQUNQLFFBQVEsRUFDUixVQUFVLEVBQ1YsVUFBVSxHQUNYLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXRELFFBQVEsQ0FBQyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0FBRTVDLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQztBQUU3Qjs7Ozs7Ozs7Ozs7O0dBWUc7QUFzRkgsTUFBTSxPQUFPLG1CQUFtQjtJQUc5QjtRQUZRLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFRMUIsVUFBSyxHQUF1QixFQUFFLENBQUM7UUFDOUIsZ0JBQVcsR0FBRyxJ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QUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsWUFDdEc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkVUO3dEQVlRLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVtQixNQUFNO3NCQUEvQixTQUFTO3VCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBJb25CdXR0b24sXG4gIElvbkJ1dHRvbnMsXG4gIElvbkNvbnRlbnQsXG4gIElvbkhlYWRlcixcbiAgSW9uSWNvbixcbiAgSW9uTW9kYWwsXG4gIElvblNwaW5uZXIsXG4gIElvblRvb2xiYXIsXG59IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjYWxlbmRhck91dGxpbmUsIGNsb3NlT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSAndmFuaWxsYS1jYWxlbmRhci1wcm8nO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgRGF0ZVBpY2tlck1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBEQVRFX1BJQ0tFUl9JMThOIH0gZnJvbSAnLi9kYXRlLXBpY2tlci5pMThuJztcblxuYWRkSWNvbnMoeyBjYWxlbmRhck91dGxpbmUsIGNsb3NlT3V0bGluZSB9KTtcblxuY29uc3QgSTE4Tl9OUyA9ICdEYXRlUGlja2VyJztcblxuLyoqXG4gKiBgdmFsLWRhdGUtcGlja2VyYCDigJQgc2VsZWN0b3IgZGUgZmVjaGEgY29uIGNhbGVuZGFyaW8gdmFuaWxsYS1jYWxlbmRhci1wcm8gdjNcbiAqIChOTyBpb24tZGF0ZXRpbWUpLiBTZSBwcmVzZW50YSBjb21vICoqc2hlZXQgbW9kYWwqKiAoYm90dG9tIHNoZWV0KSwgaWd1YWwgcXVlXG4gKiBlbCByZXN0byBkZSBsb3MgbW9kYWxlcyBkZSBsYSBhcHAsIGNvbiBlc3BhY2lvIHByb3BpbyB5IHNpbiBwcm9ibGVtYXMgZGVcbiAqIHBvc2ljaW9uYW1pZW50byBvIGJvdHRvbS1uYXYuXG4gKlxuICogVHJpZ2dlciAoYm90w7NuIGNvbiBsYSBmZWNoYSBvIHBsYWNlaG9sZGVyKSDihpIgc2hlZXQgY29uIGhlYWRlciBDZXJyYXIgKyBjYWxlbmRhcmlvXG4gKiDihpIgY2xpY2sgZW4gdW4gZMOtYSBsbyBhcGxpY2EgeSBjaWVycmEgZWwgc2hlZXQuIFZhbG9yIGBZWVlZLU1NLUREYCAoZmVjaGEgbG9jYWwsXG4gKiBzaW4gem9uYSBob3JhcmlhKS4gSW50ZWdyYSBjb24gYEZvcm1Db250cm9sYCBvIGB2YWx1ZWAvYCh2YWx1ZUNoYW5nZSlgLlxuICpcbiAqIGBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lYDogZWwgY2FsZW5kYXJpbyBlcyBpbnN0YW5jaWFkbyBwb3IgSlMgZnVlcmEgZGVsIHNoYWRvdztcbiAqIGxvcyBlc3RpbG9zIGRlIG1hcmNhIGRlYmVuIHNlciBnbG9iYWxlcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWRhdGUtcGlja2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQnV0dG9uLCBJb25CdXR0b25zLCBJb25Db250ZW50LCBJb25IZWFkZXIsIElvbkljb24sIElvbk1vZGFsLCBJb25TcGlubmVyLCBJb25Ub29sYmFyXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwidmRwXCI+XG4gICAgICBAaWYgKHByb3BzLmxhYmVsKSB7XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZkcF9fbGFiZWxcIiBbYXR0ci5mb3JdPVwidHJpZ2dlcklkXCI+e3sgcHJvcHMubGFiZWwgfX08L2xhYmVsPlxuICAgICAgfVxuICAgICAgQGlmIChwcm9wcy5oaW50KSB7XG4gICAgICAgIDxwIGNsYXNzPVwidmRwX19oaW50XCI+e3sgcHJvcHMuaGludCB9fTwvcD5cbiAgICAgIH1cbiAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgIFtpZF09XCJ0cmlnZ2VySWRcIlxuICAgICAgICBjbGFzcz1cInZkcF9fdHJpZ2dlclwiXG4gICAgICAgIGZpbGw9XCJvdXRsaW5lXCJcbiAgICAgICAgY29sb3I9XCJtZWRpdW1cIlxuICAgICAgICBleHBhbmQ9XCJibG9ja1wiXG4gICAgICAgIFtjbGFzcy5pcy1wbGFjZWhvbGRlcl09XCIhZGlzcGxheVZhbHVlXCJcbiAgICAgICAgKGNsaWNrKT1cInNoZWV0T3Blbi5zZXQodHJ1ZSlcIlxuICAgICAgPlxuICAgICAgICA8aW9uLWljb24gbmFtZT1cImNhbGVuZGFyLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICB7eyBkaXNwbGF5VmFsdWUgfHwgcGxhY2Vob2xkZXJUZXh0IH19XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8aW9uLW1vZGFsXG4gICAgICBbaXNPcGVuXT1cInNoZWV0T3BlbigpXCJcbiAgICAgIFticmVha3BvaW50c109XCJbMCwgMV1cIlxuICAgICAgW2luaXRpYWxCcmVha3BvaW50XT1cIjFcIlxuICAgICAgW2hhbmRsZV09XCJ0cnVlXCJcbiAgICAgIChkaWRQcmVzZW50KT1cIm9uU2hlZXRQcmVzZW50KClcIlxuICAgICAgKGRpZERpc21pc3MpPVwib25TaGVldERpc21pc3MoKVwiXG4gICAgICBjbGFzcz1cInZkcC1zaGVldFwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICA8aW9uLWhlYWRlcj5cbiAgICAgICAgICA8aW9uLXRvb2xiYXI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiAoY2xpY2spPVwic2hlZXRPcGVuLnNldChmYWxzZSlcIj5cbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHQoJ2Nsb3NlJykgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgICA8L2lvbi10b29sYmFyPlxuICAgICAgICA8L2lvbi1oZWFkZXI+XG5cbiAgICAgICAgPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmRwLXNoZWV0X190aXRsZVwiPnt7IHByb3BzLmxhYmVsIHx8IHQoJ3NlbGVjdCcpIH19PC9kaXY+XG4gICAgICAgICAgQGlmIChkaXNwbGF5VmFsdWUpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZHAtc2hlZXRfX3ZhbHVlXCI+e3sgZGlzcGxheVZhbHVlIH19PC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPCEtLSBMb2FkZXIgbWllbnRyYXMgZWwgY2FsZW5kYXJpbyBubyBlc3TDoSBsaXN0byAtLT5cbiAgICAgICAgICBAaWYgKCFjYWxSZWFkeSgpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmRwLXNoZWV0X19sb2FkZXJcIj5cbiAgICAgICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiIGNvbG9yPVwicHJpbWFyeVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8IS0tIENhbGVuZGFyaW86IHNpZW1wcmUgZW4gZWwgRE9NIHBhcmEgcXVlICNjYWwgZXhpc3RhOyBmYWRlLWluIGFsIGVzdGFyIGxpc3RvIC0tPlxuICAgICAgICAgIDxkaXYgI2NhbCBjbGFzcz1cInZkcC1zaGVldF9fY2FsXCIgW2NsYXNzLmlzLXJlYWR5XT1cImNhbFJlYWR5KClcIj48L2Rpdj5cblxuICAgICAgICAgIEBpZiAocHJvcHMuY2xlYXJhYmxlICYmIGRpc3BsYXlWYWx1ZSkge1xuICAgICAgICAgICAgPGlvbi1idXR0b24gZXhwYW5kPVwiYmxvY2tcIiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cIm1lZGl1bVwiIChjbGljayk9XCJjbGVhcigpXCI+XG4gICAgICAgICAgICAgIHt7IHQoJ2NsZWFyJykgfX1cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8IS0tIENlcnJhciBvdXRsaW5lIGFsIHBpZSwgaWd1YWwgcXVlIG90cm9zIG1vZGFsZXMgZGUgbGEgbGliIC0tPlxuICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICBleHBhbmQ9XCJibG9ja1wiXG4gICAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXG4gICAgICAgICAgICBjb2xvcj1cImRhcmtcIlxuICAgICAgICAgICAgY2xhc3M9XCJ2ZHAtc2hlZXRfX2Nsb3NlLWJ0blwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2hlZXRPcGVuLnNldChmYWxzZSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHQoJ2Nsb3NlJykgfX1cbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgIDwvaW9uLWNvbnRlbnQ+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvaW9uLW1vZGFsPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZShJMThOX05TKSkge1xuICAgICAgdGhpcy5pMThuLnJlZ2lzdGVyQ29udGVudChJMThOX05TLCBEQVRFX1BJQ0tFUl9JMThOKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBwcm9wczogRGF0ZVBpY2tlck1ldGFkYXRhID0ge307XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4oKTtcblxuICBAVmlld0NoaWxkKCdjYWwnKSBwcml2YXRlIGNhbFJlZj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIHJlYWRvbmx5IHNoZWV0T3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gIC8qKiB0cnVlIGN1YW5kbyBlbCBjYWxlbmRhcmlvIHlhIHNlIGNvbnN0cnV5w7MgeSBlcyB2aXNpYmxlIChmYWRlLWluKS4gKi9cbiAgcmVhZG9ubHkgY2FsUmVhZHkgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIGNhbGVuZGFyPzogQ2FsZW5kYXI7XG5cbiAgZ2V0IHRyaWdnZXJJZCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5wcm9wcy50b2tlbikge1xuICAgICAgdGhpcy5wcm9wcy50b2tlbiA9IGB2ZHAtJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLCAxMCl9YDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucHJvcHMudG9rZW47XG4gIH1cblxuICBwcml2YXRlIGdldCBsb2NhbGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5sb2NhbGUgfHwgJ2VzLUVTJztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGN1cnJlbnQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMucHJvcHMuY29udHJvbCkgcmV0dXJuIHRoaXMucHJvcHMuY29udHJvbC52YWx1ZSA/PyBudWxsO1xuICAgIHJldHVybiB0aGlzLnByb3BzLnZhbHVlID8/IG51bGw7XG4gIH1cblxuICBnZXQgcGxhY2Vob2xkZXJUZXh0KCk6IHN0cmluZyB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5wbGFjZWhvbGRlciB8fCB0aGlzLnQoJ3NlbGVjdCcpO1xuICB9XG5cbiAgZ2V0IGRpc3BsYXlWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3QgdiA9IHRoaXMuY3VycmVudDtcbiAgICBjb25zdCBkID0gdGhpcy5wYXJzZUxvY2FsKHYpO1xuICAgIGlmICghZCkgcmV0dXJuICcnO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQodGhpcy5sb2NhbGUsIHsgZGF0ZVN0eWxlOiAnbG9uZycgfSkuZm9ybWF0KGQpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIHYgPz8gJyc7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoX2NoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaGVldE9wZW4oKSAmJiB0aGlzLmNhbGVuZGFyKSB7XG4gICAgICB0aGlzLmNhbGVuZGFyLnNldCh7IHNlbGVjdGVkRGF0ZXM6IHRoaXMuY3VycmVudCA/IFt0aGlzLmN1cnJlbnQgYXMgbmV2ZXJdIDogW10gfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95Q2FsZW5kYXIoKTtcbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIEkxOE5fTlMpO1xuICB9XG5cbiAgb25TaGVldFByZXNlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5jYWxSZWFkeS5zZXQoZmFsc2UpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5idWlsZENhbGVuZGFyKCksIDApO1xuICB9XG5cbiAgb25TaGVldERpc21pc3MoKTogdm9pZCB7XG4gICAgdGhpcy5zaGVldE9wZW4uc2V0KGZhbHNlKTtcbiAgICB0aGlzLmNhbFJlYWR5LnNldChmYWxzZSk7XG4gICAgdGhpcy5kZXN0cm95Q2FsZW5kYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDYWxlbmRhcigpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuY2FsUmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghZWwpIHJldHVybjtcbiAgICB0aGlzLmRlc3Ryb3lDYWxlbmRhcigpO1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jdXJyZW50O1xuICAgIHRoaXMuY2FsZW5kYXIgPSBuZXcgQ2FsZW5kYXIoZWwsIHtcbiAgICAgIHR5cGU6ICdkZWZhdWx0JyxcbiAgICAgIGxvY2FsZTogdGhpcy5sb2NhbGUsXG4gICAgICBzZWxlY3RlZFRoZW1lOiAnbGlnaHQnLFxuICAgICAgZmlyc3RXZWVrZGF5OiB0aGlzLnByb3BzLmZpcnN0V2Vla2RheSA/PyAxLFxuICAgICAgc2VsZWN0aW9uRGF0ZXNNb2RlOiAnc2luZ2xlJyxcbiAgICAgIHNlbGVjdGVkRGF0ZXM6IHZhbHVlID8gW3ZhbHVlIGFzIG5ldmVyXSA6IFtdLFxuICAgICAgZGlzcGxheURhdGVNaW46ICh0aGlzLnByb3BzLm1pbiA/PyB1bmRlZmluZWQpIGFzIG5ldmVyLFxuICAgICAgZGlzcGxheURhdGVNYXg6ICh0aGlzLnByb3BzLm1heCA/PyB1bmRlZmluZWQpIGFzIG5ldmVyLFxuICAgICAgb25DbGlja0RhdGU6IHNlbGYgPT4ge1xuICAgICAgICBjb25zdCBwaWNrZWQgPSBzZWxmLmNvbnRleHQuc2VsZWN0ZWREYXRlc1swXSA/PyBudWxsO1xuICAgICAgICBpZiAocGlja2VkKSB0aGlzLmFwcGx5KHBpY2tlZCk7XG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMuY2FsZW5kYXIuaW5pdCgpO1xuICAgIC8vIFBlcXVlw7FvIGRlbGF5IHBhcmEgcXVlIGVsIERPTSBkZWwgY2FsZW5kYXJpbyBlc3TDqSBwaW50YWRvIGFudGVzIGRlbCBmYWRlLWluLlxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jYWxSZWFkeS5zZXQodHJ1ZSksIDUwKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveUNhbGVuZGFyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhbGVuZGFyKSB7XG4gICAgICB0aGlzLmNhbGVuZGFyLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuY2FsZW5kYXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcHBseShkYXRlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNldFZhbHVlKGRhdGUpO1xuICAgIHRoaXMuc2hlZXRPcGVuLnNldChmYWxzZSk7XG4gICAgdGhpcy5kZXN0cm95Q2FsZW5kYXIoKTtcbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5zaGVldE9wZW4uc2V0KGZhbHNlKTtcbiAgICB0aGlzLmRlc3Ryb3lDYWxlbmRhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRWYWx1ZShkYXRlOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHMuY29udHJvbCkge1xuICAgICAgdGhpcy5wcm9wcy5jb250cm9sLnNldFZhbHVlKGRhdGUpO1xuICAgICAgdGhpcy5wcm9wcy5jb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICB0aGlzLnByb3BzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByb3BzLnZhbHVlID0gZGF0ZTtcbiAgICB9XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGRhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUxvY2FsKHY6IHN0cmluZyB8IG51bGwpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKCF2KSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBtID0gL14oXFxkezR9KS0oXFxkezJ9KS0oXFxkezJ9KS8uZXhlYyh2KTtcbiAgICBpZiAoIW0pIHtcbiAgICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh2KTtcbiAgICAgIHJldHVybiBpc05hTihkLmdldFRpbWUoKSkgPyBudWxsIDogZDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBEYXRlKE51bWJlcihtWzFdKSwgTnVtYmVyKG1bMl0pIC0gMSwgTnVtYmVyKG1bM10pKTtcbiAgfVxufVxuIl19
|