@stiunb/unb-lib-components 18.0.27 → 18.0.29

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 (38) hide show
  1. package/README.md +1 -0
  2. package/esm2022/lib/services/unb-auth.service.mjs +4 -4
  3. package/esm2022/lib/unb-mensagem/unb-mensagem.component.mjs +4 -4
  4. package/esm2022/lib/unb-mensagem/unb-mensagem.module.mjs +5 -5
  5. package/esm2022/lib/unb-mensagem/unb-mensagem.service.mjs +4 -4
  6. package/esm2022/lib/unb-nav-bar/unb-nav-bar.component.mjs +4 -4
  7. package/esm2022/lib/unb-nav-bar/unb-nav-bar.module.mjs +5 -5
  8. package/esm2022/lib/unb-pessoa/unb-pessoa-crud/unb-pessoa-crud.component.mjs +100 -0
  9. package/esm2022/lib/unb-pessoa/unb-pessoa-crud-modal/unb-pessoa-crud-modal.component.mjs +144 -0
  10. package/esm2022/lib/unb-pessoa/unb-pessoa-email-form/unb-pessoa-email-form.mjs +4 -4
  11. package/esm2022/lib/unb-pessoa/unb-pessoa-email-form/unb-pessoa-email-list.mjs +4 -4
  12. package/esm2022/lib/unb-pessoa/unb-pessoa-endereco-form/unb-pessoa-endereco-form.mjs +24 -7
  13. package/esm2022/lib/unb-pessoa/unb-pessoa-endereco-form/unb-pessoa-endereco-list.mjs +4 -4
  14. package/esm2022/lib/unb-pessoa/unb-pessoa-form/unb-pessoa-form.component.mjs +54 -178
  15. package/esm2022/lib/unb-pessoa/unb-pessoa-form-dialog/unb-pessoa-form-dialog.component.mjs +60 -0
  16. package/esm2022/lib/unb-pessoa/unb-pessoa-models/unb-pessoa-config.model.mjs +35 -0
  17. package/esm2022/lib/unb-pessoa/unb-pessoa-pesquisar/unb-pessoa-pesquisar.component.mjs +32 -191
  18. package/esm2022/lib/unb-pessoa/unb-pessoa-telefone-form/unb-pessoa-telefone-form.mjs +4 -4
  19. package/esm2022/lib/unb-pessoa/unb-pessoa-telefone-form/unb-pessoa-telefone-list.mjs +4 -4
  20. package/esm2022/lib/unb-pessoa/unb-pessoa.module.mjs +61 -11
  21. package/esm2022/lib/unb-pessoa/unb-pessoa.service.mjs +280 -28
  22. package/esm2022/lib/unb-usuario/oidc-decoded-token.mjs +1 -1
  23. package/esm2022/lib/unb-usuario/oidc-user-data.mjs +1 -1
  24. package/esm2022/lib/unb-usuario/unb-usuario.component.mjs +4 -4
  25. package/esm2022/lib/unb-usuario/unb-usuario.module.mjs +5 -5
  26. package/esm2022/public-api.mjs +6 -2
  27. package/fesm2022/stiunb-unb-lib-components.mjs +1104 -769
  28. package/fesm2022/stiunb-unb-lib-components.mjs.map +1 -1
  29. package/lib/unb-pessoa/unb-pessoa-crud/unb-pessoa-crud.component.d.ts +33 -0
  30. package/lib/unb-pessoa/unb-pessoa-crud-modal/unb-pessoa-crud-modal.component.d.ts +39 -0
  31. package/lib/unb-pessoa/unb-pessoa-form/unb-pessoa-form.component.d.ts +13 -29
  32. package/lib/unb-pessoa/unb-pessoa-form-dialog/unb-pessoa-form-dialog.component.d.ts +21 -0
  33. package/lib/unb-pessoa/unb-pessoa-models/unb-pessoa-config.model.d.ts +26 -0
  34. package/lib/unb-pessoa/unb-pessoa-pesquisar/unb-pessoa-pesquisar.component.d.ts +3 -23
  35. package/lib/unb-pessoa/unb-pessoa.module.d.ts +51 -32
  36. package/lib/unb-pessoa/unb-pessoa.service.d.ts +23 -3
  37. package/package.json +1 -1
  38. package/public-api.d.ts +5 -1
