wacom 13.0.8 → 13.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/services/http.service.mjs +21 -11
- package/esm2020/lib/services/mongo.service.mjs +29 -19
- package/esm2020/lib/services/ui.service.mjs +1 -1
- package/fesm2015/wacom.mjs +49 -28
- package/fesm2015/wacom.mjs.map +1 -1
- package/fesm2020/wacom.mjs +49 -28
- package/fesm2020/wacom.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import { CONFIG_TOKEN, DEFAULT_CONFIG } from '../interfaces/config';
|
|
|
2
2
|
import { Injectable, Inject, Optional } from '@angular/core';
|
|
3
3
|
import { HttpHeaders } from '@angular/common/http';
|
|
4
4
|
import { throwError } from 'rxjs';
|
|
5
|
-
import { catchError } from 'rxjs/operators';
|
|
5
|
+
import { catchError, first } from 'rxjs/operators';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "./store.service";
|
|
8
8
|
import * as i2 from "@angular/common/http";
|
|
@@ -55,15 +55,17 @@ export class HttpService {
|
|
|
55
55
|
this.post(url, doc, callback, opts);
|
|
56
56
|
}, 100);
|
|
57
57
|
}
|
|
58
|
-
this.http.post((opts.url || this.url) + url, doc, {
|
|
58
|
+
const observable = this.http.post((opts.url || this.url) + url, doc, {
|
|
59
59
|
headers: this.http_headers
|
|
60
|
-
})
|
|
60
|
+
});
|
|
61
|
+
observable.pipe(first(), catchError(this.handleError(opts.err))).subscribe(resp => {
|
|
61
62
|
if (typeof this._http.replace == 'function') {
|
|
62
63
|
this._http.replace(resp, callback);
|
|
63
64
|
}
|
|
64
65
|
else
|
|
65
66
|
callback(resp);
|
|
66
67
|
});
|
|
68
|
+
return observable;
|
|
67
69
|
}
|
|
68
70
|
put(url, doc, callback = (resp) => { }, opts = {}) {
|
|
69
71
|
if (typeof opts == 'function') {
|
|
@@ -78,15 +80,17 @@ export class HttpService {
|
|
|
78
80
|
this.put(url, doc, callback, opts);
|
|
79
81
|
}, 100);
|
|
80
82
|
}
|
|
81
|
-
this.http.put((opts.url || this.url) + url, doc, {
|
|
83
|
+
const observable = this.http.put((opts.url || this.url) + url, doc, {
|
|
82
84
|
headers: this.http_headers
|
|
83
|
-
})
|
|
85
|
+
});
|
|
86
|
+
observable.pipe(first(), catchError(this.handleError(opts.err))).subscribe(resp => {
|
|
84
87
|
if (typeof this._http.replace == 'function') {
|
|
85
88
|
this._http.replace(resp, callback);
|
|
86
89
|
}
|
|
87
90
|
else
|
|
88
91
|
callback(resp);
|
|
89
92
|
});
|
|
93
|
+
return observable;
|
|
90
94
|
}
|
|
91
95
|
patch(url, doc, callback = (resp) => { }, opts = {}) {
|
|
92
96
|
if (typeof opts == 'function') {
|
|
@@ -101,15 +105,17 @@ export class HttpService {
|
|
|
101
105
|
this.patch(url, doc, callback, opts);
|
|
102
106
|
}, 100);
|
|
103
107
|
}
|
|
104
|
-
this.http.patch((opts.url || this.url) + url, doc, {
|
|
108
|
+
const observable = this.http.patch((opts.url || this.url) + url, doc, {
|
|
105
109
|
headers: this.http_headers
|
|
106
|
-
})
|
|
110
|
+
});
|
|
111
|
+
observable.pipe(first(), catchError(this.handleError(opts.err))).subscribe(resp => {
|
|
107
112
|
if (typeof this._http.replace == 'function') {
|
|
108
113
|
this._http.replace(resp, callback);
|
|
109
114
|
}
|
|
110
115
|
else
|
|
111
116
|
callback(resp);
|
|
112
117
|
});
|
|
118
|
+
return observable;
|
|
113
119
|
}
|
|
114
120
|
delete(url, doc, callback = (resp) => { }, opts = {}) {
|
|
115
121
|
if (typeof opts == 'function') {
|
|
@@ -124,16 +130,18 @@ export class HttpService {
|
|
|
124
130
|
this.delete(url, doc, callback, opts);
|
|
125
131
|
}, 100);
|
|
126
132
|
}
|
|
127
|
-
this.http.request('delete', (opts.url || this.url) + url, {
|
|
133
|
+
const observable = this.http.request('delete', (opts.url || this.url) + url, {
|
|
128
134
|
headers: this.http_headers,
|
|
129
135
|
body: doc || {}
|
|
130
|
-
})
|
|
136
|
+
});
|
|
137
|
+
observable.pipe(first(), catchError(this.handleError(opts.err))).subscribe(resp => {
|
|
131
138
|
if (typeof this._http.replace == 'function') {
|
|
132
139
|
this._http.replace(resp, callback);
|
|
133
140
|
}
|
|
134
141
|
else
|
|
135
142
|
callback(resp);
|
|
136
143
|
});
|
|
144
|
+
return observable;
|
|
137
145
|
}
|
|
138
146
|
get(url, callback = (resp) => { }, opts = {}) {
|
|
139
147
|
if (typeof opts == 'function') {
|
|
@@ -154,13 +162,15 @@ export class HttpService {
|
|
|
154
162
|
if (opts.params) {
|
|
155
163
|
params.params = opts.params;
|
|
156
164
|
}
|
|
157
|
-
this.http.get((opts.url || this.url) + url, params)
|
|
165
|
+
const observable = this.http.get((opts.url || this.url) + url, params);
|
|
166
|
+
observable.pipe(first(), catchError(this.handleError(opts.err))).subscribe(resp => {
|
|
158
167
|
if (typeof this._http.replace == 'function') {
|
|
159
168
|
this._http.replace(resp, callback);
|
|
160
169
|
}
|
|
161
170
|
else
|
|
162
171
|
callback(resp);
|
|
163
172
|
});
|
|
173
|
+
return observable;
|
|
164
174
|
}
|
|
165
175
|
lock() {
|
|
166
176
|
this.locked = true;
|
|
@@ -194,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
194
204
|
}, {
|
|
195
205
|
type: Optional
|
|
196
206
|
}] }]; } });
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2Fjb20vc3JjL2xpYi9zZXJ2aWNlcy9odHRwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBVSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFpQyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU01QyxNQUFNLE9BQU8sV0FBVztJQWtCdkIsWUFBb0IsS0FBbUIsRUFBVSxJQUFnQixFQUN0QixNQUFjO1FBRHJDLFVBQUssR0FBTCxLQUFLLENBQWM7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFqQmpELFFBQUcsR0FBRyxFQUFFLENBQUM7UUFDVCxZQUFPLEdBQU8sRUFBRSxDQUFDO1FBQ2pCLGlCQUFZLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBb0lyRCxrQkFBa0I7UUFDVixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBckh0QixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMs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QUksVUFBVSxFQUFDO1lBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQztTQUMxQjtJQUNGLENBQUM7SUFDTyxXQUFXLENBQUMsS0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUc7UUFDMUMsT0FBTyxVQUFTLEtBQXdCO1lBQ3ZDLEVBQUUsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEIsT0FBTyxVQUFVLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUE7SUFDRixDQUFDO0lBQUEsQ0FBQzs7d0dBMUpVLFdBQVcsd0VBbUJkLFlBQVk7NEdBbkJULFdBQVcsY0FGWCxNQUFNOzJGQUVOLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCOzswQkFvQkUsTUFBTTsyQkFBQyxZQUFZOzswQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ09ORklHX1RPS0VOLCBDb25maWcsIERFRkFVTFRfQ09ORklHIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb25maWcnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN0b3JlU2VydmljZSB9IGZyb20gJy4vc3RvcmUuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEh0dHBTZXJ2aWNlIHtcblx0cHJpdmF0ZSBfaHR0cDogYW55O1xuXHRwcml2YXRlIHVybCA9ICcnO1xuXHRwcml2YXRlIGhlYWRlcnM6YW55ID0ge307XG5cdHByaXZhdGUgaHR0cF9oZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyk7XG5cdHNldChrZXk6YW55LCB2YWx1ZTphbnkpe1xuXHRcdHRoaXMuaGVhZGVyc1trZXldID0gdmFsdWU7XG5cdFx0dGhpcy5zdG9yZS5zZXRKc29uKCdodHRwX2hlYWRlcnMnLCB0aGlzLmhlYWRlcnMpO1xuXHRcdHRoaXMuaHR0cF9oZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyk7XG5cdH1cblx0aGVhZGVyKGtleTphbnkpe1xuXHRcdHJldHVybiB0aGlzLmhlYWRlcnNba2V5XTtcblx0fVxuXHRyZW1vdmUoa2V5OmFueSl7XG5cdFx0ZGVsZXRlIHRoaXMuaGVhZGVyc1trZXldO1xuXHRcdHRoaXMuaHR0cF9oZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyk7XG5cdFx0dGhpcy5zdG9yZS5zZXRKc29uKCdodHRwX2hlYWRlcnMnLCB0aGlzLmhlYWRlcnMpO1xuXHR9XG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlU2VydmljZSwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuXHRcdEBJbmplY3QoQ09ORklHX1RPS0VOKSBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbmZpZzogQ29uZmlnKSB7XG5cdFx0dGhpcy5faHR0cCA9IGNvbmZpZy5odHRwO1xuXHRcdGlmICghdGhpcy5jb25maWcpIHRoaXMuY29uZmlnID0gREVGQVVMVF9DT05GSUc7XG5cdFx0aWYgKCF0aGlzLl9odHRwKSB0aGlzLl9odHRwID0ge307XG5cdFx0dGhpcy5zdG9yZS5nZXRKc29uKCdodHRwX2hlYWRlcnMnLCAoaGVhZGVyczphbnkpPT57XG5cdFx0XHRpZihoZWFkZXJzKSB7XG5cdFx0XHRcdHRoaXMuaGVhZGVycyA9IGhlYWRlcnM7XG5cdFx0XHRcdHRoaXMuaHR0cF9oZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnVybCA9IHRoaXMuX2h0dHAudXJsIHx8ICcnO1xuXHRcdH0pO1xuXHR9XG5cdHBvc3QodXJsOmFueSwgZG9jOmFueSwgY2FsbGJhY2s9KHJlc3A6YW55KSA9PiB7fSwgb3B0czphbnk9e30pOmFueXtcblx0XHRpZih0eXBlb2Ygb3B0cyA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdG9wdHMgPSB7XG5cdFx0XHRcdGVycjogb3B0c1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZighb3B0cy5lcnIpIG9wdHMuZXJyID0gKGVycjpIdHRwRXJyb3JSZXNwb25zZSk9Pnt9O1xuXHRcdGlmKHRoaXMubG9ja2VkKXtcblx0XHRcdHJldHVybiBzZXRUaW1lb3V0KCgpPT57XG5cdFx0XHRcdHRoaXMucG9zdCh1cmwsIGRvYywgY2FsbGJhY2ssIG9wdHMpO1xuXHRcdFx0fSwgMTAwKTtcblx0XHR9XG5cdFx0dGhpcy5odHRwLnBvc3Q8YW55Pigob3B0cy51cmx8fHRoaXMudXJsKSt1cmwsIGRvYywge1xuXHRcdFx0aGVhZGVyczogdGhpcy5odHRwX2hlYWRlcnNcblx0XHR9KS5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihvcHRzLmVycikpKS5zdWJzY3JpYmUocmVzcD0+e1xuXHRcdFx0aWYodHlwZW9mIHRoaXMuX2h0dHAucmVwbGFjZSA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdFx0dGhpcy5faHR0cC5yZXBsYWNlKHJlc3AsIGNhbGxiYWNrKTtcblx0XHRcdH1lbHNlIGNhbGxiYWNrKHJlc3ApO1xuXHRcdH0pO1xuXHR9XG5cdHB1dCh1cmw6YW55LCBkb2M6YW55LCBjYWxsYmFjaz0ocmVzcDphbnkpID0+IHt9LCBvcHRzOmFueT17fSk6YW55e1xuXHRcdGlmKHR5cGVvZiBvcHRzID09ICdmdW5jdGlvbicpe1xuXHRcdFx0b3B0cyA9IHtcblx0XHRcdFx0ZXJyOiBvcHRzXG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmKCFvcHRzLmVycikgb3B0cy5lcnIgPSAoZXJyOkh0dHBFcnJvclJlc3BvbnNlKT0+e307XG5cdFx0aWYodGhpcy5sb2NrZWQpe1xuXHRcdFx0cmV0dXJuIHNldFRpbWVvdXQoKCk9Pntcblx0XHRcdFx0dGhpcy5wdXQodXJsLCBkb2MsIGNhbGxiYWNrLCBvcHRzKTtcblx0XHRcdH0sIDEwMCk7XG5cdFx0fVxuXHRcdHRoaXMuaHR0cC5wdXQ8YW55Pigob3B0cy51cmx8fHRoaXMudXJsKSt1cmwsIGRvYywge1xuXHRcdFx0aGVhZGVyczogdGhpcy5odHRwX2hlYWRlcnNcblx0XHR9KS5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihvcHRzLmVycikpKS5zdWJzY3JpYmUocmVzcD0+e1xuXHRcdFx0aWYodHlwZW9mIHRoaXMuX2h0dHAucmVwbGFjZSA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdFx0dGhpcy5faHR0cC5yZXBsYWNlKHJlc3AsIGNhbGxiYWNrKTtcblx0XHRcdH1lbHNlIGNhbGxiYWNrKHJlc3ApO1xuXHRcdH0pO1xuXHR9XG5cdHBhdGNoKHVybDphbnksIGRvYzphbnksIGNhbGxiYWNrPShyZXNwOmFueSkgPT4ge30sIG9wdHM6YW55PXt9KTphbnl7XG5cdFx0aWYodHlwZW9mIG9wdHMgPT0gJ2Z1bmN0aW9uJyl7XG5cdFx0XHRvcHRzID0ge1xuXHRcdFx0XHRlcnI6IG9wdHNcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYoIW9wdHMuZXJyKSBvcHRzLmVyciA9IChlcnI6SHR0cEVycm9yUmVzcG9uc2UpPT57fTtcblx0XHRpZih0aGlzLmxvY2tlZCl7XG5cdFx0XHRyZXR1cm4gc2V0VGltZW91dCgoKT0+e1xuXHRcdFx0XHR0aGlzLnBhdGNoKHVybCwgZG9jLCBjYWxsYmFjaywgb3B0cyk7XG5cdFx0XHR9LCAxMDApO1xuXHRcdH1cblx0XHR0aGlzLmh0dHAucGF0Y2g8YW55Pigob3B0cy51cmx8fHRoaXMudXJsKSt1cmwsIGRvYywge1xuXHRcdFx0aGVhZGVyczogdGhpcy5odHRwX2hlYWRlcnNcblx0XHR9KS5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihvcHRzLmVycikpKS5zdWJzY3JpYmUocmVzcD0+e1xuXHRcdFx0aWYodHlwZW9mIHRoaXMuX2h0dHAucmVwbGFjZSA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdFx0dGhpcy5faHR0cC5yZXBsYWNlKHJlc3AsIGNhbGxiYWNrKTtcblx0XHRcdH1lbHNlIGNhbGxiYWNrKHJlc3ApO1xuXHRcdH0pO1xuXHR9XG5cdGRlbGV0ZSh1cmw6YW55LCBkb2M6YW55LCBjYWxsYmFjaz0ocmVzcDphbnkpID0+IHt9LCBvcHRzOmFueT17fSk6YW55e1xuXHRcdGlmKHR5cGVvZiBvcHRzID09ICdmdW5jdGlvbicpe1xuXHRcdFx0b3B0cyA9IHtcblx0XHRcdFx0ZXJyOiBvcHRzXG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmKCFvcHRzLmVycikgb3B0cy5lcnIgPSAoZXJyOkh0dHBFcnJvclJlc3BvbnNlKT0+e307XG5cdFx0aWYodGhpcy5sb2NrZWQpe1xuXHRcdFx0cmV0dXJuIHNldFRpbWVvdXQoKCk9Pntcblx0XHRcdFx0dGhpcy5kZWxldGUodXJsLCBkb2MsIGNhbGxiYWNrLCBvcHRzKTtcblx0XHRcdH0sIDEwMCk7XG5cdFx0fVxuXHRcdHRoaXMuaHR0cC5yZXF1ZXN0PGFueT4oJ2RlbGV0ZScsIChvcHRzLnVybHx8dGhpcy51cmwpK3VybCwge1xuXHRcdFx0aGVhZGVyczogdGhpcy5odHRwX2hlYWRlcnMsXG5cdFx0XHRib2R5OiBkb2MgfHwge31cblx0XHR9KS5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihvcHRzLmVycikpKS5zdWJzY3JpYmUocmVzcD0+e1xuXHRcdFx0aWYodHlwZW9mIHRoaXMuX2h0dHAucmVwbGFjZSA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdFx0dGhpcy5faHR0cC5yZXBsYWNlKHJlc3AsIGNhbGxiYWNrKTtcblx0XHRcdH1lbHNlIGNhbGxiYWNrKHJlc3ApO1xuXHRcdH0pO1xuXHR9XG5cdGdldCh1cmw6YW55LCBjYWxsYmFjaz0ocmVzcDphbnkpID0+IHt9LCBvcHRzOmFueT17fSk6YW55e1xuXHRcdGlmKHR5cGVvZiBvcHRzID09ICdmdW5jdGlvbicpe1xuXHRcdFx0b3B0cyA9IHtcblx0XHRcdFx0ZXJyOiBvcHRzXG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmKCFvcHRzLmVycikgb3B0cy5lcnIgPSAoZXJyOkh0dHBFcnJvclJlc3BvbnNlKT0+e307XG5cdFx0aWYodGhpcy5sb2NrZWQpe1xuXHRcdFx0cmV0dXJuIHNldFRpbWVvdXQoKCk9Pntcblx0XHRcdFx0dGhpcy5nZXQodXJsLCBjYWxsYmFjaywgb3B0cyk7XG5cdFx0XHR9LCAxMDApO1xuXHRcdH1cblx0XHRsZXQgcGFyYW1zOmFueSA9IHtcblx0XHRcdGhlYWRlcnM6IHRoaXMuaHR0cF9oZWFkZXJzXG5cdFx0fTtcblx0XHRpZihvcHRzLnBhcmFtcyl7XG5cdFx0XHRwYXJhbXMucGFyYW1zID0gb3B0cy5wYXJhbXM7XG5cdFx0fVxuXHRcdHRoaXMuaHR0cC5nZXQ8YW55Pigob3B0cy51cmx8fHRoaXMudXJsKSt1cmwsIHBhcmFtcykucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3Iob3B0cy5lcnIpKSkuc3Vic2NyaWJlKHJlc3A9Pntcblx0XHRcdGlmKHR5cGVvZiB0aGlzLl9odHRwLnJlcGxhY2UgPT0gJ2Z1bmN0aW9uJyl7XG5cdFx0XHRcdHRoaXMuX2h0dHAucmVwbGFjZShyZXNwLCBjYWxsYmFjayk7XG5cdFx0XHR9ZWxzZSBjYWxsYmFjayhyZXNwKTtcblx0XHR9KTtcblx0fVxuXHQvLyBodHRwIG1hbmFnZW1lbnRcblx0cHJpdmF0ZSBsb2NrZWQgPSBmYWxzZTtcblx0bG9jaygpe1xuXHRcdHRoaXMubG9ja2VkID0gdHJ1ZTtcblx0fVxuXHR1bmxvY2soKXtcblx0XHR0aGlzLmxvY2tlZCA9IGZhbHNlO1xuXHR9XG5cdGVycihjYWxsYmFjazphbnkpe1xuXHRcdGlmKHR5cGVvZiBjYWxsYmFjayA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdHRoaXMuX2h0dHAuZXJyID0gY2FsbGJhY2s7XG5cdFx0fVxuXHR9XG5cdHByaXZhdGUgaGFuZGxlRXJyb3IoY2I6YW55ID0gdGhpcy5faHR0cC5lcnIpIHtcblx0XHRyZXR1cm4gZnVuY3Rpb24oZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKXtcblx0XHRcdGNiICYmIGNiKGVycm9yKTtcblx0XHRcdHJldHVybiB0aHJvd0Vycm9yKFwiV2UgY2FuJ3QgY29ubmVjdCB0byB0aGUgc2VydmVyXCIpO1xuXHRcdH1cblx0fTtcbn1cbiJdfQ==
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2Fjb20vc3JjL2xpYi9zZXJ2aWNlcy9odHRwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBVSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFpQyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFNbkQsTUFBTSxPQUFPLFdBQVc7SUFrQnZCLFlBQW9CLEtBQW1CLEVBQVUsSUFBZ0IsRUFDdEIsTUFBYztRQURyQyxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBakJqRCxRQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ1QsWUFBTyxHQUFPLEVBQUUsQ0FBQztRQUNqQixpQkFBWSxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQTZKckQsa0JBQWtCO1FBQ1YsV0FBTSxHQUFHLEtBQUssQ0FBQztRQTlJdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztZQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMs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SUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksVUFBVSxFQUFDO2dCQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDbkM7O2dCQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sVUFBVSxDQUFDO0lBQ25CLENBQUM7SUFHRCxJQUFJO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUNELE1BQU07UUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBQ0QsR0FBRyxDQUFDLFFBQVk7UUFDZixJQUFHLE9BQU8sUUFBUSxJQUFJLFVBQVUsRUFBQztZQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUM7U0FDMUI7SUFDRixDQUFDO0lBQ08sV0FBVyxDQUFDLEtBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHO1FBQzFDLE9BQU8sVUFBUyxLQUF3QjtZQUN2QyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sVUFBVSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFBO0lBQ0YsQ0FBQztJQUFBLENBQUM7O3dHQW5MVSxXQUFXLHdFQW1CZCxZQUFZOzRHQW5CVCxXQUFXLGNBRlgsTUFBTTsyRkFFTixXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQjs7MEJBb0JFLE1BQU07MkJBQUMsWUFBWTs7MEJBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENPTkZJR19UT0tFTiwgQ29uZmlnLCBERUZBVUxUX0NPTkZJRyB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uZmlnJztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuXHRwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSHR0cFNlcnZpY2Uge1xuXHRwcml2YXRlIF9odHRwOiBhbnk7XG5cdHByaXZhdGUgdXJsID0gJyc7XG5cdHByaXZhdGUgaGVhZGVyczphbnkgPSB7fTtcblx0cHJpdmF0ZSBodHRwX2hlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKTtcblx0c2V0KGtleTphbnksIHZhbHVlOmFueSl7XG5cdFx0dGhpcy5oZWFkZXJzW2tleV0gPSB2YWx1ZTtcblx0XHR0aGlzLnN0b3JlLnNldEpzb24oJ2h0dHBfaGVhZGVycycsIHRoaXMuaGVhZGVycyk7XG5cdFx0dGhpcy5odHRwX2hlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKTtcblx0fVxuXHRoZWFkZXIoa2V5OmFueSl7XG5cdFx0cmV0dXJuIHRoaXMuaGVhZGVyc1trZXldO1xuXHR9XG5cdHJlbW92ZShrZXk6YW55KXtcblx0XHRkZWxldGUgdGhpcy5oZWFkZXJzW2tleV07XG5cdFx0dGhpcy5odHRwX2hlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKTtcblx0XHR0aGlzLnN0b3JlLnNldEpzb24oJ2h0dHBfaGVhZGVycycsIHRoaXMuaGVhZGVycyk7XG5cdH1cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmVTZXJ2aWNlLCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG5cdFx0QEluamVjdChDT05GSUdfVE9LRU4pIEBPcHRpb25hbCgpIHByaXZhdGUgY29uZmlnOiBDb25maWcpIHtcblx0XHR0aGlzLl9odHRwID0gY29uZmlnLmh0dHA7XG5cdFx0aWYgKCF0aGlzLmNvbmZpZykgdGhpcy5jb25maWcgPSBERUZBVUxUX0NPTkZJRztcblx0XHRpZiAoIXRoaXMuX2h0dHApIHRoaXMuX2h0dHAgPSB7fTtcblx0XHR0aGlzLnN0b3JlLmdldEpzb24oJ2h0dHBfaGVhZGVycycsIChoZWFkZXJzOmFueSk9Pntcblx0XHRcdGlmKGhlYWRlcnMpIHtcblx0XHRcdFx0dGhpcy5oZWFkZXJzID0gaGVhZGVycztcblx0XHRcdFx0dGhpcy5odHRwX2hlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKTtcblx0XHRcdH1cblx0XHRcdHRoaXMudXJsID0gdGhpcy5faHR0cC51cmwgfHwgJyc7XG5cdFx0fSk7XG5cdH1cblx0cG9zdCh1cmw6YW55LCBkb2M6YW55LCBjYWxsYmFjaz0ocmVzcDphbnkpID0+IHt9LCBvcHRzOmFueT17fSk6YW55e1xuXHRcdGlmKHR5cGVvZiBvcHRzID09ICdmdW5jdGlvbicpe1xuXHRcdFx0b3B0cyA9IHtcblx0XHRcdFx0ZXJyOiBvcHRzXG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmKCFvcHRzLmVycikgb3B0cy5lcnIgPSAoZXJyOkh0dHBFcnJvclJlc3BvbnNlKT0+e307XG5cdFx0aWYodGhpcy5sb2NrZWQpe1xuXHRcdFx0cmV0dXJuIHNldFRpbWVvdXQoKCk9Pntcblx0XHRcdFx0dGhpcy5wb3N0KHVybCwgZG9jLCBjYWxsYmFjaywgb3B0cyk7XG5cdFx0XHR9LCAxMDApO1xuXHRcdH1cblx0XHRjb25zdCBvYnNlcnZhYmxlID0gdGhpcy5odHRwLnBvc3Q8YW55Pigob3B0cy51cmx8fHRoaXMudXJsKSt1cmwsIGRvYywge1xuXHRcdFx0aGVhZGVyczogdGhpcy5odHRwX2hlYWRlcnNcblx0XHR9KTtcblx0XHRvYnNlcnZhYmxlLnBpcGUoXG5cdFx0XHRmaXJzdCgpLFxuXHRcdFx0Y2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKG9wdHMuZXJyKSlcblx0XHQpLnN1YnNjcmliZShyZXNwPT57XG5cdFx0XHRpZih0eXBlb2YgdGhpcy5faHR0cC5yZXBsYWNlID09ICdmdW5jdGlvbicpe1xuXHRcdFx0XHR0aGlzLl9odHRwLnJlcGxhY2UocmVzcCwgY2FsbGJhY2spO1xuXHRcdFx0fWVsc2UgY2FsbGJhY2socmVzcCk7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIG9ic2VydmFibGU7XG5cdH1cblx0cHV0KHVybDphbnksIGRvYzphbnksIGNhbGxiYWNrPShyZXNwOmFueSkgPT4ge30sIG9wdHM6YW55PXt9KTphbnl7XG5cdFx0aWYodHlwZW9mIG9wdHMgPT0gJ2Z1bmN0aW9uJyl7XG5cdFx0XHRvcHRzID0ge1xuXHRcdFx0XHRlcnI6IG9wdHNcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYoIW9wdHMuZXJyKSBvcHRzLmVyciA9IChlcnI6SHR0cEVycm9yUmVzcG9uc2UpPT57fTtcblx0XHRpZih0aGlzLmxvY2tlZCl7XG5cdFx0XHRyZXR1cm4gc2V0VGltZW91dCgoKT0+e1xuXHRcdFx0XHR0aGlzLnB1dCh1cmwsIGRvYywgY2FsbGJhY2ssIG9wdHMpO1xuXHRcdFx0fSwgMTAwKTtcblx0XHR9XG5cdFx0Y29uc3Qgb2JzZXJ2YWJsZSA9IHRoaXMuaHR0cC5wdXQ8YW55Pigob3B0cy51cmx8fHRoaXMudXJsKSt1cmwsIGRvYywge1xuXHRcdFx0aGVhZGVyczogdGhpcy5odHRwX2hlYWRlcnNcblx0XHR9KTtcblx0XHRvYnNlcnZhYmxlLnBpcGUoXG5cdFx0XHRmaXJzdCgpLFxuXHRcdFx0Y2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKG9wdHMuZXJyKSlcblx0XHQpLnN1YnNjcmliZShyZXNwPT57XG5cdFx0XHRpZih0eXBlb2YgdGhpcy5faHR0cC5yZXBsYWNlID09ICdmdW5jdGlvbicpe1xuXHRcdFx0XHR0aGlzLl9odHRwLnJlcGxhY2UocmVzcCwgY2FsbGJhY2spO1xuXHRcdFx0fWVsc2UgY2FsbGJhY2socmVzcCk7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIG9ic2VydmFibGU7XG5cdH1cblx0cGF0Y2godXJsOmFueSwgZG9jOmFueSwgY2FsbGJhY2s9KHJlc3A6YW55KSA9PiB7fSwgb3B0czphbnk9e30pOmFueXtcblx0XHRpZih0eXBlb2Ygb3B0cyA9PSAnZnVuY3Rpb24nKXtcblx0XHRcdG9wdHMgPSB7XG5cdFx0XHRcdGVycjogb3B0c1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZighb3B0cy5lcnIpIG9wdHMuZXJyID0gKGVycjpIdHRwRXJyb3JSZXNwb25zZSk9Pnt9O1xuXHRcdGlmKHRoaXMubG9ja2VkKXtcblx0XHRcdHJldHVybiBzZXRUaW1lb3V0KCgpPT57XG5cdFx0XHRcdHRoaXMucGF0Y2godXJsLCBkb2MsIGNhbGxiYWNrLCBvcHRzKTtcblx0XHRcdH0sIDEwMCk7XG5cdFx0fVxuXHRcdGNvbnN0IG9ic2VydmFibGUgPSB0aGlzLmh0dHAucGF0Y2g8YW55Pigob3B0cy51cmx8fHRoaXMudXJsKSt1cmwsIGRvYywge1xuXHRcdFx0aGVhZGVyczogdGhpcy5odHRwX2hlYWRlcnNcblx0XHR9KTtcblx0XHRvYnNlcnZhYmxlLnBpcGUoXG5cdFx0XHRmaXJzdCgpLFxuXHRcdFx0Y2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKG9wdHMuZXJyKSlcblx0XHQpLnN1YnNjcmliZShyZXNwPT57XG5cdFx0XHRpZih0eXBlb2YgdGhpcy5faHR0cC5yZXBsYWNlID09ICdmdW5jdGlvbicpe1xuXHRcdFx0XHR0aGlzLl9odHRwLnJlcGxhY2UocmVzcCwgY2FsbGJhY2spO1xuXHRcdFx0fWVsc2UgY2FsbGJhY2socmVzcCk7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIG9ic2VydmFibGU7XG5cdH1cblx0ZGVsZXRlKHVybDphbnksIGRvYzphbnksIGNhbGxiYWNrPShyZXNwOmFueSkgPT4ge30sIG9wdHM6YW55PXt9KTphbnl7XG5cdFx0aWYodHlwZW9mIG9wdHMgPT0gJ2Z1bmN0aW9uJyl7XG5cdFx0XHRvcHRzID0ge1xuXHRcdFx0XHRlcnI6IG9wdHNcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYoIW9wdHMuZXJyKSBvcHRzLmVyciA9IChlcnI6SHR0cEVycm9yUmVzcG9uc2UpPT57fTtcblx0XHRpZih0aGlzLmxvY2tlZCl7XG5cdFx0XHRyZXR1cm4gc2V0VGltZW91dCgoKT0+e1xuXHRcdFx0XHR0aGlzLmRlbGV0ZSh1cmwsIGRvYywgY2FsbGJhY2ssIG9wdHMpO1xuXHRcdFx0fSwgMTAwKTtcblx0XHR9XG5cdFx0Y29uc3Qgb2JzZXJ2YWJsZSA9IHRoaXMuaHR0cC5yZXF1ZXN0PGFueT4oJ2RlbGV0ZScsIChvcHRzLnVybHx8dGhpcy51cmwpK3VybCwge1xuXHRcdFx0aGVhZGVyczogdGhpcy5odHRwX2hlYWRlcnMsXG5cdFx0XHRib2R5OiBkb2MgfHwge31cblx0XHR9KTtcblx0XHRvYnNlcnZhYmxlLnBpcGUoXG5cdFx0XHRmaXJzdCgpLFxuXHRcdFx0Y2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKG9wdHMuZXJyKSlcblx0XHQpLnN1YnNjcmliZShyZXNwPT57XG5cdFx0XHRpZih0eXBlb2YgdGhpcy5faHR0cC5yZXBsYWNlID09ICdmdW5jdGlvbicpe1xuXHRcdFx0XHR0aGlzLl9odHRwLnJlcGxhY2UocmVzcCwgY2FsbGJhY2spO1xuXHRcdFx0fWVsc2UgY2FsbGJhY2socmVzcCk7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIG9ic2VydmFibGU7XG5cdH1cblx0Z2V0KHVybDphbnksIGNhbGxiYWNrPShyZXNwOmFueSkgPT4ge30sIG9wdHM6YW55PXt9KTphbnl7XG5cdFx0aWYodHlwZW9mIG9wdHMgPT0gJ2Z1bmN0aW9uJyl7XG5cdFx0XHRvcHRzID0ge1xuXHRcdFx0XHRlcnI6IG9wdHNcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYoIW9wdHMuZXJyKSBvcHRzLmVyciA9IChlcnI6SHR0cEVycm9yUmVzcG9uc2UpPT57fTtcblx0XHRpZih0aGlzLmxvY2tlZCl7XG5cdFx0XHRyZXR1cm4gc2V0VGltZW91dCgoKT0+e1xuXHRcdFx0XHR0aGlzLmdldCh1cmwsIGNhbGxiYWNrLCBvcHRzKTtcblx0XHRcdH0sIDEwMCk7XG5cdFx0fVxuXHRcdGxldCBwYXJhbXM6YW55ID0ge1xuXHRcdFx0aGVhZGVyczogdGhpcy5odHRwX2hlYWRlcnNcblx0XHR9O1xuXHRcdGlmIChvcHRzLnBhcmFtcyl7XG5cdFx0XHRwYXJhbXMucGFyYW1zID0gb3B0cy5wYXJhbXM7XG5cdFx0fVxuXHRcdGNvbnN0IG9ic2VydmFibGUgPSB0aGlzLmh0dHAuZ2V0PGFueT4oKG9wdHMudXJsIHx8IHRoaXMudXJsKSArIHVybCwgcGFyYW1zKTtcblx0XHRvYnNlcnZhYmxlLnBpcGUoXG5cdFx0XHRmaXJzdCgpLFxuXHRcdFx0Y2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKG9wdHMuZXJyKSlcblx0XHQpLnN1YnNjcmliZShyZXNwPT57XG5cdFx0XHRpZih0eXBlb2YgdGhpcy5faHR0cC5yZXBsYWNlID09ICdmdW5jdGlvbicpe1xuXHRcdFx0XHR0aGlzLl9odHRwLnJlcGxhY2UocmVzcCwgY2FsbGJhY2spO1xuXHRcdFx0fWVsc2UgY2FsbGJhY2socmVzcCk7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIG9ic2VydmFibGU7XG5cdH1cblx0Ly8gaHR0cCBtYW5hZ2VtZW50XG5cdHByaXZhdGUgbG9ja2VkID0gZmFsc2U7XG5cdGxvY2soKXtcblx0XHR0aGlzLmxvY2tlZCA9IHRydWU7XG5cdH1cblx0dW5sb2NrKCl7XG5cdFx0dGhpcy5sb2NrZWQgPSBmYWxzZTtcblx0fVxuXHRlcnIoY2FsbGJhY2s6YW55KXtcblx0XHRpZih0eXBlb2YgY2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJyl7XG5cdFx0XHR0aGlzLl9odHRwLmVyciA9IGNhbGxiYWNrO1xuXHRcdH1cblx0fVxuXHRwcml2YXRlIGhhbmRsZUVycm9yKGNiOmFueSA9IHRoaXMuX2h0dHAuZXJyKSB7XG5cdFx0cmV0dXJuIGZ1bmN0aW9uKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSl7XG5cdFx0XHRjYiAmJiBjYihlcnJvcik7XG5cdFx0XHRyZXR1cm4gdGhyb3dFcnJvcihcIldlIGNhbid0IGNvbm5lY3QgdG8gdGhlIHNlcnZlclwiKTtcblx0XHR9XG5cdH07XG59XG4iXX0=
|