@colijnit/sharedcomponents 258.1.1 → 258.1.3

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.
@@ -201,12 +201,13 @@ AgendaHeaderComponent.decorators = [
201
201
  <div class="hour-label-placeholder" *ngIf="viewSelection">
202
202
  <view-select [selectedView]="view" (selectedViewChange)="changeTheView($event)"></view-select>
203
203
  </div>
204
+ <div class="month-description" *ngIf="weekDays?.length > 0">
205
+ {{ weekDays[0].weekdayMonthLong + ' ' + weekDays[0].weekdayYear }}
206
+ </div>
204
207
  <div class="week-day-label days-around" *ngFor="let weekDay of weekDays; let index = index"
205
208
  [class.selected]="weekDay.weekdaySelected" (click)="setUnit(weekDay)">
206
209
  <co-icon *ngIf="showBackButton && index === 0" class="pointer-hover no-user-select sub-unit-icon dark"
207
210
  [iconData]="iconCacheService.getIcon(icons.ArrowPointLeft)" (click)="subUnit()"></co-icon>
208
- <div *ngIf="weekDay.newMonth" [textContent]="weekDay.weekdayMonthLong + ' ' + weekDay.weekdayYear"
209
- class="month-description"></div>
210
211
  <div class="weekday-value day"
211
212
  [textContent]="capitalizeString(weekDay.weekdayShort)"></div>
212
213
  <div class="weekday-value date"
@@ -278,4 +279,4 @@ AgendaHeaderComponent.propDecorators = {
278
279
  selectedDateChange: [{ type: Output }],
279
280
  rangeChange: [{ type: Output }]
280
281
  };
281
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbmRhLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBsYW5uaW5nL2NvbXBvbmVudC9hZ2VuZGEvYWdlbmRhLWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBR04sTUFBTSxFQUNOLFNBQVMsRUFBRSxpQkFBaUIsRUFDN0IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUdqRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDL0QsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQTtBQUMvQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFaEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBZ0Z4RSxNQUFNLE9BQU8scUJBQXFCO0lBMkQ5QixZQUN3QyxPQUFxQixFQUNqRCxXQUF1QixFQUN2QixTQUFvQixFQUNwQixPQUFlLEVBQ2hCLGdCQUFrQztRQUpMLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFDakQsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixZQUFPLEdBQVAsT0FBTyxD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QUNWLEtBQUssWUFBWSxDQUFDLFNBQVM7b0JBQ3ZCLE1BQU0sV0FBVyxHQUFTLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUN6RSxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7b0JBQ3JDLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO3dCQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDO3FCQUN4SDtvQkFDRCxNQUFNO2FBQ2I7U0FDSjtJQUNMLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFhO1FBQ25DLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQzs7O1lBaFNKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBeUVUO2dCQUNILGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUF4Rk8sWUFBWSx1QkFxSlgsTUFBTSxTQUFDLFNBQVM7WUFqS3ZCLFVBQVU7WUFTVixTQUFTO1lBSlQsTUFBTTtZQWdCQSxnQkFBZ0I7OzsyQkF3Rm5CLEtBQUs7bUJBVUwsS0FBSztpQ0FHTCxLQUFLOzJCQVlMLEtBQUs7NEJBTUwsS0FBSzt5QkFHTCxNQUFNO2lDQUdOLE1BQU07MEJBR04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIExPQ0FMRV9JRCxcclxuICBOZ1pvbmUsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUmVuZGVyZXIyLCBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Q2FsZW5kYXJWaWV3fSBmcm9tIFwiLi4vLi4vLi4vLi4vZW51bS9jYWxlbmRhci12aWV3LmVudW1cIjtcclxuaW1wb3J0IHtMYW5ndWFnZUNvZGV9IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL2xhbmd1YWdlLWNvZGUuZW51bVwiO1xyXG5pbXBvcnQge1dlZWtkYXl9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbC93ZWVrZGF5Lm1vZGVsXCI7XHJcbmltcG9ydCB7V2Vla30gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVsL3dlZWsubW9kZWxcIjtcclxuaW1wb3J0IHtDYWxlbmRhclV0aWxzfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbHMvY2FsZW5kYXIudXRpbHNcIjtcclxuaW1wb3J0IHtOVUxMX0RBWX0gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVsL2FnZW5kYS1udWxsLW9iamVjdHNcIjtcclxuaW1wb3J0IHtEYXl9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbC9kYXkubW9kZWxcIlxyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0FnZW5kYUV2ZW50UGVyRGF5fSBmcm9tIFwiLi4vLi4vLi4vLi4vbW9kZWwvYWdlbmRhLWV2ZW50LXBlci1kYXkubW9kZWxcIjtcclxuaW1wb3J0IHtEYXRlVXRpbHN9IGZyb20gXCIuLi8uLi8uLi8uLi91dGlscy9kYXRlLXV0aWxzXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImFnZW5kYS1oZWFkZXJcIixcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhZ2VuZGEtaGVhZGVyLXdyYXBwZXJcIiAqbmdJZj1cInZpZXcgPT09IHZpZXdUeXBlcy5EYXlWaWV3XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhvdXItbGFiZWwtcGxhY2Vob2xkZXJcIiAqbmdJZj1cInZpZXdTZWxlY3Rpb25cIj5cclxuICAgICAgICAgIDx2aWV3LXNlbGVjdCBbc2VsZWN0ZWRWaWV3XT1cInZpZXdcIiAoc2VsZWN0ZWRWaWV3Q2hhbmdlKT1cImNoYW5nZVRoZVZpZXcoJGV2ZW50KVwiPjwvdmlldy1zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndlZWstZGF5LWxhYmVsXCI+XHJcbiAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3Qgc3ViLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludExlZnQpXCIgKGNsaWNrKT1cInN1YlVuaXQoKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXktZGVzY3JpcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiZGF5LmRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3QgYWRkLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludFJpZ2h0KVwiIChjbGljayk9XCJhZGRVbml0KClcIj48L2NvLWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWdlbmRhLWhlYWRlci13cmFwcGVyIGRheXMtYXJvdW5kXCIgKm5nSWY9XCJ2aWV3ID09PSB2aWV3VHlwZXMuRGF5c0Fyb3VuZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJob3VyLWxhYmVsLXBsYWNlaG9sZGVyXCIgKm5nSWY9XCJ2aWV3U2VsZWN0aW9uXCI+XHJcbiAgICAgICAgICA8dmlldy1zZWxlY3QgW3NlbGVjdGVkVmlld109XCJ2aWV3XCIgKHNlbGVjdGVkVmlld0NoYW5nZSk9XCJjaGFuZ2VUaGVWaWV3KCRldmVudClcIj48L3ZpZXctc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrLWRheS1sYWJlbCBkYXlzLWFyb3VuZFwiICpuZ0Zvcj1cImxldCB3ZWVrRGF5IG9mIHdlZWtEYXlzOyBsZXQgaW5kZXggPSBpbmRleFwiXHJcbiAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwid2Vla0RheS53ZWVrZGF5U2VsZWN0ZWRcIiAoY2xpY2spPVwic2V0VW5pdCh3ZWVrRGF5KVwiPlxyXG4gICAgICAgICAgPGNvLWljb24gKm5nSWY9XCJzaG93QmFja0J1dHRvbiAmJiBpbmRleCA9PT0gMFwiIGNsYXNzPVwicG9pbnRlci1ob3ZlciBuby11c2VyLXNlbGVjdCBzdWItdW5pdC1pY29uIGRhcmtcIlxyXG4gICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50TGVmdClcIiAoY2xpY2spPVwic3ViVW5pdCgpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cIndlZWtEYXkubmV3TW9udGhcIiBbdGV4dENvbnRlbnRdPVwid2Vla0RheS53ZWVrZGF5TW9udGhMb25nICsgJyAnICsgd2Vla0RheS53ZWVrZGF5WWVhclwiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwibW9udGgtZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrZGF5LXZhbHVlIGRheVwiXHJcbiAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJjYXBpdGFsaXplU3RyaW5nKHdlZWtEYXkud2Vla2RheVNob3J0KVwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWtkYXktdmFsdWUgZGF0ZVwiXHJcbiAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJ3ZWVrRGF5LndlZWtkYXlEYXlcIj48L2Rpdj5cclxuICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwiaW5kZXggPT09IDZcIiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3QgYWRkLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludFJpZ2h0KVwiIChjbGljayk9XCJhZGRVbml0KClcIj48L2NvLWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWdlbmRhLWhlYWRlci13cmFwcGVyXCIgKm5nSWY9XCJ2aWV3ID09PSB2aWV3VHlwZXMuV2Vla1ZpZXdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaG91ci1sYWJlbC1wbGFjZWhvbGRlclwiICpuZ0lmPVwidmlld1NlbGVjdGlvblwiPlxyXG4gICAgICAgICAgPHZpZXctc2VsZWN0IFtzZWxlY3RlZFZpZXddPVwidmlld1wiIChzZWxlY3RlZFZpZXdDaGFuZ2UpPVwiY2hhbmdlVGhlVmlldygkZXZlbnQpXCI+PC92aWV3LXNlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2Vlay1kYXktbGFiZWxcIiAqbmdGb3I9XCJsZXQgd2Vla0RheSBvZiB3ZWVrRGF5czsgbGV0IGluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cIndlZWtEYXkud2Vla2RheVNlbGVjdGVkXCIgKGNsaWNrKT1cInNldFVuaXQod2Vla0RheSlcIj5cclxuICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwic2hvd0JhY2tCdXR0b24gJiYgaW5kZXggPT09IDBcIiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3Qgc3ViLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludExlZnQpXCIgKGNsaWNrKT1cInN1YlVuaXQoKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJ3ZWVrRGF5Lm5ld01vbnRoXCIgW3RleHRDb250ZW50XT1cIndlZWtEYXkud2Vla2RheU1vbnRoTG9uZyArICcgJyArIHdlZWtEYXkud2Vla2RheVllYXJcIlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cIm1vbnRoLWRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vla2RheS12YWx1ZVwiXHJcbiAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJjYXBpdGFsaXplU3RyaW5nKHdlZWtEYXkud2Vla2RheUxvbmcpICsgJyAnICsgd2Vla0RheS53ZWVrZGF5RGF5ICsgJyAnICsgY2FwaXRhbGl6ZVN0cmluZyh3ZWVrRGF5LndlZWtkYXlNb250aExvbmcpICsgJyAnICsgd2Vla0RheS53ZWVrZGF5WWVhciBcIj48L2Rpdj5cclxuICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwiaW5kZXggPT09IDJcIiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3QgYWRkLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludFJpZ2h0KVwiIChjbGljayk9XCJhZGRVbml0KClcIj48L2NvLWljb24+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImFnZW5kYS1oZWFkZXItd3JhcHBlclwiICpuZ0lmPVwidmlldyA9PT0gdmlld1R5cGVzLldlZWtTZWxlY3RWaWV3XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndlZWstZGF5LWxhYmVsXCIgKm5nRm9yPVwibGV0IHdlZWtEYXkgb2Ygd2Vla0RheXM7IGxldCBpbmRleCA9IGluZGV4XCJcclxuICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJ3ZWVrRGF5LndlZWtkYXlTZWxlY3RlZFwiXHJcbiAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0YWJsZV09XCJ3ZWVrRGF5LmV2ZW50cyAmJiB3ZWVrRGF5LmV2ZW50cy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgIChjbGljayk9XCJzZXRVbml0KHdlZWtEYXkpXCI+XHJcbiAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cImluZGV4ID09PSAwICYmIHNob3dCYWNrQnV0dG9uXCIgY2xhc3M9XCJwb2ludGVyLWhvdmVyIG5vLXVzZXItc2VsZWN0IHN1Yi11bml0LWljb24gZGFya1wiXHJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnRMZWZ0KVwiIChjbGljayk9XCJzdWJVbml0KClcIj48L2NvLWljb24+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vla2RheS1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCJ3ZWVrRGF5LndlZWtkYXlTaG9ydFwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWtkYXktdmFsdWVcIiBbdGV4dENvbnRlbnRdPVwid2Vla0RheS53ZWVrZGF5RGF5ICsgJyAnICsgd2Vla0RheS53ZWVrZGF5TW9udGhTaG9ydFwiPjwvZGl2PlxyXG4gICAgICAgICAgPGNvLWljb24gKm5nSWY9XCJpbmRleCA9PT0gNlwiIGNsYXNzPVwicG9pbnRlci1ob3ZlciBuby11c2VyLXNlbGVjdCBhZGQtdW5pdC1pY29uIGRhcmtcIlxyXG4gICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50UmlnaHQpXCIgKGNsaWNrKT1cImFkZFVuaXQoKVwiPjwvY28taWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhZ2VuZGEtaGVhZGVyLXdyYXBwZXJcIiAqbmdJZj1cInZpZXcgPT09IHZpZXdUeXBlcy5Nb250aFZpZXdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2Vlay1kYXktbGFiZWxcIiAqbmdGb3I9XCJsZXQgd2Vla0RheSBvZiB3ZWVrRGF5czsgbGV0IGluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwiaW5kZXggPT09IDAgJiYgc2hvd0JhY2tCdXR0b25cIiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3Qgc3ViLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludExlZnQpXCIgKGNsaWNrKT1cInN1YlVuaXQoKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrZGF5LWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIndlZWtEYXkud2Vla2RheVNob3J0XCI+PC9kaXY+XHJcbiAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cImluZGV4ID09PSA2XCIgY2xhc3M9XCJwb2ludGVyLWhvdmVyIG5vLXVzZXItc2VsZWN0IGFkZC11bml0LWljb24gZGFya1wiXHJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnRSaWdodClcIiAoY2xpY2spPVwiYWRkVW5pdCgpXCI+PC9jby1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWdlbmRhSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudENoZWNrZWQge1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmlld1R5cGVzOiB0eXBlb2YgQ2FsZW5kYXJWaWV3ID0gQ2FsZW5kYXJWaWV3O1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Nyb2xsYmFyV2lkdGg6IG51bWJlciA9IDE1O1xyXG5cclxuICAgIHB1YmxpYyB0b2RheTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgc2VsZWN0ZWREYXRlKHZhbHVlOiBEYXRlKSB7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWREYXRlID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmVIZWFkZXJEYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBzZWxlY3RlZERhdGUoKTogRGF0ZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHZpZXc6IENhbGVuZGFyVmlldztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBmaXJzdEF2YWlsYWJsZURhdGUodmFsdWU6IERhdGUpIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fZmlyc3RBdmFpbGFibGVEYXRlID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLl9wcmVwYXJlSGVhZGVyRGF0YSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGZpcnN0QXZhaWxhYmxlRGF0ZSgpOiBEYXRlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZmlyc3RBdmFpbGFibGVEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGV2ZW50c1BlckRheSh2YWx1ZTogQWdlbmRhRXZlbnRQZXJEYXlbXSkge1xyXG4gICAgICAgIHRoaXMuX2V2ZW50c1BlckRheSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmVIZWFkZXJEYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB2aWV3U2VsZWN0aW9uOiBib29sZWFuO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHZpZXdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDYWxlbmRhclZpZXc+ID0gbmV3IEV2ZW50RW1pdHRlcjxDYWxlbmRhclZpZXc+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgc2VsZWN0ZWREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmFuZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuXHJcbiAgICBwdWJsaWMgd2Vla0RheXM6IFdlZWtkYXlbXSA9IFtdO1xyXG4gICAgcHVibGljIGRheTogRGF5ID0gTlVMTF9EQVk7XHJcbiAgICBwdWJsaWMgc2hvd0JhY2tCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIHByaXZhdGUgX3NlbGVjdGVkRGF0ZTogRGF0ZTtcclxuICAgIHByaXZhdGUgX2ZpcnN0QXZhaWxhYmxlRGF0ZTogRGF0ZTtcclxuICAgIHByaXZhdGUgX2V2ZW50c1BlckRheTogQWdlbmRhRXZlbnRQZXJEYXlbXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIHJlYWRvbmx5IF9sb2NhbGU6IExhbmd1YWdlQ29kZSxcclxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXHJcbiAgICAgICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2VcclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHRoaXMuX29uUmVzaXplKTtcclxuICAgICAgICB0aGlzLl9lbGVtZW50UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHRoaXMuX29uUmVzaXplKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmVzaXplSG9zdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdWJVbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZSkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdEYXRlOiBEYXRlID0gbmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMudmlldykge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuRGF5VmlldzpcclxuICAgICAgICAgICAgICAgICAgICBuZXdEYXRlLnNldERhdGUodGhpcy5zZWxlY3RlZERhdGUuZ2V0RGF0ZSgpIC0gMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5EYXlzQXJvdW5kOlxyXG4gICAgICAgICAgICAgICAgICBuZXdEYXRlLnNldERhdGUodGhpcy5zZWxlY3RlZERhdGUuZ2V0RGF0ZSgpIC0gMSk7XHJcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuV2Vla1ZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSAtIDMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuV2Vla1NlbGVjdFZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSAtIDcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhWaWV3OlxyXG4gICAgICAgICAgICAgICAgICAgIG5ld0RhdGUuc2V0TW9udGgodGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSAtIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbmV3RGF0ZTtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZFVuaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGU6IERhdGUgPSBuZXcgRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy52aWV3KSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5EYXlWaWV3OlxyXG4gICAgICAgICAgICAgICAgICAgIG5ld0RhdGUuc2V0RGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZS5nZXREYXRlKCkgKyAxKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LkRheXNBcm91bmQ6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSArIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuV2Vla1ZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSArIDMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuV2Vla1NlbGVjdFZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSArIDcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhWaWV3OlxyXG4gICAgICAgICAgICAgICAgICAgIG5ld0RhdGUuc2V0TW9udGgodGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbmV3RGF0ZTtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFVuaXQod2Vla0RheTogV2Vla2RheSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gd2Vla0RheS5kYXRlO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGFuZ2VUaGVWaWV3KHZpZXc6IENhbGVuZGFyVmlldyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmlldyA9IHZpZXc7XHJcbiAgICAgICAgdGhpcy52aWV3Q2hhbmdlLmVtaXQodmlldyk7XHJcbiAgICAgICAgdGhpcy5fcHJlcGFyZUhlYWRlckRhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9vblJlc2l6ZTogRXZlbnRMaXN0ZW5lciA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcclxuICAgICAgICB0aGlzLl9yZXNpemVIb3N0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOZWVkIHRvIHJlc2l6ZSB0aGUgaG9zdCBjb21wb25lbnQgdG8gc2l6ZSBpdCdzIGZpeGVkIHBvc2l0aW9uZWQgY2hpbGQgdGhyb3VnaCBjc3NcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfcmVzaXplSG9zdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fZWxlbWVudFJlZikge1xyXG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJ3aWR0aFwiLCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5jbGllbnRXaWR0aCAtIHRoaXMuc2Nyb2xsYmFyV2lkdGggKyBcInB4XCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wcmVwYXJlSGVhZGVyRGF0YSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUpIHtcclxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnZpZXcpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LkRheVZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF5OiBEYXkgPSBuZXcgRGF5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF5LmRhdGUgPSBuZXcgRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uczogYW55ID0geyB5ZWFyOiBcIm51bWVyaWNcIiwgbW9udGg6IFwibG9uZ1wiLCBkYXk6IFwibnVtZXJpY1wiIH07XHJcbiAgICAgICAgICAgICAgICAgICAgZGF5LmRlc2NyaXB0aW9uID0gdGhpcy5zZWxlY3RlZERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKHRoaXMuX2xvY2FsZSwgb3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXkgPSBkYXk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5EYXlzQXJvdW5kOlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdlZWtBcm91bmRWaWV3OiBXZWVrID0gQ2FsZW5kYXJVdGlscy5HZXREYXlzQXJvdW5kKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndlZWtEYXlzID0gd2Vla0Fyb3VuZFZpZXcud2Vla0RheXM7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlyc3RBdmFpbGFibGVEYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dCYWNrQnV0dG9uID0gdGhpcy53ZWVrRGF5cy5maW5kKHdkID0+IERhdGVVdGlscy5EYXRlc0VxdWFsKHRoaXMuZmlyc3RBdmFpbGFibGVEYXRlLCB3ZC5kYXRlKSkgPT09IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5XZWVrVmlldzpcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ZWVrVmlldzogV2VlayA9IENhbGVuZGFyVXRpbHMuR2V0RGF5c09mV2Vlayh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWVrRGF5cyA9IHdlZWtWaWV3LndlZWtEYXlzO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpcnN0QXZhaWxhYmxlRGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dCYWNrQnV0dG9uID0gdGhpcy53ZWVrRGF5cy5maW5kKHdkID0+IERhdGVVdGlscy5EYXRlc0VxdWFsKHRoaXMuZmlyc3RBdmFpbGFibGVEYXRlLCB3ZC5kYXRlKSkgPT09IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5XZWVrU2VsZWN0VmlldzpcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ZWVrU2VsZWN0VmlldzogV2VlayA9IENhbGVuZGFyVXRpbHMuR2V0RGF5c09mV2Vlayh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWVrRGF5cyA9IHdlZWtTZWxlY3RWaWV3LndlZWtEYXlzO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2Vla0RheXMuZm9yRWFjaCgod2Q6IFdlZWtkYXkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXZQZXJEYXk6IEFnZW5kYUV2ZW50UGVyRGF5ID0gdGhpcy5fZXZlbnRzUGVyRGF5ICYmIHRoaXMuX2V2ZW50c1BlckRheS5sZW5ndGggPiAwID8gdGhpcy5fZXZlbnRzUGVyRGF5LmZpbmQoZSA9PiBEYXRlVXRpbHMuRGF0ZXNFcXVhbChlLmRhdGUsIHdkLmRhdGUpKSA6IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldlBlckRheSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2QuZXZlbnRzID0gZXZQZXJEYXkuZXZlbnRzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Qud2Vla2RheVNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5maXJzdEF2YWlsYWJsZURhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93QmFja0J1dHRvbiA9IHRoaXMud2Vla0RheXMuZmluZCh3ZCA9PiBEYXRlVXRpbHMuRGF0ZXNFcXVhbCh0aGlzLmZpcnN0QXZhaWxhYmxlRGF0ZSwgd2QuZGF0ZSkpID09PSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhWaWV3OlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdlZWtPZk1vbnRoOiBXZWVrID0gQ2FsZW5kYXJVdGlscy5HZXREYXlzT2ZXZWVrKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndlZWtEYXlzID0gd2Vla09mTW9udGgud2Vla0RheXM7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlyc3RBdmFpbGFibGVEYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0JhY2tCdXR0b24gPSB0aGlzLndlZWtEYXlzLmZpbmQod2QgPT4gRGF0ZVV0aWxzLkRhdGVzRXF1YWwodGhpcy5maXJzdEF2YWlsYWJsZURhdGUsIHdkLmRhdGUpKSA9PT0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2FwaXRhbGl6ZVN0cmluZyhsYWJlbDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgcmV0dXJuIGxhYmVsWzBdLnRvVXBwZXJDYXNlKCkgKyBsYWJlbC5zbGljZSgxKTtcclxuICAgIH1cclxufVxyXG4iXX0=
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbmRhLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBsYW5uaW5nL2NvbXBvbmVudC9hZ2VuZGEvYWdlbmRhLWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBR04sTUFBTSxFQUNOLFNBQVMsRUFBRSxpQkFBaUIsRUFDN0IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUdqRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDL0QsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQTtBQUMvQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFaEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBaUZ4RSxNQUFNLE9BQU8scUJBQXFCO0lBMkQ5QixZQUN3QyxPQUFxQixFQUNqRCxXQUF1QixFQUN2QixTQUFvQixFQUNwQixPQUFlLEVBQ2hCLGdCQUFrQztRQUpMLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFDakQsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixZQUFPLEdBQVAsT0FBTyxD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QUNWLEtBQUssWUFBWSxDQUFDLFNBQVM7b0JBQ3ZCLE1BQU0sV0FBVyxHQUFTLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUN6RSxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7b0JBQ3JDLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO3dCQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDO3FCQUN4SDtvQkFDRCxNQUFNO2FBQ2I7U0FDSjtJQUNMLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFhO1FBQ25DLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQzs7O1lBalNKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQTBFVDtnQkFDSCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBekZPLFlBQVksdUJBc0pYLE1BQU0sU0FBQyxTQUFTO1lBbEt2QixVQUFVO1lBU1YsU0FBUztZQUpULE1BQU07WUFnQkEsZ0JBQWdCOzs7MkJBeUZuQixLQUFLO21CQVVMLEtBQUs7aUNBR0wsS0FBSzsyQkFZTCxLQUFLOzRCQU1MLEtBQUs7eUJBR0wsTUFBTTtpQ0FHTixNQUFNOzBCQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudENoZWNrZWQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBMT0NBTEVfSUQsXHJcbiAgTmdab25lLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFJlbmRlcmVyMiwgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NhbGVuZGFyVmlld30gZnJvbSBcIi4uLy4uLy4uLy4uL2VudW0vY2FsZW5kYXItdmlldy5lbnVtXCI7XHJcbmltcG9ydCB7TGFuZ3VhZ2VDb2RlfSBmcm9tIFwiLi4vLi4vLi4vLi4vZW51bS9sYW5ndWFnZS1jb2RlLmVudW1cIjtcclxuaW1wb3J0IHtXZWVrZGF5fSBmcm9tIFwiLi4vLi4vLi4vLi4vbW9kZWwvd2Vla2RheS5tb2RlbFwiO1xyXG5pbXBvcnQge1dlZWt9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbC93ZWVrLm1vZGVsXCI7XHJcbmltcG9ydCB7Q2FsZW5kYXJVdGlsc30gZnJvbSBcIi4uLy4uLy4uLy4uL3V0aWxzL2NhbGVuZGFyLnV0aWxzXCI7XHJcbmltcG9ydCB7TlVMTF9EQVl9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbC9hZ2VuZGEtbnVsbC1vYmplY3RzXCI7XHJcbmltcG9ydCB7RGF5fSBmcm9tIFwiLi4vLi4vLi4vLi4vbW9kZWwvZGF5Lm1vZGVsXCJcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtBZ2VuZGFFdmVudFBlckRheX0gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVsL2FnZW5kYS1ldmVudC1wZXItZGF5Lm1vZGVsXCI7XHJcbmltcG9ydCB7RGF0ZVV0aWxzfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbHMvZGF0ZS11dGlsc1wiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJhZ2VuZGEtaGVhZGVyXCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWdlbmRhLWhlYWRlci13cmFwcGVyXCIgKm5nSWY9XCJ2aWV3ID09PSB2aWV3VHlwZXMuRGF5Vmlld1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJob3VyLWxhYmVsLXBsYWNlaG9sZGVyXCIgKm5nSWY9XCJ2aWV3U2VsZWN0aW9uXCI+XHJcbiAgICAgICAgICA8dmlldy1zZWxlY3QgW3NlbGVjdGVkVmlld109XCJ2aWV3XCIgKHNlbGVjdGVkVmlld0NoYW5nZSk9XCJjaGFuZ2VUaGVWaWV3KCRldmVudClcIj48L3ZpZXctc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrLWRheS1sYWJlbFwiPlxyXG4gICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJwb2ludGVyLWhvdmVyIG5vLXVzZXItc2VsZWN0IHN1Yi11bml0LWljb24gZGFya1wiXHJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnRMZWZ0KVwiIChjbGljayk9XCJzdWJVbml0KClcIj48L2NvLWljb24+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF5LWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cImRheS5kZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJwb2ludGVyLWhvdmVyIG5vLXVzZXItc2VsZWN0IGFkZC11bml0LWljb24gZGFya1wiXHJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnRSaWdodClcIiAoY2xpY2spPVwiYWRkVW5pdCgpXCI+PC9jby1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFnZW5kYS1oZWFkZXItd3JhcHBlciBkYXlzLWFyb3VuZFwiICpuZ0lmPVwidmlldyA9PT0gdmlld1R5cGVzLkRheXNBcm91bmRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaG91ci1sYWJlbC1wbGFjZWhvbGRlclwiICpuZ0lmPVwidmlld1NlbGVjdGlvblwiPlxyXG4gICAgICAgICAgPHZpZXctc2VsZWN0IFtzZWxlY3RlZFZpZXddPVwidmlld1wiIChzZWxlY3RlZFZpZXdDaGFuZ2UpPVwiY2hhbmdlVGhlVmlldygkZXZlbnQpXCI+PC92aWV3LXNlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9udGgtZGVzY3JpcHRpb25cIiAqbmdJZj1cIndlZWtEYXlzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICB7eyB3ZWVrRGF5c1swXS53ZWVrZGF5TW9udGhMb25nICsgJyAnICsgd2Vla0RheXNbMF0ud2Vla2RheVllYXIgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2Vlay1kYXktbGFiZWwgZGF5cy1hcm91bmRcIiAqbmdGb3I9XCJsZXQgd2Vla0RheSBvZiB3ZWVrRGF5czsgbGV0IGluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cIndlZWtEYXkud2Vla2RheVNlbGVjdGVkXCIgKGNsaWNrKT1cInNldFVuaXQod2Vla0RheSlcIj5cclxuICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwic2hvd0JhY2tCdXR0b24gJiYgaW5kZXggPT09IDBcIiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3Qgc3ViLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludExlZnQpXCIgKGNsaWNrKT1cInN1YlVuaXQoKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrZGF5LXZhbHVlIGRheVwiXHJcbiAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJjYXBpdGFsaXplU3RyaW5nKHdlZWtEYXkud2Vla2RheVNob3J0KVwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWtkYXktdmFsdWUgZGF0ZVwiXHJcbiAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJ3ZWVrRGF5LndlZWtkYXlEYXlcIj48L2Rpdj5cclxuICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwiaW5kZXggPT09IDZcIiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3QgYWRkLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludFJpZ2h0KVwiIChjbGljayk9XCJhZGRVbml0KClcIj48L2NvLWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWdlbmRhLWhlYWRlci13cmFwcGVyXCIgKm5nSWY9XCJ2aWV3ID09PSB2aWV3VHlwZXMuV2Vla1ZpZXdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaG91ci1sYWJlbC1wbGFjZWhvbGRlclwiICpuZ0lmPVwidmlld1NlbGVjdGlvblwiPlxyXG4gICAgICAgICAgPHZpZXctc2VsZWN0IFtzZWxlY3RlZFZpZXddPVwidmlld1wiIChzZWxlY3RlZFZpZXdDaGFuZ2UpPVwiY2hhbmdlVGhlVmlldygkZXZlbnQpXCI+PC92aWV3LXNlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2Vlay1kYXktbGFiZWxcIiAqbmdGb3I9XCJsZXQgd2Vla0RheSBvZiB3ZWVrRGF5czsgbGV0IGluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cIndlZWtEYXkud2Vla2RheVNlbGVjdGVkXCIgKGNsaWNrKT1cInNldFVuaXQod2Vla0RheSlcIj5cclxuICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwic2hvd0JhY2tCdXR0b24gJiYgaW5kZXggPT09IDBcIiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3Qgc3ViLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludExlZnQpXCIgKGNsaWNrKT1cInN1YlVuaXQoKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJ3ZWVrRGF5Lm5ld01vbnRoXCIgW3RleHRDb250ZW50XT1cIndlZWtEYXkud2Vla2RheU1vbnRoTG9uZyArICcgJyArIHdlZWtEYXkud2Vla2RheVllYXJcIlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cIm1vbnRoLWRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vla2RheS12YWx1ZVwiXHJcbiAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJjYXBpdGFsaXplU3RyaW5nKHdlZWtEYXkud2Vla2RheUxvbmcpICsgJyAnICsgd2Vla0RheS53ZWVrZGF5RGF5ICsgJyAnICsgY2FwaXRhbGl6ZVN0cmluZyh3ZWVrRGF5LndlZWtkYXlNb250aExvbmcpICsgJyAnICsgd2Vla0RheS53ZWVrZGF5WWVhciBcIj48L2Rpdj5cclxuICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwiaW5kZXggPT09IDJcIiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3QgYWRkLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludFJpZ2h0KVwiIChjbGljayk9XCJhZGRVbml0KClcIj48L2NvLWljb24+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImFnZW5kYS1oZWFkZXItd3JhcHBlclwiICpuZ0lmPVwidmlldyA9PT0gdmlld1R5cGVzLldlZWtTZWxlY3RWaWV3XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndlZWstZGF5LWxhYmVsXCIgKm5nRm9yPVwibGV0IHdlZWtEYXkgb2Ygd2Vla0RheXM7IGxldCBpbmRleCA9IGluZGV4XCJcclxuICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJ3ZWVrRGF5LndlZWtkYXlTZWxlY3RlZFwiXHJcbiAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0YWJsZV09XCJ3ZWVrRGF5LmV2ZW50cyAmJiB3ZWVrRGF5LmV2ZW50cy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgIChjbGljayk9XCJzZXRVbml0KHdlZWtEYXkpXCI+XHJcbiAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cImluZGV4ID09PSAwICYmIHNob3dCYWNrQnV0dG9uXCIgY2xhc3M9XCJwb2ludGVyLWhvdmVyIG5vLXVzZXItc2VsZWN0IHN1Yi11bml0LWljb24gZGFya1wiXHJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnRMZWZ0KVwiIChjbGljayk9XCJzdWJVbml0KClcIj48L2NvLWljb24+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vla2RheS1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCJ3ZWVrRGF5LndlZWtkYXlTaG9ydFwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWtkYXktdmFsdWVcIiBbdGV4dENvbnRlbnRdPVwid2Vla0RheS53ZWVrZGF5RGF5ICsgJyAnICsgd2Vla0RheS53ZWVrZGF5TW9udGhTaG9ydFwiPjwvZGl2PlxyXG4gICAgICAgICAgPGNvLWljb24gKm5nSWY9XCJpbmRleCA9PT0gNlwiIGNsYXNzPVwicG9pbnRlci1ob3ZlciBuby11c2VyLXNlbGVjdCBhZGQtdW5pdC1pY29uIGRhcmtcIlxyXG4gICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50UmlnaHQpXCIgKGNsaWNrKT1cImFkZFVuaXQoKVwiPjwvY28taWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhZ2VuZGEtaGVhZGVyLXdyYXBwZXJcIiAqbmdJZj1cInZpZXcgPT09IHZpZXdUeXBlcy5Nb250aFZpZXdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid2Vlay1kYXktbGFiZWxcIiAqbmdGb3I9XCJsZXQgd2Vla0RheSBvZiB3ZWVrRGF5czsgbGV0IGluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwiaW5kZXggPT09IDAgJiYgc2hvd0JhY2tCdXR0b25cIiBjbGFzcz1cInBvaW50ZXItaG92ZXIgbm8tdXNlci1zZWxlY3Qgc3ViLXVuaXQtaWNvbiBkYXJrXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dQb2ludExlZnQpXCIgKGNsaWNrKT1cInN1YlVuaXQoKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrZGF5LWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIndlZWtEYXkud2Vla2RheVNob3J0XCI+PC9kaXY+XHJcbiAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cImluZGV4ID09PSA2XCIgY2xhc3M9XCJwb2ludGVyLWhvdmVyIG5vLXVzZXItc2VsZWN0IGFkZC11bml0LWljb24gZGFya1wiXHJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnRSaWdodClcIiAoY2xpY2spPVwiYWRkVW5pdCgpXCI+PC9jby1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWdlbmRhSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudENoZWNrZWQge1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmlld1R5cGVzOiB0eXBlb2YgQ2FsZW5kYXJWaWV3ID0gQ2FsZW5kYXJWaWV3O1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Nyb2xsYmFyV2lkdGg6IG51bWJlciA9IDE1O1xyXG5cclxuICAgIHB1YmxpYyB0b2RheTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgc2VsZWN0ZWREYXRlKHZhbHVlOiBEYXRlKSB7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWREYXRlID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmVIZWFkZXJEYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBzZWxlY3RlZERhdGUoKTogRGF0ZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHZpZXc6IENhbGVuZGFyVmlldztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBmaXJzdEF2YWlsYWJsZURhdGUodmFsdWU6IERhdGUpIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fZmlyc3RBdmFpbGFibGVEYXRlID0gbmV3IERhdGUodmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLl9wcmVwYXJlSGVhZGVyRGF0YSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGZpcnN0QXZhaWxhYmxlRGF0ZSgpOiBEYXRlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZmlyc3RBdmFpbGFibGVEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGV2ZW50c1BlckRheSh2YWx1ZTogQWdlbmRhRXZlbnRQZXJEYXlbXSkge1xyXG4gICAgICAgIHRoaXMuX2V2ZW50c1BlckRheSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX3ByZXBhcmVIZWFkZXJEYXRhKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB2aWV3U2VsZWN0aW9uOiBib29sZWFuO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHZpZXdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDYWxlbmRhclZpZXc+ID0gbmV3IEV2ZW50RW1pdHRlcjxDYWxlbmRhclZpZXc+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgc2VsZWN0ZWREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmFuZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuXHJcbiAgICBwdWJsaWMgd2Vla0RheXM6IFdlZWtkYXlbXSA9IFtdO1xyXG4gICAgcHVibGljIGRheTogRGF5ID0gTlVMTF9EQVk7XHJcbiAgICBwdWJsaWMgc2hvd0JhY2tCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIHByaXZhdGUgX3NlbGVjdGVkRGF0ZTogRGF0ZTtcclxuICAgIHByaXZhdGUgX2ZpcnN0QXZhaWxhYmxlRGF0ZTogRGF0ZTtcclxuICAgIHByaXZhdGUgX2V2ZW50c1BlckRheTogQWdlbmRhRXZlbnRQZXJEYXlbXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIHJlYWRvbmx5IF9sb2NhbGU6IExhbmd1YWdlQ29kZSxcclxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXHJcbiAgICAgICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2VcclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHRoaXMuX29uUmVzaXplKTtcclxuICAgICAgICB0aGlzLl9lbGVtZW50UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHRoaXMuX29uUmVzaXplKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmVzaXplSG9zdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdWJVbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZSkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdEYXRlOiBEYXRlID0gbmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMudmlldykge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuRGF5VmlldzpcclxuICAgICAgICAgICAgICAgICAgICBuZXdEYXRlLnNldERhdGUodGhpcy5zZWxlY3RlZERhdGUuZ2V0RGF0ZSgpIC0gMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5EYXlzQXJvdW5kOlxyXG4gICAgICAgICAgICAgICAgICBuZXdEYXRlLnNldERhdGUodGhpcy5zZWxlY3RlZERhdGUuZ2V0RGF0ZSgpIC0gMSk7XHJcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuV2Vla1ZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSAtIDMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuV2Vla1NlbGVjdFZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSAtIDcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhWaWV3OlxyXG4gICAgICAgICAgICAgICAgICAgIG5ld0RhdGUuc2V0TW9udGgodGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSAtIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbmV3RGF0ZTtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZFVuaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWREYXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGU6IERhdGUgPSBuZXcgRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy52aWV3KSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5EYXlWaWV3OlxyXG4gICAgICAgICAgICAgICAgICAgIG5ld0RhdGUuc2V0RGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZS5nZXREYXRlKCkgKyAxKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LkRheXNBcm91bmQ6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSArIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuV2Vla1ZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSArIDMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuV2Vla1NlbGVjdFZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSArIDcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhWaWV3OlxyXG4gICAgICAgICAgICAgICAgICAgIG5ld0RhdGUuc2V0TW9udGgodGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSArIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbmV3RGF0ZTtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFVuaXQod2Vla0RheTogV2Vla2RheSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gd2Vla0RheS5kYXRlO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGFuZ2VUaGVWaWV3KHZpZXc6IENhbGVuZGFyVmlldyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmlldyA9IHZpZXc7XHJcbiAgICAgICAgdGhpcy52aWV3Q2hhbmdlLmVtaXQodmlldyk7XHJcbiAgICAgICAgdGhpcy5fcHJlcGFyZUhlYWRlckRhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9vblJlc2l6ZTogRXZlbnRMaXN0ZW5lciA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcclxuICAgICAgICB0aGlzLl9yZXNpemVIb3N0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOZWVkIHRvIHJlc2l6ZSB0aGUgaG9zdCBjb21wb25lbnQgdG8gc2l6ZSBpdCdzIGZpeGVkIHBvc2l0aW9uZWQgY2hpbGQgdGhyb3VnaCBjc3NcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfcmVzaXplSG9zdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fZWxlbWVudFJlZikge1xyXG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJ3aWR0aFwiLCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5jbGllbnRXaWR0aCAtIHRoaXMuc2Nyb2xsYmFyV2lkdGggKyBcInB4XCIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wcmVwYXJlSGVhZGVyRGF0YSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUpIHtcclxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnZpZXcpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgQ2FsZW5kYXJWaWV3LkRheVZpZXc6XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF5OiBEYXkgPSBuZXcgRGF5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF5LmRhdGUgPSBuZXcgRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uczogYW55ID0geyB5ZWFyOiBcIm51bWVyaWNcIiwgbW9udGg6IFwibG9uZ1wiLCBkYXk6IFwibnVtZXJpY1wiIH07XHJcbiAgICAgICAgICAgICAgICAgICAgZGF5LmRlc2NyaXB0aW9uID0gdGhpcy5zZWxlY3RlZERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKHRoaXMuX2xvY2FsZSwgb3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXkgPSBkYXk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5EYXlzQXJvdW5kOlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdlZWtBcm91bmRWaWV3OiBXZWVrID0gQ2FsZW5kYXJVdGlscy5HZXREYXlzQXJvdW5kKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndlZWtEYXlzID0gd2Vla0Fyb3VuZFZpZXcud2Vla0RheXM7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlyc3RBdmFpbGFibGVEYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dCYWNrQnV0dG9uID0gdGhpcy53ZWVrRGF5cy5maW5kKHdkID0+IERhdGVVdGlscy5EYXRlc0VxdWFsKHRoaXMuZmlyc3RBdmFpbGFibGVEYXRlLCB3ZC5kYXRlKSkgPT09IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5XZWVrVmlldzpcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ZWVrVmlldzogV2VlayA9IENhbGVuZGFyVXRpbHMuR2V0RGF5c09mV2Vlayh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWVrRGF5cyA9IHdlZWtWaWV3LndlZWtEYXlzO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpcnN0QXZhaWxhYmxlRGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dCYWNrQnV0dG9uID0gdGhpcy53ZWVrRGF5cy5maW5kKHdkID0+IERhdGVVdGlscy5EYXRlc0VxdWFsKHRoaXMuZmlyc3RBdmFpbGFibGVEYXRlLCB3ZC5kYXRlKSkgPT09IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIENhbGVuZGFyVmlldy5XZWVrU2VsZWN0VmlldzpcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ZWVrU2VsZWN0VmlldzogV2VlayA9IENhbGVuZGFyVXRpbHMuR2V0RGF5c09mV2Vlayh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWVrRGF5cyA9IHdlZWtTZWxlY3RWaWV3LndlZWtEYXlzO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2Vla0RheXMuZm9yRWFjaCgod2Q6IFdlZWtkYXkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXZQZXJEYXk6IEFnZW5kYUV2ZW50UGVyRGF5ID0gdGhpcy5fZXZlbnRzUGVyRGF5ICYmIHRoaXMuX2V2ZW50c1BlckRheS5sZW5ndGggPiAwID8gdGhpcy5fZXZlbnRzUGVyRGF5LmZpbmQoZSA9PiBEYXRlVXRpbHMuRGF0ZXNFcXVhbChlLmRhdGUsIHdkLmRhdGUpKSA6IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldlBlckRheSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2QuZXZlbnRzID0gZXZQZXJEYXkuZXZlbnRzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Qud2Vla2RheVNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5maXJzdEF2YWlsYWJsZURhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93QmFja0J1dHRvbiA9IHRoaXMud2Vla0RheXMuZmluZCh3ZCA9PiBEYXRlVXRpbHMuRGF0ZXNFcXVhbCh0aGlzLmZpcnN0QXZhaWxhYmxlRGF0ZSwgd2QuZGF0ZSkpID09PSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDYWxlbmRhclZpZXcuTW9udGhWaWV3OlxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdlZWtPZk1vbnRoOiBXZWVrID0gQ2FsZW5kYXJVdGlscy5HZXREYXlzT2ZXZWVrKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndlZWtEYXlzID0gd2Vla09mTW9udGgud2Vla0RheXM7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlyc3RBdmFpbGFibGVEYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0JhY2tCdXR0b24gPSB0aGlzLndlZWtEYXlzLmZpbmQod2QgPT4gRGF0ZVV0aWxzLkRhdGVzRXF1YWwodGhpcy5maXJzdEF2YWlsYWJsZURhdGUsIHdkLmRhdGUpKSA9PT0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2FwaXRhbGl6ZVN0cmluZyhsYWJlbDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgcmV0dXJuIGxhYmVsWzBdLnRvVXBwZXJDYXNlKCkgKyBsYWJlbC5zbGljZSgxKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -50,7 +50,7 @@ export class StockLocationPopupComponent {
50
50
  return (!((_a = this.selectedArticleDetailsData) === null || _a === void 0 ? void 0 : _a.stockStateId) && ((_c = (_b = this.selectedArticleDetailsData) === null || _b === void 0 ? void 0 : _b.stockStateRemark) === null || _c === void 0 ? void 0 : _c.length) <= 1);
51
51
  }
52
52
  handleOkClick() {
53
- if (this.selectedArticleDetailsData.amountInStockFree < this.selectedArticleDetailsData.amountInStockOriginal) {
53
+ if (this.selectedArticleDetailsData.stockAssigned >= this.selectedArticleDetailsData.amountInStock) {
54
54
  this.stockBelow = true;
55
55
  }
56
56
  else {
@@ -238,4 +238,4 @@ StockLocationPopupComponent.propDecorators = {
238
238
  stockLocations: [{ type: Input }],
239
239
  stockStatus: [{ type: Input }]
240
240
  };
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stbG9jYXRpb24tcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3RvY2svY29tcG9uZW50cy9zdG9jay1sb2NhdGlvbi9jb21wb25lbnRzL3N0b2NrLWxvY2F0aW9uLXBvcHVwL3N0b2NrLWxvY2F0aW9uLXBvcHVwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDckUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDMUcsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDakcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFtR3JGLE1BQU0sT0FBTywyQkFBMkI7SUEyRHRDLFlBQ1MsZ0JBQWtDLEVBQ2pDLGFBQTJCLEVBQzNCLGVBQWtDO1FBRm5DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0Isb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBN0Q1QixVQUFLLEdBQWdCLElBQUksQ0FBQztRQUtuQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBRzVCLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUd4QyxpQkFBWSxHQUFZLEtBQUss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QyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDOzs7WUE1UEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5RlQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQXZHTyxnQkFBZ0I7WUFFaEIsWUFBWTtZQUhaLGlCQUFpQjs7O3lCQThHdEIsS0FBSztxQ0FHTCxLQUFLOzJCQUdMLEtBQUs7OEJBR0wsS0FBSzt5Q0FHTCxLQUFLOzBCQUdMLEtBQUs7d0NBR0wsS0FBSztnQ0FHTCxLQUFLO2lDQUdMLEtBQUs7K0JBU0wsS0FBSzsrQkFHTCxNQUFNO3dCQUdOLE1BQU07NkJBR04sTUFBTTs2QkFHTixLQUFLOzBCQUdMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7U3RvY2tTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vc2VydmljZS9zdG9jay5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLW1hbmFnZW1lbnQtd2FyZWhvdXNlcy5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVTdG9ja01hbmFnZW1lbnR9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXN0b2NrLW1hbmFnZW1lbnRcIjtcclxuaW1wb3J0IHtBcnRpY2xlRGV0YWlsc0JvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1kZXRhaWxzLmJvXCI7XHJcbmltcG9ydCB7U3RvY2tTdGF0dXN9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1zdGF0dXMuYm9cIjtcclxuaW1wb3J0IHtBcnRpY2xlRmxhdH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZmxhdC5ib1wiO1xyXG5pbXBvcnQge1N0b2NrTG9jYXRpb259IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1sb2NhdGlvbi5ib1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tc3RvY2stbG9jYXRpb24tcG9wdXBcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInN0b2NrLWdyaWRcIj5cclxuICAgICAgPGNvLWRpYWxvZyAqbmdJZj1cInNob3dDb25maXJtYXRpb25EaWFsb2dcIlxyXG4gICAgICAgICAgICAgICAgIFtzaG93Q2xvc2VJY29uXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgIFttb2RhbF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJ0b2dnbGVQb3B1cCgpXCJcclxuICAgICAgICAgICAgICAgICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWhlYWRlci10aXRsZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxjby1pY29uIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ3ViZXMpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWhlYWRlci10aXRsZVwiIFt0ZXh0Q29udGVudF09XCInQ09ORklSTV9TVE9DS19DSEFOR0UnIHwgc2hhcmVkTG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImRlbGV0ZVN0b2NrTGluZVwiIGNsYXNzPVwiZGlhbG9nLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RvY2staGVhZGVyXCIgW3RleHRDb250ZW50XT1cIidERUxFVEVfU1RPQ0tfTElORT8nIHwgc2hhcmVkTG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFkZWxldGVTdG9ja0xpbmVcIiBjbGFzcz1cImRpYWxvZy13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stZGlhbG9nLWhlYWRlclwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0b2NrLWhlYWRlclwiICpuZ0lmPVwibmV3U3RvY2tMaW5lXCIgW3RleHRDb250ZW50XT1cIidORVdfU1RPQ0tfTElORScgfCBzaGFyZWRMb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdG9jay1oZWFkZXJcIiAqbmdJZj1cIiFuZXdTdG9ja0xpbmVcIiBbdGV4dENvbnRlbnRdPVwiJ0NIQU5HRV9TVE9DS19MSU5FJyB8IHNoYXJlZExvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stZGlhbG9nLXJvd1wiPlxyXG4gICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbbW9kZWxdPVwic2VsZWN0ZWRXYXJlaG91c2U/LndhcmVob3VzZURlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidXQVJFSE9VU0UnIHwgc2hhcmVkTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cInNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLnNlcmlhbE5vXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTRVJJQUxfTk8nIHwgc2hhcmVkTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWRpYWxvZy1yb3dcIj5cclxuICAgICAgICAgICAgPGNvLWxpc3Qtb2YtdmFsdWVzICpuZ0lmPVwiYXJ0aWNsZUZsYXQubG9jYXRpb25SZWdpc3RlcmVkXCJcclxuICAgICAgICAgICAgICBbbW9kZWxdPVwibG9jYXRpb25Gb3JOdW1iZXIoc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEubG9jYXRpb25ObylcIlxyXG4gICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cInN0b2NrTG9jYXRpb25zXCJcclxuICAgICAgICAgICAgICBbZGlzcGxheUZpZWxkXT1cIidsb2NhdGlvbk5vJ1wiXHJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIidMT0NBVElPTicgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJsb2NhdGlvbkNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID48L2NvLWxpc3Qtb2YtdmFsdWVzPlxyXG4gICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbKG1vZGVsKV09XCJzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5iYXRjaE5vXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidCQVRDSCcgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1kaWFsb2ctcm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1kaWFsb2ctcm93LXJvd1wiPlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFttb2RlbF09XCJhcnRpY2xlU3RvY2tJbmZvWzBdPy5wdXJjaGFzZVByaWNlIHwgY3VycmVuY3k6J0VVUidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInUFVSQ0hBU0VfUFJJQ0UnIHwgc2hhcmVkTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbKG1vZGVsKV09XCJhcnRpY2xlU3RvY2tJbmZvWzBdLmN1cnJlbmN5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1ZBTFVUQScgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGNvLWlucHV0LWRhdGUgW21vZGVsXT1cInNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhPy5lbnRyeURhdGU/IHNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhPy5lbnRyeURhdGUgOiBuZXdEYXRlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0RBVEUnIHwgc2hhcmVkTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICA+PC9jby1pbnB1dC1kYXRlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stZGlhbG9nLXJvd1wiPlxyXG4gICAgICAgICAgICA8Y28taW5wdXQtbnVtYmVyLXBpY2tlclxyXG4gICAgICAgICAgICAgIFsobW9kZWwpXT1cInNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmFtb3VudEluU3RvY2tcIlxyXG4gICAgICAgICAgICAgIFtsYWJlbF09XCInU1RPQ0snIHwgc2hhcmVkTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJhbW91bnRJblN0b2NrQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICBbbWluXT1cIjBcIlxyXG4gICAgICAgICAgICA+PC9jby1pbnB1dC1udW1iZXItcGlja2VyPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGxlclwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXdyYXBwZXIgb2stY2FuY2VsLWJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzdG9ja0JlbG93XCIgY2xhc3M9XCJtaW5pbXVtLXN0b2NrXCIgW3RleHRDb250ZW50XT1cIidTVE9DS19CRUxPV19aRVJPX1RFWFQnIHwgc2hhcmVkTG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJzYXZlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU9rQ2xpY2soKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaGVja0R1b3RvbmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiPlxyXG4gICAgICAgICAgICA8L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVQb3B1cCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNyb3NzU2tpbm55KVwiPlxyXG4gICAgICAgICAgICA8L2NvLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvY28tZGlhbG9nPlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9ja0xvY2F0aW9uUG9wdXBDb21wb25lbnQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBwcml2YXRlIF9zZWxlY3RlZExvY2F0aW9uTm86IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZWRpdGluZ1JvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93Q29uZmlybWF0aW9uRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG5ld1N0b2NrTGluZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkZWxldGVTdG9ja0xpbmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGE6IEFydGljbGVEZXRhaWxzQm8gPSBuZXcgQXJ0aWNsZURldGFpbHNCbygpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlRmxhdDogQXJ0aWNsZUZsYXQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFydGljbGVEZXRhaWxzSW5mb3JtYXRpb246IEFydGljbGVTdG9ja01hbmFnZW1lbnQgPSBuZXcgQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCgpXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNlbGVjdGVkV2FyZWhvdXNlOiBTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzID0gbmV3IFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXMoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHNlbGVjdGVkTG9jYXRpb25Obyhsb2NhdGlvbk5vIDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZExvY2F0aW9uTm8gPSBsb2NhdGlvbk5vO1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRMb2NhdGlvbk5vKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRMb2NhdGlvbk5vO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXJ0aWNsZVN0b2NrSW5mbzogQXJ0aWNsZURldGFpbHNCb1tdID0gW107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB0b2dnbGVQb3B1cEV2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBzYXZlRXZlbnQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHVwZGF0ZUdyaWREYXRhOiBFdmVudEVtaXR0ZXI8QXJ0aWNsZURldGFpbHNCb1tdPiA9IG5ldyBFdmVudEVtaXR0ZXI8QXJ0aWNsZURldGFpbHNCb1tdPigpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdG9ja0xvY2F0aW9uczogU3RvY2tMb2NhdGlvbltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHN0b2NrU3RhdHVzOiBTdG9ja1N0YXR1c1tdID0gW107XHJcblxyXG4gIHB1YmxpYyBzdG9ja0JlbG93OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc3RvY2tTZXJ2aWNlOiBTdG9ja1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHB1YmxpYyBzdGF0dXNGb3JJZChpZDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9ja1N0YXR1cy5maW5kKHN0YXR1cyA9PiBzdGF0dXMuc3RvY2tTdGF0ZUlkID09PSBpZCkgPyB0aGlzLnN0b2NrU3RhdHVzLmZpbmQoc3RhdHVzID0+IHN0YXR1cy5zdG9ja1N0YXRlSWQgPT09IGlkKSA6IDAgO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVN0b2NrU3RhdHVzQ2hhbmdlKHN0YXR1czogU3RvY2tTdGF0dXMpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuc3RvY2tTdGF0ZUlkID0gc3RhdHVzLnN0b2NrU3RhdGVJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTdG9ja1N0YXR1c1JlbWFya0NoYW5nZShyZW1hcms6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5zdG9ja1N0YXRlUmVtYXJrID0gcmVtYXJrO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFtb3VudEluU3RvY2tDaGFuZ2VkKGRhdGEpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuYW1vdW50SW5TdG9jayA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gKCF0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhPy5zdG9ja1N0YXRlSWQgJiYgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YT8uc3RvY2tTdGF0ZVJlbWFyaz8ubGVuZ3RoIDw9IDEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZU9rQ2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5hbW91bnRJblN0b2NrRnJlZSA8IHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuYW1vdW50SW5TdG9ja09yaWdpbmFsKSB7XHJcbiAgICAgIHRoaXMuc3RvY2tCZWxvdyA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0b2NrQmVsb3cgPSBmYWxzZTtcclxuICAgICAgdGhpcy5oYW5kbGVTdG9ja0NoYW5nZSgpO1xyXG4gICAgICB0aGlzLnNhdmVFdmVudC5lbWl0KHRydWUpO1xyXG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHRoaXMudG9nZ2xlUG9wdXBFdmVudC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIHRvZ2dsZVBvcHVwKCkge1xyXG4gICAgdGhpcy5zdG9ja0JlbG93ID0gZmFsc2U7XHJcbiAgICB0aGlzLnRvZ2dsZVBvcHVwRXZlbnQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN0b2NrTG9jYXRpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldFN0b2NrTWFuYWdlbWVudExvY2F0aW9ucyh0aGlzLnNlbGVjdGVkV2FyZWhvdXNlLndhcmVob3VzZU5vKS50aGVuKChsb2NhdGlvbnMpID0+IHtcclxuICAgICAgdGhpcy5zdG9ja0xvY2F0aW9ucyA9IGxvY2F0aW9ucztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvY2F0aW9uRm9yTnVtYmVyKG51bWJlcjogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9ja0xvY2F0aW9ucz8uZmluZChsb2NhdGlvbiA9PiBsb2NhdGlvbi5sb2NhdGlvbk5vID09PSBudW1iZXIpID8gdGhpcy5zdG9ja0xvY2F0aW9ucz8uZmluZChsb2NhdGlvbiA9PiBsb2NhdGlvbi5sb2NhdGlvbk5vID09PSBudW1iZXIpIDogXCJcIiA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9jYXRpb25DaGFuZ2VkKGV2ZW50OiBTdG9ja0xvY2F0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTG9jYXRpb25ObyA9IGV2ZW50LmxvY2F0aW9uTm87XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmxvY2F0aW9uTm8gPSBldmVudC5sb2NhdGlvbk5vO1xyXG4gICAgaWYgKHRoaXMuYXJ0aWNsZVN0b2NrSW5mbz8ubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlU3RvY2tDaGFuZ2UoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0U3RvY2tMb2NhdGlvbnMoKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVN0b2NrQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5hcnRpY2xlRmxhdC5nb29kSWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5nb29kSWQgPSB0aGlzLmFydGljbGVGbGF0Lmdvb2RJZDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLmdvb2RJZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmdvb2RJZCA9IHBhcnNlSW50KHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi5nb29kSWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5lbnRyeURhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgaWYgKHRoaXMuZGVsZXRlU3RvY2tMaW5lKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRXYXJlaG91c2Uud2FyZWhvdXNlTm8gPSB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLndhcmVob3VzZU5vO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmFtb3VudEluU3RvY2sgPSAwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS53YXJlaG91c2VObyA9IHRoaXMuc2VsZWN0ZWRXYXJlaG91c2Uud2FyZWhvdXNlTm87XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkTG9jYXRpb25ObyAmJiB0aGlzLmFydGljbGVGbGF0LmxvY2F0aW9uUmVnaXN0ZXJlZCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEubG9jYXRpb25ObyA9IHRoaXMuc2VsZWN0ZWRMb2NhdGlvbk5vPy50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvL2lmICghdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5hbW91bnRJblN0b2NrKSB7XHJcbiAgICAvLyAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5hbW91bnRJblN0b2NrID0gMTtcclxuICAgIC8vIH1cclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS51cGRhdGVBcnRpY2xlRGV0YWlscyh0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgdGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLmdvb2RJZCA9IHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuZ29vZElkPy50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi53YXJlaG91c2VOdW1iZXIgPSB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLndhcmVob3VzZU5vO1xyXG4gICAgICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRBcnRpY2xlRGV0YWlscyh0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24pLnRoZW4oKGRldGFpbHMpID0+IHtcclxuICAgICAgICAgIHRoaXMuYXJ0aWNsZVN0b2NrSW5mbyA9IGRldGFpbHM7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZUdyaWREYXRhLmVtaXQoZGV0YWlscyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmV3RGF0ZSgpOiBEYXRlIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stbG9jYXRpb24tcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3RvY2svY29tcG9uZW50cy9zdG9jay1sb2NhdGlvbi9jb21wb25lbnRzL3N0b2NrLWxvY2F0aW9uLXBvcHVwL3N0b2NrLWxvY2F0aW9uLXBvcHVwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDckUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDMUcsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDakcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFtR3JGLE1BQU0sT0FBTywyQkFBMkI7SUEyRHRDLFlBQ1MsZ0JBQWtDLEVBQ2pDLGFBQTJCLEVBQzNCLGVBQWtDO1FBRm5DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0Isb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBN0Q1QixVQUFLLEdBQWdCLElBQUksQ0FBQztRQUtuQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBRzVCLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUd4QyxpQkFBWSxHQUFZLEtBQUss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QUM7WUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3BCLENBQUM7OztZQTVQRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlGVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBdkdPLGdCQUFnQjtZQUVoQixZQUFZO1lBSFosaUJBQWlCOzs7eUJBOEd0QixLQUFLO3FDQUdMLEtBQUs7MkJBR0wsS0FBSzs4QkFHTCxLQUFLO3lDQUdMLEtBQUs7MEJBR0wsS0FBSzt3Q0FHTCxLQUFLO2dDQUdMLEtBQUs7aUNBR0wsS0FBSzsrQkFTTCxLQUFLOytCQUdMLE1BQU07d0JBR04sTUFBTTs2QkFHTixNQUFNOzZCQUdOLEtBQUs7MEJBR0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtTdG9ja1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlL3N0b2NrLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stbWFuYWdlbWVudC13YXJlaG91c2VzLmJvXCI7XHJcbmltcG9ydCB7QXJ0aWNsZVN0b2NrTWFuYWdlbWVudH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2stbWFuYWdlbWVudFwiO1xyXG5pbXBvcnQge0FydGljbGVEZXRhaWxzQm99IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWRldGFpbHMuYm9cIjtcclxuaW1wb3J0IHtTdG9ja1N0YXR1c30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLXN0YXR1cy5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVGbGF0fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1mbGF0LmJvXCI7XHJcbmltcG9ydCB7U3RvY2tMb2NhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLWxvY2F0aW9uLmJvXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1zdG9jay1sb2NhdGlvbi1wb3B1cFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwic3RvY2stZ3JpZFwiPlxyXG4gICAgICA8Y28tZGlhbG9nICpuZ0lmPVwic2hvd0NvbmZpcm1hdGlvbkRpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgICAgW3Nob3dDbG9zZUljb25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgW21vZGFsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgIChjbG9zZUNsaWNrKT1cInRvZ2dsZVBvcHVwKClcIlxyXG4gICAgICAgICAgICAgICAgIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctaGVhZGVyLXRpdGxlLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGNvLWljb24gW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DdWJlcylcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIidDT05GSVJNX1NUT0NLX0NIQU5HRScgfCBzaGFyZWRMb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZGVsZXRlU3RvY2tMaW5lXCIgY2xhc3M9XCJkaWFsb2ctd3JhcHBlclwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdG9jay1oZWFkZXJcIiBbdGV4dENvbnRlbnRdPVwiJ0RFTEVURV9TVE9DS19MSU5FPycgfCBzaGFyZWRMb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWRlbGV0ZVN0b2NrTGluZVwiIGNsYXNzPVwiZGlhbG9nLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1kaWFsb2ctaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RvY2staGVhZGVyXCIgKm5nSWY9XCJuZXdTdG9ja0xpbmVcIiBbdGV4dENvbnRlbnRdPVwiJ05FV19TVE9DS19MSU5FJyB8IHNoYXJlZExvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0b2NrLWhlYWRlclwiICpuZ0lmPVwiIW5ld1N0b2NrTGluZVwiIFt0ZXh0Q29udGVudF09XCInQ0hBTkdFX1NUT0NLX0xJTkUnIHwgc2hhcmVkTG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1kaWFsb2ctcm93XCI+XHJcbiAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFttb2RlbF09XCJzZWxlY3RlZFdhcmVob3VzZT8ud2FyZWhvdXNlRGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1dBUkVIT1VTRScgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwic2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuc2VyaWFsTm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NFUklBTF9OTycgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcblxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stZGlhbG9nLXJvd1wiPlxyXG4gICAgICAgICAgICA8Y28tbGlzdC1vZi12YWx1ZXMgKm5nSWY9XCJhcnRpY2xlRmxhdC5sb2NhdGlvblJlZ2lzdGVyZWRcIlxyXG4gICAgICAgICAgICAgIFttb2RlbF09XCJsb2NhdGlvbkZvck51bWJlcihzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5sb2NhdGlvbk5vKVwiXHJcbiAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwic3RvY2tMb2NhdGlvbnNcIlxyXG4gICAgICAgICAgICAgIFtkaXNwbGF5RmllbGRdPVwiJ2xvY2F0aW9uTm8nXCJcclxuICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0xPQ0FUSU9OJyB8IHNoYXJlZExvY2FsaXplXCJcclxuICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImxvY2F0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvY28tbGlzdC1vZi12YWx1ZXM+XHJcbiAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cInNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmJhdGNoTm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0JBVENIJyB8IHNoYXJlZExvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWRpYWxvZy1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWRpYWxvZy1yb3ctcm93XCI+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgW21vZGVsXT1cImFydGljbGVTdG9ja0luZm9bMF0/LnB1cmNoYXNlUHJpY2UgfCBjdXJyZW5jeTonRVVSJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidQVVJDSEFTRV9QUklDRScgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cImFydGljbGVTdG9ja0luZm9bMF0uY3VycmVuY3lcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInVkFMVVRBJyB8IHNoYXJlZExvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8Y28taW5wdXQtZGF0ZSBbbW9kZWxdPVwic2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGE/LmVudHJ5RGF0ZT8gc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGE/LmVudHJ5RGF0ZSA6IG5ld0RhdGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInREFURScgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgID48L2NvLWlucHV0LWRhdGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1kaWFsb2ctcm93XCI+XHJcbiAgICAgICAgICAgIDxjby1pbnB1dC1udW1iZXItcGlja2VyXHJcbiAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuYW1vdW50SW5TdG9ja1wiXHJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIidTVE9DSycgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImFtb3VudEluU3RvY2tDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIFttaW5dPVwiMFwiXHJcbiAgICAgICAgICAgID48L2NvLWlucHV0LW51bWJlci1waWNrZXI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsbGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24td3JhcHBlciBvay1jYW5jZWwtYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInN0b2NrQmVsb3dcIiBjbGFzcz1cIm1pbmltdW0tc3RvY2tcIiBbdGV4dENvbnRlbnRdPVwiJ1NUT0NLX0JFTE9XX1pFUk9fVEVYVCcgfCBzaGFyZWRMb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cInNhdmUtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT2tDbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNoZWNrRHVvdG9uZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCI+XHJcbiAgICAgICAgICAgIDwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2FuY2VsLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBvcHVwKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ3Jvc3NTa2lubnkpXCI+XHJcbiAgICAgICAgICAgIDwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9jby1kaWFsb2c+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0b2NrTG9jYXRpb25Qb3B1cENvbXBvbmVudCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIHByaXZhdGUgX3NlbGVjdGVkTG9jYXRpb25Obzogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBlZGl0aW5nUm93OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dDb25maXJtYXRpb25EaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbmV3U3RvY2tMaW5lOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRlbGV0ZVN0b2NrTGluZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YTogQXJ0aWNsZURldGFpbHNCbyA9IG5ldyBBcnRpY2xlRGV0YWlsc0JvKCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFydGljbGVGbGF0OiBBcnRpY2xlRmxhdDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbjogQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCA9IG5ldyBBcnRpY2xlU3RvY2tNYW5hZ2VtZW50KClcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2VsZWN0ZWRXYXJlaG91c2U6IFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXMgPSBuZXcgU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcygpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWRMb2NhdGlvbk5vKGxvY2F0aW9uTm8gOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3NlbGVjdGVkTG9jYXRpb25ObyA9IGxvY2F0aW9uTm87XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIGdldCBzZWxlY3RlZExvY2F0aW9uTm8oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZExvY2F0aW9uTm87XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlU3RvY2tJbmZvOiBBcnRpY2xlRGV0YWlsc0JvW10gPSBbXTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHRvZ2dsZVBvcHVwRXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNhdmVFdmVudDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgdXBkYXRlR3JpZERhdGE6IEV2ZW50RW1pdHRlcjxBcnRpY2xlRGV0YWlsc0JvW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxBcnRpY2xlRGV0YWlsc0JvW10+KCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHN0b2NrTG9jYXRpb25zOiBTdG9ja0xvY2F0aW9uW10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc3RvY2tTdGF0dXM6IFN0b2NrU3RhdHVzW10gPSBbXTtcclxuXHJcbiAgcHVibGljIHN0b2NrQmVsb3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zdG9ja1NlcnZpY2U6IFN0b2NrU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHVibGljIHN0YXR1c0ZvcklkKGlkOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b2NrU3RhdHVzLmZpbmQoc3RhdHVzID0+IHN0YXR1cy5zdG9ja1N0YXRlSWQgPT09IGlkKSA/IHRoaXMuc3RvY2tTdGF0dXMuZmluZChzdGF0dXMgPT4gc3RhdHVzLnN0b2NrU3RhdGVJZCA9PT0gaWQpIDogMCA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU3RvY2tTdGF0dXNDaGFuZ2Uoc3RhdHVzOiBTdG9ja1N0YXR1cykge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5zdG9ja1N0YXRlSWQgPSBzdGF0dXMuc3RvY2tTdGF0ZUlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVN0b2NrU3RhdHVzUmVtYXJrQ2hhbmdlKHJlbWFyazogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLnN0b2NrU3RhdGVSZW1hcmsgPSByZW1hcms7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYW1vdW50SW5TdG9ja0NoYW5nZWQoZGF0YSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5hbW91bnRJblN0b2NrID0gZGF0YTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiAoIXRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGE/LnN0b2NrU3RhdGVJZCAmJiB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhPy5zdG9ja1N0YXRlUmVtYXJrPy5sZW5ndGggPD0gMSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlT2tDbGljaygpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLnN0b2NrQXNzaWduZWQgPj0gdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5hbW91bnRJblN0b2NrKSB7XHJcbiAgICAgIHRoaXMuc3RvY2tCZWxvdyA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0b2NrQmVsb3cgPSBmYWxzZTtcclxuICAgICAgdGhpcy5oYW5kbGVTdG9ja0NoYW5nZSgpO1xyXG4gICAgICB0aGlzLnNhdmVFdmVudC5lbWl0KHRydWUpO1xyXG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHRoaXMudG9nZ2xlUG9wdXBFdmVudC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIHRvZ2dsZVBvcHVwKCkge1xyXG4gICAgdGhpcy5zdG9ja0JlbG93ID0gZmFsc2U7XHJcbiAgICB0aGlzLnRvZ2dsZVBvcHVwRXZlbnQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN0b2NrTG9jYXRpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldFN0b2NrTWFuYWdlbWVudExvY2F0aW9ucyh0aGlzLnNlbGVjdGVkV2FyZWhvdXNlLndhcmVob3VzZU5vKS50aGVuKChsb2NhdGlvbnMpID0+IHtcclxuICAgICAgdGhpcy5zdG9ja0xvY2F0aW9ucyA9IGxvY2F0aW9ucztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvY2F0aW9uRm9yTnVtYmVyKG51bWJlcjogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9ja0xvY2F0aW9ucz8uZmluZChsb2NhdGlvbiA9PiBsb2NhdGlvbi5sb2NhdGlvbk5vID09PSBudW1iZXIpID8gdGhpcy5zdG9ja0xvY2F0aW9ucz8uZmluZChsb2NhdGlvbiA9PiBsb2NhdGlvbi5sb2NhdGlvbk5vID09PSBudW1iZXIpIDogXCJcIiA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9jYXRpb25DaGFuZ2VkKGV2ZW50OiBTdG9ja0xvY2F0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTG9jYXRpb25ObyA9IGV2ZW50LmxvY2F0aW9uTm87XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmxvY2F0aW9uTm8gPSBldmVudC5sb2NhdGlvbk5vO1xyXG4gICAgaWYgKHRoaXMuYXJ0aWNsZVN0b2NrSW5mbz8ubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlU3RvY2tDaGFuZ2UoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0U3RvY2tMb2NhdGlvbnMoKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVN0b2NrQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5hcnRpY2xlRmxhdC5nb29kSWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5nb29kSWQgPSB0aGlzLmFydGljbGVGbGF0Lmdvb2RJZDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLmdvb2RJZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmdvb2RJZCA9IHBhcnNlSW50KHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi5nb29kSWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5lbnRyeURhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgaWYgKHRoaXMuZGVsZXRlU3RvY2tMaW5lKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRXYXJlaG91c2Uud2FyZWhvdXNlTm8gPSB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLndhcmVob3VzZU5vO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmFtb3VudEluU3RvY2sgPSAwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS53YXJlaG91c2VObyA9IHRoaXMuc2VsZWN0ZWRXYXJlaG91c2Uud2FyZWhvdXNlTm87XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkTG9jYXRpb25ObyAmJiB0aGlzLmFydGljbGVGbGF0LmxvY2F0aW9uUmVnaXN0ZXJlZCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEubG9jYXRpb25ObyA9IHRoaXMuc2VsZWN0ZWRMb2NhdGlvbk5vPy50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvL2lmICghdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5hbW91bnRJblN0b2NrKSB7XHJcbiAgICAvLyAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5hbW91bnRJblN0b2NrID0gMTtcclxuICAgIC8vIH1cclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS51cGRhdGVBcnRpY2xlRGV0YWlscyh0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgdGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLmdvb2RJZCA9IHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuZ29vZElkPy50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi53YXJlaG91c2VOdW1iZXIgPSB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLndhcmVob3VzZU5vO1xyXG4gICAgICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRBcnRpY2xlRGV0YWlscyh0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24pLnRoZW4oKGRldGFpbHMpID0+IHtcclxuICAgICAgICAgIHRoaXMuYXJ0aWNsZVN0b2NrSW5mbyA9IGRldGFpbHM7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZUdyaWREYXRhLmVtaXQoZGV0YWlscyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmV3RGF0ZSgpOiBEYXRlIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19