@bizdoc/core 1.14.2 → 1.14.4

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.
@@ -1,8 +1,11 @@
1
1
  import { InjectionToken } from "@angular/core";
2
- import { BehaviorSubject, Subject } from "rxjs";
2
+ import { BehaviorSubject, Subject, filter } from "rxjs";
3
3
  export const QUERY_CHAR = ':', PATH_CHAR = ';', ARG_CHAR = '&', PANE_CHAR = '~';
4
4
  export const PANES_DATA = new InjectionToken('panes');
5
5
  export class NavigationBase {
6
+ preventDefault() {
7
+ this._preventDefault = true;
8
+ }
6
9
  }
7
10
  export class CollapseNavigation extends NavigationBase {
8
11
  }
@@ -23,15 +26,29 @@ export class NavigationSelected extends NavigationPaneBase {
23
26
  }
24
27
  export class NavigationEnd extends NavigationPaneBase {
25
28
  }
29
+ export class NavigationMode extends NavigationPaneBase {
30
+ constructor(mode, pane) {
31
+ super(pane);
32
+ this.mode = mode;
33
+ }
34
+ }
35
+ export class NavigationFullscreen extends NavigationPaneBase {
36
+ constructor(fullscreen, pane) {
37
+ super(pane);
38
+ this.fullscreen = fullscreen;
39
+ }
40
+ }
41
+ export class NavigationClose extends NavigationPaneBase {
42
+ }
26
43
  export class ParamNavigation extends NavigationPaneBase {
27
- constructor(params, slot) {
28
- super(slot);
44
+ constructor(params, pane) {
45
+ super(pane);
29
46
  this.params = params;
30
47
  }
31
48
  }
32
49
  export class QueryParamNavigation extends NavigationPaneBase {
33
- constructor(queryParams, slot) {
34
- super(slot);
50
+ constructor(queryParams, pane) {
51
+ super(pane);
35
52
  this.queryParams = queryParams;
36
53
  }
37
54
  }
@@ -45,11 +62,13 @@ export class PaneRef {
45
62
  this._params$ = new BehaviorSubject({});
46
63
  this._queryParams$ = new BehaviorSubject({});
47
64
  this._resize$ = new BehaviorSubject({});
65
+ this._events$ = new Subject();
48
66
  this.expandable = true;
49
- const { data, params, queryParams, path, queryString, title, group, icon, help, guide, animation, fullscreen, expandable } = _options;
50
- this._mode$ = new BehaviorSubject(mode);
51
- this._fullscreen$ = new BehaviorSubject(fullscreen);
67
+ const { stretch, data, params, queryParams, path, queryString, title, group, icon, help, guide, animation, fullscreen, expandable } = _options;
52
68
  this._path = path || '';
69
+ this._mode = mode;
70
+ this._stretch = stretch;
71
+ this._fullscreen = fullscreen;
53
72
  this.title = title;
54
73
  this.group = group;
55
74
  this.guide = guide;
@@ -63,15 +82,8 @@ export class PaneRef {
63
82
  params && this._params$.next(params);
64
83
  queryParams && this._queryParams$.next(queryParams);
65
84
  }
66
- get injector() {
67
- return this._injector;
68
- }
69
- get fullscreen() {
70
- return this._fullscreen$.value;
71
- }
72
- get fullscreenChange() {
73
- return this._fullscreen$.asObservable();
74
- }
85
+ get injector() { return this._injector; }
86
+ get fullscreen() { return this._fullscreen; }
75
87
  get fullPath() { return this._path + (this._queryString ? (QUERY_CHAR + this._queryString) : ''); }
76
88
  get instance() { return this._instance; }
77
89
  get data() { return this._data$.value; }
@@ -82,17 +94,20 @@ export class PaneRef {
82
94
  get queryString() { return this._queryString; }
83
95
  get queryParams() { return this._queryParams$.value; }
84
96
  get queryParamsChange() { return this._queryParams$.asObservable(); }
85
- get path() { return this._path; }
97
+ get events() { return this._events$.asObservable(); }
98
+ get closing() { return this.events.pipe(filter(e => e instanceof NavigationClose)); }
99
+ get modeChange() { return this.events.pipe(filter(e => e instanceof NavigationMode)); }
86
100
  ;
87
- get modeChange() { return this._mode$.asObservable(); }
101
+ get fullscreenChange() { return this.events.pipe(filter(e => e instanceof NavigationFullscreen)); }
102
+ get path() { return this._path; }
88
103
  ;
89
- get mode() { return this._mode$.value; }
104
+ get mode() { return this._mode; }
90
105
  ;
91
106
  get parent() { return this._options.parent; }
92
107
  ;
93
- get stretch() { return this._options.stretch; }
108
+ get stretch() { return this._stretch; }
94
109
  ;
95
- set stretch(val) { this._options.stretch = val; }
110
+ set stretch(val) { this._stretch = val; }
96
111
  get dialog() { return this._options.dialog; }
97
112
  ;
98
113
  get dismissable() { return this._options.dismissable; }
@@ -120,9 +135,8 @@ export class PaneRef {
120
135
  this._data$.complete();
121
136
  this._params$.complete();
122
137
  this._resize$.complete();
138
+ this._events$.complete();
123
139
  this._queryParams$.complete();
124
- this._fullscreen$.complete();
125
- this._mode$.complete();
126
140
  }
127
141
  }
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZS1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvc2xvdHMvcGFuZS1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFrQixjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJaEQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEdBQUcsRUFBRSxTQUFTLEdBQUcsR0FBRyxFQUFFLFFBQVEsR0FBRyxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUcsQ0FBQztBQUVoRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxjQUFjLENBQWMsT0FBTyxDQUFDLENBQUM7QUFFbkUsTUFBTSxPQUFnQixjQUFjO0NBQUk7QUFDeEMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGNBQWM7Q0FDckQ7QUFDRCxNQUFNLE9BQU8sY0FBZSxTQUFRLGNBQWM7Q0FDakQ7QUFDRCxNQUFNLE9BQWdCLGtCQUFtQixTQUFRLGNBQWM7SUFDN0QsWUFBb0IsS0FBbUI7UUFDckMsS0FBSyxFQUFFLENBQUM7UUFEVSxVQUFLLEdBQUwsS0FBSyxDQUFjO0lBRXZDLENBQUM7SUFDRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztDQUNGO0FBQ0QsTUFBTSxPQUFPLGVBQWdCLFNBQVEsa0JBQWtCO0NBQ3REO0FBQ0QsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGtCQUFrQjtDQUN6RDtBQUNELE1BQU0sT0FBTyxhQUFjLFNBQVEsa0JBQWtCO0NBQ3BEO0FBQ0QsTUFBTSxPQUFPLGVBQWdCLFNBQVEsa0JBQWtCO0lBQ3JELFlBQTRCLE1BQWdCLEVBQUUsSUFBa0I7UUFDOUQsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRGMsV0FBTSxHQUFO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QUFZLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xyXG5pbXBvcnQgeyBUeXBlLCBJbmplY3RvciwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBQYXJhbU1hcCwgUGFuZVJvdXRlLCBPcGVuUG9saWN5IH0gZnJvbSBcIi4uL2NvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHsgRGltZW50aW9ucyB9IGZyb20gXCIuLi9tb2RlbHNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBRVUVSWV9DSEFSID0gJzonLCBQQVRIX0NIQVIgPSAnOycsIEFSR19DSEFSID0gJyYnLCBQQU5FX0NIQVIgPSAnfic7XHJcblxyXG5leHBvcnQgY29uc3QgUEFORVNfREFUQSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQYW5lUm91dGVbXT4oJ3BhbmVzJyk7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmF2aWdhdGlvbkJhc2UgeyB9XHJcbmV4cG9ydCBjbGFzcyBDb2xsYXBzZU5hdmlnYXRpb24gZXh0ZW5kcyBOYXZpZ2F0aW9uQmFzZSB7XHJcbn1cclxuZXhwb3J0IGNsYXNzIEJhY2tOYXZpZ2F0aW9uIGV4dGVuZHMgTmF2aWdhdGlvbkJhc2Uge1xyXG59XHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOYXZpZ2F0aW9uUGFuZUJhc2UgZXh0ZW5kcyBOYXZpZ2F0aW9uQmFzZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfcGFuZTogUGFuZVJlZjxhbnk+KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0IHBhbmUoKTogUGFuZVJlZjxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9wYW5lO1xyXG4gIH1cclxufVxyXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvblN0YXJ0IGV4dGVuZHMgTmF2aWdhdGlvblBhbmVCYXNlIHtcclxufVxyXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvblNlbGVjdGVkIGV4dGVuZHMgTmF2aWdhdGlvblBhbmVCYXNlIHtcclxufVxyXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvbkVuZCBleHRlbmRzIE5hdmlnYXRpb25QYW5lQmFzZSB7XHJcbn1cclxuZXhwb3J0IGNsYXNzIFBhcmFtTmF2aWdhdGlvbiBleHRlbmRzIE5hdmlnYXRpb25QYW5lQmFzZSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHBhcmFtczogUGFyYW1NYXAsIHNsb3Q6IFBhbmVSZWY8YW55Pikge1xyXG4gICAgc3VwZXIoc2xvdCk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBRdWVyeVBhcmFtTmF2aWdhdGlvbiBleHRlbmRzIE5hdmlnYXRpb25QYW5lQmFzZSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHF1ZXJ5UGFyYW1zOiBQYXJhbU1hcCwgc2xvdDogUGFuZVJlZjxhbnk+KSB7XHJcbiAgICBzdXBlcihzbG90KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGFuZU9wdGlvbnMge1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGdyb3VwPzogc3RyaW5nO1xyXG4gIGhlbHA/OiBzdHJpbmc7XHJcbiAgc3RhdGU/OiB7IFtuYW1lOiBzdHJpbmddOiBhbnkgfTtcclxuICBvcGVuUG9saWN5PzogT3BlblBvbGljeTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUGFuZUFjdGlvbiA9ICdleHBhbmQnIHwgJ2ZvY3VzJyB8ICdjbG9zZScgfCAncmVmcmVzaCc7XHJcblxyXG5leHBvcnQgY2xhc3MgUGFuZVJlZjxUID0gYW55PiB7XHJcbiAgcmVhZG9ubHkgX2NvbW0kID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG4gIC8qKiAqL1xyXG4gIHJlYWRvbmx5IF9kYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFyYW1NYXA+KHt9KTtcclxuICByZWFkb25seSBfcGFyYW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFyYW1NYXA+KHt9KTtcclxuICByZWFkb25seSBfcXVlcnlQYXJhbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJhbU1hcD4oe30pO1xyXG4gIHJlYWRvbmx5IF9yZXNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEaW1lbnRpb25zPih7fSBhcyBhbnkpO1xyXG4gIF9mdWxsc2NyZWVuJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xyXG4gIF9tb2RlJDogQmVoYXZpb3JTdWJqZWN0PCd0YWInIHwgJ3BhbmUnPjtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgZ3VpZGU/OiBzdHJpbmc7XHJcbiAgcGlubmVkOiBib29sZWFuO1xyXG4gIGJhZGdlPzogbnVtYmVyO1xyXG4gIGFuaW1hdGlvbjogc3RyaW5nO1xyXG4gIGdyb3VwOiBzdHJpbmc7XHJcbiAgaGVscDogc3RyaW5nO1xyXG4gIGV4cGFuZGFibGUgPSB0cnVlO1xyXG4gIF9pbnN0YW5jZTogVDtcclxuICBfcGF0aDogc3RyaW5nO1xyXG4gIF9xdWVyeVN0cmluZzogc3RyaW5nO1xyXG4gIF9pbmplY3RvcjogSW5qZWN0b3I7XHJcbiAgX3BvcnRhbDogQ29tcG9uZW50UG9ydGFsPFQ+O1xyXG4gIHB1YmxpYyBnZXQgaW5qZWN0b3IoKTogSW5qZWN0b3Ige1xyXG4gICAgcmV0dXJuIHRoaXMuX2luamVjdG9yO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0IGZ1bGxzY3JlZW4oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZnVsbHNjcmVlbiQudmFsdWU7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXQgZnVsbHNjcmVlbkNoYW5nZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9mdWxsc2NyZWVuJC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcbiAgZ2V0IGZ1bGxQYXRoKCkgeyByZXR1cm4gdGhpcy5fcGF0aCArICh0aGlzLl9xdWVyeVN0cmluZyA/IChRVUVSWV9DSEFSICsgdGhpcy5fcXVlcnlTdHJpbmcpIDogJycpIH1cclxuICBnZXQgaW5zdGFuY2UoKTogVCB7IHJldHVybiB0aGlzLl9pbnN0YW5jZTsgfVxyXG4gIGdldCBkYXRhKCk6IGFueSB7IHJldHVybiB0aGlzLl9kYXRhJC52YWx1ZTsgfVxyXG4gIGdldCBkYXRhQ2hhbmdlKCkgeyByZXR1cm4gdGhpcy5fZGF0YSQuYXNPYnNlcnZhYmxlKCk7IH1cclxuICBnZXQgcGFyYW1zKCk6IFBhcmFtTWFwIHsgcmV0dXJuIHRoaXMuX3BhcmFtcyQudmFsdWU7IH1cclxuICBnZXQgcmVzaXplKCkgeyByZXR1cm4gdGhpcy5fcmVzaXplJC5hc09ic2VydmFibGUoKTsgfVxyXG4gIGdldCBwYXJhbXNDaGFuZ2UoKSB7IHJldHVybiB0aGlzLl9wYXJhbXMkLmFzT2JzZXJ2YWJsZSgpOyB9XHJcbiAgZ2V0IHF1ZXJ5U3RyaW5nKCkgeyByZXR1cm4gdGhpcy5fcXVlcnlTdHJpbmc7IH1cclxuICBnZXQgcXVlcnlQYXJhbXMoKSB7IHJldHVybiB0aGlzLl9xdWVyeVBhcmFtcyQudmFsdWU7IH1cclxuICBnZXQgcXVlcnlQYXJhbXNDaGFuZ2UoKSB7IHJldHVybiB0aGlzLl9xdWVyeVBhcmFtcyQuYXNPYnNlcnZhYmxlKCk7IH1cclxuICBnZXQgcGF0aCgpIHsgcmV0dXJuIHRoaXMuX3BhdGg7IH07XHJcbiAgZ2V0IG1vZGVDaGFuZ2UoKSB7IHJldHVybiB0aGlzLl9tb2RlJC5hc09ic2VydmFibGUoKTsgfTtcclxuICBnZXQgbW9kZSgpIHsgcmV0dXJuIHRoaXMuX21vZGUkLnZhbHVlOyB9O1xyXG4gIGdldCBwYXJlbnQoKSB7IHJldHVybiB0aGlzLl9vcHRpb25zLnBhcmVudDsgfTtcclxuICBnZXQgc3RyZXRjaCgpIHsgcmV0dXJuIHRoaXMuX29wdGlvbnMuc3RyZXRjaDsgfTtcclxuICBzZXQgc3RyZXRjaCh2YWw6IGJvb2xlYW4pIHsgdGhpcy5fb3B0aW9ucy5zdHJldGNoID0gdmFsOyB9XHJcbiAgZ2V0IGRpYWxvZygpIHsgcmV0dXJuIHRoaXMuX29wdGlvbnMuZGlhbG9nOyB9O1xyXG4gIGdldCBkaXNtaXNzYWJsZSgpIHsgcmV0dXJuIHRoaXMuX29wdGlvbnMuZGlzbWlzc2FibGU7IH07XHJcbiAgZ2V0IHJvdXRlKCkgeyByZXR1cm4gdGhpcy5fb3B0aW9ucy5yb3V0ZTsgfTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY29tcG9uZW50OiBUeXBlPGFueT4sXHJcbiAgICBtb2RlOiAndGFiJyB8ICdwYW5lJyxcclxuICAgIHByaXZhdGUgX29wdGlvbnM6IHtcclxuICAgICAgcGF0aD86IHN0cmluZztcclxuICAgICAgcm91dGU/OiBQYW5lUm91dGU7XHJcbiAgICAgIHRpdGxlPzogc3RyaW5nO1xyXG4gICAgICBncm91cD86IHN0cmluZztcclxuICAgICAgZ3VpZGU/OiBzdHJpbmc7XHJcbiAgICAgIGljb24/OiBzdHJpbmc7XHJcbiAgICAgIGFuaW1hdGlvbj86IHN0cmluZztcclxuICAgICAgaGVscD86IHN0cmluZztcclxuICAgICAgZnVsbHNjcmVlbj86IGJvb2xlYW47XHJcbiAgICAgIGRpYWxvZz86IGJvb2xlYW47XHJcbiAgICAgIHN0cmV0Y2g/OiBib29sZWFuO1xyXG4gICAgICBwYXJlbnQ/OiBQYW5lUmVmPGFueT47XHJcbiAgICAgIHF1ZXJ5U3RyaW5nPzogc3RyaW5nO1xyXG4gICAgICBkYXRhPzogUGFyYW1NYXA7XHJcbiAgICAgIHBhcmFtcz86IFBhcmFtTWFwO1xyXG4gICAgICBxdWVyeVBhcmFtcz86IFBhcmFtTWFwO1xyXG4gICAgICBleHBhbmRhYmxlPzogYm9vbGVhbixcclxuICAgICAgZGlzbWlzc2FibGU/OiBib29sZWFuXHJcbiAgICB9KSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIHBhcmFtcywgcXVlcnlQYXJhbXMsIHBhdGgsIHF1ZXJ5U3RyaW5nLCB0aXRsZSwgZ3JvdXAsIGljb24sIGhlbHAsIGd1aWRlLCBhbmltYXRpb24sIGZ1bGxzY3JlZW4sIGV4cGFuZGFibGUgfSA9IF9vcHRpb25zO1xyXG4gICAgdGhpcy5fbW9kZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG1vZGUpO1xyXG4gICAgdGhpcy5fZnVsbHNjcmVlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZ1bGxzY3JlZW4pO1xyXG4gICAgdGhpcy5fcGF0aCA9IHBhdGggfHwgJyc7XHJcbiAgICB0aGlzLnRpdGxlID0gdGl0bGU7XHJcbiAgICB0aGlzLmdyb3VwID0gZ3JvdXA7XHJcbiAgICB0aGlzLmd1aWRlID0gZ3VpZGU7XHJcbiAgICB0aGlzLmhlbHAgPSBoZWxwO1xyXG4gICAgdGhpcy5pY29uID0gaWNvbjtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gYW5pbWF0aW9uO1xyXG4gICAgdGhpcy5fcXVlcnlTdHJpbmcgPSBxdWVyeVN0cmluZztcclxuICAgIGlmIChleHBhbmRhYmxlID09PSBmYWxzZSkgdGhpcy5leHBhbmRhYmxlID0gZmFsc2U7XHJcbiAgICB0aGlzLl9kYXRhJC5uZXh0KGRhdGEpO1xyXG4gICAgcGFyYW1zICYmIHRoaXMuX3BhcmFtcyQubmV4dChwYXJhbXMpO1xyXG4gICAgcXVlcnlQYXJhbXMgJiYgdGhpcy5fcXVlcnlQYXJhbXMkLm5leHQocXVlcnlQYXJhbXMpO1xyXG4gIH1cclxuICBkZWNlbmRlbnRPZihwYW5lOiBQYW5lUmVmPGFueT4pIHtcclxuICAgIHJldHVybiB0aGlzLnBhcmVudCA9PT0gcGFuZSAvL3x8XHJcbiAgICAvLyAgKHRoaXMucGF0aCAmJiBwYW5lLnBhdGggJiYgdGhpcy5wYXRoLnN0YXJ0c1dpdGgocGFuZS5wYXRoKSk7XHJcbiAgfVxyXG4gIHJlZnJlc2goKSB7XHJcbiAgICB0aGlzLl9jb21tJC5uZXh0KCdyZWZyZXNoJyk7XHJcbiAgfVxyXG4gIGZvY3VzKCkge1xyXG4gICAgdGhpcy5fY29tbSQubmV4dCgnZm9jdXMnKTtcclxuICB9XHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLl9jb21tJC5uZXh0KCdjbG9zZScpO1xyXG4gIH1cclxuICBleHBhbmQoKSB7XHJcbiAgICB0aGlzLl9jb21tJC5uZXh0KCdleHBhbmQnKTtcclxuICB9XHJcbiAgX2Rlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl9jb21tJC5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5fZGF0YSQuY29tcGxldGUoKTtcclxuICAgIHRoaXMuX3BhcmFtcyQuY29tcGxldGUoKTtcclxuICAgIHRoaXMuX3Jlc2l6ZSQuY29tcGxldGUoKTtcclxuICAgIHRoaXMuX3F1ZXJ5UGFyYW1zJC5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5fZnVsbHNjcmVlbiQuY29tcGxldGUoKTtcclxuICAgIHRoaXMuX21vZGUkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZS1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvc2xvdHMvcGFuZS1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFrQixjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXhELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxHQUFHLEVBQUUsU0FBUyxHQUFHLEdBQUcsRUFBRSxRQUFRLEdBQUcsR0FBRyxFQUFFLFNBQVMsR0FBRyxHQUFHLENBQUM7QUFFaEYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksY0FBYyxDQUFjLE9BQU8sQ0FBQyxDQUFDO0FBRW5FLE1BQU0sT0FBZ0IsY0FBYztJQUUzQixjQUFjO1FBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7Q0FDRjtBQUNELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxjQUFjO0NBQ3JEO0FBQ0QsTUFBTSxPQUFPLGNBQWUsU0FBUSxjQUFjO0NBQ2pEO0FBQ0QsTUFBTSxPQUFnQixrQkFBbUIsU0FBUSxjQUFjO0lBQzdELFlBQW9CLEtBQW1CO1FBQ3JDLEtBQUssRUFBRSxDQUFDO1FBRFUsVUFBSyxHQUFMLEtBQUssQ0FBYztJQUV2QyxDQUFDO0lBQ0QsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7Q0FDRjtBQUNELE1BQU0sT0FBTyxlQUFnQixTQUFRLGtCQUFrQjtDQUN0RDtBQUNELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxrQkFBa0I7Q0FDekQ7QUFDRCxNQUFNLE9BQU8sYUFBYyxTQUFRLGtCQUFrQjtDQUNwRDtBQUNELE1BQU0sT0FBTyxjQUFlLFNBQVEsa0JBQWtCO0lBQ3BELFlB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QUksS0FBSyxLQUFLLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQUEsQ0FBQztJQXdDNUMsV0FBVyxDQUFDLElBQWtCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUEsQ0FBQyxJQUFJO1FBQ2hDLGdFQUFnRTtJQUNsRSxDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsTUFBTTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcclxuaW1wb3J0IHsgVHlwZSwgSW5qZWN0b3IsIEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBmaWx0ZXIgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBQYXJhbU1hcCwgUGFuZVJvdXRlLCBPcGVuUG9saWN5IH0gZnJvbSBcIi4uL2NvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHsgRGltZW50aW9ucyB9IGZyb20gXCIuLi9tb2RlbHNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBRVUVSWV9DSEFSID0gJzonLCBQQVRIX0NIQVIgPSAnOycsIEFSR19DSEFSID0gJyYnLCBQQU5FX0NIQVIgPSAnfic7XHJcblxyXG5leHBvcnQgY29uc3QgUEFORVNfREFUQSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQYW5lUm91dGVbXT4oJ3BhbmVzJyk7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmF2aWdhdGlvbkJhc2Uge1xyXG4gIF9wcmV2ZW50RGVmYXVsdDogYm9vbGVhbjtcclxuICBwdWJsaWMgcHJldmVudERlZmF1bHQoKSB7XHJcbiAgICB0aGlzLl9wcmV2ZW50RGVmYXVsdCA9IHRydWU7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBDb2xsYXBzZU5hdmlnYXRpb24gZXh0ZW5kcyBOYXZpZ2F0aW9uQmFzZSB7XHJcbn1cclxuZXhwb3J0IGNsYXNzIEJhY2tOYXZpZ2F0aW9uIGV4dGVuZHMgTmF2aWdhdGlvbkJhc2Uge1xyXG59XHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOYXZpZ2F0aW9uUGFuZUJhc2UgZXh0ZW5kcyBOYXZpZ2F0aW9uQmFzZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfcGFuZTogUGFuZVJlZjxhbnk+KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0IHBhbmUoKTogUGFuZVJlZjxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9wYW5lO1xyXG4gIH1cclxufVxyXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvblN0YXJ0IGV4dGVuZHMgTmF2aWdhdGlvblBhbmVCYXNlIHtcclxufVxyXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvblNlbGVjdGVkIGV4dGVuZHMgTmF2aWdhdGlvblBhbmVCYXNlIHtcclxufVxyXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvbkVuZCBleHRlbmRzIE5hdmlnYXRpb25QYW5lQmFzZSB7XHJcbn1cclxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25Nb2RlIGV4dGVuZHMgTmF2aWdhdGlvblBhbmVCYXNlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgbW9kZTogUGFuZU1vZGUsIHBhbmU6IFBhbmVSZWY8YW55Pikge1xyXG4gICAgc3VwZXIocGFuZSk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uRnVsbHNjcmVlbiBleHRlbmRzIE5hdmlnYXRpb25QYW5lQmFzZSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGZ1bGxzY3JlZW46IGJvb2xlYW4sIHBhbmU6IFBhbmVSZWY8YW55Pikge1xyXG4gICAgc3VwZXIocGFuZSk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uQ2xvc2UgZXh0ZW5kcyBOYXZpZ2F0aW9uUGFuZUJhc2Uge1xyXG59XHJcbmV4cG9ydCBjbGFzcyBQYXJhbU5hdmlnYXRpb24gZXh0ZW5kcyBOYXZpZ2F0aW9uUGFuZUJhc2Uge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBwYXJhbXM6IFBhcmFtTWFwLCBwYW5lOiBQYW5lUmVmPGFueT4pIHtcclxuICAgIHN1cGVyKHBhbmUpO1xyXG4gIH1cclxufVxyXG5leHBvcnQgY2xhc3MgUXVlcnlQYXJhbU5hdmlnYXRpb24gZXh0ZW5kcyBOYXZpZ2F0aW9uUGFuZUJhc2Uge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBxdWVyeVBhcmFtczogUGFyYW1NYXAsIHBhbmU6IFBhbmVSZWY8YW55Pikge1xyXG4gICAgc3VwZXIocGFuZSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQYW5lTW9kZSA9ICd0YWInIHwgJ3BhbmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYW5lT3B0aW9ucyB7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgZ3JvdXA/OiBzdHJpbmc7XHJcbiAgaGVscD86IHN0cmluZztcclxuICBzdGF0ZT86IHsgW25hbWU6IHN0cmluZ106IGFueSB9O1xyXG4gIG9wZW5Qb2xpY3k/OiBPcGVuUG9saWN5O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQYW5lQWN0aW9uID0gJ2V4cGFuZCcgfCAnZm9jdXMnIHwgJ2Nsb3NlJyB8ICdyZWZyZXNoJztcclxuXHJcbmV4cG9ydCBjbGFzcyBQYW5lUmVmPFQgPSBhbnk+IHtcclxuICByZWFkb25seSBfY29tbSQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcbiAgLyoqICovXHJcbiAgcmVhZG9ubHkgX2RhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJhbU1hcD4oe30pO1xyXG4gIHJlYWRvbmx5IF9wYXJhbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJhbU1hcD4oe30pO1xyXG4gIHJlYWRvbmx5IF9xdWVyeVBhcmFtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhcmFtTWFwPih7fSk7XHJcbiAgcmVhZG9ubHkgX3Jlc2l6ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERpbWVudGlvbnM+KHt9IGFzIGFueSk7XHJcbiAgcmVhZG9ubHkgX2V2ZW50cyQgPSBuZXcgU3ViamVjdDxOYXZpZ2F0aW9uQmFzZT4oKTtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgZ3VpZGU/OiBzdHJpbmc7XHJcbiAgcGlubmVkOiBib29sZWFuO1xyXG4gIGJhZGdlPzogbnVtYmVyO1xyXG4gIGFuaW1hdGlvbjogc3RyaW5nO1xyXG4gIGdyb3VwOiBzdHJpbmc7XHJcbiAgaGVscDogc3RyaW5nO1xyXG4gIGV4cGFuZGFibGUgPSB0cnVlO1xyXG4gIF9mdWxsc2NyZWVuOiBib29sZWFuO1xyXG4gIF9pbnN0YW5jZTogVDtcclxuICBfcGF0aDogc3RyaW5nO1xyXG4gIF9xdWVyeVN0cmluZzogc3RyaW5nO1xyXG4gIF9pbmplY3RvcjogSW5qZWN0b3I7XHJcbiAgX3BvcnRhbDogQ29tcG9uZW50UG9ydGFsPFQ+O1xyXG4gIF9tb2RlOiBQYW5lTW9kZTtcclxuICBfc3RyZXRjaDogYm9vbGVhbjtcclxuICBwdWJsaWMgZ2V0IGluamVjdG9yKCk6IEluamVjdG9yIHsgcmV0dXJuIHRoaXMuX2luamVjdG9yOyB9XHJcbiAgcHVibGljIGdldCBmdWxsc2NyZWVuKCkgeyByZXR1cm4gdGhpcy5fZnVsbHNjcmVlbjsgfVxyXG4gIGdldCBmdWxsUGF0aCgpIHsgcmV0dXJuIHRoaXMuX3BhdGggKyAodGhpcy5fcXVlcnlTdHJpbmcgPyAoUVVFUllfQ0hBUiArIHRoaXMuX3F1ZXJ5U3RyaW5nKSA6ICcnKSB9XHJcbiAgZ2V0IGluc3RhbmNlKCk6IFQgeyByZXR1cm4gdGhpcy5faW5zdGFuY2U7IH1cclxuICBnZXQgZGF0YSgpOiBhbnkgeyByZXR1cm4gdGhpcy5fZGF0YSQudmFsdWU7IH1cclxuICBnZXQgZGF0YUNoYW5nZSgpIHsgcmV0dXJuIHRoaXMuX2RhdGEkLmFzT2JzZXJ2YWJsZSgpOyB9XHJcbiAgZ2V0IHBhcmFtcygpOiBQYXJhbU1hcCB7IHJldHVybiB0aGlzLl9wYXJhbXMkLnZhbHVlOyB9XHJcbiAgZ2V0IHJlc2l6ZSgpIHsgcmV0dXJuIHRoaXMuX3Jlc2l6ZSQuYXNPYnNlcnZhYmxlKCk7IH1cclxuICBnZXQgcGFyYW1zQ2hhbmdlKCkgeyByZXR1cm4gdGhpcy5fcGFyYW1zJC5hc09ic2VydmFibGUoKTsgfVxyXG4gIGdldCBxdWVyeVN0cmluZygpIHsgcmV0dXJuIHRoaXMuX3F1ZXJ5U3RyaW5nOyB9XHJcbiAgZ2V0IHF1ZXJ5UGFyYW1zKCkgeyByZXR1cm4gdGhpcy5fcXVlcnlQYXJhbXMkLnZhbHVlOyB9XHJcbiAgZ2V0IHF1ZXJ5UGFyYW1zQ2hhbmdlKCkgeyByZXR1cm4gdGhpcy5fcXVlcnlQYXJhbXMkLmFzT2JzZXJ2YWJsZSgpOyB9XHJcbiAgZ2V0IGV2ZW50cygpIHsgcmV0dXJuIHRoaXMuX2V2ZW50cyQuYXNPYnNlcnZhYmxlKCk7IH1cclxuICBnZXQgY2xvc2luZygpIHsgcmV0dXJuIHRoaXMuZXZlbnRzLnBpcGUoZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25DbG9zZSkpOyB9XHJcbiAgZ2V0IG1vZGVDaGFuZ2UoKSB7IHJldHVybiB0aGlzLmV2ZW50cy5waXBlKGZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uTW9kZSkpOyB9O1xyXG4gIGdldCBmdWxsc2NyZWVuQ2hhbmdlKCkgeyByZXR1cm4gdGhpcy5ldmVudHMucGlwZShmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkZ1bGxzY3JlZW4pKTsgfVxyXG4gIGdldCBwYXRoKCkgeyByZXR1cm4gdGhpcy5fcGF0aDsgfTtcclxuICBnZXQgbW9kZSgpIHsgcmV0dXJuIHRoaXMuX21vZGU7IH07XHJcbiAgZ2V0IHBhcmVudCgpIHsgcmV0dXJuIHRoaXMuX29wdGlvbnMucGFyZW50OyB9O1xyXG4gIGdldCBzdHJldGNoKCkgeyByZXR1cm4gdGhpcy5fc3RyZXRjaDsgfTtcclxuICBzZXQgc3RyZXRjaCh2YWw6IGJvb2xlYW4pIHsgdGhpcy5fc3RyZXRjaCA9IHZhbDsgfVxyXG4gIGdldCBkaWFsb2coKSB7IHJldHVybiB0aGlzLl9vcHRpb25zLmRpYWxvZzsgfTtcclxuICBnZXQgZGlzbWlzc2FibGUoKSB7IHJldHVybiB0aGlzLl9vcHRpb25zLmRpc21pc3NhYmxlOyB9O1xyXG4gIGdldCByb3V0ZSgpIHsgcmV0dXJuIHRoaXMuX29wdGlvbnMucm91dGU7IH07XHJcbiAgY29uc3RydWN0b3IocHVibGljIGNvbXBvbmVudDogVHlwZTxhbnk+LFxyXG4gICAgbW9kZTogUGFuZU1vZGUsXHJcbiAgICBwcml2YXRlIF9vcHRpb25zOiB7XHJcbiAgICAgIHBhdGg/OiBzdHJpbmc7XHJcbiAgICAgIHJvdXRlPzogUGFuZVJvdXRlO1xyXG4gICAgICB0aXRsZT86IHN0cmluZztcclxuICAgICAgZ3JvdXA/OiBzdHJpbmc7XHJcbiAgICAgIGd1aWRlPzogc3RyaW5nO1xyXG4gICAgICBpY29uPzogc3RyaW5nO1xyXG4gICAgICBhbmltYXRpb24/OiBzdHJpbmc7XHJcbiAgICAgIGhlbHA/OiBzdHJpbmc7XHJcbiAgICAgIGZ1bGxzY3JlZW4/OiBib29sZWFuO1xyXG4gICAgICBkaWFsb2c/OiBib29sZWFuO1xyXG4gICAgICBzdHJldGNoPzogYm9vbGVhbjtcclxuICAgICAgcGFyZW50PzogUGFuZVJlZjxhbnk+O1xyXG4gICAgICBxdWVyeVN0cmluZz86IHN0cmluZztcclxuICAgICAgZGF0YT86IFBhcmFtTWFwO1xyXG4gICAgICBwYXJhbXM/OiBQYXJhbU1hcDtcclxuICAgICAgcXVlcnlQYXJhbXM/OiBQYXJhbU1hcDtcclxuICAgICAgZXhwYW5kYWJsZT86IGJvb2xlYW4sXHJcbiAgICAgIGRpc21pc3NhYmxlPzogYm9vbGVhblxyXG4gICAgfSkge1xyXG4gICAgY29uc3QgeyBzdHJldGNoLCBkYXRhLCBwYXJhbXMsIHF1ZXJ5UGFyYW1zLCBwYXRoLCBxdWVyeVN0cmluZywgdGl0bGUsIGdyb3VwLCBpY29uLCBoZWxwLCBndWlkZSwgYW5pbWF0aW9uLCBmdWxsc2NyZWVuLCBleHBhbmRhYmxlIH0gPSBfb3B0aW9ucztcclxuICAgIHRoaXMuX3BhdGggPSBwYXRoIHx8ICcnO1xyXG4gICAgdGhpcy5fbW9kZSA9IG1vZGU7XHJcbiAgICB0aGlzLl9zdHJldGNoID0gc3RyZXRjaDtcclxuICAgIHRoaXMuX2Z1bGxzY3JlZW4gPSBmdWxsc2NyZWVuO1xyXG4gICAgdGhpcy50aXRsZSA9IHRpdGxlO1xyXG4gICAgdGhpcy5ncm91cCA9IGdyb3VwO1xyXG4gICAgdGhpcy5ndWlkZSA9IGd1aWRlO1xyXG4gICAgdGhpcy5oZWxwID0gaGVscDtcclxuICAgIHRoaXMuaWNvbiA9IGljb247XHJcbiAgICB0aGlzLmFuaW1hdGlvbiA9IGFuaW1hdGlvbjtcclxuICAgIHRoaXMuX3F1ZXJ5U3RyaW5nID0gcXVlcnlTdHJpbmc7XHJcbiAgICBpZiAoZXhwYW5kYWJsZSA9PT0gZmFsc2UpIHRoaXMuZXhwYW5kYWJsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5fZGF0YSQubmV4dChkYXRhKTtcclxuICAgIHBhcmFtcyAmJiB0aGlzLl9wYXJhbXMkLm5leHQocGFyYW1zKTtcclxuICAgIHF1ZXJ5UGFyYW1zICYmIHRoaXMuX3F1ZXJ5UGFyYW1zJC5uZXh0KHF1ZXJ5UGFyYW1zKTtcclxuICB9XHJcbiAgZGVjZW5kZW50T2YocGFuZTogUGFuZVJlZjxhbnk+KSB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQgPT09IHBhbmUgLy98fFxyXG4gICAgLy8gICh0aGlzLnBhdGggJiYgcGFuZS5wYXRoICYmIHRoaXMucGF0aC5zdGFydHNXaXRoKHBhbmUucGF0aCkpO1xyXG4gIH1cclxuICByZWZyZXNoKCkge1xyXG4gICAgdGhpcy5fY29tbSQubmV4dCgncmVmcmVzaCcpO1xyXG4gIH1cclxuICBmb2N1cygpIHtcclxuICAgIHRoaXMuX2NvbW0kLm5leHQoJ2ZvY3VzJyk7XHJcbiAgfVxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5fY29tbSQubmV4dCgnY2xvc2UnKTtcclxuICB9XHJcbiAgZXhwYW5kKCkge1xyXG4gICAgdGhpcy5fY29tbSQubmV4dCgnZXhwYW5kJyk7XHJcbiAgfVxyXG4gIF9kZXN0cm95KCkge1xyXG4gICAgdGhpcy5fY29tbSQuY29tcGxldGUoKTtcclxuICAgIHRoaXMuX2RhdGEkLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9wYXJhbXMkLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9yZXNpemUkLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9ldmVudHMkLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9xdWVyeVBhcmFtcyQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIl19