@scion/workbench 18.0.0-beta.5 → 18.0.0-beta.6

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.
Files changed (34) hide show
  1. package/esm2022/lib/executor/single-task-executor.mjs +3 -3
  2. package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +5 -4
  3. package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.mjs +5 -4
  4. package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +9 -8
  5. package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +7 -8
  6. package/esm2022/lib/part/view-context-menu/text.component.mjs +16 -12
  7. package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +19 -19
  8. package/esm2022/lib/popup/popup.config.mjs +4 -13
  9. package/esm2022/lib/popup/popup.service.mjs +4 -9
  10. package/esm2022/lib/portal/wb-component-portal.mjs +4 -2
  11. package/esm2022/lib/routing//311/265workbench-router.service.mjs +11 -7
  12. package/esm2022/lib/view/view.component.mjs +22 -11
  13. package/esm2022/lib/view//311/265workbench-view.model.mjs +3 -5
  14. package/esm2022/lib/workbench-config.mjs +2 -2
  15. package/esm2022/lib/workbench.component.mjs +22 -2
  16. package/esm2022/lib/workbench.model.mjs +1 -1
  17. package/fesm2022/scion-workbench.mjs +114 -89
  18. package/fesm2022/scion-workbench.mjs.map +1 -1
  19. package/lib/executor/single-task-executor.d.ts +2 -2
  20. package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +2 -1
  21. package/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.d.ts +2 -1
  22. package/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.d.ts +2 -1
  23. package/lib/part/view-context-menu/text.component.d.ts +3 -4
  24. package/lib/part/view-context-menu/view-menu.service.d.ts +5 -5
  25. package/lib/popup/popup.config.d.ts +9 -10
  26. package/lib/popup/popup.service.d.ts +1 -1
  27. package/lib/portal/wb-component-portal.d.ts +18 -0
  28. package/lib/routing//311/265workbench-router.service.d.ts +4 -1
  29. package/lib/view/view.component.d.ts +13 -3
  30. package/lib/view//311/265workbench-view.model.d.ts +0 -2
  31. package/lib/workbench-config.d.ts +15 -3
  32. package/lib/workbench.component.d.ts +5 -0
  33. package/lib/workbench.model.d.ts +7 -3
  34. package/package.json +2 -2
@@ -40,32 +40,43 @@ export class ViewComponent {
40
40
  this._viewDragService = _viewDragService;
41
41
  this._logger = _logger;
42
42
  this._viewport = viewChild.required(SciViewportComponent);
43
+ this._scrollTop = 0;
44
+ this._scrollLeft = 0;
43
45
  this._logger.debug(() => `Constructing ViewComponent. [viewId=${this.viewId}]`, LoggerNames.LIFECYCLE);
44
46
  this.installMenuItemAccelerators();
45
- this.subscribeForViewActivation();
47
+ this.installOnActivateView();
46
48
  this.addHostCssClasses();
47
49
  }
50
+ /**
51
+ * Method invoked after attached this component to the DOM.
52
+ */
53
+ onAttach() {
54
+ this._viewport().scrollTop = this._scrollTop;
55
+ this._viewport().scrollLeft = this._scrollLeft;
56
+ }
57
+ /**
58
+ * Method invoked before detaching this component from the DOM.
59
+ */
60
+ onDetach() {
61
+ this._scrollTop = this._viewport().scrollTop;
62
+ this._scrollLeft = this._viewport().scrollLeft;
63
+ }
48
64
  onActivateView() {
49
- this._viewport().scrollTop = this._view.scrollTop;
50
- this._viewport().scrollLeft = this._view.scrollLeft;
51
65
  // Gain focus only if in the active part.
52
66
  if (this._view.part().active()) {
53
67
  this._viewport().focus();
54
68
  }
55
69
  }
56
- onDeactivateView() {
57
- this._view.scrollTop = this._viewport().scrollTop;
58
- this._view.scrollLeft = this._viewport().scrollLeft;
59
- }
60
70
  installMenuItemAccelerators() {
61
71
  inject(ViewMenuService).installMenuItemAccelerators$(inject((ElementRef)), this._view)
62
72
  .pipe(takeUntilDestroyed())
63
73
  .subscribe();
64
74
  }
65
- subscribeForViewActivation() {
75
+ installOnActivateView() {
66
76
  effect(() => {
67
- const active = this._view.active();
68
- untracked(() => active ? this.onActivateView() : this.onDeactivateView());
77
+ if (this._view.active()) {
78
+ untracked(() => this.onActivateView());
79
+ }
69
80
  });
70
81
  }
71
82
  addHostCssClasses() {
@@ -114,4 +125,4 @@ function configureViewGlassPane() {
114
125
  },
115
126
  ];
116
127
  }
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi92aWV3L3ZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvdmlldy92aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQXVCLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFTLFdBQVcsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUMvQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFOUQsT0FBTyxFQUFDLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFtQixNQUFNLG9DQUFvQyxDQUFDO0FBQ2xJLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7O0FBRXhDOztHQUVHO0FBbUJILE1BQU0sT0FBTyxhQUFhO0lBSXhCLElBQ1csTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLEtB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Qjs7MkZBVVgsYUFBYTtrQkFsQnpCLFNBQVM7K0JBQ0UsU0FBUyxjQUdQLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFVBQVU7d0JBQ1Ysb0JBQW9CO3FCQUNyQixrQkFDZTt3QkFDZCxrQkFBa0I7d0JBQ2xCLE9BQU87cUJBQ1IsYUFDVTt3QkFDVCxzQkFBc0IsRUFBRTtxQkFDekI7c0lBT1UsTUFBTTtzQkFEaEIsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBTXBCLGdCQUFnQjtzQkFEMUIsV0FBVzt1QkFBQyxpQkFBaUI7O0FBb0RoQzs7R0FFRztBQUNILFNBQVMsc0JBQXNCO0lBQzdCLE9BQU87UUFDTDtZQUNFLE9BQU8sRUFBRSxvQkFBb0I7WUFDN0IsV0FBVyxFQUFFLGNBQWM7U0FDNUI7UUFDRDtZQUNFLE9BQU8sRUFBRSxrQkFBa0I7WUFDM0IsVUFBVSxFQUFFLEdBQXFCLEVBQUUsQ0FBQyxDQUFDLEVBQUMsVUFBVSxFQUFFLEVBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLEVBQUMsRUFBQyxDQUFDO1NBQzlGO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBlZmZlY3QsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBpbmplY3QsIE9uRGVzdHJveSwgUHJvdmlkZXIsIHVudHJhY2tlZCwgdmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyT3V0bGV0fSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtTY2lWaWV3cG9ydENvbXBvbmVudH0gZnJvbSAnQHNjaW9uL2NvbXBvbmVudHMvdmlld3BvcnQnO1xuaW1wb3J0IHtWaWV3TWVudVNlcnZpY2V9IGZyb20gJy4uL3BhcnQvdmlldy1jb250ZXh0LW1lbnUvdmlldy1tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaFZpZXd9IGZyb20gJy4vybV3b3JrYmVuY2gtdmlldy5tb2RlbCc7XG5pbXBvcnQge0xvZ2dlciwgTG9nZ2VyTmFtZXN9IGZyb20gJy4uL2xvZ2dpbmcnO1xuaW1wb3J0IHtBMTF5TW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtWaWV3RHJhZ1NlcnZpY2V9IGZyb20gJy4uL3ZpZXctZG5kL3ZpZXctZHJhZy5zZXJ2aWNlJztcbmltcG9ydCB7R0xBU1NfUEFORV9CTE9DS0FCTEUsIEdMQVNTX1BBTkVfT1BUSU9OUywgR2xhc3NQYW5lRGlyZWN0aXZlLCBHbGFzc1BhbmVPcHRpb25zfSBmcm9tICcuLi9nbGFzcy1wYW5lL2dsYXNzLXBhbmUuZGlyZWN0aXZlJztcbmltcG9ydCB7V29ya2JlbmNoVmlld30gZnJvbSAnLi93b3JrYmVuY2gtdmlldy5tb2RlbCc7XG5pbXBvcnQge05nQ2xhc3N9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICogUmVuZGVycyB0aGUgd29ya2JlbmNoIHZpZXcsIHVzaW5nIGEgcm91dGVyLW91dGxldCB0byBkaXNwbGF5IHZpZXcgY29udGVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2ItdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi92aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmlldy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgUm91dGVyT3V0bGV0LFxuICAgIEExMXlNb2R1bGUsXG4gICAgU2NpVmlld3BvcnRDb21wb25lbnQsXG4gIF0sXG4gIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgR2xhc3NQYW5lRGlyZWN0aXZlLFxuICAgIE5nQ2xhc3MsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIGNvbmZpZ3VyZVZpZXdHbGFzc1BhbmUoKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBfdmlld3BvcnQgPSB2aWV3Q2hpbGQucmVxdWlyZWQoU2NpVmlld3BvcnRDb21wb25lbnQpO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXZpZXdpZCcpXG4gIHB1YmxpYyBnZXQgdmlld0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXcuaWQ7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnZpZXctZHJhZycpXG4gIHB1YmxpYyBnZXQgaXNWaWV3RHJhZ0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld0RyYWdTZXJ2aWNlLnZpZXdEcmFnRGF0YSAhPT0gbnVsbDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3ZpZXc6IMm1V29ya2JlbmNoVmlldyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdmlld0RyYWdTZXJ2aWNlOiBWaWV3RHJhZ1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2xvZ2dlcjogTG9nZ2VyKSB7XG4gICAgdGhpcy5fbG9nZ2VyLmRlYnVnKCgpID0+IGBDb25zdHJ1Y3RpbmcgVmlld0NvbXBvbmVudC4gW3ZpZXdJZD0ke3RoaXMudmlld0lkfV1gLCBMb2dnZXJOYW1lcy5MSUZFQ1lDTEUpO1xuICAgIHRoaXMuaW5zdGFsbE1lbnVJdGVtQWNjZWxlcmF0b3JzKCk7XG4gICAgdGhpcy5zdWJzY3JpYmVGb3JWaWV3QWN0aXZhdGlvbigpO1xuICAgIHRoaXMuYWRkSG9zdENzc0NsYXNzZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgb25BY3RpdmF0ZVZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5fdmlld3BvcnQoKS5zY3JvbGxUb3AgPSB0aGlzLl92aWV3LnNjcm9sbFRvcDtcbiAgICB0aGlzLl92aWV3cG9ydCgpLnNjcm9sbExlZnQgPSB0aGlzLl92aWV3LnNjcm9sbExlZnQ7XG5cbiAgICAvLyBHYWluIGZvY3VzIG9ubHkgaWYgaW4gdGhlIGFjdGl2ZSBwYXJ0LlxuICAgIGlmICh0aGlzLl92aWV3LnBhcnQoKS5hY3RpdmUoKSkge1xuICAgICAgdGhpcy5fdmlld3BvcnQoKS5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25EZWFjdGl2YXRlVmlldygpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3LnNjcm9sbFRvcCA9IHRoaXMuX3ZpZXdwb3J0KCkuc2Nyb2xsVG9wO1xuICAgIHRoaXMuX3ZpZXcuc2Nyb2xsTGVmdCA9IHRoaXMuX3ZpZXdwb3J0KCkuc2Nyb2xsTGVmdDtcbiAgfVxuXG4gIHByaXZhdGUgaW5zdGFsbE1lbnVJdGVtQWNjZWxlcmF0b3JzKCk6IHZvaWQge1xuICAgIGluamVjdChWaWV3TWVudVNlcnZpY2UpLmluc3RhbGxNZW51SXRlbUFjY2VsZXJhdG9ycyQoaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSwgdGhpcy5fdmlldylcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVGb3JWaWV3QWN0aXZhdGlvbigpOiB2b2lkIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgYWN0aXZlID0gdGhpcy5fdmlldy5hY3RpdmUoKTtcbiAgICAgIHVudHJhY2tlZCgoKSA9PiBhY3RpdmUgPyB0aGlzLm9uQWN0aXZhdGVWaWV3KCkgOiB0aGlzLm9uRGVhY3RpdmF0ZVZpZXcoKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEhvc3RDc3NDbGFzc2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IG5nQ2xhc3MgPSBpbmplY3QoTmdDbGFzcyk7XG4gICAgZWZmZWN0KCgpID0+IG5nQ2xhc3MubmdDbGFzcyA9IHRoaXMuX3ZpZXcuY2xhc3NMaXN0LmFzTGlzdCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9sb2dnZXIuZGVidWcoKCkgPT4gYERlc3Ryb3lpbmcgVmlld0NvbXBvbmVudCBbdmlld0lkPSR7dGhpcy52aWV3SWR9XSdgLCBMb2dnZXJOYW1lcy5MSUZFQ1lDTEUpO1xuICB9XG59XG5cbi8qKlxuICogQmxvY2tzIHRoaXMgdmlldyB3aGVuIGRpYWxvZyhzKSBvdmVybGF5IGl0LlxuICovXG5mdW5jdGlvbiBjb25maWd1cmVWaWV3R2xhc3NQYW5lKCk6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEdMQVNTX1BBTkVfQkxPQ0tBQkxFLFxuICAgICAgdXNlRXhpc3Rpbmc6IMm1V29ya2JlbmNoVmlldyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEdMQVNTX1BBTkVfT1BUSU9OUyxcbiAgICAgIHVzZUZhY3Rvcnk6ICgpOiBHbGFzc1BhbmVPcHRpb25zID0+ICh7YXR0cmlidXRlczogeydkYXRhLXZpZXdpZCc6IGluamVjdChXb3JrYmVuY2hWaWV3KS5pZH19KSxcbiAgICB9LFxuICBdO1xufVxuIiwiPHNjaS12aWV3cG9ydCBjZGtUcmFwRm9jdXM+XG4gIDxyb3V0ZXItb3V0bGV0IFtuYW1lXT1cInZpZXdJZFwiLz5cbjwvc2NpLXZpZXdwb3J0PlxuIl19
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi92aWV3L3ZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvdmlldy92aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQXVCLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFTLFdBQVcsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUMvQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFOUQsT0FBTyxFQUFDLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFtQixNQUFNLG9DQUFvQyxDQUFDO0FBQ2xJLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7O0FBR3hDOztHQUVHO0FBbUJILE1BQU0sT0FBTyxhQUFhO0lBTXhCLElBQ1csTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLEtB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b0I7OzJGQVVYLGFBQWE7a0JBbEJ6QixTQUFTOytCQUNFLFNBQVMsY0FHUCxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixVQUFVO3dCQUNWLG9CQUFvQjtxQkFDckIsa0JBQ2U7d0JBQ2Qsa0JBQWtCO3dCQUNsQixPQUFPO3FCQUNSLGFBQ1U7d0JBQ1Qsc0JBQXNCLEVBQUU7cUJBQ3pCO3NJQVNVLE1BQU07c0JBRGhCLFdBQVc7dUJBQUMsa0JBQWtCO2dCQU1wQixnQkFBZ0I7c0JBRDFCLFdBQVc7dUJBQUMsaUJBQWlCOztBQTZEaEM7O0dBRUc7QUFDSCxTQUFTLHNCQUFzQjtJQUM3QixPQUFPO1FBQ0w7WUFDRSxPQUFPLEVBQUUsb0JBQW9CO1lBQzdCLFdBQVcsRUFBRSxjQUFjO1NBQzVCO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsa0JBQWtCO1lBQzNCLFVBQVUsRUFBRSxHQUFxQixFQUFFLENBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBRSxFQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxFQUFDLEVBQUMsQ0FBQztTQUM5RjtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgZWZmZWN0LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgaW5qZWN0LCBPbkRlc3Ryb3ksIFByb3ZpZGVyLCB1bnRyYWNrZWQsIHZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlck91dGxldH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7U2NpVmlld3BvcnRDb21wb25lbnR9IGZyb20gJ0BzY2lvbi9jb21wb25lbnRzL3ZpZXdwb3J0JztcbmltcG9ydCB7Vmlld01lbnVTZXJ2aWNlfSBmcm9tICcuLi9wYXJ0L3ZpZXctY29udGV4dC1tZW51L3ZpZXctbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7ybVXb3JrYmVuY2hWaWV3fSBmcm9tICcuL8m1d29ya2JlbmNoLXZpZXcubW9kZWwnO1xuaW1wb3J0IHtMb2dnZXIsIExvZ2dlck5hbWVzfSBmcm9tICcuLi9sb2dnaW5nJztcbmltcG9ydCB7QTExeU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7Vmlld0RyYWdTZXJ2aWNlfSBmcm9tICcuLi92aWV3LWRuZC92aWV3LWRyYWcuc2VydmljZSc7XG5pbXBvcnQge0dMQVNTX1BBTkVfQkxPQ0tBQkxFLCBHTEFTU19QQU5FX09QVElPTlMsIEdsYXNzUGFuZURpcmVjdGl2ZSwgR2xhc3NQYW5lT3B0aW9uc30gZnJvbSAnLi4vZ2xhc3MtcGFuZS9nbGFzcy1wYW5lLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1dvcmtiZW5jaFZpZXd9IGZyb20gJy4vd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuaW1wb3J0IHtOZ0NsYXNzfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtPbkF0dGFjaCwgT25EZXRhY2h9IGZyb20gJy4uL3BvcnRhbC93Yi1jb21wb25lbnQtcG9ydGFsJztcblxuLyoqXG4gKiBSZW5kZXJzIHRoZSB3b3JrYmVuY2ggdmlldywgdXNpbmcgYSByb3V0ZXItb3V0bGV0IHRvIGRpc3BsYXkgdmlldyBjb250ZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3Yi12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92aWV3LmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBSb3V0ZXJPdXRsZXQsXG4gICAgQTExeU1vZHVsZSxcbiAgICBTY2lWaWV3cG9ydENvbXBvbmVudCxcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICBHbGFzc1BhbmVEaXJlY3RpdmUsXG4gICAgTmdDbGFzcyxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgY29uZmlndXJlVmlld0dsYXNzUGFuZSgpLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkF0dGFjaCwgT25EZXRhY2gge1xuXG4gIHByaXZhdGUgX3ZpZXdwb3J0ID0gdmlld0NoaWxkLnJlcXVpcmVkKFNjaVZpZXdwb3J0Q29tcG9uZW50KTtcbiAgcHJpdmF0ZSBfc2Nyb2xsVG9wID0gMDtcbiAgcHJpdmF0ZSBfc2Nyb2xsTGVmdCA9IDA7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdmlld2lkJylcbiAgcHVibGljIGdldCB2aWV3SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdmlldy5pZDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mudmlldy1kcmFnJylcbiAgcHVibGljIGdldCBpc1ZpZXdEcmFnQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aWV3RHJhZ1NlcnZpY2Uudmlld0RyYWdEYXRhICE9PSBudWxsO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfdmlldzogybVXb3JrYmVuY2hWaWV3LFxuICAgICAgICAgICAgICBwcml2YXRlIF92aWV3RHJhZ1NlcnZpY2U6IFZpZXdEcmFnU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9nZ2VyOiBMb2dnZXIpIHtcbiAgICB0aGlzLl9sb2dnZXIuZGVidWcoKCkgPT4gYENvbnN0cnVjdGluZyBWaWV3Q29tcG9uZW50LiBbdmlld0lkPSR7dGhpcy52aWV3SWR9XWAsIExvZ2dlck5hbWVzLkxJRkVDWUNMRSk7XG4gICAgdGhpcy5pbnN0YWxsTWVudUl0ZW1BY2NlbGVyYXRvcnMoKTtcbiAgICB0aGlzLmluc3RhbGxPbkFjdGl2YXRlVmlldygpO1xuICAgIHRoaXMuYWRkSG9zdENzc0NsYXNzZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgaW52b2tlZCBhZnRlciBhdHRhY2hlZCB0aGlzIGNvbXBvbmVudCB0byB0aGUgRE9NLlxuICAgKi9cbiAgcHVibGljIG9uQXR0YWNoKCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdwb3J0KCkuc2Nyb2xsVG9wID0gdGhpcy5fc2Nyb2xsVG9wO1xuICAgIHRoaXMuX3ZpZXdwb3J0KCkuc2Nyb2xsTGVmdCA9IHRoaXMuX3Njcm9sbExlZnQ7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGludm9rZWQgYmVmb3JlIGRldGFjaGluZyB0aGlzIGNvbXBvbmVudCBmcm9tIHRoZSBET00uXG4gICAqL1xuICBwdWJsaWMgb25EZXRhY2goKTogdm9pZCB7XG4gICAgdGhpcy5fc2Nyb2xsVG9wID0gdGhpcy5fdmlld3BvcnQoKS5zY3JvbGxUb3A7XG4gICAgdGhpcy5fc2Nyb2xsTGVmdCA9IHRoaXMuX3ZpZXdwb3J0KCkuc2Nyb2xsTGVmdDtcbiAgfVxuXG4gIHByaXZhdGUgb25BY3RpdmF0ZVZpZXcoKTogdm9pZCB7XG4gICAgLy8gR2FpbiBmb2N1cyBvbmx5IGlmIGluIHRoZSBhY3RpdmUgcGFydC5cbiAgICBpZiAodGhpcy5fdmlldy5wYXJ0KCkuYWN0aXZlKCkpIHtcbiAgICAgIHRoaXMuX3ZpZXdwb3J0KCkuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxNZW51SXRlbUFjY2VsZXJhdG9ycygpOiB2b2lkIHtcbiAgICBpbmplY3QoVmlld01lbnVTZXJ2aWNlKS5pbnN0YWxsTWVudUl0ZW1BY2NlbGVyYXRvcnMkKGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50PiksIHRoaXMuX3ZpZXcpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5zdGFsbE9uQWN0aXZhdGVWaWV3KCk6IHZvaWQge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5fdmlldy5hY3RpdmUoKSkge1xuICAgICAgICB1bnRyYWNrZWQoKCkgPT4gdGhpcy5vbkFjdGl2YXRlVmlldygpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkSG9zdENzc0NsYXNzZXMoKTogdm9pZCB7XG4gICAgY29uc3QgbmdDbGFzcyA9IGluamVjdChOZ0NsYXNzKTtcbiAgICBlZmZlY3QoKCkgPT4gbmdDbGFzcy5uZ0NsYXNzID0gdGhpcy5fdmlldy5jbGFzc0xpc3QuYXNMaXN0KCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygoKSA9PiBgRGVzdHJveWluZyBWaWV3Q29tcG9uZW50IFt2aWV3SWQ9JHt0aGlzLnZpZXdJZH1dJ2AsIExvZ2dlck5hbWVzLkxJRkVDWUNMRSk7XG4gIH1cbn1cblxuLyoqXG4gKiBCbG9ja3MgdGhpcyB2aWV3IHdoZW4gZGlhbG9nKHMpIG92ZXJsYXkgaXQuXG4gKi9cbmZ1bmN0aW9uIGNvbmZpZ3VyZVZpZXdHbGFzc1BhbmUoKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogR0xBU1NfUEFORV9CTE9DS0FCTEUsXG4gICAgICB1c2VFeGlzdGluZzogybVXb3JrYmVuY2hWaWV3LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogR0xBU1NfUEFORV9PUFRJT05TLFxuICAgICAgdXNlRmFjdG9yeTogKCk6IEdsYXNzUGFuZU9wdGlvbnMgPT4gKHthdHRyaWJ1dGVzOiB7J2RhdGEtdmlld2lkJzogaW5qZWN0KFdvcmtiZW5jaFZpZXcpLmlkfX0pLFxuICAgIH0sXG4gIF07XG59XG4iLCI8c2NpLXZpZXdwb3J0IGNka1RyYXBGb2N1cz5cbiAgPHJvdXRlci1vdXRsZXQgW25hbWVdPVwidmlld0lkXCIvPlxuPC9zY2ktdmlld3BvcnQ+XG4iXX0=
@@ -58,8 +58,6 @@ export class ɵWorkbenchView {
58
58
  this.position = computed(() => this.part().viewIds().indexOf(this.id));
59
59
  this.first = computed(() => this.position() === 0);
60
60
  this.last = computed(() => this.position() === this.part().viewIds().length - 1);
61
- this.scrollTop = 0;
62
- this.scrollLeft = 0;
63
61
  this.part = signal(null);
64
62
  this.active = signal(false);
65
63
  this.blockedBy$ = toObservable(this._blockedBy);
@@ -244,8 +242,8 @@ export class ɵWorkbenchView {
244
242
  source,
245
243
  target: {
246
244
  elementId: target,
247
- region: options.region,
248
- workbenchId: options.workbenchId ?? this._workbenchId,
245
+ region: options?.region,
246
+ workbenchId: options?.workbenchId ?? this._workbenchId,
249
247
  },
250
248
  });
251
249
  }
@@ -334,4 +332,4 @@ export class ɵWorkbenchView {
334
332
  this.portal.destroy();
335
333
  }
336
334
  }
