tango-app-ui-manage-tickets 3.7.0-beta.86 → 3.7.0-beta.87

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.
@@ -84,8 +84,8 @@ export class AuditReportPopupComponent {
84
84
  let ticketList = res?.data;
85
85
  let findstoreticket = ticketList.filter((data) => data?._source?.type === 'store' && data?._source?.status != "Closed")[0]?._source;
86
86
  if (findstoreticket && findstoreticket?.mappingInfo.length > 0) {
87
- this.centralOpsData = findstoreticket.mappingInfo.filter((data) => data.type != "tangoreview")[0];
88
- console.log("🚀 ~ TicketclosepopupComponent ~ ngOnInit ~ this.centralOpsData:", this.centralOpsData);
87
+ this.centralOpsData = findstoreticket.mappingInfo.filter((data) => data.type != "tangoreview").at(-1);
88
+ // console.log("🚀 ~ TicketclosepopupComponent ~ ngOnInit ~ this.centralOpsData:", this.centralOpsData)
89
89
  }
90
90
  this.tangoAccuracy = Math.round((this.Retagcustomercount / this.totalfiles?.totalfiles) * 100);
91
91
  this.tangoData = {
@@ -388,4 +388,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
388
388
  type: ViewChild,
389
389
  args: ['confirmerror']
390
390
  }] } });
