@magic-xpa/angular 4.901.0 → 4.1000.0-Time24h-dev4100.351

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 (61) hide show
  1. package/esm2020/src/magic.core.module.mjs +10 -11
  2. package/esm2020/src/services/accessor.magic.service.mjs +29 -3
  3. package/esm2020/src/services/magic-color.service.mjs +4 -4
  4. package/esm2020/src/services/subform.magic.service.mjs +1 -1
  5. package/esm2020/src/services/table.magic.service.mjs +5 -2
  6. package/esm2020/src/services/task.magics.service.mjs +14 -4
  7. package/esm2020/src/ui/components/base-magic-alert.component.mjs +3 -7
  8. package/esm2020/src/ui/components/base-magic-confirm.component.mjs +3 -7
  9. package/esm2020/src/ui/components/magic-alert.component.mjs +3 -35
  10. package/esm2020/src/ui/components/magic-confirmation-box.component.mjs +3 -39
  11. package/esm2020/src/ui/directives/NonMagicControlDirective.mjs +6 -6
  12. package/esm2020/src/ui/directives/magic/combobox.magic.directive.mjs +11 -1
  13. package/esm2020/src/ui/directives/magic/nocontrol.magic.directive.mjs +3 -3
  14. package/esm2020/src/ui/directives/magic.directive.mjs +11 -11
  15. package/esm2020/src/ui/directives/mgformat.magic.directive.mjs +105 -2
  16. package/esm2020/src/ui/magic-modal/base-magic-overlay-container.mjs +1 -1
  17. package/esm2020/src/ui/magic-modal/magic-overlay-container-wrapper.mjs +4 -18
  18. package/esm2020/src/ui/magic-modal/magic-overlay-container.mjs +4 -4
  19. package/esm2020/src/ui/magic-root.component.mjs +4 -38
  20. package/esm2020/src/ui/mgerror.magic.component.mjs +9 -9
  21. package/esm2020/src/ui/router-container.magic.component.mjs +4 -4
  22. package/esm2020/src/ui/subform.magic.component.mjs +4 -4
  23. package/esm2020/src/ui/task-base.magic.component.mjs +8 -2
  24. package/fesm2015/magic-xpa-angular.mjs +223 -193
  25. package/fesm2015/magic-xpa-angular.mjs.map +1 -1
  26. package/fesm2020/magic-xpa-angular.mjs +223 -193
  27. package/fesm2020/magic-xpa-angular.mjs.map +1 -1
  28. package/package.json +8 -8
  29. package/src/magic.core.module.d.ts +2 -1
  30. package/src/services/accessor.magic.service.d.ts +4 -0
  31. package/src/services/table.magic.service.d.ts +2 -0
  32. package/src/services/task.magics.service.d.ts +1 -0
  33. package/src/ui/components/base-magic-alert.component.d.ts +1 -1
  34. package/src/ui/components/base-magic-confirm.component.d.ts +1 -1
  35. package/src/ui/components/magic-alert.component.d.ts +1 -1
  36. package/src/ui/components/magic-confirmation-box.component.d.ts +1 -1
  37. package/src/ui/directives/NonMagicControlDirective.d.ts +1 -1
  38. package/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.d.ts +1 -1
  39. package/src/ui/directives/magic/checkbox.magic.directive.d.ts +1 -1
  40. package/src/ui/directives/magic/combobox.magic.directive.d.ts +2 -1
  41. package/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.d.ts +1 -1
  42. package/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.d.ts +1 -1
  43. package/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.d.ts +1 -1
  44. package/src/ui/directives/magic/input.noformcontrol.magic.directive.d.ts +1 -1
  45. package/src/ui/directives/magic/nocontrol.magic.directive.d.ts +1 -1
  46. package/src/ui/directives/magic/row.magic.directive.d.ts +1 -1
  47. package/src/ui/directives/magic-focus.directive.d.ts +1 -1
  48. package/src/ui/directives/magic.directive.d.ts +2 -2
  49. package/src/ui/directives/magicViewContainerRef.directive.d.ts +1 -1
  50. package/src/ui/directives/mgformat.magic.directive.d.ts +3 -2
  51. package/src/ui/directives/range-validator.magic.directive.d.ts +1 -1
  52. package/src/ui/magic-modal/magic-overlay-container-wrapper.d.ts +1 -1
  53. package/src/ui/magic-modal/magic-overlay-container.d.ts +1 -1
  54. package/src/ui/magic-root.component.d.ts +1 -1
  55. package/src/ui/mgerror.magic.component.d.ts +1 -1
  56. package/src/ui/pipes/date.magic.pipe.d.ts +1 -1
  57. package/src/ui/pipes/time.magic.pipe.d.ts +1 -1
  58. package/src/ui/router-container.magic.component.d.ts +1 -1
  59. package/src/ui/subform.magic.component.d.ts +1 -1
  60. package/src/ui/task-base.magic.component.d.ts +2 -1
  61. package/magic-xpa-angular.d.ts +0 -2