337
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiybV3b3JrYmVuY2gtdmlldy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3ZpZXcvybV3b3JrYmVuY2gtdmlldy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBeUIsc0JBQXNCLEVBQTRCLE1BQU0saUJBQWlCLENBQUM7QUFDMUcsT0FBTyxFQUFDLGVBQWUsRUFBc0IsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRixPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUUvRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFHdEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXhELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBZSxRQUFRLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBb0IsTUFBTSxFQUFPLE1BQU0sZUFBZSxDQUFDO0FBQzFILE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUMsdUJBQXVCLEVB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O1lBQzVGLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDN0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2hpbGRyZW5PdXRsZXRDb250ZXh0cywgT3V0bGV0Q29udGV4dCwgVXJsU2VnbWVudH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Vmlld0RyYWdTZXJ2aWNlLCBWaWV3TW92ZUV2ZW50U291cmNlfSBmcm9tICcuLi92aWV3LWRuZC92aWV3LWRyYWcuc2VydmljZSc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtmaWx0ZXJBcnJheSwgbWFwQXJyYXl9IGZyb20gJ0BzY2lvbi90b29sa2l0L29wZXJhdG9ycyc7XG5pbXBvcnQge0Rpc3Bvc2FibGV9IGZyb20gJy4uL2NvbW1vbi9kaXNwb3NhYmxlJztcbmltcG9ydCB7dGhyb3dFcnJvcn0gZnJvbSAnLi4vY29tbW9uL3Rocm93LWVycm9yLnV0aWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hNZW51SXRlbSwgV29ya2JlbmNoTWVudUl0ZW1GYWN0b3J5Rm59IGZyb20gJy4uL3dvcmtiZW5jaC5tb2RlbCc7XG5pbXBvcnQge1ZpZXdJZCwgV29ya2JlbmNoVmlld30gZnJvbSAnLi93b3JrYmVuY2gtdmlldy5tb2RlbCc7XG5pbXBvcnQge1dvcmtiZW5jaFBhcnR9IGZyb20gJy4uL3BhcnQvd29ya2JlbmNoLXBhcnQubW9kZWwnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaFNlcnZpY2V9IGZyb20gJy4uL8m1d29ya2JlbmNoLnNlcnZpY2UnO1xuaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7V2JDb21wb25lbnRQb3J0YWx9IGZyb20gJy4uL3BvcnRhbC93Yi1jb21wb25lbnQtcG9ydGFsJztcbmltcG9ydCB7QWJzdHJhY3RUeXBlLCBjb21wdXRlZCwgZWZmZWN0LCBFbnZpcm9ubWVudEluamVjdG9yLCBpbmplY3QsIEluamVjdG9yLCBTaWduYWwsIHNpZ25hbCwgVHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge8m1V29ya2JlbmNoUGFydH0gZnJvbSAnLi4vcGFydC/JtXdvcmtiZW5jaC1wYXJ0Lm1vZGVsJztcbmltcG9ydCB7QWN0aXZhdGlvbkluc3RhbnRQcm92aWRlcn0gZnJvbSAnLi4vYWN0aXZhdGlvbi1pbnN0YW50LnByb3ZpZGVyJztcbmltcG9ydCB7V09SS0JFTkNIX1BBUlRfUkVHSVNUUll9IGZyb20gJy4uL3BhcnQvd29ya2JlbmNoLXBhcnQucmVnaXN0cnknO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXlvdXRTZXJ2aWNlfSBmcm9tICcuLi9sYXlvdXQvd29ya2JlbmNoLWxheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7V29ya2JlbmNoRGlhbG9nUmVnaXN0cnl9IGZyb20gJy4uL2RpYWxvZy93b3JrYmVuY2gtZGlhbG9nLnJlZ2lzdHJ5JztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUsIHRvU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge3Byb3ZpZGVWaWV3Q29udGV4dH0gZnJvbSAnLi92aWV3LWNvbnRleHQtcHJvdmlkZXInO1xuaW1wb3J0IHvJtVdvcmtiZW5jaERpYWxvZ30gZnJvbSAnLi4vZGlhbG9nL8m1d29ya2JlbmNoLWRpYWxvZyc7XG5pbXBvcnQge0Jsb2NrYWJsZX0gZnJvbSAnLi4vZ2xhc3MtcGFuZS9ibG9ja2FibGUnO1xuaW1wb3J0IHtXT1JLQkVOQ0hfSUR9IGZyb20gJy4uL3dvcmtiZW5jaC1pZCc7XG5pbXBvcnQge0NsYXNzTGlzdH0gZnJvbSAnLi4vY29tbW9uL2NsYXNzLWxpc3QnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uRGF0YSwgTmF2aWdhdGlvblN0YXRlfSBmcm9tICcuLi9yb3V0aW5nL3JvdXRpbmcubW9kZWwnO1xuaW1wb3J0IHtSb3V0aW5nfSBmcm9tICcuLi9yb3V0aW5nL3JvdXRpbmcudXRpbCc7XG5pbXBvcnQge1dvcmtiZW5jaFJvdXRlRGF0YX0gZnJvbSAnLi4vcm91dGluZy93b3JrYmVuY2gtcm91dGUtZGF0YSc7XG5pbXBvcnQge8m1V29ya2JlbmNoUm91dGVyfSBmcm9tICcuLi9yb3V0aW5nL8m1d29ya2JlbmNoLXJvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7ybVXb3JrYmVuY2hMYXlvdXR9IGZyb20gJy4uL2xheW91dC/JtXdvcmtiZW5jaC1sYXlvdXQnO1xuXG5leHBvcnQgY2xhc3MgybVXb3JrYmVuY2hWaWV3IGltcGxlbWVudHMgV29ya2JlbmNoVmlldywgQmxvY2thYmxlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3RW52aXJvbm1lbnRJbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfd29ya2JlbmNoSWQgPSBpbmplY3QoV09SS0JFTkNIX0lEKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfd29ya2JlbmNoU2VydmljZSA9IGluamVjdCjJtVdvcmtiZW5jaFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF93b3JrYmVuY2hMYXlvdXRTZXJ2aWNlID0gaW5qZWN0KFdvcmtiZW5jaExheW91dFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF93b3JrYmVuY2hSb3V0ZXIgPSBpbmplY3QoybVXb3JrYmVuY2hSb3V0ZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jaGlsZHJlbk91dGxldENvbnRleHRzID0gaW5qZWN0KENoaWxkcmVuT3V0bGV0Q29udGV4dHMpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wYXJ0UmVnaXN0cnkgPSBpbmplY3QoV09SS0JFTkNIX1BBUlRfUkVHSVNUUlkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3RHJhZ1NlcnZpY2UgPSBpbmplY3QoVmlld0RyYWdTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZhdGlvbkluc3RhbnRQcm92aWRlciA9IGluamVjdChBY3RpdmF0aW9uSW5zdGFudFByb3ZpZGVyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfd29ya2JlbmNoRGlhbG9nUmVnaXN0cnkgPSBpbmplY3QoV29ya2JlbmNoRGlhbG9nUmVnaXN0cnkpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX21lbnVJdGVtUHJvdmlkZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V29ya2JlbmNoTWVudUl0ZW1GYWN0b3J5Rm5bXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hZGFwdGVycyA9IG5ldyBNYXA8VHlwZTx1bmtub3duPiB8IEFic3RyYWN0VHlwZTx1bmtub3duPiwgdW5rbm93bj4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF90aXRsZSA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaGVhZGluZyA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGlydHkgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jbG9zYWJsZSA9IHNpZ25hbCh0cnVlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2xvc2FibGVDb21wdXRlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2Nsb3NhYmxlKCkgJiYgIXRoaXMuX2Jsb2NrZWRCeSgpKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYmxvY2tlZEJ5ID0gdG9TaWduYWwoaW5qZWN0KFdvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5KS50b3AkKHt2aWV3SWQ6IHRoaXMuaWR9KSwge3JlcXVpcmVTeW5jOiB0cnVlfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Njcm9sbGVkSW50b1ZpZXcgPSBzaWduYWwodHJ1ZSk7XG5cbiAgcHJpdmF0ZSBfYWN0aXZhdGlvbkluc3RhbnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSWRlbnRpZmllcyB0aGUge0BsaW5rIE1WaWV3fS5cbiAgICpcbiAgICogQSB2aWV3IGhhbmRsZSByZXByZXNlbnRzIGEgdmlldyB3aXRoIGEgcGFydGljdWxhciB2aWV3IGlkLiBEaWZmZXJlbnQge0BsaW5rIE1WaWV3fXMgb2YgdGhlIHNhbWUgdmlldyBpZCBtYXkgc2hhcmUgdGhlIGhhbmRsZS5cbiAgICogRm9yIGV4YW1wbGUsIHdoZW4gY2hhbmdpbmcgdGhlIGxheW91dCwgdmlldyBoYW5kbGVzIGZvciB2aWV3cyB3aXRoIHRoZSBzYW1lIHZpZXcgaWQgd2lsbCBiZSByZXVzZWQsIHJlZ2FyZGxlc3Mgb2ZcbiAgICogd2hldGhlciB0aGV5IGhhdmUgdGhlIHNhbWUge0BsaW5rIE1WaWV3fS5cbiAgICovXG4gIHB1YmxpYyB1aWQhOiBzdHJpbmc7XG4gIHB1YmxpYyBhbHRlcm5hdGl2ZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBuYXZpZ2F0aW9uSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIG5hdmlnYXRpb25IaW50ID0gc2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHVibGljIG5hdmlnYXRpb25EYXRhID0gc2lnbmFsPE5hdmlnYXRpb25EYXRhPih7fSk7XG4gIHB1YmxpYyBuYXZpZ2F0aW9uU3RhdGUgPSBzaWduYWw8TmF2aWdhdGlvblN0YXRlPih7fSk7XG4gIHB1YmxpYyB1cmxTZWdtZW50cyA9IHNpZ25hbDxVcmxTZWdtZW50W10+KFtdLCB7ZXF1YWw6IChhLCBiKSA9PiBhLmpvaW4oJy8nKSA9PT0gYi5qb2luKCcvJyl9KTtcbiAgcHVibGljIHBvc2l0aW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wYXJ0KCkudmlld0lkcygpLmluZGV4T2YodGhpcy5pZCkpO1xuICBwdWJsaWMgZmlyc3QgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBvc2l0aW9uKCkgPT09IDApO1xuICBwdWJsaWMgbGFzdCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucG9zaXRpb24oKSA9PT0gdGhpcy5wYXJ0KCkudmlld0lkcygpLmxlbmd0aCAtIDEpO1xuICBwdWJsaWMgc2Nyb2xsVG9wID0gMDtcbiAgcHVibGljIHNjcm9sbExlZnQgPSAwO1xuXG4gIHB1YmxpYyByZWFkb25seSBwYXJ0ID0gc2lnbmFsPMm1V29ya2JlbmNoUGFydD4obnVsbCEpO1xuICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IG1lbnVJdGVtcyQ6IE9ic2VydmFibGU8V29ya2JlbmNoTWVudUl0ZW1bXT47XG4gIHB1YmxpYyByZWFkb25seSBibG9ja2VkQnkkID0gdG9PYnNlcnZhYmxlPMm1V29ya2JlbmNoRGlhbG9nIHwgbnVsbD4odGhpcy5fYmxvY2tlZEJ5KTtcbiAgcHVibGljIHJlYWRvbmx5IHBvcnRhbDogV2JDb21wb25lbnRQb3J0YWw7XG4gIHB1YmxpYyByZWFkb25seSBjbGFzc0xpc3QgPSBuZXcgQ2xhc3NMaXN0KCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGlkOiBWaWV3SWQsIG9wdGlvbnM6IHtjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8Vmlld0NvbXBvbmVudD59KSB7XG4gICAgdGhpcy5tZW51SXRlbXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5fbWVudUl0ZW1Qcm92aWRlcnMkLCB0aGlzLl93b3JrYmVuY2hTZXJ2aWNlLnZpZXdNZW51SXRlbVByb3ZpZGVycyRdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoW2xvY2FsTWVudUl0ZW1Qcm92aWRlcnMsIGdsb2JhbE1lbnVJdGVtUHJvdmlkZXJzXSkgPT4gbG9jYWxNZW51SXRlbVByb3ZpZGVycy5jb25jYXQoZ2xvYmFsTWVudUl0ZW1Qcm92aWRlcnMpKSxcbiAgICAgICAgbWFwQXJyYXkobWVudUl0ZW1GYWN0b3J5Rm4gPT4gbWVudUl0ZW1GYWN0b3J5Rm4odGhpcykpLFxuICAgICAgICBmaWx0ZXJBcnJheSgobWVudUl0ZW06IFdvcmtiZW5jaE1lbnVJdGVtIHwgbnVsbCk6IG1lbnVJdGVtIGlzIFdvcmtiZW5jaE1lbnVJdGVtID0+IG1lbnVJdGVtICE9PSBudWxsKSxcbiAgICAgICk7XG5cbiAgICB0aGlzLnBvcnRhbCA9IHRoaXMuY3JlYXRlUG9ydGFsKG9wdGlvbnMuY29tcG9uZW50KTtcbiAgICB0aGlzLnRvdWNoT25BY3RpdmF0ZSgpO1xuICAgIHRoaXMuaW5zdGFsbE1vZGVsVXBkYXRlcigpO1xuICAgIHRoaXMub25MYXlvdXRDaGFuZ2Uoe2xheW91dDogdGhpcy5fd29ya2JlbmNoUm91dGVyLmdldEN1cnJlbnROYXZpZ2F0aW9uQ29udGV4dCgpLmxheW91dH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQb3J0YWwodmlld0NvbXBvbmVudDogQ29tcG9uZW50VHlwZTxWaWV3Q29tcG9uZW50Pik6IFdiQ29tcG9uZW50UG9ydGFsIHtcbiAgICByZXR1cm4gbmV3IFdiQ29tcG9uZW50UG9ydGFsKHZpZXdDb21wb25lbnQsIHtcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlVmlld0NvbnRleHQodGhpcyksXG4gICAgICAgIC8vIEZvciBlYWNoIHZpZXcsIHRoZSB3b3JrYmVuY2ggcmVnaXN0ZXJzIGF1eGlsaWFyeSByb3V0ZXMgb2YgYWxsIHRvcC1sZXZlbCByb3V0ZXMsIGVuYWJsaW5nIHJvdXRpbmcgb24gYSBwZXItdmlldyBiYXNpcy5cbiAgICAgICAgLy8gQnV0LCBpZiB0aGUgd29ya2JlbmNoIGNvbXBvbmVudCBpdHNlbGYgaXMgZGlzcGxheWVkIGluIGEgcm91dGVyIG91dGxldCwgdmlldyBvdXRsZXRzIGFyZSBub3QgdG9wLWxldmVsIG91dGxldHMuXG4gICAgICAgIC8vIFRoZXJlZm9yZSwgd2UgaW5zdHJ1Y3QgdGhlIG91dGxldCB0byBhY3QgYXMgYSB0b3AtbGV2ZWwgb3V0bGV0IHRvIGJlIHRoZSB0YXJnZXQgb2YgdGhlIHJlZ2lzdGVyZWQgdG9wLWxldmVsIHZpZXcgcm91dGVzLlxuICAgICAgICB7cHJvdmlkZTogQ2hpbGRyZW5PdXRsZXRDb250ZXh0cywgdXNlVmFsdWU6IHRoaXMuX2NoaWxkcmVuT3V0bGV0Q29udGV4dHN9LFxuICAgICAgICAvLyBQcmV2ZW50IGluamVjdGluZyB0aGlzIHBhcnQgaW50byB0aGUgdmlldyBiZWNhdXNlIHRoZSB2aWV3IG1heSBiZSBkcmFnZ2VkIHRvIGEgZGlmZmVyZW50IHBhcnQuXG4gICAgICAgIHtwcm92aWRlOiBXb3JrYmVuY2hQYXJ0LCB1c2VGYWN0b3J5OiAoKSA9PiB0aHJvd0Vycm9yKGBbTnVsbEluamVjdG9yRXJyb3JdIE5vIHByb3ZpZGVyIGZvciAnV29ya2JlbmNoUGFydCdgKX0sXG4gICAgICAgIHtwcm92aWRlOiDJtVdvcmtiZW5jaFBhcnQsIHVzZUZhY3Rvcnk6ICgpID0+IHRocm93RXJyb3IoYFtOdWxsSW5qZWN0b3JFcnJvcl0gTm8gcHJvdmlkZXIgZm9yICfJtVdvcmtiZW5jaFBhcnQnYCl9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgaW52b2tlZCB3aGVuIHRoZSB3b3JrYmVuY2ggbGF5b3V0IGhhcyBjaGFuZ2VkLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZDpcbiAgICogLSBpcyBjYWxsZWQgb24gZXZlcnkgbGF5b3V0IGNoYW5nZSwgaW5jbHVkaW5nIGNoYW5nZXMgbm90IHJlbGV2YW50IGZvciB0aGlzIHZpZXcsIGUuZy4sIHRvIHVwZGF0ZSB0aGUgdmlldydzIHBhcnQuXG4gICAqIC0gaXMgY2FsbGVkIGFmdGVyIGRlc3Ryb3llZCB0aGUgcHJldmlvdXMgY29tcG9uZW50IChpZiBhbnkpLCBidXQgYmVmb3JlIGNvbnN0cnVjdGluZyB0aGUgbmV3IGNvbXBvbmVudC5cbiAgICovXG4gIHByaXZhdGUgb25MYXlvdXRDaGFuZ2UoY2hhbmdlOiB7bGF5b3V0OiDJtVdvcmtiZW5jaExheW91dDsgcHJldmlvdXNSb3V0ZT86IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsOyByb3V0ZT86IEFjdGl2YXRlZFJvdXRlU25hcHNob3R9KTogdm9pZCB7XG4gICAgY29uc3Qge2xheW91dCwgcm91dGUsIHByZXZpb3VzUm91dGV9ID0gY2hhbmdlO1xuXG4gICAgY29uc3QgbVBhcnQgPSBsYXlvdXQucGFydCh7dmlld0lkOiB0aGlzLmlkfSk7XG4gICAgY29uc3QgbVZpZXcgPSBsYXlvdXQudmlldyh7dmlld0lkOiB0aGlzLmlkfSk7XG5cbiAgICB0aGlzLnBhcnQuc2V0KHRoaXMuX3BhcnRSZWdpc3RyeS5nZXQobVBhcnQuaWQpKTtcbiAgICB0aGlzLmFjdGl2ZS5zZXQobVBhcnQuYWN0aXZlVmlld0lkID09PSB0aGlzLmlkKTtcbiAgICB0aGlzLnVybFNlZ21lbnRzLnNldChsYXlvdXQudXJsU2VnbWVudHMoe3ZpZXdJZDogdGhpcy5pZH0pKTtcblxuICAgIHRoaXMudWlkID0gbVZpZXcudWlkO1xuICAgIHRoaXMuYWx0ZXJuYXRpdmVJZCA9IG1WaWV3LmFsdGVybmF0aXZlSWQ7XG4gICAgdGhpcy5jbGFzc0xpc3QubGF5b3V0ID0gbVZpZXcuY3NzQ2xhc3M7XG5cbiAgICAvLyBUZXN0IGlmIGEgbmV3IHJvdXRlIGhhcyBiZWVuIGFjdGl2YXRlZCBmb3IgdGhpcyB2aWV3LlxuICAgIGNvbnN0IHJvdXRlQ2hhbmdlZCA9IHJvdXRlPy5yb3V0ZUNvbmZpZyAhPT0gcHJldmlvdXNSb3V0ZT8ucm91dGVDb25maWc7XG4gICAgaWYgKHJvdXRlQ2hhbmdlZCkge1xuICAgICAgdGhpcy50aXRsZSA9IFJvdXRpbmcubG9va3VwUm91dGVEYXRhKHJvdXRlISwgV29ya2JlbmNoUm91dGVEYXRhLnRpdGxlKSA/PyBudWxsO1xuICAgICAgdGhpcy5oZWFkaW5nID0gUm91dGluZy5sb29rdXBSb3V0ZURhdGEocm91dGUhLCBXb3JrYmVuY2hSb3V0ZURhdGEuaGVhZGluZykgPz8gbnVsbDtcbiAgICAgIHRoaXMuZGlydHkgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2xhc3NMaXN0LnJvdXRlID0gUm91dGluZy5sb29rdXBSb3V0ZURhdGEocm91dGUhLCBXb3JrYmVuY2hSb3V0ZURhdGEuY3NzQ2xhc3MpO1xuICAgICAgdGhpcy5jbGFzc0xpc3QuYXBwbGljYXRpb24gPSBbXTtcbiAgICB9XG5cbiAgICAvLyBUZXN0IGlmIHRoaXMgdmlldyB3YXMgbmF2aWdhdGVkLiBOYXZpZ2F0aW9uIGRvZXMgbm90IG5lY2Vzc2FyaWx5IGNhdXNlIHRoZSByb3V0ZSB0byBjaGFuZ2UuXG4gICAgY29uc3QgbmF2aWdhdGlvbkNoYW5nZWQgPSBtVmlldy5uYXZpZ2F0aW9uPy5pZCAhPT0gdGhpcy5uYXZpZ2F0aW9uSWQ7XG4gICAgaWYgKG5hdmlnYXRpb25DaGFuZ2VkKSB7XG4gICAgICB0aGlzLm5hdmlnYXRpb25JZCA9IG1WaWV3Lm5hdmlnYXRpb24/LmlkO1xuICAgICAgdGhpcy5jbGFzc0xpc3QubmF2aWdhdGlvbiA9IG1WaWV3Lm5hdmlnYXRpb24/LmNzc0NsYXNzO1xuICAgICAgdGhpcy5uYXZpZ2F0aW9uSGludC5zZXQobVZpZXcubmF2aWdhdGlvbj8uaGludCk7XG4gICAgICB0aGlzLm5hdmlnYXRpb25EYXRhLnNldChtVmlldy5uYXZpZ2F0aW9uPy5kYXRhID8/IHt9KTtcbiAgICAgIHRoaXMubmF2aWdhdGlvblN0YXRlLnNldChsYXlvdXQubmF2aWdhdGlvblN0YXRlKHt2aWV3SWQ6IHRoaXMuaWR9KSk7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhpcyB2aWV3IGlzIGluYWN0aXZlLCBBbmd1bGFyIGRvZXMgbm90IGNoZWNrIGl0IGZvciBjaGFuZ2VzIGFzIGl0IGlzIGRldGFjaGVkIGZyb20gdGhlIEFuZ3VsYXIgY29tcG9uZW50IHRyZWUuXG4gICAgLy8gVG8gY29tcGxldGUgdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSByb3V0ZWQgY29tcG9uZW50ICh0byBlbnN1cmUgdGhhdCBgbmdPbkluaXRgIGlzIGNhbGxlZCksIHdlIG1hbnVhbGx5IHRyaWdnZXIgY2hhbmdlXG4gICAgLy8gZGV0ZWN0aW9uLiBXZSBjYW5ub3QgcGVyZm9ybSBjaGFuZ2UgZGV0ZWN0aW9uIHJpZ2h0IG5vdyBiZWNhdXNlIHRoZSByb3V0ZWQgY29tcG9uZW50IGhhcyBub3QgYmVlbiBhY3RpdmF0ZWQvY29uc3RydWN0ZWQgeWV0LlxuICAgIC8vIFVzZSBjYXNlOiBOYXZpZ2F0aW5nIGFuIChleGlzdGluZykgaW5hY3RpdmUgdmlldyB0byBhbm90aGVyIHJvdXRlLlxuICAgIGlmICghdGhpcy5hY3RpdmUoKSAmJiB0aGlzLnBvcnRhbC5pc0NvbnN0cnVjdGVkICYmIHJvdXRlQ2hhbmdlZCkge1xuICAgICAgdGhpcy5fd29ya2JlbmNoUm91dGVyLmdldEN1cnJlbnROYXZpZ2F0aW9uQ29udGV4dCgpLnJlZ2lzdGVyUG9zdE5hdmlnYXRpb25BY3Rpb24oKCkgPT4gdGhpcy5wb3J0YWwuY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNvbXBvbmVudCBvZiB0aGlzIHZpZXcuIFJldHVybnMgYG51bGxgIGlmIG5vdCBuYXZpZ2F0ZWQgdGhlIHZpZXcsIG9yIGJlZm9yZSBpdCB3YXMgYWN0aXZhdGVkIGZvciB0aGUgZmlyc3QgdGltZS5cbiAgICovXG4gIHB1YmxpYyBnZXRDb21wb25lbnQ8VCA9IHVua25vd24+KCk6IFQgfCBudWxsIHtcbiAgICBjb25zdCBvdXRsZXQgPSB0aGlzLmdldE91dGxldENvbnRleHQoKT8ub3V0bGV0O1xuICAgIHJldHVybiBvdXRsZXQ/LmlzQWN0aXZhdGVkID8gb3V0bGV0LmNvbXBvbmVudCBhcyBUIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBpbmplY3RvciBvZiB0aGUgY29tcG9uZW50LiBSZXR1cm5zIGBudWxsYCBpZiBub3QgbmF2aWdhdGVkIHRoZSB2aWV3LCBvciBiZWZvcmUgaXQgd2FzIGFjdGl2YXRlZCBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gICAqL1xuICBwdWJsaWMgZ2V0Q29tcG9uZW50SW5qZWN0b3IoKTogSW5qZWN0b3IgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5nZXRPdXRsZXRDb250ZXh0KCk/LmluamVjdG9yID8/IG51bGw7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldCB0aXRsZSgpOiBTaWduYWw8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLl90aXRsZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgc2V0IHRpdGxlKHRpdGxlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgdGhpcy5fdGl0bGUuc2V0KHRpdGxlKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgZ2V0IGhlYWRpbmcoKTogU2lnbmFsPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5faGVhZGluZztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgc2V0IGhlYWRpbmcoaGVhZGluZzogc3RyaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuX2hlYWRpbmcuc2V0KGhlYWRpbmcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBnZXQgZGlydHkoKTogU2lnbmFsPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fZGlydHk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIHNldCBkaXJ0eShkaXJ0eTogYm9vbGVhbikge1xuICAgIHRoaXMuX2RpcnR5LnNldChkaXJ0eSk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldCBzY3JvbGxlZEludG9WaWV3KCk6IFNpZ25hbDxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Njcm9sbGVkSW50b1ZpZXc7XG4gIH1cblxuICBwdWJsaWMgc2V0IHNjcm9sbGVkSW50b1ZpZXcoc2Nyb2xsZWRJbnRvVmlldzogYm9vbGVhbikge1xuICAgIHRoaXMuX3Njcm9sbGVkSW50b1ZpZXcuc2V0KHNjcm9sbGVkSW50b1ZpZXcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBzZXQgY3NzQ2xhc3MoY3NzQ2xhc3M6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5jbGFzc0xpc3QuYXBwbGljYXRpb24gPSBjc3NDbGFzcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgZ2V0IGNzc0NsYXNzKCk6IFNpZ25hbDxzdHJpbmdbXT4ge1xuICAgIHJldHVybiB0aGlzLmNsYXNzTGlzdC5hcHBsaWNhdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgc2V0IGNsb3NhYmxlKGNsb3NhYmxlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY2xvc2FibGUuc2V0KGNsb3NhYmxlKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgZ2V0IGNsb3NhYmxlKCk6IFNpZ25hbDxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NhYmxlQ29tcHV0ZWQ7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGFzeW5jIGFjdGl2YXRlKG9wdGlvbnM/OiB7c2tpcExvY2F0aW9uQ2hhbmdlPzogYm9vbGVhbn0pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5hY3RpdmUoKSAmJiB0aGlzLnBhcnQoKS5hY3RpdmUoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudExheW91dCA9IHRoaXMuX3dvcmtiZW5jaExheW91dFNlcnZpY2UubGF5b3V0KCk7XG4gICAgcmV0dXJuIHRoaXMuX3dvcmtiZW5jaFJvdXRlci5uYXZpZ2F0ZShcbiAgICAgIGxheW91dCA9PiBjdXJyZW50TGF5b3V0ID09PSBsYXlvdXQgPyBsYXlvdXQuYWN0aXZhdGVWaWV3KHRoaXMuaWQsIHthY3RpdmF0ZVBhcnQ6IHRydWV9KSA6IG51bGwsIC8vIGNhbmNlbCBuYXZpZ2F0aW9uIGlmIHRoZSBsYXlvdXQgaGFzIGJlY29tZSBzdGFsZVxuICAgICAge3NraXBMb2NhdGlvbkNoYW5nZTogb3B0aW9ucz8uc2tpcExvY2F0aW9uQ2hhbmdlfSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmF0aW9uSW5zdGFudCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmF0aW9uSW5zdGFudDtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgY2xvc2UodGFyZ2V0PzogJ3NlbGYnIHwgJ2FsbC12aWV3cycgfCAnb3RoZXItdmlld3MnIHwgJ3ZpZXdzLXRvLXRoZS1yaWdodCcgfCAndmlld3MtdG8tdGhlLWxlZnQnKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgc3dpdGNoICh0YXJnZXQgfHwgJ3NlbGYnKSB7XG4gICAgICBjYXNlICdzZWxmJzoge1xuICAgICAgICByZXR1cm4gdGhpcy5fd29ya2JlbmNoU2VydmljZS5jbG9zZVZpZXdzKHRoaXMuaWQpO1xuICAgICAgfVxuICAgICAgY2FzZSAnYWxsLXZpZXdzJzoge1xuICAgICAgICByZXR1cm4gdGhpcy5fd29ya2JlbmNoU2VydmljZS5jbG9zZVZpZXdzKC4uLnRoaXMucGFydCgpLnZpZXdJZHMoKSk7XG4gICAgICB9XG4gICAgICBjYXNlICdvdGhlci12aWV3cyc6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtiZW5jaFNlcnZpY2UuY2xvc2VWaWV3cyguLi50aGlzLnBhcnQoKS52aWV3SWRzKCkuZmlsdGVyKHZpZXdJZCA9PiB2aWV3SWQgIT09IHRoaXMuaWQpKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3ZpZXdzLXRvLXRoZS1yaWdodCc6IHtcbiAgICAgICAgY29uc3Qgdmlld0lkcyA9IHRoaXMucGFydCgpLnZpZXdJZHMoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtiZW5jaFNlcnZpY2UuY2xvc2VWaWV3cyguLi52aWV3SWRzLnNsaWNlKHZpZXdJZHMuaW5kZXhPZih0aGlzLmlkKSArIDEpKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3ZpZXdzLXRvLXRoZS1sZWZ0Jzoge1xuICAgICAgICBjb25zdCB2aWV3SWRzID0gdGhpcy5wYXJ0KCkudmlld0lkcygpO1xuICAgICAgICByZXR1cm4gdGhpcy5fd29ya2JlbmNoU2VydmljZS5jbG9zZVZpZXdzKC4uLnZpZXdJZHMuc2xpY2UoMCwgdmlld0lkcy5pbmRleE9mKHRoaXMuaWQpKSk7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgbW92ZSh0YXJnZXQ6ICduZXctd2luZG93Jyk6IHZvaWQ7XG4gIHB1YmxpYyBtb3ZlKHBhcnRJZDogc3RyaW5nLCBvcHRpb25zPzoge3JlZ2lvbj86ICdub3J0aCcgfCAnc291dGgnIHwgJ3dlc3QnIHwgJ2Vhc3QnOyB3b3JrYmVuY2hJZD86IHN0cmluZ30pOiB2b2lkO1xuICBwdWJsaWMgbW92ZSh0YXJnZXQ6ICduZXctd2luZG93JyB8IHN0cmluZywgb3B0aW9ucz86IHtyZWdpb24/OiAnbm9ydGgnIHwgJ3NvdXRoJyB8ICd3ZXN0JyB8ICdlYXN0Jzsgd29ya2JlbmNoSWQ/OiBzdHJpbmd9KTogdm9pZCB7XG4gICAgY29uc3Qgc291cmNlOiBWaWV3TW92ZUV2ZW50U291cmNlID0ge1xuICAgICAgd29ya2JlbmNoSWQ6IHRoaXMuX3dvcmtiZW5jaElkLFxuICAgICAgcGFydElkOiB0aGlzLnBhcnQoKS5pZCxcbiAgICAgIHZpZXdJZDogdGhpcy5pZCxcbiAgICAgIGFsdGVybmF0aXZlVmlld0lkOiB0aGlzLmFsdGVybmF0aXZlSWQsXG4gICAgICB2aWV3VXJsU2VnbWVudHM6IHRoaXMudXJsU2VnbWVudHMoKSxcbiAgICAgIG5hdmlnYXRpb25IaW50OiB0aGlzLm5hdmlnYXRpb25IaW50KCksXG4gICAgICBuYXZpZ2F0aW9uRGF0YTogdGhpcy5uYXZpZ2F0aW9uRGF0YSgpLFxuICAgICAgY2xhc3NMaXN0OiB0aGlzLmNsYXNzTGlzdC5hc01hcCgpLFxuICAgIH07XG5cbiAgICBpZiAodGFyZ2V0ID09PSAnbmV3LXdpbmRvdycpIHtcbiAgICAgIHRoaXMuX3ZpZXdEcmFnU2VydmljZS5kaXNwYXRjaFZpZXdNb3ZlRXZlbnQoe3NvdXJjZSwgdGFyZ2V0OiB7d29ya2JlbmNoSWQ6ICduZXctd2luZG93J319KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLl92aWV3RHJhZ1NlcnZpY2UuZGlzcGF0Y2hWaWV3TW92ZUV2ZW50KHtcbiAgICAgICAgc291cmNlLFxuICAgICAgICB0YXJnZXQ6IHtcbiAgICAgICAgICBlbGVtZW50SWQ6IHRhcmdldCxcbiAgICAgICAgICByZWdpb246IG9wdGlvbnMhLnJlZ2lvbixcbiAgICAgICAgICB3b3JrYmVuY2hJZDogb3B0aW9ucyEud29ya2JlbmNoSWQgPz8gdGhpcy5fd29ya2JlbmNoSWQsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIHJlZ2lzdGVyTWVudUl0ZW0obWVudUl0ZW06IFdvcmtiZW5jaE1lbnVJdGVtKTogRGlzcG9zYWJsZSB7XG4gICAgY29uc3QgZmFjdG9yeUZuID0gKCk6IFdvcmtiZW5jaE1lbnVJdGVtID0+IG1lbnVJdGVtO1xuICAgIHRoaXMuX21lbnVJdGVtUHJvdmlkZXJzJC5uZXh0KHRoaXMuX21lbnVJdGVtUHJvdmlkZXJzJC52YWx1ZS5jb25jYXQoZmFjdG9yeUZuKSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3Bvc2U6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5fbWVudUl0ZW1Qcm92aWRlcnMkLm5leHQodGhpcy5fbWVudUl0ZW1Qcm92aWRlcnMkLnZhbHVlLmZpbHRlcihpdCA9PiBpdCAhPT0gZmFjdG9yeUZuKSk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBoYW5kbGUncyBpbmplY3Rvci4gVGhlIGluamVjdG9yIHdpbGwgYmUgZGVzdHJveWVkIHdoZW4gY2xvc2luZyB0aGUgdmlldy5cbiAgICovXG4gIHB1YmxpYyBnZXQgaW5qZWN0b3IoKTogSW5qZWN0b3Ige1xuICAgIHJldHVybiB0aGlzLl92aWV3RW52aXJvbm1lbnRJbmplY3RvcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYW4gYWRhcHRlciBmb3IgdGhpcyB2aWV3LCByZXBsYWNpbmcgYW55IHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBhZGFwdGVyIG9mIHRoZSBzYW1lIHR5cGUuXG4gICAqXG4gICAqIEFkYXB0ZXJzIGVuYWJsZSBsb29zZWx5IGNvdXBsZWQgZXh0ZW5zaW9uIG9mIGFuIG9iamVjdCwgYWxsb3dpbmcgb25lIG9iamVjdCB0byBiZSBhZGFwdGVkIHRvIGFub3RoZXIuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJBZGFwdGVyPFQ+KGFkYXB0ZXJUeXBlOiBBYnN0cmFjdFR5cGU8VD4gfCBUeXBlPFQ+LCBvYmplY3Q6IFQpOiB2b2lkIHtcbiAgICB0aGlzLl9hZGFwdGVycy5zZXQoYWRhcHRlclR5cGUsIG9iamVjdCk7XG4gIH1cblxuICAvKipcbiAgICogVW5yZWdpc3RlcnMgdGhlIGdpdmVuIGFkYXB0ZXIuIEhhcyBubyBlZmZlY3QgaWYgbm90IHJlZ2lzdGVyZWQuXG4gICAqL1xuICBwdWJsaWMgdW5yZWdpc3RlckFkYXB0ZXIoYWRhcHRlclR5cGU6IEFic3RyYWN0VHlwZTx1bmtub3duPiB8IFR5cGU8dW5rbm93bj4pOiB2b2lkIHtcbiAgICB0aGlzLl9hZGFwdGVycy5kZWxldGUoYWRhcHRlclR5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkYXB0cyB0aGlzIG9iamVjdCB0byB0aGUgc3BlY2lmaWVkIHR5cGUuIFJldHVybnMgYG51bGxgIGlmIG5vIHN1Y2ggb2JqZWN0IGNhbiBiZSBmb3VuZC5cbiAgICovXG4gIHB1YmxpYyBhZGFwdDxUPihhZGFwdGVyVHlwZTogQWJzdHJhY3RUeXBlPFQ+IHwgVHlwZTxUPik6IFQgfCBudWxsIHtcbiAgICBjb25zdCBhZGFwdGVyID0gdGhpcy5fYWRhcHRlcnMuZ2V0KGFkYXB0ZXJUeXBlKTtcbiAgICByZXR1cm4gYWRhcHRlciA/IGFkYXB0ZXIgYXMgVCA6IG51bGw7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldCBkZXN0cm95ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucG9ydGFsLmlzRGVzdHJveWVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG91dGxldCBjb250ZXh0IG9mIHRoZSBjdXJyZW50bHkgYWN0aXZhdGVkIHJvdXRlLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRPdXRsZXRDb250ZXh0KCk6IE91dGxldENvbnRleHQgfCBudWxsIHtcbiAgICByZXR1cm4gUm91dGluZy5yZXNvbHZlRWZmZWN0aXZlT3V0bGV0Q29udGV4dCh0aGlzLl9jaGlsZHJlbk91dGxldENvbnRleHRzLmdldENvbnRleHQodGhpcy5pZCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGFjdGl2YXRpb24gaW5zdGFudCB3aGVuIHRoaXMgdmlldyBpcyBhY3RpdmF0ZWQuXG4gICAqL1xuICBwcml2YXRlIHRvdWNoT25BY3RpdmF0ZSgpOiB2b2lkIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuYWN0aXZlKCkpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZhdGlvbkluc3RhbnQgPSB0aGlzLl9hY3RpdmF0aW9uSW5zdGFudFByb3ZpZGVyLm5vdygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgYXV0b21hdGljIHN5bmNocm9uaXphdGlvbiBvZiB7QGxpbmsgV29ya2JlbmNoVmlld30gb24gZXZlcnkgbGF5b3V0IGNoYW5nZS5cbiAgICpcbiAgICogSWYgdGhlIG9wZXJhdGlvbiBpcyBjYW5jZWxsZWQgKGUuZy4sIGR1ZSB0byBhIG5hdmlnYXRpb24gZmFpbHVyZSksIGl0IHJldmVydHMgdGhlIGNoYW5nZXMuXG4gICAqL1xuICBwcml2YXRlIGluc3RhbGxNb2RlbFVwZGF0ZXIoKTogdm9pZCB7XG4gICAgUm91dGluZy5hY3RpdmF0ZWRSb3V0ZSQodGhpcy5pZCwge2VtaXRPbjogJ2Fsd2F5cyd9KVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKChbcHJldmlvdXNSb3V0ZSwgcm91dGVdOiBbQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB8IG51bGwsIEFjdGl2YXRlZFJvdXRlU25hcHNob3RdKSA9PiB7XG4gICAgICAgIGNvbnN0IG5hdmlnYXRpb25Db250ZXh0ID0gdGhpcy5fd29ya2JlbmNoUm91dGVyLmdldEN1cnJlbnROYXZpZ2F0aW9uQ29udGV4dCgpO1xuICAgICAgICBjb25zdCB7bGF5b3V0LCBwcmV2aW91c0xheW91dCwgbGF5b3V0RGlmZn0gPSBuYXZpZ2F0aW9uQ29udGV4dDtcblxuICAgICAgICBpZiAobGF5b3V0RGlmZi5yZW1vdmVkVmlld3MuaW5jbHVkZXModGhpcy5pZCkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uTGF5b3V0Q2hhbmdlKHtsYXlvdXQsIHJvdXRlLCBwcmV2aW91c1JvdXRlfSk7XG5cbiAgICAgICAgLy8gUmV2ZXJ0IGNoYW5nZSBpbiBjYXNlIHRoZSBuYXZpZ2F0aW9uIGZhaWxzLlxuICAgICAgICBpZiAocHJldmlvdXNMYXlvdXQ/Lmhhc1ZpZXcodGhpcy5pZCkpIHtcbiAgICAgICAgICBuYXZpZ2F0aW9uQ29udGV4dC5yZWdpc3RlclVuZG9BY3Rpb24oKCkgPT4gdGhpcy5vbkxheW91dENoYW5nZSh7bGF5b3V0OiBwcmV2aW91c0xheW91dH0pKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3RW52aXJvbm1lbnRJbmplY3Rvci5kZXN0cm95KCk7XG4gICAgdGhpcy5fd29ya2JlbmNoRGlhbG9nUmVnaXN0cnkuZGlhbG9ncyh7dmlld0lkOiB0aGlzLmlkfSkuZm9yRWFjaChkaWFsb2cgPT4gZGlhbG9nLmRlc3Ryb3koKSk7XG4gICAgdGhpcy5wb3J0YWwuZGVzdHJveSgpO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHBzZXVkby10eXBlIGZvciB0aGUgYWN0dWFsIHtAbGluayBWaWV3Q29tcG9uZW50fSB3aGljaCBtdXN0IG5vdCBiZSByZWZlcmVuY2VkIGluIG9yZGVyIHRvIGF2b2lkIGltcG9ydCBjeWNsZXMuXG4gKi9cbnR5cGUgVmlld0NvbXBvbmVudCA9IGFueTtcbiJdfQ==
335
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiybV3b3JrYmVuY2gtdmlldy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3ZpZXcvybV3b3JrYmVuY2gtdmlldy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBeUIsc0JBQXNCLEVBQTRCLE1BQU0saUJBQWlCLENBQUM7QUFDMUcsT0FBTyxFQUFDLGVBQWUsRUFBc0IsTUFBTSwrQkFBK0IsQ0FBQztBQUNuRixPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUUvRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFHdEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXhELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBZSxRQUFRLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBb0IsTUFBTSxFQUFPLE1BQU0sZUFBZSxDQUFDO0FBQzFILE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3RGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRzNELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFL0MsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBR3RFLE1BQU0sT0FBTyxjQUFjO0lBbUR6QixZQUE0QixFQUFVLEVBQUUsT0FBa0Q7UUFBOUQsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQWpEckIsNkJBQXdCLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDdkQsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEMsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUMsNEJBQXVCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDekQscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDNUMsNEJBQXVCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDekQsa0JBQWEsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNoRCxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0MsK0JBQTBCLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDL0QsNkJBQXdCLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFFM0Qsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQStCLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLGNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBa0QsQ0FBQztRQUV0RSxXQUFNLEdBQUcsTUFBTSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUNyQyxhQUFRLEdBQUcsTUFBTSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUN2QyxXQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLGNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsc0JBQWlCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLGVBQVUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUMsQ0FBQyxFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDcEcsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBYzNDLG1CQUFjLEdBQUcsTUFBTSxDQUFxQixTQUFTLENBQUMsQ0FBQztRQUN2RCxtQkFBYyxHQUFHLE1BQU0sQ0FBaUIsRUFBRSxDQUFDLENBQUM7UUFDNUMsb0JBQWUsR0FBRyxNQUFNLENBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLGdCQUFXLEdBQUcsTUFBTSxDQUFlLEVBQUUsRUFBRSxFQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDLENBQUM7UUFDdkYsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlDLFNBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFbkUsU0FBSSxHQUFHLE1BQU0sQ0FBaUIsSUFBSyxDQUFDLENBQUM7UUFDckMsV0FBTSxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVoQyxlQUFVLEdBQUcsWUFBWSxDQUEwQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFcEUsY0FBUyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7UUFHMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHNCQUFzQixDQUFDLENBQUM7YUFDdkcsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLEVBQUUsdUJBQXVCLENBQUMsRUFBRSxFQUFFLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUMsRUFDbEgsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUN0RCxXQUFXLENBQUMsQ0FBQyxRQUFrQyxFQUFpQyxFQUFFLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxDQUN0RyxDQUFDO1FBRUosSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFTyxZQUFZLENBQUMsYUFBMkM7UUFDOUQsT0FBTyxJQUFJLGlCQUFpQixDQUFDLGFBQWEsRUFBRTtZQUMxQyxTQUFTLEVBQUU7Z0JBQ1Qsa0JBQWtCLENBQUMsSUFBSSxDQUFDO2dCQUN4Qix5SEFBeUg7Z0JBQ3pILGtIQUFrSDtnQkFDbEgsMkhBQTJIO2dCQUMzSCxFQUFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixFQUFDO2dCQUN6RSxpR0FBaUc7Z0JBQ2pHLEVBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLHFEQUFxRCxDQUFDLEVBQUM7Z0JBQzdHLEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLHNEQUFzRCxDQUFDLEVBQUM7YUFDaEg7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssY0FBYyxDQUFDLE1BQWlIO1FBQ3RJLE1BQU0sRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBQyxHQUFHLE1BQU0sQ0FBQztRQUU5QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTVELElBQUksQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUV2Qyx3REFBd0Q7UUFDeEQsTUFBTSxZQUFZLEdBQUcsS0FBSyxFQUFFLFdBQVcsS0FBSyxhQUFhLEVBQUUsV0FBVyxDQUFDO1FBQ3ZFLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLEtBQU0sRUFBRSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDL0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLEtBQU0sRUFBRSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDbkYsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFNLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLENBQUM7UUFFRCw4RkFBOEY7UUFDOUYsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3JFLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFFRCxxSEFBcUg7UUFDckgsMkhBQTJIO1FBQzNILCtIQUErSDtRQUMvSCxxRUFBcUU7UUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNoRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3JKLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sQ0FBQztRQUMvQyxPQUFPLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxvQkFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDO0lBQ25ELENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBVyxLQUFLLENBQUMsS0FBb0I7UUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBVyxPQUFPLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFXLEtBQUssQ0FBQyxLQUFjO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsZ0JBQWdCLENBQUMsZ0JBQXlCO1FBQ25ELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQVcsUUFBUSxDQUFDLFFBQTJCO1FBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFBVyxRQUFRLENBQUMsUUFBaUI7UUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVELGtCQUFrQjtJQUNYLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBd0M7UUFDNUQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDMUMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FDbkMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBQyxZQUFZLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLG1EQUFtRDtRQUNuSixFQUFDLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBQyxDQUNsRCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxrQkFBa0I7SUFDWCxLQUFLLENBQUMsTUFBMEY7UUFDckcsUUFBUSxNQUFNLElBQUksTUFBTSxFQUFFLENBQUM7WUFDekIsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUNaLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEQsQ0FBQztZQUNELEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDakIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDckUsQ0FBQztZQUNELEtBQUssYUFBYSxDQUFDLENBQUMsQ0FBQztnQkFDbkIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMxRyxDQUFDO1lBQ0QsS0FBSyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7Z0JBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDdEMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNGLENBQUM7WUFDRCxLQUFLLG1CQUFtQixDQUFDLENBQUMsQ0FBQztnQkFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN0QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUYsQ0FBQztZQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ1IsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUtNLElBQUksQ0FBQyxNQUE2QixFQUFFLE9BQThFO1FBQ3ZILE1BQU0sTUFBTSxHQUF3QjtZQUNsQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDOUIsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNmLGlCQUFpQixFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ3JDLGVBQWUsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25DLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JDLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRTtTQUNsQyxDQUFDO1FBRUYsSUFBSSxNQUFNLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUMsRUFBQyxDQUFDLENBQUM7UUFDN0YsQ0FBQzthQUNJLENBQUM7WUFDSixJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUM7Z0JBQzFDLE1BQU07Z0JBQ04sTUFBTSxFQUFFO29CQUNOLFNBQVMsRUFBRSxNQUFNO29CQUNqQixNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU07b0JBQ3ZCLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQyxZQUFZO2lCQUN2RDthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1gsZ0JBQWdCLENBQUMsUUFBMkI7UUFDakQsTUFBTSxTQUFTLEdBQUcsR0FBc0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztRQUNwRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDaEYsT0FBTztZQUNMLE9BQU8sRUFBRSxHQUFTLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztZQUMvRixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGVBQWUsQ0FBSSxXQUFzQyxFQUFFLE1BQVM7UUFDekUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNJLGlCQUFpQixDQUFDLFdBQWtEO1FBQ3pFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBSSxXQUFzQztRQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRCxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0I7UUFDdEIsT0FBTyxPQUFPLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxlQUFlO1FBQ3JCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2xFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssbUJBQW1CO1FBQ3pCLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUMsQ0FBQzthQUNqRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUMxQixTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQTBELEVBQUUsRUFBRTtZQUM3RixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1lBQzlFLE1BQU0sRUFBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBQyxHQUFHLGlCQUFpQixDQUFDO1lBRS9ELElBQUksVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzlDLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQztZQUVwRCw4Q0FBOEM7WUFDOUMsSUFBSSxjQUFjLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUMsTUFBTSxFQUFFLGNBQWMsRUFBQyxDQUFDLENBQUMsQ0FBQztZQUM1RixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIENoaWxkcmVuT3V0bGV0Q29udGV4dHMsIE91dGxldENvbnRleHQsIFVybFNlZ21lbnR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1ZpZXdEcmFnU2VydmljZSwgVmlld01vdmVFdmVudFNvdXJjZX0gZnJvbSAnLi4vdmlldy1kbmQvdmlldy1kcmFnLnNlcnZpY2UnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7ZmlsdGVyQXJyYXksIG1hcEFycmF5fSBmcm9tICdAc2Npb24vdG9vbGtpdC9vcGVyYXRvcnMnO1xuaW1wb3J0IHtEaXNwb3NhYmxlfSBmcm9tICcuLi9jb21tb24vZGlzcG9zYWJsZSc7XG5pbXBvcnQge3Rocm93RXJyb3J9IGZyb20gJy4uL2NvbW1vbi90aHJvdy1lcnJvci51dGlsJztcbmltcG9ydCB7V29ya2JlbmNoTWVudUl0ZW0sIFdvcmtiZW5jaE1lbnVJdGVtRmFjdG9yeUZufSBmcm9tICcuLi93b3JrYmVuY2gubW9kZWwnO1xuaW1wb3J0IHtWaWV3SWQsIFdvcmtiZW5jaFZpZXd9IGZyb20gJy4vd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hQYXJ0fSBmcm9tICcuLi9wYXJ0L3dvcmtiZW5jaC1wYXJ0Lm1vZGVsJztcbmltcG9ydCB7ybVXb3JrYmVuY2hTZXJ2aWNlfSBmcm9tICcuLi/JtXdvcmtiZW5jaC5zZXJ2aWNlJztcbmltcG9ydCB7Q29tcG9uZW50VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1diQ29tcG9uZW50UG9ydGFsfSBmcm9tICcuLi9wb3J0YWwvd2ItY29tcG9uZW50LXBvcnRhbCc7XG5pbXBvcnQge0Fic3RyYWN0VHlwZSwgY29tcHV0ZWQsIGVmZmVjdCwgRW52aXJvbm1lbnRJbmplY3RvciwgaW5qZWN0LCBJbmplY3RvciwgU2lnbmFsLCBzaWduYWwsIFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaFBhcnR9IGZyb20gJy4uL3BhcnQvybV3b3JrYmVuY2gtcGFydC5tb2RlbCc7XG5pbXBvcnQge0FjdGl2YXRpb25JbnN0YW50UHJvdmlkZXJ9IGZyb20gJy4uL2FjdGl2YXRpb24taW5zdGFudC5wcm92aWRlcic7XG5pbXBvcnQge1dPUktCRU5DSF9QQVJUX1JFR0lTVFJZfSBmcm9tICcuLi9wYXJ0L3dvcmtiZW5jaC1wYXJ0LnJlZ2lzdHJ5JztcbmltcG9ydCB7V29ya2JlbmNoTGF5b3V0U2VydmljZX0gZnJvbSAnLi4vbGF5b3V0L3dvcmtiZW5jaC1sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQge1dvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5fSBmcm9tICcuLi9kaWFsb2cvd29ya2JlbmNoLWRpYWxvZy5yZWdpc3RyeSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZCwgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtwcm92aWRlVmlld0NvbnRleHR9IGZyb20gJy4vdmlldy1jb250ZXh0LXByb3ZpZGVyJztcbmltcG9ydCB7ybVXb3JrYmVuY2hEaWFsb2d9IGZyb20gJy4uL2RpYWxvZy/JtXdvcmtiZW5jaC1kaWFsb2cnO1xuaW1wb3J0IHtCbG9ja2FibGV9IGZyb20gJy4uL2dsYXNzLXBhbmUvYmxvY2thYmxlJztcbmltcG9ydCB7V09SS0JFTkNIX0lEfSBmcm9tICcuLi93b3JrYmVuY2gtaWQnO1xuaW1wb3J0IHtDbGFzc0xpc3R9IGZyb20gJy4uL2NvbW1vbi9jbGFzcy1saXN0JztcbmltcG9ydCB7TmF2aWdhdGlvbkRhdGEsIE5hdmlnYXRpb25TdGF0ZX0gZnJvbSAnLi4vcm91dGluZy9yb3V0aW5nLm1vZGVsJztcbmltcG9ydCB7Um91dGluZ30gZnJvbSAnLi4vcm91dGluZy9yb3V0aW5nLnV0aWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hSb3V0ZURhdGF9IGZyb20gJy4uL3JvdXRpbmcvd29ya2JlbmNoLXJvdXRlLWRhdGEnO1xuaW1wb3J0IHvJtVdvcmtiZW5jaFJvdXRlcn0gZnJvbSAnLi4vcm91dGluZy/JtXdvcmtiZW5jaC1yb3V0ZXIuc2VydmljZSc7XG5pbXBvcnQge8m1V29ya2JlbmNoTGF5b3V0fSBmcm9tICcuLi9sYXlvdXQvybV3b3JrYmVuY2gtbGF5b3V0JztcblxuZXhwb3J0IGNsYXNzIMm1V29ya2JlbmNoVmlldyBpbXBsZW1lbnRzIFdvcmtiZW5jaFZpZXcsIEJsb2NrYWJsZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdmlld0Vudmlyb25tZW50SW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3dvcmtiZW5jaElkID0gaW5qZWN0KFdPUktCRU5DSF9JRCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3dvcmtiZW5jaFNlcnZpY2UgPSBpbmplY3QoybVXb3JrYmVuY2hTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfd29ya2JlbmNoTGF5b3V0U2VydmljZSA9IGluamVjdChXb3JrYmVuY2hMYXlvdXRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfd29ya2JlbmNoUm91dGVyID0gaW5qZWN0KMm1V29ya2JlbmNoUm91dGVyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2hpbGRyZW5PdXRsZXRDb250ZXh0cyA9IGluamVjdChDaGlsZHJlbk91dGxldENvbnRleHRzKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGFydFJlZ2lzdHJ5ID0gaW5qZWN0KFdPUktCRU5DSF9QQVJUX1JFR0lTVFJZKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdmlld0RyYWdTZXJ2aWNlID0gaW5qZWN0KFZpZXdEcmFnU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2YXRpb25JbnN0YW50UHJvdmlkZXIgPSBpbmplY3QoQWN0aXZhdGlvbkluc3RhbnRQcm92aWRlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3dvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5ID0gaW5qZWN0KFdvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9tZW51SXRlbVByb3ZpZGVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdvcmtiZW5jaE1lbnVJdGVtRmFjdG9yeUZuW10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWRhcHRlcnMgPSBuZXcgTWFwPFR5cGU8dW5rbm93bj4gfCBBYnN0cmFjdFR5cGU8dW5rbm93bj4sIHVua25vd24+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdGl0bGUgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2hlYWRpbmcgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RpcnR5ID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2xvc2FibGUgPSBzaWduYWwodHJ1ZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Nsb3NhYmxlQ29tcHV0ZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9jbG9zYWJsZSgpICYmICF0aGlzLl9ibG9ja2VkQnkoKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Jsb2NrZWRCeSA9IHRvU2lnbmFsKGluamVjdChXb3JrYmVuY2hEaWFsb2dSZWdpc3RyeSkudG9wJCh7dmlld0lkOiB0aGlzLmlkfSksIHtyZXF1aXJlU3luYzogdHJ1ZX0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zY3JvbGxlZEludG9WaWV3ID0gc2lnbmFsKHRydWUpO1xuXG4gIHByaXZhdGUgX2FjdGl2YXRpb25JbnN0YW50OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXMgdGhlIHtAbGluayBNVmlld30uXG4gICAqXG4gICAqIEEgdmlldyBoYW5kbGUgcmVwcmVzZW50cyBhIHZpZXcgd2l0aCBhIHBhcnRpY3VsYXIgdmlldyBpZC4gRGlmZmVyZW50IHtAbGluayBNVmlld31zIG9mIHRoZSBzYW1lIHZpZXcgaWQgbWF5IHNoYXJlIHRoZSBoYW5kbGUuXG4gICAqIEZvciBleGFtcGxlLCB3aGVuIGNoYW5naW5nIHRoZSBsYXlvdXQsIHZpZXcgaGFuZGxlcyBmb3Igdmlld3Mgd2l0aCB0aGUgc2FtZSB2aWV3IGlkIHdpbGwgYmUgcmV1c2VkLCByZWdhcmRsZXNzIG9mXG4gICAqIHdoZXRoZXIgdGhleSBoYXZlIHRoZSBzYW1lIHtAbGluayBNVmlld30uXG4gICAqL1xuICBwdWJsaWMgdWlkITogc3RyaW5nO1xuICBwdWJsaWMgYWx0ZXJuYXRpdmVJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgbmF2aWdhdGlvbklkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBuYXZpZ2F0aW9uSGludCA9IHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyBuYXZpZ2F0aW9uRGF0YSA9IHNpZ25hbDxOYXZpZ2F0aW9uRGF0YT4oe30pO1xuICBwdWJsaWMgbmF2aWdhdGlvblN0YXRlID0gc2lnbmFsPE5hdmlnYXRpb25TdGF0ZT4oe30pO1xuICBwdWJsaWMgdXJsU2VnbWVudHMgPSBzaWduYWw8VXJsU2VnbWVudFtdPihbXSwge2VxdWFsOiAoYSwgYikgPT4gYS5qb2luKCcvJykgPT09IGIuam9pbignLycpfSk7XG4gIHB1YmxpYyBwb3NpdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGFydCgpLnZpZXdJZHMoKS5pbmRleE9mKHRoaXMuaWQpKTtcbiAgcHVibGljIGZpcnN0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wb3NpdGlvbigpID09PSAwKTtcbiAgcHVibGljIGxhc3QgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBvc2l0aW9uKCkgPT09IHRoaXMucGFydCgpLnZpZXdJZHMoKS5sZW5ndGggLSAxKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcGFydCA9IHNpZ25hbDzJtVdvcmtiZW5jaFBhcnQ+KG51bGwhKTtcbiAgcHVibGljIHJlYWRvbmx5IGFjdGl2ZSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBtZW51SXRlbXMkOiBPYnNlcnZhYmxlPFdvcmtiZW5jaE1lbnVJdGVtW10+O1xuICBwdWJsaWMgcmVhZG9ubHkgYmxvY2tlZEJ5JCA9IHRvT2JzZXJ2YWJsZTzJtVdvcmtiZW5jaERpYWxvZyB8IG51bGw+KHRoaXMuX2Jsb2NrZWRCeSk7XG4gIHB1YmxpYyByZWFkb25seSBwb3J0YWw6IFdiQ29tcG9uZW50UG9ydGFsO1xuICBwdWJsaWMgcmVhZG9ubHkgY2xhc3NMaXN0ID0gbmV3IENsYXNzTGlzdCgpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBpZDogVmlld0lkLCBvcHRpb25zOiB7Y29tcG9uZW50OiBDb21wb25lbnRUeXBlPFZpZXdDb21wb25lbnQ+fSkge1xuICAgIHRoaXMubWVudUl0ZW1zJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX21lbnVJdGVtUHJvdmlkZXJzJCwgdGhpcy5fd29ya2JlbmNoU2VydmljZS52aWV3TWVudUl0ZW1Qcm92aWRlcnMkXSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKFtsb2NhbE1lbnVJdGVtUHJvdmlkZXJzLCBnbG9iYWxNZW51SXRlbVByb3ZpZGVyc10pID0+IGxvY2FsTWVudUl0ZW1Qcm92aWRlcnMuY29uY2F0KGdsb2JhbE1lbnVJdGVtUHJvdmlkZXJzKSksXG4gICAgICAgIG1hcEFycmF5KG1lbnVJdGVtRmFjdG9yeUZuID0+IG1lbnVJdGVtRmFjdG9yeUZuKHRoaXMpKSxcbiAgICAgICAgZmlsdGVyQXJyYXkoKG1lbnVJdGVtOiBXb3JrYmVuY2hNZW51SXRlbSB8IG51bGwpOiBtZW51SXRlbSBpcyBXb3JrYmVuY2hNZW51SXRlbSA9PiBtZW51SXRlbSAhPT0gbnVsbCksXG4gICAgICApO1xuXG4gICAgdGhpcy5wb3J0YWwgPSB0aGlzLmNyZWF0ZVBvcnRhbChvcHRpb25zLmNvbXBvbmVudCk7XG4gICAgdGhpcy50b3VjaE9uQWN0aXZhdGUoKTtcbiAgICB0aGlzLmluc3RhbGxNb2RlbFVwZGF0ZXIoKTtcbiAgICB0aGlzLm9uTGF5b3V0Q2hhbmdlKHtsYXlvdXQ6IHRoaXMuX3dvcmtiZW5jaFJvdXRlci5nZXRDdXJyZW50TmF2aWdhdGlvbkNvbnRleHQoKS5sYXlvdXR9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUG9ydGFsKHZpZXdDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8Vmlld0NvbXBvbmVudD4pOiBXYkNvbXBvbmVudFBvcnRhbCB7XG4gICAgcmV0dXJuIG5ldyBXYkNvbXBvbmVudFBvcnRhbCh2aWV3Q29tcG9uZW50LCB7XG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZVZpZXdDb250ZXh0KHRoaXMpLFxuICAgICAgICAvLyBGb3IgZWFjaCB2aWV3LCB0aGUgd29ya2JlbmNoIHJlZ2lzdGVycyBhdXhpbGlhcnkgcm91dGVzIG9mIGFsbCB0b3AtbGV2ZWwgcm91dGVzLCBlbmFibGluZyByb3V0aW5nIG9uIGEgcGVyLXZpZXcgYmFzaXMuXG4gICAgICAgIC8vIEJ1dCwgaWYgdGhlIHdvcmtiZW5jaCBjb21wb25lbnQgaXRzZWxmIGlzIGRpc3BsYXllZCBpbiBhIHJvdXRlciBvdXRsZXQsIHZpZXcgb3V0bGV0cyBhcmUgbm90IHRvcC1sZXZlbCBvdXRsZXRzLlxuICAgICAgICAvLyBUaGVyZWZvcmUsIHdlIGluc3RydWN0IHRoZSBvdXRsZXQgdG8gYWN0IGFzIGEgdG9wLWxldmVsIG91dGxldCB0byBiZSB0aGUgdGFyZ2V0IG9mIHRoZSByZWdpc3RlcmVkIHRvcC1sZXZlbCB2aWV3IHJvdXRlcy5cbiAgICAgICAge3Byb3ZpZGU6IENoaWxkcmVuT3V0bGV0Q29udGV4dHMsIHVzZVZhbHVlOiB0aGlzLl9jaGlsZHJlbk91dGxldENvbnRleHRzfSxcbiAgICAgICAgLy8gUHJldmVudCBpbmplY3RpbmcgdGhpcyBwYXJ0IGludG8gdGhlIHZpZXcgYmVjYXVzZSB0aGUgdmlldyBtYXkgYmUgZHJhZ2dlZCB0byBhIGRpZmZlcmVudCBwYXJ0LlxuICAgICAgICB7cHJvdmlkZTogV29ya2JlbmNoUGFydCwgdXNlRmFjdG9yeTogKCkgPT4gdGhyb3dFcnJvcihgW051bGxJbmplY3RvckVycm9yXSBObyBwcm92aWRlciBmb3IgJ1dvcmtiZW5jaFBhcnQnYCl9LFxuICAgICAgICB7cHJvdmlkZTogybVXb3JrYmVuY2hQYXJ0LCB1c2VGYWN0b3J5OiAoKSA9PiB0aHJvd0Vycm9yKGBbTnVsbEluamVjdG9yRXJyb3JdIE5vIHByb3ZpZGVyIGZvciAnybVXb3JrYmVuY2hQYXJ0J2ApfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIGludm9rZWQgd2hlbiB0aGUgd29ya2JlbmNoIGxheW91dCBoYXMgY2hhbmdlZC5cbiAgICpcbiAgICogVGhpcyBtZXRob2Q6XG4gICAqIC0gaXMgY2FsbGVkIG9uIGV2ZXJ5IGxheW91dCBjaGFuZ2UsIGluY2x1ZGluZyBjaGFuZ2VzIG5vdCByZWxldmFudCBmb3IgdGhpcyB2aWV3LCBlLmcuLCB0byB1cGRhdGUgdGhlIHZpZXcncyBwYXJ0LlxuICAgKiAtIGlzIGNhbGxlZCBhZnRlciBkZXN0cm95ZWQgdGhlIHByZXZpb3VzIGNvbXBvbmVudCAoaWYgYW55KSwgYnV0IGJlZm9yZSBjb25zdHJ1Y3RpbmcgdGhlIG5ldyBjb21wb25lbnQuXG4gICAqL1xuICBwcml2YXRlIG9uTGF5b3V0Q2hhbmdlKGNoYW5nZToge2xheW91dDogybVXb3JrYmVuY2hMYXlvdXQ7IHByZXZpb3VzUm91dGU/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgbnVsbDsgcm91dGU/OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90fSk6IHZvaWQge1xuICAgIGNvbnN0IHtsYXlvdXQsIHJvdXRlLCBwcmV2aW91c1JvdXRlfSA9IGNoYW5nZTtcblxuICAgIGNvbnN0IG1QYXJ0ID0gbGF5b3V0LnBhcnQoe3ZpZXdJZDogdGhpcy5pZH0pO1xuICAgIGNvbnN0IG1WaWV3ID0gbGF5b3V0LnZpZXcoe3ZpZXdJZDogdGhpcy5pZH0pO1xuXG4gICAgdGhpcy5wYXJ0LnNldCh0aGlzLl9wYXJ0UmVnaXN0cnkuZ2V0KG1QYXJ0LmlkKSk7XG4gICAgdGhpcy5hY3RpdmUuc2V0KG1QYXJ0LmFjdGl2ZVZpZXdJZCA9PT0gdGhpcy5pZCk7XG4gICAgdGhpcy51cmxTZWdtZW50cy5zZXQobGF5b3V0LnVybFNlZ21lbnRzKHt2aWV3SWQ6IHRoaXMuaWR9KSk7XG5cbiAgICB0aGlzLnVpZCA9IG1WaWV3LnVpZDtcbiAgICB0aGlzLmFsdGVybmF0aXZlSWQgPSBtVmlldy5hbHRlcm5hdGl2ZUlkO1xuICAgIHRoaXMuY2xhc3NMaXN0LmxheW91dCA9IG1WaWV3LmNzc0NsYXNzO1xuXG4gICAgLy8gVGVzdCBpZiBhIG5ldyByb3V0ZSBoYXMgYmVlbiBhY3RpdmF0ZWQgZm9yIHRoaXMgdmlldy5cbiAgICBjb25zdCByb3V0ZUNoYW5nZWQgPSByb3V0ZT8ucm91dGVDb25maWcgIT09IHByZXZpb3VzUm91dGU/LnJvdXRlQ29uZmlnO1xuICAgIGlmIChyb3V0ZUNoYW5nZWQpIHtcbiAgICAgIHRoaXMudGl0bGUgPSBSb3V0aW5nLmxvb2t1cFJvdXRlRGF0YShyb3V0ZSEsIFdvcmtiZW5jaFJvdXRlRGF0YS50aXRsZSkgPz8gbnVsbDtcbiAgICAgIHRoaXMuaGVhZGluZyA9IFJvdXRpbmcubG9va3VwUm91dGVEYXRhKHJvdXRlISwgV29ya2JlbmNoUm91dGVEYXRhLmhlYWRpbmcpID8/IG51bGw7XG4gICAgICB0aGlzLmRpcnR5ID0gZmFsc2U7XG4gICAgICB0aGlzLmNsYXNzTGlzdC5yb3V0ZSA9IFJvdXRpbmcubG9va3VwUm91dGVEYXRhKHJvdXRlISwgV29ya2JlbmNoUm91dGVEYXRhLmNzc0NsYXNzKTtcbiAgICAgIHRoaXMuY2xhc3NMaXN0LmFwcGxpY2F0aW9uID0gW107XG4gICAgfVxuXG4gICAgLy8gVGVzdCBpZiB0aGlzIHZpZXcgd2FzIG5hdmlnYXRlZC4gTmF2aWdhdGlvbiBkb2VzIG5vdCBuZWNlc3NhcmlseSBjYXVzZSB0aGUgcm91dGUgdG8gY2hhbmdlLlxuICAgIGNvbnN0IG5hdmlnYXRpb25DaGFuZ2VkID0gbVZpZXcubmF2aWdhdGlvbj8uaWQgIT09IHRoaXMubmF2aWdhdGlvbklkO1xuICAgIGlmIChuYXZpZ2F0aW9uQ2hhbmdlZCkge1xuICAgICAgdGhpcy5uYXZpZ2F0aW9uSWQgPSBtVmlldy5uYXZpZ2F0aW9uPy5pZDtcbiAgICAgIHRoaXMuY2xhc3NMaXN0Lm5hdmlnYXRpb24gPSBtVmlldy5uYXZpZ2F0aW9uPy5jc3NDbGFzcztcbiAgICAgIHRoaXMubmF2aWdhdGlvbkhpbnQuc2V0KG1WaWV3Lm5hdmlnYXRpb24/LmhpbnQpO1xuICAgICAgdGhpcy5uYXZpZ2F0aW9uRGF0YS5zZXQobVZpZXcubmF2aWdhdGlvbj8uZGF0YSA/PyB7fSk7XG4gICAgICB0aGlzLm5hdmlnYXRpb25TdGF0ZS5zZXQobGF5b3V0Lm5hdmlnYXRpb25TdGF0ZSh7dmlld0lkOiB0aGlzLmlkfSkpO1xuICAgIH1cblxuICAgIC8vIElmIHRoaXMgdmlldyBpcyBpbmFjdGl2ZSwgQW5ndWxhciBkb2VzIG5vdCBjaGVjayBpdCBmb3IgY2hhbmdlcyBhcyBpdCBpcyBkZXRhY2hlZCBmcm9tIHRoZSBBbmd1bGFyIGNvbXBvbmVudCB0cmVlLlxuICAgIC8vIFRvIGNvbXBsZXRlIHRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgcm91dGVkIGNvbXBvbmVudCAodG8gZW5zdXJlIHRoYXQgYG5nT25Jbml0YCBpcyBjYWxsZWQpLCB3ZSBtYW51YWxseSB0cmlnZ2VyIGNoYW5nZVxuICAgIC8vIGRldGVjdGlvbi4gV2UgY2Fubm90IHBlcmZvcm0gY2hhbmdlIGRldGVjdGlvbiByaWdodCBub3cgYmVjYXVzZSB0aGUgcm91dGVkIGNvbXBvbmVudCBoYXMgbm90IGJlZW4gYWN0aXZhdGVkL2NvbnN0cnVjdGVkIHlldC5cbiAgICAvLyBVc2UgY2FzZTogTmF2aWdhdGluZyBhbiAoZXhpc3RpbmcpIGluYWN0aXZlIHZpZXcgdG8gYW5vdGhlciByb3V0ZS5cbiAgICBpZiAoIXRoaXMuYWN0aXZlKCkgJiYgdGhpcy5wb3J0YWwuaXNDb25zdHJ1Y3RlZCAmJiByb3V0ZUNoYW5nZWQpIHtcbiAgICAgIHRoaXMuX3dvcmtiZW5jaFJvdXRlci5nZXRDdXJyZW50TmF2aWdhdGlvbkNvbnRleHQoKS5yZWdpc3RlclBvc3ROYXZpZ2F0aW9uQWN0aW9uKCgpID0+IHRoaXMucG9ydGFsLmNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjb21wb25lbnQgb2YgdGhpcyB2aWV3LiBSZXR1cm5zIGBudWxsYCBpZiBub3QgbmF2aWdhdGVkIHRoZSB2aWV3LCBvciBiZWZvcmUgaXQgd2FzIGFjdGl2YXRlZCBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gICAqL1xuICBwdWJsaWMgZ2V0Q29tcG9uZW50PFQgPSB1bmtub3duPigpOiBUIHwgbnVsbCB7XG4gICAgY29uc3Qgb3V0bGV0ID0gdGhpcy5nZXRPdXRsZXRDb250ZXh0KCk/Lm91dGxldDtcbiAgICByZXR1cm4gb3V0bGV0Py5pc0FjdGl2YXRlZCA/IG91dGxldC5jb21wb25lbnQgYXMgVCA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgaW5qZWN0b3Igb2YgdGhlIGNvbXBvbmVudC4gUmV0dXJucyBgbnVsbGAgaWYgbm90IG5hdmlnYXRlZCB0aGUgdmlldywgb3IgYmVmb3JlIGl0IHdhcyBhY3RpdmF0ZWQgZm9yIHRoZSBmaXJzdCB0aW1lLlxuICAgKi9cbiAgcHVibGljIGdldENvbXBvbmVudEluamVjdG9yKCk6IEluamVjdG9yIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0T3V0bGV0Q29udGV4dCgpPy5pbmplY3RvciA/PyBudWxsO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBnZXQgdGl0bGUoKTogU2lnbmFsPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5fdGl0bGU7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIHNldCB0aXRsZSh0aXRsZTogc3RyaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuX3RpdGxlLnNldCh0aXRsZSk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldCBoZWFkaW5nKCk6IFNpZ25hbDxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuX2hlYWRpbmc7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIHNldCBoZWFkaW5nKGhlYWRpbmc6IHN0cmluZyB8IG51bGwpIHtcbiAgICB0aGlzLl9oZWFkaW5nLnNldChoZWFkaW5nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgZ2V0IGRpcnR5KCk6IFNpZ25hbDxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RpcnR5O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBzZXQgZGlydHkoZGlydHk6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kaXJ0eS5zZXQoZGlydHkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBnZXQgc2Nyb2xsZWRJbnRvVmlldygpOiBTaWduYWw8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9zY3JvbGxlZEludG9WaWV3O1xuICB9XG5cbiAgcHVibGljIHNldCBzY3JvbGxlZEludG9WaWV3KHNjcm9sbGVkSW50b1ZpZXc6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zY3JvbGxlZEludG9WaWV3LnNldChzY3JvbGxlZEludG9WaWV3KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBwdWJsaWMgc2V0IGNzc0NsYXNzKGNzc0NsYXNzOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgIHRoaXMuY2xhc3NMaXN0LmFwcGxpY2F0aW9uID0gY3NzQ2xhc3M7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldCBjc3NDbGFzcygpOiBTaWduYWw8c3RyaW5nW10+IHtcbiAgICByZXR1cm4gdGhpcy5jbGFzc0xpc3QuYXBwbGljYXRpb247XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIHNldCBjbG9zYWJsZShjbG9zYWJsZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Nsb3NhYmxlLnNldChjbG9zYWJsZSk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGdldCBjbG9zYWJsZSgpOiBTaWduYWw8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9jbG9zYWJsZUNvbXB1dGVkO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBhc3luYyBhY3RpdmF0ZShvcHRpb25zPzoge3NraXBMb2NhdGlvbkNoYW5nZT86IGJvb2xlYW59KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuYWN0aXZlKCkgJiYgdGhpcy5wYXJ0KCkuYWN0aXZlKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnRMYXlvdXQgPSB0aGlzLl93b3JrYmVuY2hMYXlvdXRTZXJ2aWNlLmxheW91dCgpO1xuICAgIHJldHVybiB0aGlzLl93b3JrYmVuY2hSb3V0ZXIubmF2aWdhdGUoXG4gICAgICBsYXlvdXQgPT4gY3VycmVudExheW91dCA9PT0gbGF5b3V0ID8gbGF5b3V0LmFjdGl2YXRlVmlldyh0aGlzLmlkLCB7YWN0aXZhdGVQYXJ0OiB0cnVlfSkgOiBudWxsLCAvLyBjYW5jZWwgbmF2aWdhdGlvbiBpZiB0aGUgbGF5b3V0IGhhcyBiZWNvbWUgc3RhbGVcbiAgICAgIHtza2lwTG9jYXRpb25DaGFuZ2U6IG9wdGlvbnM/LnNraXBMb2NhdGlvbkNoYW5nZX0sXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZhdGlvbkluc3RhbnQoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZhdGlvbkluc3RhbnQ7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIGNsb3NlKHRhcmdldD86ICdzZWxmJyB8ICdhbGwtdmlld3MnIHwgJ290aGVyLXZpZXdzJyB8ICd2aWV3cy10by10aGUtcmlnaHQnIHwgJ3ZpZXdzLXRvLXRoZS1sZWZ0Jyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHN3aXRjaCAodGFyZ2V0IHx8ICdzZWxmJykge1xuICAgICAgY2FzZSAnc2VsZic6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtiZW5jaFNlcnZpY2UuY2xvc2VWaWV3cyh0aGlzLmlkKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2FsbC12aWV3cyc6IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtiZW5jaFNlcnZpY2UuY2xvc2VWaWV3cyguLi50aGlzLnBhcnQoKS52aWV3SWRzKCkpO1xuICAgICAgfVxuICAgICAgY2FzZSAnb3RoZXItdmlld3MnOiB7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3JrYmVuY2hTZXJ2aWNlLmNsb3NlVmlld3MoLi4udGhpcy5wYXJ0KCkudmlld0lkcygpLmZpbHRlcih2aWV3SWQgPT4gdmlld0lkICE9PSB0aGlzLmlkKSk7XG4gICAgICB9XG4gICAgICBjYXNlICd2aWV3cy10by10aGUtcmlnaHQnOiB7XG4gICAgICAgIGNvbnN0IHZpZXdJZHMgPSB0aGlzLnBhcnQoKS52aWV3SWRzKCk7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3JrYmVuY2hTZXJ2aWNlLmNsb3NlVmlld3MoLi4udmlld0lkcy5zbGljZSh2aWV3SWRzLmluZGV4T2YodGhpcy5pZCkgKyAxKSk7XG4gICAgICB9XG4gICAgICBjYXNlICd2aWV3cy10by10aGUtbGVmdCc6IHtcbiAgICAgICAgY29uc3Qgdmlld0lkcyA9IHRoaXMucGFydCgpLnZpZXdJZHMoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtiZW5jaFNlcnZpY2UuY2xvc2VWaWV3cyguLi52aWV3SWRzLnNsaWNlKDAsIHZpZXdJZHMuaW5kZXhPZih0aGlzLmlkKSkpO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgcHVibGljIG1vdmUodGFyZ2V0OiAnbmV3LXdpbmRvdycpOiB2b2lkO1xuICBwdWJsaWMgbW92ZShwYXJ0SWQ6IHN0cmluZywgb3B0aW9ucz86IHtyZWdpb24/OiAnbm9ydGgnIHwgJ3NvdXRoJyB8ICd3ZXN0JyB8ICdlYXN0Jzsgd29ya2JlbmNoSWQ/OiBzdHJpbmd9KTogdm9pZDtcbiAgcHVibGljIG1vdmUodGFyZ2V0OiAnbmV3LXdpbmRvdycgfCBzdHJpbmcsIG9wdGlvbnM/OiB7cmVnaW9uPzogJ25vcnRoJyB8ICdzb3V0aCcgfCAnd2VzdCcgfCAnZWFzdCc7IHdvcmtiZW5jaElkPzogc3RyaW5nfSk6IHZvaWQge1xuICAgIGNvbnN0IHNvdXJjZTogVmlld01vdmVFdmVudFNvdXJjZSA9IHtcbiAgICAgIHdvcmtiZW5jaElkOiB0aGlzLl93b3JrYmVuY2hJZCxcbiAgICAgIHBhcnRJZDogdGhpcy5wYXJ0KCkuaWQsXG4gICAgICB2aWV3SWQ6IHRoaXMuaWQsXG4gICAgICBhbHRlcm5hdGl2ZVZpZXdJZDogdGhpcy5hbHRlcm5hdGl2ZUlkLFxuICAgICAgdmlld1VybFNlZ21lbnRzOiB0aGlzLnVybFNlZ21lbnRzKCksXG4gICAgICBuYXZpZ2F0aW9uSGludDogdGhpcy5uYXZpZ2F0aW9uSGludCgpLFxuICAgICAgbmF2aWdhdGlvbkRhdGE6IHRoaXMubmF2aWdhdGlvbkRhdGEoKSxcbiAgICAgIGNsYXNzTGlzdDogdGhpcy5jbGFzc0xpc3QuYXNNYXAoKSxcbiAgICB9O1xuXG4gICAgaWYgKHRhcmdldCA9PT0gJ25ldy13aW5kb3cnKSB7XG4gICAgICB0aGlzLl92aWV3RHJhZ1NlcnZpY2UuZGlzcGF0Y2hWaWV3TW92ZUV2ZW50KHtzb3VyY2UsIHRhcmdldDoge3dvcmtiZW5jaElkOiAnbmV3LXdpbmRvdyd9fSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5fdmlld0RyYWdTZXJ2aWNlLmRpc3BhdGNoVmlld01vdmVFdmVudCh7XG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgdGFyZ2V0OiB7XG4gICAgICAgICAgZWxlbWVudElkOiB0YXJnZXQsXG4gICAgICAgICAgcmVnaW9uOiBvcHRpb25zPy5yZWdpb24sXG4gICAgICAgICAgd29ya2JlbmNoSWQ6IG9wdGlvbnM/LndvcmtiZW5jaElkID8/IHRoaXMuX3dvcmtiZW5jaElkLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyByZWdpc3Rlck1lbnVJdGVtKG1lbnVJdGVtOiBXb3JrYmVuY2hNZW51SXRlbSk6IERpc3Bvc2FibGUge1xuICAgIGNvbnN0IGZhY3RvcnlGbiA9ICgpOiBXb3JrYmVuY2hNZW51SXRlbSA9PiBtZW51SXRlbTtcbiAgICB0aGlzLl9tZW51SXRlbVByb3ZpZGVycyQubmV4dCh0aGlzLl9tZW51SXRlbVByb3ZpZGVycyQudmFsdWUuY29uY2F0KGZhY3RvcnlGbikpO1xuICAgIHJldHVybiB7XG4gICAgICBkaXNwb3NlOiAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuX21lbnVJdGVtUHJvdmlkZXJzJC5uZXh0KHRoaXMuX21lbnVJdGVtUHJvdmlkZXJzJC52YWx1ZS5maWx0ZXIoaXQgPT4gaXQgIT09IGZhY3RvcnlGbikpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgaGFuZGxlJ3MgaW5qZWN0b3IuIFRoZSBpbmplY3RvciB3aWxsIGJlIGRlc3Ryb3llZCB3aGVuIGNsb3NpbmcgdGhlIHZpZXcuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGluamVjdG9yKCk6IEluamVjdG9yIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld0Vudmlyb25tZW50SW5qZWN0b3I7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGFuIGFkYXB0ZXIgZm9yIHRoaXMgdmlldywgcmVwbGFjaW5nIGFueSBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgYWRhcHRlciBvZiB0aGUgc2FtZSB0eXBlLlxuICAgKlxuICAgKiBBZGFwdGVycyBlbmFibGUgbG9vc2VseSBjb3VwbGVkIGV4dGVuc2lvbiBvZiBhbiBvYmplY3QsIGFsbG93aW5nIG9uZSBvYmplY3QgdG8gYmUgYWRhcHRlZCB0byBhbm90aGVyLlxuICAgKi9cbiAgcHVibGljIHJlZ2lzdGVyQWRhcHRlcjxUPihhZGFwdGVyVHlwZTogQWJzdHJhY3RUeXBlPFQ+IHwgVHlwZTxUPiwgb2JqZWN0OiBUKTogdm9pZCB7XG4gICAgdGhpcy5fYWRhcHRlcnMuc2V0KGFkYXB0ZXJUeXBlLCBvYmplY3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVucmVnaXN0ZXJzIHRoZSBnaXZlbiBhZGFwdGVyLiBIYXMgbm8gZWZmZWN0IGlmIG5vdCByZWdpc3RlcmVkLlxuICAgKi9cbiAgcHVibGljIHVucmVnaXN0ZXJBZGFwdGVyKGFkYXB0ZXJUeXBlOiBBYnN0cmFjdFR5cGU8dW5rbm93bj4gfCBUeXBlPHVua25vd24+KTogdm9pZCB7XG4gICAgdGhpcy5fYWRhcHRlcnMuZGVsZXRlKGFkYXB0ZXJUeXBlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGFwdHMgdGhpcyBvYmplY3QgdG8gdGhlIHNwZWNpZmllZCB0eXBlLiBSZXR1cm5zIGBudWxsYCBpZiBubyBzdWNoIG9iamVjdCBjYW4gYmUgZm91bmQuXG4gICAqL1xuICBwdWJsaWMgYWRhcHQ8VD4oYWRhcHRlclR5cGU6IEFic3RyYWN0VHlwZTxUPiB8IFR5cGU8VD4pOiBUIHwgbnVsbCB7XG4gICAgY29uc3QgYWRhcHRlciA9IHRoaXMuX2FkYXB0ZXJzLmdldChhZGFwdGVyVHlwZSk7XG4gICAgcmV0dXJuIGFkYXB0ZXIgPyBhZGFwdGVyIGFzIFQgOiBudWxsO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBnZXQgZGVzdHJveWVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBvcnRhbC5pc0Rlc3Ryb3llZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBvdXRsZXQgY29udGV4dCBvZiB0aGUgY3VycmVudGx5IGFjdGl2YXRlZCByb3V0ZS5cbiAgICovXG4gIHByaXZhdGUgZ2V0T3V0bGV0Q29udGV4dCgpOiBPdXRsZXRDb250ZXh0IHwgbnVsbCB7XG4gICAgcmV0dXJuIFJvdXRpbmcucmVzb2x2ZUVmZmVjdGl2ZU91dGxldENvbnRleHQodGhpcy5fY2hpbGRyZW5PdXRsZXRDb250ZXh0cy5nZXRDb250ZXh0KHRoaXMuaWQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBhY3RpdmF0aW9uIGluc3RhbnQgd2hlbiB0aGlzIHZpZXcgaXMgYWN0aXZhdGVkLlxuICAgKi9cbiAgcHJpdmF0ZSB0b3VjaE9uQWN0aXZhdGUoKTogdm9pZCB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmFjdGl2ZSgpKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2YXRpb25JbnN0YW50ID0gdGhpcy5fYWN0aXZhdGlvbkluc3RhbnRQcm92aWRlci5ub3coKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHVwIGF1dG9tYXRpYyBzeW5jaHJvbml6YXRpb24gb2Yge0BsaW5rIFdvcmtiZW5jaFZpZXd9IG9uIGV2ZXJ5IGxheW91dCBjaGFuZ2UuXG4gICAqXG4gICAqIElmIHRoZSBvcGVyYXRpb24gaXMgY2FuY2VsbGVkIChlLmcuLCBkdWUgdG8gYSBuYXZpZ2F0aW9uIGZhaWx1cmUpLCBpdCByZXZlcnRzIHRoZSBjaGFuZ2VzLlxuICAgKi9cbiAgcHJpdmF0ZSBpbnN0YWxsTW9kZWxVcGRhdGVyKCk6IHZvaWQge1xuICAgIFJvdXRpbmcuYWN0aXZhdGVkUm91dGUkKHRoaXMuaWQsIHtlbWl0T246ICdhbHdheXMnfSlcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSgoW3ByZXZpb3VzUm91dGUsIHJvdXRlXTogW0FjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBudWxsLCBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90XSkgPT4ge1xuICAgICAgICBjb25zdCBuYXZpZ2F0aW9uQ29udGV4dCA9IHRoaXMuX3dvcmtiZW5jaFJvdXRlci5nZXRDdXJyZW50TmF2aWdhdGlvbkNvbnRleHQoKTtcbiAgICAgICAgY29uc3Qge2xheW91dCwgcHJldmlvdXNMYXlvdXQsIGxheW91dERpZmZ9ID0gbmF2aWdhdGlvbkNvbnRleHQ7XG5cbiAgICAgICAgaWYgKGxheW91dERpZmYucmVtb3ZlZFZpZXdzLmluY2x1ZGVzKHRoaXMuaWQpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkxheW91dENoYW5nZSh7bGF5b3V0LCByb3V0ZSwgcHJldmlvdXNSb3V0ZX0pO1xuXG4gICAgICAgIC8vIFJldmVydCBjaGFuZ2UgaW4gY2FzZSB0aGUgbmF2aWdhdGlvbiBmYWlscy5cbiAgICAgICAgaWYgKHByZXZpb3VzTGF5b3V0Py5oYXNWaWV3KHRoaXMuaWQpKSB7XG4gICAgICAgICAgbmF2aWdhdGlvbkNvbnRleHQucmVnaXN0ZXJVbmRvQWN0aW9uKCgpID0+IHRoaXMub25MYXlvdXRDaGFuZ2Uoe2xheW91dDogcHJldmlvdXNMYXlvdXR9KSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fdmlld0Vudmlyb25tZW50SW5qZWN0b3IuZGVzdHJveSgpO1xuICAgIHRoaXMuX3dvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5LmRpYWxvZ3Moe3ZpZXdJZDogdGhpcy5pZH0pLmZvckVhY2goZGlhbG9nID0+IGRpYWxvZy5kZXN0cm95KCkpO1xuICAgIHRoaXMucG9ydGFsLmRlc3Ryb3koKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBwc2V1ZG8tdHlwZSBmb3IgdGhlIGFjdHVhbCB7QGxpbmsgVmlld0NvbXBvbmVudH0gd2hpY2ggbXVzdCBub3QgYmUgcmVmZXJlbmNlZCBpbiBvcmRlciB0byBhdm9pZCBpbXBvcnQgY3ljbGVzLlxuICovXG50eXBlIFZpZXdDb21wb25lbnQgPSBhbnk7XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2018-2022 Swiss Federal Railways
2
+ * Copyright (c) 2018-2024 Swiss Federal Railways
3
3
  *
