tas-uell-sdk 0.3.1 → 0.3.2

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.
@@ -25,6 +25,7 @@ export class TasButtonComponent {
25
25
  this.isStatusError = false;
26
26
  this.statusErrorMessage = '';
27
27
  this.isJoinable = false; // Tracks joinable field from status response
28
+ this.isWaitingRoomAvailable = false; // Controls button enabled state
28
29
  this.shouldShowButton = false; // Hidden by default, shown after status check confirms visibility
29
30
  this.subscriptions = new Subscription();
30
31
  this.currentModalRef = null;
@@ -40,7 +41,9 @@ export class TasButtonComponent {
40
41
  }
41
42
  /** Whether the button should be disabled */
42
43
  get isDisabled() {
43
- return this.isLoading || this.isStatusError || !this.isJoinable;
44
+ // Button is enabled if joinable OR waitingRoomAvailable is true
45
+ const canJoin = this.isJoinable || this.isWaitingRoomAvailable;
46
+ return this.isLoading || this.isStatusError || !canJoin;
44
47
  }
45
48
  /** Reason why the button is disabled (for tooltip) */
46
49
  get disabledReason() {
@@ -50,8 +53,8 @@ export class TasButtonComponent {
50
53
  if (this.isStatusError) {
51
54
  return this.statusErrorMessage || 'Error al verificar el estado';
52
55
  }
53
- if (!this.isJoinable) {
54
- return 'Todavía no es el horario de la llamada';
56
+ if (!this.isJoinable && !this.isWaitingRoomAvailable) {
57
+ return 'La sala de espera no está disponible';
55
58
  }
56
59
  return '';
57
60
  }
@@ -118,8 +121,9 @@ export class TasButtonComponent {
118
121
  this.isStatusError = false;
119
122
  this.statusErrorMessage = '';
120
123
  this.shouldShowButton = true;
121
- // Update joinable state from response
124
+ // Track status fields for button state
122
125
  this.isJoinable = response.content?.joinable ?? false;
126
+ this.isWaitingRoomAvailable = response.content?.waitingRoomAvailable ?? false;
123
127
  },
124
128
  error: (err) => {
125
129
  this.handleStatusError(err);
@@ -143,6 +147,9 @@ export class TasButtonComponent {
143
147
  if (!this.entityId) {
144
148
  return;
145
149
  }
150
+ if (this.currentModalRef) {
151
+ return;
152
+ }
146
153
  this.openWaitingRoomModal();
147
154
  }
148
155
  openWaitingRoomModal() {
@@ -203,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
203
210
  }], buttonLabel: [{
204
211
  type: Input
205
212
  }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzLWJ0bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YXMtdWVsbC1zZGsvc3JjL2xpYi9jb21wb25lbnRzL3Rhcy1idG4vdGFzLWJ0bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YXMtdWVsbC1zZGsvc3JjL2xpYi9jb21wb25lbnRzL3Rhcy1idG4vdGFzLWJ0bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBR0wsV0FBVyxFQUNYLFFBQVEsRUFDUixlQUFlLEdBQ2hCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7OztBQVNqRixNQUFNLE9BQU8sa0JBQWtCO0lBeUQ3QixZQUNVLFlBQXNCLEVBQ3RCLFVBQXNCLEVBQ3RCLGlCQUFvQztRQUZwQyxpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUEzRDlDLHlCQUF5QjtRQUNoQixhQUFRLEdBQWdCLFdBQVcsQ0FBQyxHQUFHLENBQUM7UUFHeEMsaUJBQVksR0FBb0IsZUFBZSxDQUFDLElBQUksQ0FBQztRQUs5RCxzQkFBc0I7UUFDYixZQUFPLEdBQXVCLFNBQVMsQ0FBQztRQUN4QyxnQkFBVyxHQUFXLGFBQWEsQ0FBQztRQUV0QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXpCLHFCQUFxQjtRQUNkLHFCQUFnQixHQUFHLEtBQUssQ0FBQztR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OztnSEE3TlUsa0JBQWtCO29HQUFsQixrQkFBa0IsbU9DcEIvQixpbEJBbUJBOzRGRENhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxTQUFTO3dKQU1WLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYk1vZGFsLCBOZ2JNb2RhbFJlZiB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgVGFzQ3VycmVudFVzZXIsXG4gIFxuICBUYXNSb29tVHlwZSxcbiAgVmlld01vZGUsXG4gIFRhc0J1c2luZXNzUm9sZSxcbn0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy90YXMuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBUYXNXYWl0aW5nUm9vbUNvbXBvbmVudCB9IGZyb20gJy4uL3Rhcy13YWl0aW5nLXJvb20vdGFzLXdhaXRpbmctcm9vbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFzVmlkZW9jYWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFzLXZpZGVvY2FsbC90YXMtdmlkZW9jYWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFzVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXMtdXRpbGl0eS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFzLWJ0bicsXG4gIHRlbXBsYXRlVXJsOiAnLi90YXMtYnRuLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFzLWJ0bi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUYXNCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8vIFN0YXR1cyBlbmRwb2ludCBwYXJhbXNcbiAgQElucHV0KCkgcm9vbVR5cGU6IFRhc1Jvb21UeXBlID0gVGFzUm9vbVR5cGUuVEFTO1xuICBASW5wdXQoKSBlbnRpdHlJZCE6IG51bWJlcjtcbiAgQElucHV0KCkgdGVuYW50ITogc3RyaW5nO1xuICBASW5wdXQoKSBidXNpbmVzc1JvbGU6IFRhc0J1c2luZXNzUm9sZSA9IFRhc0J1c2luZXNzUm9sZS5VU0VSO1xuXG4gIC8vIFVzZXIgaW5mbyBmb3IgdG9rZW4gcmVxdWVzdFxuICBASW5wdXQoKSBjdXJyZW50VXNlciE6IFRhc0N1cnJlbnRVc2VyO1xuXG4gIC8vIFN0eWxlIGN1c3RvbWl6YXRpb25cbiAgQElucHV0KCkgdmFyaWFudDogJ2RlZmF1bHQnIHwgJ3RlYWwnID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBidXR0b25MYWJlbDogc3RyaW5nID0gJ0luaWNpYXIgVEFTJztcblxuICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgLy8gU3RhdHVzIGNoZWNrIHN0YXRlXG4gIHB1YmxpYyBpc0NoZWNraW5nU3RhdHVzID0gZmFsc2U7XG4gIHB1YmxpYyBpc1N0YXR1c0Vycm9yID0gZmFsc2U7XG4gIHB1YmxpYyBzdGF0dXNFcnJvck1lc3NhZ2UgPSAnJztcbiAgcHVibGljIGlzSm9pbmFibGUgPSBmYWxzZTsgLy8gVHJhY2tzIGpvaW5hYmxlIGZpZWxkIGZyb20gc3RhdHVzIHJlc3BvbnNlXG4gIHB1YmxpYyBzaG91bGRTaG93QnV0dG9uID0gZmFsc2U7IC8vIEhpZGRlbiBieSBkZWZhdWx0LCBzaG93biBhZnRlciBzdGF0dXMgY2hlY2sgY29uZmlybXMgdmlzaWJpbGl0eVxuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSBjdXJyZW50TW9kYWxSZWY6IE5nYk1vZGFsUmVmIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgdmlkZW9DYWxsTW9kYWxSZWY6IE5nYk1vZGFsUmVmIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc3RhdHVzUG9sbGluZ0ludGVydmFsOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBTVEFUVVNfUE9MTF9JTlRFUlZBTF9NUyA9IDMwMDAwOyAvLyAzMCBzZWNvbmRzXG5cbiAgLyoqIFdoZXRoZXIgdXNlciBpcyBiYWNrb2ZmaWNlIChvciBhZG1pbi9tYW5hZ2VyKSAqL1xuICBwdWJsaWMgZ2V0IGlzQmFja29mZmljZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5idXNpbmVzc1JvbGUgPT09IFRhc0J1c2luZXNzUm9sZS5CQUNLT0ZGSUNFIHx8XG4gICAgICB0aGlzLmJ1c2luZXNzUm9sZSA9PT0gVGFzQnVzaW5lc3NSb2xlLkFETUlOX01BTkFHRVIgfHxcbiAgICAgIHRoaXMuYnVzaW5lc3NSb2xlID09PSBUYXNCdXNpbmVzc1JvbGUuTUFOQUdFUlxuICAgICk7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgYnV0dG9uIHNob3VsZCBiZSBkaXNhYmxlZCAqL1xuICBwdWJsaWMgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNMb2FkaW5nIHx8IHRoaXMuaXNTdGF0dXNFcnJvciB8fCAhdGhpcy5pc0pvaW5hYmxlO1xuICB9XG5cbiAgLyoqIFJlYXNvbiB3aHkgdGhlIGJ1dHRvbiBpcyBkaXNhYmxlZCAoZm9yIHRvb2x0aXApICovXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWRSZWFzb24oKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNTdGF0dXNFcnJvcikge1xuICAgICAgcmV0dXJuIHRoaXMuc3RhdHVzRXJyb3JNZXNzYWdlIHx8ICdFcnJvciBhbCB2ZXJpZmljYXIgZWwgZXN0YWRvJztcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzSm9pbmFibGUpIHtcbiAgICAgIHJldHVybiAnVG9kYXbDrWEgbm8gZXMgZWwgaG9yYXJpbyBkZSBsYSBsbGFtYWRhJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxuICAgIHByaXZhdGUgdGFzU2VydmljZTogVGFzU2VydmljZSxcbiAgICBwcml2YXRlIHRhc1V0aWxpdHlTZXJ2aWNlOiBUYXNVdGlsaXR5U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gU3Vic2NyaWJlIHRvIHZpZXdNb2RlIHRvIGhhbmRsZSBQaVAgcmV0dXJuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudGFzU2VydmljZS52aWV3TW9kZSQuc3Vic2NyaWJlKChtb2RlKSA9PiB7XG4gICAgICAgIC8vIFdoZW4gZW50ZXJpbmcgUGlQLCBjbGVhciB0aGUgdmlkZW9DYWxsTW9kYWxSZWYgc2luY2UgbW9kYWwgd2lsbCBjbG9zZVxuICAgICAgICBpZiAobW9kZSA9PT0gVmlld01vZGUuUElQKSB7XG4gICAgICAgICAgdGhpcy52aWRlb0NhbGxNb2RhbFJlZiA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIFN0YXJ0IHN0YXR1cyBjaGVja2luZ1xuICAgIHRoaXMuc3RhcnRTdGF0dXNQb2xsaW5nKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN0b3BTdGF0dXNQb2xsaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgcG9sbGluZyBzdGF0dXMgZXZlcnkgMzAgc2Vjb25kc1xuICAgKi9cbiAgcHJpdmF0ZSBzdGFydFN0YXR1c1BvbGxpbmcoKTogdm9pZCB7XG4gICAgLy8gSW5pdGlhbCBzdGF0dXMgY2hlY2tcbiAgICB0aGlzLmNoZWNrU3RhdHVzKCk7XG5cbiAgICAvLyBTZXQgdXAgcGVyaW9kaWMgcG9sbGluZ1xuICAgIHRoaXMuc3RhdHVzUG9sbGluZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5jaGVja1N0YXR1cygpO1xuICAgIH0sIHRoaXMuU1RBVFVTX1BPTExfSU5URVJWQUxfTVMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3Agc3RhdHVzIHBvbGxpbmdcbiAgICovXG4gIHByaXZhdGUgc3RvcFN0YXR1c1BvbGxpbmcoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdHVzUG9sbGluZ0ludGVydmFsKSB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMuc3RhdHVzUG9sbGluZ0ludGVydmFsKTtcbiAgICAgIHRoaXMuc3RhdHVzUG9sbGluZ0ludGVydmFsID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgc3RhdHVzIGVuZHBvaW50IHRvIGRldGVybWluZSBpZiBidXR0b24gc2hvdWxkIGJlIGVuYWJsZWRcbiAgICovXG4gIHByaXZhdGUgY2hlY2tTdGF0dXMoKTogdm9pZCB7XG4gICAgLy8gU2tpcCBpZiByZXF1aXJlZCBpbnB1dHMgYXJlIG5vdCBhdmFpbGFibGVcbiAgICBpZiAoIXRoaXMudGVuYW50IHx8ICF0aGlzLmVudGl0eUlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0NoZWNraW5nU3RhdHVzID0gdHJ1ZTtcbiAgICB0aGlzLnN0YXR1c0Vycm9yTWVzc2FnZSA9ICcnO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudGFzU2VydmljZVxuICAgICAgICAuZ2V0UHJveHlWaWRlb1N0YXR1cyh7XG4gICAgICAgICAgcm9vbVR5cGU6IHRoaXMucm9vbVR5cGUsXG4gICAgICAgICAgZW50aXR5SWQ6IHRoaXMuZW50aXR5SWQsXG4gICAgICAgICAgdGVuYW50OiB0aGlzLnRlbmFudCxcbiAgICAgICAgICBidXNpbmVzc1JvbGU6IHRoaXMuYnVzaW5lc3NSb2xlLFxuICAgICAgICB9KVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIC8vIFZhbGlkYXRlIHJlc3BvbnNlIHN0cnVjdHVyZVxuICAgICAgICAgICAgaWYgKCFyZXNwb25zZSB8fCAhcmVzcG9uc2UuY29udGVudCkge1xuICAgICAgICAgICAgICB0aGlzLmhhbmRsZVN0YXR1c0Vycm9yKCdJbnZhbGlkIHJlc3BvbnNlJyk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5pc0NoZWNraW5nU3RhdHVzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmlzU3RhdHVzRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzRXJyb3JNZXNzYWdlID0gJyc7XG4gICAgICAgICAgICB0aGlzLnNob3VsZFNob3dCdXR0b24gPSB0cnVlO1xuICAgICAgICAgICAgLy8gVXBkYXRlIGpvaW5hYmxlIHN0YXRlIGZyb20gcmVzcG9uc2VcbiAgICAgICAgICAgIHRoaXMuaXNKb2luYWJsZSA9IHJlc3BvbnNlLmNvbnRlbnQ/LmpvaW5hYmxlID8/IGZhbHNlO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcblxuICAgICAgICAgICAgdGhpcy5oYW5kbGVTdGF0dXNFcnJvcihlcnIpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU3RhdHVzRXJyb3IoZXJyOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmlzQ2hlY2tpbmdTdGF0dXMgPSBmYWxzZTtcbiAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSB0aGlzLnRhc1V0aWxpdHlTZXJ2aWNlLmV4dHJhY3RFcnJvck1lc3NhZ2UoZXJyLCAnRXJyb3IgY2hlY2tpbmcgc3RhdHVzJyk7XG4gICAgdGhpcy5zdGF0dXNFcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2U7XG5cbiAgICAvLyBPbiBhbnkgc3RhdHVzIGVycm9yLCBoaWRlIHRoZSBidXR0b25cbiAgICB0aGlzLnNob3VsZFNob3dCdXR0b24gPSBmYWxzZTtcbiAgICB0aGlzLmlzU3RhdHVzRXJyb3IgPSBmYWxzZTsgLy8gV2UgZG9uJ3Qgc2hvdyBlcnJvciBVSSwganVzdCBoaWRlIHRoZSBidXR0b25cblxuICAgIC8vIFN0b3AgcG9sbGluZyBvbiBlcnJvclxuICAgIHRoaXMuc3RvcFN0YXR1c1BvbGxpbmcoKTtcbiAgfVxuXG4gIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRlbmFudCB8fCAhdGhpcy5jdXJyZW50VXNlcj8ubmFtZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5lbnRpdHlJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMub3BlbldhaXRpbmdSb29tTW9kYWwoKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbldhaXRpbmdSb29tTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50TW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFRhc1dhaXRpbmdSb29tQ29tcG9uZW50LCB7XG4gICAgICBzaXplOiAnbGcnLFxuICAgICAgd2luZG93Q2xhc3M6ICd0YXMtd2FpdGluZy1yb29tLW1vZGFsJyxcbiAgICAgIGJhY2tkcm9wOiAnc3RhdGljJyxcbiAgICAgIGtleWJvYXJkOiBmYWxzZSxcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gUGFzcyBhbGwgbmVjZXNzYXJ5IGlucHV0cyB0byB0aGUgd2FpdGluZyByb29tIGNvbXBvbmVudFxuICAgIHRoaXMuY3VycmVudE1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnJvb21UeXBlID0gdGhpcy5yb29tVHlwZTtcbiAgICB0aGlzLmN1cnJlbnRNb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5lbnRpdHlJZCA9IHRoaXMuZW50aXR5SWQ7XG4gICAgdGhpcy5jdXJyZW50TW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UudGVuYW50ID0gdGhpcy50ZW5hbnQ7XG4gICAgdGhpcy5jdXJyZW50TW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuYnVzaW5lc3NSb2xlID0gdGhpcy5idXNpbmVzc1JvbGU7XG4gICAgdGhpcy5jdXJyZW50TW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuY3VycmVudFVzZXIgPSB0aGlzLmN1cnJlbnRVc2VyO1xuXG4gICAgdGhpcy5jdXJyZW50TW9kYWxSZWYucmVzdWx0LnRoZW4oXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudE1vZGFsUmVmID0gbnVsbDtcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudE1vZGFsUmVmID0gbnVsbDtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuVmlkZW9DYWxsTW9kYWwoaXNSZXR1cm5pbmdGcm9tUGlwOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLnZpZGVvQ2FsbE1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihUYXNWaWRlb2NhbGxDb21wb25lbnQsIHtcbiAgICAgIHNpemU6ICd4bCcsXG4gICAgICB3aW5kb3dDbGFzczogJ3Rhcy12aWRlby1tb2RhbCcsXG4gICAgICBiYWNrZHJvcDogJ3N0YXRpYycsXG4gICAgICBrZXlib2FyZDogZmFsc2UsXG4gICAgfSk7XG5cbiAgICB0aGlzLnZpZGVvQ2FsbE1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnNlc3Npb25JZCA9IHRoaXMudGFzU2VydmljZS5zZXNzaW9uSWQ7XG4gICAgdGhpcy52aWRlb0NhbGxNb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS50b2tlbiA9IHRoaXMudGFzU2VydmljZS50b2tlbjtcbiAgICB0aGlzLnZpZGVvQ2FsbE1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmJ1c2luZXNzUm9sZSA9IHRoaXMuYnVzaW5lc3NSb2xlO1xuICAgIHRoaXMudmlkZW9DYWxsTW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuaXNSZXR1cm5pbmdGcm9tUGlwID0gaXNSZXR1cm5pbmdGcm9tUGlwO1xuXG4gICAgdGhpcy52aWRlb0NhbGxNb2RhbFJlZi5yZXN1bHQudGhlbihcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy52aWRlb0NhbGxNb2RhbFJlZiA9IG51bGw7XG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLnZpZGVvQ2FsbE1vZGFsUmVmID0gbnVsbDtcbiAgICAgIH1cbiAgICApO1xuICB9XG59XG4iLCI8c3BhblxuICAqbmdJZj1cInNob3VsZFNob3dCdXR0b25cIlxuICBbbmdiVG9vbHRpcF09XCJpc0Rpc2FibGVkICYmIGRpc2FibGVkUmVhc29uID8gZGlzYWJsZWRSZWFzb24gOiBudWxsXCJcbiAgY29udGFpbmVyPVwiYm9keVwiXG4gIHBsYWNlbWVudD1cInRvcFwiXG4gIHRvb2x0aXBDbGFzcz1cInRhcy1idG4tdG9vbHRpcFwiXG4+XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB0YXMtYnRuXCJcbiAgICBbY2xhc3MudGFzLWJ0bi0tdGVhbF09XCJ2YXJpYW50ID09PSAndGVhbCdcIlxuICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgPlxuICAgIDxpIGNsYXNzPVwiZmEgZmEtdmlkZW8tY2FtZXJhXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+PC9pPlxuICAgIDxzcGFuICpuZ0lmPVwiIWlzTG9hZGluZ1wiPnt7IGJ1dHRvbkxhYmVsIH19PC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwiaXNMb2FkaW5nXCI+UHJvY2Vzc2luZy4uLjwvc3Bhbj5cbiAgPC9idXR0b24+XG48L3NwYW4+XG4iXX0=
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzLWJ0bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YXMtdWVsbC1zZGsvc3JjL2xpYi9jb21wb25lbnRzL3Rhcy1idG4vdGFzLWJ0bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YXMtdWVsbC1zZGsvc3JjL2xpYi9jb21wb25lbnRzL3Rhcy1idG4vdGFzLWJ0bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBR0wsV0FBVyxFQUNYLFFBQVEsRUFDUixlQUFlLEdBQ2hCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7OztBQVNqRixNQUFNLE9BQU8sa0JBQWtCO0lBNEQ3QixZQUNVLFlBQXNCLEVBQ3RCLFVBQXNCLEVBQ3RCLGlCQUFvQztRQUZwQyxpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUE5RDlDLHlCQUF5QjtRQUNoQixhQUFRLEdBQWdCLFdBQVcsQ0FBQyxHQUFHLENBQUM7UUFHeEMsaUJBQVksR0FBb0IsZUFBZSxDQUFDLElBQUksQ0FBQztRQUs5RCxzQkFBc0I7UUFDYixZQUFPLEdBQXVCLFNBQVMsQ0FBQztRQUN4QyxnQkFBVyxHQUFXLGFBQWEsQ0FBQztRQUV0QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRXpCLHFCQUFxQjtRQUNkLHFCQUFnQixHQUFHLEtBQUssQ0FBQztR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MUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO1FBRWpGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNoQyxHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLENBQUMsRUFDRCxHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7Z0hBdk9VLGtCQUFrQjtvR0FBbEIsa0JBQWtCLG1PQ3BCL0IsaWxCQW1CQTs0RkRDYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsU0FBUzt3SkFNVixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ2JNb2RhbCwgTmdiTW9kYWxSZWYgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIFRhc0N1cnJlbnRVc2VyLFxuICBcbiAgVGFzUm9vbVR5cGUsXG4gIFZpZXdNb2RlLFxuICBUYXNCdXNpbmVzc1JvbGUsXG59IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGFzLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgVGFzV2FpdGluZ1Jvb21Db21wb25lbnQgfSBmcm9tICcuLi90YXMtd2FpdGluZy1yb29tL3Rhcy13YWl0aW5nLXJvb20uY29tcG9uZW50JztcbmltcG9ydCB7IFRhc1ZpZGVvY2FsbENvbXBvbmVudCB9IGZyb20gJy4uL3Rhcy12aWRlb2NhbGwvdGFzLXZpZGVvY2FsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Rhcy5zZXJ2aWNlJztcbmltcG9ydCB7IFRhc1V0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFzLXV0aWxpdHkuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rhcy1idG4nLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFzLWJ0bi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Rhcy1idG4uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFzQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvLyBTdGF0dXMgZW5kcG9pbnQgcGFyYW1zXG4gIEBJbnB1dCgpIHJvb21UeXBlOiBUYXNSb29tVHlwZSA9IFRhc1Jvb21UeXBlLlRBUztcbiAgQElucHV0KCkgZW50aXR5SWQhOiBudW1iZXI7XG4gIEBJbnB1dCgpIHRlbmFudCE6IHN0cmluZztcbiAgQElucHV0KCkgYnVzaW5lc3NSb2xlOiBUYXNCdXNpbmVzc1JvbGUgPSBUYXNCdXNpbmVzc1JvbGUuVVNFUjtcblxuICAvLyBVc2VyIGluZm8gZm9yIHRva2VuIHJlcXVlc3RcbiAgQElucHV0KCkgY3VycmVudFVzZXIhOiBUYXNDdXJyZW50VXNlcjtcblxuICAvLyBTdHlsZSBjdXN0b21pemF0aW9uXG4gIEBJbnB1dCgpIHZhcmlhbnQ6ICdkZWZhdWx0JyB8ICd0ZWFsJyA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgYnV0dG9uTGFiZWw6IHN0cmluZyA9ICdJbmljaWFyIFRBUyc7XG5cbiAgcHVibGljIGlzTG9hZGluZyA9IGZhbHNlO1xuXG4gIC8vIFN0YXR1cyBjaGVjayBzdGF0ZVxuICBwdWJsaWMgaXNDaGVja2luZ1N0YXR1cyA9IGZhbHNlO1xuICBwdWJsaWMgaXNTdGF0dXNFcnJvciA9IGZhbHNlO1xuICBwdWJsaWMgc3RhdHVzRXJyb3JNZXNzYWdlID0gJyc7XG4gIHB1YmxpYyBpc0pvaW5hYmxlID0gZmFsc2U7IC8vIFRyYWNrcyBqb2luYWJsZSBmaWVsZCBmcm9tIHN0YXR1cyByZXNwb25zZVxuICBwdWJsaWMgaXNXYWl0aW5nUm9vbUF2YWlsYWJsZSA9IGZhbHNlOyAvLyBDb250cm9scyBidXR0b24gZW5hYmxlZCBzdGF0ZVxuICBwdWJsaWMgc2hvdWxkU2hvd0J1dHRvbiA9IGZhbHNlOyAvLyBIaWRkZW4gYnkgZGVmYXVsdCwgc2hvd24gYWZ0ZXIgc3RhdHVzIGNoZWNrIGNvbmZpcm1zIHZpc2liaWxpdHlcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgY3VycmVudE1vZGFsUmVmOiBOZ2JNb2RhbFJlZiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHZpZGVvQ2FsbE1vZGFsUmVmOiBOZ2JNb2RhbFJlZiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHN0YXR1c1BvbGxpbmdJbnRlcnZhbDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgcmVhZG9ubHkgU1RBVFVTX1BPTExfSU5URVJWQUxfTVMgPSAzMDAwMDsgLy8gMzAgc2Vjb25kc1xuXG4gIC8qKiBXaGV0aGVyIHVzZXIgaXMgYmFja29mZmljZSAob3IgYWRtaW4vbWFuYWdlcikgKi9cbiAgcHVibGljIGdldCBpc0JhY2tvZmZpY2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuYnVzaW5lc3NSb2xlID09PSBUYXNCdXNpbmVzc1JvbGUuQkFDS09GRklDRSB8fFxuICAgICAgdGhpcy5idXNpbmVzc1JvbGUgPT09IFRhc0J1c2luZXNzUm9sZS5BRE1JTl9NQU5BR0VSIHx8XG4gICAgICB0aGlzLmJ1c2luZXNzUm9sZSA9PT0gVGFzQnVzaW5lc3NSb2xlLk1BTkFHRVJcbiAgICApO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGJ1dHRvbiBzaG91bGQgYmUgZGlzYWJsZWQgKi9cbiAgcHVibGljIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIC8vIEJ1dHRvbiBpcyBlbmFibGVkIGlmIGpvaW5hYmxlIE9SIHdhaXRpbmdSb29tQXZhaWxhYmxlIGlzIHRydWVcbiAgICBjb25zdCBjYW5Kb2luID0gdGhpcy5pc0pvaW5hYmxlIHx8IHRoaXMuaXNXYWl0aW5nUm9vbUF2YWlsYWJsZTtcbiAgICByZXR1cm4gdGhpcy5pc0xvYWRpbmcgfHwgdGhpcy5pc1N0YXR1c0Vycm9yIHx8ICFjYW5Kb2luO1xuICB9XG5cbiAgLyoqIFJlYXNvbiB3aHkgdGhlIGJ1dHRvbiBpcyBkaXNhYmxlZCAoZm9yIHRvb2x0aXApICovXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWRSZWFzb24oKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNTdGF0dXNFcnJvcikge1xuICAgICAgcmV0dXJuIHRoaXMuc3RhdHVzRXJyb3JNZXNzYWdlIHx8ICdFcnJvciBhbCB2ZXJpZmljYXIgZWwgZXN0YWRvJztcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzSm9pbmFibGUgJiYgIXRoaXMuaXNXYWl0aW5nUm9vbUF2YWlsYWJsZSkge1xuICAgICAgcmV0dXJuICdMYSBzYWxhIGRlIGVzcGVyYSBubyBlc3TDoSBkaXNwb25pYmxlJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxuICAgIHByaXZhdGUgdGFzU2VydmljZTogVGFzU2VydmljZSxcbiAgICBwcml2YXRlIHRhc1V0aWxpdHlTZXJ2aWNlOiBUYXNVdGlsaXR5U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gU3Vic2NyaWJlIHRvIHZpZXdNb2RlIHRvIGhhbmRsZSBQaVAgcmV0dXJuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudGFzU2VydmljZS52aWV3TW9kZSQuc3Vic2NyaWJlKChtb2RlKSA9PiB7XG4gICAgICAgIC8vIFdoZW4gZW50ZXJpbmcgUGlQLCBjbGVhciB0aGUgdmlkZW9DYWxsTW9kYWxSZWYgc2luY2UgbW9kYWwgd2lsbCBjbG9zZVxuICAgICAgICBpZiAobW9kZSA9PT0gVmlld01vZGUuUElQKSB7XG4gICAgICAgICAgdGhpcy52aWRlb0NhbGxNb2RhbFJlZiA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIFN0YXJ0IHN0YXR1cyBjaGVja2luZ1xuICAgIHRoaXMuc3RhcnRTdGF0dXNQb2xsaW5nKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN0b3BTdGF0dXNQb2xsaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgcG9sbGluZyBzdGF0dXMgZXZlcnkgMzAgc2Vjb25kc1xuICAgKi9cbiAgcHJpdmF0ZSBzdGFydFN0YXR1c1BvbGxpbmcoKTogdm9pZCB7XG4gICAgLy8gSW5pdGlhbCBzdGF0dXMgY2hlY2tcbiAgICB0aGlzLmNoZWNrU3RhdHVzKCk7XG5cbiAgICAvLyBTZXQgdXAgcGVyaW9kaWMgcG9sbGluZ1xuICAgIHRoaXMuc3RhdHVzUG9sbGluZ0ludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5jaGVja1N0YXR1cygpO1xuICAgIH0sIHRoaXMuU1RBVFVTX1BPTExfSU5URVJWQUxfTVMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3Agc3RhdHVzIHBvbGxpbmdcbiAgICovXG4gIHByaXZhdGUgc3RvcFN0YXR1c1BvbGxpbmcoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdHVzUG9sbGluZ0ludGVydmFsKSB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMuc3RhdHVzUG9sbGluZ0ludGVydmFsKTtcbiAgICAgIHRoaXMuc3RhdHVzUG9sbGluZ0ludGVydmFsID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgc3RhdHVzIGVuZHBvaW50IHRvIGRldGVybWluZSBpZiBidXR0b24gc2hvdWxkIGJlIGVuYWJsZWRcbiAgICovXG4gIHByaXZhdGUgY2hlY2tTdGF0dXMoKTogdm9pZCB7XG4gICAgLy8gU2tpcCBpZiByZXF1aXJlZCBpbnB1dHMgYXJlIG5vdCBhdmFpbGFibGVcbiAgICBpZiAoIXRoaXMudGVuYW50IHx8ICF0aGlzLmVudGl0eUlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0NoZWNraW5nU3RhdHVzID0gdHJ1ZTtcbiAgICB0aGlzLnN0YXR1c0Vycm9yTWVzc2FnZSA9ICcnO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudGFzU2VydmljZVxuICAgICAgICAuZ2V0UHJveHlWaWRlb1N0YXR1cyh7XG4gICAgICAgICAgcm9vbVR5cGU6IHRoaXMucm9vbVR5cGUsXG4gICAgICAgICAgZW50aXR5SWQ6IHRoaXMuZW50aXR5SWQsXG4gICAgICAgICAgdGVuYW50OiB0aGlzLnRlbmFudCxcbiAgICAgICAgICBidXNpbmVzc1JvbGU6IHRoaXMuYnVzaW5lc3NSb2xlLFxuICAgICAgICB9KVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIC8vIFZhbGlkYXRlIHJlc3BvbnNlIHN0cnVjdHVyZVxuICAgICAgICAgICAgaWYgKCFyZXNwb25zZSB8fCAhcmVzcG9uc2UuY29udGVudCkge1xuICAgICAgICAgICAgICB0aGlzLmhhbmRsZVN0YXR1c0Vycm9yKCdJbnZhbGlkIHJlc3BvbnNlJyk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5pc0NoZWNraW5nU3RhdHVzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmlzU3RhdHVzRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzRXJyb3JNZXNzYWdlID0gJyc7XG4gICAgICAgICAgICB0aGlzLnNob3VsZFNob3dCdXR0b24gPSB0cnVlO1xuXG4gICAgICAgICAgICAvLyBUcmFjayBzdGF0dXMgZmllbGRzIGZvciBidXR0b24gc3RhdGVcbiAgICAgICAgICAgIHRoaXMuaXNKb2luYWJsZSA9IHJlc3BvbnNlLmNvbnRlbnQ/LmpvaW5hYmxlID8/IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5pc1dhaXRpbmdSb29tQXZhaWxhYmxlID0gcmVzcG9uc2UuY29udGVudD8ud2FpdGluZ1Jvb21BdmFpbGFibGUgPz8gZmFsc2U7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xuXG4gICAgICAgICAgICB0aGlzLmhhbmRsZVN0YXR1c0Vycm9yKGVycik7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVTdGF0dXNFcnJvcihlcnI6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuaXNDaGVja2luZ1N0YXR1cyA9IGZhbHNlO1xuICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IHRoaXMudGFzVXRpbGl0eVNlcnZpY2UuZXh0cmFjdEVycm9yTWVzc2FnZShlcnIsICdFcnJvciBjaGVja2luZyBzdGF0dXMnKTtcbiAgICB0aGlzLnN0YXR1c0Vycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZTtcblxuICAgIC8vIE9uIGFueSBzdGF0dXMgZXJyb3IsIGhpZGUgdGhlIGJ1dHRvblxuICAgIHRoaXMuc2hvdWxkU2hvd0J1dHRvbiA9IGZhbHNlO1xuICAgIHRoaXMuaXNTdGF0dXNFcnJvciA9IGZhbHNlOyAvLyBXZSBkb24ndCBzaG93IGVycm9yIFVJLCBqdXN0IGhpZGUgdGhlIGJ1dHRvblxuXG4gICAgLy8gU3RvcCBwb2xsaW5nIG9uIGVycm9yXG4gICAgdGhpcy5zdG9wU3RhdHVzUG9sbGluZygpO1xuICB9XG5cblxuICBvbkNsaWNrKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50ZW5hbnQgfHwgIXRoaXMuY3VycmVudFVzZXI/Lm5hbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZW50aXR5SWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jdXJyZW50TW9kYWxSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5XYWl0aW5nUm9vbU1vZGFsKCk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5XYWl0aW5nUm9vbU1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudE1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihUYXNXYWl0aW5nUm9vbUNvbXBvbmVudCwge1xuICAgICAgc2l6ZTogJ2xnJyxcbiAgICAgIHdpbmRvd0NsYXNzOiAndGFzLXdhaXRpbmctcm9vbS1tb2RhbCcsXG4gICAgICBiYWNrZHJvcDogJ3N0YXRpYycsXG4gICAgICBrZXlib2FyZDogZmFsc2UsXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIFBhc3MgYWxsIG5lY2Vzc2FyeSBpbnB1dHMgdG8gdGhlIHdhaXRpbmcgcm9vbSBjb21wb25lbnRcbiAgICB0aGlzLmN1cnJlbnRNb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5yb29tVHlwZSA9IHRoaXMucm9vbVR5cGU7XG4gICAgdGhpcy5jdXJyZW50TW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuZW50aXR5SWQgPSB0aGlzLmVudGl0eUlkO1xuICAgIHRoaXMuY3VycmVudE1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnRlbmFudCA9IHRoaXMudGVuYW50O1xuICAgIHRoaXMuY3VycmVudE1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmJ1c2luZXNzUm9sZSA9IHRoaXMuYnVzaW5lc3NSb2xlO1xuICAgIHRoaXMuY3VycmVudE1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmN1cnJlbnRVc2VyID0gdGhpcy5jdXJyZW50VXNlcjtcblxuICAgIHRoaXMuY3VycmVudE1vZGFsUmVmLnJlc3VsdC50aGVuKFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRNb2RhbFJlZiA9IG51bGw7XG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRNb2RhbFJlZiA9IG51bGw7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblZpZGVvQ2FsbE1vZGFsKGlzUmV0dXJuaW5nRnJvbVBpcDogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy52aWRlb0NhbGxNb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oVGFzVmlkZW9jYWxsQ29tcG9uZW50LCB7XG4gICAgICBzaXplOiAneGwnLFxuICAgICAgd2luZG93Q2xhc3M6ICd0YXMtdmlkZW8tbW9kYWwnLFxuICAgICAgYmFja2Ryb3A6ICdzdGF0aWMnLFxuICAgICAga2V5Ym9hcmQ6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgdGhpcy52aWRlb0NhbGxNb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5zZXNzaW9uSWQgPSB0aGlzLnRhc1NlcnZpY2Uuc2Vzc2lvbklkO1xuICAgIHRoaXMudmlkZW9DYWxsTW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UudG9rZW4gPSB0aGlzLnRhc1NlcnZpY2UudG9rZW47XG4gICAgdGhpcy52aWRlb0NhbGxNb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5idXNpbmVzc1JvbGUgPSB0aGlzLmJ1c2luZXNzUm9sZTtcbiAgICB0aGlzLnZpZGVvQ2FsbE1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmlzUmV0dXJuaW5nRnJvbVBpcCA9IGlzUmV0dXJuaW5nRnJvbVBpcDtcblxuICAgIHRoaXMudmlkZW9DYWxsTW9kYWxSZWYucmVzdWx0LnRoZW4oXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMudmlkZW9DYWxsTW9kYWxSZWYgPSBudWxsO1xuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy52aWRlb0NhbGxNb2RhbFJlZiA9IG51bGw7XG4gICAgICB9XG4gICAgKTtcbiAgfVxufVxuIiwiPHNwYW5cbiAgKm5nSWY9XCJzaG91bGRTaG93QnV0dG9uXCJcbiAgW25nYlRvb2x0aXBdPVwiaXNEaXNhYmxlZCAmJiBkaXNhYmxlZFJlYXNvbiA/IGRpc2FibGVkUmVhc29uIDogbnVsbFwiXG4gIGNvbnRhaW5lcj1cImJvZHlcIlxuICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICB0b29sdGlwQ2xhc3M9XCJ0YXMtYnRuLXRvb2x0aXBcIlxuPlxuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdGFzLWJ0blwiXG4gICAgW2NsYXNzLnRhcy1idG4tLXRlYWxdPVwidmFyaWFudCA9PT0gJ3RlYWwnXCJcbiAgICAoY2xpY2spPVwib25DbGljaygpXCJcbiAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gID5cbiAgICA8aSBjbGFzcz1cImZhIGZhLXZpZGVvLWNhbWVyYVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiICpuZ0lmPVwiIWlzTG9hZGluZ1wiPjwvaT5cbiAgICA8c3BhbiAqbmdJZj1cIiFpc0xvYWRpbmdcIj57eyBidXR0b25MYWJlbCB9fTwvc3Bhbj5cbiAgICA8c3BhbiAqbmdJZj1cImlzTG9hZGluZ1wiPlByb2Nlc3NpbmcuLi48L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9zcGFuPlxuIl19
@@ -37,6 +37,7 @@ export class TasVideocallComponent {
37
37
  this.waitingRoomUsers = [];
38
38
  this.ownerHasJoined = false;
39
39
  this.hasVideoStream = false;
40
+ this.hasSubscriberConnected = false; // Tracks if another user's video stream has actually connected
40
41
  this.dismissedUsers = [];
41
42
  this.showLocationPanel = true; // Show by default for owners, will be updated based on user's location status
42
43
  this.userHasLocation = false; // Tracks if the user has shared their location
@@ -51,16 +52,14 @@ export class TasVideocallComponent {
51
52
  this.devModeEnabled = false; // Enable dev controls for testing
52
53
  this.geoPanelDismissed = false; // Track if owner manually closed the panel
53
54
  this.feedbackShown = false; // Track if feedback modal has been shown
55
+ this.previousAllGeoGranted = null; // Track previous value to detect changes
54
56
  this.subscriptions = new Subscription();
55
57
  this.homeIcon = this.sanitizer.bypassSecurityTrustHtml(TAS_ICONS.home);
56
58
  }
57
59
  ngOnInit() {
58
60
  this.setupSubscriptions();
59
61
  this.initializeCall();
60
- // For owners: show the geo panel to request user location (unless dismissed)
61
- if (this.canAdmitUsers && !this.geoPanelDismissed) {
62
- this.userGeoViewState = UserGeoViewState.INITIAL;
63
- }
62
+ // Panel will be shown when user joins (via userGeoInfo$ subscription)
64
63
  }
65
64
  ngAfterViewInit() {
66
65
  this.initInteract();
@@ -158,9 +157,19 @@ export class TasVideocallComponent {
158
157
  get hasAnyDenied() {
159
158
  return this.deniedUsers.length > 0;
160
159
  }
161
- /** Show user geo panel for owners when not hidden */
160
+ /** Show user geo panel for owners when:
161
+ * - User can admit (is owner/backoffice)
162
+ * - Panel was not manually dismissed by owner
163
+ * - Panel is not in hidden state
164
+ * - Another user has actually connected their video stream
165
+ * - Not all geo is granted
166
+ */
162
167
  get shouldShowUserGeoPanel() {
163
- return this.canAdmitUsers && this.userGeoViewState !== UserGeoViewState.HIDDEN;
168
+ return (this.canAdmitUsers &&
169
+ !this.geoPanelDismissed &&
170
+ this.userGeoViewState !== UserGeoViewState.HIDDEN &&
171
+ this.hasSubscriberConnected &&
172
+ !this.allGeoGranted);
164
173
  }
165
174
  /** Set user geo view state (for dev controls or close button) */
166
175
  setUserGeoViewState(state) {
@@ -278,17 +287,34 @@ export class TasVideocallComponent {
278
287
  }));
279
288
  // AllGeoGranted subscription - for owners to update panel state
280
289
  this.subscriptions.add(this.tasService.allGeoGranted$.subscribe((granted) => {
290
+ const previousValue = this.allGeoGranted;
281
291
  this.allGeoGranted = granted;
282
- // For owners: update panel state based on geo status
292
+ // For owners: hide the panel when all geo is granted (including on meeting start)
283
293
  if (this.canAdmitUsers && granted) {
284
- this.userGeoViewState = UserGeoViewState.VERIFIED;
294
+ this.userGeoViewState = UserGeoViewState.HIDDEN;
285
295
  }
296
+ // If geo status changed from granted to not-granted, reset the dismissed flag
297
+ // so the panel can show again
298
+ if (this.previousAllGeoGranted === true && !granted) {
299
+ this.geoPanelDismissed = false;
300
+ }
301
+ this.previousAllGeoGranted = granted;
286
302
  }));
287
303
  // UserGeoInfo subscription - for owner geo panel
288
304
  this.subscriptions.add(this.tasService.userGeoInfo$.subscribe((info) => {
289
305
  this.userGeoInfo = info;
290
- // Note: We don't auto-switch to DENIED here - that only happens
291
- // after owner requests and user denies (via geoRequestActive flow)
306
+ // Check if we have actual video subscribers connected
307
+ // This happens when another user's video stream joins (via OpenTok)
308
+ const hasSubscribers = this.tasService.currentSubscribers.length > 0;
309
+ if (hasSubscribers && !this.hasSubscriberConnected) {
310
+ // First time a subscriber connected
311
+ this.hasSubscriberConnected = true;
312
+ // Show panel only when subscriber first connects, geo not granted, and not dismissed
313
+ if (this.canAdmitUsers && !this.allGeoGranted && !this.geoPanelDismissed) {
314
+ this.userGeoViewState = UserGeoViewState.INITIAL;
315
+ }
316
+ }
317
+ // Panel visibility is controlled by the shouldShowUserGeoPanel getter
292
318
  }));
293
319
  }
294
320
  /**
@@ -479,4 +505,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
479
505
  type: ViewChild,
480
506
  args: ['subscriberContainer']
481
507
  }] } });
482
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzLXZpZGVvY2FsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YXMtdWVsbC1zZGsvc3JjL2xpYi9jb21wb25lbnRzL3Rhcy12aWRlb2NhbGwvdGFzLXZpZGVvY2FsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YXMtdWVsbC1zZGsvc3JjL2xpYi9jb21wb25lbnRzL3Rhcy12aWRlb2NhbGwvdGFzLXZpZGVvY2FsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULEtBQUssRUFDTCxTQUFTLEdBR1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFHL0YsT0FBTyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsZUFBZSxFQUdmLGNBQWMsRUFHZCxTQUFTLEdBQ1YsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVVwQyxPQUFPLFFBQVEsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7O0FBUmxDLHlDQUF5QztBQUN6QyxNQUFNLENBQU4sSUFBWSxnQkFNWDtBQU5ELFdBQVksZ0JBQWdCO0lBQzFCLHFDQUFpQixDQUFBO0lBQ2pCLHVDQUFtQixDQUFBO0lBQ25CLDJDQUF1QixDQUFBO0lBQ3ZCLHlDQUFxQixDQUFBO0lBQ3JCLHFDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFOVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBTTNCO0FBUUQsTUFBTSxPQUFPLHFCQUFxQjtJQXdDaEMsWUFDUyxXQUEyQixFQUMxQixVQUFzQixFQUN0QixrQkFBc0MsRUFDdEMsU0FBdUIsRUFDdkIsWUFBc0I7UUFKdkIs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Z0JBQ3JFLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDO2FBQ3REO1lBQ0QsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7SUFDUCxDQUFDOzttSEF4aUJVLHFCQUFxQjt1R0FBckIscUJBQXFCLDRoQkMzQ2xDLDY2TUF1S0E7NEZENUhhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxlQUFlO2lOQUtoQixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUUyQixrQkFBa0I7c0JBQWxELFNBQVM7dUJBQUMsb0JBQW9CO2dCQUNHLG1CQUFtQjtzQkFBcEQsU0FBUzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBJbnB1dCxcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBBZnRlclZpZXdJbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsLCBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IFRhc0ZlZWRiYWNrTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi90YXMtZmVlZGJhY2stbW9kYWwvdGFzLWZlZWRiYWNrLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFzLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VvbG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ2VvbG9jYXRpb24uc2VydmljZSc7XG5pbXBvcnQge1xuICBDYWxsU3RhdGUsXG4gIFZpZXdNb2RlLFxuICBUYXNCdXNpbmVzc1JvbGUsXG4gIFdhaXRpbmdSb29tVXNlcixcbiAgUm9vbVVzZXJTdGF0dXMsXG4gIFVzZXJDYWxsQWN0aW9uLFxuICBQcm94eVZpZGVvVXNlck1vZGlmeVJlcXVlc3QsXG4gIFVzZXJHZW9JbmZvLFxuICBHZW9TdGF0dXMsXG59IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGFzLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgVEFTX0lDT05TIH0gZnJvbSAnLi4vLi4vaWNvbnMvdGFzLWljb25zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG4vKiogVXNlciBnZW9sb2NhdGlvbiBwYW5lbCB2aWV3IHN0YXRlcyAqL1xuZXhwb3J0IGVudW0gVXNlckdlb1ZpZXdTdGF0ZSB7XG4gIEhJRERFTiA9ICdISURERU4nLFxuICBJTklUSUFMID0gJ0lOSVRJQUwnLFxuICBWRVJJRllJTkcgPSAnVkVSSUZZSU5HJyxcbiAgVkVSSUZJRUQgPSAnVkVSSUZJRUQnLFxuICBERU5JRUQgPSAnREVOSUVEJyxcbn1cbmltcG9ydCBpbnRlcmFjdCBmcm9tICdpbnRlcmFjdGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFzLXZpZGVvY2FsbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YXMtdmlkZW9jYWxsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFzLXZpZGVvY2FsbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUYXNWaWRlb2NhbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHNlc3Npb25JZCE6IHN0cmluZztcbiAgQElucHV0KCkgdG9rZW4hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFwcG9pbnRtZW50SWQ/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHZpZGVvQ2FsbElkPzogbnVtYmVyO1xuICBASW5wdXQoKSB1c2VySWQ/OiBudW1iZXI7IC8vIEN1cnJlbnQgdXNlcidzIElEIGZvciBnZW8gcmVwb3J0aW5nXG4gIEBJbnB1dCgpIHBhcnRpY2lwYW50TmFtZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHRlbmFudDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGJ1c2luZXNzUm9sZTogVGFzQnVzaW5lc3NSb2xlID0gVGFzQnVzaW5lc3NSb2xlLlVTRVI7XG4gIEBJbnB1dCgpIGlzUmV0dXJuaW5nRnJvbVBpcDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ3B1Ymxpc2hlckNvbnRhaW5lcicpIHB1Ymxpc2hlckNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3N1YnNjcmliZXJDb250YWluZXInKSBzdWJzY3JpYmVyQ29udGFpbmVyITogRWxlbWVudFJlZjtcblxuICBwdWJsaWMgaXNQdWJsaXNoZXJTbWFsbCA9IHRydWU7XG4gIHB1YmxpYyBjYWxsU3RhdGUgPSBDYWxsU3RhdGUuSURMRTtcbiAgcHVibGljIGlzTXV0ZWQgPSBmYWxzZTtcbiAgcHVibGljIHdhaXRpbmdSb29tVXNlcnM6IFdhaXRpbmdSb29tVXNlcltdID0gW107XG4gIHB1YmxpYyBvd25lckhhc0pvaW5lZCA9IGZhbHNlO1xuICBwdWJsaWMgaGFzVmlkZW9TdHJlYW0gPSBmYWxzZTtcbiAgcHVibGljIGRpc21pc3NlZFVzZXJzOiBudW1iZXJbXSA9IFtdO1xuICBwdWJsaWMgc2hvd0xvY2F0aW9uUGFuZWwgPSB0cnVlOyAvLyBTaG93IGJ5IGRlZmF1bHQgZm9yIG93bmVycywgd2lsbCBiZSB1cGRhdGVkIGJhc2VkIG9uIHVzZXIncyBsb2NhdGlvbiBzdGF0dXNcbiAgcHVibGljIHVzZXJIYXNMb2NhdGlvbiA9IGZhbHNlOyAvLyBUcmFja3MgaWYgdGhlIHVzZXIgaGFzIHNoYXJlZCB0aGVpciBsb2NhdGlvblxuICBwdWJsaWMgZ2VvTG9jYXRpb25TdGF0dXM6ICd1bmtub3duJyB8ICdhY3RpdmUnIHwgJ2RlbmllZCcgPSAndW5rbm93bic7XG4gIFxuICAvLyBHZW8gcGFuZWwgc3RhdGVzIGZvciBvd25lclxuICBwdWJsaWMgZ2VvUmVxdWVzdEFjdGl2ZSA9IGZhbHNlOyAvLyBPd25lciBzZW50IHJlcXVlc3QsIHdhaXRpbmcgZm9yIHVzZXJcbiAgcHVibGljIGFsbEdlb0dyYW50ZWQgPSBmYWxzZTsgLy8gQWxsIHVzZXJzIHJlc3BvbmRlZCB3aXRoIGdlb1xuICBwdWJsaWMgdXNlckdlb0luZm86IFVzZXJHZW9JbmZvW10gPSBbXTsgLy8gSW5kaXZpZHVhbCB1c2VyIGdlbyBzdGF0dXNcblxuICAvLyBVc2VyIGdlbyBwYW5lbCBzdGF0ZSAoZm9yIG93bmVycylcbiAgcHVibGljIHVzZXJHZW9WaWV3U3RhdGU6IFVzZXJHZW9WaWV3U3RhdGUgPSBVc2VyR2VvVmlld1N0YXRlLkhJRERFTjtcbiAgcHVibGljIFVzZXJHZW9WaWV3U3RhdGUgPSBVc2VyR2VvVmlld1N0YXRlOyAvLyBFeHBvc2UgZW51bSB0byB0ZW1wbGF0ZVxuICBwdWJsaWMgaG9tZUljb246IFNhZmVIdG1sO1xuICBwdWJsaWMgZGV2TW9kZUVuYWJsZWQgPSBmYWxzZTsgLy8gRW5hYmxlIGRldiBjb250cm9scyBmb3IgdGVzdGluZ1xuICBwcml2YXRlIGdlb1BhbmVsRGlzbWlzc2VkID0gZmFsc2U7IC8vIFRyYWNrIGlmIG93bmVyIG1hbnVhbGx5IGNsb3NlZCB0aGUgcGFuZWxcbiAgcHJpdmF0ZSBmZWVkYmFja1Nob3duID0gZmFsc2U7IC8vIFRyYWNrIGlmIGZlZWRiYWNrIG1vZGFsIGhhcyBiZWVuIHNob3duXG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsXG4gICAgcHJpdmF0ZSB0YXNTZXJ2aWNlOiBUYXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ2VvbG9jYXRpb25TZXJ2aWNlOiBHZW9sb2NhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWxcbiAgKSB7XG4gICAgdGhpcy5ob21lSWNvbiA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKFRBU19JQ09OUy5ob21lKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dXBTdWJzY3JpcHRpb25zKCk7XG4gICAgdGhpcy5pbml0aWFsaXplQ2FsbCgpO1xuICAgIFxuICAgIC8vIEZvciBvd25lcnM6IHNob3cgdGhlIGdlbyBwYW5lbCB0byByZXF1ZXN0IHVzZXIgbG9jYXRpb24gKHVubGVzcyBkaXNtaXNzZWQpXG4gICAgaWYgKHRoaXMuY2FuQWRtaXRVc2VycyAmJiAhdGhpcy5nZW9QYW5lbERpc21pc3NlZCkge1xuICAgICAgdGhpcy51c2VyR2VvVmlld1N0YXRlID0gVXNlckdlb1ZpZXdTdGF0ZS5JTklUSUFMO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRJbnRlcmFjdCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy50YXNTZXJ2aWNlLnJlc2V0UG9sbGluZ1N0YXRlKCk7XG5cbiAgICAvLyBPbmx5IGRpc2Nvbm5lY3QgaWYgbm90IGluIFBpUCBtb2RlIChrZWVwIHNlc3Npb24gYWxpdmUgZm9yIGZsb2F0aW5nIHdpbmRvdylcbiAgICBpZiAoIXRoaXMudGFzU2VydmljZS5pc1BpcE1vZGUoKSkge1xuICAgICAgdGhpcy50YXNTZXJ2aWNlLmRpc2Nvbm5lY3RTZXNzaW9uKCk7XG4gICAgfVxuXG4gICAgaW50ZXJhY3QoJy5wdWJsaXNoZXItdmlldycpLnVuc2V0KCk7XG4gIH1cblxuICAvLyBQdWJsaWMgTWV0aG9kc1xuICBoYW5nVXAoKTogdm9pZCB7XG4gICAgdGhpcy50YXNTZXJ2aWNlLmRpc2Nvbm5lY3RTZXNzaW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbiBmZWVkYmFjayBtb2RhbCB3aGVuIGNhbGwgZW5kc1xuICAgKi9cbiAgcHJpdmF0ZSBvcGVuRmVlZGJhY2tNb2RhbCgpOiB2b2lkIHtcbiAgICAvLyBQcmV2ZW50IG9wZW5pbmcgZmVlZGJhY2sgbW9kYWwgbXVsdGlwbGUgdGltZXNcbiAgICBpZiAodGhpcy5mZWVkYmFja1Nob3duKSB7XG4gICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdoYW5ndXAnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBHZXQgdmlkZW9DYWxsSWQgZnJvbSBpbnB1dCBvciBzZXJ2aWNlXG4gICAgY29uc3QgdmlkZW9DYWxsSWQgPSB0aGlzLnZpZGVvQ2FsbElkID8/IHRoaXMudGFzU2VydmljZS52aWRlb0NhbGxJZDtcblxuICAgIC8vIElmIG5vIHZpZGVvQ2FsbElkLCBza2lwIGZlZWRiYWNrIGFuZCBjbG9zZSBkaXJlY3RseVxuICAgIGlmICghdmlkZW9DYWxsSWQpIHtcbiAgICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoJ2hhbmd1cCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmVlZGJhY2tTaG93biA9IHRydWU7XG5cbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oVGFzRmVlZGJhY2tNb2RhbENvbXBvbmVudCwge1xuICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICBiYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGtleWJvYXJkOiB0cnVlLFxuICAgICAgd2luZG93Q2xhc3M6ICd0YXMtZmVlZGJhY2stbW9kYWwtd3JhcHBlcicsXG4gICAgfSk7XG5cbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS52aWRlb0NhbGxJZCA9IHZpZGVvQ2FsbElkO1xuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnRlbmFudCA9IHRoaXMudGVuYW50O1xuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmJ1c2luZXNzUm9sZSA9IHRoaXMuYnVzaW5lc3NSb2xlO1xuXG4gICAgLy8gQ2xvc2UgdmlkZW9jYWxsIG1vZGFsIGFmdGVyIGZlZWRiYWNrIG1vZGFsIGlzIGNsb3NlZC9kaXNtaXNzZWRcbiAgICBtb2RhbFJlZi5yZXN1bHQuZmluYWxseSgoKSA9PiB7XG4gICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdoYW5ndXAnKTtcbiAgICB9KTtcbiAgfVxuXG4gIHRvZ2dsZU11dGUoKTogdm9pZCB7XG4gICAgdGhpcy50YXNTZXJ2aWNlLnRvZ2dsZU11dGUoKTtcbiAgfVxuXG4gIG1pbmltaXplKCk6IHZvaWQge1xuICAgIHRoaXMudGFzU2VydmljZS5tb3ZlTWFpblZpZGVvVG8oJ3BpcC1tYWluLXZpZGVvJyk7XG4gICAgLy8gU21hbGwgZGVsYXkgdG8gZW5zdXJlIHZpZGVvIGlzIG1vdmVkIGJlZm9yZSBjbG9zaW5nIG1vZGFsXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnRhc1NlcnZpY2UuZW50ZXJQaXBNb2RlKCksIDUwKTtcbiAgfVxuXG4gIHRvZ2dsZVN3YXAoKTogdm9pZCB7XG4gICAgdGhpcy5pc1B1Ymxpc2hlclNtYWxsID0gIXRoaXMuaXNQdWJsaXNoZXJTbWFsbDtcbiAgICB0aGlzLnJlc2V0VmlkZW9Qb3NpdGlvbnMoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaW5pdEludGVyYWN0KCkpO1xuICB9XG5cbiAgb25Eb3VibGVDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZVN3YXAoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBjdXJyZW50IHVzZXIgY2FuIGFkbWl0IG90aGVycyAoT1dORVIsIEJBQ0tPRkZJQ0UsIG9yIE1PREVSQVRPUilcbiAgICovXG4gIGdldCBjYW5BZG1pdFVzZXJzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmJ1c2luZXNzUm9sZSA9PT0gVGFzQnVzaW5lc3NSb2xlLkJBQ0tPRkZJQ0UgfHxcbiAgICAgIHRoaXMuYnVzaW5lc3NSb2xlID09PSBUYXNCdXNpbmVzc1JvbGUuQURNSU5fTUFOQUdFUiB8fFxuICAgICAgdGhpcy5idXNpbmVzc1JvbGUgPT09IFRhc0J1c2luZXNzUm9sZS5NQU5BR0VSXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBVc2VycyB3aXRoIHBlbmRpbmcgZ2VvIHN0YXR1cyAqL1xuICBnZXQgcGVuZGluZ1VzZXJzKCk6IFVzZXJHZW9JbmZvW10ge1xuICAgIHJldHVybiB0aGlzLnVzZXJHZW9JbmZvLmZpbHRlcih1ID0+IHUuZ2VvU3RhdHVzID09PSBHZW9TdGF0dXMuUEVORElORyk7XG4gIH1cblxuICAvKiogVXNlcnMgd2hvIGdyYW50ZWQgZ2VvICovXG4gIGdldCBncmFudGVkVXNlcnMoKTogVXNlckdlb0luZm9bXSB7XG4gICAgcmV0dXJuIHRoaXMudXNlckdlb0luZm8uZmlsdGVyKHUgPT4gdS5nZW9TdGF0dXMgPT09IEdlb1N0YXR1cy5HUkFOVEVEKTtcbiAgfVxuXG4gIC8qKiBVc2VycyB3aG8gZGVuaWVkIGdlbyAqL1xuICBnZXQgZGVuaWVkVXNlcnMoKTogVXNlckdlb0luZm9bXSB7XG4gICAgcmV0dXJuIHRoaXMudXNlckdlb0luZm8uZmlsdGVyKHUgPT4gdS5nZW9TdGF0dXMgPT09IEdlb1N0YXR1cy5ERU5JRUQpO1xuICB9XG5cbiAgLyoqIFNob3cgbG9jYXRpb24gcGFuZWwgb25seSBpZiBvd25lciBhbmQgdGhlcmUgYXJlIHVzZXJzIHdobyBoYXZlbid0IGdyYW50ZWQgKi9cbiAgZ2V0IHNob3VsZFNob3dMb2NhdGlvblBhbmVsKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5jYW5BZG1pdFVzZXJzIHx8IHRoaXMudXNlckdlb0luZm8ubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIEhpZGUgaWYgYWxsIHVzZXJzIGhhdmUgZ3JhbnRlZFxuICAgIGNvbnN0IGFsbEdyYW50ZWQgPSB0aGlzLnVzZXJHZW9JbmZvLmV2ZXJ5KHUgPT4gdS5nZW9TdGF0dXMgPT09IEdlb1N0YXR1cy5HUkFOVEVEKTtcbiAgICByZXR1cm4gIWFsbEdyYW50ZWQ7XG4gIH1cblxuICAvKiogQ2hlY2sgaWYgYW55IHVzZXIgaGFzIGRlbmllZCBnZW8gKi9cbiAgZ2V0IGhhc0FueURlbmllZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kZW5pZWRVc2Vycy5sZW5ndGggPiAwO1xuICB9XG5cbiAgLyoqIFNob3cgdXNlciBnZW8gcGFuZWwgZm9yIG93bmVycyB3aGVuIG5vdCBoaWRkZW4gKi9cbiAgZ2V0IHNob3VsZFNob3dVc2VyR2VvUGFuZWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2FuQWRtaXRVc2VycyAmJiB0aGlzLnVzZXJHZW9WaWV3U3RhdGUgIT09IFVzZXJHZW9WaWV3U3RhdGUuSElEREVOO1xuICB9XG5cbiAgLyoqIFNldCB1c2VyIGdlbyB2aWV3IHN0YXRlIChmb3IgZGV2IGNvbnRyb2xzIG9yIGNsb3NlIGJ1dHRvbikgKi9cbiAgc2V0VXNlckdlb1ZpZXdTdGF0ZShzdGF0ZTogVXNlckdlb1ZpZXdTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMudXNlckdlb1ZpZXdTdGF0ZSA9IHN0YXRlO1xuICAgIC8vIFRyYWNrIGlmIG93bmVyIG1hbnVhbGx5IGRpc21pc3NlZCB0aGUgcGFuZWxcbiAgICBpZiAoc3RhdGUgPT09IFVzZXJHZW9WaWV3U3RhdGUuSElEREVOKSB7XG4gICAgICB0aGlzLmdlb1BhbmVsRGlzbWlzc2VkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRtaXQgYSB1c2VyIGZyb20gdGhlIHdhaXRpbmcgcm9vbVxuICAgKi9cbiAgYWRtaXRVc2VyKHVzZXJJZDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnZpZGVvQ2FsbElkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYW5ub3QgYWRtaXQgdXNlcjogdmlkZW9DYWxsSWQgbm90IHNldCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudGFzU2VydmljZVxuICAgICAgLm1vZGlmeVByb3h5VmlkZW9Vc2VyKHtcbiAgICAgICAgdXNlcklkLFxuICAgICAgICB2aWRlb0NhbGxJZDogdGhpcy52aWRlb0NhbGxJZCxcbiAgICAgICAgYWN0aW9uOiBVc2VyQ2FsbEFjdGlvbi5XQUlUSU5HX1JPT01fTEVBVkUsXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAvLyBSZW1vdmUgdXNlciBmcm9tIHdhaXRpbmcgbGlzdCBhZnRlciBzdWNjZXNzZnVsIGFkbWl0XG4gICAgICAgICAgdGhpcy53YWl0aW5nUm9vbVVzZXJzID0gdGhpcy53YWl0aW5nUm9vbVVzZXJzLmZpbHRlcihcbiAgICAgICAgICAgICh1KSA9PiB1LnVzZXJJZCAhPT0gdXNlcklkXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBhZG1pdHRpbmcgdXNlcjonLCBlcnIpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGlzbWlzcyB0aGUgd2FpdGluZyByb29tIG5vdGlmaWNhdGlvbiBmb3IgYSB1c2VyXG4gICAqL1xuICBkaXNtaXNzV2FpdGluZ05vdGlmaWNhdGlvbih1c2VySWQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuZGlzbWlzc2VkVXNlcnMucHVzaCh1c2VySWQpO1xuICAgIHRoaXMud2FpdGluZ1Jvb21Vc2VycyA9IHRoaXMud2FpdGluZ1Jvb21Vc2Vycy5maWx0ZXIoXG4gICAgICAodSkgPT4gdS51c2VySWQgIT09IHVzZXJJZFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgdGhlIGxvY2F0aW9uIHBhbmVsXG4gICAqL1xuICBjbG9zZUxvY2F0aW9uUGFuZWwoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93TG9jYXRpb25QYW5lbCA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcXVlc3QgdGhlIHVzZXIgdG8gc2hhcmUgdGhlaXIgbG9jYXRpb24gKGNhbGxlZCBieSBvd25lcilcbiAgICovXG4gIHJlcXVlc3RVc2VyTG9jYXRpb24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnZpZGVvQ2FsbElkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYW5ub3QgcmVxdWVzdCBsb2NhdGlvbjogdmlkZW9DYWxsSWQgbm90IHNldCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBib2R5OiBQcm94eVZpZGVvVXNlck1vZGlmeVJlcXVlc3QgPSB7XG4gICAgICB2aWRlb0NhbGxJZDogdGhpcy52aWRlb0NhbGxJZCxcbiAgICAgIGFjdGlvbjogVXNlckNhbGxBY3Rpb24uUkVRVUVTVF9HRU9MT0NBTElaQVRJT04sXG4gICAgfTtcblxuICAgIHRoaXMudGFzU2VydmljZS5tb2RpZnlQcm94eVZpZGVvVXNlcihib2R5KS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnTG9jYXRpb24gcmVxdWVzdCBzZW50Jyk7XG4gICAgICAgIC8vIFNldCBwYW5lbCB0byB2ZXJpZnlpbmcgc3RhdGUgd2hpbGUgd2FpdGluZyBmb3IgdXNlciByZXNwb25zZVxuICAgICAgICB0aGlzLnVzZXJHZW9WaWV3U3RhdGUgPSBVc2VyR2VvVmlld1N0YXRlLlZFUklGWUlORztcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycikgPT4gY29uc29sZS5lcnJvcignRXJyb3IgcmVxdWVzdGluZyBsb2NhdGlvbjonLCBlcnIpLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gUHJpdmF0ZSBNZXRob2RzXG4gIHByaXZhdGUgc2V0dXBTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xuICAgIC8vIENhbGwgc3RhdGUgc3Vic2NyaXB0aW9uXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudGFzU2VydmljZS5jYWxsU3RhdGUkLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgICAgdGhpcy5jYWxsU3RhdGUgPSBzdGF0ZTtcbiAgICAgICAgaWYgKHN0YXRlID09PSBDYWxsU3RhdGUuRElTQ09OTkVDVEVEKSB7XG4gICAgICAgICAgdGhpcy5vcGVuRmVlZGJhY2tNb2RhbCgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRyYWNrIGlmIHdlIGhhdmUgYW4gYWN0aXZlIHZpZGVvIHN0cmVhbVxuICAgICAgICB0aGlzLmhhc1ZpZGVvU3RyZWFtID0gc3RhdGUgPT09IENhbGxTdGF0ZS5DT05ORUNURUQ7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICAvLyBWaWV3IG1vZGUgc3Vic2NyaXB0aW9uXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudGFzU2VydmljZS52aWV3TW9kZSQuc3Vic2NyaWJlKChtb2RlKSA9PiB7XG4gICAgICAgIGlmIChtb2RlID09PSBWaWV3TW9kZS5QSVApIHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdwaXAnKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gTXV0ZSBzdGF0ZSBzdWJzY3JpcHRpb25cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy50YXNTZXJ2aWNlLmlzTXV0ZWQkLnN1YnNjcmliZSgobXV0ZWQpID0+IHtcbiAgICAgICAgdGhpcy5pc011dGVkID0gbXV0ZWQ7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICAvLyBXYWl0aW5nIHJvb20gdXNlcnMgc3Vic2NyaXB0aW9uXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudGFzU2VydmljZS53YWl0aW5nUm9vbVVzZXJzJC5zdWJzY3JpYmUoKHVzZXJzKSA9PiB7XG4gICAgICAgIC8vIEZpbHRlciBvdXQgZGlzbWlzc2VkIHVzZXJzXG4gICAgICAgIHRoaXMud2FpdGluZ1Jvb21Vc2VycyA9IHVzZXJzLmZpbHRlcihcbiAgICAgICAgICAodSkgPT4gIXRoaXMuZGlzbWlzc2VkVXNlcnMuaW5jbHVkZXModS51c2VySWQpXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICAvLyBPd25lciBqb2luIHN0YXR1cyBzdWJzY3JpcHRpb25cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy50YXNTZXJ2aWNlLm93bmVySGFzSm9pbmVkJC5zdWJzY3JpYmUoKGpvaW5lZCkgPT4ge1xuICAgICAgICB0aGlzLm93bmVySGFzSm9pbmVkID0gam9pbmVkO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gT3duZXIgbGVmdCBzdWJzY3JpcHRpb24gLSBkaXNjb25uZWN0IG5vbi1vd25lcnNcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy50YXNTZXJ2aWNlLm93bmVySGFzTGVmdCQuc3Vic2NyaWJlKChoYXNMZWZ0KSA9PiB7XG4gICAgICAgIGlmIChoYXNMZWZ0ICYmICF0aGlzLmNhbkFkbWl0VXNlcnMpIHsgLy8gTm9uLW93bmVyIHVzZXJcbiAgICAgICAgICAvLyBoYW5nVXAoKSB0cmlnZ2VycyBESVNDT05ORUNURUQgc3RhdGUsIHdoaWNoIG9wZW5zIGZlZWRiYWNrIG1vZGFsXG4gICAgICAgICAgLy8gdGhlbiBjbG9zZXMgdmlkZW9jYWxsIG1vZGFsIGFmdGVyIGZlZWRiYWNrIGlzIGRvbmVcbiAgICAgICAgICB0aGlzLmhhbmdVcCgpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgICAvLyBBY3RpdmF0ZUdlbyBzdWJzY3JpcHRpb24gLSBvbmx5IGZvciBub24tb3duZXJzICh1c2VycylcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy50YXNTZXJ2aWNlLmFjdGl2YXRlR2VvJC5zdWJzY3JpYmUoKGFjdGl2YXRlR2VvKSA9PiB7XG4gICAgICAgIGlmIChhY3RpdmF0ZUdlbyAmJiAhdGhpcy5jYW5BZG1pdFVzZXJzKSB7XG5cbiAgICAgICAgICB0aGlzLmhhbmRsZUFjdGl2YXRlR2VvKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIEdlb1JlcXVlc3RBY3RpdmUgc3Vic2NyaXB0aW9uIC0gZm9yIG93bmVyc1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnRhc1NlcnZpY2UuZ2VvUmVxdWVzdEFjdGl2ZSQuc3Vic2NyaWJlKChhY3RpdmUpID0+IHtcblxuICAgICAgICB0aGlzLmdlb1JlcXVlc3RBY3RpdmUgPSBhY3RpdmU7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICAvLyBBbGxHZW9HcmFudGVkIHN1YnNjcmlwdGlvbiAtIGZvciBvd25lcnMgdG8gdXBkYXRlIHBhbmVsIHN0YXRlXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudGFzU2VydmljZS5hbGxHZW9HcmFudGVkJC5zdWJzY3JpYmUoKGdyYW50ZWQpID0+IHtcbiAgICAgICAgdGhpcy5hbGxHZW9HcmFudGVkID0gZ3JhbnRlZDtcbiAgICAgICAgXG4gICAgICAgIC8vIEZvciBvd25lcnM6IHVwZGF0ZSBwYW5lbCBzdGF0ZSBiYXNlZCBvbiBnZW8gc3RhdHVzXG4gICAgICAgIGlmICh0aGlzLmNhbkFkbWl0VXNlcnMgJiYgZ3JhbnRlZCkge1xuICAgICAgICAgIHRoaXMudXNlckdlb1ZpZXdTdGF0ZSA9IFVzZXJHZW9WaWV3U3RhdGUuVkVSSUZJRUQ7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIFVzZXJHZW9JbmZvIHN1YnNjcmlwdGlvbiAtIGZvciBvd25lciBnZW8gcGFuZWxcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy50YXNTZXJ2aWNlLnVzZXJHZW9JbmZvJC5zdWJzY3JpYmUoKGluZm8pID0+IHtcbiAgICAgICAgdGhpcy51c2VyR2VvSW5mbyA9IGluZm87XG4gICAgICAgIC8vIE5vdGU6IFdlIGRvbid0IGF1dG8tc3dpdGNoIHRvIERFTklFRCBoZXJlIC0gdGhhdCBvbmx5IGhhcHBlbnMgXG4gICAgICAgIC8vIGFmdGVyIG93bmVyIHJlcXVlc3RzIGFuZCB1c2VyIGRlbmllcyAodmlhIGdlb1JlcXVlc3RBY3RpdmUgZmxvdylcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgYWN0aXZhdGVHZW8gcmVxdWVzdCBmcm9tIGJhY2tlbmQgKGZvciBub24tb3duZXIgdXNlcnMpLlxuICAgKiBEaXJlY3RseSBwcm9tcHRzIGJyb3dzZXIgZm9yIGdlb2xvY2F0aW9uIC0gbm8gcGFuZWwgZm9yIHVzZXJzLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVBY3RpdmF0ZUdlbygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBDbGVhciBhbnkgY2FjaGVkIHBvc2l0aW9uIHRvIGZvcmNlIHJlLXByb21wdGluZ1xuICAgIHRoaXMuZ2VvbG9jYXRpb25TZXJ2aWNlLmNsZWFyQ2FjaGUoKTtcbiAgICBcbiAgICAvLyBSZXF1ZXN0IGdlb2xvY2F0aW9uIGZyb20gdXNlciAoYnJvd3NlciB3aWxsIHByb21wdClcbiAgICBjb25zdCBwb3NpdGlvbiA9IGF3YWl0IHRoaXMuZ2VvbG9jYXRpb25TZXJ2aWNlLmdldEN1cnJlbnRQb3NpdGlvbigpO1xuICAgIFxuICAgIGlmIChwb3NpdGlvbikge1xuICAgICAgdGhpcy5nZW9Mb2NhdGlvblN0YXR1cyA9ICdhY3RpdmUnO1xuICAgICAgdGhpcy5yZXBvcnRHZW9TdGF0dXMocG9zaXRpb24ubGF0aXR1ZGUsIHBvc2l0aW9uLmxvbmdpdHVkZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ2VvTG9jYXRpb25TdGF0dXMgPSAnZGVuaWVkJztcbiAgICAgIHRoaXMuZGVueUdlb0xvY2F0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFN0YXJ0IGdlb2xvY2F0aW9uIHZlcmlmaWNhdGlvbiAoY2FsbGVkIGZyb20gdGVtcGxhdGUgYnV0dG9uKSAqL1xuICBwdWJsaWMgYXN5bmMgc3RhcnRHZW9WZXJpZmljYXRpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy51c2VyR2VvVmlld1N0YXRlID0gVXNlckdlb1ZpZXdTdGF0ZS5WRVJJRllJTkc7XG5cbiAgICAvLyBDbGVhciBhbnkgY2FjaGVkIHBvc2l0aW9uIHRvIGZvcmNlIHJlLXByb21wdGluZ1xuICAgIHRoaXMuZ2VvbG9jYXRpb25TZXJ2aWNlLmNsZWFyQ2FjaGUoKTtcbiAgICBcbiAgICAvLyBSZXF1ZXN0IGdlb2xvY2F0aW9uIGZyb20gdXNlciAoYnJvd3NlciB3aWxsIHByb21wdClcbiAgICBjb25zdCBwb3NpdGlvbiA9IGF3YWl0IHRoaXMuZ2VvbG9jYXRpb25TZXJ2aWNlLmdldEN1cnJlbnRQb3NpdGlvbigpO1xuICAgIFxuICAgIGlmIChwb3NpdGlvbikge1xuICAgICAgdGhpcy5nZW9Mb2NhdGlvblN0YXR1cyA9ICdhY3RpdmUnO1xuICAgICAgdGhpcy51c2VyR2VvVmlld1N0YXRlID0gVXNlckdlb1ZpZXdTdGF0ZS5WRVJJRklFRDtcbiAgICAgIHRoaXMucmVwb3J0R2VvU3RhdHVzKHBvc2l0aW9uLmxhdGl0dWRlLCBwb3NpdGlvbi5sb25naXR1ZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmdlb0xvY2F0aW9uU3RhdHVzID0gJ2RlbmllZCc7XG4gICAgICB0aGlzLnVzZXJHZW9WaWV3U3RhdGUgPSBVc2VyR2VvVmlld1N0YXRlLkRFTklFRDtcbiAgICAgIHRoaXMuZGVueUdlb0xvY2F0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlcG9ydCBncmFudGVkIGdlb2xvY2F0aW9uIHRvIGJhY2tlbmQuXG4gICAqIElNUE9SVEFOVDogT25seSBjYWxsIHdpdGggdmFsaWQgY29vcmRpbmF0ZXMuXG4gICAqL1xuICBwcml2YXRlIHJlcG9ydEdlb1N0YXR1cyhsYXRpdHVkZTogbnVtYmVyLCBsb25naXR1ZGU6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICghdGhpcy52aWRlb0NhbGxJZCkge1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gVmFsaWRhdGUgY29vcmRpbmF0ZXMgYXJlIHByZXNlbnRcbiAgICBpZiAobGF0aXR1ZGUgPT09IHVuZGVmaW5lZCB8fCBsYXRpdHVkZSA9PT0gbnVsbCB8fCBsb25naXR1ZGUgPT09IHVuZGVmaW5lZCB8fCBsb25naXR1ZGUgPT09IG51bGwpIHtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGJvZHk6IFByb3h5VmlkZW9Vc2VyTW9kaWZ5UmVxdWVzdCA9IHtcbiAgICAgIHVzZXJJZDogdGhpcy51c2VySWQsXG4gICAgICB2aWRlb0NhbGxJZDogdGhpcy52aWRlb0NhbGxJZCxcbiAgICAgIGFjdGlvbjogVXNlckNhbGxBY3Rpb24uQUNUSVZBVEVfR0VPTE9DQVRJT04sXG4gICAgICBsYXRpdHVkZSxcbiAgICAgIGxvbmdpdHVkZSxcbiAgICB9O1xuXG5cbiAgICB0aGlzLnRhc1NlcnZpY2UubW9kaWZ5UHJveHlWaWRlb1VzZXIoYm9keSkuc3Vic2NyaWJlKHtcblxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcG9ydCBkZW5pZWQgZ2VvbG9jYXRpb24gdG8gYmFja2VuZC5cbiAgICovXG4gIHByaXZhdGUgZGVueUdlb0xvY2F0aW9uKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy52aWRlb0NhbGxJZCkge1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYm9keTogUHJveHlWaWRlb1VzZXJNb2RpZnlSZXF1ZXN0ID0ge1xuICAgICAgdXNlcklkOiB0aGlzLnVzZXJJZCxcbiAgICAgIHZpZGVvQ2FsbElkOiB0aGlzLnZpZGVvQ2FsbElkLFxuICAgICAgYWN0aW9uOiBVc2VyQ2FsbEFjdGlvbi5ERU5ZX0dFT0xPQ0FUSU9OLFxuICAgIH07XG5cblxuICAgIHRoaXMudGFzU2VydmljZS5tb2RpZnlQcm94eVZpZGVvVXNlcihib2R5KS5zdWJzY3JpYmUoe1xuXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVDYWxsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzUmV0dXJuaW5nRnJvbVBpcCkge1xuICAgICAgLy8gUmV0dXJuaW5nIGZyb20gUGlQIC0ganVzdCBtb3ZlIHZpZGVvcyBiYWNrXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudGFzU2VydmljZS5tb3ZlVmlkZW9zVG9GdWxsc2NyZWVuKCksIDEwMCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlc3Npb25JZCAmJiB0aGlzLnRva2VuKSB7XG4gICAgICAvLyBOZXcgY2FsbCAtIGNvbm5lY3QgdG8gc2Vzc2lvblxuICAgICAgdGhpcy50YXNTZXJ2aWNlXG4gICAgICAgIC5jb25uZWN0U2Vzc2lvbihcbiAgICAgICAgICB0aGlzLnNlc3Npb25JZCxcbiAgICAgICAgICB0aGlzLnRva2VuLFxuICAgICAgICAgICdwdWJsaXNoZXItY29udGFpbmVyJyxcbiAgICAgICAgICAnc3Vic2NyaWJlci1jb250YWluZXInLFxuICAgICAgICAgIHRoaXMuYnVzaW5lc3NSb2xlXG4gICAgICAgIClcbiAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBjb25uZWN0aW5nIHRvIHZpZGVvIGNhbGw6JywgZXJyKTtcbiAgICAgICAgfSk7XG4gICAgICBcbiAgICAgIC8vIFN0YXJ0IHN0YXR1cyBwb2xsaW5nIHdpdGggc2hvcnRlciBpbnRlcnZhbCAoNXMpIHRvIGRldGVjdCBvd25lciBsZWF2aW5nL2xvY2F0aW9uIHJlcXVlc3RzXG4gICAgICBpZiAodGhpcy5hcHBvaW50bWVudElkKSB7XG4gICAgICAgIHRoaXMudGFzU2VydmljZS5zdGFydFN0YXR1c1BvbGxpbmcoe1xuICAgICAgICAgIGFwcG9pbnRtZW50SWQ6IHRoaXMuYXBwb2ludG1lbnRJZCxcbiAgICAgICAgICB0ZW5hbnQ6IHRoaXMudGVuYW50LFxuICAgICAgICAgIGJ1c2luZXNzUm9sZTogdGhpcy5idXNpbmVzc1JvbGUsXG4gICAgICAgICAgcm9vbVR5cGU6IHVuZGVmaW5lZCwgLy8gUm9vbVR5cGUgbWlnaHQgYmUgbmVlZGVkIGlmIGF2YWlsYWJsZVxuICAgICAgICAgIGVudGl0eUlkOiB1bmRlZmluZWQsIC8vIEVudGl0eUlkIG1pZ2h0IGJlIG5lZWRlZCBpZiBhdmFpbGFibGVcbiAgICAgICAgICBzZXNzaW9uSWQ6IHRoaXMuc2Vzc2lvbklkXG4gICAgICAgIH0sIDUwMDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRWaWRlb1Bvc2l0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCBwdWJsaXNoZXJFbCA9IHRoaXMucHVibGlzaGVyQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHN1YnNjcmliZXJFbCA9IHRoaXMuc3Vic2NyaWJlckNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcblxuICAgIGlmIChwdWJsaXNoZXJFbCkge1xuICAgICAgcHVibGlzaGVyRWwucmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpO1xuICAgICAgcHVibGlzaGVyRWwucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXgnKTtcbiAgICAgIHB1Ymxpc2hlckVsLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS15Jyk7XG4gICAgfVxuXG4gICAgaWYgKHN1YnNjcmliZXJFbCkge1xuICAgICAgc3Vic2NyaWJlckVsLnJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKTtcbiAgICAgIHN1YnNjcmliZXJFbC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEteCcpO1xuICAgICAgc3Vic2NyaWJlckVsLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS15Jyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0SW50ZXJhY3QoKTogdm9pZCB7XG4gICAgaW50ZXJhY3QoJy5wdWJsaXNoZXItdmlldycpLnVuc2V0KCk7XG5cbiAgICBpbnRlcmFjdCgnLnB1Ymxpc2hlci12aWV3JylcbiAgICAgIC5kcmFnZ2FibGUoe1xuICAgICAgICBpbmVydGlhOiB0cnVlLFxuICAgICAgICBtb2RpZmllcnM6IFtcbiAgICAgICAgICBpbnRlcmFjdC5tb2RpZmllcnMucmVzdHJpY3RSZWN0KHtcbiAgICAgICAgICAgIHJlc3RyaWN0aW9uOiAncGFyZW50JyxcbiAgICAgICAgICAgIGVuZE9ubHk6IHRydWUsXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICAgIGF1dG9TY3JvbGw6IHRydWUsXG4gICAgICAgIGxpc3RlbmVyczoge1xuICAgICAgICAgIG1vdmU6IChldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICAgICAgY29uc3QgeCA9IChwYXJzZUZsb2F0KHRhcmdldC5nZXRBdHRyaWJ1dGUoJ2RhdGEteCcpKSB8fCAwKSArIGV2ZW50LmR4O1xuICAgICAgICAgICAgY29uc3QgeSA9IChwYXJzZUZsb2F0KHRhcmdldC5nZXRBdHRyaWJ1dGUoJ2RhdGEteScpKSB8fCAwKSArIGV2ZW50LmR5O1xuXG4gICAgICAgICAgICB0YXJnZXQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgke3h9cHgsICR7eX1weClgO1xuICAgICAgICAgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZSgnZGF0YS14JywgU3RyaW5nKHgpKTtcbiAgICAgICAgICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoJ2RhdGEteScsIFN0cmluZyh5KSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAucmVzaXphYmxlKHtcbiAgICAgICAgZWRnZXM6IHsgbGVmdDogZmFsc2UsIHJpZ2h0OiB0cnVlLCBib3R0b206IHRydWUsIHRvcDogZmFsc2UgfSxcbiAgICAgICAgbGlzdGVuZXJzOiB7XG4gICAgICAgICAgbW92ZTogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgICAgICAgICBsZXQgeCA9IHBhcnNlRmxvYXQodGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS14JykpIHx8IDA7XG4gICAgICAgICAgICBsZXQgeSA9IHBhcnNlRmxvYXQodGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS15JykpIHx8IDA7XG5cbiAgICAgICAgICAgIHRhcmdldC5zdHlsZS53aWR0aCA9IGAke2V2ZW50LnJlY3Qud2lkdGh9cHhgO1xuICAgICAgICAgICAgdGFyZ2V0LnN0eWxlLmhlaWdodCA9IGAke2V2ZW50LnJlY3QuaGVpZ2h0fXB4YDtcblxuICAgICAgICAgICAgeCArPSBldmVudC5kZWx0YVJlY3QubGVmdDtcbiAgICAgICAgICAgIHkgKz0gZXZlbnQuZGVsdGFSZWN0LnRvcDtcblxuICAgICAgICAgICAgdGFyZ2V0LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoJHt4fXB4LCAke3l9cHgpYDtcbiAgICAgICAgICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoJ2RhdGEteCcsIFN0cmluZyh4KSk7XG4gICAgICAgICAgICB0YXJnZXQuc2V0QXR0cmlidXRlKCdkYXRhLXknLCBTdHJpbmcoeSkpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG1vZGlmaWVyczogW1xuICAgICAgICAgIGludGVyYWN0Lm1vZGlmaWVycy5yZXN0cmljdEVkZ2VzKHsgb3V0ZXI6ICdwYXJlbnQnIH0pLFxuICAgICAgICAgIGludGVyYWN0Lm1vZGlmaWVycy5yZXN0cmljdFNpemUoeyBtaW46IHsgd2lkdGg6IDE1MCwgaGVpZ2h0OiAxMDAgfSB9KSxcbiAgICAgICAgICBpbnRlcmFjdC5tb2RpZmllcnMuYXNwZWN0UmF0aW8oeyByYXRpbzogJ3ByZXNlcnZlJyB9KSxcbiAgICAgICAgXSxcbiAgICAgICAgaW5lcnRpYTogdHJ1ZSxcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGFzLXZpZGVvY2FsbC13cmFwcGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJ0YXMtdmlkZW9jYWxsLWNvbnRhaW5lclwiPlxuICAgIDwhLS0gU3Vic2NyaWJlciB2aWRlbyAobGFyZ2UsIGJhY2tncm91bmQpIC0tPlxuICAgIDxkaXZcbiAgICAgIGlkPVwic3Vic2NyaWJlci1jb250YWluZXJcIlxuICAgICAgW2NsYXNzLnN1YnNjcmliZXItdmlld109XCJpc1B1Ymxpc2hlclNtYWxsXCJcbiAgICAgIFtjbGFzcy5wdWJsaXNoZXItdmlld109XCIhaXNQdWJsaXNoZXJTbWFsbFwiXG4gICAgICAjc3Vic2NyaWJlckNvbnRhaW5lclxuICAgICAgKGRibGNsaWNrKT1cIm9uRG91YmxlQ2xpY2soKVwiXG4gICAgPjwvZGl2PlxuXG4gICAgPCEtLSBQdWJsaXNoZXIgdmlkZW8gKHNtYWxsLCBvdmVybGF5KSAtLT5cbiAgICA8ZGl2XG4gICAgICBpZD1cInB1Ymxpc2hlci1jb250YWluZXJcIlxuICAgICAgW2NsYXNzLnB1Ymxpc2hlci12aWV3XT1cImlzUHVibGlzaGVyU21hbGxcIlxuICAgICAgW2NsYXNzLnN1YnNjcmliZXItdmlld109XCIhaXNQdWJsaXNoZXJTbWFsbFwiXG4gICAgICAjcHVibGlzaGVyQ29udGFpbmVyXG4gICAgICAoZGJsY2xpY2spPVwib25Eb3VibGVDbGljaygpXCJcbiAgICA+PC9kaXY+XG5cbiAgICA8IS0tIENlbnRlcmVkIGF2YXRhciAoc2hvd24gd2hlbiBubyB2aWRlbyBzdHJlYW0pIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY29udGFpbmVyXCIgKm5nSWY9XCIhaGFzVmlkZW9TdHJlYW1cIj5cbiAgICAgIDx0YXMtYXZhdGFyIFtuYW1lXT1cInBhcnRpY2lwYW50TmFtZVwiIFtzaXplXT1cIjgwXCI+PC90YXMtYXZhdGFyPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBDb250cm9scyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY29udHJvbHMtY29udGFpbmVyXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGNvbnRyb2wtYnRuIG11dGUtYnRuXCJcbiAgICAgICAgW2NsYXNzLm11dGVkXT1cImlzTXV0ZWRcIlxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlTXV0ZSgpXCJcbiAgICAgICAgW3RpdGxlXT1cImlzTXV0ZWQgPyAnQWN0aXZhciBtaWNyw7Nmb25vJyA6ICdTaWxlbmNpYXIgbWljcsOzZm9ubydcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImlzTXV0ZWQgPyAnQWN0aXZhciBtaWNyw7Nmb25vJyA6ICdTaWxlbmNpYXIgbWljcsOzZm9ubydcIlxuICAgICAgPlxuICAgICAgICA8aVxuICAgICAgICAgIGNsYXNzPVwiZmFcIlxuICAgICAgICAgIFtjbGFzcy5mYS1taWNyb3Bob25lXT1cIiFpc011dGVkXCJcbiAgICAgICAgICBbY2xhc3MuZmEtbWljcm9waG9uZS1zbGFzaF09XCJpc011dGVkXCJcbiAgICAgICAgPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0biBjb250cm9sLWJ0biBzd2FwLWJ0blwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVTd2FwKClcIlxuICAgICAgICB0aXRsZT1cIkludGVyY2FtYmlhciB2aXN0YVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJJbnRlcmNhbWJpYXIgdmlzdGFcIlxuICAgICAgPlxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXJlZnJlc2hcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJidG4gY29udHJvbC1idG4gcGlwLWJ0blwiXG4gICAgICAgIChjbGljayk9XCJtaW5pbWl6ZSgpXCJcbiAgICAgICAgdGl0bGU9XCJNaW5pbWl6YXIgKFBpY3R1cmUgaW4gUGljdHVyZSlcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiTWluaW1pemFyIHZpZGVvbGxhbWFkYVwiXG4gICAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY29tcHJlc3NcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJidG4gY29udHJvbC1idG4gaGFuZ3VwLWJ0blwiXG4gICAgICAgIChjbGljayk9XCJoYW5nVXAoKVwiXG4gICAgICAgIHRpdGxlPVwiRmluYWxpemFyIGxsYW1hZGFcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiRmluYWxpemFyIGxsYW1hZGFcIlxuICAgICAgPlxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBob25lXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFdhaXRpbmcgcm9vbSBub3RpZmljYXRpb24gKHNob3duIGZvciBPV05FUi9CQUNLT0ZGSUNFIG9ubHkpIC0tPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwid2FpdGluZy1ub3RpZmljYXRpb25cIlxuICAgICAgKm5nSWY9XCJ3YWl0aW5nUm9vbVVzZXJzLmxlbmd0aCA+IDAgJiYgY2FuQWRtaXRVc2Vyc1wiXG4gICAgICByb2xlPVwiYWxlcnRcIlxuICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cIndhaXRpbmctdGV4dFwiPlxuICAgICAgICB7eyB3YWl0aW5nUm9vbVVzZXJzWzBdLm5hbWUgfX0gZXN0w6EgZW4gbGEgc2FsYSBkZSBlc3BlcmEuXG4gICAgICA8L3NwYW4+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYWRtaXQtYnRuXCJcbiAgICAgICAgKGNsaWNrKT1cImFkbWl0VXNlcih3YWl0aW5nUm9vbVVzZXJzWzBdLnVzZXJJZClcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiQWRtaXRpciB1c3VhcmlvXCJcbiAgICAgID5cbiAgICAgICAgQWRtaXRpclxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiZGlzbWlzcy1idG5cIlxuICAgICAgICAoY2xpY2spPVwiZGlzbWlzc1dhaXRpbmdOb3RpZmljYXRpb24od2FpdGluZ1Jvb21Vc2Vyc1swXS51c2VySWQpXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIkNlcnJhciBub3RpZmljYWNpw7NuXCJcbiAgICAgID5cbiAgICAgICAgw5dcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIE93bmVyIGdlb2xvY2F0aW9uIHBhbmVsIChmb3Igb3duZXJzIHRvIHJlcXVlc3QgdXNlciBsb2NhdGlvbikgLS0+XG4gIDxkaXYgY2xhc3M9XCJ1c2VyLWdlby1wYW5lbFwiICpuZ0lmPVwic2hvdWxkU2hvd1VzZXJHZW9QYW5lbCB8fCBkZXZNb2RlRW5hYmxlZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdlby1oZWFkZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItdGl0bGUtcm93XCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtbWFwLW1hcmtlciBoZWFkZXItaWNvblwiICpuZ0lmPVwidXNlckdlb1ZpZXdTdGF0ZSAhPT0gVXNlckdlb1ZpZXdTdGF0ZS5JTklUSUFMXCI+PC9pPlxuICAgICAgICA8aDM+VWJpY2FjacOzbiBkZWwgY29sYWJvcmFkb3I8L2gzPlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiY2xvc2UtYnRuXCIgKGNsaWNrKT1cInNldFVzZXJHZW9WaWV3U3RhdGUoVXNlckdlb1ZpZXdTdGF0ZS5ISURERU4pXCIgYXJpYS1sYWJlbD1cIkNlcnJhclwiPsOXPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwidXNlci1nZW8tZGVzY3JpcHRpb25cIiAqbmdJZj1cInVzZXJHZW9WaWV3U3RhdGUgIT09IFVzZXJHZW9WaWV3U3RhdGUuVkVSSUZJRUQgJiYgdXNlckdlb1ZpZXdTdGF0ZSAhPT0gVXNlckdlb1ZpZXdTdGF0ZS5ERU5JRURcIj5cbiAgICAgIDxwPkVsIGNvbGFib3JhZG9yIHRpZW5lIGxhIHViaWNhY2nDs24gZGVzYWN0aXZhZGEsIHNvbGljaXRhIHF1ZSBsYSBhY3RpdmUuPC9wPlxuICAgICAgPHA+RXN0YSBhY2Npw7NuIG5vcyBwZXJtaXRpcsOhIGRpc3BvbmliaWxpemFyIGFsZ3VuYXMgYWxlcnRhcy48L3A+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwidXNlci1nZW8tY29udGVudFwiPlxuICAgICAgPCEtLSBJTklUSUFMIHN0YXRlOiBqdXN0IHRoZSBidXR0b24gLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXNlckdlb1ZpZXdTdGF0ZSA9PT0gVXNlckdlb1ZpZXdTdGF0ZS5JTklUSUFMXCI+XG4gICAgICAgIDwhLS0gc3BhY2VyIC0tPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gVkVSSUZZSU5HIHN0YXRlOiBzcGlubmVyICsgbG9hZGluZyBtZXNzYWdlIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVzZXJHZW9WaWV3U3RhdGUgPT09IFVzZXJHZW9WaWV3U3RhdGUuVkVSSUZZSU5HXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdlby12ZXJpZnlpbmdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2VvLXNwaW5uZXItbGFyZ2VcIj48L2Rpdj5cbiAgICAgICAgICA8cCBjbGFzcz1cInZlcmlmeWluZy10aXRsZVwiPlZlcmlmaWNhbmRvIHViaWNhY2nDs24uLi48L3A+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ2ZXJpZnlpbmctc3VidGl0bGVcIj5Fc3RvIHB1ZWRlIHRhcmRhciB1bm9zIHNlZ3VuZG9zLjwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBWRVJJRklFRCBzdGF0ZTogaG9tZSBpY29uIHdpdGggc3BhcmtsZXMgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXNlckdlb1ZpZXdTdGF0ZSA9PT0gVXNlckdlb1ZpZXdTdGF0ZS5WRVJJRklFRFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1nZW8tdmVyaWZpZWRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVyaWZpZWQtaWNvbi1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG9tZS1pY29uXCIgW2lubmVySFRNTF09XCJob21lSWNvblwiPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8cCBjbGFzcz1cInZlcmlmaWVkLXRpdGxlXCI+TGEgdWJpY2FjacOzbiBmdWUgdmVyaWZpY2FkYTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBERU5JRUQgc3RhdGU6IGVycm9yIGljb24gYW5kIG1lc3NhZ2UgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXNlckdlb1ZpZXdTdGF0ZSA9PT0gVXNlckdlb1ZpZXdTdGF0ZS5ERU5JRURcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItZ2VvLWRlbmllZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZW5pZWQtaWNvbi1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXMtY2lyY2xlXCI+PC9pPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxwIGNsYXNzPVwiZGVuaWVkLXRpdGxlXCI+TGEgdWJpY2FjacOzbiBmdWUgcmVjaGF6YWRhPC9wPlxuICAgICAgICAgIDxwIGNsYXNzPVwiZGVuaWVkLXN1YnRpdGxlXCI+RWwgY29sYWJvcmFkb3Igbm8gcGVybWl0acOzIGVsIGFjY2VzbyBhIHN1IHViaWNhY2nDs24uPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBCdXR0b24gKGhpZGRlbiBpbiB2ZXJpZmllZCBhbmQgZGVuaWVkIHN0YXRlcykgLS0+XG4gICAgPGJ1dHRvbiBcbiAgICAgIGNsYXNzPVwidXNlci1nZW8tYnRuXCIgXG4gICAgICAqbmdJZj1cInVzZXJHZW9WaWV3U3RhdGUgIT09IFVzZXJHZW9WaWV3U3RhdGUuVkVSSUZJRUQgJiYgdXNlckdlb1ZpZXdTdGF0ZSAhPT0gVXNlckdlb1ZpZXdTdGF0ZS5ERU5JRURcIlxuICAgICAgW2NsYXNzLmRpc2FibGVkXT1cInVzZXJHZW9WaWV3U3RhdGUgPT09IFVzZXJHZW9WaWV3U3RhdGUuVkVSSUZZSU5HXCJcbiAgICAgIFtkaXNhYmxlZF09XCJ1c2VyR2VvVmlld1N0YXRlID09PSBVc2VyR2VvVmlld1N0YXRlLlZFUklGWUlOR1wiXG4gICAgICAoY2xpY2spPVwicmVxdWVzdFVzZXJMb2NhdGlvbigpXCI+XG4gICAgICBWZXJpZmljYXIgdWJpY2FjacOzblxuICAgIDwvYnV0dG9uPlxuXG4gICAgPCEtLSBEZXYgY29udHJvbHMgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRldi1jb250cm9sc1wiICpuZ0lmPVwiZGV2TW9kZUVuYWJsZWRcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZGV2LWxhYmVsXCI+RGV2Ojwvc3Bhbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJkZXYtYnRuXCIgKGNsaWNrKT1cInNldFVzZXJHZW9WaWV3U3RhdGUoVXNlckdlb1ZpZXdTdGF0ZS5JTklUSUFMKVwiPkluaXRpYWw8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJkZXYtYnRuXCIgKGNsaWNrKT1cInNldFVzZXJHZW9WaWV3U3RhdGUoVXNlckdlb1ZpZXdTdGF0ZS5WRVJJRllJTkcpXCI+VmVyaWZ5aW5nPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiZGV2LWJ0blwiIChjbGljayk9XCJzZXRVc2VyR2VvVmlld1N0YXRlKFVzZXJHZW9WaWV3U3RhdGUuVkVSSUZJRUQpXCI+VmVyaWZpZWQ8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJkZXYtYnRuXCIgKGNsaWNrKT1cInNldFVzZXJHZW9WaWV3U3RhdGUoVXNlckdlb1ZpZXdTdGF0ZS5ERU5JRUQpXCI+RGVuaWVkPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiZGV2LWJ0blwiIChjbGljayk9XCJzZXRVc2VyR2VvVmlld1N0YXRlKFVzZXJHZW9WaWV3U3RhdGUuSElEREVOKVwiPkhpZGU8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuIl19
508
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzLXZpZGVvY2FsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YXMtdWVsbC1zZGsvc3JjL2xpYi9jb21wb25lbnRzL3Rhcy12aWRlb2NhbGwvdGFzLXZpZGVvY2FsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YXMtdWVsbC1zZGsvc3JjL2xpYi9jb21wb25lbnRzL3Rhcy12aWRlb2NhbGwvdGFzLXZpZGVvY2FsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULEtBQUssRUFDTCxTQUFTLEdBR1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFHL0YsT0FBTyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsZUFBZSxFQUdmLGNBQWMsRUFHZCxTQUFTLEdBQ1YsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVVwQyxPQUFPLFFBQVEsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7O0FBUmxDLHlDQUF5QztBQUN6QyxNQUFNLENBQU4sSUFBWSxnQkFNWDtBQU5ELFdBQVksZ0JBQWdCO0lBQzFCLHFDQUFpQixDQUFBO0lBQ2pCLHVDQUFtQixDQUFBO0lBQ25CLDJDQUF1QixDQUFBO0lBQ3ZCLHlDQUFxQixDQUFBO0lBQ3JCLHFDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFOVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBTTNCO0FBUUQsTUFBTSxPQUFPLHFCQUFxQjtJQTBDaEMsWUFDUyxXQUEyQixFQUMxQixVQUFzQixFQUN0QixrQkFBc0MsRUFDdEMsU0FBdUIsRUFDdkIsWUFBc0I7UUFKdkIs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LEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUUyQixrQkFBa0I7c0JBQWxELFNBQVM7dUJBQUMsb0JBQW9CO2dCQUNHLG1CQUFtQjtzQkFBcEQsU0FBUzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxuICBJbnB1dCxcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBBZnRlclZpZXdJbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsLCBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcbmltcG9ydCB7IFRhc0ZlZWRiYWNrTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi90YXMtZmVlZGJhY2stbW9kYWwvdGFzLWZlZWRiYWNrLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFzLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VvbG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZ2VvbG9jYXRpb24uc2VydmljZSc7XG5pbXBvcnQge1xuICBDYWxsU3RhdGUsXG4gIFZpZXdNb2RlLFxuICBUYXNCdXNpbmVzc1JvbGUsXG4gIFdhaXRpbmdSb29tVXNlcixcbiAgUm9vbVVzZXJTdGF0dXMsXG4gIFVzZXJDYWxsQWN0aW9uLFxuICBQcm94eVZpZGVvVXNlck1vZGlmeVJlcXVlc3QsXG4gIFVzZXJHZW9JbmZvLFxuICBHZW9TdGF0dXMsXG59IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGFzLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgVEFTX0lDT05TIH0gZnJvbSAnLi4vLi4vaWNvbnMvdGFzLWljb25zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG4vKiogVXNlciBnZW9sb2NhdGlvbiBwYW5lbCB2aWV3IHN0YXRlcyAqL1xuZXhwb3J0IGVudW0gVXNlckdlb1ZpZXdTdGF0ZSB7XG4gIEhJRERFTiA9ICdISURERU4nLFxuICBJTklUSUFMID0gJ0lOSVRJQUwnLFxuICBWRVJJRllJTkcgPSAnVkVSSUZZSU5HJyxcbiAgVkVSSUZJRUQgPSAnVkVSSUZJRUQnLFxuICBERU5JRUQgPSAnREVOSUVEJyxcbn1cbmltcG9ydCBpbnRlcmFjdCBmcm9tICdpbnRlcmFjdGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFzLXZpZGVvY2FsbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YXMtdmlkZW9jYWxsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFzLXZpZGVvY2FsbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUYXNWaWRlb2NhbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHNlc3Npb25JZCE6IHN0cmluZztcbiAgQElucHV0KCkgdG9rZW4hOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFwcG9pbnRtZW50SWQ/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHZpZGVvQ2FsbElkPzogbnVtYmVyO1xuICBASW5wdXQoKSB1c2VySWQ/OiBudW1iZXI7IC8vIEN1cnJlbnQgdXNlcidzIElEIGZvciBnZW8gcmVwb3J0aW5nXG4gIEBJbnB1dCgpIHBhcnRpY2lwYW50TmFtZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHRlbmFudDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGJ1c2luZXNzUm9sZTogVGFzQnVzaW5lc3NSb2xlID0gVGFzQnVzaW5lc3NSb2xlLlVTRVI7XG4gIEBJbnB1dCgpIGlzUmV0dXJuaW5nRnJvbVBpcDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ3B1Ymxpc2hlckNvbnRhaW5lcicpIHB1Ymxpc2hlckNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3N1YnNjcmliZXJDb250YWluZXInKSBzdWJzY3JpYmVyQ29udGFpbmVyITogRWxlbWVudFJlZjtcblxuICBwdWJsaWMgaXNQdWJsaXNoZXJTbWFsbCA9IHRydWU7XG4gIHB1YmxpYyBjYWxsU3RhdGUgPSBDYWxsU3RhdGUuSURMRTtcbiAgcHVibGljIGlzTXV0ZWQgPSBmYWxzZTtcbiAgcHVibGljIHdhaXRpbmdSb29tVXNlcnM6IFdhaXRpbmdSb29tVXNlcltdID0gW107XG4gIHB1YmxpYyBvd25lckhhc0pvaW5lZCA9IGZhbHNlO1xuICBwdWJsaWMgaGFzVmlkZW9TdHJlYW0gPSBmYWxzZTtcbiAgcHVibGljIGhhc1N1YnNjcmliZXJDb25uZWN0ZWQgPSBmYWxzZTsgLy8gVHJhY2tzIGlmIGFub3RoZXIgdXNlcidzIHZpZGVvIHN0cmVhbSBoYXMgYWN0dWFsbHkgY29ubmVjdGVkXG4gIHB1YmxpYyBkaXNtaXNzZWRVc2VyczogbnVtYmVyW10gPSBbXTtcbiAgcHVibGljIHNob3dMb2NhdGlvblBhbmVsID0gdHJ1ZTsgLy8gU2hvdyBieSBkZWZhdWx0IGZvciBvd25lcnMsIHdpbGwgYmUgdXBkYXRlZCBiYXNlZCBvbiB1c2VyJ3MgbG9jYXRpb24gc3RhdHVzXG4gIHB1YmxpYyB1c2VySGFzTG9jYXRpb24gPSBmYWxzZTsgLy8gVHJhY2tzIGlmIHRoZSB1c2VyIGhhcyBzaGFyZWQgdGhlaXIgbG9jYXRpb25cbiAgcHVibGljIGdlb0xvY2F0aW9uU3RhdHVzOiAndW5rbm93bicgfCAnYWN0aXZlJyB8ICdkZW5pZWQnID0gJ3Vua25vd24nO1xuICBcbiAgLy8gR2VvIHBhbmVsIHN0YXRlcyBmb3Igb3duZXJcbiAgcHVibGljIGdlb1JlcXVlc3RBY3RpdmUgPSBmYWxzZTsgLy8gT3duZXIgc2VudCByZXF1ZXN0LCB3YWl0aW5nIGZvciB1c2VyXG4gIHB1YmxpYyBhbGxHZW9HcmFudGVkID0gZmFsc2U7IC8vIEFsbCB1c2VycyByZXNwb25kZWQgd2l0aCBnZW9cbiAgcHVibGljIHVzZXJHZW9JbmZvOiBVc2VyR2VvSW5mb1tdID0gW107IC8vIEluZGl2aWR1YWwgdXNlciBnZW8gc3RhdHVzXG5cbiAgLy8gVXNlciBnZW8gcGFuZWwgc3RhdGUgKGZvciBvd25lcnMpXG4gIHB1YmxpYyB1c2VyR2VvVmlld1N0YXRlOiBVc2VyR2VvVmlld1N0YXRlID0gVXNlckdlb1ZpZXdTdGF0ZS5ISURERU47XG4gIHB1YmxpYyBVc2VyR2VvVmlld1N0YXRlID0gVXNlckdlb1ZpZXdTdGF0ZTsgLy8gRXhwb3NlIGVudW0gdG8gdGVtcGxhdGVcbiAgcHVibGljIGhvbWVJY29uOiBTYWZlSHRtbDtcbiAgcHVibGljIGRldk1vZGVFbmFibGVkID0gZmFsc2U7IC8vIEVuYWJsZSBkZXYgY29udHJvbHMgZm9yIHRlc3RpbmdcbiAgcHJpdmF0ZSBnZW9QYW5lbERpc21pc3NlZCA9IGZhbHNlOyAvLyBUcmFjayBpZiBvd25lciBtYW51YWxseSBjbG9zZWQgdGhlIHBhbmVsXG4gIHByaXZhdGUgZmVlZGJhY2tTaG93biA9IGZhbHNlOyAvLyBUcmFjayBpZiBmZWVkYmFjayBtb2RhbCBoYXMgYmVlbiBzaG93blxuICBwcml2YXRlIHByZXZpb3VzQWxsR2VvR3JhbnRlZDogYm9vbGVhbiB8IG51bGwgPSBudWxsOyAvLyBUcmFjayBwcmV2aW91cyB2YWx1ZSB0byBkZXRlY3QgY2hhbmdlc1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgYWN0aXZlTW9kYWw6IE5nYkFjdGl2ZU1vZGFsLFxuICAgIHByaXZhdGUgdGFzU2VydmljZTogVGFzU2VydmljZSxcbiAgICBwcml2YXRlIGdlb2xvY2F0aW9uU2VydmljZTogR2VvbG9jYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsXG4gICkge1xuICAgIHRoaXMuaG9tZUljb24gPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChUQVNfSUNPTlMuaG9tZSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldHVwU3Vic2NyaXB0aW9ucygpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUNhbGwoKTtcbiAgICAvLyBQYW5lbCB3aWxsIGJlIHNob3duIHdoZW4gdXNlciBqb2lucyAodmlhIHVzZXJHZW9JbmZvJCBzdWJzY3JpcHRpb24pXG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0SW50ZXJhY3QoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMudGFzU2VydmljZS5yZXNldFBvbGxpbmdTdGF0ZSgpO1xuXG4gICAgLy8gT25seSBkaXNjb25uZWN0IGlmIG5vdCBpbiBQaVAgbW9kZSAoa2VlcCBzZXNzaW9uIGFsaXZlIGZvciBmbG9hdGluZyB3aW5kb3cpXG4gICAgaWYgKCF0aGlzLnRhc1NlcnZpY2UuaXNQaXBNb2RlKCkpIHtcbiAgICAgIHRoaXMudGFzU2VydmljZS5kaXNjb25uZWN0U2Vzc2lvbigpO1xuICAgIH1cblxuICAgIGludGVyYWN0KCcucHVibGlzaGVyLXZpZXcnKS51bnNldCgpO1xuICB9XG5cbiAgLy8gUHVibGljIE1ldGhvZHNcbiAgaGFuZ1VwKCk6IHZvaWQge1xuICAgIHRoaXMudGFzU2VydmljZS5kaXNjb25uZWN0U2Vzc2lvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW4gZmVlZGJhY2sgbW9kYWwgd2hlbiBjYWxsIGVuZHNcbiAgICovXG4gIHByaXZhdGUgb3BlbkZlZWRiYWNrTW9kYWwoKTogdm9pZCB7XG4gICAgLy8gUHJldmVudCBvcGVuaW5nIGZlZWRiYWNrIG1vZGFsIG11bHRpcGxlIHRpbWVzXG4gICAgaWYgKHRoaXMuZmVlZGJhY2tTaG93bikge1xuICAgICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgnaGFuZ3VwJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gR2V0IHZpZGVvQ2FsbElkIGZyb20gaW5wdXQgb3Igc2VydmljZVxuICAgIGNvbnN0IHZpZGVvQ2FsbElkID0gdGhpcy52aWRlb0NhbGxJZCA/PyB0aGlzLnRhc1NlcnZpY2UudmlkZW9DYWxsSWQ7XG5cbiAgICAvLyBJZiBubyB2aWRlb0NhbGxJZCwgc2tpcCBmZWVkYmFjayBhbmQgY2xvc2UgZGlyZWN0bHlcbiAgICBpZiAoIXZpZGVvQ2FsbElkKSB7XG4gICAgICB0aGlzLmFjdGl2ZU1vZGFsLmNsb3NlKCdoYW5ndXAnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmZlZWRiYWNrU2hvd24gPSB0cnVlO1xuXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFRhc0ZlZWRiYWNrTW9kYWxDb21wb25lbnQsIHtcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxuICAgICAgYmFja2Ryb3A6IHRydWUsXG4gICAgICBrZXlib2FyZDogdHJ1ZSxcbiAgICAgIHdpbmRvd0NsYXNzOiAndGFzLWZlZWRiYWNrLW1vZGFsLXdyYXBwZXInLFxuICAgIH0pO1xuXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UudmlkZW9DYWxsSWQgPSB2aWRlb0NhbGxJZDtcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS50ZW5hbnQgPSB0aGlzLnRlbmFudDtcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5idXNpbmVzc1JvbGUgPSB0aGlzLmJ1c2luZXNzUm9sZTtcblxuICAgIC8vIENsb3NlIHZpZGVvY2FsbCBtb2RhbCBhZnRlciBmZWVkYmFjayBtb2RhbCBpcyBjbG9zZWQvZGlzbWlzc2VkXG4gICAgbW9kYWxSZWYucmVzdWx0LmZpbmFsbHkoKCkgPT4ge1xuICAgICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgnaGFuZ3VwJyk7XG4gICAgfSk7XG4gIH1cblxuICB0b2dnbGVNdXRlKCk6IHZvaWQge1xuICAgIHRoaXMudGFzU2VydmljZS50b2dnbGVNdXRlKCk7XG4gIH1cblxuICBtaW5pbWl6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnRhc1NlcnZpY2UubW92ZU1haW5WaWRlb1RvKCdwaXAtbWFpbi12aWRlbycpO1xuICAgIC8vIFNtYWxsIGRlbGF5IHRvIGVuc3VyZSB2aWRlbyBpcyBtb3ZlZCBiZWZvcmUgY2xvc2luZyBtb2RhbFxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy50YXNTZXJ2aWNlLmVudGVyUGlwTW9kZSgpLCA1MCk7XG4gIH1cblxuICB0b2dnbGVTd2FwKCk6IHZvaWQge1xuICAgIHRoaXMuaXNQdWJsaXNoZXJTbWFsbCA9ICF0aGlzLmlzUHVibGlzaGVyU21hbGw7XG4gICAgdGhpcy5yZXNldFZpZGVvUG9zaXRpb25zKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmluaXRJbnRlcmFjdCgpKTtcbiAgfVxuXG4gIG9uRG91YmxlQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVTd2FwKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgY3VycmVudCB1c2VyIGNhbiBhZG1pdCBvdGhlcnMgKE9XTkVSLCBCQUNLT0ZGSUNFLCBvciBNT0RFUkFUT1IpXG4gICAqL1xuICBnZXQgY2FuQWRtaXRVc2VycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5idXNpbmVzc1JvbGUgPT09IFRhc0J1c2luZXNzUm9sZS5CQUNLT0ZGSUNFIHx8XG4gICAgICB0aGlzLmJ1c2luZXNzUm9sZSA9PT0gVGFzQnVzaW5lc3NSb2xlLkFETUlOX01BTkFHRVIgfHxcbiAgICAgIHRoaXMuYnVzaW5lc3NSb2xlID09PSBUYXNCdXNpbmVzc1JvbGUuTUFOQUdFUlxuICAgICk7XG4gIH1cblxuICAvKiogVXNlcnMgd2l0aCBwZW5kaW5nIGdlbyBzdGF0dXMgKi9cbiAgZ2V0IHBlbmRpbmdVc2VycygpOiBVc2VyR2VvSW5mb1tdIHtcbiAgICByZXR1cm4gdGhpcy51c2VyR2VvSW5mby5maWx0ZXIodSA9PiB1Lmdlb1N0YXR1cyA9PT0gR2VvU3RhdHVzLlBFTkRJTkcpO1xuICB9XG5cbiAgLyoqIFVzZXJzIHdobyBncmFudGVkIGdlbyAqL1xuICBnZXQgZ3JhbnRlZFVzZXJzKCk6IFVzZXJHZW9JbmZvW10ge1xuICAgIHJldHVybiB0aGlzLnVzZXJHZW9JbmZvLmZpbHRlcih1ID0+IHUuZ2VvU3RhdHVzID09PSBHZW9TdGF0dXMuR1JBTlRFRCk7XG4gIH1cblxuICAvKiogVXNlcnMgd2hvIGRlbmllZCBnZW8gKi9cbiAgZ2V0IGRlbmllZFVzZXJzKCk6IFVzZXJHZW9JbmZvW10ge1xuICAgIHJldHVybiB0aGlzLnVzZXJHZW9JbmZvLmZpbHRlcih1ID0+IHUuZ2VvU3RhdHVzID09PSBHZW9TdGF0dXMuREVOSUVEKTtcbiAgfVxuXG4gIC8qKiBTaG93IGxvY2F0aW9uIHBhbmVsIG9ubHkgaWYgb3duZXIgYW5kIHRoZXJlIGFyZSB1c2VycyB3aG8gaGF2ZW4ndCBncmFudGVkICovXG4gIGdldCBzaG91bGRTaG93TG9jYXRpb25QYW5lbCgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuY2FuQWRtaXRVc2VycyB8fCB0aGlzLnVzZXJHZW9JbmZvLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBIaWRlIGlmIGFsbCB1c2VycyBoYXZlIGdyYW50ZWRcbiAgICBjb25zdCBhbGxHcmFudGVkID0gdGhpcy51c2VyR2VvSW5mby5ldmVyeSh1ID0+IHUuZ2VvU3RhdHVzID09PSBHZW9TdGF0dXMuR1JBTlRFRCk7XG4gICAgcmV0dXJuICFhbGxHcmFudGVkO1xuICB9XG5cbiAgLyoqIENoZWNrIGlmIGFueSB1c2VyIGhhcyBkZW5pZWQgZ2VvICovXG4gIGdldCBoYXNBbnlEZW5pZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGVuaWVkVXNlcnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIC8qKiBTaG93IHVzZXIgZ2VvIHBhbmVsIGZvciBvd25lcnMgd2hlbjpcbiAgICogLSBVc2VyIGNhbiBhZG1pdCAoaXMgb3duZXIvYmFja29mZmljZSlcbiAgICogLSBQYW5lbCB3YXMgbm90IG1hbnVhbGx5IGRpc21pc3NlZCBieSBvd25lclxuICAgKiAtIFBhbmVsIGlzIG5vdCBpbiBoaWRkZW4gc3RhdGVcbiAgICogLSBBbm90aGVyIHVzZXIgaGFzIGFjdHVhbGx5IGNvbm5lY3RlZCB0aGVpciB2aWRlbyBzdHJlYW1cbiAgICogLSBOb3QgYWxsIGdlbyBpcyBncmFudGVkXG4gICAqL1xuICBnZXQgc2hvdWxkU2hvd1VzZXJHZW9QYW5lbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5jYW5BZG1pdFVzZXJzICYmXG4gICAgICAhdGhpcy5nZW9QYW5lbERpc21pc3NlZCAmJlxuICAgICAgdGhpcy51c2VyR2VvVmlld1N0YXRlICE9PSBVc2VyR2VvVmlld1N0YXRlLkhJRERFTiAmJlxuICAgICAgdGhpcy5oYXNTdWJzY3JpYmVyQ29ubmVjdGVkICYmXG4gICAgICAhdGhpcy5hbGxHZW9HcmFudGVkXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBTZXQgdXNlciBnZW8gdmlldyBzdGF0ZSAoZm9yIGRldiBjb250cm9scyBvciBjbG9zZSBidXR0b24pICovXG4gIHNldFVzZXJHZW9WaWV3U3RhdGUoc3RhdGU6IFVzZXJHZW9WaWV3U3RhdGUpOiB2b2lkIHtcbiAgICB0aGlzLnVzZXJHZW9WaWV3U3RhdGUgPSBzdGF0ZTtcbiAgICAvLyBUcmFjayBpZiBvd25lciBtYW51YWxseSBkaXNtaXNzZWQgdGhlIHBhbmVsXG4gICAgaWYgKHN0YXRlID09PSBVc2VyR2VvVmlld1N0YXRlLkhJRERFTikge1xuICAgICAgdGhpcy5nZW9QYW5lbERpc21pc3NlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkbWl0IGEgdXNlciBmcm9tIHRoZSB3YWl0aW5nIHJvb21cbiAgICovXG4gIGFkbWl0VXNlcih1c2VySWQ6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICghdGhpcy52aWRlb0NhbGxJZCkge1xuICAgICAgY29uc29sZS5lcnJvcignQ2Fubm90IGFkbWl0IHVzZXI6IHZpZGVvQ2FsbElkIG5vdCBzZXQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnRhc1NlcnZpY2VcbiAgICAgIC5tb2RpZnlQcm94eVZpZGVvVXNlcih7XG4gICAgICAgIHVzZXJJZCxcbiAgICAgICAgdmlkZW9DYWxsSWQ6IHRoaXMudmlkZW9DYWxsSWQsXG4gICAgICAgIGFjdGlvbjogVXNlckNhbGxBY3Rpb24uV0FJVElOR19ST09NX0xFQVZFLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgLy8gUmVtb3ZlIHVzZXIgZnJvbSB3YWl0aW5nIGxpc3QgYWZ0ZXIgc3VjY2Vzc2Z1bCBhZG1pdFxuICAgICAgICAgIHRoaXMud2FpdGluZ1Jvb21Vc2VycyA9IHRoaXMud2FpdGluZ1Jvb21Vc2Vycy5maWx0ZXIoXG4gICAgICAgICAgICAodSkgPT4gdS51c2VySWQgIT09IHVzZXJJZFxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgYWRtaXR0aW5nIHVzZXI6JywgZXJyKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc21pc3MgdGhlIHdhaXRpbmcgcm9vbSBub3RpZmljYXRpb24gZm9yIGEgdXNlclxuICAgKi9cbiAgZGlzbWlzc1dhaXRpbmdOb3RpZmljYXRpb24odXNlcklkOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmRpc21pc3NlZFVzZXJzLnB1c2godXNlcklkKTtcbiAgICB0aGlzLndhaXRpbmdSb29tVXNlcnMgPSB0aGlzLndhaXRpbmdSb29tVXNlcnMuZmlsdGVyKFxuICAgICAgKHUpID0+IHUudXNlcklkICE9PSB1c2VySWRcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIHRoZSBsb2NhdGlvbiBwYW5lbFxuICAgKi9cbiAgY2xvc2VMb2NhdGlvblBhbmVsKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0xvY2F0aW9uUGFuZWwgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXF1ZXN0IHRoZSB1c2VyIHRvIHNoYXJlIHRoZWlyIGxvY2F0aW9uIChjYWxsZWQgYnkgb3duZXIpXG4gICAqL1xuICByZXF1ZXN0VXNlckxvY2F0aW9uKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy52aWRlb0NhbGxJZCkge1xuICAgICAgY29uc29sZS5lcnJvcignQ2Fubm90IHJlcXVlc3QgbG9jYXRpb246IHZpZGVvQ2FsbElkIG5vdCBzZXQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgYm9keTogUHJveHlWaWRlb1VzZXJNb2RpZnlSZXF1ZXN0ID0ge1xuICAgICAgdmlkZW9DYWxsSWQ6IHRoaXMudmlkZW9DYWxsSWQsXG4gICAgICBhY3Rpb246IFVzZXJDYWxsQWN0aW9uLlJFUVVFU1RfR0VPTE9DQUxJWkFUSU9OLFxuICAgIH07XG5cbiAgICB0aGlzLnRhc1NlcnZpY2UubW9kaWZ5UHJveHlWaWRlb1VzZXIoYm9keSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ0xvY2F0aW9uIHJlcXVlc3Qgc2VudCcpO1xuICAgICAgICAvLyBTZXQgcGFuZWwgdG8gdmVyaWZ5aW5nIHN0YXRlIHdoaWxlIHdhaXRpbmcgZm9yIHVzZXIgcmVzcG9uc2VcbiAgICAgICAgdGhpcy51c2VyR2VvVmlld1N0YXRlID0gVXNlckdlb1ZpZXdTdGF0ZS5WRVJJRllJTkc7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnIpID0+IGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlcXVlc3RpbmcgbG9jYXRpb246JywgZXJyKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFByaXZhdGUgTWV0aG9kc1xuICBwcml2YXRlIHNldHVwU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICAvLyBDYWxsIHN0YXRlIHN1YnNjcmlwdGlvblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnRhc1NlcnZpY2UuY2FsbFN0YXRlJC5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICAgIHRoaXMuY2FsbFN0YXRlID0gc3RhdGU7XG4gICAgICAgIGlmIChzdGF0ZSA9PT0gQ2FsbFN0YXRlLkRJU0NPTk5FQ1RFRCkge1xuICAgICAgICAgIHRoaXMub3BlbkZlZWRiYWNrTW9kYWwoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUcmFjayBpZiB3ZSBoYXZlIGFuIGFjdGl2ZSB2aWRlbyBzdHJlYW1cbiAgICAgICAgdGhpcy5oYXNWaWRlb1N0cmVhbSA9IHN0YXRlID09PSBDYWxsU3RhdGUuQ09OTkVDVEVEO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gVmlldyBtb2RlIHN1YnNjcmlwdGlvblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnRhc1NlcnZpY2Uudmlld01vZGUkLnN1YnNjcmliZSgobW9kZSkgPT4ge1xuICAgICAgICBpZiAobW9kZSA9PT0gVmlld01vZGUuUElQKSB7XG4gICAgICAgICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgncGlwJyk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIE11dGUgc3RhdGUgc3Vic2NyaXB0aW9uXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudGFzU2VydmljZS5pc011dGVkJC5zdWJzY3JpYmUoKG11dGVkKSA9PiB7XG4gICAgICAgIHRoaXMuaXNNdXRlZCA9IG11dGVkO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gV2FpdGluZyByb29tIHVzZXJzIHN1YnNjcmlwdGlvblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnRhc1NlcnZpY2Uud2FpdGluZ1Jvb21Vc2VycyQuc3Vic2NyaWJlKCh1c2VycykgPT4ge1xuICAgICAgICAvLyBGaWx0ZXIgb3V0IGRpc21pc3NlZCB1c2Vyc1xuICAgICAgICB0aGlzLndhaXRpbmdSb29tVXNlcnMgPSB1c2Vycy5maWx0ZXIoXG4gICAgICAgICAgKHUpID0+ICF0aGlzLmRpc21pc3NlZFVzZXJzLmluY2x1ZGVzKHUudXNlcklkKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gT3duZXIgam9pbiBzdGF0dXMgc3Vic2NyaXB0aW9uXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudGFzU2VydmljZS5vd25lckhhc0pvaW5lZCQuc3Vic2NyaWJlKChqb2luZWQpID0+IHtcbiAgICAgICAgdGhpcy5vd25lckhhc0pvaW5lZCA9IGpvaW5lZDtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIE93bmVyIGxlZnQgc3Vic2NyaXB0aW9uIC0gZGlzY29ubmVjdCBub24tb3duZXJzXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudGFzU2VydmljZS5vd25lckhhc0xlZnQkLnN1YnNjcmliZSgoaGFzTGVmdCkgPT4ge1xuICAgICAgICBpZiAoaGFzTGVmdCAmJiAhdGhpcy5jYW5BZG1pdFVzZXJzKSB7IC8vIE5vbi1vd25lciB1c2VyXG4gICAgICAgICAgLy8gaGFuZ1VwKCkgdHJpZ2dlcnMgRElTQ09OTkVDVEVEIHN0YXRlLCB3aGljaCBvcGVucyBmZWVkYmFjayBtb2RhbFxuICAgICAgICAgIC8vIHRoZW4gY2xvc2VzIHZpZGVvY2FsbCBtb2RhbCBhZnRlciBmZWVkYmFjayBpcyBkb25lXG4gICAgICAgICAgdGhpcy5oYW5nVXAoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gQWN0aXZhdGVHZW8gc3Vic2NyaXB0aW9uIC0gb25seSBmb3Igbm9uLW93bmVycyAodXNlcnMpXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudGFzU2VydmljZS5hY3RpdmF0ZUdlbyQuc3Vic2NyaWJlKChhY3RpdmF0ZUdlbykgPT4ge1xuICAgICAgICBpZiAoYWN0aXZhdGVHZW8gJiYgIXRoaXMuY2FuQWRtaXRVc2Vycykge1xuXG4gICAgICAgICAgdGhpcy5oYW5kbGVBY3RpdmF0ZUdlbygpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG5cbiAgICAvLyBHZW9SZXF1ZXN0QWN0aXZlIHN1YnNjcmlwdGlvbiAtIGZvciBvd25lcnNcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy50YXNTZXJ2aWNlLmdlb1JlcXVlc3RBY3RpdmUkLnN1YnNjcmliZSgoYWN0aXZlKSA9PiB7XG5cbiAgICAgICAgdGhpcy5nZW9SZXF1ZXN0QWN0aXZlID0gYWN0aXZlO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gQWxsR2VvR3JhbnRlZCBzdWJzY3JpcHRpb24gLSBmb3Igb3duZXJzIHRvIHVwZGF0ZSBwYW5lbCBzdGF0ZVxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnRhc1NlcnZpY2UuYWxsR2VvR3JhbnRlZCQuc3Vic2NyaWJlKChncmFudGVkKSA9PiB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSB0aGlzLmFsbEdlb0dyYW50ZWQ7XG4gICAgICAgIHRoaXMuYWxsR2VvR3JhbnRlZCA9IGdyYW50ZWQ7XG4gICAgICAgIFxuICAgICAgICAvLyBGb3Igb3duZXJzOiBoaWRlIHRoZSBwYW5lbCB3aGVuIGFsbCBnZW8gaXMgZ3JhbnRlZCAoaW5jbHVkaW5nIG9uIG1lZXRpbmcgc3RhcnQpXG4gICAgICAgIGlmICh0aGlzLmNhbkFkbWl0VXNlcnMgJiYgZ3JhbnRlZCkge1xuICAgICAgICAgIHRoaXMudXNlckdlb1ZpZXdTdGF0ZSA9IFVzZXJHZW9WaWV3U3RhdGUuSElEREVOO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBJZiBnZW8gc3RhdHVzIGNoYW5nZWQgZnJvbSBncmFudGVkIHRvIG5vdC1ncmFudGVkLCByZXNldCB0aGUgZGlzbWlzc2VkIGZsYWdcbiAgICAgICAgLy8gc28gdGhlIHBhbmVsIGNhbiBzaG93IGFnYWluXG4gICAgICAgIGlmICh0aGlzLnByZXZpb3VzQWxsR2VvR3JhbnRlZCA9PT0gdHJ1ZSAmJiAhZ3JhbnRlZCkge1xuICAgICAgICAgIHRoaXMuZ2VvUGFuZWxEaXNtaXNzZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZXZpb3VzQWxsR2VvR3JhbnRlZCA9IGdyYW50ZWQ7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICAvLyBVc2VyR2VvSW5mbyBzdWJzY3JpcHRpb24gLSBmb3Igb3duZXIgZ2VvIHBhbmVsXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudGFzU2VydmljZS51c2VyR2VvSW5mbyQuc3Vic2NyaWJlKChpbmZvKSA9PiB7XG4gICAgICAgIHRoaXMudXNlckdlb0luZm8gPSBpbmZvO1xuICAgICAgICBcbiAgICAgICAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSBhY3R1YWwgdmlkZW8gc3Vic2NyaWJlcnMgY29ubmVjdGVkXG4gICAgICAgIC8vIFRoaXMgaGFwcGVucyB3aGVuIGFub3RoZXIgdXNlcidzIHZpZGVvIHN0cmVhbSBqb2lucyAodmlhIE9wZW5Ub2spXG4gICAgICAgIGNvbnN0IGhhc1N1YnNjcmliZXJzID0gdGhpcy50YXNTZXJ2aWNlLmN1cnJlbnRTdWJzY3JpYmVycy5sZW5ndGggPiAwO1xuICAgICAgICBcbiAgICAgICAgaWYgKGhhc1N1YnNjcmliZXJzICYmICF0aGlzLmhhc1N1YnNjcmliZXJDb25uZWN0ZWQpIHtcbiAgICAgICAgICAvLyBGaXJzdCB0aW1lIGEgc3Vic2NyaWJlciBjb25uZWN0ZWRcbiAgICAgICAgICB0aGlzLmhhc1N1YnNjcmliZXJDb25uZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIFNob3cgcGFuZWwgb25seSB3aGVuIHN1YnNjcmliZXIgZmlyc3QgY29ubmVjdHMsIGdlbyBub3QgZ3JhbnRlZCwgYW5kIG5vdCBkaXNtaXNzZWRcbiAgICAgICAgICBpZiAodGhpcy5jYW5BZG1pdFVzZXJzICYmICF0aGlzLmFsbEdlb0dyYW50ZWQgJiYgIXRoaXMuZ2VvUGFuZWxEaXNtaXNzZWQpIHtcbiAgICAgICAgICAgIHRoaXMudXNlckdlb1ZpZXdTdGF0ZSA9IFVzZXJHZW9WaWV3U3RhdGUuSU5JVElBTDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gUGFuZWwgdmlzaWJpbGl0eSBpcyBjb250cm9sbGVkIGJ5IHRoZSBzaG91bGRTaG93VXNlckdlb1BhbmVsIGdldHRlclxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBhY3RpdmF0ZUdlbyByZXF1ZXN0IGZyb20gYmFja2VuZCAoZm9yIG5vbi1vd25lciB1c2VycykuXG4gICAqIERpcmVjdGx5IHByb21wdHMgYnJvd3NlciBmb3IgZ2VvbG9jYXRpb24gLSBubyBwYW5lbCBmb3IgdXNlcnMuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGhhbmRsZUFjdGl2YXRlR2VvKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIENsZWFyIGFueSBjYWNoZWQgcG9zaXRpb24gdG8gZm9yY2UgcmUtcHJvbXB0aW5nXG4gICAgdGhpcy5nZW9sb2NhdGlvblNlcnZpY2UuY2xlYXJDYWNoZSgpO1xuICAgIFxuICAgIC8vIFJlcXVlc3QgZ2VvbG9jYXRpb24gZnJvbSB1c2VyIChicm93c2VyIHdpbGwgcHJvbXB0KVxuICAgIGNvbnN0IHBvc2l0aW9uID0gYXdhaXQgdGhpcy5nZW9sb2NhdGlvblNlcnZpY2UuZ2V0Q3VycmVudFBvc2l0aW9uKCk7XG4gICAgXG4gICAgaWYgKHBvc2l0aW9uKSB7XG4gICAgICB0aGlzLmdlb0xvY2F0aW9uU3RhdHVzID0gJ2FjdGl2ZSc7XG4gICAgICB0aGlzLnJlcG9ydEdlb1N0YXR1cyhwb3NpdGlvbi5sYXRpdHVkZSwgcG9zaXRpb24ubG9uZ2l0dWRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5nZW9Mb2NhdGlvblN0YXR1cyA9ICdkZW5pZWQnO1xuICAgICAgdGhpcy5kZW55R2VvTG9jYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICAvKiogU3RhcnQgZ2VvbG9jYXRpb24gdmVyaWZpY2F0aW9uIChjYWxsZWQgZnJvbSB0ZW1wbGF0ZSBidXR0b24pICovXG4gIHB1YmxpYyBhc3luYyBzdGFydEdlb1ZlcmlmaWNhdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnVzZXJHZW9WaWV3U3RhdGUgPSBVc2VyR2VvVmlld1N0YXRlLlZFUklGWUlORztcblxuICAgIC8vIENsZWFyIGFueSBjYWNoZWQgcG9zaXRpb24gdG8gZm9yY2UgcmUtcHJvbXB0aW5nXG4gICAgdGhpcy5nZW9sb2NhdGlvblNlcnZpY2UuY2xlYXJDYWNoZSgpO1xuICAgIFxuICAgIC8vIFJlcXVlc3QgZ2VvbG9jYXRpb24gZnJvbSB1c2VyIChicm93c2VyIHdpbGwgcHJvbXB0KVxuICAgIGNvbnN0IHBvc2l0aW9uID0gYXdhaXQgdGhpcy5nZW9sb2NhdGlvblNlcnZpY2UuZ2V0Q3VycmVudFBvc2l0aW9uKCk7XG4gICAgXG4gICAgaWYgKHBvc2l0aW9uKSB7XG4gICAgICB0aGlzLmdlb0xvY2F0aW9uU3RhdHVzID0gJ2FjdGl2ZSc7XG4gICAgICB0aGlzLnVzZXJHZW9WaWV3U3RhdGUgPSBVc2VyR2VvVmlld1N0YXRlLlZFUklGSUVEO1xuICAgICAgdGhpcy5yZXBvcnRHZW9TdGF0dXMocG9zaXRpb24ubGF0aXR1ZGUsIHBvc2l0aW9uLmxvbmdpdHVkZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ2VvTG9jYXRpb25TdGF0dXMgPSAnZGVuaWVkJztcbiAgICAgIHRoaXMudXNlckdlb1ZpZXdTdGF0ZSA9IFVzZXJHZW9WaWV3U3RhdGUuREVOSUVEO1xuICAgICAgdGhpcy5kZW55R2VvTG9jYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVwb3J0IGdyYW50ZWQgZ2VvbG9jYXRpb24gdG8gYmFja2VuZC5cbiAgICogSU1QT1JUQU5UOiBPbmx5IGNhbGwgd2l0aCB2YWxpZCBjb29yZGluYXRlcy5cbiAgICovXG4gIHByaXZhdGUgcmVwb3J0R2VvU3RhdHVzKGxhdGl0dWRlOiBudW1iZXIsIGxvbmdpdHVkZTogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnZpZGVvQ2FsbElkKSB7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBjb29yZGluYXRlcyBhcmUgcHJlc2VudFxuICAgIGlmIChsYXRpdHVkZSA9PT0gdW5kZWZpbmVkIHx8IGxhdGl0dWRlID09PSBudWxsIHx8IGxvbmdpdHVkZSA9PT0gdW5kZWZpbmVkIHx8IGxvbmdpdHVkZSA9PT0gbnVsbCkge1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYm9keTogUHJveHlWaWRlb1VzZXJNb2RpZnlSZXF1ZXN0ID0ge1xuICAgICAgdXNlcklkOiB0aGlzLnVzZXJJZCxcbiAgICAgIHZpZGVvQ2FsbElkOiB0aGlzLnZpZGVvQ2FsbElkLFxuICAgICAgYWN0aW9uOiBVc2VyQ2FsbEFjdGlvbi5BQ1RJVkFURV9HRU9MT0NBVElPTixcbiAgICAgIGxhdGl0dWRlLFxuICAgICAgbG9uZ2l0dWRlLFxuICAgIH07XG5cblxuICAgIHRoaXMudGFzU2VydmljZS5tb2RpZnlQcm94eVZpZGVvVXNlcihib2R5KS5zdWJzY3JpYmUoe1xuXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVwb3J0IGRlbmllZCBnZW9sb2NhdGlvbiB0byBiYWNrZW5kLlxuICAgKi9cbiAgcHJpdmF0ZSBkZW55R2VvTG9jYXRpb24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnZpZGVvQ2FsbElkKSB7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBib2R5OiBQcm94eVZpZGVvVXNlck1vZGlmeVJlcXVlc3QgPSB7XG4gICAgICB1c2VySWQ6IHRoaXMudXNlcklkLFxuICAgICAgdmlkZW9DYWxsSWQ6IHRoaXMudmlkZW9DYWxsSWQsXG4gICAgICBhY3Rpb246IFVzZXJDYWxsQWN0aW9uLkRFTllfR0VPTE9DQVRJT04sXG4gICAgfTtcblxuXG4gICAgdGhpcy50YXNTZXJ2aWNlLm1vZGlmeVByb3h5VmlkZW9Vc2VyKGJvZHkpLnN1YnNjcmliZSh7XG5cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNhbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNSZXR1cm5pbmdGcm9tUGlwKSB7XG4gICAgICAvLyBSZXR1cm5pbmcgZnJvbSBQaVAgLSBqdXN0IG1vdmUgdmlkZW9zIGJhY2tcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy50YXNTZXJ2aWNlLm1vdmVWaWRlb3NUb0Z1bGxzY3JlZW4oKSwgMTAwKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2Vzc2lvbklkICYmIHRoaXMudG9rZW4pIHtcbiAgICAgIC8vIE5ldyBjYWxsIC0gY29ubmVjdCB0byBzZXNzaW9uXG4gICAgICB0aGlzLnRhc1NlcnZpY2VcbiAgICAgICAgLmNvbm5lY3RTZXNzaW9uKFxuICAgICAgICAgIHRoaXMuc2Vzc2lvbklkLFxuICAgICAgICAgIHRoaXMudG9rZW4sXG4gICAgICAgICAgJ3B1Ymxpc2hlci1jb250YWluZXInLFxuICAgICAgICAgICdzdWJzY3JpYmVyLWNvbnRhaW5lcicsXG4gICAgICAgICAgdGhpcy5idXNpbmVzc1JvbGVcbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNvbm5lY3RpbmcgdG8gdmlkZW8gY2FsbDonLCBlcnIpO1xuICAgICAgICB9KTtcbiAgICAgIFxuICAgICAgLy8gU3RhcnQgc3RhdHVzIHBvbGxpbmcgd2l0aCBzaG9ydGVyIGludGVydmFsICg1cykgdG8gZGV0ZWN0IG93bmVyIGxlYXZpbmcvbG9jYXRpb24gcmVxdWVzdHNcbiAgICAgIGlmICh0aGlzLmFwcG9pbnRtZW50SWQpIHtcbiAgICAgICAgdGhpcy50YXNTZXJ2aWNlLnN0YXJ0U3RhdHVzUG9sbGluZyh7XG4gICAgICAgICAgYXBwb2ludG1lbnRJZDogdGhpcy5hcHBvaW50bWVudElkLFxuICAgICAgICAgIHRlbmFudDogdGhpcy50ZW5hbnQsXG4gICAgICAgICAgYnVzaW5lc3NSb2xlOiB0aGlzLmJ1c2luZXNzUm9sZSxcbiAgICAgICAgICByb29tVHlwZTogdW5kZWZpbmVkLCAvLyBSb29tVHlwZSBtaWdodCBiZSBuZWVkZWQgaWYgYXZhaWxhYmxlXG4gICAgICAgICAgZW50aXR5SWQ6IHVuZGVmaW5lZCwgLy8gRW50aXR5SWQgbWlnaHQgYmUgbmVlZGVkIGlmIGF2YWlsYWJsZVxuICAgICAgICAgIHNlc3Npb25JZDogdGhpcy5zZXNzaW9uSWRcbiAgICAgICAgfSwgNTAwMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNldFZpZGVvUG9zaXRpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IHB1Ymxpc2hlckVsID0gdGhpcy5wdWJsaXNoZXJDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3Qgc3Vic2NyaWJlckVsID0gdGhpcy5zdWJzY3JpYmVyQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKHB1Ymxpc2hlckVsKSB7XG4gICAgICBwdWJsaXNoZXJFbC5yZW1vdmVBdHRyaWJ1dGUoJ3N0eWxlJyk7XG4gICAgICBwdWJsaXNoZXJFbC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEteCcpO1xuICAgICAgcHVibGlzaGVyRWwucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXknKTtcbiAgICB9XG5cbiAgICBpZiAoc3Vic2NyaWJlckVsKSB7XG4gICAgICBzdWJzY3JpYmVyRWwucmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpO1xuICAgICAgc3Vic2NyaWJlckVsLnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS14Jyk7XG4gICAgICBzdWJzY3JpYmVyRWwucmVtb3ZlQXR0cmlidXRlKCdkYXRhLXknKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRJbnRlcmFjdCgpOiB2b2lkIHtcbiAgICBpbnRlcmFjdCgnLnB1Ymxpc2hlci12aWV3JykudW5zZXQoKTtcblxuICAgIGludGVyYWN0KCcucHVibGlzaGVyLXZpZXcnKVxuICAgICAgLmRyYWdnYWJsZSh7XG4gICAgICAgIGluZXJ0aWE6IHRydWUsXG4gICAgICAgIG1vZGlmaWVyczogW1xuICAgICAgICAgIGludGVyYWN0Lm1vZGlmaWVycy5yZXN0cmljdFJlY3Qoe1xuICAgICAgICAgICAgcmVzdHJpY3Rpb246ICdwYXJlbnQnLFxuICAgICAgICAgICAgZW5kT25seTogdHJ1ZSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgICAgYXV0b1Njcm9sbDogdHJ1ZSxcbiAgICAgICAgbGlzdGVuZXJzOiB7XG4gICAgICAgICAgbW92ZTogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgICAgICAgICBjb25zdCB4ID0gKHBhcnNlRmxvYXQodGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS14JykpIHx8IDApICsgZXZlbnQuZHg7XG4gICAgICAgICAgICBjb25zdCB5ID0gKHBhcnNlRmxvYXQodGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS15JykpIHx8IDApICsgZXZlbnQuZHk7XG5cbiAgICAgICAgICAgIHRhcmdldC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKCR7eH1weCwgJHt5fXB4KWA7XG4gICAgICAgICAgICB0YXJnZXQuc2V0QXR0cmlidXRlKCdkYXRhLXgnLCBTdHJpbmcoeCkpO1xuICAgICAgICAgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZSgnZGF0YS15JywgU3RyaW5nKHkpKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5yZXNpemFibGUoe1xuICAgICAgICBlZGdlczogeyBsZWZ0OiBmYWxzZSwgcmlnaHQ6IHRydWUsIGJvdHRvbTogdHJ1ZSwgdG9wOiBmYWxzZSB9LFxuICAgICAgICBsaXN0ZW5lcnM6IHtcbiAgICAgICAgICBtb3ZlOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcbiAgICAgICAgICAgIGxldCB4ID0gcGFyc2VGbG9hdCh0YXJnZXQuZ2V0QXR0cmlidXRlKCdkYXRhLXgnKSkgfHwgMDtcbiAgICAgICAgICAgIGxldCB5ID0gcGFyc2VGbG9hdCh0YXJnZXQuZ2V0QXR0cmlidXRlKCdkYXRhLXknKSkgfHwgMDtcblxuICAgICAgICAgICAgdGFyZ2V0LnN0eWxlLndpZHRoID0gYCR7ZXZlbnQucmVjdC53aWR0aH1weGA7XG4gICAgICAgICAgICB0YXJnZXQuc3R5bGUuaGVpZ2h0ID0gYCR7ZXZlbnQucmVjdC5oZWlnaHR9cHhgO1xuXG4gICAgICAgICAgICB4ICs9IGV2ZW50LmRlbHRhUmVjdC5sZWZ0O1xuICAgICAgICAgICAgeSArPSBldmVudC5kZWx0YVJlY3QudG9wO1xuXG4gICAgICAgICAgICB0YXJnZXQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgke3h9cHgsICR7eX1weClgO1xuICAgICAgICAgICAgdGFyZ2V0LnNldEF0dHJpYnV0ZSgnZGF0YS14JywgU3RyaW5nKHgpKTtcbiAgICAgICAgICAgIHRhcmdldC5zZXRBdHRyaWJ1dGUoJ2RhdGEteScsIFN0cmluZyh5KSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbW9kaWZpZXJzOiBbXG4gICAgICAgICAgaW50ZXJhY3QubW9kaWZpZXJzLnJlc3RyaWN0RWRnZXMoeyBvdXRlcjogJ3BhcmVudCcgfSksXG4gICAgICAgICAgaW50ZXJhY3QubW9kaWZpZXJzLnJlc3RyaWN0U2l6ZSh7IG1pbjogeyB3aWR0aDogMTUwLCBoZWlnaHQ6IDEwMCB9IH0pLFxuICAgICAgICAgIGludGVyYWN0Lm1vZGlmaWVycy5hc3BlY3RSYXRpbyh7IHJhdGlvOiAncHJlc2VydmUnIH0pLFxuICAgICAgICBdLFxuICAgICAgICBpbmVydGlhOiB0cnVlLFxuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0YXMtdmlkZW9jYWxsLXdyYXBwZXJcIj5cbiAgPGRpdiBjbGFzcz1cInRhcy12aWRlb2NhbGwtY29udGFpbmVyXCI+XG4gICAgPCEtLSBTdWJzY3JpYmVyIHZpZGVvIChsYXJnZSwgYmFja2dyb3VuZCkgLS0+XG4gICAgPGRpdlxuICAgICAgaWQ9XCJzdWJzY3JpYmVyLWNvbnRhaW5lclwiXG4gICAgICBbY2xhc3Muc3Vic2NyaWJlci12aWV3XT1cImlzUHVibGlzaGVyU21hbGxcIlxuICAgICAgW2NsYXNzLnB1Ymxpc2hlci12aWV3XT1cIiFpc1B1Ymxpc2hlclNtYWxsXCJcbiAgICAgICNzdWJzY3JpYmVyQ29udGFpbmVyXG4gICAgICAoZGJsY2xpY2spPVwib25Eb3VibGVDbGljaygpXCJcbiAgICA+PC9kaXY+XG5cbiAgICA8IS0tIFB1Ymxpc2hlciB2aWRlbyAoc21hbGwsIG92ZXJsYXkpIC0tPlxuICAgIDxkaXZcbiAgICAgIGlkPVwicHVibGlzaGVyLWNvbnRhaW5lclwiXG4gICAgICBbY2xhc3MucHVibGlzaGVyLXZpZXddPVwiaXNQdWJsaXNoZXJTbWFsbFwiXG4gICAgICBbY2xhc3Muc3Vic2NyaWJlci12aWV3XT1cIiFpc1B1Ymxpc2hlclNtYWxsXCJcbiAgICAgICNwdWJsaXNoZXJDb250YWluZXJcbiAgICAgIChkYmxjbGljayk9XCJvbkRvdWJsZUNsaWNrKClcIlxuICAgID48L2Rpdj5cblxuICAgIDwhLS0gQ2VudGVyZWQgYXZhdGFyIChzaG93biB3aGVuIG5vIHZpZGVvIHN0cmVhbSkgLS0+XG4gICAgPGRpdiBjbGFzcz1cImF2YXRhci1jb250YWluZXJcIiAqbmdJZj1cIiFoYXNWaWRlb1N0cmVhbVwiPlxuICAgICAgPHRhcy1hdmF0YXIgW25hbWVdPVwicGFydGljaXBhbnROYW1lXCIgW3NpemVdPVwiODBcIj48L3Rhcy1hdmF0YXI+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIENvbnRyb2xzIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjb250cm9scy1jb250YWluZXJcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJidG4gY29udHJvbC1idG4gbXV0ZS1idG5cIlxuICAgICAgICBbY2xhc3MubXV0ZWRdPVwiaXNNdXRlZFwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVNdXRlKClcIlxuICAgICAgICBbdGl0bGVdPVwiaXNNdXRlZCA/ICdBY3RpdmFyIG1pY3LDs2Zvbm8nIDogJ1NpbGVuY2lhciBtaWNyw7Nmb25vJ1wiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXNNdXRlZCA/ICdBY3RpdmFyIG1pY3LDs2Zvbm8nIDogJ1NpbGVuY2lhciBtaWNyw7Nmb25vJ1wiXG4gICAgICA+XG4gICAgICAgIDxpXG4gICAgICAgICAgY2xhc3M9XCJmYVwiXG4gICAgICAgICAgW2NsYXNzLmZhLW1pY3JvcGhvbmVdPVwiIWlzTXV0ZWRcIlxuICAgICAgICAgIFtjbGFzcy5mYS1taWNyb3Bob25lLXNsYXNoXT1cImlzTXV0ZWRcIlxuICAgICAgICA+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuIGNvbnRyb2wtYnRuIHN3YXAtYnRuXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVN3YXAoKVwiXG4gICAgICAgIHRpdGxlPVwiSW50ZXJjYW1iaWFyIHZpc3RhXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIkludGVyY2FtYmlhciB2aXN0YVwiXG4gICAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcmVmcmVzaFwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0biBjb250cm9sLWJ0biBwaXAtYnRuXCJcbiAgICAgICAgKGNsaWNrKT1cIm1pbmltaXplKClcIlxuICAgICAgICB0aXRsZT1cIk1pbmltaXphciAoUGljdHVyZSBpbiBQaWN0dXJlKVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJNaW5pbWl6YXIgdmlkZW9sbGFtYWRhXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jb21wcmVzc1wiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0biBjb250cm9sLWJ0biBoYW5ndXAtYnRuXCJcbiAgICAgICAgKGNsaWNrKT1cImhhbmdVcCgpXCJcbiAgICAgICAgdGl0bGU9XCJGaW5hbGl6YXIgbGxhbWFkYVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJGaW5hbGl6YXIgbGxhbWFkYVwiXG4gICAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGhvbmVcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gV2FpdGluZyByb29tIG5vdGlmaWNhdGlvbiAoc2hvd24gZm9yIE9XTkVSL0JBQ0tPRkZJQ0Ugb25seSkgLS0+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ3YWl0aW5nLW5vdGlmaWNhdGlvblwiXG4gICAgICAqbmdJZj1cIndhaXRpbmdSb29tVXNlcnMubGVuZ3RoID4gMCAmJiBjYW5BZG1pdFVzZXJzXCJcbiAgICAgIHJvbGU9XCJhbGVydFwiXG4gICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwid2FpdGluZy10ZXh0XCI+XG4gICAgICAgIHt7IHdhaXRpbmdSb29tVXNlcnNbMF0ubmFtZSB9fSBlc3TDoSBlbiBsYSBzYWxhIGRlIGVzcGVyYS5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJhZG1pdC1idG5cIlxuICAgICAgICAoY2xpY2spPVwiYWRtaXRVc2VyKHdhaXRpbmdSb29tVXNlcnNbMF0udXNlcklkKVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJBZG1pdGlyIHVzdWFyaW9cIlxuICAgICAgPlxuICAgICAgICBBZG1pdGlyXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJkaXNtaXNzLWJ0blwiXG4gICAgICAgIChjbGljayk9XCJkaXNtaXNzV2FpdGluZ05vdGlmaWNhdGlvbih3YWl0aW5nUm9vbVVzZXJzWzBdLnVzZXJJZClcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiQ2VycmFyIG5vdGlmaWNhY2nDs25cIlxuICAgICAgPlxuICAgICAgICDDl1xuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gT3duZXIgZ2VvbG9jYXRpb24gcGFuZWwgKGZvciBvd25lcnMgdG8gcmVxdWVzdCB1c2VyIGxvY2F0aW9uKSAtLT5cbiAgPGRpdiBjbGFzcz1cInVzZXItZ2VvLXBhbmVsXCIgKm5nSWY9XCJzaG91bGRTaG93VXNlckdlb1BhbmVsIHx8IGRldk1vZGVFbmFibGVkXCI+XG4gICAgPGRpdiBjbGFzcz1cInVzZXItZ2VvLWhlYWRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZS1yb3dcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1tYXAtbWFya2VyIGhlYWRlci1pY29uXCIgKm5nSWY9XCJ1c2VyR2VvVmlld1N0YXRlICE9PSBVc2VyR2VvVmlld1N0YXRlLklOSVRJQUxcIj48L2k+XG4gICAgICAgIDxoMz5VYmljYWNpw7NuIGRlbCBjb2xhYm9yYWRvcjwvaDM+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJjbG9zZS1idG5cIiAoY2xpY2spPVwic2V0VXNlckdlb1ZpZXdTdGF0ZShVc2VyR2VvVmlld1N0YXRlLkhJRERFTilcIiBhcmlhLWxhYmVsPVwiQ2VycmFyXCI+w5c8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdlby1kZXNjcmlwdGlvblwiICpuZ0lmPVwidXNlckdlb1ZpZXdTdGF0ZSAhPT0gVXNlckdlb1ZpZXdTdGF0ZS5WRVJJRklFRCAmJiB1c2VyR2VvVmlld1N0YXRlICE9PSBVc2VyR2VvVmlld1N0YXRlLkRFTklFRFwiPlxuICAgICAgPHA+RWwgY29sYWJvcmFkb3IgdGllbmUgbGEgdWJpY2FjacOzbiBkZXNhY3RpdmFkYSwgc29saWNpdGEgcXVlIGxhIGFjdGl2ZS48L3A+XG4gICAgICA8cD5Fc3RhIGFjY2nDs24gbm9zIHBlcm1pdGlyw6EgZGlzcG9uaWJpbGl6YXIgYWxndW5hcyBhbGVydGFzLjwvcD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdlby1jb250ZW50XCI+XG4gICAgICA8IS0tIElOSVRJQUwgc3RhdGU6IGp1c3QgdGhlIGJ1dHRvbiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2VyR2VvVmlld1N0YXRlID09PSBVc2VyR2VvVmlld1N0YXRlLklOSVRJQUxcIj5cbiAgICAgICAgPCEtLSBzcGFjZXIgLS0+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBWRVJJRllJTkcgc3RhdGU6IHNwaW5uZXIgKyBsb2FkaW5nIG1lc3NhZ2UgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXNlckdlb1ZpZXdTdGF0ZSA9PT0gVXNlckdlb1ZpZXdTdGF0ZS5WRVJJRllJTkdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItZ2VvLXZlcmlmeWluZ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnZW8tc3Bpbm5lci1sYXJnZVwiPjwvZGl2PlxuICAgICAgICAgIDxwIGNsYXNzPVwidmVyaWZ5aW5nLXRpdGxlXCI+VmVyaWZpY2FuZG8gdWJpY2FjacOzbi4uLjwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cInZlcmlmeWluZy1zdWJ0aXRsZVwiPkVzdG8gcHVlZGUgdGFyZGFyIHVub3Mgc2VndW5kb3MuPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIFZFUklGSUVEIHN0YXRlOiBob21lIGljb24gd2l0aCBzcGFya2xlcyAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2VyR2VvVmlld1N0YXRlID09PSBVc2VyR2VvVmlld1N0YXRlLlZFUklGSUVEXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdlby12ZXJpZmllZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2ZXJpZmllZC1pY29uLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJob21lLWljb25cIiBbaW5uZXJIVE1MXT1cImhvbWVJY29uXCI+PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxwIGNsYXNzPVwidmVyaWZpZWQtdGl0bGVcIj5MYSB1YmljYWNpw7NuIGZ1ZSB2ZXJpZmljYWRhPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIERFTklFRCBzdGF0ZTogZXJyb3IgaWNvbiBhbmQgbWVzc2FnZSAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2VyR2VvVmlld1N0YXRlID09PSBVc2VyR2VvVmlld1N0YXRlLkRFTklFRFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1nZW8tZGVuaWVkXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRlbmllZC1pY29uLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10aW1lcy1jaXJjbGVcIj48L2k+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHAgY2xhc3M9XCJkZW5pZWQtdGl0bGVcIj5MYSB1YmljYWNpw7NuIGZ1ZSByZWNoYXphZGE8L3A+XG4gICAgICAgICAgPHAgY2xhc3M9XCJkZW5pZWQtc3VidGl0bGVcIj5FbCBjb2xhYm9yYWRvciBubyBwZXJtaXRpw7MgZWwgYWNjZXNvIGEgc3UgdWJpY2FjacOzbi48L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEJ1dHRvbiAoaGlkZGVuIGluIHZlcmlmaWVkIGFuZCBkZW5pZWQgc3RhdGVzKSAtLT5cbiAgICA8YnV0dG9uIFxuICAgICAgY2xhc3M9XCJ1c2VyLWdlby1idG5cIiBcbiAgICAgICpuZ0lmPVwidXNlckdlb1ZpZXdTdGF0ZSAhPT0gVXNlckdlb1ZpZXdTdGF0ZS5WRVJJRklFRCAmJiB1c2VyR2VvVmlld1N0YXRlICE9PSBVc2VyR2VvVmlld1N0YXRlLkRFTklFRFwiXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwidXNlckdlb1ZpZXdTdGF0ZSA9PT0gVXNlckdlb1ZpZXdTdGF0ZS5WRVJJRllJTkdcIlxuICAgICAgW2Rpc2FibGVkXT1cInVzZXJHZW9WaWV3U3RhdGUgPT09IFVzZXJHZW9WaWV3U3RhdGUuVkVSSUZZSU5HXCJcbiAgICAgIChjbGljayk9XCJyZXF1ZXN0VXNlckxvY2F0aW9uKClcIj5cbiAgICAgIFZlcmlmaWNhciB1YmljYWNpw7NuXG4gICAgPC9idXR0b24+XG5cbiAgICA8IS0tIERldiBjb250cm9scyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZGV2LWNvbnRyb2xzXCIgKm5nSWY9XCJkZXZNb2RlRW5hYmxlZFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJkZXYtbGFiZWxcIj5EZXY6PC9zcGFuPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImRldi1idG5cIiAoY2xpY2spPVwic2V0VXNlckdlb1ZpZXdTdGF0ZShVc2VyR2VvVmlld1N0YXRlLklOSVRJQUwpXCI+SW5pdGlhbDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImRldi1idG5cIiAoY2xpY2spPVwic2V0VXNlckdlb1ZpZXdTdGF0ZShVc2VyR2VvVmlld1N0YXRlLlZFUklGWUlORylcIj5WZXJpZnlpbmc8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJkZXYtYnRuXCIgKGNsaWNrKT1cInNldFVzZXJHZW9WaWV3U3RhdGUoVXNlckdlb1ZpZXdTdGF0ZS5WRVJJRklFRClcIj5WZXJpZmllZDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImRldi1idG5cIiAoY2xpY2spPVwic2V0VXNlckdlb1ZpZXdTdGF0ZShVc2VyR2VvVmlld1N0YXRlLkRFTklFRClcIj5EZW5pZWQ8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJkZXYtYnRuXCIgKGNsaWNrKT1cInNldFVzZXJHZW9WaWV3U3RhdGUoVXNlckdlb1ZpZXdTdGF0ZS5ISURERU4pXCI+SGlkZTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG4iXX0=
@@ -7,7 +7,6 @@ import { TasVideocallComponent } from './components/tas-videocall/tas-videocall.
7
7
  import { TasFloatingCallComponent } from './components/tas-floating-call/tas-floating-call.component';
8
8
  import { TasWaitingRoomComponent } from './components/tas-waiting-room/tas-waiting-room.component';
9
9
  import { TasAvatarComponent } from './components/tas-avatar/tas-avatar.component';
10
- import { TasIncomingAppointmentComponent } from './components/tas-incoming-appointment/tas-incoming-appointment.component';
11
10
  import { TasFeedbackModalComponent } from './components/tas-feedback-modal/tas-feedback-modal.component';
12
11
  import { TasService } from './services/tas.service';
13
12
  import { TAS_CONFIG, TAS_HTTP_CLIENT, } from './config/tas.config';
@@ -59,13 +58,11 @@ TasUellSdkModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
59
58
  TasFloatingCallComponent,
60
59
  TasWaitingRoomComponent,
61
60
  TasAvatarComponent,
62
- TasIncomingAppointmentComponent,
63
61
  TasFeedbackModalComponent], imports: [CommonModule, FormsModule, NgbTooltipModule], exports: [TasButtonComponent,
64
62
  TasVideocallComponent,
65
63
  TasFloatingCallComponent,
66
64
  TasWaitingRoomComponent,
67
65
  TasAvatarComponent,
68
- TasIncomingAppointmentComponent,
69
66
  TasFeedbackModalComponent] });
70
67
  TasUellSdkModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TasUellSdkModule, imports: [[CommonModule, FormsModule, NgbTooltipModule]] });
71
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TasUellSdkModule, decorators: [{
@@ -77,7 +74,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
77
74
  TasFloatingCallComponent,
78
75
  TasWaitingRoomComponent,
79
76
  TasAvatarComponent,
80
- TasIncomingAppointmentComponent,
81
77
  TasFeedbackModalComponent,
82
78
  ],
83
79
  imports: [CommonModule, FormsModule, NgbTooltipModule],
@@ -87,9 +83,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
87
83
  TasFloatingCallComponent,
88
84
  TasWaitingRoomComponent,
89
85
  TasAvatarComponent,
90
- TasIncomingAppointmentComponent,
91
86
  TasFeedbackModalComponent,
92
87
  ],
93
88
  }]
94
89
  }] });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzLXVlbGwtc2RrLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Rhcy11ZWxsLXNkay9zcmMvbGliL3Rhcy11ZWxsLXNkay5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUMzSCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxFQUNMLFVBQVUsRUFDVixlQUFlLEdBR2hCLE1BQU0scUJBQXFCLENBQUM7O0FBdUI3QixNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BNEJHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUdkO1FBQ0MsT0FBTztZQUNMLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRTtnQkFDakQsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUMxRCxVQUFVO2FBQ1g7U0FDRixDQUFDO0lBQ0osQ0FBQzs7OEdBMUNVLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQW5CekIsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQix3QkFBd0I7UUFDeEIsdUJBQXVCO1FBQ3ZCLGtCQUFrQjtRQUNsQiwrQkFBK0I7UUFDL0IseUJBQXlCLGFBRWpCLFlBQVksRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLGFBRW5ELGtCQUFrQjtRQUNsQixxQkFBcUI7UUFDckIsd0JBQXdCO1FBQ3hCLHVCQUF1QjtRQUN2QixrQkFBa0I7UUFDbEIsK0JBQStCO1FBQy9CLHlCQUF5QjsrR0FHaEIsZ0JBQWdCLFlBWGxCLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQzs0RkFXM0MsZ0JBQWdCO2tCQXJCNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLHdCQUF3Qjt3QkFDeEIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLCtCQUErQjt3QkFDL0IseUJBQXlCO3FCQUMxQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixDQUFDO29CQUN0RCxPQUFPLEVBQUU7d0JBQ1Asa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLHdCQUF3Qjt3QkFDeEIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLCtCQUErQjt3QkFDL0IseUJBQXlCO3FCQUMxQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ2JUb29sdGlwTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgVGFzQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Rhcy1idG4vdGFzLWJ0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFzVmlkZW9jYWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Rhcy12aWRlb2NhbGwvdGFzLXZpZGVvY2FsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFzRmxvYXRpbmdDYWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Rhcy1mbG9hdGluZy1jYWxsL3Rhcy1mbG9hdGluZy1jYWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYXNXYWl0aW5nUm9vbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YXMtd2FpdGluZy1yb29tL3Rhcy13YWl0aW5nLXJvb20uY29tcG9uZW50JztcbmltcG9ydCB7IFRhc0F2YXRhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YXMtYXZhdGFyL3Rhcy1hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRhc0luY29taW5nQXBwb2ludG1lbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFzLWluY29taW5nLWFwcG9pbnRtZW50L3Rhcy1pbmNvbWluZy1hcHBvaW50bWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFzRmVlZGJhY2tNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YXMtZmVlZGJhY2stbW9kYWwvdGFzLWZlZWRiYWNrLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYXNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90YXMuc2VydmljZSc7XG5pbXBvcnQge1xuICBUQVNfQ09ORklHLFxuICBUQVNfSFRUUF9DTElFTlQsXG4gIFRhc0NvbmZpZyxcbiAgVGFzSHR0cENsaWVudCxcbn0gZnJvbSAnLi9jb25maWcvdGFzLmNvbmZpZyc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFRhc0J1dHRvbkNvbXBvbmVudCxcbiAgICBUYXNWaWRlb2NhbGxDb21wb25lbnQsXG4gICAgVGFzRmxvYXRpbmdDYWxsQ29tcG9uZW50LFxuICAgIFRhc1dhaXRpbmdSb29tQ29tcG9uZW50LFxuICAgIFRhc0F2YXRhckNvbXBvbmVudCxcbiAgICBUYXNJbmNvbWluZ0FwcG9pbnRtZW50Q29tcG9uZW50LFxuICAgIFRhc0ZlZWRiYWNrTW9kYWxDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBOZ2JUb29sdGlwTW9kdWxlXSxcbiAgZXhwb3J0czogW1xuICAgIFRhc0J1dHRvbkNvbXBvbmVudCxcbiAgICBUYXNWaWRlb2NhbGxDb21wb25lbnQsXG4gICAgVGFzRmxvYXRpbmdDYWxsQ29tcG9uZW50LFxuICAgIFRhc1dhaXRpbmdSb29tQ29tcG9uZW50LFxuICAgIFRhc0F2YXRhckNvbXBvbmVudCxcbiAgICBUYXNJbmNvbWluZ0FwcG9pbnRtZW50Q29tcG9uZW50LFxuICAgIFRhc0ZlZWRiYWNrTW9kYWxDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRhc1VlbGxTZGtNb2R1bGUge1xuICAvKipcbiAgICogVXNlIGZvclJvb3QoKSB0byBjb25maWd1cmUgdGhlIFRBUyBTREsgbW9kdWxlIHdpdGggcmVxdWlyZWQgZGVwZW5kZW5jaWVzLlxuICAgKiBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbmNlIGluIHlvdXIgcm9vdCBBcHBNb2R1bGUuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogaW1wb3J0IHsgVGFzVWVsbFNka01vZHVsZSwgVGFzSHR0cENsaWVudCB9IGZyb20gJ3Rhcy11ZWxsLXNkayc7XG4gICAqXG4gICAqIC8vIENyZWF0ZSBhbiBhZGFwdGVyIHRoYXQgaW1wbGVtZW50cyBUYXNIdHRwQ2xpZW50XG4gICAqIEBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG4gICAqIGV4cG9ydCBjbGFzcyBNeUh0dHBBZGFwdGVyIGltcGxlbWVudHMgVGFzSHR0cENsaWVudCB7XG4gICAqICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7fVxuICAgKiAgIHBvc3Q8VD4odXJsOiBzdHJpbmcsIG9wdGlvbnM6IHsgYm9keTogYW55OyBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB9KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAqICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4odXJsLCBvcHRpb25zLmJvZHksIHsgaGVhZGVyczogb3B0aW9ucy5oZWFkZXJzIH0pO1xuICAgKiAgIH1cbiAgICogfVxuICAgKlxuICAgKiAvLyBJbiB5b3VyIEFwcE1vZHVsZVxuICAgKiBATmdNb2R1bGUoe1xuICAgKiAgIGltcG9ydHM6IFtcbiAgICogICAgIFRhc1VlbGxTZGtNb2R1bGUuZm9yUm9vdCh7XG4gICAqICAgICAgIGNvbmZpZzogeyB0b2tCb3hBcGlLZXk6ICdZT1VSX1RPS0JPWF9BUElfS0VZJyB9LFxuICAgKiAgICAgICBodHRwQ2xpZW50OiBNeUh0dHBBZGFwdGVyXG4gICAqICAgICB9KVxuICAgKiAgIF1cbiAgICogfSlcbiAgICogZXhwb3J0IGNsYXNzIEFwcE1vZHVsZSB7IH1cbiAgICogYGBgXG4gICAqL1xuICBzdGF0aWMgZm9yUm9vdChvcHRpb25zOiB7XG4gICAgY29uZmlnOiBUYXNDb25maWc7XG4gICAgaHR0cENsaWVudDogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVGFzSHR0cENsaWVudDtcbiAgfSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8VGFzVWVsbFNka01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVGFzVWVsbFNka01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IFRBU19DT05GSUcsIHVzZVZhbHVlOiBvcHRpb25zLmNvbmZpZyB9LFxuICAgICAgICB7IHByb3ZpZGU6IFRBU19IVFRQX0NMSUVOVCwgdXNlQ2xhc3M6IG9wdGlvbnMuaHR0cENsaWVudCB9LFxuICAgICAgICBUYXNTZXJ2aWNlLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzLXVlbGwtc2RrLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Rhcy11ZWxsLXNkay9zcmMvbGliL3Rhcy11ZWxsLXNkay5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxFQUNMLFVBQVUsRUFDVixlQUFlLEdBR2hCLE1BQU0scUJBQXFCLENBQUM7O0FBcUI3QixNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BNEJHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUdkO1FBQ0MsT0FBTztZQUNMLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRTtnQkFDakQsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFO2dCQUMxRCxVQUFVO2FBQ1g7U0FDRixDQUFDO0lBQ0osQ0FBQzs7OEdBMUNVLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQWpCekIsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQix3QkFBd0I7UUFDeEIsdUJBQXVCO1FBQ3ZCLGtCQUFrQjtRQUNsQix5QkFBeUIsYUFFakIsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsYUFFbkQsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQix3QkFBd0I7UUFDeEIsdUJBQXVCO1FBQ3ZCLGtCQUFrQjtRQUNsQix5QkFBeUI7K0dBR2hCLGdCQUFnQixZQVZsQixDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLENBQUM7NEZBVTNDLGdCQUFnQjtrQkFuQjVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGtCQUFrQjt3QkFDbEIscUJBQXFCO3dCQUNyQix3QkFBd0I7d0JBQ3hCLHVCQUF1Qjt3QkFDdkIsa0JBQWtCO3dCQUNsQix5QkFBeUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ3RELE9BQU8sRUFBRTt3QkFDUCxrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsd0JBQXdCO3dCQUN4Qix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIseUJBQXlCO3FCQUMxQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ2JUb29sdGlwTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgVGFzQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Rhcy1idG4vdGFzLWJ0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFzVmlkZW9jYWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Rhcy12aWRlb2NhbGwvdGFzLXZpZGVvY2FsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFzRmxvYXRpbmdDYWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Rhcy1mbG9hdGluZy1jYWxsL3Rhcy1mbG9hdGluZy1jYWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYXNXYWl0aW5nUm9vbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YXMtd2FpdGluZy1yb29tL3Rhcy13YWl0aW5nLXJvb20uY29tcG9uZW50JztcbmltcG9ydCB7IFRhc0F2YXRhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YXMtYXZhdGFyL3Rhcy1hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRhc0ZlZWRiYWNrTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFzLWZlZWRiYWNrLW1vZGFsL3Rhcy1mZWVkYmFjay1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdGFzLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgVEFTX0NPTkZJRyxcbiAgVEFTX0hUVFBfQ0xJRU5ULFxuICBUYXNDb25maWcsXG4gIFRhc0h0dHBDbGllbnQsXG59IGZyb20gJy4vY29uZmlnL3Rhcy5jb25maWcnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBUYXNCdXR0b25Db21wb25lbnQsXG4gICAgVGFzVmlkZW9jYWxsQ29tcG9uZW50LFxuICAgIFRhc0Zsb2F0aW5nQ2FsbENvbXBvbmVudCxcbiAgICBUYXNXYWl0aW5nUm9vbUNvbXBvbmVudCxcbiAgICBUYXNBdmF0YXJDb21wb25lbnQsXG4gICAgVGFzRmVlZGJhY2tNb2RhbENvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIE5nYlRvb2x0aXBNb2R1bGVdLFxuICBleHBvcnRzOiBbXG4gICAgVGFzQnV0dG9uQ29tcG9uZW50LFxuICAgIFRhc1ZpZGVvY2FsbENvbXBvbmVudCxcbiAgICBUYXNGbG9hdGluZ0NhbGxDb21wb25lbnQsXG4gICAgVGFzV2FpdGluZ1Jvb21Db21wb25lbnQsXG4gICAgVGFzQXZhdGFyQ29tcG9uZW50LFxuICAgIFRhc0ZlZWRiYWNrTW9kYWxDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFRhc1VlbGxTZGtNb2R1bGUge1xuICAvKipcbiAgICogVXNlIGZvclJvb3QoKSB0byBjb25maWd1cmUgdGhlIFRBUyBTREsgbW9kdWxlIHdpdGggcmVxdWlyZWQgZGVwZW5kZW5jaWVzLlxuICAgKiBUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbmNlIGluIHlvdXIgcm9vdCBBcHBNb2R1bGUuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogaW1wb3J0IHsgVGFzVWVsbFNka01vZHVsZSwgVGFzSHR0cENsaWVudCB9IGZyb20gJ3Rhcy11ZWxsLXNkayc7XG4gICAqXG4gICAqIC8vIENyZWF0ZSBhbiBhZGFwdGVyIHRoYXQgaW1wbGVtZW50cyBUYXNIdHRwQ2xpZW50XG4gICAqIEBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG4gICAqIGV4cG9ydCBjbGFzcyBNeUh0dHBBZGFwdGVyIGltcGxlbWVudHMgVGFzSHR0cENsaWVudCB7XG4gICAqICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7fVxuICAgKiAgIHBvc3Q8VD4odXJsOiBzdHJpbmcsIG9wdGlvbnM6IHsgYm9keTogYW55OyBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB9KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAqICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4odXJsLCBvcHRpb25zLmJvZHksIHsgaGVhZGVyczogb3B0aW9ucy5oZWFkZXJzIH0pO1xuICAgKiAgIH1cbiAgICogfVxuICAgKlxuICAgKiAvLyBJbiB5b3VyIEFwcE1vZHVsZVxuICAgKiBATmdNb2R1bGUoe1xuICAgKiAgIGltcG9ydHM6IFtcbiAgICogICAgIFRhc1VlbGxTZGtNb2R1bGUuZm9yUm9vdCh7XG4gICAqICAgICAgIGNvbmZpZzogeyB0b2tCb3hBcGlLZXk6ICdZT1VSX1RPS0JPWF9BUElfS0VZJyB9LFxuICAgKiAgICAgICBodHRwQ2xpZW50OiBNeUh0dHBBZGFwdGVyXG4gICAqICAgICB9KVxuICAgKiAgIF1cbiAgICogfSlcbiAgICogZXhwb3J0IGNsYXNzIEFwcE1vZHVsZSB7IH1cbiAgICogYGBgXG4gICAqL1xuICBzdGF0aWMgZm9yUm9vdChvcHRpb25zOiB7XG4gICAgY29uZmlnOiBUYXNDb25maWc7XG4gICAgaHR0cENsaWVudDogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVGFzSHR0cENsaWVudDtcbiAgfSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8VGFzVWVsbFNka01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVGFzVWVsbFNka01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IFRBU19DT05GSUcsIHVzZVZhbHVlOiBvcHRpb25zLmNvbmZpZyB9LFxuICAgICAgICB7IHByb3ZpZGU6IFRBU19IVFRQX0NMSUVOVCwgdXNlQ2xhc3M6IG9wdGlvbnMuaHR0cENsaWVudCB9LFxuICAgICAgICBUYXNTZXJ2aWNlLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -15,8 +15,7 @@ export * from './lib/components/tas-waiting-room/tas-waiting-room.component';
15
15
  export * from './lib/components/tas-videocall/tas-videocall.component';
16
16
  export * from './lib/components/tas-floating-call/tas-floating-call.component';
17
17
  export * from './lib/components/tas-avatar/tas-avatar.component';
18
- export * from './lib/components/tas-incoming-appointment/tas-incoming-appointment.component';
19
18
  export * from './lib/components/tas-feedback-modal/tas-feedback-modal.component';
20
19
  // Module
21
20
  export * from './lib/tas-uell-sdk.module';
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3Rhcy11ZWxsLXNkay9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILDJCQUEyQjtBQUMzQixjQUFjLHlCQUF5QixDQUFDO0FBRXhDLGFBQWE7QUFDYixjQUFjLGlDQUFpQyxDQUFDO0FBRWhELFVBQVU7QUFDVixjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUVuRCxhQUFhO0FBQ2IsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsOEVBQThFLENBQUM7QUFDN0YsY0FBYyxrRUFBa0UsQ0FBQztBQUVqRixTQUFTO0FBQ1QsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdGFzLXVlbGwtc2RrXG4gKi9cblxuLy8gQ29uZmlndXJhdGlvbiBhbmQgdG9rZW5zXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25maWcvdGFzLmNvbmZpZyc7XG5cbi8vIEludGVyZmFjZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvdGFzLmludGVyZmFjZXMnO1xuXG4vLyBTZXJ2aWNlXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90YXMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9nZW9sb2NhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3Rhcy11dGlsaXR5LnNlcnZpY2UnO1xuXG4vLyBDb21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rhcy1idG4vdGFzLWJ0bi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90YXMtd2FpdGluZy1yb29tL3Rhcy13YWl0aW5nLXJvb20uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGFzLXZpZGVvY2FsbC90YXMtdmlkZW9jYWxsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rhcy1mbG9hdGluZy1jYWxsL3Rhcy1mbG9hdGluZy1jYWxsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rhcy1hdmF0YXIvdGFzLWF2YXRhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90YXMtaW5jb21pbmctYXBwb2ludG1lbnQvdGFzLWluY29taW5nLWFwcG9pbnRtZW50LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rhcy1mZWVkYmFjay1tb2RhbC90YXMtZmVlZGJhY2stbW9kYWwuY29tcG9uZW50JztcblxuLy8gTW9kdWxlXG5leHBvcnQgKiBmcm9tICcuL2xpYi90YXMtdWVsbC1zZGsubW9kdWxlJztcbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3Rhcy11ZWxsLXNkay9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILDJCQUEyQjtBQUMzQixjQUFjLHlCQUF5QixDQUFDO0FBRXhDLGFBQWE7QUFDYixjQUFjLGlDQUFpQyxDQUFDO0FBRWhELFVBQVU7QUFDVixjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUVuRCxhQUFhO0FBQ2IsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsa0VBQWtFLENBQUM7QUFFakYsU0FBUztBQUNULGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHRhcy11ZWxsLXNka1xuICovXG5cbi8vIENvbmZpZ3VyYXRpb24gYW5kIHRva2Vuc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlnL3Rhcy5jb25maWcnO1xuXG4vLyBJbnRlcmZhY2VzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL3Rhcy5pbnRlcmZhY2VzJztcblxuLy8gU2VydmljZVxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdGFzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZ2VvbG9jYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90YXMtdXRpbGl0eS5zZXJ2aWNlJztcblxuLy8gQ29tcG9uZW50c1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90YXMtYnRuL3Rhcy1idG4uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGFzLXdhaXRpbmctcm9vbS90YXMtd2FpdGluZy1yb29tLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Rhcy12aWRlb2NhbGwvdGFzLXZpZGVvY2FsbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90YXMtZmxvYXRpbmctY2FsbC90YXMtZmxvYXRpbmctY2FsbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90YXMtYXZhdGFyL3Rhcy1hdmF0YXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGFzLWZlZWRiYWNrLW1vZGFsL3Rhcy1mZWVkYmFjay1tb2RhbC5jb21wb25lbnQnO1xuXG4vLyBNb2R1bGVcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rhcy11ZWxsLXNkay5tb2R1bGUnO1xuIl19