ngx-histaff-alpha 0.0.9 → 0.1.1
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/lib/app/libraries/core-navigation-tracker/core-navigation-tracker/core-navigation-tracker.component.mjs +3 -3
- package/esm2022/lib/app/services/app-initialization.service.mjs +8 -1
- package/fesm2022/ngx-histaff-alpha.mjs +9 -2
- package/fesm2022/ngx-histaff-alpha.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -239,10 +239,10 @@ export class CoreNavigationTrackerComponent {
|
|
|
239
239
|
}
|
|
240
240
|
console.groupEnd();
|
|
241
241
|
this.routingService.navigating$.next(false);
|
|
242
|
-
this.urlService.previousRouteUrl$.next(this.urlService.currentRouteUrl$.value);
|
|
243
|
-
this.urlService.currentRouteUrl$.next(routerEvent.url);
|
|
244
242
|
switch (this.appConfigService.APP_TYPE) {
|
|
245
243
|
case "WEBAPP":
|
|
244
|
+
this.urlService.previousRouteUrl$.next(this.urlService.currentRouteUrl$.value);
|
|
245
|
+
this.urlService.currentRouteUrl$.next(routerEvent.url);
|
|
246
246
|
// this.layoutService.leftbarReduced$.next(true); // if we want auto-reduce the menu, uncomment this line
|
|
247
247
|
setTimeout(() => {
|
|
248
248
|
const leftBar = getComputedStyle(document.documentElement).getPropertyValue('--size-left-bar-current-width').replace('px', '');
|
|
@@ -299,4 +299,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
299
299
|
type: Component,
|
|
300
300
|
args: [{ selector: 'core-navigation-tracker', standalone: true, imports: [], template: "" }]
|
|
301
301
|
}], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.RoutingService }, { type: i4.LayoutService }, { type: i5.HubConnectionService }, { type: i6.UserActivityService }, { type: i7.UrlService }, { type: i8.NavigatorService }, { type: i9.AlertService }, { type: i10.DialogService }, { type: i11.MultiLanguageService }, { type: i12.AppService }, { type: i13.AppConfigService }] });
|
|
302
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1uYXZpZ2F0aW9uLXRyYWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtbmF2aWdhdGlvbi10cmFja2VyL2NvcmUtbmF2aWdhdGlvbi10cmFja2VyL2NvcmUtbmF2aWdhdGlvbi10cmFja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLW5hdmlnYXRpb24tdHJhY2tlci9jb3JlLW5hdmlnYXRpb24tdHJhY2tlci9jb3JlLW5hdmlnYXRpb24tdHJhY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBa0IsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQXVCLE1BQU0saUJBQWlCLENBQUM7QUFDekksT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFZaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHMUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQXVCN0UsTUFBTSxPQUFPLDhCQUE4QjtJQW1DekMsWUFDVSxXQUF3QixFQUN4QixNQUFjLEVBQ2QsS0FBcUIsRUFDckIsY0FBOEIsRUFDL0IsYUFBNEIsRUFDM0Isb0JBQTBDLEVBQzFDLG1CQUF3QyxFQUN4QyxVQUFzQixFQUN0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RSxXQUFXLEVBQUUsQ0FBQyxDQUFBO0lBQy9DLENBQUM7OEdBN1dVLDhCQUE4QjtrR0FBOUIsOEJBQThCLG1GQ3pDM0MsRUFBQTs7MkZEeUNhLDhCQUE4QjtrQkFQMUMsU0FBUzsrQkFDRSx5QkFBeUIsY0FDdkIsSUFBSSxXQUNQLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25DYW5jZWwsIE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25FcnJvciwgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIsIFJvdXRlckV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFbnVtU2lnbmFsUlR5cGUgfSBmcm9tICcuLi8uLi8uLi9lbnVtL0VudW1TaWduYWxSVHlwZSc7XHJcbmltcG9ydCB7IElIdWJDb25uZWN0aW9uQWN0aXZpdHkgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL0lIdWJDb25uZWN0aW9uQWN0aXZpdHknO1xyXG5pbXBvcnQgeyBSb3V0aW5nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JvdXRpbmcuc2VydmljZSc7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sYXlvdXQuc2VydmljZSc7XHJcbmltcG9ydCB7IEh1YkNvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaHViLWNvbm5lY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJBY3Rpdml0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91c2VyLWFjdGl2aXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJUm91dGluZ0hpc3RvcnlJdGVtIH0gZnJvbSAnLi4vLi4vY29yZS1yb3V0aW5nLWhpc3RvcnkvY29yZS1yb3V0aW5nLWhpc3RvcnkvY29yZS1yb3V0aW5nLWhpc3RvcnkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXJsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3VybC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmF2aWdhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRvci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IElOYXZpZ2F0b3JJdGVtIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9JTmF2aWdhdG9ySXRlbSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2FsZXJ0T3B0aW9ucyc7XHJcbmltcG9ydCB7IElBdXRoRGF0YSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvSUF1dGhEYXRhJztcclxuaW1wb3J0IHsgQXBwU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwcC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwcC1jb25maWcuc2VydmljZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElMb2dVc2VyQWN0aXZpdHkge1xyXG4gIGNsaWVudENvZGU6IHN0cmluZztcclxuICBhcHBUeXBlOiBzdHJpbmc7XHJcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XHJcbiAgc2lkPzogc3RyaW5nO1xyXG4gIGxvZ2luVGltZT86IERhdGU7XHJcbiAgYWNjZXNzVGltZTogRGF0ZTtcclxuICBwYXRoOiBzdHJpbmc7XHJcbiAgcGF0aG5hbWU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1uYXZpZ2F0aW9uLXRyYWNrZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW10sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtbmF2aWdhdGlvbi10cmFja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLW5hdmlnYXRpb24tdHJhY2tlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlTmF2aWdhdGlvblRyYWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBuYXZpZ2F0aW5nITogYm9vbGVhbjtcclxuICB1cmwhOiBzdHJpbmc7XHJcblxyXG4gIGxhbmchOiBzdHJpbmc7XHJcblxyXG4gIGFwcENvbmZpZzogYW55ID0ge1xyXG4gICAgc2hvd0xheW91dDogJ2ZhbHNlJ1xyXG4gIH07XHJcblxyXG4gIGFwcEluaXRpYWxpemluZyE6IGJvb2xlYW47XHJcbiAgbG9hZGluZyE6IGJvb2xlYW47XHJcbiAgc3VibWl0dGluZyE6IGJvb2xlYW47XHJcbiAgbWVudU9wZW4hOiBib29sZWFuO1xyXG4gIGxlZnRiYXJSZWR1Y2VkITogYm9vbGVhbjtcclxuICBrZXl3b3JkITogc3RyaW5nO1xyXG4gIHNpZCE6IHN0cmluZztcclxuICB1c2VybmFtZSE6IHN0cmluZztcclxuICBleHBpcmVzQXQhOiBzdHJpbmc7XHJcbiAgYXZhdGFyITogc3RyaW5nO1xyXG5cclxuXHJcbiAgdW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICByb3V0aW5nSGlzdG9yeTogSVJvdXRpbmdIaXN0b3J5SXRlbVtdID0gW107XHJcblxyXG4gIHBlbmRpbmdVcmwhOiBzdHJpbmc7XHJcbiAgbGFzdENsaWNrZWRNZW51SXRlbSE6IElOYXZpZ2F0b3JJdGVtIHwgbnVsbDtcclxuICBsYXN0Q2xpY2tlZE1lbnVJdGVtU3RyaW5nITogc3RyaW5nO1xyXG5cclxuICBkaWFsb2dJbnN0YW5jZU51bWJlciE6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcm91dGluZ1NlcnZpY2U6IFJvdXRpbmdTZXJ2aWNlLFxyXG4gICAgcHVibGljIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGh1YkNvbm5lY3Rpb25TZXJ2aWNlOiBIdWJDb25uZWN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgdXNlckFjdGl2aXR5U2VydmljZTogVXNlckFjdGl2aXR5U2VydmljZSxcclxuICAgIHByaXZhdGUgdXJsU2VydmljZTogVXJsU2VydmljZSxcclxuICAgIHByaXZhdGUgbmF2aWdhdG9yU2VydmljZTogTmF2aWdhdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcFNlcnZpY2U6IEFwcFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuZGlhbG9nQ29uZmlybWVkJC5waXBlKFxyXG4gICAgICAgIGZpbHRlcih4ID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIC8vICEhdGhpcy5kaWFsb2dTZXJ2aWNlLmJ1c3lcclxuICAgICAgICAgICAgdHJ1ZVxyXG4gICAgICAgICAgICAmJiB4Py5pbnN0YW5jZU51bWJlciA9PT0gdGhpcy5kaWFsb2dJbnN0YW5jZU51bWJlciAmJiAhIXg/LmNvbmZpcm1lZFxyXG4gICAgICAgICAgICAmJiAhIXRoaXMubmF2aWdhdG9yU2VydmljZS5jbGlja2VkSXRlbSQudmFsdWVcclxuICAgICAgICAgICAgJiYgKHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmlkID09PSAnOGMyNDY4M2QtN2Q1Mi00ZjVhLTgwOTAtMzFjNzc3ZTg4NjlkJyB8fCB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5pZCA9PT0gJ2JkM2U0YWQ0LTExZmMtNDc2Ni05MjI0LTRmOTkwMmYzYTYyMycpXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgfSlcclxuICAgICAgKS5zdWJzY3JpYmUoXyA9PiB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoXHJcbiAgICAgICAgICBbXHJcbiAgICAgICAgICAgICcvcm9vdCcsXHJcbiAgICAgICAgICAgICd1cmwtbWFwcGVyJyxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgICB7IHN0YXRlOiB7IHVybDogdGhpcy5wZW5kaW5nVXJsLCBsYXN0Q2xpY2tlZE1lbnVJdGVtOiB0aGlzLmxhc3RDbGlja2VkTWVudUl0ZW0sIGxhc3RDbGlja2VkTWVudUl0ZW1TdHJpbmc6IHRoaXMubGFzdENsaWNrZWRNZW51SXRlbVN0cmluZyB9IH1cclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UucmVzZXRTZXJ2aWNlKCk7XHJcblxyXG4gICAgICB9KVxyXG4gICAgKVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLm5hdmlnYXRvclNlcnZpY2UuY2xpY2tlZEl0ZW0kLnBpcGUoZmlsdGVyKHMgPT4gISFzKSkuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgIHRoaXMubGFzdENsaWNrZWRNZW51SXRlbSA9IHhcclxuICAgICAgICB0aGlzLmxhc3RDbGlja2VkTWVudUl0ZW1TdHJpbmcgPSBgWyR7eD8uaWR9XT0+JHt0aGlzLm1scy50cmFucyh4IS5jb2RlKX09Pigke3g/LnVybH0pYFxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcblxyXG4gICAgICB0aGlzLnVybFNlcnZpY2UuY3VycmVudFJvdXRlVXJsJC5uZXh0KHRoaXMucm91dGVyLnVybCk7XHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC5zdWJzY3JpYmUoeCA9PiB0aGlzLnJvdXRpbmdIaXN0b3J5ID0geClcclxuICAgICAgKVxyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgocm91dGVyRXZlbnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja1JvdXRlckV2ZW50KHJvdXRlckV2ZW50IGFzIFJvdXRlckV2ZW50KTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMudXJsU2VydmljZS5jdXJyZW50Um91dGVVcmwkLnBpcGUoXHJcbiAgICAgICAgICBmaWx0ZXIoeCA9PiB7XHJcbiAgICAgICAgICAgIGlmICghIXRoaXMuZGlhbG9nU2VydmljZS5zaG93Q29uZmlybURpYWxvZyQudmFsdWUpIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgcmV0dXJuICEhIVsnLyddLmluY2x1ZGVzKHgpXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICkuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgY29uc3QgaWdub3JlZFBhdGhzID0gdGhpcy5yb3V0aW5nU2VydmljZS5pZ25vcmVkUGF0aHMkLnZhbHVlO1xyXG4gICAgICAgICAgY29uc3QgZnVsbEZ1bmN0aW9ucyA9IHRoaXMucm91dGluZ1NlcnZpY2UuZnVsbEZ1bmN0aW9ucyQudmFsdWUuZmlsdGVyKGYgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gISEhaWdub3JlZFBhdGhzLmluY2x1ZGVzKGYucGF0aClcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgY29uc3QgZnVuY3Rpb25GaWx0ZXIgPSBmdWxsRnVuY3Rpb25zLmZpbHRlcihmID0+IHtcclxuICAgICAgICAgICAgaWYgKGYucGF0aEZ1bGxNYXRjaCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiBmLnBhdGggPT09IHg7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHguaW5kZXhPZihmLnBhdGgpID09PSAwXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiZnVuY3Rpb25GaWx0ZXJcIiwgaWdub3JlZFBhdGhzKVxyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJmdW5jdGlvbkZpbHRlclwiLCBmdW5jdGlvbkZpbHRlcilcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiZnVuY3Rpb25GaWx0ZXJcIiwgaWdub3JlZFBhdGhzLmluY2x1ZGVzKFwiL2Ntcy9zeXN0ZW0vdXBlcm1pc3Npb24vMFwiKSlcclxuXHJcbiAgICAgICAgICBpZiAoeC5pbmRleE9mKCcvcm9vdCcpICE9PSAwICYmICEhIWZ1bmN0aW9uRmlsdGVyLmxlbmd0aCAmJiAhISFpZ25vcmVkUGF0aHMuaW5jbHVkZXMoeCkgJiYgISF0aGlzLm5hdmlnYXRvclNlcnZpY2UuY2xpY2tlZEl0ZW0kLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5pc1Jvb3QpIHtcclxuICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0luc3RhbmNlTnVtYmVyID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmRpYWxvZ0NvbmZpcm1lZCQubmV4dCh7XHJcbiAgICAgICAgICAgICAgICBpbnN0YW5jZU51bWJlcjogdGhpcy5kaWFsb2dJbnN0YW5jZU51bWJlcixcclxuICAgICAgICAgICAgICAgIGNvbmZpcm1lZDogZmFsc2VcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY3JlYXRlTmV3KFxyXG4gICAgICAgICAgICAgICAgRW51bVRyYW5zbGF0ZUtleS5VSV9DT1JFX0NPTkZJUk1fRElBTE9HX1RJVExFLFxyXG4gICAgICAgICAgICAgICAgRW51bVRyYW5zbGF0ZUtleS5ZRVMsXHJcbiAgICAgICAgICAgICAgICBFbnVtVHJhbnNsYXRlS2V5LklHTk9SRSxcclxuICAgICAgICAgICAgICAgIGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgRW51bVRyYW5zbGF0ZUtleS5ST09UX0NVUlJFTlRfVVJMX0RPRVNfTk9UX0VYSVNUX0lOX0FQUF9GVU5DVElPTl9QQVRIX0RPX1lPVV9XQU5UX1RPX01BUCxcclxuICAgICAgICAgICAgICAgIFt4XVxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChmdW5jdGlvbkZpbHRlci5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5jdXJyZW50RnVuY3Rpb24kLm5leHQoZnVuY3Rpb25GaWx0ZXJbMF0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIC8vIHRyeSB0byBzZXQgY3VycmVudCBmdW5jdGlvbiBpbW1lZGlhdGVseSB3aGVuIHVzZXIgaGFzIHByZXNzZWQgRjVcclxuICAgICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG4gICAgICBjb25zdCBpZ25vcmVkUGF0aHMgPSB0aGlzLnJvdXRpbmdTZXJ2aWNlLmlnbm9yZWRQYXRocyQudmFsdWU7XHJcbiAgICAgIGNvbnN0IGZ1bGxGdW5jdGlvbnMgPSB0aGlzLnJvdXRpbmdTZXJ2aWNlLmZ1bGxGdW5jdGlvbnMkLnZhbHVlLmZpbHRlcihmID0+IHtcclxuICAgICAgICByZXR1cm4gISEhaWdub3JlZFBhdGhzLmluY2x1ZGVzKGYucGF0aClcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnN0IGZ1bmN0aW9uRmlsdGVyID0gZnVsbEZ1bmN0aW9ucy5maWx0ZXIoZiA9PiB7XHJcbiAgICAgICAgaWYgKGYucGF0aEZ1bGxNYXRjaCkge1xyXG4gICAgICAgICAgcmV0dXJuIGYucGF0aCA9PT0gdXJsO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdXJsLmluZGV4T2YoZi5wYXRoKSA9PT0gMFxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG5cclxuICAgICAgaWYgKCEhZnVuY3Rpb25GaWx0ZXIubGVuZ3RoKSB7XHJcbiAgICAgICAgaWYgKGZ1bmN0aW9uRmlsdGVyLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgICB2YXIgZnVuY3Rpb25GaWx0ZXJMaW5rczogc3RyaW5nW10gPSBbXTtcclxuICAgICAgICAgICAgZnVuY3Rpb25GaWx0ZXIubWFwKHggPT4ge1xyXG4gICAgICAgICAgICAgIGZ1bmN0aW9uRmlsdGVyTGlua3MucHVzaCh4LnBhdGggKyBcIiAoXCIgKyAoeC5wYXRoRnVsbE1hdGNoID8gXCJ0xrDGoW5nIOG7qW5nIHRvw6BuIHBo4bqnblwiIDogXCJ0xrDGoW5nIOG7qW5nIHBo4bqnbiBiw6puIHRyw6FpXCIpICsgXCIpXCIpXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgIGBOaGnhu4F1IGjGoW4gMDEgY2jhu6ljIG7Eg25nIGPDuW5nIMSRYW5nIHTGsMahbmcg4bupbmcgduG7m2kgxJFp4buBdSBoxrDhu5tuZyAke3VybH06XFxuJHtKU09OLnN0cmluZ2lmeShmdW5jdGlvbkZpbHRlckxpbmtzLCBudWxsLCAyKX1gLFxyXG4gICAgICAgICAgICAgIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIE7hur91IGtow7RuZyBwaOG6o2kgSVNfUk9PVCBjxaluZyBraMO0bmcgcGjhuqNpIElTX0FETUlOIHRow6wgxJFp4buBdSBoxrDhu5tuZyB24buBIHRyYW5nIGNo4bunXHJcbiAgICAgICAgICBpZiAoIXRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmlzUm9vdCAmJiAhdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZT8uaXNBZG1pbikgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2hvbWUnKVxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICAgIC8vIEtp4buDbSB0cmEgeGVtIGPDsyBxdXnhu4FuIHbhu5tpIEZ1bmN0aW9uIGhp4buHbiB04bqhaSBoYXkga2jDtG5nXHJcbiAgICAgICAgICBjb25zdCB0cnlGaW5kID0gdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZT8ucGVybWlzc2lvbkFjdGlvbnMuZmlsdGVyKHggPT4geC5mdW5jdGlvbklkID09PSBmdW5jdGlvbkZpbHRlclswXS5pZClcclxuICAgICAgICAgIC8vIE7hur91IGtow7RuZyB0w6xtIHRo4bqleSB2w6Aga2jDtG5nIHBo4bqjaSBJU19ST09UIGPFqW5nIGtow7RuZyBwaOG6o2kgSVNfQURNSU4gdGjDrCDEkcawYSByYSB0aMO0bmcgYsOhbyB2w6AgxJFp4buBdSBoxrDhu5tuZyB24buBIHRyYW5nIGNo4bunXHJcbiAgICAgICAgICBpZiAoIXRyeUZpbmQ/Lmxlbmd0aCAmJiAhdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZT8uaXNSb290ICYmICF0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5pc0FkbWluKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgIGZ1bmN0aW9uRmlsdGVyWzBdLnBhdGggKyBcIiBcIiArXHJcbiAgICAgICAgICAgICAgdGhpcy5tbHMudHJhbnMoJ0NPUkUuUEVSTUlTU0lPTi5USEVfUEFUSF9JU19OT1RfUEVSTUlUVEVEJyksXHJcbiAgICAgICAgICAgICAgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpXHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9ob21lJylcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmN1cnJlbnRGdW5jdGlvbiQubmV4dChmdW5jdGlvbkZpbHRlclswXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG5cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBjaGVja1JvdXRlckV2ZW50KHJvdXRlckV2ZW50OiBSb3V0ZXJFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHJvdXRlckV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XHJcbiAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UubmF2aWdhdGlvblVybCQubmV4dChyb3V0ZXJFdmVudC51cmwpO1xyXG5cclxuICAgICAgLy8gU2tpcCBuYXZpZ2F0aW5nIGVmZmVjdCB3aGVuIHRoZSBuYXZpZ2F0aW9uIHN0YXJ0cyB3aXRoIC9jbXMvcHJvZmlsZS9idXNpbmVzcy9zdGFmZnByb2ZpbGVcclxuICAgICAgaWYgKHJvdXRlckV2ZW50LnVybC5pbmRleE9mKFwiL2Ntcy9wcm9maWxlL2J1c2luZXNzL3N0YWZmcHJvZmlsZVwiKSAhPT0gMCkge1xyXG4gICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UubmF2aWdhdGluZyQubmV4dCh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChyb3V0ZXJFdmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcclxuICAgICAgdGhpcy51cmwgPSB0aGlzLnJvdXRlci51cmw7XHJcblxyXG4gICAgICBpZiAoISF0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5pc0ZpcnN0TG9naW4gJiYgdGhpcy51cmwgIT09ICcvY21zL2NoYW5nZS1wYXNzd29yZCcpIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2NtcycsICdjaGFuZ2UtcGFzc3dvcmQnLCBidG9hKCh0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlIGFzIElBdXRoRGF0YSkucmVmcmVzaFRva2VuLnVzZXIpXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IG5ld1JvdXRpbmdIaXN0b3J5OiBJUm91dGluZ0hpc3RvcnlJdGVtW10gPSB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC52YWx1ZTtcclxuICAgICAgbmV3Um91dGluZ0hpc3RvcnkucHVzaCh7IGZ1bGxVcmw6IHRoaXMudXJsIH0pO1xyXG4gICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC5uZXh0KG5ld1JvdXRpbmdIaXN0b3J5KTtcclxuXHJcbiAgICAgIGNvbnN0IHVzZXJBY3Rpdml0eSA9IHRoaXMudXNlckFjdGl2aXR5U2VydmljZS51c2VyQWN0aXZpdHkkLnZhbHVlO1xyXG4gICAgICBjb25zdCBhdXRoID0gdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZTtcclxuXHJcbiAgICAgIGNvbnN0IG5ld1VzZXJBY3Rpdml0eSA9IHVzZXJBY3Rpdml0eS5maWx0ZXIoaXRlbSA9PiBpdGVtLnNpZCAhPT0gYXV0aD8uaWQpXHJcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSB0aGlzLmh1YkNvbm5lY3Rpb25TZXJ2aWNlLmh1YkNvbm5lY3Rpb24kLnZhbHVlO1xyXG4gICAgICBuZXdVc2VyQWN0aXZpdHkucHVzaCh7XHJcbiAgICAgICAgc2lkOiBhdXRoPy5mdWxsTmFtZSEsXHJcbiAgICAgICAgdXNlcm5hbWU6IGF1dGg/LnVzZXJOYW1lISxcclxuICAgICAgICBwYXRobmFtZTogdGhpcy51cmwsXHJcbiAgICAgICAgYXZhdGFyOiBhdXRoPy5hdmF0YXIhLFxyXG4gICAgICAgIGh1YkNvbm5lY3Rpb25JZDogY29ubmVjdGlvbj8uY29ubmVjdGlvbklkISxcclxuICAgICAgICBhY2Nlc3NUaW1lOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSxcclxuICAgICAgfSlcclxuXHJcbiAgICAgIGNvbnN0IGFjY2Vzc01vbWVudCA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGNvbnN0IGFjY2Vzc1RpbWUgPSBhY2Nlc3NNb21lbnQuZ2V0VGltZSgpO1xyXG5cclxuICAgICAgY29uc3QgYWN0aXZpdHk6IElIdWJDb25uZWN0aW9uQWN0aXZpdHkgPSB7XHJcbiAgICAgICAgc2lkOiBhdXRoPy5mdWxsTmFtZSEsXHJcbiAgICAgICAgc2lnbmFsVHlwZTogRW51bVNpZ25hbFJUeXBlLkFDVElWSVRZLFxyXG4gICAgICAgIHVzZXJuYW1lOiBhdXRoPy51c2VyTmFtZSEsXHJcbiAgICAgICAgYXZhdGFyOiBhdXRoPy5hdmF0YXIhLFxyXG4gICAgICAgIG1lc3NhZ2U6IGAke2F1dGg/LnVzZXJOYW1lfSBuYXZpZ2F0ZWQgdG8gJHtsb2NhdGlvbi5wYXRobmFtZX1gLFxyXG4gICAgICAgIGxvZ2luVGltZTogdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZT8ubG9naW5UaW1lISxcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICBzaWQ6IGF1dGg/LmZ1bGxOYW1lLFxyXG4gICAgICAgICAgdXNlck5hbWU6IGF1dGg/LnVzZXJOYW1lLFxyXG4gICAgICAgICAgcGF0aG5hbWU6IHRoaXMudXJsLFxyXG4gICAgICAgICAgYXZhdGFyOiBhdXRoPy5hdmF0YXIsXHJcbiAgICAgICAgICBodWJDb25uZWN0aW9uSWQ6IGNvbm5lY3Rpb24/LmNvbm5lY3Rpb25JZCEsXHJcbiAgICAgICAgICBhY2Nlc3NUaW1lLFxyXG4gICAgICAgICAgdXNlckFjdGl2aXR5OiBuZXdVc2VyQWN0aXZpdHksXHJcbiAgICAgICAgfSxcclxuICAgICAgfVxyXG5cclxuICAgICAgLyogaWYgbG9nIG5lZWRlZFxyXG4gICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgICAgY29uc3QgbG9nUGF5bG9hZDogSUxvZ1VzZXJBY3Rpdml0eSA9IHtcclxuICAgICAgICBjbGllbnRDb2RlOiAnVk5TJyxcclxuICAgICAgICBhcHBUeXBlOiAnV0VCQVBQJyxcclxuICAgICAgICB1c2VybmFtZTogYXV0aD8udXNlck5hbWUsXHJcbiAgICAgICAgc2lkOiBhdXRoPy5mdWxsTmFtZSxcclxuICAgICAgICBsb2dpblRpbWU6IHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmxvZ2luVGltZSA/IG5ldyBEYXRlKHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmxvZ2luVGltZSkgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgYWNjZXNzVGltZTogYWNjZXNzTW9tZW50LFxyXG4gICAgICAgIHBhdGg6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxyXG4gICAgICAgIHBhdGhuYW1lOiAnJ1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAod2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZignbG9jYWxob3N0JykgPCAwICYmIHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoJy53ZWIuYXBwJykgPCAwKSB7XHJcbiAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLnBvc3RGdWxsVXJsKFwiaHR0cHM6Ly9ibG9nLnRhbmxlaWNhLmNvbS9hcGkvTG9nVXNlckFjdGl2aXR5L0NyZWF0ZVwiLCBsb2dQYXlsb2FkKS5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG4gICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgICAgKi9cclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwiTmF2aWdhdGlvbkVuZCBhY3Rpdml0eVwiLCBhY3Rpdml0eSlcclxuICAgICAgaWYgKCEhY29ubmVjdGlvbikge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBjb25uZWN0aW9uPy5pbnZva2UoXCJTZW5kTWVzc2FnZVwiLCBhY3Rpdml0eSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihlKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChyb3V0ZXJFdmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHxcclxuICAgICAgcm91dGVyRXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsIHx8XHJcbiAgICAgIHJvdXRlckV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVycm9yKSB7XHJcblxyXG5cclxuICAgICAgY29uc29sZS5ncm91cChcInJvdXRlckV2ZW50LnVybFwiKVxyXG4gICAgICBjb25zb2xlLmxvZyhyb3V0ZXJFdmVudC51cmwpXHJcbiAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMucm91dGluZ1NlcnZpY2UucG9ydGFsUm91dGVzJC52YWx1ZS5maWx0ZXIoeCA9PiB4LnBhdGggPT09IHJvdXRlckV2ZW50LnVybCk7XHJcbiAgICAgIGlmIChmaWx0ZXIubGVuZ3RoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubGFuZyA9PT0gXCJ2aVwiKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmN1cnJlbnRTY3JlZW5DYXB0aW9uJC5uZXh0KGZpbHRlclswXS52aSlcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubGFuZyA9PT0gXCJlblwiKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmN1cnJlbnRTY3JlZW5DYXB0aW9uJC5uZXh0KGZpbHRlclswXS5lbilcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5jdXJyZW50U2NyZWVuQ2FwdGlvbiQubmV4dChmaWx0ZXJbMF0udmkpXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuY3VycmVudFNjcmVlbkNhcHRpb24kLm5leHQoJycpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKVxyXG5cclxuICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5uYXZpZ2F0aW5nJC5uZXh0KGZhbHNlKTtcclxuXHJcbiAgICAgIHRoaXMudXJsU2VydmljZS5wcmV2aW91c1JvdXRlVXJsJC5uZXh0KHRoaXMudXJsU2VydmljZS5jdXJyZW50Um91dGVVcmwkLnZhbHVlKTtcclxuICAgICAgdGhpcy51cmxTZXJ2aWNlLmN1cnJlbnRSb3V0ZVVybCQubmV4dChyb3V0ZXJFdmVudC51cmwpO1xyXG5cclxuICAgICAgc3dpdGNoICh0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQVBQX1RZUEUpIHtcclxuICAgICAgICBjYXNlIFwiV0VCQVBQXCI6XHJcblxyXG4gICAgICAgICAgLy8gdGhpcy5sYXlvdXRTZXJ2aWNlLmxlZnRiYXJSZWR1Y2VkJC5uZXh0KHRydWUpOyAvLyBpZiB3ZSB3YW50IGF1dG8tcmVkdWNlIHRoZSBtZW51LCB1bmNvbW1lbnQgdGhpcyBsaW5lXHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbGVmdEJhciA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCctLXNpemUtbGVmdC1iYXItY3VycmVudC13aWR0aCcpLnJlcGxhY2UoJ3B4JywgJycpO1xyXG4gICAgICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UubGVmdEJhckN1cnJlbnRXaWR0aCQubmV4dChOdW1iZXIobGVmdEJhcikpXHJcbiAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5jb250ZW50Q29udGFpbmVyV2lkdGgkLm5leHQod2luZG93LmlubmVyV2lkdGggLSBOdW1iZXIobGVmdEJhcikpXHJcbiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1jb250ZW50LWNvbnRhaW5lci13aWR0aCcsIHdpbmRvdy5pbm5lcldpZHRoIC0gTnVtYmVyKGxlZnRCYXIpICsgJ3B4JylcclxuICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIlBPUlRBTFwiOlxyXG5cclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2hlY2tSb3V0ZXJFdmVudFwiLCByb3V0ZXJFdmVudC51cmwpO1xyXG5cclxuICAgICAgICAgIGlmICghcm91dGVyRXZlbnQudXJsLmVuZHNXaXRoKCctZWRpdCcpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXJsU2VydmljZS5wcmV2aW91c1JvdXRlVXJsJC5uZXh0KHRoaXMudXJsU2VydmljZS5jdXJyZW50Um91dGVVcmwkLnZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy51cmxTZXJ2aWNlLmN1cnJlbnRSb3V0ZVVybCQubmV4dChyb3V0ZXJFdmVudC51cmwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudXJsU2VydmljZS5jdXJyZW50Um91dGVVcmwkLm5leHQocm91dGVyRXZlbnQudXJsKVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldEFjdGl2aXR5SGlzdG9yeSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGF1dGggPSB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlO1xyXG4gICAgaWYgKCFhdXRoPy5pc0FkbWluKSByZXR1cm47XHJcbiAgICBjb25zdCBjb25uZWN0aW9uID0gdGhpcy5odWJDb25uZWN0aW9uU2VydmljZS5odWJDb25uZWN0aW9uJC52YWx1ZTtcclxuICAgIGNvbnN0IGFjdGl2aXR5OiBJSHViQ29ubmVjdGlvbkFjdGl2aXR5ID0ge1xyXG4gICAgICBzaWQ6IGF1dGg/LmZ1bGxOYW1lISxcclxuICAgICAgc2lnbmFsVHlwZTogRW51bVNpZ25hbFJUeXBlLkFDVElWSVRZX0hJU1RPUllfUkVTRVQsXHJcbiAgICAgIHVzZXJuYW1lOiBhdXRoPy51c2VyTmFtZSEsXHJcbiAgICAgIGF2YXRhcjogYXV0aD8uYXZhdGFyISxcclxuICAgICAgbWVzc2FnZTogYCR7YXV0aD8udXNlck5hbWV9IGhhcyByZXNldCBhY3Rpdml0eSBoaXN0b3J5YCxcclxuICAgICAgbG9naW5UaW1lOiB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5sb2dpblRpbWUhLFxyXG4gICAgICBkYXRhOiBudWxsLFxyXG4gICAgfVxyXG5cclxuICAgIGlmICghIWNvbm5lY3Rpb24pIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25uZWN0aW9uPy5pbnZva2UoXCJTZW5kTWVzc2FnZVwiLCBhY3Rpdml0eSk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKGUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLm1hcCh4ID0+IHg/LnVuc3Vic2NyaWJlKCkpXHJcbiAgfVxyXG5cclxufVxyXG4iLCIiXX0=
|
|
302
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1uYXZpZ2F0aW9uLXRyYWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtbmF2aWdhdGlvbi10cmFja2VyL2NvcmUtbmF2aWdhdGlvbi10cmFja2VyL2NvcmUtbmF2aWdhdGlvbi10cmFja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLW5hdmlnYXRpb24tdHJhY2tlci9jb3JlLW5hdmlnYXRpb24tdHJhY2tlci9jb3JlLW5hdmlnYXRpb24tdHJhY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBa0IsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQXVCLE1BQU0saUJBQWlCLENBQUM7QUFDekksT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFZaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHMUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQXVCN0UsTUFBTSxPQUFPLDhCQUE4QjtJQW1DekMsWUFDVSxXQUF3QixFQUN4QixNQUFjLEVBQ2QsS0FBcUIsRUFDckIsY0FBOEIsRUFDL0IsYUFBNEIsRUFDM0Isb0JBQTBDLEVBQzFDLG1CQUF3QyxFQUN4QyxVQUFzQixFQUN0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QUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFDL0MsQ0FBQzs4R0EvV1UsOEJBQThCO2tHQUE5Qiw4QkFBOEIsbUZDekMzQyxFQUFBOzsyRkR5Q2EsOEJBQThCO2tCQVAxQyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkNhbmNlbCwgTmF2aWdhdGlvbkVuZCwgTmF2aWdhdGlvbkVycm9yLCBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciwgUm91dGVyRXZlbnQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEVudW1TaWduYWxSVHlwZSB9IGZyb20gJy4uLy4uLy4uL2VudW0vRW51bVNpZ25hbFJUeXBlJztcclxuaW1wb3J0IHsgSUh1YkNvbm5lY3Rpb25BY3Rpdml0eSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvSUh1YkNvbm5lY3Rpb25BY3Rpdml0eSc7XHJcbmltcG9ydCB7IFJvdXRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcm91dGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHViQ29ubmVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9odWItY29ubmVjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlckFjdGl2aXR5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3VzZXItYWN0aXZpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IElSb3V0aW5nSGlzdG9yeUl0ZW0gfSBmcm9tICcuLi8uLi9jb3JlLXJvdXRpbmctaGlzdG9yeS9jb3JlLXJvdXRpbmctaGlzdG9yeS9jb3JlLXJvdXRpbmctaGlzdG9yeS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVcmxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXJsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgSU5hdmlnYXRvckl0ZW0gfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL0lOYXZpZ2F0b3JJdGVtJztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYWxlcnRPcHRpb25zJztcclxuaW1wb3J0IHsgSUF1dGhEYXRhIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9JQXV0aERhdGEnO1xyXG5pbXBvcnQgeyBBcHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBwLWNvbmZpZy5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUxvZ1VzZXJBY3Rpdml0eSB7XHJcbiAgY2xpZW50Q29kZTogc3RyaW5nO1xyXG4gIGFwcFR5cGU6IHN0cmluZztcclxuICB1c2VybmFtZT86IHN0cmluZztcclxuICBzaWQ/OiBzdHJpbmc7XHJcbiAgbG9naW5UaW1lPzogRGF0ZTtcclxuICBhY2Nlc3NUaW1lOiBEYXRlO1xyXG4gIHBhdGg6IHN0cmluZztcclxuICBwYXRobmFtZT86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLW5hdmlnYXRpb24tdHJhY2tlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1uYXZpZ2F0aW9uLXRyYWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtbmF2aWdhdGlvbi10cmFja2VyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVOYXZpZ2F0aW9uVHJhY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIG5hdmlnYXRpbmchOiBib29sZWFuO1xyXG4gIHVybCE6IHN0cmluZztcclxuXHJcbiAgbGFuZyE6IHN0cmluZztcclxuXHJcbiAgYXBwQ29uZmlnOiBhbnkgPSB7XHJcbiAgICBzaG93TGF5b3V0OiAnZmFsc2UnXHJcbiAgfTtcclxuXHJcbiAgYXBwSW5pdGlhbGl6aW5nITogYm9vbGVhbjtcclxuICBsb2FkaW5nITogYm9vbGVhbjtcclxuICBzdWJtaXR0aW5nITogYm9vbGVhbjtcclxuICBtZW51T3BlbiE6IGJvb2xlYW47XHJcbiAgbGVmdGJhclJlZHVjZWQhOiBib29sZWFuO1xyXG4gIGtleXdvcmQhOiBzdHJpbmc7XHJcbiAgc2lkITogc3RyaW5nO1xyXG4gIHVzZXJuYW1lITogc3RyaW5nO1xyXG4gIGV4cGlyZXNBdCE6IHN0cmluZztcclxuICBhdmF0YXIhOiBzdHJpbmc7XHJcblxyXG5cclxuICB1bnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIHJvdXRpbmdIaXN0b3J5OiBJUm91dGluZ0hpc3RvcnlJdGVtW10gPSBbXTtcclxuXHJcbiAgcGVuZGluZ1VybCE6IHN0cmluZztcclxuICBsYXN0Q2xpY2tlZE1lbnVJdGVtITogSU5hdmlnYXRvckl0ZW0gfCBudWxsO1xyXG4gIGxhc3RDbGlja2VkTWVudUl0ZW1TdHJpbmchOiBzdHJpbmc7XHJcblxyXG4gIGRpYWxvZ0luc3RhbmNlTnVtYmVyITogbnVtYmVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByb3V0aW5nU2VydmljZTogUm91dGluZ1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcclxuICAgIHByaXZhdGUgaHViQ29ubmVjdGlvblNlcnZpY2U6IEh1YkNvbm5lY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1c2VyQWN0aXZpdHlTZXJ2aWNlOiBVc2VyQWN0aXZpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1cmxTZXJ2aWNlOiBVcmxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuYXZpZ2F0b3JTZXJ2aWNlOiBOYXZpZ2F0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwU2VydmljZTogQXBwU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5kaWFsb2dDb25maXJtZWQkLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKHggPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgLy8gISF0aGlzLmRpYWxvZ1NlcnZpY2UuYnVzeVxyXG4gICAgICAgICAgICB0cnVlXHJcbiAgICAgICAgICAgICYmIHg/Lmluc3RhbmNlTnVtYmVyID09PSB0aGlzLmRpYWxvZ0luc3RhbmNlTnVtYmVyICYmICEheD8uY29uZmlybWVkXHJcbiAgICAgICAgICAgICYmICEhdGhpcy5uYXZpZ2F0b3JTZXJ2aWNlLmNsaWNrZWRJdGVtJC52YWx1ZVxyXG4gICAgICAgICAgICAmJiAodGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZT8uaWQgPT09ICc4YzI0NjgzZC03ZDUyLTRmNWEtODA5MC0zMWM3NzdlODg2OWQnIHx8IHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmlkID09PSAnYmQzZTRhZDQtMTFmYy00NzY2LTkyMjQtNGY5OTAyZjNhNjIzJylcclxuICAgICAgICAgIClcclxuICAgICAgICB9KVxyXG4gICAgICApLnN1YnNjcmliZShfID0+IHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcclxuICAgICAgICAgIFtcclxuICAgICAgICAgICAgJy9yb290JyxcclxuICAgICAgICAgICAgJ3VybC1tYXBwZXInLFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICAgIHsgc3RhdGU6IHsgdXJsOiB0aGlzLnBlbmRpbmdVcmwsIGxhc3RDbGlja2VkTWVudUl0ZW06IHRoaXMubGFzdENsaWNrZWRNZW51SXRlbSwgbGFzdENsaWNrZWRNZW51SXRlbVN0cmluZzogdGhpcy5sYXN0Q2xpY2tlZE1lbnVJdGVtU3RyaW5nIH0gfVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5yZXNldFNlcnZpY2UoKTtcclxuXHJcbiAgICAgIH0pXHJcbiAgICApXHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMubmF2aWdhdG9yU2VydmljZS5jbGlja2VkSXRlbSQucGlwZShmaWx0ZXIocyA9PiAhIXMpKS5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgdGhpcy5sYXN0Q2xpY2tlZE1lbnVJdGVtID0geFxyXG4gICAgICAgIHRoaXMubGFzdENsaWNrZWRNZW51SXRlbVN0cmluZyA9IGBbJHt4Py5pZH1dPT4ke3RoaXMubWxzLnRyYW5zKHghLmNvZGUpfT0+KCR7eD8udXJsfSlgXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgIHRoaXMudXJsU2VydmljZS5jdXJyZW50Um91dGVVcmwkLm5leHQodGhpcy5yb3V0ZXIudXJsKTtcclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2Uucm91dGluZ0hpc3RvcnkkLnN1YnNjcmliZSh4ID0+IHRoaXMucm91dGluZ0hpc3RvcnkgPSB4KVxyXG4gICAgICApXHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKChyb3V0ZXJFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrUm91dGVyRXZlbnQocm91dGVyRXZlbnQgYXMgUm91dGVyRXZlbnQpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgKVxyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy51cmxTZXJ2aWNlLmN1cnJlbnRSb3V0ZVVybCQucGlwZShcclxuICAgICAgICAgIGZpbHRlcih4ID0+IHtcclxuICAgICAgICAgICAgaWYgKCEhdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dDb25maXJtRGlhbG9nJC52YWx1ZSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm4gISEhWycvJ10uaW5jbHVkZXMoeClcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKS5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpZ25vcmVkUGF0aHMgPSB0aGlzLnJvdXRpbmdTZXJ2aWNlLmlnbm9yZWRQYXRocyQudmFsdWU7XHJcbiAgICAgICAgICBjb25zdCBmdWxsRnVuY3Rpb25zID0gdGhpcy5yb3V0aW5nU2VydmljZS5mdWxsRnVuY3Rpb25zJC52YWx1ZS5maWx0ZXIoZiA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAhISFpZ25vcmVkUGF0aHMuaW5jbHVkZXMoZi5wYXRoKVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjb25zdCBmdW5jdGlvbkZpbHRlciA9IGZ1bGxGdW5jdGlvbnMuZmlsdGVyKGYgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZi5wYXRoRnVsbE1hdGNoKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGYucGF0aCA9PT0geDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4geC5pbmRleE9mKGYucGF0aCkgPT09IDBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJmdW5jdGlvbkZpbHRlclwiLCBpZ25vcmVkUGF0aHMpXHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcImZ1bmN0aW9uRmlsdGVyXCIsIGZ1bmN0aW9uRmlsdGVyKVxyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJmdW5jdGlvbkZpbHRlclwiLCBpZ25vcmVkUGF0aHMuaW5jbHVkZXMoXCIvY21zL3N5c3RlbS91cGVybWlzc2lvbi8wXCIpKVxyXG5cclxuICAgICAgICAgIGlmICh4LmluZGV4T2YoJy9yb290JykgIT09IDAgJiYgISEhZnVuY3Rpb25GaWx0ZXIubGVuZ3RoICYmICEhIWlnbm9yZWRQYXRocy5pbmNsdWRlcyh4KSAmJiAhIXRoaXMubmF2aWdhdG9yU2VydmljZS5jbGlja2VkSXRlbSQudmFsdWUpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmlzUm9vdCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZGlhbG9nSW5zdGFuY2VOdW1iZXIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuZGlhbG9nQ29uZmlybWVkJC5uZXh0KHtcclxuICAgICAgICAgICAgICAgIGluc3RhbmNlTnVtYmVyOiB0aGlzLmRpYWxvZ0luc3RhbmNlTnVtYmVyLFxyXG4gICAgICAgICAgICAgICAgY29uZmlybWVkOiBmYWxzZVxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5jcmVhdGVOZXcoXHJcbiAgICAgICAgICAgICAgICBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfQ09ORklSTV9ESUFMT0dfVElUTEUsXHJcbiAgICAgICAgICAgICAgICBFbnVtVHJhbnNsYXRlS2V5LllFUyxcclxuICAgICAgICAgICAgICAgIEVudW1UcmFuc2xhdGVLZXkuSUdOT1JFLFxyXG4gICAgICAgICAgICAgICAgZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBFbnVtVHJhbnNsYXRlS2V5LlJPT1RfQ1VSUkVOVF9VUkxfRE9FU19OT1RfRVhJU1RfSU5fQVBQX0ZVTkNUSU9OX1BBVEhfRE9fWU9VX1dBTlRfVE9fTUFQLFxyXG4gICAgICAgICAgICAgICAgW3hdXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGZ1bmN0aW9uRmlsdGVyLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmN1cnJlbnRGdW5jdGlvbiQubmV4dChmdW5jdGlvbkZpbHRlclswXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG5cclxuICAgICAgLy8gdHJ5IHRvIHNldCBjdXJyZW50IGZ1bmN0aW9uIGltbWVkaWF0ZWx5IHdoZW4gdXNlciBoYXMgcHJlc3NlZCBGNVxyXG4gICAgICBjb25zdCB1cmwgPSB0aGlzLnJvdXRlci51cmw7XHJcbiAgICAgIGNvbnN0IGlnbm9yZWRQYXRocyA9IHRoaXMucm91dGluZ1NlcnZpY2UuaWdub3JlZFBhdGhzJC52YWx1ZTtcclxuICAgICAgY29uc3QgZnVsbEZ1bmN0aW9ucyA9IHRoaXMucm91dGluZ1NlcnZpY2UuZnVsbEZ1bmN0aW9ucyQudmFsdWUuZmlsdGVyKGYgPT4ge1xyXG4gICAgICAgIHJldHVybiAhISFpZ25vcmVkUGF0aHMuaW5jbHVkZXMoZi5wYXRoKVxyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgZnVuY3Rpb25GaWx0ZXIgPSBmdWxsRnVuY3Rpb25zLmZpbHRlcihmID0+IHtcclxuICAgICAgICBpZiAoZi5wYXRoRnVsbE1hdGNoKSB7XHJcbiAgICAgICAgICByZXR1cm4gZi5wYXRoID09PSB1cmw7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB1cmwuaW5kZXhPZihmLnBhdGgpID09PSAwXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcblxyXG4gICAgICBpZiAoISFmdW5jdGlvbkZpbHRlci5sZW5ndGgpIHtcclxuICAgICAgICBpZiAoZnVuY3Rpb25GaWx0ZXIubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICAgIHZhciBmdW5jdGlvbkZpbHRlckxpbmtzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgICAgICBmdW5jdGlvbkZpbHRlci5tYXAoeCA9PiB7XHJcbiAgICAgICAgICAgICAgZnVuY3Rpb25GaWx0ZXJMaW5rcy5wdXNoKHgucGF0aCArIFwiIChcIiArICh4LnBhdGhGdWxsTWF0Y2ggPyBcInTGsMahbmcg4bupbmcgdG/DoG4gcGjhuqduXCIgOiBcInTGsMahbmcg4bupbmcgcGjhuqduIGLDqm4gdHLDoWlcIikgKyBcIilcIilcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgYE5oaeG7gXUgaMahbiAwMSBjaOG7qWMgbsSDbmcgY8O5bmcgxJFhbmcgdMawxqFuZyDhu6luZyB24bubaSDEkWnhu4F1IGjGsOG7m25nICR7dXJsfTpcXG4ke0pTT04uc3RyaW5naWZ5KGZ1bmN0aW9uRmlsdGVyTGlua3MsIG51bGwsIDIpfWAsXHJcbiAgICAgICAgICAgICAgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnNcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gTuG6v3Uga2jDtG5nIHBo4bqjaSBJU19ST09UIGPFqW5nIGtow7RuZyBwaOG6o2kgSVNfQURNSU4gdGjDrCDEkWnhu4F1IGjGsOG7m25nIHbhu4EgdHJhbmcgY2jhu6dcclxuICAgICAgICAgIGlmICghdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZT8uaXNSb290ICYmICF0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5pc0FkbWluKSB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvaG9tZScpXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAgICAgLy8gS2nhu4NtIHRyYSB4ZW0gY8OzIHF1eeG7gW4gduG7m2kgRnVuY3Rpb24gaGnhu4duIHThuqFpIGhheSBraMO0bmdcclxuICAgICAgICAgIGNvbnN0IHRyeUZpbmQgPSB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5wZXJtaXNzaW9uQWN0aW9ucy5maWx0ZXIoeCA9PiB4LmZ1bmN0aW9uSWQgPT09IGZ1bmN0aW9uRmlsdGVyWzBdLmlkKVxyXG4gICAgICAgICAgLy8gTuG6v3Uga2jDtG5nIHTDrG0gdGjhuqV5IHbDoCBraMO0bmcgcGjhuqNpIElTX1JPT1QgY8Wpbmcga2jDtG5nIHBo4bqjaSBJU19BRE1JTiB0aMOsIMSRxrBhIHJhIHRow7RuZyBiw6FvIHbDoCDEkWnhu4F1IGjGsOG7m25nIHbhu4EgdHJhbmcgY2jhu6dcclxuICAgICAgICAgIGlmICghdHJ5RmluZD8ubGVuZ3RoICYmICF0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5pc1Jvb3QgJiYgIXRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmlzQWRtaW4pIHtcclxuICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgZnVuY3Rpb25GaWx0ZXJbMF0ucGF0aCArIFwiIFwiICtcclxuICAgICAgICAgICAgICB0aGlzLm1scy50cmFucygnQ09SRS5QRVJNSVNTSU9OLlRIRV9QQVRIX0lTX05PVF9QRVJNSVRURUQnKSxcclxuICAgICAgICAgICAgICBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucylcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2hvbWUnKVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuY3VycmVudEZ1bmN0aW9uJC5uZXh0KGZ1bmN0aW9uRmlsdGVyWzBdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGNoZWNrUm91dGVyRXZlbnQocm91dGVyRXZlbnQ6IFJvdXRlckV2ZW50KTogdm9pZCB7XHJcblxyXG4gICAgaWYgKHJvdXRlckV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XHJcbiAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UubmF2aWdhdGlvblVybCQubmV4dChyb3V0ZXJFdmVudC51cmwpO1xyXG5cclxuICAgICAgLy8gU2tpcCBuYXZpZ2F0aW5nIGVmZmVjdCB3aGVuIHRoZSBuYXZpZ2F0aW9uIHN0YXJ0cyB3aXRoIC9jbXMvcHJvZmlsZS9idXNpbmVzcy9zdGFmZnByb2ZpbGVcclxuICAgICAgaWYgKHJvdXRlckV2ZW50LnVybC5pbmRleE9mKFwiL2Ntcy9wcm9maWxlL2J1c2luZXNzL3N0YWZmcHJvZmlsZVwiKSAhPT0gMCkge1xyXG4gICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UubmF2aWdhdGluZyQubmV4dCh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChyb3V0ZXJFdmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcclxuICAgICAgdGhpcy51cmwgPSB0aGlzLnJvdXRlci51cmw7XHJcblxyXG4gICAgICBpZiAoISF0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5pc0ZpcnN0TG9naW4gJiYgdGhpcy51cmwgIT09ICcvY21zL2NoYW5nZS1wYXNzd29yZCcpIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2NtcycsICdjaGFuZ2UtcGFzc3dvcmQnLCBidG9hKCh0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlIGFzIElBdXRoRGF0YSkucmVmcmVzaFRva2VuLnVzZXIpXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IG5ld1JvdXRpbmdIaXN0b3J5OiBJUm91dGluZ0hpc3RvcnlJdGVtW10gPSB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC52YWx1ZTtcclxuICAgICAgbmV3Um91dGluZ0hpc3RvcnkucHVzaCh7IGZ1bGxVcmw6IHRoaXMudXJsIH0pO1xyXG4gICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC5uZXh0KG5ld1JvdXRpbmdIaXN0b3J5KTtcclxuXHJcbiAgICAgIGNvbnN0IHVzZXJBY3Rpdml0eSA9IHRoaXMudXNlckFjdGl2aXR5U2VydmljZS51c2VyQWN0aXZpdHkkLnZhbHVlO1xyXG4gICAgICBjb25zdCBhdXRoID0gdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZTtcclxuXHJcbiAgICAgIGNvbnN0IG5ld1VzZXJBY3Rpdml0eSA9IHVzZXJBY3Rpdml0eS5maWx0ZXIoaXRlbSA9PiBpdGVtLnNpZCAhPT0gYXV0aD8uaWQpXHJcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSB0aGlzLmh1YkNvbm5lY3Rpb25TZXJ2aWNlLmh1YkNvbm5lY3Rpb24kLnZhbHVlO1xyXG4gICAgICBuZXdVc2VyQWN0aXZpdHkucHVzaCh7XHJcbiAgICAgICAgc2lkOiBhdXRoPy5mdWxsTmFtZSEsXHJcbiAgICAgICAgdXNlcm5hbWU6IGF1dGg/LnVzZXJOYW1lISxcclxuICAgICAgICBwYXRobmFtZTogdGhpcy51cmwsXHJcbiAgICAgICAgYXZhdGFyOiBhdXRoPy5hdmF0YXIhLFxyXG4gICAgICAgIGh1YkNvbm5lY3Rpb25JZDogY29ubmVjdGlvbj8uY29ubmVjdGlvbklkISxcclxuICAgICAgICBhY2Nlc3NUaW1lOiBuZXcgRGF0ZSgpLmdldFRpbWUoKSxcclxuICAgICAgfSlcclxuXHJcbiAgICAgIGNvbnN0IGFjY2Vzc01vbWVudCA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGNvbnN0IGFjY2Vzc1RpbWUgPSBhY2Nlc3NNb21lbnQuZ2V0VGltZSgpO1xyXG5cclxuICAgICAgY29uc3QgYWN0aXZpdHk6IElIdWJDb25uZWN0aW9uQWN0aXZpdHkgPSB7XHJcbiAgICAgICAgc2lkOiBhdXRoPy5mdWxsTmFtZSEsXHJcbiAgICAgICAgc2lnbmFsVHlwZTogRW51bVNpZ25hbFJUeXBlLkFDVElWSVRZLFxyXG4gICAgICAgIHVzZXJuYW1lOiBhdXRoPy51c2VyTmFtZSEsXHJcbiAgICAgICAgYXZhdGFyOiBhdXRoPy5hdmF0YXIhLFxyXG4gICAgICAgIG1lc3NhZ2U6IGAke2F1dGg/LnVzZXJOYW1lfSBuYXZpZ2F0ZWQgdG8gJHtsb2NhdGlvbi5wYXRobmFtZX1gLFxyXG4gICAgICAgIGxvZ2luVGltZTogdGhpcy5hdXRoU2VydmljZS5kYXRhJC52YWx1ZT8ubG9naW5UaW1lISxcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICBzaWQ6IGF1dGg/LmZ1bGxOYW1lLFxyXG4gICAgICAgICAgdXNlck5hbWU6IGF1dGg/LnVzZXJOYW1lLFxyXG4gICAgICAgICAgcGF0aG5hbWU6IHRoaXMudXJsLFxyXG4gICAgICAgICAgYXZhdGFyOiBhdXRoPy5hdmF0YXIsXHJcbiAgICAgICAgICBodWJDb25uZWN0aW9uSWQ6IGNvbm5lY3Rpb24/LmNvbm5lY3Rpb25JZCEsXHJcbiAgICAgICAgICBhY2Nlc3NUaW1lLFxyXG4gICAgICAgICAgdXNlckFjdGl2aXR5OiBuZXdVc2VyQWN0aXZpdHksXHJcbiAgICAgICAgfSxcclxuICAgICAgfVxyXG5cclxuICAgICAgLyogaWYgbG9nIG5lZWRlZFxyXG4gICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgICAgY29uc3QgbG9nUGF5bG9hZDogSUxvZ1VzZXJBY3Rpdml0eSA9IHtcclxuICAgICAgICBjbGllbnRDb2RlOiAnVk5TJyxcclxuICAgICAgICBhcHBUeXBlOiAnV0VCQVBQJyxcclxuICAgICAgICB1c2VybmFtZTogYXV0aD8udXNlck5hbWUsXHJcbiAgICAgICAgc2lkOiBhdXRoPy5mdWxsTmFtZSxcclxuICAgICAgICBsb2dpblRpbWU6IHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmxvZ2luVGltZSA/IG5ldyBEYXRlKHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQudmFsdWU/LmxvZ2luVGltZSkgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgYWNjZXNzVGltZTogYWNjZXNzTW9tZW50LFxyXG4gICAgICAgIHBhdGg6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxyXG4gICAgICAgIHBhdGhuYW1lOiAnJ1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAod2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZignbG9jYWxob3N0JykgPCAwICYmIHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoJy53ZWIuYXBwJykgPCAwKSB7XHJcbiAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLnBvc3RGdWxsVXJsKFwiaHR0cHM6Ly9ibG9nLnRhbmxlaWNhLmNvbS9hcGkvTG9nVXNlckFjdGl2aXR5L0NyZWF0ZVwiLCBsb2dQYXlsb2FkKS5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG4gICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgICAgKi9cclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwiTmF2aWdhdGlvbkVuZCBhY3Rpdml0eVwiLCBhY3Rpdml0eSlcclxuICAgICAgaWYgKCEhY29ubmVjdGlvbikge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBjb25uZWN0aW9uPy5pbnZva2UoXCJTZW5kTWVzc2FnZVwiLCBhY3Rpdml0eSk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihlKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChyb3V0ZXJFdmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHxcclxuICAgICAgcm91dGVyRXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsIHx8XHJcbiAgICAgIHJvdXRlckV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVycm9yKSB7XHJcblxyXG5cclxuICAgICAgY29uc29sZS5ncm91cChcInJvdXRlckV2ZW50LnVybFwiKVxyXG4gICAgICBjb25zb2xlLmxvZyhyb3V0ZXJFdmVudC51cmwpXHJcbiAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMucm91dGluZ1NlcnZpY2UucG9ydGFsUm91dGVzJC52YWx1ZS5maWx0ZXIoeCA9PiB4LnBhdGggPT09IHJvdXRlckV2ZW50LnVybCk7XHJcbiAgICAgIGlmIChmaWx0ZXIubGVuZ3RoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubGFuZyA9PT0gXCJ2aVwiKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmN1cnJlbnRTY3JlZW5DYXB0aW9uJC5uZXh0KGZpbHRlclswXS52aSlcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubGFuZyA9PT0gXCJlblwiKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmN1cnJlbnRTY3JlZW5DYXB0aW9uJC5uZXh0KGZpbHRlclswXS5lbilcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5jdXJyZW50U2NyZWVuQ2FwdGlvbiQubmV4dChmaWx0ZXJbMF0udmkpXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuY3VycmVudFNjcmVlbkNhcHRpb24kLm5leHQoJycpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKVxyXG5cclxuICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5uYXZpZ2F0aW5nJC5uZXh0KGZhbHNlKTtcclxuXHJcbiAgICAgIHN3aXRjaCAodGhpcy5hcHBDb25maWdTZXJ2aWNlLkFQUF9UWVBFKSB7XHJcbiAgICAgICAgY2FzZSBcIldFQkFQUFwiOlxyXG5cclxuICAgICAgICAgIHRoaXMudXJsU2VydmljZS5wcmV2aW91c1JvdXRlVXJsJC5uZXh0KHRoaXMudXJsU2VydmljZS5jdXJyZW50Um91dGVVcmwkLnZhbHVlKTtcclxuICAgICAgICAgIHRoaXMudXJsU2VydmljZS5jdXJyZW50Um91dGVVcmwkLm5leHQocm91dGVyRXZlbnQudXJsKTtcclxuXHJcbiAgICAgICAgICAvLyB0aGlzLmxheW91dFNlcnZpY2UubGVmdGJhclJlZHVjZWQkLm5leHQodHJ1ZSk7IC8vIGlmIHdlIHdhbnQgYXV0by1yZWR1Y2UgdGhlIG1lbnUsIHVuY29tbWVudCB0aGlzIGxpbmVcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBsZWZ0QmFyID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJy0tc2l6ZS1sZWZ0LWJhci1jdXJyZW50LXdpZHRoJykucmVwbGFjZSgncHgnLCAnJyk7XHJcbiAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5sZWZ0QmFyQ3VycmVudFdpZHRoJC5uZXh0KE51bWJlcihsZWZ0QmFyKSlcclxuICAgICAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbnRlbnRDb250YWluZXJXaWR0aCQubmV4dCh3aW5kb3cuaW5uZXJXaWR0aCAtIE51bWJlcihsZWZ0QmFyKSlcclxuICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWNvbnRlbnQtY29udGFpbmVyLXdpZHRoJywgd2luZG93LmlubmVyV2lkdGggLSBOdW1iZXIobGVmdEJhcikgKyAncHgnKVxyXG4gICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSBcIlBPUlRBTFwiOlxyXG5cclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2hlY2tSb3V0ZXJFdmVudFwiLCByb3V0ZXJFdmVudC51cmwpO1xyXG5cclxuICAgICAgICAgIGlmICghcm91dGVyRXZlbnQudXJsLmVuZHNXaXRoKCctZWRpdCcpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXJsU2VydmljZS5wcmV2aW91c1JvdXRlVXJsJC5uZXh0KHRoaXMudXJsU2VydmljZS5jdXJyZW50Um91dGVVcmwkLnZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy51cmxTZXJ2aWNlLmN1cnJlbnRSb3V0ZVVybCQubmV4dChyb3V0ZXJFdmVudC51cmwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudXJsU2VydmljZS5jdXJyZW50Um91dGVVcmwkLm5leHQocm91dGVyRXZlbnQudXJsKVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldEFjdGl2aXR5SGlzdG9yeSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGF1dGggPSB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlO1xyXG4gICAgaWYgKCFhdXRoPy5pc0FkbWluKSByZXR1cm47XHJcbiAgICBjb25zdCBjb25uZWN0aW9uID0gdGhpcy5odWJDb25uZWN0aW9uU2VydmljZS5odWJDb25uZWN0aW9uJC52YWx1ZTtcclxuICAgIGNvbnN0IGFjdGl2aXR5OiBJSHViQ29ubmVjdGlvbkFjdGl2aXR5ID0ge1xyXG4gICAgICBzaWQ6IGF1dGg/LmZ1bGxOYW1lISxcclxuICAgICAgc2lnbmFsVHlwZTogRW51bVNpZ25hbFJUeXBlLkFDVElWSVRZX0hJU1RPUllfUkVTRVQsXHJcbiAgICAgIHVzZXJuYW1lOiBhdXRoPy51c2VyTmFtZSEsXHJcbiAgICAgIGF2YXRhcjogYXV0aD8uYXZhdGFyISxcclxuICAgICAgbWVzc2FnZTogYCR7YXV0aD8udXNlck5hbWV9IGhhcyByZXNldCBhY3Rpdml0eSBoaXN0b3J5YCxcclxuICAgICAgbG9naW5UaW1lOiB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLnZhbHVlPy5sb2dpblRpbWUhLFxyXG4gICAgICBkYXRhOiBudWxsLFxyXG4gICAgfVxyXG5cclxuICAgIGlmICghIWNvbm5lY3Rpb24pIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25uZWN0aW9uPy5pbnZva2UoXCJTZW5kTWVzc2FnZVwiLCBhY3Rpdml0eSk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKGUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLm1hcCh4ID0+IHg/LnVuc3Vic2NyaWJlKCkpXHJcbiAgfVxyXG5cclxufVxyXG4iLCIiXX0=
|
|
@@ -176,6 +176,13 @@ export class AppInitializationService {
|
|
|
176
176
|
this.routingService.ignoredPaths$.next(body3.innerBody);
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
|
+
const x4 = responses[3];
|
|
180
|
+
if (x4.ok && x4.status === 200) {
|
|
181
|
+
body4 = x4.body;
|
|
182
|
+
if (body4.statusCode === 200) {
|
|
183
|
+
this.routingService.portalRoutes$.next(body4.innerBody);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
179
186
|
if (body1?.statusCode === 200 && body2?.statusCode === 200 && body3?.statusCode === 200) {
|
|
180
187
|
this.primaryInitialized = true;
|
|
181
188
|
if (!!OAUTH2OIDC_ENABLED && !!this.pendingAuthData$.value) {
|
|
@@ -239,4 +246,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
239
246
|
providedIn: 'root'
|
|
240
247
|
}]
|
|
241
248
|
}], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.MultiLanguageService }, { type: i3.LayoutService }, { type: i4.OrganizationService }, { type: i5.RoutingService }, { type: i6.AppConfigService }, { type: i7.AppService }] });
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWluaXRpYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9zZXJ2aWNlcy9hcHAtaW5pdGlhbGl6YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUF3QixNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFnQixNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFXbEYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7QUFLN0MsTUFBTSxPQUFPLHdCQUF3QjtJQWFuQyxZQUNVLFdBQXdCLEVBQ3hCLEdBQXlCLEVBQ3pCLGFBQTRCLEVBQzVCLG1CQUF3QyxFQUN4QyxjQUE4QixFQUM5QixnQkFBa0MsRUFDbEMsVUFBc0I7UUFOdEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsUUFBRyxHQUFILEdBQUcsQ0FBc0I7UUFDekIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBbEJoQyxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ25ELG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDcEQsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBRW5DLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUVoQyxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBbUIs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QWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0NBQ2pDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtnQ0FFVCxDQUFDLENBQUMsQ0FBQTs2QkFDTDt5QkFDRjtvQkFFSCxDQUFDLENBQUMsQ0FDSCxDQUFBO2dCQUdILENBQUMsQ0FBQyxDQUNILENBQUE7WUFFSCxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDN0Q7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsK0JBQStCLEVBQUUsQ0FBQyxDQUFDLENBQUE7U0FDaEQ7SUFFSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFDL0MsQ0FBQzs4R0FoVFUsd0JBQXdCO2tIQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTs7MkZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgemlwLCBjYXRjaEVycm9yLCBvZiwgU3Vic2NyaXB0aW9uLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4vbGF5b3V0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJRm9ybWF0ZWRSZXNwb25zZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSUZvcm1hdGVkUmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBJQXV0aERhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lBdXRoRGF0YSc7XHJcbmltcG9ydCB7IFJvdXRpbmdTZXJ2aWNlIH0gZnJvbSAnLi9yb3V0aW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPcmdhbml6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9vcmdhbml6YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IElFdmVyeVRyZWVTdGF0dXMgfSBmcm9tICcuLi9saWJyYXJpZXMvc2VydmljZXMvcmVjdXJzaXZlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBTZXJ2aWNlIH0gZnJvbSAnLi9hcHAuc2VydmljZSc7XHJcbmltcG9ydCB7IGFwaSB9IGZyb20gJ2FscGhhLWdsb2JhbC1jb25zdGFudHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwSW5pdGlhbGl6YXRpb25TZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuIFxyXG4gIGluaXRpYWxpemluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xyXG4gIHNzb1Byb2Nlc3NpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBwcmltYXJ5SW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzdG9yZVNlc3Npb25PazogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwZW5kaW5nQXV0aERhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJQXV0aERhdGEgfCBudWxsPihudWxsKTtcclxuXHJcbiAgc3NvRmFpbGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG9yZ2FuaXphdGlvblNlcnZpY2U6IE9yZ2FuaXphdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRpbmdTZXJ2aWNlOiBSb3V0aW5nU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwU2VydmljZTogQXBwU2VydmljZVxyXG4gICkge1xyXG5cclxuICB9XHJcblxyXG5cclxuICBhcHBJbml0aWFsaXplKCk6IHZvaWQge1xyXG5cclxuICAgIGNvbnN0IHRvQ2FtZWwgPSAobzogYW55KTogYW55ID0+IHtcclxuICAgICAgdmFyIG5ld08sIG9yaWdLZXksIG5ld0tleSwgdmFsdWVcclxuICAgICAgaWYgKG8gaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgIHJldHVybiBvLm1hcChmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgdmFsdWUgPSB0b0NhbWVsKHZhbHVlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHZhbHVlXHJcbiAgICAgICAgfSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdPID0ge31cclxuICAgICAgICBmb3IgKG9yaWdLZXkgaW4gbykge1xyXG4gICAgICAgICAgaWYgKG8uaGFzT3duUHJvcGVydHkob3JpZ0tleSkpIHtcclxuICAgICAgICAgICAgbmV3S2V5ID0gKG9yaWdLZXkuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyBvcmlnS2V5LnNsaWNlKDEpIHx8IG9yaWdLZXkpLnRvU3RyaW5nKClcclxuICAgICAgICAgICAgdmFsdWUgPSBvW29yaWdLZXldXHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5IHx8ICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZS5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0KSkge1xyXG4gICAgICAgICAgICAgIHZhbHVlID0gdG9DYW1lbCh2YWx1ZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAobmV3TyBhcyBhbnkpW25ld0tleV0gPSB2YWx1ZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbmV3T1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcblxyXG4gICAgICBmZXRjaCgnLi4vLi4vYXNzZXRzL2FwcC5jb25maWcuanNvbicpLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpLnRoZW4oKHtcclxuXHJcbiAgICAgICAgQVBQX1RZUEUsXHJcbiAgICAgICAgQkFTRV9VUkwsICAgICBcclxuICAgICAgICBHT0xJVkVfVVJMLFxyXG4gICAgICAgIERFQlVHX0VOQUJMRUQsXHJcblxyXG4gICAgICAgIExPR09fTE9HSU4sXHJcbiAgICAgICAgTE9HT19IRUFERVIsXHJcbiAgICAgICAgSE9NRV9CQUNLR1JPVU5EX0lNQUdFLCBcclxuXHJcbiAgICAgICAgT0FVVEgyT0lEQ19FTkFCTEVELFxyXG4gICAgICAgIE9BVVRIMk9JRENfQ0xJRU5UX0lELFxyXG5cclxuICAgICAgICBTQU1MMkFERlNfRU5BQkxFRCwgXHJcbiAgICAgICAgU0FNTDJBREZTX0lEUCwgXHJcbiAgICAgICAgU0FNTDJBREZTX0lERU5USUZJRVIsXHJcbiAgICAgICAgU0FNTDJBREZTX1dBX1NJR05JTixcclxuICAgICAgICBTQU1MMkFERlNfV0FfU0lHTk9VVCxcclxuICAgICAgICBTQU1MMkFERlNfV1JFUExZLFxyXG5cclxuICAgICAgICBIQU5HRklSRV9QQVRILFxyXG4gICAgICAgIFNUQVRJQ19GT0xERVIsXHJcbiAgICAgICAgQVZBVEFSX0ZPTERFUixcclxuXHJcbiAgICAgIH0pID0+IHtcclxuXHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkFQUF9UWVBFID0gQVBQX1RZUEU7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkJBU0VfVVJMID0gQkFTRV9VUkw7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkdPTElWRV9VUkwgPSBHT0xJVkVfVVJMO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5ERUJVR19FTkFCTEVEID0gREVCVUdfRU5BQkxFRDtcclxuXHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkxPR09fTE9HSU4gPSBMT0dPX0xPR0lOO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5MT0dPX0hFQURFUiA9IExPR09fSEVBREVSO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5IT01FX0JBQ0tHUk9VTkRfSU1BR0UgPSBIT01FX0JBQ0tHUk9VTkRfSU1BR0U7XHJcblxyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5PQVVUSDJPSURDX0VOQUJMRUQgPSBPQVVUSDJPSURDX0VOQUJMRUQ7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLk9BVVRIMk9JRENfQ0xJRU5UX0lEID0gT0FVVEgyT0lEQ19DTElFTlRfSUQ7XHJcblxyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfRU5BQkxFRCA9IFNBTUwyQURGU19FTkFCTEVEO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfSURQID0gU0FNTDJBREZTX0lEUDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lERU5USUZJRVIgPSBTQU1MMkFERlNfSURFTlRJRklFUjtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX1dBX1NJR05JTiA9IFNBTUwyQURGU19XQV9TSUdOSU47XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19XQV9TSUdOT1VUID0gU0FNTDJBREZTX1dBX1NJR05PVVQ7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19XUkVQTFkgPSBTQU1MMkFERlNfV1JFUExZO1xyXG5cclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuSEFOR0ZJUkVfUEFUSCA9IEhBTkdGSVJFX1BBVEg7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNUQVRJQ19GT0xERVIgPSBTVEFUSUNfRk9MREVSO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5BVkFUQVJfRk9MREVSID0gQVZBVEFSX0ZPTERFUjtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gKG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpKS5zZWFyY2hQYXJhbXM7XHJcbiAgICAgICAgY29uc3QgbG9jYWwgPSBwYXJhbXMuZ2V0KFwibG9jYWxcIik7XHJcblxyXG4gICAgICAgIGlmIChTQU1MMkFERlNfRU5BQkxFRCAmJiAhbG9jYWwpIHtcclxuICAgICAgICAgIGlmICghdGhpcy5zc29GYWlsZWQpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSBwYXJhbXMuZ2V0KFwidG9rZW5cIik7XHJcbiAgICAgICAgICAgICAgaWYgKHRva2VuICE9PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLmdldChhcGkuU1lTX1NIT1JUX0xJVkVEX1RPS0VOX0xPR0lOICsgXCI/dG9rZW49XCIgKyB0b2tlbikuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh4Lm9rICYmIHguc3RhdHVzID09PSAyMDAgJiYgeC5ib2R5Py5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvZHk6IElGb3JtYXRlZFJlc3BvbnNlID0geC5ib2R5XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoYm9keS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nQXV0aERhdGEkLm5leHQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJvZHkuaW5uZXJCb2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2luVGltZTogbmV3IERhdGUoKS5nZXRUaW1lKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zc29GYWlsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNzb1Byb2Nlc3NpbmckLm5leHQoZmFsc2UpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoISFsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdGJhclJlZHVjZWRTdHJpbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGVmdGJhclJlZHVjZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdGJhclJlZHVjZWQgPSBKU09OLnBhcnNlKGxlZnRiYXJSZWR1Y2VkU3RyaW5nISlcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmxlZnRiYXJSZWR1Y2VkJC5uZXh0KCEhbGVmdGJhclJlZHVjZWQpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRpbmdIaXN0b3J5U3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JvdXRpbmdIaXN0b3J5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghIXJvdXRpbmdIaXN0b3J5U3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm91dGluZ0hpc3RvcnkgPSBKU09OLnBhcnNlKHJvdXRpbmdIaXN0b3J5U3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC5uZXh0KHJvdXRpbmdIaXN0b3J5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb3JlT3JnVHJlZVN0YXR1c1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2F2ZWRPYmplY3Q6IElFdmVyeVRyZWVTdGF0dXMgPSBKU09OLnBhcnNlKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9yZ2FuaXphdGlvblNlcnZpY2Uuc3RhdHVzJC5uZXh0KHNhdmVkT2JqZWN0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXppbmckLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMClcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIClcclxuICAgIFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBBTFdBWVMgUkVESVJFQ1QgVE8gVEhFIEFOR1VMQVIgQVBQTElDQVRJT04gTE9HSU4gUEFHRSBJRiBOTyBTRVNTSU9OIEZPVU5EICg/bG9jYWw9MSlcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7dGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19JREVOVElGSUVSfT9sb2NhbD0xYDtcclxuXHJcbiAgICAgICAgICAgICAgICAvKlxyXG5cclxuICAgICAgICAgICAgICAgIC8vSUYgVEhFIEFOR1VMQVIgQVBQTElDQVRJT04gTE9HSU4gUEFHRSBJUyBOT1QgTUFOREFUT1JZID0+IENBTEwgU0FNTDIuMCBJZFBcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb2RlVmVyaWZpZXIgPSB0aGlzLmF1dGhTZXJ2aWNlLmdlbmVyYXRlUmFuZG9tQ29kZVZlcmlmaWVyKDQzKTtcclxuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiY29kZVZlcmlmaWVyXCIsIGNvZGVWZXJpZmllcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdlbmVyYXRlQ29kZUNoYWxsZW5nZUZyb21WZXJpZmllcihjb2RlVmVyaWZpZXIpLnRoZW4oY29kZUNoYWxsZW5nZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGF1dGhvcml6YXRpb25VcmwgPSBgJHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lEUH0/YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYHd0cmVhbG09JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lERU5USUZJRVJ9YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYCZ3YT0ke3RoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfV0FfU0lHTklOIHx8ICd3c2lnbmluMS4wJ31gICsgXHJcbiAgICAgICAgICAgICAgICAgICAgYCZ3cmVwbHk9JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQkFTRV9VUkx9JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX1dSRVBMWX1gICsgXHJcbiAgICAgICAgICAgICAgICAgICAgYCZ3Y3R4PSR7Y29kZUNoYWxsZW5nZX1gXHJcbiAgICAgICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0KGF1dGhvcml6YXRpb25VcmwpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGF1dGhvcml6YXRpb25Vcmw7XHJcblxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAqL1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zc29Qcm9jZXNzaW5nJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBib2R5MTogSUZvcm1hdGVkUmVzcG9uc2U7XHJcbiAgICAgICAgbGV0IGJvZHkyOiBJRm9ybWF0ZWRSZXNwb25zZTtcclxuICAgICAgICBsZXQgYm9keTM6IElGb3JtYXRlZFJlc3BvbnNlO1xyXG4gICAgICAgIGxldCBib2R5NDogSUZvcm1hdGVkUmVzcG9uc2U7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgdGhpcy5zc29Qcm9jZXNzaW5nJC5waXBlKFxyXG4gICAgICAgICAgICBmaWx0ZXIoeCA9PiAheClcclxuICAgICAgICAgICkuc3Vic2NyaWJlKHggPT4ge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICAgICAgemlwKFtcclxuICAgICAgICAgICAgICAgIHRoaXMubWxzLnJlYWRBbGxNaW5pKCksXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJlYWRBbGxGdW5jdGlvbldpdGhBbGxBY3Rpb25zKCksXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmdldElnbm9yZVBhdGhzKCksXHJcbiAgICAgICAgICAgICAgICB0aGlzLmFwcFNlcnZpY2UuZ2V0KGFwaS5QT1JUQUxfUk9VVEVfUkVBRF9BTExfTUlOSSlcclxuICAgICAgICAgICAgICBdKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih2YWwgPT4gb2YoYFRoZSBhcHAgY2F1Z2h0OiAke3ZhbH1gKSlcclxuICAgICAgICAgICAgICApLnN1YnNjcmliZShyZXNwb25zZXMgPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYXBwSW5pdGlhbGl6ZSgpIHppcCgpIGRvbmVcIilcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCB4MSA9IHJlc3BvbnNlc1swXTtcclxuICAgICAgICAgICAgICAgIGlmICh4MS5vayAmJiB4MS5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBib2R5MSA9IHgxLmJvZHlcclxuICAgICAgICAgICAgICAgICAgaWYgKGJvZHkxLnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWxzLmRhdGEkLm5leHQoYm9keTEuaW5uZXJCb2R5KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHgyID0gdG9DYW1lbChyZXNwb25zZXNbMV0pO1xyXG4gICAgICAgICAgICAgICAgaWYgKHgyLm9rICYmIHgyLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIGJvZHkyID0geDIuYm9keVxyXG4gICAgICAgICAgICAgICAgICBpZiAoYm9keTIuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5mdWxsRnVuY3Rpb25zJC5uZXh0KGJvZHkyLmlubmVyQm9keSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCB4MyA9IHJlc3BvbnNlc1syXTtcclxuICAgICAgICAgICAgICAgIGlmICh4My5vayAmJiB4My5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBib2R5MyA9IHgzLmJvZHlcclxuICAgICAgICAgICAgICAgICAgaWYgKGJvZHkzLnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuaWdub3JlZFBhdGhzJC5uZXh0KGJvZHkzLmlubmVyQm9keSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoYm9keTE/LnN0YXR1c0NvZGUgPT09IDIwMCAmJiBib2R5Mj8uc3RhdHVzQ29kZSA9PT0gMjAwICYmIGJvZHkzPy5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucHJpbWFyeUluaXRpYWxpemVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgIGlmICghIU9BVVRIMk9JRENfRU5BQkxFRCAmJiAhIXRoaXMucGVuZGluZ0F1dGhEYXRhJC52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVTZXNzaW9uT2sgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQubmV4dCh0aGlzLnBlbmRpbmdBdXRoRGF0YSQudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZ0F1dGhEYXRhJC5uZXh0KG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZCQubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnRyeVJlc3RvcmVTZXNzaW9uKClcclxuICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoeCA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoeC5vayAmJiB4LnN0YXR1cyA9PT0gMjAwICYmIHguYm9keT8uc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keTogSUZvcm1hdGVkUmVzcG9uc2UgPSB4LmJvZHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYm9keS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0F1dGhEYXRhOiBJQXV0aERhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJvZHkuaW5uZXJCb2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpblRpbWU6IG5ldyBEYXRlKCkuZ2V0VGltZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlU2Vzc2lvbk9rID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQubmV4dChuZXdBdXRoRGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISFsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxlZnRiYXJSZWR1Y2VkU3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xlZnRiYXJSZWR1Y2VkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsZWZ0YmFyUmVkdWNlZCA9IEpTT04ucGFyc2UobGVmdGJhclJlZHVjZWRTdHJpbmchKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmxlZnRiYXJSZWR1Y2VkJC5uZXh0KCEhbGVmdGJhclJlZHVjZWQpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRpbmdIaXN0b3J5U3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JvdXRpbmdIaXN0b3J5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISFyb3V0aW5nSGlzdG9yeVN0cmluZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb3V0aW5nSGlzdG9yeSA9IEpTT04ucGFyc2Uocm91dGluZ0hpc3RvcnlTdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC5uZXh0KHJvdXRpbmdIaXN0b3J5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb3JlT3JnVHJlZVN0YXR1c1N0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY29yZU9yZ1RyZWVTdGF0dXNcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29yZU9yZ1RyZWVTdGF0dXNTdHJpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2F2ZWRPYmplY3Q6IElFdmVyeVRyZWVTdGF0dXMgPSBKU09OLnBhcnNlKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcmdhbml6YXRpb25TZXJ2aWNlLnN0YXR1cyQubmV4dChzYXZlZE9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6aW5nJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgMjAwKVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG5cclxuXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuXHJcbiAgICAgIH0pLmNhdGNoKGUgPT4gY29uc29sZS5sb2coXCJmZXRjaCBhcHAuY29uZmlnLmpzb24gZXJyb3JcIiwgZSkpXHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiYXBwSW5pdGlhbGl6ZSgpIHppcCgpIGVycm9yOiBcIiwgZSlcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoeCA9PiB4Py51bnN1YnNjcmliZSgpKVxyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWluaXRpYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9zZXJ2aWNlcy9hcHAtaW5pdGlhbGl6YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUF3QixNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFnQixNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFXbEYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7QUFLN0MsTUFBTSxPQUFPLHdCQUF3QjtJQWFuQyxZQUNVLFdBQXdCLEVBQ3hCLEdBQXlCLEVBQ3pCLGFBQTRCLEVBQzVCLG1CQUF3QyxFQUN4QyxjQUE4QixFQUM5QixnQkFBa0MsRUFDbEMsVUFBc0I7UUFOdEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsUUFBRyxHQUFILEdBQUcsQ0FBc0I7UUFDekIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBbEJoQyxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ25ELG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDcEQsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBRW5DLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUVoQyxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBbUIs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SUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDOzZDQUMxRDs0Q0FFRCxNQUFNLHVCQUF1QixHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQzs0Q0FDMUUsSUFBSSx1QkFBdUIsRUFBRTtnREFDM0IsTUFBTSxXQUFXLEdBQXFCLElBQUksQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztnREFDMUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7NkNBQ3BEO3lDQUNGO3dDQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29DQUNqQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7Z0NBRVQsQ0FBQyxDQUFDLENBQUE7NkJBQ0w7eUJBQ0Y7b0JBRUgsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtnQkFHSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1lBRUgsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQzdEO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixFQUFFLENBQUMsQ0FBQyxDQUFBO1NBQ2hEO0lBRUgsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFBO0lBQy9DLENBQUM7OEdBeFRVLHdCQUF3QjtrSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzJGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIHppcCwgY2F0Y2hFcnJvciwgb2YsIFN1YnNjcmlwdGlvbiwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gJy4vbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuL2xheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4vYXBwLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUZvcm1hdGVkUmVzcG9uc2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lGb3JtYXRlZFJlc3BvbnNlJztcclxuaW1wb3J0IHsgSUF1dGhEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JQXV0aERhdGEnO1xyXG5pbXBvcnQgeyBSb3V0aW5nU2VydmljZSB9IGZyb20gJy4vcm91dGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3JnYW5pemF0aW9uU2VydmljZSB9IGZyb20gJy4vb3JnYW5pemF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJRXZlcnlUcmVlU3RhdHVzIH0gZnJvbSAnLi4vbGlicmFyaWVzL3NlcnZpY2VzL3JlY3Vyc2l2ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwU2VydmljZSB9IGZyb20gJy4vYXBwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBhcGkgfSBmcm9tICdhbHBoYS1nbG9iYWwtY29uc3RhbnRzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcEluaXRpYWxpemF0aW9uU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiBcclxuICBpbml0aWFsaXppbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcclxuICBzc29Qcm9jZXNzaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgcHJpbWFyeUluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3RvcmVTZXNzaW9uT2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcGVuZGluZ0F1dGhEYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUF1dGhEYXRhIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIHNzb0ZhaWxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBvcmdhbml6YXRpb25TZXJ2aWNlOiBPcmdhbml6YXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0aW5nU2VydmljZTogUm91dGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcFNlcnZpY2U6IEFwcFNlcnZpY2VcclxuICApIHtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgYXBwSW5pdGlhbGl6ZSgpOiB2b2lkIHtcclxuXHJcbiAgICBjb25zdCB0b0NhbWVsID0gKG86IGFueSk6IGFueSA9PiB7XHJcbiAgICAgIHZhciBuZXdPLCBvcmlnS2V5LCBuZXdLZXksIHZhbHVlXHJcbiAgICAgIGlmIChvIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICByZXR1cm4gby5tYXAoZnVuY3Rpb24gKHZhbHVlKSB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgICAgIHZhbHVlID0gdG9DYW1lbCh2YWx1ZSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB2YWx1ZVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3TyA9IHt9XHJcbiAgICAgICAgZm9yIChvcmlnS2V5IGluIG8pIHtcclxuICAgICAgICAgIGlmIChvLmhhc093blByb3BlcnR5KG9yaWdLZXkpKSB7XHJcbiAgICAgICAgICAgIG5ld0tleSA9IChvcmlnS2V5LmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpICsgb3JpZ0tleS5zbGljZSgxKSB8fCBvcmlnS2V5KS50b1N0cmluZygpXHJcbiAgICAgICAgICAgIHZhbHVlID0gb1tvcmlnS2V5XVxyXG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSB8fCAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUuY29uc3RydWN0b3IgPT09IE9iamVjdCkpIHtcclxuICAgICAgICAgICAgICB2YWx1ZSA9IHRvQ2FtZWwodmFsdWUpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKG5ld08gYXMgYW55KVtuZXdLZXldID0gdmFsdWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG5ld09cclxuICAgIH1cclxuXHJcbiAgICB0cnkge1xyXG5cclxuICAgICAgZmV0Y2goJy4uLy4uL2Fzc2V0cy9hcHAuY29uZmlnLmpzb24nKS50aGVuKHJlcyA9PiByZXMuanNvbigpKS50aGVuKCh7XHJcblxyXG4gICAgICAgIEFQUF9UWVBFLFxyXG4gICAgICAgIEJBU0VfVVJMLCAgICAgXHJcbiAgICAgICAgR09MSVZFX1VSTCxcclxuICAgICAgICBERUJVR19FTkFCTEVELFxyXG5cclxuICAgICAgICBMT0dPX0xPR0lOLFxyXG4gICAgICAgIExPR09fSEVBREVSLFxyXG4gICAgICAgIEhPTUVfQkFDS0dST1VORF9JTUFHRSwgXHJcblxyXG4gICAgICAgIE9BVVRIMk9JRENfRU5BQkxFRCxcclxuICAgICAgICBPQVVUSDJPSURDX0NMSUVOVF9JRCxcclxuXHJcbiAgICAgICAgU0FNTDJBREZTX0VOQUJMRUQsIFxyXG4gICAgICAgIFNBTUwyQURGU19JRFAsIFxyXG4gICAgICAgIFNBTUwyQURGU19JREVOVElGSUVSLFxyXG4gICAgICAgIFNBTUwyQURGU19XQV9TSUdOSU4sXHJcbiAgICAgICAgU0FNTDJBREZTX1dBX1NJR05PVVQsXHJcbiAgICAgICAgU0FNTDJBREZTX1dSRVBMWSxcclxuXHJcbiAgICAgICAgSEFOR0ZJUkVfUEFUSCxcclxuICAgICAgICBTVEFUSUNfRk9MREVSLFxyXG4gICAgICAgIEFWQVRBUl9GT0xERVIsXHJcblxyXG4gICAgICB9KSA9PiB7XHJcblxyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5BUFBfVFlQRSA9IEFQUF9UWVBFO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5CQVNFX1VSTCA9IEJBU0VfVVJMO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5HT0xJVkVfVVJMID0gR09MSVZFX1VSTDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuREVCVUdfRU5BQkxFRCA9IERFQlVHX0VOQUJMRUQ7XHJcblxyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5MT0dPX0xPR0lOID0gTE9HT19MT0dJTjtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuTE9HT19IRUFERVIgPSBMT0dPX0hFQURFUjtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuSE9NRV9CQUNLR1JPVU5EX0lNQUdFID0gSE9NRV9CQUNLR1JPVU5EX0lNQUdFO1xyXG5cclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuT0FVVEgyT0lEQ19FTkFCTEVEID0gT0FVVEgyT0lEQ19FTkFCTEVEO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5PQVVUSDJPSURDX0NMSUVOVF9JRCA9IE9BVVRIMk9JRENfQ0xJRU5UX0lEO1xyXG5cclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0VOQUJMRUQgPSBTQU1MMkFERlNfRU5BQkxFRDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lEUCA9IFNBTUwyQURGU19JRFA7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19JREVOVElGSUVSID0gU0FNTDJBREZTX0lERU5USUZJRVI7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19XQV9TSUdOSU4gPSBTQU1MMkFERlNfV0FfU0lHTklOO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfV0FfU0lHTk9VVCA9IFNBTUwyQURGU19XQV9TSUdOT1VUO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfV1JFUExZID0gU0FNTDJBREZTX1dSRVBMWTtcclxuXHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLkhBTkdGSVJFX1BBVEggPSBIQU5HRklSRV9QQVRIO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TVEFUSUNfRk9MREVSID0gU1RBVElDX0ZPTERFUjtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQVZBVEFSX0ZPTERFUiA9IEFWQVRBUl9GT0xERVI7XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IChuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSkuc2VhcmNoUGFyYW1zO1xyXG4gICAgICAgIGNvbnN0IGxvY2FsID0gcGFyYW1zLmdldChcImxvY2FsXCIpO1xyXG5cclxuICAgICAgICBpZiAoU0FNTDJBREZTX0VOQUJMRUQgJiYgIWxvY2FsKSB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuc3NvRmFpbGVkKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIGNvbnN0IHRva2VuID0gcGFyYW1zLmdldChcInRva2VuXCIpO1xyXG4gICAgICAgICAgICAgIGlmICh0b2tlbiAhPT0gbnVsbCkge1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuYXBwU2VydmljZS5nZXQoYXBpLlNZU19TSE9SVF9MSVZFRF9UT0tFTl9MT0dJTiArIFwiP3Rva2VuPVwiICsgdG9rZW4pLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoeC5vayAmJiB4LnN0YXR1cyA9PT0gMjAwICYmIHguYm9keT8uc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib2R5OiBJRm9ybWF0ZWRSZXNwb25zZSA9IHguYm9keVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGJvZHkuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZ0F1dGhEYXRhJC5uZXh0KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5ib2R5LmlubmVyQm9keSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpblRpbWU6IG5ldyBEYXRlKCkuZ2V0VGltZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3NvRmFpbGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zc29Qcm9jZXNzaW5nJC5uZXh0KGZhbHNlKTtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKCEhbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxlZnRiYXJSZWR1Y2VkU3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xlZnRiYXJSZWR1Y2VkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxlZnRiYXJSZWR1Y2VkID0gSlNPTi5wYXJzZShsZWZ0YmFyUmVkdWNlZFN0cmluZyEpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5sZWZ0YmFyUmVkdWNlZCQubmV4dCghIWxlZnRiYXJSZWR1Y2VkKTtcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb3V0aW5nSGlzdG9yeVN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdyb3V0aW5nSGlzdG9yeScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISFyb3V0aW5nSGlzdG9yeVN0cmluZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRpbmdIaXN0b3J5ID0gSlNPTi5wYXJzZShyb3V0aW5nSGlzdG9yeVN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5yb3V0aW5nSGlzdG9yeSQubmV4dChyb3V0aW5nSGlzdG9yeSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb3JlT3JnVHJlZVN0YXR1c1N0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY29yZU9yZ1RyZWVTdGF0dXNcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3JlT3JnVHJlZVN0YXR1c1N0cmluZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNhdmVkT2JqZWN0OiBJRXZlcnlUcmVlU3RhdHVzID0gSlNPTi5wYXJzZShjb3JlT3JnVHJlZVN0YXR1c1N0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcmdhbml6YXRpb25TZXJ2aWNlLnN0YXR1cyQubmV4dChzYXZlZE9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6aW5nJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICB9LCAyMDApXHJcbiAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICBcclxuICAgIFxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gQUxXQVlTIFJFRElSRUNUIFRPIFRIRSBBTkdVTEFSIEFQUExJQ0FUSU9OIExPR0lOIFBBR0UgSUYgTk8gU0VTU0lPTiBGT1VORCAoP2xvY2FsPTEpXHJcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAke3RoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfSURFTlRJRklFUn0/bG9jYWw9MWA7XHJcblxyXG4gICAgICAgICAgICAgICAgLypcclxuXHJcbiAgICAgICAgICAgICAgICAvL0lGIFRIRSBBTkdVTEFSIEFQUExJQ0FUSU9OIExPR0lOIFBBR0UgSVMgTk9UIE1BTkRBVE9SWSA9PiBDQUxMIFNBTUwyLjAgSWRQXHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgY29kZVZlcmlmaWVyID0gdGhpcy5hdXRoU2VydmljZS5nZW5lcmF0ZVJhbmRvbUNvZGVWZXJpZmllcig0Myk7XHJcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImNvZGVWZXJpZmllclwiLCBjb2RlVmVyaWZpZXIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5nZW5lcmF0ZUNvZGVDaGFsbGVuZ2VGcm9tVmVyaWZpZXIoY29kZVZlcmlmaWVyKS50aGVuKGNvZGVDaGFsbGVuZ2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBhdXRob3JpemF0aW9uVXJsID0gYCR7dGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19JRFB9P2AgK1xyXG4gICAgICAgICAgICAgICAgICAgIGB3dHJlYWxtPSR7dGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19JREVOVElGSUVSfWAgK1xyXG4gICAgICAgICAgICAgICAgICAgIGAmd2E9JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX1dBX1NJR05JTiB8fCAnd3NpZ25pbjEuMCd9YCArIFxyXG4gICAgICAgICAgICAgICAgICAgIGAmd3JlcGx5PSR7dGhpcy5hcHBDb25maWdTZXJ2aWNlLkJBU0VfVVJMfSR7dGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19XUkVQTFl9YCArIFxyXG4gICAgICAgICAgICAgICAgICAgIGAmd2N0eD0ke2NvZGVDaGFsbGVuZ2V9YFxyXG4gICAgICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBhbGVydChhdXRob3JpemF0aW9uVXJsKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBhdXRob3JpemF0aW9uVXJsO1xyXG5cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgKi9cclxuXHJcblxyXG4gICAgICAgICAgICAgIH1cclxuICBcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc3NvUHJvY2Vzc2luZyQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgYm9keTE6IElGb3JtYXRlZFJlc3BvbnNlO1xyXG4gICAgICAgIGxldCBib2R5MjogSUZvcm1hdGVkUmVzcG9uc2U7XHJcbiAgICAgICAgbGV0IGJvZHkzOiBJRm9ybWF0ZWRSZXNwb25zZTtcclxuICAgICAgICBsZXQgYm9keTQ6IElGb3JtYXRlZFJlc3BvbnNlO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgIHRoaXMuc3NvUHJvY2Vzc2luZyQucGlwZShcclxuICAgICAgICAgICAgZmlsdGVyKHggPT4gIXgpXHJcbiAgICAgICAgICApLnN1YnNjcmliZSh4ID0+IHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICAgIHppcChbXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1scy5yZWFkQWxsTWluaSgpLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5yZWFkQWxsRnVuY3Rpb25XaXRoQWxsQWN0aW9ucygpLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5nZXRJZ25vcmVQYXRocygpLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLmdldChhcGkuUE9SVEFMX1JPVVRFX1JFQURfQUxMX01JTkkpXHJcbiAgICAgICAgICAgICAgXSkucGlwZShcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodmFsID0+IG9mKGBUaGUgYXBwIGNhdWdodDogJHt2YWx9YCkpXHJcbiAgICAgICAgICAgICAgKS5zdWJzY3JpYmUocmVzcG9uc2VzID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFwcEluaXRpYWxpemUoKSB6aXAoKSBkb25lXCIpXHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgeDEgPSByZXNwb25zZXNbMF07XHJcbiAgICAgICAgICAgICAgICBpZiAoeDEub2sgJiYgeDEuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgYm9keTEgPSB4MS5ib2R5XHJcbiAgICAgICAgICAgICAgICAgIGlmIChib2R5MS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1scy5kYXRhJC5uZXh0KGJvZHkxLmlubmVyQm9keSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCB4MiA9IHRvQ2FtZWwocmVzcG9uc2VzWzFdKTtcclxuICAgICAgICAgICAgICAgIGlmICh4Mi5vayAmJiB4Mi5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBib2R5MiA9IHgyLmJvZHlcclxuICAgICAgICAgICAgICAgICAgaWYgKGJvZHkyLnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuZnVsbEZ1bmN0aW9ucyQubmV4dChib2R5Mi5pbm5lckJvZHkpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgeDMgPSByZXNwb25zZXNbMl07XHJcbiAgICAgICAgICAgICAgICBpZiAoeDMub2sgJiYgeDMuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgYm9keTMgPSB4My5ib2R5XHJcbiAgICAgICAgICAgICAgICAgIGlmIChib2R5My5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmlnbm9yZWRQYXRocyQubmV4dChib2R5My5pbm5lckJvZHkpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgeDQgPSByZXNwb25zZXNbM107XHJcbiAgICAgICAgICAgICAgICBpZiAoeDQub2sgJiYgeDQuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgYm9keTQgPSB4NC5ib2R5XHJcbiAgICAgICAgICAgICAgICAgIGlmIChib2R5NC5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnBvcnRhbFJvdXRlcyQubmV4dChib2R5NC5pbm5lckJvZHkpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGJvZHkxPy5zdGF0dXNDb2RlID09PSAyMDAgJiYgYm9keTI/LnN0YXR1c0NvZGUgPT09IDIwMCAmJiBib2R5Mz8uc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnByaW1hcnlJbml0aWFsaXplZCA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgICBpZiAoISFPQVVUSDJPSURDX0VOQUJMRUQgJiYgISF0aGlzLnBlbmRpbmdBdXRoRGF0YSQudmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlU2Vzc2lvbk9rID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLm5leHQodGhpcy5wZW5kaW5nQXV0aERhdGEkLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdBdXRoRGF0YSQubmV4dChudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS50cnlSZXN0b3JlU2Vzc2lvbigpXHJcbiAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHggPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHgub2sgJiYgeC5zdGF0dXMgPT09IDIwMCAmJiB4LmJvZHk/LnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvZHk6IElGb3JtYXRlZFJlc3BvbnNlID0geC5ib2R5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJvZHkuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdBdXRoRGF0YTogSUF1dGhEYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5ib2R5LmlubmVyQm9keSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9naW5UaW1lOiBuZXcgRGF0ZSgpLmdldFRpbWUoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZVNlc3Npb25PayA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLm5leHQobmV3QXV0aERhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEhbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsZWZ0YmFyUmVkdWNlZFN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsZWZ0YmFyUmVkdWNlZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdGJhclJlZHVjZWQgPSBKU09OLnBhcnNlKGxlZnRiYXJSZWR1Y2VkU3RyaW5nISlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5sZWZ0YmFyUmVkdWNlZCQubmV4dCghIWxlZnRiYXJSZWR1Y2VkKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb3V0aW5nSGlzdG9yeVN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdyb3V0aW5nSGlzdG9yeScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEhcm91dGluZ0hpc3RvcnlTdHJpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm91dGluZ0hpc3RvcnkgPSBKU09OLnBhcnNlKHJvdXRpbmdIaXN0b3J5U3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5yb3V0aW5nSGlzdG9yeSQubmV4dChyb3V0aW5nSGlzdG9yeSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29yZU9yZ1RyZWVTdGF0dXNTdHJpbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNvcmVPcmdUcmVlU3RhdHVzXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNhdmVkT2JqZWN0OiBJRXZlcnlUcmVlU3RhdHVzID0gSlNPTi5wYXJzZShjb3JlT3JnVHJlZVN0YXR1c1N0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3JnYW5pemF0aW9uU2VydmljZS5zdGF0dXMkLm5leHQoc2F2ZWRPYmplY3QpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemluZyQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDIwMClcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuXHJcblxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcblxyXG4gICAgICB9KS5jYXRjaChlID0+IGNvbnNvbGUubG9nKFwiZmV0Y2ggYXBwLmNvbmZpZy5qc29uIGVycm9yXCIsIGUpKVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcImFwcEluaXRpYWxpemUoKSB6aXAoKSBlcnJvcjogXCIsIGUpXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMubWFwKHggPT4geD8udW5zdWJzY3JpYmUoKSlcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -1998,6 +1998,13 @@ class AppInitializationService {
|
|
|
1998
1998
|
this.routingService.ignoredPaths$.next(body3.innerBody);
|
|
1999
1999
|
}
|
|
2000
2000
|
}
|
|
2001
|
+
const x4 = responses[3];
|
|
2002
|
+
if (x4.ok && x4.status === 200) {
|
|
2003
|
+
body4 = x4.body;
|
|
2004
|
+
if (body4.statusCode === 200) {
|
|
2005
|
+
this.routingService.portalRoutes$.next(body4.innerBody);
|
|
2006
|
+
}
|
|
2007
|
+
}
|
|
2001
2008
|
if (body1?.statusCode === 200 && body2?.statusCode === 200 && body3?.statusCode === 200) {
|
|
2002
2009
|
this.primaryInitialized = true;
|
|
2003
2010
|
if (!!OAUTH2OIDC_ENABLED && !!this.pendingAuthData$.value) {
|
|
@@ -18390,10 +18397,10 @@ class CoreNavigationTrackerComponent {
|
|
|
18390
18397
|
}
|
|
18391
18398
|
console.groupEnd();
|
|
18392
18399
|
this.routingService.navigating$.next(false);
|
|
18393
|
-
this.urlService.previousRouteUrl$.next(this.urlService.currentRouteUrl$.value);
|
|
18394
|
-
this.urlService.currentRouteUrl$.next(routerEvent.url);
|
|
18395
18400
|
switch (this.appConfigService.APP_TYPE) {
|
|
18396
18401
|
case "WEBAPP":
|
|
18402
|
+
this.urlService.previousRouteUrl$.next(this.urlService.currentRouteUrl$.value);
|
|
18403
|
+
this.urlService.currentRouteUrl$.next(routerEvent.url);
|
|
18397
18404
|
// this.layoutService.leftbarReduced$.next(true); // if we want auto-reduce the menu, uncomment this line
|
|
18398
18405
|
setTimeout(() => {
|
|
18399
18406
|
const leftBar = getComputedStyle(document.documentElement).getPropertyValue('--size-left-bar-current-width').replace('px', '');
|