@uiapplibct/ngx-reusa-app-lib 0.0.25 → 0.0.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -648,24 +648,15 @@ export class HeaderComponent extends BasePage {
648
648
  }
649
649
  openAuditDashboard() {
650
650
  if (this.context == 'audit') {
651
- let userModel = this.ls.getUser();
652
- var tempVal = JSON.stringify({ param1: "taxAudit" });
653
- var encVal = btoa(tempVal);
654
- var date = new Date();
655
- date.setTime(date.getTime() + 60000);
656
- const domain = ".dol.ct.gov";
657
- var expires = "expires=" + date.toUTCString();
658
- document.cookie = "parApToM=" + encVal + ";path=/;expires=" + expires + ";domain=" + domain + ";SameSite=Lax;";
659
- var cookie = "parApToM=" + encVal + ";path=/" + ";domain=.dol.ct.gov" + ";expires=" + expires + ";";
660
- var isHttps = window.location.protocol === 'https:';
661
- if (isHttps) {
662
- cookie += "SameSite=None; Secure";
651
+ if (this.ls.isTaxAuditSupervisor() || this.ls.isTaxAuditDirector()) {
652
+ this.openPage('audit', '/dashboard');
663
653
  }
664
- else {
665
- cookie += "SameSite=None";
654
+ else if (this.ls.isTaxAuditAuditor()) {
655
+ this.openPage('audit', '/myq');
656
+ }
657
+ else if (this.ls.isEmployer()) {
658
+ this.openPage('audit', '/'); //Add the actual url for employer audit dashboard
666
659
  }
667
- document.cookie = cookie;
668
- window.open(`${LibConstants.taxUrlExternal}/faces/virtual/contextswitch.xhtml?a=${userModel.access_token}&TAXAUDIT_PORTAL=true`, '_self');
669
660
  }
670
661
  }
671
662
  openAuditorWorkList() {
@@ -931,4 +922,4 @@ export class HeaderComponent extends BasePage {
931
922
  args: ['context']
932
923
  }] }); })();