4
4
  * This program and the accompanying materials are made
5
5
  * available under the terms of the Eclipse Public License 2.0
@@ -12,4 +12,4 @@
12
12
  */
13
13
  export class WorkbenchConfig {
14
14
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3dvcmtiZW5jaC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFVSDs7R0FFRztBQUNILE1BQU0sT0FBZ0IsZUFBZTtDQThIcEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2dBcHBlbmRlciwgTG9nTGV2ZWx9IGZyb20gJy4vbG9nZ2luZyc7XG5pbXBvcnQge01pY3JvZnJvbnRlbmRQbGF0Zm9ybUNvbmZpZ30gZnJvbSAnQHNjaW9uL21pY3JvZnJvbnRlbmQtcGxhdGZvcm0nO1xuaW1wb3J0IHtNaWNyb2Zyb250ZW5kUGxhdGZvcm1Db25maWdMb2FkZXJ9IGZyb20gJy4vbWljcm9mcm9udGVuZC1wbGF0Zm9ybS9taWNyb2Zyb250ZW5kLXBsYXRmb3JtLWNvbmZpZy1sb2FkZXInO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXlvdXRGbiwgV29ya2JlbmNoUGVyc3BlY3RpdmVzfSBmcm9tICcuL3BlcnNwZWN0aXZlL3dvcmtiZW5jaC1wZXJzcGVjdGl2ZS5tb2RlbCc7XG5pbXBvcnQge1dvcmtiZW5jaFN0b3JhZ2V9IGZyb20gJy4vc3RvcmFnZS93b3JrYmVuY2gtc3RvcmFnZSc7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvZiB0aGUgU0NJT04gV29ya2JlbmNoLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgV29ya2JlbmNoQ29uZmlnIHtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBjb21wb25lbnQgdG8gZGlzcGxheSBhIHZpZXcgdGFiLCBlbmFibGluZyBjdXN0b20gZGVzaWduIG9yIGZ1bmN0aW9uYWxpdHkuXG4gICAqXG4gICAqIFRoZSBjb21wb25lbnQgY2FuIGluamVjdCB7QGxpbmsgV29ya2JlbmNoVmlld30gYW5kIHtAbGluayBWSUVXX1RBQl9SRU5ERVJJTkdfQ09OVEVYVH0gdG8gZ2V0IGEgcmVmZXJlbmNlIHRvIHRoZSB2aWV3IGFuZCB0aGUgcmVuZGVyaW5nIGNvbnRleHQuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3Qgdmlld1RhYkNvbXBvbmVudD86IENvbXBvbmVudFR5cGU8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgY29tcG9uZW50IHRvIGRpc3BsYXkgaWYgbm8gcm91dGUgbWF0Y2hlcyB0aGUgcmVxdWVzdGVkIFVSTC5cbiAgICpcbiAgICogVGhpcyBoYXBwZW5zIHdoZW4gbmF2aWdhdGluZyB0byBhIHJvdXRlIHRoYXQgZG9lcyBub3QgZXhpc3Qgb3Igd2hlbiBsb2FkaW5nIHRoZSBhcHBsaWNhdGlvbiwgYW5kIHRoZSByb3V0ZXMgaGF2ZSBjaGFuZ2VkIHNpbmNlIHRoZSBsYXN0IHVzZS5cbiAgICpcbiAgICogVGhlIGNvbXBvbmVudCBjYW4gaW5qZWN0IHtAbGluayBXb3JrYmVuY2hWaWV3fSB0byBnZXQgYSByZWZlcmVuY2UgdG8gdGhlIHZpZXcsIGUuZy4sIHRvIG9idGFpbiB0aGUgcmVxdWVzdGVkIFVSTC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBwYWdlTm90Rm91bmRDb21wb25lbnQ/OiBDb21wb25lbnRUeXBlPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGljaCBidWlsdC1pbiBtZW51IGl0ZW1zIHRvIGRpc3BsYXkgaW4gdGhlIHZpZXcgY29udGV4dCBtZW51LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHZpZXdNZW51SXRlbXM/OiBWaWV3TWVudUl0ZW1zQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIHRoZSB3b3JrYmVuY2ggc3RhcnR1cC5cbiAgICpcbiAgICogVGhlIHtAbGluayBXb3JrYmVuY2hMYXVuY2hlcn0gaXMgdXNlZCB0byBzdGFydCB0aGUgd29ya2JlbmNoLiBEdXJpbmcgc3RhcnR1cCwgaXQgcnVucyByZWdpc3RlcmVkIHdvcmtiZW5jaCBpbml0aWFsaXplcnNcbiAgICogYW5kIHdhaXRzIGZvciB0aGVtIHRvIGNvbXBsZXRlLiBZb3UgY2FuIGluamVjdCB7QGxpbmsgV29ya2JlbmNoU3RhcnR1cH0gdG8gZ2V0IG5vdGlmaWVkIHdoZW4gdGhlIHN0YXJ0dXAgaXMgY29tcGxldGUuXG4gICAqXG4gICAqIFJlZmVyIHRvIHtAbGluayBXb3JrYmVuY2hJbml0aWFsaXplcn0gdG8gbGVhcm4gaG93IHRvIHJlZ2lzdGVyIGEgd29ya2JlbmNoIGluaXRpYWxpemVyLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHN0YXJ0dXA/OiB7XG4gICAgLyoqXG4gICAgICogQ29uZmlndXJlcyB0aGUgd29ya2JlbmNoIGxhdW5jaGluZyBzdHJhdGVneS4gRGVmYXVsdHMgdG8gYExBWllgIGlmIG5vdCBzcGVjaWZpZWQuXG4gICAgICpcbiAgICAgKiAgLSAqKkFQUF9JTklUSUFMSVpFUioqXG4gICAgICogICBMYXVuY2hlcyB0aGUgd29ya2JlbmNoIGluIGFuIEFuZ3VsYXIgYEFQUF9JTklUSUFMSVpFUmAsIHdoaWNoIGlzIGJlZm9yZSBib290c3RyYXBwaW5nIHRoZSBhcHAgY29tcG9uZW50LlxuICAgICAqXG4gICAgICogLSAqKkxBWlkqKlxuICAgICAqICAgTGF1bmNoZXMgdGhlIHdvcmtiZW5jaCBhdCB0aGUgbGF0ZXN0IHdoZW4gYm9vdHN0cmFwcGluZyB0aGUgd29ya2JlbmNoIHJvb3QgY29tcG9uZW50IGA8d2Itd29ya2JlbmNoPmAuXG4gICAgICpcbiAgICAgKiAgIFdpdGggdGhpcyBzdHJhdGVneSwgeW91IGFyZSBmbGV4aWJsZSB3aGVuIHRvIHN0YXJ0IHRoZSB3b3JrYmVuY2guIFlvdSBjYW4gc3RhcnQgdGhlIHdvcmtiZW5jaCBleHBsaWNpdGx5IGJ5XG4gICAgICogICBjYWxsaW5nIHtAbGluayBXb3JrYmVuY2hMYXVuY2hlciNsYXVuY2h9LCBlLmcuLCB0byBsYXVuY2ggdGhlIHdvcmtiZW5jaCBmcm9tIGEgcm91dGUgZ3VhcmQgb3IgYXBwIGluaXRpYWxpemVyLFxuICAgICAqICAgb3Igc3RhcnQgaXQgYXV0b21hdGljYWxseSB3aGVuIGFkZGluZyB0aGUgd29ya2JlbmNoIHJvb3QgY29tcG9uZW50IGA8d2Itd29ya2JlbmNoPmAgdG8gdGhlIEFuZ3VsYXIgY29tcG9uZW50XG4gICAgICogICB0cmVlLlxuICAgICAqL1xuICAgIGxhdW5jaGVyPzogJ0FQUF9JTklUSUFMSVpFUicgfCAnTEFaWSc7XG5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgdGhlIGNvbXBvbmVudCB0byBkaXNwbGF5IHdoZW4gbW91bnRpbmcgdGhlIHdvcmtiZW5jaCByb290IGNvbXBvbmVudCBgPHdiLXdvcmtiZW5jaD5gIHRvIHRoZSBET00gYmVmb3JlIHRoZVxuICAgICAqIHdvcmtiZW5jaCBzdGFydHVwIGhhcyBmaW5pc2hlZC5cbiAgICAgKlxuICAgICAqIE5vdGUgdGhhdCB3aGVuIGxhdW5jaGluZyB0aGUgd29ya2JlbmNoIGluIGFuIEFuZ3VsYXIgYEFQUF9JTklUSUFMSVpFUmAsIG5vIHNwbGFzaCB3aWxsIGRpc3BsYXkgc2luY2UgdGhlIHdvcmtiZW5jaFxuICAgICAqIHdpbGwgc3RhcnQgdXBmcm9udC5cbiAgICAgKi9cbiAgICBzcGxhc2g/OiBDb21wb25lbnRUeXBlPHVua25vd24+O1xuICB9O1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIG1pY3JvZnJvbnRlbmQgc3VwcG9ydCBpbiB0aGUgd29ya2JlbmNoLCBhbGxvd2luZyB0aGUgaW50ZWdyYXRpb24gb2YgbWljcm9mcm9udGVuZHMgYXMgd29ya2JlbmNoIHZpZXdzIG9yXG4gICAqIHdvcmtiZW5jaCBwb3B1cHMuXG4gICAqXG4gICAqIFRoZSB3b3JrYmVuY2ggdXNlcyB0aGUgXCJTQ0lPTiBNaWNyb2Zyb250ZW5kIFBsYXRmb3JtXCIgZm9yIHByb3ZpZGluZyBtaWNyb2Zyb250ZW5kIHN1cHBvcnQuIFRvIGxlYXJuIG1vcmUgYWJvdXQgdGhlXG4gICAqIFwiU0NJT04gTWljcm9mcm9udGVuZCBQbGF0Zm9ybVwiLCByZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vU2Nod2VpemVyaXNjaGVCdW5kZXNiYWhuZW4vc2Npb24tbWljcm9mcm9udGVuZC1wbGF0Zm9ybS5cbiAgICpcbiAgICogVGhlIHdvcmtiZW5jaCBhbGxvd3MgYW55IHdlYiBwYWdlIHRvIGJlIGVtYmVkZGVkIGFzIGEgd29ya2JlbmNoIHZpZXcgb3Igd29ya2JlbmNoIHBvcHVwLiBUaGUgd2ViIGFwcCBoYXMgdG8gcHJvdmlkZVxuICAgKiBhIG1hbmlmZXN0IGluIHdoaWNoIGl0IGRlc2NyaWJlcyBpdHMgdmlld3MgYW5kIHBvcHVwcy4gVG8gaW50ZWdyYXRlIGEgdGhpcmQtcGFydHkgYXBwbGljYXRpb24gd2hlcmUgY3VzdG9taXphdGlvbiBpcyBub3RcbiAgICogcG9zc2libGUsIHRoZSBob3N0IGFwcGxpY2F0aW9uIGNhbiBwcm92aWRlIGEgbWFuaWZlc3QgZm9yIHRoYXQgYXBwbGljYXRpb24uIElmIGVtYmVkZGVkIGNvbnRlbnQgbmVlZHMgdG8gaW50ZXJhY3Qgd2l0aFxuICAgKiB0aGUgd29ya2JlbmNoLCB0aGUgd2ViIGFwcCBjYW4gdXNlIHRoZSBsaWJyYXJ5IGBAc2Npb24vd29ya2JlbmNoLWNsaWVudGAsIGEgcHVyZSBUeXBlU2NyaXB0IGxpYnJhcnkgYmFzZWQgb24gdGhlXG4gICAqIHdlYiBzdGFjay1hZ25vc3RpYyBgQHNjaW9uL21pY3JvZnJvbnRlbmQtcGxhdGZvcm1gIGxpYnJhcnkuXG4gICAqXG4gICAqIFRoZSB3b3JrYmVuY2ggaW50ZWdyYXRlcyBtaWNyb2Zyb250ZW5kcyB0aHJvdWdoIHNvLWNhbGxlZCBpbnRlbnRzLCBhIG1lY2hhbmlzbSBrbm93biBmcm9tIEFuZHJvaWQgZGV2ZWxvcG1lbnQsIGVuYWJsaW5nXG4gICAqIGNvbnRyb2xsZWQgY29sbGFib3JhdGlvbiBhY3Jvc3MgYXBwbGljYXRpb24gYm91bmRhcmllcy4gXCJTQ0lPTiBNaWNyb2Zyb250ZW5kIFBsYXRmb3JtIERldlRvb2xzXCIgY2FuIGhlbHAgdG8gaW5zcGVjdFxuICAgKiBpbnRlZ3JhdGVkIGFwcGxpY2F0aW9ucyBhbmQgZGVwZW5kZW5jaWVzLiBUaGUgRGV2VG9vbHMgYXJlIGF2YWlsYWJsZSBpbiB0aGUgZm9ybSBvZiBhIG1pY3JvZnJvbnRlbmQgdGhhdCBjYW4gYmUgZW1iZWRkZWRcbiAgICogbGlrZSBhbnkgb3RoZXIgbWljcm9mcm9udGVuZC4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbGVkIGluc3RydWN0aW9ucyBvbiBob3cgdG8gaW50ZWdyYXRlXG4gICAqIFwiU0NJT04gTWljcm9mcm9udGVuZCBQbGF0Zm9ybSBEZXZUb29sc1wiLlxuICAgKlxuICAgKiBUeXBpY2FsbHksIHRoZSBob3N0IGFwcCBwcm92aWRlcyBBUEkgdG8gaW50ZWdyYXRlZCBtaWNybyBhcHBzIHZpYSB0aGUgaW50ZW50IG1lY2hhbmlzbS4gQ29uc2lkZXIgcmVnaXN0ZXJpbmcgaW50ZW50IGhhbmRsZXJzXG4gICAqIHVuZGVyIHRoZSBESSB0b2tlbiB7QGxpbmsgTUlDUk9GUk9OVEVORF9QTEFURk9STV9QT1NUX1NUQVJUVVB9LlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IG1pY3JvZnJvbnRlbmRQbGF0Zm9ybT86IE1pY3JvZnJvbnRlbmRQbGF0Zm9ybUNvbmZpZyB8IFR5cGU8TWljcm9mcm9udGVuZFBsYXRmb3JtQ29uZmlnTG9hZGVyPjtcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgd29ya2JlbmNoIGxheW91dC4gTXVsdGlwbGUgbGF5b3V0cyBjYW4gYmUgZGVmaW5lZCBpbiB0aGUgZm9ybSBvZiBwZXJzcGVjdGl2ZXMuXG4gICAqIElmIG5vdCBzZXQsIGRlZmF1bHRzIHRvIGEgbGF5b3V0IHdpdGggb25seSBhIG1haW4gYXJlYS5cbiAgICpcbiAgICogU2VlIHtAbGluayBXb3JrYmVuY2hMYXlvdXRGbn0gZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGFuIGV4YW1wbGUuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgbGF5b3V0PzogV29ya2JlbmNoTGF5b3V0Rm4gfCBXb3JrYmVuY2hQZXJzcGVjdGl2ZXM7XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIHBlcnNpc3RlbnQgc3RvcmFnZSB0byB0aGUgU0NJT04gV29ya2JlbmNoLlxuICAgKlxuICAgKiBJZiBub3Qgc2V0LCB0aGUgd29ya2JlbmNoIHVzZXMgdGhlIGJyb3dzZXIncyBsb2NhbCBzdG9yYWdlIGFzIHBlcnNpc3RlbnQgc3RvcmFnZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBzdG9yYWdlPzogVHlwZTxXb3JrYmVuY2hTdG9yYWdlPjtcblxuICAvKipcbiAgICogQ29uZmlndXJlcyB0aGUgYmVoYXZpb3Igb2Ygd29ya2JlbmNoIGRpYWxvZ3MuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgZGlhbG9nPzoge1xuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyZXMgdGhlIGFyZWEgdG8gYmxvY2sgZm9yIGFwcGxpY2F0aW9uLW1vZGFsIGRpYWxvZ3MuIElmIG5vdCBzZXQsIGRlZmF1bHRzIHRvIGB3b3JrYmVuY2hgLlxuICAgICAqXG4gICAgICogLSAqKndvcmtiZW5jaDoqKiBibG9ja3MgdGhlIHtAbGluayBXb3JrYmVuY2hDb21wb25lbnR8d29ya2JlbmNoIGVsZW1lbnR9LCBzdGlsbCBhbGxvd2luZyBpbnRlcmFjdGlvbiB3aXRoIGVsZW1lbnRzIG91dHNpZGUgdGhlIHdvcmtiZW5jaCBlbGVtZW50LlxuICAgICAqXG4gICAgICogLSAqKnZpZXdwb3J0KiogYmxvY2tzIHRoZSBicm93c2VyIHZpZXdwb3J0LCBwcmV2ZW50aW5nIGludGVyYWN0aW9uIHdpdGggdGhlIGFwcGxpY2F0aW9uIHVudGlsIGFwcGxpY2F0aW9uLW1vZGFsIGRpYWxvZ3MgYXJlIGNsb3NlZC5cbiAgICAgKi9cbiAgICBtb2RhbGl0eVNjb3BlPzogJ3dvcmtiZW5jaCcgfCAndmlld3BvcnQnO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIGxvZ2dpbmcgZm9yIHRoZSB3b3JrYmVuY2guXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgbG9nZ2luZz86IHtcbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBtaW5pbXVtIHNldmVyaXR5IGxldmVsIGEgbG9nIG1lc3NhZ2UgbXVzdCBoYXZlIGluIG9yZGVyIHRvIGJlIGxvZ2dlZC4gQnkgZGVmYXVsdCwgaWYgbm90IHNwZWNpZmllZCwgaXQgaXMgc2V0IHRvIHtAbGluayBMb2dMZXZlbCNJTkZPfS5cbiAgICAgKlxuICAgICAqIEF0IHJ1bnRpbWUsIHlvdSBjYW4gY2hhbmdlIHRoZSBtaW5pbXVtIHJlcXVpcmVkIGxvZyBsZXZlbCBieSBzZXR0aW5nIHRoZSBgbG9nbGV2ZWxgIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICAgKi9cbiAgICBsb2dMZXZlbD86IExvZ0xldmVsO1xuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBsb2cgYXBwZW5kZXJzIHRvIG91dHB1dCBsb2cgbWVzc2FnZXMuIE11bHRpcGxlIGFwcGVuZGVycyBhcmUgYWxsb3dlZC4gQnkgZGVmYXVsdCwgaWYgbm90IHNwZWNpZmllZCwgbG9nIG1lc3NhZ2VzIGFyZSB3cml0dGVuIHRvIHRoZSBjb25zb2xlLlxuICAgICAqL1xuICAgIGxvZ0FwcGVuZGVycz86IFR5cGU8TG9nQXBwZW5kZXI+W107XG4gIH07XG59XG5cbi8qKlxuICogQ29udHJvbHMgd2hpY2ggYnVpbHQtaW4gbWVudSBpdGVtcyB0byBkaXNwbGF5IGluIHRoZSB2aWV3IGNvbnRleHQgbWVudS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaWV3TWVudUl0ZW1zQ29uZmlnIHtcbiAgY2xvc2U/OiBNZW51SXRlbUNvbmZpZztcbiAgY2xvc2VPdGhlcnM/OiBNZW51SXRlbUNvbmZpZztcbiAgY2xvc2VBbGw/OiBNZW51SXRlbUNvbmZpZztcbiAgY2xvc2VUb1RoZVJpZ2h0PzogTWVudUl0ZW1Db25maWc7XG4gIGNsb3NlVG9UaGVMZWZ0PzogTWVudUl0ZW1Db25maWc7XG4gIG1vdmVVcD86IE1lbnVJdGVtQ29uZmlnO1xuICBtb3ZlUmlnaHQ/OiBNZW51SXRlbUNvbmZpZztcbiAgbW92ZURvd24/OiBNZW51SXRlbUNvbmZpZztcbiAgbW92ZUxlZnQ/OiBNZW51SXRlbUNvbmZpZztcbiAgbW92ZVRvTmV3V2luZG93PzogTWVudUl0ZW1Db25maWc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVudUl0ZW1Db25maWcge1xuICB2aXNpYmxlPzogYm9vbGVhbjtcbiAgdGV4dD86IHN0cmluZztcbiAgYWNjZWxlcmF0b3I/OiBzdHJpbmdbXTtcbiAgZ3JvdXA/OiBzdHJpbmc7XG4gIGNzc0NsYXNzPzogc3RyaW5nIHwgc3RyaW5nW107XG59XG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3dvcmtiZW5jaC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFVSDs7R0FFRztBQUNILE1BQU0sT0FBZ0IsZUFBZTtDQThIcEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjQgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1NpZ25hbCwgVHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvZ0FwcGVuZGVyLCBMb2dMZXZlbH0gZnJvbSAnLi9sb2dnaW5nJztcbmltcG9ydCB7TWljcm9mcm9udGVuZFBsYXRmb3JtQ29uZmlnfSBmcm9tICdAc2Npb24vbWljcm9mcm9udGVuZC1wbGF0Zm9ybSc7XG5pbXBvcnQge01pY3JvZnJvbnRlbmRQbGF0Zm9ybUNvbmZpZ0xvYWRlcn0gZnJvbSAnLi9taWNyb2Zyb250ZW5kLXBsYXRmb3JtL21pY3JvZnJvbnRlbmQtcGxhdGZvcm0tY29uZmlnLWxvYWRlcic7XG5pbXBvcnQge1dvcmtiZW5jaExheW91dEZuLCBXb3JrYmVuY2hQZXJzcGVjdGl2ZXN9IGZyb20gJy4vcGVyc3BlY3RpdmUvd29ya2JlbmNoLXBlcnNwZWN0aXZlLm1vZGVsJztcbmltcG9ydCB7V29ya2JlbmNoU3RvcmFnZX0gZnJvbSAnLi9zdG9yYWdlL3dvcmtiZW5jaC1zdG9yYWdlJztcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9mIHRoZSBTQ0lPTiBXb3JrYmVuY2guXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBXb3JrYmVuY2hDb25maWcge1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGNvbXBvbmVudCB0byBkaXNwbGF5IGEgdmlldyB0YWIsIGVuYWJsaW5nIGN1c3RvbSBkZXNpZ24gb3IgZnVuY3Rpb25hbGl0eS5cbiAgICpcbiAgICogVGhlIGNvbXBvbmVudCBjYW4gaW5qZWN0IHtAbGluayBXb3JrYmVuY2hWaWV3fSBhbmQge0BsaW5rIFZJRVdfVEFCX1JFTkRFUklOR19DT05URVhUfSB0byBnZXQgYSByZWZlcmVuY2UgdG8gdGhlIHZpZXcgYW5kIHRoZSByZW5kZXJpbmcgY29udGV4dC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCB2aWV3VGFiQ29tcG9uZW50PzogQ29tcG9uZW50VHlwZTx1bmtub3duPjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBjb21wb25lbnQgdG8gZGlzcGxheSBpZiBubyByb3V0ZSBtYXRjaGVzIHRoZSByZXF1ZXN0ZWQgVVJMLlxuICAgKlxuICAgKiBUaGlzIGhhcHBlbnMgd2hlbiBuYXZpZ2F0aW5nIHRvIGEgcm91dGUgdGhhdCBkb2VzIG5vdCBleGlzdCBvciB3aGVuIGxvYWRpbmcgdGhlIGFwcGxpY2F0aW9uLCBhbmQgdGhlIHJvdXRlcyBoYXZlIGNoYW5nZWQgc2luY2UgdGhlIGxhc3QgdXNlLlxuICAgKlxuICAgKiBUaGUgY29tcG9uZW50IGNhbiBpbmplY3Qge0BsaW5rIFdvcmtiZW5jaFZpZXd9IHRvIGdldCBhIHJlZmVyZW5jZSB0byB0aGUgdmlldywgZS5nLiwgdG8gb2J0YWluIHRoZSByZXF1ZXN0ZWQgVVJMLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHBhZ2VOb3RGb3VuZENvbXBvbmVudD86IENvbXBvbmVudFR5cGU8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoaWNoIGJ1aWx0LWluIG1lbnUgaXRlbXMgdG8gZGlzcGxheSBpbiB0aGUgdmlldyBjb250ZXh0IG1lbnUuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3Qgdmlld01lbnVJdGVtcz86IFZpZXdNZW51SXRlbXNDb25maWc7XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgdGhlIHdvcmtiZW5jaCBzdGFydHVwLlxuICAgKlxuICAgKiBUaGUge0BsaW5rIFdvcmtiZW5jaExhdW5jaGVyfSBpcyB1c2VkIHRvIHN0YXJ0IHRoZSB3b3JrYmVuY2guIER1cmluZyBzdGFydHVwLCBpdCBydW5zIHJlZ2lzdGVyZWQgd29ya2JlbmNoIGluaXRpYWxpemVyc1xuICAgKiBhbmQgd2FpdHMgZm9yIHRoZW0gdG8gY29tcGxldGUuIFlvdSBjYW4gaW5qZWN0IHtAbGluayBXb3JrYmVuY2hTdGFydHVwfSB0byBnZXQgbm90aWZpZWQgd2hlbiB0aGUgc3RhcnR1cCBpcyBjb21wbGV0ZS5cbiAgICpcbiAgICogUmVmZXIgdG8ge0BsaW5rIFdvcmtiZW5jaEluaXRpYWxpemVyfSB0byBsZWFybiBob3cgdG8gcmVnaXN0ZXIgYSB3b3JrYmVuY2ggaW5pdGlhbGl6ZXIuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3Qgc3RhcnR1cD86IHtcbiAgICAvKipcbiAgICAgKiBDb25maWd1cmVzIHRoZSB3b3JrYmVuY2ggbGF1bmNoaW5nIHN0cmF0ZWd5LiBEZWZhdWx0cyB0byBgTEFaWWAgaWYgbm90IHNwZWNpZmllZC5cbiAgICAgKlxuICAgICAqICAtICoqQVBQX0lOSVRJQUxJWkVSKipcbiAgICAgKiAgIExhdW5jaGVzIHRoZSB3b3JrYmVuY2ggaW4gYW4gQW5ndWxhciBgQVBQX0lOSVRJQUxJWkVSYCwgd2hpY2ggaXMgYmVmb3JlIGJvb3RzdHJhcHBpbmcgdGhlIGFwcCBjb21wb25lbnQuXG4gICAgICpcbiAgICAgKiAtICoqTEFaWSoqXG4gICAgICogICBMYXVuY2hlcyB0aGUgd29ya2JlbmNoIGF0IHRoZSBsYXRlc3Qgd2hlbiBib290c3RyYXBwaW5nIHRoZSB3b3JrYmVuY2ggcm9vdCBjb21wb25lbnQgYDx3Yi13b3JrYmVuY2g+YC5cbiAgICAgKlxuICAgICAqICAgV2l0aCB0aGlzIHN0cmF0ZWd5LCB5b3UgYXJlIGZsZXhpYmxlIHdoZW4gdG8gc3RhcnQgdGhlIHdvcmtiZW5jaC4gWW91IGNhbiBzdGFydCB0aGUgd29ya2JlbmNoIGV4cGxpY2l0bHkgYnlcbiAgICAgKiAgIGNhbGxpbmcge0BsaW5rIFdvcmtiZW5jaExhdW5jaGVyI2xhdW5jaH0sIGUuZy4sIHRvIGxhdW5jaCB0aGUgd29ya2JlbmNoIGZyb20gYSByb3V0ZSBndWFyZCBvciBhcHAgaW5pdGlhbGl6ZXIsXG4gICAgICogICBvciBzdGFydCBpdCBhdXRvbWF0aWNhbGx5IHdoZW4gYWRkaW5nIHRoZSB3b3JrYmVuY2ggcm9vdCBjb21wb25lbnQgYDx3Yi13b3JrYmVuY2g+YCB0byB0aGUgQW5ndWxhciBjb21wb25lbnRcbiAgICAgKiAgIHRyZWUuXG4gICAgICovXG4gICAgbGF1bmNoZXI/OiAnQVBQX0lOSVRJQUxJWkVSJyB8ICdMQVpZJztcblxuICAgIC8qKlxuICAgICAqIFNwZWNpZmllcyB0aGUgY29tcG9uZW50IHRvIGRpc3BsYXkgd2hlbiBtb3VudGluZyB0aGUgd29ya2JlbmNoIHJvb3QgY29tcG9uZW50IGA8d2Itd29ya2JlbmNoPmAgdG8gdGhlIERPTSBiZWZvcmUgdGhlXG4gICAgICogd29ya2JlbmNoIHN0YXJ0dXAgaGFzIGZpbmlzaGVkLlxuICAgICAqXG4gICAgICogTm90ZSB0aGF0IHdoZW4gbGF1bmNoaW5nIHRoZSB3b3JrYmVuY2ggaW4gYW4gQW5ndWxhciBgQVBQX0lOSVRJQUxJWkVSYCwgbm8gc3BsYXNoIHdpbGwgZGlzcGxheSBzaW5jZSB0aGUgd29ya2JlbmNoXG4gICAgICogd2lsbCBzdGFydCB1cGZyb250LlxuICAgICAqL1xuICAgIHNwbGFzaD86IENvbXBvbmVudFR5cGU8dW5rbm93bj47XG4gIH07XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgbWljcm9mcm9udGVuZCBzdXBwb3J0IGluIHRoZSB3b3JrYmVuY2gsIGFsbG93aW5nIHRoZSBpbnRlZ3JhdGlvbiBvZiBtaWNyb2Zyb250ZW5kcyBhcyB3b3JrYmVuY2ggdmlld3Mgb3JcbiAgICogd29ya2JlbmNoIHBvcHVwcy5cbiAgICpcbiAgICogVGhlIHdvcmtiZW5jaCB1c2VzIHRoZSBcIlNDSU9OIE1pY3JvZnJvbnRlbmQgUGxhdGZvcm1cIiBmb3IgcHJvdmlkaW5nIG1pY3JvZnJvbnRlbmQgc3VwcG9ydC4gVG8gbGVhcm4gbW9yZSBhYm91dCB0aGVcbiAgICogXCJTQ0lPTiBNaWNyb2Zyb250ZW5kIFBsYXRmb3JtXCIsIHJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9TY2h3ZWl6ZXJpc2NoZUJ1bmRlc2JhaG5lbi9zY2lvbi1taWNyb2Zyb250ZW5kLXBsYXRmb3JtLlxuICAgKlxuICAgKiBUaGUgd29ya2JlbmNoIGFsbG93cyBhbnkgd2ViIHBhZ2UgdG8gYmUgZW1iZWRkZWQgYXMgYSB3b3JrYmVuY2ggdmlldyBvciB3b3JrYmVuY2ggcG9wdXAuIFRoZSB3ZWIgYXBwIGhhcyB0byBwcm92aWRlXG4gICAqIGEgbWFuaWZlc3QgaW4gd2hpY2ggaXQgZGVzY3JpYmVzIGl0cyB2aWV3cyBhbmQgcG9wdXBzLiBUbyBpbnRlZ3JhdGUgYSB0aGlyZC1wYXJ0eSBhcHBsaWNhdGlvbiB3aGVyZSBjdXN0b21pemF0aW9uIGlzIG5vdFxuICAgKiBwb3NzaWJsZSwgdGhlIGhvc3QgYXBwbGljYXRpb24gY2FuIHByb3ZpZGUgYSBtYW5pZmVzdCBmb3IgdGhhdCBhcHBsaWNhdGlvbi4gSWYgZW1iZWRkZWQgY29udGVudCBuZWVkcyB0byBpbnRlcmFjdCB3aXRoXG4gICAqIHRoZSB3b3JrYmVuY2gsIHRoZSB3ZWIgYXBwIGNhbiB1c2UgdGhlIGxpYnJhcnkgYEBzY2lvbi93b3JrYmVuY2gtY2xpZW50YCwgYSBwdXJlIFR5cGVTY3JpcHQgbGlicmFyeSBiYXNlZCBvbiB0aGVcbiAgICogd2ViIHN0YWNrLWFnbm9zdGljIGBAc2Npb24vbWljcm9mcm9udGVuZC1wbGF0Zm9ybWAgbGlicmFyeS5cbiAgICpcbiAgICogVGhlIHdvcmtiZW5jaCBpbnRlZ3JhdGVzIG1pY3JvZnJvbnRlbmRzIHRocm91Z2ggc28tY2FsbGVkIGludGVudHMsIGEgbWVjaGFuaXNtIGtub3duIGZyb20gQW5kcm9pZCBkZXZlbG9wbWVudCwgZW5hYmxpbmdcbiAgICogY29udHJvbGxlZCBjb2xsYWJvcmF0aW9uIGFjcm9zcyBhcHBsaWNhdGlvbiBib3VuZGFyaWVzLiBcIlNDSU9OIE1pY3JvZnJvbnRlbmQgUGxhdGZvcm0gRGV2VG9vbHNcIiBjYW4gaGVscCB0byBpbnNwZWN0XG4gICAqIGludGVncmF0ZWQgYXBwbGljYXRpb25zIGFuZCBkZXBlbmRlbmNpZXMuIFRoZSBEZXZUb29scyBhcmUgYXZhaWxhYmxlIGluIHRoZSBmb3JtIG9mIGEgbWljcm9mcm9udGVuZCB0aGF0IGNhbiBiZSBlbWJlZGRlZFxuICAgKiBsaWtlIGFueSBvdGhlciBtaWNyb2Zyb250ZW5kLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlsZWQgaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byBpbnRlZ3JhdGVcbiAgICogXCJTQ0lPTiBNaWNyb2Zyb250ZW5kIFBsYXRmb3JtIERldlRvb2xzXCIuXG4gICAqXG4gICAqIFR5cGljYWxseSwgdGhlIGhvc3QgYXBwIHByb3ZpZGVzIEFQSSB0byBpbnRlZ3JhdGVkIG1pY3JvIGFwcHMgdmlhIHRoZSBpbnRlbnQgbWVjaGFuaXNtLiBDb25zaWRlciByZWdpc3RlcmluZyBpbnRlbnQgaGFuZGxlcnNcbiAgICogdW5kZXIgdGhlIERJIHRva2VuIHtAbGluayBNSUNST0ZST05URU5EX1BMQVRGT1JNX1BPU1RfU1RBUlRVUH0uXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgbWljcm9mcm9udGVuZFBsYXRmb3JtPzogTWljcm9mcm9udGVuZFBsYXRmb3JtQ29uZmlnIHwgVHlwZTxNaWNyb2Zyb250ZW5kUGxhdGZvcm1Db25maWdMb2FkZXI+O1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSB3b3JrYmVuY2ggbGF5b3V0LiBNdWx0aXBsZSBsYXlvdXRzIGNhbiBiZSBkZWZpbmVkIGluIHRoZSBmb3JtIG9mIHBlcnNwZWN0aXZlcy5cbiAgICogSWYgbm90IHNldCwgZGVmYXVsdHMgdG8gYSBsYXlvdXQgd2l0aCBvbmx5IGEgbWFpbiBhcmVhLlxuICAgKlxuICAgKiBTZWUge0BsaW5rIFdvcmtiZW5jaExheW91dEZufSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYW4gZXhhbXBsZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBsYXlvdXQ/OiBXb3JrYmVuY2hMYXlvdXRGbiB8IFdvcmtiZW5jaFBlcnNwZWN0aXZlcztcblxuICAvKipcbiAgICogUHJvdmlkZXMgcGVyc2lzdGVudCBzdG9yYWdlIHRvIHRoZSBTQ0lPTiBXb3JrYmVuY2guXG4gICAqXG4gICAqIElmIG5vdCBzZXQsIHRoZSB3b3JrYmVuY2ggdXNlcyB0aGUgYnJvd3NlcidzIGxvY2FsIHN0b3JhZ2UgYXMgcGVyc2lzdGVudCBzdG9yYWdlLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHN0b3JhZ2U/OiBUeXBlPFdvcmtiZW5jaFN0b3JhZ2U+O1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIHRoZSBiZWhhdmlvciBvZiB3b3JrYmVuY2ggZGlhbG9ncy5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBkaWFsb2c/OiB7XG4gICAgLyoqXG4gICAgICogQ29uZmlndXJlcyB0aGUgYXJlYSB0byBibG9jayBmb3IgYXBwbGljYXRpb24tbW9kYWwgZGlhbG9ncy4gSWYgbm90IHNldCwgZGVmYXVsdHMgdG8gYHdvcmtiZW5jaGAuXG4gICAgICpcbiAgICAgKiAtICoqd29ya2JlbmNoOioqIGJsb2NrcyB0aGUge0BsaW5rIFdvcmtiZW5jaENvbXBvbmVudHx3b3JrYmVuY2ggZWxlbWVudH0sIHN0aWxsIGFsbG93aW5nIGludGVyYWN0aW9uIHdpdGggZWxlbWVudHMgb3V0c2lkZSB0aGUgd29ya2JlbmNoIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiAtICoqdmlld3BvcnQqKiBibG9ja3MgdGhlIGJyb3dzZXIgdmlld3BvcnQsIHByZXZlbnRpbmcgaW50ZXJhY3Rpb24gd2l0aCB0aGUgYXBwbGljYXRpb24gdW50aWwgYXBwbGljYXRpb24tbW9kYWwgZGlhbG9ncyBhcmUgY2xvc2VkLlxuICAgICAqL1xuICAgIG1vZGFsaXR5U2NvcGU/OiAnd29ya2JlbmNoJyB8ICd2aWV3cG9ydCc7XG4gIH07XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgbG9nZ2luZyBmb3IgdGhlIHdvcmtiZW5jaC5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBsb2dnaW5nPzoge1xuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIG1pbmltdW0gc2V2ZXJpdHkgbGV2ZWwgYSBsb2cgbWVzc2FnZSBtdXN0IGhhdmUgaW4gb3JkZXIgdG8gYmUgbG9nZ2VkLiBCeSBkZWZhdWx0LCBpZiBub3Qgc3BlY2lmaWVkLCBpdCBpcyBzZXQgdG8ge0BsaW5rIExvZ0xldmVsI0lORk99LlxuICAgICAqXG4gICAgICogQXQgcnVudGltZSwgeW91IGNhbiBjaGFuZ2UgdGhlIG1pbmltdW0gcmVxdWlyZWQgbG9nIGxldmVsIGJ5IHNldHRpbmcgdGhlIGBsb2dsZXZlbGAgcXVlcnkgcGFyYW1ldGVyLlxuICAgICAqL1xuICAgIGxvZ0xldmVsPzogTG9nTGV2ZWw7XG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXJzIGxvZyBhcHBlbmRlcnMgdG8gb3V0cHV0IGxvZyBtZXNzYWdlcy4gTXVsdGlwbGUgYXBwZW5kZXJzIGFyZSBhbGxvd2VkLiBCeSBkZWZhdWx0LCBpZiBub3Qgc3BlY2lmaWVkLCBsb2cgbWVzc2FnZXMgYXJlIHdyaXR0ZW4gdG8gdGhlIGNvbnNvbGUuXG4gICAgICovXG4gICAgbG9nQXBwZW5kZXJzPzogVHlwZTxMb2dBcHBlbmRlcj5bXTtcbiAgfTtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9mIGJ1aWx0LWluIG1lbnUgaXRlbXMgaW4gdGhlIHZpZXcncyBjb250ZXh0IG1lbnUuXG4gKlxuICogRWFjaCBwcm9wZXJ0eSByZXByZXNlbnRzIGEgbWVudSBpdGVtLCBhbGxvd2luZyBjdXN0b21pemF0aW9uIG9mIHZpc2liaWxpdHksIHRleHQsIGFjY2VsZXJhdG9ycywgYW5kIG1vcmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlld01lbnVJdGVtc0NvbmZpZyB7XG4gIGNsb3NlPzogTWVudUl0ZW1Db25maWc7XG4gIGNsb3NlT3RoZXJzPzogTWVudUl0ZW1Db25maWc7XG4gIGNsb3NlQWxsPzogTWVudUl0ZW1Db25maWc7XG4gIGNsb3NlVG9UaGVSaWdodD86IE1lbnVJdGVtQ29uZmlnO1xuICBjbG9zZVRvVGhlTGVmdD86IE1lbnVJdGVtQ29uZmlnO1xuICBtb3ZlVXA/OiBNZW51SXRlbUNvbmZpZztcbiAgbW92ZVJpZ2h0PzogTWVudUl0ZW1Db25maWc7XG4gIG1vdmVEb3duPzogTWVudUl0ZW1Db25maWc7XG4gIG1vdmVMZWZ0PzogTWVudUl0ZW1Db25maWc7XG4gIG1vdmVUb05ld1dpbmRvdz86IE1lbnVJdGVtQ29uZmlnO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyZXMgYSBidWlsdC1pbiBtZW51IGl0ZW0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWVudUl0ZW1Db25maWcge1xuICB2aXNpYmxlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdGV4dCBvZiB0aGlzIG1lbnUgaXRlbS5cbiAgICpcbiAgICogQ2FuIGJlIGEgc3RyaW5nIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgc3RyaW5nIG9yIGEge0BsaW5rIFNpZ25hbH0uXG4gICAqXG4gICAqIFRoZSBmdW5jdGlvbiBjYW4gY2FsbCBgaW5qZWN0YCB0byBnZXQgYW55IHJlcXVpcmVkIGRlcGVuZGVuY2llcywgb3IgdXNlIGB0b1NpZ25hbGAgdG8gY29udmVydCBhbiBvYnNlcnZhYmxlIHRvIGEgc2lnbmFsLlxuICAgKi9cbiAgdGV4dD86IHN0cmluZyB8ICgoKSA9PiBzdHJpbmcgfCBTaWduYWw8c3RyaW5nPik7XG4gIGFjY2VsZXJhdG9yPzogc3RyaW5nW107XG4gIGdyb3VwPzogc3RyaW5nO1xuICBjc3NDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuIl19
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  */
10
- import { Component, ElementRef, inject, ViewChild, ViewContainerRef } from '@angular/core';
10
+ import { ChangeDetectorRef, Component, ElementRef, inject, ViewChild, ViewContainerRef } from '@angular/core';
11
11
  import { IFRAME_HOST, VIEW_DROP_PLACEHOLDER_HOST, WORKBENCH_ELEMENT_REF } from './content-projection/view-container.reference';
12
12
  import { WorkbenchConfig } from './workbench-config';
13
13
  import { SplashComponent } from './startup/splash/splash.component';
@@ -20,6 +20,8 @@ import { first, map } from 'rxjs/operators';
20
20
  import { GLASS_PANE_BLOCKABLE, GLASS_PANE_OPTIONS, GLASS_PANE_TARGET_ELEMENT, GlassPaneDirective } from './glass-pane/glass-pane.directive';
21
21
  import { WorkbenchDialogRegistry } from './dialog/workbench-dialog.registry';
22
22
  import { WORKBENCH_AUXILIARY_ROUTE_OUTLET } from './routing/workbench-auxiliary-route-installer.service';
23
+ import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router } from '@angular/router';
24
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
23
25
  import * as i0 from "@angular/core";
