@acorex/components 3.0.46 → 3.0.51

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 (53) hide show
  1. package/acorex-components.metadata.json +1 -1
  2. package/bundles/acorex-components.umd.js +171 -80
  3. package/bundles/acorex-components.umd.js.map +1 -1
  4. package/bundles/acorex-components.umd.min.js +1 -1
  5. package/bundles/acorex-components.umd.min.js.map +1 -1
  6. package/esm2015/lib/calendar/calendar-box/calendar-box.component.js +6 -6
  7. package/esm2015/lib/date-picker/date-picker.component.js +3 -2
  8. package/esm2015/lib/dropdown/dropdown.component.js +3 -2
  9. package/esm2015/lib/menu/menu2.component.js +1 -1
  10. package/esm2015/lib/property-editor/editors/color-editor/color.editor.js +2 -2
  11. package/esm2015/lib/property-editor/editors/column-editor/column.editor.js +2 -2
  12. package/esm2015/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.js +2 -2
  13. package/esm2015/lib/property-editor/editors/date-editor/date.editor.js +2 -2
  14. package/esm2015/lib/property-editor/editors/number-editor/number.editor.js +2 -2
  15. package/esm2015/lib/property-editor/editors/range-editor/range.editor.js +2 -2
  16. package/esm2015/lib/property-editor/editors/selectbox-editor/selectbox.editor.js +22 -12
  17. package/esm2015/lib/property-editor/editors/switch-editor/number.editor.js +2 -2
  18. package/esm2015/lib/property-editor/editors/text-editor/text.editor.js +2 -2
  19. package/esm2015/lib/property-editor/editors/time-editor/time.editor.js +2 -2
  20. package/esm2015/lib/property-editor/property-editor-renderer.directive.js +83 -37
  21. package/esm2015/lib/property-editor/property-editor.class.js +18 -4
  22. package/esm2015/lib/query-builder/query-builder-rule.component.js +5 -1
  23. package/esm2015/lib/query-builder/query-builder.service.js +4 -4
  24. package/esm2015/lib/selection-list/selection-list.component.js +6 -7
  25. package/esm2015/lib/tab-strip/tab-strip.component.js +11 -9
  26. package/esm5/lib/calendar/calendar-box/calendar-box.component.js +6 -6
  27. package/esm5/lib/date-picker/date-picker.component.js +3 -2
  28. package/esm5/lib/dropdown/dropdown.component.js +3 -2
  29. package/esm5/lib/menu/menu2.component.js +1 -1
  30. package/esm5/lib/property-editor/editors/color-editor/color.editor.js +2 -2
  31. package/esm5/lib/property-editor/editors/column-editor/column.editor.js +2 -2
  32. package/esm5/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.js +2 -2
  33. package/esm5/lib/property-editor/editors/date-editor/date.editor.js +2 -2
  34. package/esm5/lib/property-editor/editors/number-editor/number.editor.js +2 -2
  35. package/esm5/lib/property-editor/editors/range-editor/range.editor.js +2 -2
  36. package/esm5/lib/property-editor/editors/selectbox-editor/selectbox.editor.js +26 -12
  37. package/esm5/lib/property-editor/editors/switch-editor/number.editor.js +2 -2
  38. package/esm5/lib/property-editor/editors/text-editor/text.editor.js +2 -2
  39. package/esm5/lib/property-editor/editors/time-editor/time.editor.js +2 -2
  40. package/esm5/lib/property-editor/property-editor-renderer.directive.js +89 -39
  41. package/esm5/lib/property-editor/property-editor.class.js +24 -4
  42. package/esm5/lib/query-builder/query-builder-rule.component.js +5 -1
  43. package/esm5/lib/query-builder/query-builder.service.js +4 -4
  44. package/esm5/lib/selection-list/selection-list.component.js +3 -4
  45. package/esm5/lib/tab-strip/tab-strip.component.js +11 -9
  46. package/fesm2015/acorex-components.js +159 -82
  47. package/fesm2015/acorex-components.js.map +1 -1
  48. package/fesm5/acorex-components.js +172 -81
  49. package/fesm5/acorex-components.js.map +1 -1
  50. package/lib/property-editor/editors/selectbox-editor/selectbox.editor.d.ts +7 -4
  51. package/lib/property-editor/property-editor-renderer.directive.d.ts +5 -3
  52. package/lib/property-editor/property-editor.class.d.ts +4 -2
  53. package/package.json +1 -1
@@ -1,13 +1,14 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { Directive, ViewContainerRef, ComponentFactoryResolver, Input, Output, EventEmitter } from '@angular/core';
3
- import { AXObjectUtil, AXRenderService, getPropByPath } from '@acorex/core';
2
+ import { Directive, ViewContainerRef, ComponentFactoryResolver, Input, Output, EventEmitter, KeyValueDiffer, KeyValueDiffers } from '@angular/core';
3
+ import { AXEventService, AXObjectUtil, AXRenderService, getPropByPath, setPropByPath } from '@acorex/core';
4
4
  import { AXValidationFormComponent } from '../validation/validation-form.component';
5
5
  let AXPropertyEditorRendererDirective = class AXPropertyEditorRendererDirective {
6
- constructor(target, componentFactoryResolver, renderService) {
6
+ constructor(target, componentFactoryResolver, renderService, eventService) {
7
7
  this.target = target;
8
8
  this.componentFactoryResolver = componentFactoryResolver;
9
9
  this.renderService = renderService;
10
- this.readonly = false;
10
+ this.eventService = eventService;
11
+ this._context = {};
11
12
  this.onValueChange = new EventEmitter();
12
13
  }
13
14
  get context() {
@@ -15,9 +16,6 @@ let AXPropertyEditorRendererDirective = class AXPropertyEditorRendererDirective
15
16
  }
16
17
  set context(v) {
17
18
  this._context = v;
18
- if (v && this.instance) {
19
- this.assignProps();
20
- }
21
19
  }
22
20
  clear() {
23
21
  this.instance.value = null;
@@ -32,52 +30,98 @@ let AXPropertyEditorRendererDirective = class AXPropertyEditorRendererDirective
32
30
  const cmpRef = this.target.createComponent(factory);
33
31
  this.instance = cmpRef.instance;
34
32
  this.subscription = this.instance.valueChange.subscribe(value => {
35
- if (this.instance.initiated === true) {
36
- this.property.value = value;
37
- this.onValueChange.emit(this.property);
33
+ var _a, _b;
34
+ this.property.value = value;
35
+ this.onValueChange.emit(this.property);
36
+ if ((_b = (_a = this.property) === null || _a === void 0 ? void 0 : _a.property) === null || _b === void 0 ? void 0 : _b.name) {
37
+ setTimeout(() => {
38
+ this.eventService.broadcast(`props-${this.groupId}-${this.property.property.name}`, this.property);
39
+ }, 0);
38
40
  }
39
41
  });
40
- //
42
+ this.watchChanges();
43
+ this.assignProps();
44
+ this.instance.value = this.property.value;
45
+ // this.instance.onRenderCompleted.subscribe(() => {
46
+ // });
41
47
  if (this.validationForm) {
42
48
  this.instance.validatableComponentRegistered.subscribe(v => {
43
49
  this.validationForm.addWidget(v);
44
50
  });
45
51
  }
46
- //
47
- //setTimeout(() => {
48
- this.instance.readonly = this.readonly;
49
- this.assignProps();
50
- this.instance.value = this.property.value;
51
- this.instance.initiat();
52
- cmpRef.changeDetectorRef.markForCheck();
53
- //});
54
52
  }
55
53
  });
56
54
  }
