valtech-components 4.0.256 → 4.0.257

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.
@@ -183,7 +183,7 @@ export class TicketCardComponent {
183
183
  const url = URL.createObjectURL(blob);
184
184
  const a = document.createElement('a');
185
185
  a.href = url;
186
- a.download = `entrada-${p.folio ?? 'bingo'}.png`;
186
+ a.download = `carton-${p.folio ?? 'bingo'}.png`;
187
187
  document.body.appendChild(a);
188
188
  a.click();
189
189
  document.body.removeChild(a);
@@ -206,102 +206,126 @@ export class TicketCardComponent {
206
206
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TicketCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
207
207
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TicketCardComponent, isStandalone: true, selector: "val-ticket-card", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
208
208
  <div class="ticket-card">
209
- @if (props().title) {
210
- <div class="ticket-card__title">{{ props().title }}</div>
211
- }
212
-
213
- <div class="ticket-card__qr">
214
- @if (qr(); as q) {
215
- <val-qr-code [props]="qrProps(q)" />
216
- } @else if (failed()) {
217
- <div class="ticket-card__qr-fallback">{{ tokenShort() }}</div>
218
- } @else {
219
- <div class="ticket-card__qr-loading">
220
- <ion-spinner name="crescent" aria-label="Generando QR" />
221
- </div>
209
+ <div class="ticket-card__header">
210
+ <div class="ticket-card__eyebrow">{{ t('cardLabel') }}</div>
211
+ @if (props().title) {
212
+ <div class="ticket-card__title">{{ props().title }}</div>
222
213
  }
223
214
  </div>
224
215
 
225
- <div class="ticket-card__meta">
226
- @if (folioText(); as f) {
227
- <div class="ticket-card__folio">{{ f }}</div>
228
- }
229
- @if (props().buyerName) {
230
- <div class="ticket-card__buyer">{{ props().buyerName }}</div>
231
- }
232
- @if (statusLabel(); as s) {
233
- <span class="ticket-card__badge" [attr.data-status]="status()">{{ s }}</span>
234
- }
235
- </div>
236
-
237
- @if ((props().showDownload || props().showShare) && qr()) {
238
- <div class="ticket-card__actions">
239
- @if (props().showDownload) {
240
- <ion-button fill="outline" expand="block" [disabled]="downloading()" (click)="downloadCard()">
241
- <ion-icon name="download-outline" slot="start" />
242
- {{ props().downloadLabel || t('download') }}
243
- </ion-button>
216
+ <div class="ticket-card__body">
217
+ <div class="ticket-card__qr">
218
+ @if (qr(); as q) {
219
+ <val-qr-code [props]="qrProps(q)" />
220
+ } @else if (failed()) {
221
+ <div class="ticket-card__qr-fallback">{{ tokenShort() }}</div>
222
+ } @else {
223
+ <div class="ticket-card__qr-loading">
224
+ <ion-spinner name="crescent" aria-label="Generando QR" />
225
+ </div>
244
226
  }
245
- @if (props().showShare) {
246
- <ion-button fill="outline" expand="block" [disabled]="sharing()" (click)="shareCard()">
247
- <ion-icon name="share-outline" slot="start" />
248
- {{ props().shareLabel || t('share') }}
249
- </ion-button>
227
+ </div>
228
+
229
+ <div class="ticket-card__perf" aria-hidden="true">
230
+ <span class="ticket-card__notch ticket-card__notch--left"></span>
231
+ <span class="ticket-card__notch ticket-card__notch--right"></span>
232
+ </div>
233
+
234
+ <div class="ticket-card__stub">
235
+ <div class="ticket-card__meta">
236
+ @if (folioText(); as f) {
237
+ <div class="ticket-card__folio">{{ f }}</div>
238
+ }
239
+ @if (props().buyerName) {
240
+ <div class="ticket-card__buyer">{{ props().buyerName }}</div>
241
+ }
242
+ @if (statusLabel(); as s) {
243
+ <span class="ticket-card__badge" [attr.data-status]="status()">{{ s }}</span>
244
+ }
245
+ </div>
246
+
247
+ @if ((props().showDownload || props().showShare) && qr()) {
248
+ <div class="ticket-card__actions">
249
+ @if (props().showDownload) {
250
+ <ion-button fill="outline" expand="block" [disabled]="downloading()" (click)="downloadCard()">
251
+ <ion-icon name="download-outline" slot="start" />
252
+ {{ props().downloadLabel || t('download') }}
253
+ </ion-button>
254
+ }
255
+ @if (props().showShare) {
256
+ <ion-button fill="outline" expand="block" [disabled]="sharing()" (click)="shareCard()">
257
+ <ion-icon name="share-outline" slot="start" />
258
+ {{ props().shareLabel || t('share') }}
259
+ </ion-button>
260
+ }
261
+ </div>
250
262
  }
251
263
  </div>
252
- }
264
+ </div>
253
265
  </div>
254
- `, isInline: true, styles: ["@charset \"UTF-8\";:host{display:block}.ticket-card{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px;border:1px solid var(--ion-color-light-shade, #e0e0e0);border-radius:16px;background:var(--ion-card-background, #ffffff);max-width:320px;margin:0 auto}.ticket-card__title{font-size:1rem;font-weight:700;color:var(--ion-color-dark);text-align:center}.ticket-card__qr{display:flex;align-items:center;justify-content:center;min-height:200px}.ticket-card__qr-loading{display:flex;align-items:center;justify-content:center;width:200px;height:200px}.ticket-card__qr-fallback{font-family:monospace;font-size:.75rem;color:var(--ion-color-medium);word-break:break-all;text-align:center;padding:16px}.ticket-card__meta{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.ticket-card__folio{font-size:1rem;font-weight:700;color:var(--ion-color-dark)}.ticket-card__buyer{font-size:.875rem;color:var(--ion-color-medium)}.ticket-card__badge{margin-top:4px;font-size:.75rem;font-weight:600;padding:3px 12px;border-radius:999px;background:var(--ion-color-medium);color:var(--ion-color-medium-contrast, #fff);white-space:nowrap}.ticket-card__badge[data-status=sold]{background:var(--ion-color-success, #2dd36f);color:var(--ion-color-success-contrast, #fff)}.ticket-card__badge[data-status=checkedIn]{background:var(--ion-color-medium);color:var(--ion-color-medium-contrast, #fff)}.ticket-card__actions{width:100%;display:flex;flex-direction:column;gap:8px}.ticket-card__actions ion-button{--border-radius: 10px;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: QrCodeComponent, selector: "val-qr-code", inputs: ["props"], outputs: ["actionComplete", "imageLoad", "imageError"] }] }); }
266
+ `, isInline: true, styles: [":host{display:block}.ticket-card{--ticket-accent: var(--ion-color-primary, #ff00b2);--ticket-accent-2: #7026df;display:flex;flex-direction:column;width:min(100%,380px);margin:0 auto;overflow:hidden;border:1px solid var(--ion-color-light-shade, #d8d8dd);border-radius:22px;background:var(--ion-card-background, #ffffff);box-shadow:0 18px 50px #1f192d1f}.ticket-card__header{padding:22px 22px 20px;text-align:center;color:#fff;background:linear-gradient(135deg,var(--ticket-accent) 0%,var(--ticket-accent-2) 100%)}.ticket-card__eyebrow{margin-bottom:6px;font-size:.6875rem;font-weight:800;letter-spacing:.14em;line-height:1.2;text-transform:uppercase;opacity:.78}.ticket-card__title{font-size:1.25rem;font-weight:800;line-height:1.18}.ticket-card__body{position:relative;display:flex;flex-direction:column;align-items:stretch;background:radial-gradient(circle at 50% 0,rgba(255,0,178,.08),transparent 36%),var(--ion-card-background, #ffffff)}.ticket-card__qr{display:flex;align-items:center;justify-content:center;min-height:232px;padding:22px 22px 18px}.ticket-card__qr val-qr-code{display:block;padding:10px;border:1px solid rgba(31,25,45,.08);border-radius:18px;background:#fff;box-shadow:0 10px 30px #1f192d14}.ticket-card__qr-loading{display:flex;align-items:center;justify-content:center;width:220px;height:220px;border-radius:18px;background:#fff}.ticket-card__qr-fallback{padding:18px;border-radius:14px;background:#6b667514;color:var(--ion-color-medium, #6b6675);font-family:monospace;font-size:.75rem;line-height:1.5;text-align:center;word-break:break-all}.ticket-card__perf{position:relative;margin:0 22px;border-top:2px dashed rgba(107,102,117,.28)}.ticket-card__notch{position:absolute;top:-14px;width:26px;height:26px;border-radius:50%;background:var(--ion-background-color, #f8f8f8);box-shadow:inset 0 0 0 1px #1f192d14}.ticket-card__notch--left{left:-36px}.ticket-card__notch--right{right:-36px}.ticket-card__stub{display:flex;flex-direction:column;gap:18px;padding:18px 22px 22px}.ticket-card__meta{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;text-align:center}.ticket-card__folio{color:var(--ion-color-dark, #2f2b38);font-size:1.45rem;font-weight:850;line-height:1.15}.ticket-card__buyer{max-width:100%;overflow:hidden;color:var(--ion-color-medium, #6b6675);font-size:.9375rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.ticket-card__badge{display:inline-flex;align-items:center;min-height:30px;margin-top:2px;padding:5px 14px;border-radius:999px;background:var(--ion-color-medium, #6b6675);color:var(--ion-color-medium-contrast, #ffffff);font-size:.8125rem;font-weight:800;line-height:1;white-space:nowrap}.ticket-card__badge[data-status=sold]{background:var(--ion-color-success, #16a34a);color:var(--ion-color-success-contrast, #ffffff)}.ticket-card__badge[data-status=checkedIn]{background:var(--ion-color-medium, #6b6675);color:var(--ion-color-medium-contrast, #ffffff)}.ticket-card__actions{display:grid;gap:10px;width:100%}.ticket-card__actions ion-button{min-height:48px;margin:0;font-weight:800;--border-radius: 14px;--border-width: 1.5px}@media (max-width: 420px){.ticket-card{width:100%;border-radius:20px}.ticket-card__qr{min-height:216px;padding-inline:16px}.ticket-card__stub{padding-inline:16px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: QrCodeComponent, selector: "val-qr-code", inputs: ["props"], outputs: ["actionComplete", "imageLoad", "imageError"] }] }); }
255
267
  }
256
268
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TicketCardComponent, decorators: [{
257
269
  type: Component,
258
270
  args: [{ selector: 'val-ticket-card', standalone: true, imports: [CommonModule, IonButton, IonIcon, IonSpinner, QrCodeComponent], template: `
259
271
  <div class="ticket-card">
260
- @if (props().title) {
261
- <div class="ticket-card__title">{{ props().title }}</div>
262
- }
263
-
264
- <div class="ticket-card__qr">
265
- @if (qr(); as q) {
266
- <val-qr-code [props]="qrProps(q)" />
267
- } @else if (failed()) {
268
- <div class="ticket-card__qr-fallback">{{ tokenShort() }}</div>
269
- } @else {
270
- <div class="ticket-card__qr-loading">
271
- <ion-spinner name="crescent" aria-label="Generando QR" />
272
- </div>
272
+ <div class="ticket-card__header">
273
+ <div class="ticket-card__eyebrow">{{ t('cardLabel') }}</div>
274
+ @if (props().title) {
275
+ <div class="ticket-card__title">{{ props().title }}</div>
273
276
  }
274
277
  </div>
275
278
 
276
- <div class="ticket-card__meta">
277
- @if (folioText(); as f) {
278
- <div class="ticket-card__folio">{{ f }}</div>
279
- }
280
- @if (props().buyerName) {
281
- <div class="ticket-card__buyer">{{ props().buyerName }}</div>
282
- }
283
- @if (statusLabel(); as s) {
284
- <span class="ticket-card__badge" [attr.data-status]="status()">{{ s }}</span>
285
- }
286
- </div>
287
-
288
- @if ((props().showDownload || props().showShare) && qr()) {
289
- <div class="ticket-card__actions">
290
- @if (props().showDownload) {
291
- <ion-button fill="outline" expand="block" [disabled]="downloading()" (click)="downloadCard()">
292
- <ion-icon name="download-outline" slot="start" />
293
- {{ props().downloadLabel || t('download') }}
294
- </ion-button>
279
+ <div class="ticket-card__body">
280
+ <div class="ticket-card__qr">
281
+ @if (qr(); as q) {
282
+ <val-qr-code [props]="qrProps(q)" />
283
+ } @else if (failed()) {
284
+ <div class="ticket-card__qr-fallback">{{ tokenShort() }}</div>
285
+ } @else {
286
+ <div class="ticket-card__qr-loading">
287
+ <ion-spinner name="crescent" aria-label="Generando QR" />
288
+ </div>
295
289
  }
296
- @if (props().showShare) {
297
- <ion-button fill="outline" expand="block" [disabled]="sharing()" (click)="shareCard()">
298
- <ion-icon name="share-outline" slot="start" />
299
- {{ props().shareLabel || t('share') }}
300
- </ion-button>
290
+ </div>
291
+
292
+ <div class="ticket-card__perf" aria-hidden="true">
293
+ <span class="ticket-card__notch ticket-card__notch--left"></span>
294
+ <span class="ticket-card__notch ticket-card__notch--right"></span>
295
+ </div>
296
+
297
+ <div class="ticket-card__stub">
298
+ <div class="ticket-card__meta">
299
+ @if (folioText(); as f) {
300
+ <div class="ticket-card__folio">{{ f }}</div>
301
+ }
302
+ @if (props().buyerName) {
303
+ <div class="ticket-card__buyer">{{ props().buyerName }}</div>
304
+ }
305
+ @if (statusLabel(); as s) {
306
+ <span class="ticket-card__badge" [attr.data-status]="status()">{{ s }}</span>
307
+ }
308
+ </div>
309
+
310
+ @if ((props().showDownload || props().showShare) && qr()) {
311
+ <div class="ticket-card__actions">
312
+ @if (props().showDownload) {
313
+ <ion-button fill="outline" expand="block" [disabled]="downloading()" (click)="downloadCard()">
314
+ <ion-icon name="download-outline" slot="start" />
315
+ {{ props().downloadLabel || t('download') }}
316
+ </ion-button>
317
+ }
318
+ @if (props().showShare) {
319
+ <ion-button fill="outline" expand="block" [disabled]="sharing()" (click)="shareCard()">
320
+ <ion-icon name="share-outline" slot="start" />
321
+ {{ props().shareLabel || t('share') }}
322
+ </ion-button>
323
+ }
324
+ </div>
301
325
  }
302
326
  </div>
303
- }
327
+ </div>
304
328
  </div>
305
- `, styles: ["@charset \"UTF-8\";:host{display:block}.ticket-card{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px;border:1px solid var(--ion-color-light-shade, #e0e0e0);border-radius:16px;background:var(--ion-card-background, #ffffff);max-width:320px;margin:0 auto}.ticket-card__title{font-size:1rem;font-weight:700;color:var(--ion-color-dark);text-align:center}.ticket-card__qr{display:flex;align-items:center;justify-content:center;min-height:200px}.ticket-card__qr-loading{display:flex;align-items:center;justify-content:center;width:200px;height:200px}.ticket-card__qr-fallback{font-family:monospace;font-size:.75rem;color:var(--ion-color-medium);word-break:break-all;text-align:center;padding:16px}.ticket-card__meta{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.ticket-card__folio{font-size:1rem;font-weight:700;color:var(--ion-color-dark)}.ticket-card__buyer{font-size:.875rem;color:var(--ion-color-medium)}.ticket-card__badge{margin-top:4px;font-size:.75rem;font-weight:600;padding:3px 12px;border-radius:999px;background:var(--ion-color-medium);color:var(--ion-color-medium-contrast, #fff);white-space:nowrap}.ticket-card__badge[data-status=sold]{background:var(--ion-color-success, #2dd36f);color:var(--ion-color-success-contrast, #fff)}.ticket-card__badge[data-status=checkedIn]{background:var(--ion-color-medium);color:var(--ion-color-medium-contrast, #fff)}.ticket-card__actions{width:100%;display:flex;flex-direction:column;gap:8px}.ticket-card__actions ion-button{--border-radius: 10px;margin:0}\n"] }]
329
+ `, styles: [":host{display:block}.ticket-card{--ticket-accent: var(--ion-color-primary, #ff00b2);--ticket-accent-2: #7026df;display:flex;flex-direction:column;width:min(100%,380px);margin:0 auto;overflow:hidden;border:1px solid var(--ion-color-light-shade, #d8d8dd);border-radius:22px;background:var(--ion-card-background, #ffffff);box-shadow:0 18px 50px #1f192d1f}.ticket-card__header{padding:22px 22px 20px;text-align:center;color:#fff;background:linear-gradient(135deg,var(--ticket-accent) 0%,var(--ticket-accent-2) 100%)}.ticket-card__eyebrow{margin-bottom:6px;font-size:.6875rem;font-weight:800;letter-spacing:.14em;line-height:1.2;text-transform:uppercase;opacity:.78}.ticket-card__title{font-size:1.25rem;font-weight:800;line-height:1.18}.ticket-card__body{position:relative;display:flex;flex-direction:column;align-items:stretch;background:radial-gradient(circle at 50% 0,rgba(255,0,178,.08),transparent 36%),var(--ion-card-background, #ffffff)}.ticket-card__qr{display:flex;align-items:center;justify-content:center;min-height:232px;padding:22px 22px 18px}.ticket-card__qr val-qr-code{display:block;padding:10px;border:1px solid rgba(31,25,45,.08);border-radius:18px;background:#fff;box-shadow:0 10px 30px #1f192d14}.ticket-card__qr-loading{display:flex;align-items:center;justify-content:center;width:220px;height:220px;border-radius:18px;background:#fff}.ticket-card__qr-fallback{padding:18px;border-radius:14px;background:#6b667514;color:var(--ion-color-medium, #6b6675);font-family:monospace;font-size:.75rem;line-height:1.5;text-align:center;word-break:break-all}.ticket-card__perf{position:relative;margin:0 22px;border-top:2px dashed rgba(107,102,117,.28)}.ticket-card__notch{position:absolute;top:-14px;width:26px;height:26px;border-radius:50%;background:var(--ion-background-color, #f8f8f8);box-shadow:inset 0 0 0 1px #1f192d14}.ticket-card__notch--left{left:-36px}.ticket-card__notch--right{right:-36px}.ticket-card__stub{display:flex;flex-direction:column;gap:18px;padding:18px 22px 22px}.ticket-card__meta{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;text-align:center}.ticket-card__folio{color:var(--ion-color-dark, #2f2b38);font-size:1.45rem;font-weight:850;line-height:1.15}.ticket-card__buyer{max-width:100%;overflow:hidden;color:var(--ion-color-medium, #6b6675);font-size:.9375rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.ticket-card__badge{display:inline-flex;align-items:center;min-height:30px;margin-top:2px;padding:5px 14px;border-radius:999px;background:var(--ion-color-medium, #6b6675);color:var(--ion-color-medium-contrast, #ffffff);font-size:.8125rem;font-weight:800;line-height:1;white-space:nowrap}.ticket-card__badge[data-status=sold]{background:var(--ion-color-success, #16a34a);color:var(--ion-color-success-contrast, #ffffff)}.ticket-card__badge[data-status=checkedIn]{background:var(--ion-color-medium, #6b6675);color:var(--ion-color-medium-contrast, #ffffff)}.ticket-card__actions{display:grid;gap:10px;width:100%}.ticket-card__actions ion-button{min-height:48px;margin:0;font-weight:800;--border-radius: 14px;--border-width: 1.5px}@media (max-width: 420px){.ticket-card{width:100%;border-radius:20px}.ticket-card__qr{min-height:216px;padding-inline:16px}.ticket-card__stub{padding-inline:16px}}\n"] }]
306
330
  }], ctorParameters: () => [] });
307
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90aWNrZXQtY2FyZC90aWNrZXQtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRXpGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXREOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQXVESCxNQUFNLE9BQU8sbUJBQW1CO0lBa0I5QjtRQWpCQSx5Q0FBeUM7UUFDaEMsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXNCLENBQUM7UUFFOUMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FB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O0dBK0NUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkljb24sIElvblNwaW5uZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgZG93bmxvYWRPdXRsaW5lLCBzaGFyZU91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IFFyQ29kZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3FyLWNvZGUvcXItY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXJDb2RlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9hdG9tcy9xci1jb2RlL3R5cGVzJztcbmltcG9ydCB7IFFyR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3FyLWdlbmVyYXRvci9xci1nZW5lcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBRclJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3FyLWdlbmVyYXRvci90eXBlcyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBUaWNrZXRDYXJkSW1hZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdGlja2V0LWNhcmQtaW1hZ2UvdGlja2V0LWNhcmQtaW1hZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBUaWNrZXRDYXJkTWV0YWRhdGEsIFRpY2tldENhcmRTdGF0dXMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFRJQ0tFVF9DQVJEX0kxOE4gfSBmcm9tICcuL3RpY2tldC1jYXJkLmkxOG4nO1xuXG4vKipcbiAqIHZhbC10aWNrZXQtY2FyZFxuICpcbiAqIFRhcmpldGEgcHJlc2VudGFjaW9uYWwgZGUgdW5hIGVudHJhZGEgZGUgYmluZ286IG11ZXN0cmEgZWwgUVIgZXNjYW5lYWJsZVxuICogKGdlbmVyYWRvIGRlbCBgcXJUb2tlbmAgb3BhY28gZmlybWFkbyB2w61hIGBRckdlbmVyYXRvclNlcnZpY2VgKSwgZWwgZm9saW8sIGVsXG4gKiBub21icmUgZGVsIGNvbXByYWRvciAoc2kgaGF5KSB5IHVuIGJhZGdlIGRlIGVzdGFkbyAodmVuZGlkYSAvIGNhbmplYWRhKS5cbiAqXG4gKiBFcyBsYSBwaWV6YSBxdWUgZWwgdmVuZGVkb3IgbGUgZW50cmVnYSBhbCBjb21wcmFkb3IgdHJhcyBsYSB2ZW50YSB5IHF1ZSBsYVxuICogdGFxdWlsbGEgZXNjYW5lYSBwYXJhIGNhbmplYXIuIE9iamVjdC1maXJzdCAoYGlucHV0KClgIHNpZ25hbCksIGkxOG5cbiAqIGF1dG8tcmVnaXN0cmFkbyAobmFtZXNwYWNlIGBUaWNrZXRDYXJkYCkuIEVzdGFkb3MgbmVnYXRpdm9zL25ldXRyb3MgZW4gZ3Jpc1xuICogbXV0ZWQgKGNvbnZlbmNpw7NuIGRlbCBmYWN0b3J5IOKAlCBzaW4gcm9qbyBkZSBhbGFybWEpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8dmFsLXRpY2tldC1jYXJkIFtwcm9wc109XCJ7IHFyVG9rZW46IHRpY2tldC5xclRva2VuLCBmb2xpbzogdGlja2V0LmZvbGlvLFxuICogICBidXllck5hbWU6IHRpY2tldC5jb21wcmFkb3JOb21icmUsIHN0YXR1czogJ3NvbGQnLCBzaG93U2hhcmU6IHRydWUgfVwiIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXRpY2tldC1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQnV0dG9uLCBJb25JY29uLCBJb25TcGlubmVyLCBRckNvZGVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZFwiPlxuICAgICAgQGlmIChwcm9wcygpLnRpdGxlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fdGl0bGVcIj57eyBwcm9wcygpLnRpdGxlIH19PC9kaXY+XG4gICAgICB9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fcXJcIj5cbiAgICAgICAgQGlmIChxcigpOyBhcyBxKSB7XG4gICAgICAgICAgPHZhbC1xci1jb2RlIFtwcm9wc109XCJxclByb3BzKHEpXCIgLz5cbiAgICAgICAgfSBAZWxzZSBpZiAoZmFpbGVkKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX3FyLWZhbGxiYWNrXCI+e3sgdG9rZW5TaG9ydCgpIH19PC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fcXItbG9hZGluZ1wiPlxuICAgICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiIGFyaWEtbGFiZWw9XCJHZW5lcmFuZG8gUVJcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19tZXRhXCI+XG4gICAgICAgIEBpZiAoZm9saW9UZXh0KCk7IGFzIGYpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX2ZvbGlvXCI+e3sgZiB9fTwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAocHJvcHMoKS5idXllck5hbWUpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX2J1eWVyXCI+e3sgcHJvcHMoKS5idXllck5hbWUgfX08L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHN0YXR1c0xhYmVsKCk7IGFzIHMpIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpY2tldC1jYXJkX19iYWRnZVwiIFthdHRyLmRhdGEtc3RhdHVzXT1cInN0YXR1cygpXCI+e3sgcyB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAoKHByb3BzKCkuc2hvd0Rvd25sb2FkIHx8IHByb3BzKCkuc2hvd1NoYXJlKSAmJiBxcigpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fYWN0aW9uc1wiPlxuICAgICAgICAgIEBpZiAocHJvcHMoKS5zaG93RG93bmxvYWQpIHtcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCIgZXhwYW5kPVwiYmxvY2tcIiBbZGlzYWJsZWRdPVwiZG93bmxvYWRpbmcoKVwiIChjbGljayk9XCJkb3dubG9hZENhcmQoKVwiPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImRvd25sb2FkLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiAvPlxuICAgICAgICAgICAgICB7eyBwcm9wcygpLmRvd25sb2FkTGFiZWwgfHwgdCgnZG93bmxvYWQnKSB9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKHByb3BzKCkuc2hvd1NoYXJlKSB7XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwib3V0bGluZVwiIGV4cGFuZD1cImJsb2NrXCIgW2Rpc2FibGVkXT1cInNoYXJpbmcoKVwiIChjbGljayk9XCJzaGFyZUNhcmQoKVwiPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInNoYXJlLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiAvPlxuICAgICAgICAgICAgICB7eyBwcm9wcygpLnNoYXJlTGFiZWwgfHwgdCgnc2hhcmUnKSB9fVxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3RpY2tldC1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRpY2tldENhcmRDb21wb25lbnQge1xuICAvKiogUHJvcHMgb2JqZWN0LWZpcnN0IGRlbCBjb21wb25lbnRlLiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0LnJlcXVpcmVkPFRpY2tldENhcmRNZXRhZGF0YT4oKTtcblxuICBwcml2YXRlIHFyU2VydmljZSA9IGluamVjdChRckdlbmVyYXRvclNlcnZpY2UpO1xuICBwcml2YXRlIHRpY2tldENhcmRJbWFnZVNlcnZpY2UgPSBpbmplY3QoVGlja2V0Q2FyZEltYWdlU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcblxuICAvKiogUVIgZ2VuZXJhZG8gKG51bGwgbWllbnRyYXMgY2FyZ2EgbyBzaSBmYWxsw7MpLiAqL1xuICByZWFkb25seSBxciA9IHNpZ25hbDxRclJlc3VsdCB8IG51bGw+KG51bGwpO1xuICAvKiogRmFsbMOzIGxhIGdlbmVyYWNpw7NuIGRlbCBRUiDihpIgZmFsbGJhY2sgYWwgdG9rZW4gY29ydG8uICovXG4gIHJlYWRvbmx5IGZhaWxlZCA9IHNpZ25hbChmYWxzZSk7XG4gIC8qKiBUcnVlIG1pZW50cmFzIHNlIGdlbmVyYSB5IGNvbXBhcnRlIGxhIHRhcmpldGEgYnJhbmRlZC4gKi9cbiAgcmVhZG9ubHkgc2hhcmluZyA9IHNpZ25hbChmYWxzZSk7XG4gIC8qKiBUcnVlIG1pZW50cmFzIHNlIGdlbmVyYSB5IGRlc2NhcmdhIGxhIHRhcmpldGEgYnJhbmRlZC4gKi9cbiAgcmVhZG9ubHkgZG93bmxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGFkZEljb25zKHsgc2hhcmVPdXRsaW5lLCBkb3dubG9hZE91dGxpbmUgfSk7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoJ1RpY2tldENhcmQnLCBUSUNLRVRfQ0FSRF9JMThOKTtcblxuICAgIC8vIFJlZ2VuZXJhIGVsIFFSIGN1YW5kbyBjYW1iaWEgZWwgdG9rZW4gbyBlbCB0YW1hw7FvLlxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLnByb3BzKCkucXJUb2tlbjtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMucHJvcHMoKS5xclNpemUgPz8gMjAwO1xuICAgICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgICAgdGhpcy5xci5zZXQobnVsbCk7XG4gICAgICAgICAgdGhpcy5mYWlsZWQuc2V0KGZhbHNlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdm9pZCB0aGlzLmdlbmVyYXRlKHRva2VuLCBzaXplKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZW5lcmF0ZShkYXRhOiBzdHJpbmcsIHNpemU6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZmFpbGVkLnNldChmYWxzZSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucXJTZXJ2aWNlLmdlbmVyYXRlKHtcbiAgICAgICAgZGF0YSxcbiAgICAgICAgd2lkdGg6IHNpemUsXG4gICAgICAgIGhlaWdodDogc2l6ZSxcbiAgICAgICAgbWFyZ2luOiAxLFxuICAgICAgICBkb3RzU3R5bGU6ICdzcXVhcmUnLFxuICAgICAgICBkb3RzQ29sb3I6ICcjMDAwMDAwJyxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2ZmZmZmZicsXG4gICAgICAgIGVycm9yQ29ycmVjdGlvbkxldmVsOiAnTScsXG4gICAgICAgIGZvcm1hdDogJ3BuZycsXG4gICAgICB9KTtcbiAgICAgIHRoaXMucXIuc2V0KHJlc3VsdCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBTaW4gdG9hc3QvdGhyb3cg4oCUIGVsIGZhbGxiYWNrIG11ZXN0cmEgZWwgdG9rZW4gY29ydG8uIEVsIGNvbnN1bWVyXG4gICAgICAvLyBzaWd1ZSBwdWRpZW5kbyBjYW5qZWFyIHRpcGVhbmRvL2VzY2FuZWFuZG8gc2kgaGFjZSBmYWx0YS5cbiAgICAgIHRoaXMucXIuc2V0KG51bGwpO1xuICAgICAgdGhpcy5mYWlsZWQuc2V0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksICdUaWNrZXRDYXJkJyk7XG4gIH1cblxuICByZWFkb25seSBzdGF0dXMgPSBjb21wdXRlZDxUaWNrZXRDYXJkU3RhdHVzPigoKSA9PiB0aGlzLnByb3BzKCkuc3RhdHVzID8/ICduZXV0cmFsJyk7XG5cbiAgcmVhZG9ubHkgdG9rZW5TaG9ydCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB0ayA9IHRoaXMucHJvcHMoKS5xclRva2VuID8/ICcnO1xuICAgIHJldHVybiB0ay5sZW5ndGggPiAxNiA/IGAke3RrLnNsaWNlKDAsIDE2KX3igKZgIDogdGs7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGZvbGlvVGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIGNvbnN0IGZvbGlvID0gdGhpcy5wcm9wcygpLmZvbGlvO1xuICAgIGlmIChmb2xpbyA9PT0gdW5kZWZpbmVkIHx8IGZvbGlvID09PSBudWxsIHx8IGZvbGlvID09PSAnJykgcmV0dXJuICcnO1xuICAgIGNvbnN0IGxhYmVsID0gdGhpcy5wcm9wcygpLmZvbGlvTGFiZWwgPz8gdGhpcy50KCdmb2xpbycpO1xuICAgIHJldHVybiBgJHtsYWJlbH0gIyR7Zm9saW99YDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc3RhdHVzTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnN0YXR1cygpO1xuICAgIGlmIChzdGF0dXMgPT09ICdzb2xkJykge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMoKS5zdGF0dXNTb2xkTGFiZWwgPz8gdGhpcy50KCdzdGF0dXNTb2xkJyk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09ICdjaGVja2VkSW4nKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcygpLnN0YXR1c0NoZWNrZWRJbkxhYmVsID8/IHRoaXMudCgnc3RhdHVzQ2hlY2tlZEluJyk7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfSk7XG5cbiAgYXN5bmMgc2hhcmVDYXJkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHEgPSB0aGlzLnFyKCk7XG4gICAgaWYgKCFxKSByZXR1cm47XG4gICAgY29uc3QgcCA9IHRoaXMucHJvcHMoKTtcbiAgICB0aGlzLnNoYXJpbmcuc2V0KHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb25maWcgPSB0aGlzLmJ1aWxkSW1hZ2VDb25maWcocSwgcCk7XG4gICAgICBjb25zdCBzaGFyZWQgPSBhd2FpdCB0aGlzLnRpY2tldENhcmRJbWFnZVNlcnZpY2Uuc2hhcmUoY29uZmlnLCBwLnRpdGxlIHx8IHAuc2hhcmVCcmFuZE5hbWUpO1xuICAgICAgaWYgKCFzaGFyZWQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5jb3B5VG9DbGlwYm9hcmQoY29uZmlnLCBwKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5zaGFyaW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZG93bmxvYWRDYXJkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHEgPSB0aGlzLnFyKCk7XG4gICAgaWYgKCFxKSByZXR1cm47XG4gICAgY29uc3QgcCA9IHRoaXMucHJvcHMoKTtcbiAgICB0aGlzLmRvd25sb2FkaW5nLnNldCh0cnVlKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy50cmlnZ2VyRG93bmxvYWQodGhpcy5idWlsZEltYWdlQ29uZmlnKHEsIHApLCBwKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5kb3dubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRJbWFnZUNvbmZpZyhxOiBRclJlc3VsdCwgcDogVGlja2V0Q2FyZE1ldGFkYXRhKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHFyRGF0YVVybDogcS5kYXRhVXJsLFxuICAgICAgbG9nb1VybDogcC5zaGFyZUxvZ29VcmwsXG4gICAgICBicmFuZENvbG9yOiBwLnNoYXJlQnJhbmRDb2xvcixcbiAgICAgIGJyYW5kQ29sb3JUbzogcC5zaGFyZUJyYW5kQ29sb3JUbyxcbiAgICAgIGJyYW5kTmFtZTogcC5zaGFyZUJyYW5kTmFtZSxcbiAgICAgIGZvbGlvOiBwLmZvbGlvLFxuICAgICAgZm9saW9MYWJlbDogcC5zaGFyZUZvbGlvTGFiZWwsXG4gICAgICBidXllck5hbWU6IHAuYnV5ZXJOYW1lLFxuICAgICAgZXZlbnREYXRlOiBwLnNoYXJlRXZlbnREYXRlLFxuICAgICAgZXZlbnRMb2NhdGlvbjogcC5zaGFyZUV2ZW50TG9jYXRpb24sXG4gICAgICBzY2FuSGludDogcC5zaGFyZVNjYW5IaW50LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNvcHlUb0NsaXBib2FyZChcbiAgICBjb25maWc6IFBhcmFtZXRlcnM8dHlwZW9mIHRoaXMudGlja2V0Q2FyZEltYWdlU2VydmljZS5nZW5lcmF0ZT5bMF0sXG4gICAgcDogVGlja2V0Q2FyZE1ldGFkYXRhXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIEludGVudGEgY29waWFyIGxhIGltYWdlbiBicmFuZGVkIGFsIGNsaXBib2FyZCAoQ2hyb21lL0VkZ2UvU2FmYXJpIGRlc2t0b3ApLlxuICAgIGlmICh0eXBlb2YgQ2xpcGJvYXJkSXRlbSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCB0aGlzLnRpY2tldENhcmRJbWFnZVNlcnZpY2UuZ2VuZXJhdGUoY29uZmlnKTtcbiAgICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZShbbmV3IENsaXBib2FyZEl0ZW0oeyAnaW1hZ2UvcG5nJzogYmxvYiB9KV0pO1xuICAgICAgICB0aGlzLnRvYXN0LnNob3coeyBtZXNzYWdlOiB0aGlzLnQoJ2NvcGllZCcpLCBkdXJhdGlvbjogMjAwMCB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIENsaXBib2FyZEl0ZW0gbm8gc29wb3J0YWRvIG8gcGVybWlzbyBkZW5lZ2FkbyDihpIgY2FlciBhIHRleHRvXG4gICAgICB9XG4gICAgfVxuICAgIC8vIEZhbGxiYWNrOiBjb3BpYSBVUkwgbyB0ZXh0byBmb2xpb1xuICAgIGNvbnN0IHRleHQgPSAoKHAuc2hhcmVVcmwgPz8gdGhpcy5mb2xpb1RleHQoKSkgfHwgcC5zaGFyZUJyYW5kTmFtZSkgPz8gJyc7XG4gICAgaWYgKCF0ZXh0KSByZXR1cm47XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpO1xuICAgICAgdGhpcy50b2FzdC5zaG93KHsgbWVzc2FnZTogdGhpcy50KHAuc2hhcmVVcmwgPyAnY29waWVkVXJsJyA6ICdjb3BpZWQnKSwgZHVyYXRpb246IDIwMDAgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBjbGlwYm9hcmQgbm8gZGlzcG9uaWJsZSDigJQgc2lsZW5jaW9zb1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJpZ2dlckRvd25sb2FkKFxuICAgIGNvbmZpZzogUGFyYW1ldGVyczx0eXBlb2YgdGhpcy50aWNrZXRDYXJkSW1hZ2VTZXJ2aWNlLmdlbmVyYXRlPlswXSxcbiAgICBwOiBUaWNrZXRDYXJkTWV0YWRhdGFcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYmxvYiA9IGF3YWl0IHRoaXMudGlja2V0Q2FyZEltYWdlU2VydmljZS5nZW5lcmF0ZShjb25maWcpO1xuICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBhLmhyZWYgPSB1cmw7XG4gICAgYS5kb3dubG9hZCA9IGBlbnRyYWRhLSR7cC5mb2xpbyA/PyAnYmluZ28nfS5wbmdgO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gICAgYS5jbGljaygpO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XG4gICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICB9XG5cbiAgcXJQcm9wcyhxOiBRclJlc3VsdCk6IFFyQ29kZU1ldGFkYXRhIHtcbiAgICBjb25zdCBwID0gdGhpcy5wcm9wcygpO1xuICAgIHJldHVybiB7XG4gICAgICBxcjogcSxcbiAgICAgIGRpc3BsYXlTaXplOiBwLnFyU2l6ZSA/PyAyMDAsXG4gICAgICBzaG93RG93bmxvYWQ6IGZhbHNlLFxuICAgICAgc2hvd1NoYXJlOiBmYWxzZSxcbiAgICAgIHNob3dCb3JkZXI6IGZhbHNlLFxuICAgICAgYWx0OiB0aGlzLmZvbGlvVGV4dCgpIHx8ICdRUicsXG4gICAgICBkb3dubG9hZExhYmVsOiBwLmRvd25sb2FkTGFiZWwgPz8gdGhpcy50KCdkb3dubG9hZCcpLFxuICAgICAgc2hhcmVMYWJlbDogdGhpcy50KCdzaGFyZScpLFxuICAgICAgc2hhcmVUaXRsZTogcC50aXRsZSB8fCB0aGlzLmZvbGlvVGV4dCgpIHx8ICdRUicsXG4gICAgfTtcbiAgfVxufVxuIl19
331
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90aWNrZXQtY2FyZC90aWNrZXQtY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRXpGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXREOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQW1FSCxNQUFNLE9BQU8sbUJBQW1CO0lBa0I5QjtRQWpCQSx5Q0FBeUM7UUFDaEMsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXNCLENBQUM7UUFFOUMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkRUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkljb24sIElvblNwaW5uZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgZG93bmxvYWRPdXRsaW5lLCBzaGFyZU91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IFFyQ29kZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3FyLWNvZGUvcXItY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXJDb2RlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9hdG9tcy9xci1jb2RlL3R5cGVzJztcbmltcG9ydCB7IFFyR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3FyLWdlbmVyYXRvci9xci1nZW5lcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBRclJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3FyLWdlbmVyYXRvci90eXBlcyc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBUaWNrZXRDYXJkSW1hZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdGlja2V0LWNhcmQtaW1hZ2UvdGlja2V0LWNhcmQtaW1hZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBUaWNrZXRDYXJkTWV0YWRhdGEsIFRpY2tldENhcmRTdGF0dXMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFRJQ0tFVF9DQVJEX0kxOE4gfSBmcm9tICcuL3RpY2tldC1jYXJkLmkxOG4nO1xuXG4vKipcbiAqIHZhbC10aWNrZXQtY2FyZFxuICpcbiAqIFRhcmpldGEgcHJlc2VudGFjaW9uYWwgZGUgdW5hIGVudHJhZGEgZGUgYmluZ286IG11ZXN0cmEgZWwgUVIgZXNjYW5lYWJsZVxuICogKGdlbmVyYWRvIGRlbCBgcXJUb2tlbmAgb3BhY28gZmlybWFkbyB2w61hIGBRckdlbmVyYXRvclNlcnZpY2VgKSwgZWwgZm9saW8sIGVsXG4gKiBub21icmUgZGVsIGNvbXByYWRvciAoc2kgaGF5KSB5IHVuIGJhZGdlIGRlIGVzdGFkbyAodmVuZGlkYSAvIGNhbmplYWRhKS5cbiAqXG4gKiBFcyBsYSBwaWV6YSBxdWUgZWwgdmVuZGVkb3IgbGUgZW50cmVnYSBhbCBjb21wcmFkb3IgdHJhcyBsYSB2ZW50YSB5IHF1ZSBsYVxuICogdGFxdWlsbGEgZXNjYW5lYSBwYXJhIGNhbmplYXIuIE9iamVjdC1maXJzdCAoYGlucHV0KClgIHNpZ25hbCksIGkxOG5cbiAqIGF1dG8tcmVnaXN0cmFkbyAobmFtZXNwYWNlIGBUaWNrZXRDYXJkYCkuIEVzdGFkb3MgbmVnYXRpdm9zL25ldXRyb3MgZW4gZ3Jpc1xuICogbXV0ZWQgKGNvbnZlbmNpw7NuIGRlbCBmYWN0b3J5IOKAlCBzaW4gcm9qbyBkZSBhbGFybWEpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8dmFsLXRpY2tldC1jYXJkIFtwcm9wc109XCJ7IHFyVG9rZW46IHRpY2tldC5xclRva2VuLCBmb2xpbzogdGlja2V0LmZvbGlvLFxuICogICBidXllck5hbWU6IHRpY2tldC5jb21wcmFkb3JOb21icmUsIHN0YXR1czogJ3NvbGQnLCBzaG93U2hhcmU6IHRydWUgfVwiIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXRpY2tldC1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQnV0dG9uLCBJb25JY29uLCBJb25TcGlubmVyLCBRckNvZGVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19leWVicm93XCI+e3sgdCgnY2FyZExhYmVsJykgfX08L2Rpdj5cbiAgICAgICAgQGlmIChwcm9wcygpLnRpdGxlKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX190aXRsZVwiPnt7IHByb3BzKCkudGl0bGUgfX08L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fYm9keVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX3FyXCI+XG4gICAgICAgICAgQGlmIChxcigpOyBhcyBxKSB7XG4gICAgICAgICAgICA8dmFsLXFyLWNvZGUgW3Byb3BzXT1cInFyUHJvcHMocSlcIiAvPlxuICAgICAgICAgIH0gQGVsc2UgaWYgKGZhaWxlZCgpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX3FyLWZhbGxiYWNrXCI+e3sgdG9rZW5TaG9ydCgpIH19PC9kaXY+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX3FyLWxvYWRpbmdcIj5cbiAgICAgICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiIGFyaWEtbGFiZWw9XCJHZW5lcmFuZG8gUVJcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidGlja2V0LWNhcmRfX3BlcmZcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpY2tldC1jYXJkX19ub3RjaCB0aWNrZXQtY2FyZF9fbm90Y2gtLWxlZnRcIj48L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aWNrZXQtY2FyZF9fbm90Y2ggdGlja2V0LWNhcmRfX25vdGNoLS1yaWdodFwiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19zdHViXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpY2tldC1jYXJkX19tZXRhXCI+XG4gICAgICAgICAgICBAaWYgKGZvbGlvVGV4dCgpOyBhcyBmKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fZm9saW9cIj57eyBmIH19PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHByb3BzKCkuYnV5ZXJOYW1lKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fYnV5ZXJcIj57eyBwcm9wcygpLmJ1eWVyTmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChzdGF0dXNMYWJlbCgpOyBhcyBzKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGlja2V0LWNhcmRfX2JhZGdlXCIgW2F0dHIuZGF0YS1zdGF0dXNdPVwic3RhdHVzKClcIj57eyBzIH19PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgQGlmICgocHJvcHMoKS5zaG93RG93bmxvYWQgfHwgcHJvcHMoKS5zaG93U2hhcmUpICYmIHFyKCkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aWNrZXQtY2FyZF9fYWN0aW9uc1wiPlxuICAgICAgICAgICAgICBAaWYgKHByb3BzKCkuc2hvd0Rvd25sb2FkKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cIm91dGxpbmVcIiBleHBhbmQ9XCJibG9ja1wiIFtkaXNhYmxlZF09XCJkb3dubG9hZGluZygpXCIgKGNsaWNrKT1cImRvd25sb2FkQ2FyZCgpXCI+XG4gICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImRvd25sb2FkLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiAvPlxuICAgICAgICAgICAgICAgICAge3sgcHJvcHMoKS5kb3dubG9hZExhYmVsIHx8IHQoJ2Rvd25sb2FkJykgfX1cbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChwcm9wcygpLnNob3dTaGFyZSkge1xuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJvdXRsaW5lXCIgZXhwYW5kPVwiYmxvY2tcIiBbZGlzYWJsZWRdPVwic2hhcmluZygpXCIgKGNsaWNrKT1cInNoYXJlQ2FyZCgpXCI+XG4gICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInNoYXJlLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiAvPlxuICAgICAgICAgICAgICAgICAge3sgcHJvcHMoKS5zaGFyZUxhYmVsIHx8IHQoJ3NoYXJlJykgfX1cbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vdGlja2V0LWNhcmQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGlja2V0Q2FyZENvbXBvbmVudCB7XG4gIC8qKiBQcm9wcyBvYmplY3QtZmlyc3QgZGVsIGNvbXBvbmVudGUuICovXG4gIHJlYWRvbmx5IHByb3BzID0gaW5wdXQucmVxdWlyZWQ8VGlja2V0Q2FyZE1ldGFkYXRhPigpO1xuXG4gIHByaXZhdGUgcXJTZXJ2aWNlID0gaW5qZWN0KFFyR2VuZXJhdG9yU2VydmljZSk7XG4gIHByaXZhdGUgdGlja2V0Q2FyZEltYWdlU2VydmljZSA9IGluamVjdChUaWNrZXRDYXJkSW1hZ2VTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0b2FzdCA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuXG4gIC8qKiBRUiBnZW5lcmFkbyAobnVsbCBtaWVudHJhcyBjYXJnYSBvIHNpIGZhbGzDsykuICovXG4gIHJlYWRvbmx5IHFyID0gc2lnbmFsPFFyUmVzdWx0IHwgbnVsbD4obnVsbCk7XG4gIC8qKiBGYWxsw7MgbGEgZ2VuZXJhY2nDs24gZGVsIFFSIOKGkiBmYWxsYmFjayBhbCB0b2tlbiBjb3J0by4gKi9cbiAgcmVhZG9ubHkgZmFpbGVkID0gc2lnbmFsKGZhbHNlKTtcbiAgLyoqIFRydWUgbWllbnRyYXMgc2UgZ2VuZXJhIHkgY29tcGFydGUgbGEgdGFyamV0YSBicmFuZGVkLiAqL1xuICByZWFkb25seSBzaGFyaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgLyoqIFRydWUgbWllbnRyYXMgc2UgZ2VuZXJhIHkgZGVzY2FyZ2EgbGEgdGFyamV0YSBicmFuZGVkLiAqL1xuICByZWFkb25seSBkb3dubG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgYWRkSWNvbnMoeyBzaGFyZU91dGxpbmUsIGRvd25sb2FkT3V0bGluZSB9KTtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cygnVGlja2V0Q2FyZCcsIFRJQ0tFVF9DQVJEX0kxOE4pO1xuXG4gICAgLy8gUmVnZW5lcmEgZWwgUVIgY3VhbmRvIGNhbWJpYSBlbCB0b2tlbiBvIGVsIHRhbWHDsW8uXG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMucHJvcHMoKS5xclRva2VuO1xuICAgICAgICBjb25zdCBzaXplID0gdGhpcy5wcm9wcygpLnFyU2l6ZSA/PyAyMDA7XG4gICAgICAgIGlmICghdG9rZW4pIHtcbiAgICAgICAgICB0aGlzLnFyLnNldChudWxsKTtcbiAgICAgICAgICB0aGlzLmZhaWxlZC5zZXQoZmFsc2UpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2b2lkIHRoaXMuZ2VuZXJhdGUodG9rZW4sIHNpemUpO1xuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdlbmVyYXRlKGRhdGE6IHN0cmluZywgc2l6ZTogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5mYWlsZWQuc2V0KGZhbHNlKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5xclNlcnZpY2UuZ2VuZXJhdGUoe1xuICAgICAgICBkYXRhLFxuICAgICAgICB3aWR0aDogc2l6ZSxcbiAgICAgICAgaGVpZ2h0OiBzaXplLFxuICAgICAgICBtYXJnaW46IDEsXG4gICAgICAgIGRvdHNTdHlsZTogJ3NxdWFyZScsXG4gICAgICAgIGRvdHNDb2xvcjogJyMwMDAwMDAnLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmZmZmJyxcbiAgICAgICAgZXJyb3JDb3JyZWN0aW9uTGV2ZWw6ICdNJyxcbiAgICAgICAgZm9ybWF0OiAncG5nJyxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5xci5zZXQocmVzdWx0KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIFNpbiB0b2FzdC90aHJvdyDigJQgZWwgZmFsbGJhY2sgbXVlc3RyYSBlbCB0b2tlbiBjb3J0by4gRWwgY29uc3VtZXJcbiAgICAgIC8vIHNpZ3VlIHB1ZGllbmRvIGNhbmplYXIgdGlwZWFuZG8vZXNjYW5lYW5kbyBzaSBoYWNlIGZhbHRhLlxuICAgICAgdGhpcy5xci5zZXQobnVsbCk7XG4gICAgICB0aGlzLmZhaWxlZC5zZXQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgJ1RpY2tldENhcmQnKTtcbiAgfVxuXG4gIHJlYWRvbmx5IHN0YXR1cyA9IGNvbXB1dGVkPFRpY2tldENhcmRTdGF0dXM+KCgpID0+IHRoaXMucHJvcHMoKS5zdGF0dXMgPz8gJ25ldXRyYWwnKTtcblxuICByZWFkb25seSB0b2tlblNob3J0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHRrID0gdGhpcy5wcm9wcygpLnFyVG9rZW4gPz8gJyc7XG4gICAgcmV0dXJuIHRrLmxlbmd0aCA+IDE2ID8gYCR7dGsuc2xpY2UoMCwgMTYpfeKApmAgOiB0aztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgZm9saW9UZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3QgZm9saW8gPSB0aGlzLnByb3BzKCkuZm9saW87XG4gICAgaWYgKGZvbGlvID09PSB1bmRlZmluZWQgfHwgZm9saW8gPT09IG51bGwgfHwgZm9saW8gPT09ICcnKSByZXR1cm4gJyc7XG4gICAgY29uc3QgbGFiZWwgPSB0aGlzLnByb3BzKCkuZm9saW9MYWJlbCA/PyB0aGlzLnQoJ2ZvbGlvJyk7XG4gICAgcmV0dXJuIGAke2xhYmVsfSAjJHtmb2xpb31gO1xuICB9KTtcblxuICByZWFkb25seSBzdGF0dXNMYWJlbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMuc3RhdHVzKCk7XG4gICAgaWYgKHN0YXR1cyA9PT0gJ3NvbGQnKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcygpLnN0YXR1c1NvbGRMYWJlbCA/PyB0aGlzLnQoJ3N0YXR1c1NvbGQnKTtcbiAgICB9XG4gICAgaWYgKHN0YXR1cyA9PT0gJ2NoZWNrZWRJbicpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzKCkuc3RhdHVzQ2hlY2tlZEluTGFiZWwgPz8gdGhpcy50KCdzdGF0dXNDaGVja2VkSW4nKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9KTtcblxuICBhc3luYyBzaGFyZUNhcmQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcSA9IHRoaXMucXIoKTtcbiAgICBpZiAoIXEpIHJldHVybjtcbiAgICBjb25zdCBwID0gdGhpcy5wcm9wcygpO1xuICAgIHRoaXMuc2hhcmluZy5zZXQodHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuYnVpbGRJbWFnZUNvbmZpZyhxLCBwKTtcbiAgICAgIGNvbnN0IHNoYXJlZCA9IGF3YWl0IHRoaXMudGlja2V0Q2FyZEltYWdlU2VydmljZS5zaGFyZShjb25maWcsIHAudGl0bGUgfHwgcC5zaGFyZUJyYW5kTmFtZSk7XG4gICAgICBpZiAoIXNoYXJlZCkge1xuICAgICAgICBhd2FpdCB0aGlzLmNvcHlUb0NsaXBib2FyZChjb25maWcsIHApO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLnNoYXJpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkb3dubG9hZENhcmQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcSA9IHRoaXMucXIoKTtcbiAgICBpZiAoIXEpIHJldHVybjtcbiAgICBjb25zdCBwID0gdGhpcy5wcm9wcygpO1xuICAgIHRoaXMuZG93bmxvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnRyaWdnZXJEb3dubG9hZCh0aGlzLmJ1aWxkSW1hZ2VDb25maWcocSwgcCksIHApO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmRvd25sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEltYWdlQ29uZmlnKHE6IFFyUmVzdWx0LCBwOiBUaWNrZXRDYXJkTWV0YWRhdGEpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcXJEYXRhVXJsOiBxLmRhdGFVcmwsXG4gICAgICBsb2dvVXJsOiBwLnNoYXJlTG9nb1VybCxcbiAgICAgIGJyYW5kQ29sb3I6IHAuc2hhcmVCcmFuZENvbG9yLFxuICAgICAgYnJhbmRDb2xvclRvOiBwLnNoYXJlQnJhbmRDb2xvclRvLFxuICAgICAgYnJhbmROYW1lOiBwLnNoYXJlQnJhbmROYW1lLFxuICAgICAgZm9saW86IHAuZm9saW8sXG4gICAgICBmb2xpb0xhYmVsOiBwLnNoYXJlRm9saW9MYWJlbCxcbiAgICAgIGJ1eWVyTmFtZTogcC5idXllck5hbWUsXG4gICAgICBldmVudERhdGU6IHAuc2hhcmVFdmVudERhdGUsXG4gICAgICBldmVudExvY2F0aW9uOiBwLnNoYXJlRXZlbnRMb2NhdGlvbixcbiAgICAgIHNjYW5IaW50OiBwLnNoYXJlU2NhbkhpbnQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY29weVRvQ2xpcGJvYXJkKFxuICAgIGNvbmZpZzogUGFyYW1ldGVyczx0eXBlb2YgdGhpcy50aWNrZXRDYXJkSW1hZ2VTZXJ2aWNlLmdlbmVyYXRlPlswXSxcbiAgICBwOiBUaWNrZXRDYXJkTWV0YWRhdGFcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gSW50ZW50YSBjb3BpYXIgbGEgaW1hZ2VuIGJyYW5kZWQgYWwgY2xpcGJvYXJkIChDaHJvbWUvRWRnZS9TYWZhcmkgZGVza3RvcCkuXG4gICAgaWYgKHR5cGVvZiBDbGlwYm9hcmRJdGVtICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IHRoaXMudGlja2V0Q2FyZEltYWdlU2VydmljZS5nZW5lcmF0ZShjb25maWcpO1xuICAgICAgICBhd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlKFtuZXcgQ2xpcGJvYXJkSXRlbSh7ICdpbWFnZS9wbmcnOiBibG9iIH0pXSk7XG4gICAgICAgIHRoaXMudG9hc3Quc2hvdyh7IG1lc3NhZ2U6IHRoaXMudCgnY29waWVkJyksIGR1cmF0aW9uOiAyMDAwIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gQ2xpcGJvYXJkSXRlbSBubyBzb3BvcnRhZG8gbyBwZXJtaXNvIGRlbmVnYWRvIOKGkiBjYWVyIGEgdGV4dG9cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gRmFsbGJhY2s6IGNvcGlhIFVSTCBvIHRleHRvIGZvbGlvXG4gICAgY29uc3QgdGV4dCA9ICgocC5zaGFyZVVybCA/PyB0aGlzLmZvbGlvVGV4dCgpKSB8fCBwLnNoYXJlQnJhbmROYW1lKSA/PyAnJztcbiAgICBpZiAoIXRleHQpIHJldHVybjtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dCk7XG4gICAgICB0aGlzLnRvYXN0LnNob3coeyBtZXNzYWdlOiB0aGlzLnQocC5zaGFyZVVybCA/ICdjb3BpZWRVcmwnIDogJ2NvcGllZCcpLCBkdXJhdGlvbjogMjAwMCB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGNsaXBib2FyZCBubyBkaXNwb25pYmxlIOKAlCBzaWxlbmNpb3NvXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB0cmlnZ2VyRG93bmxvYWQoXG4gICAgY29uZmlnOiBQYXJhbWV0ZXJzPHR5cGVvZiB0aGlzLnRpY2tldENhcmRJbWFnZVNlcnZpY2UuZ2VuZXJhdGU+WzBdLFxuICAgIHA6IFRpY2tldENhcmRNZXRhZGF0YVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBibG9iID0gYXdhaXQgdGhpcy50aWNrZXRDYXJkSW1hZ2VTZXJ2aWNlLmdlbmVyYXRlKGNvbmZpZyk7XG4gICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGEuaHJlZiA9IHVybDtcbiAgICBhLmRvd25sb2FkID0gYGNhcnRvbi0ke3AuZm9saW8gPz8gJ2JpbmdvJ30ucG5nYDtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuICAgIGEuY2xpY2soKTtcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpO1xuICAgIFVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbiAgfVxuXG4gIHFyUHJvcHMocTogUXJSZXN1bHQpOiBRckNvZGVNZXRhZGF0YSB7XG4gICAgY29uc3QgcCA9IHRoaXMucHJvcHMoKTtcbiAgICByZXR1cm4ge1xuICAgICAgcXI6IHEsXG4gICAgICBkaXNwbGF5U2l6ZTogcC5xclNpemUgPz8gMjAwLFxuICAgICAgc2hvd0Rvd25sb2FkOiBmYWxzZSxcbiAgICAgIHNob3dTaGFyZTogZmFsc2UsXG4gICAgICBzaG93Qm9yZGVyOiBmYWxzZSxcbiAgICAgIGFsdDogdGhpcy5mb2xpb1RleHQoKSB8fCAnUVInLFxuICAgICAgZG93bmxvYWRMYWJlbDogcC5kb3dubG9hZExhYmVsID8/IHRoaXMudCgnZG93bmxvYWQnKSxcbiAgICAgIHNoYXJlTGFiZWw6IHRoaXMudCgnc2hhcmUnKSxcbiAgICAgIHNoYXJlVGl0bGU6IHAudGl0bGUgfHwgdGhpcy5mb2xpb1RleHQoKSB8fCAnUVInLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -6,6 +6,7 @@
6
6
  */
7
7
  export const TICKET_CARD_I18N = {
8
8
  es: {
9
+ cardLabel: 'Cartón de bingo',
9
10
  folio: 'Folio',
10
11
  statusSold: 'Vendida',
11
12
  statusCheckedIn: 'Canjeada',
@@ -15,6 +16,7 @@ export const TICKET_CARD_I18N = {
15
16
  copiedUrl: 'Link copiado',
16
17
  },
17
18
  en: {
19
+ cardLabel: 'Bingo card',
18
20
  folio: 'Folio',
19
21
  statusSold: 'Sold',
20
22
  statusCheckedIn: 'Checked in',
@@ -24,4 +26,4 @@ export const TICKET_CARD_I18N = {
24
26
  copiedUrl: 'Link copied',
25
27
  },
26
28
  };
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWNhcmQuaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGlja2V0LWNhcmQvdGlja2V0LWNhcmQuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLEVBQUUsRUFBRTtRQUNGLEtBQUssRUFBRSxPQUFPO1FBQ2QsVUFBVSxFQUFFLFNBQVM7UUFDckIsZUFBZSxFQUFFLFVBQVU7UUFDM0IsUUFBUSxFQUFFLFdBQVc7UUFDckIsS0FBSyxFQUFFLFdBQVc7UUFDbEIsTUFBTSxFQUFFLFNBQVM7UUFDakIsU0FBUyxFQUFFLGNBQWM7S0FDMUI7SUFDRCxFQUFFLEVBQUU7UUFDRixLQUFLLEVBQUUsT0FBTztRQUNkLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLGVBQWUsRUFBRSxZQUFZO1FBQzdCLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLEtBQUssRUFBRSxPQUFPO1FBQ2QsTUFBTSxFQUFFLFFBQVE7UUFDaEIsU0FBUyxFQUFFLGFBQWE7S0FDekI7Q0FDTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWZhdWx0cyBpMThuIChlcy9lbikgZGVsIGB2YWwtdGlja2V0LWNhcmRgLiBBdXRvLXJlZ2lzdHJhZG9zIGVuIGVsXG4gKiBjb25zdHJ1Y3RvciBkZWwgY29tcG9uZW50ZSAobmFtZXNwYWNlIGBUaWNrZXRDYXJkYCkg4oCUIGVsIGNvbnN1bWVyIE5VTkNBIHRpZW5lXG4gKiBxdWUgcmVnaXN0cmFybG9zLiBPdmVycmlkZSBwYXNhbmRvIGxvcyBsYWJlbHMgcG9yIHByb3BzIG8gcmVnaXN0cmFuZG8gZWxcbiAqIG5hbWVzcGFjZSBhbnRlcyBkZSBtb250YXIgZWwgY29tcG9uZW50ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFRJQ0tFVF9DQVJEX0kxOE4gPSB7XG4gIGVzOiB7XG4gICAgZm9saW86ICdGb2xpbycsXG4gICAgc3RhdHVzU29sZDogJ1ZlbmRpZGEnLFxuICAgIHN0YXR1c0NoZWNrZWRJbjogJ0NhbmplYWRhJyxcbiAgICBkb3dubG9hZDogJ0Rlc2NhcmdhcicsXG4gICAgc2hhcmU6ICdDb21wYXJ0aXInLFxuICAgIGNvcGllZDogJ0NvcGlhZG8nLFxuICAgIGNvcGllZFVybDogJ0xpbmsgY29waWFkbycsXG4gIH0sXG4gIGVuOiB7XG4gICAgZm9saW86ICdGb2xpbycsXG4gICAgc3RhdHVzU29sZDogJ1NvbGQnLFxuICAgIHN0YXR1c0NoZWNrZWRJbjogJ0NoZWNrZWQgaW4nLFxuICAgIGRvd25sb2FkOiAnRG93bmxvYWQnLFxuICAgIHNoYXJlOiAnU2hhcmUnLFxuICAgIGNvcGllZDogJ0NvcGllZCcsXG4gICAgY29waWVkVXJsOiAnTGluayBjb3BpZWQnLFxuICB9LFxufSBhcyBjb25zdDtcbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWNhcmQuaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGlja2V0LWNhcmQvdGlja2V0LWNhcmQuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLEVBQUUsRUFBRTtRQUNGLFNBQVMsRUFBRSxpQkFBaUI7UUFDNUIsS0FBSyxFQUFFLE9BQU87UUFDZCxVQUFVLEVBQUUsU0FBUztRQUNyQixlQUFlLEVBQUUsVUFBVTtRQUMzQixRQUFRLEVBQUUsV0FBVztRQUNyQixLQUFLLEVBQUUsV0FBVztRQUNsQixNQUFNLEVBQUUsU0FBUztRQUNqQixTQUFTLEVBQUUsY0FBYztLQUMxQjtJQUNELEVBQUUsRUFBRTtRQUNGLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLEtBQUssRUFBRSxPQUFPO1FBQ2QsVUFBVSxFQUFFLE1BQU07UUFDbEIsZUFBZSxFQUFFLFlBQVk7UUFDN0IsUUFBUSxFQUFFLFVBQVU7UUFDcEIsS0FBSyxFQUFFLE9BQU87UUFDZCxNQUFNLEVBQUUsUUFBUTtRQUNoQixTQUFTLEVBQUUsYUFBYTtLQUN6QjtDQUNPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlZmF1bHRzIGkxOG4gKGVzL2VuKSBkZWwgYHZhbC10aWNrZXQtY2FyZGAuIEF1dG8tcmVnaXN0cmFkb3MgZW4gZWxcbiAqIGNvbnN0cnVjdG9yIGRlbCBjb21wb25lbnRlIChuYW1lc3BhY2UgYFRpY2tldENhcmRgKSDigJQgZWwgY29uc3VtZXIgTlVOQ0EgdGllbmVcbiAqIHF1ZSByZWdpc3RyYXJsb3MuIE92ZXJyaWRlIHBhc2FuZG8gbG9zIGxhYmVscyBwb3IgcHJvcHMgbyByZWdpc3RyYW5kbyBlbFxuICogbmFtZXNwYWNlIGFudGVzIGRlIG1vbnRhciBlbCBjb21wb25lbnRlLlxuICovXG5leHBvcnQgY29uc3QgVElDS0VUX0NBUkRfSTE4TiA9IHtcbiAgZXM6IHtcbiAgICBjYXJkTGFiZWw6ICdDYXJ0w7NuIGRlIGJpbmdvJyxcbiAgICBmb2xpbzogJ0ZvbGlvJyxcbiAgICBzdGF0dXNTb2xkOiAnVmVuZGlkYScsXG4gICAgc3RhdHVzQ2hlY2tlZEluOiAnQ2FuamVhZGEnLFxuICAgIGRvd25sb2FkOiAnRGVzY2FyZ2FyJyxcbiAgICBzaGFyZTogJ0NvbXBhcnRpcicsXG4gICAgY29waWVkOiAnQ29waWFkbycsXG4gICAgY29waWVkVXJsOiAnTGluayBjb3BpYWRvJyxcbiAgfSxcbiAgZW46IHtcbiAgICBjYXJkTGFiZWw6ICdCaW5nbyBjYXJkJyxcbiAgICBmb2xpbzogJ0ZvbGlvJyxcbiAgICBzdGF0dXNTb2xkOiAnU29sZCcsXG4gICAgc3RhdHVzQ2hlY2tlZEluOiAnQ2hlY2tlZCBpbicsXG4gICAgZG93bmxvYWQ6ICdEb3dubG9hZCcsXG4gICAgc2hhcmU6ICdTaGFyZScsXG4gICAgY29waWVkOiAnQ29waWVkJyxcbiAgICBjb3BpZWRVcmw6ICdMaW5rIGNvcGllZCcsXG4gIH0sXG59IGFzIGNvbnN0O1xuIl19
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '4.0.256';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4yNTYnO1xuIl19
5
+ export const VERSION = '4.0.257';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC4yNTcnO1xuIl19