@litigiovirtual/ius-design-components 1.0.240 → 1.0.242

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.
@@ -1,17 +1,21 @@
1
1
  import { Component, EventEmitter, Input, Output, LOCALE_ID } from '@angular/core';
2
- import { IconSmComponent } from "../icon-sm";
3
2
  import { NgClass, DatePipe, registerLocaleData } from '@angular/common';
4
3
  import localeEs from '@angular/common/locales/es';
4
+ import { IconSmComponent } from "../icon-sm";
5
5
  import { ButtonCircleTertiaryComponent } from "../button-circle-tertiary";
6
6
  import { SimpleDividerComponent } from "../simple-divider";
7
7
  import { IconXsComponent } from "../icon-xs";
8
+ import { PopoverDirective } from '../directives/popover.directive';
8
9
  import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/common";
9
11
  registerLocaleData(localeEs);
10
12
  export class CardActividadEventoComponent {
11
- constructor() {
13
+ constructor(datePipe) {
14
+ this.datePipe = datePipe;
12
15
  this.read = true;
13
16
  this.warning = false;
14
17
  this.collapse = true;
18
+ this.done = false;
15
19
  this.onClickButtonCopy = new EventEmitter();
16
20
  this.onClickButtonRead = new EventEmitter();
17
21
  this.onClickButtonEdit = new EventEmitter();
@@ -19,11 +23,78 @@ export class CardActividadEventoComponent {
19
23
  this.onClickButtonDone = new EventEmitter();
20
24
  }
21
25
  toggleCollapse() {
26
+ const wasCollapsed = this.collapse;
22
27
  this.collapse = !this.collapse;
28
+ if (wasCollapsed && !this.read) {
29
+ this.onClickButtonRead.emit(new Event('autoExpand'));
30
+ }
31
+ }
32
+ get headerFechaLabel() {
33
+ return this.estado === 'FINALIZADA' ? 'Realizada el' : 'Programada para el';
23
34
  }
24
- clickButtonCopy(event) {
35
+ get estadoLabel() {
36
+ if (this.estado === 'FINALIZADA')
37
+ return 'Finalizada';
38
+ if (this.warning)
39
+ return 'Sin reporte de asistencia';
40
+ return 'Programada';
41
+ }
42
+ get estadoLabelClass() {
43
+ if (this.estado === 'FINALIZADA')
44
+ return 'txt-ter';
45
+ if (this.warning)
46
+ return 'tx-warn';
47
+ return 'tx-read';
48
+ }
49
+ async clickButtonCopy(event) {
25
50
  event.stopImmediatePropagation();
26
- this.onClickButtonCopy.emit(event);
51
+ try {
52
+ await navigator.clipboard.writeText(this.getCardSummary());
53
+ this.onClickButtonCopy.emit(event);
54
+ }
55
+ catch {
56
+ // clipboard write failed; no emit
57
+ }
58
+ }
59
+ getCardSummary() {
60
+ const lines = [];
61
+ lines.push('Actividades y eventos');
62
+ if (this.titulo)
63
+ lines.push(`Título: ${this.titulo}`);
64
+ if (this.usuarioAsignado)
65
+ lines.push(`Asignado a: ${this.usuarioAsignado}`);
66
+ if (this.fechaProgramacion)
67
+ lines.push(`${this.headerFechaLabel}: ${this.formatDateTime(this.fechaProgramacion)}`);
68
+ if (this.text1)
69
+ lines.push(this.text1);
70
+ lines.push(`Estado: ${this.estadoLabel}`);
71
+ if (this.fechaInicio || this.fechaFin) {
72
+ const partes = [];
73
+ if (this.fechaInicio)
74
+ partes.push(this.formatDateTime(this.fechaInicio));
75
+ if (this.fechaFin)
76
+ partes.push(this.formatDateTime(this.fechaFin));
77
+ lines.push(`Rango: ${partes.join(' - ')}`);
78
+ }
79
+ if (this.descripcion) {
80
+ lines.push('');
81
+ lines.push('Descripción:');
82
+ lines.push(this.descripcion);
83
+ }
84
+ if (this.link) {
85
+ lines.push('');
86
+ lines.push(`Link: ${this.link}`);
87
+ }
88
+ return lines.join('\n');
89
+ }
90
+ openLink(event) {
91
+ event.stopImmediatePropagation();
92
+ if (this.link) {
93
+ window.open(this.link, '_blank', 'noopener,noreferrer');
94
+ }
95
+ }
96
+ formatDateTime(d) {
97
+ return this.datePipe.transform(d, 'dd MMM yyyy h:mm a') ?? '';
27
98
  }
28
99
  clickButtonRead(event) {
29
100
  event.stopImmediatePropagation();
@@ -41,22 +112,26 @@ export class CardActividadEventoComponent {
41
112
  event.stopImmediatePropagation();
42
113
  this.onClickButtonDone.emit(event);
43
114
  }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CardActividadEventoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CardActividadEventoComponent, isStandalone: true, selector: "ius-card-actividad-evento", inputs: { read: "read", warning: "warning", collapse: "collapse", titulo: "titulo", usuarioAsignado: "usuarioAsignado", fechaProgramacion: "fechaProgramacion", fechaPrincipal: "fechaPrincipal", text1: "text1", estado: "estado", fechaInicio: "fechaInicio", fechaFin: "fechaFin", descripcion: "descripcion" }, outputs: { onClickButtonCopy: "onClickButtonCopy", onClickButtonRead: "onClickButtonRead", onClickButtonEdit: "onClickButtonEdit", onClickButtonDelete: "onClickButtonDelete", onClickButtonDone: "onClickButtonDone" }, providers: [
46
- { provide: LOCALE_ID, useValue: 'es' }
47
- ], ngImport: i0, template: "<div class=\"ctn-gnrl\" (click)=\"toggleCollapse()\">\r\n <div class=\"ctn-card\">\r\n <div class=\"ctn-inf\">\r\n <ius-icon-sm iconName=\"icon-calendar-clock\" class=\"priority-tx\"\r\n [ngClass]=\"{'icon-calendar-clock': read }\"></ius-icon-sm>\r\n <div class=\"info\">\r\n <span class=\"caption-sm txt-ter\">Actividades y eventos</span>\r\n <span class=\"label-base txt-pry\" [ngClass]=\"{'body-base-1': read}\">{{titulo}}</span>\r\n <div class=\"tx-asig\">\r\n <div class=\"row-text-2\">\r\n <span class=\"caption-sm txt-ter\">Asignado a</span>\r\n <span class=\"body-base-1 txt-sec\">{{usuarioAsignado}}</span>\r\n </div>\r\n <div class=\"row-text-2\">\r\n <span class=\"caption-sm txt-ter\">Programada para el</span>\r\n <span class=\"body-base-1 txt-sec\">{{fechaProgramacion | date: 'dd MMM yyyy h:mm a'}}</span>\r\n </div>\r\n </div>\r\n <span class=\"body-base-1 txt-sec\">{{text1}}</span>\r\n </div>\r\n </div>\r\n <div class=\"ctn-icons\">\r\n <div class=\"row-text-2\">\r\n @if (warning && !read) {\r\n <div class=\"icon-dot-warning\"></div>\r\n <ius-icon-xs iconName=\"icon-emergency-home\" class=\"icon-emergency-home\"></ius-icon-xs>\r\n }@else if(!warning && !read){\r\n <div class=\"icon-dot\"></div>\r\n }\r\n <span class=\"body-sm txt-ter fecha\">{{fechaPrincipal | date: 'd MMM y'}}</span>\r\n <span class=\"buttons-hove\">\r\n <ius-button-circle-tertiary iconName=\"icon-mark-chat-read\"\r\n (click)=\"clickButtonRead($event)\"></ius-button-circle-tertiary>\r\n <ius-button-circle-tertiary iconName=\"icon-content-copy\"\r\n (click)=\"clickButtonCopy($event)\"></ius-button-circle-tertiary>\r\n <ius-button-circle-tertiary iconName=\"icon-done-outline\" [disabled]=\"read\"\r\n (click)=\"clickButtonDone($event)\"></ius-button-circle-tertiary>\r\n <ius-button-circle-tertiary iconName=\"icon-edit\"\r\n (click)=\"clickButtonEdit($event)\"></ius-button-circle-tertiary>\r\n <ius-button-circle-tertiary iconName=\"icon-delete\"\r\n (click)=\"clickButtonDelete($event)\"></ius-button-circle-tertiary>\r\n </span>\r\n </div>\r\n <ius-icon-sm [iconName]=\"collapse ? 'icon-keyboard-arrow-down' : 'icon-keyboard-arrow-up'\"\r\n class=\"txt-pry\"></ius-icon-sm>\r\n </div>\r\n </div>\r\n <div class=\"ctn-collapse-card\" [ngClass]=\"{'collapsed': collapse}\">\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"ctn-clp\">\r\n <div class=\"ctn-info-clp\">\r\n <div class=\"text-info\">\r\n @if (warning && !read) {\r\n <span class=\"label-base tx-warn\">{{estado}}</span>\r\n }@else if(!warning && !read){\r\n <span class=\"label-base tx-read\">{{estado}}</span>\r\n } @else {\r\n <span class=\"label-base txt-ter\">{{estado}}</span>\r\n }\r\n <div class=\"row-text-1 body-sm txt-ter\">\r\n <span>{{fechaInicio | date: 'dd MMM yyyy'}}</span>\r\n @if (fechaFin) {\r\n <span>-</span>\r\n <span>{{fechaFin | date: 'dd MMM yyyy'}}</span>\r\n }\r\n </div>\r\n <span class=\"body-base-1 txt-pry\">{{descripcion}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.ctn-gnrl{position:relative;display:flex;flex-direction:column;cursor:pointer;padding:8px 12px;box-sizing:border-box;border-radius:4px;border:1px solid #eaeaea}.ctn-gnrl:hover{border:1px solid #C4DFFF;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.ctn-gnrl:hover .fecha{display:none;pointer-events:none}.ctn-gnrl:hover .buttons-hove{display:flex;pointer-events:auto}.ctn-card{position:relative;display:flex;align-items:center;gap:24px}.ctn-inf{display:flex;flex:1 0 0;align-items:center;gap:16px}.icon-calendar-clock{color:#8c8c8c!important}.priority-tx{color:#184fdb}.tx-asig{display:flex;gap:24px}.info{display:flex;flex:1 0 0;flex-direction:column;align-items:flex-start}.ctn-icons{display:flex;align-items:center;gap:16px}.icon-dot{display:flex;align-items:center;width:8px;height:8px;aspect-ratio:1/1;background-color:#2167ff;border-radius:100px}.icon-dot-warning{display:flex;align-items:center;width:8px;height:8px;aspect-ratio:1/1;background-color:#ffae00;border-radius:100px}.icon-emergency-home{color:#ffae00}.fecha{width:76px}.buttons-hove{display:none;pointer-events:none;gap:4px}.ctn-collapse-card{max-height:1000px;overflow:hidden;transition:max-height .3s ease-in-out}.ctn-collapse-card.collapsed{max-height:0px}.ctn-clp{display:flex;gap:8px}.ctn-info-clp{display:flex;padding:4px 8px;flex-direction:column;gap:12px;flex:1 0 0}.text-info{display:flex;flex-direction:column;align-items:flex-start;flex:1 0 0}.tx-read{color:#629219}.tx-warn{color:#db8e00}ius-simple-divider{margin:8px 0}.row-text-1{display:flex;align-items:center;gap:8px}.row-text-2{display:flex;align-items:center;gap:4px}.txt-pry{color:#333}.txt-sec{color:#595959}.txt-ter{color:#8c8c8c}\n"], dependencies: [{ kind: "component", type: IconSmComponent, selector: "ius-icon-sm", inputs: ["iconName", "color"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonCircleTertiaryComponent, selector: "ius-button-circle-tertiary", inputs: ["disabled", "iconName"], outputs: ["buttonClicked"] }, { kind: "component", type: SimpleDividerComponent, selector: "ius-simple-divider" }, { kind: "component", type: IconXsComponent, selector: "ius-icon-xs", inputs: ["iconName", "color"] }, { kind: "pipe", type: DatePipe, name: "date" }] }); }
115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CardActividadEventoComponent, deps: [{ token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CardActividadEventoComponent, isStandalone: true, selector: "ius-card-actividad-evento", inputs: { read: "read", warning: "warning", collapse: "collapse", done: "done", titulo: "titulo", usuarioAsignado: "usuarioAsignado", fechaProgramacion: "fechaProgramacion", fechaPrincipal: "fechaPrincipal", text1: "text1", estado: "estado", fechaInicio: "fechaInicio", fechaFin: "fechaFin", descripcion: "descripcion", link: "link" }, outputs: { onClickButtonCopy: "onClickButtonCopy", onClickButtonRead: "onClickButtonRead", onClickButtonEdit: "onClickButtonEdit", onClickButtonDelete: "onClickButtonDelete", onClickButtonDone: "onClickButtonDone" }, providers: [
117
+ { provide: LOCALE_ID, useValue: 'es' },
118
+ DatePipe
119
+ ], ngImport: i0, template: "<div class=\"ctn-gnrl\" (click)=\"toggleCollapse()\">\n <div class=\"ctn-card\">\n <div class=\"ctn-inf\">\n <ius-icon-sm iconName=\"icon-calendar-clock\" class=\"priority-tx\"\n [ngClass]=\"{'icon-calendar-clock': estado === 'FINALIZADA' }\"></ius-icon-sm>\n <div class=\"info\">\n <span class=\"caption-sm txt-ter\">Actividades y eventos</span>\n <span class=\"label-base txt-pry\" [ngClass]=\"{'body-base-1': read}\">{{titulo}}</span>\n <div class=\"tx-asig\">\n <div class=\"row-text-2\">\n <span class=\"caption-sm txt-ter\">Asignado a</span>\n <span class=\"body-base-1 txt-sec\">{{usuarioAsignado}}</span>\n </div>\n <div class=\"row-text-2\">\n <span class=\"caption-sm txt-ter\">{{ headerFechaLabel }}</span>\n <span class=\"body-base-1 txt-sec\">{{fechaProgramacion | date: 'dd MMM yyyy h:mm a'}}</span>\n </div>\n </div>\n <span class=\"body-base-1 txt-sec\">{{text1}}</span>\n </div>\n </div>\n <div class=\"ctn-icons\">\n <div class=\"row-text-2\">\n @if (!read) {\n <div class=\"icon-dot\"></div>\n }\n @if (warning && estado !== 'FINALIZADA') {\n <ius-icon-xs iconName=\"icon-emergency-home\" class=\"icon-emergency-home\"></ius-icon-xs>\n }\n <span class=\"body-sm txt-ter fecha\">{{fechaPrincipal | date: 'd MMM y'}}</span>\n <span class=\"buttons-hove\">\n <ius-button-circle-tertiary iconName=\"icon-mark-chat-read\"\n [iusPopoverContent]=\"read ? 'Marcar como no le\u00EDdo' : 'Marcar como le\u00EDdo'\"\n (buttonClicked)=\"clickButtonRead($event)\"></ius-button-circle-tertiary>\n <ius-button-circle-tertiary iconName=\"icon-content-copy\"\n iusPopoverContent=\"Copiar informaci\u00F3n\"\n (buttonClicked)=\"clickButtonCopy($event)\"></ius-button-circle-tertiary>\n <ius-button-circle-tertiary iconName=\"icon-done-outline\"\n [iusPopoverContent]=\"done ? 'Marcar como abierta' : 'Marcar como hecha'\"\n (buttonClicked)=\"clickButtonDone($event)\"></ius-button-circle-tertiary>\n <ius-button-circle-tertiary iconName=\"icon-edit\"\n iusPopoverContent=\"Editar\"\n (buttonClicked)=\"clickButtonEdit($event)\"></ius-button-circle-tertiary>\n <ius-button-circle-tertiary iconName=\"icon-delete\"\n iusPopoverContent=\"Eliminar\"\n (buttonClicked)=\"clickButtonDelete($event)\"></ius-button-circle-tertiary>\n </span>\n </div>\n <ius-icon-sm [iconName]=\"collapse ? 'icon-keyboard-arrow-down' : 'icon-keyboard-arrow-up'\"\n class=\"txt-pry\"></ius-icon-sm>\n </div>\n </div>\n <div class=\"ctn-collapse-card\" [ngClass]=\"{'collapsed': collapse}\">\n <ius-simple-divider></ius-simple-divider>\n <div class=\"ctn-clp\">\n <div class=\"ctn-info-clp\">\n <div class=\"text-info\">\n <span class=\"label-base\" [ngClass]=\"estadoLabelClass\">{{ estadoLabel }}</span>\n <div class=\"row-text-1 body-sm txt-ter\">\n <span>{{fechaInicio | date: 'dd MMM yyyy h:mm a'}}</span>\n @if (fechaFin) {\n <span>-</span>\n <span>{{fechaFin | date: 'dd MMM yyyy h:mm a'}}</span>\n }\n </div>\n <span class=\"body-base-1 txt-pry\">{{descripcion}}</span>\n @if (link) {\n <a class=\"body-sm link-actividad\" (click)=\"openLink($event)\">\n <ius-icon-xs iconName=\"icon-link-2\"></ius-icon-xs>\n <span>{{ link }}</span>\n </a>\n }\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.ctn-gnrl{position:relative;display:flex;flex-direction:column;cursor:pointer;padding:8px 12px;box-sizing:border-box;border-radius:4px;border:1px solid #eaeaea}.ctn-gnrl:hover{border:1px solid #C4DFFF;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.ctn-gnrl:hover .fecha{display:none;pointer-events:none}.ctn-gnrl:hover .buttons-hove{display:flex;pointer-events:auto}.ctn-card{position:relative;display:flex;align-items:center;gap:24px}.ctn-inf{display:flex;flex:1 0 0;align-items:center;gap:16px}.icon-calendar-clock{color:#8c8c8c!important}.priority-tx{color:#184fdb}.tx-asig{display:flex;gap:24px}.info{display:flex;flex:1 0 0;flex-direction:column;align-items:flex-start}.ctn-icons{display:flex;align-items:center;gap:16px}.icon-dot{display:flex;align-items:center;width:8px;height:8px;aspect-ratio:1/1;background-color:#2167ff;border-radius:100px}.icon-dot-warning{display:flex;align-items:center;width:8px;height:8px;aspect-ratio:1/1;background-color:#ffae00;border-radius:100px}.icon-emergency-home{color:#ffae00}.fecha{width:76px}.buttons-hove{display:none;pointer-events:none;gap:4px}.ctn-collapse-card{max-height:1000px;overflow:hidden;transition:max-height .3s ease-in-out}.ctn-collapse-card.collapsed{max-height:0px}.ctn-clp{display:flex;gap:8px}.ctn-info-clp{display:flex;padding:4px 8px;flex-direction:column;gap:12px;flex:1 0 0}.text-info{display:flex;flex-direction:column;align-items:flex-start;flex:1 0 0}.tx-read{color:#629219}.tx-warn{color:#db8e00}ius-simple-divider{margin:8px 0}.row-text-1{display:flex;align-items:center;gap:8px}.row-text-2{display:flex;align-items:center;gap:4px}.txt-pry{color:#333}.txt-sec{color:#595959}.txt-ter{color:#8c8c8c}.link-actividad{display:inline-flex;align-items:center;gap:4px;margin-top:4px;padding:4px 8px;border-radius:4px;color:#595959;cursor:pointer;text-decoration:none;word-break:break-all}.link-actividad:hover{background-color:#edf6ff;text-decoration:underline}\n"], dependencies: [{ kind: "component", type: IconSmComponent, selector: "ius-icon-sm", inputs: ["iconName", "color"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonCircleTertiaryComponent, selector: "ius-button-circle-tertiary", inputs: ["disabled", "iconName"], outputs: ["buttonClicked"] }, { kind: "component", type: SimpleDividerComponent, selector: "ius-simple-divider" }, { kind: "component", type: IconXsComponent, selector: "ius-icon-xs", inputs: ["iconName", "color"] }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "directive", type: PopoverDirective, selector: "[iusPopover], [iusPopoverTitle], [iusPopoverContent]", inputs: ["iusPopover", "iusPopoverTitle", "iusPopoverContent", "iusPopoverPosition", "iusPopoverOpenDelay", "iusPopoverCloseDelay"] }] }); }
48
120
  }
