oxpi-nglib 2.0.60 → 2.0.62

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.
@@ -20,14 +20,17 @@ export class ProdutoBuscaFiltrosDialogComponent {
20
20
  this.dialogRef = dialogRef;
21
21
  this.isBusy = false;
22
22
  this.produtosGrupos = [];
23
+ this.subgrupos = [];
23
24
  this.exibeGrupos = true;
24
25
  this.exibeQtdPagina = true;
25
26
  if (d.escondeGrupos === true)
26
27
  this.exibeGrupos = false;
27
28
  if (d.escondeQtdPagina === true)
28
29
  this.exibeQtdPagina = false;
29
- if (this.exibeGrupos === true)
30
+ if (this.exibeGrupos === true) {
30
31
  this.d.setting.grupos = undefined;
32
+ this.d.setting.subgrupos = undefined;
33
+ }
31
34
  }
32
35
  ngOnInit() {
33
36
  this.getGrupos();
@@ -46,6 +49,20 @@ export class ProdutoBuscaFiltrosDialogComponent {
46
49
  }
47
50
  });
48
51
  }
52
+ getSubGrupos() {
53
+ this.isBusy = true;
54
+ this.ws.getAllProdutoSubgrupo()
55
+ .subscribe({
56
+ next: r => {
57
+ this.subgrupos = r;
58
+ console.info(r);
59
+ this.isBusy = false;
60
+ }, error: err => {
61
+ this.isBusy = false;
62
+ this.notification.showHttpError(err);
63
+ }
64
+ });
65
+ }
49
66
  salvar() {
50
67
  this.dialogRef.close(this.d);
51
68
  }
@@ -53,14 +70,18 @@ export class ProdutoBuscaFiltrosDialogComponent {
53
70
  const itens = ev.value;
54
71
  this.d.setting.grupos = itens;
55
72
  }
73
+ changeSubgruposProdutos(ev) {
74
+ const itens = ev.value;
75
+ this.d.setting.subgrupos = itens;
76
+ }
56
77
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ProdutoBuscaFiltrosDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.CommonWebService }, { token: i2.NotificationService }, { token: i3.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ProdutoBuscaFiltrosDialogComponent, selector: "ox-produto-busca-filtros-dialog", ngImport: i0, template: "<div class=\"ox-header\">\n <span class=\"titulo\">Filtros de Pesquisa</span>\n <button mat-icon-button mat-dialog-close>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"dialog-content\">\n <div class=\"vbox\">\n <h4>Op\u00E7\u00F5es de exibi\u00E7\u00E3o</h4>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeControladoEstoque\" tabindex=-1>Apenas controlado no\n estoque</mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeMostraRecepcao\" tabindex=-1>Apenas o que mostra na recep\u00E7\u00E3o\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeImprimeCozinha\" tabindex=-1>Apenas imprime na cozinha\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeImprimeCorredor\" tabindex=-1>Apenas imprime no corredor\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeEmiteFiscal\" tabindex=-1>Apenas emite fiscal\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeNaoEmiteFiscal\" tabindex=-1>Apenas n\u00E3o emite fiscal\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeInativo\" tabindex=-1>Exibir desativados</mat-slide-toggle>\n </div>\n <div class=\"vbox margin-top-16\" *ngIf=\"exibeGrupos\">\n <label>Selecione um ou mais grupos</label>\n <mat-select (selectionChange)=\"changeGruposProdutos($event)\" multiple>\n <mat-option *ngFor=\"let i of produtosGrupos\" [value]=\"i.id\">\n {{i.nome}}\n </mat-option>\n </mat-select>\n </div>\n <div class=\"vbox margin-top-32\" *ngIf=\"exibeQtdPagina\">\n <div class=\"form-group\">\n <label>Quantidade de itens por p\u00E1gina</label>\n <input [(ngModel)]=\"d.qtd\" class=\"form-control input-120 text-right\" maxlength=\"10\" type=\"number\">\n </div>\n </div>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button (click)=\"salvar()\">CONFIRMAR</button>\n</div>", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}.header{display:flex;background:white;border-bottom:1px solid #eee}.header .titulo{align-self:center;margin-left:16px;text-transform:uppercase;flex-grow:1}mat-select{background:white;height:36px;padding:8px 16px;border-radius:.25rem;border:1px solid #ced4da}h4{margin:4px 0 2px;font-weight:500}\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: "directive", type: i5.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: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i10.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i11.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }] }); }
78
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ProdutoBuscaFiltrosDialogComponent, selector: "ox-produto-busca-filtros-dialog", ngImport: i0, template: "<div class=\"ox-header\">\n <span class=\"titulo\">Filtros de Pesquisa</span>\n <button mat-icon-button mat-dialog-close>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"dialog-content\">\n <div class=\"vbox\">\n <h4>Op\u00E7\u00F5es de exibi\u00E7\u00E3o</h4>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeControladoEstoque\" tabindex=-1>Apenas controlado no\n estoque</mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeMostraRecepcao\" tabindex=-1>Apenas o que mostra na recep\u00E7\u00E3o\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeImprimeCozinha\" tabindex=-1>Apenas imprime na cozinha\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeImprimeCorredor\" tabindex=-1>Apenas imprime no corredor\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeEmiteFiscal\" tabindex=-1>Apenas emite fiscal\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeNaoEmiteFiscal\" tabindex=-1>Apenas n\u00E3o emite fiscal\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeInativo\" tabindex=-1>Exibir desativados</mat-slide-toggle>\n </div>\n <div class=\"vbox margin-top-16\" *ngIf=\"exibeGrupos\">\n <label>Selecione um ou mais grupos</label>\n <mat-select (selectionChange)=\"changeGruposProdutos($event)\" multiple>\n <mat-option *ngFor=\"let i of produtosGrupos\" [value]=\"i.id\">\n {{i.nome}}\n </mat-option>\n </mat-select>\n </div>\n <div class=\"vbox margin-top-16\" *ngIf=\"exibeGrupos\">\n <label>Selecione um ou mais subgrupos</label>\n <mat-select (selectionChange)=\"changeSubgruposProdutos($event)\" multiple>\n <mat-option *ngFor=\"let i of subgrupos\" [value]=\"i.id\">\n {{i.nome}}\n </mat-option>\n </mat-select>\n </div>\n <div class=\"vbox margin-top-32\" *ngIf=\"exibeQtdPagina\">\n <div class=\"form-group\">\n <label>Quantidade de itens por p\u00E1gina</label>\n <input [(ngModel)]=\"d.qtd\" class=\"form-control input-120 text-right\" maxlength=\"10\" type=\"number\">\n </div>\n </div>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button (click)=\"salvar()\">CONFIRMAR</button>\n</div>", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}.header{display:flex;background:white;border-bottom:1px solid #eee}.header .titulo{align-self:center;margin-left:16px;text-transform:uppercase;flex-grow:1}mat-select{background:white;height:36px;padding:8px 16px;border-radius:.25rem;border:1px solid #ced4da}h4{margin:4px 0 2px;font-weight:500}\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: "directive", type: i5.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: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i10.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i11.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }] }); }
58
79
  }