@@ -0,0 +1,144 @@
1
+ import { booleanAttribute, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { UnbPessoaModel } from '../unb-pessoa-models/unb-pessoa.model';
3
+ import { UnbPessoaFormConfig, UnbPessoaPesquisaConfig } from '../unb-pessoa-models/unb-pessoa-config.model';
4
+ import { UnbPessoaFormDialogComponent } from '../unb-pessoa-form-dialog/unb-pessoa-form-dialog.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/material/snack-bar";
7
+ import * as i2 from "../unb-pessoa.service";
8
+ import * as i3 from "../../unb-mensagem/unb-mensagem.service";
9
+ import * as i4 from "@angular/material/dialog";
10
+ import * as i5 from "@angular/common";
11
+ import * as i6 from "@angular/material/icon";
12
+ import * as i7 from "@angular/material/button";
13
+ import * as i8 from "../unb-pessoa-pesquisar/unb-pessoa-pesquisar.component";
14
+ /**
15
+ * Esse é um componetne Wrapper utilitário. Ele encapsula a logica de procurar e se nao achar iniciar o formulario de cadastro em um modal.
16
+ * Também, se achar, ele permite alterar a pessoa encontrada.
17
+ * O SGI usa para cadastro de Inquilino no formulario. La tem a pesquisa de Pessoa, se nao achar, abre o formulario de cadastro em modal. Assim, nao precisa ir em outra tela pra cadastrar
18
+ * Eh possivel configurar se quer mostrar o botao de Novo (se nao achar) e Alterar (se achar). No SGI, por exemplo eu soh deixo incluir novo, pq nao faz sentido alterar a pessoa no meio do cadastro do inquilino.
19
+ */
20
+ export class UnbPessoaCrudModalComponent {
21
+ constructor(snackBar, pessoaService, alertService, dialog) {
22
+ this.snackBar = snackBar;
23
+ this.pessoaService = pessoaService;
24
+ this.alertService = alertService;
25
+ this.dialog = dialog;
26
+ this.isLoading = false;
27
+ // Configuração do componente
28
+ this.pesquisaConfig = new UnbPessoaPesquisaConfig();
29
+ this.incluirBotaoNovo = true; // se pesquisou e nao achou, mostra botao novo
30
+ this.incluirBotaoAlterar = true; // se pesquisou e achou, mostra botao alterar
31
+ this.pessoaEmitted = new EventEmitter();
32
+ this.pessoaSelecionada = new UnbPessoaModel();
33
+ this.mostrarBotaoNovo = false;
34
+ this.formConfig = new UnbPessoaFormConfig(); // o formCOnfig a gente monta conforme o pesquisaConfig
35
+ }
36
+ ngOnInit() {
37
+ if (this.pesquisaConfig.token) {
38
+ this.pessoaService.setToken(this.pesquisaConfig.token);
39
+ }
40
+ if (this.pesquisaConfig.backendURL) {
41
+ this.pessoaService.setBackendUrl(this.pesquisaConfig.backendURL);
42
+ }
43
+ else {
44
+ this.openSnackBar('Backend URL não informada na configuração do componente UnbPessoaCrudComponent!');
45
+ }
46
+ this.formConfig = new UnbPessoaFormConfig();
47
+ this.formConfig.pessoa = this.pessoaSelecionada;
48
+ this.formConfig.backendURL = this.pesquisaConfig.backendURL;
49
+ this.formConfig.token = this.pesquisaConfig.token;
50
+ }
51
+ pessoaPesquisaRecebida(pessoa) {
52
+ // 1. Verifica se a pessoa é nula ou se é um objeto "vazio" (sem ID e sem documentos)
53
+ const isVazio = !pessoa || (!pessoa.codigoPessoa && // Não tem ID
54
+ !pessoa.cpf && // Não tem CPF
55
+ !pessoa.cnpj && // Não tem CNPJ
56
+ !pessoa.passaporte // Não tem Passaporte
57
+ );
58
+ if (isVazio) {
59
+ // Se for vazio, limpamos a seleção para esconder o formulário
60
+ // (O *ngIf="pessoaSelecionada" no HTML vai remover o componente da tela)
61
+ this.pessoaSelecionada = new UnbPessoaModel(); // ou undefined, dependendo da tipagem
62
+ this.mostrarBotaoNovo = false;
63
+ }
64
+ else {
65
+ // Se tiver algum dado (CPF digitado ou pessoa encontrada), atualiza
66
+ this.pessoaSelecionada = pessoa;
67
+ if (this.pessoaSelecionada.codigoPessoa) {
68
+ // joga pra cima pra falar que uma pessoa foi encontrada
69
+ this.pessoaEmitted.emit(pessoa);
70
+ }
71
+ else if (this.incluirBotaoNovo) {
72
+ this.mostrarBotaoNovo = true;
73
+ }
74
+ }
75
+ // 2. Atualiza a configuração do formulário
76
+ // Importante: Só tenta acessar 'pessoa' se formConfig existir
77
+ if (this.formConfig) {
78
+ // Usamos o spread operator (...) para forçar o Angular a detectar a mudança,
79
+ // caso o componente filho use ngOnChanges
80
+ this.formConfig = {
81
+ ...this.formConfig,
82
+ pessoa: this.pessoaSelecionada || new UnbPessoaModel() // Evita passar null pro form se não quiser
83
+ };
84
+ }
85
+ }
86
+ limparSelecao() {
87
+ this.pessoaSelecionada = new UnbPessoaModel(); // ou new UnbPessoaModel()
88
+ // Talvez precise avisar o componente filho para limpar o input também
89
+ }
90
+ getDocumentoFormatado(pessoa) {
91
+ if (pessoa.cpf && pessoa.cpf.trim() !== '') {
92
+ return pessoa.cpf;
93
+ }
94
+ else if (pessoa.cnpj && pessoa.cnpj.trim() !== '') {
95
+ return pessoa.cnpj;
96
+ }
97
+ else if (pessoa.passaporte && pessoa.passaporte.trim() !== '') {
98
+ return pessoa.passaporte;
99
+ }
100
+ }
101
+ openModal() {
102
+ const dialogRef = this.dialog.open(UnbPessoaFormDialogComponent, {
103
+ // 1. Defina um painel de classe para controlar tudo no CSS
104
+ panelClass: 'dialog-pessoa-fullscreen',
105
+ // 2. Largura padrão para Desktop (o CSS vai sobrescrever no mobile)
106
+ width: '90vw',
107
+ maxWidth: '1200px', // Trava para não ficar gigante em monitores ultrawide
108
+ // 3. Altura automática ou máxima (CSS controla o esticar)
109
+ maxHeight: '95vh',
110
+ data: {
111
+ config: this.formConfig
112
+ },
113
+ autoFocus: 'first-tabbable'
114
+ });
115
+ dialogRef.afterClosed().subscribe((pessoaSalva) => {
116
+ if (pessoaSalva?.codigoPessoa) {
117
+ this.pessoaEmitted.emit(pessoaSalva);
118
+ }
119
+ });
120
+ }
121
+ openSnackBar(message) {
122
+ this.snackBar.open(message, 'x', {
123
+ duration: 5000,
124
+ });
125
+ }
126
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbPessoaCrudModalComponent, deps: [{ token: i1.MatSnackBar }, { token: i2.UnBPessoaService }, { token: i3.UnbMensagemService }, { token: i4.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
127
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.1.2", type: UnbPessoaCrudModalComponent, selector: "lib-unb-pessoa-crud-modal", inputs: { pesquisaConfig: "pesquisaConfig", incluirBotaoNovo: ["incluirBotaoNovo", "incluirBotaoNovo", booleanAttribute], incluirBotaoAlterar: ["incluirBotaoAlterar", "incluirBotaoAlterar", booleanAttribute] }, outputs: { pessoaEmitted: "pessoaEmitted" }, ngImport: i0, template: "<div class=\"search-wrapper\" [class.disabled-wrapper]=\"isLoading\">\r\n\r\n <div class=\"search-input-area\">\r\n <lib-unb-pessoa-pesquisar \r\n [config]=\"pesquisaConfig\" \r\n (pessoaEmitted)=\"pessoaPesquisaRecebida($event)\">\r\n </lib-unb-pessoa-pesquisar>\r\n </div>\r\n\r\n <div class=\"search-button-area\">\r\n\r\n <button *ngIf=\"incluirBotaoNovo && mostrarBotaoNovo && !pessoaSelecionada.codigoPessoa\" \r\n mat-stroked-button \r\n color=\"accent\"\r\n (click)=\"openModal()\" \r\n type=\"button\" \r\n style=\"white-space: nowrap;\">\r\n <mat-icon>add</mat-icon> Incluir Nova Pessoa\r\n </button>\r\n\r\n <div *ngIf=\"incluirBotaoAlterar && pessoaSelecionada.codigoPessoa\" class=\"mini-card-selected\">\r\n <div class=\"card-avatar\"><mat-icon>person</mat-icon></div>\r\n <div class=\"card-info\">\r\n <div class=\"card-name\">{{ pessoaSelecionada.nome }}</div>\r\n <div class=\"card-doc\">{{ getDocumentoFormatado(pessoaSelecionada) }}</div>\r\n </div>\r\n <div class=\"card-actions\">\r\n <button mat-stroked-button color=\"primary\" (click)=\"openModal()\" type=\"button\">\r\n <mat-icon>edit</mat-icon> Editar\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: ["::ng-deep .dialog-pessoa-fullscreen .mat-mdc-dialog-container{min-width:600px}@media (max-width: 768px){::ng-deep .dialog-pessoa-fullscreen{max-width:100vw!important;width:100vw!important;height:100vh!important}::ng-deep .dialog-pessoa-fullscreen .mat-mdc-dialog-container{max-width:100vw!important;height:100%!important;max-height:100vh!important}::ng-deep .dialog-pessoa-fullscreen .mat-mdc-dialog-surface{border-radius:0!important;height:100%!important;display:flex;flex-direction:column}}.form-container{display:flex;flex-wrap:wrap;align-items:baseline;gap:16px;width:100%}.mini-card-selected{display:flex;align-items:center;gap:12px;background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:8px 16px;box-shadow:0 1px 3px #00000014;white-space:nowrap;margin-bottom:22px}.card-avatar{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background-color:#f5f5f5;border-radius:50%;color:#757575}.card-info{display:flex;flex-direction:column;line-height:1.3;margin-right:8px}.card-name{font-weight:600;font-size:14px;color:#333;max-width:200px;overflow:hidden;text-overflow:ellipsis}.card-doc{font-size:12px;color:#666}.card-actions{flex-shrink:0}@media (max-width: 600px){.mini-card-selected{width:100%;justify-content:space-between}.card-name{max-width:140px}}.search-wrapper{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;width:100%}.search-input-area{flex:1;min-width:250px;max-width:400px}.search-button-area{flex-shrink:0;margin-bottom:22px}@media (max-width: 600px){.search-input-area{max-width:100%}.search-button-area{width:100%;margin-bottom:0}.search-button-area button{width:100%}}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.UnbPessoaPesquisarComponent, selector: "lib-unb-pessoa-pesquisar", inputs: ["config"], outputs: ["pessoaEmitted", "isLoadingChange"] }] }); }
128
+ }
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbPessoaCrudModalComponent, decorators: [{
130
+ type: Component,
131
+ args: [{ selector: 'lib-unb-pessoa-crud-modal', standalone: false, template: "<div class=\"search-wrapper\" [class.disabled-wrapper]=\"isLoading\">\r\n\r\n <div class=\"search-input-area\">\r\n <lib-unb-pessoa-pesquisar \r\n [config]=\"pesquisaConfig\" \r\n (pessoaEmitted)=\"pessoaPesquisaRecebida($event)\">\r\n </lib-unb-pessoa-pesquisar>\r\n </div>\r\n\r\n <div class=\"search-button-area\">\r\n\r\n <button *ngIf=\"incluirBotaoNovo && mostrarBotaoNovo && !pessoaSelecionada.codigoPessoa\" \r\n mat-stroked-button \r\n color=\"accent\"\r\n (click)=\"openModal()\" \r\n type=\"button\" \r\n style=\"white-space: nowrap;\">\r\n <mat-icon>add</mat-icon> Incluir Nova Pessoa\r\n </button>\r\n\r\n <div *ngIf=\"incluirBotaoAlterar && pessoaSelecionada.codigoPessoa\" class=\"mini-card-selected\">\r\n <div class=\"card-avatar\"><mat-icon>person</mat-icon></div>\r\n <div class=\"card-info\">\r\n <div class=\"card-name\">{{ pessoaSelecionada.nome }}</div>\r\n <div class=\"card-doc\">{{ getDocumentoFormatado(pessoaSelecionada) }}</div>\r\n </div>\r\n <div class=\"card-actions\">\r\n <button mat-stroked-button color=\"primary\" (click)=\"openModal()\" type=\"button\">\r\n <mat-icon>edit</mat-icon> Editar\r\n </button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: ["::ng-deep .dialog-pessoa-fullscreen .mat-mdc-dialog-container{min-width:600px}@media (max-width: 768px){::ng-deep .dialog-pessoa-fullscreen{max-width:100vw!important;width:100vw!important;height:100vh!important}::ng-deep .dialog-pessoa-fullscreen .mat-mdc-dialog-container{max-width:100vw!important;height:100%!important;max-height:100vh!important}::ng-deep .dialog-pessoa-fullscreen .mat-mdc-dialog-surface{border-radius:0!important;height:100%!important;display:flex;flex-direction:column}}.form-container{display:flex;flex-wrap:wrap;align-items:baseline;gap:16px;width:100%}.mini-card-selected{display:flex;align-items:center;gap:12px;background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:8px 16px;box-shadow:0 1px 3px #00000014;white-space:nowrap;margin-bottom:22px}.card-avatar{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background-color:#f5f5f5;border-radius:50%;color:#757575}.card-info{display:flex;flex-direction:column;line-height:1.3;margin-right:8px}.card-name{font-weight:600;font-size:14px;color:#333;max-width:200px;overflow:hidden;text-overflow:ellipsis}.card-doc{font-size:12px;color:#666}.card-actions{flex-shrink:0}@media (max-width: 600px){.mini-card-selected{width:100%;justify-content:space-between}.card-name{max-width:140px}}.search-wrapper{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;width:100%}.search-input-area{flex:1;min-width:250px;max-width:400px}.search-button-area{flex-shrink:0;margin-bottom:22px}@media (max-width: 600px){.search-input-area{max-width:100%}.search-button-area{width:100%;margin-bottom:0}.search-button-area button{width:100%}}\n"] }]
132
+ }], ctorParameters: () => [{ type: i1.MatSnackBar }, { type: i2.UnBPessoaService }, { type: i3.UnbMensagemService }, { type: i4.MatDialog }], propDecorators: { pesquisaConfig: [{
133
+ type: Input,
134
+ args: [{ required: true }]
135
+ }], incluirBotaoNovo: [{
136
+ type: Input,
137
+ args: [{ transform: booleanAttribute }]
138
+ }], incluirBotaoAlterar: [{
139
+ type: Input,
140
+ args: [{ transform: booleanAttribute }]
141
+ }], pessoaEmitted: [{
142
+ type: Output
143
+ }] } });
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iLXBlc3NvYS1jcnVkLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuYi1saWItY29tcG9uZW50cy9zcmMvbGliL3VuYi1wZXNzb2EvdW5iLXBlc3NvYS1jcnVkLW1vZGFsL3VuYi1wZXNzb2EtY3J1ZC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmItbGliLWNvbXBvbmVudHMvc3JjL2xpYi91bmItcGVzc29hL3VuYi1wZXNzb2EtY3J1ZC1tb2RhbC91bmItcGVzc29hLWNydWQtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFJNUcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNERBQTRELENBQUM7Ozs7Ozs7Ozs7QUFFMUc7Ozs7O0VBS0U7QUFPRixNQUFNLE9BQU8sMkJBQTJCO0lBY3RDLFlBQW9CLFFBQXFCLEVBQVUsYUFBK0IsRUFBVSxZQUFnQyxFQUFTLE1BQWlCO1FBQWxJLGFBQVEsR0FBUixRQUFRLENBQWE7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBWnRKLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsNkJBQTZCO1FBQ0YsbUJBQWMsR0FBNEIsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBQzNELHFCQUFnQixHQUFHLElBQUksQ0FBQyxDQUFDLDhD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LElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDL0IsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXBIVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixnSkFNbEIsZ0JBQWdCLHVFQUNoQixnQkFBZ0IsMEVDN0J0QyxpMUNBa0NNOzsyRkRaTywyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0UsMkJBQTJCLGNBQ3pCLEtBQUs7d0tBU1UsY0FBYztzQkFBeEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2UsZ0JBQWdCO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLG1CQUFtQjtzQkFBMUQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDNUIsYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBVbmJQZXNzb2FNb2RlbCB9IGZyb20gJy4uL3VuYi1wZXNzb2EtbW9kZWxzL3VuYi1wZXNzb2EubW9kZWwnO1xyXG5pbXBvcnQgeyBVbkJQZXNzb2FTZXJ2aWNlIH0gZnJvbSAnLi4vdW5iLXBlc3NvYS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVW5iUGVzc29hRm9ybUNvbmZpZywgVW5iUGVzc29hUGVzcXVpc2FDb25maWcgfSBmcm9tICcuLi91bmItcGVzc29hLW1vZGVscy91bmItcGVzc29hLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IFVuYk1lbnNhZ2VtU2VydmljZSB9IGZyb20gJy4uLy4uL3VuYi1tZW5zYWdlbS91bmItbWVuc2FnZW0uc2VydmljZSc7XHJcbmltcG9ydCB7IFVuYlBlc3NvYUZvcm1Db21wb25lbnQgfSBmcm9tICcuLi91bmItcGVzc29hLWZvcm0vdW5iLXBlc3NvYS1mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFVuYlBlc3NvYUZvcm1EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi91bmItcGVzc29hLWZvcm0tZGlhbG9nL3VuYi1wZXNzb2EtZm9ybS1kaWFsb2cuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBFc3NlIMOpIHVtIGNvbXBvbmV0bmUgV3JhcHBlciB1dGlsaXTDoXJpby4gRWxlIGVuY2Fwc3VsYSBhIGxvZ2ljYSBkZSBwcm9jdXJhciBlIHNlIG5hbyBhY2hhciBpbmljaWFyIG8gZm9ybXVsYXJpbyBkZSBjYWRhc3RybyBlbSB1bSBtb2RhbC4gXHJcbiAqIFRhbWLDqW0sIHNlIGFjaGFyLCBlbGUgcGVybWl0ZSBhbHRlcmFyIGEgcGVzc29hIGVuY29udHJhZGEuXHJcbiAqIE8gU0dJIHVzYSBwYXJhIGNhZGFzdHJvIGRlIElucXVpbGlubyBubyBmb3JtdWxhcmlvLiBMYSB0ZW0gYSBwZXNxdWlzYSBkZSBQZXNzb2EsIHNlIG5hbyBhY2hhciwgYWJyZSBvIGZvcm11bGFyaW8gZGUgY2FkYXN0cm8gZW0gbW9kYWwuIEFzc2ltLCBuYW8gcHJlY2lzYSBpciBlbSBvdXRyYSB0ZWxhIHByYSBjYWRhc3RyYXJcclxuICogRWggcG9zc2l2ZWwgY29uZmlndXJhciBzZSBxdWVyIG1vc3RyYXIgbyBib3RhbyBkZSBOb3ZvIChzZSBuYW8gYWNoYXIpIGUgQWx0ZXJhciAoc2UgYWNoYXIpLiBObyBTR0ksIHBvciBleGVtcGxvIGV1IHNvaCBkZWl4byBpbmNsdWlyIG5vdm8sIHBxIG5hbyBmYXogc2VudGlkbyBhbHRlcmFyIGEgcGVzc29hIG5vIG1laW8gZG8gY2FkYXN0cm8gZG8gaW5xdWlsaW5vLlxyXG4qL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi11bmItcGVzc29hLWNydWQtbW9kYWwnLFxyXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91bmItcGVzc29hLWNydWQtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi91bmItcGVzc29hLWNydWQtbW9kYWwuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFVuYlBlc3NvYUNydWRNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAvLyBDb25maWd1cmHDp8OjbyBkbyBjb21wb25lbnRlXHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcGVzcXVpc2FDb25maWc6IFVuYlBlc3NvYVBlc3F1aXNhQ29uZmlnID0gbmV3IFVuYlBlc3NvYVBlc3F1aXNhQ29uZmlnKCk7XHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGluY2x1aXJCb3Rhb05vdm8gPSB0cnVlOyAvLyBzZSBwZXNxdWlzb3UgZSBuYW8gYWNob3UsIG1vc3RyYSBib3RhbyBub3ZvXHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGluY2x1aXJCb3Rhb0FsdGVyYXIgPSB0cnVlOyAvLyBzZSBwZXNxdWlzb3UgZSBhY2hvdSwgbW9zdHJhIGJvdGFvIGFsdGVyYXJcclxuICBAT3V0cHV0KCkgcGVzc29hRW1pdHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VW5iUGVzc29hTW9kZWw+KCk7XHJcblxyXG4gIHBlc3NvYVNlbGVjaW9uYWRhID0gbmV3IFVuYlBlc3NvYU1vZGVsKCk7XHJcbiAgbW9zdHJhckJvdGFvTm92byA9IGZhbHNlO1xyXG4gIGZvcm1Db25maWcgPSBuZXcgVW5iUGVzc29hRm9ybUNvbmZpZygpOyAvLyBvIGZvcm1DT25maWcgYSBnZW50ZSBtb250YSBjb25mb3JtZSBvIHBlc3F1aXNhQ29uZmlnXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLCBwcml2YXRlIHBlc3NvYVNlcnZpY2U6IFVuQlBlc3NvYVNlcnZpY2UsIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBVbmJNZW5zYWdlbVNlcnZpY2UsIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZykge1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucGVzcXVpc2FDb25maWcudG9rZW4pIHtcclxuICAgICAgdGhpcy5wZXNzb2FTZXJ2aWNlLnNldFRva2VuKHRoaXMucGVzcXVpc2FDb25maWcudG9rZW4pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnBlc3F1aXNhQ29uZmlnLmJhY2tlbmRVUkwpIHtcclxuICAgICAgdGhpcy5wZXNzb2FTZXJ2aWNlLnNldEJhY2tlbmRVcmwodGhpcy5wZXNxdWlzYUNvbmZpZy5iYWNrZW5kVVJMKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3BlblNuYWNrQmFyKCdCYWNrZW5kIFVSTCBuw6NvIGluZm9ybWFkYSBuYSBjb25maWd1cmHDp8OjbyBkbyBjb21wb25lbnRlIFVuYlBlc3NvYUNydWRDb21wb25lbnQhJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5mb3JtQ29uZmlnID0gbmV3IFVuYlBlc3NvYUZvcm1Db25maWcoKTtcclxuICAgIHRoaXMuZm9ybUNvbmZpZy5wZXNzb2EgPSB0aGlzLnBlc3NvYVNlbGVjaW9uYWRhO1xyXG4gICAgdGhpcy5mb3JtQ29uZmlnLmJhY2tlbmRVUkwgPSB0aGlzLnBlc3F1aXNhQ29uZmlnLmJhY2tlbmRVUkw7XHJcbiAgICB0aGlzLmZvcm1Db25maWcudG9rZW4gPSB0aGlzLnBlc3F1aXNhQ29uZmlnLnRva2VuO1xyXG4gIH1cclxuXHJcbiAgcGVzc29hUGVzcXVpc2FSZWNlYmlkYShwZXNzb2E6IFVuYlBlc3NvYU1vZGVsKSB7ICAgIFxyXG4gICAgLy8gMS4gVmVyaWZpY2Egc2UgYSBwZXNzb2Egw6kgbnVsYSBvdSBzZSDDqSB1bSBvYmpldG8gXCJ2YXppb1wiIChzZW0gSUQgZSBzZW0gZG9jdW1lbnRvcylcclxuICAgIGNvbnN0IGlzVmF6aW8gPSAhcGVzc29hIHx8IChcclxuICAgICAgIXBlc3NvYS5jb2RpZ29QZXNzb2EgJiYgICAvLyBOw6NvIHRlbSBJRFxyXG4gICAgICAhcGVzc29hLmNwZiAmJiAgICAgICAgICAgIC8vIE7Do28gdGVtIENQRlxyXG4gICAgICAhcGVzc29hLmNucGogJiYgICAgICAgICAgIC8vIE7Do28gdGVtIENOUEpcclxuICAgICAgIXBlc3NvYS5wYXNzYXBvcnRlICAgICAgICAvLyBOw6NvIHRlbSBQYXNzYXBvcnRlXHJcbiAgICApO1xyXG5cclxuICAgIGlmIChpc1ZhemlvKSB7XHJcbiAgICAgIC8vIFNlIGZvciB2YXppbywgbGltcGFtb3MgYSBzZWxlw6fDo28gcGFyYSBlc2NvbmRlciBvIGZvcm11bMOhcmlvXHJcbiAgICAgIC8vIChPICpuZ0lmPVwicGVzc29hU2VsZWNpb25hZGFcIiBubyBIVE1MIHZhaSByZW1vdmVyIG8gY29tcG9uZW50ZSBkYSB0ZWxhKVxyXG4gICAgICB0aGlzLnBlc3NvYVNlbGVjaW9uYWRhID0gbmV3IFVuYlBlc3NvYU1vZGVsKCk7IC8vIG91IHVuZGVmaW5lZCwgZGVwZW5kZW5kbyBkYSB0aXBhZ2VtXHJcbiAgICAgIHRoaXMubW9zdHJhckJvdGFvTm92byA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gU2UgdGl2ZXIgYWxndW0gZGFkbyAoQ1BGIGRpZ2l0YWRvIG91IHBlc3NvYSBlbmNvbnRyYWRhKSwgYXR1YWxpemFcclxuICAgICAgdGhpcy5wZXNzb2FTZWxlY2lvbmFkYSA9IHBlc3NvYTtcclxuICAgICAgaWYgKHRoaXMucGVzc29hU2VsZWNpb25hZGEuY29kaWdvUGVzc29hKSB7ICAgICAgXHJcbiAgICAgICAgLy8gam9nYSBwcmEgY2ltYSBwcmEgZmFsYXIgcXVlIHVtYSBwZXNzb2EgZm9pIGVuY29udHJhZGFcclxuICAgICAgICB0aGlzLnBlc3NvYUVtaXR0ZWQuZW1pdChwZXNzb2EpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaW5jbHVpckJvdGFvTm92bykge1xyXG4gICAgICAgIHRoaXMubW9zdHJhckJvdGFvTm92byA9IHRydWU7ICAgICAgICBcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIDIuIEF0dWFsaXphIGEgY29uZmlndXJhw6fDo28gZG8gZm9ybXVsw6FyaW9cclxuICAgIC8vIEltcG9ydGFudGU6IFPDsyB0ZW50YSBhY2Vzc2FyICdwZXNzb2EnIHNlIGZvcm1Db25maWcgZXhpc3RpclxyXG4gICAgaWYgKHRoaXMuZm9ybUNvbmZpZykge1xyXG4gICAgICAvLyBVc2Ftb3MgbyBzcHJlYWQgb3BlcmF0b3IgKC4uLikgcGFyYSBmb3LDp2FyIG8gQW5ndWxhciBhIGRldGVjdGFyIGEgbXVkYW7Dp2EsXHJcbiAgICAgIC8vIGNhc28gbyBjb21wb25lbnRlIGZpbGhvIHVzZSBuZ09uQ2hhbmdlc1xyXG4gICAgICB0aGlzLmZvcm1Db25maWcgPSB7XHJcbiAgICAgICAgLi4udGhpcy5mb3JtQ29uZmlnLFxyXG4gICAgICAgIHBlc3NvYTogdGhpcy5wZXNzb2FTZWxlY2lvbmFkYSB8fCBuZXcgVW5iUGVzc29hTW9kZWwoKSAvLyBFdml0YSBwYXNzYXIgbnVsbCBwcm8gZm9ybSBzZSBuw6NvIHF1aXNlclxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbGltcGFyU2VsZWNhbygpIHtcclxuICAgIHRoaXMucGVzc29hU2VsZWNpb25hZGEgPSBuZXcgVW5iUGVzc29hTW9kZWwoKTsgLy8gb3UgbmV3IFVuYlBlc3NvYU1vZGVsKClcclxuICAgIC8vIFRhbHZleiBwcmVjaXNlIGF2aXNhciBvIGNvbXBvbmVudGUgZmlsaG8gcGFyYSBsaW1wYXIgbyBpbnB1dCB0YW1iw6ltXHJcbiAgfVxyXG5cclxuICBnZXREb2N1bWVudG9Gb3JtYXRhZG8ocGVzc29hOiBVbmJQZXNzb2FNb2RlbCkge1xyXG4gICAgaWYgKHBlc3NvYS5jcGYgJiYgcGVzc29hLmNwZi50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgIHJldHVybiBwZXNzb2EuY3BmO1xyXG4gICAgfSBlbHNlIGlmIChwZXNzb2EuY25waiAmJiBwZXNzb2EuY25wai50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgIHJldHVybiBwZXNzb2EuY25wajtcclxuICAgIH0gZWxzZSBpZiAocGVzc29hLnBhc3NhcG9ydGUgJiYgcGVzc29hLnBhc3NhcG9ydGUudHJpbSgpICE9PSAnJykge1xyXG4gICAgICByZXR1cm4gcGVzc29hLnBhc3NhcG9ydGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuTW9kYWwoKSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFVuYlBlc3NvYUZvcm1EaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgLy8gMS4gRGVmaW5hIHVtIHBhaW5lbCBkZSBjbGFzc2UgcGFyYSBjb250cm9sYXIgdHVkbyBubyBDU1NcclxuICAgICAgcGFuZWxDbGFzczogJ2RpYWxvZy1wZXNzb2EtZnVsbHNjcmVlbicsIFxyXG4gICAgICBcclxuICAgICAgLy8gMi4gTGFyZ3VyYSBwYWRyw6NvIHBhcmEgRGVza3RvcCAobyBDU1MgdmFpIHNvYnJlc2NyZXZlciBubyBtb2JpbGUpXHJcbiAgICAgIHdpZHRoOiAnOTB2dycsIFxyXG4gICAgICBtYXhXaWR0aDogJzEyMDBweCcsIC8vIFRyYXZhIHBhcmEgbsOjbyBmaWNhciBnaWdhbnRlIGVtIG1vbml0b3JlcyB1bHRyYXdpZGVcclxuICAgICAgXHJcbiAgICAgIC8vIDMuIEFsdHVyYSBhdXRvbcOhdGljYSBvdSBtw6F4aW1hIChDU1MgY29udHJvbGEgbyBlc3RpY2FyKVxyXG4gICAgICBtYXhIZWlnaHQ6ICc5NXZoJywgXHJcblxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgY29uZmlnOiB0aGlzLmZvcm1Db25maWdcclxuICAgICAgfSxcclxuICAgICAgYXV0b0ZvY3VzOiAnZmlyc3QtdGFiYmFibGUnXHJcbiAgICB9KTtcclxuXHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHBlc3NvYVNhbHZhOiBVbmJQZXNzb2FNb2RlbCB8IG51bGwpID0+IHtcclxuICAgICAgaWYgKHBlc3NvYVNhbHZhPy5jb2RpZ29QZXNzb2EpIHtcclxuICAgICAgICB0aGlzLnBlc3NvYUVtaXR0ZWQuZW1pdChwZXNzb2FTYWx2YSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3BlblNuYWNrQmFyKG1lc3NhZ2U6IHN0cmluZykge1xyXG4gICAgdGhpcy5zbmFja0Jhci5vcGVuKG1lc3NhZ2UsICd4Jywge1xyXG4gICAgICBkdXJhdGlvbjogNTAwMCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNlYXJjaC13cmFwcGVyXCIgW2NsYXNzLmRpc2FibGVkLXdyYXBwZXJdPVwiaXNMb2FkaW5nXCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXQtYXJlYVwiPlxyXG4gICAgPGxpYi11bmItcGVzc29hLXBlc3F1aXNhciBcclxuICAgICAgICBbY29uZmlnXT1cInBlc3F1aXNhQ29uZmlnXCIgXHJcbiAgICAgICAgKHBlc3NvYUVtaXR0ZWQpPVwicGVzc29hUGVzcXVpc2FSZWNlYmlkYSgkZXZlbnQpXCI+XHJcbiAgICA8L2xpYi11bmItcGVzc29hLXBlc3F1aXNhcj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInNlYXJjaC1idXR0b24tYXJlYVwiPlxyXG5cclxuICAgIDxidXR0b24gKm5nSWY9XCJpbmNsdWlyQm90YW9Ob3ZvICYmIG1vc3RyYXJCb3Rhb05vdm8gJiYgIXBlc3NvYVNlbGVjaW9uYWRhLmNvZGlnb1Blc3NvYVwiIFxyXG4gICAgICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b24gXHJcbiAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5Nb2RhbCgpXCIgXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIiBcclxuICAgICAgICAgICAgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwO1wiPlxyXG4gICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj4gSW5jbHVpciBOb3ZhIFBlc3NvYVxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cImluY2x1aXJCb3Rhb0FsdGVyYXIgJiYgcGVzc29hU2VsZWNpb25hZGEuY29kaWdvUGVzc29hXCIgY2xhc3M9XCJtaW5pLWNhcmQtc2VsZWN0ZWRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYXZhdGFyXCI+PG1hdC1pY29uPnBlcnNvbjwvbWF0LWljb24+PC9kaXY+XHJcbiAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1pbmZvXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1uYW1lXCI+e3sgcGVzc29hU2VsZWNpb25hZGEubm9tZSB9fTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZG9jXCI+e3sgZ2V0RG9jdW1lbnRvRm9ybWF0YWRvKHBlc3NvYVNlbGVjaW9uYWRhKSB9fTwvZGl2PlxyXG4gICAgICAgPC9kaXY+XHJcbiAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1hY3Rpb25zXCI+XHJcbiAgICAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvcGVuTW9kYWwoKVwiIHR5cGU9XCJidXR0b25cIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPiBFZGl0YXJcclxuICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -163,14 +163,14 @@ export class UnbPessoaEmailFormComponent {
163
163
  duration: 5000,
164
164
  });
165
165
  }
166
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UnbPessoaEmailFormComponent, deps: [{ token: i1.MatSnackBar }, { token: i2.UnBPessoaService }, { token: i3.UnbMensagemService }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
167
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: UnbPessoaEmailFormComponent, selector: "lib-unb-pessoa-email-form", ngImport: i0, template: "<h1 mat-dialog-title>Cadastro de E-mail</h1>\r\n<form (ngSubmit)=\"salvar(form)\" #form=\"ngForm\">\r\n <mat-dialog-content>\r\n <unb-mensagem [identificador]=\"idMensagemService\"></unb-mensagem>\r\n <div class=\"form-container\">\r\n <mat-form-field class=\"form-100\" appearance=\"outline\">\r\n <mat-label>Tipo</mat-label>\r\n <mat-select [(ngModel)]=\"email.tipoEmailCodigo\" [compareWith]=\"compararTipos\" name=\"tipoEmailCodigo\" (selectionChange)=\"onTipoSelecionado($event.value)\" required>\r\n <mat-option *ngFor=\"let tipo of listaTipoEmail\" [value]=\"tipo.codigo\">\r\n {{tipo.denominacao}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-100\" appearance=\"outline\">\r\n <mat-label>E-mail</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"email.email\" name=\"emailValue\" #emailValue=\"ngModel\" />\r\n </mat-form-field>\r\n\r\n </div>\r\n </mat-dialog-content>\r\n\r\n <mat-dialog-actions align=\"end\">\r\n <button mat-stroked-button type=\"button\" color=\"warn\" (click)=\"close()\">Fechar</button>\r\n <button mat-flat-button type=\"submit\" color=\"primary\">Salvar</button>\r\n </mat-dialog-actions>\r\n</form>", styles: [".card-actions-buttons{display:flex;gap:5px;flex-wrap:wrap}.form-container{display:flex;flex-wrap:wrap;column-gap:10px;margin:10px}@media (max-width: 1000px){.form-container{flex-direction:column;gap:5px}}.break{flex-basis:100%;height:0}.form-5{flex:1 1 5%}.inline-table-container{display:flex;align-items:center;justify-content:space-between;padding:5px}@media (max-width: 600px){.form-5,.form-10,.form-15{flex:1 1 100%}}.form-10{flex:1 1 10%}.form-15{flex:1 1 15%}.form-20{flex:1 1 20%}.form-25{flex:1 1 25%}.form-30{flex:1 1 30%}.form-35{flex:1 1 35%}.form-40{flex:1 1 40%}.form-45{flex:1 1 45%}.form-50{flex:1 1 50%}.form-60{flex:1 1 60%}.form-70{flex:1 1 70%}.form-80{flex:1 1 80%}.form-100{flex:1 1 100%;min-width:250px}.botoes-container{display:flex;gap:5px}@media (max-width: 600px){.botoes-container{margin-bottom:10px}.botoes-container button{flex:1;max-width:50%}}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.UnbMensagemComponent, selector: "unb-mensagem", inputs: ["mensagem", "tipo", "identificador"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }] }); }
166
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbPessoaEmailFormComponent, deps: [{ token: i1.MatSnackBar }, { token: i2.UnBPessoaService }, { token: i3.UnbMensagemService }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
167
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: UnbPessoaEmailFormComponent, selector: "lib-unb-pessoa-email-form", ngImport: i0, template: "<h1 mat-dialog-title>Cadastro de E-mail</h1>\r\n<form (ngSubmit)=\"salvar(form)\" #form=\"ngForm\">\r\n <mat-dialog-content>\r\n <unb-mensagem [identificador]=\"idMensagemService\"></unb-mensagem>\r\n <div class=\"form-container\">\r\n <mat-form-field class=\"form-100\" appearance=\"outline\">\r\n <mat-label>Tipo</mat-label>\r\n <mat-select [(ngModel)]=\"email.tipoEmailCodigo\" [compareWith]=\"compararTipos\" name=\"tipoEmailCodigo\" (selectionChange)=\"onTipoSelecionado($event.value)\" required>\r\n <mat-option *ngFor=\"let tipo of listaTipoEmail\" [value]=\"tipo.codigo\">\r\n {{tipo.denominacao}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-100\" appearance=\"outline\">\r\n <mat-label>E-mail</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"email.email\" name=\"emailValue\" #emailValue=\"ngModel\" />\r\n </mat-form-field>\r\n\r\n </div>\r\n </mat-dialog-content>\r\n\r\n <mat-dialog-actions align=\"end\">\r\n <button mat-stroked-button type=\"button\" color=\"warn\" (click)=\"close()\">Fechar</button>\r\n <button mat-flat-button type=\"submit\" color=\"primary\">Salvar</button>\r\n </mat-dialog-actions>\r\n</form>", styles: [".card-actions-buttons{display:flex;gap:5px;flex-wrap:wrap}.form-container{display:flex;flex-wrap:wrap;column-gap:10px;margin:10px}@media (max-width: 1000px){.form-container{flex-direction:column;gap:5px}}.break{flex-basis:100%;height:0}.form-5{flex:1 1 5%}.inline-table-container{display:flex;align-items:center;justify-content:space-between;padding:5px}@media (max-width: 600px){.form-5,.form-10,.form-15{flex:1 1 100%}}.form-10{flex:1 1 10%}.form-15{flex:1 1 15%}.form-20{flex:1 1 20%}.form-25{flex:1 1 25%}.form-30{flex:1 1 30%}.form-35{flex:1 1 35%}.form-40{flex:1 1 40%}.form-45{flex:1 1 45%}.form-50{flex:1 1 50%}.form-60{flex:1 1 60%}.form-70{flex:1 1 70%}.form-80{flex:1 1 80%}.form-100{flex:1 1 100%;min-width:250px}.botoes-container{display:flex;gap:5px}@media (max-width: 600px){.botoes-container{margin-bottom:10px}.botoes-container button{flex:1;max-width:50%}}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.UnbMensagemComponent, selector: "unb-mensagem", inputs: ["mensagem", "tipo", "identificador"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }] }); }
168
168
  }
169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UnbPessoaEmailFormComponent, decorators: [{
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbPessoaEmailFormComponent, decorators: [{
170
170
  type: Component,
171
171
  args: [{ standalone: false, selector: 'lib-unb-pessoa-email-form', template: "<h1 mat-dialog-title>Cadastro de E-mail</h1>\r\n<form (ngSubmit)=\"salvar(form)\" #form=\"ngForm\">\r\n <mat-dialog-content>\r\n <unb-mensagem [identificador]=\"idMensagemService\"></unb-mensagem>\r\n <div class=\"form-container\">\r\n <mat-form-field class=\"form-100\" appearance=\"outline\">\r\n <mat-label>Tipo</mat-label>\r\n <mat-select [(ngModel)]=\"email.tipoEmailCodigo\" [compareWith]=\"compararTipos\" name=\"tipoEmailCodigo\" (selectionChange)=\"onTipoSelecionado($event.value)\" required>\r\n <mat-option *ngFor=\"let tipo of listaTipoEmail\" [value]=\"tipo.codigo\">\r\n {{tipo.denominacao}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-100\" appearance=\"outline\">\r\n <mat-label>E-mail</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"email.email\" name=\"emailValue\" #emailValue=\"ngModel\" />\r\n </mat-form-field>\r\n\r\n </div>\r\n </mat-dialog-content>\r\n\r\n <mat-dialog-actions align=\"end\">\r\n <button mat-stroked-button type=\"button\" color=\"warn\" (click)=\"close()\">Fechar</button>\r\n <button mat-flat-button type=\"submit\" color=\"primary\">Salvar</button>\r\n </mat-dialog-actions>\r\n</form>", styles: [".card-actions-buttons{display:flex;gap:5px;flex-wrap:wrap}.form-container{display:flex;flex-wrap:wrap;column-gap:10px;margin:10px}@media (max-width: 1000px){.form-container{flex-direction:column;gap:5px}}.break{flex-basis:100%;height:0}.form-5{flex:1 1 5%}.inline-table-container{display:flex;align-items:center;justify-content:space-between;padding:5px}@media (max-width: 600px){.form-5,.form-10,.form-15{flex:1 1 100%}}.form-10{flex:1 1 10%}.form-15{flex:1 1 15%}.form-20{flex:1 1 20%}.form-25{flex:1 1 25%}.form-30{flex:1 1 30%}.form-35{flex:1 1 35%}.form-40{flex:1 1 40%}.form-45{flex:1 1 45%}.form-50{flex:1 1 50%}.form-60{flex:1 1 60%}.form-70{flex:1 1 70%}.form-80{flex:1 1 80%}.form-100{flex:1 1 100%;min-width:250px}.botoes-container{display:flex;gap:5px}@media (max-width: 600px){.botoes-container{margin-bottom:10px}.botoes-container button{flex:1;max-width:50%}}\n"] }]
172
172
  }], ctorParameters: () => [{ type: i1.MatSnackBar }, { type: i2.UnBPessoaService }, { type: i3.UnbMensagemService }, { type: i4.MatDialogRef }, { type: undefined, decorators: [{
173
173
  type: Inject,
174
174
  args: [MAT_DIALOG_DATA]
175
175
  }] }] });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iLXBlc3NvYS1lbWFpbC1mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLXBlc3NvYS91bmItcGVzc29hLWVtYWlsLWZvcm0vdW5iLXBlc3NvYS1lbWFpbC1mb3JtLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLXBlc3NvYS91bmItcGVzc29hLWVtYWlsLWZvcm0vdW5iLXBlc3NvYS1lbWFpbC1mb3JtLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUQsT0FBTyxFQUFFLGNBQWMsRUFBc0IsTUFBTSw2Q0FBNkMsQ0FBQztBQUVqRyxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFBc0IsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRbEcsTUFBTSxPQUFPLDJCQUEyQjtJQVF0QyxZQUFvQixRQUFxQixFQUFVLE9BQXlCLEVBQVUsWUFBZ0MsRUFBUyxTQUFvRCxFQUFrQyxJQUFTO1FBQTFNLGFBQVEsR0FBUixRQUFRLENBQWE7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUFTLGNBQVMsR0FBVCxTQUFTLENBQTJDO1FBQWtDLFNBQUksR0FBSixJQUFJLENBQUs7UUFOOU4sVUFBSyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFHN0IsbUJBQWMsR0FBeUIsRUFBRSxDQUFDO1FBQzFDLHNCQUFpQixHQUFHLG9CQUFvQixDQUFDO1FBR3ZDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFD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LENBQUM7UUFFckMseUNBQXlDO1FBQ3pDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0IsV0FBVyxHQUFHO2dCQUNaLE1BQU0sRUFBRSxHQUFHO2dCQUNYLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixZQUFZLEVBQUUsV0FBVyxJQUFJLFdBQVc7YUFDekMsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sV0FBVyxHQUFHLElBQUksQ0FBQztRQUNyQixDQUFDO1FBRUQsY0FBYztRQUNkLElBQUksV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFFRCxtRUFBbUU7UUFDbkUsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5RyxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUFlO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDL0IsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDOytHQTdLVSwyQkFBMkIsMklBUXVKLGVBQWU7bUdBUmpNLDJCQUEyQixpRUNmeEMsaXhDQTBCTzs7NEZEWE0sMkJBQTJCO2tCQU52QyxTQUFTO2lDQUNJLEtBQUssWUFDUCwyQkFBMkI7OzBCQVlpSixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBVbmJQZXNzb2FFbWFpbCwgVW5iUGVzc29hRW1haWxUaXBvIH0gZnJvbSAnLi4vdW5iLXBlc3NvYS1tb2RlbHMvdW5iLXBlc3NvYS1lbWFpbC5tb2RlbCc7XHJcbmltcG9ydCB7IFVuYlBlc3NvYUVycm9QYWRyYW8sIFVuQlBlc3NvYVNlcnZpY2UgfSBmcm9tICcuLi91bmItcGVzc29hLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVW5iTWVuc2FnZW1TZXJ2aWNlLCBVbmJUaXBvTWVuc2FnZW1FbnVtIH0gZnJvbSAnLi4vLi4vdW5iLW1lbnNhZ2VtL3VuYi1tZW5zYWdlbS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxyXG4gIHNlbGVjdG9yOiAnbGliLXVuYi1wZXNzb2EtZW1haWwtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VuYi1wZXNzb2EtZW1haWwtZm9ybS5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdW5iLXBlc3NvYS1lbWFpbC1mb3JtLmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFVuYlBlc3NvYUVtYWlsRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgZW1haWxTYWx2byE6IFVuYlBlc3NvYUVtYWlsO1xyXG4gIGVtYWlsID0gbmV3IFVuYlBlc3NvYUVtYWlsKCk7XHJcbiAgZW1haWxzTGlzdDogVW5iUGVzc29hRW1haWxbXTtcclxuICB0aXBvRW1haWwhOiBPYnNlcnZhYmxlPFVuYlBlc3NvYUVtYWlsVGlwb1tdPjtcclxuICBsaXN0YVRpcG9FbWFpbDogVW5iUGVzc29hRW1haWxUaXBvW10gPSBbXTtcclxuICBpZE1lbnNhZ2VtU2VydmljZSA9IFwiVW5iUGVzc29hRW1haWxGb3JtXCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLCBwcml2YXRlIHNlcnZpY2U6IFVuQlBlc3NvYVNlcnZpY2UsIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBVbmJNZW5zYWdlbVNlcnZpY2UsIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxVbmJQZXNzb2FFbWFpbEZvcm1Db21wb25lbnQ+LCBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5lbWFpbCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YS5lbWFpbCkpOyAvLyBPIGUtbWFpbCBlc3BlY8OtZmljbyBwYXJhIGVkacOnw6NvXHJcblxyXG4gICAgLy8gVmVyaWZpcXVlIHNlIGEgbGlzdGEgZGUgZS1tYWlscyBmb2kgcGFzc2FkYSBlIGF0cmlidWEtYVxyXG4gICAgaWYgKGRhdGEuZW1haWxzTGlzdCkge1xyXG4gICAgICB0aGlzLmVtYWlsc0xpc3QgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEuZW1haWxzTGlzdCkpOyAvLyBGYcOnYSB1bWEgY8OzcGlhIHByb2Z1bmRhIHNlIGZvciBtYW5pcHVsYXJcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZW1haWxzTGlzdCA9IFtdOyAvLyBJbmljaWFsaXplIGNvbW8gdmF6aW8gc2UgbsOjbyBmb3IgcGFzc2FkYVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5lbWFpbCkge1xyXG4gICAgICB0aGlzLmVtYWlsID0gbmV3IFVuYlBlc3NvYUVtYWlsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIENoYW1hbW9zIG8gc2VydmnDp28gZGlyZXRvLiBOw6NvIGd1YXJkYW1vcyBvIG9ic2VydmFibGUsIGFwZW5hcyBvIHJlc3VsdGFkby5cclxuICAgIHRoaXMuc2VydmljZS5nZXRUaXBvRW1haWwoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAobGlzdGEpID0+IHtcclxuICAgICAgICAvLyAxLiBHdWFyZGEgYSBsaXN0YSBwYXJhIG8gSFRNTCB1c2FyXHJcbiAgICAgICAgdGhpcy5saXN0YVRpcG9FbWFpbCA9IGxpc3RhO1xyXG5cclxuICAgICAgICAvLyAyLiBMw7NnaWNhIGRlIFNlbGXDp8OjbyBBdXRvbcOhdGljYSAoTWF0Y2gpXHJcbiAgICAgICAgaWYgKHRoaXMuZW1haWwudGlwb0VtYWlsQ29kaWdvICE9IG51bGwpIHtcclxuICAgICAgICAgIGNvbnN0IHRpcG9FbmNvbnRyYWRvID0gbGlzdGEuZmluZCh0ID0+IHQuY29kaWdvID09PSB0aGlzLmVtYWlsLnRpcG9FbWFpbENvZGlnbyk7XHJcbiAgICAgICAgICBpZiAodGlwb0VuY29udHJhZG8pIHtcclxuICAgICAgICAgICAgdGhpcy5lbWFpbC50aXBvID0gdGlwb0VuY29udHJhZG8uZGVub21pbmFjYW87XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmVtYWlsLnRpcG8pIHtcclxuICAgICAgICAgIGNvbnN0IHRpcG9FbmNvbnRyYWRvID0gbGlzdGEuZmluZChcclxuICAgICAgICAgICAgdCA9PiB0LmRlbm9taW5hY2FvPy50b0xvd2VyQ2FzZSgpID09PSB0aGlzLmVtYWlsLnRpcG8/LnRvTG93ZXJDYXNlKClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZiAodGlwb0VuY29udHJhZG8pIHtcclxuICAgICAgICAgICAgdGhpcy5lbWFpbC50aXBvRW1haWxDb2RpZ28gPSB0aXBvRW5jb250cmFkby5jb2RpZ28hO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgLy8gMy4gVXNhIHNldSB0cmF0YW1lbnRvIGRlIGVycm8gbm92b1xyXG4gICAgICBlcnJvcjogKGVycjogVW5iUGVzc29hRXJyb1BhZHJhbykgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnIpXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNhbHZhcihmb3JtOiBOZ0Zvcm0pIHtcclxuICAgIGlmIChmb3JtLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5vcGVuU25hY2tCYXIoJ0V4aXN0ZW0gZXJyb3Mgbm8gZm9ybXVsw6FyaW8sIHBvciBmYXZvciwgdmVyaWZpY2FyLicpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gMS4gRGVmaW5lIG8gJ3RpcG8nIHBhZHLDo28gKGV4OiAxIHBhcmEgJ1Blc3NvYWwnKSBzZSBuw6NvIGZvciBwcmVlbmNoaWRvXHJcbiAgICBpZiAoIXRoaXMuZW1haWwudGlwb0VtYWlsQ29kaWdvKSB7XHJcbiAgICAgIHRoaXMuZW1haWwudGlwb0VtYWlsQ29kaWdvID0gMTsgLy8gMSDDqSBnZXJhbG1lbnRlICdQZXNzb2FsJ1xyXG4gICAgfVxyXG5cclxuICAgIC8vIDIuIERlZmluZSBhICdvcmRlbScgKHF1ZSBvIGJhY2stZW5kIGNoYW1hIGRlICdvcmRlbUVtYWlsJylcclxuICAgIGlmICghdGhpcy5lbWFpbC5vcmRlbSB8fCB0aGlzLmVtYWlsLm9yZGVtID09PSAwKSB7XHJcbiAgICAgIGxldCBtYXhPcmRlbSA9IDA7XHJcblxyXG4gICAgICAvLyBWZXJpZmljYSBzZSBhIGxpc3RhIGRlIGVtYWlscyBqw6EgZXhpc3RlIGUgdGVtIGl0ZW5zXHJcbiAgICAgIGlmICh0aGlzLmVtYWlsc0xpc3QgJiYgdGhpcy5lbWFpbHNMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICBtYXhPcmRlbSA9IE1hdGgubWF4KC4uLnRoaXMuZW1haWxzTGlzdC5tYXAoZSA9PiBlLm9yZGVtIHx8IDApKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gRGVmaW5lIGEgb3JkZW0gZG8gbm92byBlbWFpbCBjb21vIGEgbWFpb3Igb3JkZW0gKyAxXHJcbiAgICAgIHRoaXMuZW1haWwub3JkZW0gPSBtYXhPcmRlbSArIDE7XHJcbiAgICB9XHJcbiAgICAvLyAtLS0gRmltIGRhIE1vZGlmaWNhw6fDo28gLS0tXHJcblxyXG4gICAgaWYgKHRoaXMudmFsaWRhcih0aGlzLmVtYWlsKSA9PSBmYWxzZSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuZW1haWxTYWx2byA9IHRoaXMuZW1haWw7XHJcbiAgICB0aGlzLnNhbHZhcmNsb3NlKClcclxuICB9XHJcblxyXG4gIGNvbXBhcmFyVGlwb3ModDE6IGFueSwgdDI6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHQxICYmIHQyICYmIHQxID09PSB0MjtcclxuICB9XHJcblxyXG4gIG9uVGlwb1NlbGVjaW9uYWRvKGNvZGlnb1NlbGVjaW9uYWRvOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHRpcG9TZWxlY2lvbmFkbyA9IHRoaXMubGlzdGFUaXBvRW1haWwuZmluZCh0ID0+IHQuY29kaWdvID09PSBjb2RpZ29TZWxlY2lvbmFkbyk7XHJcbiAgICBpZiAodGlwb1NlbGVjaW9uYWRvKSB7XHJcbiAgICAgIHRoaXMuZW1haWwudGlwbyA9IHRpcG9TZWxlY2lvbmFkby5kZW5vbWluYWNhbztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYSBvIG9iamV0byBkZSBlLW1haWwsIHJlcGxpY2FuZG8gYXMgcmVncmFzIGRvIHZhbGlkYWRvciBkbyBiYWNrZW5kLlxyXG4gICAqIFJldG9ybmEgdHJ1ZSBzZSBvIGUtbWFpbCBmb3IgdsOhbGlkbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAqL1xyXG4gIHZhbGlkYXIoZW1haWxUb1ZhbGlkYXRlOiBVbmJQZXNzb2FFbWFpbCk6IGJvb2xlYW4ge1xyXG5cclxuICAgIC8vIDEuIFZhbGlkYcOnw6NvIGRlIGNhbXBvIG9icmlnYXTDs3JpbyAoZG8gSmF2YSlcclxuICAgIGlmICghZW1haWxUb1ZhbGlkYXRlLmVtYWlsIHx8IGVtYWlsVG9WYWxpZGF0ZS5lbWFpbC50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMub3BlblNuYWNrQmFyKFwiRS1tYWlsIMOpIHVtIGNhbXBvIG9icmlnYXTDs3Jpby5cIik7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAyLiBWYWxpZGHDp8OjbyBkZSBUYW1hbmhvIE3DoXhpbW8gKGRvIEphdmEpXHJcbiAgICBpZiAoZW1haWxUb1ZhbGlkYXRlLmVtYWlsLnRyaW0oKS5sZW5ndGggPiA2MCkge1xyXG4gICAgICB0aGlzLm9wZW5TbmFja0JhcihcIkUtbWFpbCBkZXZlIHRlciBubyBtw6F4aW1vIDYwIGNhcmFjdGVyZXMuXCIpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gMy4gVmFsaWRhw6fDo28gZGUgZm9ybWF0byBkZSBlLW1haWwgKGRvIEphdmEgZSBkbyBBbmd1bGFyKVxyXG4gICAgLy8gICAgW0phdmE6ICFWYWxpZGFkb3Jlcy52YWxpZGFyRW1haWwocmVxdWVzdC5nZXRFbWFpbCgpKV1cclxuICAgIGNvbnN0IGVtYWlsUmVnZXggPSAvXlthLXpBLVowLTkuXyUrLV0rQFthLXpBLVowLTkuLV0rXFwuW2EtekEtWl17Mix9JC87XHJcbiAgICBpZiAoIWVtYWlsUmVnZXgudGVzdChlbWFpbFRvVmFsaWRhdGUuZW1haWwpKSB7XHJcbiAgICAgIHRoaXMub3BlblNuYWNrQmFyKFwiRGlnaXRlIHVtIEUtbWFpbCB2w6FsaWRvLlwiKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIDQuIFZhbGlkYcOnw6NvIGRlIGUtbWFpbCBkdXBsaWNhZG8gKGRvIHNldSBBbmd1bGFyKVxyXG4gICAgY29uc3QgaXNEdXBsaWNhdGUgPSB0aGlzLmVtYWlsc0xpc3Quc29tZShleGlzdGluZ0VtYWlsID0+XHJcbiAgICAgIGV4aXN0aW5nRW1haWwuZW1haWw/LnRvTG93ZXJDYXNlKCkgPT09IGVtYWlsVG9WYWxpZGF0ZS5lbWFpbD8udG9Mb3dlckNhc2UoKSAmJlxyXG4gICAgICBleGlzdGluZ0VtYWlsLmNvZGlnbyAhPT0gZW1haWxUb1ZhbGlkYXRlLmNvZGlnbyAvLyBJZ25vcmEgbyBwcsOzcHJpbyBlLW1haWwgc2UgZXN0aXZlciBzZW5kbyBlZGl0YWRvXHJcbiAgICApO1xyXG5cclxuICAgIGlmIChpc0R1cGxpY2F0ZSkge1xyXG4gICAgICB0aGlzLm9wZW5TbmFja0JhcihcIkVzdGUgZS1tYWlsIGrDoSBleGlzdGUgbmEgbGlzdGEuXCIpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTm90YTogQXMgdmFsaWRhw6fDtWVzIGRlICdvcmRlbUVtYWlsJyBlICd0aXBvRW1haWxDb2RpZ28nIGRvIEphdmFcclxuICAgIC8vIGrDoSBzw6NvIHRyYXRhZGFzIG5hIHN1YSBmdW7Dp8OjbyAnc2FsdmFyKCknLFxyXG4gICAgLy8gcXVlIGF0cmlidWkgdmFsb3JlcyBwYWRyw6NvIGFudGVzIGRlc3RhIGZ1bsOnw6NvICd2YWxpZGFyKCknIHNlciBjaGFtYWRhLlxyXG5cclxuICAgIHJldHVybiB0cnVlOyAvLyBQYXNzb3UgZW0gdG9kYXMgYXMgdmFsaWRhw6fDtWVzIVxyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShudWxsKTtcclxuICB9XHJcblxyXG4gIHNhbHZhcmNsb3NlKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5lbWFpbFNhbHZvKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUVycm9yKGVycm86IFVuYlBlc3NvYUVycm9QYWRyYW8gfCBzdHJpbmcpIHtcclxuICAgIGxldCBlcnJvVHJhdGFkbzogVW5iUGVzc29hRXJyb1BhZHJhbztcclxuXHJcbiAgICAvLyBDb252ZXJ0ZSBzdHJpbmcgbG9jYWwgZW0gT2JqZXRvIFBhZHLDo29cclxuICAgIGlmICh0eXBlb2YgZXJybyA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgZXJyb1RyYXRhZG8gPSB7XHJcbiAgICAgICAgc3RhdHVzOiA0MDAsXHJcbiAgICAgICAgbWVuc2FnZW1TaW1wbGVzOiBlcnJvLFxyXG4gICAgICAgIG1lbnNhZ2VtSHRtbDogYDxzdHJvbmc+JHtlcnJvfTwvc3Ryb25nPmBcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGVycm9UcmF0YWRvID0gZXJybztcclxuICAgIH1cclxuXHJcbiAgICAvLyAxLiBTbmFja0JhclxyXG4gICAgaWYgKGVycm9UcmF0YWRvLm1lbnNhZ2VtU2ltcGxlcykge1xyXG4gICAgICB0aGlzLm9wZW5TbmFja0JhcihlcnJvVHJhdGFkby5tZW5zYWdlbVNpbXBsZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIDIuIEFsZXJ0U2VydmljZSAoU2UgaG91dmVyIHRhZyA8dW5iLW1lbnNhZ2VtPiBubyBIVE1MIGRvIGRpYWxvZylcclxuICAgIGlmICh0aGlzLmFsZXJ0U2VydmljZSAmJiBlcnJvVHJhdGFkby5tZW5zYWdlbUh0bWwpIHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd01lc3NhZ2UoZXJyb1RyYXRhZG8ubWVuc2FnZW1IdG1sLCBVbmJUaXBvTWVuc2FnZW1FbnVtLkRBTkdFUiwgdGhpcy5pZE1lbnNhZ2VtU2VydmljZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuU25hY2tCYXIobWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNuYWNrQmFyLm9wZW4obWVzc2FnZSwgJ3gnLCB7XHJcbiAgICAgIGR1cmF0aW9uOiA1MDAwLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxufSIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPkNhZGFzdHJvIGRlIEUtbWFpbDwvaDE+XHJcbjxmb3JtIChuZ1N1Ym1pdCk9XCJzYWx2YXIoZm9ybSlcIiAjZm9ybT1cIm5nRm9ybVwiPlxyXG4gIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgICA8dW5iLW1lbnNhZ2VtIFtpZGVudGlmaWNhZG9yXT1cImlkTWVuc2FnZW1TZXJ2aWNlXCI+PC91bmItbWVuc2FnZW0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250YWluZXJcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZm9ybS0xMDBcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+VGlwbzwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwiZW1haWwudGlwb0VtYWlsQ29kaWdvXCIgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmFyVGlwb3NcIiBuYW1lPVwidGlwb0VtYWlsQ29kaWdvXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblRpcG9TZWxlY2lvbmFkbygkZXZlbnQudmFsdWUpXCIgcmVxdWlyZWQ+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdGlwbyBvZiBsaXN0YVRpcG9FbWFpbFwiIFt2YWx1ZV09XCJ0aXBvLmNvZGlnb1wiPlxyXG4gICAgICAgICAgICB7e3RpcG8uZGVub21pbmFjYW99fVxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZvcm0tMTAwXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICA8bWF0LWxhYmVsPkUtbWFpbDwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIG1hdElucHV0IFsobmdNb2RlbCldPVwiZW1haWwuZW1haWxcIiBuYW1lPVwiZW1haWxWYWx1ZVwiICNlbWFpbFZhbHVlPVwibmdNb2RlbFwiIC8+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XHJcblxyXG4gIDxtYXQtZGlhbG9nLWFjdGlvbnMgYWxpZ249XCJlbmRcIj5cclxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiBjb2xvcj1cIndhcm5cIiAoY2xpY2spPVwiY2xvc2UoKVwiPkZlY2hhcjwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gdHlwZT1cInN1Ym1pdFwiIGNvbG9yPVwicHJpbWFyeVwiPlNhbHZhcjwvYnV0dG9uPlxyXG4gIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG48L2Zvcm0+Il19
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iLXBlc3NvYS1lbWFpbC1mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLXBlc3NvYS91bmItcGVzc29hLWVtYWlsLWZvcm0vdW5iLXBlc3NvYS1lbWFpbC1mb3JtLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLXBlc3NvYS91bmItcGVzc29hLWVtYWlsLWZvcm0vdW5iLXBlc3NvYS1lbWFpbC1mb3JtLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUQsT0FBTyxFQUFFLGNBQWMsRUFBc0IsTUFBTSw2Q0FBNkMsQ0FBQztBQUVqRyxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFBc0IsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRbEcsTUFBTSxPQUFPLDJCQUEyQjtJQVF0QyxZQUFvQixRQUFxQixFQUFVLE9BQXlCLEVBQVUsWUFBZ0MsRUFBUyxTQUFvRCxFQUFrQyxJQUFTO1FBQTFNLGFBQVEsR0FBUixRQUFRLENBQWE7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUFTLGNBQVMsR0FBVCxTQUFTLENBQTJDO1FBQWtDLFNBQUksR0FBSixJQUFJLENBQUs7UUFOOU4sVUFBSyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFHN0IsbUJBQWMsR0FBeUIsRUFBRSxDQUFDO1FBQzFDLHNCQUFpQixHQUFHLG9CQUFvQixDQUFDO1FBR3ZDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFD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LENBQUM7UUFFckMseUNBQXlDO1FBQ3pDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0IsV0FBVyxHQUFHO2dCQUNaLE1BQU0sRUFBRSxHQUFHO2dCQUNYLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixZQUFZLEVBQUUsV0FBVyxJQUFJLFdBQVc7YUFDekMsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sV0FBVyxHQUFHLElBQUksQ0FBQztRQUNyQixDQUFDO1FBRUQsY0FBYztRQUNkLElBQUksV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFFRCxtRUFBbUU7UUFDbkUsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5RyxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUFlO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDL0IsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTdLVSwyQkFBMkIsMklBUXVKLGVBQWU7a0dBUmpNLDJCQUEyQixpRUNmeEMsaXhDQTBCTzs7MkZEWE0sMkJBQTJCO2tCQU52QyxTQUFTO2lDQUNJLEtBQUssWUFDUCwyQkFBMkI7OzBCQVlpSixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBVbmJQZXNzb2FFbWFpbCwgVW5iUGVzc29hRW1haWxUaXBvIH0gZnJvbSAnLi4vdW5iLXBlc3NvYS1tb2RlbHMvdW5iLXBlc3NvYS1lbWFpbC5tb2RlbCc7XHJcbmltcG9ydCB7IFVuYlBlc3NvYUVycm9QYWRyYW8sIFVuQlBlc3NvYVNlcnZpY2UgfSBmcm9tICcuLi91bmItcGVzc29hLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVW5iTWVuc2FnZW1TZXJ2aWNlLCBVbmJUaXBvTWVuc2FnZW1FbnVtIH0gZnJvbSAnLi4vLi4vdW5iLW1lbnNhZ2VtL3VuYi1tZW5zYWdlbS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxyXG4gIHNlbGVjdG9yOiAnbGliLXVuYi1wZXNzb2EtZW1haWwtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VuYi1wZXNzb2EtZW1haWwtZm9ybS5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdW5iLXBlc3NvYS1lbWFpbC1mb3JtLmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFVuYlBlc3NvYUVtYWlsRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgZW1haWxTYWx2byE6IFVuYlBlc3NvYUVtYWlsO1xyXG4gIGVtYWlsID0gbmV3IFVuYlBlc3NvYUVtYWlsKCk7XHJcbiAgZW1haWxzTGlzdDogVW5iUGVzc29hRW1haWxbXTtcclxuICB0aXBvRW1haWwhOiBPYnNlcnZhYmxlPFVuYlBlc3NvYUVtYWlsVGlwb1tdPjtcclxuICBsaXN0YVRpcG9FbWFpbDogVW5iUGVzc29hRW1haWxUaXBvW10gPSBbXTtcclxuICBpZE1lbnNhZ2VtU2VydmljZSA9IFwiVW5iUGVzc29hRW1haWxGb3JtXCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLCBwcml2YXRlIHNlcnZpY2U6IFVuQlBlc3NvYVNlcnZpY2UsIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBVbmJNZW5zYWdlbVNlcnZpY2UsIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxVbmJQZXNzb2FFbWFpbEZvcm1Db21wb25lbnQ+LCBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5lbWFpbCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YS5lbWFpbCkpOyAvLyBPIGUtbWFpbCBlc3BlY8OtZmljbyBwYXJhIGVkacOnw6NvXHJcblxyXG4gICAgLy8gVmVyaWZpcXVlIHNlIGEgbGlzdGEgZGUgZS1tYWlscyBmb2kgcGFzc2FkYSBlIGF0cmlidWEtYVxyXG4gICAgaWYgKGRhdGEuZW1haWxzTGlzdCkge1xyXG4gICAgICB0aGlzLmVtYWlsc0xpc3QgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEuZW1haWxzTGlzdCkpOyAvLyBGYcOnYSB1bWEgY8OzcGlhIHByb2Z1bmRhIHNlIGZvciBtYW5pcHVsYXJcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZW1haWxzTGlzdCA9IFtdOyAvLyBJbmljaWFsaXplIGNvbW8gdmF6aW8gc2UgbsOjbyBmb3IgcGFzc2FkYVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5lbWFpbCkge1xyXG4gICAgICB0aGlzLmVtYWlsID0gbmV3IFVuYlBlc3NvYUVtYWlsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIENoYW1hbW9zIG8gc2VydmnDp28gZGlyZXRvLiBOw6NvIGd1YXJkYW1vcyBvIG9ic2VydmFibGUsIGFwZW5hcyBvIHJlc3VsdGFkby5cclxuICAgIHRoaXMuc2VydmljZS5nZXRUaXBvRW1haWwoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAobGlzdGEpID0+IHtcclxuICAgICAgICAvLyAxLiBHdWFyZGEgYSBsaXN0YSBwYXJhIG8gSFRNTCB1c2FyXHJcbiAgICAgICAgdGhpcy5saXN0YVRpcG9FbWFpbCA9IGxpc3RhO1xyXG5cclxuICAgICAgICAvLyAyLiBMw7NnaWNhIGRlIFNlbGXDp8OjbyBBdXRvbcOhdGljYSAoTWF0Y2gpXHJcbiAgICAgICAgaWYgKHRoaXMuZW1haWwudGlwb0VtYWlsQ29kaWdvICE9IG51bGwpIHtcclxuICAgICAgICAgIGNvbnN0IHRpcG9FbmNvbnRyYWRvID0gbGlzdGEuZmluZCh0ID0+IHQuY29kaWdvID09PSB0aGlzLmVtYWlsLnRpcG9FbWFpbENvZGlnbyk7XHJcbiAgICAgICAgICBpZiAodGlwb0VuY29udHJhZG8pIHtcclxuICAgICAgICAgICAgdGhpcy5lbWFpbC50aXBvID0gdGlwb0VuY29udHJhZG8uZGVub21pbmFjYW87XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmVtYWlsLnRpcG8pIHtcclxuICAgICAgICAgIGNvbnN0IHRpcG9FbmNvbnRyYWRvID0gbGlzdGEuZmluZChcclxuICAgICAgICAgICAgdCA9PiB0LmRlbm9taW5hY2FvPy50b0xvd2VyQ2FzZSgpID09PSB0aGlzLmVtYWlsLnRpcG8/LnRvTG93ZXJDYXNlKClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZiAodGlwb0VuY29udHJhZG8pIHtcclxuICAgICAgICAgICAgdGhpcy5lbWFpbC50aXBvRW1haWxDb2RpZ28gPSB0aXBvRW5jb250cmFkby5jb2RpZ28hO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgLy8gMy4gVXNhIHNldSB0cmF0YW1lbnRvIGRlIGVycm8gbm92b1xyXG4gICAgICBlcnJvcjogKGVycjogVW5iUGVzc29hRXJyb1BhZHJhbykgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnIpXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNhbHZhcihmb3JtOiBOZ0Zvcm0pIHtcclxuICAgIGlmIChmb3JtLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5vcGVuU25hY2tCYXIoJ0V4aXN0ZW0gZXJyb3Mgbm8gZm9ybXVsw6FyaW8sIHBvciBmYXZvciwgdmVyaWZpY2FyLicpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gMS4gRGVmaW5lIG8gJ3RpcG8nIHBhZHLDo28gKGV4OiAxIHBhcmEgJ1Blc3NvYWwnKSBzZSBuw6NvIGZvciBwcmVlbmNoaWRvXHJcbiAgICBpZiAoIXRoaXMuZW1haWwudGlwb0VtYWlsQ29kaWdvKSB7XHJcbiAgICAgIHRoaXMuZW1haWwudGlwb0VtYWlsQ29kaWdvID0gMTsgLy8gMSDDqSBnZXJhbG1lbnRlICdQZXNzb2FsJ1xyXG4gICAgfVxyXG5cclxuICAgIC8vIDIuIERlZmluZSBhICdvcmRlbScgKHF1ZSBvIGJhY2stZW5kIGNoYW1hIGRlICdvcmRlbUVtYWlsJylcclxuICAgIGlmICghdGhpcy5lbWFpbC5vcmRlbSB8fCB0aGlzLmVtYWlsLm9yZGVtID09PSAwKSB7XHJcbiAgICAgIGxldCBtYXhPcmRlbSA9IDA7XHJcblxyXG4gICAgICAvLyBWZXJpZmljYSBzZSBhIGxpc3RhIGRlIGVtYWlscyBqw6EgZXhpc3RlIGUgdGVtIGl0ZW5zXHJcbiAgICAgIGlmICh0aGlzLmVtYWlsc0xpc3QgJiYgdGhpcy5lbWFpbHNMaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICBtYXhPcmRlbSA9IE1hdGgubWF4KC4uLnRoaXMuZW1haWxzTGlzdC5tYXAoZSA9PiBlLm9yZGVtIHx8IDApKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gRGVmaW5lIGEgb3JkZW0gZG8gbm92byBlbWFpbCBjb21vIGEgbWFpb3Igb3JkZW0gKyAxXHJcbiAgICAgIHRoaXMuZW1haWwub3JkZW0gPSBtYXhPcmRlbSArIDE7XHJcbiAgICB9XHJcbiAgICAvLyAtLS0gRmltIGRhIE1vZGlmaWNhw6fDo28gLS0tXHJcblxyXG4gICAgaWYgKHRoaXMudmFsaWRhcih0aGlzLmVtYWlsKSA9PSBmYWxzZSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuZW1haWxTYWx2byA9IHRoaXMuZW1haWw7XHJcbiAgICB0aGlzLnNhbHZhcmNsb3NlKClcclxuICB9XHJcblxyXG4gIGNvbXBhcmFyVGlwb3ModDE6IGFueSwgdDI6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHQxICYmIHQyICYmIHQxID09PSB0MjtcclxuICB9XHJcblxyXG4gIG9uVGlwb1NlbGVjaW9uYWRvKGNvZGlnb1NlbGVjaW9uYWRvOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHRpcG9TZWxlY2lvbmFkbyA9IHRoaXMubGlzdGFUaXBvRW1haWwuZmluZCh0ID0+IHQuY29kaWdvID09PSBjb2RpZ29TZWxlY2lvbmFkbyk7XHJcbiAgICBpZiAodGlwb1NlbGVjaW9uYWRvKSB7XHJcbiAgICAgIHRoaXMuZW1haWwudGlwbyA9IHRpcG9TZWxlY2lvbmFkby5kZW5vbWluYWNhbztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYSBvIG9iamV0byBkZSBlLW1haWwsIHJlcGxpY2FuZG8gYXMgcmVncmFzIGRvIHZhbGlkYWRvciBkbyBiYWNrZW5kLlxyXG4gICAqIFJldG9ybmEgdHJ1ZSBzZSBvIGUtbWFpbCBmb3IgdsOhbGlkbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAqL1xyXG4gIHZhbGlkYXIoZW1haWxUb1ZhbGlkYXRlOiBVbmJQZXNzb2FFbWFpbCk6IGJvb2xlYW4ge1xyXG5cclxuICAgIC8vIDEuIFZhbGlkYcOnw6NvIGRlIGNhbXBvIG9icmlnYXTDs3JpbyAoZG8gSmF2YSlcclxuICAgIGlmICghZW1haWxUb1ZhbGlkYXRlLmVtYWlsIHx8IGVtYWlsVG9WYWxpZGF0ZS5lbWFpbC50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMub3BlblNuYWNrQmFyKFwiRS1tYWlsIMOpIHVtIGNhbXBvIG9icmlnYXTDs3Jpby5cIik7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAyLiBWYWxpZGHDp8OjbyBkZSBUYW1hbmhvIE3DoXhpbW8gKGRvIEphdmEpXHJcbiAgICBpZiAoZW1haWxUb1ZhbGlkYXRlLmVtYWlsLnRyaW0oKS5sZW5ndGggPiA2MCkge1xyXG4gICAgICB0aGlzLm9wZW5TbmFja0JhcihcIkUtbWFpbCBkZXZlIHRlciBubyBtw6F4aW1vIDYwIGNhcmFjdGVyZXMuXCIpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gMy4gVmFsaWRhw6fDo28gZGUgZm9ybWF0byBkZSBlLW1haWwgKGRvIEphdmEgZSBkbyBBbmd1bGFyKVxyXG4gICAgLy8gICAgW0phdmE6ICFWYWxpZGFkb3Jlcy52YWxpZGFyRW1haWwocmVxdWVzdC5nZXRFbWFpbCgpKV1cclxuICAgIGNvbnN0IGVtYWlsUmVnZXggPSAvXlthLXpBLVowLTkuXyUrLV0rQFthLXpBLVowLTkuLV0rXFwuW2EtekEtWl17Mix9JC87XHJcbiAgICBpZiAoIWVtYWlsUmVnZXgudGVzdChlbWFpbFRvVmFsaWRhdGUuZW1haWwpKSB7XHJcbiAgICAgIHRoaXMub3BlblNuYWNrQmFyKFwiRGlnaXRlIHVtIEUtbWFpbCB2w6FsaWRvLlwiKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIDQuIFZhbGlkYcOnw6NvIGRlIGUtbWFpbCBkdXBsaWNhZG8gKGRvIHNldSBBbmd1bGFyKVxyXG4gICAgY29uc3QgaXNEdXBsaWNhdGUgPSB0aGlzLmVtYWlsc0xpc3Quc29tZShleGlzdGluZ0VtYWlsID0+XHJcbiAgICAgIGV4aXN0aW5nRW1haWwuZW1haWw/LnRvTG93ZXJDYXNlKCkgPT09IGVtYWlsVG9WYWxpZGF0ZS5lbWFpbD8udG9Mb3dlckNhc2UoKSAmJlxyXG4gICAgICBleGlzdGluZ0VtYWlsLmNvZGlnbyAhPT0gZW1haWxUb1ZhbGlkYXRlLmNvZGlnbyAvLyBJZ25vcmEgbyBwcsOzcHJpbyBlLW1haWwgc2UgZXN0aXZlciBzZW5kbyBlZGl0YWRvXHJcbiAgICApO1xyXG5cclxuICAgIGlmIChpc0R1cGxpY2F0ZSkge1xyXG4gICAgICB0aGlzLm9wZW5TbmFja0JhcihcIkVzdGUgZS1tYWlsIGrDoSBleGlzdGUgbmEgbGlzdGEuXCIpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTm90YTogQXMgdmFsaWRhw6fDtWVzIGRlICdvcmRlbUVtYWlsJyBlICd0aXBvRW1haWxDb2RpZ28nIGRvIEphdmFcclxuICAgIC8vIGrDoSBzw6NvIHRyYXRhZGFzIG5hIHN1YSBmdW7Dp8OjbyAnc2FsdmFyKCknLFxyXG4gICAgLy8gcXVlIGF0cmlidWkgdmFsb3JlcyBwYWRyw6NvIGFudGVzIGRlc3RhIGZ1bsOnw6NvICd2YWxpZGFyKCknIHNlciBjaGFtYWRhLlxyXG5cclxuICAgIHJldHVybiB0cnVlOyAvLyBQYXNzb3UgZW0gdG9kYXMgYXMgdmFsaWRhw6fDtWVzIVxyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShudWxsKTtcclxuICB9XHJcblxyXG4gIHNhbHZhcmNsb3NlKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5lbWFpbFNhbHZvKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUVycm9yKGVycm86IFVuYlBlc3NvYUVycm9QYWRyYW8gfCBzdHJpbmcpIHtcclxuICAgIGxldCBlcnJvVHJhdGFkbzogVW5iUGVzc29hRXJyb1BhZHJhbztcclxuXHJcbiAgICAvLyBDb252ZXJ0ZSBzdHJpbmcgbG9jYWwgZW0gT2JqZXRvIFBhZHLDo29cclxuICAgIGlmICh0eXBlb2YgZXJybyA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgZXJyb1RyYXRhZG8gPSB7XHJcbiAgICAgICAgc3RhdHVzOiA0MDAsXHJcbiAgICAgICAgbWVuc2FnZW1TaW1wbGVzOiBlcnJvLFxyXG4gICAgICAgIG1lbnNhZ2VtSHRtbDogYDxzdHJvbmc+JHtlcnJvfTwvc3Ryb25nPmBcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGVycm9UcmF0YWRvID0gZXJybztcclxuICAgIH1cclxuXHJcbiAgICAvLyAxLiBTbmFja0JhclxyXG4gICAgaWYgKGVycm9UcmF0YWRvLm1lbnNhZ2VtU2ltcGxlcykge1xyXG4gICAgICB0aGlzLm9wZW5TbmFja0JhcihlcnJvVHJhdGFkby5tZW5zYWdlbVNpbXBsZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIDIuIEFsZXJ0U2VydmljZSAoU2UgaG91dmVyIHRhZyA8dW5iLW1lbnNhZ2VtPiBubyBIVE1MIGRvIGRpYWxvZylcclxuICAgIGlmICh0aGlzLmFsZXJ0U2VydmljZSAmJiBlcnJvVHJhdGFkby5tZW5zYWdlbUh0bWwpIHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2hvd01lc3NhZ2UoZXJyb1RyYXRhZG8ubWVuc2FnZW1IdG1sLCBVbmJUaXBvTWVuc2FnZW1FbnVtLkRBTkdFUiwgdGhpcy5pZE1lbnNhZ2VtU2VydmljZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuU25hY2tCYXIobWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNuYWNrQmFyLm9wZW4obWVzc2FnZSwgJ3gnLCB7XHJcbiAgICAgIGR1cmF0aW9uOiA1MDAwLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxufSIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPkNhZGFzdHJvIGRlIEUtbWFpbDwvaDE+XHJcbjxmb3JtIChuZ1N1Ym1pdCk9XCJzYWx2YXIoZm9ybSlcIiAjZm9ybT1cIm5nRm9ybVwiPlxyXG4gIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgICA8dW5iLW1lbnNhZ2VtIFtpZGVudGlmaWNhZG9yXT1cImlkTWVuc2FnZW1TZXJ2aWNlXCI+PC91bmItbWVuc2FnZW0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250YWluZXJcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZm9ybS0xMDBcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+VGlwbzwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwiZW1haWwudGlwb0VtYWlsQ29kaWdvXCIgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmFyVGlwb3NcIiBuYW1lPVwidGlwb0VtYWlsQ29kaWdvXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblRpcG9TZWxlY2lvbmFkbygkZXZlbnQudmFsdWUpXCIgcmVxdWlyZWQ+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdGlwbyBvZiBsaXN0YVRpcG9FbWFpbFwiIFt2YWx1ZV09XCJ0aXBvLmNvZGlnb1wiPlxyXG4gICAgICAgICAgICB7e3RpcG8uZGVub21pbmFjYW99fVxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZvcm0tMTAwXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICA8bWF0LWxhYmVsPkUtbWFpbDwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIG1hdElucHV0IFsobmdNb2RlbCldPVwiZW1haWwuZW1haWxcIiBuYW1lPVwiZW1haWxWYWx1ZVwiICNlbWFpbFZhbHVlPVwibmdNb2RlbFwiIC8+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XHJcblxyXG4gIDxtYXQtZGlhbG9nLWFjdGlvbnMgYWxpZ249XCJlbmRcIj5cclxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiBjb2xvcj1cIndhcm5cIiAoY2xpY2spPVwiY2xvc2UoKVwiPkZlY2hhcjwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gdHlwZT1cInN1Ym1pdFwiIGNvbG9yPVwicHJpbWFyeVwiPlNhbHZhcjwvYnV0dG9uPlxyXG4gIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG48L2Zvcm0+Il19
@@ -140,10 +140,10 @@ export class UnbPessoaEmailListComponent {
140
140
  // 6. Finalmente, ordene a lista
141
141
  this.emails.sort((a, b) => (a.ordem ?? 0) - (b.ordem ?? 0)); // <-- 'ordem'
142
142
  }
143
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UnbPessoaEmailListComponent, deps: [{ token: i1.MatSnackBar }, { token: i2.UnBPessoaService }, { token: i3.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
144
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: UnbPessoaEmailListComponent, selector: "lib-unb-pessoa-email-list", inputs: { podeEditar: "podeEditar", emails: "emails", backendURL: "backendURL" }, outputs: { emailsEmitted: "emailsEmitted" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"mes-container\">\r\n <div class=\"header-container\">\r\n <div class=\"mes-header\">\r\n <span class=\"titulo\">\r\n {{ emails?.length === 1 ? 'Email Cadastrado' : 'E-mails Cadastrados' }}\r\n </span>\r\n <span class=\"titulo\">({{ emails?.length || 0 }})</span>\r\n </div>\r\n\r\n <button type=\"button\" matTooltip=\"Novo Email\" mat-flat-button color=\"primary\" (click)=\"openFormDialog(null)\">\r\n Cadastrar Novo Email\r\n </button>\r\n </div>\r\n\r\n <!-- Exibe a tabela de despesas somente se houver despesas -->\r\n <table class=\"my-table\" *ngIf=\"emails && emails.length > 0\" cdkDropList (cdkDropListDropped)=\"moverLinha($event)\">\r\n\r\n <tr style=\"background-color: #e4e3e3cc;\">\r\n <th style=\"width: 5%; text-align: center;\">Ordem</th>\r\n <th>E-mail</th>\r\n <th>Tipo</th>\r\n <th style=\"width: 1%; text-align: center;\">A\u00E7\u00F5es</th>\r\n </tr>\r\n\r\n <tr *ngFor=\"let valor of emails; let i = index\" class=\"my-tr\" cdkDrag>\r\n\r\n <td style=\"text-align: center;\">\r\n <div class=\"drag-cell\" cdkDragHandle>\r\n <mat-icon>drag_indicator</mat-icon>\r\n <span>{{ i + 1 }}</span>\r\n </div>\r\n </td>\r\n\r\n <td>{{ valor.email }}</td>\r\n\r\n <td>{{ valor.tipo?.toUpperCase() }}</td>\r\n\r\n <td>\r\n <div class=\"actions-container\">\r\n <button type=\"button\" mat-icon-button aria-label=\"Salvar\" color=\"primary\" (click)=\"editar(valor)\">\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button type=\"button\" mat-icon-button aria-label=\"Deletar\" color=\"warn\" (click)=\"excluir(valor)\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </table>\r\n</div>", styles: [".mes-container{padding:12px;margin-bottom:2px;border-radius:8px;box-shadow:0 2px 6px #0000001a;transition:background-color .3s ease,box-shadow .3s ease}.mes-container:nth-child(2n){background-color:#f9f9fc}.mes-container:nth-child(odd){background-color:#fff}.mes-container:hover{background-color:#f0f0f5;box-shadow:0 4px 8px #00000026}.header-container{display:flex;align-items:center;margin-bottom:2px}.header-container button{margin-left:auto}.mes-header{display:flex;align-items:center;gap:6px;font-size:1.2rem;font-weight:700;color:#333}.my-table{width:100%;border-collapse:collapse;border-radius:8px;overflow:hidden;box-shadow:0 4px 8px #0000001a;font-family:Arial,sans-serif}.my-table th,.my-table td{padding:5px;text-align:left;border-bottom:1px solid #ddd}.my-table th{background-color:#005dbb7b;color:#fff;font-weight:700}.my-table tr{transition:background-color .3s ease}.my-table tr:hover{background-color:#f1f1f1}.my-table td{background-color:#fff}.my-table td button{transition:transform .2s ease}.my-table td button:hover{transform:scale(1.1)}.my-table td:last-child{text-align:center}.order-input{width:40px;text-align:center;border:1px solid #ccc;border-radius:4px;padding:2px}.order-input:focus{border-color:#1976d2;outline:none}.drag-cell{display:inline-flex;align-items:center;justify-content:center;gap:4px;cursor:grab;-webkit-user-select:none;user-select:none}.drag-cell mat-icon{font-size:18px;line-height:1;vertical-align:middle}.cdk-drag-preview{background:#fff;border-radius:6px;box-shadow:0 4px 12px #0003;display:table;border-collapse:collapse}.cdk-drag-placeholder{opacity:0;display:table-row}.cdk-drag-animating{transition:transform .2s cubic-bezier(0,0,.2,1)}table[cdkDropList] tr{border-bottom:1px solid #e0e0e0}table[cdkDropList] td{padding:8px}.actions-container{display:flex;justify-content:flex-end;gap:4px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }] }); }
143
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbPessoaEmailListComponent, deps: [{ token: i1.MatSnackBar }, { token: i2.UnBPessoaService }, { token: i3.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
144
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: UnbPessoaEmailListComponent, selector: "lib-unb-pessoa-email-list", inputs: { podeEditar: "podeEditar", emails: "emails", backendURL: "backendURL" }, outputs: { emailsEmitted: "emailsEmitted" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"mes-container\">\r\n <div class=\"header-container\">\r\n <div class=\"mes-header\">\r\n <span class=\"titulo\">\r\n {{ emails?.length === 1 ? 'Email Cadastrado' : 'E-mails Cadastrados' }}\r\n </span>\r\n <span class=\"titulo\">({{ emails?.length || 0 }})</span>\r\n </div>\r\n\r\n <button type=\"button\" matTooltip=\"Novo Email\" mat-flat-button color=\"primary\" (click)=\"openFormDialog(null)\">\r\n Cadastrar Novo Email\r\n </button>\r\n </div>\r\n\r\n <!-- Exibe a tabela de despesas somente se houver despesas -->\r\n <table class=\"my-table\" *ngIf=\"emails && emails.length > 0\" cdkDropList (cdkDropListDropped)=\"moverLinha($event)\">\r\n\r\n <tr style=\"background-color: #e4e3e3cc;\">\r\n <th style=\"width: 5%; text-align: center;\">Ordem</th>\r\n <th>E-mail</th>\r\n <th>Tipo</th>\r\n <th style=\"width: 1%; text-align: center;\">A\u00E7\u00F5es</th>\r\n </tr>\r\n\r\n <tr *ngFor=\"let valor of emails; let i = index\" class=\"my-tr\" cdkDrag>\r\n\r\n <td style=\"text-align: center;\">\r\n <div class=\"drag-cell\" cdkDragHandle>\r\n <mat-icon>drag_indicator</mat-icon>\r\n <span>{{ i + 1 }}</span>\r\n </div>\r\n </td>\r\n\r\n <td>{{ valor.email }}</td>\r\n\r\n <td>{{ valor.tipo?.toUpperCase() }}</td>\r\n\r\n <td>\r\n <div class=\"actions-container\">\r\n <button type=\"button\" mat-icon-button aria-label=\"Salvar\" color=\"primary\" (click)=\"editar(valor)\">\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button type=\"button\" mat-icon-button aria-label=\"Deletar\" color=\"warn\" (click)=\"excluir(valor)\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </table>\r\n</div>", styles: [".mes-container{padding:12px;margin-bottom:2px;border-radius:8px;box-shadow:0 2px 6px #0000001a;transition:background-color .3s ease,box-shadow .3s ease}.mes-container:nth-child(2n){background-color:#f9f9fc}.mes-container:nth-child(odd){background-color:#fff}.mes-container:hover{background-color:#f0f0f5;box-shadow:0 4px 8px #00000026}.header-container{display:flex;align-items:center;margin-bottom:2px}.header-container button{margin-left:auto}.mes-header{display:flex;align-items:center;gap:6px;font-size:1.2rem;font-weight:700;color:#333}.my-table{width:100%;border-collapse:collapse;border-radius:8px;overflow:hidden;box-shadow:0 4px 8px #0000001a;font-family:Arial,sans-serif}.my-table th,.my-table td{padding:5px;text-align:left;border-bottom:1px solid #ddd}.my-table th{background-color:#005dbb7b;color:#fff;font-weight:700}.my-table tr{transition:background-color .3s ease}.my-table tr:hover{background-color:#f1f1f1}.my-table td{background-color:#fff}.my-table td button{transition:transform .2s ease}.my-table td button:hover{transform:scale(1.1)}.my-table td:last-child{text-align:center}.order-input{width:40px;text-align:center;border:1px solid #ccc;border-radius:4px;padding:2px}.order-input:focus{border-color:#1976d2;outline:none}.drag-cell{display:inline-flex;align-items:center;justify-content:center;gap:4px;cursor:grab;-webkit-user-select:none;user-select:none}.drag-cell mat-icon{font-size:18px;line-height:1;vertical-align:middle}.cdk-drag-preview{background:#fff;border-radius:6px;box-shadow:0 4px 12px #0003;display:table;border-collapse:collapse}.cdk-drag-placeholder{opacity:0;display:table-row}.cdk-drag-animating{transition:transform .2s cubic-bezier(0,0,.2,1)}table[cdkDropList] tr{border-bottom:1px solid #e0e0e0}table[cdkDropList] td{padding:8px}.actions-container{display:flex;justify-content:flex-end;gap:4px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }] }); }
145
145
  }
146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: UnbPessoaEmailListComponent, decorators: [{
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbPessoaEmailListComponent, decorators: [{
147
147
  type: Component,
148
148
  args: [{ standalone: false, selector: 'lib-unb-pessoa-email-list', template: "<div class=\"mes-container\">\r\n <div class=\"header-container\">\r\n <div class=\"mes-header\">\r\n <span class=\"titulo\">\r\n {{ emails?.length === 1 ? 'Email Cadastrado' : 'E-mails Cadastrados' }}\r\n </span>\r\n <span class=\"titulo\">({{ emails?.length || 0 }})</span>\r\n </div>\r\n\r\n <button type=\"button\" matTooltip=\"Novo Email\" mat-flat-button color=\"primary\" (click)=\"openFormDialog(null)\">\r\n Cadastrar Novo Email\r\n </button>\r\n </div>\r\n\r\n <!-- Exibe a tabela de despesas somente se houver despesas -->\r\n <table class=\"my-table\" *ngIf=\"emails && emails.length > 0\" cdkDropList (cdkDropListDropped)=\"moverLinha($event)\">\r\n\r\n <tr style=\"background-color: #e4e3e3cc;\">\r\n <th style=\"width: 5%; text-align: center;\">Ordem</th>\r\n <th>E-mail</th>\r\n <th>Tipo</th>\r\n <th style=\"width: 1%; text-align: center;\">A\u00E7\u00F5es</th>\r\n </tr>\r\n\r\n <tr *ngFor=\"let valor of emails; let i = index\" class=\"my-tr\" cdkDrag>\r\n\r\n <td style=\"text-align: center;\">\r\n <div class=\"drag-cell\" cdkDragHandle>\r\n <mat-icon>drag_indicator</mat-icon>\r\n <span>{{ i + 1 }}</span>\r\n </div>\r\n </td>\r\n\r\n <td>{{ valor.email }}</td>\r\n\r\n <td>{{ valor.tipo?.toUpperCase() }}</td>\r\n\r\n <td>\r\n <div class=\"actions-container\">\r\n <button type=\"button\" mat-icon-button aria-label=\"Salvar\" color=\"primary\" (click)=\"editar(valor)\">\r\n <mat-icon>edit</mat-icon>\r\n </button>\r\n <button type=\"button\" mat-icon-button aria-label=\"Deletar\" color=\"warn\" (click)=\"excluir(valor)\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </div>\r\n </td>\r\n </tr>\r\n </table>\r\n</div>", styles: [".mes-container{padding:12px;margin-bottom:2px;border-radius:8px;box-shadow:0 2px 6px #0000001a;transition:background-color .3s ease,box-shadow .3s ease}.mes-container:nth-child(2n){background-color:#f9f9fc}.mes-container:nth-child(odd){background-color:#fff}.mes-container:hover{background-color:#f0f0f5;box-shadow:0 4px 8px #00000026}.header-container{display:flex;align-items:center;margin-bottom:2px}.header-container button{margin-left:auto}.mes-header{display:flex;align-items:center;gap:6px;font-size:1.2rem;font-weight:700;color:#333}.my-table{width:100%;border-collapse:collapse;border-radius:8px;overflow:hidden;box-shadow:0 4px 8px #0000001a;font-family:Arial,sans-serif}.my-table th,.my-table td{padding:5px;text-align:left;border-bottom:1px solid #ddd}.my-table th{background-color:#005dbb7b;color:#fff;font-weight:700}.my-table tr{transition:background-color .3s ease}.my-table tr:hover{background-color:#f1f1f1}.my-table td{background-color:#fff}.my-table td button{transition:transform .2s ease}.my-table td button:hover{transform:scale(1.1)}.my-table td:last-child{text-align:center}.order-input{width:40px;text-align:center;border:1px solid #ccc;border-radius:4px;padding:2px}.order-input:focus{border-color:#1976d2;outline:none}.drag-cell{display:inline-flex;align-items:center;justify-content:center;gap:4px;cursor:grab;-webkit-user-select:none;user-select:none}.drag-cell mat-icon{font-size:18px;line-height:1;vertical-align:middle}.cdk-drag-preview{background:#fff;border-radius:6px;box-shadow:0 4px 12px #0003;display:table;border-collapse:collapse}.cdk-drag-placeholder{opacity:0;display:table-row}.cdk-drag-animating{transition:transform .2s cubic-bezier(0,0,.2,1)}table[cdkDropList] tr{border-bottom:1px solid #e0e0e0}table[cdkDropList] td{padding:8px}.actions-container{display:flex;justify-content:flex-end;gap:4px}\n"] }]
149
149
  }], ctorParameters: () => [{ type: i1.MatSnackBar }, { type: i2.UnBPessoaService }, { type: i3.MatDialog }], propDecorators: { podeEditar: [{
@@ -155,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
155
155
  }], emailsEmitted: [{
156
156
  type: Output
157
157
  }] } });
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iLXBlc3NvYS1lbWFpbC1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLXBlc3NvYS91bmItcGVzc29hLWVtYWlsLWZvcm0vdW5iLXBlc3NvYS1lbWFpbC1saXN0LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLXBlc3NvYS91bmItcGVzc29hLWVtYWlsLWZvcm0vdW5iLXBlc3NvYS1lbWFpbC1saXN0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFNekcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEUsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7QUFRdEUsTUFBTSxPQUFPLDJCQUEyQjtJQVN0QyxZQUFvQixRQUFxQixFQUFVLE9BQXlCLEVBQVMsTUFBaUI7UUFBbEYsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQVA3RixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFDakIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN2QixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO0lBTS9ELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTdDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsd0VBQXdFO0lBQ3JHLENBQUM7SUFFRCw4REFBOEQ7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UUFDckQsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLEtBQUssQ0FBQyxLQUFLLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztZQUN0QyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUVILGdDQUFnQztRQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWM7SUFDM0UsQ0FBQzsrR0F6SlEsMkJBQTJCO21HQUEzQiwyQkFBMkIscU5DaEJ4Qyw4akVBaURNOzs0RkRqQ08sMkJBQTJCO2tCQU52QyxTQUFTO2lDQUNJLEtBQUssWUFDUCwyQkFBMkI7dUlBTTVCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVW5iUGVzc29hRW1haWwsIFVuYlBlc3NvYUVtYWlsVGlwbyB9IGZyb20gJy4uL3VuYi1wZXNzb2EtbW9kZWxzL3VuYi1wZXNzb2EtZW1haWwubW9kZWwnO1xyXG5pbXBvcnQgeyBVbkJQZXNzb2FTZXJ2aWNlIH0gZnJvbSAnLi4vdW5iLXBlc3NvYS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVW5iUGVzc29hRW1haWxGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi91bmItcGVzc29hLWVtYWlsLWZvcm0nO1xyXG5pbXBvcnQgeyBVbmJUaXBvUGVzc29hRW51bSB9IGZyb20gJy4uL3VuYi10aXBvLXBlc3NvYS5lbnVtJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc3RhbmRhbG9uZTogZmFsc2UsXHJcbiAgc2VsZWN0b3I6ICdsaWItdW5iLXBlc3NvYS1lbWFpbC1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdW5iLXBlc3NvYS1lbWFpbC1saXN0Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi91bmItcGVzc29hLWVtYWlsLWxpc3QuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVW5iUGVzc29hRW1haWxMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG5cclxuICBASW5wdXQoKSBwb2RlRWRpdGFyID0gdHJ1ZTtcclxuICBASW5wdXQoKSBlbWFpbHM6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIGJhY2tlbmRVUkw6IHN0cmluZyA9ICcnO1xyXG4gIEBPdXRwdXQoKSBlbWFpbHNFbWl0dGVkID0gbmV3IEV2ZW50RW1pdHRlcjxVbmJQZXNzb2FFbWFpbFtdPigpO1xyXG5cclxuICB0aXBvRW1haWwhOiBPYnNlcnZhYmxlPFVuYlBlc3NvYUVtYWlsVGlwb1tdPjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsIHByaXZhdGUgc2VydmljZTogVW5CUGVzc29hU2VydmljZSwgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRpcG9FbWFpbCA9IHRoaXMuc2VydmljZS5nZXRUaXBvRW1haWwoKTtcclxuXHJcbiAgICB0aGlzLnNvcnRBbmRBc3NpZ25PcmRlcigpOyAvLyBvcmdhbml6YSBhIGxpc3RhIGRlIGVtYWlscy4gQXMgdmV6ZXMgdGVtIG9yZGVtIGR1cGxpY2FkYSBvdSBmYWx0YW5kby5cclxuICB9XHJcblxyXG4gIC8vIHRlbSBxdWUgZmF6ZXIgaXNzbyBwcSBubyBvbiBpbml0IGV1IGFpbmRhIG5hbyB0ZW5obyBhIGxpc3RhXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgLy8gVmVyaWZpY2Egc2UgYSBwcm9wcmllZGFkZSAnZW1haWxzJyBtdWRvdVxyXG4gICAgaWYgKGNoYW5nZXNbJ2VtYWlscyddICYmIHRoaXMuZW1haWxzKSB7XHJcbiAgICAgIC8vIGNoYW1hZGEgcXVhbmRvIG9zIGRhZG9zIHJlYWxtZW50ZSBjaGVnYXJlbVxyXG4gICAgICB0aGlzLnNvcnRBbmRBc3NpZ25PcmRlcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhjbHVpcihlbWFpbFBhcmFFeGNsdWlyOiBVbmJQZXNzb2FFbWFpbCkgeyAvLyA8LS0gVElQTyBDT1JSSUdJRE9cclxuXHJcbiAgICBpZiAoZW1haWxQYXJhRXhjbHVpci5jb2RpZ28pIHtcclxuICAgICAgLy8gU2UgdGVtIGPDs2RpZ28sIHJlbW92ZSBwb3IgZWxlXHJcbiAgICAgIHRoaXMuZW1haWxzID0gdGhpcy5lbWFpbHMuZmlsdGVyKGUgPT4gZS5jb2RpZ28gIT09IGVtYWlsUGFyYUV4Y2x1aXIuY29kaWdvKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIFNlIG7Do28gdGVtIGPDs2RpZ28gKG5vdm8gaXRlbSksIHJlbW92ZSBwZWxhIG9yZGVtXHJcbiAgICAgIHRoaXMuZW1haWxzID0gdGhpcy5lbWFpbHMuZmlsdGVyKGUgPT4gZS5vcmRlbSAhPT0gZW1haWxQYXJhRXhjbHVpci5vcmRlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2hhbWEgc3VhIGZ1bsOnw6NvIGV4aXN0ZW50ZSBxdWUgcmUtY2FsY3VsYSBhcyBvcmRlbnMgZSBlbWl0ZSBhIGxpc3RhXHJcbiAgICB0aGlzLmF0dWFsaXphck9yZGVtKCk7XHJcbiAgfVxyXG5cclxuICBlZGl0YXIoZW1haWw6IFVuYlBlc3NvYUVtYWlsVGlwbykge1xyXG4gICAgdGhpcy5vcGVuRm9ybURpYWxvZyhlbWFpbCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgYXR1YWxpemFyT3JkZW0oKSB7XHJcbiAgICB0aGlzLmVtYWlscy5mb3JFYWNoKChlbWFpbCwgaWR4KSA9PiB7XHJcbiAgICAgIGVtYWlsLm9yZGVtID0gaWR4ICsgMTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZW1haWxzRW1pdHRlZC5lbWl0KFsuLi50aGlzLmVtYWlsc10pO1xyXG4gIH1cclxuXHJcbiAgb3BlbkZvcm1EaWFsb2coZW1haWxUb0VkaXQ6IGFueSkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihVbmJQZXNzb2FFbWFpbEZvcm1Db21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6ICc5MDBweCcsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBlbWFpbDogZW1haWxUb0VkaXQsIC8vIEUtbWFpbCBhIHNlciBlZGl0YWRvIG91IHZhemlvIHBhcmEgbm92b1xyXG4gICAgICAgIGVtYWlsc0xpc3Q6IHRoaXMuZW1haWxzIC8vIEEgc3VhIGxpc3RhIENPTVBMRVRBIGRlIGUtbWFpbHNcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICBpZiAoIXJlc3VsdCkge1xyXG4gICAgICAgIHJldHVybjsgLy8gVXN1w6FyaW8gY2xpY291IGVtICdGZWNoYXInIG91ICdDYW5jZWxhcidcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gJ3Jlc3VsdCcgw6kgbyBvYmpldG8gcmV0b3JuYWRvIHBlbG8gZGlhbG9nIChlZGl0YWRvIG91IG5vdm8pXHJcbiAgICAgIGxldCBpbmRleCA9IC0xO1xyXG5cclxuICAgICAgLy8gMS4gVGVudGEgZW5jb250cmFyIHBlbG8gJ2NvZGlnbycgKHBhcmEgaXRlbnMgcXVlIGrDoSB2aWVyYW0gZG8gYmFuY28pXHJcbiAgICAgIGlmIChyZXN1bHQuY29kaWdvKSB7XHJcbiAgICAgICAgaW5kZXggPSB0aGlzLmVtYWlscy5maW5kSW5kZXgoZSA9PiBlLmNvZGlnbyA9PT0gcmVzdWx0LmNvZGlnbyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIDIuIFNlIG7Do28gYWNob3UgcGVsbyAnY29kaWdvJywgdGVudGEgcGVsYSAnb3JkZW0nLlxyXG4gICAgICBpZiAoaW5kZXggPT09IC0xICYmIHJlc3VsdC5vcmRlbSkge1xyXG4gICAgICAgIGluZGV4ID0gdGhpcy5lbWFpbHMuZmluZEluZGV4KGUgPT4gZS5vcmRlbSA9PT0gcmVzdWx0Lm9yZGVtKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICAvLyBFTkNPTlRST1UgKHBlbG8gJ2NvZGlnbycgb3UgcGVsYSAnb3JkZW0nKTogQXR1YWxpemEgbyBpdGVtIGV4aXN0ZW50ZVxyXG4gICAgICAgIHRoaXMuZW1haWxzW2luZGV4XSA9IHJlc3VsdDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBOw4NPIEVOQ09OVFJPVTogw4kgdW0gaXRlbSAxMDAlIG5vdm8gKG7Do28gdW1hIGVkacOnw6NvKVxyXG4gICAgICAgIHRoaXMuZW1haWxzLnB1c2gocmVzdWx0KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gUmUtb3JkZW5hIGEgbGlzdGEgcGVsYSAnb3JkZW0nIGUgZW1pdGUgdW1hICpub3ZhIGPDs3BpYSpcclxuICAgICAgdGhpcy5lbWFpbHMuc29ydCgoYSwgYikgPT4gKGEub3JkZW0gPz8gMCkgLSAoYi5vcmRlbSA/PyAwKSk7XHJcbiAgICAgIHRoaXMuZW1haWxzRW1pdHRlZC5lbWl0KFsuLi50aGlzLmVtYWlsc10pOyAvLyA8LS0gRW1pdGUgbm92YSBjw7NwaWFcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbW92ZXJMaW5oYShldmVudDogQ2RrRHJhZ0Ryb3A8YW55W10+KSB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5lbWFpbHMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICB0aGlzLmF0dWFsaXphck9yZGVtKClcclxuICB9XHJcblxyXG5wcml2YXRlIHNvcnRBbmRBc3NpZ25PcmRlcigpOiB2b2lkIHtcclxuICAgIC8vIDEuIENyaWUgdW1hIGPDs3BpYSBkYSBsaXN0YVxyXG4gICAgY29uc3QgdGVtcEVtYWlscyA9IFsuLi50aGlzLmVtYWlsc107IC8vIDwtLSBOT01FIENPUlJJR0lET1xyXG5cclxuICAgIC8vIDIuIE1hcGVpZSBhcyBvcmRlbnMgZXhpc3RlbnRlc1xyXG4gICAgY29uc3Qgb3JkZXJNYXAgPSBuZXcgTWFwPG51bWJlciwgVW5iUGVzc29hRW1haWxbXT4oKTtcclxuICAgIGNvbnN0IGVtYWlsc1dpdGhvdXRPcmRlcjogVW5iUGVzc29hRW1haWxbXSA9IFtdO1xyXG5cclxuICAgIHRlbXBFbWFpbHMuZm9yRWFjaChlbWFpbCA9PiB7XHJcbiAgICAgIC8vIENPUlJFw4fDg08gQVFVSTogJ29yZGVtJyBlbSB2ZXogZGUgJ29yZGVtRW1haWwnXHJcbiAgICAgIGlmIChlbWFpbC5vcmRlbSAhPT0gdW5kZWZpbmVkICYmIGVtYWlsLm9yZGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgaWYgKCFvcmRlck1hcC5oYXMoZW1haWwub3JkZW0pKSB7XHJcbiAgICAgICAgICBvcmRlck1hcC5zZXQoZW1haWwub3JkZW0sIFtdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgb3JkZXJNYXAuZ2V0KGVtYWlsLm9yZGVtKT8ucHVzaChlbWFpbCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZW1haWxzV2l0aG91dE9yZGVyLnB1c2goZW1haWwpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyAzLiAuLi4gKEZ1bsOnw7VlcyAnZmluYWxVc2VkT3JkZXJzJywgJ25leHRBdmFpbGFibGVPcmRlcicgY29udGludWFtIGlndWFpcykgLi4uXHJcbiAgICBjb25zdCBmaW5hbFVzZWRPcmRlcnMgPSBuZXcgU2V0PG51bWJlcj4oKTtcclxuICAgIGxldCBuZXh0QXZhaWxhYmxlT3JkZXIgPSAwO1xyXG4gICAgY29uc3QgZ2V0TmV4dEF2YWlsYWJsZU9yZGVyID0gKCkgPT4ge1xyXG4gICAgICB3aGlsZSAoZmluYWxVc2VkT3JkZXJzLmhhcyhuZXh0QXZhaWxhYmxlT3JkZXIpKSB7XHJcbiAgICAgICAgbmV4dEF2YWlsYWJsZU9yZGVyKys7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG5leHRBdmFpbGFibGVPcmRlcisrO1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyA0LiBQcm9jZXNzZSBlbWFpbHMgY29tIG9yZGVtIGRlZmluaWRhOlxyXG4gICAgdGhpcy5lbWFpbHMuZm9yRWFjaChlbWFpbCA9PiB7IC8vIDwtLSBOT01FIENPUlJJR0lET1xyXG4gICAgICAvLyBDT1JSRcOHw4NPIEFRVUk6ICdvcmRlbScgZW0gdmV6IGRlICdvcmRlbUVtYWlsJ1xyXG4gICAgICBpZiAoZW1haWwub3JkZW0gIT09IHVuZGVmaW5lZCAmJiBlbWFpbC5vcmRlbSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGlmICghZmluYWxVc2VkT3JkZXJzLmhhcyhlbWFpbC5vcmRlbSkpIHtcclxuICAgICAgICAgIGZpbmFsVXNlZE9yZGVycy5hZGQoZW1haWwub3JkZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyBEdXBsaWNhdGEsIGF0cmlidWEgdW1hIG5vdmFcclxuICAgICAgICAgIGVtYWlsLm9yZGVtID0gZ2V0TmV4dEF2YWlsYWJsZU9yZGVyKCk7XHJcbiAgICAgICAgICBmaW5hbFVzZWRPcmRlcnMuYWRkKGVtYWlsLm9yZGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIDUuIEF0cmlidWEgb3JkZW5zIHBhcmEgZW1haWxzIHF1ZSBuw6NvIHRpbmhhbSBvcmRlbVxyXG4gICAgZW1haWxzV2l0aG91dE9yZGVyLmZvckVhY2goZW1haWwgPT4geyAvLyA8LS0gTk9NRSBDT1JSSUdJRE9cclxuICAgICAgZW1haWwub3JkZW0gPSBnZXROZXh0QXZhaWxhYmxlT3JkZXIoKTsgXHJcbiAgICAgIGZpbmFsVXNlZE9yZGVycy5hZGQoZW1haWwub3JkZW0pOyBcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIDYuIEZpbmFsbWVudGUsIG9yZGVuZSBhIGxpc3RhXHJcbiAgICB0aGlzLmVtYWlscy5zb3J0KChhLCBiKSA9PiAoYS5vcmRlbSA/PyAwKSAtIChiLm9yZGVtID8/IDApKTsgLy8gPC0tICdvcmRlbSdcclxuICAgIH1cclxuICB9IiwiPGRpdiBjbGFzcz1cIm1lcy1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lcy1oZWFkZXJcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXR1bG9cIj5cclxuICAgICAgICAgICAgICAgIHt7IGVtYWlscz8ubGVuZ3RoID09PSAxID8gJ0VtYWlsIENhZGFzdHJhZG8nIDogJ0UtbWFpbHMgQ2FkYXN0cmFkb3MnIH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXR1bG9cIj4oe3sgZW1haWxzPy5sZW5ndGggfHwgMCB9fSk8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdFRvb2x0aXA9XCJOb3ZvIEVtYWlsXCIgbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvcGVuRm9ybURpYWxvZyhudWxsKVwiPlxyXG4gICAgICAgICAgICBDYWRhc3RyYXIgTm92byBFbWFpbFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBFeGliZSBhIHRhYmVsYSBkZSBkZXNwZXNhcyBzb21lbnRlIHNlIGhvdXZlciBkZXNwZXNhcyAtLT5cclxuICAgIDx0YWJsZSBjbGFzcz1cIm15LXRhYmxlXCIgKm5nSWY9XCJlbWFpbHMgJiYgZW1haWxzLmxlbmd0aCA+IDBcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm1vdmVyTGluaGEoJGV2ZW50KVwiPlxyXG5cclxuICAgICAgICA8dHIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlM2UzY2M7XCI+XHJcbiAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA1JTsgdGV4dC1hbGlnbjogY2VudGVyO1wiPk9yZGVtPC90aD5cclxuICAgICAgICAgICAgPHRoPkUtbWFpbDwvdGg+XHJcbiAgICAgICAgICAgIDx0aD5UaXBvPC90aD5cclxuICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDElOyB0ZXh0LWFsaWduOiBjZW50ZXI7XCI+QcOnw7VlczwvdGg+XHJcbiAgICAgICAgPC90cj5cclxuXHJcbiAgICAgICAgPHRyICpuZ0Zvcj1cImxldCB2YWxvciBvZiBlbWFpbHM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cIm15LXRyXCIgY2RrRHJhZz5cclxuXHJcbiAgICAgICAgICAgIDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmFnLWNlbGxcIiBjZGtEcmFnSGFuZGxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5kcmFnX2luZGljYXRvcjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgaSArIDEgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC90ZD5cclxuXHJcbiAgICAgICAgICAgIDx0ZD57eyB2YWxvci5lbWFpbCB9fTwvdGQ+XHJcblxyXG4gICAgICAgICAgICA8dGQ+e3sgdmFsb3IudGlwbz8udG9VcHBlckNhc2UoKSB9fTwvdGQ+XHJcblxyXG4gICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9ucy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIlNhbHZhclwiIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJlZGl0YXIodmFsb3IpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5lZGl0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkRlbGV0YXJcIiBjb2xvcj1cIndhcm5cIiAoY2xpY2spPVwiZXhjbHVpcih2YWxvcilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgPC90YWJsZT5cclxuPC9kaXY+Il19
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iLXBlc3NvYS1lbWFpbC1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLXBlc3NvYS91bmItcGVzc29hLWVtYWlsLWZvcm0vdW5iLXBlc3NvYS1lbWFpbC1saXN0LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLXBlc3NvYS91bmItcGVzc29hLWVtYWlsLWZvcm0vdW5iLXBlc3NvYS1lbWFpbC1saXN0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFNekcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEUsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7QUFRdEUsTUFBTSxPQUFPLDJCQUEyQjtJQVN0QyxZQUFvQixRQUFxQixFQUFVLE9BQXlCLEVBQVMsTUFBaUI7UUFBbEYsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQVA3RixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFDakIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN2QixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO0lBTS9ELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTdDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsd0VBQXdFO0lBQ3JHLENBQUM7SUFFRCw4REFBOEQ7SUFDOUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLDJDQUEyQztRQUMzQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDckMsNkNBQTZDO1lBQzdDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUFDLGdCQUFnQztRQUV0QyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLGdDQUFnQztZQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RSxDQUFDO2FBQU0sQ0FBQztZQUNOLG1EQUFtRDtZQUNuRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBRUQsc0VBQXNFO1FBQ3RFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQXlCO1FBQzlCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUdELGNBQWM7UUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNqQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELGNBQWMsQ0FBQyxXQUFnQjtRQUM3QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUM5RCxLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRTtnQkFDSixLQUFLLEVBQUUsV0FBVyxFQUFFLDBDQUEwQztnQkFDOUQsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsa0NBQWtDO2FBQzNEO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1osT0FBTyxDQUFDLDJDQUEyQztZQUNyRCxDQUFDO1lBRUQsOERBQThEO1lBQzlELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRWYsdUVBQXVFO1lBQ3ZFLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNsQixLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqRSxDQUFDO1lBRUQscURBQXFEO1lBQ3JELElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDakMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0QsQ0FBQztZQUVELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2YsdUVBQXVFO2dCQUN2RSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQztZQUM5QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sc0RBQXNEO2dCQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzQixDQUFDO1lBRUQsMERBQTBEO1lBQzFELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUF1QjtRQUNwRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBeUI7UUFDbEMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQ3ZCLENBQUM7SUFFSyxrQkFBa0I7UUFDdEIsNkJBQTZCO1FBQzdCLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxxQkFBcUI7UUFFMUQsaUNBQWlDO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxFQUE0QixDQUFDO1FBQ3JELE1BQU0sa0JBQWtCLEdBQXFCLEVBQUUsQ0FBQztRQUVoRCxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3pCLGdEQUFnRDtZQUNoRCxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUMvQixRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2hDLENBQUM7Z0JBQ0QsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsZ0ZBQWdGO1FBQ2hGLE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFDMUMsSUFBSSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7UUFDM0IsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLEVBQUU7WUFDakMsT0FBTyxlQUFlLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztnQkFDL0Msa0JBQWtCLEVBQUUsQ0FBQztZQUN2QixDQUFDO1lBQ0QsT0FBTyxrQkFBa0IsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQztRQUVGLHlDQUF5QztRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQixnREFBZ0Q7WUFDaEQsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUN0RCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDdEMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLENBQUM7cUJBQU0sQ0FBQztvQkFDTiw4QkFBOEI7b0JBQzlCLEtBQUssQ0FBQyxLQUFLLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztvQkFDdEMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxxREFBcUQ7UUFDckQsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLEtBQUssQ0FBQyxLQUFLLEdBQUcscUJBQXFCLEVBQUUsQ0FBQztZQUN0QyxlQUFlLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUVILGdDQUFnQztRQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWM7SUFDM0UsQ0FBQzs4R0F6SlEsMkJBQTJCO2tHQUEzQiwyQkFBMkIscU5DaEJ4Qyw4akVBaURNOzsyRkRqQ08sMkJBQTJCO2tCQU52QyxTQUFTO2lDQUNJLEtBQUssWUFDUCwyQkFBMkI7dUlBTTVCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVW5iUGVzc29hRW1haWwsIFVuYlBlc3NvYUVtYWlsVGlwbyB9IGZyb20gJy4uL3VuYi1wZXNzb2EtbW9kZWxzL3VuYi1wZXNzb2EtZW1haWwubW9kZWwnO1xyXG5pbXBvcnQgeyBVbkJQZXNzb2FTZXJ2aWNlIH0gZnJvbSAnLi4vdW5iLXBlc3NvYS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVW5iUGVzc29hRW1haWxGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi91bmItcGVzc29hLWVtYWlsLWZvcm0nO1xyXG5pbXBvcnQgeyBVbmJUaXBvUGVzc29hRW51bSB9IGZyb20gJy4uL3VuYi10aXBvLXBlc3NvYS5lbnVtJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc3RhbmRhbG9uZTogZmFsc2UsXHJcbiAgc2VsZWN0b3I6ICdsaWItdW5iLXBlc3NvYS1lbWFpbC1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdW5iLXBlc3NvYS1lbWFpbC1saXN0Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi91bmItcGVzc29hLWVtYWlsLWxpc3QuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVW5iUGVzc29hRW1haWxMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG5cclxuICBASW5wdXQoKSBwb2RlRWRpdGFyID0gdHJ1ZTtcclxuICBASW5wdXQoKSBlbWFpbHM6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIGJhY2tlbmRVUkw6IHN0cmluZyA9ICcnO1xyXG4gIEBPdXRwdXQoKSBlbWFpbHNFbWl0dGVkID0gbmV3IEV2ZW50RW1pdHRlcjxVbmJQZXNzb2FFbWFpbFtdPigpO1xyXG5cclxuICB0aXBvRW1haWwhOiBPYnNlcnZhYmxlPFVuYlBlc3NvYUVtYWlsVGlwb1tdPjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsIHByaXZhdGUgc2VydmljZTogVW5CUGVzc29hU2VydmljZSwgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRpcG9FbWFpbCA9IHRoaXMuc2VydmljZS5nZXRUaXBvRW1haWwoKTtcclxuXHJcbiAgICB0aGlzLnNvcnRBbmRBc3NpZ25PcmRlcigpOyAvLyBvcmdhbml6YSBhIGxpc3RhIGRlIGVtYWlscy4gQXMgdmV6ZXMgdGVtIG9yZGVtIGR1cGxpY2FkYSBvdSBmYWx0YW5kby5cclxuICB9XHJcblxyXG4gIC8vIHRlbSBxdWUgZmF6ZXIgaXNzbyBwcSBubyBvbiBpbml0IGV1IGFpbmRhIG5hbyB0ZW5obyBhIGxpc3RhXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgLy8gVmVyaWZpY2Egc2UgYSBwcm9wcmllZGFkZSAnZW1haWxzJyBtdWRvdVxyXG4gICAgaWYgKGNoYW5nZXNbJ2VtYWlscyddICYmIHRoaXMuZW1haWxzKSB7XHJcbiAgICAgIC8vIGNoYW1hZGEgcXVhbmRvIG9zIGRhZG9zIHJlYWxtZW50ZSBjaGVnYXJlbVxyXG4gICAgICB0aGlzLnNvcnRBbmRBc3NpZ25PcmRlcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZXhjbHVpcihlbWFpbFBhcmFFeGNsdWlyOiBVbmJQZXNzb2FFbWFpbCkgeyAvLyA8LS0gVElQTyBDT1JSSUdJRE9cclxuXHJcbiAgICBpZiAoZW1haWxQYXJhRXhjbHVpci5jb2RpZ28pIHtcclxuICAgICAgLy8gU2UgdGVtIGPDs2RpZ28sIHJlbW92ZSBwb3IgZWxlXHJcbiAgICAgIHRoaXMuZW1haWxzID0gdGhpcy5lbWFpbHMuZmlsdGVyKGUgPT4gZS5jb2RpZ28gIT09IGVtYWlsUGFyYUV4Y2x1aXIuY29kaWdvKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIFNlIG7Do28gdGVtIGPDs2RpZ28gKG5vdm8gaXRlbSksIHJlbW92ZSBwZWxhIG9yZGVtXHJcbiAgICAgIHRoaXMuZW1haWxzID0gdGhpcy5lbWFpbHMuZmlsdGVyKGUgPT4gZS5vcmRlbSAhPT0gZW1haWxQYXJhRXhjbHVpci5vcmRlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2hhbWEgc3VhIGZ1bsOnw6NvIGV4aXN0ZW50ZSBxdWUgcmUtY2FsY3VsYSBhcyBvcmRlbnMgZSBlbWl0ZSBhIGxpc3RhXHJcbiAgICB0aGlzLmF0dWFsaXphck9yZGVtKCk7XHJcbiAgfVxyXG5cclxuICBlZGl0YXIoZW1haWw6IFVuYlBlc3NvYUVtYWlsVGlwbykge1xyXG4gICAgdGhpcy5vcGVuRm9ybURpYWxvZyhlbWFpbCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgYXR1YWxpemFyT3JkZW0oKSB7XHJcbiAgICB0aGlzLmVtYWlscy5mb3JFYWNoKChlbWFpbCwgaWR4KSA9PiB7XHJcbiAgICAgIGVtYWlsLm9yZGVtID0gaWR4ICsgMTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZW1haWxzRW1pdHRlZC5lbWl0KFsuLi50aGlzLmVtYWlsc10pO1xyXG4gIH1cclxuXHJcbiAgb3BlbkZvcm1EaWFsb2coZW1haWxUb0VkaXQ6IGFueSkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihVbmJQZXNzb2FFbWFpbEZvcm1Db21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6ICc5MDBweCcsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBlbWFpbDogZW1haWxUb0VkaXQsIC8vIEUtbWFpbCBhIHNlciBlZGl0YWRvIG91IHZhemlvIHBhcmEgbm92b1xyXG4gICAgICAgIGVtYWlsc0xpc3Q6IHRoaXMuZW1haWxzIC8vIEEgc3VhIGxpc3RhIENPTVBMRVRBIGRlIGUtbWFpbHNcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICBpZiAoIXJlc3VsdCkge1xyXG4gICAgICAgIHJldHVybjsgLy8gVXN1w6FyaW8gY2xpY291IGVtICdGZWNoYXInIG91ICdDYW5jZWxhcidcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gJ3Jlc3VsdCcgw6kgbyBvYmpldG8gcmV0b3JuYWRvIHBlbG8gZGlhbG9nIChlZGl0YWRvIG91IG5vdm8pXHJcbiAgICAgIGxldCBpbmRleCA9IC0xO1xyXG5cclxuICAgICAgLy8gMS4gVGVudGEgZW5jb250cmFyIHBlbG8gJ2NvZGlnbycgKHBhcmEgaXRlbnMgcXVlIGrDoSB2aWVyYW0gZG8gYmFuY28pXHJcbiAgICAgIGlmIChyZXN1bHQuY29kaWdvKSB7XHJcbiAgICAgICAgaW5kZXggPSB0aGlzLmVtYWlscy5maW5kSW5kZXgoZSA9PiBlLmNvZGlnbyA9PT0gcmVzdWx0LmNvZGlnbyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIDIuIFNlIG7Do28gYWNob3UgcGVsbyAnY29kaWdvJywgdGVudGEgcGVsYSAnb3JkZW0nLlxyXG4gICAgICBpZiAoaW5kZXggPT09IC0xICYmIHJlc3VsdC5vcmRlbSkge1xyXG4gICAgICAgIGluZGV4ID0gdGhpcy5lbWFpbHMuZmluZEluZGV4KGUgPT4gZS5vcmRlbSA9PT0gcmVzdWx0Lm9yZGVtKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICAvLyBFTkNPTlRST1UgKHBlbG8gJ2NvZGlnbycgb3UgcGVsYSAnb3JkZW0nKTogQXR1YWxpemEgbyBpdGVtIGV4aXN0ZW50ZVxyXG4gICAgICAgIHRoaXMuZW1haWxzW2luZGV4XSA9IHJlc3VsdDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBOw4NPIEVOQ09OVFJPVTogw4kgdW0gaXRlbSAxMDAlIG5vdm8gKG7Do28gdW1hIGVkacOnw6NvKVxyXG4gICAgICAgIHRoaXMuZW1haWxzLnB1c2gocmVzdWx0KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gUmUtb3JkZW5hIGEgbGlzdGEgcGVsYSAnb3JkZW0nIGUgZW1pdGUgdW1hICpub3ZhIGPDs3BpYSpcclxuICAgICAgdGhpcy5lbWFpbHMuc29ydCgoYSwgYikgPT4gKGEub3JkZW0gPz8gMCkgLSAoYi5vcmRlbSA/PyAwKSk7XHJcbiAgICAgIHRoaXMuZW1haWxzRW1pdHRlZC5lbWl0KFsuLi50aGlzLmVtYWlsc10pOyAvLyA8LS0gRW1pdGUgbm92YSBjw7NwaWFcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbW92ZXJMaW5oYShldmVudDogQ2RrRHJhZ0Ryb3A8YW55W10+KSB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5lbWFpbHMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgICB0aGlzLmF0dWFsaXphck9yZGVtKClcclxuICB9XHJcblxyXG5wcml2YXRlIHNvcnRBbmRBc3NpZ25PcmRlcigpOiB2b2lkIHtcclxuICAgIC8vIDEuIENyaWUgdW1hIGPDs3BpYSBkYSBsaXN0YVxyXG4gICAgY29uc3QgdGVtcEVtYWlscyA9IFsuLi50aGlzLmVtYWlsc107IC8vIDwtLSBOT01FIENPUlJJR0lET1xyXG5cclxuICAgIC8vIDIuIE1hcGVpZSBhcyBvcmRlbnMgZXhpc3RlbnRlc1xyXG4gICAgY29uc3Qgb3JkZXJNYXAgPSBuZXcgTWFwPG51bWJlciwgVW5iUGVzc29hRW1haWxbXT4oKTtcclxuICAgIGNvbnN0IGVtYWlsc1dpdGhvdXRPcmRlcjogVW5iUGVzc29hRW1haWxbXSA9IFtdO1xyXG5cclxuICAgIHRlbXBFbWFpbHMuZm9yRWFjaChlbWFpbCA9PiB7XHJcbiAgICAgIC8vIENPUlJFw4fDg08gQVFVSTogJ29yZGVtJyBlbSB2ZXogZGUgJ29yZGVtRW1haWwnXHJcbiAgICAgIGlmIChlbWFpbC5vcmRlbSAhPT0gdW5kZWZpbmVkICYmIGVtYWlsLm9yZGVtICE9PSBudWxsKSB7XHJcbiAgICAgICAgaWYgKCFvcmRlck1hcC5oYXMoZW1haWwub3JkZW0pKSB7XHJcbiAgICAgICAgICBvcmRlck1hcC5zZXQoZW1haWwub3JkZW0sIFtdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgb3JkZXJNYXAuZ2V0KGVtYWlsLm9yZGVtKT8ucHVzaChlbWFpbCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZW1haWxzV2l0aG91dE9yZGVyLnB1c2goZW1haWwpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyAzLiAuLi4gKEZ1bsOnw7VlcyAnZmluYWxVc2VkT3JkZXJzJywgJ25leHRBdmFpbGFibGVPcmRlcicgY29udGludWFtIGlndWFpcykgLi4uXHJcbiAgICBjb25zdCBmaW5hbFVzZWRPcmRlcnMgPSBuZXcgU2V0PG51bWJlcj4oKTtcclxuICAgIGxldCBuZXh0QXZhaWxhYmxlT3JkZXIgPSAwO1xyXG4gICAgY29uc3QgZ2V0TmV4dEF2YWlsYWJsZU9yZGVyID0gKCkgPT4ge1xyXG4gICAgICB3aGlsZSAoZmluYWxVc2VkT3JkZXJzLmhhcyhuZXh0QXZhaWxhYmxlT3JkZXIpKSB7XHJcbiAgICAgICAgbmV4dEF2YWlsYWJsZU9yZGVyKys7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG5leHRBdmFpbGFibGVPcmRlcisrO1xyXG4gICAgfTtcclxuXHJcbiAgICAvLyA0LiBQcm9jZXNzZSBlbWFpbHMgY29tIG9yZGVtIGRlZmluaWRhOlxyXG4gICAgdGhpcy5lbWFpbHMuZm9yRWFjaChlbWFpbCA9PiB7IC8vIDwtLSBOT01FIENPUlJJR0lET1xyXG4gICAgICAvLyBDT1JSRcOHw4NPIEFRVUk6ICdvcmRlbScgZW0gdmV6IGRlICdvcmRlbUVtYWlsJ1xyXG4gICAgICBpZiAoZW1haWwub3JkZW0gIT09IHVuZGVmaW5lZCAmJiBlbWFpbC5vcmRlbSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGlmICghZmluYWxVc2VkT3JkZXJzLmhhcyhlbWFpbC5vcmRlbSkpIHtcclxuICAgICAgICAgIGZpbmFsVXNlZE9yZGVycy5hZGQoZW1haWwub3JkZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyBEdXBsaWNhdGEsIGF0cmlidWEgdW1hIG5vdmFcclxuICAgICAgICAgIGVtYWlsLm9yZGVtID0gZ2V0TmV4dEF2YWlsYWJsZU9yZGVyKCk7XHJcbiAgICAgICAgICBmaW5hbFVzZWRPcmRlcnMuYWRkKGVtYWlsLm9yZGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIDUuIEF0cmlidWEgb3JkZW5zIHBhcmEgZW1haWxzIHF1ZSBuw6NvIHRpbmhhbSBvcmRlbVxyXG4gICAgZW1haWxzV2l0aG91dE9yZGVyLmZvckVhY2goZW1haWwgPT4geyAvLyA8LS0gTk9NRSBDT1JSSUdJRE9cclxuICAgICAgZW1haWwub3JkZW0gPSBnZXROZXh0QXZhaWxhYmxlT3JkZXIoKTsgXHJcbiAgICAgIGZpbmFsVXNlZE9yZGVycy5hZGQoZW1haWwub3JkZW0pOyBcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIDYuIEZpbmFsbWVudGUsIG9yZGVuZSBhIGxpc3RhXHJcbiAgICB0aGlzLmVtYWlscy5zb3J0KChhLCBiKSA9PiAoYS5vcmRlbSA/PyAwKSAtIChiLm9yZGVtID8/IDApKTsgLy8gPC0tICdvcmRlbSdcclxuICAgIH1cclxuICB9IiwiPGRpdiBjbGFzcz1cIm1lcy1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lcy1oZWFkZXJcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXR1bG9cIj5cclxuICAgICAgICAgICAgICAgIHt7IGVtYWlscz8ubGVuZ3RoID09PSAxID8gJ0VtYWlsIENhZGFzdHJhZG8nIDogJ0UtbWFpbHMgQ2FkYXN0cmFkb3MnIH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXR1bG9cIj4oe3sgZW1haWxzPy5sZW5ndGggfHwgMCB9fSk8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdFRvb2x0aXA9XCJOb3ZvIEVtYWlsXCIgbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvcGVuRm9ybURpYWxvZyhudWxsKVwiPlxyXG4gICAgICAgICAgICBDYWRhc3RyYXIgTm92byBFbWFpbFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBFeGliZSBhIHRhYmVsYSBkZSBkZXNwZXNhcyBzb21lbnRlIHNlIGhvdXZlciBkZXNwZXNhcyAtLT5cclxuICAgIDx0YWJsZSBjbGFzcz1cIm15LXRhYmxlXCIgKm5nSWY9XCJlbWFpbHMgJiYgZW1haWxzLmxlbmd0aCA+IDBcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm1vdmVyTGluaGEoJGV2ZW50KVwiPlxyXG5cclxuICAgICAgICA8dHIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAjZTRlM2UzY2M7XCI+XHJcbiAgICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiA1JTsgdGV4dC1hbGlnbjogY2VudGVyO1wiPk9yZGVtPC90aD5cclxuICAgICAgICAgICAgPHRoPkUtbWFpbDwvdGg+XHJcbiAgICAgICAgICAgIDx0aD5UaXBvPC90aD5cclxuICAgICAgICAgICAgPHRoIHN0eWxlPVwid2lkdGg6IDElOyB0ZXh0LWFsaWduOiBjZW50ZXI7XCI+QcOnw7VlczwvdGg+XHJcbiAgICAgICAgPC90cj5cclxuXHJcbiAgICAgICAgPHRyICpuZ0Zvcj1cImxldCB2YWxvciBvZiBlbWFpbHM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cIm15LXRyXCIgY2RrRHJhZz5cclxuXHJcbiAgICAgICAgICAgIDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmFnLWNlbGxcIiBjZGtEcmFnSGFuZGxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5kcmFnX2luZGljYXRvcjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgaSArIDEgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC90ZD5cclxuXHJcbiAgICAgICAgICAgIDx0ZD57eyB2YWxvci5lbWFpbCB9fTwvdGQ+XHJcblxyXG4gICAgICAgICAgICA8dGQ+e3sgdmFsb3IudGlwbz8udG9VcHBlckNhc2UoKSB9fTwvdGQ+XHJcblxyXG4gICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9ucy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIlNhbHZhclwiIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJlZGl0YXIodmFsb3IpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5lZGl0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkRlbGV0YXJcIiBjb2xvcj1cIndhcm5cIiAoY2xpY2spPVwiZXhjbHVpcih2YWxvcilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgPC90YWJsZT5cclxuPC9kaXY+Il19