general-library-union 3.3.56 → 3.3.58

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.
@@ -12,10 +12,10 @@ export class TemplateTablaVaciaComponent {
12
12
  return this.authService.getTokenKey('tema') || 'temaClaro';
13
13
  }
14
14
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: TemplateTablaVaciaComponent, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component });
15
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: TemplateTablaVaciaComponent, isStandalone: true, selector: "app-template-tabla-vacia", ngImport: i0, 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</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
15
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: TemplateTablaVaciaComponent, isStandalone: true, selector: "app-template-tabla-vacia", ngImport: i0, template: "<tr>\n <td colspan=\"100\">\n <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 </div>\n </td>\n</tr>", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
16
16
  }
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: TemplateTablaVaciaComponent, decorators: [{
18
18
  type: Component,
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</div>" }]
19
+ args: [{ selector: 'app-template-tabla-vacia', standalone: true, imports: [TranslateModule], template: "<tr>\n <td colspan=\"100\">\n <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 </div>\n </td>\n</tr>" }]
20
20
  }], ctorParameters: () => [{ type: i1.AuthService }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtdGFibGEtdmFjaWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2NvbXBvbmVudGVzL3RlbXBsYXRlLXRhYmxhLXZhY2lhL3RlbXBsYXRlLXRhYmxhLXZhY2lhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9jb21wb25lbnRlcy90ZW1wbGF0ZS10YWJsYS12YWNpYS90ZW1wbGF0ZS10YWJsYS12YWNpYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQVd0RCxNQUFNLE9BQU8sMkJBQTJCO0lBRWxCO0lBQXBCLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBRTVDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsQ0FBQztJQUM3RCxDQUFDO3VHQVJVLDJCQUEyQjsyRkFBM0IsMkJBQTJCLG9GQ1p4QywyTUFFTSx5RERNTSxlQUFlOzsyRkFJZCwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0UsMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNpb3MvdXRpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2lvcy9hdXRoLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGVtcGxhdGUtdGFibGEtdmFjaWEnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLXRhYmxhLXZhY2lhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RlbXBsYXRlLXRhYmxhLXZhY2lhLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZVRhYmxhVmFjaWFDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlKSB7XG5cbiAgfVxuXG4gIGdldCB0ZW1hKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW5LZXkoJ3RlbWEnKSB8fCAndGVtYUNsYXJvJztcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNlbnRyYXItY29udGVuZWRvci1pbWFnZW4tc2luLWRhdG9zIGVtcHR5bWVzc2FnZVwiPlxuICAgIDxpbWcgc3JjPVwiL2Fzc2V0cy9pbWFnZXMve3t0ZW1hfX0vbm8taW5mby53ZWJwXCIgYWx0PVwie3snbWVuc2FqZXRhYmxhdmFjaWEnIHwgdHJhbnNsYXRlfX1cIiBoZWlnaHQ9XCIzMCVcIiB3aWR0aD1cIjMwJVwiPlxuPC9kaXY+Il19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtdGFibGEtdmFjaWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL2NvbXBvbmVudGVzL3RlbXBsYXRlLXRhYmxhLXZhY2lhL3RlbXBsYXRlLXRhYmxhLXZhY2lhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9jb21wb25lbnRlcy90ZW1wbGF0ZS10YWJsYS12YWNpYS90ZW1wbGF0ZS10YWJsYS12YWNpYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQVd0RCxNQUFNLE9BQU8sMkJBQTJCO0lBRWxCO0lBQXBCLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBRTVDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFdBQVcsQ0FBQztJQUM3RCxDQUFDO3VHQVJVLDJCQUEyQjsyRkFBM0IsMkJBQTJCLG9GQ1p4QyxxUkFNSyx5RERFTyxlQUFlOzsyRkFJZCwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0UsMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNpb3MvdXRpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2lvcy9hdXRoLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdGVtcGxhdGUtdGFibGEtdmFjaWEnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLXRhYmxhLXZhY2lhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RlbXBsYXRlLXRhYmxhLXZhY2lhLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZVRhYmxhVmFjaWFDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlKSB7XG5cbiAgfVxuXG4gIGdldCB0ZW1hKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuZ2V0VG9rZW5LZXkoJ3RlbWEnKSB8fCAndGVtYUNsYXJvJztcbiAgfVxufVxuIiwiPHRyPlxuICAgIDx0ZCBjb2xzcGFuPVwiMTAwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjZW50cmFyLWNvbnRlbmVkb3ItaW1hZ2VuLXNpbi1kYXRvcyBlbXB0eW1lc3NhZ2VcIj5cbiAgICAgICAgICAgIDxpbWcgc3JjPVwiL2Fzc2V0cy9pbWFnZXMve3t0ZW1hfX0vbm8taW5mby53ZWJwXCIgYWx0PVwie3snbWVuc2FqZXRhYmxhdmFjaWEnIHwgdHJhbnNsYXRlfX1cIiBoZWlnaHQ9XCIzMCVcIiB3aWR0aD1cIjMwJVwiPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3RkPlxuPC90cj4iXX0=
@@ -192,11 +192,11 @@ export class DetalleEntradaReporteComponent {
192
192
  });
193
193
  }
194
194
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DetalleEntradaReporteComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ToastService }, { token: i3.GeneralService }, { token: i4.ConfirmationService }, { token: i5.EjecucionReporteService }, { token: i6.GeneralPipe }, { token: i7.TranslateService }, { token: i8.ReporteFuentePipe }], target: i0.ɵɵFactoryTarget.Component });
195
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: DetalleEntradaReporteComponent, isStandalone: true, selector: "detalle-entrada-reporte", inputs: { llaveReporte: "llaveReporte", modificarReporte: "modificarReporte" }, outputs: { regresar: "regresar" }, providers: [ConfirmationService, MessageService], ngImport: i0, template: "<!--<p-confirmDialog header=\"'confirmar')\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>-->\n<p-confirmPopup></p-confirmPopup>\n<div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <h1 class=\"text-xl mb-1\">{{'entrada' | translate}}</h1>\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoEntrada()\" \n *ngIf=\"vistaVisualizar != 'detalle'\" label=\"{{'link_nuevo' | translate}}\" >\n </button>\n <div class=\"flex justify-content-end mb-3 mb-1\" *ngIf=\"vistaVisualizar =='detalle'\">\n <button pButton pRipple (click)=\"vistaVisualizar = null\" label= \"{{'listado' | translate}} {{'entrada' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n</div>\n\n<p-table [value]=\"listaEntrada\" responsiveLayout=\"scroll\" [scrollable]=\"true\" [showCurrentPageReport]=\"true\" *ngIf=\"vistaVisualizar != 'detalle'\"\n selectionMode=\"single\" dataKey=\"llave\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n (onRowSelect)=\"verAction($event)\" (onRowUnselect)=\"verAction($event)\" [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n [lazy]=\"true\" (onLazyLoad)=\"cargarListaEntrada($event)\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th>{{'descripcion' | translate }} </th>\n <th>{{'tipo' | translate }} </th>\n <th>{{'parametro' | translate }} </th>\n <th>{{'valorpordefecto' | translate }} </th>\n <th>{{'orden' | translate }} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr [pSelectableRow]=\"entrada\">\n <td>{{entrada.descripcion}}</td>\n <td>{{entrada.tipoDato | reporteFuentePipe: 'listaTipoDato'}}</td>\n <td>{{entrada.parametro}}</td>\n <td>{{entrada.valorDefecto}}</td>\n <td>{{entrada.orden}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <app-template-tabla-vacia></app-template-tabla-vacia>\n </ng-template>\n</p-table>\n\n<div class=\"card mt-3\" *ngIf=\"vistaVisualizar == 'detalle'\">\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-notes\"></i>{{'detalle' | translate}}</h5>\n <form [formGroup]=\"formReporteEntrada\" >\n <div class=\"col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"descripcion\" type=\"text\" formControlName=\"descripcion\" size=\"40\">\n <label htmlFor=\"descripcion\">{{'descripcion' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"parametro\" type=\"text\" formControlName=\"parametro\" size=\"25\"\n maxlength=\"100\">\n <label htmlFor=\"parametro\">{{'parametro' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipo\" [autoDisplayFirst]=\"false\" formControlName=\"tipo\"\n optionLabel=\"nombre\" optionValue=\"codigo\" (onChange)=\"actualizarTipo()\"></p-dropdown>\n <label htmlFor=\"tipo\">{{'tipo' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isDirecto()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoDato\" [autoDisplayFirst]=\"false\" formControlName=\"tipoDato\"\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n <label htmlFor=\"tipoDato\">{{'tipodato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isLista()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaFuente\" [autoDisplayFirst]=\"false\" formControlName=\"fuenteDato\"\n optionLabel=\"descripcion\" optionValue=\"llave\"></p-dropdown>\n <label htmlFor=\"fuenteDato\">{{'fuente' | translate }} {{'dato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"valorDefecto\" type=\"text\" formControlName=\"valorDefecto\">\n <label htmlFor=\"valorDefecto\">{{'valorpordefecto' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"orden\" type=\"text\" formControlName=\"orden\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\">\n <label htmlFor=\"orden\">{{'orden' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\" *ngIf=\"isLista()\">\n <p-floatLabel>\n <input pInputText id=\"parametroEntrada\" type=\"text\" formControlName=\"parametroEntrada\">\n <label htmlFor=\"parametroEntrada\">{{'entrada' | translate }}s</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"formato\" type=\"text\" formControlName=\"formato\">\n <label htmlFor=\"formato\">{{'formato' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaSiNo\" formControlName=\"solicitar\" optionLabel=\"nombre\" [autoDisplayFirst]=\"false\"\n optionValue=\"codigo\">\n </p-dropdown>\n <label htmlFor=\"solicitar\">{{'solicitar' | translate }} *</label>\n </p-floatLabel>\n </div>\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"actualizar()\"\n icon=\"glyphicons {{reporteEntrada.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" \n label=\"{{reporteEntrada.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" >\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"reporteEntrada.llave != null\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\n </button>\n\n </div>\n </div>\n </div>\n </form>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i10.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i11.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: i11.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i12.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "pipe", type: ReporteFuentePipe, name: "reporteFuentePipe" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ConfirmPopupModule }, { kind: "component", type: i13.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "ngmodule", type: PaginatorModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i14.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: i15.FloatLabel, selector: "p-floatLabel" }, { kind: "component", type: TemplateTablaVaciaComponent, selector: "app-template-tabla-vacia" }] });
195
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: DetalleEntradaReporteComponent, isStandalone: true, selector: "detalle-entrada-reporte", inputs: { llaveReporte: "llaveReporte", modificarReporte: "modificarReporte" }, outputs: { regresar: "regresar" }, providers: [ConfirmationService, MessageService], ngImport: i0, template: "<!--<p-confirmDialog header=\"'confirmar')\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>-->\n<p-confirmPopup></p-confirmPopup>\n<div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <h1 class=\"text-xl mb-1\">{{'entrada' | translate}}</h1>\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoEntrada()\" \n *ngIf=\"vistaVisualizar != 'detalle'\" label=\"{{'link_nuevo' | translate}}\" >\n </button>\n <div class=\"flex justify-content-end mb-3 mb-1\" *ngIf=\"vistaVisualizar =='detalle'\">\n <button pButton pRipple (click)=\"vistaVisualizar = null\" label= \"{{'listado' | translate}} {{'entrada' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n</div>\n\n<p-table [value]=\"listaEntrada\" responsiveLayout=\"scroll\" [scrollable]=\"true\" [showCurrentPageReport]=\"true\" *ngIf=\"vistaVisualizar != 'detalle'\"\n selectionMode=\"single\" dataKey=\"llave\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n (onRowSelect)=\"verAction($event)\" (onRowUnselect)=\"verAction($event)\" [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n [lazy]=\"true\" (onLazyLoad)=\"cargarListaEntrada($event)\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th>{{'descripcion' | translate }} </th>\n <th>{{'tipo' | translate }} </th>\n <th>{{'parametro' | translate }} </th>\n <th>{{'valorpordefecto' | translate }} </th>\n <th>{{'orden' | translate }} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr [pSelectableRow]=\"entrada\">\n <td>{{entrada.descripcion}}</td>\n <td>{{entrada.tipoDato | reporteFuentePipe: 'listaTipoDato'}}</td>\n <td>{{entrada.parametro}}</td>\n <td>{{entrada.valorDefecto}}</td>\n <td>{{entrada.orden}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\"> <app-template-tabla-vacia></app-template-tabla-vacia>\n </td>\n </tr>\n </ng-template>\n</p-table>\n\n<div class=\"card mt-3\" *ngIf=\"vistaVisualizar == 'detalle'\">\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-notes\"></i>{{'detalle' | translate}}</h5>\n <form [formGroup]=\"formReporteEntrada\" >\n <div class=\"col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"descripcion\" type=\"text\" formControlName=\"descripcion\" size=\"40\">\n <label htmlFor=\"descripcion\">{{'descripcion' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"parametro\" type=\"text\" formControlName=\"parametro\" size=\"25\"\n maxlength=\"100\">\n <label htmlFor=\"parametro\">{{'parametro' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipo\" [autoDisplayFirst]=\"false\" formControlName=\"tipo\"\n optionLabel=\"nombre\" optionValue=\"codigo\" (onChange)=\"actualizarTipo()\"></p-dropdown>\n <label htmlFor=\"tipo\">{{'tipo' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isDirecto()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoDato\" [autoDisplayFirst]=\"false\" formControlName=\"tipoDato\"\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n <label htmlFor=\"tipoDato\">{{'tipodato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isLista()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaFuente\" [autoDisplayFirst]=\"false\" formControlName=\"fuenteDato\"\n optionLabel=\"descripcion\" optionValue=\"llave\"></p-dropdown>\n <label htmlFor=\"fuenteDato\">{{'fuente' | translate }} {{'dato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"valorDefecto\" type=\"text\" formControlName=\"valorDefecto\">\n <label htmlFor=\"valorDefecto\">{{'valorpordefecto' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"orden\" type=\"text\" formControlName=\"orden\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\">\n <label htmlFor=\"orden\">{{'orden' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\" *ngIf=\"isLista()\">\n <p-floatLabel>\n <input pInputText id=\"parametroEntrada\" type=\"text\" formControlName=\"parametroEntrada\">\n <label htmlFor=\"parametroEntrada\">{{'entrada' | translate }}s</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"formato\" type=\"text\" formControlName=\"formato\">\n <label htmlFor=\"formato\">{{'formato' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaSiNo\" formControlName=\"solicitar\" optionLabel=\"nombre\" [autoDisplayFirst]=\"false\"\n optionValue=\"codigo\">\n </p-dropdown>\n <label htmlFor=\"solicitar\">{{'solicitar' | translate }} *</label>\n </p-floatLabel>\n </div>\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"actualizar()\"\n icon=\"glyphicons {{reporteEntrada.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" \n label=\"{{reporteEntrada.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" >\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"reporteEntrada.llave != null\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\n </button>\n\n </div>\n </div>\n </div>\n </form>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i10.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i11.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: i11.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i12.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "pipe", type: ReporteFuentePipe, name: "reporteFuentePipe" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ConfirmPopupModule }, { kind: "component", type: i13.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "ngmodule", type: PaginatorModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i14.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: i15.FloatLabel, selector: "p-floatLabel" }, { kind: "component", type: TemplateTablaVaciaComponent, selector: "app-template-tabla-vacia" }] });
196
196
  }
