general-library-union 3.1.80 → 3.1.81

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.
@@ -154,21 +154,14 @@ export class FormulariodinamicoComponent {
154
154
  console.log(campo);
155
155
  //var container = this.getContainerFor(campo.popup)
156
156
  console.log(this.listaCompRef);
157
- var filtroComponente = this.listaCompRef.filter(data => data.label == campo.popup)[0].value;
158
- console.log(filtroComponente);
159
- /*container.clear()
160
- let props = campo.propiedadesPopupComponent;
161
- const hasProps: boolean = !!Object.keys(props).length;
162
- const compRef: ComponentRef<any> = container.createComponent( campo.popupComponent ); //Angular 13
163
- if (hasProps) {
164
- for (let key of Object.keys(props)) {
165
- compRef.instance[key] = props[key];
166
- }
157
+ var listaResultado = this.listaCompRef.filter(data => data.label == campo.popup);
158
+ if (listaResultado.length > 0) {
159
+ var filtroComponente = listaResultado[0].value;
160
+ console.log(filtroComponente);
161
+ filtroComponente.instance['booleano'] = campo.obligatorio && !this.utilsService.validarCampoObligatorio(campo.valor);
162
+ filtroComponente.changeDetectorRef.detectChanges();
163
+ console.log(filtroComponente);
167
164
  }
168
- console.log(compRef)*/
169
- filtroComponente.instance['booleano'] = campo.obligatorio && !this.utilsService.validarCampoObligatorio(campo.valor);
170
- filtroComponente.changeDetectorRef.detectChanges();
171
- console.log(filtroComponente);
172
165
  }