59
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ProdutoBuscaFiltrosDialogComponent, decorators: [{
60
81
  type: Component,
61
- args: [{ selector: 'ox-produto-busca-filtros-dialog', template: "<div class=\"ox-header\">\n <span class=\"titulo\">Filtros de Pesquisa</span>\n <button mat-icon-button mat-dialog-close>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"dialog-content\">\n <div class=\"vbox\">\n <h4>Op\u00E7\u00F5es de exibi\u00E7\u00E3o</h4>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeControladoEstoque\" tabindex=-1>Apenas controlado no\n estoque</mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeMostraRecepcao\" tabindex=-1>Apenas o que mostra na recep\u00E7\u00E3o\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeImprimeCozinha\" tabindex=-1>Apenas imprime na cozinha\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeImprimeCorredor\" tabindex=-1>Apenas imprime no corredor\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeEmiteFiscal\" tabindex=-1>Apenas emite fiscal\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeNaoEmiteFiscal\" tabindex=-1>Apenas n\u00E3o emite fiscal\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeInativo\" tabindex=-1>Exibir desativados</mat-slide-toggle>\n </div>\n <div class=\"vbox margin-top-16\" *ngIf=\"exibeGrupos\">\n <label>Selecione um ou mais grupos</label>\n <mat-select (selectionChange)=\"changeGruposProdutos($event)\" multiple>\n <mat-option *ngFor=\"let i of produtosGrupos\" [value]=\"i.id\">\n {{i.nome}}\n </mat-option>\n </mat-select>\n </div>\n <div class=\"vbox margin-top-32\" *ngIf=\"exibeQtdPagina\">\n <div class=\"form-group\">\n <label>Quantidade de itens por p\u00E1gina</label>\n <input [(ngModel)]=\"d.qtd\" class=\"form-control input-120 text-right\" maxlength=\"10\" type=\"number\">\n </div>\n </div>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button (click)=\"salvar()\">CONFIRMAR</button>\n</div>", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}.header{display:flex;background:white;border-bottom:1px solid #eee}.header .titulo{align-self:center;margin-left:16px;text-transform:uppercase;flex-grow:1}mat-select{background:white;height:36px;padding:8px 16px;border-radius:.25rem;border:1px solid #ced4da}h4{margin:4px 0 2px;font-weight:500}\n"] }]
82
+ args: [{ selector: 'ox-produto-busca-filtros-dialog', template: "<div class=\"ox-header\">\n <span class=\"titulo\">Filtros de Pesquisa</span>\n <button mat-icon-button mat-dialog-close>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>\n<div class=\"dialog-content\">\n <div class=\"vbox\">\n <h4>Op\u00E7\u00F5es de exibi\u00E7\u00E3o</h4>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeControladoEstoque\" tabindex=-1>Apenas controlado no\n estoque</mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeMostraRecepcao\" tabindex=-1>Apenas o que mostra na recep\u00E7\u00E3o\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeImprimeCozinha\" tabindex=-1>Apenas imprime na cozinha\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeImprimeCorredor\" tabindex=-1>Apenas imprime no corredor\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeEmiteFiscal\" tabindex=-1>Apenas emite fiscal\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeNaoEmiteFiscal\" tabindex=-1>Apenas n\u00E3o emite fiscal\n </mat-slide-toggle>\n <mat-slide-toggle [(ngModel)]=\"d.setting.exibeInativo\" tabindex=-1>Exibir desativados</mat-slide-toggle>\n </div>\n <div class=\"vbox margin-top-16\" *ngIf=\"exibeGrupos\">\n <label>Selecione um ou mais grupos</label>\n <mat-select (selectionChange)=\"changeGruposProdutos($event)\" multiple>\n <mat-option *ngFor=\"let i of produtosGrupos\" [value]=\"i.id\">\n {{i.nome}}\n </mat-option>\n </mat-select>\n </div>\n <div class=\"vbox margin-top-16\" *ngIf=\"exibeGrupos\">\n <label>Selecione um ou mais subgrupos</label>\n <mat-select (selectionChange)=\"changeSubgruposProdutos($event)\" multiple>\n <mat-option *ngFor=\"let i of subgrupos\" [value]=\"i.id\">\n {{i.nome}}\n </mat-option>\n </mat-select>\n </div>\n <div class=\"vbox margin-top-32\" *ngIf=\"exibeQtdPagina\">\n <div class=\"form-group\">\n <label>Quantidade de itens por p\u00E1gina</label>\n <input [(ngModel)]=\"d.qtd\" class=\"form-control input-120 text-right\" maxlength=\"10\" type=\"number\">\n </div>\n </div>\n</div>\n<div class=\"dialog-footer\">\n <button mat-button (click)=\"salvar()\">CONFIRMAR</button>\n</div>", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}.header{display:flex;background:white;border-bottom:1px solid #eee}.header .titulo{align-self:center;margin-left:16px;text-transform:uppercase;flex-grow:1}mat-select{background:white;height:36px;padding:8px 16px;border-radius:.25rem;border:1px solid #ced4da}h4{margin:4px 0 2px;font-weight:500}\n"] }]
62
83
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
63
84
  type: Inject,
64
85
  args: [MAT_DIALOG_DATA]
65
86
  }] }, { type: i1.CommonWebService }, { type: i2.NotificationService }, { type: i3.MatDialogRef }]; } });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0by1idXNjYS1maWx0cm9zLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zL3Byb2R1dG8tYnVzY2EtZmlsdHJvcy1kaWFsb2cvcHJvZHV0by1idXNjYS1maWx0cm9zLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zL3Byb2R1dG8tYnVzY2EtZmlsdHJvcy1kaWFsb2cvcHJvZHV0by1idXNjYS1maWx0cm9zLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBYXpFLE1BQU0sT0FBTyxrQ0FBa0M7SUFLN0MsWUFFUyxDQUFvQixFQUNuQixFQUFvQixFQUNwQixZQUFpQyxFQUNsQyxTQUEyRDtRQUgzRCxNQUFDLEdBQUQsQ0FBQyxDQUFtQjtRQUNuQixPQUFFLEdBQUYsRUFBRSxDQUFrQjtRQUNwQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDbEMsY0FBUyxHQUFULFNBQVMsQ0FBa0Q7UUFUcEUsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixtQkFBYyxHQUFtQixFQUFFLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFPcEIsSUFBSSxDQUFDLENBQUMsYUFBYSxLQUFLLElBQUk7WUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLEtBQUssSUFBSTtZQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSTtZQUMzQixJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFDRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRTthQUN6QixTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7Z0JBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsTUFBTTtRQUNKLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0Qsb0JBQW9CLENBQUMsRUFBbUI7UUFDdEMsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7OEdBMUNVLGtDQUFrQyxrQkFNbkMsZUFBZTtrR0FOZCxrQ0FBa0MsdUVDZC9DLDZsRUF5Q007OzJGRDNCTyxrQ0FBa0M7a0JBTDlDLFNBQVM7K0JBQ0UsaUNBQWlDOzswQkFVeEMsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IFByb2R1dG9HcnVwbyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0by1ncnVwbyc7XG5pbXBvcnQgeyBQcm9kdXRvU2VhcmNoU2V0dGluZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9zZXR0aW5ncy9wcm9kdXRvLXNlYXJjaC1zZXR0aW5nJztcbmltcG9ydCB7IENvbW1vbldlYlNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvY29tbW9uLXdlYi1zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ294LXByb2R1dG8tYnVzY2EtZmlsdHJvcy1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHV0by1idXNjYS1maWx0cm9zLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2R1dG8tYnVzY2EtZmlsdHJvcy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQcm9kdXRvQnVzY2FGaWx0cm9zRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgaXNCdXN5OiBib29sZWFuID0gZmFsc2U7XG4gIHByb2R1dG9zR3J1cG9zOiBQcm9kdXRvR3J1cG9bXSA9IFtdO1xuICBleGliZUdydXBvcyA9IHRydWU7XG4gIGV4aWJlUXRkUGFnaW5hID0gdHJ1ZTtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpXG4gICAgcHVibGljIGQ6IGZpbHRyb3NEaWFsb2dEYXRhLFxuICAgIHByaXZhdGUgd3M6IENvbW1vbldlYlNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFByb2R1dG9CdXNjYUZpbHRyb3NEaWFsb2dDb21wb25lbnQ+KSB7XG4gICAgaWYgKGQuZXNjb25kZUdydXBvcyA9PT0gdHJ1ZSlcbiAgICAgIHRoaXMuZXhpYmVHcnVwb3MgPSBmYWxzZTtcbiAgICBpZiAoZC5lc2NvbmRlUXRkUGFnaW5hID09PSB0cnVlKVxuICAgICAgdGhpcy5leGliZVF0ZFBhZ2luYSA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmV4aWJlR3J1cG9zID09PSB0cnVlKVxuICAgICAgdGhpcy5kLnNldHRpbmcuZ3J1cG9zID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRHcnVwb3MoKTtcbiAgfVxuICBnZXRHcnVwb3MoKSB7XG4gICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgIHRoaXMud3MuZ2V0QWxsUHJvZHV0b0dydXBvKClcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiByID0+IHtcbiAgICAgICAgICB0aGlzLnByb2R1dG9zR3J1cG9zID0gcjtcbiAgICAgICAgICBjb25zb2xlLmluZm8ocik7XG4gICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93SHR0cEVycm9yKGVycik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG4gIHNhbHZhcigpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLmQpO1xuICB9XG4gIGNoYW5nZUdydXBvc1Byb2R1dG9zKGV2OiBNYXRTZWxlY3RDaGFuZ2UpIHtcbiAgICBjb25zdCBpdGVuczogbnVtYmVyW10gPSBldi52YWx1ZTtcbiAgICB0aGlzLmQuc2V0dGluZy5ncnVwb3MgPSBpdGVucztcbiAgfVxufVxuZXhwb3J0IGludGVyZmFjZSBmaWx0cm9zRGlhbG9nRGF0YSB7XG4gIHNldHRpbmc6IFByb2R1dG9TZWFyY2hTZXR0aW5nO1xuICBxdGQ6IG51bWJlcjtcbiAgZXNjb25kZUdydXBvcz86IGJvb2xlYW47XG4gIGVzY29uZGVRdGRQYWdpbmE/OiBib29sZWFuO1xufVxuIiwiPGRpdiBjbGFzcz1cIm94LWhlYWRlclwiPlxuICAgIDxzcGFuIGNsYXNzPVwidGl0dWxvXCI+RmlsdHJvcyBkZSBQZXNxdWlzYTwvc3Bhbj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlPlxuICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG48b3gtYnVzeS1pbmRpY2F0b3IgW2lzQnVzeV09XCJpc0J1c3lcIj48L294LWJ1c3ktaW5kaWNhdG9yPlxuPGRpdiBjbGFzcz1cImRpYWxvZy1jb250ZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cInZib3hcIj5cbiAgICAgICAgPGg0Pk9ww6fDtWVzIGRlIGV4aWJpw6fDo288L2g0PlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbKG5nTW9kZWwpXT1cImQuc2V0dGluZy5leGliZUNvbnRyb2xhZG9Fc3RvcXVlXCIgdGFiaW5kZXg9LTE+QXBlbmFzIGNvbnRyb2xhZG8gbm9cbiAgICAgICAgICAgIGVzdG9xdWU8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFsobmdNb2RlbCldPVwiZC5zZXR0aW5nLmV4aWJlTW9zdHJhUmVjZXBjYW9cIiB0YWJpbmRleD0tMT5BcGVuYXMgbyBxdWUgbW9zdHJhIG5hIHJlY2Vww6fDo29cbiAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbKG5nTW9kZWwpXT1cImQuc2V0dGluZy5leGliZUltcHJpbWVDb3ppbmhhXCIgdGFiaW5kZXg9LTE+QXBlbmFzIGltcHJpbWUgbmEgY296aW5oYVxuICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFsobmdNb2RlbCldPVwiZC5zZXR0aW5nLmV4aWJlSW1wcmltZUNvcnJlZG9yXCIgdGFiaW5kZXg9LTE+QXBlbmFzIGltcHJpbWUgbm8gY29ycmVkb3JcbiAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbKG5nTW9kZWwpXT1cImQuc2V0dGluZy5leGliZUVtaXRlRmlzY2FsXCIgdGFiaW5kZXg9LTE+QXBlbmFzIGVtaXRlIGZpc2NhbFxuICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFsobmdNb2RlbCldPVwiZC5zZXR0aW5nLmV4aWJlTmFvRW1pdGVGaXNjYWxcIiB0YWJpbmRleD0tMT5BcGVuYXMgbsOjbyBlbWl0ZSBmaXNjYWxcbiAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbKG5nTW9kZWwpXT1cImQuc2V0dGluZy5leGliZUluYXRpdm9cIiB0YWJpbmRleD0tMT5FeGliaXIgZGVzYXRpdmFkb3M8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInZib3ggbWFyZ2luLXRvcC0xNlwiICpuZ0lmPVwiZXhpYmVHcnVwb3NcIj5cbiAgICAgICAgPGxhYmVsPlNlbGVjaW9uZSB1bSBvdSBtYWlzIGdydXBvczwvbGFiZWw+XG4gICAgICAgIDxtYXQtc2VsZWN0IChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlR3J1cG9zUHJvZHV0b3MoJGV2ZW50KVwiIG11bHRpcGxlPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGkgb2YgcHJvZHV0b3NHcnVwb3NcIiBbdmFsdWVdPVwiaS5pZFwiPlxuICAgICAgICAgICAgICAgIHt7aS5ub21lfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ2Ym94IG1hcmdpbi10b3AtMzJcIiAqbmdJZj1cImV4aWJlUXRkUGFnaW5hXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICA8bGFiZWw+UXVhbnRpZGFkZSBkZSBpdGVucyBwb3IgcMOhZ2luYTwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJkLnF0ZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTEyMCB0ZXh0LXJpZ2h0XCIgbWF4bGVuZ3RoPVwiMTBcIiB0eXBlPVwibnVtYmVyXCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZGlhbG9nLWZvb3RlclwiPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwic2FsdmFyKClcIj5DT05GSVJNQVI8L2J1dHRvbj5cbjwvZGl2PiJdfQ==
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0by1idXNjYS1maWx0cm9zLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zL3Byb2R1dG8tYnVzY2EtZmlsdHJvcy1kaWFsb2cvcHJvZHV0by1idXNjYS1maWx0cm9zLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zL3Byb2R1dG8tYnVzY2EtZmlsdHJvcy1kaWFsb2cvcHJvZHV0by1idXNjYS1maWx0cm9zLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBYXpFLE1BQU0sT0FBTyxrQ0FBa0M7SUFNN0MsWUFFUyxDQUFvQixFQUNuQixFQUFvQixFQUNwQixZQUFpQyxFQUNsQyxTQUEyRDtRQUgzRCxNQUFDLEdBQUQsQ0FBQyxDQUFtQjtRQUNuQixPQUFFLEdBQUYsRUFBRSxDQUFrQjtRQUNwQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDbEMsY0FBUyxHQUFULFNBQVMsQ0FBa0Q7UUFWcEUsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixtQkFBYyxHQUFtQixFQUFFLENBQUM7UUFDcEMsY0FBUyxHQUFzQixFQUFFLENBQUM7UUFDbEMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFPcEIsSUFBSSxDQUFDLENBQUMsYUFBYSxLQUFLLElBQUk7WUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLEtBQUssSUFBSTtZQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxFQUM3QjtZQUNFLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7WUFDbEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztTQUV0QztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFDRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRTthQUN6QixTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7Z0JBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMscUJBQXFCLEVBQUU7YUFDNUIsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO2dCQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO2dCQUNuQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUN0QixDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNkLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELG9CQUFvQixDQUFDLEVBQW1CO1FBQ3RDLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBQ0QsdUJBQXVCLENBQUMsRUFBbUI7UUFDekMsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7OEdBakVVLGtDQUFrQyxrQkFPbkMsZUFBZTtrR0FQZCxrQ0FBa0MsdUVDZC9DLDA4RUFpRE07OzJGRG5DTyxrQ0FBa0M7a0JBTDlDLFNBQVM7K0JBQ0UsaUNBQWlDOzswQkFXeEMsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IFByb2R1dG9HcnVwbywgUHJvZHV0b1N1YmdydXBvIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2VudGlkYWRlcy9wcm9kdXRvLWdydXBvJztcbmltcG9ydCB7IFByb2R1dG9TZWFyY2hTZXR0aW5nIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3NldHRpbmdzL3Byb2R1dG8tc2VhcmNoLXNldHRpbmcnO1xuaW1wb3J0IHsgQ29tbW9uV2ViU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9jb21tb24td2ViLXNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9ub3RpZmljYXRpb24uc2VydmljZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb3gtcHJvZHV0by1idXNjYS1maWx0cm9zLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9kdXRvLWJ1c2NhLWZpbHRyb3MtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZHV0by1idXNjYS1maWx0cm9zLWRpYWxvZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1dG9CdXNjYUZpbHRyb3NEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBpc0J1c3k6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJvZHV0b3NHcnVwb3M6IFByb2R1dG9HcnVwb1tdID0gW107XG4gIHN1YmdydXBvczogUHJvZHV0b1N1YmdydXBvW10gPSBbXTtcbiAgZXhpYmVHcnVwb3MgPSB0cnVlO1xuICBleGliZVF0ZFBhZ2luYSA9IHRydWU7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxuICAgIHB1YmxpYyBkOiBmaWx0cm9zRGlhbG9nRGF0YSxcbiAgICBwcml2YXRlIHdzOiBDb21tb25XZWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQcm9kdXRvQnVzY2FGaWx0cm9zRGlhbG9nQ29tcG9uZW50Pikge1xuICAgIGlmIChkLmVzY29uZGVHcnVwb3MgPT09IHRydWUpXG4gICAgICB0aGlzLmV4aWJlR3J1cG9zID0gZmFsc2U7XG4gICAgaWYgKGQuZXNjb25kZVF0ZFBhZ2luYSA9PT0gdHJ1ZSlcbiAgICAgIHRoaXMuZXhpYmVRdGRQYWdpbmEgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5leGliZUdydXBvcyA9PT0gdHJ1ZSlcbiAgICB7XG4gICAgICB0aGlzLmQuc2V0dGluZy5ncnVwb3MgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmQuc2V0dGluZy5zdWJncnVwb3MgPSB1bmRlZmluZWQ7XG5cbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldEdydXBvcygpO1xuICB9XG4gIGdldEdydXBvcygpIHtcbiAgICB0aGlzLmlzQnVzeSA9IHRydWU7XG4gICAgdGhpcy53cy5nZXRBbGxQcm9kdXRvR3J1cG8oKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IHIgPT4ge1xuICAgICAgICAgIHRoaXMucHJvZHV0b3NHcnVwb3MgPSByO1xuICAgICAgICAgIGNvbnNvbGUuaW5mbyhyKTtcbiAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICB9LCBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dIdHRwRXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbiAgZ2V0U3ViR3J1cG9zKCkge1xuICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICB0aGlzLndzLmdldEFsbFByb2R1dG9TdWJncnVwbygpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogciA9PiB7XG4gICAgICAgICAgdGhpcy5zdWJncnVwb3MgPSByO1xuICAgICAgICAgIGNvbnNvbGUuaW5mbyhyKTtcbiAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICB9LCBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dIdHRwRXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbiAgc2FsdmFyKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuZCk7XG4gIH1cbiAgY2hhbmdlR3J1cG9zUHJvZHV0b3MoZXY6IE1hdFNlbGVjdENoYW5nZSkge1xuICAgIGNvbnN0IGl0ZW5zOiBudW1iZXJbXSA9IGV2LnZhbHVlO1xuICAgIHRoaXMuZC5zZXR0aW5nLmdydXBvcyA9IGl0ZW5zO1xuICB9XG4gIGNoYW5nZVN1YmdydXBvc1Byb2R1dG9zKGV2OiBNYXRTZWxlY3RDaGFuZ2UpIHtcbiAgICBjb25zdCBpdGVuczogbnVtYmVyW10gPSBldi52YWx1ZTtcbiAgICB0aGlzLmQuc2V0dGluZy5zdWJncnVwb3MgPSBpdGVucztcbiAgfVxufVxuZXhwb3J0IGludGVyZmFjZSBmaWx0cm9zRGlhbG9nRGF0YSB7XG4gIHNldHRpbmc6IFByb2R1dG9TZWFyY2hTZXR0aW5nO1xuICBxdGQ6IG51bWJlcjtcbiAgZXNjb25kZUdydXBvcz86IGJvb2xlYW47XG4gIGVzY29uZGVRdGRQYWdpbmE/OiBib29sZWFuO1xufVxuIiwiPGRpdiBjbGFzcz1cIm94LWhlYWRlclwiPlxuICAgIDxzcGFuIGNsYXNzPVwidGl0dWxvXCI+RmlsdHJvcyBkZSBQZXNxdWlzYTwvc3Bhbj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlPlxuICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG48b3gtYnVzeS1pbmRpY2F0b3IgW2lzQnVzeV09XCJpc0J1c3lcIj48L294LWJ1c3ktaW5kaWNhdG9yPlxuPGRpdiBjbGFzcz1cImRpYWxvZy1jb250ZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cInZib3hcIj5cbiAgICAgICAgPGg0Pk9ww6fDtWVzIGRlIGV4aWJpw6fDo288L2g0PlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbKG5nTW9kZWwpXT1cImQuc2V0dGluZy5leGliZUNvbnRyb2xhZG9Fc3RvcXVlXCIgdGFiaW5kZXg9LTE+QXBlbmFzIGNvbnRyb2xhZG8gbm9cbiAgICAgICAgICAgIGVzdG9xdWU8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFsobmdNb2RlbCldPVwiZC5zZXR0aW5nLmV4aWJlTW9zdHJhUmVjZXBjYW9cIiB0YWJpbmRleD0tMT5BcGVuYXMgbyBxdWUgbW9zdHJhIG5hIHJlY2Vww6fDo29cbiAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbKG5nTW9kZWwpXT1cImQuc2V0dGluZy5leGliZUltcHJpbWVDb3ppbmhhXCIgdGFiaW5kZXg9LTE+QXBlbmFzIGltcHJpbWUgbmEgY296aW5oYVxuICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFsobmdNb2RlbCldPVwiZC5zZXR0aW5nLmV4aWJlSW1wcmltZUNvcnJlZG9yXCIgdGFiaW5kZXg9LTE+QXBlbmFzIGltcHJpbWUgbm8gY29ycmVkb3JcbiAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbKG5nTW9kZWwpXT1cImQuc2V0dGluZy5leGliZUVtaXRlRmlzY2FsXCIgdGFiaW5kZXg9LTE+QXBlbmFzIGVtaXRlIGZpc2NhbFxuICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFsobmdNb2RlbCldPVwiZC5zZXR0aW5nLmV4aWJlTmFvRW1pdGVGaXNjYWxcIiB0YWJpbmRleD0tMT5BcGVuYXMgbsOjbyBlbWl0ZSBmaXNjYWxcbiAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbKG5nTW9kZWwpXT1cImQuc2V0dGluZy5leGliZUluYXRpdm9cIiB0YWJpbmRleD0tMT5FeGliaXIgZGVzYXRpdmFkb3M8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInZib3ggbWFyZ2luLXRvcC0xNlwiICpuZ0lmPVwiZXhpYmVHcnVwb3NcIj5cbiAgICAgICAgPGxhYmVsPlNlbGVjaW9uZSB1bSBvdSBtYWlzIGdydXBvczwvbGFiZWw+XG4gICAgICAgIDxtYXQtc2VsZWN0IChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlR3J1cG9zUHJvZHV0b3MoJGV2ZW50KVwiIG11bHRpcGxlPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGkgb2YgcHJvZHV0b3NHcnVwb3NcIiBbdmFsdWVdPVwiaS5pZFwiPlxuICAgICAgICAgICAgICAgIHt7aS5ub21lfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ2Ym94IG1hcmdpbi10b3AtMTZcIiAqbmdJZj1cImV4aWJlR3J1cG9zXCI+XG4gICAgICAgIDxsYWJlbD5TZWxlY2lvbmUgdW0gb3UgbWFpcyBzdWJncnVwb3M8L2xhYmVsPlxuICAgICAgICA8bWF0LXNlbGVjdCAoc2VsZWN0aW9uQ2hhbmdlKT1cImNoYW5nZVN1YmdydXBvc1Byb2R1dG9zKCRldmVudClcIiBtdWx0aXBsZT5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpIG9mIHN1YmdydXBvc1wiIFt2YWx1ZV09XCJpLmlkXCI+XG4gICAgICAgICAgICAgICAge3tpLm5vbWV9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInZib3ggbWFyZ2luLXRvcC0zMlwiICpuZ0lmPVwiZXhpYmVRdGRQYWdpbmFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsYWJlbD5RdWFudGlkYWRlIGRlIGl0ZW5zIHBvciBww6FnaW5hPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cImQucXRkXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaW5wdXQtMTIwIHRleHQtcmlnaHRcIiBtYXhsZW5ndGg9XCIxMFwiIHR5cGU9XCJudW1iZXJcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJkaWFsb2ctZm9vdGVyXCI+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJzYWx2YXIoKVwiPkNPTkZJUk1BUjwvYnV0dG9uPlxuPC9kaXY+Il19
@@ -67,13 +67,13 @@ export class ProdutosInformacoesAdicionaisComponent {
67
67
  });
