oxpi-nglib 1.0.48 → 1.0.50

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 (25) hide show
  1. package/esm2020/lib/cadastros/clientes/clientes/clientes.component.mjs +2 -2
  2. package/esm2020/lib/cadastros/fornecedores/fornecedores/fornecedores.component.mjs +2 -2
  3. package/esm2020/lib/cadastros/funcionarios/funcionario-form/funcionario-form.component.mjs +3 -3
  4. package/esm2020/lib/cadastros/funcionarios/funcionarios/funcionarios.component.mjs +2 -2
  5. package/esm2020/lib/cadastros/produtos/produto-composicao/produto-composicao.component.mjs +1 -1
  6. package/esm2020/lib/cadastros/produtos/produto-selecao-dialog/produto-selecao-dialog.component.mjs +1 -1
  7. package/esm2020/lib/cadastros/produtos/produtos/produtos.component.mjs +2 -2
  8. package/esm2020/lib/cadastros/produtos-categoria-cardapio/produto-categoria-cardapio-selecao-dialog/produto-categoria-cardapio-selecao-dialog.component.mjs +1 -1
  9. package/esm2020/lib/cadastros/produtos-categoria-cardapio/produtos-categorias-cardapio/produtos-categorias-cardapio.component.mjs +2 -2
  10. package/esm2020/lib/cadastros/produtos-grupos/produto-grupo-selecao-dialog/produto-grupo-selecao-dialog.component.mjs +1 -1
  11. package/esm2020/lib/cadastros/produtos-grupos/produtos-grupos/produtos-grupos.component.mjs +2 -2
  12. package/esm2020/lib/cadastros/produtos-ncm-dialog/produtos-ncm-dialog.component.mjs +1 -1
  13. package/esm2020/lib/cadastros/produtos-subgrupos/produto-subgrupo-selecao-dialog/produto-subgrupo-selecao-dialog.component.mjs +1 -1
  14. package/esm2020/lib/cadastros/produtos-subgrupos/produtos-subgrupos/produtos-subgrupos.component.mjs +2 -2
  15. package/esm2020/lib/controls/item-card/item-card.component.mjs +5 -3
  16. package/esm2020/lib/models/entidades/ownership.mjs +5 -1
  17. package/esm2020/lib/providers/auth-data.service.mjs +7 -1
  18. package/fesm2015/oxpi-nglib.mjs +39 -28
  19. package/fesm2015/oxpi-nglib.mjs.map +1 -1
  20. package/fesm2020/oxpi-nglib.mjs +39 -28
  21. package/fesm2020/oxpi-nglib.mjs.map +1 -1
  22. package/lib/controls/item-card/item-card.component.d.ts +3 -1
  23. package/lib/models/entidades/ownership.d.ts +2 -0
  24. package/lib/providers/auth-data.service.d.ts +4 -0
  25. package/package.json +1 -1
@@ -236,9 +236,9 @@ export class ProdutosComponent {
236
236
  }
237
237
  }
238
238
  ProdutosComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ProdutosComponent, deps: [{ token: i1.CommonWebService }, { token: i2.NotificationService }, { token: i3.MatDialog }, { token: i4.AuthDataService }, { token: i5.ActivatedRoute }, { token: i6.ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component });
