simpo-component-library 3.6.504 → 3.6.507

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.
@@ -416,8 +416,8 @@ export class AppointmentBookingComponent {
416
416
  this.appointmentPayload.startTime = this.selectedTime.value.slice(0, 5);
417
417
  this.appointmentPayload.bookingDate = `${yyyy}-${mm}-${dd}T00:00:00.000Z`;
418
418
  this.restService.paymentForAppointment(this.appointmentPayload).subscribe((res) => {
419
- this._eventService.cashFreeEvent.emit({ data: { orderSignature: res.orderSignature } });
420
419
  localStorage.setItem('appointmentPaymentId', res.pgOrderId);
420
+ this._eventService.cashFreeEvent.emit({ data: { orderSignature: res.orderSignature } });
421
421
  }, (error) => {
422
422
  this.loader = false;
423
423
  this.messageService.add({ severity: 'error', summary: 'Payment Failed', detail: error.message });
@@ -450,4 +450,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
450
450
  type: HostListener,
451
451
  args: ['document:click']
452
452
  }] } });
453
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwb2ludG1lbnQtYm9va2luZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2FwcG9pbnRtZW50LWZvcm0vYXBwb2ludG1lbnQtYm9va2luZy9hcHBvaW50bWVudC1ib29raW5nL2FwcG9pbnRtZW50LWJvb2tpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9hcHBvaW50bWVudC1mb3JtL2FwcG9pbnRtZW50LWJvb2tpbmcvYXBwb2ludG1lbnQtYm9va2luZy9hcHBvaW50bWVudC1ib29raW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUk3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDcEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0s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RSxvQkFBb0IsOERBQUUsV0FBVzs7NEZBSzVMLDJCQUEyQjtrQkFSdkMsU0FBUzsrQkFDRSwyQkFBMkIsY0FDekIsSUFBSSxXQUNQLENBQUMsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLFdBQVcsQ0FBQyxhQUM3TCxDQUFDLGNBQWMsQ0FBQzs4SkFhbEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQVFOLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLMUMsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDZGtEcmFnUGxhY2Vob2xkZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RyYWctZHJvcFwiO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlclwiO1xyXG5pbXBvcnQgeyBNYXROYXRpdmVEYXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IEJhbm5lckNvbnRlbnRNb2RlbCwgQmFubmVyU2VjdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vYXBwb2ludG1lbnQtZm9ybS5tb2RlbCc7XHJcbmltcG9ydCB7IEJhY2tncm91bmRNb2RlbCwgQmFubmVyU3R5bGVzTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xyXG5pbXBvcnQgeyBMZXR0ZXJzT25seURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZS9sZXR0ZXJzLW9ubHkuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTnVtYmVyc09ubHlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmUvbnVtYmVycy1vbmx5LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSBcInByaW1lbmcvdG9hc3RcIjtcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tYXBwb2ludG1lbnQtYm9va2luZycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ2RrRHJhZ1BsYWNlaG9sZGVyLCBDb21tb25Nb2R1bGUsIE1hdEljb24sIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0RGF0ZXBpY2tlck1vZHVsZSwgRm9ybXNNb2R1bGUsIE1hdE5hdGl2ZURhdGVNb2R1bGUsIE1hdElucHV0TW9kdWxlLCBMZXR0ZXJzT25seURpcmVjdGl2ZSwgTnVtYmVyc09ubHlEaXJlY3RpdmUsIFRvYXN0TW9kdWxlXSxcclxuICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcG9pbnRtZW50LWJvb2tpbmcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hcHBvaW50bWVudC1ib29raW5nLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBvaW50bWVudEJvb2tpbmdDb21wb25lbnQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2VcclxuICApIHtcclxuXHJcbiAgfVxyXG4gIEBJbnB1dCgpIGRhdGE/OiBCYW5uZXJTZWN0aW9uTW9kZWw7XHJcbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XHJcbiAgY29udGVudD86IEJhbm5lckNvbnRlbnRNb2RlbDtcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnRDb2xvcj86IEJhY2tncm91bmRNb2RlbDtcclxuICBzdHlsZXM/OiBCYW5uZXJTdHlsZXNNb2RlbDtcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZ2V0QWxsU2VydmljZXMoKTtcclxuICAgIHRoaXMuZ2V0U2NyZWVuU2l6ZSgpO1xyXG4gIH1cclxuICBzY3JlZW5XaWR0aDogbnVtYmVyID0gMDtcclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OiByZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIGdldFNjcmVlblNpemUoKSB7XHJcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJylcclxuICBjbG9zZU9uT3V0c2lkZUNsaWNrKCkge1xyXG4gICAgdGhpcy5zaG93Q2FsZW5kYXIgPSBmYWxzZTtcclxuICB9XHJcbiAgYWNjZXNzZWRUYWJzID0ge1xyXG4gICAgc2VydmljZUxpc3Rpbmc6IGZhbHNlLFxyXG4gICAgbG9jYXRpb25MaXN0aW5nOiBmYWxzZSxcclxuICAgIHN0YWZmTGlzdGluZzogZmFsc2VcclxuICB9XHJcblxyXG4gIGJ1c2luZXNzTmFtZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdiTmFtZScpID8/IFwiMjRLIEJhemFhclwiO1xyXG4gIGJ1c2luZXNzSWQ6IHN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdiSWQnKSA/PyBcIjFmMDk1MjE2LTdjMDAtNmNhYi05MDQ1LWZmOWM3MGUxYzY0MVwiO1xyXG4gIGFjdGl2ZUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkVGFiOiBzdHJpbmcgPSAnJztcclxuICBiYXJXaWR0aDogc3RyaW5nID0gJyc7XHJcbiAgc2hvd0NhbmNlbGxhdGlvblBvbGljeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dSZWR1Y2luZ1BvbGljeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkU2VydmljZTogYW55ID0ge307XHJcbiAgc2VsZWN0ZWRMb2NhdGlvbjogYW55O1xyXG4gIE9iamVjdCA9IE9iamVjdDtcclxuICBzaG93Q2FsZW5kYXIgPSBmYWxzZTtcclxuICBzZWxlY3RlZERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcclxuICBzZWxlY3RlZERhdGVTdHIgPSAnJztcclxuICB1c2VyRGV0YWlscyA9IHtcclxuICAgIG5hbWU6ICcnLFxyXG4gICAgZW1haWw6ICcnLFxyXG4gICAgbW9iaWxlTnVtYmVyOiAnJ1xyXG4gIH1cclxuICBkYXRlRmlsdGVyID0gKGQ6IERhdGUgfCBudWxsKTogYm9vbGVhbiA9PiB7XHJcbiAgICBjb25zdCBkYXRlID0gKGQgfHwgbmV3IERhdGUoKSk7XHJcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICB0b2RheS5zZXRIb3VycygwLCAwLCAwLCAwKTtcclxuICAgIHJldHVybiBkYXRlLmdldFRpbWUoKSA+PSB0b2RheS5nZXRUaW1lKCk7XHJcbiAgfVxyXG4gIHRvZ2dsZUNhbGVuZGFyKGV2ZW50PzogRXZlbnQpIHtcclxuICAgIGlmIChldmVudCkgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnNob3dDYWxlbmRhciA9ICF0aGlzLnNob3dDYWxlbmRhcjtcclxuICB9XHJcblxyXG4gIG9uRGF0ZVNlbGVjdGVkKGRhdGU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFRpbWUgPSB7fTtcclxuICAgIHRoaXMuYWN0aXZlQnV0dG9uID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IGRhdGU7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZVN0ciA9IHRoaXMuZm9ybWF0RGF0ZShkYXRlKTtcclxuICAgIHRoaXMuc2hvd0NhbGVuZGFyID0gZmFsc2U7XHJcbiAgICB0aGlzLmdldEF2YWlsYWJsZVNsb3RzKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgZm9ybWF0RGF0ZShkOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGRkID0gU3RyaW5nKGQuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgbW0gPSBTdHJpbmcoZC5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGNvbnN0IHl5eXkgPSBkLmdldEZ1bGxZZWFyKCk7XHJcbiAgICByZXR1cm4gYCR7ZGR9LSR7bW19LSR7eXl5eX1gO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0U2VydmljZShzZXJ2aWNlOiBhbnkpIHtcclxuICAgIHNlcnZpY2Uuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTZXJ2aWNlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRTZXJ2aWNlLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkU2VydmljZSA9IHNlcnZpY2VcclxuICAgIHRoaXMuYWN0aXZlQnV0dG9uID0gdGhpcy5zZWxlY3RlZFNlcnZpY2UgPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG4gIHNlbGVjdExvY2F0aW9uKGxvY2F0aW9uOiBhbnkpIHtcclxuICAgIGxvY2F0aW9uLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkTG9jYXRpb24pIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZExvY2F0aW9uLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjdGl2ZUJ1dHRvbiA9IHRydWU7XHJcbiAgICB0aGlzLnNlbGVjdGVkTG9jYXRpb24gPSBsb2NhdGlvbjtcclxuICB9XHJcbiAgc2VsZWN0ZWRTdGFmZjogYW55O1xyXG4gIHNlbGVjdFN0YWZmKHN0YWZmOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRTdGFmZiA9IHN0YWZmO1xyXG4gICAgdGhpcy5hY3RpdmVCdXR0b24gPSB0cnVlO1xyXG4gIH1cclxuICBuZXh0U3RlcCgpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkVGFiID09PSAnc2VydmljZUxpc3RpbmcnKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlQnV0dG9uID0gdGhpcy5zZWxlY3RlZExvY2F0aW9uID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICB0aGlzLmFjY2Vzc2VkVGFicy5zZXJ2aWNlTGlzdGluZyA9IHRydWU7XHJcbiAgICAgIGlmICghdGhpcy5hY3RpdmVCdXR0b24pIHtcclxuICAgICAgICB0aGlzLmdldEFsbExvY2F0aW9ucygpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLmFjY2Vzc2VkVGFicy5sb2NhdGlvbkxpc3RpbmcpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSAnbG9jYXRpb25MaXN0aW5nJztcclxuICAgICAgICAgIHRoaXMuYmFyV2lkdGggPSAnMjkuMjgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLmFjY2Vzc2VkVGFicy5zdGFmZkxpc3RpbmcpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSAnc3RhZmZMaXN0aW5nJztcclxuICAgICAgICAgIHRoaXMuYmFyV2lkdGggPSAnNDMuNTcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSAnZGF0ZVNlbGVjdGlvbic7XHJcbiAgICAgICAgICB0aGlzLmJhcldpZHRoID0gJzU4LjU3JztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRUYWIgPT09ICdsb2NhdGlvbkxpc3RpbmcnKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlQnV0dG9uID0gdGhpcy5zZWxlY3RlZFN0YWZmID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICB0aGlzLmFjY2Vzc2VkVGFicy5sb2NhdGlvbkxpc3RpbmcgPSB0cnVlO1xyXG4gICAgICBpZiAoIXRoaXMuYWN0aXZlQnV0dG9uKSB7XHJcbiAgICAgICAgdGhpcy5nZXRBbGxTdGFmZigpO1xyXG5cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5hY2Nlc3NlZFRhYnMuc3RhZmZMaXN0aW5nKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ3N0YWZmTGlzdGluZyc7XHJcbiAgICAgICAgICB0aGlzLmJhcldpZHRoID0gJzQzLjU3JztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ2RhdGVTZWxlY3Rpb24nO1xyXG4gICAgICAgICAgdGhpcy5iYXJXaWR0aCA9ICc1OC41Nyc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnNlbGVjdGVkVGFiID09PSAnc3RhZmZMaXN0aW5nJykge1xyXG4gICAgICB0aGlzLmFjY2Vzc2VkVGFicy5zdGFmZkxpc3RpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ2RhdGVTZWxlY3Rpb24nO1xyXG4gICAgICB0aGlzLmJhcldpZHRoID0gJzU4LjU3JztcclxuICAgICAgaWYgKCF0aGlzLmFjdGl2ZUJ1dHRvbilcclxuICAgICAgICB0aGlzLmdldEF2YWlsYWJsZVNsb3RzKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnNlbGVjdGVkVGFiID09PSAnZGF0ZVNlbGVjdGlvbicpIHtcclxuICAgICAgdGhpcy5hY3RpdmVCdXR0b24gPSB0aGlzLmFwcG9pbnRtZW50UGF5bG9hZC5jdXN0b21lckRldGFpbC5uYW1lICYmIHRoaXMuYXBwb2ludG1lbnRQYXlsb2FkLmN1c3RvbWVyRGV0YWlsLmVtYWlsICYmIHRoaXMuYXBwb2ludG1lbnRQYXlsb2FkLmN1c3RvbWVyRGV0YWlsLnBob25lTnVtYmVyLmxlbmd0aCA9PT0gMTAgPyB0cnVlIDogZmFsc2VcclxuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdjb250YWN0RGV0YWlscyc7XHJcbiAgICAgIHRoaXMuYmFyV2lkdGggPSAnNzAuNTcnXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnNlbGVjdGVkVGFiID09PSAnY29udGFjdERldGFpbHMnKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tSZXF1aXJlZFZhbHVlcygpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ3BheW1lbnRUYWInO1xyXG4gICAgICB0aGlzLmJhcldpZHRoID0gJzg1LjU3J1xyXG4gICAgfVxyXG4gIH1cclxuICBwcmV2aW91c1N0ZXAoKSB7XHJcbiAgICB0aGlzLmFjdGl2ZUJ1dHRvbiA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFRhYiA9PT0gJ2xvY2F0aW9uTGlzdGluZycpIHtcclxuICAgICAgaWYgKHRoaXMuYWNjZXNzZWRUYWJzLnNlcnZpY2VMaXN0aW5nKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdzZXJ2aWNlTGlzdGluZyc7XHJcbiAgICAgICAgdGhpcy5iYXJXaWR0aCA9ICcxNC4yOCc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRUYWIgPT09ICdzdGFmZkxpc3RpbmcnKSB7XHJcbiAgICAgIGlmICh0aGlzLmFjY2Vzc2VkVGFicy5sb2NhdGlvbkxpc3RpbmcpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ2xvY2F0aW9uTGlzdGluZyc7XHJcbiAgICAgICAgdGhpcy5iYXJXaWR0aCA9ICcyOS4yOCc7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5hY2Nlc3NlZFRhYnMuc2VydmljZUxpc3RpbmcpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ3NlcnZpY2VMaXN0aW5nJztcclxuICAgICAgICB0aGlzLmJhcldpZHRoID0gJzE0LjI4JztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5zZWxlY3RlZFRhYiA9PT0gJ2RhdGVTZWxlY3Rpb24nKSB7XHJcbiAgICAgIGlmICh0aGlzLmFjY2Vzc2VkVGFicy5zdGFmZkxpc3RpbmcpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ3N0YWZmTGlzdGluZyc7XHJcbiAgICAgICAgdGhpcy5iYXJXaWR0aCA9ICc0My41Nyc7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5hY2Nlc3NlZFRhYnMubG9jYXRpb25MaXN0aW5nKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdsb2NhdGlvbkxpc3RpbmcnO1xyXG4gICAgICAgIHRoaXMuYmFyV2lkdGggPSAnMjkuMjgnO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHRoaXMuYWNjZXNzZWRUYWJzLnNlcnZpY2VMaXN0aW5nKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdzZXJ2aWNlTGlzdGluZyc7XHJcbiAgICAgICAgdGhpcy5iYXJXaWR0aCA9ICcxNC4yOCc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRUYWIgPT09ICdjb250YWN0RGV0YWlscycpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdkYXRlU2VsZWN0aW9uJztcclxuICAgICAgdGhpcy5iYXJXaWR0aCA9ICc1OC41NydcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRUYWIgPT09ICdwYXltZW50VGFiJykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ2NvbnRhY3REZXRhaWxzJztcclxuICAgICAgdGhpcy5iYXJXaWR0aCA9ICc3MC41Nyc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlcnZpY2VEYXRhOiBhbnlbXSA9IFtdO1xyXG4gIGdldEFsbFNlcnZpY2VzKCkge1xyXG4gICAgbGV0IHNlcnZpY2VQYXlsb2FkOiBhbnkgPSB7XHJcbiAgICAgIGJ1c2luZXNzSWQ6IHRoaXMuYnVzaW5lc3NJZCA/PyBcIlwiLFxyXG4gICAgICBwYWdlTm86IDAsXHJcbiAgICAgIHNpemU6IDEwMFxyXG4gICAgfVxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRBbGxBcHBvaW50bWVudFNlcnZpY2Uoc2VydmljZVBheWxvYWQpLnN1YnNjcmliZShcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcy5jb250ZW50Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuc2VydmljZURhdGEgPSByZXMuY29udGVudC5maWx0ZXIoKHNlcnZpY2U6IGFueSkgPT4gc2VydmljZS5hY3RpdmUgPT09IHRydWUpO1xyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlRGF0YS5mb3JFYWNoKHNlcnZpY2UgPT4gc2VydmljZS5zZWxlY3RlZCA9IGZhbHNlKTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuc2VydmljZURhdGEpXHJcbiAgICAgICAgICBpZiAodGhpcy5zZXJ2aWNlRGF0YS5sZW5ndGggPT09IDEgJiYgIXRoaXMuYWN0aXZlQnV0dG9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTZXJ2aWNlID0gdGhpcy5zZXJ2aWNlRGF0YVswXTtcclxuICAgICAgICAgICAgdGhpcy5nZXRBbGxMb2NhdGlvbnMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ3NlcnZpY2VMaXN0aW5nJztcclxuICAgICAgICAgICAgdGhpcy5iYXJXaWR0aCA9ICcxNC4yOCc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAvLyBIYW5kbGUgZXJyb3JzIGdyYWNlZnVsbHlcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgbG9jYXRpb25EYXRhOiBhbnlbXSA9IFtdO1xyXG4gIGdldEFsbExvY2F0aW9ucygpIHtcclxuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMubG9jYXRpb25EYXRhID0gW107XHJcbiAgICBsZXQgcGF5bG9hZCA9IHsgYnVzaW5lc3NJZDogdGhpcy5idXNpbmVzc0lkID8/IFwiXCIgfVxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRBbGxTdG9yZXMocGF5bG9hZCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzLmRhdGEuZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBsZXQgbG9jYXRpb25zID0gcmVzLmRhdGEuZGF0YS5maWx0ZXIoKHN0b3JlOiBhbnkpID0+IHsgcmV0dXJuIHN0b3JlLnN0YXR1cyA9PT0gJ0FDVElWRScgfSk7XHJcbiAgICAgICAgICBsb2NhdGlvbnMuZm9yRWFjaCgobG9jYXRpb246IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFNlcnZpY2Uuc3RvcmVJZHMuaW5jbHVkZXMobG9jYXRpb24uaWQpKSB7XHJcbiAgICAgICAgICAgICAgbG9jYXRpb24uc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmxvY2F0aW9uRGF0YS5wdXNoKGxvY2F0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIGlmICh0aGlzLmxvY2F0aW9uRGF0YS5sZW5ndGggPT09IDEgJiYgIXRoaXMuYWN0aXZlQnV0dG9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbiA9IHRoaXMubG9jYXRpb25EYXRhWzBdO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmdldEFsbFN0YWZmKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdsb2NhdGlvbkxpc3RpbmcnO1xyXG4gICAgICAgICAgICB0aGlzLmJhcldpZHRoID0gJzI5LjI4JztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIC8vIEhhbmRsZSBlcnJvcnMgZ3JhY2VmdWxseVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBzdGFmZlBheWxvYWQ6IGFueSA9IHtcclxuICAgIHNlcnZpY2VJZDogJycsXHJcbiAgICBzdG9yZUlkOiAnJyxcclxuICAgIGJ1c2luZXNzSWQ6ICcnXHJcbiAgfVxyXG4gIHN0YWZmRGF0YTogYW55W10gPSBbXTtcclxuICBnZXRBbGxTdGFmZigpIHtcclxuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMuc3RhZmZQYXlsb2FkLnN0b3JlSWQgPSB0aGlzLnNlbGVjdGVkTG9jYXRpb24/LmlkID8/IFwiXCI7XHJcbiAgICB0aGlzLnN0YWZmUGF5bG9hZC5zZXJ2aWNlSWQgPSB0aGlzLnNlbGVjdGVkU2VydmljZT8uc2VydmljZUlkID8gdGhpcy5zZWxlY3RlZFNlcnZpY2Uuc2VydmljZUlkIDogJyc7XHJcbiAgICB0aGlzLnN0YWZmUGF5bG9hZC5idXNpbmVzc0lkID0gdGhpcy5idXNpbmVzc0lkID8/IFwiXCI7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldEFsbFN0YWZmKHRoaXMuc3RhZmZQYXlsb2FkKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5zdGFmZkRhdGEgPSByZXMuZmlsdGVyKChzdGFmZjogYW55KSA9PiBzdGFmZi5hY3RpdmUgPT09IHRydWUpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuc3RhZmZEYXRhLmxlbmd0aCA9PT0gMSAmJiAhdGhpcy5hY3RpdmVCdXR0b24pIHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdkYXRlU2VsZWN0aW9uJztcclxuICAgICAgICAgICAgdGhpcy5iYXJXaWR0aCA9ICc1OC41Nyc7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTdGFmZiA9IHRoaXMuc3RhZmZEYXRhWzBdO1xyXG4gICAgICAgICAgICB0aGlzLmdldEF2YWlsYWJsZVNsb3RzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICh0aGlzLnN0YWZmRGF0YS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSAnc3RhZmZMaXN0aW5nJztcclxuICAgICAgICAgICAgdGhpcy5iYXJXaWR0aCA9ICc0My41Nyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAvLyBIYW5kbGUgZXJyb3JzIGdyYWNlZnVsbHlcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgY29udmVydFRvMjRIb3VyKHRpbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBbaG91ck1pbiwgbW9kaWZpZXJSYXddID0gdGltZS5zcGxpdCgnICcpO1xyXG4gICAgY29uc3QgbW9kaWZpZXIgPSBtb2RpZmllclJhdy50b1VwcGVyQ2FzZSgpOyAvLyBcIkFNXCIgb3IgXCJQTVwiXHJcbiAgICBsZXQgW2hvdXJzLCBtaW51dGVzXSA9IGhvdXJNaW4uc3BsaXQoJzonKS5tYXAoTnVtYmVyKTtcclxuXHJcbiAgICBpZiAobW9kaWZpZXIgPT09ICdQTScgJiYgaG91cnMgPCAxMikge1xyXG4gICAgICBob3VycyArPSAxMjtcclxuICAgIH1cclxuICAgIGlmIChtb2RpZmllciA9PT0gJ0FNJyAmJiBob3VycyA9PT0gMTIpIHtcclxuICAgICAgaG91cnMgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGhoID0gaG91cnMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgbW0gPSBtaW51dGVzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIHJldHVybiBgJHtoaH06JHttbX0gJHttb2RpZmllcn1gO1xyXG4gIH1cclxuICBzbG90c1BheWxvYWQ6IGFueSA9IHtcclxuICAgIHN0b3JlSWQ6IFwiXCIsXHJcbiAgICBzZXJ2aWNlSWQ6IFwiXCIsXHJcbiAgICBidXNpbmVzc0lkOiBcIlwiLFxyXG4gICAgYm9va2luZ0RhdGU6IFwiXCJcclxuICB9XHJcbiAgbG9jYXRpb25UaW1pbmc6IGFueVtdID0gW107XHJcbiAgbG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZ2V0QXZhaWxhYmxlU2xvdHMoKSB7XHJcbiAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2NhdGlvblRpbWluZyA9IFtdO1xyXG4gICAgdGhpcy5zbG90c1BheWxvYWQuc3RvcmVJZCA9IHRoaXMuc2VsZWN0ZWRMb2NhdGlvbj8uaWQgPz8gXCJcIjtcclxuICAgIHRoaXMuc2xvdHNQYXlsb2FkLnNlcnZpY2VJZCA9IHRoaXMuc2VsZWN0ZWRTZXJ2aWNlPy5zZXJ2aWNlSWQgPyB0aGlzLnNlbGVjdGVkU2VydmljZS5zZXJ2aWNlSWQgOiAnJztcclxuICAgIHRoaXMuc2xvdHNQYXlsb2FkLmJ1c2luZXNzSWQgPSB0aGlzLmJ1c2luZXNzSWQgPz8gXCJcIjtcclxuICAgIGNvbnN0IGRhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZSA/PyBuZXcgRGF0ZSgpO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVTdHIgPSB0aGlzLmZvcm1hdERhdGUoZGF0ZSk7XHJcbiAgICBjb25zdCB5eXl5ID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgbW0gPSBTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGNvbnN0IGRkID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG5cclxuICAgIHRoaXMuc2xvdHNQYXlsb2FkLmJvb2tpbmdEYXRlID0gYCR7eXl5eX0tJHttbX0tJHtkZH1UMDA6MDA6MDAuMDAwWmA7XHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTdGFmZilcclxuICAgICAgdGhpcy5zbG90c1BheWxvYWQuc3RhZmZJZCA9IHRoaXMuc2VsZWN0ZWRTdGFmZi5zdGFmZklkO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRCb29raW5nU2xvdHModGhpcy5zbG90c1BheWxvYWQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgcmVzLmZvckVhY2goKHRpbWU6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9jYXRpb25UaW1pbmcucHVzaCh7IHNlbGVjdGVkOiBmYWxzZSwgdmFsdWU6IHRoaXMuY29udmVydFRvMjRIb3VyKHRpbWUpIH0pO1xyXG4gICAgICB9KVxyXG4gICAgfSlcclxuICB9XHJcbiAgc2VsZWN0ZWRUaW1lOiBhbnlcclxuICBzZWxlY3RUaW1lU2xvdCh0aW1lOiBhbnkpIHtcclxuICAgIHRpbWUuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRUaW1lKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUaW1lLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkVGltZSA9IHRpbWU7XHJcbiAgICB0aGlzLmFjdGl2ZUJ1dHRvbiA9IHRydWU7XHJcbiAgfVxyXG4gIGNoZWNrUmVxdWlyZWRWYWx1ZXMoKSB7XHJcbiAgICBpZiAodGhpcy5hcHBvaW50bWVudFBheWxvYWQuY3VzdG9tZXJEZXRhaWwubmFtZSAmJiB0aGlzLmFwcG9pbnRtZW50UGF5bG9hZC5jdXN0b21lckRldGFpbC5lbWFpbCAmJiB0aGlzLmFwcG9pbnRtZW50UGF5bG9hZC5jdXN0b21lckRldGFpbC5waG9uZU51bWJlci5sZW5ndGggPT09IDEwKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlQnV0dG9uID0gdHJ1ZTtcclxuICAgICAgLy8gY29uc29sZS5sb2codGhpcy5zZWxlY3RlZFNlcnZpY2UsIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbiwgdGhpcy5zZWxlY3RlZFN0YWZmLCB0aGlzLnNlbGVjdGVkRGF0ZSwgdGhpcy5zZWxlY3RlZFRpbWUsIHRoaXMudXNlckRldGFpbHMpXHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5hY3RpdmVCdXR0b24gPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgYXBwb2ludG1lbnRQYXlsb2FkOiBhbnkgPSB7XHJcbiAgICBzdGFmZkRldGFpbDoge1xyXG4gICAgICBpZDogJycsXHJcbiAgICAgIG5hbWU6ICcnXHJcbiAgICB9LFxyXG4gICAgYm9va2luZ0RhdGU6ICcnLFxyXG4gICAgc3RhcnRUaW1lOiAnJyxcclxuICAgIGN1c3RvbWVyRGV0YWlsOiB7XHJcbiAgICAgIG5hbWU6ICcnLFxyXG4gICAgICBwaG9uZU51bWJlcjogJycsXHJcbiAgICAgIGVtYWlsOiAnJ1xyXG4gICAgfSxcclxuICAgIHNlcnZpY2VEZXRhaWw6IHtcclxuICAgICAgaWQ6ICcnLFxyXG4gICAgICBuYW1lOiAnJ1xyXG4gICAgfSxcclxuICAgIHN0b3JlSWQ6ICcnLFxyXG4gICAgYnVzaW5lc3NJZDogdGhpcy5idXNpbmVzc0lkLFxyXG4gICAgYnVzaW5lc3NOYW1lOiB0aGlzLmJ1c2luZXNzTmFtZVxyXG4gIH1cclxuICBjaGVja1BheW1lbnQoKSB7XHJcbiAgICBjb25zdCByZXF1ZXN0X2Zvcm0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIlJFUVVFU1RfRlJPTVwiKTtcclxuICAgIGlmIChyZXF1ZXN0X2Zvcm0gPT09ICdFQ09NTUVSQ0UnKSB7XHJcbiAgICAgIHRoaXMuY3JlYXRlQXBwb2ludG1lbnQoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFNlcnZpY2U/LmRlcG9zaXRBbW91bnQ/LmRlcG9zaXRSZXF1aXJlZCkge1xyXG4gICAgICAgIHRoaXMucGF5bWVudEJvb2tpbmdBcHBvaW50bWVudCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlQXBwb2ludG1lbnQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gdGhpcy5jcmVhdGVBcHBvaW50bWVudCgpO1xyXG4gIH1cclxuICBhcGlTdGF0dXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjcmVhdGVBcHBvaW50bWVudCgpIHtcclxuICAgIGNvbnN0IGRhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZSA/PyBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgeXl5eSA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IG1tID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICBjb25zdCBkZCA9IFN0cmluZyhkYXRlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIHRoaXMuYXBwb2ludG1lbnRQYXlsb2FkLnN0YWZmRGV0YWlsLmlkID0gdGhpcy5zZWxlY3RlZFN0YWZmLnN0YWZmSWQ7XHJcbiAgICB0aGlzLmFwcG9pbnRtZW50UGF5bG9hZC5zdGFmZkRldGFpbC5uYW1lID0gdGhpcy5zZWxlY3RlZFN0YWZmLnN0YWZmTmFtZTtcclxuICAgIHRoaXMuYXBwb2ludG1lbnRQYXlsb2FkLnN0b3JlSWQgPSB0aGlzLnNlbGVjdGVkTG9jYXRpb24uaWQ7XHJcbiAgICB0aGlzLmFwcG9pbnRtZW50UGF5bG9hZC5zZXJ2aWNlRGV0YWlsLmlkID0gdGhpcy5zZWxlY3RlZFNlcnZpY2Uuc2VydmljZUlkO1xyXG4gICAgdGhpcy5hcHBvaW50bWVudFBheWxvYWQuc2VydmljZURldGFpbC5uYW1lID0gdGhpcy5zZWxlY3RlZFNlcnZpY2UubmFtZTtcclxuICAgIHRoaXMuYXBwb2ludG1lbnRQYXlsb2FkLnN0YXJ0VGltZSA9IHRoaXMuc2VsZWN0ZWRUaW1lLnZhbHVlLnNsaWNlKDAsIDUpO1xyXG4gICAgdGhpcy5hcHBvaW50bWVudFBheWxvYWQuYm9va2luZ0RhdGUgPSBgJHt5eXl5fS0ke21tfS0ke2RkfVQwMDowMDowMC4wMDBaYDtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuYm9va0FwcG9pbnRtZW50VjIodGhpcy5hcHBvaW50bWVudFBheWxvYWQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdzdGF0dXNUZW1wbGF0ZSc7XHJcbiAgICAgIHRoaXMuYmFyV2lkdGggPSAnMTAwJztcclxuICAgICAgdGhpcy5hcGlTdGF0dXMgPSB0cnVlO1xyXG4gICAgfSxcclxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmFwaVN0YXR1cyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG4gIHBheW1lbnRCb29raW5nQXBwb2ludG1lbnQoKSB7XHJcbiAgICBjb25zdCBkYXRlID0gdGhpcy5zZWxlY3RlZERhdGUgPz8gbmV3IERhdGUoKTtcclxuICAgIGNvbnN0IHl5eXkgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICBjb25zdCBtbSA9IFN0cmluZyhkYXRlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgZGQgPSBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICB0aGlzLmFwcG9pbnRtZW50UGF5bG9hZC5zdGFmZkRldGFpbC5pZCA9IHRoaXMuc2VsZWN0ZWRTdGFmZi5zdGFmZklkO1xyXG4gICAgdGhpcy5hcHBvaW50bWVudFBheWxvYWQuc3RhZmZEZXRhaWwubmFtZSA9IHRoaXMuc2VsZWN0ZWRTdGFmZi5zdGFmZk5hbWU7XHJcbiAgICB0aGlzLmFwcG9pbnRtZW50UGF5bG9hZC5zdG9yZUlkID0gdGhpcy5zZWxlY3RlZExvY2F0aW9uLmlkO1xyXG4gICAgdGhpcy5hcHBvaW50bWVudFBheWxvYWQuc2VydmljZURldGFpbC5pZCA9IHRoaXMuc2VsZWN0ZWRTZXJ2aWNlLnNlcnZpY2VJZDtcclxuICAgIHRoaXMuYXBwb2ludG1lbnRQYXlsb2FkLnNlcnZpY2VEZXRhaWwubmFtZSA9IHRoaXMuc2VsZWN0ZWRTZXJ2aWNlLm5hbWU7XHJcbiAgICB0aGlzLmFwcG9pbnRtZW50UGF5bG9hZC5zdGFydFRpbWUgPSB0aGlzLnNlbGVjdGVkVGltZS52YWx1ZS5zbGljZSgwLCA1KTtcclxuICAgIHRoaXMuYXBwb2ludG1lbnRQYXlsb2FkLmJvb2tpbmdEYXRlID0gYCR7eXl5eX0tJHttbX0tJHtkZH1UMDA6MDA6MDAuMDAwWmA7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnBheW1lbnRGb3JBcHBvaW50bWVudCh0aGlzLmFwcG9pbnRtZW50UGF5bG9hZCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLl9ldmVudFNlcnZpY2UuY2FzaEZyZWVFdmVudC5lbWl0KHsgZGF0YTogeyBvcmRlclNpZ25hdHVyZTogcmVzLm9yZGVyU2lnbmF0dXJlIH0gfSk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2FwcG9pbnRtZW50UGF5bWVudElkJywgcmVzLnBnT3JkZXJJZCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnUGF5bWVudCBGYWlsZWQnLCBkZXRhaWw6IGVycm9yLm1lc3NhZ2UgfSk7XHJcbiAgICAgIH1cclxuICAgIClcclxuXHJcbiAgfVxyXG4gIGdvQmFjaygpIHtcclxuICB9XHJcbn1cclxuIiwiPHAtdG9hc3QgcG9zaXRpb249XCJib3R0b20tcmlnaHRcIiBbYmFzZVpJbmRleF09XCIxMDAwMDAwMDAwMFwiIFthdXRvWkluZGV4XT1cInRydWVcIlxyXG4gICAgW3Nob3dUcmFuc2Zvcm1PcHRpb25zXT1cInNjcmVlbldpZHRoIDwgNDc1ID8gJ3RyYW5zbGF0ZVkoLTEwMCUpJyA6ICcnXCI+PC9wLXRvYXN0PlxyXG48c2VjdGlvbiBjbGFzcz1cIm1haW5fc2VjdGlvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1haW5faGVhZGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYWNrLWJ0biBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgZ2FwLTIgbWItM1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29CYWNrKClcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5rZXlib2FyZF9iYWNrc3BhY2U8L21hdC1pY29uPjxzcGFuICpuZ0lmPVwic2NyZWVuV2lkdGggPiA0NzVcIj5CYWNrIHRvIE15IEJvb2tpbmdzPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGgxPkJvb2sgTmV3IEFwcG9pbnRtZW50PC9oMT5cclxuICAgICAgICAgICAgICAgIDxwPnt7YnVzaW5lc3NOYW1lID8/IFwiTi9BXCIgfX08L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYmFyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1maWxsXCIgW3N0eWxlLndpZHRoXT1cImJhcldpZHRoICsgJyUnXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYWluX2JvZHkgdy0xMDAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj48bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRUYWIgPT09ICdzZXJ2aWNlTGlzdGluZydcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlcnZpY2VMaXN0aW5nXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAnbG9jYXRpb25MaXN0aW5nJ1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9jYXRpb25MaXN0aW5nXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAnc3RhZmZMaXN0aW5nJ1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RhZmZMaXN0aW5nXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAnZGF0ZVNlbGVjdGlvbidcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGVTZWxlY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRUYWI9PT0nY29udGFjdERldGFpbHMnXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250YWN0RGV0YWlsc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZFRhYj09PSdwYXltZW50VGFiJ1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGF5bWVudFRhYlwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZFRhYj09PSdzdGF0dXNUZW1wbGF0ZSdcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYWluX2Zvb3RlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIiAqbmdJZj1cInNlbGVjdGVkVGFiIT09J3N0YXR1c1RlbXBsYXRlJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXItYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhY2stZm9vdGVyLWJ0biBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJwcmV2aW91c1N0ZXAoKVwiPkJhY2s8L3NwYW4+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb250aW51ZS1idG5cIiBbZGlzYWJsZWRdPVwiIWFjdGl2ZUJ1dHRvblwiIChjbGljayk9XCJuZXh0U3RlcCgpXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRUYWIhPSdwYXltZW50VGFiJ1wiPnt7IWxvYWRlciA/ICdDb250aW51ZScgOiAnTG9hZGluZy4uLid9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY29tcGxldGVfYm9va2luZyBjdXJzb3ItcG9pbnRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWV2ZW5seSBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFRhYj09PSdwYXltZW50VGFiJ1wiIChjbGljayk9XCJjaGVja1BheW1lbnQoKVwiPjxpbWdcclxuICAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzMwNDAxMmMxNzUzNDQwMDg3OTk2QmFja2dyb3VuZC5wbmdcIj5Db21wbGV0ZVxyXG4gICAgICAgICAgICAgICAgQm9va2luZzwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuPG5nLXRlbXBsYXRlICNzZXJ2aWNlTGlzdGluZz5cclxuICAgIDxkaXYgY2xhc3M9XCJ3LTYwIHNlcnZpY2Vfc2VjdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLXNlbGVjdGlvblwiPlxyXG4gICAgICAgICAgICA8aDI+U2VsZWN0IGEgU2VydmljZTwvaDI+XHJcbiAgICAgICAgICAgIDxwPkNob29zZSB0aGUgc2VydmljZSB5b3UnZCBsaWtlIHRvIGJvb2s8L3A+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZXMtZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VydmljZSBvZiBzZXJ2aWNlRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIiAoY2xpY2spPVwic2VsZWN0U2VydmljZShzZXJ2aWNlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3NlcnZpY2UtY2FyZC1zZWxlY3RlZCcgOiBzZXJ2aWNlPy5zZWxlY3RlZCwgJ3NlcnZpY2UtY2FyZCc6ICFzZXJ2aWNlPy5zZWxlY3RlZCB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgc2VydmljZS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWljb25cIj48bWF0LWljb24+cGVyc29uX291dGxpbmU8L21hdC1pY29uPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLXRpdGxlXCI+e3tzZXJ2aWNlPy5uYW1lID8gc2VydmljZT8ubmFtZSA6ICdOL0EnfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1jYXRlZ29yeVwiPldlbGxuZXNzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtcHJpY2VcIj7igrl7e3NlcnZpY2U/LnByaWNlRGV0YWlscz8ucHJpY2UgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlPy5wcmljZURldGFpbHM/LnByaWNlIDogJ04vQScgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1kdXJhdGlvblwiPnt7c2VydmljZT8uZHVyYXRpb24gPyBzZXJ2aWNlPy5kdXJhdGlvbiA6ICdOL0EnfX0gbWluXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NlcnZpY2U/LmRlc2NyaXB0aW9uID8gc2VydmljZT8uZGVzY3JpcHRpb24gOiAnTi9BJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaG9tZS12aXNpdFwiICpuZ0lmPVwic2VydmljZT8uaG9tZUFwcG9pbnRtZW50QXZhaWxhYmxlXCI+PGltZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvOTgyMTI2YzE3NTg2Mjg4NjMxMjlmdXJuaXR1cmVfMTY0MDYxMDMucG5nXCI+SG9tZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlzaXQgQXZhaWxhYmxlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtaWNvblwiPvCfkaQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtdGl0bGVcIj5HZW5lcmFsIENvbnN1bHRhdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtY2F0ZWdvcnlcIj5NZWRpY2FsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtcHJpY2VcIj7igrk4MDA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWR1cmF0aW9uXCI+MzAgbWluPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENvbXByZWhlbnNpdmUgaGVhbHRoIGNvbnN1bHRhdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1pY29uXCI+8J+noDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1pbmZvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS10aXRsZVwiPk1lbnRhbCBIZWFsdGggQ291bnNlbGluZzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtY2F0ZWdvcnlcIj5NZW50YWwgSGVhbHRoPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtcHJpY2VcIj7igrkxNTAwPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1kdXJhdGlvblwiPjQ1IG1pbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1kZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBQcm9mZXNzaW9uYWwgcHN5Y2hvbG9naWNhbCBzdXBwb3J0XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhvbWUtdmlzaXRcIj5Ib21lIFZpc2l0IEF2YWlsYWJsZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1pY29uXCI+4pyCPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLXRpdGxlXCI+SGFpciBDdXQgJiBTdHlsaW5nPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1jYXRlZ29yeVwiPkJlYXV0eTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLXByaWNlXCI+4oK5MTIwMDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtZHVyYXRpb25cIj40NSBtaW48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgUHJvZmVzc2lvbmFsIGhhaXIgY3V0dGluZyBhbmQgc3R5bGluZ1xyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJob21lLXZpc2l0XCI+SG9tZSBWaXNpdCBBdmFpbGFibGU8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNsb2NhdGlvbkxpc3Rpbmc+XHJcbiAgICA8ZGl2IGNsYXNzPVwibG9jYXRpb25fc2VjdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXIgZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgPGgxPkNob29zZSBMb2NhdGlvbjwvaDE+XHJcbiAgICAgICAgICAgIDxwPlNlbGVjdCB3aGVyZSB5b3UnZCBsaWtlIHRvIHJlY2VpdmUgdGhlIHNlcnZpY2U8L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb2NhdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxvY2F0aW9uIG9mIGxvY2F0aW9uRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwic2VsZWN0TG9jYXRpb24obG9jYXRpb24pXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdsb2NhdGlvbi1jYXJkLXNlbGVjdGVkJyA6IGxvY2F0aW9uPy5zZWxlY3RlZCwgJ2xvY2F0aW9uLWNhcmQnOiAhbG9jYXRpb24/LnNlbGVjdGVkIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9jYXRpb24tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9jYXRpb24taW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uLWljb25cIj48aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNDI3MjI2YzE3NTg2MjkxNTc3NThzdG9yZV8zMTcxNTEwLnBuZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9jYXRpb24tZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz57e2xvY2F0aW9uPy5zdG9yZU5hbWUgPyBsb2NhdGlvbj8uc3RvcmVOYW1lIDogJ04vQSd9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaXN0YW5jZVwiPjxtYXQtaWNvbj5sb2NhdGlvbl9vbjwvbWF0LWljb24+IDIuMyBrbTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7bG9jYXRpb24/LmFkZHJlc3NEZXRhaWxzPy5hZGRyZXNzTGluZX19LCB7e2xvY2F0aW9uPy5hZGRyZXNzRGV0YWlscz8uY2l0eX19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2xvY2F0aW9uPy5hZGRyZXNzRGV0YWlscz8uc3RhdGV9fSB7e2xvY2F0aW9uPy5waW5jb2RlfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImxvY2F0aW9uLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2NhdGlvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uLWluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uLWljb24gYnJhbmNoLWljb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uLWRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz5CcmFuY2ggQ2xpbmljPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjQ1NiBDYXJlIEF2ZW51ZSwgSGVhbHRoIFpvbmUsIE11bWJhaSA0MDAwMTU8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaXN0YW5jZVwiPjUuOCBrbTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2NhdGlvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uLWluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uLWljb24gaG9tZS1pY29uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2NhdGlvbi1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+SG9tZSBWaXNpdDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5Zb3VyIExvY2F0aW9uPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzdGFuY2VcIj4wIGttPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjc3RhZmZMaXN0aW5nPlxyXG4gICAgPGRpdiBjbGFzcz1cInctNjAgb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCB3LTEwMCBoLTEwMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gSGVhZGVyIFNlY3Rpb24gLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhZmYtaGVhZGVyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDE+U2VsZWN0IFN0YWZmIE1lbWJlcjwvaDE+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzdGFmZi1zdWJ0aXRsZSBtYi0wXCI+Q2hvb3NlIHlvdXIgcHJlZmVycmVkIHByb2Zlc3Npb25hbDwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gU3RhZmYgQ2FyZHMgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGdhcC00IHN0YWZmLWxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdGFmZiBvZiBzdGFmZkRhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiBzdGFmZi1jYXJkIGNhcmQgcm91bmRlZC0zIHAtNFwiIChjbGljayk9XCJzZWxlY3RTdGFmZihzdGFmZilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3RhZmYtYXZhdGFyIHJvdW5kZWQtY2lyY2xlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBtZS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3N0YWZmPy5zdGFmZk5hbWUuc2xpY2UoMCwzKS50b1VwcGVyQ2FzZSgpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGFmZi1kZXRhaWxzIGZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJzdGFmZi1uYW1lXCI+e3tzdGFmZj8uc3RhZmZOYW1lID8gc3RhZmY/LnN0YWZmTmFtZSA6ICdOL0EnfX08L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzdGFmZi1zcGVjaWFsdHlcIj5HZW5lcmFsIE1lZGljaW5lPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzdGFmZi1kZXNjcmlwdGlvbiBtYi0wXCI+RXhwZXJpZW5jZWQgcGh5c2ljaWFuIHdpdGggMTArIHllYXJzIGluXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lZGljaW5lIGFuZCB3ZWxsbmVzcyBjYXJlLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhdGluZy1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGFyLXJhdGluZyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0YXItaWNvblwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmF0aW5nLW51bWJlclwiPjQuOTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXZpZXctY291bnRcIj4xNTYgcmV2aWV3czwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjZGF0ZVNlbGVjdGlvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJ3LTYwIGRhdGVfc2VjdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlciBoLTEwMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXRpbWUtaGVhZGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDE+U2VsZWN0IERhdGUgJiBUaW1lPC9oMT5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImRhdGV0aW1lLXN1YnRpdGxlIG1iLTBcIj5DaG9vc2Ugd2hlbiB5b3UnZCBsaWtlIHlvdXIgYXBwb2ludG1lbnQ8L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIE1haW4gQ29udGVudCAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTQgbWFpbl9jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIExlZnQgQ29sdW1uIC0gRGF0ZSBTZWxlY3Rpb24gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7J3ctNTAnIDogc2NyZWVuV2lkdGggPiA0NzUgLCAndy0xMDAnOnNjcmVlbldpZHRoIDwgNDc1fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1jYXJkIGNhcmQgcm91bmRlZC0zIHAtNCBoLTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlNlbGVjdCBEYXRlPC9oMz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItY29udGFpbmVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBkYXRlLWlucHV0IGJvcmRlci0wIHJvdW5kZWQtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiZGQtbW0teXl5eVwiIFt2YWx1ZV09XCJzZWxlY3RlZERhdGVTdHJcIiByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ2FsZW5kYXIoJGV2ZW50KVwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtcy0yXCIgKGNsaWNrKT1cInRvZ2dsZUNhbGVuZGFyKCRldmVudClcIj5jYWxlbmRhcl90b2RheTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlci1wb3BvdmVyXCIgKm5nSWY9XCJzaG93Q2FsZW5kYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYWxlbmRhciBbKHNlbGVjdGVkKV09XCJzZWxlY3RlZERhdGVcIiBbZGF0ZUZpbHRlcl09XCJkYXRlRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJvbkRhdGVTZWxlY3RlZCgkZXZlbnQpXCIgY2xhc3M9XCJkYXRlcGlja2VyLWNhbGVuZGFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIFJpZ2h0IENvbHVtbiAtIFRpbWUgU2VsZWN0aW9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lX3NlbGVjdGlvblwiIFtuZ0NsYXNzXT1cInsndy01MCcgOiBzY3JlZW5XaWR0aCA+IDQ3NSAsICd3LTEwMCc6c2NyZWVuV2lkdGggPCA0NzV9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNhcmQgY2FyZCBoLTEwMCByb3VuZGVkLTMgcC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+QXZhaWxhYmxlIFRpbWVzPC9oMz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFRpbWUgU2xvdHMgR3JpZCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZy0yIG1iLTQgb3ZlcmZsb3ctc2Nyb2xsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00XCIgKm5nRm9yPVwibGV0IHRpbWUgb2YgbG9jYXRpb25UaW1pbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtc2xvdCByb3VuZGVkLTJcIiBbY2xhc3Muc2VsZWN0ZWRdPVwidGltZS5zZWxlY3RlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0VGltZVNsb3QodGltZSlcIj57e3RpbWUgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZT8udmFsdWUuc2xpY2UoMCw1KSA6ICdOL0EnfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gV2FpdGxpc3QgU2VjdGlvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWl0bGlzdC1zZWN0aW9uIHJvdW5kZWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBoLTEwMCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndhaXRsaXN0LXRpdGxlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIndhaXRsaXN0LWljb24gY2hlY2staWNvblwiPjwvc3Bhbj5Ob1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3RzIGF2YWlsYWJsZT88L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWl0bGlzdC1kZXNjcmlwdGlvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZmxleENoZWNrQ2hlY2tlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZCBtZSB0byB0aGUgd2FpdGxpc3QgZm9yIGVhcmxpZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjY29udGFjdERldGFpbHM+XHJcbiAgICA8ZGl2IGNsYXNzPVwidy02MCBjb250YWN0X3NlY3Rpb24gb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBoLTEwMFwiID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMTAwIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIEhlYWRlciBTZWN0aW9uIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3QtaGVhZGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDE+Q29udGFjdCBEZXRhaWxzPC9oMT5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImNvbnRhY3Qtc3VidGl0bGUgbWItMFwiPlByb3ZpZGUgeW91ciBjb250YWN0IGluZm9ybWF0aW9uPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSBGb3JtIFNlY3Rpb25zIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMyBkZXRhaWxzX2NvbnRhaW5lciBmbGV4LWNvbHVtbiB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gTGVmdCBDb2x1bW4gLSBQZXJzb25hbCBJbmZvcm1hdGlvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsndy01MCcgOiBzZWxlY3RlZFNlcnZpY2U/LmhvbWVBcHBvaW50bWVudEF2YWlsYWJsZSwgJ3ctMTAwJyA6ICFzZWxlY3RlZFNlcnZpY2U/LmhvbWVBcHBvaW50bWVudEF2YWlsYWJsZX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXNlY3Rpb24gY2FyZCByb3VuZGVkLTMgcC00IGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlBlcnNvbmFsIEluZm9ybWF0aW9uPC9oMz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBGdWxsIE5hbWUgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGdWxsIE5hbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtYXN0ZXJpc2tcIj4qPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWlucHV0IHJvdW5kZWQtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFwcG9pbnRtZW50UGF5bG9hZC5jdXN0b21lckRldGFpbC5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoZWNrUmVxdWlyZWRWYWx1ZXMoKVwiIHNpbXBvTGV0dGVyc09ubHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRW1haWwgQWRkcmVzcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtYWlsIEFkZHJlc3NcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtYXN0ZXJpc2tcIj4qPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImVtYWlsXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1pbnB1dCByb3VuZGVkLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhcHBvaW50bWVudFBheWxvYWQuY3VzdG9tZXJEZXRhaWwuZW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hlY2tSZXF1aXJlZFZhbHVlcygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUGhvbmUgTnVtYmVyIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWwgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGhvbmUgTnVtYmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkLWFzdGVyaXNrXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZWxcIiBjbGFzcz1cImZvcm0tY29udHJvbCAgcm91bmRlZC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYXBwb2ludG1lbnRQYXlsb2FkLmN1c3RvbWVyRGV0YWlsLnBob25lTnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoZWNrUmVxdWlyZWRWYWx1ZXMoKVwiIHNpbXBvTnVtYmVyc09ubHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnbW9iaWxlX251bWJlcicgOiBhcHBvaW50bWVudFBheWxvYWQuY3VzdG9tZXJEZXRhaWwucGhvbmVOdW1iZXIubGVuZ3RoICE9IDEwfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFJpZ2h0IENvbHVtbiAtIEhvbWUgVmlzaXQgRGV0YWlscyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctNTBcIiAqbmdJZj1cInNlbGVjdGVkU2VydmljZT8uaG9tZUFwcG9pbnRtZW50QXZhaWxhYmxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1zZWN0aW9uIGNhcmQgcm91bmRlZC0zIHAtNCBoLTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5Ib21lIFZpc2l0IERldGFpbHM8L2gzPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEhvbWUgQWRkcmVzcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhvbWUgQWRkcmVzc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS10ZXh0YXJlYSByb3VuZGVkLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciB5b3VyIGNvbXBsZXRlIGFkZHJlc3NcIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNwZWNpYWwgSW5zdHJ1Y3Rpb25zIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWwgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BlY2lhbCBJbnN0cnVjdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tdGV4dGFyZWEgcm91bmRlZC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQW55IHNwZWNpYWwgaW5zdHJ1Y3Rpb25zIGZvciB0aGUgcHJvZmVzc2lvbmFsIChvcHRpb25hbClcIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb2xpY2llcy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBIZWFkZXIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInBvbGljaWVzLXRpdGxlXCI+UG9saWNpZXMgJiBUZXJtczwvaDI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFBvbGljeSBJdGVtcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvbGljeS1pdGVtcy1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIENhbmNlbGxhdGlvbiBQb2xpY3kgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9saWN5LWl0ZW0gZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dDYW5jZWxsYXRpb25Qb2xpY3kgPSAhc2hvd0NhbmNlbGxhdGlvblBvbGljeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInBvbGljeS10aXRsZVwiPkNhbmNlbGxhdGlvbiBQb2xpY3k8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb2xpY3ktYXJyb3cgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+PG1hdC1pY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFzaG93Q2FuY2VsbGF0aW9uUG9saWN5XCI+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJzaG93Q2FuY2VsbGF0aW9uUG9saWN5XCI+a2V5Ym9hcmRfYXJyb3dfZG93bjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYW5jZWxsYXRpb25fcG9saWNpZXMgZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0yIGZ3LTUwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93Q2FuY2VsbGF0aW9uUG9saWN5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JiM4MjI2OyBGcmVlIGNhbmNlbGxhdGlvbiB1cCB0byAyNCBob3VycyBiZWZvcmUgYXBwb2ludG1lbnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JiM4MjI2OyA1MCUgY2hhcmdlIGZvciBjYW5jZWxsYXRpb25zIHdpdGhpbiAyNCBob3Vyczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4mIzgyMjY7IE5vIHJlZnVuZCBmb3Igbm8tc2hvd3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JiM4MjI2OyBFbWVyZ2VuY3kgY2FuY2VsbGF0aW9ucyB3aWxsIGJlIHJldmlld2VkIGNhc2UgYnkgY2FzZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUmVzY2hlZHVsaW5nIFBvbGljeSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb2xpY3ktaXRlbSBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd1JlZHVjaW5nUG9saWN5ID0gIXNob3dSZWR1Y2luZ1BvbGljeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInBvbGljeS10aXRsZVwiPlJlc2NoZWR1bGluZyBQb2xpY3k8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb2xpY3ktYXJyb3cgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+PG1hdC1pY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFzaG93UmVkdWNpbmdQb2xpY3lcIj5rZXlib2FyZF9hcnJvd19yaWdodDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInNob3dSZWR1Y2luZ1BvbGljeVwiPmtleWJvYXJkX2Fycm93X2Rvd248L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FuY2VsbGF0aW9uX3BvbGljaWVzIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMiBmdy01MDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1JlZHVjaW5nUG9saWN5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JiM4MjI2OyBGcmVlIGNhbmNlbGxhdGlvbiB1cCB0byAyNCBob3VycyBiZWZvcmUgYXBwb2ludG1lbnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JiM4MjI2OyA1MCUgY2hhcmdlIGZvciBjYW5jZWxsYXRpb25zIHdpdGhpbiAyNCBob3Vyczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4mIzgyMjY7IE5vIHJlZnVuZCBmb3Igbm8tc2hvd3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JiM4MjI2OyBFbWVyZ2VuY3kgY2FuY2VsbGF0aW9ucyB3aWxsIGJlIHJldmlld2VkIGNhc2UgYnkgY2FzZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gQWNjZXB0YW5jZSBTZWN0aW9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjZXB0YW5jZS1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJjdXN0b20tY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYWNjZXB0YW5jZS10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSSB1bmRlcnN0YW5kIGFuZCBhY2NlcHQgdGhlIGNhbmNlbGxhdGlvbiAmIHJlc2NoZWR1bGluZyBwb2xpY2llcyBhbmRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwidGVybXMtbGlua1wiPlRlcm1zICYgQ29uZGl0aW9uczxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV4dGVybmFsLWxpbmstaWNvblwiPjwvc3Bhbj48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcGF5bWVudFRhYj5cclxuICAgIDxkaXYgY2xhc3M9XCJ3LTYwIHBheW1lbnRfc2VjdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBoLTEwMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIEhlYWRlciBTZWN0aW9uIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBheW1lbnQtaGVhZGVyIG1iLTMgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDE+UGF5bWVudCAmIENvbmZpcm1hdGlvbjwvaDE+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwYXltZW50LXN1YnRpdGxlIG1iLTBcIj5SZXZpZXcgeW91ciBib29raW5nIGFuZCBjb21wbGV0ZSBwYXltZW50PC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSBCb29raW5nIFN1bW1hcnkgQ2FyZCAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib29raW5nLXN1bW1hcnktY2FyZFwiIFtuZ0NsYXNzXT1cInsndy0xMDAnIDogc2NyZWVuV2lkdGggPCA0NzUsJ3ctNTAnOnNjcmVlbldpZHRoID4gNDc1fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInN1bW1hcnktdGl0bGVcIj5Cb29raW5nIFN1bW1hcnk8L2gyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIFNlcnZpY2UgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5LWxhYmVsXCI+U2VydmljZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS12YWx1ZVwiPnt7c2VsZWN0ZWRTZXJ2aWNlPy5uYW1lID8gc2VsZWN0ZWRTZXJ2aWNlPy5uYW1lIDogJ04vQSd9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIFByb2Zlc3Npb25hbCAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktbGFiZWxcIj5Qcm9mZXNzaW9uYWw8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktdmFsdWVcIj57e3NlbGVjdGVkU3RhZmY/LnN0YWZmTmFtZSA/IHNlbGVjdGVkU3RhZmY/LnN0YWZmTmFtZSA6ICdOL0EnfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBMb2NhdGlvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktbGFiZWxcIj5Mb2NhdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS12YWx1ZVwiPnt7c2VsZWN0ZWRMb2NhdGlvbj8uc3RvcmVOYW1lID8gc2VsZWN0ZWRMb2NhdGlvbj8uc3RvcmVOYW1lIDogJ04vQSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBEYXRlICYgVGltZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktbGFiZWxcIj5EYXRlICYgVGltZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS12YWx1ZVwiPnt7c2VsZWN0ZWREYXRlU3RyID8gKHNlbGVjdGVkRGF0ZVN0cikgOiAnTi9BJ319IGF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNTozMDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIER1cmF0aW9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS1sYWJlbFwiPkR1cmF0aW9uPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5LXZhbHVlXCI+e3tzZWxlY3RlZFNlcnZpY2U/LmR1cmF0aW9uID8gc2VsZWN0ZWRTZXJ2aWNlPy5kdXJhdGlvbiA6ICdOL0EnfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbnV0ZXM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktbGFiZWxcIj5UYXggUGVyY2VudDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS12YWx1ZVwiPnt7c2VsZWN0ZWRTZXJ2aWNlPy5wcmljZURldGFpbHM/LnRheFBlcmNlbnQgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRTZXJ2aWNlPy5wcmljZURldGFpbHM/LnRheFBlcmNlbnQgOiAnTi9BJ319JTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gVG90YWwgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktcm93IHRvdGFsLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS1sYWJlbFwiPlRvdGFsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5LXZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnJlbmN5LXN5bWJvbFwiPuKCuTwvc3Bhbj57e3NlbGVjdGVkU2VydmljZT8ucHJpY2VEZXRhaWxzPy5wcmljZSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFNlcnZpY2U/LnByaWNlRGV0YWlscz8ucHJpY2UgOiAnTi9BJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjc3RhdHVzVGVtcGxhdGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYm9va2luZy1jb25maXJtYXRpb25cIj5cclxuICAgICAgICA8IS0tIFN1Y2Nlc3MgSWNvbiAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3VjY2Vzcy1pY29uXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja21hcmstY2lyY2xlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvODgxMjkzYzE3NTg2OTU1Nzg1MThzdWNjZXNzLmdpZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEwMCBoLTEwMFwiICpuZ0lmPVwiYXBpU3RhdHVzXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvMzI1MDAwYzE3NTg2OTU1NjQ1MThmYWlsLmdpZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEwMCBoLTEwMFwiICpuZ0lmPVwiIWFwaVN0YXR1c1wiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBNYWluIENvbnRlbnQgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpcm1hdGlvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxoMSBjbGFzcz1cImNvbmZpcm1hdGlvbi10aXRsZVwiPnt7YXBpU3RhdHVzID8gJ0Jvb2tpbmcgQ29uZmlybWVkIScgOiAnQm9va2luZyBGYWlsZWQnfX08L2gxPlxyXG4gICAgICAgICAgICA8cCBjbGFzcz1cImNvbmZpcm1hdGlvbi1tZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICB7e2FwaVN0YXR1cyA/ICdZb3VyIGFwcG9pbnRtZW50IGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBib29rZWQuJzonRmFpbGVkIHRvIGJvb2sgeW91IGFwcG9pbnRtZW50LiBQbGVhc2VcclxuICAgICAgICAgICAgICAgIHRyeSBhZ2FpbiBsYXRlcid9fVxyXG4gICAgICAgICAgICA8L3A+XHJcblxyXG4gICAgICAgICAgICA8IS0tIERldGFpbHMgQ2FyZCAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCB3LTEwMCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiICpuZ0lmPVwiYXBpU3RhdHVzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiZGV0YWlscy10aXRsZVwiPkFwcG9pbnRtZW50IERldGFpbHM8L2gzPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtbGFiZWxcIj5TZXJ2aWNlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC12YWx1ZVwiPnt7YXBwb2ludG1lbnRQYXlsb2FkLnNlcnZpY2VEZXRhaWw/Lm5hbWUgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwb2ludG1lbnRQYXlsb2FkLnNlcnZpY2VEZXRhaWw/Lm5hbWUgOiAnTi9BJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtbGFiZWxcIj5Qcm9mZXNzaW9uYWw8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGV0YWlsLXZhbHVlXCI+e3thcHBvaW50bWVudFBheWxvYWQuc3RhZmZEZXRhaWw/Lm5hbWUgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwb2ludG1lbnRQYXlsb2FkLnN0YWZmRGV0YWlsPy5uYW1lIDogJ04vQSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtbGFiZWxcIj5EYXRlICYgVGltZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtdmFsdWVcIj57e2FwcG9pbnRtZW50UGF5bG9hZC5ib29raW5nRGF0ZSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBvaW50bWVudFBheWxvYWQuYm9va2luZ0RhdGUuc2xpY2UoMCw4KSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTi9BJ319IGF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2FwcG9pbnRtZW50UGF5bG9hZC5zdGFydFRpbWUgPyBhcHBvaW50bWVudFBheWxvYWQuc3RhcnRUaW1lIDogJ04vQSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICA8IS0tIEFjdGlvbiBCdXR0b25zIC0tPlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJhY3Rpb24tYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiPlZpZXcgTXkgQm9va2luZ3M8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIj5CYWNrIHRvIEFkbWluPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
453
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwb2ludG1lbnQtYm9va2luZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2FwcG9pbnRtZW50LWZvcm0vYXBwb2ludG1lbnQtYm9va2luZy9hcHBvaW50bWVudC1ib29raW5nL2FwcG9pbnRtZW50LWJvb2tpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9hcHBvaW50bWVudC1mb3JtL2FwcG9pbnRtZW50LWJvb2tpbmcvYXBwb2ludG1lbnQtYm9va2luZy9hcHBvaW50bWVudC1ib29raW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUk3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDcEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0s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RSxvQkFBb0IsOERBQUUsV0FBVzs7NEZBSzVMLDJCQUEyQjtrQkFSdkMsU0FBUzsrQkFDRSwyQkFBMkIsY0FDekIsSUFBSSxXQUNQLENBQUMsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLFdBQVcsQ0FBQyxhQUM3TCxDQUFDLGNBQWMsQ0FBQzs4SkFhbEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQVFOLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLMUMsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDZGtEcmFnUGxhY2Vob2xkZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RyYWctZHJvcFwiO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2ljb25cIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlclwiO1xyXG5pbXBvcnQgeyBNYXROYXRpdmVEYXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IEJhbm5lckNvbnRlbnRNb2RlbCwgQmFubmVyU2VjdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vYXBwb2ludG1lbnQtZm9ybS5tb2RlbCc7XHJcbmltcG9ydCB7IEJhY2tncm91bmRNb2RlbCwgQmFubmVyU3R5bGVzTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xyXG5pbXBvcnQgeyBMZXR0ZXJzT25seURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZS9sZXR0ZXJzLW9ubHkuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTnVtYmVyc09ubHlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmUvbnVtYmVycy1vbmx5LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSBcInByaW1lbmcvdG9hc3RcIjtcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tYXBwb2ludG1lbnQtYm9va2luZycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ2RrRHJhZ1BsYWNlaG9sZGVyLCBDb21tb25Nb2R1bGUsIE1hdEljb24sIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0RGF0ZXBpY2tlck1vZHVsZSwgRm9ybXNNb2R1bGUsIE1hdE5hdGl2ZURhdGVNb2R1bGUsIE1hdElucHV0TW9kdWxlLCBMZXR0ZXJzT25seURpcmVjdGl2ZSwgTnVtYmVyc09ubHlEaXJlY3RpdmUsIFRvYXN0TW9kdWxlXSxcclxuICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcG9pbnRtZW50LWJvb2tpbmcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9hcHBvaW50bWVudC1ib29raW5nLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBvaW50bWVudEJvb2tpbmdDb21wb25lbnQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9ldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2VcclxuICApIHtcclxuXHJcbiAgfVxyXG4gIEBJbnB1dCgpIGRhdGE/OiBCYW5uZXJTZWN0aW9uTW9kZWw7XHJcbiAgQElucHV0KCkgaW5kZXg/OiBudW1iZXI7XHJcbiAgY29udGVudD86IEJhbm5lckNvbnRlbnRNb2RlbDtcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnRDb2xvcj86IEJhY2tncm91bmRNb2RlbDtcclxuICBzdHlsZXM/OiBCYW5uZXJTdHlsZXNNb2RlbDtcclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZ2V0QWxsU2VydmljZXMoKTtcclxuICAgIHRoaXMuZ2V0U2NyZWVuU2l6ZSgpO1xyXG4gIH1cclxuICBzY3JlZW5XaWR0aDogbnVtYmVyID0gMDtcclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OiByZXNpemVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIGdldFNjcmVlblNpemUoKSB7XHJcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJylcclxuICBjbG9zZU9uT3V0c2lkZUNsaWNrKCkge1xyXG4gICAgdGhpcy5zaG93Q2FsZW5kYXIgPSBmYWxzZTtcclxuICB9XHJcbiAgYWNjZXNzZWRUYWJzID0ge1xyXG4gICAgc2VydmljZUxpc3Rpbmc6IGZhbHNlLFxyXG4gICAgbG9jYXRpb25MaXN0aW5nOiBmYWxzZSxcclxuICAgIHN0YWZmTGlzdGluZzogZmFsc2VcclxuICB9XHJcblxyXG4gIGJ1c2luZXNzTmFtZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdiTmFtZScpID8/IFwiMjRLIEJhemFhclwiO1xyXG4gIGJ1c2luZXNzSWQ6IHN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdiSWQnKSA/PyBcIjFmMDk1MjE2LTdjMDAtNmNhYi05MDQ1LWZmOWM3MGUxYzY0MVwiO1xyXG4gIGFjdGl2ZUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkVGFiOiBzdHJpbmcgPSAnJztcclxuICBiYXJXaWR0aDogc3RyaW5nID0gJyc7XHJcbiAgc2hvd0NhbmNlbGxhdGlvblBvbGljeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dSZWR1Y2luZ1BvbGljeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkU2VydmljZTogYW55ID0ge307XHJcbiAgc2VsZWN0ZWRMb2NhdGlvbjogYW55O1xyXG4gIE9iamVjdCA9IE9iamVjdDtcclxuICBzaG93Q2FsZW5kYXIgPSBmYWxzZTtcclxuICBzZWxlY3RlZERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcclxuICBzZWxlY3RlZERhdGVTdHIgPSAnJztcclxuICB1c2VyRGV0YWlscyA9IHtcclxuICAgIG5hbWU6ICcnLFxyXG4gICAgZW1haWw6ICcnLFxyXG4gICAgbW9iaWxlTnVtYmVyOiAnJ1xyXG4gIH1cclxuICBkYXRlRmlsdGVyID0gKGQ6IERhdGUgfCBudWxsKTogYm9vbGVhbiA9PiB7XHJcbiAgICBjb25zdCBkYXRlID0gKGQgfHwgbmV3IERhdGUoKSk7XHJcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICB0b2RheS5zZXRIb3VycygwLCAwLCAwLCAwKTtcclxuICAgIHJldHVybiBkYXRlLmdldFRpbWUoKSA+PSB0b2RheS5nZXRUaW1lKCk7XHJcbiAgfVxyXG4gIHRvZ2dsZUNhbGVuZGFyKGV2ZW50PzogRXZlbnQpIHtcclxuICAgIGlmIChldmVudCkgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnNob3dDYWxlbmRhciA9ICF0aGlzLnNob3dDYWxlbmRhcjtcclxuICB9XHJcblxyXG4gIG9uRGF0ZVNlbGVjdGVkKGRhdGU6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFRpbWUgPSB7fTtcclxuICAgIHRoaXMuYWN0aXZlQnV0dG9uID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IGRhdGU7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZVN0ciA9IHRoaXMuZm9ybWF0RGF0ZShkYXRlKTtcclxuICAgIHRoaXMuc2hvd0NhbGVuZGFyID0gZmFsc2U7XHJcbiAgICB0aGlzLmdldEF2YWlsYWJsZVNsb3RzKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgZm9ybWF0RGF0ZShkOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGRkID0gU3RyaW5nKGQuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgbW0gPSBTdHJpbmcoZC5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGNvbnN0IHl5eXkgPSBkLmdldEZ1bGxZZWFyKCk7XHJcbiAgICByZXR1cm4gYCR7ZGR9LSR7bW19LSR7eXl5eX1gO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0U2VydmljZShzZXJ2aWNlOiBhbnkpIHtcclxuICAgIHNlcnZpY2Uuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTZXJ2aWNlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRTZXJ2aWNlLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkU2VydmljZSA9IHNlcnZpY2VcclxuICAgIHRoaXMuYWN0aXZlQnV0dG9uID0gdGhpcy5zZWxlY3RlZFNlcnZpY2UgPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG4gIHNlbGVjdExvY2F0aW9uKGxvY2F0aW9uOiBhbnkpIHtcclxuICAgIGxvY2F0aW9uLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkTG9jYXRpb24pIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZExvY2F0aW9uLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFjdGl2ZUJ1dHRvbiA9IHRydWU7XHJcbiAgICB0aGlzLnNlbGVjdGVkTG9jYXRpb24gPSBsb2NhdGlvbjtcclxuICB9XHJcbiAgc2VsZWN0ZWRTdGFmZjogYW55O1xyXG4gIHNlbGVjdFN0YWZmKHN0YWZmOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRTdGFmZiA9IHN0YWZmO1xyXG4gICAgdGhpcy5hY3RpdmVCdXR0b24gPSB0cnVlO1xyXG4gIH1cclxuICBuZXh0U3RlcCgpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkVGFiID09PSAnc2VydmljZUxpc3RpbmcnKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlQnV0dG9uID0gdGhpcy5zZWxlY3RlZExvY2F0aW9uID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICB0aGlzLmFjY2Vzc2VkVGFicy5zZXJ2aWNlTGlzdGluZyA9IHRydWU7XHJcbiAgICAgIGlmICghdGhpcy5hY3RpdmVCdXR0b24pIHtcclxuICAgICAgICB0aGlzLmdldEFsbExvY2F0aW9ucygpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLmFjY2Vzc2VkVGFicy5sb2NhdGlvbkxpc3RpbmcpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSAnbG9jYXRpb25MaXN0aW5nJztcclxuICAgICAgICAgIHRoaXMuYmFyV2lkdGggPSAnMjkuMjgnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLmFjY2Vzc2VkVGFicy5zdGFmZkxpc3RpbmcpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSAnc3RhZmZMaXN0aW5nJztcclxuICAgICAgICAgIHRoaXMuYmFyV2lkdGggPSAnNDMuNTcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSAnZGF0ZVNlbGVjdGlvbic7XHJcbiAgICAgICAgICB0aGlzLmJhcldpZHRoID0gJzU4LjU3JztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRUYWIgPT09ICdsb2NhdGlvbkxpc3RpbmcnKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlQnV0dG9uID0gdGhpcy5zZWxlY3RlZFN0YWZmID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICB0aGlzLmFjY2Vzc2VkVGFicy5sb2NhdGlvbkxpc3RpbmcgPSB0cnVlO1xyXG4gICAgICBpZiAoIXRoaXMuYWN0aXZlQnV0dG9uKSB7XHJcbiAgICAgICAgdGhpcy5nZXRBbGxTdGFmZigpO1xyXG5cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5hY2Nlc3NlZFRhYnMuc3RhZmZMaXN0aW5nKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ3N0YWZmTGlzdGluZyc7XHJcbiAgICAgICAgICB0aGlzLmJhcldpZHRoID0gJzQzLjU3JztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ2RhdGVTZWxlY3Rpb24nO1xyXG4gICAgICAgICAgdGhpcy5iYXJXaWR0aCA9ICc1OC41Nyc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnNlbGVjdGVkVGFiID09PSAnc3RhZmZMaXN0aW5nJykge1xyXG4gICAgICB0aGlzLmFjY2Vzc2VkVGFicy5zdGFmZkxpc3RpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ2RhdGVTZWxlY3Rpb24nO1xyXG4gICAgICB0aGlzLmJhcldpZHRoID0gJzU4LjU3JztcclxuICAgICAgaWYgKCF0aGlzLmFjdGl2ZUJ1dHRvbilcclxuICAgICAgICB0aGlzLmdldEF2YWlsYWJsZVNsb3RzKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnNlbGVjdGVkVGFiID09PSAnZGF0ZVNlbGVjdGlvbicpIHtcclxuICAgICAgdGhpcy5hY3RpdmVCdXR0b24gPSB0aGlzLmFwcG9pbnRtZW50UGF5bG9hZC5jdXN0b21lckRldGFpbC5uYW1lICYmIHRoaXMuYXBwb2ludG1lbnRQYXlsb2FkLmN1c3RvbWVyRGV0YWlsLmVtYWlsICYmIHRoaXMuYXBwb2ludG1lbnRQYXlsb2FkLmN1c3RvbWVyRGV0YWlsLnBob25lTnVtYmVyLmxlbmd0aCA9PT0gMTAgPyB0cnVlIDogZmFsc2VcclxuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdjb250YWN0RGV0YWlscyc7XHJcbiAgICAgIHRoaXMuYmFyV2lkdGggPSAnNzAuNTcnXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnNlbGVjdGVkVGFiID09PSAnY29udGFjdERldGFpbHMnKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tSZXF1aXJlZFZhbHVlcygpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ3BheW1lbnRUYWInO1xyXG4gICAgICB0aGlzLmJhcldpZHRoID0gJzg1LjU3J1xyXG4gICAgfVxyXG4gIH1cclxuICBwcmV2aW91c1N0ZXAoKSB7XHJcbiAgICB0aGlzLmFjdGl2ZUJ1dHRvbiA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFRhYiA9PT0gJ2xvY2F0aW9uTGlzdGluZycpIHtcclxuICAgICAgaWYgKHRoaXMuYWNjZXNzZWRUYWJzLnNlcnZpY2VMaXN0aW5nKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdzZXJ2aWNlTGlzdGluZyc7XHJcbiAgICAgICAgdGhpcy5iYXJXaWR0aCA9ICcxNC4yOCc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRUYWIgPT09ICdzdGFmZkxpc3RpbmcnKSB7XHJcbiAgICAgIGlmICh0aGlzLmFjY2Vzc2VkVGFicy5sb2NhdGlvbkxpc3RpbmcpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ2xvY2F0aW9uTGlzdGluZyc7XHJcbiAgICAgICAgdGhpcy5iYXJXaWR0aCA9ICcyOS4yOCc7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5hY2Nlc3NlZFRhYnMuc2VydmljZUxpc3RpbmcpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ3NlcnZpY2VMaXN0aW5nJztcclxuICAgICAgICB0aGlzLmJhcldpZHRoID0gJzE0LjI4JztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5zZWxlY3RlZFRhYiA9PT0gJ2RhdGVTZWxlY3Rpb24nKSB7XHJcbiAgICAgIGlmICh0aGlzLmFjY2Vzc2VkVGFicy5zdGFmZkxpc3RpbmcpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ3N0YWZmTGlzdGluZyc7XHJcbiAgICAgICAgdGhpcy5iYXJXaWR0aCA9ICc0My41Nyc7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5hY2Nlc3NlZFRhYnMubG9jYXRpb25MaXN0aW5nKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdsb2NhdGlvbkxpc3RpbmcnO1xyXG4gICAgICAgIHRoaXMuYmFyV2lkdGggPSAnMjkuMjgnO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHRoaXMuYWNjZXNzZWRUYWJzLnNlcnZpY2VMaXN0aW5nKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdzZXJ2aWNlTGlzdGluZyc7XHJcbiAgICAgICAgdGhpcy5iYXJXaWR0aCA9ICcxNC4yOCc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRUYWIgPT09ICdjb250YWN0RGV0YWlscycpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdkYXRlU2VsZWN0aW9uJztcclxuICAgICAgdGhpcy5iYXJXaWR0aCA9ICc1OC41NydcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRUYWIgPT09ICdwYXltZW50VGFiJykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ2NvbnRhY3REZXRhaWxzJztcclxuICAgICAgdGhpcy5iYXJXaWR0aCA9ICc3MC41Nyc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlcnZpY2VEYXRhOiBhbnlbXSA9IFtdO1xyXG4gIGdldEFsbFNlcnZpY2VzKCkge1xyXG4gICAgbGV0IHNlcnZpY2VQYXlsb2FkOiBhbnkgPSB7XHJcbiAgICAgIGJ1c2luZXNzSWQ6IHRoaXMuYnVzaW5lc3NJZCA/PyBcIlwiLFxyXG4gICAgICBwYWdlTm86IDAsXHJcbiAgICAgIHNpemU6IDEwMFxyXG4gICAgfVxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRBbGxBcHBvaW50bWVudFNlcnZpY2Uoc2VydmljZVBheWxvYWQpLnN1YnNjcmliZShcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcy5jb250ZW50Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuc2VydmljZURhdGEgPSByZXMuY29udGVudC5maWx0ZXIoKHNlcnZpY2U6IGFueSkgPT4gc2VydmljZS5hY3RpdmUgPT09IHRydWUpO1xyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlRGF0YS5mb3JFYWNoKHNlcnZpY2UgPT4gc2VydmljZS5zZWxlY3RlZCA9IGZhbHNlKTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuc2VydmljZURhdGEpXHJcbiAgICAgICAgICBpZiAodGhpcy5zZXJ2aWNlRGF0YS5sZW5ndGggPT09IDEgJiYgIXRoaXMuYWN0aXZlQnV0dG9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTZXJ2aWNlID0gdGhpcy5zZXJ2aWNlRGF0YVswXTtcclxuICAgICAgICAgICAgdGhpcy5nZXRBbGxMb2NhdGlvbnMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ3NlcnZpY2VMaXN0aW5nJztcclxuICAgICAgICAgICAgdGhpcy5iYXJXaWR0aCA9ICcxNC4yOCc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAvLyBIYW5kbGUgZXJyb3JzIGdyYWNlZnVsbHlcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgbG9jYXRpb25EYXRhOiBhbnlbXSA9IFtdO1xyXG4gIGdldEFsbExvY2F0aW9ucygpIHtcclxuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMubG9jYXRpb25EYXRhID0gW107XHJcbiAgICBsZXQgcGF5bG9hZCA9IHsgYnVzaW5lc3NJZDogdGhpcy5idXNpbmVzc0lkID8/IFwiXCIgfVxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRBbGxTdG9yZXMocGF5bG9hZCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzLmRhdGEuZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBsZXQgbG9jYXRpb25zID0gcmVzLmRhdGEuZGF0YS5maWx0ZXIoKHN0b3JlOiBhbnkpID0+IHsgcmV0dXJuIHN0b3JlLnN0YXR1cyA9PT0gJ0FDVElWRScgfSk7XHJcbiAgICAgICAgICBsb2NhdGlvbnMuZm9yRWFjaCgobG9jYXRpb246IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFNlcnZpY2Uuc3RvcmVJZHMuaW5jbHVkZXMobG9jYXRpb24uaWQpKSB7XHJcbiAgICAgICAgICAgICAgbG9jYXRpb24uc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmxvY2F0aW9uRGF0YS5wdXNoKGxvY2F0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIGlmICh0aGlzLmxvY2F0aW9uRGF0YS5sZW5ndGggPT09IDEgJiYgIXRoaXMuYWN0aXZlQnV0dG9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbiA9IHRoaXMubG9jYXRpb25EYXRhWzBdO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmdldEFsbFN0YWZmKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdsb2NhdGlvbkxpc3RpbmcnO1xyXG4gICAgICAgICAgICB0aGlzLmJhcldpZHRoID0gJzI5LjI4JztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIC8vIEhhbmRsZSBlcnJvcnMgZ3JhY2VmdWxseVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBzdGFmZlBheWxvYWQ6IGFueSA9IHtcclxuICAgIHNlcnZpY2VJZDogJycsXHJcbiAgICBzdG9yZUlkOiAnJyxcclxuICAgIGJ1c2luZXNzSWQ6ICcnXHJcbiAgfVxyXG4gIHN0YWZmRGF0YTogYW55W10gPSBbXTtcclxuICBnZXRBbGxTdGFmZigpIHtcclxuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMuc3RhZmZQYXlsb2FkLnN0b3JlSWQgPSB0aGlzLnNlbGVjdGVkTG9jYXRpb24/LmlkID8/IFwiXCI7XHJcbiAgICB0aGlzLnN0YWZmUGF5bG9hZC5zZXJ2aWNlSWQgPSB0aGlzLnNlbGVjdGVkU2VydmljZT8uc2VydmljZUlkID8gdGhpcy5zZWxlY3RlZFNlcnZpY2Uuc2VydmljZUlkIDogJyc7XHJcbiAgICB0aGlzLnN0YWZmUGF5bG9hZC5idXNpbmVzc0lkID0gdGhpcy5idXNpbmVzc0lkID8/IFwiXCI7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldEFsbFN0YWZmKHRoaXMuc3RhZmZQYXlsb2FkKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5zdGFmZkRhdGEgPSByZXMuZmlsdGVyKChzdGFmZjogYW55KSA9PiBzdGFmZi5hY3RpdmUgPT09IHRydWUpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuc3RhZmZEYXRhLmxlbmd0aCA9PT0gMSAmJiAhdGhpcy5hY3RpdmVCdXR0b24pIHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdkYXRlU2VsZWN0aW9uJztcclxuICAgICAgICAgICAgdGhpcy5iYXJXaWR0aCA9ICc1OC41Nyc7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTdGFmZiA9IHRoaXMuc3RhZmZEYXRhWzBdO1xyXG4gICAgICAgICAgICB0aGlzLmdldEF2YWlsYWJsZVNsb3RzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICh0aGlzLnN0YWZmRGF0YS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSAnc3RhZmZMaXN0aW5nJztcclxuICAgICAgICAgICAgdGhpcy5iYXJXaWR0aCA9ICc0My41Nyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAvLyBIYW5kbGUgZXJyb3JzIGdyYWNlZnVsbHlcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgY29udmVydFRvMjRIb3VyKHRpbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBbaG91ck1pbiwgbW9kaWZpZXJSYXddID0gdGltZS5zcGxpdCgnICcpO1xyXG4gICAgY29uc3QgbW9kaWZpZXIgPSBtb2RpZmllclJhdy50b1VwcGVyQ2FzZSgpOyAvLyBcIkFNXCIgb3IgXCJQTVwiXHJcbiAgICBsZXQgW2hvdXJzLCBtaW51dGVzXSA9IGhvdXJNaW4uc3BsaXQoJzonKS5tYXAoTnVtYmVyKTtcclxuXHJcbiAgICBpZiAobW9kaWZpZXIgPT09ICdQTScgJiYgaG91cnMgPCAxMikge1xyXG4gICAgICBob3VycyArPSAxMjtcclxuICAgIH1cclxuICAgIGlmIChtb2RpZmllciA9PT0gJ0FNJyAmJiBob3VycyA9PT0gMTIpIHtcclxuICAgICAgaG91cnMgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGhoID0gaG91cnMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgbW0gPSBtaW51dGVzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIHJldHVybiBgJHtoaH06JHttbX0gJHttb2RpZmllcn1gO1xyXG4gIH1cclxuICBzbG90c1BheWxvYWQ6IGFueSA9IHtcclxuICAgIHN0b3JlSWQ6IFwiXCIsXHJcbiAgICBzZXJ2aWNlSWQ6IFwiXCIsXHJcbiAgICBidXNpbmVzc0lkOiBcIlwiLFxyXG4gICAgYm9va2luZ0RhdGU6IFwiXCJcclxuICB9XHJcbiAgbG9jYXRpb25UaW1pbmc6IGFueVtdID0gW107XHJcbiAgbG9hZGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZ2V0QXZhaWxhYmxlU2xvdHMoKSB7XHJcbiAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2NhdGlvblRpbWluZyA9IFtdO1xyXG4gICAgdGhpcy5zbG90c1BheWxvYWQuc3RvcmVJZCA9IHRoaXMuc2VsZWN0ZWRMb2NhdGlvbj8uaWQgPz8gXCJcIjtcclxuICAgIHRoaXMuc2xvdHNQYXlsb2FkLnNlcnZpY2VJZCA9IHRoaXMuc2VsZWN0ZWRTZXJ2aWNlPy5zZXJ2aWNlSWQgPyB0aGlzLnNlbGVjdGVkU2VydmljZS5zZXJ2aWNlSWQgOiAnJztcclxuICAgIHRoaXMuc2xvdHNQYXlsb2FkLmJ1c2luZXNzSWQgPSB0aGlzLmJ1c2luZXNzSWQgPz8gXCJcIjtcclxuICAgIGNvbnN0IGRhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZSA/PyBuZXcgRGF0ZSgpO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVTdHIgPSB0aGlzLmZvcm1hdERhdGUoZGF0ZSk7XHJcbiAgICBjb25zdCB5eXl5ID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgbW0gPSBTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGNvbnN0IGRkID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpO1xyXG5cclxuICAgIHRoaXMuc2xvdHNQYXlsb2FkLmJvb2tpbmdEYXRlID0gYCR7eXl5eX0tJHttbX0tJHtkZH1UMDA6MDA6MDAuMDAwWmA7XHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTdGFmZilcclxuICAgICAgdGhpcy5zbG90c1BheWxvYWQuc3RhZmZJZCA9IHRoaXMuc2VsZWN0ZWRTdGFmZi5zdGFmZklkO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRCb29raW5nU2xvdHModGhpcy5zbG90c1BheWxvYWQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgcmVzLmZvckVhY2goKHRpbWU6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9jYXRpb25UaW1pbmcucHVzaCh7IHNlbGVjdGVkOiBmYWxzZSwgdmFsdWU6IHRoaXMuY29udmVydFRvMjRIb3VyKHRpbWUpIH0pO1xyXG4gICAgICB9KVxyXG4gICAgfSlcclxuICB9XHJcbiAgc2VsZWN0ZWRUaW1lOiBhbnlcclxuICBzZWxlY3RUaW1lU2xvdCh0aW1lOiBhbnkpIHtcclxuICAgIHRpbWUuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRUaW1lKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUaW1lLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkVGltZSA9IHRpbWU7XHJcbiAgICB0aGlzLmFjdGl2ZUJ1dHRvbiA9IHRydWU7XHJcbiAgfVxyXG4gIGNoZWNrUmVxdWlyZWRWYWx1ZXMoKSB7XHJcbiAgICBpZiAodGhpcy5hcHBvaW50bWVudFBheWxvYWQuY3VzdG9tZXJEZXRhaWwubmFtZSAmJiB0aGlzLmFwcG9pbnRtZW50UGF5bG9hZC5jdXN0b21lckRldGFpbC5lbWFpbCAmJiB0aGlzLmFwcG9pbnRtZW50UGF5bG9hZC5jdXN0b21lckRldGFpbC5waG9uZU51bWJlci5sZW5ndGggPT09IDEwKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlQnV0dG9uID0gdHJ1ZTtcclxuICAgICAgLy8gY29uc29sZS5sb2codGhpcy5zZWxlY3RlZFNlcnZpY2UsIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbiwgdGhpcy5zZWxlY3RlZFN0YWZmLCB0aGlzLnNlbGVjdGVkRGF0ZSwgdGhpcy5zZWxlY3RlZFRpbWUsIHRoaXMudXNlckRldGFpbHMpXHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5hY3RpdmVCdXR0b24gPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgYXBwb2ludG1lbnRQYXlsb2FkOiBhbnkgPSB7XHJcbiAgICBzdGFmZkRldGFpbDoge1xyXG4gICAgICBpZDogJycsXHJcbiAgICAgIG5hbWU6ICcnXHJcbiAgICB9LFxyXG4gICAgYm9va2luZ0RhdGU6ICcnLFxyXG4gICAgc3RhcnRUaW1lOiAnJyxcclxuICAgIGN1c3RvbWVyRGV0YWlsOiB7XHJcbiAgICAgIG5hbWU6ICcnLFxyXG4gICAgICBwaG9uZU51bWJlcjogJycsXHJcbiAgICAgIGVtYWlsOiAnJ1xyXG4gICAgfSxcclxuICAgIHNlcnZpY2VEZXRhaWw6IHtcclxuICAgICAgaWQ6ICcnLFxyXG4gICAgICBuYW1lOiAnJ1xyXG4gICAgfSxcclxuICAgIHN0b3JlSWQ6ICcnLFxyXG4gICAgYnVzaW5lc3NJZDogdGhpcy5idXNpbmVzc0lkLFxyXG4gICAgYnVzaW5lc3NOYW1lOiB0aGlzLmJ1c2luZXNzTmFtZVxyXG4gIH1cclxuICBjaGVja1BheW1lbnQoKSB7XHJcbiAgICBjb25zdCByZXF1ZXN0X2Zvcm0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIlJFUVVFU1RfRlJPTVwiKTtcclxuICAgIGlmIChyZXF1ZXN0X2Zvcm0gPT09ICdFQ09NTUVSQ0UnKSB7XHJcbiAgICAgIHRoaXMuY3JlYXRlQXBwb2ludG1lbnQoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFNlcnZpY2U/LmRlcG9zaXRBbW91bnQ/LmRlcG9zaXRSZXF1aXJlZCkge1xyXG4gICAgICAgIHRoaXMucGF5bWVudEJvb2tpbmdBcHBvaW50bWVudCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlQXBwb2ludG1lbnQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gdGhpcy5jcmVhdGVBcHBvaW50bWVudCgpO1xyXG4gIH1cclxuICBhcGlTdGF0dXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjcmVhdGVBcHBvaW50bWVudCgpIHtcclxuICAgIGNvbnN0IGRhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZSA/PyBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgeXl5eSA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIGNvbnN0IG1tID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICBjb25zdCBkZCA9IFN0cmluZyhkYXRlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIHRoaXMuYXBwb2ludG1lbnRQYXlsb2FkLnN0YWZmRGV0YWlsLmlkID0gdGhpcy5zZWxlY3RlZFN0YWZmLnN0YWZmSWQ7XHJcbiAgICB0aGlzLmFwcG9pbnRtZW50UGF5bG9hZC5zdGFmZkRldGFpbC5uYW1lID0gdGhpcy5zZWxlY3RlZFN0YWZmLnN0YWZmTmFtZTtcclxuICAgIHRoaXMuYXBwb2ludG1lbnRQYXlsb2FkLnN0b3JlSWQgPSB0aGlzLnNlbGVjdGVkTG9jYXRpb24uaWQ7XHJcbiAgICB0aGlzLmFwcG9pbnRtZW50UGF5bG9hZC5zZXJ2aWNlRGV0YWlsLmlkID0gdGhpcy5zZWxlY3RlZFNlcnZpY2Uuc2VydmljZUlkO1xyXG4gICAgdGhpcy5hcHBvaW50bWVudFBheWxvYWQuc2VydmljZURldGFpbC5uYW1lID0gdGhpcy5zZWxlY3RlZFNlcnZpY2UubmFtZTtcclxuICAgIHRoaXMuYXBwb2ludG1lbnRQYXlsb2FkLnN0YXJ0VGltZSA9IHRoaXMuc2VsZWN0ZWRUaW1lLnZhbHVlLnNsaWNlKDAsIDUpO1xyXG4gICAgdGhpcy5hcHBvaW50bWVudFBheWxvYWQuYm9va2luZ0RhdGUgPSBgJHt5eXl5fS0ke21tfS0ke2RkfVQwMDowMDowMC4wMDBaYDtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuYm9va0FwcG9pbnRtZW50VjIodGhpcy5hcHBvaW50bWVudFBheWxvYWQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdzdGF0dXNUZW1wbGF0ZSc7XHJcbiAgICAgIHRoaXMuYmFyV2lkdGggPSAnMTAwJztcclxuICAgICAgdGhpcy5hcGlTdGF0dXMgPSB0cnVlO1xyXG4gICAgfSxcclxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmFwaVN0YXR1cyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG4gIHBheW1lbnRCb29raW5nQXBwb2ludG1lbnQoKSB7XHJcbiAgICBjb25zdCBkYXRlID0gdGhpcy5zZWxlY3RlZERhdGUgPz8gbmV3IERhdGUoKTtcclxuICAgIGNvbnN0IHl5eXkgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICBjb25zdCBtbSA9IFN0cmluZyhkYXRlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgY29uc3QgZGQgPSBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICB0aGlzLmFwcG9pbnRtZW50UGF5bG9hZC5zdGFmZkRldGFpbC5pZCA9IHRoaXMuc2VsZWN0ZWRTdGFmZi5zdGFmZklkO1xyXG4gICAgdGhpcy5hcHBvaW50bWVudFBheWxvYWQuc3RhZmZEZXRhaWwubmFtZSA9IHRoaXMuc2VsZWN0ZWRTdGFmZi5zdGFmZk5hbWU7XHJcbiAgICB0aGlzLmFwcG9pbnRtZW50UGF5bG9hZC5zdG9yZUlkID0gdGhpcy5zZWxlY3RlZExvY2F0aW9uLmlkO1xyXG4gICAgdGhpcy5hcHBvaW50bWVudFBheWxvYWQuc2VydmljZURldGFpbC5pZCA9IHRoaXMuc2VsZWN0ZWRTZXJ2aWNlLnNlcnZpY2VJZDtcclxuICAgIHRoaXMuYXBwb2ludG1lbnRQYXlsb2FkLnNlcnZpY2VEZXRhaWwubmFtZSA9IHRoaXMuc2VsZWN0ZWRTZXJ2aWNlLm5hbWU7XHJcbiAgICB0aGlzLmFwcG9pbnRtZW50UGF5bG9hZC5zdGFydFRpbWUgPSB0aGlzLnNlbGVjdGVkVGltZS52YWx1ZS5zbGljZSgwLCA1KTtcclxuICAgIHRoaXMuYXBwb2ludG1lbnRQYXlsb2FkLmJvb2tpbmdEYXRlID0gYCR7eXl5eX0tJHttbX0tJHtkZH1UMDA6MDA6MDAuMDAwWmA7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnBheW1lbnRGb3JBcHBvaW50bWVudCh0aGlzLmFwcG9pbnRtZW50UGF5bG9hZCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnYXBwb2ludG1lbnRQYXltZW50SWQnLCByZXMucGdPcmRlcklkKTtcclxuICAgICAgICB0aGlzLl9ldmVudFNlcnZpY2UuY2FzaEZyZWVFdmVudC5lbWl0KHsgZGF0YTogeyBvcmRlclNpZ25hdHVyZTogcmVzLm9yZGVyU2lnbmF0dXJlIH0gfSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnUGF5bWVudCBGYWlsZWQnLCBkZXRhaWw6IGVycm9yLm1lc3NhZ2UgfSk7XHJcbiAgICAgIH1cclxuICAgIClcclxuXHJcbiAgfVxyXG4gIGdvQmFjaygpIHtcclxuICB9XHJcbn1cclxuIiwiPHAtdG9hc3QgcG9zaXRpb249XCJib3R0b20tcmlnaHRcIiBbYmFzZVpJbmRleF09XCIxMDAwMDAwMDAwMFwiIFthdXRvWkluZGV4XT1cInRydWVcIlxyXG4gICAgW3Nob3dUcmFuc2Zvcm1PcHRpb25zXT1cInNjcmVlbldpZHRoIDwgNDc1ID8gJ3RyYW5zbGF0ZVkoLTEwMCUpJyA6ICcnXCI+PC9wLXRvYXN0PlxyXG48c2VjdGlvbiBjbGFzcz1cIm1haW5fc2VjdGlvblwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1haW5faGVhZGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYWNrLWJ0biBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgZ2FwLTIgbWItM1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29CYWNrKClcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5rZXlib2FyZF9iYWNrc3BhY2U8L21hdC1pY29uPjxzcGFuICpuZ0lmPVwic2NyZWVuV2lkdGggPiA0NzVcIj5CYWNrIHRvIE15IEJvb2tpbmdzPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGgxPkJvb2sgTmV3IEFwcG9pbnRtZW50PC9oMT5cclxuICAgICAgICAgICAgICAgIDxwPnt7YnVzaW5lc3NOYW1lID8/IFwiTi9BXCIgfX08L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYmFyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1maWxsXCIgW3N0eWxlLndpZHRoXT1cImJhcldpZHRoICsgJyUnXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYWluX2JvZHkgdy0xMDAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj48bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRUYWIgPT09ICdzZXJ2aWNlTGlzdGluZydcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlcnZpY2VMaXN0aW5nXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAnbG9jYXRpb25MaXN0aW5nJ1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9jYXRpb25MaXN0aW5nXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAnc3RhZmZMaXN0aW5nJ1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RhZmZMaXN0aW5nXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAnZGF0ZVNlbGVjdGlvbidcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGVTZWxlY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRUYWI9PT0nY29udGFjdERldGFpbHMnXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250YWN0RGV0YWlsc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZFRhYj09PSdwYXltZW50VGFiJ1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGF5bWVudFRhYlwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZFRhYj09PSdzdGF0dXNUZW1wbGF0ZSdcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0YXR1c1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYWluX2Zvb3RlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIiAqbmdJZj1cInNlbGVjdGVkVGFiIT09J3N0YXR1c1RlbXBsYXRlJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXItYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhY2stZm9vdGVyLWJ0biBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJwcmV2aW91c1N0ZXAoKVwiPkJhY2s8L3NwYW4+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb250aW51ZS1idG5cIiBbZGlzYWJsZWRdPVwiIWFjdGl2ZUJ1dHRvblwiIChjbGljayk9XCJuZXh0U3RlcCgpXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRUYWIhPSdwYXltZW50VGFiJ1wiPnt7IWxvYWRlciA/ICdDb250aW51ZScgOiAnTG9hZGluZy4uLid9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY29tcGxldGVfYm9va2luZyBjdXJzb3ItcG9pbnRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWV2ZW5seSBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFRhYj09PSdwYXltZW50VGFiJ1wiIChjbGljayk9XCJjaGVja1BheW1lbnQoKVwiPjxpbWdcclxuICAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Qyejk0OTd4cDh4YjEyLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzMwNDAxMmMxNzUzNDQwMDg3OTk2QmFja2dyb3VuZC5wbmdcIj5Db21wbGV0ZVxyXG4gICAgICAgICAgICAgICAgQm9va2luZzwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuPG5nLXRlbXBsYXRlICNzZXJ2aWNlTGlzdGluZz5cclxuICAgIDxkaXYgY2xhc3M9XCJ3LTYwIHNlcnZpY2Vfc2VjdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLXNlbGVjdGlvblwiPlxyXG4gICAgICAgICAgICA8aDI+U2VsZWN0IGEgU2VydmljZTwvaDI+XHJcbiAgICAgICAgICAgIDxwPkNob29zZSB0aGUgc2VydmljZSB5b3UnZCBsaWtlIHRvIGJvb2s8L3A+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZXMtZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VydmljZSBvZiBzZXJ2aWNlRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIiAoY2xpY2spPVwic2VsZWN0U2VydmljZShzZXJ2aWNlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3NlcnZpY2UtY2FyZC1zZWxlY3RlZCcgOiBzZXJ2aWNlPy5zZWxlY3RlZCwgJ3NlcnZpY2UtY2FyZCc6ICFzZXJ2aWNlPy5zZWxlY3RlZCB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgc2VydmljZS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWljb25cIj48bWF0LWljb24+cGVyc29uX291dGxpbmU8L21hdC1pY29uPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLXRpdGxlXCI+e3tzZXJ2aWNlPy5uYW1lID8gc2VydmljZT8ubmFtZSA6ICdOL0EnfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1jYXRlZ29yeVwiPldlbGxuZXNzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtcHJpY2VcIj7igrl7e3NlcnZpY2U/LnByaWNlRGV0YWlscz8ucHJpY2UgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlPy5wcmljZURldGFpbHM/LnByaWNlIDogJ04vQScgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1kdXJhdGlvblwiPnt7c2VydmljZT8uZHVyYXRpb24gPyBzZXJ2aWNlPy5kdXJhdGlvbiA6ICdOL0EnfX0gbWluXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NlcnZpY2U/LmRlc2NyaXB0aW9uID8gc2VydmljZT8uZGVzY3JpcHRpb24gOiAnTi9BJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaG9tZS12aXNpdFwiICpuZ0lmPVwic2VydmljZT8uaG9tZUFwcG9pbnRtZW50QXZhaWxhYmxlXCI+PGltZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvOTgyMTI2YzE3NTg2Mjg4NjMxMjlmdXJuaXR1cmVfMTY0MDYxMDMucG5nXCI+SG9tZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVmlzaXQgQXZhaWxhYmxlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtaWNvblwiPvCfkaQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtdGl0bGVcIj5HZW5lcmFsIENvbnN1bHRhdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtY2F0ZWdvcnlcIj5NZWRpY2FsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtcHJpY2VcIj7igrk4MDA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWR1cmF0aW9uXCI+MzAgbWluPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENvbXByZWhlbnNpdmUgaGVhbHRoIGNvbnN1bHRhdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1pY29uXCI+8J+noDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1pbmZvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS10aXRsZVwiPk1lbnRhbCBIZWFsdGggQ291bnNlbGluZzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtY2F0ZWdvcnlcIj5NZW50YWwgSGVhbHRoPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtcHJpY2VcIj7igrkxNTAwPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1kdXJhdGlvblwiPjQ1IG1pbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1kZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBQcm9mZXNzaW9uYWwgcHN5Y2hvbG9naWNhbCBzdXBwb3J0XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhvbWUtdmlzaXRcIj5Ib21lIFZpc2l0IEF2YWlsYWJsZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1pY29uXCI+4pyCPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLXRpdGxlXCI+SGFpciBDdXQgJiBTdHlsaW5nPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1jYXRlZ29yeVwiPkJlYXV0eTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLXByaWNlXCI+4oK5MTIwMDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtZHVyYXRpb25cIj40NSBtaW48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgUHJvZmVzc2lvbmFsIGhhaXIgY3V0dGluZyBhbmQgc3R5bGluZ1xyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJob21lLXZpc2l0XCI+SG9tZSBWaXNpdCBBdmFpbGFibGU8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNsb2NhdGlvbkxpc3Rpbmc+XHJcbiAgICA8ZGl2IGNsYXNzPVwibG9jYXRpb25fc2VjdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXIgZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgPGgxPkNob29zZSBMb2NhdGlvbjwvaDE+XHJcbiAgICAgICAgICAgIDxwPlNlbGVjdCB3aGVyZSB5b3UnZCBsaWtlIHRvIHJlY2VpdmUgdGhlIHNlcnZpY2U8L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsb2NhdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxvY2F0aW9uIG9mIGxvY2F0aW9uRGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwic2VsZWN0TG9jYXRpb24obG9jYXRpb24pXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdsb2NhdGlvbi1jYXJkLXNlbGVjdGVkJyA6IGxvY2F0aW9uPy5zZWxlY3RlZCwgJ2xvY2F0aW9uLWNhcmQnOiAhbG9jYXRpb24/LnNlbGVjdGVkIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9jYXRpb24tY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9jYXRpb24taW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uLWljb25cIj48aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNDI3MjI2YzE3NTg2MjkxNTc3NThzdG9yZV8zMTcxNTEwLnBuZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9jYXRpb24tZGV0YWlsc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz57e2xvY2F0aW9uPy5zdG9yZU5hbWUgPyBsb2NhdGlvbj8uc3RvcmVOYW1lIDogJ04vQSd9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaXN0YW5jZVwiPjxtYXQtaWNvbj5sb2NhdGlvbl9vbjwvbWF0LWljb24+IDIuMyBrbTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7bG9jYXRpb24/LmFkZHJlc3NEZXRhaWxzPy5hZGRyZXNzTGluZX19LCB7e2xvY2F0aW9uPy5hZGRyZXNzRGV0YWlscz8uY2l0eX19LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2xvY2F0aW9uPy5hZGRyZXNzRGV0YWlscz8uc3RhdGV9fSB7e2xvY2F0aW9uPy5waW5jb2RlfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImxvY2F0aW9uLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2NhdGlvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uLWluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uLWljb24gYnJhbmNoLWljb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uLWRldGFpbHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMz5CcmFuY2ggQ2xpbmljPC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPjQ1NiBDYXJlIEF2ZW51ZSwgSGVhbHRoIFpvbmUsIE11bWJhaSA0MDAwMTU8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaXN0YW5jZVwiPjUuOCBrbTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2NhdGlvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uLWluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uLWljb24gaG9tZS1pY29uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2NhdGlvbi1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDM+SG9tZSBWaXNpdDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5Zb3VyIExvY2F0aW9uPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGlzdGFuY2VcIj4wIGttPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjc3RhZmZMaXN0aW5nPlxyXG4gICAgPGRpdiBjbGFzcz1cInctNjAgb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCB3LTEwMCBoLTEwMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gSGVhZGVyIFNlY3Rpb24gLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhZmYtaGVhZGVyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDE+U2VsZWN0IFN0YWZmIE1lbWJlcjwvaDE+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzdGFmZi1zdWJ0aXRsZSBtYi0wXCI+Q2hvb3NlIHlvdXIgcHJlZmVycmVkIHByb2Zlc3Npb25hbDwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gU3RhZmYgQ2FyZHMgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGdhcC00IHN0YWZmLWxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdGFmZiBvZiBzdGFmZkRhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiBzdGFmZi1jYXJkIGNhcmQgcm91bmRlZC0zIHAtNFwiIChjbGljayk9XCJzZWxlY3RTdGFmZihzdGFmZilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3RhZmYtYXZhdGFyIHJvdW5kZWQtY2lyY2xlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBtZS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3N0YWZmPy5zdGFmZk5hbWUuc2xpY2UoMCwzKS50b1VwcGVyQ2FzZSgpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGFmZi1kZXRhaWxzIGZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJzdGFmZi1uYW1lXCI+e3tzdGFmZj8uc3RhZmZOYW1lID8gc3RhZmY/LnN0YWZmTmFtZSA6ICdOL0EnfX08L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzdGFmZi1zcGVjaWFsdHlcIj5HZW5lcmFsIE1lZGljaW5lPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzdGFmZi1kZXNjcmlwdGlvbiBtYi0wXCI+RXhwZXJpZW5jZWQgcGh5c2ljaWFuIHdpdGggMTArIHllYXJzIGluXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lZGljaW5lIGFuZCB3ZWxsbmVzcyBjYXJlLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhdGluZy1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGFyLXJhdGluZyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0YXItaWNvblwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmF0aW5nLW51bWJlclwiPjQuOTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXZpZXctY291bnRcIj4xNTYgcmV2aWV3czwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjZGF0ZVNlbGVjdGlvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJ3LTYwIGRhdGVfc2VjdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlciBoLTEwMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXRpbWUtaGVhZGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDE+U2VsZWN0IERhdGUgJiBUaW1lPC9oMT5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImRhdGV0aW1lLXN1YnRpdGxlIG1iLTBcIj5DaG9vc2Ugd2hlbiB5b3UnZCBsaWtlIHlvdXIgYXBwb2ludG1lbnQ8L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIE1haW4gQ29udGVudCAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTQgbWFpbl9jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIExlZnQgQ29sdW1uIC0gRGF0ZSBTZWxlY3Rpb24gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7J3ctNTAnIDogc2NyZWVuV2lkdGggPiA0NzUgLCAndy0xMDAnOnNjcmVlbldpZHRoIDwgNDc1fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1jYXJkIGNhcmQgcm91bmRlZC0zIHAtNCBoLTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlNlbGVjdCBEYXRlPC9oMz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1waWNrZXItY29udGFpbmVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBkYXRlLWlucHV0IGJvcmRlci0wIHJvdW5kZWQtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiZGQtbW0teXl5eVwiIFt2YWx1ZV09XCJzZWxlY3RlZERhdGVTdHJcIiByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ2FsZW5kYXIoJGV2ZW50KVwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtcy0yXCIgKGNsaWNrKT1cInRvZ2dsZUNhbGVuZGFyKCRldmVudClcIj5jYWxlbmRhcl90b2RheTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlci1wb3BvdmVyXCIgKm5nSWY9XCJzaG93Q2FsZW5kYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYWxlbmRhciBbKHNlbGVjdGVkKV09XCJzZWxlY3RlZERhdGVcIiBbZGF0ZUZpbHRlcl09XCJkYXRlRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJvbkRhdGVTZWxlY3RlZCgkZXZlbnQpXCIgY2xhc3M9XCJkYXRlcGlja2VyLWNhbGVuZGFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIFJpZ2h0IENvbHVtbiAtIFRpbWUgU2VsZWN0aW9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lX3NlbGVjdGlvblwiIFtuZ0NsYXNzXT1cInsndy01MCcgOiBzY3JlZW5XaWR0aCA+IDQ3NSAsICd3LTEwMCc6c2NyZWVuV2lkdGggPCA0NzV9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNhcmQgY2FyZCBoLTEwMCByb3VuZGVkLTMgcC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+QXZhaWxhYmxlIFRpbWVzPC9oMz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFRpbWUgU2xvdHMgR3JpZCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZy0yIG1iLTQgb3ZlcmZsb3ctc2Nyb2xsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00XCIgKm5nRm9yPVwibGV0IHRpbWUgb2YgbG9jYXRpb25UaW1pbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtc2xvdCByb3VuZGVkLTJcIiBbY2xhc3Muc2VsZWN0ZWRdPVwidGltZS5zZWxlY3RlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0VGltZVNsb3QodGltZSlcIj57e3RpbWUgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZT8udmFsdWUuc2xpY2UoMCw1KSA6ICdOL0EnfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gV2FpdGxpc3QgU2VjdGlvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWl0bGlzdC1zZWN0aW9uIHJvdW5kZWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBoLTEwMCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndhaXRsaXN0LXRpdGxlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIndhaXRsaXN0LWljb24gY2hlY2staWNvblwiPjwvc3Bhbj5Ob1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3RzIGF2YWlsYWJsZT88L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWl0bGlzdC1kZXNjcmlwdGlvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZmxleENoZWNrQ2hlY2tlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZCBtZSB0byB0aGUgd2FpdGxpc3QgZm9yIGVhcmxpZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjY29udGFjdERldGFpbHM+XHJcbiAgICA8ZGl2IGNsYXNzPVwidy02MCBjb250YWN0X3NlY3Rpb24gb3ZlcmZsb3ctaGlkZGVuXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBoLTEwMFwiID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMTAwIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIEhlYWRlciBTZWN0aW9uIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3QtaGVhZGVyIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDE+Q29udGFjdCBEZXRhaWxzPC9oMT5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImNvbnRhY3Qtc3VidGl0bGUgbWItMFwiPlByb3ZpZGUgeW91ciBjb250YWN0IGluZm9ybWF0aW9uPC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSBGb3JtIFNlY3Rpb25zIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMyBkZXRhaWxzX2NvbnRhaW5lciBmbGV4LWNvbHVtbiB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gTGVmdCBDb2x1bW4gLSBQZXJzb25hbCBJbmZvcm1hdGlvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsndy01MCcgOiBzZWxlY3RlZFNlcnZpY2U/LmhvbWVBcHBvaW50bWVudEF2YWlsYWJsZSwgJ3ctMTAwJyA6ICFzZWxlY3RlZFNlcnZpY2U/LmhvbWVBcHBvaW50bWVudEF2YWlsYWJsZX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXNlY3Rpb24gY2FyZCByb3VuZGVkLTMgcC00IGgtMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlBlcnNvbmFsIEluZm9ybWF0aW9uPC9oMz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBGdWxsIE5hbWUgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGdWxsIE5hbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtYXN0ZXJpc2tcIj4qPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWlucHV0IHJvdW5kZWQtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImFwcG9pbnRtZW50UGF5bG9hZC5jdXN0b21lckRldGFpbC5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoZWNrUmVxdWlyZWRWYWx1ZXMoKVwiIHNpbXBvTGV0dGVyc09ubHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRW1haWwgQWRkcmVzcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtYWlsIEFkZHJlc3NcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtYXN0ZXJpc2tcIj4qPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImVtYWlsXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1pbnB1dCByb3VuZGVkLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhcHBvaW50bWVudFBheWxvYWQuY3VzdG9tZXJEZXRhaWwuZW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hlY2tSZXF1aXJlZFZhbHVlcygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUGhvbmUgTnVtYmVyIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWwgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGhvbmUgTnVtYmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkLWFzdGVyaXNrXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZWxcIiBjbGFzcz1cImZvcm0tY29udHJvbCAgcm91bmRlZC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYXBwb2ludG1lbnRQYXlsb2FkLmN1c3RvbWVyRGV0YWlsLnBob25lTnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoZWNrUmVxdWlyZWRWYWx1ZXMoKVwiIHNpbXBvTnVtYmVyc09ubHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnbW9iaWxlX251bWJlcicgOiBhcHBvaW50bWVudFBheWxvYWQuY3VzdG9tZXJEZXRhaWwucGhvbmVOdW1iZXIubGVuZ3RoICE9IDEwfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFJpZ2h0IENvbHVtbiAtIEhvbWUgVmlzaXQgRGV0YWlscyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctNTBcIiAqbmdJZj1cInNlbGVjdGVkU2VydmljZT8uaG9tZUFwcG9pbnRtZW50QXZhaWxhYmxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1zZWN0aW9uIGNhcmQgcm91bmRlZC0zIHAtNCBoLTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5Ib21lIFZpc2l0IERldGFpbHM8L2gzPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEhvbWUgQWRkcmVzcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhvbWUgQWRkcmVzc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS10ZXh0YXJlYSByb3VuZGVkLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciB5b3VyIGNvbXBsZXRlIGFkZHJlc3NcIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNwZWNpYWwgSW5zdHJ1Y3Rpb25zIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWwgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3BlY2lhbCBJbnN0cnVjdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tdGV4dGFyZWEgcm91bmRlZC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQW55IHNwZWNpYWwgaW5zdHJ1Y3Rpb25zIGZvciB0aGUgcHJvZmVzc2lvbmFsIChvcHRpb25hbClcIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb2xpY2llcy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBIZWFkZXIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInBvbGljaWVzLXRpdGxlXCI+UG9saWNpZXMgJiBUZXJtczwvaDI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFBvbGljeSBJdGVtcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvbGljeS1pdGVtcy1jb250YWluZXIgZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIENhbmNlbGxhdGlvbiBQb2xpY3kgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9saWN5LWl0ZW0gZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dDYW5jZWxsYXRpb25Qb2xpY3kgPSAhc2hvd0NhbmNlbGxhdGlvblBvbGljeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInBvbGljeS10aXRsZVwiPkNhbmNlbGxhdGlvbiBQb2xpY3k8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb2xpY3ktYXJyb3cgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+PG1hdC1pY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFzaG93Q2FuY2VsbGF0aW9uUG9saWN5XCI+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJzaG93Q2FuY2VsbGF0aW9uUG9saWN5XCI+a2V5Ym9hcmRfYXJyb3dfZG93bjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYW5jZWxsYXRpb25fcG9saWNpZXMgZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0yIGZ3LTUwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93Q2FuY2VsbGF0aW9uUG9saWN5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JiM4MjI2OyBGcmVlIGNhbmNlbGxhdGlvbiB1cCB0byAyNCBob3VycyBiZWZvcmUgYXBwb2ludG1lbnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JiM4MjI2OyA1MCUgY2hhcmdlIGZvciBjYW5jZWxsYXRpb25zIHdpdGhpbiAyNCBob3Vyczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4mIzgyMjY7IE5vIHJlZnVuZCBmb3Igbm8tc2hvd3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JiM4MjI2OyBFbWVyZ2VuY3kgY2FuY2VsbGF0aW9ucyB3aWxsIGJlIHJldmlld2VkIGNhc2UgYnkgY2FzZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUmVzY2hlZHVsaW5nIFBvbGljeSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb2xpY3ktaXRlbSBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd1JlZHVjaW5nUG9saWN5ID0gIXNob3dSZWR1Y2luZ1BvbGljeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInBvbGljeS10aXRsZVwiPlJlc2NoZWR1bGluZyBQb2xpY3k8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb2xpY3ktYXJyb3cgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+PG1hdC1pY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFzaG93UmVkdWNpbmdQb2xpY3lcIj5rZXlib2FyZF9hcnJvd19yaWdodDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cInNob3dSZWR1Y2luZ1BvbGljeVwiPmtleWJvYXJkX2Fycm93X2Rvd248L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FuY2VsbGF0aW9uX3BvbGljaWVzIGQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMiBmdy01MDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1JlZHVjaW5nUG9saWN5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JiM4MjI2OyBGcmVlIGNhbmNlbGxhdGlvbiB1cCB0byAyNCBob3VycyBiZWZvcmUgYXBwb2ludG1lbnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JiM4MjI2OyA1MCUgY2hhcmdlIGZvciBjYW5jZWxsYXRpb25zIHdpdGhpbiAyNCBob3Vyczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4mIzgyMjY7IE5vIHJlZnVuZCBmb3Igbm8tc2hvd3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+JiM4MjI2OyBFbWVyZ2VuY3kgY2FuY2VsbGF0aW9ucyB3aWxsIGJlIHJldmlld2VkIGNhc2UgYnkgY2FzZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gQWNjZXB0YW5jZSBTZWN0aW9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjZXB0YW5jZS1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJjdXN0b20tY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiYWNjZXB0YW5jZS10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSSB1bmRlcnN0YW5kIGFuZCBhY2NlcHQgdGhlIGNhbmNlbGxhdGlvbiAmIHJlc2NoZWR1bGluZyBwb2xpY2llcyBhbmRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwidGVybXMtbGlua1wiPlRlcm1zICYgQ29uZGl0aW9uczxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV4dGVybmFsLWxpbmstaWNvblwiPjwvc3Bhbj48L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcGF5bWVudFRhYj5cclxuICAgIDxkaXYgY2xhc3M9XCJ3LTYwIHBheW1lbnRfc2VjdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBoLTEwMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIEhlYWRlciBTZWN0aW9uIC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBheW1lbnQtaGVhZGVyIG1iLTMgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDE+UGF5bWVudCAmIENvbmZpcm1hdGlvbjwvaDE+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJwYXltZW50LXN1YnRpdGxlIG1iLTBcIj5SZXZpZXcgeW91ciBib29raW5nIGFuZCBjb21wbGV0ZSBwYXltZW50PC9wPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSBCb29raW5nIFN1bW1hcnkgQ2FyZCAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib29raW5nLXN1bW1hcnktY2FyZFwiIFtuZ0NsYXNzXT1cInsndy0xMDAnIDogc2NyZWVuV2lkdGggPCA0NzUsJ3ctNTAnOnNjcmVlbldpZHRoID4gNDc1fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInN1bW1hcnktdGl0bGVcIj5Cb29raW5nIFN1bW1hcnk8L2gyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIFNlcnZpY2UgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5LWxhYmVsXCI+U2VydmljZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS12YWx1ZVwiPnt7c2VsZWN0ZWRTZXJ2aWNlPy5uYW1lID8gc2VsZWN0ZWRTZXJ2aWNlPy5uYW1lIDogJ04vQSd9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIFByb2Zlc3Npb25hbCAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktbGFiZWxcIj5Qcm9mZXNzaW9uYWw8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktdmFsdWVcIj57e3NlbGVjdGVkU3RhZmY/LnN0YWZmTmFtZSA/IHNlbGVjdGVkU3RhZmY/LnN0YWZmTmFtZSA6ICdOL0EnfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBMb2NhdGlvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktbGFiZWxcIj5Mb2NhdGlvbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS12YWx1ZVwiPnt7c2VsZWN0ZWRMb2NhdGlvbj8uc3RvcmVOYW1lID8gc2VsZWN0ZWRMb2NhdGlvbj8uc3RvcmVOYW1lIDogJ04vQSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBEYXRlICYgVGltZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktbGFiZWxcIj5EYXRlICYgVGltZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS12YWx1ZVwiPnt7c2VsZWN0ZWREYXRlU3RyID8gKHNlbGVjdGVkRGF0ZVN0cikgOiAnTi9BJ319IGF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNTozMDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIER1cmF0aW9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS1sYWJlbFwiPkR1cmF0aW9uPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5LXZhbHVlXCI+e3tzZWxlY3RlZFNlcnZpY2U/LmR1cmF0aW9uID8gc2VsZWN0ZWRTZXJ2aWNlPy5kdXJhdGlvbiA6ICdOL0EnfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbnV0ZXM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktbGFiZWxcIj5UYXggUGVyY2VudDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS12YWx1ZVwiPnt7c2VsZWN0ZWRTZXJ2aWNlPy5wcmljZURldGFpbHM/LnRheFBlcmNlbnQgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRTZXJ2aWNlPy5wcmljZURldGFpbHM/LnRheFBlcmNlbnQgOiAnTi9BJ319JTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gVG90YWwgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1bW1hcnktcm93IHRvdGFsLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VtbWFyeS1sYWJlbFwiPlRvdGFsPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdW1tYXJ5LXZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnJlbmN5LXN5bWJvbFwiPuKCuTwvc3Bhbj57e3NlbGVjdGVkU2VydmljZT8ucHJpY2VEZXRhaWxzPy5wcmljZSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFNlcnZpY2U/LnByaWNlRGV0YWlscz8ucHJpY2UgOiAnTi9BJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjc3RhdHVzVGVtcGxhdGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYm9va2luZy1jb25maXJtYXRpb25cIj5cclxuICAgICAgICA8IS0tIFN1Y2Nlc3MgSWNvbiAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3VjY2Vzcy1pY29uXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja21hcmstY2lyY2xlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvODgxMjkzYzE3NTg2OTU1Nzg1MThzdWNjZXNzLmdpZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEwMCBoLTEwMFwiICpuZ0lmPVwiYXBpU3RhdHVzXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvMzI1MDAwYzE3NTg2OTU1NjQ1MThmYWlsLmdpZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEwMCBoLTEwMFwiICpuZ0lmPVwiIWFwaVN0YXR1c1wiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBNYWluIENvbnRlbnQgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpcm1hdGlvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxoMSBjbGFzcz1cImNvbmZpcm1hdGlvbi10aXRsZVwiPnt7YXBpU3RhdHVzID8gJ0Jvb2tpbmcgQ29uZmlybWVkIScgOiAnQm9va2luZyBGYWlsZWQnfX08L2gxPlxyXG4gICAgICAgICAgICA8cCBjbGFzcz1cImNvbmZpcm1hdGlvbi1tZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICB7e2FwaVN0YXR1cyA/ICdZb3VyIGFwcG9pbnRtZW50IGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBib29rZWQuJzonRmFpbGVkIHRvIGJvb2sgeW91IGFwcG9pbnRtZW50LiBQbGVhc2VcclxuICAgICAgICAgICAgICAgIHRyeSBhZ2FpbiBsYXRlcid9fVxyXG4gICAgICAgICAgICA8L3A+XHJcblxyXG4gICAgICAgICAgICA8IS0tIERldGFpbHMgQ2FyZCAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCB3LTEwMCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiICpuZ0lmPVwiYXBpU3RhdHVzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiZGV0YWlscy10aXRsZVwiPkFwcG9pbnRtZW50IERldGFpbHM8L2gzPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtbGFiZWxcIj5TZXJ2aWNlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRldGFpbC12YWx1ZVwiPnt7YXBwb2ludG1lbnRQYXlsb2FkLnNlcnZpY2VEZXRhaWw/Lm5hbWUgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwb2ludG1lbnRQYXlsb2FkLnNlcnZpY2VEZXRhaWw/Lm5hbWUgOiAnTi9BJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtbGFiZWxcIj5Qcm9mZXNzaW9uYWw8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGV0YWlsLXZhbHVlXCI+e3thcHBvaW50bWVudFBheWxvYWQuc3RhZmZEZXRhaWw/Lm5hbWUgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwb2ludG1lbnRQYXlsb2FkLnN0YWZmRGV0YWlsPy5uYW1lIDogJ04vQSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtbGFiZWxcIj5EYXRlICYgVGltZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXRhaWwtdmFsdWVcIj57e2FwcG9pbnRtZW50UGF5bG9hZC5ib29raW5nRGF0ZSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBvaW50bWVudFBheWxvYWQuYm9va2luZ0RhdGUuc2xpY2UoMCw4KSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTi9BJ319IGF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2FwcG9pbnRtZW50UGF5bG9hZC5zdGFydFRpbWUgPyBhcHBvaW50bWVudFBheWxvYWQuc3RhcnRUaW1lIDogJ04vQSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICA8IS0tIEFjdGlvbiBCdXR0b25zIC0tPlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJhY3Rpb24tYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZVwiPlZpZXcgTXkgQm9va2luZ3M8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIj5CYWNrIHRvIEFkbWluPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -13112,8 +13112,8 @@ class AppointmentBookingComponent {
13112
13112
  this.appointmentPayload.startTime = this.selectedTime.value.slice(0, 5);
13113
13113
  this.appointmentPayload.bookingDate = `${yyyy}-${mm}-${dd}T00:00:00.000Z`;
13114
13114
  this.restService.paymentForAppointment(this.appointmentPayload).subscribe((res) => {
13115
- this._eventService.cashFreeEvent.emit({ data: { orderSignature: res.orderSignature } });
13116
13115
  localStorage.setItem('appointmentPaymentId', res.pgOrderId);
13116
+ this._eventService.cashFreeEvent.emit({ data: { orderSignature: res.orderSignature } });
13117
13117
  }, (error) => {
13118
13118
  this.loader = false;
13119
13119
  this.messageService.add({ severity: 'error', summary: 'Payment Failed', detail: error.message });