197
197
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DetalleEntradaReporteComponent, decorators: [{
198
198
  type: Component,
199
- args: [{ selector: 'detalle-entrada-reporte', imports: [CommonModule, TranslateModule, ButtonModule, TableModule, DropdownModule, FormsModule, ReporteFuentePipe, ReactiveFormsModule, ConfirmPopupModule, PaginatorModule, InputTextModule, FloatLabelModule, TemplateTablaVaciaComponent], standalone: true, providers: [ConfirmationService, MessageService], template: "<!--<p-confirmDialog header=\"'confirmar')\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>-->\n<p-confirmPopup></p-confirmPopup>\n<div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <h1 class=\"text-xl mb-1\">{{'entrada' | translate}}</h1>\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoEntrada()\" \n *ngIf=\"vistaVisualizar != 'detalle'\" label=\"{{'link_nuevo' | translate}}\" >\n </button>\n <div class=\"flex justify-content-end mb-3 mb-1\" *ngIf=\"vistaVisualizar =='detalle'\">\n <button pButton pRipple (click)=\"vistaVisualizar = null\" label= \"{{'listado' | translate}} {{'entrada' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n</div>\n\n<p-table [value]=\"listaEntrada\" responsiveLayout=\"scroll\" [scrollable]=\"true\" [showCurrentPageReport]=\"true\" *ngIf=\"vistaVisualizar != 'detalle'\"\n selectionMode=\"single\" dataKey=\"llave\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n (onRowSelect)=\"verAction($event)\" (onRowUnselect)=\"verAction($event)\" [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n [lazy]=\"true\" (onLazyLoad)=\"cargarListaEntrada($event)\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th>{{'descripcion' | translate }} </th>\n <th>{{'tipo' | translate }} </th>\n <th>{{'parametro' | translate }} </th>\n <th>{{'valorpordefecto' | translate }} </th>\n <th>{{'orden' | translate }} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr [pSelectableRow]=\"entrada\">\n <td>{{entrada.descripcion}}</td>\n <td>{{entrada.tipoDato | reporteFuentePipe: 'listaTipoDato'}}</td>\n <td>{{entrada.parametro}}</td>\n <td>{{entrada.valorDefecto}}</td>\n <td>{{entrada.orden}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <app-template-tabla-vacia></app-template-tabla-vacia>\n </ng-template>\n</p-table>\n\n<div class=\"card mt-3\" *ngIf=\"vistaVisualizar == 'detalle'\">\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-notes\"></i>{{'detalle' | translate}}</h5>\n <form [formGroup]=\"formReporteEntrada\" >\n <div class=\"col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"descripcion\" type=\"text\" formControlName=\"descripcion\" size=\"40\">\n <label htmlFor=\"descripcion\">{{'descripcion' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"parametro\" type=\"text\" formControlName=\"parametro\" size=\"25\"\n maxlength=\"100\">\n <label htmlFor=\"parametro\">{{'parametro' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipo\" [autoDisplayFirst]=\"false\" formControlName=\"tipo\"\n optionLabel=\"nombre\" optionValue=\"codigo\" (onChange)=\"actualizarTipo()\"></p-dropdown>\n <label htmlFor=\"tipo\">{{'tipo' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isDirecto()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoDato\" [autoDisplayFirst]=\"false\" formControlName=\"tipoDato\"\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n <label htmlFor=\"tipoDato\">{{'tipodato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isLista()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaFuente\" [autoDisplayFirst]=\"false\" formControlName=\"fuenteDato\"\n optionLabel=\"descripcion\" optionValue=\"llave\"></p-dropdown>\n <label htmlFor=\"fuenteDato\">{{'fuente' | translate }} {{'dato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"valorDefecto\" type=\"text\" formControlName=\"valorDefecto\">\n <label htmlFor=\"valorDefecto\">{{'valorpordefecto' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"orden\" type=\"text\" formControlName=\"orden\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\">\n <label htmlFor=\"orden\">{{'orden' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\" *ngIf=\"isLista()\">\n <p-floatLabel>\n <input pInputText id=\"parametroEntrada\" type=\"text\" formControlName=\"parametroEntrada\">\n <label htmlFor=\"parametroEntrada\">{{'entrada' | translate }}s</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"formato\" type=\"text\" formControlName=\"formato\">\n <label htmlFor=\"formato\">{{'formato' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaSiNo\" formControlName=\"solicitar\" optionLabel=\"nombre\" [autoDisplayFirst]=\"false\"\n optionValue=\"codigo\">\n </p-dropdown>\n <label htmlFor=\"solicitar\">{{'solicitar' | translate }} *</label>\n </p-floatLabel>\n </div>\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"actualizar()\"\n icon=\"glyphicons {{reporteEntrada.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" \n label=\"{{reporteEntrada.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" >\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"reporteEntrada.llave != null\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\n </button>\n\n </div>\n </div>\n </div>\n </form>\n</div>\n" }]
199
+ args: [{ selector: 'detalle-entrada-reporte', imports: [CommonModule, TranslateModule, ButtonModule, TableModule, DropdownModule, FormsModule, ReporteFuentePipe, ReactiveFormsModule, ConfirmPopupModule, PaginatorModule, InputTextModule, FloatLabelModule, TemplateTablaVaciaComponent], standalone: true, providers: [ConfirmationService, MessageService], template: "<!--<p-confirmDialog header=\"'confirmar')\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>-->\n<p-confirmPopup></p-confirmPopup>\n<div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <h1 class=\"text-xl mb-1\">{{'entrada' | translate}}</h1>\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoEntrada()\" \n *ngIf=\"vistaVisualizar != 'detalle'\" label=\"{{'link_nuevo' | translate}}\" >\n </button>\n <div class=\"flex justify-content-end mb-3 mb-1\" *ngIf=\"vistaVisualizar =='detalle'\">\n <button pButton pRipple (click)=\"vistaVisualizar = null\" label= \"{{'listado' | translate}} {{'entrada' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n</div>\n\n<p-table [value]=\"listaEntrada\" responsiveLayout=\"scroll\" [scrollable]=\"true\" [showCurrentPageReport]=\"true\" *ngIf=\"vistaVisualizar != 'detalle'\"\n selectionMode=\"single\" dataKey=\"llave\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n (onRowSelect)=\"verAction($event)\" (onRowUnselect)=\"verAction($event)\" [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n [lazy]=\"true\" (onLazyLoad)=\"cargarListaEntrada($event)\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th>{{'descripcion' | translate }} </th>\n <th>{{'tipo' | translate }} </th>\n <th>{{'parametro' | translate }} </th>\n <th>{{'valorpordefecto' | translate }} </th>\n <th>{{'orden' | translate }} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr [pSelectableRow]=\"entrada\">\n <td>{{entrada.descripcion}}</td>\n <td>{{entrada.tipoDato | reporteFuentePipe: 'listaTipoDato'}}</td>\n <td>{{entrada.parametro}}</td>\n <td>{{entrada.valorDefecto}}</td>\n <td>{{entrada.orden}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\"> <app-template-tabla-vacia></app-template-tabla-vacia>\n </td>\n </tr>\n </ng-template>\n</p-table>\n\n<div class=\"card mt-3\" *ngIf=\"vistaVisualizar == 'detalle'\">\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-notes\"></i>{{'detalle' | translate}}</h5>\n <form [formGroup]=\"formReporteEntrada\" >\n <div class=\"col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"descripcion\" type=\"text\" formControlName=\"descripcion\" size=\"40\">\n <label htmlFor=\"descripcion\">{{'descripcion' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"parametro\" type=\"text\" formControlName=\"parametro\" size=\"25\"\n maxlength=\"100\">\n <label htmlFor=\"parametro\">{{'parametro' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipo\" [autoDisplayFirst]=\"false\" formControlName=\"tipo\"\n optionLabel=\"nombre\" optionValue=\"codigo\" (onChange)=\"actualizarTipo()\"></p-dropdown>\n <label htmlFor=\"tipo\">{{'tipo' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isDirecto()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoDato\" [autoDisplayFirst]=\"false\" formControlName=\"tipoDato\"\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n <label htmlFor=\"tipoDato\">{{'tipodato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isLista()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaFuente\" [autoDisplayFirst]=\"false\" formControlName=\"fuenteDato\"\n optionLabel=\"descripcion\" optionValue=\"llave\"></p-dropdown>\n <label htmlFor=\"fuenteDato\">{{'fuente' | translate }} {{'dato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"valorDefecto\" type=\"text\" formControlName=\"valorDefecto\">\n <label htmlFor=\"valorDefecto\">{{'valorpordefecto' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"orden\" type=\"text\" formControlName=\"orden\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\">\n <label htmlFor=\"orden\">{{'orden' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\" *ngIf=\"isLista()\">\n <p-floatLabel>\n <input pInputText id=\"parametroEntrada\" type=\"text\" formControlName=\"parametroEntrada\">\n <label htmlFor=\"parametroEntrada\">{{'entrada' | translate }}s</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"formato\" type=\"text\" formControlName=\"formato\">\n <label htmlFor=\"formato\">{{'formato' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaSiNo\" formControlName=\"solicitar\" optionLabel=\"nombre\" [autoDisplayFirst]=\"false\"\n optionValue=\"codigo\">\n </p-dropdown>\n <label htmlFor=\"solicitar\">{{'solicitar' | translate }} *</label>\n </p-floatLabel>\n </div>\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"actualizar()\"\n icon=\"glyphicons {{reporteEntrada.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" \n label=\"{{reporteEntrada.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" >\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"reporteEntrada.llave != null\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\n </button>\n\n </div>\n </div>\n </div>\n </form>\n</div>\n" }]
200
200
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.ToastService }, { type: i3.GeneralService }, { type: i4.ConfirmationService }, { type: i5.EjecucionReporteService }, { type: i6.GeneralPipe }, { type: i7.TranslateService }, { type: i8.ReporteFuentePipe }], propDecorators: { llaveReporte: [{
201
201
  type: Input
202
202
  }], modificarReporte: [{
@@ -204,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
204
204
  }], regresar: [{
205
205
  type: Output
206
206
  }] } });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWxsZS1lbnRyYWRhLXJlcG9ydGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC93ZWJjb21tb24vcGFnZXMvZWplY3VjaW9uLXJlcG9ydGUvZGV0YWxsZS1lbnRyYWRhLXJlcG9ydGUvZGV0YWxsZS1lbnRyYWRhLXJlcG9ydGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC93ZWJjb21tb24vcGFnZXMvZWplY3VjaW9uLXJlcG9ydGUvZGV0YWxsZS1lbnRyYWRhLXJlcG9ydGUvZGV0YWxsZS1lbnRyYWRhLXJlcG9ydGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWUsV0FBVyxFQUFhLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuSCxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBb0IsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBR3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUkxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0ZBQWtGLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVS9ILE1BQU0sT0FBTyw4QkFBOEI7SUFzQnJCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUEzQmIsa0JBQWtCLENBQVk7SUFDOUIsU0FBUyxDQUFDO0lBQ1YsYUFBYSxDQUFDO0lBQ2QsU0FBUyxDQUFDO0lBRVYsY0FBYyxDQUFxQjtJQUNuQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLGVBQWUsQ0FBUztJQUV4QixZQUFZLEdBQTJCLEVBQUUsQ0FBQztJQUMxQyxXQUFXLEdBQXVCLEVBQUUsQ0FBRztJQUM5QixZQUFZLENBQVU7SUFDdEIsZ0JBQWdCLENBQVc7SUFDakMsUUFBUSxHQUFHLElBQUksWUFBWSxDQUFDO0lBRXRDLFNBQVMsR0FBQztRQUNSLElBQUksRUFBQyxFQUFFO1FBQ1AsWUFBWSxFQUFDLENBQUM7S0FDZixDQUFBO0lBRUQsWUFBb0IsV0FBd0IsRUFDeEIsd0JBQXNDLEVBQ3RDLGNBQThCLEVBQzlCLG1CQUF3QyxFQUN4QyxjQUF1QyxFQUN2QyxXQUF3QixFQUN4QixnQkFBa0MsRUFDbEMsaUJBQW9DO1FBUHBDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBYztRQUN0QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBeUI7UUFDdkMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBQ3hELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFFO1FBQ3ZELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQztRQUN2RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFBO0lBRTlDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFLO1FBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLElBQUksWUFBWSxDQUFDLG1CQUFtQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7WUFDbEYsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ2hDLHlCQUF5QixFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ3RDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxJQUFJO1NBQ3BDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksWUFBWSxDQUFDLG1CQUFtQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7Z0JBQ3ZGLGFBQWEsRUFBRSxJQUFJLENBQUMsWUFBWTthQUNqQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLElBQUksWUFBWSxDQUFDLGVBQWUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQy9HLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRU0sOEJBQThCO1FBQ25DLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUMvQyxXQUFXLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEYsU0FBUyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hGLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0RSxRQUFRLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUUsVUFBVSxFQUFJLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO1lBQzdELFlBQVksRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQztZQUMvRCxLQUFLLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7WUFDakQsZ0JBQWdCLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN2RSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7WUFDckQsU0FBUyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hGLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztZQUNqRCxhQUFhLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUM7U0FDbEUsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO0lBQzdDLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzFDLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBQyxDQUFDO1lBQzlFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzlELENBQUM7YUFBSyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUMsQ0FBQztZQUNsRixJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0UsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3hFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUV4RSxDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQUs7UUFDcEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO0lBRXhDLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQ2hELGlFQUFpRTtRQUNqRSxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRU0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUM7SUFDbEksQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDO0lBQ2hJLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBWTtRQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDO1lBQy9CLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixPQUFPLEVBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQywwQkFBMEI7WUFDckQsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTztZQUNyQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7WUFDbEQsTUFBTSxFQUFFLEdBQUcsRUFBRTtnQkFDWCxJQUFJLGVBQWUsR0FBdUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztnQkFDeEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDL0csSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ2QsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUM7d0JBQzlFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO3dCQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDN0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUN4QyxDQUFDO3lCQUFNLENBQUM7d0JBQ04sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FBRSxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7b0JBQ25GLENBQUM7Z0JBQ0gsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFO29CQUNMLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDckQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7d0JBQy9CLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsaUVBQWlFLENBQUMsQ0FBQztvQkFDN0csQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUM1RCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzVDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2pELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1FBQ3RELElBQUksVUFBVSxHQUFHLGlCQUFpQixDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUM7UUFDekQsaUJBQWlCLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDcEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDckUsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLGlCQUFpQixHQUFHLElBQUksQ0FBQztnQkFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7Z0JBQzVCLElBQUksVUFBVSxFQUFDLENBQUM7b0JBQ2QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakcsQ0FBQztnQkFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLENBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ2xGLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxDQUFFLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUNyRixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3VHQXRLVSw4QkFBOEI7MkZBQTlCLDhCQUE4Qix5TEFGOUIsQ0FBQyxtQkFBbUIsRUFBRSxjQUFjLENBQUMsMEJDNUJsRCw4eVBBaUlBLHlERHpHWSxZQUFZLGtJQUFFLGVBQWUsMkZBQUUsWUFBWSxvVkFBRSxXQUFXLCtsRUFBRSxjQUFjLDRxQ0FBRSxXQUFXLDB6QkFBRSxpQkFBaUIseURBQUUsbUJBQW1CLCtVQUFFLGtCQUFrQiwwUEFBRSxlQUFlLDhCQUFFLGVBQWUseUhBQUUsZ0JBQWdCLHNHQUFFLDJCQUEyQjs7MkZBTWpPLDhCQUE4QjtrQkFSMUMsU0FBUzsrQkFDRSx5QkFBeUIsV0FDMUIsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLDJCQUEyQixDQUFDLGNBQy9OLElBQUksYUFHUCxDQUFDLG1CQUFtQixFQUFFLGNBQWMsQ0FBQzt5U0FlaEMsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgQ29uZmlybUV2ZW50VHlwZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBSZXBvcnRlRnVlbnRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL3JlcG9ydGUtZnVlbnRlLnBpcGUnO1xuaW1wb3J0IHsgRWplY3VjaW9uUmVwb3J0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lamVjdWNpb25yZXBvcnRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRnVlbnRlRGF0b01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VndXJpZGFkL21vZGVsb3MvRnVlbnRlRGF0byc7XG5pbXBvcnQgeyBSZXBvcnRlRW50cmFkYU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VndXJpZGFkL21vZGVsb3MvUmVwb3J0ZUVudHJhZGFNb2RlbCc7XG5pbXBvcnQgeyBHZW5lcmFsTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9zZWd1cmlkYWQvbW9kZWxvcy9HZW5lcmFsTW9kZWwnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNpb3MvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBHZW5lcmFsUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL2dlbmVyYWwucGlwZSc7XG5pbXBvcnQgeyBHZW5lcmFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNpb3MvZ2VuZXJhbC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2Ryb3Bkb3duJztcbmltcG9ydCB7IENvbmZpcm1Qb3B1cE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY29uZmlybXBvcHVwJztcbmltcG9ydCB7IFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcGFnaW5hdG9yJztcbmltcG9ydCB7IElucHV0VGV4dE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaW5wdXR0ZXh0JztcbmltcG9ydCB7IEZsb2F0TGFiZWxNb2R1bGUgfSBmcm9tICdwcmltZW5nL2Zsb2F0bGFiZWwnO1xuaW1wb3J0IHsgVGVtcGxhdGVUYWJsYVZhY2lhQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9jb21wb25lbnRlcy90ZW1wbGF0ZS10YWJsYS12YWNpYS90ZW1wbGF0ZS10YWJsYS12YWNpYS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZXRhbGxlLWVudHJhZGEtcmVwb3J0ZScsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgQnV0dG9uTW9kdWxlLCBUYWJsZU1vZHVsZSwgRHJvcGRvd25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSZXBvcnRlRnVlbnRlUGlwZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgQ29uZmlybVBvcHVwTW9kdWxlLCBQYWdpbmF0b3JNb2R1bGUsIElucHV0VGV4dE1vZHVsZSwgRmxvYXRMYWJlbE1vZHVsZSwgVGVtcGxhdGVUYWJsYVZhY2lhQ29tcG9uZW50XSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kZXRhbGxlLWVudHJhZGEtcmVwb3J0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RldGFsbGUtZW50cmFkYS1yZXBvcnRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0NvbmZpcm1hdGlvblNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBEZXRhbGxlRW50cmFkYVJlcG9ydGVDb21wb25lbnQgIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgZm9ybVJlcG9ydGVFbnRyYWRhOiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBsaXN0YVRpcG87XG4gIHB1YmxpYyBsaXN0YVRpcG9EYXRvO1xuICBwdWJsaWMgbGlzdGFTaU5vO1xuXG4gIHB1YmxpYyByZXBvcnRlRW50cmFkYTpSZXBvcnRlRW50cmFkYU1vZGVsO1xuICBwdWJsaWMgc3VibWl0dGVkID0gZmFsc2U7XG4gIHB1YmxpYyB2aXN0YVZpc3VhbGl6YXI6IHN0cmluZztcblxuICBwdWJsaWMgbGlzdGFFbnRyYWRhIDogUmVwb3J0ZUVudHJhZGFNb2RlbFtdID0gW107XG4gIHB1YmxpYyBsaXN0YUZ1ZW50ZSA6IEZ1ZW50ZURhdG9Nb2RlbFtdID0gW10gIDtcbiAgQElucHV0KCkgcHVibGljIGxsYXZlUmVwb3J0ZSA6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIG1vZGlmaWNhclJlcG9ydGUgOiBib29sZWFuO1xuICBAT3V0cHV0KCkgcmVncmVzYXIgPSBuZXcgRXZlbnRFbWl0dGVyO1xuXG4gIHBhZ2luYXRvcj17XG4gICAgcm93czoxMCxcbiAgICB0b3RhbFJlY29yZHM6MFxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgbm90aWZpY2FjaW9uZXNCdXNTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZ2VuZXJhbFNlcnZpY2U6IEdlbmVyYWxTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVwb3J0ZVNlcnZpY2U6IEVqZWN1Y2lvblJlcG9ydGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGdlbmVyYWxQaXBlOiBHZW5lcmFsUGlwZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlcG9ydGVGdWVudGVQaXBlOiBSZXBvcnRlRnVlbnRlUGlwZSkge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0YVRpcG8gPSB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLlRJUE9TX0VOVFJBREEgO1xuICAgIHRoaXMubGlzdGFUaXBvRGF0byA9IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuVElQT1NfREFUTztcbiAgICB0aGlzLmxpc3RhU2lObyA9IHRoaXMuZ2VuZXJhbFBpcGUuTElTVEFfU0lOT1xuICAgIFxuICB9XG5cbiAgY2FyZ2FyTGlzdGFFbnRyYWRhKGV2ZW50KXtcbiAgICB0aGlzLmdlbmVyYWxTZXJ2aWNlLnF1ZXJ5Rm9yTGlzdChuZXcgR2VuZXJhbE1vZGVsKCdSZXBvcnRlRW50cmFkYURUTycsIG51bGwsIGZhbHNlLCB7XG4gICAgICByZXBvcnRlRnVlbnRlOiB0aGlzLmxsYXZlUmVwb3J0ZSxcbiAgICAgIHBhZ2luYWNpb25SZWdpc3Ryb0luaWNpYWw6IGV2ZW50LmZpcnN0LFxuICAgICAgcGFnaW5hY2lvblJlZ2lzdHJvRmluYWw6IGV2ZW50LnJvd3MsXG4gICAgfSkpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIHRoaXMubGlzdGFFbnRyYWRhID0gZGF0YTtcbiAgICAgIHRoaXMuZ2VuZXJhbFNlcnZpY2UuY2FudGlkYWRSZWdpc3Ryb3MobmV3IEdlbmVyYWxNb2RlbCgnUmVwb3J0ZUVudHJhZGFEVE8nLCBudWxsLCBmYWxzZSwge1xuICAgICAgICByZXBvcnRlRnVlbnRlOiB0aGlzLmxsYXZlUmVwb3J0ZSxcbiAgICAgIH0pKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMucGFnaW5hdG9yLnRvdGFsUmVjb3JkcyA9IGRhdGE7XG4gICAgICB9KVxuICAgICAgdGhpcy5nZW5lcmFsU2VydmljZS5xdWVyeUZvckxpc3QobmV3IEdlbmVyYWxNb2RlbCgnRnVlbnRlRGF0b0RUTycsIG51bGwsIGZhbHNlLCB7b3JpZ2VuOiAnTCd9KSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICB0aGlzLmxpc3RhRnVlbnRlID0gZGF0YTtcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBjYXJnYXJGb3JtdWxhcmlvUmVwb3J0ZUVudHJhZGEoKXtcbiAgICB0aGlzLmZvcm1SZXBvcnRlRW50cmFkYSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgZGVzY3JpcGNpb246IG5ldyBGb3JtQ29udHJvbCh0aGlzLnJlcG9ydGVFbnRyYWRhLmRlc2NyaXBjaW9uLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgcGFyYW1ldHJvOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5yZXBvcnRlRW50cmFkYS5wYXJhbWV0cm8sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICB0aXBvOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5yZXBvcnRlRW50cmFkYS50aXBvLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgdGlwb0RhdG86IG5ldyBGb3JtQ29udHJvbCh0aGlzLnJlcG9ydGVFbnRyYWRhLnRpcG9EYXRvLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgZnVlbnRlRGF0byAgOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5yZXBvcnRlRW50cmFkYS5mdWVudGVEYXRvKSxcbiAgICAgIHZhbG9yRGVmZWN0bzogbmV3IEZvcm1Db250cm9sKHRoaXMucmVwb3J0ZUVudHJhZGEudmFsb3JEZWZlY3RvKSxcbiAgICAgIG9yZGVuOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5yZXBvcnRlRW50cmFkYS5vcmRlbiksXG4gICAgICBwYXJhbWV0cm9FbnRyYWRhOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5yZXBvcnRlRW50cmFkYS5wYXJhbWV0cm9FbnRyYWRhKSxcbiAgICAgIGZvcm1hdG86IG5ldyBGb3JtQ29udHJvbCh0aGlzLnJlcG9ydGVFbnRyYWRhLmZvcm1hdG8pLFxuICAgICAgc29saWNpdGFyOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5yZXBvcnRlRW50cmFkYS5zb2xpY2l0YXIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICBsbGF2ZTogbmV3IEZvcm1Db250cm9sKHRoaXMucmVwb3J0ZUVudHJhZGEubGxhdmUpLFxuICAgICAgcmVwb3J0ZUZ1ZW50ZTogbmV3IEZvcm1Db250cm9sKHRoaXMucmVwb3J0ZUVudHJhZGEucmVwb3J0ZUZ1ZW50ZSlcbiAgICB9KTtcbiAgICBjb25zb2xlLmxvZygnY2FyZ2FkbyBmb3JtIHJlcG9ydGUgZW50cmFkYScpXG4gIH1cblxuICBwdWJsaWMgYWN0dWFsaXphclRpcG8oKXtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmZvcm1SZXBvcnRlRW50cmFkYS52YWx1ZSlcbiAgICBpZiAodGhpcy5mb3JtUmVwb3J0ZUVudHJhZGEudmFsdWUudGlwbyA9PT0gdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5USVBPX0RJUkVDVE8pe1xuICAgICAgdGhpcy5mb3JtUmVwb3J0ZUVudHJhZGEuZ2V0KCd0aXBvRGF0bycpLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICB0aGlzLmZvcm1SZXBvcnRlRW50cmFkYS5nZXQoJ2Z1ZW50ZURhdG8nKS5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICB9ZWxzZSBpZiAodGhpcy5mb3JtUmVwb3J0ZUVudHJhZGEudmFsdWUudGlwbyA9PT0gdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5USVBPX0xJU1RBKXtcbiAgICAgIHRoaXMuZm9ybVJlcG9ydGVFbnRyYWRhLmdldCgnZnVlbnRlRGF0bycpLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICB0aGlzLmZvcm1SZXBvcnRlRW50cmFkYS5nZXQoJ3RpcG9EYXRvJykuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgfVxuICAgIHRoaXMuZm9ybVJlcG9ydGVFbnRyYWRhLmNvbnRyb2xzWydmdWVudGVEYXRvJ10udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIHRoaXMuZm9ybVJlcG9ydGVFbnRyYWRhLmNvbnRyb2xzWyd0aXBvRGF0byddLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcblxuICB9XG5cbiAgcHVibGljIHZlckFjdGlvbihldmVudCl7XG4gICAgdGhpcy5yZXBvcnRlRW50cmFkYSA9IGV2ZW50LmRhdGE7XG4gICAgdGhpcy52aXN0YVZpc3VhbGl6YXIgPSAnZGV0YWxsZSc7XG4gICAgdGhpcy5jYXJnYXJGb3JtdWxhcmlvUmVwb3J0ZUVudHJhZGEoKTtcblxuICB9XG5cbiAgcHVibGljIG51ZXZvRW50cmFkYSgpe1xuICAgIHRoaXMudmlzdGFWaXN1YWxpemFyID0gJ2RldGFsbGUnO1xuICAgIHRoaXMucmVwb3J0ZUVudHJhZGEgPSBuZXcgUmVwb3J0ZUVudHJhZGFNb2RlbCgpO1xuICAgIC8vdGhpcy5yZXBvcnRlRW50cmFkYS50aXBvID0gdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5USVBPX0RJUkVDVE87XG4gICAgdGhpcy5jYXJnYXJGb3JtdWxhcmlvUmVwb3J0ZUVudHJhZGEoKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0RpcmVjdG8oKTpib29sZWFue1xuICAgIHJldHVybiB0aGlzLmZvcm1SZXBvcnRlRW50cmFkYS52YWx1ZS50aXBvICE9IG51bGwgJiYgdGhpcy5mb3JtUmVwb3J0ZUVudHJhZGEudmFsdWUudGlwbyA9PT0gdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5USVBPX0RJUkVDVE87XG4gIH1cblxuICBwdWJsaWMgaXNMaXN0YSgpOmJvb2xlYW57XG4gICAgcmV0dXJuIHRoaXMuZm9ybVJlcG9ydGVFbnRyYWRhLnZhbHVlLnRpcG8gIT0gbnVsbCAmJiB0aGlzLmZvcm1SZXBvcnRlRW50cmFkYS52YWx1ZS50aXBvID09PSB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLlRJUE9fTElTVEE7XG4gIH1cblxuICBwdWJsaWMgZWxpbWluYXIoZXZlbnQ6IEV2ZW50KXtcbiAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XG4gICAgICB0YXJnZXQ6IGV2ZW50LnRhcmdldCxcbiAgICAgIG1lc3NhZ2U6ICB0aGlzLmdlbmVyYWxQaXBlLk1FTlNBSkVfRUxJTUlOQVJfQ09ORklSTUFSLFxuICAgICAgYWNjZXB0TGFiZWw6IHRoaXMuZ2VuZXJhbFBpcGUuU0lfREVTQyxcbiAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbmZpcm1hcicpLFxuICAgICAgYWNjZXB0OiAoKSA9PiB7XG4gICAgICAgIGxldCBlbnRyYWRhRWxpbWluYXI6UmVwb3J0ZUVudHJhZGFNb2RlbCA9IHRoaXMuZm9ybVJlcG9ydGVFbnRyYWRhLnZhbHVlO1xuICAgICAgICB0aGlzLmdlbmVyYWxTZXJ2aWNlLmRlbGV0ZShuZXcgR2VuZXJhbE1vZGVsKCdSZXBvcnRlRW50cmFkYURUTycsIG51bGwsIGZhbHNlLCBlbnRyYWRhRWxpbWluYXIpKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgaWYgKGRhdGEgPT0gMSkge1xuICAgICAgICAgICAgdGhpcy5ub3RpZmljYWNpb25lc0J1c1NlcnZpY2Uuc2hvd1N1Y2Nlc3MoIHRoaXMuZ2VuZXJhbFBpcGUuTUVOU0FKRV9FTElNSU5BUik7XG4gICAgICAgICAgICB0aGlzLnZpc3RhVmlzdWFsaXphciA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmxpc3RhRW50cmFkYSA9IHRoaXMubGlzdGFFbnRyYWRhLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5sbGF2ZSAhPT0gZW50cmFkYUVsaW1pbmFyLmxsYXZlKTtcbiAgICAgICAgICAgIHRoaXMucmVncmVzYXIuZW1pdCh0aGlzLmxpc3RhRW50cmFkYSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2FjaW9uZXNCdXNTZXJ2aWNlLnNob3dTdWNjZXNzKCB0aGlzLmdlbmVyYWxQaXBlLk1FTlNBSkVfRUxJTUlOQVJfTk8pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICAgIHZhciBkYXRhID0gSlNPTi5zdHJpbmdpZnkoZXJyLmVycm9yLm1lbnNhamVFdGlxdWV0YSk7XG4gICAgICAgICAgICBpZiAoZGF0YS5pbmNsdWRlcygnT1JBLTAyMjkyJykpIHtcbiAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYWNpb25lc0J1c1NlcnZpY2Uuc2hvd0Vycm9yKCdFbCByZWdpdHJvIHNlIHV0aWxpemEgZW4gb3Ryb3MgdGFyZWFzLCBObyBlcyBwb3NpYmxlIGVsaW1pbmFybG8nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYWN0dWFsaXphcigpe1xuICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcbiAgICBpZiAoIXRoaXMuZm9ybVJlcG9ydGVFbnRyYWRhLnZhbGlkKSB7XG4gICAgICAgIHRoaXMubm90aWZpY2FjaW9uZXNCdXNTZXJ2aWNlLnNob3dFcnJvcignRmFsdGFuIGNhbXBvcyBvYmxpZ2F0b3Jpb3MnKTtcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5mb3JtUmVwb3J0ZUVudHJhZGEuY29udHJvbHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmZvcm1SZXBvcnRlRW50cmFkYS5nZXQoa2V5KS5lcnJvcnMpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybVJlcG9ydGVFbnRyYWRhLmdldChrZXkpLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGVudHJhZGFBY3R1YWxpemFyID0gdGhpcy5mb3JtUmVwb3J0ZUVudHJhZGEudmFsdWU7XG4gICAgbGV0IGFjdHVhbGl6YXIgPSBlbnRyYWRhQWN0dWFsaXphci5yZXBvcnRlRnVlbnRlICE9IG51bGw7XG4gICAgZW50cmFkYUFjdHVhbGl6YXIucmVwb3J0ZUZ1ZW50ZSA9IHRoaXMubGxhdmVSZXBvcnRlO1xuICAgIHRoaXMucmVwb3J0ZVNlcnZpY2UuZ3VhcmRhckVudHJhZGEoZW50cmFkYUFjdHVhbGl6YXIpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIGlmIChkYXRhICE9IG51bGwpIHtcbiAgICAgICAgZW50cmFkYUFjdHVhbGl6YXIgPSBkYXRhO1xuICAgICAgICB0aGlzLnZpc3RhVmlzdWFsaXphciA9IG51bGw7XG4gICAgICAgIGlmIChhY3R1YWxpemFyKXtcbiAgICAgICAgICB0aGlzLmxpc3RhRW50cmFkYSA9IHRoaXMubGlzdGFFbnRyYWRhLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5sbGF2ZSAhPT0gZW50cmFkYUFjdHVhbGl6YXIubGxhdmUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGlzdGFFbnRyYWRhLnB1c2goZW50cmFkYUFjdHVhbGl6YXIpO1xuICAgICAgICB0aGlzLnJlZ3Jlc2FyLmVtaXQodGhpcy5saXN0YUVudHJhZGEpO1xuICAgICAgICB0aGlzLm5vdGlmaWNhY2lvbmVzQnVzU2VydmljZS5zaG93U3VjY2VzcyggdGhpcy5nZW5lcmFsUGlwZS5NRU5TQUpFX0FDVFVBTElaQVIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYWNpb25lc0J1c1NlcnZpY2Uuc2hvd1N1Y2Nlc3MoIHRoaXMuZ2VuZXJhbFBpcGUuTUVOU0FKRV9BQ1RVQUxJWkFSX05PKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG59XG4iLCI8IS0tPHAtY29uZmlybURpYWxvZyBoZWFkZXI9XCInY29uZmlybWFyJylcIiBpY29uPVwicGkgcGktZXhjbGFtYXRpb24tdHJpYW5nbGVcIj48L3AtY29uZmlybURpYWxvZz4tLT5cbjxwLWNvbmZpcm1Qb3B1cD48L3AtY29uZmlybVBvcHVwPlxuPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG10LTIgbWItMlwiPlxuICAgIDxoMSBjbGFzcz1cInRleHQteGwgbWItMVwiPnt7J2VudHJhZGEnIHwgdHJhbnNsYXRlfX08L2gxPlxuICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwicC1idXR0b24tc2Vjb25kYXJ5IGZvbnQtc2VtaWJvbGRcIiBpY29uPVwicGkgcGktcGx1c1wiIChjbGljayk9XCJudWV2b0VudHJhZGEoKVwiIFxuICAgICAgICAqbmdJZj1cInZpc3RhVmlzdWFsaXphciAhPSAnZGV0YWxsZSdcIiBsYWJlbD1cInt7J2xpbmtfbnVldm8nIHwgdHJhbnNsYXRlfX1cIiA+XG4gIDwvYnV0dG9uPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG1iLTMgIG1iLTFcIiAqbmdJZj1cInZpc3RhVmlzdWFsaXphciA9PSdkZXRhbGxlJ1wiPlxuICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIChjbGljayk9XCJ2aXN0YVZpc3VhbGl6YXIgPSBudWxsXCIgbGFiZWw9IFwie3snbGlzdGFkbycgfCB0cmFuc2xhdGV9fSB7eydlbnRyYWRhJyB8IHRyYW5zbGF0ZX19XCIgXG4gICAgICAgIGljb249XCJwaSBwaS1jaGV2cm9uLWxlZnRcIiBjbGFzcz1cInAtYnV0dG9uLXRleHQgZm9udC1zZW1pYm9sZCBmbGV4LXNocmluay0wIFwiPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxwLXRhYmxlIFt2YWx1ZV09XCJsaXN0YUVudHJhZGFcIiByZXNwb25zaXZlTGF5b3V0PVwic2Nyb2xsXCIgW3Njcm9sbGFibGVdPVwidHJ1ZVwiIFtzaG93Q3VycmVudFBhZ2VSZXBvcnRdPVwidHJ1ZVwiICpuZ0lmPVwidmlzdGFWaXN1YWxpemFyICE9ICdkZXRhbGxlJ1wiXG4gICAgc2VsZWN0aW9uTW9kZT1cInNpbmdsZVwiIGRhdGFLZXk9XCJsbGF2ZVwiICBjdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlPVwie2ZpcnN0fSBhbCB7bGFzdH0gZGUge3RvdGFsUmVjb3Jkc30gcmVnaXN0cm9zXCJcbiAgICAob25Sb3dTZWxlY3QpPVwidmVyQWN0aW9uKCRldmVudClcIiAob25Sb3dVbnNlbGVjdCk9XCJ2ZXJBY3Rpb24oJGV2ZW50KVwiIFtyb3dzXT1cInBhZ2luYXRvci5yb3dzXCIgW3RvdGFsUmVjb3Jkc109XCJwYWdpbmF0b3IudG90YWxSZWNvcmRzXCIgW3BhZ2luYXRvcl09XCJwYWdpbmF0b3IudG90YWxSZWNvcmRzID4gcGFnaW5hdG9yLnJvd3NcIlxuICAgIFtsYXp5XT1cInRydWVcIiAob25MYXp5TG9hZCk9XCJjYXJnYXJMaXN0YUVudHJhZGEoJGV2ZW50KVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoPnt7J2Rlc2NyaXBjaW9uJyB8IHRyYW5zbGF0ZSB9fSA8L3RoPlxuICAgICAgICAgICAgPHRoPnt7J3RpcG8nIHwgdHJhbnNsYXRlIH19IDwvdGg+XG4gICAgICAgICAgICA8dGg+e3sncGFyYW1ldHJvJyB8IHRyYW5zbGF0ZSB9fSA8L3RoPlxuICAgICAgICAgICAgPHRoPnt7J3ZhbG9ycG9yZGVmZWN0bycgfCB0cmFuc2xhdGUgfX0gPC90aD5cbiAgICAgICAgICAgIDx0aD57eydvcmRlbicgfCB0cmFuc2xhdGUgfX0gPC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRoPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtZW50cmFkYT5cbiAgICAgICAgPHRyIFtwU2VsZWN0YWJsZVJvd109XCJlbnRyYWRhXCI+XG4gICAgICAgICAgICA8dGQ+e3tlbnRyYWRhLmRlc2NyaXBjaW9ufX08L3RkPlxuICAgICAgICAgICAgPHRkPnt7ZW50cmFkYS50aXBvRGF0byB8IHJlcG9ydGVGdWVudGVQaXBlOiAnbGlzdGFUaXBvRGF0byd9fTwvdGQ+XG4gICAgICAgICAgICA8dGQ+e3tlbnRyYWRhLnBhcmFtZXRyb319PC90ZD5cbiAgICAgICAgICAgIDx0ZD57e2VudHJhZGEudmFsb3JEZWZlY3RvfX08L3RkPlxuICAgICAgICAgICAgPHRkPnt7ZW50cmFkYS5vcmRlbn19PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJlbXB0eW1lc3NhZ2VcIj5cbiAgICAgICAgPGFwcC10ZW1wbGF0ZS10YWJsYS12YWNpYT48L2FwcC10ZW1wbGF0ZS10YWJsYS12YWNpYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9wLXRhYmxlPlxuXG48ZGl2IGNsYXNzPVwiY2FyZCBtdC0zXCIgKm5nSWY9XCJ2aXN0YVZpc3VhbGl6YXIgPT0gJ2RldGFsbGUnXCI+XG4gICAgPGg1IGNsYXNzPVwibXQtM1wiPjxpIGNsYXNzPVwiZ2x5cGhpY29ucyBnbHlwaGljb25zLW5vdGVzXCI+PC9pPnt7J2RldGFsbGUnIHwgdHJhbnNsYXRlfX08L2g1PlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVJlcG9ydGVFbnRyYWRhXCIgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiRGV0YWxsZXJlcG9ydGUgbXQtMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgZ3JpZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC02XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBwSW5wdXRUZXh0IGlkPVwiZGVzY3JpcGNpb25cIiB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXBjaW9uXCIgc2l6ZT1cIjQwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJkZXNjcmlwY2lvblwiPnt7J2Rlc2NyaXBjaW9uJyB8IHRyYW5zbGF0ZSB9fSAqPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgcElucHV0VGV4dCBpZD1cInBhcmFtZXRyb1wiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwicGFyYW1ldHJvXCIgc2l6ZT1cIjI1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJwYXJhbWV0cm9cIj57eydwYXJhbWV0cm8nIHwgdHJhbnNsYXRlIH19ICo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC02XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cImxpc3RhVGlwb1wiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgZm9ybUNvbnRyb2xOYW1lPVwidGlwb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwibm9tYnJlXCIgb3B0aW9uVmFsdWU9XCJjb2RpZ29cIiAob25DaGFuZ2UpPVwiYWN0dWFsaXphclRpcG8oKVwiPjwvcC1kcm9wZG93bj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cInRpcG9cIj57eyd0aXBvJyB8IHRyYW5zbGF0ZSB9fSAqPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNlwiICpuZ0lmPVwiaXNEaXJlY3RvKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwibGlzdGFUaXBvRGF0b1wiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgZm9ybUNvbnRyb2xOYW1lPVwidGlwb0RhdG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cIm5vbWJyZVwiIG9wdGlvblZhbHVlPVwiY29kaWdvXCI+PC9wLWRyb3Bkb3duPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwidGlwb0RhdG9cIj57eyd0aXBvZGF0bycgfCB0cmFuc2xhdGUgfX0gKjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3AtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTZcIiAqbmdJZj1cImlzTGlzdGEoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJsaXN0YUZ1ZW50ZVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZnVlbnRlRGF0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwiZGVzY3JpcGNpb25cIiBvcHRpb25WYWx1ZT1cImxsYXZlXCI+PC9wLWRyb3Bkb3duPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwiZnVlbnRlRGF0b1wiPnt7J2Z1ZW50ZScgfCB0cmFuc2xhdGUgfX0ge3snZGF0bycgfCB0cmFuc2xhdGUgfX0gKjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3AtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHBJbnB1dFRleHQgaWQ9XCJ2YWxvckRlZmVjdG9cIiB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cInZhbG9yRGVmZWN0b1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwidmFsb3JEZWZlY3RvXCI+e3sndmFsb3Jwb3JkZWZlY3RvJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3AtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHBJbnB1dFRleHQgaWQ9XCJvcmRlblwiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwib3JkZW5cIiAgb25pbnB1dD1cInRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLnJlcGxhY2UoL1teMC05XS9nLCAnJykuc2xpY2UoMCwgNSk7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJvcmRlblwiPnt7J29yZGVuJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3AtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTNcIiAqbmdJZj1cImlzTGlzdGEoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgcElucHV0VGV4dCBpZD1cInBhcmFtZXRyb0VudHJhZGFcIiB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cInBhcmFtZXRyb0VudHJhZGFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cInBhcmFtZXRyb0VudHJhZGFcIj57eydlbnRyYWRhJyB8IHRyYW5zbGF0ZSB9fXM8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBwSW5wdXRUZXh0IGlkPVwiZm9ybWF0b1wiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZm9ybWF0b1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwiZm9ybWF0b1wiPnt7J2Zvcm1hdG8nIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJsaXN0YVNpTm9cIiBmb3JtQ29udHJvbE5hbWU9XCJzb2xpY2l0YXJcIiBvcHRpb25MYWJlbD1cIm5vbWJyZVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJjb2RpZ29cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3AtZHJvcGRvd24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJzb2xpY2l0YXJcIj57eydzb2xpY2l0YXInIHwgdHJhbnNsYXRlIH19ICo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwhLS1CT1RPTkVTLS0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwibWwtMiBwLWJ1dHRvbiBwLWJ1dHRvbi1yYWlzZWRcIiAoY2xpY2spPVwiYWN0dWFsaXphcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJnbHlwaGljb25zIHt7cmVwb3J0ZUVudHJhZGEubGxhdmUgPyAnZ2x5cGhpY29ucy1yZWZyZXNoJyA6ICdnbHlwaGljb25zLWZsb3BweS1zYXZlJyB9fVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJ7e3JlcG9ydGVFbnRyYWRhLmxsYXZlID8gKCdsaW5rX2FjdHVhbGl6YXInIHwgdHJhbnNsYXRlKSA6ICgnbGlua19ndWFyZGFyJyB8IHRyYW5zbGF0ZSl9fVwiID5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwibWwtMiBwLWJ1dHRvbi1vdXRsaW5lZFwiIGljb249XCJnbHlwaGljb25zIGdseXBoaWNvbnMtYmluXCIgKm5nSWY9XCJyZXBvcnRlRW50cmFkYS5sbGF2ZSAhPSBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwie3snbGlua19lbGltaW5hcicgfCB0cmFuc2xhdGV9fVwiIChjbGljayk9XCJlbGltaW5hcigkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuPC9kaXY+XG4iXX0=
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWxsZS1lbnRyYWRhLXJlcG9ydGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC93ZWJjb21tb24vcGFnZXMvZWplY3VjaW9uLXJlcG9ydGUvZGV0YWxsZS1lbnRyYWRhLXJlcG9ydGUvZGV0YWxsZS1lbnRyYWRhLXJlcG9ydGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC93ZWJjb21tb24vcGFnZXMvZWplY3VjaW9uLXJlcG9ydGUvZGV0YWxsZS1lbnRyYWRhLXJlcG9ydGUvZGV0YWxsZS1lbnRyYWRhLXJlcG9ydGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWUsV0FBVyxFQUFhLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuSCxPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBb0IsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBR3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUkxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0ZBQWtGLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVS9ILE1BQU0sT0FBTyw4QkFBOEI7SUFzQnJCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUEzQmIsa0JBQWtCLENBQVk7SUFDOUIsU0FBUyxDQUFDO0lBQ1YsYUFBYSxDQUFDO0lBQ2QsU0FBUyxDQUFDO0lBRVYsY0FBYyxDQUFxQjtJQUNuQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLGVBQWUsQ0FBUztJQUV4QixZQUFZLEdBQTJCLEVBQUUsQ0FBQztJQUMxQyxXQUFXLEdBQXVCLEVBQUUsQ0FBRztJQUM5QixZQUFZLENBQVU7SUFDdEIsZ0JBQWdCLENBQVc7SUFDakMsUUFBUSxHQUFHLElBQUksWUFBWSxDQUFDO0lBRXRDLFNBQVMsR0FBQztRQUNSLElBQUksRUFBQyxFQUFFO1FBQ1AsWUFBWSxFQUFDLENBQUM7S0FDZixDQUFBO0lBRUQsWUFBb0IsV0FBd0IsRUFDeEIsd0JBQXNDLEVBQ3RDLGNBQThCLEVBQzlCLG1CQUF3QyxFQUN4QyxjQUF1QyxFQUN2QyxXQUF3QixFQUN4QixnQkFBa0MsRUFDbEMsaUJBQW9DO1FBUHBDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBYztRQUN0QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBeUI7UUFDdkMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBQ3hELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFFO1FBQ3ZELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQztRQUN2RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFBO0lBRTlDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFLO1FBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLElBQUksWUFBWSxDQUFDLG1CQUFtQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7WUFDbEYsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ2hDLHlCQUF5QixFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ3RDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxJQUFJO1NBQ3BDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksWUFBWSxDQUFDLG1CQUFtQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7Z0JBQ3ZGLGFBQWEsRUFBRSxJQUFJLENBQUMsWUFBWTthQUNqQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLElBQUksWUFBWSxDQUFDLGVBQWUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQy9HLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRU0sOEJBQThCO1FBQ25DLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUMvQyxXQUFXLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEYsU0FBUyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hGLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0RSxRQUFRLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUUsVUFBVSxFQUFJLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO1lBQzdELFlBQVksRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQztZQUMvRCxLQUFLLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7WUFDakQsZ0JBQWdCLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN2RSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUM7WUFDckQsU0FBUyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hGLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztZQUNqRCxhQUFhLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUM7U0FDbEUsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFBO0lBQzdDLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzFDLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBQyxDQUFDO1lBQzlFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzlELENBQUM7YUFBSyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUMsQ0FBQztZQUNsRixJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0UsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3hFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUV4RSxDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQUs7UUFDcEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO0lBRXhDLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQ2hELGlFQUFpRTtRQUNqRSxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRU0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUM7SUFDbEksQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDO0lBQ2hJLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBWTtRQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDO1lBQy9CLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixPQUFPLEVBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQywwQkFBMEI7WUFDckQsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTztZQUNyQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7WUFDbEQsTUFBTSxFQUFFLEdBQUcsRUFBRTtnQkFDWCxJQUFJLGVBQWUsR0FBdUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztnQkFDeEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDL0csSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ2QsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUM7d0JBQzlFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO3dCQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDN0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUN4QyxDQUFDO3lCQUFNLENBQUM7d0JBQ04sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsQ0FBRSxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7b0JBQ25GLENBQUM7Z0JBQ0gsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFO29CQUNMLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDckQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7d0JBQy9CLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsaUVBQWlFLENBQUMsQ0FBQztvQkFDN0csQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUM1RCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzVDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2pELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1FBQ3RELElBQUksVUFBVSxHQUFHLGlCQUFpQixDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUM7UUFDekQsaUJBQWlCLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDcEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDckUsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLGlCQUFpQixHQUFHLElBQUksQ0FBQztnQkFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7Z0JBQzVCLElBQUksVUFBVSxFQUFDLENBQUM7b0JBQ2QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakcsQ0FBQztnQkFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLENBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ2xGLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxDQUFFLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUNyRixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3VHQXRLVSw4QkFBOEI7MkZBQTlCLDhCQUE4Qix5TEFGOUIsQ0FBQyxtQkFBbUIsRUFBRSxjQUFjLENBQUMsMEJDNUJsRCxxNlBBb0lBLHlERDVHWSxZQUFZLGtJQUFFLGVBQWUsMkZBQUUsWUFBWSxvVkFBRSxXQUFXLCtsRUFBRSxjQUFjLDRxQ0FBRSxXQUFXLDB6QkFBRSxpQkFBaUIseURBQUUsbUJBQW1CLCtVQUFFLGtCQUFrQiwwUEFBRSxlQUFlLDhCQUFFLGVBQWUseUhBQUUsZ0JBQWdCLHNHQUFFLDJCQUEyQjs7MkZBTWpPLDhCQUE4QjtrQkFSMUMsU0FBUzsrQkFDRSx5QkFBeUIsV0FDMUIsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLDJCQUEyQixDQUFDLGNBQy9OLElBQUksYUFHUCxDQUFDLG1CQUFtQixFQUFFLGNBQWMsQ0FBQzt5U0FlaEMsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgQ29uZmlybUV2ZW50VHlwZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBSZXBvcnRlRnVlbnRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL3JlcG9ydGUtZnVlbnRlLnBpcGUnO1xuaW1wb3J0IHsgRWplY3VjaW9uUmVwb3J0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lamVjdWNpb25yZXBvcnRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRnVlbnRlRGF0b01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VndXJpZGFkL21vZGVsb3MvRnVlbnRlRGF0byc7XG5pbXBvcnQgeyBSZXBvcnRlRW50cmFkYU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VndXJpZGFkL21vZGVsb3MvUmVwb3J0ZUVudHJhZGFNb2RlbCc7XG5pbXBvcnQgeyBHZW5lcmFsTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9zZWd1cmlkYWQvbW9kZWxvcy9HZW5lcmFsTW9kZWwnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNpb3MvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBHZW5lcmFsUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL2dlbmVyYWwucGlwZSc7XG5pbXBvcnQgeyBHZW5lcmFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNpb3MvZ2VuZXJhbC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuaW1wb3J0IHsgRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2Ryb3Bkb3duJztcbmltcG9ydCB7IENvbmZpcm1Qb3B1cE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY29uZmlybXBvcHVwJztcbmltcG9ydCB7IFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcGFnaW5hdG9yJztcbmltcG9ydCB7IElucHV0VGV4dE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaW5wdXR0ZXh0JztcbmltcG9ydCB7IEZsb2F0TGFiZWxNb2R1bGUgfSBmcm9tICdwcmltZW5nL2Zsb2F0bGFiZWwnO1xuaW1wb3J0IHsgVGVtcGxhdGVUYWJsYVZhY2lhQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9jb21wb25lbnRlcy90ZW1wbGF0ZS10YWJsYS12YWNpYS90ZW1wbGF0ZS10YWJsYS12YWNpYS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZXRhbGxlLWVudHJhZGEtcmVwb3J0ZScsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgQnV0dG9uTW9kdWxlLCBUYWJsZU1vZHVsZSwgRHJvcGRvd25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSZXBvcnRlRnVlbnRlUGlwZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgQ29uZmlybVBvcHVwTW9kdWxlLCBQYWdpbmF0b3JNb2R1bGUsIElucHV0VGV4dE1vZHVsZSwgRmxvYXRMYWJlbE1vZHVsZSwgVGVtcGxhdGVUYWJsYVZhY2lhQ29tcG9uZW50XSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kZXRhbGxlLWVudHJhZGEtcmVwb3J0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RldGFsbGUtZW50cmFkYS1yZXBvcnRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0NvbmZpcm1hdGlvblNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBEZXRhbGxlRW50cmFkYVJlcG9ydGVDb21wb25lbnQgIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgZm9ybVJlcG9ydGVFbnRyYWRhOiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBsaXN0YVRpcG87XG4gIHB1YmxpYyBsaXN0YVRpcG9EYXRvO1xuICBwdWJsaWMgbGlzdGFTaU5vO1xuXG4gIHB1YmxpYyByZXBvcnRlRW50cmFkYTpSZXBvcnRlRW50cmFkYU1vZGVsO1xuICBwdWJsaWMgc3VibWl0dGVkID0gZmFsc2U7XG4gIHB1YmxpYyB2aXN0YVZpc3VhbGl6YXI6IHN0cmluZztcblxuICBwdWJsaWMgbGlzdGFFbnRyYWRhIDogUmVwb3J0ZUVudHJhZGFNb2RlbFtdID0gW107XG4gIHB1YmxpYyBsaXN0YUZ1ZW50ZSA6IEZ1ZW50ZURhdG9Nb2RlbFtdID0gW10gIDtcbiAgQElucHV0KCkgcHVibGljIGxsYXZlUmVwb3J0ZSA6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIG1vZGlmaWNhclJlcG9ydGUgOiBib29sZWFuO1xuICBAT3V0cHV0KCkgcmVncmVzYXIgPSBuZXcgRXZlbnRFbWl0dGVyO1xuXG4gIHBhZ2luYXRvcj17XG4gICAgcm93czoxMCxcbiAgICB0b3RhbFJlY29yZHM6MFxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgbm90aWZpY2FjaW9uZXNCdXNTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZ2VuZXJhbFNlcnZpY2U6IEdlbmVyYWxTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVwb3J0ZVNlcnZpY2U6IEVqZWN1Y2lvblJlcG9ydGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGdlbmVyYWxQaXBlOiBHZW5lcmFsUGlwZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlcG9ydGVGdWVudGVQaXBlOiBSZXBvcnRlRnVlbnRlUGlwZSkge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0YVRpcG8gPSB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLlRJUE9TX0VOVFJBREEgO1xuICAgIHRoaXMubGlzdGFUaXBvRGF0byA9IHRoaXMucmVwb3J0ZUZ1ZW50ZVBpcGUuVElQT1NfREFUTztcbiAgICB0aGlzLmxpc3RhU2lObyA9IHRoaXMuZ2VuZXJhbFBpcGUuTElTVEFfU0lOT1xuICAgIFxuICB9XG5cbiAgY2FyZ2FyTGlzdGFFbnRyYWRhKGV2ZW50KXtcbiAgICB0aGlzLmdlbmVyYWxTZXJ2aWNlLnF1ZXJ5Rm9yTGlzdChuZXcgR2VuZXJhbE1vZGVsKCdSZXBvcnRlRW50cmFkYURUTycsIG51bGwsIGZhbHNlLCB7XG4gICAgICByZXBvcnRlRnVlbnRlOiB0aGlzLmxsYXZlUmVwb3J0ZSxcbiAgICAgIHBhZ2luYWNpb25SZWdpc3Ryb0luaWNpYWw6IGV2ZW50LmZpcnN0LFxuICAgICAgcGFnaW5hY2lvblJlZ2lzdHJvRmluYWw6IGV2ZW50LnJvd3MsXG4gICAgfSkpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIHRoaXMubGlzdGFFbnRyYWRhID0gZGF0YTtcbiAgICAgIHRoaXMuZ2VuZXJhbFNlcnZpY2UuY2FudGlkYWRSZWdpc3Ryb3MobmV3IEdlbmVyYWxNb2RlbCgnUmVwb3J0ZUVudHJhZGFEVE8nLCBudWxsLCBmYWxzZSwge1xuICAgICAgICByZXBvcnRlRnVlbnRlOiB0aGlzLmxsYXZlUmVwb3J0ZSxcbiAgICAgIH0pKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMucGFnaW5hdG9yLnRvdGFsUmVjb3JkcyA9IGRhdGE7XG4gICAgICB9KVxuICAgICAgdGhpcy5nZW5lcmFsU2VydmljZS5xdWVyeUZvckxpc3QobmV3IEdlbmVyYWxNb2RlbCgnRnVlbnRlRGF0b0RUTycsIG51bGwsIGZhbHNlLCB7b3JpZ2VuOiAnTCd9KSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICB0aGlzLmxpc3RhRnVlbnRlID0gZGF0YTtcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBjYXJnYXJGb3JtdWxhcmlvUmVwb3J0ZUVudHJhZGEoKXtcbiAgICB0aGlzLmZvcm1SZXBvcnRlRW50cmFkYSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgZGVzY3JpcGNpb246IG5ldyBGb3JtQ29udHJvbCh0aGlzLnJlcG9ydGVFbnRyYWRhLmRlc2NyaXBjaW9uLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgcGFyYW1ldHJvOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5yZXBvcnRlRW50cmFkYS5wYXJhbWV0cm8sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICB0aXBvOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5yZXBvcnRlRW50cmFkYS50aXBvLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgdGlwb0RhdG86IG5ldyBGb3JtQ29udHJvbCh0aGlzLnJlcG9ydGVFbnRyYWRhLnRpcG9EYXRvLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgZnVlbnRlRGF0byAgOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5yZXBvcnRlRW50cmFkYS5mdWVudGVEYXRvKSxcbiAgICAgIHZhbG9yRGVmZWN0bzogbmV3IEZvcm1Db250cm9sKHRoaXMucmVwb3J0ZUVudHJhZGEudmFsb3JEZWZlY3RvKSxcbiAgICAgIG9yZGVuOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5yZXBvcnRlRW50cmFkYS5vcmRlbiksXG4gICAgICBwYXJhbWV0cm9FbnRyYWRhOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5yZXBvcnRlRW50cmFkYS5wYXJhbWV0cm9FbnRyYWRhKSxcbiAgICAgIGZvcm1hdG86IG5ldyBGb3JtQ29udHJvbCh0aGlzLnJlcG9ydGVFbnRyYWRhLmZvcm1hdG8pLFxuICAgICAgc29saWNpdGFyOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5yZXBvcnRlRW50cmFkYS5zb2xpY2l0YXIsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICBsbGF2ZTogbmV3IEZvcm1Db250cm9sKHRoaXMucmVwb3J0ZUVudHJhZGEubGxhdmUpLFxuICAgICAgcmVwb3J0ZUZ1ZW50ZTogbmV3IEZvcm1Db250cm9sKHRoaXMucmVwb3J0ZUVudHJhZGEucmVwb3J0ZUZ1ZW50ZSlcbiAgICB9KTtcbiAgICBjb25zb2xlLmxvZygnY2FyZ2FkbyBmb3JtIHJlcG9ydGUgZW50cmFkYScpXG4gIH1cblxuICBwdWJsaWMgYWN0dWFsaXphclRpcG8oKXtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmZvcm1SZXBvcnRlRW50cmFkYS52YWx1ZSlcbiAgICBpZiAodGhpcy5mb3JtUmVwb3J0ZUVudHJhZGEudmFsdWUudGlwbyA9PT0gdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5USVBPX0RJUkVDVE8pe1xuICAgICAgdGhpcy5mb3JtUmVwb3J0ZUVudHJhZGEuZ2V0KCd0aXBvRGF0bycpLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICB0aGlzLmZvcm1SZXBvcnRlRW50cmFkYS5nZXQoJ2Z1ZW50ZURhdG8nKS5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICB9ZWxzZSBpZiAodGhpcy5mb3JtUmVwb3J0ZUVudHJhZGEudmFsdWUudGlwbyA9PT0gdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5USVBPX0xJU1RBKXtcbiAgICAgIHRoaXMuZm9ybVJlcG9ydGVFbnRyYWRhLmdldCgnZnVlbnRlRGF0bycpLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICB0aGlzLmZvcm1SZXBvcnRlRW50cmFkYS5nZXQoJ3RpcG9EYXRvJykuY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgfVxuICAgIHRoaXMuZm9ybVJlcG9ydGVFbnRyYWRhLmNvbnRyb2xzWydmdWVudGVEYXRvJ10udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIHRoaXMuZm9ybVJlcG9ydGVFbnRyYWRhLmNvbnRyb2xzWyd0aXBvRGF0byddLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcblxuICB9XG5cbiAgcHVibGljIHZlckFjdGlvbihldmVudCl7XG4gICAgdGhpcy5yZXBvcnRlRW50cmFkYSA9IGV2ZW50LmRhdGE7XG4gICAgdGhpcy52aXN0YVZpc3VhbGl6YXIgPSAnZGV0YWxsZSc7XG4gICAgdGhpcy5jYXJnYXJGb3JtdWxhcmlvUmVwb3J0ZUVudHJhZGEoKTtcblxuICB9XG5cbiAgcHVibGljIG51ZXZvRW50cmFkYSgpe1xuICAgIHRoaXMudmlzdGFWaXN1YWxpemFyID0gJ2RldGFsbGUnO1xuICAgIHRoaXMucmVwb3J0ZUVudHJhZGEgPSBuZXcgUmVwb3J0ZUVudHJhZGFNb2RlbCgpO1xuICAgIC8vdGhpcy5yZXBvcnRlRW50cmFkYS50aXBvID0gdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5USVBPX0RJUkVDVE87XG4gICAgdGhpcy5jYXJnYXJGb3JtdWxhcmlvUmVwb3J0ZUVudHJhZGEoKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0RpcmVjdG8oKTpib29sZWFue1xuICAgIHJldHVybiB0aGlzLmZvcm1SZXBvcnRlRW50cmFkYS52YWx1ZS50aXBvICE9IG51bGwgJiYgdGhpcy5mb3JtUmVwb3J0ZUVudHJhZGEudmFsdWUudGlwbyA9PT0gdGhpcy5yZXBvcnRlRnVlbnRlUGlwZS5USVBPX0RJUkVDVE87XG4gIH1cblxuICBwdWJsaWMgaXNMaXN0YSgpOmJvb2xlYW57XG4gICAgcmV0dXJuIHRoaXMuZm9ybVJlcG9ydGVFbnRyYWRhLnZhbHVlLnRpcG8gIT0gbnVsbCAmJiB0aGlzLmZvcm1SZXBvcnRlRW50cmFkYS52YWx1ZS50aXBvID09PSB0aGlzLnJlcG9ydGVGdWVudGVQaXBlLlRJUE9fTElTVEE7XG4gIH1cblxuICBwdWJsaWMgZWxpbWluYXIoZXZlbnQ6IEV2ZW50KXtcbiAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XG4gICAgICB0YXJnZXQ6IGV2ZW50LnRhcmdldCxcbiAgICAgIG1lc3NhZ2U6ICB0aGlzLmdlbmVyYWxQaXBlLk1FTlNBSkVfRUxJTUlOQVJfQ09ORklSTUFSLFxuICAgICAgYWNjZXB0TGFiZWw6IHRoaXMuZ2VuZXJhbFBpcGUuU0lfREVTQyxcbiAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbmZpcm1hcicpLFxuICAgICAgYWNjZXB0OiAoKSA9PiB7XG4gICAgICAgIGxldCBlbnRyYWRhRWxpbWluYXI6UmVwb3J0ZUVudHJhZGFNb2RlbCA9IHRoaXMuZm9ybVJlcG9ydGVFbnRyYWRhLnZhbHVlO1xuICAgICAgICB0aGlzLmdlbmVyYWxTZXJ2aWNlLmRlbGV0ZShuZXcgR2VuZXJhbE1vZGVsKCdSZXBvcnRlRW50cmFkYURUTycsIG51bGwsIGZhbHNlLCBlbnRyYWRhRWxpbWluYXIpKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgaWYgKGRhdGEgPT0gMSkge1xuICAgICAgICAgICAgdGhpcy5ub3RpZmljYWNpb25lc0J1c1NlcnZpY2Uuc2hvd1N1Y2Nlc3MoIHRoaXMuZ2VuZXJhbFBpcGUuTUVOU0FKRV9FTElNSU5BUik7XG4gICAgICAgICAgICB0aGlzLnZpc3RhVmlzdWFsaXphciA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmxpc3RhRW50cmFkYSA9IHRoaXMubGlzdGFFbnRyYWRhLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5sbGF2ZSAhPT0gZW50cmFkYUVsaW1pbmFyLmxsYXZlKTtcbiAgICAgICAgICAgIHRoaXMucmVncmVzYXIuZW1pdCh0aGlzLmxpc3RhRW50cmFkYSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2FjaW9uZXNCdXNTZXJ2aWNlLnNob3dTdWNjZXNzKCB0aGlzLmdlbmVyYWxQaXBlLk1FTlNBSkVfRUxJTUlOQVJfTk8pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICAgIHZhciBkYXRhID0gSlNPTi5zdHJpbmdpZnkoZXJyLmVycm9yLm1lbnNhamVFdGlxdWV0YSk7XG4gICAgICAgICAgICBpZiAoZGF0YS5pbmNsdWRlcygnT1JBLTAyMjkyJykpIHtcbiAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYWNpb25lc0J1c1NlcnZpY2Uuc2hvd0Vycm9yKCdFbCByZWdpdHJvIHNlIHV0aWxpemEgZW4gb3Ryb3MgdGFyZWFzLCBObyBlcyBwb3NpYmxlIGVsaW1pbmFybG8nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYWN0dWFsaXphcigpe1xuICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcbiAgICBpZiAoIXRoaXMuZm9ybVJlcG9ydGVFbnRyYWRhLnZhbGlkKSB7XG4gICAgICAgIHRoaXMubm90aWZpY2FjaW9uZXNCdXNTZXJ2aWNlLnNob3dFcnJvcignRmFsdGFuIGNhbXBvcyBvYmxpZ2F0b3Jpb3MnKTtcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5mb3JtUmVwb3J0ZUVudHJhZGEuY29udHJvbHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmZvcm1SZXBvcnRlRW50cmFkYS5nZXQoa2V5KS5lcnJvcnMpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybVJlcG9ydGVFbnRyYWRhLmdldChrZXkpLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGVudHJhZGFBY3R1YWxpemFyID0gdGhpcy5mb3JtUmVwb3J0ZUVudHJhZGEudmFsdWU7XG4gICAgbGV0IGFjdHVhbGl6YXIgPSBlbnRyYWRhQWN0dWFsaXphci5yZXBvcnRlRnVlbnRlICE9IG51bGw7XG4gICAgZW50cmFkYUFjdHVhbGl6YXIucmVwb3J0ZUZ1ZW50ZSA9IHRoaXMubGxhdmVSZXBvcnRlO1xuICAgIHRoaXMucmVwb3J0ZVNlcnZpY2UuZ3VhcmRhckVudHJhZGEoZW50cmFkYUFjdHVhbGl6YXIpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIGlmIChkYXRhICE9IG51bGwpIHtcbiAgICAgICAgZW50cmFkYUFjdHVhbGl6YXIgPSBkYXRhO1xuICAgICAgICB0aGlzLnZpc3RhVmlzdWFsaXphciA9IG51bGw7XG4gICAgICAgIGlmIChhY3R1YWxpemFyKXtcbiAgICAgICAgICB0aGlzLmxpc3RhRW50cmFkYSA9IHRoaXMubGlzdGFFbnRyYWRhLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5sbGF2ZSAhPT0gZW50cmFkYUFjdHVhbGl6YXIubGxhdmUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGlzdGFFbnRyYWRhLnB1c2goZW50cmFkYUFjdHVhbGl6YXIpO1xuICAgICAgICB0aGlzLnJlZ3Jlc2FyLmVtaXQodGhpcy5saXN0YUVudHJhZGEpO1xuICAgICAgICB0aGlzLm5vdGlmaWNhY2lvbmVzQnVzU2VydmljZS5zaG93U3VjY2VzcyggdGhpcy5nZW5lcmFsUGlwZS5NRU5TQUpFX0FDVFVBTElaQVIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYWNpb25lc0J1c1NlcnZpY2Uuc2hvd1N1Y2Nlc3MoIHRoaXMuZ2VuZXJhbFBpcGUuTUVOU0FKRV9BQ1RVQUxJWkFSX05PKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG59XG4iLCI8IS0tPHAtY29uZmlybURpYWxvZyBoZWFkZXI9XCInY29uZmlybWFyJylcIiBpY29uPVwicGkgcGktZXhjbGFtYXRpb24tdHJpYW5nbGVcIj48L3AtY29uZmlybURpYWxvZz4tLT5cbjxwLWNvbmZpcm1Qb3B1cD48L3AtY29uZmlybVBvcHVwPlxuPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG10LTIgbWItMlwiPlxuICAgIDxoMSBjbGFzcz1cInRleHQteGwgbWItMVwiPnt7J2VudHJhZGEnIHwgdHJhbnNsYXRlfX08L2gxPlxuICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwicC1idXR0b24tc2Vjb25kYXJ5IGZvbnQtc2VtaWJvbGRcIiBpY29uPVwicGkgcGktcGx1c1wiIChjbGljayk9XCJudWV2b0VudHJhZGEoKVwiIFxuICAgICAgICAqbmdJZj1cInZpc3RhVmlzdWFsaXphciAhPSAnZGV0YWxsZSdcIiBsYWJlbD1cInt7J2xpbmtfbnVldm8nIHwgdHJhbnNsYXRlfX1cIiA+XG4gIDwvYnV0dG9uPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG1iLTMgIG1iLTFcIiAqbmdJZj1cInZpc3RhVmlzdWFsaXphciA9PSdkZXRhbGxlJ1wiPlxuICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIChjbGljayk9XCJ2aXN0YVZpc3VhbGl6YXIgPSBudWxsXCIgbGFiZWw9IFwie3snbGlzdGFkbycgfCB0cmFuc2xhdGV9fSB7eydlbnRyYWRhJyB8IHRyYW5zbGF0ZX19XCIgXG4gICAgICAgIGljb249XCJwaSBwaS1jaGV2cm9uLWxlZnRcIiBjbGFzcz1cInAtYnV0dG9uLXRleHQgZm9udC1zZW1pYm9sZCBmbGV4LXNocmluay0wIFwiPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxwLXRhYmxlIFt2YWx1ZV09XCJsaXN0YUVudHJhZGFcIiByZXNwb25zaXZlTGF5b3V0PVwic2Nyb2xsXCIgW3Njcm9sbGFibGVdPVwidHJ1ZVwiIFtzaG93Q3VycmVudFBhZ2VSZXBvcnRdPVwidHJ1ZVwiICpuZ0lmPVwidmlzdGFWaXN1YWxpemFyICE9ICdkZXRhbGxlJ1wiXG4gICAgc2VsZWN0aW9uTW9kZT1cInNpbmdsZVwiIGRhdGFLZXk9XCJsbGF2ZVwiICBjdXJyZW50UGFnZVJlcG9ydFRlbXBsYXRlPVwie2ZpcnN0fSBhbCB7bGFzdH0gZGUge3RvdGFsUmVjb3Jkc30gcmVnaXN0cm9zXCJcbiAgICAob25Sb3dTZWxlY3QpPVwidmVyQWN0aW9uKCRldmVudClcIiAob25Sb3dVbnNlbGVjdCk9XCJ2ZXJBY3Rpb24oJGV2ZW50KVwiIFtyb3dzXT1cInBhZ2luYXRvci5yb3dzXCIgW3RvdGFsUmVjb3Jkc109XCJwYWdpbmF0b3IudG90YWxSZWNvcmRzXCIgW3BhZ2luYXRvcl09XCJwYWdpbmF0b3IudG90YWxSZWNvcmRzID4gcGFnaW5hdG9yLnJvd3NcIlxuICAgIFtsYXp5XT1cInRydWVcIiAob25MYXp5TG9hZCk9XCJjYXJnYXJMaXN0YUVudHJhZGEoJGV2ZW50KVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoPnt7J2Rlc2NyaXBjaW9uJyB8IHRyYW5zbGF0ZSB9fSA8L3RoPlxuICAgICAgICAgICAgPHRoPnt7J3RpcG8nIHwgdHJhbnNsYXRlIH19IDwvdGg+XG4gICAgICAgICAgICA8dGg+e3sncGFyYW1ldHJvJyB8IHRyYW5zbGF0ZSB9fSA8L3RoPlxuICAgICAgICAgICAgPHRoPnt7J3ZhbG9ycG9yZGVmZWN0bycgfCB0cmFuc2xhdGUgfX0gPC90aD5cbiAgICAgICAgICAgIDx0aD57eydvcmRlbicgfCB0cmFuc2xhdGUgfX0gPC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRoPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtZW50cmFkYT5cbiAgICAgICAgPHRyIFtwU2VsZWN0YWJsZVJvd109XCJlbnRyYWRhXCI+XG4gICAgICAgICAgICA8dGQ+e3tlbnRyYWRhLmRlc2NyaXBjaW9ufX08L3RkPlxuICAgICAgICAgICAgPHRkPnt7ZW50cmFkYS50aXBvRGF0byB8IHJlcG9ydGVGdWVudGVQaXBlOiAnbGlzdGFUaXBvRGF0byd9fTwvdGQ+XG4gICAgICAgICAgICA8dGQ+e3tlbnRyYWRhLnBhcmFtZXRyb319PC90ZD5cbiAgICAgICAgICAgIDx0ZD57e2VudHJhZGEudmFsb3JEZWZlY3RvfX08L3RkPlxuICAgICAgICAgICAgPHRkPnt7ZW50cmFkYS5vcmRlbn19PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJlbXB0eW1lc3NhZ2VcIj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIxMDBcIiBjbGFzcz1cInAtMyBmb250LW1lZGl1bSBlbXB0eW1lc3NhZ2VcIj4gICAgICAgIDxhcHAtdGVtcGxhdGUtdGFibGEtdmFjaWE+PC9hcHAtdGVtcGxhdGUtdGFibGEtdmFjaWE+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3AtdGFibGU+XG5cbjxkaXYgY2xhc3M9XCJjYXJkIG10LTNcIiAqbmdJZj1cInZpc3RhVmlzdWFsaXphciA9PSAnZGV0YWxsZSdcIj5cbiAgICA8aDUgY2xhc3M9XCJtdC0zXCI+PGkgY2xhc3M9XCJnbHlwaGljb25zIGdseXBoaWNvbnMtbm90ZXNcIj48L2k+e3snZGV0YWxsZScgfCB0cmFuc2xhdGV9fTwvaDU+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtUmVwb3J0ZUVudHJhZGFcIiA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJEZXRhbGxlcmVwb3J0ZSBtdC0yXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBncmlkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHBJbnB1dFRleHQgaWQ9XCJkZXNjcmlwY2lvblwiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcGNpb25cIiBzaXplPVwiNDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cImRlc2NyaXBjaW9uXCI+e3snZGVzY3JpcGNpb24nIHwgdHJhbnNsYXRlIH19ICo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC02XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBwSW5wdXRUZXh0IGlkPVwicGFyYW1ldHJvXCIgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJwYXJhbWV0cm9cIiBzaXplPVwiMjVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxMDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cInBhcmFtZXRyb1wiPnt7J3BhcmFtZXRybycgfCB0cmFuc2xhdGUgfX0gKjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3AtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwibGlzdGFUaXBvXCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXBvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJub21icmVcIiBvcHRpb25WYWx1ZT1cImNvZGlnb1wiIChvbkNoYW5nZSk9XCJhY3R1YWxpemFyVGlwbygpXCI+PC9wLWRyb3Bkb3duPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwidGlwb1wiPnt7J3RpcG8nIHwgdHJhbnNsYXRlIH19ICo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC02XCIgKm5nSWY9XCJpc0RpcmVjdG8oKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJsaXN0YVRpcG9EYXRvXCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXBvRGF0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwibm9tYnJlXCIgb3B0aW9uVmFsdWU9XCJjb2RpZ29cIj48L3AtZHJvcGRvd24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJ0aXBvRGF0b1wiPnt7J3RpcG9kYXRvJyB8IHRyYW5zbGF0ZSB9fSAqPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNlwiICpuZ0lmPVwiaXNMaXN0YSgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cImxpc3RhRnVlbnRlXCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBmb3JtQ29udHJvbE5hbWU9XCJmdWVudGVEYXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJkZXNjcmlwY2lvblwiIG9wdGlvblZhbHVlPVwibGxhdmVcIj48L3AtZHJvcGRvd24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJmdWVudGVEYXRvXCI+e3snZnVlbnRlJyB8IHRyYW5zbGF0ZSB9fSB7eydkYXRvJyB8IHRyYW5zbGF0ZSB9fSAqPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgcElucHV0VGV4dCBpZD1cInZhbG9yRGVmZWN0b1wiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsb3JEZWZlY3RvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJ2YWxvckRlZmVjdG9cIj57eyd2YWxvcnBvcmRlZmVjdG8nIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgcElucHV0VGV4dCBpZD1cIm9yZGVuXCIgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJvcmRlblwiICBvbmlucHV0PVwidGhpcy52YWx1ZSA9IHRoaXMudmFsdWUucmVwbGFjZSgvW14wLTldL2csICcnKS5zbGljZSgwLCA1KTtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cIm9yZGVuXCI+e3snb3JkZW4nIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtM1wiICpuZ0lmPVwiaXNMaXN0YSgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBwSW5wdXRUZXh0IGlkPVwicGFyYW1ldHJvRW50cmFkYVwiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwicGFyYW1ldHJvRW50cmFkYVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPVwicGFyYW1ldHJvRW50cmFkYVwiPnt7J2VudHJhZGEnIHwgdHJhbnNsYXRlIH19czwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3AtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHBJbnB1dFRleHQgaWQ9XCJmb3JtYXRvXCIgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJmb3JtYXRvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9XCJmb3JtYXRvXCI+e3snZm9ybWF0bycgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWZsb2F0TGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyIG1kOmNvbC0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1mbG9hdExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cImxpc3RhU2lOb1wiIGZvcm1Db250cm9sTmFtZT1cInNvbGljaXRhclwiIG9wdGlvbkxhYmVsPVwibm9tYnJlXCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cImNvZGlnb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1kcm9wZG93bj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj1cInNvbGljaXRhclwiPnt7J3NvbGljaXRhcicgfCB0cmFuc2xhdGUgfX0gKjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3AtZmxvYXRMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPCEtLUJPVE9ORVMtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIG1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJtbC0yIHAtYnV0dG9uIHAtYnV0dG9uLXJhaXNlZFwiIChjbGljayk9XCJhY3R1YWxpemFyKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImdseXBoaWNvbnMge3tyZXBvcnRlRW50cmFkYS5sbGF2ZSA/ICdnbHlwaGljb25zLXJlZnJlc2gnIDogJ2dseXBoaWNvbnMtZmxvcHB5LXNhdmUnIH19XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cInt7cmVwb3J0ZUVudHJhZGEubGxhdmUgPyAoJ2xpbmtfYWN0dWFsaXphcicgfCB0cmFuc2xhdGUpIDogKCdsaW5rX2d1YXJkYXInIHwgdHJhbnNsYXRlKX19XCIgPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJtbC0yIHAtYnV0dG9uLW91dGxpbmVkXCIgaWNvbj1cImdseXBoaWNvbnMgZ2x5cGhpY29ucy1iaW5cIiAqbmdJZj1cInJlcG9ydGVFbnRyYWRhLmxsYXZlICE9IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJ7eydsaW5rX2VsaW1pbmFyJyB8IHRyYW5zbGF0ZX19XCIgKGNsaWNrKT1cImVsaW1pbmFyKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG48L2Rpdj5cbiJdfQ==
@@ -6375,11 +6375,11 @@ class TemplateTablaVaciaComponent {
6375
6375
  return this.authService.getTokenKey('tema') || 'temaClaro';
6376
6376
  }
