valtech-components 4.0.109 → 4.0.111

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.
@@ -70,35 +70,39 @@ export class EntityCardComponent {
70
70
  (click)="onCardClick()"
71
71
  (keyup.enter)="onCardClick()"
72
72
  >
73
- @if (chipPillProps(); as chip) {
74
- <div class="entity-card__eyebrow">
75
- <val-pill [props]="chip" />
76
- </div>
77
- }
78
-
79
- <div class="entity-card__row">
80
- <div class="entity-card__text">
81
- <span class="entity-card__title">{{ config().title }}</span>
82
- @if (config().subtitle) {
83
- <span class="entity-card__subtitle">{{ config().subtitle }}</span>
84
- }
85
- @if (config().endNote) {
86
- <span class="entity-card__end-note">{{ config().endNote }}</span>
87
- }
88
- </div>
73
+ <div class="entity-card__body">
74
+ @if (chipPillProps(); as chip) {
75
+ <div class="entity-card__eyebrow">
76
+ <val-pill [props]="chip" />
77
+ </div>
78
+ }
89
79
 
90
- @if (actions().length) {
91
- <div class="entity-card__actions" (click)="$event.stopPropagation()">
92
- @for (action of actions(); track action.token || $index) {
93
- <val-button [props]="action" (onClick)="actionClick.emit($event)" />
80
+ <div class="entity-card__row">
81
+ <div class="entity-card__text">
82
+ <span class="entity-card__title">{{ config().title }}</span>
83
+ @if (config().subtitle) {
84
+ <span class="entity-card__subtitle">{{ config().subtitle }}</span>
85
+ }
86
+ @if (config().endNote) {
87
+ <span class="entity-card__end-note">{{ config().endNote }}</span>
94
88
  }
95
89
  </div>
96
- } @else if (isNavigable()) {
97
- <ion-icon class="entity-card__chevron" name="chevron-forward" aria-hidden="true" />
98
- }
90
+
91
+ @if (actions().length) {
92
+ <div class="entity-card__actions" (click)="$event.stopPropagation()">
93
+ @for (action of actions(); track action.token || $index) {
94
+ <val-button [props]="action" (onClick)="actionClick.emit($event)" />
95
+ }
96
+ </div>
97
+ }
98
+ </div>
99
99
  </div>
100
+
101
+ @if (!actions().length && isNavigable()) {
102
+ <ion-icon class="entity-card__chevron" name="chevron-forward" aria-hidden="true" />
103
+ }
100
104
  </div>
101
- `, isInline: true, styles: [":host{display:block}.entity-card{background:var(--ion-card-background, var(--ion-background-color, #fff));border:1px solid var(--ion-border-color, var(--ion-color-light-shade, rgba(0, 0, 0, .1)));border-radius:16px;box-shadow:0 1px 3px #0000000f;padding:16px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.entity-card--clickable{cursor:pointer}.entity-card--clickable:hover{border-color:var(--ion-color-medium, #92949c);box-shadow:0 4px 12px #0000001a}.entity-card--clickable:active{transform:scale(.99)}.entity-card--clickable:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.entity-card__eyebrow{display:flex;margin-bottom:10px}.entity-card__row{display:flex;align-items:center;gap:12px}.entity-card__text{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}.entity-card__title{font-size:1rem;font-weight:700;line-height:1.3;color:var(--ion-text-color, #000)}.entity-card__subtitle{font-size:.875rem;line-height:1.35;color:var(--ion-color-medium, #92949c)}.entity-card__end-note{font-size:.8125rem;line-height:1.35;color:var(--ion-color-medium, #92949c)}.entity-card__actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.entity-card__actions val-button{display:inline-block}.entity-card--actions-below .entity-card__row{flex-direction:column;align-items:stretch;gap:10px}.entity-card--actions-below .entity-card__actions{flex-shrink:1;flex-wrap:wrap}.entity-card__chevron{font-size:1.25rem;color:var(--ion-color-medium, #92949c);flex-shrink:0}:host-context(body.dark) .entity-card,:host-context(html.ion-palette-dark) .entity-card,:host-context([data-theme=dark]) .entity-card{box-shadow:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: PillComponent, selector: "val-pill", inputs: ["preset", "props"], outputs: ["pillClick", "pillAction"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
105
+ `, isInline: true, styles: [":host{display:block}.entity-card{background:var(--ion-card-background, var(--ion-background-color, #fff));border:1px solid var(--ion-border-color, var(--ion-color-light-shade, rgba(0, 0, 0, .1)));border-radius:16px;box-shadow:0 1px 3px #0000000f;padding:16px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.entity-card__body{flex:1 1 auto;min-width:0}.entity-card--clickable{display:flex;align-items:center;gap:12px;cursor:pointer}.entity-card--clickable:hover{border-color:var(--ion-color-medium, #92949c);box-shadow:0 4px 12px #0000001a}.entity-card--clickable:active{transform:scale(.99)}.entity-card--clickable:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.entity-card__eyebrow{display:flex;margin-bottom:10px}.entity-card__row{display:flex;align-items:center;gap:12px}.entity-card__text{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}.entity-card__title{font-size:1rem;font-weight:700;line-height:1.3;color:var(--ion-text-color, #000)}.entity-card__subtitle{font-size:.875rem;line-height:1.35;color:var(--ion-color-medium, #92949c)}.entity-card__end-note{font-size:.8125rem;line-height:1.35;color:var(--ion-color-medium, #92949c)}.entity-card__actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.entity-card__actions val-button{display:inline-block}.entity-card--actions-below .entity-card__row{flex-direction:column;align-items:stretch;gap:10px}.entity-card--actions-below .entity-card__actions{flex-shrink:1;flex-wrap:wrap}.entity-card__chevron{font-size:1.25rem;color:var(--ion-color-medium, #92949c);flex-shrink:0}:host-context(body.dark) .entity-card,:host-context(html.ion-palette-dark) .entity-card,:host-context([data-theme=dark]) .entity-card{box-shadow:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: PillComponent, selector: "val-pill", inputs: ["preset", "props"], outputs: ["pillClick", "pillAction"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
102
106
  }
103
107
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EntityCardComponent, decorators: [{
104
108
  type: Component,
@@ -112,38 +116,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
112
116
  (click)="onCardClick()"
113
117
  (keyup.enter)="onCardClick()"
114
118
  >
115
- @if (chipPillProps(); as chip) {
116
- <div class="entity-card__eyebrow">
117
- <val-pill [props]="chip" />
118
- </div>
119
- }
120
-
121
- <div class="entity-card__row">
122
- <div class="entity-card__text">
123
- <span class="entity-card__title">{{ config().title }}</span>
124
- @if (config().subtitle) {
125
- <span class="entity-card__subtitle">{{ config().subtitle }}</span>
126
- }
127
- @if (config().endNote) {
128
- <span class="entity-card__end-note">{{ config().endNote }}</span>
129
- }
130
- </div>
119
+ <div class="entity-card__body">
120
+ @if (chipPillProps(); as chip) {
121
+ <div class="entity-card__eyebrow">
122
+ <val-pill [props]="chip" />
123
+ </div>
124
+ }
131
125
 
132
- @if (actions().length) {
133
- <div class="entity-card__actions" (click)="$event.stopPropagation()">
134
- @for (action of actions(); track action.token || $index) {
135
- <val-button [props]="action" (onClick)="actionClick.emit($event)" />
126
+ <div class="entity-card__row">
127
+ <div class="entity-card__text">
128
+ <span class="entity-card__title">{{ config().title }}</span>
129
+ @if (config().subtitle) {
130
+ <span class="entity-card__subtitle">{{ config().subtitle }}</span>
131
+ }
132
+ @if (config().endNote) {
133
+ <span class="entity-card__end-note">{{ config().endNote }}</span>
136
134
  }
137
135
  </div>
138
- } @else if (isNavigable()) {
139
- <ion-icon class="entity-card__chevron" name="chevron-forward" aria-hidden="true" />
140
- }
136
+
137
+ @if (actions().length) {
138
+ <div class="entity-card__actions" (click)="$event.stopPropagation()">
139
+ @for (action of actions(); track action.token || $index) {
140
+ <val-button [props]="action" (onClick)="actionClick.emit($event)" />
141
+ }
142
+ </div>
143
+ }
144
+ </div>
141
145
  </div>
146
+
147
+ @if (!actions().length && isNavigable()) {
148
+ <ion-icon class="entity-card__chevron" name="chevron-forward" aria-hidden="true" />
149
+ }
142
150
  </div>
143
- `, styles: [":host{display:block}.entity-card{background:var(--ion-card-background, var(--ion-background-color, #fff));border:1px solid var(--ion-border-color, var(--ion-color-light-shade, rgba(0, 0, 0, .1)));border-radius:16px;box-shadow:0 1px 3px #0000000f;padding:16px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.entity-card--clickable{cursor:pointer}.entity-card--clickable:hover{border-color:var(--ion-color-medium, #92949c);box-shadow:0 4px 12px #0000001a}.entity-card--clickable:active{transform:scale(.99)}.entity-card--clickable:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.entity-card__eyebrow{display:flex;margin-bottom:10px}.entity-card__row{display:flex;align-items:center;gap:12px}.entity-card__text{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}.entity-card__title{font-size:1rem;font-weight:700;line-height:1.3;color:var(--ion-text-color, #000)}.entity-card__subtitle{font-size:.875rem;line-height:1.35;color:var(--ion-color-medium, #92949c)}.entity-card__end-note{font-size:.8125rem;line-height:1.35;color:var(--ion-color-medium, #92949c)}.entity-card__actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.entity-card__actions val-button{display:inline-block}.entity-card--actions-below .entity-card__row{flex-direction:column;align-items:stretch;gap:10px}.entity-card--actions-below .entity-card__actions{flex-shrink:1;flex-wrap:wrap}.entity-card__chevron{font-size:1.25rem;color:var(--ion-color-medium, #92949c);flex-shrink:0}:host-context(body.dark) .entity-card,:host-context(html.ion-palette-dark) .entity-card,:host-context([data-theme=dark]) .entity-card{box-shadow:none}\n"] }]
151
+ `, styles: [":host{display:block}.entity-card{background:var(--ion-card-background, var(--ion-background-color, #fff));border:1px solid var(--ion-border-color, var(--ion-color-light-shade, rgba(0, 0, 0, .1)));border-radius:16px;box-shadow:0 1px 3px #0000000f;padding:16px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.entity-card__body{flex:1 1 auto;min-width:0}.entity-card--clickable{display:flex;align-items:center;gap:12px;cursor:pointer}.entity-card--clickable:hover{border-color:var(--ion-color-medium, #92949c);box-shadow:0 4px 12px #0000001a}.entity-card--clickable:active{transform:scale(.99)}.entity-card--clickable:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.entity-card__eyebrow{display:flex;margin-bottom:10px}.entity-card__row{display:flex;align-items:center;gap:12px}.entity-card__text{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}.entity-card__title{font-size:1rem;font-weight:700;line-height:1.3;color:var(--ion-text-color, #000)}.entity-card__subtitle{font-size:.875rem;line-height:1.35;color:var(--ion-color-medium, #92949c)}.entity-card__end-note{font-size:.8125rem;line-height:1.35;color:var(--ion-color-medium, #92949c)}.entity-card__actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.entity-card__actions val-button{display:inline-block}.entity-card--actions-below .entity-card__row{flex-direction:column;align-items:stretch;gap:10px}.entity-card--actions-below .entity-card__actions{flex-shrink:1;flex-wrap:wrap}.entity-card__chevron{font-size:1.25rem;color:var(--ion-color-medium, #92949c);flex-shrink:0}:host-context(body.dark) .entity-card,:host-context(html.ion-palette-dark) .entity-card,:host-context([data-theme=dark]) .entity-card{box-shadow:none}\n"] }]
144
152
  }], propDecorators: { cardClick: [{
145
153
  type: Output
146
154
  }], actionClick: [{
147
155
  type: Output
148
156
  }] } });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9lbnRpdHktY2FyZC9lbnRpdHktY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUl2RCxRQUFRLENBQUMsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0FBRTdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQThDSCxNQUFNLE9BQU8sbUJBQW1CO0lBN0NoQztRQThDRSw4Q0FBOEM7UUFDckMsVUFBSyxHQUFHLEtBQUssQ0FBOEIsRUFBRSxDQUFDLENBQUM7UUFFeEQsK0VBQStFO1FBQ3JFLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRWpELG9EQUFvRDtRQUMxQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFbkQscUJBQXFCO1FBQ1osV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUF3QixDQUFDLENBQUM7UUFFckUsOENBQThDO1FBQ3JDLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztRQUUvRDs7OztXQUlHO1FBQ00sa0JBQWEsR0FBRyxRQUFRLENBQStCLEdBQUcsRUFBRTtZQUNuRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxJQUFJO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBMEIsRUFBRSxDQUFDO1FBQ3pGLENBQUMsQ0FBQyxDQUFDO1FBRUgsd0VBQXdFO1FBQy9ELGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7S0FNakc7SUFKQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFBRSxPQUFPO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDOytHQWpDVSxtQkFBbUI7bUdBQW5CLG1CQUFtQixnUkF6Q3BCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNDVCwwdERBdkNTLFlBQVksK0JBQUUsT0FBTywySkFBRSxhQUFhLHdIQUFFLGVBQWU7OzRGQTBDcEQsbUJBQW1CO2tCQTdDL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsWUFDdEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0NUOzhCQVFTLFNBQVM7c0JBQWxCLE1BQU07Z0JBR0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBFdmVudEVtaXR0ZXIsIGlucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgY2hldnJvbkZvcndhcmQgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vcGlsbC9waWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaWxsTWV0YWRhdGEgfSBmcm9tICcuLi9waWxsL3R5cGVzJztcbmltcG9ydCB7IEVudGl0eUNhcmRNZXRhZGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuXG5hZGRJY29ucyh7IGNoZXZyb25Gb3J3YXJkIH0pO1xuXG4vKipcbiAqIHZhbC1lbnRpdHktY2FyZFxuICpcbiAqIEdlbmVyaWMgZW50aXR5IGNhcmQgLyBsaXN0IHJvdy4gVHdvIHVzZS1jYXNlcyBpbiBvbmUgY29tcG9uZW50OlxuICpcbiAqIDEuICoqTmF2aWdhYmxlIGVudGl0eSoqIChgY2xpY2thYmxlOiB0cnVlYCwgbm8gYGFjdGlvbnNgKSDigJQgdGhlIHdob2xlIGNhcmQgaXNcbiAqICAgIGEgYnV0dG9uOiBjaGV2cm9uIG9uIHRoZSByaWdodCwgYHJvbGU9XCJidXR0b25cImAgKyBrZXlib2FyZCBzdXBwb3J0LCBlbWl0c1xuICogICAgYChjYXJkQ2xpY2spYCB3aXRoIHRoZSBgdG9rZW5gLlxuICogMi4gKipSb3cgd2l0aCBhY3Rpb24ocykqKiAoYGFjdGlvbnM6IEJ1dHRvbk1ldGFkYXRhW11gKSDigJQgYnV0dG9ucyBvbiB0aGVcbiAqICAgIHJpZ2h0LCBlYWNoIGVtaXRzIGAoYWN0aW9uQ2xpY2spYCB3aXRoIGl0cyBvd24gdG9rZW4uXG4gKlxuICogUHJlc2VudGF0aW9uYWwg4oCUIGFsbCB0ZXh0IGZpZWxkcyBhcmUgYWxyZWFkeS1yZXNvbHZlZCBzdHJpbmdzIChubyBpMThuIG9mIGl0c1xuICogb3duKS4gRGFyay1zYWZlOiBzdXJmYWNlL2JvcmRlcnMvdGV4dCB1c2UgdGhlbWUgdG9rZW5zIG9ubHkuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDx2YWwtZW50aXR5LWNhcmRcbiAqICAgW3Byb3BzXT1cInsgY2hpcDogeyBsYWJlbDogJ0VuIHZpdm8nLCBjb2xvcjogJ3N1Y2Nlc3MnIH0sIHRpdGxlOiAnQmluZ28nLCBzdWJ0aXRsZTogJ0hveSAyMDowMCcsIGNsaWNrYWJsZTogdHJ1ZSwgdG9rZW46ICdldnQtMScgfVwiXG4gKiAgIChjYXJkQ2xpY2spPVwib3BlbigkZXZlbnQpXCIgLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtZW50aXR5LWNhcmQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25JY29uLCBQaWxsQ29tcG9uZW50LCBCdXR0b25Db21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZW50aXR5LWNhcmRcIlxuICAgICAgW2NsYXNzLmVudGl0eS1jYXJkLS1jbGlja2FibGVdPVwiaXNOYXZpZ2FibGUoKVwiXG4gICAgICBbY2xhc3MuZW50aXR5LWNhcmQtLWFjdGlvbnMtYmVsb3ddPVwiY29uZmlnKCkuYWN0aW9uc0JlbG93ICYmIGFjdGlvbnMoKS5sZW5ndGggPiAwXCJcbiAgICAgIFthdHRyLnJvbGVdPVwiaXNOYXZpZ2FibGUoKSA/ICdidXR0b24nIDogbnVsbFwiXG4gICAgICBbYXR0ci50YWJpbmRleF09XCJpc05hdmlnYWJsZSgpID8gMCA6IG51bGxcIlxuICAgICAgKGNsaWNrKT1cIm9uQ2FyZENsaWNrKClcIlxuICAgICAgKGtleXVwLmVudGVyKT1cIm9uQ2FyZENsaWNrKClcIlxuICAgID5cbiAgICAgIEBpZiAoY2hpcFBpbGxQcm9wcygpOyBhcyBjaGlwKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbnRpdHktY2FyZF9fZXllYnJvd1wiPlxuICAgICAgICAgIDx2YWwtcGlsbCBbcHJvcHNdPVwiY2hpcFwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZW50aXR5LWNhcmRfX3Jvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW50aXR5LWNhcmRfX3RleHRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImVudGl0eS1jYXJkX190aXRsZVwiPnt7IGNvbmZpZygpLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgIEBpZiAoY29uZmlnKCkuc3VidGl0bGUpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZW50aXR5LWNhcmRfX3N1YnRpdGxlXCI+e3sgY29uZmlnKCkuc3VidGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoY29uZmlnKCkuZW5kTm90ZSkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlbnRpdHktY2FyZF9fZW5kLW5vdGVcIj57eyBjb25maWcoKS5lbmROb3RlIH19PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGlmIChhY3Rpb25zKCkubGVuZ3RoKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVudGl0eS1jYXJkX19hY3Rpb25zXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgQGZvciAoYWN0aW9uIG9mIGFjdGlvbnMoKTsgdHJhY2sgYWN0aW9uLnRva2VuIHx8ICRpbmRleCkge1xuICAgICAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwiYWN0aW9uXCIgKG9uQ2xpY2spPVwiYWN0aW9uQ2xpY2suZW1pdCgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSBpZiAoaXNOYXZpZ2FibGUoKSkge1xuICAgICAgICAgIDxpb24taWNvbiBjbGFzcz1cImVudGl0eS1jYXJkX19jaGV2cm9uXCIgbmFtZT1cImNoZXZyb24tZm9yd2FyZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9lbnRpdHktY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBFbnRpdHlDYXJkQ29tcG9uZW50IHtcbiAgLyoqIENvbXBvbmVudCBjb25maWd1cmF0aW9uIChvYmplY3QtZmlyc3QpLiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0PFBhcnRpYWw8RW50aXR5Q2FyZE1ldGFkYXRhPj4oe30pO1xuXG4gIC8qKiBFbWl0cyB0aGUgYHRva2VuYCB3aGVuIHRoZSBjYXJkIGlzIG5hdmlnYWJsZSBhbmQgZ2V0cyBjbGlja2VkL2FjdGl2YXRlZC4gKi9cbiAgQE91dHB1dCgpIGNhcmRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8qKiBFbWl0cyB0aGUgdG9rZW4gb2YgdGhlIGNsaWNrZWQgYWN0aW9uIGJ1dHRvbi4gKi9cbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqIE1lcmdlZCBjb25maWcuICovXG4gIHJlYWRvbmx5IGNvbmZpZyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJvcHMoKSBhcyBFbnRpdHlDYXJkTWV0YWRhdGEpO1xuXG4gIC8qKiBBY3Rpb24gYnV0dG9ucyAoZW1wdHkgYXJyYXkgd2hlbiBub25lKS4gKi9cbiAgcmVhZG9ubHkgYWN0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuYWN0aW9ucyA/PyBbXSk7XG5cbiAgLyoqXG4gICAqIEJhZGdlLW1vZGUgcGlsbCBwcm9wcyBmb3IgdGhlIHN0YXR1cyBjaGlwLCBvciBudWxsIHdoZW4gYWJzZW50LlxuICAgKiBgY2hpcC5jb2xvcmAgaXMgYSBmcmVlLWZvcm0gc3RyaW5nIChJb25pYyBjb2xvciBuYW1lIG9yIENTUykgcGVyIHRoZSBwdWJsaWNcbiAgICogY29udHJhY3Q7IGNhc3QgdG8gc2F0aXNmeSBgUGlsbE1ldGFkYXRhLmNvbG9yYCAoSW9uaWMgYENvbG9yYCB1bmlvbikuXG4gICAqL1xuICByZWFkb25seSBjaGlwUGlsbFByb3BzID0gY29tcHV0ZWQ8UGFydGlhbDxQaWxsTWV0YWRhdGE+IHwgbnVsbD4oKCkgPT4ge1xuICAgIGNvbnN0IGNoaXAgPSB0aGlzLmNvbmZpZygpLmNoaXA7XG4gICAgaWYgKCFjaGlwKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4geyBsYWJlbDogY2hpcC5sYWJlbCwgY29sb3I6IChjaGlwLmNvbG9yIHx8ICdtZWRpdW0nKSBhcyBQaWxsTWV0YWRhdGFbJ2NvbG9yJ10gfTtcbiAgfSk7XG5cbiAgLyoqIENhcmQgaXMgbmF2aWdhYmxlIG9ubHkgd2hlbiBgY2xpY2thYmxlYCBhbmQgdGhlcmUgYXJlIG5vIGFjdGlvbnMuICovXG4gIHJlYWRvbmx5IGlzTmF2aWdhYmxlID0gY29tcHV0ZWQoKCkgPT4gISF0aGlzLmNvbmZpZygpLmNsaWNrYWJsZSAmJiB0aGlzLmFjdGlvbnMoKS5sZW5ndGggPT09IDApO1xuXG4gIG9uQ2FyZENsaWNrKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc05hdmlnYWJsZSgpKSByZXR1cm47XG4gICAgdGhpcy5jYXJkQ2xpY2suZW1pdCh0aGlzLmNvbmZpZygpLnRva2VuKTtcbiAgfVxufVxuIl19
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9lbnRpdHktY2FyZC9lbnRpdHktY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUl2RCxRQUFRLENBQUMsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0FBRTdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQWtESCxNQUFNLE9BQU8sbUJBQW1CO0lBakRoQztRQWtERSw4Q0FBOEM7UUFDckMsVUFBSyxHQUFHLEtBQUssQ0FBOEIsRUFBRSxDQUFDLENBQUM7UUFFeEQsK0VBQStFO1FBQ3JFLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRWpELG9EQUFvRDtRQUMxQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFbkQscUJBQXFCO1FBQ1osV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUF3QixDQUFDLENBQUM7UUFFckUsOENBQThDO1FBQ3JDLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztRQUUvRDs7OztXQUlHO1FBQ00sa0JBQWEsR0FBRyxRQUFRLENBQStCLEdBQUcsRUFBRTtZQUNuRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxJQUFJO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBMEIsRUFBRSxDQUFDO1FBQ3pGLENBQUMsQ0FBQyxDQUFDO1FBRUgsd0VBQXdFO1FBQy9ELGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7S0FNakc7SUFKQyxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFBRSxPQUFPO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDOytHQWpDVSxtQkFBbUI7bUdBQW5CLG1CQUFtQixnUkE3Q3BCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQ1QsZ3pEQTNDUyxZQUFZLCtCQUFFLE9BQU8sMkpBQUUsYUFBYSx3SEFBRSxlQUFlOzs0RkE4Q3BELG1CQUFtQjtrQkFqRC9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLFlBQ3REOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQ1Q7OEJBUVMsU0FBUztzQkFBbEIsTUFBTTtnQkFHRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIEV2ZW50RW1pdHRlciwgaW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uSWNvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBjaGV2cm9uRm9yd2FyZCB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFBpbGxDb21wb25lbnQgfSBmcm9tICcuLi9waWxsL3BpbGwuY29tcG9uZW50JztcbmltcG9ydCB7IFBpbGxNZXRhZGF0YSB9IGZyb20gJy4uL3BpbGwvdHlwZXMnO1xuaW1wb3J0IHsgRW50aXR5Q2FyZE1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbmFkZEljb25zKHsgY2hldnJvbkZvcndhcmQgfSk7XG5cbi8qKlxuICogdmFsLWVudGl0eS1jYXJkXG4gKlxuICogR2VuZXJpYyBlbnRpdHkgY2FyZCAvIGxpc3Qgcm93LiBUd28gdXNlLWNhc2VzIGluIG9uZSBjb21wb25lbnQ6XG4gKlxuICogMS4gKipOYXZpZ2FibGUgZW50aXR5KiogKGBjbGlja2FibGU6IHRydWVgLCBubyBgYWN0aW9uc2ApIOKAlCB0aGUgd2hvbGUgY2FyZCBpc1xuICogICAgYSBidXR0b246IGNoZXZyb24gb24gdGhlIHJpZ2h0LCBgcm9sZT1cImJ1dHRvblwiYCArIGtleWJvYXJkIHN1cHBvcnQsIGVtaXRzXG4gKiAgICBgKGNhcmRDbGljaylgIHdpdGggdGhlIGB0b2tlbmAuXG4gKiAyLiAqKlJvdyB3aXRoIGFjdGlvbihzKSoqIChgYWN0aW9uczogQnV0dG9uTWV0YWRhdGFbXWApIOKAlCBidXR0b25zIG9uIHRoZVxuICogICAgcmlnaHQsIGVhY2ggZW1pdHMgYChhY3Rpb25DbGljaylgIHdpdGggaXRzIG93biB0b2tlbi5cbiAqXG4gKiBQcmVzZW50YXRpb25hbCDigJQgYWxsIHRleHQgZmllbGRzIGFyZSBhbHJlYWR5LXJlc29sdmVkIHN0cmluZ3MgKG5vIGkxOG4gb2YgaXRzXG4gKiBvd24pLiBEYXJrLXNhZmU6IHN1cmZhY2UvYm9yZGVycy90ZXh0IHVzZSB0aGVtZSB0b2tlbnMgb25seS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHZhbC1lbnRpdHktY2FyZFxuICogICBbcHJvcHNdPVwieyBjaGlwOiB7IGxhYmVsOiAnRW4gdml2bycsIGNvbG9yOiAnc3VjY2VzcycgfSwgdGl0bGU6ICdCaW5nbycsIHN1YnRpdGxlOiAnSG95IDIwOjAwJywgY2xpY2thYmxlOiB0cnVlLCB0b2tlbjogJ2V2dC0xJyB9XCJcbiAqICAgKGNhcmRDbGljayk9XCJvcGVuKCRldmVudClcIiAvPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1lbnRpdHktY2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkljb24sIFBpbGxDb21wb25lbnQsIEJ1dHRvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJlbnRpdHktY2FyZFwiXG4gICAgICBbY2xhc3MuZW50aXR5LWNhcmQtLWNsaWNrYWJsZV09XCJpc05hdmlnYWJsZSgpXCJcbiAgICAgIFtjbGFzcy5lbnRpdHktY2FyZC0tYWN0aW9ucy1iZWxvd109XCJjb25maWcoKS5hY3Rpb25zQmVsb3cgJiYgYWN0aW9ucygpLmxlbmd0aCA+IDBcIlxuICAgICAgW2F0dHIucm9sZV09XCJpc05hdmlnYWJsZSgpID8gJ2J1dHRvbicgOiBudWxsXCJcbiAgICAgIFthdHRyLnRhYmluZGV4XT1cImlzTmF2aWdhYmxlKCkgPyAwIDogbnVsbFwiXG4gICAgICAoY2xpY2spPVwib25DYXJkQ2xpY2soKVwiXG4gICAgICAoa2V5dXAuZW50ZXIpPVwib25DYXJkQ2xpY2soKVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImVudGl0eS1jYXJkX19ib2R5XCI+XG4gICAgICAgIEBpZiAoY2hpcFBpbGxQcm9wcygpOyBhcyBjaGlwKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVudGl0eS1jYXJkX19leWVicm93XCI+XG4gICAgICAgICAgICA8dmFsLXBpbGwgW3Byb3BzXT1cImNoaXBcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVudGl0eS1jYXJkX19yb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW50aXR5LWNhcmRfX3RleHRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZW50aXR5LWNhcmRfX3RpdGxlXCI+e3sgY29uZmlnKCkudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICBAaWYgKGNvbmZpZygpLnN1YnRpdGxlKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZW50aXR5LWNhcmRfX3N1YnRpdGxlXCI+e3sgY29uZmlnKCkuc3VidGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGNvbmZpZygpLmVuZE5vdGUpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlbnRpdHktY2FyZF9fZW5kLW5vdGVcIj57eyBjb25maWcoKS5lbmROb3RlIH19PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgQGlmIChhY3Rpb25zKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW50aXR5LWNhcmRfX2FjdGlvbnNcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICAgIEBmb3IgKGFjdGlvbiBvZiBhY3Rpb25zKCk7IHRyYWNrIGFjdGlvbi50b2tlbiB8fCAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8dmFsLWJ1dHRvbiBbcHJvcHNdPVwiYWN0aW9uXCIgKG9uQ2xpY2spPVwiYWN0aW9uQ2xpY2suZW1pdCgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICBAaWYgKCFhY3Rpb25zKCkubGVuZ3RoICYmIGlzTmF2aWdhYmxlKCkpIHtcbiAgICAgICAgPGlvbi1pY29uIGNsYXNzPVwiZW50aXR5LWNhcmRfX2NoZXZyb25cIiBuYW1lPVwiY2hldnJvbi1mb3J3YXJkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vZW50aXR5LWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRW50aXR5Q2FyZENvbXBvbmVudCB7XG4gIC8qKiBDb21wb25lbnQgY29uZmlndXJhdGlvbiAob2JqZWN0LWZpcnN0KS4gKi9cbiAgcmVhZG9ubHkgcHJvcHMgPSBpbnB1dDxQYXJ0aWFsPEVudGl0eUNhcmRNZXRhZGF0YT4+KHt9KTtcblxuICAvKiogRW1pdHMgdGhlIGB0b2tlbmAgd2hlbiB0aGUgY2FyZCBpcyBuYXZpZ2FibGUgYW5kIGdldHMgY2xpY2tlZC9hY3RpdmF0ZWQuICovXG4gIEBPdXRwdXQoKSBjYXJkQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAvKiogRW1pdHMgdGhlIHRva2VuIG9mIHRoZSBjbGlja2VkIGFjdGlvbiBidXR0b24uICovXG4gIEBPdXRwdXQoKSBhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8qKiBNZXJnZWQgY29uZmlnLiAqL1xuICByZWFkb25seSBjb25maWcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByb3BzKCkgYXMgRW50aXR5Q2FyZE1ldGFkYXRhKTtcblxuICAvKiogQWN0aW9uIGJ1dHRvbnMgKGVtcHR5IGFycmF5IHdoZW4gbm9uZSkuICovXG4gIHJlYWRvbmx5IGFjdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZygpLmFjdGlvbnMgPz8gW10pO1xuXG4gIC8qKlxuICAgKiBCYWRnZS1tb2RlIHBpbGwgcHJvcHMgZm9yIHRoZSBzdGF0dXMgY2hpcCwgb3IgbnVsbCB3aGVuIGFic2VudC5cbiAgICogYGNoaXAuY29sb3JgIGlzIGEgZnJlZS1mb3JtIHN0cmluZyAoSW9uaWMgY29sb3IgbmFtZSBvciBDU1MpIHBlciB0aGUgcHVibGljXG4gICAqIGNvbnRyYWN0OyBjYXN0IHRvIHNhdGlzZnkgYFBpbGxNZXRhZGF0YS5jb2xvcmAgKElvbmljIGBDb2xvcmAgdW5pb24pLlxuICAgKi9cbiAgcmVhZG9ubHkgY2hpcFBpbGxQcm9wcyA9IGNvbXB1dGVkPFBhcnRpYWw8UGlsbE1ldGFkYXRhPiB8IG51bGw+KCgpID0+IHtcbiAgICBjb25zdCBjaGlwID0gdGhpcy5jb25maWcoKS5jaGlwO1xuICAgIGlmICghY2hpcCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHsgbGFiZWw6IGNoaXAubGFiZWwsIGNvbG9yOiAoY2hpcC5jb2xvciB8fCAnbWVkaXVtJykgYXMgUGlsbE1ldGFkYXRhWydjb2xvciddIH07XG4gIH0pO1xuXG4gIC8qKiBDYXJkIGlzIG5hdmlnYWJsZSBvbmx5IHdoZW4gYGNsaWNrYWJsZWAgYW5kIHRoZXJlIGFyZSBubyBhY3Rpb25zLiAqL1xuICByZWFkb25seSBpc05hdmlnYWJsZSA9IGNvbXB1dGVkKCgpID0+ICEhdGhpcy5jb25maWcoKS5jbGlja2FibGUgJiYgdGhpcy5hY3Rpb25zKCkubGVuZ3RoID09PSAwKTtcblxuICBvbkNhcmRDbGljaygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNOYXZpZ2FibGUoKSkgcmV0dXJuO1xuICAgIHRoaXMuY2FyZENsaWNrLmVtaXQodGhpcy5jb25maWcoKS50b2tlbik7XG4gIH1cbn1cbiJdfQ==