general-library-union 3.1.45 → 3.1.47
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.
- package/esm2022/src/app/core/componentes/formulariodinamico/formulariodinamico.component.mjs +15 -14
- package/fesm2022/general-library-union.mjs +15 -14
- package/fesm2022/general-library-union.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/core/componentes/formulariodinamico/formulariodinamico.component.d.ts +4 -1
- package/src/app/webcommon/pages/fuente/importar-fuente-con/importar-fuente-con.component.d.ts +1 -1
package/esm2022/src/app/core/componentes/formulariodinamico/formulariodinamico.component.mjs
CHANGED
|
@@ -137,7 +137,7 @@ export class FormulariodinamicoComponent {
|
|
|
137
137
|
if ('getDescripcionLlave' in componente) {
|
|
138
138
|
compRef.instance['label'] = await componente.getDescripcionLlave(this.generalService, this.authService, campo.valor, campo);
|
|
139
139
|
}
|
|
140
|
-
this.listaCompRef.push(compRef);
|
|
140
|
+
this.listaCompRef.push({ value: compRef, label: campo.popup });
|
|
141
141
|
}
|
|
142
142
|
getContainerFor(name) {
|
|
143
143
|
return this.hashes.find(x => x.hash === name).vcRef;
|
|
@@ -152,22 +152,23 @@ export class FormulariodinamicoComponent {
|
|
|
152
152
|
if (campo.tipo == 'P') {
|
|
153
153
|
console.log('entra tipo p');
|
|
154
154
|
console.log(campo);
|
|
155
|
-
|
|
156
|
-
var container = this.getContainerFor(campo.popup);
|
|
157
|
-
console.log(container);
|
|
155
|
+
//var container = this.getContainerFor(campo.popup)
|
|
158
156
|
console.log(this.listaCompRef);
|
|
159
|
-
|
|
157
|
+
var filtroComponente = this.listaCompRef.filter(data => data.label == campo.popup)[0].value;
|
|
158
|
+
console.log(filtroComponente);
|
|
159
|
+
/*container.clear()
|
|
160
160
|
let props = campo.propiedadesPopupComponent;
|
|
161
|
-
const hasProps = !!Object.keys(props).length;
|
|
162
|
-
const compRef = container.createComponent(campo.popupComponent); //Angular 13
|
|
161
|
+
const hasProps: boolean = !!Object.keys(props).length;
|
|
162
|
+
const compRef: ComponentRef<any> = container.createComponent( campo.popupComponent ); //Angular 13
|
|
163
163
|
if (hasProps) {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
164
|
+
for (let key of Object.keys(props)) {
|
|
165
|
+
compRef.instance[key] = props[key];
|
|
166
|
+
}
|
|
167
167
|
}
|
|
168
|
-
console.log(compRef)
|
|
169
|
-
|
|
170
|
-
|
|
168
|
+
console.log(compRef)*/
|
|
169
|
+
filtroComponente.instance['booleano'] = campo.obligatorio && !this.utilsService.validarCampoObligatorio(campo.valor);
|
|
170
|
+
filtroComponente.changeDetectorRef.detectChanges();
|
|
171
|
+
console.log(filtroComponente);
|
|
171
172
|
}
|
|
172
173
|
if (campo.obligatorio && !this.utilsService.validarCampoObligatorio(campo.valor)) {
|
|
173
174
|
validador = validador && false;
|
|
@@ -279,4 +280,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
|
|
|
279
280
|
}], isMensaje: [{
|
|
280
281
|
type: Input
|
|
281
282
|
}] } });
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXVsYXJpb2RpbmFtaWNvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9jb21wb25lbnRlcy9mb3JtdWxhcmlvZGluYW1pY28vZm9ybXVsYXJpb2RpbmFtaWNvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9jb21wb25lbnRlcy9mb3JtdWxhcmlvZGluYW1pY28vZm9ybXVsYXJpb2RpbmFtaWNvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsS0FBSyxFQUE4QixTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUF3QyxNQUFNLGVBQWUsQ0FBQztBQUV6SyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJbEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJB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QUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBRS9HLENBQUM7dUdBN1BVLDJCQUEyQjsyRkFBM0IsMkJBQTJCLHNQQUlULGdCQUFnQix5Q0FDL0IsYUFBYSxxRUNqQzdCLDh3YUEwUVUsaVZEblBJLFdBQVcsaXhCQUFFLGNBQWMsaTZDQUFFLGNBQWMsZ1pBQUUsbUJBQW1CLHFLQUFFLGVBQWUsd0hBQUUsaUJBQWlCLDZVQUFFLGFBQWEsc1hBQUUsY0FBYyw0cUNBQUUsY0FBYyw4Z0JBQUUsWUFBWSxnV0FBRSxpQkFBaUIsMHZCQUFFLGtCQUFrQiwrc0NBQUUsYUFBYSxvRUFBRSxXQUFXOzsyRkFLck8sMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNFLHFCQUFxQixXQUNwQixDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQyxjQUNuTyxJQUFJO3dJQU1ULE1BQU07c0JBQWQsS0FBSztnQkFFMkMsR0FBRztzQkFBbkQsU0FBUzt1QkFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ1YsTUFBTTtzQkFBMUMsWUFBWTt1QkFBQyxhQUFhO2dCQUNsQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkNoYW5nZXMsIElucHV0LCBPbkluaXQsIENvbXBvbmVudFJlZiwgVHlwZSwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgQWZ0ZXJWaWV3SW5pdCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FtcG9Gb3JtdWxhcmlvTW9kZWwgfSBmcm9tICcuL29iamV0b3Nmb3JtdWxhcmlvL0NhbXBvRm9ybXVsYXJpbyc7XG5pbXBvcnQgeyBIYXNoRGlyZWN0aXZlIH0gZnJvbSAnLi9vYmpldG9zZm9ybXVsYXJpby9IYXNoRGlyZWN0aXZlJztcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljaW9zL3V0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VuZXJhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2VydmljaW9zL2dlbmVyYWwuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2lvcy9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FtYmlvIH0gZnJvbSAnLi9vYmpldG9zZm9ybXVsYXJpby9DYW1iaW8nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDYWxlbmRhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xuaW1wb3J0IHsgQ2hlY2tib3hNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NoZWNrYm94JztcbmltcG9ydCB7IElucHV0VGV4dGFyZWFNb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0dGV4dGFyZWEnO1xuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL3JhZGlvYnV0dG9uJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xuaW1wb3J0IHsgRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2Ryb3Bkb3duJztcbmltcG9ydCB7IFBhc3N3b3JkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9wYXNzd29yZCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5wdXROdW1iZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0bnVtYmVyJztcbmltcG9ydCB7IEF1dG9Db21wbGV0ZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IFRhYmxlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm11bGFyaW8tZGluYW1pY28nLFxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgQ2FsZW5kYXJNb2R1bGUsIENoZWNrYm94TW9kdWxlLCBJbnB1dFRleHRhcmVhTW9kdWxlLCBJbnB1dFRleHRNb2R1bGUsIFJhZGlvQnV0dG9uTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBEcm9wZG93bk1vZHVsZSwgUGFzc3dvcmRNb2R1bGUsIENvbW1vbk1vZHVsZSwgSW5wdXROdW1iZXJNb2R1bGUsIEF1dG9Db21wbGV0ZU1vZHVsZSwgSGFzaERpcmVjdGl2ZSwgVGFibGVNb2R1bGVdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm11bGFyaW9kaW5hbWljby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm11bGFyaW9kaW5hbWljby5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZvcm11bGFyaW9kaW5hbWljb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBjYW1wb3M6IENhbXBvRm9ybXVsYXJpb01vZGVsW107XG4gIGxpc3RhU2lOb1JhZGlvQnV0dG9uOiBhbnlbXSA9IFt7IG5hbWU6ICdTaScsIGtleTogJ1MnIH0sIHsgbmFtZTogJ05vJywga2V5OiAnTicgfV07XG4gIEBWaWV3Q2hpbGQgKCdwb3B1cCcsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSB2Y3I6IFZpZXdDb250YWluZXJSZWY7XG4gIEBWaWV3Q2hpbGRyZW4oSGFzaERpcmVjdGl2ZSkgcHJpdmF0ZSBoYXNoZXM6IFF1ZXJ5TGlzdDxIYXNoRGlyZWN0aXZlPjtcbiAgQElucHV0KCkgZWRpdGFibGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG9iamV0bzogYW55O1xuICBASW5wdXQoKSBpc01lbnNhamU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHZhbGlkYW5kbzogYm9vbGVhbiA9IGZhbHNlOyAgXG4gIHZlck1lbnNhamVGdW5jaW9uOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBhdXRvWkluZGV4OiBzdHJpbmcgPSAndHJ1ZSc7XG4gIHB1YmxpYyBsaXN0YUNvbXBSZWY6IENvbXBvbmVudFJlZjxhbnk+W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXRpbHNTZXJ2aWNlOiBVdGlsc1NlcnZpY2UsIHByaXZhdGUgZ2VuZXJhbFNlcnZpY2U6IEdlbmVyYWxTZXJ2aWNlLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSkgeyB9XG5cbiAgbmdPbkNoYW5nZXMoKXtcbiAgIFxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIFxuICAgIHRoaXMudmVyTWVuc2FqZUZ1bmNpb24gPSBmYWxzZTtcbiAgICB0aGlzLmxpc3RhQ29tcFJlZiA9IFtdO1xuICAgIHRoaXMuY2FtcG9zLmZvckVhY2goY2FtcG8gPT4ge1xuICAgICAgaWYoY2FtcG8ubWVuc2FqZUZ1bmNpb24pe1xuICAgICAgICB0aGlzLnZlck1lbnNhamVGdW5jaW9uID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChjYW1wby50aXBvID09ICdQJyl7XG4gICAgICAgIGlmIChjYW1wby5wb3B1cENvbXBvbmVudCl7XG4gICAgICAgICAgdGhpcy5tb3N0cmFyUG9wdXBGb3JtdWxhcmlvKGNhbXBvKS50aGVuKGRhdGEgPT4ge30pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgICB0aGlzLmNhbXBvcy5zb3J0KChhLCBiKSA9PiBhLm9yZGVuIC0gYi5vcmRlbik7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgbW9kaWZpY2FyKG9iamV0bzogYW55LCBlZGl0YWJsZTogYm9vbGVhbikge1xuXHRcdHRoaXMubGltcGlhcigpO1xuXHRcdHRoaXMub2JqZXRvID0gb2JqZXRvO1xuXHRcdHRoaXMuZWRpdGFibGUgPSBlZGl0YWJsZTtcbiAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbXBvID0+IHtcbiAgICAgIGlmICghY2FtcG8uY2FyYWN0ZXJpc3RpY2Epe1xuICAgICAgICBmb3IgKGxldCBhdHJpYnV0byBpbiBvYmpldG8pIHtcbiAgICAgICAgICBsZXQgdmFsb3IgPSBvYmpldG9bYXRyaWJ1dG9dO1xuICAgICAgICAgIGlmIChhdHJpYnV0byA9PSBjYW1wby5jYW1wbyl7XG4gICAgICAgICAgICB0aGlzLmNhcmdhclZhbG9yKGNhbXBvLmNhbXBvLCB2YWxvciwgbnVsbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZihjYW1wby5jYW1wb0RlcGVuZGUhPSBudWxsKXtcblx0XHRcdFx0dGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wbzIgPT4ge1xuXHRcdFx0XHRcdGlmKGNhbXBvMi5jYW1wbyA9PSBjYW1wby5jYW1wb0RlcGVuZGUpe1xuXHRcdFx0XHRcdFx0Y2FtcG8yLmNhbXBvUmVmZXJlbmNpYSA9IGNhbXBvLnZhbG9yO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdH1cbiAgICB9KVxuICAgIFxuICAgIHRoaXMuY2FtcG9zLnNvcnQoKGEsIGIpID0+IGEub3JkZW4gLSBiLm9yZGVuKTtcblx0fVxuXG4gIG1vZGlmaWNhclZhbG9yQ2FtcG9zQWRpY2lvbmFsZXMob2JqZXRvOiBhbnksIGlkR3J1cG86IHN0cmluZykge1xuXHRcdHRoaXMub2JqZXRvID0gb2JqZXRvO1xuICAgIHRoaXMuY2FtcG9zLmZvckVhY2goY2FtcG8gPT4ge1xuICAgICAgaWYoaWRHcnVwbyA9PSBjYW1wby5pZEdydXBvUGVydGVuZWNlKSB7XG4gICAgICAgIGlmICghY2FtcG8uY2FyYWN0ZXJpc3RpY2Epe1xuICAgICAgICAgIGZvciAobGV0IGF0cmlidXRvIGluIG9iamV0bykge1xuICAgICAgICAgICAgbGV0IHZhbG9yID0gb2JqZXRvW2F0cmlidXRvXTtcbiAgICAgICAgICAgIGlmIChhdHJpYnV0byA9PSBjYW1wby5jYW1wbyl7XG4gICAgICAgICAgICAgIHRoaXMuY2FyZ2FyVmFsb3IoY2FtcG8uY2FtcG8sIHZhbG9yLCBudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYoY2FtcG8uY2FtcG9EZXBlbmRlIT0gbnVsbCl7XG4gICAgICAgICAgdGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wbzIgPT4ge1xuICAgICAgICAgICAgaWYoY2FtcG8yLmNhbXBvID09IGNhbXBvLmNhbXBvRGVwZW5kZSl7XG4gICAgICAgICAgICAgIGNhbXBvMi5jYW1wb1JlZmVyZW5jaWEgPSBjYW1wby52YWxvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBcbiAgICB9KVxuICAgIFxuICAgIHRoaXMuY2FtcG9zLnNvcnQoKGEsIGIpID0+IGEub3JkZW4gLSBiLm9yZGVuKTtcbiAgfVxuXG4gIGd1YXJkYXIoKXtcbiAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGRhdGEgPT4ge1xuICAgIH0pXG4gIH1cblxuICBzZXRWYWxvclBvcHVwKG9iamV0byl7XG4gIH1cblxuICBhc3luYyBsb2FkQ29tcG9uZW50RHluYW1pYzxUPihjYW1wbzogQ2FtcG9Gb3JtdWxhcmlvTW9kZWwsIGNvbXBvbmVudDogVHlwZTxUPiwgcHJvcHM6IFBhcnRpYWw8VD4pIHtcbiAgICB2YXIgY29udGFpbmVyID0gICB0aGlzLmdldENvbnRhaW5lckZvcihjYW1wby5wb3B1cClcbiAgICBjb250YWluZXIuY2xlYXIoKTtcbiAgICBjb25zdCBoYXNQcm9wczogYm9vbGVhbiA9ICEhT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aDtcbiAgICBjb25zdCBjb21wUmVmOiBDb21wb25lbnRSZWY8YW55PiA9IGNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoIGNvbXBvbmVudCApOyAvL0FuZ3VsYXIgMTNcbiAgICBcbiAgICBpZiAoaGFzUHJvcHMpIHtcbiAgICAgIGZvciAobGV0IGtleSBvZiBPYmplY3Qua2V5cyhwcm9wcykpIHtcbiAgICAgICAgY29tcFJlZi5pbnN0YW5jZVtrZXldID0gcHJvcHNba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgY29tcG9uZW50ZSA9IG5ldyBjYW1wby5wb3B1cENvbXBvbmVudCgpO1xuICAgIGlmKCdnZXREZXNjcmlwY2lvbkxsYXZlJyBpbiBjb21wb25lbnRlICl7XG4gICAgICBjb21wUmVmLmluc3RhbmNlWydsYWJlbCddID0gYXdhaXQgY29tcG9uZW50ZS5nZXREZXNjcmlwY2lvbkxsYXZlKHRoaXMuZ2VuZXJhbFNlcnZpY2UsIHRoaXMuYXV0aFNlcnZpY2UsIGNhbXBvLnZhbG9yLCBjYW1wbylcbiAgICB9XG4gICAgdGhpcy5saXN0YUNvbXBSZWYucHVzaChjb21wUmVmKTtcbiAgfVxuXG4gIGdldENvbnRhaW5lckZvcihuYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5oYXNoZXMuZmluZCh4ID0+IHguaGFzaCA9PT0gbmFtZSkudmNSZWY7XG4gIH1cblxuICBhc3luYyBtb3N0cmFyUG9wdXBGb3JtdWxhcmlvKGNhbXBvOiBDYW1wb0Zvcm11bGFyaW9Nb2RlbCl7XG4gICAgYXdhaXQgdGhpcy5sb2FkQ29tcG9uZW50RHluYW1pYyhjYW1wbywgY2FtcG8ucG9wdXBDb21wb25lbnQsIGNhbXBvLnByb3BpZWRhZGVzUG9wdXBDb21wb25lbnQpXG4gICAgICBcbiAgfVxuXG4gIHZhbGlkYXIoKTogYm9vbGVhbntcbiAgICB0aGlzLnZhbGlkYW5kbyA9IHRydWU7XG4gICAgdmFyIHZhbGlkYWRvciA9IHRydWU7XG4gICAgdGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICBpZiAoY2FtcG8udGlwbyA9PSAnUCcpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ2VudHJhIHRpcG8gcCcpO1xuICAgICAgICBjb25zb2xlLmxvZyhjYW1wbylcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5oYXNoZXMpXG4gICAgICAgIHZhciBjb250YWluZXIgPSAgIHRoaXMuZ2V0Q29udGFpbmVyRm9yKGNhbXBvLnBvcHVwKVxuICAgICAgICBjb25zb2xlLmxvZyhjb250YWluZXIpXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMubGlzdGFDb21wUmVmKVxuXG4gICAgICAgIGNvbnRhaW5lci5jbGVhcigpXG4gICAgICAgIGxldCBwcm9wcyA9IGNhbXBvLnByb3BpZWRhZGVzUG9wdXBDb21wb25lbnQ7XG4gICAgICAgIGNvbnN0IGhhc1Byb3BzOiBib29sZWFuID0gISFPYmplY3Qua2V5cyhwcm9wcykubGVuZ3RoO1xuICAgICAgICBjb25zdCBjb21wUmVmOiBDb21wb25lbnRSZWY8YW55PiA9IGNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoIGNhbXBvLnBvcHVwQ29tcG9uZW50ICk7IC8vQW5ndWxhciAxM1xuICAgICAgICBpZiAoaGFzUHJvcHMpIHtcbiAgICAgICAgICBmb3IgKGxldCBrZXkgb2YgT2JqZWN0LmtleXMocHJvcHMpKSB7XG4gICAgICAgICAgICBjb21wUmVmLmluc3RhbmNlW2tleV0gPSBwcm9wc1trZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhjb21wUmVmKVxuICAgICAgICBjb21wUmVmLmluc3RhbmNlWydib29sZWFubyddID0gY2FtcG8ub2JsaWdhdG9yaW8gJiYgIXRoaXMudXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKTtcbiAgICAgICAgY29uc29sZS5sb2coY29tcFJlZilcbiAgICAgIH1cbiAgICAgIGlmIChjYW1wby5vYmxpZ2F0b3JpbyAmJiAhdGhpcy51dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICApe1xuICAgICAgICB2YWxpZGFkb3IgPSB2YWxpZGFkb3IgJiYgZmFsc2U7XG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gdmFsaWRhZG9yO1xuICB9XG5cbiAgZ2V0T2JqZWN0bygpOiBhbnl7XG4gICAgdmFyIGNhbXBvczIgPSB0aGlzLmNhbXBvcy5maWx0ZXIoZGF0YSA9PiAhZGF0YS5jYXJhY3RlcmlzdGljYSk7XG4gICAgY2FtcG9zMi5mb3JFYWNoKGNhbXBvID0+IHtcbiAgICAgIHRoaXMub2JqZXRvW2NhbXBvLmNhbXBvXSA9IGNhbXBvLnZhbG9yO1xuICAgIH0pXG4gICAgcmV0dXJuIHRoaXMub2JqZXRvO1xuICB9XG5cbiAgY2FtcG9zQ2FyYWN0ZXJpc3RpY2FDbGVhcigpe1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jYW1wb3MubGVuZ3RoOyBpKyspe1xuICAgICAgaWYgKHRoaXMuY2FtcG9zW2ldLmNhcmFjdGVyaXN0aWNhKXtcbiAgICAgICAgdGhpcy5jYW1wb3Muc3BsaWNlKGksIDEpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY2FyZ2FyVmFsb3IoY2FtcG86IHN0cmluZywgdmFsb3I6IGFueSwgZGF0bzogYW55KSB7XG4gICAgdGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wb0YgPT4ge1xuICAgICAgaWYgKGNhbXBvRi5jYW1wbyA9PSBjYW1wbykge1xuICAgICAgICAvL2NhbXBvRi5jYXJnYXIodmFsb3IpO1xuICAgICAgICBjYW1wb0YudmFsb3IgPSB2YWxvcjtcbiAgICAgICAgY2FtcG9GLmRhdG8gPSBkYXRvO1xuICAgICAgfVxuXHRcdH0pXG5cdH1cbiAgXG4gIGdldENhbXBvc0NhcmFjdGVyaXN0aWNhKCkge1xuXHRcdHZhciBjYW1wb3NSZXR1cm46IENhbXBvRm9ybXVsYXJpb01vZGVsW10gPSBbXTtcblx0XHR0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbXBvID0+IHtcbiAgICAgIGlmIChjYW1wby5jYXJhY3RlcmlzdGljYSkge1xuICAgICAgICBjYW1wb3NSZXR1cm4ucHVzaChjYW1wbyk7XG4gICAgICB9XG5cdFx0fSlcblx0XHRyZXR1cm4gY2FtcG9zUmV0dXJuO1xuICB9XG5cbiAgb2J0ZW5lckNhbXBvKGNhbXBvOiBzdHJpbmcpe1xuICAgIHZhciByZXRvcm5vID0gbnVsbFxuICAgIHRoaXMuY2FtcG9zLmZvckVhY2goY2FtID0+IHtcbiAgICAgIGlmKGNhbS5jYW1wbyAhPSBudWxsICYmIGNhbS5jYW1wbyA9PSBjYW1wbyl7XG4gICAgICAgICAgcmV0b3JubyA9IGNhbTtcbiAgICAgIH1cbiAgICB9KVxuXHRcdHJldHVybiByZXRvcm5vO1xuXHR9XG5cbiAgbGltcGlhcigpIHtcbiAgICBpZiAodGhpcy5jYW1wb3MgIT0gbnVsbCAmJiB0aGlzLmNhbXBvcy5sZW5ndGggPiAwKXtcbiAgICAgIHRoaXMuY2FtcG9zLmZvckVhY2goY2FtcG8gPT4ge1xuICAgICAgICBjYW1wby52YWxvciA9IG51bGw7XG4gICAgICAgIGNhbXBvLnJlc2FsdGFkbyA9IGZhbHNlO1xuICAgICAgICBjYW1wby5tZW5zYWplRnVuY2lvbiA9IG51bGw7XG4gICAgICB9KVxuICAgIH1cbiAgfVxuICBcbiAgdmFsaWRhclZpc2liaWxpZGFkQ2FtcG9zKGNhbXBvOiBDYW1wb0Zvcm11bGFyaW9Nb2RlbCk6IGJvb2xlYW4ge1xuXG4gICAgaWYgKChjYW1wby50aXBvID09ICdOJyAmJiBjYW1wby5lZGl0YWJsZSA9PSAnTicpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBlZGl0YXJQZXJtaXNvQ2FtcG9zUG9ySWRHcnVwbyhpZEdydXBvOiBzdHJpbmcsIHBlcm1pc29DYW1wbzogc3RyaW5nKSB7XG4gICAgdGhpcy5jYW1wb3MuZm9yRWFjaChjYW1wbyA9PiB7XG4gICAgICBpZiAoaWRHcnVwbyAhPSBjYW1wby5pZEdydXBvUGVydGVuZWNlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjYW1wby5lZGl0YWJsZSA9IHBlcm1pc29DYW1wbztcbiAgICB9KVxuICB9XG5cbiAgZ2V0Q2FtYmlvcygpOiBDYW1iaW9bXSB7XG4gICAgY29uc3QgY2FtYmlvczogQ2FtYmlvW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGNhbXBvIG9mIHRoaXMuY2FtcG9zKSB7XG4gICAgICBpZiAoY2FtcG8uaXNDYW1iaW8oKSkge1xuICAgICAgICBjYW1iaW9zLnB1c2gobmV3IENhbWJpbyhjYW1wby5vcmlnaW5hbCwgY2FtcG8udmFsb3IsIGNhbXBvKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjYW1iaW9zO1xuICB9XG5cbiAgcmVtb3ZlckNhbXBvc0lkR3J1cG8oaWRHcnVwbzogc3RyaW5nKSB7XG4gICAgdmFyIGNhbXBvc1JlbW92ZXI6IENhbXBvRm9ybXVsYXJpb01vZGVsW10gPSBbXTtcbiAgICB0aGlzLmNhbXBvcy5mb3JFYWNoKGNhbXBvID0+IHtcbiAgICAgIGlmIChpZEdydXBvICE9IGNhbXBvLmlkR3J1cG9QZXJ0ZW5lY2UpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2FtcG9zUmVtb3Zlci5wdXNoKGNhbXBvKTtcbiAgICB9KVxuICAgIHRoaXMuY2FtcG9zID0gdGhpcy5jYW1wb3MuZmlsdGVyKG9iaiA9PiAhY2FtcG9zUmVtb3Zlci5zb21lKG9iakVsaW1pbmFyID0+IG9iakVsaW1pbmFyLmNhbXBvID09PSBvYmouY2FtcG8pKTtcblxuICB9XG5cbn1cbiIsIjxwLXRhYmxlIFt2YWx1ZV09XCJjYW1wb3NcIj5cbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtY2FtcG8+XG4gICAgPHRyICpuZ0lmPVwidmFsaWRhclZpc2liaWxpZGFkQ2FtcG9zKGNhbXBvKVwiPlxuICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDIwJTtcIj5cbiAgICAgICAgPGxhYmVsICpuZ0lmPVwiY2FtcG8uZWRpdGFibGUgIT0gJ04nXCIgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtjbGFzc109XCJjYW1wby50aXBvICA9PSAnSScgPyAnZm9udC1ib2xkIGNvbG9yLTQwMCBtdC03JyA6ICcnXCI+XG4gICAgICAgICAgICB7eyBjYW1wby5kZXNjcmlwY2lvbiB9fSBcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYW1wby5lZGl0YWJsZSAhPSAnTicgJiYgY2FtcG8ub2JsaWdhdG9yaW9cIj4qPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L3RkPlxuICAgICAgPHRkIHN0eWxlPVwid2lkdGg6IDgwJVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkIGdyaWRcIj5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJjYW1wby5heXVkYSAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTicgPyAnY29sLTExJyA6ICdjb2wtMTInXCI+XG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIEZFQ0hBLS0+XG4gICAgICAgIDxwLWNhbGVuZGFyXG4gICAgICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgZGF0ZUZvcm1hdD1cImRkL21tL3l5XCJcbiAgICAgICAgICBbdGFiSW5kZXhdPVwiY2FtcG8ub3JkZW4gKyAxXCJcbiAgICAgICAgICAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ0YnICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiXG4gICAgICAgICAgW3Nob3dJY29uXT1cInRydWVcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgID48L3AtY2FsZW5kYXI+XG5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gSE9SQS0tPlxuICAgICAgICA8cC1jYWxlbmRhclxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgW3RhYkluZGV4XT1cImNhbXBvLm9yZGVuICsgMVwiXG4gICAgICAgICAgKm5nSWY9XCJjYW1wby50aXBvID09ICdYJyAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIlxuICAgICAgICAgIFtzaG93VGltZV09XCJ0cnVlXCJcbiAgICAgICAgICBbc2hvd1NlY29uZHNdPVwidHJ1ZVwiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgID48L3AtY2FsZW5kYXI+XG5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gSE9SQSBWQUxPUi0tPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBwSW5wdXRUZXh0XG4gICAgICAgICAgdHlwZT1cInRpbWVcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgY2FtcG8uZWRpdGFibGUgPT0gJ0wnXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICBbdGFiSW5kZXhdPVwiY2FtcG8ub3JkZW4gKyAxXCJcbiAgICAgICAgICAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ1onICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgIC8+XG5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gVEVYVE8tLT5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgcElucHV0VGV4dFxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgY2FtcG8uZWRpdGFibGUgPT0gJ0wnXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICBbdGFiSW5kZXhdPVwiY2FtcG8ub3JkZW4gKyAxXCJcbiAgICAgICAgICAqbmdJZj1cImNhbXBvLnRpcG8gPT0gJ1QnICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1wiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgIC8+XG5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gQVJFQSBURVhUTy0tPlxuICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICBwSW5wdXRUZXh0YXJlYVxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY2FtcG8udmFsb3JcIlxuICAgICAgICAgIHJvd3M9XCI1XCJcbiAgICAgICAgICBjb2xzPVwiNVwiXG4gICAgICAgICAgW3RhYkluZGV4XT1cImNhbXBvLm9yZGVuICsgMVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnQScgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICBjbGFzcz1cInctZnVsbCBwLWlucHV0dGV4dGFyZWEgcC1pbnB1dHRleHQgcC1jb21wb25lbnQgcC1lbGVtZW50IG1pbi1oLTEwMCBtYXgtaC0yNTBcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICA+XG4gICAgICAgIDwvdGV4dGFyZWE+XG5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gTlVNRVJPLS0+XG4gICAgICAgIDxwLWlucHV0TnVtYmVyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY2FtcG8udmFsb3JcIlxuICAgICAgICAgIFt0YWJJbmRleF09XCJjYW1wby5vcmRlbiArIDFcIlxuICAgICAgICAgIFttYXhsZW5ndGhdPVwiY2FtcG8ubG9uZ2l0dWRcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnTicgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgW2NsYXNzLm5nLWludmFsaWRdPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3AtaW5wdXROdW1iZXI+XG5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gREVDSU1BTC0tPlxuICAgICAgICA8cC1pbnB1dE51bWJlclxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgY2FtcG8uZWRpdGFibGUgPT0gJ0wnXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICBtb2RlPVwiZGVjaW1hbFwiXG4gICAgICAgICAgW21pbkZyYWN0aW9uRGlnaXRzXT1cIjJcIlxuICAgICAgICAgICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnRCcgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgW2NsYXNzLm5nLWludmFsaWRdPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3AtaW5wdXROdW1iZXI+XG5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gU0VDUkVULS0+XG4gICAgICAgIDxwLXBhc3N3b3JkXG4gICAgICAgICAgW2ZlZWRiYWNrXT1cImZhbHNlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYW1wby52YWxvclwiXG4gICAgICAgICAgW3RhYkluZGV4XT1cImNhbXBvLm9yZGVuICsgMVwiXG4gICAgICAgICAgKm5nSWY9XCJjYW1wby50aXBvID09ICdTJyAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2xhc3MubmctaW52YWxpZF09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICA+PC9wLXBhc3N3b3JkPlxuXG4gICAgICAgIDwhLS1jYW1wbyB0aXBvIENPTUJPLS0+XG4gICAgICAgIDxwLWRyb3Bkb3duXG4gICAgICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgICAgW29wdGlvbnNdPVwiY2FtcG8ubGlzdGFcIlxuICAgICAgICAgIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgKm5nSWY9XCJjYW1wby50aXBvID09ICdDJyAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIlxuICAgICAgICAgIFtzaG93Q2xlYXJdPVwiIWNhbXBvLm9ibGlnYXRvcmlvXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgW2NsYXNzLm5nLWludmFsaWRdPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgPlxuICAgICAgICA8L3AtZHJvcGRvd24+XG5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gTE9HSUNPLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJjYW1wby50aXBvID09ICdMJyAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkIGdyaWRcIj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdmFsb3Igb2YgbGlzdGFTaU5vUmFkaW9CdXR0b25cIiBjbGFzcz1cIm10LTQgY29sLTEyIG1kOmNvbC0yIGZpZWxkLWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgPHAtcmFkaW9CdXR0b25cbiAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cInZhbG9yLmtleVwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwidmFsb3JcIlxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbG9yLmtleVwiXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwidmFsb3IubmFtZVwiXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgY2FtcG8uZWRpdGFibGUgPT0gJ0wnXCJcbiAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJjYW1wby5yZXNhbHRhZG8gPyAndmFyKC0tY29sb3ItNTAwKSAhaW1wb3J0YW50JyA6ICcnXCJcbiAgICAgICAgICBbcFRvb2x0aXBdPVwiY2FtcG8ubm92ZWRhZCA/IGNhbXBvLm5vdmVkYWQgOiBudWxsXCIgdG9vbHRpcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgICAgICBbY2xhc3MubmctZGlydHldPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgICAgICAgPjwvcC1yYWRpb0J1dHRvbj5cbiAgICAgICAgICAgICAgICA8bGFiZWw+ICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tY2FtcG8gdGlwbyBSQURJTy0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnUicgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBncmlkXCI+XG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHZhbG9yIG9mIGNhbXBvLmxpc3RhXCIgY2xhc3M9XCJtdC00IGNvbC0xMiBtZDpjb2wtMiBmaWVsZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICA8cC1yYWRpb0J1dHRvblxuICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cInZhbG9yLnZhbHVlXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwidmFsb3JcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWxvci52YWx1ZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInZhbG9yLmxhYmVsXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbXBvLnZhbG9yXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRhYmxlIHx8IGNhbXBvLmVkaXRhYmxlID09ICdMJ1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgICAgID48L3AtcmFkaW9CdXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tY2FtcG8gdGlwbyBDSEVDS0JPWC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY2FtcG8udGlwbyA9PSAnSCcgJiYgY2FtcG8uZWRpdGFibGUgIT0gJ04nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBncmlkXCI+XG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHZhbG9yIG9mIGNhbXBvLmxpc3RhXCIgY2xhc3M9XCJjb2wtMTIgbWQ6Y29sLTMgZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCJ2YWxvci52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInZhbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidmFsb3JcIlxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY2FtcG8udmFsb3JcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdGFibGUgfHwgY2FtcG8uZWRpdGFibGUgPT0gJ0wnXCJcbiAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiY2FtcG8ucmVzYWx0YWRvID8gJ3ZhcigtLWNvbG9yLTUwMCkgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImNhbXBvLm5vdmVkYWQgPyBjYW1wby5ub3ZlZGFkIDogbnVsbFwiIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgW2NsYXNzLm5nLWRpcnR5XT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLm5nLWludmFsaWRdPVwiY2FtcG8ub2JsaWdhdG9yaW8gPyAoIXV0aWxzU2VydmljZS52YWxpZGFyQ2FtcG9PYmxpZ2F0b3JpbyhjYW1wby52YWxvcikgJiYgdmFsaWRhbmRvKSA6IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvcC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwidmFsb3IudmFsdWVcIj57eyB2YWxvci5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tY2FtcG8gdGlwbyBBVVRPQ09NUExFVEFSLS0+XG4gICAgICAgIDxwLWF1dG9Db21wbGV0ZVxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAoY2FtcG8udGlwbyA9PSAnTycgfHwgY2FtcG8udGlwbyA9PSAnWScpICYmIGNhbXBvLmVkaXRhYmxlICE9ICdOJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0YWJsZSB8fCBjYW1wby5lZGl0YWJsZSA9PSAnTCdcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY2FtcG8udmFsb3JcIlxuICAgICAgICAgIFtzdWdnZXN0aW9uc109XCJjYW1wby5saXN0YUF1dG9jb21wbGV0ZUZpbHRyYWRhXCJcbiAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwiY2FtcG8uZmlsdHJhckF1dG9jb21wbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgICBmaWVsZD1cImxhYmVsXCJcbiAgICAgICAgICBbZHJvcGRvd25dPVwidHJ1ZVwiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImNhbXBvLnJlc2FsdGFkbyA/ICd2YXIoLS1jb2xvci01MDApICFpbXBvcnRhbnQnIDogJydcIlxuICAgICAgICAgIFtwVG9vbHRpcF09XCJjYW1wby5ub3ZlZGFkID8gY2FtcG8ubm92ZWRhZCA6IG51bGxcIiB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxuICAgICAgICAgIFtjbGFzcy5uZy1kaXJ0eV09XCJjYW1wby5vYmxpZ2F0b3JpbyA/ICghdXRpbHNTZXJ2aWNlLnZhbGlkYXJDYW1wb09ibGlnYXRvcmlvKGNhbXBvLnZhbG9yKSAmJiB2YWxpZGFuZG8pIDogZmFsc2VcIlxuICAgICAgICAgIFtjbGFzcy5uZy1pbnZhbGlkXT1cImNhbXBvLm9ibGlnYXRvcmlvID8gKCF1dGlsc1NlcnZpY2UudmFsaWRhckNhbXBvT2JsaWdhdG9yaW8oY2FtcG8udmFsb3IpICYmIHZhbGlkYW5kbykgOiBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXZhbG9yIHBUZW1wbGF0ZT1cIml0ZW1cIj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxkaXY+e3sgdmFsb3IubGFiZWwgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvcC1hdXRvQ29tcGxldGU+XG5cbiAgICAgICAgPCEtLWNhbXBvIHRpcG8gUE9QVVAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJjYW1wby50aXBvID09ICdQJyAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIiA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNhbXBvLmxpc3RhUG9wdXBzXCIgW2hhc2hdPVwiaXRlbVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInZlck1lbnNhamVGdW5jaW9uXCIgY2xhc3M9XCJ0ZXh0LWNlbnRlciB3LTFcIj5cbiAgICAgICAgICA8bGFiZWw+e3sgY2FtcG8ubWVuc2FqZUZ1bmNpb24gfX08L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImlzTWVuc2FqZVwiPlxuICAgICAgICAgIDxsYWJlbCAqbmdJZj1cImNhbXBvLm1lbnNhamVcIj57eyBjYW1wby5tZW5zYWplIH19PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJjYW1wby5heXVkYSAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIiBjbGFzcz1cImNvbC0xIGNvbnRlbmVkb3JcIiAgPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJ3LTFyZW1cIlxuICAgICAgICAgIHN0eWxlPVwiY29sb3I6IHZhcigtLWNvbG9yLTQwMClcIlxuICAgICAgICAgIHRvb2x0aXBTdHlsZUNsYXNzPVwidHctMjUwXCJcbiAgICAgICAgICBbaGlkZURlbGF5XT1cIjE4MDBcIlxuICAgICAgICAgIHBUb29sdGlwPVwie3sgY2FtcG8uYXl1ZGEgfX1cIlxuICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInRvcFwiXG4gICAgICAgICAgKm5nSWY9XCJjYW1wby5heXVkYSAmJiBjYW1wby5lZGl0YWJsZSAhPSAnTidcIlxuICAgICAgICAgID48aSBjbGFzcz1cInBpIHBpLXF1ZXN0aW9uLWNpcmNsZVwiPjwvaVxuICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3RkPlxuICAgIDwvdHI+XG4gIDwvbmctdGVtcGxhdGU+XG48L3AtdGFibGU+Il19
|
|
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==
|
|
@@ -9223,7 +9223,7 @@ class FormulariodinamicoComponent {
|
|
|
9223
9223
|
if ('getDescripcionLlave' in componente) {
|
|
9224
9224
|
compRef.instance['label'] = await componente.getDescripcionLlave(this.generalService, this.authService, campo.valor, campo);
|
|
9225
9225
|
}
|
|
9226
|
-
this.listaCompRef.push(compRef);
|
|
9226
|
+
this.listaCompRef.push({ value: compRef, label: campo.popup });
|
|
9227
9227
|
}
|
|
9228
9228
|
getContainerFor(name) {
|
|
9229
9229
|
return this.hashes.find(x => x.hash === name).vcRef;
|
|
@@ -9238,22 +9238,23 @@ class FormulariodinamicoComponent {
|
|
|
9238
9238
|
if (campo.tipo == 'P') {
|
|
9239
9239
|
console.log('entra tipo p');
|
|
9240
9240
|
console.log(campo);
|
|
9241
|
-
|
|
9242
|
-
var container = this.getContainerFor(campo.popup);
|
|
9243
|
-
console.log(container);
|
|
9241
|
+
//var container = this.getContainerFor(campo.popup)
|
|
9244
9242
|
console.log(this.listaCompRef);
|
|
9245
|
-
|
|
9243
|
+
var filtroComponente = this.listaCompRef.filter(data => data.label == campo.popup)[0].value;
|
|
9244
|
+
console.log(filtroComponente);
|
|
9245
|
+
/*container.clear()
|
|
9246
9246
|
let props = campo.propiedadesPopupComponent;
|
|
9247
|
-
const hasProps = !!Object.keys(props).length;
|
|
9248
|
-
const compRef = container.createComponent(campo.popupComponent); //Angular 13
|
|
9247
|
+
const hasProps: boolean = !!Object.keys(props).length;
|
|
9248
|
+
const compRef: ComponentRef<any> = container.createComponent( campo.popupComponent ); //Angular 13
|
|
9249
9249
|
if (hasProps) {
|
|
9250
|
-
|
|
9251
|
-
|
|
9252
|
-
|
|
9253
|
-
}
|
|
9254
|
-
console.log(compRef)
|
|
9255
|
-
|
|
9256
|
-
|
|
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);
|
|
9257
9258
|
}
|
|
9258
9259
|
if (campo.obligatorio && !this.utilsService.validarCampoObligatorio(campo.valor)) {
|
|
9259
9260
|
validador = validador && false;
|