@bizdoc/core 2.1.10 → 2.1.11

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.
@@ -148,11 +148,11 @@ export class ScheduleViewComponent {
148
148
  this._router.navigate(['mailbox/d', evt.documentId.encodeId()]);
149
149
  }
150
150
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ScheduleViewComponent, deps: [{ token: i1.SessionService }, { token: i2.MailboxService }, { token: i3.PanesRouter }, { token: i4.PromptService }], target: i0.ɵɵFactoryTarget.Component }); }
151
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ScheduleViewComponent, selector: "bizdoc-schedule", inputs: { selectedDate: "selectedDate" }, outputs: { selectedDateChange: "selectedDateChange" }, viewQueries: [{ propertyName: "schedule", first: true, predicate: ["schedule"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button [bizdocTooltip]=\"'PrevPage'|translate\" (click)=\"prev()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <span class=\"mat-mdc-body\">{{ starting | dateRange : ending : calendarOptions }}</span>\r\n <button mat-icon-button [bizdocTooltip]=\"'NextPage'|translate\" (click)=\"next()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [bizdocTooltip]=\"'View'|translate\" [matMenuTriggerFor]=\"view\"><mat-icon>view_agenda</mat-icon></button>\r\n <mat-menu #view>\r\n <button mat-menu-item (click)=\"changeView('WorkWeek')\">{{'WorkWeek'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Month')\">{{'Month'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Agenda')\">{{'Agenda'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('MonthAgenda')\">{{'MonthAgenda'|translate}}</button>\r\n <!--<button mat-menu-item (click)=\"changeView('TimelineMonth')\">{{'TimelineMonth'|translate}}</button>-->\r\n <button mat-menu-item (click)=\"changeView('Day')\">{{'Day'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Year')\">{{'Year'|translate}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"export()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n</mat-toolbar>\r\n<style scoped> \r\n .e-popup-close {\r\n display: none\r\n }\r\n</style>\r\n<ejs-schedule #schedule [eventSettings]=\"eventSettings\" [currentView]=\"currentView\" [selectedDate]=\"selectedDate\"\r\n [readonly]=\"true\" (navigating)=\"nav($event)\" height=\"100%\" [showHeaderBar]=\"false\"\r\n (select)=\"select($event)\" class=\"flex\"\r\n (eventClick)=\"eventClick($event)\" (dragStart)=\"drag($event)\" [@swape]=\"page\">\r\n <e-views>\r\n <e-view option=\"Month\"></e-view>\r\n <e-view option=\"Day\"></e-view>\r\n <e-view option=\"WorkWeek\"></e-view>\r\n <e-view option=\"Agenda\"></e-view>\r\n <e-view option=\"MonthAgenda\"></e-view>\r\n <e-view option=\"TimelineMonth\"></e-view>\r\n <e-view option=\"Year\"></e-view>\r\n </e-views>\r\n</ejs-schedule>\r\n", styles: ["::ng-deep .e-dlg-container{display:none}::ng-deep .e-popup{display:none}:host{display:flex;flex-direction:column}\n", " \n .e-popup-close {\n display: none\n }\n"], dependencies: [{ kind: "component", type: i5.ScheduleComponent, selector: "ejs-schedule", inputs: ["agendaDaysCount", "allowDragAndDrop", "allowInline", "allowKeyboardInteraction", "allowMultiCellSelection", "allowMultiDrag", "allowMultiRowSelection", "allowResizing", "allowSwiping", "calendarMode", "cellHeaderTemplate", "cellTemplate", "cssClass", "currentView", "dateFormat", "dateHeaderTemplate", "dateRangeTemplate", "dayHeaderTemplate", "editorFooterTemplate", "editorHeaderTemplate", "editorTemplate", "enableAdaptiveUI", "enableAllDayScroll", "enableHtmlSanitizer", "enablePersistence", "enableRecurrenceValidation", "enableRtl", "endHour", "eventDragArea", "eventSettings", "firstDayOfWeek", "firstMonthOfYear", "group", "headerIndentTemplate", "headerRows", "height", "hideEmptyAgendaDays", "locale", "maxDate", "minDate", "monthHeaderTemplate", "monthsCount", "quickInfoOnSelectionEnd", "quickInfoTemplates", "readonly", "resourceHeaderTemplate", "resources", "rowAutoHeight", "selectedDate", "showHeaderBar", "showQuickInfo", "showTimeIndicator", "showWeekNumber", "showWeekend", "startHour", "timeFormat", "timeScale", "timezone", "timezoneDataSource", "views", "weekRule", "width", "workDays", "workHours"], outputs: ["actionBegin", "actionComplete", "actionFailure", "cellClick", "cellDoubleClick", "created", "dataBinding", "dataBound", "destroyed", "drag", "dragStart", "dragStop", "eventClick", "eventRendered", "hover", "moreEventsClick", "navigating", "popupClose", "popupOpen", "renderCell", "resizeStart", "resizeStop", "resizing", "select", "virtualScrollStart", "virtualScrollStop", "currentViewChange", "selectedDateChange"] }, { kind: "directive", type: i5.ViewDirective, selector: "e-views>e-view", inputs: ["allowVirtualScrolling", "cellHeaderTemplate", "cellTemplate", "dateFormat", "dateHeaderTemplate", "dateRangeTemplate", "dayHeaderTemplate", "displayDate", "displayName", "enableLazyLoading", "endHour", "eventTemplate", "firstDayOfWeek", "firstMonthOfYear", "group", "headerIndentTemplate", "headerRows", "interval", "isSelected", "monthHeaderTemplate", "monthsCount", "numberOfWeeks", "option", "orientation", "readonly", "resourceHeaderTemplate", "showWeekNumber", "showWeekend", "startHour", "timeFormat", "timeScale", "workDays"] }, { kind: "directive", type: i5.ViewsDirective, selector: "ejs-schedule>e-views" }, { kind: "component", type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i10.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i11.DateRangePipe, name: "dateRange" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }], animations: [swapAnimation] }); }
151
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ScheduleViewComponent, selector: "bizdoc-schedule", inputs: { selectedDate: "selectedDate" }, outputs: { selectedDateChange: "selectedDateChange" }, viewQueries: [{ propertyName: "schedule", first: true, predicate: ["schedule"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button [bizdocTooltip]=\"'PrevPage'|translate\" (click)=\"prev()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <span class=\"mat-body\">{{ starting | dateRange : ending : calendarOptions }}</span>\r\n <button mat-icon-button [bizdocTooltip]=\"'NextPage'|translate\" (click)=\"next()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [bizdocTooltip]=\"'View'|translate\" [matMenuTriggerFor]=\"view\"><mat-icon>view_agenda</mat-icon></button>\r\n <mat-menu #view>\r\n <button mat-menu-item (click)=\"changeView('WorkWeek')\">{{'WorkWeek'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Month')\">{{'Month'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Agenda')\">{{'Agenda'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('MonthAgenda')\">{{'MonthAgenda'|translate}}</button>\r\n <!--<button mat-menu-item (click)=\"changeView('TimelineMonth')\">{{'TimelineMonth'|translate}}</button>-->\r\n <button mat-menu-item (click)=\"changeView('Day')\">{{'Day'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Year')\">{{'Year'|translate}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"export()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n</mat-toolbar>\r\n<style scoped> \r\n .e-popup-close {\r\n display: none\r\n }\r\n</style>\r\n<ejs-schedule #schedule [eventSettings]=\"eventSettings\" [currentView]=\"currentView\" [selectedDate]=\"selectedDate\"\r\n [readonly]=\"true\" (navigating)=\"nav($event)\" height=\"100%\" [showHeaderBar]=\"false\"\r\n (select)=\"select($event)\" class=\"flex\"\r\n (eventClick)=\"eventClick($event)\" (dragStart)=\"drag($event)\" [@swape]=\"page\">\r\n <e-views>\r\n <e-view option=\"Month\"></e-view>\r\n <e-view option=\"Day\"></e-view>\r\n <e-view option=\"WorkWeek\"></e-view>\r\n <e-view option=\"Agenda\"></e-view>\r\n <e-view option=\"MonthAgenda\"></e-view>\r\n <e-view option=\"TimelineMonth\"></e-view>\r\n <e-view option=\"Year\"></e-view>\r\n </e-views>\r\n</ejs-schedule>\r\n", styles: ["::ng-deep .e-dlg-container{display:none}::ng-deep .e-popup{display:none}:host{display:flex;flex-direction:column}\n", " \n .e-popup-close {\n display: none\n }\n"], dependencies: [{ kind: "component", type: i5.ScheduleComponent, selector: "ejs-schedule", inputs: ["agendaDaysCount", "allowDragAndDrop", "allowInline", "allowKeyboardInteraction", "allowMultiCellSelection", "allowMultiDrag", "allowMultiRowSelection", "allowResizing", "allowSwiping", "calendarMode", "cellHeaderTemplate", "cellTemplate", "cssClass", "currentView", "dateFormat", "dateHeaderTemplate", "dateRangeTemplate", "dayHeaderTemplate", "editorFooterTemplate", "editorHeaderTemplate", "editorTemplate", "enableAdaptiveUI", "enableAllDayScroll", "enableHtmlSanitizer", "enablePersistence", "enableRecurrenceValidation", "enableRtl", "endHour", "eventDragArea", "eventSettings", "firstDayOfWeek", "firstMonthOfYear", "group", "headerIndentTemplate", "headerRows", "height", "hideEmptyAgendaDays", "locale", "maxDate", "minDate", "monthHeaderTemplate", "monthsCount", "quickInfoOnSelectionEnd", "quickInfoTemplates", "readonly", "resourceHeaderTemplate", "resources", "rowAutoHeight", "selectedDate", "showHeaderBar", "showQuickInfo", "showTimeIndicator", "showWeekNumber", "showWeekend", "startHour", "timeFormat", "timeScale", "timezone", "timezoneDataSource", "views", "weekRule", "width", "workDays", "workHours"], outputs: ["actionBegin", "actionComplete", "actionFailure", "cellClick", "cellDoubleClick", "created", "dataBinding", "dataBound", "destroyed", "drag", "dragStart", "dragStop", "eventClick", "eventRendered", "hover", "moreEventsClick", "navigating", "popupClose", "popupOpen", "renderCell", "resizeStart", "resizeStop", "resizing", "select", "virtualScrollStart", "virtualScrollStop", "currentViewChange", "selectedDateChange"] }, { kind: "directive", type: i5.ViewDirective, selector: "e-views>e-view", inputs: ["allowVirtualScrolling", "cellHeaderTemplate", "cellTemplate", "dateFormat", "dateHeaderTemplate", "dateRangeTemplate", "dayHeaderTemplate", "displayDate", "displayName", "enableLazyLoading", "endHour", "eventTemplate", "firstDayOfWeek", "firstMonthOfYear", "group", "headerIndentTemplate", "headerRows", "interval", "isSelected", "monthHeaderTemplate", "monthsCount", "numberOfWeeks", "option", "orientation", "readonly", "resourceHeaderTemplate", "showWeekNumber", "showWeekend", "startHour", "timeFormat", "timeScale", "workDays"] }, { kind: "directive", type: i5.ViewsDirective, selector: "ejs-schedule>e-views" }, { kind: "component", type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i10.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i11.DateRangePipe, name: "dateRange" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }], animations: [swapAnimation] }); }
152
152
  }
153
153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ScheduleViewComponent, decorators: [{
154
154
  type: Component,
155
- args: [{ selector: 'bizdoc-schedule', animations: [swapAnimation], template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button [bizdocTooltip]=\"'PrevPage'|translate\" (click)=\"prev()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <span class=\"mat-mdc-body\">{{ starting | dateRange : ending : calendarOptions }}</span>\r\n <button mat-icon-button [bizdocTooltip]=\"'NextPage'|translate\" (click)=\"next()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [bizdocTooltip]=\"'View'|translate\" [matMenuTriggerFor]=\"view\"><mat-icon>view_agenda</mat-icon></button>\r\n <mat-menu #view>\r\n <button mat-menu-item (click)=\"changeView('WorkWeek')\">{{'WorkWeek'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Month')\">{{'Month'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Agenda')\">{{'Agenda'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('MonthAgenda')\">{{'MonthAgenda'|translate}}</button>\r\n <!--<button mat-menu-item (click)=\"changeView('TimelineMonth')\">{{'TimelineMonth'|translate}}</button>-->\r\n <button mat-menu-item (click)=\"changeView('Day')\">{{'Day'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Year')\">{{'Year'|translate}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"export()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n</mat-toolbar>\r\n<style scoped> \r\n .e-popup-close {\r\n display: none\r\n }\r\n</style>\r\n<ejs-schedule #schedule [eventSettings]=\"eventSettings\" [currentView]=\"currentView\" [selectedDate]=\"selectedDate\"\r\n [readonly]=\"true\" (navigating)=\"nav($event)\" height=\"100%\" [showHeaderBar]=\"false\"\r\n (select)=\"select($event)\" class=\"flex\"\r\n (eventClick)=\"eventClick($event)\" (dragStart)=\"drag($event)\" [@swape]=\"page\">\r\n <e-views>\r\n <e-view option=\"Month\"></e-view>\r\n <e-view option=\"Day\"></e-view>\r\n <e-view option=\"WorkWeek\"></e-view>\r\n <e-view option=\"Agenda\"></e-view>\r\n <e-view option=\"MonthAgenda\"></e-view>\r\n <e-view option=\"TimelineMonth\"></e-view>\r\n <e-view option=\"Year\"></e-view>\r\n </e-views>\r\n</ejs-schedule>\r\n", styles: ["::ng-deep .e-dlg-container{display:none}::ng-deep .e-popup{display:none}:host{display:flex;flex-direction:column}\n", " \n .e-popup-close {\n display: none\n }\n"] }]
155
+ args: [{ selector: 'bizdoc-schedule', animations: [swapAnimation], template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button [bizdocTooltip]=\"'PrevPage'|translate\" (click)=\"prev()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <span class=\"mat-body\">{{ starting | dateRange : ending : calendarOptions }}</span>\r\n <button mat-icon-button [bizdocTooltip]=\"'NextPage'|translate\" (click)=\"next()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [bizdocTooltip]=\"'View'|translate\" [matMenuTriggerFor]=\"view\"><mat-icon>view_agenda</mat-icon></button>\r\n <mat-menu #view>\r\n <button mat-menu-item (click)=\"changeView('WorkWeek')\">{{'WorkWeek'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Month')\">{{'Month'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Agenda')\">{{'Agenda'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('MonthAgenda')\">{{'MonthAgenda'|translate}}</button>\r\n <!--<button mat-menu-item (click)=\"changeView('TimelineMonth')\">{{'TimelineMonth'|translate}}</button>-->\r\n <button mat-menu-item (click)=\"changeView('Day')\">{{'Day'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Year')\">{{'Year'|translate}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"export()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n</mat-toolbar>\r\n<style scoped> \r\n .e-popup-close {\r\n display: none\r\n }\r\n</style>\r\n<ejs-schedule #schedule [eventSettings]=\"eventSettings\" [currentView]=\"currentView\" [selectedDate]=\"selectedDate\"\r\n [readonly]=\"true\" (navigating)=\"nav($event)\" height=\"100%\" [showHeaderBar]=\"false\"\r\n (select)=\"select($event)\" class=\"flex\"\r\n (eventClick)=\"eventClick($event)\" (dragStart)=\"drag($event)\" [@swape]=\"page\">\r\n <e-views>\r\n <e-view option=\"Month\"></e-view>\r\n <e-view option=\"Day\"></e-view>\r\n <e-view option=\"WorkWeek\"></e-view>\r\n <e-view option=\"Agenda\"></e-view>\r\n <e-view option=\"MonthAgenda\"></e-view>\r\n <e-view option=\"TimelineMonth\"></e-view>\r\n <e-view option=\"Year\"></e-view>\r\n </e-views>\r\n</ejs-schedule>\r\n", styles: ["::ng-deep .e-dlg-container{display:none}::ng-deep .e-popup{display:none}:host{display:flex;flex-direction:column}\n", " \n .e-popup-close {\n display: none\n }\n"] }]
156
156
  }], ctorParameters: function () { return [{ type: i1.SessionService }, { type: i2.MailboxService }, { type: i3.PanesRouter }, { type: i4.PromptService }]; }, propDecorators: { selectedDateChange: [{
157
157
  type: Output
158
158
  }], selectedDate: [{
@@ -161,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
161
161
  type: ViewChild,
162
162
  args: ['schedule', { static: true }]
163
163
  }] } });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9zY2hlZHVsZXIvc2NoZWR1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9zY2hlZHVsZXIvc2NoZWR1bGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQTJDLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNILE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUsxQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBU25ELHlCQUF5QjtBQUN6QixNQUFNLE9BQU8scUJBQXFCO0lBY2hDLHFCQUFxQjtJQUNyQixZQUNFLE9BQXVCLEVBQ2YsUUFBd0IsRUFDeEIsT0FBb0IsRUFDcEIsR0FBa0I7UUFGbEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNwQixRQUFHLEdBQUgsR0FBRyxDQUFlO1FBbEJULHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFeEQsb0JBQWUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDakQsa0JBQWEsR0FBdUI7WUFDM0MsV0FBVyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLO1lBQzdELFVBQVUsRUFBRSxFQUFFO1NBQ2YsQ0FBQztRQUtNLGlCQUFZLEdBQVMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQVMsSUFBSSxVQUFVLENBQUM7UUFRdEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVE7WUFDdEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzlGLENBQUM7SUFDRCxXQUFXLENBQUMsUUFBdUI7UUFDakMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFDRCxlQUFlO1FBQ2IsMkRBQTJEO0lBQzdELENBQUM7SUFDRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFDRCxVQUFVLENBQUMsSUFBVTtRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFXO1FBQ3pCLFlBQVksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJO1FBQ0YsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0MsUUFBUSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3hCLEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxRQUFRLENBQUM7WUFDZCxLQUFLLGFBQWE7Z0JBQ2hCLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixNQUFNO1lBQ1IsS0FBSyxLQUFLO2dCQUNSLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixNQUFNO1NBQ1Q7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsSUFBSTtRQUNGLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdDLFFBQVEsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUN4QixLQUFLLE9BQU8sQ0FBQztZQUNiLEtBQUssUUFBUSxDQUFDO1lBQ2QsS0FBSyxhQUFhO2dCQUNoQixJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3hCLE1BQU07WUFDUixLQUFLLEtBQUs7Z0JBQ1IsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUN4QixNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDeEIsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3hCLE1BQU07U0FDVDtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDTyxTQUFTO1FBQ2YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtZQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2pELFFBQVEsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUN4QixLQUFLLE9BQU8sQ0FBQztZQUNiLEtBQUssUUFBUSxDQUFDO1lBQ2QsS0FBSyxhQUFhO2dCQUNoQixNQUFNO1lBQ1IsS0FBSyxLQUFLO2dCQUNSLE1BQU07WUFDUixLQUFLLFVBQVU7Z0JBQ2IsTUFBTTtZQUNSLEtBQUssTUFBTTtnQkFDVCxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ2pELE1BQU07U0FDVDtRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBUztZQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBUyxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN6RCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDckIsT0FBTzt3QkFDTCxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUU7d0JBQ1IsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO3dCQUN4QixTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQzt3QkFDL0IsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTt3QkFDN0MsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLO3dCQUNoQixRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLFFBQVE7cUJBQy9DLENBQUE7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDOUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3RDLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUU7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksQ0FBQyxDQUFZO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFDRCxHQUFHLENBQUMsQ0FBc0I7UUFDeEIsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQ2hCLEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFtQixDQUFDO2dCQUN6QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pCLE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDakIsTUFBTTtTQUNUO0lBQ0gsQ0FBQztJQUNELE1BQU0sQ0FBQyxDQUFrQjtJQUV6QixDQUFDO0lBQ0QsVUFBVSxDQUFDLENBQWlCO1FBQzFCLE1BQU0sR0FBRyxHQUFJLENBQUMsQ0FBQyxLQUFhLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQzs4R0ExSVUscUJBQXFCO2tHQUFyQixxQkFBcUIsaVNDakJsQyxrekVBb0NBLDhtSER4QmMsQ0FBQyxhQUFhLENBQUM7OzJGQUtoQixxQkFBcUI7a0JBUmpDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBRWYsQ0FBQyxhQUFhLENBQUM7d0xBTVIsa0JBQWtCO3NCQUFwQyxNQUFNO2dCQUNFLFlBQVk7c0JBQXBCLEtBQUs7Z0JBT21DLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFdmVudFNldHRpbmdzTW9kZWwsIFZpZXcsIE5hdmlnYXRpbmdFdmVudEFyZ3MsIEV2ZW50Q2xpY2tBcmdzLCBTY2hlZHVsZSwgU2VsZWN0RXZlbnRBcmdzIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItc2NoZWR1bGUnO1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgeyBNYWlsYm94U2VydmljZSB9IGZyb20gJy4uL2NvcmUvbWFpbGJveC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYW5lc1JvdXRlciB9IGZyb20gJy4uL2NvcmUvc2xvdHMvcm91dGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgc3dhcEFuaW1hdGlvbiB9IGZyb20gJy4uL2NvcmUvYW5pbWF0aW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1zY2hlZHVsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NjaGVkdWxlLmNvbXBvbmVudC5odG1sJyxcclxuICBhbmltYXRpb25zOiBbc3dhcEFuaW1hdGlvbl0sXHJcbiAgc3R5bGVVcmxzOiBbXHJcbiAgICAnLi9zY2hlZHVsZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbi8qKiBTY2hlZHVsZXIgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIFNjaGVkdWxlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICBASW5wdXQoKSBzZWxlY3RlZERhdGU6IERhdGU7XHJcbiAgcmVhZG9ubHkgY2FsZW5kYXJPcHRpb25zID0geyBtOiAnTU1NJywgZDogJ0QnLCB3OiBmYWxzZSB9O1xyXG4gIHJlYWRvbmx5IGV2ZW50U2V0dGluZ3M6IEV2ZW50U2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIGFsbG93QWRkaW5nOiBmYWxzZSwgYWxsb3dFZGl0aW5nOiBmYWxzZSwgYWxsb3dEZWxldGluZzogZmFsc2UsXHJcbiAgICBkYXRhU291cmNlOiBbXVxyXG4gIH07XHJcbiAgcGFnZTogbnVtYmVyO1xyXG4gIEBWaWV3Q2hpbGQoJ3NjaGVkdWxlJywgeyBzdGF0aWM6IHRydWUgfSkgc2NoZWR1bGU6IFNjaGVkdWxlO1xyXG4gIHN0YXJ0aW5nOiBEYXRlO1xyXG4gIGVuZGluZzogRGF0ZTtcclxuICBwcml2YXRlIF9jdXJyZW50VmlldzogVmlldyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzY2hlZHVsZVZpZXcnKSBhcyBWaWV3IHx8ICdXb3JrV2Vlayc7XHJcbiAgICBob2xpZGF5czogYW55O1xyXG4gIC8qKiBTY2hlZHVsZXIgY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9tYWlsYm94OiBNYWlsYm94U2VydmljZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSkge1xyXG4gICAgdGhpcy5ob2xpZGF5cyA9IHNlc3Npb24ucHJvZmlsZS5ob2xpZGF5cyAmJlxyXG4gICAgICBzZXNzaW9uLnByb2ZpbGUuaG9saWRheXMubWFwKGggPT4gKHsgZnJvbTogaC5zdGFydERhdGUsIHRvOiBoLmZyb21EYXRlLCBsYWJlbDogaC50aXRsZSB9KSlcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoX2NoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuX3BvcHVsYXRlKCk7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIC8vdGhpcy5zY2hlZHVsZS5zY3JvbGxUbyh0aGlzLnNlbGVjdGVkRGF0ZS50b1RpbWVTdHJpbmcoKSk7XHJcbiAgfVxyXG4gIGV4cG9ydCgpIHtcclxuICAgIHRoaXMuc2NoZWR1bGUuZXhwb3J0VG9JQ2FsZW5kYXIoKTtcclxuICB9XHJcbiAgY2hhbmdlVmlldyh2aWV3OiBWaWV3KSB7XHJcbiAgICB0aGlzLnNjaGVkdWxlLmNoYW5nZVZpZXcodmlldyk7XHJcbiAgfVxyXG4gIGdldCBjdXJyZW50VmlldygpOiBWaWV3IHtcclxuICAgIHJldHVybiB0aGlzLl9jdXJyZW50VmlldztcclxuICB9XHJcbiAgc2V0IGN1cnJlbnRWaWV3KHZhbHVlOiBWaWV3KSB7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2NoZWR1bGVWaWV3JywgdmFsdWUpO1xyXG4gICAgdGhpcy5fY3VycmVudFZpZXcgPSB2YWx1ZTtcclxuICB9XHJcbiAgcHJldigpIHtcclxuICAgIGxldCBkYXRlID0gZGF5anModGhpcy5zY2hlZHVsZS5zZWxlY3RlZERhdGUpO1xyXG4gICAgc3dpdGNoICh0aGlzLmN1cnJlbnRWaWV3KSB7XHJcbiAgICAgIGNhc2UgJ01vbnRoJzpcclxuICAgICAgY2FzZSAnQWdlbmRhJzpcclxuICAgICAgY2FzZSAnTW9udGhBZ2VuZGEnOlxyXG4gICAgICAgIGRhdGUgPSBkYXRlLmFkZCgtMSwgJ00nKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnRGF5JzpcclxuICAgICAgICBkYXRlID0gZGF0ZS5hZGQoLTEsICdkJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1dvcmtXZWVrJzpcclxuICAgICAgICBkYXRlID0gZGF0ZS5hZGQoLTEsICd3Jyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1llYXInOlxyXG4gICAgICAgIGRhdGUgPSBkYXRlLmFkZCgtMSwgJ3knKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMuc2NoZWR1bGUuY2hhbmdlRGF0ZShkYXRlLnRvRGF0ZSgpKTtcclxuICB9XHJcbiAgbmV4dCgpIHtcclxuICAgIGxldCBkYXRlID0gZGF5anModGhpcy5zY2hlZHVsZS5zZWxlY3RlZERhdGUpO1xyXG4gICAgc3dpdGNoICh0aGlzLmN1cnJlbnRWaWV3KSB7XHJcbiAgICAgIGNhc2UgJ01vbnRoJzpcclxuICAgICAgY2FzZSAnQWdlbmRhJzpcclxuICAgICAgY2FzZSAnTW9udGhBZ2VuZGEnOlxyXG4gICAgICAgIGRhdGUgPSBkYXRlLmFkZCgxLCAnTScpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdEYXknOlxyXG4gICAgICAgIGRhdGUgPSBkYXRlLmFkZCgxLCAnZCcpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdXb3JrV2Vlayc6XHJcbiAgICAgICAgZGF0ZSA9IGRhdGUuYWRkKDEsICd3Jyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1llYXInOlxyXG4gICAgICAgIGRhdGUgPSBkYXRlLmFkZCgxLCAneScpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zY2hlZHVsZS5jaGFuZ2VEYXRlKGRhdGUudG9EYXRlKCkpO1xyXG4gIH1cclxuICBwcml2YXRlIF9wb3B1bGF0ZSgpIHtcclxuICAgIGNvbnN0IGRhdGVzID0gdGhpcy5zY2hlZHVsZS5nZXRDdXJyZW50Vmlld0RhdGVzKCk7XHJcbiAgICBpZiAoIWRhdGVzLmxlbmd0aCkgZGF0ZXMucHVzaCh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudFZpZXcpIHtcclxuICAgICAgY2FzZSAnTW9udGgnOlxyXG4gICAgICBjYXNlICdBZ2VuZGEnOlxyXG4gICAgICBjYXNlICdNb250aEFnZW5kYSc6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0RheSc6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1dvcmtXZWVrJzpcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnWWVhcic6XHJcbiAgICAgICAgZGF0ZXMucHVzaChkYXlqcyhkYXRlc1swXSkuYWRkKDEsICd5JykudG9EYXRlKCkpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdGFydGluZyA9IGRhdGVzWzBdIGFzIERhdGUsXHJcbiAgICAgIHRoaXMuZW5kaW5nID0gZGF0ZXNbZGF0ZXMubGVuZ3RoIC0gMV0gYXMgRGF0ZTtcclxuICAgIHRoaXMuX21haWxib3guZXZlbnRzKHRoaXMuc3RhcnRpbmcsIHRoaXMuZW5kaW5nKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByID0+IHtcclxuICAgICAgICBjb25zdCBkYXRhID0gci5tYXAoZSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBJZDogZS5pZCxcclxuICAgICAgICAgICAgZG9jdW1lbnRJZDogZS5kb2N1bWVudElkLFxyXG4gICAgICAgICAgICBTdGFydFRpbWU6IG5ldyBEYXRlKGUuc3RhcnRpbmcpLFxyXG4gICAgICAgICAgICBFbmRUaW1lOiBlLmVuZGluZyA/IG5ldyBEYXRlKGUuZW5kaW5nKSA6IG51bGwsXHJcbiAgICAgICAgICAgIFN1YmplY3Q6IGUudGl0bGUsXHJcbiAgICAgICAgICAgIElzQWxsRGF5OiAhZS5lbmRpbmcgfHwgZS5lbmRpbmcgPT09IGUuc3RhcnRpbmdcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlLmV2ZW50U2V0dGluZ3MuZGF0YVNvdXJjZSA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy5wYWdlID0gdGhpcy5zdGFydGluZy52YWx1ZU9mKCk7XHJcbiAgICAgIH0sIGVycm9yOiAoKSA9PiB0aGlzLl9zYi5lcnJvcigpXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZHJhZyhfOiBEcmFnRXZlbnQpIHtcclxuICAgIHRoaXMuX21haWxib3guY2hhbmdlRXZlbnQoMSwgeyBzdGFydGluZzogbnVsbCB9KS5zdWJzY3JpYmUoeyBlcnJvcjogKCkgPT4gdGhpcy5fc2IuZXJyb3IoKSB9KTtcclxuICB9XHJcbiAgbmF2KGU6IE5hdmlnYXRpbmdFdmVudEFyZ3MpIHtcclxuICAgIHN3aXRjaCAoZS5hY3Rpb24pIHtcclxuICAgICAgY2FzZSAndmlldyc6XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VmlldyA9IGUuY3VycmVudFZpZXcgYXMgVmlldztcclxuICAgICAgICB0aGlzLl9wb3B1bGF0ZSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdkYXRlJzpcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KGUuY3VycmVudERhdGUpO1xyXG4gICAgICAgIHRoaXMuX3BvcHVsYXRlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdChlOiBTZWxlY3RFdmVudEFyZ3MpIHtcclxuXHJcbiAgfVxyXG4gIGV2ZW50Q2xpY2soZTogRXZlbnRDbGlja0FyZ3MpIHtcclxuICAgIGNvbnN0IGV2dCA9IChlLmV2ZW50IGFzIGFueSk7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydtYWlsYm94L2QnLCBldnQuZG9jdW1lbnRJZC5lbmNvZGVJZCgpXSk7XHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtdG9vbGJhciBjbGFzcz1cIm5hdi10b29sYmFyXCI+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW2JpemRvY1Rvb2x0aXBdPVwiJ1ByZXZQYWdlJ3x0cmFuc2xhdGVcIiAoY2xpY2spPVwicHJldigpXCI+PG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxzcGFuIGNsYXNzPVwibWF0LW1kYy1ib2R5XCI+e3sgc3RhcnRpbmcgfCBkYXRlUmFuZ2UgOiBlbmRpbmcgOiBjYWxlbmRhck9wdGlvbnMgIH19PC9zcGFuPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFtiaXpkb2NUb29sdGlwXT1cIidOZXh0UGFnZSd8dHJhbnNsYXRlXCIgKGNsaWNrKT1cIm5leHQoKVwiPjxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5rZXlib2FyZF9hcnJvd19yaWdodDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFtiaXpkb2NUb29sdGlwXT1cIidWaWV3J3x0cmFuc2xhdGVcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwidmlld1wiPjxtYXQtaWNvbj52aWV3X2FnZW5kYTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPG1hdC1tZW51ICN2aWV3PlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjaGFuZ2VWaWV3KCdXb3JrV2VlaycpXCI+e3snV29ya1dlZWsnfHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNoYW5nZVZpZXcoJ01vbnRoJylcIj57eydNb250aCd8dHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiY2hhbmdlVmlldygnQWdlbmRhJylcIj57eydBZ2VuZGEnfHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNoYW5nZVZpZXcoJ01vbnRoQWdlbmRhJylcIj57eydNb250aEFnZW5kYSd8dHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgIDwhLS08YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNoYW5nZVZpZXcoJ1RpbWVsaW5lTW9udGgnKVwiPnt7J1RpbWVsaW5lTW9udGgnfHRyYW5zbGF0ZX19PC9idXR0b24+LS0+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNoYW5nZVZpZXcoJ0RheScpXCI+e3snRGF5J3x0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjaGFuZ2VWaWV3KCdZZWFyJylcIj57eydZZWFyJ3x0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gIDwvbWF0LW1lbnU+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImV4cG9ydCgpXCIgYml6ZG9jVG9vbHRpcD1cInt7J0Rvd25sb2FkJyB8IHRyYW5zbGF0ZX19XCI+PG1hdC1pY29uPnNhdmVfYWx0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuPC9tYXQtdG9vbGJhcj5cclxuPHN0eWxlIHNjb3BlZD4gXHJcbiAgLmUtcG9wdXAtY2xvc2Uge1xyXG4gICAgZGlzcGxheTogbm9uZVxyXG4gIH1cclxuPC9zdHlsZT5cclxuPGVqcy1zY2hlZHVsZSAjc2NoZWR1bGUgW2V2ZW50U2V0dGluZ3NdPVwiZXZlbnRTZXR0aW5nc1wiIFtjdXJyZW50Vmlld109XCJjdXJyZW50Vmlld1wiIFtzZWxlY3RlZERhdGVdPVwic2VsZWN0ZWREYXRlXCJcclxuICAgICAgICAgICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiIChuYXZpZ2F0aW5nKT1cIm5hdigkZXZlbnQpXCIgaGVpZ2h0PVwiMTAwJVwiIFtzaG93SGVhZGVyQmFyXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAoc2VsZWN0KT1cInNlbGVjdCgkZXZlbnQpXCIgY2xhc3M9XCJmbGV4XCJcclxuICAgICAgICAgICAgICAoZXZlbnRDbGljayk9XCJldmVudENsaWNrKCRldmVudClcIiAoZHJhZ1N0YXJ0KT1cImRyYWcoJGV2ZW50KVwiIFtAc3dhcGVdPVwicGFnZVwiPlxyXG4gIDxlLXZpZXdzPlxyXG4gICAgPGUtdmlldyBvcHRpb249XCJNb250aFwiPjwvZS12aWV3PlxyXG4gICAgPGUtdmlldyBvcHRpb249XCJEYXlcIj48L2Utdmlldz5cclxuICAgIDxlLXZpZXcgb3B0aW9uPVwiV29ya1dlZWtcIj48L2Utdmlldz5cclxuICAgIDxlLXZpZXcgb3B0aW9uPVwiQWdlbmRhXCI+PC9lLXZpZXc+XHJcbiAgICA8ZS12aWV3IG9wdGlvbj1cIk1vbnRoQWdlbmRhXCI+PC9lLXZpZXc+XHJcbiAgICA8ZS12aWV3IG9wdGlvbj1cIlRpbWVsaW5lTW9udGhcIj48L2Utdmlldz5cclxuICAgIDxlLXZpZXcgb3B0aW9uPVwiWWVhclwiPjwvZS12aWV3PlxyXG4gIDwvZS12aWV3cz5cclxuPC9lanMtc2NoZWR1bGU+XHJcbiJdfQ==
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9zY2hlZHVsZXIvc2NoZWR1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9zY2hlZHVsZXIvc2NoZWR1bGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQTJDLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNILE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUsxQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBU25ELHlCQUF5QjtBQUN6QixNQUFNLE9BQU8scUJBQXFCO0lBY2hDLHFCQUFxQjtJQUNyQixZQUNFLE9BQXVCLEVBQ2YsUUFBd0IsRUFDeEIsT0FBb0IsRUFDcEIsR0FBa0I7UUFGbEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNwQixRQUFHLEdBQUgsR0FBRyxDQUFlO1FBbEJULHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFeEQsb0JBQWUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDakQsa0JBQWEsR0FBdUI7WUFDM0MsV0FBVyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLO1lBQzdELFVBQVUsRUFBRSxFQUFFO1NBQ2YsQ0FBQztRQUtNLGlCQUFZLEdBQVMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQVMsSUFBSSxVQUFVLENBQUM7UUFRdEYsSUFBSSxDQUFD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LElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDakIsTUFBTTtTQUNUO0lBQ0gsQ0FBQztJQUNELE1BQU0sQ0FBQyxDQUFrQjtJQUV6QixDQUFDO0lBQ0QsVUFBVSxDQUFDLENBQWlCO1FBQzFCLE1BQU0sR0FBRyxHQUFJLENBQUMsQ0FBQyxLQUFhLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQzs4R0ExSVUscUJBQXFCO2tHQUFyQixxQkFBcUIsaVNDakJsQyw4eUVBb0NBLDhtSER4QmMsQ0FBQyxhQUFhLENBQUM7OzJGQUtoQixxQkFBcUI7a0JBUmpDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBRWYsQ0FBQyxhQUFhLENBQUM7d0xBTVIsa0JBQWtCO3NCQUFwQyxNQUFNO2dCQUNFLFlBQVk7c0JBQXBCLEtBQUs7Z0JBT21DLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFdmVudFNldHRpbmdzTW9kZWwsIFZpZXcsIE5hdmlnYXRpbmdFdmVudEFyZ3MsIEV2ZW50Q2xpY2tBcmdzLCBTY2hlZHVsZSwgU2VsZWN0RXZlbnRBcmdzIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItc2NoZWR1bGUnO1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgeyBNYWlsYm94U2VydmljZSB9IGZyb20gJy4uL2NvcmUvbWFpbGJveC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYW5lc1JvdXRlciB9IGZyb20gJy4uL2NvcmUvc2xvdHMvcm91dGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgc3dhcEFuaW1hdGlvbiB9IGZyb20gJy4uL2NvcmUvYW5pbWF0aW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1zY2hlZHVsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NjaGVkdWxlLmNvbXBvbmVudC5odG1sJyxcclxuICBhbmltYXRpb25zOiBbc3dhcEFuaW1hdGlvbl0sXHJcbiAgc3R5bGVVcmxzOiBbXHJcbiAgICAnLi9zY2hlZHVsZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbi8qKiBTY2hlZHVsZXIgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIFNjaGVkdWxlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICBASW5wdXQoKSBzZWxlY3RlZERhdGU6IERhdGU7XHJcbiAgcmVhZG9ubHkgY2FsZW5kYXJPcHRpb25zID0geyBtOiAnTU1NJywgZDogJ0QnLCB3OiBmYWxzZSB9O1xyXG4gIHJlYWRvbmx5IGV2ZW50U2V0dGluZ3M6IEV2ZW50U2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIGFsbG93QWRkaW5nOiBmYWxzZSwgYWxsb3dFZGl0aW5nOiBmYWxzZSwgYWxsb3dEZWxldGluZzogZmFsc2UsXHJcbiAgICBkYXRhU291cmNlOiBbXVxyXG4gIH07XHJcbiAgcGFnZTogbnVtYmVyO1xyXG4gIEBWaWV3Q2hpbGQoJ3NjaGVkdWxlJywgeyBzdGF0aWM6IHRydWUgfSkgc2NoZWR1bGU6IFNjaGVkdWxlO1xyXG4gIHN0YXJ0aW5nOiBEYXRlO1xyXG4gIGVuZGluZzogRGF0ZTtcclxuICBwcml2YXRlIF9jdXJyZW50VmlldzogVmlldyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzY2hlZHVsZVZpZXcnKSBhcyBWaWV3IHx8ICdXb3JrV2Vlayc7XHJcbiAgICBob2xpZGF5czogYW55O1xyXG4gIC8qKiBTY2hlZHVsZXIgY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9tYWlsYm94OiBNYWlsYm94U2VydmljZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSkge1xyXG4gICAgdGhpcy5ob2xpZGF5cyA9IHNlc3Npb24ucHJvZmlsZS5ob2xpZGF5cyAmJlxyXG4gICAgICBzZXNzaW9uLnByb2ZpbGUuaG9saWRheXMubWFwKGggPT4gKHsgZnJvbTogaC5zdGFydERhdGUsIHRvOiBoLmZyb21EYXRlLCBsYWJlbDogaC50aXRsZSB9KSlcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoX2NoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuX3BvcHVsYXRlKCk7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIC8vdGhpcy5zY2hlZHVsZS5zY3JvbGxUbyh0aGlzLnNlbGVjdGVkRGF0ZS50b1RpbWVTdHJpbmcoKSk7XHJcbiAgfVxyXG4gIGV4cG9ydCgpIHtcclxuICAgIHRoaXMuc2NoZWR1bGUuZXhwb3J0VG9JQ2FsZW5kYXIoKTtcclxuICB9XHJcbiAgY2hhbmdlVmlldyh2aWV3OiBWaWV3KSB7XHJcbiAgICB0aGlzLnNjaGVkdWxlLmNoYW5nZVZpZXcodmlldyk7XHJcbiAgfVxyXG4gIGdldCBjdXJyZW50VmlldygpOiBWaWV3IHtcclxuICAgIHJldHVybiB0aGlzLl9jdXJyZW50VmlldztcclxuICB9XHJcbiAgc2V0IGN1cnJlbnRWaWV3KHZhbHVlOiBWaWV3KSB7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2NoZWR1bGVWaWV3JywgdmFsdWUpO1xyXG4gICAgdGhpcy5fY3VycmVudFZpZXcgPSB2YWx1ZTtcclxuICB9XHJcbiAgcHJldigpIHtcclxuICAgIGxldCBkYXRlID0gZGF5anModGhpcy5zY2hlZHVsZS5zZWxlY3RlZERhdGUpO1xyXG4gICAgc3dpdGNoICh0aGlzLmN1cnJlbnRWaWV3KSB7XHJcbiAgICAgIGNhc2UgJ01vbnRoJzpcclxuICAgICAgY2FzZSAnQWdlbmRhJzpcclxuICAgICAgY2FzZSAnTW9udGhBZ2VuZGEnOlxyXG4gICAgICAgIGRhdGUgPSBkYXRlLmFkZCgtMSwgJ00nKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnRGF5JzpcclxuICAgICAgICBkYXRlID0gZGF0ZS5hZGQoLTEsICdkJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1dvcmtXZWVrJzpcclxuICAgICAgICBkYXRlID0gZGF0ZS5hZGQoLTEsICd3Jyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1llYXInOlxyXG4gICAgICAgIGRhdGUgPSBkYXRlLmFkZCgtMSwgJ3knKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMuc2NoZWR1bGUuY2hhbmdlRGF0ZShkYXRlLnRvRGF0ZSgpKTtcclxuICB9XHJcbiAgbmV4dCgpIHtcclxuICAgIGxldCBkYXRlID0gZGF5anModGhpcy5zY2hlZHVsZS5zZWxlY3RlZERhdGUpO1xyXG4gICAgc3dpdGNoICh0aGlzLmN1cnJlbnRWaWV3KSB7XHJcbiAgICAgIGNhc2UgJ01vbnRoJzpcclxuICAgICAgY2FzZSAnQWdlbmRhJzpcclxuICAgICAgY2FzZSAnTW9udGhBZ2VuZGEnOlxyXG4gICAgICAgIGRhdGUgPSBkYXRlLmFkZCgxLCAnTScpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdEYXknOlxyXG4gICAgICAgIGRhdGUgPSBkYXRlLmFkZCgxLCAnZCcpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdXb3JrV2Vlayc6XHJcbiAgICAgICAgZGF0ZSA9IGRhdGUuYWRkKDEsICd3Jyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1llYXInOlxyXG4gICAgICAgIGRhdGUgPSBkYXRlLmFkZCgxLCAneScpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zY2hlZHVsZS5jaGFuZ2VEYXRlKGRhdGUudG9EYXRlKCkpO1xyXG4gIH1cclxuICBwcml2YXRlIF9wb3B1bGF0ZSgpIHtcclxuICAgIGNvbnN0IGRhdGVzID0gdGhpcy5zY2hlZHVsZS5nZXRDdXJyZW50Vmlld0RhdGVzKCk7XHJcbiAgICBpZiAoIWRhdGVzLmxlbmd0aCkgZGF0ZXMucHVzaCh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudFZpZXcpIHtcclxuICAgICAgY2FzZSAnTW9udGgnOlxyXG4gICAgICBjYXNlICdBZ2VuZGEnOlxyXG4gICAgICBjYXNlICdNb250aEFnZW5kYSc6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0RheSc6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1dvcmtXZWVrJzpcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnWWVhcic6XHJcbiAgICAgICAgZGF0ZXMucHVzaChkYXlqcyhkYXRlc1swXSkuYWRkKDEsICd5JykudG9EYXRlKCkpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdGFydGluZyA9IGRhdGVzWzBdIGFzIERhdGUsXHJcbiAgICAgIHRoaXMuZW5kaW5nID0gZGF0ZXNbZGF0ZXMubGVuZ3RoIC0gMV0gYXMgRGF0ZTtcclxuICAgIHRoaXMuX21haWxib3guZXZlbnRzKHRoaXMuc3RhcnRpbmcsIHRoaXMuZW5kaW5nKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByID0+IHtcclxuICAgICAgICBjb25zdCBkYXRhID0gci5tYXAoZSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBJZDogZS5pZCxcclxuICAgICAgICAgICAgZG9jdW1lbnRJZDogZS5kb2N1bWVudElkLFxyXG4gICAgICAgICAgICBTdGFydFRpbWU6IG5ldyBEYXRlKGUuc3RhcnRpbmcpLFxyXG4gICAgICAgICAgICBFbmRUaW1lOiBlLmVuZGluZyA/IG5ldyBEYXRlKGUuZW5kaW5nKSA6IG51bGwsXHJcbiAgICAgICAgICAgIFN1YmplY3Q6IGUudGl0bGUsXHJcbiAgICAgICAgICAgIElzQWxsRGF5OiAhZS5lbmRpbmcgfHwgZS5lbmRpbmcgPT09IGUuc3RhcnRpbmdcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNjaGVkdWxlLmV2ZW50U2V0dGluZ3MuZGF0YVNvdXJjZSA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy5wYWdlID0gdGhpcy5zdGFydGluZy52YWx1ZU9mKCk7XHJcbiAgICAgIH0sIGVycm9yOiAoKSA9PiB0aGlzLl9zYi5lcnJvcigpXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZHJhZyhfOiBEcmFnRXZlbnQpIHtcclxuICAgIHRoaXMuX21haWxib3guY2hhbmdlRXZlbnQoMSwgeyBzdGFydGluZzogbnVsbCB9KS5zdWJzY3JpYmUoeyBlcnJvcjogKCkgPT4gdGhpcy5fc2IuZXJyb3IoKSB9KTtcclxuICB9XHJcbiAgbmF2KGU6IE5hdmlnYXRpbmdFdmVudEFyZ3MpIHtcclxuICAgIHN3aXRjaCAoZS5hY3Rpb24pIHtcclxuICAgICAgY2FzZSAndmlldyc6XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VmlldyA9IGUuY3VycmVudFZpZXcgYXMgVmlldztcclxuICAgICAgICB0aGlzLl9wb3B1bGF0ZSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdkYXRlJzpcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KGUuY3VycmVudERhdGUpO1xyXG4gICAgICAgIHRoaXMuX3BvcHVsYXRlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdChlOiBTZWxlY3RFdmVudEFyZ3MpIHtcclxuXHJcbiAgfVxyXG4gIGV2ZW50Q2xpY2soZTogRXZlbnRDbGlja0FyZ3MpIHtcclxuICAgIGNvbnN0IGV2dCA9IChlLmV2ZW50IGFzIGFueSk7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydtYWlsYm94L2QnLCBldnQuZG9jdW1lbnRJZC5lbmNvZGVJZCgpXSk7XHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtdG9vbGJhciBjbGFzcz1cIm5hdi10b29sYmFyXCI+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW2JpemRvY1Rvb2x0aXBdPVwiJ1ByZXZQYWdlJ3x0cmFuc2xhdGVcIiAoY2xpY2spPVwicHJldigpXCI+PG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxzcGFuIGNsYXNzPVwibWF0LWJvZHlcIj57eyBzdGFydGluZyB8IGRhdGVSYW5nZSA6IGVuZGluZyA6IGNhbGVuZGFyT3B0aW9ucyAgfX08L3NwYW4+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW2JpemRvY1Rvb2x0aXBdPVwiJ05leHRQYWdlJ3x0cmFuc2xhdGVcIiAoY2xpY2spPVwibmV4dCgpXCI+PG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPmtleWJvYXJkX2Fycm93X3JpZ2h0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW2JpemRvY1Rvb2x0aXBdPVwiJ1ZpZXcnfHRyYW5zbGF0ZVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJ2aWV3XCI+PG1hdC1pY29uPnZpZXdfYWdlbmRhPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8bWF0LW1lbnUgI3ZpZXc+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNoYW5nZVZpZXcoJ1dvcmtXZWVrJylcIj57eydXb3JrV2Vlayd8dHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiY2hhbmdlVmlldygnTW9udGgnKVwiPnt7J01vbnRoJ3x0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjaGFuZ2VWaWV3KCdBZ2VuZGEnKVwiPnt7J0FnZW5kYSd8dHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiY2hhbmdlVmlldygnTW9udGhBZ2VuZGEnKVwiPnt7J01vbnRoQWdlbmRhJ3x0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgPCEtLTxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiY2hhbmdlVmlldygnVGltZWxpbmVNb250aCcpXCI+e3snVGltZWxpbmVNb250aCd8dHJhbnNsYXRlfX08L2J1dHRvbj4tLT5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiY2hhbmdlVmlldygnRGF5JylcIj57eydEYXknfHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNoYW5nZVZpZXcoJ1llYXInKVwiPnt7J1llYXInfHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgPC9tYXQtbWVudT5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZXhwb3J0KClcIiBiaXpkb2NUb29sdGlwPVwie3snRG93bmxvYWQnIHwgdHJhbnNsYXRlfX1cIj48bWF0LWljb24+c2F2ZV9hbHQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG48L21hdC10b29sYmFyPlxyXG48c3R5bGUgc2NvcGVkPiBcclxuICAuZS1wb3B1cC1jbG9zZSB7XHJcbiAgICBkaXNwbGF5OiBub25lXHJcbiAgfVxyXG48L3N0eWxlPlxyXG48ZWpzLXNjaGVkdWxlICNzY2hlZHVsZSBbZXZlbnRTZXR0aW5nc109XCJldmVudFNldHRpbmdzXCIgW2N1cnJlbnRWaWV3XT1cImN1cnJlbnRWaWV3XCIgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVcIlxyXG4gICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCIgKG5hdmlnYXRpbmcpPVwibmF2KCRldmVudClcIiBoZWlnaHQ9XCIxMDAlXCIgW3Nob3dIZWFkZXJCYXJdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgIChzZWxlY3QpPVwic2VsZWN0KCRldmVudClcIiBjbGFzcz1cImZsZXhcIlxyXG4gICAgICAgICAgICAgIChldmVudENsaWNrKT1cImV2ZW50Q2xpY2soJGV2ZW50KVwiIChkcmFnU3RhcnQpPVwiZHJhZygkZXZlbnQpXCIgW0Bzd2FwZV09XCJwYWdlXCI+XHJcbiAgPGUtdmlld3M+XHJcbiAgICA8ZS12aWV3IG9wdGlvbj1cIk1vbnRoXCI+PC9lLXZpZXc+XHJcbiAgICA8ZS12aWV3IG9wdGlvbj1cIkRheVwiPjwvZS12aWV3PlxyXG4gICAgPGUtdmlldyBvcHRpb249XCJXb3JrV2Vla1wiPjwvZS12aWV3PlxyXG4gICAgPGUtdmlldyBvcHRpb249XCJBZ2VuZGFcIj48L2Utdmlldz5cclxuICAgIDxlLXZpZXcgb3B0aW9uPVwiTW9udGhBZ2VuZGFcIj48L2Utdmlldz5cclxuICAgIDxlLXZpZXcgb3B0aW9uPVwiVGltZWxpbmVNb250aFwiPjwvZS12aWV3PlxyXG4gICAgPGUtdmlldyBvcHRpb249XCJZZWFyXCI+PC9lLXZpZXc+XHJcbiAgPC9lLXZpZXdzPlxyXG48L2Vqcy1zY2hlZHVsZT5cclxuIl19