68
68
  }
69
69
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ProdutosInformacoesAdicionaisComponent, deps: [{ token: i1.CommonWebService }, { token: MAT_DIALOG_DATA }, { token: i2.HttpClient }, { token: i3.MatDialogRef }, { token: i4.AuthDataService }, { token: i5.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
70
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ProdutosInformacoesAdicionaisComponent, selector: "lib-produtos-informacoes-adicionais", ngImport: i0, template: "<div class=\"ox-header\">\n <h2 class=\"titulo\">Informa\u00E7\u00F5es Adicionais</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <div class=\"form-section vbox\">\n <h4>Painel da Cozinha</h4>\n <div class=\"form-group\" *ngIf=\"model\">\n <mat-checkbox id=\"exibeImagemPainelCozinha\" [(ngModel)]=\"model.exibirFotoPainelCozinha\" tabindex=\"3\">\n Exibe Imagem no Painel da Cozinha</mat-checkbox>\n </div>\n <div class=\"form-group\" *ngIf=\"model\">\n <label>Modo de Preparo</label>\n <textarea id=\"modo_preparo\" [(ngModel)]=\"model.modoPreparo\" cols=\"40\" rows=\"8\"\n class=\"form-control input-300\" tabindex=\"2\"></textarea>\n </div>\n </div>\n\n</div>\n<div class=\"dialog-footer\">\n <button mat-button color=\"primary\" (click)=\"salvar()\" tabindex=\"9\">SALVAR</button>\n <button mat-button [mat-dialog-close]>VOLTAR</button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i10.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i11.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }] }); }
70
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ProdutosInformacoesAdicionaisComponent, selector: "lib-produtos-informacoes-adicionais", ngImport: i0, template: "<div class=\"ox-header\">\n <h2 class=\"titulo\">Informa\u00E7\u00F5es Adicionais</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <div class=\"form-section vbox\">\n <h4>Painel da Cozinha</h4>\n <div class=\"form-block\" *ngIf=\"model\">\n <mat-checkbox id=\"exibeImagemPainelCozinha\" [(ngModel)]=\"model.exibirFotoPainelCozinha\" tabindex=\"3\">\n Exibe Imagem no Painel da Cozinha</mat-checkbox>\n </div>\n <div class=\"form-block\" *ngIf=\"model\">\n <label>Modo de Preparo</label>\n <textarea id=\"modo_preparo\" [(ngModel)]=\"model.modoPreparo\" cols=\"40\" rows=\"8\"\n class=\"form-control input-300\" tabindex=\"2\"></textarea>\n </div>\n </div>\n\n</div>\n<div class=\"dialog-footer\">\n <button mat-button color=\"primary\" (click)=\"salvar()\" tabindex=\"9\">SALVAR</button>\n <button mat-button [mat-dialog-close]>VOLTAR</button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i10.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i11.BusyIndicatorComponent, selector: "ox-busy-indicator", inputs: ["isBusy"] }] }); }
71
71
  }
72
72
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ProdutosInformacoesAdicionaisComponent, decorators: [{
73
73
  type: Component,
74
- args: [{ selector: 'lib-produtos-informacoes-adicionais', template: "<div class=\"ox-header\">\n <h2 class=\"titulo\">Informa\u00E7\u00F5es Adicionais</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <div class=\"form-section vbox\">\n <h4>Painel da Cozinha</h4>\n <div class=\"form-group\" *ngIf=\"model\">\n <mat-checkbox id=\"exibeImagemPainelCozinha\" [(ngModel)]=\"model.exibirFotoPainelCozinha\" tabindex=\"3\">\n Exibe Imagem no Painel da Cozinha</mat-checkbox>\n </div>\n <div class=\"form-group\" *ngIf=\"model\">\n <label>Modo de Preparo</label>\n <textarea id=\"modo_preparo\" [(ngModel)]=\"model.modoPreparo\" cols=\"40\" rows=\"8\"\n class=\"form-control input-300\" tabindex=\"2\"></textarea>\n </div>\n </div>\n\n</div>\n<div class=\"dialog-footer\">\n <button mat-button color=\"primary\" (click)=\"salvar()\" tabindex=\"9\">SALVAR</button>\n <button mat-button [mat-dialog-close]>VOLTAR</button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"] }]
74
+ args: [{ selector: 'lib-produtos-informacoes-adicionais', template: "<div class=\"ox-header\">\n <h2 class=\"titulo\">Informa\u00E7\u00F5es Adicionais</h2>\n <button mat-icon-button [mat-dialog-close]>\n <mat-icon>close</mat-icon>\n </button>\n</div>\n<div class=\"dialog-content\">\n <div class=\"form-section vbox\">\n <h4>Painel da Cozinha</h4>\n <div class=\"form-block\" *ngIf=\"model\">\n <mat-checkbox id=\"exibeImagemPainelCozinha\" [(ngModel)]=\"model.exibirFotoPainelCozinha\" tabindex=\"3\">\n Exibe Imagem no Painel da Cozinha</mat-checkbox>\n </div>\n <div class=\"form-block\" *ngIf=\"model\">\n <label>Modo de Preparo</label>\n <textarea id=\"modo_preparo\" [(ngModel)]=\"model.modoPreparo\" cols=\"40\" rows=\"8\"\n class=\"form-control input-300\" tabindex=\"2\"></textarea>\n </div>\n </div>\n\n</div>\n<div class=\"dialog-footer\">\n <button mat-button color=\"primary\" (click)=\"salvar()\" tabindex=\"9\">SALVAR</button>\n <button mat-button [mat-dialog-close]>VOLTAR</button>\n</div>\n<ox-busy-indicator [isBusy]=\"isBusy\"></ox-busy-indicator>", styles: [":host{background:#fafafa;display:flex;flex-direction:column;height:100%;max-height:99vh}\n"] }]
75
75
  }], ctorParameters: function () { return [{ type: i1.CommonWebService }, { type: undefined, decorators: [{
76
76
  type: Inject,
77
77
  args: [MAT_DIALOG_DATA]
78
78
  }] }, { type: i2.HttpClient }, { type: i3.MatDialogRef }, { type: i4.AuthDataService }, { type: i5.NotificationService }]; } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0b3MtaW5mb3JtYWNvZXMtYWRpY2lvbmFpcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zLWluZm9ybWFjb2VzLWFkaWNpb25haXMvcHJvZHV0b3MtaW5mb3JtYWNvZXMtYWRpY2lvbmFpcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zLWluZm9ybWFjb2VzLWFkaWNpb25haXMvcHJvZHV0b3MtaW5mb3JtYWNvZXMtYWRpY2lvbmFpcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQXlDLGtDQUFrQyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHM0gsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUl6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFPN0QsTUFBTSxPQUFPLHNDQUFzQztJQUlqRCxZQUNVLEVBQW9CLEVBRXJCLFVBQW1CLEVBQ2xCLElBQWdCLEVBQ2hCLFNBQStELEVBQy9ELElBQXFCLEVBQ3JCLFlBQWlDO1FBTmpDLE9BQUUsR0FBRixFQUFFLENBQWtCO1FBRXJCLGVBQVUsR0FBVixVQUFVLENBQVM7UUFDbEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFzRDtRQUMvRCxTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFWM0MsVUFBSyxHQUF3QyxJQUFJLENBQUM7UUFDbEQsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixVQUFLLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7SUFTekMsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSTtRQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQzthQUN6RCxTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFFLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ2pELFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtnQkFDUixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxJQUFJLENBQUMsU0FBUztvQkFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDOzhHQXREVSxzQ0FBc0Msa0RBTXZDLGVBQWU7a0dBTmQsc0NBQXNDLDJFQ2ZuRCxxbUNBeUJ5RDs7MkZEVjVDLHNDQUFzQztrQkFMbEQsU0FBUzsrQkFDRSxxQ0FBcUM7OzBCQVU1QyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvZHV0bywgUHJvZHV0b0luZm9ybWFjb2VzQWRpY2lvbmFpcywgdmFsaWRhUHJvZHV0b0luZm9ybWFjb2VzQWRpY2lvbmFpcyB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0byc7XG5cbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBDb21tb25XZWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2NvbW1vbi13ZWItc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvYXV0aC1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBGb2N1c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvZm9jdXMuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1wcm9kdXRvcy1pbmZvcm1hY29lcy1hZGljaW9uYWlzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1dG9zLWluZm9ybWFjb2VzLWFkaWNpb25haXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9kdXRvcy1pbmZvcm1hY29lcy1hZGljaW9uYWlzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHJvZHV0b3NJbmZvcm1hY29lc0FkaWNpb25haXNDb21wb25lbnQge1xuICBtb2RlbDogUHJvZHV0b0luZm9ybWFjb2VzQWRpY2lvbmFpcyB8IG51bGwgPSBudWxsO1xuICBpc0J1c3k6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZm9jdXM6IEZvY3VzU2VydmljZSA9IG5ldyBGb2N1c1NlcnZpY2UoKTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB3czogQ29tbW9uV2ViU2VydmljZSxcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSlcbiAgICBwdWJsaWMgZGF0YURpYWxvZzogUHJvZHV0byxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQcm9kdXRvc0luZm9ybWFjb2VzQWRpY2lvbmFpc0NvbXBvbmVudD4sXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoRGF0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvblNlcnZpY2UsKSB7XG4gIH1cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5sb2FkKCk7XG4gIH1cblxuICBsb2FkKClcbiAge1xuICAgIGlmICghdGhpcy5kYXRhRGlhbG9nKSByZXR1cm47XG4gICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgIHRoaXMud3MuZmluZFByb2R1dG9JbmZvcm1hY29lc0FkaWNpb25haXModGhpcy5kYXRhRGlhbG9nLmlkKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IHIgPT4ge1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5tb2RlbCA9IHI7XG4gICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhlcnIuZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHNhbHZhcigpIHtcbiAgICBpZiAoIXRoaXMubW9kZWwpIHJldHVybjtcbiAgICBjb25zdCB2YWxNc2cgPSB2YWxpZGFQcm9kdXRvSW5mb3JtYWNvZXNBZGljaW9uYWlzKHRoaXMubW9kZWwsIHRoaXMuZm9jdXMpO1xuICAgIGlmICh2YWxNc2cpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2dFcnJvcih2YWxNc2cpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICB0aGlzLndzLnNhdmVQcm9kdXRvSW5mb3JtYWNvZXNBZGljaW9uYWlzKHRoaXMubW9kZWwpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogciA9PiB7XG4gICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiU2Fsdm8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgICAgIGlmICh0aGlzLmRpYWxvZ1JlZilcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRydWUpO1xuICAgICAgICB9LCBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coZXJyLmVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJveC1oZWFkZXJcIj5cbiAgICA8aDIgY2xhc3M9XCJ0aXR1bG9cIj5JbmZvcm1hw6fDtWVzIEFkaWNpb25haXM8L2gyPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT5cbiAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImRpYWxvZy1jb250ZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tc2VjdGlvbiB2Ym94XCI+XG4gICAgICAgIDxoND5QYWluZWwgZGEgQ296aW5oYTwvaDQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgKm5nSWY9XCJtb2RlbFwiPlxuICAgICAgICAgICAgPG1hdC1jaGVja2JveCBpZD1cImV4aWJlSW1hZ2VtUGFpbmVsQ296aW5oYVwiIFsobmdNb2RlbCldPVwibW9kZWwuZXhpYmlyRm90b1BhaW5lbENvemluaGFcIiB0YWJpbmRleD1cIjNcIj5cbiAgICAgICAgICAgICAgICBFeGliZSBJbWFnZW0gbm8gUGFpbmVsIGRhIENvemluaGE8L21hdC1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgKm5nSWY9XCJtb2RlbFwiPlxuICAgICAgICAgICAgPGxhYmVsPk1vZG8gZGUgUHJlcGFybzwvbGFiZWw+XG4gICAgICAgICAgICA8dGV4dGFyZWEgaWQ9XCJtb2RvX3ByZXBhcm9cIiBbKG5nTW9kZWwpXT1cIm1vZGVsLm1vZG9QcmVwYXJvXCIgY29scz1cIjQwXCIgcm93cz1cIjhcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTMwMFwiIHRhYmluZGV4PVwiMlwiPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJkaWFsb2ctZm9vdGVyXCI+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzYWx2YXIoKVwiIHRhYmluZGV4PVwiOVwiPlNBTFZBUjwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV0+Vk9MVEFSPC9idXR0b24+XG48L2Rpdj5cbjxveC1idXN5LWluZGljYXRvciBbaXNCdXN5XT1cImlzQnVzeVwiPjwvb3gtYnVzeS1pbmRpY2F0b3I+Il19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0b3MtaW5mb3JtYWNvZXMtYWRpY2lvbmFpcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zLWluZm9ybWFjb2VzLWFkaWNpb25haXMvcHJvZHV0b3MtaW5mb3JtYWNvZXMtYWRpY2lvbmFpcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9veHBpLW5nbGliL3NyYy9saWIvY2FkYXN0cm9zL3Byb2R1dG9zLWluZm9ybWFjb2VzLWFkaWNpb25haXMvcHJvZHV0b3MtaW5mb3JtYWNvZXMtYWRpY2lvbmFpcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQXlDLGtDQUFrQyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHM0gsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUl6RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFPN0QsTUFBTSxPQUFPLHNDQUFzQztJQUlqRCxZQUNVLEVBQW9CLEVBRXJCLFVBQW1CLEVBQ2xCLElBQWdCLEVBQ2hCLFNBQStELEVBQy9ELElBQXFCLEVBQ3JCLFlBQWlDO1FBTmpDLE9BQUUsR0FBRixFQUFFLENBQWtCO1FBRXJCLGVBQVUsR0FBVixVQUFVLENBQVM7UUFDbEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFzRDtRQUMvRCxTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFWM0MsVUFBSyxHQUF3QyxJQUFJLENBQUM7UUFDbEQsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixVQUFLLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7SUFTekMsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSTtRQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU87UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQzthQUN6RCxTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFFLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ2pELFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtnQkFDUixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxJQUFJLENBQUMsU0FBUztvQkFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDOzhHQXREVSxzQ0FBc0Msa0RBTXZDLGVBQWU7a0dBTmQsc0NBQXNDLDJFQ2ZuRCxxbUNBeUJ5RDs7MkZEVjVDLHNDQUFzQztrQkFMbEQsU0FBUzsrQkFDRSxxQ0FBcUM7OzBCQVU1QyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvZHV0bywgUHJvZHV0b0luZm9ybWFjb2VzQWRpY2lvbmFpcywgdmFsaWRhUHJvZHV0b0luZm9ybWFjb2VzQWRpY2lvbmFpcyB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0byc7XG5cbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBDb21tb25XZWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL2NvbW1vbi13ZWItc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvYXV0aC1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBGb2N1c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvZm9jdXMuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1wcm9kdXRvcy1pbmZvcm1hY29lcy1hZGljaW9uYWlzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1dG9zLWluZm9ybWFjb2VzLWFkaWNpb25haXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9kdXRvcy1pbmZvcm1hY29lcy1hZGljaW9uYWlzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHJvZHV0b3NJbmZvcm1hY29lc0FkaWNpb25haXNDb21wb25lbnQge1xuICBtb2RlbDogUHJvZHV0b0luZm9ybWFjb2VzQWRpY2lvbmFpcyB8IG51bGwgPSBudWxsO1xuICBpc0J1c3k6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZm9jdXM6IEZvY3VzU2VydmljZSA9IG5ldyBGb2N1c1NlcnZpY2UoKTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB3czogQ29tbW9uV2ViU2VydmljZSxcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSlcbiAgICBwdWJsaWMgZGF0YURpYWxvZzogUHJvZHV0byxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQcm9kdXRvc0luZm9ybWFjb2VzQWRpY2lvbmFpc0NvbXBvbmVudD4sXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoRGF0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb246IE5vdGlmaWNhdGlvblNlcnZpY2UsKSB7XG4gIH1cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5sb2FkKCk7XG4gIH1cblxuICBsb2FkKClcbiAge1xuICAgIGlmICghdGhpcy5kYXRhRGlhbG9nKSByZXR1cm47XG4gICAgdGhpcy5pc0J1c3kgPSB0cnVlO1xuICAgIHRoaXMud3MuZmluZFByb2R1dG9JbmZvcm1hY29lc0FkaWNpb25haXModGhpcy5kYXRhRGlhbG9nLmlkKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IHIgPT4ge1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5tb2RlbCA9IHI7XG4gICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaXNCdXN5ID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb24uc2hvd01zZyhlcnIuZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHNhbHZhcigpIHtcbiAgICBpZiAoIXRoaXMubW9kZWwpIHJldHVybjtcbiAgICBjb25zdCB2YWxNc2cgPSB2YWxpZGFQcm9kdXRvSW5mb3JtYWNvZXNBZGljaW9uYWlzKHRoaXMubW9kZWwsIHRoaXMuZm9jdXMpO1xuICAgIGlmICh2YWxNc2cpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2dFcnJvcih2YWxNc2cpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNCdXN5ID0gdHJ1ZTtcbiAgICB0aGlzLndzLnNhdmVQcm9kdXRvSW5mb3JtYWNvZXNBZGljaW9uYWlzKHRoaXMubW9kZWwpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogciA9PiB7XG4gICAgICAgICAgdGhpcy5pc0J1c3kgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbi5zaG93TXNnKFwiU2Fsdm8gY29tIHN1Y2Vzc28uXCIpO1xuICAgICAgICAgIGlmICh0aGlzLmRpYWxvZ1JlZilcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRydWUpO1xuICAgICAgICB9LCBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmlzQnVzeSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uLnNob3dNc2coZXJyLmVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJveC1oZWFkZXJcIj5cbiAgICA8aDIgY2xhc3M9XCJ0aXR1bG9cIj5JbmZvcm1hw6fDtWVzIEFkaWNpb25haXM8L2gyPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT5cbiAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImRpYWxvZy1jb250ZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tc2VjdGlvbiB2Ym94XCI+XG4gICAgICAgIDxoND5QYWluZWwgZGEgQ296aW5oYTwvaDQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWJsb2NrXCIgKm5nSWY9XCJtb2RlbFwiPlxuICAgICAgICAgICAgPG1hdC1jaGVja2JveCBpZD1cImV4aWJlSW1hZ2VtUGFpbmVsQ296aW5oYVwiIFsobmdNb2RlbCldPVwibW9kZWwuZXhpYmlyRm90b1BhaW5lbENvemluaGFcIiB0YWJpbmRleD1cIjNcIj5cbiAgICAgICAgICAgICAgICBFeGliZSBJbWFnZW0gbm8gUGFpbmVsIGRhIENvemluaGE8L21hdC1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWJsb2NrXCIgKm5nSWY9XCJtb2RlbFwiPlxuICAgICAgICAgICAgPGxhYmVsPk1vZG8gZGUgUHJlcGFybzwvbGFiZWw+XG4gICAgICAgICAgICA8dGV4dGFyZWEgaWQ9XCJtb2RvX3ByZXBhcm9cIiBbKG5nTW9kZWwpXT1cIm1vZGVsLm1vZG9QcmVwYXJvXCIgY29scz1cIjQwXCIgcm93cz1cIjhcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGlucHV0LTMwMFwiIHRhYmluZGV4PVwiMlwiPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJkaWFsb2ctZm9vdGVyXCI+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzYWx2YXIoKVwiIHRhYmluZGV4PVwiOVwiPlNBTFZBUjwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV0+Vk9MVEFSPC9idXR0b24+XG48L2Rpdj5cbjxveC1idXN5LWluZGljYXRvciBbaXNCdXN5XT1cImlzQnVzeVwiPjwvb3gtYnVzeS1pbmRpY2F0b3I+Il19