933
924
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(HeaderComponent, { className: "HeaderComponent", filePath: "lib\\components\\header\\header.component.ts", lineNumber: 26 }); })();
934
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDbEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBUWhGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNkaEQsdUNBQ21COzs7O0lBRGtCLHVFQUFvQzs7O0lBSWpFLHNDQUNnSjs7O0lBQWhHLHlHQUE2RTs7OztJQVE3SCxzQ0FBeU07SUFBN0wsd0xBQVMsZUFBQSxrQkFBVSxDQUFBLElBQUM7SUFBeUssb0JBQUk7SUFBQSxpQkFBYTs7O0lBQWhKLG1HQUE2RTs7OztJQUV2SixzQ0FBOFI7SUFBakQsd0xBQVMsZUFBQSxzQkFBYyxDQUFBLElBQUM7O0lBQXlCLFlBQThDO0lBQUEsaUJBQWE7OztJQUF4VCxtRkFBa0Q7SUFBMEIsb0dBQThFO0lBQW1HLGVBQThDO0lBQTlDLHdFQUE4Qzs7OztJQUM1VSxzQ0FBNFI7SUFBekIsd0xBQVMsZUFBQSxzQkFBYyxDQUFBLElBQUM7O0lBQUMsWUFB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QVU7WUFFWixxRkFFZSxvR0FBQTs7WUFuSTRELHlFQUF1QztZQUtyRyxlQUF5QztZQUF6QyxrRUFBeUM7WUFFeEIsZUFBaUY7WUFBakYsbUdBQWlGO1lBQ3ZGLGVBQTRDO1lBQTVDLDhFQUE0QztZQUMzRCx1R0FBaUQ7WUFBQyx5RkFBdUU7WUFHbkcsZUFBcUI7WUFBckIsMENBQXFCO1lBNEJWLGVBQW9GO1lBQXBGLGtIQUFvRjtZQW1CakcsZUFBcUI7WUFBckIsMENBQXFCO1lBZ0NmLGVBQXNDO1lBQXRDLCtEQUFzQztZQU01QyxlQUErRTtZQUEvRSw0R0FBK0U7WUFRN0QsZUFBbUI7WUFBbkIsd0NBQW1CO1lBd0JuRCxlQUFzQjtZQUF0QiwyQ0FBc0I7WUFJUixlQUE4QjtZQUE5QixtREFBOEI7OztpRkQ1RzlDLGVBQWU7Y0FMM0IsU0FBUzsyQkFDRSxZQUFZOzBVQWNOLEtBQUs7a0JBQXBCLEtBQUs7bUJBQUMsT0FBTztZQUVHLE1BQU07a0JBQXRCLEtBQUs7bUJBQUMsUUFBUTtZQUVTLGFBQWE7a0JBQXBDLEtBQUs7bUJBQUMsZUFBZTtZQUVBLFdBQVc7a0JBQWhDLEtBQUs7bUJBQUMsYUFBYTtZQUVFLFdBQVc7a0JBQWhDLEtBQUs7bUJBQUMsYUFBYTtZQUVELFFBQVE7a0JBQTFCLEtBQUs7bUJBQUMsVUFBVTtZQUVDLE9BQU87a0JBQXhCLEtBQUs7bUJBQUMsU0FBUzs7a0ZBdEJMLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FeHRyYXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsZXIsIE5hdkNvbnRyb2xsZXIsIFBvcG92ZXJDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XG5pbXBvcnQgeyBDbGFpbWFudE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NsYWltYW50L0NsYWltYW50TW9kZWwnO1xuaW1wb3J0IHsgTXlOb3RpZmljYXRpb25zUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL3BvcG92ZXJzL215LW5vdGlmaWNhdGlvbnMvbXktbm90aWZpY2F0aW9ucy5wYWdlJztcbmltcG9ydCB7IE15UHJvZmlsZVBhZ2UgfSBmcm9tICcuLi8uLi9wYWdlcy9wb3BvdmVycy9teS1wcm9maWxlL215LXByb2ZpbGUucGFnZSc7XG5pbXBvcnQgeyBDbGFpbWFudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jbGFpbWFudC9jbGFpbWFudC5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcbmltcG9ydCB7IEhlbHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaGVscC9oZWxwLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCYXNlUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL0Jhc2VQYWdlJztcbmltcG9ydCB7IEF1dG9Db21wbGV0ZVNlbGVjdEV2ZW50IH0gZnJvbSAncHJpbWVuZy9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgU2VhcmNoUXVlc3Rpb25uYWlyZURhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9RdWVzdGlvbm5haXJlRm9ybSc7XG5pbXBvcnQgeyBBdWRpdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdWRpdC9hdWRpdC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1ZGl0RG9jdW1lbnRFbXBsb3llclVzZXJNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9BdWRpdERvY3VtZW50RW1wbG95ZXJVc2VyTW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hlYWRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlckNvbXBvbmVudCBleHRlbmRzIEJhc2VQYWdlIGltcGxlbWVudHMgT25Jbml0ICB7XG5cbiAgaXRlbXM6IE1lbnVJdGVtW107XG5cbiAgc2VhcmNoVGV4dDtcblxuICByZXN1bHRzOiBDbGFpbWFudE1vZGVsW107XG5cbiAgY29udGV4dFJvb3Q6c3RyaW5nO1xuXG4gIEBJbnB1dCgndGl0bGUnKSB0aXRsZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgncGFnZUlkJykgcGFnZUlkOiBzdHJpbmc7XG5cbiAgQElucHV0KCdzZWNvbmRUb29sYmFyJykgc2Vjb25kVG9vbGJhcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgnZGlzcGxheUxvZ28nKSBkaXNwbGF5TG9nbzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgnc2hvd0hpc3RvcnknKSBzaG93SGlzdG9yeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgnYmFja1BhZ2UnKSBiYWNrUGFnZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgnY29udGV4dCcpIGNvbnRleHQ6IHN0cmluZztcblxuICBwdWJsaWMgc2hvd05vdGlmaWNhdGlvbkxvYWRlciA9IGZhbHNlO1xuXG4gIHB1YmxpYyBsZWdhY3lNZW51ID0gTGliQ29uc3RhbnRzLmxlZ2FjeU1lbnU7XG5cbiAgcHVibGljIGludGVyaW1Ib21lUGFnZSA9IExpYkNvbnN0YW50cy5pbnRlcmltSG9tZVBhZ2U7XG5cbiAgcHVibGljIHNob3dQcm9maWxlUG9wdXAgOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIHNob3dqb2JTZWFyY2hSZXN1bHRQb3B1cCA6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgc2hvd0xhbmd1YWdlT3B0aW9uID0gTGliQ29uc3RhbnRzLmVuYWJsZUxhbmd1YWdlQ2hhbmdlO1xuXG4gIGlzRW1wbG95ZXJMb2FkZWQgPSBmYWxzZTtcbiAgaXNRdWVzdGlvbm5haXJlRGF0YUxvYWRlZCA9IGZhbHNlO1xuXG5cbiAgc2VhcmNoUXVlc3Rpb25uYWlyZURhdGE6U2VhcmNoUXVlc3Rpb25uYWlyZURhdGFbXTtcbiAgc2VsZWN0ZWRRdWVzdGlvbm5haXJlRGF0YTogU2VhcmNoUXVlc3Rpb25uYWlyZURhdGFbXTtcbiAgYXVkaXREb2N1bWVudEVtcGxveWVyVXNlck1vZGVsOiBBdWRpdERvY3VtZW50RW1wbG95ZXJVc2VyTW9kZWw7XG5cblxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBscyA6IExvZ2luU2VydmljZSwgcHVibGljIHV0aWwgOiBVdGlsU2VydmljZSwgcHVibGljIHIgOiBSb3V0ZXIsIHB1YmxpYyBwb3B1cDogUG9wb3ZlckNvbnRyb2xsZXIsIFxuICAgICAgICAgICAgICBwdWJsaWMgY3MgOiBDbGFpbWFudFNlcnZpY2UsIHByaXZhdGUgbmF2IDogTmF2Q29udHJvbGxlciwgcHVibGljIG1vZGFsQ29udHJvbGxlcjogTW9kYWxDb250cm9sbGVyLFxuICAgICAgICAgICAgICBwdWJsaWMgbnMgOiBOb3RpZmljYXRpb25TZXJ2aWNlLCBwdWJsaWMgaHM6IEhlbHBTZXJ2aWNlLCBwdWJsaWMgdHJhbnNsYXRlU2VydmljZSA6IFRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgcXM6IEF1ZGl0U2VydmljZSkge1xuICAgICAgICAgICAgICAgIHN1cGVyKCk7XG4gICAgICAgICAgICAgICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy90aGlzLmxvYWROb3RpZmljYXRpb25Db3VudCgpO1xuICAgIHRoaXMuc2V0TWVudUl0ZW1zKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIikpO1xuICAgIGlmKHRoaXMubHMuaXNFbXBsb3llcigpKVxuICAgIHtcbiAgICAgICAgICB0aGlzLmxvYWRFbXBsb3llckRldGFpbHMoKVxuICAgIH1cbiAgICB0aGlzLmNvbnRleHRSb290ID0gdGhpcy5nZXRDb250ZXh0Um9vdCgpO1xuICB9XG4gIFxuICAvKkpvYiBTZWFyY2ggUmVzdWx0IEljb24gUG9wdXBcbiAgIHByZXNlbnRKb2JTZWFyY2hSZXN1bHRQb3B1cCgpIHtcbiAgICBpZih0aGlzLmxzLmlzQ2xhaW1hbnQoKSl7XG4gICAgICB0aGlzLnNob3dqb2JTZWFyY2hSZXN1bHRQb3B1cCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG4gICovXG4gIGdldENvbnRleHRSb290KCl7XG4gICAgbGV0IHBhcnRzID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnNwbGl0KCcvJyk7XG4gICAgbGV0IGNvbnRleHRSb290ID0gcGFydHMubGVuZ3RoID4gMSA/IHBhcnRzWzFdIDogJyc7XG4gICAgcmV0dXJuIGNvbnRleHRSb290O1xuICB9XG4gIHNldE1lbnVJdGVtcyhsYW5ndWFnZSA6IHN0cmluZyl7XG4gICAgdGhpcy5pdGVtcyA9IFt7XG4gICAgICBsYWJlbCA6ICdDaG9vc2UgbGFuZ3VhZ2UnLFxuICAgICAgaXRlbXM6IFt7XG4gICAgICAgIGxhYmVsOiAnRW5nbGlzaCcsXG4gICAgICAgIGljb24gOiB0aGlzLmdldEljb24obGFuZ3VhZ2UsJ2VuJyksXG4gICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0TGFuZ3VhZ2UoJ2VuJywgJ0VuZ2xpc2gnKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICdFc3Bh77+9b2wnLFxuICAgICAgICBpY29uIDogdGhpcy5nZXRJY29uKGxhbmd1YWdlLCdlcycpLFxuICAgICAgICBjb21tYW5kOiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldExhbmd1YWdlKCdlcycsICdlc3Bh77+9b2wnKTtcbiAgICAgICAgfVxuICAgICAgfV1cbiAgICB9XTtcbiAgfVxuXG4gIGdldEljb24oc2VsZWN0ZWRMYW5nIDogc3RyaW5nLCBsYW5ndWFnZSA6IHN0cmluZyl7XG4gICAgaWYobGFuZ3VhZ2UgPT0gc2VsZWN0ZWRMYW5nKXtcbiAgICAgIHJldHVybiBcInBpIHBpLWZ3IHBpLWNoZWNrXCI7XG4gICAgfWVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2UgOiBzdHJpbmcsIG5hbWUgOiBzdHJpbmcpe1xuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UobGFuZ3VhZ2UpO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdsYW5ndWFnZScsIGxhbmd1YWdlKTtcbiAgICB0aGlzLnV0aWwudG9hc3QoJ0xhbmd1YWdlIHByZWZlcmVuY2UgY2hhbmdlZCB0byAnICsgbmFtZSk7XG4gICAgdGhpcy5zZXRNZW51SXRlbXMobGFuZ3VhZ2UpO1xuICB9XG5cbiAgYXN5bmMgcHJlc2VudE15UHJvZmlsZVBvcG92ZXIoZXZlbnQpIHtcblxuICAgIGlmKHRoaXMubHMuaXNDbGFpbWFudCgpICYmICAodGhpcy5sZWdhY3lNZW51ID09ICdmYWxzZScgfHwgdGhpcy51dGlsLmlzU3RhdGUoJ01FJykgfHwgKHRoaXMudXRpbC5pc1N0YXRlKCdNUycpICYmIExpYkNvbnN0YW50cy5pbnRlcmltSG9tZVBhZ2UgPT0gJ3RydWUnKSkpe1xuICAgICAgdGhpcy5zaG93UHJvZmlsZVBvcHVwID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwb3BvdmVyID0gYXdhaXQgdGhpcy5wb3B1cC5jcmVhdGUoe1xuICAgICAgY29tcG9uZW50OiBNeVByb2ZpbGVQYWdlLFxuICAgICAgdHJhbnNsdWNlbnQ6IHRydWUsXG4gICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgICBldmVudDogZXZlbnQsXG4gICAgICBjc3NDbGFzczogJ2hlYWRlci1wb3BvdmVyJ1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGF3YWl0IHBvcG92ZXIucHJlc2VudCgpO1xuICB9XG5cbiAgYXN5bmMgcHJlc2VudE15Tm90aWZpY2F0aW9uUG9wb3ZlcihldmVudCkge1xuICAgIGNvbnN0IHBvcG92ZXIgPSBhd2FpdCB0aGlzLnBvcHVwLmNyZWF0ZSh7XG4gICAgICBjb21wb25lbnQ6IE15Tm90aWZpY2F0aW9uc1BhZ2UsXG4gICAgICB0cmFuc2x1Y2VudDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wRGlzbWlzczogdHJ1ZSxcbiAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgIGNzc0NsYXNzOiAnaGVhZGVyLXBvcG92ZXInXG4gICAgfSk7XG5cbiAgICBwb3BvdmVyLm9uRGlkRGlzbWlzcygpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5ucy51cGRhdGVSZWFkRmxhZygpO1xuICAgIH0pXG5cbiAgICByZXR1cm4gYXdhaXQgcG9wb3Zlci5wcmVzZW50KCk7XG4gIH1cblxuICBsb2dvdXQoKXtcbiAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoJy9sYW5kaW5nJyk7XG4gICAgdGhpcy5scy5sb2dvdXQoKTtcbiAgfVxuXG4gIG9wZW5XZWVrbGllcygpe1xuICAgIGlmKHRoaXMubGVnYWN5TWVudSA9PSAndHJ1ZScgJiYgdGhpcy5pc01TKCkgJiYgdGhpcy5pbnRlcmltSG9tZVBhZ2UgPT0gJ2ZhbHNlJyl7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdjcCcsICd2Mi93ZWVrbGllcycpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlblBhZ2UoJ2NwJywgJ3YzL3dlZWtsaWVzJylcbiAgICB9XG4gIH1cblxuICBvbkNsaWNrRGlzcGxheUxvZ28oKVxuICB7XG4gICAgaWYodGhpcy5jb250ZXh0PT0nYXVkaXQnKXtcbiBcdCAgbGV0IHVzZXJNb2RlbCA9IHRoaXMubHMuZ2V0VXNlcigpO1xuICAgIHZhciB0ZW1wVmFsID0gSlNPTi5zdHJpbmdpZnkoeyBwYXJhbTE6IFwidGF4QXVkaXRcIn0pO1xuICAgIHZhciBlbmNWYWwgPSBidG9hKHRlbXBWYWwpO1xuICAgIHZhciBkYXRlID0gbmV3IERhdGUoKTtcbiAgICBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgKyA2MDAwMCk7XG4gICAgY29uc3QgZG9tYWluID0gTGliQ29uc3RhbnRzLnNzb0RvbWFpbjtcbiAgICB2YXIgZXhwaXJlcyA9IFwiZXhwaXJlcz1cIiArIGRhdGUudG9VVENTdHJpbmcoKTtcbiAgICBkb2N1bWVudC5jb29raWUgPSBcInBhckFwVG9NPVwiICsgZW5jVmFsICsgXCI7cGF0aD0vO2V4cGlyZXM9XCIgKyBleHBpcmVzICsgXCI7ZG9tYWluPVwiICsgZG9tYWluICsgXCI7U2FtZVNpdGU9TGF4O1wiO1xuICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy50YXhVcmx9L2ZhY2VzL3ZpcnR1YWwvY29udGV4dHN3aXRjaC54aHRtbD9hPSR7dXNlck1vZGVsLmFjY2Vzc190b2tlbn0mdj0yMjk5JlRBWEFVRElUX1BPUlRBTD10cnVlYCwgJ19zZWxmJyk7XG4gICAgfVxuICB9XG5cbiAgIG9wZW5BdWRpdERhc2hib2FyZCgpe1xuICAgIGlmKHRoaXMuY29udGV4dD09J2F1ZGl0Jyl7XG4gICAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5scy5nZXRVc2VyKCk7XG4gICAgICB2YXIgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHsgcGFyYW0xOiBcInRheEF1ZGl0XCJ9KTtcbiAgICAgIHZhciBlbmNWYWwgPSBidG9hKHRlbXBWYWwpO1xuICAgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpICsgNjAwMDApO1xuICAgICAgY29uc3QgZG9tYWluID0gXCIuZG9sLmN0LmdvdlwiXG4gICAgICB2YXIgZXhwaXJlcyA9IFwiZXhwaXJlcz1cIiArIGRhdGUudG9VVENTdHJpbmcoKTtcbiAgICAgIGRvY3VtZW50LmNvb2tpZSA9IFwicGFyQXBUb009XCIgKyBlbmNWYWwgKyBcIjtwYXRoPS87ZXhwaXJlcz1cIiArIGV4cGlyZXMgKyBcIjtkb21haW49XCIgKyBkb21haW4gKyBcIjtTYW1lU2l0ZT1MYXg7XCI7XG4gICAgdmFyIGNvb2tpZSA9IFwicGFyQXBUb009XCIgKyBlbmNWYWwgKyBcIjtwYXRoPS9cIiArIFwiO2RvbWFpbj0uZG9sLmN0LmdvdlwiICsgXCI7ZXhwaXJlcz1cIiArIGV4cGlyZXMgKyBcIjtcIjtcbiAgICB2YXIgaXNIdHRwcyA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCA9PT0gJ2h0dHBzOic7XG4gICAgICAgIGlmIChpc0h0dHBzKSB7XG4gICAgICAgICAgICBjb29raWUgKz0gXCJTYW1lU2l0ZT1Ob25lOyBTZWN1cmVcIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvb2tpZSArPSBcIlNhbWVTaXRlPU5vbmVcIjtcbiAgICAgICAgfSBcbiAgICAgICAgZG9jdW1lbnQuY29va2llID0gY29va2llO1xuICAgICAgd2luZG93Lm9wZW4oYCR7TGliQ29uc3RhbnRzLnRheFVybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JlRBWEFVRElUX1BPUlRBTD10cnVlYCwgJ19zZWxmJyk7XG4gICAgfVxuICB9XG5cbiAgb3BlbkF1ZGl0b3JXb3JrTGlzdCgpe1xuICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnL2F1ZGl0b3Itd29yay1saXN0Jyk7XG4gIH1cblxuICAgb3BlblF1ZXN0aW9ubmFpcmUoKXtcbiAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpKXtcbiAgICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnL2F1ZGl0b3ItcXVlc3Rpb25uYWlyZScpO1xuICAgIH0gZWxzZSBpZih0aGlzLmxzLmlzRW1wbG95ZXIoKSl7XG4gICAgICBpZih0aGlzLnNlYXJjaFF1ZXN0aW9ubmFpcmVEYXRhICYmIHRoaXMuc2VhcmNoUXVlc3Rpb25uYWlyZURhdGEubGVuZ3RoID4gMClcbiAgICAgIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFF1ZXN0aW9ubmFpcmVEYXRhID0gdGhpcy5zZWFyY2hRdWVzdGlvbm5haXJlRGF0YTtcbiAgICAgICAgdGhpcy5xcy5zZXRRdWVzdGlvbm5haXJlRGF0YSh0aGlzLnNlbGVjdGVkUXVlc3Rpb25uYWlyZURhdGEpO1xuICAgICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCAnL2F1ZGl0b3ItcXVlc3Rpb25uYWlyZS1mb3JtJywge1xuICAgICAgICBzdGF0ZTogeyBhdWRpdDogdGhpcy5zZWFyY2hRdWVzdGlvbm5haXJlRGF0YSB9XG4gICAgICB9KTsvL0FkZCB0aGUgYWN0dWFsIHVybCBmb3IgZW1wbG95ZXIgcXVlc3Rpb25uYWlyZVxuICAgICAgfVxuICAgICAgZWxzZXtcbiAgICAgICAgdGhpcy51dGlsLnNob3dFcnJvcihcIk5vIGFjdGl2ZSBhdWRpdC4gVGhpcyBpcyBub3QgcmVxdWlyZWQgYXQgdGhpcyBwb2ludC5cIilcbiAgICAgIH1cbiAgICAgIFxuICAgIH1cbiAgfVxuICBvcGVuVXBsb2FkRG9jdW1lbnRzKCl7XG5cbiAgICBpZih0aGlzLmF1ZGl0RG9jdW1lbnRFbXBsb3llclVzZXJNb2RlbCAmJiB0aGlzLmF1ZGl0RG9jdW1lbnRFbXBsb3llclVzZXJNb2RlbC5hdWRpdElkICE9IG51bGwpXG4gICAge1xuICAgICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCAnL2VtcGxveWVyLWRvY3VtZW50cycsIHtcbiAgICAgICAgc3RhdGU6IHsgYXVkaXQ6IHRoaXMuYXVkaXREb2N1bWVudEVtcGxveWVyVXNlck1vZGVsIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNle1xuICAgICAgdGhpcy51dGlsLnNob3dFcnJvcihcIk5vIGFjdGl2ZSBhdWRpdC4gVGhpcyBpcyBub3QgcmVxdWlyZWQgYXQgdGhpcyBwb2ludC5cIilcbiAgICB9XG4gIH1cblxuICBvcGVuRW1wbG95ZXJEYXNoYm9hcmQoKVxuICB7XG4gICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCAnL2VtcGxveWVyLWRhc2hib2FyZCcsIHtcbiAgICAgIH0pO1xuICB9XG5cbiAgb3BlblN1cGVydmlzb3JNeVEoKXtcbiAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0QXVkaXRvcigpIHx8IHRoaXMubHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpe1xuICAgICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCcvbXlxJyk7XG4gICAgfVxuICB9XG5cbiAgb3BlblN1cGVydmlzb3JJbnF1aXJ5KCl7XG4gICAgIGlmKHRoaXMuY29udGV4dD09J2F1ZGl0Jyl7XG4gICAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0RGlyZWN0b3IoKXx8dGhpcy5scy5oYXNSb2xlKCd0YXhhdWRpdGFnZW5jeXN0YWZmJykpe1xuICAgICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9pbnF1aXJ5Jyk7XG4gICAgICB9IGVsc2UgaWYodGhpcy5scy5pc1RheEF1ZGl0QXVkaXRvcigpKXtcbiAgICAgICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCcvYXVkaXRvci1pbnF1aXJ5Jyk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCcvaW5xdWlyeScpO1xuICB9XG5cbiAgb3BlblRQU0lucXVpcnkoKXtcbiAgICBpZih0aGlzLmxzLmhhc1JvbGUoJ3Rwc3NwZWNpYWxpc3QnKSl7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy90cHMtdW5pdmVyc2UnKTtcbiAgICB9XG4gIH1cblxuICBvcGVuVFBBUXVlc3Rpb25uYWlyZSgpe1xuICAgIGlmKHRoaXMubHMuaXNUcGEoKSl7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy90cGEtcXVlc3Rpb25uYWlyZScpXG4gICAgfVxuICB9XG5cbiAgb3BlblN1cGVydmlzb3JSZWZlcnJhbHMoKXtcbiAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0RGlyZWN0b3IoKSl7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9yZWZlcnJhbHMnKTtcbiAgICB9IGVsc2UgaWYodGhpcy5scy5pc1RheEF1ZGl0QXVkaXRvcigpIHx8IHRoaXMubHMuaXNUcGEoKSB8fCB0aGlzLmxzLmhhc1JvbGUoJ3RheGF1ZGl0YWdlbmN5c3RhZmYnKSl7Ly9BZ2VuY3kgRW1wbG95ZWUgRGVmYXVsdCAtIGNoZWNrIHJvbGUgd2l0aCBjaWp1XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9uZXctcmVmZXJyYWwnKTtcbiAgICB9XG4gIH1cblxuICBvcGVuU3VwZXJ2aXNvckNvbmZpZygpe1xuICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnL2NvbmZpZycpO1xuICB9XG5cbiAgb3BlblN1cGVydmlzb3JBbmFseXRpY3MoKXtcbiAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0RGlyZWN0b3IoKSl7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9hbmFseXRpY3MnKTtcbiAgICB9XG4gICAgaWYodGhpcy5scy5pc1RheEF1ZGl0QXVkaXRvcigpICYmICEodGhpcy5scy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IHRoaXMubHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpKXsgXG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9hdWRpdG9yLWFuYWx5dGljcycpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5TdXBlcnZpc29yQXNzaWduKCl7XG4gICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCcvYXNzaWduJyk7XG4gIH1cblxuICBvcGVuU3VwZXJ2aXNvclRlYW0oKXtcbiAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy90ZWFtJyk7XG4gIH1cblxuXG4gIGxvYWRFbXBsb3llckRldGFpbHMoKVxuICB7XG4gICAgdGhpcy5pc0VtcGxveWVyTG9hZGVkID0gZmFsc2U7XG4gICAgdGhpcy5pc1F1ZXN0aW9ubmFpcmVEYXRhTG9hZGVkID0gZmFsc2U7XG4gICAgbGV0IHVzZXJNb2RlbCA9IHRoaXMubHMuZ2V0VXNlcigpXG5cbiAgICB0aGlzLnFzLnNlYXJjaFF1ZXN0aW9ubmFpcmUobnVsbCwgbnVsbCwgbnVsbCx1c2VyTW9kZWwudXNlcm5hbWUpXG4gICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICBpZiAocmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5zZWFyY2hRdWVzdGlvbm5haXJlRGF0YSA9IHJlcztcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNRdWVzdGlvbm5haXJlRGF0YUxvYWRlZCA9IHRydWVcbiAgICB9LCAoZXJyKSA9PiB7XG5cbiAgICB9KTtcblxuICAgIHRoaXMucXMuZmluZEVtcGxveWVyRGF0YVdpdGhVc2VySUQodXNlck1vZGVsLnVzZXJuYW1lKVxuICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgaWYgKHJlcylcbiAgICAgIHtcbiAgICAgICAgdGhpcy5hdWRpdERvY3VtZW50RW1wbG95ZXJVc2VyTW9kZWwgPSByZXM7XG4gICAgICB9XG4gICAgICB0aGlzLmlzRW1wbG95ZXJMb2FkZWQgPSB0cnVlOyBcbiAgICB9LCAoZXJyKSA9PiB7XG4gICAgIFxuICAgIH0pXG5cbiAgfVxuICBvcGVuSG9tZSgpe1xuICAgIC8vdGhpcy5uYXYubmF2aWdhdGVSb290KFwiL3dlbGNvbWVcIik7XG4gXHRpZih0aGlzLmNvbnRleHQ9PSdhdWRpdCcpe1xuICAgICAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5scy5nZXRVc2VyKClcbiAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKTtcbiAgICAgICAgd2luZG93Lm9wZW4oYCR7TGliQ29uc3RhbnRzLnRheFVybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5YCwgJ19zZWxmJyk7XG4gICAgfVxuICAgIGlmKHRoaXMubHMuaXNDbGFpbWFudCgpKXtcbiAgICAgIHRoaXMudXRpbC5vcGVuUGFnZUJ5Q29udGV4dFJvb3QodGhpcy51dGlsLmdldENsYWltYW50QXBwQ29udGV4dFJvb3QoKSwgXCJ3ZWxjb21lXCIsIHRoaXMubmF2KTsgXG4gICAgfSBlbHNlIGlmKHRoaXMubHMuaXNDc3IoKSl7XG4gICAgICB0aGlzLnV0aWwub3BlblBhZ2VCeUNvbnRleHRSb290KHRoaXMudXRpbC5nZXRTZWN1cml0eUFwcENvbnRleHRSb290KCksXCJ3ZWxjb21lXCIsIHRoaXMubmF2KTsgXG4gICAgfSBlbHNlIGlmKHRoaXMubHMuaXNFbXBsb3llcigpKXtcbiAgICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnLycpOy8vQWRkIHRoZSBhY3R1YWwgdXJsIGZvciBlbXBsb3llciBxdWVzdGlvbm5haXJlXG4gICAgICAvL3RoaXMubG9hZEVtcGxveWVyRGV0YWlscygpO1xuICAgIH0gXG4gICAgZWxzZSB7XG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoXCIvd2VsY29tZVwiKTtcbiAgICB9XG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgfVxuXG4gIHNlYXJjaChldmVudCkge1xuICAgIGxldCBkb1NlYXJjaCA9IGZhbHNlO1xuICAgIGxldCBjbGFpbWFudFNlYXJjaCA9IG5ldyBDbGFpbWFudE1vZGVsKCk7XG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnkgKyAnJztcbiAgICBpZihxdWVyeS5pbmNsdWRlcyhcIiBcIikpe1xuICAgICAgbGV0IGZOYW1lID0gcXVlcnkuc3BsaXQoXCIgXCIpWzBdO1xuICAgICAgbGV0IGxOYW1lID0gcXVlcnkuc3BsaXQoXCIgXCIpWzFdO1xuICAgICAgY2xhaW1hbnRTZWFyY2guZmlyc3ROYW1lID0gZk5hbWU7XG4gICAgICBjbGFpbWFudFNlYXJjaC5sYXN0TmFtZSA9IGxOYW1lO1xuICAgICAgZG9TZWFyY2ggPSB0cnVlO1xuICAgIH1cblxuICAgIGlmKHF1ZXJ5Lmxlbmd0aCA9PSA5ICYmIHRoaXMuaXNOdW1iZXIocXVlcnkpICYmICFkb1NlYXJjaCl7XG4gICAgICBjbGFpbWFudFNlYXJjaC5zc24gPSBxdWVyeTtcbiAgICAgIGRvU2VhcmNoID0gdHJ1ZTtcbiAgICB9ZWxzZSBpZighdGhpcy5pc051bWJlcihxdWVyeSkgJiYgIWRvU2VhcmNoKXtcbiAgICAgIGNsYWltYW50U2VhcmNoLnVzZXJJZCA9IHF1ZXJ5O1xuICAgICAgZG9TZWFyY2ggPSB0cnVlO1xuICAgIH1cbiAgICBcbiAgICBpZihkb1NlYXJjaCl7XG4gICAgICB0aGlzLmNzLnNlYXJjaChjbGFpbWFudFNlYXJjaCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMucmVzdWx0cyA9IGRhdGE7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzTnVtYmVyKG51bSl7XG4gICAgcmV0dXJuICFpc05hTihudW0pO1xuICB9XG5cbiAgb25TZWxlY3RBY3Rpb24oZXZlbnQgOiBBdXRvQ29tcGxldGVTZWxlY3RFdmVudCl7XG4gICAgdGhpcy5yZXN1bHRzID0gbnVsbDtcbiAgICB0aGlzLnNlYXJjaFRleHQgPSBudWxsO1xuICAgIHRoaXMuY3MuZ2V0Q2xhaW1hbnQoKS5uZXh0KGV2ZW50LnZhbHVlKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudXRpbC5vcGVuUGFnZUJ5Q29udGV4dFJvb3QodGhpcy51dGlsLmdldFNlY3VyaXR5QXBwQ29udGV4dFJvb3QoKSxcInJlc2V0LXBhc3N3b3JkXCIsIHRoaXMubmF2KTtcbiAgICAgIC8vdGhpcy5uYXYubmF2aWdhdGVGb3J3YXJkKCcvcmVzZXQtcGFzc3dvcmQnKTtcbiAgICB9LCA1MDApXG4gICAgXG4gIH1cblxuICBvcGVuQmVuZWZpdHNBcHAoKXtcbiAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5scy5nZXRVc2VyKClcbiAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpO1xuICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy5iZW5lZml0c1VybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5YCwgJ19zZWxmJyk7XG4gIH1cblxuICBvcGVuUGFnZShjb250ZXh0Um9vdCwgdXJpLCBleHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzKXtcbiAgICBsZXQgY3VycmVudENvbnRleHRSb290ID0gdGhpcy51dGlsLmdldENvbnRleHRSb290KCk7XG4gICAgbGV0IHRhcmdldCA9IGAvJHtjb250ZXh0Um9vdH1gO1xuXG4gICAgaWYoY3VycmVudENvbnRleHRSb290ID09IHRhcmdldCl7XG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoYC8ke3VyaX1gLCBleHRyYXMpO1xuICAgIH1lbHNle1xuICAgICAgdGhpcy51dGlsLm9wZW5QYWdlQnlDb250ZXh0Um9vdCh0YXJnZXQsIHVyaSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q2xhc3MobmFtZSl7XG4gICAgbGV0IGN1cnJlbnRSb3V0ZSA9IHRoaXMuci51cmwucmVwbGFjZSgnLycsICcnKTtcbiAgICBjb25zb2xlLmxvZyhjdXJyZW50Um91dGUsIG5hbWUsIGN1cnJlbnRSb3V0ZSA9PSBuYW1lKTtcbiAgICByZXR1cm4gY3VycmVudFJvdXRlID09IG5hbWUgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJztcbiAgfVxuXG4gIG9wZW5Db250ZXh0SGVscCgpe1xuXG4gIH1cblxuICBhc3luYyBjaGFuZ2VMYW5ndWFnZShldmVudCkge1xuICAgIFxuICB9XG59XG4iLCI8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiZGV0ZXJtaW5hdGVcIiBbdmFsdWVdPVwidXRpbC5sb2FkZXIudmFsdWUkIHwgYXN5bmNcIiAqbmdJZj1cIih1dGlsLmxvYWRlci52YWx1ZSQgfCBhc3luYykgIT0gMFwiPlxyXG48L21hdC1wcm9ncmVzcy1iYXI+XHJcbjxpb24tdG9vbGJhcj5cclxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtNXB4O1wiPlxyXG4gICAgICAgIDxpb24tbWVudS1idXR0b24gYXV0b0hpZGU9XCJmYWxzZVwiIHBUb29sdGlwPVwiTWVudVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwibHMuaXNMb2dnZWRJbigpICYmICFscy5pc0VtcGxveWVyKClcIiBbbmdDbGFzc109XCJsZWdhY3lNZW51ID09ICdmYWxzZScgJiYgbHMuaXNDbGFpbWFudCgpID8gJ2hpZGUteGwgaGlkZS1sZycgOiAnJ1wiPjwvaW9uLW1lbnUtYnV0dG9uPlxyXG4gICAgPC9pb24tYnV0dG9ucz5cclxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIiBbbmdDbGFzc109XCJkaXNwbGF5TG9nbyA/ICdoZWFkZXJfYnV0dG9uX3doaXRlJyA6ICdoZWFkZXJfYnV0dG9uIGhpZGUteHMgaGlkZS1tZCdcIiAoY2xpY2spPVwib25DbGlja0Rpc3BsYXlMb2dvKClcIj5cclxuICAgICAgICA8aW1nIGFsdD1cImxvZ29cIiBwVG9vbHRpcD1cInt7J1JlRW1wbG95Q1QgTG9nbycgfCB0cmFuc2xhdGV9fVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXHJcbiAgICAgICAgIHNyYz1cImFzc2V0cy9pY29uL1JlRW1wbG95e3t1dGlsLmdldFN0YXRlKCl9fS5zdmdcIiBbbmdDbGFzc109XCJkaXNwbGF5TG9nbyA/ICdoZWFkZXJfbG9nbycgOiAnaGVhZGVyX2xvZ28gaGlkZS14cyBoaWRlLW1kJ1wiLz5cclxuICAgIDwvaW9uLWJ1dHRvbnM+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCIgKm5nSWY9XCJscy5pc0xvZ2dlZEluKClcIj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwib3BlbkhvbWUoKVwiIHBUb29sdGlwPVwiSG9tZVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3dlbGNvbWUnKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJ0aGlzLmNvbnRleHQhPSdhdWRpdCcgfHwgbHMuaXNFbXBsb3llcigpXCI+SG9tZTwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5GaWxlV2Vla2xpZXNcIiBwVG9vbHRpcD1cInt7J2hlYWRlci53ZWVrbHkudG9vbHRpcCcgfCB0cmFuc2xhdGV9fVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3dlZWtsaWVzJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwibHMuaXNDbGFpbWFudCgpICYmIGxlZ2FjeU1lbnUgPT0gJ2ZhbHNlJ1wiIChjbGljayk9XCJvcGVuV2Vla2xpZXMoKVwiIGNsYXNzPVwiaGlkZS14cyBoaWRlLW1kXCI+e3tsZWdhY3lNZW51ID09ICd0cnVlJyA/ICdXZWVrbHknIDogJ1dlZWtseSd9fTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBpZD1cImJ0bkZpbGVXZWVrbGllc1wiIHBUb29sdGlwPVwie3snaGVhZGVyLndlZWtseS50b29sdGlwJyB8IHRyYW5zbGF0ZX19XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnd2Vla2xpZXMnKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJscy5pc0NsYWltYW50KCkgJiYgbGVnYWN5TWVudSA9PSAndHJ1ZScgJiYgIXV0aWwuaXNTdGF0ZSgnTUUnKVwiIChjbGljayk9XCJvcGVuV2Vla2xpZXMoKVwiPnt7bGVnYWN5TWVudSA9PSAndHJ1ZScgPyAnV2Vla2x5JyA6ICdXZWVrbHknfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5GaWxlV2Vla2xpZXNcIiBwVG9vbHRpcD1cInt7J2hlYWRlci53ZWVrbHkudG9vbHRpcCcgfCB0cmFuc2xhdGV9fVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3dlZWtsaWVzJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwibHMuaXNDbGFpbWFudCgpICYmIGxlZ2FjeU1lbnUgPT0gJ3RydWUnICYmIHV0aWwuaXNTdGF0ZSgnTUUnKVwiIChjbGljayk9XCJvcGVuV2Vla2xpZXMoKVwiPnt7bGVnYWN5TWVudSA9PSAndHJ1ZScgPyAnV2Vla2x5IENsYWltJyA6ICdXZWVrbHknfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgXHJcbiAgICAgICBcclxuICAgICAgICA8aW9uLWJ1dHRvbiBwVG9vbHRpcD1cIkhpc3RvcnlcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpID09ICdoaXN0b3J5JyA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJscy5pc0NsYWltYW50KCkgJiYgbGVnYWN5TWVudSA9PSAnZmFsc2UnICYmIGludGVyaW1Ib21lUGFnZSA9PSAnZmFsc2UnXCIgKGNsaWNrKT1cIm9wZW5QYWdlKCdjcCcsICdoaXN0b3J5JylcIiBjbGFzcz1cImhpZGUteHMgaGlkZS1tZFwiPkhpc3Rvcnk8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRFbXBsb3llckRhc2hib2FyZFwiIHBUb29sdGlwPVwiRW1wbG95ZXJEYXNoYm9hcmRcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdlbXBsb3llci1kYXNoYm9hcmQnKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJscy5pc0VtcGxveWVyKClcIiAoY2xpY2spPVwib3BlbkVtcGxveWVyRGFzaGJvYXJkKClcIj5BdWRpdCBEYXNoYm9hcmQ8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdE15UVwiIHBUb29sdGlwPVwiTXlRXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnbXlxJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IGxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpXCIgKGNsaWNrKT1cIm9wZW5TdXBlcnZpc29yTXlRKClcIj5NeVE8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdERhc2hib2FyZFwiIHBUb29sdGlwPVwiRGFzaGJvYXJkXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnZGFzaGJvYXJkJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpXCIgKGNsaWNrKT1cIm9wZW5BdWRpdERhc2hib2FyZCgpXCI+RGFzaGJvYXJkPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRXb3JrTGlzdFwiIHBUb29sdGlwPVwiV29ya0xpc3RcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdhdWRpdG9yLXdvcmstbGlzdCcpID8gJ2hlYWRlci1idXR0b24nIDogJydcIiAqbmdJZj1cInRoaXMuY29udGV4dD09J2F1ZGl0JyAmJiAobHMuaXNUYXhBdWRpdEF1ZGl0b3IoKSB8fCBscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpKVwiIChjbGljayk9XCJvcGVuQXVkaXRvcldvcmtMaXN0KClcIj5Xb3JrIExpc3Q8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdElucXVpcnlcIiBwVG9vbHRpcD1cIklucXVpcnlcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdpbnF1aXJ5JykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IGxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpIHx8ICBscy5oYXNSb2xlKCd0YXhhdWRpdGFnZW5jeXN0YWZmJylcIiAoY2xpY2spPVwib3BlblN1cGVydmlzb3JJbnF1aXJ5KClcIj5JbnF1aXJ5PC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRVcGxvYWREb2N1bWVudHNcIiBwVG9vbHRpcD1cIlVwbG9hZCBEb2N1bWVudHNcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCd1cGxvYWQtZG9jdW1lbnRzJykgfHwgci51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnZW1wbG95ZXItZG9jdW1lbnRzJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIGxzLmlzRW1wbG95ZXIoKVwiIChjbGljayk9XCJvcGVuVXBsb2FkRG9jdW1lbnRzKClcIiBbZGlzYWJsZWRdPVwiIWlzRW1wbG95ZXJMb2FkZWRcIj5VcGxvYWQgRG9jdW1lbnRzPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRRdWVzdGlvbm5haXJlXCIgcFRvb2x0aXA9XCJRdWVzdGlvbm5haXJlXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnYXVkaXRvci1xdWVzdGlvbm5haXJlJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0QXVkaXRvcigpIHx8IGxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkpXCIgKGNsaWNrKT1cIm9wZW5RdWVzdGlvbm5haXJlKClcIj5RdWVzdGlvbm5haXJlPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRRdWVzdGlvbm5haXJlXCIgcFRvb2x0aXA9XCJRdWVzdGlvbm5haXJlXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnYXVkaXRvci1xdWVzdGlvbm5haXJlJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc0VtcGxveWVyKCkpXCIgKGNsaWNrKT1cIm9wZW5RdWVzdGlvbm5haXJlKClcIiBbZGlzYWJsZWRdPVwiIWlzUXVlc3Rpb25uYWlyZURhdGFMb2FkZWRcIj5RdWVzdGlvbm5haXJlPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRSZWZlcnJhbHNcIiBwVG9vbHRpcD1cIlJlZmVycmFsc1wiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3JlZmVycmFsJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IGxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpIHx8ICBscy5oYXNSb2xlKCd0YXhhdWRpdGFnZW5jeXN0YWZmJylcIiAoY2xpY2spPVwib3BlblN1cGVydmlzb3JSZWZlcnJhbHMoKVwiPlJlZmVycmFsczwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBpZD1cImJ0bkF1ZGl0QXNzaWduXCIgcFRvb2x0aXA9XCJBc3NpZ25cIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdhc3NpZ24nKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJ0aGlzLmNvbnRleHQ9PSdhdWRpdCcgJiYgbHMuaXNUYXhBdWRpdFN1cGVydmlzb3IoKVwiIChjbGljayk9XCJvcGVuU3VwZXJ2aXNvckFzc2lnbigpXCI+QXNzaWduPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRUZWFtXCIgcFRvb2x0aXA9XCJUZWFtXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygndGVhbScpID8gJ2hlYWRlci1idXR0b24nIDogJydcIiAqbmdJZj1cInRoaXMuY29udGV4dD09J2F1ZGl0JyAmJiBscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpXCIgKGNsaWNrKT1cIm9wZW5TdXBlcnZpc29yVGVhbSgpXCI+VGVhbTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBpZD1cImJ0bkF1ZGl0Q29uZmlnXCIgcFRvb2x0aXA9XCJDb25maWdcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdjb25maWcnKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJ0aGlzLmNvbnRleHQ9PSdhdWRpdCcgJiYgKGxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpXCIgKGNsaWNrKT1cIm9wZW5TdXBlcnZpc29yQ29uZmlnKClcIj5Db25maWc8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdEFuYWx5dGljc1wiIHBUb29sdGlwPVwiQW5hbHl0aWNzXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnYW5hbHl0aWNzJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IGxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpXCIgKGNsaWNrKT1cIm9wZW5TdXBlcnZpc29yQW5hbHl0aWNzKClcIj5BbmFseXRpY3M8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdFRQU0lucXVpcnlcIiBwVG9vbHRpcD1cIklucXVpcnlcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCd0cHMtdW5pdmVyc2UnKSB8fCByLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCd0cHMtaW5xdWlyeScpID8gJ2hlYWRlci1idXR0b24nIDogJydcIiAqbmdJZj1cInRoaXMuY29udGV4dD09J2F1ZGl0JyAmJiB0aGlzLmxzLmhhc1JvbGUoJ3Rwc3NwZWNpYWxpc3QnKSAmJiAoICFscy5pc1RheEF1ZGl0QXVkaXRvcigpICYmICFscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpKVwiIChjbGljayk9XCJvcGVuVFBTSW5xdWlyeSgpXCI+SW5xdWlyeTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBpZD1cImJ0bkF1ZGl0VFBBUXVlc3Rpb25uYWlyZVwiIHBUb29sdGlwPVwiUXVlc3Rpb25uYWlyZVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3RwYS1xdWVzdGlvbm5haXJlJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIHRoaXMubHMuaXNUcGEoKSAmJiAhbHMuaXNUYXhBdWRpdEF1ZGl0b3IoKSAmJiAhbHMuaXNUYXhBdWRpdFN1cGVydmlzb3IoKVwiIChjbGljayk9XCJvcGVuVFBBUXVlc3Rpb25uYWlyZSgpXCI+UXVlc3Rpb25uYWlyZTwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICA8L2lvbi1idXR0b25zPlxyXG5cclxuICAgIFxyXG4gICAgPGRpdiBjbGFzcz1cInRvb2xiYXItY29udGVudCBoaWRlLXhzXCIgKm5nSWY9XCJscy5pc0xvZ2dlZEluKCkgJiYgbHMuaXNDc3IoKSAmJiB0aGlzLmNvbnRleHQgIT0nYXVkaXQnICYmIGNvbnRleHRSb290ID09PSdzcydcIj5cclxuICAgICAgICA8cC1hdXRvQ29tcGxldGUgYXBwZW5kVG89XCJib2R5XCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCIgW3N1Z2dlc3Rpb25zXT1cInJlc3VsdHNcIlxyXG4gICAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwic2VhcmNoKCRldmVudClcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBDbGFpbWFudHNcIiAob25TZWxlY3QpPVwib25TZWxlY3RBY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIGVtcHR5TWVzc2FnZT1cIk5vIFJlc3VsdHMgRm91bmQuXCIgc2l6ZT1cIjI1XCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdXNlciBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLXJvdyBjbGFzcz1cIi5pb24td3JhcFwiID5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplLWF1dG8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tdGV4dD57e3VzZXIuZmlyc3ROYW1lIHwgcHJvcGVyQ2FzZX19IHt7dXNlci5sYXN0TmFtZSB8IHByb3BlckNhc2V9fTwvaW9uLXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemUtYXV0bz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi10ZXh0Pnt7dXNlci51c2VySWR9fTwvaW9uLXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemUtYXV0bz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi10ZXh0Pnt7dXRpbC5tYXNrU3NuKHVzZXIuc3NuKX19PC9pb24tdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9wLWF1dG9Db21wbGV0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIiAqbmdJZj1cImxzLmlzTG9nZ2VkSW4oKVwiID5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwicHJlc2VudE15UHJvZmlsZVBvcG92ZXIoJGV2ZW50KVwiIHBUb29sdGlwPVwiQWNjb3VudFwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cImxlZ2FjeU1lbnUgPT0gJ2ZhbHNlJyAmJiBscy5pc0NsYWltYW50KCkgJiYgc2hvd1Byb2ZpbGVQb3B1cCA/ICdoaWRlLXhzIGhpZGUtbWQgaGVhZGVyLWJ1dHRvbicgOiAobGVnYWN5TWVudSA9PSAnZmFsc2UnICYmIGxzLmlzQ2xhaW1hbnQoKSA/ICdoaWRlLXhzIGhpZGUtbWQnIDogJycpXCI+XHJcbiAgICAgICAgICAgIDxpb24tdGl0bGUgc3R5bGU9XCJmb250LXNpemU6IDIwcHg7IHBhZGRpbmc6IDBweDtcIiBjbGFzcz1cImhpZGUteHNcIj57e2xzLmdldEZ1bGxOYW1lKCkgfCBwcm9wZXJDYXNlfX08L2lvbi10aXRsZT5cclxuICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJlbmRcIiBuYW1lPVwicGVyc29uLWNpcmNsZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cIm9wZW5QYWdlKCdjcCcsICdkb2N1bWVudHMnKVwiIHBUb29sdGlwPVwiTm90aWNlc1wiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiICpuZ0lmPVwiIWxzLmlzQ3NyKCkgJiYgbGVnYWN5TWVudSA9PSAnZmFsc2UnICYmICF1dGlsLmlzU3RhdGUoJ01FJylcIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpID09ICdkb2N1bWVudHMnID8gJ2hlYWRlci1idXR0b24gaGlkZS14cyBoaWRlLW1kJyA6ICdoaWRlLXhzIGhpZGUtbWQnXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPSdwaSBwaS1maWxlIGZvbnQtYm9sZCcgc3R5bGU9XCJmb250LXNpemU6IDEuM3JlbTsgIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDtcIj48L2k+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJvcGVuUGFnZSgnY3AnLCAnZG9jdW1lbnRzJylcIiBwVG9vbHRpcD1cIk5vdGljZXNcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiAqbmdJZj1cIiFscy5pc0NzcigpICYmIGxlZ2FjeU1lbnUgPT0gJ3RydWUnXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiZG9jdW1lbnQtdGV4dC1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgIFxyXG4gICAgICAgIDwhLS0gPGlvbi1idXR0b24gKGNsaWNrKT1cInByZXNlbnRKb2JTZWFyY2hSZXN1bHRQb3B1cCgpXCIgcFRvb2x0aXA9XCJTaG93IGpvYiBzZWFyY2ggcmVzdWx0XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwibGVnYWN5TWVudSA9PSAnZmFsc2UnICYmIGxzLmlzQ2xhaW1hbnQoKSA/ICdoaWRlLXhzIGhpZGUtbWQnIDogJydcIiAqbmdJZj1cImxzLmlzQ2xhaW1hbnQoKSAmJiBsZWdhY3lNZW51ID09ICdmYWxzZScgJiYgdXRpbC5pc1N0YXRlKCdNUycpXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiYnJpZWZjYXNlXCIgZmlsbD1cIm91dGxpbmVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj4gLS0+XHJcbiAgICAgICAgXHJcbiAgICAgICAgXHJcbiAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cInByZXNlbnRNeU5vdGlmaWNhdGlvblBvcG92ZXIoJGV2ZW50KVwiIHBUb29sdGlwPVwiTm90aWZpY2F0aW9uXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCJcclxuICAgICAgICAgICAgKm5nSWY9XCIhbnMuc2hvd05vdGlmaWNhdGlvbkxvYWRlciAmJiAhdXRpbC5pc1N0YXRlKCdNRScpXCIgW25nQ2xhc3NdPVwibGVnYWN5TWVudSA9PSAnZmFsc2UnICYmIGxzLmlzQ2xhaW1hbnQoKSA/ICdoaWRlLXhzIGhpZGUtbWQnIDogJydcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJub3RpZmljYXRpb25zLW91dGxpbmVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICA8aW9uLWJhZGdlIGNvbG9yPVwiZGFya1wiICpuZ0lmPVwibnMubm90aWZpY2F0aW9uQ291bnQuZ2V0VmFsdWUoKSA+IDBcIj5cclxuICAgICAgICAgICAgICAgIDxpb24tbGFiZWw+e3tucy5ub3RpZmljYXRpb25Db3VudC5nZXRWYWx1ZSgpfX08L2lvbi1sYWJlbD5cclxuICAgICAgICAgICAgPC9pb24tYmFkZ2U+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIiAqbmdJZj1cIm5zLnNob3dOb3RpZmljYXRpb25Mb2FkZXJcIj48L2lvbi1zcGlubmVyPlxyXG5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwidGhpcy5ocy5zaG93KClcIiBwVG9vbHRpcD1cIkhlbHBcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiAqbmdJZj1cImxzLmlzQ2xhaW1hbnQoKSAmJiBsZWdhY3lNZW51ID09ICdmYWxzZScgJiYgKGhzLnNob3VsZERpc3BsYXlIZWxwQnV0dG9uKCkgfCBhc3luYylcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJoZWxwLWNpcmNsZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICA8L2lvbi1idXR0b25zPlxyXG5cclxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic2Vjb25kYXJ5XCIgKm5nSWY9XCIhbHMuaXNMb2dnZWRJbigpICYmIGxzLmdldFVzZXIoKVwiPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJsb2dvdXQoKVwiIHBUb29sdGlwPVwiTG9nb3V0XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwibG9nLW91dC1zaGFycFwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgPC9pb24tYnV0dG9ucz5cclxuXHJcbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiICpuZ0lmPVwic2hvd0xhbmd1YWdlT3B0aW9uID09PSAndHJ1ZScgJiYgKCFscy5nZXRVc2VyKCkgJiYgbGVnYWN5TWVudSA9PSAnZmFsc2UnKVwiPlxyXG4gICAgICAgIDxwLW1lbnUgI21lbnUgW3BvcHVwXT1cInRydWVcIiBbbW9kZWxdPVwiaXRlbXNcIiBhcHBlbmRUbz1cImJvZHlcIj48L3AtbWVudT5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwibWVudS50b2dnbGUoJGV2ZW50KVwiIHBUb29sdGlwPVwiTGFuZ3VhZ2VcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIj5cclxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwibGFuZ3VhZ2VcIiBzbG90PVwiZW5kXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIDwvaW9uLWJ1dHRvbnM+XHJcblxyXG48L2lvbi10b29sYmFyPlxyXG48aW9uLXRvb2xiYXIgY29sb3I9XCJsaWdodFwiIGlkPVwic2Vjb25kVG9vbGJhclwiICpuZ0lmPVwic2Vjb25kVG9vbGJhclwiPlxyXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiPlxyXG4gICAgICAgIDxpb24tYmFjay1idXR0b24gcFRvb2x0aXA9XCJCYWNrXCIgYWx0PVwiQmFja1wiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtkZWZhdWx0SHJlZl09XCJiYWNrUGFnZSA/IGJhY2tQYWdlIDogJy93ZWxjb21lJ1wiPjwvaW9uLWJhY2stYnV0dG9uPlxyXG4gICAgICAgIDxpb24tdGl0bGUgY29sb3I9XCJwcmltYXJ5XCIgKm5nSWY9XCJ0aXRsZVwiIHN0eWxlPVwiZm9udC1zaXplOiAxOHB4XCI+e3t0aXRsZX19PC9pb24tdGl0bGU+XHJcbiAgICA8L2lvbi1idXR0b25zPlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cclxuICAgICAgICA8aW9uLXRpdGxlIGNvbG9yPVwicHJpbWFyeVwiIHN0eWxlPVwiZm9udC1zaXplOiB4eC1zbWFsbDsgZmxvYXQ6IHJpZ2h0OyBwYWRkaW5nLXJpZ2h0OiA4cHg7XCIgKm5nSWY9XCJwYWdlSWRcIj5cclxuICAgICAgICAgICAge3twYWdlSWR9fTwvaW9uLXRpdGxlPlxyXG4gICAgPC9pb24tYnV0dG9ucz5cclxuPC9pb24tdG9vbGJhcj5cclxuPHAtdG9hc3Q+XHJcbiAgICA8bmctdGVtcGxhdGUgbGV0LW1lc3NhZ2UgcFRlbXBsYXRlPVwibWVzc2FnZVwiPlxyXG4gICAgICAgIDxpICpuZ0lmPVwibWVzc2FnZS5zZXZlcml0eSA9PT0gJ2Vycm9yJ1wiIGNsYXNzPVwicGkgcGktdGltZXMtY2lyY2xlXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDE0cHg7IGZvbnQtc2l6ZTogMzhweCBcIj48L2k+XHJcbiAgICAgICAgPGkgKm5nSWY9XCJtZXNzYWdlLnNldmVyaXR5ID09PSAnc3VjY2VzcydcIiBjbGFzcz1cInBpIHBpLWNoZWNrLWNpcmNsZVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxNHB4OyBmb250LXNpemU6IDM4cHggXCI+PC9pPlxyXG4gICAgICAgIDxpICpuZ0lmPVwibWVzc2FnZS5zZXZlcml0eSA9PT0gJ3dhcm4nXCIgY2xhc3M9XCJwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGVcInN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxNHB4OyBmb250LXNpemU6IDM4cHggXCI+PC9pPlxyXG4gICAgICAgIDxpICpuZ0lmPVwibWVzc2FnZS5zZXZlcml0eSA9PT0gJ2luZm8nXCIgY2xhc3M9XCJwaSBwaS1pbmZvLWNpcmNsZVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxNHB4OyBmb250LXNpemU6IDM4cHggXCI+PC9pPlxyXG5cclxuICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwiJzxzdHJvbmcgc3R5bGU9XFwnZm9udC1zaXplOiAyMnB4O2ZvbnQtd2VpZ2h0OiBib2xkO1xcJz4nICsgbWVzc2FnZS5zdW1tYXJ5ICsgJzwvc3Ryb25nPjxicj48YnI+JyArIFxyXG4gICAgICAgICAgICAnPHNwYW4gc3R5bGU9XFwnZm9udC1zaXplOiAxOHB4O1xcJz4nICsgbWVzc2FnZS5kZXRhaWwgKyAnPC9zcGFuPidcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L3AtdG9hc3Q+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1Byb2ZpbGVQb3B1cFwiPlxyXG4gICAgPGFwcC1wcm9maWxlICpuZ0lmPVwic2hvd1Byb2ZpbGVQb3B1cFwiIChvbkNhbmNlbCk9XCJzaG93UHJvZmlsZVBvcHVwID0gIXNob3dQcm9maWxlUG9wdXBcIj48L2FwcC1wcm9maWxlPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxhcHAtam9iLXNlYXJjaC1yZXN1bHQtcGFnZSAqbmdJZj1cInNob3dqb2JTZWFyY2hSZXN1bHRQb3B1cFwiIChvbkNhbmNlbCk9XCJzaG93am9iU2VhcmNoUmVzdWx0UG9wdXAgPSAhc2hvd2pvYlNlYXJjaFJlc3VsdFBvcHVwXCI+PC9hcHAtam9iLXNlYXJjaC1yZXN1bHQtcGFnZT5cclxuXHJcblxyXG5cclxuIl19
925
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDbEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBUWhGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNkaEQsdUNBQ21COzs7O0lBRGtCLHVFQUFvQzs7O0lBSWpFLHNDQUNnSjs7O0lBQWhHLHlHQUE2RTs7OztJQVE3SCxzQ0FBeU07SUFBN0wsd0xBQVMsZUFBQSxrQkFBVSxDQUFBLElBQUM7SUFBeUssb0JBQUk7SUFBQSxpQkFBYTs7O0lBQWhKLG1HQUE2RTs7OztJQUV2SixzQ0FBOFI7SUFBakQsd0xBQVMsZUFBQSxzQkFBYyxDQUFBLElBQUM7O0lBQXlCLFlBQThDO0lBQUEsaUJBQWE7OztJQUF4VCxtRkFBa0Q7SUFBMEIsb0dBQThFO0lBQW1HLGVBQThDO0lBQTlDLHdFQUE4Qzs7OztJQUM1VSxzQ0FBNFI7SUFBekIsd0xBQVMsZUFBQSxzQkFBYyxDQUFBLElBQUM7O0lBQUMsWUFB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QUFoQyxLQUFLO21CQUFDLGFBQWE7WUFFRSxXQUFXO2tCQUFoQyxLQUFLO21CQUFDLGFBQWE7WUFFRCxRQUFRO2tCQUExQixLQUFLO21CQUFDLFVBQVU7WUFFQyxPQUFPO2tCQUF4QixLQUFLO21CQUFDLFNBQVM7O2tGQXRCTCxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTW9kYWxDb250cm9sbGVyLCBOYXZDb250cm9sbGVyLCBQb3BvdmVyQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xuaW1wb3J0IHsgQ2xhaW1hbnRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jbGFpbWFudC9DbGFpbWFudE1vZGVsJztcbmltcG9ydCB7IE15Tm90aWZpY2F0aW9uc1BhZ2UgfSBmcm9tICcuLi8uLi9wYWdlcy9wb3BvdmVycy9teS1ub3RpZmljYXRpb25zL215LW5vdGlmaWNhdGlvbnMucGFnZSc7XG5pbXBvcnQgeyBNeVByb2ZpbGVQYWdlIH0gZnJvbSAnLi4vLi4vcGFnZXMvcG9wb3ZlcnMvbXktcHJvZmlsZS9teS1wcm9maWxlLnBhZ2UnO1xuaW1wb3J0IHsgQ2xhaW1hbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xhaW1hbnQvY2xhaW1hbnQuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBIZWxwU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2hlbHAvaGVscC5zZXJ2aWNlJztcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVBhZ2UgfSBmcm9tICcuLi8uLi9wYWdlcy9CYXNlUGFnZSc7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGVTZWxlY3RFdmVudCB9IGZyb20gJ3ByaW1lbmcvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IFNlYXJjaFF1ZXN0aW9ubmFpcmVEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvUXVlc3Rpb25uYWlyZUZvcm0nO1xuaW1wb3J0IHsgQXVkaXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXVkaXQvYXVkaXQuc2VydmljZSc7XG5pbXBvcnQgeyBBdWRpdERvY3VtZW50RW1wbG95ZXJVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvQXVkaXREb2N1bWVudEVtcGxveWVyVXNlck1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlUGFnZSBpbXBsZW1lbnRzIE9uSW5pdCAge1xuXG4gIGl0ZW1zOiBNZW51SXRlbVtdO1xuXG4gIHNlYXJjaFRleHQ7XG5cbiAgcmVzdWx0czogQ2xhaW1hbnRNb2RlbFtdO1xuXG4gIGNvbnRleHRSb290OnN0cmluZztcblxuICBASW5wdXQoJ3RpdGxlJykgdGl0bGU6IHN0cmluZztcblxuICBASW5wdXQoJ3BhZ2VJZCcpIHBhZ2VJZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgnc2Vjb25kVG9vbGJhcicpIHNlY29uZFRvb2xiYXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoJ2Rpc3BsYXlMb2dvJykgZGlzcGxheUxvZ286IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoJ3Nob3dIaXN0b3J5Jykgc2hvd0hpc3Rvcnk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoJ2JhY2tQYWdlJykgYmFja1BhZ2U6IHN0cmluZztcblxuICBASW5wdXQoJ2NvbnRleHQnKSBjb250ZXh0OiBzdHJpbmc7XG5cbiAgcHVibGljIHNob3dOb3RpZmljYXRpb25Mb2FkZXIgPSBmYWxzZTtcblxuICBwdWJsaWMgbGVnYWN5TWVudSA9IExpYkNvbnN0YW50cy5sZWdhY3lNZW51O1xuXG4gIHB1YmxpYyBpbnRlcmltSG9tZVBhZ2UgPSBMaWJDb25zdGFudHMuaW50ZXJpbUhvbWVQYWdlO1xuXG4gIHB1YmxpYyBzaG93UHJvZmlsZVBvcHVwIDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBzaG93am9iU2VhcmNoUmVzdWx0UG9wdXAgOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIHNob3dMYW5ndWFnZU9wdGlvbiA9IExpYkNvbnN0YW50cy5lbmFibGVMYW5ndWFnZUNoYW5nZTtcblxuICBpc0VtcGxveWVyTG9hZGVkID0gZmFsc2U7XG4gIGlzUXVlc3Rpb25uYWlyZURhdGFMb2FkZWQgPSBmYWxzZTtcblxuXG4gIHNlYXJjaFF1ZXN0aW9ubmFpcmVEYXRhOlNlYXJjaFF1ZXN0aW9ubmFpcmVEYXRhW107XG4gIHNlbGVjdGVkUXVlc3Rpb25uYWlyZURhdGE6IFNlYXJjaFF1ZXN0aW9ubmFpcmVEYXRhW107XG4gIGF1ZGl0RG9jdW1lbnRFbXBsb3llclVzZXJNb2RlbDogQXVkaXREb2N1bWVudEVtcGxveWVyVXNlck1vZGVsO1xuXG5cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbHMgOiBMb2dpblNlcnZpY2UsIHB1YmxpYyB1dGlsIDogVXRpbFNlcnZpY2UsIHB1YmxpYyByIDogUm91dGVyLCBwdWJsaWMgcG9wdXA6IFBvcG92ZXJDb250cm9sbGVyLCBcbiAgICAgICAgICAgICAgcHVibGljIGNzIDogQ2xhaW1hbnRTZXJ2aWNlLCBwcml2YXRlIG5hdiA6IE5hdkNvbnRyb2xsZXIsIHB1YmxpYyBtb2RhbENvbnRyb2xsZXI6IE1vZGFsQ29udHJvbGxlcixcbiAgICAgICAgICAgICAgcHVibGljIG5zIDogTm90aWZpY2F0aW9uU2VydmljZSwgcHVibGljIGhzOiBIZWxwU2VydmljZSwgcHVibGljIHRyYW5zbGF0ZVNlcnZpY2UgOiBUcmFuc2xhdGVTZXJ2aWNlLCBwcml2YXRlIHFzOiBBdWRpdFNlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICBzdXBlcigpO1xuICAgICAgICAgICAgICAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vdGhpcy5sb2FkTm90aWZpY2F0aW9uQ291bnQoKTtcbiAgICB0aGlzLnNldE1lbnVJdGVtcyhsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImxhbmd1YWdlXCIpKTtcbiAgICBpZih0aGlzLmxzLmlzRW1wbG95ZXIoKSlcbiAgICB7XG4gICAgICAgICAgdGhpcy5sb2FkRW1wbG95ZXJEZXRhaWxzKClcbiAgICB9XG4gICAgdGhpcy5jb250ZXh0Um9vdCA9IHRoaXMuZ2V0Q29udGV4dFJvb3QoKTtcbiAgfVxuICBcbiAgLypKb2IgU2VhcmNoIFJlc3VsdCBJY29uIFBvcHVwXG4gICBwcmVzZW50Sm9iU2VhcmNoUmVzdWx0UG9wdXAoKSB7XG4gICAgaWYodGhpcy5scy5pc0NsYWltYW50KCkpe1xuICAgICAgdGhpcy5zaG93am9iU2VhcmNoUmVzdWx0UG9wdXAgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuICAqL1xuICBnZXRDb250ZXh0Um9vdCgpe1xuICAgIGxldCBwYXJ0cyA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zcGxpdCgnLycpO1xuICAgIGxldCBjb250ZXh0Um9vdCA9IHBhcnRzLmxlbmd0aCA+IDEgPyBwYXJ0c1sxXSA6ICcnO1xuICAgIHJldHVybiBjb250ZXh0Um9vdDtcbiAgfVxuICBzZXRNZW51SXRlbXMobGFuZ3VhZ2UgOiBzdHJpbmcpe1xuICAgIHRoaXMuaXRlbXMgPSBbe1xuICAgICAgbGFiZWwgOiAnQ2hvb3NlIGxhbmd1YWdlJyxcbiAgICAgIGl0ZW1zOiBbe1xuICAgICAgICBsYWJlbDogJ0VuZ2xpc2gnLFxuICAgICAgICBpY29uIDogdGhpcy5nZXRJY29uKGxhbmd1YWdlLCdlbicpLFxuICAgICAgICBjb21tYW5kOiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldExhbmd1YWdlKCdlbicsICdFbmdsaXNoJyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiAnRXNwYe+/vW9sJyxcbiAgICAgICAgaWNvbiA6IHRoaXMuZ2V0SWNvbihsYW5ndWFnZSwnZXMnKSxcbiAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRMYW5ndWFnZSgnZXMnLCAnZXNwYe+/vW9sJyk7XG4gICAgICAgIH1cbiAgICAgIH1dXG4gICAgfV07XG4gIH1cblxuICBnZXRJY29uKHNlbGVjdGVkTGFuZyA6IHN0cmluZywgbGFuZ3VhZ2UgOiBzdHJpbmcpe1xuICAgIGlmKGxhbmd1YWdlID09IHNlbGVjdGVkTGFuZyl7XG4gICAgICByZXR1cm4gXCJwaSBwaS1mdyBwaS1jaGVja1wiO1xuICAgIH1lbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHNldExhbmd1YWdlKGxhbmd1YWdlIDogc3RyaW5nLCBuYW1lIDogc3RyaW5nKXtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKGxhbmd1YWdlKTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbGFuZ3VhZ2UnLCBsYW5ndWFnZSk7XG4gICAgdGhpcy51dGlsLnRvYXN0KCdMYW5ndWFnZSBwcmVmZXJlbmNlIGNoYW5nZWQgdG8gJyArIG5hbWUpO1xuICAgIHRoaXMuc2V0TWVudUl0ZW1zKGxhbmd1YWdlKTtcbiAgfVxuXG4gIGFzeW5jIHByZXNlbnRNeVByb2ZpbGVQb3BvdmVyKGV2ZW50KSB7XG5cbiAgICBpZih0aGlzLmxzLmlzQ2xhaW1hbnQoKSAmJiAgKHRoaXMubGVnYWN5TWVudSA9PSAnZmFsc2UnIHx8IHRoaXMudXRpbC5pc1N0YXRlKCdNRScpIHx8ICh0aGlzLnV0aWwuaXNTdGF0ZSgnTVMnKSAmJiBMaWJDb25zdGFudHMuaW50ZXJpbUhvbWVQYWdlID09ICd0cnVlJykpKXtcbiAgICAgIHRoaXMuc2hvd1Byb2ZpbGVQb3B1cCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcG9wb3ZlciA9IGF3YWl0IHRoaXMucG9wdXAuY3JlYXRlKHtcbiAgICAgIGNvbXBvbmVudDogTXlQcm9maWxlUGFnZSxcbiAgICAgIHRyYW5zbHVjZW50OiB0cnVlLFxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiB0cnVlLFxuICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgY3NzQ2xhc3M6ICdoZWFkZXItcG9wb3ZlcidcbiAgICB9KTtcblxuICAgIHJldHVybiBhd2FpdCBwb3BvdmVyLnByZXNlbnQoKTtcbiAgfVxuXG4gIGFzeW5jIHByZXNlbnRNeU5vdGlmaWNhdGlvblBvcG92ZXIoZXZlbnQpIHtcbiAgICBjb25zdCBwb3BvdmVyID0gYXdhaXQgdGhpcy5wb3B1cC5jcmVhdGUoe1xuICAgICAgY29tcG9uZW50OiBNeU5vdGlmaWNhdGlvbnNQYWdlLFxuICAgICAgdHJhbnNsdWNlbnQ6IHRydWUsXG4gICAgICBiYWNrZHJvcERpc21pc3M6IHRydWUsXG4gICAgICBldmVudDogZXZlbnQsXG4gICAgICBjc3NDbGFzczogJ2hlYWRlci1wb3BvdmVyJ1xuICAgIH0pO1xuXG4gICAgcG9wb3Zlci5vbkRpZERpc21pc3MoKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMubnMudXBkYXRlUmVhZEZsYWcoKTtcbiAgICB9KVxuXG4gICAgcmV0dXJuIGF3YWl0IHBvcG92ZXIucHJlc2VudCgpO1xuICB9XG5cbiAgbG9nb3V0KCl7XG4gICAgdGhpcy5uYXYubmF2aWdhdGVSb290KCcvbGFuZGluZycpO1xuICAgIHRoaXMubHMubG9nb3V0KCk7XG4gIH1cblxuICBvcGVuV2Vla2xpZXMoKXtcbiAgICBpZih0aGlzLmxlZ2FjeU1lbnUgPT0gJ3RydWUnICYmIHRoaXMuaXNNUygpICYmIHRoaXMuaW50ZXJpbUhvbWVQYWdlID09ICdmYWxzZScpe1xuICAgICAgdGhpcy5vcGVuUGFnZSgnY3AnLCAndjIvd2Vla2xpZXMnKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdjcCcsICd2My93ZWVrbGllcycpXG4gICAgfVxuICB9XG5cbiAgb25DbGlja0Rpc3BsYXlMb2dvKClcbiAge1xuICAgIGlmKHRoaXMuY29udGV4dD09J2F1ZGl0Jyl7XG4gXHQgIGxldCB1c2VyTW9kZWwgPSB0aGlzLmxzLmdldFVzZXIoKTtcbiAgICB2YXIgdGVtcFZhbCA9IEpTT04uc3RyaW5naWZ5KHsgcGFyYW0xOiBcInRheEF1ZGl0XCJ9KTtcbiAgICB2YXIgZW5jVmFsID0gYnRvYSh0ZW1wVmFsKTtcbiAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpICsgNjAwMDApO1xuICAgIGNvbnN0IGRvbWFpbiA9IExpYkNvbnN0YW50cy5zc29Eb21haW47XG4gICAgdmFyIGV4cGlyZXMgPSBcImV4cGlyZXM9XCIgKyBkYXRlLnRvVVRDU3RyaW5nKCk7XG4gICAgZG9jdW1lbnQuY29va2llID0gXCJwYXJBcFRvTT1cIiArIGVuY1ZhbCArIFwiO3BhdGg9LztleHBpcmVzPVwiICsgZXhwaXJlcyArIFwiO2RvbWFpbj1cIiArIGRvbWFpbiArIFwiO1NhbWVTaXRlPUxheDtcIjtcbiAgICB3aW5kb3cub3BlbihgJHtMaWJDb25zdGFudHMudGF4VXJsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnY9MjI5OSZUQVhBVURJVF9QT1JUQUw9dHJ1ZWAsICdfc2VsZicpO1xuICAgIH1cbiAgfVxuXG4gICBvcGVuQXVkaXREYXNoYm9hcmQoKXtcbiAgICBpZih0aGlzLmNvbnRleHQ9PSdhdWRpdCcpe1xuICAgICAgaWYodGhpcy5scy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IHRoaXMubHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpe1xuICAgICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9kYXNoYm9hcmQnKTtcbiAgICAgIH0gZWxzZSBpZih0aGlzLmxzLmlzVGF4QXVkaXRBdWRpdG9yKCkpe1xuICAgICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9teXEnKTtcbiAgICAgIH0gZWxzZSBpZih0aGlzLmxzLmlzRW1wbG95ZXIoKSl7XG4gICAgICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnLycpOyAvL0FkZCB0aGUgYWN0dWFsIHVybCBmb3IgZW1wbG95ZXIgYXVkaXQgZGFzaGJvYXJkXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb3BlbkF1ZGl0b3JXb3JrTGlzdCgpe1xuICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnL2F1ZGl0b3Itd29yay1saXN0Jyk7XG4gIH1cblxuICAgb3BlblF1ZXN0aW9ubmFpcmUoKXtcbiAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpKXtcbiAgICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnL2F1ZGl0b3ItcXVlc3Rpb25uYWlyZScpO1xuICAgIH0gZWxzZSBpZih0aGlzLmxzLmlzRW1wbG95ZXIoKSl7XG4gICAgICBpZih0aGlzLnNlYXJjaFF1ZXN0aW9ubmFpcmVEYXRhICYmIHRoaXMuc2VhcmNoUXVlc3Rpb25uYWlyZURhdGEubGVuZ3RoID4gMClcbiAgICAgIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFF1ZXN0aW9ubmFpcmVEYXRhID0gdGhpcy5zZWFyY2hRdWVzdGlvbm5haXJlRGF0YTtcbiAgICAgICAgdGhpcy5xcy5zZXRRdWVzdGlvbm5haXJlRGF0YSh0aGlzLnNlbGVjdGVkUXVlc3Rpb25uYWlyZURhdGEpO1xuICAgICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCAnL2F1ZGl0b3ItcXVlc3Rpb25uYWlyZS1mb3JtJywge1xuICAgICAgICBzdGF0ZTogeyBhdWRpdDogdGhpcy5zZWFyY2hRdWVzdGlvbm5haXJlRGF0YSB9XG4gICAgICB9KTsvL0FkZCB0aGUgYWN0dWFsIHVybCBmb3IgZW1wbG95ZXIgcXVlc3Rpb25uYWlyZVxuICAgICAgfVxuICAgICAgZWxzZXtcbiAgICAgICAgdGhpcy51dGlsLnNob3dFcnJvcihcIk5vIGFjdGl2ZSBhdWRpdC4gVGhpcyBpcyBub3QgcmVxdWlyZWQgYXQgdGhpcyBwb2ludC5cIilcbiAgICAgIH1cbiAgICAgIFxuICAgIH1cbiAgfVxuICBvcGVuVXBsb2FkRG9jdW1lbnRzKCl7XG5cbiAgICBpZih0aGlzLmF1ZGl0RG9jdW1lbnRFbXBsb3llclVzZXJNb2RlbCAmJiB0aGlzLmF1ZGl0RG9jdW1lbnRFbXBsb3llclVzZXJNb2RlbC5hdWRpdElkICE9IG51bGwpXG4gICAge1xuICAgICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCAnL2VtcGxveWVyLWRvY3VtZW50cycsIHtcbiAgICAgICAgc3RhdGU6IHsgYXVkaXQ6IHRoaXMuYXVkaXREb2N1bWVudEVtcGxveWVyVXNlck1vZGVsIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNle1xuICAgICAgdGhpcy51dGlsLnNob3dFcnJvcihcIk5vIGFjdGl2ZSBhdWRpdC4gVGhpcyBpcyBub3QgcmVxdWlyZWQgYXQgdGhpcyBwb2ludC5cIilcbiAgICB9XG4gIH1cblxuICBvcGVuRW1wbG95ZXJEYXNoYm9hcmQoKVxuICB7XG4gICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCAnL2VtcGxveWVyLWRhc2hib2FyZCcsIHtcbiAgICAgIH0pO1xuICB9XG5cbiAgb3BlblN1cGVydmlzb3JNeVEoKXtcbiAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0QXVkaXRvcigpIHx8IHRoaXMubHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpe1xuICAgICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCcvbXlxJyk7XG4gICAgfVxuICB9XG5cbiAgb3BlblN1cGVydmlzb3JJbnF1aXJ5KCl7XG4gICAgIGlmKHRoaXMuY29udGV4dD09J2F1ZGl0Jyl7XG4gICAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0RGlyZWN0b3IoKXx8dGhpcy5scy5oYXNSb2xlKCd0YXhhdWRpdGFnZW5jeXN0YWZmJykpe1xuICAgICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9pbnF1aXJ5Jyk7XG4gICAgICB9IGVsc2UgaWYodGhpcy5scy5pc1RheEF1ZGl0QXVkaXRvcigpKXtcbiAgICAgICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCcvYXVkaXRvci1pbnF1aXJ5Jyk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCcvaW5xdWlyeScpO1xuICB9XG5cbiAgb3BlblRQU0lucXVpcnkoKXtcbiAgICBpZih0aGlzLmxzLmhhc1JvbGUoJ3Rwc3NwZWNpYWxpc3QnKSl7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy90cHMtdW5pdmVyc2UnKTtcbiAgICB9XG4gIH1cblxuICBvcGVuVFBBUXVlc3Rpb25uYWlyZSgpe1xuICAgIGlmKHRoaXMubHMuaXNUcGEoKSl7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy90cGEtcXVlc3Rpb25uYWlyZScpXG4gICAgfVxuICB9XG5cbiAgb3BlblN1cGVydmlzb3JSZWZlcnJhbHMoKXtcbiAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0RGlyZWN0b3IoKSl7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9yZWZlcnJhbHMnKTtcbiAgICB9IGVsc2UgaWYodGhpcy5scy5pc1RheEF1ZGl0QXVkaXRvcigpIHx8IHRoaXMubHMuaXNUcGEoKSB8fCB0aGlzLmxzLmhhc1JvbGUoJ3RheGF1ZGl0YWdlbmN5c3RhZmYnKSl7Ly9BZ2VuY3kgRW1wbG95ZWUgRGVmYXVsdCAtIGNoZWNrIHJvbGUgd2l0aCBjaWp1XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9uZXctcmVmZXJyYWwnKTtcbiAgICB9XG4gIH1cblxuICBvcGVuU3VwZXJ2aXNvckNvbmZpZygpe1xuICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnL2NvbmZpZycpO1xuICB9XG5cbiAgb3BlblN1cGVydmlzb3JBbmFseXRpY3MoKXtcbiAgICBpZih0aGlzLmxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgdGhpcy5scy5pc1RheEF1ZGl0RGlyZWN0b3IoKSl7XG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9hbmFseXRpY3MnKTtcbiAgICB9XG4gICAgaWYodGhpcy5scy5pc1RheEF1ZGl0QXVkaXRvcigpICYmICEodGhpcy5scy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IHRoaXMubHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpKXsgXG4gICAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy9hdWRpdG9yLWFuYWx5dGljcycpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5TdXBlcnZpc29yQXNzaWduKCl7XG4gICAgdGhpcy5vcGVuUGFnZSgnYXVkaXQnLCcvYXNzaWduJyk7XG4gIH1cblxuICBvcGVuU3VwZXJ2aXNvclRlYW0oKXtcbiAgICB0aGlzLm9wZW5QYWdlKCdhdWRpdCcsJy90ZWFtJyk7XG4gIH1cblxuXG4gIGxvYWRFbXBsb3llckRldGFpbHMoKVxuICB7XG4gICAgdGhpcy5pc0VtcGxveWVyTG9hZGVkID0gZmFsc2U7XG4gICAgdGhpcy5pc1F1ZXN0aW9ubmFpcmVEYXRhTG9hZGVkID0gZmFsc2U7XG4gICAgbGV0IHVzZXJNb2RlbCA9IHRoaXMubHMuZ2V0VXNlcigpXG5cbiAgICB0aGlzLnFzLnNlYXJjaFF1ZXN0aW9ubmFpcmUobnVsbCwgbnVsbCwgbnVsbCx1c2VyTW9kZWwudXNlcm5hbWUpXG4gICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICBpZiAocmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5zZWFyY2hRdWVzdGlvbm5haXJlRGF0YSA9IHJlcztcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNRdWVzdGlvbm5haXJlRGF0YUxvYWRlZCA9IHRydWVcbiAgICB9LCAoZXJyKSA9PiB7XG5cbiAgICB9KTtcblxuICAgIHRoaXMucXMuZmluZEVtcGxveWVyRGF0YVdpdGhVc2VySUQodXNlck1vZGVsLnVzZXJuYW1lKVxuICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgaWYgKHJlcylcbiAgICAgIHtcbiAgICAgICAgdGhpcy5hdWRpdERvY3VtZW50RW1wbG95ZXJVc2VyTW9kZWwgPSByZXM7XG4gICAgICB9XG4gICAgICB0aGlzLmlzRW1wbG95ZXJMb2FkZWQgPSB0cnVlOyBcbiAgICB9LCAoZXJyKSA9PiB7XG4gICAgIFxuICAgIH0pXG5cbiAgfVxuICBvcGVuSG9tZSgpe1xuICAgIC8vdGhpcy5uYXYubmF2aWdhdGVSb290KFwiL3dlbGNvbWVcIik7XG4gXHRpZih0aGlzLmNvbnRleHQ9PSdhdWRpdCcpe1xuICAgICAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5scy5nZXRVc2VyKClcbiAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKTtcbiAgICAgICAgd2luZG93Lm9wZW4oYCR7TGliQ29uc3RhbnRzLnRheFVybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5YCwgJ19zZWxmJyk7XG4gICAgfVxuICAgIGlmKHRoaXMubHMuaXNDbGFpbWFudCgpKXtcbiAgICAgIHRoaXMudXRpbC5vcGVuUGFnZUJ5Q29udGV4dFJvb3QodGhpcy51dGlsLmdldENsYWltYW50QXBwQ29udGV4dFJvb3QoKSwgXCJ3ZWxjb21lXCIsIHRoaXMubmF2KTsgXG4gICAgfSBlbHNlIGlmKHRoaXMubHMuaXNDc3IoKSl7XG4gICAgICB0aGlzLnV0aWwub3BlblBhZ2VCeUNvbnRleHRSb290KHRoaXMudXRpbC5nZXRTZWN1cml0eUFwcENvbnRleHRSb290KCksXCJ3ZWxjb21lXCIsIHRoaXMubmF2KTsgXG4gICAgfSBlbHNlIGlmKHRoaXMubHMuaXNFbXBsb3llcigpKXtcbiAgICAgIHRoaXMub3BlblBhZ2UoJ2F1ZGl0JywnLycpOy8vQWRkIHRoZSBhY3R1YWwgdXJsIGZvciBlbXBsb3llciBxdWVzdGlvbm5haXJlXG4gICAgICAvL3RoaXMubG9hZEVtcGxveWVyRGV0YWlscygpO1xuICAgIH0gXG4gICAgZWxzZSB7XG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoXCIvd2VsY29tZVwiKTtcbiAgICB9XG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgfVxuXG4gIHNlYXJjaChldmVudCkge1xuICAgIGxldCBkb1NlYXJjaCA9IGZhbHNlO1xuICAgIGxldCBjbGFpbWFudFNlYXJjaCA9IG5ldyBDbGFpbWFudE1vZGVsKCk7XG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnkgKyAnJztcbiAgICBpZihxdWVyeS5pbmNsdWRlcyhcIiBcIikpe1xuICAgICAgbGV0IGZOYW1lID0gcXVlcnkuc3BsaXQoXCIgXCIpWzBdO1xuICAgICAgbGV0IGxOYW1lID0gcXVlcnkuc3BsaXQoXCIgXCIpWzFdO1xuICAgICAgY2xhaW1hbnRTZWFyY2guZmlyc3ROYW1lID0gZk5hbWU7XG4gICAgICBjbGFpbWFudFNlYXJjaC5sYXN0TmFtZSA9IGxOYW1lO1xuICAgICAgZG9TZWFyY2ggPSB0cnVlO1xuICAgIH1cblxuICAgIGlmKHF1ZXJ5Lmxlbmd0aCA9PSA5ICYmIHRoaXMuaXNOdW1iZXIocXVlcnkpICYmICFkb1NlYXJjaCl7XG4gICAgICBjbGFpbWFudFNlYXJjaC5zc24gPSBxdWVyeTtcbiAgICAgIGRvU2VhcmNoID0gdHJ1ZTtcbiAgICB9ZWxzZSBpZighdGhpcy5pc051bWJlcihxdWVyeSkgJiYgIWRvU2VhcmNoKXtcbiAgICAgIGNsYWltYW50U2VhcmNoLnVzZXJJZCA9IHF1ZXJ5O1xuICAgICAgZG9TZWFyY2ggPSB0cnVlO1xuICAgIH1cbiAgICBcbiAgICBpZihkb1NlYXJjaCl7XG4gICAgICB0aGlzLmNzLnNlYXJjaChjbGFpbWFudFNlYXJjaCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgIHRoaXMucmVzdWx0cyA9IGRhdGE7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzTnVtYmVyKG51bSl7XG4gICAgcmV0dXJuICFpc05hTihudW0pO1xuICB9XG5cbiAgb25TZWxlY3RBY3Rpb24oZXZlbnQgOiBBdXRvQ29tcGxldGVTZWxlY3RFdmVudCl7XG4gICAgdGhpcy5yZXN1bHRzID0gbnVsbDtcbiAgICB0aGlzLnNlYXJjaFRleHQgPSBudWxsO1xuICAgIHRoaXMuY3MuZ2V0Q2xhaW1hbnQoKS5uZXh0KGV2ZW50LnZhbHVlKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudXRpbC5vcGVuUGFnZUJ5Q29udGV4dFJvb3QodGhpcy51dGlsLmdldFNlY3VyaXR5QXBwQ29udGV4dFJvb3QoKSxcInJlc2V0LXBhc3N3b3JkXCIsIHRoaXMubmF2KTtcbiAgICAgIC8vdGhpcy5uYXYubmF2aWdhdGVGb3J3YXJkKCcvcmVzZXQtcGFzc3dvcmQnKTtcbiAgICB9LCA1MDApXG4gICAgXG4gIH1cblxuICBvcGVuQmVuZWZpdHNBcHAoKXtcbiAgICBsZXQgdXNlck1vZGVsID0gdGhpcy5scy5nZXRVc2VyKClcbiAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpO1xuICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy5iZW5lZml0c1VybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5YCwgJ19zZWxmJyk7XG4gIH1cblxuICBvcGVuUGFnZShjb250ZXh0Um9vdCwgdXJpLCBleHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzKXtcbiAgICBsZXQgY3VycmVudENvbnRleHRSb290ID0gdGhpcy51dGlsLmdldENvbnRleHRSb290KCk7XG4gICAgbGV0IHRhcmdldCA9IGAvJHtjb250ZXh0Um9vdH1gO1xuXG4gICAgaWYoY3VycmVudENvbnRleHRSb290ID09IHRhcmdldCl7XG4gICAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoYC8ke3VyaX1gLCBleHRyYXMpO1xuICAgIH1lbHNle1xuICAgICAgdGhpcy51dGlsLm9wZW5QYWdlQnlDb250ZXh0Um9vdCh0YXJnZXQsIHVyaSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q2xhc3MobmFtZSl7XG4gICAgbGV0IGN1cnJlbnRSb3V0ZSA9IHRoaXMuci51cmwucmVwbGFjZSgnLycsICcnKTtcbiAgICBjb25zb2xlLmxvZyhjdXJyZW50Um91dGUsIG5hbWUsIGN1cnJlbnRSb3V0ZSA9PSBuYW1lKTtcbiAgICByZXR1cm4gY3VycmVudFJvdXRlID09IG5hbWUgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJztcbiAgfVxuXG4gIG9wZW5Db250ZXh0SGVscCgpe1xuXG4gIH1cblxuICBhc3luYyBjaGFuZ2VMYW5ndWFnZShldmVudCkge1xuICAgIFxuICB9XG59XG4iLCI8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiZGV0ZXJtaW5hdGVcIiBbdmFsdWVdPVwidXRpbC5sb2FkZXIudmFsdWUkIHwgYXN5bmNcIiAqbmdJZj1cIih1dGlsLmxvYWRlci52YWx1ZSQgfCBhc3luYykgIT0gMFwiPlxyXG48L21hdC1wcm9ncmVzcy1iYXI+XHJcbjxpb24tdG9vbGJhcj5cclxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtNXB4O1wiPlxyXG4gICAgICAgIDxpb24tbWVudS1idXR0b24gYXV0b0hpZGU9XCJmYWxzZVwiIHBUb29sdGlwPVwiTWVudVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwibHMuaXNMb2dnZWRJbigpICYmICFscy5pc0VtcGxveWVyKClcIiBbbmdDbGFzc109XCJsZWdhY3lNZW51ID09ICdmYWxzZScgJiYgbHMuaXNDbGFpbWFudCgpID8gJ2hpZGUteGwgaGlkZS1sZycgOiAnJ1wiPjwvaW9uLW1lbnUtYnV0dG9uPlxyXG4gICAgPC9pb24tYnV0dG9ucz5cclxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIiBbbmdDbGFzc109XCJkaXNwbGF5TG9nbyA/ICdoZWFkZXJfYnV0dG9uX3doaXRlJyA6ICdoZWFkZXJfYnV0dG9uIGhpZGUteHMgaGlkZS1tZCdcIiAoY2xpY2spPVwib25DbGlja0Rpc3BsYXlMb2dvKClcIj5cclxuICAgICAgICA8aW1nIGFsdD1cImxvZ29cIiBwVG9vbHRpcD1cInt7J1JlRW1wbG95Q1QgTG9nbycgfCB0cmFuc2xhdGV9fVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXHJcbiAgICAgICAgIHNyYz1cImFzc2V0cy9pY29uL1JlRW1wbG95e3t1dGlsLmdldFN0YXRlKCl9fS5zdmdcIiBbbmdDbGFzc109XCJkaXNwbGF5TG9nbyA/ICdoZWFkZXJfbG9nbycgOiAnaGVhZGVyX2xvZ28gaGlkZS14cyBoaWRlLW1kJ1wiLz5cclxuICAgIDwvaW9uLWJ1dHRvbnM+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCIgKm5nSWY9XCJscy5pc0xvZ2dlZEluKClcIj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwib3BlbkhvbWUoKVwiIHBUb29sdGlwPVwiSG9tZVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3dlbGNvbWUnKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJ0aGlzLmNvbnRleHQhPSdhdWRpdCcgfHwgbHMuaXNFbXBsb3llcigpXCI+SG9tZTwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5GaWxlV2Vla2xpZXNcIiBwVG9vbHRpcD1cInt7J2hlYWRlci53ZWVrbHkudG9vbHRpcCcgfCB0cmFuc2xhdGV9fVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3dlZWtsaWVzJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwibHMuaXNDbGFpbWFudCgpICYmIGxlZ2FjeU1lbnUgPT0gJ2ZhbHNlJ1wiIChjbGljayk9XCJvcGVuV2Vla2xpZXMoKVwiIGNsYXNzPVwiaGlkZS14cyBoaWRlLW1kXCI+e3tsZWdhY3lNZW51ID09ICd0cnVlJyA/ICdXZWVrbHknIDogJ1dlZWtseSd9fTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBpZD1cImJ0bkZpbGVXZWVrbGllc1wiIHBUb29sdGlwPVwie3snaGVhZGVyLndlZWtseS50b29sdGlwJyB8IHRyYW5zbGF0ZX19XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnd2Vla2xpZXMnKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJscy5pc0NsYWltYW50KCkgJiYgbGVnYWN5TWVudSA9PSAndHJ1ZScgJiYgIXV0aWwuaXNTdGF0ZSgnTUUnKVwiIChjbGljayk9XCJvcGVuV2Vla2xpZXMoKVwiPnt7bGVnYWN5TWVudSA9PSAndHJ1ZScgPyAnV2Vla2x5JyA6ICdXZWVrbHknfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5GaWxlV2Vla2xpZXNcIiBwVG9vbHRpcD1cInt7J2hlYWRlci53ZWVrbHkudG9vbHRpcCcgfCB0cmFuc2xhdGV9fVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3dlZWtsaWVzJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwibHMuaXNDbGFpbWFudCgpICYmIGxlZ2FjeU1lbnUgPT0gJ3RydWUnICYmIHV0aWwuaXNTdGF0ZSgnTUUnKVwiIChjbGljayk9XCJvcGVuV2Vla2xpZXMoKVwiPnt7bGVnYWN5TWVudSA9PSAndHJ1ZScgPyAnV2Vla2x5IENsYWltJyA6ICdXZWVrbHknfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgXHJcbiAgICAgICBcclxuICAgICAgICA8aW9uLWJ1dHRvbiBwVG9vbHRpcD1cIkhpc3RvcnlcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpID09ICdoaXN0b3J5JyA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJscy5pc0NsYWltYW50KCkgJiYgbGVnYWN5TWVudSA9PSAnZmFsc2UnICYmIGludGVyaW1Ib21lUGFnZSA9PSAnZmFsc2UnXCIgKGNsaWNrKT1cIm9wZW5QYWdlKCdjcCcsICdoaXN0b3J5JylcIiBjbGFzcz1cImhpZGUteHMgaGlkZS1tZFwiPkhpc3Rvcnk8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRFbXBsb3llckRhc2hib2FyZFwiIHBUb29sdGlwPVwiRW1wbG95ZXJEYXNoYm9hcmRcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdlbXBsb3llci1kYXNoYm9hcmQnKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJscy5pc0VtcGxveWVyKClcIiAoY2xpY2spPVwib3BlbkVtcGxveWVyRGFzaGJvYXJkKClcIj5BdWRpdCBEYXNoYm9hcmQ8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdE15UVwiIHBUb29sdGlwPVwiTXlRXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnbXlxJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IGxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpXCIgKGNsaWNrKT1cIm9wZW5TdXBlcnZpc29yTXlRKClcIj5NeVE8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdERhc2hib2FyZFwiIHBUb29sdGlwPVwiRGFzaGJvYXJkXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnZGFzaGJvYXJkJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpXCIgKGNsaWNrKT1cIm9wZW5BdWRpdERhc2hib2FyZCgpXCI+RGFzaGJvYXJkPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRXb3JrTGlzdFwiIHBUb29sdGlwPVwiV29ya0xpc3RcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdhdWRpdG9yLXdvcmstbGlzdCcpID8gJ2hlYWRlci1idXR0b24nIDogJydcIiAqbmdJZj1cInRoaXMuY29udGV4dD09J2F1ZGl0JyAmJiAobHMuaXNUYXhBdWRpdEF1ZGl0b3IoKSB8fCBscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpKVwiIChjbGljayk9XCJvcGVuQXVkaXRvcldvcmtMaXN0KClcIj5Xb3JrIExpc3Q8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdElucXVpcnlcIiBwVG9vbHRpcD1cIklucXVpcnlcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdpbnF1aXJ5JykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IGxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpIHx8ICBscy5oYXNSb2xlKCd0YXhhdWRpdGFnZW5jeXN0YWZmJylcIiAoY2xpY2spPVwib3BlblN1cGVydmlzb3JJbnF1aXJ5KClcIj5JbnF1aXJ5PC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRVcGxvYWREb2N1bWVudHNcIiBwVG9vbHRpcD1cIlVwbG9hZCBEb2N1bWVudHNcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCd1cGxvYWQtZG9jdW1lbnRzJykgfHwgci51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnZW1wbG95ZXItZG9jdW1lbnRzJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIGxzLmlzRW1wbG95ZXIoKVwiIChjbGljayk9XCJvcGVuVXBsb2FkRG9jdW1lbnRzKClcIiBbZGlzYWJsZWRdPVwiIWlzRW1wbG95ZXJMb2FkZWRcIj5VcGxvYWQgRG9jdW1lbnRzPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRRdWVzdGlvbm5haXJlXCIgcFRvb2x0aXA9XCJRdWVzdGlvbm5haXJlXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnYXVkaXRvci1xdWVzdGlvbm5haXJlJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0QXVkaXRvcigpIHx8IGxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkpXCIgKGNsaWNrKT1cIm9wZW5RdWVzdGlvbm5haXJlKClcIj5RdWVzdGlvbm5haXJlPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRRdWVzdGlvbm5haXJlXCIgcFRvb2x0aXA9XCJRdWVzdGlvbm5haXJlXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnYXVkaXRvci1xdWVzdGlvbm5haXJlJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc0VtcGxveWVyKCkpXCIgKGNsaWNrKT1cIm9wZW5RdWVzdGlvbm5haXJlKClcIiBbZGlzYWJsZWRdPVwiIWlzUXVlc3Rpb25uYWlyZURhdGFMb2FkZWRcIj5RdWVzdGlvbm5haXJlPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRSZWZlcnJhbHNcIiBwVG9vbHRpcD1cIlJlZmVycmFsc1wiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3JlZmVycmFsJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IGxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpIHx8ICBscy5oYXNSb2xlKCd0YXhhdWRpdGFnZW5jeXN0YWZmJylcIiAoY2xpY2spPVwib3BlblN1cGVydmlzb3JSZWZlcnJhbHMoKVwiPlJlZmVycmFsczwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBpZD1cImJ0bkF1ZGl0QXNzaWduXCIgcFRvb2x0aXA9XCJBc3NpZ25cIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdhc3NpZ24nKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJ0aGlzLmNvbnRleHQ9PSdhdWRpdCcgJiYgbHMuaXNUYXhBdWRpdFN1cGVydmlzb3IoKVwiIChjbGljayk9XCJvcGVuU3VwZXJ2aXNvckFzc2lnbigpXCI+QXNzaWduPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIGlkPVwiYnRuQXVkaXRUZWFtXCIgcFRvb2x0aXA9XCJUZWFtXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygndGVhbScpID8gJ2hlYWRlci1idXR0b24nIDogJydcIiAqbmdJZj1cInRoaXMuY29udGV4dD09J2F1ZGl0JyAmJiBscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpXCIgKGNsaWNrKT1cIm9wZW5TdXBlcnZpc29yVGVhbSgpXCI+VGVhbTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBpZD1cImJ0bkF1ZGl0Q29uZmlnXCIgcFRvb2x0aXA9XCJDb25maWdcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCdjb25maWcnKSA/ICdoZWFkZXItYnV0dG9uJyA6ICcnXCIgKm5nSWY9XCJ0aGlzLmNvbnRleHQ9PSdhdWRpdCcgJiYgKGxzLmlzVGF4QXVkaXRTdXBlcnZpc29yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpXCIgKGNsaWNrKT1cIm9wZW5TdXBlcnZpc29yQ29uZmlnKClcIj5Db25maWc8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdEFuYWx5dGljc1wiIHBUb29sdGlwPVwiQW5hbHl0aWNzXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwici51cmwucmVwbGFjZSgnLycsICcnKS5pbmNsdWRlcygnYW5hbHl0aWNzJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIChscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpIHx8IGxzLmlzVGF4QXVkaXRBdWRpdG9yKCkgfHwgbHMuaXNUYXhBdWRpdERpcmVjdG9yKCkpXCIgKGNsaWNrKT1cIm9wZW5TdXBlcnZpc29yQW5hbHl0aWNzKClcIj5BbmFseXRpY3M8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJidG5BdWRpdFRQU0lucXVpcnlcIiBwVG9vbHRpcD1cIklucXVpcnlcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCd0cHMtdW5pdmVyc2UnKSB8fCByLnVybC5yZXBsYWNlKCcvJywgJycpLmluY2x1ZGVzKCd0cHMtaW5xdWlyeScpID8gJ2hlYWRlci1idXR0b24nIDogJydcIiAqbmdJZj1cInRoaXMuY29udGV4dD09J2F1ZGl0JyAmJiB0aGlzLmxzLmhhc1JvbGUoJ3Rwc3NwZWNpYWxpc3QnKSAmJiAoICFscy5pc1RheEF1ZGl0QXVkaXRvcigpICYmICFscy5pc1RheEF1ZGl0U3VwZXJ2aXNvcigpKVwiIChjbGljayk9XCJvcGVuVFBTSW5xdWlyeSgpXCI+SW5xdWlyeTwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8aW9uLWJ1dHRvbiBpZD1cImJ0bkF1ZGl0VFBBUXVlc3Rpb25uYWlyZVwiIHBUb29sdGlwPVwiUXVlc3Rpb25uYWlyZVwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cInIudXJsLnJlcGxhY2UoJy8nLCAnJykuaW5jbHVkZXMoJ3RwYS1xdWVzdGlvbm5haXJlJykgPyAnaGVhZGVyLWJ1dHRvbicgOiAnJ1wiICpuZ0lmPVwidGhpcy5jb250ZXh0PT0nYXVkaXQnICYmIHRoaXMubHMuaXNUcGEoKSAmJiAhbHMuaXNUYXhBdWRpdEF1ZGl0b3IoKSAmJiAhbHMuaXNUYXhBdWRpdFN1cGVydmlzb3IoKVwiIChjbGljayk9XCJvcGVuVFBBUXVlc3Rpb25uYWlyZSgpXCI+UXVlc3Rpb25uYWlyZTwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICA8L2lvbi1idXR0b25zPlxyXG5cclxuICAgIFxyXG4gICAgPGRpdiBjbGFzcz1cInRvb2xiYXItY29udGVudCBoaWRlLXhzXCIgKm5nSWY9XCJscy5pc0xvZ2dlZEluKCkgJiYgbHMuaXNDc3IoKSAmJiB0aGlzLmNvbnRleHQgIT0nYXVkaXQnICYmIGNvbnRleHRSb290ID09PSdzcydcIj5cclxuICAgICAgICA8cC1hdXRvQ29tcGxldGUgYXBwZW5kVG89XCJib2R5XCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCIgW3N1Z2dlc3Rpb25zXT1cInJlc3VsdHNcIlxyXG4gICAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwic2VhcmNoKCRldmVudClcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBDbGFpbWFudHNcIiAob25TZWxlY3QpPVwib25TZWxlY3RBY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIGVtcHR5TWVzc2FnZT1cIk5vIFJlc3VsdHMgRm91bmQuXCIgc2l6ZT1cIjI1XCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdXNlciBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLXJvdyBjbGFzcz1cIi5pb24td3JhcFwiID5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplLWF1dG8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tdGV4dD57e3VzZXIuZmlyc3ROYW1lIHwgcHJvcGVyQ2FzZX19IHt7dXNlci5sYXN0TmFtZSB8IHByb3BlckNhc2V9fTwvaW9uLXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemUtYXV0bz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi10ZXh0Pnt7dXNlci51c2VySWR9fTwvaW9uLXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemUtYXV0bz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi10ZXh0Pnt7dXRpbC5tYXNrU3NuKHVzZXIuc3NuKX19PC9pb24tdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9wLWF1dG9Db21wbGV0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIiAqbmdJZj1cImxzLmlzTG9nZ2VkSW4oKVwiID5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwicHJlc2VudE15UHJvZmlsZVBvcG92ZXIoJGV2ZW50KVwiIHBUb29sdGlwPVwiQWNjb3VudFwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtuZ0NsYXNzXT1cImxlZ2FjeU1lbnUgPT0gJ2ZhbHNlJyAmJiBscy5pc0NsYWltYW50KCkgJiYgc2hvd1Byb2ZpbGVQb3B1cCA/ICdoaWRlLXhzIGhpZGUtbWQgaGVhZGVyLWJ1dHRvbicgOiAobGVnYWN5TWVudSA9PSAnZmFsc2UnICYmIGxzLmlzQ2xhaW1hbnQoKSA/ICdoaWRlLXhzIGhpZGUtbWQnIDogJycpXCI+XHJcbiAgICAgICAgICAgIDxpb24tdGl0bGUgc3R5bGU9XCJmb250LXNpemU6IDIwcHg7IHBhZGRpbmc6IDBweDtcIiBjbGFzcz1cImhpZGUteHNcIj57e2xzLmdldEZ1bGxOYW1lKCkgfCBwcm9wZXJDYXNlfX08L2lvbi10aXRsZT5cclxuICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJlbmRcIiBuYW1lPVwicGVyc29uLWNpcmNsZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cIm9wZW5QYWdlKCdjcCcsICdkb2N1bWVudHMnKVwiIHBUb29sdGlwPVwiTm90aWNlc1wiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiICpuZ0lmPVwiIWxzLmlzQ3NyKCkgJiYgbGVnYWN5TWVudSA9PSAnZmFsc2UnICYmICF1dGlsLmlzU3RhdGUoJ01FJylcIiBbbmdDbGFzc109XCJyLnVybC5yZXBsYWNlKCcvJywgJycpID09ICdkb2N1bWVudHMnID8gJ2hlYWRlci1idXR0b24gaGlkZS14cyBoaWRlLW1kJyA6ICdoaWRlLXhzIGhpZGUtbWQnXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPSdwaSBwaS1maWxlIGZvbnQtYm9sZCcgc3R5bGU9XCJmb250LXNpemU6IDEuM3JlbTsgIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDtcIj48L2k+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJvcGVuUGFnZSgnY3AnLCAnZG9jdW1lbnRzJylcIiBwVG9vbHRpcD1cIk5vdGljZXNcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiAqbmdJZj1cIiFscy5pc0NzcigpICYmIGxlZ2FjeU1lbnUgPT0gJ3RydWUnXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiZG9jdW1lbnQtdGV4dC1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICAgIFxyXG4gICAgICAgIDwhLS0gPGlvbi1idXR0b24gKGNsaWNrKT1cInByZXNlbnRKb2JTZWFyY2hSZXN1bHRQb3B1cCgpXCIgcFRvb2x0aXA9XCJTaG93IGpvYiBzZWFyY2ggcmVzdWx0XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgW25nQ2xhc3NdPVwibGVnYWN5TWVudSA9PSAnZmFsc2UnICYmIGxzLmlzQ2xhaW1hbnQoKSA/ICdoaWRlLXhzIGhpZGUtbWQnIDogJydcIiAqbmdJZj1cImxzLmlzQ2xhaW1hbnQoKSAmJiBsZWdhY3lNZW51ID09ICdmYWxzZScgJiYgdXRpbC5pc1N0YXRlKCdNUycpXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiYnJpZWZjYXNlXCIgZmlsbD1cIm91dGxpbmVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgIDwvaW9uLWJ1dHRvbj4gLS0+XHJcbiAgICAgICAgXHJcbiAgICAgICAgXHJcbiAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cInByZXNlbnRNeU5vdGlmaWNhdGlvblBvcG92ZXIoJGV2ZW50KVwiIHBUb29sdGlwPVwiTm90aWZpY2F0aW9uXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCJcclxuICAgICAgICAgICAgKm5nSWY9XCIhbnMuc2hvd05vdGlmaWNhdGlvbkxvYWRlciAmJiAhdXRpbC5pc1N0YXRlKCdNRScpXCIgW25nQ2xhc3NdPVwibGVnYWN5TWVudSA9PSAnZmFsc2UnICYmIGxzLmlzQ2xhaW1hbnQoKSA/ICdoaWRlLXhzIGhpZGUtbWQnIDogJydcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJub3RpZmljYXRpb25zLW91dGxpbmVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICA8aW9uLWJhZGdlIGNvbG9yPVwiZGFya1wiICpuZ0lmPVwibnMubm90aWZpY2F0aW9uQ291bnQuZ2V0VmFsdWUoKSA+IDBcIj5cclxuICAgICAgICAgICAgICAgIDxpb24tbGFiZWw+e3tucy5ub3RpZmljYXRpb25Db3VudC5nZXRWYWx1ZSgpfX08L2lvbi1sYWJlbD5cclxuICAgICAgICAgICAgPC9pb24tYmFkZ2U+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIiAqbmdJZj1cIm5zLnNob3dOb3RpZmljYXRpb25Mb2FkZXJcIj48L2lvbi1zcGlubmVyPlxyXG5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwidGhpcy5ocy5zaG93KClcIiBwVG9vbHRpcD1cIkhlbHBcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiAqbmdJZj1cImxzLmlzQ2xhaW1hbnQoKSAmJiBsZWdhY3lNZW51ID09ICdmYWxzZScgJiYgKGhzLnNob3VsZERpc3BsYXlIZWxwQnV0dG9uKCkgfCBhc3luYylcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJoZWxwLWNpcmNsZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICA8L2lvbi1idXR0b25zPlxyXG5cclxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic2Vjb25kYXJ5XCIgKm5nSWY9XCIhbHMuaXNMb2dnZWRJbigpICYmIGxzLmdldFVzZXIoKVwiPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJsb2dvdXQoKVwiIHBUb29sdGlwPVwiTG9nb3V0XCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCI+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwibG9nLW91dC1zaGFycFwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgPC9pb24tYnV0dG9ucz5cclxuXHJcbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiICpuZ0lmPVwic2hvd0xhbmd1YWdlT3B0aW9uID09PSAndHJ1ZScgJiYgKCFscy5nZXRVc2VyKCkgJiYgbGVnYWN5TWVudSA9PSAnZmFsc2UnKVwiPlxyXG4gICAgICAgIDxwLW1lbnUgI21lbnUgW3BvcHVwXT1cInRydWVcIiBbbW9kZWxdPVwiaXRlbXNcIiBhcHBlbmRUbz1cImJvZHlcIj48L3AtbWVudT5cclxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwibWVudS50b2dnbGUoJGV2ZW50KVwiIHBUb29sdGlwPVwiTGFuZ3VhZ2VcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIj5cclxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwibGFuZ3VhZ2VcIiBzbG90PVwiZW5kXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIDwvaW9uLWJ1dHRvbnM+XHJcblxyXG48L2lvbi10b29sYmFyPlxyXG48aW9uLXRvb2xiYXIgY29sb3I9XCJsaWdodFwiIGlkPVwic2Vjb25kVG9vbGJhclwiICpuZ0lmPVwic2Vjb25kVG9vbGJhclwiPlxyXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiPlxyXG4gICAgICAgIDxpb24tYmFjay1idXR0b24gcFRvb2x0aXA9XCJCYWNrXCIgYWx0PVwiQmFja1wiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIFtkZWZhdWx0SHJlZl09XCJiYWNrUGFnZSA/IGJhY2tQYWdlIDogJy93ZWxjb21lJ1wiPjwvaW9uLWJhY2stYnV0dG9uPlxyXG4gICAgICAgIDxpb24tdGl0bGUgY29sb3I9XCJwcmltYXJ5XCIgKm5nSWY9XCJ0aXRsZVwiIHN0eWxlPVwiZm9udC1zaXplOiAxOHB4XCI+e3t0aXRsZX19PC9pb24tdGl0bGU+XHJcbiAgICA8L2lvbi1idXR0b25zPlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cclxuICAgICAgICA8aW9uLXRpdGxlIGNvbG9yPVwicHJpbWFyeVwiIHN0eWxlPVwiZm9udC1zaXplOiB4eC1zbWFsbDsgZmxvYXQ6IHJpZ2h0OyBwYWRkaW5nLXJpZ2h0OiA4cHg7XCIgKm5nSWY9XCJwYWdlSWRcIj5cclxuICAgICAgICAgICAge3twYWdlSWR9fTwvaW9uLXRpdGxlPlxyXG4gICAgPC9pb24tYnV0dG9ucz5cclxuPC9pb24tdG9vbGJhcj5cclxuPHAtdG9hc3Q+XHJcbiAgICA8bmctdGVtcGxhdGUgbGV0LW1lc3NhZ2UgcFRlbXBsYXRlPVwibWVzc2FnZVwiPlxyXG4gICAgICAgIDxpICpuZ0lmPVwibWVzc2FnZS5zZXZlcml0eSA9PT0gJ2Vycm9yJ1wiIGNsYXNzPVwicGkgcGktdGltZXMtY2lyY2xlXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDE0cHg7IGZvbnQtc2l6ZTogMzhweCBcIj48L2k+XHJcbiAgICAgICAgPGkgKm5nSWY9XCJtZXNzYWdlLnNldmVyaXR5ID09PSAnc3VjY2VzcydcIiBjbGFzcz1cInBpIHBpLWNoZWNrLWNpcmNsZVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxNHB4OyBmb250LXNpemU6IDM4cHggXCI+PC9pPlxyXG4gICAgICAgIDxpICpuZ0lmPVwibWVzc2FnZS5zZXZlcml0eSA9PT0gJ3dhcm4nXCIgY2xhc3M9XCJwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGVcInN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxNHB4OyBmb250LXNpemU6IDM4cHggXCI+PC9pPlxyXG4gICAgICAgIDxpICpuZ0lmPVwibWVzc2FnZS5zZXZlcml0eSA9PT0gJ2luZm8nXCIgY2xhc3M9XCJwaSBwaS1pbmZvLWNpcmNsZVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxNHB4OyBmb250LXNpemU6IDM4cHggXCI+PC9pPlxyXG5cclxuICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwiJzxzdHJvbmcgc3R5bGU9XFwnZm9udC1zaXplOiAyMnB4O2ZvbnQtd2VpZ2h0OiBib2xkO1xcJz4nICsgbWVzc2FnZS5zdW1tYXJ5ICsgJzwvc3Ryb25nPjxicj48YnI+JyArIFxyXG4gICAgICAgICAgICAnPHNwYW4gc3R5bGU9XFwnZm9udC1zaXplOiAxOHB4O1xcJz4nICsgbWVzc2FnZS5kZXRhaWwgKyAnPC9zcGFuPidcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L3AtdG9hc3Q+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1Byb2ZpbGVQb3B1cFwiPlxyXG4gICAgPGFwcC1wcm9maWxlICpuZ0lmPVwic2hvd1Byb2ZpbGVQb3B1cFwiIChvbkNhbmNlbCk9XCJzaG93UHJvZmlsZVBvcHVwID0gIXNob3dQcm9maWxlUG9wdXBcIj48L2FwcC1wcm9maWxlPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxhcHAtam9iLXNlYXJjaC1yZXN1bHQtcGFnZSAqbmdJZj1cInNob3dqb2JTZWFyY2hSZXN1bHRQb3B1cFwiIChvbkNhbmNlbCk9XCJzaG93am9iU2VhcmNoUmVzdWx0UG9wdXAgPSAhc2hvd2pvYlNlYXJjaFJlc3VsdFBvcHVwXCI+PC9hcHAtam9iLXNlYXJjaC1yZXN1bHQtcGFnZT5cclxuXHJcblxyXG5cclxuIl19
@@ -6091,24 +6091,15 @@ class HeaderComponent extends BasePage {
6091
6091
  }