239
- ProdutosComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: ProdutosComponent, selector: "ox-produtos", ngImport: i0, template: "<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"tool-panel\" *ngIf=\"mobile\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n <button mat-icon-button (click)=\"filtros()\">\n <mat-icon aria-label=\"Filtros\">manage_search</mat-icon>\n </button>\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo Grupo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir Grupo\">delete</mat-icon>\n </button>\n </div>\n </div>\n</div>\n<div class=\"result-container\" *ngIf=\"items\">\n <div class=\"cards-container cards-container-shadow\" *ngIf=\"mobile\">\n <ox-item-card [desativado]=\"!i.isAtivo\" [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" (click)=\"abreCadastro(i)\"></ox-item-card>\n </div> \n <div class=\"hbox\" *ngIf=\"mobile\">\n <ox-paginator (change)=\"trocaPagina()\" [(paginaAtual)]=\"paginaAtual\" [(totalPaginas)]=\"result.totalPaginas\">\n </ox-paginator>\n </div>\n <div class=\"listagem-desktop-grid\" *ngIf=\"!mobile\">\n <div class=\"listagem-column-container listagem-list-column\">\n <h3>Produtos</h3>\n <div class=\"tool-panel tool-panel-float\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n <button mat-icon-button (click)=\"filtros()\">\n <mat-icon aria-label=\"Filtros\">manage_search</mat-icon>\n </button>\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"listagem-list-container\">\n <h4 *ngIf=\"items.length === 0\" class=\"nenhum-item-msg\">A busca n\u00E3o retornou resultados</h4>\n\n <ox-item-card [desativado]=\"!i.isAtivo\" [cloud]=\"i.enviadoPC\" [codigo]=\"i.id\" [nome]=\"i.nome\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"\n (click)=\"selectedItem = i;\"></ox-item-card>\n\n </div>\n <div class=\"hbox\">\n <ox-paginator (change)=\"trocaPagina()\" [(paginaAtual)]=\"paginaAtual\" [(totalPaginas)]=\"result.totalPaginas\">\n </ox-paginator>\n <div class=\"total-qtd\">Exibindo {{result.inicioQtd}}-{{result.finalQtd}} de {{result.quantidade}}</div>\n \n </div>\n </div>\n <div class=\"listagem-column-container listagem-column-form\">\n <h3 *ngIf=\"!selectedItem\">Selecione um produto no lado direito</h3>\n <h3 *ngIf=\"selectedItem\">{{selectedItem.nome | uppercase}}</h3>\n <div class=\"listagem-form-container\">\n <ox-produto-form [@fade] [model]=\"selectedItem\" *ngIf=\"selectedItem\" [editMode]=\"true\">\n </ox-produto-form>\n </div>\n\n <div class=\"listagem-form-acoes\">\n <button (click)=\"salvar()\" mat-raised-button color=\"primary\" *ngIf=\"selectedItem\" tabindex=\"20\">Salvar</button>\n <button (click)=\"composicao()\" mat-raised-button *ngIf=\"selectedItem && usaEstoqueOnline\" tabindex=\"20\">Composi\u00E7\u00E3o</button>\n </div>\n </div>\n </div>\n</div>", styles: [":host{height:calc(100% - 48px);display:flex;flex-grow:1;flex-direction:column;background:#F0F0F0}:host{background-color:#fdfdfd}.total-qtd{align-self:center;font-size:small}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: i12.PaginatorComponent, selector: "ox-paginator", inputs: ["pageSize", "paginaAtual", "totalPaginas"], outputs: ["paginaAtualChange", "totalPaginasChange", "change"] }, { kind: "component", type: i13.ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado"] }, { kind: "component", type: i14.ProdutoFormComponent, selector: "ox-produto-form", inputs: ["editMode", "model"], outputs: ["nextIdClick"] }, { kind: "pipe", type: i7.UpperCasePipe, name: "uppercase" }], animations: [fadeAnimation] });
239
+ ProdutosComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: ProdutosComponent, selector: "ox-produtos", ngImport: i0, template: "<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"tool-panel\" *ngIf=\"mobile\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n <button mat-icon-button (click)=\"filtros()\">\n <mat-icon aria-label=\"Filtros\">manage_search</mat-icon>\n </button>\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo Grupo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir Grupo\">delete</mat-icon>\n </button>\n </div>\n </div>\n</div>\n<div class=\"result-container\" *ngIf=\"items\">\n <div class=\"cards-container cards-container-shadow\" *ngIf=\"mobile\">\n <ox-item-card [desativado]=\"!i.isAtivo\" [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" (click)=\"abreCadastro(i)\"></ox-item-card>\n </div> \n <div class=\"hbox\" *ngIf=\"mobile\">\n <ox-paginator (change)=\"trocaPagina()\" [(paginaAtual)]=\"paginaAtual\" [(totalPaginas)]=\"result.totalPaginas\">\n </ox-paginator>\n </div>\n <div class=\"listagem-desktop-grid\" *ngIf=\"!mobile\">\n <div class=\"listagem-column-container listagem-list-column\">\n <h3>Produtos</h3>\n <div class=\"tool-panel tool-panel-float\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n <button mat-icon-button (click)=\"filtros()\">\n <mat-icon aria-label=\"Filtros\">manage_search</mat-icon>\n </button>\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"listagem-list-container\">\n <h4 *ngIf=\"items.length === 0\" class=\"nenhum-item-msg\">A busca n\u00E3o retornou resultados</h4>\n\n <ox-item-card [desativado]=\"!i.isAtivo\" [cloud]=\"i.enviadoPC\" [codigo]=\"i.id\" [nome]=\"i.nome\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"\n (click)=\"selectedItem = i;\"></ox-item-card>\n\n </div>\n <div class=\"hbox\">\n <ox-paginator (change)=\"trocaPagina()\" [(paginaAtual)]=\"paginaAtual\" [(totalPaginas)]=\"result.totalPaginas\">\n </ox-paginator>\n <div class=\"total-qtd\">Exibindo {{result.inicioQtd}}-{{result.finalQtd}} de {{result.quantidade}}</div>\n \n </div>\n </div>\n <div class=\"listagem-column-container listagem-column-form\">\n <h3 *ngIf=\"!selectedItem\">Selecione um produto no lado direito</h3>\n <h3 *ngIf=\"selectedItem\">{{selectedItem.nome | uppercase}}</h3>\n <div class=\"listagem-form-container\">\n <ox-produto-form [@fade] [model]=\"selectedItem\" *ngIf=\"selectedItem\" [editMode]=\"true\">\n </ox-produto-form>\n </div>\n\n <div class=\"listagem-form-acoes\">\n <button (click)=\"salvar()\" mat-raised-button color=\"primary\" *ngIf=\"selectedItem\" tabindex=\"20\">Salvar</button>\n <button (click)=\"composicao()\" mat-raised-button *ngIf=\"selectedItem && usaEstoqueOnline\" tabindex=\"20\">Composi\u00E7\u00E3o</button>\n </div>\n </div>\n </div>\n</div>", styles: [":host{height:calc(100% - 48px);display:flex;flex-grow:1;flex-direction:column;background:#F0F0F0}:host{background-color:#fdfdfd}.total-qtd{align-self:center;font-size:small}\n"], dependencies: [{ kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: i12.PaginatorComponent, selector: "ox-paginator", inputs: ["pageSize", "paginaAtual", "totalPaginas"], outputs: ["paginaAtualChange", "totalPaginasChange", "change"] }, { kind: "component", type: i13.ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado", "ownership"] }, { kind: "component", type: i14.ProdutoFormComponent, selector: "ox-produto-form", inputs: ["editMode", "model"], outputs: ["nextIdClick"] }, { kind: "pipe", type: i7.UpperCasePipe, name: "uppercase" }], animations: [fadeAnimation] });
240
240
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ProdutosComponent, decorators: [{
241
241
  type: Component,
242
242
  args: [{ selector: 'ox-produtos', animations: [fadeAnimation], template: "<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"tool-panel\" *ngIf=\"mobile\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n <button mat-icon-button (click)=\"filtros()\">\n <mat-icon aria-label=\"Filtros\">manage_search</mat-icon>\n </button>\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo Grupo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir Grupo\">delete</mat-icon>\n </button>\n </div>\n </div>\n</div>\n<div class=\"result-container\" *ngIf=\"items\">\n <div class=\"cards-container cards-container-shadow\" *ngIf=\"mobile\">\n <ox-item-card [desativado]=\"!i.isAtivo\" [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" (click)=\"abreCadastro(i)\"></ox-item-card>\n </div> \n <div class=\"hbox\" *ngIf=\"mobile\">\n <ox-paginator (change)=\"trocaPagina()\" [(paginaAtual)]=\"paginaAtual\" [(totalPaginas)]=\"result.totalPaginas\">\n </ox-paginator>\n </div>\n <div class=\"listagem-desktop-grid\" *ngIf=\"!mobile\">\n <div class=\"listagem-column-container listagem-list-column\">\n <h3>Produtos</h3>\n <div class=\"tool-panel tool-panel-float\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n <button mat-icon-button (click)=\"filtros()\">\n <mat-icon aria-label=\"Filtros\">manage_search</mat-icon>\n </button>\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"listagem-list-container\">\n <h4 *ngIf=\"items.length === 0\" class=\"nenhum-item-msg\">A busca n\u00E3o retornou resultados</h4>\n\n <ox-item-card [desativado]=\"!i.isAtivo\" [cloud]=\"i.enviadoPC\" [codigo]=\"i.id\" [nome]=\"i.nome\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"\n (click)=\"selectedItem = i;\"></ox-item-card>\n\n </div>\n <div class=\"hbox\">\n <ox-paginator (change)=\"trocaPagina()\" [(paginaAtual)]=\"paginaAtual\" [(totalPaginas)]=\"result.totalPaginas\">\n </ox-paginator>\n <div class=\"total-qtd\">Exibindo {{result.inicioQtd}}-{{result.finalQtd}} de {{result.quantidade}}</div>\n \n </div>\n </div>\n <div class=\"listagem-column-container listagem-column-form\">\n <h3 *ngIf=\"!selectedItem\">Selecione um produto no lado direito</h3>\n <h3 *ngIf=\"selectedItem\">{{selectedItem.nome | uppercase}}</h3>\n <div class=\"listagem-form-container\">\n <ox-produto-form [@fade] [model]=\"selectedItem\" *ngIf=\"selectedItem\" [editMode]=\"true\">\n </ox-produto-form>\n </div>\n\n <div class=\"listagem-form-acoes\">\n <button (click)=\"salvar()\" mat-raised-button color=\"primary\" *ngIf=\"selectedItem\" tabindex=\"20\">Salvar</button>\n <button (click)=\"composicao()\" mat-raised-button *ngIf=\"selectedItem && usaEstoqueOnline\" tabindex=\"20\">Composi\u00E7\u00E3o</button>\n </div>\n </div>\n </div>\n</div>", styles: [":host{height:calc(100% - 48px);display:flex;flex-grow:1;flex-direction:column;background:#F0F0F0}:host{background-color:#fdfdfd}.total-qtd{align-self:center;font-size:small}\n"] }]
243
243
  }], ctorParameters: function () { return [{ type: i1.CommonWebService }, { type: i2.NotificationService }, { type: i3.MatDialog }, { type: i4.AuthDataService }, { type: i5.ActivatedRoute }, { type: i6.ScreenHelperService }]; } });
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0b3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9wcm9kdXRvcy9wcm9kdXRvcy9wcm9kdXRvcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zL3Byb2R1dG9zL3Byb2R1dG9zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBVyxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFHdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR2hFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQy9GLE9BQU8sRUFBcUIsa0NBQWtDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUMvSSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVFsRyxNQUFNLE9BQU8saUJBQWlCO0lBOEI1QixZQUFvQixFQUFvQixFQUM5QixZQUFpQyxFQUNsQyxNQUFpQixFQUN4QixJQUFxQixFQUNiLEtBQXFCLEVBQ3JCLFlBQWlDO1FBTHZCLE9BQUUsR0FBRixFQUFFLENBQWtCO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBRWhCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQWpDM0MsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixVQUFLLEdBQWMsRUFBRSxDQUFDO1FBQ3RCLFdBQU0sR0FDSjtZQUNFLFFBQVEsRUFBRSxDQUFDO1lBQ1gsU0FBUyxFQUFFLENBQUM7WUFDWixLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxDQUFDO1lBQ1QsVUFBVSxFQUFFLENBQUM7WUFDYixLQUFLLEVBQUUsQ0FBQztZQUNSLFlBQVksRUFBRSxDQUFDO1NBQ2hCLENBQUM7UUFDSSxrQkFBYSxHQUFtQixJQUFJLENBQUM7UUFPN0MsZ0JBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUkxRCxZQUFPLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQzdCLFVBQUssR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixxQkFBZ0IsR0FBVyxFQUFFLENBQUM7UUFRNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUM7UUFDdkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUN6QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBMUJELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxZQUFZLENBQUMsQ0FBaUI7UUFDaEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQXVCRCxRQUFRO1FBQ04sTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0RSxJQUFJLFlBQVksSUFBSSxJQUFJLElBQUksWUFBWSxLQUFLLE1BQU0sRUFBRTtZQUNuRCxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztTQUM1QztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELFlBQVk7UUFFVixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN6QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ1IsaURBQWlEO1NBQ2xEO2FBQ0k7WUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELFFBQVEsQ0FBQyxNQUFlO1FBQ3RCLElBQUksTUFBTSxJQUFJLFNBQVM7WUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7O1lBRXJCLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQzthQUNqRixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN0QixDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDUCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFJRCxPQUFPO1FBQ0wsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSTtZQUFFLE9BQU87UUFDbEIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFDMUIsK0NBQStDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFDM0QsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztpQkFDM0IsU0FBUyxDQUFDO2dCQUNULElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtvQkFDUixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO29CQUNqRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUN0QixDQUFDO2dCQUNELEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtvQkFDWCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztvQkFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QyxDQUFDO2FBQ0YsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDaEQsSUFBSSxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztZQUMxQyw4Q0FBOEM7U0FDL0M7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtZQUN6RCxLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxNQUFNO1lBQ2QsUUFBUSxFQUFFLE1BQU07WUFDaEIsVUFBVSxFQUFFLFdBQVc7U0FDeEIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0QyxJQUFJLE1BQU0sS0FBSyxTQUFTO2dCQUFFLE9BQU87WUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQWE7UUFDeEIsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLElBQUksS0FBSyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDMUMsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7U0FDN0M7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRTtZQUMxRCxJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxLQUFLO1lBQ1osTUFBTSxFQUFFLE1BQU07WUFDZCxRQUFRLEVBQUUsTUFBTTtZQUNoQixVQUFVLEVBQUUsV0FBVztTQUN4QixDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RDLElBQUksTUFBTSxLQUFLLElBQUk7Z0JBQUUsT0FBTztZQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTztRQUMvQixNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUQsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2QyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQ25DLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtnQkFDUixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUN0QixDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNYLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxPQUFPO1FBQ0wsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLElBQUksS0FBSyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDMUMsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7U0FDN0M7UUFDRCxNQUFNLENBQUMsR0FDUDtZQUNFLEdBQUcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQzFCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0NBQWtDLEVBQUU7WUFDbEUsSUFBSSxFQUFFLENBQUM7WUFDUCxLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxNQUFNO1lBQ2QsUUFBUSxFQUFFLE1BQU07WUFDaEIsVUFBVSxFQUFFLFdBQVc7U0FDeEIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBQ3BCLE1BQU0sQ0FBQyxHQUFzQixNQUFNLENBQUM7WUFDcEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDOUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2hELElBQUksS0FBSyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDMUMsOENBQThDO1NBQy9DO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUU7WUFDMUQsS0FBSyxFQUFFLEtBQUs7WUFDWixNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUN2QixRQUFRLEVBQUUsTUFBTTtZQUNoQixVQUFVLEVBQUUsV0FBVztTQUN4QixDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RDLElBQUksTUFBTSxLQUFLLFNBQVM7Z0JBQUUsT0FBTztZQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzhHQS9OVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixtREN6QjlCLHMwSUEwRk0saW1FRG5FUSxDQUFDLGFBQWEsQ0FBQzsyRkFFaEIsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGFBQWEsY0FHWCxDQUFDLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmFkZUFuaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uL2FuaW1hdGlvbnMvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBQcm9kdXRvLCB2YWxpZGFQcm9kdXRvIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2VudGlkYWRlcy9wcm9kdXRvJztcbmltcG9ydCB7IExhenlUcmlnZ2VyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luZnJhL2xhenktdHJpZ2dlcic7XG5pbXBvcnQgeyBQYWdpbmdSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvaW5mcmEvcGFnaW5nLXJlc3VsdCc7XG5pbXBvcnQgeyBjb25maXJtYUV4Y2x1c2FvIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luZnJhL3NlbGVjYW8tdXRpbHMnO1xuaW1wb3J0IHsgUHJvZHV0b1NlYXJjaFNldHRpbmcgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc2V0dGluZ3MvcHJvZHV0by1zZWFyY2gtc2V0dGluZyc7XG5pbXBvcnQgeyBBdXRoRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvYXV0aC1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbW9uV2ViU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9jb21tb24td2ViLXNlcnZpY2UnO1xuaW1wb3J0IHsgRm9jdXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2ZvY3VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTY3JlZW5IZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL3NjcmVlbi1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdXRvQWRkRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZHV0by1hZGQtZGlhbG9nL3Byb2R1dG8tYWRkLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgZmlsdHJvc0RpYWxvZ0RhdGEsIFByb2R1dG9CdXNjYUZpbHRyb3NEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9wcm9kdXRvLWJ1c2NhLWZpbHRyb3MtZGlhbG9nL3Byb2R1dG8tYnVzY2EtZmlsdHJvcy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1dG9Db21wb3NpY2FvQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZHV0by1jb21wb3NpY2FvL3Byb2R1dG8tY29tcG9zaWNhby5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHV0b0VkaXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9wcm9kdXRvLWVkaXQtZGlhbG9nL3Byb2R1dG8tZWRpdC1kaWFsb2cuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb3gtcHJvZHV0b3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHV0b3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9kdXRvcy5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbZmFkZUFuaW1hdGlvbl1cbn0pXG5leHBvcnQgY2xhc3MgUHJvZHV0b3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBtb2JpbGU6IGJvb2xlYW47XG4gIGlzQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuICBpdGVtczogUHJvZHV0b1tdID0gW107XG4gIHJlc3VsdDogUGFnaW5nUmVzdWx0PFByb2R1dG8+ID1cbiAgICB7XG4gICAgICBmaW5hbFF0ZDogMCxcbiAgICAgIGluaWNpb1F0ZDogMCxcbiAgICAgIGl0ZW1zOiBbXSxcbiAgICAgIHBhZ2luYTogMCxcbiAgICAgIHF1YW50aWRhZGU6IDAsXG4gICAgICB2YWxvcjogMCxcbiAgICAgIHRvdGFsUGFnaW5hczogMFxuICAgIH07XG4gIHByaXZhdGUgX3NlbGVjdGVkSXRlbTogUHJvZHV0byB8IG51bGwgPSBudWxsO1xuICBnZXQgc2VsZWN0ZWRJdGVtKCk6IFByb2R1dG8gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJdGVtO1xuICB9XG4gIHNldCBzZWxlY3RlZEl0ZW0ocDogUHJvZHV0byB8IG51bGwpIHtcbiAgICB0aGlzLl9zZWxlY3RlZEl0ZW0gPSBwO1xuICB9XG4gIGxhenlUcmlnZ2VyID0gbmV3IExhenlUcmlnZ2VyKCgpID0+IHsgdGhpcy5hdHVhbGl6YSgpOyB9KTtcbiAgYWxsb3dBZGQ6IGJvb2xlYW47XG4gIGFsbG93RXhjbHVpcjogYm9vbGVhbjtcbiAgdXNhRXN0b3F1ZU9ubGluZTogYm9vbGVhbjtcbiAgc2V0dGluZyA9IG5ldyBQcm9kdXRvU2VhcmNoU2V0dGluZygpO1xuICBwcml2YXRlIGZvY3VzOiBGb2N1c1NlcnZpY2UgPSBuZXcgRm9jdXNTZXJ2aWNlKCk7XG4gIHBhZ2luYUF0dWFsOiBudW1iZXIgPSAxO1xuICBxdWFudGlkYWRlUGFnaW5hOiBudW1iZXIgPSA1MDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHdzOiBDb21tb25XZWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBhdXRoOiBBdXRoRGF0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBzY3JlZW5IZWxwZXI6IFNjcmVlbkhlbHBlclNlcnZpY2UpIHtcbiAgICB0aGlzLmFsbG93QWRkID0gYXV0aC5wZXJtaXNzb2VzLmFkbWluUHJvZHV0b0FkZDtcbiAgICB0aGlzLmFsbG93RXhjbHVpciA9IGF1dGgucGVybWlzc29lcy5hZG1pblByb2R1dG9EZWxldGU7XG4gICAgdGhpcy5tb2JpbGUgPSB0aGlzLnNjcmVlbkhlbHBlci5pc01lZGl1bTtcbiAgICB0aGlzLnVzYUVzdG9xdWVPbmxpbmUgPSBhdXRoLnVzYUVzdG9xdWVPbmxpbmU7XG4gICAgdGhpcy5zY3JlZW5IZWxwZXIuY2hhbmdlZE1lZGl1bVNjcmVlbi5zdWJzY3JpYmUoeCA9PiB0aGlzLm1vYmlsZSA9IHgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgZXhpYmVFc3RvcXVlID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2V4aWJlRXN0b3F1ZScpO1xuICAgIGlmIChleGliZUVzdG9xdWUgIT0gbnVsbCAmJiBleGliZUVzdG9xdWUgPT09IFwidHJ1ZVwiKSB7XG4gICAgICB0aGlzLnNldHRpbmcuZXhpYmVDb250cm9sYWRvRXN0b3F1ZSA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuc2V0dGluZy5vcmRlbSA9IFwibm9tZVwiO1xuICAgIHRoaXMuYXR1YWxpemEoKTtcbiAgfVxuXG4gIG9uU2VsZWN0SXRlbSgpOiB2b2lkIHtcblxuICAgIGlmICghdGhpcy5mb2N1cy5oYXNJbml0KCkpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmZvY3VzLnJlZ2lzdGVyRWxlbWVudEJ5SWQoXCJmb3JtLWNvbHVtblwiKTtcbiAgICAgICAgdGhpcy5mb2N1cy5zZXRGaXJzdCgpO1xuICAgICAgfSwgNTAwKTtcbiAgICAgIC8vdGhpcy5fZm9jdXMucmVnaXN0ZXJFbGVtZW50QnlJZChcImZvcm0tY29sdW1uXCIpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuZm9jdXMuc2V0Rmlyc3QoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzLnVucmVnaXN0ZXJFbGVtZW50QnlJZChcImZvcm0tY29sdW1uXCIpO1xuICB9XG4gIHRyb2NhUGFnaW5hKCkge1xuICAgIHRoaXMuYXR1YWxpemEodGhpcy5wYWdpbmFBdHVhbCk7XG4gIH1cbiAgYXR1YWxpemEocGFnaW5hPzogbnVtYmVyKSB7XG4gICAgaWYgKHBhZ2luYSA9PSB1bmRlZmluZWQpXG4gICAgICB0aGlzLnBhZ2luYUF0dWFsID0gMTtcbiAgICBlbHNlXG4gICAgICB0aGlzLnBhZ2luYUF0dWFsID0gcGFnaW5hO1xuICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICB0aGlzLndzLmJ1c2NhUGFnaW5hZGFQcm9kdXRvcyh0aGlzLnNldHRpbmcsIHRoaXMucGFnaW5hQXR1YWwsIHRoaXMucXVhbnRpZGFkZVBhZ2luYSlcbiAgICAgIC5zdWJzY3JpYmUociA9PiB7XG4gICAgICAgIHRoaXMuaXRlbXMgPSByLml0ZW1zO1xuICAgICAgICB0aGlzLnJlc3VsdCA9IHI7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gbnVsbDtcbiAgICAgICAgY29uc29sZS5pbmZvKHIpO1xuICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd0h0dHBFcnJvcihlcnIpO1xuICAgICAgfSk7XG4gIH1cblxuXG5cbiAgZXhjbHVpcigpIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5zZWxlY3RlZEl0ZW07XG4gICAgaWYgKCFpdGVtKSByZXR1cm47XG4gICAgY29uZmlybWFFeGNsdXNhbyh0aGlzLmRpYWxvZyxcbiAgICAgIGBEZXNlamEgcHJvc3NlZ3VpciBjb20gYSBleGNsdXPDo28gZG8gcHJvZHV0byAke2l0ZW0ubm9tZX0/YCxcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgICAgICB0aGlzLndzLmRlbGV0ZVByb2R1dG8oaXRlbS5pZClcbiAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IHIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiTyBwcm9kdXRvIGZvaSBleGNsdcOtZG8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgICAgICAgICB0aGlzLml0ZW1zLnJlbW92ZShpdGVtKTtcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBudWxsO1xuICAgICAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKGVyci5lcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5vdm8oKSB7XG4gICAgbGV0IGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjkwKSArICdweCc7XG4gICAgbGV0IHdpZHRoID0gNTUwICsgJ3B4JztcbiAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgIHdpZHRoID0gKHdpbmRvdy5pbm5lcldpZHRoICogMC45OSkgKyAncHgnO1xuICAgICAgLy9oZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OCkgKyAncHgnO1xuICAgIH1cbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuKFByb2R1dG9BZGREaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIGhlaWdodDogaGVpZ2h0LFxuICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgIHBhbmVsQ2xhc3M6ICdkaWFsb2ctcDAnLFxuICAgIH0pO1xuICAgIGRpYWxvZy5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiU2Fsdm8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgdGhpcy5hdHVhbGl6YSgpO1xuICAgIH0pO1xuICB9XG5cbiAgYWJyZUNhZGFzdHJvKGl0ZW06IFByb2R1dG8pIHtcbiAgICBsZXQgaGVpZ2h0ID0gdW5kZWZpbmVkO1xuICAgIGxldCB3aWR0aCA9IDU1MCArICdweCc7XG4gICAgaWYgKHRoaXMubW9iaWxlKSB7XG4gICAgICB3aWR0aCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOTkpICsgJ3B4JztcbiAgICAgIGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjk5KSArICdweCc7XG4gICAgfVxuICAgIGNvbnN0IGRpYWxvZyA9IHRoaXMuZGlhbG9nLm9wZW4oUHJvZHV0b0VkaXREaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IGl0ZW0sXG4gICAgICB3aWR0aDogd2lkdGgsXG4gICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLXAwJyxcbiAgICB9KTtcbiAgICBkaWFsb2cuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQgIT09IHRydWUpIHJldHVybjtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coXCJTYWx2byBjb20gc3VjZXNzby5cIik7XG4gICAgICB0aGlzLmF0dWFsaXphKCk7XG4gICAgfSk7XG4gIH1cblxuICBzYWx2YXIoKSB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkSXRlbSkgcmV0dXJuO1xuICAgIGNvbnN0IHZhbE1zZyA9IHZhbGlkYVByb2R1dG8odGhpcy5zZWxlY3RlZEl0ZW0sIHRoaXMuZm9jdXMpO1xuICAgIGlmICh2YWxNc2cpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2dFcnJvcih2YWxNc2cpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzQnVzeSA9IHRydWU7XG4gICAgdGhpcy53cy5zYXZlUHJvZHV0byh0aGlzLnNlbGVjdGVkSXRlbSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiByID0+IHtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiU2Fsdm8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhlcnIuZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuICBmaWx0cm9zKCkge1xuICAgIGxldCBoZWlnaHQgPSB1bmRlZmluZWQ7XG4gICAgbGV0IHdpZHRoID0gNTUwICsgJ3B4JztcbiAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgIHdpZHRoID0gKHdpbmRvdy5pbm5lcldpZHRoICogMC45OSkgKyAncHgnO1xuICAgICAgaGVpZ2h0ID0gKHdpbmRvdy5pbm5lckhlaWdodCAqIDAuOTkpICsgJ3B4JztcbiAgICB9XG4gICAgY29uc3QgcDogZmlsdHJvc0RpYWxvZ0RhdGEgPVxuICAgIHtcbiAgICAgIHF0ZDogdGhpcy5xdWFudGlkYWRlUGFnaW5hLFxuICAgICAgc2V0dGluZzogdGhpcy5zZXR0aW5nXG4gICAgfTtcbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuKFByb2R1dG9CdXNjYUZpbHRyb3NEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHAsXG4gICAgICB3aWR0aDogd2lkdGgsXG4gICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLXAwJyxcbiAgICB9KTtcbiAgICBkaWFsb2cuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmICghcmVzdWx0KSByZXR1cm47XG4gICAgICBjb25zdCByOiBmaWx0cm9zRGlhbG9nRGF0YSA9IHJlc3VsdDtcbiAgICAgIHRoaXMucXVhbnRpZGFkZVBhZ2luYSA9IHIucXRkO1xuICAgICAgdGhpcy5hdHVhbGl6YSgpO1xuICAgIH0pO1xuICB9XG5cbiAgY29tcG9zaWNhbygpIHtcbiAgICBsZXQgaGVpZ2h0ID0gKHdpbmRvdy5pbm5lckhlaWdodCAqIDAuOTApICsgJ3B4JztcbiAgICBsZXQgd2lkdGggPSA1NTAgKyAncHgnO1xuICAgIGlmICh0aGlzLm1vYmlsZSkge1xuICAgICAgd2lkdGggPSAod2luZG93LmlubmVyV2lkdGggKiAwLjk5KSArICdweCc7XG4gICAgICAvL2hlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjk4KSArICdweCc7XG4gICAgfVxuICAgIGNvbnN0IGRpYWxvZyA9IHRoaXMuZGlhbG9nLm9wZW4oUHJvZHV0b0NvbXBvc2ljYW9Db21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIGhlaWdodDogaGVpZ2h0LFxuICAgICAgZGF0YTogdGhpcy5zZWxlY3RlZEl0ZW0sXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1wMCcsXG4gICAgfSk7XG4gICAgZGlhbG9nLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coXCJTYWx2byBjb20gc3VjZXNzby5cIik7XG4gICAgICB0aGlzLmF0dWFsaXphKCk7XG4gICAgfSk7XG4gIH1cblxufVxuIiwiPG94LWJ1c3ktaW5kaWNhdG9yIFtpc0J1c3ldPVwiaXNCdXN5XCI+PC9veC1idXN5LWluZGljYXRvcj5cbjxkaXYgY2xhc3M9XCJ0b29sLXBhbmVsXCIgKm5nSWY9XCJtb2JpbGVcIj5cbiAgPGRpdiBjbGFzcz1cInRvb2wtc2VjdGlvblwiPlxuICAgIDxsYWJlbD5QZXNxdWlzYTwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cInNlYXJjaC1pbnB1dC1jb250YWluZXJcIj5cbiAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInNldHRpbmcuZnJhc2VcIiBwbGFjZWhvbGRlcj1cIkRpZ2l0ZSB1bSB0ZXJtbyBkZSBidXNjYS4uLlwiIChpbnB1dCk9XCJsYXp5VHJpZ2dlci5maXJlKClcIj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJmaWx0cm9zKClcIj5cbiAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJGaWx0cm9zXCI+bWFuYWdlX3NlYXJjaDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ0b29sLXNlY3Rpb24gb3JkZW0tc20yXCI+XG4gICAgPGxhYmVsPkHDp8O1ZXM8L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJ0b29sLXJvd1wiPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImF0dWFsaXphKClcIj5cbiAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJBdHVhbGl6YXJcIj5yZWZyZXNoPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm5vdm8oKVwiICpuZ0lmPVwiYWxsb3dBZGRcIj5cbiAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJOb3ZvIEdydXBvXCI+YWRkPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImV4Y2x1aXIoKVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtICYmIGFsbG93RXhjbHVpclwiIFtAZmFkZV0+XG4gICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiRXhjbHVpciBHcnVwb1wiPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJyZXN1bHQtY29udGFpbmVyXCIgKm5nSWY9XCJpdGVtc1wiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZHMtY29udGFpbmVyIGNhcmRzLWNvbnRhaW5lci1zaGFkb3dcIiAqbmdJZj1cIm1vYmlsZVwiPlxuICAgIDxveC1pdGVtLWNhcmQgW2Rlc2F0aXZhZG9dPVwiIWkuaXNBdGl2b1wiIFtjbG91ZF09XCJpLmVudmlhZG9QQ1wiIFtub21lXT1cImkubm9tZVwiICpuZ0Zvcj1cImxldCBpIG9mIGl0ZW1zXCIgKGNsaWNrKT1cImFicmVDYWRhc3RybyhpKVwiPjwvb3gtaXRlbS1jYXJkPlxuICA8L2Rpdj4gIFxuICA8ZGl2IGNsYXNzPVwiaGJveFwiICAqbmdJZj1cIm1vYmlsZVwiPlxuICAgIDxveC1wYWdpbmF0b3IgKGNoYW5nZSk9XCJ0cm9jYVBhZ2luYSgpXCIgWyhwYWdpbmFBdHVhbCldPVwicGFnaW5hQXR1YWxcIiBbKHRvdGFsUGFnaW5hcyldPVwicmVzdWx0LnRvdGFsUGFnaW5hc1wiPlxuICAgIDwvb3gtcGFnaW5hdG9yPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImxpc3RhZ2VtLWRlc2t0b3AtZ3JpZFwiICpuZ0lmPVwiIW1vYmlsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsaXN0YWdlbS1jb2x1bW4tY29udGFpbmVyIGxpc3RhZ2VtLWxpc3QtY29sdW1uXCI+XG4gICAgICA8aDM+UHJvZHV0b3M8L2gzPlxuICAgICAgPGRpdiBjbGFzcz1cInRvb2wtcGFuZWwgdG9vbC1wYW5lbC1mbG9hdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbC1zZWN0aW9uXCI+XG4gICAgICAgICAgPGxhYmVsPlBlc3F1aXNhPC9sYWJlbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwic2V0dGluZy5mcmFzZVwiIHBsYWNlaG9sZGVyPVwiRGlnaXRlIHVtIHRlcm1vIGRlIGJ1c2NhLi4uXCIgKGlucHV0KT1cImxhenlUcmlnZ2VyLmZpcmUoKVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImZpbHRyb3MoKVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIkZpbHRyb3NcIj5tYW5hZ2Vfc2VhcmNoPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvb2wtc2VjdGlvbiBvcmRlbS1zbTJcIj5cbiAgICAgICAgICA8bGFiZWw+QcOnw7VlczwvbGFiZWw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2wtcm93XCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYXR1YWxpemEoKVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIkF0dWFsaXphclwiPnJlZnJlc2g8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwibm92bygpXCIgKm5nSWY9XCJhbGxvd0FkZFwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIk5vdm9cIj5hZGQ8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZXhjbHVpcigpXCIgKm5nSWY9XCJzZWxlY3RlZEl0ZW0gJiYgYWxsb3dFeGNsdWlyXCIgW0BmYWRlXT5cbiAgICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJFeGNsdWlyXCI+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RhZ2VtLWxpc3QtY29udGFpbmVyXCI+XG4gICAgICAgIDxoNCAqbmdJZj1cIml0ZW1zLmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwibmVuaHVtLWl0ZW0tbXNnXCI+QSBidXNjYSBuw6NvIHJldG9ybm91IHJlc3VsdGFkb3M8L2g0PlxuXG4gICAgICAgIDxveC1pdGVtLWNhcmQgW2Rlc2F0aXZhZG9dPVwiIWkuaXNBdGl2b1wiIFtjbG91ZF09XCJpLmVudmlhZG9QQ1wiIFtjb2RpZ29dPVwiaS5pZFwiIFtub21lXT1cImkubm9tZVwiICpuZ0Zvcj1cImxldCBpIG9mIGl0ZW1zXCIgW2NsYXNzLnNlbGVjdGVkXT1cImkgPT09IHNlbGVjdGVkSXRlbVwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkSXRlbSA9IGk7XCI+PC9veC1pdGVtLWNhcmQ+XG5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImhib3hcIj5cbiAgICAgICAgPG94LXBhZ2luYXRvciAoY2hhbmdlKT1cInRyb2NhUGFnaW5hKClcIiBbKHBhZ2luYUF0dWFsKV09XCJwYWdpbmFBdHVhbFwiIFsodG90YWxQYWdpbmFzKV09XCJyZXN1bHQudG90YWxQYWdpbmFzXCI+XG4gICAgICAgIDwvb3gtcGFnaW5hdG9yPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG90YWwtcXRkXCI+RXhpYmluZG8ge3tyZXN1bHQuaW5pY2lvUXRkfX0te3tyZXN1bHQuZmluYWxRdGR9fSBkZSB7e3Jlc3VsdC5xdWFudGlkYWRlfX08L2Rpdj5cbiAgICAgICAgXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tY29sdW1uLWNvbnRhaW5lciBsaXN0YWdlbS1jb2x1bW4tZm9ybVwiPlxuICAgICAgPGgzICpuZ0lmPVwiIXNlbGVjdGVkSXRlbVwiPlNlbGVjaW9uZSB1bSBwcm9kdXRvIG5vIGxhZG8gZGlyZWl0bzwvaDM+XG4gICAgICA8aDMgKm5nSWY9XCJzZWxlY3RlZEl0ZW1cIj57e3NlbGVjdGVkSXRlbS5ub21lIHwgdXBwZXJjYXNlfX08L2gzPlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RhZ2VtLWZvcm0tY29udGFpbmVyXCI+XG4gICAgICAgIDxveC1wcm9kdXRvLWZvcm0gW0BmYWRlXSBbbW9kZWxdPVwic2VsZWN0ZWRJdGVtXCIgKm5nSWY9XCJzZWxlY3RlZEl0ZW1cIiBbZWRpdE1vZGVdPVwidHJ1ZVwiPlxuICAgICAgICA8L294LXByb2R1dG8tZm9ybT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tZm9ybS1hY29lc1wiPlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzYWx2YXIoKVwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtXCIgdGFiaW5kZXg9XCIyMFwiPlNhbHZhcjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjb21wb3NpY2FvKClcIiBtYXQtcmFpc2VkLWJ1dHRvbiAqbmdJZj1cInNlbGVjdGVkSXRlbSAmJiB1c2FFc3RvcXVlT25saW5lXCIgdGFiaW5kZXg9XCIyMFwiPkNvbXBvc2nDp8OjbzwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0b3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9wcm9kdXRvcy9wcm9kdXRvcy9wcm9kdXRvcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zL3Byb2R1dG9zL3Byb2R1dG9zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBVyxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFHdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR2hFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQy9GLE9BQU8sRUFBcUIsa0NBQWtDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUMvSSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVFsRyxNQUFNLE9BQU8saUJBQWlCO0lBOEI1QixZQUFvQixFQUFvQixFQUM5QixZQUFpQyxFQUNsQyxNQUFpQixFQUN4QixJQUFxQixFQUNiLEtBQXFCLEVBQ3JCLFlBQWlDO1FB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QyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzhHQS9OVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixtREN6QjlCLHMwSUEwRk0sOG1FRG5FUSxDQUFDLGFBQWEsQ0FBQzsyRkFFaEIsaUJBQWlCO2tCQU43QixTQUFTOytCQUNFLGFBQWEsY0FHWCxDQUFDLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmFkZUFuaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uL2FuaW1hdGlvbnMvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBQcm9kdXRvLCB2YWxpZGFQcm9kdXRvIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2VudGlkYWRlcy9wcm9kdXRvJztcbmltcG9ydCB7IExhenlUcmlnZ2VyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luZnJhL2xhenktdHJpZ2dlcic7XG5pbXBvcnQgeyBQYWdpbmdSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvaW5mcmEvcGFnaW5nLXJlc3VsdCc7XG5pbXBvcnQgeyBjb25maXJtYUV4Y2x1c2FvIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luZnJhL3NlbGVjYW8tdXRpbHMnO1xuaW1wb3J0IHsgUHJvZHV0b1NlYXJjaFNldHRpbmcgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc2V0dGluZ3MvcHJvZHV0by1zZWFyY2gtc2V0dGluZyc7XG5pbXBvcnQgeyBBdXRoRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvYXV0aC1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbW9uV2ViU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9jb21tb24td2ViLXNlcnZpY2UnO1xuaW1wb3J0IHsgRm9jdXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2ZvY3VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTY3JlZW5IZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL3NjcmVlbi1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdXRvQWRkRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZHV0by1hZGQtZGlhbG9nL3Byb2R1dG8tYWRkLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgZmlsdHJvc0RpYWxvZ0RhdGEsIFByb2R1dG9CdXNjYUZpbHRyb3NEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9wcm9kdXRvLWJ1c2NhLWZpbHRyb3MtZGlhbG9nL3Byb2R1dG8tYnVzY2EtZmlsdHJvcy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1dG9Db21wb3NpY2FvQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZHV0by1jb21wb3NpY2FvL3Byb2R1dG8tY29tcG9zaWNhby5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHV0b0VkaXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9wcm9kdXRvLWVkaXQtZGlhbG9nL3Byb2R1dG8tZWRpdC1kaWFsb2cuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb3gtcHJvZHV0b3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHV0b3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9kdXRvcy5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbZmFkZUFuaW1hdGlvbl1cbn0pXG5leHBvcnQgY2xhc3MgUHJvZHV0b3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBtb2JpbGU6IGJvb2xlYW47XG4gIGlzQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuICBpdGVtczogUHJvZHV0b1tdID0gW107XG4gIHJlc3VsdDogUGFnaW5nUmVzdWx0PFByb2R1dG8+ID1cbiAgICB7XG4gICAgICBmaW5hbFF0ZDogMCxcbiAgICAgIGluaWNpb1F0ZDogMCxcbiAgICAgIGl0ZW1zOiBbXSxcbiAgICAgIHBhZ2luYTogMCxcbiAgICAgIHF1YW50aWRhZGU6IDAsXG4gICAgICB2YWxvcjogMCxcbiAgICAgIHRvdGFsUGFnaW5hczogMFxuICAgIH07XG4gIHByaXZhdGUgX3NlbGVjdGVkSXRlbTogUHJvZHV0byB8IG51bGwgPSBudWxsO1xuICBnZXQgc2VsZWN0ZWRJdGVtKCk6IFByb2R1dG8gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJdGVtO1xuICB9XG4gIHNldCBzZWxlY3RlZEl0ZW0ocDogUHJvZHV0byB8IG51bGwpIHtcbiAgICB0aGlzLl9zZWxlY3RlZEl0ZW0gPSBwO1xuICB9XG4gIGxhenlUcmlnZ2VyID0gbmV3IExhenlUcmlnZ2VyKCgpID0+IHsgdGhpcy5hdHVhbGl6YSgpOyB9KTtcbiAgYWxsb3dBZGQ6IGJvb2xlYW47XG4gIGFsbG93RXhjbHVpcjogYm9vbGVhbjtcbiAgdXNhRXN0b3F1ZU9ubGluZTogYm9vbGVhbjtcbiAgc2V0dGluZyA9IG5ldyBQcm9kdXRvU2VhcmNoU2V0dGluZygpO1xuICBwcml2YXRlIGZvY3VzOiBGb2N1c1NlcnZpY2UgPSBuZXcgRm9jdXNTZXJ2aWNlKCk7XG4gIHBhZ2luYUF0dWFsOiBudW1iZXIgPSAxO1xuICBxdWFudGlkYWRlUGFnaW5hOiBudW1iZXIgPSA1MDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHdzOiBDb21tb25XZWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBhdXRoOiBBdXRoRGF0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBzY3JlZW5IZWxwZXI6IFNjcmVlbkhlbHBlclNlcnZpY2UpIHtcbiAgICB0aGlzLmFsbG93QWRkID0gYXV0aC5wZXJtaXNzb2VzLmFkbWluUHJvZHV0b0FkZDtcbiAgICB0aGlzLmFsbG93RXhjbHVpciA9IGF1dGgucGVybWlzc29lcy5hZG1pblByb2R1dG9EZWxldGU7XG4gICAgdGhpcy5tb2JpbGUgPSB0aGlzLnNjcmVlbkhlbHBlci5pc01lZGl1bTtcbiAgICB0aGlzLnVzYUVzdG9xdWVPbmxpbmUgPSBhdXRoLnVzYUVzdG9xdWVPbmxpbmU7XG4gICAgdGhpcy5zY3JlZW5IZWxwZXIuY2hhbmdlZE1lZGl1bVNjcmVlbi5zdWJzY3JpYmUoeCA9PiB0aGlzLm1vYmlsZSA9IHgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgZXhpYmVFc3RvcXVlID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2V4aWJlRXN0b3F1ZScpO1xuICAgIGlmIChleGliZUVzdG9xdWUgIT0gbnVsbCAmJiBleGliZUVzdG9xdWUgPT09IFwidHJ1ZVwiKSB7XG4gICAgICB0aGlzLnNldHRpbmcuZXhpYmVDb250cm9sYWRvRXN0b3F1ZSA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuc2V0dGluZy5vcmRlbSA9IFwibm9tZVwiO1xuICAgIHRoaXMuYXR1YWxpemEoKTtcbiAgfVxuXG4gIG9uU2VsZWN0SXRlbSgpOiB2b2lkIHtcblxuICAgIGlmICghdGhpcy5mb2N1cy5oYXNJbml0KCkpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmZvY3VzLnJlZ2lzdGVyRWxlbWVudEJ5SWQoXCJmb3JtLWNvbHVtblwiKTtcbiAgICAgICAgdGhpcy5mb2N1cy5zZXRGaXJzdCgpO1xuICAgICAgfSwgNTAwKTtcbiAgICAgIC8vdGhpcy5fZm9jdXMucmVnaXN0ZXJFbGVtZW50QnlJZChcImZvcm0tY29sdW1uXCIpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuZm9jdXMuc2V0Rmlyc3QoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzLnVucmVnaXN0ZXJFbGVtZW50QnlJZChcImZvcm0tY29sdW1uXCIpO1xuICB9XG4gIHRyb2NhUGFnaW5hKCkge1xuICAgIHRoaXMuYXR1YWxpemEodGhpcy5wYWdpbmFBdHVhbCk7XG4gIH1cbiAgYXR1YWxpemEocGFnaW5hPzogbnVtYmVyKSB7XG4gICAgaWYgKHBhZ2luYSA9PSB1bmRlZmluZWQpXG4gICAgICB0aGlzLnBhZ2luYUF0dWFsID0gMTtcbiAgICBlbHNlXG4gICAgICB0aGlzLnBhZ2luYUF0dWFsID0gcGFnaW5hO1xuICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICB0aGlzLndzLmJ1c2NhUGFnaW5hZGFQcm9kdXRvcyh0aGlzLnNldHRpbmcsIHRoaXMucGFnaW5hQXR1YWwsIHRoaXMucXVhbnRpZGFkZVBhZ2luYSlcbiAgICAgIC5zdWJzY3JpYmUociA9PiB7XG4gICAgICAgIHRoaXMuaXRlbXMgPSByLml0ZW1zO1xuICAgICAgICB0aGlzLnJlc3VsdCA9IHI7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gbnVsbDtcbiAgICAgICAgY29uc29sZS5pbmZvKHIpO1xuICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd0h0dHBFcnJvcihlcnIpO1xuICAgICAgfSk7XG4gIH1cblxuXG5cbiAgZXhjbHVpcigpIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5zZWxlY3RlZEl0ZW07XG4gICAgaWYgKCFpdGVtKSByZXR1cm47XG4gICAgY29uZmlybWFFeGNsdXNhbyh0aGlzLmRpYWxvZyxcbiAgICAgIGBEZXNlamEgcHJvc3NlZ3VpciBjb20gYSBleGNsdXPDo28gZG8gcHJvZHV0byAke2l0ZW0ubm9tZX0/YCxcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgICAgICB0aGlzLndzLmRlbGV0ZVByb2R1dG8oaXRlbS5pZClcbiAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IHIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiTyBwcm9kdXRvIGZvaSBleGNsdcOtZG8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgICAgICAgICB0aGlzLml0ZW1zLnJlbW92ZShpdGVtKTtcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBudWxsO1xuICAgICAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKGVyci5lcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5vdm8oKSB7XG4gICAgbGV0IGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjkwKSArICdweCc7XG4gICAgbGV0IHdpZHRoID0gNTUwICsgJ3B4JztcbiAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgIHdpZHRoID0gKHdpbmRvdy5pbm5lcldpZHRoICogMC45OSkgKyAncHgnO1xuICAgICAgLy9oZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OCkgKyAncHgnO1xuICAgIH1cbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuKFByb2R1dG9BZGREaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIGhlaWdodDogaGVpZ2h0LFxuICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgIHBhbmVsQ2xhc3M6ICdkaWFsb2ctcDAnLFxuICAgIH0pO1xuICAgIGRpYWxvZy5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiU2Fsdm8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgdGhpcy5hdHVhbGl6YSgpO1xuICAgIH0pO1xuICB9XG5cbiAgYWJyZUNhZGFzdHJvKGl0ZW06IFByb2R1dG8pIHtcbiAgICBsZXQgaGVpZ2h0ID0gdW5kZWZpbmVkO1xuICAgIGxldCB3aWR0aCA9IDU1MCArICdweCc7XG4gICAgaWYgKHRoaXMubW9iaWxlKSB7XG4gICAgICB3aWR0aCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOTkpICsgJ3B4JztcbiAgICAgIGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjk5KSArICdweCc7XG4gICAgfVxuICAgIGNvbnN0IGRpYWxvZyA9IHRoaXMuZGlhbG9nLm9wZW4oUHJvZHV0b0VkaXREaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IGl0ZW0sXG4gICAgICB3aWR0aDogd2lkdGgsXG4gICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLXAwJyxcbiAgICB9KTtcbiAgICBkaWFsb2cuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQgIT09IHRydWUpIHJldHVybjtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coXCJTYWx2byBjb20gc3VjZXNzby5cIik7XG4gICAgICB0aGlzLmF0dWFsaXphKCk7XG4gICAgfSk7XG4gIH1cblxuICBzYWx2YXIoKSB7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkSXRlbSkgcmV0dXJuO1xuICAgIGNvbnN0IHZhbE1zZyA9IHZhbGlkYVByb2R1dG8odGhpcy5zZWxlY3RlZEl0ZW0sIHRoaXMuZm9jdXMpO1xuICAgIGlmICh2YWxNc2cpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2dFcnJvcih2YWxNc2cpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzQnVzeSA9IHRydWU7XG4gICAgdGhpcy53cy5zYXZlUHJvZHV0byh0aGlzLnNlbGVjdGVkSXRlbSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiByID0+IHtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiU2Fsdm8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhlcnIuZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuICBmaWx0cm9zKCkge1xuICAgIGxldCBoZWlnaHQgPSB1bmRlZmluZWQ7XG4gICAgbGV0IHdpZHRoID0gNTUwICsgJ3B4JztcbiAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgIHdpZHRoID0gKHdpbmRvdy5pbm5lcldpZHRoICogMC45OSkgKyAncHgnO1xuICAgICAgaGVpZ2h0ID0gKHdpbmRvdy5pbm5lckhlaWdodCAqIDAuOTkpICsgJ3B4JztcbiAgICB9XG4gICAgY29uc3QgcDogZmlsdHJvc0RpYWxvZ0RhdGEgPVxuICAgIHtcbiAgICAgIHF0ZDogdGhpcy5xdWFudGlkYWRlUGFnaW5hLFxuICAgICAgc2V0dGluZzogdGhpcy5zZXR0aW5nXG4gICAgfTtcbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuKFByb2R1dG9CdXNjYUZpbHRyb3NEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHAsXG4gICAgICB3aWR0aDogd2lkdGgsXG4gICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLXAwJyxcbiAgICB9KTtcbiAgICBkaWFsb2cuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmICghcmVzdWx0KSByZXR1cm47XG4gICAgICBjb25zdCByOiBmaWx0cm9zRGlhbG9nRGF0YSA9IHJlc3VsdDtcbiAgICAgIHRoaXMucXVhbnRpZGFkZVBhZ2luYSA9IHIucXRkO1xuICAgICAgdGhpcy5hdHVhbGl6YSgpO1xuICAgIH0pO1xuICB9XG5cbiAgY29tcG9zaWNhbygpIHtcbiAgICBsZXQgaGVpZ2h0ID0gKHdpbmRvdy5pbm5lckhlaWdodCAqIDAuOTApICsgJ3B4JztcbiAgICBsZXQgd2lkdGggPSA1NTAgKyAncHgnO1xuICAgIGlmICh0aGlzLm1vYmlsZSkge1xuICAgICAgd2lkdGggPSAod2luZG93LmlubmVyV2lkdGggKiAwLjk5KSArICdweCc7XG4gICAgICAvL2hlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjk4KSArICdweCc7XG4gICAgfVxuICAgIGNvbnN0IGRpYWxvZyA9IHRoaXMuZGlhbG9nLm9wZW4oUHJvZHV0b0NvbXBvc2ljYW9Db21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIGhlaWdodDogaGVpZ2h0LFxuICAgICAgZGF0YTogdGhpcy5zZWxlY3RlZEl0ZW0sXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1wMCcsXG4gICAgfSk7XG4gICAgZGlhbG9nLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coXCJTYWx2byBjb20gc3VjZXNzby5cIik7XG4gICAgICB0aGlzLmF0dWFsaXphKCk7XG4gICAgfSk7XG4gIH1cblxufVxuIiwiPG94LWJ1c3ktaW5kaWNhdG9yIFtpc0J1c3ldPVwiaXNCdXN5XCI+PC9veC1idXN5LWluZGljYXRvcj5cbjxkaXYgY2xhc3M9XCJ0b29sLXBhbmVsXCIgKm5nSWY9XCJtb2JpbGVcIj5cbiAgPGRpdiBjbGFzcz1cInRvb2wtc2VjdGlvblwiPlxuICAgIDxsYWJlbD5QZXNxdWlzYTwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cInNlYXJjaC1pbnB1dC1jb250YWluZXJcIj5cbiAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInNldHRpbmcuZnJhc2VcIiBwbGFjZWhvbGRlcj1cIkRpZ2l0ZSB1bSB0ZXJtbyBkZSBidXNjYS4uLlwiIChpbnB1dCk9XCJsYXp5VHJpZ2dlci5maXJlKClcIj5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJmaWx0cm9zKClcIj5cbiAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJGaWx0cm9zXCI+bWFuYWdlX3NlYXJjaDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ0b29sLXNlY3Rpb24gb3JkZW0tc20yXCI+XG4gICAgPGxhYmVsPkHDp8O1ZXM8L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJ0b29sLXJvd1wiPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImF0dWFsaXphKClcIj5cbiAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJBdHVhbGl6YXJcIj5yZWZyZXNoPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm5vdm8oKVwiICpuZ0lmPVwiYWxsb3dBZGRcIj5cbiAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJOb3ZvIEdydXBvXCI+YWRkPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImV4Y2x1aXIoKVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtICYmIGFsbG93RXhjbHVpclwiIFtAZmFkZV0+XG4gICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiRXhjbHVpciBHcnVwb1wiPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJyZXN1bHQtY29udGFpbmVyXCIgKm5nSWY9XCJpdGVtc1wiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZHMtY29udGFpbmVyIGNhcmRzLWNvbnRhaW5lci1zaGFkb3dcIiAqbmdJZj1cIm1vYmlsZVwiPlxuICAgIDxveC1pdGVtLWNhcmQgW2Rlc2F0aXZhZG9dPVwiIWkuaXNBdGl2b1wiIFtjbG91ZF09XCJpLmVudmlhZG9QQ1wiIFtub21lXT1cImkubm9tZVwiICpuZ0Zvcj1cImxldCBpIG9mIGl0ZW1zXCIgKGNsaWNrKT1cImFicmVDYWRhc3RybyhpKVwiPjwvb3gtaXRlbS1jYXJkPlxuICA8L2Rpdj4gIFxuICA8ZGl2IGNsYXNzPVwiaGJveFwiICAqbmdJZj1cIm1vYmlsZVwiPlxuICAgIDxveC1wYWdpbmF0b3IgKGNoYW5nZSk9XCJ0cm9jYVBhZ2luYSgpXCIgWyhwYWdpbmFBdHVhbCldPVwicGFnaW5hQXR1YWxcIiBbKHRvdGFsUGFnaW5hcyldPVwicmVzdWx0LnRvdGFsUGFnaW5hc1wiPlxuICAgIDwvb3gtcGFnaW5hdG9yPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImxpc3RhZ2VtLWRlc2t0b3AtZ3JpZFwiICpuZ0lmPVwiIW1vYmlsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsaXN0YWdlbS1jb2x1bW4tY29udGFpbmVyIGxpc3RhZ2VtLWxpc3QtY29sdW1uXCI+XG4gICAgICA8aDM+UHJvZHV0b3M8L2gzPlxuICAgICAgPGRpdiBjbGFzcz1cInRvb2wtcGFuZWwgdG9vbC1wYW5lbC1mbG9hdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbC1zZWN0aW9uXCI+XG4gICAgICAgICAgPGxhYmVsPlBlc3F1aXNhPC9sYWJlbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwic2V0dGluZy5mcmFzZVwiIHBsYWNlaG9sZGVyPVwiRGlnaXRlIHVtIHRlcm1vIGRlIGJ1c2NhLi4uXCIgKGlucHV0KT1cImxhenlUcmlnZ2VyLmZpcmUoKVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImZpbHRyb3MoKVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIkZpbHRyb3NcIj5tYW5hZ2Vfc2VhcmNoPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvb2wtc2VjdGlvbiBvcmRlbS1zbTJcIj5cbiAgICAgICAgICA8bGFiZWw+QcOnw7VlczwvbGFiZWw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2wtcm93XCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYXR1YWxpemEoKVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIkF0dWFsaXphclwiPnJlZnJlc2g8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwibm92bygpXCIgKm5nSWY9XCJhbGxvd0FkZFwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIk5vdm9cIj5hZGQ8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZXhjbHVpcigpXCIgKm5nSWY9XCJzZWxlY3RlZEl0ZW0gJiYgYWxsb3dFeGNsdWlyXCIgW0BmYWRlXT5cbiAgICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJFeGNsdWlyXCI+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RhZ2VtLWxpc3QtY29udGFpbmVyXCI+XG4gICAgICAgIDxoNCAqbmdJZj1cIml0ZW1zLmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwibmVuaHVtLWl0ZW0tbXNnXCI+QSBidXNjYSBuw6NvIHJldG9ybm91IHJlc3VsdGFkb3M8L2g0PlxuXG4gICAgICAgIDxveC1pdGVtLWNhcmQgW2Rlc2F0aXZhZG9dPVwiIWkuaXNBdGl2b1wiIFtjbG91ZF09XCJpLmVudmlhZG9QQ1wiIFtjb2RpZ29dPVwiaS5pZFwiIFtub21lXT1cImkubm9tZVwiICpuZ0Zvcj1cImxldCBpIG9mIGl0ZW1zXCIgW2NsYXNzLnNlbGVjdGVkXT1cImkgPT09IHNlbGVjdGVkSXRlbVwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkSXRlbSA9IGk7XCI+PC9veC1pdGVtLWNhcmQ+XG5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImhib3hcIj5cbiAgICAgICAgPG94LXBhZ2luYXRvciAoY2hhbmdlKT1cInRyb2NhUGFnaW5hKClcIiBbKHBhZ2luYUF0dWFsKV09XCJwYWdpbmFBdHVhbFwiIFsodG90YWxQYWdpbmFzKV09XCJyZXN1bHQudG90YWxQYWdpbmFzXCI+XG4gICAgICAgIDwvb3gtcGFnaW5hdG9yPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG90YWwtcXRkXCI+RXhpYmluZG8ge3tyZXN1bHQuaW5pY2lvUXRkfX0te3tyZXN1bHQuZmluYWxRdGR9fSBkZSB7e3Jlc3VsdC5xdWFudGlkYWRlfX08L2Rpdj5cbiAgICAgICAgXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tY29sdW1uLWNvbnRhaW5lciBsaXN0YWdlbS1jb2x1bW4tZm9ybVwiPlxuICAgICAgPGgzICpuZ0lmPVwiIXNlbGVjdGVkSXRlbVwiPlNlbGVjaW9uZSB1bSBwcm9kdXRvIG5vIGxhZG8gZGlyZWl0bzwvaDM+XG4gICAgICA8aDMgKm5nSWY9XCJzZWxlY3RlZEl0ZW1cIj57e3NlbGVjdGVkSXRlbS5ub21lIHwgdXBwZXJjYXNlfX08L2gzPlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RhZ2VtLWZvcm0tY29udGFpbmVyXCI+XG4gICAgICAgIDxveC1wcm9kdXRvLWZvcm0gW0BmYWRlXSBbbW9kZWxdPVwic2VsZWN0ZWRJdGVtXCIgKm5nSWY9XCJzZWxlY3RlZEl0ZW1cIiBbZWRpdE1vZGVdPVwidHJ1ZVwiPlxuICAgICAgICA8L294LXByb2R1dG8tZm9ybT5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tZm9ybS1hY29lc1wiPlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzYWx2YXIoKVwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtXCIgdGFiaW5kZXg9XCIyMFwiPlNhbHZhcjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjb21wb3NpY2FvKClcIiBtYXQtcmFpc2VkLWJ1dHRvbiAqbmdJZj1cInNlbGVjdGVkSXRlbSAmJiB1c2FFc3RvcXVlT25saW5lXCIgdGFiaW5kZXg9XCIyMFwiPkNvbXBvc2nDp8OjbzwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
@@ -98,7 +98,7 @@ export class ProdutoCategoriaCardapioSelecaoDialogComponent {
98
98
  }