6377
6377
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: TemplateTablaVaciaComponent, deps: [{ token: AuthService }], target: i0.ɵɵFactoryTarget.Component });
6378
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: TemplateTablaVaciaComponent, isStandalone: true, selector: "app-template-tabla-vacia", ngImport: i0, 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</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7$1.TranslatePipe, name: "translate" }] });
6378
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: TemplateTablaVaciaComponent, isStandalone: true, selector: "app-template-tabla-vacia", ngImport: i0, template: "<tr>\n <td colspan=\"100\">\n <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 </div>\n </td>\n</tr>", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7$1.TranslatePipe, name: "translate" }] });
6379
6379
  }
6380
6380
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: TemplateTablaVaciaComponent, decorators: [{
6381
6381
  type: Component,
6382
- 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</div>" }]
6382
+ args: [{ selector: 'app-template-tabla-vacia', standalone: true, imports: [TranslateModule], template: "<tr>\n <td colspan=\"100\">\n <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 </div>\n </td>\n</tr>" }]
6383
6383
  }], ctorParameters: () => [{ type: AuthService }] });
6384
6384
 
6385
6385
  class TablaGeneralComponent {
@@ -10883,11 +10883,11 @@ class DetalleEntradaReporteComponent {
10883
10883
  });
10884
10884
  }
