ngx-histaff-alpha 2.7.8 → 2.7.9
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.
|
@@ -24,8 +24,8 @@ import * as i12 from "@angular/common";
|
|
|
24
24
|
import * as i13 from "@angular/forms";
|
|
25
25
|
export class NavigatorComponent {
|
|
26
26
|
geoCompute() {
|
|
27
|
-
this.scrollHeight = window.innerHeight - this.layoutService.headerHeight$.value - (this.wideMode ? (
|
|
28
|
-
this.secondaryNavHeight =
|
|
27
|
+
this.scrollHeight = window.innerHeight - this.layoutService.headerHeight$.value - (this.wideMode ? ((35 + 15) /* search*/ + (50 + this.layoutService.navigtorThinModeSpacing * 3) /* collapser */) : (50 + this.layoutService.navigtorThinModeSpacing * 3) /* collapser*/);
|
|
28
|
+
this.secondaryNavHeight = this.scrollHeight;
|
|
29
29
|
}
|
|
30
30
|
constructor(navigatorService, sysMenuService, recursiveService, router, menuService, organizationService, layoutService, mls, authService, alertService, appConfigService) {
|
|
31
31
|
this.navigatorService = navigatorService;
|
|
@@ -413,4 +413,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
413
413
|
}], rightIcon: [{
|
|
414
414
|
type: Input
|
|
415
415
|
}] } });
|
|
416
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9uYXZpZ2F0b3IvbmF2aWdhdG9yL25hdmlnYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvbmF2aWdhdG9yL25hdmlnYXRvci9uYXZpZ2F0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQUUsS0FBSyxFQUF5QyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQUUsZUFBZSxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFRaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUzVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdGQUFnRixDQUFDO0FBRTdILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBdUJsRixNQUFNLE9BQU8sa0JBQWtCO0lBdUM3QixVQUFV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QUM7SUFDaEQsQ0FBQztJQUVELHNCQUFzQixDQUFDLE1BQVc7UUFDaEMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQ1osTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQ3REO1NBQ0Y7SUFDSCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7SUFDakMsQ0FBQzs4R0E3Y1Usa0JBQWtCO2tHQUFsQixrQkFBa0IsdVNDaEQvQiw0MktBb0hNLGlsSkRoRkYsWUFBWSxrTEFDWixXQUFXLGtuQkFDWCxhQUFhLGdGQUNiLDJCQUEyQiwyRkFDM0IsYUFBYSxrREFDYixpQkFBaUIsc0RBQ2pCLGdCQUFnQjs7MkZBTVAsa0JBQWtCO2tCQWhCOUIsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxhQUFhO3dCQUNiLDJCQUEyQjt3QkFDM0IsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLGdCQUFnQjtxQkFDakIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTt1WEFJZCxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBTVosWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgVmlld0NoaWxkLCBJbnB1dCwgVGVtcGxhdGVSZWYsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgTmF2aWdhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRvci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3lzTWVudVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zeXMtbWVudS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVjdXJzaXZlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3JlY3Vyc2l2ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSVJpZ2h0SWNvbiB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvSVJpZ2h0SWNvbic7XHJcbmltcG9ydCB7IElOYXZpZ2F0b3JJdGVtIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9JTmF2aWdhdG9ySXRlbSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbWVudS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUZvcm1hdGVkUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL0lGb3JtYXRlZFJlc3BvbnNlJztcclxuXHJcbmltcG9ydCB7IE9yZ2FuaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vcmdhbml6YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9pdGVtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVMb2FkaW5nU3VyZmFjZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtbG9hZGluZy1zdXJmYWNlL2NvcmUtbG9hZGluZy1zdXJmYWNlL2NvcmUtbG9hZGluZy1zdXJmYWNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb3JlTGluZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtbGluZS9jb3JlLWxpbmUvY29yZS1saW5lLmNvbXBvbmVudCc7XHJcblxyXG5pbnRlcmZhY2UgSUZsYXROYXZpZ2F0aW9uQ2hlY2sge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgY291bnQ6IG51bWJlcjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlbGliLW5hdmlnYXRvcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIEl0ZW1Db21wb25lbnQsXHJcbiAgICBDb3JlTG9hZGluZ1N1cmZhY2VDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVQaXBlLFxyXG4gICAgQ29yZUxpbmVDb21wb25lbnQsXHJcbiAgICBUb29sdGlwRGlyZWN0aXZlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmF2aWdhdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9uYXZpZ2F0b3IuY29tcG9uZW50LnNjc3MnLCAnLi9zaWRlLWJhci5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5hdmlnYXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJtYWluTWVudVwiKSBtYWluTWVudSE6IEVsZW1lbnRSZWY7XHJcbiAgbGlzdGVuZXJGbiE6ICgpID0+IHZvaWQ7XHJcbiAgbGFuZyE6IHN0cmluZztcclxuXHJcbiAgaXRlbXMhOiBJTmF2aWdhdG9ySXRlbVtdO1xyXG5cclxuICBASW5wdXQoKSBsb2dvVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dCgpIHJpZ2h0UGFydEhlYWRlTWVudUl0ZW0hOiBJTmF2aWdhdG9ySXRlbTtcclxuICBASW5wdXQoKSByaWdodEljb24hOiBJUmlnaHRJY29uO1xyXG5cclxuICBsaW5lckl0ZW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SU5hdmlnYXRvckl0ZW1bXT4oW10pO1xyXG4gIGxpbmVySXRlbXM6IElOYXZpZ2F0b3JJdGVtW10gPSBbXTtcclxuXHJcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgZmxhdE5hdmlnYXRpb25DaGVjazogSUZsYXROYXZpZ2F0aW9uQ2hlY2tbXSA9IFtdO1xyXG4gIGl0ZW1zRXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGxlZnRiYXJSZWR1Y2VkITogYm9vbGVhbjtcclxuICBsZWZ0YmFyQ3VycmVudFdpZHRoITogbnVtYmVyO1xyXG4gIHNlY29uZGFyeU5hdlRvcCE6IG51bWJlcjtcclxuICBzZWNvbmRhcnlOYXZIZWlnaHQhOiBudW1iZXI7XHJcbiAgc2Vjb25kYXJ5TmF2V2lkdGg6IG51bWJlciA9IDI4MDtcclxuICBzZWNvbmRhcnlOYXZQYXJlbnQhOiBhbnk7XHJcbiAgc2Vjb25kYXJ5TmF2Q2hpbGRyZW46IGFueVtdID0gW107XHJcblxyXG4gIGxvYWRpbmchOiBib29sZWFuO1xyXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuICBzZWFyY2hGb3I6IHN0cmluZyA9ICcnO1xyXG4gIHNlYXJjaFN0cmVhbSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xyXG4gIG1lbnVDbGlja2VkSXRlbSEgOiBJTmF2aWdhdG9ySXRlbVxyXG4gIGNoZWNrZWRMb2FkaW5nTWVudTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHdpZGVNb2RlITogYm9vbGVhbjtcclxuICBzY3JvbGxIZWlnaHQhOiBudW1iZXI7XHJcblxyXG4gIHJlc2l6ZVN0cmVhbSQgPSBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJyk7XHJcbiAgbGVmdEJhcldpZGVXaWR0aCE6IG51bWJlcjtcclxuXHJcbiAgZ2VvQ29tcHV0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Nyb2xsSGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gdGhpcy5sYXlvdXRTZXJ2aWNlLmhlYWRlckhlaWdodCQudmFsdWUgLSAodGhpcy53aWRlTW9kZSA/ICg0MCArIHRoaXMubGF5b3V0U2VydmljZS5iYXNpY1NwYWNpbmcgKiAyKSA6ICh0aGlzLmxheW91dFNlcnZpY2UubmF2aWd0b3JUaGluTW9kZVNwYWNpbmcgKiAyKSApIC0gdGhpcy5sYXlvdXRTZXJ2aWNlLmJhc2ljU3BhY2luZyAqIDJcclxuICAgIHRoaXMuc2Vjb25kYXJ5TmF2SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gdGhpcy5sYXlvdXRTZXJ2aWNlLmhlYWRlckhlaWdodCQudmFsdWUgLSA2NjtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuYXZpZ2F0b3JTZXJ2aWNlOiBOYXZpZ2F0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzeXNNZW51U2VydmljZTogU3lzTWVudVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlY3Vyc2l2ZVNlcnZpY2U6IFJlY3Vyc2l2ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBtZW51U2VydmljZTogTWVudVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG9yZ2FuaXphdGlvblNlcnZpY2U6IE9yZ2FuaXphdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcclxuICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSxcclxuICApIHtcclxuICAgIHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSh4ID0+IHRoaXMubGFuZyA9IHgpO1xyXG4gICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmxlZnRCYXJXaWRlV2lkdGgkLnN1YnNjcmliZSh4ID0+IHRoaXMubGVmdEJhcldpZGVXaWR0aCA9IHgpXHJcbiAgICB0aGlzLmxheW91dFNlcnZpY2UuaGVhZGVySGVpZ2h0JC5zdWJzY3JpYmUoeCA9PiB0aGlzLnNlY29uZGFyeU5hdlRvcCA9IHgpO1xyXG5cclxuICAgIHRoaXMubmF2aWdhdG9yU2VydmljZS53aWRlTW9kZSQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICB0aGlzLndpZGVNb2RlID0geDtcclxuICAgICAgdGhpcy5nZW9Db21wdXRlKCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5sZWZ0QmFyQ3VycmVudFdpZHRoJC5uZXh0KCEheCA/IHRoaXMubGVmdEJhcldpZGVXaWR0aCA6IHRoaXMubGF5b3V0U2VydmljZS5sZWZ0QmFyVGhpbldpZHRoKTtcclxuICAgICAgfSlcclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZXNpemVTdHJlYW0kLnBpcGUoXHJcbiAgICAgIGRlYm91bmNlVGltZSg1MDApXHJcbiAgICApLnN1YnNjcmliZShfID0+IHtcclxuICAgICAgdGhpcy5nZW9Db21wdXRlKCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgdGhpcy5tZW51Q2xpY2tlZEl0ZW0gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtZW51Q3VycmVudENsaWNrZWQnKSEpXHJcbiAgICBpZighIXRoaXMubWVudUNsaWNrZWRJdGVtKXtcclxuICAgICAgdGhpcy5tZW51Q2xpY2tlZEl0ZW0udHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5saW5lckl0ZW1zJC5zdWJzY3JpYmUoeCA9PiB7XHJcblxyXG4gICAgICAgICAgaWYoISF4ICYmIHgubGVuZ3RoID4gMCAmJiB0aGlzLmNoZWNrZWRMb2FkaW5nTWVudSA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgIGxldCBhcnJheSA6IElOYXZpZ2F0b3JJdGVtW10gPSBbXTtcclxuICAgICAgICAgICAgbGV0IGFycmF5UGFycmVudCA6IElOYXZpZ2F0b3JJdGVtW10gPSBbXTtcclxuICAgICAgICAgICAgaWYodGhpcy5tZW51Q2xpY2tlZEl0ZW0/LnRyZWUkVGllciA9PSAyKXtcclxuICAgICAgICAgICAgICBhcnJheSA9IHguZmlsdGVyKHkgPT4geS5pZCA9PSB0aGlzLm1lbnVDbGlja2VkSXRlbS5pZClcclxuICAgICAgICAgICAgICBhcnJheVBhcnJlbnQgPSB4LmZpbHRlcih5ID0+IHkuaWQgPT0gdGhpcy5tZW51Q2xpY2tlZEl0ZW0udHJlZSRQYXJlbnQpXHJcbiAgICAgICAgICAgICAgYXJyYXlbMF0udHJlZSRTZWxlY3RlZCA9dHJ1ZVxyXG4gICAgICAgICAgICAgIGlmKHRoaXMubWVudUNsaWNrZWRJdGVtLnRyZWUkQ2hpbGRyZW4ubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgICAgICBhcnJheVswXS50cmVlJEV4cGFuZGVkID0gdHJ1ZVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBhcnJheVBhcnJlbnRbMF0udHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgYXJyYXlQYXJyZW50WzBdLnRyZWUkRXhwYW5kZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGxldCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW4tbWVudS0nICsgYXJyYXlQYXJyZW50WzBdLmlkKVxyXG4gICAgICAgICAgICAgIGxldCBlbGVtZW50MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluLW1lbnUtJyArIGFycmF5WzBdLmlkKVxyXG4gICAgICAgICAgICAgIGlmIChhcnJheVBhcnJlbnRbMF0udHJlZSRFeHBhbmRlZCkge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudD8uY2xhc3NMaXN0LmFkZCgnZXhwYW5kZWQnKVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goZWxzID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYoZWxzLmlkID09IGFycmF5UGFycmVudFswXS5pZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzLnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGVscy50cmVlJEV4cGFuZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBpZihlbHMudHJlZSRDaGlsZHJlbi5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgIGVscy50cmVlJENoaWxkcmVuLm1hcCh4ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoeC5pZCA9PSB0aGlzLm1lbnVDbGlja2VkSXRlbS5pZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeC50cmVlJFNlbGVjdGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudD8uY2xhc3NMaXN0LnJlbW92ZSgnZXhwYW5kZWQnKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoYXJyYXlQYXJyZW50WzBdLnRyZWUkQWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Py5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Py5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKVxyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgaWYoYXJyYXlbMF0udHJlZSRFeHBhbmRlZCl7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Mj8uY2xhc3NMaXN0LmFkZCgnZXhwYW5kZWQnKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5tYXAoZWxzID0+IHtcclxuICAgICAgICAgICAgICAgICAgZWxzLnRyZWUkQ2hpbGRyZW4ubWFwKGVsID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZihlbC5pZCA9PSBhcnJheVswXS5pZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICBlbC50cmVlJFNlbGVjdGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMucm91dGVyLnVybCA9PSBlbC51cmwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgZWwudHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfWVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudDI/LmNsYXNzTGlzdC5yZW1vdmUoJ2V4cGFuZGVkJylcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIGVsc2UgaWYodGhpcy5tZW51Q2xpY2tlZEl0ZW0/LnRyZWUkVGllciA9PSAzKXsgLy9u4bq/dSBsw6AgMyBj4bqlcFxyXG4gICAgICAgICAgICAgIGFycmF5ID0geC5maWx0ZXIoeSA9PiB5LmlkID09IHRoaXMubWVudUNsaWNrZWRJdGVtLmlkKVxyXG4gICAgICAgICAgICAgIGFycmF5UGFycmVudCA9IHguZmlsdGVyKHkgPT4geS5pZCA9PSB0aGlzLm1lbnVDbGlja2VkSXRlbS50cmVlJFBhcmVudClcclxuICAgICAgICAgICAgICBsZXQgYXJyYXlHcmFuZFBhcnJlbnQgPSB4LmZpbHRlcih6ID0+IHouaWQgPT0gYXJyYXlQYXJyZW50WzBdLnBhcmVudClcclxuICAgICAgICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluLW1lbnUtJyArIGFycmF5UGFycmVudFswXS5pZClcclxuICAgICAgICAgICAgICBsZXQgZWxlbWVudDIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbi1tZW51LScgKyBhcnJheUdyYW5kUGFycmVudFswXS5pZClcclxuICAgICAgICAgICAgICBhcnJheVswXS50cmVlJFNlbGVjdGVkID10cnVlXHJcbiAgICAgICAgICAgICAgYXJyYXlQYXJyZW50WzBdLnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGFycmF5UGFycmVudFswXS50cmVlJEV4cGFuZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBhcnJheUdyYW5kUGFycmVudFswXS50cmVlJFNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBhcnJheUdyYW5kUGFycmVudFswXS50cmVlJEV4cGFuZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICBpZiAoYXJyYXlHcmFuZFBhcnJlbnRbMF0udHJlZSRFeHBhbmRlZCkge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudDI/LmNsYXNzTGlzdC5hZGQoJ2V4cGFuZGVkJylcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKGVscyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmKGVscy5pZCA9PSBhcnJheUdyYW5kUGFycmVudFswXS5pZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzLnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGVscy50cmVlJEV4cGFuZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQyPy5jbGFzc0xpc3QucmVtb3ZlKCdleHBhbmRlZCcpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChhcnJheUdyYW5kUGFycmVudFswXS50cmVlJEFjdGl2ZSkge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudDI/LmNsYXNzTGlzdC5hZGQoJ2FjdGl2ZScpXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQyPy5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICBpZiAoYXJyYXlQYXJyZW50WzBdLnRyZWUkRXhwYW5kZWQpIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ2V4cGFuZGVkJylcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKGVscyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmKGVscy5pZCA9PSBhcnJheUdyYW5kUGFycmVudFswXS5pZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzLnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGVscy50cmVlJEV4cGFuZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBpZihlbHMudHJlZSRDaGlsZHJlbi5sZW5ndGggPiAwKXtcclxuICAgICAgICAgICAgICAgICAgICAgIGVscy50cmVlJENoaWxkcmVuLm1hcCh4ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoeC5pZCA9PSBhcnJheVBhcnJlbnRbMF0uaWQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHgudHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeC50cmVlJEV4cGFuZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZih4LnRyZWUkQ2hpbGRyZW4ubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgeC50cmVlJENoaWxkcmVuLm1hcCh5ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHkuaWQgPT0gYXJyYXlbMF0uaWQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5LnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudD8uY2xhc3NMaXN0LnJlbW92ZSgnZXhwYW5kZWQnKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoYXJyYXlQYXJyZW50WzBdLnRyZWUkQWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Py5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Py5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKVxyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuY2hlY2tlZExvYWRpbmdNZW51ID0gdHJ1ZVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgIH0sMjAwMClcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgdGhpcy5nZW9Db21wdXRlKCk7XHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UubGVmdGJhclJlZHVjZWQkLnN1YnNjcmliZSh4ID0+IHRoaXMubGVmdGJhclJlZHVjZWQgPSB4KVxyXG4gICAgICApXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5sZWZ0QmFyQ3VycmVudFdpZHRoJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmxlZnRiYXJDdXJyZW50V2lkdGggPSB4KVxyXG4gICAgICApXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSh4ID0+IHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLm1scy50cmFucygnVUlfQ09NTU9OX1BMQUNFX0hPTERFUl9TRUFSQ0hfSEVSRScpKVxyXG4gICAgICApXHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLnNlYXJjaFN0cmVhbSRcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoNTAwKSxcclxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgICAgc3dpdGNoTWFwKCh0ZXh0KSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3N3aXRjaE1hcCB3b3JrcyA9PT09PT09PT09PT09PT09PT09PT09PT09PScpO1xyXG4gICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubmF2aWdhdG9yU2VydmljZS5maW5kSXRlbSh0ZXh0LCB0aGlzLml0ZW1zKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICApO1xyXG5cclxuICAgICAgdGhpcy5pdGVtcz8ubWFwKChpdGVtOiBJTmF2aWdhdG9ySXRlbSkgPT4ge1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGVOYXZpZ2F0aW9uSXRlbShpdGVtKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAoISF0aGlzLml0ZW1zRXJyb3JzLmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnNvbGUuZ3JvdXAoXCJOYXZpZ2F0aW9uIGl0ZW1zIGVycm9yXCIpO1xyXG4gICAgICAgIHRoaXMuaXRlbXNFcnJvcnM/Lm1hcChlcnJvciA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcblxyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQucGlwZShcclxuICAgICAgICAgIGZpbHRlcih4ID0+ICEheCksXHJcbiAgICAgICAgICBtYXAoeCA9PiB4Py5pZCksXHJcbiAgICAgICAgICBzd2l0Y2hNYXAoeCA9PiB0aGlzLnN5c01lbnVTZXJ2aWNlLnJlYWRQZXJtaXR0ZWRNZW51KHghLCB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQVBQX1RZUEUpKVxyXG4gICAgICAgICkuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgaWYgKHgub2sgJiYgeC5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICBjb25zdCBib2R5OiBJRm9ybWF0ZWRSZXNwb25zZSA9IHguYm9keTtcclxuICAgICAgICAgICAgYm9keS5pbm5lckJvZHkuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAvLyBpbiByZWN1cnNpdmUgY29kZSB3ZSB3aWxsIHJlYWQgZnJvbSBib3R0b20gdG8gdG9wXHJcbiAgICAgICAgICAgICAgaWYgKGEub3JkZXJOdW1iZXIgPiBiLm9yZGVyTnVtYmVyKSByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgICAgaWYgKGEub3JkZXJOdW1iZXIgPT09IGIub3JkZXJOdW1iZXIpIHJldHVybiAwO1xyXG4gICAgICAgICAgICAgIGlmIChhLm9yZGVyTnVtYmVyIDwgYi5vcmRlck51bWJlcikgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIHRoaXMubGluZXJJdGVtcyQubmV4dChKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGJvZHkuaW5uZXJCb2R5KSkpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcblxyXG4gICAgICAgICAgICAgIHRoaXMucmVjdXJzaXZlU2VydmljZS5saW5lckFycmF5VG9OZXN0ZWRBcnJheShcclxuICAgICAgICAgICAgICAgIGJvZHkuaW5uZXJCb2R5LFxyXG4gICAgICAgICAgICAgICAgXCJpZFwiLFxyXG4gICAgICAgICAgICAgICAgXCJjb2RlXCIsXHJcbiAgICAgICAgICAgICAgICBcInBhcmVudFwiLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5vcmdhbml6YXRpb25TZXJ2aWNlLnN0YXR1cyQudmFsdWUsXHJcbiAgICAgICAgICAgICAgICBcIm9yZGVyTnVtXCJcclxuICAgICAgICAgICAgICApLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiclwiLCByKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHIubGlzdDtcclxuICAgICAgICAgICAgICAgIHRoaXMubGluZXJJdGVtcyA9IHIucmF3TGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoYS5vcmRlck51bWJlciA+IGIub3JkZXJOdW1iZXIpIHJldHVybiAxO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoYS5vcmRlck51bWJlciA9PT0gYi5vcmRlck51bWJlcikgcmV0dXJuIDA7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChhLm9yZGVyTnVtYmVyIDwgYi5vcmRlck51bWJlcikgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVTZXJ2aWNlLm5hdmlnYXRpb24kLm5leHQoci5saXN0KTtcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmNsaWNrZWRJdGVtJC5waXBlKFxyXG4gICAgICAgICAgZmlsdGVyKHggPT4gISF4KVxyXG4gICAgICAgICkuc3Vic2NyaWJlKHggPT4ge1xyXG5cclxuICAgICAgICAgIHRoaXMub25JdGVtQ2xpY2soeCEpO1xyXG4gICAgICAgICAgaWYgKHg/LnRyZWUkQ2hpbGRyZW4gJiYgeD8udHJlZSRDaGlsZHJlbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZighIXRoaXMuaXRlbXMpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBsZXQgaXRlbUFjdGl2YXRlZCA9IHRoaXMuaXRlbXMuZmlsdGVyKHkgPT4geSAhPT0geCAmJiB5LmlkICE9PSB4LnRyZWUkUGFyZW50ICYmIHkudHJlZSRTZWxlY3RlZCA9PSB0cnVlKVxyXG4gICAgICAgICAgICAgIGl0ZW1BY3RpdmF0ZWQ/Lm1hcCh6ID0+IHoudHJlZSRTZWxlY3RlZCA9IGZhbHNlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKCEheCAmJiAhIXgucGFyZW50KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pdGVtcy5tYXAocGFyZW50ID0+IHtcclxuICAgICAgICAgICAgICAgIHBhcmVudC50cmVlJENoaWxkcmVuLm1hcChjaGlsZCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC50cmVlJENoaWxkcmVuLmxlbmd0aCA9PSAwICYmIGNoaWxkICE9IHgpIHtcclxuICAgICAgICAgICAgICAgICAgICBjaGlsZC50cmVlJFNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKGNoaWxkLnRyZWUkQ2hpbGRyZW4ubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQudHJlZSRDaGlsZHJlbi5tYXAoayA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZihjaGlsZC5pZCAhPSBrLnBhcmVudCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLnRyZWUkU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNoaWxkICE9IHggJiYgeC5wYXJlbnQgIT0gY2hpbGQuaWQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmKHguaWQgPT0gKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLnRyZWUkU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYgKHgucGFyZW50ID09IGNoaWxkLmlkKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZC50cmVlJFNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBrLnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy5zZWNvbmRhcnlOYXZQYXJlbnQgPSB4ITtcclxuICAgICAgICAgIHRoaXMuc2Vjb25kYXJ5TmF2Q2hpbGRyZW4gPSB0aGlzLmxpbmVySXRlbXMuZmlsdGVyKGEgPT4gYS5wYXJlbnQgPT09IHg/LmlkKTtcclxuXHJcblxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMubGluZXJJdGVtcyQuc3Vic2NyaWJlKGl0ZW1zID0+IHtcclxuICAgICAgICAgIGl0ZW1zPy5tYXAoeCA9PiB7XHJcbiAgICAgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW4tbWVudS0nICsgeC5pZClcclxuICAgICAgICAgICAgaWYgKHgudHJlZSRFeHBhbmRlZCkge1xyXG4gICAgICAgICAgICAgIGVsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ2V4cGFuZGVkJylcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBlbGVtZW50Py5jbGFzc0xpc3QucmVtb3ZlKCdleHBhbmRlZCcpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHgudHJlZSRBY3RpdmUpIHtcclxuICAgICAgICAgICAgICBlbGVtZW50Py5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGVsZW1lbnQ/LmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICB9KVxyXG5cclxuICB9XHJcblxyXG4gIG9uU2VhcmNoQ2hhbmdlKGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWFyY2hTdHJlYW0kLm5leHQoZSlcclxuICB9XHJcblxyXG4gIGNsZWFyU2VhcmNoKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hGb3IgPSBcIlwiO1xyXG4gICAgdGhpcy5zZWFyY2hTdHJlYW0kLm5leHQoXCJcIik7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZU5hdmlnYXRpb25JdGVtKGl0ZW06IElOYXZpZ2F0b3JJdGVtKSB7XHJcbiAgICBpZiAoISEhaXRlbS5pZCkge1xyXG4gICAgICB0aGlzLml0ZW1zRXJyb3JzLnB1c2goYFZhbHVlIG9mIHByb3BlcnR5IFwiaWRcIiBvZiBuYXZpZ2F0aW9uIGl0ZW0gXCIke2l0ZW0uY29kZX1cIiBpcyBub3Qgc2V0YCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmZsYXROYXZpZ2F0aW9uQ2hlY2suZmlsdGVyKHggPT4geC5pZCA9PT0gaXRlbS5pZCk7XHJcbiAgICBpZiAoZmlsdGVyLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmZsYXROYXZpZ2F0aW9uQ2hlY2sucHVzaCh7XHJcbiAgICAgICAgaWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgY291bnQ6IDAsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pdGVtc0Vycm9ycy5wdXNoKGBEdXBsaWNhdGVkIE5hdmlnYXRpb24gaWQgJHtpdGVtLmlkfWApO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5oYXNDaGlsZHJlbihpdGVtKSkge1xyXG4gICAgICBpdGVtLnRyZWUkQ2hpbGRyZW4/Lm1hcChjaGlsZCA9PiB7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZU5hdmlnYXRpb25JdGVtKGNoaWxkKTtcclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBoYXNDaGlsZHJlbihpdGVtOiBJTmF2aWdhdG9ySXRlbSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlc3VsdCA9IGZhbHNlO1xyXG4gICAgT2JqZWN0LmtleXMoaXRlbSkuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICBpZiAoa2V5ID09PSBcInRyZWUkQ2hpbGRyZW5cIikge1xyXG4gICAgICAgIGlmICghIWl0ZW1bJ3RyZWUkQ2hpbGRyZW4nXT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXN1bHQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgaXRlbUhhc0NoaWxkcmVuKGl0ZW06IElOYXZpZ2F0b3JJdGVtKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBPYmplY3Qua2V5cyhpdGVtKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIGlmIChrZXkgPT09ICd0cmVlJENoaWxkcmVuJykge1xyXG4gICAgICAgIGlmICghIWl0ZW1bJ3RyZWUkQ2hpbGRyZW4nXT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXN1bHQgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIG9uSXRlbUNsaWNrKGl0ZW06IElOYXZpZ2F0b3JJdGVtKSB7XHJcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5saW5lckl0ZW1zJC52YWx1ZTtcclxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLnNlZnRUb2dnbGVFeHBhbmRTaWJsaW5nc0NvbGxhcHNlKGN1cnJlbnQsIGl0ZW0uaWQpO1xyXG4gICAgdGhpcy5saW5lckl0ZW1zJC5uZXh0KGl0ZW1zKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLm1hcCh4ID0+IHtcclxuICAgICAgaWYgKHgpIHgudW5zdWJzY3JpYmUoKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB0b2dnbGVDb2xsYXBzZSgpOiB2b2lkIHtcclxuICAgIHRoaXMubmF2aWdhdG9yU2VydmljZS53aWRlTW9kZSQubmV4dCghdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLndpZGVNb2RlJC52YWx1ZSlcclxuICB9XHJcblxyXG4gIG9uU2Vjb25kYXJ5SXRlbUNsaWNrKGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmNsaWNrZWRJdGVtJC5uZXh0KGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgb25TZWNvbmRhcnlIZWFkZXJDbGljayhwYXJlbnQ6IGFueSkge1xyXG4gICAgaWYgKCEhcGFyZW50KSB7XHJcbiAgICAgIGNvbnN0IHRyeUZpbHRlciA9IHRoaXMubGluZXJJdGVtcy5maWx0ZXIoeCA9PiB4LmlkID09PSBwYXJlbnQpO1xyXG4gICAgICBpZiAoISF0cnlGaWx0ZXIubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmNsaWNrZWRJdGVtJC5uZXh0KHRyeUZpbHRlclswXSlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DYW5jZWxTZWNvbmRhcnlNZW51KCkge1xyXG4gICAgdGhpcy5zZWNvbmRhcnlOYXZQYXJlbnQgPSBudWxsO1xyXG4gIH1cclxuXHJcbn0iLCI8ZGl2IGNsYXNzPVwibmF2aWdhdG9yLWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cIntcclxuICAgIHdpZHRoOiBsZWZ0YmFyQ3VycmVudFdpZHRoICsgJ3B4J1xyXG59XCI+XHJcbiAgICBAaWYgKHdpZGVNb2RlKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtc2VhcmNoLWNvbnRhaW5lclwiIFtjbGFzcy5vcGFjaXR5MF09XCIhIWxlZnRiYXJSZWR1Y2VkXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgIHdpZHRoOiBsYXlvdXRTZXJ2aWNlLmxlZnRCYXJDdXJyZW50V2lkdGgkLnZhbHVlIC0gbGF5b3V0U2VydmljZS5sZWZ0QmFyU2Vjb25kSWNvbkxlZnQgLSBsYXlvdXRTZXJ2aWNlLnNjcm9sbEJhcldpZHRoIC0gMSArICdweCdcclxuICAgIH1cIj5cclxuICAgICAgICA8aW5wdXQgaWQ9XCJuYXZpZ2F0b3Itc2VhcmNoXCIgW3BsYWNlaG9sZGVyXT1cIidVSV9DT01NT05fUExBQ0VfSE9MREVSX1NFQVJDSF9IRVJFJyB8IHRyYW5zbGF0ZTogbGFuZ1wiIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hGb3JcIiAobmdNb2RlbENoYW5nZSk9XCJvblNlYXJjaENoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgQGlmICghIXNlYXJjaEZvci5sZW5ndGgpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWNsZWFyLXdyYXBwZXJcIiAoY2xpY2spPVwiY2xlYXJTZWFyY2goKVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXIteFwiPjwvaT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuXHJcbiAgICA8ZGl2IGlkPVwibmF2XCIgW2NsYXNzLnNpZGViYXJdPVwiIXdpZGVNb2RlXCI+XHJcbiAgICAgICAgQGlmICghIWxvYWRpbmcpIHtcclxuICAgICAgICA8Y29yZS1sb2FkaW5nLXN1cmZhY2U+PC9jb3JlLWxvYWRpbmctc3VyZmFjZT5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIDx1bCBpZD1cIm1haW4tbWVudVwiICNtYWluTWVudSBbc3R5bGVdPVwiJ2hlaWdodDogJyArIHNjcm9sbEhlaWdodCArICdweDsnXCIgW2NsYXNzLnRoaW4tbW9kZV09XCIhd2lkZU1vZGVcIlxyXG4gICAgICAgICAgICBbY2xhc3MubWVudV09XCIhd2lkZU1vZGVcIj5cclxuICAgICAgICAgICAgQGlmICghIWl0ZW1zPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgQGZvcihpdGVtIG9mIGl0ZW1zOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgPGFwcC1pdGVtIFtpdGVtXT1cIml0ZW1cIiBbbGV2ZWxdPVwiMVwiPjwvYXBwLWl0ZW0+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGlmICghIXJpZ2h0SWNvbikge1xyXG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJwYXJlbnQgcmlnaHQtcGFydC1pdGVtXCIgW2NsYXNzLm1lbnUtaXRlbV09XCJ3aWRlTW9kZVwiPlxyXG4gICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInJpZ2h0SWNvbi5mdW5jdGlvbigpXCIgY2xhc3M9XCJuby12ZXJ0aWNhbC1wYWRkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWljb24td3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ3JpZ2h0LWljb24gJyArIHJpZ2h0SWNvbi5mZWF0aGVyQ2xhc3NcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1pY29uLWJhZGdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyByaWdodEljb24uYmFkZ2VDb3VudCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICA8L3VsPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFwc2UtdG9nZ2xlclwiIFtjbGFzcy5kLW5vbmVdPVwiIWxheW91dFNlcnZpY2UubGVmdGJhck9wZW4kLnZhbHVlXCJcclxuICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwid2lkZU1vZGUgPyAoJ1VJX0xFRlRCQVJfVE9HR0xFUl9DT0xMQVBTRScgfCB0cmFuc2xhdGUgOiBsYW5nKSA6ICgnVUlfTEVGVEJBUl9UT0dHTEVSX0VYUEFORCcgfCB0cmFuc2xhdGU6IGxhbmcpXCJcclxuICAgICAgICAgICAgW3Nob3dBbnl3YXldPVwidHJ1ZVwiIHBvc2l0aW9uPVwiYWJvdmVcIiAoY2xpY2spPVwidG9nZ2xlQ29sbGFwc2UoKVwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBsYXlvdXRTZXJ2aWNlLmxlZnRCYXJDdXJyZW50V2lkdGgkLnZhbHVlIC0gOCAqIDIgKyAncHgnXHJcbiAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlLXRvZ2dsZXItaW5uZXJcIiBbY2xhc3MudGhpbi1tb2RlXT1cIiF3aWRlTW9kZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvcmUtbGluZS13cmFwcGVyXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBsYXlvdXRTZXJ2aWNlLmxlZnRCYXJDdXJyZW50V2lkdGgkLnZhbHVlIC0gOCAqIDIgKyAncHgnXHJcbiAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNvcmUtbGluZT48L2NvcmUtbGluZT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAod2lkZU1vZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXItY2hldnJvbnMtbGVmdFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXItY2hldnJvbnMtcmlnaHRcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgQGlmICh3aWRlTW9kZSkge1xyXG4gICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ1VJX0xFRlRCQVJfVE9HR0xFUl9DT0xMQVBTRScgfCB0cmFuc2xhdGU6IGxhbmcgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZiAoIXdpZGVNb2RlICYmICEhc2Vjb25kYXJ5TmF2UGFyZW50ICYmICEhc2Vjb25kYXJ5TmF2Q2hpbGRyZW4ubGVuZ3RoKSB7XHJcbiAgICA8ZGl2ICNzZWNvbmRhcnkgaWQ9XCJzZWNvbmRhcnktbmF2XCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgIHdpZHRoOiBzZWNvbmRhcnlOYXZXaWR0aCArICdweCcsXHJcbiAgICAgICAgdG9wOiBzZWNvbmRhcnlOYXZUb3AgKyAxNSArICdweCcsXHJcbiAgICAgICAgbGVmdDogbGF5b3V0U2VydmljZS5sZWZ0QmFyVGhpbldpZHRoICsgMTUgKyAncHgnXHJcbiAgICB9XCI+XHJcbiAgICAgICAgPGRpdiBpZD1cInNlY29uZGFyeS1uYXYtaW5uZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBpZD1cInNlY29uZGFyeS1uYXYtaGVhZGVyXCIgW2NsYXNzLmN1cnNvci1wb2ludGVyXT1cIiEhc2Vjb25kYXJ5TmF2UGFyZW50LnRyZWUkUGFyZW50XCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6IHNlY29uZGFyeU5hdldpZHRoICsgJ3B4J1xyXG4gICAgICAgICAgICB9XCIgKGNsaWNrKT1cIm9uU2Vjb25kYXJ5SGVhZGVyQ2xpY2soc2Vjb25kYXJ5TmF2UGFyZW50LnRyZWUkUGFyZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgQGlmICghIXNlY29uZGFyeU5hdlBhcmVudC50cmVlJFBhcmVudCkge1xyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcnJvdy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLWFycm93LWxlZnRcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbYXBwVG9vbHRpcF09XCJzZWNvbmRhcnlOYXZQYXJlbnQuY29kZSB8IHRyYW5zbGF0ZTogbGFuZyB8IHVwcGVyY2FzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHNlY29uZGFyeU5hdlBhcmVudC5jb2RlIHwgdHJhbnNsYXRlOiBsYW5nIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFycm93LXdyYXBwZXIgY3Vyc29yLXBvaW50ZXJcIiBzdHlsZT1cImZsb2F0OiByaWdodDtcIiAoY2xpY2spPVwib25DYW5jZWxTZWNvbmRhcnlNZW51KClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXIteFwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgaWQ9XCJzZWNvbmRhcnktbmF2LWxpc3RcIj5cclxuICAgICAgICAgICAgICAgIDx1bCBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiBzZWNvbmRhcnlOYXZIZWlnaHQgLSA1MCArICdweCdcclxuICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICBAZm9yKGl0IG9mIHNlY29uZGFyeU5hdkNoaWxkcmVuOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJwYXJlbnRcIiAoY2xpY2spPVwib25TZWNvbmRhcnlJdGVtQ2xpY2soaXQpXCIgW2NsYXNzLmhhcy1jaGlsZHJlbl09XCJpdC50cmVlJEhhc0NoaWxkcmVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIFthcHBUb29sdGlwXT1cInNlY29uZGFyeU5hdlBhcmVudC5jb2RlIHwgdHJhbnNsYXRlOiBsYW5nIHwgdXBwZXJjYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdC50cmVlJFRpdGxlIHwgdHJhbnNsYXRlOiBsYW5nIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdC50cmVlJEhhc0NoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcnJvdy13cmFwcGVyXCIgc3R5bGU9XCJmbG9hdDogcmlnaHQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXItYXJyb3ctcmlnaHRcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG5cclxuPC9kaXY+Il19
|
|
416
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9uYXZpZ2F0b3IvbmF2aWdhdG9yL25hdmlnYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvbmF2aWdhdG9yL25hdmlnYXRvci9uYXZpZ2F0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxTQUFTLEVBQUUsS0FBSyxFQUF5QyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSSxPQUFPLEVBQUUsZUFBZSxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFRaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUzVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdGQUFnRixDQUFDO0FBRTdILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBdUJsRixNQUFNLE9BQU8sa0JBQWtCO0lBdUM3QixVQUFV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LENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxNQUFXO1FBQ2hDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUNaLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO2dCQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUN0RDtTQUNGO0lBQ0gsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0lBQ2pDLENBQUM7OEdBN2NVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHVTQ2hEL0IsNDJLQW9ITSxpbEpEaEZGLFlBQVksa0xBQ1osV0FBVyxrbkJBQ1gsYUFBYSxnRkFDYiwyQkFBMkIsMkZBQzNCLGFBQWEsa0RBQ2IsaUJBQWlCLHNEQUNqQixnQkFBZ0I7OzJGQU1QLGtCQUFrQjtrQkFoQjlCLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYiwyQkFBMkI7d0JBQzNCLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixnQkFBZ0I7cUJBQ2pCLGlCQUdjLGlCQUFpQixDQUFDLElBQUk7dVhBSWQsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQU1aLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgSW5wdXQsIFRlbXBsYXRlUmVmLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IE5hdmlnYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7IFN5c01lbnVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc3lzLW1lbnUuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlY3Vyc2l2ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZWN1cnNpdmUuc2VydmljZSc7XHJcbmltcG9ydCB7IElSaWdodEljb24gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL0lSaWdodEljb24nO1xyXG5pbXBvcnQgeyBJTmF2aWdhdG9ySXRlbSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvSU5hdmlnYXRvckl0ZW0nO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNZW51U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21lbnUuc2VydmljZSc7XHJcbmltcG9ydCB7IElGb3JtYXRlZFJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9JRm9ybWF0ZWRSZXNwb25zZSc7XHJcblxyXG5pbXBvcnQgeyBPcmdhbml6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3JnYW5pemF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sYXlvdXQuc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vaXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlTG9hZGluZ1N1cmZhY2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWxvYWRpbmctc3VyZmFjZS9jb3JlLWxvYWRpbmctc3VyZmFjZS9jb3JlLWxvYWRpbmctc3VyZmFjZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBwLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy90cmFuc2xhdGUucGlwZSc7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29yZUxpbmVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWxpbmUvY29yZS1saW5lL2NvcmUtbGluZS5jb21wb25lbnQnO1xyXG5cclxuaW50ZXJmYWNlIElGbGF0TmF2aWdhdGlvbkNoZWNrIHtcclxuICBpZDogbnVtYmVyO1xyXG4gIGNvdW50OiBudW1iZXI7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZWxpYi1uYXZpZ2F0b3InLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBJdGVtQ29tcG9uZW50LFxyXG4gICAgQ29yZUxvYWRpbmdTdXJmYWNlQ29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIENvcmVMaW5lQ29tcG9uZW50LFxyXG4gICAgVG9vbHRpcERpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbmF2aWdhdG9yLmNvbXBvbmVudC5zY3NzJywgJy4vc2lkZS1iYXIuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0b3JDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBAVmlld0NoaWxkKFwibWFpbk1lbnVcIikgbWFpbk1lbnUhOiBFbGVtZW50UmVmO1xyXG4gIGxpc3RlbmVyRm4hOiAoKSA9PiB2b2lkO1xyXG4gIGxhbmchOiBzdHJpbmc7XHJcblxyXG4gIGl0ZW1zITogSU5hdmlnYXRvckl0ZW1bXTtcclxuXHJcbiAgQElucHV0KCkgbG9nb1RlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSByaWdodFBhcnRIZWFkZU1lbnVJdGVtITogSU5hdmlnYXRvckl0ZW07XHJcbiAgQElucHV0KCkgcmlnaHRJY29uITogSVJpZ2h0SWNvbjtcclxuXHJcbiAgbGluZXJJdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElOYXZpZ2F0b3JJdGVtW10+KFtdKTtcclxuICBsaW5lckl0ZW1zOiBJTmF2aWdhdG9ySXRlbVtdID0gW107XHJcblxyXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGZsYXROYXZpZ2F0aW9uQ2hlY2s6IElGbGF0TmF2aWdhdGlvbkNoZWNrW10gPSBbXTtcclxuICBpdGVtc0Vycm9yczogc3RyaW5nW10gPSBbXTtcclxuICBsZWZ0YmFyUmVkdWNlZCE6IGJvb2xlYW47XHJcbiAgbGVmdGJhckN1cnJlbnRXaWR0aCE6IG51bWJlcjtcclxuICBzZWNvbmRhcnlOYXZUb3AhOiBudW1iZXI7XHJcbiAgc2Vjb25kYXJ5TmF2SGVpZ2h0ITogbnVtYmVyO1xyXG4gIHNlY29uZGFyeU5hdldpZHRoOiBudW1iZXIgPSAyODA7XHJcbiAgc2Vjb25kYXJ5TmF2UGFyZW50ITogYW55O1xyXG4gIHNlY29uZGFyeU5hdkNoaWxkcmVuOiBhbnlbXSA9IFtdO1xyXG5cclxuICBsb2FkaW5nITogYm9vbGVhbjtcclxuICBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XHJcbiAgc2VhcmNoRm9yOiBzdHJpbmcgPSAnJztcclxuICBzZWFyY2hTdHJlYW0kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcclxuICBtZW51Q2xpY2tlZEl0ZW0hIDogSU5hdmlnYXRvckl0ZW1cclxuICBjaGVja2VkTG9hZGluZ01lbnU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB3aWRlTW9kZSE6IGJvb2xlYW47XHJcbiAgc2Nyb2xsSGVpZ2h0ITogbnVtYmVyO1xyXG5cclxuICByZXNpemVTdHJlYW0kID0gZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpO1xyXG4gIGxlZnRCYXJXaWRlV2lkdGghOiBudW1iZXI7XHJcblxyXG4gIGdlb0NvbXB1dGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNjcm9sbEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIHRoaXMubGF5b3V0U2VydmljZS5oZWFkZXJIZWlnaHQkLnZhbHVlIC0gKHRoaXMud2lkZU1vZGUgPyAoKDM1ICsgMTUpIC8qIHNlYXJjaCovICsgKDUwICsgdGhpcy5sYXlvdXRTZXJ2aWNlLm5hdmlndG9yVGhpbk1vZGVTcGFjaW5nICogMykgLyogY29sbGFwc2VyICovKSA6ICg1MCArIHRoaXMubGF5b3V0U2VydmljZS5uYXZpZ3RvclRoaW5Nb2RlU3BhY2luZyAqIDMpIC8qIGNvbGxhcHNlciovIClcclxuICAgIHRoaXMuc2Vjb25kYXJ5TmF2SGVpZ2h0ID0gdGhpcy5zY3JvbGxIZWlnaHQ7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbmF2aWdhdG9yU2VydmljZTogTmF2aWdhdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgc3lzTWVudVNlcnZpY2U6IFN5c01lbnVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWN1cnNpdmVTZXJ2aWNlOiBSZWN1cnNpdmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBvcmdhbml6YXRpb25TZXJ2aWNlOiBPcmdhbml6YXRpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmxhbmcgPSB4KTtcclxuICAgIHRoaXMubGF5b3V0U2VydmljZS5sZWZ0QmFyV2lkZVdpZHRoJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmxlZnRCYXJXaWRlV2lkdGggPSB4KVxyXG4gICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmhlYWRlckhlaWdodCQuc3Vic2NyaWJlKHggPT4gdGhpcy5zZWNvbmRhcnlOYXZUb3AgPSB4KTtcclxuXHJcbiAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2Uud2lkZU1vZGUkLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgdGhpcy53aWRlTW9kZSA9IHg7XHJcbiAgICAgIHRoaXMuZ2VvQ29tcHV0ZSgpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UubGVmdEJhckN1cnJlbnRXaWR0aCQubmV4dCghIXggPyB0aGlzLmxlZnRCYXJXaWRlV2lkdGggOiB0aGlzLmxheW91dFNlcnZpY2UubGVmdEJhclRoaW5XaWR0aCk7XHJcbiAgICAgIH0pXHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVzaXplU3RyZWFtJC5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoNTAwKVxyXG4gICAgKS5zdWJzY3JpYmUoXyA9PiB7XHJcbiAgICAgIHRoaXMuZ2VvQ29tcHV0ZSgpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuICAgIHRoaXMubWVudUNsaWNrZWRJdGVtID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbWVudUN1cnJlbnRDbGlja2VkJykhKVxyXG4gICAgaWYoISF0aGlzLm1lbnVDbGlja2VkSXRlbSl7XHJcbiAgICAgIHRoaXMubWVudUNsaWNrZWRJdGVtLnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMubGluZXJJdGVtcyQuc3Vic2NyaWJlKHggPT4ge1xyXG5cclxuICAgICAgICAgIGlmKCEheCAmJiB4Lmxlbmd0aCA+IDAgJiYgdGhpcy5jaGVja2VkTG9hZGluZ01lbnUgPT0gZmFsc2Upe1xyXG4gICAgICAgICAgICBsZXQgYXJyYXkgOiBJTmF2aWdhdG9ySXRlbVtdID0gW107XHJcbiAgICAgICAgICAgIGxldCBhcnJheVBhcnJlbnQgOiBJTmF2aWdhdG9ySXRlbVtdID0gW107XHJcbiAgICAgICAgICAgIGlmKHRoaXMubWVudUNsaWNrZWRJdGVtPy50cmVlJFRpZXIgPT0gMil7XHJcbiAgICAgICAgICAgICAgYXJyYXkgPSB4LmZpbHRlcih5ID0+IHkuaWQgPT0gdGhpcy5tZW51Q2xpY2tlZEl0ZW0uaWQpXHJcbiAgICAgICAgICAgICAgYXJyYXlQYXJyZW50ID0geC5maWx0ZXIoeSA9PiB5LmlkID09IHRoaXMubWVudUNsaWNrZWRJdGVtLnRyZWUkUGFyZW50KVxyXG4gICAgICAgICAgICAgIGFycmF5WzBdLnRyZWUkU2VsZWN0ZWQgPXRydWVcclxuICAgICAgICAgICAgICBpZih0aGlzLm1lbnVDbGlja2VkSXRlbS50cmVlJENoaWxkcmVuLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICAgICAgYXJyYXlbMF0udHJlZSRFeHBhbmRlZCA9IHRydWVcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgYXJyYXlQYXJyZW50WzBdLnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGFycmF5UGFycmVudFswXS50cmVlJEV4cGFuZGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluLW1lbnUtJyArIGFycmF5UGFycmVudFswXS5pZClcclxuICAgICAgICAgICAgICBsZXQgZWxlbWVudDIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbi1tZW51LScgKyBhcnJheVswXS5pZClcclxuICAgICAgICAgICAgICBpZiAoYXJyYXlQYXJyZW50WzBdLnRyZWUkRXhwYW5kZWQpIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQ/LmNsYXNzTGlzdC5hZGQoJ2V4cGFuZGVkJylcclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKGVscyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmKGVscy5pZCA9PSBhcnJheVBhcnJlbnRbMF0uaWQpe1xyXG4gICAgICAgICAgICAgICAgICAgIGVscy50cmVlJFNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBlbHMudHJlZSRFeHBhbmRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoZWxzLnRyZWUkQ2hpbGRyZW4ubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICBlbHMudHJlZSRDaGlsZHJlbi5tYXAoeCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHguaWQgPT0gdGhpcy5tZW51Q2xpY2tlZEl0ZW0uaWQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHgudHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQ/LmNsYXNzTGlzdC5yZW1vdmUoJ2V4cGFuZGVkJylcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGFycmF5UGFycmVudFswXS50cmVlJEFjdGl2ZSkge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudD8uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJylcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudD8uY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJylcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIGlmKGFycmF5WzBdLnRyZWUkRXhwYW5kZWQpe1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudDI/LmNsYXNzTGlzdC5hZGQoJ2V4cGFuZGVkJylcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMubWFwKGVscyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGVscy50cmVlJENoaWxkcmVuLm1hcChlbCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoZWwuaWQgPT0gYXJyYXlbMF0uaWQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgZWwudHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLnJvdXRlci51cmwgPT0gZWwudXJsKXtcclxuICAgICAgICAgICAgICAgICAgICAgIGVsLnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQyPy5jbGFzc0xpc3QucmVtb3ZlKCdleHBhbmRlZCcpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKHRoaXMubWVudUNsaWNrZWRJdGVtPy50cmVlJFRpZXIgPT0gMyl7IC8vbuG6v3UgbMOgIDMgY+G6pXBcclxuICAgICAgICAgICAgICBhcnJheSA9IHguZmlsdGVyKHkgPT4geS5pZCA9PSB0aGlzLm1lbnVDbGlja2VkSXRlbS5pZClcclxuICAgICAgICAgICAgICBhcnJheVBhcnJlbnQgPSB4LmZpbHRlcih5ID0+IHkuaWQgPT0gdGhpcy5tZW51Q2xpY2tlZEl0ZW0udHJlZSRQYXJlbnQpXHJcbiAgICAgICAgICAgICAgbGV0IGFycmF5R3JhbmRQYXJyZW50ID0geC5maWx0ZXIoeiA9PiB6LmlkID09IGFycmF5UGFycmVudFswXS5wYXJlbnQpXHJcbiAgICAgICAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbi1tZW51LScgKyBhcnJheVBhcnJlbnRbMF0uaWQpXHJcbiAgICAgICAgICAgICAgbGV0IGVsZW1lbnQyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW4tbWVudS0nICsgYXJyYXlHcmFuZFBhcnJlbnRbMF0uaWQpXHJcbiAgICAgICAgICAgICAgYXJyYXlbMF0udHJlZSRTZWxlY3RlZCA9dHJ1ZVxyXG4gICAgICAgICAgICAgIGFycmF5UGFycmVudFswXS50cmVlJFNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBhcnJheVBhcnJlbnRbMF0udHJlZSRFeHBhbmRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgYXJyYXlHcmFuZFBhcnJlbnRbMF0udHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgYXJyYXlHcmFuZFBhcnJlbnRbMF0udHJlZSRFeHBhbmRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgaWYgKGFycmF5R3JhbmRQYXJyZW50WzBdLnRyZWUkRXhwYW5kZWQpIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQyPy5jbGFzc0xpc3QuYWRkKCdleHBhbmRlZCcpXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaChlbHMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZihlbHMuaWQgPT0gYXJyYXlHcmFuZFBhcnJlbnRbMF0uaWQpe1xyXG4gICAgICAgICAgICAgICAgICAgIGVscy50cmVlJFNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBlbHMudHJlZSRFeHBhbmRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Mj8uY2xhc3NMaXN0LnJlbW92ZSgnZXhwYW5kZWQnKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAoYXJyYXlHcmFuZFBhcnJlbnRbMF0udHJlZSRBY3RpdmUpIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQyPy5jbGFzc0xpc3QuYWRkKCdhY3RpdmUnKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Mj8uY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJylcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgaWYgKGFycmF5UGFycmVudFswXS50cmVlJEV4cGFuZGVkKSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50Py5jbGFzc0xpc3QuYWRkKCdleHBhbmRlZCcpXHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMuZm9yRWFjaChlbHMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZihlbHMuaWQgPT0gYXJyYXlHcmFuZFBhcnJlbnRbMF0uaWQpe1xyXG4gICAgICAgICAgICAgICAgICAgIGVscy50cmVlJFNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBlbHMudHJlZSRFeHBhbmRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoZWxzLnRyZWUkQ2hpbGRyZW4ubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICBlbHMudHJlZSRDaGlsZHJlbi5tYXAoeCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKHguaWQgPT0gYXJyYXlQYXJyZW50WzBdLmlkKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB4LnRyZWUkU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHgudHJlZSRFeHBhbmRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoeC50cmVlJENoaWxkcmVuLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHgudHJlZSRDaGlsZHJlbi5tYXAoeSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih5LmlkID09IGFycmF5WzBdLmlkKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeS50cmVlJFNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQ/LmNsYXNzTGlzdC5yZW1vdmUoJ2V4cGFuZGVkJylcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGFycmF5UGFycmVudFswXS50cmVlJEFjdGl2ZSkge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudD8uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJylcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudD8uY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJylcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmNoZWNrZWRMb2FkaW5nTWVudSA9IHRydWVcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICB9LDIwMDApXHJcbiAgICBcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgIHRoaXMuZ2VvQ29tcHV0ZSgpO1xyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmxlZnRiYXJSZWR1Y2VkJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmxlZnRiYXJSZWR1Y2VkID0geClcclxuICAgICAgKVxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UubGVmdEJhckN1cnJlbnRXaWR0aCQuc3Vic2NyaWJlKHggPT4gdGhpcy5sZWZ0YmFyQ3VycmVudFdpZHRoID0geClcclxuICAgICAgKVxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoeCA9PiB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5tbHMudHJhbnMoJ1VJX0NPTU1PTl9QTEFDRV9IT0xERVJfU0VBUkNIX0hFUkUnKSlcclxuICAgICAgKVxyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5zZWFyY2hTdHJlYW0kXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDUwMCksXHJcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCgodGV4dCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzd2l0Y2hNYXAgd29ya3MgPT09PT09PT09PT09PT09PT09PT09PT09PT0nKTtcclxuICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLm5hdmlnYXRvclNlcnZpY2UuZmluZEl0ZW0odGV4dCwgdGhpcy5pdGVtcyk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMuaXRlbXM/Lm1hcCgoaXRlbTogSU5hdmlnYXRvckl0ZW0pID0+IHtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlTmF2aWdhdGlvbkl0ZW0oaXRlbSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKCEhdGhpcy5pdGVtc0Vycm9ycy5sZW5ndGgpIHtcclxuICAgICAgICBjb25zb2xlLmdyb3VwKFwiTmF2aWdhdGlvbiBpdGVtcyBlcnJvclwiKTtcclxuICAgICAgICB0aGlzLml0ZW1zRXJyb3JzPy5tYXAoZXJyb3IgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgICAgfSlcclxuICAgICAgICBjb25zb2xlLmdyb3VwRW5kKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG5cclxuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnBpcGUoXHJcbiAgICAgICAgICBmaWx0ZXIoeCA9PiAhIXgpLFxyXG4gICAgICAgICAgbWFwKHggPT4geD8uaWQpLFxyXG4gICAgICAgICAgc3dpdGNoTWFwKHggPT4gdGhpcy5zeXNNZW51U2VydmljZS5yZWFkUGVybWl0dGVkTWVudSh4ISwgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkFQUF9UWVBFKSlcclxuICAgICAgICApLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgIGlmICh4Lm9rICYmIHguc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgY29uc3QgYm9keTogSUZvcm1hdGVkUmVzcG9uc2UgPSB4LmJvZHk7XHJcbiAgICAgICAgICAgIGJvZHkuaW5uZXJCb2R5LnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgLy8gaW4gcmVjdXJzaXZlIGNvZGUgd2Ugd2lsbCByZWFkIGZyb20gYm90dG9tIHRvIHRvcFxyXG4gICAgICAgICAgICAgIGlmIChhLm9yZGVyTnVtYmVyID4gYi5vcmRlck51bWJlcikgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICAgIGlmIChhLm9yZGVyTnVtYmVyID09PSBiLm9yZGVyTnVtYmVyKSByZXR1cm4gMDtcclxuICAgICAgICAgICAgICBpZiAoYS5vcmRlck51bWJlciA8IGIub3JkZXJOdW1iZXIpIHJldHVybiAxO1xyXG4gICAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB0aGlzLmxpbmVySXRlbXMkLm5leHQoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShib2R5LmlubmVyQm9keSkpKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG5cclxuICAgICAgICAgICAgICB0aGlzLnJlY3Vyc2l2ZVNlcnZpY2UubGluZXJBcnJheVRvTmVzdGVkQXJyYXkoXHJcbiAgICAgICAgICAgICAgICBib2R5LmlubmVyQm9keSxcclxuICAgICAgICAgICAgICAgIFwiaWRcIixcclxuICAgICAgICAgICAgICAgIFwiY29kZVwiLFxyXG4gICAgICAgICAgICAgICAgXCJwYXJlbnRcIiwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgIHRoaXMub3JnYW5pemF0aW9uU2VydmljZS5zdGF0dXMkLnZhbHVlLFxyXG4gICAgICAgICAgICAgICAgXCJvcmRlck51bVwiXHJcbiAgICAgICAgICAgICAgKS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInJcIiwgcilcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMgPSByLmxpc3Q7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmVySXRlbXMgPSByLnJhd0xpc3Quc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKGEub3JkZXJOdW1iZXIgPiBiLm9yZGVyTnVtYmVyKSByZXR1cm4gMTtcclxuICAgICAgICAgICAgICAgICAgaWYgKGEub3JkZXJOdW1iZXIgPT09IGIub3JkZXJOdW1iZXIpIHJldHVybiAwO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoYS5vcmRlck51bWJlciA8IGIub3JkZXJOdW1iZXIpIHJldHVybiAtMTtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgdGhpcy5tZW51U2VydmljZS5uYXZpZ2F0aW9uJC5uZXh0KHIubGlzdCk7XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMubmF2aWdhdG9yU2VydmljZS5jbGlja2VkSXRlbSQucGlwZShcclxuICAgICAgICAgIGZpbHRlcih4ID0+ICEheClcclxuICAgICAgICApLnN1YnNjcmliZSh4ID0+IHtcclxuXHJcbiAgICAgICAgICB0aGlzLm9uSXRlbUNsaWNrKHghKTtcclxuICAgICAgICAgIGlmICh4Py50cmVlJENoaWxkcmVuICYmIHg/LnRyZWUkQ2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYoISF0aGlzLml0ZW1zKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgbGV0IGl0ZW1BY3RpdmF0ZWQgPSB0aGlzLml0ZW1zLmZpbHRlcih5ID0+IHkgIT09IHggJiYgeS5pZCAhPT0geC50cmVlJFBhcmVudCAmJiB5LnRyZWUkU2VsZWN0ZWQgPT0gdHJ1ZSlcclxuICAgICAgICAgICAgICBpdGVtQWN0aXZhdGVkPy5tYXAoeiA9PiB6LnRyZWUkU2VsZWN0ZWQgPSBmYWxzZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICghIXggJiYgISF4LnBhcmVudCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuaXRlbXMubWFwKHBhcmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICBwYXJlbnQudHJlZSRDaGlsZHJlbi5tYXAoY2hpbGQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoY2hpbGQudHJlZSRDaGlsZHJlbi5sZW5ndGggPT0gMCAmJiBjaGlsZCAhPSB4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGQudHJlZSRTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICB9ZWxzZSBpZihjaGlsZC50cmVlJENoaWxkcmVuLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkLnRyZWUkQ2hpbGRyZW4ubWFwKGsgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYoY2hpbGQuaWQgIT0gay5wYXJlbnQpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZC50cmVlJFNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihjaGlsZCAhPSB4ICYmIHgucGFyZW50ICE9IGNoaWxkLmlkKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZih4LmlkID09IClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZC50cmVlJFNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmICh4LnBhcmVudCA9PSBjaGlsZC5pZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQudHJlZSRTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gay50cmVlJFNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMuc2Vjb25kYXJ5TmF2UGFyZW50ID0geCE7XHJcbiAgICAgICAgICB0aGlzLnNlY29uZGFyeU5hdkNoaWxkcmVuID0gdGhpcy5saW5lckl0ZW1zLmZpbHRlcihhID0+IGEucGFyZW50ID09PSB4Py5pZCk7XHJcblxyXG5cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmxpbmVySXRlbXMkLnN1YnNjcmliZShpdGVtcyA9PiB7XHJcbiAgICAgICAgICBpdGVtcz8ubWFwKHggPT4ge1xyXG4gICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYWluLW1lbnUtJyArIHguaWQpXHJcbiAgICAgICAgICAgIGlmICh4LnRyZWUkRXhwYW5kZWQpIHtcclxuICAgICAgICAgICAgICBlbGVtZW50Py5jbGFzc0xpc3QuYWRkKCdleHBhbmRlZCcpXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgZWxlbWVudD8uY2xhc3NMaXN0LnJlbW92ZSgnZXhwYW5kZWQnKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh4LnRyZWUkQWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgZWxlbWVudD8uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJylcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBlbGVtZW50Py5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcblxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICBvblNlYXJjaENoYW5nZShlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VhcmNoU3RyZWFtJC5uZXh0KGUpXHJcbiAgfVxyXG5cclxuICBjbGVhclNlYXJjaCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoRm9yID0gXCJcIjtcclxuICAgIHRoaXMuc2VhcmNoU3RyZWFtJC5uZXh0KFwiXCIpO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVOYXZpZ2F0aW9uSXRlbShpdGVtOiBJTmF2aWdhdG9ySXRlbSkge1xyXG4gICAgaWYgKCEhIWl0ZW0uaWQpIHtcclxuICAgICAgdGhpcy5pdGVtc0Vycm9ycy5wdXNoKGBWYWx1ZSBvZiBwcm9wZXJ0eSBcImlkXCIgb2YgbmF2aWdhdGlvbiBpdGVtIFwiJHtpdGVtLmNvZGV9XCIgaXMgbm90IHNldGApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5mbGF0TmF2aWdhdGlvbkNoZWNrLmZpbHRlcih4ID0+IHguaWQgPT09IGl0ZW0uaWQpO1xyXG4gICAgaWYgKGZpbHRlci5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5mbGF0TmF2aWdhdGlvbkNoZWNrLnB1c2goe1xyXG4gICAgICAgIGlkOiBpdGVtLmlkLFxyXG4gICAgICAgIGNvdW50OiAwLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXRlbXNFcnJvcnMucHVzaChgRHVwbGljYXRlZCBOYXZpZ2F0aW9uIGlkICR7aXRlbS5pZH1gKTtcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMuaGFzQ2hpbGRyZW4oaXRlbSkpIHtcclxuICAgICAgaXRlbS50cmVlJENoaWxkcmVuPy5tYXAoY2hpbGQgPT4ge1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGVOYXZpZ2F0aW9uSXRlbShjaGlsZCk7XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgaGFzQ2hpbGRyZW4oaXRlbTogSU5hdmlnYXRvckl0ZW0pOiBib29sZWFuIHtcclxuICAgIGxldCByZXN1bHQgPSBmYWxzZTtcclxuICAgIE9iamVjdC5rZXlzKGl0ZW0pLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgaWYgKGtleSA9PT0gXCJ0cmVlJENoaWxkcmVuXCIpIHtcclxuICAgICAgICBpZiAoISFpdGVtWyd0cmVlJENoaWxkcmVuJ10/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIGl0ZW1IYXNDaGlsZHJlbihpdGVtOiBJTmF2aWdhdG9ySXRlbSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgT2JqZWN0LmtleXMoaXRlbSkuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICBpZiAoa2V5ID09PSAndHJlZSRDaGlsZHJlbicpIHtcclxuICAgICAgICBpZiAoISFpdGVtWyd0cmVlJENoaWxkcmVuJ10/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBvbkl0ZW1DbGljayhpdGVtOiBJTmF2aWdhdG9ySXRlbSkge1xyXG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMubGluZXJJdGVtcyQudmFsdWU7XHJcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMubmF2aWdhdG9yU2VydmljZS5zZWZ0VG9nZ2xlRXhwYW5kU2libGluZ3NDb2xsYXBzZShjdXJyZW50LCBpdGVtLmlkKTtcclxuICAgIHRoaXMubGluZXJJdGVtcyQubmV4dChpdGVtcyk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoeCA9PiB7XHJcbiAgICAgIGlmICh4KSB4LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlQ29sbGFwc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2Uud2lkZU1vZGUkLm5leHQoIXRoaXMubmF2aWdhdG9yU2VydmljZS53aWRlTW9kZSQudmFsdWUpXHJcbiAgfVxyXG5cclxuICBvblNlY29uZGFyeUl0ZW1DbGljayhpdGVtOiBhbnkpIHtcclxuICAgIHRoaXMubmF2aWdhdG9yU2VydmljZS5jbGlja2VkSXRlbSQubmV4dChpdGVtKTtcclxuICB9XHJcblxyXG4gIG9uU2Vjb25kYXJ5SGVhZGVyQ2xpY2socGFyZW50OiBhbnkpIHtcclxuICAgIGlmICghIXBhcmVudCkge1xyXG4gICAgICBjb25zdCB0cnlGaWx0ZXIgPSB0aGlzLmxpbmVySXRlbXMuZmlsdGVyKHggPT4geC5pZCA9PT0gcGFyZW50KTtcclxuICAgICAgaWYgKCEhdHJ5RmlsdGVyLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMubmF2aWdhdG9yU2VydmljZS5jbGlja2VkSXRlbSQubmV4dCh0cnlGaWx0ZXJbMF0pXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2FuY2VsU2Vjb25kYXJ5TWVudSgpIHtcclxuICAgIHRoaXMuc2Vjb25kYXJ5TmF2UGFyZW50ID0gbnVsbDtcclxuICB9XHJcblxyXG59IiwiPGRpdiBjbGFzcz1cIm5hdmlnYXRvci1jb250YWluZXJcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICB3aWR0aDogbGVmdGJhckN1cnJlbnRXaWR0aCArICdweCdcclxufVwiPlxyXG4gICAgQGlmICh3aWRlTW9kZSkge1xyXG4gICAgPGRpdiBjbGFzcz1cImlucHV0LXNlYXJjaC1jb250YWluZXJcIiBbY2xhc3Mub3BhY2l0eTBdPVwiISFsZWZ0YmFyUmVkdWNlZFwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICB3aWR0aDogbGF5b3V0U2VydmljZS5sZWZ0QmFyQ3VycmVudFdpZHRoJC52YWx1ZSAtIGxheW91dFNlcnZpY2UubGVmdEJhclNlY29uZEljb25MZWZ0IC0gbGF5b3V0U2VydmljZS5zY3JvbGxCYXJXaWR0aCAtIDEgKyAncHgnXHJcbiAgICB9XCI+XHJcbiAgICAgICAgPGlucHV0IGlkPVwibmF2aWdhdG9yLXNlYXJjaFwiIFtwbGFjZWhvbGRlcl09XCInVUlfQ09NTU9OX1BMQUNFX0hPTERFUl9TRUFSQ0hfSEVSRScgfCB0cmFuc2xhdGU6IGxhbmdcIiB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoRm9yXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25TZWFyY2hDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgIEBpZiAoISFzZWFyY2hGb3IubGVuZ3RoKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1jbGVhci13cmFwcGVyXCIgKGNsaWNrKT1cImNsZWFyU2VhcmNoKClcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLXhcIj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgPGRpdiBpZD1cIm5hdlwiIFtjbGFzcy5zaWRlYmFyXT1cIiF3aWRlTW9kZVwiPlxyXG4gICAgICAgIEBpZiAoISFsb2FkaW5nKSB7XHJcbiAgICAgICAgPGNvcmUtbG9hZGluZy1zdXJmYWNlPjwvY29yZS1sb2FkaW5nLXN1cmZhY2U+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICA8dWwgaWQ9XCJtYWluLW1lbnVcIiAjbWFpbk1lbnUgW3N0eWxlXT1cIidoZWlnaHQ6ICcgKyBzY3JvbGxIZWlnaHQgKyAncHg7J1wiIFtjbGFzcy50aGluLW1vZGVdPVwiIXdpZGVNb2RlXCJcclxuICAgICAgICAgICAgW2NsYXNzLm1lbnVdPVwiIXdpZGVNb2RlXCI+XHJcbiAgICAgICAgICAgIEBpZiAoISFpdGVtcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIEBmb3IoaXRlbSBvZiBpdGVtczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgIDxhcHAtaXRlbSBbaXRlbV09XCJpdGVtXCIgW2xldmVsXT1cIjFcIj48L2FwcC1pdGVtPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBpZiAoISFyaWdodEljb24pIHtcclxuICAgICAgICAgICAgPGxpIGNsYXNzPVwicGFyZW50IHJpZ2h0LXBhcnQtaXRlbVwiIFtjbGFzcy5tZW51LWl0ZW1dPVwid2lkZU1vZGVcIj5cclxuICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJyaWdodEljb24uZnVuY3Rpb24oKVwiIGNsYXNzPVwibm8tdmVydGljYWwtcGFkZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1pY29uLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIidyaWdodC1pY29uICcgKyByaWdodEljb24uZmVhdGhlckNsYXNzXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtaWNvbi1iYWRnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgcmlnaHRJY29uLmJhZGdlQ291bnQgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgPC91bD5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlLXRvZ2dsZXJcIiBbY2xhc3MuZC1ub25lXT1cIiFsYXlvdXRTZXJ2aWNlLmxlZnRiYXJPcGVuJC52YWx1ZVwiXHJcbiAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIndpZGVNb2RlID8gKCdVSV9MRUZUQkFSX1RPR0dMRVJfQ09MTEFQU0UnIHwgdHJhbnNsYXRlIDogbGFuZykgOiAoJ1VJX0xFRlRCQVJfVE9HR0xFUl9FWFBBTkQnIHwgdHJhbnNsYXRlOiBsYW5nKVwiXHJcbiAgICAgICAgICAgIFtzaG93QW55d2F5XT1cInRydWVcIiBwb3NpdGlvbj1cImFib3ZlXCIgKGNsaWNrKT1cInRvZ2dsZUNvbGxhcHNlKClcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogbGF5b3V0U2VydmljZS5sZWZ0QmFyQ3VycmVudFdpZHRoJC52YWx1ZSAtIDggKiAyICsgJ3B4J1xyXG4gICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYXBzZS10b2dnbGVyLWlubmVyXCIgW2NsYXNzLnRoaW4tbW9kZV09XCIhd2lkZU1vZGVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3JlLWxpbmUtd3JhcHBlclwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogbGF5b3V0U2VydmljZS5sZWZ0QmFyQ3VycmVudFdpZHRoJC52YWx1ZSAtIDggKiAyICsgJ3B4J1xyXG4gICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjb3JlLWxpbmU+PC9jb3JlLWxpbmU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKHdpZGVNb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLWNoZXZyb25zLWxlZnRcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLWNoZXZyb25zLXJpZ2h0XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIEBpZiAod2lkZU1vZGUpIHtcclxuICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdVSV9MRUZUQkFSX1RPR0dMRVJfQ09MTEFQU0UnIHwgdHJhbnNsYXRlOiBsYW5nIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYgKCF3aWRlTW9kZSAmJiAhIXNlY29uZGFyeU5hdlBhcmVudCAmJiAhIXNlY29uZGFyeU5hdkNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgPGRpdiAjc2Vjb25kYXJ5IGlkPVwic2Vjb25kYXJ5LW5hdlwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICB3aWR0aDogc2Vjb25kYXJ5TmF2V2lkdGggKyAncHgnLFxyXG4gICAgICAgIHRvcDogc2Vjb25kYXJ5TmF2VG9wICsgMTUgKyAncHgnLFxyXG4gICAgICAgIGxlZnQ6IGxheW91dFNlcnZpY2UubGVmdEJhclRoaW5XaWR0aCArIDE1ICsgJ3B4J1xyXG4gICAgfVwiPlxyXG4gICAgICAgIDxkaXYgaWQ9XCJzZWNvbmRhcnktbmF2LWlubmVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgaWQ9XCJzZWNvbmRhcnktbmF2LWhlYWRlclwiIFtjbGFzcy5jdXJzb3ItcG9pbnRlcl09XCIhIXNlY29uZGFyeU5hdlBhcmVudC50cmVlJFBhcmVudFwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBzZWNvbmRhcnlOYXZXaWR0aCArICdweCdcclxuICAgICAgICAgICAgfVwiIChjbGljayk9XCJvblNlY29uZGFyeUhlYWRlckNsaWNrKHNlY29uZGFyeU5hdlBhcmVudC50cmVlJFBhcmVudClcIj5cclxuICAgICAgICAgICAgICAgIEBpZiAoISFzZWNvbmRhcnlOYXZQYXJlbnQudHJlZSRQYXJlbnQpIHtcclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXJyb3ctd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci1hcnJvdy1sZWZ0XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW2FwcFRvb2x0aXBdPVwic2Vjb25kYXJ5TmF2UGFyZW50LmNvZGUgfCB0cmFuc2xhdGU6IGxhbmcgfCB1cHBlcmNhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBzZWNvbmRhcnlOYXZQYXJlbnQuY29kZSB8IHRyYW5zbGF0ZTogbGFuZyB8IHVwcGVyY2FzZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcnJvdy13cmFwcGVyIGN1cnNvci1wb2ludGVyXCIgc3R5bGU9XCJmbG9hdDogcmlnaHQ7XCIgKGNsaWNrKT1cIm9uQ2FuY2VsU2Vjb25kYXJ5TWVudSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLXhcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGlkPVwic2Vjb25kYXJ5LW5hdi1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICA8dWwgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgIG1heEhlaWdodDogc2Vjb25kYXJ5TmF2SGVpZ2h0IC0gNTAgKyAncHgnXHJcbiAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQGZvcihpdCBvZiBzZWNvbmRhcnlOYXZDaGlsZHJlbjsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicGFyZW50XCIgKGNsaWNrKT1cIm9uU2Vjb25kYXJ5SXRlbUNsaWNrKGl0KVwiIFtjbGFzcy5oYXMtY2hpbGRyZW5dPVwiaXQudHJlZSRIYXNDaGlsZHJlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBbYXBwVG9vbHRpcF09XCJzZWNvbmRhcnlOYXZQYXJlbnQuY29kZSB8IHRyYW5zbGF0ZTogbGFuZyB8IHVwcGVyY2FzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXQudHJlZSRUaXRsZSB8IHRyYW5zbGF0ZTogbGFuZyB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXQudHJlZSRIYXNDaGlsZHJlbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJyb3ctd3JhcHBlclwiIHN0eWxlPVwiZmxvYXQ6IHJpZ2h0O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLWFycm93LXJpZ2h0XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuXHJcbjwvZGl2PiJdfQ==
|
|
@@ -24168,8 +24168,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
24168
24168
|
|
|
24169
24169
|
class NavigatorComponent {
|
|
24170
24170
|
geoCompute() {
|
|
24171
|
-
this.scrollHeight = window.innerHeight - this.layoutService.headerHeight$.value - (this.wideMode ? (
|
|
24172
|
-
this.secondaryNavHeight =
|
|
24171
|
+
this.scrollHeight = window.innerHeight - this.layoutService.headerHeight$.value - (this.wideMode ? ((35 + 15) /* search*/ + (50 + this.layoutService.navigtorThinModeSpacing * 3) /* collapser */) : (50 + this.layoutService.navigtorThinModeSpacing * 3) /* collapser*/);
|
|
24172
|
+
this.secondaryNavHeight = this.scrollHeight;
|
|
24173
24173
|
}
|
|
24174
24174
|
constructor(navigatorService, sysMenuService, recursiveService, router, menuService, organizationService, layoutService, mls, authService, alertService, appConfigService) {
|
|
24175
24175
|
this.navigatorService = navigatorService;
|