visorus-erp-core 13.0.0 → 14.0.0

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.
Files changed (31) hide show
  1. package/esm2020/lib/app.module.mjs +12 -14
  2. package/esm2020/lib/components/acreedor/select/select-acreedor.component.mjs +8 -8
  3. package/esm2020/lib/components/caja/session-create/session-create.component.mjs +14 -14
  4. package/esm2020/lib/components/cliente/select/select-cliente.component.mjs +7 -7
  5. package/esm2020/lib/components/loading/loading.component.mjs +1 -1
  6. package/esm2020/lib/components/login-modal/login-modal.component.mjs +5 -5
  7. package/esm2020/lib/components/pdfModal/pdf-modal.component.mjs +3 -3
  8. package/esm2020/lib/components/proveedor/select/select-proveedor.component.mjs +8 -8
  9. package/esm2020/lib/components/seleccion-articulo-informacion/seleccion-articulo-informacion.component.mjs +7 -7
  10. package/esm2020/lib/components/selecciona-articulo/selecciona-articulo.component.mjs +12 -12
  11. package/esm2020/lib/contabilidad/componentes/cclista/cclista.component.mjs +10 -10
  12. package/esm2020/lib/contabilidad/componentes/ccseleccion-dialog/ccseleccion-dialog.component.mjs +4 -4
  13. package/fesm2015/visorus-erp-core.mjs +68 -70
  14. package/fesm2015/visorus-erp-core.mjs.map +1 -1
  15. package/fesm2020/visorus-erp-core.mjs +68 -70
  16. package/fesm2020/visorus-erp-core.mjs.map +1 -1
  17. package/lib/components/acreedor/select/select-acreedor.component.d.ts +1 -1
  18. package/lib/components/caja/session-create/session-create.component.d.ts +1 -1
  19. package/lib/components/cliente/select/select-cliente.component.d.ts +1 -1
  20. package/lib/components/error404/error404.component.d.ts +1 -1
  21. package/lib/components/loading/loading.component.d.ts +1 -1
  22. package/lib/components/loading-screen/loading-screen.component.d.ts +1 -1
  23. package/lib/components/login-modal/login-modal.component.d.ts +1 -1
  24. package/lib/components/pdfModal/pdf-modal.component.d.ts +1 -1
  25. package/lib/components/proveedor/select/select-proveedor.component.d.ts +1 -1
  26. package/lib/components/seleccion-articulo-informacion/seleccion-articulo-informacion.component.d.ts +1 -1
  27. package/lib/components/selecciona-articulo/selecciona-articulo.component.d.ts +1 -1
  28. package/lib/contabilidad/componentes/cclista/cclista.component.d.ts +1 -1
  29. package/lib/contabilidad/componentes/ccseleccion-dialog/ccseleccion-dialog.component.d.ts +1 -1
  30. package/package.json +3 -3
  31. /package/{visorus-erp-core.d.ts → index.d.ts} +0 -0
@@ -6,15 +6,15 @@ import * as i0 from "@angular/core";
6
6
  import * as i1 from "./stock.service";
7
7
  import * as i2 from "../../services/paginate.service";
8
8
  import * as i3 from "../almacen/services/almacen.service";
9
- import * as i4 from "primeng/dialog";
10
- import * as i5 from "@angular/forms";
11
- import * as i6 from "primeng/inputtext";
9
+ import * as i4 from "@angular/common";
10
+ import * as i5 from "primeng/api";
11
+ import * as i6 from "primeng/table";
12
12
  import * as i7 from "primeng/button";
13
- import * as i8 from "@angular/common";
14
- import * as i9 from "primeng/table";
15
- import * as i10 from "primeng/api";
16
- import * as i11 from "@ngx-translate/core";
17
- import * as i12 from "primeng/paginator";
13
+ import * as i8 from "primeng/inputtext";
14
+ import * as i9 from "primeng/paginator";
15
+ import * as i10 from "@angular/forms";
16
+ import * as i11 from "primeng/dialog";
17
+ import * as i12 from "@ngx-translate/core";
18
18
  import * as i13 from "../seleccion-articulo-informacion/seleccion-articulo-informacion.component";
19
19
  function SeleccionaArticuloComponent_option_23_Template(rf, ctx) { if (rf & 1) {
20
20
  i0.ɵɵelementStart(0, "option", 22);
@@ -262,7 +262,7 @@ function SeleccionaArticuloComponent_ng_template_27_Template(rf, ctx) { if (rf &
262
262
  i0.ɵɵtext(12);
263
263
  i0.ɵɵelementEnd();
264
264
  i0.ɵɵelementStart(13, "td", 36)(14, "button", 41);
265
- i0.ɵɵlistener("click", function SeleccionaArticuloComponent_ng_template_27_Template_button_click_14_listener() { const restoredCtx = i0.ɵɵrestoreView(_r42); const rowData_r16 = restoredCtx.$implicit; const ctx_r41 = i0.ɵɵnextContext(); return ctx_r41.onShowInformacion(rowData_r16); });
265
+ i0.ɵɵlistener("click", function SeleccionaArticuloComponent_ng_template_27_Template_button_click_14_listener() { const restoredCtx = i0.ɵɵrestoreView(_r42); const rowData_r16 = restoredCtx.$implicit; const ctx_r41 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r41.onShowInformacion(rowData_r16)); });
266
266
  i0.ɵɵelementEnd()();
267
267
  i0.ɵɵtemplate(15, SeleccionaArticuloComponent_ng_template_27_td_15_Template, 3, 3, "td", 34);
268
268
  i0.ɵɵtemplate(16, SeleccionaArticuloComponent_ng_template_27_td_16_Template, 3, 3, "td", 34);
@@ -315,7 +315,7 @@ function SeleccionaArticuloComponent_ng_template_27_Template(rf, ctx) { if (rf &
315
315
  function SeleccionaArticuloComponent_lib_seleccion_articulo_informacion_29_Template(rf, ctx) { if (rf & 1) {
316
316
  const _r44 = i0.ɵɵgetCurrentView();
317
317
  i0.ɵɵelementStart(0, "lib-seleccion-articulo-informacion", 48);
318
- i0.ɵɵlistener("eventSelection", function SeleccionaArticuloComponent_lib_seleccion_articulo_informacion_29_Template_lib_seleccion_articulo_informacion_eventSelection_0_listener($event) { i0.ɵɵrestoreView(_r44); const ctx_r43 = i0.ɵɵnextContext(); return ctx_r43.onEventInformacion($event); });
318
+ i0.ɵɵlistener("eventSelection", function SeleccionaArticuloComponent_lib_seleccion_articulo_informacion_29_Template_lib_seleccion_articulo_informacion_eventSelection_0_listener($event) { i0.ɵɵrestoreView(_r44); const ctx_r43 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r43.onEventInformacion($event)); });
319
319
  i0.ɵɵelementEnd();
320
320
  } if (rf & 2) {
321
321
  const ctx_r4 = i0.ɵɵnextContext();
@@ -473,7 +473,7 @@ export class SeleccionaArticuloComponent {
473
473
  i0.ɵɵproperty("rows", ctx.page.rows)("totalRecords", ctx.page.total)("pageLinkSize", 5)("rowsPerPageOptions", i0.ɵɵpureFunction0(24, _c1));
474
474
  i0.ɵɵadvance(1);
475
475
  i0.ɵɵproperty("ngIf", ctx.showModalInformacion);
476
- } }, directives: [i4.Dialog, i5.SelectControlValueAccessor, i6.InputText, i5.NgControlStatus, i5.NgModel, i5.NgSelectOption, i5.ɵNgSelectMultipleOption, i5.DefaultValueAccessor, i7.ButtonDirective, i8.NgForOf, i9.Table, i10.PrimeTemplate, i11.TranslateDirective, i8.NgIf, i9.SelectableRow, i12.Paginator, i13.SeleccionArticuloInformacionComponent], pipes: [i11.TranslatePipe, i8.CurrencyPipe, i8.DecimalPipe], styles: ["tr[_ngcontent-%COMP%]:hover{background-color:#34a835!important;color:#fff!important}table[_ngcontent-%COMP%]{position:absolute}"] });
476
+ } }, dependencies: [i4.NgForOf, i4.NgIf, i5.PrimeTemplate, i6.Table, i6.SelectableRow, i7.ButtonDirective, i8.InputText, i9.Paginator, i10.NgSelectOption, i10.ɵNgSelectMultipleOption, i10.DefaultValueAccessor, i10.SelectControlValueAccessor, i10.NgControlStatus, i10.NgModel, i11.Dialog, i12.TranslateDirective, i13.SeleccionArticuloInformacionComponent, i4.DecimalPipe, i4.CurrencyPipe, i12.TranslatePipe], styles: ["tr[_ngcontent-%COMP%]:hover{background-color:#34a835!important;color:#fff!important}table[_ngcontent-%COMP%]{position:absolute}"] });
477
477
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SeleccionaArticuloComponent, [{
478
478
  type: Component,
479
479
  args: [{ selector: 'app-selecciona-articulo', template: "<!--inicia seleccion de articulos-->\n<!-- (onShow)=\"obtenerExistenciaArticulosShow()\" -->\n<!--\n <div class=\"col-12 col-center\" >-->\n<p-dialog header=\"{{ 'Articulos' | translate }}\" [(visible)]=\"showArticulos\" [maximizable]=\"true\"\n (onShow)=\"obtenerExistenciaArticulosShow()\" (onHide)=\"busquedaArticulos = { tipoBusqueda : ''}; emitirShowArticulos()\"\n [baseZIndex]=\"10000\" [blockScroll]=\"true\" [style]=\"{'width': size+'px', 'min-width': '200px'}\" [minY]=\"70\">\n <div class=\"grid grid-fluid\">\n <div class=\"col-12 md:col-6 lg:col-6\">\n <div style=\"display: flex;\">\n <div style=\"width: 115px;\">\n <select pInputText [(ngModel)]=\"busquedaArticulos.tipoBusqueda\" (change)=\"obtenerExistenciaArticulosVal()\">\n <option value=\"C\">Codigo</option>\n <option value=\"D\">Descripcion</option>\n <option value=\"CD\">Coincidencia</option>\n <option value=\"CI\">Igual a</option>\n </select>\n </div>\n <input type=\"text\" style=\"width: 200px;\" pInputText [(ngModel)]=\"busquedaArticulos.key\"\n (keypress)=\"obtenerExistenciaArticulosKey( $event )\" id=\"key\">\n <button pButton type=\"button\" icon=\"pi pi-search\" styleClass=\"p-button-secondary\"\n (click)=\"obtenerExistenciaArticulos( )\"></button>\n </div>\n </div>\n <div class=\"col-12 md:col-6 lg:col-6\">\n <div style=\"display: flex;\">\n <div style=\"width: 100px;\">\n <label for=\"almacen\">Almacen:</label>\n </div>\n <select pInputText style=\"width: 200px;\" [(ngModel)]=\"movimiento.almacen\" disabled id=\"almacen\"\n (change)=\"obtenerExistenciaArticulosVal()\">\n <option *ngFor=\"let almacen of almacenList\" value=\"{{ almacen.id }}\">{{almacen.descripcion}}</option>\n </select>\n </div>\n\n </div>\n </div>\n\n <!--\n <div id=\"table-wrapper\">\n <div id=\"table-scroll\">-->\n <!-- new table\n <p-table #dt [columns]=\"colsDD\" [value]=\"listDD\" [scrollable]=\"true\" \n [style]=\"{width: '100%'} \" [scrollHeight]=\"maxH + 'px'\" \n [resizableColumns]=\"true\" [(selection)]=\"selectedXML\" (onRowSelect)=\"onRowSelect($event)\" dataKey=\"uuid\">\n\n \n -->\n\n <p-table [value]=\"articulosList\" [scrollable]=\"true\" #dt scrollHeight=\"400px\" [responsive]=\"true\"\n selectionMode=\"single\" (onRowSelect)=\"filaSeleccionada($event)\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th style=\"width: 80px\" translate>C\u00F3digo Ubicacion</th>\n <th style=\"width: 70px\" translate>Existencia</th>\n <th style=\"width: 40px\" translate>Unidad</th>\n <th style=\"width: 50px\" *ngIf=\"manejaUnidadSecundaria\" translate>existenciaSecundaria</th>\n <th style=\"width: 40px\" *ngIf=\"manejaUnidadSecundaria\" translate>Unidad</th>\n <th style=\"width: 80px\" translate>C\u00F3digo</th>\n <th style=\"width: 120px\" translate>Descripcion</th>\n <th style=\"width: 40px\" translate></th>\n <th style=\"width: 80px\" *ngIf=\"configuracion.tipoPrecio !== 'costo' \" translate>Precio</th>\n <th style=\"width: 80px\" *ngIf=\"configuracion.tipoPrecio !== 'costo' \" translate>Precio 2</th>\n <th style=\"width: 80px\" *ngIf=\"configuracion.tipoPrecio !== 'costo' \" translate>Precio 3</th>\n <th style=\"width: 80px\" *ngIf=\"configuracion.tipoPrecio !== 'costo' \" translate>Precio 4</th>\n <th style=\"width: 80px\" *ngIf=\"configuracion.tipoPrecio !== 'costo' \" translate>Precio 5</th>\n <th style=\"width: 40px\" *ngIf=\"configuracion.tipoPrecio === 'costo' \" translate>Movimiento.costo</th>\n <th style=\"width: 40px\" translate>Existencia por Unidad</th>\n <th *ngFor=\"let item of clasificadorList\" style=\"width: 80px\" translate>{{item.descripcion}}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData let-rowIndex=\"rowIndex\">\n <tr [pSelectableRow]=\"rowData\">\n <td style=\"width: 80px;\" *ngIf=\"!rowData.ubicacionCodigo\" translate>Movimiento.NoAsignado</td>\n <td style=\"width: 80px;\" *ngIf=\"rowData.ubicacionCodigo\">{{rowData.ubicacionCodigo}}</td>\n <td style=\"width: 70px;\">{{rowData.existencia}}</td>\n <td style=\"width: 40px;\">{{rowData.unidadCodigo}}</td>\n\n <td style=\"width: 50px;\" *ngIf=\"manejaUnidadSecundaria\">{{rowData.existenciaSecundaria}}</td>\n <td style=\"width: 40px;\" *ngIf=\"manejaUnidadSecundaria\">{{rowData.unidadSecundariaCodigo}}</td>\n\n <td style=\"width: 80px;\">{{rowData.articulo.codigo}}</td>\n <td style=\"width: 120px;\">{{rowData.articulo.descripcion}}</td>\n <td style=\"width: 40px;\">\n <button pButton type=\"button\" icon=\"pi pi-eye\" class=\"ui-button-raised ui-button-primary\"\n (click)=\"onShowInformacion(rowData)\">\n </button>\n </td>\n <td style=\"width: 80px;\" *ngIf=\"configuracion.tipoPrecio !== 'costo'\">{{rowData.precioConImpuestos | currency }}\n </td>\n <td style=\"width: 80px;\" *ngIf=\"configuracion.tipoPrecio !== 'costo'\">{{rowData.precio2ConImpuestos | currency\n }}</td>\n <td style=\"width: 80px;\" *ngIf=\"configuracion.tipoPrecio !== 'costo'\">{{rowData.precio3ConImpuestos | currency\n }}</td>\n <td style=\"width: 80px;\" *ngIf=\"configuracion.tipoPrecio !== 'costo'\">{{rowData.precio4ConImpuestos | currency\n }}</td>\n <td style=\"width: 80px;\" *ngIf=\"configuracion.tipoPrecio !== 'costo'\">{{rowData.precio5ConImpuestos | currency\n }}</td>\n <td style=\"width: 40px;\" *ngIf=\"configuracion.tipoPrecio === 'costo' \">{{rowData.precio | currency }}</td>\n <td style=\"width: 40px;\">\n <div class=\"row justify-content-between\" *ngFor=\"let item of rowData.existenciaUnidades\">\n <div class=\"col-lg-4\"><label for=\"\">{{item.unidad_codigo}}</label></div>\n <div class=\"col-lg-4\"><label for=\"\">{{item.unidad_existencia | number : '1.2-2'}}</label>\n </div>\n </div>\n </td>\n <!-- <td style=\"width: 40px;\"></td> -->\n <td *ngFor=\"let itemData of rowData.articuloClasificadorList\" style=\"width: 80px;\">{{itemData.valor}}</td>\n </tr>\n </ng-template>\n </p-table>\n\n <!-- /new table-->\n <!-- \n <p-table [(value)]=\"articulosList\" responsive=\"true\" \n selectionMode=\"multiple\" (onRowSelect)=\"filaSeleccionada($event)\" [scrollable]=\"true\" scrollHeight=\"350px\" >\n\n <p-column header=\"{{ 'Codigo ubicacion'.toString() | translate}}\">\n <ng-template let-dato=\"rowData\" pTemplate=\"body\">\n <label for=\"\" *ngIf=\"!dato.ubicacionCodigo\" translate> Movimiento.NoAsignado </label>\n <label for=\"\" *ngIf=\"dato.ubicacionCodigo\" > {{ dato.ubicacionCodigo }}</label>\n </ng-template>\n </p-column>\n <p-column field=\"ubicacionCodigo\" header=\"{{ 'Descripcion ubicacion'.toString() | translate}}\">\n <ng-template let-dato=\"rowData\" pTemplate=\"body\">\n <label for=\"\" *ngIf=\"!dato.ubicacionCodigo\" translate> Movimiento.NoAsignado </label>\n <label for=\"\" *ngIf=\"dato.ubicacionCodigo\" > {{ dato.ubicacionCodigo }}</label>\n </ng-template>\n </p-column>\n\n <p-column field=\"existencia\" header=\"{{'Existencia' | translate}}\"></p-column>\n <p-column field=\"unidadCodigo\" header=\"{{'Unidad' | translate}}\"></p-column>\n <p-column field=\"unidadDescripcion\" header=\"{{'Descripcion unidad' | translate}}\"></p-column>\n\n <p-column field=\"existenciaSecundaria\" header=\"{{'existenciaSecundaria' | translate}}\" *ngIf=\"manejaUnidadSecundaria\"></p-column>\n <p-column field=\"unidadSecundariaCodigo\" header=\"{{'Unidad' | translate}}\" *ngIf=\"manejaUnidadSecundaria\"></p-column>\n \n\n <p-column *ngIf=\"configuracion.tipoPrecio !== 'costo' \" header=\"{{'Movimiento.movimientoDetalle.precio' | translate}}\">\n <ng-template let-dato=\"rowData\" pTemplate=\"body\">\n <label for=\"\">{{ dato.precioConImpuestos | currency }}</label>\n </ng-template>\n </p-column>\n <p-column *ngIf=\"configuracion.tipoPrecio === 'costo' \" header=\"{{'Movimiento.costo' | translate }}\">\n <ng-template let-dato=\"rowData\" pTemplate=\"body\">\n <label for=\"\">{{ dato.precio | currency }}</label>\n </ng-template>\n </p-column>\n\n\n <p-column field=\"articulo.codigo\" header=\"{{'Codigo articulo' | translate}}\"></p-column>\n <p-column field=\"articulo.descripcion\" header=\"{{'Descripcion' | translate}}\"></p-column>\n\n\n\n <p-column header=\"{{'ExistenciaPorUnidad' | translate }}\">\n <ng-template let-dato=\"rowData\" pTemplate=\"body\">\n <div class=\"row justify-content-between\" *ngFor=\"let item of dato.existenciaUnidades\" >\n <div class=\"col-lg-4\"><label for=\"\">{{item.unidad_codigo}}</label></div>\n <div class=\"col-lg-4\"><label for=\"\">{{item.unidad_existencia | number : '1.2-2'}}</label>\n </div> \n </div> \n </ng-template>\n </p-column>\n \n </p-table>\n -->\n <p-paginator [rows]=\"page.rows\" [totalRecords]=\"page.total\" [pageLinkSize]=\"5\" (onPageChange)=\"pagina($event)\"\n [rowsPerPageOptions]=\"[10,25,50,100,500]\"></p-paginator>\n <!-- \n </div>\n </div>\n -->\n</p-dialog>\n<!--\n </div> \n -->\n<!--termina seleccion de articulos-->\n<!--selecciona ubicacion -->\n<lib-seleccion-articulo-informacion [showModal]=\"showModalInformacion\" [articulo]=\"articuloSelected\"\n (eventSelection)=\"onEventInformacion($event)\" *ngIf=\"showModalInformacion\">\n</lib-seleccion-articulo-informacion>", styles: ["tr:hover{background-color:#34a835!important;color:#fff!important}table{position:absolute}\n"] }]
@@ -490,4 +490,4 @@ export class SeleccionaArticuloComponent {
490
490
  }], emitShowArticulos: [{
491
491
  type: Output
492
492
  }] }); })();