@@ -26,9 +26,112 @@ export class MgformatMagicDirective {
26
26
  onFocusEvent($event) {
27
27
  this.calculatePattern();
28
28
  }
29
- onInputEvent($event) {
29
+ onInputEvent(event) {
30
+ let control = this._task.getFormControl(this.magicDir.rowId, this.magicDir.id);
31
+ if (control != null) {
32
+ let attr = this._task.Records.list[0].getControlMetadata(this.magicDir.id).dataType;
33
+ if (attr == StorageAttribute.DATE) {
34
+ this.dateMasking(event);
35
+ }
36
+ }
30
37
  this.calculatePattern();
31
38
  }
39
+ dateMasking(event) {
40
+ const input = event.target;
41
+ let cursorPos = event.target.selectionStart;
42
+ const separator = this._task.mgInputDateFormat.includes('/') ? '/' : '-';
43
+ if (cursorPos >= input.value.length) {
44
+ const value = input.value.replace(/[^a-zA-Z0-9]/g, '');
45
+ if (this._task.mgInputDateFormat == "dd/MM/yyyy" || this._task.mgInputDateFormat == "MM/dd/yyyy" || this._task.mgInputDateFormat == "dd-MM-yyyy" || this._task.mgInputDateFormat == "MM-dd-yyyy") {
46
+ if (value.length <= 2) {
47
+ input.value = value;
48
+ }
49
+ else if (value.length <= 4) {
50
+ input.value = `${value.slice(0, 2)}` + separator + `${value.slice(2)}`;
51
+ }
52
+ else {
53
+ input.value = `${value.slice(0, 2)}` + separator + `${value.slice(2, 4)}` + separator + `${value.slice(4, 8)}`;
54
+ }
55
+ }
56
+ else if (this._task.mgInputDateFormat == "yyyy/MM/dd" || this._task.mgInputDateFormat == "yyyy/dd/MM" || this._task.mgInputDateFormat == "yyyy-MM-dd" || this._task.mgInputDateFormat == "yyyy-dd-MM") {
57
+ if (value.length <= 4) {
58
+ input.value = value;
59
+ }
60
+ else if (value.length <= 6) {
61
+ input.value = `${value.slice(0, 4)}` + separator + `${value.slice(4)}`;
62
+ }
63
+ else {
64
+ input.value = `${value.slice(0, 4)}` + separator + `${value.slice(4, 6)}` + separator + `${value.slice(6, 8)}`;
65
+ }
66
+ }
67
+ else if (this._task.mgInputDateFormat == "dd/MM/yy" || this._task.mgInputDateFormat == "yy/MM/dd" || this._task.mgInputDateFormat == "MM/dd/yy" || this._task.mgInputDateFormat == "yy/dd/MM" || this._task.mgInputDateFormat == "dd-MM-yy" || this._task.mgInputDateFormat == "yy-MM-dd" || this._task.mgInputDateFormat == "MM-dd-yy" || this._task.mgInputDateFormat == "yy-dd-MM") {
68
+ if (value.length <= 2) {
69
+ input.value = value;
70
+ }
71
+ else if (value.length <= 4) {
72
+ input.value = `${value.slice(0, 2)}` + separator + `${value.slice(2)}`;
73
+ }
74
+ else {
75
+ input.value = `${value.slice(0, 2)}` + separator + `${value.slice(2, 4)}` + separator + `${value.slice(4, 6)}`;
76
+ }
77
+ }
78
+ else if (this._task.mgInputDateFormat == "dd/MMM/yy" || this._task.mgInputDateFormat == "dd-MMM-yy") {
79
+ if (value.length <= 2) {
80
+ input.value = value;
81
+ }
82
+ else if (value.length <= 5) {
83
+ input.value = `${value.slice(0, 2)}` + separator + `${value.slice(2)}`;
84
+ }
85
+ else {
86
+ input.value = `${value.slice(0, 2)}` + separator + `${value.slice(2, 5)}` + separator + `${value.slice(5, 7)}`;
87
+ }
88
+ }
89
+ else if (this._task.mgInputDateFormat == "yy/dd/MMM" || this._task.mgInputDateFormat == "yy-dd-MMM") {
90
+ if (value.length <= 2) {
91
+ input.value = value;
92
+ }
93
+ else if (value.length <= 4) {
94
+ input.value = `${value.slice(0, 2)}` + separator + `${value.slice(2)}`;
95
+ }
96
+ else {
97
+ input.value = `${value.slice(0, 2)}` + separator + `${value.slice(2, 4)}` + separator + `${value.slice(4, 7)}`;
98
+ }
99
+ }
100
+ else if (this._task.mgInputDateFormat == "yyyy/dd/MMM" || this._task.mgInputDateFormat == "yyyy-dd-MMM") {
101
+ if (value.length <= 4) {
102
+ input.value = value;
103
+ }
104
+ else if (value.length <= 6) {
105
+ input.value = `${value.slice(0, 4)}` + separator + `${value.slice(4)}`;
106
+ }
107
+ else {
108
+ input.value = `${value.slice(0, 4)}` + separator + `${value.slice(4, 6)}` + separator + `${value.slice(6, 9)}`;
109
+ }
110
+ }
111
+ else if (this._task.mgInputDateFormat == "MMM/dd/yy" || this._task.mgInputDateFormat == "MMM-dd-yy") {
112
+ if (value.length <= 3) {
113
+ input.value = value;
114
+ }
115
+ else if (value.length <= 5) {
116
+ input.value = `${value.slice(0, 3)}` + separator + `${value.slice(3)}`;
117
+ }
118
+ else {
119
+ input.value = `${value.slice(0, 3)}` + separator + `${value.slice(3, 5)}` + separator + `${value.slice(5, 7)}`;
120
+ }
121
+ }
122
+ else if (this._task.mgInputDateFormat == "MMM/dd/yyyy" || this._task.mgInputDateFormat == "MMM-dd-yyyy") {
123
+ if (value.length <= 3) {
124
+ input.value = value;
125
+ }
126
+ else if (value.length <= 5) {
127
+ input.value = `${value.slice(0, 3)}` + separator + `${value.slice(3)}`;
128
+ }
129
+ else {
130
+ input.value = `${value.slice(0, 3)}` + separator + `${value.slice(3, 5)}` + separator + `${value.slice(5, 9)}`;
131
+ }
132
+ }
133
+ }
134
+ }
32
135
  onChangeEvent($event) {
33
136
  let control = this._task.getFormControl(this.magicDir.rowId, this.magicDir.id);
34
137
  let attr = this._task.Records.list[0].getControlMetadata(this.magicDir.id).dataType;
@@ -240,4 +343,4 @@ MgformatMagicDirective.ɵdir = i0.ɵɵdefineDirective({ type: MgformatMagicDirec
240
343
  type: HostListener,
241
344
  args: ['change', ['$event']]
242
345
  }] }); })();
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWdmb3JtYXQubWFnaWMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdWkvZGlyZWN0aXZlcy9tZ2Zvcm1hdC5tYWdpYy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBa0IsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQVVqRCxNQUFNLE9BQU8sc0JBQXNCO0lBSWpDLFlBQ1ksUUFBd0IsRUFDeEIsS0FBdUI7UUFEdkIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsVUFBSyxHQUFMLEtBQUssQ0FBa0I7SUFFL0IsQ0FBQztJQUVMLGVBQWU7UUFDYixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBRSxDQUFDO1FBRWhGLElBQUcsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixJQUFJLElBQUksRUFBRTtZQUUxRCxJQUFJLEdBQUcsR0FB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SUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFDM0Y7WUFBRSxZQUFZLEVBQUUsQ0FBQztZQUFDLEdBQUcsRUFBRSxDQUFDO1NBQUU7UUFHMUIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU07WUFDbkIsZUFBZSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFL0IsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUtELGdCQUFnQixDQUFDLElBQVksRUFBRSxPQUFlO1FBRTVDLEtBQUssSUFBSSxDQUFDLEdBQVUsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTtZQUM5QyxJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixPQUFPLElBQUksQ0FBQztRQUNkLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7NEZBM1RVLHNCQUFzQjsyREFBdEIsc0JBQXNCO3lHQUF0Qix3QkFBb0Isd0ZBQXBCLHdCQUFvQiwwRkFBcEIseUJBQXFCOzt1RkFBckIsc0JBQXNCO2NBTGxDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTthQUN2QjtnR0FrQ1EsWUFBWTtrQkFEbEIsWUFBWTttQkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFNMUIsWUFBWTtrQkFEbEIsWUFBWTttQkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFVMUIsYUFBYTtrQkFEbkIsWUFBWTttQkFBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSG9zdExpc3RlbmVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUYXNrTWFnaWNTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrLm1hZ2ljcy5zZXJ2aWNlJztcclxuaW1wb3J0IHtTdHJpbmdCdWlsZGVyLCBSZWZQYXJhbX0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQge1BJQ0ludGVyZmFjZSwgU3RvcmFnZUF0dHJpYnV0ZX0gZnJvbSAnQG1hZ2ljLXhwYS91dGlscyc7XHJcbmltcG9ydCB7TWFnaWNEaXJlY3RpdmV9IGZyb20gJy4vbWFnaWMuZGlyZWN0aXZlJztcclxuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtQSUN9IGZyb20gJ0BtYWdpYy14cGEvZ3VpJztcclxuaW1wb3J0IHtNZ0RhdGVGb3JtYXR0ZXJ9IGZyb20gJy4uL3BpcGVzL2RhdGUubWFnaWMucGlwZSc7XHJcbmltcG9ydCB7aXNVbmRlZmluZWR9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcclxuXHJcbi8qKlxyXG4gKiBQZXJmb3JtIE1hZ2ljIHZhbGlkYXRpb24gb24gaW5wdXQgY29udHJvbHMgd2hpY2ggaG9sZCBhbHBoYW51bWVyaWMgc3RyaW5nc1xyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbbWdGb3JtYXRdJ1xyXG59KVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBNZ2Zvcm1hdE1hZ2ljRGlyZWN0aXZlIHtcclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgbWFnaWNEaXI6IE1hZ2ljRGlyZWN0aXZlICxcclxuICAgIHByb3RlY3RlZCBfdGFzazogVGFza01hZ2ljU2VydmljZVxyXG5cclxuICApIHsgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBsZXQgY29udHJvbCA9IHRoaXMuX3Rhc2suZ2V0Rm9ybUNvbnRyb2wodGhpcy5tYWdpY0Rpci5yb3dJZCwgdGhpcy5tYWdpY0Rpci5pZCApO1xyXG5cclxuICAgIGlmKGNvbnRyb2wgIT0gbnVsbCAmJiB0aGlzLl90YXNrLm1nSW5wdXREYXRlRm9ybWF0ID09IG51bGwpIHtcclxuICAgICAgLy8gZ2V0IHRoZSBmaXJzdCBkYXRlIGNvbnRyb2wncyBmb3JtYXQuXHJcbiAgICAgIGxldCBwaWM6IFBJQyA9IHRoaXMuX3Rhc2suR2V0Q29udHJvbFBpY3R1cmVNYXNrKHRoaXMubWFnaWNEaXIuaWQpO1xyXG4gICAgICBpZiAocGljLmdldEF0dHIoKSA9PSBTdG9yYWdlQXR0cmlidXRlLkRBVEUgKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtYXREYXRlKHBpYyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgLyoqXHJcbiAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBzZXQgcGF0dGVyblxyXG4gICAqIE9uIGlucHV0LCB2ZXJpZmllcyB0aGUgaW5wdXQgbWF0Y2hlcyB0aGUgcmVxdWlyZWQgbWFza1xyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgb25Gb2N1c0V2ZW50KCRldmVudCl7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVBhdHRlcm4oKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgb25JbnB1dEV2ZW50KCRldmVudCl7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVBhdHRlcm4oKTtcclxuICAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgKi9cclxuICAvLyBUaGlzIGNhbiBiZSB1c2VkIHRvIGltcGxlbWVudCB1cHBlcmNhc2UvbG93ZXIgY2FzZVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NoYW5nZScsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIG9uQ2hhbmdlRXZlbnQoJGV2ZW50KXtcclxuICAgIGxldCBjb250cm9sID0gdGhpcy5fdGFzay5nZXRGb3JtQ29udHJvbCh0aGlzLm1hZ2ljRGlyLnJvd0lkLCB0aGlzLm1hZ2ljRGlyLmlkICk7XHJcbiAgICBsZXQgYXR0cjogU3RvcmFnZUF0dHJpYnV0ZSA9IHRoaXMuX3Rhc2suUmVjb3Jkcy5saXN0WzBdLmdldENvbnRyb2xNZXRhZGF0YSh0aGlzLm1hZ2ljRGlyLmlkKS5kYXRhVHlwZTtcclxuXHJcbiAgICBzd2l0Y2ggIChhdHRyKVxyXG4gICAge1xyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEE6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFOlxyXG4gICAgICAgIHRoaXMuZm9ybWF0QWxwaGFVbmljb2RlIChjb250cm9sKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkJPT0xFQU46XHJcbiAgICAgICAgdGhpcy5mb3JtYXRCb29sZWFuKGNvbnRyb2wpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICovXHJcbiAgY2FsY3VsYXRlUGF0dGVybiAoKVxyXG4gIHtcclxuICAgIGxldCBjb250cm9sID0gdGhpcy5fdGFzay5nZXRGb3JtQ29udHJvbCh0aGlzLm1hZ2ljRGlyLnJvd0lkLCB0aGlzLm1hZ2ljRGlyLmlkICk7XHJcblxyXG4gICAgaWYoY29udHJvbCAhPSBudWxsICkge1xyXG4gICAgICBsZXQgYXR0cjogU3RvcmFnZUF0dHJpYnV0ZSA9IHRoaXMuX3Rhc2suUmVjb3Jkcy5saXN0WzBdLmdldENvbnRyb2xNZXRhZGF0YSh0aGlzLm1hZ2ljRGlyLmlkKS5kYXRhVHlwZTtcclxuICAgICAgaWYgKGF0dHIgPT0gU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDIHx8IGF0dHIgPT0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQSB8fCBhdHRyID09IFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERSkge1xyXG4gICAgICAgIGxldCBwaWM6IFBJQyA9IHRoaXMuX3Rhc2suR2V0Q29udHJvbFBpY3R1cmVNYXNrKHRoaXMubWFnaWNEaXIuaWQpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc1BhdHRlcm5HZW5lcmF0aW9uTmVlZGVkKGF0dHIsIHBpYykpIHtcclxuICAgICAgICAgIGxldCBwYXR0ZXJuOiBzdHJpbmcgPSB0aGlzLmdlbmVyYXRlUGF0dGVybihhdHRyLCBwaWMpO1xyXG4gICAgICAgICAgaWYgKGNvbnRyb2wudmFsaWRhdG9yID09IG51bGwpXHJcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnBhdHRlcm4ocGF0dGVybikpO1xyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICBjb250cm9sLnNldFZhbGlkYXRvcnMoW2NvbnRyb2wudmFsaWRhdG9yLCBWYWxpZGF0b3JzLnBhdHRlcm4ocGF0dGVybildKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBpZiAoYXR0ciA9PSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBIHx8IGF0dHIgPT0gU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFKSB7XHJcbiAgICAgICAgICAgIGlmIChjb250cm9sLnZhbGlkYXRvciA9PSBudWxsKVxyXG4gICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLm1heExlbmd0aChwaWMuZ2V0TWFza0xlbmd0aCgpKSk7XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIC8vIHJlLXNldCBhbGwgdmFsaWRhdG9ycyBhZ2FpblxyXG4gICAgICAgICAgICAgIGlmIChwaWMuaXNGb3JtYXRFeHAoKSkge1xyXG4gICAgICAgICAgICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMubWF4TGVuZ3RoKHBpYy5nZXRNYXNrTGVuZ3RoKCkpKTtcclxuICAgICAgICAgICAgICAgIGlmIChpc1VuZGVmaW5lZCh0aGlzLm1hZ2ljRGlyLnJvd0lkKSlcclxuICAgICAgICAgICAgICAgICAgdGhpcy5tYWdpY0Rpci5yb3dJZCA9ICcwJztcclxuICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyhbY29udHJvbC52YWxpZGF0b3IsIHRoaXMuX3Rhc2suY3VzdG9tVmFsaWRhdG9yKHRoaXMubWFnaWNEaXIucm93SWQsIHRoaXMubWFnaWNEaXIuaWQpXSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyhbY29udHJvbC52YWxpZGF0b3IsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKHBpYy5nZXRNYXNrTGVuZ3RoKCkpXSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAvLyAgY29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMubWF4TGVuZ3RoKHBpYy5nZXRNYXNrTGVuZ3RoKCkpKTtcclxuICAgICAgICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZm9ybWF0RGF0ZShwaWM6IFBJQyk6IHZvaWQge1xyXG4gICAgIGxldCBtZ0RhdGVGb3JtYXR0ZXIgPSBuZXcgTWdEYXRlRm9ybWF0dGVyKCk7XHJcbiAgICAgIHRoaXMuX3Rhc2subWdJbnB1dERhdGVGb3JtYXQgPSBtZ0RhdGVGb3JtYXR0ZXIuQ29udmVydE1nRGF0ZUZvcm1hdFRvQW5ndWxhcihwaWMuZ2V0TWFzaygpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGZvcm1hdEFscGhhVW5pY29kZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB2b2lkIHtcclxuICAgIGxldCB2YWx1ZTogc3RyaW5nID0gY29udHJvbC52YWx1ZTtcclxuXHJcbiAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBuZXdWYWx1ZTogc3RyaW5nID0gdGhpcy5fdGFzay5HZXRSYW5nZWRWYWx1ZSh0aGlzLm1hZ2ljRGlyLmlkLCB2YWx1ZSk7XHJcbiAgICAgIGlmIChuZXdWYWx1ZSAhPSBudWxsKVxyXG4gICAgICAgIHZhbHVlID0gbmV3VmFsdWU7XHJcblxyXG4gICAgICBsZXQgcGljOiBQSUMgPSB0aGlzLl90YXNrLkdldENvbnRyb2xQaWN0dXJlTWFzayh0aGlzLm1hZ2ljRGlyLmlkKTtcclxuICAgICAgbGV0IG1hc2s6IHN0cmluZyA9IHBpYy5nZXRNYXNrKCk7XHJcbiAgICAgIGxldCB2YWx1ZVN0cjogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7XHJcblxyXG4gICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBzd2l0Y2ggKG1hc2suY2hhckNvZGVBdChpKSkge1xyXG4gICAgICAgICAgY2FzZSBQSUNJbnRlcmZhY2UuUElDX1U6XHJcbiAgICAgICAgICAgIHZhbHVlU3RyLkFwcGVuZCh2YWx1ZS5jaGFyQXQoaSkudG9VcHBlckNhc2UoKSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBQSUNJbnRlcmZhY2UuUElDX0w6XHJcbiAgICAgICAgICAgIHZhbHVlU3RyLkFwcGVuZCh2YWx1ZS5jaGFyQXQoaSkudG9Mb3dlckNhc2UoKSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgdmFsdWVTdHIuQXBwZW5kKHZhbHVlLmNoYXJBdChpKSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgY29udHJvbC5zZXRWYWx1ZSh2YWx1ZVN0ci5Ub1N0cmluZygpKTtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgZm9ybWF0Qm9vbGVhbiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogdm9pZCAge1xyXG4gICAgbGV0IHZhbHVlOiBzdHJpbmcgPSBjb250cm9sLnZhbHVlO1xyXG4gICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IG5ld1ZhbHVlOiBzdHJpbmcgPSB0aGlzLl90YXNrLkdldFJhbmdlZFZhbHVlICh0aGlzLm1hZ2ljRGlyLmlkICwgdmFsdWUpO1xyXG4gICAgICBpZiAobmV3VmFsdWUudG9VcHBlckNhc2UoKS5zdGFydHNXaXRoKHZhbHVlLnRvVXBwZXJDYXNlKCkpKSB7XHJcbiAgICAgICAgY29udHJvbC5zZXRWYWx1ZShuZXdWYWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBnZW5lcmF0ZSBwYXR0ZXJuIGZyb20gIGZsZCdzICBmb3JtYXRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gICBnZW5lcmF0ZVBhdHRlcm4gKGF0dHJpYnV0ZTogU3RvcmFnZUF0dHJpYnV0ZSwgcGljOiBQSUMpOiBzdHJpbmcge1xyXG4gICAgbGV0IHBhdHRlcm46IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIHN3aXRjaCAoYXR0cmlidXRlKVxyXG4gICAge1xyXG4gICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUM6XHJcbiAgICAgIHBhdHRlcm4gPSB0aGlzLmdlbmVyYXRlUGF0dGVybkZvck51bWJlcihwaWMpO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQTpcclxuICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFOlxyXG4gICAgICBwYXR0ZXJuID0gdGhpcy5nZW5lcmF0ZVBhdHRlcm5Gb3JBbHBoYShwaWMpO1xyXG4gICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHBhdHRlcm47XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBnZW5lcmF0ZSBwYXR0ZXJuIGZvciBBbHBoYVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiBnZW5lcmF0ZVBhdHRlcm5Gb3JOdW1iZXIocGljOiBQSUMpOiBzdHJpbmcge1xyXG4gICAgbGV0IHBhdHRlcm5TdHI6IFN0cmluZ0J1aWxkZXIgPSBuZXcgU3RyaW5nQnVpbGRlciAoKTtcclxuXHJcbiAgICBwYXR0ZXJuU3RyLkFwcGVuZCgnXicpO1xyXG4gICAgaWYgKHBpYy5pc05lZ2F0aXZlKCkpXHJcbiAgICAgIHBhdHRlcm5TdHIuQXBwZW5kKCctPycpO1xyXG4gICAgaWYgKHBpYy5nZXRXaG9sZXMoKSlcclxuICAgICAgcGF0dGVyblN0ci5BcHBlbmRGb3JtYXQoJ1xcXFxke3swfSx7MX19JywgMCwgcGljLmdldFdob2xlcygpKTtcclxuICAgIGlmIChwaWMuZ2V0RGVjKCkpXHJcbiAgICAgIHBhdHRlcm5TdHIuQXBwZW5kRm9ybWF0KCcoXFxcXC5cXFxcZHsxLHswfX0pPycsIHBpYy5nZXREZWMoKSk7XHJcbiAgICBwYXR0ZXJuU3RyLkFwcGVuZCgnJCcpO1xyXG5cclxuICAgIHJldHVybiBwYXR0ZXJuU3RyLlRvU3RyaW5nKCk7XHJcbiB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuIGlzUGF0dGVybkdlbmVyYXRpb25OZWVkZWQgKGF0dHIgOiBTdG9yYWdlQXR0cmlidXRlLCBwaWMgOiBQSUMpOiBib29sZWFuIHtcclxuXHJcbiAgIHN3aXRjaCAoYXR0cikge1xyXG4gICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDOlxyXG4gICAgICAgcmV0dXJuIHRydWU7XHJcblxyXG4gICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQTpcclxuICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERTpcclxuICAgICAgIHJldHVybiAocGljLmdldE1hc2tDaGFycygpID4gMCkgPyB0cnVlIDogZmFsc2U7XHJcbiAgIH1cclxuIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gZ2VuZXJhdGUgcGF0dGVybiBmb3IgQWxwaGFcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gZ2VuZXJhdGVQYXR0ZXJuRm9yQWxwaGEocGljIDogUElDKTogc3RyaW5nIHtcclxuICBsZXQgY250OiBudW1iZXIgPSAwO1xyXG4gIGxldCBpbnB1dEFsbENoYXJzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbGV0IGNsb3NlU2V0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgbGV0ICBtYXNrOiBzdHJpbmcgPSBwaWMuZ2V0TWFzaygpO1xyXG4gIGxldCAgcGF0dGVybjogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7XHJcblxyXG4gIHBhdHRlcm4uQXBwZW5kKCdeJyk7XHJcbiAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IG1hc2subGVuZ3RoOylcclxuICB7XHJcbiAgICAvL3N0YXJ0IG5ldyBzdWJzZXQgLCBpZiBtYXNrW2ldIGlzIG9uZSBvZiB0aGVzZS5cclxuICAgIGlmIChpbnB1dEFsbENoYXJzICYmIChtYXNrLmNoYXJDb2RlQXQoaSkgPT0gUElDSW50ZXJmYWNlLlBJQ19OIHx8IG1hc2suY2hhckNvZGVBdChpKSA9PSBQSUNJbnRlcmZhY2UuUElDX1UgfHwgbWFzay5jaGFyQ29kZUF0KGkpID09IFBJQ0ludGVyZmFjZS5QSUNfTFxyXG4gICAgICAgIHx8IG1hc2suY2hhckNvZGVBdChpKSA9PSBQSUNJbnRlcmZhY2UuUElDX1gpKVxyXG4gICAge1xyXG4gICAgICBwYXR0ZXJuLkFwcGVuZCgnKCcpO1xyXG4gICAgICBjbG9zZVNldCA9IHRydWU7XHJcbiAgICAgIGlucHV0QWxsQ2hhcnMgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjbnQgPSAwO1xyXG4gICAgc3dpdGNoIChtYXNrLmNoYXJDb2RlQXQoaSkpXHJcbiAgICB7XHJcbiAgICAgIGNhc2UgUElDSW50ZXJmYWNlLlBJQ19VOlxyXG4gICAgICBjYXNlIFBJQ0ludGVyZmFjZS5QSUNfWDpcclxuICAgICAgY2FzZSBQSUNJbnRlcmZhY2UuUElDX0w6XHJcbiAgICAgIHtcclxuICAgICAgICBwYXR0ZXJuLkFwcGVuZCgnLicpO1xyXG4gICAgICAgIGxldCBpbnB1dEFsbENoYXJzUmVmOiBSZWZQYXJhbTxib29sZWFuPiA9IG5ldyBSZWZQYXJhbTxib29sZWFuPihmYWxzZSk7XHJcbiAgICAgICAgbGV0IGRpcnM6IHN0cmluZyA9ICBQSUNJbnRlcmZhY2UuUElDX1UudG9TdHJpbmcoKTtcclxuICAgICAgICBkaXJzICs9IFBJQ0ludGVyZmFjZS5QSUNfTC50b1N0cmluZygpO1xyXG4gICAgICAgIGRpcnMgKz0gUElDSW50ZXJmYWNlLlBJQ19YLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgY250ID0gdGhpcy5nZXREaXJlY3RpdmVDb3VudChtYXNrLCBpLCBkaXJzLCBpbnB1dEFsbENoYXJzUmVmKTtcclxuICAgICAgICBpbnB1dEFsbENoYXJzID0gaW5wdXRBbGxDaGFyc1JlZi52YWx1ZTtcclxuICAgICAgICBpICs9IGNudDtcclxuXHJcbiAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQSUNJbnRlcmZhY2UuUElDX046XHJcbiAgICAgIHtcclxuICAgICAgICBwYXR0ZXJuLkFwcGVuZCgnXFxcXGQnKTtcclxuICAgICAgICBsZXQgaW5wdXRBbGxDaGFyc1JlZjogUmVmUGFyYW08Ym9vbGVhbj4gPSBuZXcgUmVmUGFyYW08Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgICAgIGNudCA9IHRoaXMuZ2V0RGlyZWN0aXZlQ291bnQobWFzaywgaSwgUElDSW50ZXJmYWNlLlBJQ19MLnRvU3RyaW5nKCksIGlucHV0QWxsQ2hhcnNSZWYpO1xyXG4gICAgICAgIGlucHV0QWxsQ2hhcnMgPSBpbnB1dEFsbENoYXJzUmVmLnZhbHVlO1xyXG4gICAgICAgIGkgKz0gY250O1xyXG4gICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHBhdHRlcm4uQXBwZW5kKG1hc2tbaV0pO1xyXG4gICAgICAgIGkrKztcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGlmIChjbnQgPiAwKVxyXG4gICAgICBwYXR0ZXJuLkFwcGVuZEZvcm1hdCgne3swfSx7MX19JywgaW5wdXRBbGxDaGFycyA/IGNudCA6IDAsIGNudCk7XHJcbiAgICBpZiAoY2xvc2VTZXQpXHJcbiAgICAgIHBhdHRlcm4uQXBwZW5kKCcpJyk7XHJcbiAgICBjbG9zZVNldCA9IGZhbHNlO1xyXG5cclxuICB9XHJcbiAgIHBhdHRlcm4uQXBwZW5kKCckJyk7XHJcbiAgIHJldHVybiBwYXR0ZXJuLlRvU3RyaW5nKCk7XHJcbiB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBnZXREaXJlY3RpdmVDb3VudChtYXNrOiBzdHJpbmcsIGlkeDogbnVtYmVyLCBwYXR0ZXJuOiBzdHJpbmcsIGNoYW5nZUluUGF0dGVybjogUmVmUGFyYW08Ym9vbGVhbj4gKTogbnVtYmVyICB7XHJcblxyXG4gICAgY2hhbmdlSW5QYXR0ZXJuLnZhbHVlID0gZmFsc2U7XHJcbiAgICBsZXQgcGF0dGVybkNvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8vIGZpbmQgbWF4IGNoYXJzXHJcbiAgICB3aGlsZSAoaWR4IDwgbWFzay5sZW5ndGggJiYgdGhpcy5Jc1BhdHRlcm5NYXRjaGVzKG1hc2suY2hhckNvZGVBdChpZHgpLnRvU3RyaW5nKCksIHBhdHRlcm4pKVxyXG4gICAgeyBwYXR0ZXJuQ291bnQrKzsgaWR4Kys7IH1cclxuXHJcblxyXG4gICAgaWYgKGlkeCA8IG1hc2subGVuZ3RoKVxyXG4gICAgICBjaGFuZ2VJblBhdHRlcm4udmFsdWUgPSB0cnVlO1xyXG5cclxuICAgIHJldHVybiBwYXR0ZXJuQ291bnQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgSXNQYXR0ZXJuTWF0Y2hlcyhtYXNrOiBzdHJpbmcsIHBhdHRlcm46IHN0cmluZyk6IGJvb2xlYW4ge1xyXG5cclxuICAgIGZvciAobGV0IGk6bnVtYmVyID0gMDsgaSA8IHBhdHRlcm4ubGVuZ3RoOyBpKyspXHJcbiAgICBpZiAobWFzayA9PSBwYXR0ZXJuW2ldKVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIl19
346
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWdmb3JtYXQubWFnaWMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdWkvZGlyZWN0aXZlcy9tZ2Zvcm1hdC5tYWdpYy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBa0IsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQVVqRCxNQUFNLE9BQU8sc0JBQXNCO0lBSWpDLFlBQ1ksUUFBd0IsRUFDeEIsS0FBdUI7UUFEdkIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsVUFBSyxHQUFMLEtBQUssQ0FBa0I7SUFFL0IsQ0FBQztJQUVMLGVBQWU7UUFDYixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBRSxDQUFDO1FBRWhGLElBQUcsT0FBTyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixJQUFJLElBQUksRUFBRTtZQUUxRCxJQUFJLEdBQUcsR0FB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QU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs0RkFuWlUsc0JBQXNCOzJEQUF0QixzQkFBc0I7eUdBQXRCLHdCQUFvQix3RkFBcEIsd0JBQW9CLDBGQUFwQix5QkFBcUI7O3VGQUFyQixzQkFBc0I7Y0FMbEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2FBQ3ZCO2dHQWtDUSxZQUFZO2tCQURsQixZQUFZO21CQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztZQU0xQixZQUFZO2tCQURsQixZQUFZO21CQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztZQWtHMUIsYUFBYTtrQkFEbkIsWUFBWTttQkFBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSG9zdExpc3RlbmVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUYXNrTWFnaWNTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrLm1hZ2ljcy5zZXJ2aWNlJztcclxuaW1wb3J0IHtTdHJpbmdCdWlsZGVyLCBSZWZQYXJhbX0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQge1BJQ0ludGVyZmFjZSwgU3RvcmFnZUF0dHJpYnV0ZX0gZnJvbSAnQG1hZ2ljLXhwYS91dGlscyc7XHJcbmltcG9ydCB7TWFnaWNEaXJlY3RpdmV9IGZyb20gJy4vbWFnaWMuZGlyZWN0aXZlJztcclxuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtQSUN9IGZyb20gJ0BtYWdpYy14cGEvZ3VpJztcclxuaW1wb3J0IHtNZ0RhdGVGb3JtYXR0ZXJ9IGZyb20gJy4uL3BpcGVzL2RhdGUubWFnaWMucGlwZSc7XHJcbmltcG9ydCB7aXNVbmRlZmluZWR9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcclxuXHJcbi8qKlxyXG4gKiBQZXJmb3JtIE1hZ2ljIHZhbGlkYXRpb24gb24gaW5wdXQgY29udHJvbHMgd2hpY2ggaG9sZCBhbHBoYW51bWVyaWMgc3RyaW5nc1xyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbbWdGb3JtYXRdJ1xyXG59KVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBNZ2Zvcm1hdE1hZ2ljRGlyZWN0aXZlIHtcclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgbWFnaWNEaXI6IE1hZ2ljRGlyZWN0aXZlICxcclxuICAgIHByb3RlY3RlZCBfdGFzazogVGFza01hZ2ljU2VydmljZVxyXG5cclxuICApIHsgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBsZXQgY29udHJvbCA9IHRoaXMuX3Rhc2suZ2V0Rm9ybUNvbnRyb2wodGhpcy5tYWdpY0Rpci5yb3dJZCwgdGhpcy5tYWdpY0Rpci5pZCApO1xyXG5cclxuICAgIGlmKGNvbnRyb2wgIT0gbnVsbCAmJiB0aGlzLl90YXNrLm1nSW5wdXREYXRlRm9ybWF0ID09IG51bGwpIHtcclxuICAgICAgLy8gZ2V0IHRoZSBmaXJzdCBkYXRlIGNvbnRyb2wncyBmb3JtYXQuXHJcbiAgICAgIGxldCBwaWM6IFBJQyA9IHRoaXMuX3Rhc2suR2V0Q29udHJvbFBpY3R1cmVNYXNrKHRoaXMubWFnaWNEaXIuaWQpO1xyXG4gICAgICBpZiAocGljLmdldEF0dHIoKSA9PSBTdG9yYWdlQXR0cmlidXRlLkRBVEUgKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtYXREYXRlKHBpYyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgLyoqXHJcbiAgICogVGhpcyBjYW4gYmUgdXNlZCB0byBzZXQgcGF0dGVyblxyXG4gICAqIE9uIGlucHV0LCB2ZXJpZmllcyB0aGUgaW5wdXQgbWF0Y2hlcyB0aGUgcmVxdWlyZWQgbWFza1xyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgb25Gb2N1c0V2ZW50KCRldmVudCl7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZVBhdHRlcm4oKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgb25JbnB1dEV2ZW50KGV2ZW50KXtcclxuICAgIGxldCBjb250cm9sID0gdGhpcy5fdGFzay5nZXRGb3JtQ29udHJvbCh0aGlzLm1hZ2ljRGlyLnJvd0lkLCB0aGlzLm1hZ2ljRGlyLmlkICk7XHJcbiAgICBpZihjb250cm9sICE9IG51bGwgKSB7XHJcbiAgICAgIGxldCBhdHRyOiBTdG9yYWdlQXR0cmlidXRlID0gdGhpcy5fdGFzay5SZWNvcmRzLmxpc3RbMF0uZ2V0Q29udHJvbE1ldGFkYXRhKHRoaXMubWFnaWNEaXIuaWQpLmRhdGFUeXBlO1xyXG4gICAgICBpZiAoYXR0ciA9PSBTdG9yYWdlQXR0cmlidXRlLkRBVEUpe1xyXG4gICAgICAgICB0aGlzLmRhdGVNYXNraW5nKGV2ZW50KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5jYWxjdWxhdGVQYXR0ZXJuKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy9UaGlzIG1ldGhvZCBpbnNlcnRzICcvJyBhcyBhIHNlcGFyYXRvciB3aGlsZSBlbnRlcmluZyBkYXRlIGluIHRoZSB0ZXh0Ym94LlxyXG4gIC8vRXhhbXBsZTogMTAvMTAvMjAyM1xyXG4gIGRhdGVNYXNraW5nKGV2ZW50KXtcclxuXHJcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldDtcclxuICAgIGxldCBjdXJzb3JQb3MgPSBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICBjb25zdCBzZXBhcmF0b3IgPSB0aGlzLl90YXNrLm1nSW5wdXREYXRlRm9ybWF0LmluY2x1ZGVzKCcvJyk/ICcvJzonLSc7XHJcblxyXG4gICAgaWYoY3Vyc29yUG9zID49IGlucHV0LnZhbHVlLmxlbmd0aCkge1xyXG5cclxuICAgICAgY29uc3QgdmFsdWUgPSBpbnB1dC52YWx1ZS5yZXBsYWNlKC9bXmEtekEtWjAtOV0vZywgJycpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuX3Rhc2subWdJbnB1dERhdGVGb3JtYXQgPT0gXCJkZC9NTS95eXl5XCIgfHwgdGhpcy5fdGFzay5tZ0lucHV0RGF0ZUZvcm1hdCA9PSBcIk1NL2RkL3l5eXlcIiB8fHRoaXMuX3Rhc2subWdJbnB1dERhdGVGb3JtYXQgPT0gXCJkZC1NTS15eXl5XCIgfHx0aGlzLl90YXNrLm1nSW5wdXREYXRlRm9ybWF0ID09IFwiTU0tZGQteXl5eVwiKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA8PSAyKSB7XHJcbiAgICAgICAgICBpbnB1dC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUubGVuZ3RoIDw9IDQpIHtcclxuICAgICAgICAgIGlucHV0LnZhbHVlID0gYCR7dmFsdWUuc2xpY2UoMCwgMil9YCsgc2VwYXJhdG9yICsgYCR7dmFsdWUuc2xpY2UoMil9YDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaW5wdXQudmFsdWUgPSBgJHt2YWx1ZS5zbGljZSgwLCAyKX1gKyBzZXBhcmF0b3IgKyBgJHt2YWx1ZS5zbGljZSgyLCA0KX1gICsgc2VwYXJhdG9yICsgYCR7dmFsdWUuc2xpY2UoNCwgOCl9YDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fdGFzay5tZ0lucHV0RGF0ZUZvcm1hdCA9PSBcInl5eXkvTU0vZGRcIiB8fCB0aGlzLl90YXNrLm1nSW5wdXREYXRlRm9ybWF0ID09IFwieXl5eS9kZC9NTVwiIHx8IHRoaXMuX3Rhc2subWdJbnB1dERhdGVGb3JtYXQgPT0gXCJ5eXl5LU1NLWRkXCIgfHwgdGhpcy5fdGFzay5tZ0lucHV0RGF0ZUZvcm1hdCA9PSBcInl5eXktZGQtTU1cIikge1xyXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPD0gNCkge1xyXG4gICAgICAgICAgaW5wdXQudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLmxlbmd0aCA8PSA2KSB7XHJcbiAgICAgICAgICBpbnB1dC52YWx1ZSA9IGAke3ZhbHVlLnNsaWNlKDAsIDQpfWArIHNlcGFyYXRvciArIGAke3ZhbHVlLnNsaWNlKDQpfWA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlucHV0LnZhbHVlID0gYCR7dmFsdWUuc2xpY2UoMCwgNCl9YCsgc2VwYXJhdG9yICsgYCR7dmFsdWUuc2xpY2UoNCwgNil9YCsgc2VwYXJhdG9yICsgYCR7dmFsdWUuc2xpY2UoNiwgOCl9YDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fdGFzay5tZ0lucHV0RGF0ZUZvcm1hdCA9PSBcImRkL01NL3l5XCIgfHwgdGhpcy5fdGFzay5tZ0lucHV0RGF0ZUZvcm1hdCA9PSBcInl5L01NL2RkXCIgfHwgdGhpcy5fdGFzay5tZ0lucHV0RGF0ZUZvcm1hdCA9PSBcIk1NL2RkL3l5XCIgfHwgdGhpcy5fdGFzay5tZ0lucHV0RGF0ZUZvcm1hdCA9PSBcInl5L2RkL01NXCIgfHx0aGlzLl90YXNrLm1nSW5wdXREYXRlRm9ybWF0ID09IFwiZGQtTU0teXlcIiB8fCB0aGlzLl90YXNrLm1nSW5wdXREYXRlRm9ybWF0ID09IFwieXktTU0tZGRcIiB8fCB0aGlzLl90YXNrLm1nSW5wdXREYXRlRm9ybWF0ID09IFwiTU0tZGQteXlcIiB8fCB0aGlzLl90YXNrLm1nSW5wdXREYXRlRm9ybWF0ID09IFwieXktZGQtTU1cIikge1xyXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPD0gMikge1xyXG4gICAgICAgICAgaW5wdXQudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLmxlbmd0aCA8PSA0KSB7XHJcbiAgICAgICAgICBpbnB1dC52YWx1ZSA9IGAke3ZhbHVlLnNsaWNlKDAsIDIpfWArIHNlcGFyYXRvciArYCR7dmFsdWUuc2xpY2UoMil9YDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaW5wdXQudmFsdWUgPSBgJHt2YWx1ZS5zbGljZSgwLCAyKX1gKyBzZXBhcmF0b3IgK2Ake3ZhbHVlLnNsaWNlKDIsIDQpfWArIHNlcGFyYXRvciArYCR7dmFsdWUuc2xpY2UoNCwgNil9YDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fdGFzay5tZ0lucHV0RGF0ZUZvcm1hdCA9PVwiZGQvTU1NL3l5XCIgfHwgdGhpcy5fdGFzay5tZ0lucHV0RGF0ZUZvcm1hdCA9PSBcImRkLU1NTS15eVwiICkge1xyXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPD0gMikge1xyXG4gICAgICAgICAgaW5wdXQudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLmxlbmd0aCA8PSA1KSB7XHJcbiAgICAgICAgICBpbnB1dC52YWx1ZSA9IGAke3ZhbHVlLnNsaWNlKDAsIDIpfWArIHNlcGFyYXRvciArIGAke3ZhbHVlLnNsaWNlKDIpfWA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlucHV0LnZhbHVlID0gYCR7dmFsdWUuc2xpY2UoMCwgMil9YCsgc2VwYXJhdG9yICsgYCR7dmFsdWUuc2xpY2UoMiwgNSl9YCsgc2VwYXJhdG9yICsgYCR7dmFsdWUuc2xpY2UoNSwgNyl9YDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fdGFzay5tZ0lucHV0RGF0ZUZvcm1hdCA9PVwieXkvZGQvTU1NXCIgfHwgdGhpcy5fdGFzay5tZ0lucHV0RGF0ZUZvcm1hdCA9PSBcInl5LWRkLU1NTVwiICkge1xyXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPD0gMikge1xyXG4gICAgICAgICAgaW5wdXQudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLmxlbmd0aCA8PSA0KSB7XHJcbiAgICAgICAgICBpbnB1dC52YWx1ZSA9IGAke3ZhbHVlLnNsaWNlKDAsIDIpfWArIHNlcGFyYXRvciArIGAke3ZhbHVlLnNsaWNlKDIpfWA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlucHV0LnZhbHVlID0gYCR7dmFsdWUuc2xpY2UoMCwgMil9YCsgc2VwYXJhdG9yICsgYCR7dmFsdWUuc2xpY2UoMiwgNCl9YCsgc2VwYXJhdG9yICsgYCR7dmFsdWUuc2xpY2UoNCwgNyl9YDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fdGFzay5tZ0lucHV0RGF0ZUZvcm1hdCA9PVwieXl5eS9kZC9NTU1cIiB8fCB0aGlzLl90YXNrLm1nSW5wdXREYXRlRm9ybWF0ID09IFwieXl5eS1kZC1NTU1cIiApIHtcclxuICAgICAgICBpZiAodmFsdWUubGVuZ3RoIDw9IDQpIHtcclxuICAgICAgICAgIGlucHV0LnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5sZW5ndGggPD0gNikge1xyXG4gICAgICAgICAgaW5wdXQudmFsdWUgPSBgJHt2YWx1ZS5zbGljZSgwLCA0KX1gKyBzZXBhcmF0b3IgKyBgJHt2YWx1ZS5zbGljZSg0KX1gO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpbnB1dC52YWx1ZSA9IGAke3ZhbHVlLnNsaWNlKDAsIDQpfWArIHNlcGFyYXRvciArIGAke3ZhbHVlLnNsaWNlKDQsIDYpfWArIHNlcGFyYXRvciArIGAke3ZhbHVlLnNsaWNlKDYsIDkpfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX3Rhc2subWdJbnB1dERhdGVGb3JtYXQgPT1cIk1NTS9kZC95eVwiIHx8IHRoaXMuX3Rhc2subWdJbnB1dERhdGVGb3JtYXQgPT0gXCJNTU0tZGQteXlcIiApIHtcclxuICAgICAgICBpZiAodmFsdWUubGVuZ3RoIDw9IDMpIHtcclxuICAgICAgICAgIGlucHV0LnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5sZW5ndGggPD0gNSkge1xyXG4gICAgICAgICAgaW5wdXQudmFsdWUgPSBgJHt2YWx1ZS5zbGljZSgwLCAzKX1gKyBzZXBhcmF0b3IgKyBgJHt2YWx1ZS5zbGljZSgzKX1gO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpbnB1dC52YWx1ZSA9IGAke3ZhbHVlLnNsaWNlKDAsIDMpfWArIHNlcGFyYXRvciArIGAke3ZhbHVlLnNsaWNlKDMsIDUpfWArIHNlcGFyYXRvciArIGAke3ZhbHVlLnNsaWNlKDUsIDcpfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX3Rhc2subWdJbnB1dERhdGVGb3JtYXQgPT1cIk1NTS9kZC95eXl5XCIgfHwgdGhpcy5fdGFzay5tZ0lucHV0RGF0ZUZvcm1hdCA9PSBcIk1NTS1kZC15eXl5XCIgKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCA8PSAzKSB7XHJcbiAgICAgICAgICBpbnB1dC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUubGVuZ3RoIDw9IDUpIHtcclxuICAgICAgICAgIGlucHV0LnZhbHVlID0gYCR7dmFsdWUuc2xpY2UoMCwgMyl9YCsgc2VwYXJhdG9yICsgYCR7dmFsdWUuc2xpY2UoMyl9YDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaW5wdXQudmFsdWUgPSBgJHt2YWx1ZS5zbGljZSgwLCAzKX1gKyBzZXBhcmF0b3IgKyBgJHt2YWx1ZS5zbGljZSgzLCA1KX1gKyBzZXBhcmF0b3IgKyBgJHt2YWx1ZS5zbGljZSg1LCA5KX1gO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICovXHJcbiAgLy8gVGhpcyBjYW4gYmUgdXNlZCB0byBpbXBsZW1lbnQgdXBwZXJjYXNlL2xvd2VyIGNhc2VcclxuICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBvbkNoYW5nZUV2ZW50KCRldmVudCl7XHJcbiAgICBsZXQgY29udHJvbCA9IHRoaXMuX3Rhc2suZ2V0Rm9ybUNvbnRyb2wodGhpcy5tYWdpY0Rpci5yb3dJZCwgdGhpcy5tYWdpY0Rpci5pZCApO1xyXG4gICAgbGV0IGF0dHI6IFN0b3JhZ2VBdHRyaWJ1dGUgPSB0aGlzLl90YXNrLlJlY29yZHMubGlzdFswXS5nZXRDb250cm9sTWV0YWRhdGEodGhpcy5tYWdpY0Rpci5pZCkuZGF0YVR5cGU7XHJcblxyXG4gICAgc3dpdGNoICAoYXR0cilcclxuICAgIHtcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERTpcclxuICAgICAgICB0aGlzLmZvcm1hdEFscGhhVW5pY29kZSAoY29udHJvbCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5CT09MRUFOOlxyXG4gICAgICAgIHRoaXMuZm9ybWF0Qm9vbGVhbihjb250cm9sKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAqL1xyXG4gIGNhbGN1bGF0ZVBhdHRlcm4gKClcclxuICB7XHJcbiAgICBsZXQgY29udHJvbCA9IHRoaXMuX3Rhc2suZ2V0Rm9ybUNvbnRyb2wodGhpcy5tYWdpY0Rpci5yb3dJZCwgdGhpcy5tYWdpY0Rpci5pZCApO1xyXG5cclxuICAgIGlmKGNvbnRyb2wgIT0gbnVsbCApIHtcclxuICAgICAgbGV0IGF0dHI6IFN0b3JhZ2VBdHRyaWJ1dGUgPSB0aGlzLl90YXNrLlJlY29yZHMubGlzdFswXS5nZXRDb250cm9sTWV0YWRhdGEodGhpcy5tYWdpY0Rpci5pZCkuZGF0YVR5cGU7XHJcbiAgICAgIGlmIChhdHRyID09IFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQyB8fCBhdHRyID09IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEEgfHwgYXR0ciA9PSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREUpIHtcclxuICAgICAgICBsZXQgcGljOiBQSUMgPSB0aGlzLl90YXNrLkdldENvbnRyb2xQaWN0dXJlTWFzayh0aGlzLm1hZ2ljRGlyLmlkKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNQYXR0ZXJuR2VuZXJhdGlvbk5lZWRlZChhdHRyLCBwaWMpKSB7XHJcbiAgICAgICAgICBsZXQgcGF0dGVybjogc3RyaW5nID0gdGhpcy5nZW5lcmF0ZVBhdHRlcm4oYXR0ciwgcGljKTtcclxuICAgICAgICAgIGlmIChjb250cm9sLnZhbGlkYXRvciA9PSBudWxsKVxyXG4gICAgICAgICAgICBjb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5wYXR0ZXJuKHBhdHRlcm4pKTtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKFtjb250cm9sLnZhbGlkYXRvciwgVmFsaWRhdG9ycy5wYXR0ZXJuKHBhdHRlcm4pXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGF0dHIgPT0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQSB8fCBhdHRyID09IFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERSkge1xyXG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWxpZGF0b3IgPT0gbnVsbClcclxuICAgICAgICAgICAgICBjb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5tYXhMZW5ndGgocGljLmdldE1hc2tMZW5ndGgoKSkpO1xyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAvLyByZS1zZXQgYWxsIHZhbGlkYXRvcnMgYWdhaW5cclxuICAgICAgICAgICAgICBpZiAocGljLmlzRm9ybWF0RXhwKCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLm1heExlbmd0aChwaWMuZ2V0TWFza0xlbmd0aCgpKSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNVbmRlZmluZWQodGhpcy5tYWdpY0Rpci5yb3dJZCkpXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubWFnaWNEaXIucm93SWQgPSAnMCc7XHJcbiAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbGlkYXRvcnMoW2NvbnRyb2wudmFsaWRhdG9yLCB0aGlzLl90YXNrLmN1c3RvbVZhbGlkYXRvcih0aGlzLm1hZ2ljRGlyLnJvd0lkLCB0aGlzLm1hZ2ljRGlyLmlkKV0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbGlkYXRvcnMoW2NvbnRyb2wudmFsaWRhdG9yLCBWYWxpZGF0b3JzLm1heExlbmd0aChwaWMuZ2V0TWFza0xlbmd0aCgpKV0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLy8gIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLm1heExlbmd0aChwaWMuZ2V0TWFza0xlbmd0aCgpKSk7XHJcbiAgICAgICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIGZvcm1hdERhdGUocGljOiBQSUMpOiB2b2lkIHtcclxuICAgICBsZXQgbWdEYXRlRm9ybWF0dGVyID0gbmV3IE1nRGF0ZUZvcm1hdHRlcigpO1xyXG4gICAgICB0aGlzLl90YXNrLm1nSW5wdXREYXRlRm9ybWF0ID0gbWdEYXRlRm9ybWF0dGVyLkNvbnZlcnRNZ0RhdGVGb3JtYXRUb0FuZ3VsYXIocGljLmdldE1hc2soKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBmb3JtYXRBbHBoYVVuaWNvZGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogdm9pZCB7XHJcbiAgICBsZXQgdmFsdWU6IHN0cmluZyA9IGNvbnRyb2wudmFsdWU7XHJcblxyXG4gICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgbmV3VmFsdWU6IHN0cmluZyA9IHRoaXMuX3Rhc2suR2V0UmFuZ2VkVmFsdWUodGhpcy5tYWdpY0Rpci5pZCwgdmFsdWUpO1xyXG4gICAgICBpZiAobmV3VmFsdWUgIT0gbnVsbClcclxuICAgICAgICB2YWx1ZSA9IG5ld1ZhbHVlO1xyXG5cclxuICAgICAgbGV0IHBpYzogUElDID0gdGhpcy5fdGFzay5HZXRDb250cm9sUGljdHVyZU1hc2sodGhpcy5tYWdpY0Rpci5pZCk7XHJcbiAgICAgIGxldCBtYXNrOiBzdHJpbmcgPSBwaWMuZ2V0TWFzaygpO1xyXG4gICAgICBsZXQgdmFsdWVTdHI6IFN0cmluZ0J1aWxkZXIgPSBuZXcgU3RyaW5nQnVpbGRlcigpO1xyXG5cclxuICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgc3dpdGNoIChtYXNrLmNoYXJDb2RlQXQoaSkpIHtcclxuICAgICAgICAgIGNhc2UgUElDSW50ZXJmYWNlLlBJQ19VOlxyXG4gICAgICAgICAgICB2YWx1ZVN0ci5BcHBlbmQodmFsdWUuY2hhckF0KGkpLnRvVXBwZXJDYXNlKCkpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgUElDSW50ZXJmYWNlLlBJQ19MOlxyXG4gICAgICAgICAgICB2YWx1ZVN0ci5BcHBlbmQodmFsdWUuY2hhckF0KGkpLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHZhbHVlU3RyLkFwcGVuZCh2YWx1ZS5jaGFyQXQoaSkpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnRyb2wuc2V0VmFsdWUodmFsdWVTdHIuVG9TdHJpbmcoKSk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGZvcm1hdEJvb2xlYW4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHZvaWQgIHtcclxuICAgIGxldCB2YWx1ZTogc3RyaW5nID0gY29udHJvbC52YWx1ZTtcclxuICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBuZXdWYWx1ZTogc3RyaW5nID0gdGhpcy5fdGFzay5HZXRSYW5nZWRWYWx1ZSAodGhpcy5tYWdpY0Rpci5pZCAsIHZhbHVlKTtcclxuICAgICAgaWYgKG5ld1ZhbHVlLnRvVXBwZXJDYXNlKCkuc3RhcnRzV2l0aCh2YWx1ZS50b1VwcGVyQ2FzZSgpKSkge1xyXG4gICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobmV3VmFsdWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gZ2VuZXJhdGUgcGF0dGVybiBmcm9tICBmbGQncyAgZm9ybWF0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAgZ2VuZXJhdGVQYXR0ZXJuIChhdHRyaWJ1dGU6IFN0b3JhZ2VBdHRyaWJ1dGUsIHBpYzogUElDKTogc3RyaW5nIHtcclxuICAgIGxldCBwYXR0ZXJuOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICBzd2l0Y2ggKGF0dHJpYnV0ZSlcclxuICAgIHtcclxuICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDOlxyXG4gICAgICBwYXR0ZXJuID0gdGhpcy5nZW5lcmF0ZVBhdHRlcm5Gb3JOdW1iZXIocGljKTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEE6XHJcbiAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERTpcclxuICAgICAgcGF0dGVybiA9IHRoaXMuZ2VuZXJhdGVQYXR0ZXJuRm9yQWxwaGEocGljKTtcclxuICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwYXR0ZXJuO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gZ2VuZXJhdGUgcGF0dGVybiBmb3IgQWxwaGFcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gZ2VuZXJhdGVQYXR0ZXJuRm9yTnVtYmVyKHBpYzogUElDKTogc3RyaW5nIHtcclxuICAgIGxldCBwYXR0ZXJuU3RyOiBTdHJpbmdCdWlsZGVyID0gbmV3IFN0cmluZ0J1aWxkZXIgKCk7XHJcblxyXG4gICAgcGF0dGVyblN0ci5BcHBlbmQoJ14nKTtcclxuICAgIGlmIChwaWMuaXNOZWdhdGl2ZSgpKVxyXG4gICAgICBwYXR0ZXJuU3RyLkFwcGVuZCgnLT8nKTtcclxuICAgIGlmIChwaWMuZ2V0V2hvbGVzKCkpXHJcbiAgICAgIHBhdHRlcm5TdHIuQXBwZW5kRm9ybWF0KCdcXFxcZHt7MH0sezF9fScsIDAsIHBpYy5nZXRXaG9sZXMoKSk7XHJcbiAgICBpZiAocGljLmdldERlYygpKVxyXG4gICAgICBwYXR0ZXJuU3RyLkFwcGVuZEZvcm1hdCgnKFxcXFwuXFxcXGR7MSx7MH19KT8nLCBwaWMuZ2V0RGVjKCkpO1xyXG4gICAgcGF0dGVyblN0ci5BcHBlbmQoJyQnKTtcclxuXHJcbiAgICByZXR1cm4gcGF0dGVyblN0ci5Ub1N0cmluZygpO1xyXG4gfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiBpc1BhdHRlcm5HZW5lcmF0aW9uTmVlZGVkIChhdHRyIDogU3RvcmFnZUF0dHJpYnV0ZSwgcGljIDogUElDKTogYm9vbGVhbiB7XHJcblxyXG4gICBzd2l0Y2ggKGF0dHIpIHtcclxuICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQzpcclxuICAgICAgIHJldHVybiB0cnVlO1xyXG5cclxuICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEE6XHJcbiAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREU6XHJcbiAgICAgICByZXR1cm4gKHBpYy5nZXRNYXNrQ2hhcnMoKSA+IDApID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICB9XHJcbiB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGdlbmVyYXRlIHBhdHRlcm4gZm9yIEFscGhhXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuIGdlbmVyYXRlUGF0dGVybkZvckFscGhhKHBpYyA6IFBJQyk6IHN0cmluZyB7XHJcbiAgbGV0IGNudDogbnVtYmVyID0gMDtcclxuICBsZXQgaW5wdXRBbGxDaGFyczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxldCBjbG9zZVNldDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxldCAgbWFzazogc3RyaW5nID0gcGljLmdldE1hc2soKTtcclxuICBsZXQgIHBhdHRlcm46IFN0cmluZ0J1aWxkZXIgPSBuZXcgU3RyaW5nQnVpbGRlcigpO1xyXG5cclxuICBwYXR0ZXJuLkFwcGVuZCgnXicpO1xyXG4gIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBtYXNrLmxlbmd0aDspXHJcbiAge1xyXG4gICAgLy9zdGFydCBuZXcgc3Vic2V0ICwgaWYgbWFza1tpXSBpcyBvbmUgb2YgdGhlc2UuXHJcbiAgICBpZiAoaW5wdXRBbGxDaGFycyAmJiAobWFzay5jaGFyQ29kZUF0KGkpID09IFBJQ0ludGVyZmFjZS5QSUNfTiB8fCBtYXNrLmNoYXJDb2RlQXQoaSkgPT0gUElDSW50ZXJmYWNlLlBJQ19VIHx8IG1hc2suY2hhckNvZGVBdChpKSA9PSBQSUNJbnRlcmZhY2UuUElDX0xcclxuICAgICAgICB8fCBtYXNrLmNoYXJDb2RlQXQoaSkgPT0gUElDSW50ZXJmYWNlLlBJQ19YKSlcclxuICAgIHtcclxuICAgICAgcGF0dGVybi5BcHBlbmQoJygnKTtcclxuICAgICAgY2xvc2VTZXQgPSB0cnVlO1xyXG4gICAgICBpbnB1dEFsbENoYXJzID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY250ID0gMDtcclxuICAgIHN3aXRjaCAobWFzay5jaGFyQ29kZUF0KGkpKVxyXG4gICAge1xyXG4gICAgICBjYXNlIFBJQ0ludGVyZmFjZS5QSUNfVTpcclxuICAgICAgY2FzZSBQSUNJbnRlcmZhY2UuUElDX1g6XHJcbiAgICAgIGNhc2UgUElDSW50ZXJmYWNlLlBJQ19MOlxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0dGVybi5BcHBlbmQoJy4nKTtcclxuICAgICAgICBsZXQgaW5wdXRBbGxDaGFyc1JlZjogUmVmUGFyYW08Ym9vbGVhbj4gPSBuZXcgUmVmUGFyYW08Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgICAgIGxldCBkaXJzOiBzdHJpbmcgPSAgUElDSW50ZXJmYWNlLlBJQ19VLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgZGlycyArPSBQSUNJbnRlcmZhY2UuUElDX0wudG9TdHJpbmcoKTtcclxuICAgICAgICBkaXJzICs9IFBJQ0ludGVyZmFjZS5QSUNfWC50b1N0cmluZygpO1xyXG4gICAgICAgIGNudCA9IHRoaXMuZ2V0RGlyZWN0aXZlQ291bnQobWFzaywgaSwgZGlycywgaW5wdXRBbGxDaGFyc1JlZik7XHJcbiAgICAgICAgaW5wdXRBbGxDaGFycyA9IGlucHV0QWxsQ2hhcnNSZWYudmFsdWU7XHJcbiAgICAgICAgaSArPSBjbnQ7XHJcblxyXG4gICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUElDSW50ZXJmYWNlLlBJQ19OOlxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0dGVybi5BcHBlbmQoJ1xcXFxkJyk7XHJcbiAgICAgICAgbGV0IGlucHV0QWxsQ2hhcnNSZWY6IFJlZlBhcmFtPGJvb2xlYW4+ID0gbmV3IFJlZlBhcmFtPGJvb2xlYW4+KGZhbHNlKTtcclxuICAgICAgICBjbnQgPSB0aGlzLmdldERpcmVjdGl2ZUNvdW50KG1hc2ssIGksIFBJQ0ludGVyZmFjZS5QSUNfTC50b1N0cmluZygpLCBpbnB1dEFsbENoYXJzUmVmKTtcclxuICAgICAgICBpbnB1dEFsbENoYXJzID0gaW5wdXRBbGxDaGFyc1JlZi52YWx1ZTtcclxuICAgICAgICBpICs9IGNudDtcclxuICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBwYXR0ZXJuLkFwcGVuZChtYXNrW2ldKTtcclxuICAgICAgICBpKys7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBpZiAoY250ID4gMClcclxuICAgICAgcGF0dGVybi5BcHBlbmRGb3JtYXQoJ3t7MH0sezF9fScsIGlucHV0QWxsQ2hhcnMgPyBjbnQgOiAwLCBjbnQpO1xyXG4gICAgaWYgKGNsb3NlU2V0KVxyXG4gICAgICBwYXR0ZXJuLkFwcGVuZCgnKScpO1xyXG4gICAgY2xvc2VTZXQgPSBmYWxzZTtcclxuXHJcbiAgfVxyXG4gICBwYXR0ZXJuLkFwcGVuZCgnJCcpO1xyXG4gICByZXR1cm4gcGF0dGVybi5Ub1N0cmluZygpO1xyXG4gfVxyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgZ2V0RGlyZWN0aXZlQ291bnQobWFzazogc3RyaW5nLCBpZHg6IG51bWJlciwgcGF0dGVybjogc3RyaW5nLCBjaGFuZ2VJblBhdHRlcm46IFJlZlBhcmFtPGJvb2xlYW4+ICk6IG51bWJlciAge1xyXG5cclxuICAgIGNoYW5nZUluUGF0dGVybi52YWx1ZSA9IGZhbHNlO1xyXG4gICAgbGV0IHBhdHRlcm5Db3VudDogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvLyBmaW5kIG1heCBjaGFyc1xyXG4gICAgd2hpbGUgKGlkeCA8IG1hc2subGVuZ3RoICYmIHRoaXMuSXNQYXR0ZXJuTWF0Y2hlcyhtYXNrLmNoYXJDb2RlQXQoaWR4KS50b1N0cmluZygpLCBwYXR0ZXJuKSlcclxuICAgIHsgcGF0dGVybkNvdW50Kys7IGlkeCsrOyB9XHJcblxyXG5cclxuICAgIGlmIChpZHggPCBtYXNrLmxlbmd0aClcclxuICAgICAgY2hhbmdlSW5QYXR0ZXJuLnZhbHVlID0gdHJ1ZTtcclxuXHJcbiAgICByZXR1cm4gcGF0dGVybkNvdW50O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIElzUGF0dGVybk1hdGNoZXMobWFzazogc3RyaW5nLCBwYXR0ZXJuOiBzdHJpbmcpOiBib29sZWFuIHtcclxuXHJcbiAgICBmb3IgKGxldCBpOm51bWJlciA9IDA7IGkgPCBwYXR0ZXJuLmxlbmd0aDsgaSsrKVxyXG4gICAgaWYgKG1hc2sgPT0gcGF0dGVybltpXSlcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -19,4 +19,4 @@ BaseMagicOverlayContainer = __decorate([
19
19
  Output()
20
20
  ], BaseMagicOverlayContainer);
