@esfaenza/core 15.2.185 → 15.2.186

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.
@@ -56,6 +56,9 @@ export class Navbar extends ReactiveComponent {
56
56
  this.newVersionWarned = false;
57
57
  this._state.subscribe("menu.isCollapsed", (isCollapsed) => { this.isMenuCollapsed = isCollapsed; });
58
58
  this._state.subscribe("app.completedJob", (jobDescription) => {
59
+ // Ticket 30681: non ne voglio più sapere un cazzo
60
+ if (jobDescription == "null")
61
+ jobDescription = null;
59
62
  this.msgExts.simpleSuccess(this.lc.loc("Job Completato") + (jobDescription ? (": " + jobDescription) : ''), "toastr");
60
63
  this.cdr.markForCheck();
61
64
  });
@@ -180,4 +183,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
180
183
  type: ViewChild,
181
184
  args: ["navbar", { static: false }]
182
185
  }] } });
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zcmMvbmF2YmFyL25hdmJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL25hdmJhci9uYXZiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFjLE1BQU0sRUFBUSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUksT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSWxGLFdBQVc7QUFDWCxPQUFPLEVBQTRCLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBbUcsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUc3SyxXQUFXO0FBQ1gsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUs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QUFFLElBQUksRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixDQUFDOzswQkFvQnBELE1BQU07MkJBQUMsaUJBQWlCOzswQkFDdEosTUFBTTsyQkFBQyxnQkFBZ0I7NENBUlksTUFBTTtzQkFBN0MsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBUeXBlLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyLCBSb3V0ZXJMaW5rIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGVcIjtcclxuaW1wb3J0IHsgTmdJZiwgTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBCYXNlTWVzc2FnZVNlcnZpY2UsIE5vdGlmaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9zaWduYWxyLW5vdGlmaWNhdGlvbnNcIjtcclxuaW1wb3J0IHsgQ2FjaGVTZXJ2aWNlLCBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UsIExvY2FsaXphdGlvbk1vZHVsZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBIVFRQU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvaHR0cHNlcnZpY2VcIjtcclxuXHJcbi8vIEVzRmFlbnphXHJcbmltcG9ydCB7IEVzVGFibGVDb2x1bW5zRGVmaW5pdGlvbiwgRXNUYWJsZU1vZHVsZSB9IGZyb20gXCJAZXNmYWVuemEvZXMtdGFibGVcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50SG9zdERpcmVjdGl2ZSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9kaXJlY3RpdmVzXCI7XHJcbmltcG9ydCB7IEphY2VJZGVudGl0eSwgQWN0aXZlTW9kdWxlVmlldywgRW52T3B0aW9ucywgQXBwbGljYXRpb25Kb2IsIFNlYXJjaFJlc3VsdCwgU2VhcmNoUmVzdWx0Q29udGFpbmVyLCBOQVZCQVJfRVhURU5TSU9OUywgTE9HSU5fVVJMX0xFR0FDWSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9kb21haW5cIjtcclxuaW1wb3J0IHsgQXBwU3RhdGUsIENvbXBsZXRlZEpvYlJlZGlyZWN0aW9uU2VydmljZSwgR2xvYmFsU2VhcmNoU2VydmljZSwgVG9rZW5TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL3NlcnZpY2VzXCI7XHJcblxyXG4vLyBMaWJyZXJpZVxyXG5pbXBvcnQgeyBpbnRlcnZhbCwgc3RhcnRXaXRoLCB0YWtlVW50aWwsIHRha2VXaGlsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFByb2dyZXNzYmFyTW9kdWxlIH0gZnJvbSBcIm5neC1ib290c3RyYXAvcHJvZ3Jlc3NiYXJcIjtcclxuaW1wb3J0IHsgQnNEcm9wZG93bk1vZHVsZSB9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duXCI7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgTmF2QmFyTG9jIH0gZnJvbSBcIi4vbmF2YmFyLmNvbXBvbmVudC5sb2NcIjtcclxuXHJcbi8vIENvbXBvbmVudGlcclxuaW1wb3J0IHsgUmVhY3RpdmVDb21wb25lbnQgfSBmcm9tIFwiLi4vYmFzZS9yZWFjdGl2ZS5jb21wb25lbnRcIjtcclxuXHJcbi8vIENoaWFtYXRlIGFpIFJlcG9zaXRvcnlcclxuY29uc3QgR0VUX0phY2VfR2V0QWN0aXZlSmFjZU1vZHVsZXM6IHN0cmluZyA9IFwiL2FwaS9KYWNlL0dldEFjdGl2ZUphY2VNb2R1bGVzXCI7XHJcbmNvbnN0IEdFVF9DYWNoZV9DbGVhckFsbENhY2hlczogc3RyaW5nID0gXCIvYXBpL0NhY2hlL0NsZWFyQWxsQ2FjaGVzXCI7XHJcblxyXG5kZWNsYXJlIHZhciBteWNvbmZpZzogRW52T3B0aW9ucztcclxuZGVjbGFyZSB2YXIgZGF5anM7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcIm5hdmJhclwiLFxyXG4gICAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogTG9jYWxpemF0aW9uU2VydmljZSwgdXNlQ2xhc3M6IE5hdkJhckxvYyB9XSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0eWxlVXJsczogW1wiLi9uYXZiYXIuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL25hdmJhci5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtSb3V0ZXJMaW5rLCBGb3Jtc01vZHVsZSwgQnNEcm9wZG93bk1vZHVsZSwgTWF0U2xpZGVUb2dnbGVNb2R1bGUsIE5nSWYsIE5nRm9yLCBQcm9ncmVzc2Jhck1vZHVsZSwgQ29tcG9uZW50SG9zdERpcmVjdGl2ZSwgTmdUZW1wbGF0ZU91dGxldCwgRXNUYWJsZU1vZHVsZSwgTG9jYWxpemF0aW9uTW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmF2YmFyIGV4dGVuZHMgUmVhY3RpdmVDb21wb25lbnQge1xyXG5cclxuICAgIHB1YmxpYyBhcHBsaWNhdGlvblZlcnNpb24gPSBteWNvbmZpZy5BcHBEYXRhLkNvbXBvbmVudFZlcnNpb247XHJcbiAgICBwdWJsaWMgYXBwbGljYXRpb25FbnZpcm9ubWVudCA9IG15Y29uZmlnLkFwcERhdGEuQ29tcG9uZW50RW52aXJvbm1lbnQ7XHJcblxyXG4gICAgcHVibGljIGlzTWVudUNvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGFub21hbGllc1Byb2Nlc3Npbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwdWJsaWMgQ3VycmVudElkZW50aXR5OiBKYWNlSWRlbnRpdHk7XHJcblxyXG4gICAgcHJpdmF0ZSBuZXdWZXJzaW9uV2FybmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBAVmlld0NoaWxkKFwibmF2YmFyXCIsIHsgc3RhdGljOiBmYWxzZSB9KSBuYXZiYXI6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgcHVibGljIE1vZHVsZXM6IEFjdGl2ZU1vZHVsZVZpZXdbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHByZWZzU2VydmljZTogUHJlZmVyZW5jZXNTZXJ2aWNlLCBwcml2YXRlIGNhY2hlU2VydmljZTogQ2FjaGVTZXJ2aWNlLCBwcml2YXRlIE1lc3NhZ2VEZWY6IEJhc2VNZXNzYWdlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLCBwcml2YXRlIG1zZ0V4dHM6IE1lc3NhZ2VTZXJ2aWNlLCBwdWJsaWMgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsIHByaXZhdGUgaHR0cDogSFRUUFNlcnZpY2UsIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHB1YmxpYyBfc3RhdGU6IEFwcFN0YXRlLCBwdWJsaWMgc3I6IFRva2VuU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBjanJTZXJ2aWNlOiBDb21wbGV0ZWRKb2JSZWRpcmVjdGlvblNlcnZpY2UsIEBJbmplY3QoTkFWQkFSX0VYVEVOU0lPTlMpIHB1YmxpYyBleHRlbnNpb25Db21wb25lbnRzOiBUeXBlPGFueT5bXSxcclxuICAgICAgICBASW5qZWN0KExPR0lOX1VSTF9MRUdBQ1kpIHB1YmxpYyBsb2dpblVybExlZ2FjeTogYm9vbGVhbikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX3N0YXRlLnN1YnNjcmliZShcIm1lbnUuaXNDb2xsYXBzZWRcIiwgKGlzQ29sbGFwc2VkKSA9PiB7IHRoaXMuaXNNZW51Q29sbGFwc2VkID0gaXNDb2xsYXBzZWQ7IH0pO1xyXG4gICAgICAgIHRoaXMuX3N0YXRlLnN1YnNjcmliZShcImFwcC5jb21wbGV0ZWRKb2JcIiwgKGpvYkRlc2NyaXB0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubXNnRXh0cy5zaW1wbGVTdWNjZXNzKHRoaXMubGMubG9jKFwiSm9iIENvbXBsZXRhdG9cIikgKyAoam9iRGVzY3JpcHRpb24gPyAoXCI6IFwiICsgam9iRGVzY3JpcHRpb24pIDogJycpLCBcInRvYXN0clwiKTtcclxuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuX3N0YXRlLnN1YnNjcmliZShcImFwcC5zdGFydGVkSm9iXCIsIChfKSA9PiB7IHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpOyB9KTtcclxuICAgICAgICB0aGlzLl9zdGF0ZS5zdWJzY3JpYmUoXCJhcHAucHJvZ3Jlc3NKb2JcIiwgKF8pID0+IHsgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7IH0pO1xyXG5cclxuICAgICAgICB0aGlzLmhhbmRsZUJhc2VOb3RpZmljYXRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5nZXRBY3RpdmVKYWNlTW9kdWxlcygpO1xyXG5cclxuICAgICAgICAvLyBBcHBlbmEgbGEgcGFnaW5hIHBhcnRlLCBwb2kgb2duaSBzZWNvbmRvLCBjb250cm9sbG8gbCdpZGVudGl0eSBwZXIgdmVyaWZpY2FyZSBzZSByaW1hbmUgbGEgc3Rlc3NhXHJcbiAgICAgICAgaW50ZXJ2YWwoMTAwMCkucGlwZShcclxuICAgICAgICAgICAgc3RhcnRXaXRoKDApLFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSxcclxuICAgICAgICAgICAgdGFrZVdoaWxlKF8gPT4gIW15Y29uZmlnLnJlZGlyZWN0SW5Qcm9ncmVzcylcclxuICAgICAgICApLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja0lkZW50aXR5KCk7XHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgICAgIC8vUXVhbmRvIHZpZW5lIGRpc3RydXR0YSBsYSBuYXZiYXIgZGV2byBkaXN0cnVnZ2VyZSBhbmNoZSBpbCBjbGllbnQgZGkgc2lnbmFsciBwZXJjaMOoIHZ1b2wgZGlyZSBjaGUgaG8gY2hpdXNvIGxhIHBhZ2luYVxyXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9ucy5kaXNjb25uZWN0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVCYXNlTm90aWZpY2F0aW9ucygpIHtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMuc2VuZCh0aGlzLk1lc3NhZ2VEZWYuT1VUX1F1ZXJ5Sm9iU3RhdHVzLCBudWxsKTtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMub2JzZXJ2ZSh0aGlzLk1lc3NhZ2VEZWYuSU5fU2VuZFZlcnNpb24pLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSgobWVzc2FnZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAobWVzc2FnZSAhPSBteWNvbmZpZy5BcHBEYXRhLkNvbXBvbmVudFZlcnNpb24gJiYgIXRoaXMubmV3VmVyc2lvbldhcm5lZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tc2dFeHRzLnNpbXBsZVdhcm5pbmcodGhpcy5sYy5sb2MoXCLDiCBkaXNwb25pYmlsZSB1bmEgbnVvdmEgdmVyc2lvbmUgcGVyIGwnYXBwbGljYXppb25lIGNvcnJlbnRlLiBTaSBzdWdnZXJpc2NlIGRpIHJpY2FyaWNhcmUgbGEgcGFnaW5hIChDVFJMICsgRjUpXCIpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubmV3VmVyc2lvbldhcm5lZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoZWNrSWRlbnRpdHkoKSB7XHJcbiAgICAgICAgbGV0IGlkID0gdGhpcy5zci5nZXRKYWNlSWRlbnRpdHkoKTtcclxuICAgICAgICBsZXQgaWRMYXN0ID0gdGhpcy5DdXJyZW50SWRlbnRpdHk7XHJcblxyXG4gICAgICAgIGlmICghaWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgdGhpcy5jaGVja1Nlc3Npb25UaW1lb3V0KGlkKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuQ3VycmVudElkZW50aXR5ICYmIChpZC5JZEFjY291bnQgIT0gaWRMYXN0Py5JZEFjY291bnQgfHwgaWQuSWRVc2VyICE9IGlkTGFzdD8uSWRVc2VyIHx8IGlkLklkdGVuYW50ICE9IGlkTGFzdD8uSWR0ZW5hbnQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXNnRXh0cy5zaW1wbGVXYXJuaW5nKHRoaXMubGMubG9jKFwiTGUgaW5mb3JtYXppb25pIGRpIFNlc3Npb25lIChUZW5hbnQvQWNjb3VudCkgc29ubyBjYW1iaWF0ZSBhIHNlZ3VpdG8gZGkgdW4gbG9naW4gc3UgbW9kdWxvIGRpdmVyc28gdXRpbGl6emFuZG8gZGl2ZXJzbyBUZW5hbnQvVXRlbnRlIHN1bGxvIHN0ZXNzbyBicm93c2VyLiBTaSBzdWdnZXJpc2NlIGRpIHJpY2FyaWNhcmUgbGEgcGFnaW5hIChDVFJMICsgRjUpXCIpKTtcclxuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLkN1cnJlbnRJZGVudGl0eSA9IGlkO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFjdGl2ZUphY2VNb2R1bGVzKCkge1xyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQ8QWN0aXZlTW9kdWxlVmlld1tdPihHRVRfSmFjZV9HZXRBY3RpdmVKYWNlTW9kdWxlcykuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuTW9kdWxlcyA9IHJlcztcclxuICAgICAgICAgICAgdGhpcy5fc3RhdGUuTW9kdWxlcyA9IHRoaXMuTW9kdWxlcztcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoZWNrU2Vzc2lvblRpbWVvdXQoaWRlbnRpdHk6IEphY2VJZGVudGl0eSkge1xyXG4gICAgICAgIGlmIChkYXlqcygpID49IGRheWpzKGlkZW50aXR5LkV4cGlyYXRpb25UaW1lKS5zdWJ0cmFjdCgxMCwgJ21pbnV0ZXMnKSAmJiAhbXljb25maWcucmVkaXJlY3RJblByb2dyZXNzKSB7XHJcbiAgICAgICAgICAgIG15Y29uZmlnLnJlZGlyZWN0SW5Qcm9ncmVzcyA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLm1zZ0V4dHMuZXhwaXJlZFNlc3Npb25NZXNzYWdlKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5sYy5sb2MoJ0V4cGlyZWQgc2Vzc2lvbicpLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5sYy5sb2MoXCJMJ2F0dHVhbGUgc2Vzc2lvbmUgZGkgbGF2b3JvIG5vbiDDqCBwacO5IHZhbGlkYS48YnI+U2kgcHJlZ2EgZGkgZXNlZ3VpcmUgbnVvdmFtZW50ZSBpbCBsb2dpbi5cIiksXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbXljb25maWcucmVkaXJlY3RJblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJjaGVja1Nlc3Npb25UaW1lb3V0IC0gcmVkaXJlY3RpbmcgdG8gbG9naW5cIilcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCJsb2dpblwiXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLl9zdGF0ZS5zZXRIZWFkZXJIZWlnaHQodGhpcy5uYXZiYXIubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnb1RvRGFzaGJvYXJkKCl7XHJcbiAgICAgICAgd2luZG93Lm9wZW4obXljb25maWcuSmFjZURhc2hib2FyZFVybCwgJ19ibGFuaycpLmZvY3VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHRvZ2dsZU1lbnUoKSB7XHJcbiAgICAgICAgdGhpcy5pc01lbnVDb2xsYXBzZWQgPSAhdGhpcy5pc01lbnVDb2xsYXBzZWQ7XHJcbiAgICAgICAgdGhpcy5fc3RhdGUubm90aWZ5RGF0YUNoYW5nZWQoXCJtZW51LmlzQ29sbGFwc2VkXCIsIHRoaXMuaXNNZW51Q29sbGFwc2VkKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbG9nb3V0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmxvZ2luVXJsTGVnYWN5KVxyXG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAke215Y29uZmlnLkF1dGhVcmx9L2xvZ291dD9jbGllbnQ9JHtteWNvbmZpZy5DbGllbnR9YDtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7bXljb25maWcuQXV0aFVybH0vIy9sb2dvdXQ7Y2xpZW50PSR7bXljb25maWcuQ2xpZW50fWA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNoYW5nZU1vZHVsZSgpIHtcclxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IG15Y29uZmlnLkphY2VEYXNoYm9hcmRVcmw7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNoYW5nZVRlbmFudCgpIHtcclxuICAgICAgICBpZiAodGhpcy5sb2dpblVybExlZ2FjeSlcclxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgJHtteWNvbmZpZy5BdXRoVXJsfS9sb2dpbi90ZW5hbnQ/Y2xpZW50PSR7bXljb25maWcuQ2xpZW50fWA7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAke215Y29uZmlnLkF1dGhVcmx9LyMvbG9naW47Y2xpZW50PSR7bXljb25maWcuQ2xpZW50fWA7XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXJVc2VyUHJlZmVyZW5jZXMoKSB7XHJcbiAgICAgICAgdGhpcy5wcmVmc1NlcnZpY2UuY2xlYXIoKS5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLm1zZ0V4dHMuc2ltcGxlU3VjY2Vzcyh0aGlzLmxjLmxvYyhcIlByZWZlcmVuemUgdXRlbnRlIHJpcHVsaXRlXCIpKTtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhckNhY2hlQ2xpZW50KCkge1xyXG4gICAgICAgIHRoaXMuY2FjaGVTZXJ2aWNlLmNsZWFyKCkuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5odHRwLnJlc2V0SHR0cFVudGltZWRDYWNoZVN0b3JhZ2UoKTtcclxuICAgICAgICB0aGlzLmh0dHAucmVzZXRIdHRwVGltZWRDYWNoZVN0b3JhZ2UoKTtcclxuICAgICAgICB0aGlzLm1zZ0V4dHMuc2ltcGxlU3VjY2Vzcyh0aGlzLmxjLmxvYyhcIkNhY2hlIFJpcHVsaXRhXCIpKTtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhckNhY2hlU2VydmVyKCkge1xyXG4gICAgICAgIHRoaXMuaHR0cC5nZXQoR0VUX0NhY2hlX0NsZWFyQWxsQ2FjaGVzKS5zdWJzY3JpYmUoXyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubXNnRXh0cy5zaW1wbGVTdWNjZXNzKHRoaXMubGMubG9jKFwiQ2FjaGUgUmlwdWxpdGFcIikpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyQWxsKCkge1xyXG4gICAgICAgIHRoaXMuY2FjaGVTZXJ2aWNlLmNsZWFyKCkuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5odHRwLnJlc2V0SHR0cFVudGltZWRDYWNoZVN0b3JhZ2UoKTtcclxuICAgICAgICB0aGlzLmh0dHAucmVzZXRIdHRwVGltZWRDYWNoZVN0b3JhZ2UoKTtcclxuICAgICAgICB0aGlzLmh0dHAuZ2V0KEdFVF9DYWNoZV9DbGVhckFsbENhY2hlcykuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1zZ0V4dHMuc2ltcGxlU3VjY2Vzcyh0aGlzLmxjLmxvYyhcIkNhY2hlIFJpcHVsaXRhXCIpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhck1lc3NhZ2VzKCkge1xyXG4gICAgICAgIHRoaXMubXNnRXh0cy5jbGVhck1lc3NhZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29tcGxldGVkSm9iQ2xpY2tlZChqb2I6IEFwcGxpY2F0aW9uSm9iKSB7XHJcbiAgICAgICAgdGhpcy5janJTZXJ2aWNlLnJlZGlyZWN0KGpvYik7XHJcbiAgICB9XHJcbn0iLCI8bmF2ICNuYXZiYXIgY2xhc3M9XCJuYXYgZW51bWEtbmF2YmFyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cclxuICAgICAgICA8IS0tIENvbGxhcHNlIG1lbsO5IGEgc2luaXN0cmEgLS0+XHJcbiAgICAgICAgPGRpdj48YSAoY2xpY2spPVwidG9nZ2xlTWVudSgpXCIgY2xhc3M9XCJmYXIgZmEtYmFycyBuYXYtaWNvbiBhcHAtcGFkZGluZy1sZWZ0LTE1XCIgc3R5bGU9XCJwYWRkaW5nLXRvcDogOXB4O1wiPjwvYT48L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBCcmVhZGNydW1iIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcHAtcGFkZGluZy1sZWZ0LTE1XCIgc3R5bGU9XCJwYWRkaW5nLXRvcDogOHB4O1wiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiBhdXRvOyBkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgICAgICA8IS0tTm90aWZpY2F0aW9ucyAoSm9icyktLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItbWVudSBhcHAtbm8tc2VsZWN0aW9uIGFwcC1tYXJnaW4tcmlnaHQtMTVcIiBkcm9wZG93biBjb250YWluZXI9XCJib2R5XCIgcGxhY2VtZW50PVwiYm90dG9tIHJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiX3N0YXRlLmpvYnNJblByb2dyZXNzID4gMFwiIGNsYXNzPVwiZmEtYmVhdC1mYWRlIG5hdi1qb2JzLWljb24tbm90aWZpY2F0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8YSBbY2xhc3MuZmEtc2hha2VdPVwiX3N0YXRlLmpvYnNJblByb2dyZXNzID4gMFwiIGNsYXNzPVwiZmFyIGZhLWJlbGwgbW9kdWxlLW5hdi1tZW51LWxpbmsgZHJvcGRvd24tdG9nZ2xlIGFwcC1wb2ludGVyXCIgc3R5bGU9XCItLWZhLWFuaW1hdGlvbi1kdXJhdGlvbjogM3M7IC0tZmEtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcIiBkcm9wZG93blRvZ2dsZT48L2E+XHJcbiAgICAgICAgICAgICAgICA8dWwgKmRyb3Bkb3duTWVudSBjbGFzcz1cIm5hdi1qb2JzLW1lbnVcIiByb2xlPVwibWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtam9icy1tZW51LWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cIm1hcmdpbi1yaWdodDogYXV0bztcIj57eydKb2IgQXBwbGljYXRpdmknIHwgbG9jYWxpemUgOiBsY319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwcC1tYXJnaW4tcmlnaHQtNVwiPnt7J05vdGlmaWNoZScgfCBsb2NhbGl6ZSA6IGxjfX06PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm0tdC1taW4tMlwiPjxtYXQtc2xpZGUtdG9nZ2xlIFsobmdNb2RlbCldPVwiX3N0YXRlLm5vdGlmeU9uQ29tcGxldGVkSm9ic1wiIChjbGljayk9XCJjbGVhck1lc3NhZ2VzKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj48L21hdC1zbGlkZS10b2dnbGU+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtam9icy1tZW51LWxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIl9zdGF0ZS5hbGxKb2JzLmxlbmd0aCA9PSAwXCIgY2xhc3M9XCJuYXYtam9icy1tZW51LWxpc3QtZW1wdHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+e3tcIkFsIG1vbWVudG8gbm9uIGMnw6ggbnVsbGEgaW4gZXNlY3V6aW9uZVwiIHwgbG9jYWxpemUgOiBsY319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBqb2Igb2YgX3N0YXRlLmFsbEpvYnM7IGxldCBsYXN0ID0gbGFzdFwiIFtjbGFzcy5hcHAtbWFyZ2luLWJvdHRvbS01XT1cIiFsYXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hdi1qb2JzLW1lbnUtbGlzdC1kZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWpvYi5jb21wbGV0ZWRcIiB0aXRsZT1cInt7am9iLmRlc2NyaXB0aW9ufX1cIj57e2pvYi5zbWFsbGRlc2NyaXB0aW9ufX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJqb2IuY29tcGxldGVkXCIgdGl0bGU9XCJ7e2pvYi5kZXNjcmlwdGlvbn19XCIgY2xhc3M9XCJhcHAtbGluayBhcHAtbm8tc2VsZWN0aW9uIGFwcC1pbmxpbmUgYXBwLXBvaW50ZXJcIiAoY2xpY2spPVwiY29tcGxldGVkSm9iQ2xpY2tlZChqb2IpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCI+e3tqb2Iuc21hbGxkZXNjcmlwdGlvbn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmcgY2xhc3M9XCJwdWxsLXJpZ2h0XCIgKm5nSWY9XCIham9iLmNvbXBsZXRlZFwiPnt7am9iLnBlcmNlbnRhZ2V9fSU8L3N0cm9uZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwicHVsbC1yaWdodFwiICpuZ0lmPVwiam9iLmNvbXBsZXRlZFwiPnt7J0NvbXBsZXRlZCcgfCBsb2NhbGl6ZSA6IGxjfX08L3N0cm9uZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcyBwcm9ncmVzcy1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9ncmVzc2JhciAqbmdJZj1cIiFqb2IuY29tcGxldGVkXCIgW21heF09XCIxMDBcIiBbdmFsdWVdPVwiam9iLnBlcmNlbnRhZ2VcIiBbc3RyaXBlZF09XCJ0cnVlXCIgW2FuaW1hdGVdPVwidHJ1ZVwiPjwvcHJvZ3Jlc3NiYXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb2dyZXNzYmFyICpuZ0lmPVwiam9iLmNvbXBsZXRlZFwiIHR5cGU9XCJzdWNjZXNzXCIgW21heF09XCIxMDBcIiBbdmFsdWVdPVwiMTAwXCIgW3N0cmlwZWRdPVwiZmFsc2VcIiBbYW5pbWF0ZV09XCJmYWxzZVwiPjwvcHJvZ3Jlc3NiYXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgPCEtLU90aGVyIE1vZHVsZXMtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItbWVudSBhcHAtbm8tc2VsZWN0aW9uIGFwcC1tYXJnaW4tcmlnaHQtMTVcIiBkcm9wZG93biBjb250YWluZXI9XCJib2R5XCIgcGxhY2VtZW50PVwiYm90dG9tIHJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImZhciBmYS1jdWJlcyBtb2R1bGUtbmF2LW1lbnUtbGluayBkcm9wZG93bi10b2dnbGUgYXBwLXBvaW50ZXJcIiAoY2xpY2spPVwiZ29Ub0Rhc2hib2FyZCgpXCI+PC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS1RdWljayBBY3Rpb25zLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLW1lbnUgYXBwLW5vLXNlbGVjdGlvbiBhcHAtbWFyZ2luLXJpZ2h0LTE1XCIgZHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiIHBsYWNlbWVudD1cImJvdHRvbSByaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJmYXIgZmEtZm9sZGVyLWdlYXIgbW9kdWxlLW5hdi1tZW51LWxpbmsgZHJvcGRvd24tdG9nZ2xlIGFwcC1wb2ludGVyXCIgZHJvcGRvd25Ub2dnbGU+PC9hPlxyXG4gICAgICAgICAgICAgICAgPHVsICpkcm9wZG93bk1lbnUgY2xhc3M9XCJkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUtcmlnaHQtdXNlciBhcHAtbm8tcGFkZGluZ1wiIHJvbGU9XCJtZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZC1mbGV4IGRyb3Bkb3duLXRpdGxlLWJnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi10aXRsZVwiPkdlc3Rpc2NpIENhY2hlIFV0ZW50ZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZHJvcGRvd24tdG9wXCI+PC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGFwcC1wb2ludGVyXCIgKGNsaWNrKT1cImNsZWFyVXNlclByZWZlcmVuY2VzKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtdXNlci10aW1lcyBhcHAtbWFyZ2luLXJpZ2h0LTEwXCI+PC9pPnt7J1JpcHVsaXNjaSBsZSBQcmVmZXJlbnplIFV0ZW50ZScgfCBsb2NhbGl6ZSA6IGxjfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGxpIGNsYXNzPVwiZHJvcGRvd24tZGl2aWRlclwiPjwvbGk+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImRyb3Bkb3duLWl0ZW0gYXBwLXBvaW50ZXJcIiAoY2xpY2spPVwiY2xlYXJBbGwoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1icm9vbS13aWRlIGFwcC1tYXJnaW4tcmlnaHQtMTBcIj48L2k+e3snUmlwdWxpc2NpIGxhIENhY2hlJyB8IGxvY2FsaXplIDogbGN9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZHJvcGRvd24tYm90XCI+PC9saT5cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICA8IS0tUHVudGkgZGkgZXN0ZW5zaW9uZSBwZXIgQ2FsZW5kYXIsIENoYXRyb29tIGUgY2hpIHBpw7kgbmUgaGEgcGnDuSBuZSBtZXR0YS4uLi0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1tZW51IGFwcC1uby1zZWxlY3Rpb24gYXBwLW1hcmdpbi1yaWdodC0xNVwiICpuZ0Zvcj1cImxldCBjb21wIG9mIGV4dGVuc2lvbkNvbXBvbmVudHNcIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbY29tcG9uZW50SG9zdF09XCJjb21wXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS1BbWJpZW50ZS0tPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtZW52aXJvbm1lbnQgYXBwLW5vLXNlbGVjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlsnRGV2JywgMl0uaW5jbHVkZXMoYXBwbGljYXRpb25FbnZpcm9ubWVudClcIj57eydBbWJpZW50ZSBkaSBTdmlsdXBwbycgfCBsb2NhbGl6ZSA6IGxjfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJbJ0RldkEnLCAzXS5pbmNsdWRlcyhhcHBsaWNhdGlvbkVudmlyb25tZW50KVwiPnt7J0FtYmllbnRlIGRpIFN2aWx1cHBvIEEnIHwgbG9jYWxpemUgOiBsY319PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiWydEZXZCJywgNF0uaW5jbHVkZXMoYXBwbGljYXRpb25FbnZpcm9ubWVudClcIj57eydBbWJpZW50ZSBkaSBTdmlsdXBwbyBCJyB8IGxvY2FsaXplIDogbGN9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlsnU3RhZ2UnLCA1XS5pbmNsdWRlcyhhcHBsaWNhdGlvbkVudmlyb25tZW50KVwiPnt7J0FtYmllbnRlIGRpIFN0YWdpbmcnIHwgbG9jYWxpemUgOiBsY319PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiWydTdGFnZUEnLCA2XS5pbmNsdWRlcyhhcHBsaWNhdGlvbkVudmlyb25tZW50KVwiPnt7J0FtYmllbnRlIGRpIFN0YWdpbmcgQScgfCBsb2NhbGl6ZSA6IGxjfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJbJ1Byb2QnLCAxXS5pbmNsdWRlcyhhcHBsaWNhdGlvbkVudmlyb25tZW50KVwiPnt7J0FtYmllbnRlIGRpIFByb2R1emlvbmUnIHwgbG9jYWxpemUgOiBsY319PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tRGVidWdnaW5nIHJ1b2xpIGUgcGVybWVzc2ktLT5cclxuICAgICAgICA8ZGl2IFtoaWRkZW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8ZGl2PlBlcm1pc3Npb25zOjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBwIG9mIEN1cnJlbnRJZGVudGl0eS5QZXJtaXNzaW9uc1wiPnt7cH19PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXY+Um9sZXM6PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHIgb2YgQ3VycmVudElkZW50aXR5LlJvbGVzXCI+e3tyfX08L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25hdj5cclxuXHJcbjwhLS0gVGVtcGxhdGUgcGVyIGwnaWNvbmEgZGVsbCd1dGVudGUgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjdXNlckljb24gbGV0LWNvbnRleHQ+XHJcbiAgICA8aW1nIHNyYz0nLi4vYXNzZXRzL2ltZy91c2Vycy91c2VyLmpwZycgYWx0PVwidXNlci1pbWdcIiBjbGFzcz1cImltZy1jaXJjbGUgdXNlci1pbWdcIj5cclxuICAgIDxpbWcgc3JjPScuLi9hc3NldHMvaW1nL2V2ZW50cy9jaHJpc3RtYXMucG5nJyBhbHQ9XCJ1c2VyLWltZ1wiIGNsYXNzPVwiaW1nLWNpcmNsZSB1c2VyLWltZyBhcHAtYWJzb2x1dGUgYXBwLXJpZ2h0LTBcIiBbc3R5bGUucmlnaHQucHhdPVwiY29udGV4dD8ucmlnaHQgfHwgdW5kZWZpbmVkXCIgKm5nSWY9XCJfc3RhdGUuY2hyaXN0bWFzVGltZVwiPlxyXG4gICAgPGltZyBzcmM9Jy4uL2Fzc2V0cy9pbWcvZXZlbnRzL2hhbGxvd2Vlbi5wbmcnIGFsdD1cInVzZXItaW1nXCIgY2xhc3M9XCJpbWctY2lyY2xlIHVzZXItaW1nIGFwcC1hYnNvbHV0ZSBhcHAtcmlnaHQtMFwiIFtzdHlsZS5yaWdodC5weF09XCJjb250ZXh0Py5yaWdodCB8fCB1bmRlZmluZWRcIiAqbmdJZj1cIl9zdGF0ZS5oYWxsb3dlZW5UaW1lXCI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIFRlbXBsYXRlIHBlciBsZSBpbmZvcm1haXpvbmkgZGkgZGVidWc6IEFtYmllbnRlLCBydW9saSwgcGVybWVzc2kgZWNjIC0tPlxyXG48bmctdGVtcGxhdGUgI2RlYnVnSW5mb3M+XHJcbiAgICA8ZGl2Pnt7Q3VycmVudElkZW50aXR5Py5GdWxsTmFtZX19IC0gKHt7Q3VycmVudElkZW50aXR5Py5UZW5hbnROYW1lfX0pPC9kaXY+XHJcbiAgICA8ZGl2IGhpZGRlbj57e2FwcGxpY2F0aW9uRW52aXJvbm1lbnR9fTwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRleHQtc20tY2VudGVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlsnRGV2JywgMl0uaW5jbHVkZXMoYXBwbGljYXRpb25FbnZpcm9ubWVudClcIj57eydBbWJpZW50ZSBkaSBTdmlsdXBwbycgfCBsb2NhbGl6ZSA6IGxjfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiWydEZXZBJywgM10uaW5jbHVkZXMoYXBwbGljYXRpb25FbnZpcm9ubWVudClcIj57eydBbWJpZW50ZSBkaSBTdmlsdXBwbyBBJyB8IGxvY2FsaXplIDogbGN9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJbJ0RldkInLCA0XS5pbmNsdWRlcyhhcHBsaWNhdGlvbkVudmlyb25tZW50KVwiPnt7J0FtYmllbnRlIGRpIFN2aWx1cHBvIEInIHwgbG9jYWxpemUgOiBsY319PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlsnU3RhZ2UnLCA1XS5pbmNsdWRlcyhhcHBsaWNhdGlvbkVudmlyb25tZW50KVwiPnt7J0FtYmllbnRlIGRpIFN0YWdpbmcnIHwgbG9jYWxpemUgOiBsY319PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlsnU3RhZ2VBJywgNl0uaW5jbHVkZXMoYXBwbGljYXRpb25FbnZpcm9ubWVudClcIj57eydBbWJpZW50ZSBkaSBTdGFnaW5nIEEnIHwgbG9jYWxpemUgOiBsY319PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlsnUHJvZCcsIDFdLmluY2x1ZGVzKGFwcGxpY2F0aW9uRW52aXJvbm1lbnQpXCI+e3snQW1iaWVudGUgZGkgUHJvZHV6aW9uZScgfCBsb2NhbGl6ZSA6IGxjfX08L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBbaGlkZGVuXT1cInRydWVcIj5cclxuICAgICAgICA8ZGl2PlBlcm1pc3Npb25zOjwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHAgb2YgQ3VycmVudElkZW50aXR5LlBlcm1pc3Npb25zXCI+e3twfX08L2Rpdj5cclxuICAgICAgICA8ZGl2PlJvbGVzOjwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHIgb2YgQ3VycmVudElkZW50aXR5LlJvbGVzXCI+e3tyfX08L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9zcmMvbmF2YmFyL25hdmJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvc3JjL25hdmJhci9uYXZiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFjLE1BQU0sRUFBUSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUksT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSWxGLFdBQVc7QUFDWCxPQUFPLEVBQTRCLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBbUcsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUc3SyxXQUFXO0FBQ1gsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUs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TUFBTSxjQUduQyxJQUFJLFdBQ1AsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixDQUFDOzswQkFvQnBELE1BQU07MkJBQUMsaUJBQWlCOzswQkFDdEosTUFBTTsyQkFBQyxnQkFBZ0I7NENBUlksTUFBTTtzQkFBN0MsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBUeXBlLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyLCBSb3V0ZXJMaW5rIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zbGlkZS10b2dnbGVcIjtcclxuaW1wb3J0IHsgTmdJZiwgTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBCYXNlTWVzc2FnZVNlcnZpY2UsIE5vdGlmaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9zaWduYWxyLW5vdGlmaWNhdGlvbnNcIjtcclxuaW1wb3J0IHsgQ2FjaGVTZXJ2aWNlLCBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL3ByZWZlcmVuY2VzXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UsIExvY2FsaXphdGlvbk1vZHVsZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvZXh0ZW5zaW9uc1wiO1xyXG5pbXBvcnQgeyBIVFRQU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvaHR0cHNlcnZpY2VcIjtcclxuXHJcbi8vIEVzRmFlbnphXHJcbmltcG9ydCB7IEVzVGFibGVDb2x1bW5zRGVmaW5pdGlvbiwgRXNUYWJsZU1vZHVsZSB9IGZyb20gXCJAZXNmYWVuemEvZXMtdGFibGVcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50SG9zdERpcmVjdGl2ZSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9kaXJlY3RpdmVzXCI7XHJcbmltcG9ydCB7IEphY2VJZGVudGl0eSwgQWN0aXZlTW9kdWxlVmlldywgRW52T3B0aW9ucywgQXBwbGljYXRpb25Kb2IsIFNlYXJjaFJlc3VsdCwgU2VhcmNoUmVzdWx0Q29udGFpbmVyLCBOQVZCQVJfRVhURU5TSU9OUywgTE9HSU5fVVJMX0xFR0FDWSB9IGZyb20gXCJAZXNmYWVuemEvY29yZS9kb21haW5cIjtcclxuaW1wb3J0IHsgQXBwU3RhdGUsIENvbXBsZXRlZEpvYlJlZGlyZWN0aW9uU2VydmljZSwgR2xvYmFsU2VhcmNoU2VydmljZSwgVG9rZW5TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9jb3JlL3NlcnZpY2VzXCI7XHJcblxyXG4vLyBMaWJyZXJpZVxyXG5pbXBvcnQgeyBpbnRlcnZhbCwgc3RhcnRXaXRoLCB0YWtlVW50aWwsIHRha2VXaGlsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFByb2dyZXNzYmFyTW9kdWxlIH0gZnJvbSBcIm5neC1ib290c3RyYXAvcHJvZ3Jlc3NiYXJcIjtcclxuaW1wb3J0IHsgQnNEcm9wZG93bk1vZHVsZSB9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duXCI7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgTmF2QmFyTG9jIH0gZnJvbSBcIi4vbmF2YmFyLmNvbXBvbmVudC5sb2NcIjtcclxuXHJcbi8vIENvbXBvbmVudGlcclxuaW1wb3J0IHsgUmVhY3RpdmVDb21wb25lbnQgfSBmcm9tIFwiLi4vYmFzZS9yZWFjdGl2ZS5jb21wb25lbnRcIjtcclxuXHJcbi8vIENoaWFtYXRlIGFpIFJlcG9zaXRvcnlcclxuY29uc3QgR0VUX0phY2VfR2V0QWN0aXZlSmFjZU1vZHVsZXM6IHN0cmluZyA9IFwiL2FwaS9KYWNlL0dldEFjdGl2ZUphY2VNb2R1bGVzXCI7XHJcbmNvbnN0IEdFVF9DYWNoZV9DbGVhckFsbENhY2hlczogc3RyaW5nID0gXCIvYXBpL0NhY2hlL0NsZWFyQWxsQ2FjaGVzXCI7XHJcblxyXG5kZWNsYXJlIHZhciBteWNvbmZpZzogRW52T3B0aW9ucztcclxuZGVjbGFyZSB2YXIgZGF5anM7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcIm5hdmJhclwiLFxyXG4gICAgdmlld1Byb3ZpZGVyczogW3sgcHJvdmlkZTogTG9jYWxpemF0aW9uU2VydmljZSwgdXNlQ2xhc3M6IE5hdkJhckxvYyB9XSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0eWxlVXJsczogW1wiLi9uYXZiYXIuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL25hdmJhci5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtSb3V0ZXJMaW5rLCBGb3Jtc01vZHVsZSwgQnNEcm9wZG93bk1vZHVsZSwgTWF0U2xpZGVUb2dnbGVNb2R1bGUsIE5nSWYsIE5nRm9yLCBQcm9ncmVzc2Jhck1vZHVsZSwgQ29tcG9uZW50SG9zdERpcmVjdGl2ZSwgTmdUZW1wbGF0ZU91dGxldCwgRXNUYWJsZU1vZHVsZSwgTG9jYWxpemF0aW9uTW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmF2YmFyIGV4dGVuZHMgUmVhY3RpdmVDb21wb25lbnQge1xyXG5cclxuICAgIHB1YmxpYyBhcHBsaWNhdGlvblZlcnNpb24gPSBteWNvbmZpZy5BcHBEYXRhLkNvbXBvbmVudFZlcnNpb247XHJcbiAgICBwdWJsaWMgYXBwbGljYXRpb25FbnZpcm9ubWVudCA9IG15Y29uZmlnLkFwcERhdGEuQ29tcG9uZW50RW52aXJvbm1lbnQ7XHJcblxyXG4gICAgcHVibGljIGlzTWVudUNvbGxhcHNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGFub21hbGllc1Byb2Nlc3Npbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwdWJsaWMgQ3VycmVudElkZW50aXR5OiBKYWNlSWRlbnRpdHk7XHJcblxyXG4gICAgcHJpdmF0ZSBuZXdWZXJzaW9uV2FybmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBAVmlld0NoaWxkKFwibmF2YmFyXCIsIHsgc3RhdGljOiBmYWxzZSB9KSBuYXZiYXI6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgcHVibGljIE1vZHVsZXM6IEFjdGl2ZU1vZHVsZVZpZXdbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHByZWZzU2VydmljZTogUHJlZmVyZW5jZXNTZXJ2aWNlLCBwcml2YXRlIGNhY2hlU2VydmljZTogQ2FjaGVTZXJ2aWNlLCBwcml2YXRlIE1lc3NhZ2VEZWY6IEJhc2VNZXNzYWdlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvbnM6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLCBwcml2YXRlIG1zZ0V4dHM6IE1lc3NhZ2VTZXJ2aWNlLCBwdWJsaWMgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsIHByaXZhdGUgaHR0cDogSFRUUFNlcnZpY2UsIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHB1YmxpYyBfc3RhdGU6IEFwcFN0YXRlLCBwdWJsaWMgc3I6IFRva2VuU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBjanJTZXJ2aWNlOiBDb21wbGV0ZWRKb2JSZWRpcmVjdGlvblNlcnZpY2UsIEBJbmplY3QoTkFWQkFSX0VYVEVOU0lPTlMpIHB1YmxpYyBleHRlbnNpb25Db21wb25lbnRzOiBUeXBlPGFueT5bXSxcclxuICAgICAgICBASW5qZWN0KExPR0lOX1VSTF9MRUdBQ1kpIHB1YmxpYyBsb2dpblVybExlZ2FjeTogYm9vbGVhbikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX3N0YXRlLnN1YnNjcmliZShcIm1lbnUuaXNDb2xsYXBzZWRcIiwgKGlzQ29sbGFwc2VkKSA9PiB7IHRoaXMuaXNNZW51Q29sbGFwc2VkID0gaXNDb2xsYXBzZWQ7IH0pO1xyXG4gICAgICAgIHRoaXMuX3N0YXRlLnN1YnNjcmliZShcImFwcC5jb21wbGV0ZWRKb2JcIiwgKGpvYkRlc2NyaXB0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIFRpY2tldCAzMDY4MTogbm9uIG5lIHZvZ2xpbyBwacO5IHNhcGVyZSB1biBjYXp6b1xyXG4gICAgICAgICAgICBpZiAoam9iRGVzY3JpcHRpb24gPT0gXCJudWxsXCIpXHJcbiAgICAgICAgICAgICAgICBqb2JEZXNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICB0aGlzLm1zZ0V4dHMuc2ltcGxlU3VjY2Vzcyh0aGlzLmxjLmxvYyhcIkpvYiBDb21wbGV0YXRvXCIpICsgKGpvYkRlc2NyaXB0aW9uID8gKFwiOiBcIiArIGpvYkRlc2NyaXB0aW9uKSA6ICcnKSwgXCJ0b2FzdHJcIik7XHJcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLl9zdGF0ZS5zdWJzY3JpYmUoXCJhcHAuc3RhcnRlZEpvYlwiLCAoXykgPT4geyB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTsgfSk7XHJcbiAgICAgICAgdGhpcy5fc3RhdGUuc3Vic2NyaWJlKFwiYXBwLnByb2dyZXNzSm9iXCIsIChfKSA9PiB7IHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpOyB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5oYW5kbGVCYXNlTm90aWZpY2F0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZ2V0QWN0aXZlSmFjZU1vZHVsZXMoKTtcclxuXHJcbiAgICAgICAgLy8gQXBwZW5hIGxhIHBhZ2luYSBwYXJ0ZSwgcG9pIG9nbmkgc2Vjb25kbywgY29udHJvbGxvIGwnaWRlbnRpdHkgcGVyIHZlcmlmaWNhcmUgc2UgcmltYW5lIGxhIHN0ZXNzYVxyXG4gICAgICAgIGludGVydmFsKDEwMDApLnBpcGUoXHJcbiAgICAgICAgICAgIHN0YXJ0V2l0aCgwKSxcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCksXHJcbiAgICAgICAgICAgIHRha2VXaGlsZShfID0+ICFteWNvbmZpZy5yZWRpcmVjdEluUHJvZ3Jlc3MpXHJcbiAgICAgICAgKS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tJZGVudGl0eSgpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgICAgICAvL1F1YW5kbyB2aWVuZSBkaXN0cnV0dGEgbGEgbmF2YmFyIGRldm8gZGlzdHJ1Z2dlcmUgYW5jaGUgaWwgY2xpZW50IGRpIHNpZ25hbHIgcGVyY2jDqCB2dW9sIGRpcmUgY2hlIGhvIGNoaXVzbyBsYSBwYWdpbmFcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMuZGlzY29ubmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaGFuZGxlQmFzZU5vdGlmaWNhdGlvbnMoKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zLnNlbmQodGhpcy5NZXNzYWdlRGVmLk9VVF9RdWVyeUpvYlN0YXR1cywgbnVsbCk7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zLm9ic2VydmUodGhpcy5NZXNzYWdlRGVmLklOX1NlbmRWZXJzaW9uKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKG1lc3NhZ2UpID0+IHtcclxuICAgICAgICAgICAgaWYgKG1lc3NhZ2UgIT0gbXljb25maWcuQXBwRGF0YS5Db21wb25lbnRWZXJzaW9uICYmICF0aGlzLm5ld1ZlcnNpb25XYXJuZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubXNnRXh0cy5zaW1wbGVXYXJuaW5nKHRoaXMubGMubG9jKFwiw4ggZGlzcG9uaWJpbGUgdW5hIG51b3ZhIHZlcnNpb25lIHBlciBsJ2FwcGxpY2F6aW9uZSBjb3JyZW50ZS4gU2kgc3VnZ2VyaXNjZSBkaSByaWNhcmljYXJlIGxhIHBhZ2luYSAoQ1RSTCArIEY1KVwiKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5ld1ZlcnNpb25XYXJuZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGVja0lkZW50aXR5KCkge1xyXG4gICAgICAgIGxldCBpZCA9IHRoaXMuc3IuZ2V0SmFjZUlkZW50aXR5KCk7XHJcbiAgICAgICAgbGV0IGlkTGFzdCA9IHRoaXMuQ3VycmVudElkZW50aXR5O1xyXG5cclxuICAgICAgICBpZiAoIWlkKSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuY2hlY2tTZXNzaW9uVGltZW91dChpZCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLkN1cnJlbnRJZGVudGl0eSAmJiAoaWQuSWRBY2NvdW50ICE9IGlkTGFzdD8uSWRBY2NvdW50IHx8IGlkLklkVXNlciAhPSBpZExhc3Q/LklkVXNlciB8fCBpZC5JZHRlbmFudCAhPSBpZExhc3Q/LklkdGVuYW50KSkge1xyXG4gICAgICAgICAgICB0aGlzLm1zZ0V4dHMuc2ltcGxlV2FybmluZyh0aGlzLmxjLmxvYyhcIkxlIGluZm9ybWF6aW9uaSBkaSBTZXNzaW9uZSAoVGVuYW50L0FjY291bnQpIHNvbm8gY2FtYmlhdGUgYSBzZWd1aXRvIGRpIHVuIGxvZ2luIHN1IG1vZHVsbyBkaXZlcnNvIHV0aWxpenphbmRvIGRpdmVyc28gVGVuYW50L1V0ZW50ZSBzdWxsbyBzdGVzc28gYnJvd3Nlci4gU2kgc3VnZ2VyaXNjZSBkaSByaWNhcmljYXJlIGxhIHBhZ2luYSAoQ1RSTCArIEY1KVwiKSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5DdXJyZW50SWRlbnRpdHkgPSBpZDtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBY3RpdmVKYWNlTW9kdWxlcygpIHtcclxuICAgICAgICB0aGlzLmh0dHAuZ2V0PEFjdGl2ZU1vZHVsZVZpZXdbXT4oR0VUX0phY2VfR2V0QWN0aXZlSmFjZU1vZHVsZXMpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLk1vZHVsZXMgPSByZXM7XHJcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlLk1vZHVsZXMgPSB0aGlzLk1vZHVsZXM7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGVja1Nlc3Npb25UaW1lb3V0KGlkZW50aXR5OiBKYWNlSWRlbnRpdHkpIHtcclxuICAgICAgICBpZiAoZGF5anMoKSA+PSBkYXlqcyhpZGVudGl0eS5FeHBpcmF0aW9uVGltZSkuc3VidHJhY3QoMTAsICdtaW51dGVzJykgJiYgIW15Y29uZmlnLnJlZGlyZWN0SW5Qcm9ncmVzcykge1xyXG4gICAgICAgICAgICBteWNvbmZpZy5yZWRpcmVjdEluUHJvZ3Jlc3MgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5tc2dFeHRzLmV4cGlyZWRTZXNzaW9uTWVzc2FnZShcclxuICAgICAgICAgICAgICAgIHRoaXMubGMubG9jKCdFeHBpcmVkIHNlc3Npb24nKSxcclxuICAgICAgICAgICAgICAgIHRoaXMubGMubG9jKFwiTCdhdHR1YWxlIHNlc3Npb25lIGRpIGxhdm9ybyBub24gw6ggcGnDuSB2YWxpZGEuPGJyPlNpIHByZWdhIGRpIGVzZWd1aXJlIG51b3ZhbWVudGUgaWwgbG9naW4uXCIpLFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG15Y29uZmlnLnJlZGlyZWN0SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2hlY2tTZXNzaW9uVGltZW91dCAtIHJlZGlyZWN0aW5nIHRvIGxvZ2luXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wibG9naW5cIl0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5fc3RhdGUuc2V0SGVhZGVySGVpZ2h0KHRoaXMubmF2YmFyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ29Ub0Rhc2hib2FyZCgpe1xyXG4gICAgICAgIHdpbmRvdy5vcGVuKG15Y29uZmlnLkphY2VEYXNoYm9hcmRVcmwsICdfYmxhbmsnKS5mb2N1cygpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b2dnbGVNZW51KCkge1xyXG4gICAgICAgIHRoaXMuaXNNZW51Q29sbGFwc2VkID0gIXRoaXMuaXNNZW51Q29sbGFwc2VkO1xyXG4gICAgICAgIHRoaXMuX3N0YXRlLm5vdGlmeURhdGFDaGFuZ2VkKFwibWVudS5pc0NvbGxhcHNlZFwiLCB0aGlzLmlzTWVudUNvbGxhcHNlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGxvZ291dCgpIHtcclxuICAgICAgICBpZiAodGhpcy5sb2dpblVybExlZ2FjeSlcclxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgJHtteWNvbmZpZy5BdXRoVXJsfS9sb2dvdXQ/Y2xpZW50PSR7bXljb25maWcuQ2xpZW50fWA7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAke215Y29uZmlnLkF1dGhVcmx9LyMvbG9nb3V0O2NsaWVudD0ke215Y29uZmlnLkNsaWVudH1gO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGFuZ2VNb2R1bGUoKSB7XHJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBteWNvbmZpZy5KYWNlRGFzaGJvYXJkVXJsO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGFuZ2VUZW5hbnQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMubG9naW5VcmxMZWdhY3kpXHJcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7bXljb25maWcuQXV0aFVybH0vbG9naW4vdGVuYW50P2NsaWVudD0ke215Y29uZmlnLkNsaWVudH1gO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgJHtteWNvbmZpZy5BdXRoVXJsfS8jL2xvZ2luO2NsaWVudD0ke215Y29uZmlnLkNsaWVudH1gO1xyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyVXNlclByZWZlcmVuY2VzKCkge1xyXG4gICAgICAgIHRoaXMucHJlZnNTZXJ2aWNlLmNsZWFyKCkuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5tc2dFeHRzLnNpbXBsZVN1Y2Nlc3ModGhpcy5sYy5sb2MoXCJQcmVmZXJlbnplIHV0ZW50ZSByaXB1bGl0ZVwiKSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXJDYWNoZUNsaWVudCgpIHtcclxuICAgICAgICB0aGlzLmNhY2hlU2VydmljZS5jbGVhcigpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuaHR0cC5yZXNldEh0dHBVbnRpbWVkQ2FjaGVTdG9yYWdlKCk7XHJcbiAgICAgICAgdGhpcy5odHRwLnJlc2V0SHR0cFRpbWVkQ2FjaGVTdG9yYWdlKCk7XHJcbiAgICAgICAgdGhpcy5tc2dFeHRzLnNpbXBsZVN1Y2Nlc3ModGhpcy5sYy5sb2MoXCJDYWNoZSBSaXB1bGl0YVwiKSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXJDYWNoZVNlcnZlcigpIHtcclxuICAgICAgICB0aGlzLmh0dHAuZ2V0KEdFVF9DYWNoZV9DbGVhckFsbENhY2hlcykuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1zZ0V4dHMuc2ltcGxlU3VjY2Vzcyh0aGlzLmxjLmxvYyhcIkNhY2hlIFJpcHVsaXRhXCIpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjbGVhckFsbCgpIHtcclxuICAgICAgICB0aGlzLmNhY2hlU2VydmljZS5jbGVhcigpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuaHR0cC5yZXNldEh0dHBVbnRpbWVkQ2FjaGVTdG9yYWdlKCk7XHJcbiAgICAgICAgdGhpcy5odHRwLnJlc2V0SHR0cFRpbWVkQ2FjaGVTdG9yYWdlKCk7XHJcbiAgICAgICAgdGhpcy5odHRwLmdldChHRVRfQ2FjaGVfQ2xlYXJBbGxDYWNoZXMpLnN1YnNjcmliZShfID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tc2dFeHRzLnNpbXBsZVN1Y2Nlc3ModGhpcy5sYy5sb2MoXCJDYWNoZSBSaXB1bGl0YVwiKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXJNZXNzYWdlcygpIHtcclxuICAgICAgICB0aGlzLm1zZ0V4dHMuY2xlYXJNZXNzYWdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbXBsZXRlZEpvYkNsaWNrZWQoam9iOiBBcHBsaWNhdGlvbkpvYikge1xyXG4gICAgICAgIHRoaXMuY2pyU2VydmljZS5yZWRpcmVjdChqb2IpO1xyXG4gICAgfVxyXG59IiwiPG5hdiAjbmF2YmFyIGNsYXNzPVwibmF2IGVudW1hLW5hdmJhclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcbiAgICAgICAgPCEtLSBDb2xsYXBzZSBtZW7DuSBhIHNpbmlzdHJhIC0tPlxyXG4gICAgICAgIDxkaXY+PGEgKGNsaWNrKT1cInRvZ2dsZU1lbnUoKVwiIGNsYXNzPVwiZmFyIGZhLWJhcnMgbmF2LWljb24gYXBwLXBhZGRpbmctbGVmdC0xNVwiIHN0eWxlPVwicGFkZGluZy10b3A6IDlweDtcIj48L2E+PC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gQnJlYWRjcnVtYiAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwLXBhZGRpbmctbGVmdC0xNVwiIHN0eWxlPVwicGFkZGluZy10b3A6IDhweDtcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tbGVmdDogYXV0bzsgZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICAgICAgPCEtLU5vdGlmaWNhdGlvbnMgKEpvYnMpLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLW1lbnUgYXBwLW5vLXNlbGVjdGlvbiBhcHAtbWFyZ2luLXJpZ2h0LTE1XCIgZHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiIHBsYWNlbWVudD1cImJvdHRvbSByaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIl9zdGF0ZS5qb2JzSW5Qcm9ncmVzcyA+IDBcIiBjbGFzcz1cImZhLWJlYXQtZmFkZSBuYXYtam9icy1pY29uLW5vdGlmaWNhdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGEgW2NsYXNzLmZhLXNoYWtlXT1cIl9zdGF0ZS5qb2JzSW5Qcm9ncmVzcyA+IDBcIiBjbGFzcz1cImZhciBmYS1iZWxsIG1vZHVsZS1uYXYtbWVudS1saW5rIGRyb3Bkb3duLXRvZ2dsZSBhcHAtcG9pbnRlclwiIHN0eWxlPVwiLS1mYS1hbmltYXRpb24tZHVyYXRpb246IDNzOyAtLWZhLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7XCIgZHJvcGRvd25Ub2dnbGU+PC9hPlxyXG4gICAgICAgICAgICAgICAgPHVsICpkcm9wZG93bk1lbnUgY2xhc3M9XCJuYXYtam9icy1tZW51XCIgcm9sZT1cIm1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWpvYnMtbWVudS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IGF1dG87XCI+e3snSm9iIEFwcGxpY2F0aXZpJyB8IGxvY2FsaXplIDogbGN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtbWFyZ2luLXJpZ2h0LTVcIj57eydOb3RpZmljaGUnIHwgbG9jYWxpemUgOiBsY319Ojwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtLXQtbWluLTJcIj48bWF0LXNsaWRlLXRvZ2dsZSBbKG5nTW9kZWwpXT1cIl9zdGF0ZS5ub3RpZnlPbkNvbXBsZXRlZEpvYnNcIiAoY2xpY2spPVwiY2xlYXJNZXNzYWdlcygpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCI+PC9tYXQtc2xpZGUtdG9nZ2xlPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWpvYnMtbWVudS1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJfc3RhdGUuYWxsSm9icy5sZW5ndGggPT0gMFwiIGNsYXNzPVwibmF2LWpvYnMtbWVudS1saXN0LWVtcHR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7XCJBbCBtb21lbnRvIG5vbiBjJ8OoIG51bGxhIGluIGVzZWN1emlvbmVcIiB8IGxvY2FsaXplIDogbGN9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgam9iIG9mIF9zdGF0ZS5hbGxKb2JzOyBsZXQgbGFzdCA9IGxhc3RcIiBbY2xhc3MuYXBwLW1hcmdpbi1ib3R0b20tNV09XCIhbGFzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYXYtam9icy1tZW51LWxpc3QtZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFqb2IuY29tcGxldGVkXCIgdGl0bGU9XCJ7e2pvYi5kZXNjcmlwdGlvbn19XCI+e3tqb2Iuc21hbGxkZXNjcmlwdGlvbn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiam9iLmNvbXBsZXRlZFwiIHRpdGxlPVwie3tqb2IuZGVzY3JpcHRpb259fVwiIGNsYXNzPVwiYXBwLWxpbmsgYXBwLW5vLXNlbGVjdGlvbiBhcHAtaW5saW5lIGFwcC1wb2ludGVyXCIgKGNsaWNrKT1cImNvbXBsZXRlZEpvYkNsaWNrZWQoam9iKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1wiPnt7am9iLnNtYWxsZGVzY3JpcHRpb259fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nIGNsYXNzPVwicHVsbC1yaWdodFwiICpuZ0lmPVwiIWpvYi5jb21wbGV0ZWRcIj57e2pvYi5wZXJjZW50YWdlfX0lPC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZyBjbGFzcz1cInB1bGwtcmlnaHRcIiAqbmdJZj1cImpvYi5jb21wbGV0ZWRcIj57eydDb21wbGV0ZWQnIHwgbG9jYWxpemUgOiBsY319PC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MgcHJvZ3Jlc3Mtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvZ3Jlc3NiYXIgKm5nSWY9XCIham9iLmNvbXBsZXRlZFwiIFttYXhdPVwiMTAwXCIgW3ZhbHVlXT1cImpvYi5wZXJjZW50YWdlXCIgW3N0cmlwZWRdPVwidHJ1ZVwiIFthbmltYXRlXT1cInRydWVcIj48L3Byb2dyZXNzYmFyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9ncmVzc2JhciAqbmdJZj1cImpvYi5jb21wbGV0ZWRcIiB0eXBlPVwic3VjY2Vzc1wiIFttYXhdPVwiMTAwXCIgW3ZhbHVlXT1cIjEwMFwiIFtzdHJpcGVkXT1cImZhbHNlXCIgW2FuaW1hdGVdPVwiZmFsc2VcIj48L3Byb2dyZXNzYmFyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIDwhLS1PdGhlciBNb2R1bGVzLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLW1lbnUgYXBwLW5vLXNlbGVjdGlvbiBhcHAtbWFyZ2luLXJpZ2h0LTE1XCIgZHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiIHBsYWNlbWVudD1cImJvdHRvbSByaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJmYXIgZmEtY3ViZXMgbW9kdWxlLW5hdi1tZW51LWxpbmsgZHJvcGRvd24tdG9nZ2xlIGFwcC1wb2ludGVyXCIgKGNsaWNrKT1cImdvVG9EYXNoYm9hcmQoKVwiPjwvYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tUXVpY2sgQWN0aW9ucy0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1tZW51IGFwcC1uby1zZWxlY3Rpb24gYXBwLW1hcmdpbi1yaWdodC0xNVwiIGRyb3Bkb3duIGNvbnRhaW5lcj1cImJvZHlcIiBwbGFjZW1lbnQ9XCJib3R0b20gcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZmFyIGZhLWZvbGRlci1nZWFyIG1vZHVsZS1uYXYtbWVudS1saW5rIGRyb3Bkb3duLXRvZ2dsZSBhcHAtcG9pbnRlclwiIGRyb3Bkb3duVG9nZ2xlPjwvYT5cclxuICAgICAgICAgICAgICAgIDx1bCAqZHJvcGRvd25NZW51IGNsYXNzPVwiZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LXJpZ2h0LXVzZXIgYXBwLW5vLXBhZGRpbmdcIiByb2xlPVwibWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImQtZmxleCBkcm9wZG93bi10aXRsZS1iZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tdGl0bGVcIj5HZXN0aXNjaSBDYWNoZSBVdGVudGU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImRyb3Bkb3duLXRvcFwiPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZHJvcGRvd24taXRlbSBhcHAtcG9pbnRlclwiIChjbGljayk9XCJjbGVhclVzZXJQcmVmZXJlbmNlcygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLXVzZXItdGltZXMgYXBwLW1hcmdpbi1yaWdodC0xMFwiPjwvaT57eydSaXB1bGlzY2kgbGUgUHJlZmVyZW56ZSBVdGVudGUnIHwgbG9jYWxpemUgOiBsY319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxsaSBjbGFzcz1cImRyb3Bkb3duLWRpdmlkZXJcIj48L2xpPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGFwcC1wb2ludGVyXCIgKGNsaWNrKT1cImNsZWFyQWxsKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtYnJvb20td2lkZSBhcHAtbWFyZ2luLXJpZ2h0LTEwXCI+PC9pPnt7J1JpcHVsaXNjaSBsYSBDYWNoZScgfCBsb2NhbGl6ZSA6IGxjfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImRyb3Bkb3duLWJvdFwiPjwvbGk+XHJcbiAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgPCEtLVB1bnRpIGRpIGVzdGVuc2lvbmUgcGVyIENhbGVuZGFyLCBDaGF0cm9vbSBlIGNoaSBwacO5IG5lIGhhIHBpw7kgbmUgbWV0dGEuLi4tLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItbWVudSBhcHAtbm8tc2VsZWN0aW9uIGFwcC1tYXJnaW4tcmlnaHQtMTVcIiAqbmdGb3I9XCJsZXQgY29tcCBvZiBleHRlbnNpb25Db21wb25lbnRzXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW2NvbXBvbmVudEhvc3RdPVwiY29tcFwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tQW1iaWVudGUtLT5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWVudmlyb25tZW50IGFwcC1uby1zZWxlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJbJ0RldicsIDJdLmluY2x1ZGVzKGFwcGxpY2F0aW9uRW52aXJvbm1lbnQpXCI+e3snQW1iaWVudGUgZGkgU3ZpbHVwcG8nIHwgbG9jYWxpemUgOiBsY319PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiWydEZXZBJywgM10uaW5jbHVkZXMoYXBwbGljYXRpb25FbnZpcm9ubWVudClcIj57eydBbWJpZW50ZSBkaSBTdmlsdXBwbyBBJyB8IGxvY2FsaXplIDogbGN9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlsnRGV2QicsIDRdLmluY2x1ZGVzKGFwcGxpY2F0aW9uRW52aXJvbm1lbnQpXCI+e3snQW1iaWVudGUgZGkgU3ZpbHVwcG8gQicgfCBsb2NhbGl6ZSA6IGxjfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJbJ1N0YWdlJywgNV0uaW5jbHVkZXMoYXBwbGljYXRpb25FbnZpcm9ubWVudClcIj57eydBbWJpZW50ZSBkaSBTdGFnaW5nJyB8IGxvY2FsaXplIDogbGN9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlsnU3RhZ2VBJywgNl0uaW5jbHVkZXMoYXBwbGljYXRpb25FbnZpcm9ubWVudClcIj57eydBbWJpZW50ZSBkaSBTdGFnaW5nIEEnIHwgbG9jYWxpemUgOiBsY319PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiWydQcm9kJywgMV0uaW5jbHVkZXMoYXBwbGljYXRpb25FbnZpcm9ubWVudClcIj57eydBbWJpZW50ZSBkaSBQcm9kdXppb25lJyB8IGxvY2FsaXplIDogbGN9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLURlYnVnZ2luZyBydW9saSBlIHBlcm1lc3NpLS0+XHJcbiAgICAgICAgPGRpdiBbaGlkZGVuXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPGRpdj5QZXJtaXNzaW9uczo8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcCBvZiBDdXJyZW50SWRlbnRpdHkuUGVybWlzc2lvbnNcIj57e3B9fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2PlJvbGVzOjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByIG9mIEN1cnJlbnRJZGVudGl0eS5Sb2xlc1wiPnt7cn19PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uYXY+XHJcblxyXG48IS0tIFRlbXBsYXRlIHBlciBsJ2ljb25hIGRlbGwndXRlbnRlIC0tPlxyXG48bmctdGVtcGxhdGUgI3VzZXJJY29uIGxldC1jb250ZXh0PlxyXG4gICAgPGltZyBzcmM9Jy4uL2Fzc2V0cy9pbWcvdXNlcnMvdXNlci5qcGcnIGFsdD1cInVzZXItaW1nXCIgY2xhc3M9XCJpbWctY2lyY2xlIHVzZXItaW1nXCI+XHJcbiAgICA8aW1nIHNyYz0nLi4vYXNzZXRzL2ltZy9ldmVudHMvY2hyaXN0bWFzLnBuZycgYWx0PVwidXNlci1pbWdcIiBjbGFzcz1cImltZy1jaXJjbGUgdXNlci1pbWcgYXBwLWFic29sdXRlIGFwcC1yaWdodC0wXCIgW3N0eWxlLnJpZ2h0LnB4XT1cImNvbnRleHQ/LnJpZ2h0IHx8IHVuZGVmaW5lZFwiICpuZ0lmPVwiX3N0YXRlLmNocmlzdG1hc1RpbWVcIj5cclxuICAgIDxpbWcgc3JjPScuLi9hc3NldHMvaW1nL2V2ZW50cy9oYWxsb3dlZW4ucG5nJyBhbHQ9XCJ1c2VyLWltZ1wiIGNsYXNzPVwiaW1nLWNpcmNsZSB1c2VyLWltZyBhcHAtYWJzb2x1dGUgYXBwLXJpZ2h0LTBcIiBbc3R5bGUucmlnaHQucHhdPVwiY29udGV4dD8ucmlnaHQgfHwgdW5kZWZpbmVkXCIgKm5nSWY9XCJfc3RhdGUuaGFsbG93ZWVuVGltZVwiPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSBUZW1wbGF0ZSBwZXIgbGUgaW5mb3JtYWl6b25pIGRpIGRlYnVnOiBBbWJpZW50ZSwgcnVvbGksIHBlcm1lc3NpIGVjYyAtLT5cclxuPG5nLXRlbXBsYXRlICNkZWJ1Z0luZm9zPlxyXG4gICAgPGRpdj57e0N1cnJlbnRJZGVudGl0eT8uRnVsbE5hbWV9fSAtICh7e0N1cnJlbnRJZGVudGl0eT8uVGVuYW50TmFtZX19KTwvZGl2PlxyXG4gICAgPGRpdiBoaWRkZW4+e3thcHBsaWNhdGlvbkVudmlyb25tZW50fX08L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNtLWNlbnRlclwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJbJ0RldicsIDJdLmluY2x1ZGVzKGFwcGxpY2F0aW9uRW52aXJvbm1lbnQpXCI+e3snQW1iaWVudGUgZGkgU3ZpbHVwcG8nIHwgbG9jYWxpemUgOiBsY319PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlsnRGV2QScsIDNdLmluY2x1ZGVzKGFwcGxpY2F0aW9uRW52aXJvbm1lbnQpXCI+e3snQW1iaWVudGUgZGkgU3ZpbHVwcG8gQScgfCBsb2NhbGl6ZSA6IGxjfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiWydEZXZCJywgNF0uaW5jbHVkZXMoYXBwbGljYXRpb25FbnZpcm9ubWVudClcIj57eydBbWJpZW50ZSBkaSBTdmlsdXBwbyBCJyB8IGxvY2FsaXplIDogbGN9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJbJ1N0YWdlJywgNV0uaW5jbHVkZXMoYXBwbGljYXRpb25FbnZpcm9ubWVudClcIj57eydBbWJpZW50ZSBkaSBTdGFnaW5nJyB8IGxvY2FsaXplIDogbGN9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJbJ1N0YWdlQScsIDZdLmluY2x1ZGVzKGFwcGxpY2F0aW9uRW52aXJvbm1lbnQpXCI+e3snQW1iaWVudGUgZGkgU3RhZ2luZyBBJyB8IGxvY2FsaXplIDogbGN9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJbJ1Byb2QnLCAxXS5pbmNsdWRlcyhhcHBsaWNhdGlvbkVudmlyb25tZW50KVwiPnt7J0FtYmllbnRlIGRpIFByb2R1emlvbmUnIHwgbG9jYWxpemUgOiBsY319PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgW2hpZGRlbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgPGRpdj5QZXJtaXNzaW9uczo8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBwIG9mIEN1cnJlbnRJZGVudGl0eS5QZXJtaXNzaW9uc1wiPnt7cH19PC9kaXY+XHJcbiAgICAgICAgPGRpdj5Sb2xlczo8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByIG9mIEN1cnJlbnRJZGVudGl0eS5Sb2xlc1wiPnt7cn19PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=