awf-test-lib 0.1.19 → 0.1.21

Sign up to get free protection for your applications and to get access to all the features.
@@ -26,7 +26,7 @@ export class MenuGePortalComponent {
26
26
  this.hideMenu.emit();
27
27
  }
28
28
  isTokenExpired() {
29
- const token = sessionStorage.getItem("va-token");
29
+ const token = sessionStorage.getItem("va-token") ? sessionStorage.getItem("va-token") : localStorage.getItem("va-token");
30
30
  if (!token) {
31
31
  return true; // Token absent, considéré comme expiré
32
32
  }
@@ -79,7 +79,10 @@ export class MenuGePortalComponent {
79
79
  deleteConnexionInfo() {
80
80
  sessionStorage.removeItem("va-token");
81
81
  sessionStorage.removeItem("va-email");
82
+ localStorage.removeItem("va-token");
83
+ localStorage.removeItem("va-email");
82
84
  sessionStorage.setItem("va", "false");
85
+ localStorage.setItem("va", "false");
83
86
  }
84
87
  navigate(route) {
85
88
  this.router.navigate([route]);
@@ -99,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
99
102
  }], hideMenu: [{
100
103
  type: Output
101
104
  }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1nZS1wb3J0YWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXdmLXRlc3QtbGliL3NyYy9saWIvY29yZS9tZW51LWdlLXBvcnRhbC9tZW51LWdlLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hd2YtdGVzdC1saWIvc3JjL2xpYi9jb3JlL21lbnUtZ2UtcG9ydGFsL21lbnUtZ2UtcG9ydGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxVQUFVLE1BQU0sWUFBWSxDQUFDOzs7O0FBT3BDLE1BQU0sT0FBTyxxQkFBcUI7SUFPOUIsWUFBNkIsTUFBZTtRQUFmLFdBQU0sR0FBTixNQUFNLENBQVM7UUFObEMsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdwRCxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0Qsa0JBQWEsR0FBYSxLQUFLLENBQUM7UUFHNUIsSUFBSSxDQUFDLGFBQWEsR0FBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxhQUFhLEdBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDN0MsSUFBRyxJQUFJLENBQUMsYUFBYSxFQUFDO1lBQ25CLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDdEI7YUFBSTtZQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWM7UUFDdEIs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QkFDSSxvQkFBb0I7NkZBS3BCLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0UsU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCBqd3RfZGVjb2RlIGZyb20gJ2p3dC1kZWNvZGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2F3Zi1tZW51LWdlLXBvcnRhbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWVudS1nZS1wb3J0YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVudS1nZS1wb3J0YWwuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVudUdlUG9ydGFsQ29tcG9uZW50ICB7XHJcbiAgICBAT3V0cHV0KCkgbG9nT3V0Q2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQElucHV0KCkgdHJhbnNsYXRlITogYW55O1xyXG4gICAgQElucHV0KCkgaXNBZG1pbiE6IGJvb2xlYW47XHJcbiAgICBAT3V0cHV0KCkgaGlkZU1lbnU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgZGlzcGxheVZpZXdBcyA6IGJvb2xlYW4gPSBmYWxzZTsgXHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByb3V0ZXIgOiBSb3V0ZXIpIHsgXHJcbiAgICAgICAgdGhpcy5kaXNwbGF5Vmlld0FzICA9ICF0aGlzLmlzVG9rZW5FeHBpcmVkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9nb3V0KCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheVZpZXdBcyAgPSAhdGhpcy5pc1Rva2VuRXhwaXJlZCgpO1xyXG4gICAgICAgIGlmKHRoaXMuZGlzcGxheVZpZXdBcyl7XHJcbiAgICAgICAgICAgdGhpcy5kZWxldGVDb25uZXhpb25JbmZvKCk7XHJcbiAgICAgICAgICAgdGhpcy5uYXZpZ2F0ZShcIi9nZVwiKVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLmxvZ091dENsaWNrLmVtaXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbWVudU1ldGhvZGUocGF0aD8gOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnJlZGlyZWN0QnlQYXRoKHBhdGgpO1xyXG4gICAgICAgIHRoaXMuaGlkZU1lbnUuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzVG9rZW5FeHBpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHRva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcInZhLXRva2VuXCIpXHJcbiAgICAgICAgaWYgKCF0b2tlbikge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7IC8vIFRva2VuIGFic2VudCwgY29uc2lkw6lyw6kgY29tbWUgZXhwaXLDqVxyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0b2tlbkRhdGEgOiBhbnkgPSBqd3RfZGVjb2RlKHRva2VuKTtcclxuICAgICAgICBjb25zdCBleHBpcmF0aW9uVGltZSA9IHRva2VuRGF0YT8uZXhwOyAvLyBDb252ZXJ0aXIgZW4gbWlsbGlzZWNvbmRlc1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lSW5TZWNvbmRzID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7IC8vIFRlbXBzIGFjdHVlbCBlbiBzZWNvbmRlc1xyXG4gICAgICAgIGNvbnN0IGlzRXhwaXJlZCA9IGV4cGlyYXRpb25UaW1lID8gZXhwaXJhdGlvblRpbWUgPCBjdXJyZW50VGltZUluU2Vjb25kcyAgOiB0cnVlO1xyXG4gICAgICAgIGlmKGlzRXhwaXJlZCl7XHJcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlQ29ubmV4aW9uSW5mbygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXNFeHBpcmVkXHJcbiAgICAgIFxyXG4gICAgICB9XHJcbiAgICAgIHJlZGlyZWN0QnlQYXRoKHBhdGg/IDogc3RyaW5nKXtcclxuICAgICAgICB0aGlzLmRpc3BsYXlWaWV3QXMgID0gIXRoaXMuaXNUb2tlbkV4cGlyZWQoKTtcclxuICAgICAgICAgICAgaWYodGhpcy5kaXNwbGF5Vmlld0FzKXtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAocGF0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgbnVsbCB8fCB1bmRlZmluZWQgfHwgJycgIDogdGhpcy5uYXZpZ2F0ZSgnL2dlL3ZpZXctYXMvaG9tZScpOyBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdjb250YWN0JyA6IHRoaXMubmF2aWdhdGUoJy9nZS92aWV3LWFzL2NvbnRhY3QnKTsgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdtYWludGVuYW5jZScgOiB0aGlzLm5hdmlnYXRlKCcvZ2Uvdmlldy1hcy9tYWludGVuYW5jZScpOyAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3lzdGVtcycgOiB0aGlzLm5hdmlnYXRlKCcvZ2Uvdmlldy1hcy9zeXN0ZW1zJyk7ICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB0aGlzLm5hdmlnYXRlKCcvZ2Uvdmlldy1hcy9ob21lJyk7XHJcbiAgICAgICAgICAgICAgICAgIH0gICAgIFxyXG4gICAgICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHBhdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIG51bGwgfHwgdW5kZWZpbmVkIHx8ICcnIDogdGhpcy5uYXZpZ2F0ZSgnL2dlJyk7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRhY3QnIDogdGhpcy5uYXZpZ2F0ZSgnL2dlL2NvbnRhY3QnKTsgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdtYWludGVuYW5jZScgOiB0aGlzLm5hdmlnYXRlKCcvZ2UvbWFpbnRlbmFuY2UnKTsgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N5c3RlbXMnIDogdGhpcy5uYXZpZ2F0ZSgnL2dlL3N5c3RlbXMnKTsgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRoaXMubmF2aWdhdGUoJy9nZScpO1xyXG4gICAgICAgICAgICAgICAgICB9ICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZUNvbm5leGlvbkluZm8oKXtcclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFwidmEtdG9rZW5cIik7XHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShcInZhLWVtYWlsXCIpO1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJ2YVwiLFwiZmFsc2VcIilcclxuICAgICAgfVxyXG4gICAgICBuYXZpZ2F0ZShyb3V0ZTogc3RyaW5nKTp2b2lke1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtyb3V0ZV0pXHJcbiAgICAgIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImxheW91dC1tZW51XCIgKm5nSWY9XCJ0cmFuc2xhdGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtZW51XCIgKGNsaWNrKT1cIm1lbnVNZXRob2RlKClcIj4gPGkgY2xhc3M9XCJwaSBwaS1ob21lXCI+PC9pPiB7e3RyYW5zbGF0ZS5ob21lfX08L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtZW51XCIgKGNsaWNrKT1cIm1lbnVNZXRob2RlKCdjb250YWN0JylcIj4gPGkgY2xhc3M9XCJwaSBwaS1waG9uZVwiPjwvaT4ge3t0cmFuc2xhdGUuY29udGFjdH19PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudVwiIChjbGljayk9XCJtZW51TWV0aG9kZSgnc3lzdGVtcycpXCI+IDxpIGNsYXNzPVwicGkgcGktZXllXCI+PC9pPiB7e3RyYW5zbGF0ZS5zeXN0ZW1zfX08L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtZW51XCIgKGNsaWNrKT1cIm1lbnVNZXRob2RlKCdtYWludGVuYW5jZScpXCI+IDxpIGNsYXNzPVwicGkgcGktaW5ib3hcIj48L2k+IHt7dHJhbnNsYXRlLm1haW50ZW5hbmNlfX08L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtZW51XCIgKGNsaWNrKT1cImxvZ291dCgpXCI+IDxpIGNsYXNzPVwicGkgcGktcG93ZXItb2ZmXCI+PC9pPiB7e3RyYW5zbGF0ZS5sb2dvdXR9fTwvZGl2PlxyXG48L2Rpdj4gIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1nZS1wb3J0YWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXdmLXRlc3QtbGliL3NyYy9saWIvY29yZS9tZW51LWdlLXBvcnRhbC9tZW51LWdlLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hd2YtdGVzdC1saWIvc3JjL2xpYi9jb3JlL21lbnUtZ2UtcG9ydGFsL21lbnUtZ2UtcG9ydGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxVQUFVLE1BQU0sWUFBWSxDQUFDOzs7O0FBT3BDLE1BQU0sT0FBTyxxQkFBcUI7SUFPOUIsWUFBNkIsTUFBZTtRQUFmLFdBQU0sR0FBTixNQUFNLENBQVM7UUFObEMsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdwRCxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0Qsa0JBQWEsR0FBYSxLQUFLLENBQUM7UUFHNUIsSUFBSSxDQUFDLGFBQWEsR0FBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxhQUFhLEdBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDN0MsSUFBRyxJQUFJLENBQUMsYUFBYSxFQUFDO1lBQ25CLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDdEI7YUFBSTtZQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWM7UUFDdEIs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UUFDcEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUMsT0FBTyxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUNELFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUMvQixDQUFDOzttSEF2RU0scUJBQXFCO3VHQUFyQixxQkFBcUIsaUxDVGxDLHVvQkFNTzs0RkRHTSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0ksb0JBQW9COzZGQUtwQixXQUFXO3NCQUFwQixNQUFNO2dCQUNFLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgand0X2RlY29kZSBmcm9tICdqd3QtZGVjb2RlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhd2YtbWVudS1nZS1wb3J0YWwnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL21lbnUtZ2UtcG9ydGFsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL21lbnUtZ2UtcG9ydGFsLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE1lbnVHZVBvcnRhbENvbXBvbmVudCAge1xyXG4gICAgQE91dHB1dCgpIGxvZ091dENsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBJbnB1dCgpIHRyYW5zbGF0ZSE6IGFueTtcclxuICAgIEBJbnB1dCgpIGlzQWRtaW4hOiBib29sZWFuO1xyXG4gICAgQE91dHB1dCgpIGhpZGVNZW51OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIGRpc3BsYXlWaWV3QXMgOiBib29sZWFuID0gZmFsc2U7IFxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcm91dGVyIDogUm91dGVyKSB7IFxyXG4gICAgICAgIHRoaXMuZGlzcGxheVZpZXdBcyAgPSAhdGhpcy5pc1Rva2VuRXhwaXJlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvZ291dCgpIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXlWaWV3QXMgID0gIXRoaXMuaXNUb2tlbkV4cGlyZWQoKTtcclxuICAgICAgICBpZih0aGlzLmRpc3BsYXlWaWV3QXMpe1xyXG4gICAgICAgICAgIHRoaXMuZGVsZXRlQ29ubmV4aW9uSW5mbygpO1xyXG4gICAgICAgICAgIHRoaXMubmF2aWdhdGUoXCIvZ2VcIilcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5sb2dPdXRDbGljay5lbWl0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG1lbnVNZXRob2RlKHBhdGg/IDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5yZWRpcmVjdEJ5UGF0aChwYXRoKTtcclxuICAgICAgICB0aGlzLmhpZGVNZW51LmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBpc1Rva2VuRXhwaXJlZCgpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCB0b2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJ2YS10b2tlblwiKSA/IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJ2YS10b2tlblwiKSA6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidmEtdG9rZW5cIilcclxuICAgICAgICBpZiAoIXRva2VuKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gVG9rZW4gYWJzZW50LCBjb25zaWTDqXLDqSBjb21tZSBleHBpcsOpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRva2VuRGF0YSA6IGFueSA9IGp3dF9kZWNvZGUodG9rZW4pO1xyXG4gICAgICAgIGNvbnN0IGV4cGlyYXRpb25UaW1lID0gdG9rZW5EYXRhPy5leHA7IC8vIENvbnZlcnRpciBlbiBtaWxsaXNlY29uZGVzXHJcbiAgICAgICAgY29uc3QgY3VycmVudFRpbWVJblNlY29uZHMgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTsgLy8gVGVtcHMgYWN0dWVsIGVuIHNlY29uZGVzXHJcbiAgICAgICAgY29uc3QgaXNFeHBpcmVkID0gZXhwaXJhdGlvblRpbWUgPyBleHBpcmF0aW9uVGltZSA8IGN1cnJlbnRUaW1lSW5TZWNvbmRzICA6IHRydWU7XHJcbiAgICAgICAgaWYoaXNFeHBpcmVkKXtcclxuICAgICAgICAgICAgdGhpcy5kZWxldGVDb25uZXhpb25JbmZvKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpc0V4cGlyZWRcclxuICAgICAgXHJcbiAgICAgIH1cclxuICAgICAgcmVkaXJlY3RCeVBhdGgocGF0aD8gOiBzdHJpbmcpe1xyXG4gICAgICAgIHRoaXMuZGlzcGxheVZpZXdBcyAgPSAhdGhpcy5pc1Rva2VuRXhwaXJlZCgpO1xyXG4gICAgICAgICAgICBpZih0aGlzLmRpc3BsYXlWaWV3QXMpe1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChwYXRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBudWxsIHx8IHVuZGVmaW5lZCB8fCAnJyAgOiB0aGlzLm5hdmlnYXRlKCcvZ2Uvdmlldy1hcy9ob21lJyk7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRhY3QnIDogdGhpcy5uYXZpZ2F0ZSgnL2dlL3ZpZXctYXMvY29udGFjdCcpOyAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ21haW50ZW5hbmNlJyA6IHRoaXMubmF2aWdhdGUoJy9nZS92aWV3LWFzL21haW50ZW5hbmNlJyk7ICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdzeXN0ZW1zJyA6IHRoaXMubmF2aWdhdGUoJy9nZS92aWV3LWFzL3N5c3RlbXMnKTsgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRoaXMubmF2aWdhdGUoJy9nZS92aWV3LWFzL2hvbWUnKTtcclxuICAgICAgICAgICAgICAgICAgfSAgICAgXHJcbiAgICAgICAgICAgIH1lbHNlIHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAocGF0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgbnVsbCB8fCB1bmRlZmluZWQgfHwgJycgOiB0aGlzLm5hdmlnYXRlKCcvZ2UnKTsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY29udGFjdCcgOiB0aGlzLm5hdmlnYXRlKCcvZ2UvY29udGFjdCcpOyAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ21haW50ZW5hbmNlJyA6IHRoaXMubmF2aWdhdGUoJy9nZS9tYWludGVuYW5jZScpOyAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3lzdGVtcycgOiB0aGlzLm5hdmlnYXRlKCcvZ2Uvc3lzdGVtcycpOyAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogdGhpcy5uYXZpZ2F0ZSgnL2dlJyk7XHJcbiAgICAgICAgICAgICAgICAgIH0gICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlQ29ubmV4aW9uSW5mbygpe1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oXCJ2YS10b2tlblwiKTtcclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFwidmEtZW1haWxcIik7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oXCJ2YS10b2tlblwiKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcInZhLWVtYWlsXCIpO1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJ2YVwiLFwiZmFsc2VcIilcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcInZhXCIsXCJmYWxzZVwiKVxyXG4gICAgICB9XHJcbiAgICAgIG5hdmlnYXRlKHJvdXRlOiBzdHJpbmcpOnZvaWR7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3JvdXRlXSlcclxuICAgICAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibGF5b3V0LW1lbnVcIiAqbmdJZj1cInRyYW5zbGF0ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1lbnVcIiAoY2xpY2spPVwibWVudU1ldGhvZGUoKVwiPiA8aSBjbGFzcz1cInBpIHBpLWhvbWVcIj48L2k+IHt7dHJhbnNsYXRlLmhvbWV9fTwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1lbnVcIiAoY2xpY2spPVwibWVudU1ldGhvZGUoJ2NvbnRhY3QnKVwiPiA8aSBjbGFzcz1cInBpIHBpLXBob25lXCI+PC9pPiB7e3RyYW5zbGF0ZS5jb250YWN0fX08L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtZW51XCIgKGNsaWNrKT1cIm1lbnVNZXRob2RlKCdzeXN0ZW1zJylcIj4gPGkgY2xhc3M9XCJwaSBwaS1leWVcIj48L2k+IHt7dHJhbnNsYXRlLnN5c3RlbXN9fTwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1lbnVcIiAoY2xpY2spPVwibWVudU1ldGhvZGUoJ21haW50ZW5hbmNlJylcIj4gPGkgY2xhc3M9XCJwaSBwaS1pbmJveFwiPjwvaT4ge3t0cmFuc2xhdGUubWFpbnRlbmFuY2V9fTwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1lbnVcIiAoY2xpY2spPVwibG9nb3V0KClcIj4gPGkgY2xhc3M9XCJwaSBwaS1wb3dlci1vZmZcIj48L2k+IHt7dHJhbnNsYXRlLmxvZ291dH19PC9kaXY+XHJcbjwvZGl2PiAiXX0=
@@ -87,9 +87,9 @@ export class ContactComponent {
87
87
  }
88
88
  }
89
89
  loadForm() {
90
- let name = sessionStorage.getItem('userName');
91
- let email = sessionStorage.getItem('email');
92
- let phone = sessionStorage.getItem('mobilePhoneNumber');
90
+ let name = sessionStorage.getItem('userName') ? sessionStorage.getItem('userName') : localStorage.getItem('userName');
91
+ let email = sessionStorage.getItem('email') ? sessionStorage.getItem('email') : localStorage.getItem('email');
92
+ let phone = sessionStorage.getItem('mobilePhoneNumber') ? sessionStorage.getItem('mobilePhoneNumber') : localStorage.getItem('mobilePhoneNumber');
93
93
  this.form = this.formBuilder.group({
94
94
  name: [
95
95
  name !== 'null' ? name : '',
@@ -157,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
157
157
  }], sendForm: [{
158
158
  type: Output
159
159
  }] } });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hd2YtdGVzdC1saWIvc3JjL2xpYi9zaGFyZWQvY29udGFjdC9jb250YWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F3Zi10ZXN0LWxpYi9zcmMvbGliL3NoYXJlZC9jb250YWN0L2NvbnRhY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBRU4sS0FBSyxFQUNMLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFRM0MsTUFBTSxPQUFPLGdCQUFnQjtJQWdCM0IsWUFDVSxXQUF3QixFQUN4QixjQUE4QixFQUM5QixRQUFrQjtRQUZsQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWxCbkIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDdkIsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFHOUIsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBTTNELG9C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QUFoQixnQkFBZ0IscU9BRmhCLENBQUMsY0FBYyxFQUFDLFFBQVEsQ0FBQywrQ0N2QnRDLHVvVkF3SUE7NEZEL0dhLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDRSxhQUFhLGFBR1osQ0FBQyxjQUFjLEVBQUMsUUFBUSxDQUFDO3NKQUczQixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT3V0cHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBJbnB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBEZXRhaWxlZFBtSm9iIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2RldGFpbGVkUG1Kb2IubW9kZWwnO1xyXG5pbXBvcnQgeyBFdmVudFN0YXR1cyB9IGZyb20gJy4uLy4uL21vZGVscy9ldmVudFN0YXR1cyc7XHJcbmltcG9ydCB7IFBtSm9iIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BtSm9iLm1vZGVsJztcclxuaW1wb3J0IHsgUG1Kb2JTdGF0dXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvcG1Kb2JTdGF0dXMnO1xyXG5pbXBvcnQgeyBSZWFzb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvcmVhc29uLm1vZGVsJztcclxuaW1wb3J0IHsgUmVhc29uQ29kZSB9IGZyb20gJy4uLy4uL21vZGVscy9yZWFzb25Db2RlJztcclxuaW1wb3J0IHsgUmVhc29uQ29udGFjdCB9IGZyb20gJy4uLy4uL21vZGVscy9yZWFzb25Db250YWN0JztcclxuaW1wb3J0IHsgU3lzdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3N5c3RlbSc7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXdmLWNvbnRhY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250YWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb250YWN0LmNvbXBvbmVudC5jc3MnXSxcclxuICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZSxEYXRlUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb250YWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3lzdGVtczogU3lzdGVtW10gPSBbXTtcclxuICBASW5wdXQoKSBzZWxlY3RlZFN5c3RlbXM6IFN5c3RlbVtdID0gW107XHJcbiAgQElucHV0KCkgdHJhbnNsYXRlITogYW55O1xyXG4gIEBJbnB1dCgpIHJlYXNvbnMhOiBSZWFzb25bXTtcclxuICBAT3V0cHV0KCkgc2VuZEZvcm06IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgc2VsZWN0ZWRSZWFzb24hOiBhbnk7XHJcbiAgc2VsZWN0ZWRTeXN0ZW0hOiBTeXN0ZW07XHJcbiAgc2VsZWN0ZWRQbSE6IGFueTtcclxuICBwbUpvYnMhOiBhbnlbXTtcclxuICBzeXN0ZW1Db250YWluUG0gPSB0cnVlO1xyXG5cclxuICBzaG93UG0gPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZVxyXG5cclxuICApIHt9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZWFzb25zID0gdGhpcy5yZWFzb25zLmZpbHRlcihcclxuICAgICAgKHgpID0+IHguY29kZSA9PSBSZWFzb25Db2RlLlNESSB8fCB4LmNvZGUgPT0gUmVhc29uQ29kZS5PVEhcclxuICAgICk7XHJcbiAgICB0aGlzLnNlbGVjdFBNKHRoaXMuc2VsZWN0ZWRTeXN0ZW0pO1xyXG4gICAgdGhpcy5sb2FkRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gY29udmVuaWVuY2UgZ2V0dGVyIGZvciBlYXN5IGFjY2VzcyB0byBmb3JtIGZpZWxkc1xyXG4gIGdldCBmKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9scztcclxuICB9XHJcblxyXG4gIHByZXZlbnRTdHJpbmdLZXlwcmVzcyhldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoXHJcbiAgICAgIGlzTmFOKE51bWJlcihTdHJpbmcuZnJvbUNoYXJDb2RlKGV2ZW50LmNoYXJDb2RlKSkpIHx8XHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUpID09PSAnICdcclxuICAgICkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICBcclxuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZS5zdW1tYXJ5RXJyb3IsIGRldGFpbDogdGhpcy50cmFuc2xhdGUuaW52YWxpZEZvcm0gfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZGV0YWlsZWRQbUpvYiA9IHt9IGFzIERldGFpbGVkUG1Kb2I7XHJcbiAgICBkZXRhaWxlZFBtSm9iLm5hbWUgPSB0aGlzLmZvcm0udmFsdWUubmFtZTtcclxuICAgIGRldGFpbGVkUG1Kb2IucGhvbmUgPSB0aGlzLmZvcm0udmFsdWUucGhvbmU7XHJcbiAgICBkZXRhaWxlZFBtSm9iLmV4dGVudGlvbk9yQ29tbWVudCA9IHRoaXMuZm9ybS52YWx1ZS5leHRlbnRpb25PckNvbW1lbnQ7XHJcbiAgICBkZXRhaWxlZFBtSm9iLmVtYWlsID0gdGhpcy5mb3JtLnZhbHVlLmVtYWlsO1xyXG4gICAgZGV0YWlsZWRQbUpvYi5yZWFzb24gPSB0aGlzLmZvcm0udmFsdWUucmVhc29uLm5hbWU7XHJcbiAgICBkZXRhaWxlZFBtSm9iLmNvbW1lbnQgPSB0aGlzLmZvcm0udmFsdWUubWVzc2FnZTtcclxuICAgIGlmICh0aGlzLmZvcm0udmFsdWUucG1zICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZGV0YWlsZWRQbUpvYi5wbUpvYiA9IHRoaXMuZm9ybS52YWx1ZS5wbXM7XHJcbiAgICB9XHJcbiAgICBkZXRhaWxlZFBtSm9iLnN5c3RlbU5hbWUgPSB0aGlzLnNlbGVjdGVkU3lzdGVtLm5hbWU7XHJcbiAgICBkZXRhaWxlZFBtSm9iLnN5c3RlbUlkID0gdGhpcy5zZWxlY3RlZFN5c3RlbS5zeXN0ZW1JZDtcclxuICAgIGRldGFpbGVkUG1Kb2Iuc2l0ZU5hbWUgPSB0aGlzLnNlbGVjdGVkU3lzdGVtLnNpdGVOYW1lO1xyXG4gICAgZGV0YWlsZWRQbUpvYi5zaXRlQ2l0eSA9IHRoaXMuc2VsZWN0ZWRTeXN0ZW0uc2l0ZUNpdHk7XHJcbiAgICBkZXRhaWxlZFBtSm9iLnNpdGVQb3N0YWxDb2RlID0gdGhpcy5zZWxlY3RlZFN5c3RlbS5zaXRlUG9zdGFsQ29kZTtcclxuICAgIGRldGFpbGVkUG1Kb2IudG9VcGRhdGUgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuZm9ybS52YWx1ZS5wbXMgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBkZXRhaWxlZFBtSm9iLnNlbGVjdGVkRGF0ZSA9IGRldGFpbGVkUG1Kb2IucG1Kb2Iuc3RhcnREYXRlVGltZTtcclxuICAgIH1cclxuICAgIGRldGFpbGVkUG1Kb2IucmVhc29uQ29udGFjdCA9IFJlYXNvbkNvbnRhY3QuQ29udGFjdDtcclxuICAgIGRldGFpbGVkUG1Kb2IuZnV0dXJlU3RhdHVzID0gdGhpcy5zbGVjdHNGdXR1cmVTdGF0dXMoXHJcbiAgICAgIHRoaXMuZm9ybS52YWx1ZS5yZWFzb24uY29kZVxyXG4gICAgKTtcclxuICAgIHRoaXMuc2VuZEZvcm0uZW1pdChkZXRhaWxlZFBtSm9iKTtcclxuICB9XHJcblxyXG4gIHNsZWN0c0Z1dHVyZVN0YXR1cyhzdGF0dXM6IGFueSkge1xyXG4gICAgc3dpdGNoIChzdGF0dXMpIHtcclxuICAgICAgY2FzZSBSZWFzb25Db2RlLk1QTTpcclxuICAgICAgICByZXR1cm4gUG1Kb2JTdGF0dXMuV0FJVElORztcclxuICAgICAgY2FzZSBSZWFzb25Db2RlLlJQTTpcclxuICAgICAgICByZXR1cm4gUG1Kb2JTdGF0dXMuUkVQT1JURUQ7XHJcbiAgICAgIGNhc2UgUmVhc29uQ29kZS5DUE06XHJcbiAgICAgICAgcmV0dXJuIFBtSm9iU3RhdHVzLkNBTkNFTExFRDtcclxuICAgICAgY2FzZSBSZWFzb25Db2RlLlNESTpcclxuICAgICAgICByZXR1cm4gUG1Kb2JTdGF0dXMuREVTSU5TVEFMTEVEO1xyXG4gICAgICBjYXNlIFJlYXNvbkNvZGUuT1RIOlxyXG4gICAgICAgIHJldHVybiBQbUpvYlN0YXR1cy5PVEhFUjtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJ0VycmV1cic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2FkRm9ybSgpIHtcclxuICAgIGxldCBuYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndXNlck5hbWUnKSBhcyBzdHJpbmc7XHJcbiAgICBsZXQgZW1haWwgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdlbWFpbCcpIGFzIHN0cmluZztcclxuICAgIGxldCBwaG9uZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ21vYmlsZVBob25lTnVtYmVyJykgYXMgc3RyaW5nO1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIG5hbWU6IFtcclxuICAgICAgICBuYW1lICE9PSAnbnVsbCcgPyBuYW1lIDogJycsXHJcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDMpXSxcclxuICAgICAgXSxcclxuICAgICAgZW1haWw6IFtcclxuICAgICAgICBlbWFpbCAhPT0gJ251bGwnID8gZW1haWwgOiAnJyxcclxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF0sXHJcbiAgICAgIF0sXHJcbiAgICAgIHBob25lOiBbcGhvbmUgIT09ICdudWxsJyA/IHBob25lIDogJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIGV4dGVudGlvbk9yQ29tbWVudDogWycnXSxcclxuICAgICAgcmVhc29uOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIHN5c3RlbXM6IFtbXSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgcG1zOiBbW10sIHRoaXMuc2hvd1BtID8gW10gOiBbXV0sXHJcbiAgICAgIG1lc3NhZ2U6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDE1KV1dLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RQTShzZWxlY3RlZFN5c3RlbTogYW55KSB7XHJcbiAgICB0aGlzLnN5c3RlbUNvbnRhaW5QbSA9IHRydWU7XHJcbiAgICBpZiAoc2VsZWN0ZWRTeXN0ZW0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRTeXN0ZW0ucG1Kb2JzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuc2hvd1BtID0gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN5c3RlbSA9IHNlbGVjdGVkU3lzdGVtO1xyXG4gICAgICAgIHRoaXMucG1Kb2JzID0gc2VsZWN0ZWRTeXN0ZW0ucG1Kb2JzO1xyXG4gICAgICAgIHRoaXMucG1Kb2JzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgIGlmIChlbGVtZW50LnN0YXJ0RGF0ZVRpbWUpIHtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQuY2FzZVR5cGUgPT0gJ1BsYW5uZWQgTWFpbnRlbmFuY2UnKSB7XHJcbiAgICAgICAgICAgICAgZWxlbWVudC53b2tvcmRlckRldGFpbHMgPSBlbGVtZW50LndvcmtvcmRlck51bWJlciArICcgLSAnICsgIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGVsZW1lbnQuc3RhcnREYXRlVGltZSwgJ2RkIE1NTSB5eXl5JykgKyAnIC0gJyArIHRoaXMudHJhbnNsYXRlLnR5cGVQbGFubmVkO1xyXG4gICAgICAgICAgICB9ZWxzZSBpZihlbGVtZW50LmNhc2VUeXBlID09XCJRQVJBXCIpe1xyXG4gICAgICAgICAgICAgIGVsZW1lbnQud29rb3JkZXJEZXRhaWxzID0gZWxlbWVudC53b3Jrb3JkZXJOdW1iZXIgKyAnIC0gJyArICB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShlbGVtZW50LnN0YXJ0RGF0ZVRpbWUsICdkZCBNTU0geXl5eScpICsgJyAtICcgKyB0aGlzLnRyYW5zbGF0ZS50eXBlUUFSQTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgIGVsZW1lbnQud29rb3JkZXJEZXRhaWxzID0gZWxlbWVudC53b3Jrb3JkZXJOdW1iZXIgKyBcIiAtIFwiKyAgdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZWxlbWVudC5zdGFydERhdGVUaW1lLCAnZGQgTU1NIHl5eXknKTsgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNob3dQbSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cInRyYW5zbGF0ZSAmJiByZWFzb25zIFwiPlxyXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJwdC0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFwcC1zZWN0aW9uLWhlYWRlci1pbWdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBwdC00XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgyPnt7dHJhbnNsYXRlLnRpdGxlfX0gPC9oMj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwicHktNSBiYWNrZ3JvdW5kLWxpZ2h0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBweC1sZy01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWNvbnRhY3QxMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtY29udGFjdDEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKm5nSWY9XCJmb3JtICYmIHN5c3RlbXMgJiYgcmVhc29uc1wiIGNsYXNzPVwiY29udGFjdDEwMC1mb3JtIHZhbGlkYXRlLWZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbnRhY3QxMDAtZm9ybS10aXRsZVwiPnt7dHJhbnNsYXRlLnRpdGxlfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUucGxhY2Vob2xkZXJOYW1lfX08L3NwYW4+IDxzcGFuIGNsYXNzPVwicmVxdWlzXCI+KiA8L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUucGxhY2Vob2xkZXJOYW1lXCIgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYubmFtZS5pbnZhbGlkIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZi5uYW1lLmVycm9yc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXNcIiAqbmdJZj1cImYubmFtZS5lcnJvcnMucmVxdWlyZWRcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZE5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXNcIiAqbmdJZj1cImYubmFtZS5lcnJvcnMubWlubGVuZ3RoXCI+e3t0cmFuc2xhdGUucmVxdWlyZWROYW1lTWlufX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTEyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyRW1haWx9fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJyZXF1aXNcIj4qPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnBsYWNlaG9sZGVyRW1haWxcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYuZW1haWwuaW52YWxpZCB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYuZW1haWwuZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5lbWFpbC5lcnJvcnMucmVxdWlyZWRcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZEVtYWlsfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLmVtYWlsLmVycm9ycy5lbWFpbFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkRW1haWxGb3JtYXR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyUGhvbmV9fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJyZXF1aXNcIj4qPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnBsYWNlaG9sZGVyUGhvbmVcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYucGhvbmUuaW52YWxpZCB9XCIgKGtleXByZXNzKT1cInByZXZlbnRTdHJpbmdLZXlwcmVzcygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYucGhvbmUuZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5waG9uZS5lcnJvcnMucmVxdWlyZWRcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZFBob25lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyZXh0ZW50aW9uT3JDb21tZW50fX08L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUucGxhY2Vob2xkZXJleHRlbnRpb25PckNvbW1lbnRcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwiZXh0ZW50aW9uT3JDb21tZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUuUmVsYXRlZFN5c3RlbXN9fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJyZXF1aXNcIj4qPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIChjbGljayk9XCJzZWxlY3RQTShzZWxlY3RlZFN5c3RlbSlcIiBbb3B0aW9uc109XCJzeXN0ZW1zXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0ZS5zZWxlY3RTeXN0ZW1cIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkU3lzdGVtXCIgW29wdGlvbkxhYmVsXT1cIiduYW1lJ1wiIGZvcm1Db250cm9sTmFtZT1cInN5c3RlbXNcIiAgb3B0aW9uRGlzYWJsZWQ9XCJpbmFjdGl2ZVwiIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZi5zeXN0ZW1zLmludmFsaWQgfVwiPjwvcC1kcm9wZG93bj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYuc3lzdGVtcy5lcnJvcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLnN5c3RlbXMuZXJyb3JzLnJlcXVpcmVkXCI+e3t0cmFuc2xhdGUucmVxdWlyZWRTeXN0ZW19fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCIgKm5nSWY9XCJzaG93UG1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUuUmVsYXRlZFBNc319PC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJwbUpvYnNcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnNlbGVjdFBNXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFBtXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbkxhYmVsXT1cIid3b2tvcmRlckRldGFpbHMnXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicG1zXCIgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbkRpc2FibGVkPVwiaW5hY3RpdmVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYucG1zLmludmFsaWQgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWRyb3Bkb3duPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYucG1zLmVycm9yc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXNcIiAqbmdJZj1cImYucG1zLmVycm9ycy5yZXF1aXJlZFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkUE0gfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTEyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnJlYXNvbn19PC9zcGFuPiA8c3BhbiBjbGFzcz1cInJlcXVpc1wiPio8L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwicmVhc29uc1wiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUuc2VsZWN0UmVhc29uXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFJlYXNvblwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIGZvcm1Db250cm9sTmFtZT1cInJlYXNvblwiICBvcHRpb25EaXNhYmxlZD1cImluYWN0aXZlXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLnJlYXNvbi5pbnZhbGlkIH1cIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnJlYXNvblwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJyZWFzb25cIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYucmVhc29uLmludmFsaWQgfVwiPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZi5yZWFzb24uZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5yZWFzb24uZXJyb3JzLnJlcXVpcmVkXCI+e3t0cmFuc2xhdGUucmVhc29uUmVxdWlyZWR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUucGxhY2Vob2xkZXJNZXNzYWdlfX0gPC9zcGFuPiA8c3BhbiBjbGFzcz1cInJlcXVpc1wiPio8L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIHBJbnB1dFRleHRhcmVhIHN0eWxlPVwiIG1pbi1oZWlnaHQ6MTAwcHg7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnBsYWNlaG9sZGVyTWVzc2FnZSArJy4uLidcIiBmb3JtQ29udHJvbE5hbWU9XCJtZXNzYWdlXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLm1lc3NhZ2UuZXJyb3JzIH1cIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN1Ym1pdHRlZCAmJiBmLm1lc3NhZ2UuZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5tZXNzYWdlLmVycm9ycy5yZXF1aXJlZFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkTWVzc2FnZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5tZXNzYWdlLmVycm9ycy5taW5sZW5ndGhcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZE1lc3NhZ2VNaW59fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1jb250YWN0MTAwLWZvcm0tYnRuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLWNvbnRhY3QxMDAtZm9ybS1idG5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWN0MTAwLWZvcm0tYmdidG5cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4td2FycmFudHkgbXQtM1wiIChjbGljayk9XCJvblN1Ym1pdCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0cmFuc2xhdGUuc2VuZH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbnRhY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aWZyYW1lIHNyYz1cImh0dHBzOi8vbWFwcy5nb29nbGUuY29tL21hcHM/cT0yODMsJTIwUnVlJTIwRGUlMjBsYSUyME1pbmllcmUtQlAzNCUyMCUyMDc4NTMzJTIwQlVDJTIwJUUyJTgwJTkzJTIwQ2VkZXgmYW1wO3Q9JmFtcDt6PTEzJmFtcDtpZT1VVEY4JmFtcDtpd2xvYz0mYW1wO291dHB1dD1lbWJlZFwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjI1MFwiIHN0eWxlPVwiYm9yZGVyOjA7XCIgYWxsb3dmdWxsc2NyZWVuPVwiXCIgbG9hZGluZz1cImxhenlcIj48L2lmcmFtZT5cclxuICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJmcy00IG10LTNcIj4ge3t0cmFuc2xhdGUuaW5mb3JtYXRpb259fTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJtYi00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktZW52ZWxvcGVcIj48L2k+PGxhYmVsPiAmbmJzcDsge3t0cmFuc2xhdGUuZW1haWxUZXh0fX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJcIj57e3RyYW5zbGF0ZS5lbWFpbH19IDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1tYXBcIj48L2k+PGxhYmVsPiAmbmJzcDsge3t0cmFuc2xhdGUuYWRkcmVzc1RleHR9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIlwiPnt7dHJhbnNsYXRlLmFkcmVzc319PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJcIj57e3RyYW5zbGF0ZS50b3dufX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIlwiPnt7dHJhbnNsYXRlLmNvdW50cnl9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuPC9kaXY+XHJcblxyXG48cC10b2FzdCBwb3NpdGlvbj1cInRvcC1jZW50ZXJcIj48L3AtdG9hc3Q+XHJcbiJdfQ==
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hd2YtdGVzdC1saWIvc3JjL2xpYi9zaGFyZWQvY29udGFjdC9jb250YWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F3Zi10ZXN0LWxpYi9zcmMvbGliL3NoYXJlZC9jb250YWN0L2NvbnRhY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBRU4sS0FBSyxFQUNMLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFRM0MsTUFBTSxPQUFPLGdCQUFnQjtJQWdCM0IsWUFDVSxXQUF3QixFQUN4QixjQUE4QixFQUM5QixRQUFrQjtRQUZsQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWxCbkIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDdkIsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFHOUIsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBTTNELG9C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RyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzt5QkFDOUo7NkJBQUk7NEJBQ0YsT0FBTyxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO3lCQUM1SDtxQkFDRjtnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQzthQUNwQjtTQUNGO0lBQ0gsQ0FBQzs7OEdBOUlVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLHFPQUZoQixDQUFDLGNBQWMsRUFBQyxRQUFRLENBQUMsK0NDdkJ0Qyx1b1ZBd0lBOzRGRC9HYSxnQkFBZ0I7a0JBTjVCLFNBQVM7K0JBQ0UsYUFBYSxhQUdaLENBQUMsY0FBYyxFQUFDLFFBQVEsQ0FBQztzSkFHM0IsT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE91dHB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgSW5wdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgRGV0YWlsZWRQbUpvYiB9IGZyb20gJy4uLy4uL21vZGVscy9kZXRhaWxlZFBtSm9iLm1vZGVsJztcclxuaW1wb3J0IHsgRXZlbnRTdGF0dXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXZlbnRTdGF0dXMnO1xyXG5pbXBvcnQgeyBQbUpvYiB9IGZyb20gJy4uLy4uL21vZGVscy9wbUpvYi5tb2RlbCc7XHJcbmltcG9ydCB7IFBtSm9iU3RhdHVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BtSm9iU3RhdHVzJztcclxuaW1wb3J0IHsgUmVhc29uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JlYXNvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFJlYXNvbkNvZGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvcmVhc29uQ29kZSc7XHJcbmltcG9ydCB7IFJlYXNvbkNvbnRhY3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvcmVhc29uQ29udGFjdCc7XHJcbmltcG9ydCB7IFN5c3RlbSB9IGZyb20gJy4uLy4uL21vZGVscy9zeXN0ZW0nO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F3Zi1jb250YWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29udGFjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29udGFjdC5jb21wb25lbnQuY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2UsRGF0ZVBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udGFjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHN5c3RlbXM6IFN5c3RlbVtdID0gW107XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRTeXN0ZW1zOiBTeXN0ZW1bXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHRyYW5zbGF0ZSE6IGFueTtcclxuICBASW5wdXQoKSByZWFzb25zITogUmVhc29uW107XHJcbiAgQE91dHB1dCgpIHNlbmRGb3JtOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBmb3JtITogRm9ybUdyb3VwO1xyXG4gIHNlbGVjdGVkUmVhc29uITogYW55O1xyXG4gIHNlbGVjdGVkU3lzdGVtITogU3lzdGVtO1xyXG4gIHNlbGVjdGVkUG0hOiBhbnk7XHJcbiAgcG1Kb2JzITogYW55W107XHJcbiAgc3lzdGVtQ29udGFpblBtID0gdHJ1ZTtcclxuXHJcbiAgc2hvd1BtID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGVcclxuXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMucmVhc29ucyA9IHRoaXMucmVhc29ucy5maWx0ZXIoXHJcbiAgICAgICh4KSA9PiB4LmNvZGUgPT0gUmVhc29uQ29kZS5TREkgfHwgeC5jb2RlID09IFJlYXNvbkNvZGUuT1RIXHJcbiAgICApO1xyXG4gICAgdGhpcy5zZWxlY3RQTSh0aGlzLnNlbGVjdGVkU3lzdGVtKTtcclxuICAgIHRoaXMubG9hZEZvcm0oKTtcclxuICB9XHJcblxyXG4gIC8vIGNvbnZlbmllbmNlIGdldHRlciBmb3IgZWFzeSBhY2Nlc3MgdG8gZm9ybSBmaWVsZHNcclxuICBnZXQgZigpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHM7XHJcbiAgfVxyXG5cclxuICBwcmV2ZW50U3RyaW5nS2V5cHJlc3MoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICBpc05hTihOdW1iZXIoU3RyaW5nLmZyb21DaGFyQ29kZShldmVudC5jaGFyQ29kZSkpKSB8fFxyXG4gICAgICBTdHJpbmcuZnJvbUNoYXJDb2RlKGV2ZW50LmNoYXJDb2RlKSA9PT0gJyAnXHJcbiAgICApIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgXHJcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogdGhpcy50cmFuc2xhdGUuc3VtbWFyeUVycm9yLCBkZXRhaWw6IHRoaXMudHJhbnNsYXRlLmludmFsaWRGb3JtIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGRldGFpbGVkUG1Kb2IgPSB7fSBhcyBEZXRhaWxlZFBtSm9iO1xyXG4gICAgZGV0YWlsZWRQbUpvYi5uYW1lID0gdGhpcy5mb3JtLnZhbHVlLm5hbWU7XHJcbiAgICBkZXRhaWxlZFBtSm9iLnBob25lID0gdGhpcy5mb3JtLnZhbHVlLnBob25lO1xyXG4gICAgZGV0YWlsZWRQbUpvYi5leHRlbnRpb25PckNvbW1lbnQgPSB0aGlzLmZvcm0udmFsdWUuZXh0ZW50aW9uT3JDb21tZW50O1xyXG4gICAgZGV0YWlsZWRQbUpvYi5lbWFpbCA9IHRoaXMuZm9ybS52YWx1ZS5lbWFpbDtcclxuICAgIGRldGFpbGVkUG1Kb2IucmVhc29uID0gdGhpcy5mb3JtLnZhbHVlLnJlYXNvbi5uYW1lO1xyXG4gICAgZGV0YWlsZWRQbUpvYi5jb21tZW50ID0gdGhpcy5mb3JtLnZhbHVlLm1lc3NhZ2U7XHJcbiAgICBpZiAodGhpcy5mb3JtLnZhbHVlLnBtcyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGRldGFpbGVkUG1Kb2IucG1Kb2IgPSB0aGlzLmZvcm0udmFsdWUucG1zO1xyXG4gICAgfVxyXG4gICAgZGV0YWlsZWRQbUpvYi5zeXN0ZW1OYW1lID0gdGhpcy5zZWxlY3RlZFN5c3RlbS5uYW1lO1xyXG4gICAgZGV0YWlsZWRQbUpvYi5zeXN0ZW1JZCA9IHRoaXMuc2VsZWN0ZWRTeXN0ZW0uc3lzdGVtSWQ7XHJcbiAgICBkZXRhaWxlZFBtSm9iLnNpdGVOYW1lID0gdGhpcy5zZWxlY3RlZFN5c3RlbS5zaXRlTmFtZTtcclxuICAgIGRldGFpbGVkUG1Kb2Iuc2l0ZUNpdHkgPSB0aGlzLnNlbGVjdGVkU3lzdGVtLnNpdGVDaXR5O1xyXG4gICAgZGV0YWlsZWRQbUpvYi5zaXRlUG9zdGFsQ29kZSA9IHRoaXMuc2VsZWN0ZWRTeXN0ZW0uc2l0ZVBvc3RhbENvZGU7XHJcbiAgICBkZXRhaWxlZFBtSm9iLnRvVXBkYXRlID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmZvcm0udmFsdWUucG1zICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZGV0YWlsZWRQbUpvYi5zZWxlY3RlZERhdGUgPSBkZXRhaWxlZFBtSm9iLnBtSm9iLnN0YXJ0RGF0ZVRpbWU7XHJcbiAgICB9XHJcbiAgICBkZXRhaWxlZFBtSm9iLnJlYXNvbkNvbnRhY3QgPSBSZWFzb25Db250YWN0LkNvbnRhY3Q7XHJcbiAgICBkZXRhaWxlZFBtSm9iLmZ1dHVyZVN0YXR1cyA9IHRoaXMuc2xlY3RzRnV0dXJlU3RhdHVzKFxyXG4gICAgICB0aGlzLmZvcm0udmFsdWUucmVhc29uLmNvZGVcclxuICAgICk7XHJcbiAgICB0aGlzLnNlbmRGb3JtLmVtaXQoZGV0YWlsZWRQbUpvYik7XHJcbiAgfVxyXG5cclxuICBzbGVjdHNGdXR1cmVTdGF0dXMoc3RhdHVzOiBhbnkpIHtcclxuICAgIHN3aXRjaCAoc3RhdHVzKSB7XHJcbiAgICAgIGNhc2UgUmVhc29uQ29kZS5NUE06XHJcbiAgICAgICAgcmV0dXJuIFBtSm9iU3RhdHVzLldBSVRJTkc7XHJcbiAgICAgIGNhc2UgUmVhc29uQ29kZS5SUE06XHJcbiAgICAgICAgcmV0dXJuIFBtSm9iU3RhdHVzLlJFUE9SVEVEO1xyXG4gICAgICBjYXNlIFJlYXNvbkNvZGUuQ1BNOlxyXG4gICAgICAgIHJldHVybiBQbUpvYlN0YXR1cy5DQU5DRUxMRUQ7XHJcbiAgICAgIGNhc2UgUmVhc29uQ29kZS5TREk6XHJcbiAgICAgICAgcmV0dXJuIFBtSm9iU3RhdHVzLkRFU0lOU1RBTExFRDtcclxuICAgICAgY2FzZSBSZWFzb25Db2RlLk9USDpcclxuICAgICAgICByZXR1cm4gUG1Kb2JTdGF0dXMuT1RIRVI7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICdFcnJldXInO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9hZEZvcm0oKSB7XHJcbiAgICBsZXQgbmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3VzZXJOYW1lJykgPyAgc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndXNlck5hbWUnKSAgOiAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXJOYW1lJykgO1xyXG4gICAgbGV0IGVtYWlsID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZW1haWwnKSA/IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2VtYWlsJykgOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZW1haWwnKTtcclxuICAgIGxldCBwaG9uZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ21vYmlsZVBob25lTnVtYmVyJykgPyBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdtb2JpbGVQaG9uZU51bWJlcicpICA6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtb2JpbGVQaG9uZU51bWJlcicpOyBcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICBuYW1lOiBbXHJcbiAgICAgICAgbmFtZSAhPT0gJ251bGwnID8gbmFtZSA6ICcnLFxyXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgzKV0sXHJcbiAgICAgIF0sXHJcbiAgICAgIGVtYWlsOiBbXHJcbiAgICAgICAgZW1haWwgIT09ICdudWxsJyA/IGVtYWlsIDogJycsXHJcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdLFxyXG4gICAgICBdLFxyXG4gICAgICBwaG9uZTogW3Bob25lICE9PSAnbnVsbCcgPyBwaG9uZSA6ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBleHRlbnRpb25PckNvbW1lbnQ6IFsnJ10sXHJcbiAgICAgIHJlYXNvbjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBzeXN0ZW1zOiBbW10sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIHBtczogW1tdLCB0aGlzLnNob3dQbSA/IFtdIDogW11dLFxyXG4gICAgICBtZXNzYWdlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgxNSldXSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0UE0oc2VsZWN0ZWRTeXN0ZW06IGFueSkge1xyXG4gICAgdGhpcy5zeXN0ZW1Db250YWluUG0gPSB0cnVlO1xyXG4gICAgaWYgKHNlbGVjdGVkU3lzdGVtID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHNlbGVjdGVkU3lzdGVtLnBtSm9icy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLnNob3dQbSA9IGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTeXN0ZW0gPSBzZWxlY3RlZFN5c3RlbTtcclxuICAgICAgICB0aGlzLnBtSm9icyA9IHNlbGVjdGVkU3lzdGVtLnBtSm9icztcclxuICAgICAgICB0aGlzLnBtSm9icy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5zdGFydERhdGVUaW1lKSB7XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50LmNhc2VUeXBlID09ICdQbGFubmVkIE1haW50ZW5hbmNlJykge1xyXG4gICAgICAgICAgICAgIGVsZW1lbnQud29rb3JkZXJEZXRhaWxzID0gZWxlbWVudC53b3Jrb3JkZXJOdW1iZXIgKyAnIC0gJyArICB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShlbGVtZW50LnN0YXJ0RGF0ZVRpbWUsICdkZCBNTU0geXl5eScpICsgJyAtICcgKyB0aGlzLnRyYW5zbGF0ZS50eXBlUGxhbm5lZDtcclxuICAgICAgICAgICAgfWVsc2UgaWYoZWxlbWVudC5jYXNlVHlwZSA9PVwiUUFSQVwiKXtcclxuICAgICAgICAgICAgICBlbGVtZW50Lndva29yZGVyRGV0YWlscyA9IGVsZW1lbnQud29ya29yZGVyTnVtYmVyICsgJyAtICcgKyAgdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZWxlbWVudC5zdGFydERhdGVUaW1lLCAnZGQgTU1NIHl5eXknKSArICcgLSAnICsgdGhpcy50cmFuc2xhdGUudHlwZVFBUkE7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICBlbGVtZW50Lndva29yZGVyRGV0YWlscyA9IGVsZW1lbnQud29ya29yZGVyTnVtYmVyICsgXCIgLSBcIisgIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGVsZW1lbnQuc3RhcnREYXRlVGltZSwgJ2RkIE1NTSB5eXl5Jyk7ICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5zaG93UG0gPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJ0cmFuc2xhdGUgJiYgcmVhc29ucyBcIj5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwicHQtMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcHAtc2VjdGlvbi1oZWFkZXItaW1nXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgcHQtNFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMj57e3RyYW5zbGF0ZS50aXRsZX19IDwvaDI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgICA8c2VjdGlvbiBjbGFzcz1cInB5LTUgYmFja2dyb3VuZC1saWdodFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgcHgtbGctNVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1jb250YWN0MTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLWNvbnRhY3QxMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiICpuZ0lmPVwiZm9ybSAmJiBzeXN0ZW1zICYmIHJlYXNvbnNcIiBjbGFzcz1cImNvbnRhY3QxMDAtZm9ybSB2YWxpZGF0ZS1mb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb250YWN0MTAwLWZvcm0tdGl0bGVcIj57e3RyYW5zbGF0ZS50aXRsZX19IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTEyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyTmFtZX19PC9zcGFuPiA8c3BhbiBjbGFzcz1cInJlcXVpc1wiPiogPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnBsYWNlaG9sZGVyTmFtZVwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLm5hbWUuaW52YWxpZCB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYubmFtZS5lcnJvcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLm5hbWUuZXJyb3JzLnJlcXVpcmVkXCI+e3t0cmFuc2xhdGUucmVxdWlyZWROYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLm5hbWUuZXJyb3JzLm1pbmxlbmd0aFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkTmFtZU1pbn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZ3JpZCBwLWZsdWlkIHAtbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1jb2wtMTIgcC1tZC0xMiBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0cmVcIj57e3RyYW5zbGF0ZS5wbGFjZWhvbGRlckVtYWlsfX08L3NwYW4+IDxzcGFuIGNsYXNzPVwicmVxdWlzXCI+Kjwvc3Bhbj46XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0ZS5wbGFjZWhvbGRlckVtYWlsXCIgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLmVtYWlsLmludmFsaWQgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN1Ym1pdHRlZCAmJiBmLmVtYWlsLmVycm9yc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXNcIiAqbmdJZj1cImYuZW1haWwuZXJyb3JzLnJlcXVpcmVkXCI+e3t0cmFuc2xhdGUucmVxdWlyZWRFbWFpbH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5lbWFpbC5lcnJvcnMuZW1haWxcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZEVtYWlsRm9ybWF0fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0cmVcIj57e3RyYW5zbGF0ZS5wbGFjZWhvbGRlclBob25lfX08L3NwYW4+IDxzcGFuIGNsYXNzPVwicmVxdWlzXCI+Kjwvc3Bhbj46XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0ZS5wbGFjZWhvbGRlclBob25lXCIgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IGZvcm1Db250cm9sTmFtZT1cInBob25lXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLnBob25lLmludmFsaWQgfVwiIChrZXlwcmVzcyk9XCJwcmV2ZW50U3RyaW5nS2V5cHJlc3MoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN1Ym1pdHRlZCAmJiBmLnBob25lLmVycm9yc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXNcIiAqbmdJZj1cImYucGhvbmUuZXJyb3JzLnJlcXVpcmVkXCI+e3t0cmFuc2xhdGUucmVxdWlyZWRQaG9uZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0cmVcIj57e3RyYW5zbGF0ZS5wbGFjZWhvbGRlcmV4dGVudGlvbk9yQ29tbWVudH19PC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnBsYWNlaG9sZGVyZXh0ZW50aW9uT3JDb21tZW50XCIgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IGZvcm1Db250cm9sTmFtZT1cImV4dGVudGlvbk9yQ29tbWVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTEyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLlJlbGF0ZWRTeXN0ZW1zfX08L3NwYW4+IDxzcGFuIGNsYXNzPVwicmVxdWlzXCI+Kjwvc3Bhbj46XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1kcm9wZG93biAoY2xpY2spPVwic2VsZWN0UE0oc2VsZWN0ZWRTeXN0ZW0pXCIgW29wdGlvbnNdPVwic3lzdGVtc1wiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUuc2VsZWN0U3lzdGVtXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFN5c3RlbVwiIFtvcHRpb25MYWJlbF09XCInbmFtZSdcIiBmb3JtQ29udHJvbE5hbWU9XCJzeXN0ZW1zXCIgIG9wdGlvbkRpc2FibGVkPVwiaW5hY3RpdmVcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYuc3lzdGVtcy5pbnZhbGlkIH1cIj48L3AtZHJvcGRvd24+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN1Ym1pdHRlZCAmJiBmLnN5c3RlbXMuZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5zeXN0ZW1zLmVycm9ycy5yZXF1aXJlZFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkU3lzdGVtfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZ3JpZCBwLWZsdWlkIHAtbXQtMlwiICpuZ0lmPVwic2hvd1BtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTEyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLlJlbGF0ZWRQTXN9fTwvc3Bhbj46XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1kcm9wZG93biAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwicG1Kb2JzXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0ZS5zZWxlY3RQTVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRQbVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcHRpb25MYWJlbF09XCInd29rb3JkZXJEZXRhaWxzJ1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBtc1wiICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25EaXNhYmxlZD1cImluYWN0aXZlXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLnBtcy5pbnZhbGlkIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1kcm9wZG93bj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cInN1Ym1pdHRlZCAmJiBmLnBtcy5lcnJvcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLnBtcy5lcnJvcnMucmVxdWlyZWRcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZFBNIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4tLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZ3JpZCBwLWZsdWlkIHAtbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1jb2wtMTIgcC1tZC0xMiBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0cmVcIj57e3RyYW5zbGF0ZS5yZWFzb259fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJyZXF1aXNcIj4qPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cInJlYXNvbnNcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnNlbGVjdFJlYXNvblwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRSZWFzb25cIiBvcHRpb25MYWJlbD1cIm5hbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJyZWFzb25cIiAgb3B0aW9uRGlzYWJsZWQ9XCJpbmFjdGl2ZVwiIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZi5yZWFzb24uaW52YWxpZCB9XCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8aW5wdXQgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0ZS5yZWFzb25cIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwicmVhc29uXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLnJlYXNvbi5pbnZhbGlkIH1cIj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYucmVhc29uLmVycm9yc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXNcIiAqbmdJZj1cImYucmVhc29uLmVycm9ycy5yZXF1aXJlZFwiPnt7dHJhbnNsYXRlLnJlYXNvblJlcXVpcmVkfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTEyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyTWVzc2FnZX19IDwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJyZXF1aXNcIj4qPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBwSW5wdXRUZXh0YXJlYSBzdHlsZT1cIiBtaW4taGVpZ2h0OjEwMHB4O2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7XCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0ZS5wbGFjZWhvbGRlck1lc3NhZ2UgKycuLi4nXCIgZm9ybUNvbnRyb2xOYW1lPVwibWVzc2FnZVwiIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZi5tZXNzYWdlLmVycm9ycyB9XCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZi5tZXNzYWdlLmVycm9yc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXNcIiAqbmdJZj1cImYubWVzc2FnZS5lcnJvcnMucmVxdWlyZWRcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZE1lc3NhZ2V9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXNcIiAqbmdJZj1cImYubWVzc2FnZS5lcnJvcnMubWlubGVuZ3RoXCI+e3t0cmFuc2xhdGUucmVxdWlyZWRNZXNzYWdlTWlufX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItY29udGFjdDEwMC1mb3JtLWJ0blwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcC1jb250YWN0MTAwLWZvcm0tYnRuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFjdDEwMC1mb3JtLWJnYnRuXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLXdhcnJhbnR5IG10LTNcIiAoY2xpY2spPVwib25TdWJtaXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7dHJhbnNsYXRlLnNlbmR9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb250YWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlmcmFtZSBzcmM9XCJodHRwczovL21hcHMuZ29vZ2xlLmNvbS9tYXBzP3E9MjgzLCUyMFJ1ZSUyMERlJTIwbGElMjBNaW5pZXJlLUJQMzQlMjAlMjA3ODUzMyUyMEJVQyUyMCVFMiU4MCU5MyUyMENlZGV4JmFtcDt0PSZhbXA7ej0xMyZhbXA7aWU9VVRGOCZhbXA7aXdsb2M9JmFtcDtvdXRwdXQ9ZW1iZWRcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIyNTBcIiBzdHlsZT1cImJvcmRlcjowO1wiIGFsbG93ZnVsbHNjcmVlbj1cIlwiIGxvYWRpbmc9XCJsYXp5XCI+PC9pZnJhbWU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwiZnMtNCBtdC0zXCI+IHt7dHJhbnNsYXRlLmluZm9ybWF0aW9ufX08L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwibWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLWVudmVsb3BlXCI+PC9pPjxsYWJlbD4gJm5ic3A7IHt7dHJhbnNsYXRlLmVtYWlsVGV4dH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiXCI+e3t0cmFuc2xhdGUuZW1haWx9fSA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIG10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktbWFwXCI+PC9pPjxsYWJlbD4gJm5ic3A7IHt7dHJhbnNsYXRlLmFkZHJlc3NUZXh0fX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJcIj57e3RyYW5zbGF0ZS5hZHJlc3N9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiXCI+e3t0cmFuc2xhdGUudG93bn19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJcIj57e3RyYW5zbGF0ZS5jb3VudHJ5fX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbjwvZGl2PlxyXG5cclxuPHAtdG9hc3QgcG9zaXRpb249XCJ0b3AtY2VudGVyXCI+PC9wLXRvYXN0PlxyXG4iXX0=
@@ -71,9 +71,9 @@ export class ContactSupportComponent {
71
71
  this.minDate.setFullYear(prevYear);
72
72
  }