493
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWNjaW9uYS1hcnRpY3Vsby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcnAtY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWNjaW9uYS1hcnRpY3Vsby9zZWxlY2Npb25hLWFydGljdWxvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VycC1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY2Npb25hLWFydGljdWxvL3NlbGVjY2lvbmEtYXJ0aWN1bG8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQzJCckMsa0NBQXFFO0lBQUEsWUFBdUI7SUFBQSxpQkFBUzs7O0lBQXpELGdEQUF3QjtJQUFDLGVBQXVCO0lBQXZCLDRDQUF1Qjs7O0lBeUI5Riw4QkFBaUU7SUFBQSxvQ0FBb0I7SUFBQSxpQkFBSzs7O0lBQzFGLDhCQUFpRTtJQUFBLHNCQUFNO0lBQUEsaUJBQUs7OztJQUk1RSw4QkFBZ0Y7SUFBQSxzQkFBTTtJQUFBLGlCQUFLOzs7SUFDM0YsOEJBQWdGO0lBQUEsd0JBQVE7SUFBQSxpQkFBSzs7O0lBQzdGLDhCQUFnRjtJQUFBLHdCQUFRO0lBQUEsaUJBQUs7OztJQUM3Riw4QkFBZ0Y7SUFBQSx3QkFBUTtJQUFBLGlCQUFLOzs7SUFDN0YsOEJBQWdGO0lBQUEsd0JBQVE7SUFBQSxpQkFBSzs7O0lBQzdGLDhCQUFnRjtJQUFBLGdDQUFnQjtJQUFBLGlCQUFLOzs7SUFFckcsOEJBQXdFO0lBQUEsWUFBb0I7SUFBQSxpQkFBSzs7O0lBQXpCLGVBQW9CO0lBQXBCLDBDQUFvQjs7O0lBaEI5RiwwQkFBSSxhQUFBO0lBQ2dDLHFDQUFnQjtJQUFBLGlCQUFLO0lBQ3ZELDhCQUFrQztJQUFBLDBCQUFVO0lBQUEsaUJBQUs7SUFDakQsOEJBQWtDO0lBQUEsc0JBQU07SUFBQSxpQkFBSztJQUM3QywwRkFBMEY7SUFDMUYsMEZBQTRFO0lBQzVFLDhCQUFrQztJQUFBLDRCQUFNO0lBQUEsaUJBQUs7SUFDN0MsK0JBQW1DO0lBQUEsNEJBQVc7SUFBQSxpQkFBSztJQUNuRCwwQkFBdUM7SUFDdkMsNEZBQTJGO0lBQzNGLDRGQUE2RjtJQUM3Riw0RkFBNkY7SUFDN0YsNEZBQTZGO0lBQzdGLDRGQUE2RjtJQUM3Riw0RkFBcUc7SUFDckcsK0JBQWtDO0lBQUEsc0NBQXFCO0lBQUEsaUJBQUs7SUFDNUQsNEZBQWlHO0lBQ25HLGlCQUFLOzs7SUFic0IsZUFBNEI7SUFBNUIsb0RBQTRCO0lBQzVCLGVBQTRCO0lBQTVCLG9EQUE0QjtJQUk1QixlQUEwQztJQUExQyxrRUFBMEM7SUFDMUMsZUFBMEM7SUFBMUMsa0VBQTBDO0lBQzFDLGVBQTBDO0lBQTFDLGtFQUEwQztJQUMxQyxlQUEwQztJQUExQyxrRUFBMEM7SUFDMUMsZUFBMEM7SUFBMUMsa0VBQTBDO0lBQzFDLGVBQTBDO0lBQTFDLGtFQUEwQztJQUU5QyxlQUFtQjtJQUFuQixpREFBbUI7OztJQUt4Qyw4QkFBb0U7SUFBQSxxQ0FBcUI7SUFBQSxpQkFBSzs7O0lBQzlGLDhCQUF5RDtJQUFBLFlBQTJCO0lBQUEsaUJBQUs7OztJQUFoQyxlQUEyQjtJQUEzQixpREFBMkI7OztJQUlwRiw4QkFBd0Q7SUFBQSxZQUFnQztJQUFBLGlCQUFLOzs7SUFBckMsZUFBZ0M7SUFBaEMsc0RBQWdDOzs7SUFDeEYsOEJBQXdEO0lBQUEsWUFBa0M7SUFBQSxpQkFBSzs7O0lBQXZDLGVBQWtDO0lBQWxDLHdEQUFrQzs7O0lBUzFGLDhCQUFzRTtJQUFBLFlBQ3RFOztJQUFBLGlCQUFLOzs7SUFEaUUsZUFDdEU7SUFEc0Usb0ZBQ3RFOzs7SUFDQSw4QkFBc0U7SUFBQSxZQUNsRTs7SUFBQSxpQkFBSzs7O0lBRDZELGVBQ2xFO0lBRGtFLDJFQUNsRTs7O0lBQ0osOEJBQXNFO0lBQUEsWUFDbEU7O0lBQUEsaUJBQUs7OztJQUQ2RCxlQUNsRTtJQURrRSwyRUFDbEU7OztJQUNKLDhCQUFzRTtJQUFBLFlBQ2xFOztJQUFBLGlCQUFLOzs7SUFENkQsZUFDbEU7SUFEa0UsMkVBQ2xFOzs7SUFDSiw4QkFBc0U7SUFBQSxZQUNsRTs7SUFBQSxpQkFBSzs7O0lBRDZELGVBQ2xFO0lBRGtFLDJFQUNsRTs7O0lBQ0osOEJBQXVFO0lBQUEsWUFBOEI7O0lBQUEsaUJBQUs7OztJQUFuQyxlQUE4QjtJQUE5Qiw4REFBOEI7OztJQUVuRywrQkFBeUYsY0FBQSxnQkFBQTtJQUNuRCxZQUFzQjtJQUFBLGlCQUFRLEVBQUE7SUFDbEUsK0JBQXNCLGdCQUFBO0lBQWMsWUFBNkM7O0lBQUEsaUJBQVEsRUFBQSxFQUFBOzs7SUFEckQsZUFBc0I7SUFBdEIsNENBQXNCO0lBQ3RCLGVBQTZDO0lBQTdDLCtFQUE2Qzs7O0lBS3JGLDhCQUFtRjtJQUFBLFlBQWtCO0lBQUEsaUJBQUs7OztJQUF2QixlQUFrQjtJQUFsQix3Q0FBa0I7Ozs7SUFuQ3ZHLDhCQUErQjtJQUM3QiwwRkFBOEY7SUFDOUYsMEZBQXlGO0lBQ3pGLDhCQUF5QjtJQUFBLFlBQXNCO0lBQUEsaUJBQUs7SUFDcEQsOEJBQXlCO0lBQUEsWUFBd0I7SUFBQSxpQkFBSztJQUV0RCwwRkFBNkY7SUFDN0YsMEZBQStGO0lBRS9GLDhCQUF5QjtJQUFBLGFBQTJCO0lBQUEsaUJBQUs7SUFDekQsK0JBQTBCO0lBQUEsYUFBZ0M7SUFBQSxpQkFBSztJQUMvRCwrQkFBeUIsa0JBQUE7SUFFckIsbVBBQVMsc0NBQTBCLElBQUM7SUFDdEMsaUJBQVMsRUFBQTtJQUVYLDRGQUNLO0lBQ0wsNEZBQ1M7SUFDVCw0RkFDUztJQUNULDRGQUNTO0lBQ1QsNEZBQ1M7SUFDVCw0RkFBMEc7SUFDMUcsK0JBQXlCO0lBQ3ZCLDhGQUlNO0lBQ1IsaUJBQUs7SUFFTCw0RkFBMEc7SUFDNUcsaUJBQUs7Ozs7SUFwQ0QsNENBQTBCO0lBQ0YsZUFBOEI7SUFBOUIsbURBQThCO0lBQzlCLGVBQTZCO0lBQTdCLGtEQUE2QjtJQUM5QixlQUFzQjtJQUF0Qiw0Q0FBc0I7SUFDdEIsZUFBd0I7SUFBeEIsOENBQXdCO0lBRXZCLGVBQTRCO0lBQTVCLG9EQUE0QjtJQUM1QixlQUE0QjtJQUE1QixvREFBNEI7SUFFN0IsZUFBMkI7SUFBM0IsaURBQTJCO0lBQzFCLGVBQWdDO0lBQWhDLHNEQUFnQztJQU1oQyxlQUEwQztJQUExQyxrRUFBMEM7SUFFMUMsZUFBMEM7SUFBMUMsa0VBQTBDO0lBRTFDLGVBQTBDO0lBQTFDLGtFQUEwQztJQUUxQyxlQUEwQztJQUExQyxrRUFBMEM7SUFFMUMsZUFBMEM7SUFBMUMsa0VBQTBDO0lBRTFDLGVBQTBDO0lBQTFDLGtFQUEwQztJQUVSLGVBQTZCO0lBQTdCLHdEQUE2QjtJQU9oRSxlQUFtQztJQUFuQyw4REFBbUM7Ozs7SUF3RXBFLDhEQUM2RTtJQUEzRSw4UEFBa0Isa0NBQTBCLElBQUM7SUFDL0MsaUJBQXFDOzs7SUFGRCx1REFBa0MscUNBQUE7Ozs7QUR4S3RFLE1BQU0sT0FBTywyQkFBMkI7SUE0QnRDLFlBQ29CLGFBQStCLEVBQy9CLGdCQUFrQyxFQUNsQyxlQUFpQztRQUZqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUF6QjVDLDJCQUFzQixHQUFhLEtBQUssQ0FBQztRQUV4Qyx5QkFBb0IsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5RCxzQkFBaUIsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUtyRSxrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUV4QixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2Isc0JBQWlCLEdBQVM7WUFDeEIsWUFBWSxFQUFHLEVBQUU7U0FDbEIsQ0FBQztRQUVGLGNBQVMsR0FBUyxLQUFLLENBQUM7UUFFeEIseUJBQW9CLEdBQVMsS0FBSyxDQUFDO1FBQ25DLGtCQUFhLEdBQVMsSUFBSSxDQUFDO1FBQzNCLHFCQUFnQixHQUFLLEVBQUUsQ0FBQztRQUN4QixTQUFJLEdBQUcsR0FBRyxDQUFDO0lBSzhDLENBQUM7SUFFMUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FDM0M7WUFDRSxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBQztTQUNwQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBR1gsSUFBSSxDQUFDLGFBQWEsR0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUUsQ0FBQyxTQUFTLENBQ2hFLENBQUMsSUFBUyxFQUFHLEVBQUU7WUFDYixJQUFJLENBQUMsV0FBVyxHQUFlLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0MsQ0FBQyxDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUMzQyw0Q0FBNEM7SUFDOUMsQ0FBQztJQUVELE1BQU0sQ0FBRSxDQUFDO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFDRCw4QkFBOEI7UUFDNUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDM0MsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFDO1lBQ3JCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxhQUFhLEdBQUMsS0FBSyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUUsSUFBSSxDQUFDLElBQUksQ0FBRSxDQUFDO1FBQzdFLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLE9BQU8sRUFBZSxDQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFFO1lBQzdGLFVBQVUsRUFBWSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVU7WUFDbkQsaUJBQWlCLEVBQUssSUFBSSxDQUFDLGlCQUFpQjtZQUM1QyxZQUFZLEVBQVUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQzlGLG1CQUFtQixFQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CO1NBQzdELENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLHNDQUFzQyxDQUFFLFVBQVUsRUFBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFFLENBQUMsSUFBSSxDQUMxRyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQ1osSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7WUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUM3QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUM7Z0JBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO2FBQzdDO1lBQ0QsSUFBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUM7Z0JBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUNGLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1YsSUFBSSxDQUFDLGFBQWEsR0FBSSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsNkJBQTZCO1FBQzNCLElBQUssSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRztZQUMzRSxPQUFPLEtBQUssQ0FBQztRQUNiLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFDRCw2QkFBNkIsQ0FBRSxNQUFNO1FBQ25DLElBQUksTUFBTSxDQUFDLEdBQUcsS0FBSyxPQUFPO1lBQ3hCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxNQUFNO1FBQ3RCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFFLENBQUMsQ0FBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBTTtRQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxhQUFhO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxhQUFhLENBQUM7UUFDdEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztJQUNuQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBSztRQUN0QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUMzQyxDQUFDOzt5SEF2SFUsMkJBQTJCOzZHQUEzQiwyQkFBMkI7UUNQeEMsbUNBRTZHO1FBRjVELDhKQUEyQiwrRkFDaEUsb0NBQWdDLElBRGdDLGdJQUNpQixFQUFFLFdBQUcseUJBQXFCLElBRDNDOztRQUcxRSw4QkFBNkIsYUFBQSxhQUFBLGFBQUEsZ0JBQUE7UUFJRiw2S0FBNEMsNkZBQVcsbUNBQStCLElBQTFDO1FBQzdELGlDQUFrQjtRQUFBLHNCQUFNO1FBQUEsaUJBQVM7UUFDakMsaUNBQWtCO1FBQUEsNEJBQVc7UUFBQSxpQkFBUztRQUN0QyxrQ0FBbUI7UUFBQSw2QkFBWTtRQUFBLGlCQUFTO1FBQ3hDLGtDQUFtQjtRQUFBLHdCQUFPO1FBQUEsaUJBQVMsRUFBQSxFQUFBO1FBR3ZDLGtDQUNnRTtRQURaLG9LQUFtQyx1R0FDekUseUNBQXVDLElBRGtDO1FBQXZGLGlCQUNnRTtRQUNoRSxtQ0FDMEM7UUFBeEMseUdBQVMsZ0NBQTZCLElBQUM7UUFBQyxpQkFBUyxFQUFBLEVBQUE7UUFHdkQsK0JBQXNDLGNBQUEsZUFBQSxpQkFBQTtRQUdYLHlCQUFRO1FBQUEsaUJBQVEsRUFBQTtRQUV2QyxtQ0FDNkM7UUFESixrS0FBZ0MsOEZBQzdELG1DQUErQixJQUQ4QjtRQUV2RSxxRkFBcUc7UUFDdkcsaUJBQVMsRUFBQSxFQUFBLEVBQUE7UUFpQmYsd0NBQ2tFO1FBQXpDLDRIQUFlLDRCQUF3QixJQUFDO1FBQy9ELGdHQW1CYztRQUNkLGlHQXNDYztRQUNoQixpQkFBVTtRQXlEVix3Q0FDNEM7UUFEbUMsa0lBQWdCLGtCQUFjLElBQUM7UUFDbEUsaUJBQWMsRUFBQTtRQVc1RCw2SUFFcUM7O1FBL0tPLDJEQUFvRDtRQUZ0RixzRUFBc0M7UUFBQywyQ0FBMkIscUJBQUEscUJBQUEscUJBQUEsWUFBQTtRQU8vQyxlQUE0QztRQUE1Qyw0REFBNEM7UUFPYixlQUFtQztRQUFuQyxtREFBbUM7UUFXOUMsZUFBZ0M7UUFBaEMsZ0RBQWdDO1FBRTNDLGVBQWM7UUFBZCx5Q0FBYztRQWtCekMsZUFBdUI7UUFBdkIseUNBQXVCLG9CQUFBLG9CQUFBO1FBc0huQixlQUFrQjtRQUFsQixvQ0FBa0IsZ0NBQUEsbUJBQUEsbURBQUE7UUFhZ0IsZUFBMEI7UUFBMUIsK0NBQTBCOzt1RkR6SzlELDJCQUEyQjtjQUx2QyxTQUFTOzJCQUNFLHlCQUF5QjswSEFNMUIsYUFBYTtrQkFBckIsS0FBSztZQUNHLGFBQWE7a0JBQXJCLEtBQUs7WUFDRyxVQUFVO2tCQUFsQixLQUFLO1lBRUcsc0JBQXNCO2tCQUE5QixLQUFLO1lBRUksb0JBQW9CO2tCQUE3QixNQUFNO1lBQ0csaUJBQWlCO2tCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFsbWFjZW4gfSBmcm9tICcuLi9hbG1hY2VuL21vZGVscy9BbG1hY2VuJztcbmltcG9ydCB7IFBhZ2luYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BhZ2luYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxtYWNlblNlcnZpY2UgfSBmcm9tICcuLi9hbG1hY2VuL3NlcnZpY2VzL2FsbWFjZW4uc2VydmljZSc7XG5pbXBvcnQgeyBTdG9ja1NlcnZpY2UgfSBmcm9tICcuL3N0b2NrLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtc2VsZWNjaW9uYS1hcnRpY3VsbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY2Npb25hLWFydGljdWxvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWNjaW9uYS1hcnRpY3Vsby5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWNjaW9uYUFydGljdWxvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBjb25maWd1cmFjaW9uIDogYW55O1xuICBASW5wdXQoKSBzaG93QXJ0aWN1bG9zIDogYm9vbGVhbjtcbiAgQElucHV0KCkgbW92aW1pZW50bzogYW55O1xuXG4gIEBJbnB1dCgpIG1hbmVqYVVuaWRhZFNlY3VuZGFyaWEgOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGVtaXRGaWxhU2VsZWNjaW9uYWRhIDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBlbWl0U2hvd0FydGljdWxvcyA6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cblxuICBhbG1hY2VuTGlzdDogQWxtYWNlbltdO1xuICBhcnRpY3Vsb3NMaXN0OiBhbnkgPSBbXTtcbiAgcGFnZTogYW55O1xuICBvcmRlbmFyID0gW107XG4gIGJ1c3F1ZWRhQXJ0aWN1bG9zIDogYW55ID0ge1xuICAgIHRpcG9CdXNxdWVkYSA6ICcnXG4gIH07XG5cbiAgc2hvd01vZGFsOmJvb2xlYW49ZmFsc2U7XG4gIGFydGljdWxvU2VsZWN0ZWQ6YW55O1xuICBzaG93TW9kYWxJbmZvcm1hY2lvbjpib29sZWFuPWZhbHNlO1xuICBzaG93Rmlyc3RUaW1lOmJvb2xlYW49dHJ1ZTtcbiAgY2xhc2lmaWNhZG9yTGlzdDphbnk9W107XG4gIHNpemUgPSA2NDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICAgICAgICAgIHByaXZhdGUgX3N0b2NrU2VydmljZSAgICA6IFN0b2NrU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfcGFnaW5hdGVTZXJ2aWNlIDogUGFnaW5hdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9hbG1hY2VuU2VydmljZSAgOiBBbG1hY2VuU2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5wYWdlID0gdGhpcy5fcGFnaW5hdGVTZXJ2aWNlLmdldFBhZ2UoKTtcbiAgICB0aGlzLm9yZGVuYXIgPSB0aGlzLl9wYWdpbmF0ZVNlcnZpY2UuZ2V0T3JkZW4oXG4gICAgICBbXG4gICAgICAgIHtwYXJhbTogJ25vbWJyZScsIGxhYmVsOiAnZXN0YXR1cyd9XG4gICAgICBdLCAnZXMnKTtcblxuXG4gICAgdGhpcy5zaG93Rmlyc3RUaW1lPXRydWU7XG4gICAgdGhpcy5fYWxtYWNlblNlcnZpY2UuZ2V0QWxsKCB0aGlzLmNvbmZpZ3VyYWNpb24ucGFyYW1zICkuc3Vic2NyaWJlKFxuICAgICAgKGRhdGE6IGFueSApID0+IHtcbiAgICAgICAgdGhpcy5hbG1hY2VuTGlzdCA9IDxBbG1hY2VuW10+IGRhdGEuZGF0YTtcbiAgICAgIH1cbiAgICApO1xuICAgIFxuICAgIHRoaXMuYnVzcXVlZGFBcnRpY3Vsb3MudGlwb0J1c3F1ZWRhID0gJ0NEJztcbiAgICAvL3RlbXB0aGlzLm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zU2hvdygpO1xuICB9XG5cbiAgcGFnaW5hKCBlICl7XG4gICAgdGhpcy5wYWdlLnJvd3MgPSBlLnJvd3M7XG4gICAgdGhpcy5wYWdlLm9mZnNldCA9IGUuZmlyc3Q7XG4gICAgdGhpcy5vYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvcygpO1xuICB9XG4gIG9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zU2hvdygpe1xuICAgIHRoaXMuYnVzcXVlZGFBcnRpY3Vsb3MudGlwb0J1c3F1ZWRhID0gJ0NEJztcbiAgICBpZiAodGhpcy5zaG93Rmlyc3RUaW1lKXtcbiAgICAgIHRoaXMub2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3MoKTtcbiAgICAgIHRoaXMuc2hvd0ZpcnN0VGltZT1mYWxzZTtcbiAgICB9XG4gIH1cblxuICBvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvcyggKSB7XG4gICAgdGhpcy5idXNxdWVkYUFydGljdWxvcy5wYXJhbXMgPSB0aGlzLl9wYWdpbmF0ZVNlcnZpY2UuZ2V0UGFyYW1zKCB0aGlzLnBhZ2UgKTtcbiAgICBjb25zdCBwYXJhbWV0cm9zID0ge1xuICAgICAgYWxtYWNlbiAgICAgICAgICAgICA6ICggdGhpcy5jb25maWd1cmFjaW9uLm5vT2N1cGFBbGFtYWNlbiA/IG51bGwgOiB0aGlzLm1vdmltaWVudG8uYWxtYWNlbiApLFxuICAgICAgdGlwb1ByZWNpbyAgICAgICAgICA6IHRoaXMuY29uZmlndXJhY2lvbi50aXBvUHJlY2lvLFxuICAgICAgYnVzcXVlZGFBcnRpY3Vsb3MgICA6IHRoaXMuYnVzcXVlZGFBcnRpY3Vsb3MsXG4gICAgICB0aXBvQXJ0aWN1bG8gICAgICAgIDogdGhpcy5jb25maWd1cmFjaW9uLnRpcG9BcnRpY3VsbyA/IHRoaXMuY29uZmlndXJhY2lvbi50aXBvQXJ0aWN1bG8gOiBudWxsLFxuICAgICAgbnVtZXJvUHJlY2lvRGVmYXVsdCA6IHRoaXMuY29uZmlndXJhY2lvbi5udW1lcm9QcmVjaW9EZWZhdWx0XG4gICAgfTsgICAgICAgXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLm9idGVuZXJFeGlzdGVuY2lhc0FydGljdWxvc0Rlc2NyaXBjaW9uKCBwYXJhbWV0cm9zICwgdGhpcy5idXNxdWVkYUFydGljdWxvcy5wYXJhbXMgKS50aGVuKFxuICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmFydGljdWxvc0xpc3QgPSBkYXRhLmFydGljdWxvc0Rlc2NyaXBjaW9uO1xuICAgICAgICB0aGlzLnBhZ2UudG90YWwgPSBkYXRhLnRvdGFsOyAgXG4gICAgICAgIGlmIChkYXRhLmNsYXNpZmljYWRvcmVzKXtcbiAgICAgICAgICB0aGlzLmNsYXNpZmljYWRvckxpc3QgPSBkYXRhLmNsYXNpZmljYWRvcmVzO1xuICAgICAgICB9ICAgICAgXG4gICAgICAgIGlmKCF0aGlzLnNob3dNb2RhbCl7XG4gICAgICAgICAgdGhpcy5zaG93TW9kYWwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKS5jYXRjaChlID0+e1xuICAgICAgdGhpcy5hcnRpY3Vsb3NMaXN0ID0gIFtdO1xuICAgIH0pO1xuICB9XG5cbiAgb2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3NWYWwoKXtcbiAgICBpZiAoIHRoaXMuYnVzcXVlZGFBcnRpY3Vsb3MudGlwb0J1c3F1ZWRhICE9ICcnICYmICF0aGlzLmJ1c3F1ZWRhQXJ0aWN1bG9zLmtleSApXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB0aGlzLm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zKCk7IFxuICB9XG4gIG9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zS2V5KCAkZXZlbnQgKSB7XG4gICAgaWYoICRldmVudC5rZXkgPT09ICdFbnRlcicpXG4gICAgICB0aGlzLm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zKCk7XG4gIH1cblxuICBmaWxhU2VsZWNjaW9uYWRhKCAkZXZlbnQgKSB7XG4gICAgdGhpcy5lbWl0RmlsYVNlbGVjY2lvbmFkYS5lbWl0KCRldmVudCk7XG4gIH1cblxuICBlbWl0aXJTaG93QXJ0aWN1bG9zKCkge1xuICAgIHRoaXMuZW1pdFNob3dBcnRpY3Vsb3MuZW1pdCggMCApO1xuICB9XG5cbiAgc2VyaWVzQXJ0aWN1bG8oc2VyaWVzKXtcbiAgICAgIGNvbnNvbGUubG9nKHNlcmllcyk7XG4gIH1cblxuICBvblNob3dJbmZvcm1hY2lvbihldmVudEFydGljdWxvKXtcbiAgICB0aGlzLmFydGljdWxvU2VsZWN0ZWQgPSBldmVudEFydGljdWxvO1xuICAgIHRoaXMuc2hvd01vZGFsSW5mb3JtYWNpb24gPSB0cnVlO1xuICB9XG5cbiAgb25FdmVudEluZm9ybWFjaW9uKGV2ZW50KSB7XG4gICAgdGhpcy5zaG93TW9kYWxJbmZvcm1hY2lvbiA9IGV2ZW50LnN0YXR1cztcdCAgICAgIFxuICB9XG59XG4iLCI8IS0taW5pY2lhIHNlbGVjY2lvbiBkZSBhcnRpY3Vsb3MtLT5cbjwhLS0gICAob25TaG93KT1cIm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zU2hvdygpXCIgLS0+XG48IS0tXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLWNlbnRlclwiID4tLT5cbjxwLWRpYWxvZyBoZWFkZXI9XCJ7eyAnQXJ0aWN1bG9zJyB8IHRyYW5zbGF0ZSB9fVwiIFsodmlzaWJsZSldPVwic2hvd0FydGljdWxvc1wiIFttYXhpbWl6YWJsZV09XCJ0cnVlXCJcbiAgKG9uU2hvdyk9XCJvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvc1Nob3coKVwiIChvbkhpZGUpPVwiYnVzcXVlZGFBcnRpY3Vsb3MgPSB7IHRpcG9CdXNxdWVkYSA6ICcnfTsgZW1pdGlyU2hvd0FydGljdWxvcygpXCJcbiAgW2Jhc2VaSW5kZXhdPVwiMTAwMDBcIiBbYmxvY2tTY3JvbGxdPVwidHJ1ZVwiIFtzdHlsZV09XCJ7J3dpZHRoJzogc2l6ZSsncHgnLCAnbWluLXdpZHRoJzogJzIwMHB4J31cIiBbbWluWV09XCI3MFwiPlxuICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWZsdWlkXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC0xMiBtZDpjb2wtNiBsZzpjb2wtNlwiPlxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTE1cHg7XCI+XG4gICAgICAgICAgPHNlbGVjdCBwSW5wdXRUZXh0IFsobmdNb2RlbCldPVwiYnVzcXVlZGFBcnRpY3Vsb3MudGlwb0J1c3F1ZWRhXCIgKGNoYW5nZSk9XCJvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvc1ZhbCgpXCI+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQ1wiPkNvZGlnbzwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkRcIj5EZXNjcmlwY2lvbjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkNEXCI+Q29pbmNpZGVuY2lhPC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQ0lcIj5JZ3VhbCBhPC9vcHRpb24+XG4gICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBzdHlsZT1cIndpZHRoOiAyMDBweDtcIiBwSW5wdXRUZXh0IFsobmdNb2RlbCldPVwiYnVzcXVlZGFBcnRpY3Vsb3Mua2V5XCJcbiAgICAgICAgICAoa2V5cHJlc3MpPVwib2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3NLZXkoICRldmVudCApXCIgaWQ9XCJrZXlcIj5cbiAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktc2VhcmNoXCIgc3R5bGVDbGFzcz1cInAtYnV0dG9uLXNlY29uZGFyeVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zKCApXCI+PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1kOmNvbC02IGxnOmNvbC02XCI+XG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDBweDtcIj5cbiAgICAgICAgICA8bGFiZWwgZm9yPVwiYWxtYWNlblwiPkFsbWFjZW46PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzZWxlY3QgcElucHV0VGV4dCBzdHlsZT1cIndpZHRoOiAyMDBweDtcIiBbKG5nTW9kZWwpXT1cIm1vdmltaWVudG8uYWxtYWNlblwiIGRpc2FibGVkIGlkPVwiYWxtYWNlblwiXG4gICAgICAgICAgKGNoYW5nZSk9XCJvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvc1ZhbCgpXCI+XG4gICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgYWxtYWNlbiBvZiBhbG1hY2VuTGlzdFwiIHZhbHVlPVwie3sgYWxtYWNlbi5pZCB9fVwiPnt7YWxtYWNlbi5kZXNjcmlwY2lvbn19PC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLVxuICAgICAgPGRpdiBpZD1cInRhYmxlLXdyYXBwZXJcIj5cbiAgICAgIDxkaXYgaWQ9XCJ0YWJsZS1zY3JvbGxcIj4tLT5cbiAgPCEtLSBuZXcgdGFibGVcbiAgICAgICA8cC10YWJsZSAjZHQgW2NvbHVtbnNdPVwiY29sc0REXCIgW3ZhbHVlXT1cImxpc3RERFwiIFtzY3JvbGxhYmxlXT1cInRydWVcIiBcbiAgICAgICBbc3R5bGVdPVwie3dpZHRoOiAnMTAwJSd9IFwiIFtzY3JvbGxIZWlnaHRdPVwibWF4SCArICdweCdcIiBcbiAgICAgICBbcmVzaXphYmxlQ29sdW1uc109XCJ0cnVlXCIgWyhzZWxlY3Rpb24pXT1cInNlbGVjdGVkWE1MXCIgKG9uUm93U2VsZWN0KT1cIm9uUm93U2VsZWN0KCRldmVudClcIiBkYXRhS2V5PVwidXVpZFwiPlxuXG4gICAgICAgXG4gICAgICAtLT5cblxuICA8cC10YWJsZSBbdmFsdWVdPVwiYXJ0aWN1bG9zTGlzdFwiIFtzY3JvbGxhYmxlXT1cInRydWVcIiAjZHQgc2Nyb2xsSGVpZ2h0PVwiNDAwcHhcIiBbcmVzcG9uc2l2ZV09XCJ0cnVlXCJcbiAgICBzZWxlY3Rpb25Nb2RlPVwic2luZ2xlXCIgKG9uUm93U2VsZWN0KT1cImZpbGFTZWxlY2Npb25hZGEoJGV2ZW50KVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDgwcHhcIiB0cmFuc2xhdGU+Q8OzZGlnbyBVYmljYWNpb248L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogNzBweFwiIHRyYW5zbGF0ZT5FeGlzdGVuY2lhPC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDQwcHhcIiB0cmFuc2xhdGU+VW5pZGFkPC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDUwcHhcIiAqbmdJZj1cIm1hbmVqYVVuaWRhZFNlY3VuZGFyaWFcIiB0cmFuc2xhdGU+ZXhpc3RlbmNpYVNlY3VuZGFyaWE8L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogNDBweFwiICpuZ0lmPVwibWFuZWphVW5pZGFkU2VjdW5kYXJpYVwiIHRyYW5zbGF0ZT5VbmlkYWQ8L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogODBweFwiIHRyYW5zbGF0ZT5Dw7NkaWdvPC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDEyMHB4XCIgdHJhbnNsYXRlPkRlc2NyaXBjaW9uPC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDQwcHhcIiB0cmFuc2xhdGU+PC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDgwcHhcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJyBcIiB0cmFuc2xhdGU+UHJlY2lvPC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDgwcHhcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJyBcIiB0cmFuc2xhdGU+UHJlY2lvIDI8L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogODBweFwiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nIFwiIHRyYW5zbGF0ZT5QcmVjaW8gMzwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA4MHB4XCIgKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gIT09ICdjb3N0bycgXCIgdHJhbnNsYXRlPlByZWNpbyA0PC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDgwcHhcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJyBcIiB0cmFuc2xhdGU+UHJlY2lvIDU8L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogNDBweFwiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvID09PSAnY29zdG8nIFwiIHRyYW5zbGF0ZT5Nb3ZpbWllbnRvLmNvc3RvPC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDQwcHhcIiB0cmFuc2xhdGU+RXhpc3RlbmNpYSBwb3IgVW5pZGFkPC90aD5cbiAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNsYXNpZmljYWRvckxpc3RcIiBzdHlsZT1cIndpZHRoOiA4MHB4XCIgdHJhbnNsYXRlPnt7aXRlbS5kZXNjcmlwY2lvbn19PC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yb3dEYXRhIGxldC1yb3dJbmRleD1cInJvd0luZGV4XCI+XG4gICAgICA8dHIgW3BTZWxlY3RhYmxlUm93XT1cInJvd0RhdGFcIj5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDgwcHg7XCIgKm5nSWY9XCIhcm93RGF0YS51YmljYWNpb25Db2RpZ29cIiB0cmFuc2xhdGU+TW92aW1pZW50by5Ob0FzaWduYWRvPC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDgwcHg7XCIgKm5nSWY9XCJyb3dEYXRhLnViaWNhY2lvbkNvZGlnb1wiPnt7cm93RGF0YS51YmljYWNpb25Db2RpZ299fTwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA3MHB4O1wiPnt7cm93RGF0YS5leGlzdGVuY2lhfX08L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogNDBweDtcIj57e3Jvd0RhdGEudW5pZGFkQ29kaWdvfX08L3RkPlxuXG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA1MHB4O1wiICpuZ0lmPVwibWFuZWphVW5pZGFkU2VjdW5kYXJpYVwiPnt7cm93RGF0YS5leGlzdGVuY2lhU2VjdW5kYXJpYX19PC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDQwcHg7XCIgKm5nSWY9XCJtYW5lamFVbmlkYWRTZWN1bmRhcmlhXCI+e3tyb3dEYXRhLnVuaWRhZFNlY3VuZGFyaWFDb2RpZ299fTwvdGQ+XG5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDgwcHg7XCI+e3tyb3dEYXRhLmFydGljdWxvLmNvZGlnb319PC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDEyMHB4O1wiPnt7cm93RGF0YS5hcnRpY3Vsby5kZXNjcmlwY2lvbn19PC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDQwcHg7XCI+XG4gICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktZXllXCIgY2xhc3M9XCJ1aS1idXR0b24tcmFpc2VkIHVpLWJ1dHRvbi1wcmltYXJ5XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNob3dJbmZvcm1hY2lvbihyb3dEYXRhKVwiPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogODBweDtcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJ1wiPnt7cm93RGF0YS5wcmVjaW9Db25JbXB1ZXN0b3MgfCBjdXJyZW5jeSB9fVxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogODBweDtcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJ1wiPnt7cm93RGF0YS5wcmVjaW8yQ29uSW1wdWVzdG9zIHwgY3VycmVuY3lcbiAgICAgICAgICB9fTwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA4MHB4O1wiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nXCI+e3tyb3dEYXRhLnByZWNpbzNDb25JbXB1ZXN0b3MgfCBjdXJyZW5jeVxuICAgICAgICAgIH19PC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDgwcHg7XCIgKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gIT09ICdjb3N0bydcIj57e3Jvd0RhdGEucHJlY2lvNENvbkltcHVlc3RvcyB8IGN1cnJlbmN5XG4gICAgICAgICAgfX08L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogODBweDtcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJ1wiPnt7cm93RGF0YS5wcmVjaW81Q29uSW1wdWVzdG9zIHwgY3VycmVuY3lcbiAgICAgICAgICB9fTwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA0MHB4O1wiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvID09PSAnY29zdG8nIFwiPnt7cm93RGF0YS5wcmVjaW8gfCBjdXJyZW5jeSB9fTwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA0MHB4O1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiByb3dEYXRhLmV4aXN0ZW5jaWFVbmlkYWRlc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy00XCI+PGxhYmVsIGZvcj1cIlwiPnt7aXRlbS51bmlkYWRfY29kaWdvfX08L2xhYmVsPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy00XCI+PGxhYmVsIGZvcj1cIlwiPnt7aXRlbS51bmlkYWRfZXhpc3RlbmNpYSB8IG51bWJlciA6ICcxLjItMid9fTwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPCEtLSA8dGQgc3R5bGU9XCJ3aWR0aDogNDBweDtcIj48L3RkPiAgIC0tPlxuICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGl0ZW1EYXRhIG9mIHJvd0RhdGEuYXJ0aWN1bG9DbGFzaWZpY2Fkb3JMaXN0XCIgc3R5bGU9XCJ3aWR0aDogODBweDtcIj57e2l0ZW1EYXRhLnZhbG9yfX08L3RkPlxuICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3AtdGFibGU+XG5cbiAgPCEtLSAvbmV3IHRhYmxlLS0+XG4gIDwhLS0gXG4gICAgICA8cC10YWJsZSBbKHZhbHVlKV09XCJhcnRpY3Vsb3NMaXN0XCIgcmVzcG9uc2l2ZT1cInRydWVcIiBcbiAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25Nb2RlPVwibXVsdGlwbGVcIiAob25Sb3dTZWxlY3QpPVwiZmlsYVNlbGVjY2lvbmFkYSgkZXZlbnQpXCIgIFtzY3JvbGxhYmxlXT1cInRydWVcIiBzY3JvbGxIZWlnaHQ9XCIzNTBweFwiID5cblxuICAgICAgICA8cC1jb2x1bW4gIGhlYWRlcj1cInt7ICdDb2RpZ28gdWJpY2FjaW9uJy50b1N0cmluZygpIHwgdHJhbnNsYXRlfX1cIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWRhdG89XCJyb3dEYXRhXCIgcFRlbXBsYXRlPVwiYm9keVwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiICpuZ0lmPVwiIWRhdG8udWJpY2FjaW9uQ29kaWdvXCIgIHRyYW5zbGF0ZT4gTW92aW1pZW50by5Ob0FzaWduYWRvIDwvbGFiZWw+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCIgKm5nSWY9XCJkYXRvLnViaWNhY2lvbkNvZGlnb1wiID4ge3sgZGF0by51YmljYWNpb25Db2RpZ28gfX08L2xhYmVsPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvcC1jb2x1bW4+XG4gICAgICAgIDxwLWNvbHVtbiBmaWVsZD1cInViaWNhY2lvbkNvZGlnb1wiIGhlYWRlcj1cInt7ICdEZXNjcmlwY2lvbiB1YmljYWNpb24nLnRvU3RyaW5nKCkgfCB0cmFuc2xhdGV9fVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtZGF0bz1cInJvd0RhdGFcIiBwVGVtcGxhdGU9XCJib2R5XCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCIgKm5nSWY9XCIhZGF0by51YmljYWNpb25Db2RpZ29cIiAgdHJhbnNsYXRlPiBNb3ZpbWllbnRvLk5vQXNpZ25hZG8gPC9sYWJlbD5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIiAqbmdJZj1cImRhdG8udWJpY2FjaW9uQ29kaWdvXCIgPiB7eyBkYXRvLnViaWNhY2lvbkNvZGlnbyB9fTwvbGFiZWw+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLWNvbHVtbj5cblxuICAgICAgICA8cC1jb2x1bW4gZmllbGQ9XCJleGlzdGVuY2lhXCIgaGVhZGVyPVwie3snRXhpc3RlbmNpYScgfCB0cmFuc2xhdGV9fVwiPjwvcC1jb2x1bW4+XG4gICAgICAgIDxwLWNvbHVtbiBmaWVsZD1cInVuaWRhZENvZGlnb1wiIGhlYWRlcj1cInt7J1VuaWRhZCcgfCB0cmFuc2xhdGV9fVwiPjwvcC1jb2x1bW4+XG4gICAgICAgIDxwLWNvbHVtbiBmaWVsZD1cInVuaWRhZERlc2NyaXBjaW9uXCIgaGVhZGVyPVwie3snRGVzY3JpcGNpb24gdW5pZGFkJyB8IHRyYW5zbGF0ZX19XCI+PC9wLWNvbHVtbj5cblxuICAgICAgICA8cC1jb2x1bW4gZmllbGQ9XCJleGlzdGVuY2lhU2VjdW5kYXJpYVwiIGhlYWRlcj1cInt7J2V4aXN0ZW5jaWFTZWN1bmRhcmlhJyB8IHRyYW5zbGF0ZX19XCIgKm5nSWY9XCJtYW5lamFVbmlkYWRTZWN1bmRhcmlhXCI+PC9wLWNvbHVtbj5cbiAgICAgICAgPHAtY29sdW1uIGZpZWxkPVwidW5pZGFkU2VjdW5kYXJpYUNvZGlnb1wiIGhlYWRlcj1cInt7J1VuaWRhZCcgfCB0cmFuc2xhdGV9fVwiICpuZ0lmPVwibWFuZWphVW5pZGFkU2VjdW5kYXJpYVwiPjwvcC1jb2x1bW4+XG4gICAgICAgIFxuXG4gICAgICAgIDxwLWNvbHVtbiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJyBcIiAgaGVhZGVyPVwie3snTW92aW1pZW50by5tb3ZpbWllbnRvRGV0YWxsZS5wcmVjaW8nIHwgdHJhbnNsYXRlfX1cIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWRhdG89XCJyb3dEYXRhXCIgcFRlbXBsYXRlPVwiYm9keVwiPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPnt7IGRhdG8ucHJlY2lvQ29uSW1wdWVzdG9zIHwgY3VycmVuY3kgfX08L2xhYmVsPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvcC1jb2x1bW4+XG4gICAgICAgIDxwLWNvbHVtbiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyA9PT0gJ2Nvc3RvJyBcIiBoZWFkZXI9XCJ7eydNb3ZpbWllbnRvLmNvc3RvJyB8IHRyYW5zbGF0ZSB9fVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtZGF0bz1cInJvd0RhdGFcIiBwVGVtcGxhdGU9XCJib2R5XCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCI+e3sgZGF0by5wcmVjaW8gfCBjdXJyZW5jeSB9fTwvbGFiZWw+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLWNvbHVtbj5cblxuXG4gICAgICAgIDxwLWNvbHVtbiBmaWVsZD1cImFydGljdWxvLmNvZGlnb1wiIGhlYWRlcj1cInt7J0NvZGlnbyBhcnRpY3VsbycgfCB0cmFuc2xhdGV9fVwiPjwvcC1jb2x1bW4+XG4gICAgICAgIDxwLWNvbHVtbiBmaWVsZD1cImFydGljdWxvLmRlc2NyaXBjaW9uXCIgaGVhZGVyPVwie3snRGVzY3JpcGNpb24nIHwgdHJhbnNsYXRlfX1cIj48L3AtY29sdW1uPlxuXG5cblxuICAgICAgICA8cC1jb2x1bW4gIGhlYWRlcj1cInt7J0V4aXN0ZW5jaWFQb3JVbmlkYWQnIHwgdHJhbnNsYXRlIH19XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1kYXRvPVwicm93RGF0YVwiIHBUZW1wbGF0ZT1cImJvZHlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRvLmV4aXN0ZW5jaWFVbmlkYWRlc1wiID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy00XCI+PGxhYmVsIGZvcj1cIlwiPnt7aXRlbS51bmlkYWRfY29kaWdvfX08L2xhYmVsPjwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTRcIj48bGFiZWwgZm9yPVwiXCI+e3tpdGVtLnVuaWRhZF9leGlzdGVuY2lhIHwgbnVtYmVyIDogJzEuMi0yJ319PC9sYWJlbD5cbiAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgIFxuICAgICAgICAgICAgPC9kaXY+ICBcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3AtY29sdW1uPlxuICAgICAgICBcbiAgICAgIDwvcC10YWJsZT5cbiAgICAgIC0tPlxuICA8cC1wYWdpbmF0b3IgW3Jvd3NdPVwicGFnZS5yb3dzXCIgW3RvdGFsUmVjb3Jkc109XCJwYWdlLnRvdGFsXCIgW3BhZ2VMaW5rU2l6ZV09XCI1XCIgKG9uUGFnZUNoYW5nZSk9XCJwYWdpbmEoJGV2ZW50KVwiXG4gICAgW3Jvd3NQZXJQYWdlT3B0aW9uc109XCJbMTAsMjUsNTAsMTAwLDUwMF1cIj48L3AtcGFnaW5hdG9yPlxuICA8IS0tICBcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICAtLT5cbjwvcC1kaWFsb2c+XG48IS0tXG4gIDwvZGl2PiBcbiAgICAgIC0tPlxuPCEtLXRlcm1pbmEgc2VsZWNjaW9uIGRlIGFydGljdWxvcy0tPlxuPCEtLXNlbGVjY2lvbmEgdWJpY2FjaW9uIC0tPlxuPGxpYi1zZWxlY2Npb24tYXJ0aWN1bG8taW5mb3JtYWNpb24gW3Nob3dNb2RhbF09XCJzaG93TW9kYWxJbmZvcm1hY2lvblwiIFthcnRpY3Vsb109XCJhcnRpY3Vsb1NlbGVjdGVkXCJcbiAgKGV2ZW50U2VsZWN0aW9uKT1cIm9uRXZlbnRJbmZvcm1hY2lvbigkZXZlbnQpXCIgKm5nSWY9XCJzaG93TW9kYWxJbmZvcm1hY2lvblwiPlxuPC9saWItc2VsZWNjaW9uLWFydGljdWxvLWluZm9ybWFjaW9uPiJdfQ==
493
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWNjaW9uYS1hcnRpY3Vsby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcnAtY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWNjaW9uYS1hcnRpY3Vsby9zZWxlY2Npb25hLWFydGljdWxvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VycC1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY2Npb25hLWFydGljdWxvL3NlbGVjY2lvbmEtYXJ0aWN1bG8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQzJCckMsa0NBQXFFO0lBQUEsWUFBdUI7SUFBQSxpQkFBUzs7O0lBQXpELGdEQUF3QjtJQUFDLGVBQXVCO0lBQXZCLDRDQUF1Qjs7O0lBeUI5Riw4QkFBaUU7SUFBQSxvQ0FBb0I7SUFBQSxpQkFBSzs7O0lBQzFGLDhCQUFpRTtJQUFBLHNCQUFNO0lBQUEsaUJBQUs7OztJQUk1RSw4QkFBZ0Y7SUFBQSxzQkFBTTtJQUFBLGlCQUFLOzs7SUFDM0YsOEJBQWdGO0lBQUEsd0JBQVE7SUFBQSxpQkFBSzs7O0lBQzdGLDhCQUFnRjtJQUFBLHdCQUFRO0lBQUEsaUJBQUs7OztJQUM3Riw4QkFBZ0Y7SUFBQSx3QkFBUTtJQUFBLGlCQUFLOzs7SUFDN0YsOEJBQWdGO0lBQUEsd0JBQVE7SUFBQSxpQkFBSzs7O0lBQzdGLDhCQUFnRjtJQUFBLGdD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QUF2Qix5Q0FBdUIsb0JBQUEsb0JBQUE7UUFzSG5CLGVBQWtCO1FBQWxCLG9DQUFrQixnQ0FBQSxtQkFBQSxtREFBQTtRQWFnQixlQUEwQjtRQUExQiwrQ0FBMEI7O3VGRHpLOUQsMkJBQTJCO2NBTHZDLFNBQVM7MkJBQ0UseUJBQXlCOzBIQU0xQixhQUFhO2tCQUFyQixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLFVBQVU7a0JBQWxCLEtBQUs7WUFFRyxzQkFBc0I7a0JBQTlCLEtBQUs7WUFFSSxvQkFBb0I7a0JBQTdCLE1BQU07WUFDRyxpQkFBaUI7a0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWxtYWNlbiB9IGZyb20gJy4uL2FsbWFjZW4vbW9kZWxzL0FsbWFjZW4nO1xuaW1wb3J0IHsgUGFnaW5hdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGFnaW5hdGUuc2VydmljZSc7XG5pbXBvcnQgeyBBbG1hY2VuU2VydmljZSB9IGZyb20gJy4uL2FsbWFjZW4vc2VydmljZXMvYWxtYWNlbi5zZXJ2aWNlJztcbmltcG9ydCB7IFN0b2NrU2VydmljZSB9IGZyb20gJy4vc3RvY2suc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1zZWxlY2Npb25hLWFydGljdWxvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjY2lvbmEtYXJ0aWN1bG8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY2Npb25hLWFydGljdWxvLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY2Npb25hQXJ0aWN1bG9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGNvbmZpZ3VyYWNpb24gOiBhbnk7XG4gIEBJbnB1dCgpIHNob3dBcnRpY3Vsb3MgOiBib29sZWFuO1xuICBASW5wdXQoKSBtb3ZpbWllbnRvOiBhbnk7XG5cbiAgQElucHV0KCkgbWFuZWphVW5pZGFkU2VjdW5kYXJpYSA6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgZW1pdEZpbGFTZWxlY2Npb25hZGEgOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGVtaXRTaG93QXJ0aWN1bG9zIDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblxuXG4gIGFsbWFjZW5MaXN0OiBBbG1hY2VuW107XG4gIGFydGljdWxvc0xpc3Q6IGFueSA9IFtdO1xuICBwYWdlOiBhbnk7XG4gIG9yZGVuYXIgPSBbXTtcbiAgYnVzcXVlZGFBcnRpY3Vsb3MgOiBhbnkgPSB7XG4gICAgdGlwb0J1c3F1ZWRhIDogJydcbiAgfTtcblxuICBzaG93TW9kYWw6Ym9vbGVhbj1mYWxzZTtcbiAgYXJ0aWN1bG9TZWxlY3RlZDphbnk7XG4gIHNob3dNb2RhbEluZm9ybWFjaW9uOmJvb2xlYW49ZmFsc2U7XG4gIHNob3dGaXJzdFRpbWU6Ym9vbGVhbj10cnVlO1xuICBjbGFzaWZpY2Fkb3JMaXN0OmFueT1bXTtcbiAgc2l6ZSA9IDY0MDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfc3RvY2tTZXJ2aWNlICAgIDogU3RvY2tTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9wYWdpbmF0ZVNlcnZpY2UgOiBQYWdpbmF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2FsbWFjZW5TZXJ2aWNlICA6IEFsbWFjZW5TZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnBhZ2UgPSB0aGlzLl9wYWdpbmF0ZVNlcnZpY2UuZ2V0UGFnZSgpO1xuICAgIHRoaXMub3JkZW5hciA9IHRoaXMuX3BhZ2luYXRlU2VydmljZS5nZXRPcmRlbihcbiAgICAgIFtcbiAgICAgICAge3BhcmFtOiAnbm9tYnJlJywgbGFiZWw6ICdlc3RhdHVzJ31cbiAgICAgIF0sICdlcycpO1xuXG5cbiAgICB0aGlzLnNob3dGaXJzdFRpbWU9dHJ1ZTtcbiAgICB0aGlzLl9hbG1hY2VuU2VydmljZS5nZXRBbGwoIHRoaXMuY29uZmlndXJhY2lvbi5wYXJhbXMgKS5zdWJzY3JpYmUoXG4gICAgICAoZGF0YTogYW55ICkgPT4ge1xuICAgICAgICB0aGlzLmFsbWFjZW5MaXN0ID0gPEFsbWFjZW5bXT4gZGF0YS5kYXRhO1xuICAgICAgfVxuICAgICk7XG4gICAgXG4gICAgdGhpcy5idXNxdWVkYUFydGljdWxvcy50aXBvQnVzcXVlZGEgPSAnQ0QnO1xuICAgIC8vdGVtcHRoaXMub2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3NTaG93KCk7XG4gIH1cblxuICBwYWdpbmEoIGUgKXtcbiAgICB0aGlzLnBhZ2Uucm93cyA9IGUucm93cztcbiAgICB0aGlzLnBhZ2Uub2Zmc2V0ID0gZS5maXJzdDtcbiAgICB0aGlzLm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zKCk7XG4gIH1cbiAgb2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3NTaG93KCl7XG4gICAgdGhpcy5idXNxdWVkYUFydGljdWxvcy50aXBvQnVzcXVlZGEgPSAnQ0QnO1xuICAgIGlmICh0aGlzLnNob3dGaXJzdFRpbWUpe1xuICAgICAgdGhpcy5vYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvcygpO1xuICAgICAgdGhpcy5zaG93Rmlyc3RUaW1lPWZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zKCApIHtcbiAgICB0aGlzLmJ1c3F1ZWRhQXJ0aWN1bG9zLnBhcmFtcyA9IHRoaXMuX3BhZ2luYXRlU2VydmljZS5nZXRQYXJhbXMoIHRoaXMucGFnZSApO1xuICAgIGNvbnN0IHBhcmFtZXRyb3MgPSB7XG4gICAgICBhbG1hY2VuICAgICAgICAgICAgIDogKCB0aGlzLmNvbmZpZ3VyYWNpb24ubm9PY3VwYUFsYW1hY2VuID8gbnVsbCA6IHRoaXMubW92aW1pZW50by5hbG1hY2VuICksXG4gICAgICB0aXBvUHJlY2lvICAgICAgICAgIDogdGhpcy5jb25maWd1cmFjaW9uLnRpcG9QcmVjaW8sXG4gICAgICBidXNxdWVkYUFydGljdWxvcyAgIDogdGhpcy5idXNxdWVkYUFydGljdWxvcyxcbiAgICAgIHRpcG9BcnRpY3VsbyAgICAgICAgOiB0aGlzLmNvbmZpZ3VyYWNpb24udGlwb0FydGljdWxvID8gdGhpcy5jb25maWd1cmFjaW9uLnRpcG9BcnRpY3VsbyA6IG51bGwsXG4gICAgICBudW1lcm9QcmVjaW9EZWZhdWx0IDogdGhpcy5jb25maWd1cmFjaW9uLm51bWVyb1ByZWNpb0RlZmF1bHRcbiAgICB9OyAgICAgICBcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2Uub2J0ZW5lckV4aXN0ZW5jaWFzQXJ0aWN1bG9zRGVzY3JpcGNpb24oIHBhcmFtZXRyb3MgLCB0aGlzLmJ1c3F1ZWRhQXJ0aWN1bG9zLnBhcmFtcyApLnRoZW4oXG4gICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuYXJ0aWN1bG9zTGlzdCA9IGRhdGEuYXJ0aWN1bG9zRGVzY3JpcGNpb247XG4gICAgICAgIHRoaXMucGFnZS50b3RhbCA9IGRhdGEudG90YWw7ICBcbiAgICAgICAgaWYgKGRhdGEuY2xhc2lmaWNhZG9yZXMpe1xuICAgICAgICAgIHRoaXMuY2xhc2lmaWNhZG9yTGlzdCA9IGRhdGEuY2xhc2lmaWNhZG9yZXM7XG4gICAgICAgIH0gICAgICBcbiAgICAgICAgaWYoIXRoaXMuc2hvd01vZGFsKXtcbiAgICAgICAgICB0aGlzLnNob3dNb2RhbCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApLmNhdGNoKGUgPT57XG4gICAgICB0aGlzLmFydGljdWxvc0xpc3QgPSAgW107XG4gICAgfSk7XG4gIH1cblxuICBvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvc1ZhbCgpe1xuICAgIGlmICggdGhpcy5idXNxdWVkYUFydGljdWxvcy50aXBvQnVzcXVlZGEgIT0gJycgJiYgIXRoaXMuYnVzcXVlZGFBcnRpY3Vsb3Mua2V5IClcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIHRoaXMub2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3MoKTsgXG4gIH1cbiAgb2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3NLZXkoICRldmVudCApIHtcbiAgICBpZiggJGV2ZW50LmtleSA9PT0gJ0VudGVyJylcbiAgICAgIHRoaXMub2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3MoKTtcbiAgfVxuXG4gIGZpbGFTZWxlY2Npb25hZGEoICRldmVudCApIHtcbiAgICB0aGlzLmVtaXRGaWxhU2VsZWNjaW9uYWRhLmVtaXQoJGV2ZW50KTtcbiAgfVxuXG4gIGVtaXRpclNob3dBcnRpY3Vsb3MoKSB7XG4gICAgdGhpcy5lbWl0U2hvd0FydGljdWxvcy5lbWl0KCAwICk7XG4gIH1cblxuICBzZXJpZXNBcnRpY3VsbyhzZXJpZXMpe1xuICAgICAgY29uc29sZS5sb2coc2VyaWVzKTtcbiAgfVxuXG4gIG9uU2hvd0luZm9ybWFjaW9uKGV2ZW50QXJ0aWN1bG8pe1xuICAgIHRoaXMuYXJ0aWN1bG9TZWxlY3RlZCA9IGV2ZW50QXJ0aWN1bG87XG4gICAgdGhpcy5zaG93TW9kYWxJbmZvcm1hY2lvbiA9IHRydWU7XG4gIH1cblxuICBvbkV2ZW50SW5mb3JtYWNpb24oZXZlbnQpIHtcbiAgICB0aGlzLnNob3dNb2RhbEluZm9ybWFjaW9uID0gZXZlbnQuc3RhdHVzO1x0ICAgICAgXG4gIH1cbn1cbiIsIjwhLS1pbmljaWEgc2VsZWNjaW9uIGRlIGFydGljdWxvcy0tPlxuPCEtLSAgIChvblNob3cpPVwib2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3NTaG93KClcIiAtLT5cbjwhLS1cbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtY2VudGVyXCIgPi0tPlxuPHAtZGlhbG9nIGhlYWRlcj1cInt7ICdBcnRpY3Vsb3MnIHwgdHJhbnNsYXRlIH19XCIgWyh2aXNpYmxlKV09XCJzaG93QXJ0aWN1bG9zXCIgW21heGltaXphYmxlXT1cInRydWVcIlxuICAob25TaG93KT1cIm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zU2hvdygpXCIgKG9uSGlkZSk9XCJidXNxdWVkYUFydGljdWxvcyA9IHsgdGlwb0J1c3F1ZWRhIDogJyd9OyBlbWl0aXJTaG93QXJ0aWN1bG9zKClcIlxuICBbYmFzZVpJbmRleF09XCIxMDAwMFwiIFtibG9ja1Njcm9sbF09XCJ0cnVlXCIgW3N0eWxlXT1cInsnd2lkdGgnOiBzaXplKydweCcsICdtaW4td2lkdGgnOiAnMjAwcHgnfVwiIFttaW5ZXT1cIjcwXCI+XG4gIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtZmx1aWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1kOmNvbC02IGxnOmNvbC02XCI+XG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cbiAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMTVweDtcIj5cbiAgICAgICAgICA8c2VsZWN0IHBJbnB1dFRleHQgWyhuZ01vZGVsKV09XCJidXNxdWVkYUFydGljdWxvcy50aXBvQnVzcXVlZGFcIiAoY2hhbmdlKT1cIm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zVmFsKClcIj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJDXCI+Q29kaWdvPC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiRFwiPkRlc2NyaXBjaW9uPC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQ0RcIj5Db2luY2lkZW5jaWE8L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJDSVwiPklndWFsIGE8L29wdGlvbj5cbiAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHN0eWxlPVwid2lkdGg6IDIwMHB4O1wiIHBJbnB1dFRleHQgWyhuZ01vZGVsKV09XCJidXNxdWVkYUFydGljdWxvcy5rZXlcIlxuICAgICAgICAgIChrZXlwcmVzcyk9XCJvYnRlbmVyRXhpc3RlbmNpYUFydGljdWxvc0tleSggJGV2ZW50IClcIiBpZD1cImtleVwiPlxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIGljb249XCJwaSBwaS1zZWFyY2hcIiBzdHlsZUNsYXNzPVwicC1idXR0b24tc2Vjb25kYXJ5XCJcbiAgICAgICAgICAoY2xpY2spPVwib2J0ZW5lckV4aXN0ZW5jaWFBcnRpY3Vsb3MoIClcIj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWQ6Y29sLTYgbGc6Y29sLTZcIj5cbiAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxuICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMHB4O1wiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJhbG1hY2VuXCI+QWxtYWNlbjo8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHNlbGVjdCBwSW5wdXRUZXh0IHN0eWxlPVwid2lkdGg6IDIwMHB4O1wiIFsobmdNb2RlbCldPVwibW92aW1pZW50by5hbG1hY2VuXCIgZGlzYWJsZWQgaWQ9XCJhbG1hY2VuXCJcbiAgICAgICAgICAoY2hhbmdlKT1cIm9idGVuZXJFeGlzdGVuY2lhQXJ0aWN1bG9zVmFsKClcIj5cbiAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBhbG1hY2VuIG9mIGFsbWFjZW5MaXN0XCIgdmFsdWU9XCJ7eyBhbG1hY2VuLmlkIH19XCI+e3thbG1hY2VuLmRlc2NyaXBjaW9ufX08L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tXG4gICAgICA8ZGl2IGlkPVwidGFibGUtd3JhcHBlclwiPlxuICAgICAgPGRpdiBpZD1cInRhYmxlLXNjcm9sbFwiPi0tPlxuICA8IS0tIG5ldyB0YWJsZVxuICAgICAgIDxwLXRhYmxlICNkdCBbY29sdW1uc109XCJjb2xzRERcIiBbdmFsdWVdPVwibGlzdEREXCIgW3Njcm9sbGFibGVdPVwidHJ1ZVwiIFxuICAgICAgIFtzdHlsZV09XCJ7d2lkdGg6ICcxMDAlJ30gXCIgW3Njcm9sbEhlaWdodF09XCJtYXhIICsgJ3B4J1wiIFxuICAgICAgIFtyZXNpemFibGVDb2x1bW5zXT1cInRydWVcIiBbKHNlbGVjdGlvbildPVwic2VsZWN0ZWRYTUxcIiAob25Sb3dTZWxlY3QpPVwib25Sb3dTZWxlY3QoJGV2ZW50KVwiIGRhdGFLZXk9XCJ1dWlkXCI+XG5cbiAgICAgICBcbiAgICAgIC0tPlxuXG4gIDxwLXRhYmxlIFt2YWx1ZV09XCJhcnRpY3Vsb3NMaXN0XCIgW3Njcm9sbGFibGVdPVwidHJ1ZVwiICNkdCBzY3JvbGxIZWlnaHQ9XCI0MDBweFwiIFtyZXNwb25zaXZlXT1cInRydWVcIlxuICAgIHNlbGVjdGlvbk1vZGU9XCJzaW5nbGVcIiAob25Sb3dTZWxlY3QpPVwiZmlsYVNlbGVjY2lvbmFkYSgkZXZlbnQpXCI+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogODBweFwiIHRyYW5zbGF0ZT5Dw7NkaWdvIFViaWNhY2lvbjwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA3MHB4XCIgdHJhbnNsYXRlPkV4aXN0ZW5jaWE8L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogNDBweFwiIHRyYW5zbGF0ZT5VbmlkYWQ8L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogNTBweFwiICpuZ0lmPVwibWFuZWphVW5pZGFkU2VjdW5kYXJpYVwiIHRyYW5zbGF0ZT5leGlzdGVuY2lhU2VjdW5kYXJpYTwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA0MHB4XCIgKm5nSWY9XCJtYW5lamFVbmlkYWRTZWN1bmRhcmlhXCIgdHJhbnNsYXRlPlVuaWRhZDwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA4MHB4XCIgdHJhbnNsYXRlPkPDs2RpZ288L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogMTIwcHhcIiB0cmFuc2xhdGU+RGVzY3JpcGNpb248L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogNDBweFwiIHRyYW5zbGF0ZT48L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogODBweFwiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nIFwiIHRyYW5zbGF0ZT5QcmVjaW88L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogODBweFwiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nIFwiIHRyYW5zbGF0ZT5QcmVjaW8gMjwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA4MHB4XCIgKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gIT09ICdjb3N0bycgXCIgdHJhbnNsYXRlPlByZWNpbyAzPC90aD5cbiAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDgwcHhcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJyBcIiB0cmFuc2xhdGU+UHJlY2lvIDQ8L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogODBweFwiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nIFwiIHRyYW5zbGF0ZT5QcmVjaW8gNTwvdGg+XG4gICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA0MHB4XCIgKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gPT09ICdjb3N0bycgXCIgdHJhbnNsYXRlPk1vdmltaWVudG8uY29zdG88L3RoPlxuICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogNDBweFwiIHRyYW5zbGF0ZT5FeGlzdGVuY2lhIHBvciBVbmlkYWQ8L3RoPlxuICAgICAgICA8dGggKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2xhc2lmaWNhZG9yTGlzdFwiIHN0eWxlPVwid2lkdGg6IDgwcHhcIiB0cmFuc2xhdGU+e3tpdGVtLmRlc2NyaXBjaW9ufX08L3RoPlxuICAgICAgPC90cj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXJvd0RhdGEgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cbiAgICAgIDx0ciBbcFNlbGVjdGFibGVSb3ddPVwicm93RGF0YVwiPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogODBweDtcIiAqbmdJZj1cIiFyb3dEYXRhLnViaWNhY2lvbkNvZGlnb1wiIHRyYW5zbGF0ZT5Nb3ZpbWllbnRvLk5vQXNpZ25hZG88L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogODBweDtcIiAqbmdJZj1cInJvd0RhdGEudWJpY2FjaW9uQ29kaWdvXCI+e3tyb3dEYXRhLnViaWNhY2lvbkNvZGlnb319PC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDcwcHg7XCI+e3tyb3dEYXRhLmV4aXN0ZW5jaWF9fTwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA0MHB4O1wiPnt7cm93RGF0YS51bmlkYWRDb2RpZ299fTwvdGQ+XG5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDUwcHg7XCIgKm5nSWY9XCJtYW5lamFVbmlkYWRTZWN1bmRhcmlhXCI+e3tyb3dEYXRhLmV4aXN0ZW5jaWFTZWN1bmRhcmlhfX08L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogNDBweDtcIiAqbmdJZj1cIm1hbmVqYVVuaWRhZFNlY3VuZGFyaWFcIj57e3Jvd0RhdGEudW5pZGFkU2VjdW5kYXJpYUNvZGlnb319PC90ZD5cblxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogODBweDtcIj57e3Jvd0RhdGEuYXJ0aWN1bG8uY29kaWdvfX08L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogMTIwcHg7XCI+e3tyb3dEYXRhLmFydGljdWxvLmRlc2NyaXBjaW9ufX08L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogNDBweDtcIj5cbiAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIGljb249XCJwaSBwaS1leWVcIiBjbGFzcz1cInVpLWJ1dHRvbi1yYWlzZWQgdWktYnV0dG9uLXByaW1hcnlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2hvd0luZm9ybWFjaW9uKHJvd0RhdGEpXCI+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA4MHB4O1wiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nXCI+e3tyb3dEYXRhLnByZWNpb0NvbkltcHVlc3RvcyB8IGN1cnJlbmN5IH19XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA4MHB4O1wiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nXCI+e3tyb3dEYXRhLnByZWNpbzJDb25JbXB1ZXN0b3MgfCBjdXJyZW5jeVxuICAgICAgICAgIH19PC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDgwcHg7XCIgKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gIT09ICdjb3N0bydcIj57e3Jvd0RhdGEucHJlY2lvM0NvbkltcHVlc3RvcyB8IGN1cnJlbmN5XG4gICAgICAgICAgfX08L3RkPlxuICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDogODBweDtcIiAqbmdJZj1cImNvbmZpZ3VyYWNpb24udGlwb1ByZWNpbyAhPT0gJ2Nvc3RvJ1wiPnt7cm93RGF0YS5wcmVjaW80Q29uSW1wdWVzdG9zIHwgY3VycmVuY3lcbiAgICAgICAgICB9fTwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA4MHB4O1wiICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nXCI+e3tyb3dEYXRhLnByZWNpbzVDb25JbXB1ZXN0b3MgfCBjdXJyZW5jeVxuICAgICAgICAgIH19PC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDQwcHg7XCIgKm5nSWY9XCJjb25maWd1cmFjaW9uLnRpcG9QcmVjaW8gPT09ICdjb3N0bycgXCI+e3tyb3dEYXRhLnByZWNpbyB8IGN1cnJlbmN5IH19PC90ZD5cbiAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDQwcHg7XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJvd0RhdGEuZXhpc3RlbmNpYVVuaWRhZGVzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTRcIj48bGFiZWwgZm9yPVwiXCI+e3tpdGVtLnVuaWRhZF9jb2RpZ299fTwvbGFiZWw+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTRcIj48bGFiZWwgZm9yPVwiXCI+e3tpdGVtLnVuaWRhZF9leGlzdGVuY2lhIHwgbnVtYmVyIDogJzEuMi0yJ319PC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8IS0tIDx0ZCBzdHlsZT1cIndpZHRoOiA0MHB4O1wiPjwvdGQ+ICAgLS0+XG4gICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgaXRlbURhdGEgb2Ygcm93RGF0YS5hcnRpY3Vsb0NsYXNpZmljYWRvckxpc3RcIiBzdHlsZT1cIndpZHRoOiA4MHB4O1wiPnt7aXRlbURhdGEudmFsb3J9fTwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvcC10YWJsZT5cblxuICA8IS0tIC9uZXcgdGFibGUtLT5cbiAgPCEtLSBcbiAgICAgIDxwLXRhYmxlIFsodmFsdWUpXT1cImFydGljdWxvc0xpc3RcIiByZXNwb25zaXZlPVwidHJ1ZVwiIFxuICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbk1vZGU9XCJtdWx0aXBsZVwiIChvblJvd1NlbGVjdCk9XCJmaWxhU2VsZWNjaW9uYWRhKCRldmVudClcIiAgW3Njcm9sbGFibGVdPVwidHJ1ZVwiIHNjcm9sbEhlaWdodD1cIjM1MHB4XCIgPlxuXG4gICAgICAgIDxwLWNvbHVtbiAgaGVhZGVyPVwie3sgJ0NvZGlnbyB1YmljYWNpb24nLnRvU3RyaW5nKCkgfCB0cmFuc2xhdGV9fVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtZGF0bz1cInJvd0RhdGFcIiBwVGVtcGxhdGU9XCJib2R5XCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCIgKm5nSWY9XCIhZGF0by51YmljYWNpb25Db2RpZ29cIiAgdHJhbnNsYXRlPiBNb3ZpbWllbnRvLk5vQXNpZ25hZG8gPC9sYWJlbD5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIiAqbmdJZj1cImRhdG8udWJpY2FjaW9uQ29kaWdvXCIgPiB7eyBkYXRvLnViaWNhY2lvbkNvZGlnbyB9fTwvbGFiZWw+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLWNvbHVtbj5cbiAgICAgICAgPHAtY29sdW1uIGZpZWxkPVwidWJpY2FjaW9uQ29kaWdvXCIgaGVhZGVyPVwie3sgJ0Rlc2NyaXBjaW9uIHViaWNhY2lvbicudG9TdHJpbmcoKSB8IHRyYW5zbGF0ZX19XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1kYXRvPVwicm93RGF0YVwiIHBUZW1wbGF0ZT1cImJvZHlcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIiAqbmdJZj1cIiFkYXRvLnViaWNhY2lvbkNvZGlnb1wiICB0cmFuc2xhdGU+IE1vdmltaWVudG8uTm9Bc2lnbmFkbyA8L2xhYmVsPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiICpuZ0lmPVwiZGF0by51YmljYWNpb25Db2RpZ29cIiA+IHt7IGRhdG8udWJpY2FjaW9uQ29kaWdvIH19PC9sYWJlbD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3AtY29sdW1uPlxuXG4gICAgICAgIDxwLWNvbHVtbiBmaWVsZD1cImV4aXN0ZW5jaWFcIiBoZWFkZXI9XCJ7eydFeGlzdGVuY2lhJyB8IHRyYW5zbGF0ZX19XCI+PC9wLWNvbHVtbj5cbiAgICAgICAgPHAtY29sdW1uIGZpZWxkPVwidW5pZGFkQ29kaWdvXCIgaGVhZGVyPVwie3snVW5pZGFkJyB8IHRyYW5zbGF0ZX19XCI+PC9wLWNvbHVtbj5cbiAgICAgICAgPHAtY29sdW1uIGZpZWxkPVwidW5pZGFkRGVzY3JpcGNpb25cIiBoZWFkZXI9XCJ7eydEZXNjcmlwY2lvbiB1bmlkYWQnIHwgdHJhbnNsYXRlfX1cIj48L3AtY29sdW1uPlxuXG4gICAgICAgIDxwLWNvbHVtbiBmaWVsZD1cImV4aXN0ZW5jaWFTZWN1bmRhcmlhXCIgaGVhZGVyPVwie3snZXhpc3RlbmNpYVNlY3VuZGFyaWEnIHwgdHJhbnNsYXRlfX1cIiAqbmdJZj1cIm1hbmVqYVVuaWRhZFNlY3VuZGFyaWFcIj48L3AtY29sdW1uPlxuICAgICAgICA8cC1jb2x1bW4gZmllbGQ9XCJ1bmlkYWRTZWN1bmRhcmlhQ29kaWdvXCIgaGVhZGVyPVwie3snVW5pZGFkJyB8IHRyYW5zbGF0ZX19XCIgKm5nSWY9XCJtYW5lamFVbmlkYWRTZWN1bmRhcmlhXCI+PC9wLWNvbHVtbj5cbiAgICAgICAgXG5cbiAgICAgICAgPHAtY29sdW1uICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvICE9PSAnY29zdG8nIFwiICBoZWFkZXI9XCJ7eydNb3ZpbWllbnRvLm1vdmltaWVudG9EZXRhbGxlLnByZWNpbycgfCB0cmFuc2xhdGV9fVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtZGF0bz1cInJvd0RhdGFcIiBwVGVtcGxhdGU9XCJib2R5XCI+XG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCI+e3sgZGF0by5wcmVjaW9Db25JbXB1ZXN0b3MgfCBjdXJyZW5jeSB9fTwvbGFiZWw+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9wLWNvbHVtbj5cbiAgICAgICAgPHAtY29sdW1uICpuZ0lmPVwiY29uZmlndXJhY2lvbi50aXBvUHJlY2lvID09PSAnY29zdG8nIFwiIGhlYWRlcj1cInt7J01vdmltaWVudG8uY29zdG8nIHwgdHJhbnNsYXRlIH19XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1kYXRvPVwicm93RGF0YVwiIHBUZW1wbGF0ZT1cImJvZHlcIj5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIj57eyBkYXRvLnByZWNpbyB8IGN1cnJlbmN5IH19PC9sYWJlbD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3AtY29sdW1uPlxuXG5cbiAgICAgICAgPHAtY29sdW1uIGZpZWxkPVwiYXJ0aWN1bG8uY29kaWdvXCIgaGVhZGVyPVwie3snQ29kaWdvIGFydGljdWxvJyB8IHRyYW5zbGF0ZX19XCI+PC9wLWNvbHVtbj5cbiAgICAgICAgPHAtY29sdW1uIGZpZWxkPVwiYXJ0aWN1bG8uZGVzY3JpcGNpb25cIiBoZWFkZXI9XCJ7eydEZXNjcmlwY2lvbicgfCB0cmFuc2xhdGV9fVwiPjwvcC1jb2x1bW4+XG5cblxuXG4gICAgICAgIDxwLWNvbHVtbiAgaGVhZGVyPVwie3snRXhpc3RlbmNpYVBvclVuaWRhZCcgfCB0cmFuc2xhdGUgfX1cIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWRhdG89XCJyb3dEYXRhXCIgcFRlbXBsYXRlPVwiYm9keVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdG8uZXhpc3RlbmNpYVVuaWRhZGVzXCIgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTRcIj48bGFiZWwgZm9yPVwiXCI+e3tpdGVtLnVuaWRhZF9jb2RpZ299fTwvbGFiZWw+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNFwiPjxsYWJlbCBmb3I9XCJcIj57e2l0ZW0udW5pZGFkX2V4aXN0ZW5jaWEgfCBudW1iZXIgOiAnMS4yLTInfX08L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgXG4gICAgICAgICAgICA8L2Rpdj4gIFxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvcC1jb2x1bW4+XG4gICAgICAgIFxuICAgICAgPC9wLXRhYmxlPlxuICAgICAgLS0+XG4gIDxwLXBhZ2luYXRvciBbcm93c109XCJwYWdlLnJvd3NcIiBbdG90YWxSZWNvcmRzXT1cInBhZ2UudG90YWxcIiBbcGFnZUxpbmtTaXplXT1cIjVcIiAob25QYWdlQ2hhbmdlKT1cInBhZ2luYSgkZXZlbnQpXCJcbiAgICBbcm93c1BlclBhZ2VPcHRpb25zXT1cIlsxMCwyNSw1MCwxMDAsNTAwXVwiPjwvcC1wYWdpbmF0b3I+XG4gIDwhLS0gIFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIC0tPlxuPC9wLWRpYWxvZz5cbjwhLS1cbiAgPC9kaXY+IFxuICAgICAgLS0+XG48IS0tdGVybWluYSBzZWxlY2Npb24gZGUgYXJ0aWN1bG9zLS0+XG48IS0tc2VsZWNjaW9uYSB1YmljYWNpb24gLS0+XG48bGliLXNlbGVjY2lvbi1hcnRpY3Vsby1pbmZvcm1hY2lvbiBbc2hvd01vZGFsXT1cInNob3dNb2RhbEluZm9ybWFjaW9uXCIgW2FydGljdWxvXT1cImFydGljdWxvU2VsZWN0ZWRcIlxuICAoZXZlbnRTZWxlY3Rpb24pPVwib25FdmVudEluZm9ybWFjaW9uKCRldmVudClcIiAqbmdJZj1cInNob3dNb2RhbEluZm9ybWFjaW9uXCI+XG48L2xpYi1zZWxlY2Npb24tYXJ0aWN1bG8taW5mb3JtYWNpb24+Il19
@@ -2,12 +2,12 @@ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
2
  import { CuentaContableService } from '../../servicios/cuentacontable.service';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../servicios/cuentacontable.service";