21
21
  export { BaseMagicOverlayContainer };
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1tYWdpYy1vdmVybGF5LWNvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3VpL21hZ2ljLW1vZGFsL2Jhc2UtbWFnaWMtb3ZlcmxheS1jb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzlDLElBQXNCLHlCQUF5QixHQUEvQyxNQUFzQix5QkFBeUI7Q0FlOUMsQ0FBQTtBQVhVO0lBQVIsS0FBSyxFQUFFOzs0REFBb0I7QUFLbkI7SUFBUixLQUFLLEVBQUU7O3NFQUFtQztBQUtqQztJQUFULE1BQU0sRUFBRTs7MERBQWtCO0FBZFAseUJBQXlCO0lBRjlDLEtBQUssRUFBRTtJQUNQLE1BQU0sRUFBRTtHQUNhLHlCQUF5QixDQWU5QztTQWZxQix5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuQElucHV0KClcclxuQE91dHB1dCgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlTWFnaWNPdmVybGF5Q29udGFpbmVyIHtcclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFic3RyYWN0IE1vZGFsQ29tcDtcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBASW5wdXQoKSBhYnN0cmFjdCBNb2RhbENvbXBQYXJhbWV0ZXJzOiBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGFic3RyYWN0IG9uQ2xvc2U7XHJcbn1cclxuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1tYWdpYy1vdmVybGF5LWNvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3VpL21hZ2ljLW1vZGFsL2Jhc2UtbWFnaWMtb3ZlcmxheS1jb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3ZDLElBQWUseUJBQXlCLEdBQXhDLE1BQWUseUJBQXlCO0NBZTlDLENBQUE7QUFYQztJQUFDLEtBQUssRUFBRTs7NERBQW9CO0FBSzVCO0lBQUMsS0FBSyxFQUFFOztzRUFBbUM7QUFLM0M7SUFBQyxNQUFNLEVBQUU7OzBEQUFrQjtBQWRQLHlCQUF5QjtJQUY5QyxLQUFLLEVBQUU7SUFDUCxNQUFNLEVBQUU7R0FDYSx5QkFBeUIsQ0FlOUM7U0FmcUIseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbkBJbnB1dCgpXHJcbkBPdXRwdXQoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZU1hZ2ljT3ZlcmxheUNvbnRhaW5lciB7XHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBASW5wdXQoKSBhYnN0cmFjdCBNb2RhbENvbXA7XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgQElucHV0KCkgYWJzdHJhY3QgTW9kYWxDb21wUGFyYW1ldGVyczogYW55O1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBhYnN0cmFjdCBvbkNsb3NlO1xyXG59XHJcbiJdfQ==
@@ -93,12 +93,10 @@ MagicOverlayContainerWrapper.ɵcmp = i0.ɵɵdefineComponent({ type: MagicOverlay
93
93
  i0.ɵɵelementEnd();
94
94
  i0.ɵɵelement(6, "div", 5);
95
95
  i0.ɵɵelementEnd();
96
- } }, directives: [i3.MagicFocusDirective, i4.MagicViewContainerRef], styles: [".overlay-container-wrapper-background[_ngcontent-%COMP%]{position:fixed;z-index:999;inset:0}"] });
96
+ } }, dependencies: [i3.MagicFocusDirective, i4.MagicViewContainerRef], styles: [".overlay-container-wrapper-background[_ngcontent-%COMP%]{position:fixed;z-index:999;inset:0}"] });
97
97
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicOverlayContainerWrapper, [{
98
98
  type: Component,
99
- args: [{
100
- selector: 'app-magic-overlay-container-wrapper',
101
- template: `
99
+ args: [{ selector: 'app-magic-overlay-container-wrapper', template: `
102
100
  <div>
103
101
  <div class="overlay-container-wrapper-background" tabIndex="0" style="width: 0px; height: 0px;" magicFocus></div>
104
102
  <div class="overlay-container-wrapper-background" #overlayContainerWrapper>
@@ -107,19 +105,7 @@ MagicOverlayContainerWrapper.ɵcmp = i0.ɵɵdefineComponent({ type: MagicOverlay
107
105
  </div>
108
106
  <div class="overlay-container-wrapper-background" tabIndex="0" style="width: 0px; height: 0px;" ></div>
109
107
  </div>
110
- `,
111
- styles: [`
112
- .overlay-container-wrapper-background {
113
- /* modal background fixed across whole screen */
114
- position: fixed;
115
- top: 0;
116
- z-index: 999;
117
- right: 0;
118
- bottom: 0;
119
- left: 0;
120
- }
121
- `]
122
- }]
108
+ `, styles: [".overlay-container-wrapper-background{position:fixed;z-index:999;inset:0}\n"] }]
123
109
  }], function () { return [{ type: i1.ComponentListMagicService }, { type: i2.MagicLazyLoaderService }, { type: i0.Injector }, { type: i0.ComponentFactoryResolver }, { type: i0.ChangeDetectorRef }, { type: i0.Compiler }]; }, { Component: [{
124
110
  type: Input
125
111
  }], Parameters: [{
@@ -132,4 +118,4 @@ MagicOverlayContainerWrapper.ɵcmp = i0.ɵɵdefineComponent({ type: MagicOverlay
132
118
  type: ViewChild,
133
119
  args: ['overlayContainerWrapper', { static: true }]
134
120
  }] }); })();
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtb3ZlcmxheS1jb250YWluZXItd3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3VpL21hZ2ljLW1vZGFsL21hZ2ljLW92ZXJsYXktY29udGFpbmVyLXdyYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBRVQsd0JBQXdCLEVBQ3hCLFVBQVUsRUFDVixRQUFRLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUN0QyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHlCQUF5QixFQUFjLE1BQU0sNkNBQTZDLENBQUM7QUFFcEcsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7Ozs7QUEyQmxGLE1BQU0sT0FBTyw0QkFBNEI7SUFrQ3ZDLFlBQW9CLHlCQUFvRCxFQUNwRCxxQkFBNkMsRUFDN0MsUUFBa0IsRUFDNUIsd0JBQWtELEVBQ3hDLGlCQUFtQyxFQUNuQyxRQUFrQjtRQUxsQiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBd0I7UUFDN0MsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUM1Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ3hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDbkMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQW5DdEIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUlqQixlQUFVLEdBQVEsRUFBRSxDQUFDO1FBSW5CLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBNEJyRCxDQUFDO0lBS0QsUUFBUTtRQUNOLElBQUksU0FBUyxHQUFxQixJQUFJLENBQUMseUJBQXlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFN0csSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFO1lBQ3JCLElBQUksY0FBYyxHQUFlLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRXJILElBQUksY0FBYyxJQUFJLElBQUksRUFBRTtnQkFDMUIsSUFBSSxVQUFVLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRSxVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNuRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGlDQUFpQyxDQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztvQkFDcEcsU0FBUyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDM0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFDSTtnQkFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzFCO1NBQ0Y7O1lBQ0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU8sYUFBYSxDQUFDLFNBQTJCO1FBQy9DLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFFMUosSUFBSSxPQUFPLENBQUM7UUFDWixJQUFJLFNBQVMsSUFBSSxJQUFJO1lBQ25CLE9BQU8sR0FBRyxTQUFTLENBQUMsd0JBQXdCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDOztZQUVyRixPQUFPLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVsRixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hGLElBQUksZUFBZSxHQUFHLDRCQUE0QixDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUcvRixJQUFJLFlBQVksQ0FBQyxRQUFRLFlBQVksZUFBZSxDQUFDLElBQUksRUFBRTtZQUN6RCxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2hELFlBQVksQ0FBQyxRQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLEdBQUcsR0FBRyxrREFBa0QsR0FBRyxlQUFlLENBQUMsS0FBSyxHQUFHLGdDQUFnQyxDQUFDO1lBQ3hILEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNaO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQXVCO1FBQ3pDLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxLQUFLLENBQUM7SUFDOUMsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxhQUFhLENBQUM7SUFDOUQsQ0FBQztJQUVELGFBQWE7UUFFWCxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekMsQ0FBQzs7QUE3RU0sNkNBQWdCLEdBQUcsSUFBSSxHQUFHLENBQXFDO0lBQ3BFLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxFQUFDLElBQUksRUFBRSx5QkFBeUIsRUFBRSxLQUFLLEVBQUMsc0NBQXNDLEVBQUMsQ0FBQztJQUN0RyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBQyxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFDLGlDQUFpQyxFQUFDLENBQUM7SUFDN0YsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFHLEVBQUMsSUFBSSxFQUFFLHlCQUF5QixFQUFFLEtBQUssRUFBRSwwQ0FBMEMsRUFBQyxDQUFDO0NBQ3JILENBQUUsQ0FBQTt3R0E3QlEsNEJBQTRCO2lFQUE1Qiw0QkFBNEI7Ozs7OztRQXJCckMsMkJBQUs7UUFDSCx5QkFBaUg7UUFDakgsaUNBQTJFO1FBQ3pFLDRCQUNNO1FBQ1IsaUJBQU07UUFDTix5QkFBdUc7UUFDekcsaUJBQU07O3VGQWNHLDRCQUE0QjtjQXhCeEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxxQ0FBcUM7Z0JBQy9DLFFBQVEsRUFBRTs7Ozs7Ozs7O0dBU1Q7Z0JBQ0QsTUFBTSxFQUFFLENBQUM7Ozs7Ozs7Ozs7R0FVUixDQUFDO2FBQ0g7c09BS2lCLFNBQVM7a0JBQXhCLEtBQUs7WUFJVSxVQUFVO2tCQUF6QixLQUFLO1lBRVcsZ0JBQWdCO2tCQUFoQyxLQUFLO1lBRVksT0FBTztrQkFBeEIsTUFBTTtZQU9pRCxpQ0FBaUM7a0JBQXhGLFNBQVM7bUJBQUMseUJBQXlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgRWxlbWVudFJlZiwgTmdNb2R1bGVSZWYsXHJcbiAgSW5qZWN0b3IsIENoYW5nZURldGVjdG9yUmVmLCBDb21waWxlclxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlTWFnaWNPdmVybGF5Q29udGFpbmVyIH0gZnJvbSBcIi4vYmFzZS1tYWdpYy1vdmVybGF5LWNvbnRhaW5lclwiO1xyXG5pbXBvcnQgeyBCYXNlTWFnaWNDb25maXJtQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvYmFzZS1tYWdpYy1jb25maXJtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBCYXNlTWFnaWNBbGVydENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2Jhc2UtbWFnaWMtYWxlcnQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IE92ZXJsYXlUeXBlIH0gZnJvbSBcIkBtYWdpYy14cGEvZ3VpXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudExpc3RNYWdpY1NlcnZpY2UsIE1vZHVsZURhdGEgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvY29tcG9uZW50LWxpc3QubWFnaWMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJTWFnaWNWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIi4uLy4uLy4uXCI7XHJcbmltcG9ydCB7aXNOdWxsT3JVbmRlZmluZWR9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcclxuaW1wb3J0IHsgTWFnaWNMYXp5TG9hZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21hZ2ljLmxhenkubG9hZGVyLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLW1hZ2ljLW92ZXJsYXktY29udGFpbmVyLXdyYXBwZXInLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheS1jb250YWluZXItd3JhcHBlci1iYWNrZ3JvdW5kXCIgdGFiSW5kZXg9XCIwXCIgc3R5bGU9XCJ3aWR0aDogMHB4OyBoZWlnaHQ6IDBweDtcIiBtYWdpY0ZvY3VzPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheS1jb250YWluZXItd3JhcHBlci1iYWNrZ3JvdW5kXCIgI292ZXJsYXlDb250YWluZXJXcmFwcGVyPlxyXG4gICAgICAgIDxkaXYgI292ZXJsYXlDb250ZW50IG1hZ2ljVmlld0NvbnRhaW5lclJlZj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5LWNvbnRhaW5lci13cmFwcGVyLWJhY2tncm91bmRcIiB0YWJJbmRleD1cIjBcIiBzdHlsZT1cIndpZHRoOiAwcHg7IGhlaWdodDogMHB4O1wiID48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgLm92ZXJsYXktY29udGFpbmVyLXdyYXBwZXItYmFja2dyb3VuZCB7XHJcbiAgICAgIC8qIG1vZGFsIGJhY2tncm91bmQgZml4ZWQgYWNyb3NzIHdob2xlIHNjcmVlbiAqL1xyXG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgIHRvcDogMDtcclxuICAgICAgei1pbmRleDogOTk5O1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgfVxyXG4gIGBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYWdpY092ZXJsYXlDb250YWluZXJXcmFwcGVyICBpbXBsZW1lbnRzIElNYWdpY1ZpZXdDb250YWluZXJSZWYge1xyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIENvbXBvbmVudCA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgUGFyYW1ldGVyczogYW55ID0ge307XHJcblxyXG4gIEBJbnB1dCgpIHByaXZhdGUgT3ZlcmxheVR5cGVQYXJhbTogT3ZlcmxheVR5cGU7XHJcblxyXG4gIEBPdXRwdXQoKSBwcml2YXRlIG9uQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEhUTUwgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBtb2RhbCB3aW5kb3dcclxuICAgKi9cclxuICBvdmVybGF5Q29udGVudFZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlDb250YWluZXJXcmFwcGVyJywgeyBzdGF0aWM6IHRydWUgfSkgb3ZlcmxheUNvbnRhaW5lcldyYXBwZXJFbGVtZW50UmVmOiBFbGVtZW50UmVmO1xyXG5cclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICogY29udGFpcyBkYXRhIG9mIGFsbG93ZWQgYmFzZSBjb21wb25lbnRzIHRvIHVzZVxyXG4gICAqL1xyXG4gIHN0YXRpYyBhbGxvd2VkQmFzZUNvbXBzID0gbmV3IE1hcDxudW1iZXIsIHtjb21wOiBhbnksIGVycm9yOiBzdHJpbmd9PihbXHJcbiAgICBbT3ZlcmxheVR5cGUuT3ZlcmxheSwge2NvbXA6IEJhc2VNYWdpY092ZXJsYXlDb250YWluZXIsIGVycm9yOidCYXNlTWFnaWNPdmVybGF5Q29udGFpbmVyIC4gT3ZlcmxheSAnfV0sXHJcbiAgICBbT3ZlcmxheVR5cGUuQWxlcnQsIHtjb21wOiBCYXNlTWFnaWNBbGVydENvbXBvbmVudCwgZXJyb3I6J0Jhc2VNYWdpY0FsZXJ0Q29tcG9uZW50LiBBbGVydCAnfV0sXHJcbiAgICBbT3ZlcmxheVR5cGUuQ29uZmlybWF0aW9uQm94LCAge2NvbXA6IEJhc2VNYWdpY0NvbmZpcm1Db21wb25lbnQsIGVycm9yIDonQmFzZU1hZ2ljQ29uZmlybUNvbXBvbmVudC4gQ29uZmlybWF0aW9uICd9XVxyXG4gIF0pO1xyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcG9uZW50TGlzdE1hZ2ljU2VydmljZTogQ29tcG9uZW50TGlzdE1hZ2ljU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIG1hZ2ljTGF6eU1vZHVsZUxvYWRlcjogTWFnaWNMYXp5TG9hZGVyU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjpDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICBwcml2YXRlIGNvbXBpbGVyOiBDb21waWxlcikge1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGxldCBtb2R1bGVSZWY6IE5nTW9kdWxlUmVmPGFueT4gPSB0aGlzLmNvbXBvbmVudExpc3RNYWdpY1NlcnZpY2UuZ2V0TW9kdWxlUmVmKHRoaXMuUGFyYW1ldGVycy5NYWdpY0Zvcm1OYW1lKTtcclxuXHJcbiAgICBpZiAobW9kdWxlUmVmID09IG51bGwpIHtcclxuICAgICAgbGV0IGxhenlMb2FkTW9kdWxlOiBNb2R1bGVEYXRhID0gdGhpcy5jb21wb25lbnRMaXN0TWFnaWNTZXJ2aWNlLmdldExhenlMb2FkTW9kdWxlRGF0YSh0aGlzLlBhcmFtZXRlcnMuTWFnaWNGb3JtTmFtZSk7XHJcblxyXG4gICAgICBpZiAobGF6eUxvYWRNb2R1bGUgIT0gbnVsbCkge1xyXG4gICAgICAgIGxldCBtb2R1bGVOYW1lID0gbGF6eUxvYWRNb2R1bGUubW9kdWxlTmFtZS5yZXBsYWNlKFwiTWFnaWNcIiwgXCJcIik7XHJcbiAgICAgICAgbW9kdWxlTmFtZSA9IG1vZHVsZU5hbWUucmVwbGFjZShcIk1vZHVsZVwiLCBcIlwiKTtcclxuICAgICAgICB0aGlzLm1hZ2ljTGF6eU1vZHVsZUxvYWRlci5Mb2FkKG1vZHVsZU5hbWUpLnRoZW4obSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjb21waWxlZCA9IHRoaXMuY29tcGlsZXIuY29tcGlsZU1vZHVsZUFuZEFsbENvbXBvbmVudHNTeW5jKDxhbnk+bVtsYXp5TG9hZE1vZHVsZS5tb2R1bGVOYW1lXSk7XHJcbiAgICAgICAgICBtb2R1bGVSZWYgPSBjb21waWxlZC5uZ01vZHVsZUZhY3RvcnkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkQ29tcG9uZW50KG1vZHVsZVJlZik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5sb2FkQ29tcG9uZW50KG51bGwpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2VcclxuICAgICAgdGhpcy5sb2FkQ29tcG9uZW50KG1vZHVsZVJlZik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRDb21wb25lbnQobW9kdWxlUmVmOiBOZ01vZHVsZVJlZjxhbnk+KSB7XHJcbiAgICB0aGlzLlBhcmFtZXRlcnMuTW9kYWxDb21wID0gdGhpcy5jb21wb25lbnRMaXN0TWFnaWNTZXJ2aWNlLmdldENvbXBvbmVudCh0aGlzLlBhcmFtZXRlcnMuTWFnaWNGb3JtTmFtZSwgIWlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuUGFyYW1ldGVycy5NYWdpY0Zvcm1OYW1lKSk7XHJcblxyXG4gICAgbGV0IGZhY3Rvcnk7XHJcbiAgICBpZiAobW9kdWxlUmVmICE9IG51bGwpXHJcbiAgICAgIGZhY3RvcnkgPSBtb2R1bGVSZWYuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHRoaXMuQ29tcG9uZW50KTtcclxuICAgIGVsc2VcclxuICAgICAgZmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHRoaXMuQ29tcG9uZW50KTtcclxuXHJcbiAgICBsZXQgY29tcG9uZW50UmVmID0gdGhpcy5vdmVybGF5Q29udGVudFZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgbGV0IGFsbG93ZWRCYXNlQ29tcCA9IE1hZ2ljT3ZlcmxheUNvbnRhaW5lcldyYXBwZXIuYWxsb3dlZEJhc2VDb21wcy5nZXQodGhpcy5PdmVybGF5VHlwZVBhcmFtKTtcclxuXHJcblxyXG4gICAgaWYgKGNvbXBvbmVudFJlZi5pbnN0YW5jZSBpbnN0YW5jZW9mIGFsbG93ZWRCYXNlQ29tcC5jb21wKSB7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24oY29tcG9uZW50UmVmLmluc3RhbmNlLCB0aGlzLlBhcmFtZXRlcnMpO1xyXG4gICAgICAoPGFueT5jb21wb25lbnRSZWYuaW5zdGFuY2UpLm9uQ2xvc2Uuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLm9uQ2xvc2UuZW1pdChyZXMpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBtc2cgPSBcIlByb3ZpZGVkICB3aW5kb3cgY29udGFpbmVyIHNob3VsZCBzdWJjbGFzcyBvZiA6IFwiICsgYWxsb3dlZEJhc2VDb21wLmVycm9yICsgXCJ3aW5kb3cgd2lsbCBub3Qgd29yayBwcm9wZXJseS5cIjtcclxuICAgICAgYWxlcnQobXNnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFZpZXdDb250YWluZXJSZWYodmNSZWY6IFZpZXdDb250YWluZXJSZWYpe1xyXG4gICAgdGhpcy5vdmVybGF5Q29udGVudFZpZXdDb250YWluZXJSZWYgPSB2Y1JlZjtcclxuICB9XHJcblxyXG4gIEdldFJvb3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcclxuICAgIHJldHVybiB0aGlzLm92ZXJsYXlDb250YWluZXJXcmFwcGVyRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgRGV0ZWN0Q2hhbmdlcygpXHJcbiAge1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtb3ZlcmxheS1jb250YWluZXItd3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3VpL21hZ2ljLW1vZGFsL21hZ2ljLW92ZXJsYXktY29udGFpbmVyLXdyYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBRVQsd0JBQXdCLEVBQ3hCLFVBQVUsRUFDVixRQUFRLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUN0QyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHlCQUF5QixFQUFjLE1BQU0sNkNBQTZDLENBQUM7QUFFcEcsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7Ozs7QUEyQmxGLE1BQU0sT0FBTyw0QkFBNEI7SUFrQ3ZDLFlBQW9CLHlCQUFvRCxFQUNwRCxxQkFBNkMsRUFDN0MsUUFBa0IsRUFDNUIsd0JBQWtELEVBQ3hDLGlCQUFtQyxFQUNuQyxRQUFrQjtRQUxsQiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBd0I7UUFDN0MsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUM1Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ3hDLHNCQUFpQixH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RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIEVsZW1lbnRSZWYsIE5nTW9kdWxlUmVmLFxyXG4gIEluamVjdG9yLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcGlsZXJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmFzZU1hZ2ljT3ZlcmxheUNvbnRhaW5lciB9IGZyb20gXCIuL2Jhc2UtbWFnaWMtb3ZlcmxheS1jb250YWluZXJcIjtcclxuaW1wb3J0IHsgQmFzZU1hZ2ljQ29uZmlybUNvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2Jhc2UtbWFnaWMtY29uZmlybS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQmFzZU1hZ2ljQWxlcnRDb21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9iYXNlLW1hZ2ljLWFsZXJ0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBPdmVybGF5VHlwZSB9IGZyb20gXCJAbWFnaWMteHBhL2d1aVwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnRMaXN0TWFnaWNTZXJ2aWNlLCBNb2R1bGVEYXRhIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2NvbXBvbmVudC1saXN0Lm1hZ2ljLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSU1hZ2ljVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCIuLi8uLi8uLlwiO1xyXG5pbXBvcnQge2lzTnVsbE9yVW5kZWZpbmVkfSBmcm9tICdAbWFnaWMteHBhL21zY29yZWxpYic7XHJcbmltcG9ydCB7IE1hZ2ljTGF6eUxvYWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYWdpYy5sYXp5LmxvYWRlci5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1tYWdpYy1vdmVybGF5LWNvbnRhaW5lci13cmFwcGVyJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXktY29udGFpbmVyLXdyYXBwZXItYmFja2dyb3VuZFwiIHRhYkluZGV4PVwiMFwiIHN0eWxlPVwid2lkdGg6IDBweDsgaGVpZ2h0OiAwcHg7XCIgbWFnaWNGb2N1cz48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXktY29udGFpbmVyLXdyYXBwZXItYmFja2dyb3VuZFwiICNvdmVybGF5Q29udGFpbmVyV3JhcHBlcj5cclxuICAgICAgICA8ZGl2ICNvdmVybGF5Q29udGVudCBtYWdpY1ZpZXdDb250YWluZXJSZWY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheS1jb250YWluZXItd3JhcHBlci1iYWNrZ3JvdW5kXCIgdGFiSW5kZXg9XCIwXCIgc3R5bGU9XCJ3aWR0aDogMHB4OyBoZWlnaHQ6IDBweDtcIiA+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHN0eWxlczogW2BcclxuICAgIC5vdmVybGF5LWNvbnRhaW5lci13cmFwcGVyLWJhY2tncm91bmQge1xyXG4gICAgICAvKiBtb2RhbCBiYWNrZ3JvdW5kIGZpeGVkIGFjcm9zcyB3aG9sZSBzY3JlZW4gKi9cclxuICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIHotaW5kZXg6IDk5OTtcclxuICAgICAgcmlnaHQ6IDA7XHJcbiAgICAgIGJvdHRvbTogMDtcclxuICAgICAgbGVmdDogMDtcclxuICAgIH1cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFnaWNPdmVybGF5Q29udGFpbmVyV3JhcHBlciAgaW1wbGVtZW50cyBJTWFnaWNWaWV3Q29udGFpbmVyUmVmIHtcclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBDb21wb25lbnQgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIFBhcmFtZXRlcnM6IGFueSA9IHt9O1xyXG5cclxuICBASW5wdXQoKSBwcml2YXRlIE92ZXJsYXlUeXBlUGFyYW06IE92ZXJsYXlUeXBlO1xyXG5cclxuICBAT3V0cHV0KCkgcHJpdmF0ZSBvbkNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAvKipcclxuICAgKiBIVE1MIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgbW9kYWwgd2luZG93XHJcbiAgICovXHJcbiAgb3ZlcmxheUNvbnRlbnRWaWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xyXG5cclxuICBAVmlld0NoaWxkKCdvdmVybGF5Q29udGFpbmVyV3JhcHBlcicsIHsgc3RhdGljOiB0cnVlIH0pIG92ZXJsYXlDb250YWluZXJXcmFwcGVyRWxlbWVudFJlZjogRWxlbWVudFJlZjtcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqIGNvbnRhaXMgZGF0YSBvZiBhbGxvd2VkIGJhc2UgY29tcG9uZW50cyB0byB1c2VcclxuICAgKi9cclxuICBzdGF0aWMgYWxsb3dlZEJhc2VDb21wcyA9IG5ldyBNYXA8bnVtYmVyLCB7Y29tcDogYW55LCBlcnJvcjogc3RyaW5nfT4oW1xyXG4gICAgW092ZXJsYXlUeXBlLk92ZXJsYXksIHtjb21wOiBCYXNlTWFnaWNPdmVybGF5Q29udGFpbmVyLCBlcnJvcjonQmFzZU1hZ2ljT3ZlcmxheUNvbnRhaW5lciAuIE92ZXJsYXkgJ31dLFxyXG4gICAgW092ZXJsYXlUeXBlLkFsZXJ0LCB7Y29tcDogQmFzZU1hZ2ljQWxlcnRDb21wb25lbnQsIGVycm9yOidCYXNlTWFnaWNBbGVydENvbXBvbmVudC4gQWxlcnQgJ31dLFxyXG4gICAgW092ZXJsYXlUeXBlLkNvbmZpcm1hdGlvbkJveCwgIHtjb21wOiBCYXNlTWFnaWNDb25maXJtQ29tcG9uZW50LCBlcnJvciA6J0Jhc2VNYWdpY0NvbmZpcm1Db21wb25lbnQuIENvbmZpcm1hdGlvbiAnfV1cclxuICBdKTtcclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBvbmVudExpc3RNYWdpY1NlcnZpY2U6IENvbXBvbmVudExpc3RNYWdpY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBtYWdpY0xhenlNb2R1bGVMb2FkZXI6IE1hZ2ljTGF6eUxvYWRlclNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXIpIHtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBsZXQgbW9kdWxlUmVmOiBOZ01vZHVsZVJlZjxhbnk+ID0gdGhpcy5jb21wb25lbnRMaXN0TWFnaWNTZXJ2aWNlLmdldE1vZHVsZVJlZih0aGlzLlBhcmFtZXRlcnMuTWFnaWNGb3JtTmFtZSk7XHJcblxyXG4gICAgaWYgKG1vZHVsZVJlZiA9PSBudWxsKSB7XHJcbiAgICAgIGxldCBsYXp5TG9hZE1vZHVsZTogTW9kdWxlRGF0YSA9IHRoaXMuY29tcG9uZW50TGlzdE1hZ2ljU2VydmljZS5nZXRMYXp5TG9hZE1vZHVsZURhdGEodGhpcy5QYXJhbWV0ZXJzLk1hZ2ljRm9ybU5hbWUpO1xyXG5cclxuICAgICAgaWYgKGxhenlMb2FkTW9kdWxlICE9IG51bGwpIHtcclxuICAgICAgICBsZXQgbW9kdWxlTmFtZSA9IGxhenlMb2FkTW9kdWxlLm1vZHVsZU5hbWUucmVwbGFjZShcIk1hZ2ljXCIsIFwiXCIpO1xyXG4gICAgICAgIG1vZHVsZU5hbWUgPSBtb2R1bGVOYW1lLnJlcGxhY2UoXCJNb2R1bGVcIiwgXCJcIik7XHJcbiAgICAgICAgdGhpcy5tYWdpY0xhenlNb2R1bGVMb2FkZXIuTG9hZChtb2R1bGVOYW1lKS50aGVuKG0gPT4ge1xyXG4gICAgICAgICAgY29uc3QgY29tcGlsZWQgPSB0aGlzLmNvbXBpbGVyLmNvbXBpbGVNb2R1bGVBbmRBbGxDb21wb25lbnRzU3luYyg8YW55Pm1bbGF6eUxvYWRNb2R1bGUubW9kdWxlTmFtZV0pO1xyXG4gICAgICAgICAgbW9kdWxlUmVmID0gY29tcGlsZWQubmdNb2R1bGVGYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcclxuICAgICAgICAgIHRoaXMubG9hZENvbXBvbmVudChtb2R1bGVSZWYpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9hZENvbXBvbmVudChudWxsKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlXHJcbiAgICAgIHRoaXMubG9hZENvbXBvbmVudChtb2R1bGVSZWYpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkQ29tcG9uZW50KG1vZHVsZVJlZjogTmdNb2R1bGVSZWY8YW55Pikge1xyXG4gICAgdGhpcy5QYXJhbWV0ZXJzLk1vZGFsQ29tcCA9IHRoaXMuY29tcG9uZW50TGlzdE1hZ2ljU2VydmljZS5nZXRDb21wb25lbnQodGhpcy5QYXJhbWV0ZXJzLk1hZ2ljRm9ybU5hbWUsICFpc051bGxPclVuZGVmaW5lZCh0aGlzLlBhcmFtZXRlcnMuTWFnaWNGb3JtTmFtZSkpO1xyXG5cclxuICAgIGxldCBmYWN0b3J5O1xyXG4gICAgaWYgKG1vZHVsZVJlZiAhPSBudWxsKVxyXG4gICAgICBmYWN0b3J5ID0gbW9kdWxlUmVmLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLkNvbXBvbmVudCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIGZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLkNvbXBvbmVudCk7XHJcblxyXG4gICAgbGV0IGNvbXBvbmVudFJlZiA9IHRoaXMub3ZlcmxheUNvbnRlbnRWaWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcclxuICAgIGxldCBhbGxvd2VkQmFzZUNvbXAgPSBNYWdpY092ZXJsYXlDb250YWluZXJXcmFwcGVyLmFsbG93ZWRCYXNlQ29tcHMuZ2V0KHRoaXMuT3ZlcmxheVR5cGVQYXJhbSk7XHJcblxyXG5cclxuICAgIGlmIChjb21wb25lbnRSZWYuaW5zdGFuY2UgaW5zdGFuY2VvZiBhbGxvd2VkQmFzZUNvbXAuY29tcCkge1xyXG4gICAgICBPYmplY3QuYXNzaWduKGNvbXBvbmVudFJlZi5pbnN0YW5jZSwgdGhpcy5QYXJhbWV0ZXJzKTtcclxuICAgICAgKDxhbnk+Y29tcG9uZW50UmVmLmluc3RhbmNlKS5vbkNsb3NlLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vbkNsb3NlLmVtaXQocmVzKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgbXNnID0gXCJQcm92aWRlZCAgd2luZG93IGNvbnRhaW5lciBzaG91bGQgc3ViY2xhc3Mgb2YgOiBcIiArIGFsbG93ZWRCYXNlQ29tcC5lcnJvciArIFwid2luZG93IHdpbGwgbm90IHdvcmsgcHJvcGVybHkuXCI7XHJcbiAgICAgIGFsZXJ0KG1zZyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRWaWV3Q29udGFpbmVyUmVmKHZjUmVmOiBWaWV3Q29udGFpbmVyUmVmKXtcclxuICAgIHRoaXMub3ZlcmxheUNvbnRlbnRWaWV3Q29udGFpbmVyUmVmID0gdmNSZWY7XHJcbiAgfVxyXG5cclxuICBHZXRSb290RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5Q29udGFpbmVyV3JhcHBlckVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIERldGVjdENoYW5nZXMoKVxyXG4gIHtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -9,7 +9,7 @@ const _c1 = ["modalForeground"];
9
9
  function MagicOverlayContainer_button_2_Template(rf, ctx) { if (rf & 1) {
10
10
  const _r5 = i0.ɵɵgetCurrentView();
11
11
  i0.ɵɵelementStart(0, "button", 8);
12
- i0.ɵɵlistener("click", function MagicOverlayContainer_button_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return ctx_r4.OnClose(); });
12
+ i0.ɵɵlistener("click", function MagicOverlayContainer_button_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.OnClose()); });
13
13
  i0.ɵɵtext(1, "X");