24
26
  import * as i1 from "./workbench-config";
25
27
  import * as i2 from "./startup/workbench-launcher.service";
@@ -54,6 +56,7 @@ export class WorkbenchComponent {
54
56
  this.splash = workbenchConfig?.startup?.splash || SplashComponent;
55
57
  this.whenViewContainersInjected = this.createHostViewContainersInjectedPromise();
56
58
  this.startWorkbench();
59
+ this.disableChangeDetectionDuringNavigation();
57
60
  }
58
61
  /**
59
62
  * Starts the SCION Workbench. Has no effect if already started, e.g., in an app initializer or route guard.
@@ -77,6 +80,23 @@ export class WorkbenchComponent {
77
80
  unsetViewContainerReferences() {
78
81
  Object.values(this.viewContainerReferences).forEach(ref => ref.unset());
79
82
  }
83
+ /**
84
+ * Disables change detection during navigation to avoid partial DOM updates of the workbench layout
85
+ * if the navigation is asynchronous (e.g., because of lazy loading, async guards, or resolvers).
86
+ */
87
+ disableChangeDetectionDuringNavigation() {
88
+ const changeDetector = inject(ChangeDetectorRef);
89
+ inject(Router).events
90
+ .pipe(takeUntilDestroyed())
91
+ .subscribe(event => {
92
+ if (event instanceof NavigationStart) {
93
+ changeDetector.detach();
94
+ }
95
+ else if (event instanceof NavigationEnd || event instanceof NavigationError || event instanceof NavigationCancel) {
96
+ changeDetector.reattach();
97
+ }
98
+ });
99
+ }
80
100
  ngOnDestroy() {
81
101
  this.unsetViewContainerReferences();
82
102
  }
