@stiunb/unb-lib-components 18.0.29 → 18.0.31

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.
@@ -1,40 +1,47 @@
1
- import { Component, Input, ViewChild } from '@angular/core';
2
- import { MatSidenav } from '@angular/material/sidenav';
1
+ import { Component, Input, ViewChild, inject } from '@angular/core';
2
+ import { BreakpointObserver } from '@angular/cdk/layout';
3
+ import { map, shareReplay } from 'rxjs/operators';
3
4
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/cdk/layout";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/material/toolbar";
7
- import * as i4 from "@angular/material/sidenav";
8
- import * as i5 from "@angular/material/icon";
9
- import * as i6 from "@angular/material/button";
10
- import * as i7 from "../unb-usuario/unb-usuario.component";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/material/toolbar";
7
+ import * as i3 from "@angular/material/sidenav";
8
+ import * as i4 from "@angular/material/icon";
9
+ import * as i5 from "@angular/material/button";
10
+ import * as i6 from "../unb-usuario/unb-usuario.component";
11
11
  export class UnbNavBarComponent {
12
- constructor(observer) {
13
- this.observer = observer;
14
- this.nomeSistema = "Nome do Sistema"; /* O nome do sistema */
15
- this.menuSize = 300; /** O tamanho do menu em px */
16
- this.widthToHideMenu = 800; /* O tamanho da tela ateh esconder o menu */
17
- this.contentBackgroundColor = '#f0f3f7'; /* A cor do Content */
18
- this.containerPadding = 10; /* O tamanho do padding to container que fica o content */
19
- this.isMobile = true;
12
+ constructor() {
13
+ // Dependências
14
+ this.breakpointObserver = inject(BreakpointObserver);
15
+ // Inputs de Configuração
16
+ this.nomeSistema = "Nome do Sistema";
17
+ this.nomeSistemaMobile = "SGI"; // Novo input para nome curto
18
+ this.menuSize = 280; // Aumentei um pouco o padrão para ficar mais moderno
19
+ this.widthToHideMenu = 800;
20
+ this.contentBackgroundColor = '#f5f7fa'; // Cor mais suave e moderna
21
+ this.containerPadding = 16; // Mais respiro (padding) por padrão
20
22
  }
21
23
  ngOnInit() {
22
- this.observer.observe(['(max-width: ' + this.widthToHideMenu + 'px)']).subscribe((screenSize) => {
23
- if (screenSize.matches) {
24
- this.isMobile = true;
25
- }
26
- else {
27
- this.isMobile = false;
28
- }
29
- });
24
+ // Cria um observable que emite true/false baseado no tamanho da tela
25
+ this.isMobile$ = this.breakpointObserver
26
+ .observe(`(max-width: ${this.widthToHideMenu}px)`)
27
+ .pipe(map(result => result.matches), shareReplay());
30
28
  }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbNavBarComponent, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: UnbNavBarComponent, selector: "unb-nav-bar", inputs: { nomeSistema: "nomeSistema", menuSize: "menuSize", widthToHideMenu: "widthToHideMenu", contentBackgroundColor: "contentBackgroundColor", containerPadding: "containerPadding", oidcSecurityService: "oidcSecurityService" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: MatSidenav, descendants: true }], ngImport: i0, template: "<div class=\"example-container\" >\r\n <mat-toolbar class=\"example-toolbar\">\r\n <button mat-icon-button class=\"minifab\" type=\"button\" aria-label=\"Toggle sidenav\" color=\"accent\" (click)=\"snav.toggle()\"><mat-icon>menu</mat-icon></button> \r\n <img src=\"assets/img/unb_icon_branco.svg\" alt=\"\" style=\"width: 40px\">&nbsp;\r\n <span style=\"color: white;\">{{nomeSistema}}</span>\r\n <span class=\"spacer\"></span> \r\n <unb-usuario [oidcSecurityService]=\"oidcSecurityService\"></unb-usuario>\r\n </mat-toolbar>\r\n\r\n <mat-sidenav-container class=\"example-sidenav-container\" [ngStyle]=\"{'background-color': contentBackgroundColor}\" > \r\n <mat-sidenav #snav [mode]=\"isMobile ? 'over' : 'side'\" [opened]=\"isMobile ? 'false' : 'true'\" [style.max-width.px]=\"menuSize\" > \r\n <ng-content select=\"[menu]\"></ng-content> \r\n </mat-sidenav>\r\n\r\n <mat-sidenav-content [ngStyle]=\"{'padding.px': containerPadding}\">\r\n <ng-content select=\"[body]\"></ng-content> \r\n </mat-sidenav-content>\r\n\r\n </mat-sidenav-container>\r\n</div>", styles: [".example-container{display:flex;flex-direction:column;position:absolute;inset:0}.example-is-mobile .example-toolbar{position:fixed;z-index:2}.spacer{flex:1 1 auto}.example-sidenav-container{flex:1}.example-is-mobile .example-sidenav-container{flex:1 0 auto}.minifab{margin:5px;color:#fff;fill:#fff}\n"], dependencies: [{ kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i4.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i4.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i4.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i7.UnbUsuarioComponent, selector: "unb-usuario", inputs: ["oidcSecurityService"] }] }); }