55
+ watchChanges() {
56
+ var _a, _b;
57
+ const varsRegx = /((\$\{[a-zA-Z_0-9]+\})+)/gm;
58
+ const varNameRegx = /[a-zA-Z_0-9]+/gm;
59
+ const options = this.property.property.editorOptions;
60
+ if (!options) {
61
+ return;
62
+ }
63
+ for (const p in options) {
64
+ if (options.hasOwnProperty(p)) {
65
+ const opt = options[p];
66
+ const vars = typeof opt === 'string' ? (_a = opt) === null || _a === void 0 ? void 0 : _a.match(varsRegx) : [];
67
+ // bind the props
68
+ if ((_b = vars) === null || _b === void 0 ? void 0 : _b.length) {
69
+ vars.forEach(v => {
70
+ var _a;
71
+ const path = ((_a = v.match(varNameRegx)) === null || _a === void 0 ? void 0 : _a.length) ? v.match(varNameRegx)[0] : null;
72
+ if (path) {
73
+ this.eventService.on(`props-${this.groupId}-${path}`, (e) => {
74
+ let execCode = opt.slice();
75
+ const params = {};
76
+ vars.forEach(vv => {
77
+ var _a;
78
+ const p2 = ((_a = vv.match(varNameRegx)) === null || _a === void 0 ? void 0 : _a.length) ? vv.match(varNameRegx)[0] : null;
79
+ params[p2] = AXObjectUtil.deepCopy(this.context[p2]) || null;
80
+ execCode = execCode.replace(vv, `__params__.${p2}`);
81
+ });
82
+ const func = new Function('__params__', `try { return ${execCode}} catch(e){ console.log(e); return null; }`);
83
+ const val = func(params);
84
+ const keys = p.split('.');
85
+ const prop = Object.assign({}, this.instance[keys[0]]);
86
+ if (keys.length > 1) {
87
+ this.instance[keys[0]] = setPropByPath(prop, p, val);
88
+ }
89
+ else {
90
+ setPropByPath(this.instance, p, val);
91
+ }
92
+ });
93
+ }
94
+ });
95
+ }
96
+ // else {
97
+ // this.assignProps();
98
+ // }
99
+ }
100
+ }
101
+ }
57
102
  assignProps() {
103
+ var _a, _b;
58
104
  const options = this.property.property.editorOptions;
59
105
  if (!options) {
60
106
  return;
61
107
  }
108
+ const varsRegx = /((\$\{[a-zA-Z_0-9]+\})+)/gm;
62
109
  for (const p in options) {
63
110
  if (options.hasOwnProperty(p)) {
64
111
  const opt = options[p];
65
- if (typeof opt === 'string' && opt.startsWith('$$')) {
66
- const key = opt.substring(2);
67
- const val = getPropByPath(this.context, key);
68
- if (val) {
69
- this.instance[p] = typeof val === 'function' ? val({ data: this.context, host: this.host }, this.property) : val;
70
- }
112
+ const vars = typeof opt === 'string' ? (_a = opt) === null || _a === void 0 ? void 0 : _a.match(varsRegx) : [];
113
+ if ((_b = vars) === null || _b === void 0 ? void 0 : _b.length) {
114
+ continue;
71
115
  }
72
116
  else {
73
- const res = typeof opt === 'function' ? opt({ data: this.context, host: this.host }, this.property) : opt;
74
- if (res instanceof Promise) {
75
- res.then(v => {
76
- this.instance[p] = v;
117
+ const val = typeof opt === 'function' ? opt({ data: this.context, host: this.host }, this.property) : opt;
118
+ if (val instanceof Promise) {
119
+ val.then(v => {
120
+ setPropByPath(this.instance, p, val);
77
121
  });
78
122
  }
79
123
  else {
80
- this.instance[p] = res;
124
+ setPropByPath(this.instance, p, val);
81
125
  }
82
126
  }
83
127
  }
@@ -92,16 +136,13 @@ let AXPropertyEditorRendererDirective = class AXPropertyEditorRendererDirective
92
136
  AXPropertyEditorRendererDirective.ctorParameters = () => [
93
137
  { type: ViewContainerRef },
94
138
  { type: ComponentFactoryResolver },
95
- { type: AXRenderService }
139
+ { type: AXRenderService },
140
+ { type: AXEventService }
96
141
  ];
97
142
  __decorate([
98
143
  Input(),
99
144
  __metadata("design:type", Object)
100
145
  ], AXPropertyEditorRendererDirective.prototype, "property", void 0);
101
- __decorate([
102
- Input(),
103
- __metadata("design:type", Boolean)
104
- ], AXPropertyEditorRendererDirective.prototype, "readonly", void 0);
105
146
  __decorate([
106
147
  Input(),
107
148
  __metadata("design:type", AXValidationFormComponent)
@@ -115,6 +156,10 @@ __decorate([
115
156
  Input(),
116
157
  __metadata("design:type", Object)
117
158
  ], AXPropertyEditorRendererDirective.prototype, "host", void 0);
159
+ __decorate([
160
+ Input(),
161
+ __metadata("design:type", Object)
162
+ ], AXPropertyEditorRendererDirective.prototype, "groupId", void 0);
118
163
  __decorate([
119
164
  Output(),
120
165
  __metadata("design:type", EventEmitter)
@@ -125,7 +170,8 @@ AXPropertyEditorRendererDirective = __decorate([
125
170
  }),
126
171
  __metadata("design:paramtypes", [ViewContainerRef,
127
172
  ComponentFactoryResolver,
128
- AXRenderService])
173
+ AXRenderService,
174
+ AXEventService])
129
175
  ], AXPropertyEditorRendererDirective);
130
176
  export { AXPropertyEditorRendererDirective };
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZWRpdG9yLXJlbmRlcmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9wcm9wZXJ0eS1lZGl0b3IvcHJvcGVydHktZWRpdG9yLXJlbmRlcmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuSCxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFLcEYsSUFBYSxpQ0FBaUMsR0FBOUMsTUFBYSxpQ0FBaUM7SUFzQzFDLFlBQ1ksTUFBd0IsRUFDeEIsd0JBQWtELEVBQ2xELGFBQThCO1FBRjlCLFdBQU0sR0FBTixNQUFNLENBQWtCO1FBQ3hCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsa0JBQWEsR0FBYixhQUFhLENBQWlCO1FBL0IxQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBd0IxQixrQkFBYSxHQUFrRCxJQUFJLFlBQVksRUFBbUMsQ0FBQztJQVVuSCxDQUFDO0lBekJELElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBVyxPQUFPLENBQUMsQ0FBTTtRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN0QjtJQUNMLENBQUM7SUFvQkQsS0FBSztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FB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bkMsZUFBZTtHQXpDakMsaUNBQWlDLENBMkg3QztTQTNIWSxpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYUHJvcGVyeUVkaXRvckNvbXBvbmVudCwgQVhQcm9wZXJ5RWRpdG9yVmFsdWVDaGFuZ2VFdmVudCwgQVhQcm9wZXJ0eUNvbmZpZyB9IGZyb20gJy4vcHJvcGVydHktZWRpdG9yLmNsYXNzJztcclxuaW1wb3J0IHsgQVhPYmplY3RVdGlsLCBBWFJlbmRlclNlcnZpY2UsIGdldFByb3BCeVBhdGggfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQVhWYWxpZGF0aW9uRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1mb3JtLmNvbXBvbmVudCc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2F4LXByb3BlcnR5LWVkaXRvci1yZW5kZXJlcl0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhQcm9wZXJ0eUVkaXRvclJlbmRlcmVyRGlyZWN0aXZlIHtcclxuXHJcbiAgICBwcml2YXRlIGluc3RhbmNlOiBBWFByb3BlcnlFZGl0b3JDb21wb25lbnQ8YW55PjtcclxuXHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHByb3BlcnR5OiBBWFByb3BlcnR5Q29uZmlnO1xyXG5cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgdmFsaWRhdGlvbkZvcm06IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQ7XHJcblxyXG5cclxuXHJcbiAgICBwcml2YXRlIF9jb250ZXh0OiBhbnk7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBjb250ZXh0KCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHQ7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IGNvbnRleHQodjogYW55KSB7XHJcbiAgICAgICAgdGhpcy5fY29udGV4dCA9IHY7XHJcbiAgICAgICAgaWYgKHYgJiYgdGhpcy5pbnN0YW5jZSkge1xyXG4gICAgICAgICAgICB0aGlzLmFzc2lnblByb3BzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBob3N0OiBhbnk7XHJcblxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgb25WYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEFYUHJvcGVyeUVkaXRvclZhbHVlQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFByb3BlcnlFZGl0b3JWYWx1ZUNoYW5nZUV2ZW50PigpO1xyXG5cclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSB0YXJnZXQ6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgICAgICBwcml2YXRlIHJlbmRlclNlcnZpY2U6IEFYUmVuZGVyU2VydmljZVxyXG4gICAgKSB7XHJcblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBjbGVhcigpIHtcclxuICAgICAgICB0aGlzLmluc3RhbmNlLnZhbHVlID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNyZWF0ZUNvbXBvbmVudCgpO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgY3JlYXRlQ29tcG9uZW50KCkge1xyXG4gICAgICAgIHRoaXMucmVuZGVyU2VydmljZS5maW5kTG9hZGVkQ29tcG9uZW50QnlSb3V0ZSh0aGlzLnByb3BlcnR5LnByb3BlcnR5LmVkaXRvckNsYXNzKS50aGVuKGMgPT4ge1xyXG4gICAgICAgICAgICBpZiAoYykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGMuY29tcG9uZW50KTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNtcFJlZiA9IHRoaXMudGFyZ2V0LmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UgPSBjbXBSZWYuaW5zdGFuY2UgYXMgQVhQcm9wZXJ5RWRpdG9yQ29tcG9uZW50PGFueT47XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuaW5zdGFuY2UudmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnN0YW5jZS5pbml0aWF0ZWQgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wZXJ0eS52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnByb3BlcnR5KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIC8vICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbkZvcm0pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLnZhbGlkYXRhYmxlQ29tcG9uZW50UmVnaXN0ZXJlZC5zdWJzY3JpYmUodiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkZvcm0uYWRkV2lkZ2V0KHYpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy9cclxuICAgICAgICAgICAgICAgIC8vc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5yZWFkb25seSA9IHRoaXMucmVhZG9ubHk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hc3NpZ25Qcm9wcygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UudmFsdWUgPSB0aGlzLnByb3BlcnR5LnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UuaW5pdGlhdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNtcFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgICAgIC8vfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBhc3NpZ25Qcm9wcygpIHtcclxuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5wcm9wZXJ0eS5wcm9wZXJ0eS5lZGl0b3JPcHRpb25zO1xyXG4gICAgICAgIGlmICghb3B0aW9ucykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAoY29uc3QgcCBpbiBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmhhc093blByb3BlcnR5KHApKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvcHQgPSBvcHRpb25zW3BdO1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnICYmIG9wdC5zdGFydHNXaXRoKCckJCcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gb3B0LnN1YnN0cmluZygyKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSBnZXRQcm9wQnlQYXRoKHRoaXMuY29udGV4dCwga2V5KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2VbcF0gPSB0eXBlb2YgdmFsID09PSAnZnVuY3Rpb24nID8gdmFsKHsgZGF0YTogdGhpcy5jb250ZXh0LCBob3N0OiB0aGlzLmhvc3QgfSwgdGhpcy5wcm9wZXJ0eSkgOiB2YWw7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gdHlwZW9mIG9wdCA9PT0gJ2Z1bmN0aW9uJyA/IG9wdCh7IGRhdGE6IHRoaXMuY29udGV4dCwgaG9zdDogdGhpcy5ob3N0IH0sIHRoaXMucHJvcGVydHkpIDogb3B0O1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMgaW5zdGFuY2VvZiBQcm9taXNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy50aGVuKHYgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZVtwXSA9IHY7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZVtwXSA9IHJlcztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZWRpdG9yLXJlbmRlcmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9wcm9wZXJ0eS1lZGl0b3IvcHJvcGVydHktZWRpdG9yLXJlbmRlcmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBKLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBS3BGLElBQWEsaUNBQWlDLEdBQTlDLE1BQWEsaUNBQWlDO0lBa0MxQyxZQUNZLE1BQXdCLEVBQ3hCLHdCQUFrRCxFQUNsRCxhQUE4QixFQUM5QixZQUE0QjtRQUg1QixXQUFNLEdBQU4sTUFBTSxDQUFrQjtRQUN4Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELGtCQUFhLEdBQWIsYUFBYSxDQUFpQjtRQUM5QixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUF6QmhDLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFpQjNCLGtCQUFhLEdBQWtELElBQUksWUFBWSxFQUFtQyxDQUFDO0lBV25ILENBQUM7SUExQkQsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFXLE9BQU8sQ0FBQyxDQUFNO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUF3QkQsS0FBSztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUks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RGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgS2V5VmFsdWVEaWZmZXIsIEtleVZhbHVlRGlmZmVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFByb3BlcnlFZGl0b3JDb21wb25lbnQsIEFYUHJvcGVyeUVkaXRvclZhbHVlQ2hhbmdlRXZlbnQsIEFYUHJvcGVydHlDb25maWcgfSBmcm9tICcuL3Byb3BlcnR5LWVkaXRvci5jbGFzcyc7XHJcbmltcG9ydCB7IEFYRXZlbnRTZXJ2aWNlLCBBWE9iamVjdFV0aWwsIEFYUmVuZGVyU2VydmljZSwgZ2V0UHJvcEJ5UGF0aCwgc2V0UHJvcEJ5UGF0aCB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLWZvcm0uY29tcG9uZW50JztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbYXgtcHJvcGVydHktZWRpdG9yLXJlbmRlcmVyXScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFByb3BlcnR5RWRpdG9yUmVuZGVyZXJEaXJlY3RpdmUge1xyXG5cclxuICAgIHByaXZhdGUgaW5zdGFuY2U6IEFYUHJvcGVyeUVkaXRvckNvbXBvbmVudDxhbnk+O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwcm9wZXJ0eTogQVhQcm9wZXJ0eUNvbmZpZztcclxuXHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHZhbGlkYXRpb25Gb3JtOiBBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50O1xyXG5cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfY29udGV4dDogYW55ID0ge307XHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBjb250ZXh0KCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRleHQ7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IGNvbnRleHQodjogYW55KSB7XHJcbiAgICAgICAgdGhpcy5fY29udGV4dCA9IHY7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGhvc3Q6IGFueTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ3JvdXBJZDogYW55O1xyXG5cclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIG9uVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxBWFByb3BlcnlFZGl0b3JWYWx1ZUNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhQcm9wZXJ5RWRpdG9yVmFsdWVDaGFuZ2VFdmVudD4oKTtcclxuXHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgdGFyZ2V0OiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJTZXJ2aWNlOiBBWFJlbmRlclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEFYRXZlbnRTZXJ2aWNlXHJcbiAgICApIHtcclxuXHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNsZWFyKCkge1xyXG4gICAgICAgIHRoaXMuaW5zdGFuY2UudmFsdWUgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlQ29tcG9uZW50KCk7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgIGNyZWF0ZUNvbXBvbmVudCgpIHtcclxuICAgICAgICB0aGlzLnJlbmRlclNlcnZpY2UuZmluZExvYWRlZENvbXBvbmVudEJ5Um91dGUodGhpcy5wcm9wZXJ0eS5wcm9wZXJ0eS5lZGl0b3JDbGFzcykudGhlbihjID0+IHtcclxuICAgICAgICAgICAgaWYgKGMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjLmNvbXBvbmVudCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbXBSZWYgPSB0aGlzLnRhcmdldC5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlID0gY21wUmVmLmluc3RhbmNlIGFzIEFYUHJvcGVyeUVkaXRvckNvbXBvbmVudDxhbnk+O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmluc3RhbmNlLnZhbHVlQ2hhbmdlLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wZXJ0eS52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZS5lbWl0KHRoaXMucHJvcGVydHkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BlcnR5Py5wcm9wZXJ0eT8ubmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLmJyb2FkY2FzdChgcHJvcHMtJHt0aGlzLmdyb3VwSWR9LSR7dGhpcy5wcm9wZXJ0eS5wcm9wZXJ0eS5uYW1lfWAsIHRoaXMucHJvcGVydHkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMud2F0Y2hDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFzc2lnblByb3BzKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlLnZhbHVlID0gdGhpcy5wcm9wZXJ0eS52YWx1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmluc3RhbmNlLm9uUmVuZGVyQ29tcGxldGVkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAvLyB9KTtcclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnZhbGlkYXRpb25Gb3JtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS52YWxpZGF0YWJsZUNvbXBvbmVudFJlZ2lzdGVyZWQuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25Gb3JtLmFkZFdpZGdldCh2KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcml2YXRlIHdhdGNoQ2hhbmdlcygpIHtcclxuICAgICAgICBjb25zdCB2YXJzUmVneCA9IC8oKFxcJFxce1thLXpBLVpfMC05XStcXH0pKykvZ207XHJcbiAgICAgICAgY29uc3QgdmFyTmFtZVJlZ3ggPSAvW2EtekEtWl8wLTldKy9nbTtcclxuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5wcm9wZXJ0eS5wcm9wZXJ0eS5lZGl0b3JPcHRpb25zO1xyXG4gICAgICAgIGlmICghb3B0aW9ucykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAoY29uc3QgcCBpbiBvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmhhc093blByb3BlcnR5KHApKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvcHQgPSBvcHRpb25zW3BdO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmFycyA9IHR5cGVvZiBvcHQgPT09ICdzdHJpbmcnID8gb3B0Py5tYXRjaCh2YXJzUmVneCkgOiBbXTtcclxuICAgICAgICAgICAgICAgIC8vIGJpbmQgdGhlIHByb3BzXHJcbiAgICAgICAgICAgICAgICBpZiAodmFycz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFycy5mb3JFYWNoKHYgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gdi5tYXRjaCh2YXJOYW1lUmVneCk/Lmxlbmd0aCA/IHYubWF0Y2godmFyTmFtZVJlZ3gpWzBdIDogbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLm9uKGBwcm9wcy0ke3RoaXMuZ3JvdXBJZH0tJHtwYXRofWAsIChlOiBBWFByb3BlcnR5Q29uZmlnKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV4ZWNDb2RlID0gb3B0LnNsaWNlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge307XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFycy5mb3JFYWNoKHZ2ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcDIgPSB2di5tYXRjaCh2YXJOYW1lUmVneCk/Lmxlbmd0aCA/IHZ2Lm1hdGNoKHZhck5hbWVSZWd4KVswXSA6IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc1twMl0gPSBBWE9iamVjdFV0aWwuZGVlcENvcHkodGhpcy5jb250ZXh0W3AyXSkgfHwgbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY0NvZGUgPSBleGVjQ29kZS5yZXBsYWNlKHZ2LCBgX19wYXJhbXNfXy4ke3AyfWApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmdW5jID0gbmV3IEZ1bmN0aW9uKCdfX3BhcmFtc19fJywgYHRyeSB7IHJldHVybiAke2V4ZWNDb2RlfX0gY2F0Y2goZSl7ICBjb25zb2xlLmxvZyhlKTsgcmV0dXJuIG51bGw7ICB9YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsID0gZnVuYyhwYXJhbXMpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXlzID0gcC5zcGxpdCgnLicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb3AgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmluc3RhbmNlW2tleXNbMF1dKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2Vba2V5c1swXV0gPSBzZXRQcm9wQnlQYXRoKHByb3AsIHAsIHZhbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQcm9wQnlQYXRoKHRoaXMuaW5zdGFuY2UsIHAsIHZhbClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyAgICB0aGlzLmFzc2lnblByb3BzKCk7XHJcbiAgICAgICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgYXNzaWduUHJvcHMoKSB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMucHJvcGVydHkucHJvcGVydHkuZWRpdG9yT3B0aW9ucztcclxuICAgICAgICBpZiAoIW9wdGlvbnMpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB2YXJzUmVneCA9IC8oKFxcJFxce1thLXpBLVpfMC05XStcXH0pKykvZ207XHJcbiAgICAgICAgZm9yIChjb25zdCBwIGluIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuaGFzT3duUHJvcGVydHkocCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdCA9IG9wdGlvbnNbcF07XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YXJzID0gdHlwZW9mIG9wdCA9PT0gJ3N0cmluZycgPyBvcHQ/Lm1hdGNoKHZhcnNSZWd4KSA6IFtdO1xyXG4gICAgICAgICAgICAgICAgaWYgKHZhcnM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsID0gdHlwZW9mIG9wdCA9PT0gJ2Z1bmN0aW9uJyA/IG9wdCh7IGRhdGE6IHRoaXMuY29udGV4dCwgaG9zdDogdGhpcy5ob3N0IH0sIHRoaXMucHJvcGVydHkpIDogb3B0O1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWwgaW5zdGFuY2VvZiBQcm9taXNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbC50aGVuKHYgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UHJvcEJ5UGF0aCh0aGlzLmluc3RhbmNlLCBwLCB2YWwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFByb3BCeVBhdGgodGhpcy5pbnN0YW5jZSwgcCwgdmFsKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
@@ -5,9 +5,17 @@ export class AXProperyEditorComponent {
5
5
  constructor(cdr) {
6
6
  this.cdr = cdr;
7
7
  this.readonly = false;
8
- this.initiated = false;
8
+ this._initiated = false;
9
+ this._valueBound = false;
9
10
  this.validatableComponentRegistered = new Subject();
10
11
  this.valueChange = new EventEmitter();
12
+ this.onRenderCompleted = new EventEmitter();
13
+ this.onRenderCompleted.subscribe(() => {
14
+ this._initiated = true;
15
+ });
16
+ }
17
+ get initiated() {
18
+ return this._initiated && this._valueBound;
11
19
  }
12
20
  registerForValidationForm(component) {
13
21
  this.validatableComponentRegistered.next(component);
@@ -20,18 +28,24 @@ export class AXProperyEditorComponent {
20
28
  this._value = v;
21
29
  this.valueChange.emit(v);
22
30
  this.cdr.detectChanges();
31
+ //TODO: find better solution
32
+ setTimeout(() => {
33
+ this._valueBound = true;
34
+ }, 100);
23
35
  }
24
36
  }
25
37
  handleValueChange(v) {
26
38
  this.value = v;
27
39
  }
28
- initiat() {
29
- }
30
40
  }
31
41
  __decorate([
32
42
  Output(),
33
43
  __metadata("design:type", EventEmitter)
34
44
  ], AXProperyEditorComponent.prototype, "valueChange", void 0);
45
+ __decorate([
46
+ Output(),
47
+ __metadata("design:type", EventEmitter)
48
+ ], AXProperyEditorComponent.prototype, "onRenderCompleted", void 0);
35
49
  __decorate([
36
50
  Input(),
37
51
  __metadata("design:type", Object),
@@ -86,4 +100,4 @@ export function propertyEditor(options) {
86
100
  AXPropertyDecorators.register(target, key, options);
87
101
  };
88
102
  }
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZWRpdG9yLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL3Byb3BlcnR5LWVkaXRvci9wcm9wZXJ0eS1lZGl0b3IuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQTZDL0IsTUFBTSxPQUFnQix3QkFBd0I7SUFnQzFDLFlBQXNCLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBN0I1QyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFHM0IsbUNBQThCLEdBQW9DLElBQUksT0FBTyxFQUEwQixDQUFDO1FBU3hHLGdCQUFXLEdBQW9CLElBQUksWUFBWSxFQUFLLENBQUM7SUFpQnJELENBQUM7SUF2QkQseUJBQXlCLENBQUMsU0FBa0M7UUFDeEQsSUFBSSxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBUUQsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFXLEtBQUssQ0FBQyxDQUFJO1FBQ2pCLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUM1QjtJQUNMLENBQUM7SUFPRCxpQkFBaUIsQ0FBQyxDQUFJO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lB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T0FBTyxDQUFDLE1BQVcsRUFBRSxHQUFXLEVBQUUsRUFBRTtRQUMvQixPQUFlLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUM1QixvQkFBb0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RCxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFYVmFsaWRhdGFibGVDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xyXG5cclxuZXhwb3J0IHR5cGUgQVhEYXRhVHlwZSA9ICdzdHJpbmcnIHwgJ251bWJlcicgfCAnZGF0ZScgfCAnYm9vbGVhbicgfCAnb2JqZWN0JztcclxuZXhwb3J0IHR5cGUgQVhDb250cm9sVHlwZSA9ICd0ZXh0Ym94JyB8ICdudW1iZXJib3gnIHwgJ2RhdGVQaWNrZXInIHwgJ3N3aXRjaCcgfCAnY3VzdG9tJztcclxuXHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBWFByb3BlcnR5RGVmIHtcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBoaW50Pzogc3RyaW5nO1xyXG4gICAgZGVmYXVsdFZhbHVlPzogYW55O1xyXG4gICAgZWRpdG9yQ2xhc3M6IGFueTtcclxuICAgIGVkaXRvck9wdGlvbnM/OiBhbnk7XHJcbiAgICB2aXNpYmxlPzogYm9vbGVhbiB8ICgoKSA9PiBib29sZWFuKTtcclxuICAgIG9yZGVyPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYUHJvcGVydHlFZGl0b3JEZWYge1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIGhpbnQ/OiBzdHJpbmc7XHJcbiAgICBkZWZhdWx0VmFsdWU/OiBhbnk7XHJcbiAgICBlZGl0b3JDbGFzczogYW55O1xyXG4gICAgZWRpdG9yT3B0aW9ucz86IGFueTtcclxuICAgIHZpc2libGU/OiBib29sZWFuIHwgKCgpID0+IGJvb2xlYW4pO1xyXG4gICAgb3JkZXI/OiBudW1iZXI7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhQcm9wZXJ0eUNvbmZpZyB7XHJcbiAgICBwcm9wZXJ0eTogQVhQcm9wZXJ0eURlZjtcclxuICAgIHZhbHVlOiBhbnk7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYUHJvcGVyeUVkaXRvclZhbHVlQ2hhbmdlRXZlbnQge1xyXG4gICAgcHJvcGVydHk6IEFYUHJvcGVydHlEZWY7XHJcbiAgICB2YWx1ZTogYW55O1xyXG59XHJcblxyXG5cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFByb3BlcnlFZGl0b3JDb21wb25lbnQ8VD57XHJcblxyXG5cclxuICAgIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBpbml0aWF0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gICAgdmFsaWRhdGFibGVDb21wb25lbnRSZWdpc3RlcmVkOiBTdWJqZWN0PEFYVmFsaWRhdGFibGVDb21wb25lbnQ+ID0gbmV3IFN1YmplY3Q8QVhWYWxpZGF0YWJsZUNvbXBvbmVudD4oKTtcclxuXHJcblxyXG4gICAgcmVnaXN0ZXJGb3JWYWxpZGF0aW9uRm9ybShjb21wb25lbnQ/OiBBWFZhbGlkYXRhYmxlQ29tcG9uZW50KSB7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0YWJsZUNvbXBvbmVudFJlZ2lzdGVyZWQubmV4dChjb21wb25lbnQpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8VD4gPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBfdmFsdWU6IFQ7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBUIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCB2YWx1ZSh2OiBUKSB7XHJcbiAgICAgICAgaWYgKHYgIT09IHRoaXMuX3ZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdjtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHYpO1xyXG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICB9XHJcblxyXG4gICAgdWlkOiBzdHJpbmc7XHJcblxyXG4gICAgaGFuZGxlVmFsdWVDaGFuZ2UodjogVCkge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2O1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYXQoKTogdm9pZCB7XHJcblxyXG4gICAgfVxyXG5cclxuXHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFYUHJvcGVydHlEZWNvcmF0b3Ige1xyXG4gICAgY2xzOiBhbnk7XHJcbiAgICBwcm9wZXJ0eTogc3RyaW5nO1xyXG4gICAgb3B0aW9uczogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIGNsczogYW55LFxyXG4gICAgICAgIHByb3BlcnR5OiBzdHJpbmcsXHJcbiAgICAgICAgb3B0aW9uczogYW55KSB7XHJcbiAgICAgICAgdGhpcy5jbHMgPSBjbHM7XHJcbiAgICAgICAgdGhpcy5wcm9wZXJ0eSA9IHByb3BlcnR5O1xyXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgQVhQcm9wZXJ0eURlY29yYXRvcnMge1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgUkVHSVNUUlkgPSBuZXcgQXJyYXk8QVhQcm9wZXJ0eURlY29yYXRvcj4oKTtcclxuXHJcbiAgICBzdGF0aWMgcmVnaXN0ZXIoY2xzOiBzdHJpbmcsIHByb3BlcnR5OiBzdHJpbmcsIG9wdGlvbnM/OiBhbnkpIHtcclxuICAgICAgICBjb25zdCBpdGVtID0gQVhQcm9wZXJ0eURlY29yYXRvcnMuUkVHSVNUUlkuZmluZChjID0+IGMuY2xzID09PSBjbHMgJiYgYy5wcm9wZXJ0eSA9PT0gcHJvcGVydHkpO1xyXG4gICAgICAgIGlmIChpdGVtKSB7XHJcbiAgICAgICAgICAgIGl0ZW0ub3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBBWFByb3BlcnR5RGVjb3JhdG9ycy5SRUdJU1RSWS5wdXNoKG5ldyBBWFByb3BlcnR5RGVjb3JhdG9yKGNscywgcHJvcGVydHksIG9wdGlvbnMpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBzdGF0aWMgaGFzKGNsczogc3RyaW5nLCBwcm9wZXJ0eTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFYUHJvcGVydHlEZWNvcmF0b3JzLlJFR0lTVFJZLnNvbWUoYyA9PiBjLmNscyA9PT0gY2xzICYmIGMucHJvcGVydHkgPT09IHByb3BlcnR5KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0KGNsczogc3RyaW5nLCBwcm9wZXJ0eTogc3RyaW5nKTogQVhQcm9wZXJ0eURlY29yYXRvciB7XHJcbiAgICAgICAgcmV0dXJuIEFYUHJvcGVydHlEZWNvcmF0b3JzLlJFR0lTVFJZLmZpbmQoYyA9PiBjLmNscyA9PT0gY2xzICYmIGMucHJvcGVydHkgPT09IHByb3BlcnR5KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNWYWxpZChwcm9wZXJ0eTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHByb3BlcnR5KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBBWFByb3BlcnR5RGVjb3JhdG9ycy5SRUdJU1RSWS5zb21lKGMgPT4gYy5wcm9wZXJ0eSA9PT0gcHJvcGVydHkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldFByb3BlcnRpZXModGFyZ2V0OiBhbnkpOiBBWFByb3BlcnR5RGVjb3JhdG9yW10ge1xyXG4gICAgICAgIGNvbnN0IGxpc3Q6IEFYUHJvcGVydHlEZWNvcmF0b3JbXSA9IFtdO1xyXG4gICAgICAgIGNvbnN0IHA6IGFueVtdID0gQXJyYXk8YW55PigpO1xyXG4gICAgICAgIGxldCBzdXBlckNsYXNzID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRhcmdldCk7XHJcbiAgICAgICAgd2hpbGUgKHN1cGVyQ2xhc3MuY29uc3RydWN0b3IubmFtZSAhPT0gJ09iamVjdCcpIHtcclxuICAgICAgICAgICAgcC5wdXNoKHN1cGVyQ2xhc3MuY29uc3RydWN0b3IpO1xyXG4gICAgICAgICAgICBzdXBlckNsYXNzID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHN1cGVyQ2xhc3MpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsaXN0LnB1c2goLi4uQVhQcm9wZXJ0eURlY29yYXRvcnMuUkVHSVNUUlkuZmlsdGVyKGMgPT4gcC5pbmNsdWRlcyhjLmNscy5jb25zdHJ1Y3RvcikpKTtcclxuICAgICAgICByZXR1cm4gbGlzdDtcclxuICAgIH1cclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJvcGVydHlFZGl0b3Iob3B0aW9uczogQVhQcm9wZXJ0eUVkaXRvckRlZikge1xyXG4gICAgcmV0dXJuICh0YXJnZXQ6IGFueSwga2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgICAob3B0aW9ucyBhcyBhbnkpLm5hbWUgPSBrZXk7XHJcbiAgICAgICAgQVhQcm9wZXJ0eURlY29yYXRvcnMucmVnaXN0ZXIodGFyZ2V0LCBrZXksIG9wdGlvbnMpO1xyXG4gICAgfTtcclxufVxyXG5cclxuIl19
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZWRpdG9yLmNsYXNzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL3Byb3BlcnR5LWVkaXRvci9wcm9wZXJ0eS1lZGl0b3IuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQTZDL0IsTUFBTSxPQUFnQix3QkFBd0I7SUErQzFDLFlBQXNCLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBNUM1QyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBR2xCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFPckMsbUNBQThCLEdBQW9DLElBQUksT0FBTyxFQUEwQixDQUFDO1FBU3hHLGdCQUFXLEdBQW9CLElBQUksWUFBWSxFQUFLLENBQUM7UUFJckQsc0JBQWlCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFxQjdELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQTFDRCxJQUFXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDL0MsQ0FBQztJQU1ELHlCQUF5QixDQUFDLFNBQWtDO1FBQ3hELElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQVlELElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxLQUFLLENBQUMsQ0FB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LEVBQUU7WUFDN0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDL0IsVUFBVSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDbEQ7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsb0JBQW9CLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkYsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7QUF2Q2MsNkJBQVEsR0FBRyxJQUFJLEtBQUssRUFBdUIsQ0FBQztBQTRDL0QsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUE0QjtJQUN2RCxPQUFPLENBQUMsTUFBVyxFQUFFLEdBQVcsRUFBRSxFQUFFO1FBQy9CLE9BQWUsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQzVCLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcblxyXG5leHBvcnQgdHlwZSBBWERhdGFUeXBlID0gJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdkYXRlJyB8ICdib29sZWFuJyB8ICdvYmplY3QnO1xyXG5leHBvcnQgdHlwZSBBWENvbnRyb2xUeXBlID0gJ3RleHRib3gnIHwgJ251bWJlcmJveCcgfCAnZGF0ZVBpY2tlcicgfCAnc3dpdGNoJyB8ICdjdXN0b20nO1xyXG5cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYUHJvcGVydHlEZWYge1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIGhpbnQ/OiBzdHJpbmc7XHJcbiAgICBkZWZhdWx0VmFsdWU/OiBhbnk7XHJcbiAgICBlZGl0b3JDbGFzczogYW55O1xyXG4gICAgZWRpdG9yT3B0aW9ucz86IGFueTtcclxuICAgIHZpc2libGU/OiBib29sZWFuIHwgKCgpID0+IGJvb2xlYW4pO1xyXG4gICAgb3JkZXI/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhQcm9wZXJ0eUVkaXRvckRlZiB7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgaGludD86IHN0cmluZztcclxuICAgIGRlZmF1bHRWYWx1ZT86IGFueTtcclxuICAgIGVkaXRvckNsYXNzOiBhbnk7XHJcbiAgICBlZGl0b3JPcHRpb25zPzogYW55O1xyXG4gICAgdmlzaWJsZT86IGJvb2xlYW4gfCAoKCkgPT4gYm9vbGVhbik7XHJcbiAgICBvcmRlcj86IG51bWJlcjtcclxufVxyXG5cclxuXHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBWFByb3BlcnR5Q29uZmlnIHtcclxuICAgIHByb3BlcnR5OiBBWFByb3BlcnR5RGVmO1xyXG4gICAgdmFsdWU6IGFueTtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhQcm9wZXJ5RWRpdG9yVmFsdWVDaGFuZ2VFdmVudCB7XHJcbiAgICBwcm9wZXJ0eTogQVhQcm9wZXJ0eURlZjtcclxuICAgIHZhbHVlOiBhbnk7XHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUHJvcGVyeUVkaXRvckNvbXBvbmVudDxUPntcclxuXHJcblxyXG4gICAgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfaW5pdGlhdGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIF92YWx1ZUJvdW5kOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHVibGljIGdldCBpbml0aWF0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luaXRpYXRlZCAmJiB0aGlzLl92YWx1ZUJvdW5kO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICB2YWxpZGF0YWJsZUNvbXBvbmVudFJlZ2lzdGVyZWQ6IFN1YmplY3Q8QVhWYWxpZGF0YWJsZUNvbXBvbmVudD4gPSBuZXcgU3ViamVjdDxBWFZhbGlkYXRhYmxlQ29tcG9uZW50PigpO1xyXG5cclxuXHJcbiAgICByZWdpc3RlckZvclZhbGlkYXRpb25Gb3JtKGNvbXBvbmVudD86IEFYVmFsaWRhdGFibGVDb21wb25lbnQpIHtcclxuICAgICAgICB0aGlzLnZhbGlkYXRhYmxlQ29tcG9uZW50UmVnaXN0ZXJlZC5uZXh0KGNvbXBvbmVudCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxUPiA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcclxuXHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBvblJlbmRlckNvbXBsZXRlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIHByaXZhdGUgX3ZhbHVlOiBUO1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogVCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgdmFsdWUodjogVCkge1xyXG4gICAgICAgIGlmICh2ICE9PSB0aGlzLl92YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHY7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KTtcclxuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAvL1RPRE86IGZpbmQgYmV0dGVyIHNvbHV0aW9uXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmFsdWVCb3VuZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICAgICAgdGhpcy5vblJlbmRlckNvbXBsZXRlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9pbml0aWF0ZWQgPSB0cnVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHVpZDogc3RyaW5nO1xyXG5cclxuICAgIGhhbmRsZVZhbHVlQ2hhbmdlKHY6IFQpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdjtcclxuICAgIH1cclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQVhQcm9wZXJ0eURlY29yYXRvciB7XHJcbiAgICBjbHM6IGFueTtcclxuICAgIHByb3BlcnR5OiBzdHJpbmc7XHJcbiAgICBvcHRpb25zOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgY2xzOiBhbnksXHJcbiAgICAgICAgcHJvcGVydHk6IHN0cmluZyxcclxuICAgICAgICBvcHRpb25zOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmNscyA9IGNscztcclxuICAgICAgICB0aGlzLnByb3BlcnR5ID0gcHJvcGVydHk7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBBWFByb3BlcnR5RGVjb3JhdG9ycyB7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBSRUdJU1RSWSA9IG5ldyBBcnJheTxBWFByb3BlcnR5RGVjb3JhdG9yPigpO1xyXG5cclxuICAgIHN0YXRpYyByZWdpc3RlcihjbHM6IHN0cmluZywgcHJvcGVydHk6IHN0cmluZywgb3B0aW9ucz86IGFueSkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW0gPSBBWFByb3BlcnR5RGVjb3JhdG9ycy5SRUdJU1RSWS5maW5kKGMgPT4gYy5jbHMgPT09IGNscyAmJiBjLnByb3BlcnR5ID09PSBwcm9wZXJ0eSk7XHJcbiAgICAgICAgaWYgKGl0ZW0pIHtcclxuICAgICAgICAgICAgaXRlbS5vcHRpb25zID0gb3B0aW9ucztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIEFYUHJvcGVydHlEZWNvcmF0b3JzLlJFR0lTVFJZLnB1c2gobmV3IEFYUHJvcGVydHlEZWNvcmF0b3IoY2xzLCBwcm9wZXJ0eSwgb3B0aW9ucykpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHN0YXRpYyBoYXMoY2xzOiBzdHJpbmcsIHByb3BlcnR5OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQVhQcm9wZXJ0eURlY29yYXRvcnMuUkVHSVNUUlkuc29tZShjID0+IGMuY2xzID09PSBjbHMgJiYgYy5wcm9wZXJ0eSA9PT0gcHJvcGVydHkpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXQoY2xzOiBzdHJpbmcsIHByb3BlcnR5OiBzdHJpbmcpOiBBWFByb3BlcnR5RGVjb3JhdG9yIHtcclxuICAgICAgICByZXR1cm4gQVhQcm9wZXJ0eURlY29yYXRvcnMuUkVHSVNUUlkuZmluZChjID0+IGMuY2xzID09PSBjbHMgJiYgYy5wcm9wZXJ0eSA9PT0gcHJvcGVydHkpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1ZhbGlkKHByb3BlcnR5OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAocHJvcGVydHkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIEFYUHJvcGVydHlEZWNvcmF0b3JzLlJFR0lTVFJZLnNvbWUoYyA9PiBjLnByb3BlcnR5ID09PSBwcm9wZXJ0eSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0UHJvcGVydGllcyh0YXJnZXQ6IGFueSk6IEFYUHJvcGVydHlEZWNvcmF0b3JbXSB7XHJcbiAgICAgICAgY29uc3QgbGlzdDogQVhQcm9wZXJ0eURlY29yYXRvcltdID0gW107XHJcbiAgICAgICAgY29uc3QgcDogYW55W10gPSBBcnJheTxhbnk+KCk7XHJcbiAgICAgICAgbGV0IHN1cGVyQ2xhc3MgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGFyZ2V0KTtcclxuICAgICAgICB3aGlsZSAoc3VwZXJDbGFzcy5jb25zdHJ1Y3Rvci5uYW1lICE9PSAnT2JqZWN0Jykge1xyXG4gICAgICAgICAgICBwLnB1c2goc3VwZXJDbGFzcy5jb25zdHJ1Y3Rvcik7XHJcbiAgICAgICAgICAgIHN1cGVyQ2xhc3MgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yoc3VwZXJDbGFzcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxpc3QucHVzaCguLi5BWFByb3BlcnR5RGVjb3JhdG9ycy5SRUdJU1RSWS5maWx0ZXIoYyA9PiBwLmluY2x1ZGVzKGMuY2xzLmNvbnN0cnVjdG9yKSkpO1xyXG4gICAgICAgIHJldHVybiBsaXN0O1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm9wZXJ0eUVkaXRvcihvcHRpb25zOiBBWFByb3BlcnR5RWRpdG9yRGVmKSB7XHJcbiAgICByZXR1cm4gKHRhcmdldDogYW55LCBrZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIChvcHRpb25zIGFzIGFueSkubmFtZSA9IGtleTtcclxuICAgICAgICBBWFByb3BlcnR5RGVjb3JhdG9ycy5yZWdpc3Rlcih0YXJnZXQsIGtleSwgb3B0aW9ucyk7XHJcbiAgICB9O1xyXG59XHJcblxyXG4iXX0=
@@ -44,6 +44,10 @@ let AXQueryBuilderRuleComponent = class AXQueryBuilderRuleComponent {
44
44
  value: 'not-contains',
45
45
  text: AXTranslator.get('queryBuilder.not-contains')
46
46
  },
47
+ {
48
+ value: 'contains-all',
49
+ text: AXTranslator.get('queryBuilder.contains-all')
50
+ },
47
51
  {
48
52
  value: 'null',
49
53
  text: AXTranslator.get('queryBuilder.null')
@@ -365,4 +369,4 @@ AXQueryBuilderRuleComponent = __decorate([
365
369
  __metadata("design:paramtypes", [])
366
370
  ], AXQueryBuilderRuleComponent);
367
371
  export { AXQueryBuilderRuleComponent };
368
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1ydWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9xdWVyeS1idWlsZGVyL3F1ZXJ5LWJ1aWxkZXItcnVsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBMkIscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoSSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBUXBGLElBQWEsMkJBQTJCLEdBQXhDLE1BQWEsMkJBQTJCO0lBbUN0QztRQTFCQSxjQUFTLEdBQVksSUFBSSxDQUFDO1FBUzFCLFNBQUksR0FBbUIsS0FBSyxDQUFDO1FBRzdCLFdBQU0sR0FBVSxFQUFFLENBQUM7UUFHbkIsaUJBQVksR0FBMEMsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFHbEcsZ0JBQVcsR0FBMEMsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFFakcsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUVqQyxrQkFBYSxHQUFZLElBQUksQ0FBQztRQUM5QiwwQkFBcUIsR0FBWSxJQUFJLENBQUM7UUFZdEMsdUJBQWtCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN6QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FB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OUIsU0FBUyxDQUFDLGtCQUFrQixDQUFDOzhCQUFtQixrQkFBa0I7cUVBQUM7QUFDOUI7SUFBckMsU0FBUyxDQUFDLHlCQUF5QixDQUFDOzhCQUFPLHlCQUF5Qjt5REFBQztBQUV0RTtJQURDLEtBQUssRUFBRTs7OERBQ2tCO0FBRzFCO0lBREMsS0FBSyxFQUFFOzhCQUNGLGtCQUFrQjt5REFBQztBQUd6QjtJQURDLEtBQUssRUFBRTs4QkFDQSxtQkFBbUI7MkRBQUM7QUFHNUI7SUFEQyxLQUFLLEVBQUU7O3lEQUNxQjtBQUc3QjtJQURDLEtBQUssRUFBRTs7MkRBQ1c7QUFHbkI7SUFEQyxNQUFNLEVBQUU7OEJBQ0ssWUFBWTtpRUFBd0U7QUFHbEc7SUFEQyxNQUFNLEVBQUU7OEJBQ0ksWUFBWTtnRUFBd0U7QUEzQnRGLDJCQUEyQjtJQU52QyxTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsZUFBZTtRQUN6QiwyeU1BQWdEO1FBQ2hELElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRTtRQUNuQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtLQUN0QyxDQUFDOztHQUNXLDJCQUEyQixDQStVdkM7U0EvVVksMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFF1ZXJ5QnVpbGRlclJ1bGUsIEFYUXVlcnlCdWlsZGVyR3JvdXAsIEFYUXVlcnlCdWlsZGVyUnVsZUV2ZW50LCBBWFF1ZXJ5QnVpbGRlckNvbnRyb2wgfSBmcm9tICcuL3F1ZXJ5LWJ1aWxkZXIuY2xhc3MnO1xyXG5pbXBvcnQgeyBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5pbXBvcnQgeyBBWFNlbGVjdEJveENvbXBvbmVudCB9IGZyb20gJy4uL3NlbGVjdGJveC9zZWxlY3Rib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhUZXh0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi4vdGV4dGJveC90ZXh0Ym94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24tZm9ybS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC1xdWVyeS1ydWxlJyxcclxuICB0ZW1wbGF0ZVVybDogJ3F1ZXJ5LWJ1aWxkZXItcnVsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgaG9zdDogeyBjbGFzczogJ2F4IGF4LXF1ZXJ5LXJ1bGUnIH0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhRdWVyeUJ1aWxkZXJSdWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdzZWxlY3RCb3gnKSBzZWxlY3RCb3g6IEFYU2VsZWN0Qm94Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdEJveFZhbHVlJykgc2VsZWN0Qm94VmFsdWU6IEFYU2VsZWN0Qm94Q29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKCdzZWxlY3RCb3hCb29sZWFuJykgc2VsZWN0Qm94Qm9vbGVhbjogQVhTZWxlY3RCb3hDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3RleHRCb3hOYW1lVmFsdWUnKSB0ZXh0Qm94TmFtZVZhbHVlOiBBWFRleHRCb3hDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50KSBmb3JtOiBBWFZhbGlkYXRpb25Gb3JtQ29tcG9uZW50O1xyXG4gIEBJbnB1dCgpXHJcbiAgaXNFZGl0aW5nOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBydWxlOiBBWFF1ZXJ5QnVpbGRlclJ1bGU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcGFyZW50OiBBWFF1ZXJ5QnVpbGRlckdyb3VwO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1vZGU6ICduZXcnIHwgJ2VkaXQnID0gJ25ldyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZmllbGRzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvblJ1bGVEZWxldGU6IEV2ZW50RW1pdHRlcjxBWFF1ZXJ5QnVpbGRlclJ1bGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYUXVlcnlCdWlsZGVyUnVsZUV2ZW50PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBydWxlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYUXVlcnlCdWlsZGVyUnVsZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhRdWVyeUJ1aWxkZXJSdWxlRXZlbnQ+KCk7XHJcblxyXG4gIHNob3dWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBpc09uRGVtYW5kTGFiZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgc2hvd1NlbGVjdEJveDogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2hvd09wZXJhdG9yU2VsZWN0Qm94OiBib29sZWFuID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgLy9DYWxsZWQgYWZ0ZXIgbmdBZnRlckNvbnRlbnRJbml0IHdoZW4gdGhlIGNvbXBvbmVudCdzIHZpZXcgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuIEFwcGxpZXMgdG8gY29tcG9uZW50cyBvbmx5LlxyXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCcgdG8gdGhlIGNsYXNzLlxyXG4gICAgaWYgKHRoaXMucnVsZS5vbkRlbWFuZExhYmVsKSB7XHJcbiAgICAgIHRoaXMuaXNPbkRlbWFuZExhYmVsID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJvdmlkZURhdGFCb29sZWFuID0gKGUpID0+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICByZXNvbHZlKFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICB2YWx1ZTogJ3RydWUnLFxyXG4gICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLnRydWUnKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdmFsdWU6ICdmYWxzZScsXHJcbiAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZmFsc2UnKVxyXG4gICAgICAgIH1cclxuICAgICAgXSk7XHJcbiAgICB9KTtcclxuICB9O1xyXG5cclxuICBzYXZlUnVsZSgpIHtcclxuICAgIHRoaXMuZm9ybS52YWxpZGF0ZSgpLnRoZW4oKGMpID0+IHt9KTtcclxuICB9XHJcblxyXG4gIHByb3ZpZGVEYXRhT3BlcmF0b3IgPSAoZSkgPT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnJ1bGUuZGF0YVR5cGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucnVsZSAmJiB0aGlzLnJ1bGUuY29udHJvbCAmJiB0aGlzLnJ1bGUuY29udHJvbC50eXBlICYmIHRoaXMucnVsZS5jb250cm9sLnR5cGUgPT0gJ3NlbGVjdEJveCcpIHtcclxuICAgICAgICAgIGlmICh0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zLm1vZGUgPT0gJ211bHRpcGxlJykge1xyXG4gICAgICAgICAgICByZXNvbHZlKFtcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ2NvbnRhaW5zJyxcclxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5jb250YWlucycpXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ25vdC1jb250YWlucycsXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LWNvbnRhaW5zJylcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlOiAnbnVsbCcsXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubnVsbCcpXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ25vdC1udWxsJyxcclxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtbnVsbCcpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUoW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlOiAnZXF1YWwnLFxyXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmVxdWFsJylcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlOiAnbm90LWVxdWFsJyxcclxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtZXF1YWwnKVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdmFsdWU6ICdudWxsJyxcclxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5udWxsJylcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlOiAnbm90LW51bGwnLFxyXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1udWxsJylcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXNvbHZlKFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHZhbHVlOiAnZXF1YWwnLFxyXG4gICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5lcXVhbCcpXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB2YWx1ZTogJ2NvbnRhaW5zJyxcclxuICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuY29udGFpbnMnKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdzdGFydC13aXRoJyxcclxuICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuc3RhcnQtd2l0aCcpXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB2YWx1ZTogJ2VuZC13aXRoJyxcclxuICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZW5kLXdpdGgnKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdub3QtZXF1YWwnLFxyXG4gICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtZXF1YWwnKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdudWxsJyxcclxuICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubnVsbCcpXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB2YWx1ZTogJ25vdC1udWxsJyxcclxuICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LW51bGwnKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMucnVsZS5kYXRhVHlwZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICByZXNvbHZlKFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWU6ICdlcXVhbCcsXHJcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5lcXVhbCcpXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB2YWx1ZTogJ2d0JyxcclxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmdyZWF0ZXItdGhhbicpXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB2YWx1ZTogJ2d0ZScsXHJcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ncmVhdGVyLXRoYW4tZXF1YWwnKVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWU6ICdsdCcsXHJcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5sZXNzLXRoYW4nKVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWU6ICdsdGUnLFxyXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubGVzcy10aGFuLWVxdWFsJylcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlOiAnbm90LWVxdWFsJyxcclxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1lcXVhbCcpXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB2YWx1ZTogJ251bGwnLFxyXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubnVsbCcpXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB2YWx1ZTogJ25vdC1udWxsJyxcclxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1udWxsJylcclxuICAgICAgICAgIH1cclxuICAgICAgICBdKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5ydWxlLmRhdGFUeXBlID09PSAnYm9vbGVhbicpIHtcclxuICAgICAgICByZXNvbHZlKFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWU6ICdlcXVhbCcsXHJcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5lcXVhbCcpXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB2YWx1ZTogJ251bGwnLFxyXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubnVsbCcpXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB2YWx1ZTogJ25vdC1udWxsJyxcclxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1udWxsJylcclxuICAgICAgICAgIH1cclxuICAgICAgICBdKTtcclxuICAgICAgfVxyXG4gICAgICByZXNvbHZlKFtdKTtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIGhhbmRsZUVkaXRDbGljaygpIHtcclxuICAgIHRoaXMuaXNFZGl0aW5nID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNvbW1pdENsaWNrKCkge1xyXG4gICAgdGhpcy5pc0VkaXRpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMucnVsZUNoYW5nZWQuZW1pdCh7IGl0ZW1zOiB0aGlzLnJ1bGUsIGNvbXBvbmVudDogdGhpcyB9KTtcclxuICB9XHJcbiAgaGFuZGxlUmVtb3ZlQ2xpY2soKSB7XHJcbiAgICB0aGlzLm9uUnVsZURlbGV0ZS5lbWl0KHsgaXRlbXM6IHRoaXMucnVsZSwgY29tcG9uZW50OiB0aGlzIH0pO1xyXG4gIH1cclxuICBjYXB0aW9uQ2hhbmdlKGUpIHtcclxuICAgIGlmIChlLnNlbGVjdGVkSXRlbXNbMF0pIHtcclxuICAgICAgdGhpcy5ydWxlLmNhcHRpb24gPSBlLnNlbGVjdGVkSXRlbXNbMF0uY2FwdGlvbjtcclxuICAgICAgdGhpcy5ydWxlLmRhdGFGaWVsZCA9IGUuc2VsZWN0ZWRJdGVtc1swXS5kYXRhRmllbGQ7XHJcbiAgICAgIHRoaXMucnVsZS5kYXRhVHlwZSA9IGUuc2VsZWN0ZWRJdGVtc1swXS5kYXRhVHlwZTtcclxuICAgICAgdGhpcy5ydWxlLmNvbnRyb2wgPSBlLnNlbGVjdGVkSXRlbXNbMF0uY29udHJvbCB8fCBuZXcgQVhRdWVyeUJ1aWxkZXJDb250cm9sKCk7XHJcbiAgICAgIHRoaXMucnVsZS5kYXRhRmllbGRJdGVtWzBdID0gZS5zZWxlY3RlZEl0ZW1zWzBdO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNlbGVjdEJveCkge1xyXG4gICAgICBpZiAodGhpcy5ydWxlLmNvbnRyb2wudHlwZSA9PT0gJ3NlbGVjdEJveCcgJiYgdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucy5tb2RlID09ICdtdWx0aXBsZScpIHtcclxuICAgICAgICB0aGlzLnJ1bGUub3BlcmF0b3IgPSAnY29udGFpbnMnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucnVsZS5vcGVyYXRvciA9ICdlcXVhbCc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZWxlY3RCb3gucmVmcmVzaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2hvd09wZXJhdG9yU2VsZWN0Qm94ID0gZmFsc2U7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zaG93T3BlcmF0b3JTZWxlY3RCb3ggPSB0cnVlO1xyXG4gICAgfSwgMjApO1xyXG5cclxuICAgIHRoaXMucnVsZS52YWx1ZSA9IG51bGw7XHJcbiAgICB0aGlzLnJ1bGUudmFsdWVJdGVtID0gW107XHJcbiAgICB0aGlzLnJ1bGUudGV4dCA9ICcnO1xyXG5cclxuICAgIGlmICh0aGlzLnJ1bGUuY29udHJvbC50eXBlID09PSAnc2VsZWN0Qm94JyAmJiB0aGlzLnNlbGVjdEJveFZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2hvd1NlbGVjdEJveCA9IGZhbHNlO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnNob3dTZWxlY3RCb3ggPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0Qm94VmFsdWUucmVmcmVzaCgpO1xyXG4gICAgICB9LCAyMCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ydWxlLmNvbnRyb2wudHlwZSA9PSAnYm9vbGVhbicpIHtcclxuICAgICAgdGhpcy5zZWxlY3RCb3hCb29sZWFuLnJlZnJlc2goKTtcclxuICAgIH1cclxuICAgIHRoaXMucnVsZUNoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgaXRlbXM6IHRoaXMucnVsZSB9KTtcclxuICB9XHJcblxyXG4gIG9wZXJhdG9yQ2hhbmdlKGUpIHtcclxuICAgIHRoaXMucnVsZS5vcGVyYXRvciA9IGVbMF0udmFsdWU7XHJcbiAgICB0aGlzLnJ1bGVDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGl0ZW1zOiB0aGlzLnJ1bGUgfSk7XHJcblxyXG4gICAgaWYgKGVbMF0udmFsdWUgIT09ICdudWxsJyAmJiBlWzBdLnZhbHVlICE9PSAnbm90LW51bGwnKSB7XHJcbiAgICAgIHRoaXMuc2hvd1ZhbHVlID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd1ZhbHVlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMucnVsZS52YWx1ZSA9ICcnO1xyXG4gICAgICB0aGlzLnJ1bGUudGV4dCA9ICcnO1xyXG4gICAgICB0aGlzLnJ1bGUudmFsdWVJdGVtID0gW107XHJcbiAgICAgIHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHZhbHVlQ2hhbmdlKGUpIHtcclxuICAgIC8vIHRoaXMucnVsZS50ZXh0ID0gZS52YWx1ZSA9PSB1bmRlZmluZWQgPyBlWzBdLnZhbHVlIDogKGUudmFsdWUgPT0gbnVsbCA/ICcnIDogZS52YWx1ZSk7XHJcblxyXG4gICAgdGhpcy5ydWxlLnRleHQgPSBlWzBdID8gKGVbMF0udmFsdWUgPT0gbnVsbCA/ICcnIDogZVswXS52YWx1ZSkgOiBlLnZhbHVlID09IG51bGwgPyAnJyA6IGUudmFsdWU7XHJcbiAgICB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9ICcnO1xyXG4gICAgdGhpcy5ydWxlQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBpdGVtczogdGhpcy5ydWxlIH0pO1xyXG4gIH1cclxuICBvbkRlbWFuZExhYmVsQ2hhbmdlKGUpIHtcclxuICAgIC8vIHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID0gZS52YWx1ZSA9PSB1bmRlZmluZWQgPyAnPz8/P3wnICsgZVswXS52YWx1ZSA6ICc/Pz8/fCcgKyBlLnZhbHVlO1xyXG4gICAgdGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPSBlWzBdID8gJz8/Pz98JyArIChlWzBdLnZhbHVlID09IG51bGwgPyAnJyA6IGVbMF0udmFsdWUpIDogJz8/Pz98JyArIChlLnZhbHVlID09IG51bGwgPyAnJyA6IGUudmFsdWUpO1xyXG4gICAgdGhpcy5ydWxlLnZhbHVlID0gJyc7XHJcbiAgICB0aGlzLnJ1bGUudGV4dCA9ICcnO1xyXG4gICAgdGhpcy5ydWxlLnZhbHVlSXRlbSA9IFtdO1xyXG5cclxuICAgIHRoaXMucnVsZUNoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgaXRlbXM6IHRoaXMucnVsZSB9KTtcclxuICB9XHJcbiAgdmFsdWVCb29sZWFuQ2hhbmdlKGUpIHtcclxuICAgIC8vIHRoaXMucnVsZS50ZXh0ID0gZS52YWx1ZSA9PSB1bmRlZmluZWQgPyBlWzBdLnZhbHVlIDogKGUudmFsdWUgPT0gbnVsbCA/ICcnIDogZS52YWx1ZSk7XHJcbiAgICB0aGlzLnJ1bGUudGV4dCA9IGVbMF0gPyAoZVswXS52YWx1ZSA9PSBudWxsID8gJycgOiBlWzBdLnZhbHVlKSA6IGUudmFsdWUgPT0gbnVsbCA/ICcnIDogZS52YWx1ZTtcclxuICAgIHRoaXMucnVsZS52YWx1ZSA9IGUudmFsdWUgPT0gdW5kZWZpbmVkID8gZVswXS52YWx1ZSA6IGUudmFsdWU7XHJcbiAgICB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9ICcnO1xyXG4gICAgdGhpcy5ydWxlQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBpdGVtczogdGhpcy5ydWxlIH0pO1xyXG4gIH1cclxuICBnZXRPbkRlbWFuZE5hbWUodikge1xyXG4gICAgcmV0dXJuIHYgPyB2LnNwbGl0KCd8JylbMV0gOiAnJztcclxuICB9XHJcbiAgc2VsZWN0ZWRJdGVtc0NoYW5nZShlKSB7XHJcbiAgICBsZXQgbiA9IHRoaXMuZ2V0T3B0aW9uKCd0ZXh0RmllbGQnKTtcclxuXHJcbiAgICBpZiAodGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucy5tb2RlID09PSAnc2luZ2xlJykge1xyXG4gICAgICB0aGlzLnJ1bGUudGV4dCA9IGVbMF1bbl07XHJcbiAgICAgIGlmICh0aGlzLnJ1bGUgJiYgdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucy52YWx1ZUZpZWxkKSB7XHJcbiAgICAgICAgdGhpcy5ydWxlLnZhbHVlID0gZVswXVt0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zLnZhbHVlRmllbGRdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucnVsZS52YWx1ZSA9IGVbMF0udmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5ydWxlLnZhbHVlSXRlbVswXSA9IGVbMF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJ1bGUudGV4dCA9IGUubWFwKCh4KSA9PiB4W25dKS5qb2luKCctICcpO1xyXG4gICAgICBjb25zdCBUSEFUID0gdGhpcztcclxuICAgICAgaWYgKFRIQVQucnVsZSAmJiBUSEFULnJ1bGUuY29udHJvbC5vcHRpb25zLnZhbHVlRmllbGQpIHtcclxuICAgICAgICBUSEFULnJ1bGUudmFsdWUgPSBlLm1hcChmdW5jdGlvbiAoaXRlbSkge1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW1bVEhBVC5ydWxlLmNvbnRyb2wub3B0aW9ucy52YWx1ZUZpZWxkXTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnJ1bGUudmFsdWUgPSBlLm1hcChmdW5jdGlvbiAoaXRlbSkge1xyXG4gICAgICAgICAgcmV0dXJuIGl0ZW0udmFsdWU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5ydWxlLnZhbHVlSXRlbSA9IGU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5ydWxlQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBpdGVtczogdGhpcy5ydWxlIH0pO1xyXG4gICAgdGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPSAnJztcclxuICB9XHJcbiAgb25EZW1hbmRMYWJlbChlKSB7XHJcbiAgICAvLyBpZiAoZS52YWx1ZSAmJiAodGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPT0gJz8/Pz98JyB8fCB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID09PSBudWxsIHx8IHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID09PSAnJykpIHtcclxuICAgIC8vICAgdGhpcy50ZXh0Qm94TmFtZVZhbHVlLmZvY3VzKCk7XHJcbiAgICAvLyB9XHJcbiAgICBpZiAoZS52YWx1ZSA9PSBmYWxzZSkge1xyXG4gICAgICB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9ICcnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc09uRGVtYW5kTGFiZWwgPSBlLnZhbHVlO1xyXG4gIH1cclxuICBnZXRQcm92aWRlRGF0YSA9IChlKSA9PiB7XHJcbiAgICBpZiAodGhpcy5ydWxlICYmIHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMgJiYgdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucy5kYXRhU291cmNlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zLmRhdGFTb3VyY2UoeyAuLi5lLCBvcHRpb25zRGF0YTogeyAuLi50aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zIH0gfSk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgZ2V0T3B0aW9uKG5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMgPyB0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zW25hbWVdIDogbnVsbDtcclxuICB9XHJcbn1cclxuIl19
372
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1ydWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9xdWVyeS1idWlsZGVyL3F1ZXJ5LWJ1aWxkZXItcnVsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBMkIscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoSSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBUXBGLElBQWEsMkJBQTJCLEdBQXhDLE1BQWEsMkJBQTJCO0lBbUN0QztRQTFCQSxjQUFTLEdBQVksSUFBSSxDQUFDO1FBUzFCLFNBQUksR0FBbUIsS0FBSyxDQUFDO1FBRzdCLFdBQU0sR0FBVSxFQUFFLENBQUM7UUFHbkIsaUJBQVksR0FBMEMsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFHbEcsZ0JBQVcsR0FBMEMsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFFakcsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUUzQixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUVqQyxrQkFBYSxHQUFZLElBQUksQ0FBQztRQUM5QiwwQkFBcUIsR0FBWSxJQUFJLENBQUM7UUFZdEMsdUJBQWtCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN6QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FB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OEJBQWlCLG9CQUFvQjttRUFBQztBQUVuQztJQUE5QixTQUFTLENBQUMsa0JBQWtCLENBQUM7OEJBQW1CLG9CQUFvQjtxRUFBQztBQUV2QztJQUE5QixTQUFTLENBQUMsa0JBQWtCLENBQUM7OEJBQW1CLGtCQUFrQjtxRUFBQztBQUM5QjtJQUFyQyxTQUFTLENBQUMseUJBQXlCLENBQUM7OEJBQU8seUJBQXlCO3lEQUFDO0FBRXRFO0lBREMsS0FBSyxFQUFFOzs4REFDa0I7QUFHMUI7SUFEQyxLQUFLLEVBQUU7OEJBQ0Ysa0JBQWtCO3lEQUFDO0FBR3pCO0lBREMsS0FBSyxFQUFFOzhCQUNBLG1CQUFtQjsyREFBQztBQUc1QjtJQURDLEtBQUssRUFBRTs7eURBQ3FCO0FBRzdCO0lBREMsS0FBSyxFQUFFOzsyREFDVztBQUduQjtJQURDLE1BQU0sRUFBRTs4QkFDSyxZQUFZO2lFQUF3RTtBQUdsRztJQURDLE1BQU0sRUFBRTs4QkFDSSxZQUFZO2dFQUF3RTtBQTNCdEYsMkJBQTJCO0lBTnZDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxlQUFlO1FBQ3pCLDJ5TUFBZ0Q7UUFDaEQsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFO1FBQ25DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO0tBQ3RDLENBQUM7O0dBQ1csMkJBQTJCLENBbVZ2QztTQW5WWSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYUXVlcnlCdWlsZGVyUnVsZSwgQVhRdWVyeUJ1aWxkZXJHcm91cCwgQVhRdWVyeUJ1aWxkZXJSdWxlRXZlbnQsIEFYUXVlcnlCdWlsZGVyQ29udHJvbCB9IGZyb20gJy4vcXVlcnktYnVpbGRlci5jbGFzcyc7XHJcbmltcG9ydCB7IEFYVHJhbnNsYXRvciB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcbmltcG9ydCB7IEFYU2VsZWN0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi4vc2VsZWN0Ym94L3NlbGVjdGJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWFRleHRCb3hDb21wb25lbnQgfSBmcm9tICcuLi90ZXh0Ym94L3RleHRib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhWYWxpZGF0aW9uRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1mb3JtLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LXF1ZXJ5LXJ1bGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAncXVlcnktYnVpbGRlci1ydWxlLmNvbXBvbmVudC5odG1sJyxcclxuICBob3N0OiB7IGNsYXNzOiAnYXggYXgtcXVlcnktcnVsZScgfSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFF1ZXJ5QnVpbGRlclJ1bGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdEJveCcpIHNlbGVjdEJveDogQVhTZWxlY3RCb3hDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnc2VsZWN0Qm94VmFsdWUnKSBzZWxlY3RCb3hWYWx1ZTogQVhTZWxlY3RCb3hDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdEJveEJvb2xlYW4nKSBzZWxlY3RCb3hCb29sZWFuOiBBWFNlbGVjdEJveENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZCgndGV4dEJveE5hbWVWYWx1ZScpIHRleHRCb3hOYW1lVmFsdWU6IEFYVGV4dEJveENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQpIGZvcm06IEFYVmFsaWRhdGlvbkZvcm1Db21wb25lbnQ7XHJcbiAgQElucHV0KClcclxuICBpc0VkaXRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHJ1bGU6IEFYUXVlcnlCdWlsZGVyUnVsZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwYXJlbnQ6IEFYUXVlcnlCdWlsZGVyR3JvdXA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbW9kZTogJ25ldycgfCAnZWRpdCcgPSAnbmV3JztcclxuXHJcbiAgQElucHV0KClcclxuICBmaWVsZHM6IGFueVtdID0gW107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uUnVsZURlbGV0ZTogRXZlbnRFbWl0dGVyPEFYUXVlcnlCdWlsZGVyUnVsZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhRdWVyeUJ1aWxkZXJSdWxlRXZlbnQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHJ1bGVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhRdWVyeUJ1aWxkZXJSdWxlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFF1ZXJ5QnVpbGRlclJ1bGVFdmVudD4oKTtcclxuXHJcbiAgc2hvd1ZhbHVlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGlzT25EZW1hbmRMYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBzaG93U2VsZWN0Qm94OiBib29sZWFuID0gdHJ1ZTtcclxuICBzaG93T3BlcmF0b3JTZWxlY3RCb3g6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAvL0NhbGxlZCBhZnRlciBuZ0FmdGVyQ29udGVudEluaXQgd2hlbiB0aGUgY29tcG9uZW50J3MgdmlldyBoYXMgYmVlbiBpbml0aWFsaXplZC4gQXBwbGllcyB0byBjb21wb25lbnRzIG9ubHkuXHJcbiAgICAvL0FkZCAnaW1wbGVtZW50cyBBZnRlclZpZXdJbml0JyB0byB0aGUgY2xhc3MuXHJcbiAgICBpZiAodGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwpIHtcclxuICAgICAgdGhpcy5pc09uRGVtYW5kTGFiZWwgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcm92aWRlRGF0YUJvb2xlYW4gPSAoZSkgPT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIHJlc29sdmUoW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHZhbHVlOiAndHJ1ZScsXHJcbiAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIudHJ1ZScpXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICB2YWx1ZTogJ2ZhbHNlJyxcclxuICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5mYWxzZScpXHJcbiAgICAgICAgfVxyXG4gICAgICBdKTtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIHNhdmVSdWxlKCkge1xyXG4gICAgdGhpcy5mb3JtLnZhbGlkYXRlKCkudGhlbigoYykgPT4ge30pO1xyXG4gIH1cclxuXHJcbiAgcHJvdmlkZURhdGFPcGVyYXRvciA9IChlKSA9PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgaWYgKHRoaXMucnVsZS5kYXRhVHlwZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBpZiAodGhpcy5ydWxlICYmIHRoaXMucnVsZS5jb250cm9sICYmIHRoaXMucnVsZS5jb250cm9sLnR5cGUgJiYgdGhpcy5ydWxlLmNvbnRyb2wudHlwZSA9PSAnc2VsZWN0Qm94Jykge1xyXG4gICAgICAgICAgaWYgKHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMubW9kZSA9PSAnbXVsdGlwbGUnKSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUoW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlOiAnY29udGFpbnMnLFxyXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmNvbnRhaW5zJylcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlOiAnbm90LWNvbnRhaW5zJyxcclxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtY29udGFpbnMnKVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdmFsdWU6ICdjb250YWlucy1hbGwnLFxyXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmNvbnRhaW5zLWFsbCcpXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ251bGwnLFxyXG4gICAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm51bGwnKVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdmFsdWU6ICdub3QtbnVsbCcsXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LW51bGwnKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXNvbHZlKFtcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ2VxdWFsJyxcclxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5lcXVhbCcpXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ25vdC1lcXVhbCcsXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LWVxdWFsJylcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHZhbHVlOiAnbnVsbCcsXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubnVsbCcpXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ25vdC1udWxsJyxcclxuICAgICAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtbnVsbCcpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVzb2x2ZShbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB2YWx1ZTogJ2VxdWFsJyxcclxuICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZXF1YWwnKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdjb250YWlucycsXHJcbiAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmNvbnRhaW5zJylcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHZhbHVlOiAnc3RhcnQtd2l0aCcsXHJcbiAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLnN0YXJ0LXdpdGgnKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdlbmQtd2l0aCcsXHJcbiAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmVuZC13aXRoJylcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHZhbHVlOiAnbm90LWVxdWFsJyxcclxuICAgICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubm90LWVxdWFsJylcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHZhbHVlOiAnbnVsbCcsXHJcbiAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm51bGwnKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdmFsdWU6ICdub3QtbnVsbCcsXHJcbiAgICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm5vdC1udWxsJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnJ1bGUuZGF0YVR5cGUgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgcmVzb2x2ZShbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlOiAnZXF1YWwnLFxyXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZXF1YWwnKVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWU6ICdndCcsXHJcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ncmVhdGVyLXRoYW4nKVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWU6ICdndGUnLFxyXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZ3JlYXRlci10aGFuLWVxdWFsJylcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlOiAnbHQnLFxyXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIubGVzcy10aGFuJylcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlOiAnbHRlJyxcclxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLmxlc3MtdGhhbi1lcXVhbCcpXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB2YWx1ZTogJ25vdC1lcXVhbCcsXHJcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtZXF1YWwnKVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWU6ICdudWxsJyxcclxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm51bGwnKVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWU6ICdub3QtbnVsbCcsXHJcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtbnVsbCcpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMucnVsZS5kYXRhVHlwZSA9PT0gJ2Jvb2xlYW4nKSB7XHJcbiAgICAgICAgcmVzb2x2ZShbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlOiAnZXF1YWwnLFxyXG4gICAgICAgICAgICB0ZXh0OiBBWFRyYW5zbGF0b3IuZ2V0KCdxdWVyeUJ1aWxkZXIuZXF1YWwnKVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWU6ICdudWxsJyxcclxuICAgICAgICAgICAgdGV4dDogQVhUcmFuc2xhdG9yLmdldCgncXVlcnlCdWlsZGVyLm51bGwnKVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWU6ICdub3QtbnVsbCcsXHJcbiAgICAgICAgICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ3F1ZXJ5QnVpbGRlci5ub3QtbnVsbCcpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXSk7XHJcbiAgICAgIH1cclxuICAgICAgcmVzb2x2ZShbXSk7XHJcbiAgICB9KTtcclxuICB9O1xyXG5cclxuICBoYW5kbGVFZGl0Q2xpY2soKSB7XHJcbiAgICB0aGlzLmlzRWRpdGluZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDb21taXRDbGljaygpIHtcclxuICAgIHRoaXMuaXNFZGl0aW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLnJ1bGVDaGFuZ2VkLmVtaXQoeyBpdGVtczogdGhpcy5ydWxlLCBjb21wb25lbnQ6IHRoaXMgfSk7XHJcbiAgfVxyXG4gIGhhbmRsZVJlbW92ZUNsaWNrKCkge1xyXG4gICAgdGhpcy5vblJ1bGVEZWxldGUuZW1pdCh7IGl0ZW1zOiB0aGlzLnJ1bGUsIGNvbXBvbmVudDogdGhpcyB9KTtcclxuICB9XHJcbiAgY2FwdGlvbkNoYW5nZShlKSB7XHJcbiAgICBpZiAoZS5zZWxlY3RlZEl0ZW1zWzBdKSB7XHJcbiAgICAgIHRoaXMucnVsZS5jYXB0aW9uID0gZS5zZWxlY3RlZEl0ZW1zWzBdLmNhcHRpb247XHJcbiAgICAgIHRoaXMucnVsZS5kYXRhRmllbGQgPSBlLnNlbGVjdGVkSXRlbXNbMF0uZGF0YUZpZWxkO1xyXG4gICAgICB0aGlzLnJ1bGUuZGF0YVR5cGUgPSBlLnNlbGVjdGVkSXRlbXNbMF0uZGF0YVR5cGU7XHJcbiAgICAgIHRoaXMucnVsZS5jb250cm9sID0gZS5zZWxlY3RlZEl0ZW1zWzBdLmNvbnRyb2wgfHwgbmV3IEFYUXVlcnlCdWlsZGVyQ29udHJvbCgpO1xyXG4gICAgICB0aGlzLnJ1bGUuZGF0YUZpZWxkSXRlbVswXSA9IGUuc2VsZWN0ZWRJdGVtc1swXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zZWxlY3RCb3gpIHtcclxuICAgICAgaWYgKHRoaXMucnVsZS5jb250cm9sLnR5cGUgPT09ICdzZWxlY3RCb3gnICYmIHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMubW9kZSA9PSAnbXVsdGlwbGUnKSB7XHJcbiAgICAgICAgdGhpcy5ydWxlLm9wZXJhdG9yID0gJ2NvbnRhaW5zJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnJ1bGUub3BlcmF0b3IgPSAnZXF1YWwnO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2VsZWN0Qm94LnJlZnJlc2goKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNob3dPcGVyYXRvclNlbGVjdEJveCA9IGZhbHNlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2hvd09wZXJhdG9yU2VsZWN0Qm94ID0gdHJ1ZTtcclxuICAgIH0sIDIwKTtcclxuXHJcbiAgICB0aGlzLnJ1bGUudmFsdWUgPSBudWxsO1xyXG4gICAgdGhpcy5ydWxlLnZhbHVlSXRlbSA9IFtdO1xyXG4gICAgdGhpcy5ydWxlLnRleHQgPSAnJztcclxuXHJcbiAgICBpZiAodGhpcy5ydWxlLmNvbnRyb2wudHlwZSA9PT0gJ3NlbGVjdEJveCcgJiYgdGhpcy5zZWxlY3RCb3hWYWx1ZSkge1xyXG4gICAgICB0aGlzLnNob3dTZWxlY3RCb3ggPSBmYWxzZTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zaG93U2VsZWN0Qm94ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNlbGVjdEJveFZhbHVlLnJlZnJlc2goKTtcclxuICAgICAgfSwgMjApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucnVsZS5jb250cm9sLnR5cGUgPT0gJ2Jvb2xlYW4nKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0Qm94Qm9vbGVhbi5yZWZyZXNoKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJ1bGVDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGl0ZW1zOiB0aGlzLnJ1bGUgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVyYXRvckNoYW5nZShlKSB7XHJcbiAgICB0aGlzLnJ1bGUub3BlcmF0b3IgPSBlWzBdLnZhbHVlO1xyXG4gICAgdGhpcy5ydWxlQ2hhbmdlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBpdGVtczogdGhpcy5ydWxlIH0pO1xyXG5cclxuICAgIGlmIChlWzBdLnZhbHVlICE9PSAnbnVsbCcgJiYgZVswXS52YWx1ZSAhPT0gJ25vdC1udWxsJykge1xyXG4gICAgICB0aGlzLnNob3dWYWx1ZSA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3dWYWx1ZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnJ1bGUudmFsdWUgPSAnJztcclxuICAgICAgdGhpcy5ydWxlLnRleHQgPSAnJztcclxuICAgICAgdGhpcy5ydWxlLnZhbHVlSXRlbSA9IFtdO1xyXG4gICAgICB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuICB2YWx1ZUNoYW5nZShlKSB7XHJcbiAgICAvLyB0aGlzLnJ1bGUudGV4dCA9IGUudmFsdWUgPT0gdW5kZWZpbmVkID8gZVswXS52YWx1ZSA6IChlLnZhbHVlID09IG51bGwgPyAnJyA6IGUudmFsdWUpO1xyXG5cclxuICAgIHRoaXMucnVsZS50ZXh0ID0gZVswXSA/IChlWzBdLnZhbHVlID09IG51bGwgPyAnJyA6IGVbMF0udmFsdWUpIDogZS52YWx1ZSA9PSBudWxsID8gJycgOiBlLnZhbHVlO1xyXG4gICAgdGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPSAnJztcclxuICAgIHRoaXMucnVsZUNoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgaXRlbXM6IHRoaXMucnVsZSB9KTtcclxuICB9XHJcbiAgb25EZW1hbmRMYWJlbENoYW5nZShlKSB7XHJcbiAgICAvLyB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9IGUudmFsdWUgPT0gdW5kZWZpbmVkID8gJz8/Pz98JyArIGVbMF0udmFsdWUgOiAnPz8/P3wnICsgZS52YWx1ZTtcclxuICAgIHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID0gZVswXSA/ICc/Pz8/fCcgKyAoZVswXS52YWx1ZSA9PSBudWxsID8gJycgOiBlWzBdLnZhbHVlKSA6ICc/Pz8/fCcgKyAoZS52YWx1ZSA9PSBudWxsID8gJycgOiBlLnZhbHVlKTtcclxuICAgIHRoaXMucnVsZS52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5ydWxlLnRleHQgPSAnJztcclxuICAgIHRoaXMucnVsZS52YWx1ZUl0ZW0gPSBbXTtcclxuXHJcbiAgICB0aGlzLnJ1bGVDaGFuZ2VkLmVtaXQoeyBjb21wb25lbnQ6IHRoaXMsIGl0ZW1zOiB0aGlzLnJ1bGUgfSk7XHJcbiAgfVxyXG4gIHZhbHVlQm9vbGVhbkNoYW5nZShlKSB7XHJcbiAgICAvLyB0aGlzLnJ1bGUudGV4dCA9IGUudmFsdWUgPT0gdW5kZWZpbmVkID8gZVswXS52YWx1ZSA6IChlLnZhbHVlID09IG51bGwgPyAnJyA6IGUudmFsdWUpO1xyXG4gICAgdGhpcy5ydWxlLnRleHQgPSBlWzBdID8gKGVbMF0udmFsdWUgPT0gbnVsbCA/ICcnIDogZVswXS52YWx1ZSkgOiBlLnZhbHVlID09IG51bGwgPyAnJyA6IGUudmFsdWU7XHJcbiAgICB0aGlzLnJ1bGUudmFsdWUgPSBlLnZhbHVlID09IHVuZGVmaW5lZCA/IGVbMF0udmFsdWUgOiBlLnZhbHVlO1xyXG4gICAgdGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPSAnJztcclxuICAgIHRoaXMucnVsZUNoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgaXRlbXM6IHRoaXMucnVsZSB9KTtcclxuICB9XHJcbiAgZ2V0T25EZW1hbmROYW1lKHYpIHtcclxuICAgIHJldHVybiB2ID8gdi5zcGxpdCgnfCcpWzFdIDogJyc7XHJcbiAgfVxyXG4gIHNlbGVjdGVkSXRlbXNDaGFuZ2UoZSkge1xyXG4gICAgbGV0IG4gPSB0aGlzLmdldE9wdGlvbigndGV4dEZpZWxkJyk7XHJcblxyXG4gICAgaWYgKHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMubW9kZSA9PT0gJ3NpbmdsZScpIHtcclxuICAgICAgdGhpcy5ydWxlLnRleHQgPSBlWzBdW25dO1xyXG4gICAgICBpZiAodGhpcy5ydWxlICYmIHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMudmFsdWVGaWVsZCkge1xyXG4gICAgICAgIHRoaXMucnVsZS52YWx1ZSA9IGVbMF1bdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucy52YWx1ZUZpZWxkXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnJ1bGUudmFsdWUgPSBlWzBdLnZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucnVsZS52YWx1ZUl0ZW1bMF0gPSBlWzBdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5ydWxlLnRleHQgPSBlLm1hcCgoeCkgPT4geFtuXSkuam9pbignLSAnKTtcclxuICAgICAgY29uc3QgVEhBVCA9IHRoaXM7XHJcbiAgICAgIGlmIChUSEFULnJ1bGUgJiYgVEhBVC5ydWxlLmNvbnRyb2wub3B0aW9ucy52YWx1ZUZpZWxkKSB7XHJcbiAgICAgICAgVEhBVC5ydWxlLnZhbHVlID0gZS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcclxuICAgICAgICAgIHJldHVybiBpdGVtW1RIQVQucnVsZS5jb250cm9sLm9wdGlvbnMudmFsdWVGaWVsZF07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5ydWxlLnZhbHVlID0gZS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLnZhbHVlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucnVsZS52YWx1ZUl0ZW0gPSBlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucnVsZUNoYW5nZWQuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgaXRlbXM6IHRoaXMucnVsZSB9KTtcclxuICAgIHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID0gJyc7XHJcbiAgfVxyXG4gIG9uRGVtYW5kTGFiZWwoZSkge1xyXG4gICAgLy8gaWYgKGUudmFsdWUgJiYgKHRoaXMucnVsZS5vbkRlbWFuZExhYmVsID09ICc/Pz8/fCcgfHwgdGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPT09IHVuZGVmaW5lZCB8fCB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9PT0gbnVsbCB8fCB0aGlzLnJ1bGUub25EZW1hbmRMYWJlbCA9PT0gJycpKSB7XHJcbiAgICAvLyAgIHRoaXMudGV4dEJveE5hbWVWYWx1ZS5mb2N1cygpO1xyXG4gICAgLy8gfVxyXG4gICAgaWYgKGUudmFsdWUgPT0gZmFsc2UpIHtcclxuICAgICAgdGhpcy5ydWxlLm9uRGVtYW5kTGFiZWwgPSAnJztcclxuICAgIH1cclxuICAgIHRoaXMuaXNPbkRlbWFuZExhYmVsID0gZS52YWx1ZTtcclxuICB9XHJcbiAgZ2V0UHJvdmlkZURhdGEgPSAoZSkgPT4ge1xyXG4gICAgaWYgKHRoaXMucnVsZSAmJiB0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zICYmIHRoaXMucnVsZS5jb250cm9sLm9wdGlvbnMuZGF0YVNvdXJjZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucy5kYXRhU291cmNlKHsgLi4uZSwgb3B0aW9uc0RhdGE6IHsgLi4udGhpcy5ydWxlLmNvbnRyb2wub3B0aW9ucyB9IH0pO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIGdldE9wdGlvbihuYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnJ1bGUuY29udHJvbC5vcHRpb25zID8gdGhpcy5ydWxlLmNvbnRyb2wub3B0aW9uc1tuYW1lXSA6IG51bGw7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -72,7 +72,6 @@ let AXQueryBuilderService = class AXQueryBuilderService {
72
72
  return __awaiter(this, void 0, void 0, function* () {
73
73
  return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
74
74
  var e_1, _a;
75
- ;
76
75
  var query;
77
76
  if (group.items.length > 0) {
78
77
  query = ' ( ';
@@ -123,8 +122,10 @@ let AXQueryBuilderService = class AXQueryBuilderService {
123
122
  case 'end-with':
124
123
  codeOperator = item.operator;
125
124
  break;
125
+ default:
126
+ codeOperator = item.operator;
127
+ break;
126
128
  }
127
- ;
128
129
  query = query + ' ' + item.caption + ' ' + codeOperator + ' ' + item.text;
129
130
  }
130
131
  if (id !== group.items.length - 1 && query != ' ( ') {
@@ -151,7 +152,6 @@ let AXQueryBuilderService = class AXQueryBuilderService {
151
152
  let query = '';
152
153
  switch (type) {
153
154
  case 'simple':
154
- ;
155
155
  if (group.items.length > 0) {
156
156
  query = ' ( ';
157
157
  }
@@ -207,4 +207,4 @@ AXQueryBuilderService = __decorate([
207
207
  __metadata("design:paramtypes", [AXPopupService, AXToastService])
208
208
  ], AXQueryBuilderService);
209
209
  export { AXQueryBuilderService };
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQTRCLE1BQU0sdUJBQXVCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbkcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBRXhELElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBQ2hDLFlBQW9CLEtBQXFCLEVBQVUsS0FBcUI7UUFBcEQsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUN4RSxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLFdBQU0sR0FBWSxLQUFLLENBQUM7SUFGbUQsQ0FBQztJQUdyRSxRQUFRLENBQUMsS0FBMEIsRUFBRSxXQUFXO1FBQ3JELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3JDO1lBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUMzQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFO3dCQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDcEM7aUJBQ0Y7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO29CQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQ3JJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDYixDQUFDLENBQUMsQ0FBQztpQkFDSjthQUNGO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNoQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFFO1FBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRTtZQUN2QixJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUU7Z0JBQ2hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2pDO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxFQUFFLENBQUMsYUFBYSxJQUFJLE9BQU8sRUFBRTtvQkFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7aUJBQy9EO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsRUFBRTs7UUFDdkIsOENBQThDO1FBQzlDLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRTtZQUNoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2xDO1NBQ0Y7YUFBTTtZQUNMLElBQUksT0FBQSxFQUFFLENBQUMsYUFBYSwwQ0FBRSxPQUFPLENBQUMsTUFBTSxNQUFLLENBQUMsRUFBRTtnQkFDMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7YUFDckI7U0FDRjtRQUVELEtBQUs7SUFDUCxDQUFDO0lBRUssb0JBQW9CLENBQUMsS0FBMEI7O1lBQ25ELE9BQU8sSUFBSSxPQUFPLENBQVMsQ0FBTyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7O2dCQUNuRCxDQUFDO2dCQUNELElBQUksS0FBYSxDQUFDO2dCQUNsQixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDMUIsS0FBSyxHQUFHLEtBQUssQ0FBQztpQkFDZjtnQkFDRCxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7O29CQUNYLEtBQTZCLElBQUEsS0FBQSxjQUFBLEtBQUssQ0FBQyxLQUFLLENBQUEsSUFBQTt3QkFBN0IsTUFBTSxRQUFRLFdBQUEsQ0FBQTt3QkFDdkIsTUFBTSxJQUFJLEdBQVEsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDbEMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFOzRCQUNsQixNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQ0FDL0MsS0FBSyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7NEJBQ3BCLENBQUMsQ0FBQyxDQUFDO3lCQUNKOzZCQUFNOzRCQUNMLElBQUksWUFBWSxHQUFXLElBQUksQ0FBQzs0QkFDaEMsUUFBUSxJQUFJLENBQUMsUUFBUSxFQUFFO2dDQUNyQixLQUFLLE9BQU87b0NBQ1YsWUFBWSxHQUFHLElBQUksQ0FBQztvQ0FDcEIsTUFBTTtnQ0FDUixLQUFLLFdBQVc7b0NBQ2QsWUFBWSxHQUFHLElBQUksQ0FBQztvQ0FDcEIsTUFBTTtnQ0FDUixLQUFLLFVBQVU7b0NBQ2IsWUFBWSxHQUFHLFNBQVMsQ0FBQztvQ0FDekIsTUFBTTtnQ0FDUixLQUFLLE1BQU07b0NBQ1QsWUFBWSxHQUFHLFNBQVMsQ0FBQztvQ0FDekIsTUFBTTtnQ0FDUixLQUFLLElBQUk7b0NBQ1AsWUFBWSxHQUFHLEdBQUcsQ0FBQztvQ0FDbkIsTUFBTTtnQ0FDUixLQUFLLEtBQUs7b0NBQ1IsWUFBWSxHQUFHLElBQUksQ0FBQztvQ0FDcEIsTUFBTTtnQ0FDUixLQUFLLElBQUk7b0NBQ1AsWUFBWSxHQUFHLEdBQUcsQ0FBQztvQ0FDbkIsTUFBTTtnQ0FDUixLQUFLLEtBQUs7b0NBQ1IsWUFBWSxHQUFHLElBQUksQ0FBQztvQ0FDcEIsTUFBTTtnQ0FDUixLQUFLLFVBQVU7b0NBQ2IsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7b0NBQzdCLE1BQU07Z0NBQ1IsS0FBSyxZQUFZO29DQUNmLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO29DQUM3QixNQUFNO2dDQUNSLEtBQUssVUFBVTtvQ0FDYixZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztvQ0FDN0IsTUFBTTs2QkFDVDs0QkFDRCxDQUFDOzRCQUNELEtBQUssR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFHLFlBQVksR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQzt5QkFDM0U7d0JBQ0QsSUFBSSxFQUFFLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxLQUFLLEVBQUU7NEJBQ25ELEtBQUssR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7eUJBQ3ZDO3dCQUNELEVBQUUsSUFBSSxDQUFDLENBQUM7cUJBQ1Q7Ozs7Ozs7OztnQkFDRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDMUIsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUM7aUJBQ3ZCO2dCQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQixDQUFDLENBQUEsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRU0sY0FBYyxDQUFDLEtBQTBCLEVBQUUsSUFBOEI7UUFDOUUsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2YsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLFFBQVE7Z0JBQ1gsQ0FBQztnQkFDRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDMUIsS0FBSyxHQUFHLEtBQUssQ0FBQztpQkFDZjtnQkFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7b0JBQzNDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzVCLElBQUksSUFBSSxZQUFZLG1CQUFtQixFQUFFO3dCQUN2QyxLQUFLLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7cUJBQ2xDO3lCQUFNO3dCQUNMLEtBQUssR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7cUJBQzdFO29CQUNELElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFO3dCQUNsRCxLQUFLLEdBQUcsS0FBSyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO3FCQUN2QztpQkFDRjtnQkFDRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDMUIsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUM7aUJBQ3ZCO2dCQUNELE1BQU07WUFFUixLQUFLLFNBQVM7Z0JBQ1osSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQzFCLEtBQUssR0FBRyxLQUFLLENBQUM7aUJBQ2Y7Z0JBQ0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUMzQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM1QixJQUFJLElBQUksWUFBWSxtQkFBbUIsRUFBRTt3QkFDdkMsS0FBSyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7cUJBQ3pDO3lCQUFNO3dCQUNMLEtBQUssR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7cUJBQy9FO29CQUNELElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFO3dCQUNsRCxLQUFLLEdBQUcsS0FBSyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO3FCQUN2QztpQkFDRjtnQkFDRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDMUIsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUM7aUJBQ3ZCO2dCQUVELE1BQU07WUFDUixLQUFLLEtBQUs7Z0JBQ1IsTUFBTTtTQUNUO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YsQ0FBQTs7WUE3SzRCLGNBQWM7WUFBaUIsY0FBYzs7O0FBRDdELHFCQUFxQjtJQURqQyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7cUNBRU4sY0FBYyxFQUFpQixjQUFjO0dBRDdELHFCQUFxQixDQThLakM7U0E5S1kscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJHcm91cCwgQVhRdWVyeUJ1aWxkZXJTdHJpbmdUeXBlIH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLmNsYXNzJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJy4uL3BvcHVwL3BvcHVwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBWFF1ZXJ5QnVpbGRlclBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLXBvcHVwL3F1ZXJ5LWJ1aWxkZXItcG9wdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi90b2FzdC90b2FzdC5zZXJ2aWNlJztcclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEFYUXVlcnlCdWlsZGVyU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb3B1cDogQVhQb3B1cFNlcnZpY2UsIHByaXZhdGUgdG9hc3Q6IEFYVG9hc3RTZXJ2aWNlKSB7fVxyXG4gIGNhbk9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYW5SdW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgcnVuUXVlcnkoZ3JvdXA6IEFYUXVlcnlCdWlsZGVyR3JvdXAsIHByb3ZpZGVEYXRhKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgdGhpcy5jYW5PcGVuID0gZmFsc2U7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXAuaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB0aGlzLmdldE5vVmFsdWVSdWxlKGdyb3VwLml0ZW1zW2ldKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5jYW5PcGVuKSB7XHJcbiAgICAgICAgdGhpcy5jYW5SdW4gPSB0cnVlO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXAuaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGlmICh0aGlzLmNhblJ1biA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmluZE51bGxWYWx1ZShncm91cC5pdGVtc1tpXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmNhblJ1bikge1xyXG4gICAgICAgICAgdGhpcy5wb3B1cC5vcGVuKEFYUXVlcnlCdWlsZGVyUG9wdXBDb21wb25lbnQsIHsgZGF0YTogeyBncm91cDogZ3JvdXAsIHByb3ZpZGVEYXRhOiBwcm92aWRlRGF0YSB9LCB0aXRsZTogJ9iv2LHbjNin2YHYqiDZhdmC2KfYr9uM2LEnIH0pLnRoZW4oKGMpID0+IHtcclxuICAgICAgICAgICAgcmVzb2x2ZShjKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXNvbHZlKGdyb3VwKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmaW5kTnVsbFZhbHVlKGdyKSB7XHJcbiAgICBpZiAodGhpcy5jYW5SdW4gPT0gdHJ1ZSkge1xyXG4gICAgICBpZiAoZ3IuY29uZGl0aW9uKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnci5pdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgdGhpcy5maW5kTnVsbFZhbHVlKGdyLml0ZW1zW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGdyLm9uRGVtYW5kTGFiZWwgPT0gJz8/Pz98Jykge1xyXG4gICAgICAgICAgdGhpcy5jYW5SdW4gPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZXJyb3IoJ9mE2LfZgdinINmG2KfZhSDZhdiq2LrbjNixINmH2KfbjCDZhdmI2LHYryDZhtuM2KfYsiDYsdinINqp2KfZhdmEINqp2YbbjNivJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE5vVmFsdWVSdWxlKGdyKSB7XHJcbiAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IGdyLml0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBpZiAoZ3IuY29uZGl0aW9uKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3IuaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB0aGlzLmdldE5vVmFsdWVSdWxlKGdyLml0ZW1zW2ldKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGdyLm9uRGVtYW5kTGFiZWw/LmluZGV4T2YoJz8/Pz8nKSA9PSAwKSB7XHJcbiAgICAgICAgdGhpcy5jYW5PcGVuID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRRdWVyeVN0cmluZ1NpbXBsZShncm91cDogQVhRdWVyeUJ1aWxkZXJHcm91cCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICA7XHJcbiAgICAgIHZhciBxdWVyeTogc3RyaW5nO1xyXG4gICAgICBpZiAoZ3JvdXAuaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHF1ZXJ5ID0gJyAoICc7XHJcbiAgICAgIH1cclxuICAgICAgdmFyIGlkID0gMDtcclxuICAgICAgZm9yIGF3YWl0IChjb25zdCBpdGVyYXRvciBvZiBncm91cC5pdGVtcykge1xyXG4gICAgICAgIGNvbnN0IGl0ZW06IGFueSA9IGdyb3VwLml0ZW1zW2lkXTtcclxuICAgICAgICBpZiAoaXRlbS5jb25kaXRpb24pIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0UXVlcnlTdHJpbmdTaW1wbGUoaXRlbSkudGhlbigoYykgPT4ge1xyXG4gICAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgYztcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgY29kZU9wZXJhdG9yOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgICAgICAgc3dpdGNoIChpdGVtLm9wZXJhdG9yKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2VxdWFsJzpcclxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnPT0nO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdub3QtZXF1YWwnOlxyXG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9ICchPSc7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ25vdC1udWxsJzpcclxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnIT0gbnVsbCc7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ251bGwnOlxyXG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9ICc9PSBudWxsJztcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnZ3QnOlxyXG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9ICc+JztcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnZ3RlJzpcclxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnPj0nO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdsdCc6XHJcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gJzwnO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdsdGUnOlxyXG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9ICc8PSc7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2NvbnRhaW5zJzpcclxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSBpdGVtLm9wZXJhdG9yO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdzdGFydC13aXRoJzpcclxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSBpdGVtLm9wZXJhdG9yO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdlbmQtd2l0aCc6XHJcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gaXRlbS5vcGVyYXRvcjtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIDtcclxuICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBpdGVtLmNhcHRpb24gKyAnICcgKyBjb2RlT3BlcmF0b3IgKyAnICcgKyBpdGVtLnRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpZCAhPT0gZ3JvdXAuaXRlbXMubGVuZ3RoIC0gMSAmJiBxdWVyeSAhPSAnICggJykge1xyXG4gICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgJyArIGdyb3VwLmNvbmRpdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWQgKz0gMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZ3JvdXAuaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICkgJztcclxuICAgICAgfVxyXG4gICAgICByZXNvbHZlKHF1ZXJ5KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFF1ZXJ5U3RyaW5nKGdyb3VwOiBBWFF1ZXJ5QnVpbGRlckdyb3VwLCB0eXBlOiBBWFF1ZXJ5QnVpbGRlclN0cmluZ1R5cGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IHF1ZXJ5ID0gJyc7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnc2ltcGxlJzpcclxuICAgICAgICA7XHJcbiAgICAgICAgaWYgKGdyb3VwLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHF1ZXJ5ID0gJyAoICc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXAuaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBncm91cC5pdGVtc1tpXTtcclxuICAgICAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgQVhRdWVyeUJ1aWxkZXJHcm91cCkge1xyXG4gICAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgaXRlbS5xdWVyeVN0cmluZztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBpdGVtLmNhcHRpb24gKyAnICcgKyBpdGVtLm9wZXJhdG9yICsgJyAnICsgaXRlbS52YWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpICE9PSBncm91cC5pdGVtcy5sZW5ndGggLSAxICYmIHF1ZXJ5ICE9ICcgKCAnKSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBncm91cC5jb25kaXRpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChncm91cC5pdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgJyApICc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnZWxhc3RpYyc6XHJcbiAgICAgICAgaWYgKGdyb3VwLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHF1ZXJ5ID0gJyAoICc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXAuaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBncm91cC5pdGVtc1tpXTtcclxuICAgICAgICAgIGlmIChpdGVtIGluc3RhbmNlb2YgQVhRdWVyeUJ1aWxkZXJHcm91cCkge1xyXG4gICAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgaXRlbS5xdWVyeVN0cmluZ0VsYXN0aWM7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgJyAnICsgaXRlbS5kYXRhRmllbGQgKyAnICcgKyBpdGVtLm9wZXJhdG9yICsgJyAnICsgaXRlbS52YWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpICE9PSBncm91cC5pdGVtcy5sZW5ndGggLSAxICYmIHF1ZXJ5ICE9ICcgKCAnKSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBncm91cC5jb25kaXRpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChncm91cC5pdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICBxdWVyeSA9IHF1ZXJ5ICsgJyApICc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnc3FsJzpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcXVlcnk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQTRCLE1BQU0sdUJBQXVCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbkcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBRXhELElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBQ2hDLFlBQW9CLEtBQXFCLEVBQVUsS0FBcUI7UUFBcEQsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUN4RSxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLFdBQU0sR0FBWSxLQUFLLENBQUM7SUFGbUQsQ0FBQztJQUdyRSxRQUFRLENBQUMsS0FBMEIsRUFBRSxXQUFXO1FBQ3JELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3JDO1lBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixJQUFJLENBQUMsTUFBTSxH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QUcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO3FCQUN2QztpQkFDRjtnQkFDRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDMUIsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUM7aUJBQ3ZCO2dCQUVELE1BQU07WUFDUixLQUFLLEtBQUs7Z0JBQ1IsTUFBTTtTQUNUO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YsQ0FBQTs7WUE3SzRCLGNBQWM7WUFBaUIsY0FBYzs7O0FBRDdELHFCQUFxQjtJQURqQyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7cUNBRU4sY0FBYyxFQUFpQixjQUFjO0dBRDdELHFCQUFxQixDQThLakM7U0E5S1kscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhRdWVyeUJ1aWxkZXJHcm91cCwgQVhRdWVyeUJ1aWxkZXJTdHJpbmdUeXBlIH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLmNsYXNzJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJy4uL3BvcHVwL3BvcHVwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBWFF1ZXJ5QnVpbGRlclBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLXBvcHVwL3F1ZXJ5LWJ1aWxkZXItcG9wdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi90b2FzdC90b2FzdC5zZXJ2aWNlJztcclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEFYUXVlcnlCdWlsZGVyU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb3B1cDogQVhQb3B1cFNlcnZpY2UsIHByaXZhdGUgdG9hc3Q6IEFYVG9hc3RTZXJ2aWNlKSB7fVxyXG4gIGNhbk9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYW5SdW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgcnVuUXVlcnkoZ3JvdXA6IEFYUXVlcnlCdWlsZGVyR3JvdXAsIHByb3ZpZGVEYXRhKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgdGhpcy5jYW5PcGVuID0gZmFsc2U7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXAuaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB0aGlzLmdldE5vVmFsdWVSdWxlKGdyb3VwLml0ZW1zW2ldKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5jYW5PcGVuKSB7XHJcbiAgICAgICAgdGhpcy5jYW5SdW4gPSB0cnVlO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JvdXAuaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGlmICh0aGlzLmNhblJ1biA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmluZE51bGxWYWx1ZShncm91cC5pdGVtc1tpXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmNhblJ1bikge1xyXG4gICAgICAgICAgdGhpcy5wb3B1cC5vcGVuKEFYUXVlcnlCdWlsZGVyUG9wdXBDb21wb25lbnQsIHsgZGF0YTogeyBncm91cDogZ3JvdXAsIHByb3ZpZGVEYXRhOiBwcm92aWRlRGF0YSB9LCB0aXRsZTogJ9iv2LHbjNin2YHYqiDZhdmC2KfYr9uM2LEnIH0pLnRoZW4oKGMpID0+IHtcclxuICAgICAgICAgICAgcmVzb2x2ZShjKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXNvbHZlKGdyb3VwKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmaW5kTnVsbFZhbHVlKGdyKSB7XHJcbiAgICBpZiAodGhpcy5jYW5SdW4gPT0gdHJ1ZSkge1xyXG4gICAgICBpZiAoZ3IuY29uZGl0aW9uKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnci5pdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgdGhpcy5maW5kTnVsbFZhbHVlKGdyLml0ZW1zW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKGdyLm9uRGVtYW5kTGFiZWwgPT0gJz8/Pz98Jykge1xyXG4gICAgICAgICAgdGhpcy5jYW5SdW4gPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZXJyb3IoJ9mE2LfZgdinINmG2KfZhSDZhdiq2LrbjNixINmH2KfbjCDZhdmI2LHYryDZhtuM2KfYsiDYsdinINqp2KfZhdmEINqp2YbbjNivJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE5vVmFsdWVSdWxlKGdyKSB7XHJcbiAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IGdyLml0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBpZiAoZ3IuY29uZGl0aW9uKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3IuaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB0aGlzLmdldE5vVmFsdWVSdWxlKGdyLml0ZW1zW2ldKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGdyLm9uRGVtYW5kTGFiZWw/LmluZGV4T2YoJz8/Pz8nKSA9PSAwKSB7XHJcbiAgICAgICAgdGhpcy5jYW5PcGVuID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRRdWVyeVN0cmluZ1NpbXBsZShncm91cDogQVhRdWVyeUJ1aWxkZXJHcm91cCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHN0cmluZz4oYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB2YXIgcXVlcnk6IHN0cmluZztcclxuICAgICAgaWYgKGdyb3VwLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBxdWVyeSA9ICcgKCAnO1xyXG4gICAgICB9XHJcbiAgICAgIHZhciBpZCA9IDA7XHJcbiAgICAgIGZvciBhd2FpdCAoY29uc3QgaXRlcmF0b3Igb2YgZ3JvdXAuaXRlbXMpIHtcclxuICAgICAgICBjb25zdCBpdGVtOiBhbnkgPSBncm91cC5pdGVtc1tpZF07XHJcbiAgICAgICAgaWYgKGl0ZW0uY29uZGl0aW9uKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLmdldFF1ZXJ5U3RyaW5nU2ltcGxlKGl0ZW0pLnRoZW4oKGMpID0+IHtcclxuICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSArIGM7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGNvZGVPcGVyYXRvcjogc3RyaW5nID0gbnVsbDtcclxuICAgICAgICAgIHN3aXRjaCAoaXRlbS5vcGVyYXRvcikge1xyXG4gICAgICAgICAgICBjYXNlICdlcXVhbCc6XHJcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gJz09JztcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnbm90LWVxdWFsJzpcclxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnIT0nO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdub3QtbnVsbCc6XHJcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gJyE9IG51bGwnO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdudWxsJzpcclxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnPT0gbnVsbCc7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2d0JzpcclxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnPic7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2d0ZSc6XHJcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gJz49JztcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnbHQnOlxyXG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9ICc8JztcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnbHRlJzpcclxuICAgICAgICAgICAgICBjb2RlT3BlcmF0b3IgPSAnPD0nO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdjb250YWlucyc6XHJcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gaXRlbS5vcGVyYXRvcjtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnc3RhcnQtd2l0aCc6XHJcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gaXRlbS5vcGVyYXRvcjtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnZW5kLXdpdGgnOlxyXG4gICAgICAgICAgICAgIGNvZGVPcGVyYXRvciA9IGl0ZW0ub3BlcmF0b3I7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgY29kZU9wZXJhdG9yID0gaXRlbS5vcGVyYXRvcjtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBpdGVtLmNhcHRpb24gKyAnICcgKyBjb2RlT3BlcmF0b3IgKyAnICcgKyBpdGVtLnRleHQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpZCAhPT0gZ3JvdXAuaXRlbXMubGVuZ3RoIC0gMSAmJiBxdWVyeSAhPSAnICggJykge1xyXG4gICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgJyArIGdyb3VwLmNvbmRpdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWQgKz0gMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZ3JvdXAuaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICkgJztcclxuICAgICAgfVxyXG4gICAgICByZXNvbHZlKHF1ZXJ5KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFF1ZXJ5U3RyaW5nKGdyb3VwOiBBWFF1ZXJ5QnVpbGRlckdyb3VwLCB0eXBlOiBBWFF1ZXJ5QnVpbGRlclN0cmluZ1R5cGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IHF1ZXJ5ID0gJyc7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnc2ltcGxlJzpcclxuICAgICAgICBpZiAoZ3JvdXAuaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgcXVlcnkgPSAnICggJztcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBncm91cC5pdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgY29uc3QgaXRlbSA9IGdyb3VwLml0ZW1zW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBBWFF1ZXJ5QnVpbGRlckdyb3VwKSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyBpdGVtLnF1ZXJ5U3RyaW5nO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgJyArIGl0ZW0uY2FwdGlvbiArICcgJyArIGl0ZW0ub3BlcmF0b3IgKyAnICcgKyBpdGVtLnZhbHVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGkgIT09IGdyb3VwLml0ZW1zLmxlbmd0aCAtIDEgJiYgcXVlcnkgIT0gJyAoICcpIHtcclxuICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgJyArIGdyb3VwLmNvbmRpdGlvbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGdyb3VwLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICkgJztcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdlbGFzdGljJzpcclxuICAgICAgICBpZiAoZ3JvdXAuaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgcXVlcnkgPSAnICggJztcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBncm91cC5pdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgY29uc3QgaXRlbSA9IGdyb3VwLml0ZW1zW2ldO1xyXG4gICAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBBWFF1ZXJ5QnVpbGRlckdyb3VwKSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyBpdGVtLnF1ZXJ5U3RyaW5nRWxhc3RpYztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICcgKyBpdGVtLmRhdGFGaWVsZCArICcgJyArIGl0ZW0ub3BlcmF0b3IgKyAnICcgKyBpdGVtLnZhbHVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGkgIT09IGdyb3VwLml0ZW1zLmxlbmd0aCAtIDEgJiYgcXVlcnkgIT0gJyAoICcpIHtcclxuICAgICAgICAgICAgcXVlcnkgPSBxdWVyeSArICcgJyArIGdyb3VwLmNvbmRpdGlvbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGdyb3VwLml0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHF1ZXJ5ID0gcXVlcnkgKyAnICkgJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdzcWwnOlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBxdWVyeTtcclxuICB9XHJcbn1cclxuIl19