99
99
  }
100
100
  ProdutoCategoriaCardapioSelecaoDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ProdutoCategoriaCardapioSelecaoDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: i1.MatDialog }, { token: i2.CommonWebService }, { token: i3.NotificationService }, { token: i4.AuthDataService }, { token: i5.ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component });
101
- ProdutoCategoriaCardapioSelecaoDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: ProdutoCategoriaCardapioSelecaoDialogComponent, selector: "ox-produto-categoria-cardapio-selecao-dialog", ngImport: i0, template: "<div class=\"dialog-header\">\n <h2>Sele\u00E7\u00E3o de Grupos</h2>\n </div>\n <div class=\"tool-panel\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input (keydown)=\"nav.onKeyDown($event)\" cdkFocusInitial [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"editar()\" *ngIf=\"selectedItem && allowEdit\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ox-item-card [nome]=\"i.nome\" (click)=\"selectItem(i)\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"></ox-item-card>\n<!--\n <div (click)=\"selectItem(i)\" [ngClass]=\"{selected: selectedItem === i}\" class=\"list-item\" *ngFor=\"let i of items\">\n <span>{{i.nome}}</span>\n </div>\n-->\n </div>\n <div class=\"dialog-footer\">\n <button mat-button [disabled]=\"selectedItem == undefined\" color=\"primary\" [mat-dialog-close]=\"selectedItem\">CONFIRMAR</button>\n <button mat-button [mat-dialog-close]=\"undefined\">VOLTAR</button>\n </div>\n <ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n ", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i10.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: i11.ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado"] }] });
101
+ ProdutoCategoriaCardapioSelecaoDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: ProdutoCategoriaCardapioSelecaoDialogComponent, selector: "ox-produto-categoria-cardapio-selecao-dialog", ngImport: i0, template: "<div class=\"dialog-header\">\n <h2>Sele\u00E7\u00E3o de Grupos</h2>\n </div>\n <div class=\"tool-panel\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input (keydown)=\"nav.onKeyDown($event)\" cdkFocusInitial [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"editar()\" *ngIf=\"selectedItem && allowEdit\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ox-item-card [nome]=\"i.nome\" (click)=\"selectItem(i)\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"></ox-item-card>\n<!--\n <div (click)=\"selectItem(i)\" [ngClass]=\"{selected: selectedItem === i}\" class=\"list-item\" *ngFor=\"let i of items\">\n <span>{{i.nome}}</span>\n </div>\n-->\n </div>\n <div class=\"dialog-footer\">\n <button mat-button [disabled]=\"selectedItem == undefined\" color=\"primary\" [mat-dialog-close]=\"selectedItem\">CONFIRMAR</button>\n <button mat-button [mat-dialog-close]=\"undefined\">VOLTAR</button>\n </div>\n <ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n ", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i10.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: i11.ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado", "ownership"] }] });
102
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ProdutoCategoriaCardapioSelecaoDialogComponent, decorators: [{
103
103
  type: Component,
104
104
  args: [{ selector: 'ox-produto-categoria-cardapio-selecao-dialog', template: "<div class=\"dialog-header\">\n <h2>Sele\u00E7\u00E3o de Grupos</h2>\n </div>\n <div class=\"tool-panel\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input (keydown)=\"nav.onKeyDown($event)\" cdkFocusInitial [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"editar()\" *ngIf=\"selectedItem && allowEdit\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ox-item-card [nome]=\"i.nome\" (click)=\"selectItem(i)\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"></ox-item-card>\n<!--\n <div (click)=\"selectItem(i)\" [ngClass]=\"{selected: selectedItem === i}\" class=\"list-item\" *ngFor=\"let i of items\">\n <span>{{i.nome}}</span>\n </div>\n-->\n </div>\n <div class=\"dialog-footer\">\n <button mat-button [disabled]=\"selectedItem == undefined\" color=\"primary\" [mat-dialog-close]=\"selectedItem\">CONFIRMAR</button>\n <button mat-button [mat-dialog-close]=\"undefined\">VOLTAR</button>\n </div>\n <ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n ", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"] }]
@@ -148,9 +148,9 @@ export class ProdutosCategoriasCardapioComponent {
148
148
  }
149
149
  }
150
150
  ProdutosCategoriasCardapioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ProdutosCategoriasCardapioComponent, deps: [{ token: i1.CommonWebService }, { token: i2.NotificationService }, { token: i3.MatDialog }, { token: i4.AuthDataService }, { token: i5.ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component });
151
- ProdutosCategoriasCardapioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: ProdutosCategoriasCardapioComponent, selector: "ox-produtos-categorias-cardapio", ngImport: i0, template: "<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"tool-panel\" *ngIf=\"mobile\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo Grupo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir Grupo\">delete</mat-icon>\n </button>\n </div>\n </div>\n</div>\n<div class=\"result-container\" *ngIf=\"items\">\n <div class=\"cards-container cards-container-shadow\" *ngIf=\"mobile\">\n <ox-item-card [nome]=\"i.nome\" *ngFor=\"let i of items\" (click)=\"abreCadastro(i)\"></ox-item-card>\n </div>\n <div class=\"listagem-desktop-grid\" *ngIf=\"!mobile\">\n <div class=\"listagem-column-container listagem-list-column\">\n <h3>Grupos de Produtos</h3>\n <div class=\"tool-panel tool-panel-float\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"listagem-list-container\">\n <h4 *ngIf=\"items.length === 0\" class=\"nenhum-item-msg\">A busca n\u00E3o retornou resultados</h4>\n\n <ox-item-card [nome]=\"i.nome\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"\n (click)=\"selectedItem = i;\"></ox-item-card>\n\n </div>\n </div>\n <div class=\"listagem-column-container listagem-column-form\">\n <h3 *ngIf=\"!selectedItem\">Selecione um grupo no lado direito</h3>\n <h3 *ngIf=\"selectedItem\">{{selectedItem.nome | uppercase}}</h3>\n <div class=\"listagem-form-container\">\n <ox-produto-grupo-form [@fade] [model]=\"selectedItem\" *ngIf=\"selectedItem\">\n </ox-produto-grupo-form>\n </div>\n\n <div class=\"listagem-form-acoes\">\n <button (click)=\"salvar()\" mat-fab color=\"primary\" *ngIf=\"selectedItem\" tabindex=\"20\">\n <mat-icon>save</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>", styles: [":host{height:calc(100% - 48px);display:flex;flex-grow:1;flex-direction:column;background:#F0F0F0}:host{background-color:#fdfdfd}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: i11.ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado"] }, { kind: "component", type: i12.ProdutoGrupoFormComponent, selector: "ox-produto-grupo-form", inputs: ["model"] }, { kind: "pipe", type: i6.UpperCasePipe, name: "uppercase" }], animations: [fadeAnimation] });
151
+ ProdutosCategoriasCardapioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: ProdutosCategoriasCardapioComponent, selector: "ox-produtos-categorias-cardapio", ngImport: i0, template: "<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"tool-panel\" *ngIf=\"mobile\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo Grupo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir Grupo\">delete</mat-icon>\n </button>\n </div>\n </div>\n</div>\n<div class=\"result-container\" *ngIf=\"items\">\n <div class=\"cards-container cards-container-shadow\" *ngIf=\"mobile\">\n <ox-item-card [nome]=\"i.nome\" *ngFor=\"let i of items\" (click)=\"abreCadastro(i)\"></ox-item-card>\n </div>\n <div class=\"listagem-desktop-grid\" *ngIf=\"!mobile\">\n <div class=\"listagem-column-container listagem-list-column\">\n <h3>Grupos de Produtos</h3>\n <div class=\"tool-panel tool-panel-float\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"listagem-list-container\">\n <h4 *ngIf=\"items.length === 0\" class=\"nenhum-item-msg\">A busca n\u00E3o retornou resultados</h4>\n\n <ox-item-card [nome]=\"i.nome\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"\n (click)=\"selectedItem = i;\"></ox-item-card>\n\n </div>\n </div>\n <div class=\"listagem-column-container listagem-column-form\">\n <h3 *ngIf=\"!selectedItem\">Selecione um grupo no lado direito</h3>\n <h3 *ngIf=\"selectedItem\">{{selectedItem.nome | uppercase}}</h3>\n <div class=\"listagem-form-container\">\n <ox-produto-grupo-form [@fade] [model]=\"selectedItem\" *ngIf=\"selectedItem\">\n </ox-produto-grupo-form>\n </div>\n\n <div class=\"listagem-form-acoes\">\n <button (click)=\"salvar()\" mat-fab color=\"primary\" *ngIf=\"selectedItem\" tabindex=\"20\">\n <mat-icon>save</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>", styles: [":host{height:calc(100% - 48px);display:flex;flex-grow:1;flex-direction:column;background:#F0F0F0}:host{background-color:#fdfdfd}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: i11.ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado", "ownership"] }, { kind: "component", type: i12.ProdutoGrupoFormComponent, selector: "ox-produto-grupo-form", inputs: ["model"] }, { kind: "pipe", type: i6.UpperCasePipe, name: "uppercase" }], animations: [fadeAnimation] });
152
152
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ProdutosCategoriasCardapioComponent, decorators: [{
153
153
  type: Component,
154
154
  args: [{ selector: 'ox-produtos-categorias-cardapio', animations: [fadeAnimation], template: "<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"tool-panel\" *ngIf=\"mobile\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo Grupo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir Grupo\">delete</mat-icon>\n </button>\n </div>\n </div>\n</div>\n<div class=\"result-container\" *ngIf=\"items\">\n <div class=\"cards-container cards-container-shadow\" *ngIf=\"mobile\">\n <ox-item-card [nome]=\"i.nome\" *ngFor=\"let i of items\" (click)=\"abreCadastro(i)\"></ox-item-card>\n </div>\n <div class=\"listagem-desktop-grid\" *ngIf=\"!mobile\">\n <div class=\"listagem-column-container listagem-list-column\">\n <h3>Grupos de Produtos</h3>\n <div class=\"tool-panel tool-panel-float\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"listagem-list-container\">\n <h4 *ngIf=\"items.length === 0\" class=\"nenhum-item-msg\">A busca n\u00E3o retornou resultados</h4>\n\n <ox-item-card [nome]=\"i.nome\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"\n (click)=\"selectedItem = i;\"></ox-item-card>\n\n </div>\n </div>\n <div class=\"listagem-column-container listagem-column-form\">\n <h3 *ngIf=\"!selectedItem\">Selecione um grupo no lado direito</h3>\n <h3 *ngIf=\"selectedItem\">{{selectedItem.nome | uppercase}}</h3>\n <div class=\"listagem-form-container\">\n <ox-produto-grupo-form [@fade] [model]=\"selectedItem\" *ngIf=\"selectedItem\">\n </ox-produto-grupo-form>\n </div>\n\n <div class=\"listagem-form-acoes\">\n <button (click)=\"salvar()\" mat-fab color=\"primary\" *ngIf=\"selectedItem\" tabindex=\"20\">\n <mat-icon>save</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>", styles: [":host{height:calc(100% - 48px);display:flex;flex-grow:1;flex-direction:column;background:#F0F0F0}:host{background-color:#fdfdfd}\n"] }]
155
155
  }], ctorParameters: function () { return [{ type: i1.CommonWebService }, { type: i2.NotificationService }, { type: i3.MatDialog }, { type: i4.AuthDataService }, { type: i5.ScreenHelperService }]; } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0b3MtY2F0ZWdvcmlhcy1jYXJkYXBpby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zLWNhdGVnb3JpYS1jYXJkYXBpby9wcm9kdXRvcy1jYXRlZ29yaWFzLWNhcmRhcGlvL3Byb2R1dG9zLWNhdGVnb3JpYXMtY2FyZGFwaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9wcm9kdXRvcy1jYXRlZ29yaWEtY2FyZGFwaW8vcHJvZHV0b3MtY2F0ZWdvcmlhcy1jYXJkYXBpby9wcm9kdXRvcy1jYXRlZ29yaWFzLWNhcmRhcGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBNEIsa0JBQWtCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN2RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBR3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUdoRSxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUN0SixPQUFPLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSw0RkFBNEYsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFTekosTUFBTSxPQUFPLG1DQUFtQztJQVc5QyxZQUFvQixFQUFvQixFQUM5QixZQUFpQyxFQUNs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SUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkMsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQ3BELFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQyxFQUNDLEdBQUcsQ0FBQyxFQUFFO1lBQ0osSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQzs7Z0lBL0lVLG1DQUFtQztvSEFBbkMsbUNBQW1DLHVFQ3RCaEQsaXpHQTJFTSxvMUREdkRRLENBQUUsYUFBYSxDQUFFOzJGQUVsQixtQ0FBbUM7a0JBTi9DLFNBQVM7K0JBQ0UsaUNBQWlDLGNBRy9CLENBQUUsYUFBYSxDQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBmYWRlQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vYW5pbWF0aW9ucy9hbmltYXRpb25zJztcbmltcG9ydCB7IFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpbywgdmFsaWRhUHJvZHV0b0dydXBvIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2VudGlkYWRlcy9wcm9kdXRvLWdydXBvJztcbmltcG9ydCB7IExhenlUcmlnZ2VyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luZnJhL2xhenktdHJpZ2dlcic7XG5pbXBvcnQgeyBjb25maXJtYUV4Y2x1c2FvIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luZnJhL3NlbGVjYW8tdXRpbHMnO1xuaW1wb3J0IHsgU2VhcmNoU2V0dGluZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9zZXR0aW5ncy9zZWFyY2gtc2V0dGluZyc7XG5pbXBvcnQgeyBBdXRoRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvYXV0aC1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbW9uV2ViU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9jb21tb24td2ViLXNlcnZpY2UnO1xuaW1wb3J0IHsgRm9jdXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2ZvY3VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTY3JlZW5IZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL3NjcmVlbi1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW9BZGREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9wcm9kdXRvLWNhdGVnb3JpYS1jYXJkYXBpby1hZGQtZGlhbG9nL3Byb2R1dG8tY2F0ZWdvcmlhLWNhcmRhcGlvLWFkZC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpb0VkaXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9wcm9kdXRvLWNhdGVnb3JpYS1jYXJkYXBpby1lZGl0LWRpYWxvZy9wcm9kdXRvLWNhdGVnb3JpYS1jYXJkYXBpby1lZGl0LWRpYWxvZy5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ294LXByb2R1dG9zLWNhdGVnb3JpYXMtY2FyZGFwaW8nLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHV0b3MtY2F0ZWdvcmlhcy1jYXJkYXBpby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2R1dG9zLWNhdGVnb3JpYXMtY2FyZGFwaW8uY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogWyBmYWRlQW5pbWF0aW9uIF1cbn0pXG5leHBvcnQgY2xhc3MgUHJvZHV0b3NDYXRlZ29yaWFzQ2FyZGFwaW9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBtb2JpbGU6IGJvb2xlYW47XG4gIGlzQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuICBpdGVtczogUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvW10gPSBbXTtcbiAgc2VsZWN0ZWRJdGVtOiBQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8gfCBudWxsID0gbnVsbDtcbiAgbGF6eVRyaWdnZXIgPSBuZXcgTGF6eVRyaWdnZXIoKCkgPT4geyB0aGlzLmF0dWFsaXphKCk7IH0pO1xuICBhbGxvd0FkZDogYm9vbGVhbjtcbiAgYWxsb3dFeGNsdWlyOiBib29sZWFuO1xuICBzZXR0aW5nID0gbmV3IFNlYXJjaFNldHRpbmcoKTtcbiAgcHJpdmF0ZSBmb2N1czogRm9jdXNTZXJ2aWNlID0gbmV3IEZvY3VzU2VydmljZSgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgd3M6IENvbW1vbldlYlNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIGF1dGg6IEF1dGhEYXRhU2VydmljZSxcbiAgICBwcml2YXRlIHNjcmVlbkhlbHBlcjogU2NyZWVuSGVscGVyU2VydmljZSkge1xuICAgIHRoaXMuYWxsb3dBZGQgPSBhdXRoLnBlcm1pc3NvZXMuYWRtaW5Qcm9kdXRvR3J1cG9BZGQ7XG4gICAgdGhpcy5hbGxvd0V4Y2x1aXIgPSBhdXRoLnBlcm1pc3NvZXMuYWRtaW5Qcm9kdXRvR3J1cG9EZWxldGU7XG4gICAgdGhpcy5tb2JpbGUgPSB0aGlzLnNjcmVlbkhlbHBlci5pc01lZGl1bTtcbiAgICB0aGlzLnNjcmVlbkhlbHBlci5jaGFuZ2VkTWVkaXVtU2NyZWVuLnN1YnNjcmliZSh4ID0+IHRoaXMubW9iaWxlID0geCk7XG5cblxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXR0aW5nLm9yZGVtID0gXCJub21lXCI7XG4gICAgdGhpcy5hdHVhbGl6YSgpO1xuICB9XG5cbiAgb25TZWxlY3RJdGVtKCk6IHZvaWQge1xuXG4gICAgaWYgKCF0aGlzLmZvY3VzLmhhc0luaXQoKSkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZm9jdXMucmVnaXN0ZXJFbGVtZW50QnlJZChcImZvcm0tY29sdW1uXCIpO1xuICAgICAgICB0aGlzLmZvY3VzLnNldEZpcnN0KCk7XG4gICAgICB9LCA1MDApO1xuICAgICAgLy90aGlzLl9mb2N1cy5yZWdpc3RlckVsZW1lbnRCeUlkKFwiZm9ybS1jb2x1bW5cIik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5mb2N1cy5zZXRGaXJzdCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXMudW5yZWdpc3RlckVsZW1lbnRCeUlkKFwiZm9ybS1jb2x1bW5cIik7XG4gIH1cblxuICBhdHVhbGl6YSgpIHtcbiAgICB0aGlzLmlzQnVzeSA9IHRydWU7XG4gICAgdGhpcy53cy5idXNjYVByb2R1dG9DYXRlZ29yaWFDYXJkYXBpbyh0aGlzLnNldHRpbmcpXG4gICAgICAuc3Vic2NyaWJlKHIgPT4ge1xuICAgICAgICB0aGlzLml0ZW1zID0gcjtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBudWxsO1xuICAgICAgICBjb25zb2xlLmluZm8ocik7XG4gICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICB9LCBlcnIgPT4ge1xuICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93SHR0cEVycm9yKGVycik7XG4gICAgICB9KTtcbiAgfVxuXG5cbiAgZXhjbHVpcigpIHsgICBcbiAgICBjb25zdCBpdGVtID0gdGhpcy5zZWxlY3RlZEl0ZW07XG4gICAgaWYgKCFpdGVtKSByZXR1cm47XG4gICAgY29uZmlybWFFeGNsdXNhbyh0aGlzLmRpYWxvZywgXG4gICAgICBgRGVzZWphIHByb3NzZWd1aXIgY29tIGEgZXhjbHVzw6NvIGRvIGdydXBvICR7aXRlbS5ub21lfT9gLFxuICAgICgpID0+XG4gICAgICB7XG4gICAgICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy53cy5kZWxldGVQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8oaXRlbS5pZClcbiAgICAgICAgICAuc3Vic2NyaWJlKHIgPT4ge1xuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhcIk8gZ3J1cG8gZm9pIGV4Y2x1w61kbyBjb20gc3VjZXNzby5cIik7XG4gICAgICAgICAgICB0aGlzLml0ZW1zLnJlbW92ZShpdGVtKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKGVyci5lcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5vdm8oKSB7XG4gICAgbGV0IGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjkwKSArICdweCc7XG4gICAgbGV0IHdpZHRoID0gNTUwICsgJ3B4JztcbiAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgIHdpZHRoID0gKHdpbmRvdy5pbm5lcldpZHRoICogMC45OSkgKyAncHgnO1xuICAgICAgLy9oZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OCkgKyAncHgnO1xuICAgIH1cbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuKFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpb0FkZERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgLy9oZWlnaHQ6IGhlaWdodCxcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLXAwJyxcbiAgICB9KTtcbiAgICBkaWFsb2cuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhcIlNhbHZvIGNvbSBzdWNlc3NvLlwiKTtcbiAgICAgIHRoaXMuYXR1YWxpemEoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFicmVDYWRhc3RybyhpdGVtOiBQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8pIHtcbiAgICBsZXQgaGVpZ2h0ID0gdW5kZWZpbmVkO1xuICAgIGxldCB3aWR0aCA9IDU1MCArICdweCc7XG4gICAgaWYgKHRoaXMubW9iaWxlKSB7XG4gICAgICB3aWR0aCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOTkpICsgJ3B4JztcbiAgICAgIGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjk5KSArICdweCc7XG4gICAgfVxuICAgIGNvbnN0IGRpYWxvZyA9IHRoaXMuZGlhbG9nLm9wZW4oUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvRWRpdERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YTogaXRlbSxcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIC8vaGVpZ2h0OiBoZWlnaHQsXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1wMCcsXG4gICAgfSk7XG4gICAgZGlhbG9nLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0ICE9PSB0cnVlKSByZXR1cm47XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiU2Fsdm8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgdGhpcy5hdHVhbGl6YSgpO1xuICAgIH0pO1xuICB9XG5cbiAgc2FsdmFyKCkgeyAgICBcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJdGVtKSByZXR1cm47XG4gICAgY29uc3QgdmFsTXNnID0gdmFsaWRhUHJvZHV0b0dydXBvKHRoaXMuc2VsZWN0ZWRJdGVtLCB0aGlzLmZvY3VzKTtcbiAgICBpZiAodmFsTXNnKVxuICAgIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2dFcnJvcih2YWxNc2cpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzQnVzeSA9IHRydWU7XG4gICAgdGhpcy53cy5zYXZlUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKHRoaXMuc2VsZWN0ZWRJdGVtKVxuICAgICAgLnN1YnNjcmliZShyID0+IHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhcIlNhbHZvIGNvbSBzdWNlc3NvLlwiKTtcbiAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKGVyci5lcnJvcik7XG4gICAgICAgIH0pO1xuICB9XG59XG4iLCI8b3gtYnVzeS1pbmRpY2F0b3IgW2lzQnVzeV09XCJpc0J1c3lcIj48L294LWJ1c3ktaW5kaWNhdG9yPlxuPGRpdiBjbGFzcz1cInRvb2wtcGFuZWxcIiAqbmdJZj1cIm1vYmlsZVwiPlxuICA8ZGl2IGNsYXNzPVwidG9vbC1zZWN0aW9uXCI+XG4gICAgPGxhYmVsPlBlc3F1aXNhPC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwic2V0dGluZy5mcmFzZVwiIHBsYWNlaG9sZGVyPVwiRGlnaXRlIHVtIHRlcm1vIGRlIGJ1c2NhLi4uXCIgKGlucHV0KT1cImxhenlUcmlnZ2VyLmZpcmUoKVwiPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInRvb2wtc2VjdGlvbiBvcmRlbS1zbTJcIj5cbiAgICA8bGFiZWw+QcOnw7VlczwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cInRvb2wtcm93XCI+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYXR1YWxpemEoKVwiPlxuICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIkF0dWFsaXphclwiPnJlZnJlc2g8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwibm92bygpXCIgKm5nSWY9XCJhbGxvd0FkZFwiPlxuICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIk5vdm8gR3J1cG9cIj5hZGQ8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZXhjbHVpcigpXCIgKm5nSWY9XCJzZWxlY3RlZEl0ZW0gJiYgYWxsb3dFeGNsdWlyXCIgW0BmYWRlXT5cbiAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJFeGNsdWlyIEdydXBvXCI+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInJlc3VsdC1jb250YWluZXJcIiAqbmdJZj1cIml0ZW1zXCI+XG4gIDxkaXYgY2xhc3M9XCJjYXJkcy1jb250YWluZXIgY2FyZHMtY29udGFpbmVyLXNoYWRvd1wiICpuZ0lmPVwibW9iaWxlXCI+XG4gICAgPG94LWl0ZW0tY2FyZCBbbm9tZV09XCJpLm5vbWVcIiAqbmdGb3I9XCJsZXQgaSBvZiBpdGVtc1wiIChjbGljayk9XCJhYnJlQ2FkYXN0cm8oaSlcIj48L294LWl0ZW0tY2FyZD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJsaXN0YWdlbS1kZXNrdG9wLWdyaWRcIiAqbmdJZj1cIiFtb2JpbGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tY29sdW1uLWNvbnRhaW5lciBsaXN0YWdlbS1saXN0LWNvbHVtblwiPlxuICAgICAgPGgzPkdydXBvcyBkZSBQcm9kdXRvczwvaDM+XG4gICAgICA8ZGl2IGNsYXNzPVwidG9vbC1wYW5lbCB0b29sLXBhbmVsLWZsb2F0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sLXNlY3Rpb25cIj5cbiAgICAgICAgICA8bGFiZWw+UGVzcXVpc2E8L2xhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJzZXR0aW5nLmZyYXNlXCIgcGxhY2Vob2xkZXI9XCJEaWdpdGUgdW0gdGVybW8gZGUgYnVzY2EuLi5cIiAoaW5wdXQpPVwibGF6eVRyaWdnZXIuZmlyZSgpXCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbC1zZWN0aW9uIG9yZGVtLXNtMlwiPlxuICAgICAgICAgIDxsYWJlbD5Bw6fDtWVzPC9sYWJlbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbC1yb3dcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJhdHVhbGl6YSgpXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiQXR1YWxpemFyXCI+cmVmcmVzaDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJub3ZvKClcIiAqbmdJZj1cImFsbG93QWRkXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiTm92b1wiPmFkZDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJleGNsdWlyKClcIiAqbmdJZj1cInNlbGVjdGVkSXRlbSAmJiBhbGxvd0V4Y2x1aXJcIiBbQGZhZGVdPlxuICAgICAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIkV4Y2x1aXJcIj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tbGlzdC1jb250YWluZXJcIj5cbiAgICAgICAgPGg0ICpuZ0lmPVwiaXRlbXMubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJuZW5odW0taXRlbS1tc2dcIj5BIGJ1c2NhIG7Do28gcmV0b3Jub3UgcmVzdWx0YWRvczwvaDQ+XG5cbiAgICAgICAgPG94LWl0ZW0tY2FyZCBbbm9tZV09XCJpLm5vbWVcIiAqbmdGb3I9XCJsZXQgaSBvZiBpdGVtc1wiIFtjbGFzcy5zZWxlY3RlZF09XCJpID09PSBzZWxlY3RlZEl0ZW1cIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZEl0ZW0gPSBpO1wiPjwvb3gtaXRlbS1jYXJkPlxuXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tY29sdW1uLWNvbnRhaW5lciBsaXN0YWdlbS1jb2x1bW4tZm9ybVwiPlxuICAgICAgPGgzICpuZ0lmPVwiIXNlbGVjdGVkSXRlbVwiPlNlbGVjaW9uZSB1bSBncnVwbyBubyBsYWRvIGRpcmVpdG88L2gzPlxuICAgICAgPGgzICpuZ0lmPVwic2VsZWN0ZWRJdGVtXCI+e3tzZWxlY3RlZEl0ZW0ubm9tZSB8IHVwcGVyY2FzZX19PC9oMz5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0YWdlbS1mb3JtLWNvbnRhaW5lclwiPlxuICAgICAgICA8b3gtcHJvZHV0by1ncnVwby1mb3JtIFtAZmFkZV0gW21vZGVsXT1cInNlbGVjdGVkSXRlbVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtXCI+XG4gICAgICAgIDwvb3gtcHJvZHV0by1ncnVwby1mb3JtPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0YWdlbS1mb3JtLWFjb2VzXCI+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNhbHZhcigpXCIgbWF0LWZhYiBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cInNlbGVjdGVkSXRlbVwiIHRhYmluZGV4PVwiMjBcIj5cbiAgICAgICAgICA8bWF0LWljb24+c2F2ZTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0b3MtY2F0ZWdvcmlhcy1jYXJkYXBpby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zLWNhdGVnb3JpYS1jYXJkYXBpby9wcm9kdXRvcy1jYXRlZ29yaWFzLWNhcmRhcGlvL3Byb2R1dG9zLWNhdGVnb3JpYXMtY2FyZGFwaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9wcm9kdXRvcy1jYXRlZ29yaWEtY2FyZGFwaW8vcHJvZHV0b3MtY2F0ZWdvcmlhcy1jYXJkYXBpby9wcm9kdXRvcy1jYXRlZ29yaWFzLWNhcmRhcGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBNEIsa0JBQWtCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN2RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBR3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUdoRSxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUN0SixPQUFPLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSw0RkFBNEYsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFTekosTUFBTSxPQUFPLG1DQUFtQztJQVc5QyxZQUFvQixFQUFvQixFQUM5QixZQUFpQyxFQUNs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SUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkMsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQ3BELFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQyxFQUNDLEdBQUcsQ0FBQyxFQUFFO1lBQ0osSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQzs7Z0lBL0lVLG1DQUFtQztvSEFBbkMsbUNBQW1DLHVFQ3RCaEQsaXpHQTJFTSxpMkREdkRRLENBQUUsYUFBYSxDQUFFOzJGQUVsQixtQ0FBbUM7a0JBTi9DLFNBQVM7K0JBQ0UsaUNBQWlDLGNBRy9CLENBQUUsYUFBYSxDQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBmYWRlQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vYW5pbWF0aW9ucy9hbmltYXRpb25zJztcbmltcG9ydCB7IFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpbywgdmFsaWRhUHJvZHV0b0dydXBvIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2VudGlkYWRlcy9wcm9kdXRvLWdydXBvJztcbmltcG9ydCB7IExhenlUcmlnZ2VyIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luZnJhL2xhenktdHJpZ2dlcic7XG5pbXBvcnQgeyBjb25maXJtYUV4Y2x1c2FvIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2luZnJhL3NlbGVjYW8tdXRpbHMnO1xuaW1wb3J0IHsgU2VhcmNoU2V0dGluZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9zZXR0aW5ncy9zZWFyY2gtc2V0dGluZyc7XG5pbXBvcnQgeyBBdXRoRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvYXV0aC1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbW9uV2ViU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9jb21tb24td2ViLXNlcnZpY2UnO1xuaW1wb3J0IHsgRm9jdXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2ZvY3VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTY3JlZW5IZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL3NjcmVlbi1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW9BZGREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9wcm9kdXRvLWNhdGVnb3JpYS1jYXJkYXBpby1hZGQtZGlhbG9nL3Byb2R1dG8tY2F0ZWdvcmlhLWNhcmRhcGlvLWFkZC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpb0VkaXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9wcm9kdXRvLWNhdGVnb3JpYS1jYXJkYXBpby1lZGl0LWRpYWxvZy9wcm9kdXRvLWNhdGVnb3JpYS1jYXJkYXBpby1lZGl0LWRpYWxvZy5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ294LXByb2R1dG9zLWNhdGVnb3JpYXMtY2FyZGFwaW8nLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHV0b3MtY2F0ZWdvcmlhcy1jYXJkYXBpby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2R1dG9zLWNhdGVnb3JpYXMtY2FyZGFwaW8uY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogWyBmYWRlQW5pbWF0aW9uIF1cbn0pXG5leHBvcnQgY2xhc3MgUHJvZHV0b3NDYXRlZ29yaWFzQ2FyZGFwaW9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBtb2JpbGU6IGJvb2xlYW47XG4gIGlzQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuICBpdGVtczogUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvW10gPSBbXTtcbiAgc2VsZWN0ZWRJdGVtOiBQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8gfCBudWxsID0gbnVsbDtcbiAgbGF6eVRyaWdnZXIgPSBuZXcgTGF6eVRyaWdnZXIoKCkgPT4geyB0aGlzLmF0dWFsaXphKCk7IH0pO1xuICBhbGxvd0FkZDogYm9vbGVhbjtcbiAgYWxsb3dFeGNsdWlyOiBib29sZWFuO1xuICBzZXR0aW5nID0gbmV3IFNlYXJjaFNldHRpbmcoKTtcbiAgcHJpdmF0ZSBmb2N1czogRm9jdXNTZXJ2aWNlID0gbmV3IEZvY3VzU2VydmljZSgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgd3M6IENvbW1vbldlYlNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIGF1dGg6IEF1dGhEYXRhU2VydmljZSxcbiAgICBwcml2YXRlIHNjcmVlbkhlbHBlcjogU2NyZWVuSGVscGVyU2VydmljZSkge1xuICAgIHRoaXMuYWxsb3dBZGQgPSBhdXRoLnBlcm1pc3NvZXMuYWRtaW5Qcm9kdXRvR3J1cG9BZGQ7XG4gICAgdGhpcy5hbGxvd0V4Y2x1aXIgPSBhdXRoLnBlcm1pc3NvZXMuYWRtaW5Qcm9kdXRvR3J1cG9EZWxldGU7XG4gICAgdGhpcy5tb2JpbGUgPSB0aGlzLnNjcmVlbkhlbHBlci5pc01lZGl1bTtcbiAgICB0aGlzLnNjcmVlbkhlbHBlci5jaGFuZ2VkTWVkaXVtU2NyZWVuLnN1YnNjcmliZSh4ID0+IHRoaXMubW9iaWxlID0geCk7XG5cblxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXR0aW5nLm9yZGVtID0gXCJub21lXCI7XG4gICAgdGhpcy5hdHVhbGl6YSgpO1xuICB9XG5cbiAgb25TZWxlY3RJdGVtKCk6IHZvaWQge1xuXG4gICAgaWYgKCF0aGlzLmZvY3VzLmhhc0luaXQoKSkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZm9jdXMucmVnaXN0ZXJFbGVtZW50QnlJZChcImZvcm0tY29sdW1uXCIpO1xuICAgICAgICB0aGlzLmZvY3VzLnNldEZpcnN0KCk7XG4gICAgICB9LCA1MDApO1xuICAgICAgLy90aGlzLl9mb2N1cy5yZWdpc3RlckVsZW1lbnRCeUlkKFwiZm9ybS1jb2x1bW5cIik7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5mb2N1cy5zZXRGaXJzdCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXMudW5yZWdpc3RlckVsZW1lbnRCeUlkKFwiZm9ybS1jb2x1bW5cIik7XG4gIH1cblxuICBhdHVhbGl6YSgpIHtcbiAgICB0aGlzLmlzQnVzeSA9IHRydWU7XG4gICAgdGhpcy53cy5idXNjYVByb2R1dG9DYXRlZ29yaWFDYXJkYXBpbyh0aGlzLnNldHRpbmcpXG4gICAgICAuc3Vic2NyaWJlKHIgPT4ge1xuICAgICAgICB0aGlzLml0ZW1zID0gcjtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBudWxsO1xuICAgICAgICBjb25zb2xlLmluZm8ocik7XG4gICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICB9LCBlcnIgPT4ge1xuICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93SHR0cEVycm9yKGVycik7XG4gICAgICB9KTtcbiAgfVxuXG5cbiAgZXhjbHVpcigpIHsgICBcbiAgICBjb25zdCBpdGVtID0gdGhpcy5zZWxlY3RlZEl0ZW07XG4gICAgaWYgKCFpdGVtKSByZXR1cm47XG4gICAgY29uZmlybWFFeGNsdXNhbyh0aGlzLmRpYWxvZywgXG4gICAgICBgRGVzZWphIHByb3NzZWd1aXIgY29tIGEgZXhjbHVzw6NvIGRvIGdydXBvICR7aXRlbS5ub21lfT9gLFxuICAgICgpID0+XG4gICAgICB7XG4gICAgICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy53cy5kZWxldGVQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8oaXRlbS5pZClcbiAgICAgICAgICAuc3Vic2NyaWJlKHIgPT4ge1xuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhcIk8gZ3J1cG8gZm9pIGV4Y2x1w61kbyBjb20gc3VjZXNzby5cIik7XG4gICAgICAgICAgICB0aGlzLml0ZW1zLnJlbW92ZShpdGVtKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKGVyci5lcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5vdm8oKSB7XG4gICAgbGV0IGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjkwKSArICdweCc7XG4gICAgbGV0IHdpZHRoID0gNTUwICsgJ3B4JztcbiAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgIHdpZHRoID0gKHdpbmRvdy5pbm5lcldpZHRoICogMC45OSkgKyAncHgnO1xuICAgICAgLy9oZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OCkgKyAncHgnO1xuICAgIH1cbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuKFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpb0FkZERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgLy9oZWlnaHQ6IGhlaWdodCxcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLXAwJyxcbiAgICB9KTtcbiAgICBkaWFsb2cuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhcIlNhbHZvIGNvbSBzdWNlc3NvLlwiKTtcbiAgICAgIHRoaXMuYXR1YWxpemEoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFicmVDYWRhc3RybyhpdGVtOiBQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8pIHtcbiAgICBsZXQgaGVpZ2h0ID0gdW5kZWZpbmVkO1xuICAgIGxldCB3aWR0aCA9IDU1MCArICdweCc7XG4gICAgaWYgKHRoaXMubW9iaWxlKSB7XG4gICAgICB3aWR0aCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOTkpICsgJ3B4JztcbiAgICAgIGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjk5KSArICdweCc7XG4gICAgfVxuICAgIGNvbnN0IGRpYWxvZyA9IHRoaXMuZGlhbG9nLm9wZW4oUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvRWRpdERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YTogaXRlbSxcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIC8vaGVpZ2h0OiBoZWlnaHQsXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1wMCcsXG4gICAgfSk7XG4gICAgZGlhbG9nLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0ICE9PSB0cnVlKSByZXR1cm47XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiU2Fsdm8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgdGhpcy5hdHVhbGl6YSgpO1xuICAgIH0pO1xuICB9XG5cbiAgc2FsdmFyKCkgeyAgICBcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRJdGVtKSByZXR1cm47XG4gICAgY29uc3QgdmFsTXNnID0gdmFsaWRhUHJvZHV0b0dydXBvKHRoaXMuc2VsZWN0ZWRJdGVtLCB0aGlzLmZvY3VzKTtcbiAgICBpZiAodmFsTXNnKVxuICAgIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2dFcnJvcih2YWxNc2cpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzQnVzeSA9IHRydWU7XG4gICAgdGhpcy53cy5zYXZlUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKHRoaXMuc2VsZWN0ZWRJdGVtKVxuICAgICAgLnN1YnNjcmliZShyID0+IHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhcIlNhbHZvIGNvbSBzdWNlc3NvLlwiKTtcbiAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKGVyci5lcnJvcik7XG4gICAgICAgIH0pO1xuICB9XG59XG4iLCI8b3gtYnVzeS1pbmRpY2F0b3IgW2lzQnVzeV09XCJpc0J1c3lcIj48L294LWJ1c3ktaW5kaWNhdG9yPlxuPGRpdiBjbGFzcz1cInRvb2wtcGFuZWxcIiAqbmdJZj1cIm1vYmlsZVwiPlxuICA8ZGl2IGNsYXNzPVwidG9vbC1zZWN0aW9uXCI+XG4gICAgPGxhYmVsPlBlc3F1aXNhPC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwic2V0dGluZy5mcmFzZVwiIHBsYWNlaG9sZGVyPVwiRGlnaXRlIHVtIHRlcm1vIGRlIGJ1c2NhLi4uXCIgKGlucHV0KT1cImxhenlUcmlnZ2VyLmZpcmUoKVwiPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInRvb2wtc2VjdGlvbiBvcmRlbS1zbTJcIj5cbiAgICA8bGFiZWw+QcOnw7VlczwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cInRvb2wtcm93XCI+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYXR1YWxpemEoKVwiPlxuICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIkF0dWFsaXphclwiPnJlZnJlc2g8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwibm92bygpXCIgKm5nSWY9XCJhbGxvd0FkZFwiPlxuICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIk5vdm8gR3J1cG9cIj5hZGQ8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZXhjbHVpcigpXCIgKm5nSWY9XCJzZWxlY3RlZEl0ZW0gJiYgYWxsb3dFeGNsdWlyXCIgW0BmYWRlXT5cbiAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJFeGNsdWlyIEdydXBvXCI+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInJlc3VsdC1jb250YWluZXJcIiAqbmdJZj1cIml0ZW1zXCI+XG4gIDxkaXYgY2xhc3M9XCJjYXJkcy1jb250YWluZXIgY2FyZHMtY29udGFpbmVyLXNoYWRvd1wiICpuZ0lmPVwibW9iaWxlXCI+XG4gICAgPG94LWl0ZW0tY2FyZCBbbm9tZV09XCJpLm5vbWVcIiAqbmdGb3I9XCJsZXQgaSBvZiBpdGVtc1wiIChjbGljayk9XCJhYnJlQ2FkYXN0cm8oaSlcIj48L294LWl0ZW0tY2FyZD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJsaXN0YWdlbS1kZXNrdG9wLWdyaWRcIiAqbmdJZj1cIiFtb2JpbGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tY29sdW1uLWNvbnRhaW5lciBsaXN0YWdlbS1saXN0LWNvbHVtblwiPlxuICAgICAgPGgzPkdydXBvcyBkZSBQcm9kdXRvczwvaDM+XG4gICAgICA8ZGl2IGNsYXNzPVwidG9vbC1wYW5lbCB0b29sLXBhbmVsLWZsb2F0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sLXNlY3Rpb25cIj5cbiAgICAgICAgICA8bGFiZWw+UGVzcXVpc2E8L2xhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJzZXR0aW5nLmZyYXNlXCIgcGxhY2Vob2xkZXI9XCJEaWdpdGUgdW0gdGVybW8gZGUgYnVzY2EuLi5cIiAoaW5wdXQpPVwibGF6eVRyaWdnZXIuZmlyZSgpXCI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbC1zZWN0aW9uIG9yZGVtLXNtMlwiPlxuICAgICAgICAgIDxsYWJlbD5Bw6fDtWVzPC9sYWJlbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbC1yb3dcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJhdHVhbGl6YSgpXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiQXR1YWxpemFyXCI+cmVmcmVzaDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJub3ZvKClcIiAqbmdJZj1cImFsbG93QWRkXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiTm92b1wiPmFkZDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJleGNsdWlyKClcIiAqbmdJZj1cInNlbGVjdGVkSXRlbSAmJiBhbGxvd0V4Y2x1aXJcIiBbQGZhZGVdPlxuICAgICAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIkV4Y2x1aXJcIj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tbGlzdC1jb250YWluZXJcIj5cbiAgICAgICAgPGg0ICpuZ0lmPVwiaXRlbXMubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJuZW5odW0taXRlbS1tc2dcIj5BIGJ1c2NhIG7Do28gcmV0b3Jub3UgcmVzdWx0YWRvczwvaDQ+XG5cbiAgICAgICAgPG94LWl0ZW0tY2FyZCBbbm9tZV09XCJpLm5vbWVcIiAqbmdGb3I9XCJsZXQgaSBvZiBpdGVtc1wiIFtjbGFzcy5zZWxlY3RlZF09XCJpID09PSBzZWxlY3RlZEl0ZW1cIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZEl0ZW0gPSBpO1wiPjwvb3gtaXRlbS1jYXJkPlxuXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tY29sdW1uLWNvbnRhaW5lciBsaXN0YWdlbS1jb2x1bW4tZm9ybVwiPlxuICAgICAgPGgzICpuZ0lmPVwiIXNlbGVjdGVkSXRlbVwiPlNlbGVjaW9uZSB1bSBncnVwbyBubyBsYWRvIGRpcmVpdG88L2gzPlxuICAgICAgPGgzICpuZ0lmPVwic2VsZWN0ZWRJdGVtXCI+e3tzZWxlY3RlZEl0ZW0ubm9tZSB8IHVwcGVyY2FzZX19PC9oMz5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0YWdlbS1mb3JtLWNvbnRhaW5lclwiPlxuICAgICAgICA8b3gtcHJvZHV0by1ncnVwby1mb3JtIFtAZmFkZV0gW21vZGVsXT1cInNlbGVjdGVkSXRlbVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtXCI+XG4gICAgICAgIDwvb3gtcHJvZHV0by1ncnVwby1mb3JtPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0YWdlbS1mb3JtLWFjb2VzXCI+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNhbHZhcigpXCIgbWF0LWZhYiBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cInNlbGVjdGVkSXRlbVwiIHRhYmluZGV4PVwiMjBcIj5cbiAgICAgICAgICA8bWF0LWljb24+c2F2ZTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