@@ -10,4 +10,4 @@ export class ProdutoSearchSetting extends SearchSetting {
10
10
  this.exibeNaoEmiteFiscal = false;
11
11
  }
12
12
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0by1zZWFyY2gtc2V0dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL294cGktbmdsaWIvc3JjL2xpYi9tb2RlbHMvc2V0dGluZ3MvcHJvZHV0by1zZWFyY2gtc2V0dGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGFBQWE7SUFZbkQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDcEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlYXJjaFNldHRpbmcgfSBmcm9tIFwiLi9zZWFyY2gtc2V0dGluZ1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFByb2R1dG9TZWFyY2hTZXR0aW5nIGV4dGVuZHMgU2VhcmNoU2V0dGluZyB7XHJcblxyXG4gICAgZXhpYmVDb250cm9sYWRvRXN0b3F1ZTogYm9vbGVhbjtcclxuICAgIGV4aWJlTW9zdHJhUmVjZXBjYW86IGJvb2xlYW47XHJcbiAgICBleGliZUltcHJpbWVDb3ppbmhhOiBib29sZWFuO1xyXG4gICAgZXhpYmVJbXByaW1lQ29ycmVkb3I6IGJvb2xlYW47XHJcbiAgICBncnVwb3M/OiBudW1iZXJbXSB8IHVuZGVmaW5lZCB8IG51bGw7XHJcbiAgICBleGliZUVtaXRlRmlzY2FsOiBib29sZWFuO1xyXG4gICAgZXhpYmVOYW9FbWl0ZUZpc2NhbDogYm9vbGVhbjtcclxuICAgIHNldG9yU3ViRXN0b3F1ZUlkOiBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsO1xyXG4gICAgY3N0OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcblxyXG4gICAgICAgIHRoaXMuZXhpYmVDb250cm9sYWRvRXN0b3F1ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZXhpYmVNb3N0cmFSZWNlcGNhbyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZXhpYmVJbXByaW1lQ29ycmVkb3IgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmV4aWJlSW1wcmltZUNvemluaGEgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmV4aWJlRW1pdGVGaXNjYWwgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmV4aWJlTmFvRW1pdGVGaXNjYWwgPSBmYWxzZTtcclxuICAgIH1cclxufSJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHV0by1zZWFyY2gtc2V0dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL294cGktbmdsaWIvc3JjL2xpYi9tb2RlbHMvc2V0dGluZ3MvcHJvZHV0by1zZWFyY2gtc2V0dGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGFBQWE7SUFhbkQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDcEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlYXJjaFNldHRpbmcgfSBmcm9tIFwiLi9zZWFyY2gtc2V0dGluZ1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFByb2R1dG9TZWFyY2hTZXR0aW5nIGV4dGVuZHMgU2VhcmNoU2V0dGluZyB7XHJcblxyXG4gICAgZXhpYmVDb250cm9sYWRvRXN0b3F1ZTogYm9vbGVhbjtcclxuICAgIGV4aWJlTW9zdHJhUmVjZXBjYW86IGJvb2xlYW47XHJcbiAgICBleGliZUltcHJpbWVDb3ppbmhhOiBib29sZWFuO1xyXG4gICAgZXhpYmVJbXByaW1lQ29ycmVkb3I6IGJvb2xlYW47XHJcbiAgICBncnVwb3M/OiBudW1iZXJbXSB8IHVuZGVmaW5lZCB8IG51bGw7XHJcbiAgICBzdWJncnVwb3M/OiBudW1iZXJbXSB8IHVuZGVmaW5lZCB8IG51bGw7XHJcbiAgICBleGliZUVtaXRlRmlzY2FsOiBib29sZWFuO1xyXG4gICAgZXhpYmVOYW9FbWl0ZUZpc2NhbDogYm9vbGVhbjtcclxuICAgIHNldG9yU3ViRXN0b3F1ZUlkOiBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsO1xyXG4gICAgY3N0OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcblxyXG4gICAgICAgIHRoaXMuZXhpYmVDb250cm9sYWRvRXN0b3F1ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZXhpYmVNb3N0cmFSZWNlcGNhbyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZXhpYmVJbXByaW1lQ29ycmVkb3IgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmV4aWJlSW1wcmltZUNvemluaGEgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmV4aWJlRW1pdGVGaXNjYWwgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmV4aWJlTmFvRW1pdGVGaXNjYWwgPSBmYWxzZTtcclxuICAgIH1cclxufSJdfQ==
@@ -172,6 +172,10 @@ export class CommonWebService {
172
172
  const url = this.PRODUTO_SUBGRUPO_BASE_URL + CommonWebService.URL_PART_BUSCA;
173
173
  return this.http.post(url, JSON.stringify(setting), this.getHttpOptions()).pipe(map(data => data));
174
174
  }
175
+ getAllProdutoSubgrupo() {
176
+ const url = this.PRODUTO_SUBGRUPO_BASE_URL;
177
+ return this.http.get(url, this.getHttpOptions()).pipe(map(data => data));
178
+ }
175
179
  getNextIdProdutoSubgrupo() {
176
180
  const url = this.PRODUTO_SUBGRUPO_BASE_URL + CommonWebService.URL_PART_NEXT_ID;
177
181
  return this.http.get(url, this.getHttpOptions()).pipe(map(data => data));
@@ -357,4 +361,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
357
361
  providedIn: 'root'
358
362
  }]