391
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9hdWRpdC1yZXBvcnQtcG9wdXAvYXVkaXQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9hdWRpdC1yZXBvcnQtcG9wdXAvYXVkaXQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBMkMsTUFBTSxlQUFlLENBQUM7QUFHN0csT0FBTyxLQUFLLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFHdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFTeEQsTUFBTSxPQUFPLHlCQUF5QjtJQXdCakI7SUFDVjtJQUNDO0lBQ0Q7SUFBd0I7SUFBb0M7SUFDNUQ7SUFBa0M7SUFBK0I7SUExQjFFLGNBQWMsR0FBUSxDQUFDLENBQUM7SUFDeEIsa0JBQWtCLEdBQVEsQ0FBQyxDQUFDO0lBQzVCLGtCQUFrQixHQUFRLENBQUMsQ0FBQztJQUM1QixnQkFBZ0IsQ0FBTTtJQUN0QixhQUFhLENBQU07SUFDbkIsaUJBQWlCLENBQU07SUFDdkIsaUJBQWlCLENBQU07SUFDdkIsVUFBVSxDQUFNO0lBQ2hCLElBQUksR0FBWSxLQUFLLENBQUM7SUFDdEIsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUM1QixRQUFRLEdBQVEsRUFBRSxDQUFDO0lBQ1YsWUFBWSxDQUFNO0lBQ0EsWUFBWSxDQUFNO0lBQzVCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLFVB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QTdYVSx5QkFBeUI7NEZBQXpCLHlCQUF5QixzTkNmdEMsMHhNQThHTTs7NEZEL0ZPLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx3QkFBd0I7eVNBaUJ6QixZQUFZO3NCQUFwQixLQUFLO2dCQUNxQixZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBJbnB1dCwgdmlld0NoaWxkLCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsLCBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgQXVkaXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXVkaXQuc2VydmljZSc7XHJcbmltcG9ydCAqIGFzIExaU3RyaW5nIGZyb20gJ2x6LXN0cmluZyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVGltZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGltZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFRpY2tldFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1hdWRpdC1yZXBvcnQtcG9wdXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdWRpdC1yZXBvcnQtcG9wdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hdWRpdC1yZXBvcnQtcG9wdXAuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdWRpdFJlcG9ydFBvcHVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBSZXRhZ2p1bmtjb3VudDogYW55ID0gMDtcclxuICBSZXRhZ2VtcGxveWVlY291bnQ6IGFueSA9IDA7XHJcbiAgUmV0YWdjdXN0b21lcmNvdW50OiBhbnkgPSAwO1xyXG4gIGRlbW9ncmFwaGljQ291bnQ6IGFueTtcclxuICByZXRhZ2p1bmtkYXRhOiBhbnk7XHJcbiAgcmV0YWdlbXBsb3llZWRhdGE6IGFueTtcclxuICByZXRhZ2N1c3RvbWVyZGF0YTogYW55O1xyXG4gIHRvdGFsZmlsZXM6IGFueTtcclxuICBhdXRoOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3VibWl0YXV0aDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEVycm9ybXNnOiBhbnkgPSAnJztcclxuICBASW5wdXQoKSBzZWxlY3RlZFR5cGU6IGFueTtcclxuICBAVmlld0NoaWxkKCdjb25maXJtZXJyb3InKSBjb25maXJtZXJyb3I6IGFueTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICB0aW1lUGFzc2VkOiBudW1iZXIgPSAwO1xyXG4gIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgZm9ybWF0dGVkVGltZTogc3RyaW5nID0gJzAwOjAwOjAwJztcclxuICBjYXRlZ29yeTogYW55ID0gW11cclxuICBjZW50cmFsT3BzRGF0YTogYW55O1xyXG4gIHRhbmdvRGF0YTogYW55O1xyXG4gIHRhbmdvQWNjdXJhY3k6YW55PScnXHJcbiAgdGlja2V0VHlwZTphbnk9JydcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHB1YmxpYyBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFRpY2tldFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgdGltZXJTZXJ2aWNlOiBUaW1lclNlcnZpY2UsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGFwaXNlcnZpY2U6IEF1ZGl0U2VydmljZSwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgdG9hc3Q6IFRvYXN0U2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICB0aGlzLnRpY2tldFR5cGUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0aWNrZXRUeXBlJylcclxuICAgIGxldCBmaWxlZGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpXHJcbiAgICB0aGlzLnRvdGFsZmlsZXMgPSBmaWxlZGF0YTtcclxuICAgIHRoaXMuYXBpc2VydmljZS5nZXRBdWRpdGNvbmZpZyhmaWxlZGF0YT8uZmlsZWRldGFpbHM/LmNsaWVudElkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXM/LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmNhdGVnb3J5ID0gcmVzLmRhdGEuZm9vdGZhbGxEaXJlY3RvcnlDb25maWdzLnRhZ2dpbmdMaW1pdGF0aW9uXHJcblxyXG5cclxuICAgICAgICAgIHRoaXMuY2F0ZWdvcnkubWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgbGV0IGZpbHRlckRhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZGF0YT8udHlwZSkgfHwgJ3t9JylcclxuICAgICAgICAgICAgZGF0YS52YWx1ZSA9IGZpbHRlckRhdGFcclxuICAgICAgICAgICAgZGF0YS5jb3VudCA9IGRhdGE/LnZhbHVlPy5sZW5ndGhcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIvCfmoAgfiBBdWRpdFJlcG9ydFBvcHVwQ29tcG9uZW50IH4gbmdPbkluaXQgfiB0aGlzLmNhdGVnb3J5OlwiLCB0aGlzLmNhdGVnb3J5KVxyXG4gICAgICAgICAgbGV0IHN0cmluZ2lmeWRhdGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhdWRpdCcpIHx8ICd7fSdcclxuICAgICAgICAgIGNvbnN0IGRlY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5kZWNvbXByZXNzKHN0cmluZ2lmeWRhdGEpO1xyXG4gICAgICAgICAgdmFyIGN1c3RvbWVyID0gSlNPTi5wYXJzZShkZWNvbXByZXNzZWREYXRhIHx8ICd7fScpXHJcbiAgICAgICAgICB0aGlzLlJldGFnY3VzdG9tZXJjb3VudCA9IGN1c3RvbWVyLmxlbmd0aFxyXG4gICAgICAgICAgY29uc29sZS5sb2coXCLwn5qAIH4gQXVkaXRSZXBvcnRQb3B1cENvbXBvbmVudCB+IG5nT25Jbml0IH4gdGhpcy50b3RhbGZpbGVzOlwiLCB0aGlzLnRvdGFsZmlsZXMpXHJcbiAgICAgICAgICBsZXQgaW5wdXQgPSB7XHJcbiAgICAgICAgICAgIHN0b3JlSWQ6IHRoaXMudG90YWxmaWxlcz8uZmlsZWRldGFpbHM/LnN0b3JlSWQsXHJcbiAgICAgICAgICAgIGRhdGVTdHJpbmc6IHRoaXMudG90YWxmaWxlcz8uZmlsZWRldGFpbHM/LkRhdGUsXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgICAgICAgLmNoZWNrVGlja2V0RXhpc3RzKGlucHV0KS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlcy5kYXRhKVxyXG4gICAgICAgICAgICAgICAgICBsZXQgdGlja2V0TGlzdCA9IHJlcz8uZGF0YVxyXG4gICAgICAgICAgICAgICAgICBsZXQgZmluZHN0b3JldGlja2V0ID0gdGlja2V0TGlzdC5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YT8uX3NvdXJjZT8udHlwZSA9PT0gJ3N0b3JlJyAmJiBkYXRhPy5fc291cmNlPy5zdGF0dXMgIT0gXCJDbG9zZWRcIilbMF0/Ll9zb3VyY2VcclxuICAgICAgICAgICAgICAgICAgaWYgKGZpbmRzdG9yZXRpY2tldCAmJiBmaW5kc3RvcmV0aWNrZXQ/Lm1hcHBpbmdJbmZvLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNlbnRyYWxPcHNEYXRhID0gZmluZHN0b3JldGlja2V0Lm1hcHBpbmdJbmZvLmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhLnR5cGUgIT0gXCJ0YW5nb3Jldmlld1wiKVswXVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi8J+agCB+IFRpY2tldGNsb3NlcG9wdXBDb21wb25lbnQgfiBuZ09uSW5pdCB+IHRoaXMuY2VudHJhbE9wc0RhdGE6XCIsIHRoaXMuY2VudHJhbE9wc0RhdGEpXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgdGhpcy50YW5nb0FjY3VyYWN5ICA9IE1hdGgucm91bmQoKHRoaXMuUmV0YWdjdXN0b21lcmNvdW50L3RoaXMudG90YWxmaWxlcz8udG90YWxmaWxlcykqMTAwKVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnRhbmdvRGF0YSA9e1xyXG4gICAgICAgICAgICAgICAgICAgIHJldmljZWRGb290ZmFsbDp0aGlzLlJldGFnY3VzdG9tZXJjb3VudCxcclxuICAgICAgICAgICAgICAgICAgICByZXZpY2VkUGVyYzp0aGlzLnRhbmdvQWNjdXJhY3krXCIlXCJcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuXHJcblxyXG5cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgdGhpcy5zZXRUaW1lcigpO1xyXG4gIH1cclxuXHJcbiAgc2V0VGltZXIoKSB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMudGltZXJTZXJ2aWNlLmdldFRpbWVQYXNzZWQoKS5zdWJzY3JpYmUodGltZSA9PiB7XHJcbiAgICAgIHRoaXMudGltZVBhc3NlZCA9IHRpbWU7XHJcbiAgICAgIHRoaXMuZm9ybWF0dGVkVGltZSA9IHRoaXMudGltZXJTZXJ2aWNlLmZvcm1hdFRpbWUodGltZSk7XHJcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnRpbWVyU2VydmljZS5zdGFydFRpbWVyKCk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlR2xvYmFsTW91c2VFdmVudCA9ICgpOiB2b2lkID0+IHtcclxuICAgIHRoaXMudGltZXJTZXJ2aWNlLnN0YXJ0VGltZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIHRoaXMudGltZXJTZXJ2aWNlLmNsZWFyVGltZXIoKVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlYnJhbmQoKSB7XHJcbiAgICB0aGlzLmF1dGggPSB0cnVlO1xyXG4gICAgdmFyIHRvdGFsZmlsZTogYW55ID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9Jyk7XHJcblxyXG4gICAgbGV0IGp1bmtpbWFnZTogYW55ID0gW107XHJcbiAgICBsZXQgZW1wbG95ZWVpbWFnZTogYW55ID0gW107XHJcbiAgICBsZXQgY3VzdG9tZXJpbWFnZTogYW55ID0gW107XHJcblxyXG4gICAgdGhpcy5yZXRhZ2p1bmtkYXRhLm1hcCgoZTogYW55KSA9PiB7XHJcbiAgICAgIGRlbGV0ZSBlLmltZ19wYXRoOyBkZWxldGUgZS5zZWxlY3RlZDsgZGVsZXRlIGUuY291bnQ7XHJcbiAgICAgIGRlbGV0ZSBlLmRyb3BwZWQ7IGRlbGV0ZSBlLm1hcHBlZGlkO1xyXG4gICAgICBqdW5raW1hZ2UucHVzaChlKTtcclxuICAgIH0pXHJcbiAgICB0aGlzLnJldGFnZW1wbG95ZWVkYXRhLm1hcCgoZTogYW55KSA9PiB7XHJcbiAgICAgIGRlbGV0ZSBlLmltZ19wYXRoOyBkZWxldGUgZS5zZWxlY3RlZDsgZGVsZXRlIGUuY291bnQ7XHJcbiAgICAgIGRlbGV0ZSBlLmRyb3BwZWQ7IGRlbGV0ZSBlLm1hcHBlZGlkO1xyXG4gICAgICBlbXBsb3llZWltYWdlLnB1c2goZSk7XHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMucmV0YWdjdXN0b21lcmRhdGEubWFwKChlOiBhbnkpID0+IHtcclxuXHJcbiAgICAgIGlmIChlLmNvdW50ID4gMSkge1xyXG4gICAgICAgIGRlbGV0ZSBlLmltZ19wYXRoO1xyXG4gICAgICAgIGRlbGV0ZSBlLnNlbGVjdGVkO1xyXG4gICAgICAgIGRlbGV0ZSBlLmRyb3BwZWQ7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IGUubWFwcGVkaWQ7XHJcbiAgICAgICAgZS5tYXBwZWRpZCA9IHJlc3VsdFxyXG4gICAgICAgIGUuY291bnQgPSByZXN1bHQubGVuZ3RoXHJcbiAgICAgICAgZS5tYXBwZWRpZC5mb3JFYWNoKChlMTogYW55KSA9PiB7IGRlbGV0ZSBlMS5pbWdfcGF0aCB9KVxyXG4gICAgICAgIGN1c3RvbWVyaW1hZ2UucHVzaChlKVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChlLmRlbW9ncmFwaGljID09PSAnZCcgJiYgZS5jb3VudCA9PT0gMSkge1xyXG4gICAgICAgIGRlbGV0ZSBlLmltZ19wYXRoO1xyXG4gICAgICAgIGRlbGV0ZSBlLnNlbGVjdGVkO1xyXG4gICAgICAgIGRlbGV0ZSBlLmRyb3BwZWQ7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IGUubWFwcGVkaWQ7XHJcbiAgICAgICAgZS5tYXBwZWRpZCA9IHJlc3VsdFxyXG4gICAgICAgIGUuY291bnQgPSByZXN1bHQubGVuZ3RoXHJcbiAgICAgICAgZS5tYXBwZWRpZC5mb3JFYWNoKChlMTogYW55KSA9PiB7IGRlbGV0ZSBlMS5pbWdfcGF0aCB9KVxyXG4gICAgICAgIGN1c3RvbWVyaW1hZ2UucHVzaChlKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgdmFyIG9iajogYW55ID0ge1xyXG4gICAgICBhdWRpdElkOiB0b3RhbGZpbGU/LmF1ZGl0SWQgPyB0b3RhbGZpbGU/LmF1ZGl0SWQgOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5hdWRpdElkLFxyXG4gICAgICBzdG9yZUlkOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZV9pZCxcclxuICAgICAgYXVkaXRUeXBlOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy50eXBlLFxyXG4gICAgICBmaWxlRGF0ZTogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uZmlsZV9kYXRlLFxyXG4gICAgICBiZWZvcmVDb3VudDogdG90YWxmaWxlPy50b3RhbGZpbGVzLFxyXG4gICAgICBqdW5rQ291bnQ6IHRoaXMuUmV0YWdqdW5rY291bnQsXHJcbiAgICAgIGp1bms6IGp1bmtpbWFnZSA/IGp1bmtpbWFnZSA6IFtdLFxyXG4gICAgICBlbXBsb3llZUNvdW50OiB0aGlzLlJldGFnZW1wbG95ZWVjb3VudCxcclxuICAgICAgZW1wbG95ZWU6IGVtcGxveWVlaW1hZ2UgPyBlbXBsb3llZWltYWdlIDogW10sXHJcbiAgICAgIGN1c3RvbWVyQ291bnQ6IHRoaXMuUmV0YWdjdXN0b21lcmNvdW50LFxyXG4gICAgICB6b25lTmFtZTogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uem9uZU5hbWUgPyB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy56b25lTmFtZSA6ICcnLFxyXG4gICAgICBtb2R1bGVUeXBlOiB0aGlzLnNlbGVjdGVkVHlwZSxcclxuICAgICAgY3VzdG9tZXI6IGN1c3RvbWVyaW1hZ2UgPyBjdXN0b21lcmltYWdlIDogW10sXHJcbiAgICAgIHRpbWVTcGVudDogdGhpcy50aW1lUGFzc2VkXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hcGlzZXJ2aWNlLnNhdmVhdWRpdChvYmopLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QocmVzPy5kYXRhPy5yZXN1bHQpXHJcbiAgICAgICAgICB0aGlzLmF1dGggPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudGltZXJTZXJ2aWNlLnJlc2V0VGltZXIoKVxyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgndGltZVNwZW50JylcclxuICAgICAgICAgIHRoaXMuY2xvc2Vwb3B1cCgpXHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdlbXBsb3llZScpXHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdqdW5rJylcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ2F1ZGl0JylcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ3RvdGFsZmlsZXMnKVxyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgncmV0YWcnKVxyXG5cclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL21hbmFnZS90aWNrZXRzJ10sIHsgcXVlcnlQYXJhbXM6IHsgdHlwZTogJ2Zvb3RmYWxsJyB9IH0pXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmF1dGggPSBmYWxzZTtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuRXJyb3Jtc2cgPSByZXMuZXJyb3JcclxuICAgICAgICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMuY29uZmlybWVycm9yKVxyXG4gICAgICAgICAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RpY2tldHMnXSwgeyBxdWVyeVBhcmFtczogeyB0eXBlOiAnZm9vdGZhbGwnIH0gfSlcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycj8uZXJyb3I/Lm1lc3NhZ2UgfHwgZXJyPy5lcnJvcj8uZXJyb3IgfHwgZXJyPy5tZXNzYWdlIHx8ICdJbnZhbGlkIHN0YXR1cyBjb2RlOiB1bmRlZmluZWQnO1xyXG4gICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnJvck1lc3NhZ2UpO1xyXG4gICAgICB9LFxyXG5cclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgbmV4dGZpbGUoKSB7XHJcbiAgICB0aGlzLmF1dGggPSB0cnVlO1xyXG4gICAgbGV0IHRvdGFsZmlsZTogYW55ID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0b3RhbGZpbGVzJykgfHwgJ3t9Jyk7XHJcbiAgICBjb25zb2xlLmxvZyhcIvCfmoAgfiBBdWRpdFJlcG9ydFBvcHVwQ29tcG9uZW50IH4gbmV4dGZpbGUgfiB0b3RhbGZpbGU6XCIsIHRvdGFsZmlsZSlcclxuICAgIGxldCByZXZpc2VkRGV0YWlsOiBhbnkgPSBbXVxyXG4gICAgbGV0IHN0cmluZ2lmeWRhdGEgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhdWRpdCcpIHx8ICd7fSdcclxuICAgIGNvbnN0IGRlY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5kZWNvbXByZXNzKHN0cmluZ2lmeWRhdGEpO1xyXG4gICAgdmFyIGN1c3RvbWVyID0gSlNPTi5wYXJzZShkZWNvbXByZXNzZWREYXRhIHx8ICd7fScpXHJcbiAgICBjdXN0b21lci5tYXAoKGN1c3RvbWVyRGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChjdXN0b21lckRhdGEuY291bnQgPiAxKSB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLwn5qAIH4gQXVkaXRSZXBvcnRQb3B1cENvbXBvbmVudCB+IG5leHRmaWxlIH4gY3VzdG9tZXJEYXRhOlwiLCBjdXN0b21lckRhdGEpXHJcbiAgICAgICAgbGV0IGR1cGxpY2F0ZURhdGEgPSBjdXN0b21lckRhdGEubWFwcGVkaWQuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEuaW1nX25hbWUgIT0gY3VzdG9tZXJEYXRhPy5pbWdfbmFtZSlcclxuICAgICAgICBjb25zb2xlLmxvZyhcIvCfmoAgfiBBdWRpdFJlcG9ydFBvcHVwQ29tcG9uZW50IH4gbmV4dGZpbGUgfiBkdXBsaWNhdGVEYXRhOlwiLCBkdXBsaWNhdGVEYXRhKVxyXG4gICAgICAgIGxldCBkdXBsaWNhdGVJbWFnZTogYW55ID0gW11cclxuICAgICAgICBkdXBsaWNhdGVEYXRhLm1hcCgoZHVwRGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBkdXBsaWNhdGVJbWFnZS5wdXNoKFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJpZFwiOiBgJHt0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZUlkfV8ke3RvdGFsZmlsZT8uZmlsZWRldGFpbHM/LkRhdGV9XyR7ZHVwRGF0YT8uaW1nX25hbWV9YCxcclxuICAgICAgICAgICAgICBcInRlbXBJZFwiOiBkdXBEYXRhPy5pbWdfbmFtZSxcclxuICAgICAgICAgICAgICBcImZpbGVQYXRoXCI6IGR1cERhdGE/LmltZ19wYXRoLFxyXG4gICAgICAgICAgICAgIFwiaXNDaGVja2VkXCI6IHRydWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKVxyXG5cclxuICAgICAgICB9KVxyXG4gICAgICAgIGxldCBuZXdPYmo6IGFueSA9IHtcclxuICAgICAgICAgIFwiaWRcIjogYCR7dG90YWxmaWxlPy5maWxlZGV0YWlscz8uc3RvcmVJZH1fJHt0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5EYXRlfV8ke2N1c3RvbWVyRGF0YT8uaW1nX25hbWV9YCxcclxuICAgICAgICAgIFwiY2xpZW50SWRcIjogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uY2xpZW50SWQsXHJcbiAgICAgICAgICBcInN0b3JlSWRcIjogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uc3RvcmVJZCxcclxuICAgICAgICAgIFwidGVtcElkXCI6IGN1c3RvbWVyRGF0YT8uaW1nX25hbWUsXHJcbiAgICAgICAgICBcImRhdGVTdHJpbmdcIjogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uRGF0ZSxcclxuICAgICAgICAgIC8vIFwidGltZVJhbmdlXCI6IFwiMTFBTS0xMlBNXCIsXHJcbiAgICAgICAgICBcInByb2Nlc3NUeXBlXCI6IFwiZm9vdGZhbGxcIixcclxuICAgICAgICAgIFwicmV2b3BzVHlwZVwiOiBcImR1cGxpY2F0ZVwiLFxyXG4gICAgICAgICAgXCJmaWxlUGF0aFwiOiBjdXN0b21lckRhdGE/LmltZ19wYXRoLFxyXG4gICAgICAgICAgXCJzdGF0dXNcIjogXCJzdWJtaXR0ZWRcIixcclxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcclxuICAgICAgICAgIFwiaXNDaGVja2VkXCI6IHRydWUsXHJcbiAgICAgICAgICBcInR5cGVcIjogXCJ0YWdnaW5nLXJlZmxlY3RcIixcclxuICAgICAgICAgIFwicGFyZW50XCI6IG51bGwsXHJcbiAgICAgICAgICBcImlzUGFyZW50XCI6IHRydWUsXHJcbiAgICAgICAgICBcImR1cGxpY2F0ZUltYWdlXCI6IGR1cGxpY2F0ZUltYWdlXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi8J+agCB+IEF1ZGl0UmVwb3J0UG9wdXBDb21wb25lbnQgfiBuZXh0ZmlsZSB+IG5ld09iajpcIiwgbmV3T2JqKVxyXG4gICAgICAgIHJldmlzZWREZXRhaWwucHVzaChuZXdPYmopXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCLwn5qAIH4gQXVkaXRSZXBvcnRQb3B1cENvbXBvbmVudCB+IG5leHRmaWxlIH4gY3VzdG9tZXJEYXRhOlwiLCBjdXN0b21lckRhdGEpXHJcbiAgICAgICAgbGV0IG5ld09iajogYW55ID0ge1xyXG4gICAgICAgICAgXCJpZFwiOiBgJHt0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZUlkfV8ke3RvdGFsZmlsZT8uZmlsZWRldGFpbHM/LkRhdGV9XyR7Y3VzdG9tZXJEYXRhPy5pbWdfbmFtZX1gLFxyXG4gICAgICAgICAgXCJjbGllbnRJZFwiOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5jbGllbnRJZCxcclxuICAgICAgICAgIFwic3RvcmVJZFwiOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZUlkLFxyXG4gICAgICAgICAgXCJ0ZW1wSWRcIjogY3VzdG9tZXJEYXRhPy5pbWdfbmFtZSxcclxuICAgICAgICAgIFwiZGF0ZVN0cmluZ1wiOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5EYXRlLFxyXG4gICAgICAgICAgXCJ0aW1lUmFuZ2VcIjogXCIxMUFNLTEyUE1cIixcclxuICAgICAgICAgIFwicHJvY2Vzc1R5cGVcIjogXCJmb290ZmFsbFwiLFxyXG4gICAgICAgICAgXCJyZXZvcHNUeXBlXCI6IFwiZHVwbGljYXRlXCIsXHJcbiAgICAgICAgICBcImZpbGVQYXRoXCI6IGN1c3RvbWVyRGF0YT8uaW1nX3BhdGgsXHJcbiAgICAgICAgICBcInN0YXR1c1wiOiBcInN1Ym1pdHRlZFwiLFxyXG4gICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIlwiLFxyXG4gICAgICAgICAgXCJpc0NoZWNrZWRcIjogdHJ1ZSxcclxuICAgICAgICAgIFwidHlwZVwiOiBcInRhZ2dpbmctcmVmbGVjdFwiLFxyXG4gICAgICAgICAgXCJwYXJlbnRcIjogbnVsbCxcclxuICAgICAgICAgIFwiaXNQYXJlbnRcIjogdHJ1ZSxcclxuICAgICAgICAgIFwiZHVwbGljYXRlSW1hZ2VcIjogW11cclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLwn5qAIH4gQXVkaXRSZXBvcnRQb3B1cENvbXBvbmVudCB+IG5leHRmaWxlIH4gbmV3T2JqOlwiLCBuZXdPYmopXHJcbiAgICAgICAgcmV2aXNlZERldGFpbC5wdXNoKG5ld09iailcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICB9KVxyXG4gICAgbGV0IGNvdW50OiBhbnkgPSBbXVxyXG4gICAgdGhpcy5jYXRlZ29yeS5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICBjb3VudC5wdXNoKHtcclxuICAgICAgICBuYW1lOiBkYXRhLm5hbWUsXHJcbiAgICAgICAgdmFsdWU6IGRhdGEuY291bnQsXHJcbiAgICAgICAgdHlwZTogZGF0YS50eXBlXHJcbiAgICAgIH0pXHJcbiAgICAgIGxldCBmaWx0ZXJEYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGE/LnR5cGUpIHx8ICdbXScpXHJcblxyXG4gICAgICBmaWx0ZXJEYXRhLm1hcCgob3RoZXJEYXRhOiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgbGV0IG90aGVyT2JqOiBhbnkgPSB7XHJcbiAgICAgICAgICBcImlkXCI6IGAke3RvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnN0b3JlSWR9XyR7dG90YWxmaWxlPy5maWxlZGV0YWlscz8uRGF0ZX1fJHtvdGhlckRhdGE/LmltZ19uYW1lfWAsXHJcbiAgICAgICAgICBcImNsaWVudElkXCI6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LmNsaWVudElkLFxyXG4gICAgICAgICAgXCJzdG9yZUlkXCI6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnN0b3JlSWQsXHJcbiAgICAgICAgICBcInRlbXBJZFwiOiBvdGhlckRhdGE/LmltZ19uYW1lLFxyXG4gICAgICAgICAgXCJkYXRlU3RyaW5nXCI6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LkRhdGUsXHJcbiAgICAgICAgICBcInByb2Nlc3NUeXBlXCI6IFwiZm9vdGZhbGxcIixcclxuICAgICAgICAgIFwicmV2b3BzVHlwZVwiOiBkYXRhPy50eXBlLFxyXG4gICAgICAgICAgXCJmaWxlUGF0aFwiOiBvdGhlckRhdGE/LmltZ19wYXRoLFxyXG4gICAgICAgICAgXCJzdGF0dXNcIjogXCJzdWJtaXR0ZWRcIixcclxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcclxuICAgICAgICAgIFwiaXNDaGVja2VkXCI6IHRydWUsXHJcbiAgICAgICAgICBcInR5cGVcIjogXCJ0YWdnaW5nLXJlZmxlY3RcIixcclxuICAgICAgICAgIFwicGFyZW50XCI6IG51bGwsXHJcbiAgICAgICAgICBcImlzUGFyZW50XCI6IGZhbHNlLFxyXG4gICAgICAgICAgXCJkdXBsaWNhdGVJbWFnZVwiOiBbXVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXZpc2VkRGV0YWlsLnB1c2gob3RoZXJPYmopXHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG5cclxuXHJcbiAgICBsZXQgdGlja2V0VHlwZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RpY2tldFR5cGUnKVxyXG5cclxuICAgIHZhciBvYmo6IGFueSA9IHtcclxuICAgICAgXCJ0eXBlXCI6IFwidGFuZ29yZXZpZXdcIixcclxuICAgICAgXCJtb2RlXCI6IFwid2ViXCIsXHJcbiAgICAgIFwicmV2aWNlZEZvb3RmYWxsXCI6IHRoaXMuUmV0YWdjdXN0b21lcmNvdW50LFxyXG5cclxuICAgICAgXCJyZXZpY2VkUGVyY1wiOiBNYXRoLnJvdW5kKCh0aGlzLlJldGFnY3VzdG9tZXJjb3VudCAvIHRvdGFsZmlsZT8udG90YWxmaWxlcykgKiAxMDApICsgXCIlXCIsXHJcbiAgICAgIGNvdW50OiBjb3VudCxcclxuICAgICAgcmV2aXNlZERldGFpbDogcmV2aXNlZERldGFpbFxyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coXCLwn5qAIH4gQXVkaXRSZXBvcnRQb3B1cENvbXBvbmVudCB+IG5leHRmaWxlIH4gb2JqOlwiLCBvYmopXHJcbiAgICAvLyByZXR1cm5cclxuICAgIGxldCBwYXlsb2FkID0ge1xyXG4gICAgICBzdG9yZUlkOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZUlkLFxyXG4gICAgICBcImRhdGVTdHJpbmdcIjogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uRGF0ZSxcclxuICAgICAgdGlja2V0VHlwZTogdGlja2V0VHlwZSxcclxuICAgICAgbWFwcGluZ0luZm86IG9ialxyXG4gICAgfVxyXG4gICAgdGhpcy5hcGlzZXJ2aWNlLnNhdmVhdWRpdChwYXlsb2FkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuYXV0aCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy50aW1lclNlcnZpY2UucmVzZXRUaW1lcigpXHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCd0aW1lU3BlbnQnKVxyXG4gICAgICAgICAgdGhpcy5jbG9zZXBvcHVwKClcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ2VtcGxveWVlJylcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ2p1bmsnKVxyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnYXVkaXQnKVxyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgndG90YWxmaWxlcycpXHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdyZXRhZycpXHJcbiAgICAgICAgICB2YXIgb2JqOiBhbnkgPSB7XHJcbiAgICAgICAgICAgIHRvdGFsZmlsZXM6IHtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgb2JqLnRvdGFsZmlsZXMucXVldWVOYW1lID0gdG90YWxmaWxlPy5maWxlZGV0YWlscz8ucXVldWVOYW1lXHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCd0b3RhbGZpbGVzJywgSlNPTi5zdHJpbmdpZnkob2JqKSlcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL21hbmFnZS90aWNrZXRzJ10sIHsgcXVlcnlQYXJhbXM6IHsgdHlwZTogJ2Zvb3RmYWxsJyB9IH0pXHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmF1dGggPSBmYWxzZTtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuRXJyb3Jtc2cgPSByZXMuZXJyb3JcclxuICAgICAgICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMuY29uZmlybWVycm9yKVxyXG4gICAgICAgICAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlL3RpY2tldHMnXSwgeyBxdWVyeVBhcmFtczogeyB0eXBlOiAnZm9vdGZhbGwnIH0gfSlcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnI/LmVycm9yPy5tZXNzYWdlIHx8IGVycj8uZXJyb3I/LmVycm9yIHx8IGVycj8ubWVzc2FnZSB8fCAnSW52YWxpZCBzdGF0dXMgY29kZTogdW5kZWZpbmVkJztcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyb3JNZXNzYWdlKTtcclxuICAgICAgfSxcclxuICAgIH0pXHJcblxyXG4gIH1cclxuICBjbG9zZXBvcHVwKCkge1xyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgcmV2aWV3ZGF0YSgpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9tYW5hZ2UvdGlja2V0cy9tYXBwaW5nLWxpc3RcIl0pXHJcbiAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibW9kYWwgZmFkZSBzaG93IGQtYmxvY2tcIiB0YWJpbmRleD1cIi0xXCIgcm9sZT1cImRpYWxvZ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZyBtb2RhbC1kaWFsb2ctY2VudGVyZWRcIiByb2xlPVwiZG9jdW1lbnRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudCBtZXJnZS10aWNrZXQtbW9kYWxcIj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gSGVhZGVyIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIGJvcmRlci0wIHBiLTBcIj5cclxuICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+Q2xvc2UgdGlja2V0PC9oNT5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cImNsb3NlcG9wdXAoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gQm9keSAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0YW5nb0FjY3VyYWN5Pjg1JiZjZW50cmFsT3BzRGF0YT8ucmV2aWNlZEZvb3RmYWxsJiZ0aWNrZXRUeXBlIT0naW50ZXJuYWwnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0wXCI+VGhlIHRpY2tldCB3aWxsIGJlIDxiPuKAnGNsb3NlZOKAnTwvYj4gYW5kIHVwZGF0ZWQgaW4gdGhlIHN0b3JlIGFzIGEgZmluYWwgcmV2aXNpb24uPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGFuZ29BY2N1cmFjeT44NSYmIWNlbnRyYWxPcHNEYXRhPy5yZXZpY2VkRm9vdGZhbGx8fHRpY2tldFR5cGU9PT0naW50ZXJuYWwnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0wXCI+WW914oCZcmUgYWJvdXQgdG8gY2xvc2UgdGhpcyB0aWNrZXQuIERvIHlvdSB3YW50IHRvIHByb2NlZWQ/PC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIEluZm8gYmFubmVyIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IG1lcmdlLWluZm8gZC1mbGV4XCIgKm5nSWY9XCJ0aWNrZXRUeXBlIT0naW50ZXJuYWwnJiZ0YW5nb0FjY3VyYWN5PDg1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lLTMgbXQtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWluZm8tY2lyY2xlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSB0aWNrZXQgd2lsbCBiZSA8Yj7igJxjbG9zZWTigJ08L2I+IGFuZCB1cGRhdGVkIGluIHRoZSBzdG9yZSBhcyBhIGZpbmFsIHJldmlzaW9uLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU2luY2UgYWNjdXJhY3kgaXMgYmVsb3cgODUlLCBpdCB3aWxsIGJlIG1hcmtlZCBhcyBhbiA8Yj7igJxPcGVuLUFjY3VyYWN5IElzc3Vl4oCdPC9iPiBpbiBUYW5nby5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBsZWFzZSBhZGQgdGhlIGNhdXNlIGZvciB0aGUgbG93IGFjY3VyYWN5LlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSBDYXJkcyAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZy0zIG10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIENlbnRyYWwgT3BzIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTZcIiAqbmdJZj1cImNlbnRyYWxPcHNEYXRhPy5yZXZpY2VkRm9vdGZhbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgaC0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBtYi0zIGZ3LXNlbWlib2xkXCI+Q2VudHJhbCBPcHM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWVuZCBtYi0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj57e2NlbnRyYWxPcHNEYXRhPy5yZXZpY2VkRm9vdGZhbGx9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+Rm9vdGZhbGw8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlIHRleHQtcHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y2VudHJhbE9wc0RhdGE/LnJldmljZWRQZXJjfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFycm93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjZW50cmFsT3BzRGF0YT8ucmV2aWNlZEZvb3RmYWxsPHRhbmdvRGF0YT8ucmV2aWNlZEZvb3RmYWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKGk1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFycm93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjZW50cmFsT3BzRGF0YT8ucmV2aWNlZEZvb3RmYWxsPnRhbmdvRGF0YT8ucmV2aWNlZEZvb3RmYWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKGkVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+QWNjdXJhY3k8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gVGFuZ28gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNlwiICpuZ0lmPVwidGFuZ29EYXRhPy5yZXZpY2VkRm9vdGZhbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgaC0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBtYi0zIGZ3LXNlbWlib2xkXCI+VGFuZ288L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWVuZCBtYi0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj57e3RhbmdvRGF0YT8ucmV2aWNlZEZvb3RmYWxsfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPkZvb3RmYWxsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZSB0ZXh0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3RhbmdvRGF0YT8ucmV2aWNlZFBlcmN9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXJyb3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNlbnRyYWxPcHNEYXRhPy5yZXZpY2VkRm9vdGZhbGw+dGFuZ29EYXRhPy5yZXZpY2VkRm9vdGZhbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4oaTXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXJyb3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNlbnRyYWxPcHNEYXRhPy5yZXZpY2VkRm9vdGZhbGw8dGFuZ29EYXRhPy5yZXZpY2VkRm9vdGZhbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4oaRXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj5BY2N1cmFjeTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gRm9vdGVyIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyIGJvcmRlci0wIHB0LTBcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeVwiIChjbGljayk9XCJjbG9zZXBvcHVwKClcIj5cclxuICAgICAgICAgICAgICAgICAgICBjYW5jZWxcclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInRhbmdvQWNjdXJhY3k+ODVcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwibmV4dGZpbGUoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHN1Ym1pdFxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwidGFuZ29BY2N1cmFjeTw4NVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJuZXh0ZmlsZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgUmV2aWV3XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
391
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9hdWRpdC1yZXBvcnQtcG9wdXAvYXVkaXQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9hdWRpdC1yZXBvcnQtcG9wdXAvYXVkaXQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBMkMsTUFBTSxlQUFlLENBQUM7QUFHN0csT0FBTyxLQUFLLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFHdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFTeEQsTUFBTSxPQUFPLHlCQUF5QjtJQXdCakI7SUFDVjtJQUNDO0lBQ0Q7SUFBd0I7SUFBb0M7SUFDNUQ7SUFBa0M7SUFBK0I7SUExQjFFLGNBQWMsR0FBUSxDQUFDLENBQUM7SUFDeEIsa0JBQWtCLEdBQVEsQ0FBQyxDQUFDO0lBQzVCLGtCQUFrQixHQUFRLENBQUMsQ0FBQztJQUM1QixnQkFBZ0IsQ0FBTTtJQUN0QixhQUFhLENBQU07SUFDbkIsaUJBQWlCLENBQU07SUFDdkIsaUJBQWlCLENBQU07SUFDdkIsVUFBVSxDQUFNO0lBQ2hCLElBQUksR0FBWSxLQUFLLENBQUM7SUFDdEIsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUM1QixRQUFRLEdBQVEsRUFBRSxDQUFDO0lBQ1YsWUFBWSxDQUFNO0lBQ0EsWUFBWSxDQUFNO0lBQzVCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLFVBQVUsR0FBVyxDQUFDLENBQUM7SUFDdkIsWUFBWSxHQUF3QixJQUFJLENBQUM7SUFDekMsYUFBYSxHQUFXLFVBQVUsQ0FBQztJQUNuQyxRQUFRLEdBQVEsRUFBRSxDQUFBO0lBQ2xCLGNBQWMsQ0FBTTtJQUNwQixTQUFTLENBQU07SUFDZixhQUFhLEdBQUssRUFBRSxDQUFBO0lBQ3BCLFVBQVUsR0FBSyxFQUFFLENBQUE7SUFDakIsWUFBbUIsWUFBc0IsRUFDaEMsV0FBMkIsRUFDMUIsT0FBc0IsRUFDdkIsTUFBYyxFQUFVLFlBQTBCLEVBQVUsRUFBcUIsRUFDakYsVUFBd0IsRUFBVSxLQUFxQixFQUFVLEtBQW1CO1FBSjFFLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQ2hDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMxQixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUFVLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ2pGLGVBQVUsR0FBVixVQUFVLENBQWM7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUFVLFVBQUssR0FBTCxLQUFLLENBQWM7SUFDekYsQ0FBQztJQUVMLFFBQVE7UUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDeEQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFBO1FBQ3ZFLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdkcsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFO29CQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUE7b0JBR25FLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7d0JBQzlCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUE7d0JBQ3ZFLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFBO3dCQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFBO29CQUNsQyxDQUFDLENBQUMsQ0FBQTtvQkFDRixPQUFPLENBQUMsR0FBRyxDQUFDLDREQUE0RCxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtvQkFDeEYsSUFBSSxhQUFhLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUE7b0JBQzNELE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDNUQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsQ0FBQTtvQkFDbkQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUE7b0JBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsOERBQThELEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO29CQUM1RixJQUFJLEtBQUssR0FBRzt3QkFDVixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTzt3QkFDOUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLElBQUk7cUJBQy9DLENBQUE7b0JBQ0QsSUFBSSxDQUFDLE9BQU87eUJBQ1QsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7eUJBQ3ZELFNBQVMsQ0FBQzt3QkFDVCxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTs0QkFDakIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLElBQUksS0FBSyxHQUFHLEVBQUU7Z0NBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO2dDQUNyQixJQUFJLFVBQVUsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFBO2dDQUMxQixJQUFJLGVBQWUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksS0FBSyxPQUFPLElBQUksSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFBO2dDQUN4SSxJQUFJLGVBQWUsSUFBSSxlQUFlLEVBQUUsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0NBQzlELElBQUksQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0NBQzNHLHVHQUF1RztpQ0FDeEc7Z0NBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixHQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEdBQUMsR0FBRyxDQUFDLENBQUE7Z0NBQzNGLElBQUksQ0FBQyxTQUFTLEdBQUU7b0NBQ2QsZUFBZSxFQUFDLElBQUksQ0FBQyxrQkFBa0I7b0NBQ3ZDLFdBQVcsRUFBQyxJQUFJLENBQUMsYUFBYSxHQUFDLEdBQUc7aUNBQ25DLENBQUE7NkJBQ0Y7d0JBQ0gsQ0FBQztxQkFDRixDQUFDLENBQUE7aUJBS0w7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNyRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQy9CLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDcEUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNoRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3JFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELHNCQUFzQixHQUFHLEdBQVMsRUFBRTtRQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2pDLENBQUMsQ0FBQTtJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDdkUsUUFBUSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUNuRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3hFLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtJQUNoQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksU0FBUyxHQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUU5RSxJQUFJLFNBQVMsR0FBUSxFQUFFLENBQUM7UUFDeEIsSUFBSSxhQUFhLEdBQVEsRUFBRSxDQUFDO1FBQzVCLElBQUksYUFBYSxHQUFRLEVBQUUsQ0FBQztRQUU1QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFO1lBQ2hDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUNyRCxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDcEMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtZQUNwQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDckQsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQ3BDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFFcEMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRTtnQkFDZixPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUM7Z0JBQ2xCLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQztnQkFDbEIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUNqQixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUN4QixDQUFDLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQTtnQkFDbkIsQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFBO2dCQUN2QixDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ3ZELGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDdEI7WUFDRCxJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFO2dCQUMxQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUM7Z0JBQ2xCLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQztnQkFDbEIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUNqQixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO2dCQUN4QixDQUFDLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQTtnQkFDbkIsQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFBO2dCQUN2QixDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ3ZELGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7YUFDdEI7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksR0FBRyxHQUFRO1lBQ2IsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTztZQUNsRixPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxRQUFRO1lBQ3pDLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLElBQUk7WUFDdkMsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUztZQUMzQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVU7WUFDbEMsU0FBUyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQzlCLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtZQUN0QyxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDNUMsYUFBYSxFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDdEMsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNsRixVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDN0IsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzVDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUMzQixDQUFBO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdEUsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFO29CQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFBO29CQUM3QyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztvQkFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtvQkFDOUIsY0FBYyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQTtvQkFDdEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO29CQUNqQixjQUFjLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFBO29CQUNyQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFBO29CQUNqQyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO29CQUNsQyxjQUFjLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFBO29CQUN2QyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO29CQUVsQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFBO2lCQUVqRjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztvQkFDbEIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7d0JBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQTt3QkFDekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO3dCQUMxRCxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFOzRCQUM5QixJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUU7Z0NBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUE7NkJBQ2pGO3dCQUNILENBQUMsQ0FBQyxDQUFBO3FCQUNIO2lCQUNGO1lBQ0gsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLE1BQU0sWUFBWSxHQUFHLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxJQUFJLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxJQUFJLEdBQUcsRUFBRSxPQUFPLElBQUksZ0NBQWdDLENBQUM7Z0JBQ2xILElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3pDLENBQUM7U0FFRixDQUFDLENBQUE7SUFFSixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksU0FBUyxHQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUM5RSxPQUFPLENBQUMsR0FBRyxDQUFDLHdEQUF3RCxFQUFFLFNBQVMsQ0FBQyxDQUFBO1FBQ2hGLElBQUksYUFBYSxHQUFRLEVBQUUsQ0FBQTtRQUMzQixJQUFJLGFBQWEsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQTtRQUMzRCxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsQ0FBQTtRQUNuRCxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBaUIsRUFBRSxFQUFFO1lBQ2pDLElBQUksWUFBWSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUU7Z0JBQzFCLHlGQUF5RjtnQkFDekYsSUFBSSxhQUFhLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFBO2dCQUN4RyxPQUFPLENBQUMsR0FBRyxDQUFDLDREQUE0RCxFQUFFLGFBQWEsQ0FBQyxDQUFBO2dCQUN4RixJQUFJLGNBQWMsR0FBUSxFQUFFLENBQUE7Z0JBQzVCLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRTtvQkFDakMsY0FBYyxDQUFDLElBQUksQ0FDakI7d0JBQ0UsSUFBSSxFQUFFLEdBQUcsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLElBQUksU0FBUyxFQUFFLFdBQVcsRUFBRSxJQUFJLElBQUksT0FBTyxFQUFFLFFBQVEsRUFBRTt3QkFDL0YsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRO3dCQUMzQixVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVE7d0JBQzdCLFdBQVcsRUFBRSxJQUFJO3FCQUNsQixDQUNGLENBQUE7Z0JBRUgsQ0FBQyxDQUFDLENBQUE7Z0JBQ0YsSUFBSSxNQUFNLEdBQVE7b0JBQ2hCLElBQUksRUFBRSxHQUFHLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxJQUFJLFNBQVMsRUFBRSxXQUFXLEVBQUUsSUFBSSxJQUFJLFlBQVksRUFBRSxRQUFRLEVBQUU7b0JBQ3BHLFVBQVUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFFBQVE7b0JBQzVDLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU87b0JBQzFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUTtvQkFDaEMsWUFBWSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsSUFBSTtvQkFDMUMsNEJBQTRCO29CQUM1QixhQUFhLEVBQUUsVUFBVTtvQkFDekIsWUFBWSxFQUFFLFdBQVc7b0JBQ3pCLFVBQVUsRUFBRSxZQUFZLEVBQUUsUUFBUTtvQkFDbEMsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLGFBQWEsRUFBRSxFQUFFO29CQUNqQixXQUFXLEVBQUUsSUFBSTtvQkFDakIsTUFBTSxFQUFFLGlCQUFpQjtvQkFDekIsUUFBUSxFQUFFLElBQUk7b0JBQ2QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGdCQUFnQixFQUFFLGNBQWM7aUJBQ2pDLENBQUE7Z0JBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxREFBcUQsRUFBRSxNQUFNLENBQUMsQ0FBQTtnQkFDMUUsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTthQUMzQjtpQkFBTTtnQkFDTCx5RkFBeUY7Z0JBQ3pGLElBQUksTUFBTSxHQUFRO29CQUNoQixJQUFJLEVBQUUsR0FBRyxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sSUFBSSxTQUFTLEVBQUUsV0FBVyxFQUFFLElBQUksSUFBSSxZQUFZLEVBQUUsUUFBUSxFQUFFO29CQUNwRyxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxRQUFRO29CQUM1QyxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPO29CQUMxQyxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVE7b0JBQ2hDLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLElBQUk7b0JBQzFDLFdBQVcsRUFBRSxXQUFXO29CQUN4QixhQUFhLEVBQUUsVUFBVTtvQkFDekIsWUFBWSxFQUFFLFdBQVc7b0JBQ3pCLFVBQVUsRUFBRSxZQUFZLEVBQUUsUUFBUTtvQkFDbEMsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLGFBQWEsRUFBRSxFQUFFO29CQUNqQixXQUFXLEVBQUUsSUFBSTtvQkFDakIsTUFBTSxFQUFFLGlCQUFpQjtvQkFDekIsUUFBUSxFQUFFLElBQUk7b0JBQ2QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGdCQUFnQixFQUFFLEVBQUU7aUJBQ3JCLENBQUE7Z0JBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxREFBcUQsRUFBRSxNQUFNLENBQUMsQ0FBQTtnQkFDMUUsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTthQUMzQjtRQUdILENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxLQUFLLEdBQVEsRUFBRSxDQUFBO1FBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDOUIsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDVCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7YUFDaEIsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQTtZQUV2RSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBYyxFQUFFLEVBQUU7Z0JBRWhDLElBQUksUUFBUSxHQUFRO29CQUNsQixJQUFJLEVBQUUsR0FBRyxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sSUFBSSxTQUFTLEVBQUUsV0FBVyxFQUFFLElBQUksSUFBSSxTQUFTLEVBQUUsUUFBUSxFQUFFO29CQUNqRyxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxRQUFRO29CQUM1QyxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPO29CQUMxQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVE7b0JBQzdCLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLElBQUk7b0JBQzFDLGFBQWEsRUFBRSxVQUFVO29CQUN6QixZQUFZLEVBQUUsSUFBSSxFQUFFLElBQUk7b0JBQ3hCLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUTtvQkFDL0IsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLGFBQWEsRUFBRSxFQUFFO29CQUNqQixXQUFXLEVBQUUsSUFBSTtvQkFDakIsTUFBTSxFQUFFLGlCQUFpQjtvQkFDekIsUUFBUSxFQUFFLElBQUk7b0JBQ2QsVUFBVSxFQUFFLEtBQUs7b0JBQ2pCLGdCQUFnQixFQUFFLEVBQUU7aUJBQ3JCLENBQUE7Z0JBQ0QsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUM5QixDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO1FBR0YsSUFBSSxVQUFVLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUVyRCxJQUFJLEdBQUcsR0FBUTtZQUNiLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtZQUUxQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLEVBQUUsVUFBVSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRztZQUN4RixLQUFLLEVBQUUsS0FBSztZQUNaLGFBQWEsRUFBRSxhQUFhO1NBQzdCLENBQUE7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLGtEQUFrRCxFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQ3BFLFNBQVM7UUFDVCxJQUFJLE9BQU8sR0FBRztZQUNaLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU87WUFDeEMsWUFBWSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsSUFBSTtZQUMxQyxVQUFVLEVBQUUsVUFBVTtZQUN0QixXQUFXLEVBQUUsR0FBRztTQUNqQixDQUFBO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDMUUsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFO29CQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztvQkFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtvQkFDOUIsY0FBYyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQTtvQkFDdEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO29CQUNqQixjQUFjLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFBO29CQUNyQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFBO29CQUNqQyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO29CQUNsQyxjQUFjLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFBO29CQUN2QyxjQUFjLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO29CQUNsQyxJQUFJLEdBQUcsR0FBUTt3QkFDYixVQUFVLEVBQUUsRUFDWDtxQkFDRixDQUFBO29CQUNELEdBQUcsQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFBO29CQUM1RCxjQUFjLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7b0JBQ3pELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUE7aUJBRWpGO3FCQUFNO29CQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO29CQUNsQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRTt3QkFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFBO3dCQUN6QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7d0JBQzFELFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7NEJBQzlCLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRTtnQ0FDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQTs2QkFDakY7d0JBQ0gsQ0FBQyxDQUFDLENBQUE7cUJBQ0g7aUJBQ0Y7WUFFSCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLElBQUksR0FBRyxFQUFFLE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQztnQkFDbEgsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDekMsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUVKLENBQUM7SUFDRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFBO1FBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQzt3R0E3WFUseUJBQXlCOzRGQUF6Qix5QkFBeUIsc05DZnRDLDB4TUE4R007OzRGRC9GTyx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCO3lTQWlCekIsWUFBWTtzQkFBcEIsS0FBSztnQkFDcUIsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgSW5wdXQsIHZpZXdDaGlsZCwgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCwgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IEF1ZGl0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1ZGl0LnNlcnZpY2UnO1xyXG5pbXBvcnQgKiBhcyBMWlN0cmluZyBmcm9tICdsei1zdHJpbmcnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRpbWVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpbWVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUaWNrZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGlja2V0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYXVkaXQtcmVwb3J0LXBvcHVwJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXVkaXQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYXVkaXQtcmVwb3J0LXBvcHVwLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXVkaXRSZXBvcnRQb3B1cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgUmV0YWdqdW5rY291bnQ6IGFueSA9IDA7XHJcbiAgUmV0YWdlbXBsb3llZWNvdW50OiBhbnkgPSAwO1xyXG4gIFJldGFnY3VzdG9tZXJjb3VudDogYW55ID0gMDtcclxuICBkZW1vZ3JhcGhpY0NvdW50OiBhbnk7XHJcbiAgcmV0YWdqdW5rZGF0YTogYW55O1xyXG4gIHJldGFnZW1wbG95ZWVkYXRhOiBhbnk7XHJcbiAgcmV0YWdjdXN0b21lcmRhdGE6IGFueTtcclxuICB0b3RhbGZpbGVzOiBhbnk7XHJcbiAgYXV0aDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHN1Ym1pdGF1dGg6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBFcnJvcm1zZzogYW55ID0gJyc7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRUeXBlOiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgnY29uZmlybWVycm9yJykgY29uZmlybWVycm9yOiBhbnk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgdGltZVBhc3NlZDogbnVtYmVyID0gMDtcclxuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIGZvcm1hdHRlZFRpbWU6IHN0cmluZyA9ICcwMDowMDowMCc7XHJcbiAgY2F0ZWdvcnk6IGFueSA9IFtdXHJcbiAgY2VudHJhbE9wc0RhdGE6IGFueTtcclxuICB0YW5nb0RhdGE6IGFueTtcclxuICB0YW5nb0FjY3VyYWN5OmFueT0nJ1xyXG4gIHRpY2tldFR5cGU6YW55PScnXHJcbiAgY29uc3RydWN0b3IocHVibGljIG1vZGFsU2VydmljZTogTmdiTW9kYWwsXHJcbiAgICBwdWJsaWMgYWN0aXZlTW9kYWw6IE5nYkFjdGl2ZU1vZGFsLFxyXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBUaWNrZXRTZXJ2aWNlLFxyXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHRpbWVyU2VydmljZTogVGltZXJTZXJ2aWNlLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBhcGlzZXJ2aWNlOiBBdWRpdFNlcnZpY2UsIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIHRvYXN0OiBUb2FzdFNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgdGhpcy50aWNrZXRUeXBlID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndGlja2V0VHlwZScpXHJcbiAgICBsZXQgZmlsZWRhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3RvdGFsZmlsZXMnKSB8fCAne30nKVxyXG4gICAgdGhpcy50b3RhbGZpbGVzID0gZmlsZWRhdGE7XHJcbiAgICB0aGlzLmFwaXNlcnZpY2UuZ2V0QXVkaXRjb25maWcoZmlsZWRhdGE/LmZpbGVkZXRhaWxzPy5jbGllbnRJZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5jYXRlZ29yeSA9IHJlcy5kYXRhLmZvb3RmYWxsRGlyZWN0b3J5Q29uZmlncy50YWdnaW5nTGltaXRhdGlvblxyXG5cclxuXHJcbiAgICAgICAgICB0aGlzLmNhdGVnb3J5Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBmaWx0ZXJEYXRhID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGE/LnR5cGUpIHx8ICd7fScpXHJcbiAgICAgICAgICAgIGRhdGEudmFsdWUgPSBmaWx0ZXJEYXRhXHJcbiAgICAgICAgICAgIGRhdGEuY291bnQgPSBkYXRhPy52YWx1ZT8ubGVuZ3RoXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgY29uc29sZS5sb2coXCLwn5qAIH4gQXVkaXRSZXBvcnRQb3B1cENvbXBvbmVudCB+IG5nT25Jbml0IH4gdGhpcy5jYXRlZ29yeTpcIiwgdGhpcy5jYXRlZ29yeSlcclxuICAgICAgICAgIGxldCBzdHJpbmdpZnlkYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYXVkaXQnKSB8fCAne30nXHJcbiAgICAgICAgICBjb25zdCBkZWNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuZGVjb21wcmVzcyhzdHJpbmdpZnlkYXRhKTtcclxuICAgICAgICAgIHZhciBjdXN0b21lciA9IEpTT04ucGFyc2UoZGVjb21wcmVzc2VkRGF0YSB8fCAne30nKVxyXG4gICAgICAgICAgdGhpcy5SZXRhZ2N1c3RvbWVyY291bnQgPSBjdXN0b21lci5sZW5ndGhcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwi8J+agCB+IEF1ZGl0UmVwb3J0UG9wdXBDb21wb25lbnQgfiBuZ09uSW5pdCB+IHRoaXMudG90YWxmaWxlczpcIiwgdGhpcy50b3RhbGZpbGVzKVxyXG4gICAgICAgICAgbGV0IGlucHV0ID0ge1xyXG4gICAgICAgICAgICBzdG9yZUlkOiB0aGlzLnRvdGFsZmlsZXM/LmZpbGVkZXRhaWxzPy5zdG9yZUlkLFxyXG4gICAgICAgICAgICBkYXRlU3RyaW5nOiB0aGlzLnRvdGFsZmlsZXM/LmZpbGVkZXRhaWxzPy5EYXRlLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgICAgICAgIC5jaGVja1RpY2tldEV4aXN0cyhpbnB1dCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXM/LmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXMuZGF0YSlcclxuICAgICAgICAgICAgICAgICAgbGV0IHRpY2tldExpc3QgPSByZXM/LmRhdGFcclxuICAgICAgICAgICAgICAgICAgbGV0IGZpbmRzdG9yZXRpY2tldCA9IHRpY2tldExpc3QuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGE/Ll9zb3VyY2U/LnR5cGUgPT09ICdzdG9yZScgJiYgZGF0YT8uX3NvdXJjZT8uc3RhdHVzICE9IFwiQ2xvc2VkXCIpWzBdPy5fc291cmNlXHJcbiAgICAgICAgICAgICAgICAgIGlmIChmaW5kc3RvcmV0aWNrZXQgJiYgZmluZHN0b3JldGlja2V0Py5tYXBwaW5nSW5mby5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jZW50cmFsT3BzRGF0YSA9IGZpbmRzdG9yZXRpY2tldC5tYXBwaW5nSW5mby5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YS50eXBlICE9IFwidGFuZ29yZXZpZXdcIikuYXQoLTEpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwi8J+agCB+IFRpY2tldGNsb3NlcG9wdXBDb21wb25lbnQgfiBuZ09uSW5pdCB+IHRoaXMuY2VudHJhbE9wc0RhdGE6XCIsIHRoaXMuY2VudHJhbE9wc0RhdGEpXHJcbiAgICAgICAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudGFuZ29BY2N1cmFjeSAgPSBNYXRoLnJvdW5kKCh0aGlzLlJldGFnY3VzdG9tZXJjb3VudC90aGlzLnRvdGFsZmlsZXM/LnRvdGFsZmlsZXMpKjEwMClcclxuICAgICAgICAgICAgICAgICAgdGhpcy50YW5nb0RhdGEgPXtcclxuICAgICAgICAgICAgICAgICAgICByZXZpY2VkRm9vdGZhbGw6dGhpcy5SZXRhZ2N1c3RvbWVyY291bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmV2aWNlZFBlcmM6dGhpcy50YW5nb0FjY3VyYWN5K1wiJVwiXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHRoaXMuc2V0VGltZXIoKTtcclxuICB9XHJcblxyXG4gIHNldFRpbWVyKCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRpbWVyU2VydmljZS5nZXRUaW1lUGFzc2VkKCkuc3Vic2NyaWJlKHRpbWUgPT4ge1xyXG4gICAgICB0aGlzLnRpbWVQYXNzZWQgPSB0aW1lO1xyXG4gICAgICB0aGlzLmZvcm1hdHRlZFRpbWUgPSB0aGlzLnRpbWVyU2VydmljZS5mb3JtYXRUaW1lKHRpbWUpO1xyXG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy50aW1lclNlcnZpY2Uuc3RhcnRUaW1lcigpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCB0aGlzLmhhbmRsZUdsb2JhbE1vdXNlRXZlbnQpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUdsb2JhbE1vdXNlRXZlbnQgPSAoKTogdm9pZCA9PiB7XHJcbiAgICB0aGlzLnRpbWVyU2VydmljZS5zdGFydFRpbWVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5oYW5kbGVHbG9iYWxNb3VzZUV2ZW50KTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlR2xvYmFsTW91c2VFdmVudCk7XHJcbiAgICB0aGlzLnRpbWVyU2VydmljZS5jbGVhclRpbWVyKClcclxuICB9XHJcblxyXG4gIGNoYW5nZWJyYW5kKCkge1xyXG4gICAgdGhpcy5hdXRoID0gdHJ1ZTtcclxuICAgIHZhciB0b3RhbGZpbGU6IGFueSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpO1xyXG5cclxuICAgIGxldCBqdW5raW1hZ2U6IGFueSA9IFtdO1xyXG4gICAgbGV0IGVtcGxveWVlaW1hZ2U6IGFueSA9IFtdO1xyXG4gICAgbGV0IGN1c3RvbWVyaW1hZ2U6IGFueSA9IFtdO1xyXG5cclxuICAgIHRoaXMucmV0YWdqdW5rZGF0YS5tYXAoKGU6IGFueSkgPT4ge1xyXG4gICAgICBkZWxldGUgZS5pbWdfcGF0aDsgZGVsZXRlIGUuc2VsZWN0ZWQ7IGRlbGV0ZSBlLmNvdW50O1xyXG4gICAgICBkZWxldGUgZS5kcm9wcGVkOyBkZWxldGUgZS5tYXBwZWRpZDtcclxuICAgICAganVua2ltYWdlLnB1c2goZSk7XHJcbiAgICB9KVxyXG4gICAgdGhpcy5yZXRhZ2VtcGxveWVlZGF0YS5tYXAoKGU6IGFueSkgPT4ge1xyXG4gICAgICBkZWxldGUgZS5pbWdfcGF0aDsgZGVsZXRlIGUuc2VsZWN0ZWQ7IGRlbGV0ZSBlLmNvdW50O1xyXG4gICAgICBkZWxldGUgZS5kcm9wcGVkOyBkZWxldGUgZS5tYXBwZWRpZDtcclxuICAgICAgZW1wbG95ZWVpbWFnZS5wdXNoKGUpO1xyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLnJldGFnY3VzdG9tZXJkYXRhLm1hcCgoZTogYW55KSA9PiB7XHJcblxyXG4gICAgICBpZiAoZS5jb3VudCA+IDEpIHtcclxuICAgICAgICBkZWxldGUgZS5pbWdfcGF0aDtcclxuICAgICAgICBkZWxldGUgZS5zZWxlY3RlZDtcclxuICAgICAgICBkZWxldGUgZS5kcm9wcGVkO1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBlLm1hcHBlZGlkO1xyXG4gICAgICAgIGUubWFwcGVkaWQgPSByZXN1bHRcclxuICAgICAgICBlLmNvdW50ID0gcmVzdWx0Lmxlbmd0aFxyXG4gICAgICAgIGUubWFwcGVkaWQuZm9yRWFjaCgoZTE6IGFueSkgPT4geyBkZWxldGUgZTEuaW1nX3BhdGggfSlcclxuICAgICAgICBjdXN0b21lcmltYWdlLnB1c2goZSlcclxuICAgICAgfVxyXG4gICAgICBpZiAoZS5kZW1vZ3JhcGhpYyA9PT0gJ2QnICYmIGUuY291bnQgPT09IDEpIHtcclxuICAgICAgICBkZWxldGUgZS5pbWdfcGF0aDtcclxuICAgICAgICBkZWxldGUgZS5zZWxlY3RlZDtcclxuICAgICAgICBkZWxldGUgZS5kcm9wcGVkO1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBlLm1hcHBlZGlkO1xyXG4gICAgICAgIGUubWFwcGVkaWQgPSByZXN1bHRcclxuICAgICAgICBlLmNvdW50ID0gcmVzdWx0Lmxlbmd0aFxyXG4gICAgICAgIGUubWFwcGVkaWQuZm9yRWFjaCgoZTE6IGFueSkgPT4geyBkZWxldGUgZTEuaW1nX3BhdGggfSlcclxuICAgICAgICBjdXN0b21lcmltYWdlLnB1c2goZSlcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHZhciBvYmo6IGFueSA9IHtcclxuICAgICAgYXVkaXRJZDogdG90YWxmaWxlPy5hdWRpdElkID8gdG90YWxmaWxlPy5hdWRpdElkIDogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uYXVkaXRJZCxcclxuICAgICAgc3RvcmVJZDogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uc3RvcmVfaWQsXHJcbiAgICAgIGF1ZGl0VHlwZTogdG90YWxmaWxlPy5maWxlZGV0YWlscz8udHlwZSxcclxuICAgICAgZmlsZURhdGU6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LmZpbGVfZGF0ZSxcclxuICAgICAgYmVmb3JlQ291bnQ6IHRvdGFsZmlsZT8udG90YWxmaWxlcyxcclxuICAgICAganVua0NvdW50OiB0aGlzLlJldGFnanVua2NvdW50LFxyXG4gICAgICBqdW5rOiBqdW5raW1hZ2UgPyBqdW5raW1hZ2UgOiBbXSxcclxuICAgICAgZW1wbG95ZWVDb3VudDogdGhpcy5SZXRhZ2VtcGxveWVlY291bnQsXHJcbiAgICAgIGVtcGxveWVlOiBlbXBsb3llZWltYWdlID8gZW1wbG95ZWVpbWFnZSA6IFtdLFxyXG4gICAgICBjdXN0b21lckNvdW50OiB0aGlzLlJldGFnY3VzdG9tZXJjb3VudCxcclxuICAgICAgem9uZU5hbWU6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnpvbmVOYW1lID8gdG90YWxmaWxlPy5maWxlZGV0YWlscz8uem9uZU5hbWUgOiAnJyxcclxuICAgICAgbW9kdWxlVHlwZTogdGhpcy5zZWxlY3RlZFR5cGUsXHJcbiAgICAgIGN1c3RvbWVyOiBjdXN0b21lcmltYWdlID8gY3VzdG9tZXJpbWFnZSA6IFtdLFxyXG4gICAgICB0aW1lU3BlbnQ6IHRoaXMudGltZVBhc3NlZFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXBpc2VydmljZS5zYXZlYXVkaXQob2JqKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KHJlcz8uZGF0YT8ucmVzdWx0KVxyXG4gICAgICAgICAgdGhpcy5hdXRoID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRpbWVyU2VydmljZS5yZXNldFRpbWVyKClcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ3RpbWVTcGVudCcpXHJcbiAgICAgICAgICB0aGlzLmNsb3NlcG9wdXAoKVxyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnZW1wbG95ZWUnKVxyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnanVuaycpXHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdhdWRpdCcpXHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCd0b3RhbGZpbGVzJylcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ3JldGFnJylcclxuXHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdGlja2V0cyddLCB7IHF1ZXJ5UGFyYW1zOiB7IHR5cGU6ICdmb290ZmFsbCcgfSB9KVxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5hdXRoID0gZmFsc2U7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMykge1xyXG4gICAgICAgICAgICB0aGlzLkVycm9ybXNnID0gcmVzLmVycm9yXHJcbiAgICAgICAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbmZpcm1lcnJvcilcclxuICAgICAgICAgICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNDb25maXJtZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL21hbmFnZS90aWNrZXRzJ10sIHsgcXVlcnlQYXJhbXM6IHsgdHlwZTogJ2Zvb3RmYWxsJyB9IH0pXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnI/LmVycm9yPy5tZXNzYWdlIHx8IGVycj8uZXJyb3I/LmVycm9yIHx8IGVycj8ubWVzc2FnZSB8fCAnSW52YWxpZCBzdGF0dXMgY29kZTogdW5kZWZpbmVkJztcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyb3JNZXNzYWdlKTtcclxuICAgICAgfSxcclxuXHJcbiAgICB9KVxyXG5cclxuICB9XHJcblxyXG4gIG5leHRmaWxlKCkge1xyXG4gICAgdGhpcy5hdXRoID0gdHJ1ZTtcclxuICAgIGxldCB0b3RhbGZpbGU6IGFueSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndG90YWxmaWxlcycpIHx8ICd7fScpO1xyXG4gICAgY29uc29sZS5sb2coXCLwn5qAIH4gQXVkaXRSZXBvcnRQb3B1cENvbXBvbmVudCB+IG5leHRmaWxlIH4gdG90YWxmaWxlOlwiLCB0b3RhbGZpbGUpXHJcbiAgICBsZXQgcmV2aXNlZERldGFpbDogYW55ID0gW11cclxuICAgIGxldCBzdHJpbmdpZnlkYXRhID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYXVkaXQnKSB8fCAne30nXHJcbiAgICBjb25zdCBkZWNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuZGVjb21wcmVzcyhzdHJpbmdpZnlkYXRhKTtcclxuICAgIHZhciBjdXN0b21lciA9IEpTT04ucGFyc2UoZGVjb21wcmVzc2VkRGF0YSB8fCAne30nKVxyXG4gICAgY3VzdG9tZXIubWFwKChjdXN0b21lckRhdGE6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoY3VzdG9tZXJEYXRhLmNvdW50ID4gMSkge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi8J+agCB+IEF1ZGl0UmVwb3J0UG9wdXBDb21wb25lbnQgfiBuZXh0ZmlsZSB+IGN1c3RvbWVyRGF0YTpcIiwgY3VzdG9tZXJEYXRhKVxyXG4gICAgICAgIGxldCBkdXBsaWNhdGVEYXRhID0gY3VzdG9tZXJEYXRhLm1hcHBlZGlkLmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhLmltZ19uYW1lICE9IGN1c3RvbWVyRGF0YT8uaW1nX25hbWUpXHJcbiAgICAgICAgY29uc29sZS5sb2coXCLwn5qAIH4gQXVkaXRSZXBvcnRQb3B1cENvbXBvbmVudCB+IG5leHRmaWxlIH4gZHVwbGljYXRlRGF0YTpcIiwgZHVwbGljYXRlRGF0YSlcclxuICAgICAgICBsZXQgZHVwbGljYXRlSW1hZ2U6IGFueSA9IFtdXHJcbiAgICAgICAgZHVwbGljYXRlRGF0YS5tYXAoKGR1cERhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZHVwbGljYXRlSW1hZ2UucHVzaChcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwiaWRcIjogYCR7dG90YWxmaWxlPy5maWxlZGV0YWlscz8uc3RvcmVJZH1fJHt0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5EYXRlfV8ke2R1cERhdGE/LmltZ19uYW1lfWAsXHJcbiAgICAgICAgICAgICAgXCJ0ZW1wSWRcIjogZHVwRGF0YT8uaW1nX25hbWUsXHJcbiAgICAgICAgICAgICAgXCJmaWxlUGF0aFwiOiBkdXBEYXRhPy5pbWdfcGF0aCxcclxuICAgICAgICAgICAgICBcImlzQ2hlY2tlZFwiOiB0cnVlXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIClcclxuXHJcbiAgICAgICAgfSlcclxuICAgICAgICBsZXQgbmV3T2JqOiBhbnkgPSB7XHJcbiAgICAgICAgICBcImlkXCI6IGAke3RvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnN0b3JlSWR9XyR7dG90YWxmaWxlPy5maWxlZGV0YWlscz8uRGF0ZX1fJHtjdXN0b21lckRhdGE/LmltZ19uYW1lfWAsXHJcbiAgICAgICAgICBcImNsaWVudElkXCI6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LmNsaWVudElkLFxyXG4gICAgICAgICAgXCJzdG9yZUlkXCI6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnN0b3JlSWQsXHJcbiAgICAgICAgICBcInRlbXBJZFwiOiBjdXN0b21lckRhdGE/LmltZ19uYW1lLFxyXG4gICAgICAgICAgXCJkYXRlU3RyaW5nXCI6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LkRhdGUsXHJcbiAgICAgICAgICAvLyBcInRpbWVSYW5nZVwiOiBcIjExQU0tMTJQTVwiLFxyXG4gICAgICAgICAgXCJwcm9jZXNzVHlwZVwiOiBcImZvb3RmYWxsXCIsXHJcbiAgICAgICAgICBcInJldm9wc1R5cGVcIjogXCJkdXBsaWNhdGVcIixcclxuICAgICAgICAgIFwiZmlsZVBhdGhcIjogY3VzdG9tZXJEYXRhPy5pbWdfcGF0aCxcclxuICAgICAgICAgIFwic3RhdHVzXCI6IFwic3VibWl0dGVkXCIsXHJcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXHJcbiAgICAgICAgICBcImlzQ2hlY2tlZFwiOiB0cnVlLFxyXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGFnZ2luZy1yZWZsZWN0XCIsXHJcbiAgICAgICAgICBcInBhcmVudFwiOiBudWxsLFxyXG4gICAgICAgICAgXCJpc1BhcmVudFwiOiB0cnVlLFxyXG4gICAgICAgICAgXCJkdXBsaWNhdGVJbWFnZVwiOiBkdXBsaWNhdGVJbWFnZVxyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zb2xlLmxvZyhcIvCfmoAgfiBBdWRpdFJlcG9ydFBvcHVwQ29tcG9uZW50IH4gbmV4dGZpbGUgfiBuZXdPYmo6XCIsIG5ld09iailcclxuICAgICAgICByZXZpc2VkRGV0YWlsLnB1c2gobmV3T2JqKVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwi8J+agCB+IEF1ZGl0UmVwb3J0UG9wdXBDb21wb25lbnQgfiBuZXh0ZmlsZSB+IGN1c3RvbWVyRGF0YTpcIiwgY3VzdG9tZXJEYXRhKVxyXG4gICAgICAgIGxldCBuZXdPYmo6IGFueSA9IHtcclxuICAgICAgICAgIFwiaWRcIjogYCR7dG90YWxmaWxlPy5maWxlZGV0YWlscz8uc3RvcmVJZH1fJHt0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5EYXRlfV8ke2N1c3RvbWVyRGF0YT8uaW1nX25hbWV9YCxcclxuICAgICAgICAgIFwiY2xpZW50SWRcIjogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uY2xpZW50SWQsXHJcbiAgICAgICAgICBcInN0b3JlSWRcIjogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uc3RvcmVJZCxcclxuICAgICAgICAgIFwidGVtcElkXCI6IGN1c3RvbWVyRGF0YT8uaW1nX25hbWUsXHJcbiAgICAgICAgICBcImRhdGVTdHJpbmdcIjogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uRGF0ZSxcclxuICAgICAgICAgIFwidGltZVJhbmdlXCI6IFwiMTFBTS0xMlBNXCIsXHJcbiAgICAgICAgICBcInByb2Nlc3NUeXBlXCI6IFwiZm9vdGZhbGxcIixcclxuICAgICAgICAgIFwicmV2b3BzVHlwZVwiOiBcImR1cGxpY2F0ZVwiLFxyXG4gICAgICAgICAgXCJmaWxlUGF0aFwiOiBjdXN0b21lckRhdGE/LmltZ19wYXRoLFxyXG4gICAgICAgICAgXCJzdGF0dXNcIjogXCJzdWJtaXR0ZWRcIixcclxuICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCJcIixcclxuICAgICAgICAgIFwiaXNDaGVja2VkXCI6IHRydWUsXHJcbiAgICAgICAgICBcInR5cGVcIjogXCJ0YWdnaW5nLXJlZmxlY3RcIixcclxuICAgICAgICAgIFwicGFyZW50XCI6IG51bGwsXHJcbiAgICAgICAgICBcImlzUGFyZW50XCI6IHRydWUsXHJcbiAgICAgICAgICBcImR1cGxpY2F0ZUltYWdlXCI6IFtdXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi8J+agCB+IEF1ZGl0UmVwb3J0UG9wdXBDb21wb25lbnQgfiBuZXh0ZmlsZSB+IG5ld09iajpcIiwgbmV3T2JqKVxyXG4gICAgICAgIHJldmlzZWREZXRhaWwucHVzaChuZXdPYmopXHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgfSlcclxuICAgIGxldCBjb3VudDogYW55ID0gW11cclxuICAgIHRoaXMuY2F0ZWdvcnkubWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgY291bnQucHVzaCh7XHJcbiAgICAgICAgbmFtZTogZGF0YS5uYW1lLFxyXG4gICAgICAgIHZhbHVlOiBkYXRhLmNvdW50LFxyXG4gICAgICAgIHR5cGU6IGRhdGEudHlwZVxyXG4gICAgICB9KVxyXG4gICAgICBsZXQgZmlsdGVyRGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShkYXRhPy50eXBlKSB8fCAnW10nKVxyXG5cclxuICAgICAgZmlsdGVyRGF0YS5tYXAoKG90aGVyRGF0YTogYW55KSA9PiB7XHJcblxyXG4gICAgICAgIGxldCBvdGhlck9iajogYW55ID0ge1xyXG4gICAgICAgICAgXCJpZFwiOiBgJHt0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZUlkfV8ke3RvdGFsZmlsZT8uZmlsZWRldGFpbHM/LkRhdGV9XyR7b3RoZXJEYXRhPy5pbWdfbmFtZX1gLFxyXG4gICAgICAgICAgXCJjbGllbnRJZFwiOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5jbGllbnRJZCxcclxuICAgICAgICAgIFwic3RvcmVJZFwiOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5zdG9yZUlkLFxyXG4gICAgICAgICAgXCJ0ZW1wSWRcIjogb3RoZXJEYXRhPy5pbWdfbmFtZSxcclxuICAgICAgICAgIFwiZGF0ZVN0cmluZ1wiOiB0b3RhbGZpbGU/LmZpbGVkZXRhaWxzPy5EYXRlLFxyXG4gICAgICAgICAgXCJwcm9jZXNzVHlwZVwiOiBcImZvb3RmYWxsXCIsXHJcbiAgICAgICAgICBcInJldm9wc1R5cGVcIjogZGF0YT8udHlwZSxcclxuICAgICAgICAgIFwiZmlsZVBhdGhcIjogb3RoZXJEYXRhPy5pbWdfcGF0aCxcclxuICAgICAgICAgIFwic3RhdHVzXCI6IFwic3VibWl0dGVkXCIsXHJcbiAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiXCIsXHJcbiAgICAgICAgICBcImlzQ2hlY2tlZFwiOiB0cnVlLFxyXG4gICAgICAgICAgXCJ0eXBlXCI6IFwidGFnZ2luZy1yZWZsZWN0XCIsXHJcbiAgICAgICAgICBcInBhcmVudFwiOiBudWxsLFxyXG4gICAgICAgICAgXCJpc1BhcmVudFwiOiBmYWxzZSxcclxuICAgICAgICAgIFwiZHVwbGljYXRlSW1hZ2VcIjogW11cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV2aXNlZERldGFpbC5wdXNoKG90aGVyT2JqKVxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuXHJcblxyXG4gICAgbGV0IHRpY2tldFR5cGUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd0aWNrZXRUeXBlJylcclxuXHJcbiAgICB2YXIgb2JqOiBhbnkgPSB7XHJcbiAgICAgIFwidHlwZVwiOiBcInRhbmdvcmV2aWV3XCIsXHJcbiAgICAgIFwibW9kZVwiOiBcIndlYlwiLFxyXG4gICAgICBcInJldmljZWRGb290ZmFsbFwiOiB0aGlzLlJldGFnY3VzdG9tZXJjb3VudCxcclxuXHJcbiAgICAgIFwicmV2aWNlZFBlcmNcIjogTWF0aC5yb3VuZCgodGhpcy5SZXRhZ2N1c3RvbWVyY291bnQgLyB0b3RhbGZpbGU/LnRvdGFsZmlsZXMpICogMTAwKSArIFwiJVwiLFxyXG4gICAgICBjb3VudDogY291bnQsXHJcbiAgICAgIHJldmlzZWREZXRhaWw6IHJldmlzZWREZXRhaWxcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKFwi8J+agCB+IEF1ZGl0UmVwb3J0UG9wdXBDb21wb25lbnQgfiBuZXh0ZmlsZSB+IG9iajpcIiwgb2JqKVxyXG4gICAgLy8gcmV0dXJuXHJcbiAgICBsZXQgcGF5bG9hZCA9IHtcclxuICAgICAgc3RvcmVJZDogdG90YWxmaWxlPy5maWxlZGV0YWlscz8uc3RvcmVJZCxcclxuICAgICAgXCJkYXRlU3RyaW5nXCI6IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LkRhdGUsXHJcbiAgICAgIHRpY2tldFR5cGU6IHRpY2tldFR5cGUsXHJcbiAgICAgIG1hcHBpbmdJbmZvOiBvYmpcclxuICAgIH1cclxuICAgIHRoaXMuYXBpc2VydmljZS5zYXZlYXVkaXQocGF5bG9hZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmF1dGggPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudGltZXJTZXJ2aWNlLnJlc2V0VGltZXIoKVxyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgndGltZVNwZW50JylcclxuICAgICAgICAgIHRoaXMuY2xvc2Vwb3B1cCgpXHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdlbXBsb3llZScpXHJcbiAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdqdW5rJylcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ2F1ZGl0JylcclxuICAgICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oJ3RvdGFsZmlsZXMnKVxyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgncmV0YWcnKVxyXG4gICAgICAgICAgdmFyIG9iajogYW55ID0ge1xyXG4gICAgICAgICAgICB0b3RhbGZpbGVzOiB7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIG9iai50b3RhbGZpbGVzLnF1ZXVlTmFtZSA9IHRvdGFsZmlsZT8uZmlsZWRldGFpbHM/LnF1ZXVlTmFtZVxyXG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgndG90YWxmaWxlcycsIEpTT04uc3RyaW5naWZ5KG9iaikpXHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdGlja2V0cyddLCB7IHF1ZXJ5UGFyYW1zOiB7IHR5cGU6ICdmb290ZmFsbCcgfSB9KVxyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5hdXRoID0gZmFsc2U7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMykge1xyXG4gICAgICAgICAgICB0aGlzLkVycm9ybXNnID0gcmVzLmVycm9yXHJcbiAgICAgICAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbmZpcm1lcnJvcilcclxuICAgICAgICAgICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNDb25maXJtZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL21hbmFnZS90aWNrZXRzJ10sIHsgcXVlcnlQYXJhbXM6IHsgdHlwZTogJ2Zvb3RmYWxsJyB9IH0pXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyPy5lcnJvcj8ubWVzc2FnZSB8fCBlcnI/LmVycm9yPy5lcnJvciB8fCBlcnI/Lm1lc3NhZ2UgfHwgJ0ludmFsaWQgc3RhdHVzIGNvZGU6IHVuZGVmaW5lZCc7XHJcbiAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycm9yTWVzc2FnZSk7XHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG5cclxuICB9XHJcbiAgY2xvc2Vwb3B1cCgpIHtcclxuICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIHJldmlld2RhdGEoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvbWFuYWdlL3RpY2tldHMvbWFwcGluZy1saXN0XCJdKVxyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsIGZhZGUgc2hvdyBkLWJsb2NrXCIgdGFiaW5kZXg9XCItMVwiIHJvbGU9XCJkaWFsb2dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2cgbW9kYWwtZGlhbG9nLWNlbnRlcmVkXCIgcm9sZT1cImRvY3VtZW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnQgbWVyZ2UtdGlja2V0LW1vZGFsXCI+XHJcblxyXG4gICAgICAgICAgICA8IS0tIEhlYWRlciAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBib3JkZXItMCBwYi0wXCI+XHJcbiAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiPkNsb3NlIHRpY2tldDwvaDU+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1jbG9zZVwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJjbG9zZXBvcHVwKClcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIEJvZHkgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGFuZ29BY2N1cmFjeT44NSYmY2VudHJhbE9wc0RhdGE/LnJldmljZWRGb290ZmFsbCYmdGlja2V0VHlwZSE9J2ludGVybmFsJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMFwiPlRoZSB0aWNrZXQgd2lsbCBiZSA8Yj7igJxjbG9zZWTigJ08L2I+IGFuZCB1cGRhdGVkIGluIHRoZSBzdG9yZSBhcyBhIGZpbmFsIHJldmlzaW9uLjwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRhbmdvQWNjdXJhY3k+ODUmJiFjZW50cmFsT3BzRGF0YT8ucmV2aWNlZEZvb3RmYWxsfHx0aWNrZXRUeXBlPT09J2ludGVybmFsJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMFwiPllvdeKAmXJlIGFib3V0IHRvIGNsb3NlIHRoaXMgdGlja2V0LiBEbyB5b3Ugd2FudCB0byBwcm9jZWVkPzwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSBJbmZvIGJhbm5lciAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBtZXJnZS1pbmZvIGQtZmxleFwiICpuZ0lmPVwidGlja2V0VHlwZSE9J2ludGVybmFsJyYmdGFuZ29BY2N1cmFjeTw4NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZS0zIG10LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1pbmZvLWNpcmNsZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgdGlja2V0IHdpbGwgYmUgPGI+4oCcY2xvc2Vk4oCdPC9iPiBhbmQgdXBkYXRlZCBpbiB0aGUgc3RvcmUgYXMgYSBmaW5hbCByZXZpc2lvbi5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpbmNlIGFjY3VyYWN5IGlzIGJlbG93IDg1JSwgaXQgd2lsbCBiZSBtYXJrZWQgYXMgYW4gPGI+4oCcT3Blbi1BY2N1cmFjeSBJc3N1ZeKAnTwvYj4gaW4gVGFuZ28uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQbGVhc2UgYWRkIHRoZSBjYXVzZSBmb3IgdGhlIGxvdyBhY2N1cmFjeS5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gQ2FyZHMgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctMyBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBDZW50cmFsIE9wcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02XCIgKm5nSWY9XCJjZW50cmFsT3BzRGF0YT8ucmV2aWNlZEZvb3RmYWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgbWItMyBmdy1zZW1pYm9sZFwiPkNlbnRyYWwgT3BzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1lbmQgbWItMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3tjZW50cmFsT3BzRGF0YT8ucmV2aWNlZEZvb3RmYWxsfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPkZvb3RmYWxsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZSB0ZXh0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NlbnRyYWxPcHNEYXRhPy5yZXZpY2VkUGVyY319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcnJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY2VudHJhbE9wc0RhdGE/LnJldmljZWRGb290ZmFsbDx0YW5nb0RhdGE/LnJldmljZWRGb290ZmFsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDihpNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcnJvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY2VudHJhbE9wc0RhdGE/LnJldmljZWRGb290ZmFsbD50YW5nb0RhdGE/LnJldmljZWRGb290ZmFsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDihpFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPkFjY3VyYWN5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIFRhbmdvIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLW1kLTZcIiAqbmdJZj1cInRhbmdvRGF0YT8ucmV2aWNlZEZvb3RmYWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgbWItMyBmdy1zZW1pYm9sZFwiPlRhbmdvPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1lbmQgbWItMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3t0YW5nb0RhdGE/LnJldmljZWRGb290ZmFsbH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj5Gb290ZmFsbDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWUgdGV4dC1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0YW5nb0RhdGE/LnJldmljZWRQZXJjfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFycm93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjZW50cmFsT3BzRGF0YT8ucmV2aWNlZEZvb3RmYWxsPnRhbmdvRGF0YT8ucmV2aWNlZEZvb3RmYWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKGk1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFycm93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjZW50cmFsT3BzRGF0YT8ucmV2aWNlZEZvb3RmYWxsPHRhbmdvRGF0YT8ucmV2aWNlZEZvb3RmYWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKGkVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+QWNjdXJhY3k8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIEZvb3RlciAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlciBib3JkZXItMCBwdC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnlcIiAoY2xpY2spPVwiY2xvc2Vwb3B1cCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgY2FuY2VsXHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJ0YW5nb0FjY3VyYWN5Pjg1XCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cIm5leHRmaWxlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICBzdWJtaXRcclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInRhbmdvQWNjdXJhY3k8ODVcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwibmV4dGZpbGUoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIFJldmlld1xyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -63,6 +63,7 @@ export class TicketFilterPanelComponent {
63
63
  'Open',
64
64
  'In-Progress',
65
65
  'Closed',
66
+ 'Under Tango Review',
66
67
  // 'Open - Accuracy Issue',
67
68
  // 'Closed - Accuracy Issue',
68
69
  'Expired',
@@ -517,4 +518,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
517
518
  type: HostListener,
518
519
  args: ['document:click', ['$event']]
519
520
  }] } });