6092
6092
  openAuditDashboard() {
6093
6093
  if (this.context == 'audit') {
6094
- let userModel = this.ls.getUser();
6095
- var tempVal = JSON.stringify({ param1: "taxAudit" });
6096
- var encVal = btoa(tempVal);
6097
- var date = new Date();
6098
- date.setTime(date.getTime() + 60000);
6099
- const domain = ".dol.ct.gov";
6100
- var expires = "expires=" + date.toUTCString();
6101
- document.cookie = "parApToM=" + encVal + ";path=/;expires=" + expires + ";domain=" + domain + ";SameSite=Lax;";
6102
- var cookie = "parApToM=" + encVal + ";path=/" + ";domain=.dol.ct.gov" + ";expires=" + expires + ";";
6103
- var isHttps = window.location.protocol === 'https:';
6104
- if (isHttps) {
6105
- cookie += "SameSite=None; Secure";
6094
+ if (this.ls.isTaxAuditSupervisor() || this.ls.isTaxAuditDirector()) {
6095
+ this.openPage('audit', '/dashboard');
6106
6096
  }
6107
- else {
6108
- cookie += "SameSite=None";
6097
+ else if (this.ls.isTaxAuditAuditor()) {
6098
+ this.openPage('audit', '/myq');
6099
+ }
6100
+ else if (this.ls.isEmployer()) {
6101
+ this.openPage('audit', '/'); //Add the actual url for employer audit dashboard
6109
6102
  }
6110
- document.cookie = cookie;
6111
- window.open(`${LibConstants.taxUrlExternal}/faces/virtual/contextswitch.xhtml?a=${userModel.access_token}&TAXAUDIT_PORTAL=true`, '_self');
6112
6103
  }
6113
6104
  }
6114
6105
  openAuditorWorkList() {