obsidian-dev-utils 94.4.2 → 94.6.0
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/CHANGELOG.md +11 -0
- package/dist/integration-test-plugin/main.js +192 -2
- package/dist/lib/cjs/__merged.cjs +11 -1
- package/dist/lib/cjs/__merged.d.cts +2 -0
- package/dist/lib/cjs/blob.cjs +6 -3
- package/dist/lib/cjs/blob.d.cts +18 -1
- package/dist/lib/cjs/generated-during-build.cjs +1 -1
- package/dist/lib/cjs/index.cjs +4 -1
- package/dist/lib/cjs/index.d.cts +1 -0
- package/dist/lib/cjs/jpeg-metadata.cjs +274 -0
- package/dist/lib/cjs/jpeg-metadata.d.cts +42 -0
- package/dist/lib/cjs/obsidian/attachment-unit-folder.cjs +155 -0
- package/dist/lib/cjs/obsidian/attachment-unit-folder.d.cts +73 -0
- package/dist/lib/cjs/obsidian/components/plugin-settings-component.cjs +4 -1
- package/dist/lib/cjs/obsidian/index.cjs +4 -1
- package/dist/lib/cjs/obsidian/index.d.cts +1 -0
- package/dist/lib/cjs/script-utils/demo-vault-buttons.cjs +23 -5
- package/dist/lib/cjs/script-utils/demo-vault-buttons.d.cts +8 -4
- package/dist/lib/esm/__merged.d.mts +2 -0
- package/dist/lib/esm/__merged.mjs +13 -1
- package/dist/lib/esm/blob.d.mts +18 -1
- package/dist/lib/esm/blob.mjs +9 -3
- package/dist/lib/esm/generated-during-build.mjs +1 -1
- package/dist/lib/esm/index.d.mts +1 -0
- package/dist/lib/esm/index.mjs +3 -1
- package/dist/lib/esm/jpeg-metadata.d.mts +42 -0
- package/dist/lib/esm/jpeg-metadata.mjs +169 -0
- package/dist/lib/esm/obsidian/attachment-unit-folder.d.mts +73 -0
- package/dist/lib/esm/obsidian/attachment-unit-folder.mjs +50 -0
- package/dist/lib/esm/obsidian/components/plugin-settings-component.mjs +4 -1
- package/dist/lib/esm/obsidian/index.d.mts +1 -0
- package/dist/lib/esm/obsidian/index.mjs +3 -1
- package/dist/lib/esm/script-utils/demo-vault-buttons.d.mts +8 -4
- package/dist/lib/esm/script-utils/demo-vault-buttons.mjs +23 -5
- package/obsidian/attachment-unit-folder/package.json +6 -0
- package/package.json +2 -1
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/*
|
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
(function initCjs() {
|
|
7
|
+
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
8
|
+
const globalThisRecord = globalThis;
|
|
9
|
+
globalThisRecord['__name'] ??= name;
|
|
10
|
+
const originalRequire = require;
|
|
11
|
+
if (originalRequire && !originalRequire.__isPatched) {
|
|
12
|
+
// eslint-disable-next-line no-global-assign, no-implicit-globals -- We need to patch the `require()` function.
|
|
13
|
+
require = Object.assign(
|
|
14
|
+
(id) => requirePatched(id),
|
|
15
|
+
originalRequire,
|
|
16
|
+
{
|
|
17
|
+
__isPatched: true
|
|
18
|
+
}
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const newFuncs = {
|
|
23
|
+
__extractDefault() {
|
|
24
|
+
return extractDefault;
|
|
25
|
+
},
|
|
26
|
+
process() {
|
|
27
|
+
const browserProcess = {
|
|
28
|
+
browser: true,
|
|
29
|
+
cwd() {
|
|
30
|
+
return '/';
|
|
31
|
+
},
|
|
32
|
+
env: {},
|
|
33
|
+
platform: 'android'
|
|
34
|
+
};
|
|
35
|
+
return browserProcess;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
for (const key of Object.keys(newFuncs)) {
|
|
40
|
+
globalThisRecord[key] ??= newFuncs[key]?.();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function extractDefault(module) {
|
|
44
|
+
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
|
|
48
|
+
'@codemirror/autocomplete',
|
|
49
|
+
'@codemirror/collab',
|
|
50
|
+
'@codemirror/commands',
|
|
51
|
+
'@codemirror/language',
|
|
52
|
+
'@codemirror/lint',
|
|
53
|
+
'@codemirror/search',
|
|
54
|
+
'@codemirror/state',
|
|
55
|
+
'@codemirror/text',
|
|
56
|
+
'@codemirror/view',
|
|
57
|
+
'@lezer/common',
|
|
58
|
+
'@lezer/highlight',
|
|
59
|
+
'@lezer/lr',
|
|
60
|
+
'obsidian']
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
const DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES = new Set([
|
|
64
|
+
'@codemirror/closebrackets',
|
|
65
|
+
'@codemirror/comment',
|
|
66
|
+
'@codemirror/fold',
|
|
67
|
+
'@codemirror/gutter',
|
|
68
|
+
'@codemirror/highlight',
|
|
69
|
+
'@codemirror/history',
|
|
70
|
+
'@codemirror/matchbrackets',
|
|
71
|
+
'@codemirror/panel',
|
|
72
|
+
'@codemirror/rangeset',
|
|
73
|
+
'@codemirror/rectangular-selection',
|
|
74
|
+
'@codemirror/stream-parser',
|
|
75
|
+
'@codemirror/tooltip']
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
function requirePatched(id) {
|
|
79
|
+
if (OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id) || DEPRECATED_OBSIDIAN_BUILT_IN_MODULE_NAMES.has(id)) {
|
|
80
|
+
return originalRequire?.(id);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated, obsidianmd/no-global-this -- Need access to app. Actively use globalThis.
|
|
84
|
+
if (globalThis.app.isMobile) {
|
|
85
|
+
if (id === 'process' || id === 'node:process') {
|
|
86
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
87
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Fake process object is returned instead.`);
|
|
88
|
+
|
|
89
|
+
return process;
|
|
90
|
+
}
|
|
91
|
+
} else {
|
|
92
|
+
const module = originalRequire?.(id);
|
|
93
|
+
if (module) {
|
|
94
|
+
return extractDefault(module);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// eslint-disable-next-line no-console -- Valid usage.
|
|
99
|
+
console.debug(`The most likely you can safely ignore this error. Module not found: ${id}. Empty object is returned instead.`);
|
|
100
|
+
return {};
|
|
101
|
+
}
|
|
102
|
+
})();
|
|
103
|
+
|
|
104
|
+
"use strict";
|
|
105
|
+
var __defProp = Object.defineProperty;
|
|
106
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
107
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
108
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
109
|
+
var __export = (target, all) => {
|
|
110
|
+
for (var name in all)
|
|
111
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
112
|
+
};
|
|
113
|
+
var __copyProps = (to, from, except, desc) => {
|
|
114
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
115
|
+
for (let key of __getOwnPropNames(from))
|
|
116
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
117
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
118
|
+
}
|
|
119
|
+
return to;
|
|
120
|
+
};
|
|
121
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
122
|
+
var attachment_unit_folder_exports = {};
|
|
123
|
+
__export(attachment_unit_folder_exports, {
|
|
124
|
+
findAttachmentUnitFolderPath: () => findAttachmentUnitFolderPath,
|
|
125
|
+
rebasePathOntoFolder: () => rebasePathOntoFolder
|
|
126
|
+
});
|
|
127
|
+
module.exports = __toCommonJS(attachment_unit_folder_exports);
|
|
128
|
+
var import_path = require('../path.cjs');
|
|
129
|
+
function findAttachmentUnitFolderPath(params) {
|
|
130
|
+
const parentFolderPath = (0, import_path.dirname)(params.attachmentPath);
|
|
131
|
+
if (!parentFolderPath || parentFolderPath === "." || parentFolderPath === "/") {
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
const segments = parentFolderPath.split("/").filter(Boolean);
|
|
135
|
+
for (let count = 1; count <= segments.length; count++) {
|
|
136
|
+
const candidate = segments.slice(0, count).join("/");
|
|
137
|
+
if (params.checkIsAttachmentUnitFolder(candidate)) {
|
|
138
|
+
return candidate;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
function rebasePathOntoFolder(params) {
|
|
144
|
+
const prefix = `${params.oldFolderPath}/`;
|
|
145
|
+
if (!params.path.startsWith(prefix)) {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
return `${params.newFolderPath}/${params.path.slice(prefix.length)}`;
|
|
149
|
+
}
|
|
150
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
151
|
+
0 && (module.exports = {
|
|
152
|
+
findAttachmentUnitFolderPath,
|
|
153
|
+
rebasePathOntoFolder
|
|
154
|
+
});
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2F0dGFjaG1lbnQtdW5pdC1mb2xkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBSZXNvbHZlcyB3aGljaCBmb2xkZXIgYW4gYXR0YWNobWVudCBiZWxvbmdzIHRvIHdoZW4gdGhlIHVzZXIgaGFzIGRlc2lnbmF0ZWQgZm9sZGVycyB0aGF0IG11c3RcbiAqIHRyYXZlbCBhcyBhIHNpbmdsZSB1bml0LlxuICpcbiAqIFNvbWUgZm9ybWF0cyBhcmUgcmVhbGx5IGEgZGlyZWN0b3J5IHRyZWUgcmF0aGVyIHRoYW4gYSBmaWxlOiBhIHBhZ2Ugc2F2ZWQgZnJvbSBhIGJyb3dzZXIgc2l0cyBuZXh0XG4gKiB0byBhIGBfZmlsZXMvYCBmb2xkZXIgaG9sZGluZyBpdHMgaW1hZ2VzIGFuZCBzdHlsZXNoZWV0cywgYW4gYC5leGNhbGlkcmF3YCBzaXRzIG5leHQgdG8gdGhlIGltYWdlc1xuICogaXQgcmVmZXJlbmNlcy4gUmVsb2NhdGluZyBvbmx5IHRoZSBsaW5rZWQgZmlsZSBsZWF2ZXMgdGhlIHJlc3QgYmVoaW5kIGFuZCB0aGUgYXR0YWNobWVudCBhcnJpdmVzXG4gKiBicm9rZW4uXG4gKlxuICogVGhpcyBsaXZlcyBpbiB0aGUgc2hhcmVkIGxpYnJhcnkgcmF0aGVyIHRoYW4gaW4gb25lIHBsdWdpbiBiZWNhdXNlIG1vcmUgdGhhbiBvbmUgcGx1Z2luIHJlbG9jYXRlc1xuICogYXR0YWNobWVudHMgb3ZlciB0aGUgc2FtZSB2YXVsdC4gSWYgdGhleSBlYWNoIGRlY2lkZWQgc2VwYXJhdGVseSB3aGF0IG9uZSBhdHRhY2htZW50IGlzLCBhIHVzZXJcbiAqIHdpdGggYm90aCBpbnN0YWxsZWQgd291bGQgZ2V0IGEgZm9sZGVyIGtlcHQgd2hvbGUgYnkgb25lIGFuZCB0b3JuIGFwYXJ0IGJ5IHRoZSBvdGhlci5cbiAqL1xuXG5pbXBvcnQgeyBkaXJuYW1lIH0gZnJvbSAnLi4vcGF0aC50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGZpbmRBdHRhY2htZW50VW5pdEZvbGRlclBhdGh9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbmRBdHRhY2htZW50VW5pdEZvbGRlclBhdGhQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHZhdWx0LXJlbGF0aXZlIHBhdGggb2YgdGhlIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBhdHRhY2htZW50UGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGEgZm9sZGVyIHBhdGggaXMgZGVzaWduYXRlZCBhcyBhbiBhdHRhY2htZW50IHVuaXQuXG4gICAqXG4gICAqIEBwYXJhbSBmb2xkZXJQYXRoIC0gVGhlIHZhdWx0LXJlbGF0aXZlIHBhdGggb2YgdGhlIGZvbGRlci5cbiAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBmb2xkZXIgaXMgZGVzaWduYXRlZCBhcyBhbiBhdHRhY2htZW50IHVuaXQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgY2hlY2tJc0F0dGFjaG1lbnRVbml0Rm9sZGVyKGZvbGRlclBhdGg6IHN0cmluZyk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJlYmFzZVBhdGhPbnRvRm9sZGVyfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWJhc2VQYXRoT250b0ZvbGRlclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyJ3MgbmV3IHBhdGguXG4gICAqL1xuICByZWFkb25seSBuZXdGb2xkZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIncyBvbGQgcGF0aC5cbiAgICovXG4gIHJlYWRvbmx5IG9sZEZvbGRlclBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggdG8gcmViYXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBmb2xkZXIgdGhhdCBhbiBhdHRhY2htZW50IG11c3QgdHJhdmVsIHdpdGguXG4gKlxuICogUmV0dXJucyB0aGUgKipvdXRlcm1vc3QqKiBkZXNpZ25hdGVkIGFuY2VzdG9yLCBub3QgdGhlIG5lYXJlc3Qgb25lLiBXaXRoIG5lc3RlZCBkZXNpZ25hdGlvbnMsXG4gKiBtb3ZpbmcgdGhlIG5lYXJlc3Qgd291bGQgdGVhciB0aGUgb3V0ZXIgdHJlZSBpbiBoYWxmLCB3aGljaCBpcyB0aGUgZmFpbHVyZSB0aGUgd2hvbGUgZmVhdHVyZSBleGlzdHNcbiAqIHRvIHByZXZlbnQuXG4gKlxuICogVGhlIHZhdWx0IHJvb3QgaXMgbmV2ZXIgYSB1bml0LCBob3dldmVyIHRoZSBwYXR0ZXJucyBhcmUgd3JpdHRlbjogZGVzaWduYXRpbmcgaXQgd291bGQgbWFrZSBldmVyeVxuICogcmVsb2NhdGlvbiBhIG5vLW9wIGF0IGJlc3QgYW5kIGEgdmF1bHQtd2lkZSBtb3ZlIGF0IHdvcnN0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgZmluZGluZyB0aGUgYXR0YWNobWVudCB1bml0IGZvbGRlci5cbiAqIEByZXR1cm5zIFRoZSB1bml0IGZvbGRlcidzIHBhdGgsIG9yIGBudWxsYCB3aGVuIHRoZSBhdHRhY2htZW50IGJlbG9uZ3MgdG8gbm8gdW5pdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRBdHRhY2htZW50VW5pdEZvbGRlclBhdGgocGFyYW1zOiBGaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRoUGFyYW1zKTogbnVsbCB8IHN0cmluZyB7XG4gIGNvbnN0IHBhcmVudEZvbGRlclBhdGggPSBkaXJuYW1lKHBhcmFtcy5hdHRhY2htZW50UGF0aCk7XG4gIGlmICghcGFyZW50Rm9sZGVyUGF0aCB8fCBwYXJlbnRGb2xkZXJQYXRoID09PSAnLicgfHwgcGFyZW50Rm9sZGVyUGF0aCA9PT0gJy8nKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBzZWdtZW50cyA9IHBhcmVudEZvbGRlclBhdGguc3BsaXQoJy8nKS5maWx0ZXIoQm9vbGVhbik7XG4gIGZvciAobGV0IGNvdW50ID0gMTsgY291bnQgPD0gc2VnbWVudHMubGVuZ3RoOyBjb3VudCsrKSB7XG4gICAgY29uc3QgY2FuZGlkYXRlID0gc2VnbWVudHMuc2xpY2UoMCwgY291bnQpLmpvaW4oJy8nKTtcbiAgICBpZiAocGFyYW1zLmNoZWNrSXNBdHRhY2htZW50VW5pdEZvbGRlcihjYW5kaWRhdGUpKSB7XG4gICAgICByZXR1cm4gY2FuZGlkYXRlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFJlYmFzZXMgYSBwYXRoIGZyb20gb25lIGZvbGRlciBvbnRvIGFub3RoZXIuXG4gKlxuICogVXNlZCB0byB3b3JrIG91dCB3aGVyZSBhIGxpbmtlZCBhdHRhY2htZW50IGVuZHMgdXAgb25jZSBpdHMgd2hvbGUgdW5pdCBmb2xkZXIgaGFzIG1vdmVkLCBzbyB0aGVcbiAqIGxpbmsgY2FuIGJlIHBvaW50ZWQgYXQgdGhlIGZpbGUncyBuZXcgaG9tZSByYXRoZXIgdGhhbiBhdCB3aGVyZSB0aGUgZm9sZGVyIHVzZWQgdG8gYmUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciByZWJhc2luZyB0aGUgcGF0aC5cbiAqIEByZXR1cm5zIFRoZSByZWJhc2VkIHBhdGgsIG9yIGBudWxsYCB3aGVuIHRoZSBwYXRoIGRvZXMgbm90IHNpdCBpbnNpZGUgdGhlIG9sZCBmb2xkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWJhc2VQYXRoT250b0ZvbGRlcihwYXJhbXM6IFJlYmFzZVBhdGhPbnRvRm9sZGVyUGFyYW1zKTogbnVsbCB8IHN0cmluZyB7XG4gIGNvbnN0IHByZWZpeCA9IGAke3BhcmFtcy5vbGRGb2xkZXJQYXRofS9gO1xuICBpZiAoIXBhcmFtcy5wYXRoLnN0YXJ0c1dpdGgocHJlZml4KSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGAke3BhcmFtcy5uZXdGb2xkZXJQYXRofS8ke3BhcmFtcy5wYXRoLnNsaWNlKHByZWZpeC5sZW5ndGgpfWA7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0JBLGtCQUF3QjtBQXFEakIsU0FBUyw2QkFBNkIsUUFBMkQ7QUFDdEcsUUFBTSx1QkFBbUIscUJBQVEsT0FBTyxjQUFjO0FBQ3RELE1BQUksQ0FBQyxvQkFBb0IscUJBQXFCLE9BQU8scUJBQXFCLEtBQUs7QUFDN0UsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLFdBQVcsaUJBQWlCLE1BQU0sR0FBRyxFQUFFLE9BQU8sT0FBTztBQUMzRCxXQUFTLFFBQVEsR0FBRyxTQUFTLFNBQVMsUUFBUSxTQUFTO0FBQ3JELFVBQU0sWUFBWSxTQUFTLE1BQU0sR0FBRyxLQUFLLEVBQUUsS0FBSyxHQUFHO0FBQ25ELFFBQUksT0FBTyw0QkFBNEIsU0FBUyxHQUFHO0FBQ2pELGFBQU87QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUVBLFNBQU87QUFDVDtBQVdPLFNBQVMscUJBQXFCLFFBQW1EO0FBQ3RGLFFBQU0sU0FBUyxHQUFHLE9BQU8sYUFBYTtBQUN0QyxNQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsTUFBTSxHQUFHO0FBQ25DLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTyxHQUFHLE9BQU8sYUFBYSxJQUFJLE9BQU8sS0FBSyxNQUFNLE9BQU8sTUFBTSxDQUFDO0FBQ3BFOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/// <reference path="../library.d.cts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Resolves which folder an attachment belongs to when the user has designated folders that must
|
|
6
|
+
* travel as a single unit.
|
|
7
|
+
*
|
|
8
|
+
* Some formats are really a directory tree rather than a file: a page saved from a browser sits next
|
|
9
|
+
* to a `_files/` folder holding its images and stylesheets, an `.excalidraw` sits next to the images
|
|
10
|
+
* it references. Relocating only the linked file leaves the rest behind and the attachment arrives
|
|
11
|
+
* broken.
|
|
12
|
+
*
|
|
13
|
+
* This lives in the shared library rather than in one plugin because more than one plugin relocates
|
|
14
|
+
* attachments over the same vault. If they each decided separately what one attachment is, a user
|
|
15
|
+
* with both installed would get a folder kept whole by one and torn apart by the other.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Parameters for {@link findAttachmentUnitFolderPath}.
|
|
19
|
+
*/
|
|
20
|
+
export interface FindAttachmentUnitFolderPathParams {
|
|
21
|
+
/**
|
|
22
|
+
* The vault-relative path of the attachment.
|
|
23
|
+
*/
|
|
24
|
+
readonly attachmentPath: string;
|
|
25
|
+
/**
|
|
26
|
+
* Whether a folder path is designated as an attachment unit.
|
|
27
|
+
*
|
|
28
|
+
* @param folderPath - The vault-relative path of the folder.
|
|
29
|
+
* @returns `true` if the folder is designated as an attachment unit, `false` otherwise.
|
|
30
|
+
*/
|
|
31
|
+
checkIsAttachmentUnitFolder(folderPath: string): boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Parameters for {@link rebasePathOntoFolder}.
|
|
35
|
+
*/
|
|
36
|
+
export interface RebasePathOntoFolderParams {
|
|
37
|
+
/**
|
|
38
|
+
* The folder's new path.
|
|
39
|
+
*/
|
|
40
|
+
readonly newFolderPath: string;
|
|
41
|
+
/**
|
|
42
|
+
* The folder's old path.
|
|
43
|
+
*/
|
|
44
|
+
readonly oldFolderPath: string;
|
|
45
|
+
/**
|
|
46
|
+
* The path to rebase.
|
|
47
|
+
*/
|
|
48
|
+
readonly path: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Finds the folder that an attachment must travel with.
|
|
52
|
+
*
|
|
53
|
+
* Returns the **outermost** designated ancestor, not the nearest one. With nested designations,
|
|
54
|
+
* moving the nearest would tear the outer tree in half, which is the failure the whole feature exists
|
|
55
|
+
* to prevent.
|
|
56
|
+
*
|
|
57
|
+
* The vault root is never a unit, however the patterns are written: designating it would make every
|
|
58
|
+
* relocation a no-op at best and a vault-wide move at worst.
|
|
59
|
+
*
|
|
60
|
+
* @param params - The parameters for finding the attachment unit folder.
|
|
61
|
+
* @returns The unit folder's path, or `null` when the attachment belongs to no unit.
|
|
62
|
+
*/
|
|
63
|
+
export declare function findAttachmentUnitFolderPath(params: FindAttachmentUnitFolderPathParams): null | string;
|
|
64
|
+
/**
|
|
65
|
+
* Rebases a path from one folder onto another.
|
|
66
|
+
*
|
|
67
|
+
* Used to work out where a linked attachment ends up once its whole unit folder has moved, so the
|
|
68
|
+
* link can be pointed at the file's new home rather than at where the folder used to be.
|
|
69
|
+
*
|
|
70
|
+
* @param params - The parameters for rebasing the path.
|
|
71
|
+
* @returns The rebased path, or `null` when the path does not sit inside the old folder.
|
|
72
|
+
*/
|
|
73
|
+
export declare function rebasePathOntoFolder(params: RebasePathOntoFolderParams): null | string;
|
|
@@ -274,6 +274,9 @@ class PluginSettingsComponentBase extends import_component_ex.ComponentEx {
|
|
|
274
274
|
});
|
|
275
275
|
}
|
|
276
276
|
this.lastSavedState = await this.cloneState(this.currentState);
|
|
277
|
+
if (this.propertyNames.length === 0) {
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
277
280
|
const newRecord = await this.settingsToRawRecord(this.currentState.inputValues);
|
|
278
281
|
if (!(0, import_object_utils.isDeepEqual)(newRecord, data)) {
|
|
279
282
|
await this.saveToFileImpl();
|
|
@@ -601,4 +604,4 @@ class PluginSettingsComponentBase extends import_component_ex.ComponentEx {
|
|
|
601
604
|
0 && (module.exports = {
|
|
602
605
|
PluginSettingsComponentBase
|
|
603
606
|
});
|
|
604
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLXNldHRpbmdzLWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbXBvbmVudCB0aGF0IG1hbmFnZXMgcGx1Z2luIHNldHRpbmdzOiBkYXRhLCBwZXJzaXN0ZW5jZSwgdmFsaWRhdGlvbiwgYW5kIGV2ZW50cy5cbiAqXG4gKiBUaGlzIGlzIHRoZSBzaW5nbGUgcHVibGljLWZhY2luZyBzZXR0aW5ncyBBUEkgZm9yIHBsdWdpbiBhdXRob3JzLlxuICogQWxsIHNldHRpbmdzIGxvZ2ljIChsb2FkLCBzYXZlLCB2YWxpZGF0ZSwgdHJhbnNmb3JtLCBjbG9uZSkgaXMgaGFuZGxlZCBkaXJlY3RseVxuICogYnkgdGhpcyBjb21wb25lbnQgXHUyMDE0IG5vIHNlcGFyYXRlIG1hbmFnZXIgY2xhc3MgaXMgbmVlZGVkLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQ29uc3RydWN0b3IsXG4gIFByb21pc2FibGUsXG4gIFJlYWRvbmx5RGVlcFxufSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFzeW5jRXZlbnRSZWYsXG4gIEFzeW5jRXZlbnRTb3VyY2Vcbn0gZnJvbSAnLi4vLi4vYXN5bmMtZXZlbnRzLnRzJztcbmltcG9ydCB0eXBlIHsgVHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi90cmFuc2Zvcm1lcnMvdHJhbnNmb3JtZXIudHMnO1xuaW1wb3J0IHR5cGUgeyBHZW5lcmljT2JqZWN0IH0gZnJvbSAnLi4vLi4vdHlwZS1ndWFyZHMudHMnO1xuaW1wb3J0IHR5cGUge1xuICBNYXliZVJldHVybixcbiAgU3RyaW5nS2V5c1xufSBmcm9tICcuLi8uLi90eXBlLnRzJztcbmltcG9ydCB0eXBlIHsgRGF0YUhhbmRsZXIgfSBmcm9tICcuLi9kYXRhLWhhbmRsZXIudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5FdmVudFNvdXJjZSB9IGZyb20gJy4uL3BsdWdpbi9wbHVnaW4tZXZlbnQtc291cmNlLnRzJztcblxuaW1wb3J0IHsgQXN5bmNFdmVudHMgfSBmcm9tICcuLi8uLi9hc3luYy1ldmVudHMudHMnO1xuaW1wb3J0IHsgZ2V0TGliRGVidWdnZXIgfSBmcm9tICcuLi8uLi9kZWJ1Zy50cyc7XG5pbXBvcnQge1xuICBub29wLFxuICBub29wQXN5bmNcbn0gZnJvbSAnLi4vLi4vZnVuY3Rpb24udHMnO1xuaW1wb3J0IHtcbiAgY2FzdFRvLFxuICBnZXRBbGxLZXlzLFxuICBpc0RlZXBFcXVhbFxufSBmcm9tICcuLi8uLi9vYmplY3QtdXRpbHMudHMnO1xuaW1wb3J0IHsgRGF0ZVRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vLi4vdHJhbnNmb3JtZXJzL2RhdGUtdHJhbnNmb3JtZXIudHMnO1xuaW1wb3J0IHsgRHVyYXRpb25UcmFuc2Zvcm1lciB9IGZyb20gJy4uLy4uL3RyYW5zZm9ybWVycy9kdXJhdGlvbi10cmFuc2Zvcm1lci50cyc7XG5pbXBvcnQgeyBHcm91cFRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vLi4vdHJhbnNmb3JtZXJzL2dyb3VwLXRyYW5zZm9ybWVyLnRzJztcbmltcG9ydCB7IE1hcFRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vLi4vdHJhbnNmb3JtZXJzL21hcC10cmFuc2Zvcm1lci50cyc7XG5pbXBvcnQgeyBTZXRUcmFuc2Zvcm1lciB9IGZyb20gJy4uLy4uL3RyYW5zZm9ybWVycy9zZXQtdHJhbnNmb3JtZXIudHMnO1xuaW1wb3J0IHsgU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vLi4vdHJhbnNmb3JtZXJzL3NraXAtcHJpdmF0ZS1wcm9wZXJ0eS10cmFuc2Zvcm1lci50cyc7XG5pbXBvcnQgeyBUd29XYXlNYXBUcmFuc2Zvcm1lciB9IGZyb20gJy4uLy4uL3RyYW5zZm9ybWVycy90d28td2F5LW1hcC10cmFuc2Zvcm1lci50cyc7XG5pbXBvcnQgeyBWYWx1ZVdyYXBwZXIgfSBmcm9tICcuLi8uLi92YWx1ZS13cmFwcGVyLnRzJztcbmltcG9ydCB7IHJlZ2lzdGVyQXN5bmNFdmVudCB9IGZyb20gJy4vYXN5bmMtZXZlbnRzLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4vY29tcG9uZW50LWV4LnRzJztcblxuY29uc3QgZGVmYXVsdFRyYW5zZm9ybWVyID0gbmV3IEdyb3VwVHJhbnNmb3JtZXIoW1xuICBuZXcgU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyKCksXG4gIG5ldyBEYXRlVHJhbnNmb3JtZXIoKSxcbiAgbmV3IER1cmF0aW9uVHJhbnNmb3JtZXIoKSxcbiAgbmV3IE1hcFRyYW5zZm9ybWVyKCksXG4gIG5ldyBTZXRUcmFuc2Zvcm1lcigpLFxuICBuZXcgVHdvV2F5TWFwVHJhbnNmb3JtZXIoKVxuXSk7XG5cbi8qKlxuICogQ29uc3RydWN0b3IgcGFyYW1ldGVycyBmb3Ige0BsaW5rIFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZX0uXG4gKlxuICogQHR5cGVQYXJhbSBQbHVnaW5TZXR0aW5ncyAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlQ29uc3RydWN0b3JQYXJhbXM8UGx1Z2luU2V0dGluZ3M+IHtcbiAgLyoqXG4gICAqIFRoZSBkYXRhIGhhbmRsZXIgZm9yIHRoZSBwbHVnaW4uXG4gICAqL1xuICByZWFkb25seSBkYXRhSGFuZGxlcjogRGF0YUhhbmRsZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gZXZlbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luRXZlbnRTb3VyY2U6IFBsdWdpbkV2ZW50U291cmNlO1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luIHNldHRpbmdzIGNsYXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luU2V0dGluZ3NDbGFzczogQ29uc3RydWN0b3I8UGx1Z2luU2V0dGluZ3MsIFtdPjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlLm9uU2F2ZVNldHRpbmdzfS5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VPblNhdmVTZXR0aW5nc1BhcmFtczxQbHVnaW5TZXR0aW5ncyBleHRlbmRzIG9iamVjdD4ge1xuICAvKipcbiAgICogVGhlIHNhdmUgY29udGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ6IHVua25vd247XG5cbiAgLyoqXG4gICAqIFRoZSBuZXcgc2V0dGluZ3Mgc3RhdGUuXG4gICAqL1xuICByZWFkb25seSBuZXdTdGF0ZTogUmVhZG9ubHlQbHVnaW5TZXR0aW5nc1N0YXRlPFBsdWdpblNldHRpbmdzPjtcblxuICAvKipcbiAgICogVGhlIG9sZCBzZXR0aW5ncyBzdGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IG9sZFN0YXRlOiBSZWFkb25seVBsdWdpblNldHRpbmdzU3RhdGU8UGx1Z2luU2V0dGluZ3M+O1xufVxuXG4vKipcbiAqIEEgc25hcHNob3Qgb2YgcGx1Z2luIHNldHRpbmdzIHN0YXRlLCBpbmNsdWRpbmcgcmF3IGlucHV0IHZhbHVlcywgZWZmZWN0aXZlICh2YWxpZGF0ZWQpIHZhbHVlcyxcbiAqIGFuZCBwZXItcHJvcGVydHkgdmFsaWRhdGlvbiBtZXNzYWdlcy5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5TZXR0aW5nc1N0YXRlPFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0PiB7XG4gIC8qKlxuICAgKiBUaGUgZWZmZWN0aXZlIHNldHRpbmdzIHZhbHVlcyB1c2VkIGJ5IHRoZSBwbHVnaW4uIEludmFsaWQgcHJvcGVydGllcyBhcmUgcmVwbGFjZWQgd2l0aCBkZWZhdWx0cy5cbiAgICovXG4gIGVmZmVjdGl2ZVZhbHVlczogUGx1Z2luU2V0dGluZ3M7XG5cbiAgLyoqXG4gICAqIFRoZSByYXcgaW5wdXQgdmFsdWVzIGFzIGVudGVyZWQgYnkgdGhlIHVzZXIuIE1heSBjb250YWluIGludmFsaWQgdmFsdWVzLlxuICAgKi9cbiAgaW5wdXRWYWx1ZXM6IFBsdWdpblNldHRpbmdzO1xuXG4gIC8qKlxuICAgKiBQZXItcHJvcGVydHkgdmFsaWRhdGlvbiBtZXNzYWdlcy4gRW1wdHkgc3RyaW5nIG1lYW5zIHZhbGlkLlxuICAgKi9cbiAgdmFsaWRhdGlvbk1lc3NhZ2VzOiBSZWNvcmQ8U3RyaW5nS2V5czxQbHVnaW5TZXR0aW5ncz4sIHN0cmluZz47XG59XG5cbi8qKlxuICogUmVhZG9ubHkgdmVyc2lvbiBvZiB7QGxpbmsgUGx1Z2luU2V0dGluZ3N9LlxuICpcbiAqIEB0eXBlUGFyYW0gUGx1Z2luU2V0dGluZ3MgLSBUaGUgdHlwZSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICovXG5leHBvcnQgdHlwZSBSZWFkb25seVBsdWdpblNldHRpbmdzPFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0PiA9IFJlYWRvbmx5RGVlcDxQbHVnaW5TZXR0aW5ncz47XG5cbi8qKlxuICogUmVhZG9ubHkgdmVyc2lvbiBvZiB7QGxpbmsgUGx1Z2luU2V0dGluZ3NTdGF0ZX0gZm9yIHVzZSBpbiBldmVudCBjYWxsYmFja3MgYW5kIHB1YmxpYyBnZXR0ZXJzLlxuICpcbiAqIEB0eXBlUGFyYW0gUGx1Z2luU2V0dGluZ3MgLSBUaGUgdHlwZSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICovXG5leHBvcnQgdHlwZSBSZWFkb25seVBsdWdpblNldHRpbmdzU3RhdGU8UGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+ID0gUmVhZG9ubHlEZWVwPFBsdWdpblNldHRpbmdzU3RhdGU8UGx1Z2luU2V0dGluZ3M+PjtcblxuLyoqXG4gKiBBIHZhbGlkYXRvciBmdW5jdGlvbiBmb3IgYSBzZXR0aW5ncyBwcm9wZXJ0eS5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHBsdWdpbiBzZXR0aW5ncyB0eXBlLlxuICogQHR5cGVQYXJhbSBQcm9wZXJ0eU5hbWUgLSBUaGUgcHJvcGVydHkgbmFtZS5cbiAqL1xuZXhwb3J0IHR5cGUgU2V0dGluZ3NWYWxpZGF0b3I8UGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3QsIFByb3BlcnR5TmFtZSBleHRlbmRzIFN0cmluZ0tleXM8UGx1Z2luU2V0dGluZ3M+ID0gU3RyaW5nS2V5czxQbHVnaW5TZXR0aW5ncz4+ID0gKFxuICB2YWx1ZTogUGx1Z2luU2V0dGluZ3NbUHJvcGVydHlOYW1lXSxcbiAgc2V0dGluZ3M6IFBsdWdpblNldHRpbmdzXG4pID0+IFByb21pc2FibGU8TWF5YmVSZXR1cm48c3RyaW5nPj47XG5cbmludGVyZmFjZSBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VFdmVudE1hcDxQbHVnaW5TZXR0aW5ncyBleHRlbmRzIG9iamVjdD4ge1xuICBsb2FkU2V0dGluZ3M6IFtcbiAgICBsb2FkZWRTdGF0ZTogUmVhZG9ubHlQbHVnaW5TZXR0aW5nc1N0YXRlPFBsdWdpblNldHRpbmdzPixcbiAgICBpc0luaXRpYWxMb2FkOiBib29sZWFuXG4gIF07XG4gIHNhdmVTZXR0aW5nczogW1xuICAgIG5ld1N0YXRlOiBSZWFkb25seVBsdWdpblNldHRpbmdzU3RhdGU8UGx1Z2luU2V0dGluZ3M+LFxuICAgIG9sZFN0YXRlOiBSZWFkb25seVBsdWdpblNldHRpbmdzU3RhdGU8UGx1Z2luU2V0dGluZ3M+LFxuICAgIGNvbnRleHQ6IHVua25vd25cbiAgXTtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlLnNldFByb3BlcnR5SW1wbH0uXG4gKlxuICogQHR5cGVQYXJhbSBQbHVnaW5TZXR0aW5ncyAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gKi9cbmludGVyZmFjZSBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VTZXRQcm9wZXJ0eUltcGxQYXJhbXM8UGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBzZXQuXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0eU5hbWU6IFByb3BlcnR5TmFtZXM8UGx1Z2luU2V0dGluZ3M+O1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlLiBFbXB0eSBvciB1bnNldCBtZWFucyB2YWxpZC5cbiAgICovXG4gIHJlYWRvbmx5IHZhbGlkYXRpb25NZXNzYWdlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdG8gc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWU6IFByb3BlcnR5VmFsdWVzPFBsdWdpblNldHRpbmdzPjtcbn1cblxudHlwZSBQcm9wZXJ0eU5hbWVzPFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0PiA9IFN0cmluZ0tleXM8UGx1Z2luU2V0dGluZ3M+O1xuXG50eXBlIFByb3BlcnR5VmFsdWVzPFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0PiA9IFBsdWdpblNldHRpbmdzW1Byb3BlcnR5TmFtZXM8UGx1Z2luU2V0dGluZ3M+XTtcblxudHlwZSBWYWxpZGF0aW9uUmVzdWx0PFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0PiA9IFBhcnRpYWw8UmVjb3JkPFN0cmluZ0tleXM8UGx1Z2luU2V0dGluZ3M+LCBzdHJpbmc+PjtcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBwbHVnaW4gc2V0dGluZ3MgY29tcG9uZW50cy5cbiAqXG4gKiBNYW5hZ2VzIHNldHRpbmdzIGRhdGEsIHBlcnNpc3RlbmNlLCB2YWxpZGF0aW9uLCBhbmQgZXZlbnRzLlxuICogUGx1Z2luIGF1dGhvcnMgZXh0ZW5kIHRoaXMgY2xhc3MgYW5kIGltcGxlbWVudCB7QGxpbmsgY3JlYXRlRGVmYXVsdFNldHRpbmdzfS5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHBsdWdpbiBzZXR0aW5ncyB0eXBlLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW4tZGV2LXV0aWxzL3JlcXVpcmUtY29tcG9uZW50LXN1ZmZpeCAtLSBOb24tYWJzdHJhY3QgYmFzZSBjbGFzczsgY29uc3VtZXJzIGV4dGVuZCBpdC5cbmV4cG9ydCBjbGFzcyBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2U8UGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+IGV4dGVuZHMgQ29tcG9uZW50RXggaW1wbGVtZW50cyBBc3luY0V2ZW50U291cmNlPFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZUV2ZW50TWFwPFBsdWdpblNldHRpbmdzPj4ge1xuICAvKipcbiAgICogR2V0cyB0aGUgcmVhZG9ubHkgZGVmYXVsdCBzZXR0aW5ncy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGRlZmF1bHQgc2V0dGluZ3MgKGFzIGEgcmVhZG9ubHkgb2JqZWN0KS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZWZhdWx0U2V0dGluZ3M6IFJlYWRvbmx5RGVlcDxQbHVnaW5TZXR0aW5ncz47XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHJlYWRvbmx5IGVmZmVjdGl2ZSBzZXR0aW5ncyAodmFsaWRhdGVkLCB3aXRoIGRlZmF1bHRzIHN1YnN0aXR1dGVkIGZvciBpbnZhbGlkIHZhbHVlcykuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSByZWFkb25seSBlZmZlY3RpdmUgc2V0dGluZ3MuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNldHRpbmdzKCk6IFJlYWRvbmx5RGVlcDxQbHVnaW5TZXR0aW5ncz4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzU3RhdGUuZWZmZWN0aXZlVmFsdWVzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgc2V0dGluZ3Mgc3RhdGUgc25hcHNob3QuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHNldHRpbmdzIHN0YXRlLlxuICAgKi9cbiAgcHVibGljIGdldCBzZXR0aW5nc1N0YXRlKCk6IFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NTdGF0ZTxQbHVnaW5TZXR0aW5ncz4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdGF0ZSBhcyBSZWFkb25seVBsdWdpblNldHRpbmdzU3RhdGU8UGx1Z2luU2V0dGluZ3M+O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRhIGhhbmRsZXIgdXNlZCB0byBsb2FkIGFuZCBzYXZlIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0YUhhbmRsZXI6IERhdGFIYW5kbGVyO1xuICAvKipcbiAgICogVGhlIHBsdWdpbiBldmVudCBzb3VyY2UgdGhlIGNvbXBvbmVudCBsaXN0ZW5zIHRvIGZvciBleHRlcm5hbCBzZXR0aW5ncyBjaGFuZ2VzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBsdWdpbkV2ZW50U291cmNlOiBQbHVnaW5FdmVudFNvdXJjZTtcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBzZXR0aW5ncyBjbGFzcyB1c2VkIHRvIGNvbnN0cnVjdCBzZXR0aW5ncyBpbnN0YW5jZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGx1Z2luU2V0dGluZ3NDbGFzczogQ29uc3RydWN0b3I8UGx1Z2luU2V0dGluZ3MsIFtdPjtcbiAgcHJpdmF0ZSByZWFkb25seSBhc3luY0V2ZW50cyA9IG5ldyBBc3luY0V2ZW50czxQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VFdmVudE1hcDxQbHVnaW5TZXR0aW5ncz4+KCk7XG4gIHByaXZhdGUgY3VycmVudFN0YXRlOiBQbHVnaW5TZXR0aW5nc1N0YXRlPFBsdWdpblNldHRpbmdzPjtcblxuICBwcml2YXRlIGxhc3RTYXZlZFN0YXRlOiBQbHVnaW5TZXR0aW5nc1N0YXRlPFBsdWdpblNldHRpbmdzPjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGxlZ2FjeVNldHRpbmdzQ29udmVydGVyczogKChyZWNvcmQ6IEdlbmVyaWNPYmplY3QpID0+IHZvaWQpW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wZXJ0eU5hbWVzOiBQcm9wZXJ0eU5hbWVzPFBsdWdpblNldHRpbmdzPltdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsaWRhdG9ycyA9IG5ldyBNYXA8UHJvcGVydHlOYW1lczxQbHVnaW5TZXR0aW5ncz4sIFNldHRpbmdzVmFsaWRhdG9yPFBsdWdpblNldHRpbmdzPj4oKTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBwbHVnaW4gc2V0dGluZ3MgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGNvbnN0cnVjdG9yIHBhcmFtZXRlcnMuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1zOiBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VDb25zdHJ1Y3RvclBhcmFtczxQbHVnaW5TZXR0aW5ncz4pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZGF0YUhhbmRsZXIgPSBwYXJhbXMuZGF0YUhhbmRsZXI7XG4gICAgdGhpcy5wbHVnaW5TZXR0aW5nc0NsYXNzID0gcGFyYW1zLnBsdWdpblNldHRpbmdzQ2xhc3M7XG4gICAgdGhpcy5wbHVnaW5FdmVudFNvdXJjZSA9IHBhcmFtcy5wbHVnaW5FdmVudFNvdXJjZTtcblxuICAgIHRoaXMuZGVmYXVsdFNldHRpbmdzID0gbmV3IHRoaXMucGx1Z2luU2V0dGluZ3NDbGFzcygpIGFzIFJlYWRvbmx5RGVlcDxQbHVnaW5TZXR0aW5ncz47XG4gICAgdGhpcy5jdXJyZW50U3RhdGUgPSB0aGlzLmNyZWF0ZURlZmF1bHRTdGF0ZSgpO1xuICAgIHRoaXMubGFzdFNhdmVkU3RhdGUgPSB0aGlzLmNyZWF0ZURlZmF1bHRTdGF0ZSgpO1xuICAgIHRoaXMucHJvcGVydHlOYW1lcyA9IGdldEFsbEtleXModGhpcy5jdXJyZW50U3RhdGUuaW5wdXRWYWx1ZXMpO1xuICAgIHRoaXMucmVnaXN0ZXJWYWxpZGF0b3JzKCk7XG4gICAgdGhpcy5yZWdpc3RlckxlZ2FjeVNldHRpbmdzQ29udmVydGVycygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVkaXRzIHRoZSBwbHVnaW4gc2V0dGluZ3MgYW5kIHNhdmVzIHRoZW0uXG4gICAqXG4gICAqIEBwYXJhbSBzZXR0aW5nc0VkaXRvciAtIFRoZSBlZGl0b3IuXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIGNvbnRleHQuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIHNhdmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGVkaXRBbmRTYXZlKHNldHRpbmdzRWRpdG9yOiAoc2V0dGluZ3M6IFBsdWdpblNldHRpbmdzKSA9PiBQcm9taXNhYmxlPHZvaWQ+LCBjb250ZXh0PzogdW5rbm93bik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZW5zdXJlTG9hZGVkKCk7XG4gICAgYXdhaXQgdGhpcy5lZGl0KHNldHRpbmdzRWRpdG9yKTtcbiAgICBhd2FpdCB0aGlzLnNhdmVUb0ZpbGUoY29udGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlcyB0aGUgc2V0dGluZ3MgYXJlIHNhZmUuXG4gICAqXG4gICAqIEl0IHJ1bnMgdmFsaWRhdGlvbiBmb3IgZWFjaCBwcm9wZXJ0eSBhbmQgc2V0cyB0aGUgZGVmYXVsdCB2YWx1ZSBpZiB0aGUgdmFsaWRhdGlvbiBmYWlscy5cbiAgICpcbiAgICogQHBhcmFtIHNldHRpbmdzIC0gVGhlIHNldHRpbmdzLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNldHRpbmdzIGFyZSBzYWZlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGVuc3VyZVNhZmUoc2V0dGluZ3M6IFBsdWdpblNldHRpbmdzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IHRoaXMudmFsaWRhdGUoc2V0dGluZ3MpO1xuICAgIGNvbnN0IGRlZmF1bHRzID0gdGhpcy5kZWZhdWx0U2V0dGluZ3MgYXMgUGx1Z2luU2V0dGluZ3M7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgb2YgdGhpcy5wcm9wZXJ0eU5hbWVzKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uby1jb21wdXRlZC1wcm9wZXJ0eS1leGlzdGVuY2UtY2hlY2sgLS0gVGhpcyB0ZXN0cyB3aGV0aGVyIGEgdmFsaWRhdGlvbiBtZXNzYWdlIGlzIG5vbi1lbXB0eSwgbm90IHdoZXRoZXIgdGhlIGtleSBleGlzdHMuXG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdFtwcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgIHNldHRpbmdzW3Byb3BlcnR5TmFtZV0gPSBkZWZhdWx0c1twcm9wZXJ0eU5hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgc2FmZSBjb3B5IG9mIHRoZSBzZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHNldHRpbmdzIC0gVGhlIHNldHRpbmdzLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBzYWZlIGNvcHkgb2YgdGhlIHNldHRpbmdzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFNhZmVDb3B5KHNldHRpbmdzOiBQbHVnaW5TZXR0aW5ncyk6IFByb21pc2U8UGx1Z2luU2V0dGluZ3M+IHtcbiAgICBjb25zdCBzYWZlU2V0dGluZ3MgPSBhd2FpdCB0aGlzLmNsb25lU2V0dGluZ3Moc2V0dGluZ3MpO1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2FmZShzYWZlU2V0dGluZ3MpO1xuICAgIHJldHVybiBzYWZlU2V0dGluZ3M7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIHBsdWdpbiBzZXR0aW5ncyBmcm9tIHRoZSBmaWxlLlxuICAgKlxuICAgKiBAcGFyYW0gaXNJbml0aWFsTG9hZCAtIFdoZXRoZXIgdGhlIHNldHRpbmdzIGFyZSBiZWluZyBsb2FkZWQgZm9yIHRoZSBmaXJzdCB0aW1lLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNldHRpbmdzIGFyZSBsb2FkZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbG9hZEZyb21GaWxlKGlzSW5pdGlhbExvYWQ6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmVuc3VyZUxvYWRlZCgpO1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmRhdGFIYW5kbGVyLmxvYWREYXRhKCk7XG4gICAgdGhpcy5sYXN0U2F2ZWRTdGF0ZSA9IHRoaXMuY3JlYXRlRGVmYXVsdFN0YXRlKCk7XG4gICAgdGhpcy5jdXJyZW50U3RhdGUgPSB0aGlzLmNyZWF0ZURlZmF1bHRTdGF0ZSgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQgfHwgZGF0YSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgSW52YWxpZCBzZXR0aW5ncyBmcm9tIGRhdGEuanNvbi4gRXhwZWN0ZWQgT2JqZWN0LCBnb3Q6ICR7dHlwZW9mIGRhdGF9YCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmF3UmVjb3JkID0gZGF0YSBhcyBHZW5lcmljT2JqZWN0O1xuICAgICAgY29uc3QgcGFyc2VkU2V0dGluZ3MgPSBhd2FpdCB0aGlzLnJhd1JlY29yZFRvU2V0dGluZ3MocmF3UmVjb3JkKTtcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCB0aGlzLnZhbGlkYXRlKHBhcnNlZFNldHRpbmdzKTtcblxuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgb2YgdGhpcy5wcm9wZXJ0eU5hbWVzKSB7XG4gICAgICAgIHRoaXMuc2V0UHJvcGVydHlJbXBsKHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHZhbGlkYXRpb25SZXN1bHRbcHJvcGVydHlOYW1lXSxcbiAgICAgICAgICB2YWx1ZTogcGFyc2VkU2V0dGluZ3NbcHJvcGVydHlOYW1lXVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sYXN0U2F2ZWRTdGF0ZSA9IGF3YWl0IHRoaXMuY2xvbmVTdGF0ZSh0aGlzLmN1cnJlbnRTdGF0ZSk7XG5cbiAgICAgIGNvbnN0IG5ld1JlY29yZCA9IGF3YWl0IHRoaXMuc2V0dGluZ3NUb1Jhd1JlY29yZCh0aGlzLmN1cnJlbnRTdGF0ZS5pbnB1dFZhbHVlcyk7XG5cbiAgICAgIGlmICghaXNEZWVwRXF1YWwobmV3UmVjb3JkLCBkYXRhKSkge1xuICAgICAgICBhd2FpdCB0aGlzLnNhdmVUb0ZpbGVJbXBsKCk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHRoaXMuYXN5bmNFdmVudHMudHJpZ2dlckFzeW5jKCdsb2FkU2V0dGluZ3MnLCB0aGlzLmN1cnJlbnRTdGF0ZSBhcyBSZWFkb25seVBsdWdpblNldHRpbmdzU3RhdGU8UGx1Z2luU2V0dGluZ3M+LCBpc0luaXRpYWxMb2FkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFuIGV2ZW50IGxpc3RlbmVyLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIEV2ZW50TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudC5cbiAgICogQHR5cGVQYXJhbSBBcmd1bWVudHMgLSBUaGUgdHlwZXMgb2YgdGhlIGFyZ3VtZW50cyB0aGUgZXZlbnQgY2FsbGJhY2sgYWNjZXB0cy5cbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQuXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayB0byByZW1vdmUuXG4gICAqL1xuICBwdWJsaWMgb2ZmPFxuICAgIEV2ZW50TmFtZSBleHRlbmRzIGtleW9mIFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZUV2ZW50TWFwPFBsdWdpblNldHRpbmdzPixcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtcGFyYW1ldGVycyAtLSBXZSBuZWVkIHRvIHVzZSB0aGUgZHVtbXkgcGFyYW1ldGVyIHRvIGdldCB0eXBlIGluZmVyZW5jZS5cbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBFdmVudE5hbWUgZXh0ZW5kcyBrZXlvZiBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VFdmVudE1hcDxQbHVnaW5TZXR0aW5ncz4gPyBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VFdmVudE1hcDxQbHVnaW5TZXR0aW5ncz5bRXZlbnROYW1lXVxuICAgICAgOiB1bmtub3duW11cbiAgPihuYW1lOiBFdmVudE5hbWUsIGNhbGxiYWNrOiAoLi4uJGFyZ3VtZW50czogQXJndW1lbnRzKSA9PiBQcm9taXNhYmxlPHZvaWQ+KTogdm9pZCB7XG4gICAgdGhpcy5hc3luY0V2ZW50cy5vZmYobmFtZSwgY2FsbGJhY2spO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbiBldmVudCBsaXN0ZW5lciBieSByZWZlcmVuY2UuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudFJlZiAtIFRoZSByZWZlcmVuY2UgdG8gdGhlIGV2ZW50IGxpc3RlbmVyLlxuICAgKi9cbiAgcHVibGljIG9mZnJlZihldmVudFJlZjogQXN5bmNFdmVudFJlZik6IHZvaWQge1xuICAgIHRoaXMuYXN5bmNFdmVudHMub2ZmcmVmKGV2ZW50UmVmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW4gZXZlbnQgbGlzdGVuZXIuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gRXZlbnROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50LlxuICAgKiBAdHlwZVBhcmFtIEFyZ3VtZW50cyAtIFRoZSB0eXBlcyBvZiB0aGUgYXJndW1lbnRzIHRoZSBldmVudCBjYWxsYmFjayBhY2NlcHRzLlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudC5cbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2hlbiB0aGUgZXZlbnQgaXMgdHJpZ2dlcmVkLlxuICAgKiBAcGFyYW0gdGhpc0FyZ3VtZW50IC0gVGhlIGNvbnRleHQgcGFzc2VkIGFzIGB0aGlzYCB0byB0aGUgYGNhbGxiYWNrYC5cbiAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhlIGV2ZW50IGxpc3RlbmVyLlxuICAgKlxuICAgKiBAcmVtYXJrcyBOb3QgcmVmYWN0b3JlZCB0byBwYXJhbWV0ZXItb2JqZWN0IHBhdHRlcm4sIHRvIGtlZXAgdGhlIHBhcml0eSB3aXRoIHtAbGluayBvYnNpZGlhbiNFdmVudHMjb259IChvciBvbmNlLCBjb3JyZXNwb25kaW5nbHkpLlxuICAgKi9cbiAgcHVibGljIG9uPFxuICAgIEV2ZW50TmFtZSBleHRlbmRzIGtleW9mIFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZUV2ZW50TWFwPFBsdWdpblNldHRpbmdzPixcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtcGFyYW1ldGVycyAtLSBXZSBuZWVkIHRvIHVzZSB0aGUgZHVtbXkgcGFyYW1ldGVyIHRvIGdldCB0eXBlIGluZmVyZW5jZS5cbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBFdmVudE5hbWUgZXh0ZW5kcyBrZXlvZiBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VFdmVudE1hcDxQbHVnaW5TZXR0aW5ncz4gPyBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VFdmVudE1hcDxQbHVnaW5TZXR0aW5ncz5bRXZlbnROYW1lXVxuICAgICAgOiB1bmtub3duW11cbiAgPihuYW1lOiBFdmVudE5hbWUsIGNhbGxiYWNrOiAoLi4uJGFyZ3VtZW50czogQXJndW1lbnRzKSA9PiBQcm9taXNhYmxlPHZvaWQ+LCB0aGlzQXJndW1lbnQ/OiB1bmtub3duKTogQXN5bmNFdmVudFJlZiB7XG4gICAgcmV0dXJuIHRoaXMuYXN5bmNFdmVudHMub24obmFtZSwgY2FsbGJhY2ssIHRoaXNBcmd1bWVudCk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlciBhbiBldmVudCwgZXhlY3V0aW5nIGFsbCB0aGUgbGlzdGVuZXJzIGluIG9yZGVyIGV2ZW4gaWYgc29tZSBvZiB0aGVtIHRocm93IGFuIGVycm9yLlxuICAgKlxuICAgKiBBZGQgYW4gZXZlbnQgbGlzdGVuZXIgdGhhdCB3aWxsIGJlIGNhbGxlZCBvbmx5IG9uY2UuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gRXZlbnROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50LlxuICAgKiBAdHlwZVBhcmFtIEFyZ3VtZW50cyAtIFRoZSB0eXBlcyBvZiB0aGUgYXJndW1lbnRzIHRoZSBldmVudCBjYWxsYmFjayBhY2NlcHRzLlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudC5cbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2hlbiB0aGUgZXZlbnQgaXMgdHJpZ2dlcmVkLlxuICAgKiBAcGFyYW0gdGhpc0FyZ3VtZW50IC0gVGhlIGNvbnRleHQgcGFzc2VkIGFzIGB0aGlzYCB0byB0aGUgYGNhbGxiYWNrYC5cbiAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhlIGV2ZW50IGxpc3RlbmVyLlxuICAgKlxuICAgKiBAcmVtYXJrcyBOb3QgcmVmYWN0b3JlZCB0byBwYXJhbWV0ZXItb2JqZWN0IHBhdHRlcm4sIHRvIGtlZXAgdGhlIHBhcml0eSB3aXRoIHtAbGluayBvYnNpZGlhbiNFdmVudHMjb259IChvciBvbmNlLCBjb3JyZXNwb25kaW5nbHkpLlxuICAgKi9cbiAgcHVibGljIG9uY2U8XG4gICAgRXZlbnROYW1lIGV4dGVuZHMga2V5b2YgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlRXZlbnRNYXA8UGx1Z2luU2V0dGluZ3M+LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktdHlwZS1wYXJhbWV0ZXJzIC0tIFdlIG5lZWQgdG8gdXNlIHRoZSBkdW1teSBwYXJhbWV0ZXIgdG8gZ2V0IHR5cGUgaW5mZXJlbmNlLlxuICAgIEFyZ3VtZW50cyBleHRlbmRzIEV2ZW50TmFtZSBleHRlbmRzIGtleW9mIFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZUV2ZW50TWFwPFBsdWdpblNldHRpbmdzPiA/IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZUV2ZW50TWFwPFBsdWdpblNldHRpbmdzPltFdmVudE5hbWVdXG4gICAgICA6IHVua25vd25bXVxuICA+KG5hbWU6IEV2ZW50TmFtZSwgY2FsbGJhY2s6ICguLi4kYXJndW1lbnRzOiBBcmd1bWVudHMpID0+IFByb21pc2FibGU8dm9pZD4sIHRoaXNBcmd1bWVudD86IHVua25vd24pOiBBc3luY0V2ZW50UmVmIHtcbiAgICByZXR1cm4gdGhpcy5hc3luY0V2ZW50cy5vbmNlKG5hbWUsIGNhbGxiYWNrLCB0aGlzQXJndW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBleHRlcm5hbCBzZXR0aW5ncyBjaGFuZ2UuXG4gICAqXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIHJlbG9hZGVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIG9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmVuc3VyZUxvYWRlZCgpO1xuICAgIGF3YWl0IHRoaXMubG9hZEZyb21GaWxlKGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyBzZXR0aW5ncyBmcm9tIGZpbGUgYW5kIHJlZ2lzdGVycyBldmVudCBoYW5kbGVycy5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbmxvYWRBc3luYygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZWdpc3RlckFzeW5jRXZlbnQodGhpcywgdGhpcy5vbignbG9hZFNldHRpbmdzJywgdGhpcy5vbkxvYWRTZXR0aW5ncy5iaW5kKHRoaXMpKSk7XG4gICAgcmVnaXN0ZXJBc3luY0V2ZW50KHRoaXMsIHRoaXMub24oJ3NhdmVTZXR0aW5ncycsIChuZXdTdGF0ZSwgb2xkU3RhdGUsIGNvbnRleHQpID0+IHRoaXMub25TYXZlU2V0dGluZ3MoeyBjb250ZXh0LCBuZXdTdGF0ZSwgb2xkU3RhdGUgfSkpKTtcbiAgICByZWdpc3RlckFzeW5jRXZlbnQodGhpcywgdGhpcy5wbHVnaW5FdmVudFNvdXJjZS5vbignZXh0ZXJuYWxTZXR0aW5nc0NoYW5nZScsIHRoaXMub25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlLmJpbmQodGhpcykpKTtcbiAgICBhd2FpdCB0aGlzLmxvYWRGcm9tRmlsZSh0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBsZWdhY3kgc2V0dGluZ3MgY29udmVydGVyLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIExlZ2FjeVNldHRpbmdzIC0gVGhlIGxlZ2FjeSBzZXR0aW5ncyBjbGFzcy5cbiAgICogQHBhcmFtIGxlZ2FjeVNldHRpbmdzQ2xhc3MgLSBUaGUgbGVnYWN5IHNldHRpbmdzIGNsYXNzLlxuICAgKiBAcGFyYW0gY29udmVydGVyIC0gVGhlIGNvbnZlcnRlci5cbiAgICovXG4gIHB1YmxpYyByZWdpc3RlckxlZ2FjeVNldHRpbmdzQ29udmVydGVyPExlZ2FjeVNldHRpbmdzIGV4dGVuZHMgb2JqZWN0PihcbiAgICBsZWdhY3lTZXR0aW5nc0NsYXNzOiBuZXcgKCkgPT4gTGVnYWN5U2V0dGluZ3MsXG4gICAgY29udmVydGVyOiAobGVnYWN5U2V0dGluZ3M6IFBhcnRpYWw8TGVnYWN5U2V0dGluZ3M+ICYgUGFydGlhbDxQbHVnaW5TZXR0aW5ncz4pID0+IHZvaWRcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgdGhpc1dyYXBwZXIgPSBWYWx1ZVdyYXBwZXIub2YodGhpcyk7XG4gICAgdGhpcy5sZWdhY3lTZXR0aW5nc0NvbnZlcnRlcnMucHVzaChsZWdhY3lTZXR0aW5nc0NvbnZlcnRlcik7XG5cbiAgICBmdW5jdGlvbiBsZWdhY3lTZXR0aW5nc0NvbnZlcnRlcihyZWNvcmQ6IEdlbmVyaWNPYmplY3QpOiB2b2lkIHtcbiAgICAgIGNvbnN0IGxlZ2FjeVNldHRpbmdzS2V5cyA9IG5ldyBTZXQ8c3RyaW5nPihPYmplY3Qua2V5cyhuZXcgbGVnYWN5U2V0dGluZ3NDbGFzcygpKSk7XG4gICAgICBjb25zdCBwbHVnaW5TZXR0aW5nS2V5cyA9IG5ldyBTZXQ8c3RyaW5nPih0aGlzV3JhcHBlci52YWx1ZS5wcm9wZXJ0eU5hbWVzKTtcbiAgICAgIGNvbnN0IGxlZ2FjeVNldHRpbmdzID0gcmVjb3JkIGFzIFBhcnRpYWw8TGVnYWN5U2V0dGluZ3M+ICYgUGFydGlhbDxQbHVnaW5TZXR0aW5ncz47XG4gICAgICBjb252ZXJ0ZXIobGVnYWN5U2V0dGluZ3MpO1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobGVnYWN5U2V0dGluZ3MpKSB7XG4gICAgICAgIGlmIChwbHVnaW5TZXR0aW5nS2V5cy5oYXMoa2V5KSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFsZWdhY3lTZXR0aW5nc0tleXMuaGFzKGtleSkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZHluYW1pYy1kZWxldGUgLS0gV2UgaGF2ZSBubyBvdGhlciB3YXkgdG8gZGVsZXRlIHRoZSBwcm9wZXJ0eS5cbiAgICAgICAgZGVsZXRlIHJlY29yZFtrZXldO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSB2YWxpZGF0b3IgZm9yIGEgcHJvcGVydHkuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gUHJvcGVydHlOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHNldHRpbmdzIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gdmFsaWRhdG9yIC0gVGhlIHZhbGlkYXRvci5cbiAgICovXG4gIHB1YmxpYyByZWdpc3RlclZhbGlkYXRvcjxQcm9wZXJ0eU5hbWUgZXh0ZW5kcyBQcm9wZXJ0eU5hbWVzPFBsdWdpblNldHRpbmdzPj4oXG4gICAgcHJvcGVydHlOYW1lOiBQcm9wZXJ0eU5hbWUsXG4gICAgdmFsaWRhdG9yOiBTZXR0aW5nc1ZhbGlkYXRvcjxQbHVnaW5TZXR0aW5ncywgUHJvcGVydHlOYW1lPlxuICApOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkYXRvcnMuc2V0KHByb3BlcnR5TmFtZSwgdmFsaWRhdG9yIGFzIFNldHRpbmdzVmFsaWRhdG9yPFBsdWdpblNldHRpbmdzPik7XG4gIH1cblxuICAvKipcbiAgICogUmV2YWxpZGF0ZXMgdGhlIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyByZXZhbGlkYXRlKCk6IFByb21pc2U8UmVjb3JkPFByb3BlcnR5TmFtZXM8UGx1Z2luU2V0dGluZ3M+LCBzdHJpbmc+PiB7XG4gICAgdGhpcy5lbnN1cmVMb2FkZWQoKTtcbiAgICBhd2FpdCB0aGlzLmVkaXQobm9vcCk7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFN0YXRlLnZhbGlkYXRpb25NZXNzYWdlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlcyB0aGUgbmV3IHBsdWdpbiBzZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRleHQgLSBUaGUgY29udGV4dCBvZiB0aGUgc2F2ZSB0byBmaWxlIG9wZXJhdGlvbi5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzZXR0aW5ncyBhcmUgc2F2ZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2F2ZVRvRmlsZShjb250ZXh0PzogdW5rbm93bik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZW5zdXJlTG9hZGVkKCk7XG4gICAgaWYgKGlzRGVlcEVxdWFsKHRoaXMubGFzdFNhdmVkU3RhdGUuaW5wdXRWYWx1ZXMsIHRoaXMuY3VycmVudFN0YXRlLmlucHV0VmFsdWVzKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuc2F2ZVRvRmlsZUltcGwoKTtcbiAgICBhd2FpdCB0aGlzLmFzeW5jRXZlbnRzLnRyaWdnZXJBc3luYyhcbiAgICAgICdzYXZlU2V0dGluZ3MnLFxuICAgICAgdGhpcy5jdXJyZW50U3RhdGUgYXMgUmVhZG9ubHlQbHVnaW5TZXR0aW5nc1N0YXRlPFBsdWdpblNldHRpbmdzPixcbiAgICAgIHRoaXMubGFzdFNhdmVkU3RhdGUgYXMgUmVhZG9ubHlQbHVnaW5TZXR0aW5nc1N0YXRlPFBsdWdpblNldHRpbmdzPixcbiAgICAgIGNvbnRleHRcbiAgICApO1xuICAgIHRoaXMubGFzdFNhdmVkU3RhdGUgPSBhd2FpdCB0aGlzLmNsb25lU3RhdGUodGhpcy5jdXJyZW50U3RhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHZhbHVlIG9mIGEgcHJvcGVydHkuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gUHJvcGVydHlOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gc2V0LlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSB2YWxpZGF0aW9uIG1lc3NhZ2UuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2V0UHJvcGVydHk8UHJvcGVydHlOYW1lIGV4dGVuZHMgUHJvcGVydHlOYW1lczxQbHVnaW5TZXR0aW5ncz4+KFxuICAgIHByb3BlcnR5TmFtZTogUHJvcGVydHlOYW1lLFxuICAgIHZhbHVlOiBQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eU5hbWVdXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdGhpcy5lbnN1cmVMb2FkZWQoKTtcbiAgICBhd2FpdCB0aGlzLmVkaXQoKHNldHRpbmdzKSA9PiB7XG4gICAgICBzZXR0aW5nc1twcm9wZXJ0eU5hbWVdID0gdmFsdWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFN0YXRlLnZhbGlkYXRpb25NZXNzYWdlc1twcm9wZXJ0eU5hbWVdO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgc2V0dGluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBzZXR0aW5ncyAtIFRoZSBzZXR0aW5ncy5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgdmFsaWRhdGlvbiByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGUoc2V0dGluZ3M6IFBsdWdpblNldHRpbmdzKTogUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PFBsdWdpblNldHRpbmdzPj4ge1xuICAgIGNvbnN0IHJlc3VsdDogVmFsaWRhdGlvblJlc3VsdDxQbHVnaW5TZXR0aW5ncz4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtwcm9wZXJ0eU5hbWUsIHZhbGlkYXRvcl0gb2YgdGhpcy52YWxpZGF0b3JzKSB7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uTWVzc2FnZSA9IGF3YWl0IHZhbGlkYXRvcihzZXR0aW5nc1twcm9wZXJ0eU5hbWVdLCBzZXR0aW5ncyk7XG4gICAgICBpZiAodmFsaWRhdGlvbk1lc3NhZ2UpIHtcbiAgICAgICAgcmVzdWx0W3Byb3BlcnR5TmFtZV0gPSB2YWxpZGF0aW9uTWVzc2FnZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHRyYW5zZm9ybWVyLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgdHJhbnNmb3JtZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0VHJhbnNmb3JtZXIoKTogVHJhbnNmb3JtZXIge1xuICAgIHJldHVybiBkZWZhdWx0VHJhbnNmb3JtZXI7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBzZXR0aW5ncyByZWNvcmQgaXMgbG9hZGVkIGZyb20gZGlzay5cbiAgICpcbiAgICogQHBhcmFtIHJlY29yZCAtIFRoZSByZWNvcmQuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgb25Mb2FkUmVjb3JkKHJlY29yZDogR2VuZXJpY09iamVjdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGZvciAoY29uc3QgY29udmVydGVyIG9mIHRoaXMubGVnYWN5U2V0dGluZ3NDb252ZXJ0ZXJzKSB7XG4gICAgICBjb252ZXJ0ZXIocmVjb3JkKTtcbiAgICB9XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gc2V0dGluZ3MgYXJlIGxvYWRlZCBvciByZWxvYWRlZC5cbiAgICpcbiAgICogQHBhcmFtIF9sb2FkZWRTdGF0ZSAtIFRoZSBsb2FkZWQgc2V0dGluZ3Mgc3RhdGUuXG4gICAqIEBwYXJhbSBfaXNJbml0aWFsTG9hZCAtIFdoZXRoZXIgdGhpcyBpcyB0aGUgaW5pdGlhbCBsb2FkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIG9uTG9hZFNldHRpbmdzKFxuICAgIF9sb2FkZWRTdGF0ZTogUmVhZG9ubHlQbHVnaW5TZXR0aW5nc1N0YXRlPFBsdWdpblNldHRpbmdzPixcbiAgICBfaXNJbml0aWFsTG9hZDogYm9vbGVhblxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBub29wQXN5bmMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiBzZXR0aW5ncyBhcmUgc2F2ZWQuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycy5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBvblNhdmVTZXR0aW5ncyhwYXJhbXM6IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZU9uU2F2ZVNldHRpbmdzUGFyYW1zPFBsdWdpblNldHRpbmdzPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGNvbnRleHQ6IF9jb250ZXh0LFxuICAgICAgbmV3U3RhdGU6IF9uZXdTdGF0ZSxcbiAgICAgIG9sZFN0YXRlOiBfb2xkU3RhdGVcbiAgICB9ID0gcGFyYW1zO1xuICAgIGF3YWl0IG5vb3BBc3luYygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gc2V0dGluZ3MgcmVjb3JkIGlzIGFib3V0IHRvIGJlIHNhdmVkIHRvIGRpc2suXG4gICAqXG4gICAqIEBwYXJhbSBfcmVjb3JkIC0gVGhlIHJlY29yZC5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBvblNhdmluZ1JlY29yZChfcmVjb3JkOiBHZW5lcmljT2JqZWN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIHRoZSBsZWdhY3kgc2V0dGluZ3MgY29udmVydGVycy5cbiAgICogT3ZlcnJpZGUgdG8gcmVnaXN0ZXIgbGVnYWN5IHNldHRpbmdzIGNvbnZlcnRlcnMuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVnaXN0ZXJMZWdhY3lTZXR0aW5nc0NvbnZlcnRlcnMoKTogdm9pZCB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyB0aGUgdmFsaWRhdG9ycy5cbiAgICogT3ZlcnJpZGUgdG8gcmVnaXN0ZXIgdmFsaWRhdG9ycyBmb3IgcHJvcGVydGllcy5cbiAgICovXG4gIHByb3RlY3RlZCByZWdpc3RlclZhbGlkYXRvcnMoKTogdm9pZCB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjbG9uZVNldHRpbmdzKHNldHRpbmdzOiBQbHVnaW5TZXR0aW5ncyk6IFByb21pc2U8UGx1Z2luU2V0dGluZ3M+IHtcbiAgICBjb25zdCByZWNvcmQgPSBhd2FpdCB0aGlzLnNldHRpbmdzVG9SYXdSZWNvcmQoc2V0dGluZ3MpO1xuICAgIGNvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeShyZWNvcmQpO1xuICAgIGNvbnN0IGNsb25lUmVjb3JkID0gSlNPTi5wYXJzZShqc29uKSBhcyBHZW5lcmljT2JqZWN0O1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnJhd1JlY29yZFRvU2V0dGluZ3MoY2xvbmVSZWNvcmQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjbG9uZVN0YXRlKFxuICAgIHN0YXRlOiBQbHVnaW5TZXR0aW5nc1N0YXRlPFBsdWdpblNldHRpbmdzPlxuICApOiBQcm9taXNlPFBsdWdpblNldHRpbmdzU3RhdGU8UGx1Z2luU2V0dGluZ3M+PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVmZmVjdGl2ZVZhbHVlczogYXdhaXQgdGhpcy5jbG9uZVNldHRpbmdzKHN0YXRlLmVmZmVjdGl2ZVZhbHVlcyksXG4gICAgICBpbnB1dFZhbHVlczogYXdhaXQgdGhpcy5jbG9uZVNldHRpbmdzKHN0YXRlLmlucHV0VmFsdWVzKSxcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlczogeyAuLi5zdGF0ZS52YWxpZGF0aW9uTWVzc2FnZXMgfVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURlZmF1bHRTdGF0ZSgpOiBQbHVnaW5TZXR0aW5nc1N0YXRlPFBsdWdpblNldHRpbmdzPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVmZmVjdGl2ZVZhbHVlczogbmV3IHRoaXMucGx1Z2luU2V0dGluZ3NDbGFzcygpLFxuICAgICAgaW5wdXRWYWx1ZXM6IG5ldyB0aGlzLnBsdWdpblNldHRpbmdzQ2xhc3MoKSxcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlczogY2FzdFRvPFJlY29yZDxQcm9wZXJ0eU5hbWVzPFBsdWdpblNldHRpbmdzPiwgc3RyaW5nPj4oe30pXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZWRpdChzZXR0aW5nc0VkaXRvcjogKHNldHRpbmdzOiBQbHVnaW5TZXR0aW5ncykgPT4gUHJvbWlzYWJsZTx2b2lkPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBzZXR0aW5nc0VkaXRvcih0aGlzLmN1cnJlbnRTdGF0ZS5pbnB1dFZhbHVlcyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCB0aGlzLnZhbGlkYXRlKHRoaXMuY3VycmVudFN0YXRlLmlucHV0VmFsdWVzKTtcbiAgICAgIGZvciAoY29uc3QgcHJvcGVydHlOYW1lIG9mIHRoaXMucHJvcGVydHlOYW1lcykge1xuICAgICAgICBjb25zdCB2YWxpZGF0aW9uTWVzc2FnZSA9IHZhbGlkYXRpb25SZXN1bHRbcHJvcGVydHlOYW1lXSA/PyAnJztcbiAgICAgICAgdGhpcy5jdXJyZW50U3RhdGUudmFsaWRhdGlvbk1lc3NhZ2VzW3Byb3BlcnR5TmFtZV0gPSB2YWxpZGF0aW9uTWVzc2FnZTtcbiAgICAgICAgY29uc3QgZGVmYXVsdHMgPSB0aGlzLmRlZmF1bHRTZXR0aW5ncyBhcyBQbHVnaW5TZXR0aW5ncztcbiAgICAgICAgdGhpcy5jdXJyZW50U3RhdGUuZWZmZWN0aXZlVmFsdWVzW3Byb3BlcnR5TmFtZV0gPSB2YWxpZGF0aW9uTWVzc2FnZVxuICAgICAgICAgID8gZGVmYXVsdHNbcHJvcGVydHlOYW1lXVxuICAgICAgICAgIDogdGhpcy5jdXJyZW50U3RhdGUuaW5wdXRWYWx1ZXNbcHJvcGVydHlOYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzVmFsaWRQcm9wZXJ0eU5hbWUocHJvcGVydHk6IHVua25vd24pOiBwcm9wZXJ0eSBpcyBQcm9wZXJ0eU5hbWVzPFBsdWdpblNldHRpbmdzPiB7XG4gICAgaWYgKHR5cGVvZiBwcm9wZXJ0eSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gKHRoaXMucHJvcGVydHlOYW1lcyBhcyBzdHJpbmdbXSkuaW5jbHVkZXMocHJvcGVydHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByYXdSZWNvcmRUb1NldHRpbmdzKHJhd1JlY29yZDogR2VuZXJpY09iamVjdCk6IFByb21pc2U8UGx1Z2luU2V0dGluZ3M+IHtcbiAgICByYXdSZWNvcmQgPSB0aGlzLmdldFRyYW5zZm9ybWVyKCkudHJhbnNmb3JtT2JqZWN0UmVjdXJzaXZlbHkocmF3UmVjb3JkKTtcbiAgICBhd2FpdCB0aGlzLm9uTG9hZFJlY29yZChyYXdSZWNvcmQpO1xuXG4gICAgY29uc3Qgc2V0dGluZ3MgPSBuZXcgdGhpcy5wbHVnaW5TZXR0aW5nc0NsYXNzKCk7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB0aGlzLmRlZmF1bHRTZXR0aW5ncyBhcyBQbHVnaW5TZXR0aW5ncztcblxuICAgIGZvciAoY29uc3QgW3Byb3BlcnR5TmFtZSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHJhd1JlY29yZCkpIHtcbiAgICAgIGlmICghdGhpcy5pc1ZhbGlkUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgZ2V0TGliRGVidWdnZXIoJ1BsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZTpyYXdSZWNvcmRUb1NldHRpbmdzJykoYFVua25vd24gcHJvcGVydHk6ICR7cHJvcGVydHlOYW1lfWApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gdHlwZW9mIGRlZmF1bHRzW3Byb3BlcnR5TmFtZV0pIHtcbiAgICAgICAgZ2V0TGliRGVidWdnZXIoJ1BsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZTpyYXdSZWNvcmRUb1NldHRpbmdzJykoXG4gICAgICAgICAgJ1Bvc3NpYmxlIGludmFsaWQgdmFsdWUgdHlwZS4gSXQgbWlnaHQgbGVhZCB0byBhbiB1bmV4cGVjdGVkIGJlaGF2aW9yIG9mIHRoZSBwbHVnaW4uIFRoZXJlIGlzIGFsc28gYSBjaGFuY2UgaXQgaXMgYSBmYWxzZS1uZWdhdGl2ZSB3YXJuaW5nLCBhcyB3ZSBhcmUgdW5hYmxlIHRvIGRldGVybWluZSB0aGUgZXhhY3QgdHlwZSBvZiB0aGUgdmFsdWUgaW4gcnVudGltZS4nLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdHNbcHJvcGVydHlOYW1lXSxcbiAgICAgICAgICAgIHByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBzZXR0aW5nc1twcm9wZXJ0eU5hbWVdID0gdmFsdWUgYXMgUHJvcGVydHlWYWx1ZXM8UGx1Z2luU2V0dGluZ3M+O1xuICAgIH1cblxuICAgIHJldHVybiBzZXR0aW5ncztcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2F2ZVRvRmlsZUltcGwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5kYXRhSGFuZGxlci5zYXZlRGF0YShhd2FpdCB0aGlzLnNldHRpbmdzVG9SYXdSZWNvcmQodGhpcy5jdXJyZW50U3RhdGUuaW5wdXRWYWx1ZXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UHJvcGVydHlJbXBsKHBhcmFtczogUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlU2V0UHJvcGVydHlJbXBsUGFyYW1zPFBsdWdpblNldHRpbmdzPik6IHZvaWQge1xuICAgIGNvbnN0IHtcbiAgICAgIHByb3BlcnR5TmFtZSxcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlLFxuICAgICAgdmFsdWVcbiAgICB9ID0gcGFyYW1zO1xuICAgIGNvbnN0IGRlZmF1bHRzID0gdGhpcy5kZWZhdWx0U2V0dGluZ3MgYXMgUGx1Z2luU2V0dGluZ3M7XG4gICAgdGhpcy5jdXJyZW50U3RhdGUuaW5wdXRWYWx1ZXNbcHJvcGVydHlOYW1lXSA9IHZhbHVlO1xuICAgIHRoaXMuY3VycmVudFN0YXRlLnZhbGlkYXRpb25NZXNzYWdlc1twcm9wZXJ0eU5hbWVdID0gdmFsaWRhdGlvbk1lc3NhZ2UgPz8gJyc7XG4gICAgdGhpcy5jdXJyZW50U3RhdGUuZWZmZWN0aXZlVmFsdWVzW3Byb3BlcnR5TmFtZV0gPSB2YWxpZGF0aW9uTWVzc2FnZSA/IGRlZmF1bHRzW3Byb3BlcnR5TmFtZV0gOiB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2V0dGluZ3NUb1Jhd1JlY29yZChzZXR0aW5nczogUGx1Z2luU2V0dGluZ3MpOiBQcm9taXNlPEdlbmVyaWNPYmplY3Q+IHtcbiAgICBjb25zdCByYXdSZWNvcmQ6IEdlbmVyaWNPYmplY3QgPSB7fTtcblxuICAgIGZvciAoY29uc3QgcHJvcGVydHlOYW1lIG9mIHRoaXMucHJvcGVydHlOYW1lcykge1xuICAgICAgcmF3UmVjb3JkW3Byb3BlcnR5TmFtZV0gPSBzZXR0aW5nc1twcm9wZXJ0eU5hbWVdO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMub25TYXZpbmdSZWNvcmQocmF3UmVjb3JkKTtcblxuICAgIHJldHVybiB0aGlzLmdldFRyYW5zZm9ybWVyKCkudHJhbnNmb3JtT2JqZWN0UmVjdXJzaXZlbHkocmF3UmVjb3JkKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBp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
|
|
607
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLXNldHRpbmdzLWNvbXBvbmVudC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIENvbXBvbmVudCB0aGF0IG1hbmFnZXMgcGx1Z2luIHNldHRpbmdzOiBkYXRhLCBwZXJzaXN0ZW5jZSwgdmFsaWRhdGlvbiwgYW5kIGV2ZW50cy5cbiAqXG4gKiBUaGlzIGlzIHRoZSBzaW5nbGUgcHVibGljLWZhY2luZyBzZXR0aW5ncyBBUEkgZm9yIHBsdWdpbiBhdXRob3JzLlxuICogQWxsIHNldHRpbmdzIGxvZ2ljIChsb2FkLCBzYXZlLCB2YWxpZGF0ZSwgdHJhbnNmb3JtLCBjbG9uZSkgaXMgaGFuZGxlZCBkaXJlY3RseVxuICogYnkgdGhpcyBjb21wb25lbnQgXHUyMDE0IG5vIHNlcGFyYXRlIG1hbmFnZXIgY2xhc3MgaXMgbmVlZGVkLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQ29uc3RydWN0b3IsXG4gIFByb21pc2FibGUsXG4gIFJlYWRvbmx5RGVlcFxufSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFzeW5jRXZlbnRSZWYsXG4gIEFzeW5jRXZlbnRTb3VyY2Vcbn0gZnJvbSAnLi4vLi4vYXN5bmMtZXZlbnRzLnRzJztcbmltcG9ydCB0eXBlIHsgVHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi90cmFuc2Zvcm1lcnMvdHJhbnNmb3JtZXIudHMnO1xuaW1wb3J0IHR5cGUgeyBHZW5lcmljT2JqZWN0IH0gZnJvbSAnLi4vLi4vdHlwZS1ndWFyZHMudHMnO1xuaW1wb3J0IHR5cGUge1xuICBNYXliZVJldHVybixcbiAgU3RyaW5nS2V5c1xufSBmcm9tICcuLi8uLi90eXBlLnRzJztcbmltcG9ydCB0eXBlIHsgRGF0YUhhbmRsZXIgfSBmcm9tICcuLi9kYXRhLWhhbmRsZXIudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5FdmVudFNvdXJjZSB9IGZyb20gJy4uL3BsdWdpbi9wbHVnaW4tZXZlbnQtc291cmNlLnRzJztcblxuaW1wb3J0IHsgQXN5bmNFdmVudHMgfSBmcm9tICcuLi8uLi9hc3luYy1ldmVudHMudHMnO1xuaW1wb3J0IHsgZ2V0TGliRGVidWdnZXIgfSBmcm9tICcuLi8uLi9kZWJ1Zy50cyc7XG5pbXBvcnQge1xuICBub29wLFxuICBub29wQXN5bmNcbn0gZnJvbSAnLi4vLi4vZnVuY3Rpb24udHMnO1xuaW1wb3J0IHtcbiAgY2FzdFRvLFxuICBnZXRBbGxLZXlzLFxuICBpc0RlZXBFcXVhbFxufSBmcm9tICcuLi8uLi9vYmplY3QtdXRpbHMudHMnO1xuaW1wb3J0IHsgRGF0ZVRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vLi4vdHJhbnNmb3JtZXJzL2RhdGUtdHJhbnNmb3JtZXIudHMnO1xuaW1wb3J0IHsgRHVyYXRpb25UcmFuc2Zvcm1lciB9IGZyb20gJy4uLy4uL3RyYW5zZm9ybWVycy9kdXJhdGlvbi10cmFuc2Zvcm1lci50cyc7XG5pbXBvcnQgeyBHcm91cFRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vLi4vdHJhbnNmb3JtZXJzL2dyb3VwLXRyYW5zZm9ybWVyLnRzJztcbmltcG9ydCB7IE1hcFRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vLi4vdHJhbnNmb3JtZXJzL21hcC10cmFuc2Zvcm1lci50cyc7XG5pbXBvcnQgeyBTZXRUcmFuc2Zvcm1lciB9IGZyb20gJy4uLy4uL3RyYW5zZm9ybWVycy9zZXQtdHJhbnNmb3JtZXIudHMnO1xuaW1wb3J0IHsgU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vLi4vdHJhbnNmb3JtZXJzL3NraXAtcHJpdmF0ZS1wcm9wZXJ0eS10cmFuc2Zvcm1lci50cyc7XG5pbXBvcnQgeyBUd29XYXlNYXBUcmFuc2Zvcm1lciB9IGZyb20gJy4uLy4uL3RyYW5zZm9ybWVycy90d28td2F5LW1hcC10cmFuc2Zvcm1lci50cyc7XG5pbXBvcnQgeyBWYWx1ZVdyYXBwZXIgfSBmcm9tICcuLi8uLi92YWx1ZS13cmFwcGVyLnRzJztcbmltcG9ydCB7IHJlZ2lzdGVyQXN5bmNFdmVudCB9IGZyb20gJy4vYXN5bmMtZXZlbnRzLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRFeCB9IGZyb20gJy4vY29tcG9uZW50LWV4LnRzJztcblxuY29uc3QgZGVmYXVsdFRyYW5zZm9ybWVyID0gbmV3IEdyb3VwVHJhbnNmb3JtZXIoW1xuICBuZXcgU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyKCksXG4gIG5ldyBEYXRlVHJhbnNmb3JtZXIoKSxcbiAgbmV3IER1cmF0aW9uVHJhbnNmb3JtZXIoKSxcbiAgbmV3IE1hcFRyYW5zZm9ybWVyKCksXG4gIG5ldyBTZXRUcmFuc2Zvcm1lcigpLFxuICBuZXcgVHdvV2F5TWFwVHJhbnNmb3JtZXIoKVxuXSk7XG5cbi8qKlxuICogQ29uc3RydWN0b3IgcGFyYW1ldGVycyBmb3Ige0BsaW5rIFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZX0uXG4gKlxuICogQHR5cGVQYXJhbSBQbHVnaW5TZXR0aW5ncyAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlQ29uc3RydWN0b3JQYXJhbXM8UGx1Z2luU2V0dGluZ3M+IHtcbiAgLyoqXG4gICAqIFRoZSBkYXRhIGhhbmRsZXIgZm9yIHRoZSBwbHVnaW4uXG4gICAqL1xuICByZWFkb25seSBkYXRhSGFuZGxlcjogRGF0YUhhbmRsZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gZXZlbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luRXZlbnRTb3VyY2U6IFBsdWdpbkV2ZW50U291cmNlO1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luIHNldHRpbmdzIGNsYXNzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luU2V0dGluZ3NDbGFzczogQ29uc3RydWN0b3I8UGx1Z2luU2V0dGluZ3MsIFtdPjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlLm9uU2F2ZVNldHRpbmdzfS5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VPblNhdmVTZXR0aW5nc1BhcmFtczxQbHVnaW5TZXR0aW5ncyBleHRlbmRzIG9iamVjdD4ge1xuICAvKipcbiAgICogVGhlIHNhdmUgY29udGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ6IHVua25vd247XG5cbiAgLyoqXG4gICAqIFRoZSBuZXcgc2V0dGluZ3Mgc3RhdGUuXG4gICAqL1xuICByZWFkb25seSBuZXdTdGF0ZTogUmVhZG9ubHlQbHVnaW5TZXR0aW5nc1N0YXRlPFBsdWdpblNldHRpbmdzPjtcblxuICAvKipcbiAgICogVGhlIG9sZCBzZXR0aW5ncyBzdGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IG9sZFN0YXRlOiBSZWFkb25seVBsdWdpblNldHRpbmdzU3RhdGU8UGx1Z2luU2V0dGluZ3M+O1xufVxuXG4vKipcbiAqIEEgc25hcHNob3Qgb2YgcGx1Z2luIHNldHRpbmdzIHN0YXRlLCBpbmNsdWRpbmcgcmF3IGlucHV0IHZhbHVlcywgZWZmZWN0aXZlICh2YWxpZGF0ZWQpIHZhbHVlcyxcbiAqIGFuZCBwZXItcHJvcGVydHkgdmFsaWRhdGlvbiBtZXNzYWdlcy5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgb2YgdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5TZXR0aW5nc1N0YXRlPFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0PiB7XG4gIC8qKlxuICAgKiBUaGUgZWZmZWN0aXZlIHNldHRpbmdzIHZhbHVlcyB1c2VkIGJ5IHRoZSBwbHVnaW4uIEludmFsaWQgcHJvcGVydGllcyBhcmUgcmVwbGFjZWQgd2l0aCBkZWZhdWx0cy5cbiAgICovXG4gIGVmZmVjdGl2ZVZhbHVlczogUGx1Z2luU2V0dGluZ3M7XG5cbiAgLyoqXG4gICAqIFRoZSByYXcgaW5wdXQgdmFsdWVzIGFzIGVudGVyZWQgYnkgdGhlIHVzZXIuIE1heSBjb250YWluIGludmFsaWQgdmFsdWVzLlxuICAgKi9cbiAgaW5wdXRWYWx1ZXM6IFBsdWdpblNldHRpbmdzO1xuXG4gIC8qKlxuICAgKiBQZXItcHJvcGVydHkgdmFsaWRhdGlvbiBtZXNzYWdlcy4gRW1wdHkgc3RyaW5nIG1lYW5zIHZhbGlkLlxuICAgKi9cbiAgdmFsaWRhdGlvbk1lc3NhZ2VzOiBSZWNvcmQ8U3RyaW5nS2V5czxQbHVnaW5TZXR0aW5ncz4sIHN0cmluZz47XG59XG5cbi8qKlxuICogUmVhZG9ubHkgdmVyc2lvbiBvZiB7QGxpbmsgUGx1Z2luU2V0dGluZ3N9LlxuICpcbiAqIEB0eXBlUGFyYW0gUGx1Z2luU2V0dGluZ3MgLSBUaGUgdHlwZSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICovXG5leHBvcnQgdHlwZSBSZWFkb25seVBsdWdpblNldHRpbmdzPFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0PiA9IFJlYWRvbmx5RGVlcDxQbHVnaW5TZXR0aW5ncz47XG5cbi8qKlxuICogUmVhZG9ubHkgdmVyc2lvbiBvZiB7QGxpbmsgUGx1Z2luU2V0dGluZ3NTdGF0ZX0gZm9yIHVzZSBpbiBldmVudCBjYWxsYmFja3MgYW5kIHB1YmxpYyBnZXR0ZXJzLlxuICpcbiAqIEB0eXBlUGFyYW0gUGx1Z2luU2V0dGluZ3MgLSBUaGUgdHlwZSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICovXG5leHBvcnQgdHlwZSBSZWFkb25seVBsdWdpblNldHRpbmdzU3RhdGU8UGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+ID0gUmVhZG9ubHlEZWVwPFBsdWdpblNldHRpbmdzU3RhdGU8UGx1Z2luU2V0dGluZ3M+PjtcblxuLyoqXG4gKiBBIHZhbGlkYXRvciBmdW5jdGlvbiBmb3IgYSBzZXR0aW5ncyBwcm9wZXJ0eS5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHBsdWdpbiBzZXR0aW5ncyB0eXBlLlxuICogQHR5cGVQYXJhbSBQcm9wZXJ0eU5hbWUgLSBUaGUgcHJvcGVydHkgbmFtZS5cbiAqL1xuZXhwb3J0IHR5cGUgU2V0dGluZ3NWYWxpZGF0b3I8UGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3QsIFByb3BlcnR5TmFtZSBleHRlbmRzIFN0cmluZ0tleXM8UGx1Z2luU2V0dGluZ3M+ID0gU3RyaW5nS2V5czxQbHVnaW5TZXR0aW5ncz4+ID0gKFxuICB2YWx1ZTogUGx1Z2luU2V0dGluZ3NbUHJvcGVydHlOYW1lXSxcbiAgc2V0dGluZ3M6IFBsdWdpblNldHRpbmdzXG4pID0+IFByb21pc2FibGU8TWF5YmVSZXR1cm48c3RyaW5nPj47XG5cbmludGVyZmFjZSBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VFdmVudE1hcDxQbHVnaW5TZXR0aW5ncyBleHRlbmRzIG9iamVjdD4ge1xuICBsb2FkU2V0dGluZ3M6IFtcbiAgICBsb2FkZWRTdGF0ZTogUmVhZG9ubHlQbHVnaW5TZXR0aW5nc1N0YXRlPFBsdWdpblNldHRpbmdzPixcbiAgICBpc0luaXRpYWxMb2FkOiBib29sZWFuXG4gIF07XG4gIHNhdmVTZXR0aW5nczogW1xuICAgIG5ld1N0YXRlOiBSZWFkb25seVBsdWdpblNldHRpbmdzU3RhdGU8UGx1Z2luU2V0dGluZ3M+LFxuICAgIG9sZFN0YXRlOiBSZWFkb25seVBsdWdpblNldHRpbmdzU3RhdGU8UGx1Z2luU2V0dGluZ3M+LFxuICAgIGNvbnRleHQ6IHVua25vd25cbiAgXTtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlLnNldFByb3BlcnR5SW1wbH0uXG4gKlxuICogQHR5cGVQYXJhbSBQbHVnaW5TZXR0aW5ncyAtIFRoZSB0eXBlIG9mIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gKi9cbmludGVyZmFjZSBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VTZXRQcm9wZXJ0eUltcGxQYXJhbXM8UGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBzZXQuXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0eU5hbWU6IFByb3BlcnR5TmFtZXM8UGx1Z2luU2V0dGluZ3M+O1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsaWRhdGlvbiBtZXNzYWdlLiBFbXB0eSBvciB1bnNldCBtZWFucyB2YWxpZC5cbiAgICovXG4gIHJlYWRvbmx5IHZhbGlkYXRpb25NZXNzYWdlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgdG8gc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWU6IFByb3BlcnR5VmFsdWVzPFBsdWdpblNldHRpbmdzPjtcbn1cblxudHlwZSBQcm9wZXJ0eU5hbWVzPFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0PiA9IFN0cmluZ0tleXM8UGx1Z2luU2V0dGluZ3M+O1xuXG50eXBlIFByb3BlcnR5VmFsdWVzPFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0PiA9IFBsdWdpblNldHRpbmdzW1Byb3BlcnR5TmFtZXM8UGx1Z2luU2V0dGluZ3M+XTtcblxudHlwZSBWYWxpZGF0aW9uUmVzdWx0PFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0PiA9IFBhcnRpYWw8UmVjb3JkPFN0cmluZ0tleXM8UGx1Z2luU2V0dGluZ3M+LCBzdHJpbmc+PjtcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBwbHVnaW4gc2V0dGluZ3MgY29tcG9uZW50cy5cbiAqXG4gKiBNYW5hZ2VzIHNldHRpbmdzIGRhdGEsIHBlcnNpc3RlbmNlLCB2YWxpZGF0aW9uLCBhbmQgZXZlbnRzLlxuICogUGx1Z2luIGF1dGhvcnMgZXh0ZW5kIHRoaXMgY2xhc3MgYW5kIGltcGxlbWVudCB7QGxpbmsgY3JlYXRlRGVmYXVsdFNldHRpbmdzfS5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHBsdWdpbiBzZXR0aW5ncyB0eXBlLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgb2JzaWRpYW4tZGV2LXV0aWxzL3JlcXVpcmUtY29tcG9uZW50LXN1ZmZpeCAtLSBOb24tYWJzdHJhY3QgYmFzZSBjbGFzczsgY29uc3VtZXJzIGV4dGVuZCBpdC5cbmV4cG9ydCBjbGFzcyBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2U8UGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+IGV4dGVuZHMgQ29tcG9uZW50RXggaW1wbGVtZW50cyBBc3luY0V2ZW50U291cmNlPFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZUV2ZW50TWFwPFBsdWdpblNldHRpbmdzPj4ge1xuICAvKipcbiAgICogR2V0cyB0aGUgcmVhZG9ubHkgZGVmYXVsdCBzZXR0aW5ncy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGRlZmF1bHQgc2V0dGluZ3MgKGFzIGEgcmVhZG9ubHkgb2JqZWN0KS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZWZhdWx0U2V0dGluZ3M6IFJlYWRvbmx5RGVlcDxQbHVnaW5TZXR0aW5ncz47XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHJlYWRvbmx5IGVmZmVjdGl2ZSBzZXR0aW5ncyAodmFsaWRhdGVkLCB3aXRoIGRlZmF1bHRzIHN1YnN0aXR1dGVkIGZvciBpbnZhbGlkIHZhbHVlcykuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSByZWFkb25seSBlZmZlY3RpdmUgc2V0dGluZ3MuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNldHRpbmdzKCk6IFJlYWRvbmx5RGVlcDxQbHVnaW5TZXR0aW5ncz4ge1xuICAgIHJldHVybiB0aGlzLnNldHRpbmdzU3RhdGUuZWZmZWN0aXZlVmFsdWVzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgc2V0dGluZ3Mgc3RhdGUgc25hcHNob3QuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHNldHRpbmdzIHN0YXRlLlxuICAgKi9cbiAgcHVibGljIGdldCBzZXR0aW5nc1N0YXRlKCk6IFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NTdGF0ZTxQbHVnaW5TZXR0aW5ncz4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdGF0ZSBhcyBSZWFkb25seVBsdWdpblNldHRpbmdzU3RhdGU8UGx1Z2luU2V0dGluZ3M+O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRhIGhhbmRsZXIgdXNlZCB0byBsb2FkIGFuZCBzYXZlIHRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGF0YUhhbmRsZXI6IERhdGFIYW5kbGVyO1xuICAvKipcbiAgICogVGhlIHBsdWdpbiBldmVudCBzb3VyY2UgdGhlIGNvbXBvbmVudCBsaXN0ZW5zIHRvIGZvciBleHRlcm5hbCBzZXR0aW5ncyBjaGFuZ2VzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBsdWdpbkV2ZW50U291cmNlOiBQbHVnaW5FdmVudFNvdXJjZTtcblxuICAvKipcbiAgICogVGhlIHBsdWdpbiBzZXR0aW5ncyBjbGFzcyB1c2VkIHRvIGNvbnN0cnVjdCBzZXR0aW5ncyBpbnN0YW5jZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGx1Z2luU2V0dGluZ3NDbGFzczogQ29uc3RydWN0b3I8UGx1Z2luU2V0dGluZ3MsIFtdPjtcbiAgcHJpdmF0ZSByZWFkb25seSBhc3luY0V2ZW50cyA9IG5ldyBBc3luY0V2ZW50czxQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VFdmVudE1hcDxQbHVnaW5TZXR0aW5ncz4+KCk7XG4gIHByaXZhdGUgY3VycmVudFN0YXRlOiBQbHVnaW5TZXR0aW5nc1N0YXRlPFBsdWdpblNldHRpbmdzPjtcblxuICBwcml2YXRlIGxhc3RTYXZlZFN0YXRlOiBQbHVnaW5TZXR0aW5nc1N0YXRlPFBsdWdpblNldHRpbmdzPjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGxlZ2FjeVNldHRpbmdzQ29udmVydGVyczogKChyZWNvcmQ6IEdlbmVyaWNPYmplY3QpID0+IHZvaWQpW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wZXJ0eU5hbWVzOiBQcm9wZXJ0eU5hbWVzPFBsdWdpblNldHRpbmdzPltdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsaWRhdG9ycyA9IG5ldyBNYXA8UHJvcGVydHlOYW1lczxQbHVnaW5TZXR0aW5ncz4sIFNldHRpbmdzVmFsaWRhdG9yPFBsdWdpblNldHRpbmdzPj4oKTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBwbHVnaW4gc2V0dGluZ3MgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGNvbnN0cnVjdG9yIHBhcmFtZXRlcnMuXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1zOiBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VDb25zdHJ1Y3RvclBhcmFtczxQbHVnaW5TZXR0aW5ncz4pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZGF0YUhhbmRsZXIgPSBwYXJhbXMuZGF0YUhhbmRsZXI7XG4gICAgdGhpcy5wbHVnaW5TZXR0aW5nc0NsYXNzID0gcGFyYW1zLnBsdWdpblNldHRpbmdzQ2xhc3M7XG4gICAgdGhpcy5wbHVnaW5FdmVudFNvdXJjZSA9IHBhcmFtcy5wbHVnaW5FdmVudFNvdXJjZTtcblxuICAgIHRoaXMuZGVmYXVsdFNldHRpbmdzID0gbmV3IHRoaXMucGx1Z2luU2V0dGluZ3NDbGFzcygpIGFzIFJlYWRvbmx5RGVlcDxQbHVnaW5TZXR0aW5ncz47XG4gICAgdGhpcy5jdXJyZW50U3RhdGUgPSB0aGlzLmNyZWF0ZURlZmF1bHRTdGF0ZSgpO1xuICAgIHRoaXMubGFzdFNhdmVkU3RhdGUgPSB0aGlzLmNyZWF0ZURlZmF1bHRTdGF0ZSgpO1xuICAgIHRoaXMucHJvcGVydHlOYW1lcyA9IGdldEFsbEtleXModGhpcy5jdXJyZW50U3RhdGUuaW5wdXRWYWx1ZXMpO1xuICAgIHRoaXMucmVnaXN0ZXJWYWxpZGF0b3JzKCk7XG4gICAgdGhpcy5yZWdpc3RlckxlZ2FjeVNldHRpbmdzQ29udmVydGVycygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVkaXRzIHRoZSBwbHVnaW4gc2V0dGluZ3MgYW5kIHNhdmVzIHRoZW0uXG4gICAqXG4gICAqIEBwYXJhbSBzZXR0aW5nc0VkaXRvciAtIFRoZSBlZGl0b3IuXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIGNvbnRleHQuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIHNhdmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGVkaXRBbmRTYXZlKHNldHRpbmdzRWRpdG9yOiAoc2V0dGluZ3M6IFBsdWdpblNldHRpbmdzKSA9PiBQcm9taXNhYmxlPHZvaWQ+LCBjb250ZXh0PzogdW5rbm93bik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZW5zdXJlTG9hZGVkKCk7XG4gICAgYXdhaXQgdGhpcy5lZGl0KHNldHRpbmdzRWRpdG9yKTtcbiAgICBhd2FpdCB0aGlzLnNhdmVUb0ZpbGUoY29udGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlcyB0aGUgc2V0dGluZ3MgYXJlIHNhZmUuXG4gICAqXG4gICAqIEl0IHJ1bnMgdmFsaWRhdGlvbiBmb3IgZWFjaCBwcm9wZXJ0eSBhbmQgc2V0cyB0aGUgZGVmYXVsdCB2YWx1ZSBpZiB0aGUgdmFsaWRhdGlvbiBmYWlscy5cbiAgICpcbiAgICogQHBhcmFtIHNldHRpbmdzIC0gVGhlIHNldHRpbmdzLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNldHRpbmdzIGFyZSBzYWZlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGVuc3VyZVNhZmUoc2V0dGluZ3M6IFBsdWdpblNldHRpbmdzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IHRoaXMudmFsaWRhdGUoc2V0dGluZ3MpO1xuICAgIGNvbnN0IGRlZmF1bHRzID0gdGhpcy5kZWZhdWx0U2V0dGluZ3MgYXMgUGx1Z2luU2V0dGluZ3M7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgb2YgdGhpcy5wcm9wZXJ0eU5hbWVzKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uby1jb21wdXRlZC1wcm9wZXJ0eS1leGlzdGVuY2UtY2hlY2sgLS0gVGhpcyB0ZXN0cyB3aGV0aGVyIGEgdmFsaWRhdGlvbiBtZXNzYWdlIGlzIG5vbi1lbXB0eSwgbm90IHdoZXRoZXIgdGhlIGtleSBleGlzdHMuXG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdFtwcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgIHNldHRpbmdzW3Byb3BlcnR5TmFtZV0gPSBkZWZhdWx0c1twcm9wZXJ0eU5hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgc2FmZSBjb3B5IG9mIHRoZSBzZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHNldHRpbmdzIC0gVGhlIHNldHRpbmdzLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBzYWZlIGNvcHkgb2YgdGhlIHNldHRpbmdzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFNhZmVDb3B5KHNldHRpbmdzOiBQbHVnaW5TZXR0aW5ncyk6IFByb21pc2U8UGx1Z2luU2V0dGluZ3M+IHtcbiAgICBjb25zdCBzYWZlU2V0dGluZ3MgPSBhd2FpdCB0aGlzLmNsb25lU2V0dGluZ3Moc2V0dGluZ3MpO1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlU2FmZShzYWZlU2V0dGluZ3MpO1xuICAgIHJldHVybiBzYWZlU2V0dGluZ3M7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIHBsdWdpbiBzZXR0aW5ncyBmcm9tIHRoZSBmaWxlLlxuICAgKlxuICAgKiBAcGFyYW0gaXNJbml0aWFsTG9hZCAtIFdoZXRoZXIgdGhlIHNldHRpbmdzIGFyZSBiZWluZyBsb2FkZWQgZm9yIHRoZSBmaXJzdCB0aW1lLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNldHRpbmdzIGFyZSBsb2FkZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbG9hZEZyb21GaWxlKGlzSW5pdGlhbExvYWQ6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmVuc3VyZUxvYWRlZCgpO1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmRhdGFIYW5kbGVyLmxvYWREYXRhKCk7XG4gICAgdGhpcy5sYXN0U2F2ZWRTdGF0ZSA9IHRoaXMuY3JlYXRlRGVmYXVsdFN0YXRlKCk7XG4gICAgdGhpcy5jdXJyZW50U3RhdGUgPSB0aGlzLmNyZWF0ZURlZmF1bHRTdGF0ZSgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQgfHwgZGF0YSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgSW52YWxpZCBzZXR0aW5ncyBmcm9tIGRhdGEuanNvbi4gRXhwZWN0ZWQgT2JqZWN0LCBnb3Q6ICR7dHlwZW9mIGRhdGF9YCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmF3UmVjb3JkID0gZGF0YSBhcyBHZW5lcmljT2JqZWN0O1xuICAgICAgY29uc3QgcGFyc2VkU2V0dGluZ3MgPSBhd2FpdCB0aGlzLnJhd1JlY29yZFRvU2V0dGluZ3MocmF3UmVjb3JkKTtcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCB0aGlzLnZhbGlkYXRlKHBhcnNlZFNldHRpbmdzKTtcblxuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgb2YgdGhpcy5wcm9wZXJ0eU5hbWVzKSB7XG4gICAgICAgIHRoaXMuc2V0UHJvcGVydHlJbXBsKHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U6IHZhbGlkYXRpb25SZXN1bHRbcHJvcGVydHlOYW1lXSxcbiAgICAgICAgICB2YWx1ZTogcGFyc2VkU2V0dGluZ3NbcHJvcGVydHlOYW1lXVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sYXN0U2F2ZWRTdGF0ZSA9IGF3YWl0IHRoaXMuY2xvbmVTdGF0ZSh0aGlzLmN1cnJlbnRTdGF0ZSk7XG5cbiAgICAgIC8vIEEgY29tcG9uZW50IHRoYXQga25vd3Mgbm8gcHJvcGVydHkgbmFtZXMgY2Fubm90IG5vcm1hbGl6ZSBhbnl0aGluZzogYHNldHRpbmdzVG9SYXdSZWNvcmQoKWAgY2FuXG4gICAgICAvLyBPbmx5IGV2ZXIgcmV0dXJuIGB7fWAsIHNvIHRoZSBzYXZlIGJlbG93IHdvdWxkIG5vdCByZXdyaXRlIGBkYXRhLmpzb25gIC0tIGl0IHdvdWxkIGVtcHR5IGl0LlxuICAgICAgLy8gYFBsdWdpbkJhc2VgIGFkZHMgYSBwbGFjZWhvbGRlciBgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlPG9iamVjdD5gIGJlZm9yZSBgb25sb2FkSW1wbCgpYCBzd2Fwc1xuICAgICAgLy8gSW4gdGhlIHBsdWdpbidzIG93biBjb21wb25lbnQsIGFuZCB0aGF0IHBsYWNlaG9sZGVyIGlzIGV4YWN0bHkgdGhpcyBjYXNlOiBpdCByZWFkIGV2ZXJ5IHJlYWxcbiAgICAgIC8vIFNldHRpbmcsIGtlcHQgbm9uZSBvZiB0aGVtLCBhbmQgc2F2ZWQgdGhlIGRpZmZlcmVuY2UgYmFjayBvdmVyIHRoZSBmaWxlLlxuICAgICAgaWYgKHRoaXMucHJvcGVydHlOYW1lcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBuZXdSZWNvcmQgPSBhd2FpdCB0aGlzLnNldHRpbmdzVG9SYXdSZWNvcmQodGhpcy5jdXJyZW50U3RhdGUuaW5wdXRWYWx1ZXMpO1xuXG4gICAgICBpZiAoIWlzRGVlcEVxdWFsKG5ld1JlY29yZCwgZGF0YSkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlVG9GaWxlSW1wbCgpO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCB0aGlzLmFzeW5jRXZlbnRzLnRyaWdnZXJBc3luYygnbG9hZFNldHRpbmdzJywgdGhpcy5jdXJyZW50U3RhdGUgYXMgUmVhZG9ubHlQbHVnaW5TZXR0aW5nc1N0YXRlPFBsdWdpblNldHRpbmdzPiwgaXNJbml0aWFsTG9hZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbiBldmVudCBsaXN0ZW5lci5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBFdmVudE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQuXG4gICAqIEB0eXBlUGFyYW0gQXJndW1lbnRzIC0gVGhlIHR5cGVzIG9mIHRoZSBhcmd1bWVudHMgdGhlIGV2ZW50IGNhbGxiYWNrIGFjY2VwdHMuXG4gICAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50LlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2sgdG8gcmVtb3ZlLlxuICAgKi9cbiAgcHVibGljIG9mZjxcbiAgICBFdmVudE5hbWUgZXh0ZW5kcyBrZXlvZiBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VFdmVudE1hcDxQbHVnaW5TZXR0aW5ncz4sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS10eXBlLXBhcmFtZXRlcnMgLS0gV2UgbmVlZCB0byB1c2UgdGhlIGR1bW15IHBhcmFtZXRlciB0byBnZXQgdHlwZSBpbmZlcmVuY2UuXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgRXZlbnROYW1lIGV4dGVuZHMga2V5b2YgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlRXZlbnRNYXA8UGx1Z2luU2V0dGluZ3M+ID8gUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlRXZlbnRNYXA8UGx1Z2luU2V0dGluZ3M+W0V2ZW50TmFtZV1cbiAgICAgIDogdW5rbm93bltdXG4gID4obmFtZTogRXZlbnROYW1lLCBjYWxsYmFjazogKC4uLiRhcmd1bWVudHM6IEFyZ3VtZW50cykgPT4gUHJvbWlzYWJsZTx2b2lkPik6IHZvaWQge1xuICAgIHRoaXMuYXN5bmNFdmVudHMub2ZmKG5hbWUsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYW4gZXZlbnQgbGlzdGVuZXIgYnkgcmVmZXJlbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnRSZWYgLSBUaGUgcmVmZXJlbmNlIHRvIHRoZSBldmVudCBsaXN0ZW5lci5cbiAgICovXG4gIHB1YmxpYyBvZmZyZWYoZXZlbnRSZWY6IEFzeW5jRXZlbnRSZWYpOiB2b2lkIHtcbiAgICB0aGlzLmFzeW5jRXZlbnRzLm9mZnJlZihldmVudFJlZik7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFuIGV2ZW50IGxpc3RlbmVyLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIEV2ZW50TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudC5cbiAgICogQHR5cGVQYXJhbSBBcmd1bWVudHMgLSBUaGUgdHlwZXMgb2YgdGhlIGFyZ3VtZW50cyB0aGUgZXZlbnQgY2FsbGJhY2sgYWNjZXB0cy5cbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQuXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIGV2ZW50IGlzIHRyaWdnZXJlZC5cbiAgICogQHBhcmFtIHRoaXNBcmd1bWVudCAtIFRoZSBjb250ZXh0IHBhc3NlZCBhcyBgdGhpc2AgdG8gdGhlIGBjYWxsYmFja2AuXG4gICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoZSBldmVudCBsaXN0ZW5lci5cbiAgICpcbiAgICogQHJlbWFya3MgTm90IHJlZmFjdG9yZWQgdG8gcGFyYW1ldGVyLW9iamVjdCBwYXR0ZXJuLCB0byBrZWVwIHRoZSBwYXJpdHkgd2l0aCB7QGxpbmsgb2JzaWRpYW4jRXZlbnRzI29ufSAob3Igb25jZSwgY29ycmVzcG9uZGluZ2x5KS5cbiAgICovXG4gIHB1YmxpYyBvbjxcbiAgICBFdmVudE5hbWUgZXh0ZW5kcyBrZXlvZiBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VFdmVudE1hcDxQbHVnaW5TZXR0aW5ncz4sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS10eXBlLXBhcmFtZXRlcnMgLS0gV2UgbmVlZCB0byB1c2UgdGhlIGR1bW15IHBhcmFtZXRlciB0byBnZXQgdHlwZSBpbmZlcmVuY2UuXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgRXZlbnROYW1lIGV4dGVuZHMga2V5b2YgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlRXZlbnRNYXA8UGx1Z2luU2V0dGluZ3M+ID8gUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlRXZlbnRNYXA8UGx1Z2luU2V0dGluZ3M+W0V2ZW50TmFtZV1cbiAgICAgIDogdW5rbm93bltdXG4gID4obmFtZTogRXZlbnROYW1lLCBjYWxsYmFjazogKC4uLiRhcmd1bWVudHM6IEFyZ3VtZW50cykgPT4gUHJvbWlzYWJsZTx2b2lkPiwgdGhpc0FyZ3VtZW50PzogdW5rbm93bik6IEFzeW5jRXZlbnRSZWYge1xuICAgIHJldHVybiB0aGlzLmFzeW5jRXZlbnRzLm9uKG5hbWUsIGNhbGxiYWNrLCB0aGlzQXJndW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXIgYW4gZXZlbnQsIGV4ZWN1dGluZyBhbGwgdGhlIGxpc3RlbmVycyBpbiBvcmRlciBldmVuIGlmIHNvbWUgb2YgdGhlbSB0aHJvdyBhbiBlcnJvci5cbiAgICpcbiAgICogQWRkIGFuIGV2ZW50IGxpc3RlbmVyIHRoYXQgd2lsbCBiZSBjYWxsZWQgb25seSBvbmNlLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIEV2ZW50TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBldmVudC5cbiAgICogQHR5cGVQYXJhbSBBcmd1bWVudHMgLSBUaGUgdHlwZXMgb2YgdGhlIGFyZ3VtZW50cyB0aGUgZXZlbnQgY2FsbGJhY2sgYWNjZXB0cy5cbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQuXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIGV2ZW50IGlzIHRyaWdnZXJlZC5cbiAgICogQHBhcmFtIHRoaXNBcmd1bWVudCAtIFRoZSBjb250ZXh0IHBhc3NlZCBhcyBgdGhpc2AgdG8gdGhlIGBjYWxsYmFja2AuXG4gICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoZSBldmVudCBsaXN0ZW5lci5cbiAgICpcbiAgICogQHJlbWFya3MgTm90IHJlZmFjdG9yZWQgdG8gcGFyYW1ldGVyLW9iamVjdCBwYXR0ZXJuLCB0byBrZWVwIHRoZSBwYXJpdHkgd2l0aCB7QGxpbmsgb2JzaWRpYW4jRXZlbnRzI29ufSAob3Igb25jZSwgY29ycmVzcG9uZGluZ2x5KS5cbiAgICovXG4gIHB1YmxpYyBvbmNlPFxuICAgIEV2ZW50TmFtZSBleHRlbmRzIGtleW9mIFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZUV2ZW50TWFwPFBsdWdpblNldHRpbmdzPixcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LXR5cGUtcGFyYW1ldGVycyAtLSBXZSBuZWVkIHRvIHVzZSB0aGUgZHVtbXkgcGFyYW1ldGVyIHRvIGdldCB0eXBlIGluZmVyZW5jZS5cbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBFdmVudE5hbWUgZXh0ZW5kcyBrZXlvZiBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VFdmVudE1hcDxQbHVnaW5TZXR0aW5ncz4gPyBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VFdmVudE1hcDxQbHVnaW5TZXR0aW5ncz5bRXZlbnROYW1lXVxuICAgICAgOiB1bmtub3duW11cbiAgPihuYW1lOiBFdmVudE5hbWUsIGNhbGxiYWNrOiAoLi4uJGFyZ3VtZW50czogQXJndW1lbnRzKSA9PiBQcm9taXNhYmxlPHZvaWQ+LCB0aGlzQXJndW1lbnQ/OiB1bmtub3duKTogQXN5bmNFdmVudFJlZiB7XG4gICAgcmV0dXJuIHRoaXMuYXN5bmNFdmVudHMub25jZShuYW1lLCBjYWxsYmFjaywgdGhpc0FyZ3VtZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgZXh0ZXJuYWwgc2V0dGluZ3MgY2hhbmdlLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNldHRpbmdzIGFyZSByZWxvYWRlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBvbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5lbnN1cmVMb2FkZWQoKTtcbiAgICBhd2FpdCB0aGlzLmxvYWRGcm9tRmlsZShmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgc2V0dGluZ3MgZnJvbSBmaWxlIGFuZCByZWdpc3RlcnMgZXZlbnQgaGFuZGxlcnMuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25sb2FkQXN5bmMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmVnaXN0ZXJBc3luY0V2ZW50KHRoaXMsIHRoaXMub24oJ2xvYWRTZXR0aW5ncycsIHRoaXMub25Mb2FkU2V0dGluZ3MuYmluZCh0aGlzKSkpO1xuICAgIHJlZ2lzdGVyQXN5bmNFdmVudCh0aGlzLCB0aGlzLm9uKCdzYXZlU2V0dGluZ3MnLCAobmV3U3RhdGUsIG9sZFN0YXRlLCBjb250ZXh0KSA9PiB0aGlzLm9uU2F2ZVNldHRpbmdzKHsgY29udGV4dCwgbmV3U3RhdGUsIG9sZFN0YXRlIH0pKSk7XG4gICAgcmVnaXN0ZXJBc3luY0V2ZW50KHRoaXMsIHRoaXMucGx1Z2luRXZlbnRTb3VyY2Uub24oJ2V4dGVybmFsU2V0dGluZ3NDaGFuZ2UnLCB0aGlzLm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZS5iaW5kKHRoaXMpKSk7XG4gICAgYXdhaXQgdGhpcy5sb2FkRnJvbUZpbGUodHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgbGVnYWN5IHNldHRpbmdzIGNvbnZlcnRlci5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBMZWdhY3lTZXR0aW5ncyAtIFRoZSBsZWdhY3kgc2V0dGluZ3MgY2xhc3MuXG4gICAqIEBwYXJhbSBsZWdhY3lTZXR0aW5nc0NsYXNzIC0gVGhlIGxlZ2FjeSBzZXR0aW5ncyBjbGFzcy5cbiAgICogQHBhcmFtIGNvbnZlcnRlciAtIFRoZSBjb252ZXJ0ZXIuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJMZWdhY3lTZXR0aW5nc0NvbnZlcnRlcjxMZWdhY3lTZXR0aW5ncyBleHRlbmRzIG9iamVjdD4oXG4gICAgbGVnYWN5U2V0dGluZ3NDbGFzczogbmV3ICgpID0+IExlZ2FjeVNldHRpbmdzLFxuICAgIGNvbnZlcnRlcjogKGxlZ2FjeVNldHRpbmdzOiBQYXJ0aWFsPExlZ2FjeVNldHRpbmdzPiAmIFBhcnRpYWw8UGx1Z2luU2V0dGluZ3M+KSA9PiB2b2lkXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHRoaXNXcmFwcGVyID0gVmFsdWVXcmFwcGVyLm9mKHRoaXMpO1xuICAgIHRoaXMubGVnYWN5U2V0dGluZ3NDb252ZXJ0ZXJzLnB1c2gobGVnYWN5U2V0dGluZ3NDb252ZXJ0ZXIpO1xuXG4gICAgZnVuY3Rpb24gbGVnYWN5U2V0dGluZ3NDb252ZXJ0ZXIocmVjb3JkOiBHZW5lcmljT2JqZWN0KTogdm9pZCB7XG4gICAgICBjb25zdCBsZWdhY3lTZXR0aW5nc0tleXMgPSBuZXcgU2V0PHN0cmluZz4oT2JqZWN0LmtleXMobmV3IGxlZ2FjeVNldHRpbmdzQ2xhc3MoKSkpO1xuICAgICAgY29uc3QgcGx1Z2luU2V0dGluZ0tleXMgPSBuZXcgU2V0PHN0cmluZz4odGhpc1dyYXBwZXIudmFsdWUucHJvcGVydHlOYW1lcyk7XG4gICAgICBjb25zdCBsZWdhY3lTZXR0aW5ncyA9IHJlY29yZCBhcyBQYXJ0aWFsPExlZ2FjeVNldHRpbmdzPiAmIFBhcnRpYWw8UGx1Z2luU2V0dGluZ3M+O1xuICAgICAgY29udmVydGVyKGxlZ2FjeVNldHRpbmdzKTtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGxlZ2FjeVNldHRpbmdzKSkge1xuICAgICAgICBpZiAocGx1Z2luU2V0dGluZ0tleXMuaGFzKGtleSkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghbGVnYWN5U2V0dGluZ3NLZXlzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWR5bmFtaWMtZGVsZXRlIC0tIFdlIGhhdmUgbm8gb3RoZXIgd2F5IHRvIGRlbGV0ZSB0aGUgcHJvcGVydHkuXG4gICAgICAgIGRlbGV0ZSByZWNvcmRba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgdmFsaWRhdG9yIGZvciBhIHByb3BlcnR5LlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFByb3BlcnR5TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBzZXR0aW5ncyBwcm9wZXJ0eS5cbiAgICogQHBhcmFtIHByb3BlcnR5TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eS5cbiAgICogQHBhcmFtIHZhbGlkYXRvciAtIFRoZSB2YWxpZGF0b3IuXG4gICAqL1xuICBwdWJsaWMgcmVnaXN0ZXJWYWxpZGF0b3I8UHJvcGVydHlOYW1lIGV4dGVuZHMgUHJvcGVydHlOYW1lczxQbHVnaW5TZXR0aW5ncz4+KFxuICAgIHByb3BlcnR5TmFtZTogUHJvcGVydHlOYW1lLFxuICAgIHZhbGlkYXRvcjogU2V0dGluZ3NWYWxpZGF0b3I8UGx1Z2luU2V0dGluZ3MsIFByb3BlcnR5TmFtZT5cbiAgKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0b3JzLnNldChwcm9wZXJ0eU5hbWUsIHZhbGlkYXRvciBhcyBTZXR0aW5nc1ZhbGlkYXRvcjxQbHVnaW5TZXR0aW5ncz4pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldmFsaWRhdGVzIHRoZSBzZXR0aW5ncy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmV2YWxpZGF0ZSgpOiBQcm9taXNlPFJlY29yZDxQcm9wZXJ0eU5hbWVzPFBsdWdpblNldHRpbmdzPiwgc3RyaW5nPj4ge1xuICAgIHRoaXMuZW5zdXJlTG9hZGVkKCk7XG4gICAgYXdhaXQgdGhpcy5lZGl0KG5vb3ApO1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdGF0ZS52YWxpZGF0aW9uTWVzc2FnZXM7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZXMgdGhlIG5ldyBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIGNvbnRleHQgb2YgdGhlIHNhdmUgdG8gZmlsZSBvcGVyYXRpb24uXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIHNhdmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNhdmVUb0ZpbGUoY29udGV4dD86IHVua25vd24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmVuc3VyZUxvYWRlZCgpO1xuICAgIGlmIChpc0RlZXBFcXVhbCh0aGlzLmxhc3RTYXZlZFN0YXRlLmlucHV0VmFsdWVzLCB0aGlzLmN1cnJlbnRTdGF0ZS5pbnB1dFZhbHVlcykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnNhdmVUb0ZpbGVJbXBsKCk7XG4gICAgYXdhaXQgdGhpcy5hc3luY0V2ZW50cy50cmlnZ2VyQXN5bmMoXG4gICAgICAnc2F2ZVNldHRpbmdzJyxcbiAgICAgIHRoaXMuY3VycmVudFN0YXRlIGFzIFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NTdGF0ZTxQbHVnaW5TZXR0aW5ncz4sXG4gICAgICB0aGlzLmxhc3RTYXZlZFN0YXRlIGFzIFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NTdGF0ZTxQbHVnaW5TZXR0aW5ncz4sXG4gICAgICBjb250ZXh0XG4gICAgKTtcbiAgICB0aGlzLmxhc3RTYXZlZFN0YXRlID0gYXdhaXQgdGhpcy5jbG9uZVN0YXRlKHRoaXMuY3VycmVudFN0YXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiBhIHByb3BlcnR5LlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFByb3BlcnR5TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eS5cbiAgICogQHBhcmFtIHByb3BlcnR5TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eS5cbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIHNldC5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNldFByb3BlcnR5PFByb3BlcnR5TmFtZSBleHRlbmRzIFByb3BlcnR5TmFtZXM8UGx1Z2luU2V0dGluZ3M+PihcbiAgICBwcm9wZXJ0eU5hbWU6IFByb3BlcnR5TmFtZSxcbiAgICB2YWx1ZTogUGx1Z2luU2V0dGluZ3NbUHJvcGVydHlOYW1lXVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHRoaXMuZW5zdXJlTG9hZGVkKCk7XG4gICAgYXdhaXQgdGhpcy5lZGl0KChzZXR0aW5ncykgPT4ge1xuICAgICAgc2V0dGluZ3NbcHJvcGVydHlOYW1lXSA9IHZhbHVlO1xuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRTdGF0ZS52YWxpZGF0aW9uTWVzc2FnZXNbcHJvcGVydHlOYW1lXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0gc2V0dGluZ3MgLSBUaGUgc2V0dGluZ3MuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHZhbGlkYXRpb24gcmVzdWx0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHZhbGlkYXRlKHNldHRpbmdzOiBQbHVnaW5TZXR0aW5ncyk6IFByb21pc2U8VmFsaWRhdGlvblJlc3VsdDxQbHVnaW5TZXR0aW5ncz4+IHtcbiAgICBjb25zdCByZXN1bHQ6IFZhbGlkYXRpb25SZXN1bHQ8UGx1Z2luU2V0dGluZ3M+ID0ge307XG4gICAgZm9yIChjb25zdCBbcHJvcGVydHlOYW1lLCB2YWxpZGF0b3JdIG9mIHRoaXMudmFsaWRhdG9ycykge1xuICAgICAgY29uc3QgdmFsaWRhdGlvbk1lc3NhZ2UgPSBhd2FpdCB2YWxpZGF0b3Ioc2V0dGluZ3NbcHJvcGVydHlOYW1lXSwgc2V0dGluZ3MpO1xuICAgICAgaWYgKHZhbGlkYXRpb25NZXNzYWdlKSB7XG4gICAgICAgIHJlc3VsdFtwcm9wZXJ0eU5hbWVdID0gdmFsaWRhdGlvbk1lc3NhZ2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB0cmFuc2Zvcm1lci5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHRyYW5zZm9ybWVyLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFRyYW5zZm9ybWVyKCk6IFRyYW5zZm9ybWVyIHtcbiAgICByZXR1cm4gZGVmYXVsdFRyYW5zZm9ybWVyO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gc2V0dGluZ3MgcmVjb3JkIGlzIGxvYWRlZCBmcm9tIGRpc2suXG4gICAqXG4gICAqIEBwYXJhbSByZWNvcmQgLSBUaGUgcmVjb3JkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIG9uTG9hZFJlY29yZChyZWNvcmQ6IEdlbmVyaWNPYmplY3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBmb3IgKGNvbnN0IGNvbnZlcnRlciBvZiB0aGlzLmxlZ2FjeVNldHRpbmdzQ29udmVydGVycykge1xuICAgICAgY29udmVydGVyKHJlY29yZCk7XG4gICAgfVxuICAgIGF3YWl0IG5vb3BBc3luYygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHNldHRpbmdzIGFyZSBsb2FkZWQgb3IgcmVsb2FkZWQuXG4gICAqXG4gICAqIEBwYXJhbSBfbG9hZGVkU3RhdGUgLSBUaGUgbG9hZGVkIHNldHRpbmdzIHN0YXRlLlxuICAgKiBAcGFyYW0gX2lzSW5pdGlhbExvYWQgLSBXaGV0aGVyIHRoaXMgaXMgdGhlIGluaXRpYWwgbG9hZC5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBvbkxvYWRTZXR0aW5ncyhcbiAgICBfbG9hZGVkU3RhdGU6IFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NTdGF0ZTxQbHVnaW5TZXR0aW5ncz4sXG4gICAgX2lzSW5pdGlhbExvYWQ6IGJvb2xlYW5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gc2V0dGluZ3MgYXJlIHNhdmVkLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgb25TYXZlU2V0dGluZ3MocGFyYW1zOiBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2VPblNhdmVTZXR0aW5nc1BhcmFtczxQbHVnaW5TZXR0aW5ncz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7XG4gICAgICBjb250ZXh0OiBfY29udGV4dCxcbiAgICAgIG5ld1N0YXRlOiBfbmV3U3RhdGUsXG4gICAgICBvbGRTdGF0ZTogX29sZFN0YXRlXG4gICAgfSA9IHBhcmFtcztcbiAgICBhd2FpdCBub29wQXN5bmMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIHNldHRpbmdzIHJlY29yZCBpcyBhYm91dCB0byBiZSBzYXZlZCB0byBkaXNrLlxuICAgKlxuICAgKiBAcGFyYW0gX3JlY29yZCAtIFRoZSByZWNvcmQuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgb25TYXZpbmdSZWNvcmQoX3JlY29yZDogR2VuZXJpY09iamVjdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IG5vb3BBc3luYygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyB0aGUgbGVnYWN5IHNldHRpbmdzIGNvbnZlcnRlcnMuXG4gICAqIE92ZXJyaWRlIHRvIHJlZ2lzdGVyIGxlZ2FjeSBzZXR0aW5ncyBjb252ZXJ0ZXJzLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlZ2lzdGVyTGVnYWN5U2V0dGluZ3NDb252ZXJ0ZXJzKCk6IHZvaWQge1xuICAgIG5vb3AoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgdGhlIHZhbGlkYXRvcnMuXG4gICAqIE92ZXJyaWRlIHRvIHJlZ2lzdGVyIHZhbGlkYXRvcnMgZm9yIHByb3BlcnRpZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVnaXN0ZXJWYWxpZGF0b3JzKCk6IHZvaWQge1xuICAgIG5vb3AoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2xvbmVTZXR0aW5ncyhzZXR0aW5nczogUGx1Z2luU2V0dGluZ3MpOiBQcm9taXNlPFBsdWdpblNldHRpbmdzPiB7XG4gICAgY29uc3QgcmVjb3JkID0gYXdhaXQgdGhpcy5zZXR0aW5nc1RvUmF3UmVjb3JkKHNldHRpbmdzKTtcbiAgICBjb25zdCBqc29uID0gSlNPTi5zdHJpbmdpZnkocmVjb3JkKTtcbiAgICBjb25zdCBjbG9uZVJlY29yZCA9IEpTT04ucGFyc2UoanNvbikgYXMgR2VuZXJpY09iamVjdDtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5yYXdSZWNvcmRUb1NldHRpbmdzKGNsb25lUmVjb3JkKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2xvbmVTdGF0ZShcbiAgICBzdGF0ZTogUGx1Z2luU2V0dGluZ3NTdGF0ZTxQbHVnaW5TZXR0aW5ncz5cbiAgKTogUHJvbWlzZTxQbHVnaW5TZXR0aW5nc1N0YXRlPFBsdWdpblNldHRpbmdzPj4ge1xuICAgIHJldHVybiB7XG4gICAgICBlZmZlY3RpdmVWYWx1ZXM6IGF3YWl0IHRoaXMuY2xvbmVTZXR0aW5ncyhzdGF0ZS5lZmZlY3RpdmVWYWx1ZXMpLFxuICAgICAgaW5wdXRWYWx1ZXM6IGF3YWl0IHRoaXMuY2xvbmVTZXR0aW5ncyhzdGF0ZS5pbnB1dFZhbHVlcyksXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZXM6IHsgLi4uc3RhdGUudmFsaWRhdGlvbk1lc3NhZ2VzIH1cbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEZWZhdWx0U3RhdGUoKTogUGx1Z2luU2V0dGluZ3NTdGF0ZTxQbHVnaW5TZXR0aW5ncz4ge1xuICAgIHJldHVybiB7XG4gICAgICBlZmZlY3RpdmVWYWx1ZXM6IG5ldyB0aGlzLnBsdWdpblNldHRpbmdzQ2xhc3MoKSxcbiAgICAgIGlucHV0VmFsdWVzOiBuZXcgdGhpcy5wbHVnaW5TZXR0aW5nc0NsYXNzKCksXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZXM6IGNhc3RUbzxSZWNvcmQ8UHJvcGVydHlOYW1lczxQbHVnaW5TZXR0aW5ncz4sIHN0cmluZz4+KHt9KVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGVkaXQoc2V0dGluZ3NFZGl0b3I6IChzZXR0aW5nczogUGx1Z2luU2V0dGluZ3MpID0+IFByb21pc2FibGU8dm9pZD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgc2V0dGluZ3NFZGl0b3IodGhpcy5jdXJyZW50U3RhdGUuaW5wdXRWYWx1ZXMpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy52YWxpZGF0ZSh0aGlzLmN1cnJlbnRTdGF0ZS5pbnB1dFZhbHVlcyk7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBvZiB0aGlzLnByb3BlcnR5TmFtZXMpIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdGlvbk1lc3NhZ2UgPSB2YWxpZGF0aW9uUmVzdWx0W3Byb3BlcnR5TmFtZV0gPz8gJyc7XG4gICAgICAgIHRoaXMuY3VycmVudFN0YXRlLnZhbGlkYXRpb25NZXNzYWdlc1twcm9wZXJ0eU5hbWVdID0gdmFsaWRhdGlvbk1lc3NhZ2U7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRzID0gdGhpcy5kZWZhdWx0U2V0dGluZ3MgYXMgUGx1Z2luU2V0dGluZ3M7XG4gICAgICAgIHRoaXMuY3VycmVudFN0YXRlLmVmZmVjdGl2ZVZhbHVlc1twcm9wZXJ0eU5hbWVdID0gdmFsaWRhdGlvbk1lc3NhZ2VcbiAgICAgICAgICA/IGRlZmF1bHRzW3Byb3BlcnR5TmFtZV1cbiAgICAgICAgICA6IHRoaXMuY3VycmVudFN0YXRlLmlucHV0VmFsdWVzW3Byb3BlcnR5TmFtZV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkUHJvcGVydHlOYW1lKHByb3BlcnR5OiB1bmtub3duKTogcHJvcGVydHkgaXMgUHJvcGVydHlOYW1lczxQbHVnaW5TZXR0aW5ncz4ge1xuICAgIGlmICh0eXBlb2YgcHJvcGVydHkgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuICh0aGlzLnByb3BlcnR5TmFtZXMgYXMgc3RyaW5nW10pLmluY2x1ZGVzKHByb3BlcnR5KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmF3UmVjb3JkVG9TZXR0aW5ncyhyYXdSZWNvcmQ6IEdlbmVyaWNPYmplY3QpOiBQcm9taXNlPFBsdWdpblNldHRpbmdzPiB7XG4gICAgcmF3UmVjb3JkID0gdGhpcy5nZXRUcmFuc2Zvcm1lcigpLnRyYW5zZm9ybU9iamVjdFJlY3Vyc2l2ZWx5KHJhd1JlY29yZCk7XG4gICAgYXdhaXQgdGhpcy5vbkxvYWRSZWNvcmQocmF3UmVjb3JkKTtcblxuICAgIGNvbnN0IHNldHRpbmdzID0gbmV3IHRoaXMucGx1Z2luU2V0dGluZ3NDbGFzcygpO1xuICAgIGNvbnN0IGRlZmF1bHRzID0gdGhpcy5kZWZhdWx0U2V0dGluZ3MgYXMgUGx1Z2luU2V0dGluZ3M7XG5cbiAgICBmb3IgKGNvbnN0IFtwcm9wZXJ0eU5hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhyYXdSZWNvcmQpKSB7XG4gICAgICBpZiAoIXRoaXMuaXNWYWxpZFByb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUpKSB7XG4gICAgICAgIGdldExpYkRlYnVnZ2VyKCdQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2U6cmF3UmVjb3JkVG9TZXR0aW5ncycpKGBVbmtub3duIHByb3BlcnR5OiAke3Byb3BlcnR5TmFtZX1gKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IHR5cGVvZiBkZWZhdWx0c1twcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgIGdldExpYkRlYnVnZ2VyKCdQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2U6cmF3UmVjb3JkVG9TZXR0aW5ncycpKFxuICAgICAgICAgICdQb3NzaWJsZSBpbnZhbGlkIHZhbHVlIHR5cGUuIEl0IG1pZ2h0IGxlYWQgdG8gYW4gdW5leHBlY3RlZCBiZWhhdmlvciBvZiB0aGUgcGx1Z2luLiBUaGVyZSBpcyBhbHNvIGEgY2hhbmNlIGl0IGlzIGEgZmFsc2UtbmVnYXRpdmUgd2FybmluZywgYXMgd2UgYXJlIHVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIGV4YWN0IHR5cGUgb2YgdGhlIHZhbHVlIGluIHJ1bnRpbWUuJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRzW3Byb3BlcnR5TmFtZV0sXG4gICAgICAgICAgICBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgc2V0dGluZ3NbcHJvcGVydHlOYW1lXSA9IHZhbHVlIGFzIFByb3BlcnR5VmFsdWVzPFBsdWdpblNldHRpbmdzPjtcbiAgICB9XG5cbiAgICByZXR1cm4gc2V0dGluZ3M7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNhdmVUb0ZpbGVJbXBsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZGF0YUhhbmRsZXIuc2F2ZURhdGEoYXdhaXQgdGhpcy5zZXR0aW5nc1RvUmF3UmVjb3JkKHRoaXMuY3VycmVudFN0YXRlLmlucHV0VmFsdWVzKSk7XG4gIH1cblxuICBwcml2YXRlIHNldFByb3BlcnR5SW1wbChwYXJhbXM6IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZVNldFByb3BlcnR5SW1wbFBhcmFtczxQbHVnaW5TZXR0aW5ncz4pOiB2b2lkIHtcbiAgICBjb25zdCB7XG4gICAgICBwcm9wZXJ0eU5hbWUsXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcbiAgICAgIHZhbHVlXG4gICAgfSA9IHBhcmFtcztcbiAgICBjb25zdCBkZWZhdWx0cyA9IHRoaXMuZGVmYXVsdFNldHRpbmdzIGFzIFBsdWdpblNldHRpbmdzO1xuICAgIHRoaXMuY3VycmVudFN0YXRlLmlucHV0VmFsdWVzW3Byb3BlcnR5TmFtZV0gPSB2YWx1ZTtcbiAgICB0aGlzLmN1cnJlbnRTdGF0ZS52YWxpZGF0aW9uTWVzc2FnZXNbcHJvcGVydHlOYW1lXSA9IHZhbGlkYXRpb25NZXNzYWdlID8/ICcnO1xuICAgIHRoaXMuY3VycmVudFN0YXRlLmVmZmVjdGl2ZVZhbHVlc1twcm9wZXJ0eU5hbWVdID0gdmFsaWRhdGlvbk1lc3NhZ2UgPyBkZWZhdWx0c1twcm9wZXJ0eU5hbWVdIDogdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldHRpbmdzVG9SYXdSZWNvcmQoc2V0dGluZ3M6IFBsdWdpblNldHRpbmdzKTogUHJvbWlzZTxHZW5lcmljT2JqZWN0PiB7XG4gICAgY29uc3QgcmF3UmVjb3JkOiBHZW5lcmljT2JqZWN0ID0ge307XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBvZiB0aGlzLnByb3BlcnR5TmFtZXMpIHtcbiAgICAgIHJhd1JlY29yZFtwcm9wZXJ0eU5hbWVdID0gc2V0dGluZ3NbcHJvcGVydHlOYW1lXTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLm9uU2F2aW5nUmVjb3JkKHJhd1JlY29yZCk7XG5cbiAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2Zvcm1lcigpLnRyYW5zZm9ybU9iamVjdFJlY3Vyc2l2ZWx5KHJhd1JlY29yZCk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBNkJBLDBCQUE0QjtBQUM1QixtQkFBK0I7QUFDL0Isc0JBR087QUFDUCwwQkFJTztBQUNQLDhCQUFnQztBQUNoQyxrQ0FBb0M7QUFDcEMsK0JBQWlDO0FBQ2pDLDZCQUErQjtBQUMvQiw2QkFBK0I7QUFDL0IsK0NBQStDO0FBQy9DLHFDQUFxQztBQUNyQywyQkFBNkI7QUFDN0Isb0NBQW1DO0FBQ25D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
|
|
@@ -135,6 +135,7 @@ __export(obsidian_exports, {
|
|
|
135
135
|
app: () => app,
|
|
136
136
|
"async-with-notice": () => async_with_notice,
|
|
137
137
|
"attachment-path": () => attachment_path,
|
|
138
|
+
"attachment-unit-folder": () => attachment_unit_folder,
|
|
138
139
|
backlink: () => backlink,
|
|
139
140
|
"bases-view-registrar": () => bases_view_registrar,
|
|
140
141
|
callout: () => callout,
|
|
@@ -213,6 +214,7 @@ var active_file_provider = __toESM(__extractDefault(require('./active-file-provi
|
|
|
213
214
|
var app = __toESM(__extractDefault(require('./app.cjs')), 1);
|
|
214
215
|
var async_with_notice = __toESM(__extractDefault(require('./async-with-notice.cjs')), 1);
|
|
215
216
|
var attachment_path = __toESM(__extractDefault(require('./attachment-path.cjs')), 1);
|
|
217
|
+
var attachment_unit_folder = __toESM(__extractDefault(require('./attachment-unit-folder.cjs')), 1);
|
|
216
218
|
var backlink = __toESM(__extractDefault(require('./backlink.cjs')), 1);
|
|
217
219
|
var bases_view_registrar = __toESM(__extractDefault(require('./bases-view-registrar.cjs')), 1);
|
|
218
220
|
var callout = __toESM(__extractDefault(require('./callout.cjs')), 1);
|
|
@@ -291,6 +293,7 @@ var workspace = __toESM(__extractDefault(require('./workspace.cjs')), 1);
|
|
|
291
293
|
app,
|
|
292
294
|
"async-with-notice": null,
|
|
293
295
|
"attachment-path": null,
|
|
296
|
+
"attachment-unit-folder": null,
|
|
294
297
|
backlink,
|
|
295
298
|
"bases-view-registrar": null,
|
|
296
299
|
callout,
|
|
@@ -364,4 +367,4 @@ var workspace = __toESM(__extractDefault(require('./workspace.cjs')), 1);
|
|
|
364
367
|
"view-registrar": null,
|
|
365
368
|
workspace
|
|
366
369
|
});
|
|
367
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2FjdGl2ZS1maWxlLXByb3ZpZGVyJyBmcm9tICcuL2FjdGl2ZS1maWxlLXByb3ZpZGVyLnRzJztcbmV4cG9ydCAqIGFzICdhcHAnIGZyb20gJy4vYXBwLnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy13aXRoLW5vdGljZScgZnJvbSAnLi9hc3luYy13aXRoLW5vdGljZS50cyc7XG5leHBvcnQgKiBhcyAnYXR0YWNobWVudC1wYXRoJyBmcm9tICcuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQgKiBhcyAnYmFja2xpbmsnIGZyb20gJy4vYmFja2xpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2Jhc2VzLXZpZXctcmVnaXN0cmFyJyBmcm9tICcuL2Jhc2VzLXZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdjYWxsb3V0JyBmcm9tICcuL2NhbGxvdXQudHMnO1xuZXhwb3J0ICogYXMgJ2NhbnZhcycgZnJvbSAnLi9jYW52YXMudHMnO1xuZXhwb3J0ICogYXMgJ2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleCcgZnJvbSAnLi9jYXNlLWluc2Vuc2l0aXZlLWZpbGUtaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NvZGUtYmxvY2stbWFya2Rvd24taW5mb3JtYXRpb24nIGZyb20gJy4vY29kZS1ibG9jay1tYXJrZG93bi1pbmZvcm1hdGlvbi50cyc7XG5leHBvcnQgKiBhcyAnY29kZS1ibG9jay1yZWctZXhwJyBmcm9tICcuL2NvZGUtYmxvY2stcmVnLWV4cC50cyc7XG5leHBvcnQgKiBhcyAnY29tbWFuZC1oYW5kbGVycycgZnJvbSAnLi9jb21tYW5kLWhhbmRsZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjb21tYW5kLXJlZ2lzdHJhcicgZnJvbSAnLi9jb21tYW5kLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnY29tbXVuaXR5LXBsdWdpbnMnIGZyb20gJy4vY29tbXVuaXR5LXBsdWdpbnMudHMnO1xuZXhwb3J0ICogYXMgJ2NvbXBvbmVudHMnIGZyb20gJy4vY29tcG9uZW50cy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY29uc3RydWN0b3JzJyBmcm9tICcuL2NvbnN0cnVjdG9ycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY3NzLWNsYXNzJyBmcm9tICcuL2Nzcy1jbGFzcy50cyc7XG5leHBvcnQgKiBhcyAnZGF0YS1oYW5kbGVyJyBmcm9tICcuL2RhdGEtaGFuZGxlci50cyc7XG5leHBvcnQgKiBhcyAnZGF0YXZpZXctbGluaycgZnJvbSAnLi9kYXRhdmlldy1saW5rLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhdmlldycgZnJvbSAnLi9kYXRhdmlldy50cyc7XG5leHBvcnQgKiBhcyAnZGVtby12YXVsdC1oZWxwZXItc2V0dGluZ3MnIGZyb20gJy4vZGVtby12YXVsdC1oZWxwZXItc2V0dGluZ3MudHMnO1xuZXhwb3J0ICogYXMgJ2RlbW8tdmF1bHQtaGVscGVyJyBmcm9tICcuL2RlbW8tdmF1bHQtaGVscGVyLnRzJztcbmV4cG9ydCAqIGFzICdkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyJyBmcm9tICcuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMnO1xuZXhwb3J0ICogYXMgJ2Rlc2t0b3AtdHJ1c3RlZC1pbnB1dCcgZnJvbSAnLi9kZXNrdG9wLXRydXN0ZWQtaW5wdXQudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvci1leHRlbnNpb24tcmVnaXN0cmFyJyBmcm9tICcuL2VkaXRvci1leHRlbnNpb24tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdlZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXInIGZyb20gJy4vZWRpdG9yLXN1Z2dlc3QtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdlZGl0b3InIGZyb20gJy4vZWRpdG9yLnRzJztcbmV4cG9ydCAqIGFzICdldmVudHMnIGZyb20gJy4vZXZlbnRzLnRzJztcbmV4cG9ydCAqIGFzICdleHRlbnNpb25zLXJlZ2lzdHJhcicgZnJvbSAnLi9leHRlbnNpb25zLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1jaGFuZ2UnIGZyb20gJy4vZmlsZS1jaGFuZ2UudHMnO1xuZXhwb3J0ICogYXMgJ2ZpbGUtbWFuYWdlcicgZnJvbSAnLi9maWxlLW1hbmFnZXIudHMnO1xuZXhwb3J0ICogYXMgJ2ZpbGUtc3lzdGVtJyBmcm9tICcuL2ZpbGUtc3lzdGVtLnRzJztcbmV4cG9ydCAqIGFzICdmb2xkZXItbm90ZScgZnJvbSAnLi9mb2xkZXItbm90ZS50cyc7XG5leHBvcnQgKiBhcyAnZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMnIGZyb20gJy4vZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMudHMnO1xuZXhwb3J0ICogYXMgJ2Zyb250bWF0dGVyJyBmcm9tICcuL2Zyb250bWF0dGVyLnRzJztcbmV4cG9ydCAqIGFzICdob3Zlci1saW5rLXNvdXJjZS1yZWdpc3RyYXInIGZyb20gJy4vaG92ZXItbGluay1zb3VyY2UtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdodG1sLWVsZW1lbnQnIGZyb20gJy4vaHRtbC1lbGVtZW50LnRzJztcbmV4cG9ydCAqIGFzICdpMThuJyBmcm9tICcuL2kxOG4vaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2lzLWluLW9ic2lkaWFuJyBmcm9tICcuL2lzLWluLW9ic2lkaWFuLnRzJztcbmV4cG9ydCAqIGFzICdsaW5rLXVwZGF0ZS1wcm9ncmVzcycgZnJvbSAnLi9saW5rLXVwZGF0ZS1wcm9ncmVzcy50cyc7XG5leHBvcnQgKiBhcyAnbGluaycgZnJvbSAnLi9saW5rLnRzJztcbmV4cG9ydCAqIGFzICdsb2dnZXInIGZyb20gJy4vbG9nZ2VyLnRzJztcbmV4cG9ydCAqIGFzICdsb29wJyBmcm9tICcuL2xvb3AudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhcicgZnJvbSAnLi9tYXJrZG93bi1jb2RlLWJsb2NrLXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yJyBmcm9tICcuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXInIGZyb20gJy4vbWFya2Rvd24tcG9zdC1wcm9jZXNzb3ItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdtYXJrZG93bi12aWV3JyBmcm9tICcuL21hcmtkb3duLXZpZXcudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duJyBmcm9tICcuL21hcmtkb3duLnRzJztcbmV4cG9ydCAqIGFzICdtZW51LWV2ZW50LXJlZ2lzdHJhcicgZnJvbSAnLi9tZW51LWV2ZW50LXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnbWV0YWRhdGEtY2FjaGUnIGZyb20gJy4vbWV0YWRhdGEtY2FjaGUudHMnO1xuZXhwb3J0ICogYXMgJ21vZGFscycgZnJvbSAnLi9tb2RhbHMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ25vdGVib29rLW5hdmlnYXRvcicgZnJvbSAnLi9ub3RlYm9vay1uYXZpZ2F0b3IudHMnO1xuZXhwb3J0ICogYXMgJ29ic2lkaWFuLXByb3RvY29sLWhhbmRsZXItcmVnaXN0cmFyJyBmcm9tICcuL29ic2lkaWFuLXByb3RvY29sLWhhbmRsZXItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdvYnNpZGlhbi1zZXR0aW5ncycgZnJvbSAnLi9vYnNpZGlhbi1zZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyAncGFyc2UtbGluaycgZnJvbSAnLi9wYXJzZS1saW5rLnRzJztcbmV4cG9ydCAqIGFzICdwYXRoLXNldHRpbmdzJyBmcm9tICcuL3BhdGgtc2V0dGluZ3MudHMnO1xuZXhwb3J0ICogYXMgJ3BkZicgZnJvbSAnLi9wZGYudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbicgZnJvbSAnLi9wbHVnaW4vaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3BsdWdpbi1jbGktaGFuZGxlci1yZWdpc3RyYXInIGZyb20gJy4vcGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAncG9wb3ZlcnMnIGZyb20gJy4vcG9wb3ZlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3F1ZXVlJyBmcm9tICcuL3F1ZXVlLnRzJztcbmV4cG9ydCAqIGFzICdyZWFjdCcgZnJvbSAnLi9yZWFjdC9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAncmVmZXJlbmNlJyBmcm9tICcuL3JlZmVyZW5jZS50cyc7XG5leHBvcnQgKiBhcyAncmVzb3VyY2UtbG9jaycgZnJvbSAnLi9yZXNvdXJjZS1sb2NrLnRzJztcbmV4cG9ydCAqIGFzICdyZXNvdXJjZS11cmwnIGZyb20gJy4vcmVzb3VyY2UtdXJsLnRzJztcbmV4cG9ydCAqIGFzICdyaWJib24taWNvbi1yZWdpc3RyYXInIGZyb20gJy4vcmliYm9uLWljb24tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5nLWNvbXBvbmVudHMnIGZyb20gJy4vc2V0dGluZy1jb21wb25lbnRzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdzZXR0aW5nLWV4JyBmcm9tICcuL3NldHRpbmctZXgudHMnO1xuZXhwb3J0ICogYXMgJ3NldHRpbmctZ3JvdXAtZXgnIGZyb20gJy4vc2V0dGluZy1ncm91cC1leC50cyc7XG5leHBvcnQgKiBhcyAnc3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhcicgZnJvbSAnLi9zdGF0dXMtYmFyLWl0ZW0tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICd2YWxpZGF0aW9uJyBmcm9tICcuL3ZhbGlkYXRpb24udHMnO1xuZXhwb3J0ICogYXMgJ3ZhdWx0LWRlbGV0ZScgZnJvbSAnLi92YXVsdC1kZWxldGUudHMnO1xuZXhwb3J0ICogYXMgJ3ZhdWx0LXRyYW5zYWN0aW9uJyBmcm9tICcuL3ZhdWx0LXRyYW5zYWN0aW9uLnRzJztcbmV4cG9ydCAqIGFzICd2YXVsdCcgZnJvbSAnLi92YXVsdC50cyc7XG5leHBvcnQgKiBhcyAndmlldy1yZWdpc3RyYXInIGZyb20gJy4vdmlldy1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3dvcmtzcGFjZScgZnJvbSAnLi93b3Jrc3BhY2UudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUEsZ0NBQUFBO0FBQUEsRUFBQTtBQUFBLDZCQUFBQztBQUFBLEVBQUEseUJBQUFDO0FBQUEsRUFBQTtBQUFBLGdDQUFBQztBQUFBLEVBQUE7QUFBQTtBQUFBLHVDQUFBQztBQUFBLEVBQUEseUNBQUFDO0FBQUEsRUFBQSw0QkFBQUM7QUFBQSxFQUFBLDBCQUFBQztBQUFBLEVBQUEsMkJBQUFDO0FBQUEsRUFBQSwyQkFBQUM7QUFBQSxFQUFBO0FBQUE7QUFBQSxxQkFBQUM7QUFBQSxFQUFBLHNCQUFBQztBQUFBLEVBQUE7QUFBQSx5QkFBQUM7QUFBQSxFQUFBLDJCQUFBQztBQUFBLEVBQUEsb0NBQUFDO0FBQUEsRUFBQSxtQ0FBQUM7QUFBQSxFQUFBLCtCQUFBQztBQUFBLEVBQUE7QUFBQSxzQ0FBQUM7QUFBQSxFQUFBLGtDQUFBQztBQUFBLEVBQUE7QUFBQSxnQ0FBQUM7QUFBQSxFQUFBLHFCQUFBQztBQUFBLEVBQUEsc0JBQUFDO0FBQUEsRUFBQSxxQkFBQUM7QUFBQSxFQUFBLHFCQUFBQztBQUFBLEVBQUE7QUFBQSwrQ0FBQUM7QUFBQSxF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cyI6IFsiYWN0aXZlLWZpbGUtcHJvdmlkZXIiLCAiYXN5bmMtd2l0aC1ub3RpY2UiLCAiYXR0YWNobWVudC1wYXRoIiwgImJhc2VzLXZpZXctcmVnaXN0cmFyIiwgImNhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleCIsICJjb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uIiwgImNvZGUtYmxvY2stcmVnLWV4cCIsICJjb21tYW5kLWhhbmRsZXJzIiwgImNvbW1hbmQtcmVnaXN0cmFyIiwgImNvbW11bml0eS1wbHVnaW5zIiwgImNzcy1jbGFzcyIsICJkYXRhLWhhbmRsZXIiLCAiZGF0YXZpZXctbGluayIsICJkZW1vLXZhdWx0LWhlbHBlciIsICJkZW1vLXZhdWx0LWhlbHBlci1zZXR0aW5ncyIsICJkZXNrdG9wLWRlbW8tdmF1bHQtb3BlbmVyIiwgImRlc2t0b3AtdHJ1c3RlZC1pbnB1dCIsICJlZGl0b3ItZXh0ZW5zaW9uLXJlZ2lzdHJhciIsICJlZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIiLCAiZXh0ZW5zaW9ucy1yZWdpc3RyYXIiLCAiZmlsZS1jaGFuZ2UiLCAiZmlsZS1tYW5hZ2VyIiwgImZpbGUtc3lzdGVtIiwgImZvbGRlci1ub3RlIiwgImZyb250bWF0dGVyLWxpbmstY2FjaGUtd2l0aC1vZmZzZXRzIiwgImhvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhciIsICJodG1sLWVsZW1lbnQiLCAiaXMtaW4tb2JzaWRpYW4iLCAibGluay11cGRhdGUtcHJvZ3Jlc3MiLCAibWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IiLCAibWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyIiwgIm1hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhciIsICJtYXJrZG93bi12aWV3IiwgIm1lbnUtZXZlbnQtcmVnaXN0cmFyIiwgIm1ldGFkYXRhLWNhY2hlIiwgIm5vdGVib29rLW5hdmlnYXRvciIsICJvYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhciIsICJvYnNpZGlhbi1zZXR0aW5ncyIsICJwYXJzZS1saW5rIiwgInBhdGgtc2V0dGluZ3MiLCAicGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhciIsICJyZXNvdXJjZS1sb2NrIiwgInJlc291cmNlLXVybCIsICJyaWJib24taWNvbi1yZWdpc3RyYXIiLCAic2V0dGluZy1jb21wb25lbnRzIiwgInNldHRpbmctZXgiLCAic2V0dGluZy1ncm91cC1leCIsICJzdGF0dXMtYmFyLWl0ZW0tcmVnaXN0cmFyIiwgInZhdWx0LWRlbGV0ZSIsICJ2YXVsdC10cmFuc2FjdGlvbiIsICJ2aWV3LXJlZ2lzdHJhciJdCn0K
|
|
370
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgJ2FjdGl2ZS1maWxlLXByb3ZpZGVyJyBmcm9tICcuL2FjdGl2ZS1maWxlLXByb3ZpZGVyLnRzJztcbmV4cG9ydCAqIGFzICdhcHAnIGZyb20gJy4vYXBwLnRzJztcbmV4cG9ydCAqIGFzICdhc3luYy13aXRoLW5vdGljZScgZnJvbSAnLi9hc3luYy13aXRoLW5vdGljZS50cyc7XG5leHBvcnQgKiBhcyAnYXR0YWNobWVudC1wYXRoJyBmcm9tICcuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQgKiBhcyAnYXR0YWNobWVudC11bml0LWZvbGRlcicgZnJvbSAnLi9hdHRhY2htZW50LXVuaXQtZm9sZGVyLnRzJztcbmV4cG9ydCAqIGFzICdiYWNrbGluaycgZnJvbSAnLi9iYWNrbGluay50cyc7XG5leHBvcnQgKiBhcyAnYmFzZXMtdmlldy1yZWdpc3RyYXInIGZyb20gJy4vYmFzZXMtdmlldy1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2NhbGxvdXQnIGZyb20gJy4vY2FsbG91dC50cyc7XG5leHBvcnQgKiBhcyAnY2FudmFzJyBmcm9tICcuL2NhbnZhcy50cyc7XG5leHBvcnQgKiBhcyAnY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4JyBmcm9tICcuL2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnY29kZS1ibG9jay1tYXJrZG93bi1pbmZvcm1hdGlvbicgZnJvbSAnLi9jb2RlLWJsb2NrLW1hcmtkb3duLWluZm9ybWF0aW9uLnRzJztcbmV4cG9ydCAqIGFzICdjb2RlLWJsb2NrLXJlZy1leHAnIGZyb20gJy4vY29kZS1ibG9jay1yZWctZXhwLnRzJztcbmV4cG9ydCAqIGFzICdjb21tYW5kLWhhbmRsZXJzJyBmcm9tICcuL2NvbW1hbmQtaGFuZGxlcnMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ2NvbW1hbmQtcmVnaXN0cmFyJyBmcm9tICcuL2NvbW1hbmQtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdjb21tdW5pdHktcGx1Z2lucycgZnJvbSAnLi9jb21tdW5pdHktcGx1Z2lucy50cyc7XG5leHBvcnQgKiBhcyAnY29tcG9uZW50cycgZnJvbSAnLi9jb21wb25lbnRzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjb25zdHJ1Y3RvcnMnIGZyb20gJy4vY29uc3RydWN0b3JzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdjc3MtY2xhc3MnIGZyb20gJy4vY3NzLWNsYXNzLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhLWhhbmRsZXInIGZyb20gJy4vZGF0YS1oYW5kbGVyLnRzJztcbmV4cG9ydCAqIGFzICdkYXRhdmlldy1saW5rJyBmcm9tICcuL2RhdGF2aWV3LWxpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2RhdGF2aWV3JyBmcm9tICcuL2RhdGF2aWV3LnRzJztcbmV4cG9ydCAqIGFzICdkZW1vLXZhdWx0LWhlbHBlci1zZXR0aW5ncycgZnJvbSAnLi9kZW1vLXZhdWx0LWhlbHBlci1zZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyAnZGVtby12YXVsdC1oZWxwZXInIGZyb20gJy4vZGVtby12YXVsdC1oZWxwZXIudHMnO1xuZXhwb3J0ICogYXMgJ2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXInIGZyb20gJy4vZGVza3RvcC1kZW1vLXZhdWx0LW9wZW5lci50cyc7XG5leHBvcnQgKiBhcyAnZGVza3RvcC10cnVzdGVkLWlucHV0JyBmcm9tICcuL2Rlc2t0b3AtdHJ1c3RlZC1pbnB1dC50cyc7XG5leHBvcnQgKiBhcyAnZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXInIGZyb20gJy4vZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvci1zdWdnZXN0LXJlZ2lzdHJhcicgZnJvbSAnLi9lZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2VkaXRvcicgZnJvbSAnLi9lZGl0b3IudHMnO1xuZXhwb3J0ICogYXMgJ2V2ZW50cycgZnJvbSAnLi9ldmVudHMudHMnO1xuZXhwb3J0ICogYXMgJ2V4dGVuc2lvbnMtcmVnaXN0cmFyJyBmcm9tICcuL2V4dGVuc2lvbnMtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdmaWxlLWNoYW5nZScgZnJvbSAnLi9maWxlLWNoYW5nZS50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1tYW5hZ2VyJyBmcm9tICcuL2ZpbGUtbWFuYWdlci50cyc7XG5leHBvcnQgKiBhcyAnZmlsZS1zeXN0ZW0nIGZyb20gJy4vZmlsZS1zeXN0ZW0udHMnO1xuZXhwb3J0ICogYXMgJ2ZvbGRlci1ub3RlJyBmcm9tICcuL2ZvbGRlci1ub3RlLnRzJztcbmV4cG9ydCAqIGFzICdmcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cycgZnJvbSAnLi9mcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cy50cyc7XG5leHBvcnQgKiBhcyAnZnJvbnRtYXR0ZXInIGZyb20gJy4vZnJvbnRtYXR0ZXIudHMnO1xuZXhwb3J0ICogYXMgJ2hvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhcicgZnJvbSAnLi9ob3Zlci1saW5rLXNvdXJjZS1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ2h0bWwtZWxlbWVudCcgZnJvbSAnLi9odG1sLWVsZW1lbnQudHMnO1xuZXhwb3J0ICogYXMgJ2kxOG4nIGZyb20gJy4vaTE4bi9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnaXMtaW4tb2JzaWRpYW4nIGZyb20gJy4vaXMtaW4tb2JzaWRpYW4udHMnO1xuZXhwb3J0ICogYXMgJ2xpbmstdXBkYXRlLXByb2dyZXNzJyBmcm9tICcuL2xpbmstdXBkYXRlLXByb2dyZXNzLnRzJztcbmV4cG9ydCAqIGFzICdsaW5rJyBmcm9tICcuL2xpbmsudHMnO1xuZXhwb3J0ICogYXMgJ2xvZ2dlcicgZnJvbSAnLi9sb2dnZXIudHMnO1xuZXhwb3J0ICogYXMgJ2xvb3AnIGZyb20gJy4vbG9vcC50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyJyBmcm9tICcuL21hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3InIGZyb20gJy4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLXBvc3QtcHJvY2Vzc29yLXJlZ2lzdHJhcicgZnJvbSAnLi9tYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ21hcmtkb3duLXZpZXcnIGZyb20gJy4vbWFya2Rvd24tdmlldy50cyc7XG5leHBvcnQgKiBhcyAnbWFya2Rvd24nIGZyb20gJy4vbWFya2Rvd24udHMnO1xuZXhwb3J0ICogYXMgJ21lbnUtZXZlbnQtcmVnaXN0cmFyJyBmcm9tICcuL21lbnUtZXZlbnQtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdtZXRhZGF0YS1jYWNoZScgZnJvbSAnLi9tZXRhZGF0YS1jYWNoZS50cyc7XG5leHBvcnQgKiBhcyAnbW9kYWxzJyBmcm9tICcuL21vZGFscy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAnbm90ZWJvb2stbmF2aWdhdG9yJyBmcm9tICcuL25vdGVib29rLW5hdmlnYXRvci50cyc7XG5leHBvcnQgKiBhcyAnb2JzaWRpYW4tcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RyYXInIGZyb20gJy4vb2JzaWRpYW4tcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ29ic2lkaWFuLXNldHRpbmdzJyBmcm9tICcuL29ic2lkaWFuLXNldHRpbmdzLnRzJztcbmV4cG9ydCAqIGFzICdwYXJzZS1saW5rJyBmcm9tICcuL3BhcnNlLWxpbmsudHMnO1xuZXhwb3J0ICogYXMgJ3BhdGgtc2V0dGluZ3MnIGZyb20gJy4vcGF0aC1zZXR0aW5ncy50cyc7XG5leHBvcnQgKiBhcyAncGRmJyBmcm9tICcuL3BkZi50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luJyBmcm9tICcuL3BsdWdpbi9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAncGx1Z2luLWNsaS1oYW5kbGVyLXJlZ2lzdHJhcicgZnJvbSAnLi9wbHVnaW4tY2xpLWhhbmRsZXItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCAqIGFzICdwb3BvdmVycycgZnJvbSAnLi9wb3BvdmVycy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyAncXVldWUnIGZyb20gJy4vcXVldWUudHMnO1xuZXhwb3J0ICogYXMgJ3JlYWN0JyBmcm9tICcuL3JlYWN0L2luZGV4LnRzJztcbmV4cG9ydCAqIGFzICdyZWZlcmVuY2UnIGZyb20gJy4vcmVmZXJlbmNlLnRzJztcbmV4cG9ydCAqIGFzICdyZXNvdXJjZS1sb2NrJyBmcm9tICcuL3Jlc291cmNlLWxvY2sudHMnO1xuZXhwb3J0ICogYXMgJ3Jlc291cmNlLXVybCcgZnJvbSAnLi9yZXNvdXJjZS11cmwudHMnO1xuZXhwb3J0ICogYXMgJ3JpYmJvbi1pY29uLXJlZ2lzdHJhcicgZnJvbSAnLi9yaWJib24taWNvbi1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3NldHRpbmctY29tcG9uZW50cycgZnJvbSAnLi9zZXR0aW5nLWNvbXBvbmVudHMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgJ3NldHRpbmctZXgnIGZyb20gJy4vc2V0dGluZy1leC50cyc7XG5leHBvcnQgKiBhcyAnc2V0dGluZy1ncm91cC1leCcgZnJvbSAnLi9zZXR0aW5nLWdyb3VwLWV4LnRzJztcbmV4cG9ydCAqIGFzICdzdGF0dXMtYmFyLWl0ZW0tcmVnaXN0cmFyJyBmcm9tICcuL3N0YXR1cy1iYXItaXRlbS1yZWdpc3RyYXIudHMnO1xuZXhwb3J0ICogYXMgJ3ZhbGlkYXRpb24nIGZyb20gJy4vdmFsaWRhdGlvbi50cyc7XG5leHBvcnQgKiBhcyAndmF1bHQtZGVsZXRlJyBmcm9tICcuL3ZhdWx0LWRlbGV0ZS50cyc7XG5leHBvcnQgKiBhcyAndmF1bHQtdHJhbnNhY3Rpb24nIGZyb20gJy4vdmF1bHQtdHJhbnNhY3Rpb24udHMnO1xuZXhwb3J0ICogYXMgJ3ZhdWx0JyBmcm9tICcuL3ZhdWx0LnRzJztcbmV4cG9ydCAqIGFzICd2aWV3LXJlZ2lzdHJhcicgZnJvbSAnLi92aWV3LXJlZ2lzdHJhci50cyc7XG5leHBvcnQgKiBhcyAnd29ya3NwYWNlJyBmcm9tICcuL3dvcmtzcGFjZS50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQSxnQ0FBQUE7QUFBQSxFQUFBO0FBQUEsNkJBQUFDO0FBQUEsRUFBQSx5QkFBQUM7QUFBQSxFQUFBLGdDQUFBQztBQUFBLEVBQUE7QUFBQSxnQ0FBQUM7QUFBQSxFQUFBO0FBQUE7QUFBQSx1Q0FBQUM7QUFBQSxFQUFBLHlDQUFBQztBQUFBLEVBQUEsNEJBQUFDO0FBQUEsRUFBQSwwQkFBQUM7QUFBQSxFQUFBLDJCQUFBQztBQUFBLEVBQUEsMkJBQUFDO0FBQUEsRUFBQTtBQUFBO0FBQUEscUJBQUFDO0FBQUEsRUFBQSxzQkFBQUM7QUFBQSxFQUFBO0FBQUEseUJBQUFDO0FBQUEsRUFBQSwyQkFBQUM7QUFBQSxFQUFBLG9DQUFBQztBQUFBLEVBQUEsbUNBQUFDO0FBQUEsRUFBQSwrQkFBQUM7QUFBQSxFQUFBO0FBQUEsc0NBQUFDO0FBQUEsRUFBQSxrQ0FBQUM7QUFBQSxFQUFBO0FBQUEsZ0NBQUFDO0FBQUEs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QkFBNkM7QUFDN0MsaUJBQThCO0FBQzlCLElBQUFDLGVBQWdDO0FBQ2hDLElBQUFDLG9CQUFxQztBQUNyQyxZQUF5QjtBQUN6QixJQUFBQyxpQkFBa0M7QUFDbEMsZ0JBQTZCOyIsCiAgIm5hbWVzIjogWyJhY3RpdmUtZmlsZS1wcm92aWRlciIsICJhc3luYy13aXRoLW5vdGljZSIsICJhdHRhY2htZW50LXBhdGgiLCAiYXR0YWNobWVudC11bml0LWZvbGRlciIsICJiYXNlcy12aWV3LXJlZ2lzdHJhciIsICJjYXNlLWluc2Vuc2l0aXZlLWZpbGUtaW5kZXgiLCAiY29kZS1ibG9jay1tYXJrZG93bi1pbmZvcm1hdGlvbiIsICJjb2RlLWJsb2NrLXJlZy1leHAiLCAiY29tbWFuZC1oYW5kbGVycyIsICJjb21tYW5kLXJlZ2lzdHJhciIsICJjb21tdW5pdHktcGx1Z2lucyIsICJjc3MtY2xhc3MiLCAiZGF0YS1oYW5kbGVyIiwgImRhdGF2aWV3LWxpbmsiLCAiZGVtby12YXVsdC1oZWxwZXIiLCAiZGVtby12YXVsdC1oZWxwZXItc2V0dGluZ3MiLCAiZGVza3RvcC1kZW1vLXZhdWx0LW9wZW5lciIsICJkZXNrdG9wLXRydXN0ZWQtaW5wdXQiLCAiZWRpdG9yLWV4dGVuc2lvbi1yZWdpc3RyYXIiLCAiZWRpdG9yLXN1Z2dlc3QtcmVnaXN0cmFyIiwgImV4dGVuc2lvbnMtcmVnaXN0cmFyIiwgImZpbGUtY2hhbmdlIiwgImZpbGUtbWFuYWdlciIsICJmaWxlLXN5c3RlbSIsICJmb2xkZXItbm90ZSIsICJmcm9udG1hdHRlci1saW5rLWNhY2hlLXdpdGgtb2Zmc2V0cyIsICJob3Zlci1saW5rLXNvdXJjZS1yZWdpc3RyYXIiLCAiaHRtbC1lbGVtZW50IiwgImlzLWluLW9ic2lkaWFuIiwgImxpbmstdXBkYXRlLXByb2dyZXNzIiwgIm1hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yIiwgIm1hcmtkb3duLWNvZGUtYmxvY2stcHJvY2Vzc29yLXJlZ2lzdHJhciIsICJtYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXIiLCAibWFya2Rvd24tdmlldyIsICJtZW51LWV2ZW50LXJlZ2lzdHJhciIsICJtZXRhZGF0YS1jYWNoZSIsICJub3RlYm9vay1uYXZpZ2F0b3IiLCAib2JzaWRpYW4tcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RyYXIiLCAib2JzaWRpYW4tc2V0dGluZ3MiLCAicGFyc2UtbGluayIsICJwYXRoLXNldHRpbmdzIiwgInBsdWdpbi1jbGktaGFuZGxlci1yZWdpc3RyYXIiLCAicmVzb3VyY2UtbG9jayIsICJyZXNvdXJjZS11cmwiLCAicmliYm9uLWljb24tcmVnaXN0cmFyIiwgInNldHRpbmctY29tcG9uZW50cyIsICJzZXR0aW5nLWV4IiwgInNldHRpbmctZ3JvdXAtZXgiLCAic3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhciIsICJ2YXVsdC1kZWxldGUiLCAidmF1bHQtdHJhbnNhY3Rpb24iLCAidmlldy1yZWdpc3RyYXIiXQp9Cg==
|
|
@@ -3,6 +3,7 @@ export * as 'active-file-provider' from './active-file-provider.cjs';
|
|
|
3
3
|
export * as 'app' from './app.cjs';
|
|
4
4
|
export * as 'async-with-notice' from './async-with-notice.cjs';
|
|
5
5
|
export * as 'attachment-path' from './attachment-path.cjs';
|
|
6
|
+
export * as 'attachment-unit-folder' from './attachment-unit-folder.cjs';
|
|
6
7
|
export * as 'backlink' from './backlink.cjs';
|
|
7
8
|
export * as 'bases-view-registrar' from './bases-view-registrar.cjs';
|
|
8
9
|
export * as 'callout' from './callout.cjs';
|