520
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWZpbHRlci1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL2NvbXBvbmVudHMvdGlja2V0LWZpbHRlci1wYW5lbC90aWNrZXQtZmlsdGVyLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy90aWNrZXQtZmlsdGVyLXBhbmVsL3RpY2tldC1maWx0ZXItcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNuSSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQVVwRSxNQUFNLE9BQU8sMEJBQTBCO0lBOEZqQjtJQUF3QjtJQUF5QjtJQTdGMUQsS0FBSyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDakMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUMsQ0FBRyxnQkFBZ0I7SUFDM0QsY0FBYyxHQUFrQixJQUFJLENBQUM7SUFDdkMsUUFBUSxHQUFrQixJQUFJLENBQUMsQ0FBQyx5QkFBeUI7SUFDekQsTUFBTSxDQUFNO0lBQ1osR0FBRyxDQUFLO0lBRWpCLGVBQWUsQ0FBQyxLQUFpQjtRQUUvQixtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEs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LE1BQU07Z0JBQ0UsV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxjQUFjO3NCQUF0QixLQUFLO2dCQUNDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFFTixlQUFlO3NCQURiLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUaWNrZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGlja2V0LnNlcnZpY2UnO1xyXG5cclxudHlwZSBDb25kaXRpb24gPSAnZ3QnIHwgJ2x0JyB8ICdndGUnIHwgJ2x0ZScgfCAnYmV0d2Vlbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi10aWNrZXQtZmlsdGVyLXBhbmVsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGlja2V0LWZpbHRlci1wYW5lbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RpY2tldC1maWx0ZXItcGFuZWwuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUaWNrZXRGaWx0ZXJQYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgIEBPdXRwdXQoKSBhcHBseSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBwYW5lbENsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTsgICAvLyDinIUgbm90IGBjbG9zZWBcclxuICBASW5wdXQoKSBwZXJtaXNzaW9uVHlwZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbkBJbnB1dCgpIHVzZXJUeXBlOiBzdHJpbmcgfCBudWxsID0gbnVsbDsgLy8gZS5nLiAndGFuZ28nIG9yIG90aGVyc1xyXG5ASW5wdXQoKSBjbGllbnQgOmFueTtcclxuQElucHV0KCkgdGFiOmFueTtcclxuIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxub25Eb2N1bWVudENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcblxyXG4gIC8vIDHvuI/ig6MgQWx3YXlzIGNsb3NlIGRyb3Bkb3ducyBmaXJzdFxyXG4gIHRoaXMuZHJvcGRvd25TdGF0ZS5zdGF0dXMgPSBmYWxzZTtcclxuICB0aGlzLmRyb3Bkb3duU3RhdGUucmV2aWV3ZXIgPSBmYWxzZTtcclxuICB0aGlzLmRyb3Bkb3duU3RhdGUuYXBwcm92ZXIgPSBmYWxzZTtcclxuICAgdGhpcy5kcm9wZG93blN0YXRlLnRpY2tldFN0YXR1cyA9ZmFsc2U7XHJcblxyXG4gIC8vIDLvuI/ig6MgSWYgZmlsdGVyIGlzIG5vdCBvcGVuIOKGkiBub3RoaW5nIHRvIGNsb3NlXHJcbiAgaWYgKCF0aGlzLmlzT3BlbikgcmV0dXJuO1xyXG5cclxuICAvLyAz77iP4oOjIENoZWNrIGlmIGNsaWNrZWQgaW5zaWRlIGZpbHRlciBjYXJkXHJcbiAgY29uc3QgY2xpY2tlZEluc2lkZSA9IHRoaXMuZVJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCk7XHJcblxyXG4gIC8vIDTvuI/ig6MgSWYgY2xpY2tlZCBPVVRTSURFIOKGkiBjbG9zZSBlbnRpcmUgZmlsdGVyIHBhbmVsXHJcbiAgaWYgKCFjbGlja2VkSW5zaWRlKSB7XHJcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5wYW5lbENsb3NlZC5lbWl0KCk7XHJcbiAgIHRoaXMuZmlsdGVyRm9ybS5yZXNldCh7XHJcbiAgICAgc3RhdHVzOiBbXSxcclxuICAgICB0eXBlOm51bGwsXHJcbiAgICB0aWNrZXRTdGF0dXMgOltdLFxyXG4gICAgcmV2aWV3ZXJDb25kaXRpb246IG51bGwsXHJcbiAgICByZXZpZXdlckZyb206IG51bGwsXHJcbiAgICByZXZpZXdlclRvOiBudWxsLFxyXG5cclxuICAgIGFwcHJvdmVyQ29uZGl0aW9uOiBudWxsLFxyXG4gICAgYXBwcm92ZXJGcm9tOiBudWxsLFxyXG4gICAgYXBwcm92ZXJUbzogbnVsbCxcclxuXHJcbiAgICB0YW5nb0NvbmRpdGlvbjogbnVsbCxcclxuICAgIHRhbmdvRnJvbTogbnVsbCxcclxuICAgIHRhbmdvVG86IG51bGwsXHJcblxyXG4gICAgcmV2aWV3ZWRCeTogW10sXHJcbiAgICBhcHByb3ZlZEJ5OiBbXVxyXG4gIH0pO1xyXG50aGlzLm9uUmVzZXQoKTtcclxuICB9XHJcbn1cclxuICBpc09wZW4gPSBmYWxzZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29udHJvbHMgdmlzaWJpbGl0eVxyXG5cclxuICAvLyBjYWxsZWQgZnJvbSBwYXJlbnQgdmlhICNmaWx0ZXJQYW5lbC5vcGVuKClcclxuICBvcGVuKCkge1xyXG4gICAgdGhpcy5pc09wZW4gPSB0cnVlO1xyXG4gICBcclxuICB9XHJcblxyXG4gIC8vIGNhbGxlZCBmcm9tIGNsb3NlIGJ1dHRvbiBpbnNpZGUgdGhlIHBhbmVsXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5wYW5lbENsb3NlZC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBzaG93UGFuZWwgPSBmYWxzZTsgICAgICAgICAgIC8vIHlvdSBjYW4gYWxzbyBjb250cm9sIHRoaXMgZnJvbSBwYXJlbnRcclxuXHJcbnN0YXR1c09wdGlvbnM6IGFueVtdID0gW1xyXG4gICdPcGVuJyxcclxuICAnSW4tUHJvZ3Jlc3MnLFxyXG4gICdDbG9zZWQnLFxyXG4gIC8vICdPcGVuIC0gQWNjdXJhY3kgSXNzdWUnLFxyXG4gIC8vICdDbG9zZWQgLSBBY2N1cmFjeSBJc3N1ZScsXHJcbiAgJ0V4cGlyZWQnLFxyXG5dO1xyXG50aWNrZXRTdGF0dXNPcHRpb25zOiBhbnlbXSA9IFtcclxuICAnUmFpc2VkJyxcclxuICAnUmV2aWV3ZXIgLSBPcGVuJyxcclxuICAnUmV2aWV3ZXIgLSBJbi1Qcm9ncmVzcycsXHJcbiAgJ1Jldmlld2VyIC0gQ2xvc2VkJyxcclxuICAnUmV2aWV3ZXIgLSBFeHBpcmVkJyxcclxuICAnQXBwcm92ZXIgLSBPcGVuJyxcclxuICAnQXBwcm92ZXIgLSBJbi1Qcm9ncmVzcycsXHJcbiAgJ0FwcHJvdmVyIC0gQ2xvc2VkJyxcclxuICAnQXBwcm92ZXIgLSBFeHBpcmVkJyxcclxuXTtcclxuXHJcbiAgY29uZGl0aW9uT3B0aW9ucyA9IFtcclxuICAgIHsgdmFsdWU6ICdndCcsIGxhYmVsOiAnPiBHcmVhdGVyIHRoYW4nIH0sXHJcbiAgICB7IHZhbHVlOiAnbHQnLCBsYWJlbDogJzwgTGVzc2VyIHRoYW4nIH0sXHJcbiAgICB7IHZhbHVlOiAnZ3RlJywgbGFiZWw6ICc+PSBHcmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8nIH0sXHJcbiAgICB7IHZhbHVlOiAnbHRlJywgbGFiZWw6ICc8PSBMZXNzZXIgdGhhbiBvciBlcXVhbCB0bycgfSxcclxuICAgIHsgdmFsdWU6ICdiZXR3ZWVuJywgbGFiZWw6ICdCZXR3ZWVuJyB9LFxyXG4gIF07XHJcblxyXG4gIGZpbHRlckZvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIscHJpdmF0ZSBlUmVmOiBFbGVtZW50UmVmLHByaXZhdGUgc2VydmljZTpUaWNrZXRTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmZpbHRlckZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgc3RhdHVzOiBbW11dLFxyXG4gICAgICB0eXBlOm51bGwsXHJcbiAgICAgIHRpY2tldFN0YXR1cyA6W1tdXSxcclxuICAgICAgcmV2aWV3ZXJDb25kaXRpb246IFtudWxsIGFzIENvbmRpdGlvbiB8IG51bGxdLFxyXG4gICAgICByZXZpZXdlckZyb206IFtudWxsLFtWYWxpZGF0b3JzLm1pbigwKSwgVmFsaWRhdG9ycy5tYXgoMTAwKV1dLFxyXG4gICAgICByZXZpZXdlclRvOiBbbnVsbCxbVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KDEwMCldXSxcclxuXHJcbiAgICAgIGFwcHJvdmVyQ29uZGl0aW9uOiBbbnVsbCBhcyBDb25kaXRpb24gfCBudWxsXSxcclxuICAgICAgYXBwcm92ZXJGcm9tOiBbbnVsbCxbVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KDEwMCldXSxcclxuICAgICAgYXBwcm92ZXJUbzogW251bGwsW1ZhbGlkYXRvcnMubWluKDApLCBWYWxpZGF0b3JzLm1heCgxMDApXV0sXHJcblxyXG4gICAgICB0YW5nb0NvbmRpdGlvbjogW251bGwgYXMgQ29uZGl0aW9uIHwgbnVsbF0sXHJcbiAgICAgIHRhbmdvRnJvbTogW251bGwsW1ZhbGlkYXRvcnMubWluKDApLCBWYWxpZGF0b3JzLm1heCgxMDApXV0sXHJcbiAgICAgIHRhbmdvVG86IFtudWxsLFtWYWxpZGF0b3JzLm1pbigwKSwgVmFsaWRhdG9ycy5tYXgoMTAwKV1dLFxyXG5cclxuICAgICAgcmV2aWV3ZWRCeTogW1tdXSxcclxuICBhcHByb3ZlZEJ5OiBbW11dLCAgXHJcbiAgICB9KTtcclxuICAgIHRoaXMub25SZXNldCgpO1xyXG4gIH1cclxuXHJcblxyXG5saW1pdFZhbHVlKGV2ZW50OiBhbnksIGNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcclxuICBsZXQgdmFsdWUgPSBOdW1iZXIoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuXHJcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAwO1xyXG4gIGlmICh2YWx1ZSA+IDEwMCkgdmFsdWUgPSAxMDA7XHJcblxyXG4gIGV2ZW50LnRhcmdldC52YWx1ZSA9IHZhbHVlO1xyXG4gIHRoaXMuZmlsdGVyRm9ybS5nZXQoY29udHJvbE5hbWUpPy5zZXRWYWx1ZSh2YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG59XHJcblxyXG5nZXQgaXNUYW5nbygpOiBib29sZWFuIHtcclxuICByZXR1cm4gdGhpcy51c2VyVHlwZSA9PT0gJ3RhbmdvJztcclxufVxyXG5cclxuLy8gU0hPVyAvIEhJREUgUlVMRVNcclxuXHJcbi8vIFJldmlld2VyIGFjY3VyYWN5IGFuZCBcIlJldmlld2VkIGJ5XCIgdmlzaWJsZSBmb3IgdGFuZ28gKyByZXZpZXdlclxyXG5nZXQgc2hvd1Jldmlld2VyQWNjdXJhY3koKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHRoaXMuaXNUYW5nbyB8fCB0aGlzLnBlcm1pc3Npb25UeXBlID09PSAncmV2aWV3JztcclxufVxyXG5cclxuZ2V0IHNob3dSZXZpZXdlZEJ5KCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAgdGhpcy5wZXJtaXNzaW9uVHlwZSA9PT0gJ3Jldmlldyc7XHJcbn1cclxuXHJcbi8vIEFwcHJvdmVyIGFjY3VyYWN5IGFuZCBcIkFwcHJvdmVkIGJ5XCIgdmlzaWJsZSBmb3IgdGFuZ28gKyBhcHByb3ZlclxyXG5nZXQgc2hvd0FwcHJvdmVyQWNjdXJhY3koKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHRoaXMuaXNUYW5nbyB8fCB0aGlzLnBlcm1pc3Npb25UeXBlID09PSAnYXBwcm92ZSc7XHJcbn1cclxuXHJcbmdldCBzaG93QXBwcm92ZWRCeSgpOiBib29sZWFuIHtcclxuICByZXR1cm4gIHRoaXMucGVybWlzc2lvblR5cGUgPT09ICdhcHByb3ZlJztcclxufVxyXG5cclxuLy8gVGFuZ28gYWNjdXJhY3kgb25seSBmb3IgdGFuZ28gdXNlcnNcclxuZ2V0IHNob3dUYW5nb0FjY3VyYWN5KCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB0aGlzLmlzVGFuZ287XHJcbn1cclxuc3RhdHVzRHJvcGRvd25PcGVuID0gZmFsc2U7XHJcbmlzU3RhdHVzU2VsZWN0ZWQoc3RhdHVzOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICBjb25zdCBzZWxlY3RlZDogc3RyaW5nW10gPSB0aGlzLmZpbHRlckZvcm0udmFsdWUuc3RhdHVzIHx8IFtdO1xyXG4gIHJldHVybiBzZWxlY3RlZC5pbmNsdWRlcyhzdGF0dXMpO1xyXG59XHJcblxyXG5vblN0YXR1c0NoYW5nZShldmVudDogRXZlbnQsIHN0YXR1czogc3RyaW5nKSB7XHJcbiAgY29uc3QgY2hlY2tib3ggPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICBjb25zdCBzZWxlY3RlZDogc3RyaW5nW10gPSB0aGlzLmZpbHRlckZvcm0udmFsdWUuc3RhdHVzIHx8IFtdO1xyXG4gIGxldCBuZXh0OiBzdHJpbmdbXTtcclxuXHJcbiAgaWYgKGNoZWNrYm94LmNoZWNrZWQpIHtcclxuICAgIG5leHQgPSBzZWxlY3RlZC5pbmNsdWRlcyhzdGF0dXMpID8gc2VsZWN0ZWQgOiBbLi4uc2VsZWN0ZWQsIHN0YXR1c107XHJcbiAgfSBlbHNlIHtcclxuICAgIG5leHQgPSBzZWxlY3RlZC5maWx0ZXIocyA9PiBzICE9PSBzdGF0dXMpO1xyXG4gIH1cclxuXHJcbiAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoeyBzdGF0dXM6IG5leHQgfSk7XHJcbn1cclxuXHJcbnRvZ2dsZVN0YXR1c0Ryb3Bkb3duKGV2ZW50PzogTW91c2VFdmVudCkge1xyXG4gIGlmIChldmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IC8vIGF2b2lkIGRvY3VtZW50IGNsaWNrIGNsb3NpbmcgaXRcclxuICB9XHJcbiAgdGhpcy5zdGF0dXNEcm9wZG93bk9wZW4gPSAhdGhpcy5zdGF0dXNEcm9wZG93bk9wZW47XHJcbn1cclxuXHJcbi8vIEFyZSBhbGwgc3RhdHVzZXMgY3VycmVudGx5IHNlbGVjdGVkP1xyXG5hcmVBbGxTdGF0dXNlc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gIGNvbnN0IHNlbGVjdGVkOiBzdHJpbmdbXSA9IHRoaXMuZmlsdGVyRm9ybS52YWx1ZS5zdGF0dXMgfHwgW107XHJcbiAgcmV0dXJuIHNlbGVjdGVkLmxlbmd0aCA+IDAgJiYgc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLnN0YXR1c09wdGlvbnMubGVuZ3RoO1xyXG59XHJcblxyXG4vLyBIYW5kbGUgXCJTZWxlY3QgQWxsXCIgY2hlY2tib3ggY2hhbmdlXHJcbm9uU3RhdHVzU2VsZWN0QWxsQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xyXG4gIGNvbnN0IGNoZWNrYm94ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gIGlmIChjaGVja2JveC5jaGVja2VkKSB7XHJcbiAgICAvLyBTZWxlY3QgZXZlcnkgc3RhdHVzXHJcbiAgICB0aGlzLmZpbHRlckZvcm0ucGF0Y2hWYWx1ZSh7IHN0YXR1czogWy4uLnRoaXMuc3RhdHVzT3B0aW9uc10gfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIC8vIENsZWFyIGFsbFxyXG4gICAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoeyBzdGF0dXM6IFtdIH0pO1xyXG4gIH1cclxufVxyXG5nZXQgc2VsZWN0ZWRTdGF0dXNlcygpOiBzdHJpbmdbXSB7XHJcbiAgcmV0dXJuIHRoaXMuZmlsdGVyRm9ybS52YWx1ZS5zdGF0dXMgfHwgW107XHJcbn1cclxuXHJcbmlzVGlja2V0U3RhdHVzU2VsZWN0ZWQoc3RhdHVzOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICBjb25zdCBzZWxlY3RlZDogc3RyaW5nW10gPSB0aGlzLmZpbHRlckZvcm0udmFsdWUudGlja2V0U3RhdHVzIHx8IFtdO1xyXG4gIHJldHVybiBzZWxlY3RlZC5pbmNsdWRlcyhzdGF0dXMpO1xyXG59XHJcblxyXG5vblRpY2tldFN0YXR1c0NoYW5nZShldmVudDogRXZlbnQsIHN0YXR1czogc3RyaW5nKSB7XHJcbiAgY29uc3QgY2hlY2tib3ggPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICBjb25zdCBzZWxlY3RlZDogc3RyaW5nW10gPSB0aGlzLmZpbHRlckZvcm0udmFsdWUudGlja2V0U3RhdHVzIHx8IFtdO1xyXG4gIGxldCBuZXh0OiBzdHJpbmdbXTtcclxuXHJcbiAgaWYgKGNoZWNrYm94LmNoZWNrZWQpIHtcclxuICAgIG5leHQgPSBzZWxlY3RlZC5pbmNsdWRlcyhzdGF0dXMpID8gc2VsZWN0ZWQgOiBbLi4uc2VsZWN0ZWQsIHN0YXR1c107XHJcbiAgfSBlbHNlIHtcclxuICAgIG5leHQgPSBzZWxlY3RlZC5maWx0ZXIocyA9PiBzICE9PSBzdGF0dXMpO1xyXG4gIH1cclxuXHJcbiAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoeyB0aWNrZXRTdGF0dXM6IG5leHQgfSk7XHJcbn1cclxuXHJcbnRvZ2dsZVRpY2tldFN0YXR1c0Ryb3Bkb3duKGV2ZW50PzogTW91c2VFdmVudCkge1xyXG4gIGlmIChldmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IC8vIGF2b2lkIGRvY3VtZW50IGNsaWNrIGNsb3NpbmcgaXRcclxuICB9XHJcbiAgdGhpcy5zdGF0dXNEcm9wZG93bk9wZW4gPSAhdGhpcy5zdGF0dXNEcm9wZG93bk9wZW47XHJcbn1cclxuXHJcbi8vIEFyZSBhbGwgc3RhdHVzZXMgY3VycmVudGx5IHNlbGVjdGVkP1xyXG5hcmVBbGxUaWNrZXRTdGF0dXNlc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gIGNvbnN0IHNlbGVjdGVkOiBzdHJpbmdbXSA9IHRoaXMuZmlsdGVyRm9ybS52YWx1ZS50aWNrZXRTdGF0dXMgfHwgW107XHJcbiAgcmV0dXJuIHNlbGVjdGVkLmxlbmd0aCA+IDAgJiYgc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLnRpY2tldFN0YXR1c09wdGlvbnMubGVuZ3RoO1xyXG59XHJcblxyXG4vLyBIYW5kbGUgXCJTZWxlY3QgQWxsXCIgY2hlY2tib3ggY2hhbmdlXHJcbm9uVGlja2V0U3RhdHVzU2VsZWN0QWxsQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xyXG4gIGNvbnN0IGNoZWNrYm94ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gIGlmIChjaGVja2JveC5jaGVja2VkKSB7XHJcbiAgICAvLyBTZWxlY3QgZXZlcnkgc3RhdHVzXHJcbiAgICB0aGlzLmZpbHRlckZvcm0ucGF0Y2hWYWx1ZSh7IHRpY2tldFN0YXR1czogWy4uLnRoaXMudGlja2V0U3RhdHVzT3B0aW9uc10gfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIC8vIENsZWFyIGFsbFxyXG4gICAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoeyB0aWNrZXRTdGF0dXM6IFtdIH0pO1xyXG4gIH1cclxufVxyXG5nZXQgc2VsZWN0ZWRUaWNrZXRTdGF0dXNlcygpOiBzdHJpbmdbXSB7XHJcbiAgcmV0dXJuIHRoaXMuZmlsdGVyRm9ybS52YWx1ZS50aWNrZXRTdGF0dXMgfHwgW107XHJcbn1cclxuXHJcbiAgaXNCZXR3ZWVuKGNvbnRyb2xOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlckZvcm0uZ2V0KGNvbnRyb2xOYW1lKT8udmFsdWUgPT09ICdiZXR3ZWVuJztcclxuICB9XHJcbm5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICBpZiAoY2hhbmdlc1snY2xpZW50J10gfHwgY2hhbmdlc1sncGVybWlzc2lvblR5cGUnXSB8fCBjaGFuZ2VzWyd1c2VyVHlwZSddKSB7XHJcbiAgICB0aGlzLmxvYWRSZXZpZXdlckxpc3QoKTtcclxuICB9XHJcbiAgdGhpcy5vblJlc2V0KCk7XHJcbn1cclxuLy8gZnVsbCB1c2VyIGxpc3QgeW91IGFscmVhZHkgaGF2ZVxyXG51c2VyTGlzdDogYW55W10gPSBbXTtcclxuXHJcblxyXG5yZXZpZXdlclNlYXJjaFRlcm06IHN0cmluZyA9ICcnO1xyXG5cclxuLy8g4pyFIHNpbXBsZSBjb21wdXRlZCBsaXN0IGZvciAqbmdGb3JcclxuZ2V0IGZpbHRlcmVkUmV2aWV3ZXJMaXN0KCk6IHsgZW1haWw6IHN0cmluZzsgbmFtZT86IHN0cmluZyB9W10ge1xyXG4gIGNvbnN0IHRlcm0gPSAodGhpcy5yZXZpZXdlclNlYXJjaFRlcm0gfHwgJycpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICBpZiAoIXRlcm0pIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXJMaXN0O1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRoaXMudXNlckxpc3QuZmlsdGVyKHUgPT4ge1xyXG4gICAgY29uc3QgZW1haWwgPSAodS5lbWFpbCB8fCAnJykudG9Mb3dlckNhc2UoKTtcclxuICAgIGNvbnN0IG5hbWUgPSAodS5uYW1lIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgaWYodGhpcy5yZXZpZXdlclNlYXJjaFRlcm0ubGVuZ3RoKXtcclxuICAgIHJldHVybiBlbWFpbC5pbmNsdWRlcyh0ZXJtKSB8fCBuYW1lLmluY2x1ZGVzKHRlcm0pO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcbmFwcHJvdmVyU2VhcmNoVGVybTphbnk7XHJcbmdldCBmaWx0ZXJlZEFwcHJvdmVyTGlzdCgpOiBhbnlbXSB7XHJcbiAgY29uc3QgdGVybSA9ICh0aGlzLmFwcHJvdmVyU2VhcmNoVGVybSB8fCAnJykudHJpbSgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgaWYgKCF0ZXJtKSB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyTGlzdDtcclxuICB9XHJcbiAgcmV0dXJuIHRoaXMudXNlckxpc3QuZmlsdGVyKCh1OiBhbnkpID0+IHtcclxuICAgIGNvbnN0IGVtYWlsID0gKHUuZW1haWwgfHwgJycpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBjb25zdCBuYW1lID0gKHUubmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcclxuICAgIGlmKHRoaXMuYXBwcm92ZXJTZWFyY2hUZXJtLmxlbmd0aCl7XHJcbiAgICAgIHJldHVybiBlbWFpbC5pbmNsdWRlcyh0ZXJtKSB8fCBuYW1lLmluY2x1ZGVzKHRlcm0pXHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbm9uQXBwcm92ZXJTZWFyY2godmFsdWU6IHN0cmluZykge1xyXG4gIHRoaXMuYXBwcm92ZXJTZWFyY2hUZXJtID0gdmFsdWU7XHJcbn1cclxucHJpdmF0ZSBsb2FkUmV2aWV3ZXJMaXN0KCk6IHZvaWQge1xyXG4gIGlmICghdGhpcy5jbGllbnQpIHtcclxuICAgIHRoaXMudXNlckxpc3QgPSBbXTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGxldCB0eXBlOiBzdHJpbmc7XHJcblxyXG4gIGlmICh0aGlzLnVzZXJUeXBlID09PSAndGFuZ28nKSB7XHJcbiAgICB0eXBlID0gJ3RhbmdvJzsgICAgLy8gb3IgJ2FsbCdcclxuICB9IGVsc2UgaWYgKHRoaXMucGVybWlzc2lvblR5cGUgPT09ICdyZXZpZXcnKSB7XHJcbiAgICB0eXBlID0gJ3Jldmlldyc7XHJcbiAgfSBlbHNlIGlmICh0aGlzLnBlcm1pc3Npb25UeXBlID09PSAnYXBwcm92ZScpIHtcclxuICAgIHR5cGUgPSAnYXBwcm92ZSc7XHJcbiAgfSBlbHNlIHtcclxuICAgIHRoaXMudXNlckxpc3QgPSBbXTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHRoaXMuc2VydmljZS5nZXRSZXZpZXdlckFwaSh0aGlzLmNsaWVudCwgdHlwZSwnJykuc3Vic2NyaWJlKHtcclxuICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICB0aGlzLnVzZXJMaXN0ID0gcmVzLmRhdGE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy51c2VyTGlzdCA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgdGhpcy51c2VyTGlzdCA9IFtdO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG4vLyBvcGVuIGZsYWdzXHJcbnJldmlld2VyRHJvcGRvd25PcGVuID0gZmFsc2U7XHJcbmFwcHJvdmVyRHJvcGRvd25PcGVuID0gZmFsc2U7XHJcblxyXG4vLyBjb252ZW5pZW5jZSBnZXR0ZXJzXHJcbmdldCBzZWxlY3RlZFJldmlld2VkQnkoKTogc3RyaW5nW10ge1xyXG4gIHJldHVybiB0aGlzLmZpbHRlckZvcm0udmFsdWUucmV2aWV3ZWRCeSB8fCBbXTtcclxufVxyXG5cclxuZ2V0IHNlbGVjdGVkQXBwcm92ZWRCeSgpOiBzdHJpbmdbXSB7XHJcbiAgcmV0dXJuIHRoaXMuZmlsdGVyRm9ybS52YWx1ZS5hcHByb3ZlZEJ5IHx8IFtdO1xyXG59XHJcblxyXG4vLyAtLS0gUmV2aWV3ZWQgQnkgaGVscGVycyAtLS1cclxuXHJcbnRvZ2dsZVJldmlld2VyRHJvcGRvd24oZXZlbnQ/OiBNb3VzZUV2ZW50KSB7XHJcbiAgaWYgKGV2ZW50KSBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB0aGlzLnJldmlld2VyRHJvcGRvd25PcGVuID0gIXRoaXMucmV2aWV3ZXJEcm9wZG93bk9wZW47XHJcbn1cclxuXHJcbmlzUmV2aWV3ZXJTZWxlY3RlZChlbWFpbDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRSZXZpZXdlZEJ5LmluY2x1ZGVzKGVtYWlsKTtcclxufVxyXG5cclxub25SZXZpZXdlckNoYW5nZShldmVudDogRXZlbnQsIGVtYWlsOiBzdHJpbmcpIHtcclxuICBjb25zdCBjaGVja2JveCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gIGNvbnN0IHNlbGVjdGVkID0gWy4uLnRoaXMuc2VsZWN0ZWRSZXZpZXdlZEJ5XTtcclxuXHJcbiAgaWYgKGNoZWNrYm94LmNoZWNrZWQpIHtcclxuICAgIGlmICghc2VsZWN0ZWQuaW5jbHVkZXMoZW1haWwpKSBzZWxlY3RlZC5wdXNoKGVtYWlsKTtcclxuICB9IGVsc2Uge1xyXG4gICAgY29uc3QgaSA9IHNlbGVjdGVkLmluZGV4T2YoZW1haWwpO1xyXG4gICAgaWYgKGkgPj0gMCkgc2VsZWN0ZWQuc3BsaWNlKGksIDEpO1xyXG4gIH1cclxuXHJcbiAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoeyByZXZpZXdlZEJ5OiBzZWxlY3RlZCB9KTtcclxufVxyXG5cclxuYXJlQWxsUmV2aWV3ZXJzU2VsZWN0ZWQoKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIChcclxuICAgIHRoaXMudXNlckxpc3QubGVuZ3RoID4gMCAmJlxyXG4gICAgdGhpcy5zZWxlY3RlZFJldmlld2VkQnkubGVuZ3RoID09PSB0aGlzLnVzZXJMaXN0Lmxlbmd0aFxyXG4gICk7XHJcbn1cclxuXHJcbm9uUmV2aWV3ZXJTZWxlY3RBbGwoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgY29uc3QgY2hlY2tib3ggPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuXHJcbiAgaWYgKGNoZWNrYm94LmNoZWNrZWQpIHtcclxuICAgIHRoaXMuZmlsdGVyRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgcmV2aWV3ZWRCeTogdGhpcy51c2VyTGlzdC5tYXAoKHU6YW55KSA9PiB1LmVtYWlsKSxcclxuICAgIH0pO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0aGlzLmZpbHRlckZvcm0ucGF0Y2hWYWx1ZSh7IHJldmlld2VkQnk6IFtdIH0pO1xyXG4gIH1cclxufVxyXG5cclxuLy8gLS0tIEFwcHJvdmVkIEJ5IGhlbHBlcnMgLS0tXHJcblxyXG50b2dnbGVBcHByb3ZlckRyb3Bkb3duKGV2ZW50PzogTW91c2VFdmVudCkge1xyXG4gIGlmIChldmVudCkgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgdGhpcy5hcHByb3ZlckRyb3Bkb3duT3BlbiA9ICF0aGlzLmFwcHJvdmVyRHJvcGRvd25PcGVuO1xyXG59XHJcblxyXG5pc0FwcHJvdmVyU2VsZWN0ZWQoZW1haWw6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB0aGlzLnNlbGVjdGVkQXBwcm92ZWRCeS5pbmNsdWRlcyhlbWFpbCk7XHJcbn1cclxuXHJcbm9uQXBwcm92ZXJDaGFuZ2UoZXZlbnQ6IEV2ZW50LCBlbWFpbDogc3RyaW5nKSB7XHJcbiAgY29uc3QgY2hlY2tib3ggPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICBjb25zdCBzZWxlY3RlZCA9IFsuLi50aGlzLnNlbGVjdGVkQXBwcm92ZWRCeV07XHJcblxyXG4gIGlmIChjaGVja2JveC5jaGVja2VkKSB7XHJcbiAgICBpZiAoIXNlbGVjdGVkLmluY2x1ZGVzKGVtYWlsKSkgc2VsZWN0ZWQucHVzaChlbWFpbCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnN0IGkgPSBzZWxlY3RlZC5pbmRleE9mKGVtYWlsKTtcclxuICAgIGlmIChpID49IDApIHNlbGVjdGVkLnNwbGljZShpLCAxKTtcclxuICB9XHJcblxyXG4gIHRoaXMuZmlsdGVyRm9ybS5wYXRjaFZhbHVlKHsgYXBwcm92ZWRCeTogc2VsZWN0ZWQgfSk7XHJcbn1cclxuXHJcbmFyZUFsbEFwcHJvdmVyc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAoXHJcbiAgICB0aGlzLnVzZXJMaXN0Lmxlbmd0aCA+IDAgJiZcclxuICAgIHRoaXMuc2VsZWN0ZWRBcHByb3ZlZEJ5Lmxlbmd0aCA9PT0gdGhpcy51c2VyTGlzdC5sZW5ndGhcclxuICApO1xyXG59XHJcblxyXG5vbkFwcHJvdmVyU2VsZWN0QWxsKGV2ZW50OiBFdmVudCkge1xyXG4gIGNvbnN0IGNoZWNrYm94ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gIGlmIChjaGVja2JveC5jaGVja2VkKSB7XHJcbiAgICB0aGlzLmZpbHRlckZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgIGFwcHJvdmVkQnk6IHRoaXMudXNlckxpc3QubWFwKCh1OmFueSkgPT4gdS5lbWFpbCksXHJcbiAgICB9KTtcclxuICB9IGVsc2Uge1xyXG4gICAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoeyBhcHByb3ZlZEJ5OiBbXSB9KTtcclxuICB9XHJcbn1cclxuXHJcbm9uUmVzZXQoKTogdm9pZCB7XHJcbiAgdGhpcy5maWx0ZXJGb3JtLnJlc2V0KHtcclxuICAgIHN0YXR1czogW10sXHJcbiAgICByZXZpZXdlckNvbmRpdGlvbjogbnVsbCxcclxuICAgIHJldmlld2VyRnJvbTogbnVsbCxcclxuICAgIHJldmlld2VyVG86IG51bGwsXHJcblxyXG4gICAgYXBwcm92ZXJDb25kaXRpb246IG51bGwsXHJcbiAgICBhcHByb3ZlckZyb206IG51bGwsXHJcbiAgICBhcHByb3ZlclRvOiBudWxsLFxyXG5cclxuICAgIHRhbmdvQ29uZGl0aW9uOiBudWxsLFxyXG4gICAgdGFuZ29Gcm9tOiBudWxsLFxyXG4gICAgdGFuZ29UbzogbnVsbCxcclxuXHJcbiAgICByZXZpZXdlZEJ5OiBbXSxcclxuICAgIGFwcHJvdmVkQnk6IFtdXHJcbiAgfSk7XHJcblxyXG4gIC8vIDLvuI/ig6MgUmVzZXQgc2VhcmNoIHRlcm1zXHJcbiAgdGhpcy5yZXZpZXdlclNlYXJjaFRlcm0gPSAnJztcclxuICB0aGlzLmFwcHJvdmVyU2VhcmNoVGVybSA9ICcnO1xyXG5cclxuICAvLyAz77iP4oOjIEJ1aWxkIGVtcHR5IHBheWxvYWQgdG8gc2VuZCBiYWNrXHJcbiAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgIGZpbHRlckJ5U3RhdHVzOiBbXSxcclxuICAgIGZpbHRlckJ5UmV2aWV3ZXI6IG51bGwsXHJcbiAgICBmaWx0ZXJCeUFwcHJvdmVyOiBudWxsLFxyXG4gICAgZmlsdGVyQnlUYW5nbzogbnVsbCxcclxuICAgIGZpbHRlckJ5UmV2aWV3ZWRCeTogW10sXHJcbiAgICBmaWxldGVyQnlBcHByb3ZlZEJ5OiBbXSxcclxuICAgICAgICAuLi4odGhpcy50YWIgPT09ICdpbnRlcm5hbCcgJiYge1xyXG4gICAgZmlsdGVyQnlUaWNrZXRUeXBlOiBudWxsLFxyXG4gICAgZmlsdGVyQnlUYW5nb1N0YXR1czogW11cclxuICB9KVxyXG4gIH07XHJcblxyXG4gIC8vIDTvuI/ig6MgRW1pdCB0aGUgbm93LWVtcHR5IGZpbHRlciByZXN1bHRcclxuICB0aGlzLmFwcGx5LmVtaXQocGF5bG9hZCk7XHJcblxyXG4gIC8vIDXvuI/ig6MgQ2xvc2UgdGhlIGZpbHRlciBwYW5lbFxyXG4gIHRoaXMuY2xvc2UoKTtcclxufVxyXG5cclxucHJpdmF0ZSBtYXBBY2N1cmFjeShcclxuICBjb25kaXRpb246IENvbmRpdGlvbiB8IG51bGwsXHJcbiAgZnJvbTogbnVtYmVyIHwgbnVsbCxcclxuICB0bzogbnVtYmVyIHwgbnVsbFxyXG4pOiBzdHJpbmcgfCBudWxsIHtcclxuXHJcbiAgLy8gbm90aGluZyBzZWxlY3RlZFxyXG4gIGlmICghY29uZGl0aW9uIHx8IGZyb20gPT0gbnVsbCkgcmV0dXJuIG51bGw7XHJcblxyXG4gIC8vIFwiYmV0d2VlblwiIOKGkiBcIjkwIHRvIDEwMFwiXHJcbiAgaWYgKGNvbmRpdGlvbiA9PT0gJ2JldHdlZW4nKSB7XHJcbiAgICBpZiAodG8gPT0gbnVsbCkgcmV0dXJuIG51bGw7XHJcbiAgICByZXR1cm4gYCR7ZnJvbX0gdG8gJHt0b31gO1xyXG4gIH1cclxuXHJcbiAgLy8gb3RoZXIgY29uZGl0aW9ucyAoZ3QsIGx0LCBndGUsIGx0ZSlcclxuICBjb25zdCBvcE1hcDogUmVjb3JkPENvbmRpdGlvbiwgc3RyaW5nPiA9IHtcclxuICAgIGd0OiAnPicsXHJcbiAgICBsdDogJzwnLFxyXG4gICAgZ3RlOiAnPj0nLFxyXG4gICAgbHRlOiAnPD0nLFxyXG4gICAgYmV0d2VlbjogJycsIC8vIGFscmVhZHkgaGFuZGxlZCBhYm92ZVxyXG4gIH07XHJcblxyXG4gIHJldHVybiBgJHtvcE1hcFtjb25kaXRpb25dfSR7ZnJvbX1gOyAgLy8gZS5nLiBcIj49IDkwXCJcclxufVxyXG5vblRpY2tldFR5cGVDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgY29uc3QgdmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxTZWxlY3RFbGVtZW50KS52YWx1ZTtcclxuICBjb25zb2xlLmxvZygnVGlja2V0IHR5cGUgY2hhbmdlZDonLCB2YWx1ZSk7XHJcbi8vIHRoaXMudGlja2V0VHlwZSA9IHZhbHVlXHJcbiAgLy8gZG8gd2hhdCB5b3UgbmVlZCBoZXJlXHJcbiAgLy8gZXhhbXBsZTpcclxuICAvLyB0aGlzLnRhYiA9IHZhbHVlO1xyXG4gIC8vIHRoaXMucmVsb2FkRGF0YSgpO1xyXG59XHJcblxyXG4gIG9uQXBwbHkoKTogdm9pZCB7XHJcblxyXG4gICBjb25zdCByYXcgPSB0aGlzLmZpbHRlckZvcm0udmFsdWU7XHJcblxyXG4gIGNvbnN0IHJldmlld2VyU3RyID0gdGhpcy5tYXBBY2N1cmFjeShyYXcucmV2aWV3ZXJDb25kaXRpb24sIHJhdy5yZXZpZXdlckZyb20sIHJhdy5yZXZpZXdlclRvKTtcclxuICBjb25zdCBhcHByb3ZlclN0ciA9IHRoaXMubWFwQWNjdXJhY3kocmF3LmFwcHJvdmVyQ29uZGl0aW9uLCByYXcuYXBwcm92ZXJGcm9tLCByYXcuYXBwcm92ZXJUbyk7XHJcbiAgY29uc3QgdGFuZ29TdHIgICAgPSB0aGlzLm1hcEFjY3VyYWN5KHJhdy50YW5nb0NvbmRpdGlvbiwgcmF3LnRhbmdvRnJvbSwgcmF3LnRhbmdvVG8pO1xyXG4gIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICBmaWx0ZXJCeVN0YXR1czogcmF3LnN0YXR1cyB8fCBbXSxcclxuICAgIGZpbHRlckJ5UmV2aWV3ZXI6IHJldmlld2VyU3RyLFxyXG4gICAgZmlsdGVyQnlBcHByb3ZlcjogYXBwcm92ZXJTdHIsXHJcbiAgICBmaWx0ZXJCeVRhbmdvOiB0YW5nb1N0cixcclxuICAgIGZpbHRlckJ5UmV2aWV3ZWRCeTogcmF3LnJldmlld2VkQnkgfHwgW10sICAgICAgICBcclxuICAgIGZpbGV0ZXJCeUFwcHJvdmVkQnk6IHJhdy5hcHByb3ZlZEJ5IHx8IFtdLFxyXG4gICAgLi4uKHRoaXMudGFiID09PSAnaW50ZXJuYWwnICYmIHtcclxuICAgIGZpbHRlckJ5VGlja2V0VHlwZTogcmF3LnRpY2tldFR5cGUsXHJcbiAgICBmaWx0ZXJCeVRhbmdvU3RhdHVzOiByYXcudGFuZ29TdGF0dXMgfHwgW11cclxuICB9KSAgICAgICAgXHJcbiAgfTtcclxuICB0aGlzLmFwcGx5LmVtaXQocGF5bG9hZCk7XHJcbiAgdGhpcy5jbG9zZSgpO1xyXG4gICAgdGhpcy5zaG93UGFuZWwgPSBmYWxzZTtcclxuICB9XHJcblxyXG5kcm9wZG93blN0YXRlID0ge1xyXG4gIHN0YXR1czogZmFsc2UsXHJcbiAgcmV2aWV3ZXI6IGZhbHNlLFxyXG4gIGFwcHJvdmVyOiBmYWxzZSxcclxuICB0aWNrZXRTdGF0dXMgOmZhbHNlXHJcbn07XHJcbi8vIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJylcclxuY2xvc2VBbGwoKSB7XHJcbiAgdGhpcy5kcm9wZG93blN0YXRlLnN0YXR1cyA9IGZhbHNlO1xyXG4gIHRoaXMuZHJvcGRvd25TdGF0ZS5yZXZpZXdlciA9IGZhbHNlO1xyXG4gIHRoaXMuZHJvcGRvd25TdGF0ZS5hcHByb3ZlciA9IGZhbHNlO1xyXG4gIHRoaXMuZHJvcGRvd25TdGF0ZS50aWNrZXRTdGF0dXMgPWZhbHNlO1xyXG59XHJcblxyXG50b2dnbGVEcm9wZG93bih0eXBlOiAnc3RhdHVzJyB8ICdyZXZpZXdlcicgfCAnYXBwcm92ZXInIHwgJ3RpY2tldFN0YXR1cycsIGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gIC8vIENsb3NlIGFsbCBiZWZvcmUgb3BlbmluZyBhIG5ldyBvbmVcclxuICB0aGlzLmNsb3NlQWxsKCk7XHJcblxyXG4gIC8vIFRvZ2dsZSBvbmx5IHRoZSBzZWxlY3RlZCBvbmVcclxuICB0aGlzLmRyb3Bkb3duU3RhdGVbdHlwZV0gPSAhdGhpcy5kcm9wZG93blN0YXRlW3R5cGVdO1xyXG59XHJcblxyXG5pc0Ryb3Bkb3duT3Blbih0eXBlOiAnc3RhdHVzJyB8ICdyZXZpZXdlcicgfCAnYXBwcm92ZXInIHwgJ3RpY2tldFN0YXR1cycpIHtcclxuICByZXR1cm4gdGhpcy5kcm9wZG93blN0YXRlW3R5cGVdO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG59XHJcbiIsIjwhLS0gdGlja2V0LWZpbHRlci1wYW5lbC5jb21wb25lbnQuaHRtbCAtLT5cclxuPGRpdiBjbGFzcz1cImZpbHRlci13cmFwcGVyXCIgKm5nSWY9XCJpc09wZW5cIj5cclxuICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItaGVhZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgbWItM1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPkZpbHRlciBPcHRpb25zPC9kaXY+XHJcbiAgICAgIDwhLS0gPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4tY2xvc2VcIiAoY2xpY2spPVwiY2xvc2UoKVwiPuKclTwvYnV0dG9uPiAtLT5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZmlsdGVyRm9ybVwiPlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cInRhYiA9PT0naW50ZXJuYWwnXCIgY2xhc3M9XCJtYi0zIHBvc2l0aW9uLXJlbGF0aXZlXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG5cclxuIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5UaWNrZXQgVHlwZTwvbGFiZWw+XHJcbiA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3Qgdy0xMDBcIiBmb3JtQ29udHJvbE5hbWU9XCJ0eXBlXCIgIChjaGFuZ2UpPVwib25UaWNrZXRUeXBlQ2hhbmdlKCRldmVudClcIj5cclxuICAgPG9wdGlvbiBkaXNhYmxlZCBbbmdWYWx1ZV09XCJudWxsXCI+U2VsZWN0PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzdG9yZVwiPlN0b3JlPC9vcHRpb24+XHJcbiAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiaW50ZXJuYWxcIj5JbnRlcm5hbDwvb3B0aW9uPlxyXG4gICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPCEtLSBTdGF0dXMgLS0+XHJcbjxkaXYgY2xhc3M9XCJtYi0zIHBvc2l0aW9uLXJlbGF0aXZlXCIgPlxyXG4gIDxsYWJlbCAqbmdJZj1cInRhYiAhPT0naW50ZXJuYWwnXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+U3RhdHVzPC9sYWJlbD5cclxuIDxsYWJlbCAqbmdJZj1cInRhYiA9PT0naW50ZXJuYWwnXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+VGFuZ28gU3RhdHVzPC9sYWJlbD5cclxuICA8IS0tIEhlYWRlciAvIHRyaWdnZXIgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJzdGF0dXMtc2VsZWN0IGJvcmRlciByb3VuZGVkIHB4LTMgcHktMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bignc3RhdHVzJywgJGV2ZW50KVwiXHJcbiAgPlxyXG4gICAgPHNwYW4gKm5nSWY9XCIhc2VsZWN0ZWRTdGF0dXNlcy5sZW5ndGhcIj5TZWxlY3Q8L3NwYW4+XHJcblxyXG4gICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZFN0YXR1c2VzLmxlbmd0aCA9PT0gMVwiPlxyXG4gICAgICB7eyBzZWxlY3RlZFN0YXR1c2VzWzBdIH19XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZFN0YXR1c2VzLmxlbmd0aCA+IDFcIiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPHNwYW4+e3sgc2VsZWN0ZWRTdGF0dXNlc1swXSB9fTwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBtcy0yXCI+XHJcbiAgICAgICAgK3t7IHNlbGVjdGVkU3RhdHVzZXMubGVuZ3RoIC0gMSB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIERST1BET1dOIFBBTkVMIChPVkVSTEFZKSAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cInN0YXR1cy1kcm9wZG93biBwb3NpdGlvbi1hYnNvbHV0ZSB3LTEwMCBtdC0xIGJvcmRlciByb3VuZGVkIHAtMSBiZy13aGl0ZVwiXHJcbiAgICBzdHlsZT1cInotaW5kZXg6IDEwMDA7IG1heC1oZWlnaHQ6IDIyMHB4OyBvdmVyZmxvdy15OiBhdXRvO1wiXHJcbiAgICpuZ0lmPVwiaXNEcm9wZG93bk9wZW4oJ3N0YXR1cycpXCJcclxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gID5cclxuICAgIDwhLS0gU2VsZWN0IEFsbCAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIHB4LTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IFwiXHJcbiAgICAgICAgaWQ9XCJzdGF0dXMtc2VsZWN0LWFsbFwiXHJcbiAgICAgICAgW2NoZWNrZWRdPVwiYXJlQWxsU3RhdHVzZXNTZWxlY3RlZCgpXCJcclxuICAgICAgICAoY2hhbmdlKT1cIm9uU3RhdHVzU2VsZWN0QWxsQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAvPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRleHQtZGFyayBtcy0yXCIgZm9yPVwic3RhdHVzLXNlbGVjdC1hbGxcIj5cclxuICAgICAgICBTZWxlY3QgQWxsXHJcbiAgICAgIDwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPCEtLSBPcHRpb25zIC0tPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImZvcm0tY2hlY2sgcHgtMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTFcIlxyXG4gICAgICAqbmdGb3I9XCJsZXQgcyBvZiBzdGF0dXNPcHRpb25zXCJcclxuICAgID5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgXCJcclxuICAgICAgICBbaWRdPVwiJ3N0YXR1cy0nICsgc1wiXHJcbiAgICAgICAgW2NoZWNrZWRdPVwiaXNTdGF0dXNTZWxlY3RlZChzKVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJvblN0YXR1c0NoYW5nZSgkZXZlbnQsIHMpXCJcclxuICAgICAgLz5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0ZXh0LWRhcmsgbXMtMlwiIFtmb3JdPVwiJ3N0YXR1cy0nICsgc1wiPlxyXG4gICAgICAgIHt7IHMgfX1cclxuICAgICAgPC9sYWJlbD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcblxyXG48ZGl2ICpuZ0lmPVwidGFiID09PSdpbnRlcm5hbCdcIiAgY2xhc3M9XCJtYi0zIHBvc2l0aW9uLXJlbGF0aXZlXCIgPlxyXG4gIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5UaWNrZXQgU3RhdHVzPC9sYWJlbD5cclxuXHJcbiAgPCEtLSBIZWFkZXIgLyB0cmlnZ2VyIC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwic3RhdHVzLXNlbGVjdCBib3JkZXIgcm91bmRlZCBweC0zIHB5LTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oJ3RpY2tldFN0YXR1cycsICRldmVudClcIlxyXG4gID5cclxuICAgIDxzcGFuICpuZ0lmPVwiIXNlbGVjdGVkVGlja2V0U3RhdHVzZXMubGVuZ3RoXCI+U2VsZWN0PC9zcGFuPlxyXG5cclxuICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRUaWNrZXRTdGF0dXNlcy5sZW5ndGggPT09IDFcIj5cclxuICAgICAge3sgc2VsZWN0ZWRUaWNrZXRTdGF0dXNlc1swXSB9fVxyXG4gICAgPC9zcGFuPlxyXG5cclxuICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRUaWNrZXRTdGF0dXNlcy5sZW5ndGggPiAxXCIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxzcGFuPnt7IHNlbGVjdGVkVGlja2V0U3RhdHVzZXNbMF0gfX08L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgbXMtMlwiPlxyXG4gICAgICAgICt7eyBzZWxlY3RlZFRpY2tldFN0YXR1c2VzLmxlbmd0aCAtIDEgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBEUk9QRE9XTiBQQU5FTCAoT1ZFUkxBWSkgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJzdGF0dXMtZHJvcGRvd24gcG9zaXRpb24tYWJzb2x1dGUgdy0xMDAgbXQtMSBib3JkZXIgcm91bmRlZCBwLTEgYmctd2hpdGVcIlxyXG4gICAgc3R5bGU9XCJ6LWluZGV4OiAxMDAwOyBtYXgtaGVpZ2h0OiAyMjBweDsgb3ZlcmZsb3cteTogYXV0bztcIlxyXG4gICAqbmdJZj1cImlzRHJvcGRvd25PcGVuKCd0aWNrZXRTdGF0dXMnKVwiXHJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICA+XHJcbiAgICA8IS0tIFNlbGVjdCBBbGwgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBweC0wIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBcIlxyXG4gICAgICAgIGlkPVwidGlja2V0U3RhdHVzLXNlbGVjdC1hbGxcIlxyXG4gICAgICAgIFtjaGVja2VkXT1cImFyZUFsbFRpY2tldFN0YXR1c2VzU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJvblRpY2tldFN0YXR1c1NlbGVjdEFsbENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgLz5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0ZXh0LWRhcmsgbXMtMlwiIGZvcj1cInRpY2tldFN0YXR1cy1zZWxlY3QtYWxsXCI+XHJcbiAgICAgICAgU2VsZWN0IEFsbFxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDwhLS0gT3B0aW9ucyAtLT5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrIHB4LTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtYi0xXCJcclxuICAgICAgKm5nRm9yPVwibGV0IHMgb2YgdGlja2V0U3RhdHVzT3B0aW9uc1wiXHJcbiAgICA+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IFwiXHJcbiAgICAgICAgW2lkXT1cIid0aWNrZXRTdGF0dXMtJyArIHNcIlxyXG4gICAgICAgIFtjaGVja2VkXT1cImlzVGlja2V0U3RhdHVzU2VsZWN0ZWQocylcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwib25UaWNrZXRTdGF0dXNDaGFuZ2UoJGV2ZW50LCBzKVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdGV4dC1kYXJrIG1zLTJcIiBbZm9yXT1cIid0aWNrZXRTdGF0dXMtJyArIHNcIj5cclxuICAgICAgICB7eyBzIH19XHJcbiAgICAgIDwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgICAgIDwhLS0gUmV2aWV3ZXIgYWNjdXJhY3kgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCIgKm5nSWY9XCJzaG93UmV2aWV3ZXJBY2N1cmFjeVwiIChjbGljayk9XCJjbG9zZUFsbCgpXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlJldmlld2VyIGFjY3VyYWN5ICglKSBieSBjb25kaXRpb248L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTJcIj5cclxuICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCB3LTEwMFwiIGZvcm1Db250cm9sTmFtZT1cInJldmlld2VyQ29uZGl0aW9uXCI+XHJcbiAgICAgICAgICAgIDxvcHRpb24gZGlzYWJsZWQgW25nVmFsdWVdPVwibnVsbFwiPlNlbGVjdDwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjIG9mIGNvbmRpdGlvbk9wdGlvbnNcIiBbbmdWYWx1ZV09XCJjLnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAge3sgYy5sYWJlbCB9fVxyXG4gICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG5cclxuICAgICAgICAgIDwhLS0gb25lIG9yIHR3byBpbnB1dHMgLS0+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNCZXR3ZWVuKCdyZXZpZXdlckNvbmRpdGlvbicpOyBlbHNlIHNpbmdsZVJldmlld2VyXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIG1pbj1cIjFcIlxyXG4gICAgICAgICAgICAgIG1heD1cIjEwMFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJldmlld2VyRnJvbVwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJGcm9tXCIgKGlucHV0KT1cImxpbWl0VmFsdWUoJGV2ZW50LCAncmV2aWV3ZXJGcm9tJylcIiAvPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBtaW49XCIxXCJcclxuICAgICAgICAgICAgICBtYXg9XCIxMDBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZXZpZXdlclRvXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlRvXCIgKGlucHV0KT1cImxpbWl0VmFsdWUoJGV2ZW50LCAncmV2aWV3ZXJUbycpXCIgLz5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNzaW5nbGVSZXZpZXdlcj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgbWluPVwiMVwiXHJcbiAgICAgICAgICAgICAgbWF4PVwiMTAwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmV2aWV3ZXJGcm9tXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjEgdG8gMTAwJVwiIChpbnB1dCk9XCJsaW1pdFZhbHVlKCRldmVudCwgJ3Jldmlld2VyRnJvbScpXCIgLz5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBBcHByb3ZlciBhY2N1cmFjeSAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIiAqbmdJZj1cInNob3dBcHByb3ZlckFjY3VyYWN5XCIgKGNsaWNrKT1cImNsb3NlQWxsKClcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+QXBwcm92ZXIgYWNjdXJhY3kgKCUpIGJ5IGNvbmRpdGlvbjwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxyXG4gICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHctMTAwXCIgZm9ybUNvbnRyb2xOYW1lPVwiYXBwcm92ZXJDb25kaXRpb25cIj5cclxuICAgICAgICAgICAgPG9wdGlvbiBkaXNhYmxlZCBbbmdWYWx1ZV09XCJudWxsXCI+U2VsZWN0PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGMgb2YgY29uZGl0aW9uT3B0aW9uc1wiIFtuZ1ZhbHVlXT1cImMudmFsdWVcIj5cclxuICAgICAgICAgICAgICB7eyBjLmxhYmVsIH19XHJcbiAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgPC9zZWxlY3Q+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQmV0d2VlbignYXBwcm92ZXJDb25kaXRpb24nKTsgZWxzZSBzaW5nbGVBcHByb3ZlclwiPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBtaW49XCIxXCJcclxuICAgICAgICAgICAgICBtYXg9XCIxMDBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhcHByb3ZlckZyb21cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRnJvbVwiIFxyXG4gICAgICAgICAgICAgIChpbnB1dCk9XCJsaW1pdFZhbHVlKCRldmVudCwgJ2FwcHJvdmVyRnJvbScpXCIvPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBtaW49XCIxXCJcclxuICAgICAgICAgICAgICBtYXg9XCIxMDBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhcHByb3ZlclRvXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlRvXCIgKGlucHV0KT1cImxpbWl0VmFsdWUoJGV2ZW50LCAnYXBwcm92ZXJUbycpXCIgLz5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNzaW5nbGVBcHByb3Zlcj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgbWluPVwiMVwiXHJcbiAgICAgICAgICAgICAgbWF4PVwiMTAwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYXBwcm92ZXJGcm9tXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjEgdG8gMTAwJVwiIChpbnB1dCk9XCJsaW1pdFZhbHVlKCRldmVudCwgJ2FwcHJvdmVyRnJvbScpXCIgLz5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBUYW5nbyBhY2N1cmFjeSAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIiAqbmdJZj1cInNob3dUYW5nb0FjY3VyYWN5XCIgKGNsaWNrKT1cImNsb3NlQWxsKClcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+VGFuZ28gYWNjdXJhY3kgKCUpIGJ5IGNvbmRpdGlvbjwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxyXG4gICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHctMTAwXCIgZm9ybUNvbnRyb2xOYW1lPVwidGFuZ29Db25kaXRpb25cIj5cclxuICAgICAgICAgICAgPG9wdGlvbiBkaXNhYmxlZCBbbmdWYWx1ZV09XCJudWxsXCI+U2VsZWN0PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGMgb2YgY29uZGl0aW9uT3B0aW9uc1wiIFtuZ1ZhbHVlXT1cImMudmFsdWVcIj5cclxuICAgICAgICAgICAgICB7eyBjLmxhYmVsIH19XHJcbiAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgPC9zZWxlY3Q+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQmV0d2VlbigndGFuZ29Db25kaXRpb24nKTsgZWxzZSBzaW5nbGVUYW5nb1wiPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBtaW49XCIxXCJcclxuICAgICAgICAgICAgICBtYXg9XCIxMDBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YW5nb0Zyb21cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRnJvbVwiIChpbnB1dCk9XCJsaW1pdFZhbHVlKCRldmVudCwgJ3RhbmdvRnJvbScpXCIgLz5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgbWluPVwiMVwiXHJcbiAgICAgICAgICAgICAgbWF4PVwiMTAwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGFuZ29Ub1wiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJUb1wiIChpbnB1dCk9XCJsaW1pdFZhbHVlKCRldmVudCwgJ3RhbmdvVG8nKVwiIC8+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2luZ2xlVGFuZ28+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIG1pbj1cIjFcIlxyXG4gICAgICAgICAgICAgIG1heD1cIjEwMFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRhbmdvRnJvbVwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIxIHRvIDEwMCVcIiAoaW5wdXQpPVwibGltaXRWYWx1ZSgkZXZlbnQsICd0YW5nb0Zyb20nKVwiIC8+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuPGRpdlxyXG4gIGNsYXNzPVwibWItMyBwb3NpdGlvbi1yZWxhdGl2ZVwiXHJcbiAgKm5nSWY9XCJzaG93UmV2aWV3ZWRCeVwiXHJcbiBcclxuPlxyXG4gIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5SZXZpZXdlZCBieTwvbGFiZWw+XHJcblxyXG4gIDwhLS0gVHJpZ2dlciAvIGRpc3BsYXkgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJib3JkZXIgcm91bmRlZCBweC0zIHB5LTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oJ3Jldmlld2VyJywgJGV2ZW50KVwiXHJcbiAgPlxyXG4gICAgPCEtLSAwIHNlbGVjdGVkIC0tPlxyXG4gICAgPHNwYW4gKm5nSWY9XCIhc2VsZWN0ZWRSZXZpZXdlZEJ5Lmxlbmd0aFwiPlxyXG4gICAgICBTZWxlY3RcclxuICAgIDwvc3Bhbj5cclxuXHJcbiAgICA8IS0tIDEgc2VsZWN0ZWQgLS0+XHJcbiAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkUmV2aWV3ZWRCeS5sZW5ndGggPT09IDFcIj5cclxuICAgICAge3sgc2VsZWN0ZWRSZXZpZXdlZEJ5WzBdIH19XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPCEtLSA+MSBzZWxlY3RlZCAtLT5cclxuICAgIDxzcGFuXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRSZXZpZXdlZEJ5Lmxlbmd0aCA+IDFcIlxyXG4gICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgPlxyXG4gICAgICA8c3Bhbj57eyBzZWxlY3RlZFJldmlld2VkQnlbMF0gfX08L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgbXMtMlwiPlxyXG4gICAgICAgICt7eyBzZWxlY3RlZFJldmlld2VkQnkubGVuZ3RoIC0gMSB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9kaXY+XHJcblxyXG48ZGl2XHJcbiAgKm5nSWY9XCJpc0Ryb3Bkb3duT3BlbigncmV2aWV3ZXInKVwiXHJcbiAgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB3LTEwMCBib3JkZXIgcm91bmRlZCBiZy13aGl0ZSBwLTEgbXQtMVwiXHJcbiAgc3R5bGU9XCJ6LWluZGV4OiAxMDAwOyBtYXgtaGVpZ2h0OiAyMjBweDsgb3ZlcmZsb3cteTogYXV0bztcIlxyXG4gIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4+XHJcblxyXG4gIDwhLS0g8J+UjSBTZWFyY2ggYm94IC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJtYi0yIHB4LTBcIj5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbVwiXHJcbiAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGJ5IGVtYWlsXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJyZXZpZXdlclNlYXJjaFRlcm1cIlxyXG4gICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcclxuICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAvPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFNlbGVjdCBBbGwgLS0+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgcHgtMCBtYi0yIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICBpZD1cInJldmlld2VyLWFsbFwiXHJcbiAgICAgIFtjaGVja2VkXT1cImFyZUFsbFJldmlld2Vyc1NlbGVjdGVkKClcIlxyXG4gICAgICAoY2hhbmdlKT1cIm9uUmV2aWV3ZXJTZWxlY3RBbGwoJGV2ZW50KVwiXHJcbiAgICAvPlxyXG4gICAgPGxhYmVsIGZvcj1cInJldmlld2VyLWFsbFwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0ZXh0LWRhcmsgbXMtMlwiPlxyXG4gICAgICBTZWxlY3QgQWxsXHJcbiAgICA8L2xhYmVsPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIE9wdGlvbnMg4oCTIG5vdyB1c2UgZ2V0dGVyIGZpbHRlcmVkUmV2aWV3ZXJMaXN0IC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZm9ybS1jaGVjayBtYi0xIHB4LTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAqbmdGb3I9XCJsZXQgdSBvZiBmaWx0ZXJlZFJldmlld2VyTGlzdFwiXHJcbiAgPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgIFtpZF09XCIncmV2LScgKyB1LmVtYWlsXCJcclxuICAgICAgW2NoZWNrZWRdPVwiaXNSZXZpZXdlclNlbGVjdGVkKHUuZW1haWwpXCJcclxuICAgICAgKGNoYW5nZSk9XCJvblJldmlld2VyQ2hhbmdlKCRldmVudCwgdS5lbWFpbClcIlxyXG4gICAgLz5cclxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdGV4dC1kYXJrIG1zLTJcIiBbZm9yXT1cIidyZXYtJyArIHUuZW1haWxcIj5cclxuICAgICAge3sgdS5lbWFpbCB9fVxyXG4gICAgPC9sYWJlbD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuPC9kaXY+XHJcblxyXG5cclxuICAgICAgPCEtLSBBcHByb3ZlZCBCeSAtLT5cclxuPGRpdlxyXG4gIGNsYXNzPVwibWItMyBwb3NpdGlvbi1yZWxhdGl2ZVwiXHJcbiAgKm5nSWY9XCJzaG93QXBwcm92ZWRCeVwiXHJcbiAgXHJcbj5cclxuICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+QXBwcm92ZWQgYnk8L2xhYmVsPlxyXG5cclxuICA8IS0tIFRyaWdnZXIgLyBkaXNwbGF5IC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiYm9yZGVyIHJvdW5kZWQgcHgtMyBweS0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKCdhcHByb3ZlcicsICRldmVudClcIlxyXG4gID5cclxuICAgIDwhLS0gMCBzZWxlY3RlZCAtLT5cclxuICAgIDxzcGFuICpuZ0lmPVwiIXNlbGVjdGVkQXBwcm92ZWRCeS5sZW5ndGhcIj5cclxuICAgICAgU2VsZWN0XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPCEtLSAxIHNlbGVjdGVkIC0tPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZEFwcHJvdmVkQnkubGVuZ3RoID09PSAxXCI+XHJcbiAgICAgIHt7IHNlbGVjdGVkQXBwcm92ZWRCeVswXSB9fVxyXG4gICAgPC9zcGFuPlxyXG5cclxuICAgIDwhLS0gPjEgc2VsZWN0ZWQgLS0+XHJcbiAgICA8c3BhblxyXG4gICAgICAqbmdJZj1cInNlbGVjdGVkQXBwcm92ZWRCeS5sZW5ndGggPiAxXCJcclxuICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgID5cclxuICAgICAgPHNwYW4+e3sgc2VsZWN0ZWRBcHByb3ZlZEJ5WzBdIH19PC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIG1zLTJcIj5cclxuICAgICAgICAre3sgc2VsZWN0ZWRBcHByb3ZlZEJ5Lmxlbmd0aCAtIDEgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG5cclxuICA8L2Rpdj5cclxuPCEtLSBEcm9wZG93biBwYW5lbCAtLT5cclxuPGRpdlxyXG4gKm5nSWY9XCJpc0Ryb3Bkb3duT3BlbignYXBwcm92ZXInKVwiXHJcbiAgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSB3LTEwMCBib3JkZXIgcm91bmRlZCBiZy13aGl0ZSBwLTEgbXQtMVwiXHJcbiAgc3R5bGU9XCJ6LWluZGV4OiAxMDAwOyBtYXgtaGVpZ2h0OiAyMjBweDsgb3ZlcmZsb3cteTogYXV0bztcIlxyXG4gIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4+XHJcblxyXG4gIDwhLS0g8J+UjSBTZWFyY2ggYm94IC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJtYi0yIHB4LTBcIj5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbVwiXHJcbiAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIGJ5IGVtYWlsXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJhcHByb3ZlclNlYXJjaFRlcm1cIlxyXG4gIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIlxyXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgIC8+XHJcbiAgICA8IS0tIGVtYWlsLmluY2x1ZGVzKHRlcm0pIHx8IG5hbWUuaW5jbHVkZXModGVybSkgLS0+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gU2VsZWN0IEFsbCAtLT5cclxuICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBweC0wIG1iLTIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgIGlkPVwicmV2aWV3ZXItYWxsXCJcclxuICAgICAgW2NoZWNrZWRdPVwiYXJlQWxsQXBwcm92ZXJzU2VsZWN0ZWQoKVwiXHJcbiAgICAgIChjaGFuZ2UpPVwib25BcHByb3ZlclNlbGVjdEFsbCgkZXZlbnQpXCJcclxuICAgIC8+XHJcbiAgICA8bGFiZWwgZm9yPVwicmV2aWV3ZXItYWxsXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRleHQtZGFyayBtcy0yXCI+XHJcbiAgICAgIFNlbGVjdCBBbGxcclxuICAgIDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gT3B0aW9ucyAodXNlIGZpbHRlcmVkUmV2aWV3ZXJMaXN0IGluc3RlYWQgb2YgdXNlckxpc3QpIC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZm9ybS1jaGVjayBtYi0xIHB4LTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAqbmdGb3I9XCJsZXQgdSBvZiBmaWx0ZXJlZEFwcHJvdmVyTGlzdFwiXHJcbiAgPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgIFtpZF09XCIncmV2LScgKyB1LmVtYWlsXCJcclxuICAgICAgW2NoZWNrZWRdPVwiaXNBcHByb3ZlclNlbGVjdGVkKHUuZW1haWwpXCJcclxuICAgICAgKGNoYW5nZSk9XCJvbkFwcHJvdmVyQ2hhbmdlKCRldmVudCwgdS5lbWFpbClcIlxyXG4gICAgLz5cclxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdGV4dC1kYXJrIG1zLTJcIiBbZm9yXT1cIidyZXYtJyArIHUuZW1haWxcIj5cclxuICAgICAge3sgdS5lbWFpbCB9fVxyXG4gICAgPC9sYWJlbD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4gIDwhLS0gRHJvcGRvd24gcGFuZWwgLS0+XHJcblxyXG48L2Rpdj5cclxuXHJcblxyXG4gICAgICA8IS0tIEZvb3RlciBidXR0b25zIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctMTAwIG10LTRcIj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTUwIG1lLTFcIiAoY2xpY2spPVwib25SZXNldCgpXCI+XHJcbiAgICAgICAgICBSZXNldFxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctNTAgbXMtMVwiIChjbGljayk9XCJvbkFwcGx5KClcIj5cclxuICAgICAgICAgIEFwcGx5XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
521
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LWZpbHRlci1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL2NvbXBvbmVudHMvdGlja2V0LWZpbHRlci1wYW5lbC90aWNrZXQtZmlsdGVyLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy90aWNrZXQtZmlsdGVyLXBhbmVsL3RpY2tldC1maWx0ZXItcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNuSSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQVVwRSxNQUFNLE9BQU8sMEJBQTBCO0lBK0ZqQjtJQUF3QjtJQUF5QjtJQTlGMUQsS0FBSyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDakMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUMsQ0FBRyxnQkFBZ0I7SUFDM0QsY0FBYyxHQUFrQixJQUFJLENBQUM7SUFDdkMsUUFBUSxHQUFrQixJQUFJLENBQUMsQ0FBQyx5QkFBeUI7SUFDekQsTUFBTSxDQUFNO0lBQ1osR0FBRyxDQUFLO0lBRWpCLGVBQWUsQ0FBQyxLQUFpQjtRQUUvQixtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEs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eEIsS0FBSztzQkFBZCxNQUFNO2dCQUNFLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0UsY0FBYztzQkFBdEIsS0FBSztnQkFDQyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBRU4sZUFBZTtzQkFEYixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVGlja2V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpY2tldC5zZXJ2aWNlJztcclxuXHJcbnR5cGUgQ29uZGl0aW9uID0gJ2d0JyB8ICdsdCcgfCAnZ3RlJyB8ICdsdGUnIHwgJ2JldHdlZW4nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGlja2V0LWZpbHRlci1wYW5lbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RpY2tldC1maWx0ZXItcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi90aWNrZXQtZmlsdGVyLXBhbmVsLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGlja2V0RmlsdGVyUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gICBAT3V0cHV0KCkgYXBwbHkgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgcGFuZWxDbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7ICAgLy8g4pyFIG5vdCBgY2xvc2VgXHJcbiAgQElucHV0KCkgcGVybWlzc2lvblR5cGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG5ASW5wdXQoKSB1c2VyVHlwZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7IC8vIGUuZy4gJ3RhbmdvJyBvciBvdGhlcnNcclxuQElucHV0KCkgY2xpZW50IDphbnk7XHJcbkBJbnB1dCgpIHRhYjphbnk7XHJcbiBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbm9uRG9jdW1lbnRDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG5cclxuICAvLyAx77iP4oOjIEFsd2F5cyBjbG9zZSBkcm9wZG93bnMgZmlyc3RcclxuICB0aGlzLmRyb3Bkb3duU3RhdGUuc3RhdHVzID0gZmFsc2U7XHJcbiAgdGhpcy5kcm9wZG93blN0YXRlLnJldmlld2VyID0gZmFsc2U7XHJcbiAgdGhpcy5kcm9wZG93blN0YXRlLmFwcHJvdmVyID0gZmFsc2U7XHJcbiAgIHRoaXMuZHJvcGRvd25TdGF0ZS50aWNrZXRTdGF0dXMgPWZhbHNlO1xyXG5cclxuICAvLyAy77iP4oOjIElmIGZpbHRlciBpcyBub3Qgb3BlbiDihpIgbm90aGluZyB0byBjbG9zZVxyXG4gIGlmICghdGhpcy5pc09wZW4pIHJldHVybjtcclxuXHJcbiAgLy8gM++4j+KDoyBDaGVjayBpZiBjbGlja2VkIGluc2lkZSBmaWx0ZXIgY2FyZFxyXG4gIGNvbnN0IGNsaWNrZWRJbnNpZGUgPSB0aGlzLmVSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpO1xyXG5cclxuICAvLyA077iP4oOjIElmIGNsaWNrZWQgT1VUU0lERSDihpIgY2xvc2UgZW50aXJlIGZpbHRlciBwYW5lbFxyXG4gIGlmICghY2xpY2tlZEluc2lkZSkge1xyXG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcclxuICAgIHRoaXMucGFuZWxDbG9zZWQuZW1pdCgpO1xyXG4gICB0aGlzLmZpbHRlckZvcm0ucmVzZXQoe1xyXG4gICAgIHN0YXR1czogW10sXHJcbiAgICAgdHlwZTpudWxsLFxyXG4gICAgdGlja2V0U3RhdHVzIDpbXSxcclxuICAgIHJldmlld2VyQ29uZGl0aW9uOiBudWxsLFxyXG4gICAgcmV2aWV3ZXJGcm9tOiBudWxsLFxyXG4gICAgcmV2aWV3ZXJUbzogbnVsbCxcclxuXHJcbiAgICBhcHByb3ZlckNvbmRpdGlvbjogbnVsbCxcclxuICAgIGFwcHJvdmVyRnJvbTogbnVsbCxcclxuICAgIGFwcHJvdmVyVG86IG51bGwsXHJcblxyXG4gICAgdGFuZ29Db25kaXRpb246IG51bGwsXHJcbiAgICB0YW5nb0Zyb206IG51bGwsXHJcbiAgICB0YW5nb1RvOiBudWxsLFxyXG5cclxuICAgIHJldmlld2VkQnk6IFtdLFxyXG4gICAgYXBwcm92ZWRCeTogW11cclxuICB9KTtcclxudGhpcy5vblJlc2V0KCk7XHJcbiAgfVxyXG59XHJcbiAgaXNPcGVuID0gZmFsc2U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRyb2xzIHZpc2liaWxpdHlcclxuXHJcbiAgLy8gY2FsbGVkIGZyb20gcGFyZW50IHZpYSAjZmlsdGVyUGFuZWwub3BlbigpXHJcbiAgb3BlbigpIHtcclxuICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcclxuICAgXHJcbiAgfVxyXG5cclxuICAvLyBjYWxsZWQgZnJvbSBjbG9zZSBidXR0b24gaW5zaWRlIHRoZSBwYW5lbFxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcclxuICAgIHRoaXMucGFuZWxDbG9zZWQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2hvd1BhbmVsID0gZmFsc2U7ICAgICAgICAgICAvLyB5b3UgY2FuIGFsc28gY29udHJvbCB0aGlzIGZyb20gcGFyZW50XHJcblxyXG5zdGF0dXNPcHRpb25zOiBhbnlbXSA9IFtcclxuICAnT3BlbicsXHJcbiAgJ0luLVByb2dyZXNzJyxcclxuICAnQ2xvc2VkJyxcclxuICAnVW5kZXIgVGFuZ28gUmV2aWV3JyxcclxuICAvLyAnT3BlbiAtIEFjY3VyYWN5IElzc3VlJyxcclxuICAvLyAnQ2xvc2VkIC0gQWNjdXJhY3kgSXNzdWUnLFxyXG4gICdFeHBpcmVkJyxcclxuXTtcclxudGlja2V0U3RhdHVzT3B0aW9uczogYW55W10gPSBbXHJcbiAgJ1JhaXNlZCcsXHJcbiAgJ1Jldmlld2VyIC0gT3BlbicsXHJcbiAgJ1Jldmlld2VyIC0gSW4tUHJvZ3Jlc3MnLFxyXG4gICdSZXZpZXdlciAtIENsb3NlZCcsXHJcbiAgJ1Jldmlld2VyIC0gRXhwaXJlZCcsXHJcbiAgJ0FwcHJvdmVyIC0gT3BlbicsXHJcbiAgJ0FwcHJvdmVyIC0gSW4tUHJvZ3Jlc3MnLFxyXG4gICdBcHByb3ZlciAtIENsb3NlZCcsXHJcbiAgJ0FwcHJvdmVyIC0gRXhwaXJlZCcsXHJcbl07XHJcblxyXG4gIGNvbmRpdGlvbk9wdGlvbnMgPSBbXHJcbiAgICB7IHZhbHVlOiAnZ3QnLCBsYWJlbDogJz4gR3JlYXRlciB0aGFuJyB9LFxyXG4gICAgeyB2YWx1ZTogJ2x0JywgbGFiZWw6ICc8IExlc3NlciB0aGFuJyB9LFxyXG4gICAgeyB2YWx1ZTogJ2d0ZScsIGxhYmVsOiAnPj0gR3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvJyB9LFxyXG4gICAgeyB2YWx1ZTogJ2x0ZScsIGxhYmVsOiAnPD0gTGVzc2VyIHRoYW4gb3IgZXF1YWwgdG8nIH0sXHJcbiAgICB7IHZhbHVlOiAnYmV0d2VlbicsIGxhYmVsOiAnQmV0d2VlbicgfSxcclxuICBdO1xyXG5cclxuICBmaWx0ZXJGb3JtOiBGb3JtR3JvdXA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLHByaXZhdGUgZVJlZjogRWxlbWVudFJlZixwcml2YXRlIHNlcnZpY2U6VGlja2V0U2VydmljZSkge1xyXG4gICAgdGhpcy5maWx0ZXJGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIHN0YXR1czogW1tdXSxcclxuICAgICAgdHlwZTpudWxsLFxyXG4gICAgICB0aWNrZXRTdGF0dXMgOltbXV0sXHJcbiAgICAgIHJldmlld2VyQ29uZGl0aW9uOiBbbnVsbCBhcyBDb25kaXRpb24gfCBudWxsXSxcclxuICAgICAgcmV2aWV3ZXJGcm9tOiBbbnVsbCxbVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KDEwMCldXSxcclxuICAgICAgcmV2aWV3ZXJUbzogW251bGwsW1ZhbGlkYXRvcnMubWluKDApLCBWYWxpZGF0b3JzLm1heCgxMDApXV0sXHJcblxyXG4gICAgICBhcHByb3ZlckNvbmRpdGlvbjogW251bGwgYXMgQ29uZGl0aW9uIHwgbnVsbF0sXHJcbiAgICAgIGFwcHJvdmVyRnJvbTogW251bGwsW1ZhbGlkYXRvcnMubWluKDApLCBWYWxpZGF0b3JzLm1heCgxMDApXV0sXHJcbiAgICAgIGFwcHJvdmVyVG86IFtudWxsLFtWYWxpZGF0b3JzLm1pbigwKSwgVmFsaWRhdG9ycy5tYXgoMTAwKV1dLFxyXG5cclxuICAgICAgdGFuZ29Db25kaXRpb246IFtudWxsIGFzIENvbmRpdGlvbiB8IG51bGxdLFxyXG4gICAgICB0YW5nb0Zyb206IFtudWxsLFtWYWxpZGF0b3JzLm1pbigwKSwgVmFsaWRhdG9ycy5tYXgoMTAwKV1dLFxyXG4gICAgICB0YW5nb1RvOiBbbnVsbCxbVmFsaWRhdG9ycy5taW4oMCksIFZhbGlkYXRvcnMubWF4KDEwMCldXSxcclxuXHJcbiAgICAgIHJldmlld2VkQnk6IFtbXV0sXHJcbiAgYXBwcm92ZWRCeTogW1tdXSwgIFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLm9uUmVzZXQoKTtcclxuICB9XHJcblxyXG5cclxubGltaXRWYWx1ZShldmVudDogYW55LCBjb250cm9sTmFtZTogc3RyaW5nKSB7XHJcbiAgbGV0IHZhbHVlID0gTnVtYmVyKGV2ZW50LnRhcmdldC52YWx1ZSk7XHJcblxyXG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMDtcclxuICBpZiAodmFsdWUgPiAxMDApIHZhbHVlID0gMTAwO1xyXG5cclxuICBldmVudC50YXJnZXQudmFsdWUgPSB2YWx1ZTtcclxuICB0aGlzLmZpbHRlckZvcm0uZ2V0KGNvbnRyb2xOYW1lKT8uc2V0VmFsdWUodmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxufVxyXG5cclxuZ2V0IGlzVGFuZ28oKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHRoaXMudXNlclR5cGUgPT09ICd0YW5nbyc7XHJcbn1cclxuXHJcbi8vIFNIT1cgLyBISURFIFJVTEVTXHJcblxyXG4vLyBSZXZpZXdlciBhY2N1cmFjeSBhbmQgXCJSZXZpZXdlZCBieVwiIHZpc2libGUgZm9yIHRhbmdvICsgcmV2aWV3ZXJcclxuZ2V0IHNob3dSZXZpZXdlckFjY3VyYWN5KCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB0aGlzLmlzVGFuZ28gfHwgdGhpcy5wZXJtaXNzaW9uVHlwZSA9PT0gJ3Jldmlldyc7XHJcbn1cclxuXHJcbmdldCBzaG93UmV2aWV3ZWRCeSgpOiBib29sZWFuIHtcclxuICByZXR1cm4gIHRoaXMucGVybWlzc2lvblR5cGUgPT09ICdyZXZpZXcnO1xyXG59XHJcblxyXG4vLyBBcHByb3ZlciBhY2N1cmFjeSBhbmQgXCJBcHByb3ZlZCBieVwiIHZpc2libGUgZm9yIHRhbmdvICsgYXBwcm92ZXJcclxuZ2V0IHNob3dBcHByb3ZlckFjY3VyYWN5KCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB0aGlzLmlzVGFuZ28gfHwgdGhpcy5wZXJtaXNzaW9uVHlwZSA9PT0gJ2FwcHJvdmUnO1xyXG59XHJcblxyXG5nZXQgc2hvd0FwcHJvdmVkQnkoKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuICB0aGlzLnBlcm1pc3Npb25UeXBlID09PSAnYXBwcm92ZSc7XHJcbn1cclxuXHJcbi8vIFRhbmdvIGFjY3VyYWN5IG9ubHkgZm9yIHRhbmdvIHVzZXJzXHJcbmdldCBzaG93VGFuZ29BY2N1cmFjeSgpOiBib29sZWFuIHtcclxuICByZXR1cm4gdGhpcy5pc1RhbmdvO1xyXG59XHJcbnN0YXR1c0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xyXG5pc1N0YXR1c1NlbGVjdGVkKHN0YXR1czogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgY29uc3Qgc2VsZWN0ZWQ6IHN0cmluZ1tdID0gdGhpcy5maWx0ZXJGb3JtLnZhbHVlLnN0YXR1cyB8fCBbXTtcclxuICByZXR1cm4gc2VsZWN0ZWQuaW5jbHVkZXMoc3RhdHVzKTtcclxufVxyXG5cclxub25TdGF0dXNDaGFuZ2UoZXZlbnQ6IEV2ZW50LCBzdGF0dXM6IHN0cmluZykge1xyXG4gIGNvbnN0IGNoZWNrYm94ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgY29uc3Qgc2VsZWN0ZWQ6IHN0cmluZ1tdID0gdGhpcy5maWx0ZXJGb3JtLnZhbHVlLnN0YXR1cyB8fCBbXTtcclxuICBsZXQgbmV4dDogc3RyaW5nW107XHJcblxyXG4gIGlmIChjaGVja2JveC5jaGVja2VkKSB7XHJcbiAgICBuZXh0ID0gc2VsZWN0ZWQuaW5jbHVkZXMoc3RhdHVzKSA/IHNlbGVjdGVkIDogWy4uLnNlbGVjdGVkLCBzdGF0dXNdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBuZXh0ID0gc2VsZWN0ZWQuZmlsdGVyKHMgPT4gcyAhPT0gc3RhdHVzKTtcclxuICB9XHJcblxyXG4gIHRoaXMuZmlsdGVyRm9ybS5wYXRjaFZhbHVlKHsgc3RhdHVzOiBuZXh0IH0pO1xyXG59XHJcblxyXG50b2dnbGVTdGF0dXNEcm9wZG93bihldmVudD86IE1vdXNlRXZlbnQpIHtcclxuICBpZiAoZXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAvLyBhdm9pZCBkb2N1bWVudCBjbGljayBjbG9zaW5nIGl0XHJcbiAgfVxyXG4gIHRoaXMuc3RhdHVzRHJvcGRvd25PcGVuID0gIXRoaXMuc3RhdHVzRHJvcGRvd25PcGVuO1xyXG59XHJcblxyXG4vLyBBcmUgYWxsIHN0YXR1c2VzIGN1cnJlbnRseSBzZWxlY3RlZD9cclxuYXJlQWxsU3RhdHVzZXNTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICBjb25zdCBzZWxlY3RlZDogc3RyaW5nW10gPSB0aGlzLmZpbHRlckZvcm0udmFsdWUuc3RhdHVzIHx8IFtdO1xyXG4gIHJldHVybiBzZWxlY3RlZC5sZW5ndGggPiAwICYmIHNlbGVjdGVkLmxlbmd0aCA9PT0gdGhpcy5zdGF0dXNPcHRpb25zLmxlbmd0aDtcclxufVxyXG5cclxuLy8gSGFuZGxlIFwiU2VsZWN0IEFsbFwiIGNoZWNrYm94IGNoYW5nZVxyXG5vblN0YXR1c1NlbGVjdEFsbENoYW5nZShldmVudDogRXZlbnQpIHtcclxuICBjb25zdCBjaGVja2JveCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG5cclxuICBpZiAoY2hlY2tib3guY2hlY2tlZCkge1xyXG4gICAgLy8gU2VsZWN0IGV2ZXJ5IHN0YXR1c1xyXG4gICAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoeyBzdGF0dXM6IFsuLi50aGlzLnN0YXR1c09wdGlvbnNdIH0pO1xyXG4gIH0gZWxzZSB7XHJcbiAgICAvLyBDbGVhciBhbGxcclxuICAgIHRoaXMuZmlsdGVyRm9ybS5wYXRjaFZhbHVlKHsgc3RhdHVzOiBbXSB9KTtcclxuICB9XHJcbn1cclxuZ2V0IHNlbGVjdGVkU3RhdHVzZXMoKTogc3RyaW5nW10ge1xyXG4gIHJldHVybiB0aGlzLmZpbHRlckZvcm0udmFsdWUuc3RhdHVzIHx8IFtdO1xyXG59XHJcblxyXG5pc1RpY2tldFN0YXR1c1NlbGVjdGVkKHN0YXR1czogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgY29uc3Qgc2VsZWN0ZWQ6IHN0cmluZ1tdID0gdGhpcy5maWx0ZXJGb3JtLnZhbHVlLnRpY2tldFN0YXR1cyB8fCBbXTtcclxuICByZXR1cm4gc2VsZWN0ZWQuaW5jbHVkZXMoc3RhdHVzKTtcclxufVxyXG5cclxub25UaWNrZXRTdGF0dXNDaGFuZ2UoZXZlbnQ6IEV2ZW50LCBzdGF0dXM6IHN0cmluZykge1xyXG4gIGNvbnN0IGNoZWNrYm94ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgY29uc3Qgc2VsZWN0ZWQ6IHN0cmluZ1tdID0gdGhpcy5maWx0ZXJGb3JtLnZhbHVlLnRpY2tldFN0YXR1cyB8fCBbXTtcclxuICBsZXQgbmV4dDogc3RyaW5nW107XHJcblxyXG4gIGlmIChjaGVja2JveC5jaGVja2VkKSB7XHJcbiAgICBuZXh0ID0gc2VsZWN0ZWQuaW5jbHVkZXMoc3RhdHVzKSA/IHNlbGVjdGVkIDogWy4uLnNlbGVjdGVkLCBzdGF0dXNdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBuZXh0ID0gc2VsZWN0ZWQuZmlsdGVyKHMgPT4gcyAhPT0gc3RhdHVzKTtcclxuICB9XHJcblxyXG4gIHRoaXMuZmlsdGVyRm9ybS5wYXRjaFZhbHVlKHsgdGlja2V0U3RhdHVzOiBuZXh0IH0pO1xyXG59XHJcblxyXG50b2dnbGVUaWNrZXRTdGF0dXNEcm9wZG93bihldmVudD86IE1vdXNlRXZlbnQpIHtcclxuICBpZiAoZXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAvLyBhdm9pZCBkb2N1bWVudCBjbGljayBjbG9zaW5nIGl0XHJcbiAgfVxyXG4gIHRoaXMuc3RhdHVzRHJvcGRvd25PcGVuID0gIXRoaXMuc3RhdHVzRHJvcGRvd25PcGVuO1xyXG59XHJcblxyXG4vLyBBcmUgYWxsIHN0YXR1c2VzIGN1cnJlbnRseSBzZWxlY3RlZD9cclxuYXJlQWxsVGlja2V0U3RhdHVzZXNTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICBjb25zdCBzZWxlY3RlZDogc3RyaW5nW10gPSB0aGlzLmZpbHRlckZvcm0udmFsdWUudGlja2V0U3RhdHVzIHx8IFtdO1xyXG4gIHJldHVybiBzZWxlY3RlZC5sZW5ndGggPiAwICYmIHNlbGVjdGVkLmxlbmd0aCA9PT0gdGhpcy50aWNrZXRTdGF0dXNPcHRpb25zLmxlbmd0aDtcclxufVxyXG5cclxuLy8gSGFuZGxlIFwiU2VsZWN0IEFsbFwiIGNoZWNrYm94IGNoYW5nZVxyXG5vblRpY2tldFN0YXR1c1NlbGVjdEFsbENoYW5nZShldmVudDogRXZlbnQpIHtcclxuICBjb25zdCBjaGVja2JveCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG5cclxuICBpZiAoY2hlY2tib3guY2hlY2tlZCkge1xyXG4gICAgLy8gU2VsZWN0IGV2ZXJ5IHN0YXR1c1xyXG4gICAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoeyB0aWNrZXRTdGF0dXM6IFsuLi50aGlzLnRpY2tldFN0YXR1c09wdGlvbnNdIH0pO1xyXG4gIH0gZWxzZSB7XHJcbiAgICAvLyBDbGVhciBhbGxcclxuICAgIHRoaXMuZmlsdGVyRm9ybS5wYXRjaFZhbHVlKHsgdGlja2V0U3RhdHVzOiBbXSB9KTtcclxuICB9XHJcbn1cclxuZ2V0IHNlbGVjdGVkVGlja2V0U3RhdHVzZXMoKTogc3RyaW5nW10ge1xyXG4gIHJldHVybiB0aGlzLmZpbHRlckZvcm0udmFsdWUudGlja2V0U3RhdHVzIHx8IFtdO1xyXG59XHJcblxyXG4gIGlzQmV0d2Vlbihjb250cm9sTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJGb3JtLmdldChjb250cm9sTmFtZSk/LnZhbHVlID09PSAnYmV0d2Vlbic7XHJcbiAgfVxyXG5uZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgaWYgKGNoYW5nZXNbJ2NsaWVudCddIHx8IGNoYW5nZXNbJ3Blcm1pc3Npb25UeXBlJ10gfHwgY2hhbmdlc1sndXNlclR5cGUnXSkge1xyXG4gICAgdGhpcy5sb2FkUmV2aWV3ZXJMaXN0KCk7XHJcbiAgfVxyXG4gIHRoaXMub25SZXNldCgpO1xyXG59XHJcbi8vIGZ1bGwgdXNlciBsaXN0IHlvdSBhbHJlYWR5IGhhdmVcclxudXNlckxpc3Q6IGFueVtdID0gW107XHJcblxyXG5cclxucmV2aWV3ZXJTZWFyY2hUZXJtOiBzdHJpbmcgPSAnJztcclxuXHJcbi8vIOKchSBzaW1wbGUgY29tcHV0ZWQgbGlzdCBmb3IgKm5nRm9yXHJcbmdldCBmaWx0ZXJlZFJldmlld2VyTGlzdCgpOiB7IGVtYWlsOiBzdHJpbmc7IG5hbWU/OiBzdHJpbmcgfVtdIHtcclxuICBjb25zdCB0ZXJtID0gKHRoaXMucmV2aWV3ZXJTZWFyY2hUZXJtIHx8ICcnKS50cmltKCkudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgaWYgKCF0ZXJtKSB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyTGlzdDtcclxuICB9XHJcblxyXG4gIHJldHVybiB0aGlzLnVzZXJMaXN0LmZpbHRlcih1ID0+IHtcclxuICAgIGNvbnN0IGVtYWlsID0gKHUuZW1haWwgfHwgJycpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBjb25zdCBuYW1lID0gKHUubmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcclxuICAgIGlmKHRoaXMucmV2aWV3ZXJTZWFyY2hUZXJtLmxlbmd0aCl7XHJcbiAgICByZXR1cm4gZW1haWwuaW5jbHVkZXModGVybSkgfHwgbmFtZS5pbmNsdWRlcyh0ZXJtKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5hcHByb3ZlclNlYXJjaFRlcm06YW55O1xyXG5nZXQgZmlsdGVyZWRBcHByb3Zlckxpc3QoKTogYW55W10ge1xyXG4gIGNvbnN0IHRlcm0gPSAodGhpcy5hcHByb3ZlclNlYXJjaFRlcm0gfHwgJycpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG4gIGlmICghdGVybSkge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlckxpc3Q7XHJcbiAgfVxyXG4gIHJldHVybiB0aGlzLnVzZXJMaXN0LmZpbHRlcigodTogYW55KSA9PiB7XHJcbiAgICBjb25zdCBlbWFpbCA9ICh1LmVtYWlsIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgY29uc3QgbmFtZSA9ICh1Lm5hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBpZih0aGlzLmFwcHJvdmVyU2VhcmNoVGVybS5sZW5ndGgpe1xyXG4gICAgICByZXR1cm4gZW1haWwuaW5jbHVkZXModGVybSkgfHwgbmFtZS5pbmNsdWRlcyh0ZXJtKVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5vbkFwcHJvdmVyU2VhcmNoKHZhbHVlOiBzdHJpbmcpIHtcclxuICB0aGlzLmFwcHJvdmVyU2VhcmNoVGVybSA9IHZhbHVlO1xyXG59XHJcbnByaXZhdGUgbG9hZFJldmlld2VyTGlzdCgpOiB2b2lkIHtcclxuICBpZiAoIXRoaXMuY2xpZW50KSB7XHJcbiAgICB0aGlzLnVzZXJMaXN0ID0gW107XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBsZXQgdHlwZTogc3RyaW5nO1xyXG5cclxuICBpZiAodGhpcy51c2VyVHlwZSA9PT0gJ3RhbmdvJykge1xyXG4gICAgdHlwZSA9ICd0YW5nbyc7ICAgIC8vIG9yICdhbGwnXHJcbiAgfSBlbHNlIGlmICh0aGlzLnBlcm1pc3Npb25UeXBlID09PSAncmV2aWV3Jykge1xyXG4gICAgdHlwZSA9ICdyZXZpZXcnO1xyXG4gIH0gZWxzZSBpZiAodGhpcy5wZXJtaXNzaW9uVHlwZSA9PT0gJ2FwcHJvdmUnKSB7XHJcbiAgICB0eXBlID0gJ2FwcHJvdmUnO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0aGlzLnVzZXJMaXN0ID0gW107XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICB0aGlzLnNlcnZpY2UuZ2V0UmV2aWV3ZXJBcGkodGhpcy5jbGllbnQsIHR5cGUsJycpLnN1YnNjcmliZSh7XHJcbiAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy51c2VyTGlzdCA9IHJlcy5kYXRhO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudXNlckxpc3QgPSBbXTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgIHRoaXMudXNlckxpc3QgPSBbXTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuLy8gb3BlbiBmbGFnc1xyXG5yZXZpZXdlckRyb3Bkb3duT3BlbiA9IGZhbHNlO1xyXG5hcHByb3ZlckRyb3Bkb3duT3BlbiA9IGZhbHNlO1xyXG5cclxuLy8gY29udmVuaWVuY2UgZ2V0dGVyc1xyXG5nZXQgc2VsZWN0ZWRSZXZpZXdlZEJ5KCk6IHN0cmluZ1tdIHtcclxuICByZXR1cm4gdGhpcy5maWx0ZXJGb3JtLnZhbHVlLnJldmlld2VkQnkgfHwgW107XHJcbn1cclxuXHJcbmdldCBzZWxlY3RlZEFwcHJvdmVkQnkoKTogc3RyaW5nW10ge1xyXG4gIHJldHVybiB0aGlzLmZpbHRlckZvcm0udmFsdWUuYXBwcm92ZWRCeSB8fCBbXTtcclxufVxyXG5cclxuLy8gLS0tIFJldmlld2VkIEJ5IGhlbHBlcnMgLS0tXHJcblxyXG50b2dnbGVSZXZpZXdlckRyb3Bkb3duKGV2ZW50PzogTW91c2VFdmVudCkge1xyXG4gIGlmIChldmVudCkgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgdGhpcy5yZXZpZXdlckRyb3Bkb3duT3BlbiA9ICF0aGlzLnJldmlld2VyRHJvcGRvd25PcGVuO1xyXG59XHJcblxyXG5pc1Jldmlld2VyU2VsZWN0ZWQoZW1haWw6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB0aGlzLnNlbGVjdGVkUmV2aWV3ZWRCeS5pbmNsdWRlcyhlbWFpbCk7XHJcbn1cclxuXHJcbm9uUmV2aWV3ZXJDaGFuZ2UoZXZlbnQ6IEV2ZW50LCBlbWFpbDogc3RyaW5nKSB7XHJcbiAgY29uc3QgY2hlY2tib3ggPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICBjb25zdCBzZWxlY3RlZCA9IFsuLi50aGlzLnNlbGVjdGVkUmV2aWV3ZWRCeV07XHJcblxyXG4gIGlmIChjaGVja2JveC5jaGVja2VkKSB7XHJcbiAgICBpZiAoIXNlbGVjdGVkLmluY2x1ZGVzKGVtYWlsKSkgc2VsZWN0ZWQucHVzaChlbWFpbCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnN0IGkgPSBzZWxlY3RlZC5pbmRleE9mKGVtYWlsKTtcclxuICAgIGlmIChpID49IDApIHNlbGVjdGVkLnNwbGljZShpLCAxKTtcclxuICB9XHJcblxyXG4gIHRoaXMuZmlsdGVyRm9ybS5wYXRjaFZhbHVlKHsgcmV2aWV3ZWRCeTogc2VsZWN0ZWQgfSk7XHJcbn1cclxuXHJcbmFyZUFsbFJldmlld2Vyc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAoXHJcbiAgICB0aGlzLnVzZXJMaXN0Lmxlbmd0aCA+IDAgJiZcclxuICAgIHRoaXMuc2VsZWN0ZWRSZXZpZXdlZEJ5Lmxlbmd0aCA9PT0gdGhpcy51c2VyTGlzdC5sZW5ndGhcclxuICApO1xyXG59XHJcblxyXG5vblJldmlld2VyU2VsZWN0QWxsKGV2ZW50OiBFdmVudCkge1xyXG4gIGNvbnN0IGNoZWNrYm94ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcblxyXG4gIGlmIChjaGVja2JveC5jaGVja2VkKSB7XHJcbiAgICB0aGlzLmZpbHRlckZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgIHJldmlld2VkQnk6IHRoaXMudXNlckxpc3QubWFwKCh1OmFueSkgPT4gdS5lbWFpbCksXHJcbiAgICB9KTtcclxuICB9IGVsc2Uge1xyXG4gICAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoeyByZXZpZXdlZEJ5OiBbXSB9KTtcclxuICB9XHJcbn1cclxuXHJcbi8vIC0tLSBBcHByb3ZlZCBCeSBoZWxwZXJzIC0tLVxyXG5cclxudG9nZ2xlQXBwcm92ZXJEcm9wZG93bihldmVudD86IE1vdXNlRXZlbnQpIHtcclxuICBpZiAoZXZlbnQpIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIHRoaXMuYXBwcm92ZXJEcm9wZG93bk9wZW4gPSAhdGhpcy5hcHByb3ZlckRyb3Bkb3duT3BlbjtcclxufVxyXG5cclxuaXNBcHByb3ZlclNlbGVjdGVkKGVtYWlsOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICByZXR1cm4gdGhpcy5zZWxlY3RlZEFwcHJvdmVkQnkuaW5jbHVkZXMoZW1haWwpO1xyXG59XHJcblxyXG5vbkFwcHJvdmVyQ2hhbmdlKGV2ZW50OiBFdmVudCwgZW1haWw6IHN0cmluZykge1xyXG4gIGNvbnN0IGNoZWNrYm94ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgY29uc3Qgc2VsZWN0ZWQgPSBbLi4udGhpcy5zZWxlY3RlZEFwcHJvdmVkQnldO1xyXG5cclxuICBpZiAoY2hlY2tib3guY2hlY2tlZCkge1xyXG4gICAgaWYgKCFzZWxlY3RlZC5pbmNsdWRlcyhlbWFpbCkpIHNlbGVjdGVkLnB1c2goZW1haWwpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zdCBpID0gc2VsZWN0ZWQuaW5kZXhPZihlbWFpbCk7XHJcbiAgICBpZiAoaSA+PSAwKSBzZWxlY3RlZC5zcGxpY2UoaSwgMSk7XHJcbiAgfVxyXG5cclxuICB0aGlzLmZpbHRlckZvcm0ucGF0Y2hWYWx1ZSh7IGFwcHJvdmVkQnk6IHNlbGVjdGVkIH0pO1xyXG59XHJcblxyXG5hcmVBbGxBcHByb3ZlcnNTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICByZXR1cm4gKFxyXG4gICAgdGhpcy51c2VyTGlzdC5sZW5ndGggPiAwICYmXHJcbiAgICB0aGlzLnNlbGVjdGVkQXBwcm92ZWRCeS5sZW5ndGggPT09IHRoaXMudXNlckxpc3QubGVuZ3RoXHJcbiAgKTtcclxufVxyXG5cclxub25BcHByb3ZlclNlbGVjdEFsbChldmVudDogRXZlbnQpIHtcclxuICBjb25zdCBjaGVja2JveCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG5cclxuICBpZiAoY2hlY2tib3guY2hlY2tlZCkge1xyXG4gICAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICBhcHByb3ZlZEJ5OiB0aGlzLnVzZXJMaXN0Lm1hcCgodTphbnkpID0+IHUuZW1haWwpLFxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHRoaXMuZmlsdGVyRm9ybS5wYXRjaFZhbHVlKHsgYXBwcm92ZWRCeTogW10gfSk7XHJcbiAgfVxyXG59XHJcblxyXG5vblJlc2V0KCk6IHZvaWQge1xyXG4gIHRoaXMuZmlsdGVyRm9ybS5yZXNldCh7XHJcbiAgICBzdGF0dXM6IFtdLFxyXG4gICAgcmV2aWV3ZXJDb25kaXRpb246IG51bGwsXHJcbiAgICByZXZpZXdlckZyb206IG51bGwsXHJcbiAgICByZXZpZXdlclRvOiBudWxsLFxyXG5cclxuICAgIGFwcHJvdmVyQ29uZGl0aW9uOiBudWxsLFxyXG4gICAgYXBwcm92ZXJGcm9tOiBudWxsLFxyXG4gICAgYXBwcm92ZXJUbzogbnVsbCxcclxuXHJcbiAgICB0YW5nb0NvbmRpdGlvbjogbnVsbCxcclxuICAgIHRhbmdvRnJvbTogbnVsbCxcclxuICAgIHRhbmdvVG86IG51bGwsXHJcblxyXG4gICAgcmV2aWV3ZWRCeTogW10sXHJcbiAgICBhcHByb3ZlZEJ5OiBbXVxyXG4gIH0pO1xyXG5cclxuICAvLyAy77iP4oOjIFJlc2V0IHNlYXJjaCB0ZXJtc1xyXG4gIHRoaXMucmV2aWV3ZXJTZWFyY2hUZXJtID0gJyc7XHJcbiAgdGhpcy5hcHByb3ZlclNlYXJjaFRlcm0gPSAnJztcclxuXHJcbiAgLy8gM++4j+KDoyBCdWlsZCBlbXB0eSBwYXlsb2FkIHRvIHNlbmQgYmFja1xyXG4gIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICBmaWx0ZXJCeVN0YXR1czogW10sXHJcbiAgICBmaWx0ZXJCeVJldmlld2VyOiBudWxsLFxyXG4gICAgZmlsdGVyQnlBcHByb3ZlcjogbnVsbCxcclxuICAgIGZpbHRlckJ5VGFuZ286IG51bGwsXHJcbiAgICBmaWx0ZXJCeVJldmlld2VkQnk6IFtdLFxyXG4gICAgZmlsZXRlckJ5QXBwcm92ZWRCeTogW10sXHJcbiAgICAgICAgLi4uKHRoaXMudGFiID09PSAnaW50ZXJuYWwnICYmIHtcclxuICAgIGZpbHRlckJ5VGlja2V0VHlwZTogbnVsbCxcclxuICAgIGZpbHRlckJ5VGFuZ29TdGF0dXM6IFtdXHJcbiAgfSlcclxuICB9O1xyXG5cclxuICAvLyA077iP4oOjIEVtaXQgdGhlIG5vdy1lbXB0eSBmaWx0ZXIgcmVzdWx0XHJcbiAgdGhpcy5hcHBseS5lbWl0KHBheWxvYWQpO1xyXG5cclxuICAvLyA177iP4oOjIENsb3NlIHRoZSBmaWx0ZXIgcGFuZWxcclxuICB0aGlzLmNsb3NlKCk7XHJcbn1cclxuXHJcbnByaXZhdGUgbWFwQWNjdXJhY3koXHJcbiAgY29uZGl0aW9uOiBDb25kaXRpb24gfCBudWxsLFxyXG4gIGZyb206IG51bWJlciB8IG51bGwsXHJcbiAgdG86IG51bWJlciB8IG51bGxcclxuKTogc3RyaW5nIHwgbnVsbCB7XHJcblxyXG4gIC8vIG5vdGhpbmcgc2VsZWN0ZWRcclxuICBpZiAoIWNvbmRpdGlvbiB8fCBmcm9tID09IG51bGwpIHJldHVybiBudWxsO1xyXG5cclxuICAvLyBcImJldHdlZW5cIiDihpIgXCI5MCB0byAxMDBcIlxyXG4gIGlmIChjb25kaXRpb24gPT09ICdiZXR3ZWVuJykge1xyXG4gICAgaWYgKHRvID09IG51bGwpIHJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIGAke2Zyb219IHRvICR7dG99YDtcclxuICB9XHJcblxyXG4gIC8vIG90aGVyIGNvbmRpdGlvbnMgKGd0LCBsdCwgZ3RlLCBsdGUpXHJcbiAgY29uc3Qgb3BNYXA6IFJlY29yZDxDb25kaXRpb24sIHN0cmluZz4gPSB7XHJcbiAgICBndDogJz4nLFxyXG4gICAgbHQ6ICc8JyxcclxuICAgIGd0ZTogJz49JyxcclxuICAgIGx0ZTogJzw9JyxcclxuICAgIGJldHdlZW46ICcnLCAvLyBhbHJlYWR5IGhhbmRsZWQgYWJvdmVcclxuICB9O1xyXG5cclxuICByZXR1cm4gYCR7b3BNYXBbY29uZGl0aW9uXX0ke2Zyb219YDsgIC8vIGUuZy4gXCI+PSA5MFwiXHJcbn1cclxub25UaWNrZXRUeXBlQ2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudCkudmFsdWU7XHJcbiAgY29uc29sZS5sb2coJ1RpY2tldCB0eXBlIGNoYW5nZWQ6JywgdmFsdWUpO1xyXG4vLyB0aGlzLnRpY2tldFR5cGUgPSB2YWx1ZVxyXG4gIC8vIGRvIHdoYXQgeW91IG5lZWQgaGVyZVxyXG4gIC8vIGV4YW1wbGU6XHJcbiAgLy8gdGhpcy50YWIgPSB2YWx1ZTtcclxuICAvLyB0aGlzLnJlbG9hZERhdGEoKTtcclxufVxyXG5cclxuICBvbkFwcGx5KCk6IHZvaWQge1xyXG5cclxuICAgY29uc3QgcmF3ID0gdGhpcy5maWx0ZXJGb3JtLnZhbHVlO1xyXG5cclxuICBjb25zdCByZXZpZXdlclN0ciA9IHRoaXMubWFwQWNjdXJhY3kocmF3LnJldmlld2VyQ29uZGl0aW9uLCByYXcucmV2aWV3ZXJGcm9tLCByYXcucmV2aWV3ZXJUbyk7XHJcbiAgY29uc3QgYXBwcm92ZXJTdHIgPSB0aGlzLm1hcEFjY3VyYWN5KHJhdy5hcHByb3ZlckNvbmRpdGlvbiwgcmF3LmFwcHJvdmVyRnJvbSwgcmF3LmFwcHJvdmVyVG8pO1xyXG4gIGNvbnN0IHRhbmdvU3RyICAgID0gdGhpcy5tYXBBY2N1cmFjeShyYXcudGFuZ29Db25kaXRpb24sIHJhdy50YW5nb0Zyb20sIHJhdy50YW5nb1RvKTtcclxuICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgZmlsdGVyQnlTdGF0dXM6IHJhdy5zdGF0dXMgfHwgW10sXHJcbiAgICBmaWx0ZXJCeVJldmlld2VyOiByZXZpZXdlclN0cixcclxuICAgIGZpbHRlckJ5QXBwcm92ZXI6IGFwcHJvdmVyU3RyLFxyXG4gICAgZmlsdGVyQnlUYW5nbzogdGFuZ29TdHIsXHJcbiAgICBmaWx0ZXJCeVJldmlld2VkQnk6IHJhdy5yZXZpZXdlZEJ5IHx8IFtdLCAgICAgICAgXHJcbiAgICBmaWxldGVyQnlBcHByb3ZlZEJ5OiByYXcuYXBwcm92ZWRCeSB8fCBbXSxcclxuICAgIC4uLih0aGlzLnRhYiA9PT0gJ2ludGVybmFsJyAmJiB7XHJcbiAgICBmaWx0ZXJCeVRpY2tldFR5cGU6IHJhdy50aWNrZXRUeXBlLFxyXG4gICAgZmlsdGVyQnlUYW5nb1N0YXR1czogcmF3LnRhbmdvU3RhdHVzIHx8IFtdXHJcbiAgfSkgICAgICAgIFxyXG4gIH07XHJcbiAgdGhpcy5hcHBseS5lbWl0KHBheWxvYWQpO1xyXG4gIHRoaXMuY2xvc2UoKTtcclxuICAgIHRoaXMuc2hvd1BhbmVsID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuZHJvcGRvd25TdGF0ZSA9IHtcclxuICBzdGF0dXM6IGZhbHNlLFxyXG4gIHJldmlld2VyOiBmYWxzZSxcclxuICBhcHByb3ZlcjogZmFsc2UsXHJcbiAgdGlja2V0U3RhdHVzIDpmYWxzZVxyXG59O1xyXG4vLyBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycpXHJcbmNsb3NlQWxsKCkge1xyXG4gIHRoaXMuZHJvcGRvd25TdGF0ZS5zdGF0dXMgPSBmYWxzZTtcclxuICB0aGlzLmRyb3Bkb3duU3RhdGUucmV2aWV3ZXIgPSBmYWxzZTtcclxuICB0aGlzLmRyb3Bkb3duU3RhdGUuYXBwcm92ZXIgPSBmYWxzZTtcclxuICB0aGlzLmRyb3Bkb3duU3RhdGUudGlja2V0U3RhdHVzID1mYWxzZTtcclxufVxyXG5cclxudG9nZ2xlRHJvcGRvd24odHlwZTogJ3N0YXR1cycgfCAncmV2aWV3ZXInIHwgJ2FwcHJvdmVyJyB8ICd0aWNrZXRTdGF0dXMnLCBldmVudDogTW91c2VFdmVudCkge1xyXG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAvLyBDbG9zZSBhbGwgYmVmb3JlIG9wZW5pbmcgYSBuZXcgb25lXHJcbiAgdGhpcy5jbG9zZUFsbCgpO1xyXG5cclxuICAvLyBUb2dnbGUgb25seSB0aGUgc2VsZWN0ZWQgb25lXHJcbiAgdGhpcy5kcm9wZG93blN0YXRlW3R5cGVdID0gIXRoaXMuZHJvcGRvd25TdGF0ZVt0eXBlXTtcclxufVxyXG5cclxuaXNEcm9wZG93bk9wZW4odHlwZTogJ3N0YXR1cycgfCAncmV2aWV3ZXInIHwgJ2FwcHJvdmVyJyB8ICd0aWNrZXRTdGF0dXMnKSB7XHJcbiAgcmV0dXJuIHRoaXMuZHJvcGRvd25TdGF0ZVt0eXBlXTtcclxufVxyXG5cclxuXHJcblxyXG5cclxufVxyXG4iLCI8IS0tIHRpY2tldC1maWx0ZXItcGFuZWwuY29tcG9uZW50Lmh0bWwgLS0+XHJcbjxkaXYgY2xhc3M9XCJmaWx0ZXItd3JhcHBlclwiICpuZ0lmPVwiaXNPcGVuXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZpbHRlci1jYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWhlYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1iLTNcIj5cclxuICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5GaWx0ZXIgT3B0aW9uczwvZGl2PlxyXG4gICAgICA8IS0tIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlKClcIj7inJU8L2J1dHRvbj4gLS0+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZpbHRlckZvcm1cIj5cclxuXHJcbiAgICAgIDxkaXYgKm5nSWY9XCJ0YWIgPT09J2ludGVybmFsJ1wiIGNsYXNzPVwibWItMyBwb3NpdGlvbi1yZWxhdGl2ZVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuXHJcbiA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+VGlja2V0IFR5cGU8L2xhYmVsPlxyXG4gPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHctMTAwXCIgZm9ybUNvbnRyb2xOYW1lPVwidHlwZVwiICAoY2hhbmdlKT1cIm9uVGlja2V0VHlwZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgIDxvcHRpb24gZGlzYWJsZWQgW25nVmFsdWVdPVwibnVsbFwiPlNlbGVjdDwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic3RvcmVcIj5TdG9yZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImludGVybmFsXCI+SW50ZXJuYWw8L29wdGlvbj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwhLS0gU3RhdHVzIC0tPlxyXG48ZGl2IGNsYXNzPVwibWItMyBwb3NpdGlvbi1yZWxhdGl2ZVwiID5cclxuICA8bGFiZWwgKm5nSWY9XCJ0YWIgIT09J2ludGVybmFsJ1wiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlN0YXR1czwvbGFiZWw+XHJcbiA8bGFiZWwgKm5nSWY9XCJ0YWIgPT09J2ludGVybmFsJ1wiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlRhbmdvIFN0YXR1czwvbGFiZWw+XHJcbiAgPCEtLSBIZWFkZXIgLyB0cmlnZ2VyIC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwic3RhdHVzLXNlbGVjdCBib3JkZXIgcm91bmRlZCBweC0zIHB5LTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oJ3N0YXR1cycsICRldmVudClcIlxyXG4gID5cclxuICAgIDxzcGFuICpuZ0lmPVwiIXNlbGVjdGVkU3RhdHVzZXMubGVuZ3RoXCI+U2VsZWN0PC9zcGFuPlxyXG5cclxuICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRTdGF0dXNlcy5sZW5ndGggPT09IDFcIj5cclxuICAgICAge3sgc2VsZWN0ZWRTdGF0dXNlc1swXSB9fVxyXG4gICAgPC9zcGFuPlxyXG5cclxuICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRTdGF0dXNlcy5sZW5ndGggPiAxXCIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxzcGFuPnt7IHNlbGVjdGVkU3RhdHVzZXNbMF0gfX08L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgbXMtMlwiPlxyXG4gICAgICAgICt7eyBzZWxlY3RlZFN0YXR1c2VzLmxlbmd0aCAtIDEgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBEUk9QRE9XTiBQQU5FTCAoT1ZFUkxBWSkgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJzdGF0dXMtZHJvcGRvd24gcG9zaXRpb24tYWJzb2x1dGUgdy0xMDAgbXQtMSBib3JkZXIgcm91bmRlZCBwLTEgYmctd2hpdGVcIlxyXG4gICAgc3R5bGU9XCJ6LWluZGV4OiAxMDAwOyBtYXgtaGVpZ2h0OiAyMjBweDsgb3ZlcmZsb3cteTogYXV0bztcIlxyXG4gICAqbmdJZj1cImlzRHJvcGRvd25PcGVuKCdzdGF0dXMnKVwiXHJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICA+XHJcbiAgICA8IS0tIFNlbGVjdCBBbGwgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBweC0wIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBcIlxyXG4gICAgICAgIGlkPVwic3RhdHVzLXNlbGVjdC1hbGxcIlxyXG4gICAgICAgIFtjaGVja2VkXT1cImFyZUFsbFN0YXR1c2VzU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgKGNoYW5nZSk9XCJvblN0YXR1c1NlbGVjdEFsbENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgLz5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0ZXh0LWRhcmsgbXMtMlwiIGZvcj1cInN0YXR1cy1zZWxlY3QtYWxsXCI+XHJcbiAgICAgICAgU2VsZWN0IEFsbFxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDwhLS0gT3B0aW9ucyAtLT5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrIHB4LTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtYi0xXCJcclxuICAgICAgKm5nRm9yPVwibGV0IHMgb2Ygc3RhdHVzT3B0aW9uc1wiXHJcbiAgICA+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IFwiXHJcbiAgICAgICAgW2lkXT1cIidzdGF0dXMtJyArIHNcIlxyXG4gICAgICAgIFtjaGVja2VkXT1cImlzU3RhdHVzU2VsZWN0ZWQocylcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwib25TdGF0dXNDaGFuZ2UoJGV2ZW50LCBzKVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdGV4dC1kYXJrIG1zLTJcIiBbZm9yXT1cIidzdGF0dXMtJyArIHNcIj5cclxuICAgICAgICB7eyBzIH19XHJcbiAgICAgIDwvbGFiZWw+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuPGRpdiAqbmdJZj1cInRhYiA9PT0naW50ZXJuYWwnXCIgIGNsYXNzPVwibWItMyBwb3NpdGlvbi1yZWxhdGl2ZVwiID5cclxuICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+VGlja2V0IFN0YXR1czwvbGFiZWw+XHJcblxyXG4gIDwhLS0gSGVhZGVyIC8gdHJpZ2dlciAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cInN0YXR1cy1zZWxlY3QgYm9yZGVyIHJvdW5kZWQgcHgtMyBweS0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKCd0aWNrZXRTdGF0dXMnLCAkZXZlbnQpXCJcclxuICA+XHJcbiAgICA8c3BhbiAqbmdJZj1cIiFzZWxlY3RlZFRpY2tldFN0YXR1c2VzLmxlbmd0aFwiPlNlbGVjdDwvc3Bhbj5cclxuXHJcbiAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkVGlja2V0U3RhdHVzZXMubGVuZ3RoID09PSAxXCI+XHJcbiAgICAgIHt7IHNlbGVjdGVkVGlja2V0U3RhdHVzZXNbMF0gfX1cclxuICAgIDwvc3Bhbj5cclxuXHJcbiAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkVGlja2V0U3RhdHVzZXMubGVuZ3RoID4gMVwiIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8c3Bhbj57eyBzZWxlY3RlZFRpY2tldFN0YXR1c2VzWzBdIH19PC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIG1zLTJcIj5cclxuICAgICAgICAre3sgc2VsZWN0ZWRUaWNrZXRTdGF0dXNlcy5sZW5ndGggLSAxIH19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvc3Bhbj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gRFJPUERPV04gUEFORUwgKE9WRVJMQVkpIC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwic3RhdHVzLWRyb3Bkb3duIHBvc2l0aW9uLWFic29sdXRlIHctMTAwIG10LTEgYm9yZGVyIHJvdW5kZWQgcC0xIGJnLXdoaXRlXCJcclxuICAgIHN0eWxlPVwiei1pbmRleDogMTAwMDsgbWF4LWhlaWdodDogMjIwcHg7IG92ZXJmbG93LXk6IGF1dG87XCJcclxuICAgKm5nSWY9XCJpc0Ryb3Bkb3duT3BlbigndGlja2V0U3RhdHVzJylcIlxyXG4gICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgPlxyXG4gICAgPCEtLSBTZWxlY3QgQWxsIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgcHgtMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTJcIj5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgXCJcclxuICAgICAgICBpZD1cInRpY2tldFN0YXR1cy1zZWxlY3QtYWxsXCJcclxuICAgICAgICBbY2hlY2tlZF09XCJhcmVBbGxUaWNrZXRTdGF0dXNlc1NlbGVjdGVkKClcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwib25UaWNrZXRTdGF0dXNTZWxlY3RBbGxDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdGV4dC1kYXJrIG1zLTJcIiBmb3I9XCJ0aWNrZXRTdGF0dXMtc2VsZWN0LWFsbFwiPlxyXG4gICAgICAgIFNlbGVjdCBBbGxcclxuICAgICAgPC9sYWJlbD5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8IS0tIE9wdGlvbnMgLS0+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZm9ybS1jaGVjayBweC0wIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMVwiXHJcbiAgICAgICpuZ0Zvcj1cImxldCBzIG9mIHRpY2tldFN0YXR1c09wdGlvbnNcIlxyXG4gICAgPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBcIlxyXG4gICAgICAgIFtpZF09XCIndGlja2V0U3RhdHVzLScgKyBzXCJcclxuICAgICAgICBbY2hlY2tlZF09XCJpc1RpY2tldFN0YXR1c1NlbGVjdGVkKHMpXCJcclxuICAgICAgICAoY2hhbmdlKT1cIm9uVGlja2V0U3RhdHVzQ2hhbmdlKCRldmVudCwgcylcIlxyXG4gICAgICAvPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRleHQtZGFyayBtcy0yXCIgW2Zvcl09XCIndGlja2V0U3RhdHVzLScgKyBzXCI+XHJcbiAgICAgICAge3sgcyB9fVxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuXHJcblxyXG4gICAgICA8IS0tIFJldmlld2VyIGFjY3VyYWN5IC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItM1wiICpuZ0lmPVwic2hvd1Jldmlld2VyQWNjdXJhY3lcIiAoY2xpY2spPVwiY2xvc2VBbGwoKVwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5SZXZpZXdlciBhY2N1cmFjeSAoJSkgYnkgY29uZGl0aW9uPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0yXCI+XHJcbiAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3Qgdy0xMDBcIiBmb3JtQ29udHJvbE5hbWU9XCJyZXZpZXdlckNvbmRpdGlvblwiPlxyXG4gICAgICAgICAgICA8b3B0aW9uIGRpc2FibGVkIFtuZ1ZhbHVlXT1cIm51bGxcIj5TZWxlY3Q8L29wdGlvbj5cclxuICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgYyBvZiBjb25kaXRpb25PcHRpb25zXCIgW25nVmFsdWVdPVwiYy52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgIHt7IGMubGFiZWwgfX1cclxuICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICA8L3NlbGVjdD5cclxuXHJcbiAgICAgICAgICA8IS0tIG9uZSBvciB0d28gaW5wdXRzIC0tPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQmV0d2VlbigncmV2aWV3ZXJDb25kaXRpb24nKTsgZWxzZSBzaW5nbGVSZXZpZXdlclwiPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBtaW49XCIxXCJcclxuICAgICAgICAgICAgICBtYXg9XCIxMDBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZXZpZXdlckZyb21cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRnJvbVwiIChpbnB1dCk9XCJsaW1pdFZhbHVlKCRldmVudCwgJ3Jldmlld2VyRnJvbScpXCIgLz5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgbWluPVwiMVwiXHJcbiAgICAgICAgICAgICAgbWF4PVwiMTAwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicmV2aWV3ZXJUb1wiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJUb1wiIChpbnB1dCk9XCJsaW1pdFZhbHVlKCRldmVudCwgJ3Jldmlld2VyVG8nKVwiIC8+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2luZ2xlUmV2aWV3ZXI+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIG1pbj1cIjFcIlxyXG4gICAgICAgICAgICAgIG1heD1cIjEwMFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJldmlld2VyRnJvbVwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIxIHRvIDEwMCVcIiAoaW5wdXQpPVwibGltaXRWYWx1ZSgkZXZlbnQsICdyZXZpZXdlckZyb20nKVwiIC8+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gQXBwcm92ZXIgYWNjdXJhY3kgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCIgKm5nSWY9XCJzaG93QXBwcm92ZXJBY2N1cmFjeVwiIChjbGljayk9XCJjbG9zZUFsbCgpXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkFwcHJvdmVyIGFjY3VyYWN5ICglKSBieSBjb25kaXRpb248L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTJcIj5cclxuICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCB3LTEwMFwiIGZvcm1Db250cm9sTmFtZT1cImFwcHJvdmVyQ29uZGl0aW9uXCI+XHJcbiAgICAgICAgICAgIDxvcHRpb24gZGlzYWJsZWQgW25nVmFsdWVdPVwibnVsbFwiPlNlbGVjdDwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjIG9mIGNvbmRpdGlvbk9wdGlvbnNcIiBbbmdWYWx1ZV09XCJjLnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAge3sgYy5sYWJlbCB9fVxyXG4gICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0JldHdlZW4oJ2FwcHJvdmVyQ29uZGl0aW9uJyk7IGVsc2Ugc2luZ2xlQXBwcm92ZXJcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgbWluPVwiMVwiXHJcbiAgICAgICAgICAgICAgbWF4PVwiMTAwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYXBwcm92ZXJGcm9tXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkZyb21cIiBcclxuICAgICAgICAgICAgICAoaW5wdXQpPVwibGltaXRWYWx1ZSgkZXZlbnQsICdhcHByb3ZlckZyb20nKVwiLz5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgbWluPVwiMVwiXHJcbiAgICAgICAgICAgICAgbWF4PVwiMTAwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYXBwcm92ZXJUb1wiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJUb1wiIChpbnB1dCk9XCJsaW1pdFZhbHVlKCRldmVudCwgJ2FwcHJvdmVyVG8nKVwiIC8+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2luZ2xlQXBwcm92ZXI+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIG1pbj1cIjFcIlxyXG4gICAgICAgICAgICAgIG1heD1cIjEwMFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFwcHJvdmVyRnJvbVwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCIxIHRvIDEwMCVcIiAoaW5wdXQpPVwibGltaXRWYWx1ZSgkZXZlbnQsICdhcHByb3ZlckZyb20nKVwiIC8+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gVGFuZ28gYWNjdXJhY3kgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCIgKm5nSWY9XCJzaG93VGFuZ29BY2N1cmFjeVwiIChjbGljayk9XCJjbG9zZUFsbCgpXCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlRhbmdvIGFjY3VyYWN5ICglKSBieSBjb25kaXRpb248L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTJcIj5cclxuICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCB3LTEwMFwiIGZvcm1Db250cm9sTmFtZT1cInRhbmdvQ29uZGl0aW9uXCI+XHJcbiAgICAgICAgICAgIDxvcHRpb24gZGlzYWJsZWQgW25nVmFsdWVdPVwibnVsbFwiPlNlbGVjdDwvb3B0aW9uPlxyXG4gICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjIG9mIGNvbmRpdGlvbk9wdGlvbnNcIiBbbmdWYWx1ZV09XCJjLnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAge3sgYy5sYWJlbCB9fVxyXG4gICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0JldHdlZW4oJ3RhbmdvQ29uZGl0aW9uJyk7IGVsc2Ugc2luZ2xlVGFuZ29cIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgbWluPVwiMVwiXHJcbiAgICAgICAgICAgICAgbWF4PVwiMTAwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGFuZ29Gcm9tXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkZyb21cIiAoaW5wdXQpPVwibGltaXRWYWx1ZSgkZXZlbnQsICd0YW5nb0Zyb20nKVwiIC8+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgIG1pbj1cIjFcIlxyXG4gICAgICAgICAgICAgIG1heD1cIjEwMFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRhbmdvVG9cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVG9cIiAoaW5wdXQpPVwibGltaXRWYWx1ZSgkZXZlbnQsICd0YW5nb1RvJylcIiAvPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3NpbmdsZVRhbmdvPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICBtaW49XCIxXCJcclxuICAgICAgICAgICAgICBtYXg9XCIxMDBcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0YW5nb0Zyb21cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiMSB0byAxMDAlXCIgKGlucHV0KT1cImxpbWl0VmFsdWUoJGV2ZW50LCAndGFuZ29Gcm9tJylcIiAvPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbjxkaXZcclxuICBjbGFzcz1cIm1iLTMgcG9zaXRpb24tcmVsYXRpdmVcIlxyXG4gICpuZ0lmPVwic2hvd1Jldmlld2VkQnlcIlxyXG4gXHJcbj5cclxuICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+UmV2aWV3ZWQgYnk8L2xhYmVsPlxyXG5cclxuICA8IS0tIFRyaWdnZXIgLyBkaXNwbGF5IC0tPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiYm9yZGVyIHJvdW5kZWQgcHgtMyBweS0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKCdyZXZpZXdlcicsICRldmVudClcIlxyXG4gID5cclxuICAgIDwhLS0gMCBzZWxlY3RlZCAtLT5cclxuICAgIDxzcGFuICpuZ0lmPVwiIXNlbGVjdGVkUmV2aWV3ZWRCeS5sZW5ndGhcIj5cclxuICAgICAgU2VsZWN0XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPCEtLSAxIHNlbGVjdGVkIC0tPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZFJldmlld2VkQnkubGVuZ3RoID09PSAxXCI+XHJcbiAgICAgIHt7IHNlbGVjdGVkUmV2aWV3ZWRCeVswXSB9fVxyXG4gICAgPC9zcGFuPlxyXG5cclxuICAgIDwhLS0gPjEgc2VsZWN0ZWQgLS0+XHJcbiAgICA8c3BhblxyXG4gICAgICAqbmdJZj1cInNlbGVjdGVkUmV2aWV3ZWRCeS5sZW5ndGggPiAxXCJcclxuICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgID5cclxuICAgICAgPHNwYW4+e3sgc2VsZWN0ZWRSZXZpZXdlZEJ5WzBdIH19PC9zcGFuPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIG1zLTJcIj5cclxuICAgICAgICAre3sgc2VsZWN0ZWRSZXZpZXdlZEJ5Lmxlbmd0aCAtIDEgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG5cclxuPGRpdlxyXG4gICpuZ0lmPVwiaXNEcm9wZG93bk9wZW4oJ3Jldmlld2VyJylcIlxyXG4gIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgdy0xMDAgYm9yZGVyIHJvdW5kZWQgYmctd2hpdGUgcC0xIG10LTFcIlxyXG4gIHN0eWxlPVwiei1pbmRleDogMTAwMDsgbWF4LWhlaWdodDogMjIwcHg7IG92ZXJmbG93LXk6IGF1dG87XCJcclxuICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuPlxyXG5cclxuICA8IS0tIPCflI0gU2VhcmNoIGJveCAtLT5cclxuICA8ZGl2IGNsYXNzPVwibWItMiBweC0wXCI+XHJcbiAgICA8aW5wdXRcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc21cIlxyXG4gICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBieSBlbWFpbFwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwicmV2aWV3ZXJTZWFyY2hUZXJtXCJcclxuICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXHJcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgLz5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBTZWxlY3QgQWxsIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIHB4LTAgbWItMiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICA8aW5wdXRcclxuICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcclxuICAgICAgaWQ9XCJyZXZpZXdlci1hbGxcIlxyXG4gICAgICBbY2hlY2tlZF09XCJhcmVBbGxSZXZpZXdlcnNTZWxlY3RlZCgpXCJcclxuICAgICAgKGNoYW5nZSk9XCJvblJldmlld2VyU2VsZWN0QWxsKCRldmVudClcIlxyXG4gICAgLz5cclxuICAgIDxsYWJlbCBmb3I9XCJyZXZpZXdlci1hbGxcIiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdGV4dC1kYXJrIG1zLTJcIj5cclxuICAgICAgU2VsZWN0IEFsbFxyXG4gICAgPC9sYWJlbD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBPcHRpb25zIOKAkyBub3cgdXNlIGdldHRlciBmaWx0ZXJlZFJldmlld2VyTGlzdCAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tY2hlY2sgbWItMSBweC0wIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgKm5nRm9yPVwibGV0IHUgb2YgZmlsdGVyZWRSZXZpZXdlckxpc3RcIlxyXG4gID5cclxuICAgIDxpbnB1dFxyXG4gICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICBbaWRdPVwiJ3Jldi0nICsgdS5lbWFpbFwiXHJcbiAgICAgIFtjaGVja2VkXT1cImlzUmV2aWV3ZXJTZWxlY3RlZCh1LmVtYWlsKVwiXHJcbiAgICAgIChjaGFuZ2UpPVwib25SZXZpZXdlckNoYW5nZSgkZXZlbnQsIHUuZW1haWwpXCJcclxuICAgIC8+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRleHQtZGFyayBtcy0yXCIgW2Zvcl09XCIncmV2LScgKyB1LmVtYWlsXCI+XHJcbiAgICAgIHt7IHUuZW1haWwgfX1cclxuICAgIDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuXHJcbjwvZGl2PlxyXG5cclxuXHJcbiAgICAgIDwhLS0gQXBwcm92ZWQgQnkgLS0+XHJcbjxkaXZcclxuICBjbGFzcz1cIm1iLTMgcG9zaXRpb24tcmVsYXRpdmVcIlxyXG4gICpuZ0lmPVwic2hvd0FwcHJvdmVkQnlcIlxyXG4gIFxyXG4+XHJcbiAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkFwcHJvdmVkIGJ5PC9sYWJlbD5cclxuXHJcbiAgPCEtLSBUcmlnZ2VyIC8gZGlzcGxheSAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImJvcmRlciByb3VuZGVkIHB4LTMgcHktMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bignYXBwcm92ZXInLCAkZXZlbnQpXCJcclxuICA+XHJcbiAgICA8IS0tIDAgc2VsZWN0ZWQgLS0+XHJcbiAgICA8c3BhbiAqbmdJZj1cIiFzZWxlY3RlZEFwcHJvdmVkQnkubGVuZ3RoXCI+XHJcbiAgICAgIFNlbGVjdFxyXG4gICAgPC9zcGFuPlxyXG5cclxuICAgIDwhLS0gMSBzZWxlY3RlZCAtLT5cclxuICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRBcHByb3ZlZEJ5Lmxlbmd0aCA9PT0gMVwiPlxyXG4gICAgICB7eyBzZWxlY3RlZEFwcHJvdmVkQnlbMF0gfX1cclxuICAgIDwvc3Bhbj5cclxuXHJcbiAgICA8IS0tID4xIHNlbGVjdGVkIC0tPlxyXG4gICAgPHNwYW5cclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZEFwcHJvdmVkQnkubGVuZ3RoID4gMVwiXHJcbiAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICA+XHJcbiAgICAgIDxzcGFuPnt7IHNlbGVjdGVkQXBwcm92ZWRCeVswXSB9fTwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBtcy0yXCI+XHJcbiAgICAgICAgK3t7IHNlbGVjdGVkQXBwcm92ZWRCeS5sZW5ndGggLSAxIH19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvc3Bhbj5cclxuXHJcbiAgPC9kaXY+XHJcbjwhLS0gRHJvcGRvd24gcGFuZWwgLS0+XHJcbjxkaXZcclxuICpuZ0lmPVwiaXNEcm9wZG93bk9wZW4oJ2FwcHJvdmVyJylcIlxyXG4gIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgdy0xMDAgYm9yZGVyIHJvdW5kZWQgYmctd2hpdGUgcC0xIG10LTFcIlxyXG4gIHN0eWxlPVwiei1pbmRleDogMTAwMDsgbWF4LWhlaWdodDogMjIwcHg7IG92ZXJmbG93LXk6IGF1dG87XCJcclxuICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuPlxyXG5cclxuICA8IS0tIPCflI0gU2VhcmNoIGJveCAtLT5cclxuICA8ZGl2IGNsYXNzPVwibWItMiBweC0wXCI+XHJcbiAgICA8aW5wdXRcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc21cIlxyXG4gICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBieSBlbWFpbFwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwiYXBwcm92ZXJTZWFyY2hUZXJtXCJcclxuICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcclxuICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAvPlxyXG4gICAgPCEtLSBlbWFpbC5pbmNsdWRlcyh0ZXJtKSB8fCBuYW1lLmluY2x1ZGVzKHRlcm0pIC0tPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIFNlbGVjdCBBbGwgLS0+XHJcbiAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgcHgtMCBtYi0yIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgIDxpbnB1dFxyXG4gICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICBpZD1cInJldmlld2VyLWFsbFwiXHJcbiAgICAgIFtjaGVja2VkXT1cImFyZUFsbEFwcHJvdmVyc1NlbGVjdGVkKClcIlxyXG4gICAgICAoY2hhbmdlKT1cIm9uQXBwcm92ZXJTZWxlY3RBbGwoJGV2ZW50KVwiXHJcbiAgICAvPlxyXG4gICAgPGxhYmVsIGZvcj1cInJldmlld2VyLWFsbFwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0ZXh0LWRhcmsgbXMtMlwiPlxyXG4gICAgICBTZWxlY3QgQWxsXHJcbiAgICA8L2xhYmVsPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8IS0tIE9wdGlvbnMgKHVzZSBmaWx0ZXJlZFJldmlld2VyTGlzdCBpbnN0ZWFkIG9mIHVzZXJMaXN0KSAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImZvcm0tY2hlY2sgbWItMSBweC0wIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgKm5nRm9yPVwibGV0IHUgb2YgZmlsdGVyZWRBcHByb3Zlckxpc3RcIlxyXG4gID5cclxuICAgIDxpbnB1dFxyXG4gICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxyXG4gICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICBbaWRdPVwiJ3Jldi0nICsgdS5lbWFpbFwiXHJcbiAgICAgIFtjaGVja2VkXT1cImlzQXBwcm92ZXJTZWxlY3RlZCh1LmVtYWlsKVwiXHJcbiAgICAgIChjaGFuZ2UpPVwib25BcHByb3ZlckNoYW5nZSgkZXZlbnQsIHUuZW1haWwpXCJcclxuICAgIC8+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRleHQtZGFyayBtcy0yXCIgW2Zvcl09XCIncmV2LScgKyB1LmVtYWlsXCI+XHJcbiAgICAgIHt7IHUuZW1haWwgfX1cclxuICAgIDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuICA8IS0tIERyb3Bkb3duIHBhbmVsIC0tPlxyXG5cclxuPC9kaXY+XHJcblxyXG5cclxuICAgICAgPCEtLSBGb290ZXIgYnV0dG9ucyAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiB3LTEwMCBtdC00XCI+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy01MCBtZS0xXCIgKGNsaWNrKT1cIm9uUmVzZXQoKVwiPlxyXG4gICAgICAgICAgUmVzZXRcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTUwIG1zLTFcIiAoY2xpY2spPVwib25BcHBseSgpXCI+XHJcbiAgICAgICAgICBBcHBseVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==