73
73
  loadForm() {
74
- let name = sessionStorage.getItem('userName');
75
- let email = sessionStorage.getItem('email');
76
- let phone = sessionStorage.getItem('mobilePhoneNumber');
74
+ let name = sessionStorage.getItem('userName') ? sessionStorage.getItem('userName') : localStorage.getItem('userName');
75
+ let email = sessionStorage.getItem('email') ? sessionStorage.getItem('email') : localStorage.getItem('email');
76
+ let phone = sessionStorage.getItem('mobilePhoneNumber') ? sessionStorage.getItem('mobilePhoneNumber') : localStorage.getItem('mobilePhoneNumber');
77
77
  this.form = this.formBuilder.group({
78
78
  name: [name !== 'null' ? name : '', [Validators.required, Validators.minLength(3)]],
79
79
  email: [email !== 'null' ? email : '', [Validators.required, Validators.email]],
@@ -169,4 +169,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
169
169
  }], closeContactSupport: [{
170
170
  type: Output
171
171
  }] } });
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1zdXBwb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F3Zi10ZXN0LWxpYi9zcmMvbGliL3NoYXJlZC9jb250YWN0LXN1cHBvcnQvY29udGFjdC1zdXBwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F3Zi10ZXN0LWxpYi9zcmMvbGliL3NoYXJlZC9jb250YWN0LXN1cHBvcnQvY29udGFjdC1zdXBwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7OztBQVMzRCxNQUFNLE9BQU8sdUJBQXVCO0lBcUJoQyxZQUFvQixjQUE4QixFQUFVLFdBQXdCO1FBQWhFLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBYjFFLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN6QyxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakQsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUc1RCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHbEIsa0JBQWEsR0FBRyxLQUFLLENB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QkFBdUI7eUdBQXZCLHVCQUF1QixpWUFIckIsQ0FBQyxjQUFjLENBQUMsK0NDZC9CLHNwVkFpSXlDOzRGRGhINUIsdUJBQXVCO2tCQVBuQyxTQUFTOytCQUNJLHFCQUFxQixhQUdwQixDQUFDLGNBQWMsQ0FBQzsrSEFJbEIscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IERldGFpbGVkUG1Kb2IgfSBmcm9tICcuLi8uLi9tb2RlbHMvZGV0YWlsZWRQbUpvYi5tb2RlbCc7XHJcbmltcG9ydCB7IFBtSm9iU3RhdHVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BtSm9iU3RhdHVzJztcclxuaW1wb3J0IHsgUmVhc29uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JlYXNvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFJlYXNvbkNvZGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvcmVhc29uQ29kZSc7XHJcbmltcG9ydCB7IFJlYXNvbkNvbnRhY3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvcmVhc29uQ29udGFjdCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXBwLWNvbnRhY3Qtc3VwcG9ydCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29udGFjdC1zdXBwb3J0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NvbnRhY3Qtc3VwcG9ydC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2VdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQ29udGFjdFN1cHBvcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgICBASW5wdXQoKSBkaXNwbGF5Y29udGFjdFN1cHBvcnQhOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZ2xvYmFsdHJhbnNsYXRlITogYW55O1xyXG4gICAgQElucHV0KCkgdHJhbnNsYXRlITogYW55O1xyXG4gICAgQElucHV0KCkgc2hvd0RhdGUhOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZGV0YWlsZWRQbUpvYiE6IERldGFpbGVkUG1Kb2I7XHJcbiAgICBASW5wdXQoKSByZWFzb25Db250YWN0ITogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgcmVhc29ucyE6IFJlYXNvbltdO1xyXG4gICAgQE91dHB1dCgpIHNlbmREZXRhaWxlZFBtID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgc2VuZEZvcm06IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQE91dHB1dCgpIGNsb3NlQ29udGFjdFN1cHBvcnQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgICBmb3JtITogRm9ybUdyb3VwO1xyXG4gICAgZGF0ZXMhOiBEYXRlW107XHJcbiAgICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICBzdWJtaXR0ZWQgPSBmYWxzZTtcclxuICAgIG1pbkRhdGUhOiBEYXRlO1xyXG4gICAgbWF4RGF0ZSE6IERhdGU7XHJcbiAgICBkaXNwbGF5TnVtYmVyID0gZmFsc2U7XHJcblxyXG4gICAgc2VsZWN0ZWRSZWFzb24hOiBSZWFzb247XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7IH1cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxvYWREYXRhcygpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubG9hZERhdGFzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZERhdGFzKCkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyUmVhc29ucygpO1xyXG4gICAgICAgIHRoaXMuc2V0RGF0ZVJ1bGVzKCk7XHJcbiAgICAgICAgdGhpcy5sb2FkRm9ybSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZpbHRlclJlYXNvbnMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmVhc29ucyAmJiB0aGlzLnJlYXNvbkNvbnRhY3QgPT09IFJlYXNvbkNvbnRhY3QuTW9yZURhdGVzRm9ybVBtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSZWFzb24gPSB0aGlzLnJlYXNvbnNbMF07XHJcbiAgICAgICAgICAgIHRoaXMucmVhc29ucyA9IHRoaXMucmVhc29ucy5maWx0ZXIoeCA9PiB4LmNvZGUgPT09IFJlYXNvbkNvZGUuTVBNKVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5yZWFzb25zICYmIHRoaXMucmVhc29uQ29udGFjdCA9PT0gUmVhc29uQ29udGFjdC5DYW5jZWxGb3JtUG0pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJlYXNvbiA9IHRoaXMucmVhc29uc1syXTtcclxuICAgICAgICAgICAgdGhpcy5yZWFzb25zID0gdGhpcy5yZWFzb25zLmZpbHRlcih4ID0+IHguY29kZSA9PT0gUmVhc29uQ29kZS5DUE0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmRldGFpbGVkUG1Kb2Iuc3RhdHVzID09PSBQbUpvYlN0YXR1cy5ET05FKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVhc29ucyA9IHRoaXMucmVhc29ucy5maWx0ZXIoeCA9PiB4LmNvZGUgPT09IFJlYXNvbkNvZGUuT1RIKVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5kZXRhaWxlZFBtSm9iLnN0YXR1cyA9PT0gUG1Kb2JTdGF0dXMuVkFMSURBVEVEKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVhc29ucyA9IHRoaXMucmVhc29ucy5maWx0ZXIoeCA9PiB4LmNvZGUgIT09IFJlYXNvbkNvZGUuTVBNKVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgY2FuY2VsQ29udGFjdFN1cHBvcnQoKSB7XHJcblxyXG4gICAgICAgIHRoaXMuY2xvc2VDb250YWN0U3VwcG9ydC5lbWl0KHRydWUpO1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6IHRoaXMuZ2xvYmFsdHJhbnNsYXRlLnN1bW1hcnlSZWplY3QsIGRldGFpbDogdGhpcy5nbG9iYWx0cmFuc2xhdGUuZGV0YWlsUmVqZWN0IH0pO1xyXG5cclxuXHJcblxyXG4gICAgfVxyXG4gICAgZ2V0IGYoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9scztcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHNldERhdGVSdWxlcygpIHtcclxuICAgICAgICBsZXQgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIGxldCBtb250aCA9IHRvZGF5LmdldE1vbnRoKCk7XHJcbiAgICAgICAgbGV0IHllYXIgPSB0b2RheS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICAgIGxldCBwcmV2TW9udGggPSAobW9udGggPT09IDApID8gMTEgOiBtb250aCAtIDE7XHJcbiAgICAgICAgbGV0IHByZXZZZWFyID0gKHByZXZNb250aCA9PT0gMTEpID8geWVhciAtIDEgOiB5ZWFyO1xyXG4gICAgICAgIHRoaXMubWluRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgdGhpcy5taW5EYXRlLnNldE1vbnRoKG1vbnRoKTtcclxuICAgICAgICB0aGlzLm1pbkRhdGUuc2V0RnVsbFllYXIocHJldlllYXIpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBsb2FkRm9ybSgpIHtcclxuICAgICAgICBsZXQgbmFtZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3VzZXJOYW1lJykgYXMgc3RyaW5nO1xyXG4gICAgICAgIGxldCBlbWFpbCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2VtYWlsJykgYXMgc3RyaW5nO1xyXG4gICAgICAgIGxldCBwaG9uZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ21vYmlsZVBob25lTnVtYmVyJykgYXMgc3RyaW5nO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgbmFtZTogW25hbWUgIT09ICdudWxsJyA/IG5hbWUgOiAnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDMpXV0sXHJcbiAgICAgICAgICAgIGVtYWlsOiBbZW1haWwgIT09ICdudWxsJyA/IGVtYWlsIDogJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXV0sXHJcbiAgICAgICAgICAgIHBob25lOiBbdGhpcy5jaGVja1Bob25lKHBob25lKSA/IHBob25lIDogJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgICAgIGV4dGVudGlvbk9yQ29tbWVudDogWycnXSxcclxuICAgICAgICAgICAgcmVhc29uOiBbeyB2YWx1ZTogJycgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgICAgICAgc3lzdGVtOiBbeyB2YWx1ZTogdGhpcy5kZXRhaWxlZFBtSm9iLnN5c3RlbU5hbWUgKyAnICcgKyB0aGlzLmRldGFpbGVkUG1Kb2Iuc3lzdGVtSWQsIGRpc2FibGVkOiB0cnVlIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgICAgIHdvcmtPcmRlcjogW3sgdmFsdWU6IHRoaXMuZGV0YWlsZWRQbUpvYi5wbUpvYi53b3Jrb3JkZXJOdW1iZXIsIGRpc2FibGVkOiB0cnVlIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFsnJywgKHRoaXMucmVhc29uQ29udGFjdCA9PT0gUmVhc29uQ29udGFjdC5Nb3JlRGF0ZXNGb3JtUG0pID8gW10gOiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMTUpXV0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBcclxuY2hlY2tQaG9uZShwaG9uZSA6IGFueSk6IGJvb2xlYW57XHJcbiAgICBpZiAocGhvbmUgPT0gbnVsbCB8fCBwaG9uZSA9PSAnbnVsbCcgfHwgcGhvbmUgPT0gdW5kZWZpbmVkIHx8IHBob25lLmxlbmd0aCAgPT0gMCkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWVcclxuICAgIH1cclxufVxyXG4gICBcclxuY29udGFjdGVkKCkge1xyXG4gICAgICAgIHRoaXMuc2VuZENvbnRhY3RNZUVtYWlsTWV0aG9kZSgpO1xyXG5cclxuICAgIH1cclxuICAgIGNvbnRhY3QoKSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5TnVtYmVyID0gdHJ1ZTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VOdW1iZXIoKSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5TnVtYmVyID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgc2VuZENvbnRhY3RNZUVtYWlsTWV0aG9kZSgpIHtcclxuICAgICAgIFxyXG4gICAgICAgIGlmKHRoaXMuZm9ybS52YWx1ZS5yZWFzb24ubmFtZSA9PSBcIkRlbWFuZGVyIGQnYXV0cmVzIGRhdGVzIGRlIFBNXCIpe1xyXG4gICAgICAgICAgICB0aGlzLnJlYXNvbkNvbnRhY3QgPVJlYXNvbkNvbnRhY3QuTW9yZURhdGVzRm9ybVBtO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRldGFpbGVkUG1Kb2IubmFtZSA9IHRoaXMuZm9ybS52YWx1ZS5uYW1lO1xyXG4gICAgICAgIHRoaXMuZGV0YWlsZWRQbUpvYi5waG9uZSA9IHRoaXMuZm9ybS52YWx1ZS5waG9uZTtcclxuICAgICAgICB0aGlzLmRldGFpbGVkUG1Kb2IuZXh0ZW50aW9uT3JDb21tZW50ID0gdGhpcy5mb3JtLnZhbHVlLmV4dGVudGlvbk9yQ29tbWVudDtcclxuICAgICAgICB0aGlzLmRldGFpbGVkUG1Kb2IuZW1haWwgPSB0aGlzLmZvcm0udmFsdWUuZW1haWw7XHJcbiAgICAgIC8vICB0aGlzLmRldGFpbGVkUG1Kb2IucmVhc29uID0gKHRoaXMucmVhc29uQ29udGFjdCA9PT0gUmVhc29uQ29udGFjdC5Nb3JlRGF0ZXNGb3JtUG0pID8gdGhpcy5yZWFzb25zWzBdLm5hbWUgOiB0aGlzLmZvcm0udmFsdWUucmVhc29uLm5hbWU7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxlZFBtSm9iLnJlYXNvbiA9IHRoaXMuZm9ybS52YWx1ZS5yZWFzb24ubmFtZTtcclxuICAgICAgICB0aGlzLmRldGFpbGVkUG1Kb2IuZXh0ZW50aW9uT3JDb21tZW50ID0gdGhpcy5mb3JtLnZhbHVlLmV4dGVudGlvbk9yQ29tbWVudDtcclxuICAgICAgICB0aGlzLmRldGFpbGVkUG1Kb2IuY29tbWVudCA9IHRoaXMuZm9ybS52YWx1ZS5tZXNzYWdlO1xyXG4gICAgICAgIHRoaXMuZGV0YWlsZWRQbUpvYi5yZWFzb25Db250YWN0ID0gdGhpcy5yZWFzb25Db250YWN0O1xyXG4gICAgICAgIHRoaXMuZGV0YWlsZWRQbUpvYi5mdXR1cmVTdGF0dXMgPSB0aGlzLnNsZWN0c0Z1dHVyZVN0YXR1cyh0aGlzLmZvcm0udmFsdWUucmVhc29uLmNvZGUpO1xyXG4gICAgICAgIHRoaXMuc2VuZERldGFpbGVkUG0uZW1pdCh0aGlzLmRldGFpbGVkUG1Kb2IpO1xyXG4gICAgfVxyXG5cclxuICAgIHNsZWN0c0Z1dHVyZVN0YXR1cyhzdGF0dXM6IGFueSkge1xyXG4gICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIGNhc2UgUmVhc29uQ29kZS5NUE06IHJldHVybiBQbUpvYlN0YXR1cy5XQUlUSU5HO1xyXG4gICAgICAgICAgICBjYXNlIFJlYXNvbkNvZGUuUlBNOiByZXR1cm4gUG1Kb2JTdGF0dXMuUkVQT1JURUQ7XHJcbiAgICAgICAgICAgIGNhc2UgUmVhc29uQ29kZS5DUE06IHJldHVybiBQbUpvYlN0YXR1cy5DQU5DRUxMRUQ7XHJcbiAgICAgICAgICAgIGNhc2UgUmVhc29uQ29kZS5TREk6IHJldHVybiBQbUpvYlN0YXR1cy5ERVNJTlNUQUxMRUQ7XHJcbiAgICAgICAgICAgIGNhc2UgUmVhc29uQ29kZS5PVEg6IHJldHVybiBQbUpvYlN0YXR1cy5PVEhFUjtcclxuICAgICAgICAgICAgZGVmYXVsdDogcmV0dXJuIFwiRXJyZXVyXCI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgb25TdWJtaXQoKSB7XHJcbiAgICAgICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiB0aGlzLmdsb2JhbHRyYW5zbGF0ZS5zdW1tYXJ5RXJyb3IsIGRldGFpbDogdGhpcy5nbG9iYWx0cmFuc2xhdGUuaW52YWxpZEZvcm0gfSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb250YWN0ZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcmV2ZW50U3RyaW5nS2V5cHJlc3MoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgaXNOYU4oTnVtYmVyKFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUpKSkgfHxcclxuICAgICAgICAgICAgU3RyaW5nLmZyb21DaGFyQ29kZShldmVudC5jaGFyQ29kZSkgPT09ICcgJ1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn1cclxuXHJcblxyXG5cclxuIiwiPHAtZGlhbG9nIGhlYWRlcj1cIlwiIFttb2RhbF09XCJ0cnVlXCIgWyh2aXNpYmxlKV09XCJkaXNwbGF5Y29udGFjdFN1cHBvcnRcIiAgW21heGltaXphYmxlXT1cInRydWVcIiBbYnJlYWtwb2ludHNdPVwieyc5NjBweCc6ICc3NXZ3J31cIiBbc3R5bGVdPVwie3dpZHRoOiAnOTAwcHgnLGhlaWdodDonMTQwMHB4J31cIiBbZHJhZ2dhYmxlXT1cImZhbHNlXCIgW3Jlc2l6YWJsZV09XCJ0cnVlXCIgKG9uSGlkZSk9XCJjYW5jZWxDb250YWN0U3VwcG9ydCgpXCI+XHJcbiAgICA8c3Ryb25nPlxyXG4gICAgPGgzIGNsYXNzPVwidGV4dC1jZW50ZXIgdGl0bGVcIj4ge3t0cmFuc2xhdGUuaGVhZGVyfX0gPC9oMz5cclxuICA8L3N0cm9uZz5cclxuICAgIDxicj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJ0cmFuc2xhdGUgJiYgZm9ybSAmJiByZWFzb25zIFwiPlxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjYXJkLWJnXCIgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRldXIgY29udGFjdC1ibG9jXCIgW3N0eWxlXT1cIntoZWlnaHQ6JzE1MHB4J31cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiZC1ibG9jayBteC1hdXRvXCIgc3JjPVwiYXNzZXRzL2ltZy9HRVBvcnRhbC9waG9uZS1jYWxsLS5wbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImNvdW50ZXIgY29udGFjdC1pY29uIHRleHQtY2VudGVyIG10LTRcIj57e3RyYW5zbGF0ZS5jb250YWN0ZWR9fTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiBcclxuICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiICpuZ0lmPVwiZm9ybVwiIGNsYXNzPVwiY29udGFjdDEwMC1mb3JtIHZhbGlkYXRlLWZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb250YWN0MTAwLWZvcm0tdGl0bGVcIj57e3RyYW5zbGF0ZS50aXRsZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUucGxhY2Vob2xkZXJOYW1lfX08L3NwYW4+IDxzcGFuIGNsYXNzPVwicmVxdWlzXCI+KiA8L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUucGxhY2Vob2xkZXJOYW1lXCIgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYubmFtZS5pbnZhbGlkIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZi5uYW1lLmVycm9yc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXNcIiAqbmdJZj1cImYubmFtZS5lcnJvcnMucmVxdWlyZWRcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZE5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXNcIiAqbmdJZj1cImYubmFtZS5lcnJvcnMubWlubGVuZ3RoXCI+e3t0cmFuc2xhdGUucmVxdWlyZWROYW1lTWlufX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUucGxhY2Vob2xkZXJFbWFpbH19PC9zcGFuPiA8c3BhbiBjbGFzcz1cInJlcXVpc1wiPio8L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUucGxhY2Vob2xkZXJFbWFpbFwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZi5lbWFpbC5pbnZhbGlkIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZi5lbWFpbC5lcnJvcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLmVtYWlsLmVycm9ycy5yZXF1aXJlZFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkRW1haWx9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXNcIiAqbmdJZj1cImYuZW1haWwuZXJyb3JzLmVtYWlsXCI+e3t0cmFuc2xhdGUucmVxdWlyZWRFbWFpbEZvcm1hdH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZ3JpZCBwLWZsdWlkIHAtbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1jb2wtMTIgcC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUucGxhY2Vob2xkZXJQaG9uZX19PC9zcGFuPiA8c3BhbiBjbGFzcz1cInJlcXVpc1wiPio8L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUucGxhY2Vob2xkZXJQaG9uZVwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJwaG9uZVwiIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZi5waG9uZS5pbnZhbGlkIH1cIiAoa2V5cHJlc3MpPVwicHJldmVudFN0cmluZ0tleXByZXNzKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZi5waG9uZS5lcnJvcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLnBob25lLmVycm9ycy5yZXF1aXJlZFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkUGhvbmV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1jb2wtMTIgcC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUucGxhY2Vob2xkZXJleHRlbnRpb25PckNvbW1lbnR9fTwvc3Bhbj46XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0ZS5wbGFjZWhvbGRlcmV4dGVudGlvbk9yQ29tbWVudFwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJleHRlbnRpb25PckNvbW1lbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZ3JpZCBwLWZsdWlkIHAtbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1jb2wtMTIgcC1tZC0xMiBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0cmVcIj57e3RyYW5zbGF0ZS5zeXN0ZW19fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJyZXF1aXNcIj4qPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnN5c3RlbVwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJzeXN0ZW1cIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYuc3lzdGVtLmludmFsaWQgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN1Ym1pdHRlZCAmJiBmLnN5c3RlbS5lcnJvcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLnN5c3RlbS5lcnJvcnM/LnJlcXVpcmVkXCI+e3t0cmFuc2xhdGUucmVxdWlyZWR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUud29ya09yZGVyfX08L3NwYW4+IDxzcGFuIGNsYXNzPVwicmVxdWlzXCI+PC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLndvcmtPcmRlclwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJ3b3JrT3JkZXJcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYud29ya09yZGVyLmludmFsaWQgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN1Ym1pdHRlZCAmJiBmLndvcmtPcmRlci5lcnJvcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLndvcmtPcmRlci5lcnJvcnM/LnJlcXVpcmVkXCI+e3t0cmFuc2xhdGUucmVxdWlyZWR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUucmVhc29ufX08L3NwYW4+IDxzcGFuIGNsYXNzPVwicmVxdWlzXCI+Kjwvc3Bhbj46XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJyZWFzb25zXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0ZS5zZWxlY3RSZWFzb25cIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkUmVhc29uXCIgb3B0aW9uTGFiZWw9XCJuYW1lXCIgZm9ybUNvbnRyb2xOYW1lPVwicmVhc29uXCIgIG9wdGlvbkRpc2FibGVkPVwiaW5hY3RpdmVcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYucmVhc29uLmludmFsaWQgfVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGlucHV0IFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUucmVhc29uXCIgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IGZvcm1Db250cm9sTmFtZT1cInJlYXNvblwiIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZi5yZWFzb24uaW52YWxpZCB9XCI+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN1Ym1pdHRlZCAmJiBmLnJlYXNvbi5lcnJvcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLnJlYXNvbi5lcnJvcnMucmVxdWlyZWRcIj57e3RyYW5zbGF0ZS5yZWFzb25SZXF1aXJlZH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZ3JpZCBwLWZsdWlkIHAtbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1jb2wtMTIgcC1tZC0xMiBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0cmVcIj57e3RyYW5zbGF0ZS5tZXNzYWdlfX0gPC9zcGFuPiA8c3BhbiAqbmdJZj1cIiByZWFzb25Db250YWN0ICE9PSdNb3JlRGF0ZXNGb3JtUG0nXCIgY2xhc3M9XCJyZXF1aXNcIj4qPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBwSW5wdXRUZXh0YXJlYSBzdHlsZT1cIiBtaW4taGVpZ2h0OjEwMHB4O2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7XCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0ZS5tZXNzYWdlICsnLi4uJ1wiIGZvcm1Db250cm9sTmFtZT1cIm1lc3NhZ2VcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYubWVzc2FnZS5lcnJvcnMgfVwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYubWVzc2FnZS5lcnJvcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLm1lc3NhZ2UuZXJyb3JzLnJlcXVpcmVkXCI+e3t0cmFuc2xhdGUucmVxdWlyZWR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXNcIiAqbmdJZj1cImYubWVzc2FnZS5lcnJvcnMubWlubGVuZ3RoXCI+e3t0cmFuc2xhdGUucmVxdWlyZWRNZXNzYWdlTWlufX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItY29udGFjdDEwMC1mb3JtLWJ0blwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcC1jb250YWN0MTAwLWZvcm0tYnRuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFjdDEwMC1mb3JtLWJnYnRuXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSBjbGFzcz1cImQtYmxvY2sgbXgtYXV0b1wiIFtsYWJlbF09XCJ0cmFuc2xhdGUuYWNjZXB0XCIgaWNvbj1cInBpIHBpLXRodW1icy11cFwiIFtwVG9vbHRpcF09XCJ0cmFuc2xhdGUuYWNjZXB0XCIgIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIChjbGljayk9XCJvblN1Ym1pdCgpXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSBjbGFzcz1cImQtYmxvY2sgbXgtYXV0b1wiIFtsYWJlbF09XCJ0cmFuc2xhdGUuYWNjZXB0XCIgaWNvbj1cInBpIHBpLXRodW1icy11cFwiIFtwVG9vbHRpcF09XCJ0cmFuc2xhdGUuYWNjZXB0XCIgIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIChjbGljayk9XCJjb250YWN0ZWQoKVwiPjwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjYXJkLWJnXCIgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZXVyIGNvbnRhY3QtYmxvY1wiIFtzdHlsZV09XCJ7aGVpZ2h0OicxNTBweCd9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImQtYmxvY2sgbXgtYXV0b1wiIHNyYz1cImFzc2V0cy9pbWcvR0VQb3J0YWwvcGhvbmUtY2FsbGVkLnBuZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiY291bnRlciBjb250YWN0LWljb24gdGV4dC1jZW50ZXIgbXQtNFwiPnt7dHJhbnNsYXRlLmNvbnRhY3R9fTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJkLWJsb2NrIG14LWF1dG9cIiBbbGFiZWxdPVwidHJhbnNsYXRlLnNlZU51bWJlclwiIGljb249XCJwaSBwaS1leWVcIiBbcFRvb2x0aXBdPVwidHJhbnNsYXRlLmFjY2VwdFwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIChjbGljayk9XCJjb250YWN0KClcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgIDxpZnJhbWUgc3JjPVwiaHR0cHM6Ly9tYXBzLmdvb2dsZS5jb20vbWFwcz9xPTI4MywlMjBSdWUlMjBEZSUyMGxhJTIwTWluaWVyZS1CUDM0JTIwJTIwNzg1MzMlMjBCVUMlMjAlRTIlODAlOTMlMjBDZWRleCZhbXA7dD0mYW1wO3o9MTMmYW1wO2llPVVURjgmYW1wO2l3bG9jPSZhbXA7b3V0cHV0PWVtYmVkXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMjUwXCIgc3R5bGU9XCJib3JkZXI6MDtcIiBhbGxvd2Z1bGxzY3JlZW49XCJcIiBsb2FkaW5nPVwibGF6eVwiPjwvaWZyYW1lPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cImZzLTQgbXQtM1wiPiB7e3RyYW5zbGF0ZS5pbmZvcm1hdGlvbn19PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cIm1iLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1lbnZlbG9wZVwiPjwvaT48bGFiZWw+ICZuYnNwOyB7e3RyYW5zbGF0ZS5lbWFpbFRleHR9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIlwiPnt7dHJhbnNsYXRlLmVtYWlsfX0gPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLW1hcFwiPjwvaT48bGFiZWw+ICZuYnNwOyB7e3RyYW5zbGF0ZS5hZGRyZXNzVGV4dH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiXCI+e3t0cmFuc2xhdGUuYWRyZXNzfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIlwiPnt7dHJhbnNsYXRlLnRvd259fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiXCI+e3t0cmFuc2xhdGUuY291bnRyeX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG48L3AtZGlhbG9nPlxyXG48cC1kaWFsb2cgKm5nSWY9XCJ0cmFuc2xhdGVcIltoZWFkZXJdPVwidHJhbnNsYXRlLnNlcnZpY2VDZW50ZXJQaG9uZVRleHRcIiBbbW9kYWxdPVwidHJ1ZVwiIFsodmlzaWJsZSldPVwiZGlzcGxheU51bWJlclwiICBbYnJlYWtwb2ludHNdPVwieyc5NjBweCc6ICc3NXZ3J31cIiBbc3R5bGVdPVwie3dpZHRoOiAnNDAwcHgnLGhlaWdodDonMjAwcHgnfVwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbcmVzaXphYmxlXT1cImZhbHNlXCIgKG9uSGlkZSk9XCJjbG9zZU51bWJlcigpXCI+XHJcbjxicj5cclxuICA8aDQgY2xhc3M9XCJudW1iZXJcIj4gPHN0cm9uZz4gPGkgY2xhc3M9XCJwaSBwaS1waG9uZVwiPjwvaT4gICZuYnNwO3t7dHJhbnNsYXRlLmNvbnRhY3ROdW1iZXJ9fTwvc3Ryb25nPjwvaDQ+XHJcbjwvcC1kaWFsb2c+XHJcblxyXG5cclxuPHAtdG9hc3QgcG9zaXRpb249XCJ0b3AtY2VudGVyXCI+PC9wLXRvYXN0PiJdfQ==
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1zdXBwb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F3Zi10ZXN0LWxpYi9zcmMvbGliL3NoYXJlZC9jb250YWN0LXN1cHBvcnQvY29udGFjdC1zdXBwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F3Zi10ZXN0LWxpYi9zcmMvbGliL3NoYXJlZC9jb250YWN0LXN1cHBvcnQvY29udGFjdC1zdXBwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7OztBQVMzRCxNQUFNLE9BQU8sdUJBQXVCO0lBcUJoQyxZQUFvQixjQUE4QixFQUFVLFdBQXdCO1FBQWhFLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBYjFFLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN6QyxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakQsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUc1RCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHbEIsa0JBQWEsR0FBRyxLQUFLLENB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ckksT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFVO1FBQzVCLElBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2xELE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsRUFDN0M7WUFDRSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDMUI7SUFDTCxDQUFDOztxSEFyS1EsdUJBQXVCO3lHQUF2Qix1QkFBdUIsaVlBSHJCLENBQUMsY0FBYyxDQUFDLCtDQ2QvQixzcFZBaUl5Qzs0RkRoSDVCLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDSSxxQkFBcUIsYUFHcEIsQ0FBQyxjQUFjLENBQUM7K0hBSWxCLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBEZXRhaWxlZFBtSm9iIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2RldGFpbGVkUG1Kb2IubW9kZWwnO1xyXG5pbXBvcnQgeyBQbUpvYlN0YXR1cyB9IGZyb20gJy4uLy4uL21vZGVscy9wbUpvYlN0YXR1cyc7XHJcbmltcG9ydCB7IFJlYXNvbiB9IGZyb20gJy4uLy4uL21vZGVscy9yZWFzb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBSZWFzb25Db2RlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JlYXNvbkNvZGUnO1xyXG5pbXBvcnQgeyBSZWFzb25Db250YWN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JlYXNvbkNvbnRhY3QnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1jb250YWN0LXN1cHBvcnQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbnRhY3Qtc3VwcG9ydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jb250YWN0LXN1cHBvcnQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbnRhY3RTdXBwb3J0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gICAgQElucHV0KCkgZGlzcGxheWNvbnRhY3RTdXBwb3J0ITogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGdsb2JhbHRyYW5zbGF0ZSE6IGFueTtcclxuICAgIEBJbnB1dCgpIHRyYW5zbGF0ZSE6IGFueTtcclxuICAgIEBJbnB1dCgpIHNob3dEYXRlITogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGRldGFpbGVkUG1Kb2IhOiBEZXRhaWxlZFBtSm9iO1xyXG4gICAgQElucHV0KCkgcmVhc29uQ29udGFjdCE6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHJlYXNvbnMhOiBSZWFzb25bXTtcclxuICAgIEBPdXRwdXQoKSBzZW5kRGV0YWlsZWRQbSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgQE91dHB1dCgpIHNlbmRGb3JtOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBjbG9zZUNvbnRhY3RTdXBwb3J0ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gICAgZm9ybSE6IEZvcm1Hcm91cDtcclxuICAgIGRhdGVzITogRGF0ZVtdO1xyXG4gICAgbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICBtaW5EYXRlITogRGF0ZTtcclxuICAgIG1heERhdGUhOiBEYXRlO1xyXG4gICAgZGlzcGxheU51bWJlciA9IGZhbHNlO1xyXG5cclxuICAgIHNlbGVjdGVkUmVhc29uITogUmVhc29uO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcikgeyB9XHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5sb2FkRGF0YXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxvYWREYXRhcygpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWREYXRhcygpIHtcclxuICAgICAgICB0aGlzLmZpbHRlclJlYXNvbnMoKTtcclxuICAgICAgICB0aGlzLnNldERhdGVSdWxlcygpO1xyXG4gICAgICAgIHRoaXMubG9hZEZvcm0oKTtcclxuICAgIH1cclxuXHJcbiAgICBmaWx0ZXJSZWFzb25zKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnJlYXNvbnMgJiYgdGhpcy5yZWFzb25Db250YWN0ID09PSBSZWFzb25Db250YWN0Lk1vcmVEYXRlc0Zvcm1QbSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmVhc29uID0gdGhpcy5yZWFzb25zWzBdO1xyXG4gICAgICAgICAgICB0aGlzLnJlYXNvbnMgPSB0aGlzLnJlYXNvbnMuZmlsdGVyKHggPT4geC5jb2RlID09PSBSZWFzb25Db2RlLk1QTSlcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMucmVhc29ucyAmJiB0aGlzLnJlYXNvbkNvbnRhY3QgPT09IFJlYXNvbkNvbnRhY3QuQ2FuY2VsRm9ybVBtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSZWFzb24gPSB0aGlzLnJlYXNvbnNbMl07XHJcbiAgICAgICAgICAgIHRoaXMucmVhc29ucyA9IHRoaXMucmVhc29ucy5maWx0ZXIoeCA9PiB4LmNvZGUgPT09IFJlYXNvbkNvZGUuQ1BNKVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5kZXRhaWxlZFBtSm9iLnN0YXR1cyA9PT0gUG1Kb2JTdGF0dXMuRE9ORSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlYXNvbnMgPSB0aGlzLnJlYXNvbnMuZmlsdGVyKHggPT4geC5jb2RlID09PSBSZWFzb25Db2RlLk9USClcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuZGV0YWlsZWRQbUpvYi5zdGF0dXMgPT09IFBtSm9iU3RhdHVzLlZBTElEQVRFRCkge1xyXG4gICAgICAgICAgICB0aGlzLnJlYXNvbnMgPSB0aGlzLnJlYXNvbnMuZmlsdGVyKHggPT4geC5jb2RlICE9PSBSZWFzb25Db2RlLk1QTSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNhbmNlbENvbnRhY3RTdXBwb3J0KCkge1xyXG5cclxuICAgICAgICB0aGlzLmNsb3NlQ29udGFjdFN1cHBvcnQuZW1pdCh0cnVlKTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiB0aGlzLmdsb2JhbHRyYW5zbGF0ZS5zdW1tYXJ5UmVqZWN0LCBkZXRhaWw6IHRoaXMuZ2xvYmFsdHJhbnNsYXRlLmRldGFpbFJlamVjdCB9KTtcclxuXHJcblxyXG5cclxuICAgIH1cclxuICAgIGdldCBmKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHM7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBzZXREYXRlUnVsZXMoKSB7XHJcbiAgICAgICAgbGV0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgICAgICBsZXQgbW9udGggPSB0b2RheS5nZXRNb250aCgpO1xyXG4gICAgICAgIGxldCB5ZWFyID0gdG9kYXkuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgICBsZXQgcHJldk1vbnRoID0gKG1vbnRoID09PSAwKSA/IDExIDogbW9udGggLSAxO1xyXG4gICAgICAgIGxldCBwcmV2WWVhciA9IChwcmV2TW9udGggPT09IDExKSA/IHllYXIgLSAxIDogeWVhcjtcclxuICAgICAgICB0aGlzLm1pbkRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIHRoaXMubWluRGF0ZS5zZXRNb250aChtb250aCk7XHJcbiAgICAgICAgdGhpcy5taW5EYXRlLnNldEZ1bGxZZWFyKHByZXZZZWFyKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgbG9hZEZvcm0oKSB7XHJcbiAgICAgICAgbGV0IG5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd1c2VyTmFtZScpID8gIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3VzZXJOYW1lJykgIDogIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VyTmFtZScpIDtcclxuICAgICAgICBsZXQgZW1haWwgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdlbWFpbCcpID8gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZW1haWwnKSA6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdlbWFpbCcpO1xyXG4gICAgICAgIGxldCBwaG9uZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ21vYmlsZVBob25lTnVtYmVyJykgPyBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdtb2JpbGVQaG9uZU51bWJlcicpICA6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtb2JpbGVQaG9uZU51bWJlcicpOyBcclxuXHJcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICAgICAgIG5hbWU6IFtuYW1lICE9PSAnbnVsbCcgPyBuYW1lIDogJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgzKV1dLFxyXG4gICAgICAgICAgICBlbWFpbDogW2VtYWlsICE9PSAnbnVsbCcgPyBlbWFpbCA6ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF1dLFxyXG4gICAgICAgICAgICBwaG9uZTogW3RoaXMuY2hlY2tQaG9uZShwaG9uZSkgPyBwaG9uZSA6ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgICAgICBleHRlbnRpb25PckNvbW1lbnQ6IFsnJ10sXHJcbiAgICAgICAgICAgIHJlYXNvbjogW3sgdmFsdWU6ICcnIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgICAgIHN5c3RlbTogW3sgdmFsdWU6IHRoaXMuZGV0YWlsZWRQbUpvYi5zeXN0ZW1OYW1lICsgJyAnICsgdGhpcy5kZXRhaWxlZFBtSm9iLnN5c3RlbUlkLCBkaXNhYmxlZDogdHJ1ZSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgICAgICB3b3JrT3JkZXI6IFt7IHZhbHVlOiB0aGlzLmRldGFpbGVkUG1Kb2IucG1Kb2Iud29ya29yZGVyTnVtYmVyLCBkaXNhYmxlZDogdHJ1ZSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiBbJycsICh0aGlzLnJlYXNvbkNvbnRhY3QgPT09IFJlYXNvbkNvbnRhY3QuTW9yZURhdGVzRm9ybVBtKSA/IFtdIDogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDE1KV1dLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgXHJcbmNoZWNrUGhvbmUocGhvbmUgOiBhbnkpOiBib29sZWFue1xyXG4gICAgaWYgKHBob25lID09IG51bGwgfHwgcGhvbmUgPT0gJ251bGwnIHx8IHBob25lID09IHVuZGVmaW5lZCB8fCBwaG9uZS5sZW5ndGggID09IDApIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9XHJcbn1cclxuICAgXHJcbmNvbnRhY3RlZCgpIHtcclxuICAgICAgICB0aGlzLnNlbmRDb250YWN0TWVFbWFpbE1ldGhvZGUoKTtcclxuXHJcbiAgICB9XHJcbiAgICBjb250YWN0KCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheU51bWJlciA9IHRydWU7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlTnVtYmVyKCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheU51bWJlciA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbmRDb250YWN0TWVFbWFpbE1ldGhvZGUoKSB7XHJcbiAgICAgICBcclxuICAgICAgICBpZih0aGlzLmZvcm0udmFsdWUucmVhc29uLm5hbWUgPT0gXCJEZW1hbmRlciBkJ2F1dHJlcyBkYXRlcyBkZSBQTVwiKXtcclxuICAgICAgICAgICAgdGhpcy5yZWFzb25Db250YWN0ID1SZWFzb25Db250YWN0Lk1vcmVEYXRlc0Zvcm1QbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kZXRhaWxlZFBtSm9iLm5hbWUgPSB0aGlzLmZvcm0udmFsdWUubmFtZTtcclxuICAgICAgICB0aGlzLmRldGFpbGVkUG1Kb2IucGhvbmUgPSB0aGlzLmZvcm0udmFsdWUucGhvbmU7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxlZFBtSm9iLmV4dGVudGlvbk9yQ29tbWVudCA9IHRoaXMuZm9ybS52YWx1ZS5leHRlbnRpb25PckNvbW1lbnQ7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxlZFBtSm9iLmVtYWlsID0gdGhpcy5mb3JtLnZhbHVlLmVtYWlsO1xyXG4gICAgICAvLyAgdGhpcy5kZXRhaWxlZFBtSm9iLnJlYXNvbiA9ICh0aGlzLnJlYXNvbkNvbnRhY3QgPT09IFJlYXNvbkNvbnRhY3QuTW9yZURhdGVzRm9ybVBtKSA/IHRoaXMucmVhc29uc1swXS5uYW1lIDogdGhpcy5mb3JtLnZhbHVlLnJlYXNvbi5uYW1lO1xyXG4gICAgICAgIHRoaXMuZGV0YWlsZWRQbUpvYi5yZWFzb24gPSB0aGlzLmZvcm0udmFsdWUucmVhc29uLm5hbWU7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxlZFBtSm9iLmV4dGVudGlvbk9yQ29tbWVudCA9IHRoaXMuZm9ybS52YWx1ZS5leHRlbnRpb25PckNvbW1lbnQ7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxlZFBtSm9iLmNvbW1lbnQgPSB0aGlzLmZvcm0udmFsdWUubWVzc2FnZTtcclxuICAgICAgICB0aGlzLmRldGFpbGVkUG1Kb2IucmVhc29uQ29udGFjdCA9IHRoaXMucmVhc29uQ29udGFjdDtcclxuICAgICAgICB0aGlzLmRldGFpbGVkUG1Kb2IuZnV0dXJlU3RhdHVzID0gdGhpcy5zbGVjdHNGdXR1cmVTdGF0dXModGhpcy5mb3JtLnZhbHVlLnJlYXNvbi5jb2RlKTtcclxuICAgICAgICB0aGlzLnNlbmREZXRhaWxlZFBtLmVtaXQodGhpcy5kZXRhaWxlZFBtSm9iKTtcclxuICAgIH1cclxuXHJcbiAgICBzbGVjdHNGdXR1cmVTdGF0dXMoc3RhdHVzOiBhbnkpIHtcclxuICAgICAgICBzd2l0Y2ggKHN0YXR1cykge1xyXG4gICAgICAgICAgICBjYXNlIFJlYXNvbkNvZGUuTVBNOiByZXR1cm4gUG1Kb2JTdGF0dXMuV0FJVElORztcclxuICAgICAgICAgICAgY2FzZSBSZWFzb25Db2RlLlJQTTogcmV0dXJuIFBtSm9iU3RhdHVzLlJFUE9SVEVEO1xyXG4gICAgICAgICAgICBjYXNlIFJlYXNvbkNvZGUuQ1BNOiByZXR1cm4gUG1Kb2JTdGF0dXMuQ0FOQ0VMTEVEO1xyXG4gICAgICAgICAgICBjYXNlIFJlYXNvbkNvZGUuU0RJOiByZXR1cm4gUG1Kb2JTdGF0dXMuREVTSU5TVEFMTEVEO1xyXG4gICAgICAgICAgICBjYXNlIFJlYXNvbkNvZGUuT1RIOiByZXR1cm4gUG1Kb2JTdGF0dXMuT1RIRVI7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHJldHVybiBcIkVycmV1clwiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIG9uU3VibWl0KCkge1xyXG4gICAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogdGhpcy5nbG9iYWx0cmFuc2xhdGUuc3VtbWFyeUVycm9yLCBkZXRhaWw6IHRoaXMuZ2xvYmFsdHJhbnNsYXRlLmludmFsaWRGb3JtIH0pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29udGFjdGVkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJldmVudFN0cmluZ0tleXByZXNzKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGlzTmFOKE51bWJlcihTdHJpbmcuZnJvbUNoYXJDb2RlKGV2ZW50LmNoYXJDb2RlKSkpIHx8XHJcbiAgICAgICAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUpID09PSAnICdcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5cclxuXHJcbiIsIjxwLWRpYWxvZyBoZWFkZXI9XCJcIiBbbW9kYWxdPVwidHJ1ZVwiIFsodmlzaWJsZSldPVwiZGlzcGxheWNvbnRhY3RTdXBwb3J0XCIgIFttYXhpbWl6YWJsZV09XCJ0cnVlXCIgW2JyZWFrcG9pbnRzXT1cInsnOTYwcHgnOiAnNzV2dyd9XCIgW3N0eWxlXT1cInt3aWR0aDogJzkwMHB4JyxoZWlnaHQ6JzE0MDBweCd9XCIgW2RyYWdnYWJsZV09XCJmYWxzZVwiIFtyZXNpemFibGVdPVwidHJ1ZVwiIChvbkhpZGUpPVwiY2FuY2VsQ29udGFjdFN1cHBvcnQoKVwiPlxyXG4gICAgPHN0cm9uZz5cclxuICAgIDxoMyBjbGFzcz1cInRleHQtY2VudGVyIHRpdGxlXCI+IHt7dHJhbnNsYXRlLmhlYWRlcn19IDwvaDM+XHJcbiAgPC9zdHJvbmc+XHJcbiAgICA8YnI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwidHJhbnNsYXRlICYmIGZvcm0gJiYgcmVhc29ucyBcIj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY2FyZC1iZ1wiID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZXVyIGNvbnRhY3QtYmxvY1wiIFtzdHlsZV09XCJ7aGVpZ2h0OicxNTBweCd9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImQtYmxvY2sgbXgtYXV0b1wiIHNyYz1cImFzc2V0cy9pbWcvR0VQb3J0YWwvcGhvbmUtY2FsbC0ucG5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJjb3VudGVyIGNvbnRhY3QtaWNvbiB0ZXh0LWNlbnRlciBtdC00XCI+e3t0cmFuc2xhdGUuY29udGFjdGVkfX08L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gXHJcbiAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAqbmdJZj1cImZvcm1cIiBjbGFzcz1cImNvbnRhY3QxMDAtZm9ybSB2YWxpZGF0ZS1mb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29udGFjdDEwMC1mb3JtLXRpdGxlXCI+e3t0cmFuc2xhdGUudGl0bGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTEyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyTmFtZX19PC9zcGFuPiA8c3BhbiBjbGFzcz1cInJlcXVpc1wiPiogPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnBsYWNlaG9sZGVyTmFtZVwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLm5hbWUuaW52YWxpZCB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYubmFtZS5lcnJvcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLm5hbWUuZXJyb3JzLnJlcXVpcmVkXCI+e3t0cmFuc2xhdGUucmVxdWlyZWROYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLm5hbWUuZXJyb3JzLm1pbmxlbmd0aFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkTmFtZU1pbn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZ3JpZCBwLWZsdWlkIHAtbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1jb2wtMTIgcC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyRW1haWx9fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJyZXF1aXNcIj4qPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnBsYWNlaG9sZGVyRW1haWxcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYuZW1haWwuaW52YWxpZCB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYuZW1haWwuZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5lbWFpbC5lcnJvcnMucmVxdWlyZWRcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZEVtYWlsfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLmVtYWlsLmVycm9ycy5lbWFpbFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkRW1haWxGb3JtYXR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyUGhvbmV9fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJyZXF1aXNcIj4qPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnBsYWNlaG9sZGVyUGhvbmVcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYucGhvbmUuaW52YWxpZCB9XCIgKGtleXByZXNzKT1cInByZXZlbnRTdHJpbmdLZXlwcmVzcygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYucGhvbmUuZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5waG9uZS5lcnJvcnMucmVxdWlyZWRcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZFBob25lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyZXh0ZW50aW9uT3JDb21tZW50fX08L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUucGxhY2Vob2xkZXJleHRlbnRpb25PckNvbW1lbnRcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwiZXh0ZW50aW9uT3JDb21tZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUuc3lzdGVtfX08L3NwYW4+IDxzcGFuIGNsYXNzPVwicmVxdWlzXCI+Kjwvc3Bhbj46XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0ZS5zeXN0ZW1cIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwic3lzdGVtXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLnN5c3RlbS5pbnZhbGlkIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZi5zeXN0ZW0uZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5zeXN0ZW0uZXJyb3JzPy5yZXF1aXJlZFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTEyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLndvcmtPcmRlcn19PC9zcGFuPiA8c3BhbiBjbGFzcz1cInJlcXVpc1wiPjwvc3Bhbj46XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0ZS53b3JrT3JkZXJcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwid29ya09yZGVyXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLndvcmtPcmRlci5pbnZhbGlkIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZi53b3JrT3JkZXIuZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi53b3JrT3JkZXIuZXJyb3JzPy5yZXF1aXJlZFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTEyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnJlYXNvbn19PC9zcGFuPiA8c3BhbiBjbGFzcz1cInJlcXVpc1wiPio8L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwicmVhc29uc1wiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUuc2VsZWN0UmVhc29uXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFJlYXNvblwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIGZvcm1Db250cm9sTmFtZT1cInJlYXNvblwiICBvcHRpb25EaXNhYmxlZD1cImluYWN0aXZlXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLnJlYXNvbi5pbnZhbGlkIH1cIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnJlYXNvblwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJyZWFzb25cIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYucmVhc29uLmludmFsaWQgfVwiPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZi5yZWFzb24uZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5yZWFzb24uZXJyb3JzLnJlcXVpcmVkXCI+e3t0cmFuc2xhdGUucmVhc29uUmVxdWlyZWR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUubWVzc2FnZX19IDwvc3Bhbj4gPHNwYW4gKm5nSWY9XCIgcmVhc29uQ29udGFjdCAhPT0nTW9yZURhdGVzRm9ybVBtJ1wiIGNsYXNzPVwicmVxdWlzXCI+Kjwvc3Bhbj46XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgcElucHV0VGV4dGFyZWEgc3R5bGU9XCIgbWluLWhlaWdodDoxMDBweDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO1wiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUubWVzc2FnZSArJy4uLidcIiBmb3JtQ29udHJvbE5hbWU9XCJtZXNzYWdlXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLm1lc3NhZ2UuZXJyb3JzIH1cIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN1Ym1pdHRlZCAmJiBmLm1lc3NhZ2UuZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5tZXNzYWdlLmVycm9ycy5yZXF1aXJlZFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLm1lc3NhZ2UuZXJyb3JzLm1pbmxlbmd0aFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkTWVzc2FnZU1pbn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWNvbnRhY3QxMDAtZm9ybS1idG5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtY29udGFjdDEwMC1mb3JtLWJ0blwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3QxMDAtZm9ybS1iZ2J0blwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJkLWJsb2NrIG14LWF1dG9cIiBbbGFiZWxdPVwidHJhbnNsYXRlLmFjY2VwdFwiIGljb249XCJwaSBwaS10aHVtYnMtdXBcIiBbcFRvb2x0aXBdPVwidHJhbnNsYXRlLmFjY2VwdFwiICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiAoY2xpY2spPVwib25TdWJtaXQoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJkLWJsb2NrIG14LWF1dG9cIiBbbGFiZWxdPVwidHJhbnNsYXRlLmFjY2VwdFwiIGljb249XCJwaSBwaS10aHVtYnMtdXBcIiBbcFRvb2x0aXBdPVwidHJhbnNsYXRlLmFjY2VwdFwiICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiAoY2xpY2spPVwiY29udGFjdGVkKClcIj48L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY2FyZC1iZ1wiICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGV1ciBjb250YWN0LWJsb2NcIiBbc3R5bGVdPVwie2hlaWdodDonMTUwcHgnfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJkLWJsb2NrIG14LWF1dG9cIiBzcmM9XCJhc3NldHMvaW1nL0dFUG9ydGFsL3Bob25lLWNhbGxlZC5wbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImNvdW50ZXIgY29udGFjdC1pY29uIHRleHQtY2VudGVyIG10LTRcIj57e3RyYW5zbGF0ZS5jb250YWN0fX08L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwiZC1ibG9jayBteC1hdXRvXCIgW2xhYmVsXT1cInRyYW5zbGF0ZS5zZWVOdW1iZXJcIiBpY29uPVwicGkgcGktZXllXCIgW3BUb29sdGlwXT1cInRyYW5zbGF0ZS5hY2NlcHRcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiAoY2xpY2spPVwiY29udGFjdCgpXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICA8aWZyYW1lIHNyYz1cImh0dHBzOi8vbWFwcy5nb29nbGUuY29tL21hcHM/cT0yODMsJTIwUnVlJTIwRGUlMjBsYSUyME1pbmllcmUtQlAzNCUyMCUyMDc4NTMzJTIwQlVDJTIwJUUyJTgwJTkzJTIwQ2VkZXgmYW1wO3Q9JmFtcDt6PTEzJmFtcDtpZT1VVEY4JmFtcDtpd2xvYz0mYW1wO291dHB1dD1lbWJlZFwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjI1MFwiIHN0eWxlPVwiYm9yZGVyOjA7XCIgYWxsb3dmdWxsc2NyZWVuPVwiXCIgbG9hZGluZz1cImxhenlcIj48L2lmcmFtZT5cclxuICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJmcy00IG10LTNcIj4ge3t0cmFuc2xhdGUuaW5mb3JtYXRpb259fTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJtYi00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktZW52ZWxvcGVcIj48L2k+PGxhYmVsPiAmbmJzcDsge3t0cmFuc2xhdGUuZW1haWxUZXh0fX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJcIj57e3RyYW5zbGF0ZS5lbWFpbH19IDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1tYXBcIj48L2k+PGxhYmVsPiAmbmJzcDsge3t0cmFuc2xhdGUuYWRkcmVzc1RleHR9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIlwiPnt7dHJhbnNsYXRlLmFkcmVzc319PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJcIj57e3RyYW5zbGF0ZS50b3dufX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIlwiPnt7dHJhbnNsYXRlLmNvdW50cnl9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuPC9wLWRpYWxvZz5cclxuPHAtZGlhbG9nICpuZ0lmPVwidHJhbnNsYXRlXCJbaGVhZGVyXT1cInRyYW5zbGF0ZS5zZXJ2aWNlQ2VudGVyUGhvbmVUZXh0XCIgW21vZGFsXT1cInRydWVcIiBbKHZpc2libGUpXT1cImRpc3BsYXlOdW1iZXJcIiAgW2JyZWFrcG9pbnRzXT1cInsnOTYwcHgnOiAnNzV2dyd9XCIgW3N0eWxlXT1cInt3aWR0aDogJzQwMHB4JyxoZWlnaHQ6JzIwMHB4J31cIiBbZHJhZ2dhYmxlXT1cImZhbHNlXCIgW3Jlc2l6YWJsZV09XCJmYWxzZVwiIChvbkhpZGUpPVwiY2xvc2VOdW1iZXIoKVwiPlxyXG48YnI+XHJcbiAgPGg0IGNsYXNzPVwibnVtYmVyXCI+IDxzdHJvbmc+IDxpIGNsYXNzPVwicGkgcGktcGhvbmVcIj48L2k+ICAmbmJzcDt7e3RyYW5zbGF0ZS5jb250YWN0TnVtYmVyfX08L3N0cm9uZz48L2g0PlxyXG48L3AtZGlhbG9nPlxyXG5cclxuXHJcbjxwLXRvYXN0IHBvc2l0aW9uPVwidG9wLWNlbnRlclwiPjwvcC10b2FzdD4iXX0=
@@ -186,7 +186,7 @@ class MenuGePortalComponent {
186
186
  this.hideMenu.emit();
187
187
  }