5
- import * as i2 from "@angular/forms";
6
- import * as i3 from "primeng/inputtext";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "primeng/api";
7
7
  import * as i4 from "primeng/treetable";
8
- import * as i5 from "primeng/api";
9
- import * as i6 from "@angular/common";
10
- import * as i7 from "primeng/button";
8
+ import * as i5 from "primeng/button";
9
+ import * as i6 from "primeng/inputtext";
10
+ import * as i7 from "@angular/forms";
11
11
  function CclistaComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
12
12
  i0.ɵɵelementStart(0, "tr")(1, "th", 5);
13
13
  i0.ɵɵtext(2, "Cuenta contable");
@@ -28,13 +28,13 @@ function CclistaComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
28
28
  function CclistaComponent_ng_template_4_button_12_Template(rf, ctx) { if (rf & 1) {
29
29
  const _r8 = i0.ɵɵgetCurrentView();
30
30
  i0.ɵɵelementStart(0, "button", 16);
31
- i0.ɵɵlistener("click", function CclistaComponent_ng_template_4_button_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const rowData_r3 = i0.ɵɵnextContext().rowData; const ctx_r6 = i0.ɵɵnextContext(); return ctx_r6.selectCuentaContable(rowData_r3); });
31
+ i0.ɵɵlistener("click", function CclistaComponent_ng_template_4_button_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r8); const rowData_r3 = i0.ɵɵnextContext().rowData; const ctx_r6 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r6.selectCuentaContable(rowData_r3)); });
32
32
  i0.ɵɵelementEnd();