49
121
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CardActividadEventoComponent, decorators: [{
50
122
  type: Component,
51
- args: [{ selector: 'ius-card-actividad-evento', standalone: true, imports: [IconSmComponent, NgClass, ButtonCircleTertiaryComponent, SimpleDividerComponent, IconXsComponent, DatePipe], providers: [
52
- { provide: LOCALE_ID, useValue: 'es' }
53
- ], template: "<div class=\"ctn-gnrl\" (click)=\"toggleCollapse()\">\r\n <div class=\"ctn-card\">\r\n <div class=\"ctn-inf\">\r\n <ius-icon-sm iconName=\"icon-calendar-clock\" class=\"priority-tx\"\r\n [ngClass]=\"{'icon-calendar-clock': read }\"></ius-icon-sm>\r\n <div class=\"info\">\r\n <span class=\"caption-sm txt-ter\">Actividades y eventos</span>\r\n <span class=\"label-base txt-pry\" [ngClass]=\"{'body-base-1': read}\">{{titulo}}</span>\r\n <div class=\"tx-asig\">\r\n <div class=\"row-text-2\">\r\n <span class=\"caption-sm txt-ter\">Asignado a</span>\r\n <span class=\"body-base-1 txt-sec\">{{usuarioAsignado}}</span>\r\n </div>\r\n <div class=\"row-text-2\">\r\n <span class=\"caption-sm txt-ter\">Programada para el</span>\r\n <span class=\"body-base-1 txt-sec\">{{fechaProgramacion | date: 'dd MMM yyyy h:mm a'}}</span>\r\n </div>\r\n </div>\r\n <span class=\"body-base-1 txt-sec\">{{text1}}</span>\r\n </div>\r\n </div>\r\n <div class=\"ctn-icons\">\r\n <div class=\"row-text-2\">\r\n @if (warning && !read) {\r\n <div class=\"icon-dot-warning\"></div>\r\n <ius-icon-xs iconName=\"icon-emergency-home\" class=\"icon-emergency-home\"></ius-icon-xs>\r\n }@else if(!warning && !read){\r\n <div class=\"icon-dot\"></div>\r\n }\r\n <span class=\"body-sm txt-ter fecha\">{{fechaPrincipal | date: 'd MMM y'}}</span>\r\n <span class=\"buttons-hove\">\r\n <ius-button-circle-tertiary iconName=\"icon-mark-chat-read\"\r\n (click)=\"clickButtonRead($event)\"></ius-button-circle-tertiary>\r\n <ius-button-circle-tertiary iconName=\"icon-content-copy\"\r\n (click)=\"clickButtonCopy($event)\"></ius-button-circle-tertiary>\r\n <ius-button-circle-tertiary iconName=\"icon-done-outline\" [disabled]=\"read\"\r\n (click)=\"clickButtonDone($event)\"></ius-button-circle-tertiary>\r\n <ius-button-circle-tertiary iconName=\"icon-edit\"\r\n (click)=\"clickButtonEdit($event)\"></ius-button-circle-tertiary>\r\n <ius-button-circle-tertiary iconName=\"icon-delete\"\r\n (click)=\"clickButtonDelete($event)\"></ius-button-circle-tertiary>\r\n </span>\r\n </div>\r\n <ius-icon-sm [iconName]=\"collapse ? 'icon-keyboard-arrow-down' : 'icon-keyboard-arrow-up'\"\r\n class=\"txt-pry\"></ius-icon-sm>\r\n </div>\r\n </div>\r\n <div class=\"ctn-collapse-card\" [ngClass]=\"{'collapsed': collapse}\">\r\n <ius-simple-divider></ius-simple-divider>\r\n <div class=\"ctn-clp\">\r\n <div class=\"ctn-info-clp\">\r\n <div class=\"text-info\">\r\n @if (warning && !read) {\r\n <span class=\"label-base tx-warn\">{{estado}}</span>\r\n }@else if(!warning && !read){\r\n <span class=\"label-base tx-read\">{{estado}}</span>\r\n } @else {\r\n <span class=\"label-base txt-ter\">{{estado}}</span>\r\n }\r\n <div class=\"row-text-1 body-sm txt-ter\">\r\n <span>{{fechaInicio | date: 'dd MMM yyyy'}}</span>\r\n @if (fechaFin) {\r\n <span>-</span>\r\n <span>{{fechaFin | date: 'dd MMM yyyy'}}</span>\r\n }\r\n </div>\r\n <span class=\"body-base-1 txt-pry\">{{descripcion}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.ctn-gnrl{position:relative;display:flex;flex-direction:column;cursor:pointer;padding:8px 12px;box-sizing:border-box;border-radius:4px;border:1px solid #eaeaea}.ctn-gnrl:hover{border:1px solid #C4DFFF;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.ctn-gnrl:hover .fecha{display:none;pointer-events:none}.ctn-gnrl:hover .buttons-hove{display:flex;pointer-events:auto}.ctn-card{position:relative;display:flex;align-items:center;gap:24px}.ctn-inf{display:flex;flex:1 0 0;align-items:center;gap:16px}.icon-calendar-clock{color:#8c8c8c!important}.priority-tx{color:#184fdb}.tx-asig{display:flex;gap:24px}.info{display:flex;flex:1 0 0;flex-direction:column;align-items:flex-start}.ctn-icons{display:flex;align-items:center;gap:16px}.icon-dot{display:flex;align-items:center;width:8px;height:8px;aspect-ratio:1/1;background-color:#2167ff;border-radius:100px}.icon-dot-warning{display:flex;align-items:center;width:8px;height:8px;aspect-ratio:1/1;background-color:#ffae00;border-radius:100px}.icon-emergency-home{color:#ffae00}.fecha{width:76px}.buttons-hove{display:none;pointer-events:none;gap:4px}.ctn-collapse-card{max-height:1000px;overflow:hidden;transition:max-height .3s ease-in-out}.ctn-collapse-card.collapsed{max-height:0px}.ctn-clp{display:flex;gap:8px}.ctn-info-clp{display:flex;padding:4px 8px;flex-direction:column;gap:12px;flex:1 0 0}.text-info{display:flex;flex-direction:column;align-items:flex-start;flex:1 0 0}.tx-read{color:#629219}.tx-warn{color:#db8e00}ius-simple-divider{margin:8px 0}.row-text-1{display:flex;align-items:center;gap:8px}.row-text-2{display:flex;align-items:center;gap:4px}.txt-pry{color:#333}.txt-sec{color:#595959}.txt-ter{color:#8c8c8c}\n"] }]
54
- }], propDecorators: { read: [{
123
+ args: [{ selector: 'ius-card-actividad-evento', standalone: true, imports: [IconSmComponent, NgClass, ButtonCircleTertiaryComponent, SimpleDividerComponent, IconXsComponent, DatePipe, PopoverDirective], providers: [
124
+ { provide: LOCALE_ID, useValue: 'es' },
125
+ DatePipe
126
+ ], template: "<div class=\"ctn-gnrl\" (click)=\"toggleCollapse()\">\n <div class=\"ctn-card\">\n <div class=\"ctn-inf\">\n <ius-icon-sm iconName=\"icon-calendar-clock\" class=\"priority-tx\"\n [ngClass]=\"{'icon-calendar-clock': estado === 'FINALIZADA' }\"></ius-icon-sm>\n <div class=\"info\">\n <span class=\"caption-sm txt-ter\">Actividades y eventos</span>\n <span class=\"label-base txt-pry\" [ngClass]=\"{'body-base-1': read}\">{{titulo}}</span>\n <div class=\"tx-asig\">\n <div class=\"row-text-2\">\n <span class=\"caption-sm txt-ter\">Asignado a</span>\n <span class=\"body-base-1 txt-sec\">{{usuarioAsignado}}</span>\n </div>\n <div class=\"row-text-2\">\n <span class=\"caption-sm txt-ter\">{{ headerFechaLabel }}</span>\n <span class=\"body-base-1 txt-sec\">{{fechaProgramacion | date: 'dd MMM yyyy h:mm a'}}</span>\n </div>\n </div>\n <span class=\"body-base-1 txt-sec\">{{text1}}</span>\n </div>\n </div>\n <div class=\"ctn-icons\">\n <div class=\"row-text-2\">\n @if (!read) {\n <div class=\"icon-dot\"></div>\n }\n @if (warning && estado !== 'FINALIZADA') {\n <ius-icon-xs iconName=\"icon-emergency-home\" class=\"icon-emergency-home\"></ius-icon-xs>\n }\n <span class=\"body-sm txt-ter fecha\">{{fechaPrincipal | date: 'd MMM y'}}</span>\n <span class=\"buttons-hove\">\n <ius-button-circle-tertiary iconName=\"icon-mark-chat-read\"\n [iusPopoverContent]=\"read ? 'Marcar como no le\u00EDdo' : 'Marcar como le\u00EDdo'\"\n (buttonClicked)=\"clickButtonRead($event)\"></ius-button-circle-tertiary>\n <ius-button-circle-tertiary iconName=\"icon-content-copy\"\n iusPopoverContent=\"Copiar informaci\u00F3n\"\n (buttonClicked)=\"clickButtonCopy($event)\"></ius-button-circle-tertiary>\n <ius-button-circle-tertiary iconName=\"icon-done-outline\"\n [iusPopoverContent]=\"done ? 'Marcar como abierta' : 'Marcar como hecha'\"\n (buttonClicked)=\"clickButtonDone($event)\"></ius-button-circle-tertiary>\n <ius-button-circle-tertiary iconName=\"icon-edit\"\n iusPopoverContent=\"Editar\"\n (buttonClicked)=\"clickButtonEdit($event)\"></ius-button-circle-tertiary>\n <ius-button-circle-tertiary iconName=\"icon-delete\"\n iusPopoverContent=\"Eliminar\"\n (buttonClicked)=\"clickButtonDelete($event)\"></ius-button-circle-tertiary>\n </span>\n </div>\n <ius-icon-sm [iconName]=\"collapse ? 'icon-keyboard-arrow-down' : 'icon-keyboard-arrow-up'\"\n class=\"txt-pry\"></ius-icon-sm>\n </div>\n </div>\n <div class=\"ctn-collapse-card\" [ngClass]=\"{'collapsed': collapse}\">\n <ius-simple-divider></ius-simple-divider>\n <div class=\"ctn-clp\">\n <div class=\"ctn-info-clp\">\n <div class=\"text-info\">\n <span class=\"label-base\" [ngClass]=\"estadoLabelClass\">{{ estadoLabel }}</span>\n <div class=\"row-text-1 body-sm txt-ter\">\n <span>{{fechaInicio | date: 'dd MMM yyyy h:mm a'}}</span>\n @if (fechaFin) {\n <span>-</span>\n <span>{{fechaFin | date: 'dd MMM yyyy h:mm a'}}</span>\n }\n </div>\n <span class=\"body-base-1 txt-pry\">{{descripcion}}</span>\n @if (link) {\n <a class=\"body-sm link-actividad\" (click)=\"openLink($event)\">\n <ius-icon-xs iconName=\"icon-link-2\"></ius-icon-xs>\n <span>{{ link }}</span>\n </a>\n }\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".h1{font-family:Roboto,sans-serif;font-size:2.375rem;font-weight:500;line-height:46px}.h2{font-family:Roboto,sans-serif;font-size:1.875rem;font-weight:700;line-height:38px}.h3{font-family:Roboto,sans-serif;font-size:1.5rem;font-weight:500;line-height:32px}.h4{font-family:Roboto,sans-serif;font-size:1.25rem;font-weight:700;line-height:26px}.h5{font-family:Roboto,sans-serif;font-size:1.125rem;font-weight:500;line-height:24px;letter-spacing:.18px}.label-large{font-family:Roboto,sans-serif;font-size:1rem;font-weight:500;line-height:22px}.body-large{font-family:Rubik,sans-serif;font-size:1rem;font-weight:400;line-height:22px}.label-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:500;line-height:20px;letter-spacing:.28px}.body-base{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;font-style:italic;letter-spacing:.28px}.body-base-1,.body-base-1-1{font-family:Rubik,sans-serif;font-size:.875rem;font-weight:400;line-height:20px;letter-spacing:.28px}.body-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;letter-spacing:.28px}.body-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:400;line-height:16px;font-style:italic;letter-spacing:.28px}.caption-sm{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;letter-spacing:.28px}.caption-sm-italic{font-family:Rubik,sans-serif;font-size:.75rem;font-weight:500;line-height:16px;font-style:italic;letter-spacing:.28px}.ctn-gnrl{position:relative;display:flex;flex-direction:column;cursor:pointer;padding:8px 12px;box-sizing:border-box;border-radius:4px;border:1px solid #eaeaea}.ctn-gnrl:hover{border:1px solid #C4DFFF;box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.ctn-gnrl:hover .fecha{display:none;pointer-events:none}.ctn-gnrl:hover .buttons-hove{display:flex;pointer-events:auto}.ctn-card{position:relative;display:flex;align-items:center;gap:24px}.ctn-inf{display:flex;flex:1 0 0;align-items:center;gap:16px}.icon-calendar-clock{color:#8c8c8c!important}.priority-tx{color:#184fdb}.tx-asig{display:flex;gap:24px}.info{display:flex;flex:1 0 0;flex-direction:column;align-items:flex-start}.ctn-icons{display:flex;align-items:center;gap:16px}.icon-dot{display:flex;align-items:center;width:8px;height:8px;aspect-ratio:1/1;background-color:#2167ff;border-radius:100px}.icon-dot-warning{display:flex;align-items:center;width:8px;height:8px;aspect-ratio:1/1;background-color:#ffae00;border-radius:100px}.icon-emergency-home{color:#ffae00}.fecha{width:76px}.buttons-hove{display:none;pointer-events:none;gap:4px}.ctn-collapse-card{max-height:1000px;overflow:hidden;transition:max-height .3s ease-in-out}.ctn-collapse-card.collapsed{max-height:0px}.ctn-clp{display:flex;gap:8px}.ctn-info-clp{display:flex;padding:4px 8px;flex-direction:column;gap:12px;flex:1 0 0}.text-info{display:flex;flex-direction:column;align-items:flex-start;flex:1 0 0}.tx-read{color:#629219}.tx-warn{color:#db8e00}ius-simple-divider{margin:8px 0}.row-text-1{display:flex;align-items:center;gap:8px}.row-text-2{display:flex;align-items:center;gap:4px}.txt-pry{color:#333}.txt-sec{color:#595959}.txt-ter{color:#8c8c8c}.link-actividad{display:inline-flex;align-items:center;gap:4px;margin-top:4px;padding:4px 8px;border-radius:4px;color:#595959;cursor:pointer;text-decoration:none;word-break:break-all}.link-actividad:hover{background-color:#edf6ff;text-decoration:underline}\n"] }]
127
+ }], ctorParameters: () => [{ type: i1.DatePipe }], propDecorators: { read: [{
55
128
  type: Input
56
129
  }], warning: [{
57
130
  type: Input
58
131
  }], collapse: [{
59
132
  type: Input
133
+ }], done: [{
134
+ type: Input
60
135
  }], titulo: [{
61
136
  type: Input
62
137
  }], usuarioAsignado: [{
@@ -75,6 +150,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
75
150
  type: Input
76
151
  }], descripcion: [{
77
152
  type: Input
153
+ }], link: [{
154
+ type: Input
78
155
  }], onClickButtonCopy: [{
79
156
  type: Output
80
157
  }], onClickButtonRead: [{
@@ -86,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
86
163
  }], onClickButtonDone: [{
87
164
  type: Output
88
165
  }] } });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1hY3RpdmlkYWQtZXZlbnRvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l1cy1kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2NhcmQtYWN0aXZpZGFkLWV2ZW50by9jYXJkLWFjdGl2aWRhZC1ldmVudG8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvY2FyZC1hY3RpdmlkYWQtZXZlbnRvL2NhcmQtYWN0aXZpZGFkLWV2ZW50by5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFFN0Msa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7QUFZN0IsTUFBTSxPQUFPLDRCQUE0QjtJQVZ6QztRQVdXLFNBQUksR0FBWSxJQUFJLENBQUM7UUFDckIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixhQUFRLEdBQVksSUFBSSxDQUFDO1FBWXhCLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFDOUMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUM5QyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQzlDLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFDaEQsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztLQStCekQ7SUE1QkMsY0FBYztRQUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBWTtRQUMxQixLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBWTtRQUMxQixLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBWTtRQUMxQixLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFZO1FBQzVCLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFZO1FBQzFCLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQzsrR0FqRFUsNEJBQTRCO21HQUE1Qiw0QkFBNEIscWxCQU41QjtZQUNULEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1NBQ3ZDLDBCQ2hCSCxpZ0lBdUVNLDJwR0QxRE0sZUFBZSx1RkFBRSxPQUFPLG9GQUFFLDZCQUE2QixxSUFBRSxzQkFBc0IsK0RBQUUsZUFBZSxrRkFBRSxRQUFROzs0RkFPekcsNEJBQTRCO2tCQVZ4QyxTQUFTOytCQUNFLDJCQUEyQixjQUN6QixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHNCQUFzQixFQUFFLGVBQWUsRUFBRSxRQUFRLENBQUMsYUFDMUc7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7cUJBQ3ZDOzhCQUtRLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgTE9DQUxFX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEljb25TbUNvbXBvbmVudCB9IGZyb20gXCIuLi9pY29uLXNtXCI7XHJcbmltcG9ydCB7IE5nQ2xhc3MsIERhdGVQaXBlLCByZWdpc3RlckxvY2FsZURhdGEgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgbG9jYWxlRXMgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXMnO1xyXG5pbXBvcnQgeyBCdXR0b25DaXJjbGVUZXJ0aWFyeUNvbXBvbmVudCB9IGZyb20gXCIuLi9idXR0b24tY2lyY2xlLXRlcnRpYXJ5XCI7XHJcbmltcG9ydCB7IFNpbXBsZURpdmlkZXJDb21wb25lbnQgfSBmcm9tIFwiLi4vc2ltcGxlLWRpdmlkZXJcIjtcclxuaW1wb3J0IHsgSWNvblhzQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ljb24teHNcIjtcclxuXHJcbnJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVFcyk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2l1cy1jYXJkLWFjdGl2aWRhZC1ldmVudG8nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0ljb25TbUNvbXBvbmVudCwgTmdDbGFzcywgQnV0dG9uQ2lyY2xlVGVydGlhcnlDb21wb25lbnQsIFNpbXBsZURpdmlkZXJDb21wb25lbnQsIEljb25Yc0NvbXBvbmVudCwgRGF0ZVBpcGVdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgeyBwcm92aWRlOiBMT0NBTEVfSUQsIHVzZVZhbHVlOiAnZXMnIH1cclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLWFjdGl2aWRhZC1ldmVudG8uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jYXJkLWFjdGl2aWRhZC1ldmVudG8uY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXJkQWN0aXZpZGFkRXZlbnRvQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSByZWFkOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSB3YXJuaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY29sbGFwc2U6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSB0aXR1bG8/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdXN1YXJpb0FzaWduYWRvPzogc3RyaW5nXHJcbiAgQElucHV0KCkgZmVjaGFQcm9ncmFtYWNpb24/OiBEYXRlO1xyXG4gIEBJbnB1dCgpIGZlY2hhUHJpbmNpcGFsPzogRGF0ZTtcclxuICBASW5wdXQoKSB0ZXh0MT86IHN0cmluZztcclxuICBASW5wdXQoKSBlc3RhZG8/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZmVjaGFJbmljaW8/OiBEYXRlO1xyXG4gIEBJbnB1dCgpIGZlY2hhRmluPzogRGF0ZTtcclxuICBASW5wdXQoKSBkZXNjcmlwY2lvbj86IHN0cmluZztcclxuXHJcbiAgQE91dHB1dCgpIG9uQ2xpY2tCdXR0b25Db3B5ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgb25DbGlja0J1dHRvblJlYWQgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBvbkNsaWNrQnV0dG9uRWRpdCA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uQ2xpY2tCdXR0b25EZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBvbkNsaWNrQnV0dG9uRG9uZSA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcblxyXG5cclxuICB0b2dnbGVDb2xsYXBzZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29sbGFwc2UgPSAhdGhpcy5jb2xsYXBzZTtcclxuICB9XHJcblxyXG4gIGNsaWNrQnV0dG9uQ29weShldmVudDogRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5vbkNsaWNrQnV0dG9uQ29weS5lbWl0KGV2ZW50KTsgXHJcbiAgfVxyXG5cclxuICBjbGlja0J1dHRvblJlYWQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMub25DbGlja0J1dHRvblJlYWQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBjbGlja0J1dHRvbkVkaXQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMub25DbGlja0J1dHRvbkVkaXQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBjbGlja0J1dHRvbkRlbGV0ZShldmVudDogRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5vbkNsaWNrQnV0dG9uRGVsZXRlLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgY2xpY2tCdXR0b25Eb25lKGV2ZW50OiBFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLm9uQ2xpY2tCdXR0b25Eb25lLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY3RuLWducmxcIiAoY2xpY2spPVwidG9nZ2xlQ29sbGFwc2UoKVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImN0bi1jYXJkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImN0bi1pbmZcIj5cclxuICAgICAgICAgICAgPGl1cy1pY29uLXNtIGljb25OYW1lPVwiaWNvbi1jYWxlbmRhci1jbG9ja1wiIGNsYXNzPVwicHJpb3JpdHktdHhcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpY29uLWNhbGVuZGFyLWNsb2NrJzogcmVhZCB9XCI+PC9pdXMtaWNvbi1zbT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm9cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvbi1zbSB0eHQtdGVyXCI+QWN0aXZpZGFkZXMgeSBldmVudG9zPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1iYXNlIHR4dC1wcnlcIiBbbmdDbGFzc109XCJ7J2JvZHktYmFzZS0xJzogcmVhZH1cIj57e3RpdHVsb319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR4LWFzaWdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRleHQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcHRpb24tc20gdHh0LXRlclwiPkFzaWduYWRvIGE8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9keS1iYXNlLTEgdHh0LXNlY1wiPnt7dXN1YXJpb0FzaWduYWRvfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy10ZXh0LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXB0aW9uLXNtIHR4dC10ZXJcIj5Qcm9ncmFtYWRhIHBhcmEgZWw8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9keS1iYXNlLTEgdHh0LXNlY1wiPnt7ZmVjaGFQcm9ncmFtYWNpb24gfCBkYXRlOiAnZGQgTU1NIHl5eXkgaDptbSBhJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJvZHktYmFzZS0xIHR4dC1zZWNcIj57e3RleHQxfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjdG4taWNvbnNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy10ZXh0LTJcIj5cclxuICAgICAgICAgICAgICAgIEBpZiAod2FybmluZyAmJiAhcmVhZCkge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tZG90LXdhcm5pbmdcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxpdXMtaWNvbi14cyBpY29uTmFtZT1cImljb24tZW1lcmdlbmN5LWhvbWVcIiBjbGFzcz1cImljb24tZW1lcmdlbmN5LWhvbWVcIj48L2l1cy1pY29uLXhzPlxyXG4gICAgICAgICAgICAgICAgfUBlbHNlIGlmKCF3YXJuaW5nICYmICFyZWFkKXtcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWRvdFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib2R5LXNtIHR4dC10ZXIgZmVjaGFcIj57e2ZlY2hhUHJpbmNpcGFsIHwgZGF0ZTogJ2QgTU1NIHknfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ1dHRvbnMtaG92ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeSBpY29uTmFtZT1cImljb24tbWFyay1jaGF0LXJlYWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tCdXR0b25SZWFkKCRldmVudClcIj48L2l1cy1idXR0b24tY2lyY2xlLXRlcnRpYXJ5PlxyXG4gICAgICAgICAgICAgICAgICAgIDxpdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeSBpY29uTmFtZT1cImljb24tY29udGVudC1jb3B5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrQnV0dG9uQ29weSgkZXZlbnQpXCI+PC9pdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeT5cclxuICAgICAgICAgICAgICAgICAgICA8aXVzLWJ1dHRvbi1jaXJjbGUtdGVydGlhcnkgaWNvbk5hbWU9XCJpY29uLWRvbmUtb3V0bGluZVwiIFtkaXNhYmxlZF09XCJyZWFkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrQnV0dG9uRG9uZSgkZXZlbnQpXCI+PC9pdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeT5cclxuICAgICAgICAgICAgICAgICAgICA8aXVzLWJ1dHRvbi1jaXJjbGUtdGVydGlhcnkgaWNvbk5hbWU9XCJpY29uLWVkaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tCdXR0b25FZGl0KCRldmVudClcIj48L2l1cy1idXR0b24tY2lyY2xlLXRlcnRpYXJ5PlxyXG4gICAgICAgICAgICAgICAgICAgIDxpdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeSBpY29uTmFtZT1cImljb24tZGVsZXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrQnV0dG9uRGVsZXRlKCRldmVudClcIj48L2l1cy1idXR0b24tY2lyY2xlLXRlcnRpYXJ5PlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGl1cy1pY29uLXNtIFtpY29uTmFtZV09XCJjb2xsYXBzZSA/ICdpY29uLWtleWJvYXJkLWFycm93LWRvd24nIDogJ2ljb24ta2V5Ym9hcmQtYXJyb3ctdXAnXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidHh0LXByeVwiPjwvaXVzLWljb24tc20+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjdG4tY29sbGFwc2UtY2FyZFwiIFtuZ0NsYXNzXT1cInsnY29sbGFwc2VkJzogY29sbGFwc2V9XCI+XHJcbiAgICAgICAgPGl1cy1zaW1wbGUtZGl2aWRlcj48L2l1cy1zaW1wbGUtZGl2aWRlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3RuLWNscFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3RuLWluZm8tY2xwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1pbmZvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQGlmICh3YXJuaW5nICYmICFyZWFkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1iYXNlIHR4LXdhcm5cIj57e2VzdGFkb319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIH1AZWxzZSBpZighd2FybmluZyAmJiAhcmVhZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1iYXNlIHR4LXJlYWRcIj57e2VzdGFkb319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtYmFzZSB0eHQtdGVyXCI+e3tlc3RhZG99fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy10ZXh0LTEgYm9keS1zbSB0eHQtdGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ZmVjaGFJbmljaW8gfCBkYXRlOiAnZGQgTU1NIHl5eXknfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmVjaGFGaW4pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+LTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tmZWNoYUZpbiB8IGRhdGU6ICdkZCBNTU0geXl5eSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9keS1iYXNlLTEgdHh0LXByeVwiPnt7ZGVzY3JpcGNpb259fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1hY3RpdmlkYWQtZXZlbnRvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l1cy1kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL2NhcmQtYWN0aXZpZGFkLWV2ZW50by9jYXJkLWFjdGl2aWRhZC1ldmVudG8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXVzLWRlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvY2FyZC1hY3RpdmlkYWQtZXZlbnRvL2NhcmQtYWN0aXZpZGFkLWV2ZW50by5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sUUFBUSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBRW5FLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBYTdCLE1BQU0sT0FBTyw0QkFBNEI7SUFFdkMsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUU3QixTQUFJLEdBQVksSUFBSSxDQUFDO1FBQ3JCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsYUFBUSxHQUFZ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RUFBRTt3QkFDdEMsUUFBUTtxQkFDVDs2RUFRUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgTE9DQUxFX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBEYXRlUGlwZSwgcmVnaXN0ZXJMb2NhbGVEYXRhIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCBsb2NhbGVFcyBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9lcyc7XG5pbXBvcnQgeyBJY29uU21Db21wb25lbnQgfSBmcm9tIFwiLi4vaWNvbi1zbVwiO1xuaW1wb3J0IHsgQnV0dG9uQ2lyY2xlVGVydGlhcnlDb21wb25lbnQgfSBmcm9tIFwiLi4vYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeVwiO1xuaW1wb3J0IHsgU2ltcGxlRGl2aWRlckNvbXBvbmVudCB9IGZyb20gXCIuLi9zaW1wbGUtZGl2aWRlclwiO1xuaW1wb3J0IHsgSWNvblhzQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ljb24teHNcIjtcbmltcG9ydCB7IFBvcG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3BvcG92ZXIuZGlyZWN0aXZlJztcblxucmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZUVzKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXVzLWNhcmQtYWN0aXZpZGFkLWV2ZW50bycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJY29uU21Db21wb25lbnQsIE5nQ2xhc3MsIEJ1dHRvbkNpcmNsZVRlcnRpYXJ5Q29tcG9uZW50LCBTaW1wbGVEaXZpZGVyQ29tcG9uZW50LCBJY29uWHNDb21wb25lbnQsIERhdGVQaXBlLCBQb3BvdmVyRGlyZWN0aXZlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBMT0NBTEVfSUQsIHVzZVZhbHVlOiAnZXMnIH0sXG4gICAgRGF0ZVBpcGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtYWN0aXZpZGFkLWV2ZW50by5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jYXJkLWFjdGl2aWRhZC1ldmVudG8uY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIENhcmRBY3RpdmlkYWRFdmVudG9Db21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlKSB7fVxuXG4gIEBJbnB1dCgpIHJlYWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSB3YXJuaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvbGxhcHNlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgZG9uZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHRpdHVsbz86IHN0cmluZztcbiAgQElucHV0KCkgdXN1YXJpb0FzaWduYWRvPzogc3RyaW5nO1xuICBASW5wdXQoKSBmZWNoYVByb2dyYW1hY2lvbj86IERhdGU7XG4gIEBJbnB1dCgpIGZlY2hhUHJpbmNpcGFsPzogRGF0ZTtcbiAgQElucHV0KCkgdGV4dDE/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGVzdGFkbz86IHN0cmluZztcbiAgQElucHV0KCkgZmVjaGFJbmljaW8/OiBEYXRlO1xuICBASW5wdXQoKSBmZWNoYUZpbj86IERhdGU7XG4gIEBJbnB1dCgpIGRlc2NyaXBjaW9uPzogc3RyaW5nO1xuICBASW5wdXQoKSBsaW5rPzogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBvbkNsaWNrQnV0dG9uQ29weSA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvbkNsaWNrQnV0dG9uUmVhZCA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvbkNsaWNrQnV0dG9uRWRpdCA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvbkNsaWNrQnV0dG9uRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgQE91dHB1dCgpIG9uQ2xpY2tCdXR0b25Eb25lID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICB0b2dnbGVDb2xsYXBzZSgpOiB2b2lkIHtcbiAgICBjb25zdCB3YXNDb2xsYXBzZWQgPSB0aGlzLmNvbGxhcHNlO1xuICAgIHRoaXMuY29sbGFwc2UgPSAhdGhpcy5jb2xsYXBzZTtcbiAgICBpZiAod2FzQ29sbGFwc2VkICYmICF0aGlzLnJlYWQpIHtcbiAgICAgIHRoaXMub25DbGlja0J1dHRvblJlYWQuZW1pdChuZXcgRXZlbnQoJ2F1dG9FeHBhbmQnKSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGhlYWRlckZlY2hhTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lc3RhZG8gPT09ICdGSU5BTElaQURBJyA/ICdSZWFsaXphZGEgZWwnIDogJ1Byb2dyYW1hZGEgcGFyYSBlbCc7XG4gIH1cblxuICBnZXQgZXN0YWRvTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5lc3RhZG8gPT09ICdGSU5BTElaQURBJykgcmV0dXJuICdGaW5hbGl6YWRhJztcbiAgICBpZiAodGhpcy53YXJuaW5nKSByZXR1cm4gJ1NpbiByZXBvcnRlIGRlIGFzaXN0ZW5jaWEnO1xuICAgIHJldHVybiAnUHJvZ3JhbWFkYSc7XG4gIH1cblxuICBnZXQgZXN0YWRvTGFiZWxDbGFzcygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmVzdGFkbyA9PT0gJ0ZJTkFMSVpBREEnKSByZXR1cm4gJ3R4dC10ZXInO1xuICAgIGlmICh0aGlzLndhcm5pbmcpIHJldHVybiAndHgtd2Fybic7XG4gICAgcmV0dXJuICd0eC1yZWFkJztcbiAgfVxuXG4gIGFzeW5jIGNsaWNrQnV0dG9uQ29weShldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGhpcy5nZXRDYXJkU3VtbWFyeSgpKTtcbiAgICAgIHRoaXMub25DbGlja0J1dHRvbkNvcHkuZW1pdChldmVudCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBjbGlwYm9hcmQgd3JpdGUgZmFpbGVkOyBubyBlbWl0XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYXJkU3VtbWFyeSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGxpbmVzLnB1c2goJ0FjdGl2aWRhZGVzIHkgZXZlbnRvcycpO1xuICAgIGlmICh0aGlzLnRpdHVsbykgbGluZXMucHVzaChgVMOtdHVsbzogJHt0aGlzLnRpdHVsb31gKTtcbiAgICBpZiAodGhpcy51c3VhcmlvQXNpZ25hZG8pIGxpbmVzLnB1c2goYEFzaWduYWRvIGE6ICR7dGhpcy51c3VhcmlvQXNpZ25hZG99YCk7XG4gICAgaWYgKHRoaXMuZmVjaGFQcm9ncmFtYWNpb24pIGxpbmVzLnB1c2goYCR7dGhpcy5oZWFkZXJGZWNoYUxhYmVsfTogJHt0aGlzLmZvcm1hdERhdGVUaW1lKHRoaXMuZmVjaGFQcm9ncmFtYWNpb24pfWApO1xuICAgIGlmICh0aGlzLnRleHQxKSBsaW5lcy5wdXNoKHRoaXMudGV4dDEpO1xuICAgIGxpbmVzLnB1c2goYEVzdGFkbzogJHt0aGlzLmVzdGFkb0xhYmVsfWApO1xuICAgIGlmICh0aGlzLmZlY2hhSW5pY2lvIHx8IHRoaXMuZmVjaGFGaW4pIHtcbiAgICAgIGNvbnN0IHBhcnRlczogc3RyaW5nW10gPSBbXTtcbiAgICAgIGlmICh0aGlzLmZlY2hhSW5pY2lvKSBwYXJ0ZXMucHVzaCh0aGlzLmZvcm1hdERhdGVUaW1lKHRoaXMuZmVjaGFJbmljaW8pKTtcbiAgICAgIGlmICh0aGlzLmZlY2hhRmluKSBwYXJ0ZXMucHVzaCh0aGlzLmZvcm1hdERhdGVUaW1lKHRoaXMuZmVjaGFGaW4pKTtcbiAgICAgIGxpbmVzLnB1c2goYFJhbmdvOiAke3BhcnRlcy5qb2luKCcgLSAnKX1gKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGVzY3JpcGNpb24pIHtcbiAgICAgIGxpbmVzLnB1c2goJycpO1xuICAgICAgbGluZXMucHVzaCgnRGVzY3JpcGNpw7NuOicpO1xuICAgICAgbGluZXMucHVzaCh0aGlzLmRlc2NyaXBjaW9uKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubGluaykge1xuICAgICAgbGluZXMucHVzaCgnJyk7XG4gICAgICBsaW5lcy5wdXNoKGBMaW5rOiAke3RoaXMubGlua31gKTtcbiAgICB9XG4gICAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcbicpO1xuICB9XG5cbiAgb3BlbkxpbmsoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMubGluaykge1xuICAgICAgd2luZG93Lm9wZW4odGhpcy5saW5rLCAnX2JsYW5rJywgJ25vb3BlbmVyLG5vcmVmZXJyZXInKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdERhdGVUaW1lKGQ6IERhdGUgfCBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShkLCAnZGQgTU1NIHl5eXkgaDptbSBhJykgPz8gJyc7XG4gIH1cblxuICBjbGlja0J1dHRvblJlYWQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5vbkNsaWNrQnV0dG9uUmVhZC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIGNsaWNrQnV0dG9uRWRpdChldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLm9uQ2xpY2tCdXR0b25FZGl0LmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgY2xpY2tCdXR0b25EZWxldGUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5vbkNsaWNrQnV0dG9uRGVsZXRlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgY2xpY2tCdXR0b25Eb25lKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMub25DbGlja0J1dHRvbkRvbmUuZW1pdChldmVudCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjdG4tZ25ybFwiIChjbGljayk9XCJ0b2dnbGVDb2xsYXBzZSgpXCI+XG4gICAgPGRpdiBjbGFzcz1cImN0bi1jYXJkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjdG4taW5mXCI+XG4gICAgICAgICAgICA8aXVzLWljb24tc20gaWNvbk5hbWU9XCJpY29uLWNhbGVuZGFyLWNsb2NrXCIgY2xhc3M9XCJwcmlvcml0eS10eFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpY29uLWNhbGVuZGFyLWNsb2NrJzogZXN0YWRvID09PSAnRklOQUxJWkFEQScgfVwiPjwvaXVzLWljb24tc20+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mb1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvbi1zbSB0eHQtdGVyXCI+QWN0aXZpZGFkZXMgeSBldmVudG9zPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtYmFzZSB0eHQtcHJ5XCIgW25nQ2xhc3NdPVwieydib2R5LWJhc2UtMSc6IHJlYWR9XCI+e3t0aXR1bG99fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHgtYXNpZ1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRleHQtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXB0aW9uLXNtIHR4dC10ZXJcIj5Bc2lnbmFkbyBhPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib2R5LWJhc2UtMSB0eHQtc2VjXCI+e3t1c3VhcmlvQXNpZ25hZG99fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3ctdGV4dC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcHRpb24tc20gdHh0LXRlclwiPnt7IGhlYWRlckZlY2hhTGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJvZHktYmFzZS0xIHR4dC1zZWNcIj57e2ZlY2hhUHJvZ3JhbWFjaW9uIHwgZGF0ZTogJ2RkIE1NTSB5eXl5IGg6bW0gYSd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib2R5LWJhc2UtMSB0eHQtc2VjXCI+e3t0ZXh0MX19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3RuLWljb25zXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXRleHQtMlwiPlxuICAgICAgICAgICAgICAgIEBpZiAoIXJlYWQpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1kb3RcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmICh3YXJuaW5nICYmIGVzdGFkbyAhPT0gJ0ZJTkFMSVpBREEnKSB7XG4gICAgICAgICAgICAgICAgPGl1cy1pY29uLXhzIGljb25OYW1lPVwiaWNvbi1lbWVyZ2VuY3ktaG9tZVwiIGNsYXNzPVwiaWNvbi1lbWVyZ2VuY3ktaG9tZVwiPjwvaXVzLWljb24teHM+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9keS1zbSB0eHQtdGVyIGZlY2hhXCI+e3tmZWNoYVByaW5jaXBhbCB8IGRhdGU6ICdkIE1NTSB5J319PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYnV0dG9ucy1ob3ZlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeSBpY29uTmFtZT1cImljb24tbWFyay1jaGF0LXJlYWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2l1c1BvcG92ZXJDb250ZW50XT1cInJlYWQgPyAnTWFyY2FyIGNvbW8gbm8gbGXDrWRvJyA6ICdNYXJjYXIgY29tbyBsZcOtZG8nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChidXR0b25DbGlja2VkKT1cImNsaWNrQnV0dG9uUmVhZCgkZXZlbnQpXCI+PC9pdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeT5cbiAgICAgICAgICAgICAgICAgICAgPGl1cy1idXR0b24tY2lyY2xlLXRlcnRpYXJ5IGljb25OYW1lPVwiaWNvbi1jb250ZW50LWNvcHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaXVzUG9wb3ZlckNvbnRlbnQ9XCJDb3BpYXIgaW5mb3JtYWNpw7NuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChidXR0b25DbGlja2VkKT1cImNsaWNrQnV0dG9uQ29weSgkZXZlbnQpXCI+PC9pdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeT5cbiAgICAgICAgICAgICAgICAgICAgPGl1cy1idXR0b24tY2lyY2xlLXRlcnRpYXJ5IGljb25OYW1lPVwiaWNvbi1kb25lLW91dGxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2l1c1BvcG92ZXJDb250ZW50XT1cImRvbmUgPyAnTWFyY2FyIGNvbW8gYWJpZXJ0YScgOiAnTWFyY2FyIGNvbW8gaGVjaGEnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChidXR0b25DbGlja2VkKT1cImNsaWNrQnV0dG9uRG9uZSgkZXZlbnQpXCI+PC9pdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeT5cbiAgICAgICAgICAgICAgICAgICAgPGl1cy1idXR0b24tY2lyY2xlLXRlcnRpYXJ5IGljb25OYW1lPVwiaWNvbi1lZGl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl1c1BvcG92ZXJDb250ZW50PVwiRWRpdGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChidXR0b25DbGlja2VkKT1cImNsaWNrQnV0dG9uRWRpdCgkZXZlbnQpXCI+PC9pdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeT5cbiAgICAgICAgICAgICAgICAgICAgPGl1cy1idXR0b24tY2lyY2xlLXRlcnRpYXJ5IGljb25OYW1lPVwiaWNvbi1kZWxldGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaXVzUG9wb3ZlckNvbnRlbnQ9XCJFbGltaW5hclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoYnV0dG9uQ2xpY2tlZCk9XCJjbGlja0J1dHRvbkRlbGV0ZSgkZXZlbnQpXCI+PC9pdXMtYnV0dG9uLWNpcmNsZS10ZXJ0aWFyeT5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxpdXMtaWNvbi1zbSBbaWNvbk5hbWVdPVwiY29sbGFwc2UgPyAnaWNvbi1rZXlib2FyZC1hcnJvdy1kb3duJyA6ICdpY29uLWtleWJvYXJkLWFycm93LXVwJ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0eHQtcHJ5XCI+PC9pdXMtaWNvbi1zbT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImN0bi1jb2xsYXBzZS1jYXJkXCIgW25nQ2xhc3NdPVwieydjb2xsYXBzZWQnOiBjb2xsYXBzZX1cIj5cbiAgICAgICAgPGl1cy1zaW1wbGUtZGl2aWRlcj48L2l1cy1zaW1wbGUtZGl2aWRlcj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImN0bi1jbHBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdG4taW5mby1jbHBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1pbmZvXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtYmFzZVwiIFtuZ0NsYXNzXT1cImVzdGFkb0xhYmVsQ2xhc3NcIj57eyBlc3RhZG9MYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdy10ZXh0LTEgYm9keS1zbSB0eHQtdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2ZlY2hhSW5pY2lvIHwgZGF0ZTogJ2RkIE1NTSB5eXl5IGg6bW0gYSd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmVjaGFGaW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPi08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2ZlY2hhRmluIHwgZGF0ZTogJ2RkIE1NTSB5eXl5IGg6bW0gYSd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9keS1iYXNlLTEgdHh0LXByeVwiPnt7ZGVzY3JpcGNpb259fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChsaW5rKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImJvZHktc20gbGluay1hY3RpdmlkYWRcIiAoY2xpY2spPVwib3BlbkxpbmsoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpdXMtaWNvbi14cyBpY29uTmFtZT1cImljb24tbGluay0yXCI+PC9pdXMtaWNvbi14cz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBsaW5rIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==