188
188
  isTokenExpired() {
189
- const token = sessionStorage.getItem("va-token");
189
+ const token = sessionStorage.getItem("va-token") ? sessionStorage.getItem("va-token") : localStorage.getItem("va-token");
190
190
  if (!token) {
191
191
  return true; // Token absent, considéré comme expiré
192
192
  }
@@ -239,7 +239,10 @@ class MenuGePortalComponent {
239
239
  deleteConnexionInfo() {
240
240
  sessionStorage.removeItem("va-token");
241
241
  sessionStorage.removeItem("va-email");
242
+ localStorage.removeItem("va-token");
243
+ localStorage.removeItem("va-email");
242
244
  sessionStorage.setItem("va", "false");
245
+ localStorage.setItem("va", "false");
243
246
  }
244
247
  navigate(route) {
245
248
  this.router.navigate([route]);
@@ -517,9 +520,9 @@ class ContactComponent {
517
520
  }
518
521
  }
519
522
  loadForm() {
520
- let name = sessionStorage.getItem('userName');
521
- let email = sessionStorage.getItem('email');
522
- let phone = sessionStorage.getItem('mobilePhoneNumber');
523
+ let name = sessionStorage.getItem('userName') ? sessionStorage.getItem('userName') : localStorage.getItem('userName');
524
+ let email = sessionStorage.getItem('email') ? sessionStorage.getItem('email') : localStorage.getItem('email');
525
+ let phone = sessionStorage.getItem('mobilePhoneNumber') ? sessionStorage.getItem('mobilePhoneNumber') : localStorage.getItem('mobilePhoneNumber');
523
526
  this.form = this.formBuilder.group({
524
527
  name: [
525
528
  name !== 'null' ? name : '',
@@ -817,9 +820,9 @@ class ContactSupportComponent {
817
820
  this.minDate.setFullYear(prevYear);
818
821
  }
819
822
  loadForm() {
820
- let name = sessionStorage.getItem('userName');
821
- let email = sessionStorage.getItem('email');
822
- let phone = sessionStorage.getItem('mobilePhoneNumber');
823
+ let name = sessionStorage.getItem('userName') ? sessionStorage.getItem('userName') : localStorage.getItem('userName');
824
+ let email = sessionStorage.getItem('email') ? sessionStorage.getItem('email') : localStorage.getItem('email');
825
+ let phone = sessionStorage.getItem('mobilePhoneNumber') ? sessionStorage.getItem('mobilePhoneNumber') : localStorage.getItem('mobilePhoneNumber');
823
826
  this.form = this.formBuilder.group({
824
827
  name: [name !== 'null' ? name : '', [Validators.required, Validators.minLength(3)]],
825
828
  email: [email !== 'null' ? email : '', [Validators.required, Validators.email]],