obsidian-typings 2.8.1 → 2.8.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/dist/implementations.cjs +196 -196
- package/dist/implementations.d.ts +1274 -1274
- package/dist/types.d.ts +3273 -3273
- package/package.json +1 -1
package/dist/implementations.cjs
CHANGED
|
@@ -66,142 +66,38 @@ __export(implementations_exports, {
|
|
|
66
66
|
});
|
|
67
67
|
module.exports = __toCommonJS(implementations_exports);
|
|
68
68
|
|
|
69
|
-
// src/obsidian/implementations/
|
|
70
|
-
var CustomArrayDictImpl = class {
|
|
71
|
-
data = /* @__PURE__ */ new Map();
|
|
72
|
-
add(key, value) {
|
|
73
|
-
let values = this.get(key);
|
|
74
|
-
if (!values) {
|
|
75
|
-
values = [];
|
|
76
|
-
this.data.set(key, values);
|
|
77
|
-
}
|
|
78
|
-
if (!values.includes(value)) {
|
|
79
|
-
values.push(value);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
remove(key, value) {
|
|
83
|
-
const values = this.get(key);
|
|
84
|
-
if (!values) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
values.remove(value);
|
|
88
|
-
if (values.length === 0) {
|
|
89
|
-
this.clear(key);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
get(key) {
|
|
93
|
-
return this.data.get(key) || null;
|
|
94
|
-
}
|
|
95
|
-
keys() {
|
|
96
|
-
return Array.from(this.data.keys());
|
|
97
|
-
}
|
|
98
|
-
clear(key) {
|
|
99
|
-
this.data.delete(key);
|
|
100
|
-
}
|
|
101
|
-
clearAll() {
|
|
102
|
-
this.data.clear();
|
|
103
|
-
}
|
|
104
|
-
contains(key, value) {
|
|
105
|
-
return !!this.get(key)?.contains(value);
|
|
106
|
-
}
|
|
107
|
-
count() {
|
|
108
|
-
let ans = 0;
|
|
109
|
-
for (const key in this.keys()) {
|
|
110
|
-
ans += this.get(key)?.length ?? 0;
|
|
111
|
-
}
|
|
112
|
-
return ans;
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
// src/obsidian/implementations/Constructors/getTFolderConstructor.ts
|
|
69
|
+
// src/obsidian/implementations/Constructors/getAppConstructor.ts
|
|
117
70
|
var import_obsidian = require("obsidian");
|
|
118
|
-
function
|
|
119
|
-
return import_obsidian.
|
|
71
|
+
function getAppConstructor() {
|
|
72
|
+
return import_obsidian.App;
|
|
120
73
|
}
|
|
121
74
|
|
|
122
|
-
// src/obsidian/implementations/
|
|
123
|
-
|
|
124
|
-
|
|
75
|
+
// src/obsidian/implementations/Constructors/getTFolderConstructor.ts
|
|
76
|
+
var import_obsidian2 = require("obsidian");
|
|
77
|
+
function getTFolderConstructor() {
|
|
78
|
+
return import_obsidian2.TFolder;
|
|
125
79
|
}
|
|
126
80
|
|
|
127
|
-
// src/obsidian/implementations/
|
|
128
|
-
function
|
|
129
|
-
|
|
130
|
-
if (folder) {
|
|
131
|
-
return folder;
|
|
132
|
-
}
|
|
133
|
-
folder = new (getTFolderConstructor())(app.vault, path);
|
|
134
|
-
folder.parent = createTFolderInstance(app, parentFolderPath(path));
|
|
135
|
-
folder.deleted = true;
|
|
136
|
-
return folder;
|
|
81
|
+
// src/obsidian/implementations/Constructors/getInternalPluginsConstructor.ts
|
|
82
|
+
function getInternalPluginsConstructor(app) {
|
|
83
|
+
return app.internalPlugins.constructor;
|
|
137
84
|
}
|
|
138
85
|
|
|
139
86
|
// src/obsidian/implementations/Constructors/getTFileConstructor.ts
|
|
140
|
-
var
|
|
87
|
+
var import_obsidian3 = require("obsidian");
|
|
141
88
|
function getTFileConstructor() {
|
|
142
|
-
return
|
|
89
|
+
return import_obsidian3.TFile;
|
|
143
90
|
}
|
|
144
91
|
|
|
145
|
-
// src/obsidian/implementations/
|
|
146
|
-
function
|
|
147
|
-
|
|
148
|
-
if (
|
|
149
|
-
|
|
92
|
+
// src/obsidian/implementations/Constructors/getInternalPluginConstructor.ts
|
|
93
|
+
function getInternalPluginConstructor(app) {
|
|
94
|
+
const anyPlugin = Object.values(app.internalPlugins.plugins)[0];
|
|
95
|
+
if (!anyPlugin) {
|
|
96
|
+
throw new Error("No internal plugin found");
|
|
150
97
|
}
|
|
151
|
-
|
|
152
|
-
file.parent = createTFolderInstance(app, parentFolderPath(path));
|
|
153
|
-
file.deleted = true;
|
|
154
|
-
return file;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
// src/obsidian/implementations/TypeGuards/isReferenceCache.ts
|
|
158
|
-
function isReferenceCache(reference) {
|
|
159
|
-
return !!reference.position;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
// src/obsidian/implementations/TypeGuards/isEmbedCache.ts
|
|
163
|
-
function isEmbedCache(reference) {
|
|
164
|
-
return isReferenceCache(reference) && reference.original[0] === "!";
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
// src/obsidian/implementations/TypeGuards/isFrontmatterLinkCache.ts
|
|
168
|
-
function isFrontmatterLinkCache(reference) {
|
|
169
|
-
return !!reference.key;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
// src/obsidian/implementations/TypeGuards/isLinkCache.ts
|
|
173
|
-
function isLinkCache(reference) {
|
|
174
|
-
return isReferenceCache(reference) && reference.original[0] !== "!";
|
|
98
|
+
return anyPlugin.constructor;
|
|
175
99
|
}
|
|
176
100
|
|
|
177
|
-
// src/obsidian/implementations/Constants/FileExtension.ts
|
|
178
|
-
var FileExtension = {
|
|
179
|
-
_3gp: "3gp",
|
|
180
|
-
avif: "avif",
|
|
181
|
-
bmp: "bmp",
|
|
182
|
-
canvas: "canvas",
|
|
183
|
-
flac: "flac",
|
|
184
|
-
gif: "gif",
|
|
185
|
-
jpeg: "jpeg",
|
|
186
|
-
jpg: "jpg",
|
|
187
|
-
m4a: "m4a",
|
|
188
|
-
md: "md",
|
|
189
|
-
mkv: "mkv",
|
|
190
|
-
mov: "mov",
|
|
191
|
-
mp3: "mp3",
|
|
192
|
-
mp4: "mp4",
|
|
193
|
-
oga: "oga",
|
|
194
|
-
ogg: "ogg",
|
|
195
|
-
ogv: "ogv",
|
|
196
|
-
opus: "opus",
|
|
197
|
-
pdf: "pdf",
|
|
198
|
-
png: "png",
|
|
199
|
-
svg: "svg",
|
|
200
|
-
wav: "wav",
|
|
201
|
-
webm: "webm",
|
|
202
|
-
webp: "webp"
|
|
203
|
-
};
|
|
204
|
-
|
|
205
101
|
// src/obsidian/implementations/Constants/InternalPluginName.ts
|
|
206
102
|
var InternalPluginName = {
|
|
207
103
|
/**
|
|
@@ -322,6 +218,34 @@ var InternalPluginName = {
|
|
|
322
218
|
ZkPrefixer: "zk-prefixer"
|
|
323
219
|
};
|
|
324
220
|
|
|
221
|
+
// src/obsidian/implementations/Constants/FileExtension.ts
|
|
222
|
+
var FileExtension = {
|
|
223
|
+
_3gp: "3gp",
|
|
224
|
+
avif: "avif",
|
|
225
|
+
bmp: "bmp",
|
|
226
|
+
canvas: "canvas",
|
|
227
|
+
flac: "flac",
|
|
228
|
+
gif: "gif",
|
|
229
|
+
jpeg: "jpeg",
|
|
230
|
+
jpg: "jpg",
|
|
231
|
+
m4a: "m4a",
|
|
232
|
+
md: "md",
|
|
233
|
+
mkv: "mkv",
|
|
234
|
+
mov: "mov",
|
|
235
|
+
mp3: "mp3",
|
|
236
|
+
mp4: "mp4",
|
|
237
|
+
oga: "oga",
|
|
238
|
+
ogg: "ogg",
|
|
239
|
+
ogv: "ogv",
|
|
240
|
+
opus: "opus",
|
|
241
|
+
pdf: "pdf",
|
|
242
|
+
png: "png",
|
|
243
|
+
svg: "svg",
|
|
244
|
+
wav: "wav",
|
|
245
|
+
webm: "webm",
|
|
246
|
+
webp: "webp"
|
|
247
|
+
};
|
|
248
|
+
|
|
325
249
|
// src/obsidian/implementations/Constants/ViewType.ts
|
|
326
250
|
var ViewType = {
|
|
327
251
|
AllProperties: "all-properties",
|
|
@@ -348,26 +272,102 @@ var ViewType = {
|
|
|
348
272
|
Video: "video"
|
|
349
273
|
};
|
|
350
274
|
|
|
351
|
-
// src/obsidian/implementations/
|
|
352
|
-
function
|
|
353
|
-
|
|
354
|
-
if (!anyPlugin) {
|
|
355
|
-
throw new Error("No internal plugin found");
|
|
356
|
-
}
|
|
357
|
-
return anyPlugin.constructor;
|
|
275
|
+
// src/obsidian/implementations/TypeGuards/isReferenceCache.ts
|
|
276
|
+
function isReferenceCache(reference) {
|
|
277
|
+
return !!reference.position;
|
|
358
278
|
}
|
|
359
279
|
|
|
360
|
-
// src/obsidian/implementations/
|
|
361
|
-
function
|
|
362
|
-
return
|
|
280
|
+
// src/obsidian/implementations/TypeGuards/isLinkCache.ts
|
|
281
|
+
function isLinkCache(reference) {
|
|
282
|
+
return isReferenceCache(reference) && reference.original[0] !== "!";
|
|
363
283
|
}
|
|
364
284
|
|
|
365
|
-
// src/obsidian/implementations/
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
285
|
+
// src/obsidian/implementations/TypeGuards/isEmbedCache.ts
|
|
286
|
+
function isEmbedCache(reference) {
|
|
287
|
+
return isReferenceCache(reference) && reference.original[0] === "!";
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
// src/obsidian/implementations/TypeGuards/isFrontmatterLinkCache.ts
|
|
291
|
+
function isFrontmatterLinkCache(reference) {
|
|
292
|
+
return !!reference.key;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
// src/obsidian/implementations/Utils/PathUtils.ts
|
|
296
|
+
function parentFolderPath(path) {
|
|
297
|
+
return path.replace(/\/?[^\/]*$/, "") || "/";
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
// src/obsidian/implementations/Functions/createTFolderInstance.ts
|
|
301
|
+
function createTFolderInstance(app, path) {
|
|
302
|
+
let folder = app.vault.getFolderByPath(path);
|
|
303
|
+
if (folder) {
|
|
304
|
+
return folder;
|
|
305
|
+
}
|
|
306
|
+
folder = new (getTFolderConstructor())(app.vault, path);
|
|
307
|
+
folder.parent = createTFolderInstance(app, parentFolderPath(path));
|
|
308
|
+
folder.deleted = true;
|
|
309
|
+
return folder;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
// src/obsidian/implementations/Functions/createTFileInstance.ts
|
|
313
|
+
function createTFileInstance(app, path) {
|
|
314
|
+
let file = app.vault.getFileByPath(path);
|
|
315
|
+
if (file) {
|
|
316
|
+
return file;
|
|
317
|
+
}
|
|
318
|
+
file = new (getTFileConstructor())(app.vault, path);
|
|
319
|
+
file.parent = createTFolderInstance(app, parentFolderPath(path));
|
|
320
|
+
file.deleted = true;
|
|
321
|
+
return file;
|
|
369
322
|
}
|
|
370
323
|
|
|
324
|
+
// src/obsidian/implementations/Classes/CustomArrayDictImpl.ts
|
|
325
|
+
var CustomArrayDictImpl = class {
|
|
326
|
+
data = /* @__PURE__ */ new Map();
|
|
327
|
+
add(key, value) {
|
|
328
|
+
let values = this.get(key);
|
|
329
|
+
if (!values) {
|
|
330
|
+
values = [];
|
|
331
|
+
this.data.set(key, values);
|
|
332
|
+
}
|
|
333
|
+
if (!values.includes(value)) {
|
|
334
|
+
values.push(value);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
remove(key, value) {
|
|
338
|
+
const values = this.get(key);
|
|
339
|
+
if (!values) {
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
values.remove(value);
|
|
343
|
+
if (values.length === 0) {
|
|
344
|
+
this.clear(key);
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
get(key) {
|
|
348
|
+
return this.data.get(key) || null;
|
|
349
|
+
}
|
|
350
|
+
keys() {
|
|
351
|
+
return Array.from(this.data.keys());
|
|
352
|
+
}
|
|
353
|
+
clear(key) {
|
|
354
|
+
this.data.delete(key);
|
|
355
|
+
}
|
|
356
|
+
clearAll() {
|
|
357
|
+
this.data.clear();
|
|
358
|
+
}
|
|
359
|
+
contains(key, value) {
|
|
360
|
+
return !!this.get(key)?.contains(value);
|
|
361
|
+
}
|
|
362
|
+
count() {
|
|
363
|
+
let ans = 0;
|
|
364
|
+
for (const key in this.keys()) {
|
|
365
|
+
ans += this.get(key)?.length ?? 0;
|
|
366
|
+
}
|
|
367
|
+
return ans;
|
|
368
|
+
}
|
|
369
|
+
};
|
|
370
|
+
|
|
371
371
|
// src/obsidian/implementations/Constructors/Views/getViewConstructorByViewType.ts
|
|
372
372
|
function getViewConstructorByViewType(app, viewType) {
|
|
373
373
|
const leaf = app.workspace.createLeafInTabGroup();
|
|
@@ -383,9 +383,29 @@ function getViewConstructorByViewType(app, viewType) {
|
|
|
383
383
|
}
|
|
384
384
|
}
|
|
385
385
|
|
|
386
|
-
// src/obsidian/implementations/Constructors/Views/
|
|
387
|
-
function
|
|
388
|
-
return getViewConstructorByViewType(app, ViewType.
|
|
386
|
+
// src/obsidian/implementations/Constructors/Views/getAllPropertiesViewConstructor.ts
|
|
387
|
+
function getAllPropertiesViewConstructor(app) {
|
|
388
|
+
return getViewConstructorByViewType(app, ViewType.AllProperties);
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
// src/obsidian/implementations/Constructors/Views/getMarkdownViewConstructor.ts
|
|
392
|
+
function getMarkdownViewConstructor(app) {
|
|
393
|
+
return getViewConstructorByViewType(app, ViewType.Markdown);
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
// src/obsidian/implementations/Constructors/Views/getCanvasViewConstructor.ts
|
|
397
|
+
function getCanvasViewConstructor(app) {
|
|
398
|
+
return getViewConstructorByViewType(app, ViewType.Canvas);
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
// src/obsidian/implementations/Constructors/Views/getFileExplorerViewConstructor.ts
|
|
402
|
+
function getFileExplorerViewConstructor(app) {
|
|
403
|
+
return getViewConstructorByViewType(app, ViewType.FileExplorer);
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
// src/obsidian/implementations/Constructors/Views/getOutgoingLinkViewConstructor.ts
|
|
407
|
+
function getOutgoingLinkViewConstructor(app) {
|
|
408
|
+
return getViewConstructorByViewType(app, ViewType.OutgoingLink);
|
|
389
409
|
}
|
|
390
410
|
|
|
391
411
|
// src/obsidian/implementations/Constructors/Views/getBrowserViewConstructor.ts
|
|
@@ -393,34 +413,29 @@ function getBrowserViewConstructor(app) {
|
|
|
393
413
|
return getViewConstructorByViewType(app, ViewType.Browser);
|
|
394
414
|
}
|
|
395
415
|
|
|
396
|
-
// src/obsidian/implementations/Constructors/Views/getReleaseNotesViewConstructor.ts
|
|
397
|
-
function getReleaseNotesViewConstructor(app) {
|
|
398
|
-
return getViewConstructorByViewType(app, ViewType.ReleaseNotes);
|
|
399
|
-
}
|
|
400
|
-
|
|
401
416
|
// src/obsidian/implementations/Constructors/Views/getPdfViewConstructor.ts
|
|
402
417
|
function getPdfViewConstructor(app) {
|
|
403
418
|
return getViewConstructorByViewType(app, ViewType.Pdf);
|
|
404
419
|
}
|
|
405
420
|
|
|
406
|
-
// src/obsidian/implementations/Constructors/Views/
|
|
407
|
-
function
|
|
408
|
-
return getViewConstructorByViewType(app, ViewType.
|
|
421
|
+
// src/obsidian/implementations/Constructors/Views/getSearchViewConstructor.ts
|
|
422
|
+
function getSearchViewConstructor(app) {
|
|
423
|
+
return getViewConstructorByViewType(app, ViewType.Search);
|
|
409
424
|
}
|
|
410
425
|
|
|
411
|
-
// src/obsidian/implementations/Constructors/Views/
|
|
412
|
-
function
|
|
413
|
-
return getViewConstructorByViewType(app, ViewType.
|
|
426
|
+
// src/obsidian/implementations/Constructors/Views/getFilePropertiesViewConstructor.ts
|
|
427
|
+
function getFilePropertiesViewConstructor(app) {
|
|
428
|
+
return getViewConstructorByViewType(app, ViewType.FileProperties);
|
|
414
429
|
}
|
|
415
430
|
|
|
416
|
-
// src/obsidian/implementations/Constructors/Views/
|
|
417
|
-
function
|
|
418
|
-
return getViewConstructorByViewType(app, ViewType.
|
|
431
|
+
// src/obsidian/implementations/Constructors/Views/getBookmarksViewConstructor.ts
|
|
432
|
+
function getBookmarksViewConstructor(app) {
|
|
433
|
+
return getViewConstructorByViewType(app, ViewType.Bookmarks);
|
|
419
434
|
}
|
|
420
435
|
|
|
421
|
-
// src/obsidian/implementations/Constructors/Views/
|
|
422
|
-
function
|
|
423
|
-
return getViewConstructorByViewType(app, ViewType.
|
|
436
|
+
// src/obsidian/implementations/Constructors/Views/getEmptyViewConstructor.ts
|
|
437
|
+
function getEmptyViewConstructor(app) {
|
|
438
|
+
return getViewConstructorByViewType(app, ViewType.Empty);
|
|
424
439
|
}
|
|
425
440
|
|
|
426
441
|
// src/obsidian/implementations/Constructors/Views/getAudioViewConstructor.ts
|
|
@@ -428,29 +443,29 @@ function getAudioViewConstructor(app) {
|
|
|
428
443
|
return getViewConstructorByViewType(app, ViewType.Audio);
|
|
429
444
|
}
|
|
430
445
|
|
|
431
|
-
// src/obsidian/implementations/Constructors/Views/
|
|
432
|
-
function
|
|
433
|
-
return getViewConstructorByViewType(app, ViewType.
|
|
446
|
+
// src/obsidian/implementations/Constructors/Views/getOutlineViewConstructor.ts
|
|
447
|
+
function getOutlineViewConstructor(app) {
|
|
448
|
+
return getViewConstructorByViewType(app, ViewType.Outline);
|
|
434
449
|
}
|
|
435
450
|
|
|
436
|
-
// src/obsidian/implementations/Constructors/Views/
|
|
437
|
-
function
|
|
438
|
-
return getViewConstructorByViewType(app, ViewType.
|
|
451
|
+
// src/obsidian/implementations/Constructors/Views/getTagViewConstructor.ts
|
|
452
|
+
function getTagViewConstructor(app) {
|
|
453
|
+
return getViewConstructorByViewType(app, ViewType.Tag);
|
|
439
454
|
}
|
|
440
455
|
|
|
441
|
-
// src/obsidian/implementations/Constructors/Views/
|
|
442
|
-
function
|
|
443
|
-
return getViewConstructorByViewType(app, ViewType.
|
|
456
|
+
// src/obsidian/implementations/Constructors/Views/getVideoViewConstructor.ts
|
|
457
|
+
function getVideoViewConstructor(app) {
|
|
458
|
+
return getViewConstructorByViewType(app, ViewType.Video);
|
|
444
459
|
}
|
|
445
460
|
|
|
446
|
-
// src/obsidian/implementations/Constructors/Views/
|
|
447
|
-
function
|
|
448
|
-
return getViewConstructorByViewType(app, ViewType.
|
|
461
|
+
// src/obsidian/implementations/Constructors/Views/getGraphViewConstructor.ts
|
|
462
|
+
function getGraphViewConstructor(app) {
|
|
463
|
+
return getViewConstructorByViewType(app, ViewType.Graph);
|
|
449
464
|
}
|
|
450
465
|
|
|
451
|
-
// src/obsidian/implementations/Constructors/Views/
|
|
452
|
-
function
|
|
453
|
-
return getViewConstructorByViewType(app, ViewType.
|
|
466
|
+
// src/obsidian/implementations/Constructors/Views/getLocalGraphViewConstructor.ts
|
|
467
|
+
function getLocalGraphViewConstructor(app) {
|
|
468
|
+
return getViewConstructorByViewType(app, ViewType.LocalGraph);
|
|
454
469
|
}
|
|
455
470
|
|
|
456
471
|
// src/obsidian/implementations/Constructors/Views/getImageViewConstructor.ts
|
|
@@ -463,33 +478,18 @@ function getBrowserHistoryViewConstructor(app) {
|
|
|
463
478
|
return getViewConstructorByViewType(app, ViewType.BrowserHistory);
|
|
464
479
|
}
|
|
465
480
|
|
|
466
|
-
// src/obsidian/implementations/Constructors/Views/
|
|
467
|
-
function
|
|
468
|
-
return getViewConstructorByViewType(app, ViewType.
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
// src/obsidian/implementations/Constructors/Views/getGraphViewConstructor.ts
|
|
472
|
-
function getGraphViewConstructor(app) {
|
|
473
|
-
return getViewConstructorByViewType(app, ViewType.Graph);
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
// src/obsidian/implementations/Constructors/Views/getFilePropertiesViewConstructor.ts
|
|
477
|
-
function getFilePropertiesViewConstructor(app) {
|
|
478
|
-
return getViewConstructorByViewType(app, ViewType.FileProperties);
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
// src/obsidian/implementations/Constructors/Views/getBookmarksViewConstructor.ts
|
|
482
|
-
function getBookmarksViewConstructor(app) {
|
|
483
|
-
return getViewConstructorByViewType(app, ViewType.Bookmarks);
|
|
481
|
+
// src/obsidian/implementations/Constructors/Views/getSyncViewConstructor.ts
|
|
482
|
+
function getSyncViewConstructor(app) {
|
|
483
|
+
return getViewConstructorByViewType(app, ViewType.Sync);
|
|
484
484
|
}
|
|
485
485
|
|
|
486
|
-
// src/obsidian/implementations/Constructors/Views/
|
|
487
|
-
function
|
|
488
|
-
return getViewConstructorByViewType(app, ViewType.
|
|
486
|
+
// src/obsidian/implementations/Constructors/Views/getReleaseNotesViewConstructor.ts
|
|
487
|
+
function getReleaseNotesViewConstructor(app) {
|
|
488
|
+
return getViewConstructorByViewType(app, ViewType.ReleaseNotes);
|
|
489
489
|
}
|
|
490
490
|
|
|
491
|
-
// src/obsidian/implementations/Constructors/Views/
|
|
492
|
-
function
|
|
493
|
-
return getViewConstructorByViewType(app, ViewType.
|
|
491
|
+
// src/obsidian/implementations/Constructors/Views/getBacklinkViewConstructor.ts
|
|
492
|
+
function getBacklinkViewConstructor(app) {
|
|
493
|
+
return getViewConstructorByViewType(app, ViewType.Backlink);
|
|
494
494
|
}
|
|
495
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9pbmRleC50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NsYXNzZXMvQ3VzdG9tQXJyYXlEaWN0SW1wbC50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9nZXRURm9sZGVyQ29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9VdGlscy9QYXRoVXRpbHMudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9GdW5jdGlvbnMvY3JlYXRlVEZvbGRlckluc3RhbmNlLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL2dldFRGaWxlQ29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9GdW5jdGlvbnMvY3JlYXRlVEZpbGVJbnN0YW5jZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL1R5cGVHdWFyZHMvaXNSZWZlcmVuY2VDYWNoZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL1R5cGVHdWFyZHMvaXNFbWJlZENhY2hlLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvVHlwZUd1YXJkcy9pc0Zyb250bWF0dGVyTGlua0NhY2hlLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvVHlwZUd1YXJkcy9pc0xpbmtDYWNoZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0YW50cy9GaWxlRXh0ZW5zaW9uLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RhbnRzL0ludGVybmFsUGx1Z2luTmFtZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0YW50cy9WaWV3VHlwZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9nZXRJbnRlcm5hbFBsdWdpbkNvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL2dldEludGVybmFsUGx1Z2luc0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL2dldEFwcENvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0T3V0bGluZVZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRCcm93c2VyVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldFJlbGVhc2VOb3Rlc1ZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRQZGZWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0U3luY1ZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRPdXRnb2luZ0xpbmtWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0Q2FudmFzVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldFRhZ1ZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRBdWRpb1ZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRMb2NhbEdyYXBoVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldEJhY2tsaW5rVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldEZpbGVFeHBsb3JlclZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRTZWFyY2hWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0VmlkZW9WaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0SW1hZ2VWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0QnJvd3Nlckhpc3RvcnlWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0RW1wdHlWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0R3JhcGhWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0RmlsZVByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0Qm9va21hcmtzVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldE1hcmtkb3duVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldEFsbFByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBmcm9tICcuL0NsYXNzZXMvQ3VzdG9tQXJyYXlEaWN0SW1wbC5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0Z1bmN0aW9ucy9jcmVhdGVURm9sZGVySW5zdGFuY2UuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9GdW5jdGlvbnMvY3JlYXRlVEZpbGVJbnN0YW5jZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL1V0aWxzL1BhdGhVdGlscy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL1R5cGVHdWFyZHMvaXNFbWJlZENhY2hlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vVHlwZUd1YXJkcy9pc0Zyb250bWF0dGVyTGlua0NhY2hlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vVHlwZUd1YXJkcy9pc1JlZmVyZW5jZUNhY2hlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vVHlwZUd1YXJkcy9pc0xpbmtDYWNoZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0YW50cy9GaWxlRXh0ZW5zaW9uLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RhbnRzL1ZpZXdUeXBlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RhbnRzL0ludGVybmFsUGx1Z2luTmFtZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9nZXRJbnRlcm5hbFBsdWdpbkNvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL2dldEludGVybmFsUGx1Z2luc0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL2dldFRGb2xkZXJDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9nZXRBcHBDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9nZXRURmlsZUNvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldE91dGxpbmVWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0QnJvd3NlclZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRSZWxlYXNlTm90ZXNWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0UGRmVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0U3luY1ZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRPdXRnb2luZ0xpbmtWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0Q2FudmFzVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldFRhZ1ZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRBdWRpb1ZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRMb2NhbEdyYXBoVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldEJhY2tsaW5rVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldEZpbGVFeHBsb3JlclZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRTZWFyY2hWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0VmlkZW9WaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0SW1hZ2VWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0QnJvd3Nlckhpc3RvcnlWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0RW1wdHlWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0R3JhcGhWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0RmlsZVByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0Qm9va21hcmtzVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldE1hcmtkb3duVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldEFsbFByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IuanMnO1xuaW1wb3J0ICcuLi8uLi9pbmRleC5qcyc7XG4iLCAiaW1wb3J0IHR5cGUgeyBDdXN0b21BcnJheURpY3QgfSBmcm9tICcuLi8uLi9pbnRlcm5hbHMvQ3VzdG9tQXJyYXlEaWN0LmpzJztcblxuLyoqIEBwdWJsaWMgKi9cbmV4cG9ydCBjbGFzcyBDdXN0b21BcnJheURpY3RJbXBsPFQ+IGltcGxlbWVudHMgQ3VzdG9tQXJyYXlEaWN0PFQ+IHtcbiAgICBwdWJsaWMgZGF0YTogTWFwPHN0cmluZywgVFtdPiA9IG5ldyBNYXAoKTtcblxuICAgIHB1YmxpYyBhZGQoa2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIGxldCB2YWx1ZXMgPSB0aGlzLmdldChrZXkpO1xuICAgICAgICBpZiAoIXZhbHVlcykge1xuICAgICAgICAgICAgdmFsdWVzID0gW107XG4gICAgICAgICAgICB0aGlzLmRhdGEuc2V0KGtleSwgdmFsdWVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdmFsdWVzLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWVzLnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZShrZXk6IHN0cmluZywgdmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKCF2YWx1ZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZXMucmVtb3ZlKHZhbHVlKTtcblxuICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5jbGVhcihrZXkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldChrZXk6IHN0cmluZyk6IFRbXSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmdldChrZXkpIHx8IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGtleXMoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmRhdGEua2V5cygpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXIoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhLmRlbGV0ZShrZXkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhckFsbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnRhaW5zKGtleTogc3RyaW5nLCB2YWx1ZTogVCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmdldChrZXkpPy5jb250YWlucyh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvdW50KCk6IG51bWJlciB7XG4gICAgICAgIGxldCBhbnMgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmtleXMoKSkge1xuICAgICAgICAgICAgYW5zICs9IHRoaXMuZ2V0KGtleSk/Lmxlbmd0aCA/PyAwO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFucztcbiAgICB9XG59XG4iLCAiaW1wb3J0IHtcbiAgICBURm9sZGVyXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVEZvbGRlckNvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9URm9sZGVyQ29uc3RydWN0b3IudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgVEZvbGRlciBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgVEZvbGRlciBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRGb2xkZXJDb25zdHJ1Y3RvcigpOiBURm9sZGVyQ29uc3RydWN0b3Ige1xuICAgIHJldHVybiBURm9sZGVyIGFzIFRGb2xkZXJDb25zdHJ1Y3Rvcjtcbn1cbiIsICIvKipcbiAqIEdldCB0aGUgcGFyZW50IGZvbGRlciBwYXRoIG9mIGEgZ2l2ZW4gcGF0aC5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIGdldCB0aGUgcGFyZW50IGZvbGRlciBwYXRoIG9mLlxuICogQHJldHVybnMgVGhlIHBhcmVudCBmb2xkZXIgcGF0aC5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcmVudEZvbGRlclBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXC8/W15cXC9dKiQvLCAnJykgfHwgJy8nO1xufVxuIiwgImltcG9ydCB7XG4gICAgdHlwZSBBcHAsXG4gICAgVEZvbGRlclxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgeyBnZXRURm9sZGVyQ29uc3RydWN0b3IgfSBmcm9tICcuLi9Db25zdHJ1Y3RvcnMvZ2V0VEZvbGRlckNvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IHBhcmVudEZvbGRlclBhdGggfSBmcm9tICcuLi9VdGlscy9QYXRoVXRpbHMuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW5kIHByb3Blcmx5IGluaXRpYWxpemVzIHRoZSBpbnN0YW5jZSBvZiBURm9sZGVyIGV2ZW4gdGhlIHVuZGVybHlpbmcgZm9sZGVyIGRvZXMgbm90IGV4aXN0LlxuICogVGhpcyBkb2Vzbid0IGNyZWF0ZSB0aGUgbWlzc2luZyBmb2xkZXIgb24gdGhlIGZpbGUgc3lzdGVtLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVEZvbGRlckluc3RhbmNlKGFwcDogQXBwLCBwYXRoOiBzdHJpbmcpOiBURm9sZGVyIHtcbiAgICBsZXQgZm9sZGVyID0gYXBwLnZhdWx0LmdldEZvbGRlckJ5UGF0aChwYXRoKTtcbiAgICBpZiAoZm9sZGVyKSB7XG4gICAgICAgIHJldHVybiBmb2xkZXI7XG4gICAgfVxuXG4gICAgZm9sZGVyID0gbmV3IChnZXRURm9sZGVyQ29uc3RydWN0b3IoKSkoYXBwLnZhdWx0LCBwYXRoKTtcbiAgICBmb2xkZXIucGFyZW50ID0gY3JlYXRlVEZvbGRlckluc3RhbmNlKGFwcCwgcGFyZW50Rm9sZGVyUGF0aChwYXRoKSk7XG4gICAgZm9sZGVyLmRlbGV0ZWQgPSB0cnVlO1xuICAgIHJldHVybiBmb2xkZXI7XG59XG4iLCAiaW1wb3J0IHtcbiAgICBURmlsZVxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFRGaWxlQ29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1RGaWxlQ29uc3RydWN0b3IudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgVEZpbGUgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIFRGaWxlIGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VEZpbGVDb25zdHJ1Y3RvcigpOiBURmlsZUNvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gVEZpbGUgYXMgVEZpbGVDb25zdHJ1Y3Rvcjtcbn1cbiIsICJpbXBvcnQge1xuICAgIHR5cGUgQXBwLFxuICAgIFRGaWxlXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7IGdldFRGaWxlQ29uc3RydWN0b3IgfSBmcm9tICcuLi9Db25zdHJ1Y3RvcnMvZ2V0VEZpbGVDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBwYXJlbnRGb2xkZXJQYXRoIH0gZnJvbSAnLi4vVXRpbHMvUGF0aFV0aWxzLmpzJztcbmltcG9ydCB7IGNyZWF0ZVRGb2xkZXJJbnN0YW5jZSB9IGZyb20gJy4vY3JlYXRlVEZvbGRlckluc3RhbmNlLnRzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuZCBwcm9wZXJseSBpbml0aWFsaXplcyB0aGUgaW5zdGFuY2Ugb2YgVEZpbGUgZXZlbiB0aGUgdW5kZXJseWluZyBmaWxlIGRvZXMgbm90IGV4aXN0LlxuICogVGhpcyBkb2Vzbid0IGNyZWF0ZSB0aGUgbWlzc2luZyBmaWxlIG9uIHRoZSBmaWxlIHN5c3RlbS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRGaWxlSW5zdGFuY2UoYXBwOiBBcHAsIHBhdGg6IHN0cmluZyk6IFRGaWxlIHtcbiAgICBsZXQgZmlsZSA9IGFwcC52YXVsdC5nZXRGaWxlQnlQYXRoKHBhdGgpO1xuICAgIGlmIChmaWxlKSB7XG4gICAgICAgIHJldHVybiBmaWxlO1xuICAgIH1cblxuICAgIGZpbGUgPSBuZXcgKGdldFRGaWxlQ29uc3RydWN0b3IoKSkoYXBwLnZhdWx0LCBwYXRoKTtcbiAgICBmaWxlLnBhcmVudCA9IGNyZWF0ZVRGb2xkZXJJbnN0YW5jZShhcHAsIHBhcmVudEZvbGRlclBhdGgocGF0aCkpO1xuICAgIGZpbGUuZGVsZXRlZCA9IHRydWU7XG4gICAgcmV0dXJuIGZpbGU7XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIFJlZmVyZW5jZSxcbiAgICBSZWZlcmVuY2VDYWNoZVxufSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIHJlZmVyZW5jZSBpcyBhIHJlZmVyZW5jZSBjYWNoZS5cbiAqXG4gKiBAcGFyYW0gcmVmZXJlbmNlIC0gVGhlIHJlZmVyZW5jZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHJlZmVyZW5jZSBpcyBhIHJlZmVyZW5jZSBjYWNoZS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVmZXJlbmNlQ2FjaGUocmVmZXJlbmNlOiBSZWZlcmVuY2UpOiByZWZlcmVuY2UgaXMgUmVmZXJlbmNlQ2FjaGUge1xuICAgIHJldHVybiAhIShyZWZlcmVuY2UgYXMgUGFydGlhbDxSZWZlcmVuY2VDYWNoZT4pLnBvc2l0aW9uO1xufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBFbWJlZENhY2hlLFxuICAgIFJlZmVyZW5jZVxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgeyBpc1JlZmVyZW5jZUNhY2hlIH0gZnJvbSAnLi9pc1JlZmVyZW5jZUNhY2hlLnRzJztcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgcmVmZXJlbmNlIGlzIGFuIGVtYmVkIGNhY2hlLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2UgLSBUaGUgcmVmZXJlbmNlIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgcmVmZXJlbmNlIGlzIGFuIGVtYmVkIGNhY2hlLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFbWJlZENhY2hlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIEVtYmVkQ2FjaGUge1xuICAgIHJldHVybiBpc1JlZmVyZW5jZUNhY2hlKHJlZmVyZW5jZSkgJiYgcmVmZXJlbmNlLm9yaWdpbmFsWzBdID09PSAnISc7XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIEZyb250bWF0dGVyTGlua0NhY2hlLFxuICAgIFJlZmVyZW5jZVxufSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIHJlZmVyZW5jZSBpcyBhIGZyb250bWF0dGVyIGxpbmsgY2FjaGUuXG4gKlxuICogQHBhcmFtIHJlZmVyZW5jZSAtIFRoZSByZWZlcmVuY2UgdG8gY2hlY2suXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSByZWZlcmVuY2UgaXMgYSBmcm9udG1hdHRlciBsaW5rIGNhY2hlLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNGcm9udG1hdHRlckxpbmtDYWNoZShyZWZlcmVuY2U6IFJlZmVyZW5jZSk6IHJlZmVyZW5jZSBpcyBGcm9udG1hdHRlckxpbmtDYWNoZSB7XG4gICAgcmV0dXJuICEhKHJlZmVyZW5jZSBhcyBQYXJ0aWFsPEZyb250bWF0dGVyTGlua0NhY2hlPikua2V5O1xufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBMaW5rQ2FjaGUsXG4gICAgUmVmZXJlbmNlXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7IGlzUmVmZXJlbmNlQ2FjaGUgfSBmcm9tICcuL2lzUmVmZXJlbmNlQ2FjaGUudHMnO1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSByZWZlcmVuY2UgaXMgYSBsaW5rIGNhY2hlLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2UgLSBUaGUgcmVmZXJlbmNlIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgcmVmZXJlbmNlIGlzIGEgbGluayBjYWNoZS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTGlua0NhY2hlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIExpbmtDYWNoZSB7XG4gICAgcmV0dXJuIGlzUmVmZXJlbmNlQ2FjaGUocmVmZXJlbmNlKSAmJiByZWZlcmVuY2Uub3JpZ2luYWxbMF0gIT09ICchJztcbn1cbiIsICIvKiogQHB1YmxpYyAqL1xuZXhwb3J0IGNvbnN0IEZpbGVFeHRlbnNpb24gPSB7XG4gICAgXzNncDogJzNncCcsXG4gICAgYXZpZjogJ2F2aWYnLFxuICAgIGJtcDogJ2JtcCcsXG4gICAgY2FudmFzOiAnY2FudmFzJyxcbiAgICBmbGFjOiAnZmxhYycsXG4gICAgZ2lmOiAnZ2lmJyxcbiAgICBqcGVnOiAnanBlZycsXG4gICAganBnOiAnanBnJyxcbiAgICBtNGE6ICdtNGEnLFxuICAgIG1kOiAnbWQnLFxuICAgIG1rdjogJ21rdicsXG4gICAgbW92OiAnbW92JyxcbiAgICBtcDM6ICdtcDMnLFxuICAgIG1wNDogJ21wNCcsXG4gICAgb2dhOiAnb2dhJyxcbiAgICBvZ2c6ICdvZ2cnLFxuICAgIG9ndjogJ29ndicsXG4gICAgb3B1czogJ29wdXMnLFxuICAgIHBkZjogJ3BkZicsXG4gICAgcG5nOiAncG5nJyxcbiAgICBzdmc6ICdzdmcnLFxuICAgIHdhdjogJ3dhdicsXG4gICAgd2VibTogJ3dlYm0nLFxuICAgIHdlYnA6ICd3ZWJwJ1xufSBhcyBjb25zdDtcbiIsICIvKiogQHB1YmxpYyAqL1xuZXhwb3J0IGNvbnN0IEludGVybmFsUGx1Z2luTmFtZSA9IHtcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogQXVkaW8gcmVjb3JkZXJcbiAgICAgKi9cbiAgICBBdWRpb1JlY29yZGVyOiAnYXVkaW8tcmVjb3JkZXInLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBCYWNrbGlua3NcbiAgICAgKi9cbiAgICBCYWNrbGluazogJ2JhY2tsaW5rJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogQm9va21hcmtzXG4gICAgICovXG4gICAgQm9va21hcmtzOiAnYm9va21hcmtzJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogV2ViIHZpZXdlclxuICAgICAqL1xuICAgIEJyb3dzZXI6ICdicm93c2VyJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogQ2FudmFzXG4gICAgICovXG4gICAgQ2FudmFzOiAnY2FudmFzJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogQ29tbWFuZCBwYWxldHRlXG4gICAgICovXG4gICAgQ29tbWFuZFBhbGV0dGU6ICdjb21tYW5kLXBhbGV0dGUnLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBEYWlseSBub3Rlc1xuICAgICAqL1xuICAgIERhaWx5Tm90ZXM6ICdkYWlseS1ub3RlcycsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IChoaWRkZW4pXG4gICAgICovXG4gICAgRWRpdG9yU3RhdHVzOiAnZWRpdG9yLXN0YXR1cycsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IEZpbGVzXG4gICAgICovXG4gICAgRmlsZUV4cGxvcmVyOiAnZmlsZS1leHBsb3JlcicsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IEZpbGUgcmVjb3ZlcnlcbiAgICAgKi9cbiAgICBGaWxlUmVjb3Zlcnk6ICdmaWxlLXJlY292ZXJ5JyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogU2VhcmNoXG4gICAgICovXG4gICAgR2xvYmFsU2VhcmNoOiAnZ2xvYmFsLXNlYXJjaCcsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IEdyYXBoIHZpZXdcbiAgICAgKi9cbiAgICBHcmFwaDogJ2dyYXBoJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogRm9ybWF0IGNvbnZlcnRlclxuICAgICAqL1xuICAgIE1hcmtkb3duSW1wb3J0ZXI6ICdtYXJrZG93bi1pbXBvcnRlcicsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IE5vdGUgY29tcG9zZXJcbiAgICAgKi9cbiAgICBOb3RlQ29tcG9zZXI6ICdub3RlLWNvbXBvc2VyJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogT3V0Z29pbmcgbGlua3NcbiAgICAgKi9cbiAgICBPdXRnb2luZ0xpbms6ICdvdXRnb2luZy1saW5rJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogT3V0bGluZVxuICAgICAqL1xuICAgIE91dGxpbmU6ICdvdXRsaW5lJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogUGFnZSBwcmV2aWV3XG4gICAgICovXG4gICAgUGFnZVByZXZpZXc6ICdwYWdlLXByZXZpZXcnLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBQcm9wZXJ0aWVzIHZpZXdcbiAgICAgKi9cbiAgICBQcm9wZXJ0aWVzOiAncHJvcGVydGllcycsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IFB1Ymxpc2hcbiAgICAgKi9cbiAgICBQdWJsaXNoOiAncHVibGlzaCcsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IFJhbmRvbSBub3RlXG4gICAgICovXG4gICAgUmFuZG9tTm90ZTogJ3JhbmRvbS1ub3RlJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogU2xhc2ggY29tbWFuZHNcbiAgICAgKi9cbiAgICBTbGFzaENvbW1hbmQ6ICdzbGFzaC1jb21tYW5kJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogU2xpZGVzXG4gICAgICovXG4gICAgU2xpZGVzOiAnc2xpZGVzJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogUXVpY2sgU3dpdGNoZXJcbiAgICAgKi9cbiAgICBTd2l0Y2hlcjogJ3N3aXRjaGVyJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogU3luY1xuICAgICAqL1xuICAgIFN5bmM6ICdzeW5jJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogVGFncyB2aWV3XG4gICAgICovXG4gICAgVGFnUGFuZTogJ3RhZy1wYW5lJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogVGVtcGxhdGVzXG4gICAgICovXG4gICAgVGVtcGxhdGVzOiAndGVtcGxhdGVzJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogV29yZCBjb3VudFxuICAgICAqL1xuICAgIFdvcmRDb3VudDogJ3dvcmQtY291bnQnLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBXb3Jrc3BhY2VzXG4gICAgICovXG4gICAgV29ya3NwYWNlczogJ3dvcmtzcGFjZXMnLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBVbmlxdWUgbm90ZSBjcmVhdG9yXG4gICAgICovXG4gICAgWmtQcmVmaXhlcjogJ3prLXByZWZpeGVyJ1xufSBhcyBjb25zdDtcbiIsICJpbXBvcnQgeyBJbnRlcm5hbFBsdWdpbk5hbWUgfSBmcm9tICcuL0ludGVybmFsUGx1Z2luTmFtZS5qcyc7XG5cbi8qKiBAcHVibGljICovXG5leHBvcnQgY29uc3QgVmlld1R5cGUgPSB7XG4gICAgQWxsUHJvcGVydGllczogJ2FsbC1wcm9wZXJ0aWVzJyxcbiAgICBBdWRpbzogJ2F1ZGlvJyxcbiAgICBCYWNrbGluazogSW50ZXJuYWxQbHVnaW5OYW1lLkJhY2tsaW5rLFxuICAgIEJvb2ttYXJrczogSW50ZXJuYWxQbHVnaW5OYW1lLkJvb2ttYXJrcyxcbiAgICBCcm93c2VyOiAnYnJvd3NlcicsXG4gICAgQnJvd3Nlckhpc3Rvcnk6ICdicm93c2VyLWhpc3RvcnknLFxuICAgIENhbnZhczogSW50ZXJuYWxQbHVnaW5OYW1lLkNhbnZhcyxcbiAgICBFbXB0eTogJ2VtcHR5JyxcbiAgICBGaWxlRXhwbG9yZXI6IEludGVybmFsUGx1Z2luTmFtZS5GaWxlRXhwbG9yZXIsXG4gICAgRmlsZVByb3BlcnRpZXM6ICdmaWxlLXByb3BlcnRpZXMnLFxuICAgIEdyYXBoOiBJbnRlcm5hbFBsdWdpbk5hbWUuR3JhcGgsXG4gICAgSW1hZ2U6ICdpbWFnZScsXG4gICAgTG9jYWxHcmFwaDogJ2xvY2FsZ3JhcGgnLFxuICAgIE1hcmtkb3duOiAnbWFya2Rvd24nLFxuICAgIE91dGdvaW5nTGluazogSW50ZXJuYWxQbHVnaW5OYW1lLk91dGdvaW5nTGluayxcbiAgICBPdXRsaW5lOiBJbnRlcm5hbFBsdWdpbk5hbWUuT3V0bGluZSxcbiAgICBQZGY6ICdwZGYnLFxuICAgIFJlbGVhc2VOb3RlczogJ3JlbGVhc2Utbm90ZXMnLFxuICAgIFNlYXJjaDogJ3NlYXJjaCcsXG4gICAgU3luYzogJ3N5bmMnLFxuICAgIFRhZzogJ3RhZycsXG4gICAgVmlkZW86ICd2aWRlbydcbn0gYXMgY29uc3Q7XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IEludGVybmFsUGx1Z2luQ29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL0ludGVybmFsUGx1Z2luQ29uc3RydWN0b3IudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgSW50ZXJuYWxQbHVnaW4gY29uc3RydWN0b3IuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHAgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBUaGUgSW50ZXJuYWxQbHVnaW4gY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbFBsdWdpbkNvbnN0cnVjdG9yPEluc3RhbmNlPihhcHA6IEFwcCk6IEludGVybmFsUGx1Z2luQ29uc3RydWN0b3I8SW5zdGFuY2U+IHtcbiAgICBjb25zdCBhbnlQbHVnaW4gPSBPYmplY3QudmFsdWVzKGFwcC5pbnRlcm5hbFBsdWdpbnMucGx1Z2lucylbMF07XG4gICAgaWYgKCFhbnlQbHVnaW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBpbnRlcm5hbCBwbHVnaW4gZm91bmQnKTtcbiAgICB9XG4gICAgcmV0dXJuIGFueVBsdWdpbi5jb25zdHJ1Y3RvciBhcyBJbnRlcm5hbFBsdWdpbkNvbnN0cnVjdG9yPEluc3RhbmNlPjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxQbHVnaW5zQ29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL0ludGVybmFsUGx1Z2luc0NvbnN0cnVjdG9yLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIEludGVybmFsUGx1Z2lucyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcCBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIFRoZSBJbnRlcm5hbFBsdWdpbnMgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbFBsdWdpbnNDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IEludGVybmFsUGx1Z2luc0NvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gYXBwLmludGVybmFsUGx1Z2lucy5jb25zdHJ1Y3RvciBhcyBJbnRlcm5hbFBsdWdpbnNDb25zdHJ1Y3Rvcjtcbn1cbiIsICJpbXBvcnQge1xuICAgIEFwcFxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IEFwcENvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9BcHBDb25zdHJ1Y3Rvci50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBBcHAgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIEFwcCBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFwcENvbnN0cnVjdG9yKCk6IEFwcENvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gQXBwIGFzIEFwcENvbnN0cnVjdG9yO1xufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBBcHAsXG4gICAgQ29uc3RydWN0b3IsXG4gICAgVmlld1xufSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogR2V0IHRoZSB2aWV3IGNvbnN0cnVjdG9yIGJ5IHZpZXcgdHlwZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcC5cbiAqIEBwYXJhbSB2aWV3VHlwZSAtIFRoZSB2aWV3IHR5cGUuXG4gKiBAcmV0dXJucyBUaGUgdmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGU8VFZpZXcgZXh0ZW5kcyBWaWV3ID0gVmlldz4oXG4gICAgYXBwOiBBcHAsXG4gICAgdmlld1R5cGU6IHN0cmluZ1xuKTogQ29uc3RydWN0b3I8VFZpZXc+IHtcbiAgICBjb25zdCBsZWFmID0gYXBwLndvcmtzcGFjZS5jcmVhdGVMZWFmSW5UYWJHcm91cCgpO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHZpZXdDcmVhdG9yID0gYXBwLnZpZXdSZWdpc3RyeS5nZXRWaWV3Q3JlYXRvckJ5VHlwZSh2aWV3VHlwZSk7XG4gICAgICAgIGlmICghdmlld0NyZWF0b3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVmlldyBjcmVhdG9yIG5vdCBmb3VuZCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZpZXcgPSB2aWV3Q3JlYXRvcihsZWFmKTtcbiAgICAgICAgcmV0dXJuIHZpZXcuY29uc3RydWN0b3IgYXMgQ29uc3RydWN0b3I8VFZpZXc+O1xuICAgIH0gZmluYWxseSB7XG4gICAgICAgIGxlYWYuZGV0YWNoKCk7XG4gICAgfVxufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBBcHBcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBPdXRsaW5lVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9PdXRsaW5lVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgT3V0bGluZVZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIE91dGxpbmVWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3V0bGluZVZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IE91dGxpbmVWaWV3Q29uc3RydWN0b3Ige1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuT3V0bGluZSkgYXMgT3V0bGluZVZpZXdDb25zdHJ1Y3Rvcjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7XG4gICAgQXBwXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgQnJvd3NlclZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvQnJvd3NlclZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIEJyb3dzZXJWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBCcm93c2VyVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJyb3dzZXJWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBCcm93c2VyVmlld0NvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLkJyb3dzZXIpIGFzIEJyb3dzZXJWaWV3Q29uc3RydWN0b3I7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IFJlbGVhc2VOb3Rlc1ZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvVmlld3MvUmVsZWFzZU5vdGVzVmlldy5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIFJlbGVhc2VOb3Rlc1ZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIFJlbGVhc2VOb3Rlc1ZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWxlYXNlTm90ZXNWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxSZWxlYXNlTm90ZXNWaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5SZWxlYXNlTm90ZXMpIGFzIFR5cGVkVmlld0NvbnN0cnVjdG9yPFJlbGVhc2VOb3Rlc1ZpZXc+O1xufVxuIiwgImltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBUeXBlZFZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvVHlwZWRWaWV3Q29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHR5cGUgeyBQZGZWaWV3IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL1ZpZXdzL1BkZlZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBQZGZWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBQZGZWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGRmVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8UGRmVmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuUGRmKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxQZGZWaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7XG4gICAgQXBwXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgU3luY1ZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvU3luY1ZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIFN5bmNWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBTeW5jVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN5bmNWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBTeW5jVmlld0NvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLlN5bmMpIGFzIFN5bmNWaWV3Q29uc3RydWN0b3I7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IE91dGdvaW5nTGlua1ZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvSW50ZXJuYWxQbHVnaW5zL091dGdvaW5nTGluay9PdXRnb2luZ0xpbmtWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgT3V0Z29pbmdMaW5rVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgT3V0Z29pbmdMaW5rVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE91dGdvaW5nTGlua1ZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPE91dGdvaW5nTGlua1ZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLk91dGdvaW5nTGluaykgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8T3V0Z29pbmdMaW5rVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIEFwcFxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IENhbnZhc1ZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvQ2FudmFzVmlld0NvbnN0cnVjdG9yLmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgQ2FudmFzVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgQ2FudmFzVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENhbnZhc1ZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IENhbnZhc1ZpZXdDb25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5DYW52YXMpIGFzIENhbnZhc1ZpZXdDb25zdHJ1Y3Rvcjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgVGFnVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9WaWV3cy9UYWdWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgVGFnVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgVGFnVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRhZ1ZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPFRhZ1ZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLlRhZykgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8VGFnVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IEF1ZGlvVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9WaWV3cy9BdWRpb1ZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBBdWRpb1ZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIEF1ZGlvVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEF1ZGlvVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8QXVkaW9WaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5BdWRpbykgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8QXVkaW9WaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgTG9jYWxHcmFwaFZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvSW50ZXJuYWxQbHVnaW5zL0dyYXBoL0xvY2FsR3JhcGhWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgTG9jYWxHcmFwaFZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIExvY2FsR3JhcGhWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxHcmFwaFZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPExvY2FsR3JhcGhWaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5Mb2NhbEdyYXBoKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxMb2NhbEdyYXBoVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IEJhY2tsaW5rVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbnMvQmFja2xpbmsvQmFja2xpbmtWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgQmFja2xpbmtWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBCYWNrbGlua1ZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRCYWNrbGlua1ZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPEJhY2tsaW5rVmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuQmFja2xpbmspIGFzIFR5cGVkVmlld0NvbnN0cnVjdG9yPEJhY2tsaW5rVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IEZpbGVFeHBsb3JlclZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvSW50ZXJuYWxQbHVnaW5zL0ZpbGVFeHBsb3Jlci9GaWxlRXhwbG9yZXJWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgRmlsZUV4cGxvcmVyVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgRmlsZUV4cGxvcmVyVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVFeHBsb3JlclZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPEZpbGVFeHBsb3JlclZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLkZpbGVFeHBsb3JlcikgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8RmlsZUV4cGxvcmVyVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IFNlYXJjaFZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvSW50ZXJuYWxQbHVnaW5zL0dsb2JhbFNlYXJjaC9TZWFyY2hWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgU2VhcmNoVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgU2VhcmNoVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNlYXJjaFZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPFNlYXJjaFZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLlNlYXJjaCkgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8U2VhcmNoVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IFZpZGVvVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9WaWV3cy9WaWRlb1ZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBWaWRlb1ZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIFZpZGVvVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZpZGVvVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8VmlkZW9WaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5WaWRlbykgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8VmlkZW9WaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgSW1hZ2VWaWV3IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL1ZpZXdzL0ltYWdlVmlldy5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIEltYWdlVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgSW1hZ2VWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW1hZ2VWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxJbWFnZVZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLkltYWdlKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxJbWFnZVZpZXc+O1xufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBBcHBcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUge1xuICAgIEJyb3dzZXJIaXN0b3J5Vmlld0NvbnN0cnVjdG9yXG59IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvQnJvd3Nlckhpc3RvcnlWaWV3Q29uc3RydWN0b3IuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBCcm93c2VySGlzdG9yeVZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIEJyb3dzZXJIaXN0b3J5VmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJyb3dzZXJIaXN0b3J5Vmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogQnJvd3Nlckhpc3RvcnlWaWV3Q29uc3RydWN0b3Ige1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuQnJvd3Nlckhpc3RvcnkpIGFzIEJyb3dzZXJIaXN0b3J5Vmlld0NvbnN0cnVjdG9yO1xufVxuIiwgImltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBUeXBlZFZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvVHlwZWRWaWV3Q29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHR5cGUgeyBFbXB0eVZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvVmlld3MvRW1wdHlWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgRW1wdHlWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBFbXB0eVZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbXB0eVZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPEVtcHR5Vmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuRW1wdHkpIGFzIFR5cGVkVmlld0NvbnN0cnVjdG9yPEVtcHR5Vmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IEdyYXBoVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbnMvR3JhcGgvR3JhcGhWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgR3JhcGhWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBHcmFwaFZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRHcmFwaFZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPEdyYXBoVmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuR3JhcGgpIGFzIFR5cGVkVmlld0NvbnN0cnVjdG9yPEdyYXBoVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIEFwcFxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7XG4gICAgRmlsZVByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3Jcbn0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9GaWxlUHJvcGVydGllc1ZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIEZpbGVQcm9wZXJ0aWVzVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgRmlsZVByb3BlcnRpZXNWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZVByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBGaWxlUHJvcGVydGllc1ZpZXdDb25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5GaWxlUHJvcGVydGllcykgYXMgRmlsZVByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3I7XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIEFwcFxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IEJvb2ttYXJrc1ZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvQm9va21hcmtzVmlld0NvbnN0cnVjdG9yLmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgQm9va21hcmtzVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgQm9va21hcmtzVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJvb2ttYXJrc1ZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IEJvb2ttYXJrc1ZpZXdDb25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5Cb29rbWFya3MpIGFzIEJvb2ttYXJrc1ZpZXdDb25zdHJ1Y3Rvcjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7XG4gICAgQXBwLFxuICAgIE1hcmtkb3duVmlld1xufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIE1hcmtkb3duVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgTWFya2Rvd25WaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWFya2Rvd25WaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxNYXJrZG93blZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLk1hcmtkb3duKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxNYXJrZG93blZpZXc+O1xufVxuIiwgImltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBUeXBlZFZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvVHlwZWRWaWV3Q29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHR5cGUgeyBBbGxQcm9wZXJ0aWVzVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbnMvUHJvcGVydGllcy9BbGxQcm9wZXJ0aWVzVmlldy5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIEFsbFByb3BlcnRpZXNWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBBbGxQcm9wZXJ0aWVzVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbFByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxBbGxQcm9wZXJ0aWVzVmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuQWxsUHJvcGVydGllcykgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8QWxsUHJvcGVydGllc1ZpZXc+O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7OztBQ0dPLElBQU0sc0JBQU4sTUFBMkQ7QUFBQSxFQUN2RCxPQUF5QixvQkFBSSxJQUFJO0FBQUEsRUFFakMsSUFBSSxLQUFhLE9BQWdCO0FBQ3BDLFFBQUksU0FBUyxLQUFLLElBQUksR0FBRztBQUN6QixRQUFJLENBQUMsUUFBUTtBQUNULGVBQVMsQ0FBQztBQUNWLFdBQUssS0FBSyxJQUFJLEtBQUssTUFBTTtBQUFBLElBQzdCO0FBRUEsUUFBSSxDQUFDLE9BQU8sU0FBUyxLQUFLLEdBQUc7QUFDekIsYUFBTyxLQUFLLEtBQUs7QUFBQSxJQUNyQjtBQUFBLEVBQ0o7QUFBQSxFQUVPLE9BQU8sS0FBYSxPQUFnQjtBQUN2QyxVQUFNLFNBQVMsS0FBSyxJQUFJLEdBQUc7QUFDM0IsUUFBSSxDQUFDLFFBQVE7QUFDVDtBQUFBLElBQ0o7QUFDQSxXQUFPLE9BQU8sS0FBSztBQUVu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LElBQU0scUJBQXFCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJOUIsZUFBZTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSWYsVUFBVTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVYsV0FBVztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVgsU0FBUztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVQsUUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVIsZ0JBQWdCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJaEIsWUFBWTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVosY0FBYztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSWQsY0FBYztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSWQsY0FBYztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSWQsY0FBYztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSWQsT0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVAsa0JBQWtCO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJbEIsY0FBYztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSWQsY0FBYztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSWQsU0FBUztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVQsYUFBYTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSWIsWUFBWTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVosU0FBUztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVQsWUFBWTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVosY0FBYztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSWQsUUFBUTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVIsVUFBVTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVYsTUFBTTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSU4sU0FBUztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVQsV0FBVztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVgsV0FBVztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVgsWUFBWTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVosWUFBWTtBQUNoQjs7O0FD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QU8sNkJBQTZCLEtBQUssU0FBUyxLQUFLO0FBQzNEOzs7QUNGTyxTQUFTLHdCQUF3QixLQUEyQztBQUMvRSxTQUFPLDZCQUE2QixLQUFLLFNBQVMsS0FBSztBQUMzRDs7O0FDQ08sU0FBUyxpQ0FBaUMsS0FBeUM7QUFDdEYsU0FBTyw2QkFBNkIsS0FBSyxTQUFTLGNBQWM7QUFDcEU7OztBQ0xPLFNBQVMsd0JBQXdCLEtBQTJDO0FBQy9FLFNBQU8sNkJBQTZCLEtBQUssU0FBUyxLQUFLO0FBQzNEOzs7QUNGTyxTQUFTLHdCQUF3QixLQUEyQztBQUMvRSxTQUFPLDZCQUE2QixLQUFLLFNBQVMsS0FBSztBQUMzRDs7O0FDQ08sU0FBUyxpQ0FBaUMsS0FBeUM7QUFDdEYsU0FBTyw2QkFBNkIsS0FBSyxTQUFTLGNBQWM7QUFDcEU7OztBQ0pPLFNBQVMsNEJBQTRCLEtBQW9DO0FBQzVFLFNBQU8sNkJBQTZCLEtBQUssU0FBUyxTQUFTO0FBQy9EOzs7QUNETyxTQUFTLDJCQUEyQixLQUE4QztBQUNyRixTQUFPLDZCQUE2QixLQUFLLFNBQVMsUUFBUTtBQUM5RDs7O0FDSk8sU0FBUyxnQ0FBZ0MsS0FBbUQ7QUFDL0YsU0FBTyw2QkFBNkIsS0FBSyxTQUFTLGFBQWE7QUFDbkU7IiwKICAibmFtZXMiOiBbImltcG9ydF9vYnNpZGlhbiIsICJpbXBvcnRfb2JzaWRpYW4iXQp9Cg==
|
|
495
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9pbmRleC50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9nZXRBcHBDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9nZXRURm9sZGVyQ29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvZ2V0SW50ZXJuYWxQbHVnaW5zQ29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvZ2V0VEZpbGVDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9nZXRJbnRlcm5hbFBsdWdpbkNvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RhbnRzL0ludGVybmFsUGx1Z2luTmFtZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0YW50cy9GaWxlRXh0ZW5zaW9uLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RhbnRzL1ZpZXdUeXBlLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvVHlwZUd1YXJkcy9pc1JlZmVyZW5jZUNhY2hlLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvVHlwZUd1YXJkcy9pc0xpbmtDYWNoZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL1R5cGVHdWFyZHMvaXNFbWJlZENhY2hlLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvVHlwZUd1YXJkcy9pc0Zyb250bWF0dGVyTGlua0NhY2hlLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvVXRpbHMvUGF0aFV0aWxzLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvRnVuY3Rpb25zL2NyZWF0ZVRGb2xkZXJJbnN0YW5jZS50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0Z1bmN0aW9ucy9jcmVhdGVURmlsZUluc3RhbmNlLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ2xhc3Nlcy9DdXN0b21BcnJheURpY3RJbXBsLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0QWxsUHJvcGVydGllc1ZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRNYXJrZG93blZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRDYW52YXNWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0RmlsZUV4cGxvcmVyVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldE91dGdvaW5nTGlua1ZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRCcm93c2VyVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldFBkZlZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRTZWFyY2hWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0RmlsZVByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0Qm9va21hcmtzVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldEVtcHR5Vmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldEF1ZGlvVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldE91dGxpbmVWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0VGFnVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldFZpZGVvVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldEdyYXBoVmlld0NvbnN0cnVjdG9yLnRzIiwgIi4uL3NyYy9vYnNpZGlhbi9pbXBsZW1lbnRhdGlvbnMvQ29uc3RydWN0b3JzL1ZpZXdzL2dldExvY2FsR3JhcGhWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0SW1hZ2VWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0QnJvd3Nlckhpc3RvcnlWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0U3luY1ZpZXdDb25zdHJ1Y3Rvci50cyIsICIuLi9zcmMvb2JzaWRpYW4vaW1wbGVtZW50YXRpb25zL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRSZWxlYXNlTm90ZXNWaWV3Q29uc3RydWN0b3IudHMiLCAiLi4vc3JjL29ic2lkaWFuL2ltcGxlbWVudGF0aW9ucy9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0QmFja2xpbmtWaWV3Q29uc3RydWN0b3IudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qIFRISVMgSVMgQSBHRU5FUkFURUQvQlVORExFRCBGSUxFIEJZIEJVSUxEIFNDUklQVCAqL1xuXG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9nZXRBcHBDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9nZXRURm9sZGVyQ29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvZ2V0SW50ZXJuYWxQbHVnaW5zQ29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvZ2V0VEZpbGVDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9nZXRJbnRlcm5hbFBsdWdpbkNvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RhbnRzL0ludGVybmFsUGx1Z2luTmFtZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0YW50cy9GaWxlRXh0ZW5zaW9uLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RhbnRzL1ZpZXdUeXBlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vVHlwZUd1YXJkcy9pc0xpbmtDYWNoZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL1R5cGVHdWFyZHMvaXNSZWZlcmVuY2VDYWNoZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL1R5cGVHdWFyZHMvaXNFbWJlZENhY2hlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vVHlwZUd1YXJkcy9pc0Zyb250bWF0dGVyTGlua0NhY2hlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vVXRpbHMvUGF0aFV0aWxzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vRnVuY3Rpb25zL2NyZWF0ZVRGaWxlSW5zdGFuY2UuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9GdW5jdGlvbnMvY3JlYXRlVEZvbGRlckluc3RhbmNlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ2xhc3Nlcy9DdXN0b21BcnJheURpY3RJbXBsLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldEFsbFByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0TWFya2Rvd25WaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0Q2FudmFzVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldEZpbGVFeHBsb3JlclZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRPdXRnb2luZ0xpbmtWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0QnJvd3NlclZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRQZGZWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRTZWFyY2hWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0RmlsZVByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0Qm9va21hcmtzVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldEVtcHR5Vmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldEF1ZGlvVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldE91dGxpbmVWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0VGFnVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldFZpZGVvVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldEdyYXBoVmlld0NvbnN0cnVjdG9yLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vQ29uc3RydWN0b3JzL1ZpZXdzL2dldExvY2FsR3JhcGhWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0SW1hZ2VWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0QnJvd3Nlckhpc3RvcnlWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0U3luY1ZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5leHBvcnQgKiBmcm9tICcuL0NvbnN0cnVjdG9ycy9WaWV3cy9nZXRSZWxlYXNlTm90ZXNWaWV3Q29uc3RydWN0b3IuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9Db25zdHJ1Y3RvcnMvVmlld3MvZ2V0QmFja2xpbmtWaWV3Q29uc3RydWN0b3IuanMnO1xuaW1wb3J0ICcuLi8uLi9pbmRleC5qcyc7XG4iLCAiaW1wb3J0IHtcbiAgICBBcHBcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBBcHBDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvQXBwQ29uc3RydWN0b3IudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgQXBwIGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBBcHAgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcHBDb25zdHJ1Y3RvcigpOiBBcHBDb25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIEFwcCBhcyBBcHBDb25zdHJ1Y3Rvcjtcbn1cbiIsICJpbXBvcnQge1xuICAgIFRGb2xkZXJcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBURm9sZGVyQ29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1RGb2xkZXJDb25zdHJ1Y3Rvci50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBURm9sZGVyIGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBURm9sZGVyIGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VEZvbGRlckNvbnN0cnVjdG9yKCk6IFRGb2xkZXJDb25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIFRGb2xkZXIgYXMgVEZvbGRlckNvbnN0cnVjdG9yO1xufVxuIiwgImltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbFBsdWdpbnNDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvSW50ZXJuYWxQbHVnaW5zQ29uc3RydWN0b3IudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgSW50ZXJuYWxQbHVnaW5zIGNvbnN0cnVjdG9yLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgYXBwIGluc3RhbmNlLlxuICogQHJldHVybnMgVGhlIEludGVybmFsUGx1Z2lucyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVybmFsUGx1Z2luc0NvbnN0cnVjdG9yKGFwcDogQXBwKTogSW50ZXJuYWxQbHVnaW5zQ29uc3RydWN0b3Ige1xuICAgIHJldHVybiBhcHAuaW50ZXJuYWxQbHVnaW5zLmNvbnN0cnVjdG9yIGFzIEludGVybmFsUGx1Z2luc0NvbnN0cnVjdG9yO1xufVxuIiwgImltcG9ydCB7XG4gICAgVEZpbGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBURmlsZUNvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9URmlsZUNvbnN0cnVjdG9yLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIFRGaWxlIGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBURmlsZSBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRGaWxlQ29uc3RydWN0b3IoKTogVEZpbGVDb25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIFRGaWxlIGFzIFRGaWxlQ29uc3RydWN0b3I7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IEludGVybmFsUGx1Z2luQ29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL0ludGVybmFsUGx1Z2luQ29uc3RydWN0b3IudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgSW50ZXJuYWxQbHVnaW4gY29uc3RydWN0b3IuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBhcHAgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBUaGUgSW50ZXJuYWxQbHVnaW4gY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5hbFBsdWdpbkNvbnN0cnVjdG9yPEluc3RhbmNlPihhcHA6IEFwcCk6IEludGVybmFsUGx1Z2luQ29uc3RydWN0b3I8SW5zdGFuY2U+IHtcbiAgICBjb25zdCBhbnlQbHVnaW4gPSBPYmplY3QudmFsdWVzKGFwcC5pbnRlcm5hbFBsdWdpbnMucGx1Z2lucylbMF07XG4gICAgaWYgKCFhbnlQbHVnaW4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBpbnRlcm5hbCBwbHVnaW4gZm91bmQnKTtcbiAgICB9XG4gICAgcmV0dXJuIGFueVBsdWdpbi5jb25zdHJ1Y3RvciBhcyBJbnRlcm5hbFBsdWdpbkNvbnN0cnVjdG9yPEluc3RhbmNlPjtcbn1cbiIsICIvKiogQHB1YmxpYyAqL1xuZXhwb3J0IGNvbnN0IEludGVybmFsUGx1Z2luTmFtZSA9IHtcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogQXVkaW8gcmVjb3JkZXJcbiAgICAgKi9cbiAgICBBdWRpb1JlY29yZGVyOiAnYXVkaW8tcmVjb3JkZXInLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBCYWNrbGlua3NcbiAgICAgKi9cbiAgICBCYWNrbGluazogJ2JhY2tsaW5rJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogQm9va21hcmtzXG4gICAgICovXG4gICAgQm9va21hcmtzOiAnYm9va21hcmtzJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogV2ViIHZpZXdlclxuICAgICAqL1xuICAgIEJyb3dzZXI6ICdicm93c2VyJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogQ2FudmFzXG4gICAgICovXG4gICAgQ2FudmFzOiAnY2FudmFzJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogQ29tbWFuZCBwYWxldHRlXG4gICAgICovXG4gICAgQ29tbWFuZFBhbGV0dGU6ICdjb21tYW5kLXBhbGV0dGUnLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBEYWlseSBub3Rlc1xuICAgICAqL1xuICAgIERhaWx5Tm90ZXM6ICdkYWlseS1ub3RlcycsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IChoaWRkZW4pXG4gICAgICovXG4gICAgRWRpdG9yU3RhdHVzOiAnZWRpdG9yLXN0YXR1cycsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IEZpbGVzXG4gICAgICovXG4gICAgRmlsZUV4cGxvcmVyOiAnZmlsZS1leHBsb3JlcicsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IEZpbGUgcmVjb3ZlcnlcbiAgICAgKi9cbiAgICBGaWxlUmVjb3Zlcnk6ICdmaWxlLXJlY292ZXJ5JyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogU2VhcmNoXG4gICAgICovXG4gICAgR2xvYmFsU2VhcmNoOiAnZ2xvYmFsLXNlYXJjaCcsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IEdyYXBoIHZpZXdcbiAgICAgKi9cbiAgICBHcmFwaDogJ2dyYXBoJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogRm9ybWF0IGNvbnZlcnRlclxuICAgICAqL1xuICAgIE1hcmtkb3duSW1wb3J0ZXI6ICdtYXJrZG93bi1pbXBvcnRlcicsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IE5vdGUgY29tcG9zZXJcbiAgICAgKi9cbiAgICBOb3RlQ29tcG9zZXI6ICdub3RlLWNvbXBvc2VyJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogT3V0Z29pbmcgbGlua3NcbiAgICAgKi9cbiAgICBPdXRnb2luZ0xpbms6ICdvdXRnb2luZy1saW5rJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogT3V0bGluZVxuICAgICAqL1xuICAgIE91dGxpbmU6ICdvdXRsaW5lJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogUGFnZSBwcmV2aWV3XG4gICAgICovXG4gICAgUGFnZVByZXZpZXc6ICdwYWdlLXByZXZpZXcnLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBQcm9wZXJ0aWVzIHZpZXdcbiAgICAgKi9cbiAgICBQcm9wZXJ0aWVzOiAncHJvcGVydGllcycsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IFB1Ymxpc2hcbiAgICAgKi9cbiAgICBQdWJsaXNoOiAncHVibGlzaCcsXG4gICAgLyoqXG4gICAgICogUGx1Z2luIG5hbWUgaW4gVUk6IFJhbmRvbSBub3RlXG4gICAgICovXG4gICAgUmFuZG9tTm90ZTogJ3JhbmRvbS1ub3RlJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogU2xhc2ggY29tbWFuZHNcbiAgICAgKi9cbiAgICBTbGFzaENvbW1hbmQ6ICdzbGFzaC1jb21tYW5kJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogU2xpZGVzXG4gICAgICovXG4gICAgU2xpZGVzOiAnc2xpZGVzJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogUXVpY2sgU3dpdGNoZXJcbiAgICAgKi9cbiAgICBTd2l0Y2hlcjogJ3N3aXRjaGVyJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogU3luY1xuICAgICAqL1xuICAgIFN5bmM6ICdzeW5jJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogVGFncyB2aWV3XG4gICAgICovXG4gICAgVGFnUGFuZTogJ3RhZy1wYW5lJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogVGVtcGxhdGVzXG4gICAgICovXG4gICAgVGVtcGxhdGVzOiAndGVtcGxhdGVzJyxcbiAgICAvKipcbiAgICAgKiBQbHVnaW4gbmFtZSBpbiBVSTogV29yZCBjb3VudFxuICAgICAqL1xuICAgIFdvcmRDb3VudDogJ3dvcmQtY291bnQnLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBXb3Jrc3BhY2VzXG4gICAgICovXG4gICAgV29ya3NwYWNlczogJ3dvcmtzcGFjZXMnLFxuICAgIC8qKlxuICAgICAqIFBsdWdpbiBuYW1lIGluIFVJOiBVbmlxdWUgbm90ZSBjcmVhdG9yXG4gICAgICovXG4gICAgWmtQcmVmaXhlcjogJ3prLXByZWZpeGVyJ1xufSBhcyBjb25zdDtcbiIsICIvKiogQHB1YmxpYyAqL1xuZXhwb3J0IGNvbnN0IEZpbGVFeHRlbnNpb24gPSB7XG4gICAgXzNncDogJzNncCcsXG4gICAgYXZpZjogJ2F2aWYnLFxuICAgIGJtcDogJ2JtcCcsXG4gICAgY2FudmFzOiAnY2FudmFzJyxcbiAgICBmbGFjOiAnZmxhYycsXG4gICAgZ2lmOiAnZ2lmJyxcbiAgICBqcGVnOiAnanBlZycsXG4gICAganBnOiAnanBnJyxcbiAgICBtNGE6ICdtNGEnLFxuICAgIG1kOiAnbWQnLFxuICAgIG1rdjogJ21rdicsXG4gICAgbW92OiAnbW92JyxcbiAgICBtcDM6ICdtcDMnLFxuICAgIG1wNDogJ21wNCcsXG4gICAgb2dhOiAnb2dhJyxcbiAgICBvZ2c6ICdvZ2cnLFxuICAgIG9ndjogJ29ndicsXG4gICAgb3B1czogJ29wdXMnLFxuICAgIHBkZjogJ3BkZicsXG4gICAgcG5nOiAncG5nJyxcbiAgICBzdmc6ICdzdmcnLFxuICAgIHdhdjogJ3dhdicsXG4gICAgd2VibTogJ3dlYm0nLFxuICAgIHdlYnA6ICd3ZWJwJ1xufSBhcyBjb25zdDtcbiIsICJpbXBvcnQgeyBJbnRlcm5hbFBsdWdpbk5hbWUgfSBmcm9tICcuL0ludGVybmFsUGx1Z2luTmFtZS5qcyc7XG5cbi8qKiBAcHVibGljICovXG5leHBvcnQgY29uc3QgVmlld1R5cGUgPSB7XG4gICAgQWxsUHJvcGVydGllczogJ2FsbC1wcm9wZXJ0aWVzJyxcbiAgICBBdWRpbzogJ2F1ZGlvJyxcbiAgICBCYWNrbGluazogSW50ZXJuYWxQbHVnaW5OYW1lLkJhY2tsaW5rLFxuICAgIEJvb2ttYXJrczogSW50ZXJuYWxQbHVnaW5OYW1lLkJvb2ttYXJrcyxcbiAgICBCcm93c2VyOiAnYnJvd3NlcicsXG4gICAgQnJvd3Nlckhpc3Rvcnk6ICdicm93c2VyLWhpc3RvcnknLFxuICAgIENhbnZhczogSW50ZXJuYWxQbHVnaW5OYW1lLkNhbnZhcyxcbiAgICBFbXB0eTogJ2VtcHR5JyxcbiAgICBGaWxlRXhwbG9yZXI6IEludGVybmFsUGx1Z2luTmFtZS5GaWxlRXhwbG9yZXIsXG4gICAgRmlsZVByb3BlcnRpZXM6ICdmaWxlLXByb3BlcnRpZXMnLFxuICAgIEdyYXBoOiBJbnRlcm5hbFBsdWdpbk5hbWUuR3JhcGgsXG4gICAgSW1hZ2U6ICdpbWFnZScsXG4gICAgTG9jYWxHcmFwaDogJ2xvY2FsZ3JhcGgnLFxuICAgIE1hcmtkb3duOiAnbWFya2Rvd24nLFxuICAgIE91dGdvaW5nTGluazogSW50ZXJuYWxQbHVnaW5OYW1lLk91dGdvaW5nTGluayxcbiAgICBPdXRsaW5lOiBJbnRlcm5hbFBsdWdpbk5hbWUuT3V0bGluZSxcbiAgICBQZGY6ICdwZGYnLFxuICAgIFJlbGVhc2VOb3RlczogJ3JlbGVhc2Utbm90ZXMnLFxuICAgIFNlYXJjaDogJ3NlYXJjaCcsXG4gICAgU3luYzogJ3N5bmMnLFxuICAgIFRhZzogJ3RhZycsXG4gICAgVmlkZW86ICd2aWRlbydcbn0gYXMgY29uc3Q7XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIFJlZmVyZW5jZSxcbiAgICBSZWZlcmVuY2VDYWNoZVxufSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIHJlZmVyZW5jZSBpcyBhIHJlZmVyZW5jZSBjYWNoZS5cbiAqXG4gKiBAcGFyYW0gcmVmZXJlbmNlIC0gVGhlIHJlZmVyZW5jZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHJlZmVyZW5jZSBpcyBhIHJlZmVyZW5jZSBjYWNoZS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVmZXJlbmNlQ2FjaGUocmVmZXJlbmNlOiBSZWZlcmVuY2UpOiByZWZlcmVuY2UgaXMgUmVmZXJlbmNlQ2FjaGUge1xuICAgIHJldHVybiAhIShyZWZlcmVuY2UgYXMgUGFydGlhbDxSZWZlcmVuY2VDYWNoZT4pLnBvc2l0aW9uO1xufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBMaW5rQ2FjaGUsXG4gICAgUmVmZXJlbmNlXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7IGlzUmVmZXJlbmNlQ2FjaGUgfSBmcm9tICcuL2lzUmVmZXJlbmNlQ2FjaGUudHMnO1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSByZWZlcmVuY2UgaXMgYSBsaW5rIGNhY2hlLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2UgLSBUaGUgcmVmZXJlbmNlIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgcmVmZXJlbmNlIGlzIGEgbGluayBjYWNoZS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTGlua0NhY2hlKHJlZmVyZW5jZTogUmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIExpbmtDYWNoZSB7XG4gICAgcmV0dXJuIGlzUmVmZXJlbmNlQ2FjaGUocmVmZXJlbmNlKSAmJiByZWZlcmVuY2Uub3JpZ2luYWxbMF0gIT09ICchJztcbn1cbiIsICJpbXBvcnQgdHlwZSB7XG4gICAgRW1iZWRDYWNoZSxcbiAgICBSZWZlcmVuY2Vcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHsgaXNSZWZlcmVuY2VDYWNoZSB9IGZyb20gJy4vaXNSZWZlcmVuY2VDYWNoZS50cyc7XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIHJlZmVyZW5jZSBpcyBhbiBlbWJlZCBjYWNoZS5cbiAqXG4gKiBAcGFyYW0gcmVmZXJlbmNlIC0gVGhlIHJlZmVyZW5jZSB0byBjaGVjay5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIHJlZmVyZW5jZSBpcyBhbiBlbWJlZCBjYWNoZS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRW1iZWRDYWNoZShyZWZlcmVuY2U6IFJlZmVyZW5jZSk6IHJlZmVyZW5jZSBpcyBFbWJlZENhY2hlIHtcbiAgICByZXR1cm4gaXNSZWZlcmVuY2VDYWNoZShyZWZlcmVuY2UpICYmIHJlZmVyZW5jZS5vcmlnaW5hbFswXSA9PT0gJyEnO1xufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBGcm9udG1hdHRlckxpbmtDYWNoZSxcbiAgICBSZWZlcmVuY2Vcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSByZWZlcmVuY2UgaXMgYSBmcm9udG1hdHRlciBsaW5rIGNhY2hlLlxuICpcbiAqIEBwYXJhbSByZWZlcmVuY2UgLSBUaGUgcmVmZXJlbmNlIHRvIGNoZWNrLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgcmVmZXJlbmNlIGlzIGEgZnJvbnRtYXR0ZXIgbGluayBjYWNoZS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUocmVmZXJlbmNlOiBSZWZlcmVuY2UpOiByZWZlcmVuY2UgaXMgRnJvbnRtYXR0ZXJMaW5rQ2FjaGUge1xuICAgIHJldHVybiAhIShyZWZlcmVuY2UgYXMgUGFydGlhbDxGcm9udG1hdHRlckxpbmtDYWNoZT4pLmtleTtcbn1cbiIsICIvKipcbiAqIEdldCB0aGUgcGFyZW50IGZvbGRlciBwYXRoIG9mIGEgZ2l2ZW4gcGF0aC5cbiAqXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHRvIGdldCB0aGUgcGFyZW50IGZvbGRlciBwYXRoIG9mLlxuICogQHJldHVybnMgVGhlIHBhcmVudCBmb2xkZXIgcGF0aC5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcmVudEZvbGRlclBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXC8/W15cXC9dKiQvLCAnJykgfHwgJy8nO1xufVxuIiwgImltcG9ydCB7XG4gICAgdHlwZSBBcHAsXG4gICAgVEZvbGRlclxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgeyBnZXRURm9sZGVyQ29uc3RydWN0b3IgfSBmcm9tICcuLi9Db25zdHJ1Y3RvcnMvZ2V0VEZvbGRlckNvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IHBhcmVudEZvbGRlclBhdGggfSBmcm9tICcuLi9VdGlscy9QYXRoVXRpbHMuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgYW5kIHByb3Blcmx5IGluaXRpYWxpemVzIHRoZSBpbnN0YW5jZSBvZiBURm9sZGVyIGV2ZW4gdGhlIHVuZGVybHlpbmcgZm9sZGVyIGRvZXMgbm90IGV4aXN0LlxuICogVGhpcyBkb2Vzbid0IGNyZWF0ZSB0aGUgbWlzc2luZyBmb2xkZXIgb24gdGhlIGZpbGUgc3lzdGVtLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVEZvbGRlckluc3RhbmNlKGFwcDogQXBwLCBwYXRoOiBzdHJpbmcpOiBURm9sZGVyIHtcbiAgICBsZXQgZm9sZGVyID0gYXBwLnZhdWx0LmdldEZvbGRlckJ5UGF0aChwYXRoKTtcbiAgICBpZiAoZm9sZGVyKSB7XG4gICAgICAgIHJldHVybiBmb2xkZXI7XG4gICAgfVxuXG4gICAgZm9sZGVyID0gbmV3IChnZXRURm9sZGVyQ29uc3RydWN0b3IoKSkoYXBwLnZhdWx0LCBwYXRoKTtcbiAgICBmb2xkZXIucGFyZW50ID0gY3JlYXRlVEZvbGRlckluc3RhbmNlKGFwcCwgcGFyZW50Rm9sZGVyUGF0aChwYXRoKSk7XG4gICAgZm9sZGVyLmRlbGV0ZWQgPSB0cnVlO1xuICAgIHJldHVybiBmb2xkZXI7XG59XG4iLCAiaW1wb3J0IHtcbiAgICB0eXBlIEFwcCxcbiAgICBURmlsZVxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgeyBnZXRURmlsZUNvbnN0cnVjdG9yIH0gZnJvbSAnLi4vQ29uc3RydWN0b3JzL2dldFRGaWxlQ29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHsgcGFyZW50Rm9sZGVyUGF0aCB9IGZyb20gJy4uL1V0aWxzL1BhdGhVdGlscy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVURm9sZGVySW5zdGFuY2UgfSBmcm9tICcuL2NyZWF0ZVRGb2xkZXJJbnN0YW5jZS50cyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbmQgcHJvcGVybHkgaW5pdGlhbGl6ZXMgdGhlIGluc3RhbmNlIG9mIFRGaWxlIGV2ZW4gdGhlIHVuZGVybHlpbmcgZmlsZSBkb2VzIG5vdCBleGlzdC5cbiAqIFRoaXMgZG9lc24ndCBjcmVhdGUgdGhlIG1pc3NpbmcgZmlsZSBvbiB0aGUgZmlsZSBzeXN0ZW0uXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVURmlsZUluc3RhbmNlKGFwcDogQXBwLCBwYXRoOiBzdHJpbmcpOiBURmlsZSB7XG4gICAgbGV0IGZpbGUgPSBhcHAudmF1bHQuZ2V0RmlsZUJ5UGF0aChwYXRoKTtcbiAgICBpZiAoZmlsZSkge1xuICAgICAgICByZXR1cm4gZmlsZTtcbiAgICB9XG5cbiAgICBmaWxlID0gbmV3IChnZXRURmlsZUNvbnN0cnVjdG9yKCkpKGFwcC52YXVsdCwgcGF0aCk7XG4gICAgZmlsZS5wYXJlbnQgPSBjcmVhdGVURm9sZGVySW5zdGFuY2UoYXBwLCBwYXJlbnRGb2xkZXJQYXRoKHBhdGgpKTtcbiAgICBmaWxlLmRlbGV0ZWQgPSB0cnVlO1xuICAgIHJldHVybiBmaWxlO1xufVxuIiwgImltcG9ydCB0eXBlIHsgQ3VzdG9tQXJyYXlEaWN0IH0gZnJvbSAnLi4vLi4vaW50ZXJuYWxzL0N1c3RvbUFycmF5RGljdC5qcyc7XG5cbi8qKiBAcHVibGljICovXG5leHBvcnQgY2xhc3MgQ3VzdG9tQXJyYXlEaWN0SW1wbDxUPiBpbXBsZW1lbnRzIEN1c3RvbUFycmF5RGljdDxUPiB7XG4gICAgcHVibGljIGRhdGE6IE1hcDxzdHJpbmcsIFRbXT4gPSBuZXcgTWFwKCk7XG5cbiAgICBwdWJsaWMgYWRkKGtleTogc3RyaW5nLCB2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICBsZXQgdmFsdWVzID0gdGhpcy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKCF2YWx1ZXMpIHtcbiAgICAgICAgICAgIHZhbHVlcyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5kYXRhLnNldChrZXksIHZhbHVlcyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXZhbHVlcy5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlcy5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmUoa2V5OiBzdHJpbmcsIHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuZ2V0KGtleSk7XG4gICAgICAgIGlmICghdmFsdWVzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWVzLnJlbW92ZSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXIoa2V5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQoa2V5OiBzdHJpbmcpOiBUW10gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5nZXQoa2V5KSB8fCBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBrZXlzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5kYXRhLmtleXMoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0YS5kZWxldGUoa2V5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJBbGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0YS5jbGVhcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb250YWlucyhrZXk6IHN0cmluZywgdmFsdWU6IFQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5nZXQoa2V5KT8uY29udGFpbnModmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3VudCgpOiBudW1iZXIge1xuICAgICAgICBsZXQgYW5zID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5rZXlzKCkpIHtcbiAgICAgICAgICAgIGFucyArPSB0aGlzLmdldChrZXkpPy5sZW5ndGggPz8gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhbnM7XG4gICAgfVxufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBBcHAsXG4gICAgQ29uc3RydWN0b3IsXG4gICAgVmlld1xufSBmcm9tICdvYnNpZGlhbic7XG5cbi8qKlxuICogR2V0IHRoZSB2aWV3IGNvbnN0cnVjdG9yIGJ5IHZpZXcgdHlwZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIGFwcC5cbiAqIEBwYXJhbSB2aWV3VHlwZSAtIFRoZSB2aWV3IHR5cGUuXG4gKiBAcmV0dXJucyBUaGUgdmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGU8VFZpZXcgZXh0ZW5kcyBWaWV3ID0gVmlldz4oXG4gICAgYXBwOiBBcHAsXG4gICAgdmlld1R5cGU6IHN0cmluZ1xuKTogQ29uc3RydWN0b3I8VFZpZXc+IHtcbiAgICBjb25zdCBsZWFmID0gYXBwLndvcmtzcGFjZS5jcmVhdGVMZWFmSW5UYWJHcm91cCgpO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHZpZXdDcmVhdG9yID0gYXBwLnZpZXdSZWdpc3RyeS5nZXRWaWV3Q3JlYXRvckJ5VHlwZSh2aWV3VHlwZSk7XG4gICAgICAgIGlmICghdmlld0NyZWF0b3IpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVmlldyBjcmVhdG9yIG5vdCBmb3VuZCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZpZXcgPSB2aWV3Q3JlYXRvcihsZWFmKTtcbiAgICAgICAgcmV0dXJuIHZpZXcuY29uc3RydWN0b3IgYXMgQ29uc3RydWN0b3I8VFZpZXc+O1xuICAgIH0gZmluYWxseSB7XG4gICAgICAgIGxlYWYuZGV0YWNoKCk7XG4gICAgfVxufVxuIiwgImltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBUeXBlZFZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvVHlwZWRWaWV3Q29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHR5cGUgeyBBbGxQcm9wZXJ0aWVzVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbnMvUHJvcGVydGllcy9BbGxQcm9wZXJ0aWVzVmlldy5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIEFsbFByb3BlcnRpZXNWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBBbGxQcm9wZXJ0aWVzVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbFByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxBbGxQcm9wZXJ0aWVzVmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuQWxsUHJvcGVydGllcykgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8QWxsUHJvcGVydGllc1ZpZXc+O1xufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBBcHAsXG4gICAgTWFya2Rvd25WaWV3XG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgTWFya2Rvd25WaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBNYXJrZG93blZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXJrZG93blZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPE1hcmtkb3duVmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuTWFya2Rvd24pIGFzIFR5cGVkVmlld0NvbnN0cnVjdG9yPE1hcmtkb3duVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUge1xuICAgIEFwcFxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IENhbnZhc1ZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvQ2FudmFzVmlld0NvbnN0cnVjdG9yLmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgQ2FudmFzVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgQ2FudmFzVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENhbnZhc1ZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IENhbnZhc1ZpZXdDb25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5DYW52YXMpIGFzIENhbnZhc1ZpZXdDb25zdHJ1Y3Rvcjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgRmlsZUV4cGxvcmVyVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbnMvRmlsZUV4cGxvcmVyL0ZpbGVFeHBsb3JlclZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBGaWxlRXhwbG9yZXJWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBGaWxlRXhwbG9yZXJWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZUV4cGxvcmVyVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8RmlsZUV4cGxvcmVyVmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuRmlsZUV4cGxvcmVyKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxGaWxlRXhwbG9yZXJWaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgT3V0Z29pbmdMaW5rVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9JbnRlcm5hbFBsdWdpbnMvT3V0Z29pbmdMaW5rL091dGdvaW5nTGlua1ZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBPdXRnb2luZ0xpbmtWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBPdXRnb2luZ0xpbmtWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3V0Z29pbmdMaW5rVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8T3V0Z29pbmdMaW5rVmlldz4ge1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuT3V0Z29pbmdMaW5rKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxPdXRnb2luZ0xpbmtWaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7XG4gICAgQXBwXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgQnJvd3NlclZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvQnJvd3NlclZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIEJyb3dzZXJWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBCcm93c2VyVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJyb3dzZXJWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBCcm93c2VyVmlld0NvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLkJyb3dzZXIpIGFzIEJyb3dzZXJWaWV3Q29uc3RydWN0b3I7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IFBkZlZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvVmlld3MvUGRmVmlldy5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIFBkZlZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIFBkZlZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQZGZWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxQZGZWaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5QZGYpIGFzIFR5cGVkVmlld0NvbnN0cnVjdG9yPFBkZlZpZXc+O1xufVxuIiwgImltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBUeXBlZFZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvVHlwZWRWaWV3Q29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHR5cGUgeyBTZWFyY2hWaWV3IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0ludGVybmFsUGx1Z2lucy9HbG9iYWxTZWFyY2gvU2VhcmNoVmlldy5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIFNlYXJjaFZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIFNlYXJjaFZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWFyY2hWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxTZWFyY2hWaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5TZWFyY2gpIGFzIFR5cGVkVmlld0NvbnN0cnVjdG9yPFNlYXJjaFZpZXc+O1xufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBBcHBcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUge1xuICAgIEZpbGVQcm9wZXJ0aWVzVmlld0NvbnN0cnVjdG9yXG59IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvRmlsZVByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBGaWxlUHJvcGVydGllc1ZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIEZpbGVQcm9wZXJ0aWVzVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVQcm9wZXJ0aWVzVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogRmlsZVByb3BlcnRpZXNWaWV3Q29uc3RydWN0b3Ige1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuRmlsZVByb3BlcnRpZXMpIGFzIEZpbGVQcm9wZXJ0aWVzVmlld0NvbnN0cnVjdG9yO1xufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBBcHBcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBCb29rbWFya3NWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL0Jvb2ttYXJrc1ZpZXdDb25zdHJ1Y3Rvci5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIEJvb2ttYXJrc1ZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIEJvb2ttYXJrc1ZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRCb29rbWFya3NWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBCb29rbWFya3NWaWV3Q29uc3RydWN0b3Ige1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuQm9va21hcmtzKSBhcyBCb29rbWFya3NWaWV3Q29uc3RydWN0b3I7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IEVtcHR5VmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9WaWV3cy9FbXB0eVZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBFbXB0eVZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIEVtcHR5VmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVtcHR5Vmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8RW1wdHlWaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5FbXB0eSkgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8RW1wdHlWaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgQXVkaW9WaWV3IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL1ZpZXdzL0F1ZGlvVmlldy5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIEF1ZGlvVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgQXVkaW9WaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXVkaW9WaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxBdWRpb1ZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLkF1ZGlvKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxBdWRpb1ZpZXc+O1xufVxuIiwgImltcG9ydCB0eXBlIHtcbiAgICBBcHBcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBPdXRsaW5lVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9PdXRsaW5lVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgT3V0bGluZVZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIE91dGxpbmVWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3V0bGluZVZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IE91dGxpbmVWaWV3Q29uc3RydWN0b3Ige1xuICAgIHJldHVybiBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlKGFwcCwgVmlld1R5cGUuT3V0bGluZSkgYXMgT3V0bGluZVZpZXdDb25zdHJ1Y3Rvcjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgVGFnVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9WaWV3cy9UYWdWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgVGFnVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgVGFnVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRhZ1ZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPFRhZ1ZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLlRhZykgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8VGFnVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IFZpZGVvVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9WaWV3cy9WaWRlb1ZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBWaWRlb1ZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIFZpZGVvVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZpZGVvVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8VmlkZW9WaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5WaWRlbykgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8VmlkZW9WaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgR3JhcGhWaWV3IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0ludGVybmFsUGx1Z2lucy9HcmFwaC9HcmFwaFZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBHcmFwaFZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIEdyYXBoVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEdyYXBoVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8R3JhcGhWaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5HcmFwaCkgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8R3JhcGhWaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgVHlwZWRWaWV3Q29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL1R5cGVkVmlld0NvbnN0cnVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgTG9jYWxHcmFwaFZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvSW50ZXJuYWxQbHVnaW5zL0dyYXBoL0xvY2FsR3JhcGhWaWV3LmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgTG9jYWxHcmFwaFZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIExvY2FsR3JhcGhWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxHcmFwaFZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IFR5cGVkVmlld0NvbnN0cnVjdG9yPExvY2FsR3JhcGhWaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5Mb2NhbEdyYXBoKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxMb2NhbEdyYXBoVmlldz47XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IEltYWdlVmlldyB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9WaWV3cy9JbWFnZVZpZXcuanMnO1xuaW1wb3J0IHsgVmlld1R5cGUgfSBmcm9tICcuLi8uLi9Db25zdGFudHMvVmlld1R5cGUudHMnO1xuaW1wb3J0IHsgZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZSB9IGZyb20gJy4vZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZS50cyc7XG5cbi8qKlxuICogR2V0IHRoZSBJbWFnZVZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIEltYWdlVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEltYWdlVmlld0NvbnN0cnVjdG9yKGFwcDogQXBwKTogVHlwZWRWaWV3Q29uc3RydWN0b3I8SW1hZ2VWaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5JbWFnZSkgYXMgVHlwZWRWaWV3Q29uc3RydWN0b3I8SW1hZ2VWaWV3Pjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7XG4gICAgQXBwXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHtcbiAgICBCcm93c2VySGlzdG9yeVZpZXdDb25zdHJ1Y3RvclxufSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvQ29uc3RydWN0b3JzL1ZpZXdzL0Jyb3dzZXJIaXN0b3J5Vmlld0NvbnN0cnVjdG9yLmpzJztcbmltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vLi4vQ29uc3RhbnRzL1ZpZXdUeXBlLnRzJztcbmltcG9ydCB7IGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUgfSBmcm9tICcuL2dldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUudHMnO1xuXG4vKipcbiAqIEdldCB0aGUgQnJvd3Nlckhpc3RvcnlWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBCcm93c2VySGlzdG9yeVZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRCcm93c2VySGlzdG9yeVZpZXdDb25zdHJ1Y3RvcihhcHA6IEFwcCk6IEJyb3dzZXJIaXN0b3J5Vmlld0NvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLkJyb3dzZXJIaXN0b3J5KSBhcyBCcm93c2VySGlzdG9yeVZpZXdDb25zdHJ1Y3Rvcjtcbn1cbiIsICJpbXBvcnQgdHlwZSB7XG4gICAgQXBwXG59IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB0eXBlIHsgU3luY1ZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvU3luY1ZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIFN5bmNWaWV3IGNvbnN0cnVjdG9yLlxuICpcbiAqIEByZXR1cm5zIFRoZSBTeW5jVmlldyBjb25zdHJ1Y3Rvci5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN5bmNWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBTeW5jVmlld0NvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLlN5bmMpIGFzIFN5bmNWaWV3Q29uc3RydWN0b3I7XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFR5cGVkVmlld0NvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJuYWxzL0NvbnN0cnVjdG9ycy9WaWV3cy9UeXBlZFZpZXdDb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgdHlwZSB7IFJlbGVhc2VOb3Rlc1ZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvVmlld3MvUmVsZWFzZU5vdGVzVmlldy5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIFJlbGVhc2VOb3Rlc1ZpZXcgY29uc3RydWN0b3IuXG4gKlxuICogQHJldHVybnMgVGhlIFJlbGVhc2VOb3Rlc1ZpZXcgY29uc3RydWN0b3IuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWxlYXNlTm90ZXNWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxSZWxlYXNlTm90ZXNWaWV3PiB7XG4gICAgcmV0dXJuIGdldFZpZXdDb25zdHJ1Y3RvckJ5Vmlld1R5cGUoYXBwLCBWaWV3VHlwZS5SZWxlYXNlTm90ZXMpIGFzIFR5cGVkVmlld0NvbnN0cnVjdG9yPFJlbGVhc2VOb3Rlc1ZpZXc+O1xufVxuIiwgImltcG9ydCB0eXBlIHsgQXBwIH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBUeXBlZFZpZXdDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL2ludGVybmFscy9Db25zdHJ1Y3RvcnMvVmlld3MvVHlwZWRWaWV3Q29uc3RydWN0b3IudHMnO1xuaW1wb3J0IHR5cGUgeyBCYWNrbGlua1ZpZXcgfSBmcm9tICcuLi8uLi8uLi9pbnRlcm5hbHMvSW50ZXJuYWxQbHVnaW5zL0JhY2tsaW5rL0JhY2tsaW5rVmlldy5qcyc7XG5pbXBvcnQgeyBWaWV3VHlwZSB9IGZyb20gJy4uLy4uL0NvbnN0YW50cy9WaWV3VHlwZS50cyc7XG5pbXBvcnQgeyBnZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlIH0gZnJvbSAnLi9nZXRWaWV3Q29uc3RydWN0b3JCeVZpZXdUeXBlLnRzJztcblxuLyoqXG4gKiBHZXQgdGhlIEJhY2tsaW5rVmlldyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcmV0dXJucyBUaGUgQmFja2xpbmtWaWV3IGNvbnN0cnVjdG9yLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmFja2xpbmtWaWV3Q29uc3RydWN0b3IoYXBwOiBBcHApOiBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxCYWNrbGlua1ZpZXc+IHtcbiAgICByZXR1cm4gZ2V0Vmlld0NvbnN0cnVjdG9yQnlWaWV3VHlwZShhcHAsIFZpZXdUeXBlLkJhY2tsaW5rKSBhcyBUeXBlZFZpZXdDb25zdHJ1Y3RvcjxCYWNrbGlua1ZpZXc+O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7OztBQ0FBLHNCQUVPO0FBU0EsU0FBUyxvQkFBb0M7QUFDaEQsU0FBTztBQUNYOzs7QUNiQSxJQUFBQSxtQkFFTztBQVNBLFNBQVMsd0JBQTRDO0FBQ3hELFNBQU87QUFDWDs7O0FDSE8sU0FBUyw4QkFBOEIsS0FBc0M7QUFDaEYsU0FBTyxJQUFJLGdCQUFnQjtBQUMvQjs7O0FDWkEsSUFBQUMsbUJBRU87QUFTQSxTQUFTLHNCQUF3QztBQUNwRCxTQUFPO0FBQ1g7OztBQ0hPLFNBQVMsNkJBQXVDLEtBQStDO0FBQ2xHLFFBQU0sWUFBWSxPQUFPLE9BQU8sSUFBSSxnQkFBZ0IsT0FBTyxFQUFFLENBQUM7QUFDOUQsTUFBSSxDQUFDLFdBQVc7QUFDWixVQUFNLElBQUksTUFBTSwwQkFBMEI7QUFBQSxFQUM5QztBQUNBLFNBQU8sVUFBVTtBQUNyQjs7O0FDZk8sSUFBTSxxQkFBcUI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUk5QixlQUFlO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJZixVQUFVO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJVixXQUFXO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJWCxTQUFTO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJVCxRQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJUixnQkFBZ0I7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUloQixZQUFZO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJWixjQUFjO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJZCxjQUFjO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJZCxjQUFjO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJZCxjQUFjO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJZCxPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJUCxrQkFBa0I7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUlsQixjQUFjO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJZCxjQUFjO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJZCxTQUFTO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJVCxhQUFhO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJYixZQUFZO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJWixTQUFTO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJVCxZQUFZO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJWixjQUFjO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJZCxRQUFRO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJUixVQUFVO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJVixNQUFNO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJTixTQUFTO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJVCxXQUFXO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJWCxXQUFXO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJWCxZQUFZO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFJWixZQUFZO0FBQ2hCOzs7QUNySE8sSUFBTSxnQkFB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Tyw2QkFBNkIsS0FBSyxTQUFTLEdBQUc7QUFDekQ7OztBQ0ZPLFNBQVMsd0JBQXdCLEtBQTJDO0FBQy9FLFNBQU8sNkJBQTZCLEtBQUssU0FBUyxLQUFLO0FBQzNEOzs7QUNGTyxTQUFTLHdCQUF3QixLQUEyQztBQUMvRSxTQUFPLDZCQUE2QixLQUFLLFNBQVMsS0FBSztBQUMzRDs7O0FDRk8sU0FBUyw2QkFBNkIsS0FBZ0Q7QUFDekYsU0FBTyw2QkFBNkIsS0FBSyxTQUFTLFVBQVU7QUFDaEU7OztBQ0ZPLFNBQVMsd0JBQXdCLEtBQTJDO0FBQy9FLFNBQU8sNkJBQTZCLEtBQUssU0FBUyxLQUFLO0FBQzNEOzs7QUNDTyxTQUFTLGlDQUFpQyxLQUF5QztBQUN0RixTQUFPLDZCQUE2QixLQUFLLFNBQVMsY0FBYztBQUNwRTs7O0FDSk8sU0FBUyx1QkFBdUIsS0FBK0I7QUFDbEUsU0FBTyw2QkFBNkIsS0FBSyxTQUFTLElBQUk7QUFDMUQ7OztBQ0hPLFNBQVMsK0JBQStCLEtBQWtEO0FBQzdGLFNBQU8sNkJBQTZCLEtBQUssU0FBUyxZQUFZO0FBQ2xFOzs7QUNGTyxTQUFTLDJCQUEyQixLQUE4QztBQUNyRixTQUFPLDZCQUE2QixLQUFLLFNBQVMsUUFBUTtBQUM5RDsiLAogICJuYW1lcyI6IFsiaW1wb3J0X29ic2lkaWFuIiwgImltcG9ydF9vYnNpZGlhbiJdCn0K
|