173
166
  if (campo.obligatorio && !this.utilsService.validarCampoObligatorio(campo.valor)) {
174
167
  validador = validador && false;
@@ -280,4 +273,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
280
273
  }], isMensaje: [{
281
274
  type: Input
282
275
  }] } });
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXVsYXJpb2RpbmFtaWNvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9jb21wb25lbnRlcy9mb3JtdWxhcmlvZGluYW1pY28vZm9ybXVsYXJpb2RpbmFtaWNvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9jb21wb25lbnRlcy9mb3JtdWxhcmlvZGluYW1pY28vZm9ybXVsYXJpb2RpbmFtaWNvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsS0FBSyxFQUE4QixTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUF3QyxNQUFNLGVBQWUsQ0FBQztBQUV6SyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJbEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJB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a0JBQWtCLCtzQ0FBRSxhQUFhLG9FQUFFLFdBQVc7OzJGQUtyTywyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0UscUJBQXFCLFdBQ3BCLENBQUMsV0FBVyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDLGNBQ25PLElBQUk7d0lBTVQsTUFBTTtzQkFBZCxLQUFLO2dCQUUyQyxHQUFHO3NCQUFuRCxTQUFTO3VCQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDVixNQUFNO3NCQUExQyxZQUFZO3VCQUFDLGFBQWE7Z0JBQ2xCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uQ2hhbmdlcywgSW5wdXQsIE9uSW5pdCwgQ29tcG9uZW50UmVmLCBUeXBlLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYsIFZpZXdDaGlsZHJlbiwgUXVlcnlMaXN0LCBBZnRlclZpZXdJbml0LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW1wb0Zvcm11bGFyaW9Nb2RlbCB9IGZyb20gJy4vb2JqZXRvc2Zvcm11bGFyaW8vQ2FtcG9Gb3JtdWxhcmlvJztcbmltcG9ydCB7IEhhc2hEaXJlY3RpdmUgfSBmcm9tICcuL29iamV0b3Nmb3JtdWxhcmlvL0hhc2hEaXJlY3RpdmUnO1xuaW1wb3J0IHsgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNpb3MvdXRpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBHZW5lcmFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNpb3MvZ2VuZXJhbC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljaW9zL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBDYW1iaW8gfSBmcm9tICcuL29iamV0b3Nmb3JtdWxhcmlvL0NhbWJpbyc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENhbGVuZGFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jYWxlbmRhcic7XG5pbXBvcnQgeyBDaGVja2JveE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2hlY2tib3gnO1xuaW1wb3J0IHsgSW5wdXRUZXh0YXJlYU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaW5wdXR0ZXh0YXJlYSc7XG5pbXBvcnQgeyBJbnB1dFRleHRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0dGV4dCc7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcmFkaW9idXR0b24nO1xuaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XG5pbXBvcnQgeyBEcm9wZG93bk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZHJvcGRvd24nO1xuaW1wb3J0IHsgUGFzc3dvcmRNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Bhc3N3b3JkJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbnB1dE51bWJlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaW5wdXRudW1iZXInO1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgVGFibGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm9ybXVsYXJpby1kaW5hbWljbycsXG4gICAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBDYWxlbmRhck1vZHVsZSwgQ2hlY2tib3hNb2R1bGUsIElucHV0VGV4dGFyZWFNb2R1bGUsIElucHV0VGV4dE1vZHVsZSwgUmFkaW9CdXR0b25Nb2R1bGUsIFRvb2x0aXBNb2R1bGUsIERyb3Bkb3duTW9kdWxlLCBQYXNzd29yZE1vZHVsZSwgQ29tbW9uTW9kdWxlLCBJbnB1dE51bWJlck1vZHVsZSwgQXV0b0NvbXBsZXRlTW9kdWxlLCBIYXNoRGlyZWN0aXZlLCBUYWJsZU1vZHVsZV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybXVsYXJpb2RpbmFtaWNvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybXVsYXJpb2RpbmFtaWNvLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRm9ybXVsYXJpb2RpbmFtaWNvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpIGNhbXBvczogQ2FtcG9Gb3JtdWxhcmlvTW9kZWxbXTtcbiAgbGlzdGFTaU5vUmFkaW9CdXR0b246IGFueVtdID0gW3sgbmFtZTogJ1NpJywga2V5OiAnUycgfSwgeyBuYW1lOiAnTm8nLCBrZXk6ICdOJyB9XTtcbiAgQFZpZXdDaGlsZCAoJ3BvcHVwJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIHZjcjogVmlld0NvbnRhaW5lclJlZjtcbiAgQFZpZXdDaGlsZHJlbihIYXNoRGlyZWN0aXZlKSBwcml2YXRlIGhhc2hlczogUXVlcnlMaXN0PEhhc2hEaXJlY3RpdmU+O1xuICBASW5wdXQoKSBlZGl0YWJsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgb2JqZXRvOiBhbnk7XG4gIEBJbnB1dCgpIGlzTWVuc2FqZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgdmFsaWRhbmRvOiBib29sZWFuID0gZmFsc2U7ICBcbiAgdmVyTWVuc2FqZUZ1bmNpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGF1dG9aSW5kZXg6IHN0cmluZyA9ICd0cnVlJztcbiAgcHVibGljIGxpc3RhQ29tcFJlZjoge3ZhbHVlOiBDb21wb25lbnRSZWY8YW55PiwgbGFiZWw6IHN0cmluZ31bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1dGlsc1NlcnZpY2U6IFV0aWxzU2VydmljZSwgcHJpdmF0ZSBnZW5lcmFsU2VydmljZTogR2VuZXJhbFNlcnZpY2UsIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlKSB7IH1cblxuICBuZ09uQ2hhbmdlcygpe1xuICAgXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgXG4gICAgdGhpcy52ZXJNZW5zYWplRnVuY2lvbiA9IGZhbHNlO1xuICAgIHRoaXMubGlzdGFDb21wUmVmID0gW107XG4gICAgdGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICBpZihjYW1wby5tZW5zYWplRnVuY2lvbil7XG4gICAgICAgIHRoaXMudmVyTWVuc2FqZUZ1bmNpb24gPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKGNhbXBvLnRpcG8gPT0gJ1AnKXtcbiAgICAgICAgaWYgKGNhbXBvLnBvcHVwQ29tcG9uZW50KXtcbiAgICAgICAgICB0aGlzLm1vc3RyYXJQb3B1cEZvcm11bGFyaW8oY2FtcG8pLnRoZW4oZGF0YSA9PiB7fSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICAgIHRoaXMuY2FtcG9zLnNvcnQoKGEsIGIpID0+IGEub3JkZW4gLSBiLm9yZGVuKTtcblxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBtb2RpZmljYXIob2JqZXRvOiBhbnksIGVkaXRhYmxlOiBib29sZWFuKSB7XG5cdFx0dGhpcy5saW1waWFyKCk7XG5cdFx0dGhpcy5vYmpldG8gPSBvYmpldG87XG5cdFx0dGhpcy5lZGl0YWJsZSA9IGVkaXRhYmxlO1xuICAgIHRoaXMuY2FtcG9zLmZvckVhY2goY2FtcG8gPT4ge1xuICAgICAgaWYgKCFjYW1wby5jYXJhY3RlcmlzdGljYSl7XG4gICAgICAgIGZvciAobGV0IGF0cmlidXRvIGluIG9iamV0bykge1xuICAgICAgICAgIGxldCB2YWxvciA9IG9iamV0b1thdHJpYnV0b107XG4gICAgICAgICAgaWYgKGF0cmlidXRvID09IGNhbXBvLmNhbXBvKXtcbiAgICAgICAgICAgIHRoaXMuY2FyZ2FyVmFsb3IoY2FtcG8uY2FtcG8sIHZhbG9yLCBudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmKGNhbXBvLmNhbXBvRGVwZW5kZSE9IG51bGwpe1xuXHRcdFx0XHR0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbXBvMiA9PiB7XG5cdFx0XHRcdFx0aWYoY2FtcG8yLmNhbXBvID09IGNhbXBvLmNhbXBvRGVwZW5kZSl7XG5cdFx0XHRcdFx0XHRjYW1wbzIuY2FtcG9SZWZlcmVuY2lhID0gY2FtcG8udmFsb3I7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0fVxuICAgIH0pXG4gICAgXG4gICAgdGhpcy5jYW1wb3Muc29ydCgoYSwgYikgPT4gYS5vcmRlbiAtIGIub3JkZW4pO1xuXHR9XG5cbiAgbW9kaWZpY2FyVmFsb3JDYW1wb3NBZGljaW9uYWxlcyhvYmpldG86IGFueSwgaWRHcnVwbzogc3RyaW5nKSB7XG5cdFx0dGhpcy5vYmpldG8gPSBvYmpldG87XG4gICAgdGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICBpZihpZEdydXBvID09IGNhbXBvLmlkR3J1cG9QZXJ0ZW5lY2UpIHtcbiAgICAgICAgaWYgKCFjYW1wby5jYXJhY3RlcmlzdGljYSl7XG4gICAgICAgICAgZm9yIChsZXQgYXRyaWJ1dG8gaW4gb2JqZXRvKSB7XG4gICAgICAgICAgICBsZXQgdmFsb3IgPSBvYmpldG9bYXRyaWJ1dG9dO1xuICAgICAgICAgICAgaWYgKGF0cmlidXRvID09IGNhbXBvLmNhbXBvKXtcbiAgICAgICAgICAgICAgdGhpcy5jYXJnYXJWYWxvcihjYW1wby5jYW1wbywgdmFsb3IsIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZihjYW1wby5jYW1wb0RlcGVuZGUhPSBudWxsKXtcbiAgICAgICAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbXBvMiA9PiB7XG4gICAgICAgICAgICBpZihjYW1wbzIuY2FtcG8gPT0gY2FtcG8uY2FtcG9EZXBlbmRlKXtcbiAgICAgICAgICAgICAgY2FtcG8yLmNhbXBvUmVmZXJlbmNpYSA9IGNhbXBvLnZhbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuICAgIH0pXG4gICAgXG4gICAgdGhpcy5jYW1wb3Muc29ydCgoYSwgYikgPT4gYS5vcmRlbiAtIGIub3JkZW4pO1xuICB9XG5cbiAgZ3VhcmRhcigpe1xuICAgIHRoaXMuY2FtcG9zLmZvckVhY2goZGF0YSA9PiB7XG4gICAgfSlcbiAgfVxuXG4gIHNldFZhbG9yUG9wdXAob2JqZXRvKXtcbiAgfVxuXG4gIGFzeW5jIGxvYWRDb21wb25lbnREeW5hbWljPFQ+KGNhbXBvOiBDYW1wb0Zvcm11bGFyaW9Nb2RlbCwgY29tcG9uZW50OiBUeXBlPFQ+LCBwcm9wczogUGFydGlhbDxUPikge1xuICAgIHZhciBjb250YWluZXIgPSAgIHRoaXMuZ2V0Q29udGFpbmVyRm9yKGNhbXBvLnBvcHVwKVxuICAgIGNvbnRhaW5lci5jbGVhcigpO1xuICAgIGNvbnN0IGhhc1Byb3BzOiBib29sZWFuID0gISFPYmplY3Qua2V5cyhwcm9wcykubGVuZ3RoO1xuICAgIGNvbnN0IGNvbXBSZWY6IENvbXBvbmVudFJlZjxhbnk+ID0gY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudCggY29tcG9uZW50ICk7IC8vQW5ndWxhciAxM1xuICAgIFxuICAgIGlmIChoYXNQcm9wcykge1xuICAgICAgZm9yIChsZXQga2V5IG9mIE9iamVjdC5rZXlzKHByb3BzKSkge1xuICAgICAgICBjb21wUmVmLmluc3RhbmNlW2tleV0gPSBwcm9wc1trZXldO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBjb21wb25lbnRlID0gbmV3IGNhbXBvLnBvcHVwQ29tcG9uZW50KCk7XG4gICAgaWYoJ2dldERlc2NyaXBjaW9uTGxhdmUnIGluIGNvbXBvbmVudGUgKXtcbiAgICAgIGNvbXBSZWYuaW5zdGFuY2VbJ2xhYmVsJ10gPSBhd2FpdCBjb21wb25lbnRlLmdldERlc2NyaXBjaW9uTGxhdmUodGhpcy5nZW5lcmFsU2VydmljZSwgdGhpcy5hdXRoU2VydmljZSwgY2FtcG8udmFsb3IsIGNhbXBvKVxuICAgIH1cbiAgICB0aGlzLmxpc3RhQ29tcFJlZi5wdXNoKHt2YWx1ZTpjb21wUmVmLCBsYWJlbDogY2FtcG8ucG9wdXB9KTtcbiAgfVxuXG4gIGdldENvbnRhaW5lckZvcihuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5oYXNoZXMuZmluZCh4ID0+IHguaGFzaCA9PT0gbmFtZSkudmNSZWY7XG4gIH1cblxuICBhc3luYyBtb3N0cmFyUG9wdXBGb3JtdWxhcmlvKGNhbXBvOiBDYW1wb0Zvcm11bGFyaW9Nb2RlbCl7XG4gICAgYXdhaXQgdGhpcy5sb2FkQ29tcG9uZW50RHluYW1pYyhjYW1wbywgY2FtcG8ucG9wdXBDb21wb25lbnQsIGNhbXBvLnByb3BpZWRhZGVzUG9wdXBDb21wb25lbnQpXG4gICAgICBcbiAgfVxuXG4gIHZhbGlkYXIoKTogYm9vbGVhbntcbiAgICB0aGlzLnZhbGlkYW5kbyA9IHRydWU7XG4gICAgdmFyIHZhbGlkYWRvciA9IHRydWU7XG4gICAgdGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICBpZiAoY2FtcG8udGlwbyA9PSAnUCcpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ2VudHJhIHRpcG8gcCcpO1xuICAgICAgICBjb25zb2xlLmxvZyhjYW1wbylcbiAgICAgICAgLy92YXIgY29udGFpbmVyID0gICB0aGlzLmdldENvbnRhaW5lckZvcihjYW1wby5wb3B1cClcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5saXN0YUNvbXBSZWYpXG4gICAgICAgIHZhciBmaWx0cm9Db21wb25lbnRlID0gdGhpcy5saXN0YUNvbXBSZWYuZmlsdGVyKGRhdGEgPT4gZGF0YS5sYWJlbCA9PSBjYW1wby5wb3B1cClbMF0udmFsdWU7XG4gICAgICAgIGNvbnNvbGUubG9nKGZpbHRyb0NvbXBvbmVudGUpXG4gICAgICAgIC8qY29udGFpbmVyLmNsZWFyKClcbiAgICAgICAgbGV0IHByb3BzID0gY2FtcG8ucHJvcGllZGFkZXNQb3B1cENvbXBvbmVudDtcbiAgICAgICAgY29uc3QgaGFzUHJvcHM6IGJvb2xlYW4gPSAhIU9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGNvbXBSZWY6IENvbXBvbmVudFJlZjxhbnk+ID0gY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudCggY2FtcG8ucG9wdXBDb21wb25lbnQgKTsgLy9Bbmd1bGFyIDEzXG4gICAgICAgIGlmIChoYXNQcm9wcykge1xuICAgICAgICAgIGZvciAobGV0IGtleSBvZiBPYmplY3Qua2V5cyhwcm9wcykpIHtcbiAgICAgICAgICAgIGNvbXBSZWYuaW5zdGFuY2Vba2V5XSA9IHByb3BzW2tleV07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKGNvbXBSZWYpKi9cbiAgICAgICAgZmlsdHJvQ29tcG9uZW50ZS5pbnN0YW5jZVsnYm9vbGVhbm8nXSA9IGNhbXBvLm9ibGlnYXRvcmlvICYmICF0aGlzLnV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcik7XG4gICAgICAgIGZpbHRyb0NvbXBvbmVudGUuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKGZpbHRyb0NvbXBvbmVudGUpXG4gICAgICB9XG4gICAgICBpZiAoY2FtcG8ub2JsaWdhdG9yaW8gJiYgIXRoaXMudXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAgKXtcbiAgICAgICAgdmFsaWRhZG9yID0gdmFsaWRhZG9yICYmIGZhbHNlO1xuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIHZhbGlkYWRvcjtcbiAgfVxuXG4gIGdldE9iamVjdG8oKTogYW55e1xuICAgIHZhciBjYW1wb3MyID0gdGhpcy5jYW1wb3MuZmlsdGVyKGRhdGEgPT4gIWRhdGEuY2FyYWN0ZXJpc3RpY2EpO1xuICAgIGNhbXBvczIuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICB0aGlzLm9iamV0b1tjYW1wby5jYW1wb10gPSBjYW1wby52YWxvcjtcbiAgICB9KVxuICAgIHJldHVybiB0aGlzLm9iamV0bztcbiAgfVxuXG4gIGNhbXBvc0NhcmFjdGVyaXN0aWNhQ2xlYXIoKXtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY2FtcG9zLmxlbmd0aDsgaSsrKXtcbiAgICAgIGlmICh0aGlzLmNhbXBvc1tpXS5jYXJhY3RlcmlzdGljYSl7XG4gICAgICAgIHRoaXMuY2FtcG9zLnNwbGljZShpLCAxKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNhcmdhclZhbG9yKGNhbXBvOiBzdHJpbmcsIHZhbG9yOiBhbnksIGRhdG86IGFueSkge1xuICAgIHRoaXMuY2FtcG9zLmZvckVhY2goY2FtcG9GID0+IHtcbiAgICAgIGlmIChjYW1wb0YuY2FtcG8gPT0gY2FtcG8pIHtcbiAgICAgICAgLy9jYW1wb0YuY2FyZ2FyKHZhbG9yKTtcbiAgICAgICAgY2FtcG9GLnZhbG9yID0gdmFsb3I7XG4gICAgICAgIGNhbXBvRi5kYXRvID0gZGF0bztcbiAgICAgIH1cblx0XHR9KVxuXHR9XG4gIFxuICBnZXRDYW1wb3NDYXJhY3RlcmlzdGljYSgpIHtcblx0XHR2YXIgY2FtcG9zUmV0dXJuOiBDYW1wb0Zvcm11bGFyaW9Nb2RlbFtdID0gW107XG5cdFx0dGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICBpZiAoY2FtcG8uY2FyYWN0ZXJpc3RpY2EpIHtcbiAgICAgICAgY2FtcG9zUmV0dXJuLnB1c2goY2FtcG8pO1xuICAgICAgfVxuXHRcdH0pXG5cdFx0cmV0dXJuIGNhbXBvc1JldHVybjtcbiAgfVxuXG4gIG9idGVuZXJDYW1wbyhjYW1wbzogc3RyaW5nKXtcbiAgICB2YXIgcmV0b3JubyA9IG51bGxcbiAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbSA9PiB7XG4gICAgICBpZihjYW0uY2FtcG8gIT0gbnVsbCAmJiBjYW0uY2FtcG8gPT0gY2FtcG8pe1xuICAgICAgICAgIHJldG9ybm8gPSBjYW07XG4gICAgICB9XG4gICAgfSlcblx0XHRyZXR1cm4gcmV0b3Jubztcblx0fVxuXG4gIGxpbXBpYXIoKSB7XG4gICAgaWYgKHRoaXMuY2FtcG9zICE9IG51bGwgJiYgdGhpcy5jYW1wb3MubGVuZ3RoID4gMCl7XG4gICAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbXBvID0+IHtcbiAgICAgICAgY2FtcG8udmFsb3IgPSBudWxsO1xuICAgICAgICBjYW1wby5yZXNhbHRhZG8gPSBmYWxzZTtcbiAgICAgICAgY2FtcG8ubWVuc2FqZUZ1bmNpb24gPSBudWxsO1xuICAgICAgfSlcbiAgICB9XG4gIH1cbiAgXG4gIHZhbGlkYXJWaXNpYmlsaWRhZENhbXBvcyhjYW1wbzogQ2FtcG9Gb3JtdWxhcmlvTW9kZWwpOiBib29sZWFuIHtcblxuICAgIGlmICgoY2FtcG8udGlwbyA9PSAnTicgJiYgY2FtcG8uZWRpdGFibGUgPT0gJ04nKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZWRpdGFyUGVybWlzb0NhbXBvc1BvcklkR3J1cG8oaWRHcnVwbzogc3RyaW5nLCBwZXJtaXNvQ2FtcG86IHN0cmluZykge1xuICAgIHRoaXMuY2FtcG9zLmZvckVhY2goY2FtcG8gPT4ge1xuICAgICAgaWYgKGlkR3J1cG8gIT0gY2FtcG8uaWRHcnVwb1BlcnRlbmVjZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2FtcG8uZWRpdGFibGUgPSBwZXJtaXNvQ2FtcG87XG4gICAgfSlcbiAgfVxuXG4gIGdldENhbWJpb3MoKTogQ2FtYmlvW10ge1xuICAgIGNvbnN0IGNhbWJpb3M6IENhbWJpb1tdID0gW107XG4gICAgZm9yIChjb25zdCBjYW1wbyBvZiB0aGlzLmNhbXBvcykge1xuICAgICAgaWYgKGNhbXBvLmlzQ2FtYmlvKCkpIHtcbiAgICAgICAgY2FtYmlvcy5wdXNoKG5ldyBDYW1iaW8oY2FtcG8ub3JpZ2luYWwsIGNhbXBvLnZhbG9yLCBjYW1wbykpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2FtYmlvcztcbiAgfVxuXG4gIHJlbW92ZXJDYW1wb3NJZEdydXBvKGlkR3J1cG86IHN0cmluZykge1xuICAgIHZhciBjYW1wb3NSZW1vdmVyOiBDYW1wb0Zvcm11bGFyaW9Nb2RlbFtdID0gW107XG4gICAgdGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICBpZiAoaWRHcnVwbyAhPSBjYW1wby5pZEdydXBvUGVydGVuZWNlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNhbXBvc1JlbW92ZXIucHVzaChjYW1wbyk7XG4gICAgfSlcbiAgICB0aGlzLmNhbXBvcyA9IHRoaXMuY2FtcG9zLmZpbHRlcihvYmogPT4gIWNhbXBvc1JlbW92ZXIuc29tZShvYmpFbGltaW5hciA9PiBvYmpFbGltaW5hci5jYW1wbyA9PT0gb2JqLmNhbXBvKSk7XG5cbiAgfVxuXG59XG4iLCI8cC10YWJsZSBbdmFsdWVdPVwiY2FtcG9zXCI+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWNhbXBvPlxuICAgIDx0ciAqbmdJZj1cInZhbGlkYXJWaXNpYmlsaWRhZENhbXBvcyhjYW1wbylcIj5cbiAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiAyMCU7XCI+XG4gICAgICAgIDxsYWJlbCAqbmdJZj1cImNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbY2xhc3NdPVwiY2FtcG8udGlwbyAgPT0gJ0knID8gJ2ZvbnQtYm9sZCBjb2xvci00MDAgbXQtNycgOiAnJ1wiPlxuICAgICAgICAgICAge3sgY2FtcG8uZGVzY3JpcGNpb24gfX0gXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FtcG8uZWRpdGFibGUgIT0gJ04nICYmIGNhbXBvLm9ibGlnYXRvcmlvXCI+KjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC90ZD5cbiAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA4MCVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBncmlkXCI+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiY2FtcG8uYXl1ZGEgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nID8gJ2NvbC0xMScgOiAnY29sLTEyJ1wiPlxuICAgICAgICA8IS0tY2FtcG8gdGlwbyBGRUNIQS0tPlxuICAgICAgICA8cC1jYWxlbmRhclxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgIGRhdGVGb3JtYXQ9XCJkZC9tbS95eVwiXG4gICAgICAgICAgW3RhYkluZGV4XT1cImNhbXBvLm9yZGVuICsgMVwiXG4gICAgICAgICAgKm5nSWY9XCJjYW1wby50aXBvID09ICdGJyAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIlxuICAgICAgICAgIFtzaG93SWNvbl09XCJ0cnVlXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgW2NsYXNzLm5nLWludmFsaWRdPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICA+PC9wLWNhbGVuZGFyPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIEhPUkEtLT5cbiAgICAgICAgPHAtY2FsZW5kYXJcbiAgICAgICAgICBjbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgIFt0YWJJbmRleF09XCJjYW1wby5vcmRlbiArIDFcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnWCcgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICBbc2hvd1RpbWVdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Nob3dTZWNvbmRzXT1cInRydWVcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICA+PC9wLWNhbGVuZGFyPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIEhPUkEgVkFMT1ItLT5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgcElucHV0VGV4dFxuICAgICAgICAgIHR5cGU9XCJ0aW1lXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW3RhYkluZGV4XT1cImNhbXBvLm9yZGVuICsgMVwiXG4gICAgICAgICAgKm5nSWY9XCJjYW1wby50aXBvID09ICdaJyAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIFRFWFRPLS0+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHBJbnB1dFRleHRcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW3RhYkluZGV4XT1cImNhbXBvLm9yZGVuICsgMVwiXG4gICAgICAgICAgKm5nSWY9XCJjYW1wby50aXBvID09ICdUJyAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIEFSRUEgVEVYVE8tLT5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgcElucHV0VGV4dGFyZWFcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICByb3dzPVwiNVwiXG4gICAgICAgICAgY29scz1cIjVcIlxuICAgICAgICAgIFt0YWJJbmRleF09XCJjYW1wby5vcmRlbiArIDFcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgY2FtcG8uZWRpdGFibGUgPT0gJ0wnXCJcbiAgICAgICAgICAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ0EnICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiXG4gICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcC1pbnB1dHRleHRhcmVhIHAtaW5wdXR0ZXh0IHAtY29tcG9uZW50IHAtZWxlbWVudCBtaW4taC0xMDAgbWF4LWgtMjUwXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgW2NsYXNzLm5nLWludmFsaWRdPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3RleHRhcmVhPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIE5VTUVSTy0tPlxuICAgICAgICA8cC1pbnB1dE51bWJlclxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgY2FtcG8uZWRpdGFibGUgPT0gJ0wnXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICBbdGFiSW5kZXhdPVwiY2FtcG8ub3JkZW4gKyAxXCJcbiAgICAgICAgICBbbWF4bGVuZ3RoXT1cImNhbXBvLmxvbmdpdHVkXCJcbiAgICAgICAgICAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ04nICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIERFQ0lNQUwtLT5cbiAgICAgICAgPHAtaW5wdXROdW1iZXJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgbW9kZT1cImRlY2ltYWxcIlxuICAgICAgICAgIFttaW5GcmFjdGlvbkRpZ2l0c109XCIyXCJcbiAgICAgICAgICAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ0QnICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIFNFQ1JFVC0tPlxuICAgICAgICA8cC1wYXNzd29yZFxuICAgICAgICAgIFtmZWVkYmFja109XCJmYWxzZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY2FtcG8udmFsb3JcIlxuICAgICAgICAgIFt0YWJJbmRleF09XCJjYW1wby5vcmRlbiArIDFcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnUycgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgW2NsYXNzLm5nLWludmFsaWRdPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgPjwvcC1wYXNzd29yZD5cblxuICAgICAgICA8IS0tY2FtcG8gdGlwbyBDT01CTy0tPlxuICAgICAgICA8cC1kcm9wZG93blxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxuICAgICAgICAgIFtvcHRpb25zXT1cImNhbXBvLmxpc3RhXCJcbiAgICAgICAgICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnQycgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICBbc2hvd0NsZWFyXT1cIiFjYW1wby5vYmxpZ2F0b3Jpb1wiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9wLWRyb3Bkb3duPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIExPR0lDTy0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnTCcgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBncmlkXCI+XG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHZhbG9yIG9mIGxpc3RhU2lOb1JhZGlvQnV0dG9uXCIgY2xhc3M9XCJtdC00IGNvbC0xMiBtZDpjb2wtMiBmaWVsZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgIDxwLXJhZGlvQnV0dG9uXG4gICAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCJ2YWxvci5rZXlcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cInZhbG9yXCJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWxvci5rZXlcIlxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInZhbG9yLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgICAgICAgID48L3AtcmFkaW9CdXR0b24+XG4gICAgICAgICAgICAgICAgPGxhYmVsPiAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gUkFESU8tLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ1InICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgZ3JpZFwiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB2YWxvciBvZiBjYW1wby5saXN0YVwiIGNsYXNzPVwibXQtNCBjb2wtMTIgbWQ6Y29sLTIgZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgPHAtcmFkaW9CdXR0b25cbiAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCJ2YWxvci52YWx1ZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInZhbG9yXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwidmFsb3IudmFsdWVcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ2YWxvci5sYWJlbFwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgICAgICA+PC9wLXJhZGlvQnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gQ0hFQ0tCT1gtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ0gnICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgZ3JpZFwiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB2YWxvciBvZiBjYW1wby5saXN0YVwiIGNsYXNzPVwiY29sLTEyIG1kOmNvbC0zIGZpZWxkLWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgW2lucHV0SWRdPVwidmFsb3IudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ2YWxvclwiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgID48L3AtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cInZhbG9yLnZhbHVlXCI+e3sgdmFsb3IubGFiZWwgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gQVVUT0NPTVBMRVRBUi0tPlxuICAgICAgICA8cC1hdXRvQ29tcGxldGVcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgKGNhbXBvLnRpcG8gPT0gJ08nIHx8IGNhbXBvLnRpcG8gPT0gJ1knKSAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgY2FtcG8uZWRpdGFibGUgPT0gJ0wnXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICBbc3VnZ2VzdGlvbnNdPVwiY2FtcG8ubGlzdGFBdXRvY29tcGxldGVGaWx0cmFkYVwiXG4gICAgICAgICAgKGNvbXBsZXRlTWV0aG9kKT1cImNhbXBvLmZpbHRyYXJBdXRvY29tcGxldGUoJGV2ZW50KVwiXG4gICAgICAgICAgZmllbGQ9XCJsYWJlbFwiXG4gICAgICAgICAgW2Ryb3Bkb3duXT1cInRydWVcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YWxvciBwVGVtcGxhdGU9XCJpdGVtXCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8ZGl2Pnt7IHZhbG9yLmxhYmVsIH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3AtYXV0b0NvbXBsZXRlPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIFBPUFVQLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnUCcgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCIgPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjYW1wby5saXN0YVBvcHVwc1wiIFtoYXNoXT1cIml0ZW1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ2ZXJNZW5zYWplRnVuY2lvblwiIGNsYXNzPVwidGV4dC1jZW50ZXIgdy0xXCI+XG4gICAgICAgICAgPGxhYmVsPnt7IGNhbXBvLm1lbnNhamVGdW5jaW9uIH19PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc01lbnNhamVcIj5cbiAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJjYW1wby5tZW5zYWplXCI+e3sgY2FtcG8ubWVuc2FqZSB9fTwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY2FtcG8uYXl1ZGEgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCIgY2xhc3M9XCJjb2wtMSBjb250ZW5lZG9yXCIgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwidy0xcmVtXCJcbiAgICAgICAgICBzdHlsZT1cImNvbG9yOiB2YXIoLS1jb2xvci00MDApXCJcbiAgICAgICAgICB0b29sdGlwU3R5bGVDbGFzcz1cInR3LTI1MFwiXG4gICAgICAgICAgW2hpZGVEZWxheV09XCIxODAwXCJcbiAgICAgICAgICBwVG9vbHRpcD1cInt7IGNhbXBvLmF5dWRhIH19XCJcbiAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8uYXl1ZGEgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICA+PGkgY2xhc3M9XCJwaSBwaS1xdWVzdGlvbi1jaXJjbGVcIj48L2lcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLXRhYmxlPiJdfQ==
276
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXVsYXJpb2RpbmFtaWNvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9jb21wb25lbnRlcy9mb3JtdWxhcmlvZGluYW1pY28vZm9ybXVsYXJpb2RpbmFtaWNvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9jb21wb25lbnRlcy9mb3JtdWxhcmlvZGluYW1pY28vZm9ybXVsYXJpb2RpbmFtaWNvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsS0FBSyxFQUE4QixTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUF3QyxNQUFNLGVBQWUsQ0FBQztBQUV6SyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJbEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJB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Qiw2VUFBRSxhQUFhLHNYQUFFLGNBQWMsNHFDQUFFLGNBQWMsOGdCQUFFLFlBQVksZ1dBQUUsaUJBQWlCLDB2QkFBRSxrQkFBa0IsK3NDQUFFLGFBQWEsb0VBQUUsV0FBVzs7MkZBS3JPLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDRSxxQkFBcUIsV0FDcEIsQ0FBQyxXQUFXLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsY0FDbk8sSUFBSTt3SUFNVCxNQUFNO3NCQUFkLEtBQUs7Z0JBRTJDLEdBQUc7c0JBQW5ELFNBQVM7dUJBQUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUNWLE1BQU07c0JBQTFDLFlBQVk7dUJBQUMsYUFBYTtnQkFDbEIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25DaGFuZ2VzLCBJbnB1dCwgT25Jbml0LCBDb21wb25lbnRSZWYsIFR5cGUsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3QsIEFmdGVyVmlld0luaXQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbXBvRm9ybXVsYXJpb01vZGVsIH0gZnJvbSAnLi9vYmpldG9zZm9ybXVsYXJpby9DYW1wb0Zvcm11bGFyaW8nO1xuaW1wb3J0IHsgSGFzaERpcmVjdGl2ZSB9IGZyb20gJy4vb2JqZXRvc2Zvcm11bGFyaW8vSGFzaERpcmVjdGl2ZSc7XG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2lvcy91dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IEdlbmVyYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2lvcy9nZW5lcmFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNpb3MvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IENhbWJpbyB9IGZyb20gJy4vb2JqZXRvc2Zvcm11bGFyaW8vQ2FtYmlvJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcbmltcG9ydCB7IENoZWNrYm94TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jaGVja2JveCc7XG5pbXBvcnQgeyBJbnB1dFRleHRhcmVhTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHRhcmVhJztcbmltcG9ydCB7IElucHV0VGV4dE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaW5wdXR0ZXh0JztcbmltcG9ydCB7IFJhZGlvQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9yYWRpb2J1dHRvbic7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcbmltcG9ydCB7IERyb3Bkb3duTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XG5pbXBvcnQgeyBQYXNzd29yZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcGFzc3dvcmQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElucHV0TnVtYmVyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dG51bWJlcic7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmb3JtdWxhcmlvLWRpbmFtaWNvJyxcbiAgICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIENhbGVuZGFyTW9kdWxlLCBDaGVja2JveE1vZHVsZSwgSW5wdXRUZXh0YXJlYU1vZHVsZSwgSW5wdXRUZXh0TW9kdWxlLCBSYWRpb0J1dHRvbk1vZHVsZSwgVG9vbHRpcE1vZHVsZSwgRHJvcGRvd25Nb2R1bGUsIFBhc3N3b3JkTW9kdWxlLCBDb21tb25Nb2R1bGUsIElucHV0TnVtYmVyTW9kdWxlLCBBdXRvQ29tcGxldGVNb2R1bGUsIEhhc2hEaXJlY3RpdmUsIFRhYmxlTW9kdWxlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtdWxhcmlvZGluYW1pY28uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mb3JtdWxhcmlvZGluYW1pY28uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtdWxhcmlvZGluYW1pY29Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgY2FtcG9zOiBDYW1wb0Zvcm11bGFyaW9Nb2RlbFtdO1xuICBsaXN0YVNpTm9SYWRpb0J1dHRvbjogYW55W10gPSBbeyBuYW1lOiAnU2knLCBrZXk6ICdTJyB9LCB7IG5hbWU6ICdObycsIGtleTogJ04nIH1dO1xuICBAVmlld0NoaWxkICgncG9wdXAnLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgdmNyOiBWaWV3Q29udGFpbmVyUmVmO1xuICBAVmlld0NoaWxkcmVuKEhhc2hEaXJlY3RpdmUpIHByaXZhdGUgaGFzaGVzOiBRdWVyeUxpc3Q8SGFzaERpcmVjdGl2ZT47XG4gIEBJbnB1dCgpIGVkaXRhYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSBvYmpldG86IGFueTtcbiAgQElucHV0KCkgaXNNZW5zYWplOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyB2YWxpZGFuZG86IGJvb2xlYW4gPSBmYWxzZTsgIFxuICB2ZXJNZW5zYWplRnVuY2lvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgYXV0b1pJbmRleDogc3RyaW5nID0gJ3RydWUnO1xuICBwdWJsaWMgbGlzdGFDb21wUmVmOiB7dmFsdWU6IENvbXBvbmVudFJlZjxhbnk+LCBsYWJlbDogc3RyaW5nfVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHVibGljIHV0aWxzU2VydmljZTogVXRpbHNTZXJ2aWNlLCBwcml2YXRlIGdlbmVyYWxTZXJ2aWNlOiBHZW5lcmFsU2VydmljZSwgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpIHsgfVxuXG4gIG5nT25DaGFuZ2VzKCl7XG4gICBcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBcbiAgICB0aGlzLnZlck1lbnNhamVGdW5jaW9uID0gZmFsc2U7XG4gICAgdGhpcy5saXN0YUNvbXBSZWYgPSBbXTtcbiAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbXBvID0+IHtcbiAgICAgIGlmKGNhbXBvLm1lbnNhamVGdW5jaW9uKXtcbiAgICAgICAgdGhpcy52ZXJNZW5zYWplRnVuY2lvbiA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoY2FtcG8udGlwbyA9PSAnUCcpe1xuICAgICAgICBpZiAoY2FtcG8ucG9wdXBDb21wb25lbnQpe1xuICAgICAgICAgIHRoaXMubW9zdHJhclBvcHVwRm9ybXVsYXJpbyhjYW1wbykudGhlbihkYXRhID0+IHt9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gICAgdGhpcy5jYW1wb3Muc29ydCgoYSwgYikgPT4gYS5vcmRlbiAtIGIub3JkZW4pO1xuXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIG1vZGlmaWNhcihvYmpldG86IGFueSwgZWRpdGFibGU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmxpbXBpYXIoKTtcblx0XHR0aGlzLm9iamV0byA9IG9iamV0bztcblx0XHR0aGlzLmVkaXRhYmxlID0gZWRpdGFibGU7XG4gICAgdGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICBpZiAoIWNhbXBvLmNhcmFjdGVyaXN0aWNhKXtcbiAgICAgICAgZm9yIChsZXQgYXRyaWJ1dG8gaW4gb2JqZXRvKSB7XG4gICAgICAgICAgbGV0IHZhbG9yID0gb2JqZXRvW2F0cmlidXRvXTtcbiAgICAgICAgICBpZiAoYXRyaWJ1dG8gPT0gY2FtcG8uY2FtcG8pe1xuICAgICAgICAgICAgdGhpcy5jYXJnYXJWYWxvcihjYW1wby5jYW1wbywgdmFsb3IsIG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYoY2FtcG8uY2FtcG9EZXBlbmRlIT0gbnVsbCl7XG5cdFx0XHRcdHRoaXMuY2FtcG9zLmZvckVhY2goY2FtcG8yID0+IHtcblx0XHRcdFx0XHRpZihjYW1wbzIuY2FtcG8gPT0gY2FtcG8uY2FtcG9EZXBlbmRlKXtcblx0XHRcdFx0XHRcdGNhbXBvMi5jYW1wb1JlZmVyZW5jaWEgPSBjYW1wby52YWxvcjtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHR9XG4gICAgfSlcbiAgICBcbiAgICB0aGlzLmNhbXBvcy5zb3J0KChhLCBiKSA9PiBhLm9yZGVuIC0gYi5vcmRlbik7XG5cdH1cblxuICBtb2RpZmljYXJWYWxvckNhbXBvc0FkaWNpb25hbGVzKG9iamV0bzogYW55LCBpZEdydXBvOiBzdHJpbmcpIHtcblx0XHR0aGlzLm9iamV0byA9IG9iamV0bztcbiAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbXBvID0+IHtcbiAgICAgIGlmKGlkR3J1cG8gPT0gY2FtcG8uaWRHcnVwb1BlcnRlbmVjZSkge1xuICAgICAgICBpZiAoIWNhbXBvLmNhcmFjdGVyaXN0aWNhKXtcbiAgICAgICAgICBmb3IgKGxldCBhdHJpYnV0byBpbiBvYmpldG8pIHtcbiAgICAgICAgICAgIGxldCB2YWxvciA9IG9iamV0b1thdHJpYnV0b107XG4gICAgICAgICAgICBpZiAoYXRyaWJ1dG8gPT0gY2FtcG8uY2FtcG8pe1xuICAgICAgICAgICAgICB0aGlzLmNhcmdhclZhbG9yKGNhbXBvLmNhbXBvLCB2YWxvciwgbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmKGNhbXBvLmNhbXBvRGVwZW5kZSE9IG51bGwpe1xuICAgICAgICAgIHRoaXMuY2FtcG9zLmZvckVhY2goY2FtcG8yID0+IHtcbiAgICAgICAgICAgIGlmKGNhbXBvMi5jYW1wbyA9PSBjYW1wby5jYW1wb0RlcGVuZGUpe1xuICAgICAgICAgICAgICBjYW1wbzIuY2FtcG9SZWZlcmVuY2lhID0gY2FtcG8udmFsb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgfSlcbiAgICBcbiAgICB0aGlzLmNhbXBvcy5zb3J0KChhLCBiKSA9PiBhLm9yZGVuIC0gYi5vcmRlbik7XG4gIH1cblxuICBndWFyZGFyKCl7XG4gICAgdGhpcy5jYW1wb3MuZm9yRWFjaChkYXRhID0+IHtcbiAgICB9KVxuICB9XG5cbiAgc2V0VmFsb3JQb3B1cChvYmpldG8pe1xuICB9XG5cbiAgYXN5bmMgbG9hZENvbXBvbmVudER5bmFtaWM8VD4oY2FtcG86IENhbXBvRm9ybXVsYXJpb01vZGVsLCBjb21wb25lbnQ6IFR5cGU8VD4sIHByb3BzOiBQYXJ0aWFsPFQ+KSB7XG4gICAgdmFyIGNvbnRhaW5lciA9ICAgdGhpcy5nZXRDb250YWluZXJGb3IoY2FtcG8ucG9wdXApXG4gICAgY29udGFpbmVyLmNsZWFyKCk7XG4gICAgY29uc3QgaGFzUHJvcHM6IGJvb2xlYW4gPSAhIU9iamVjdC5rZXlzKHByb3BzKS5sZW5ndGg7XG4gICAgY29uc3QgY29tcFJlZjogQ29tcG9uZW50UmVmPGFueT4gPSBjb250YWluZXIuY3JlYXRlQ29tcG9uZW50KCBjb21wb25lbnQgKTsgLy9Bbmd1bGFyIDEzXG4gICAgXG4gICAgaWYgKGhhc1Byb3BzKSB7XG4gICAgICBmb3IgKGxldCBrZXkgb2YgT2JqZWN0LmtleXMocHJvcHMpKSB7XG4gICAgICAgIGNvbXBSZWYuaW5zdGFuY2Vba2V5XSA9IHByb3BzW2tleV07XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGNvbXBvbmVudGUgPSBuZXcgY2FtcG8ucG9wdXBDb21wb25lbnQoKTtcbiAgICBpZignZ2V0RGVzY3JpcGNpb25MbGF2ZScgaW4gY29tcG9uZW50ZSApe1xuICAgICAgY29tcFJlZi5pbnN0YW5jZVsnbGFiZWwnXSA9IGF3YWl0IGNvbXBvbmVudGUuZ2V0RGVzY3JpcGNpb25MbGF2ZSh0aGlzLmdlbmVyYWxTZXJ2aWNlLCB0aGlzLmF1dGhTZXJ2aWNlLCBjYW1wby52YWxvciwgY2FtcG8pXG4gICAgfVxuICAgIHRoaXMubGlzdGFDb21wUmVmLnB1c2goe3ZhbHVlOmNvbXBSZWYsIGxhYmVsOiBjYW1wby5wb3B1cH0pO1xuICB9XG5cbiAgZ2V0Q29udGFpbmVyRm9yKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmhhc2hlcy5maW5kKHggPT4geC5oYXNoID09PSBuYW1lKS52Y1JlZjtcbiAgfVxuXG4gIGFzeW5jIG1vc3RyYXJQb3B1cEZvcm11bGFyaW8oY2FtcG86IENhbXBvRm9ybXVsYXJpb01vZGVsKXtcbiAgICBhd2FpdCB0aGlzLmxvYWRDb21wb25lbnREeW5hbWljKGNhbXBvLCBjYW1wby5wb3B1cENvbXBvbmVudCwgY2FtcG8ucHJvcGllZGFkZXNQb3B1cENvbXBvbmVudClcbiAgICAgIFxuICB9XG5cbiAgdmFsaWRhcigpOiBib29sZWFue1xuICAgIHRoaXMudmFsaWRhbmRvID0gdHJ1ZTtcbiAgICB2YXIgdmFsaWRhZG9yID0gdHJ1ZTtcbiAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbXBvID0+IHtcbiAgICAgIGlmIChjYW1wby50aXBvID09ICdQJykge1xuICAgICAgICBjb25zb2xlLmxvZygnZW50cmEgdGlwbyBwJyk7XG4gICAgICAgIGNvbnNvbGUubG9nKGNhbXBvKVxuICAgICAgICAvL3ZhciBjb250YWluZXIgPSAgIHRoaXMuZ2V0Q29udGFpbmVyRm9yKGNhbXBvLnBvcHVwKVxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmxpc3RhQ29tcFJlZilcbiAgICAgICAgdmFyIGxpc3RhUmVzdWx0YWRvID0gdGhpcy5saXN0YUNvbXBSZWYuZmlsdGVyKGRhdGEgPT4gZGF0YS5sYWJlbCA9PSBjYW1wby5wb3B1cCk7XG4gICAgICAgIGlmIChsaXN0YVJlc3VsdGFkby5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdmFyIGZpbHRyb0NvbXBvbmVudGUgPSBsaXN0YVJlc3VsdGFkb1swXS52YWx1ZTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhmaWx0cm9Db21wb25lbnRlKVxuICAgICAgICAgIGZpbHRyb0NvbXBvbmVudGUuaW5zdGFuY2VbJ2Jvb2xlYW5vJ10gPSBjYW1wby5vYmxpZ2F0b3JpbyAmJiAhdGhpcy51dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpO1xuICAgICAgICAgIGZpbHRyb0NvbXBvbmVudGUuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGZpbHRyb0NvbXBvbmVudGUpXG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICB9XG4gICAgICBpZiAoY2FtcG8ub2JsaWdhdG9yaW8gJiYgIXRoaXMudXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAgKXtcbiAgICAgICAgdmFsaWRhZG9yID0gdmFsaWRhZG9yICYmIGZhbHNlO1xuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIHZhbGlkYWRvcjtcbiAgfVxuXG4gIGdldE9iamVjdG8oKTogYW55e1xuICAgIHZhciBjYW1wb3MyID0gdGhpcy5jYW1wb3MuZmlsdGVyKGRhdGEgPT4gIWRhdGEuY2FyYWN0ZXJpc3RpY2EpO1xuICAgIGNhbXBvczIuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICB0aGlzLm9iamV0b1tjYW1wby5jYW1wb10gPSBjYW1wby52YWxvcjtcbiAgICB9KVxuICAgIHJldHVybiB0aGlzLm9iamV0bztcbiAgfVxuXG4gIGNhbXBvc0NhcmFjdGVyaXN0aWNhQ2xlYXIoKXtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY2FtcG9zLmxlbmd0aDsgaSsrKXtcbiAgICAgIGlmICh0aGlzLmNhbXBvc1tpXS5jYXJhY3RlcmlzdGljYSl7XG4gICAgICAgIHRoaXMuY2FtcG9zLnNwbGljZShpLCAxKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNhcmdhclZhbG9yKGNhbXBvOiBzdHJpbmcsIHZhbG9yOiBhbnksIGRhdG86IGFueSkge1xuICAgIHRoaXMuY2FtcG9zLmZvckVhY2goY2FtcG9GID0+IHtcbiAgICAgIGlmIChjYW1wb0YuY2FtcG8gPT0gY2FtcG8pIHtcbiAgICAgICAgLy9jYW1wb0YuY2FyZ2FyKHZhbG9yKTtcbiAgICAgICAgY2FtcG9GLnZhbG9yID0gdmFsb3I7XG4gICAgICAgIGNhbXBvRi5kYXRvID0gZGF0bztcbiAgICAgIH1cblx0XHR9KVxuXHR9XG4gIFxuICBnZXRDYW1wb3NDYXJhY3RlcmlzdGljYSgpIHtcblx0XHR2YXIgY2FtcG9zUmV0dXJuOiBDYW1wb0Zvcm11bGFyaW9Nb2RlbFtdID0gW107XG5cdFx0dGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICBpZiAoY2FtcG8uY2FyYWN0ZXJpc3RpY2EpIHtcbiAgICAgICAgY2FtcG9zUmV0dXJuLnB1c2goY2FtcG8pO1xuICAgICAgfVxuXHRcdH0pXG5cdFx0cmV0dXJuIGNhbXBvc1JldHVybjtcbiAgfVxuXG4gIG9idGVuZXJDYW1wbyhjYW1wbzogc3RyaW5nKXtcbiAgICB2YXIgcmV0b3JubyA9IG51bGxcbiAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbSA9PiB7XG4gICAgICBpZihjYW0uY2FtcG8gIT0gbnVsbCAmJiBjYW0uY2FtcG8gPT0gY2FtcG8pe1xuICAgICAgICAgIHJldG9ybm8gPSBjYW07XG4gICAgICB9XG4gICAgfSlcblx0XHRyZXR1cm4gcmV0b3Jubztcblx0fVxuXG4gIGxpbXBpYXIoKSB7XG4gICAgaWYgKHRoaXMuY2FtcG9zICE9IG51bGwgJiYgdGhpcy5jYW1wb3MubGVuZ3RoID4gMCl7XG4gICAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbXBvID0+IHtcbiAgICAgICAgY2FtcG8udmFsb3IgPSBudWxsO1xuICAgICAgICBjYW1wby5yZXNhbHRhZG8gPSBmYWxzZTtcbiAgICAgICAgY2FtcG8ubWVuc2FqZUZ1bmNpb24gPSBudWxsO1xuICAgICAgfSlcbiAgICB9XG4gIH1cbiAgXG4gIHZhbGlkYXJWaXNpYmlsaWRhZENhbXBvcyhjYW1wbzogQ2FtcG9Gb3JtdWxhcmlvTW9kZWwpOiBib29sZWFuIHtcblxuICAgIGlmICgoY2FtcG8udGlwbyA9PSAnTicgJiYgY2FtcG8uZWRpdGFibGUgPT0gJ04nKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZWRpdGFyUGVybWlzb0NhbXBvc1BvcklkR3J1cG8oaWRHcnVwbzogc3RyaW5nLCBwZXJtaXNvQ2FtcG86IHN0cmluZykge1xuICAgIHRoaXMuY2FtcG9zLmZvckVhY2goY2FtcG8gPT4ge1xuICAgICAgaWYgKGlkR3J1cG8gIT0gY2FtcG8uaWRHcnVwb1BlcnRlbmVjZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2FtcG8uZWRpdGFibGUgPSBwZXJtaXNvQ2FtcG87XG4gICAgfSlcbiAgfVxuXG4gIGdldENhbWJpb3MoKTogQ2FtYmlvW10ge1xuICAgIGNvbnN0IGNhbWJpb3M6IENhbWJpb1tdID0gW107XG4gICAgZm9yIChjb25zdCBjYW1wbyBvZiB0aGlzLmNhbXBvcykge1xuICAgICAgaWYgKGNhbXBvLmlzQ2FtYmlvKCkpIHtcbiAgICAgICAgY2FtYmlvcy5wdXNoKG5ldyBDYW1iaW8oY2FtcG8ub3JpZ2luYWwsIGNhbXBvLnZhbG9yLCBjYW1wbykpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2FtYmlvcztcbiAgfVxuXG4gIHJlbW92ZXJDYW1wb3NJZEdydXBvKGlkR3J1cG86IHN0cmluZykge1xuICAgIHZhciBjYW1wb3NSZW1vdmVyOiBDYW1wb0Zvcm11bGFyaW9Nb2RlbFtdID0gW107XG4gICAgdGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICBpZiAoaWRHcnVwbyAhPSBjYW1wby5pZEdydXBvUGVydGVuZWNlKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNhbXBvc1JlbW92ZXIucHVzaChjYW1wbyk7XG4gICAgfSlcbiAgICB0aGlzLmNhbXBvcyA9IHRoaXMuY2FtcG9zLmZpbHRlcihvYmogPT4gIWNhbXBvc1JlbW92ZXIuc29tZShvYmpFbGltaW5hciA9PiBvYmpFbGltaW5hci5jYW1wbyA9PT0gb2JqLmNhbXBvKSk7XG5cbiAgfVxuXG59XG4iLCI8cC10YWJsZSBbdmFsdWVdPVwiY2FtcG9zXCI+XG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWNhbXBvPlxuICAgIDx0ciAqbmdJZj1cInZhbGlkYXJWaXNpYmlsaWRhZENhbXBvcyhjYW1wbylcIj5cbiAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiAyMCU7XCI+XG4gICAgICAgIDxsYWJlbCAqbmdJZj1cImNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbY2xhc3NdPVwiY2FtcG8udGlwbyAgPT0gJ0knID8gJ2ZvbnQtYm9sZCBjb2xvci00MDAgbXQtNycgOiAnJ1wiPlxuICAgICAgICAgICAge3sgY2FtcG8uZGVzY3JpcGNpb24gfX0gXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FtcG8uZWRpdGFibGUgIT0gJ04nICYmIGNhbXBvLm9ibGlnYXRvcmlvXCI+KjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC90ZD5cbiAgICAgIDx0ZCBzdHlsZT1cIndpZHRoOiA4MCVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBncmlkXCI+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiY2FtcG8uYXl1ZGEgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nID8gJ2NvbC0xMScgOiAnY29sLTEyJ1wiPlxuICAgICAgICA8IS0tY2FtcG8gdGlwbyBGRUNIQS0tPlxuICAgICAgICA8cC1jYWxlbmRhclxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgIGRhdGVGb3JtYXQ9XCJkZC9tbS95eVwiXG4gICAgICAgICAgW3RhYkluZGV4XT1cImNhbXBvLm9yZGVuICsgMVwiXG4gICAgICAgICAgKm5nSWY9XCJjYW1wby50aXBvID09ICdGJyAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIlxuICAgICAgICAgIFtzaG93SWNvbl09XCJ0cnVlXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgW2NsYXNzLm5nLWludmFsaWRdPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICA+PC9wLWNhbGVuZGFyPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIEhPUkEtLT5cbiAgICAgICAgPHAtY2FsZW5kYXJcbiAgICAgICAgICBjbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgIFt0YWJJbmRleF09XCJjYW1wby5vcmRlbiArIDFcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnWCcgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICBbc2hvd1RpbWVdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Nob3dTZWNvbmRzXT1cInRydWVcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICA+PC9wLWNhbGVuZGFyPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIEhPUkEgVkFMT1ItLT5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgcElucHV0VGV4dFxuICAgICAgICAgIHR5cGU9XCJ0aW1lXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW3RhYkluZGV4XT1cImNhbXBvLm9yZGVuICsgMVwiXG4gICAgICAgICAgKm5nSWY9XCJjYW1wby50aXBvID09ICdaJyAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIFRFWFRPLS0+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHBJbnB1dFRleHRcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW3RhYkluZGV4XT1cImNhbXBvLm9yZGVuICsgMVwiXG4gICAgICAgICAgKm5nSWY9XCJjYW1wby50aXBvID09ICdUJyAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIEFSRUEgVEVYVE8tLT5cbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgcElucHV0VGV4dGFyZWFcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICByb3dzPVwiNVwiXG4gICAgICAgICAgY29scz1cIjVcIlxuICAgICAgICAgIFt0YWJJbmRleF09XCJjYW1wby5vcmRlbiArIDFcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgY2FtcG8uZWRpdGFibGUgPT0gJ0wnXCJcbiAgICAgICAgICAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ0EnICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiXG4gICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcC1pbnB1dHRleHRhcmVhIHAtaW5wdXR0ZXh0IHAtY29tcG9uZW50IHAtZWxlbWVudCBtaW4taC0xMDAgbWF4LWgtMjUwXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgW2NsYXNzLm5nLWludmFsaWRdPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3RleHRhcmVhPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIE5VTUVSTy0tPlxuICAgICAgICA8cC1pbnB1dE51bWJlclxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgY2FtcG8uZWRpdGFibGUgPT0gJ0wnXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICBbdGFiSW5kZXhdPVwiY2FtcG8ub3JkZW4gKyAxXCJcbiAgICAgICAgICBbbWF4bGVuZ3RoXT1cImNhbXBvLmxvbmdpdHVkXCJcbiAgICAgICAgICAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ04nICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIERFQ0lNQUwtLT5cbiAgICAgICAgPHAtaW5wdXROdW1iZXJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgbW9kZT1cImRlY2ltYWxcIlxuICAgICAgICAgIFttaW5GcmFjdGlvbkRpZ2l0c109XCIyXCJcbiAgICAgICAgICAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ0QnICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIFNFQ1JFVC0tPlxuICAgICAgICA8cC1wYXNzd29yZFxuICAgICAgICAgIFtmZWVkYmFja109XCJmYWxzZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY2FtcG8udmFsb3JcIlxuICAgICAgICAgIFt0YWJJbmRleF09XCJjYW1wby5vcmRlbiArIDFcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnUycgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgW2NsYXNzLm5nLWludmFsaWRdPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgPjwvcC1wYXNzd29yZD5cblxuICAgICAgICA8IS0tY2FtcG8gdGlwbyBDT01CTy0tPlxuICAgICAgICA8cC1kcm9wZG93blxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxuICAgICAgICAgIFtvcHRpb25zXT1cImNhbXBvLmxpc3RhXCJcbiAgICAgICAgICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnQycgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICBbc2hvd0NsZWFyXT1cIiFjYW1wby5vYmxpZ2F0b3Jpb1wiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9wLWRyb3Bkb3duPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIExPR0lDTy0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnTCcgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBncmlkXCI+XG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHZhbG9yIG9mIGxpc3RhU2lOb1JhZGlvQnV0dG9uXCIgY2xhc3M9XCJtdC00IGNvbC0xMiBtZDpjb2wtMiBmaWVsZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgIDxwLXJhZGlvQnV0dG9uXG4gICAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCJ2YWxvci5rZXlcIlxuICAgICAgICAgICAgICAgICAgbmFtZT1cInZhbG9yXCJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWxvci5rZXlcIlxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInZhbG9yLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgICAgICAgID48L3AtcmFkaW9CdXR0b24+XG4gICAgICAgICAgICAgICAgPGxhYmVsPiAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gUkFESU8tLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ1InICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgZ3JpZFwiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB2YWxvciBvZiBjYW1wby5saXN0YVwiIGNsYXNzPVwibXQtNCBjb2wtMTIgbWQ6Y29sLTIgZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgPHAtcmFkaW9CdXR0b25cbiAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCJ2YWxvci52YWx1ZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInZhbG9yXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwidmFsb3IudmFsdWVcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ2YWxvci5sYWJlbFwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgICAgICA+PC9wLXJhZGlvQnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gQ0hFQ0tCT1gtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ0gnICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgZ3JpZFwiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB2YWxvciBvZiBjYW1wby5saXN0YVwiIGNsYXNzPVwiY29sLTEyIG1kOmNvbC0zIGZpZWxkLWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgW2lucHV0SWRdPVwidmFsb3IudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ2YWxvclwiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgID48L3AtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cInZhbG9yLnZhbHVlXCI+e3sgdmFsb3IubGFiZWwgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gQVVUT0NPTVBMRVRBUi0tPlxuICAgICAgICA8cC1hdXRvQ29tcGxldGVcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgKGNhbXBvLnRpcG8gPT0gJ08nIHx8IGNhbXBvLnRpcG8gPT0gJ1knKSAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgY2FtcG8uZWRpdGFibGUgPT0gJ0wnXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICBbc3VnZ2VzdGlvbnNdPVwiY2FtcG8ubGlzdGFBdXRvY29tcGxldGVGaWx0cmFkYVwiXG4gICAgICAgICAgKGNvbXBsZXRlTWV0aG9kKT1cImNhbXBvLmZpbHRyYXJBdXRvY29tcGxldGUoJGV2ZW50KVwiXG4gICAgICAgICAgZmllbGQ9XCJsYWJlbFwiXG4gICAgICAgICAgW2Ryb3Bkb3duXT1cInRydWVcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YWxvciBwVGVtcGxhdGU9XCJpdGVtXCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8ZGl2Pnt7IHZhbG9yLmxhYmVsIH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3AtYXV0b0NvbXBsZXRlPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIFBPUFVQLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnUCcgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCIgPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjYW1wby5saXN0YVBvcHVwc1wiIFtoYXNoXT1cIml0ZW1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ2ZXJNZW5zYWplRnVuY2lvblwiIGNsYXNzPVwidGV4dC1jZW50ZXIgdy0xXCI+XG4gICAgICAgICAgPGxhYmVsPnt7IGNhbXBvLm1lbnNhamVGdW5jaW9uIH19PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc01lbnNhamVcIj5cbiAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJjYW1wby5tZW5zYWplXCI+e3sgY2FtcG8ubWVuc2FqZSB9fTwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY2FtcG8uYXl1ZGEgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCIgY2xhc3M9XCJjb2wtMSBjb250ZW5lZG9yXCIgID5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwidy0xcmVtXCJcbiAgICAgICAgICBzdHlsZT1cImNvbG9yOiB2YXIoLS1jb2xvci00MDApXCJcbiAgICAgICAgICB0b29sdGlwU3R5bGVDbGFzcz1cInR3LTI1MFwiXG4gICAgICAgICAgW2hpZGVEZWxheV09XCIxODAwXCJcbiAgICAgICAgICBwVG9vbHRpcD1cInt7IGNhbXBvLmF5dWRhIH19XCJcbiAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8uYXl1ZGEgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICA+PGkgY2xhc3M9XCJwaSBwaS1xdWVzdGlvbi1jaXJjbGVcIj48L2lcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9wLXRhYmxlPiJdfQ==
@@ -9240,21 +9240,14 @@ class FormulariodinamicoComponent {
9240
9240
  console.log(campo);
9241
9241
  //var container = this.getContainerFor(campo.popup)
9242
9242
  console.log(this.listaCompRef);
9243
- var filtroComponente = this.listaCompRef.filter(data => data.label == campo.popup)[0].value;
9244
- console.log(filtroComponente);
9245
- /*container.clear()
9246
- let props = campo.propiedadesPopupComponent;
9247
- const hasProps: boolean = !!Object.keys(props).length;
9248
- const compRef: ComponentRef<any> = container.createComponent( campo.popupComponent ); //Angular 13
9249
- if (hasProps) {
9250
- for (let key of Object.keys(props)) {
9251
- compRef.instance[key] = props[key];
9252
- }
9253
- }
9254
- console.log(compRef)*/
9255
- filtroComponente.instance['booleano'] = campo.obligatorio && !this.utilsService.validarCampoObligatorio(campo.valor);
9256
- filtroComponente.changeDetectorRef.detectChanges();
9257
- console.log(filtroComponente);
9243
+ var listaResultado = this.listaCompRef.filter(data => data.label == campo.popup);
9244
+ if (listaResultado.length > 0) {
9245
+ var filtroComponente = listaResultado[0].value;
9246
+ console.log(filtroComponente);
9247
+ filtroComponente.instance['booleano'] = campo.obligatorio && !this.utilsService.validarCampoObligatorio(campo.valor);
9248
+ filtroComponente.changeDetectorRef.detectChanges();
9249
+ console.log(filtroComponente);
9250
+ }
9258
9251
  }
9259
9252
  if (campo.obligatorio && !this.utilsService.validarCampoObligatorio(campo.valor)) {
9260
9253
  validador = validador && false;