@@ -131,4 +151,4 @@ function configureWorkbenchGlassPane() {
131
151
  },
132
152
  ];
133
153
  }
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3dvcmtiZW5jaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi93b3JrYmVuY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQXVCLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUMsV0FBVyxFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFFN0gsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQVMsV0FBVyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQzlDLE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsa0JBQWtCLEVBQW1CLE1BQU0sbUNBQW1DLENBQUM7QUFDNUosT0FBTyxFQUFDLHVCQUF1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QU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUM1QixDQUFDO1lBQ0gsQ0FBQztTQUNGO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsa0JBQWtCO1lBQzNCLFFBQVEsRUFBRSxFQUFDLFFBQVEsRUFBRSxlQUFlLEVBQTRCO1NBQ2pFO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjMgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBpbmplY3QsIE9uRGVzdHJveSwgUHJvdmlkZXIsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lGUkFNRV9IT1NULCBWSUVXX0RST1BfUExBQ0VIT0xERVJfSE9TVCwgV09SS0JFTkNIX0VMRU1FTlRfUkVGfSBmcm9tICcuL2NvbnRlbnQtcHJvamVjdGlvbi92aWV3LWNvbnRhaW5lci5yZWZlcmVuY2UnO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXVuY2hlciwgV29ya2JlbmNoU3RhcnR1cH0gZnJvbSAnLi9zdGFydHVwL3dvcmtiZW5jaC1sYXVuY2hlci5zZXJ2aWNlJztcbmltcG9ydCB7V29ya2JlbmNoQ29uZmlnfSBmcm9tICcuL3dvcmtiZW5jaC1jb25maWcnO1xuaW1wb3J0IHtDb21wb25lbnRUeXBlfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7U3BsYXNoQ29tcG9uZW50fSBmcm9tICcuL3N0YXJ0dXAvc3BsYXNoL3NwbGFzaC5jb21wb25lbnQnO1xuaW1wb3J0IHtMb2dnZXIsIExvZ2dlck5hbWVzfSBmcm9tICcuL2xvZ2dpbmcnO1xuaW1wb3J0IHtBc3luY1BpcGUsIERPQ1VNRU5ULCBOZ0NvbXBvbmVudE91dGxldH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7V29ya2JlbmNoTGF5b3V0Q29tcG9uZW50fSBmcm9tICcuL2xheW91dC93b3JrYmVuY2gtbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQge05vdGlmaWNhdGlvbkxpc3RDb21wb25lbnR9IGZyb20gJy4vbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIGxhc3RWYWx1ZUZyb219IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaXJzdCwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0dMQVNTX1BBTkVfQkxPQ0tBQkxFLCBHTEFTU19QQU5FX09QVElPTlMsIEdMQVNTX1BBTkVfVEFSR0VUX0VMRU1FTlQsIEdsYXNzUGFuZURpcmVjdGl2ZSwgR2xhc3NQYW5lT3B0aW9uc30gZnJvbSAnLi9nbGFzcy1wYW5lL2dsYXNzLXBhbmUuZGlyZWN0aXZlJztcbmltcG9ydCB7V29ya2JlbmNoRGlhbG9nUmVnaXN0cnl9IGZyb20gJy4vZGlhbG9nL3dvcmtiZW5jaC1kaWFsb2cucmVnaXN0cnknO1xuaW1wb3J0IHtCbG9ja2FibGV9IGZyb20gJy4vZ2xhc3MtcGFuZS9ibG9ja2FibGUnO1xuaW1wb3J0IHtXT1JLQkVOQ0hfQVVYSUxJQVJZX1JPVVRFX09VVExFVH0gZnJvbSAnLi9yb3V0aW5nL3dvcmtiZW5jaC1hdXhpbGlhcnktcm91dGUtaW5zdGFsbGVyLnNlcnZpY2UnO1xuXG4vKipcbiAqIE1haW4gZW50cnkgcG9pbnQgY29tcG9uZW50IG9mIHRoZSBTQ0lPTiBXb3JrYmVuY2guXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3diLXdvcmtiZW5jaCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrYmVuY2guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93b3JrYmVuY2guY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEFzeW5jUGlwZSxcbiAgICBOZ0NvbXBvbmVudE91dGxldCxcbiAgICBXb3JrYmVuY2hMYXlvdXRDb21wb25lbnQsXG4gICAgTm90aWZpY2F0aW9uTGlzdENvbXBvbmVudCxcbiAgICBHbGFzc1BhbmVEaXJlY3RpdmUsXG4gIF0sXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICBjb25maWd1cmVXb3JrYmVuY2hHbGFzc1BhbmUoKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV29ya2JlbmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAvKipcbiAgICogVmlldyBjb250YWluZXJzIHJlcXVpcmVkIGZvciB0aGUgd29ya2JlbmNoIHRvIGF0dGFjaCBlbGVtZW50cy5cbiAgICovXG4gIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZmVyZW5jZXMgPSB7XG4gICAgd29ya2JlbmNoRWxlbWVudDogaW5qZWN0KFdPUktCRU5DSF9FTEVNRU5UX1JFRiksXG4gICAgaWZyYW1lSG9zdDogaW5qZWN0KElGUkFNRV9IT1NUKSxcbiAgICB2aWV3RHJvcFBsYWNlaG9sZGVySG9zdDogaW5qZWN0KFZJRVdfRFJPUF9QTEFDRUhPTERFUl9IT1NUKSxcbiAgfTtcblxuICAvKipcbiAgICogU3BsYXNoIHRvIGRpc3BsYXkgZHVyaW5nIHdvcmtiZW5jaCBzdGFydHVwLlxuICAgKi9cbiAgcHJvdGVjdGVkIHNwbGFzaDogQ29tcG9uZW50VHlwZTx1bmtub3duPjtcblxuICAvKipcbiAgICogUHJvbWlzZSB0aGF0IHJlc29sdmVzIG9uY2UgYWxsIHRoZSByZXF1aXJlZCB2aWV3IGNvbnRhaW5lcnMgZm9yIHRoZSB3b3JrYmVuY2ggdG8gYXR0YWNoIGVsZW1lbnRzIGhhdmUgYmVlbiBpbmplY3RlZCBmcm9tIHRoZSB0ZW1wbGF0ZS5cbiAgICpcbiAgICogVG8gYXZvaWQgYW4gYEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3JgLCBtYWtlIHN1cmUgbm90IHRvIGFkZCB0aGUge0BsaW5rIFdvcmtiZW5jaExheW91dENvbXBvbmVudH0gYmVmb3JlIHRoZSByZWxldmFudFxuICAgKiB2aWV3IGNvbnRhaW5lcnMgaGF2ZSBiZWVuIGluamVjdGVkLiBPdGhlcndpc2UsIHdoZW4gbG9hZGluZyBhbiBleGlzdGluZyB3b3JrYmVuY2ggbGF5b3V0IChlLmcuLCBmcm9tIFVSTCkgaW50byB0aGUgd29ya2JlbmNoLCBBbmd1bGFyXG4gICAqIHdpbGwgdGhyb3cgdGhpcyBlcnJvciBiZWNhdXNlIHZpZXdzIGFyZSByZW5kZXJlZCBiZWZvcmUgdmlldyBjb250YWluZXJzIGFyZSBhdmFpbGFibGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgd2hlblZpZXdDb250YWluZXJzSW5qZWN0ZWQ6IFByb21pc2U8dHJ1ZT47XG5cbiAgQFZpZXdDaGlsZCgnaWZyYW1lX2hvc3QnLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZn0pXG4gIHByb3RlY3RlZCBzZXQgaW5qZWN0SWZyYW1lSG9zdCh2Y3I6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICB2Y3IgJiYgdGhpcy52aWV3Q29udGFpbmVyUmVmZXJlbmNlcy5pZnJhbWVIb3N0LnNldCh2Y3IpO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgndmlld19kcm9wX3BsYWNlaG9sZGVyX2hvc3QnLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZn0pXG4gIHByb3RlY3RlZCBzZXQgaW5qZWN0Vmlld0Ryb3BQbGFjZWhvbGRlckhvc3QodmNyOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgdmNyICYmIHRoaXMudmlld0NvbnRhaW5lclJlZmVyZW5jZXMudmlld0Ryb3BQbGFjZWhvbGRlckhvc3Quc2V0KHZjcik7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcih3b3JrYmVuY2hDb25maWc6IFdvcmtiZW5jaENvbmZpZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfd29ya2JlbmNoTGF1bmNoZXI6IFdvcmtiZW5jaExhdW5jaGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIF9sb2dnZXI6IExvZ2dlcixcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIHdvcmtiZW5jaFN0YXJ0dXA6IFdvcmtiZW5jaFN0YXJ0dXApIHtcbiAgICB0aGlzLl9sb2dnZXIuZGVidWcoKCkgPT4gJ0NvbnN0cnVjdGluZyBXb3JrYmVuY2hDb21wb25lbnQuJywgTG9nZ2VyTmFtZXMuTElGRUNZQ0xFKTtcbiAgICBpZiAoaW5qZWN0KFdPUktCRU5DSF9BVVhJTElBUllfUk9VVEVfT1VUTEVULCB7b3B0aW9uYWw6IHRydWV9KSkge1xuICAgICAgdGhyb3cgRXJyb3IoYFtXb3JrYmVuY2hFcnJvcl0gV29ya2JlbmNoIG11c3Qgbm90IGJlIGxvYWRlZCBpbnRvIGEgdmlldy4gRGlkIHlvdSBuYXZpZ2F0ZSB0byB0aGUgZW1wdHkgcGF0aCByb3V0ZT8gTWFrZSBzdXJlIHRoYXQgdGhlIGFwcGxpY2F0aW9uJ3Mgcm9vdCByb3V0ZSBpcyBndWFyZGVkIHdpdGggJ2Nhbk1hdGNoV29ya2JlbmNoVmlldyhmYWxzZSknLiBFeGFtcGxlOiBcIntwYXRoOiAnJywgY2FuTWF0Y2g6IFtjYW5NYXRjaFdvcmtiZW5jaFZpZXcoZmFsc2UpLCAuLi5dfVwiYCk7XG4gICAgfVxuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZmVyZW5jZXMud29ya2JlbmNoRWxlbWVudC5zZXQoaW5qZWN0KFZpZXdDb250YWluZXJSZWYpKTtcbiAgICB0aGlzLnNwbGFzaCA9IHdvcmtiZW5jaENvbmZpZz8uc3RhcnR1cD8uc3BsYXNoIHx8IFNwbGFzaENvbXBvbmVudDtcbiAgICB0aGlzLndoZW5WaWV3Q29udGFpbmVyc0luamVjdGVkID0gdGhpcy5jcmVhdGVIb3N0Vmlld0NvbnRhaW5lcnNJbmplY3RlZFByb21pc2UoKTtcbiAgICB0aGlzLnN0YXJ0V29ya2JlbmNoKCk7XG4gIH1cblxuICAvKipcbiAgICogU3RhcnRzIHRoZSBTQ0lPTiBXb3JrYmVuY2guIEhhcyBubyBlZmZlY3QgaWYgYWxyZWFkeSBzdGFydGVkLCBlLmcuLCBpbiBhbiBhcHAgaW5pdGlhbGl6ZXIgb3Igcm91dGUgZ3VhcmQuXG4gICAqL1xuICBwcml2YXRlIHN0YXJ0V29ya2JlbmNoKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy53b3JrYmVuY2hTdGFydHVwLmlzU3RhcnRlZCgpKSB7XG4gICAgICB0aGlzLl93b3JrYmVuY2hMYXVuY2hlci5sYXVuY2goKS5jYXRjaChlcnJvciA9PiB0aGlzLl9sb2dnZXIuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBTQ0lPTiBXb3JrYmVuY2gnLCBlcnJvcikpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIG9uY2UgYWxsIHRoZSByZXF1aXJlZCB2aWV3IGNvbnRhaW5lcnMgZm9yIHRoZSB3b3JrYmVuY2ggdG8gYXR0YWNoIGVsZW1lbnRzIGhhdmUgYmVlbiBpbmplY3RlZCBmcm9tIHRoZSB0ZW1wbGF0ZS5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlSG9zdFZpZXdDb250YWluZXJzSW5qZWN0ZWRQcm9taXNlKCk6IFByb21pc2U8dHJ1ZT4ge1xuICAgIGNvbnN0IHJlZmVyZW5jZXMgPSBPYmplY3QudmFsdWVzKHRoaXMudmlld0NvbnRhaW5lclJlZmVyZW5jZXMpO1xuICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKGNvbWJpbmVMYXRlc3QocmVmZXJlbmNlcy5tYXAocmVmZXJlbmNlID0+IHJlZmVyZW5jZS5yZWYkKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaXJzdCh2Y3JzID0+IHZjcnMuZXZlcnkoQm9vbGVhbikpLFxuICAgICAgICBtYXAoKCkgPT4gdHJ1ZSksXG4gICAgICApKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnNldHMgdmlldyBjb250YWluZXIgcmVmZXJlbmNlcyB3aGVuIHRoaXMgY29tcG9uZW50IGlzIGRlc3Ryb3llZC5cbiAgICovXG4gIHByaXZhdGUgdW5zZXRWaWV3Q29udGFpbmVyUmVmZXJlbmNlcygpOiB2b2lkIHtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMudmlld0NvbnRhaW5lclJlZmVyZW5jZXMpLmZvckVhY2gocmVmID0+IHJlZi51bnNldCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc2V0Vmlld0NvbnRhaW5lclJlZmVyZW5jZXMoKTtcbiAgfVxufVxuXG4vKipcbiAqIEJsb2NrcyB0aGUgd29ya2JlbmNoIG9yIHRoZSBicm93c2VyJ3Mgdmlld3BvcnQgd2hlbiBvcGVuaW5nIGFuIGFwcGxpY2F0aW9uLW1vZGFsIGRpYWxvZy5cbiAqL1xuZnVuY3Rpb24gY29uZmlndXJlV29ya2JlbmNoR2xhc3NQYW5lKCk6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEdMQVNTX1BBTkVfQkxPQ0tBQkxFLFxuICAgICAgdXNlRmFjdG9yeTogKCk6IEJsb2NrYWJsZSA9PiAoe1xuICAgICAgICBibG9ja2VkQnkkOiBpbmplY3QoV29ya2JlbmNoRGlhbG9nUmVnaXN0cnkpLnRvcCQoKSxcbiAgICAgIH0pLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogR0xBU1NfUEFORV9UQVJHRVRfRUxFTUVOVCxcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgaWYgKGluamVjdChXb3JrYmVuY2hDb25maWcpLmRpYWxvZz8ubW9kYWxpdHlTY29wZSA9PT0gJ3ZpZXdwb3J0Jykge1xuICAgICAgICAgIHJldHVybiBpbmplY3QoRE9DVU1FTlQpLmJvZHk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGluamVjdChFbGVtZW50UmVmKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEdMQVNTX1BBTkVfT1BUSU9OUyxcbiAgICAgIHVzZVZhbHVlOiB7Y3NzQ2xhc3M6ICdlMmUtd29ya2JlbmNoJ30gc2F0aXNmaWVzIEdsYXNzUGFuZU9wdGlvbnMsXG4gICAgfSxcbiAgXTtcbn1cbiIsIkBpZiAod29ya2JlbmNoU3RhcnR1cC5pc1N0YXJ0ZWQoKSkge1xuICA8ZGl2IGNsYXNzPVwic3RhY2tpbmctY29udGV4dC1iYXJyaWVyXCIgd2JHbGFzc1BhbmU+XG4gICAgQGlmICh3aGVuVmlld0NvbnRhaW5lcnNJbmplY3RlZCB8IGFzeW5jKSB7XG4gICAgICA8d2Itd29ya2JlbmNoLWxheW91dC8+XG4gICAgfVxuICAgIDwhLS0gQWNob3IgdG8gYXR0YWNoIGlmcmFtZXMgb2YgZW1iZWRkZWQgbWljcm9mcm9udGVuZHMgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAjaWZyYW1lX2hvc3QvPlxuICA8L2Rpdj5cblxuICA8IS0tIEFuY2hvciB0byBhdHRhY2ggdGhlIHZpc3VhbCBwbGFjZWhvbGRlciB3aGVuIGRyYWdnaW5nIGEgdmlldyBvdmVyIGEgdmFsaWQgZHJvcCB6b25lIC0tPlxuICA8ZGl2ICN2aWV3X2Ryb3BfcGxhY2Vob2xkZXJfaG9zdCBjbGFzcz1cInZpZXctZHJvcC1wbGFjZWhvbGRlci1ob3N0XCI+PC9kaXY+XG5cbiAgPCEtLSBOb3RpZmljYXRpb25zIC0tPlxuICA8d2Itbm90aWZpY2F0aW9uLWxpc3QvPlxufSBAZWxzZSB7XG4gIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwic3BsYXNoXCIvPlxufVxuIl19
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL3dvcmtiZW5jaC9zcmMvbGliL3dvcmtiZW5jaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi93b3JrYmVuY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQXVCLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqSSxPQUFPLEVBQUMsV0FBVyxFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFFN0gsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQVMsV0FBVyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQzlDLE9BQU8sRUFBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFDLEtBQUssRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsa0JBQWtCLEVBQW1CLE1BQU0sbUNBQW1DLENBQUM7QUFDNUosT0FB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LHlCQUF5Qjt3QkFDekIsa0JBQWtCO3FCQUNuQixpQkFDYzt3QkFDYiwyQkFBMkIsRUFBRTtxQkFDOUI7d0tBNEJhLGdCQUFnQjtzQkFEN0IsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUM7Z0JBTXBDLDZCQUE2QjtzQkFEMUMsU0FBUzt1QkFBQyw0QkFBNEIsRUFBRSxFQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBQzs7QUF3RW5FOztHQUVHO0FBQ0gsU0FBUywyQkFBMkI7SUFDbEMsT0FBTztRQUNMO1lBQ0UsT0FBTyxFQUFFLG9CQUFvQjtZQUM3QixVQUFVLEVBQUUsR0FBYyxFQUFFLENBQUMsQ0FBQztnQkFDNUIsVUFBVSxFQUFFLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLElBQUksRUFBRTthQUNuRCxDQUFDO1NBQ0g7UUFDRDtZQUNFLE9BQU8sRUFBRSx5QkFBeUI7WUFDbEMsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQkFDZixJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLEVBQUUsYUFBYSxLQUFLLFVBQVUsRUFBRSxDQUFDO29CQUNqRSxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQy9CLENBQUM7cUJBQ0ksQ0FBQztvQkFDSixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDNUIsQ0FBQztZQUNILENBQUM7U0FDRjtRQUNEO1lBQ0UsT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixRQUFRLEVBQUUsRUFBQyxRQUFRLEVBQUUsZUFBZSxFQUE0QjtTQUNqRTtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIzIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgT25EZXN0cm95LCBQcm92aWRlciwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SUZSQU1FX0hPU1QsIFZJRVdfRFJPUF9QTEFDRUhPTERFUl9IT1NULCBXT1JLQkVOQ0hfRUxFTUVOVF9SRUZ9IGZyb20gJy4vY29udGVudC1wcm9qZWN0aW9uL3ZpZXctY29udGFpbmVyLnJlZmVyZW5jZSc7XG5pbXBvcnQge1dvcmtiZW5jaExhdW5jaGVyLCBXb3JrYmVuY2hTdGFydHVwfSBmcm9tICcuL3N0YXJ0dXAvd29ya2JlbmNoLWxhdW5jaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtXb3JrYmVuY2hDb25maWd9IGZyb20gJy4vd29ya2JlbmNoLWNvbmZpZyc7XG5pbXBvcnQge0NvbXBvbmVudFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtTcGxhc2hDb21wb25lbnR9IGZyb20gJy4vc3RhcnR1cC9zcGxhc2gvc3BsYXNoLmNvbXBvbmVudCc7XG5pbXBvcnQge0xvZ2dlciwgTG9nZ2VyTmFtZXN9IGZyb20gJy4vbG9nZ2luZyc7XG5pbXBvcnQge0FzeW5jUGlwZSwgRE9DVU1FTlQsIE5nQ29tcG9uZW50T3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtXb3JrYmVuY2hMYXlvdXRDb21wb25lbnR9IGZyb20gJy4vbGF5b3V0L3dvcmtiZW5jaC1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7Tm90aWZpY2F0aW9uTGlzdENvbXBvbmVudH0gZnJvbSAnLi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7Y29tYmluZUxhdGVzdCwgbGFzdFZhbHVlRnJvbX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpcnN0LCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7R0xBU1NfUEFORV9CTE9DS0FCTEUsIEdMQVNTX1BBTkVfT1BUSU9OUywgR0xBU1NfUEFORV9UQVJHRVRfRUxFTUVOVCwgR2xhc3NQYW5lRGlyZWN0aXZlLCBHbGFzc1BhbmVPcHRpb25zfSBmcm9tICcuL2dsYXNzLXBhbmUvZ2xhc3MtcGFuZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtXb3JrYmVuY2hEaWFsb2dSZWdpc3RyeX0gZnJvbSAnLi9kaWFsb2cvd29ya2JlbmNoLWRpYWxvZy5yZWdpc3RyeSc7XG5pbXBvcnQge0Jsb2NrYWJsZX0gZnJvbSAnLi9nbGFzcy1wYW5lL2Jsb2NrYWJsZSc7XG5pbXBvcnQge1dPUktCRU5DSF9BVVhJTElBUllfUk9VVEVfT1VUTEVUfSBmcm9tICcuL3JvdXRpbmcvd29ya2JlbmNoLWF1eGlsaWFyeS1yb3V0ZS1pbnN0YWxsZXIuc2VydmljZSc7XG5pbXBvcnQge05hdmlnYXRpb25DYW5jZWwsIE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25FcnJvciwgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG4vKipcbiAqIE1haW4gZW50cnkgcG9pbnQgY29tcG9uZW50IG9mIHRoZSBTQ0lPTiBXb3JrYmVuY2guXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3diLXdvcmtiZW5jaCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrYmVuY2guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93b3JrYmVuY2guY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEFzeW5jUGlwZSxcbiAgICBOZ0NvbXBvbmVudE91dGxldCxcbiAgICBXb3JrYmVuY2hMYXlvdXRDb21wb25lbnQsXG4gICAgTm90aWZpY2F0aW9uTGlzdENvbXBvbmVudCxcbiAgICBHbGFzc1BhbmVEaXJlY3RpdmUsXG4gIF0sXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICBjb25maWd1cmVXb3JrYmVuY2hHbGFzc1BhbmUoKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV29ya2JlbmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAvKipcbiAgICogVmlldyBjb250YWluZXJzIHJlcXVpcmVkIGZvciB0aGUgd29ya2JlbmNoIHRvIGF0dGFjaCBlbGVtZW50cy5cbiAgICovXG4gIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZmVyZW5jZXMgPSB7XG4gICAgd29ya2JlbmNoRWxlbWVudDogaW5qZWN0KFdPUktCRU5DSF9FTEVNRU5UX1JFRiksXG4gICAgaWZyYW1lSG9zdDogaW5qZWN0KElGUkFNRV9IT1NUKSxcbiAgICB2aWV3RHJvcFBsYWNlaG9sZGVySG9zdDogaW5qZWN0KFZJRVdfRFJPUF9QTEFDRUhPTERFUl9IT1NUKSxcbiAgfTtcblxuICAvKipcbiAgICogU3BsYXNoIHRvIGRpc3BsYXkgZHVyaW5nIHdvcmtiZW5jaCBzdGFydHVwLlxuICAgKi9cbiAgcHJvdGVjdGVkIHNwbGFzaDogQ29tcG9uZW50VHlwZTx1bmtub3duPjtcblxuICAvKipcbiAgICogUHJvbWlzZSB0aGF0IHJlc29sdmVzIG9uY2UgYWxsIHRoZSByZXF1aXJlZCB2aWV3IGNvbnRhaW5lcnMgZm9yIHRoZSB3b3JrYmVuY2ggdG8gYXR0YWNoIGVsZW1lbnRzIGhhdmUgYmVlbiBpbmplY3RlZCBmcm9tIHRoZSB0ZW1wbGF0ZS5cbiAgICpcbiAgICogVG8gYXZvaWQgYW4gYEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3JgLCBtYWtlIHN1cmUgbm90IHRvIGFkZCB0aGUge0BsaW5rIFdvcmtiZW5jaExheW91dENvbXBvbmVudH0gYmVmb3JlIHRoZSByZWxldmFudFxuICAgKiB2aWV3IGNvbnRhaW5lcnMgaGF2ZSBiZWVuIGluamVjdGVkLiBPdGhlcndpc2UsIHdoZW4gbG9hZGluZyBhbiBleGlzdGluZyB3b3JrYmVuY2ggbGF5b3V0IChlLmcuLCBmcm9tIFVSTCkgaW50byB0aGUgd29ya2JlbmNoLCBBbmd1bGFyXG4gICAqIHdpbGwgdGhyb3cgdGhpcyBlcnJvciBiZWNhdXNlIHZpZXdzIGFyZSByZW5kZXJlZCBiZWZvcmUgdmlldyBjb250YWluZXJzIGFyZSBhdmFpbGFibGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgd2hlblZpZXdDb250YWluZXJzSW5qZWN0ZWQ6IFByb21pc2U8dHJ1ZT47XG5cbiAgQFZpZXdDaGlsZCgnaWZyYW1lX2hvc3QnLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZn0pXG4gIHByb3RlY3RlZCBzZXQgaW5qZWN0SWZyYW1lSG9zdCh2Y3I6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICB2Y3IgJiYgdGhpcy52aWV3Q29udGFpbmVyUmVmZXJlbmNlcy5pZnJhbWVIb3N0LnNldCh2Y3IpO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgndmlld19kcm9wX3BsYWNlaG9sZGVyX2hvc3QnLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZn0pXG4gIHByb3RlY3RlZCBzZXQgaW5qZWN0Vmlld0Ryb3BQbGFjZWhvbGRlckhvc3QodmNyOiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgdmNyICYmIHRoaXMudmlld0NvbnRhaW5lclJlZmVyZW5jZXMudmlld0Ryb3BQbGFjZWhvbGRlckhvc3Quc2V0KHZjcik7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcih3b3JrYmVuY2hDb25maWc6IFdvcmtiZW5jaENvbmZpZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfd29ya2JlbmNoTGF1bmNoZXI6IFdvcmtiZW5jaExhdW5jaGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIF9sb2dnZXI6IExvZ2dlcixcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIHdvcmtiZW5jaFN0YXJ0dXA6IFdvcmtiZW5jaFN0YXJ0dXApIHtcbiAgICB0aGlzLl9sb2dnZXIuZGVidWcoKCkgPT4gJ0NvbnN0cnVjdGluZyBXb3JrYmVuY2hDb21wb25lbnQuJywgTG9nZ2VyTmFtZXMuTElGRUNZQ0xFKTtcbiAgICBpZiAoaW5qZWN0KFdPUktCRU5DSF9BVVhJTElBUllfUk9VVEVfT1VUTEVULCB7b3B0aW9uYWw6IHRydWV9KSkge1xuICAgICAgdGhyb3cgRXJyb3IoYFtXb3JrYmVuY2hFcnJvcl0gV29ya2JlbmNoIG11c3Qgbm90IGJlIGxvYWRlZCBpbnRvIGEgdmlldy4gRGlkIHlvdSBuYXZpZ2F0ZSB0byB0aGUgZW1wdHkgcGF0aCByb3V0ZT8gTWFrZSBzdXJlIHRoYXQgdGhlIGFwcGxpY2F0aW9uJ3Mgcm9vdCByb3V0ZSBpcyBndWFyZGVkIHdpdGggJ2Nhbk1hdGNoV29ya2JlbmNoVmlldyhmYWxzZSknLiBFeGFtcGxlOiBcIntwYXRoOiAnJywgY2FuTWF0Y2g6IFtjYW5NYXRjaFdvcmtiZW5jaFZpZXcoZmFsc2UpLCAuLi5dfVwiYCk7XG4gICAgfVxuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZmVyZW5jZXMud29ya2JlbmNoRWxlbWVudC5zZXQoaW5qZWN0KFZpZXdDb250YWluZXJSZWYpKTtcbiAgICB0aGlzLnNwbGFzaCA9IHdvcmtiZW5jaENvbmZpZz8uc3RhcnR1cD8uc3BsYXNoIHx8IFNwbGFzaENvbXBvbmVudDtcbiAgICB0aGlzLndoZW5WaWV3Q29udGFpbmVyc0luamVjdGVkID0gdGhpcy5jcmVhdGVIb3N0Vmlld0NvbnRhaW5lcnNJbmplY3RlZFByb21pc2UoKTtcbiAgICB0aGlzLnN0YXJ0V29ya2JlbmNoKCk7XG4gICAgdGhpcy5kaXNhYmxlQ2hhbmdlRGV0ZWN0aW9uRHVyaW5nTmF2aWdhdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0cyB0aGUgU0NJT04gV29ya2JlbmNoLiBIYXMgbm8gZWZmZWN0IGlmIGFscmVhZHkgc3RhcnRlZCwgZS5nLiwgaW4gYW4gYXBwIGluaXRpYWxpemVyIG9yIHJvdXRlIGd1YXJkLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGFydFdvcmtiZW5jaCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMud29ya2JlbmNoU3RhcnR1cC5pc1N0YXJ0ZWQoKSkge1xuICAgICAgdGhpcy5fd29ya2JlbmNoTGF1bmNoZXIubGF1bmNoKCkuY2F0Y2goZXJyb3IgPT4gdGhpcy5fbG9nZ2VyLmVycm9yKCdGYWlsZWQgdG8gc3RhcnQgU0NJT04gV29ya2JlbmNoJywgZXJyb3IpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyBvbmNlIGFsbCB0aGUgcmVxdWlyZWQgdmlldyBjb250YWluZXJzIGZvciB0aGUgd29ya2JlbmNoIHRvIGF0dGFjaCBlbGVtZW50cyBoYXZlIGJlZW4gaW5qZWN0ZWQgZnJvbSB0aGUgdGVtcGxhdGUuXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUhvc3RWaWV3Q29udGFpbmVyc0luamVjdGVkUHJvbWlzZSgpOiBQcm9taXNlPHRydWU+IHtcbiAgICBjb25zdCByZWZlcmVuY2VzID0gT2JqZWN0LnZhbHVlcyh0aGlzLnZpZXdDb250YWluZXJSZWZlcmVuY2VzKTtcbiAgICByZXR1cm4gbGFzdFZhbHVlRnJvbShjb21iaW5lTGF0ZXN0KHJlZmVyZW5jZXMubWFwKHJlZmVyZW5jZSA9PiByZWZlcmVuY2UucmVmJCkpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlyc3QodmNycyA9PiB2Y3JzLmV2ZXJ5KEJvb2xlYW4pKSxcbiAgICAgICAgbWFwKCgpID0+IHRydWUpLFxuICAgICAgKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5zZXRzIHZpZXcgY29udGFpbmVyIHJlZmVyZW5jZXMgd2hlbiB0aGlzIGNvbXBvbmVudCBpcyBkZXN0cm95ZWQuXG4gICAqL1xuICBwcml2YXRlIHVuc2V0Vmlld0NvbnRhaW5lclJlZmVyZW5jZXMoKTogdm9pZCB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnZpZXdDb250YWluZXJSZWZlcmVuY2VzKS5mb3JFYWNoKHJlZiA9PiByZWYudW5zZXQoKSk7XG4gIH1cblxuICAvKipcbiAgICogRGlzYWJsZXMgY2hhbmdlIGRldGVjdGlvbiBkdXJpbmcgbmF2aWdhdGlvbiB0byBhdm9pZCBwYXJ0aWFsIERPTSB1cGRhdGVzIG9mIHRoZSB3b3JrYmVuY2ggbGF5b3V0XG4gICAqIGlmIHRoZSBuYXZpZ2F0aW9uIGlzIGFzeW5jaHJvbm91cyAoZS5nLiwgYmVjYXVzZSBvZiBsYXp5IGxvYWRpbmcsIGFzeW5jIGd1YXJkcywgb3IgcmVzb2x2ZXJzKS5cbiAgICovXG4gIHByaXZhdGUgZGlzYWJsZUNoYW5nZURldGVjdGlvbkR1cmluZ05hdmlnYXRpb24oKTogdm9pZCB7XG4gICAgY29uc3QgY2hhbmdlRGV0ZWN0b3IgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgaW5qZWN0KFJvdXRlcikuZXZlbnRzXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgICBjaGFuZ2VEZXRlY3Rvci5kZXRhY2goKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHwgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRXJyb3IgfHwgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsKSB7XG4gICAgICAgICAgY2hhbmdlRGV0ZWN0b3IucmVhdHRhY2goKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bnNldFZpZXdDb250YWluZXJSZWZlcmVuY2VzKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBCbG9ja3MgdGhlIHdvcmtiZW5jaCBvciB0aGUgYnJvd3NlcidzIHZpZXdwb3J0IHdoZW4gb3BlbmluZyBhbiBhcHBsaWNhdGlvbi1tb2RhbCBkaWFsb2cuXG4gKi9cbmZ1bmN0aW9uIGNvbmZpZ3VyZVdvcmtiZW5jaEdsYXNzUGFuZSgpOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBHTEFTU19QQU5FX0JMT0NLQUJMRSxcbiAgICAgIHVzZUZhY3Rvcnk6ICgpOiBCbG9ja2FibGUgPT4gKHtcbiAgICAgICAgYmxvY2tlZEJ5JDogaW5qZWN0KFdvcmtiZW5jaERpYWxvZ1JlZ2lzdHJ5KS50b3AkKCksXG4gICAgICB9KSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEdMQVNTX1BBTkVfVEFSR0VUX0VMRU1FTlQsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgIGlmIChpbmplY3QoV29ya2JlbmNoQ29uZmlnKS5kaWFsb2c/Lm1vZGFsaXR5U2NvcGUgPT09ICd2aWV3cG9ydCcpIHtcbiAgICAgICAgICByZXR1cm4gaW5qZWN0KERPQ1VNRU5UKS5ib2R5O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHJldHVybiBpbmplY3QoRWxlbWVudFJlZik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBHTEFTU19QQU5FX09QVElPTlMsXG4gICAgICB1c2VWYWx1ZToge2Nzc0NsYXNzOiAnZTJlLXdvcmtiZW5jaCd9IHNhdGlzZmllcyBHbGFzc1BhbmVPcHRpb25zLFxuICAgIH0sXG4gIF07XG59XG4iLCJAaWYgKHdvcmtiZW5jaFN0YXJ0dXAuaXNTdGFydGVkKCkpIHtcbiAgPGRpdiBjbGFzcz1cInN0YWNraW5nLWNvbnRleHQtYmFycmllclwiIHdiR2xhc3NQYW5lPlxuICAgIEBpZiAod2hlblZpZXdDb250YWluZXJzSW5qZWN0ZWQgfCBhc3luYykge1xuICAgICAgPHdiLXdvcmtiZW5jaC1sYXlvdXQvPlxuICAgIH1cbiAgICA8IS0tIEFjaG9yIHRvIGF0dGFjaCBpZnJhbWVzIG9mIGVtYmVkZGVkIG1pY3JvZnJvbnRlbmRzIC0tPlxuICAgIDxuZy1jb250YWluZXIgI2lmcmFtZV9ob3N0Lz5cbiAgPC9kaXY+XG5cbiAgPCEtLSBBbmNob3IgdG8gYXR0YWNoIHRoZSB2aXN1YWwgcGxhY2Vob2xkZXIgd2hlbiBkcmFnZ2luZyBhIHZpZXcgb3ZlciBhIHZhbGlkIGRyb3Agem9uZSAtLT5cbiAgPGRpdiAjdmlld19kcm9wX3BsYWNlaG9sZGVyX2hvc3QgY2xhc3M9XCJ2aWV3LWRyb3AtcGxhY2Vob2xkZXItaG9zdFwiPjwvZGl2PlxuXG4gIDwhLS0gTm90aWZpY2F0aW9ucyAtLT5cbiAgPHdiLW5vdGlmaWNhdGlvbi1saXN0Lz5cbn0gQGVsc2Uge1xuICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cInNwbGFzaFwiLz5cbn1cbiJdfQ==
@@ -8,4 +8,4 @@
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  */
10
10
  export {};
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvd29ya2JlbmNoLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWwsIFBvcnRhbCwgVGVtcGxhdGVQb3J0YWx9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hWaWV3fSBmcm9tICcuL3ZpZXcvd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hQYXJ0fSBmcm9tICcuL3BhcnQvd29ya2JlbmNoLXBhcnQubW9kZWwnO1xuXG4vKipcbiAqIEd1YXJkIHRoYXQgYSB2aWV3IGNhbiBpbXBsZW1lbnQgdG8gZGVjaWRlIHdoZXRoZXIgaXQgY2FuIGJlIGNsb3NlZC5cbiAqXG4gKiBUaGUgZm9sbG93aW5nIGV4YW1wbGUgaW1wbGVtZW50cyBhIGBDYW5DbG9zZWAgZ3VhcmQgdGhhdCBhc2tzIHRoZSB1c2VyIHdoZXRoZXIgdGhlIHZpZXcgY2FuIGJlIGNsb3NlZC5cbiAqXG4gKiBgYGB0c1xuICogY2xhc3MgVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIENhbkNsb3NlIHtcbiAqXG4gKiAgIHB1YmxpYyBhc3luYyBjYW5DbG9zZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAqICAgICBjb25zdCBhY3Rpb24gPSBhd2FpdCBpbmplY3QoV29ya2JlbmNoTWVzc2FnZUJveFNlcnZpY2UpLm9wZW4oJ0RvIHlvdSB3YW50IHRvIGNsb3NlIHRoaXMgdmlldz8nLCB7XG4gKiAgICAgICBhY3Rpb25zOiB7eWVzOiAnWWVzJywgbm86ICdObyd9LFxuICogICAgIH0pO1xuICogICAgIHJldHVybiBhY3Rpb24gPT09ICd5ZXMnO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYW5DbG9zZSB7XG5cbiAgLyoqXG4gICAqIERlY2lkZXMgd2hldGhlciB0aGlzIHZpZXcgY2FuIGJlIGNsb3NlZC5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBjYW4gY2FsbCBgaW5qZWN0YCB0byBnZXQgYW55IHJlcXVpcmVkIGRlcGVuZGVuY2llcy5cbiAgICovXG4gIGNhbkNsb3NlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBQcm9taXNlPGJvb2xlYW4+IHwgYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYW4gYWN0aW9uIGNvbnRyaWJ1dGVkIHRvIGEgcGFydC5cbiAqXG4gKiBQYXJ0IGFjdGlvbnMgYXJlIGRpc3BsYXllZCB0byB0aGUgcmlnaHQgb2YgdGhlIHZpZXcgdGFicyBhbmQgZW5hYmxlIGludGVyYWN0aW9uIHdpdGggdGhlIHBhcnQgYW5kIGl0cyBjb250ZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtiZW5jaFBhcnRBY3Rpb24ge1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBwb3J0YWwgdG8gcmVuZGVyIHRoZSBhY3Rpb24uXG4gICAqXG4gICAqIFVzZSBhIHtAbGluayBDb21wb25lbnRQb3J0YWx9IHRvIHJlbmRlciBhIGNvbXBvbmVudCwgb3IgYSB7QGxpbmsgVGVtcGxhdGVQb3J0YWx9IHRvIHJlbmRlciBhIHRlbXBsYXRlLlxuICAgKi9cbiAgcG9ydGFsOiBQb3J0YWw8dW5rbm93bj47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hlcmUgdG8gcGxhY2UgdGhpcyBhY3Rpb24gaW4gdGhlIGFjdGlvbiBiYXIuXG4gICAqL1xuICBhbGlnbj86ICdzdGFydCcgfCAnZW5kJztcbiAgLyoqXG4gICAqIFByZWRpY2F0ZSB0byBtYXRjaCBhIHNwZWNpZmljIHBhcnQsIHBhcnRzIGluIGEgc3BlY2lmaWMgYXJlYSwgb3IgcGFydHMgZnJvbSBhIHNwZWNpZmljIHBlcnNwZWN0aXZlLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCBpZiBub3Qgc3BlY2lmaWVkLCBtYXRjaGVzIGFueSBwYXJ0LlxuICAgKlxuICAgKiBUaGUgZnVuY3Rpb24gY2FuIGNhbGwgYGluamVjdGAgdG8gZ2V0IGFueSByZXF1aXJlZCBkZXBlbmRlbmNpZXMuXG4gICAqL1xuICBjYW5NYXRjaD86IENhbk1hdGNoUGFydEZuO1xuICAvKipcbiAgICogU3BlY2lmaWVzIENTUyBjbGFzcyhlcykgdG8gYWRkIHRvIHRoZSBhY3Rpb24sIGUuZy4sIHRvIGxvY2F0ZSB0aGUgYWN0aW9uIGluIHRlc3RzLlxuICAgKi9cbiAgY3NzQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBUaGUgc2lnbmF0dXJlIG9mIGEgZnVuY3Rpb24gdXNlZCBhcyBhIGBjYW5NYXRjaGAgY29uZGl0aW9uIGZvciBhIHBhcnQuXG4gKlxuICogLSBUaGUgZnVuY3Rpb24gY2FuIGNhbGwgYGluamVjdGAgdG8gZ2V0IGFueSByZXF1aXJlZCBkZXBlbmRlbmNpZXMuXG4gKiAtIFRoZSBmdW5jdGlvbiBydW5zIGluIGEgcmVhY3RpdmUgY29udGV4dCwgcmUtZXZhbHVhdGluZyB3aGVuIHRyYWNrZWQgc2lnbmFscyBjaGFuZ2UuXG4gKiAgIFRvIGV4ZWN1dGUgY29kZSBvdXRzaWRlIHRoaXMgcmVhY3RpdmUgY29udGV4dCwgdXNlIEFuZ3VsYXIncyBgdW50cmFja2VkYCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgQ2FuTWF0Y2hQYXJ0Rm4gPSAocGFydDogV29ya2JlbmNoUGFydCkgPT4gYm9vbGVhbjtcblxuLyoqXG4gKiBGYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHtAbGluayBXb3JrYmVuY2hNZW51SXRlbX0uXG4gKlxuICogVGhlIGZ1bmN0aW9uIHdpbGwgYmUgaW52b2tlZCB3aGVuIG9wZW5pbmcgYSB2aWV3J3MgY29udGV4dCBtZW51LiBVc2UgdGhlIHBhc3NlZCB2aWV3IGhhbmRsZSB0byBkZWNpZGUgd2hldGhlciB0byBkaXNwbGF5IHRoZSBtZW51IGl0ZW0uXG4gKi9cbmV4cG9ydCB0eXBlIFdvcmtiZW5jaE1lbnVJdGVtRmFjdG9yeUZuID0gKHZpZXc6IFdvcmtiZW5jaFZpZXcpID0+IFdvcmtiZW5jaE1lbnVJdGVtIHwgbnVsbDtcblxuLyoqXG4gKiBNZW51IGl0ZW0gaW4gYSBtZW51IG9yIGNvbnRleHQgbWVudS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrYmVuY2hNZW51SXRlbSB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGNvbnRlbnQgb2YgdGhlIG1lbnUgaXRlbS5cbiAgICovXG4gIHBvcnRhbDogVGVtcGxhdGVQb3J0YWwgfCBDb21wb25lbnRQb3J0YWw8YW55PjtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgY2FsbGJhY2sgdHJpZ2dlcmVkIHdoZW4gY2xpY2tpbmcgdGhpcyBtZW51IGl0ZW0uXG4gICAqXG4gICAqIFRoZSBmdW5jdGlvbiBjYW4gY2FsbCBgaW5qZWN0YCB0byBnZXQgYW55IHJlcXVpcmVkIGRlcGVuZGVuY2llcy5cbiAgICovXG4gIG9uQWN0aW9uOiAoKSA9PiB2b2lkO1xuICAvKipcbiAgICogQWxsb3dzIHRoZSB1c2VyIHRvIGludGVyYWN0IHdpdGggdGhlIG1lbnUgaXRlbSB1c2luZyBrZXlzIG9uIHRoZSBrZXlib2FyZCwgZS5nLiwgWydjdHJsJywgJ2FsdCcsIDFdLlxuICAgKlxuICAgKiBTdXBwb3J0ZWQgbW9kaWZpZXJzIGFyZSAnY3RybCcsICdzaGlmdCcsICdhbHQnIGFuZCAnbWV0YScuXG4gICAqL1xuICBhY2NlbGVyYXRvcj86IHN0cmluZ1tdO1xuICAvKipcbiAgICogQWxsb3dzIGdyb3VwaW5nIG1lbnUgaXRlbXMgb2YgdGhlIHNhbWUgZ3JvdXAuXG4gICAqL1xuICBncm91cD86IHN0cmluZztcbiAgLyoqXG4gICAqIEFsbG93cyBkaXNhYmxpbmcgdGhlIG1lbnUgaXRlbSBiYXNlZCBvbiBhIGNvbmRpdGlvbi5cbiAgICovXG4gIGlzRGlzYWJsZWQ/OiAoKSA9PiBib29sZWFuO1xuICAvKipcbiAgICogU3BlY2lmaWVzIENTUyBjbGFzcyhlcykgdG8gYWRkIHRvIHRoZSBtZW51IGl0ZW0sIGUuZy4sIHRvIGxvY2F0ZSB0aGUgbWVudSBpdGVtIGluIHRlc3RzLlxuICAgKi9cbiAgY3NzQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIHdvcmtiZW5jaCB0aGVtZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrYmVuY2hUaGVtZSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdGhlbWUuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY29sb3Igc2NoZW1lIG9mIHRoZSB0aGVtZS5cbiAgICovXG4gIGNvbG9yU2NoZW1lOiAnbGlnaHQnIHwgJ2RhcmsnO1xufVxuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvd29ya2JlbmNoLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDb21wb25lbnRQb3J0YWwsIFBvcnRhbCwgVGVtcGxhdGVQb3J0YWx9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hWaWV3fSBmcm9tICcuL3ZpZXcvd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuaW1wb3J0IHtXb3JrYmVuY2hQYXJ0fSBmcm9tICcuL3BhcnQvd29ya2JlbmNoLXBhcnQubW9kZWwnO1xuXG4vKipcbiAqIEd1YXJkIHRoYXQgYSB2aWV3IGNhbiBpbXBsZW1lbnQgdG8gZGVjaWRlIHdoZXRoZXIgaXQgY2FuIGJlIGNsb3NlZC5cbiAqXG4gKiBUaGUgZm9sbG93aW5nIGV4YW1wbGUgaW1wbGVtZW50cyBhIGBDYW5DbG9zZWAgZ3VhcmQgdGhhdCBhc2tzIHRoZSB1c2VyIHdoZXRoZXIgdGhlIHZpZXcgY2FuIGJlIGNsb3NlZC5cbiAqXG4gKiBgYGB0c1xuICogY2xhc3MgVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIENhbkNsb3NlIHtcbiAqXG4gKiAgIHB1YmxpYyBhc3luYyBjYW5DbG9zZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAqICAgICBjb25zdCBhY3Rpb24gPSBhd2FpdCBpbmplY3QoV29ya2JlbmNoTWVzc2FnZUJveFNlcnZpY2UpLm9wZW4oJ0RvIHlvdSB3YW50IHRvIGNsb3NlIHRoaXMgdmlldz8nLCB7XG4gKiAgICAgICBhY3Rpb25zOiB7eWVzOiAnWWVzJywgbm86ICdObyd9LFxuICogICAgIH0pO1xuICogICAgIHJldHVybiBhY3Rpb24gPT09ICd5ZXMnO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYW5DbG9zZSB7XG5cbiAgLyoqXG4gICAqIERlY2lkZXMgd2hldGhlciB0aGlzIHZpZXcgY2FuIGJlIGNsb3NlZC5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBjYW4gY2FsbCBgaW5qZWN0YCB0byBnZXQgYW55IHJlcXVpcmVkIGRlcGVuZGVuY2llcy5cbiAgICovXG4gIGNhbkNsb3NlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBQcm9taXNlPGJvb2xlYW4+IHwgYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYW4gYWN0aW9uIGNvbnRyaWJ1dGVkIHRvIGEgcGFydC5cbiAqXG4gKiBQYXJ0IGFjdGlvbnMgYXJlIGRpc3BsYXllZCB0byB0aGUgcmlnaHQgb2YgdGhlIHZpZXcgdGFicyBhbmQgZW5hYmxlIGludGVyYWN0aW9uIHdpdGggdGhlIHBhcnQgYW5kIGl0cyBjb250ZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtiZW5jaFBhcnRBY3Rpb24ge1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBwb3J0YWwgdG8gcmVuZGVyIHRoZSBhY3Rpb24uXG4gICAqXG4gICAqIFVzZSBhIHtAbGluayBDb21wb25lbnRQb3J0YWx9IHRvIHJlbmRlciBhIGNvbXBvbmVudCwgb3IgYSB7QGxpbmsgVGVtcGxhdGVQb3J0YWx9IHRvIHJlbmRlciBhIHRlbXBsYXRlLlxuICAgKi9cbiAgcG9ydGFsOiBQb3J0YWw8dW5rbm93bj47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hlcmUgdG8gcGxhY2UgdGhpcyBhY3Rpb24gaW4gdGhlIGFjdGlvbiBiYXIuXG4gICAqL1xuICBhbGlnbj86ICdzdGFydCcgfCAnZW5kJztcbiAgLyoqXG4gICAqIFByZWRpY2F0ZSB0byBtYXRjaCBhIHNwZWNpZmljIHBhcnQsIHBhcnRzIGluIGEgc3BlY2lmaWMgYXJlYSwgb3IgcGFydHMgZnJvbSBhIHNwZWNpZmljIHBlcnNwZWN0aXZlLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCBpZiBub3Qgc3BlY2lmaWVkLCBtYXRjaGVzIGFueSBwYXJ0LlxuICAgKlxuICAgKiBUaGUgZnVuY3Rpb246XG4gICAqIC0gQ2FuIGNhbGwgYGluamVjdGAgdG8gZ2V0IGFueSByZXF1aXJlZCBkZXBlbmRlbmNpZXMuXG4gICAqIC0gUnVucyBpbiBhIHJlYWN0aXZlIGNvbnRleHQsIHJlLWV2YWx1YXRpbmcgd2hlbiB0cmFja2VkIHNpZ25hbHMgY2hhbmdlLlxuICAgKiAgIFRvIGV4ZWN1dGUgY29kZSBvdXRzaWRlIHRoaXMgcmVhY3RpdmUgY29udGV4dCwgdXNlIEFuZ3VsYXIncyBgdW50cmFja2VkYCBmdW5jdGlvbi5cbiAgICovXG4gIGNhbk1hdGNoPzogQ2FuTWF0Y2hQYXJ0Rm47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgQ1NTIGNsYXNzKGVzKSB0byBhZGQgdG8gdGhlIGFjdGlvbiwgZS5nLiwgdG8gbG9jYXRlIHRoZSBhY3Rpb24gaW4gdGVzdHMuXG4gICAqL1xuICBjc3NDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFRoZSBzaWduYXR1cmUgb2YgYSBmdW5jdGlvbiB1c2VkIGFzIGEgYGNhbk1hdGNoYCBjb25kaXRpb24gZm9yIGEgcGFydC5cbiAqXG4gKiBUaGUgZnVuY3Rpb246XG4gKiAtIENhbiBjYWxsIGBpbmplY3RgIHRvIGdldCBhbnkgcmVxdWlyZWQgZGVwZW5kZW5jaWVzLlxuICogLSBSdW5zIGluIGEgcmVhY3RpdmUgY29udGV4dCwgcmUtZXZhbHVhdGluZyB3aGVuIHRyYWNrZWQgc2lnbmFscyBjaGFuZ2UuXG4gKiAgIFRvIGV4ZWN1dGUgY29kZSBvdXRzaWRlIHRoaXMgcmVhY3RpdmUgY29udGV4dCwgdXNlIEFuZ3VsYXIncyBgdW50cmFja2VkYCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgQ2FuTWF0Y2hQYXJ0Rm4gPSAocGFydDogV29ya2JlbmNoUGFydCkgPT4gYm9vbGVhbjtcblxuLyoqXG4gKiBGYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHtAbGluayBXb3JrYmVuY2hNZW51SXRlbX0uXG4gKlxuICogVGhlIGZ1bmN0aW9uIHdpbGwgYmUgaW52b2tlZCB3aGVuIG9wZW5pbmcgYSB2aWV3J3MgY29udGV4dCBtZW51LiBVc2UgdGhlIHBhc3NlZCB2aWV3IGhhbmRsZSB0byBkZWNpZGUgd2hldGhlciB0byBkaXNwbGF5IHRoZSBtZW51IGl0ZW0uXG4gKi9cbmV4cG9ydCB0eXBlIFdvcmtiZW5jaE1lbnVJdGVtRmFjdG9yeUZuID0gKHZpZXc6IFdvcmtiZW5jaFZpZXcpID0+IFdvcmtiZW5jaE1lbnVJdGVtIHwgbnVsbDtcblxuLyoqXG4gKiBNZW51IGl0ZW0gaW4gYSBtZW51IG9yIGNvbnRleHQgbWVudS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrYmVuY2hNZW51SXRlbSB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGNvbnRlbnQgb2YgdGhlIG1lbnUgaXRlbS5cbiAgICovXG4gIHBvcnRhbDogVGVtcGxhdGVQb3J0YWwgfCBDb21wb25lbnRQb3J0YWw8YW55PjtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgY2FsbGJhY2sgdHJpZ2dlcmVkIHdoZW4gY2xpY2tpbmcgdGhpcyBtZW51IGl0ZW0uXG4gICAqXG4gICAqIFRoZSBmdW5jdGlvbiBjYW4gY2FsbCBgaW5qZWN0YCB0byBnZXQgYW55IHJlcXVpcmVkIGRlcGVuZGVuY2llcy5cbiAgICovXG4gIG9uQWN0aW9uOiAoKSA9PiB2b2lkO1xuICAvKipcbiAgICogQWxsb3dzIHRoZSB1c2VyIHRvIGludGVyYWN0IHdpdGggdGhlIG1lbnUgaXRlbSB1c2luZyBrZXlzIG9uIHRoZSBrZXlib2FyZCwgZS5nLiwgWydjdHJsJywgJ2FsdCcsIDFdLlxuICAgKlxuICAgKiBTdXBwb3J0ZWQgbW9kaWZpZXJzIGFyZSAnY3RybCcsICdzaGlmdCcsICdhbHQnIGFuZCAnbWV0YScuXG4gICAqL1xuICBhY2NlbGVyYXRvcj86IHN0cmluZ1tdO1xuICAvKipcbiAgICogQWxsb3dzIGdyb3VwaW5nIG1lbnUgaXRlbXMgb2YgdGhlIHNhbWUgZ3JvdXAuXG4gICAqL1xuICBncm91cD86IHN0cmluZztcbiAgLyoqXG4gICAqIEFsbG93cyBkaXNhYmxpbmcgdGhlIG1lbnUgaXRlbSBiYXNlZCBvbiBhIGNvbmRpdGlvbi5cbiAgICovXG4gIGlzRGlzYWJsZWQ/OiAoKSA9PiBib29sZWFuO1xuICAvKipcbiAgICogU3BlY2lmaWVzIENTUyBjbGFzcyhlcykgdG8gYWRkIHRvIHRoZSBtZW51IGl0ZW0sIGUuZy4sIHRvIGxvY2F0ZSB0aGUgbWVudSBpdGVtIGluIHRlc3RzLlxuICAgKi9cbiAgY3NzQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIHdvcmtiZW5jaCB0aGVtZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrYmVuY2hUaGVtZSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdGhlbWUuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY29sb3Igc2NoZW1lIG9mIHRoZSB0aGVtZS5cbiAgICovXG4gIGNvbG9yU2NoZW1lOiAnbGlnaHQnIHwgJ2RhcmsnO1xufVxuIl19