general-library-union 3.3.61 → 3.3.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/src/app/core/componentes/formulariodinamico/formulariodinamico.component.mjs +3 -2
- package/esm2022/src/app/core/componentes/tabla-general/tabla-general.component.mjs +3 -3
- package/esm2022/src/app/core/componentes/template-tabla-vacia/template-tabla-vacia.component.mjs +1 -1
- package/esm2022/src/app/publico/pages/seleccion-rol/seleccion-rol.component.mjs +4 -3
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-campo-reporte/detalle-campo-reporte.component.mjs +4 -3
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-entrada-reporte/detalle-entrada-reporte.component.mjs +3 -3
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-punto-proceso-reporte/detalle-punto-proceso-reporte.component.mjs +4 -3
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.mjs +23 -3
- package/esm2022/src/app/webcommon/pages/ejecucion-reporte-externo/listado-ejecucion-reporte-externo/listado-ejecucion-reporte-externo.component.mjs +5 -4
- package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.mjs +4 -3
- package/esm2022/src/app/webcommon/pages/fuente/importar-fuente-general/importar-fuente-general.component.mjs +4 -3
- package/esm2022/src/app/webcommon/pages/fuente-reporte/fuente-reporte.component.mjs +5 -4
- package/esm2022/src/app/webcommon/pages/fuenteGeneral/fuente-general-servicio/fuente-general-servicio.component.mjs +4 -3
- package/esm2022/src/app/webcommon/pages/fuenteGeneral/mantenimiento-fuente-general/mantenimiento-fuente-general.page.mjs +4 -3
- package/esm2022/src/app/webcommon/popups/popup-campos-fuente-general/popup-campos-fuente-general.component.mjs +3 -2
- package/esm2022/src/app/webcommon/popups/popup-convertir-plantillas/popup-convertir-plantillas.component.mjs +5 -4
- package/esm2022/src/app/webcommon/popups/popup-editor-formula/popup-editor-formula.component.mjs +4 -3
- package/esm2022/src/app/webcommon/popups/popup-punto-proceso/popup-punto-proceso.component.mjs +4 -3
- package/esm2022/src/app/webcommon/popups/popup-recurso/popup-recurso.component.mjs +4 -3
- package/esm2022/src/app/webcommon/popups/popup-reporte/popup-reporte.component.mjs +5 -4
- package/esm2022/src/app/webcommon/popups/popup-tablas-fuente/popup-tablas-fuente.component.mjs +4 -3
- package/fesm2022/general-library-union.mjs +76 -57
- package/fesm2022/general-library-union.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/webcommon/pages/ejecucion-reporte/detalle-tipo-reporte/detalle-tipo-reporte.component.d.ts +1 -0
- package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.d.ts +1 -1
- package/src/assets/images/temaClaro/no-info.webp +0 -0
- package/src/assets/images/temaOscuro/no-info.webp +0 -0
package/esm2022/src/app/core/componentes/formulariodinamico/formulariodinamico.component.mjs
CHANGED
|
@@ -14,6 +14,7 @@ import { CommonModule } from '@angular/common';
|
|
|
14
14
|
import { InputNumberModule } from 'primeng/inputnumber';
|
|
15
15
|
import { AutoCompleteModule } from 'primeng/autocomplete';
|
|
16
16
|
import { TableModule } from 'primeng/table';
|
|
17
|
+
import { TemplateTablaVaciaComponent } from '../../componentes/template-tabla-vacia/template-tabla-vacia.component';
|
|
17
18
|
import * as i0 from "@angular/core";
|
|
18
19
|
import * as i1 from "../../../core/servicios/utils.service";
|
|
19
20
|
import * as i2 from "../../../shared/servicios/general.service";
|
|
@@ -257,7 +258,7 @@ export class FormulariodinamicoComponent {
|
|
|
257
258
|
}
|
|
258
259
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormulariodinamicoComponent, decorators: [{
|
|
259
260
|
type: Component,
|
|
260
|
-
args: [{ selector: 'formulario-dinamico', imports: [FormsModule, CalendarModule, CheckboxModule, InputTextareaModule, InputTextModule, RadioButtonModule, TooltipModule, DropdownModule, PasswordModule, CommonModule, InputNumberModule, AutoCompleteModule, HashDirective, TableModule], standalone: true, template: "<p-table [value]=\"campos\">\n <ng-template pTemplate=\"body\" let-campo>\n <tr *ngIf=\"validarVisibilidadCampos(campo)\">\n <td style=\"width: 20%;\">\n <label *ngIf=\"campo.editable != 'N'\" [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [class]=\"campo.tipo == 'I' ? 'font-bold color-400 mt-7' : ''\">\n {{ campo.descripcion }} \n <ng-container *ngIf=\"campo.editable != 'N' && campo.obligatorio\">*</ng-container>\n </label>\n </td>\n <td style=\"width: 80%\">\n <div class=\"p-fluid p-formgrid grid\">\n <div [ngClass]=\"campo.ayuda && campo.editable != 'N' ? 'col-11' : 'col-12'\">\n <!--campo tipo FECHA-->\n <p-calendar\n class=\"w-full\"\n appendTo=\"body\" \n type=\"text\"\n [(ngModel)]=\"campo.valor\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n dateFormat=\"dd/mm/yy\"\n [tabIndex]=\"campo.orden + 1\"\n *ngIf=\"campo.tipo == 'F' && campo.editable != 'N'\"\n [showIcon]=\"true\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n \n ></p-calendar>\n\n <!--campo tipo HORA-->\n <p-calendar\n class=\"w-full\"\n appendTo=\"body\" \n [(ngModel)]=\"campo.valor\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [tabIndex]=\"campo.orden + 1\"\n *ngIf=\"campo.tipo == 'X' && campo.editable != 'N'\"\n [showTime]=\"true\"\n [showSeconds]=\"true\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n ></p-calendar>\n\n <!--campo tipo HORA VALOR-->\n <input\n pInputText\n type=\"time\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [(ngModel)]=\"campo.valor\"\n [tabIndex]=\"campo.orden + 1\"\n *ngIf=\"campo.tipo == 'Z' && campo.editable != 'N'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n />\n\n <!--campo tipo TEXTO-->\n <input\n pInputText\n [disabled]=\"!editable || campo.editable == 'L'\"\n [(ngModel)]=\"campo.valor\"\n [tabIndex]=\"campo.orden + 1\"\n *ngIf=\"campo.tipo == 'T' && campo.editable != 'N'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n />\n\n <!--campo tipo AREA TEXTO-->\n <textarea\n pInputTextarea\n [(ngModel)]=\"campo.valor\"\n rows=\"5\"\n cols=\"5\"\n [tabIndex]=\"campo.orden + 1\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n *ngIf=\"campo.tipo == 'A' && campo.editable != 'N'\"\n class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n >\n </textarea>\n\n <!--campo tipo NUMERO-->\n <p-inputNumber\n [disabled]=\"!editable || campo.editable == 'L'\"\n [(ngModel)]=\"campo.valor\"\n [tabIndex]=\"campo.orden + 1\"\n [maxlength]=\"campo.longitud\"\n *ngIf=\"campo.tipo == 'N' && campo.editable != 'N'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n >\n </p-inputNumber>\n\n <!--campo tipo DECIMAL-->\n <p-inputNumber\n [disabled]=\"!editable || campo.editable == 'L'\"\n [(ngModel)]=\"campo.valor\"\n mode=\"decimal\"\n [minFractionDigits]=\"2\"\n *ngIf=\"campo.tipo == 'D' && campo.editable != 'N'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n >\n </p-inputNumber>\n\n <!--campo tipo SECRET-->\n <p-password\n [feedback]=\"false\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [(ngModel)]=\"campo.valor\"\n [tabIndex]=\"campo.orden + 1\"\n *ngIf=\"campo.tipo == 'S' && campo.editable != 'N'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n ></p-password>\n\n <!--campo tipo COMBO-->\n <p-dropdown\n class=\"w-full\"\n appendTo=\"body\"\n [options]=\"campo.lista\"\n [autoDisplayFirst]=\"false\"\n [(ngModel)]=\"campo.valor\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n *ngIf=\"campo.tipo == 'C' && campo.editable != 'N'\"\n [showClear]=\"!campo.obligatorio\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n >\n </p-dropdown>\n\n <!--campo tipo LOGICO-->\n <div *ngIf=\"campo.tipo == 'L' && campo.editable != 'N'\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid\">\n <div *ngFor=\"let valor of listaSiNoRadioButton\" class=\"mt-4 col-12 md:col-2 field-checkbox\">\n <p-radioButton\n [inputId]=\"valor.key\"\n name=\"valor\"\n [value]=\"valor.key\"\n [label]=\"valor.name\"\n [(ngModel)]=\"campo.valor\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n ></p-radioButton>\n <label> </label>\n </div>\n </div>\n </div>\n </div>\n <!--campo tipo RADIO-->\n <div *ngIf=\"campo.tipo == 'R' && campo.editable != 'N'\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid\">\n <div *ngFor=\"let valor of campo.lista\" class=\"mt-4 col-12 md:col-2 field-checkbox\">\n <p-radioButton\n [inputId]=\"valor.value\"\n name=\"valor\"\n [value]=\"valor.value\"\n [label]=\"valor.label\"\n [(ngModel)]=\"campo.valor\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n ></p-radioButton>\n </div>\n </div>\n </div>\n </div>\n\n <!--campo tipo CHECKBOX-->\n <div *ngIf=\"campo.tipo == 'H' && campo.editable != 'N'\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid\">\n <div *ngFor=\"let valor of campo.lista\" class=\"col-12 md:col-3 field-checkbox\">\n <p-checkbox\n [inputId]=\"valor.value\"\n name=\"valor\"\n [value]=\"valor\"\n [(ngModel)]=\"campo.valor\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n ></p-checkbox>\n <label [for]=\"valor.value\">{{ valor.label }}</label>\n </div>\n </div>\n </div>\n </div>\n\n <!--campo tipo AUTOCOMPLETAR-->\n <p-autoComplete\n *ngIf=\"\n (campo.tipo == 'O' || campo.tipo == 'Y') && campo.editable != 'N'\n \"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [(ngModel)]=\"campo.valor\"\n [suggestions]=\"campo.listaAutocompleteFiltrada\"\n (completeMethod)=\"campo.filtrarAutocomplete($event)\"\n field=\"label\"\n [dropdown]=\"true\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n >\n <ng-template let-valor pTemplate=\"item\">\n <div>\n <div>{{ valor.label }}</div>\n </div>\n </ng-template>\n </p-autoComplete>\n\n <!--campo tipo POPUP-->\n <div class=\"field\" *ngIf=\"campo.tipo == 'P' && campo.editable != 'N'\" >\n <ng-container *ngFor=\"let item of campo.listaPopups\" [hash]=\"item\"></ng-container>\n </div>\n <div *ngIf=\"verMensajeFuncion\" class=\"text-center w-1\">\n <label>{{ campo.mensajeFuncion }}</label>\n </div>\n <div *ngIf=\"isMensaje\">\n <label style=\"color: red\" *ngIf=\"campo.mensaje\">{{ campo.mensaje }}</label>\n </div>\n </div>\n\n <div *ngIf=\"campo.ayuda && campo.editable != 'N'\" class=\"col-1 contenedor\" >\n <span\n class=\"w-1rem\"\n style=\"color: var(--color-400)\"\n tooltipStyleClass=\"tw-250\"\n [hideDelay]=\"1800\"\n pTooltip=\"{{ campo.ayuda }}\"\n tooltipPosition=\"top\"\n *ngIf=\"campo.ayuda && campo.editable != 'N'\"\n ><i class=\"pi pi-question-circle\"></i\n ></span>\n </div>\n </div>\n </td>\n </tr>\n </ng-template>\n</p-table>", styles: [".contenedor{display:flex;justify-content:center;align-items:center}:host ::ng-deep .subtitulo{display:table;margin-top:12px;margin-bottom:30px}:host ::ng-deep .subtitulo label{position:absolute;font-weight:600;color:#232323}:host ::ng-deep .p-datatable table{background:#fafafa}\n"] }]
|
|
261
|
+
args: [{ selector: 'formulario-dinamico', imports: [FormsModule, CalendarModule, CheckboxModule, InputTextareaModule, InputTextModule, RadioButtonModule, TooltipModule, DropdownModule, PasswordModule, CommonModule, InputNumberModule, AutoCompleteModule, HashDirective, TableModule, TemplateTablaVaciaComponent], standalone: true, template: "<p-table [value]=\"campos\">\n <ng-template pTemplate=\"body\" let-campo>\n <tr *ngIf=\"validarVisibilidadCampos(campo)\">\n <td style=\"width: 20%;\">\n <label *ngIf=\"campo.editable != 'N'\" [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [class]=\"campo.tipo == 'I' ? 'font-bold color-400 mt-7' : ''\">\n {{ campo.descripcion }} \n <ng-container *ngIf=\"campo.editable != 'N' && campo.obligatorio\">*</ng-container>\n </label>\n </td>\n <td style=\"width: 80%\">\n <div class=\"p-fluid p-formgrid grid\">\n <div [ngClass]=\"campo.ayuda && campo.editable != 'N' ? 'col-11' : 'col-12'\">\n <!--campo tipo FECHA-->\n <p-calendar\n class=\"w-full\"\n appendTo=\"body\" \n type=\"text\"\n [(ngModel)]=\"campo.valor\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n dateFormat=\"dd/mm/yy\"\n [tabIndex]=\"campo.orden + 1\"\n *ngIf=\"campo.tipo == 'F' && campo.editable != 'N'\"\n [showIcon]=\"true\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n \n ></p-calendar>\n\n <!--campo tipo HORA-->\n <p-calendar\n class=\"w-full\"\n appendTo=\"body\" \n [(ngModel)]=\"campo.valor\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [tabIndex]=\"campo.orden + 1\"\n *ngIf=\"campo.tipo == 'X' && campo.editable != 'N'\"\n [showTime]=\"true\"\n [showSeconds]=\"true\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n ></p-calendar>\n\n <!--campo tipo HORA VALOR-->\n <input\n pInputText\n type=\"time\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [(ngModel)]=\"campo.valor\"\n [tabIndex]=\"campo.orden + 1\"\n *ngIf=\"campo.tipo == 'Z' && campo.editable != 'N'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n />\n\n <!--campo tipo TEXTO-->\n <input\n pInputText\n [disabled]=\"!editable || campo.editable == 'L'\"\n [(ngModel)]=\"campo.valor\"\n [tabIndex]=\"campo.orden + 1\"\n *ngIf=\"campo.tipo == 'T' && campo.editable != 'N'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n />\n\n <!--campo tipo AREA TEXTO-->\n <textarea\n pInputTextarea\n [(ngModel)]=\"campo.valor\"\n rows=\"5\"\n cols=\"5\"\n [tabIndex]=\"campo.orden + 1\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n *ngIf=\"campo.tipo == 'A' && campo.editable != 'N'\"\n class=\"w-full p-inputtextarea p-inputtext p-component p-element min-h-100 max-h-250\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n >\n </textarea>\n\n <!--campo tipo NUMERO-->\n <p-inputNumber\n [disabled]=\"!editable || campo.editable == 'L'\"\n [(ngModel)]=\"campo.valor\"\n [tabIndex]=\"campo.orden + 1\"\n [maxlength]=\"campo.longitud\"\n *ngIf=\"campo.tipo == 'N' && campo.editable != 'N'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n >\n </p-inputNumber>\n\n <!--campo tipo DECIMAL-->\n <p-inputNumber\n [disabled]=\"!editable || campo.editable == 'L'\"\n [(ngModel)]=\"campo.valor\"\n mode=\"decimal\"\n [minFractionDigits]=\"2\"\n *ngIf=\"campo.tipo == 'D' && campo.editable != 'N'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n >\n </p-inputNumber>\n\n <!--campo tipo SECRET-->\n <p-password\n [feedback]=\"false\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [(ngModel)]=\"campo.valor\"\n [tabIndex]=\"campo.orden + 1\"\n *ngIf=\"campo.tipo == 'S' && campo.editable != 'N'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n ></p-password>\n\n <!--campo tipo COMBO-->\n <p-dropdown\n class=\"w-full\"\n appendTo=\"body\"\n [options]=\"campo.lista\"\n [autoDisplayFirst]=\"false\"\n [(ngModel)]=\"campo.valor\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n *ngIf=\"campo.tipo == 'C' && campo.editable != 'N'\"\n [showClear]=\"!campo.obligatorio\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n >\n </p-dropdown>\n\n <!--campo tipo LOGICO-->\n <div *ngIf=\"campo.tipo == 'L' && campo.editable != 'N'\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid\">\n <div *ngFor=\"let valor of listaSiNoRadioButton\" class=\"mt-4 col-12 md:col-2 field-checkbox\">\n <p-radioButton\n [inputId]=\"valor.key\"\n name=\"valor\"\n [value]=\"valor.key\"\n [label]=\"valor.name\"\n [(ngModel)]=\"campo.valor\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n ></p-radioButton>\n <label> </label>\n </div>\n </div>\n </div>\n </div>\n <!--campo tipo RADIO-->\n <div *ngIf=\"campo.tipo == 'R' && campo.editable != 'N'\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid\">\n <div *ngFor=\"let valor of campo.lista\" class=\"mt-4 col-12 md:col-2 field-checkbox\">\n <p-radioButton\n [inputId]=\"valor.value\"\n name=\"valor\"\n [value]=\"valor.value\"\n [label]=\"valor.label\"\n [(ngModel)]=\"campo.valor\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n ></p-radioButton>\n </div>\n </div>\n </div>\n </div>\n\n <!--campo tipo CHECKBOX-->\n <div *ngIf=\"campo.tipo == 'H' && campo.editable != 'N'\">\n <div class=\"col-md-12\">\n <div class=\"p-fluid p-formgrid grid\">\n <div *ngFor=\"let valor of campo.lista\" class=\"col-12 md:col-3 field-checkbox\">\n <p-checkbox\n [inputId]=\"valor.value\"\n name=\"valor\"\n [value]=\"valor\"\n [(ngModel)]=\"campo.valor\"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n ></p-checkbox>\n <label [for]=\"valor.value\">{{ valor.label }}</label>\n </div>\n </div>\n </div>\n </div>\n\n <!--campo tipo AUTOCOMPLETAR-->\n <p-autoComplete\n *ngIf=\"\n (campo.tipo == 'O' || campo.tipo == 'Y') && campo.editable != 'N'\n \"\n [disabled]=\"!editable || campo.editable == 'L'\"\n [(ngModel)]=\"campo.valor\"\n [suggestions]=\"campo.listaAutocompleteFiltrada\"\n (completeMethod)=\"campo.filtrarAutocomplete($event)\"\n field=\"label\"\n [dropdown]=\"true\"\n [style.color]=\"campo.resaltado ? 'var(--color-500) !important' : ''\"\n [pTooltip]=\"campo.novedad ? campo.novedad : null\" tooltipPosition=\"top\"\n [class.ng-dirty]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n [class.ng-invalid]=\"campo.obligatorio ? (!utilsService.validarCampoObligatorio(campo.valor) && validando) : false\"\n >\n <ng-template let-valor pTemplate=\"item\">\n <div>\n <div>{{ valor.label }}</div>\n </div>\n </ng-template>\n </p-autoComplete>\n\n <!--campo tipo POPUP-->\n <div class=\"field\" *ngIf=\"campo.tipo == 'P' && campo.editable != 'N'\" >\n <ng-container *ngFor=\"let item of campo.listaPopups\" [hash]=\"item\"></ng-container>\n </div>\n <div *ngIf=\"verMensajeFuncion\" class=\"text-center w-1\">\n <label>{{ campo.mensajeFuncion }}</label>\n </div>\n <div *ngIf=\"isMensaje\">\n <label style=\"color: red\" *ngIf=\"campo.mensaje\">{{ campo.mensaje }}</label>\n </div>\n </div>\n\n <div *ngIf=\"campo.ayuda && campo.editable != 'N'\" class=\"col-1 contenedor\" >\n <span\n class=\"w-1rem\"\n style=\"color: var(--color-400)\"\n tooltipStyleClass=\"tw-250\"\n [hideDelay]=\"1800\"\n pTooltip=\"{{ campo.ayuda }}\"\n tooltipPosition=\"top\"\n *ngIf=\"campo.ayuda && campo.editable != 'N'\"\n ><i class=\"pi pi-question-circle\"></i\n ></span>\n </div>\n </div>\n </td>\n </tr>\n </ng-template>\n</p-table>", styles: [".contenedor{display:flex;justify-content:center;align-items:center}:host ::ng-deep .subtitulo{display:table;margin-top:12px;margin-bottom:30px}:host ::ng-deep .subtitulo label{position:absolute;font-weight:600;color:#232323}:host ::ng-deep .p-datatable table{background:#fafafa}\n"] }]
|
|
261
262
|
}], ctorParameters: () => [{ type: i1.UtilsService }, { type: i2.GeneralService }, { type: i3.AuthService }], propDecorators: { campos: [{
|
|
262
263
|
type: Input
|
|
263
264
|
}], vcr: [{
|
|
@@ -273,4 +274,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
273
274
|
}], isMensaje: [{
|
|
274
275
|
type: Input
|
|
275
276
|
}] } });
|
|
276
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXVsYXJpb2RpbmFtaWNvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9jb21wb25lbnRlcy9mb3JtdWxhcmlvZGluYW1pY28vZm9ybXVsYXJpb2RpbmFtaWNvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9jb21wb25lbnRlcy9mb3JtdWxhcmlvZGluYW1pY28vZm9ybXVsYXJpb2RpbmFtaWNvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsS0FBSyxFQUE4QixTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUF3QyxNQUFNLGVBQWUsQ0FBQztBQUV6SyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJbEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJB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Qiw2VUFBRSxhQUFhLHNYQUFFLGNBQWMsNHFDQUFFLGNBQWMsOGdCQUFFLFlBQVksZ1dBQUUsaUJBQWlCLDB2QkFBRSxrQkFBa0IsK3NDQUFFLGFBQWEsb0VBQUUsV0FBVzs7MkZBS3JPLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDRSxxQkFBcUIsV0FDcEIsQ0FBQyxXQUFXLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsY0FDbk8sSUFBSTt3SUFNVCxNQUFNO3NCQUFkLEtBQUs7Z0JBRTJDLEdBQUc7c0JBQW5ELFNBQVM7dUJBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUNWLE1BQU07c0JBQTFDLFlBQVk7dUJBQUMsYUFBYTtnQkFDbEIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25DaGFuZ2VzLCBJbnB1dCwgT25Jbml0LCBDb21wb25lbnRSZWYsIFR5cGUsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3QsIEFmdGVyVmlld0luaXQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbXBvRm9ybXVsYXJpb01vZGVsIH0gZnJvbSAnLi9vYmpldG9zZm9ybXVsYXJpby9DYW1wb0Zvcm11bGFyaW8nO1xuaW1wb3J0IHsgSGFzaERpcmVjdGl2ZSB9IGZyb20gJy4vb2JqZXRvc2Zvcm11bGFyaW8vSGFzaERpcmVjdGl2ZSc7XG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2lvcy91dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IEdlbmVyYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2lvcy9nZW5lcmFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNpb3MvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IENhbWJpbyB9IGZyb20gJy4vb2JqZXRvc2Zvcm11bGFyaW8vQ2FtYmlvJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcbmltcG9ydCB7IENoZWNrYm94TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jaGVja2JveCc7XG5pbXBvcnQgeyBJbnB1dFRleHRhcmVhTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHRhcmVhJztcbmltcG9ydCB7IElucHV0VGV4dE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaW5wdXR0ZXh0JztcbmltcG9ydCB7IFJhZGlvQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9yYWRpb2J1dHRvbic7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcbmltcG9ydCB7IERyb3Bkb3duTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XG5pbXBvcnQgeyBQYXNzd29yZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcGFzc3dvcmQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElucHV0TnVtYmVyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dG51bWJlcic7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmb3JtdWxhcmlvLWRpbmFtaWNvJyxcbiAgICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIENhbGVuZGFyTW9kdWxlLCBDaGVja2JveE1vZHVsZSwgSW5wdXRUZXh0YXJlYU1vZHVsZSwgSW5wdXRUZXh0TW9kdWxlLCBSYWRpb0J1dHRvbk1vZHVsZSwgVG9vbHRpcE1vZHVsZSwgRHJvcGRvd25Nb2R1bGUsIFBhc3N3b3JkTW9kdWxlLCBDb21tb25Nb2R1bGUsIElucHV0TnVtYmVyTW9kdWxlLCBBdXRvQ29tcGxldGVNb2R1bGUsIEhhc2hEaXJlY3RpdmUsIFRhYmxlTW9kdWxlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtdWxhcmlvZGluYW1pY28uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtdWxhcmlvZGluYW1pY28uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtdWxhcmlvZGluYW1pY29Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgY2FtcG9zOiBDYW1wb0Zvcm11bGFyaW9Nb2RlbFtdO1xuICBsaXN0YVNpTm9SYWRpb0J1dHRvbjogYW55W10gPSBbeyBuYW1lOiAnU2knLCBrZXk6ICdTJyB9LCB7IG5hbWU6ICdObycsIGtleTogJ04nIH1dO1xuICBAVmlld0NoaWxkICgncG9wdXAnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgdmNyOiBWaWV3Q29udGFpbmVyUmVmO1xuICBAVmlld0NoaWxkcmVuKEhhc2hEaXJlY3RpdmUpIHByaXZhdGUgaGFzaGVzOiBRdWVyeUxpc3Q8SGFzaERpcmVjdGl2ZT47XG4gIEBJbnB1dCgpIGVkaXRhYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSBvYmpldG86IGFueTtcbiAgQElucHV0KCkgaXNNZW5zYWplOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyB2YWxpZGFuZG86IGJvb2xlYW4gPSBmYWxzZTsgIFxuICB2ZXJNZW5zYWplRnVuY2lvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgYXV0b1pJbmRleDogc3RyaW5nID0gJ3RydWUnO1xuICBwdWJsaWMgbGlzdGFDb21wUmVmOiB7dmFsdWU6IENvbXBvbmVudFJlZjxhbnk+LCBsYWJlbDogc3RyaW5nfVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHVibGljIHV0aWxzU2VydmljZTogVXRpbHNTZXJ2aWNlLCBwcml2YXRlIGdlbmVyYWxTZXJ2aWNlOiBHZW5lcmFsU2VydmljZSwgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpIHsgfVxuXG4gIG5nT25DaGFuZ2VzKCl7XG4gICBcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBcbiAgICB0aGlzLnZlck1lbnNhamVGdW5jaW9uID0gZmFsc2U7XG4gICAgdGhpcy5saXN0YUNvbXBSZWYgPSBbXTtcbiAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbXBvID0+IHtcbiAgICAgIGlmKGNhbXBvLm1lbnNhamVGdW5jaW9uKXtcbiAgICAgICAgdGhpcy52ZXJNZW5zYWplRnVuY2lvbiA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoY2FtcG8udGlwbyA9PSAnUCcpe1xuICAgICAgICBpZiAoY2FtcG8ucG9wdXBDb21wb25lbnQpe1xuICAgICAgICAgIHRoaXMubW9zdHJhclBvcHVwRm9ybXVsYXJpbyhjYW1wbykudGhlbihkYXRhID0+IHt9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gICAgdGhpcy5jYW1wb3Muc29ydCgoYSwgYikgPT4gYS5vcmRlbiAtIGIub3JkZW4pO1xuXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIG1vZGlmaWNhcihvYmpldG86IGFueSwgZWRpdGFibGU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmxpbXBpYXIoKTtcblx0XHR0aGlzLm9iamV0byA9IG9iamV0bztcblx0XHR0aGlzLmVkaXRhYmxlID0gZWRpdGFibGU7XG4gICAgdGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICBpZiAoIWNhbXBvLmNhcmFjdGVyaXN0aWNhKXtcbiAgICAgICAgZm9yIChsZXQgYXRyaWJ1dG8gaW4gb2JqZXRvKSB7XG4gICAgICAgICAgbGV0IHZhbG9yID0gb2JqZXRvW2F0cmlidXRvXTtcbiAgICAgICAgICBpZiAoYXRyaWJ1dG8gPT0gY2FtcG8uY2FtcG8pe1xuICAgICAgICAgICAgdGhpcy5jYXJnYXJWYWxvcihjYW1wby5jYW1wbywgdmFsb3IsIG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYoY2FtcG8uY2FtcG9EZXBlbmRlIT0gbnVsbCl7XG5cdFx0XHRcdHRoaXMuY2FtcG9zLmZvckVhY2goY2FtcG8yID0+IHtcblx0XHRcdFx0XHRpZihjYW1wbzIuY2FtcG8gPT0gY2FtcG8uY2FtcG9EZXBlbmRlKXtcblx0XHRcdFx0XHRcdGNhbXBvMi5jYW1wb1JlZmVyZW5jaWEgPSBjYW1wby52YWxvcjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9XG4gICAgfSlcbiAgICBcbiAgICB0aGlzLmNhbXBvcy5zb3J0KChhLCBiKSA9PiBhLm9yZGVuIC0gYi5vcmRlbik7XG5cdH1cblxuICBtb2RpZmljYXJWYWxvckNhbXBvc0FkaWNpb25hbGVzKG9iamV0bzogYW55LCBpZEdydXBvOiBzdHJpbmcpIHtcblx0XHR0aGlzLm9iamV0byA9IG9iamV0bztcbiAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbXBvID0+IHtcbiAgICAgIGlmKGlkR3J1cG8gPT0gY2FtcG8uaWRHcnVwb1BlcnRlbmVjZSkge1xuICAgICAgICBpZiAoIWNhbXBvLmNhcmFjdGVyaXN0aWNhKXtcbiAgICAgICAgICBmb3IgKGxldCBhdHJpYnV0byBpbiBvYmpldG8pIHtcbiAgICAgICAgICAgIGxldCB2YWxvciA9IG9iamV0b1thdHJpYnV0b107XG4gICAgICAgICAgICBpZiAoYXRyaWJ1dG8gPT0gY2FtcG8uY2FtcG8pe1xuICAgICAgICAgICAgICB0aGlzLmNhcmdhclZhbG9yKGNhbXBvLmNhbXBvLCB2YWxvciwgbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmKGNhbXBvLmNhbXBvRGVwZW5kZSE9IG51bGwpe1xuICAgICAgICAgIHRoaXMuY2FtcG9zLmZvckVhY2goY2FtcG8yID0+IHtcbiAgICAgICAgICAgIGlmKGNhbXBvMi5jYW1wbyA9PSBjYW1wby5jYW1wb0RlcGVuZGUpe1xuICAgICAgICAgICAgICBjYW1wbzIuY2FtcG9SZWZlcmVuY2lhID0gY2FtcG8udmFsb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgfSlcbiAgICBcbiAgICB0aGlzLmNhbXBvcy5zb3J0KChhLCBiKSA9PiBhLm9yZGVuIC0gYi5vcmRlbik7XG4gIH1cblxuICBndWFyZGFyKCl7XG4gICAgdGhpcy5jYW1wb3MuZm9yRWFjaChkYXRhID0+IHtcbiAgICB9KVxuICB9XG5cbiAgc2V0VmFsb3JQb3B1cChvYmpldG8pe1xuICB9XG5cbiAgYXN5bmMgbG9hZENvbXBvbmVudER5bmFtaWM8VD4oY2FtcG86IENhbXBvRm9ybXVsYXJpb01vZGVsLCBjb21wb25lbnQ6IFR5cGU8VD4sIHByb3BzOiBQYXJ0aWFsPFQ+KSB7XG4gICAgdmFyIGNvbnRhaW5lciA9ICAgdGhpcy5nZXRDb250YWluZXJGb3IoY2FtcG8ucG9wdXApXG4gICAgY29udGFpbmVyLmNsZWFyKCk7XG4gICAgY29uc3QgaGFzUHJvcHM6IGJvb2xlYW4gPSAhIU9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGg7XG4gICAgY29uc3QgY29tcFJlZjogQ29tcG9uZW50UmVmPGFueT4gPSBjb250YWluZXIuY3JlYXRlQ29tcG9uZW50KCBjb21wb25lbnQgKTsgLy9Bbmd1bGFyIDEzXG4gICAgXG4gICAgaWYgKGhhc1Byb3BzKSB7XG4gICAgICBmb3IgKGxldCBrZXkgb2YgT2JqZWN0LmtleXMocHJvcHMpKSB7XG4gICAgICAgIGNvbXBSZWYuaW5zdGFuY2Vba2V5XSA9IHByb3BzW2tleV07XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGNvbXBvbmVudGUgPSBuZXcgY2FtcG8ucG9wdXBDb21wb25lbnQoKTtcbiAgICBpZignZ2V0RGVzY3JpcGNpb25MbGF2ZScgaW4gY29tcG9uZW50ZSApe1xuICAgICAgY29tcFJlZi5pbnN0YW5jZVsnbGFiZWwnXSA9IGF3YWl0IGNvbXBvbmVudGUuZ2V0RGVzY3JpcGNpb25MbGF2ZSh0aGlzLmdlbmVyYWxTZXJ2aWNlLCB0aGlzLmF1dGhTZXJ2aWNlLCBjYW1wby52YWxvciwgY2FtcG8pXG4gICAgfVxuICAgIHRoaXMubGlzdGFDb21wUmVmLnB1c2goe3ZhbHVlOmNvbXBSZWYsIGxhYmVsOiBjYW1wby5wb3B1cH0pO1xuICB9XG5cbiAgZ2V0Q29udGFpbmVyRm9yKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmhhc2hlcy5maW5kKHggPT4geC5oYXNoID09PSBuYW1lKS52Y1JlZjtcbiAgfVxuXG4gIGFzeW5jIG1vc3RyYXJQb3B1cEZvcm11bGFyaW8oY2FtcG86IENhbXBvRm9ybXVsYXJpb01vZGVsKXtcbiAgICBhd2FpdCB0aGlzLmxvYWRDb21wb25lbnREeW5hbWljKGNhbXBvLCBjYW1wby5wb3B1cENvbXBvbmVudCwgY2FtcG8ucHJvcGllZGFkZXNQb3B1cENvbXBvbmVudClcbiAgICAgIFxuICB9XG5cbiAgdmFsaWRhcigpOiBib29sZWFue1xuICAgIHRoaXMudmFsaWRhbmRvID0gdHJ1ZTtcbiAgICB2YXIgdmFsaWRhZG9yID0gdHJ1ZTtcbiAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbXBvID0+IHtcbiAgICAgIGlmIChjYW1wby50aXBvID09ICdQJykge1xuICAgICAgICBjb25zb2xlLmxvZygnZW50cmEgdGlwbyBwJyk7XG4gICAgICAgIGNvbnNvbGUubG9nKGNhbXBvKVxuICAgICAgICAvL3ZhciBjb250YWluZXIgPSAgIHRoaXMuZ2V0Q29udGFpbmVyRm9yKGNhbXBvLnBvcHVwKVxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmxpc3RhQ29tcFJlZilcbiAgICAgICAgdmFyIGxpc3RhUmVzdWx0YWRvID0gdGhpcy5saXN0YUNvbXBSZWYuZmlsdGVyKGRhdGEgPT4gZGF0YS5sYWJlbCA9PSBjYW1wby5wb3B1cCk7XG4gICAgICAgIGlmIChsaXN0YVJlc3VsdGFkby5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdmFyIGZpbHRyb0NvbXBvbmVudGUgPSBsaXN0YVJlc3VsdGFkb1swXS52YWx1ZTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhmaWx0cm9Db21wb25lbnRlKVxuICAgICAgICAgIGZpbHRyb0NvbXBvbmVudGUuaW5zdGFuY2VbJ2Jvb2xlYW5vJ10gPSBjYW1wby5vYmxpZ2F0b3JpbyAmJiAhdGhpcy51dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpO1xuICAgICAgICAgIGZpbHRyb0NvbXBvbmVudGUuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGZpbHRyb0NvbXBvbmVudGUpXG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICB9XG4gICAgICBpZiAoY2FtcG8ub2JsaWdhdG9yaW8gJiYgIXRoaXMudXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAgKXtcbiAgICAgICAgdmFsaWRhZG9yID0gdmFsaWRhZG9yICYmIGZhbHNlO1xuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIHZhbGlkYWRvcjtcbiAgfVxuXG4gIGdldE9iamVjdG8oKTogYW55e1xuICAgIHZhciBjYW1wb3MyID0gdGhpcy5jYW1wb3MuZmlsdGVyKGRhdGEgPT4gIWRhdGEuY2FyYWN0ZXJpc3RpY2EpO1xuICAgIGNhbXBvczIuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICB0aGlzLm9iamV0b1tjYW1wby5jYW1wb10gPSBjYW1wby52YWxvcjtcbiAgICB9KVxuICAgIHJldHVybiB0aGlzLm9iamV0bztcbiAgfVxuXG4gIGNhbXBvc0NhcmFjdGVyaXN0aWNhQ2xlYXIoKXtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY2FtcG9zLmxlbmd0aDsgaSsrKXtcbiAgICAgIGlmICh0aGlzLmNhbXBvc1tpXS5jYXJhY3RlcmlzdGljYSl7XG4gICAgICAgIHRoaXMuY2FtcG9zLnNwbGljZShpLCAxKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNhcmdhclZhbG9yKGNhbXBvOiBzdHJpbmcsIHZhbG9yOiBhbnksIGRhdG86IGFueSkge1xuICAgIHRoaXMuY2FtcG9zLmZvckVhY2goY2FtcG9GID0+IHtcbiAgICAgIGlmIChjYW1wb0YuY2FtcG8gPT0gY2FtcG8pIHtcbiAgICAgICAgLy9jYW1wb0YuY2FyZ2FyKHZhbG9yKTtcbiAgICAgICAgY2FtcG9GLnZhbG9yID0gdmFsb3I7XG4gICAgICAgIGNhbXBvRi5kYXRvID0gZGF0bztcbiAgICAgIH1cblx0XHR9KVxuXHR9XG4gIFxuICBnZXRDYW1wb3NDYXJhY3RlcmlzdGljYSgpIHtcblx0XHR2YXIgY2FtcG9zUmV0dXJuOiBDYW1wb0Zvcm11bGFyaW9Nb2RlbFtdID0gW107XG5cdFx0dGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICBpZiAoY2FtcG8uY2FyYWN0ZXJpc3RpY2EpIHtcbiAgICAgICAgY2FtcG9zUmV0dXJuLnB1c2goY2FtcG8pO1xuICAgICAgfVxuXHRcdH0pXG5cdFx0cmV0dXJuIGNhbXBvc1JldHVybjtcbiAgfVxuXG4gIG9idGVuZXJDYW1wbyhjYW1wbzogc3RyaW5nKXtcbiAgICB2YXIgcmV0b3JubyA9IG51bGxcbiAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbSA9PiB7XG4gICAgICBpZihjYW0uY2FtcG8gIT0gbnVsbCAmJiBjYW0uY2FtcG8gPT0gY2FtcG8pe1xuICAgICAgICAgIHJldG9ybm8gPSBjYW07XG4gICAgICB9XG4gICAgfSlcblx0XHRyZXR1cm4gcmV0b3Jubztcblx0fVxuXG4gIGxpbXBpYXIoKSB7XG4gICAgaWYgKHRoaXMuY2FtcG9zICE9IG51bGwgJiYgdGhpcy5jYW1wb3MubGVuZ3RoID4gMCl7XG4gICAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbXBvID0+IHtcbiAgICAgICAgY2FtcG8udmFsb3IgPSBudWxsO1xuICAgICAgICBjYW1wby5yZXNhbHRhZG8gPSBmYWxzZTtcbiAgICAgICAgY2FtcG8ubWVuc2FqZUZ1bmNpb24gPSBudWxsO1xuICAgICAgfSlcbiAgICB9XG4gIH1cbiAgXG4gIHZhbGlkYXJWaXNpYmlsaWRhZENhbXBvcyhjYW1wbzogQ2FtcG9Gb3JtdWxhcmlvTW9kZWwpOiBib29sZWFuIHtcblxuICAgIGlmICgoY2FtcG8udGlwbyA9PSAnTicgJiYgY2FtcG8uZWRpdGFibGUgPT0gJ04nKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZWRpdGFyUGVybWlzb0NhbXBvc1BvcklkR3J1cG8oaWRHcnVwbzogc3RyaW5nLCBwZXJtaXNvQ2FtcG86IHN0cmluZykge1xuICAgIHRoaXMuY2FtcG9zLmZvckVhY2goY2FtcG8gPT4ge1xuICAgICAgaWYgKGlkR3J1cG8gIT0gY2FtcG8uaWRHcnVwb1BlcnRlbmVjZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2FtcG8uZWRpdGFibGUgPSBwZXJtaXNvQ2FtcG87XG4gICAgfSlcbiAgfVxuXG4gIGdldENhbWJpb3MoKTogQ2FtYmlvW10ge1xuICAgIGNvbnN0IGNhbWJpb3M6IENhbWJpb1tdID0gW107XG4gICAgZm9yIChjb25zdCBjYW1wbyBvZiB0aGlzLmNhbXBvcykge1xuICAgICAgaWYgKGNhbXBvLmlzQ2FtYmlvKCkpIHtcbiAgICAgICAgY2FtYmlvcy5wdXNoKG5ldyBDYW1iaW8oY2FtcG8ub3JpZ2luYWwsIGNhbXBvLnZhbG9yLCBjYW1wbykpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2FtYmlvcztcbiAgfVxuXG4gIHJlbW92ZXJDYW1wb3NJZEdydXBvKGlkR3J1cG86IHN0cmluZykge1xuICAgIHZhciBjYW1wb3NSZW1vdmVyOiBDYW1wb0Zvcm11bGFyaW9Nb2RlbFtdID0gW107XG4gICAgdGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICBpZiAoaWRHcnVwbyAhPSBjYW1wby5pZEdydXBvUGVydGVuZWNlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNhbXBvc1JlbW92ZXIucHVzaChjYW1wbyk7XG4gICAgfSlcbiAgICB0aGlzLmNhbXBvcyA9IHRoaXMuY2FtcG9zLmZpbHRlcihvYmogPT4gIWNhbXBvc1JlbW92ZXIuc29tZShvYmpFbGltaW5hciA9PiBvYmpFbGltaW5hci5jYW1wbyA9PT0gb2JqLmNhbXBvKSk7XG5cbiAgfVxuXG59XG4iLCI8cC10YWJsZSBbdmFsdWVdPVwiY2FtcG9zXCI+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWNhbXBvPlxuICAgIDx0ciAqbmdJZj1cInZhbGlkYXJWaXNpYmlsaWRhZENhbXBvcyhjYW1wbylcIj5cbiAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiAyMCU7XCI+XG4gICAgICAgIDxsYWJlbCAqbmdJZj1cImNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbY2xhc3NdPVwiY2FtcG8udGlwbyAgPT0gJ0knID8gJ2ZvbnQtYm9sZCBjb2xvci00MDAgbXQtNycgOiAnJ1wiPlxuICAgICAgICAgICAge3sgY2FtcG8uZGVzY3JpcGNpb24gfX0gXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FtcG8uZWRpdGFibGUgIT0gJ04nICYmIGNhbXBvLm9ibGlnYXRvcmlvXCI+KjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC90ZD5cbiAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA4MCVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBncmlkXCI+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiY2FtcG8uYXl1ZGEgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nID8gJ2NvbC0xMScgOiAnY29sLTEyJ1wiPlxuICAgICAgICA8IS0tY2FtcG8gdGlwbyBGRUNIQS0tPlxuICAgICAgICA8cC1jYWxlbmRhclxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgIGRhdGVGb3JtYXQ9XCJkZC9tbS95eVwiXG4gICAgICAgICAgW3RhYkluZGV4XT1cImNhbXBvLm9yZGVuICsgMVwiXG4gICAgICAgICAgKm5nSWY9XCJjYW1wby50aXBvID09ICdGJyAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIlxuICAgICAgICAgIFtzaG93SWNvbl09XCJ0cnVlXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgW2NsYXNzLm5nLWludmFsaWRdPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICA+PC9wLWNhbGVuZGFyPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIEhPUkEtLT5cbiAgICAgICAgPHAtY2FsZW5kYXJcbiAgICAgICAgICBjbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgIFt0YWJJbmRleF09XCJjYW1wby5vcmRlbiArIDFcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnWCcgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICBbc2hvd1RpbWVdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Nob3dTZWNvbmRzXT1cInRydWVcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICA+PC9wLWNhbGVuZGFyPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIEhPUkEgVkFMT1ItLT5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgcElucHV0VGV4dFxuICAgICAgICAgIHR5cGU9XCJ0aW1lXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW3RhYkluZGV4XT1cImNhbXBvLm9yZGVuICsgMVwiXG4gICAgICAgICAgKm5nSWY9XCJjYW1wby50aXBvID09ICdaJyAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIFRFWFRPLS0+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHBJbnB1dFRleHRcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW3RhYkluZGV4XT1cImNhbXBvLm9yZGVuICsgMVwiXG4gICAgICAgICAgKm5nSWY9XCJjYW1wby50aXBvID09ICdUJyAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIEFSRUEgVEVYVE8tLT5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgcElucHV0VGV4dGFyZWFcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICByb3dzPVwiNVwiXG4gICAgICAgICAgY29scz1cIjVcIlxuICAgICAgICAgIFt0YWJJbmRleF09XCJjYW1wby5vcmRlbiArIDFcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgY2FtcG8uZWRpdGFibGUgPT0gJ0wnXCJcbiAgICAgICAgICAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ0EnICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiXG4gICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcC1pbnB1dHRleHRhcmVhIHAtaW5wdXR0ZXh0IHAtY29tcG9uZW50IHAtZWxlbWVudCBtaW4taC0xMDAgbWF4LWgtMjUwXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgW2NsYXNzLm5nLWludmFsaWRdPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3RleHRhcmVhPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIE5VTUVSTy0tPlxuICAgICAgICA8cC1pbnB1dE51bWJlclxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgY2FtcG8uZWRpdGFibGUgPT0gJ0wnXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICBbdGFiSW5kZXhdPVwiY2FtcG8ub3JkZW4gKyAxXCJcbiAgICAgICAgICBbbWF4bGVuZ3RoXT1cImNhbXBvLmxvbmdpdHVkXCJcbiAgICAgICAgICAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ04nICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIERFQ0lNQUwtLT5cbiAgICAgICAgPHAtaW5wdXROdW1iZXJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgbW9kZT1cImRlY2ltYWxcIlxuICAgICAgICAgIFttaW5GcmFjdGlvbkRpZ2l0c109XCIyXCJcbiAgICAgICAgICAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ0QnICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIFNFQ1JFVC0tPlxuICAgICAgICA8cC1wYXNzd29yZFxuICAgICAgICAgIFtmZWVkYmFja109XCJmYWxzZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY2FtcG8udmFsb3JcIlxuICAgICAgICAgIFt0YWJJbmRleF09XCJjYW1wby5vcmRlbiArIDFcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnUycgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgW2NsYXNzLm5nLWludmFsaWRdPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgPjwvcC1wYXNzd29yZD5cblxuICAgICAgICA8IS0tY2FtcG8gdGlwbyBDT01CTy0tPlxuICAgICAgICA8cC1kcm9wZG93blxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxuICAgICAgICAgIFtvcHRpb25zXT1cImNhbXBvLmxpc3RhXCJcbiAgICAgICAgICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnQycgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICBbc2hvd0NsZWFyXT1cIiFjYW1wby5vYmxpZ2F0b3Jpb1wiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9wLWRyb3Bkb3duPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIExPR0lDTy0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnTCcgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBncmlkXCI+XG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHZhbG9yIG9mIGxpc3RhU2lOb1JhZGlvQnV0dG9uXCIgY2xhc3M9XCJtdC00IGNvbC0xMiBtZDpjb2wtMiBmaWVsZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgIDxwLXJhZGlvQnV0dG9uXG4gICAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCJ2YWxvci5rZXlcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cInZhbG9yXCJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWxvci5rZXlcIlxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInZhbG9yLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgICAgICAgID48L3AtcmFkaW9CdXR0b24+XG4gICAgICAgICAgICAgICAgPGxhYmVsPiAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gUkFESU8tLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ1InICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgZ3JpZFwiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB2YWxvciBvZiBjYW1wby5saXN0YVwiIGNsYXNzPVwibXQtNCBjb2wtMTIgbWQ6Y29sLTIgZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgPHAtcmFkaW9CdXR0b25cbiAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCJ2YWxvci52YWx1ZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInZhbG9yXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwidmFsb3IudmFsdWVcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ2YWxvci5sYWJlbFwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgICAgICA+PC9wLXJhZGlvQnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gQ0hFQ0tCT1gtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ0gnICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgZ3JpZFwiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB2YWxvciBvZiBjYW1wby5saXN0YVwiIGNsYXNzPVwiY29sLTEyIG1kOmNvbC0zIGZpZWxkLWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgW2lucHV0SWRdPVwidmFsb3IudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ2YWxvclwiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgID48L3AtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cInZhbG9yLnZhbHVlXCI+e3sgdmFsb3IubGFiZWwgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gQVVUT0NPTVBMRVRBUi0tPlxuICAgICAgICA8cC1hdXRvQ29tcGxldGVcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgKGNhbXBvLnRpcG8gPT0gJ08nIHx8IGNhbXBvLnRpcG8gPT0gJ1knKSAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgY2FtcG8uZWRpdGFibGUgPT0gJ0wnXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICBbc3VnZ2VzdGlvbnNdPVwiY2FtcG8ubGlzdGFBdXRvY29tcGxldGVGaWx0cmFkYVwiXG4gICAgICAgICAgKGNvbXBsZXRlTWV0aG9kKT1cImNhbXBvLmZpbHRyYXJBdXRvY29tcGxldGUoJGV2ZW50KVwiXG4gICAgICAgICAgZmllbGQ9XCJsYWJlbFwiXG4gICAgICAgICAgW2Ryb3Bkb3duXT1cInRydWVcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YWxvciBwVGVtcGxhdGU9XCJpdGVtXCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8ZGl2Pnt7IHZhbG9yLmxhYmVsIH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3AtYXV0b0NvbXBsZXRlPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIFBPUFVQLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnUCcgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCIgPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjYW1wby5saXN0YVBvcHVwc1wiIFtoYXNoXT1cIml0ZW1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ2ZXJNZW5zYWplRnVuY2lvblwiIGNsYXNzPVwidGV4dC1jZW50ZXIgdy0xXCI+XG4gICAgICAgICAgPGxhYmVsPnt7IGNhbXBvLm1lbnNhamVGdW5jaW9uIH19PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc01lbnNhamVcIj5cbiAgICAgICAgICA8bGFiZWwgc3R5bGU9XCJjb2xvcjogcmVkXCIgKm5nSWY9XCJjYW1wby5tZW5zYWplXCI+e3sgY2FtcG8ubWVuc2FqZSB9fTwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY2FtcG8uYXl1ZGEgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCIgY2xhc3M9XCJjb2wtMSBjb250ZW5lZG9yXCIgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwidy0xcmVtXCJcbiAgICAgICAgICBzdHlsZT1cImNvbG9yOiB2YXIoLS1jb2xvci00MDApXCJcbiAgICAgICAgICB0b29sdGlwU3R5bGVDbGFzcz1cInR3LTI1MFwiXG4gICAgICAgICAgW2hpZGVEZWxheV09XCIxODAwXCJcbiAgICAgICAgICBwVG9vbHRpcD1cInt7IGNhbXBvLmF5dWRhIH19XCJcbiAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8uYXl1ZGEgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICA+PGkgY2xhc3M9XCJwaSBwaS1xdWVzdGlvbi1jaXJjbGVcIj48L2lcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLXRhYmxlPiJdfQ==
|
|
277
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXVsYXJpb2RpbmFtaWNvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9jb21wb25lbnRlcy9mb3JtdWxhcmlvZGluYW1pY28vZm9ybXVsYXJpb2RpbmFtaWNvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9jb21wb25lbnRlcy9mb3JtdWxhcmlvZGluYW1pY28vZm9ybXVsYXJpb2RpbmFtaWNvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsS0FBSyxFQUE4QixTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUF3QyxNQUFNLGVBQWUsQ0FBQztBQUV6SyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJbEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJB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Q0FBRSxjQUFjLGdaQUFFLG1CQUFtQixxS0FBRSxlQUFlLHdIQUFFLGlCQUFpQiw2VUFBRSxhQUFhLHNYQUFFLGNBQWMsNHFDQUFFLGNBQWMsOGdCQUFFLFlBQVksZ1dBQUUsaUJBQWlCLDB2QkFBRSxrQkFBa0IsK3NDQUFFLGFBQWEsb0VBQUUsV0FBVzs7MkZBS3JPLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDRSxxQkFBcUIsV0FDcEIsQ0FBQyxXQUFXLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsMkJBQTJCLENBQUMsY0FDaFEsSUFBSTt3SUFNVCxNQUFNO3NCQUFkLEtBQUs7Z0JBRTJDLEdBQUc7c0JBQW5ELFNBQVM7dUJBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUNWLE1BQU07c0JBQTFDLFlBQVk7dUJBQUMsYUFBYTtnQkFDbEIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25DaGFuZ2VzLCBJbnB1dCwgT25Jbml0LCBDb21wb25lbnRSZWYsIFR5cGUsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3QsIEFmdGVyVmlld0luaXQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbXBvRm9ybXVsYXJpb01vZGVsIH0gZnJvbSAnLi9vYmpldG9zZm9ybXVsYXJpby9DYW1wb0Zvcm11bGFyaW8nO1xuaW1wb3J0IHsgSGFzaERpcmVjdGl2ZSB9IGZyb20gJy4vb2JqZXRvc2Zvcm11bGFyaW8vSGFzaERpcmVjdGl2ZSc7XG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2lvcy91dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IEdlbmVyYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2lvcy9nZW5lcmFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNpb3MvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IENhbWJpbyB9IGZyb20gJy4vb2JqZXRvc2Zvcm11bGFyaW8vQ2FtYmlvJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcbmltcG9ydCB7IENoZWNrYm94TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jaGVja2JveCc7XG5pbXBvcnQgeyBJbnB1dFRleHRhcmVhTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHRhcmVhJztcbmltcG9ydCB7IElucHV0VGV4dE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaW5wdXR0ZXh0JztcbmltcG9ydCB7IFJhZGlvQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9yYWRpb2J1dHRvbic7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcbmltcG9ydCB7IERyb3Bkb3duTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XG5pbXBvcnQgeyBQYXNzd29yZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcGFzc3dvcmQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElucHV0TnVtYmVyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dG51bWJlcic7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgVGVtcGxhdGVUYWJsYVZhY2lhQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50ZXMvdGVtcGxhdGUtdGFibGEtdmFjaWEvdGVtcGxhdGUtdGFibGEtdmFjaWEuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm9ybXVsYXJpby1kaW5hbWljbycsXG4gICAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBDYWxlbmRhck1vZHVsZSwgQ2hlY2tib3hNb2R1bGUsIElucHV0VGV4dGFyZWFNb2R1bGUsIElucHV0VGV4dE1vZHVsZSwgUmFkaW9CdXR0b25Nb2R1bGUsIFRvb2x0aXBNb2R1bGUsIERyb3Bkb3duTW9kdWxlLCBQYXNzd29yZE1vZHVsZSwgQ29tbW9uTW9kdWxlLCBJbnB1dE51bWJlck1vZHVsZSwgQXV0b0NvbXBsZXRlTW9kdWxlLCBIYXNoRGlyZWN0aXZlLCBUYWJsZU1vZHVsZSwgVGVtcGxhdGVUYWJsYVZhY2lhQ29tcG9uZW50XSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtdWxhcmlvZGluYW1pY28uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtdWxhcmlvZGluYW1pY28uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtdWxhcmlvZGluYW1pY29Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgY2FtcG9zOiBDYW1wb0Zvcm11bGFyaW9Nb2RlbFtdO1xuICBsaXN0YVNpTm9SYWRpb0J1dHRvbjogYW55W10gPSBbeyBuYW1lOiAnU2knLCBrZXk6ICdTJyB9LCB7IG5hbWU6ICdObycsIGtleTogJ04nIH1dO1xuICBAVmlld0NoaWxkICgncG9wdXAnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgdmNyOiBWaWV3Q29udGFpbmVyUmVmO1xuICBAVmlld0NoaWxkcmVuKEhhc2hEaXJlY3RpdmUpIHByaXZhdGUgaGFzaGVzOiBRdWVyeUxpc3Q8SGFzaERpcmVjdGl2ZT47XG4gIEBJbnB1dCgpIGVkaXRhYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSBvYmpldG86IGFueTtcbiAgQElucHV0KCkgaXNNZW5zYWplOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyB2YWxpZGFuZG86IGJvb2xlYW4gPSBmYWxzZTsgIFxuICB2ZXJNZW5zYWplRnVuY2lvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgYXV0b1pJbmRleDogc3RyaW5nID0gJ3RydWUnO1xuICBwdWJsaWMgbGlzdGFDb21wUmVmOiB7dmFsdWU6IENvbXBvbmVudFJlZjxhbnk+LCBsYWJlbDogc3RyaW5nfVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHVibGljIHV0aWxzU2VydmljZTogVXRpbHNTZXJ2aWNlLCBwcml2YXRlIGdlbmVyYWxTZXJ2aWNlOiBHZW5lcmFsU2VydmljZSwgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpIHsgfVxuXG4gIG5nT25DaGFuZ2VzKCl7XG4gICBcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBcbiAgICB0aGlzLnZlck1lbnNhamVGdW5jaW9uID0gZmFsc2U7XG4gICAgdGhpcy5saXN0YUNvbXBSZWYgPSBbXTtcbiAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbXBvID0+IHtcbiAgICAgIGlmKGNhbXBvLm1lbnNhamVGdW5jaW9uKXtcbiAgICAgICAgdGhpcy52ZXJNZW5zYWplRnVuY2lvbiA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoY2FtcG8udGlwbyA9PSAnUCcpe1xuICAgICAgICBpZiAoY2FtcG8ucG9wdXBDb21wb25lbnQpe1xuICAgICAgICAgIHRoaXMubW9zdHJhclBvcHVwRm9ybXVsYXJpbyhjYW1wbykudGhlbihkYXRhID0+IHt9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gICAgdGhpcy5jYW1wb3Muc29ydCgoYSwgYikgPT4gYS5vcmRlbiAtIGIub3JkZW4pO1xuXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIG1vZGlmaWNhcihvYmpldG86IGFueSwgZWRpdGFibGU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmxpbXBpYXIoKTtcblx0XHR0aGlzLm9iamV0byA9IG9iamV0bztcblx0XHR0aGlzLmVkaXRhYmxlID0gZWRpdGFibGU7XG4gICAgdGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICBpZiAoIWNhbXBvLmNhcmFjdGVyaXN0aWNhKXtcbiAgICAgICAgZm9yIChsZXQgYXRyaWJ1dG8gaW4gb2JqZXRvKSB7XG4gICAgICAgICAgbGV0IHZhbG9yID0gb2JqZXRvW2F0cmlidXRvXTtcbiAgICAgICAgICBpZiAoYXRyaWJ1dG8gPT0gY2FtcG8uY2FtcG8pe1xuICAgICAgICAgICAgdGhpcy5jYXJnYXJWYWxvcihjYW1wby5jYW1wbywgdmFsb3IsIG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYoY2FtcG8uY2FtcG9EZXBlbmRlIT0gbnVsbCl7XG5cdFx0XHRcdHRoaXMuY2FtcG9zLmZvckVhY2goY2FtcG8yID0+IHtcblx0XHRcdFx0XHRpZihjYW1wbzIuY2FtcG8gPT0gY2FtcG8uY2FtcG9EZXBlbmRlKXtcblx0XHRcdFx0XHRcdGNhbXBvMi5jYW1wb1JlZmVyZW5jaWEgPSBjYW1wby52YWxvcjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9XG4gICAgfSlcbiAgICBcbiAgICB0aGlzLmNhbXBvcy5zb3J0KChhLCBiKSA9PiBhLm9yZGVuIC0gYi5vcmRlbik7XG5cdH1cblxuICBtb2RpZmljYXJWYWxvckNhbXBvc0FkaWNpb25hbGVzKG9iamV0bzogYW55LCBpZEdydXBvOiBzdHJpbmcpIHtcblx0XHR0aGlzLm9iamV0byA9IG9iamV0bztcbiAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbXBvID0+IHtcbiAgICAgIGlmKGlkR3J1cG8gPT0gY2FtcG8uaWRHcnVwb1BlcnRlbmVjZSkge1xuICAgICAgICBpZiAoIWNhbXBvLmNhcmFjdGVyaXN0aWNhKXtcbiAgICAgICAgICBmb3IgKGxldCBhdHJpYnV0byBpbiBvYmpldG8pIHtcbiAgICAgICAgICAgIGxldCB2YWxvciA9IG9iamV0b1thdHJpYnV0b107XG4gICAgICAgICAgICBpZiAoYXRyaWJ1dG8gPT0gY2FtcG8uY2FtcG8pe1xuICAgICAgICAgICAgICB0aGlzLmNhcmdhclZhbG9yKGNhbXBvLmNhbXBvLCB2YWxvciwgbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmKGNhbXBvLmNhbXBvRGVwZW5kZSE9IG51bGwpe1xuICAgICAgICAgIHRoaXMuY2FtcG9zLmZvckVhY2goY2FtcG8yID0+IHtcbiAgICAgICAgICAgIGlmKGNhbXBvMi5jYW1wbyA9PSBjYW1wby5jYW1wb0RlcGVuZGUpe1xuICAgICAgICAgICAgICBjYW1wbzIuY2FtcG9SZWZlcmVuY2lhID0gY2FtcG8udmFsb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgfSlcbiAgICBcbiAgICB0aGlzLmNhbXBvcy5zb3J0KChhLCBiKSA9PiBhLm9yZGVuIC0gYi5vcmRlbik7XG4gIH1cblxuICBndWFyZGFyKCl7XG4gICAgdGhpcy5jYW1wb3MuZm9yRWFjaChkYXRhID0+IHtcbiAgICB9KVxuICB9XG5cbiAgc2V0VmFsb3JQb3B1cChvYmpldG8pe1xuICB9XG5cbiAgYXN5bmMgbG9hZENvbXBvbmVudER5bmFtaWM8VD4oY2FtcG86IENhbXBvRm9ybXVsYXJpb01vZGVsLCBjb21wb25lbnQ6IFR5cGU8VD4sIHByb3BzOiBQYXJ0aWFsPFQ+KSB7XG4gICAgdmFyIGNvbnRhaW5lciA9ICAgdGhpcy5nZXRDb250YWluZXJGb3IoY2FtcG8ucG9wdXApXG4gICAgY29udGFpbmVyLmNsZWFyKCk7XG4gICAgY29uc3QgaGFzUHJvcHM6IGJvb2xlYW4gPSAhIU9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGg7XG4gICAgY29uc3QgY29tcFJlZjogQ29tcG9uZW50UmVmPGFueT4gPSBjb250YWluZXIuY3JlYXRlQ29tcG9uZW50KCBjb21wb25lbnQgKTsgLy9Bbmd1bGFyIDEzXG4gICAgXG4gICAgaWYgKGhhc1Byb3BzKSB7XG4gICAgICBmb3IgKGxldCBrZXkgb2YgT2JqZWN0LmtleXMocHJvcHMpKSB7XG4gICAgICAgIGNvbXBSZWYuaW5zdGFuY2Vba2V5XSA9IHByb3BzW2tleV07XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGNvbXBvbmVudGUgPSBuZXcgY2FtcG8ucG9wdXBDb21wb25lbnQoKTtcbiAgICBpZignZ2V0RGVzY3JpcGNpb25MbGF2ZScgaW4gY29tcG9uZW50ZSApe1xuICAgICAgY29tcFJlZi5pbnN0YW5jZVsnbGFiZWwnXSA9IGF3YWl0IGNvbXBvbmVudGUuZ2V0RGVzY3JpcGNpb25MbGF2ZSh0aGlzLmdlbmVyYWxTZXJ2aWNlLCB0aGlzLmF1dGhTZXJ2aWNlLCBjYW1wby52YWxvciwgY2FtcG8pXG4gICAgfVxuICAgIHRoaXMubGlzdGFDb21wUmVmLnB1c2goe3ZhbHVlOmNvbXBSZWYsIGxhYmVsOiBjYW1wby5wb3B1cH0pO1xuICB9XG5cbiAgZ2V0Q29udGFpbmVyRm9yKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmhhc2hlcy5maW5kKHggPT4geC5oYXNoID09PSBuYW1lKS52Y1JlZjtcbiAgfVxuXG4gIGFzeW5jIG1vc3RyYXJQb3B1cEZvcm11bGFyaW8oY2FtcG86IENhbXBvRm9ybXVsYXJpb01vZGVsKXtcbiAgICBhd2FpdCB0aGlzLmxvYWRDb21wb25lbnREeW5hbWljKGNhbXBvLCBjYW1wby5wb3B1cENvbXBvbmVudCwgY2FtcG8ucHJvcGllZGFkZXNQb3B1cENvbXBvbmVudClcbiAgICAgIFxuICB9XG5cbiAgdmFsaWRhcigpOiBib29sZWFue1xuICAgIHRoaXMudmFsaWRhbmRvID0gdHJ1ZTtcbiAgICB2YXIgdmFsaWRhZG9yID0gdHJ1ZTtcbiAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbXBvID0+IHtcbiAgICAgIGlmIChjYW1wby50aXBvID09ICdQJykge1xuICAgICAgICBjb25zb2xlLmxvZygnZW50cmEgdGlwbyBwJyk7XG4gICAgICAgIGNvbnNvbGUubG9nKGNhbXBvKVxuICAgICAgICAvL3ZhciBjb250YWluZXIgPSAgIHRoaXMuZ2V0Q29udGFpbmVyRm9yKGNhbXBvLnBvcHVwKVxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmxpc3RhQ29tcFJlZilcbiAgICAgICAgdmFyIGxpc3RhUmVzdWx0YWRvID0gdGhpcy5saXN0YUNvbXBSZWYuZmlsdGVyKGRhdGEgPT4gZGF0YS5sYWJlbCA9PSBjYW1wby5wb3B1cCk7XG4gICAgICAgIGlmIChsaXN0YVJlc3VsdGFkby5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdmFyIGZpbHRyb0NvbXBvbmVudGUgPSBsaXN0YVJlc3VsdGFkb1swXS52YWx1ZTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhmaWx0cm9Db21wb25lbnRlKVxuICAgICAgICAgIGZpbHRyb0NvbXBvbmVudGUuaW5zdGFuY2VbJ2Jvb2xlYW5vJ10gPSBjYW1wby5vYmxpZ2F0b3JpbyAmJiAhdGhpcy51dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpO1xuICAgICAgICAgIGZpbHRyb0NvbXBvbmVudGUuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGZpbHRyb0NvbXBvbmVudGUpXG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICB9XG4gICAgICBpZiAoY2FtcG8ub2JsaWdhdG9yaW8gJiYgIXRoaXMudXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAgKXtcbiAgICAgICAgdmFsaWRhZG9yID0gdmFsaWRhZG9yICYmIGZhbHNlO1xuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIHZhbGlkYWRvcjtcbiAgfVxuXG4gIGdldE9iamVjdG8oKTogYW55e1xuICAgIHZhciBjYW1wb3MyID0gdGhpcy5jYW1wb3MuZmlsdGVyKGRhdGEgPT4gIWRhdGEuY2FyYWN0ZXJpc3RpY2EpO1xuICAgIGNhbXBvczIuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICB0aGlzLm9iamV0b1tjYW1wby5jYW1wb10gPSBjYW1wby52YWxvcjtcbiAgICB9KVxuICAgIHJldHVybiB0aGlzLm9iamV0bztcbiAgfVxuXG4gIGNhbXBvc0NhcmFjdGVyaXN0aWNhQ2xlYXIoKXtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY2FtcG9zLmxlbmd0aDsgaSsrKXtcbiAgICAgIGlmICh0aGlzLmNhbXBvc1tpXS5jYXJhY3RlcmlzdGljYSl7XG4gICAgICAgIHRoaXMuY2FtcG9zLnNwbGljZShpLCAxKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNhcmdhclZhbG9yKGNhbXBvOiBzdHJpbmcsIHZhbG9yOiBhbnksIGRhdG86IGFueSkge1xuICAgIHRoaXMuY2FtcG9zLmZvckVhY2goY2FtcG9GID0+IHtcbiAgICAgIGlmIChjYW1wb0YuY2FtcG8gPT0gY2FtcG8pIHtcbiAgICAgICAgLy9jYW1wb0YuY2FyZ2FyKHZhbG9yKTtcbiAgICAgICAgY2FtcG9GLnZhbG9yID0gdmFsb3I7XG4gICAgICAgIGNhbXBvRi5kYXRvID0gZGF0bztcbiAgICAgIH1cblx0XHR9KVxuXHR9XG4gIFxuICBnZXRDYW1wb3NDYXJhY3RlcmlzdGljYSgpIHtcblx0XHR2YXIgY2FtcG9zUmV0dXJuOiBDYW1wb0Zvcm11bGFyaW9Nb2RlbFtdID0gW107XG5cdFx0dGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICBpZiAoY2FtcG8uY2FyYWN0ZXJpc3RpY2EpIHtcbiAgICAgICAgY2FtcG9zUmV0dXJuLnB1c2goY2FtcG8pO1xuICAgICAgfVxuXHRcdH0pXG5cdFx0cmV0dXJuIGNhbXBvc1JldHVybjtcbiAgfVxuXG4gIG9idGVuZXJDYW1wbyhjYW1wbzogc3RyaW5nKXtcbiAgICB2YXIgcmV0b3JubyA9IG51bGxcbiAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbSA9PiB7XG4gICAgICBpZihjYW0uY2FtcG8gIT0gbnVsbCAmJiBjYW0uY2FtcG8gPT0gY2FtcG8pe1xuICAgICAgICAgIHJldG9ybm8gPSBjYW07XG4gICAgICB9XG4gICAgfSlcblx0XHRyZXR1cm4gcmV0b3Jubztcblx0fVxuXG4gIGxpbXBpYXIoKSB7XG4gICAgaWYgKHRoaXMuY2FtcG9zICE9IG51bGwgJiYgdGhpcy5jYW1wb3MubGVuZ3RoID4gMCl7XG4gICAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbXBvID0+IHtcbiAgICAgICAgY2FtcG8udmFsb3IgPSBudWxsO1xuICAgICAgICBjYW1wby5yZXNhbHRhZG8gPSBmYWxzZTtcbiAgICAgICAgY2FtcG8ubWVuc2FqZUZ1bmNpb24gPSBudWxsO1xuICAgICAgfSlcbiAgICB9XG4gIH1cbiAgXG4gIHZhbGlkYXJWaXNpYmlsaWRhZENhbXBvcyhjYW1wbzogQ2FtcG9Gb3JtdWxhcmlvTW9kZWwpOiBib29sZWFuIHtcblxuICAgIGlmICgoY2FtcG8udGlwbyA9PSAnTicgJiYgY2FtcG8uZWRpdGFibGUgPT0gJ04nKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZWRpdGFyUGVybWlzb0NhbXBvc1BvcklkR3J1cG8oaWRHcnVwbzogc3RyaW5nLCBwZXJtaXNvQ2FtcG86IHN0cmluZykge1xuICAgIHRoaXMuY2FtcG9zLmZvckVhY2goY2FtcG8gPT4ge1xuICAgICAgaWYgKGlkR3J1cG8gIT0gY2FtcG8uaWRHcnVwb1BlcnRlbmVjZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2FtcG8uZWRpdGFibGUgPSBwZXJtaXNvQ2FtcG87XG4gICAgfSlcbiAgfVxuXG4gIGdldENhbWJpb3MoKTogQ2FtYmlvW10ge1xuICAgIGNvbnN0IGNhbWJpb3M6IENhbWJpb1tdID0gW107XG4gICAgZm9yIChjb25zdCBjYW1wbyBvZiB0aGlzLmNhbXBvcykge1xuICAgICAgaWYgKGNhbXBvLmlzQ2FtYmlvKCkpIHtcbiAgICAgICAgY2FtYmlvcy5wdXNoKG5ldyBDYW1iaW8oY2FtcG8ub3JpZ2luYWwsIGNhbXBvLnZhbG9yLCBjYW1wbykpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2FtYmlvcztcbiAgfVxuXG4gIHJlbW92ZXJDYW1wb3NJZEdydXBvKGlkR3J1cG86IHN0cmluZykge1xuICAgIHZhciBjYW1wb3NSZW1vdmVyOiBDYW1wb0Zvcm11bGFyaW9Nb2RlbFtdID0gW107XG4gICAgdGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICBpZiAoaWRHcnVwbyAhPSBjYW1wby5pZEdydXBvUGVydGVuZWNlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNhbXBvc1JlbW92ZXIucHVzaChjYW1wbyk7XG4gICAgfSlcbiAgICB0aGlzLmNhbXBvcyA9IHRoaXMuY2FtcG9zLmZpbHRlcihvYmogPT4gIWNhbXBvc1JlbW92ZXIuc29tZShvYmpFbGltaW5hciA9PiBvYmpFbGltaW5hci5jYW1wbyA9PT0gb2JqLmNhbXBvKSk7XG5cbiAgfVxuXG59XG4iLCI8cC10YWJsZSBbdmFsdWVdPVwiY2FtcG9zXCI+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWNhbXBvPlxuICAgIDx0ciAqbmdJZj1cInZhbGlkYXJWaXNpYmlsaWRhZENhbXBvcyhjYW1wbylcIj5cbiAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiAyMCU7XCI+XG4gICAgICAgIDxsYWJlbCAqbmdJZj1cImNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbY2xhc3NdPVwiY2FtcG8udGlwbyAgPT0gJ0knID8gJ2ZvbnQtYm9sZCBjb2xvci00MDAgbXQtNycgOiAnJ1wiPlxuICAgICAgICAgICAge3sgY2FtcG8uZGVzY3JpcGNpb24gfX0gXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FtcG8uZWRpdGFibGUgIT0gJ04nICYmIGNhbXBvLm9ibGlnYXRvcmlvXCI+KjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC90ZD5cbiAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA4MCVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBncmlkXCI+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiY2FtcG8uYXl1ZGEgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nID8gJ2NvbC0xMScgOiAnY29sLTEyJ1wiPlxuICAgICAgICA8IS0tY2FtcG8gdGlwbyBGRUNIQS0tPlxuICAgICAgICA8cC1jYWxlbmRhclxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgIGRhdGVGb3JtYXQ9XCJkZC9tbS95eVwiXG4gICAgICAgICAgW3RhYkluZGV4XT1cImNhbXBvLm9yZGVuICsgMVwiXG4gICAgICAgICAgKm5nSWY9XCJjYW1wby50aXBvID09ICdGJyAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIlxuICAgICAgICAgIFtzaG93SWNvbl09XCJ0cnVlXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgW2NsYXNzLm5nLWludmFsaWRdPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICA+PC9wLWNhbGVuZGFyPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIEhPUkEtLT5cbiAgICAgICAgPHAtY2FsZW5kYXJcbiAgICAgICAgICBjbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgIFt0YWJJbmRleF09XCJjYW1wby5vcmRlbiArIDFcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnWCcgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICBbc2hvd1RpbWVdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Nob3dTZWNvbmRzXT1cInRydWVcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICA+PC9wLWNhbGVuZGFyPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIEhPUkEgVkFMT1ItLT5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgcElucHV0VGV4dFxuICAgICAgICAgIHR5cGU9XCJ0aW1lXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW3RhYkluZGV4XT1cImNhbXBvLm9yZGVuICsgMVwiXG4gICAgICAgICAgKm5nSWY9XCJjYW1wby50aXBvID09ICdaJyAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIFRFWFRPLS0+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHBJbnB1dFRleHRcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW3RhYkluZGV4XT1cImNhbXBvLm9yZGVuICsgMVwiXG4gICAgICAgICAgKm5nSWY9XCJjYW1wby50aXBvID09ICdUJyAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIEFSRUEgVEVYVE8tLT5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgcElucHV0VGV4dGFyZWFcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICByb3dzPVwiNVwiXG4gICAgICAgICAgY29scz1cIjVcIlxuICAgICAgICAgIFt0YWJJbmRleF09XCJjYW1wby5vcmRlbiArIDFcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgY2FtcG8uZWRpdGFibGUgPT0gJ0wnXCJcbiAgICAgICAgICAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ0EnICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiXG4gICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcC1pbnB1dHRleHRhcmVhIHAtaW5wdXR0ZXh0IHAtY29tcG9uZW50IHAtZWxlbWVudCBtaW4taC0xMDAgbWF4LWgtMjUwXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgW2NsYXNzLm5nLWludmFsaWRdPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3RleHRhcmVhPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIE5VTUVSTy0tPlxuICAgICAgICA8cC1pbnB1dE51bWJlclxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgY2FtcG8uZWRpdGFibGUgPT0gJ0wnXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICBbdGFiSW5kZXhdPVwiY2FtcG8ub3JkZW4gKyAxXCJcbiAgICAgICAgICBbbWF4bGVuZ3RoXT1cImNhbXBvLmxvbmdpdHVkXCJcbiAgICAgICAgICAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ04nICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIERFQ0lNQUwtLT5cbiAgICAgICAgPHAtaW5wdXROdW1iZXJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgbW9kZT1cImRlY2ltYWxcIlxuICAgICAgICAgIFttaW5GcmFjdGlvbkRpZ2l0c109XCIyXCJcbiAgICAgICAgICAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ0QnICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIFNFQ1JFVC0tPlxuICAgICAgICA8cC1wYXNzd29yZFxuICAgICAgICAgIFtmZWVkYmFja109XCJmYWxzZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY2FtcG8udmFsb3JcIlxuICAgICAgICAgIFt0YWJJbmRleF09XCJjYW1wby5vcmRlbiArIDFcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnUycgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgW2NsYXNzLm5nLWludmFsaWRdPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgPjwvcC1wYXNzd29yZD5cblxuICAgICAgICA8IS0tY2FtcG8gdGlwbyBDT01CTy0tPlxuICAgICAgICA8cC1kcm9wZG93blxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxuICAgICAgICAgIFtvcHRpb25zXT1cImNhbXBvLmxpc3RhXCJcbiAgICAgICAgICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnQycgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICBbc2hvd0NsZWFyXT1cIiFjYW1wby5vYmxpZ2F0b3Jpb1wiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9wLWRyb3Bkb3duPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIExPR0lDTy0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnTCcgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBncmlkXCI+XG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHZhbG9yIG9mIGxpc3RhU2lOb1JhZGlvQnV0dG9uXCIgY2xhc3M9XCJtdC00IGNvbC0xMiBtZDpjb2wtMiBmaWVsZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgIDxwLXJhZGlvQnV0dG9uXG4gICAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCJ2YWxvci5rZXlcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cInZhbG9yXCJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWxvci5rZXlcIlxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInZhbG9yLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgICAgICAgID48L3AtcmFkaW9CdXR0b24+XG4gICAgICAgICAgICAgICAgPGxhYmVsPiAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gUkFESU8tLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ1InICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgZ3JpZFwiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB2YWxvciBvZiBjYW1wby5saXN0YVwiIGNsYXNzPVwibXQtNCBjb2wtMTIgbWQ6Y29sLTIgZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgPHAtcmFkaW9CdXR0b25cbiAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCJ2YWxvci52YWx1ZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInZhbG9yXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwidmFsb3IudmFsdWVcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ2YWxvci5sYWJlbFwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgICAgICA+PC9wLXJhZGlvQnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gQ0hFQ0tCT1gtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ0gnICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgZ3JpZFwiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB2YWxvciBvZiBjYW1wby5saXN0YVwiIGNsYXNzPVwiY29sLTEyIG1kOmNvbC0zIGZpZWxkLWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgW2lucHV0SWRdPVwidmFsb3IudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ2YWxvclwiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgID48L3AtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cInZhbG9yLnZhbHVlXCI+e3sgdmFsb3IubGFiZWwgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gQVVUT0NPTVBMRVRBUi0tPlxuICAgICAgICA8cC1hdXRvQ29tcGxldGVcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgKGNhbXBvLnRpcG8gPT0gJ08nIHx8IGNhbXBvLnRpcG8gPT0gJ1knKSAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgY2FtcG8uZWRpdGFibGUgPT0gJ0wnXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICBbc3VnZ2VzdGlvbnNdPVwiY2FtcG8ubGlzdGFBdXRvY29tcGxldGVGaWx0cmFkYVwiXG4gICAgICAgICAgKGNvbXBsZXRlTWV0aG9kKT1cImNhbXBvLmZpbHRyYXJBdXRvY29tcGxldGUoJGV2ZW50KVwiXG4gICAgICAgICAgZmllbGQ9XCJsYWJlbFwiXG4gICAgICAgICAgW2Ryb3Bkb3duXT1cInRydWVcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YWxvciBwVGVtcGxhdGU9XCJpdGVtXCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8ZGl2Pnt7IHZhbG9yLmxhYmVsIH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3AtYXV0b0NvbXBsZXRlPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIFBPUFVQLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnUCcgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCIgPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjYW1wby5saXN0YVBvcHVwc1wiIFtoYXNoXT1cIml0ZW1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ2ZXJNZW5zYWplRnVuY2lvblwiIGNsYXNzPVwidGV4dC1jZW50ZXIgdy0xXCI+XG4gICAgICAgICAgPGxhYmVsPnt7IGNhbXBvLm1lbnNhamVGdW5jaW9uIH19PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc01lbnNhamVcIj5cbiAgICAgICAgICA8bGFiZWwgc3R5bGU9XCJjb2xvcjogcmVkXCIgKm5nSWY9XCJjYW1wby5tZW5zYWplXCI+e3sgY2FtcG8ubWVuc2FqZSB9fTwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY2FtcG8uYXl1ZGEgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCIgY2xhc3M9XCJjb2wtMSBjb250ZW5lZG9yXCIgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwidy0xcmVtXCJcbiAgICAgICAgICBzdHlsZT1cImNvbG9yOiB2YXIoLS1jb2xvci00MDApXCJcbiAgICAgICAgICB0b29sdGlwU3R5bGVDbGFzcz1cInR3LTI1MFwiXG4gICAgICAgICAgW2hpZGVEZWxheV09XCIxODAwXCJcbiAgICAgICAgICBwVG9vbHRpcD1cInt7IGNhbXBvLmF5dWRhIH19XCJcbiAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8uYXl1ZGEgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICA+PGkgY2xhc3M9XCJwaSBwaS1xdWVzdGlvbi1jaXJjbGVcIj48L2lcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLXRhYmxlPiJdfQ==
|
|
@@ -58,11 +58,11 @@ export class TablaGeneralComponent {
|
|
|
58
58
|
return new Date(obj);
|
|
59
59
|
}
|
|
60
60
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: TablaGeneralComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
61
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: TablaGeneralComponent, isStandalone: true, selector: "app-tabla-general", inputs: { dataKey: "dataKey", value: "value", columns: "columns", rows: "rows", totalRecords: "totalRecords", loading: "loading", ocultarFraccionador: "ocultarFraccionador" }, outputs: { onLoad: "onLoad", onRowSelect: "onRowSelect" }, host: { listeners: { "window:resize": "onResize()" } }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "table", first: true, predicate: Table, descendants: true }], ngImport: i0, template: "<p-table\n [dataKey]=\"dataKey\"\n [value]=\"value\"\n [columns]=\"columns\"\n selectionMode=\"single\"\n [scrollable]=\"true\"\n responsiveLayout=\"scroll\"\n scrollDirection=\"horizontal\"\n styleClass=\"p-datatable-striped\"\n [ngClass]=\"{ 'show-frozen': showFrozen }\"\n [paginator]=\"totalRecords > rows\"\n [rows]=\"rows\"\n [totalRecords]=\"totalRecords\"\n [rowsPerPageOptions]=\"ocultarFraccionador ? null : [10, 20, 50]\"\n [showCurrentPageReport]=\"true\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n [lazy]=\"true\" [loading]=\"loading\"\n (onLazyLoad)=\"onLoad.emit($event)\"\n (onRowSelect)=\"onRowSelect.emit($event.data)\"\n (onRowUnselect)=\"onRowSelect.emit($event.data)\"\n>\n <!-- Header Template-->\n <ng-template pTemplate=\"header\" let-columns>\n <ng-container *ngIf=\"headerTemplate; else header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: columns }\"></ng-container>\n </ng-container>\n <ng-template #header>\n <tr>\n <ng-container *ngFor=\"let col of columns\">\n <ng-container *ngIf=\"col.isFrozen; else headCell\">\n <th [style.font-weight]=\"500\" [style.width.px]=\"col.width || 200\" [style.flex]=\"'0 1 auto'\" pFrozenColumn>\n {{ col.header | titlecase }}\n </th>\n </ng-container>\n <ng-template #headCell>\n <th [style.width.px]=\"col.width || 200\" [style.flex]=\"(col.flexGrow || 1) + ' 1 auto'\">\n {{ col.header | titlecase }}\n </th>\n </ng-template>\n </ng-container>\n </tr>\n </ng-template>\n </ng-template>\n\n <!-- Body Template-->\n <ng-template\n pTemplate=\"body\"\n let-row\n let-rowIndex=\"rowIndex\"\n let-columns=\"columns\"\n let-expanded=\"expanded\"\n let-rowgroup=\"rowgroup\"\n let-rowspan=\"rowspan\"\n >\n <ng-container *ngIf=\"bodyTemplate; else body\">\n <ng-container\n *ngTemplateOutlet=\"\n bodyTemplate;\n context: { $implicit: row, rowIndex: rowIndex, columns: columns, expanded: expanded, rowgroup: rowgroup, rowspan: rowspan }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #body>\n <tr [pSelectableRow]=\"row\">\n <ng-container *ngFor=\"let col of columns\">\n <ng-container *ngIf=\"col.isFrozen; else bodyCell\">\n <td [style.font-weight]=\"500\" [style.width.px]=\"col.width || 200\" [style.flex]=\"'0 1 auto'\" pFrozenColumn>\n <ng-container *ngIf=\"col.values; else plainData\">\n {{ col.values[row[col.field]] }}\n </ng-container>\n </td>\n </ng-container>\n <ng-template #bodyCell>\n <td [style.width.px]=\"col.width || 200\" [style.flex]=\"(col.flexGrow || 1) + ' 1 auto'\">\n <ng-container *ngIf=\"col.values; else plainData\">\n {{ col.values[row[col.field]] }}\n </ng-container>\n </td>\n </ng-template>\n <ng-template #plainData>{{col.formatDate ? (parseDate(row[col.field]) | date : ('formatofecha' | translate )) : row[col.field] }}</ng-template>\n </ng-container>\n </tr>\n </ng-template>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n
|
|
61
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: TablaGeneralComponent, isStandalone: true, selector: "app-tabla-general", inputs: { dataKey: "dataKey", value: "value", columns: "columns", rows: "rows", totalRecords: "totalRecords", loading: "loading", ocultarFraccionador: "ocultarFraccionador" }, outputs: { onLoad: "onLoad", onRowSelect: "onRowSelect" }, host: { listeners: { "window:resize": "onResize()" } }, queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "table", first: true, predicate: Table, descendants: true }], ngImport: i0, template: "<p-table\n [dataKey]=\"dataKey\"\n [value]=\"value\"\n [columns]=\"columns\"\n selectionMode=\"single\"\n [scrollable]=\"true\"\n responsiveLayout=\"scroll\"\n scrollDirection=\"horizontal\"\n styleClass=\"p-datatable-striped\"\n [ngClass]=\"{ 'show-frozen': showFrozen }\"\n [paginator]=\"totalRecords > rows\"\n [rows]=\"rows\"\n [totalRecords]=\"totalRecords\"\n [rowsPerPageOptions]=\"ocultarFraccionador ? null : [10, 20, 50]\"\n [showCurrentPageReport]=\"true\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n [lazy]=\"true\" [loading]=\"loading\"\n (onLazyLoad)=\"onLoad.emit($event)\"\n (onRowSelect)=\"onRowSelect.emit($event.data)\"\n (onRowUnselect)=\"onRowSelect.emit($event.data)\"\n>\n <!-- Header Template-->\n <ng-template pTemplate=\"header\" let-columns>\n <ng-container *ngIf=\"headerTemplate; else header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: columns }\"></ng-container>\n </ng-container>\n <ng-template #header>\n <tr>\n <ng-container *ngFor=\"let col of columns\">\n <ng-container *ngIf=\"col.isFrozen; else headCell\">\n <th [style.font-weight]=\"500\" [style.width.px]=\"col.width || 200\" [style.flex]=\"'0 1 auto'\" pFrozenColumn>\n {{ col.header | titlecase }}\n </th>\n </ng-container>\n <ng-template #headCell>\n <th [style.width.px]=\"col.width || 200\" [style.flex]=\"(col.flexGrow || 1) + ' 1 auto'\">\n {{ col.header | titlecase }}\n </th>\n </ng-template>\n </ng-container>\n </tr>\n </ng-template>\n </ng-template>\n\n <!-- Body Template-->\n <ng-template\n pTemplate=\"body\"\n let-row\n let-rowIndex=\"rowIndex\"\n let-columns=\"columns\"\n let-expanded=\"expanded\"\n let-rowgroup=\"rowgroup\"\n let-rowspan=\"rowspan\"\n >\n <ng-container *ngIf=\"bodyTemplate; else body\">\n <ng-container\n *ngTemplateOutlet=\"\n bodyTemplate;\n context: { $implicit: row, rowIndex: rowIndex, columns: columns, expanded: expanded, rowgroup: rowgroup, rowspan: rowspan }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #body>\n <tr [pSelectableRow]=\"row\">\n <ng-container *ngFor=\"let col of columns\">\n <ng-container *ngIf=\"col.isFrozen; else bodyCell\">\n <td [style.font-weight]=\"500\" [style.width.px]=\"col.width || 200\" [style.flex]=\"'0 1 auto'\" pFrozenColumn>\n <ng-container *ngIf=\"col.values; else plainData\">\n {{ col.values[row[col.field]] }}\n </ng-container>\n </td>\n </ng-container>\n <ng-template #bodyCell>\n <td [style.width.px]=\"col.width || 200\" [style.flex]=\"(col.flexGrow || 1) + ' 1 auto'\">\n <ng-container *ngIf=\"col.values; else plainData\">\n {{ col.values[row[col.field]] }}\n </ng-container>\n </td>\n </ng-template>\n <ng-template #plainData>{{col.formatDate ? (parseDate(row[col.field]) | date : ('formatofecha' | translate )) : row[col.field] }}</ng-template>\n </ng-container>\n </tr>\n </ng-template>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\"> \n <app-template-tabla-vacia></app-template-tabla-vacia>\n </td>\n </tr>\n </ng-template></p-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: TableModule }, { kind: "component", type: i1.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll", "virtualRowHeight"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i1.FrozenColumn, selector: "[pFrozenColumn]", inputs: ["frozen", "alignFrozen"] }, { kind: "directive", type: i1.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "component", type: TemplateTablaVaciaComponent, selector: "app-template-tabla-vacia" }, { kind: "pipe", type: TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: PaginatorModule }] });
|
|
62
62
|
}
|
|
63
63
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: TablaGeneralComponent, decorators: [{
|
|
64
64
|
type: Component,
|
|
65
|
-
args: [{ selector: 'app-tabla-general', imports: [TableModule, TitleCasePipe, DatePipe, TranslateModule, CommonModule, PaginatorModule, TemplateTablaVaciaComponent], standalone: true, template: "<p-table\n [dataKey]=\"dataKey\"\n [value]=\"value\"\n [columns]=\"columns\"\n selectionMode=\"single\"\n [scrollable]=\"true\"\n responsiveLayout=\"scroll\"\n scrollDirection=\"horizontal\"\n styleClass=\"p-datatable-striped\"\n [ngClass]=\"{ 'show-frozen': showFrozen }\"\n [paginator]=\"totalRecords > rows\"\n [rows]=\"rows\"\n [totalRecords]=\"totalRecords\"\n [rowsPerPageOptions]=\"ocultarFraccionador ? null : [10, 20, 50]\"\n [showCurrentPageReport]=\"true\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n [lazy]=\"true\" [loading]=\"loading\"\n (onLazyLoad)=\"onLoad.emit($event)\"\n (onRowSelect)=\"onRowSelect.emit($event.data)\"\n (onRowUnselect)=\"onRowSelect.emit($event.data)\"\n>\n <!-- Header Template-->\n <ng-template pTemplate=\"header\" let-columns>\n <ng-container *ngIf=\"headerTemplate; else header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: columns }\"></ng-container>\n </ng-container>\n <ng-template #header>\n <tr>\n <ng-container *ngFor=\"let col of columns\">\n <ng-container *ngIf=\"col.isFrozen; else headCell\">\n <th [style.font-weight]=\"500\" [style.width.px]=\"col.width || 200\" [style.flex]=\"'0 1 auto'\" pFrozenColumn>\n {{ col.header | titlecase }}\n </th>\n </ng-container>\n <ng-template #headCell>\n <th [style.width.px]=\"col.width || 200\" [style.flex]=\"(col.flexGrow || 1) + ' 1 auto'\">\n {{ col.header | titlecase }}\n </th>\n </ng-template>\n </ng-container>\n </tr>\n </ng-template>\n </ng-template>\n\n <!-- Body Template-->\n <ng-template\n pTemplate=\"body\"\n let-row\n let-rowIndex=\"rowIndex\"\n let-columns=\"columns\"\n let-expanded=\"expanded\"\n let-rowgroup=\"rowgroup\"\n let-rowspan=\"rowspan\"\n >\n <ng-container *ngIf=\"bodyTemplate; else body\">\n <ng-container\n *ngTemplateOutlet=\"\n bodyTemplate;\n context: { $implicit: row, rowIndex: rowIndex, columns: columns, expanded: expanded, rowgroup: rowgroup, rowspan: rowspan }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #body>\n <tr [pSelectableRow]=\"row\">\n <ng-container *ngFor=\"let col of columns\">\n <ng-container *ngIf=\"col.isFrozen; else bodyCell\">\n <td [style.font-weight]=\"500\" [style.width.px]=\"col.width || 200\" [style.flex]=\"'0 1 auto'\" pFrozenColumn>\n <ng-container *ngIf=\"col.values; else plainData\">\n {{ col.values[row[col.field]] }}\n </ng-container>\n </td>\n </ng-container>\n <ng-template #bodyCell>\n <td [style.width.px]=\"col.width || 200\" [style.flex]=\"(col.flexGrow || 1) + ' 1 auto'\">\n <ng-container *ngIf=\"col.values; else plainData\">\n {{ col.values[row[col.field]] }}\n </ng-container>\n </td>\n </ng-template>\n <ng-template #plainData>{{col.formatDate ? (parseDate(row[col.field]) | date : ('formatofecha' | translate )) : row[col.field] }}</ng-template>\n </ng-container>\n </tr>\n </ng-template>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n
|
|
65
|
+
args: [{ selector: 'app-tabla-general', imports: [TableModule, TemplateTablaVaciaComponent, TitleCasePipe, DatePipe, TranslateModule, CommonModule, PaginatorModule, TemplateTablaVaciaComponent], standalone: true, template: "<p-table\n [dataKey]=\"dataKey\"\n [value]=\"value\"\n [columns]=\"columns\"\n selectionMode=\"single\"\n [scrollable]=\"true\"\n responsiveLayout=\"scroll\"\n scrollDirection=\"horizontal\"\n styleClass=\"p-datatable-striped\"\n [ngClass]=\"{ 'show-frozen': showFrozen }\"\n [paginator]=\"totalRecords > rows\"\n [rows]=\"rows\"\n [totalRecords]=\"totalRecords\"\n [rowsPerPageOptions]=\"ocultarFraccionador ? null : [10, 20, 50]\"\n [showCurrentPageReport]=\"true\"\n currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n [lazy]=\"true\" [loading]=\"loading\"\n (onLazyLoad)=\"onLoad.emit($event)\"\n (onRowSelect)=\"onRowSelect.emit($event.data)\"\n (onRowUnselect)=\"onRowSelect.emit($event.data)\"\n>\n <!-- Header Template-->\n <ng-template pTemplate=\"header\" let-columns>\n <ng-container *ngIf=\"headerTemplate; else header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: { $implicit: columns }\"></ng-container>\n </ng-container>\n <ng-template #header>\n <tr>\n <ng-container *ngFor=\"let col of columns\">\n <ng-container *ngIf=\"col.isFrozen; else headCell\">\n <th [style.font-weight]=\"500\" [style.width.px]=\"col.width || 200\" [style.flex]=\"'0 1 auto'\" pFrozenColumn>\n {{ col.header | titlecase }}\n </th>\n </ng-container>\n <ng-template #headCell>\n <th [style.width.px]=\"col.width || 200\" [style.flex]=\"(col.flexGrow || 1) + ' 1 auto'\">\n {{ col.header | titlecase }}\n </th>\n </ng-template>\n </ng-container>\n </tr>\n </ng-template>\n </ng-template>\n\n <!-- Body Template-->\n <ng-template\n pTemplate=\"body\"\n let-row\n let-rowIndex=\"rowIndex\"\n let-columns=\"columns\"\n let-expanded=\"expanded\"\n let-rowgroup=\"rowgroup\"\n let-rowspan=\"rowspan\"\n >\n <ng-container *ngIf=\"bodyTemplate; else body\">\n <ng-container\n *ngTemplateOutlet=\"\n bodyTemplate;\n context: { $implicit: row, rowIndex: rowIndex, columns: columns, expanded: expanded, rowgroup: rowgroup, rowspan: rowspan }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #body>\n <tr [pSelectableRow]=\"row\">\n <ng-container *ngFor=\"let col of columns\">\n <ng-container *ngIf=\"col.isFrozen; else bodyCell\">\n <td [style.font-weight]=\"500\" [style.width.px]=\"col.width || 200\" [style.flex]=\"'0 1 auto'\" pFrozenColumn>\n <ng-container *ngIf=\"col.values; else plainData\">\n {{ col.values[row[col.field]] }}\n </ng-container>\n </td>\n </ng-container>\n <ng-template #bodyCell>\n <td [style.width.px]=\"col.width || 200\" [style.flex]=\"(col.flexGrow || 1) + ' 1 auto'\">\n <ng-container *ngIf=\"col.values; else plainData\">\n {{ col.values[row[col.field]] }}\n </ng-container>\n </td>\n </ng-template>\n <ng-template #plainData>{{col.formatDate ? (parseDate(row[col.field]) | date : ('formatofecha' | translate )) : row[col.field] }}</ng-template>\n </ng-container>\n </tr>\n </ng-template>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\"> \n <app-template-tabla-vacia></app-template-tabla-vacia>\n </td>\n </tr>\n </ng-template></p-table>\n" }]
|
|
66
66
|
}], ctorParameters: () => [], propDecorators: { dataKey: [{
|
|
67
67
|
type: Input
|
|
68
68
|
}], value: [{
|
|
@@ -91,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
91
91
|
type: HostListener,
|
|
92
92
|
args: ['window:resize']
|
|
93
93
|
}] } });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGEtZ2VuZXJhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvY29tcG9uZW50ZXMvdGFibGEtZ2VuZXJhbC90YWJsYS1nZW5lcmFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9jb21wb25lbnRlcy90YWJsYS1nZW5lcmFsL3RhYmxhLWdlbmVyYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0RBQXdELENBQUM7Ozs7OztBQVNyRyxNQUFNLE9BQU8scUJBQXFCO0lBQ3ZCLE9BQU8sQ0FBUztJQUVoQixLQUFLLEdBQVUsRUFBRSxDQUFDO0lBRWxCLE9BQU8sR0FBa0IsRUFBRSxDQUFDO0lBRTVCLElBQUksQ0FBUztJQUViLFlBQVksQ0FBUztJQUVyQixPQUFPLENBQVU7SUFFakIsbUJBQW1CLENBQVU7SUFFNUIsTUFBTSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBRXBELFdBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVuQyxTQUFTLENBQTJCO0lBRWxELEtBQUssQ0FBUTtJQUUvQixjQUFjLENBQW1CO0lBQ2pDLFlBQVksQ0FBbUI7SUFDL0Isb0JBQW9CLENBQW1CO0lBRXZDLFVBQVUsR0FBWSxLQUFLLENBQUM7SUFDNUIsYUFBYSxHQUFXLEdBQUcsQ0FBQztJQUU1QixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN2RCxPQUFPLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzVCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM5QixRQUFRLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO2dCQUN2QixLQUFLLFFBQVE7b0JBQ1gsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO29CQUNwQyxNQUFNO2dCQUNSLEtBQUssTUFBTTtvQkFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7b0JBQ2xDLE1BQU07WUFDVixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFHRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDM0csQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFHO1FBQ1gsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO3VHQWxFVSxxQkFBcUI7MkZBQXJCLHFCQUFxQiwwWUFtQmYsYUFBYSxvRUFFbkIsS0FBSyxnRENsRGxCLHczR0F3RkEseUREaEVZLFdBQVcsOHlFQUFFLGFBQWEsNkNBQUUsUUFBUSw0Q0FBRSxlQUFlLDJGQUFFLFlBQVksb2dCQUFFLGVBQWUsK0JBQUUsMkJBQTJCOzsyRkFLaEgscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLG1CQUFtQixXQUNwQixDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLDJCQUEyQixDQUFDLGNBQzlHLElBQUk7d0RBS1QsT0FBTztzQkFBZixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFFeUIsU0FBUztzQkFBeEMsZUFBZTt1QkFBQyxhQUFhO2dCQUVaLEtBQUs7c0JBQXRCLFNBQVM7dUJBQUMsS0FBSztnQkFtQ2hCLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcmltZVRlbXBsYXRlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgVGFibGUsIFRhYmxlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gJy4uLy4uL21vZGVsb3MvdGFibGUtY29sdW1uLm1vZGVsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGUsIFRpdGxlQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdwcmltZW5nL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBUZW1wbGF0ZVRhYmxhVmFjaWFDb21wb25lbnQgfSBmcm9tICcuLi90ZW1wbGF0ZS10YWJsYS12YWNpYS90ZW1wbGF0ZS10YWJsYS12YWNpYS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGFibGEtZ2VuZXJhbCcsXG4gIGltcG9ydHM6IFtUYWJsZU1vZHVsZSwgVGl0bGVDYXNlUGlwZSwgRGF0ZVBpcGUsIFRyYW5zbGF0ZU1vZHVsZSwgQ29tbW9uTW9kdWxlLCBQYWdpbmF0b3JNb2R1bGUsIFRlbXBsYXRlVGFibGFWYWNpYUNvbXBvbmVudF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFibGEtZ2VuZXJhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxhLWdlbmVyYWwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGFHZW5lcmFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgZGF0YUtleTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnlbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIGNvbHVtbnM6IFRhYmxlQ29sdW1uW10gPSBbXTtcblxuICBASW5wdXQoKSByb3dzOiBudW1iZXI7XG5cbiAgQElucHV0KCkgdG90YWxSZWNvcmRzOiBudW1iZXI7XG5cbiAgQElucHV0KCkgbG9hZGluZzogYm9vbGVhbjtcblxuICBASW5wdXQoKSBvY3VsdGFyRnJhY2Npb25hZG9yOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKSBvbkxvYWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQE91dHB1dCgpIG9uUm93U2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oUHJpbWVUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8UHJpbWVUZW1wbGF0ZT47XG5cbiAgQFZpZXdDaGlsZChUYWJsZSkgdGFibGU6IFRhYmxlO1xuXG4gIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBib2R5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIHJvd0V4cGFuc2lvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHNob3dGcm96ZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgbWluVGFibGVXaWR0aDogbnVtYmVyID0gMjAwO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5taW5UYWJsZVdpZHRoID0gdGhpcy5jb2x1bW5zLnJlZHVjZSgoYWNjLCBjb2x1bW4pID0+IHtcbiAgICAgIHJldHVybiBhY2MgKyBjb2x1bW4ud2lkdGg7XG4gICAgfSwgMCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50ZW1wbGF0ZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICBjYXNlICdoZWFkZXInOlxuICAgICAgICAgIHRoaXMuaGVhZGVyVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdib2R5JzpcbiAgICAgICAgICB0aGlzLmJvZHlUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9zaG91bGRGcmVlemVUYWJsZSgpKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBvblJlc2l6ZSgpIHtcbiAgICB0aGlzLl9zaG91bGRGcmVlemVUYWJsZSgpO1xuICB9XG5cbiAgX3Nob3VsZEZyZWV6ZVRhYmxlKCkge1xuICAgIHRoaXMuc2hvd0Zyb3plbiA9IHRoaXMudGFibGUudGFibGVWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LmNsaWVudFdpZHRoIDwgdGhpcy5taW5UYWJsZVdpZHRoO1xuICB9XG5cbiAgcGFyc2VEYXRlKG9iaikge1xuICAgIHJldHVybiBuZXcgRGF0ZShvYmopO1xuICB9XG59XG4iLCI8cC10YWJsZVxuICBbZGF0YUtleV09XCJkYXRhS2V5XCJcbiAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gIHNlbGVjdGlvbk1vZGU9XCJzaW5nbGVcIlxuICBbc2Nyb2xsYWJsZV09XCJ0cnVlXCJcbiAgcmVzcG9uc2l2ZUxheW91dD1cInNjcm9sbFwiXG4gIHNjcm9sbERpcmVjdGlvbj1cImhvcml6b250YWxcIlxuICBzdHlsZUNsYXNzPVwicC1kYXRhdGFibGUtc3RyaXBlZFwiXG4gIFtuZ0NsYXNzXT1cInsgJ3Nob3ctZnJvemVuJzogc2hvd0Zyb3plbiB9XCJcbiAgW3BhZ2luYXRvcl09XCJ0b3RhbFJlY29yZHMgPiByb3dzXCJcbiAgW3Jvd3NdPVwicm93c1wiXG4gIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcbiAgW3Jvd3NQZXJQYWdlT3B0aW9uc109XCJvY3VsdGFyRnJhY2Npb25hZG9yID8gbnVsbCA6IFsxMCwgMjAsIDUwXVwiXG4gIFtzaG93Q3VycmVudFBhZ2VSZXBvcnRdPVwidHJ1ZVwiXG4gIGN1cnJlbnRQYWdlUmVwb3J0VGVtcGxhdGU9XCJ7Zmlyc3R9IGFsIHtsYXN0fSBkZSB7dG90YWxSZWNvcmRzfSByZWdpc3Ryb3NcIlxuICBbbGF6eV09XCJ0cnVlXCIgW2xvYWRpbmddPVwibG9hZGluZ1wiXG4gIChvbkxhenlMb2FkKT1cIm9uTG9hZC5lbWl0KCRldmVudClcIlxuICAob25Sb3dTZWxlY3QpPVwib25Sb3dTZWxlY3QuZW1pdCgkZXZlbnQuZGF0YSlcIlxuICAob25Sb3dVbnNlbGVjdCk9XCJvblJvd1NlbGVjdC5lbWl0KCRldmVudC5kYXRhKVwiXG4+XG4gIDwhLS0gSGVhZGVyIFRlbXBsYXRlLS0+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBsZXQtY29sdW1ucz5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyVGVtcGxhdGU7IGVsc2UgaGVhZGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb2x1bW5zIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDx0cj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sLmlzRnJvemVuOyBlbHNlIGhlYWRDZWxsXCI+XG4gICAgICAgICAgICA8dGggW3N0eWxlLmZvbnQtd2VpZ2h0XT1cIjUwMFwiIFtzdHlsZS53aWR0aC5weF09XCJjb2wud2lkdGggfHwgMjAwXCIgW3N0eWxlLmZsZXhdPVwiJzAgMSBhdXRvJ1wiIHBGcm96ZW5Db2x1bW4+XG4gICAgICAgICAgICAgIHt7IGNvbC5oZWFkZXIgfCB0aXRsZWNhc2UgfX1cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkQ2VsbD5cbiAgICAgICAgICAgIDx0aCBbc3R5bGUud2lkdGgucHhdPVwiY29sLndpZHRoIHx8IDIwMFwiIFtzdHlsZS5mbGV4XT1cIihjb2wuZmxleEdyb3cgfHwgMSkgKyAnIDEgYXV0bydcIj5cbiAgICAgICAgICAgICAge3sgY29sLmhlYWRlciB8IHRpdGxlY2FzZSB9fVxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8IS0tIEJvZHkgVGVtcGxhdGUtLT5cbiAgPG5nLXRlbXBsYXRlXG4gICAgcFRlbXBsYXRlPVwiYm9keVwiXG4gICAgbGV0LXJvd1xuICAgIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCJcbiAgICBsZXQtY29sdW1ucz1cImNvbHVtbnNcIlxuICAgIGxldC1leHBhbmRlZD1cImV4cGFuZGVkXCJcbiAgICBsZXQtcm93Z3JvdXA9XCJyb3dncm91cFwiXG4gICAgbGV0LXJvd3NwYW49XCJyb3dzcGFuXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJib2R5VGVtcGxhdGU7IGVsc2UgYm9keVwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIGJvZHlUZW1wbGF0ZTtcbiAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogcm93LCByb3dJbmRleDogcm93SW5kZXgsIGNvbHVtbnM6IGNvbHVtbnMsIGV4cGFuZGVkOiBleHBhbmRlZCwgcm93Z3JvdXA6IHJvd2dyb3VwLCByb3dzcGFuOiByb3dzcGFuIH1cbiAgICAgICAgXCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2JvZHk+XG4gICAgICA8dHIgW3BTZWxlY3RhYmxlUm93XT1cInJvd1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2wuaXNGcm96ZW47IGVsc2UgYm9keUNlbGxcIj5cbiAgICAgICAgICAgIDx0ZCBbc3R5bGUuZm9udC13ZWlnaHRdPVwiNTAwXCIgW3N0eWxlLndpZHRoLnB4XT1cImNvbC53aWR0aCB8fCAyMDBcIiBbc3R5bGUuZmxleF09XCInMCAxIGF1dG8nXCIgcEZyb3plbkNvbHVtbj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbC52YWx1ZXM7IGVsc2UgcGxhaW5EYXRhXCI+XG4gICAgICAgICAgICAgICAge3sgY29sLnZhbHVlc1tyb3dbY29sLmZpZWxkXV0gfX1cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYm9keUNlbGw+XG4gICAgICAgICAgICA8dGQgW3N0eWxlLndpZHRoLnB4XT1cImNvbC53aWR0aCB8fCAyMDBcIiBbc3R5bGUuZmxleF09XCIoY29sLmZsZXhHcm93IHx8IDEpICsgJyAxIGF1dG8nXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2wudmFsdWVzOyBlbHNlIHBsYWluRGF0YVwiPlxuICAgICAgICAgICAgICAgIHt7IGNvbC52YWx1ZXNbcm93W2NvbC5maWVsZF1dIH19XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcGxhaW5EYXRhPnt7Y29sLmZvcm1hdERhdGUgPyAocGFyc2VEYXRlKHJvd1tjb2wuZmllbGRdKSB8IGRhdGUgOiAoJ2Zvcm1hdG9mZWNoYScgfCB0cmFuc2xhdGUgKSkgOiByb3dbY29sLmZpZWxkXSB9fTwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZW1wdHltZXNzYWdlXCI+XG4gICAgPGFwcC10ZW1wbGF0ZS10YWJsYS12YWNpYT48L2FwcC10ZW1wbGF0ZS10YWJsYS12YWNpYT5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvcC10YWJsZT5cbiJdfQ==
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGEtZ2VuZXJhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvY29tcG9uZW50ZXMvdGFibGEtZ2VuZXJhbC90YWJsYS1nZW5lcmFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9jb21wb25lbnRlcy90YWJsYS1nZW5lcmFsL3RhYmxhLWdlbmVyYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0RBQXdELENBQUM7Ozs7OztBQVNyRyxNQUFNLE9BQU8scUJBQXFCO0lBQ3ZCLE9BQU8sQ0FBUztJQUVoQixLQUFLLEdBQVUsRUFBRSxDQUFDO0lBRWxCLE9BQU8sR0FBa0IsRUFBRSxDQUFDO0lBRTVCLElBQUksQ0FBUztJQUViLFlBQVksQ0FBUztJQUVyQixPQUFPLENBQVU7SUFFakIsbUJBQW1CLENBQVU7SUFFNUIsTUFBTSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBRXBELFdBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVuQyxTQUFTLENBQTJCO0lBRWxELEtBQUssQ0FBUTtJQUUvQixjQUFjLENBQW1CO0lBQ2pDLFlBQVksQ0FBbUI7SUFDL0Isb0JBQW9CLENBQW1CO0lBRXZDLFVBQVUsR0FBWSxLQUFLLENBQUM7SUFDNUIsYUFBYSxHQUFXLEdBQUcsQ0FBQztJQUU1QixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN2RCxPQUFPLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzVCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM5QixRQUFRLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO2dCQUN2QixLQUFLLFFBQVE7b0JBQ1gsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO29CQUNwQyxNQUFNO2dCQUNSLEtBQUssTUFBTTtvQkFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7b0JBQ2xDLE1BQU07WUFDVixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFHRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDM0csQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFHO1FBQ1gsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO3VHQWxFVSxxQkFBcUI7MkZBQXJCLHFCQUFxQiwwWUFtQmYsYUFBYSxvRUFFbkIsS0FBSyxnRENsRGxCLHU5R0EyRkEseUREbkVZLFdBQVcsbXpFQUFFLDJCQUEyQixnRUFBRSxhQUFhLDZDQUFFLFFBQVEsNENBQUUsZUFBZSwyRkFBRSxZQUFZLG9nQkFBRSxlQUFlOzsyRkFLaEgscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLG1CQUFtQixXQUNwQixDQUFDLFdBQVcsRUFBRSwyQkFBMkIsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLDJCQUEyQixDQUFDLGNBQzNJLElBQUk7d0RBS1QsT0FBTztzQkFBZixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFFeUIsU0FBUztzQkFBeEMsZUFBZTt1QkFBQyxhQUFhO2dCQUVaLEtBQUs7c0JBQXRCLFNBQVM7dUJBQUMsS0FBSztnQkFtQ2hCLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcmltZVRlbXBsYXRlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgVGFibGUsIFRhYmxlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gJy4uLy4uL21vZGVsb3MvdGFibGUtY29sdW1uLm1vZGVsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGUsIFRpdGxlQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdwcmltZW5nL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBUZW1wbGF0ZVRhYmxhVmFjaWFDb21wb25lbnQgfSBmcm9tICcuLi90ZW1wbGF0ZS10YWJsYS12YWNpYS90ZW1wbGF0ZS10YWJsYS12YWNpYS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGFibGEtZ2VuZXJhbCcsXG4gIGltcG9ydHM6IFtUYWJsZU1vZHVsZSwgVGVtcGxhdGVUYWJsYVZhY2lhQ29tcG9uZW50LCBUaXRsZUNhc2VQaXBlLCBEYXRlUGlwZSwgVHJhbnNsYXRlTW9kdWxlLCBDb21tb25Nb2R1bGUsIFBhZ2luYXRvck1vZHVsZSwgVGVtcGxhdGVUYWJsYVZhY2lhQ29tcG9uZW50XSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWJsYS1nZW5lcmFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGEtZ2VuZXJhbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsYUdlbmVyYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBkYXRhS2V5OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgdmFsdWU6IGFueVtdID0gW107XG5cbiAgQElucHV0KCkgY29sdW1uczogVGFibGVDb2x1bW5bXSA9IFtdO1xuXG4gIEBJbnB1dCgpIHJvd3M6IG51bWJlcjtcblxuICBASW5wdXQoKSB0b3RhbFJlY29yZHM6IG51bWJlcjtcblxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIG9jdWx0YXJGcmFjY2lvbmFkb3I6IGJvb2xlYW47XG5cbiAgQE91dHB1dCgpIG9uTG9hZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAT3V0cHV0KCkgb25Sb3dTZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihQcmltZVRlbXBsYXRlKSB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxQcmltZVRlbXBsYXRlPjtcblxuICBAVmlld0NoaWxkKFRhYmxlKSB0YWJsZTogVGFibGU7XG5cbiAgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIGJvZHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgcm93RXhwYW5zaW9uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgc2hvd0Zyb3plbjogYm9vbGVhbiA9IGZhbHNlO1xuICBtaW5UYWJsZVdpZHRoOiBudW1iZXIgPSAyMDA7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1pblRhYmxlV2lkdGggPSB0aGlzLmNvbHVtbnMucmVkdWNlKChhY2MsIGNvbHVtbikgPT4ge1xuICAgICAgcmV0dXJuIGFjYyArIGNvbHVtbi53aWR0aDtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBzd2l0Y2ggKGl0ZW0uZ2V0VHlwZSgpKSB7XG4gICAgICAgIGNhc2UgJ2hlYWRlcic6XG4gICAgICAgICAgdGhpcy5oZWFkZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2JvZHknOlxuICAgICAgICAgIHRoaXMuYm9keVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3Nob3VsZEZyZWV6ZVRhYmxlKCkpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIG9uUmVzaXplKCkge1xuICAgIHRoaXMuX3Nob3VsZEZyZWV6ZVRhYmxlKCk7XG4gIH1cblxuICBfc2hvdWxkRnJlZXplVGFibGUoKSB7XG4gICAgdGhpcy5zaG93RnJvemVuID0gdGhpcy50YWJsZS50YWJsZVZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQuY2xpZW50V2lkdGggPCB0aGlzLm1pblRhYmxlV2lkdGg7XG4gIH1cblxuICBwYXJzZURhdGUob2JqKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKG9iaik7XG4gIH1cbn1cbiIsIjxwLXRhYmxlXG4gIFtkYXRhS2V5XT1cImRhdGFLZXlcIlxuICBbdmFsdWVdPVwidmFsdWVcIlxuICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgc2VsZWN0aW9uTW9kZT1cInNpbmdsZVwiXG4gIFtzY3JvbGxhYmxlXT1cInRydWVcIlxuICByZXNwb25zaXZlTGF5b3V0PVwic2Nyb2xsXCJcbiAgc2Nyb2xsRGlyZWN0aW9uPVwiaG9yaXpvbnRhbFwiXG4gIHN0eWxlQ2xhc3M9XCJwLWRhdGF0YWJsZS1zdHJpcGVkXCJcbiAgW25nQ2xhc3NdPVwieyAnc2hvdy1mcm96ZW4nOiBzaG93RnJvemVuIH1cIlxuICBbcGFnaW5hdG9yXT1cInRvdGFsUmVjb3JkcyA+IHJvd3NcIlxuICBbcm93c109XCJyb3dzXCJcbiAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxuICBbcm93c1BlclBhZ2VPcHRpb25zXT1cIm9jdWx0YXJGcmFjY2lvbmFkb3IgPyBudWxsIDogWzEwLCAyMCwgNTBdXCJcbiAgW3Nob3dDdXJyZW50UGFnZVJlcG9ydF09XCJ0cnVlXCJcbiAgY3VycmVudFBhZ2VSZXBvcnRUZW1wbGF0ZT1cIntmaXJzdH0gYWwge2xhc3R9IGRlIHt0b3RhbFJlY29yZHN9IHJlZ2lzdHJvc1wiXG4gIFtsYXp5XT1cInRydWVcIiBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgKG9uTGF6eUxvYWQpPVwib25Mb2FkLmVtaXQoJGV2ZW50KVwiXG4gIChvblJvd1NlbGVjdCk9XCJvblJvd1NlbGVjdC5lbWl0KCRldmVudC5kYXRhKVwiXG4gIChvblJvd1Vuc2VsZWN0KT1cIm9uUm93U2VsZWN0LmVtaXQoJGV2ZW50LmRhdGEpXCJcbj5cbiAgPCEtLSBIZWFkZXIgVGVtcGxhdGUtLT5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXJUZW1wbGF0ZTsgZWxzZSBoZWFkZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbHVtbnMgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPHRyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2wuaXNGcm96ZW47IGVsc2UgaGVhZENlbGxcIj5cbiAgICAgICAgICAgIDx0aCBbc3R5bGUuZm9udC13ZWlnaHRdPVwiNTAwXCIgW3N0eWxlLndpZHRoLnB4XT1cImNvbC53aWR0aCB8fCAyMDBcIiBbc3R5bGUuZmxleF09XCInMCAxIGF1dG8nXCIgcEZyb3plbkNvbHVtbj5cbiAgICAgICAgICAgICAge3sgY29sLmhlYWRlciB8IHRpdGxlY2FzZSB9fVxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRDZWxsPlxuICAgICAgICAgICAgPHRoIFtzdHlsZS53aWR0aC5weF09XCJjb2wud2lkdGggfHwgMjAwXCIgW3N0eWxlLmZsZXhdPVwiKGNvbC5mbGV4R3JvdyB8fCAxKSArICcgMSBhdXRvJ1wiPlxuICAgICAgICAgICAgICB7eyBjb2wuaGVhZGVyIHwgdGl0bGVjYXNlIH19XG4gICAgICAgICAgICA8L3RoPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDwhLS0gQm9keSBUZW1wbGF0ZS0tPlxuICA8bmctdGVtcGxhdGVcbiAgICBwVGVtcGxhdGU9XCJib2R5XCJcbiAgICBsZXQtcm93XG4gICAgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIlxuICAgIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiXG4gICAgbGV0LWV4cGFuZGVkPVwiZXhwYW5kZWRcIlxuICAgIGxldC1yb3dncm91cD1cInJvd2dyb3VwXCJcbiAgICBsZXQtcm93c3Bhbj1cInJvd3NwYW5cIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJvZHlUZW1wbGF0ZTsgZWxzZSBib2R5XCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgYm9keVRlbXBsYXRlO1xuICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb3csIHJvd0luZGV4OiByb3dJbmRleCwgY29sdW1uczogY29sdW1ucywgZXhwYW5kZWQ6IGV4cGFuZGVkLCByb3dncm91cDogcm93Z3JvdXAsIHJvd3NwYW46IHJvd3NwYW4gfVxuICAgICAgICBcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjYm9keT5cbiAgICAgIDx0ciBbcFNlbGVjdGFibGVSb3ddPVwicm93XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbC5pc0Zyb3plbjsgZWxzZSBib2R5Q2VsbFwiPlxuICAgICAgICAgICAgPHRkIFtzdHlsZS5mb250LXdlaWdodF09XCI1MDBcIiBbc3R5bGUud2lkdGgucHhdPVwiY29sLndpZHRoIHx8IDIwMFwiIFtzdHlsZS5mbGV4XT1cIicwIDEgYXV0bydcIiBwRnJvemVuQ29sdW1uPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sLnZhbHVlczsgZWxzZSBwbGFpbkRhdGFcIj5cbiAgICAgICAgICAgICAgICB7eyBjb2wudmFsdWVzW3Jvd1tjb2wuZmllbGRdXSB9fVxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNib2R5Q2VsbD5cbiAgICAgICAgICAgIDx0ZCBbc3R5bGUud2lkdGgucHhdPVwiY29sLndpZHRoIHx8IDIwMFwiIFtzdHlsZS5mbGV4XT1cIihjb2wuZmxleEdyb3cgfHwgMSkgKyAnIDEgYXV0bydcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbC52YWx1ZXM7IGVsc2UgcGxhaW5EYXRhXCI+XG4gICAgICAgICAgICAgICAge3sgY29sLnZhbHVlc1tyb3dbY29sLmZpZWxkXV0gfX1cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNwbGFpbkRhdGE+e3tjb2wuZm9ybWF0RGF0ZSA/IChwYXJzZURhdGUocm93W2NvbC5maWVsZF0pIHwgZGF0ZSA6ICgnZm9ybWF0b2ZlY2hhJyB8IHRyYW5zbGF0ZSApKSA6IHJvd1tjb2wuZmllbGRdIH19PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3RyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJlbXB0eW1lc3NhZ2VcIj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIxMDBcIj4gXG4gICAgICAgICAgICAgICAgPGFwcC10ZW1wbGF0ZS10YWJsYS12YWNpYT48L2FwcC10ZW1wbGF0ZS10YWJsYS12YWNpYT5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgPC9uZy10ZW1wbGF0ZT48L3AtdGFibGU+XG4iXX0=
|
package/esm2022/src/app/core/componentes/template-tabla-vacia/template-tabla-vacia.component.mjs
CHANGED
|
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
18
18
|
type: Component,
|
|
19
19
|
args: [{ selector: 'app-template-tabla-vacia', standalone: true, imports: [TranslateModule], template: "<div class=\"centrar-contenedor-imagen-sin-datos emptymessage\">\n <img src=\"/assets/images/{{tema}}/no-info.webp\" alt=\"{{'mensajetablavacia' | translate}}\" height=\"30%\" width=\"30%\">\n <p class=\"font-medium mt-3\">{{'mensajetablavacia' | translate}}</p>\n</div>" }]
|
|
20
20
|
}], ctorParameters: () => [{ type: i1.AuthService }] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtdGFibGEtdmFjaWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2NvbXBvbmVudGVzL3RlbXBsYXRlLXRhYmxhLXZhY2lhL3RlbXBsYXRlLXRhYmxhLXZhY2lhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9jb21wb25lbnRlcy90ZW1wbGF0ZS10YWJsYS12YWNpYS90ZW1wbGF0ZS10YWJsYS12YWNpYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQVV0RCxNQUFNLE9BQU8sMkJBQTJCO0lBRWxCO0lBQXBCLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBRTVDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsQ0FBQztJQUM3RCxDQUFDO3VHQVJVLDJCQUEyQjsyRkFBM0IsMkJBQTJCLG9GQ1h4QyxzUkFHTSx5RERJTSxlQUFlOzsyRkFJZCwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0UsMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2lvcy9hdXRoLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGVtcGxhdGUtdGFibGEtdmFjaWEnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLXRhYmxhLXZhY2lhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RlbXBsYXRlLXRhYmxhLXZhY2lhLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZVRhYmxhVmFjaWFDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlKSB7XG5cbiAgfVxuXG4gIGdldCB0ZW1hKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW5LZXkoJ3RlbWEnKSB8fCAndGVtYUNsYXJvJztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNlbnRyYXItY29udGVuZWRvci1pbWFnZW4tc2luLWRhdG9zIGVtcHR5bWVzc2FnZVwiPlxuICAgIDxpbWcgc3JjPVwiL2Fzc2V0cy9pbWFnZXMve3t0ZW1hfX0vbm8taW5mby53ZWJwXCIgYWx0PVwie3snbWVuc2FqZXRhYmxhdmFjaWEnIHwgdHJhbnNsYXRlfX1cIiBoZWlnaHQ9XCIzMCVcIiB3aWR0aD1cIjMwJVwiPlxuICAgIDxwIGNsYXNzPVwiZm9udC1tZWRpdW0gbXQtM1wiPnt7J21lbnNhamV0YWJsYXZhY2lhJyB8IHRyYW5zbGF0ZX19PC9wPlxuPC9kaXY+Il19
|