33
33
  } }
34
34
  function CclistaComponent_ng_template_4_button_13_Template(rf, ctx) { if (rf & 1) {
35
35
  const _r11 = i0.ɵɵgetCurrentView();
36
36
  i0.ɵɵelementStart(0, "button", 16);
37
- i0.ɵɵlistener("click", function CclistaComponent_ng_template_4_button_13_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r11); const rowData_r3 = i0.ɵɵnextContext().rowData; const ctx_r9 = i0.ɵɵnextContext(); return ctx_r9.selectCuentaContable(rowData_r3); });
37
+ i0.ɵɵlistener("click", function CclistaComponent_ng_template_4_button_13_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r11); const rowData_r3 = i0.ɵɵnextContext().rowData; const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.selectCuentaContable(rowData_r3)); });
38
38
  i0.ɵɵelementEnd();
39
39
  } }
40
40
  function CclistaComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {
@@ -248,10 +248,10 @@ export class CclistaComponent {
248
248
  i0.ɵɵadvance(2);
249
249
  i0.ɵɵstyleMap(i0.ɵɵpureFunction0(7, _c0));
250
250
  i0.ɵɵproperty("value", ctx.cuentasContables ? ctx.cuentasContables : ctx.tempAccounts)("scrollable", true)("scrollHeight", ctx.maxH + "px")("resizableColumns", true);
251
- } }, directives: [i2.DefaultValueAccessor, i3.InputText, i2.NgControlStatus, i2.NgModel, i4.TreeTable, i5.PrimeTemplate, i4.TreeTableToggler, i6.NgIf, i7.ButtonDirective], styles: [""] });
251
+ } }, dependencies: [i2.NgIf, i3.PrimeTemplate, i4.TreeTable, i4.TreeTableToggler, i5.ButtonDirective, i6.InputText, i7.DefaultValueAccessor, i7.NgControlStatus, i7.NgModel] });
252
252
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CclistaComponent, [{
253
253
  type: Component,
254
- args: [{ selector: 'lib-cclista', template: "<input type=\"text\" style=\"width: 100%;\" pInputText placeholder=\"Cuenta o descripci\u00F3n\" [(ngModel)]=\"query\" (keyup)=\"filterAccounts($event)\">\n\n<div style=\"padding: 10px;\">\n <p-treeTable [value]=\"cuentasContables?cuentasContables:tempAccounts\" [scrollable]=\"true\" [style]=\"{width: '100%'} \" [scrollHeight]=\"maxH + 'px'\" [resizableColumns]=\"true\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th style=\"width: 150px;\">Cuenta contable</th>\n <th style=\"width: 150px;\">Descripci\u00F3n</th>\n <th style=\"width: 90px;\">Naturaleza</th>\n <th style=\"width: 60px;\">Tipo</th>\n <th style=\"width: 200px;\">Acciones</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" style=\"width: 100%;\">\n <tr>\n <td class=\"ui-resizable-column\" style=\"width: 150px;\">\n <p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\n {{rowData.cuentaContable}}\n </td>\n <td class=\"ui-resizable-column\" style=\"width: 150px;\">\n {{rowData.descripcion}}\n </td>\n <td class=\"ui-resizable-column\" style=\"width: 90px;\">\n {{rowData.naturaleza}}\n </td>\n <td class=\"ui-resizable-column\" style=\"width: 60px;\">\n {{rowData.tipo}}\n </td>\n <td class=\"ui-resizable-column\" style=\"width: 200px;\">\n <div class=\"button-row\">\n <button pButton type=\"button\" icon=\"pi pi-check\" class=\"ui-button-raised ui-button-success\" (click)=\"selectCuentaContable(rowData)\" *ngIf=\"typeAccount==1 && rowData.cuentaRegistro\"></button>\n <button pButton type=\"button\" icon=\"pi pi-check\" class=\"ui-button-raised ui-button-success\" (click)=\"selectCuentaContable(rowData)\" *ngIf=\"typeAccount==2 && !rowData.cuentaRegistro\"></button>\n </div>\n </td>\n </tr>\n </ng-template>\n </p-treeTable>\n</div>", styles: [""] }]
254
+ args: [{ selector: 'lib-cclista', template: "<input type=\"text\" style=\"width: 100%;\" pInputText placeholder=\"Cuenta o descripci\u00F3n\" [(ngModel)]=\"query\" (keyup)=\"filterAccounts($event)\">\n\n<div style=\"padding: 10px;\">\n <p-treeTable [value]=\"cuentasContables?cuentasContables:tempAccounts\" [scrollable]=\"true\" [style]=\"{width: '100%'} \" [scrollHeight]=\"maxH + 'px'\" [resizableColumns]=\"true\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th style=\"width: 150px;\">Cuenta contable</th>\n <th style=\"width: 150px;\">Descripci\u00F3n</th>\n <th style=\"width: 90px;\">Naturaleza</th>\n <th style=\"width: 60px;\">Tipo</th>\n <th style=\"width: 200px;\">Acciones</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" style=\"width: 100%;\">\n <tr>\n <td class=\"ui-resizable-column\" style=\"width: 150px;\">\n <p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\n {{rowData.cuentaContable}}\n </td>\n <td class=\"ui-resizable-column\" style=\"width: 150px;\">\n {{rowData.descripcion}}\n </td>\n <td class=\"ui-resizable-column\" style=\"width: 90px;\">\n {{rowData.naturaleza}}\n </td>\n <td class=\"ui-resizable-column\" style=\"width: 60px;\">\n {{rowData.tipo}}\n </td>\n <td class=\"ui-resizable-column\" style=\"width: 200px;\">\n <div class=\"button-row\">\n <button pButton type=\"button\" icon=\"pi pi-check\" class=\"ui-button-raised ui-button-success\" (click)=\"selectCuentaContable(rowData)\" *ngIf=\"typeAccount==1 && rowData.cuentaRegistro\"></button>\n <button pButton type=\"button\" icon=\"pi pi-check\" class=\"ui-button-raised ui-button-success\" (click)=\"selectCuentaContable(rowData)\" *ngIf=\"typeAccount==2 && !rowData.cuentaRegistro\"></button>\n </div>\n </td>\n </tr>\n </ng-template>\n </p-treeTable>\n</div>" }]
255
255
  }], function () { return [{ type: i1.CuentaContableService }]; }, { isShared: [{
256
256
  type: Input
257
257
  }], typeAccount: [{
@@ -259,4 +259,4 @@ export class CclistaComponent {
259
259
  }], evSelectedAccount: [{
260
260
  type: Output
261
261
  }] }); })();
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2NsaXN0YS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcnAtY29yZS9zcmMvbGliL2NvbnRhYmlsaWRhZC9jb21wb25lbnRlcy9jY2xpc3RhL2NjbGlzdGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXJwLWNvcmUvc3JjL2xpYi9jb250YWJpbGlkYWQvY29tcG9uZW50ZXMvY2NsaXN0YS9jY2xpc3RhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7Ozs7SUNHbkUsMEJBQUksWUFBQTtJQUMwQiwrQkFBZTtJQUFBLGlCQUFLO0lBQzlDLDZCQUEwQjtJQUFBLGdDQUFXO0lBQUEsaUJBQUs7SUFDMUMsNkJBQXlCO0lBQUEsMEJBQVU7SUFBQSxpQkFBSztJQUN4Qyw2QkFBeUI7SUFBQSxvQkFBSTtJQUFBLGlCQUFLO0lBQ2xDLDZCQUEwQjtJQUFBLHlCQUFRO0lBQUEsaUJBQUssRUFBQTs7OztJQW9CL0Isa0NBQXFMO0lBQXpGLDhOQUFTLHVDQUE2QixJQUFDO0lBQWtELGlCQUFTOzs7O0lBQzlMLGtDQUFzTDtJQUExRiwrTkFBUyx1Q0FBNkIsSUFBQztJQUFtRCxpQkFBUzs7O0lBakIzTSwwQkFBSSxZQUFBO0lBRUkseUNBQTZEO0lBQzdELFlBQ0o7SUFBQSxpQkFBSztJQUNMLDZCQUFzRDtJQUNsRCxZQUNKO0lBQUEsaUJBQUs7SUFDTCw4QkFBcUQ7SUFDakQsWUFDSjtJQUFBLGlCQUFLO0lBQ0wsOEJBQXFEO0lBQ2pELFlBQ0o7SUFBQSxpQkFBSztJQUNMLCtCQUFzRCxlQUFBO0lBRTlDLHdGQUE4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Q0FBQyxDQUFDO2lCQUNKO3FCQUFNO29CQUNMLFlBQVksR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7aUJBQzFFO2FBQ0Y7WUFDRCxPQUFPLFlBQVksQ0FBQztTQUNyQjtJQUNILENBQUM7O21HQWpMVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQjtRQ1Q3QixnQ0FBMkk7UUFBckQsd0lBQW1CLHFGQUFVLDBCQUFzQixJQUFoQztRQUF6RyxpQkFBMkk7UUFFM0ksOEJBQTRCLHFCQUFBO1FBRXBCLGtGQVFjO1FBQ2Qsa0ZBc0JjO1FBQ2xCLGlCQUFjLEVBQUE7O1FBcENvRSxtQ0FBbUI7UUFHWCxlQUEwQjtRQUExQix5Q0FBMEI7UUFBdkcsc0ZBQXdELG9CQUFBLGlDQUFBLDBCQUFBOzt1RkRNNUQsZ0JBQWdCO2NBTDVCLFNBQVM7MkJBQ0UsYUFBYTt3RUFPdkIsUUFBUTtrQkFEUCxLQUFLO1lBR04sV0FBVztrQkFEVixLQUFLO1lBR04saUJBQWlCO2tCQURoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3VlbnRhQ29udGFibGVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVsb3MvY3VlbnRhQ29udGFibGUubW9kZWwnO1xuaW1wb3J0IHsgQ3VlbnRhQ29udGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljaW9zL2N1ZW50YWNvbnRhYmxlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY2NsaXN0YScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jY2xpc3RhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2NsaXN0YS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2NsaXN0YUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KClcbiAgaXNTaGFyZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIHR5cGVBY2NvdW50OiBudW1iZXI7XG4gIEBPdXRwdXQoKVxuICBldlNlbGVjdGVkQWNjb3VudDogRXZlbnRFbWl0dGVyPEN1ZW50YUNvbnRhYmxlTW9kZWw+O1xuICBjdWVudGFzQ29udGFibGVzOiBhbnlbXSA9IFtdO1xuICBtYXhIID0gNzIwO1xuICBxdWVyeTogYW55ID0gXCJcIjtcbiAgdGVtcEFjY291bnRzOiBDdWVudGFDb250YWJsZU1vZGVsW10gPSBbXTtcblxuICBjdWVudGFTZWxlY2Npb25hZGE6IEN1ZW50YUNvbnRhYmxlTW9kZWw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY3VlbnRhQ29udGFibGVTZXJ2aWNlOiBDdWVudGFDb250YWJsZVNlcnZpY2UpIHtcbiAgICB0aGlzLmV2U2VsZWN0ZWRBY2NvdW50ID0gbmV3IEV2ZW50RW1pdHRlcjxDdWVudGFDb250YWJsZU1vZGVsPigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5tYXhIID0gd2luZG93LmlubmVySGVpZ2h0IC0gMzIwO1xuICAgIHRoaXMub2J0ZW5lckN1ZW50YXNDb250YWJsZXNSZWN1cnNpdm8oKTtcbiAgfVxuXG4gIG9idGVuZXJDdWVudGFzQ29udGFibGVzUmVjdXJzaXZvKCkge1xuICAgIHRoaXMuX2N1ZW50YUNvbnRhYmxlU2VydmljZS5vYnRpZW5lQ3VlbnRhc0NvbnRhYmxlc1JlY3Vyc2l2bygpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5jdWVudGFzQ29udGFibGVzID0gcmVzdWx0O1xuICAgICAgICB0aGlzLnNvcnRBY2NvdW50cygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc29ydEFjY291bnRzKCkge1xuICAgIHRoaXMuY3VlbnRhc0NvbnRhYmxlcy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICAvLyBnZXQgc3ltYm9sIGZvciBzdHJpbmdcbiAgICAgIGxldCBjaGFyYWN0ZXJCcmVhayA9ICcuJztcbiAgICAgIGNvbnN0IGxpc3RBOiBhbnlbXSA9IGEuZGF0YS5jdWVudGFDb250YWJsZS5zcGxpdChjaGFyYWN0ZXJCcmVhayk7XG4gICAgICBjb25zdCBsaXN0QjogYW55W10gPSBiLmRhdGEuY3VlbnRhQ29udGFibGUuc3BsaXQoY2hhcmFjdGVyQnJlYWspO1xuXG4gICAgICBpZiAobGlzdEEubGVuZ3RoID4gMCAmJiBsaXN0Qi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChsaXN0QS5sZW5ndGggPT09IGxpc3RCLmxlbmd0aCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdEEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPiBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pIDwgcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpc3RBLmxlbmd0aCA8IGxpc3RCLmxlbmd0aCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdEEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPiBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pIDwgcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaXN0Qi5sZW5ndGggPCBsaXN0QS5sZW5ndGgpIHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3RCLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pID4gcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGxpc3RBW2ldKSA8IHBhcnNlSW50KGxpc3RCW2ldKSkge1xuICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMuY3VlbnRhc0NvbnRhYmxlcykge1xuICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgdGhpcy5zb3J0SXRlbShpdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy50ZW1wQWNjb3VudHMgPSB0aGlzLmN1ZW50YXNDb250YWJsZXM7XG4gIH1cblxuICBzb3J0SXRlbShhY2NvdW50OiBhbnkpIHtcbiAgICBhY2NvdW50LmNoaWxkcmVuLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIC8vIGdldCBzeW1ib2wgZm9yIHN0cmluZ1xuICAgICAgbGV0IGNoYXJhY3RlckJyZWFrID0gJy4nO1xuICAgICAgY29uc3QgbGlzdEE6IGFueVtdID0gYS5kYXRhLmN1ZW50YUNvbnRhYmxlLnNwbGl0KGNoYXJhY3RlckJyZWFrKTtcbiAgICAgIGNvbnN0IGxpc3RCOiBhbnlbXSA9IGIuZGF0YS5jdWVudGFDb250YWJsZS5zcGxpdChjaGFyYWN0ZXJCcmVhayk7XG4gICAgICBpZiAobGlzdEEubGVuZ3RoID4gMCAmJiBsaXN0Qi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChsaXN0QS5sZW5ndGggPT09IGxpc3RCLmxlbmd0aCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdEEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPiBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pIDwgcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpc3RBLmxlbmd0aCA8IGxpc3RCLmxlbmd0aCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdEEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPiBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pIDwgcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsaXN0Qi5sZW5ndGggPCBsaXN0QS5sZW5ndGgpIHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3RCLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pID4gcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGxpc3RBW2ldKSA8IHBhcnNlSW50KGxpc3RCW2ldKSkge1xuICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9KTtcbiAgICBmb3IgKGxldCBpdGVtIG9mIGFjY291bnQuY2hpbGRyZW4pIHtcbiAgICAgIHRoaXMuc29ydEl0ZW0oaXRlbSk7XG4gICAgfVxuICB9XG5cblxuXG4gIHNlbGVjdEN1ZW50YUNvbnRhYmxlKGFjY291bnQ6IEN1ZW50YUNvbnRhYmxlTW9kZWwpIHtcbiAgICB0aGlzLmV2U2VsZWN0ZWRBY2NvdW50LmVtaXQoYWNjb3VudCk7XG4gIH1cblxuICBmaWx0ZXJBY2NvdW50cyhldnQ6IGFueSkge1xuICAgIGlmICghZXZ0KSB7XG4gICAgICBjb25zdCB0ZW1wID0gdGhpcy5yZXNldEFjY291bnQoKTtcbiAgICAgIHRoaXMuY3VlbnRhc0NvbnRhYmxlcyA9IHRlbXA7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY3VlbnRhc0NvbnRhYmxlcyA9IHRoaXMuYnJvd3NlQWNjb3VudCh0aGlzLnRlbXBBY2NvdW50cyk7XG4gIH1cblxuICByZXNldEFjY291bnQoKSB7XG4gICAgdGhpcy5xdWVyeSA9ICcnO1xuICAgIGxldCBhY2NvdW50cyA9IFtdO1xuICAgIGZvciAobGV0IGNjIG9mIHRoaXMudGVtcEFjY291bnRzKSB7XG4gICAgICBhY2NvdW50cy5wdXNoKGNjKTtcbiAgICB9XG4gICAgcmV0dXJuIGFjY291bnRzO1xuICB9XG5cblxuXG4gIGJyb3dzZUFjY291bnQoYWNjb3VudHM6IGFueSkge1xuICAgIGxldCBsaXN0QWNjb3VudHM6IGFueVtdID0gW107XG4gICAgaWYgKHRoaXMucXVlcnkgPT09ICcnKSB7XG4gICAgICBjb25zdCB0ZW1wID0gdGhpcy5yZXNldEFjY291bnQoKTtcbiAgICAgIHRoaXMuY3VlbnRhc0NvbnRhYmxlcyA9IHRlbXA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAobGV0IGFjY291bnQgb2YgYWNjb3VudHMpIHtcbiAgICAgICAgaWYgKGFjY291bnQuZGF0YS5jdWVudGFDb250YWJsZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5xdWVyeS50b0xvd2VyQ2FzZSgpKSB8fCBhY2NvdW50LmRhdGEuZGVzY3JpcGNpb24udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMucXVlcnkudG9Mb3dlckNhc2UoKSkpIHtcbiAgICAgICAgICBsaXN0QWNjb3VudHMgPSBsaXN0QWNjb3VudHMuY29uY2F0KHtcbiAgICAgICAgICAgIGRhdGE6IGFjY291bnQuZGF0YSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiB0aGlzLmJyb3dzZUFjY291bnQoYWNjb3VudC5jaGlsZHJlbilcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsaXN0QWNjb3VudHMgPSBsaXN0QWNjb3VudHMuY29uY2F0KHRoaXMuYnJvd3NlQWNjb3VudChhY2NvdW50LmNoaWxkcmVuKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBsaXN0QWNjb3VudHM7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxpbnB1dCB0eXBlPVwidGV4dFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgcElucHV0VGV4dCBwbGFjZWhvbGRlcj1cIkN1ZW50YSBvIGRlc2NyaXBjacOzblwiIFsobmdNb2RlbCldPVwicXVlcnlcIiAoa2V5dXApPVwiZmlsdGVyQWNjb3VudHMoJGV2ZW50KVwiPlxuXG48ZGl2IHN0eWxlPVwicGFkZGluZzogMTBweDtcIj5cbiAgICA8cC10cmVlVGFibGUgW3ZhbHVlXT1cImN1ZW50YXNDb250YWJsZXM/Y3VlbnRhc0NvbnRhYmxlczp0ZW1wQWNjb3VudHNcIiBbc2Nyb2xsYWJsZV09XCJ0cnVlXCIgW3N0eWxlXT1cInt3aWR0aDogJzEwMCUnfSBcIiBbc2Nyb2xsSGVpZ2h0XT1cIm1heEggKyAncHgnXCIgW3Jlc2l6YWJsZUNvbHVtbnNdPVwidHJ1ZVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPkN1ZW50YSBjb250YWJsZTwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPkRlc2NyaXBjacOzbjwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDkwcHg7XCI+TmF0dXJhbGV6YTwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDYwcHg7XCI+VGlwbzwvdGg+XG4gICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDIwMHB4O1wiPkFjY2lvbmVzPC90aD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXJvd05vZGUgbGV0LXJvd0RhdGE9XCJyb3dEYXRhXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ1aS1yZXNpemFibGUtY29sdW1uXCIgc3R5bGU9XCJ3aWR0aDogMTUwcHg7XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwLXRyZWVUYWJsZVRvZ2dsZXIgW3Jvd05vZGVdPVwicm93Tm9kZVwiPjwvcC10cmVlVGFibGVUb2dnbGVyPlxuICAgICAgICAgICAgICAgICAgICB7e3Jvd0RhdGEuY3VlbnRhQ29udGFibGV9fVxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidWktcmVzaXphYmxlLWNvbHVtblwiIHN0eWxlPVwid2lkdGg6IDE1MHB4O1wiPlxuICAgICAgICAgICAgICAgICAgICB7e3Jvd0RhdGEuZGVzY3JpcGNpb259fVxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidWktcmVzaXphYmxlLWNvbHVtblwiIHN0eWxlPVwid2lkdGg6IDkwcHg7XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7cm93RGF0YS5uYXR1cmFsZXphfX1cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInVpLXJlc2l6YWJsZS1jb2x1bW5cIiBzdHlsZT1cIndpZHRoOiA2MHB4O1wiPlxuICAgICAgICAgICAgICAgICAgICB7e3Jvd0RhdGEudGlwb319XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ1aS1yZXNpemFibGUtY29sdW1uXCIgc3R5bGU9XCJ3aWR0aDogMjAwcHg7XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIGljb249XCJwaSBwaS1jaGVja1wiIGNsYXNzPVwidWktYnV0dG9uLXJhaXNlZCB1aS1idXR0b24tc3VjY2Vzc1wiIChjbGljayk9XCJzZWxlY3RDdWVudGFDb250YWJsZShyb3dEYXRhKVwiICpuZ0lmPVwidHlwZUFjY291bnQ9PTEgJiYgcm93RGF0YS5jdWVudGFSZWdpc3Ryb1wiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktY2hlY2tcIiBjbGFzcz1cInVpLWJ1dHRvbi1yYWlzZWQgdWktYnV0dG9uLXN1Y2Nlc3NcIiAoY2xpY2spPVwic2VsZWN0Q3VlbnRhQ29udGFibGUocm93RGF0YSlcIiAqbmdJZj1cInR5cGVBY2NvdW50PT0yICYmICFyb3dEYXRhLmN1ZW50YVJlZ2lzdHJvXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC10cmVlVGFibGU+XG48L2Rpdj4iXX0=
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2NsaXN0YS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcnAtY29yZS9zcmMvbGliL2NvbnRhYmlsaWRhZC9jb21wb25lbnRlcy9jY2xpc3RhL2NjbGlzdGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXJwLWNvcmUvc3JjL2xpYi9jb250YWJpbGlkYWQvY29tcG9uZW50ZXMvY2NsaXN0YS9jY2xpc3RhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7Ozs7SUNHbkUsMEJBQUksWUFBQTtJQUMwQiwrQkFBZTtJQUFBLGlCQUFLO0lBQzlDLDZCQUEwQjtJQUFBLGdDQUFXO0lBQUEsaUJBQUs7SUFDMUMsNkJBQXlCO0lBQUEsMEJBQVU7SUFBQSxpQkFBSztJQUN4Qyw2QkFBeUI7SUFBQSxvQkFBSTtJQUFBLGlCQUFLO0lBQ2xDLDZCQUEwQjtJQUFBLHlCQUFRO0lBQUEsaUJBQUssRUFBQTs7OztJQW9CL0Isa0NBQXFMO0lBQXpGLDhOQUFTLGVBQUEsdUNBQTZCLENBQUEsSUFBQztJQUFrRCxpQkFBUzs7OztJQUM5TCxrQ0FBc0w7SUFBMUYsK05BQVMsZUFBQSx1Q0FBNkIsQ0FBQSxJQUFDO0lBQW1ELGlCQUFTOzs7SUFqQjNNLDBCQUFJLFlBQUE7SUFFSSx5Q0FBNkQ7SUFDN0QsWUFDSjtJQUFBLGlCQUFLO0lBQ0wsNkJBQXNEO0lBQ2xELFlBQ0o7SUFBQSxpQkFBSztJQUNMLDhCQUFxRDtJQUNqRCxZQUNKO0lBQUEsaUJBQUs7SUFDTCw4QkFBcUQ7SUFDakQsWUFDSjtJQUFBLGlCQUFLO0lBQ0wsK0JBQXNELGVBQUE7SUFFOUMsd0ZBQThMO0lBQzlMLHdGQUErTDtJQUNuTSxpQkFBTSxFQUFBLEVBQUE7Ozs7O0lBaEJjLGVBQW1CO0lBQW5CLG9DQUFtQjtJQUN2QyxlQUNKO0lBREksMERBQ0o7SUFFSSxlQUNKO0lBREksdURBQ0o7SUFFSSxlQUNKO0lBREksc0RBQ0o7SUFFSSxlQUNKO0lBREksZ0RBQ0o7SUFHNkksZUFBOEM7SUFBOUMsMkVBQThDO0lBQzlDLGVBQStDO0lBQS9DLDRFQUErQzs7O0FEdEI1TSxNQUFNLE9BQU8sZ0JBQWdCO0lBZTNCLFlBQW9CLHNCQUE2QztRQUE3QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBUGpFLHFCQUFnQixHQUFVLEVBQUUsQ0FBQztRQUM3QixTQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ1gsVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUNoQixpQkFBWSxHQUEwQixFQUFFLENBQUM7UUFLdkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO0lBQ25FLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUNyQyxJQUFJLENBQUMsZ0NBQWdDLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQsZ0NBQWdDO1FBQzlCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ3ZGLElBQUksTUFBTSxFQUFFO2dCQUNWLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNyQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDdkMsd0JBQXdCO1lBQ3hCLElBQUksY0FBYyxHQUFHLEdBQUcsQ0FBQztZQUN6QixNQUFNLEtBQUssR0FBVSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDakUsTUFBTSxLQUFLLEdBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRWpFLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3hDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTSxFQUFFO29CQUNqQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDckMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFOzRCQUMzQyxPQUFPLENBQUMsQ0FBQzt5QkFDVjt3QkFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQzNDLE9BQU8sQ0FBQyxDQUFDLENBQUM7eUJBQ1g7cUJBQ0Y7b0JBQ0QsT0FBTyxDQUFDLENBQUM7aUJBQ1Y7Z0JBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUU7b0JBQy9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO3dCQUNyQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQzNDLE9BQU8sQ0FBQyxDQUFDO3lCQUNWO3dCQUNELElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTs0QkFDM0MsT0FBTyxDQUFDLENBQUMsQ0FBQzt5QkFDWDtxQkFDRjtvQkFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUNYO2dCQUNELElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFO29CQUMvQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDckMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFOzRCQUMzQyxPQUFPLENBQUMsQ0FBQzt5QkFDVjt3QkFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQzNDLE9BQU8sQ0FBQyxDQUFDLENBQUM7eUJBQ1g7cUJBQ0Y7b0JBQ0QsT0FBTyxDQUFDLENBQUM7aUJBQ1Y7YUFDRjtZQUNELE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7UUFDSCxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN0QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDckI7U0FDRjtRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQzVDLENBQUM7SUFFRCxRQUFRLENBQUMsT0FBWTtRQUNuQixPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ2xDLHdCQUF3QjtZQUN4QixJQUFJLGNBQWMsR0FBRyxHQUFHLENBQUM7WUFDekIsTUFBTSxLQUFLLEdBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sS0FBSyxHQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNqRSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUN4QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLE1BQU0sRUFBRTtvQkFDakMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7d0JBQ3JDLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTs0QkFDM0MsT0FBTyxDQUFDLENBQUM7eUJBQ1Y7d0JBQ0QsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFOzRCQUMzQyxPQUFPLENBQUMsQ0FBQyxDQUFDO3lCQUNYO3FCQUNGO29CQUNELE9BQU8sQ0FBQyxDQUFDO2lCQUNWO2dCQUNELElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFO29CQUMvQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDckMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFOzRCQUMzQyxPQUFPLENBQUMsQ0FBQzt5QkFDVjt3QkFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQzNDLE9BQU8sQ0FBQyxDQUFDLENBQUM7eUJBQ1g7cUJBQ0Y7b0JBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztpQkFDWDtnQkFDRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRTtvQkFDL0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7d0JBQ3JDLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTs0QkFDM0MsT0FBTyxDQUFDLENBQUM7eUJBQ1Y7d0JBQ0QsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFOzRCQUMzQyxPQUFPLENBQUMsQ0FBQyxDQUFDO3lCQUNYO3FCQUNGO29CQUNELE9BQU8sQ0FBQyxDQUFDO2lCQUNWO2FBQ0Y7WUFDRCxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBSUQsb0JBQW9CLENBQUMsT0FBNEI7UUFDL0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsY0FBYyxDQUFDLEdBQVE7UUFDckIsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1lBQzdCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsQixLQUFLLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDaEMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNuQjtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFJRCxhQUFhLENBQUMsUUFBYTtRQUN6QixJQUFJLFlBQVksR0FBVSxFQUFFLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtZQUNyQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztTQUM5QjthQUFNO1lBQ0wsS0FBSyxJQUFJLE9BQU8sSUFBSSxRQUFRLEVBQUU7Z0JBQzVCLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFO29CQUNuTCxZQUFZLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQzt3QkFDakMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO3dCQUNsQixRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO3FCQUMvQyxDQUFDLENBQUM7aUJBQ0o7cUJBQU07b0JBQ0wsWUFBWSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztpQkFDMUU7YUFDRjtZQUNELE9BQU8sWUFBWSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQzs7bUdBakxVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCO1FDVDdCLGdDQUEySTtRQUFyRCx3SUFBbUIscUZBQVUsMEJBQXNCLElBQWhDO1FBQXpHLGlCQUEySTtRQUUzSSw4QkFBNEIscUJBQUE7UUFFcEIsa0ZBUWM7UUFDZCxrRkFzQmM7UUFDbEIsaUJBQWMsRUFBQTs7UUFwQ29FLG1DQUFtQjtRQUdYLGVBQTBCO1FBQTFCLHlDQUEwQjtRQUF2RyxzRkFBd0Qsb0JBQUEsaUNBQUEsMEJBQUE7O3VGRE01RCxnQkFBZ0I7Y0FMNUIsU0FBUzsyQkFDRSxhQUFhO3dFQU92QixRQUFRO2tCQURQLEtBQUs7WUFHTixXQUFXO2tCQURWLEtBQUs7WUFHTixpQkFBaUI7a0JBRGhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDdWVudGFDb250YWJsZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxvcy9jdWVudGFDb250YWJsZS5tb2RlbCc7XG5pbXBvcnQgeyBDdWVudGFDb250YWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNpb3MvY3VlbnRhY29udGFibGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jY2xpc3RhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NjbGlzdGEuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jY2xpc3RhLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDY2xpc3RhQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBpc1NoYXJlZDogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgdHlwZUFjY291bnQ6IG51bWJlcjtcbiAgQE91dHB1dCgpXG4gIGV2U2VsZWN0ZWRBY2NvdW50OiBFdmVudEVtaXR0ZXI8Q3VlbnRhQ29udGFibGVNb2RlbD47XG4gIGN1ZW50YXNDb250YWJsZXM6IGFueVtdID0gW107XG4gIG1heEggPSA3MjA7XG4gIHF1ZXJ5OiBhbnkgPSBcIlwiO1xuICB0ZW1wQWNjb3VudHM6IEN1ZW50YUNvbnRhYmxlTW9kZWxbXSA9IFtdO1xuXG4gIGN1ZW50YVNlbGVjY2lvbmFkYTogQ3VlbnRhQ29udGFibGVNb2RlbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jdWVudGFDb250YWJsZVNlcnZpY2U6IEN1ZW50YUNvbnRhYmxlU2VydmljZSkge1xuICAgIHRoaXMuZXZTZWxlY3RlZEFjY291bnQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1ZW50YUNvbnRhYmxlTW9kZWw+KCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm1heEggPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSAzMjA7XG4gICAgdGhpcy5vYnRlbmVyQ3VlbnRhc0NvbnRhYmxlc1JlY3Vyc2l2bygpO1xuICB9XG5cbiAgb2J0ZW5lckN1ZW50YXNDb250YWJsZXNSZWN1cnNpdm8oKSB7XG4gICAgdGhpcy5fY3VlbnRhQ29udGFibGVTZXJ2aWNlLm9idGllbmVDdWVudGFzQ29udGFibGVzUmVjdXJzaXZvKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICB0aGlzLmN1ZW50YXNDb250YWJsZXMgPSByZXN1bHQ7XG4gICAgICAgIHRoaXMuc29ydEFjY291bnRzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzb3J0QWNjb3VudHMoKSB7XG4gICAgdGhpcy5jdWVudGFzQ29udGFibGVzLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIC8vIGdldCBzeW1ib2wgZm9yIHN0cmluZ1xuICAgICAgbGV0IGNoYXJhY3RlckJyZWFrID0gJy4nO1xuICAgICAgY29uc3QgbGlzdEE6IGFueVtdID0gYS5kYXRhLmN1ZW50YUNvbnRhYmxlLnNwbGl0KGNoYXJhY3RlckJyZWFrKTtcbiAgICAgIGNvbnN0IGxpc3RCOiBhbnlbXSA9IGIuZGF0YS5jdWVudGFDb250YWJsZS5zcGxpdChjaGFyYWN0ZXJCcmVhayk7XG5cbiAgICAgIGlmIChsaXN0QS5sZW5ndGggPiAwICYmIGxpc3RCLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKGxpc3RBLmxlbmd0aCA9PT0gbGlzdEIubGVuZ3RoKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0QS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGxpc3RBW2ldKSA+IHBhcnNlSW50KGxpc3RCW2ldKSkge1xuICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPCBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGlzdEEubGVuZ3RoIDwgbGlzdEIubGVuZ3RoKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0QS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGxpc3RBW2ldKSA+IHBhcnNlSW50KGxpc3RCW2ldKSkge1xuICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPCBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpc3RCLmxlbmd0aCA8IGxpc3RBLmxlbmd0aCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdEIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPiBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pIDwgcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAwO1xuICAgIH0pO1xuICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5jdWVudGFzQ29udGFibGVzKSB7XG4gICAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgICB0aGlzLnNvcnRJdGVtKGl0ZW0pO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnRlbXBBY2NvdW50cyA9IHRoaXMuY3VlbnRhc0NvbnRhYmxlcztcbiAgfVxuXG4gIHNvcnRJdGVtKGFjY291bnQ6IGFueSkge1xuICAgIGFjY291bnQuY2hpbGRyZW4uc29ydChmdW5jdGlvbiAoYSwgYikge1xuICAgICAgLy8gZ2V0IHN5bWJvbCBmb3Igc3RyaW5nXG4gICAgICBsZXQgY2hhcmFjdGVyQnJlYWsgPSAnLic7XG4gICAgICBjb25zdCBsaXN0QTogYW55W10gPSBhLmRhdGEuY3VlbnRhQ29udGFibGUuc3BsaXQoY2hhcmFjdGVyQnJlYWspO1xuICAgICAgY29uc3QgbGlzdEI6IGFueVtdID0gYi5kYXRhLmN1ZW50YUNvbnRhYmxlLnNwbGl0KGNoYXJhY3RlckJyZWFrKTtcbiAgICAgIGlmIChsaXN0QS5sZW5ndGggPiAwICYmIGxpc3RCLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKGxpc3RBLmxlbmd0aCA9PT0gbGlzdEIubGVuZ3RoKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0QS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGxpc3RBW2ldKSA+IHBhcnNlSW50KGxpc3RCW2ldKSkge1xuICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPCBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobGlzdEEubGVuZ3RoIDwgbGlzdEIubGVuZ3RoKSB7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0QS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHBhcnNlSW50KGxpc3RBW2ldKSA+IHBhcnNlSW50KGxpc3RCW2ldKSkge1xuICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPCBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpc3RCLmxlbmd0aCA8IGxpc3RBLmxlbmd0aCkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdEIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChwYXJzZUludChsaXN0QVtpXSkgPiBwYXJzZUludChsaXN0QltpXSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocGFyc2VJbnQobGlzdEFbaV0pIDwgcGFyc2VJbnQobGlzdEJbaV0pKSB7XG4gICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAwO1xuICAgIH0pO1xuICAgIGZvciAobGV0IGl0ZW0gb2YgYWNjb3VudC5jaGlsZHJlbikge1xuICAgICAgdGhpcy5zb3J0SXRlbShpdGVtKTtcbiAgICB9XG4gIH1cblxuXG5cbiAgc2VsZWN0Q3VlbnRhQ29udGFibGUoYWNjb3VudDogQ3VlbnRhQ29udGFibGVNb2RlbCkge1xuICAgIHRoaXMuZXZTZWxlY3RlZEFjY291bnQuZW1pdChhY2NvdW50KTtcbiAgfVxuXG4gIGZpbHRlckFjY291bnRzKGV2dDogYW55KSB7XG4gICAgaWYgKCFldnQpIHtcbiAgICAgIGNvbnN0IHRlbXAgPSB0aGlzLnJlc2V0QWNjb3VudCgpO1xuICAgICAgdGhpcy5jdWVudGFzQ29udGFibGVzID0gdGVtcDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jdWVudGFzQ29udGFibGVzID0gdGhpcy5icm93c2VBY2NvdW50KHRoaXMudGVtcEFjY291bnRzKTtcbiAgfVxuXG4gIHJlc2V0QWNjb3VudCgpIHtcbiAgICB0aGlzLnF1ZXJ5ID0gJyc7XG4gICAgbGV0IGFjY291bnRzID0gW107XG4gICAgZm9yIChsZXQgY2Mgb2YgdGhpcy50ZW1wQWNjb3VudHMpIHtcbiAgICAgIGFjY291bnRzLnB1c2goY2MpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjb3VudHM7XG4gIH1cblxuXG5cbiAgYnJvd3NlQWNjb3VudChhY2NvdW50czogYW55KSB7XG4gICAgbGV0IGxpc3RBY2NvdW50czogYW55W10gPSBbXTtcbiAgICBpZiAodGhpcy5xdWVyeSA9PT0gJycpIHtcbiAgICAgIGNvbnN0IHRlbXAgPSB0aGlzLnJlc2V0QWNjb3VudCgpO1xuICAgICAgdGhpcy5jdWVudGFzQ29udGFibGVzID0gdGVtcDtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChsZXQgYWNjb3VudCBvZiBhY2NvdW50cykge1xuICAgICAgICBpZiAoYWNjb3VudC5kYXRhLmN1ZW50YUNvbnRhYmxlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnF1ZXJ5LnRvTG93ZXJDYXNlKCkpIHx8IGFjY291bnQuZGF0YS5kZXNjcmlwY2lvbi50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5xdWVyeS50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICAgIGxpc3RBY2NvdW50cyA9IGxpc3RBY2NvdW50cy5jb25jYXQoe1xuICAgICAgICAgICAgZGF0YTogYWNjb3VudC5kYXRhLFxuICAgICAgICAgICAgY2hpbGRyZW46IHRoaXMuYnJvd3NlQWNjb3VudChhY2NvdW50LmNoaWxkcmVuKVxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxpc3RBY2NvdW50cyA9IGxpc3RBY2NvdW50cy5jb25jYXQodGhpcy5icm93c2VBY2NvdW50KGFjY291bnQuY2hpbGRyZW4pKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGxpc3RBY2NvdW50cztcbiAgICB9XG4gIH1cblxufVxuIiwiPGlucHV0IHR5cGU9XCJ0ZXh0XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIiBwSW5wdXRUZXh0IHBsYWNlaG9sZGVyPVwiQ3VlbnRhIG8gZGVzY3JpcGNpw7NuXCIgWyhuZ01vZGVsKV09XCJxdWVyeVwiIChrZXl1cCk9XCJmaWx0ZXJBY2NvdW50cygkZXZlbnQpXCI+XG5cbjxkaXYgc3R5bGU9XCJwYWRkaW5nOiAxMHB4O1wiPlxuICAgIDxwLXRyZWVUYWJsZSBbdmFsdWVdPVwiY3VlbnRhc0NvbnRhYmxlcz9jdWVudGFzQ29udGFibGVzOnRlbXBBY2NvdW50c1wiIFtzY3JvbGxhYmxlXT1cInRydWVcIiBbc3R5bGVdPVwie3dpZHRoOiAnMTAwJSd9IFwiIFtzY3JvbGxIZWlnaHRdPVwibWF4SCArICdweCdcIiBbcmVzaXphYmxlQ29sdW1uc109XCJ0cnVlXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogMTUwcHg7XCI+Q3VlbnRhIGNvbnRhYmxlPC90aD5cbiAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogMTUwcHg7XCI+RGVzY3JpcGNpw7NuPC90aD5cbiAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogOTBweDtcIj5OYXR1cmFsZXphPC90aD5cbiAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogNjBweDtcIj5UaXBvPC90aD5cbiAgICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ3aWR0aDogMjAwcHg7XCI+QWNjaW9uZXM8L3RoPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtcm93Tm9kZSBsZXQtcm93RGF0YT1cInJvd0RhdGFcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInVpLXJlc2l6YWJsZS1jb2x1bW5cIiBzdHlsZT1cIndpZHRoOiAxNTBweDtcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAtdHJlZVRhYmxlVG9nZ2xlciBbcm93Tm9kZV09XCJyb3dOb2RlXCI+PC9wLXRyZWVUYWJsZVRvZ2dsZXI+XG4gICAgICAgICAgICAgICAgICAgIHt7cm93RGF0YS5jdWVudGFDb250YWJsZX19XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ1aS1yZXNpemFibGUtY29sdW1uXCIgc3R5bGU9XCJ3aWR0aDogMTUwcHg7XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7cm93RGF0YS5kZXNjcmlwY2lvbn19XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ1aS1yZXNpemFibGUtY29sdW1uXCIgc3R5bGU9XCJ3aWR0aDogOTBweDtcIj5cbiAgICAgICAgICAgICAgICAgICAge3tyb3dEYXRhLm5hdHVyYWxlemF9fVxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidWktcmVzaXphYmxlLWNvbHVtblwiIHN0eWxlPVwid2lkdGg6IDYwcHg7XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7cm93RGF0YS50aXBvfX1cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInVpLXJlc2l6YWJsZS1jb2x1bW5cIiBzdHlsZT1cIndpZHRoOiAyMDBweDtcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWNvbj1cInBpIHBpLWNoZWNrXCIgY2xhc3M9XCJ1aS1idXR0b24tcmFpc2VkIHVpLWJ1dHRvbi1zdWNjZXNzXCIgKGNsaWNrKT1cInNlbGVjdEN1ZW50YUNvbnRhYmxlKHJvd0RhdGEpXCIgKm5nSWY9XCJ0eXBlQWNjb3VudD09MSAmJiByb3dEYXRhLmN1ZW50YVJlZ2lzdHJvXCI+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gdHlwZT1cImJ1dHRvblwiIGljb249XCJwaSBwaS1jaGVja1wiIGNsYXNzPVwidWktYnV0dG9uLXJhaXNlZCB1aS1idXR0b24tc3VjY2Vzc1wiIChjbGljayk9XCJzZWxlY3RDdWVudGFDb250YWJsZShyb3dEYXRhKVwiICpuZ0lmPVwidHlwZUFjY291bnQ9PTIgJiYgIXJvd0RhdGEuY3VlbnRhUmVnaXN0cm9cIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLXRyZWVUYWJsZT5cbjwvZGl2PiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { Component, ViewChild, Input, Output, EventEmitter } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "primeng/dialog";
4
- import * as i2 from "@angular/common";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "primeng/dialog";
5
5
  import * as i3 from "../cclista/cclista.component";