29
+ handleMenuClick() {
30
+ // Se o modo for 'over', significa que estamos no mobile (ou tela pequena)
31
+ // cobrindo o conteúdo. Nesse caso, fechamos ao clicar.
32
+ if (this.sidenav.mode === 'over') {
33
+ this.sidenav.close();
34
+ }
35
+ }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbNavBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: UnbNavBarComponent, selector: "unb-nav-bar", inputs: { nomeSistema: "nomeSistema", nomeSistemaMobile: "nomeSistemaMobile", menuSize: "menuSize", widthToHideMenu: "widthToHideMenu", contentBackgroundColor: "contentBackgroundColor", containerPadding: "containerPadding", oidcSecurityService: "oidcSecurityService" }, viewQueries: [{ propertyName: "sidenav", first: true, predicate: ["sidenav"], descendants: true }], ngImport: i0, template: "<div class=\"app-container\">\r\n\r\n <mat-toolbar class=\"app-toolbar\">\r\n\r\n <button mat-icon-button class=\"menu-button\" color=\"accent\" (click)=\"sidenav.toggle()\" aria-label=\"Toggle sidenav\">\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n\r\n <div class=\"branding\">\r\n <img src=\"assets/img/unb_icon_branco.svg\" alt=\"Logo UnB\" class=\"logo\">\r\n\r\n <span class=\"app-title\" *ngIf=\"{ isMobile: isMobile$ | async } as state\">\r\n {{ state.isMobile ? nomeSistemaMobile : nomeSistema }}\r\n </span>\r\n </div>\r\n\r\n <span class=\"spacer\"></span>\r\n\r\n <div class=\"actions-container\">\r\n <unb-usuario [oidcSecurityService]=\"oidcSecurityService\"></unb-usuario>\r\n </div>\r\n\r\n </mat-toolbar>\r\n\r\n <mat-sidenav-container class=\"sidenav-container\" [ngStyle]=\"{'background-color': contentBackgroundColor}\">\r\n\r\n <mat-sidenav #sidenav [mode]=\"(isMobile$ | async) ? 'over' : 'side'\" [opened]=\"!(isMobile$ | async)\"\r\n [style.width.px]=\"menuSize\" class=\"app-sidenav\">\r\n\r\n <div class=\"menu-wrapper\" (click)=\"handleMenuClick()\"> \r\n <ng-content select=\"[menu]\"></ng-content>\r\n </div>\r\n </mat-sidenav>\r\n\r\n <mat-sidenav-content [ngStyle]=\"{'padding.px': containerPadding}\">\r\n <ng-content select=\"[body]\"></ng-content>\r\n </mat-sidenav-content>\r\n\r\n </mat-sidenav-container>\r\n</div>", styles: [":host{--toolbar-height: 64px;--primary-color: #003366;--text-color: #ffffff}.app-container{display:flex;flex-direction:column;position:absolute;inset:0}.app-toolbar{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;height:var(--toolbar-height);padding:0 16px;box-shadow:0 2px 5px #0003;color:var(--text-color);background-color:var(--primary-color)}.branding{display:flex;align-items:center;gap:12px;overflow:hidden}.logo{height:32px;width:auto;flex-shrink:0}.app-title{font-weight:500;font-size:1.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.5px}.spacer{flex:1 1 auto}.actions-container{display:flex;align-items:center;margin-left:16px;padding-left:16px;border-left:1px solid rgba(255,255,255,.2);height:60%}.sidenav-container{flex:1}@media (max-width: 600px){:host{--toolbar-height: 56px}.app-toolbar{padding:0 8px}.app-title{font-size:1rem}.actions-container{padding-left:8px;margin-left:8px;border:none}}.menu-wrapper{height:100%;overflow-y:auto}.menu-button{margin-right:8px;color:#fff!important}.menu-button mat-icon{font-size:28px;width:28px;height:28px;line-height:28px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i3.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i3.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i3.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i6.UnbUsuarioComponent, selector: "unb-usuario", inputs: ["oidcSecurityService"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
33
38
  }