@@ -98,7 +98,7 @@ export class ProdutoGrupoSelecaoDialogComponent {
98
98
  }
99
99
  }
100
100
  ProdutoGrupoSelecaoDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ProdutoGrupoSelecaoDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: i1.MatDialog }, { token: i2.CommonWebService }, { token: i3.NotificationService }, { token: i4.AuthDataService }, { token: i5.ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component });
101
- ProdutoGrupoSelecaoDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: ProdutoGrupoSelecaoDialogComponent, selector: "ox-produto-grupo-selecao-dialog", ngImport: i0, template: "<div class=\"dialog-header\">\n <h2>Sele\u00E7\u00E3o de Grupos</h2>\n </div>\n <div class=\"tool-panel\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input (keydown)=\"nav.onKeyDown($event)\" cdkFocusInitial [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"editar()\" *ngIf=\"selectedItem && allowEdit\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ox-item-card [nome]=\"i.nome\" (click)=\"selectItem(i)\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"></ox-item-card>\n </div>\n <div class=\"dialog-footer\">\n <button mat-button [disabled]=\"selectedItem == undefined\" color=\"primary\" [mat-dialog-close]=\"selectedItem\">CONFIRMAR</button>\n <button mat-button [mat-dialog-close]=\"undefined\">VOLTAR</button>\n </div>\n <ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n ", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i10.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: i11.ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado"] }] });
101
+ ProdutoGrupoSelecaoDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: ProdutoGrupoSelecaoDialogComponent, selector: "ox-produto-grupo-selecao-dialog", ngImport: i0, template: "<div class=\"dialog-header\">\n <h2>Sele\u00E7\u00E3o de Grupos</h2>\n </div>\n <div class=\"tool-panel\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input (keydown)=\"nav.onKeyDown($event)\" cdkFocusInitial [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"editar()\" *ngIf=\"selectedItem && allowEdit\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ox-item-card [nome]=\"i.nome\" (click)=\"selectItem(i)\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"></ox-item-card>\n </div>\n <div class=\"dialog-footer\">\n <button mat-button [disabled]=\"selectedItem == undefined\" color=\"primary\" [mat-dialog-close]=\"selectedItem\">CONFIRMAR</button>\n <button mat-button [mat-dialog-close]=\"undefined\">VOLTAR</button>\n </div>\n <ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n ", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i10.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: i11.ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado", "ownership"] }] });
102
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ProdutoGrupoSelecaoDialogComponent, decorators: [{
103
103
  type: Component,
104
104
  args: [{ selector: 'ox-produto-grupo-selecao-dialog', template: "<div class=\"dialog-header\">\n <h2>Sele\u00E7\u00E3o de Grupos</h2>\n </div>\n <div class=\"tool-panel\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input (keydown)=\"nav.onKeyDown($event)\" cdkFocusInitial [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"editar()\" *ngIf=\"selectedItem && allowEdit\">\n <mat-icon aria-label=\"editar\">edit</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"dialog-content\">\n <ox-item-card [nome]=\"i.nome\" (click)=\"selectItem(i)\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"></ox-item-card>\n </div>\n <div class=\"dialog-footer\">\n <button mat-button [disabled]=\"selectedItem == undefined\" color=\"primary\" [mat-dialog-close]=\"selectedItem\">CONFIRMAR</button>\n <button mat-button [mat-dialog-close]=\"undefined\">VOLTAR</button>\n </div>\n <ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n ", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"] }]
@@ -176,9 +176,9 @@ export class ProdutosGruposComponent {
176
176
  }
177
177
  }
178
178
  ProdutosGruposComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ProdutosGruposComponent, deps: [{ token: i1.CommonWebService }, { token: i2.NotificationService }, { token: i3.MatDialog }, { token: i4.AuthDataService }, { token: i5.ScreenHelperService }], target: i0.ɵɵFactoryTarget.Component });
179
- ProdutosGruposComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: ProdutosGruposComponent, selector: "ox-produtos-grupos", ngImport: i0, template: "<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"tool-panel\" *ngIf=\"mobile\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo Grupo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir Grupo\">delete</mat-icon>\n </button>\n <button mat-icon-button (click)=\"moverGrupo()\" *ngIf=\"selectedItem\" [@fade]>\n <mat-icon aria-label=\"Transferir Grupo\">sync_alt</mat-icon>\n </button>\n </div>\n </div>\n</div>\n<div class=\"result-container\" *ngIf=\"items\">\n <div class=\"cards-container cards-container-shadow\" *ngIf=\"mobile\">\n <ox-item-card [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" (click)=\"abreCadastro(i)\"></ox-item-card>\n </div>\n <div class=\"listagem-desktop-grid\" *ngIf=\"!mobile\">\n <div class=\"listagem-column-container listagem-list-column\">\n <h3>Grupos de Produtos</h3>\n <div class=\"tool-panel tool-panel-float\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n <button mat-icon-button (click)=\"moverGrupo()\" *ngIf=\"selectedItem\" [@fade]>\n <mat-icon aria-label=\"Transferir Grupo\">move_up</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"listagem-list-container\">\n <h4 *ngIf=\"items.length === 0\" class=\"nenhum-item-msg\">A busca n\u00E3o retornou resultados</h4>\n\n <ox-item-card [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"\n (click)=\"selectedItem = i;\"></ox-item-card>\n\n </div>\n </div>\n <div class=\"listagem-column-container listagem-column-form\">\n <h3 *ngIf=\"!selectedItem\">Selecione um grupo no lado direito</h3>\n <h3 *ngIf=\"selectedItem\">{{selectedItem.nome | uppercase}}</h3>\n <div class=\"listagem-form-container\">\n <ox-produto-grupo-form [@fade] [model]=\"selectedItem\" *ngIf=\"selectedItem\">\n </ox-produto-grupo-form>\n </div>\n\n <div class=\"listagem-form-acoes\">\n <button (click)=\"salvar()\" mat-fab color=\"primary\" *ngIf=\"selectedItem\" tabindex=\"20\">\n <mat-icon>save</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>", styles: [":host{height:calc(100% - 48px);display:flex;flex-grow:1;flex-direction:column;background:#F0F0F0}:host{background-color:#fdfdfd}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: i11.ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado"] }, { kind: "component", type: i12.ProdutoGrupoFormComponent, selector: "ox-produto-grupo-form", inputs: ["model"] }, { kind: "pipe", type: i6.UpperCasePipe, name: "uppercase" }], animations: [fadeAnimation] });
179
+ ProdutosGruposComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: ProdutosGruposComponent, selector: "ox-produtos-grupos", ngImport: i0, template: "<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"tool-panel\" *ngIf=\"mobile\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo Grupo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir Grupo\">delete</mat-icon>\n </button>\n <button mat-icon-button (click)=\"moverGrupo()\" *ngIf=\"selectedItem\" [@fade]>\n <mat-icon aria-label=\"Transferir Grupo\">sync_alt</mat-icon>\n </button>\n </div>\n </div>\n</div>\n<div class=\"result-container\" *ngIf=\"items\">\n <div class=\"cards-container cards-container-shadow\" *ngIf=\"mobile\">\n <ox-item-card [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" (click)=\"abreCadastro(i)\"></ox-item-card>\n </div>\n <div class=\"listagem-desktop-grid\" *ngIf=\"!mobile\">\n <div class=\"listagem-column-container listagem-list-column\">\n <h3>Grupos de Produtos</h3>\n <div class=\"tool-panel tool-panel-float\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n <button mat-icon-button (click)=\"moverGrupo()\" *ngIf=\"selectedItem\" [@fade]>\n <mat-icon aria-label=\"Transferir Grupo\">move_up</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"listagem-list-container\">\n <h4 *ngIf=\"items.length === 0\" class=\"nenhum-item-msg\">A busca n\u00E3o retornou resultados</h4>\n\n <ox-item-card [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"\n (click)=\"selectedItem = i;\"></ox-item-card>\n\n </div>\n </div>\n <div class=\"listagem-column-container listagem-column-form\">\n <h3 *ngIf=\"!selectedItem\">Selecione um grupo no lado direito</h3>\n <h3 *ngIf=\"selectedItem\">{{selectedItem.nome | uppercase}}</h3>\n <div class=\"listagem-form-container\">\n <ox-produto-grupo-form [@fade] [model]=\"selectedItem\" *ngIf=\"selectedItem\">\n </ox-produto-grupo-form>\n </div>\n\n <div class=\"listagem-form-acoes\">\n <button (click)=\"salvar()\" mat-fab color=\"primary\" *ngIf=\"selectedItem\" tabindex=\"20\">\n <mat-icon>save</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>", styles: [":host{height:calc(100% - 48px);display:flex;flex-grow:1;flex-direction:column;background:#F0F0F0}:host{background-color:#fdfdfd}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }, { kind: "component", type: i11.ItemCardComponent, selector: "ox-item-card", inputs: ["nome", "codigo", "star", "cloud", "desativado", "ownership"] }, { kind: "component", type: i12.ProdutoGrupoFormComponent, selector: "ox-produto-grupo-form", inputs: ["model"] }, { kind: "pipe", type: i6.UpperCasePipe, name: "uppercase" }], animations: [fadeAnimation] });
180
180
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ProdutosGruposComponent, decorators: [{
181
181
  type: Component,
182
182
  args: [{ selector: 'ox-produtos-grupos', animations: [fadeAnimation], template: "<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"tool-panel\" *ngIf=\"mobile\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo Grupo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir Grupo\">delete</mat-icon>\n </button>\n <button mat-icon-button (click)=\"moverGrupo()\" *ngIf=\"selectedItem\" [@fade]>\n <mat-icon aria-label=\"Transferir Grupo\">sync_alt</mat-icon>\n </button>\n </div>\n </div>\n</div>\n<div class=\"result-container\" *ngIf=\"items\">\n <div class=\"cards-container cards-container-shadow\" *ngIf=\"mobile\">\n <ox-item-card [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" (click)=\"abreCadastro(i)\"></ox-item-card>\n </div>\n <div class=\"listagem-desktop-grid\" *ngIf=\"!mobile\">\n <div class=\"listagem-column-container listagem-list-column\">\n <h3>Grupos de Produtos</h3>\n <div class=\"tool-panel tool-panel-float\">\n <div class=\"tool-section\">\n <label>Pesquisa</label>\n <div class=\"search-input-container\">\n <input [(ngModel)]=\"setting.frase\" placeholder=\"Digite um termo de busca...\" (input)=\"lazyTrigger.fire()\">\n </div>\n </div>\n <div class=\"tool-section ordem-sm2\">\n <label>A\u00E7\u00F5es</label>\n <div class=\"tool-row\">\n <button mat-icon-button (click)=\"atualiza()\">\n <mat-icon aria-label=\"Atualizar\">refresh</mat-icon>\n </button>\n <button mat-icon-button (click)=\"novo()\" *ngIf=\"allowAdd\">\n <mat-icon aria-label=\"Novo\">add</mat-icon>\n </button>\n <button mat-icon-button (click)=\"excluir()\" *ngIf=\"selectedItem && allowExcluir\" [@fade]>\n <mat-icon aria-label=\"Excluir\">delete</mat-icon>\n </button>\n <button mat-icon-button (click)=\"moverGrupo()\" *ngIf=\"selectedItem\" [@fade]>\n <mat-icon aria-label=\"Transferir Grupo\">move_up</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"listagem-list-container\">\n <h4 *ngIf=\"items.length === 0\" class=\"nenhum-item-msg\">A busca n\u00E3o retornou resultados</h4>\n\n <ox-item-card [cloud]=\"i.enviadoPC\" [nome]=\"i.nome\" *ngFor=\"let i of items\" [class.selected]=\"i === selectedItem\"\n (click)=\"selectedItem = i;\"></ox-item-card>\n\n </div>\n </div>\n <div class=\"listagem-column-container listagem-column-form\">\n <h3 *ngIf=\"!selectedItem\">Selecione um grupo no lado direito</h3>\n <h3 *ngIf=\"selectedItem\">{{selectedItem.nome | uppercase}}</h3>\n <div class=\"listagem-form-container\">\n <ox-produto-grupo-form [@fade] [model]=\"selectedItem\" *ngIf=\"selectedItem\">\n </ox-produto-grupo-form>\n </div>\n\n <div class=\"listagem-form-acoes\">\n <button (click)=\"salvar()\" mat-fab color=\"primary\" *ngIf=\"selectedItem\" tabindex=\"20\">\n <mat-icon>save</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>", styles: [":host{height:calc(100% - 48px);display:flex;flex-grow:1;flex-direction:column;background:#F0F0F0}:host{background-color:#fdfdfd}\n"] }]
183
183
  }], ctorParameters: function () { return [{ type: i1.CommonWebService }, { type: i2.NotificationService }, { type: i3.MatDialog }, { type: i4.AuthDataService }, { type: i5.ScreenHelperService }]; } });
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0b3MtZ3J1cG9zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL294cGktbmdsaWIvc3JjL2xpYi9jYWRhc3Ryb3MvcHJvZHV0b3MtZ3J1cG9zL3Byb2R1dG9zLWdydXBvcy9wcm9kdXRvcy1ncnVwb3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9wcm9kdXRvcy1ncnVwb3MvcHJvZHV0b3MtZ3J1cG9zL3Byb2R1dG9zLWdydXBvcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUd4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJaEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDL0YsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDaEgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUW5ILE1BQU0sT0FBTyx1QkFBdUI7SUFXbEMsWUFBb0IsRUFBb0IsRUFDOUIsWUFBaUMsRUFDbEMsTUFBaUIsRUFDeEIsSUFBcUIsRUFDYixZQUFpQztRQUp2QixPQUFFLEdB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QUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RDLElBQUksTUFBTSxLQUFLLFNBQVM7Z0JBQUUsT0FBTztZQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O29IQXhLVSx1QkFBdUI7d0dBQXZCLHVCQUF1QiwwREN2QnBDLGt0SEFpRk0sbzFERDVEUSxDQUFDLGFBQWEsQ0FBQzsyRkFFaEIsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLG9CQUFvQixjQUdsQixDQUFDLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgZmFkZUFuaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uL2FuaW1hdGlvbnMvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBQcm9kdXRvR3J1cG8sIHZhbGlkYVByb2R1dG9HcnVwbyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0by1ncnVwbyc7XG5pbXBvcnQgeyBMYXp5VHJpZ2dlciB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9pbmZyYS9sYXp5LXRyaWdnZXInO1xuaW1wb3J0IHsgY29uZmlybWFFeGNsdXNhbyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9pbmZyYS9zZWxlY2FvLXV0aWxzJztcbmltcG9ydCB7IFNlYXJjaFNldHRpbmcgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmcnO1xuaW1wb3J0IHsgQXV0aERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2F1dGgtZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbldlYlNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvY29tbW9uLXdlYi1zZXJ2aWNlJztcbmltcG9ydCB7IEZvY3VzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9mb2N1cy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NyZWVuSGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9zY3JlZW4taGVscGVyLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBNb3ZlckdydXBvRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vbW92ZXItZ3J1cG8tZGlhbG9nL21vdmVyLWdydXBvLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHV0b0dydXBvQWRkRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZHV0by1ncnVwby1hZGQtZGlhbG9nL3Byb2R1dG8tZ3J1cG8tYWRkLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHV0b0dydXBvRWRpdERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL3Byb2R1dG8tZ3J1cG8tZWRpdC1kaWFsb2cvcHJvZHV0by1ncnVwby1lZGl0LWRpYWxvZy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdveC1wcm9kdXRvcy1ncnVwb3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHV0b3MtZ3J1cG9zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZHV0b3MtZ3J1cG9zLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtmYWRlQW5pbWF0aW9uXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdXRvc0dydXBvc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG1vYmlsZTogYm9vbGVhbjtcbiAgaXNCdXN5OiBib29sZWFuID0gZmFsc2U7XG4gIGl0ZW1zOiBQcm9kdXRvR3J1cG9bXSA9IFtdO1xuICBzZWxlY3RlZEl0ZW06IFByb2R1dG9HcnVwbyB8IG51bGwgPSBudWxsO1xuICBsYXp5VHJpZ2dlciA9IG5ldyBMYXp5VHJpZ2dlcigoKSA9PiB7IHRoaXMuYXR1YWxpemEoKTsgfSk7XG4gIGFsbG93QWRkOiBib29sZWFuO1xuICBhbGxvd0V4Y2x1aXI6IGJvb2xlYW47XG4gIHNldHRpbmcgPSBuZXcgU2VhcmNoU2V0dGluZygpO1xuICBwcml2YXRlIGZvY3VzOiBGb2N1c1NlcnZpY2UgPSBuZXcgRm9jdXNTZXJ2aWNlKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB3czogQ29tbW9uV2ViU2VydmljZSxcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgYXV0aDogQXV0aERhdGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2NyZWVuSGVscGVyOiBTY3JlZW5IZWxwZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy5hbGxvd0FkZCA9IGF1dGgucGVybWlzc29lcy5hZG1pblByb2R1dG9HcnVwb0FkZDtcbiAgICB0aGlzLmFsbG93RXhjbHVpciA9IGF1dGgucGVybWlzc29lcy5hZG1pblByb2R1dG9HcnVwb0RlbGV0ZTtcbiAgICB0aGlzLm1vYmlsZSA9IHRoaXMuc2NyZWVuSGVscGVyLmlzTWVkaXVtO1xuICAgIHRoaXMuc2NyZWVuSGVscGVyLmNoYW5nZWRNZWRpdW1TY3JlZW4uc3Vic2NyaWJlKHggPT4gdGhpcy5tb2JpbGUgPSB4KTtcblxuXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldHRpbmcub3JkZW0gPSBcIm5vbWVcIjtcbiAgICB0aGlzLmF0dWFsaXphKCk7XG4gIH1cblxuICBvblNlbGVjdEl0ZW0oKTogdm9pZCB7XG5cbiAgICBpZiAoIXRoaXMuZm9jdXMuaGFzSW5pdCgpKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5mb2N1cy5yZWdpc3RlckVsZW1lbnRCeUlkKFwiZm9ybS1jb2x1bW5cIik7XG4gICAgICAgIHRoaXMuZm9jdXMuc2V0Rmlyc3QoKTtcbiAgICAgIH0sIDUwMCk7XG4gICAgICAvL3RoaXMuX2ZvY3VzLnJlZ2lzdGVyRWxlbWVudEJ5SWQoXCJmb3JtLWNvbHVtblwiKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmZvY3VzLnNldEZpcnN0KCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1cy51bnJlZ2lzdGVyRWxlbWVudEJ5SWQoXCJmb3JtLWNvbHVtblwiKTtcbiAgfVxuXG4gIGF0dWFsaXphKCkge1xuICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICB0aGlzLndzLmJ1c2NhUHJvZHV0b0dydXBvKHRoaXMuc2V0dGluZylcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiByID0+IHtcbiAgICAgICAgICB0aGlzLml0ZW1zID0gcjtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IG51bGw7XG4gICAgICAgICAgY29uc29sZS5pbmZvKHIpO1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd0h0dHBFcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG5cbiAgZXhjbHVpcigpIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5zZWxlY3RlZEl0ZW07XG4gICAgaWYgKCFpdGVtKSByZXR1cm47XG4gICAgY29uZmlybWFFeGNsdXNhbyh0aGlzLmRpYWxvZyxcbiAgICAgIGBEZXNlamEgcHJvc3NlZ3VpciBjb20gYSBleGNsdXPDo28gZG8gZ3J1cG8gJHtpdGVtLm5vbWV9P2AsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy53cy5kZWxldGVQcm9kdXRvR3J1cG8oaXRlbS5pZClcbiAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IHIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiTyBncnVwbyBmb2kgZXhjbHXDrWRvIGNvbSBzdWNlc3NvLlwiKTtcbiAgICAgICAgICAgICAgdGhpcy5pdGVtcy5yZW1vdmUoaXRlbSk7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gbnVsbDtcbiAgICAgICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhlcnIuZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBub3ZvKCkge1xuICAgIGxldCBoZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45MCkgKyAncHgnO1xuICAgIGxldCB3aWR0aCA9IDU1MCArICdweCc7XG4gICAgaWYgKHRoaXMubW9iaWxlKSB7XG4gICAgICB3aWR0aCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOTkpICsgJ3B4JztcbiAgICAgIC8vaGVpZ2h0ID0gKHdpbmRvdy5pbm5lckhlaWdodCAqIDAuOTgpICsgJ3B4JztcbiAgICB9XG4gICAgY29uc3QgZGlhbG9nID0gdGhpcy5kaWFsb2cub3BlbihQcm9kdXRvR3J1cG9BZGREaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIC8vaGVpZ2h0OiBoZWlnaHQsXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1wMCcsXG4gICAgfSk7XG4gICAgZGlhbG9nLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coXCJTYWx2byBjb20gc3VjZXNzby5cIik7XG4gICAgICB0aGlzLmF0dWFsaXphKCk7XG4gICAgfSk7XG4gIH1cblxuICBhYnJlQ2FkYXN0cm8oaXRlbTogUHJvZHV0b0dydXBvKSB7XG4gICAgbGV0IGhlaWdodCA9IHVuZGVmaW5lZDtcbiAgICBsZXQgd2lkdGggPSA1NTAgKyAncHgnO1xuICAgIGlmICh0aGlzLm1vYmlsZSkge1xuICAgICAgd2lkdGggPSAod2luZG93LmlubmVyV2lkdGggKiAwLjk5KSArICdweCc7XG4gICAgICBoZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OSkgKyAncHgnO1xuICAgIH1cbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuKFByb2R1dG9HcnVwb0VkaXREaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IGl0ZW0sXG4gICAgICB3aWR0aDogd2lkdGgsXG4gICAgICAvL2hlaWdodDogaGVpZ2h0LFxuICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgIHBhbmVsQ2xhc3M6ICdkaWFsb2ctcDAnLFxuICAgIH0pO1xuICAgIGRpYWxvZy5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgcmV0dXJuO1xuICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhcIlNhbHZvIGNvbSBzdWNlc3NvLlwiKTtcbiAgICAgIHRoaXMuYXR1YWxpemEoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNhbHZhcigpIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5zZWxlY3RlZEl0ZW07XG4gICAgaWYgKCFpdGVtKSByZXR1cm47XG4gICAgY29uc3QgdmFsTXNnID0gdmFsaWRhUHJvZHV0b0dydXBvKGl0ZW0sIHRoaXMuZm9jdXMpO1xuICAgIGlmICh2YWxNc2cpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2dFcnJvcih2YWxNc2cpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzQnVzeSA9IHRydWU7XG4gICAgdGhpcy53cy5zYXZlUHJvZHV0b0dydXBvKGl0ZW0pXG4gICAgICAuc3Vic2NyaWJlKHIgPT4ge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiU2Fsdm8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coZXJyLmVycm9yKTtcbiAgICAgICAgfSk7XG4gIH1cblxuXG4gIG1vdmVyR3J1cG8oKSB7XG4gICAgbGV0IGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjkwKSArICdweCc7XG4gICAgbGV0IHdpZHRoID0gNTUwICsgJ3B4JztcbiAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgIHdpZHRoID0gKHdpbmRvdy5pbm5lcldpZHRoICogMC45OSkgKyAncHgnO1xuICAgICAgLy9oZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OCkgKyAncHgnO1xuICAgIH1cbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuKE1vdmVyR3J1cG9EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIGRhdGE6IHRoaXMuc2VsZWN0ZWRJdGVtLFxuICAgICAgLy9oZWlnaHQ6IGhlaWdodCxcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLXAwJyxcbiAgICB9KTtcbiAgICBkaWFsb2cuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhcIlNhbHZvIGNvbSBzdWNlc3NvLlwiKTtcbiAgICAgIHRoaXMuYXR1YWxpemEoKTtcbiAgICB9KTtcbiAgfVxuXG59XG4iLCI8b3gtYnVzeS1pbmRpY2F0b3IgW2lzQnVzeV09XCJpc0J1c3lcIj48L294LWJ1c3ktaW5kaWNhdG9yPlxuPGRpdiBjbGFzcz1cInRvb2wtcGFuZWxcIiAqbmdJZj1cIm1vYmlsZVwiPlxuICA8ZGl2IGNsYXNzPVwidG9vbC1zZWN0aW9uXCI+XG4gICAgPGxhYmVsPlBlc3F1aXNhPC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwic2V0dGluZy5mcmFzZVwiIHBsYWNlaG9sZGVyPVwiRGlnaXRlIHVtIHRlcm1vIGRlIGJ1c2NhLi4uXCIgKGlucHV0KT1cImxhenlUcmlnZ2VyLmZpcmUoKVwiPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInRvb2wtc2VjdGlvbiBvcmRlbS1zbTJcIj5cbiAgICA8bGFiZWw+QcOnw7VlczwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cInRvb2wtcm93XCI+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYXR1YWxpemEoKVwiPlxuICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIkF0dWFsaXphclwiPnJlZnJlc2g8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwibm92bygpXCIgKm5nSWY9XCJhbGxvd0FkZFwiPlxuICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIk5vdm8gR3J1cG9cIj5hZGQ8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZXhjbHVpcigpXCIgKm5nSWY9XCJzZWxlY3RlZEl0ZW0gJiYgYWxsb3dFeGNsdWlyXCIgW0BmYWRlXT5cbiAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJFeGNsdWlyIEdydXBvXCI+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm1vdmVyR3J1cG8oKVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtXCIgW0BmYWRlXT5cbiAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJUcmFuc2ZlcmlyIEdydXBvXCI+c3luY19hbHQ8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicmVzdWx0LWNvbnRhaW5lclwiICpuZ0lmPVwiaXRlbXNcIj5cbiAgPGRpdiBjbGFzcz1cImNhcmRzLWNvbnRhaW5lciBjYXJkcy1jb250YWluZXItc2hhZG93XCIgKm5nSWY9XCJtb2JpbGVcIj5cbiAgICA8b3gtaXRlbS1jYXJkIFtjbG91ZF09XCJpLmVudmlhZG9QQ1wiIFtub21lXT1cImkubm9tZVwiICpuZ0Zvcj1cImxldCBpIG9mIGl0ZW1zXCIgKGNsaWNrKT1cImFicmVDYWRhc3RybyhpKVwiPjwvb3gtaXRlbS1jYXJkPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImxpc3RhZ2VtLWRlc2t0b3AtZ3JpZFwiICpuZ0lmPVwiIW1vYmlsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsaXN0YWdlbS1jb2x1bW4tY29udGFpbmVyIGxpc3RhZ2VtLWxpc3QtY29sdW1uXCI+XG4gICAgICA8aDM+R3J1cG9zIGRlIFByb2R1dG9zPC9oMz5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0b29sLXBhbmVsIHRvb2wtcGFuZWwtZmxvYXRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvb2wtc2VjdGlvblwiPlxuICAgICAgICAgIDxsYWJlbD5QZXNxdWlzYTwvbGFiZWw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1pbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInNldHRpbmcuZnJhc2VcIiBwbGFjZWhvbGRlcj1cIkRpZ2l0ZSB1bSB0ZXJtbyBkZSBidXNjYS4uLlwiIChpbnB1dCk9XCJsYXp5VHJpZ2dlci5maXJlKClcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sLXNlY3Rpb24gb3JkZW0tc20yXCI+XG4gICAgICAgICAgPGxhYmVsPkHDp8O1ZXM8L2xhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sLXJvd1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImF0dWFsaXphKClcIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJBdHVhbGl6YXJcIj5yZWZyZXNoPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm5vdm8oKVwiICpuZ0lmPVwiYWxsb3dBZGRcIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJOb3ZvXCI+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImV4Y2x1aXIoKVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtICYmIGFsbG93RXhjbHVpclwiIFtAZmFkZV0+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiRXhjbHVpclwiPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJtb3ZlckdydXBvKClcIiAqbmdJZj1cInNlbGVjdGVkSXRlbVwiIFtAZmFkZV0+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiVHJhbnNmZXJpciBHcnVwb1wiPm1vdmVfdXA8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tbGlzdC1jb250YWluZXJcIj5cbiAgICAgICAgPGg0ICpuZ0lmPVwiaXRlbXMubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJuZW5odW0taXRlbS1tc2dcIj5BIGJ1c2NhIG7Do28gcmV0b3Jub3UgcmVzdWx0YWRvczwvaDQ+XG5cbiAgICAgICAgPG94LWl0ZW0tY2FyZCBbY2xvdWRdPVwiaS5lbnZpYWRvUENcIiBbbm9tZV09XCJpLm5vbWVcIiAqbmdGb3I9XCJsZXQgaSBvZiBpdGVtc1wiIFtjbGFzcy5zZWxlY3RlZF09XCJpID09PSBzZWxlY3RlZEl0ZW1cIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZEl0ZW0gPSBpO1wiPjwvb3gtaXRlbS1jYXJkPlxuXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tY29sdW1uLWNvbnRhaW5lciBsaXN0YWdlbS1jb2x1bW4tZm9ybVwiPlxuICAgICAgPGgzICpuZ0lmPVwiIXNlbGVjdGVkSXRlbVwiPlNlbGVjaW9uZSB1bSBncnVwbyBubyBsYWRvIGRpcmVpdG88L2gzPlxuICAgICAgPGgzICpuZ0lmPVwic2VsZWN0ZWRJdGVtXCI+e3tzZWxlY3RlZEl0ZW0ubm9tZSB8IHVwcGVyY2FzZX19PC9oMz5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0YWdlbS1mb3JtLWNvbnRhaW5lclwiPlxuICAgICAgICA8b3gtcHJvZHV0by1ncnVwby1mb3JtIFtAZmFkZV0gW21vZGVsXT1cInNlbGVjdGVkSXRlbVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtXCI+XG4gICAgICAgIDwvb3gtcHJvZHV0by1ncnVwby1mb3JtPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0YWdlbS1mb3JtLWFjb2VzXCI+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNhbHZhcigpXCIgbWF0LWZhYiBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cInNlbGVjdGVkSXRlbVwiIHRhYmluZGV4PVwiMjBcIj5cbiAgICAgICAgICA8bWF0LWljb24+c2F2ZTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0b3MtZ3J1cG9zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL294cGktbmdsaWIvc3JjL2xpYi9jYWRhc3Ryb3MvcHJvZHV0b3MtZ3J1cG9zL3Byb2R1dG9zLWdydXBvcy9wcm9kdXRvcy1ncnVwb3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL2NhZGFzdHJvcy9wcm9kdXRvcy1ncnVwb3MvcHJvZHV0b3MtZ3J1cG9zL3Byb2R1dG9zLWdydXBvcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUd4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJaEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDL0YsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDaEgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUW5ILE1BQU0sT0FBTyx1QkFBdUI7SUFXbEMsWUFBb0IsRUFBb0IsRUFDOUIsWUFBaUMsRUFDbEMsTUFBaUIsRUFDeEIsSUFBcUIsRUFDYixZQUFpQztRQUp2QixPQUFFLEdB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QUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RDLElBQUksTUFBTSxLQUFLLFNBQVM7Z0JBQUUsT0FBTztZQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O29IQXhLVSx1QkFBdUI7d0dBQXZCLHVCQUF1QiwwREN2QnBDLGt0SEFpRk0saTJERDVEUSxDQUFDLGFBQWEsQ0FBQzsyRkFFaEIsdUJBQXVCO2tCQU5uQyxTQUFTOytCQUNFLG9CQUFvQixjQUdsQixDQUFDLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgZmFkZUFuaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uL2FuaW1hdGlvbnMvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBQcm9kdXRvR3J1cG8sIHZhbGlkYVByb2R1dG9HcnVwbyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0by1ncnVwbyc7XG5pbXBvcnQgeyBMYXp5VHJpZ2dlciB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9pbmZyYS9sYXp5LXRyaWdnZXInO1xuaW1wb3J0IHsgY29uZmlybWFFeGNsdXNhbyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9pbmZyYS9zZWxlY2FvLXV0aWxzJztcbmltcG9ydCB7IFNlYXJjaFNldHRpbmcgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmcnO1xuaW1wb3J0IHsgQXV0aERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL2F1dGgtZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbldlYlNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvY29tbW9uLXdlYi1zZXJ2aWNlJztcbmltcG9ydCB7IEZvY3VzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9mb2N1cy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NyZWVuSGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9zY3JlZW4taGVscGVyLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBNb3ZlckdydXBvRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vbW92ZXItZ3J1cG8tZGlhbG9nL21vdmVyLWdydXBvLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHV0b0dydXBvQWRkRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vcHJvZHV0by1ncnVwby1hZGQtZGlhbG9nL3Byb2R1dG8tZ3J1cG8tYWRkLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHV0b0dydXBvRWRpdERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL3Byb2R1dG8tZ3J1cG8tZWRpdC1kaWFsb2cvcHJvZHV0by1ncnVwby1lZGl0LWRpYWxvZy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdveC1wcm9kdXRvcy1ncnVwb3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHV0b3MtZ3J1cG9zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZHV0b3MtZ3J1cG9zLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtmYWRlQW5pbWF0aW9uXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdXRvc0dydXBvc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG1vYmlsZTogYm9vbGVhbjtcbiAgaXNCdXN5OiBib29sZWFuID0gZmFsc2U7XG4gIGl0ZW1zOiBQcm9kdXRvR3J1cG9bXSA9IFtdO1xuICBzZWxlY3RlZEl0ZW06IFByb2R1dG9HcnVwbyB8IG51bGwgPSBudWxsO1xuICBsYXp5VHJpZ2dlciA9IG5ldyBMYXp5VHJpZ2dlcigoKSA9PiB7IHRoaXMuYXR1YWxpemEoKTsgfSk7XG4gIGFsbG93QWRkOiBib29sZWFuO1xuICBhbGxvd0V4Y2x1aXI6IGJvb2xlYW47XG4gIHNldHRpbmcgPSBuZXcgU2VhcmNoU2V0dGluZygpO1xuICBwcml2YXRlIGZvY3VzOiBGb2N1c1NlcnZpY2UgPSBuZXcgRm9jdXNTZXJ2aWNlKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB3czogQ29tbW9uV2ViU2VydmljZSxcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgYXV0aDogQXV0aERhdGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2NyZWVuSGVscGVyOiBTY3JlZW5IZWxwZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy5hbGxvd0FkZCA9IGF1dGgucGVybWlzc29lcy5hZG1pblByb2R1dG9HcnVwb0FkZDtcbiAgICB0aGlzLmFsbG93RXhjbHVpciA9IGF1dGgucGVybWlzc29lcy5hZG1pblByb2R1dG9HcnVwb0RlbGV0ZTtcbiAgICB0aGlzLm1vYmlsZSA9IHRoaXMuc2NyZWVuSGVscGVyLmlzTWVkaXVtO1xuICAgIHRoaXMuc2NyZWVuSGVscGVyLmNoYW5nZWRNZWRpdW1TY3JlZW4uc3Vic2NyaWJlKHggPT4gdGhpcy5tb2JpbGUgPSB4KTtcblxuXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldHRpbmcub3JkZW0gPSBcIm5vbWVcIjtcbiAgICB0aGlzLmF0dWFsaXphKCk7XG4gIH1cblxuICBvblNlbGVjdEl0ZW0oKTogdm9pZCB7XG5cbiAgICBpZiAoIXRoaXMuZm9jdXMuaGFzSW5pdCgpKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5mb2N1cy5yZWdpc3RlckVsZW1lbnRCeUlkKFwiZm9ybS1jb2x1bW5cIik7XG4gICAgICAgIHRoaXMuZm9jdXMuc2V0Rmlyc3QoKTtcbiAgICAgIH0sIDUwMCk7XG4gICAgICAvL3RoaXMuX2ZvY3VzLnJlZ2lzdGVyRWxlbWVudEJ5SWQoXCJmb3JtLWNvbHVtblwiKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmZvY3VzLnNldEZpcnN0KCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1cy51bnJlZ2lzdGVyRWxlbWVudEJ5SWQoXCJmb3JtLWNvbHVtblwiKTtcbiAgfVxuXG4gIGF0dWFsaXphKCkge1xuICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICB0aGlzLndzLmJ1c2NhUHJvZHV0b0dydXBvKHRoaXMuc2V0dGluZylcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiByID0+IHtcbiAgICAgICAgICB0aGlzLml0ZW1zID0gcjtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IG51bGw7XG4gICAgICAgICAgY29uc29sZS5pbmZvKHIpO1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd0h0dHBFcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG5cbiAgZXhjbHVpcigpIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5zZWxlY3RlZEl0ZW07XG4gICAgaWYgKCFpdGVtKSByZXR1cm47XG4gICAgY29uZmlybWFFeGNsdXNhbyh0aGlzLmRpYWxvZyxcbiAgICAgIGBEZXNlamEgcHJvc3NlZ3VpciBjb20gYSBleGNsdXPDo28gZG8gZ3J1cG8gJHtpdGVtLm5vbWV9P2AsXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy53cy5kZWxldGVQcm9kdXRvR3J1cG8oaXRlbS5pZClcbiAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IHIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiTyBncnVwbyBmb2kgZXhjbHXDrWRvIGNvbSBzdWNlc3NvLlwiKTtcbiAgICAgICAgICAgICAgdGhpcy5pdGVtcy5yZW1vdmUoaXRlbSk7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gbnVsbDtcbiAgICAgICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhlcnIuZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBub3ZvKCkge1xuICAgIGxldCBoZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45MCkgKyAncHgnO1xuICAgIGxldCB3aWR0aCA9IDU1MCArICdweCc7XG4gICAgaWYgKHRoaXMubW9iaWxlKSB7XG4gICAgICB3aWR0aCA9ICh3aW5kb3cuaW5uZXJXaWR0aCAqIDAuOTkpICsgJ3B4JztcbiAgICAgIC8vaGVpZ2h0ID0gKHdpbmRvdy5pbm5lckhlaWdodCAqIDAuOTgpICsgJ3B4JztcbiAgICB9XG4gICAgY29uc3QgZGlhbG9nID0gdGhpcy5kaWFsb2cub3BlbihQcm9kdXRvR3J1cG9BZGREaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIC8vaGVpZ2h0OiBoZWlnaHQsXG4gICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1wMCcsXG4gICAgfSk7XG4gICAgZGlhbG9nLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coXCJTYWx2byBjb20gc3VjZXNzby5cIik7XG4gICAgICB0aGlzLmF0dWFsaXphKCk7XG4gICAgfSk7XG4gIH1cblxuICBhYnJlQ2FkYXN0cm8oaXRlbTogUHJvZHV0b0dydXBvKSB7XG4gICAgbGV0IGhlaWdodCA9IHVuZGVmaW5lZDtcbiAgICBsZXQgd2lkdGggPSA1NTAgKyAncHgnO1xuICAgIGlmICh0aGlzLm1vYmlsZSkge1xuICAgICAgd2lkdGggPSAod2luZG93LmlubmVyV2lkdGggKiAwLjk5KSArICdweCc7XG4gICAgICBoZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OSkgKyAncHgnO1xuICAgIH1cbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuKFByb2R1dG9HcnVwb0VkaXREaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IGl0ZW0sXG4gICAgICB3aWR0aDogd2lkdGgsXG4gICAgICAvL2hlaWdodDogaGVpZ2h0LFxuICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgIHBhbmVsQ2xhc3M6ICdkaWFsb2ctcDAnLFxuICAgIH0pO1xuICAgIGRpYWxvZy5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCAhPT0gdHJ1ZSkgcmV0dXJuO1xuICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhcIlNhbHZvIGNvbSBzdWNlc3NvLlwiKTtcbiAgICAgIHRoaXMuYXR1YWxpemEoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNhbHZhcigpIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5zZWxlY3RlZEl0ZW07XG4gICAgaWYgKCFpdGVtKSByZXR1cm47XG4gICAgY29uc3QgdmFsTXNnID0gdmFsaWRhUHJvZHV0b0dydXBvKGl0ZW0sIHRoaXMuZm9jdXMpO1xuICAgIGlmICh2YWxNc2cpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2dFcnJvcih2YWxNc2cpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzQnVzeSA9IHRydWU7XG4gICAgdGhpcy53cy5zYXZlUHJvZHV0b0dydXBvKGl0ZW0pXG4gICAgICAuc3Vic2NyaWJlKHIgPT4ge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiU2Fsdm8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coZXJyLmVycm9yKTtcbiAgICAgICAgfSk7XG4gIH1cblxuXG4gIG1vdmVyR3J1cG8oKSB7XG4gICAgbGV0IGhlaWdodCA9ICh3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjkwKSArICdweCc7XG4gICAgbGV0IHdpZHRoID0gNTUwICsgJ3B4JztcbiAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgIHdpZHRoID0gKHdpbmRvdy5pbm5lcldpZHRoICogMC45OSkgKyAncHgnO1xuICAgICAgLy9oZWlnaHQgPSAod2luZG93LmlubmVySGVpZ2h0ICogMC45OCkgKyAncHgnO1xuICAgIH1cbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuKE1vdmVyR3J1cG9EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIGRhdGE6IHRoaXMuc2VsZWN0ZWRJdGVtLFxuICAgICAgLy9oZWlnaHQ6IGhlaWdodCxcbiAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICBwYW5lbENsYXNzOiAnZGlhbG9nLXAwJyxcbiAgICB9KTtcbiAgICBkaWFsb2cuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhcIlNhbHZvIGNvbSBzdWNlc3NvLlwiKTtcbiAgICAgIHRoaXMuYXR1YWxpemEoKTtcbiAgICB9KTtcbiAgfVxuXG59XG4iLCI8b3gtYnVzeS1pbmRpY2F0b3IgW2lzQnVzeV09XCJpc0J1c3lcIj48L294LWJ1c3ktaW5kaWNhdG9yPlxuPGRpdiBjbGFzcz1cInRvb2wtcGFuZWxcIiAqbmdJZj1cIm1vYmlsZVwiPlxuICA8ZGl2IGNsYXNzPVwidG9vbC1zZWN0aW9uXCI+XG4gICAgPGxhYmVsPlBlc3F1aXNhPC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0LWNvbnRhaW5lclwiPlxuICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwic2V0dGluZy5mcmFzZVwiIHBsYWNlaG9sZGVyPVwiRGlnaXRlIHVtIHRlcm1vIGRlIGJ1c2NhLi4uXCIgKGlucHV0KT1cImxhenlUcmlnZ2VyLmZpcmUoKVwiPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInRvb2wtc2VjdGlvbiBvcmRlbS1zbTJcIj5cbiAgICA8bGFiZWw+QcOnw7VlczwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cInRvb2wtcm93XCI+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYXR1YWxpemEoKVwiPlxuICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIkF0dWFsaXphclwiPnJlZnJlc2g8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwibm92bygpXCIgKm5nSWY9XCJhbGxvd0FkZFwiPlxuICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIk5vdm8gR3J1cG9cIj5hZGQ8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZXhjbHVpcigpXCIgKm5nSWY9XCJzZWxlY3RlZEl0ZW0gJiYgYWxsb3dFeGNsdWlyXCIgW0BmYWRlXT5cbiAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJFeGNsdWlyIEdydXBvXCI+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm1vdmVyR3J1cG8oKVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtXCIgW0BmYWRlXT5cbiAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJUcmFuc2ZlcmlyIEdydXBvXCI+c3luY19hbHQ8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicmVzdWx0LWNvbnRhaW5lclwiICpuZ0lmPVwiaXRlbXNcIj5cbiAgPGRpdiBjbGFzcz1cImNhcmRzLWNvbnRhaW5lciBjYXJkcy1jb250YWluZXItc2hhZG93XCIgKm5nSWY9XCJtb2JpbGVcIj5cbiAgICA8b3gtaXRlbS1jYXJkIFtjbG91ZF09XCJpLmVudmlhZG9QQ1wiIFtub21lXT1cImkubm9tZVwiICpuZ0Zvcj1cImxldCBpIG9mIGl0ZW1zXCIgKGNsaWNrKT1cImFicmVDYWRhc3RybyhpKVwiPjwvb3gtaXRlbS1jYXJkPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImxpc3RhZ2VtLWRlc2t0b3AtZ3JpZFwiICpuZ0lmPVwiIW1vYmlsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsaXN0YWdlbS1jb2x1bW4tY29udGFpbmVyIGxpc3RhZ2VtLWxpc3QtY29sdW1uXCI+XG4gICAgICA8aDM+R3J1cG9zIGRlIFByb2R1dG9zPC9oMz5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0b29sLXBhbmVsIHRvb2wtcGFuZWwtZmxvYXRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRvb2wtc2VjdGlvblwiPlxuICAgICAgICAgIDxsYWJlbD5QZXNxdWlzYTwvbGFiZWw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1pbnB1dC1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInNldHRpbmcuZnJhc2VcIiBwbGFjZWhvbGRlcj1cIkRpZ2l0ZSB1bSB0ZXJtbyBkZSBidXNjYS4uLlwiIChpbnB1dCk9XCJsYXp5VHJpZ2dlci5maXJlKClcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sLXNlY3Rpb24gb3JkZW0tc20yXCI+XG4gICAgICAgICAgPGxhYmVsPkHDp8O1ZXM8L2xhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sLXJvd1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImF0dWFsaXphKClcIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJBdHVhbGl6YXJcIj5yZWZyZXNoPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm5vdm8oKVwiICpuZ0lmPVwiYWxsb3dBZGRcIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJOb3ZvXCI+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImV4Y2x1aXIoKVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtICYmIGFsbG93RXhjbHVpclwiIFtAZmFkZV0+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiRXhjbHVpclwiPmRlbGV0ZTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJtb3ZlckdydXBvKClcIiAqbmdJZj1cInNlbGVjdGVkSXRlbVwiIFtAZmFkZV0+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiVHJhbnNmZXJpciBHcnVwb1wiPm1vdmVfdXA8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tbGlzdC1jb250YWluZXJcIj5cbiAgICAgICAgPGg0ICpuZ0lmPVwiaXRlbXMubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJuZW5odW0taXRlbS1tc2dcIj5BIGJ1c2NhIG7Do28gcmV0b3Jub3UgcmVzdWx0YWRvczwvaDQ+XG5cbiAgICAgICAgPG94LWl0ZW0tY2FyZCBbY2xvdWRdPVwiaS5lbnZpYWRvUENcIiBbbm9tZV09XCJpLm5vbWVcIiAqbmdGb3I9XCJsZXQgaSBvZiBpdGVtc1wiIFtjbGFzcy5zZWxlY3RlZF09XCJpID09PSBzZWxlY3RlZEl0ZW1cIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZEl0ZW0gPSBpO1wiPjwvb3gtaXRlbS1jYXJkPlxuXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdGFnZW0tY29sdW1uLWNvbnRhaW5lciBsaXN0YWdlbS1jb2x1bW4tZm9ybVwiPlxuICAgICAgPGgzICpuZ0lmPVwiIXNlbGVjdGVkSXRlbVwiPlNlbGVjaW9uZSB1bSBncnVwbyBubyBsYWRvIGRpcmVpdG88L2gzPlxuICAgICAgPGgzICpuZ0lmPVwic2VsZWN0ZWRJdGVtXCI+e3tzZWxlY3RlZEl0ZW0ubm9tZSB8IHVwcGVyY2FzZX19PC9oMz5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0YWdlbS1mb3JtLWNvbnRhaW5lclwiPlxuICAgICAgICA8b3gtcHJvZHV0by1ncnVwby1mb3JtIFtAZmFkZV0gW21vZGVsXT1cInNlbGVjdGVkSXRlbVwiICpuZ0lmPVwic2VsZWN0ZWRJdGVtXCI+XG4gICAgICAgIDwvb3gtcHJvZHV0by1ncnVwby1mb3JtPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0YWdlbS1mb3JtLWFjb2VzXCI+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNhbHZhcigpXCIgbWF0LWZhYiBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cInNlbGVjdGVkSXRlbVwiIHRhYmluZGV4PVwiMjBcIj5cbiAgICAgICAgICA8bWF0LWljb24+c2F2ZTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19