359
363
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
360
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXdlYi1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL3Byb3ZpZGVycy9jb21tb24td2ViLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7OztBQWdCdkMsTUFBTSxPQUFPLGdCQUFnQjthQTBCcEIsbUJBQWMsR0FBRyxRQUFRLENBQUM7YUFDMUIscUJBQWdCLEdBQUcsWUFBWSxDQUFDO2FBQ2hDLDRCQUF1QixHQUFHLGdCQUFnQixDQUFDO0lBRWxELFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUE3QnBDLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFFbEIseUJBQW9CLEdBQVcsRUFBRSxDQUFDO1FBQ2xDLCtCQUEwQixHQUFXLEVBQUUsQ0FBQztRQUN4QyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUN0Qiw0Q0FBdUMsR0FBRyxFQUFFLENBQUM7UUFDN0MsMkJBQXNCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLDhCQUF5QixHQUFHLEVBQUUsQ0FBQztRQUMvQix3Q0FBbUMsR0FBRyxFQUFFLENBQUM7UUFDekMsdUNBQWtDLEdBQUcsRUFBRSxDQUFDO1FBQ3hDLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRWpCLDRCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUM3QixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUNwQiw2QkFBd0IsR0FBRyxFQUFFLENB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QztJQUVELGVBQWUsQ0FBQyxVQUF1QjtRQUNyQyxPQUFPO1lBQ0wsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDO2dCQUN2QixjQUFjLEVBQUUsa0JBQWtCO2dCQUNsQyxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixlQUFlLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLO2FBQ3ZDLENBQUM7WUFDRixNQUFNLEVBQUUsVUFBVTtZQUNsQixZQUFZLEVBQUUsYUFBdUI7U0FDdEMsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjLENBQUMsVUFBdUI7UUFDcEMsT0FBTztZQUNMLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQztnQkFDdkIsY0FBYyxFQUFFLGtCQUFrQjtnQkFDbEMsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsZUFBZSxFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSzthQUN2QyxDQUFDO1lBQ0YsTUFBTSxFQUFFLFVBQVU7WUFDbEIsWUFBWSxFQUFFLE1BQWdCO1NBQy9CLENBQUM7SUFDSixDQUFDOzhHQXZYVSxnQkFBZ0I7a0hBQWhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRnVuY2lvbmFyaW8sIEZ1bmNpb25hcmlvQ2FyZ28gfSBmcm9tICcuLi9tb2RlbHMvZW50aWRhZGVzL2Z1bmNpb25hcmlvJztcclxuaW1wb3J0IHsgT3BlcmFkb3IgfSBmcm9tICcuLi9tb2RlbHMvZW50aWRhZGVzL29wZXJhZG9yJztcclxuaW1wb3J0IHsgQ2xpZW50ZSwgRm9ybmVjZWRvciB9IGZyb20gJy4uL21vZGVscy9lbnRpZGFkZXMvcGVzc29hJztcclxuaW1wb3J0IHsgUHJvZHV0bywgUHJvZHV0b0luZm9ybWFjb2VzQWRpY2lvbmFpcyB9IGZyb20gJy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0byc7XHJcbmltcG9ydCB7IENvbXBvc2ljb2VzLCBQcm9kdXRvQ29tcG9zaWNhbyB9IGZyb20gJy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0by1jb21wb3NpY2FvJztcclxuaW1wb3J0IHsgUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvLCBQcm9kdXRvR3J1cG8sIFByb2R1dG9TdWJncnVwbywgUHJvZHV0b1ZlcmlmaWNhb0dydXBvIH0gZnJvbSAnLi4vbW9kZWxzL2VudGlkYWRlcy9wcm9kdXRvLWdydXBvJztcclxuaW1wb3J0IHsgTmNtIH0gZnJvbSAnLi4vbW9kZWxzL2VudGlkYWRlcy9wcm9kdXRvLW5jbSc7XHJcbmltcG9ydCB7IFNldG9yRXN0b3F1ZSB9IGZyb20gJy4uL21vZGVscy9lbnRpZGFkZXMvc2V0b3ItZXN0b3F1ZSc7XHJcbmltcG9ydCB7IFN1aXRlQmFzZSB9IGZyb20gJy4uL21vZGVscy9lbnRpZGFkZXMvc3VpdGUtYmFzZSc7XHJcbmltcG9ydCB7IFBhZ2luZ1Jlc3VsdCB9IGZyb20gJy4uL21vZGVscy9pbmZyYS9wYWdpbmctcmVzdWx0JztcclxuaW1wb3J0IHsgU2VhcmNoU2V0dGluZyB9IGZyb20gJy4uL21vZGVscy9zZXR0aW5ncy9zZWFyY2gtc2V0dGluZyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21tb25XZWJTZXJ2aWNlIHtcclxuICBST09UX1VSTDogc3RyaW5nID0gJyc7XHJcbiAgR0VSRU5DSUFMX1VSTCA9ICcnO1xyXG4gIEZJTkFOQ0FTX1VSTCA9ICcnO1xyXG5cclxuICBGVU5DSU9OQVJJT19CQVNFX1VSTDogc3RyaW5nID0gJyc7XHJcbiAgRlVOQ0lPTkFSSU9fQ0FSR09fQkFTRV9VUkw6IHN0cmluZyA9ICcnO1xyXG4gIHRva2VuOiBzdHJpbmcgPSAnJztcclxuICBQUk9EVVRPX0JBU0VfVVJMID0gJyc7XHJcbiAgUFJPRFVUT19JTkZPUk1BQ09FU19BRElDSU9OQUlTX0JBU0VfVVJMID0gJyc7XHJcbiAgUFJPRFVUT19HUlVQT19CQVNFX1VSTCA9ICcnO1xyXG4gIFBST0RVVE9fU1VCR1JVUE9fQkFTRV9VUkwgPSAnJztcclxuICBQUk9EVVRPX0NBVEVHT1JJQV9DQVJEQVBJT19CQVNFX1VSTCA9ICcnO1xyXG4gIFBST0RVVE9fVkVSSUZJQ0FDQU9fR1JVUE9fQkFTRV9VUkwgPSAnJztcclxuICBFU1RPUVVFX1VSTCA9ICcnO1xyXG4gIFxyXG4gIFVQTE9BRF9DT05URU5UX0JBU0VfVVJMID0gJyc7XHJcbiAgTUVESUFfQkFTRV9VUkwgPSAnJztcclxuICBNRURJQV9QUk9EVVRPX0lNQUdFTV9VUkwgPSAnJztcclxuICBQUk9EVVRPX0NPTVBPU0lDQU9fQkFTRV9VUkw6IHN0cmluZyA9ICcnO1xyXG5cclxuICBGT1JORUNFRE9SX0JBU0VfVVJMIDogc3RyaW5nID0gJyc7XHJcbiAgQ0xJRU5URV9CQVNFX1VSTCA6IHN0cmluZyA9ICcnO1xyXG4gIE9QRVJBRE9SX0JBU0VfVVJMID0gJyc7XHJcbiAgU1VJVEVfQkFTRV9VUkwgPSAnJztcclxuXHJcbiAgc3RhdGljIFVSTF9QQVJUX0JVU0NBID0gXCJCdXNjYS9cIjtcclxuICBzdGF0aWMgVVJMX1BBUlRfTkVYVF9JRCA9IFwiR2V0TmV4dElkL1wiO1xyXG4gIHN0YXRpYyBVUkxfUEFSVF9CVVNDQV9QQUdJTkFEQSA9IFwiQnVzY2FQYWdpbmFkYS9cIjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7IH1cclxuXHJcbiAgc2V0VG9rZW4odG9rZW46IHN0cmluZykge1xyXG4gICAgdGhpcy50b2tlbiA9IHRva2VuO1xyXG4gIH1cclxuICBzdGFydChyb290VXJsOiBzdHJpbmcsIHVwbG9hZENvbnRlbnRVcmw6IHN0cmluZykge1xyXG4gICAgdGhpcy5ST09UX1VSTCA9IHJvb3RVcmw7XHJcbiAgICB0aGlzLlBST0RVVE9fQ09NUE9TSUNBT19CQVNFX1VSTCA9IHJvb3RVcmwgKyBcIlByb2R1dG9Db21wb3NpY2FvL1wiO1xyXG4gICAgdGhpcy5GVU5DSU9OQVJJT19CQVNFX1VSTCA9IHJvb3RVcmwgKyBcIkZ1bmNpb25hcmlvL1wiO1xyXG4gICAgdGhpcy5GVU5DSU9OQVJJT19DQVJHT19CQVNFX1VSTCA9IHJvb3RVcmwgKyBcIkZ1bmNpb25hcmlvQ2FyZ28vXCI7XHJcbiAgICB0aGlzLlBST0RVVE9fQkFTRV9VUkwgPSByb290VXJsICsgXCJQcm9kdXRvRmlzY2FsL1wiO1xyXG4gICAgdGhpcy5QUk9EVVRPX0lORk9STUFDT0VTX0FESUNJT05BSVNfQkFTRV9VUkwgPSByb290VXJsICsgXCJQcm9kdXRvSW5mb3JtYWNvZXNBZGljaW9uYWlzL1wiO1xyXG4gICAgdGhpcy5QUk9EVVRPX0dSVVBPX0JBU0VfVVJMID0gcm9vdFVybCArIFwiUHJvZHV0b0dydXBvL1wiO1xyXG4gICAgdGhpcy5QUk9EVVRPX1NVQkdSVVBPX0JBU0VfVVJMID0gcm9vdFVybCArIFwiUHJvZHV0b1N1YmdydXBvL1wiO1xyXG4gICAgdGhpcy5QUk9EVVRPX0NBVEVHT1JJQV9DQVJEQVBJT19CQVNFX1VSTCA9IHJvb3RVcmwgKyBcIlByb2R1dG9DYXRlZ29yaWFDYXJkYXBpby9cIjtcclxuICAgIHRoaXMuUFJPRFVUT19WRVJJRklDQUNBT19HUlVQT19CQVNFX1VSTCA9IHJvb3RVcmwgKyBcIlByb2R1dG9WZXJpZmljYW9HcnVwby9cIjtcclxuICAgIHRoaXMuRVNUT1FVRV9VUkwgPSByb290VXJsICsgJ0VzdG9xdWUvJztcclxuICAgIHRoaXMuR0VSRU5DSUFMX1VSTCA9IHJvb3RVcmwgKyAnR2VyZW5jaWFsLydcclxuICAgIHRoaXMuRklOQU5DQVNfVVJMID0gcm9vdFVybCArICdGaW5hbmNhcy8nXHJcblxyXG4gICAgXHJcbiAgICB0aGlzLk1FRElBX0JBU0VfVVJMID0gdGhpcy5HRVJFTkNJQUxfVVJMICsgXCJNZWRpYS9cIjtcclxuICAgIHRoaXMuTUVESUFfUFJPRFVUT19JTUFHRU1fVVJMID0gdGhpcy5NRURJQV9CQVNFX1VSTCArICdHZXRQcm9kdXRvSW1hZ2VtLyc7XHJcbiAgICB0aGlzLkZPUk5FQ0VET1JfQkFTRV9VUkwgPSB0aGlzLkZJTkFOQ0FTX1VSTCArICdGb3JuZWNlZG9yLyc7ICBcclxuICAgIHRoaXMuQ0xJRU5URV9CQVNFX1VSTCA9IHRoaXMuRklOQU5DQVNfVVJMICsgJ0NsaWVudGUvJztcclxuICAgIHRoaXMuT1BFUkFET1JfQkFTRV9VUkwgPSB0aGlzLlJPT1RfVVJMICsgXCJPcGVyYWRvci9cIlxyXG4gICAgdGhpcy5TVUlURV9CQVNFX1VSTCA9IHRoaXMuUk9PVF9VUkwgKyBcIlN1aXRlQmFzZS9cIjtcclxuICAgIHRoaXMuVVBMT0FEX0NPTlRFTlRfQkFTRV9VUkwgPSB1cGxvYWRDb250ZW50VXJsO1xyXG4gIH1cclxuXHJcbiAgZ2V0RnVuY2lvbmFyaW9zKGV4aWJlSW5hdGl2byA6IGJvb2xlYW4gPSBmYWxzZSk6IE9ic2VydmFibGU8RnVuY2lvbmFyaW9bXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GVU5DSU9OQVJJT19CQVNFX1VSTDtcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgIC5zZXQoXCJleGliZUluYXRpdm9cIiwgJycgKyBleGliZUluYXRpdm8pO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RnVuY2lvbmFyaW9bXT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKHBhcmFtcykpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBnZXRGdW5jaW9uYXJpb3NDYXJnb3MoKTogT2JzZXJ2YWJsZTxGdW5jaW9uYXJpb0NhcmdvW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuRlVOQ0lPTkFSSU9fQ0FSR09fQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxGdW5jaW9uYXJpb0NhcmdvW10+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcblxyXG4gIGJ1c2NhRnVuY2lvbmFyaW8oc2V0dGluZzogU2VhcmNoU2V0dGluZyk6IE9ic2VydmFibGU8RnVuY2lvbmFyaW9bXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GVU5DSU9OQVJJT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfQlVTQ0E7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8RnVuY2lvbmFyaW9bXT4odXJsLCBKU09OLnN0cmluZ2lmeShzZXR0aW5nKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZ2V0TmV4dElkRnVuY2lvbmFyaW8oKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuRlVOQ0lPTkFSSU9fQkFTRV9VUkwgKyBDb21tb25XZWJTZXJ2aWNlLlVSTF9QQVJUX05FWFRfSUQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxudW1iZXI+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZ2V0QWxsRnVuY2lvbmFyaW8oKTogT2JzZXJ2YWJsZTxGdW5jaW9uYXJpb1tdPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLkZVTkNJT05BUklPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RnVuY2lvbmFyaW9bXT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBzYXZlRnVuY2lvbmFyaW8oczogRnVuY2lvbmFyaW8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GVU5DSU9OQVJJT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGFkZEZ1bmNpb25hcmlvKHA6IEZ1bmNpb25hcmlvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuRlVOQ0lPTkFSSU9fQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocCksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGRlbGV0ZUZ1bmNpb25hcmlvKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GVU5DSU9OQVJJT19CQVNFX1VSTCArIGlkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55Pih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG5cclxuICBcclxuICBidXNjYVBhZ2luYWRhUHJvZHV0b3Moc2V0dGluZyA6IFNlYXJjaFNldHRpbmcsIHBhZ2UgOiBudW1iZXIsIHBhZ2VTaXplIDogbnVtYmVyKTogT2JzZXJ2YWJsZTxQYWdpbmdSZXN1bHQ8UHJvZHV0bz4+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfQlVTQ0FfUEFHSU5BREE7XHJcbiAgICBjb25zdCBwID0geyBzZXR0aW5nOiBzZXR0aW5nLCBwYWdlOiBwYWdlLCBwYWdlU2l6ZTogcGFnZVNpemUgfTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxQYWdpbmdSZXN1bHQ8UHJvZHV0bz4+KHVybCwgSlNPTi5zdHJpbmdpZnkocCksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGdldE5leHRJZFByb2R1dG8oKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfTkVYVF9JRDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PG51bWJlcj4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBnZXRQcm9kdXRvSGlzdG9yeShpZCA6IG51bWJlcik6IE9ic2VydmFibGU8UHJvZHV0b1tdPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQkFTRV9VUkwgKyAnR2V0SGlzdG9yeS8nICsgaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQcm9kdXRvW10+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZmluZFByb2R1dG8ocHJvZHV0b0lkIDogbnVtYmVyKTogT2JzZXJ2YWJsZTxQcm9kdXRvPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQkFTRV9VUkwgKyBwcm9kdXRvSWQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQcm9kdXRvPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIHNhdmVQcm9kdXRvSW5mb3JtYWNvZXNBZGljaW9uYWlzKHM6IFByb2R1dG9JbmZvcm1hY29lc0FkaWNpb25haXMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0lORk9STUFDT0VTX0FESUNJT05BSVNfQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHMpLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBmaW5kUHJvZHV0b0luZm9ybWFjb2VzQWRpY2lvbmFpcyhwcm9kdXRvSWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPFByb2R1dG9JbmZvcm1hY29lc0FkaWNpb25haXM+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19JTkZPUk1BQ09FU19BRElDSU9OQUlTX0JBU0VfVVJMICsgcHJvZHV0b0lkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UHJvZHV0b0luZm9ybWFjb2VzQWRpY2lvbmFpcz4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBzYXZlUHJvZHV0byhzOiBQcm9kdXRvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGFkZFByb2R1dG8ocCA6IFByb2R1dG8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHApLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBkZWxldGVQcm9kdXRvKGlkIDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19CQVNFX1VSTCArIGlkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55Pih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG5cclxuICBidXNjYVByb2R1dG9HcnVwbyhzZXR0aW5nIDogU2VhcmNoU2V0dGluZyk6IE9ic2VydmFibGU8UHJvZHV0b0dydXBvW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19HUlVQT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfQlVTQ0E7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UHJvZHV0b0dydXBvW10+KHVybCwgSlNPTi5zdHJpbmdpZnkoc2V0dGluZyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfSAgXHJcbiAgZ2V0QWxsUHJvZHV0b0dydXBvKCk6IE9ic2VydmFibGU8UHJvZHV0b0dydXBvW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19HUlVQT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFByb2R1dG9HcnVwb1tdPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGdldE5leHRJZFByb2R1dG9HcnVwbygpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0dSVVBPX0JBU0VfVVJMICsgQ29tbW9uV2ViU2VydmljZS5VUkxfUEFSVF9ORVhUX0lEO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8bnVtYmVyPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIHNhdmVQcm9kdXRvR3J1cG8oczogUHJvZHV0b0dydXBvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19HUlVQT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIHRyYW5zZmVyZVByb2R1dG9HcnVwbyhncnVwb0lkIDogbnVtYmVyLCBub3ZvR3J1cG9JZCA6IG51bWJlcik6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQkFTRV9VUkwgKyAnQWx0ZXJhR3J1cG8nO1xyXG4gICAgY29uc3QgcCA9IHsgb2xkSWQ6IGdydXBvSWQsIG5ld0lkOiBub3ZvR3J1cG9JZCB9O1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bWJlcj4odXJsLCBKU09OLnN0cmluZ2lmeShwKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgYWRkUHJvZHV0b0dydXBvKHAgOiBQcm9kdXRvR3J1cG8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0dSVVBPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHApLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBkZWxldGVQcm9kdXRvR3J1cG8oaWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0dSVVBPX0JBU0VfVVJMICsgaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGJ1c2NhTmNtKG5jbSA6IHN0cmluZyk6IE9ic2VydmFibGU8TmNtW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19CQVNFX1VSTCArICdCdXNjYU5DTS8nO1xyXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgLnNldChcIm5jbVwiLCAnJyArIG5jbSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOY21bXT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKHBhcmFtcykpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBcclxuICBmaW5kTmNtKG5jbSA6IHN0cmluZyk6IE9ic2VydmFibGU8TmNtIHwgbnVsbD4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0JBU0VfVVJMICsgJ0ZpbmROQ00vJztcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgIC5zZXQoXCJuY21cIiwgJycgKyBuY20pO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TmNtIHwgbnVsbD4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKHBhcmFtcykpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuXHJcblxyXG4gIGJ1c2NhUHJvZHV0b1N1YmdydXBvKHNldHRpbmcgOiBTZWFyY2hTZXR0aW5nKTogT2JzZXJ2YWJsZTxQcm9kdXRvU3ViZ3J1cG9bXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX1NVQkdSVVBPX0JBU0VfVVJMICsgQ29tbW9uV2ViU2VydmljZS5VUkxfUEFSVF9CVVNDQTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxQcm9kdXRvU3ViZ3J1cG9bXT4odXJsLCBKU09OLnN0cmluZ2lmeShzZXR0aW5nKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZ2V0TmV4dElkUHJvZHV0b1N1YmdydXBvKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fU1VCR1JVUE9fQkFTRV9VUkwgKyBDb21tb25XZWJTZXJ2aWNlLlVSTF9QQVJUX05FWFRfSUQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxudW1iZXI+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgc2F2ZVByb2R1dG9TdWJncnVwbyhzOiBQcm9kdXRvU3ViZ3J1cG8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX1NVQkdSVVBPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShzKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgYWRkUHJvZHV0b1N1YmdydXBvKHAgOiBQcm9kdXRvU3ViZ3J1cG8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX1NVQkdSVVBPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHApLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBkZWxldGVQcm9kdXRvU3ViZ3J1cG8oaWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX1NVQkdSVVBPX0JBU0VfVVJMICsgaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcblxyXG4gIFxyXG4gIGJ1c2NhUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKHNldHRpbmcgOiBTZWFyY2hTZXR0aW5nKTogT2JzZXJ2YWJsZTxQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW9bXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0NBVEVHT1JJQV9DQVJEQVBJT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfQlVTQ0E7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvW10+KHVybCwgSlNPTi5zdHJpbmdpZnkoc2V0dGluZyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGdldE5leHRJZFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpbygpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0NBVEVHT1JJQV9DQVJEQVBJT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfTkVYVF9JRDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PG51bWJlcj4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBzYXZlUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKHM6IFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQ0FURUdPUklBX0NBUkRBUElPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShzKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgYWRkUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKHAgOiBQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0NBVEVHT1JJQV9DQVJEQVBJT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShwKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZGVsZXRlUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKGlkIDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19DQVRFR09SSUFfQ0FSREFQSU9fQkFTRV9VUkwgKyBpZDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBcclxuXHJcbiAgYnVzY2FQcm9kdXRvR3J1cG9WZXJpZmljYWNhbyhzZXR0aW5nIDogU2VhcmNoU2V0dGluZyk6IE9ic2VydmFibGU8UHJvZHV0b1ZlcmlmaWNhb0dydXBvW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19WRVJJRklDQUNBT19HUlVQT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfQlVTQ0E7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UHJvZHV0b1ZlcmlmaWNhb0dydXBvW10+KHVybCwgSlNPTi5zdHJpbmdpZnkoc2V0dGluZyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGdldE5leHRJZFByb2R1dG9HcnVwb1ZlcmlmaWNhY2FvKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fVkVSSUZJQ0FDQU9fR1JVUE9fQkFTRV9VUkwgKyBDb21tb25XZWJTZXJ2aWNlLlVSTF9QQVJUX05FWFRfSUQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxudW1iZXI+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgc2F2ZVByb2R1dG9HcnVwb1ZlcmlmaWNhY2FvKHM6IFByb2R1dG9WZXJpZmljYW9HcnVwbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fVkVSSUZJQ0FDQU9fR1JVUE9fQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHMpLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBhZGRQcm9kdXRvR3J1cG9WZXJpZmljYWNhbyhwIDogUHJvZHV0b1ZlcmlmaWNhb0dydXBvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19WRVJJRklDQUNBT19HUlVQT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShwKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZGVsZXRlUHJvZHV0b0dydXBvVmVyaWZpY2FjYW8oaWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX1ZFUklGSUNBQ0FPX0dSVVBPX0JBU0VfVVJMICsgaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcblxyXG4gIGdldEFsbFNldG9yZXMoKTogT2JzZXJ2YWJsZTxTZXRvckVzdG9xdWVbXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5FU1RPUVVFX1VSTCArICdTZXRvci8nO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8U2V0b3JFc3RvcXVlW10+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcblxyXG4gIGdldFByb2R1dG9Db21wb3NpY2FvKHByb2R1dG9JZCA6IG51bWJlcik6IE9ic2VydmFibGU8Q29tcG9zaWNvZXM+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19DT01QT1NJQ0FPX0JBU0VfVVJMICsgcHJvZHV0b0lkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q29tcG9zaWNvZXM+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9ICBcclxuICBzYXZlUHJvZHV0b0NvbXBvc2ljYW8oczogUHJvZHV0b0NvbXBvc2ljYW8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0NPTVBPU0lDQU9fQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHMpLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBhZGRQcm9kdXRvQ29tcG9zaWNhbyhwIDogUHJvZHV0b0NvbXBvc2ljYW8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0NPTVBPU0lDQU9fQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocCksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGRlbGV0ZVByb2R1dG9Db21wb3NpY2FvKGlkIDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19DT01QT1NJQ0FPX0JBU0VfVVJMICsgaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcblxyXG5cclxuICBidXNjYUNsaWVudGUoc2V0dGluZyA6IFNlYXJjaFNldHRpbmcpOiBPYnNlcnZhYmxlPENsaWVudGVbXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5DTElFTlRFX0JBU0VfVVJMICsgQ29tbW9uV2ViU2VydmljZS5VUkxfUEFSVF9CVVNDQTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDbGllbnRlW10+KHVybCwgSlNPTi5zdHJpbmdpZnkoc2V0dGluZyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGdldEFsbENsaWVudGUoKTogT2JzZXJ2YWJsZTxDbGllbnRlW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuQ0xJRU5URV9CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENsaWVudGVbXT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBzYXZlQ2xpZW50ZShzOiBDbGllbnRlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuQ0xJRU5URV9CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGFkZENsaWVudGUocCA6IENsaWVudGUpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5DTElFTlRFX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHApLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBkZWxldGVDbGllbnRlKGlkIDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuQ0xJRU5URV9CQVNFX1VSTCArIGlkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55Pih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG5cclxuICBidXNjYUZvcm5lY2Vkb3Ioc2V0dGluZyA6IFNlYXJjaFNldHRpbmcpOiBPYnNlcnZhYmxlPEZvcm5lY2Vkb3JbXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GT1JORUNFRE9SX0JBU0VfVVJMICsgQ29tbW9uV2ViU2VydmljZS5VUkxfUEFSVF9CVVNDQTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxGb3JuZWNlZG9yW10+KHVybCwgSlNPTi5zdHJpbmdpZnkoc2V0dGluZyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGdldEFsbEZvcm5lY2Vkb3IoKTogT2JzZXJ2YWJsZTxGb3JuZWNlZG9yW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuRk9STkVDRURPUl9CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEZvcm5lY2Vkb3JbXT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBzYXZlRm9ybmVjZWRvcihzOiBGb3JuZWNlZG9yKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuRk9STkVDRURPUl9CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGFkZEZvcm5lY2Vkb3IocCA6IEZvcm5lY2Vkb3IpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GT1JORUNFRE9SX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHApLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBkZWxldGVGb3JuZWNlZG9yKGlkIDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuRk9STkVDRURPUl9CQVNFX1VSTCArIGlkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55Pih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0T3BlcmFkb3JlcygpOiBPYnNlcnZhYmxlPE9wZXJhZG9yW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuT1BFUkFET1JfQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxPcGVyYWRvcltdPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGJ1c2NhT3BlcmFkb3Ioc2V0dGluZyA6IFNlYXJjaFNldHRpbmcpOiBPYnNlcnZhYmxlPE9wZXJhZG9yW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuT1BFUkFET1JfQkFTRV9VUkwgKyBDb21tb25XZWJTZXJ2aWNlLlVSTF9QQVJUX0JVU0NBO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PE9wZXJhZG9yW10+KHVybCwgSlNPTi5zdHJpbmdpZnkoc2V0dGluZyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGdldE5leHRJZE9wZXJhZG9yKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLk9QRVJBRE9SX0JBU0VfVVJMICsgQ29tbW9uV2ViU2VydmljZS5VUkxfUEFSVF9ORVhUX0lEO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8bnVtYmVyPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIHNhdmVPcGVyYWRvcihzOiBPcGVyYWRvcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLk9QRVJBRE9SX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShzKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgYWRkT3BlcmFkb3IocCA6IE9wZXJhZG9yKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuT1BFUkFET1JfQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocCksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGRlbGV0ZU9wZXJhZG9yKGlkIDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuT1BFUkFET1JfQkFTRV9VUkwgKyBpZDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3VpdGVzKCk6IE9ic2VydmFibGU8U3VpdGVCYXNlW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuU1VJVEVfQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTdWl0ZUJhc2VbXT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SHR0cE9wdGlvbnMocGFyYW1ldGVycz86IEh0dHBQYXJhbXMpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICBcIkFjY2VwdFwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcclxuICAgICAgICBcIkF1dGhvcml6YXRpb25cIjogJ3Rva2VuICcgKyB0aGlzLnRva2VuLFxyXG4gICAgICB9KSxcclxuICAgICAgcGFyYW1zOiBwYXJhbWV0ZXJzXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRFeGNlbE9wdGlvbnMocGFyYW1ldGVycz86IEh0dHBQYXJhbXMpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICBcIkFjY2VwdFwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcclxuICAgICAgICBcIkF1dGhvcml6YXRpb25cIjogJ3Rva2VuICcgKyB0aGlzLnRva2VuLFxyXG4gICAgICB9KSxcclxuICAgICAgcGFyYW1zOiBwYXJhbWV0ZXJzLFxyXG4gICAgICByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgYXMgJ2pzb24nLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldEh0bWxPcHRpb25zKHBhcmFtZXRlcnM/OiBIdHRwUGFyYW1zKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgXCJBY2NlcHRcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXHJcbiAgICAgICAgXCJBdXRob3JpemF0aW9uXCI6ICd0b2tlbiAnICsgdGhpcy50b2tlbixcclxuICAgICAgfSksXHJcbiAgICAgIHBhcmFtczogcGFyYW1ldGVycyxcclxuICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcgYXMgJ2pzb24nLFxyXG4gICAgfTtcclxuICB9XHJcbn0iXX0=
364
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXdlYi1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3hwaS1uZ2xpYi9zcmMvbGliL3Byb3ZpZGVycy9jb21tb24td2ViLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7OztBQWdCdkMsTUFBTSxPQUFPLGdCQUFnQjthQTBCcEIsbUJBQWMsR0FBRyxRQUFRLENBQUM7YUFDMUIscUJBQWdCLEdBQUcsWUFBWSxDQUFDO2FBQ2hDLDRCQUF1QixHQUFHLGdCQUFnQixDQUFDO0lBRWxELFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUE3QnBDLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFFbEIseUJBQW9CLEdBQVcsRUFBRSxDQUFDO1FBQ2xDLCtCQUEwQixHQUFXLEVBQUUsQ0FBQztRQUN4QyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUN0Qiw0Q0FBdUMsR0FBRyxFQUFFLENBQUM7UUFDN0MsMkJBQXNCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLDhCQUF5QixHQUFHLEVBQUUsQ0FBQztRQUMvQix3Q0FBbUMsR0FBRyxFQUFFLENBQUM7UUFDekMsdUNBQWtDLEdBQUcsRUFBRSxDQUFDO1FBQ3hDLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRWpCLDRCQUF1QixHQUFHLEVBQUUsQ0FBQztRQUM3QixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUNwQiw2QkFBd0IsR0FBRyxFQUFFLENB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LENBQUM7SUFFRCxjQUFjLENBQUMsVUFBdUI7UUFDcEMsT0FBTztZQUNMLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQztnQkFDdkIsY0FBYyxFQUFFLGtCQUFrQjtnQkFDbEMsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsZUFBZSxFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSzthQUN2QyxDQUFDO1lBQ0YsTUFBTSxFQUFFLFVBQVU7U0FDbkIsQ0FBQTtJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsVUFBdUI7UUFDckMsT0FBTztZQUNMLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQztnQkFDdkIsY0FBYyxFQUFFLGtCQUFrQjtnQkFDbEMsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsZUFBZSxFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSzthQUN2QyxDQUFDO1lBQ0YsTUFBTSxFQUFFLFVBQVU7WUFDbEIsWUFBWSxFQUFFLGFBQXVCO1NBQ3RDLENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUFDLFVBQXVCO1FBQ3BDLE9BQU87WUFDTCxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUM7Z0JBQ3ZCLGNBQWMsRUFBRSxrQkFBa0I7Z0JBQ2xDLFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLGVBQWUsRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUs7YUFDdkMsQ0FBQztZQUNGLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLFlBQVksRUFBRSxNQUFnQjtTQUMvQixDQUFDO0lBQ0osQ0FBQzs4R0EzWFUsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZ1bmNpb25hcmlvLCBGdW5jaW9uYXJpb0NhcmdvIH0gZnJvbSAnLi4vbW9kZWxzL2VudGlkYWRlcy9mdW5jaW9uYXJpbyc7XHJcbmltcG9ydCB7IE9wZXJhZG9yIH0gZnJvbSAnLi4vbW9kZWxzL2VudGlkYWRlcy9vcGVyYWRvcic7XHJcbmltcG9ydCB7IENsaWVudGUsIEZvcm5lY2Vkb3IgfSBmcm9tICcuLi9tb2RlbHMvZW50aWRhZGVzL3Blc3NvYSc7XHJcbmltcG9ydCB7IFByb2R1dG8sIFByb2R1dG9JbmZvcm1hY29lc0FkaWNpb25haXMgfSBmcm9tICcuLi9tb2RlbHMvZW50aWRhZGVzL3Byb2R1dG8nO1xyXG5pbXBvcnQgeyBDb21wb3NpY29lcywgUHJvZHV0b0NvbXBvc2ljYW8gfSBmcm9tICcuLi9tb2RlbHMvZW50aWRhZGVzL3Byb2R1dG8tY29tcG9zaWNhbyc7XHJcbmltcG9ydCB7IFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpbywgUHJvZHV0b0dydXBvLCBQcm9kdXRvU3ViZ3J1cG8sIFByb2R1dG9WZXJpZmljYW9HcnVwbyB9IGZyb20gJy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0by1ncnVwbyc7XHJcbmltcG9ydCB7IE5jbSB9IGZyb20gJy4uL21vZGVscy9lbnRpZGFkZXMvcHJvZHV0by1uY20nO1xyXG5pbXBvcnQgeyBTZXRvckVzdG9xdWUgfSBmcm9tICcuLi9tb2RlbHMvZW50aWRhZGVzL3NldG9yLWVzdG9xdWUnO1xyXG5pbXBvcnQgeyBTdWl0ZUJhc2UgfSBmcm9tICcuLi9tb2RlbHMvZW50aWRhZGVzL3N1aXRlLWJhc2UnO1xyXG5pbXBvcnQgeyBQYWdpbmdSZXN1bHQgfSBmcm9tICcuLi9tb2RlbHMvaW5mcmEvcGFnaW5nLXJlc3VsdCc7XHJcbmltcG9ydCB7IFNlYXJjaFNldHRpbmcgfSBmcm9tICcuLi9tb2RlbHMvc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmcnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbW9uV2ViU2VydmljZSB7XHJcbiAgUk9PVF9VUkw6IHN0cmluZyA9ICcnO1xyXG4gIEdFUkVOQ0lBTF9VUkwgPSAnJztcclxuICBGSU5BTkNBU19VUkwgPSAnJztcclxuXHJcbiAgRlVOQ0lPTkFSSU9fQkFTRV9VUkw6IHN0cmluZyA9ICcnO1xyXG4gIEZVTkNJT05BUklPX0NBUkdPX0JBU0VfVVJMOiBzdHJpbmcgPSAnJztcclxuICB0b2tlbjogc3RyaW5nID0gJyc7XHJcbiAgUFJPRFVUT19CQVNFX1VSTCA9ICcnO1xyXG4gIFBST0RVVE9fSU5GT1JNQUNPRVNfQURJQ0lPTkFJU19CQVNFX1VSTCA9ICcnO1xyXG4gIFBST0RVVE9fR1JVUE9fQkFTRV9VUkwgPSAnJztcclxuICBQUk9EVVRPX1NVQkdSVVBPX0JBU0VfVVJMID0gJyc7XHJcbiAgUFJPRFVUT19DQVRFR09SSUFfQ0FSREFQSU9fQkFTRV9VUkwgPSAnJztcclxuICBQUk9EVVRPX1ZFUklGSUNBQ0FPX0dSVVBPX0JBU0VfVVJMID0gJyc7XHJcbiAgRVNUT1FVRV9VUkwgPSAnJztcclxuICBcclxuICBVUExPQURfQ09OVEVOVF9CQVNFX1VSTCA9ICcnO1xyXG4gIE1FRElBX0JBU0VfVVJMID0gJyc7XHJcbiAgTUVESUFfUFJPRFVUT19JTUFHRU1fVVJMID0gJyc7XHJcbiAgUFJPRFVUT19DT01QT1NJQ0FPX0JBU0VfVVJMOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgRk9STkVDRURPUl9CQVNFX1VSTCA6IHN0cmluZyA9ICcnO1xyXG4gIENMSUVOVEVfQkFTRV9VUkwgOiBzdHJpbmcgPSAnJztcclxuICBPUEVSQURPUl9CQVNFX1VSTCA9ICcnO1xyXG4gIFNVSVRFX0JBU0VfVVJMID0gJyc7XHJcblxyXG4gIHN0YXRpYyBVUkxfUEFSVF9CVVNDQSA9IFwiQnVzY2EvXCI7XHJcbiAgc3RhdGljIFVSTF9QQVJUX05FWFRfSUQgPSBcIkdldE5leHRJZC9cIjtcclxuICBzdGF0aWMgVVJMX1BBUlRfQlVTQ0FfUEFHSU5BREEgPSBcIkJ1c2NhUGFnaW5hZGEvXCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkgeyB9XHJcblxyXG4gIHNldFRva2VuKHRva2VuOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudG9rZW4gPSB0b2tlbjtcclxuICB9XHJcbiAgc3RhcnQocm9vdFVybDogc3RyaW5nLCB1cGxvYWRDb250ZW50VXJsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuUk9PVF9VUkwgPSByb290VXJsO1xyXG4gICAgdGhpcy5QUk9EVVRPX0NPTVBPU0lDQU9fQkFTRV9VUkwgPSByb290VXJsICsgXCJQcm9kdXRvQ29tcG9zaWNhby9cIjtcclxuICAgIHRoaXMuRlVOQ0lPTkFSSU9fQkFTRV9VUkwgPSByb290VXJsICsgXCJGdW5jaW9uYXJpby9cIjtcclxuICAgIHRoaXMuRlVOQ0lPTkFSSU9fQ0FSR09fQkFTRV9VUkwgPSByb290VXJsICsgXCJGdW5jaW9uYXJpb0NhcmdvL1wiO1xyXG4gICAgdGhpcy5QUk9EVVRPX0JBU0VfVVJMID0gcm9vdFVybCArIFwiUHJvZHV0b0Zpc2NhbC9cIjtcclxuICAgIHRoaXMuUFJPRFVUT19JTkZPUk1BQ09FU19BRElDSU9OQUlTX0JBU0VfVVJMID0gcm9vdFVybCArIFwiUHJvZHV0b0luZm9ybWFjb2VzQWRpY2lvbmFpcy9cIjtcclxuICAgIHRoaXMuUFJPRFVUT19HUlVQT19CQVNFX1VSTCA9IHJvb3RVcmwgKyBcIlByb2R1dG9HcnVwby9cIjtcclxuICAgIHRoaXMuUFJPRFVUT19TVUJHUlVQT19CQVNFX1VSTCA9IHJvb3RVcmwgKyBcIlByb2R1dG9TdWJncnVwby9cIjtcclxuICAgIHRoaXMuUFJPRFVUT19DQVRFR09SSUFfQ0FSREFQSU9fQkFTRV9VUkwgPSByb290VXJsICsgXCJQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8vXCI7XHJcbiAgICB0aGlzLlBST0RVVE9fVkVSSUZJQ0FDQU9fR1JVUE9fQkFTRV9VUkwgPSByb290VXJsICsgXCJQcm9kdXRvVmVyaWZpY2FvR3J1cG8vXCI7XHJcbiAgICB0aGlzLkVTVE9RVUVfVVJMID0gcm9vdFVybCArICdFc3RvcXVlLyc7XHJcbiAgICB0aGlzLkdFUkVOQ0lBTF9VUkwgPSByb290VXJsICsgJ0dlcmVuY2lhbC8nXHJcbiAgICB0aGlzLkZJTkFOQ0FTX1VSTCA9IHJvb3RVcmwgKyAnRmluYW5jYXMvJ1xyXG5cclxuICAgIFxyXG4gICAgdGhpcy5NRURJQV9CQVNFX1VSTCA9IHRoaXMuR0VSRU5DSUFMX1VSTCArIFwiTWVkaWEvXCI7XHJcbiAgICB0aGlzLk1FRElBX1BST0RVVE9fSU1BR0VNX1VSTCA9IHRoaXMuTUVESUFfQkFTRV9VUkwgKyAnR2V0UHJvZHV0b0ltYWdlbS8nO1xyXG4gICAgdGhpcy5GT1JORUNFRE9SX0JBU0VfVVJMID0gdGhpcy5GSU5BTkNBU19VUkwgKyAnRm9ybmVjZWRvci8nOyAgXHJcbiAgICB0aGlzLkNMSUVOVEVfQkFTRV9VUkwgPSB0aGlzLkZJTkFOQ0FTX1VSTCArICdDbGllbnRlLyc7XHJcbiAgICB0aGlzLk9QRVJBRE9SX0JBU0VfVVJMID0gdGhpcy5ST09UX1VSTCArIFwiT3BlcmFkb3IvXCJcclxuICAgIHRoaXMuU1VJVEVfQkFTRV9VUkwgPSB0aGlzLlJPT1RfVVJMICsgXCJTdWl0ZUJhc2UvXCI7XHJcbiAgICB0aGlzLlVQTE9BRF9DT05URU5UX0JBU0VfVVJMID0gdXBsb2FkQ29udGVudFVybDtcclxuICB9XHJcblxyXG4gIGdldEZ1bmNpb25hcmlvcyhleGliZUluYXRpdm8gOiBib29sZWFuID0gZmFsc2UpOiBPYnNlcnZhYmxlPEZ1bmNpb25hcmlvW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuRlVOQ0lPTkFSSU9fQkFTRV9VUkw7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAuc2V0KFwiZXhpYmVJbmF0aXZvXCIsICcnICsgZXhpYmVJbmF0aXZvKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEZ1bmNpb25hcmlvW10+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucyhwYXJhbXMpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZ2V0RnVuY2lvbmFyaW9zQ2FyZ29zKCk6IE9ic2VydmFibGU8RnVuY2lvbmFyaW9DYXJnb1tdPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLkZVTkNJT05BUklPX0NBUkdPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RnVuY2lvbmFyaW9DYXJnb1tdPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG5cclxuICBidXNjYUZ1bmNpb25hcmlvKHNldHRpbmc6IFNlYXJjaFNldHRpbmcpOiBPYnNlcnZhYmxlPEZ1bmNpb25hcmlvW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuRlVOQ0lPTkFSSU9fQkFTRV9VUkwgKyBDb21tb25XZWJTZXJ2aWNlLlVSTF9QQVJUX0JVU0NBO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEZ1bmNpb25hcmlvW10+KHVybCwgSlNPTi5zdHJpbmdpZnkoc2V0dGluZyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGdldE5leHRJZEZ1bmNpb25hcmlvKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLkZVTkNJT05BUklPX0JBU0VfVVJMICsgQ29tbW9uV2ViU2VydmljZS5VUkxfUEFSVF9ORVhUX0lEO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8bnVtYmVyPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGdldEFsbEZ1bmNpb25hcmlvKCk6IE9ic2VydmFibGU8RnVuY2lvbmFyaW9bXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GVU5DSU9OQVJJT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEZ1bmNpb25hcmlvW10+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgc2F2ZUZ1bmNpb25hcmlvKHM6IEZ1bmNpb25hcmlvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuRlVOQ0lPTkFSSU9fQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHMpLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBhZGRGdW5jaW9uYXJpbyhwOiBGdW5jaW9uYXJpbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLkZVTkNJT05BUklPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHApLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBkZWxldGVGdW5jaW9uYXJpbyhpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuRlVOQ0lPTkFSSU9fQkFTRV9VUkwgKyBpZDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgYnVzY2FQYWdpbmFkYVByb2R1dG9zKHNldHRpbmcgOiBTZWFyY2hTZXR0aW5nLCBwYWdlIDogbnVtYmVyLCBwYWdlU2l6ZSA6IG51bWJlcik6IE9ic2VydmFibGU8UGFnaW5nUmVzdWx0PFByb2R1dG8+PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQkFTRV9VUkwgKyBDb21tb25XZWJTZXJ2aWNlLlVSTF9QQVJUX0JVU0NBX1BBR0lOQURBO1xyXG4gICAgY29uc3QgcCA9IHsgc2V0dGluZzogc2V0dGluZywgcGFnZTogcGFnZSwgcGFnZVNpemU6IHBhZ2VTaXplIH07XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UGFnaW5nUmVzdWx0PFByb2R1dG8+Pih1cmwsIEpTT04uc3RyaW5naWZ5KHApLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBnZXROZXh0SWRQcm9kdXRvKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQkFTRV9VUkwgKyBDb21tb25XZWJTZXJ2aWNlLlVSTF9QQVJUX05FWFRfSUQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxudW1iZXI+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZ2V0UHJvZHV0b0hpc3RvcnkoaWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPFByb2R1dG9bXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0JBU0VfVVJMICsgJ0dldEhpc3RvcnkvJyArIGlkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UHJvZHV0b1tdPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGZpbmRQcm9kdXRvKHByb2R1dG9JZCA6IG51bWJlcik6IE9ic2VydmFibGU8UHJvZHV0bz4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0JBU0VfVVJMICsgcHJvZHV0b0lkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UHJvZHV0bz4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBzYXZlUHJvZHV0b0luZm9ybWFjb2VzQWRpY2lvbmFpcyhzOiBQcm9kdXRvSW5mb3JtYWNvZXNBZGljaW9uYWlzKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19JTkZPUk1BQ09FU19BRElDSU9OQUlTX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShzKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZmluZFByb2R1dG9JbmZvcm1hY29lc0FkaWNpb25haXMocHJvZHV0b0lkIDogbnVtYmVyKTogT2JzZXJ2YWJsZTxQcm9kdXRvSW5mb3JtYWNvZXNBZGljaW9uYWlzPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fSU5GT1JNQUNPRVNfQURJQ0lPTkFJU19CQVNFX1VSTCArIHByb2R1dG9JZDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFByb2R1dG9JbmZvcm1hY29lc0FkaWNpb25haXM+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgc2F2ZVByb2R1dG8oczogUHJvZHV0byk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHMpLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBhZGRQcm9kdXRvKHAgOiBQcm9kdXRvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShwKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZGVsZXRlUHJvZHV0byhpZCA6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQkFTRV9VUkwgKyBpZDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuXHJcbiAgYnVzY2FQcm9kdXRvR3J1cG8oc2V0dGluZyA6IFNlYXJjaFNldHRpbmcpOiBPYnNlcnZhYmxlPFByb2R1dG9HcnVwb1tdPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fR1JVUE9fQkFTRV9VUkwgKyBDb21tb25XZWJTZXJ2aWNlLlVSTF9QQVJUX0JVU0NBO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFByb2R1dG9HcnVwb1tdPih1cmwsIEpTT04uc3RyaW5naWZ5KHNldHRpbmcpLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH0gIFxyXG4gIGdldEFsbFByb2R1dG9HcnVwbygpOiBPYnNlcnZhYmxlPFByb2R1dG9HcnVwb1tdPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fR1JVUE9fQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQcm9kdXRvR3J1cG9bXT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBnZXROZXh0SWRQcm9kdXRvR3J1cG8oKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19HUlVQT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfTkVYVF9JRDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PG51bWJlcj4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBzYXZlUHJvZHV0b0dydXBvKHM6IFByb2R1dG9HcnVwbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fR1JVUE9fQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHMpLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICB0cmFuc2ZlcmVQcm9kdXRvR3J1cG8oZ3J1cG9JZCA6IG51bWJlciwgbm92b0dydXBvSWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0JBU0VfVVJMICsgJ0FsdGVyYUdydXBvJztcclxuICAgIGNvbnN0IHAgPSB7IG9sZElkOiBncnVwb0lkLCBuZXdJZDogbm92b0dydXBvSWQgfTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudW1iZXI+KHVybCwgSlNPTi5zdHJpbmdpZnkocCksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGFkZFByb2R1dG9HcnVwbyhwIDogUHJvZHV0b0dydXBvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19HUlVQT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShwKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZGVsZXRlUHJvZHV0b0dydXBvKGlkIDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19HUlVQT19CQVNFX1VSTCArIGlkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55Pih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG5cclxuICBcclxuICBidXNjYU5jbShuY20gOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE5jbVtdPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQkFTRV9VUkwgKyAnQnVzY2FOQ00vJztcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgIC5zZXQoXCJuY21cIiwgJycgKyBuY20pO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8TmNtW10+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucyhwYXJhbXMpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgXHJcbiAgZmluZE5jbShuY20gOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE5jbSB8IG51bGw+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19CQVNFX1VSTCArICdGaW5kTkNNLyc7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAuc2V0KFwibmNtXCIsICcnICsgbmNtKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5jbSB8IG51bGw+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucyhwYXJhbXMpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcblxyXG5cclxuICBidXNjYVByb2R1dG9TdWJncnVwbyhzZXR0aW5nIDogU2VhcmNoU2V0dGluZyk6IE9ic2VydmFibGU8UHJvZHV0b1N1YmdydXBvW10+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19TVUJHUlVQT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfQlVTQ0E7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UHJvZHV0b1N1YmdydXBvW10+KHVybCwgSlNPTi5zdHJpbmdpZnkoc2V0dGluZyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGdldEFsbFByb2R1dG9TdWJncnVwbygpOiBPYnNlcnZhYmxlPFByb2R1dG9TdWJncnVwb1tdPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fU1VCR1JVUE9fQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQcm9kdXRvU3ViZ3J1cG9bXT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBnZXROZXh0SWRQcm9kdXRvU3ViZ3J1cG8oKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19TVUJHUlVQT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfTkVYVF9JRDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PG51bWJlcj4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBzYXZlUHJvZHV0b1N1YmdydXBvKHM6IFByb2R1dG9TdWJncnVwbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fU1VCR1JVUE9fQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHMpLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBhZGRQcm9kdXRvU3ViZ3J1cG8ocCA6IFByb2R1dG9TdWJncnVwbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fU1VCR1JVUE9fQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocCksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGRlbGV0ZVByb2R1dG9TdWJncnVwbyhpZCA6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fU1VCR1JVUE9fQkFTRV9VUkwgKyBpZDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuXHJcbiAgXHJcbiAgYnVzY2FQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8oc2V0dGluZyA6IFNlYXJjaFNldHRpbmcpOiBPYnNlcnZhYmxlPFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpb1tdPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQ0FURUdPUklBX0NBUkRBUElPX0JBU0VfVVJMICsgQ29tbW9uV2ViU2VydmljZS5VUkxfUEFSVF9CVVNDQTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW9bXT4odXJsLCBKU09OLnN0cmluZ2lmeShzZXR0aW5nKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZ2V0TmV4dElkUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQ0FURUdPUklBX0NBUkRBUElPX0JBU0VfVVJMICsgQ29tbW9uV2ViU2VydmljZS5VUkxfUEFSVF9ORVhUX0lEO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8bnVtYmVyPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIHNhdmVQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8oczogUHJvZHV0b0NhdGVnb3JpYUNhcmRhcGlvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19DQVRFR09SSUFfQ0FSREFQSU9fQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHMpLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBhZGRQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8ocCA6IFByb2R1dG9DYXRlZ29yaWFDYXJkYXBpbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQ0FURUdPUklBX0NBUkRBUElPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHApLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBkZWxldGVQcm9kdXRvQ2F0ZWdvcmlhQ2FyZGFwaW8oaWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0NBVEVHT1JJQV9DQVJEQVBJT19CQVNFX1VSTCArIGlkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55Pih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIFxyXG5cclxuICBidXNjYVByb2R1dG9HcnVwb1ZlcmlmaWNhY2FvKHNldHRpbmcgOiBTZWFyY2hTZXR0aW5nKTogT2JzZXJ2YWJsZTxQcm9kdXRvVmVyaWZpY2FvR3J1cG9bXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX1ZFUklGSUNBQ0FPX0dSVVBPX0JBU0VfVVJMICsgQ29tbW9uV2ViU2VydmljZS5VUkxfUEFSVF9CVVNDQTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxQcm9kdXRvVmVyaWZpY2FvR3J1cG9bXT4odXJsLCBKU09OLnN0cmluZ2lmeShzZXR0aW5nKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZ2V0TmV4dElkUHJvZHV0b0dydXBvVmVyaWZpY2FjYW8oKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19WRVJJRklDQUNBT19HUlVQT19CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfTkVYVF9JRDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PG51bWJlcj4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBzYXZlUHJvZHV0b0dydXBvVmVyaWZpY2FjYW8oczogUHJvZHV0b1ZlcmlmaWNhb0dydXBvKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuUFJPRFVUT19WRVJJRklDQUNBT19HUlVQT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGFkZFByb2R1dG9HcnVwb1ZlcmlmaWNhY2FvKHAgOiBQcm9kdXRvVmVyaWZpY2FvR3J1cG8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX1ZFUklGSUNBQ0FPX0dSVVBPX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHApLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBkZWxldGVQcm9kdXRvR3J1cG9WZXJpZmljYWNhbyhpZCA6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fVkVSSUZJQ0FDQU9fR1JVUE9fQkFTRV9VUkwgKyBpZDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsU2V0b3JlcygpOiBPYnNlcnZhYmxlPFNldG9yRXN0b3F1ZVtdPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLkVTVE9RVUVfVVJMICsgJ1NldG9yLyc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTZXRvckVzdG9xdWVbXT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJvZHV0b0NvbXBvc2ljYW8ocHJvZHV0b0lkIDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDb21wb3NpY29lcz4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0NPTVBPU0lDQU9fQkFTRV9VUkwgKyBwcm9kdXRvSWQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxDb21wb3NpY29lcz4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH0gIFxyXG4gIHNhdmVQcm9kdXRvQ29tcG9zaWNhbyhzOiBQcm9kdXRvQ29tcG9zaWNhbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQ09NUE9TSUNBT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocyksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGFkZFByb2R1dG9Db21wb3NpY2FvKHAgOiBQcm9kdXRvQ29tcG9zaWNhbyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLlBST0RVVE9fQ09NUE9TSUNBT19CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShwKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZGVsZXRlUHJvZHV0b0NvbXBvc2ljYW8oaWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5QUk9EVVRPX0NPTVBPU0lDQU9fQkFTRV9VUkwgKyBpZDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPGFueT4odXJsLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuXHJcblxyXG4gIGJ1c2NhQ2xpZW50ZShzZXR0aW5nIDogU2VhcmNoU2V0dGluZyk6IE9ic2VydmFibGU8Q2xpZW50ZVtdPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLkNMSUVOVEVfQkFTRV9VUkwgKyBDb21tb25XZWJTZXJ2aWNlLlVSTF9QQVJUX0JVU0NBO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENsaWVudGVbXT4odXJsLCBKU09OLnN0cmluZ2lmeShzZXR0aW5nKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZ2V0QWxsQ2xpZW50ZSgpOiBPYnNlcnZhYmxlPENsaWVudGVbXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5DTElFTlRFX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q2xpZW50ZVtdPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIHNhdmVDbGllbnRlKHM6IENsaWVudGUpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5DTElFTlRFX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShzKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgYWRkQ2xpZW50ZShwIDogQ2xpZW50ZSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLkNMSUVOVEVfQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocCksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGRlbGV0ZUNsaWVudGUoaWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5DTElFTlRFX0JBU0VfVVJMICsgaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcblxyXG4gIGJ1c2NhRm9ybmVjZWRvcihzZXR0aW5nIDogU2VhcmNoU2V0dGluZyk6IE9ic2VydmFibGU8Rm9ybmVjZWRvcltdPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLkZPUk5FQ0VET1JfQkFTRV9VUkwgKyBDb21tb25XZWJTZXJ2aWNlLlVSTF9QQVJUX0JVU0NBO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEZvcm5lY2Vkb3JbXT4odXJsLCBKU09OLnN0cmluZ2lmeShzZXR0aW5nKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZ2V0QWxsRm9ybmVjZWRvcigpOiBPYnNlcnZhYmxlPEZvcm5lY2Vkb3JbXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GT1JORUNFRE9SX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Rm9ybmVjZWRvcltdPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIHNhdmVGb3JuZWNlZG9yKHM6IEZvcm5lY2Vkb3IpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GT1JORUNFRE9SX0JBU0VfVVJMO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShzKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgYWRkRm9ybmVjZWRvcihwIDogRm9ybmVjZWRvcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLkZPUk5FQ0VET1JfQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxhbnk+KHVybCwgSlNPTi5zdHJpbmdpZnkocCksIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG4gIGRlbGV0ZUZvcm5lY2Vkb3IoaWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5GT1JORUNFRE9SX0JBU0VfVVJMICsgaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxhbnk+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcblxyXG5cclxuICBnZXRPcGVyYWRvcmVzKCk6IE9ic2VydmFibGU8T3BlcmFkb3JbXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5PUEVSQURPUl9CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE9wZXJhZG9yW10+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgYnVzY2FPcGVyYWRvcihzZXR0aW5nIDogU2VhcmNoU2V0dGluZyk6IE9ic2VydmFibGU8T3BlcmFkb3JbXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5PUEVSQURPUl9CQVNFX1VSTCArIENvbW1vbldlYlNlcnZpY2UuVVJMX1BBUlRfQlVTQ0E7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8T3BlcmFkb3JbXT4odXJsLCBKU09OLnN0cmluZ2lmeShzZXR0aW5nKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZ2V0TmV4dElkT3BlcmFkb3IoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuT1BFUkFET1JfQkFTRV9VUkwgKyBDb21tb25XZWJTZXJ2aWNlLlVSTF9QQVJUX05FWFRfSUQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxudW1iZXI+KHVybCwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgc2F2ZU9wZXJhZG9yKHM6IE9wZXJhZG9yKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuT1BFUkFET1JfQkFTRV9VUkw7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIEpTT04uc3RyaW5naWZ5KHMpLCB0aGlzLmdldEh0dHBPcHRpb25zKCkpLnBpcGUobWFwKGRhdGEgPT4gZGF0YSkpO1xyXG4gIH1cclxuICBhZGRPcGVyYWRvcihwIDogT3BlcmFkb3IpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5PUEVSQURPUl9CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4odXJsLCBKU09OLnN0cmluZ2lmeShwKSwgdGhpcy5nZXRIdHRwT3B0aW9ucygpKS5waXBlKG1hcChkYXRhID0+IGRhdGEpKTtcclxuICB9XHJcbiAgZGVsZXRlT3BlcmFkb3IoaWQgOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5PUEVSQURPUl9CQVNFX1VSTCArIGlkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8YW55Pih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG5cclxuICBnZXRTdWl0ZXMoKTogT2JzZXJ2YWJsZTxTdWl0ZUJhc2VbXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5TVUlURV9CQVNFX1VSTDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFN1aXRlQmFzZVtdPih1cmwsIHRoaXMuZ2V0SHR0cE9wdGlvbnMoKSkucGlwZShtYXAoZGF0YSA9PiBkYXRhKSk7XHJcbiAgfVxyXG5cclxuICBnZXRIdHRwT3B0aW9ucyhwYXJhbWV0ZXJzPzogSHR0cFBhcmFtcykge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAgIFwiQWNjZXB0XCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxyXG4gICAgICAgIFwiQXV0aG9yaXphdGlvblwiOiAndG9rZW4gJyArIHRoaXMudG9rZW4sXHJcbiAgICAgIH0pLFxyXG4gICAgICBwYXJhbXM6IHBhcmFtZXRlcnNcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEV4Y2VsT3B0aW9ucyhwYXJhbWV0ZXJzPzogSHR0cFBhcmFtcykge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAgIFwiQWNjZXB0XCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxyXG4gICAgICAgIFwiQXV0aG9yaXphdGlvblwiOiAndG9rZW4gJyArIHRoaXMudG9rZW4sXHJcbiAgICAgIH0pLFxyXG4gICAgICBwYXJhbXM6IHBhcmFtZXRlcnMsXHJcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJyBhcyAnanNvbicsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0SHRtbE9wdGlvbnMocGFyYW1ldGVycz86IEh0dHBQYXJhbXMpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICBcIkFjY2VwdFwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcclxuICAgICAgICBcIkF1dGhvcml6YXRpb25cIjogJ3Rva2VuICcgKyB0aGlzLnRva2VuLFxyXG4gICAgICB9KSxcclxuICAgICAgcGFyYW1zOiBwYXJhbWV0ZXJzLFxyXG4gICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyBhcyAnanNvbicsXHJcbiAgICB9O1xyXG4gIH1cclxufSJdfQ==