34
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbNavBarComponent, decorators: [{
35
40
  type: Component,
36
- args: [{ selector: 'unb-nav-bar', template: "<div class=\"example-container\" >\r\n <mat-toolbar class=\"example-toolbar\">\r\n <button mat-icon-button class=\"minifab\" type=\"button\" aria-label=\"Toggle sidenav\" color=\"accent\" (click)=\"snav.toggle()\"><mat-icon>menu</mat-icon></button> \r\n <img src=\"assets/img/unb_icon_branco.svg\" alt=\"\" style=\"width: 40px\">&nbsp;\r\n <span style=\"color: white;\">{{nomeSistema}}</span>\r\n <span class=\"spacer\"></span> \r\n <unb-usuario [oidcSecurityService]=\"oidcSecurityService\"></unb-usuario>\r\n </mat-toolbar>\r\n\r\n <mat-sidenav-container class=\"example-sidenav-container\" [ngStyle]=\"{'background-color': contentBackgroundColor}\" > \r\n <mat-sidenav #snav [mode]=\"isMobile ? 'over' : 'side'\" [opened]=\"isMobile ? 'false' : 'true'\" [style.max-width.px]=\"menuSize\" > \r\n <ng-content select=\"[menu]\"></ng-content> \r\n </mat-sidenav>\r\n\r\n <mat-sidenav-content [ngStyle]=\"{'padding.px': containerPadding}\">\r\n <ng-content select=\"[body]\"></ng-content> \r\n </mat-sidenav-content>\r\n\r\n </mat-sidenav-container>\r\n</div>", styles: [".example-container{display:flex;flex-direction:column;position:absolute;inset:0}.example-is-mobile .example-toolbar{position:fixed;z-index:2}.spacer{flex:1 1 auto}.example-sidenav-container{flex:1}.example-is-mobile .example-sidenav-container{flex:1 0 auto}.minifab{margin:5px;color:#fff;fill:#fff}\n"] }]
37
- }], ctorParameters: () => [{ type: i1.BreakpointObserver }], propDecorators: { nomeSistema: [{
41
+ args: [{ selector: 'unb-nav-bar', template: "<div class=\"app-container\">\r\n\r\n <mat-toolbar class=\"app-toolbar\">\r\n\r\n <button mat-icon-button class=\"menu-button\" color=\"accent\" (click)=\"sidenav.toggle()\" aria-label=\"Toggle sidenav\">\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n\r\n <div class=\"branding\">\r\n <img src=\"assets/img/unb_icon_branco.svg\" alt=\"Logo UnB\" class=\"logo\">\r\n\r\n <span class=\"app-title\" *ngIf=\"{ isMobile: isMobile$ | async } as state\">\r\n {{ state.isMobile ? nomeSistemaMobile : nomeSistema }}\r\n </span>\r\n </div>\r\n\r\n <span class=\"spacer\"></span>\r\n\r\n <div class=\"actions-container\">\r\n <unb-usuario [oidcSecurityService]=\"oidcSecurityService\"></unb-usuario>\r\n </div>\r\n\r\n </mat-toolbar>\r\n\r\n <mat-sidenav-container class=\"sidenav-container\" [ngStyle]=\"{'background-color': contentBackgroundColor}\">\r\n\r\n <mat-sidenav #sidenav [mode]=\"(isMobile$ | async) ? 'over' : 'side'\" [opened]=\"!(isMobile$ | async)\"\r\n [style.width.px]=\"menuSize\" class=\"app-sidenav\">\r\n\r\n <div class=\"menu-wrapper\" (click)=\"handleMenuClick()\"> \r\n <ng-content select=\"[menu]\"></ng-content>\r\n </div>\r\n </mat-sidenav>\r\n\r\n <mat-sidenav-content [ngStyle]=\"{'padding.px': containerPadding}\">\r\n <ng-content select=\"[body]\"></ng-content>\r\n </mat-sidenav-content>\r\n\r\n </mat-sidenav-container>\r\n</div>", styles: [":host{--toolbar-height: 64px;--primary-color: #003366;--text-color: #ffffff}.app-container{display:flex;flex-direction:column;position:absolute;inset:0}.app-toolbar{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;height:var(--toolbar-height);padding:0 16px;box-shadow:0 2px 5px #0003;color:var(--text-color);background-color:var(--primary-color)}.branding{display:flex;align-items:center;gap:12px;overflow:hidden}.logo{height:32px;width:auto;flex-shrink:0}.app-title{font-weight:500;font-size:1.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.5px}.spacer{flex:1 1 auto}.actions-container{display:flex;align-items:center;margin-left:16px;padding-left:16px;border-left:1px solid rgba(255,255,255,.2);height:60%}.sidenav-container{flex:1}@media (max-width: 600px){:host{--toolbar-height: 56px}.app-toolbar{padding:0 8px}.app-title{font-size:1rem}.actions-container{padding-left:8px;margin-left:8px;border:none}}.menu-wrapper{height:100%;overflow-y:auto}.menu-button{margin-right:8px;color:#fff!important}.menu-button mat-icon{font-size:28px;width:28px;height:28px;line-height:28px}\n"] }]
42
+ }], propDecorators: { nomeSistema: [{
43
+ type: Input
44
+ }], nomeSistemaMobile: [{
38
45
  type: Input
39
46
  }], menuSize: [{
40
47
  type: Input
@@ -48,6 +55,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
48
55
  type: Input
49
56
  }], sidenav: [{
50
57
  type: ViewChild,
51
- args: [MatSidenav]
58
+ args: ['sidenav']
52
59
  }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iLW5hdi1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLW5hdi1iYXIvdW5iLW5hdi1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLW5hdi1iYXIvdW5iLW5hdi1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7O0FBUXZELE1BQU0sT0FBTyxrQkFBa0I7SUFjN0IsWUFBb0IsUUFBNEI7UUFBNUIsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFadkMsZ0JBQVcsR0FBVSxpQkFBaUIsQ0FBQyxDQUFDLHVCQUF1QjtRQUMvRCxhQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsOEJBQThCO1FBQzlDLG9CQUFlLEdBQUcsR0FBRyxDQUFDLENBQUMsNENBQTRDO1FBQ25FLDJCQUFzQixHQUFHLFNBQVMsQ0FBQyxDQUFDLHNCQUFzQjtRQUMxRCxxQkFBZ0IsR0FBRyxFQUFFLENBQUMsQ0FBQywwREFBMEQ7UUFNMUYsYUFBUSxHQUFFLElBQUksQ0FBQztJQUVzQyxDQUFDO0lBRXRELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsR0FBRSxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDOUYsSUFBRyxVQUFVLENBQUMsT0FBTyxFQUFDLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN4QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXhCVSxrQkFBa0I7a0dBQWxCLGtCQUFrQixrVUFVbEIsVUFBVSxnRENwQnZCLGduQ0FtQk07OzJGRFRPLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxhQUFhO3VGQU1kLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdOLE9BQU87c0JBRE4sU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTaWRlbmF2IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XHJcbmltcG9ydCB7IE9pZGNTZWN1cml0eVNlcnZpY2UgfSBmcm9tICdhbmd1bGFyLWF1dGgtb2lkYy1jbGllbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1bmItbmF2LWJhcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VuYi1uYXYtYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91bmItbmF2LWJhci5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFVuYk5hdkJhckNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIG5vbWVTaXN0ZW1hOiBzdHJpbmc9IFwiTm9tZSBkbyBTaXN0ZW1hXCI7IC8qIE8gbm9tZSBkbyBzaXN0ZW1hICovICBcclxuICBASW5wdXQoKSBtZW51U2l6ZSA9IDMwMDsgLyoqIE8gdGFtYW5obyBkbyBtZW51IGVtIHB4ICovXHJcbiAgQElucHV0KCkgd2lkdGhUb0hpZGVNZW51ID0gODAwOyAvKiBPIHRhbWFuaG8gZGEgdGVsYSBhdGVoIGVzY29uZGVyIG8gbWVudSAqL1xyXG4gIEBJbnB1dCgpIGNvbnRlbnRCYWNrZ3JvdW5kQ29sb3IgPSAnI2YwZjNmNyc7IC8qIEEgY29yIGRvIENvbnRlbnQgKi9cclxuICBASW5wdXQoKSBjb250YWluZXJQYWRkaW5nID0gMTA7IC8qIE8gdGFtYW5obyBkbyBwYWRkaW5nIHRvIGNvbnRhaW5lciBxdWUgZmljYSBvIGNvbnRlbnQgKi9cclxuICBcclxuICBASW5wdXQoKSBvaWRjU2VjdXJpdHlTZXJ2aWNlITpPaWRjU2VjdXJpdHlTZXJ2aWNlO1xyXG5cclxuICBAVmlld0NoaWxkKE1hdFNpZGVuYXYpXHJcbiAgc2lkZW5hdiE6IE1hdFNpZGVuYXY7XHJcbiAgaXNNb2JpbGU9IHRydWU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcikgeyAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZShbJyhtYXgtd2lkdGg6ICcrIHRoaXMud2lkdGhUb0hpZGVNZW51ICsgJ3B4KScgXSkuc3Vic2NyaWJlKChzY3JlZW5TaXplKSA9PiB7XHJcbiAgICAgIGlmKHNjcmVlblNpemUubWF0Y2hlcyl7XHJcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJleGFtcGxlLWNvbnRhaW5lclwiID5cclxuICA8bWF0LXRvb2xiYXIgY2xhc3M9XCJleGFtcGxlLXRvb2xiYXJcIj5cclxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNsYXNzPVwibWluaWZhYlwiIHR5cGU9XCJidXR0b25cIiBhcmlhLWxhYmVsPVwiVG9nZ2xlIHNpZGVuYXZcIiBjb2xvcj1cImFjY2VudFwiICAoY2xpY2spPVwic25hdi50b2dnbGUoKVwiPjxtYXQtaWNvbj5tZW51PC9tYXQtaWNvbj48L2J1dHRvbj4gICAgXHJcbiAgICA8aW1nIHNyYz1cImFzc2V0cy9pbWcvdW5iX2ljb25fYnJhbmNvLnN2Z1wiIGFsdD1cIlwiIHN0eWxlPVwid2lkdGg6IDQwcHhcIj4mbmJzcDtcclxuICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6IHdoaXRlO1wiPnt7bm9tZVNpc3RlbWF9fTwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwic3BhY2VyXCI+PC9zcGFuPiAgICAgXHJcbiAgICA8dW5iLXVzdWFyaW8gW29pZGNTZWN1cml0eVNlcnZpY2VdPVwib2lkY1NlY3VyaXR5U2VydmljZVwiPjwvdW5iLXVzdWFyaW8+XHJcbiAgPC9tYXQtdG9vbGJhcj5cclxuXHJcbiAgPG1hdC1zaWRlbmF2LWNvbnRhaW5lciBjbGFzcz1cImV4YW1wbGUtc2lkZW5hdi1jb250YWluZXJcIiAgW25nU3R5bGVdPVwieydiYWNrZ3JvdW5kLWNvbG9yJzogY29udGVudEJhY2tncm91bmRDb2xvcn1cIiA+ICBcclxuICAgIDxtYXQtc2lkZW5hdiAjc25hdiBbbW9kZV09XCJpc01vYmlsZSA/ICdvdmVyJyA6ICdzaWRlJ1wiIFtvcGVuZWRdPVwiaXNNb2JpbGUgPyAnZmFsc2UnIDogJ3RydWUnXCIgW3N0eWxlLm1heC13aWR0aC5weF09XCJtZW51U2l6ZVwiID4gICAgICAgICAgICAgICAgXHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttZW51XVwiPjwvbmctY29udGVudD4gICAgICBcclxuICAgIDwvbWF0LXNpZGVuYXY+XHJcblxyXG4gICAgPG1hdC1zaWRlbmF2LWNvbnRlbnQgIFtuZ1N0eWxlXT1cInsncGFkZGluZy5weCc6IGNvbnRhaW5lclBhZGRpbmd9XCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltib2R5XVwiPjwvbmctY29udGVudD4gICAgICBcclxuICAgIDwvbWF0LXNpZGVuYXYtY29udGVudD5cclxuXHJcbiAgPC9tYXQtc2lkZW5hdi1jb250YWluZXI+XHJcbjwvZGl2PiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iLW5hdi1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLW5hdi1iYXIvdW5iLW5hdi1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5iLWxpYi1jb21wb25lbnRzL3NyYy9saWIvdW5iLW5hdi1iYXIvdW5iLW5hdi1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVFsRCxNQUFNLE9BQU8sa0JBQWtCO0lBTC9CO1FBT0UsZUFBZTtRQUNQLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXhELHlCQUF5QjtRQUNoQixnQkFBVyxHQUFXLGlCQUFpQixDQUFDO1FBQ3hDLHNCQUFpQixHQUFXLEtBQUssQ0FBQyxDQUFDLDZCQUE2QjtRQUNoRSxhQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMscURBQXFEO1FBQ3JFLG9CQUFlLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLDJCQUFzQixHQUFHLFNBQVMsQ0FBQyxDQUFDLDJCQUEyQjtRQUMvRCxxQkFBZ0IsR0FBRyxFQUFFLENBQUMsQ0FBQyxvQ0FBb0M7S0EyQnJFO0lBakJDLFFBQVE7UUFDTixxRUFBcUU7UUFDckUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCO2FBQ3JDLE9BQU8sQ0FBQyxlQUFlLElBQUksQ0FBQyxlQUFlLEtBQUssQ0FBQzthQUNqRCxJQUFJLENBQ0gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUM3QixXQUFXLEVBQUUsQ0FDZCxDQUFDO0lBQ04sQ0FBQztJQUVELGVBQWU7UUFDYiwwRUFBMEU7UUFDMUUsdURBQXVEO1FBQ3ZELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQzs4R0FyQ1Usa0JBQWtCO2tHQUFsQixrQkFBa0IscWFDWi9CLDI2Q0F1Q007OzJGRDNCTyxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsYUFBYTs4QkFVZCxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR2dCLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XHJcbmltcG9ydCB7IE1hdFNpZGVuYXYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcclxuaW1wb3J0IHsgT2lkY1NlY3VyaXR5U2VydmljZSB9IGZyb20gJ2FuZ3VsYXItYXV0aC1vaWRjLWNsaWVudCc7XHJcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndW5iLW5hdi1iYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91bmItbmF2LWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdW5iLW5hdi1iYXIuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVbmJOYXZCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIFxyXG4gIC8vIERlcGVuZMOqbmNpYXNcclxuICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlciA9IGluamVjdChCcmVha3BvaW50T2JzZXJ2ZXIpO1xyXG5cclxuICAvLyBJbnB1dHMgZGUgQ29uZmlndXJhw6fDo29cclxuICBASW5wdXQoKSBub21lU2lzdGVtYTogc3RyaW5nID0gXCJOb21lIGRvIFNpc3RlbWFcIjtcclxuICBASW5wdXQoKSBub21lU2lzdGVtYU1vYmlsZTogc3RyaW5nID0gXCJTR0lcIjsgLy8gTm92byBpbnB1dCBwYXJhIG5vbWUgY3VydG9cclxuICBASW5wdXQoKSBtZW51U2l6ZSA9IDI4MDsgLy8gQXVtZW50ZWkgdW0gcG91Y28gbyBwYWRyw6NvIHBhcmEgZmljYXIgbWFpcyBtb2Rlcm5vXHJcbiAgQElucHV0KCkgd2lkdGhUb0hpZGVNZW51ID0gODAwO1xyXG4gIEBJbnB1dCgpIGNvbnRlbnRCYWNrZ3JvdW5kQ29sb3IgPSAnI2Y1ZjdmYSc7IC8vIENvciBtYWlzIHN1YXZlIGUgbW9kZXJuYVxyXG4gIEBJbnB1dCgpIGNvbnRhaW5lclBhZGRpbmcgPSAxNjsgLy8gTWFpcyByZXNwaXJvIChwYWRkaW5nKSBwb3IgcGFkcsOjb1xyXG4gIFxyXG4gIEBJbnB1dCgpIG9pZGNTZWN1cml0eVNlcnZpY2UhOiBPaWRjU2VjdXJpdHlTZXJ2aWNlO1xyXG5cclxuICAvLyBBY2Vzc28gYW8gY29tcG9uZW50ZSB2aXN1YWxcclxuICBAVmlld0NoaWxkKCdzaWRlbmF2Jykgc2lkZW5hdiE6IE1hdFNpZGVuYXY7XHJcblxyXG4gIC8vIE9ic2VydmFibGUgcGFyYSBjb250cm9sYXIgbyBlc3RhZG8gbW9iaWxlIGRlIGZvcm1hIHJlYXRpdmFcclxuICBpc01vYmlsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gQ3JpYSB1bSBvYnNlcnZhYmxlIHF1ZSBlbWl0ZSB0cnVlL2ZhbHNlIGJhc2VhZG8gbm8gdGFtYW5obyBkYSB0ZWxhXHJcbiAgICB0aGlzLmlzTW9iaWxlJCA9IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyXHJcbiAgICAgIC5vYnNlcnZlKGAobWF4LXdpZHRoOiAke3RoaXMud2lkdGhUb0hpZGVNZW51fXB4KWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChyZXN1bHQgPT4gcmVzdWx0Lm1hdGNoZXMpLFxyXG4gICAgICAgIHNoYXJlUmVwbGF5KClcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZU1lbnVDbGljaygpIHtcclxuICAgIC8vIFNlIG8gbW9kbyBmb3IgJ292ZXInLCBzaWduaWZpY2EgcXVlIGVzdGFtb3Mgbm8gbW9iaWxlIChvdSB0ZWxhIHBlcXVlbmEpXHJcbiAgICAvLyBjb2JyaW5kbyBvIGNvbnRlw7pkby4gTmVzc2UgY2FzbywgZmVjaGFtb3MgYW8gY2xpY2FyLlxyXG4gICAgaWYgKHRoaXMuc2lkZW5hdi5tb2RlID09PSAnb3ZlcicpIHtcclxuICAgICAgdGhpcy5zaWRlbmF2LmNsb3NlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImFwcC1jb250YWluZXJcIj5cclxuXHJcbiAgPG1hdC10b29sYmFyIGNsYXNzPVwiYXBwLXRvb2xiYXJcIj5cclxuXHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjbGFzcz1cIm1lbnUtYnV0dG9uXCIgY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwic2lkZW5hdi50b2dnbGUoKVwiIGFyaWEtbGFiZWw9XCJUb2dnbGUgc2lkZW5hdlwiPlxyXG4gICAgICA8bWF0LWljb24+bWVudTwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiYnJhbmRpbmdcIj5cclxuICAgICAgPGltZyBzcmM9XCJhc3NldHMvaW1nL3VuYl9pY29uX2JyYW5jby5zdmdcIiBhbHQ9XCJMb2dvIFVuQlwiIGNsYXNzPVwibG9nb1wiPlxyXG5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtdGl0bGVcIiAqbmdJZj1cInsgaXNNb2JpbGU6IGlzTW9iaWxlJCB8IGFzeW5jIH0gYXMgc3RhdGVcIj5cclxuICAgICAgICB7eyBzdGF0ZS5pc01vYmlsZSA/IG5vbWVTaXN0ZW1hTW9iaWxlIDogbm9tZVNpc3RlbWEgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPHNwYW4gY2xhc3M9XCJzcGFjZXJcIj48L3NwYW4+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbnMtY29udGFpbmVyXCI+XHJcbiAgICAgIDx1bmItdXN1YXJpbyBbb2lkY1NlY3VyaXR5U2VydmljZV09XCJvaWRjU2VjdXJpdHlTZXJ2aWNlXCI+PC91bmItdXN1YXJpbz5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L21hdC10b29sYmFyPlxyXG5cclxuICA8bWF0LXNpZGVuYXYtY29udGFpbmVyIGNsYXNzPVwic2lkZW5hdi1jb250YWluZXJcIiBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtY29sb3InOiBjb250ZW50QmFja2dyb3VuZENvbG9yfVwiPlxyXG5cclxuICAgIDxtYXQtc2lkZW5hdiAjc2lkZW5hdiBbbW9kZV09XCIoaXNNb2JpbGUkIHwgYXN5bmMpID8gJ292ZXInIDogJ3NpZGUnXCIgW29wZW5lZF09XCIhKGlzTW9iaWxlJCB8IGFzeW5jKVwiXHJcbiAgICAgIFtzdHlsZS53aWR0aC5weF09XCJtZW51U2l6ZVwiIGNsYXNzPVwiYXBwLXNpZGVuYXZcIj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW51LXdyYXBwZXJcIiAoY2xpY2spPVwiaGFuZGxlTWVudUNsaWNrKClcIj4gXHJcbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21lbnVdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LXNpZGVuYXY+XHJcblxyXG4gICAgPG1hdC1zaWRlbmF2LWNvbnRlbnQgW25nU3R5bGVdPVwieydwYWRkaW5nLnB4JzogY29udGFpbmVyUGFkZGluZ31cIj5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2JvZHldXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9tYXQtc2lkZW5hdi1jb250ZW50PlxyXG5cclxuICA8L21hdC1zaWRlbmF2LWNvbnRhaW5lcj5cclxuPC9kaXY+Il19
@@ -69,6 +69,7 @@ export class UnbPessoaCrudModalComponent {
69
69
  this.pessoaEmitted.emit(pessoa);
70
70
  }
71
71
  else if (this.incluirBotaoNovo) {
72
+ this.openSnackBar('Pessoa não encontrada. Clique em “Incluir Nova Pessoa” para realizar o cadastro.');
72
73
  this.mostrarBotaoNovo = true;
73
74
  }
74
75
  }
@@ -141,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
141
142
  }], pessoaEmitted: [{
142
143
  type: Output
143
144
  }] } });
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
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5iLXBlc3NvYS1jcnVkLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuYi1saWItY29tcG9uZW50cy9zcmMvbGliL3VuYi1wZXNzb2EvdW5iLXBlc3NvYS1jcnVkLW1vZGFsL3VuYi1wZXNzb2EtY3J1ZC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmItbGliLWNvbXBvbmVudHMvc3JjL2xpYi91bmItcGVzc29hL3VuYi1wZXNzb2EtY3J1ZC1tb2RhbC91bmItcGVzc29hLWNydWQtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFJNUcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNERBQTRELENBQUM7Ozs7Ozs7Ozs7QUFFMUc7Ozs7O0VBS0U7QUFPRixNQUFNLE9BQU8sMkJBQTJCO0lBY3RDLFlBQW9CLFFBQXFCLEVBQVUsYUFBK0IsRUFBVSxZQUFnQyxFQUFTLE1BQWlCO1FBQWxJLGFBQVEsR0FBUixRQUFRLENBQWE7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBWnRKLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsNkJBQTZCO1FBQ0YsbUJBQWMsR0FBNEIsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBQzNELHFCQUFnQixHQUFHLElBQUksQ0FBQyxDQUFDLDhD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QUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQWU7UUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtZQUMvQixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBckhVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGdKQU1sQixnQkFBZ0IsdUVBQ2hCLGdCQUFnQiwwRUM3QnRDLGkxQ0FrQ007OzJGRFpPLDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFDRSwyQkFBMkIsY0FDekIsS0FBSzt3S0FTVSxjQUFjO3NCQUF4QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDZSxnQkFBZ0I7c0JBQXZELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsbUJBQW1CO3NCQUExRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUM1QixhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbmltcG9ydCB7IFVuYlBlc3NvYU1vZGVsIH0gZnJvbSAnLi4vdW5iLXBlc3NvYS1tb2RlbHMvdW5iLXBlc3NvYS5tb2RlbCc7XHJcbmltcG9ydCB7IFVuQlBlc3NvYVNlcnZpY2UgfSBmcm9tICcuLi91bmItcGVzc29hLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVbmJQZXNzb2FGb3JtQ29uZmlnLCBVbmJQZXNzb2FQZXNxdWlzYUNvbmZpZyB9IGZyb20gJy4uL3VuYi1wZXNzb2EtbW9kZWxzL3VuYi1wZXNzb2EtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgVW5iTWVuc2FnZW1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdW5iLW1lbnNhZ2VtL3VuYi1tZW5zYWdlbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVW5iUGVzc29hRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL3VuYi1wZXNzb2EtZm9ybS91bmItcGVzc29hLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgVW5iUGVzc29hRm9ybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL3VuYi1wZXNzb2EtZm9ybS1kaWFsb2cvdW5iLXBlc3NvYS1mb3JtLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEVzc2Ugw6kgdW0gY29tcG9uZXRuZSBXcmFwcGVyIHV0aWxpdMOhcmlvLiBFbGUgZW5jYXBzdWxhIGEgbG9naWNhIGRlIHByb2N1cmFyIGUgc2UgbmFvIGFjaGFyIGluaWNpYXIgbyBmb3JtdWxhcmlvIGRlIGNhZGFzdHJvIGVtIHVtIG1vZGFsLiBcclxuICogVGFtYsOpbSwgc2UgYWNoYXIsIGVsZSBwZXJtaXRlIGFsdGVyYXIgYSBwZXNzb2EgZW5jb250cmFkYS5cclxuICogTyBTR0kgdXNhIHBhcmEgY2FkYXN0cm8gZGUgSW5xdWlsaW5vIG5vIGZvcm11bGFyaW8uIExhIHRlbSBhIHBlc3F1aXNhIGRlIFBlc3NvYSwgc2UgbmFvIGFjaGFyLCBhYnJlIG8gZm9ybXVsYXJpbyBkZSBjYWRhc3RybyBlbSBtb2RhbC4gQXNzaW0sIG5hbyBwcmVjaXNhIGlyIGVtIG91dHJhIHRlbGEgcHJhIGNhZGFzdHJhclxyXG4gKiBFaCBwb3NzaXZlbCBjb25maWd1cmFyIHNlIHF1ZXIgbW9zdHJhciBvIGJvdGFvIGRlIE5vdm8gKHNlIG5hbyBhY2hhcikgZSBBbHRlcmFyIChzZSBhY2hhcikuIE5vIFNHSSwgcG9yIGV4ZW1wbG8gZXUgc29oIGRlaXhvIGluY2x1aXIgbm92bywgcHEgbmFvIGZheiBzZW50aWRvIGFsdGVyYXIgYSBwZXNzb2Egbm8gbWVpbyBkbyBjYWRhc3RybyBkbyBpbnF1aWxpbm8uXHJcbiovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXVuYi1wZXNzb2EtY3J1ZC1tb2RhbCcsXHJcbiAgc3RhbmRhbG9uZTogZmFsc2UsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VuYi1wZXNzb2EtY3J1ZC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3VuYi1wZXNzb2EtY3J1ZC1tb2RhbC5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVW5iUGVzc29hQ3J1ZE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIC8vIENvbmZpZ3VyYcOnw6NvIGRvIGNvbXBvbmVudGVcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBwZXNxdWlzYUNvbmZpZzogVW5iUGVzc29hUGVzcXVpc2FDb25maWcgPSBuZXcgVW5iUGVzc29hUGVzcXVpc2FDb25maWcoKTtcclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaW5jbHVpckJvdGFvTm92byA9IHRydWU7IC8vIHNlIHBlc3F1aXNvdSBlIG5hbyBhY2hvdSwgbW9zdHJhIGJvdGFvIG5vdm9cclxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaW5jbHVpckJvdGFvQWx0ZXJhciA9IHRydWU7IC8vIHNlIHBlc3F1aXNvdSBlIGFjaG91LCBtb3N0cmEgYm90YW8gYWx0ZXJhclxyXG4gIEBPdXRwdXQoKSBwZXNzb2FFbWl0dGVkID0gbmV3IEV2ZW50RW1pdHRlcjxVbmJQZXNzb2FNb2RlbD4oKTtcclxuXHJcbiAgcGVzc29hU2VsZWNpb25hZGEgPSBuZXcgVW5iUGVzc29hTW9kZWwoKTtcclxuICBtb3N0cmFyQm90YW9Ob3ZvID0gZmFsc2U7XHJcbiAgZm9ybUNvbmZpZyA9IG5ldyBVbmJQZXNzb2FGb3JtQ29uZmlnKCk7IC8vIG8gZm9ybUNPbmZpZyBhIGdlbnRlIG1vbnRhIGNvbmZvcm1lIG8gcGVzcXVpc2FDb25maWdcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsIHByaXZhdGUgcGVzc29hU2VydmljZTogVW5CUGVzc29hU2VydmljZSwgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IFVuYk1lbnNhZ2VtU2VydmljZSwgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5wZXNxdWlzYUNvbmZpZy50b2tlbikge1xyXG4gICAgICB0aGlzLnBlc3NvYVNlcnZpY2Uuc2V0VG9rZW4odGhpcy5wZXNxdWlzYUNvbmZpZy50b2tlbik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMucGVzcXVpc2FDb25maWcuYmFja2VuZFVSTCkge1xyXG4gICAgICB0aGlzLnBlc3NvYVNlcnZpY2Uuc2V0QmFja2VuZFVybCh0aGlzLnBlc3F1aXNhQ29uZmlnLmJhY2tlbmRVUkwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vcGVuU25hY2tCYXIoJ0JhY2tlbmQgVVJMIG7Do28gaW5mb3JtYWRhIG5hIGNvbmZpZ3VyYcOnw6NvIGRvIGNvbXBvbmVudGUgVW5iUGVzc29hQ3J1ZENvbXBvbmVudCEnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZvcm1Db25maWcgPSBuZXcgVW5iUGVzc29hRm9ybUNvbmZpZygpO1xyXG4gICAgdGhpcy5mb3JtQ29uZmlnLnBlc3NvYSA9IHRoaXMucGVzc29hU2VsZWNpb25hZGE7XHJcbiAgICB0aGlzLmZvcm1Db25maWcuYmFja2VuZFVSTCA9IHRoaXMucGVzcXVpc2FDb25maWcuYmFja2VuZFVSTDtcclxuICAgIHRoaXMuZm9ybUNvbmZpZy50b2tlbiA9IHRoaXMucGVzcXVpc2FDb25maWcudG9rZW47XHJcbiAgfVxyXG5cclxuICBwZXNzb2FQZXNxdWlzYVJlY2ViaWRhKHBlc3NvYTogVW5iUGVzc29hTW9kZWwpIHsgICAgXHJcbiAgICAvLyAxLiBWZXJpZmljYSBzZSBhIHBlc3NvYSDDqSBudWxhIG91IHNlIMOpIHVtIG9iamV0byBcInZhemlvXCIgKHNlbSBJRCBlIHNlbSBkb2N1bWVudG9zKVxyXG4gICAgY29uc3QgaXNWYXppbyA9ICFwZXNzb2EgfHwgKFxyXG4gICAgICAhcGVzc29hLmNvZGlnb1Blc3NvYSAmJiAgIC8vIE7Do28gdGVtIElEXHJcbiAgICAgICFwZXNzb2EuY3BmICYmICAgICAgICAgICAgLy8gTsOjbyB0ZW0gQ1BGXHJcbiAgICAgICFwZXNzb2EuY25waiAmJiAgICAgICAgICAgLy8gTsOjbyB0ZW0gQ05QSlxyXG4gICAgICAhcGVzc29hLnBhc3NhcG9ydGUgICAgICAgIC8vIE7Do28gdGVtIFBhc3NhcG9ydGVcclxuICAgICk7XHJcblxyXG4gICAgaWYgKGlzVmF6aW8pIHtcclxuICAgICAgLy8gU2UgZm9yIHZhemlvLCBsaW1wYW1vcyBhIHNlbGXDp8OjbyBwYXJhIGVzY29uZGVyIG8gZm9ybXVsw6FyaW9cclxuICAgICAgLy8gKE8gKm5nSWY9XCJwZXNzb2FTZWxlY2lvbmFkYVwiIG5vIEhUTUwgdmFpIHJlbW92ZXIgbyBjb21wb25lbnRlIGRhIHRlbGEpXHJcbiAgICAgIHRoaXMucGVzc29hU2VsZWNpb25hZGEgPSBuZXcgVW5iUGVzc29hTW9kZWwoKTsgLy8gb3UgdW5kZWZpbmVkLCBkZXBlbmRlbmRvIGRhIHRpcGFnZW1cclxuICAgICAgdGhpcy5tb3N0cmFyQm90YW9Ob3ZvID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBTZSB0aXZlciBhbGd1bSBkYWRvIChDUEYgZGlnaXRhZG8gb3UgcGVzc29hIGVuY29udHJhZGEpLCBhdHVhbGl6YVxyXG4gICAgICB0aGlzLnBlc3NvYVNlbGVjaW9uYWRhID0gcGVzc29hO1xyXG4gICAgICBpZiAodGhpcy5wZXNzb2FTZWxlY2lvbmFkYS5jb2RpZ29QZXNzb2EpIHsgICAgICBcclxuICAgICAgICAvLyBqb2dhIHByYSBjaW1hIHByYSBmYWxhciBxdWUgdW1hIHBlc3NvYSBmb2kgZW5jb250cmFkYVxyXG4gICAgICAgIHRoaXMucGVzc29hRW1pdHRlZC5lbWl0KHBlc3NvYSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pbmNsdWlyQm90YW9Ob3ZvKSB7XHJcbiAgICAgICAgdGhpcy5vcGVuU25hY2tCYXIoJ1Blc3NvYSBuw6NvIGVuY29udHJhZGEuIENsaXF1ZSBlbSDigJxJbmNsdWlyIE5vdmEgUGVzc29h4oCdIHBhcmEgcmVhbGl6YXIgbyBjYWRhc3Ryby4nKTtcclxuICAgICAgICB0aGlzLm1vc3RyYXJCb3Rhb05vdm8gPSB0cnVlOyAgICAgICAgXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyAyLiBBdHVhbGl6YSBhIGNvbmZpZ3VyYcOnw6NvIGRvIGZvcm11bMOhcmlvXHJcbiAgICAvLyBJbXBvcnRhbnRlOiBTw7MgdGVudGEgYWNlc3NhciAncGVzc29hJyBzZSBmb3JtQ29uZmlnIGV4aXN0aXJcclxuICAgIGlmICh0aGlzLmZvcm1Db25maWcpIHtcclxuICAgICAgLy8gVXNhbW9zIG8gc3ByZWFkIG9wZXJhdG9yICguLi4pIHBhcmEgZm9yw6dhciBvIEFuZ3VsYXIgYSBkZXRlY3RhciBhIG11ZGFuw6dhLFxyXG4gICAgICAvLyBjYXNvIG8gY29tcG9uZW50ZSBmaWxobyB1c2UgbmdPbkNoYW5nZXNcclxuICAgICAgdGhpcy5mb3JtQ29uZmlnID0ge1xyXG4gICAgICAgIC4uLnRoaXMuZm9ybUNvbmZpZyxcclxuICAgICAgICBwZXNzb2E6IHRoaXMucGVzc29hU2VsZWNpb25hZGEgfHwgbmV3IFVuYlBlc3NvYU1vZGVsKCkgLy8gRXZpdGEgcGFzc2FyIG51bGwgcHJvIGZvcm0gc2UgbsOjbyBxdWlzZXJcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxpbXBhclNlbGVjYW8oKSB7XHJcbiAgICB0aGlzLnBlc3NvYVNlbGVjaW9uYWRhID0gbmV3IFVuYlBlc3NvYU1vZGVsKCk7IC8vIG91IG5ldyBVbmJQZXNzb2FNb2RlbCgpXHJcbiAgICAvLyBUYWx2ZXogcHJlY2lzZSBhdmlzYXIgbyBjb21wb25lbnRlIGZpbGhvIHBhcmEgbGltcGFyIG8gaW5wdXQgdGFtYsOpbVxyXG4gIH1cclxuXHJcbiAgZ2V0RG9jdW1lbnRvRm9ybWF0YWRvKHBlc3NvYTogVW5iUGVzc29hTW9kZWwpIHtcclxuICAgIGlmIChwZXNzb2EuY3BmICYmIHBlc3NvYS5jcGYudHJpbSgpICE9PSAnJykge1xyXG4gICAgICByZXR1cm4gcGVzc29hLmNwZjtcclxuICAgIH0gZWxzZSBpZiAocGVzc29hLmNucGogJiYgcGVzc29hLmNucGoudHJpbSgpICE9PSAnJykge1xyXG4gICAgICByZXR1cm4gcGVzc29hLmNucGo7XHJcbiAgICB9IGVsc2UgaWYgKHBlc3NvYS5wYXNzYXBvcnRlICYmIHBlc3NvYS5wYXNzYXBvcnRlLnRyaW0oKSAhPT0gJycpIHtcclxuICAgICAgcmV0dXJuIHBlc3NvYS5wYXNzYXBvcnRlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3Blbk1vZGFsKCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihVbmJQZXNzb2FGb3JtRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIC8vIDEuIERlZmluYSB1bSBwYWluZWwgZGUgY2xhc3NlIHBhcmEgY29udHJvbGFyIHR1ZG8gbm8gQ1NTXHJcbiAgICAgIHBhbmVsQ2xhc3M6ICdkaWFsb2ctcGVzc29hLWZ1bGxzY3JlZW4nLCBcclxuICAgICAgXHJcbiAgICAgIC8vIDIuIExhcmd1cmEgcGFkcsOjbyBwYXJhIERlc2t0b3AgKG8gQ1NTIHZhaSBzb2JyZXNjcmV2ZXIgbm8gbW9iaWxlKVxyXG4gICAgICB3aWR0aDogJzkwdncnLCBcclxuICAgICAgbWF4V2lkdGg6ICcxMjAwcHgnLCAvLyBUcmF2YSBwYXJhIG7Do28gZmljYXIgZ2lnYW50ZSBlbSBtb25pdG9yZXMgdWx0cmF3aWRlXHJcbiAgICAgIFxyXG4gICAgICAvLyAzLiBBbHR1cmEgYXV0b23DoXRpY2Egb3UgbcOheGltYSAoQ1NTIGNvbnRyb2xhIG8gZXN0aWNhcilcclxuICAgICAgbWF4SGVpZ2h0OiAnOTV2aCcsIFxyXG5cclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGNvbmZpZzogdGhpcy5mb3JtQ29uZmlnXHJcbiAgICAgIH0sXHJcbiAgICAgIGF1dG9Gb2N1czogJ2ZpcnN0LXRhYmJhYmxlJ1xyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChwZXNzb2FTYWx2YTogVW5iUGVzc29hTW9kZWwgfCBudWxsKSA9PiB7XHJcbiAgICAgIGlmIChwZXNzb2FTYWx2YT8uY29kaWdvUGVzc29hKSB7XHJcbiAgICAgICAgdGhpcy5wZXNzb2FFbWl0dGVkLmVtaXQocGVzc29hU2FsdmEpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5TbmFja0JhcihtZXNzYWdlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc25hY2tCYXIub3BlbihtZXNzYWdlLCAneCcsIHtcclxuICAgICAgZHVyYXRpb246IDUwMDAsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzZWFyY2gtd3JhcHBlclwiIFtjbGFzcy5kaXNhYmxlZC13cmFwcGVyXT1cImlzTG9hZGluZ1wiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0LWFyZWFcIj5cclxuICAgIDxsaWItdW5iLXBlc3NvYS1wZXNxdWlzYXIgXHJcbiAgICAgICAgW2NvbmZpZ109XCJwZXNxdWlzYUNvbmZpZ1wiIFxyXG4gICAgICAgIChwZXNzb2FFbWl0dGVkKT1cInBlc3NvYVBlc3F1aXNhUmVjZWJpZGEoJGV2ZW50KVwiPlxyXG4gICAgPC9saWItdW5iLXBlc3NvYS1wZXNxdWlzYXI+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJzZWFyY2gtYnV0dG9uLWFyZWFcIj5cclxuXHJcbiAgICA8YnV0dG9uICpuZ0lmPVwiaW5jbHVpckJvdGFvTm92byAmJiBtb3N0cmFyQm90YW9Ob3ZvICYmICFwZXNzb2FTZWxlY2lvbmFkYS5jb2RpZ29QZXNzb2FcIiBcclxuICAgICAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uIFxyXG4gICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuTW9kYWwoKVwiIFxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgXHJcbiAgICAgICAgICAgIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDtcIj5cclxuICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+IEluY2x1aXIgTm92YSBQZXNzb2FcclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJpbmNsdWlyQm90YW9BbHRlcmFyICYmIHBlc3NvYVNlbGVjaW9uYWRhLmNvZGlnb1Blc3NvYVwiIGNsYXNzPVwibWluaS1jYXJkLXNlbGVjdGVkXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWF2YXRhclwiPjxtYXQtaWNvbj5wZXJzb248L21hdC1pY29uPjwvZGl2PlxyXG4gICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaW5mb1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtbmFtZVwiPnt7IHBlc3NvYVNlbGVjaW9uYWRhLm5vbWUgfX08L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWRvY1wiPnt7IGdldERvY3VtZW50b0Zvcm1hdGFkbyhwZXNzb2FTZWxlY2lvbmFkYSkgfX08L2Rpdj5cclxuICAgICAgIDwvZGl2PlxyXG4gICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYWN0aW9uc1wiPlxyXG4gICAgICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwib3Blbk1vZGFsKClcIiB0eXBlPVwiYnV0dG9uXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5lZGl0PC9tYXQtaWNvbj4gRWRpdGFyXHJcbiAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==