10885
10885
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DetalleEntradaReporteComponent, deps: [{ token: i1$1.FormBuilder }, { token: ToastService }, { token: GeneralService }, { token: i7.ConfirmationService }, { token: EjecucionReporteService }, { token: GeneralPipe }, { token: i7$1.TranslateService }, { token: ReporteFuentePipe }], target: i0.ɵɵFactoryTarget.Component });
10886
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: DetalleEntradaReporteComponent, isStandalone: true, selector: "detalle-entrada-reporte", inputs: { llaveReporte: "llaveReporte", modificarReporte: "modificarReporte" }, outputs: { regresar: "regresar" }, providers: [ConfirmationService, MessageService], ngImport: i0, template: "<!--<p-confirmDialog header=\"'confirmar')\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>-->\n<p-confirmPopup></p-confirmPopup>\n<div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <h1 class=\"text-xl mb-1\">{{'entrada' | translate}}</h1>\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoEntrada()\" \n *ngIf=\"vistaVisualizar != 'detalle'\" label=\"{{'link_nuevo' | translate}}\" >\n </button>\n <div class=\"flex justify-content-end mb-3 mb-1\" *ngIf=\"vistaVisualizar =='detalle'\">\n <button pButton pRipple (click)=\"vistaVisualizar = null\" label= \"{{'listado' | translate}} {{'entrada' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n</div>\n\n<p-table [value]=\"listaEntrada\" responsiveLayout=\"scroll\" [scrollable]=\"true\" [showCurrentPageReport]=\"true\" *ngIf=\"vistaVisualizar != 'detalle'\"\n selectionMode=\"single\" dataKey=\"llave\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n (onRowSelect)=\"verAction($event)\" (onRowUnselect)=\"verAction($event)\" [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n [lazy]=\"true\" (onLazyLoad)=\"cargarListaEntrada($event)\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th>{{'descripcion' | translate }} </th>\n <th>{{'tipo' | translate }} </th>\n <th>{{'parametro' | translate }} </th>\n <th>{{'valorpordefecto' | translate }} </th>\n <th>{{'orden' | translate }} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr [pSelectableRow]=\"entrada\">\n <td>{{entrada.descripcion}}</td>\n <td>{{entrada.tipoDato | reporteFuentePipe: 'listaTipoDato'}}</td>\n <td>{{entrada.parametro}}</td>\n <td>{{entrada.valorDefecto}}</td>\n <td>{{entrada.orden}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <app-template-tabla-vacia></app-template-tabla-vacia>\n </ng-template>\n</p-table>\n\n<div class=\"card mt-3\" *ngIf=\"vistaVisualizar == 'detalle'\">\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-notes\"></i>{{'detalle' | translate}}</h5>\n <form [formGroup]=\"formReporteEntrada\" >\n <div class=\"col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"descripcion\" type=\"text\" formControlName=\"descripcion\" size=\"40\">\n <label htmlFor=\"descripcion\">{{'descripcion' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"parametro\" type=\"text\" formControlName=\"parametro\" size=\"25\"\n maxlength=\"100\">\n <label htmlFor=\"parametro\">{{'parametro' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipo\" [autoDisplayFirst]=\"false\" formControlName=\"tipo\"\n optionLabel=\"nombre\" optionValue=\"codigo\" (onChange)=\"actualizarTipo()\"></p-dropdown>\n <label htmlFor=\"tipo\">{{'tipo' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isDirecto()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoDato\" [autoDisplayFirst]=\"false\" formControlName=\"tipoDato\"\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n <label htmlFor=\"tipoDato\">{{'tipodato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isLista()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaFuente\" [autoDisplayFirst]=\"false\" formControlName=\"fuenteDato\"\n optionLabel=\"descripcion\" optionValue=\"llave\"></p-dropdown>\n <label htmlFor=\"fuenteDato\">{{'fuente' | translate }} {{'dato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"valorDefecto\" type=\"text\" formControlName=\"valorDefecto\">\n <label htmlFor=\"valorDefecto\">{{'valorpordefecto' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"orden\" type=\"text\" formControlName=\"orden\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\">\n <label htmlFor=\"orden\">{{'orden' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\" *ngIf=\"isLista()\">\n <p-floatLabel>\n <input pInputText id=\"parametroEntrada\" type=\"text\" formControlName=\"parametroEntrada\">\n <label htmlFor=\"parametroEntrada\">{{'entrada' | translate }}s</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"formato\" type=\"text\" formControlName=\"formato\">\n <label htmlFor=\"formato\">{{'formato' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaSiNo\" formControlName=\"solicitar\" optionLabel=\"nombre\" [autoDisplayFirst]=\"false\"\n optionValue=\"codigo\">\n </p-dropdown>\n <label htmlFor=\"solicitar\">{{'solicitar' | translate }} *</label>\n </p-floatLabel>\n </div>\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"actualizar()\"\n icon=\"glyphicons {{reporteEntrada.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" \n label=\"{{reporteEntrada.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" >\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"reporteEntrada.llave != null\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\n </button>\n\n </div>\n </div>\n </div>\n </form>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i10$1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "directive", type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i17.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: i17.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i11.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "pipe", type: ReporteFuentePipe, name: "reporteFuentePipe" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ConfirmPopupModule }, { kind: "component", type: i12$2.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "ngmodule", type: PaginatorModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i14$1.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: i27.FloatLabel, selector: "p-floatLabel" }, { kind: "component", type: TemplateTablaVaciaComponent, selector: "app-template-tabla-vacia" }] });
10886
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: DetalleEntradaReporteComponent, isStandalone: true, selector: "detalle-entrada-reporte", inputs: { llaveReporte: "llaveReporte", modificarReporte: "modificarReporte" }, outputs: { regresar: "regresar" }, providers: [ConfirmationService, MessageService], ngImport: i0, template: "<!--<p-confirmDialog header=\"'confirmar')\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>-->\n<p-confirmPopup></p-confirmPopup>\n<div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <h1 class=\"text-xl mb-1\">{{'entrada' | translate}}</h1>\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoEntrada()\" \n *ngIf=\"vistaVisualizar != 'detalle'\" label=\"{{'link_nuevo' | translate}}\" >\n </button>\n <div class=\"flex justify-content-end mb-3 mb-1\" *ngIf=\"vistaVisualizar =='detalle'\">\n <button pButton pRipple (click)=\"vistaVisualizar = null\" label= \"{{'listado' | translate}} {{'entrada' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n</div>\n\n<p-table [value]=\"listaEntrada\" responsiveLayout=\"scroll\" [scrollable]=\"true\" [showCurrentPageReport]=\"true\" *ngIf=\"vistaVisualizar != 'detalle'\"\n selectionMode=\"single\" dataKey=\"llave\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n (onRowSelect)=\"verAction($event)\" (onRowUnselect)=\"verAction($event)\" [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n [lazy]=\"true\" (onLazyLoad)=\"cargarListaEntrada($event)\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th>{{'descripcion' | translate }} </th>\n <th>{{'tipo' | translate }} </th>\n <th>{{'parametro' | translate }} </th>\n <th>{{'valorpordefecto' | translate }} </th>\n <th>{{'orden' | translate }} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr [pSelectableRow]=\"entrada\">\n <td>{{entrada.descripcion}}</td>\n <td>{{entrada.tipoDato | reporteFuentePipe: 'listaTipoDato'}}</td>\n <td>{{entrada.parametro}}</td>\n <td>{{entrada.valorDefecto}}</td>\n <td>{{entrada.orden}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\"> <app-template-tabla-vacia></app-template-tabla-vacia>\n </td>\n </tr>\n </ng-template>\n</p-table>\n\n<div class=\"card mt-3\" *ngIf=\"vistaVisualizar == 'detalle'\">\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-notes\"></i>{{'detalle' | translate}}</h5>\n <form [formGroup]=\"formReporteEntrada\" >\n <div class=\"col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"descripcion\" type=\"text\" formControlName=\"descripcion\" size=\"40\">\n <label htmlFor=\"descripcion\">{{'descripcion' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"parametro\" type=\"text\" formControlName=\"parametro\" size=\"25\"\n maxlength=\"100\">\n <label htmlFor=\"parametro\">{{'parametro' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipo\" [autoDisplayFirst]=\"false\" formControlName=\"tipo\"\n optionLabel=\"nombre\" optionValue=\"codigo\" (onChange)=\"actualizarTipo()\"></p-dropdown>\n <label htmlFor=\"tipo\">{{'tipo' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isDirecto()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoDato\" [autoDisplayFirst]=\"false\" formControlName=\"tipoDato\"\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n <label htmlFor=\"tipoDato\">{{'tipodato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isLista()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaFuente\" [autoDisplayFirst]=\"false\" formControlName=\"fuenteDato\"\n optionLabel=\"descripcion\" optionValue=\"llave\"></p-dropdown>\n <label htmlFor=\"fuenteDato\">{{'fuente' | translate }} {{'dato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"valorDefecto\" type=\"text\" formControlName=\"valorDefecto\">\n <label htmlFor=\"valorDefecto\">{{'valorpordefecto' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"orden\" type=\"text\" formControlName=\"orden\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\">\n <label htmlFor=\"orden\">{{'orden' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\" *ngIf=\"isLista()\">\n <p-floatLabel>\n <input pInputText id=\"parametroEntrada\" type=\"text\" formControlName=\"parametroEntrada\">\n <label htmlFor=\"parametroEntrada\">{{'entrada' | translate }}s</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"formato\" type=\"text\" formControlName=\"formato\">\n <label htmlFor=\"formato\">{{'formato' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaSiNo\" formControlName=\"solicitar\" optionLabel=\"nombre\" [autoDisplayFirst]=\"false\"\n optionValue=\"codigo\">\n </p-dropdown>\n <label htmlFor=\"solicitar\">{{'solicitar' | translate }} *</label>\n </p-floatLabel>\n </div>\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"actualizar()\"\n icon=\"glyphicons {{reporteEntrada.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" \n label=\"{{reporteEntrada.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" >\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"reporteEntrada.llave != null\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\n </button>\n\n </div>\n </div>\n </div>\n </form>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7$1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i10$1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "directive", type: i7.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i17.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: i17.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i11.Dropdown, selector: "p-dropdown", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "pipe", type: ReporteFuentePipe, name: "reporteFuentePipe" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ConfirmPopupModule }, { kind: "component", type: i12$2.ConfirmPopup, selector: "p-confirmPopup", inputs: ["key", "defaultFocus", "showTransitionOptions", "hideTransitionOptions", "autoZIndex", "baseZIndex", "style", "styleClass", "visible"] }, { kind: "ngmodule", type: PaginatorModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i14$1.InputText, selector: "[pInputText]", inputs: ["variant"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: i27.FloatLabel, selector: "p-floatLabel" }, { kind: "component", type: TemplateTablaVaciaComponent, selector: "app-template-tabla-vacia" }] });
10887
10887
  }