6
6
  const _c0 = ["dialog"];
7
7
  const _c1 = function (a0) { return { "width": a0, "min-width": "200px" }; };
@@ -46,10 +46,10 @@ export class CcseleccionDialogComponent {
46
46
  i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(15, _c2, ctx.maxH + 200 + "px"));
47
47
  i0.ɵɵadvance(1);
48
48
  i0.ɵɵproperty("isShared", true)("typeAccount", ctx.tipoCuenta);
49
- } }, directives: [i1.Dialog, i2.NgStyle, i3.CclistaComponent], styles: [""] });
49
+ } }, dependencies: [i1.NgStyle, i2.Dialog, i3.CclistaComponent] });
50
50
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CcseleccionDialogComponent, [{
51
51
  type: Component,
52
- args: [{ selector: 'lib-ccseleccion-dialog', template: "<p-dialog header=\"Selecciona cuenta contable\" [(visible)]=\"displayShowCuentas\" [modal]=\"true\" [style]=\"{'width': size+'px', 'min-width': '200px'}\" [minY]=\"70\" [baseZIndex]=\"10000\" (onHide)=\"hiddenDialog($event)\" [blockScroll]=\"true\" [draggable]=\"false\" [blockScroll]=\"true\"\n [maximizable]=\"true\">\n <div class=\"padding10\" [ngStyle]=\"{'height': maxH+200+'px'}\">\n <lib-cclista [isShared]=\"true\" [typeAccount]=\"tipoCuenta\" (evSelectedAccount)=\"getAccount($event)\"></lib-cclista>\n </div>\n</p-dialog>", styles: [""] }]
52
+ args: [{ selector: 'lib-ccseleccion-dialog', template: "<p-dialog header=\"Selecciona cuenta contable\" [(visible)]=\"displayShowCuentas\" [modal]=\"true\" [style]=\"{'width': size+'px', 'min-width': '200px'}\" [minY]=\"70\" [baseZIndex]=\"10000\" (onHide)=\"hiddenDialog($event)\" [blockScroll]=\"true\" [draggable]=\"false\" [blockScroll]=\"true\"\n [maximizable]=\"true\">\n <div class=\"padding10\" [ngStyle]=\"{'height': maxH+200+'px'}\">\n <lib-cclista [isShared]=\"true\" [typeAccount]=\"tipoCuenta\" (evSelectedAccount)=\"getAccount($event)\"></lib-cclista>\n </div>\n</p-dialog>" }]
53
53
  }], function () { return []; }, { dialog: [{
54
54
  type: ViewChild,
55
55
  args: ["dialog", { static: true }]