ezlibrary_v2 2.0.2 → 2.0.3
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.
|
@@ -354,6 +354,8 @@ export class EzHeaderComponent {
|
|
|
354
354
|
this.mdlk = JSON.parse(localStorage.getItem('mdlKey'));
|
|
355
355
|
this.cUrl = window.location.hash;
|
|
356
356
|
this.cUrl = this.cUrl.replace("#", '');
|
|
357
|
+
//test
|
|
358
|
+
//
|
|
357
359
|
// Getting the final url
|
|
358
360
|
this.router.events
|
|
359
361
|
.filter(e => e instanceof NavigationEnd)
|
|
@@ -362,6 +364,7 @@ export class EzHeaderComponent {
|
|
|
362
364
|
this.menuList();
|
|
363
365
|
// console.log(this.cUrl);
|
|
364
366
|
});
|
|
367
|
+
this.menuList();
|
|
365
368
|
// this.router.events.pipe(filter(e => e instanceof NavigationEnd))
|
|
366
369
|
// .subscribe((navEnd: NavigationEnd) => {
|
|
367
370
|
// this.cUrl = navEnd.urlAfterRedirects;
|
|
@@ -399,4 +402,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
399
402
|
type: ViewChild,
|
|
400
403
|
args: ['closebtn']
|
|
401
404
|
}] } });
|
|
402
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V6LWxpYi9zcmMvbGliL2V6aGVhZGVyL2hlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lei1saWIvc3JjL2xpYi9lemhlYWRlci9oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELGtFQUFrRTtBQUNsRSxPQUFPLEVBQVUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7OztBQWF4RCxNQUFNLE9BQU8saUJBQWlCO0lBRTVCLFlBQ1UsTUFBYztJQUN0QixzREFBc0Q7SUFDOUMsRUFBd0IsRUFDekIsUUFBMEI7SUFDakMsbURBQW1EOztRQUozQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRWQsT0FBRSxHQUFGLEVBQUUsQ0FBc0I7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFLbkMsVUFBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbkIsT0FBRSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0IsWUFBTyxHQUFHLEVBQUUsQ0FBQTtRQUNaLFNBQUksR0FBRyxFQUFFLENBQUE7UUFDVCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUNwQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUdqQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsWUFBTyxHQUFHLEVB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b250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29va2llIH0gZnJvbSAnbmcyLWNvb2tpZXMvbmcyLWNvb2tpZXMnO1xyXG4vLyBpbXBvcnQgeyBGbGFzaE1lc3NhZ2VzU2VydmljZSB9IGZyb20gJ2FuZ3VsYXIyLWZsYXNoLW1lc3NhZ2VzJztcclxuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tbWFuU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tYW4tc2VydmljZS9jb21tYW4tc2VydmljZS5zZXJ2aWNlJztcclxuLy8gaW1wb3J0IHsgUmVxdWVzdE9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9odHRwJztcclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEdsb2JsZUVudlNlcnZpY2UgfSBmcm9tICcuLi9nbG9ibGUvZ2xvYmxlLWVudi5zZXJ2aWNlJztcclxuLy8gaW1wb3J0IHsgTmc0TG9hZGluZ1NwaW5uZXJTZXJ2aWNlIH0gZnJvbSAnbmc0LWxvYWRpbmctc3Bpbm5lcic7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMtY29tcGF0L29wZXJhdG9yL2ZpbHRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1lemhlYWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXpIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAvLyBwcml2YXRlIGZsYXNoTWVzc2FnZXNTZXJ2aWNlOiBGbGFzaE1lc3NhZ2VzU2VydmljZSxcclxuICAgIHByaXZhdGUgY3M6IENvbW1hblNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHVibGljIGdsb2JsRW52OiBHbG9ibGVFbnZTZXJ2aWNlXHJcbiAgICAvLyBwcml2YXRlIHNwaW5uZXJTZXJ2aWNlOiBOZzRMb2FkaW5nU3Bpbm5lclNlcnZpY2VcclxuICApIHsgfVxyXG4gIEBWaWV3Q2hpbGQoJ2Nsb3NlYnRuJykgY2xvc2VidG46IEVsZW1lbnRSZWY7XHJcblxyXG4gIGNEYXRlID0gbmV3IERhdGUoKTtcclxuICBkcyA9IENvb2tpZS5nZXQoJ19kcycpO1xyXG4gIHVVc3IgPSBDb29raWUuZ2V0KCdfdXNlcm5hbWUnKTtcclxuICBjb21wYW55ID0gXCJcIlxyXG4gIHllYXIgPSBcIlwiXHJcbiAgdXNlckRldGFpbHMgPSBbXTtcclxuICBoaXN0b3J5TGlua01hcCA9IHt9O1xyXG4gIGhpc3RvcnlMaW5rID0gW107XHJcbiAgY1VybDtcclxuICBoZWFkZXI7XHJcbiAgYWNjTWVudUxpc3QgPSB7fTtcclxuICBmbGFnID0gZmFsc2U7XHJcbiAga2V5TGlzdCA9IFtdO1xyXG4gIHNlYXJjaEY7XHJcbiAgdW5hbWU7XHJcbiAgcWtTY2g7XHJcbiAgc2NoSWQ7XHJcbiAgc3R0c0E7XHJcbiAgY291bnQ7XHJcbiAgbnRTY2g6IGJvb2xlYW47XHJcbiAgc3JjaENudCA9IDA7XHJcbiAgY250ID0gMDtcclxuICBmZWVkYmFja0NvbW1lbnQgPSAnJztcclxuXHJcblxyXG5cclxuICBjbGlja0ZpbHRlcihrYykge1xyXG5cclxuICAgIGlmIChrYy53aGljaCA9PSAxMykge1xyXG4gICAgICAvLyB0aGlzLmdldFNyY2hDb3VudCh0aGlzLnFrU2NoKTtcclxuICAgICAgdGhpcy5wYWNrZXRMb29rdXBTcmNDb3VudCh0aGlzLnFrU2NoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBiYWNrSG9tZSgpIHtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5nbG9ibEVudi5vcmlnaW4gKyBcIiNob21lXCI7XHJcbiAgfVxyXG5cclxuICByb3V0ZWhvbWUoKSB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLnJvdXRlci5zZXJpYWxpemVVcmwodGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJ2hvbWUnXSkpO1xyXG4gICAgd2luZG93Lm9wZW4oXCIvI1wiICsgdXJsLCAnSG9tZScpO1xyXG4gIH1cclxuICBwYWNrZXRMb29rdXBTcmNDb3VudChmZ2xzdHIpIHtcclxuICAgIHRoaXMuc3JjaENudCA9IHRoaXMuc3JjaENudCArIDFcclxuICAgIGxldCBsb2dEdGwgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdyZXNyZXFwYXJhJykpO1xyXG4gICAgaWYgKGZnbHN0ciA9PSB1bmRlZmluZWQgfHwgZmdsc3RyID09ICcnKSB7XHJcbiAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdygnUGxlYXNlIGVudGVyIFNlYXJjaCBQYXJhbWV0ZXInLCB7IGNzc0NsYXNzOiAnYWxlcnQtZGFuZ2VyJywgdGltZW91dDogMzAwMCB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IHIgPSB0aGlzLmNzLmZvcm1hdGVTdHIoZmdsc3RyKTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdwYWNrZXRMb29rdXBTdHInLCByKTtcclxuXHJcbiAgICBpZiAodGhpcy5jVXJsID09ICcvc29saXRhaXJlcycpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydzb2xpdGFpcmVzL3BhY2tldC1sb29rdXAvJ10sIHsgcXVlcnlQYXJhbXM6IHsgc2NoSWQ6IHRoaXMuc3JjaENudCB9IH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIuc2VyaWFsaXplVXJsKHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWydzb2xpdGFpcmVzL3BhY2tldC1sb29rdXAvJ10sIHsgcXVlcnlQYXJhbXM6IHsgc2NoSWQ6IHRoaXMuc3JjaENudCB9IH0pKTtcclxuICAgICAgd2luZG93Lm9wZW4oXCIvc29saXRhaXJlcy8jXCIgKyB1cmwsICdTb2xpdGFpcmVzJyk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIGxvZ291dCgpIHtcclxuICAgIGxldCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialsnZm9ybU5tZSddID0gJ0xvZ291dCdcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdsb2dPdXQnO1xyXG4gICAgLy8gbGV0IG9wdGlvbnMgPSBuZXcgUmVxdWVzdE9wdGlvbnMoeyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9KTtcclxuICAgIC8vIGxldCBvcHRpb25zID0gbmV3IEh0dHBIZWFkZXJzKHsgaGVhZGVyczogdGhpcy5oZWFkZXIgfSk7XHJcbiAgICBsZXQgb3B0aW9ucyA9IHsgaGVhZGVyczogdGhpcy5oZWFkZXIgfTtcclxuICAgIHRoaXMuY3MubG9nb3V0KHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgIGxldCBkcyA9IENvb2tpZS5nZXQoJ19kcycpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ191c2VybmFtZScpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19sb2d0aW1lJyk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2NrJyk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2xvZ2lkJyk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2FjY0NvbXBhbnknKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfYWNjeWVhcicpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdPVFAnKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnY2xpZW50S2V5Jyk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2xvZ0lkbicpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdtZGxLZXknKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndXNlcm5hbWUnKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc2VsTWQnKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2hnJywgJ2ZhbHNlJyk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3RyYW5zYWN0aW9uSW5mbycpO1xyXG5cclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfdXNlcm5hbWUnLCB0aGlzLmdsb2JsRW52LnBhdGhuYW1lLCB0aGlzLmdsb2JsRW52Lmhvc3RuYW1lKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfbG9ndGltZScsIHRoaXMuZ2xvYmxFbnYucGF0aG5hbWUsIHRoaXMuZ2xvYmxFbnYuaG9zdG5hbWUpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19jaycsIHRoaXMuZ2xvYmxFbnYucGF0aG5hbWUsIHRoaXMuZ2xvYmxFbnYuaG9zdG5hbWUpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19sb2dpZCcsIHRoaXMuZ2xvYmxFbnYucGF0aG5hbWUsIHRoaXMuZ2xvYmxFbnYuaG9zdG5hbWUpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19hY2NDb21wYW55JywgdGhpcy5nbG9ibEVudi5wYXRobmFtZSwgdGhpcy5nbG9ibEVudi5ob3N0bmFtZSk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2FjY3llYXInLCB0aGlzLmdsb2JsRW52LnBhdGhuYW1lLCB0aGlzLmdsb2JsRW52Lmhvc3RuYW1lKTtcclxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMuZ2xvYmxFbnYub3JpZ2luO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdyhyZXNwb25zZS5tZXNzYWdlLCB7IGNzc0NsYXNzOiAnYWxlcnQtZGFuZ2VyJywgdGltZW91dDogMzAwMCB9KTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdyhlcnIubWVzc2FnZSwgeyBjc3NDbGFzczogJ2FsZXJ0LWRhbmdlcicsIHRpbWVvdXQ6IDMwMDAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG1lbnVMaXN0KCkge1xyXG4gICAgbGV0IHJlcU9iaiA9IHt9O1xyXG4gICAgbGV0IG1vZHVsZUtleXMgPSB0aGlzLm1kbGtbdGhpcy5jVXJsLnNwbGl0KCcvJylbMV1dO1xyXG5cclxuICAgIGlmIChDb29raWUuZ2V0KCdfbG9naWQnKSA9PSBudWxsKSByZXR1cm47XHJcbiAgICBsZXQgaGVhZGVyOiBhbnkgPSB7XHJcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICdjbGllbnRrZXknOiBDb29raWUuZ2V0KCdfY2snKSxcclxuICAgICAgJ2xvZ2luaWQnOiBDb29raWUuZ2V0KCdfbG9naWQnKSxcclxuICAgICAgJ21ldGhvZCc6ICdnZXRNZW51TGlzdCcsXHJcbiAgICAgICdtb2R1bGVrZXknOiBtb2R1bGVLZXlzLFxyXG4gICAgICAnc291cmNlJzogJ3FzJ1xyXG4gICAgfVxyXG5cclxuICAgIHJlcU9ialsnbW9kdWxlS2V5cyddID0gbW9kdWxlS2V5cztcclxuXHJcbiAgICAvLyBsZXQgb3B0aW9ucyA9IG5ldyBSZXF1ZXN0T3B0aW9ucyh7IGhlYWRlcnM6IGhlYWRlciB9KTtcclxuICAgIC8vIGxldCBvcHRpb25zID0gbmV3IEh0dHBIZWFkZXJzKHsgaGVhZGVyczogaGVhZGVyIH0pO1xyXG4gICAgbGV0IG9wdGlvbnMgPSB7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH07XHJcbiAgICBjb25zb2xlLmxvZyhyZXFPYmopO1xyXG4gICAgdGhpcy5jcy5tZW51TGlzdChyZXFPYmosIG9wdGlvbnMpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhyZXFPYmopO1xyXG4gICAgICAgIGxldCBsb2NoaXN0b3J5TWFwID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnaGlzdG9yeUxpbmsnKSkgfHwge307XHJcbiAgICAgICAgbGV0IGxvY2hpc3RvcnlMaW5rID0gbG9jaGlzdG9yeU1hcFttb2R1bGVLZXlzXSB8fCBbXTtcclxuICAgICAgICB0aGlzLmhpc3RvcnlMaW5rTWFwID0ge307XHJcbiAgICAgICAgdGhpcy5oaXN0b3J5TGluayA9IFtdO1xyXG4gICAgICAgIGxldCBtZW51TGlzdCA9IHJlc3BvbnNlLnJlc3VsdDtcclxuICAgICAgICBsZXQgY250ID0gMFxyXG4gICAgICAgIG1lbnVMaXN0LmZvckVhY2goZWxlID0+IHtcclxuICAgICAgICAgIGNudCA9IGNudCArIGVsZS5TdWJNZW51Lmxlbmd0aCArIDE7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbGV0IGRpdiA9IGNudCAvIDQ7XHJcbiAgICAgICAgZGl2ID0gTWF0aC5yb3VuZChkaXYpO1xyXG4gICAgICAgIGlmIChkaXYgPCAxKSB7XHJcbiAgICAgICAgICBsZXQgbmV3TWVudUxpc3QgPSBbXTtcclxuICAgICAgICAgIG1lbnVMaXN0LmZvckVhY2goZWxlID0+IHtcclxuICAgICAgICAgICAgZWxlW1wiaXNoZHJcIl0gPSBcIllcIjtcclxuICAgICAgICAgICAgbmV3TWVudUxpc3QucHVzaChlbGUpXHJcbiAgICAgICAgICAgIGxldCBleHRtZW51X2lkbiA9IGVsZS5tZW51X2lkbjtcclxuICAgICAgICAgICAgaWYgKGxvY2hpc3RvcnlMaW5rLmluZGV4T2YoZXh0bWVudV9pZG4pICE9IC0xKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5TGluay5wdXNoKGV4dG1lbnVfaWRuKTtcclxuICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlMaW5rTWFwW2V4dG1lbnVfaWRuXSA9IGVsZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsZS5TdWJNZW51LmZvckVhY2goc3ViZWxlID0+IHtcclxuICAgICAgICAgICAgICBuZXdNZW51TGlzdC5wdXNoKHN1YmVsZSlcclxuICAgICAgICAgICAgICBleHRtZW51X2lkbiA9IHN1YmVsZS5tZW51X2lkbjtcclxuXHJcbiAgICAgICAgICAgICAgaWYgKGxvY2hpc3RvcnlMaW5rLmluZGV4T2YoZXh0bWVudV9pZG4pICE9IC0xKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlMaW5rLnB1c2goZXh0bWVudV9pZG4pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5TGlua01hcFtleHRtZW51X2lkbl0gPSBzdWJlbGU7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuYWNjTWVudUxpc3RbMV0gPSBuZXdNZW51TGlzdDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGtleSA9IDE7XHJcbiAgICAgICAgICBsZXQgbmV3TWVudUxpc3QgPSBbXTtcclxuICAgICAgICAgIGxldCBsc0NudCA9IDA7XHJcbiAgICAgICAgICBtZW51TGlzdC5mb3JFYWNoKGVsZSA9PiB7XHJcbiAgICAgICAgICAgIGxzQ250ID0gbHNDbnQgKyBlbGUuU3ViTWVudS5sZW5ndGggKyAxO1xyXG4gICAgICAgICAgICBlbGVbXCJpc2hkclwiXSA9IFwiWVwiO1xyXG4gICAgICAgICAgICBuZXdNZW51TGlzdC5wdXNoKGVsZSlcclxuICAgICAgICAgICAgbGV0IGV4dG1lbnVfaWRuID0gZWxlLm1lbnVfaWRuO1xyXG4gICAgICAgICAgICBpZiAobG9jaGlzdG9yeUxpbmsuaW5kZXhPZihleHRtZW51X2lkbikgIT0gLTEpIHtcclxuICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlMaW5rLnB1c2goZXh0bWVudV9pZG4pO1xyXG4gICAgICAgICAgICAgIHRoaXMuaGlzdG9yeUxpbmtNYXBbZXh0bWVudV9pZG5dID0gZWxlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxlLlN1Yk1lbnUuZm9yRWFjaChzdWJlbGUgPT4ge1xyXG4gICAgICAgICAgICAgIHN1YmVsZVtcImlzaGRyXCJdID0gXCJOXCI7XHJcbiAgICAgICAgICAgICAgbmV3TWVudUxpc3QucHVzaChzdWJlbGUpXHJcbiAgICAgICAgICAgICAgZXh0bWVudV9pZG4gPSBzdWJlbGUubWVudV9pZG47XHJcblxyXG4gICAgICAgICAgICAgIGlmIChsb2NoaXN0b3J5TGluay5pbmRleE9mKGV4dG1lbnVfaWRuKSAhPSAtMSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5TGluay5wdXNoKGV4dG1lbnVfaWRuKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGlzdG9yeUxpbmtNYXBbZXh0bWVudV9pZG5dID0gc3ViZWxlO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgaWYgKGxzQ250ID49IGRpdiAmJiBuZXdNZW51TGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hY2NNZW51TGlzdFtrZXldID0gbmV3TWVudUxpc3Q7XHJcbiAgICAgICAgICAgICAga2V5ID0ga2V5ICsgMTtcclxuICAgICAgICAgICAgICBuZXdNZW51TGlzdCA9IFtdO1xyXG4gICAgICAgICAgICAgIGxzQ250ID0gMDtcclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcblxyXG5cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKGxzQ250ICE9IDApXHJcbiAgICAgICAgICAgIHRoaXMuYWNjTWVudUxpc3Rba2V5XSA9IG5ld01lbnVMaXN0O1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIHRoaXMua2V5TGlzdCA9IE9iamVjdC5rZXlzKHRoaXMuYWNjTWVudUxpc3QpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdyhyZXNwb25zZS5tZXNzYWdlLCB7IGNzc0NsYXNzOiAnYWxlcnQtZGFuZ2VyJywgdGltZW91dDogMzAwMCB9KTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdyhlcnIubWVzc2FnZSwgeyBjc3NDbGFzczogJ2FsZXJ0LWRhbmdlcicsIHRpbWVvdXQ6IDMwMDAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbG9nT3V0Qm94KCkge1xyXG4gICAgdmFyIGRpc3BsYXkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWItc2lnbm91dCcpLnN0eWxlLmRpc3BsYXk7XHJcblxyXG4gICAgaWYgKGRpc3BsYXkgPT0gJ25vbmUnIHx8IGRpc3BsYXkgPT0gJycpIHtcclxuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21iLXNpZ25vdXQnKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYi1zaWdub3V0Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgIH1cclxuICB9XHJcbiAgaXNwYXNzd29yZENoYW5nZSA9IGZhbHNlO1xyXG4gIENoYW5nZVBhc3N3b3JkKCkge1xyXG5cclxuICAgIGxldCByZXFPYmogPSB7fTtcclxuICAgIGlmIChDb29raWUuZ2V0KCdfbG9naWQnKSA9PSBudWxsKSByZXR1cm47XHJcbiAgICBsZXQgaGVhZGVyOiBhbnkgPSB7XHJcbiAgICAgICdjbGllbnRrZXknOiBDb29raWUuZ2V0KCdfY2snKSxcclxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgJ21vZHVsZWtleSc6IHRoaXMubWRsa1t0aGlzLmNVcmwuc3BsaXQoJy8nKVsxXV0sXHJcbiAgICAgICdsb2dpbmlkJzogQ29va2llLmdldCgnX2xvZ2lkJyksXHJcbiAgICAgICdzb3VyY2UnOiAncXMnXHJcbiAgICB9XHJcblxyXG4gICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICByZXFPYmpbXCJmb3JtTm1lXCJdID0gXCJhcHBsaWNhdGlvbkFjY2Vzc01hc3RlclwiO1xyXG4gICAgcmVxT2JqW1widXNlcm5hbWVcIl0gPSB0aGlzLnVVc3I7XHJcbiAgICBoZWFkZXJbXCJtZXRob2RcIl0gPSBcImxvYWRDaGFuZ2VQYXNzXCI7XHJcbiAgICAvLyBsZXQgb3B0aW9ucyA9IG5ldyBSZXF1ZXN0T3B0aW9ucyh7IGhlYWRlcnM6IGhlYWRlciB9KTtcclxuICAgIC8vIGxldCBvcHRpb25zID0gbmV3IEh0dHBIZWFkZXJzKHsgaGVhZGVyczogaGVhZGVyIH0pO1xyXG4gICAgbGV0IG9wdGlvbnMgPSB7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH07XHJcbiAgICB0aGlzLmNzLmxvYWQocmVxT2JqLCBvcHRpb25zLCAnY29udGFjdC9sb2FkQ29udGFjdCcpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSBcIlNVQ0NFU1NcIikge1xyXG4gICAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIGxldCByZXN1bHQgPSByZXNwb25zZS5yZXN1bHQ7XHJcbiAgICAgICAgdGhpcy51c2VyRGV0YWlscyA9IHJlc3VsdC51c2VyRGV0YWlscztcclxuICAgICAgICB0aGlzLmlzcGFzc3dvcmRDaGFuZ2UgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYW5nZVB3ZEJ0bicpLmNsaWNrKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgLy8gdGhpcy5mbGFzaE1lc3NhZ2VzU2VydmljZS5zaG93KHJlc3BvbnNlLm1lc3NhZ2UsIHtcclxuICAgICAgICAvLyAgIGNzc0NsYXNzOiBcImFsZXJ0LWRhbmdlclwiLFxyXG4gICAgICAgIC8vICAgdGltZW91dDogMzAwMFxyXG4gICAgICAgIC8vIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgICAuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgLy8gdGhpcy5mbGFzaE1lc3NhZ2VzU2VydmljZS5zaG93KGVyci5tZXNzYWdlLCB7XHJcbiAgICAgICAgLy8gICBjc3NDbGFzczogXCJhbGVydC1kYW5nZXJcIixcclxuICAgICAgICAvLyAgIHRpbWVvdXQ6IDMwMDBcclxuICAgICAgICAvLyB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gIH1cclxuICBwYXNzd29yZENoYW5nZSgpIHtcclxuICAgIHRoaXMuaXNwYXNzd29yZENoYW5nZSA9IHRydWU7XHJcblxyXG4gIH1cclxuICBTYXZlUGFzc3dvcmQoKSB7XHJcbiAgICBpZiAodGhpcy5pc3Bhc3N3b3JkQ2hhbmdlKSB7XHJcbiAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgICBpZiAoQ29va2llLmdldCgnX2xvZ2lkJykgPT0gbnVsbCkgcmV0dXJuO1xyXG4gICAgICBsZXQgaGVhZGVyOiBhbnkgPSB7XHJcbiAgICAgICAgJ2NsaWVudGtleSc6IENvb2tpZS5nZXQoJ19jaycpLFxyXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgJ21vZHVsZWtleSc6IHRoaXMubWRsa1t0aGlzLmNVcmwuc3BsaXQoJy8nKVsxXV0sXHJcbiAgICAgICAgJ2xvZ2luaWQnOiBDb29raWUuZ2V0KCdfbG9naWQnKSxcclxuICAgICAgICAnc291cmNlJzogJ3FzJ1xyXG4gICAgICB9XHJcbiAgICAgIGRlYnVnZ2VyXHJcbiAgICAgIGxldCB1c3JEdGwgPSB0aGlzLnVzZXJEZXRhaWxzWzBdO1xyXG4gICAgICBsZXQgcmVxT2JqID0ge307XHJcbiAgICAgIHJlcU9ialtcImZvcm1ObWVcIl0gPSBcInNldFBhc3N3b3JkRm9ybVwiO1xyXG4gICAgICByZXFPYmpbXCJ1c2VySWRuXCJdID0gdXNyRHRsLnVzZXJJZG47XHJcbiAgICAgIHJlcU9ialtcInBhc3N3b3JkXCJdID0gdXNyRHRsLnBhc3N3b3JkO1xyXG4gICAgICBoZWFkZXJbXCJtZXRob2RcIl0gPSBcImNoYW5nZVBhc3N3b3JkXCI7XHJcbiAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHJlcU9iaikpO1xyXG4gICAgICAvLyBsZXQgb3B0aW9ucyA9IG5ldyBSZXF1ZXN0T3B0aW9ucyh7IGhlYWRlcnM6IGhlYWRlciB9KTtcclxuICAgICAgLy8gbGV0IG9wdGlvbnMgPSBuZXcgSHR0cEhlYWRlcnMoeyBoZWFkZXJzOiBoZWFkZXIgfSk7XHJcbiAgICAgIGxldCBvcHRpb25zID0geyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9O1xyXG4gICAgICB0aGlzLmNzLmxvYWQocmVxT2JqLCBvcHRpb25zLCAnY29udGFjdC9sb2FkQ29udGFjdCcpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09IFwiU1VDQ0VTU1wiKSB7XHJcbiAgICAgICAgICBsZXQgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0O1xyXG4gICAgICAgICAgdGhpcy5jbG9zZWJ0bi5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgICAgICAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAgIHRoaXMuaXNwYXNzd29yZENoYW5nZSA9IGZhbHNlO1xyXG4gICAgICAgICAgLy8gdGhpcy5mbGFzaE1lc3NhZ2VzU2VydmljZS5zaG93KHJlc3BvbnNlLm1lc3NhZ2UsIHtcclxuICAgICAgICAgIC8vICAgY3NzQ2xhc3M6IFwiYWxlcnQtc3VjY2Vzc1wiLFxyXG4gICAgICAgICAgLy8gICB0aW1lb3V0OiAzMDAwXHJcbiAgICAgICAgICAvLyB9KTtcclxuICAgICAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdyhyZXNwb25zZS5tZXNzYWdlLCB7XHJcbiAgICAgICAgICAvLyAgIGNzc0NsYXNzOiBcImFsZXJ0LWRhbmdlclwiLFxyXG4gICAgICAgICAgLy8gICB0aW1lb3V0OiAzMDAwXHJcbiAgICAgICAgICAvLyB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgICAvLyB0aGlzLmZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3coZXJyLm1lc3NhZ2UsIHtcclxuICAgICAgICAgIC8vICAgY3NzQ2xhc3M6IFwiYWxlcnQtZGFuZ2VyXCIsXHJcbiAgICAgICAgICAvLyAgIHRpbWVvdXQ6IDMwMDBcclxuICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAvLyB0aGlzLmZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3coXCJQbGVhc2Ugc3BlY2lmeSBuZXcgcGFzc3dvcmRcIiwge1xyXG4gICAgICAvLyAgIGNzc0NsYXNzOiBcImFsZXJ0LWRhbmdlclwiLFxyXG4gICAgICAvLyAgIHRpbWVvdXQ6IDMwMDBcclxuICAgICAgLy8gfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcblxyXG4gIFNob3dNZW51KHR5cCwgbWVudWR0bCkge1xyXG4gICAgdmFyIG1lbnVkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVudURpdicpLnN0eWxlLmRpc3BsYXk7XHJcbiAgICBpZiAobWVudWRpdiA9PSAnbm9uZScpXHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZW51RGl2Jykuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XHJcbiAgICBlbHNlXHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZW51RGl2Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgIGlmICh0eXAgPT0gJ2xuaycpIHtcclxuICAgICAgZGVidWdnZXJcclxuICAgICAgbGV0IG1lbnVfaWRuID0gbWVudWR0bC5tZW51X2lkbiB8fCAnJztcclxuICAgICAgbGV0IG1vZHVsa2V5ID0gdGhpcy5tZGxrW3RoaXMuY1VybC5zcGxpdCgnLycpWzFdXVxyXG4gICAgICBsZXQgaGlzdG9yeUxpbmttYXAgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdoaXN0b3J5TGluaycpKSB8fCB7fTtcclxuICAgICAgbGV0IG1vZHVsZUxpbmsgPSBoaXN0b3J5TGlua21hcFttb2R1bGtleV0gfHwgW107XHJcbiAgICAgIGlmIChtZW51X2lkbiAhPSAnJykge1xyXG4gICAgICAgIGRlYnVnZ2VyXHJcbiAgICAgICAgaWYgKG1vZHVsZUxpbmsuaW5kZXhPZihtZW51X2lkbikgIT0gLTEpIHtcclxuICAgICAgICAgIG1vZHVsZUxpbmsuc3BsaWNlKG1vZHVsZUxpbmsuaW5kZXhPZihtZW51X2lkbiksIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBtb2R1bGVMaW5rLnNwbGljZSgwLCAwLCBtZW51X2lkbik7XHJcbiAgICAgICAgaWYgKG1vZHVsZUxpbmsubGVuZ3RoID4gMTApIHtcclxuICAgICAgICAgIGxldCBudW1PZnJlbW92ZSA9IG1vZHVsZUxpbmsubGVuZ3RoIC0gMTA7XHJcbiAgICAgICAgICBtb2R1bGVMaW5rLnNwbGljZSgxMCwgbnVtT2ZyZW1vdmUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBoaXN0b3J5TGlua21hcFttb2R1bGtleV0gPSBtb2R1bGVMaW5rO1xyXG4gICAgICAgIHRoaXMuaGlzdG9yeUxpbmsgPSBtb2R1bGVMaW5rO1xyXG4gICAgICAgIHRoaXMuaGlzdG9yeUxpbmtNYXBbbWVudV9pZG5dID0gbWVudWR0bDtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnaGlzdG9yeUxpbmsnLCBKU09OLnN0cmluZ2lmeShoaXN0b3J5TGlua21hcCkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEVkaXRDb21wYW55KCkge1xyXG4gICAgQ29va2llLmRlbGV0ZSgnX2FjY0NvbXBhbnknLCB0aGlzLmdsb2JsRW52LnBhdGhuYW1lLCB0aGlzLmdsb2JsRW52Lmhvc3RuYW1lKTtcclxuICAgIENvb2tpZS5kZWxldGUoJ19hY2N5ZWFyJywgdGhpcy5nbG9ibEVudi5wYXRobmFtZSwgdGhpcy5nbG9ibEVudi5ob3N0bmFtZSk7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2ZhY29tcGFueSddKTtcclxuICB9XHJcbiAgcmJpID0gXCJcIjtcclxuICBiYW5rID0gXCJcIjtcclxuICBjdXRvbWltcCA9IFwiXCI7XHJcbiAgY3V0b21leHAgPSBcIlwiO1xyXG4gIG1kbGtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLm1kbGsgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtZGxLZXknKSk7XHJcbiAgICAgdGhpcy5jVXJsID0gd2luZG93LmxvY2F0aW9uLmhhc2g7XHJcbiAgICAgdGhpcy5jVXJsPXRoaXMuY1VybC5yZXBsYWNlKFwiI1wiLCcnKTtcclxuXHJcbiAgICAvLyBHZXR0aW5nIHRoZSBmaW5hbCB1cmxcclxuICAgIHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAuZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpXHJcbiAgICAgIC5zdWJzY3JpYmUoKG5hdkVuZDogTmF2aWdhdGlvbkVuZCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY1VybCA9IG5hdkVuZC51cmxBZnRlclJlZGlyZWN0cztcclxuICAgICAgICB0aGlzLm1lbnVMaXN0KCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5jVXJsKTtcclxuICAgICAgfSk7XHJcbiAgICAvLyB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXHJcbiAgICAvLyAuc3Vic2NyaWJlKChuYXZFbmQ6IE5hdmlnYXRpb25FbmQpID0+IHtcclxuICAgIC8vICAgdGhpcy5jVXJsID0gbmF2RW5kLnVybEFmdGVyUmVkaXJlY3RzO1xyXG4gICAgLy8gICB0aGlzLm1lbnVMaXN0KCk7XHJcbiAgICAvLyAgIC8vIGNvbnNvbGUubG9nKHRoaXMuY1VybCk7XHJcbiAgICAvLyB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5jVXJsID09ICcnKVxyXG4gICAgICB0aGlzLmNVcmwgPSBcIi9ob21lXCI7XHJcbiAgICB0aGlzLmhlYWRlciA9IHtcclxuICAgICAgJ2NsaWVudGtleSc6IENvb2tpZS5nZXQoJ19jaycpLFxyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAnZHMnOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnRFMnKSxcclxuICAgICAgJ2FwcGtleSc6ICdPOTFZSypEdyRrRTdkTnBjVm1HTHZMeFdNSjBDMDBlTycsXHJcbiAgICAgICdtb2R1bGVrZXknOiAnV0hpNlNSTFk2IyQ4MmJ6SmZANElVeDlvSFNMYm4ycUgnLC8vIG1kbGtbY1VybC5zcGxpdCgnLycpWzFdXSxcclxuICAgICAgJ2xvZ2luaWQnOiBDb29raWUuZ2V0KCdfbG9naWQnKSxcclxuICAgICAgJ3NvdXJjZSc6ICdxcydcclxuICAgIH07XHJcblxyXG5cclxuICB9XHJcblxyXG4gIE9wZW5PcHRpb24oKSB7XHJcbiAgICB2YXIgaXNkaXNwbGF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vcmVvcHRpb24nKS5zdHlsZS5kaXNwbGF5O1xyXG4gICAgaWYgKGlzZGlzcGxheSA9PSAnbm9uZScpIHtcclxuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vcmVvcHRpb24nKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb3Jlb3B0aW9uJykuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIiwiPHVsIGNsYXNzPVwieC1uYXZpZ2F0aW9uIHgtbmF2aWdhdGlvbi1ob3Jpem9udGFsIHgtbmF2aWdhdGlvbi1wYW5lbFwiIHN0eWxlPVwicGFkZGluZy1yaWdodDogMHB4O3otaW5kZXg6IDEwMDBcIj5cclxuICA8bGkgc3R5bGU9XCJiYWNrZ3JvdW5kOiAjM2I1OTk4O1wiPlxyXG4gICAgPGEgKGNsaWNrKT1cInJvdXRlaG9tZSgpXCIgKm5nSWY9XCJjVXJsICE9ICcvaG9tZSdcIiBjbGFzcz1cInByb2ZpbGUtbWluaVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImhlYWRcIj5FWjwvc3Bhbj5cclxuICAgIDwvYT5cclxuICA8L2xpPlxyXG4gIDxsaSAqbmdJZj1cImNVcmwgIT0gJy9ob21lJyBcIj5cclxuICAgIDxuYXYgY2xhc3M9XCJuYXZiYXIgbmF2YmFyLWV4cGFuZC1tZCBuYXZiYXItbGlnaHQgYmctbGlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm5hdmJhci1jb2xsYXBzZSBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdG9wXCIgaWQ9XCJuYXZiYXJDb2xsYXBzZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYXZiYXItbmF2XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWl0ZW0gZHJvcGRvd25cIiBzdHlsZT1cInotaW5kZXg6MTBcIj5cclxuICAgICAgICAgICAgPGEgKGNsaWNrKT1cIlNob3dNZW51KCdiYXInLCcnKVwiIGNsYXNzPVwibmF2LWxpbmsgZHJvcGRvd24tdG9nZ2xlXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cImNvbG9yOiAjZmZmOyBmb250LXNpemU6IDIwcHg7cGFkZGluZzowcHggO21hcmdpbi10b3A6IDVweFwiIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIj4gPGlcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEgZmEtYmFyc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2E+XHJcbiAgICAgICAgICAgIDxkaXYgaWQ9XCJtZW51RGl2XCIgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO2JhY2tncm91bmQtY29sb3I6ICMxZDIxMjdcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1oaXN0b3J5LWNvbHVtbiBjb2wtbWQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8aDI+SGlzdG9yeTwvaDI+XHJcbiAgICAgICAgICAgICAgICAgIDx1bCBpZD1cIm5hdi1oaXN0b3J5XCIgc3R5bGU9XCJkaXNwbGF5OmlubGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInNlcnZpY2UtaXRlbVwiICpuZ0Zvcj1cImxldCBtZW51X2lkbiBvZiBoaXN0b3J5TGlua1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMve3toaXN0b3J5TGlua01hcFttZW51X2lkbl1bJ2xuayddfX1cIiBjbGFzcz1cImhlYWRlcmxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiU2hvd01lbnUoJ2JhcicsJycpXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlcnZpY2UtbGFiZWxcIj57e2hpc3RvcnlMaW5rTWFwW21lbnVfaWRuXVsnaGRyJ119fTwvc3Bhbj48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGNvbC1tZC0xMiBhd3NjLXNlcnZpY2VzLXNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJhd3NjLWlucHV0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImF3c2Mtc2VydmljZXMtc2VhcmNoLWF1dG9jb21wbGV0ZVwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJGaW5kIGEgTWVudSBieSBuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1aS1hdXRvY29tcGxldGUtaW5wdXRcIiBuYW1lPVwic2VhcmNoRlwiIFsobmdNb2RlbCldPVwic2VhcmNoRlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cImF3c2Mtc2VydmljZXMtY29udGFpbmVyXCIgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBrZXkgb2Yga2V5TGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY2NtZW51IG9mIGFjY01lbnVMaXN0W2tleV0gfCB0YWJsZVNlYXJjaDpzZWFyY2hGO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0lmPVwiYWNjbWVudS5pc2hkcj09J1knXCIgY2xhc3M9XCJhd3NjLWhlYWRlciBpY28tY29tcHV0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWNjbWVudS5sbmsgIT0nIycgJiYgYWNjbWVudS5sbmsgIT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYW5nbGUtZG91YmxlLXJpZ2h0XCIgc3R5bGU9XCJmb250LXNpemU6MjBweDtjb2xvcjp3aGl0ZTtcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMve3thY2NtZW51Lmxua319XCIgKGNsaWNrKT1cIlNob3dNZW51KCdsbmsnLGFjY21lbnUpXCIgY2xhc3M9XCJoZWFkZXJsaW5rXCI+IDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VydmljZS1sYWJlbFwiPiB7e2FjY21lbnUuaGRyfX08L3NwYW4+IDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY2NtZW51LmxuayA9PScjJyB8fCBhY2NtZW51LmxuayA9PScnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1hbmdsZS1kb3VibGUtZG93blwiIHN0eWxlPVwiZm9udC1zaXplOjIwcHg7Y29sb3I6d2hpdGU7XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YWNjbWVudS5oZHJ9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJhY2NtZW51LmlzaGRyPT0nTidcIiBjbGFzcz1cInNlcnZpY2UtaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiIy97e2FjY21lbnUubG5rfX1cIiAoY2xpY2spPVwiU2hvd01lbnUoJ2xuaycsYWNjbWVudSlcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZXJ2aWNlLWxhYmVsXCI+e3thY2NtZW51Lmhkcn19PC9zcGFuPjwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25hdj5cclxuICA8L2xpPlxyXG4gIDxsaSBjbGFzcz1cInJzLW5vbmVcIiBbbmdTdHlsZV09XCJ7J3dpZHRoJyA6IGNVcmwgPT0gJy9ob21lJyA/ICcyNTBweCcgOiAnMHB4J31cIj5cclxuICAgICZuYnNwO1xyXG4gIDwvbGk+XHJcbiAgPGxpIGNsYXNzPVwicnMtbm9uZVwiIHN0eWxlPVwibWFyZ2luOiAxMHB4O1wiPlxyXG4gICAgPGZvcm0gY2xhc3M9XCJmb3JtLWlubGluZSBteS0yXCI+XHJcbiAgICAgIDx0ZXh0YXJlYSBzdHlsZT1cIndoaXRlLXNwYWNlOiBwcmU7XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cIlNUT05FIElELyBSRiBJRCBzZWFyY2hcIiBbKG5nTW9kZWwpXT1cInFrU2NoXCJcclxuICAgICAgICBpZD1cImZvZ2dsZVwiIG5hbWU9XCJmb29nbGVcIiBjb2xzPVwiNDVcIiByb3dzPVwiMVwiPjwvdGV4dGFyZWE+XHJcbiAgICAgIDxzcGFuIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyBcclxuICAgICAgICB0b3A6IC0ycHg7XHJcbiAgICAgICAgcmlnaHQ6IDI4cHg7XHJcbiAgICAgICAgY29sb3I6IHJnYigxNTAsIDE0NCwgMTQ0KTtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcclxuICAgICAgICB6LWluZGV4OiA2O1xyXG4gICAgICAgIHdpZHRoOiAzNXB4O1xyXG4gICAgICAgIGhlaWdodDogMzZweDtcclxuICAgICAgICBsaW5lLWhlaWdodDogMzRweDtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgLyogcG9pbnRlci1ldmVudHM6IG5vbmU7ICovXHJcbiAgICAgICAgZm9udC1zaXplOiAxN3B4O1wiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoXCIgKGNsaWNrKT1cInBhY2tldExvb2t1cFNyY0NvdW50KHFrU2NoKTtcIj48L2k+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJoZWxwYyBtci1zbS0yXCIgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgIHRpdGxlPVwiU1RPTkUgLyBDRVJUIE5PIC8gR0lBIFJEIDEuMjAtMS4zMCBGIFZTMSAzRVggTlwiPjxpIGNsYXNzPVwiZmEgZmEtaW5mb1wiPjwvaT48L3NwYW4+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9saT5cclxuICA8bGkgY2xhc3M9XCJwdWxsLXJpZ2h0XCIgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJsZWZ0XCIgdGl0bGU9XCJDaGFuZ2UgcGFzc3dvcmRcIj5cclxuICAgIDxhIChjbGljayk9XCJDaGFuZ2VQYXNzd29yZCgpXCIgc3R5bGU9XCJwYWRkaW5nOjE1cHggNXB4XCIgY2xhc3M9XCJtYi1jb250cm9sXCI+XHJcbiAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxOHB4XCIgY2xhc3M9XCJmYSBmYS1rZXlcIj48L3NwYW4+XHJcbiAgICA8L2E+XHJcbiAgPC9saT5cclxuICA8bGkgY2xhc3M9XCJwdWxsLXJpZ2h0XCIgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJsZWZ0XCIgdGl0bGU9XCJMb2cgT3V0XCI+XHJcbiAgICA8YSAoY2xpY2spPVwibG9nT3V0Qm94KClcIiBjbGFzcz1cIm1iLWNvbnRyb2xcIiBzdHlsZT1cInBhZGRpbmc6MTVweCA1cHhcIiBkYXRhLWJveD1cIiNtYi1zaWdub3V0XCI+XHJcbiAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxOHB4XCIgY2xhc3M9XCJmYSBmYS1zaWduLW91dFwiPjwvc3Bhbj5cclxuICAgIDwvYT5cclxuICA8L2xpPlxyXG4gIDxsaSBjbGFzcz1cInB1bGwtcmlnaHRcIj5cclxuICAgIDxsYWJlbCBjbGFzcz1cInVkXCI+IDxzcGFuIGNsYXNzPVwidGV4dC1jYXBpdGFsaXplXCI+e3t1VXNyICsnIHwnfX08L3NwYW4+IHt7ZHN9fSA8L2xhYmVsPlxyXG4gIDwvbGk+XHJcbjwvdWw+XHJcbjx1bCBjbGFzcz1cIngtbmF2aWdhdGlvbiB4LW5hdmlnYXRpb24taG9yaXpvbnRhbCB4LW5hdmlnYXRpb24tcGFuZWwgc3Itbm9uZVwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogI2JmYmZiZlwiPlxyXG4gIDxsaSBzdHlsZT1cIm1hcmdpbjogMTBweDtcIj5cclxuICAgIDxmb3JtIGNsYXNzPVwiZm9ybS1pbmxpbmUgbXktMlwiPlxyXG4gICAgICA8dGV4dGFyZWEgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogcHJlO1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJTVE9ORSBJRC8gUkYgSUQgc2VhcmNoXCIgWyhuZ01vZGVsKV09XCJxa1NjaFwiXHJcbiAgICAgICAgaWQ9XCJmb2dnbGVcIiBuYW1lPVwiZm9vZ2xlXCIgY29scz1cIjQ1XCIgcm93cz1cIjFcIj48L3RleHRhcmVhPlxyXG4gICAgICA8c3BhbiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgXHJcbiAgICAgIHRvcDogLTJweDtcclxuICAgICAgcmlnaHQ6IDI4cHg7XHJcbiAgICAgIGNvbG9yOiByZ2IoMTUwLCAxNDQsIDE0NCk7XHJcbiAgICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xyXG4gICAgICB6LWluZGV4OiA2O1xyXG4gICAgICB3aWR0aDogMzBweDtcclxuICAgICAgaGVpZ2h0OiAzNnB4O1xyXG4gICAgICBsaW5lLWhlaWdodDogMzRweDtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAvKiBwb2ludGVyLWV2ZW50czogbm9uZTsgKi9cclxuICAgICAgZm9udC1zaXplOiAxN3B4O1wiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoXCIgKGNsaWNrKT1cInBhY2tldExvb2t1cFNyY0NvdW50KHFrU2NoKTtcIj48L2k+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvZm9ybT5cclxuICA8L2xpPlxyXG48L3VsPlxyXG5cclxuPGRpdiBjbGFzcz1cIm1vZGFsXCIgaWQ9XCJjaGFuZ2VQd2RQb3BcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1sYWJlbGxlZGJ5PVwic21hbGxNb2RhbEhlYWRcIiBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gIGRhdGEtYmFja2Ryb3A9XCJzdGF0aWNcIiBkYXRhLWtleWJvYXJkPVwiZmFsc2VcIj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtZGlhbG9nXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgI2Nsb3NlYnRuPlxyXG4gICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPkNsb3NlPC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJzbWFsbE1vZGFsSGVhZFwiPkNoYW5nZSBQYXNzd29yZDwvaDQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHVzZXIgb2YgdXNlckRldGFpbHM7IGxldCBpPWluZGV4O1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbnRyb2wtbGFiZWxcIiBjbGFzcz1cImNvbC1tZC0yXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0XCI+VXNlcm5hbWUgOiA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLW1kLTJcIiBzdHlsZT1cInRleHQtYWxpZ246IGxlZnRcIj57e3VzZXI/LnVzZXJuYW1lfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiIHN0eWxlPVwibWFyZ2luLXRvcDogNXB4XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbnRyb2wtbGFiZWxcIiBjbGFzcz1cImNvbC1tZC0yXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0XCI+UGFzc3dvcmQ6PC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGNsYXNzPVwiY29sLW1kLTEwXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJwYXNzd29yZENoYW5nZSgpXCIgWyhuZ01vZGVsKV09XCJ1c2VyLnBhc3N3b3JkXCIgbmFtZT1cInBhc3N3b3JkXCIgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tZGFuZ2VyXCIgI2Nsb3NlYnRuIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCI+Q2xvc2U8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiU2F2ZVBhc3N3b3JkKClcIiBjbGFzcz1cImJ0biBidG4tc3VjY2Vzc1wiIGFwcEFwcE5vRGJsQ2xpY2s+Q29uZmlybTwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxidXR0b24gaWQ9XCJjaGFuZ2VQd2RCdG5cIiBbaGlkZGVuXT1cInRydWVcIiBkYXRhLXRvZ2dsZT1cIm1vZGFsXCIgZGF0YS10YXJnZXQ9XCIjY2hhbmdlUHdkUG9wXCI+PC9idXR0b24+Il19
|
|
405
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V6LWxpYi9zcmMvbGliL2V6aGVhZGVyL2hlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lei1saWIvc3JjL2xpYi9lemhlYWRlci9oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELGtFQUFrRTtBQUNsRSxPQUFPLEVBQVUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7OztBQWF4RCxNQUFNLE9BQU8saUJBQWlCO0lBRTVCLFlBQ1UsTUFBYztJQUN0QixzREFBc0Q7SUFDOUMsRUFBd0IsRUFDekIsUUFBMEI7SUFDakMsbURBQW1EOztRQUozQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRWQsT0FBRSxHQUFGLEVBQUUsQ0FBc0I7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFLbkMsVUFBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbkIsT0FBRSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0IsWUFBTyxHQUFHLEVBQUUsQ0FBQTtRQUNaLFNBQUksR0FBRyxFQUFFLENBQUE7UUFDVCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUNwQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUdqQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsWUFBTyxHQUFHLEVB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RSxjQUFjOytKQWFELFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29va2llIH0gZnJvbSAnbmcyLWNvb2tpZXMvbmcyLWNvb2tpZXMnO1xyXG4vLyBpbXBvcnQgeyBGbGFzaE1lc3NhZ2VzU2VydmljZSB9IGZyb20gJ2FuZ3VsYXIyLWZsYXNoLW1lc3NhZ2VzJztcclxuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tbWFuU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tYW4tc2VydmljZS9jb21tYW4tc2VydmljZS5zZXJ2aWNlJztcclxuLy8gaW1wb3J0IHsgUmVxdWVzdE9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9odHRwJztcclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEdsb2JsZUVudlNlcnZpY2UgfSBmcm9tICcuLi9nbG9ibGUvZ2xvYmxlLWVudi5zZXJ2aWNlJztcclxuLy8gaW1wb3J0IHsgTmc0TG9hZGluZ1NwaW5uZXJTZXJ2aWNlIH0gZnJvbSAnbmc0LWxvYWRpbmctc3Bpbm5lcic7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMtY29tcGF0L29wZXJhdG9yL2ZpbHRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1lemhlYWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXpIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICAvLyBwcml2YXRlIGZsYXNoTWVzc2FnZXNTZXJ2aWNlOiBGbGFzaE1lc3NhZ2VzU2VydmljZSxcclxuICAgIHByaXZhdGUgY3M6IENvbW1hblNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHVibGljIGdsb2JsRW52OiBHbG9ibGVFbnZTZXJ2aWNlXHJcbiAgICAvLyBwcml2YXRlIHNwaW5uZXJTZXJ2aWNlOiBOZzRMb2FkaW5nU3Bpbm5lclNlcnZpY2VcclxuICApIHsgfVxyXG4gIEBWaWV3Q2hpbGQoJ2Nsb3NlYnRuJykgY2xvc2VidG46IEVsZW1lbnRSZWY7XHJcblxyXG4gIGNEYXRlID0gbmV3IERhdGUoKTtcclxuICBkcyA9IENvb2tpZS5nZXQoJ19kcycpO1xyXG4gIHVVc3IgPSBDb29raWUuZ2V0KCdfdXNlcm5hbWUnKTtcclxuICBjb21wYW55ID0gXCJcIlxyXG4gIHllYXIgPSBcIlwiXHJcbiAgdXNlckRldGFpbHMgPSBbXTtcclxuICBoaXN0b3J5TGlua01hcCA9IHt9O1xyXG4gIGhpc3RvcnlMaW5rID0gW107XHJcbiAgY1VybDtcclxuICBoZWFkZXI7XHJcbiAgYWNjTWVudUxpc3QgPSB7fTtcclxuICBmbGFnID0gZmFsc2U7XHJcbiAga2V5TGlzdCA9IFtdO1xyXG4gIHNlYXJjaEY7XHJcbiAgdW5hbWU7XHJcbiAgcWtTY2g7XHJcbiAgc2NoSWQ7XHJcbiAgc3R0c0E7XHJcbiAgY291bnQ7XHJcbiAgbnRTY2g6IGJvb2xlYW47XHJcbiAgc3JjaENudCA9IDA7XHJcbiAgY250ID0gMDtcclxuICBmZWVkYmFja0NvbW1lbnQgPSAnJztcclxuXHJcblxyXG5cclxuICBjbGlja0ZpbHRlcihrYykge1xyXG5cclxuICAgIGlmIChrYy53aGljaCA9PSAxMykge1xyXG4gICAgICAvLyB0aGlzLmdldFNyY2hDb3VudCh0aGlzLnFrU2NoKTtcclxuICAgICAgdGhpcy5wYWNrZXRMb29rdXBTcmNDb3VudCh0aGlzLnFrU2NoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBiYWNrSG9tZSgpIHtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5nbG9ibEVudi5vcmlnaW4gKyBcIiNob21lXCI7XHJcbiAgfVxyXG5cclxuICByb3V0ZWhvbWUoKSB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLnJvdXRlci5zZXJpYWxpemVVcmwodGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJ2hvbWUnXSkpO1xyXG4gICAgd2luZG93Lm9wZW4oXCIvI1wiICsgdXJsLCAnSG9tZScpO1xyXG4gIH1cclxuICBwYWNrZXRMb29rdXBTcmNDb3VudChmZ2xzdHIpIHtcclxuICAgIHRoaXMuc3JjaENudCA9IHRoaXMuc3JjaENudCArIDFcclxuICAgIGxldCBsb2dEdGwgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdyZXNyZXFwYXJhJykpO1xyXG4gICAgaWYgKGZnbHN0ciA9PSB1bmRlZmluZWQgfHwgZmdsc3RyID09ICcnKSB7XHJcbiAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdygnUGxlYXNlIGVudGVyIFNlYXJjaCBQYXJhbWV0ZXInLCB7IGNzc0NsYXNzOiAnYWxlcnQtZGFuZ2VyJywgdGltZW91dDogMzAwMCB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IHIgPSB0aGlzLmNzLmZvcm1hdGVTdHIoZmdsc3RyKTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdwYWNrZXRMb29rdXBTdHInLCByKTtcclxuXHJcbiAgICBpZiAodGhpcy5jVXJsID09ICcvc29saXRhaXJlcycpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydzb2xpdGFpcmVzL3BhY2tldC1sb29rdXAvJ10sIHsgcXVlcnlQYXJhbXM6IHsgc2NoSWQ6IHRoaXMuc3JjaENudCB9IH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZXIuc2VyaWFsaXplVXJsKHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWydzb2xpdGFpcmVzL3BhY2tldC1sb29rdXAvJ10sIHsgcXVlcnlQYXJhbXM6IHsgc2NoSWQ6IHRoaXMuc3JjaENudCB9IH0pKTtcclxuICAgICAgd2luZG93Lm9wZW4oXCIvc29saXRhaXJlcy8jXCIgKyB1cmwsICdTb2xpdGFpcmVzJyk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG4gIGxvZ291dCgpIHtcclxuICAgIGxldCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialsnZm9ybU5tZSddID0gJ0xvZ291dCdcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdsb2dPdXQnO1xyXG4gICAgLy8gbGV0IG9wdGlvbnMgPSBuZXcgUmVxdWVzdE9wdGlvbnMoeyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9KTtcclxuICAgIC8vIGxldCBvcHRpb25zID0gbmV3IEh0dHBIZWFkZXJzKHsgaGVhZGVyczogdGhpcy5oZWFkZXIgfSk7XHJcbiAgICBsZXQgb3B0aW9ucyA9IHsgaGVhZGVyczogdGhpcy5oZWFkZXIgfTtcclxuICAgIHRoaXMuY3MubG9nb3V0KHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgIGxldCBkcyA9IENvb2tpZS5nZXQoJ19kcycpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ191c2VybmFtZScpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19sb2d0aW1lJyk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2NrJyk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2xvZ2lkJyk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2FjY0NvbXBhbnknKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfYWNjeWVhcicpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdPVFAnKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnY2xpZW50S2V5Jyk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2xvZ0lkbicpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdtZGxLZXknKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndXNlcm5hbWUnKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc2VsTWQnKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2hnJywgJ2ZhbHNlJyk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3RyYW5zYWN0aW9uSW5mbycpO1xyXG5cclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfdXNlcm5hbWUnLCB0aGlzLmdsb2JsRW52LnBhdGhuYW1lLCB0aGlzLmdsb2JsRW52Lmhvc3RuYW1lKTtcclxuICAgICAgICBDb29raWUuZGVsZXRlKCdfbG9ndGltZScsIHRoaXMuZ2xvYmxFbnYucGF0aG5hbWUsIHRoaXMuZ2xvYmxFbnYuaG9zdG5hbWUpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19jaycsIHRoaXMuZ2xvYmxFbnYucGF0aG5hbWUsIHRoaXMuZ2xvYmxFbnYuaG9zdG5hbWUpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19sb2dpZCcsIHRoaXMuZ2xvYmxFbnYucGF0aG5hbWUsIHRoaXMuZ2xvYmxFbnYuaG9zdG5hbWUpO1xyXG4gICAgICAgIENvb2tpZS5kZWxldGUoJ19hY2NDb21wYW55JywgdGhpcy5nbG9ibEVudi5wYXRobmFtZSwgdGhpcy5nbG9ibEVudi5ob3N0bmFtZSk7XHJcbiAgICAgICAgQ29va2llLmRlbGV0ZSgnX2FjY3llYXInLCB0aGlzLmdsb2JsRW52LnBhdGhuYW1lLCB0aGlzLmdsb2JsRW52Lmhvc3RuYW1lKTtcclxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMuZ2xvYmxFbnYub3JpZ2luO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdyhyZXNwb25zZS5tZXNzYWdlLCB7IGNzc0NsYXNzOiAnYWxlcnQtZGFuZ2VyJywgdGltZW91dDogMzAwMCB9KTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdyhlcnIubWVzc2FnZSwgeyBjc3NDbGFzczogJ2FsZXJ0LWRhbmdlcicsIHRpbWVvdXQ6IDMwMDAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG1lbnVMaXN0KCkge1xyXG4gICAgbGV0IHJlcU9iaiA9IHt9O1xyXG4gICAgbGV0IG1vZHVsZUtleXMgPSB0aGlzLm1kbGtbdGhpcy5jVXJsLnNwbGl0KCcvJylbMV1dO1xyXG5cclxuICAgIGlmIChDb29raWUuZ2V0KCdfbG9naWQnKSA9PSBudWxsKSByZXR1cm47XHJcbiAgICBsZXQgaGVhZGVyOiBhbnkgPSB7XHJcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICdjbGllbnRrZXknOiBDb29raWUuZ2V0KCdfY2snKSxcclxuICAgICAgJ2xvZ2luaWQnOiBDb29raWUuZ2V0KCdfbG9naWQnKSxcclxuICAgICAgJ21ldGhvZCc6ICdnZXRNZW51TGlzdCcsXHJcbiAgICAgICdtb2R1bGVrZXknOiBtb2R1bGVLZXlzLFxyXG4gICAgICAnc291cmNlJzogJ3FzJ1xyXG4gICAgfVxyXG5cclxuICAgIHJlcU9ialsnbW9kdWxlS2V5cyddID0gbW9kdWxlS2V5cztcclxuXHJcbiAgICAvLyBsZXQgb3B0aW9ucyA9IG5ldyBSZXF1ZXN0T3B0aW9ucyh7IGhlYWRlcnM6IGhlYWRlciB9KTtcclxuICAgIC8vIGxldCBvcHRpb25zID0gbmV3IEh0dHBIZWFkZXJzKHsgaGVhZGVyczogaGVhZGVyIH0pO1xyXG4gICAgbGV0IG9wdGlvbnMgPSB7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH07XHJcbiAgICBjb25zb2xlLmxvZyhyZXFPYmopO1xyXG4gICAgdGhpcy5jcy5tZW51TGlzdChyZXFPYmosIG9wdGlvbnMpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhyZXFPYmopO1xyXG4gICAgICAgIGxldCBsb2NoaXN0b3J5TWFwID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnaGlzdG9yeUxpbmsnKSkgfHwge307XHJcbiAgICAgICAgbGV0IGxvY2hpc3RvcnlMaW5rID0gbG9jaGlzdG9yeU1hcFttb2R1bGVLZXlzXSB8fCBbXTtcclxuICAgICAgICB0aGlzLmhpc3RvcnlMaW5rTWFwID0ge307XHJcbiAgICAgICAgdGhpcy5oaXN0b3J5TGluayA9IFtdO1xyXG4gICAgICAgIGxldCBtZW51TGlzdCA9IHJlc3BvbnNlLnJlc3VsdDtcclxuICAgICAgICBsZXQgY250ID0gMFxyXG4gICAgICAgIG1lbnVMaXN0LmZvckVhY2goZWxlID0+IHtcclxuICAgICAgICAgIGNudCA9IGNudCArIGVsZS5TdWJNZW51Lmxlbmd0aCArIDE7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbGV0IGRpdiA9IGNudCAvIDQ7XHJcbiAgICAgICAgZGl2ID0gTWF0aC5yb3VuZChkaXYpO1xyXG4gICAgICAgIGlmIChkaXYgPCAxKSB7XHJcbiAgICAgICAgICBsZXQgbmV3TWVudUxpc3QgPSBbXTtcclxuICAgICAgICAgIG1lbnVMaXN0LmZvckVhY2goZWxlID0+IHtcclxuICAgICAgICAgICAgZWxlW1wiaXNoZHJcIl0gPSBcIllcIjtcclxuICAgICAgICAgICAgbmV3TWVudUxpc3QucHVzaChlbGUpXHJcbiAgICAgICAgICAgIGxldCBleHRtZW51X2lkbiA9IGVsZS5tZW51X2lkbjtcclxuICAgICAgICAgICAgaWYgKGxvY2hpc3RvcnlMaW5rLmluZGV4T2YoZXh0bWVudV9pZG4pICE9IC0xKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5TGluay5wdXNoKGV4dG1lbnVfaWRuKTtcclxuICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlMaW5rTWFwW2V4dG1lbnVfaWRuXSA9IGVsZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsZS5TdWJNZW51LmZvckVhY2goc3ViZWxlID0+IHtcclxuICAgICAgICAgICAgICBuZXdNZW51TGlzdC5wdXNoKHN1YmVsZSlcclxuICAgICAgICAgICAgICBleHRtZW51X2lkbiA9IHN1YmVsZS5tZW51X2lkbjtcclxuXHJcbiAgICAgICAgICAgICAgaWYgKGxvY2hpc3RvcnlMaW5rLmluZGV4T2YoZXh0bWVudV9pZG4pICE9IC0xKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlMaW5rLnB1c2goZXh0bWVudV9pZG4pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5TGlua01hcFtleHRtZW51X2lkbl0gPSBzdWJlbGU7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuYWNjTWVudUxpc3RbMV0gPSBuZXdNZW51TGlzdDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGtleSA9IDE7XHJcbiAgICAgICAgICBsZXQgbmV3TWVudUxpc3QgPSBbXTtcclxuICAgICAgICAgIGxldCBsc0NudCA9IDA7XHJcbiAgICAgICAgICBtZW51TGlzdC5mb3JFYWNoKGVsZSA9PiB7XHJcbiAgICAgICAgICAgIGxzQ250ID0gbHNDbnQgKyBlbGUuU3ViTWVudS5sZW5ndGggKyAxO1xyXG4gICAgICAgICAgICBlbGVbXCJpc2hkclwiXSA9IFwiWVwiO1xyXG4gICAgICAgICAgICBuZXdNZW51TGlzdC5wdXNoKGVsZSlcclxuICAgICAgICAgICAgbGV0IGV4dG1lbnVfaWRuID0gZWxlLm1lbnVfaWRuO1xyXG4gICAgICAgICAgICBpZiAobG9jaGlzdG9yeUxpbmsuaW5kZXhPZihleHRtZW51X2lkbikgIT0gLTEpIHtcclxuICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlMaW5rLnB1c2goZXh0bWVudV9pZG4pO1xyXG4gICAgICAgICAgICAgIHRoaXMuaGlzdG9yeUxpbmtNYXBbZXh0bWVudV9pZG5dID0gZWxlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxlLlN1Yk1lbnUuZm9yRWFjaChzdWJlbGUgPT4ge1xyXG4gICAgICAgICAgICAgIHN1YmVsZVtcImlzaGRyXCJdID0gXCJOXCI7XHJcbiAgICAgICAgICAgICAgbmV3TWVudUxpc3QucHVzaChzdWJlbGUpXHJcbiAgICAgICAgICAgICAgZXh0bWVudV9pZG4gPSBzdWJlbGUubWVudV9pZG47XHJcblxyXG4gICAgICAgICAgICAgIGlmIChsb2NoaXN0b3J5TGluay5pbmRleE9mKGV4dG1lbnVfaWRuKSAhPSAtMSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5TGluay5wdXNoKGV4dG1lbnVfaWRuKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGlzdG9yeUxpbmtNYXBbZXh0bWVudV9pZG5dID0gc3ViZWxlO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgaWYgKGxzQ250ID49IGRpdiAmJiBuZXdNZW51TGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hY2NNZW51TGlzdFtrZXldID0gbmV3TWVudUxpc3Q7XHJcbiAgICAgICAgICAgICAga2V5ID0ga2V5ICsgMTtcclxuICAgICAgICAgICAgICBuZXdNZW51TGlzdCA9IFtdO1xyXG4gICAgICAgICAgICAgIGxzQ250ID0gMDtcclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcblxyXG5cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKGxzQ250ICE9IDApXHJcbiAgICAgICAgICAgIHRoaXMuYWNjTWVudUxpc3Rba2V5XSA9IG5ld01lbnVMaXN0O1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIHRoaXMua2V5TGlzdCA9IE9iamVjdC5rZXlzKHRoaXMuYWNjTWVudUxpc3QpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdyhyZXNwb25zZS5tZXNzYWdlLCB7IGNzc0NsYXNzOiAnYWxlcnQtZGFuZ2VyJywgdGltZW91dDogMzAwMCB9KTtcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdyhlcnIubWVzc2FnZSwgeyBjc3NDbGFzczogJ2FsZXJ0LWRhbmdlcicsIHRpbWVvdXQ6IDMwMDAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbG9nT3V0Qm94KCkge1xyXG4gICAgdmFyIGRpc3BsYXkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWItc2lnbm91dCcpLnN0eWxlLmRpc3BsYXk7XHJcblxyXG4gICAgaWYgKGRpc3BsYXkgPT0gJ25vbmUnIHx8IGRpc3BsYXkgPT0gJycpIHtcclxuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21iLXNpZ25vdXQnKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYi1zaWdub3V0Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgIH1cclxuICB9XHJcbiAgaXNwYXNzd29yZENoYW5nZSA9IGZhbHNlO1xyXG4gIENoYW5nZVBhc3N3b3JkKCkge1xyXG5cclxuICAgIGxldCByZXFPYmogPSB7fTtcclxuICAgIGlmIChDb29raWUuZ2V0KCdfbG9naWQnKSA9PSBudWxsKSByZXR1cm47XHJcbiAgICBsZXQgaGVhZGVyOiBhbnkgPSB7XHJcbiAgICAgICdjbGllbnRrZXknOiBDb29raWUuZ2V0KCdfY2snKSxcclxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgJ21vZHVsZWtleSc6IHRoaXMubWRsa1t0aGlzLmNVcmwuc3BsaXQoJy8nKVsxXV0sXHJcbiAgICAgICdsb2dpbmlkJzogQ29va2llLmdldCgnX2xvZ2lkJyksXHJcbiAgICAgICdzb3VyY2UnOiAncXMnXHJcbiAgICB9XHJcblxyXG4gICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICByZXFPYmpbXCJmb3JtTm1lXCJdID0gXCJhcHBsaWNhdGlvbkFjY2Vzc01hc3RlclwiO1xyXG4gICAgcmVxT2JqW1widXNlcm5hbWVcIl0gPSB0aGlzLnVVc3I7XHJcbiAgICBoZWFkZXJbXCJtZXRob2RcIl0gPSBcImxvYWRDaGFuZ2VQYXNzXCI7XHJcbiAgICAvLyBsZXQgb3B0aW9ucyA9IG5ldyBSZXF1ZXN0T3B0aW9ucyh7IGhlYWRlcnM6IGhlYWRlciB9KTtcclxuICAgIC8vIGxldCBvcHRpb25zID0gbmV3IEh0dHBIZWFkZXJzKHsgaGVhZGVyczogaGVhZGVyIH0pO1xyXG4gICAgbGV0IG9wdGlvbnMgPSB7IGhlYWRlcnM6IHRoaXMuaGVhZGVyIH07XHJcbiAgICB0aGlzLmNzLmxvYWQocmVxT2JqLCBvcHRpb25zLCAnY29udGFjdC9sb2FkQ29udGFjdCcpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSBcIlNVQ0NFU1NcIikge1xyXG4gICAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIGxldCByZXN1bHQgPSByZXNwb25zZS5yZXN1bHQ7XHJcbiAgICAgICAgdGhpcy51c2VyRGV0YWlscyA9IHJlc3VsdC51c2VyRGV0YWlscztcclxuICAgICAgICB0aGlzLmlzcGFzc3dvcmRDaGFuZ2UgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NoYW5nZVB3ZEJ0bicpLmNsaWNrKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgLy8gdGhpcy5mbGFzaE1lc3NhZ2VzU2VydmljZS5zaG93KHJlc3BvbnNlLm1lc3NhZ2UsIHtcclxuICAgICAgICAvLyAgIGNzc0NsYXNzOiBcImFsZXJ0LWRhbmdlclwiLFxyXG4gICAgICAgIC8vICAgdGltZW91dDogMzAwMFxyXG4gICAgICAgIC8vIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgICAuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgLy8gdGhpcy5mbGFzaE1lc3NhZ2VzU2VydmljZS5zaG93KGVyci5tZXNzYWdlLCB7XHJcbiAgICAgICAgLy8gICBjc3NDbGFzczogXCJhbGVydC1kYW5nZXJcIixcclxuICAgICAgICAvLyAgIHRpbWVvdXQ6IDMwMDBcclxuICAgICAgICAvLyB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gIH1cclxuICBwYXNzd29yZENoYW5nZSgpIHtcclxuICAgIHRoaXMuaXNwYXNzd29yZENoYW5nZSA9IHRydWU7XHJcblxyXG4gIH1cclxuICBTYXZlUGFzc3dvcmQoKSB7XHJcbiAgICBpZiAodGhpcy5pc3Bhc3N3b3JkQ2hhbmdlKSB7XHJcbiAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgICBpZiAoQ29va2llLmdldCgnX2xvZ2lkJykgPT0gbnVsbCkgcmV0dXJuO1xyXG4gICAgICBsZXQgaGVhZGVyOiBhbnkgPSB7XHJcbiAgICAgICAgJ2NsaWVudGtleSc6IENvb2tpZS5nZXQoJ19jaycpLFxyXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgJ21vZHVsZWtleSc6IHRoaXMubWRsa1t0aGlzLmNVcmwuc3BsaXQoJy8nKVsxXV0sXHJcbiAgICAgICAgJ2xvZ2luaWQnOiBDb29raWUuZ2V0KCdfbG9naWQnKSxcclxuICAgICAgICAnc291cmNlJzogJ3FzJ1xyXG4gICAgICB9XHJcbiAgICAgIGRlYnVnZ2VyXHJcbiAgICAgIGxldCB1c3JEdGwgPSB0aGlzLnVzZXJEZXRhaWxzWzBdO1xyXG4gICAgICBsZXQgcmVxT2JqID0ge307XHJcbiAgICAgIHJlcU9ialtcImZvcm1ObWVcIl0gPSBcInNldFBhc3N3b3JkRm9ybVwiO1xyXG4gICAgICByZXFPYmpbXCJ1c2VySWRuXCJdID0gdXNyRHRsLnVzZXJJZG47XHJcbiAgICAgIHJlcU9ialtcInBhc3N3b3JkXCJdID0gdXNyRHRsLnBhc3N3b3JkO1xyXG4gICAgICBoZWFkZXJbXCJtZXRob2RcIl0gPSBcImNoYW5nZVBhc3N3b3JkXCI7XHJcbiAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHJlcU9iaikpO1xyXG4gICAgICAvLyBsZXQgb3B0aW9ucyA9IG5ldyBSZXF1ZXN0T3B0aW9ucyh7IGhlYWRlcnM6IGhlYWRlciB9KTtcclxuICAgICAgLy8gbGV0IG9wdGlvbnMgPSBuZXcgSHR0cEhlYWRlcnMoeyBoZWFkZXJzOiBoZWFkZXIgfSk7XHJcbiAgICAgIGxldCBvcHRpb25zID0geyBoZWFkZXJzOiB0aGlzLmhlYWRlciB9O1xyXG4gICAgICB0aGlzLmNzLmxvYWQocmVxT2JqLCBvcHRpb25zLCAnY29udGFjdC9sb2FkQ29udGFjdCcpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09IFwiU1VDQ0VTU1wiKSB7XHJcbiAgICAgICAgICBsZXQgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0O1xyXG4gICAgICAgICAgdGhpcy5jbG9zZWJ0bi5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgICAgICAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAgIHRoaXMuaXNwYXNzd29yZENoYW5nZSA9IGZhbHNlO1xyXG4gICAgICAgICAgLy8gdGhpcy5mbGFzaE1lc3NhZ2VzU2VydmljZS5zaG93KHJlc3BvbnNlLm1lc3NhZ2UsIHtcclxuICAgICAgICAgIC8vICAgY3NzQ2xhc3M6IFwiYWxlcnQtc3VjY2Vzc1wiLFxyXG4gICAgICAgICAgLy8gICB0aW1lb3V0OiAzMDAwXHJcbiAgICAgICAgICAvLyB9KTtcclxuICAgICAgICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgICAgIC8vIHRoaXMuZmxhc2hNZXNzYWdlc1NlcnZpY2Uuc2hvdyhyZXNwb25zZS5tZXNzYWdlLCB7XHJcbiAgICAgICAgICAvLyAgIGNzc0NsYXNzOiBcImFsZXJ0LWRhbmdlclwiLFxyXG4gICAgICAgICAgLy8gICB0aW1lb3V0OiAzMDAwXHJcbiAgICAgICAgICAvLyB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgLy8gdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgICAvLyB0aGlzLmZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3coZXJyLm1lc3NhZ2UsIHtcclxuICAgICAgICAgIC8vICAgY3NzQ2xhc3M6IFwiYWxlcnQtZGFuZ2VyXCIsXHJcbiAgICAgICAgICAvLyAgIHRpbWVvdXQ6IDMwMDBcclxuICAgICAgICAgIC8vIH0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICAvLyB0aGlzLmZsYXNoTWVzc2FnZXNTZXJ2aWNlLnNob3coXCJQbGVhc2Ugc3BlY2lmeSBuZXcgcGFzc3dvcmRcIiwge1xyXG4gICAgICAvLyAgIGNzc0NsYXNzOiBcImFsZXJ0LWRhbmdlclwiLFxyXG4gICAgICAvLyAgIHRpbWVvdXQ6IDMwMDBcclxuICAgICAgLy8gfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcblxyXG4gIFNob3dNZW51KHR5cCwgbWVudWR0bCkge1xyXG4gICAgdmFyIG1lbnVkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVudURpdicpLnN0eWxlLmRpc3BsYXk7XHJcbiAgICBpZiAobWVudWRpdiA9PSAnbm9uZScpXHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZW51RGl2Jykuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XHJcbiAgICBlbHNlXHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZW51RGl2Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgIGlmICh0eXAgPT0gJ2xuaycpIHtcclxuICAgICAgZGVidWdnZXJcclxuICAgICAgbGV0IG1lbnVfaWRuID0gbWVudWR0bC5tZW51X2lkbiB8fCAnJztcclxuICAgICAgbGV0IG1vZHVsa2V5ID0gdGhpcy5tZGxrW3RoaXMuY1VybC5zcGxpdCgnLycpWzFdXVxyXG4gICAgICBsZXQgaGlzdG9yeUxpbmttYXAgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdoaXN0b3J5TGluaycpKSB8fCB7fTtcclxuICAgICAgbGV0IG1vZHVsZUxpbmsgPSBoaXN0b3J5TGlua21hcFttb2R1bGtleV0gfHwgW107XHJcbiAgICAgIGlmIChtZW51X2lkbiAhPSAnJykge1xyXG4gICAgICAgIGRlYnVnZ2VyXHJcbiAgICAgICAgaWYgKG1vZHVsZUxpbmsuaW5kZXhPZihtZW51X2lkbikgIT0gLTEpIHtcclxuICAgICAgICAgIG1vZHVsZUxpbmsuc3BsaWNlKG1vZHVsZUxpbmsuaW5kZXhPZihtZW51X2lkbiksIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBtb2R1bGVMaW5rLnNwbGljZSgwLCAwLCBtZW51X2lkbik7XHJcbiAgICAgICAgaWYgKG1vZHVsZUxpbmsubGVuZ3RoID4gMTApIHtcclxuICAgICAgICAgIGxldCBudW1PZnJlbW92ZSA9IG1vZHVsZUxpbmsubGVuZ3RoIC0gMTA7XHJcbiAgICAgICAgICBtb2R1bGVMaW5rLnNwbGljZSgxMCwgbnVtT2ZyZW1vdmUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBoaXN0b3J5TGlua21hcFttb2R1bGtleV0gPSBtb2R1bGVMaW5rO1xyXG4gICAgICAgIHRoaXMuaGlzdG9yeUxpbmsgPSBtb2R1bGVMaW5rO1xyXG4gICAgICAgIHRoaXMuaGlzdG9yeUxpbmtNYXBbbWVudV9pZG5dID0gbWVudWR0bDtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnaGlzdG9yeUxpbmsnLCBKU09OLnN0cmluZ2lmeShoaXN0b3J5TGlua21hcCkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEVkaXRDb21wYW55KCkge1xyXG4gICAgQ29va2llLmRlbGV0ZSgnX2FjY0NvbXBhbnknLCB0aGlzLmdsb2JsRW52LnBhdGhuYW1lLCB0aGlzLmdsb2JsRW52Lmhvc3RuYW1lKTtcclxuICAgIENvb2tpZS5kZWxldGUoJ19hY2N5ZWFyJywgdGhpcy5nbG9ibEVudi5wYXRobmFtZSwgdGhpcy5nbG9ibEVudi5ob3N0bmFtZSk7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2ZhY29tcGFueSddKTtcclxuICB9XHJcbiAgcmJpID0gXCJcIjtcclxuICBiYW5rID0gXCJcIjtcclxuICBjdXRvbWltcCA9IFwiXCI7XHJcbiAgY3V0b21leHAgPSBcIlwiO1xyXG4gIG1kbGtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLm1kbGsgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtZGxLZXknKSk7XHJcbiAgICAgdGhpcy5jVXJsID0gd2luZG93LmxvY2F0aW9uLmhhc2g7XHJcbiAgICAgdGhpcy5jVXJsPXRoaXMuY1VybC5yZXBsYWNlKFwiI1wiLCcnKTtcclxuXHJcbiAgICAgLy90ZXN0XHJcbiAgICAgXHJcbiAgICAgLy9cclxuICAgIC8vIEdldHRpbmcgdGhlIGZpbmFsIHVybFxyXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzXHJcbiAgICAgIC5maWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZClcclxuICAgICAgLnN1YnNjcmliZSgobmF2RW5kOiBOYXZpZ2F0aW9uRW5kKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jVXJsID0gbmF2RW5kLnVybEFmdGVyUmVkaXJlY3RzO1xyXG4gICAgICAgIHRoaXMubWVudUxpc3QoKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmNVcmwpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5tZW51TGlzdCgpO1xyXG4gICAgLy8gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG4gICAgLy8gLnN1YnNjcmliZSgobmF2RW5kOiBOYXZpZ2F0aW9uRW5kKSA9PiB7XHJcbiAgICAvLyAgIHRoaXMuY1VybCA9IG5hdkVuZC51cmxBZnRlclJlZGlyZWN0cztcclxuICAgIC8vICAgdGhpcy5tZW51TGlzdCgpO1xyXG4gICAgLy8gICAvLyBjb25zb2xlLmxvZyh0aGlzLmNVcmwpO1xyXG4gICAgLy8gfSk7XHJcblxyXG4gICAgaWYgKHRoaXMuY1VybCA9PSAnJylcclxuICAgICAgdGhpcy5jVXJsID0gXCIvaG9tZVwiO1xyXG4gICAgdGhpcy5oZWFkZXIgPSB7XHJcbiAgICAgICdjbGllbnRrZXknOiBDb29raWUuZ2V0KCdfY2snKSxcclxuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgJ2RzJzogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0RTJyksXHJcbiAgICAgICdhcHBrZXknOiAnTzkxWUsqRHcka0U3ZE5wY1ZtR0x2THhXTUowQzAwZU8nLFxyXG4gICAgICAnbW9kdWxla2V5JzogJ1dIaTZTUkxZNiMkODJiekpmQDRJVXg5b0hTTGJuMnFIJywvLyBtZGxrW2NVcmwuc3BsaXQoJy8nKVsxXV0sXHJcbiAgICAgICdsb2dpbmlkJzogQ29va2llLmdldCgnX2xvZ2lkJyksXHJcbiAgICAgICdzb3VyY2UnOiAncXMnXHJcbiAgICB9O1xyXG5cclxuXHJcbiAgfVxyXG5cclxuICBPcGVuT3B0aW9uKCkge1xyXG4gICAgdmFyIGlzZGlzcGxheSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb3Jlb3B0aW9uJykuc3R5bGUuZGlzcGxheTtcclxuICAgIGlmIChpc2Rpc3BsYXkgPT0gJ25vbmUnKSB7XHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb3Jlb3B0aW9uJykuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9yZW9wdGlvbicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIjx1bCBjbGFzcz1cIngtbmF2aWdhdGlvbiB4LW5hdmlnYXRpb24taG9yaXpvbnRhbCB4LW5hdmlnYXRpb24tcGFuZWxcIiBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDBweDt6LWluZGV4OiAxMDAwXCI+XHJcbiAgPGxpIHN0eWxlPVwiYmFja2dyb3VuZDogIzNiNTk5ODtcIj5cclxuICAgIDxhIChjbGljayk9XCJyb3V0ZWhvbWUoKVwiICpuZ0lmPVwiY1VybCAhPSAnL2hvbWUnXCIgY2xhc3M9XCJwcm9maWxlLW1pbmlcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkXCI+RVo8L3NwYW4+XHJcbiAgICA8L2E+XHJcbiAgPC9saT5cclxuICA8bGkgKm5nSWY9XCJjVXJsICE9ICcvaG9tZScgXCI+XHJcbiAgICA8bmF2IGNsYXNzPVwibmF2YmFyIG5hdmJhci1leHBhbmQtbWQgbmF2YmFyLWxpZ2h0IGJnLWxpZ2h0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJuYXZiYXItY29sbGFwc2UganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXRvcFwiIGlkPVwibmF2YmFyQ29sbGFwc2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibmF2YmFyLW5hdlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1pdGVtIGRyb3Bkb3duXCIgc3R5bGU9XCJ6LWluZGV4OjEwXCI+XHJcbiAgICAgICAgICAgIDxhIChjbGljayk9XCJTaG93TWVudSgnYmFyJywnJylcIiBjbGFzcz1cIm5hdi1saW5rIGRyb3Bkb3duLXRvZ2dsZVwiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJjb2xvcjogI2ZmZjsgZm9udC1zaXplOiAyMHB4O3BhZGRpbmc6MHB4IDttYXJnaW4tdG9wOiA1cHhcIiBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCI+IDxpXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZhIGZhLWJhcnNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+PC9hPlxyXG4gICAgICAgICAgICA8ZGl2IGlkPVwibWVudURpdlwiIGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiAjMWQyMTI3XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtaGlzdG9yeS1jb2x1bW4gY29sLW1kLTJcIj5cclxuICAgICAgICAgICAgICAgICAgPGgyPkhpc3Rvcnk8L2gyPlxyXG4gICAgICAgICAgICAgICAgICA8dWwgaWQ9XCJuYXYtaGlzdG9yeVwiIHN0eWxlPVwiZGlzcGxheTppbmxpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJzZXJ2aWNlLWl0ZW1cIiAqbmdGb3I9XCJsZXQgbWVudV9pZG4gb2YgaGlzdG9yeUxpbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjL3t7aGlzdG9yeUxpbmtNYXBbbWVudV9pZG5dWydsbmsnXX19XCIgY2xhc3M9XCJoZWFkZXJsaW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlNob3dNZW51KCdiYXInLCcnKVwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZXJ2aWNlLWxhYmVsXCI+e3toaXN0b3J5TGlua01hcFttZW51X2lkbl1bJ2hkciddfX08L3NwYW4+PC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBjb2wtbWQtMTIgYXdzYy1zZXJ2aWNlcy1zZWFyY2hcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwiYXdzYy1pbnB1dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJhd3NjLXNlcnZpY2VzLXNlYXJjaC1hdXRvY29tcGxldGVcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiRmluZCBhIE1lbnUgYnkgbmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidWktYXV0b2NvbXBsZXRlLWlucHV0XCIgbmFtZT1cInNlYXJjaEZcIiBbKG5nTW9kZWwpXT1cInNlYXJjaEZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJhd3NjLXNlcnZpY2VzLWNvbnRhaW5lclwiIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQga2V5IG9mIGtleUxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWNjbWVudSBvZiBhY2NNZW51TGlzdFtrZXldIHwgdGFibGVTZWFyY2g6c2VhcmNoRjtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cImFjY21lbnUuaXNoZHI9PSdZJ1wiIGNsYXNzPVwiYXdzYy1oZWFkZXIgaWNvLWNvbXB1dGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjY21lbnUubG5rICE9JyMnICYmIGFjY21lbnUubG5rICE9JydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWFuZ2xlLWRvdWJsZS1yaWdodFwiIHN0eWxlPVwiZm9udC1zaXplOjIwcHg7Y29sb3I6d2hpdGU7XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjL3t7YWNjbWVudS5sbmt9fVwiIChjbGljayk9XCJTaG93TWVudSgnbG5rJyxhY2NtZW51KVwiIGNsYXNzPVwiaGVhZGVybGlua1wiPiA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNlcnZpY2UtbGFiZWxcIj4ge3thY2NtZW51Lmhkcn19PC9zcGFuPiA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWNjbWVudS5sbmsgPT0nIycgfHwgYWNjbWVudS5sbmsgPT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYW5nbGUtZG91YmxlLWRvd25cIiBzdHlsZT1cImZvbnQtc2l6ZToyMHB4O2NvbG9yOndoaXRlO1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2FjY21lbnUuaGRyfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0lmPVwiYWNjbWVudS5pc2hkcj09J04nXCIgY2xhc3M9XCJzZXJ2aWNlLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiMve3thY2NtZW51Lmxua319XCIgKGNsaWNrKT1cIlNob3dNZW51KCdsbmsnLGFjY21lbnUpXCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VydmljZS1sYWJlbFwiPnt7YWNjbWVudS5oZHJ9fTwvc3Bhbj48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uYXY+XHJcbiAgPC9saT5cclxuICA8bGkgY2xhc3M9XCJycy1ub25lXCIgW25nU3R5bGVdPVwieyd3aWR0aCcgOiBjVXJsID09ICcvaG9tZScgPyAnMjUwcHgnIDogJzBweCd9XCI+XHJcbiAgICAmbmJzcDtcclxuICA8L2xpPlxyXG4gIDxsaSBjbGFzcz1cInJzLW5vbmVcIiBzdHlsZT1cIm1hcmdpbjogMTBweDtcIj5cclxuICAgIDxmb3JtIGNsYXNzPVwiZm9ybS1pbmxpbmUgbXktMlwiPlxyXG4gICAgICA8dGV4dGFyZWEgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogcHJlO1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJTVE9ORSBJRC8gUkYgSUQgc2VhcmNoXCIgWyhuZ01vZGVsKV09XCJxa1NjaFwiXHJcbiAgICAgICAgaWQ9XCJmb2dnbGVcIiBuYW1lPVwiZm9vZ2xlXCIgY29scz1cIjQ1XCIgcm93cz1cIjFcIj48L3RleHRhcmVhPlxyXG4gICAgICA8c3BhbiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgXHJcbiAgICAgICAgdG9wOiAtMnB4O1xyXG4gICAgICAgIHJpZ2h0OiAyOHB4O1xyXG4gICAgICAgIGNvbG9yOiByZ2IoMTUwLCAxNDQsIDE0NCk7XHJcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgei1pbmRleDogNjtcclxuICAgICAgICB3aWR0aDogMzVweDtcclxuICAgICAgICBoZWlnaHQ6IDM2cHg7XHJcbiAgICAgICAgbGluZS1oZWlnaHQ6IDM0cHg7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgIC8qIHBvaW50ZXItZXZlbnRzOiBub25lOyAqL1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTdweDtcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiIChjbGljayk9XCJwYWNrZXRMb29rdXBTcmNDb3VudChxa1NjaCk7XCI+PC9pPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiaGVscGMgbXItc20tMlwiIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICB0aXRsZT1cIlNUT05FIC8gQ0VSVCBOTyAvIEdJQSBSRCAxLjIwLTEuMzAgRiBWUzEgM0VYIE5cIj48aSBjbGFzcz1cImZhIGZhLWluZm9cIj48L2k+PC9zcGFuPlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbGk+XHJcbiAgPGxpIGNsYXNzPVwicHVsbC1yaWdodFwiIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwibGVmdFwiIHRpdGxlPVwiQ2hhbmdlIHBhc3N3b3JkXCI+XHJcbiAgICA8YSAoY2xpY2spPVwiQ2hhbmdlUGFzc3dvcmQoKVwiIHN0eWxlPVwicGFkZGluZzoxNXB4IDVweFwiIGNsYXNzPVwibWItY29udHJvbFwiPlxyXG4gICAgICA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMThweFwiIGNsYXNzPVwiZmEgZmEta2V5XCI+PC9zcGFuPlxyXG4gICAgPC9hPlxyXG4gIDwvbGk+XHJcbiAgPGxpIGNsYXNzPVwicHVsbC1yaWdodFwiIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwibGVmdFwiIHRpdGxlPVwiTG9nIE91dFwiPlxyXG4gICAgPGEgKGNsaWNrKT1cImxvZ091dEJveCgpXCIgY2xhc3M9XCJtYi1jb250cm9sXCIgc3R5bGU9XCJwYWRkaW5nOjE1cHggNXB4XCIgZGF0YS1ib3g9XCIjbWItc2lnbm91dFwiPlxyXG4gICAgICA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMThweFwiIGNsYXNzPVwiZmEgZmEtc2lnbi1vdXRcIj48L3NwYW4+XHJcbiAgICA8L2E+XHJcbiAgPC9saT5cclxuICA8bGkgY2xhc3M9XCJwdWxsLXJpZ2h0XCI+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJ1ZFwiPiA8c3BhbiBjbGFzcz1cInRleHQtY2FwaXRhbGl6ZVwiPnt7dVVzciArJyB8J319PC9zcGFuPiB7e2RzfX0gPC9sYWJlbD5cclxuICA8L2xpPlxyXG48L3VsPlxyXG48dWwgY2xhc3M9XCJ4LW5hdmlnYXRpb24geC1uYXZpZ2F0aW9uLWhvcml6b250YWwgeC1uYXZpZ2F0aW9uLXBhbmVsIHNyLW5vbmVcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICNiZmJmYmZcIj5cclxuICA8bGkgc3R5bGU9XCJtYXJnaW46IDEwcHg7XCI+XHJcbiAgICA8Zm9ybSBjbGFzcz1cImZvcm0taW5saW5lIG15LTJcIj5cclxuICAgICAgPHRleHRhcmVhIHN0eWxlPVwid2hpdGUtc3BhY2U6IHByZTtcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiU1RPTkUgSUQvIFJGIElEIHNlYXJjaFwiIFsobmdNb2RlbCldPVwicWtTY2hcIlxyXG4gICAgICAgIGlkPVwiZm9nZ2xlXCIgbmFtZT1cImZvb2dsZVwiIGNvbHM9XCI0NVwiIHJvd3M9XCIxXCI+PC90ZXh0YXJlYT5cclxuICAgICAgPHNwYW4gc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IFxyXG4gICAgICB0b3A6IC0ycHg7XHJcbiAgICAgIHJpZ2h0OiAyOHB4O1xyXG4gICAgICBjb2xvcjogcmdiKDE1MCwgMTQ0LCAxNDQpO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcclxuICAgICAgei1pbmRleDogNjtcclxuICAgICAgd2lkdGg6IDMwcHg7XHJcbiAgICAgIGhlaWdodDogMzZweDtcclxuICAgICAgbGluZS1oZWlnaHQ6IDM0cHg7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgLyogcG9pbnRlci1ldmVudHM6IG5vbmU7ICovXHJcbiAgICAgIGZvbnQtc2l6ZTogMTdweDtcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiIChjbGljayk9XCJwYWNrZXRMb29rdXBTcmNDb3VudChxa1NjaCk7XCI+PC9pPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9saT5cclxuPC91bD5cclxuXHJcbjxkaXYgY2xhc3M9XCJtb2RhbFwiIGlkPVwiY2hhbmdlUHdkUG9wXCIgcm9sZT1cImRpYWxvZ1wiIGFyaWEtbGFiZWxsZWRieT1cInNtYWxsTW9kYWxIZWFkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICBkYXRhLWJhY2tkcm9wPVwic3RhdGljXCIgZGF0YS1rZXlib2FyZD1cImZhbHNlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiICNjbG9zZWJ0bj5cclxuICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5DbG9zZTwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8aDQgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwic21hbGxNb2RhbEhlYWRcIj5DaGFuZ2UgUGFzc3dvcmQ8L2g0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB1c2VyIG9mIHVzZXJEZXRhaWxzOyBsZXQgaT1pbmRleDtcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb250cm9sLWxhYmVsXCIgY2xhc3M9XCJjb2wtbWQtMlwiIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdFwiPlVzZXJuYW1lIDogPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1tZC0yXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0XCI+e3t1c2VyPy51c2VybmFtZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDVweFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb250cm9sLWxhYmVsXCIgY2xhc3M9XCJjb2wtbWQtMlwiIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdFwiPlBhc3N3b3JkOjwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBjbGFzcz1cImNvbC1tZC0xMFwiIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwicGFzc3dvcmRDaGFuZ2UoKVwiIFsobmdNb2RlbCldPVwidXNlci5wYXNzd29yZFwiIG5hbWU9XCJwYXNzd29yZFwiIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyXCI+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRhbmdlclwiICNjbG9zZWJ0biBkYXRhLWRpc21pc3M9XCJtb2RhbFwiPkNsb3NlPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIlNhdmVQYXNzd29yZCgpXCIgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIiBhcHBBcHBOb0RibENsaWNrPkNvbmZpcm08L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48YnV0dG9uIGlkPVwiY2hhbmdlUHdkQnRuXCIgW2hpZGRlbl09XCJ0cnVlXCIgZGF0YS10b2dnbGU9XCJtb2RhbFwiIGRhdGEtdGFyZ2V0PVwiI2NoYW5nZVB3ZFBvcFwiPjwvYnV0dG9uPiJdfQ==
|
|
@@ -3450,6 +3450,8 @@ class EzHeaderComponent {
|
|
|
3450
3450
|
this.mdlk = JSON.parse(localStorage.getItem('mdlKey'));
|
|
3451
3451
|
this.cUrl = window.location.hash;
|
|
3452
3452
|
this.cUrl = this.cUrl.replace("#", '');
|
|
3453
|
+
//test
|
|
3454
|
+
//
|
|
3453
3455
|
// Getting the final url
|
|
3454
3456
|
this.router.events
|
|
3455
3457
|
.filter(e => e instanceof NavigationEnd)
|
|
@@ -3458,6 +3460,7 @@ class EzHeaderComponent {
|
|
|
3458
3460
|
this.menuList();
|
|
3459
3461
|
// console.log(this.cUrl);
|
|
3460
3462
|
});
|
|
3463
|
+
this.menuList();
|
|
3461
3464
|
// this.router.events.pipe(filter(e => e instanceof NavigationEnd))
|
|
3462
3465
|
// .subscribe((navEnd: NavigationEnd) => {
|
|
3463
3466
|
// this.cUrl = navEnd.urlAfterRedirects;
|