14
14
  i0.ɵɵelementEnd();
15
15
  } }
@@ -18,7 +18,7 @@ function MagicOverlayContainer_div_5_Template(rf, ctx) { if (rf & 1) {
18
18
  i0.ɵɵelementStart(0, "div", 9, 10);
19
19
  i0.ɵɵtext(2);
20
20
  i0.ɵɵelementStart(3, "button", 11);
21
- i0.ɵɵlistener("click", function MagicOverlayContainer_div_5_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return ctx_r7.OnClose(); });
21
+ i0.ɵɵlistener("click", function MagicOverlayContainer_div_5_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.OnClose()); });
22
22
  i0.ɵɵtext(4, "X");
23
23
  i0.ɵɵelementEnd()();
24
24
  } if (rf & 2) {
@@ -123,7 +123,7 @@ MagicOverlayContainer.ɵcmp = i0.ɵɵdefineComponent({ type: MagicOverlayContain
123
123
  i0.ɵɵproperty("ngIf", ctx.getShowTitleBar());
124
124
  i0.ɵɵadvance(1);
125
125
  i0.ɵɵproperty("ngStyle", ctx.getClientAreaStyles());
126
- } }, directives: [i1.NgIf, i1.NgStyle, i2.MagicViewContainerRef], styles: [".modal-foreground[_ngcontent-%COMP%]{position:fixed;inset:0;background-color:#fff}.modal-background[_ngcontent-%COMP%]{position:fixed;inset:0;background-color:#000;opacity:.75}.modal-header[_ngcontent-%COMP%]{background-color:beige;border-bottom:2px solid red}"] });
126
+ } }, dependencies: [i1.NgIf, i1.NgStyle, i2.MagicViewContainerRef], styles: [".modal-foreground[_ngcontent-%COMP%]{position:fixed;inset:0;background-color:#fff}.modal-background[_ngcontent-%COMP%]{position:fixed;inset:0;background-color:#000;opacity:.75}.modal-header[_ngcontent-%COMP%]{background-color:beige;border-bottom:2px solid red}"] });
127
127
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicOverlayContainer, [{
128
128
  type: Component,
129
129
  args: [{ selector: 'app-magic-overlay-container', template: `
@@ -156,4 +156,4 @@ MagicOverlayContainer.ɵcmp = i0.ɵɵdefineComponent({ type: MagicOverlayContain
156
156
  }], onClose: [{
157
157
  type: Output
158
158
  }] }); })();
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtb3ZlcmxheS1jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9tYWdpYy1tb2RhbC9tYWdpYy1vdmVybGF5LWNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULHdCQUF3QixFQUN4QixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7OztJQVduRSxpQ0FBbUs7SUFBM0oscUtBQVMsZ0JBQVMsSUFBQztJQUF3SSxpQkFBQztJQUFBLGlCQUFTOzs7O0lBRzdLLGtDQUFpRTtJQUMvRCxZQUNBO0lBQUEsa0NBQThEO0lBQXRELGtLQUFTLGdCQUFTLElBQUM7SUFBbUMsaUJBQUM7SUFBQSxpQkFBUyxFQUFBOzs7SUFEeEUsZUFDQTtJQURBLGlEQUNBOztBQVdWLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSx5QkFBeUI7SUFvQ2xFLFlBQ1Usd0JBQWtEO1FBQzFELEtBQUssRUFBRSxDQUFDO1FBREEsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQW5CbkQsY0FBUyxHQUFHLElBQUksQ0FBQztRQUlqQix3QkFBbUIsR0FBUSxFQUFFLENBQUM7UUFFN0IsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFLckMsaUJBQVksR0FBRyxJQUFJLENBQUM7SUFVNUIsQ0FBQztJQUtELFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxZ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RCxpQkFBaUI7UUFDZixJQUFJLElBQUksR0FBd0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUErQixDQUFDO1FBRWxGLElBQUksSUFBSSxDQUFDLDRCQUE0QixFQUFFO1lBQ3JDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDOzswRkExSVUscUJBQXFCOzBEQUFyQixxQkFBcUI7Ozs7Ozs7O1FBbEI5QiwyQkFBSyxhQUFBO1FBQzJCLCtGQUFTLHVCQUFtQixJQUFDO1FBQ3pELDRFQUE2SztRQUMvSyxpQkFBTTtRQUNOLGlDQUFzRTtRQUNwRSxzRUFHTTtRQUNOLDhCQUF1QztRQUNyQyw0QkFDTTtRQUNSLGlCQUFNLEVBQUEsRUFBQTs7UUFWbUksZUFBd0I7UUFBeEIsNkNBQXdCO1FBRXBILGVBQXNCO1FBQXRCLHdDQUFzQjtRQUMzQixlQUF1QjtRQUF2Qiw0Q0FBdUI7UUFJMUQsZUFBaUM7UUFBakMsbURBQWlDOzt1RkFTakMscUJBQXFCO2NBckJqQyxTQUFTOzJCQUNFLDZCQUE2QixZQUM3Qjs7Ozs7Ozs7Ozs7Ozs7OztHQWdCVDsyRUFZNEMsZ0JBQWdCO2tCQUE1RCxTQUFTO21CQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFJTSxvQkFBb0I7a0JBQXBFLFNBQVM7bUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBS3RDLFNBQVM7a0JBQWpCLEtBQUs7WUFJRyxtQkFBbUI7a0JBQTNCLEtBQUs7WUFFSSxPQUFPO2tCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWFnaWNNb2RhbEludGVyZmFjZSB9IGZyb20gJy4vbWFnaWMtbW9kYWwtaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAbWFnaWMteHBhL21zY29yZWxpYic7XHJcbmltcG9ydCB7IEJhc2VNYWdpY092ZXJsYXlDb250YWluZXIgfSBmcm9tICcuL2Jhc2UtbWFnaWMtb3ZlcmxheS1jb250YWluZXInO1xyXG5pbXBvcnQgeyBJTWFnaWNWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnLi4vLi4vLi4nO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBtb2RhbCB3aW5kb3cgZm9yIE1hZ2ljIG1vZGFsIHdpbmRvdyBjb21wb25lbnRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1tYWdpYy1vdmVybGF5LWNvbnRhaW5lcicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1iYWNrZ3JvdW5kXCIgKGNsaWNrKT1cIk9uQmFja2dyb3VuZENsaWNrKClcIj5cclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJPbkNsb3NlKClcIiB0YWJpbmRleD1cIi0xXCIgc3R5bGU9XCJmbG9hdDpyaWdodDsgYm9yZGVyOiBub25lOyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgb3V0bGluZTogbm9uZTsgY29sb3I6IHdoaXRlXCIgKm5nSWY9XCIhZ2V0U2hvd1RpdGxlQmFyKClcIj5YPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICNtb2RhbEZvcmVncm91bmQgY2xhc3M9XCJtb2RhbC1mb3JlZ3JvdW5kXCIgW25nU3R5bGVdPVwiZ2V0U3R5bGUoKVwiPlxyXG4gICAgICAgIDxkaXYgI21vZGFsaGVhZGVyIGNsYXNzPVwibW9kYWwtaGVhZGVyXCIgKm5nSWY9XCJnZXRTaG93VGl0bGVCYXIoKVwiPlxyXG4gICAgICAgICAge3tnZXRUZXh0KCl9fVxyXG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiT25DbG9zZSgpXCIgc3R5bGU9XCJmbG9hdDpyaWdodFwiIHRhYmluZGV4PVwiLTFcIj5YPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJnZXRDbGllbnRBcmVhU3R5bGVzKClcIj5cclxuICAgICAgICAgIDxkaXYgI21vZGFsYm9keSBtYWdpY1ZpZXdDb250YWluZXJSZWY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHN0eWxlVXJsczogWycuL21hZ2ljLW92ZXJsYXktY29udGFpbmVyLmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYWdpY092ZXJsYXlDb250YWluZXIgZXh0ZW5kcyBCYXNlTWFnaWNPdmVybGF5Q29udGFpbmVyIGltcGxlbWVudHMgT25Jbml0ICwgSU1hZ2ljVmlld0NvbnRhaW5lclJlZntcclxuICAvKipcclxuICAgKiBIVE1MIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgbW9kYWwgd2luZG93XHJcbiAgICovXHJcbiAgbW9kYWxib2R5Vmlld0NvbnRhaW5lclJlZiA6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gIC8qKlxyXG4gICAqIEhlYWRlciBvZiB0aGUgbW9kYWwgd2luZG93XHJcbiAgICovXHJcbiAgQFZpZXdDaGlsZCgnbW9kYWxoZWFkZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgaGVhZGVyRWxlbWVudFJlZjogRWxlbWVudFJlZjtcclxuICAvKipcclxuICAgKiBGb3JlZ3JvdW5kIG9mIHRoZSBtb2RhbCB3aW5kb3dcclxuICAgKi9cclxuICBAVmlld0NoaWxkKCdtb2RhbEZvcmVncm91bmQnLCB7IHN0YXRpYzogZmFsc2UgfSkgZm9yZWdyb3VuZEVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgQElucHV0KCkgTW9kYWxDb21wID0gbnVsbDtcclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIE1vZGFsQ29tcFBhcmFtZXRlcnM6IGFueSA9IHt9O1xyXG5cclxuICBAT3V0cHV0KCkgb25DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBwcml2YXRlIGNvbXBvbmVudFJlZiA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGluamVjdG9yXHJcbiAgICogQHBhcmFtIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5Nb2RhbENvbXApO1xyXG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLm1vZGFsYm9keVZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSwgdGhpcy5Nb2RhbENvbXBQYXJhbWV0ZXJzKTtcclxuICB9XHJcblxyXG5cclxuICBzZXRWaWV3Q29udGFpbmVyUmVmKHZjUmVmOiBWaWV3Q29udGFpbmVyUmVmKXtcclxuICAgIHRoaXMubW9kYWxib2R5Vmlld0NvbnRhaW5lclJlZiA9IHZjUmVmO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGZvcm0gbmFtZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgZ2V0VGV4dCgpIHtcclxuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPT0gbnVsbCkge1xyXG4gICAgICBsZXQgY29tcDogTWFnaWNNb2RhbEludGVyZmFjZSA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIE1hZ2ljTW9kYWxJbnRlcmZhY2U7XHJcbiAgICAgIHJldHVybiBjb21wLkZvcm1OYW1lKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgQ1NTIHN0eWxlcyBmb3IgdGhlIHdpbmRvd1xyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgZ2V0U3R5bGUoKSB7XHJcbiAgICBsZXQgc3R5bGVzID0ge307XHJcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGxldCBjb21wOiBNYWdpY01vZGFsSW50ZXJmYWNlID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgTWFnaWNNb2RhbEludGVyZmFjZTtcclxuXHJcbiAgICAgIHN0eWxlc1snd2lkdGgnXSA9IGNvbXAuV2lkdGgoKTtcclxuICAgICAgc3R5bGVzWydoZWlnaHQnXSA9IGNvbXAuSGVpZ2h0KCk7XHJcblxyXG4gICAgICBpZiAoY29tcC5Jc0NlbnRlcmVkVG9XaW5kb3coKSkge1xyXG4gICAgICAgIHN0eWxlc1snbWFyZ2luJ10gPSAnYXV0byc7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgc3R5bGVzWydtYXJnaW4tbGVmdCddID0gY29tcC5YKCkgKyAncHgnO1xyXG4gICAgICAgIHN0eWxlc1snbWFyZ2luLXRvcCddID0gY29tcC5ZKCkgKyAncHgnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3R5bGVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgQ1NTIHN0eWxlcyBmb3IgdGhlIGNsaWVudCBhcmVhXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXRDbGllbnRBcmVhU3R5bGVzKCkge1xyXG4gICAgbGV0IHN0eWxlcyA9IHt9O1xyXG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb25zdCBoZWFkZXJIZWlnaHQgPSB0aGlzLmdldFNob3dUaXRsZUJhcigpICYmICFpc051bGxPclVuZGVmaW5lZCh0aGlzLmhlYWRlckVsZW1lbnRSZWYpID8gKHRoaXMuaGVhZGVyRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCArIDEpIDogMDtcclxuICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZCh0aGlzLmZvcmVncm91bmRFbGVtZW50UmVmKSkge1xyXG4gICAgICAgIGNvbnN0IGZvcmVncm91bmRIZWlnaHQgPSB0aGlzLmZvcmVncm91bmRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICAgIHN0eWxlc1snaGVpZ2h0J10gPSAoZm9yZWdyb3VuZEhlaWdodCAtIGhlYWRlckhlaWdodCkgKyAncHgnO1xyXG5cclxuICAgICAgICBjb25zdCBmb3JlZ3JvdW5kV2lkdGggPSB0aGlzLmZvcmVncm91bmRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgc3R5bGVzWyd3aWR0aCddID0gKGZvcmVncm91bmRXaWR0aCkgKyAncHgnO1xyXG4gICAgICB9XHJcbiAgICAgIHN0eWxlc1snb3ZlcmZsb3cnXSA9ICdhdXRvJztcclxuICAgIH1cclxuICAgIHJldHVybiBzdHlsZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaG91bGQgdGhlIHRpdGxlIGJhciBiZSBkaXNwbGF5ZWRcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGdldFNob3dUaXRsZUJhcigpIHtcclxuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgbGV0IGNvbXA6IE1hZ2ljTW9kYWxJbnRlcmZhY2UgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBNYWdpY01vZGFsSW50ZXJmYWNlO1xyXG4gICAgICByZXR1cm4gY29tcC5TaG93VGl0bGVCYXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgT25DbG9zZSgpIHtcclxuICAgIHRoaXMub25DbG9zZS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGNsaWNrIGluIHRoZSBiYWNrZ3JvdW5kIHdpbmRvd1xyXG4gICAqL1xyXG4gIE9uQmFja2dyb3VuZENsaWNrKCkge1xyXG4gICAgbGV0IGNvbXA6IE1hZ2ljTW9kYWxJbnRlcmZhY2UgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBNYWdpY01vZGFsSW50ZXJmYWNlO1xyXG5cclxuICAgIGlmIChjb21wLlNob3VsZENsb3NlT25CYWNrZ3JvdW5kQ2xpY2soKSlcclxuICAgICAgdGhpcy5PbkNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtb3ZlcmxheS1jb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9tYWdpYy1tb2RhbC9tYWdpYy1vdmVybGF5LWNvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULHdCQUF3QixFQUN4QixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7OztJQVduRSxpQ0FBbUs7SUFBM0oscUtBQVMsZUFBQSxnQkFBUyxDQUFBLElBQUM7SUFBd0ksaUJBQUM7SUFBQSxpQkFBUzs7OztJQUc3SyxrQ0FBaUU7SUFDL0QsWUFDQTtJQUFBLGtDQUE4RDtJQUF0RCxrS0FBUyxlQUFBLGdCQUFTLENBQUEsSUFBQztJQUFtQyxpQkFBQztJQUFBLGlCQUFTLEVBQUE7OztJQUR4RSxlQUNBO0lBREEsaURBQ0E7O0FBV1YsTUFBTSxPQUFPLHFCQUFzQixTQUFRLHlCQUF5QjtJQW9DbEUsWUFDVSx3QkFBa0Q7UUFDMUQsS0FBSyxFQUFFLENBQUM7UUFEQSw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBbkJuRCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBSWpCLHdCQUFtQixHQUFRLEVBQUUsQ0FBQztRQUU3QixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUtyQyxpQkFBWSxHQUFHLElBQUksQ0FBQztJQVU1QixDQUFDO0lBS0QsUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENB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LENBQUM7SUFDdEIsQ0FBQztJQUtELGlCQUFpQjtRQUNmLElBQUksSUFBSSxHQUF3QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQStCLENBQUM7UUFFbEYsSUFBSSxJQUFJLENBQUMsNEJBQTRCLEVBQUU7WUFDckMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7OzBGQTFJVSxxQkFBcUI7MERBQXJCLHFCQUFxQjs7Ozs7Ozs7UUFsQjlCLDJCQUFLLGFBQUE7UUFDMkIsK0ZBQVMsdUJBQW1CLElBQUM7UUFDekQsNEVBQTZLO1FBQy9LLGlCQUFNO1FBQ04saUNBQXNFO1FBQ3BFLHNFQUdNO1FBQ04sOEJBQXVDO1FBQ3JDLDRCQUNNO1FBQ1IsaUJBQU0sRUFBQSxFQUFBOztRQVZtSSxlQUF3QjtRQUF4Qiw2Q0FBd0I7UUFFcEgsZUFBc0I7UUFBdEIsd0NBQXNCO1FBQzNCLGVBQXVCO1FBQXZCLDRDQUF1QjtRQUkxRCxlQUFpQztRQUFqQyxtREFBaUM7O3VGQVNqQyxxQkFBcUI7Y0FyQmpDLFNBQVM7MkJBQ0UsNkJBQTZCLFlBQzdCOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JUOzJFQVk0QyxnQkFBZ0I7a0JBQTVELFNBQVM7bUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUlNLG9CQUFvQjtrQkFBcEUsU0FBUzttQkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFLdEMsU0FBUztrQkFBakIsS0FBSztZQUlHLG1CQUFtQjtrQkFBM0IsS0FBSztZQUVJLE9BQU87a0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYWdpY01vZGFsSW50ZXJmYWNlIH0gZnJvbSAnLi9tYWdpYy1tb2RhbC1pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcclxuaW1wb3J0IHsgQmFzZU1hZ2ljT3ZlcmxheUNvbnRhaW5lciB9IGZyb20gJy4vYmFzZS1tYWdpYy1vdmVybGF5LWNvbnRhaW5lcic7XHJcbmltcG9ydCB7IElNYWdpY1ZpZXdDb250YWluZXJSZWYgfSBmcm9tICcuLi8uLi8uLic7XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIG1vZGFsIHdpbmRvdyBmb3IgTWFnaWMgbW9kYWwgd2luZG93IGNvbXBvbmVudHNcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLW1hZ2ljLW92ZXJsYXktY29udGFpbmVyJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJhY2tncm91bmRcIiAoY2xpY2spPVwiT25CYWNrZ3JvdW5kQ2xpY2soKVwiPlxyXG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cIk9uQ2xvc2UoKVwiIHRhYmluZGV4PVwiLTFcIiBzdHlsZT1cImZsb2F0OnJpZ2h0OyBib3JkZXI6IG5vbmU7IGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyBvdXRsaW5lOiBub25lOyBjb2xvcjogd2hpdGVcIiAqbmdJZj1cIiFnZXRTaG93VGl0bGVCYXIoKVwiPlg8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgI21vZGFsRm9yZWdyb3VuZCBjbGFzcz1cIm1vZGFsLWZvcmVncm91bmRcIiBbbmdTdHlsZV09XCJnZXRTdHlsZSgpXCI+XHJcbiAgICAgICAgPGRpdiAjbW9kYWxoZWFkZXIgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIiAqbmdJZj1cImdldFNob3dUaXRsZUJhcigpXCI+XHJcbiAgICAgICAgICB7e2dldFRleHQoKX19XHJcbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJPbkNsb3NlKClcIiBzdHlsZT1cImZsb2F0OnJpZ2h0XCIgdGFiaW5kZXg9XCItMVwiPlg8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cImdldENsaWVudEFyZWFTdHlsZXMoKVwiPlxyXG4gICAgICAgICAgPGRpdiAjbW9kYWxib2R5IG1hZ2ljVmlld0NvbnRhaW5lclJlZj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbWFnaWMtb3ZlcmxheS1jb250YWluZXIuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hZ2ljT3ZlcmxheUNvbnRhaW5lciBleHRlbmRzIEJhc2VNYWdpY092ZXJsYXlDb250YWluZXIgaW1wbGVtZW50cyBPbkluaXQgLCBJTWFnaWNWaWV3Q29udGFpbmVyUmVme1xyXG4gIC8qKlxyXG4gICAqIEhUTUwgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBtb2RhbCB3aW5kb3dcclxuICAgKi9cclxuICBtb2RhbGJvZHlWaWV3Q29udGFpbmVyUmVmIDogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgLyoqXHJcbiAgICogSGVhZGVyIG9mIHRoZSBtb2RhbCB3aW5kb3dcclxuICAgKi9cclxuICBAVmlld0NoaWxkKCdtb2RhbGhlYWRlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBoZWFkZXJFbGVtZW50UmVmOiBFbGVtZW50UmVmO1xyXG4gIC8qKlxyXG4gICAqIEZvcmVncm91bmQgb2YgdGhlIG1vZGFsIHdpbmRvd1xyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoJ21vZGFsRm9yZWdyb3VuZCcsIHsgc3RhdGljOiBmYWxzZSB9KSBmb3JlZ3JvdW5kRWxlbWVudFJlZjogRWxlbWVudFJlZjtcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBASW5wdXQoKSBNb2RhbENvbXAgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqXHJcbiAgICovXHJcbiAgQElucHV0KCkgTW9kYWxDb21wUGFyYW1ldGVyczogYW55ID0ge307XHJcblxyXG4gIEBPdXRwdXQoKSBvbkNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqL1xyXG4gIHByaXZhdGUgY29tcG9uZW50UmVmID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaW5qZWN0b3JcclxuICAgKiBAcGFyYW0gY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLk1vZGFsQ29tcCk7XHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMubW9kYWxib2R5Vmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLCB0aGlzLk1vZGFsQ29tcFBhcmFtZXRlcnMpO1xyXG4gIH1cclxuXHJcblxyXG4gIHNldFZpZXdDb250YWluZXJSZWYodmNSZWY6IFZpZXdDb250YWluZXJSZWYpe1xyXG4gICAgdGhpcy5tb2RhbGJvZHlWaWV3Q29udGFpbmVyUmVmID0gdmNSZWY7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgZm9ybSBuYW1lXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXRUZXh0KCkge1xyXG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9PSBudWxsKSB7XHJcbiAgICAgIGxldCBjb21wOiBNYWdpY01vZGFsSW50ZXJmYWNlID0gdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UgYXMgTWFnaWNNb2RhbEludGVyZmFjZTtcclxuICAgICAgcmV0dXJuIGNvbXAuRm9ybU5hbWUoKTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBDU1Mgc3R5bGVzIGZvciB0aGUgd2luZG93XHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXRTdHlsZSgpIHtcclxuICAgIGxldCBzdHlsZXMgPSB7fTtcclxuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgbGV0IGNvbXA6IE1hZ2ljTW9kYWxJbnRlcmZhY2UgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBNYWdpY01vZGFsSW50ZXJmYWNlO1xyXG5cclxuICAgICAgc3R5bGVzWyd3aWR0aCddID0gY29tcC5XaWR0aCgpO1xyXG4gICAgICBzdHlsZXNbJ2hlaWdodCddID0gY29tcC5IZWlnaHQoKTtcclxuXHJcbiAgICAgIGlmIChjb21wLklzQ2VudGVyZWRUb1dpbmRvdygpKSB7XHJcbiAgICAgICAgc3R5bGVzWydtYXJnaW4nXSA9ICdhdXRvJztcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBzdHlsZXNbJ21hcmdpbi1sZWZ0J10gPSBjb21wLlgoKSArICdweCc7XHJcbiAgICAgICAgc3R5bGVzWydtYXJnaW4tdG9wJ10gPSBjb21wLlkoKSArICdweCc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBzdHlsZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBDU1Mgc3R5bGVzIGZvciB0aGUgY2xpZW50IGFyZWFcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGdldENsaWVudEFyZWFTdHlsZXMoKSB7XHJcbiAgICBsZXQgc3R5bGVzID0ge307XHJcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IGhlYWRlckhlaWdodCA9IHRoaXMuZ2V0U2hvd1RpdGxlQmFyKCkgJiYgIWlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuaGVhZGVyRWxlbWVudFJlZikgPyAodGhpcy5oZWFkZXJFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgMSkgOiAwO1xyXG4gICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuZm9yZWdyb3VuZEVsZW1lbnRSZWYpKSB7XHJcbiAgICAgICAgY29uc3QgZm9yZWdyb3VuZEhlaWdodCA9IHRoaXMuZm9yZWdyb3VuZEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgc3R5bGVzWydoZWlnaHQnXSA9IChmb3JlZ3JvdW5kSGVpZ2h0IC0gaGVhZGVySGVpZ2h0KSArICdweCc7XHJcblxyXG4gICAgICAgIGNvbnN0IGZvcmVncm91bmRXaWR0aCA9IHRoaXMuZm9yZWdyb3VuZEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgICAgICBzdHlsZXNbJ3dpZHRoJ10gPSAoZm9yZWdyb3VuZFdpZHRoKSArICdweCc7XHJcbiAgICAgIH1cclxuICAgICAgc3R5bGVzWydvdmVyZmxvdyddID0gJ2F1dG8nO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0eWxlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3VsZCB0aGUgdGl0bGUgYmFyIGJlIGRpc3BsYXllZFxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgZ2V0U2hvd1RpdGxlQmFyKCkge1xyXG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICBsZXQgY29tcDogTWFnaWNNb2RhbEludGVyZmFjZSA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIE1hZ2ljTW9kYWxJbnRlcmZhY2U7XHJcbiAgICAgIHJldHVybiBjb21wLlNob3dUaXRsZUJhcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKi9cclxuICBPbkNsb3NlKCkge1xyXG4gICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgY2xpY2sgaW4gdGhlIGJhY2tncm91bmQgd2luZG93XHJcbiAgICovXHJcbiAgT25CYWNrZ3JvdW5kQ2xpY2soKSB7XHJcbiAgICBsZXQgY29tcDogTWFnaWNNb2RhbEludGVyZmFjZSA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIE1hZ2ljTW9kYWxJbnRlcmZhY2U7XHJcblxyXG4gICAgaWYgKGNvbXAuU2hvdWxkQ2xvc2VPbkJhY2tncm91bmRDbGljaygpKVxyXG4gICAgICB0aGlzLk9uQ2xvc2UoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -163,13 +163,10 @@ MagicShellComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MagicShellComponent,
163
163
  i0.ɵɵproperty("ngIf", ctx.RootComponent !== null);
164
164
  i0.ɵɵadvance(3);
165
165
  i0.ɵɵproperty("ngIf", ctx.showSpinner);
166
- } }, directives: [i8.NgIf, i9.DynamicComponent, i9.DynamicIoDirective, i10.MagicViewContainerRef, i8.NgTemplateOutlet], styles: [".mgSpinnerClass[_ngcontent-%COMP%]{border:10px solid #cccccc;border-top:10px solid black;border-radius:50%;position:fixed;margin:auto;inset:0;width:100px;height:100px;animation:spin 2s linear infinite}.spinner-background[_ngcontent-%COMP%]{position:fixed;z-index:1000;inset:0;opacity:.5}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"] });
166
+ } }, dependencies: [i8.NgIf, i8.NgTemplateOutlet, i9.DynamicComponent, i9.DynamicIoDirective, i10.MagicViewContainerRef], styles: [".mgSpinnerClass[_ngcontent-%COMP%]{border:10px solid #cccccc;border-top:10px solid black;border-radius:50%;position:fixed;margin:auto;inset:0;width:100px;height:100px;animation:_ngcontent-%COMP%_spin 2s linear infinite}.spinner-background[_ngcontent-%COMP%]{position:fixed;z-index:1000;inset:0;opacity:.5}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"] });
167
167
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicShellComponent, [{
168
168
  type: Component,
169
- args: [{
170
- selector: 'magic-root',
171
- providers: [],
172
- template: `
169
+ args: [{ selector: 'magic-root', providers: [], template: `
173
170
  <div #magicRoot>
174
171
  <ndc-dynamic
175
172
  *ngIf = "RootComponent !== null"
@@ -188,38 +185,7 @@ MagicShellComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MagicShellComponent,
188
185
  <ng-template #defaultSpinner>
189
186
  <div class="mgSpinnerClass"></div>
190
187
  </ng-template>
191
- `,
192
- styles: [`
193
- .mgSpinnerClass {
194
- border: 10px solid #cccccc; /* Light grey */
195
- border-top: 10px solid black; /* Blue */
196
- border-radius: 50%;
197
- position: fixed;
198
- margin: auto;
199
- top: 0;
200
- right: 0;
201
- bottom: 0;
202
- left: 0;
203
- width: 100px;
204
- height: 100px;
205
- animation: spin 2s linear infinite;
206
- }
207
- .spinner-background {
208
- /* background fixed across whole screen */
209
- position: fixed;
210
- top: 0;
211
- right: 0;
212
- bottom: 0;
213
- z-index: 1000;
214
- left: 0;
215
- opacity: 0.5;
216
- }
217
- @keyframes spin {
218
- 0% { transform: rotate(0deg); }
219
- 100% { transform: rotate(360deg); }
220
- }
221
- `]
222
- }]
188
+ `, styles: [".mgSpinnerClass{border:10px solid #cccccc;border-top:10px solid black;border-radius:50%;position:fixed;margin:auto;inset:0;width:100px;height:100px;animation:spin 2s linear infinite}.spinner-background{position:fixed;z-index:1000;inset:0;opacity:.5}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
223
189
  }], function () { return [{ type: i1.EngineMagicService }, { type: i2.ComponentListMagicService }, { type: i0.ChangeDetectorRef }, { type: i3.Title }, { type: i4.OverlayWindowService }, { type: i5.HttpClient }, { type: i6.CommandsCollectorMagicService }, { type: i7.ExitMagicService, decorators: [{
224
190
  type: Optional
225
191
  }] }]; }, { rootMagicElementRef: [{
@@ -234,4 +200,4 @@ MagicShellComponent.ɵcmp = i0.ɵɵdefineComponent({ type: MagicShellComponent,
234
200
  type: HostListener,
235
201
  args: ['window:unload', ['$event']]
236
202
  }] }); })();
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtcm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9tYWdpYy1yb290LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV4RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM3RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0lBWTVDLGlDQUljOzs7SUFGWiwwREFBcUMsb0RBQUE7OztJQVF6Qyw4QkFBb0Q7SUFDbEQsMkJBQW1HO0lBQ3JHLGlCQUFNOzs7O0lBRFUsZUFBcUU7SUFBckUsd0ZBQXFFOzs7SUFJbkYseUJBQWtDOztBQWtDeEMsTUFBTSxPQUFPLG1CQUFtQjtJQTRCOUIsWUFBc0Isa0JBQXNDLEVBQ3RDLGFB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Ozs7Ozs7O0dBbUJUO2dCQUNELE1BQU0sRUFBRSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCUixDQUFDO2FBQ0g7O3NCQW9DYyxRQUFRO3dCQXZCcUIsbUJBQW1CO2tCQUE1RCxTQUFTO21CQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFFL0IsZUFBZTtrQkFBdkIsS0FBSztZQWdDTixjQUFjO2tCQURiLFlBQVk7bUJBQUMscUJBQXFCLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFpQi9DLFFBQVE7a0JBRFAsWUFBWTttQkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1hbmRUeXBlLCBHdWlDb21tYW5kIH0gZnJvbSAnQG1hZ2ljLXhwYS9ndWknO1xyXG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBFbmdpbmVNYWdpY1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9lbmdpbmUubWFnaWMuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudExpc3RNYWdpY1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb21wb25lbnQtbGlzdC5tYWdpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR3VpSW50ZXJhY3RpdmVFeGVjdXRvciB9IGZyb20gJy4vR3VpSW50ZXJhY3RpdmVFeGVjdXRvcic7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRXhpdE1hZ2ljU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2V4aXQubWFnaWMuc2VydmljZSc7XHJcbmltcG9ydCB7IE92ZXJsYXlXaW5kb3dTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvT3ZlcmxheVdpbmRvd1NlcnZpY2UnO1xyXG5pbXBvcnQgeyBJTWFnaWNWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnLi4vLi4nO1xyXG5pbXBvcnQgeyBDb21tYW5kc0NvbGxlY3Rvck1hZ2ljU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbW1hbmRzLWNvbGxlY3Rvci5tYWdpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbi8qKlxyXG4gKiBSb290IE1hZ2ljIGNvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYWdpYy1yb290JyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgLy8gRXhpdE1hZ2ljU2VydmljZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgI21hZ2ljUm9vdD5cclxuICAgICAgPG5kYy1keW5hbWljXHJcbiAgICAgICAgKm5nSWYgPSBcIlJvb3RDb21wb25lbnQgIT09IG51bGxcIlxyXG4gICAgICAgIFtuZGNEeW5hbWljQ29tcG9uZW50XT1cIlJvb3RDb21wb25lbnRcIlxyXG4gICAgICAgIFtuZGNEeW5hbWljSW5wdXRzXSAgID1cIlJvb3RDb21wb25lbnRQYXJhbWV0ZXJzXCI+XHJcbiAgICAgIDwvbmRjLWR5bmFtaWM+XHJcblxyXG4gICAgICA8ZGl2ICNvdmVybGF5V2luZG93c0NvbnRhaW5lciBtYWdpY1ZpZXdDb250YWluZXJSZWY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInNwaW5uZXItYmFja2dyb3VuZFwiICpuZ0lmPVwic2hvd1NwaW5uZXJcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJTcGlubmVyVGVtcGxhdGUgPyBTcGlubmVyVGVtcGxhdGU6ZGVmYXVsdFNwaW5uZXJcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFNwaW5uZXI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZ1NwaW5uZXJDbGFzc1wiPjwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICBgLFxyXG4gIHN0eWxlczogW2BcclxuICAgIC5tZ1NwaW5uZXJDbGFzcyB7XHJcbiAgICAgIGJvcmRlcjogMTBweCBzb2xpZCAjY2NjY2NjOyAvKiBMaWdodCBncmV5ICovXHJcbiAgICAgIGJvcmRlci10b3A6IDEwcHggc29saWQgYmxhY2s7IC8qIEJsdWUgKi9cclxuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgIG1hcmdpbjogYXV0bztcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICB3aWR0aDogMTAwcHg7XHJcbiAgICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICAgIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgICB9XHJcbiAgICAuc3Bpbm5lci1iYWNrZ3JvdW5kIHtcclxuICAgICAgLyogYmFja2dyb3VuZCBmaXhlZCBhY3Jvc3Mgd2hvbGUgc2NyZWVuICovXHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgdG9wOiAwO1xyXG4gICAgICByaWdodDogMDtcclxuICAgICAgYm90dG9tOiAwO1xyXG4gICAgICB6LWluZGV4OiAxMDAwO1xyXG4gICAgICBsZWZ0OiAwO1xyXG4gICAgICBvcGFjaXR5OiAwLjU7XHJcbiAgICB9XHJcbiAgICBAa2V5ZnJhbWVzIHNwaW4ge1xyXG4gICAgICAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XHJcbiAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XHJcbiAgICB9XHJcbiAgYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hZ2ljU2hlbGxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBJTWFnaWNWaWV3Q29udGFpbmVyUmVmIHtcclxuICAvKipcclxuICAgKiBSb290IGNvbXBvbmVudCB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHdpbmRvd1xyXG4gICAqL1xyXG4gIFJvb3RDb21wb25lbnQgOiBDb21wb25lbnQgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIHBhcmFtZXRlcnMgZm9yIHRoZSBSb290IENvbXBvbmVudFxyXG4gICAqL1xyXG4gIFJvb3RDb21wb25lbnRQYXJhbWV0ZXJzIDogYW55O1xyXG5cclxuICBvdmVybGF5V2luZG93c0NvbnRhaW5lclZpZXdSZWY6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ21hZ2ljUm9vdCcsIHsgc3RhdGljOiB0cnVlIH0pIHJvb3RNYWdpY0VsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBJbnB1dCgpIFNwaW5uZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgc2hvd1NwaW5uZXI6IGJvb2xlYW47XHJcbiAgbWFnaWNFbmdpbmVUZXJtaW5hdGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG1hZ2ljIE1hZ2ljJ3Mgc2VydmljZVxyXG4gICAqIEBwYXJhbSBjb21wb25lbnRMaXN0IE1hZ2ljIGNvbXBvbmVudCBsaXN0XHJcbiAgICogQHBhcmFtIGNoYW5nZURldGVjdG9yUmVmIENoYW5nZXMgZGV0ZWN0b3JcclxuICAgKiBAcGFyYW0gdGl0bGVTZXJ2aWNlIFRpdGxlIHNldHRpbmcgc2VydmljZVxyXG4gICAqIEBwYXJhbSBodHRwQ2xpZW50IFRoZSBuYXRpdmUgaHR0cENsaWVudCBpbnN0YW5jZVxyXG4gICAqIEBwYXJhbSBleGl0TWFnaWNTZXJ2aWNlIE1hZ2ljIGV4aXQgc2VydmljZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlbmdpbmVNYWdpY1NlcnZpY2U6IEVuZ2luZU1hZ2ljU2VydmljZSxcclxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgY29tcG9uZW50TGlzdDpDb21wb25lbnRMaXN0TWFnaWNTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0aXRsZVNlcnZpY2U6IFRpdGxlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgb3ZlcmxheVdpbmRvd1NlcnZpY2U6IE92ZXJsYXlXaW5kb3dTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgICAgICAgICAgICBwcml2YXRlIHBlbmRpbmdDb21tYW5kc0NvbGxlY3RvcjogQ29tbWFuZHNDb2xsZWN0b3JNYWdpY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgIHB1YmxpYyBleGl0TWFnaWNTZXJ2aWNlOiBFeGl0TWFnaWNTZXJ2aWNlKSB7XHJcblxyXG4gICAgdGhpcy5pbml0aWFsaXplKCk7XHJcbiAgICB0aGlzLnNldFRpdGxlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCZWZvcmUtdW5sb2FkIGV2ZW50IGxpc3RlbmVyXHJcbiAgICogQHBhcmFtIGV2ZW50XHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmJlZm9yZXVubG9hZCcsIFsnJGV2ZW50J10pXHJcbiAgb25CZWZvcmVVbmxvYWQoZXZlbnQpIHtcclxuICAgIGlmKHRoaXMuZW5naW5lTWFnaWNTZXJ2aWNlLlRyYW5zQ2FjaGVFeGlzdHMoKSlcclxuICAgIHtcclxuICAgICAgLy8gU2hvdyB0aGUgY29uZmlybWF0aW9uIGJveCBiZWZvcmUgdW5sb2FkaW5nIHRoZSBicm93c2VyXHJcbiAgICAgIGV2ZW50LnJldHVyblZhbHVlID0gJ0FyZSB5b3Ugc3VyZT8nO1xyXG4gICAgICByZXR1cm4gJ0FyZSB5b3Ugc3VyZT8nO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAge1xyXG4gICAgICAvLyB0ZXJtaW5hdGUgdGhlIG1hZ2ljIHNlcnZlciBjb250ZXh0IHVzaW5nIGZldGNoIEFQSSB3aXRoIGtlZXAtYWxpdmVcclxuICAgICAgdGhpcy5lbmdpbmVNYWdpY1NlcnZpY2UuVGVybWluYXRlQ29udGV4dFVzaW5nRmV0Y2hBUEkoKTtcclxuICAgICAgdGhpcy5tYWdpY0VuZ2luZVRlcm1pbmF0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnVubG9hZCcsIFsnJGV2ZW50J10pXHJcbiAgb25VbmxvYWQoZXZlbnQpIHtcclxuICAgIC8vIENocm9tZSBwcm92aWRlcyBhbiBvcHBvcnR1bml0eSB0byB0ZXJtaW5hdGUgdGhlIGNvbnRleHQgYWZ0ZXIgdXNlciBhcHByb3ZlcyB0aGUgYnJvd3NlciB1bmxvYWQgYWxlcnRcclxuICAgIGlmKCF0aGlzLm1hZ2ljRW5naW5lVGVybWluYXRlZClcclxuICAgICAgdGhpcy5lbmdpbmVNYWdpY1NlcnZpY2UuVGVybWluYXRlQ29udGV4dFVzaW5nRmV0Y2hBUEkoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMub3ZlcmxheVdpbmRvd1NlcnZpY2UuaW5pdCh0aGlzLm92ZXJsYXlXaW5kb3dzQ29udGFpbmVyVmlld1JlZiwgdGhpcy5yb290TWFnaWNFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5lbmdpbmVNYWdpY1NlcnZpY2Uuc3RhcnRNYWdpY0VuZ2luZSh0aGlzLmh0dHBDbGllbnQpO1xyXG4gIH1cclxuXHJcbiAgc2V0Vmlld0NvbnRhaW5lclJlZih2Y1JlZjogVmlld0NvbnRhaW5lclJlZil7XHJcbiAgICB0aGlzLm92ZXJsYXlXaW5kb3dzQ29udGFpbmVyVmlld1JlZiA9IHZjUmVmO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6YXRpb24gb2YgTWFnaWMgbWVjaGFuaXNtc1xyXG4gICAqL1xyXG4gIGluaXRpYWxpemUoKSB7XHJcbiAgICB0aGlzLnJlZ2lzdGVyVUlDb21tYW5kcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSB0aXRsZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRUaXRsZSggKSB7XHJcbiAgICBjb25zdCBuZXdUaXRsZTogc3RyaW5nID0gdGhpcy5jb21wb25lbnRMaXN0LnRpdGxlO1xyXG4gICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUoIG5ld1RpdGxlICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgdGhlIGNvbXBvbmVudCBhY2NvcmRpbmcgdG8gcmVxdWVzdGVkIGZvcm1cclxuICAgKiBAcGFyYW0gZm9ybU5hbWUgTmFtZSBvZiB0aGUgZm9ybSB0byBvcGVuXHJcbiAgICogQHBhcmFtIHRhc2tJZCBJZCBvZiBvcGVuaW5nIHRhc2tcclxuICAgKiBAcGFyYW0gdGFza0Rlc2NyaXB0aW9uIFRPRE9cclxuICAgKiBAcGFyYW0gaXNNb2RhbCB3aGV0aGVyIG1vZGFsIHdpbmRvdyBpcyBiZWluZyBvcGVuZWRcclxuICAgKi9cclxuICBwcml2YXRlIHNldENvbXBvbmVudChmb3JtTmFtZTogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZywgdGFza0Rlc2NyaXB0aW9uOiBzdHJpbmcsIGlzTW9kYWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMucGVuZGluZ0NvbW1hbmRzQ29sbGVjdG9yLnN0YXJ0Q29sbGVjdGluZygpO1xyXG5cclxuICAgIGlmKGlzTW9kYWwpIHtcclxuICAgICAgdGhpcy5vdmVybGF5V2luZG93U2VydmljZS5vcGVuKGZvcm1OYW1lLCB0YXNrSWQsIHRhc2tEZXNjcmlwdGlvbik7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5Sb290Q29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRMaXN0LmdldENvbXBvbmVudChmb3JtTmFtZSk7XHJcbiAgICAgIHRoaXMuUm9vdENvbXBvbmVudFBhcmFtZXRlcnMgPSB7IHRhc2tJZFBhcmFtOiB0YXNrSWQsIHRhc2tEZXNjcmlwdGlvbjogdGFza0Rlc2NyaXB0aW9uIH07XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICByZWdpc3RlclVJQ29tbWFuZHMoKSB7XHJcbiAgICB0aGlzLmVuZ2luZU1hZ2ljU2VydmljZS5yZWZyZXNoRG9tLnBpcGUoXHJcbiAgICAgIGZpbHRlcihjb21tYW5kID0+IGNvbW1hbmQuVGFza1RhZyA9PT0gJzAnKSlcclxuICAgICAgLnN1YnNjcmliZShjb21tYW5kID0+IHtcclxuICAgICAgICB0aGlzLmV4ZWN1dGVDb21tYW5kKGNvbW1hbmQpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZW5naW5lTWFnaWNTZXJ2aWNlXHJcbiAgICAgIC5pbnRlcmFjdGl2ZUNvbW1hbmRzLnBpcGUoXHJcbiAgICAgIGZpbHRlcihjb21tYW5kID0+IGNvbW1hbmQuVGFza1RhZyA9PT0gJzAnKSlcclxuICAgICAgLnN1YnNjcmliZShjb21tYW5kID0+IHtcclxuICAgICAgICBHdWlJbnRlcmFjdGl2ZUV4ZWN1dG9yLmV4ZWN1dGVJbnRlcmFjdGl2ZUNvbW1hbmQobnVsbCwgY29tbWFuZCwgdGhpcy5vdmVybGF5V2luZG93U2VydmljZSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXhlY3V0ZSBjb21tYW5kcyByZWNlaXZlZCBmcm9tIHRoZSBNYWdpYyBXZWJDbGllbnQgZW5naW5lXHJcbiAgICogQHBhcmFtIGNvbW1hbmRcclxuICAgKi9cclxuICBleGVjdXRlQ29tbWFuZChjb21tYW5kOiBHdWlDb21tYW5kKTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKGNvbW1hbmQuQ29tbWFuZFR5cGUpIHtcclxuICAgICAgY2FzZSBDb21tYW5kVHlwZS5PUEVOX0ZPUk06XHJcbiAgICAgICAgICB0aGlzLnNldENvbXBvbmVudChjb21tYW5kLnN0ciwgY29tbWFuZC5zdHJpbmdMaXN0WzBdLCBjb21tYW5kLnN0cmluZ0xpc3RbMV0sIGNvbW1hbmQuQm9vbDEpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbW1hbmRUeXBlLlNFVF9JU19MT0dHRURfSU46XHJcbiAgICAgICAgdGhpcy5lbmdpbmVNYWdpY1NlcnZpY2Uuc2V0SXNMb2dnZWRJbihjb21tYW5kLkJvb2wxKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29tbWFuZFR5cGUuQ0xPU0VfRk9STTpcclxuICAgICAgICBpZiAodGhpcy5Sb290Q29tcG9uZW50ICE9IG51bGwgJiYgY29tbWFuZC5zdHIgPT09IHRoaXMuUm9vdENvbXBvbmVudFBhcmFtZXRlcnMudGFza0lkUGFyYW0pIHtcclxuICAgICAgICAgIHRoaXMuUm9vdENvbXBvbmVudCA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLlJvb3RDb21wb25lbnRQYXJhbWV0ZXJzID0ge307XHJcblxyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgeyAvLyBDbG9zZSBtb2RhbCB3aW5kb3dcclxuICAgICAgICAgIHRoaXMub3ZlcmxheVdpbmRvd1NlcnZpY2UuY2xvc2UoY29tbWFuZC5zdHIpO1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb21tYW5kVHlwZS5SRUxPQURfUEFHRTpcclxuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbW1hbmRUeXBlLlNIT1dfU1BJTk5FUjpcclxuICAgICAgICBpZiAodGhpcy5zaG93U3Bpbm5lciAhPSBjb21tYW5kLkJvb2wxKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dTcGlubmVyID0gY29tbWFuZC5Cb29sMTtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29tbWFuZFR5cGUuRVhJVF9NQUdJQzpcclxuICAgICAgICBpZiAodGhpcy5leGl0TWFnaWNTZXJ2aWNlKVxyXG4gICAgICAgICAgdGhpcy5leGl0TWFnaWNTZXJ2aWNlLmV4aXRNYWdpYygpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb21tYW5kVHlwZS5TSE9XX0hUTUxfRVJST1I6XHJcbiAgICAgICAgd2luZG93LmRvY3VtZW50LndyaXRlKGNvbW1hbmQuc3RyKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtcm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9tYWdpYy1yb290LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV4RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM3RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0lBWTVDLGlDQUljOzs7SUFGWiwwREFBcUMsb0RBQUE7OztJQVF6Qyw4QkFBb0Q7SUFDbEQsMkJBQW1HO0lBQ3JHLGlCQUFNOzs7O0lBRFUsZUFBcUU7SUFBckUsd0ZBQXFFOzs7SUFJbkYseUJBQWtDOztBQWtDeEMsTUFBTSxPQUFPLG1CQUFtQjtJQTRCOUIsWUFBc0Isa0JBQXNDLEVBQ3RDLGFB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bUI7a0JBQTVELFNBQVM7bUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUUvQixlQUFlO2tCQUF2QixLQUFLO1lBZ0NOLGNBQWM7a0JBRGIsWUFBWTttQkFBQyxxQkFBcUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQWlCL0MsUUFBUTtrQkFEUCxZQUFZO21CQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbWFuZFR5cGUsIEd1aUNvbW1hbmQgfSBmcm9tICdAbWFnaWMteHBhL2d1aSc7XHJcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEVuZ2luZU1hZ2ljU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2VuZ2luZS5tYWdpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50TGlzdE1hZ2ljU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbXBvbmVudC1saXN0Lm1hZ2ljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHdWlJbnRlcmFjdGl2ZUV4ZWN1dG9yIH0gZnJvbSAnLi9HdWlJbnRlcmFjdGl2ZUV4ZWN1dG9yJztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFeGl0TWFnaWNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZXhpdC5tYWdpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3ZlcmxheVdpbmRvd1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9PdmVybGF5V2luZG93U2VydmljZSc7XHJcbmltcG9ydCB7IElNYWdpY1ZpZXdDb250YWluZXJSZWYgfSBmcm9tICcuLi8uLic7XHJcbmltcG9ydCB7IENvbW1hbmRzQ29sbGVjdG9yTWFnaWNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29tbWFuZHMtY29sbGVjdG9yLm1hZ2ljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuLyoqXHJcbiAqIFJvb3QgTWFnaWMgY29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21hZ2ljLXJvb3QnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAvLyBFeGl0TWFnaWNTZXJ2aWNlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiAjbWFnaWNSb290PlxyXG4gICAgICA8bmRjLWR5bmFtaWNcclxuICAgICAgICAqbmdJZiA9IFwiUm9vdENvbXBvbmVudCAhPT0gbnVsbFwiXHJcbiAgICAgICAgW25kY0R5bmFtaWNDb21wb25lbnRdPVwiUm9vdENvbXBvbmVudFwiXHJcbiAgICAgICAgW25kY0R5bmFtaWNJbnB1dHNdICAgPVwiUm9vdENvbXBvbmVudFBhcmFtZXRlcnNcIj5cclxuICAgICAgPC9uZGMtZHluYW1pYz5cclxuXHJcbiAgICAgIDxkaXYgI292ZXJsYXlXaW5kb3dzQ29udGFpbmVyIG1hZ2ljVmlld0NvbnRhaW5lclJlZj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1iYWNrZ3JvdW5kXCIgKm5nSWY9XCJzaG93U3Bpbm5lclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIlNwaW5uZXJUZW1wbGF0ZSA/IFNwaW5uZXJUZW1wbGF0ZTpkZWZhdWx0U3Bpbm5lclwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0U3Bpbm5lcj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1nU3Bpbm5lckNsYXNzXCI+PC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgLm1nU3Bpbm5lckNsYXNzIHtcclxuICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkICNjY2NjY2M7IC8qIExpZ2h0IGdyZXkgKi9cclxuICAgICAgYm9yZGVyLXRvcDogMTBweCBzb2xpZCBibGFjazsgLyogQmx1ZSAqL1xyXG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgICAgbWFyZ2luOiBhdXRvO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIHdpZHRoOiAxMDBweDtcclxuICAgICAgaGVpZ2h0OiAxMDBweDtcclxuICAgICAgYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTtcclxuICAgIH1cclxuICAgIC5zcGlubmVyLWJhY2tncm91bmQge1xyXG4gICAgICAvKiBiYWNrZ3JvdW5kIGZpeGVkIGFjcm9zcyB3aG9sZSBzY3JlZW4gKi9cclxuICAgICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgICB0b3A6IDA7XHJcbiAgICAgIHJpZ2h0OiAwO1xyXG4gICAgICBib3R0b206IDA7XHJcbiAgICAgIHotaW5kZXg6IDEwMDA7XHJcbiAgICAgIGxlZnQ6IDA7XHJcbiAgICAgIG9wYWNpdHk6IDAuNTtcclxuICAgIH1cclxuICAgIEBrZXlmcmFtZXMgc3BpbiB7XHJcbiAgICAgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cclxuICAgICAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH1cclxuICAgIH1cclxuICBgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFnaWNTaGVsbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIElNYWdpY1ZpZXdDb250YWluZXJSZWYge1xyXG4gIC8qKlxyXG4gICAqIFJvb3QgY29tcG9uZW50IHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgd2luZG93XHJcbiAgICovXHJcbiAgUm9vdENvbXBvbmVudCA6IENvbXBvbmVudCA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICogcGFyYW1ldGVycyBmb3IgdGhlIFJvb3QgQ29tcG9uZW50XHJcbiAgICovXHJcbiAgUm9vdENvbXBvbmVudFBhcmFtZXRlcnMgOiBhbnk7XHJcblxyXG4gIG92ZXJsYXlXaW5kb3dzQ29udGFpbmVyVmlld1JlZjogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnbWFnaWNSb290JywgeyBzdGF0aWM6IHRydWUgfSkgcm9vdE1hZ2ljRWxlbWVudFJlZjogRWxlbWVudFJlZjtcclxuXHJcbiAgQElucHV0KCkgU3Bpbm5lclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBzaG93U3Bpbm5lcjogYm9vbGVhbjtcclxuICBtYWdpY0VuZ2luZVRlcm1pbmF0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbWFnaWMgTWFnaWMncyBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIGNvbXBvbmVudExpc3QgTWFnaWMgY29tcG9uZW50IGxpc3RcclxuICAgKiBAcGFyYW0gY2hhbmdlRGV0ZWN0b3JSZWYgQ2hhbmdlcyBkZXRlY3RvclxyXG4gICAqIEBwYXJhbSB0aXRsZVNlcnZpY2UgVGl0bGUgc2V0dGluZyBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIGh0dHBDbGllbnQgVGhlIG5hdGl2ZSBodHRwQ2xpZW50IGluc3RhbmNlXHJcbiAgICogQHBhcmFtIGV4aXRNYWdpY1NlcnZpY2UgTWFnaWMgZXhpdCBzZXJ2aWNlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVuZ2luZU1hZ2ljU2VydmljZTogRW5naW5lTWFnaWNTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBjb21wb25lbnRMaXN0OkNvbXBvbmVudExpc3RNYWdpY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICBwcml2YXRlIHRpdGxlU2VydmljZTogVGl0bGUsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBvdmVybGF5V2luZG93U2VydmljZTogT3ZlcmxheVdpbmRvd1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgcGVuZGluZ0NvbW1hbmRzQ29sbGVjdG9yOiBDb21tYW5kc0NvbGxlY3Rvck1hZ2ljU2VydmljZSxcclxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSAgcHVibGljIGV4aXRNYWdpY1NlcnZpY2U6IEV4aXRNYWdpY1NlcnZpY2UpIHtcclxuXHJcbiAgICB0aGlzLmluaXRpYWxpemUoKTtcclxuICAgIHRoaXMuc2V0VGl0bGUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJlZm9yZS11bmxvYWQgZXZlbnQgbGlzdGVuZXJcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6YmVmb3JldW5sb2FkJywgWyckZXZlbnQnXSlcclxuICBvbkJlZm9yZVVubG9hZChldmVudCkge1xyXG4gICAgaWYodGhpcy5lbmdpbmVNYWdpY1NlcnZpY2UuVHJhbnNDYWNoZUV4aXN0cygpKVxyXG4gICAge1xyXG4gICAgICAvLyBTaG93IHRoZSBjb25maXJtYXRpb24gYm94IGJlZm9yZSB1bmxvYWRpbmcgdGhlIGJyb3dzZXJcclxuICAgICAgZXZlbnQucmV0dXJuVmFsdWUgPSAnQXJlIHlvdSBzdXJlPyc7XHJcbiAgICAgIHJldHVybiAnQXJlIHlvdSBzdXJlPyc7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgIC8vIHRlcm1pbmF0ZSB0aGUgbWFnaWMgc2VydmVyIGNvbnRleHQgdXNpbmcgZmV0Y2ggQVBJIHdpdGgga2VlcC1hbGl2ZVxyXG4gICAgICB0aGlzLmVuZ2luZU1hZ2ljU2VydmljZS5UZXJtaW5hdGVDb250ZXh0VXNpbmdGZXRjaEFQSSgpO1xyXG4gICAgICB0aGlzLm1hZ2ljRW5naW5lVGVybWluYXRlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6dW5sb2FkJywgWyckZXZlbnQnXSlcclxuICBvblVubG9hZChldmVudCkge1xyXG4gICAgLy8gQ2hyb21lIHByb3ZpZGVzIGFuIG9wcG9ydHVuaXR5IHRvIHRlcm1pbmF0ZSB0aGUgY29udGV4dCBhZnRlciB1c2VyIGFwcHJvdmVzIHRoZSBicm93c2VyIHVubG9hZCBhbGVydFxyXG4gICAgaWYoIXRoaXMubWFnaWNFbmdpbmVUZXJtaW5hdGVkKVxyXG4gICAgICB0aGlzLmVuZ2luZU1hZ2ljU2VydmljZS5UZXJtaW5hdGVDb250ZXh0VXNpbmdGZXRjaEFQSSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5vdmVybGF5V2luZG93U2VydmljZS5pbml0KHRoaXMub3ZlcmxheVdpbmRvd3NDb250YWluZXJWaWV3UmVmLCB0aGlzLnJvb3RNYWdpY0VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICB0aGlzLmVuZ2luZU1hZ2ljU2VydmljZS5zdGFydE1hZ2ljRW5naW5lKHRoaXMuaHR0cENsaWVudCk7XHJcbiAgfVxyXG5cclxuICBzZXRWaWV3Q29udGFpbmVyUmVmKHZjUmVmOiBWaWV3Q29udGFpbmVyUmVmKXtcclxuICAgIHRoaXMub3ZlcmxheVdpbmRvd3NDb250YWluZXJWaWV3UmVmID0gdmNSZWY7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXphdGlvbiBvZiBNYWdpYyBtZWNoYW5pc21zXHJcbiAgICovXHJcbiAgaW5pdGlhbGl6ZSgpIHtcclxuICAgIHRoaXMucmVnaXN0ZXJVSUNvbW1hbmRzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgdGhlIHRpdGxlXHJcbiAgICovXHJcbiAgcHVibGljIHNldFRpdGxlKCApIHtcclxuICAgIGNvbnN0IG5ld1RpdGxlOiBzdHJpbmcgPSB0aGlzLmNvbXBvbmVudExpc3QudGl0bGU7XHJcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZSggbmV3VGl0bGUgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgY29tcG9uZW50IGFjY29yZGluZyB0byByZXF1ZXN0ZWQgZm9ybVxyXG4gICAqIEBwYXJhbSBmb3JtTmFtZSBOYW1lIG9mIHRoZSBmb3JtIHRvIG9wZW5cclxuICAgKiBAcGFyYW0gdGFza0lkIElkIG9mIG9wZW5pbmcgdGFza1xyXG4gICAqIEBwYXJhbSB0YXNrRGVzY3JpcHRpb24gVE9ET1xyXG4gICAqIEBwYXJhbSBpc01vZGFsIHdoZXRoZXIgbW9kYWwgd2luZG93IGlzIGJlaW5nIG9wZW5lZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0Q29tcG9uZW50KGZvcm1OYW1lOiBzdHJpbmcsIHRhc2tJZDogc3RyaW5nLCB0YXNrRGVzY3JpcHRpb246IHN0cmluZywgaXNNb2RhbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5wZW5kaW5nQ29tbWFuZHNDb2xsZWN0b3Iuc3RhcnRDb2xsZWN0aW5nKCk7XHJcblxyXG4gICAgaWYoaXNNb2RhbCkge1xyXG4gICAgICB0aGlzLm92ZXJsYXlXaW5kb3dTZXJ2aWNlLm9wZW4oZm9ybU5hbWUsIHRhc2tJZCwgdGFza0Rlc2NyaXB0aW9uKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLlJvb3RDb21wb25lbnQgPSB0aGlzLmNvbXBvbmVudExpc3QuZ2V0Q29tcG9uZW50KGZvcm1OYW1lKTtcclxuICAgICAgdGhpcy5Sb290Q29tcG9uZW50UGFyYW1ldGVycyA9IHsgdGFza0lkUGFyYW06IHRhc2tJZCwgdGFza0Rlc2NyaXB0aW9uOiB0YXNrRGVzY3JpcHRpb24gfTtcclxuICAgIH1cclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHJlZ2lzdGVyVUlDb21tYW5kcygpIHtcclxuICAgIHRoaXMuZW5naW5lTWFnaWNTZXJ2aWNlLnJlZnJlc2hEb20ucGlwZShcclxuICAgICAgZmlsdGVyKGNvbW1hbmQgPT4gY29tbWFuZC5UYXNrVGFnID09PSAnMCcpKVxyXG4gICAgICAuc3Vic2NyaWJlKGNvbW1hbmQgPT4ge1xyXG4gICAgICAgIHRoaXMuZXhlY3V0ZUNvbW1hbmQoY29tbWFuZCk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5lbmdpbmVNYWdpY1NlcnZpY2VcclxuICAgICAgLmludGVyYWN0aXZlQ29tbWFuZHMucGlwZShcclxuICAgICAgZmlsdGVyKGNvbW1hbmQgPT4gY29tbWFuZC5UYXNrVGFnID09PSAnMCcpKVxyXG4gICAgICAuc3Vic2NyaWJlKGNvbW1hbmQgPT4ge1xyXG4gICAgICAgIEd1aUludGVyYWN0aXZlRXhlY3V0b3IuZXhlY3V0ZUludGVyYWN0aXZlQ29tbWFuZChudWxsLCBjb21tYW5kLCB0aGlzLm92ZXJsYXlXaW5kb3dTZXJ2aWNlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeGVjdXRlIGNvbW1hbmRzIHJlY2VpdmVkIGZyb20gdGhlIE1hZ2ljIFdlYkNsaWVudCBlbmdpbmVcclxuICAgKiBAcGFyYW0gY29tbWFuZFxyXG4gICAqL1xyXG4gIGV4ZWN1dGVDb21tYW5kKGNvbW1hbmQ6IEd1aUNvbW1hbmQpOiB2b2lkIHtcclxuICAgIHN3aXRjaCAoY29tbWFuZC5Db21tYW5kVHlwZSkge1xyXG4gICAgICBjYXNlIENvbW1hbmRUeXBlLk9QRU5fRk9STTpcclxuICAgICAgICAgIHRoaXMuc2V0Q29tcG9uZW50KGNvbW1hbmQuc3RyLCBjb21tYW5kLnN0cmluZ0xpc3RbMF0sIGNvbW1hbmQuc3RyaW5nTGlzdFsxXSwgY29tbWFuZC5Cb29sMSk7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29tbWFuZFR5cGUuU0VUX0lTX0xPR0dFRF9JTjpcclxuICAgICAgICB0aGlzLmVuZ2luZU1hZ2ljU2VydmljZS5zZXRJc0xvZ2dlZEluKGNvbW1hbmQuQm9vbDEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb21tYW5kVHlwZS5DTE9TRV9GT1JNOlxyXG4gICAgICAgIGlmICh0aGlzLlJvb3RDb21wb25lbnQgIT0gbnVsbCAmJiBjb21tYW5kLnN0ciA9PT0gdGhpcy5Sb290Q29tcG9uZW50UGFyYW1ldGVycy50YXNrSWRQYXJhbSkge1xyXG4gICAgICAgICAgdGhpcy5Sb290Q29tcG9uZW50ID0gbnVsbDtcclxuICAgICAgICAgIHRoaXMuUm9vdENvbXBvbmVudFBhcmFtZXRlcnMgPSB7fTtcclxuXHJcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7IC8vIENsb3NlIG1vZGFsIHdpbmRvd1xyXG4gICAgICAgICAgdGhpcy5vdmVybGF5V2luZG93U2VydmljZS5jbG9zZShjb21tYW5kLnN0cik7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbW1hbmRUeXBlLlJFTE9BRF9QQUdFOlxyXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29tbWFuZFR5cGUuU0hPV19TUElOTkVSOlxyXG4gICAgICAgIGlmICh0aGlzLnNob3dTcGlubmVyICE9IGNvbW1hbmQuQm9vbDEpIHtcclxuICAgICAgICAgIHRoaXMuc2hvd1NwaW5uZXIgPSBjb21tYW5kLkJvb2wxO1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb21tYW5kVHlwZS5FWElUX01BR0lDOlxyXG4gICAgICAgIGlmICh0aGlzLmV4aXRNYWdpY1NlcnZpY2UpXHJcbiAgICAgICAgICB0aGlzLmV4aXRNYWdpY1NlcnZpY2UuZXhpdE1hZ2ljKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbW1hbmRUeXBlLlNIT1dfSFRNTF9FUlJPUjpcclxuICAgICAgICB3aW5kb3cuZG9jdW1lbnQud3JpdGUoY29tbWFuZC5zdHIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=