10888
10888
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DetalleEntradaReporteComponent, decorators: [{
10889
10889
  type: Component,
10890
- args: [{ selector: 'detalle-entrada-reporte', imports: [CommonModule, TranslateModule, ButtonModule, TableModule, DropdownModule, FormsModule, ReporteFuentePipe, ReactiveFormsModule, ConfirmPopupModule, PaginatorModule, InputTextModule, FloatLabelModule, TemplateTablaVaciaComponent], standalone: true, providers: [ConfirmationService, MessageService], template: "<!--<p-confirmDialog header=\"'confirmar')\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>-->\n<p-confirmPopup></p-confirmPopup>\n<div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <h1 class=\"text-xl mb-1\">{{'entrada' | translate}}</h1>\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoEntrada()\" \n *ngIf=\"vistaVisualizar != 'detalle'\" label=\"{{'link_nuevo' | translate}}\" >\n </button>\n <div class=\"flex justify-content-end mb-3 mb-1\" *ngIf=\"vistaVisualizar =='detalle'\">\n <button pButton pRipple (click)=\"vistaVisualizar = null\" label= \"{{'listado' | translate}} {{'entrada' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n</div>\n\n<p-table [value]=\"listaEntrada\" responsiveLayout=\"scroll\" [scrollable]=\"true\" [showCurrentPageReport]=\"true\" *ngIf=\"vistaVisualizar != 'detalle'\"\n selectionMode=\"single\" dataKey=\"llave\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n (onRowSelect)=\"verAction($event)\" (onRowUnselect)=\"verAction($event)\" [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n [lazy]=\"true\" (onLazyLoad)=\"cargarListaEntrada($event)\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th>{{'descripcion' | translate }} </th>\n <th>{{'tipo' | translate }} </th>\n <th>{{'parametro' | translate }} </th>\n <th>{{'valorpordefecto' | translate }} </th>\n <th>{{'orden' | translate }} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr [pSelectableRow]=\"entrada\">\n <td>{{entrada.descripcion}}</td>\n <td>{{entrada.tipoDato | reporteFuentePipe: 'listaTipoDato'}}</td>\n <td>{{entrada.parametro}}</td>\n <td>{{entrada.valorDefecto}}</td>\n <td>{{entrada.orden}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <app-template-tabla-vacia></app-template-tabla-vacia>\n </ng-template>\n</p-table>\n\n<div class=\"card mt-3\" *ngIf=\"vistaVisualizar == 'detalle'\">\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-notes\"></i>{{'detalle' | translate}}</h5>\n <form [formGroup]=\"formReporteEntrada\" >\n <div class=\"col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"descripcion\" type=\"text\" formControlName=\"descripcion\" size=\"40\">\n <label htmlFor=\"descripcion\">{{'descripcion' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"parametro\" type=\"text\" formControlName=\"parametro\" size=\"25\"\n maxlength=\"100\">\n <label htmlFor=\"parametro\">{{'parametro' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipo\" [autoDisplayFirst]=\"false\" formControlName=\"tipo\"\n optionLabel=\"nombre\" optionValue=\"codigo\" (onChange)=\"actualizarTipo()\"></p-dropdown>\n <label htmlFor=\"tipo\">{{'tipo' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isDirecto()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoDato\" [autoDisplayFirst]=\"false\" formControlName=\"tipoDato\"\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n <label htmlFor=\"tipoDato\">{{'tipodato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isLista()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaFuente\" [autoDisplayFirst]=\"false\" formControlName=\"fuenteDato\"\n optionLabel=\"descripcion\" optionValue=\"llave\"></p-dropdown>\n <label htmlFor=\"fuenteDato\">{{'fuente' | translate }} {{'dato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"valorDefecto\" type=\"text\" formControlName=\"valorDefecto\">\n <label htmlFor=\"valorDefecto\">{{'valorpordefecto' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"orden\" type=\"text\" formControlName=\"orden\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\">\n <label htmlFor=\"orden\">{{'orden' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\" *ngIf=\"isLista()\">\n <p-floatLabel>\n <input pInputText id=\"parametroEntrada\" type=\"text\" formControlName=\"parametroEntrada\">\n <label htmlFor=\"parametroEntrada\">{{'entrada' | translate }}s</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"formato\" type=\"text\" formControlName=\"formato\">\n <label htmlFor=\"formato\">{{'formato' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaSiNo\" formControlName=\"solicitar\" optionLabel=\"nombre\" [autoDisplayFirst]=\"false\"\n optionValue=\"codigo\">\n </p-dropdown>\n <label htmlFor=\"solicitar\">{{'solicitar' | translate }} *</label>\n </p-floatLabel>\n </div>\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"actualizar()\"\n icon=\"glyphicons {{reporteEntrada.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" \n label=\"{{reporteEntrada.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" >\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"reporteEntrada.llave != null\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\n </button>\n\n </div>\n </div>\n </div>\n </form>\n</div>\n" }]
10890
+ args: [{ selector: 'detalle-entrada-reporte', imports: [CommonModule, TranslateModule, ButtonModule, TableModule, DropdownModule, FormsModule, ReporteFuentePipe, ReactiveFormsModule, ConfirmPopupModule, PaginatorModule, InputTextModule, FloatLabelModule, TemplateTablaVaciaComponent], standalone: true, providers: [ConfirmationService, MessageService], template: "<!--<p-confirmDialog header=\"'confirmar')\" icon=\"pi pi-exclamation-triangle\"></p-confirmDialog>-->\n<p-confirmPopup></p-confirmPopup>\n<div class=\"flex justify-content-between align-items-center mt-2 mb-2\">\n <h1 class=\"text-xl mb-1\">{{'entrada' | translate}}</h1>\n <button pButton pRipple class=\"p-button-secondary font-semibold\" icon=\"pi pi-plus\" (click)=\"nuevoEntrada()\" \n *ngIf=\"vistaVisualizar != 'detalle'\" label=\"{{'link_nuevo' | translate}}\" >\n </button>\n <div class=\"flex justify-content-end mb-3 mb-1\" *ngIf=\"vistaVisualizar =='detalle'\">\n <button pButton pRipple (click)=\"vistaVisualizar = null\" label= \"{{'listado' | translate}} {{'entrada' | translate}}\" \n icon=\"pi pi-chevron-left\" class=\"p-button-text font-semibold flex-shrink-0 \"></button>\n </div>\n</div>\n\n<p-table [value]=\"listaEntrada\" responsiveLayout=\"scroll\" [scrollable]=\"true\" [showCurrentPageReport]=\"true\" *ngIf=\"vistaVisualizar != 'detalle'\"\n selectionMode=\"single\" dataKey=\"llave\" currentPageReportTemplate=\"{first} al {last} de {totalRecords} registros\"\n (onRowSelect)=\"verAction($event)\" (onRowUnselect)=\"verAction($event)\" [rows]=\"paginator.rows\" [totalRecords]=\"paginator.totalRecords\" [paginator]=\"paginator.totalRecords > paginator.rows\"\n [lazy]=\"true\" (onLazyLoad)=\"cargarListaEntrada($event)\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th>{{'descripcion' | translate }} </th>\n <th>{{'tipo' | translate }} </th>\n <th>{{'parametro' | translate }} </th>\n <th>{{'valorpordefecto' | translate }} </th>\n <th>{{'orden' | translate }} </th>\n </tr>\n <th>\n </ng-template>\n <ng-template pTemplate=\"body\" let-entrada>\n <tr [pSelectableRow]=\"entrada\">\n <td>{{entrada.descripcion}}</td>\n <td>{{entrada.tipoDato | reporteFuentePipe: 'listaTipoDato'}}</td>\n <td>{{entrada.parametro}}</td>\n <td>{{entrada.valorDefecto}}</td>\n <td>{{entrada.orden}}</td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"emptymessage\">\n <tr>\n <td colspan=\"100\" class=\"p-3 font-medium emptymessage\"> <app-template-tabla-vacia></app-template-tabla-vacia>\n </td>\n </tr>\n </ng-template>\n</p-table>\n\n<div class=\"card mt-3\" *ngIf=\"vistaVisualizar == 'detalle'\">\n <h5 class=\"mt-3\"><i class=\"glyphicons glyphicons-notes\"></i>{{'detalle' | translate}}</h5>\n <form [formGroup]=\"formReporteEntrada\" >\n <div class=\"col-md-12\">\n <div class=\"Detallereporte mt-2\">\n <div class=\"p-fluid p-formgrid grid\">\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"descripcion\" type=\"text\" formControlName=\"descripcion\" size=\"40\">\n <label htmlFor=\"descripcion\">{{'descripcion' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <input pInputText id=\"parametro\" type=\"text\" formControlName=\"parametro\" size=\"25\"\n maxlength=\"100\">\n <label htmlFor=\"parametro\">{{'parametro' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipo\" [autoDisplayFirst]=\"false\" formControlName=\"tipo\"\n optionLabel=\"nombre\" optionValue=\"codigo\" (onChange)=\"actualizarTipo()\"></p-dropdown>\n <label htmlFor=\"tipo\">{{'tipo' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isDirecto()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaTipoDato\" [autoDisplayFirst]=\"false\" formControlName=\"tipoDato\"\n optionLabel=\"nombre\" optionValue=\"codigo\"></p-dropdown>\n <label htmlFor=\"tipoDato\">{{'tipodato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-6\" *ngIf=\"isLista()\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaFuente\" [autoDisplayFirst]=\"false\" formControlName=\"fuenteDato\"\n optionLabel=\"descripcion\" optionValue=\"llave\"></p-dropdown>\n <label htmlFor=\"fuenteDato\">{{'fuente' | translate }} {{'dato' | translate }} *</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"valorDefecto\" type=\"text\" formControlName=\"valorDefecto\">\n <label htmlFor=\"valorDefecto\">{{'valorpordefecto' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"orden\" type=\"text\" formControlName=\"orden\" oninput=\"this.value = this.value.replace(/[^0-9]/g, '').slice(0, 5);\">\n <label htmlFor=\"orden\">{{'orden' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\" *ngIf=\"isLista()\">\n <p-floatLabel>\n <input pInputText id=\"parametroEntrada\" type=\"text\" formControlName=\"parametroEntrada\">\n <label htmlFor=\"parametroEntrada\">{{'entrada' | translate }}s</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <input pInputText id=\"formato\" type=\"text\" formControlName=\"formato\">\n <label htmlFor=\"formato\">{{'formato' | translate }}</label>\n </p-floatLabel>\n </div>\n <div class=\"field col-12 md:col-3\">\n <p-floatLabel>\n <p-dropdown [options]=\"listaSiNo\" formControlName=\"solicitar\" optionLabel=\"nombre\" [autoDisplayFirst]=\"false\"\n optionValue=\"codigo\">\n </p-dropdown>\n <label htmlFor=\"solicitar\">{{'solicitar' | translate }} *</label>\n </p-floatLabel>\n </div>\n </div>\n <!--BOTONES-->\n <div class=\"flex justify-content-end mb-3\">\n <button pButton pRipple class=\"ml-2 p-button p-button-raised\" (click)=\"actualizar()\"\n icon=\"glyphicons {{reporteEntrada.llave ? 'glyphicons-refresh' : 'glyphicons-floppy-save' }}\" \n label=\"{{reporteEntrada.llave ? ('link_actualizar' | translate) : ('link_guardar' | translate)}}\" >\n </button>\n <button pButton pRipple class=\"ml-2 p-button-outlined\" icon=\"glyphicons glyphicons-bin\" *ngIf=\"reporteEntrada.llave != null\"\n label=\"{{'link_eliminar' | translate}}\" (click)=\"eliminar($event)\">\n </button>\n\n </div>\n </div>\n </div>\n </form>\n</div>\n" }]
10891
10891
  }], ctorParameters: () => [{ type: i1$1.FormBuilder }, { type: ToastService }, { type: GeneralService }, { type: i7.ConfirmationService }, { type: EjecucionReporteService }, { type: GeneralPipe }, { type: i7$1.TranslateService }, { type: ReporteFuentePipe }], propDecorators: { llaveReporte: [{
10892
10892
  type: Input
10893
10893
  }], modificarReporte: [{