obsidian-dev-utils 12.0.1-beta.2 → 12.0.1-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/Async.cjs +6 -16
- package/dist/lib/Async.d.ts +1 -1
- package/dist/lib/Debug.cjs +58 -0
- package/dist/lib/Debug.d.ts +12 -0
- package/dist/lib/index.cjs +4 -1
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/obsidian/Logger.cjs +5 -15
- package/dist/lib/obsidian/Loop.cjs +3 -13
- package/dist/lib/obsidian/MetadataCache.cjs +7 -17
- package/dist/lib/obsidian/Plugin/PluginBase.cjs +3 -3
- package/dist/lib/obsidian/Plugin/PluginBase.d.ts +2 -1
- package/dist/lib/obsidian/RenameDeleteHandler.cjs +5 -15
- package/package.json +1 -1
package/dist/lib/Async.cjs
CHANGED
@@ -8,11 +8,9 @@ function __extractDefault(module){return module&&module.__esModule&&module.defau
|
|
8
8
|
(function patchRequireEsmDefault(){const __require=require;require=Object.assign(id=>{const module=__require(id)??{};return __extractDefault(module)},__require)})()
|
9
9
|
|
10
10
|
"use strict";
|
11
|
-
var __create = Object.create;
|
12
11
|
var __defProp = Object.defineProperty;
|
13
12
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
14
13
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
15
|
-
var __getProtoOf = Object.getPrototypeOf;
|
16
14
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
17
15
|
var __export = (target, all) => {
|
18
16
|
for (var name in all)
|
@@ -26,14 +24,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
26
24
|
}
|
27
25
|
return to;
|
28
26
|
};
|
29
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
30
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
31
|
-
// file that has been converted to a CommonJS file using a Babel-
|
32
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
33
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
34
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
35
|
-
mod
|
36
|
-
));
|
37
27
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
38
28
|
var Async_exports = {};
|
39
29
|
__export(Async_exports, {
|
@@ -52,7 +42,7 @@ __export(Async_exports, {
|
|
52
42
|
toArray: () => toArray
|
53
43
|
});
|
54
44
|
module.exports = __toCommonJS(Async_exports);
|
55
|
-
var
|
45
|
+
var import_Debug = require('./Debug.cjs');
|
56
46
|
var import_Error = require('./Error.cjs');
|
57
47
|
async function addErrorHandler(asyncFn) {
|
58
48
|
try {
|
@@ -110,11 +100,11 @@ async function retryWithTimeout(fn, retryOptions = {}) {
|
|
110
100
|
}
|
111
101
|
if (isSuccess) {
|
112
102
|
if (attempt > 1) {
|
113
|
-
|
103
|
+
(0, import_Debug.getDebugger)("obsidian-dev-utils:Async:runWithTimeout")(`Retry completed successfully after ${attempt.toString()} attempts`);
|
114
104
|
}
|
115
105
|
return;
|
116
106
|
}
|
117
|
-
|
107
|
+
(0, import_Debug.getDebugger)("obsidian-dev-utils:Async:runWithTimeout")(`Retry attempt ${attempt.toString()} completed unsuccessfully. Trying again in ${fullOptions.retryDelayInMilliseconds.toString()} milliseconds`, {
|
118
108
|
fn,
|
119
109
|
stackTrace
|
120
110
|
});
|
@@ -135,7 +125,7 @@ async function runWithTimeout(timeoutInMilliseconds, fn) {
|
|
135
125
|
result = await fn();
|
136
126
|
isTimedOut = false;
|
137
127
|
const duration = performance.now() - startTime;
|
138
|
-
|
128
|
+
(0, import_Debug.getDebugger)("obsidian-dev-utils:Async:runWithTimeout")(`Execution time: ${duration.toString()} milliseconds`, { fn });
|
139
129
|
}
|
140
130
|
async function timeout2() {
|
141
131
|
if (!isTimedOut) {
|
@@ -147,7 +137,7 @@ async function runWithTimeout(timeoutInMilliseconds, fn) {
|
|
147
137
|
}
|
148
138
|
const duration = performance.now() - startTime;
|
149
139
|
console.warn(`Timed out in ${duration.toString()} milliseconds`, { fn });
|
150
|
-
if (
|
140
|
+
if ((0, import_Debug.getDebugger)("obsidian-dev-utils:Async:timeout").enabled) {
|
151
141
|
console.warn("The execution is not terminated because localStorage.debug='obsidian-dev-utils:Async:timeout' is enabled. See https://github.com/debug-js/debug?tab=readme-ov-file#browser-support for more information");
|
152
142
|
await timeout2();
|
153
143
|
}
|
@@ -183,4 +173,4 @@ async function toArray(iter) {
|
|
183
173
|
timeout,
|
184
174
|
toArray
|
185
175
|
});
|
186
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0FzeW5jLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBBc3luY1xuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGFzeW5jaHJvbm91cyBvcGVyYXRpb25zLlxuICovXG5cbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5cbmltcG9ydCB7XG4gIGVtaXRBc3luY0Vycm9yRXZlbnQsXG4gIGdldFN0YWNrVHJhY2UsXG4gIHByaW50RXJyb3Jcbn0gZnJvbSAnLi9FcnJvci50cyc7XG5cbi8qKlxuICogQSB0eXBlIHJlcHJlc2VudGluZyBhIHZhbHVlIHRoYXQgY2FuIGVpdGhlciBiZSBhIGRpcmVjdCB2YWx1ZSBvciBhIFByb21pc2UgcmVzb2x2aW5nIHRvIHRoYXQgdmFsdWUuXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUuXG4gKi9cbmV4cG9ydCB0eXBlIE1heWJlUHJvbWlzZTxUPiA9IFByb21pc2U8VD4gfCBUO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHRoZSByZXRyeSBiZWhhdmlvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXRyeU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGFib3J0IHNpZ25hbCB0byBjYW5jZWwgdGhlIHJldHJ5IG9wZXJhdGlvbi5cbiAgICovXG4gIGFib3J0U2lnbmFsPzogQWJvcnRTaWduYWw7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWxheSBpbiBtaWxsaXNlY29uZHMgYmV0d2VlbiByZXRyeSBhdHRlbXB0cy5cbiAgICovXG4gIHJldHJ5RGVsYXlJbk1pbGxpc2Vjb25kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byByZXRyeSB0aGUgZnVuY3Rpb24gb24gZXJyb3IuXG4gICAqL1xuICBzaG91bGRSZXRyeU9uRXJyb3I/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSB0aW1lIGluIG1pbGxpc2Vjb25kcyB0byB3YWl0IGJlZm9yZSBnaXZpbmcgdXAgb24gcmV0cnlpbmcuXG4gICAqL1xuICB0aW1lb3V0SW5NaWxsaXNlY29uZHM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQSBtYXJrZXIgaW50ZXJmYWNlIHRvIGluZGljYXRlIHRoYXQgYW4gZXJyb3Igc2hvdWxkIHRlcm1pbmF0ZSByZXRyeSBsb2dpYy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXJtaW5hdGVSZXRyeSB7XG4gIC8qKlxuICAgKiBBIG1hcmtlciBwcm9wZXJ0eSB0byBpbmRpY2F0ZSB0aGF0IGFuIGVycm9yIHNob3VsZCB0ZXJtaW5hdGUgcmV0cnkgbG9naWMuXG4gICAqL1xuICBfX3Rlcm1pbmF0ZVJldHJ5OiB0cnVlO1xufVxuXG4vKipcbiAqIEFkZHMgYW4gZXJyb3IgaGFuZGxlciB0byBhIFByb21pc2UgdGhhdCBjYXRjaGVzIGFueSBlcnJvcnMgYW5kIGVtaXRzIGFuIGFzeW5jIGVycm9yIGV2ZW50LlxuICpcbiAqIEBwYXJhbSBhc3luY0ZuIC0gVGhlIGFzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBhZGQgYW4gZXJyb3IgaGFuZGxlciB0by5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGFzeW5jaHJvbm91cyBmdW5jdGlvbiBjb21wbGV0ZXMgb3IgZW1pdHMgYXN5bmMgZXJyb3IgZXZlbnQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhZGRFcnJvckhhbmRsZXIoYXN5bmNGbjogKCkgPT4gUHJvbWlzZTx1bmtub3duPik6IFByb21pc2U8dm9pZD4ge1xuICB0cnkge1xuICAgIGF3YWl0IGFzeW5jRm4oKTtcbiAgfSBjYXRjaCAoYXN5bmNFcnJvcikge1xuICAgIGVtaXRBc3luY0Vycm9yRXZlbnQoYXN5bmNFcnJvcik7XG4gIH1cbn1cblxuLyoqXG4gKiBGaWx0ZXJzIGFuIGFycmF5IGFzeW5jaHJvbm91c2x5LCBrZWVwaW5nIG9ubHkgdGhlIGVsZW1lbnRzIHRoYXQgc2F0aXNmeSB0aGUgcHJvdmlkZWQgcHJlZGljYXRlIGZ1bmN0aW9uLlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIGVsZW1lbnRzIGluIHRoZSBpbnB1dCBhcnJheS5cbiAqIEBwYXJhbSBhcnIgLSBUaGUgYXJyYXkgdG8gZmlsdGVyLlxuICogQHBhcmFtIHByZWRpY2F0ZSAtIFRoZSBwcmVkaWNhdGUgZnVuY3Rpb24gdG8gdGVzdCBlYWNoIGVsZW1lbnQuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGFuIGFycmF5IG9mIGVsZW1lbnRzIHRoYXQgc2F0aXNmeSB0aGUgcHJlZGljYXRlIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNGaWx0ZXI8VD4oYXJyOiBUW10sIHByZWRpY2F0ZTogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogVFtdKSA9PiBNYXliZVByb21pc2U8Ym9vbGVhbj4pOiBQcm9taXNlPFRbXT4ge1xuICBjb25zdCBwcmVkaWNhdGVSZXN1bHRzID0gYXdhaXQgYXN5bmNNYXAoYXJyLCBwcmVkaWNhdGUpO1xuICByZXR1cm4gYXJyLmZpbHRlcigoXywgaW5kZXgpID0+IHByZWRpY2F0ZVJlc3VsdHNbaW5kZXhdKTtcbn1cblxuLyoqXG4gKiBNYXBzIG92ZXIgYW4gYXJyYXkgYXN5bmNocm9ub3VzbHksIGFwcGx5aW5nIHRoZSBwcm92aWRlZCBjYWxsYmFjayBmdW5jdGlvbiB0byBlYWNoIGVsZW1lbnQsIGFuZCB0aGVuIGZsYXR0ZW5zIHRoZSByZXN1bHRzIGludG8gYSBzaW5nbGUgYXJyYXkuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgZWxlbWVudHMgaW4gdGhlIGlucHV0IGFycmF5LlxuICogQHR5cGVQYXJhbSBVIC0gVGhlIHR5cGUgb2YgZWxlbWVudHMgaW4gdGhlIG91dHB1dCBhcnJheS5cbiAqIEBwYXJhbSBhcnIgLSBUaGUgYXJyYXkgdG8gbWFwIG92ZXIgYW5kIGZsYXR0ZW4uXG4gKiBAcGFyYW0gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYXBwbHkgdG8gZWFjaCBlbGVtZW50LlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBhIGZsYXR0ZW5lZCBhcnJheSBvZiB0aGUgcmVzdWx0cyBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhc3luY0ZsYXRNYXA8VCwgVT4oYXJyOiBUW10sIGNhbGxiYWNrOiAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIsIGFycmF5OiBUW10pID0+IE1heWJlUHJvbWlzZTxVW10+KTogUHJvbWlzZTxVW10+IHtcbiAgcmV0dXJuIChhd2FpdCBhc3luY01hcChhcnIsIGNhbGxiYWNrKSkuZmxhdCgpO1xufVxuXG4vKipcbiAqIE1hcHMgb3ZlciBhbiBhcnJheSBhc3luY2hyb25vdXNseSwgYXBwbHlpbmcgdGhlIHByb3ZpZGVkIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGVhY2ggZWxlbWVudC5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiBlbGVtZW50cyBpbiB0aGUgaW5wdXQgYXJyYXkuXG4gKiBAdHlwZVBhcmFtIFUgLSBUaGUgdHlwZSBvZiBlbGVtZW50cyBpbiB0aGUgb3V0cHV0IGFycmF5LlxuICogQHBhcmFtIGFyciAtIFRoZSBhcnJheSB0byBtYXAgb3Zlci5cbiAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byBhcHBseSB0byBlYWNoIGVsZW1lbnQuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGFuIGFycmF5IG9mIHRoZSByZXN1bHRzIG9mIHRoZSBjYWxsYmFjayBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jTWFwPFQsIFU+KGFycjogVFtdLCBjYWxsYmFjazogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogVFtdKSA9PiBNYXliZVByb21pc2U8VT4pOiBQcm9taXNlPFVbXT4ge1xuICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoYXJyLm1hcChjYWxsYmFjaykpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIGFzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBhIHN5bmNocm9ub3VzIG9uZSBieSBhdXRvbWF0aWNhbGx5IGhhbmRsaW5nIHRoZSBQcm9taXNlIHJlamVjdGlvbi5cbiAqXG4gKiBAdHlwZVBhcmFtIEFyZ3MgLSBUaGUgdHlwZXMgb2YgdGhlIGFyZ3VtZW50cyB0aGUgZnVuY3Rpb24gYWNjZXB0cy5cbiAqIEBwYXJhbSBhc3luY0Z1bmMgLSBUaGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRoYXQgd3JhcHMgdGhlIGFzeW5jaHJvbm91cyBmdW5jdGlvbiBpbiBhIHN5bmNocm9ub3VzIGludGVyZmFjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRBc3luY1RvU3luYzxBcmdzIGV4dGVuZHMgdW5rbm93bltdPihhc3luY0Z1bmM6ICguLi5hcmdzOiBBcmdzKSA9PiBQcm9taXNlPHVua25vd24+KTogKC4uLmFyZ3M6IEFyZ3MpID0+IHZvaWQge1xuICByZXR1cm4gKC4uLmFyZ3M6IEFyZ3MpOiB2b2lkID0+IHtcbiAgICBpbnZva2VBc3luY1NhZmVseSgoKSA9PiBhc3luY0Z1bmMoLi4uYXJncykpO1xuICB9O1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gYW4gYXN5bmNocm9ub3VzIG9uZSBieSB3cmFwcGluZyBpdCBpbiBhIFByb21pc2UuXG4gKlxuICogQHR5cGVQYXJhbSBBcmdzIC0gVGhlIHR5cGVzIG9mIHRoZSBhcmd1bWVudHMgdGhlIGZ1bmN0aW9uIGFjY2VwdHMuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdCAtIFRoZSB0eXBlIG9mIHRoZSBmdW5jdGlvbidzIHJldHVybiB2YWx1ZS5cbiAqIEBwYXJhbSBzeW5jRm4gLSBUaGUgc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gY29udmVydC5cbiAqIEByZXR1cm5zIEEgZnVuY3Rpb24gdGhhdCB3cmFwcyB0aGUgc3luY2hyb25vdXMgZnVuY3Rpb24gaW4gYW4gYXN5bmNocm9ub3VzIGludGVyZmFjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRTeW5jVG9Bc3luYzxBcmdzIGV4dGVuZHMgdW5rbm93bltdLCBSZXN1bHQ+KHN5bmNGbjogKC4uLmFyZ3M6IEFyZ3MpID0+IFJlc3VsdCk6ICguLi5hcmdzOiBBcmdzKSA9PiBQcm9taXNlPFJlc3VsdD4ge1xuICByZXR1cm4gKC4uLmFyZ3M6IEFyZ3MpOiBQcm9taXNlPFJlc3VsdD4gPT4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiBzeW5jRm4oLi4uYXJncykpO1xufVxuXG4vKipcbiAqIEludm9rZXMgYSBQcm9taXNlIGFuZCBzYWZlbHkgaGFuZGxlcyBhbnkgZXJyb3JzIGJ5IGNhdGNoaW5nIHRoZW0gYW5kIGVtaXR0aW5nIGFuIGFzeW5jIGVycm9yIGV2ZW50LlxuICpcbiAqIEBwYXJhbSBhc3luY0ZuIC0gVGhlIGFzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBpbnZva2Ugc2FmZWx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW52b2tlQXN5bmNTYWZlbHkoYXN5bmNGbjogKCkgPT4gUHJvbWlzZTx1bmtub3duPik6IHZvaWQge1xuICB2b2lkIGFkZEVycm9ySGFuZGxlcihhc3luY0ZuKTtcbn1cblxuLyoqXG4gKiBNYXJrcyBhbiBlcnJvciB0byB0ZXJtaW5hdGUgcmV0cnkgbG9naWMuXG4gKlxuICogQHBhcmFtIGVycm9yIC0gVGhlIGVycm9yIHRvIG1hcmsgdG8gdGVybWluYXRlIHJldHJ5IGxvZ2ljLlxuICogQHJldHVybnMgQW4gZXJyb3IgdGhhdCBzaG91bGQgdGVybWluYXRlIHJldHJ5IGxvZ2ljLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFya3NBc1Rlcm1pbmF0ZVJldHJ5PFRFcnJvciBleHRlbmRzIEVycm9yPihlcnJvcjogVEVycm9yKTogVGVybWluYXRlUmV0cnkgJiBURXJyb3Ige1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbihlcnJvciwgeyBfX3Rlcm1pbmF0ZVJldHJ5OiB0cnVlIH0gYXMgVGVybWluYXRlUmV0cnkpO1xufVxuXG4vKipcbiAqIFJldHJpZXMgdGhlIHByb3ZpZGVkIGZ1bmN0aW9uIHVudGlsIGl0IHJldHVybnMgdHJ1ZSBvciB0aGUgdGltZW91dCBpcyByZWFjaGVkLlxuICpcbiAqIEBwYXJhbSBmbiAtIFRoZSBmdW5jdGlvbiB0byByZXRyeS5cbiAqIEBwYXJhbSByZXRyeU9wdGlvbnMgLSBPcHRpb25hbCBwYXJhbWV0ZXJzIHRvIGNvbmZpZ3VyZSB0aGUgcmV0cnkgYmVoYXZpb3IuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmdW5jdGlvbiByZXR1cm5zIHRydWUgb3IgcmVqZWN0cyB3aGVuIHRoZSB0aW1lb3V0IGlzIHJlYWNoZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXRyeVdpdGhUaW1lb3V0KGZuOiAoKSA9PiBNYXliZVByb21pc2U8Ym9vbGVhbj4sIHJldHJ5T3B0aW9uczogUmV0cnlPcHRpb25zID0ge30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3Qgc3RhY2tUcmFjZSA9IGdldFN0YWNrVHJhY2UoKTtcbiAgY29uc3QgREVGQVVMVF9SRVRSWV9PUFRJT05TID0ge1xuICAgIHJldHJ5RGVsYXlJbk1pbGxpc2Vjb25kczogMTAwLFxuICAgIHNob3VsZFJldHJ5T25FcnJvcjogZmFsc2UsXG4gICAgdGltZW91dEluTWlsbGlzZWNvbmRzOiA1MDAwXG4gIH07XG4gIGNvbnN0IGZ1bGxPcHRpb25zID0geyAuLi5ERUZBVUxUX1JFVFJZX09QVElPTlMsIC4uLnJldHJ5T3B0aW9ucyB9O1xuICBhd2FpdCBydW5XaXRoVGltZW91dChmdWxsT3B0aW9ucy50aW1lb3V0SW5NaWxsaXNlY29uZHMsIGFzeW5jICgpID0+IHtcbiAgICBsZXQgYXR0ZW1wdCA9IDA7XG4gICAgZm9yICg7IDspIHtcbiAgICAgIGZ1bGxPcHRpb25zLmFib3J0U2lnbmFsPy50aHJvd0lmQWJvcnRlZCgpO1xuICAgICAgYXR0ZW1wdCsrO1xuICAgICAgbGV0IGlzU3VjY2VzczogYm9vbGVhbjtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlzU3VjY2VzcyA9IGF3YWl0IGZuKCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoIWZ1bGxPcHRpb25zLnNob3VsZFJldHJ5T25FcnJvciB8fCAoZXJyb3IgYXMgUGFydGlhbDxUZXJtaW5hdGVSZXRyeT4pLl9fdGVybWluYXRlUmV0cnkpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBwcmludEVycm9yKGVycm9yKTtcbiAgICAgICAgaXNTdWNjZXNzID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAoaXNTdWNjZXNzKSB7XG4gICAgICAgIGlmIChhdHRlbXB0ID4gMSkge1xuICAgICAgICAgIGRlYnVnLmRlZmF1bHQoJ29ic2lkaWFuLWRldi11dGlsczpBc3luYzpydW5XaXRoVGltZW91dCcpLmxvZyhgUmV0cnkgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSBhZnRlciAke2F0dGVtcHQudG9TdHJpbmcoKX0gYXR0ZW1wdHNgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGRlYnVnLmRlZmF1bHQoJ29ic2lkaWFuLWRldi11dGlsczpBc3luYzpydW5XaXRoVGltZW91dCcpLmxvZyhgUmV0cnkgYXR0ZW1wdCAke2F0dGVtcHQudG9TdHJpbmcoKX0gY29tcGxldGVkIHVuc3VjY2Vzc2Z1bGx5LiBUcnlpbmcgYWdhaW4gaW4gJHtmdWxsT3B0aW9ucy5yZXRyeURlbGF5SW5NaWxsaXNlY29uZHMudG9TdHJpbmcoKX0gbWlsbGlzZWNvbmRzYCwge1xuICAgICAgICBmbixcbiAgICAgICAgc3RhY2tUcmFjZVxuICAgICAgfSk7XG4gICAgICBhd2FpdCBzbGVlcChmdWxsT3B0aW9ucy5yZXRyeURlbGF5SW5NaWxsaXNlY29uZHMpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogRXhlY3V0ZXMgYSBmdW5jdGlvbiB3aXRoIGEgdGltZW91dC4gSWYgdGhlIGZ1bmN0aW9uIGRvZXMgbm90IGNvbXBsZXRlIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHRpbWUsIGl0IGlzIGNvbnNpZGVyZWQgdG8gaGF2ZSB0aW1lZCBvdXQuXG4gKlxuICogSWYgYHdpbmRvdy5ERUJVR2AgaXMgc2V0LCB0aGUgZXhlY3V0aW9uIGlzIG5vdCB0ZXJtaW5hdGVkIGFmdGVyIHRoZSB0aW1lb3V0IGFuZCB0aGUgZnVuY3Rpb24gaXMgYWxsb3dlZCB0byBydW4gaW5kZWZpbml0ZWx5LlxuICpcbiAqIEB0eXBlUGFyYW0gUiAtIFRoZSB0eXBlIG9mIHRoZSByZXN1bHQgZnJvbSB0aGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uLlxuICogQHBhcmFtIHRpbWVvdXRJbk1pbGxpc2Vjb25kcyAtIFRoZSBtYXhpbXVtIHRpbWUgdG8gd2FpdCBpbiBtaWxsaXNlY29uZHMuXG4gKiBAcGFyYW0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gZXhlY3V0ZS5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgYXN5bmNocm9ub3VzIGZ1bmN0aW9uIG9yIHJlamVjdHMgaWYgaXQgdGltZXMgb3V0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuV2l0aFRpbWVvdXQ8Uj4odGltZW91dEluTWlsbGlzZWNvbmRzOiBudW1iZXIsIGZuOiAoKSA9PiBNYXliZVByb21pc2U8Uj4pOiBQcm9taXNlPFI+IHtcbiAgbGV0IGlzVGltZWRPdXQgPSB0cnVlO1xuICBsZXQgcmVzdWx0OiBSID0gbnVsbCBhcyBSO1xuICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgYXdhaXQgUHJvbWlzZS5yYWNlKFtydW4oKSwgdGltZW91dCgpXSk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXG4gIGlmIChpc1RpbWVkT3V0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaW1lZCBvdXQnKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xuXG4gIGFzeW5jIGZ1bmN0aW9uIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXN1bHQgPSBhd2FpdCBmbigpO1xuICAgIGlzVGltZWRPdXQgPSBmYWxzZTtcbiAgICBjb25zdCBkdXJhdGlvbiA9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgIGRlYnVnLmRlZmF1bHQoJ29ic2lkaWFuLWRldi11dGlsczpBc3luYzpydW5XaXRoVGltZW91dCcpLmxvZyhgRXhlY3V0aW9uIHRpbWU6ICR7ZHVyYXRpb24udG9TdHJpbmcoKX0gbWlsbGlzZWNvbmRzYCwgeyBmbiB9KTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIHRpbWVvdXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFpc1RpbWVkT3V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGF3YWl0IHNsZWVwKHRpbWVvdXRJbk1pbGxpc2Vjb25kcyk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bm5lY2Vzc2FyeS1jb25kaXRpb25cbiAgICBpZiAoIWlzVGltZWRPdXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZHVyYXRpb24gPSBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICBjb25zb2xlLndhcm4oYFRpbWVkIG91dCBpbiAke2R1cmF0aW9uLnRvU3RyaW5nKCl9IG1pbGxpc2Vjb25kc2AsIHsgZm4gfSk7XG4gICAgaWYgKGRlYnVnLmRlZmF1bHQuZW5hYmxlZCgnb2JzaWRpYW4tZGV2LXV0aWxzOkFzeW5jOnRpbWVvdXQnKSkge1xuICAgICAgY29uc29sZS53YXJuKCdUaGUgZXhlY3V0aW9uIGlzIG5vdCB0ZXJtaW5hdGVkIGJlY2F1c2UgbG9jYWxTdG9yYWdlLmRlYnVnPVxcJ29ic2lkaWFuLWRldi11dGlsczpBc3luYzp0aW1lb3V0XFwnIGlzIGVuYWJsZWQuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZGVidWctanMvZGVidWc/dGFiPXJlYWRtZS1vdi1maWxlI2Jyb3dzZXItc3VwcG9ydCBmb3IgbW9yZSBpbmZvcm1hdGlvbicpO1xuICAgICAgYXdhaXQgdGltZW91dCgpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIERlbGF5cyBleGVjdXRpb24gZm9yIGEgc3BlY2lmaWVkIG51bWJlciBvZiBtaWxsaXNlY29uZHMuXG4gKlxuICogQHBhcmFtIG1pbGxpc2Vjb25kcyAtIFRoZSB0aW1lIHRvIHdhaXQgaW4gbWlsbGlzZWNvbmRzLlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBkZWxheS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNsZWVwKG1pbGxpc2Vjb25kczogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIG1pbGxpc2Vjb25kcykpO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVqZWN0cyBhZnRlciB0aGUgc3BlY2lmaWVkIHRpbWVvdXQgcGVyaW9kLlxuICpcbiAqIEBwYXJhbSB0aW1lb3V0SW5NaWxsaXNlY29uZHMgLSBUaGUgdGltZW91dCBwZXJpb2QgaW4gbWlsbGlzZWNvbmRzLlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgYWx3YXlzIHJlamVjdHMgd2l0aCBhIHRpbWVvdXQgZXJyb3IuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0aW1lb3V0KHRpbWVvdXRJbk1pbGxpc2Vjb25kczogbnVtYmVyKTogUHJvbWlzZTxuZXZlcj4ge1xuICBhd2FpdCBzbGVlcCh0aW1lb3V0SW5NaWxsaXNlY29uZHMpO1xuICB0aHJvdyBuZXcgRXJyb3IoYFRpbWVkIG91dCBpbiAke3RpbWVvdXRJbk1pbGxpc2Vjb25kcy50b1N0cmluZygpfSBtaWxsaXNlY29uZHNgKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBBc3luY0l0ZXJhYmxlSXRlcmF0b3IgdG8gYW4gYXJyYXkgYnkgY29uc3VtaW5nIGFsbCBpdHMgZWxlbWVudHMuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgZWxlbWVudHMgcHJvZHVjZWQgYnkgdGhlIEFzeW5jSXRlcmFibGVJdGVyYXRvci5cbiAqIEBwYXJhbSBpdGVyIC0gVGhlIEFzeW5jSXRlcmFibGVJdGVyYXRvciB0byBjb252ZXJ0LlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBhbiBhcnJheSBvZiBhbGwgdGhlIGVsZW1lbnRzIGluIHRoZSBBc3luY0l0ZXJhYmxlSXRlcmF0b3IuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0b0FycmF5PFQ+KGl0ZXI6IEFzeW5jSXRlcmFibGVJdGVyYXRvcjxUPik6IFByb21pc2U8VFtdPiB7XG4gIGNvbnN0IGFycjogVFtdID0gW107XG4gIGZvciBhd2FpdCAoY29uc3QgaXRlbSBvZiBpdGVyKSB7XG4gICAgYXJyLnB1c2goaXRlbSk7XG4gIH1cbiAgcmV0dXJuIGFycjtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0EsbUJBQWtCO0FBRWxC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
|
176
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0FzeW5jLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBBc3luY1xuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGFzeW5jaHJvbm91cyBvcGVyYXRpb25zLlxuICovXG5cbmltcG9ydCB7IGdldERlYnVnZ2VyIH0gZnJvbSAnLi9EZWJ1Zy50cyc7XG5pbXBvcnQge1xuICBlbWl0QXN5bmNFcnJvckV2ZW50LFxuICBnZXRTdGFja1RyYWNlLFxuICBwcmludEVycm9yXG59IGZyb20gJy4vRXJyb3IudHMnO1xuXG4vKipcbiAqIEEgdHlwZSByZXByZXNlbnRpbmcgYSB2YWx1ZSB0aGF0IGNhbiBlaXRoZXIgYmUgYSBkaXJlY3QgdmFsdWUgb3IgYSBQcm9taXNlIHJlc29sdmluZyB0byB0aGF0IHZhbHVlLlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlLlxuICovXG5leHBvcnQgdHlwZSBNYXliZVByb21pc2U8VD4gPSBQcm9taXNlPFQ+IHwgVDtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgcmV0cnkgYmVoYXZpb3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBhYm9ydCBzaWduYWwgdG8gY2FuY2VsIHRoZSByZXRyeSBvcGVyYXRpb24uXG4gICAqL1xuICBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVsYXkgaW4gbWlsbGlzZWNvbmRzIGJldHdlZW4gcmV0cnkgYXR0ZW1wdHMuXG4gICAqL1xuICByZXRyeURlbGF5SW5NaWxsaXNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmV0cnkgdGhlIGZ1bmN0aW9uIG9uIGVycm9yLlxuICAgKi9cbiAgc2hvdWxkUmV0cnlPbkVycm9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZWZvcmUgZ2l2aW5nIHVwIG9uIHJldHJ5aW5nLlxuICAgKi9cbiAgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgbWFya2VyIGludGVyZmFjZSB0byBpbmRpY2F0ZSB0aGF0IGFuIGVycm9yIHNob3VsZCB0ZXJtaW5hdGUgcmV0cnkgbG9naWMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVybWluYXRlUmV0cnkge1xuICAvKipcbiAgICogQSBtYXJrZXIgcHJvcGVydHkgdG8gaW5kaWNhdGUgdGhhdCBhbiBlcnJvciBzaG91bGQgdGVybWluYXRlIHJldHJ5IGxvZ2ljLlxuICAgKi9cbiAgX190ZXJtaW5hdGVSZXRyeTogdHJ1ZTtcbn1cblxuLyoqXG4gKiBBZGRzIGFuIGVycm9yIGhhbmRsZXIgdG8gYSBQcm9taXNlIHRoYXQgY2F0Y2hlcyBhbnkgZXJyb3JzIGFuZCBlbWl0cyBhbiBhc3luYyBlcnJvciBldmVudC5cbiAqXG4gKiBAcGFyYW0gYXN5bmNGbiAtIFRoZSBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gYWRkIGFuIGVycm9yIGhhbmRsZXIgdG8uXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBhc3luY2hyb25vdXMgZnVuY3Rpb24gY29tcGxldGVzIG9yIGVtaXRzIGFzeW5jIGVycm9yIGV2ZW50LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkRXJyb3JIYW5kbGVyKGFzeW5jRm46ICgpID0+IFByb21pc2U8dW5rbm93bj4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBhc3luY0ZuKCk7XG4gIH0gY2F0Y2ggKGFzeW5jRXJyb3IpIHtcbiAgICBlbWl0QXN5bmNFcnJvckV2ZW50KGFzeW5jRXJyb3IpO1xuICB9XG59XG5cbi8qKlxuICogRmlsdGVycyBhbiBhcnJheSBhc3luY2hyb25vdXNseSwga2VlcGluZyBvbmx5IHRoZSBlbGVtZW50cyB0aGF0IHNhdGlzZnkgdGhlIHByb3ZpZGVkIHByZWRpY2F0ZSBmdW5jdGlvbi5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiBlbGVtZW50cyBpbiB0aGUgaW5wdXQgYXJyYXkuXG4gKiBAcGFyYW0gYXJyIC0gVGhlIGFycmF5IHRvIGZpbHRlci5cbiAqIEBwYXJhbSBwcmVkaWNhdGUgLSBUaGUgcHJlZGljYXRlIGZ1bmN0aW9uIHRvIHRlc3QgZWFjaCBlbGVtZW50LlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBhbiBhcnJheSBvZiBlbGVtZW50cyB0aGF0IHNhdGlzZnkgdGhlIHByZWRpY2F0ZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jRmlsdGVyPFQ+KGFycjogVFtdLCBwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRbXSkgPT4gTWF5YmVQcm9taXNlPGJvb2xlYW4+KTogUHJvbWlzZTxUW10+IHtcbiAgY29uc3QgcHJlZGljYXRlUmVzdWx0cyA9IGF3YWl0IGFzeW5jTWFwKGFyciwgcHJlZGljYXRlKTtcbiAgcmV0dXJuIGFyci5maWx0ZXIoKF8sIGluZGV4KSA9PiBwcmVkaWNhdGVSZXN1bHRzW2luZGV4XSk7XG59XG5cbi8qKlxuICogTWFwcyBvdmVyIGFuIGFycmF5IGFzeW5jaHJvbm91c2x5LCBhcHBseWluZyB0aGUgcHJvdmlkZWQgY2FsbGJhY2sgZnVuY3Rpb24gdG8gZWFjaCBlbGVtZW50LCBhbmQgdGhlbiBmbGF0dGVucyB0aGUgcmVzdWx0cyBpbnRvIGEgc2luZ2xlIGFycmF5LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIGVsZW1lbnRzIGluIHRoZSBpbnB1dCBhcnJheS5cbiAqIEB0eXBlUGFyYW0gVSAtIFRoZSB0eXBlIG9mIGVsZW1lbnRzIGluIHRoZSBvdXRwdXQgYXJyYXkuXG4gKiBAcGFyYW0gYXJyIC0gVGhlIGFycmF5IHRvIG1hcCBvdmVyIGFuZCBmbGF0dGVuLlxuICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIGVhY2ggZWxlbWVudC5cbiAqIEByZXR1cm5zIEEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggYSBmbGF0dGVuZWQgYXJyYXkgb2YgdGhlIHJlc3VsdHMgb2YgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNGbGF0TWFwPFQsIFU+KGFycjogVFtdLCBjYWxsYmFjazogKHZhbHVlOiBULCBpbmRleDogbnVtYmVyLCBhcnJheTogVFtdKSA9PiBNYXliZVByb21pc2U8VVtdPik6IFByb21pc2U8VVtdPiB7XG4gIHJldHVybiAoYXdhaXQgYXN5bmNNYXAoYXJyLCBjYWxsYmFjaykpLmZsYXQoKTtcbn1cblxuLyoqXG4gKiBNYXBzIG92ZXIgYW4gYXJyYXkgYXN5bmNocm9ub3VzbHksIGFwcGx5aW5nIHRoZSBwcm92aWRlZCBjYWxsYmFjayBmdW5jdGlvbiB0byBlYWNoIGVsZW1lbnQuXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgZWxlbWVudHMgaW4gdGhlIGlucHV0IGFycmF5LlxuICogQHR5cGVQYXJhbSBVIC0gVGhlIHR5cGUgb2YgZWxlbWVudHMgaW4gdGhlIG91dHB1dCBhcnJheS5cbiAqIEBwYXJhbSBhcnIgLSBUaGUgYXJyYXkgdG8gbWFwIG92ZXIuXG4gKiBAcGFyYW0gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYXBwbHkgdG8gZWFjaCBlbGVtZW50LlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2l0aCBhbiBhcnJheSBvZiB0aGUgcmVzdWx0cyBvZiB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhc3luY01hcDxULCBVPihhcnI6IFRbXSwgY2FsbGJhY2s6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRbXSkgPT4gTWF5YmVQcm9taXNlPFU+KTogUHJvbWlzZTxVW10+IHtcbiAgcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKGFyci5tYXAoY2FsbGJhY2spKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gYSBzeW5jaHJvbm91cyBvbmUgYnkgYXV0b21hdGljYWxseSBoYW5kbGluZyB0aGUgUHJvbWlzZSByZWplY3Rpb24uXG4gKlxuICogQHR5cGVQYXJhbSBBcmdzIC0gVGhlIHR5cGVzIG9mIHRoZSBhcmd1bWVudHMgdGhlIGZ1bmN0aW9uIGFjY2VwdHMuXG4gKiBAcGFyYW0gYXN5bmNGdW5jIC0gVGhlIGFzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBjb252ZXJ0LlxuICogQHJldHVybnMgQSBmdW5jdGlvbiB0aGF0IHdyYXBzIHRoZSBhc3luY2hyb25vdXMgZnVuY3Rpb24gaW4gYSBzeW5jaHJvbm91cyBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0QXN5bmNUb1N5bmM8QXJncyBleHRlbmRzIHVua25vd25bXT4oYXN5bmNGdW5jOiAoLi4uYXJnczogQXJncykgPT4gUHJvbWlzZTx1bmtub3duPik6ICguLi5hcmdzOiBBcmdzKSA9PiB2b2lkIHtcbiAgcmV0dXJuICguLi5hcmdzOiBBcmdzKTogdm9pZCA9PiB7XG4gICAgaW52b2tlQXN5bmNTYWZlbHkoKCkgPT4gYXN5bmNGdW5jKC4uLmFyZ3MpKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIHN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIGFuIGFzeW5jaHJvbm91cyBvbmUgYnkgd3JhcHBpbmcgaXQgaW4gYSBQcm9taXNlLlxuICpcbiAqIEB0eXBlUGFyYW0gQXJncyAtIFRoZSB0eXBlcyBvZiB0aGUgYXJndW1lbnRzIHRoZSBmdW5jdGlvbiBhY2NlcHRzLlxuICogQHR5cGVQYXJhbSBSZXN1bHQgLSBUaGUgdHlwZSBvZiB0aGUgZnVuY3Rpb24ncyByZXR1cm4gdmFsdWUuXG4gKiBAcGFyYW0gc3luY0ZuIC0gVGhlIHN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRoYXQgd3JhcHMgdGhlIHN5bmNocm9ub3VzIGZ1bmN0aW9uIGluIGFuIGFzeW5jaHJvbm91cyBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0U3luY1RvQXN5bmM8QXJncyBleHRlbmRzIHVua25vd25bXSwgUmVzdWx0PihzeW5jRm46ICguLi5hcmdzOiBBcmdzKSA9PiBSZXN1bHQpOiAoLi4uYXJnczogQXJncykgPT4gUHJvbWlzZTxSZXN1bHQ+IHtcbiAgcmV0dXJuICguLi5hcmdzOiBBcmdzKTogUHJvbWlzZTxSZXN1bHQ+ID0+IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gc3luY0ZuKC4uLmFyZ3MpKTtcbn1cblxuLyoqXG4gKiBJbnZva2VzIGEgUHJvbWlzZSBhbmQgc2FmZWx5IGhhbmRsZXMgYW55IGVycm9ycyBieSBjYXRjaGluZyB0aGVtIGFuZCBlbWl0dGluZyBhbiBhc3luYyBlcnJvciBldmVudC5cbiAqXG4gKiBAcGFyYW0gYXN5bmNGbiAtIFRoZSBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gaW52b2tlIHNhZmVseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGludm9rZUFzeW5jU2FmZWx5KGFzeW5jRm46ICgpID0+IFByb21pc2U8dW5rbm93bj4pOiB2b2lkIHtcbiAgdm9pZCBhZGRFcnJvckhhbmRsZXIoYXN5bmNGbik7XG59XG5cbi8qKlxuICogTWFya3MgYW4gZXJyb3IgdG8gdGVybWluYXRlIHJldHJ5IGxvZ2ljLlxuICpcbiAqIEBwYXJhbSBlcnJvciAtIFRoZSBlcnJvciB0byBtYXJrIHRvIHRlcm1pbmF0ZSByZXRyeSBsb2dpYy5cbiAqIEByZXR1cm5zIEFuIGVycm9yIHRoYXQgc2hvdWxkIHRlcm1pbmF0ZSByZXRyeSBsb2dpYy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1hcmtzQXNUZXJtaW5hdGVSZXRyeTxURXJyb3IgZXh0ZW5kcyBFcnJvcj4oZXJyb3I6IFRFcnJvcik6IFRlcm1pbmF0ZVJldHJ5ICYgVEVycm9yIHtcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oZXJyb3IsIHsgX190ZXJtaW5hdGVSZXRyeTogdHJ1ZSB9IGFzIFRlcm1pbmF0ZVJldHJ5KTtcbn1cblxuLyoqXG4gKiBSZXRyaWVzIHRoZSBwcm92aWRlZCBmdW5jdGlvbiB1bnRpbCBpdCByZXR1cm5zIHRydWUgb3IgdGhlIHRpbWVvdXQgaXMgcmVhY2hlZC5cbiAqXG4gKiBAcGFyYW0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gcmV0cnkuXG4gKiBAcGFyYW0gcmV0cnlPcHRpb25zIC0gT3B0aW9uYWwgcGFyYW1ldGVycyB0byBjb25maWd1cmUgdGhlIHJldHJ5IGJlaGF2aW9yLlxuICogQHJldHVybnMgQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZnVuY3Rpb24gcmV0dXJucyB0cnVlIG9yIHJlamVjdHMgd2hlbiB0aGUgdGltZW91dCBpcyByZWFjaGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV0cnlXaXRoVGltZW91dChmbjogKCkgPT4gTWF5YmVQcm9taXNlPGJvb2xlYW4+LCByZXRyeU9wdGlvbnM6IFJldHJ5T3B0aW9ucyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHN0YWNrVHJhY2UgPSBnZXRTdGFja1RyYWNlKCk7XG4gIGNvbnN0IERFRkFVTFRfUkVUUllfT1BUSU9OUyA9IHtcbiAgICByZXRyeURlbGF5SW5NaWxsaXNlY29uZHM6IDEwMCxcbiAgICBzaG91bGRSZXRyeU9uRXJyb3I6IGZhbHNlLFxuICAgIHRpbWVvdXRJbk1pbGxpc2Vjb25kczogNTAwMFxuICB9O1xuICBjb25zdCBmdWxsT3B0aW9ucyA9IHsgLi4uREVGQVVMVF9SRVRSWV9PUFRJT05TLCAuLi5yZXRyeU9wdGlvbnMgfTtcbiAgYXdhaXQgcnVuV2l0aFRpbWVvdXQoZnVsbE9wdGlvbnMudGltZW91dEluTWlsbGlzZWNvbmRzLCBhc3luYyAoKSA9PiB7XG4gICAgbGV0IGF0dGVtcHQgPSAwO1xuICAgIGZvciAoOyA7KSB7XG4gICAgICBmdWxsT3B0aW9ucy5hYm9ydFNpZ25hbD8udGhyb3dJZkFib3J0ZWQoKTtcbiAgICAgIGF0dGVtcHQrKztcbiAgICAgIGxldCBpc1N1Y2Nlc3M6IGJvb2xlYW47XG4gICAgICB0cnkge1xuICAgICAgICBpc1N1Y2Nlc3MgPSBhd2FpdCBmbigpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKCFmdWxsT3B0aW9ucy5zaG91bGRSZXRyeU9uRXJyb3IgfHwgKGVycm9yIGFzIFBhcnRpYWw8VGVybWluYXRlUmV0cnk+KS5fX3Rlcm1pbmF0ZVJldHJ5KSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgcHJpbnRFcnJvcihlcnJvcik7XG4gICAgICAgIGlzU3VjY2VzcyA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGlzU3VjY2Vzcykge1xuICAgICAgICBpZiAoYXR0ZW1wdCA+IDEpIHtcbiAgICAgICAgICBnZXREZWJ1Z2dlcignb2JzaWRpYW4tZGV2LXV0aWxzOkFzeW5jOnJ1bldpdGhUaW1lb3V0JykoYFJldHJ5IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgYWZ0ZXIgJHthdHRlbXB0LnRvU3RyaW5nKCl9IGF0dGVtcHRzYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBnZXREZWJ1Z2dlcignb2JzaWRpYW4tZGV2LXV0aWxzOkFzeW5jOnJ1bldpdGhUaW1lb3V0JykoYFJldHJ5IGF0dGVtcHQgJHthdHRlbXB0LnRvU3RyaW5nKCl9IGNvbXBsZXRlZCB1bnN1Y2Nlc3NmdWxseS4gVHJ5aW5nIGFnYWluIGluICR7ZnVsbE9wdGlvbnMucmV0cnlEZWxheUluTWlsbGlzZWNvbmRzLnRvU3RyaW5nKCl9IG1pbGxpc2Vjb25kc2AsIHtcbiAgICAgICAgZm4sXG4gICAgICAgIHN0YWNrVHJhY2VcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgc2xlZXAoZnVsbE9wdGlvbnMucmV0cnlEZWxheUluTWlsbGlzZWNvbmRzKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIEV4ZWN1dGVzIGEgZnVuY3Rpb24gd2l0aCBhIHRpbWVvdXQuIElmIHRoZSBmdW5jdGlvbiBkb2VzIG5vdCBjb21wbGV0ZSB3aXRoaW4gdGhlIHNwZWNpZmllZCB0aW1lLCBpdCBpcyBjb25zaWRlcmVkIHRvIGhhdmUgdGltZWQgb3V0LlxuICpcbiAqIElmIGBERUJVRz1vYnNpZGlhbi1kZXYtdXRpbHM6QXN5bmM6cnVuV2l0aFRpbWVvdXRgIGlzIHNldCwgdGhlIGV4ZWN1dGlvbiBpcyBub3QgdGVybWluYXRlZCBhZnRlciB0aGUgdGltZW91dCBhbmQgdGhlIGZ1bmN0aW9uIGlzIGFsbG93ZWQgdG8gcnVuIGluZGVmaW5pdGVseS5cbiAqXG4gKiBAdHlwZVBhcmFtIFIgLSBUaGUgdHlwZSBvZiB0aGUgcmVzdWx0IGZyb20gdGhlIGFzeW5jaHJvbm91cyBmdW5jdGlvbi5cbiAqIEBwYXJhbSB0aW1lb3V0SW5NaWxsaXNlY29uZHMgLSBUaGUgbWF4aW11bSB0aW1lIHRvIHdhaXQgaW4gbWlsbGlzZWNvbmRzLlxuICogQHBhcmFtIGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGV4ZWN1dGUuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIGFzeW5jaHJvbm91cyBmdW5jdGlvbiBvciByZWplY3RzIGlmIGl0IHRpbWVzIG91dC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bldpdGhUaW1lb3V0PFI+KHRpbWVvdXRJbk1pbGxpc2Vjb25kczogbnVtYmVyLCBmbjogKCkgPT4gTWF5YmVQcm9taXNlPFI+KTogUHJvbWlzZTxSPiB7XG4gIGxldCBpc1RpbWVkT3V0ID0gdHJ1ZTtcbiAgbGV0IHJlc3VsdDogUiA9IG51bGwgYXMgUjtcbiAgY29uc3Qgc3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gIGF3YWl0IFByb21pc2UucmFjZShbcnVuKCksIHRpbWVvdXQoKV0pO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuICBpZiAoaXNUaW1lZE91dCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVGltZWQgb3V0Jyk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcblxuICBhc3luYyBmdW5jdGlvbiBydW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmVzdWx0ID0gYXdhaXQgZm4oKTtcbiAgICBpc1RpbWVkT3V0ID0gZmFsc2U7XG4gICAgY29uc3QgZHVyYXRpb24gPSBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICBnZXREZWJ1Z2dlcignb2JzaWRpYW4tZGV2LXV0aWxzOkFzeW5jOnJ1bldpdGhUaW1lb3V0JykoYEV4ZWN1dGlvbiB0aW1lOiAke2R1cmF0aW9uLnRvU3RyaW5nKCl9IG1pbGxpc2Vjb25kc2AsIHsgZm4gfSk7XG4gIH1cblxuICBhc3luYyBmdW5jdGlvbiB0aW1lb3V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghaXNUaW1lZE91dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCBzbGVlcCh0aW1lb3V0SW5NaWxsaXNlY29uZHMpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uXG4gICAgaWYgKCFpc1RpbWVkT3V0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGR1cmF0aW9uID0gcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydFRpbWU7XG4gICAgY29uc29sZS53YXJuKGBUaW1lZCBvdXQgaW4gJHtkdXJhdGlvbi50b1N0cmluZygpfSBtaWxsaXNlY29uZHNgLCB7IGZuIH0pO1xuICAgIGlmIChnZXREZWJ1Z2dlcignb2JzaWRpYW4tZGV2LXV0aWxzOkFzeW5jOnRpbWVvdXQnKS5lbmFibGVkKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1RoZSBleGVjdXRpb24gaXMgbm90IHRlcm1pbmF0ZWQgYmVjYXVzZSBsb2NhbFN0b3JhZ2UuZGVidWc9XFwnb2JzaWRpYW4tZGV2LXV0aWxzOkFzeW5jOnRpbWVvdXRcXCcgaXMgZW5hYmxlZC4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9kZWJ1Zy1qcy9kZWJ1Zz90YWI9cmVhZG1lLW92LWZpbGUjYnJvd3Nlci1zdXBwb3J0IGZvciBtb3JlIGluZm9ybWF0aW9uJyk7XG4gICAgICBhd2FpdCB0aW1lb3V0KCk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogRGVsYXlzIGV4ZWN1dGlvbiBmb3IgYSBzcGVjaWZpZWQgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcy5cbiAqXG4gKiBAcGFyYW0gbWlsbGlzZWNvbmRzIC0gVGhlIHRpbWUgdG8gd2FpdCBpbiBtaWxsaXNlY29uZHMuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyBhZnRlciB0aGUgc3BlY2lmaWVkIGRlbGF5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2xlZXAobWlsbGlzZWNvbmRzOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbWlsbGlzZWNvbmRzKSk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIFByb21pc2UgdGhhdCByZWplY3RzIGFmdGVyIHRoZSBzcGVjaWZpZWQgdGltZW91dCBwZXJpb2QuXG4gKlxuICogQHBhcmFtIHRpbWVvdXRJbk1pbGxpc2Vjb25kcyAtIFRoZSB0aW1lb3V0IHBlcmlvZCBpbiBtaWxsaXNlY29uZHMuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCBhbHdheXMgcmVqZWN0cyB3aXRoIGEgdGltZW91dCBlcnJvci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRpbWVvdXQodGltZW91dEluTWlsbGlzZWNvbmRzOiBudW1iZXIpOiBQcm9taXNlPG5ldmVyPiB7XG4gIGF3YWl0IHNsZWVwKHRpbWVvdXRJbk1pbGxpc2Vjb25kcyk7XG4gIHRocm93IG5ldyBFcnJvcihgVGltZWQgb3V0IGluICR7dGltZW91dEluTWlsbGlzZWNvbmRzLnRvU3RyaW5nKCl9IG1pbGxpc2Vjb25kc2ApO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIEFzeW5jSXRlcmFibGVJdGVyYXRvciB0byBhbiBhcnJheSBieSBjb25zdW1pbmcgYWxsIGl0cyBlbGVtZW50cy5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiBlbGVtZW50cyBwcm9kdWNlZCBieSB0aGUgQXN5bmNJdGVyYWJsZUl0ZXJhdG9yLlxuICogQHBhcmFtIGl0ZXIgLSBUaGUgQXN5bmNJdGVyYWJsZUl0ZXJhdG9yIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIGFuIGFycmF5IG9mIGFsbCB0aGUgZWxlbWVudHMgaW4gdGhlIEFzeW5jSXRlcmFibGVJdGVyYXRvci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRvQXJyYXk8VD4oaXRlcjogQXN5bmNJdGVyYWJsZUl0ZXJhdG9yPFQ+KTogUHJvbWlzZTxUW10+IHtcbiAgY29uc3QgYXJyOiBUW10gPSBbXTtcbiAgZm9yIGF3YWl0IChjb25zdCBpdGVtIG9mIGl0ZXIpIHtcbiAgICBhcnIucHVzaChpdGVtKTtcbiAgfVxuICByZXR1cm4gYXJyO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtB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
|
package/dist/lib/Async.d.ts
CHANGED
@@ -114,7 +114,7 @@ export declare function retryWithTimeout(fn: () => MaybePromise<boolean>, retryO
|
|
114
114
|
/**
|
115
115
|
* Executes a function with a timeout. If the function does not complete within the specified time, it is considered to have timed out.
|
116
116
|
*
|
117
|
-
* If `
|
117
|
+
* If `DEBUG=obsidian-dev-utils:Async:runWithTimeout` is set, the execution is not terminated after the timeout and the function is allowed to run indefinitely.
|
118
118
|
*
|
119
119
|
* @typeParam R - The type of the result from the asynchronous function.
|
120
120
|
* @param timeoutInMilliseconds - The maximum time to wait in milliseconds.
|
@@ -0,0 +1,58 @@
|
|
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 __extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}
|
7
|
+
|
8
|
+
(function patchRequireEsmDefault(){const __require=require;require=Object.assign(id=>{const module=__require(id)??{};return __extractDefault(module)},__require)})()
|
9
|
+
|
10
|
+
"use strict";
|
11
|
+
var __create = Object.create;
|
12
|
+
var __defProp = Object.defineProperty;
|
13
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
14
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
15
|
+
var __getProtoOf = Object.getPrototypeOf;
|
16
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
17
|
+
var __export = (target, all) => {
|
18
|
+
for (var name in all)
|
19
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
20
|
+
};
|
21
|
+
var __copyProps = (to, from, except, desc) => {
|
22
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
23
|
+
for (let key of __getOwnPropNames(from))
|
24
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
25
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
26
|
+
}
|
27
|
+
return to;
|
28
|
+
};
|
29
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
30
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
31
|
+
// file that has been converted to a CommonJS file using a Babel-
|
32
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
33
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
34
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
35
|
+
mod
|
36
|
+
));
|
37
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
38
|
+
var Debug_exports = {};
|
39
|
+
__export(Debug_exports, {
|
40
|
+
getDebugger: () => getDebugger
|
41
|
+
});
|
42
|
+
module.exports = __toCommonJS(Debug_exports);
|
43
|
+
var import_debug = __toESM(__extractDefault(require('debug')), 1);
|
44
|
+
function getDebugger(id) {
|
45
|
+
const debugInstance = getDebugger(id);
|
46
|
+
debugInstance.log = logWithCaller;
|
47
|
+
return debugInstance;
|
48
|
+
}
|
49
|
+
function logWithCaller(message, ...args) {
|
50
|
+
const stack = new Error().stack?.split("\n")[2];
|
51
|
+
const caller = stack?.trim().replace(/^at /, "") ?? "";
|
52
|
+
console.debug(message, ...args, `[${caller}]`);
|
53
|
+
}
|
54
|
+
// Annotate the CommonJS export names for ESM import in node:
|
55
|
+
0 && (module.exports = {
|
56
|
+
getDebugger
|
57
|
+
});
|
58
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL0RlYnVnLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBEZWJ1Z1xuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGRlYnVnZ2luZy5cbiAqL1xuXG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuXG4vKipcbiAqIFJldHVybnMgYSBkZWJ1Z2dlciBpbnN0YW5jZSB3aXRoIGEgbG9nIGZ1bmN0aW9uIHRoYXQgaW5jbHVkZXMgdGhlIGNhbGxlcidzIGZpbGUgbmFtZSBhbmQgbGluZSBudW1iZXIuXG4gKlxuICogQHBhcmFtIGlkIC0gVGhlIG5hbWVzcGFjZSBmb3IgdGhlIGRlYnVnZ2VyIGluc3RhbmNlLlxuICogQHJldHVybnMgQSBkZWJ1Z2dlciBpbnN0YW5jZSB3aXRoIGEgbG9nIGZ1bmN0aW9uIHRoYXQgaW5jbHVkZXMgdGhlIGNhbGxlcidzIGZpbGUgbmFtZSBhbmQgbGluZSBudW1iZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWJ1Z2dlcihpZDogc3RyaW5nKTogZGVidWcuRGVidWdnZXIge1xuICBjb25zdCBkZWJ1Z0luc3RhbmNlID0gZ2V0RGVidWdnZXIoaWQpO1xuICBkZWJ1Z0luc3RhbmNlLmxvZyA9IGxvZ1dpdGhDYWxsZXI7XG4gIHJldHVybiBkZWJ1Z0luc3RhbmNlO1xufVxuXG5mdW5jdGlvbiBsb2dXaXRoQ2FsbGVyKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogdm9pZCB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IEVycm9yKCkuc3RhY2s/LnNwbGl0KCdcXG4nKVsyXTtcbiAgY29uc3QgY2FsbGVyID0gc3RhY2s/LnRyaW0oKS5yZXBsYWNlKC9eYXQgLywgJycpID8/ICcnO1xuICBjb25zb2xlLmRlYnVnKG1lc3NhZ2UsIC4uLmFyZ3MsIGBbJHtjYWxsZXJ9XWApO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFLQSxtQkFBa0I7QUFRWCxTQUFTLFlBQVksSUFBNEI7QUFDdEQsUUFBTSxnQkFBZ0IsWUFBWSxFQUFFO0FBQ3BDLGdCQUFjLE1BQU07QUFDcEIsU0FBTztBQUNUO0FBRUEsU0FBUyxjQUFjLFlBQW9CLE1BQXVCO0FBQ2hFLFFBQU0sUUFBUSxJQUFJLE1BQU0sRUFBRSxPQUFPLE1BQU0sSUFBSSxFQUFFLENBQUM7QUFDOUMsUUFBTSxTQUFTLE9BQU8sS0FBSyxFQUFFLFFBQVEsUUFBUSxFQUFFLEtBQUs7QUFDcEQsVUFBUSxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksTUFBTSxHQUFHO0FBQy9DOyIsCiAgIm5hbWVzIjogW10KfQo=
|
@@ -0,0 +1,12 @@
|
|
1
|
+
/**
|
2
|
+
* @packageDocumentation Debug
|
3
|
+
* Contains utility functions for debugging.
|
4
|
+
*/
|
5
|
+
import debug from 'debug';
|
6
|
+
/**
|
7
|
+
* Returns a debugger instance with a log function that includes the caller's file name and line number.
|
8
|
+
*
|
9
|
+
* @param id - The namespace for the debugger instance.
|
10
|
+
* @returns A debugger instance with a log function that includes the caller's file name and line number.
|
11
|
+
*/
|
12
|
+
export declare function getDebugger(id: string): debug.Debugger;
|
package/dist/lib/index.cjs
CHANGED
@@ -39,6 +39,7 @@ var index_exports = {};
|
|
39
39
|
__export(index_exports, {
|
40
40
|
Async: () => Async,
|
41
41
|
Blob: () => Blob,
|
42
|
+
Debug: () => Debug,
|
42
43
|
Error: () => Error2,
|
43
44
|
Function: () => Function,
|
44
45
|
HTMLElement: () => HTMLElement,
|
@@ -56,6 +57,7 @@ module.exports = __toCommonJS(index_exports);
|
|
56
57
|
var _types = __toESM(__extractDefault(require('./@types.cjs')), 1);
|
57
58
|
var Async = __toESM(__extractDefault(require('./Async.cjs')), 1);
|
58
59
|
var Blob = __toESM(__extractDefault(require('./Blob.cjs')), 1);
|
60
|
+
var Debug = __toESM(__extractDefault(require('./Debug.cjs')), 1);
|
59
61
|
var Error2 = __toESM(__extractDefault(require('./Error.cjs')), 1);
|
60
62
|
var Function = __toESM(__extractDefault(require('./Function.cjs')), 1);
|
61
63
|
var HTMLElement = __toESM(__extractDefault(require('./HTMLElement.cjs')), 1);
|
@@ -71,6 +73,7 @@ var ValueProvider = __toESM(__extractDefault(require('./ValueProvider.cjs')), 1)
|
|
71
73
|
0 && (module.exports = {
|
72
74
|
Async,
|
73
75
|
Blob,
|
76
|
+
Debug,
|
74
77
|
Error,
|
75
78
|
Function,
|
76
79
|
HTMLElement,
|
@@ -84,4 +87,4 @@ var ValueProvider = __toESM(__extractDefault(require('./ValueProvider.cjs')), 1)
|
|
84
87
|
scripts,
|
85
88
|
url
|
86
89
|
});
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
90
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgX3R5cGVzIGZyb20gJy4vQHR5cGVzLnRzJztcbmV4cG9ydCAqIGFzIEFzeW5jIGZyb20gJy4vQXN5bmMudHMnO1xuZXhwb3J0ICogYXMgQmxvYiBmcm9tICcuL0Jsb2IudHMnO1xuZXhwb3J0ICogYXMgRGVidWcgZnJvbSAnLi9EZWJ1Zy50cyc7XG5leHBvcnQgKiBhcyBFcnJvciBmcm9tICcuL0Vycm9yLnRzJztcbmV4cG9ydCAqIGFzIEZ1bmN0aW9uIGZyb20gJy4vRnVuY3Rpb24udHMnO1xuZXhwb3J0ICogYXMgSFRNTEVsZW1lbnQgZnJvbSAnLi9IVE1MRWxlbWVudC50cyc7XG5leHBvcnQgKiBhcyBPYmplY3QgZnJvbSAnLi9PYmplY3QudHMnO1xuZXhwb3J0ICogYXMgb2JzaWRpYW4gZnJvbSAnLi9vYnNpZGlhbi9pbmRleC50cyc7XG5leHBvcnQgKiBhcyBQYXRoIGZyb20gJy4vUGF0aC50cyc7XG5leHBvcnQgKiBhcyBSZWdFeHAgZnJvbSAnLi9SZWdFeHAudHMnO1xuZXhwb3J0ICogYXMgc2NyaXB0cyBmcm9tICcuL3NjcmlwdHMvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgU3RyaW5nIGZyb20gJy4vU3RyaW5nLnRzJztcbmV4cG9ydCAqIGFzIHVybCBmcm9tICcuL3VybC50cyc7XG5leHBvcnQgKiBhcyBWYWx1ZVByb3ZpZGVyIGZyb20gJy4vVmFsdWVQcm92aWRlci50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBQUFBO0FBQUEsRUFBQTtBQUFBO0FBQUEsZ0JBQUFDO0FBQUEsRUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBLGFBQXdCO0FBQ3hCLFlBQXVCO0FBQ3ZCLFdBQXNCO0FBQ3RCLFlBQXVCO0FBQ3ZCLElBQUFELFNBQXVCO0FBQ3ZCLGVBQTBCO0FBQzFCLGtCQUE2QjtBQUM3QixJQUFBQyxVQUF3QjtBQUN4QixlQUEwQjtBQUMxQixXQUFzQjtBQUN0QixhQUF3QjtBQUN4QixjQUF5QjtBQUN6QixhQUF3QjtBQUN4QixVQUFxQjtBQUNyQixvQkFBK0I7IiwKICAibmFtZXMiOiBbIkVycm9yIiwgIk9iamVjdCJdCn0K
|
package/dist/lib/index.d.ts
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
export * as _types from './@types.ts';
|
2
2
|
export * as Async from './Async.ts';
|
3
3
|
export * as Blob from './Blob.ts';
|
4
|
+
export * as Debug from './Debug.ts';
|
4
5
|
export * as Error from './Error.ts';
|
5
6
|
export * as Function from './Function.ts';
|
6
7
|
export * as HTMLElement from './HTMLElement.ts';
|
@@ -8,11 +8,9 @@ function __extractDefault(module){return module&&module.__esModule&&module.defau
|
|
8
8
|
(function patchRequireEsmDefault(){const __require=require;require=Object.assign(id=>{const module=__require(id)??{};return __extractDefault(module)},__require)})()
|
9
9
|
|
10
10
|
"use strict";
|
11
|
-
var __create = Object.create;
|
12
11
|
var __defProp = Object.defineProperty;
|
13
12
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
14
13
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
15
|
-
var __getProtoOf = Object.getPrototypeOf;
|
16
14
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
17
15
|
var __export = (target, all) => {
|
18
16
|
for (var name in all)
|
@@ -26,28 +24,20 @@ var __copyProps = (to, from, except, desc) => {
|
|
26
24
|
}
|
27
25
|
return to;
|
28
26
|
};
|
29
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
30
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
31
|
-
// file that has been converted to a CommonJS file using a Babel-
|
32
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
33
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
34
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
35
|
-
mod
|
36
|
-
));
|
37
27
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
38
28
|
var Logger_exports = {};
|
39
29
|
__export(Logger_exports, {
|
40
30
|
invokeAsyncAndLog: () => invokeAsyncAndLog
|
41
31
|
});
|
42
32
|
module.exports = __toCommonJS(Logger_exports);
|
43
|
-
var
|
33
|
+
var import_Debug = require('../Debug.cjs');
|
44
34
|
var import_Error = require('../Error.cjs');
|
45
35
|
async function invokeAsyncAndLog(title, fn, stackTrace) {
|
46
36
|
const timestampStart = performance.now();
|
47
37
|
if (stackTrace === void 0) {
|
48
38
|
stackTrace = (0, import_Error.getStackTrace)().split("\n").slice(1).join("\n");
|
49
39
|
}
|
50
|
-
|
40
|
+
(0, import_Debug.getDebugger)("obsidian-dev-utils:invokeAsyncAndLog")(`${title}:start`, {
|
51
41
|
fn,
|
52
42
|
stackTrace,
|
53
43
|
timestampStart
|
@@ -55,14 +45,14 @@ async function invokeAsyncAndLog(title, fn, stackTrace) {
|
|
55
45
|
try {
|
56
46
|
await fn();
|
57
47
|
const timestampEnd = performance.now();
|
58
|
-
|
48
|
+
(0, import_Debug.getDebugger)("obsidian-dev-utils:invokeAsyncAndLog")(`${title}:end`, {
|
59
49
|
duration: timestampEnd - timestampStart,
|
60
50
|
timestampEnd,
|
61
51
|
timestampStart
|
62
52
|
});
|
63
53
|
} catch (error) {
|
64
54
|
const timestampEnd = performance.now();
|
65
|
-
|
55
|
+
(0, import_Debug.getDebugger)("obsidian-dev-utils:invokeAsyncAndLog")(`${title}:error`, {
|
66
56
|
duration: timestampEnd - timestampStart,
|
67
57
|
error,
|
68
58
|
timestampEnd,
|
@@ -75,4 +65,4 @@ async function invokeAsyncAndLog(title, fn, stackTrace) {
|
|
75
65
|
0 && (module.exports = {
|
76
66
|
invokeAsyncAndLog
|
77
67
|
});
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
68
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0xvZ2dlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gTG9nZ2VyXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgbG9nZ2luZyBpbiBPYnNpZGlhbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IE1heWJlUHJvbWlzZSB9IGZyb20gJy4uL0FzeW5jLnRzJztcblxuaW1wb3J0IHsgZ2V0RGVidWdnZXIgfSBmcm9tICcuLi9EZWJ1Zy50cyc7XG5pbXBvcnQgeyBnZXRTdGFja1RyYWNlIH0gZnJvbSAnLi4vRXJyb3IudHMnO1xuXG4vKipcbiAqIEludm9rZXMgYSBmdW5jdGlvbiBhbmQgbG9ncyB0aGUgc3RhcnQsIGVuZCwgYW5kIGR1cmF0aW9uIG9mIHRoZSBpbnZvY2F0aW9uLlxuICpcbiAqIEBwYXJhbSB0aXRsZSAtIFRoZSB0aXRsZSBvZiB0aGUgbG9nLlxuICogQHBhcmFtIGZuIC0gVGhlIGZ1bmN0aW9uIHRvIGludm9rZS5cbiAqIEBwYXJhbSBzdGFja1RyYWNlIC0gT3B0aW9uYWwgc3RhY2sgdHJhY2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbnZva2VBc3luY0FuZExvZyh0aXRsZTogc3RyaW5nLCBmbjogKCkgPT4gTWF5YmVQcm9taXNlPHZvaWQ+LCBzdGFja1RyYWNlPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHRpbWVzdGFtcFN0YXJ0ID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gIGlmIChzdGFja1RyYWNlID09PSB1bmRlZmluZWQpIHtcbiAgICBzdGFja1RyYWNlID0gZ2V0U3RhY2tUcmFjZSgpLnNwbGl0KCdcXG4nKS5zbGljZSgxKS5qb2luKCdcXG4nKTtcbiAgfVxuICBnZXREZWJ1Z2dlcignb2JzaWRpYW4tZGV2LXV0aWxzOmludm9rZUFzeW5jQW5kTG9nJykoYCR7dGl0bGV9OnN0YXJ0YCwge1xuICAgIGZuLFxuICAgIHN0YWNrVHJhY2UsXG4gICAgdGltZXN0YW1wU3RhcnRcbiAgfSk7XG4gIHRyeSB7XG4gICAgYXdhaXQgZm4oKTtcbiAgICBjb25zdCB0aW1lc3RhbXBFbmQgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICBnZXREZWJ1Z2dlcignb2JzaWRpYW4tZGV2LXV0aWxzOmludm9rZUFzeW5jQW5kTG9nJykoYCR7dGl0bGV9OmVuZGAsIHtcbiAgICAgIGR1cmF0aW9uOiB0aW1lc3RhbXBFbmQgLSB0aW1lc3RhbXBTdGFydCxcbiAgICAgIHRpbWVzdGFtcEVuZCxcbiAgICAgIHRpbWVzdGFtcFN0YXJ0XG4gICAgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgdGltZXN0YW1wRW5kID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgZ2V0RGVidWdnZXIoJ29ic2lkaWFuLWRldi11dGlsczppbnZva2VBc3luY0FuZExvZycpKGAke3RpdGxlfTplcnJvcmAsIHtcbiAgICAgIGR1cmF0aW9uOiB0aW1lc3RhbXBFbmQgLSB0aW1lc3RhbXBTdGFydCxcbiAgICAgIGVycm9yLFxuICAgICAgdGltZXN0YW1wRW5kLFxuICAgICAgdGltZXN0YW1wU3RhcnRcbiAgICB9KTtcblxuICAgIHRocm93IGVycm9yO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0EsbUJBQTRCO0FBQzVCLG1CQUE4QjtBQVM5QixlQUFzQixrQkFBa0IsT0FBZSxJQUE4QixZQUFvQztBQUN2SCxRQUFNLGlCQUFpQixZQUFZLElBQUk7QUFDdkMsTUFBSSxlQUFlLFFBQVc7QUFDNUIscUJBQWEsNEJBQWMsRUFBRSxNQUFNLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUk7QUFBQSxFQUM3RDtBQUNBLGdDQUFZLHNDQUFzQyxFQUFFLEdBQUcsS0FBSyxVQUFVO0FBQUEsSUFDcEU7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsQ0FBQztBQUNELE1BQUk7QUFDRixVQUFNLEdBQUc7QUFDVCxVQUFNLGVBQWUsWUFBWSxJQUFJO0FBQ3JDLGtDQUFZLHNDQUFzQyxFQUFFLEdBQUcsS0FBSyxRQUFRO0FBQUEsTUFDbEUsVUFBVSxlQUFlO0FBQUEsTUFDekI7QUFBQSxNQUNBO0FBQUEsSUFDRixDQUFDO0FBQUEsRUFDSCxTQUFTLE9BQU87QUFDZCxVQUFNLGVBQWUsWUFBWSxJQUFJO0FBQ3JDLGtDQUFZLHNDQUFzQyxFQUFFLEdBQUcsS0FBSyxVQUFVO0FBQUEsTUFDcEUsVUFBVSxlQUFlO0FBQUEsTUFDekI7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0YsQ0FBQztBQUVELFVBQU07QUFBQSxFQUNSO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
@@ -8,11 +8,9 @@ function __extractDefault(module){return module&&module.__esModule&&module.defau
|
|
8
8
|
(function patchRequireEsmDefault(){const __require=require;require=Object.assign(id=>{const module=__require(id)??{};return __extractDefault(module)},__require)})()
|
9
9
|
|
10
10
|
"use strict";
|
11
|
-
var __create = Object.create;
|
12
11
|
var __defProp = Object.defineProperty;
|
13
12
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
14
13
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
15
|
-
var __getProtoOf = Object.getPrototypeOf;
|
16
14
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
17
15
|
var __export = (target, all) => {
|
18
16
|
for (var name in all)
|
@@ -26,21 +24,13 @@ var __copyProps = (to, from, except, desc) => {
|
|
26
24
|
}
|
27
25
|
return to;
|
28
26
|
};
|
29
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
30
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
31
|
-
// file that has been converted to a CommonJS file using a Babel-
|
32
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
33
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
34
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
35
|
-
mod
|
36
|
-
));
|
37
27
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
38
28
|
var Loop_exports = {};
|
39
29
|
__export(Loop_exports, {
|
40
30
|
loop: () => loop
|
41
31
|
});
|
42
32
|
module.exports = __toCommonJS(Loop_exports);
|
43
|
-
var
|
33
|
+
var import_Debug = require('../Debug.cjs');
|
44
34
|
var import_Error = require('../Error.cjs');
|
45
35
|
var __process = globalThis["process"] ?? {
|
46
36
|
"cwd": () => "/",
|
@@ -60,7 +50,7 @@ async function loop(options) {
|
|
60
50
|
const iterationStr = `# ${iterationCount.toString()} / ${items.length.toString()}`;
|
61
51
|
const message = options.buildNoticeMessage(item, iterationStr);
|
62
52
|
notice.setMessage(message);
|
63
|
-
|
53
|
+
(0, import_Debug.getDebugger)("obsidian-dev-utils:loop")(message);
|
64
54
|
try {
|
65
55
|
await options.processItem(item);
|
66
56
|
} catch (error) {
|
@@ -78,4 +68,4 @@ async function loop(options) {
|
|
78
68
|
0 && (module.exports = {
|
79
69
|
loop
|
80
70
|
});
|
81
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0xvb3AudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbInZhciBfX3Byb2Nlc3MgPSBnbG9iYWxUaGlzWydwcm9jZXNzJ10gPz8ge1xuICBcImN3ZFwiOiAoKT0+
|
71
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL0xvb3AudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbInZhciBfX3Byb2Nlc3MgPSBnbG9iYWxUaGlzWydwcm9jZXNzJ10gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gTG9vcFxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGxvb3BpbmcgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tICcuLi9Bc3luYy50cyc7XG5cbmltcG9ydCB7IGdldERlYnVnZ2VyIH0gZnJvbSAnLi4vRGVidWcudHMnO1xuaW1wb3J0IHsgZW1pdEFzeW5jRXJyb3JFdmVudCB9IGZyb20gJy4uL0Vycm9yLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgbG9vcCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb29wT3B0aW9uczxUPiB7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBhYm9ydCBzaWduYWwgdG8gY2FuY2VsIHRoZSBsb29wLlxuICAgKi9cbiAgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiB0byBidWlsZCB0aGUgbm90aWNlIG1lc3NhZ2UgZm9yIGVhY2ggaXRlbS5cbiAgICovXG4gIGJ1aWxkTm90aWNlTWVzc2FnZShpdGVtOiBULCBpdGVyYXRpb25TdHI6IHN0cmluZyk6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpdGVtcyB0byBsb29wIG92ZXIuXG4gICAqL1xuICBpdGVtczogVFtdO1xuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uIHRvIHByb2Nlc3MgZWFjaCBpdGVtLlxuICAgKi9cbiAgcHJvY2Vzc0l0ZW0oaXRlbTogVCk6IE1heWJlUHJvbWlzZTx2b2lkPjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY29udGludWUgdGhlIGxvb3Agb24gZXJyb3IuXG4gICAqL1xuICBzaG91bGRDb250aW51ZU9uRXJyb3I/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIExvb3BzIG92ZXIgYSBsaXN0IG9mIGl0ZW1zIGFuZCBwcm9jZXNzZXMgZWFjaCBpdGVtLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBsb29wLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9vcDxUPihvcHRpb25zOiBMb29wT3B0aW9uczxUPik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBpdGVtcyA9IG9wdGlvbnMuaXRlbXM7XG4gIGxldCBpdGVyYXRpb25Db3VudCA9IDA7XG4gIGNvbnN0IG5vdGljZSA9IG5ldyBOb3RpY2UoJycsIDApO1xuICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICBpZiAob3B0aW9ucy5hYm9ydFNpZ25hbD8uYWJvcnRlZCkge1xuICAgICAgbm90aWNlLmhpZGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaXRlcmF0aW9uQ291bnQrKztcbiAgICBjb25zdCBpdGVyYXRpb25TdHIgPSBgIyAke2l0ZXJhdGlvbkNvdW50LnRvU3RyaW5nKCl9IC8gJHtpdGVtcy5sZW5ndGgudG9TdHJpbmcoKX1gO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBvcHRpb25zLmJ1aWxkTm90aWNlTWVzc2FnZShpdGVtLCBpdGVyYXRpb25TdHIpO1xuICAgIG5vdGljZS5zZXRNZXNzYWdlKG1lc3NhZ2UpO1xuICAgIGdldERlYnVnZ2VyKCdvYnNpZGlhbi1kZXYtdXRpbHM6bG9vcCcpKG1lc3NhZ2UpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG9wdGlvbnMucHJvY2Vzc0l0ZW0oaXRlbSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmICghb3B0aW9ucy5zaG91bGRDb250aW51ZU9uRXJyb3IpIHtcbiAgICAgICAgbm90aWNlLmhpZGUoKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbWl0QXN5bmNFcnJvckV2ZW50KGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgbm90aWNlLmhpZGUoKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFZQSxtQkFBNEI7QUFDNUIsbUJBQW9DO0FBYnBDLElBQUksWUFBWSxXQUFXLFNBQVMsS0FBSztBQUFBLEVBQ3ZDLE9BQU8sTUFBSTtBQUFBLEVBQ1gsT0FBTyxDQUFDO0FBQUEsRUFDUixZQUFZO0FBQ2Q7QUEwQ0EsZUFBc0IsS0FBUSxTQUF3QztBQUNwRSxRQUFNLFFBQVEsUUFBUTtBQUN0QixNQUFJLGlCQUFpQjtBQUNyQixRQUFNLFNBQVMsSUFBSSxPQUFPLElBQUksQ0FBQztBQUMvQixhQUFXLFFBQVEsT0FBTztBQUN4QixRQUFJLFFBQVEsYUFBYSxTQUFTO0FBQ2hDLGFBQU8sS0FBSztBQUNaO0FBQUEsSUFDRjtBQUNBO0FBQ0EsVUFBTSxlQUFlLEtBQUssZUFBZSxTQUFTLENBQUMsTUFBTSxNQUFNLE9BQU8sU0FBUyxDQUFDO0FBQ2hGLFVBQU0sVUFBVSxRQUFRLG1CQUFtQixNQUFNLFlBQVk7QUFDN0QsV0FBTyxXQUFXLE9BQU87QUFDekIsa0NBQVkseUJBQXlCLEVBQUUsT0FBTztBQUU5QyxRQUFJO0FBQ0YsWUFBTSxRQUFRLFlBQVksSUFBSTtBQUFBLElBQ2hDLFNBQVMsT0FBTztBQUNkLFVBQUksQ0FBQyxRQUFRLHVCQUF1QjtBQUNsQyxlQUFPLEtBQUs7QUFDWixjQUFNO0FBQUEsTUFDUixPQUFPO0FBQ0wsOENBQW9CLEtBQUs7QUFBQSxNQUMzQjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0EsU0FBTyxLQUFLO0FBQ2Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
@@ -8,11 +8,9 @@ function __extractDefault(module){return module&&module.__esModule&&module.defau
|
|
8
8
|
(function patchRequireEsmDefault(){const __require=require;require=Object.assign(id=>{const module=__require(id)??{};return __extractDefault(module)},__require)})()
|
9
9
|
|
10
10
|
"use strict";
|
11
|
-
var __create = Object.create;
|
12
11
|
var __defProp = Object.defineProperty;
|
13
12
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
14
13
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
15
|
-
var __getProtoOf = Object.getPrototypeOf;
|
16
14
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
17
15
|
var __export = (target, all) => {
|
18
16
|
for (var name in all)
|
@@ -26,14 +24,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
26
24
|
}
|
27
25
|
return to;
|
28
26
|
};
|
29
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
30
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
31
|
-
// file that has been converted to a CommonJS file using a Babel-
|
32
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
33
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
34
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
35
|
-
mod
|
36
|
-
));
|
37
27
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
38
28
|
var MetadataCache_exports = {};
|
39
29
|
__export(MetadataCache_exports, {
|
@@ -47,10 +37,10 @@ __export(MetadataCache_exports, {
|
|
47
37
|
tempRegisterFileAndRun: () => tempRegisterFileAndRun
|
48
38
|
});
|
49
39
|
module.exports = __toCommonJS(MetadataCache_exports);
|
50
|
-
var import_debug = __toESM(__extractDefault(require('debug')), 1);
|
51
40
|
var import_obsidian = require('obsidian');
|
52
41
|
var import_implementations = require('obsidian-typings/implementations');
|
53
42
|
var import_Async = require('../Async.cjs');
|
43
|
+
var import_Debug = require('../Debug.cjs');
|
54
44
|
var import_Function = require('../Function.cjs');
|
55
45
|
var import_Object = require('../Object.cjs');
|
56
46
|
var import_FileSystem = require('./FileSystem.cjs');
|
@@ -166,22 +156,22 @@ async function getCacheSafe(app, fileOrPath, retryOptions = {}) {
|
|
166
156
|
const fileInfo = app.metadataCache.getFileInfo(file.path);
|
167
157
|
const stat = await app.vault.adapter.stat(file.path);
|
168
158
|
if (!fileInfo) {
|
169
|
-
|
159
|
+
(0, import_Debug.getDebugger)("obsidian-dev-utils:MetadataCache:getCacheSafe")(`File cache info for ${file.path} is missing`);
|
170
160
|
return false;
|
171
161
|
} else if (!stat) {
|
172
|
-
|
162
|
+
(0, import_Debug.getDebugger)("obsidian-dev-utils:MetadataCache:getCacheSafe")(`File stat for ${file.path} is missing`);
|
173
163
|
return false;
|
174
164
|
} else if (file.stat.mtime < stat.mtime) {
|
175
165
|
app.vault.onChange("modified", file.path, void 0, stat);
|
176
|
-
|
166
|
+
(0, import_Debug.getDebugger)("obsidian-dev-utils:MetadataCache:getCacheSafe")(`Cached timestamp for ${file.path} is from ${new Date(file.stat.mtime).toString()} which is older than the file system modification timestamp ${new Date(stat.mtime).toString()}`);
|
177
167
|
return false;
|
178
168
|
} else if (fileInfo.mtime < stat.mtime) {
|
179
|
-
|
169
|
+
(0, import_Debug.getDebugger)("obsidian-dev-utils:MetadataCache:getCacheSafe")(`File cache info for ${file.path} is from ${new Date(fileInfo.mtime).toString()} which is older than the file modification timestamp ${new Date(stat.mtime).toString()}`);
|
180
170
|
return false;
|
181
171
|
} else {
|
182
172
|
cache = app.metadataCache.getFileCache(file);
|
183
173
|
if (!cache) {
|
184
|
-
|
174
|
+
(0, import_Debug.getDebugger)("obsidian-dev-utils:MetadataCache:getCacheSafe")(`File cache for ${file.path} is missing`);
|
185
175
|
return false;
|
186
176
|
} else {
|
187
177
|
return true;
|
@@ -247,4 +237,4 @@ async function saveNote(app, pathOrFile) {
|
|
247
237
|
registerFile,
|
248
238
|
tempRegisterFileAndRun
|
249
239
|
});
|
250
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL01ldGFkYXRhQ2FjaGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbInZhciBfX3Byb2Nlc3MgPSBnbG9iYWxUaGlzWydwcm9jZXNzJ10gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gTWV0YWRhdGFDYWNoZVxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCB0aGUgbWV0YWRhdGEgY2FjaGUgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIENhY2hlZE1ldGFkYXRhLFxuICBSZWZlcmVuY2UsXG4gIFRBYnN0cmFjdEZpbGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBDdXN0b21BcnJheURpY3QgfSBmcm9tICdvYnNpZGlhbi10eXBpbmdzJztcblxuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7IE1hcmtkb3duVmlldyB9IGZyb20gJ29ic2lkaWFuJztcbmltcG9ydCB7XG4gIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUsXG4gIGlzUmVmZXJlbmNlQ2FjaGUsXG4gIHBhcmVudEZvbGRlclBhdGhcbn0gZnJvbSAnb2JzaWRpYW4tdHlwaW5ncy9pbXBsZW1lbnRhdGlvbnMnO1xuXG5pbXBvcnQgdHlwZSB7IFJldHJ5T3B0aW9ucyB9IGZyb20gJy4uL0FzeW5jLnRzJztcbmltcG9ydCB0eXBlIHsgUGF0aE9yRmlsZSB9IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5pbXBvcnQgdHlwZSB7IENvbWJpbmVkRnJvbnRtYXR0ZXIgfSBmcm9tICcuL0Zyb250bWF0dGVyLnRzJztcblxuaW1wb3J0IHsgcmV0cnlXaXRoVGltZW91dCB9IGZyb20gJy4uL0FzeW5jLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi9GdW5jdGlvbi50cyc7XG5pbXBvcnQgeyBnZXROZXN0ZWRQcm9wZXJ0eVZhbHVlIH0gZnJvbSAnLi4vT2JqZWN0LnRzJztcbmltcG9ydCB7XG4gIGdldEZpbGUsXG4gIGdldEZpbGVPck51bGwsXG4gIGdldEZvbGRlcixcbiAgZ2V0UGF0aCxcbiAgaXNGaWxlLFxuICBpc01hcmtkb3duRmlsZVxufSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xuaW1wb3J0IHsgcGFyc2VGcm9udG1hdHRlciB9IGZyb20gJy4vRnJvbnRtYXR0ZXIudHMnO1xuaW1wb3J0IHsgc29ydFJlZmVyZW5jZXMgfSBmcm9tICcuL1JlZmVyZW5jZS50cyc7XG5pbXBvcnQgeyByZWFkU2FmZSB9IGZyb20gJy4vVmF1bHQudHMnO1xuXG4vKipcbiAqIFdyYXBwZXIgZm9yIHRoZSBnZXRCYWNrbGlua3NGb3JGaWxlIG1ldGhvZCB0aGF0IHByb3ZpZGVzIGEgc2FmZSBvdmVybG9hZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRCYWNrbGlua3NGb3JGaWxlU2FmZVdyYXBwZXIge1xuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBiYWNrbGlua3MgZm9yIGEgZmlsZSBzYWZlbHkuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgZmlsZSBvYmplY3QuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGFuIGFycmF5IGRpY3Rpb25hcnkgb2YgYmFja2xpbmtzLlxuICAgKi9cbiAgc2FmZShwYXRoT3JGaWxlOiBQYXRoT3JGaWxlKTogUHJvbWlzZTxDdXN0b21BcnJheURpY3Q8UmVmZXJlbmNlPj47XG59XG5cbi8qKlxuICogRW5zdXJlcyB0aGF0IHRoZSBtZXRhZGF0YSBjYWNoZSBpcyByZWFkeSBmb3IgYWxsIGZpbGVzLlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBtZXRhZGF0YSBjYWNoZSBpcyByZWFkeS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuc3VyZU1ldGFkYXRhQ2FjaGVSZWFkeShhcHA6IEFwcCk6IFByb21pc2U8dm9pZD4ge1xuICBmb3IgKGNvbnN0IFtwYXRoLCBjYWNoZV0gb2YgT2JqZWN0LmVudHJpZXMoYXBwLm1ldGFkYXRhQ2FjaGUuZmlsZUNhY2hlKSkge1xuICAgIGlmICghY2FjaGUuaGFzaCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKGFwcC5tZXRhZGF0YUNhY2hlLm1ldGFkYXRhQ2FjaGVbY2FjaGUuaGFzaF0pIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGF3YWl0IGdldENhY2hlU2FmZShhcHAsIHBhdGgpO1xuICB9XG59XG5cbi8qKlxuICogUmV0cmlldmVzIGFsbCBsaW5rcyBmcm9tIHRoZSBwcm92aWRlZCBjYWNoZS5cbiAqXG4gKiBAcGFyYW0gY2FjaGUgLSBUaGUgY2FjaGVkIG1ldGFkYXRhLlxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgcmVmZXJlbmNlIGNhY2hlcyByZXByZXNlbnRpbmcgdGhlIGxpbmtzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsTGlua3MoY2FjaGU6IENhY2hlZE1ldGFkYXRhKTogUmVmZXJlbmNlW10ge1xuICBsZXQgbGlua3M6IFJlZmVyZW5jZVtdID0gW107XG5cbiAgaWYgKGNhY2hlLmxpbmtzKSB7XG4gICAgbGlua3MucHVzaCguLi5jYWNoZS5saW5rcyk7XG4gIH1cblxuICBpZiAoY2FjaGUuZW1iZWRzKSB7XG4gICAgbGlua3MucHVzaCguLi5jYWNoZS5lbWJlZHMpO1xuICB9XG5cbiAgaWYgKGNhY2hlLmZyb250bWF0dGVyTGlua3MpIHtcbiAgICBsaW5rcy5wdXNoKC4uLmNhY2hlLmZyb250bWF0dGVyTGlua3MpO1xuICB9XG5cbiAgc29ydFJlZmVyZW5jZXMobGlua3MpO1xuXG4gIC8vIEJVRzogaHR0cHM6Ly9mb3J1bS5vYnNpZGlhbi5tZC90L2J1Zy1kdXBsaWNhdGVkLWxpbmtzLWluLW1ldGFkYXRhY2FjaGUtaW5zaWRlLWZvb3Rub3Rlcy84NTU1MVxuICBsaW5rcyA9IGxpbmtzLmZpbHRlcigobGluaywgaW5kZXgpID0+IHtcbiAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHByZXZpb3VzTGluayA9IGxpbmtzW2luZGV4IC0gMV07XG4gICAgaWYgKCFwcmV2aW91c0xpbmspIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChpc1JlZmVyZW5jZUNhY2hlKGxpbmspICYmIGlzUmVmZXJlbmNlQ2FjaGUocHJldmlvdXNMaW5rKSkge1xuICAgICAgcmV0dXJuIGxpbmsucG9zaXRpb24uc3RhcnQub2Zmc2V0ICE9PSBwcmV2aW91c0xpbmsucG9zaXRpb24uc3RhcnQub2Zmc2V0O1xuICAgIH1cblxuICAgIGlmIChpc0Zyb250bWF0dGVyTGlua0NhY2hlKGxpbmspICYmIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUocHJldmlvdXNMaW5rKSkge1xuICAgICAgcmV0dXJuIGxpbmsua2V5ICE9PSBwcmV2aW91c0xpbmsua2V5O1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9KTtcblxuICByZXR1cm4gbGlua3M7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBiYWNrbGlua3MgZm9yIGEgZmlsZSBvciBwYXRoLlxuICogTk9URTogVGhlIGZpbGUgbWF5IGJlIG5vbi1leGlzdGVudC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBmaWxlIG9iamVjdC5cbiAqIEByZXR1cm5zIFRoZSBiYWNrbGlua3MgZm9yIHRoZSBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmFja2xpbmtzRm9yRmlsZU9yUGF0aChhcHA6IEFwcCwgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSk6IEN1c3RvbUFycmF5RGljdDxSZWZlcmVuY2U+IHtcbiAgY29uc3QgZmlsZSA9IGdldEZpbGUoYXBwLCBwYXRoT3JGaWxlLCB0cnVlKTtcbiAgcmV0dXJuIHRlbXBSZWdpc3RlckZpbGVBbmRSdW4oYXBwLCBmaWxlLCAoKSA9PiBhcHAubWV0YWRhdGFDYWNoZS5nZXRCYWNrbGlua3NGb3JGaWxlKGZpbGUpKTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGJhY2tsaW5rcyBmb3IgYSBmaWxlIHNhZmVseS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBmaWxlIG9iamVjdC5cbiAqIEBwYXJhbSByZXRyeU9wdGlvbnMgLSBPcHRpb25hbCByZXRyeSBvcHRpb25zLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYW4gYXJyYXkgZGljdGlvbmFyeSBvZiBiYWNrbGlua3MuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRCYWNrbGlua3NGb3JGaWxlU2FmZShhcHA6IEFwcCwgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSwgcmV0cnlPcHRpb25zOiBSZXRyeU9wdGlvbnMgPSB7fSk6IFByb21pc2U8Q3VzdG9tQXJyYXlEaWN0PFJlZmVyZW5jZT4+IHtcbiAgY29uc3Qgc2FmZU92ZXJsb2FkID0gKGFwcC5tZXRhZGF0YUNhY2hlLmdldEJhY2tsaW5rc0ZvckZpbGUgYXMgUGFydGlhbDxHZXRCYWNrbGlua3NGb3JGaWxlU2FmZVdyYXBwZXI+KS5zYWZlO1xuICBpZiAoc2FmZU92ZXJsb2FkKSB7XG4gICAgcmV0dXJuIHNhZmVPdmVybG9hZChwYXRoT3JGaWxlKTtcbiAgfVxuICBsZXQgYmFja2xpbmtzOiBDdXN0b21BcnJheURpY3Q8UmVmZXJlbmNlPiA9IG51bGwgYXMgdW5rbm93biBhcyBDdXN0b21BcnJheURpY3Q8UmVmZXJlbmNlPjtcbiAgYXdhaXQgcmV0cnlXaXRoVGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZmlsZSA9IGdldEZpbGUoYXBwLCBwYXRoT3JGaWxlKTtcbiAgICBhd2FpdCBlbnN1cmVNZXRhZGF0YUNhY2hlUmVhZHkoYXBwKTtcbiAgICBiYWNrbGlua3MgPSBnZXRCYWNrbGlua3NGb3JGaWxlT3JQYXRoKGFwcCwgZmlsZSk7XG4gICAgZm9yIChjb25zdCBub3RlUGF0aCBvZiBiYWNrbGlua3Mua2V5cygpKSB7XG4gICAgICBjb25zdCBub3RlID0gZ2V0RmlsZU9yTnVsbChhcHAsIG5vdGVQYXRoKTtcbiAgICAgIGlmICghbm90ZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHNhdmVOb3RlKGFwcCwgbm90ZSk7XG5cbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZWFkU2FmZShhcHAsIG5vdGUpO1xuICAgICAgaWYgKCFjb250ZW50KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZyb250bWF0dGVyID0gcGFyc2VGcm9udG1hdHRlcihjb250ZW50KTtcbiAgICAgIGNvbnN0IGxpbmtzID0gYmFja2xpbmtzLmdldChub3RlUGF0aCk7XG4gICAgICBpZiAoIWxpbmtzKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBsaW5rIG9mIGxpbmtzKSB7XG4gICAgICAgIGxldCBhY3R1YWxMaW5rOiBzdHJpbmc7XG4gICAgICAgIGlmIChpc1JlZmVyZW5jZUNhY2hlKGxpbmspKSB7XG4gICAgICAgICAgYWN0dWFsTGluayA9IGNvbnRlbnQuc2xpY2UobGluay5wb3NpdGlvbi5zdGFydC5vZmZzZXQsIGxpbmsucG9zaXRpb24uZW5kLm9mZnNldCk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNGcm9udG1hdHRlckxpbmtDYWNoZShsaW5rKSkge1xuICAgICAgICAgIGNvbnN0IGxpbmtWYWx1ZSA9IGdldE5lc3RlZFByb3BlcnR5VmFsdWUoZnJvbnRtYXR0ZXIsIGxpbmsua2V5KTtcbiAgICAgICAgICBpZiAodHlwZW9mIGxpbmtWYWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYWN0dWFsTGluayA9IGxpbmtWYWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0dWFsTGluayAhPT0gbGluay5vcmlnaW5hbCkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9LCByZXRyeU9wdGlvbnMpO1xuXG4gIHJldHVybiBiYWNrbGlua3M7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBjYWNoZWQgbWV0YWRhdGEgZm9yIGEgZ2l2ZW4gZmlsZSBvciBwYXRoLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIGZpbGVPclBhdGggLSBUaGUgZmlsZSBvciBwYXRoIHRvIHJldHJpZXZlIHRoZSBtZXRhZGF0YSBmb3IuXG4gKiBAcGFyYW0gcmV0cnlPcHRpb25zIC0gT3B0aW9uYWwgcmV0cnkgb3B0aW9ucyBmb3IgdGhlIHJldHJpZXZhbCBwcm9jZXNzLlxuICogQHJldHVybnMgVGhlIGNhY2hlZCBtZXRhZGF0YSBmb3IgdGhlIGZpbGUsIG9yIG51bGwgaWYgaXQgZG9lc24ndCBleGlzdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENhY2hlU2FmZShhcHA6IEFwcCwgZmlsZU9yUGF0aDogUGF0aE9yRmlsZSwgcmV0cnlPcHRpb25zOiBSZXRyeU9wdGlvbnMgPSB7fSk6IFByb21pc2U8Q2FjaGVkTWV0YWRhdGEgfCBudWxsPiB7XG4gIGxldCBjYWNoZTogQ2FjaGVkTWV0YWRhdGEgfCBudWxsID0gbnVsbDtcblxuICBhd2FpdCByZXRyeVdpdGhUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBmaWxlID0gZ2V0RmlsZU9yTnVsbChhcHAsIGZpbGVPclBhdGgpO1xuXG4gICAgaWYgKCFmaWxlIHx8IGZpbGUuZGVsZXRlZCkge1xuICAgICAgY2FjaGUgPSBudWxsO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgYXdhaXQgc2F2ZU5vdGUoYXBwLCBmaWxlKTtcblxuICAgIGNvbnN0IGZpbGVJbmZvID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0RmlsZUluZm8oZmlsZS5wYXRoKTtcbiAgICBjb25zdCBzdGF0ID0gYXdhaXQgYXBwLnZhdWx0LmFkYXB0ZXIuc3RhdChmaWxlLnBhdGgpO1xuXG4gICAgaWYgKCFmaWxlSW5mbykge1xuICAgICAgZGVidWcuZGVmYXVsdCgnb2JzaWRpYW4tZGV2LXV0aWxzOk1ldGFkYXRhQ2FjaGU6Z2V0Q2FjaGVTYWZlJykubG9nKGBGaWxlIGNhY2hlIGluZm8gZm9yICR7ZmlsZS5wYXRofSBpcyBtaXNzaW5nYCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIGlmICghc3RhdCkge1xuICAgICAgZGVidWcuZGVmYXVsdCgnb2JzaWRpYW4tZGV2LXV0aWxzOk1ldGFkYXRhQ2FjaGU6Z2V0Q2FjaGVTYWZlJykubG9nKGBGaWxlIHN0YXQgZm9yICR7ZmlsZS5wYXRofSBpcyBtaXNzaW5nYCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChmaWxlLnN0YXQubXRpbWUgPCBzdGF0Lm10aW1lKSB7XG4gICAgICBhcHAudmF1bHQub25DaGFuZ2UoJ21vZGlmaWVkJywgZmlsZS5wYXRoLCB1bmRlZmluZWQsIHN0YXQpO1xuICAgICAgZGVidWcuZGVmYXVsdCgnb2JzaWRpYW4tZGV2LXV0aWxzOk1ldGFkYXRhQ2FjaGU6Z2V0Q2FjaGVTYWZlJykubG9nKGBDYWNoZWQgdGltZXN0YW1wIGZvciAke2ZpbGUucGF0aH0gaXMgZnJvbSAke25ldyBEYXRlKGZpbGUuc3RhdC5tdGltZSkudG9TdHJpbmcoKX0gd2hpY2ggaXMgb2xkZXIgdGhhbiB0aGUgZmlsZSBzeXN0ZW0gbW9kaWZpY2F0aW9uIHRpbWVzdGFtcCAke25ldyBEYXRlKHN0YXQubXRpbWUpLnRvU3RyaW5nKCl9YCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChmaWxlSW5mby5tdGltZSA8IHN0YXQubXRpbWUpIHtcbiAgICAgIGRlYnVnLmRlZmF1bHQoJ29ic2lkaWFuLWRldi11dGlsczpNZXRhZGF0YUNhY2hlOmdldENhY2hlU2FmZScpLmxvZyhgRmlsZSBjYWNoZSBpbmZvIGZvciAke2ZpbGUucGF0aH0gaXMgZnJvbSAke25ldyBEYXRlKGZpbGVJbmZvLm10aW1lKS50b1N0cmluZygpfSB3aGljaCBpcyBvbGRlciB0aGFuIHRoZSBmaWxlIG1vZGlmaWNhdGlvbiB0aW1lc3RhbXAgJHtuZXcgRGF0ZShzdGF0Lm10aW1lKS50b1N0cmluZygpfWApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYWNoZSA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpbGVDYWNoZShmaWxlKTtcbiAgICAgIGlmICghY2FjaGUpIHtcbiAgICAgICAgZGVidWcuZGVmYXVsdCgnb2JzaWRpYW4tZGV2LXV0aWxzOk1ldGFkYXRhQ2FjaGU6Z2V0Q2FjaGVTYWZlJykubG9nKGBGaWxlIGNhY2hlIGZvciAke2ZpbGUucGF0aH0gaXMgbWlzc2luZ2ApO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHJldHJ5T3B0aW9ucyk7XG5cbiAgcmV0dXJuIGNhY2hlO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgZnJvbnQgbWF0dGVyIGZyb20gdGhlIG1ldGFkYXRhIGNhY2hlIHNhZmVseS5cbiAqXG4gKiBAdHlwZVBhcmFtIEN1c3RvbUZyb250bWF0dGVyIC0gVGhlIHR5cGUgb2YgY3VzdG9tIGZyb250IG1hdHRlci5cbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgcGF0aCBvciBmaWxlIHRvIHJldHJpZXZlIHRoZSBmcm9udCBtYXR0ZXIgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSBjb21iaW5lZCBmcm9udCBtYXR0ZXIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRGcm9udG1hdHRlclNhZmU8Q3VzdG9tRnJvbnRtYXR0ZXIgPSB1bmtub3duPihhcHA6IEFwcCwgcGF0aE9yRmlsZTogUGF0aE9yRmlsZSk6IFByb21pc2U8Q29tYmluZWRGcm9udG1hdHRlcjxDdXN0b21Gcm9udG1hdHRlcj4+IHtcbiAgY29uc3QgY2FjaGUgPSBhd2FpdCBnZXRDYWNoZVNhZmUoYXBwLCBwYXRoT3JGaWxlKTtcbiAgcmV0dXJuIChjYWNoZT8uZnJvbnRtYXR0ZXIgPz8ge30pIGFzIENvbWJpbmVkRnJvbnRtYXR0ZXI8Q3VzdG9tRnJvbnRtYXR0ZXI+O1xufVxuXG4vKioqXG4gKiBSZWdpc3RlcnMgYSBmaWxlIGluIHRoZSBPYnNpZGlhbiBhcHAuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gZmlsZSAtIFRoZSBmaWxlIHRvIHJlZ2lzdGVyLlxuICogQHJldHVybnMgQSBmdW5jdGlvbiB0aGF0IHVucmVnaXN0ZXJzIHRoZSBmaWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJGaWxlKGFwcDogQXBwLCBmaWxlOiBUQWJzdHJhY3RGaWxlKTogKCkgPT4gdm9pZCB7XG4gIGlmICghZmlsZS5kZWxldGVkKSB7XG4gICAgcmV0dXJuIG5vb3A7XG4gIH1cblxuICBjb25zdCBkZWxldGVkUGF0aHM6IHN0cmluZ1tdID0gW107XG5cbiAgbGV0IGRlbGV0ZWRGaWxlOiBUQWJzdHJhY3RGaWxlID0gZmlsZTtcblxuICB3aGlsZSAoZGVsZXRlZEZpbGUuZGVsZXRlZCkge1xuICAgIGRlbGV0ZWRQYXRocy5wdXNoKGRlbGV0ZWRGaWxlLnBhdGgpO1xuICAgIGFwcC52YXVsdC5maWxlTWFwW2RlbGV0ZWRGaWxlLnBhdGhdID0gZGVsZXRlZEZpbGU7XG4gICAgZGVsZXRlZEZpbGUgPSBkZWxldGVkRmlsZS5wYXJlbnQgPz8gZ2V0Rm9sZGVyKGFwcCwgcGFyZW50Rm9sZGVyUGF0aChkZWxldGVkRmlsZS5wYXRoKSwgdHJ1ZSk7XG4gIH1cblxuICBpZiAoaXNGaWxlKGZpbGUpKSB7XG4gICAgYXBwLm1ldGFkYXRhQ2FjaGUudW5pcXVlRmlsZUxvb2t1cC5hZGQoZmlsZS5uYW1lLnRvTG93ZXJDYXNlKCksIGZpbGUpO1xuICB9XG5cbiAgcmV0dXJuICgpID0+IHtcbiAgICBmb3IgKGNvbnN0IHBhdGggb2YgZGVsZXRlZFBhdGhzKSB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWR5bmFtaWMtZGVsZXRlXG4gICAgICBkZWxldGUgYXBwLnZhdWx0LmZpbGVNYXBbcGF0aF07XG4gICAgfVxuXG4gICAgaWYgKGlzRmlsZShmaWxlKSkge1xuICAgICAgYXBwLm1ldGFkYXRhQ2FjaGUudW5pcXVlRmlsZUxvb2t1cC5yZW1vdmUoZmlsZS5uYW1lLnRvTG93ZXJDYXNlKCksIGZpbGUpO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBUZW1wb3JhcmlseSByZWdpc3RlcnMgYSBmaWxlIGFuZCBydW5zIGEgZnVuY3Rpb24uXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gZmlsZSAtIFRoZSBmaWxlIHRvIHRlbXBvcmFyaWx5IHJlZ2lzdGVyLlxuICogQHBhcmFtIGZuIC0gVGhlIGZ1bmN0aW9uIHRvIHJ1bi5cbiAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGVtcFJlZ2lzdGVyRmlsZUFuZFJ1bjxUPihhcHA6IEFwcCwgZmlsZTogVEFic3RyYWN0RmlsZSwgZm46ICgpID0+IFQpOiBUIHtcbiAgY29uc3QgdW5yZWdpc3RlciA9IHJlZ2lzdGVyRmlsZShhcHAsIGZpbGUpO1xuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGZuKCk7XG4gIH0gZmluYWxseSB7XG4gICAgdW5yZWdpc3RlcigpO1xuICB9XG59XG5cbi8qKlxuICogU2F2ZXMgdGhlIHNwZWNpZmllZCBub3RlIGluIHRoZSBPYnNpZGlhbiBhcHAuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBub3RlIHRvIGJlIHNhdmVkLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbm90ZSBpcyBzYXZlZC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2F2ZU5vdGUoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCFpc01hcmtkb3duRmlsZShhcHAsIHBhdGhPckZpbGUpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcGF0aCA9IGdldFBhdGgoYXBwLCBwYXRoT3JGaWxlKTtcblxuICBmb3IgKGNvbnN0IGxlYWYgb2YgYXBwLndvcmtzcGFjZS5nZXRMZWF2ZXNPZlR5cGUoJ21hcmtkb3duJykpIHtcbiAgICBpZiAobGVhZi52aWV3IGluc3RhbmNlb2YgTWFya2Rvd25WaWV3ICYmIGxlYWYudmlldy5maWxlPy5wYXRoID09PSBwYXRoKSB7XG4gICAgICBhd2FpdCBsZWFmLnZpZXcuc2F2ZSgpO1xuICAgIH1cbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7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
|
240
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL01ldGFkYXRhQ2FjaGUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbInZhciBfX3Byb2Nlc3MgPSBnbG9iYWxUaGlzWydwcm9jZXNzJ10gPz8ge1xuICBcImN3ZFwiOiAoKT0+XCIvXCIsXG4gIFwiZW52XCI6IHt9LFxuICBcInBsYXRmb3JtXCI6IFwiYW5kcm9pZFwiXG59O1xuLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gTWV0YWRhdGFDYWNoZVxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCB0aGUgbWV0YWRhdGEgY2FjaGUgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBBcHAsXG4gIENhY2hlZE1ldGFkYXRhLFxuICBSZWZlcmVuY2UsXG4gIFRBYnN0cmFjdEZpbGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHR5cGUgeyBDdXN0b21BcnJheURpY3QgfSBmcm9tICdvYnNpZGlhbi10eXBpbmdzJztcblxuaW1wb3J0IHsgTWFya2Rvd25WaWV3IH0gZnJvbSAnb2JzaWRpYW4nO1xuaW1wb3J0IHtcbiAgaXNGcm9udG1hdHRlckxpbmtDYWNoZSxcbiAgaXNSZWZlcmVuY2VDYWNoZSxcbiAgcGFyZW50Rm9sZGVyUGF0aFxufSBmcm9tICdvYnNpZGlhbi10eXBpbmdzL2ltcGxlbWVudGF0aW9ucyc7XG5cbmltcG9ydCB0eXBlIHsgUmV0cnlPcHRpb25zIH0gZnJvbSAnLi4vQXN5bmMudHMnO1xuaW1wb3J0IHR5cGUgeyBQYXRoT3JGaWxlIH0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcbmltcG9ydCB0eXBlIHsgQ29tYmluZWRGcm9udG1hdHRlciB9IGZyb20gJy4vRnJvbnRtYXR0ZXIudHMnO1xuXG5pbXBvcnQgeyByZXRyeVdpdGhUaW1lb3V0IH0gZnJvbSAnLi4vQXN5bmMudHMnO1xuaW1wb3J0IHsgZ2V0RGVidWdnZXIgfSBmcm9tICcuLi9EZWJ1Zy50cyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vRnVuY3Rpb24udHMnO1xuaW1wb3J0IHsgZ2V0TmVzdGVkUHJvcGVydHlWYWx1ZSB9IGZyb20gJy4uL09iamVjdC50cyc7XG5pbXBvcnQge1xuICBnZXRGaWxlLFxuICBnZXRGaWxlT3JOdWxsLFxuICBnZXRGb2xkZXIsXG4gIGdldFBhdGgsXG4gIGlzRmlsZSxcbiAgaXNNYXJrZG93bkZpbGVcbn0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcbmltcG9ydCB7IHBhcnNlRnJvbnRtYXR0ZXIgfSBmcm9tICcuL0Zyb250bWF0dGVyLnRzJztcbmltcG9ydCB7IHNvcnRSZWZlcmVuY2VzIH0gZnJvbSAnLi9SZWZlcmVuY2UudHMnO1xuaW1wb3J0IHsgcmVhZFNhZmUgfSBmcm9tICcuL1ZhdWx0LnRzJztcblxuLyoqXG4gKiBXcmFwcGVyIGZvciB0aGUgZ2V0QmFja2xpbmtzRm9yRmlsZSBtZXRob2QgdGhhdCBwcm92aWRlcyBhIHNhZmUgb3ZlcmxvYWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QmFja2xpbmtzRm9yRmlsZVNhZmVXcmFwcGVyIHtcbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgYmFja2xpbmtzIGZvciBhIGZpbGUgc2FmZWx5LlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9yIGZpbGUgb2JqZWN0LlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhbiBhcnJheSBkaWN0aW9uYXJ5IG9mIGJhY2tsaW5rcy5cbiAgICovXG4gIHNhZmUocGF0aE9yRmlsZTogUGF0aE9yRmlsZSk6IFByb21pc2U8Q3VzdG9tQXJyYXlEaWN0PFJlZmVyZW5jZT4+O1xufVxuXG4vKipcbiAqIEVuc3VyZXMgdGhhdCB0aGUgbWV0YWRhdGEgY2FjaGUgaXMgcmVhZHkgZm9yIGFsbCBmaWxlcy5cbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgbWV0YWRhdGEgY2FjaGUgaXMgcmVhZHkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVNZXRhZGF0YUNhY2hlUmVhZHkoYXBwOiBBcHApOiBQcm9taXNlPHZvaWQ+IHtcbiAgZm9yIChjb25zdCBbcGF0aCwgY2FjaGVdIG9mIE9iamVjdC5lbnRyaWVzKGFwcC5tZXRhZGF0YUNhY2hlLmZpbGVDYWNoZSkpIHtcbiAgICBpZiAoIWNhY2hlLmhhc2gpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChhcHAubWV0YWRhdGFDYWNoZS5tZXRhZGF0YUNhY2hlW2NhY2hlLmhhc2hdKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBhd2FpdCBnZXRDYWNoZVNhZmUoYXBwLCBwYXRoKTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHJpZXZlcyBhbGwgbGlua3MgZnJvbSB0aGUgcHJvdmlkZWQgY2FjaGUuXG4gKlxuICogQHBhcmFtIGNhY2hlIC0gVGhlIGNhY2hlZCBtZXRhZGF0YS5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHJlZmVyZW5jZSBjYWNoZXMgcmVwcmVzZW50aW5nIHRoZSBsaW5rcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFsbExpbmtzKGNhY2hlOiBDYWNoZWRNZXRhZGF0YSk6IFJlZmVyZW5jZVtdIHtcbiAgbGV0IGxpbmtzOiBSZWZlcmVuY2VbXSA9IFtdO1xuXG4gIGlmIChjYWNoZS5saW5rcykge1xuICAgIGxpbmtzLnB1c2goLi4uY2FjaGUubGlua3MpO1xuICB9XG5cbiAgaWYgKGNhY2hlLmVtYmVkcykge1xuICAgIGxpbmtzLnB1c2goLi4uY2FjaGUuZW1iZWRzKTtcbiAgfVxuXG4gIGlmIChjYWNoZS5mcm9udG1hdHRlckxpbmtzKSB7XG4gICAgbGlua3MucHVzaCguLi5jYWNoZS5mcm9udG1hdHRlckxpbmtzKTtcbiAgfVxuXG4gIHNvcnRSZWZlcmVuY2VzKGxpbmtzKTtcblxuICAvLyBCVUc6IGh0dHBzOi8vZm9ydW0ub2JzaWRpYW4ubWQvdC9idWctZHVwbGljYXRlZC1saW5rcy1pbi1tZXRhZGF0YWNhY2hlLWluc2lkZS1mb290bm90ZXMvODU1NTFcbiAgbGlua3MgPSBsaW5rcy5maWx0ZXIoKGxpbmssIGluZGV4KSA9PiB7XG4gICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmV2aW91c0xpbmsgPSBsaW5rc1tpbmRleCAtIDFdO1xuICAgIGlmICghcHJldmlvdXNMaW5rKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoaXNSZWZlcmVuY2VDYWNoZShsaW5rKSAmJiBpc1JlZmVyZW5jZUNhY2hlKHByZXZpb3VzTGluaykpIHtcbiAgICAgIHJldHVybiBsaW5rLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldCAhPT0gcHJldmlvdXNMaW5rLnBvc2l0aW9uLnN0YXJ0Lm9mZnNldDtcbiAgICB9XG5cbiAgICBpZiAoaXNGcm9udG1hdHRlckxpbmtDYWNoZShsaW5rKSAmJiBpc0Zyb250bWF0dGVyTGlua0NhY2hlKHByZXZpb3VzTGluaykpIHtcbiAgICAgIHJldHVybiBsaW5rLmtleSAhPT0gcHJldmlvdXNMaW5rLmtleTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGxpbmtzO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgYmFja2xpbmtzIGZvciBhIGZpbGUgb3IgcGF0aC5cbiAqIE5PVEU6IFRoZSBmaWxlIG1heSBiZSBub24tZXhpc3RlbnQuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgZmlsZSBvYmplY3QuXG4gKiBAcmV0dXJucyBUaGUgYmFja2xpbmtzIGZvciB0aGUgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJhY2tsaW5rc0ZvckZpbGVPclBhdGgoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUpOiBDdXN0b21BcnJheURpY3Q8UmVmZXJlbmNlPiB7XG4gIGNvbnN0IGZpbGUgPSBnZXRGaWxlKGFwcCwgcGF0aE9yRmlsZSwgdHJ1ZSk7XG4gIHJldHVybiB0ZW1wUmVnaXN0ZXJGaWxlQW5kUnVuKGFwcCwgZmlsZSwgKCkgPT4gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0QmFja2xpbmtzRm9yRmlsZShmaWxlKSk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBiYWNrbGlua3MgZm9yIGEgZmlsZSBzYWZlbHkuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgZmlsZSBvYmplY3QuXG4gKiBAcGFyYW0gcmV0cnlPcHRpb25zIC0gT3B0aW9uYWwgcmV0cnkgb3B0aW9ucy5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGFuIGFycmF5IGRpY3Rpb25hcnkgb2YgYmFja2xpbmtzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QmFja2xpbmtzRm9yRmlsZVNhZmUoYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUsIHJldHJ5T3B0aW9uczogUmV0cnlPcHRpb25zID0ge30pOiBQcm9taXNlPEN1c3RvbUFycmF5RGljdDxSZWZlcmVuY2U+PiB7XG4gIGNvbnN0IHNhZmVPdmVybG9hZCA9IChhcHAubWV0YWRhdGFDYWNoZS5nZXRCYWNrbGlua3NGb3JGaWxlIGFzIFBhcnRpYWw8R2V0QmFja2xpbmtzRm9yRmlsZVNhZmVXcmFwcGVyPikuc2FmZTtcbiAgaWYgKHNhZmVPdmVybG9hZCkge1xuICAgIHJldHVybiBzYWZlT3ZlcmxvYWQocGF0aE9yRmlsZSk7XG4gIH1cbiAgbGV0IGJhY2tsaW5rczogQ3VzdG9tQXJyYXlEaWN0PFJlZmVyZW5jZT4gPSBudWxsIGFzIHVua25vd24gYXMgQ3VzdG9tQXJyYXlEaWN0PFJlZmVyZW5jZT47XG4gIGF3YWl0IHJldHJ5V2l0aFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGZpbGUgPSBnZXRGaWxlKGFwcCwgcGF0aE9yRmlsZSk7XG4gICAgYXdhaXQgZW5zdXJlTWV0YWRhdGFDYWNoZVJlYWR5KGFwcCk7XG4gICAgYmFja2xpbmtzID0gZ2V0QmFja2xpbmtzRm9yRmlsZU9yUGF0aChhcHAsIGZpbGUpO1xuICAgIGZvciAoY29uc3Qgbm90ZVBhdGggb2YgYmFja2xpbmtzLmtleXMoKSkge1xuICAgICAgY29uc3Qgbm90ZSA9IGdldEZpbGVPck51bGwoYXBwLCBub3RlUGF0aCk7XG4gICAgICBpZiAoIW5vdGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBzYXZlTm90ZShhcHAsIG5vdGUpO1xuXG4gICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZFNhZmUoYXBwLCBub3RlKTtcbiAgICAgIGlmICghY29udGVudCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBjb25zdCBmcm9udG1hdHRlciA9IHBhcnNlRnJvbnRtYXR0ZXIoY29udGVudCk7XG4gICAgICBjb25zdCBsaW5rcyA9IGJhY2tsaW5rcy5nZXQobm90ZVBhdGgpO1xuICAgICAgaWYgKCFsaW5rcykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgbGluayBvZiBsaW5rcykge1xuICAgICAgICBsZXQgYWN0dWFsTGluazogc3RyaW5nO1xuICAgICAgICBpZiAoaXNSZWZlcmVuY2VDYWNoZShsaW5rKSkge1xuICAgICAgICAgIGFjdHVhbExpbmsgPSBjb250ZW50LnNsaWNlKGxpbmsucG9zaXRpb24uc3RhcnQub2Zmc2V0LCBsaW5rLnBvc2l0aW9uLmVuZC5vZmZzZXQpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGUobGluaykpIHtcbiAgICAgICAgICBjb25zdCBsaW5rVmFsdWUgPSBnZXROZXN0ZWRQcm9wZXJ0eVZhbHVlKGZyb250bWF0dGVyLCBsaW5rLmtleSk7XG4gICAgICAgICAgaWYgKHR5cGVvZiBsaW5rVmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFjdHVhbExpbmsgPSBsaW5rVmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdHVhbExpbmsgIT09IGxpbmsub3JpZ2luYWwpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSwgcmV0cnlPcHRpb25zKTtcblxuICByZXR1cm4gYmFja2xpbmtzO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgY2FjaGVkIG1ldGFkYXRhIGZvciBhIGdpdmVuIGZpbGUgb3IgcGF0aC5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBmaWxlT3JQYXRoIC0gVGhlIGZpbGUgb3IgcGF0aCB0byByZXRyaWV2ZSB0aGUgbWV0YWRhdGEgZm9yLlxuICogQHBhcmFtIHJldHJ5T3B0aW9ucyAtIE9wdGlvbmFsIHJldHJ5IG9wdGlvbnMgZm9yIHRoZSByZXRyaWV2YWwgcHJvY2Vzcy5cbiAqIEByZXR1cm5zIFRoZSBjYWNoZWQgbWV0YWRhdGEgZm9yIHRoZSBmaWxlLCBvciBudWxsIGlmIGl0IGRvZXNuJ3QgZXhpc3QuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDYWNoZVNhZmUoYXBwOiBBcHAsIGZpbGVPclBhdGg6IFBhdGhPckZpbGUsIHJldHJ5T3B0aW9uczogUmV0cnlPcHRpb25zID0ge30pOiBQcm9taXNlPENhY2hlZE1ldGFkYXRhIHwgbnVsbD4ge1xuICBsZXQgY2FjaGU6IENhY2hlZE1ldGFkYXRhIHwgbnVsbCA9IG51bGw7XG5cbiAgYXdhaXQgcmV0cnlXaXRoVGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgZmlsZSA9IGdldEZpbGVPck51bGwoYXBwLCBmaWxlT3JQYXRoKTtcblxuICAgIGlmICghZmlsZSB8fCBmaWxlLmRlbGV0ZWQpIHtcbiAgICAgIGNhY2hlID0gbnVsbDtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGF3YWl0IHNhdmVOb3RlKGFwcCwgZmlsZSk7XG5cbiAgICBjb25zdCBmaWxlSW5mbyA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldEZpbGVJbmZvKGZpbGUucGF0aCk7XG4gICAgY29uc3Qgc3RhdCA9IGF3YWl0IGFwcC52YXVsdC5hZGFwdGVyLnN0YXQoZmlsZS5wYXRoKTtcblxuICAgIGlmICghZmlsZUluZm8pIHtcbiAgICAgIGdldERlYnVnZ2VyKCdvYnNpZGlhbi1kZXYtdXRpbHM6TWV0YWRhdGFDYWNoZTpnZXRDYWNoZVNhZmUnKShgRmlsZSBjYWNoZSBpbmZvIGZvciAke2ZpbGUucGF0aH0gaXMgbWlzc2luZ2ApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoIXN0YXQpIHtcbiAgICAgIGdldERlYnVnZ2VyKCdvYnNpZGlhbi1kZXYtdXRpbHM6TWV0YWRhdGFDYWNoZTpnZXRDYWNoZVNhZmUnKShgRmlsZSBzdGF0IGZvciAke2ZpbGUucGF0aH0gaXMgbWlzc2luZ2ApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoZmlsZS5zdGF0Lm10aW1lIDwgc3RhdC5tdGltZSkge1xuICAgICAgYXBwLnZhdWx0Lm9uQ2hhbmdlKCdtb2RpZmllZCcsIGZpbGUucGF0aCwgdW5kZWZpbmVkLCBzdGF0KTtcbiAgICAgIGdldERlYnVnZ2VyKCdvYnNpZGlhbi1kZXYtdXRpbHM6TWV0YWRhdGFDYWNoZTpnZXRDYWNoZVNhZmUnKShgQ2FjaGVkIHRpbWVzdGFtcCBmb3IgJHtmaWxlLnBhdGh9IGlzIGZyb20gJHtuZXcgRGF0ZShmaWxlLnN0YXQubXRpbWUpLnRvU3RyaW5nKCl9IHdoaWNoIGlzIG9sZGVyIHRoYW4gdGhlIGZpbGUgc3lzdGVtIG1vZGlmaWNhdGlvbiB0aW1lc3RhbXAgJHtuZXcgRGF0ZShzdGF0Lm10aW1lKS50b1N0cmluZygpfWApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoZmlsZUluZm8ubXRpbWUgPCBzdGF0Lm10aW1lKSB7XG4gICAgICBnZXREZWJ1Z2dlcignb2JzaWRpYW4tZGV2LXV0aWxzOk1ldGFkYXRhQ2FjaGU6Z2V0Q2FjaGVTYWZlJykoYEZpbGUgY2FjaGUgaW5mbyBmb3IgJHtmaWxlLnBhdGh9IGlzIGZyb20gJHtuZXcgRGF0ZShmaWxlSW5mby5tdGltZSkudG9TdHJpbmcoKX0gd2hpY2ggaXMgb2xkZXIgdGhhbiB0aGUgZmlsZSBtb2RpZmljYXRpb24gdGltZXN0YW1wICR7bmV3IERhdGUoc3RhdC5tdGltZSkudG9TdHJpbmcoKX1gKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FjaGUgPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRGaWxlQ2FjaGUoZmlsZSk7XG4gICAgICBpZiAoIWNhY2hlKSB7XG4gICAgICAgIGdldERlYnVnZ2VyKCdvYnNpZGlhbi1kZXYtdXRpbHM6TWV0YWRhdGFDYWNoZTpnZXRDYWNoZVNhZmUnKShgRmlsZSBjYWNoZSBmb3IgJHtmaWxlLnBhdGh9IGlzIG1pc3NpbmdgKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9LCByZXRyeU9wdGlvbnMpO1xuXG4gIHJldHVybiBjYWNoZTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGZyb250IG1hdHRlciBmcm9tIHRoZSBtZXRhZGF0YSBjYWNoZSBzYWZlbHkuXG4gKlxuICogQHR5cGVQYXJhbSBDdXN0b21Gcm9udG1hdHRlciAtIFRoZSB0eXBlIG9mIGN1c3RvbSBmcm9udCBtYXR0ZXIuXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEBwYXJhbSBwYXRoT3JGaWxlIC0gVGhlIHBhdGggb3IgZmlsZSB0byByZXRyaWV2ZSB0aGUgZnJvbnQgbWF0dGVyIGZyb20uXG4gKiBAcmV0dXJucyBUaGUgY29tYmluZWQgZnJvbnQgbWF0dGVyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RnJvbnRtYXR0ZXJTYWZlPEN1c3RvbUZyb250bWF0dGVyID0gdW5rbm93bj4oYXBwOiBBcHAsIHBhdGhPckZpbGU6IFBhdGhPckZpbGUpOiBQcm9taXNlPENvbWJpbmVkRnJvbnRtYXR0ZXI8Q3VzdG9tRnJvbnRtYXR0ZXI+PiB7XG4gIGNvbnN0IGNhY2hlID0gYXdhaXQgZ2V0Q2FjaGVTYWZlKGFwcCwgcGF0aE9yRmlsZSk7XG4gIHJldHVybiAoY2FjaGU/LmZyb250bWF0dGVyID8/IHt9KSBhcyBDb21iaW5lZEZyb250bWF0dGVyPEN1c3RvbUZyb250bWF0dGVyPjtcbn1cblxuLyoqKlxuICogUmVnaXN0ZXJzIGEgZmlsZSBpbiB0aGUgT2JzaWRpYW4gYXBwLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZSB0byByZWdpc3Rlci5cbiAqIEByZXR1cm5zIEEgZnVuY3Rpb24gdGhhdCB1bnJlZ2lzdGVycyB0aGUgZmlsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRmlsZShhcHA6IEFwcCwgZmlsZTogVEFic3RyYWN0RmlsZSk6ICgpID0+IHZvaWQge1xuICBpZiAoIWZpbGUuZGVsZXRlZCkge1xuICAgIHJldHVybiBub29wO1xuICB9XG5cbiAgY29uc3QgZGVsZXRlZFBhdGhzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGxldCBkZWxldGVkRmlsZTogVEFic3RyYWN0RmlsZSA9IGZpbGU7XG5cbiAgd2hpbGUgKGRlbGV0ZWRGaWxlLmRlbGV0ZWQpIHtcbiAgICBkZWxldGVkUGF0aHMucHVzaChkZWxldGVkRmlsZS5wYXRoKTtcbiAgICBhcHAudmF1bHQuZmlsZU1hcFtkZWxldGVkRmlsZS5wYXRoXSA9IGRlbGV0ZWRGaWxlO1xuICAgIGRlbGV0ZWRGaWxlID0gZGVsZXRlZEZpbGUucGFyZW50ID8/IGdldEZvbGRlcihhcHAsIHBhcmVudEZvbGRlclBhdGgoZGVsZXRlZEZpbGUucGF0aCksIHRydWUpO1xuICB9XG5cbiAgaWYgKGlzRmlsZShmaWxlKSkge1xuICAgIGFwcC5tZXRhZGF0YUNhY2hlLnVuaXF1ZUZpbGVMb29rdXAuYWRkKGZpbGUubmFtZS50b0xvd2VyQ2FzZSgpLCBmaWxlKTtcbiAgfVxuXG4gIHJldHVybiAoKSA9PiB7XG4gICAgZm9yIChjb25zdCBwYXRoIG9mIGRlbGV0ZWRQYXRocykge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1keW5hbWljLWRlbGV0ZVxuICAgICAgZGVsZXRlIGFwcC52YXVsdC5maWxlTWFwW3BhdGhdO1xuICAgIH1cblxuICAgIGlmIChpc0ZpbGUoZmlsZSkpIHtcbiAgICAgIGFwcC5tZXRhZGF0YUNhY2hlLnVuaXF1ZUZpbGVMb29rdXAucmVtb3ZlKGZpbGUubmFtZS50b0xvd2VyQ2FzZSgpLCBmaWxlKTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogVGVtcG9yYXJpbHkgcmVnaXN0ZXJzIGEgZmlsZSBhbmQgcnVucyBhIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZSB0byB0ZW1wb3JhcmlseSByZWdpc3Rlci5cbiAqIEBwYXJhbSBmbiAtIFRoZSBmdW5jdGlvbiB0byBydW4uXG4gKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlbXBSZWdpc3RlckZpbGVBbmRSdW48VD4oYXBwOiBBcHAsIGZpbGU6IFRBYnN0cmFjdEZpbGUsIGZuOiAoKSA9PiBUKTogVCB7XG4gIGNvbnN0IHVucmVnaXN0ZXIgPSByZWdpc3RlckZpbGUoYXBwLCBmaWxlKTtcblxuICB0cnkge1xuICAgIHJldHVybiBmbigpO1xuICB9IGZpbmFsbHkge1xuICAgIHVucmVnaXN0ZXIoKTtcbiAgfVxufVxuXG4vKipcbiAqIFNhdmVzIHRoZSBzcGVjaWZpZWQgbm90ZSBpbiB0aGUgT2JzaWRpYW4gYXBwLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZpbGUgLSBUaGUgbm90ZSB0byBiZSBzYXZlZC5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIG5vdGUgaXMgc2F2ZWQuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHNhdmVOb3RlKGFwcDogQXBwLCBwYXRoT3JGaWxlOiBQYXRoT3JGaWxlKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghaXNNYXJrZG93bkZpbGUoYXBwLCBwYXRoT3JGaWxlKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBhdGggPSBnZXRQYXRoKGFwcCwgcGF0aE9yRmlsZSk7XG5cbiAgZm9yIChjb25zdCBsZWFmIG9mIGFwcC53b3Jrc3BhY2UuZ2V0TGVhdmVzT2ZUeXBlKCdtYXJrZG93bicpKSB7XG4gICAgaWYgKGxlYWYudmlldyBpbnN0YW5jZW9mIE1hcmtkb3duVmlldyAmJiBsZWFmLnZpZXcuZmlsZT8ucGF0aCA9PT0gcGF0aCkge1xuICAgICAgYXdhaXQgbGVhZi52aWV3LnNhdmUoKTtcbiAgICB9XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWtCQSxzQkFBNkI7QUFDN0IsNkJBSU87QUFNUCxtQkFBaUM7QUFDakMsbUJBQTRCO0FBQzVCLHNCQUFxQjtBQUNyQixvQkFBdUM7QUFDdkMsd0JBT087QUFDUCx5QkFBaUM7QUFDakMsdUJBQStCO0FBQy9CLG1CQUF5QjtBQTNDekIsSUFBSSxZQUFZLFdBQVcsU0FBUyxLQUFLO0FBQUEsRUFDdkMsT0FBTyxNQUFJO0FBQUEsRUFDWCxPQUFPLENBQUM7QUFBQSxFQUNSLFlBQVk7QUFDZDtBQTJEQSxlQUFzQix5QkFBeUIsS0FBeUI7QUFDdEUsYUFBVyxDQUFDLE1BQU0sS0FBSyxLQUFLLE9BQU8sUUFBUSxJQUFJLGNBQWMsU0FBUyxHQUFHO0FBQ3ZFLFFBQUksQ0FBQyxNQUFNLE1BQU07QUFDZjtBQUFBLElBQ0Y7QUFFQSxRQUFJLElBQUksY0FBYyxjQUFjLE1BQU0sSUFBSSxHQUFHO0FBQy9DO0FBQUEsSUFDRjtBQUVBLFVBQU0sYUFBYSxLQUFLLElBQUk7QUFBQSxFQUM5QjtBQUNGO0FBUU8sU0FBUyxZQUFZLE9BQW9DO0FBQzlELE1BQUksUUFBcUIsQ0FBQztBQUUxQixNQUFJLE1BQU0sT0FBTztBQUNmLFVBQU0sS0FBSyxHQUFHLE1BQU0sS0FBSztBQUFBLEVBQzNCO0FBRUEsTUFBSSxNQUFNLFFBQVE7QUFDaEIsVUFBTSxLQUFLLEdBQUcsTUFBTSxNQUFNO0FBQUEsRUFDNUI7QUFFQSxNQUFJLE1BQU0sa0JBQWtCO0FBQzFCLFVBQU0sS0FBSyxHQUFHLE1BQU0sZ0JBQWdCO0FBQUEsRUFDdEM7QUFFQSx1Q0FBZSxLQUFLO0FBR3BCLFVBQVEsTUFBTSxPQUFPLENBQUMsTUFBTSxVQUFVO0FBQ3BDLFFBQUksVUFBVSxHQUFHO0FBQ2YsYUFBTztBQUFBLElBQ1Q7QUFFQSxVQUFNLGVBQWUsTUFBTSxRQUFRLENBQUM7QUFDcEMsUUFBSSxDQUFDLGNBQWM7QUFDakIsYUFBTztBQUFBLElBQ1Q7QUFFQSxZQUFJLHlDQUFpQixJQUFJLFNBQUsseUNBQWlCLFlBQVksR0FBRztBQUM1RCxhQUFPLEtBQUssU0FBUyxNQUFNLFdBQVcsYUFBYSxTQUFTLE1BQU07QUFBQSxJQUNwRTtBQUVBLFlBQUksK0NBQXVCLElBQUksU0FBSywrQ0FBdUIsWUFBWSxHQUFHO0FBQ3hFLGFBQU8sS0FBSyxRQUFRLGFBQWE7QUFBQSxJQUNuQztBQUVBLFdBQU87QUFBQSxFQUNULENBQUM7QUFFRCxTQUFPO0FBQ1Q7QUFVTyxTQUFTLDBCQUEwQixLQUFVLFlBQW9EO0FBQ3RHLFFBQU0sV0FBTywyQkFBUSxLQUFLLFlBQVksSUFBSTtBQUMxQyxTQUFPLHVCQUF1QixLQUFLLE1BQU0sTUFBTSxJQUFJLGNBQWMsb0JBQW9CLElBQUksQ0FBQztBQUM1RjtBQVVBLGVBQXNCLHdCQUF3QixLQUFVLFlBQXdCLGVBQTZCLENBQUMsR0FBd0M7QUFDcEosUUFBTSxlQUFnQixJQUFJLGNBQWMsb0JBQWdFO0FBQ3hHLE1BQUksY0FBYztBQUNoQixXQUFPLGFBQWEsVUFBVTtBQUFBLEVBQ2hDO0FBQ0EsTUFBSSxZQUF3QztBQUM1QyxZQUFNLCtCQUFpQixZQUFZO0FBQ2pDLFVBQU0sV0FBTywyQkFBUSxLQUFLLFVBQVU7QUFDcEMsVUFBTSx5QkFBeUIsR0FBRztBQUNsQyxnQkFBWSwwQkFBMEIsS0FBSyxJQUFJO0FBQy9DLGVBQVcsWUFBWSxVQUFVLEtBQUssR0FBRztBQUN2QyxZQUFNLFdBQU8saUNBQWMsS0FBSyxRQUFRO0FBQ3hDLFVBQUksQ0FBQyxNQUFNO0FBQ1QsZUFBTztBQUFBLE1BQ1Q7QUFFQSxZQUFNLFNBQVMsS0FBSyxJQUFJO0FBRXhCLFlBQU0sVUFBVSxVQUFNLHVCQUFTLEtBQUssSUFBSTtBQUN4QyxVQUFJLENBQUMsU0FBUztBQUNaLGVBQU87QUFBQSxNQUNUO0FBQ0EsWUFBTSxrQkFBYyxxQ0FBaUIsT0FBTztBQUM1QyxZQUFNLFFBQVEsVUFBVSxJQUFJLFFBQVE7QUFDcEMsVUFBSSxDQUFDLE9BQU87QUFDVixlQUFPO0FBQUEsTUFDVDtBQUVBLGlCQUFXLFFBQVEsT0FBTztBQUN4QixZQUFJO0FBQ0osZ0JBQUkseUNBQWlCLElBQUksR0FBRztBQUMxQix1QkFBYSxRQUFRLE1BQU0sS0FBSyxTQUFTLE1BQU0sUUFBUSxLQUFLLFNBQVMsSUFBSSxNQUFNO0FBQUEsUUFDakYsZUFBVywrQ0FBdUIsSUFBSSxHQUFHO0FBQ3ZDLGdCQUFNLGdCQUFZLHNDQUF1QixhQUFhLEtBQUssR0FBRztBQUM5RCxjQUFJLE9BQU8sY0FBYyxVQUFVO0FBQ2pDLG1CQUFPO0FBQUEsVUFDVDtBQUNBLHVCQUFhO0FBQUEsUUFDZixPQUFPO0FBQ0wsaUJBQU87QUFBQSxRQUNUO0FBQ0EsWUFBSSxlQUFlLEtBQUssVUFBVTtBQUNoQyxpQkFBTztBQUFBLFFBQ1Q7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUVBLFdBQU87QUFBQSxFQUNULEdBQUcsWUFBWTtBQUVmLFNBQU87QUFDVDtBQVVBLGVBQXNCLGFBQWEsS0FBVSxZQUF3QixlQUE2QixDQUFDLEdBQW1DO0FBQ3BJLE1BQUksUUFBK0I7QUFFbkMsWUFBTSwrQkFBaUIsWUFBWTtBQUNqQyxVQUFNLFdBQU8saUNBQWMsS0FBSyxVQUFVO0FBRTFDLFFBQUksQ0FBQyxRQUFRLEtBQUssU0FBUztBQUN6QixjQUFRO0FBQ1IsYUFBTztBQUFBLElBQ1Q7QUFFQSxVQUFNLFNBQVMsS0FBSyxJQUFJO0FBRXhCLFVBQU0sV0FBVyxJQUFJLGNBQWMsWUFBWSxLQUFLLElBQUk7QUFDeEQsVUFBTSxPQUFPLE1BQU0sSUFBSSxNQUFNLFFBQVEsS0FBSyxLQUFLLElBQUk7QUFFbkQsUUFBSSxDQUFDLFVBQVU7QUFDYixvQ0FBWSwrQ0FBK0MsRUFBRSx1QkFBdUIsS0FBSyxJQUFJLGFBQWE7QUFDMUcsYUFBTztBQUFBLElBQ1QsV0FBVyxDQUFDLE1BQU07QUFDaEIsb0NBQVksK0NBQStDLEVBQUUsaUJBQWlCLEtBQUssSUFBSSxhQUFhO0FBQ3BHLGFBQU87QUFBQSxJQUNULFdBQVcsS0FBSyxLQUFLLFFBQVEsS0FBSyxPQUFPO0FBQ3ZDLFVBQUksTUFBTSxTQUFTLFlBQVksS0FBSyxNQUFNLFFBQVcsSUFBSTtBQUN6RCxvQ0FBWSwrQ0FBK0MsRUFBRSx3QkFBd0IsS0FBSyxJQUFJLFlBQVksSUFBSSxLQUFLLEtBQUssS0FBSyxLQUFLLEVBQUUsU0FBUyxDQUFDLCtEQUErRCxJQUFJLEtBQUssS0FBSyxLQUFLLEVBQUUsU0FBUyxDQUFDLEVBQUU7QUFDOU8sYUFBTztBQUFBLElBQ1QsV0FBVyxTQUFTLFFBQVEsS0FBSyxPQUFPO0FBQ3RDLG9DQUFZLCtDQUErQyxFQUFFLHVCQUF1QixLQUFLLElBQUksWUFBWSxJQUFJLEtBQUssU0FBUyxLQUFLLEVBQUUsU0FBUyxDQUFDLHdEQUF3RCxJQUFJLEtBQUssS0FBSyxLQUFLLEVBQUUsU0FBUyxDQUFDLEVBQUU7QUFDck8sYUFBTztBQUFBLElBQ1QsT0FBTztBQUNMLGNBQVEsSUFBSSxjQUFjLGFBQWEsSUFBSTtBQUMzQyxVQUFJLENBQUMsT0FBTztBQUNWLHNDQUFZLCtDQUErQyxFQUFFLGtCQUFrQixLQUFLLElBQUksYUFBYTtBQUNyRyxlQUFPO0FBQUEsTUFDVCxPQUFPO0FBQ0wsZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBQUEsRUFDRixHQUFHLFlBQVk7QUFFZixTQUFPO0FBQ1Q7QUFVQSxlQUFzQixtQkFBZ0QsS0FBVSxZQUF5RTtBQUN2SixRQUFNLFFBQVEsTUFBTSxhQUFhLEtBQUssVUFBVTtBQUNoRCxTQUFRLE9BQU8sZUFBZSxDQUFDO0FBQ2pDO0FBU08sU0FBUyxhQUFhLEtBQVUsTUFBaUM7QUFDdEUsTUFBSSxDQUFDLEtBQUssU0FBUztBQUNqQixXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sZUFBeUIsQ0FBQztBQUVoQyxNQUFJLGNBQTZCO0FBRWpDLFNBQU8sWUFBWSxTQUFTO0FBQzFCLGlCQUFhLEtBQUssWUFBWSxJQUFJO0FBQ2xDLFFBQUksTUFBTSxRQUFRLFlBQVksSUFBSSxJQUFJO0FBQ3RDLGtCQUFjLFlBQVksY0FBVSw2QkFBVSxTQUFLLHlDQUFpQixZQUFZLElBQUksR0FBRyxJQUFJO0FBQUEsRUFDN0Y7QUFFQSxVQUFJLDBCQUFPLElBQUksR0FBRztBQUNoQixRQUFJLGNBQWMsaUJBQWlCLElBQUksS0FBSyxLQUFLLFlBQVksR0FBRyxJQUFJO0FBQUEsRUFDdEU7QUFFQSxTQUFPLE1BQU07QUFDWCxlQUFXLFFBQVEsY0FBYztBQUUvQixhQUFPLElBQUksTUFBTSxRQUFRLElBQUk7QUFBQSxJQUMvQjtBQUVBLFlBQUksMEJBQU8sSUFBSSxHQUFHO0FBQ2hCLFVBQUksY0FBYyxpQkFBaUIsT0FBTyxLQUFLLEtBQUssWUFBWSxHQUFHLElBQUk7QUFBQSxJQUN6RTtBQUFBLEVBQ0Y7QUFDRjtBQVVPLFNBQVMsdUJBQTBCLEtBQVUsTUFBcUIsSUFBZ0I7QUFDdkYsUUFBTSxhQUFhLGFBQWEsS0FBSyxJQUFJO0FBRXpDLE1BQUk7QUFDRixXQUFPLEdBQUc7QUFBQSxFQUNaLFVBQUU7QUFDQSxlQUFXO0FBQUEsRUFDYjtBQUNGO0FBU0EsZUFBZSxTQUFTLEtBQVUsWUFBdUM7QUFDdkUsTUFBSSxLQUFDLGtDQUFlLEtBQUssVUFBVSxHQUFHO0FBQ3BDO0FBQUEsRUFDRjtBQUVBLFFBQU0sV0FBTywyQkFBUSxLQUFLLFVBQVU7QUFFcEMsYUFBVyxRQUFRLElBQUksVUFBVSxnQkFBZ0IsVUFBVSxHQUFHO0FBQzVELFFBQUksS0FBSyxnQkFBZ0IsZ0NBQWdCLEtBQUssS0FBSyxNQUFNLFNBQVMsTUFBTTtBQUN0RSxZQUFNLEtBQUssS0FBSyxLQUFLO0FBQUEsSUFDdkI7QUFBQSxFQUNGO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
@@ -57,6 +57,7 @@ class PluginBase extends import_obsidian.Plugin {
|
|
57
57
|
*
|
58
58
|
* @see {@link https://github.com/debug-js/debug?tab=readme-ov-file#browser-support}
|
59
59
|
*
|
60
|
+
* @param message - The message to log.
|
60
61
|
* @param args - The arguments to log.
|
61
62
|
*/
|
62
63
|
consoleDebug;
|
@@ -95,8 +96,7 @@ class PluginBase extends import_obsidian.Plugin {
|
|
95
96
|
*/
|
96
97
|
constructor(app, manifest) {
|
97
98
|
super(app, manifest);
|
98
|
-
|
99
|
-
this.consoleDebug = (...args) => void consoleDebugInstance.log(...args);
|
99
|
+
this.consoleDebug = import_debug.default.default(manifest.id);
|
100
100
|
console.debug(`Debug messages for plugin '${manifest.name}' are not shown by default. Set localStorage.debug='${manifest.id}' to see them. See https://github.com/debug-js/debug?tab=readme-ov-file#browser-support for more information`);
|
101
101
|
}
|
102
102
|
/**
|
@@ -177,4 +177,4 @@ ${message}`);
|
|
177
177
|
0 && (module.exports = {
|
178
178
|
PluginBase
|
179
179
|
});
|
180
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5CYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpbkJhc2VcbiAqIEJhc2UgY2xhc3MgZm9yIE9ic2lkaWFuIHBsdWdpbnMgcHJvdmlkaW5nIHV0aWxpdHkgbWV0aG9kcyBmb3Igc2V0dGluZ3MgbWFuYWdlbWVudCwgZXJyb3IgaGFuZGxpbmcsIGFuZCBub3RpZmljYXRpb25zLlxuICpcbiAqIFRoaXMgY2xhc3Mgc2ltcGxpZmllcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBwbHVnaW4gc2V0dGluZ3MsIGRpc3BsYXlpbmcgbm90aWZpY2F0aW9ucywgYW5kIGhhbmRsaW5nIGVycm9ycy5cbiAqIFN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCBtZXRob2RzIHRvIGNyZWF0ZSBkZWZhdWx0IHNldHRpbmdzIGFuZCBzZXR0aW5ncyB0YWJzLCBhbmQgY29tcGxldGUgcGx1Z2luLXNwZWNpZmljXG4gKiBsb2FkaW5nIHRhc2tzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luTWFuaWZlc3QgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQge1xuICBBcHAsXG4gIE5vdGljZSxcbiAgUGx1Z2luLFxuICBQbHVnaW5TZXR0aW5nVGFiXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tICcuLi8uLi9Bc3luYy50cyc7XG5pbXBvcnQgdHlwZSB7IEVtcHR5U2V0dGluZ3MgfSBmcm9tICcuL0VtcHR5U2V0dGluZ3MudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5TZXR0aW5nc0Jhc2UgfSBmcm9tICcuL1BsdWdpblNldHRpbmdzQmFzZS50cyc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlciB9IGZyb20gJy4uLy4uL0Vycm9yLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9GdW5jdGlvbi50cyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgT2JzaWRpYW4gcGx1Z2lucyB3aXRoIGJ1aWx0LWluIHN1cHBvcnQgZm9yIHNldHRpbmdzIG1hbmFnZW1lbnQsIGVycm9yIGhhbmRsaW5nLCBhbmQgbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgcmVwcmVzZW50aW5nIHRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncyBleHRlbmRzIFBsdWdpblNldHRpbmdzQmFzZSA9IEVtcHR5U2V0dGluZ3M+IGV4dGVuZHMgUGx1Z2luIHtcbiAgLyoqXG4gICAqIFVzZSBpbnN0ZWFkIG9mIGBjb25zb2xlLmRlYnVnKClgIHRvIGxvZyBtZXNzYWdlcy5cbiAgICpcbiAgICogVGhvc2UgbWVzc2FnZXMgYXJlIG5vdCBzaG93biBieSBkZWZhdWx0LCBidXQgY2FuIGJlIHNob3duIGJ5IHNldHRpbmcgdGhlIGBERUJVR2AgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gdGhlIHBsdWdpbiBJRC5cbiAgICpcbiAgICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2RlYnVnLWpzL2RlYnVnP3RhYj1yZWFkbWUtb3YtZmlsZSNicm93c2VyLXN1cHBvcnR9XG4gICAqXG4gICAqIEBwYXJhbSBhcmdzIC0gVGhlIGFyZ3VtZW50cyB0byBsb2cuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY29uc29sZURlYnVnOiAoLi4uYXJnczogdW5rbm93bltdKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBYm9ydFNpZ25hbCB1c2VkIGZvciBhYm9ydGluZyBsb25nLXJ1bm5pbmcgb3BlcmF0aW9ucy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGFib3J0IHNpZ25hbC5cbiAgICovXG4gIHB1YmxpYyBnZXQgYWJvcnRTaWduYWwoKTogQWJvcnRTaWduYWwge1xuICAgIHJldHVybiB0aGlzLl9hYm9ydFNpZ25hbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgY29weSBvZiB0aGUgY3VycmVudCBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgY29weSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKi9cbiAgcHVibGljIGdldCBzZXR0aW5nc0NvcHkoKTogUGx1Z2luU2V0dGluZ3Mge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZVBsdWdpblNldHRpbmdzKHRoaXMuc2V0dGluZ3MudG9KU09OKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgc2V0dGluZ3MoKTogUGx1Z2luU2V0dGluZ3Mge1xuICAgIHJldHVybiB0aGlzLl9zZXR0aW5ncztcbiAgfVxuXG4gIHByaXZhdGUgX2Fib3J0U2lnbmFsITogQWJvcnRTaWduYWw7XG5cbiAgcHJpdmF0ZSBfc2V0dGluZ3MhOiBQbHVnaW5TZXR0aW5ncztcblxuICBwcml2YXRlIG5vdGljZT86IE5vdGljZTtcblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhIG5ldyBQbHVnaW5CYXNlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIG1hbmlmZXN0IC0gVGhlIHBsdWdpbiBtYW5pZmVzdC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihhcHA6IEFwcCwgbWFuaWZlc3Q6IFBsdWdpbk1hbmlmZXN0KSB7XG4gICAgc3VwZXIoYXBwLCBtYW5pZmVzdCk7XG4gICAgY29uc3QgY29uc29sZURlYnVnSW5zdGFuY2UgPSBkZWJ1Zy5kZWZhdWx0KG1hbmlmZXN0LmlkKTtcbiAgICB0aGlzLmNvbnNvbGVEZWJ1ZyA9ICguLi5hcmdzOiB1bmtub3duW10pOiB2b2lkID0+IHZvaWQgY29uc29sZURlYnVnSW5zdGFuY2UubG9nKC4uLmFyZ3MpO1xuICAgIGNvbnNvbGUuZGVidWcoYERlYnVnIG1lc3NhZ2VzIGZvciBwbHVnaW4gJyR7bWFuaWZlc3QubmFtZX0nIGFyZSBub3Qgc2hvd24gYnkgZGVmYXVsdC4gU2V0IGxvY2FsU3RvcmFnZS5kZWJ1Zz0nJHttYW5pZmVzdC5pZH0nIHRvIHNlZSB0aGVtLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2RlYnVnLWpzL2RlYnVnP3RhYj1yZWFkbWUtb3YtZmlsZSNicm93c2VyLXN1cHBvcnQgZm9yIG1vcmUgaW5mb3JtYXRpb25gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIGlzIGxvYWRlZFxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIG9ubG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnJlZ2lzdGVyKHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlcigoKSA9PiB7XG4gICAgICB0aGlzLnNob3dOb3RpY2UoJ0FuIHVuaGFuZGxlZCBlcnJvciBvY2N1cnJlZC4gUGxlYXNlIGNoZWNrIHRoZSBjb25zb2xlIGZvciBtb3JlIGluZm9ybWF0aW9uLicpO1xuICAgIH0pKTtcblxuICAgIGF3YWl0IHRoaXMubG9hZFNldHRpbmdzKCk7XG4gICAgY29uc3QgcGx1Z2luU2V0dGluZ3NUYWIgPSB0aGlzLmNyZWF0ZVBsdWdpblNldHRpbmdzVGFiKCk7XG4gICAgaWYgKHBsdWdpblNldHRpbmdzVGFiKSB7XG4gICAgICB0aGlzLmFkZFNldHRpbmdUYWIocGx1Z2luU2V0dGluZ3NUYWIpO1xuICAgIH1cblxuICAgIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB0aGlzLl9hYm9ydFNpZ25hbCA9IGFib3J0Q29udHJvbGxlci5zaWduYWw7XG4gICAgdGhpcy5yZWdpc3RlcigoKSA9PiB7XG4gICAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKTtcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLm9ubG9hZENvbXBsZXRlKCk7XG4gICAgdGhpcy5hcHAud29ya3NwYWNlLm9uTGF5b3V0UmVhZHkodGhpcy5vbkxheW91dFJlYWR5LmJpbmQodGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIHRoZSBuZXcgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0gbmV3U2V0dGluZ3MgLSBUaGUgbmV3IHNldHRpbmdzIHRvIHNhdmUuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNldHRpbmdzIGFyZSBzYXZlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzYXZlU2V0dGluZ3MobmV3U2V0dGluZ3M6IFBsdWdpblNldHRpbmdzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QganNvbiA9IG5ld1NldHRpbmdzLnRvSlNPTigpO1xuICAgIHRoaXMuX3NldHRpbmdzID0gdGhpcy5jcmVhdGVQbHVnaW5TZXR0aW5ncyhqc29uKTtcbiAgICBhd2FpdCB0aGlzLnNhdmVEYXRhKGpzb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIHBsdWdpbiBzZXR0aW5ncy4gVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLlxuICAgKlxuICAgKiBAcGFyYW0gZGF0YSAtIFRoZSBkYXRhIHRvIGNyZWF0ZSB0aGUgcGx1Z2luIHNldHRpbmdzIGZyb20uXG4gICAqIEByZXR1cm5zIFRoZSBwbHVnaW4gc2V0dGluZ3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlUGx1Z2luU2V0dGluZ3MoZGF0YTogdW5rbm93bik6IFBsdWdpblNldHRpbmdzO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcGx1Z2luIHNldHRpbmdzIHRhYi4gVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgc2V0dGluZ3MgdGFiIG9yIG51bGwgaWYgbm90IGFwcGxpY2FibGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlUGx1Z2luU2V0dGluZ3NUYWIoKTogbnVsbCB8IFBsdWdpblNldHRpbmdUYWI7XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBsYXlvdXQgaXMgcmVhZHkuIFRoaXMgbWV0aG9kIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gcGVyZm9ybSBhY3Rpb25zIG9uY2VcbiAgICogdGhlIGxheW91dCBpcyByZWFkeS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIG9yIHZvaWQgaW5kaWNhdGluZyB0aGUgY29tcGxldGlvbiBvZiB0aGUgbGF5b3V0IHNldHVwLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9uTGF5b3V0UmVhZHkoKTogTWF5YmVQcm9taXNlPHZvaWQ+IHtcbiAgICBub29wKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBsb2FkaW5nIGlzIGNvbXBsZXRlLiBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMgdG8gcGVyZm9ybVxuICAgKiBhbnkgYWRkaXRpb25hbCBzZXR1cCByZXF1aXJlZCBhZnRlciBsb2FkaW5nIGlzIGNvbXBsZXRlLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHByb21pc2Ugb3Igdm9pZCBpbmRpY2F0aW5nIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBsb2FkIHByb2Nlc3MuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25sb2FkQ29tcGxldGUoKTogTWF5YmVQcm9taXNlPHZvaWQ+IHtcbiAgICBub29wKCk7XG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheXMgYSBub3RpY2UgbWVzc2FnZSB0byB0aGUgdXNlci5cbiAgICpcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBkaXNwbGF5LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNob3dOb3RpY2UobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubm90aWNlKSB7XG4gICAgICB0aGlzLm5vdGljZS5oaWRlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5ub3RpY2UgPSBuZXcgTm90aWNlKGAke3RoaXMubWFuaWZlc3QubmFtZX1cXG4ke21lc3NhZ2V9YCk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIHBsdWdpbiBzZXR0aW5ncyBmcm9tIHRoZSBzYXZlZCBkYXRhLlxuICAgKlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzZXR0aW5ncyBhcmUgbG9hZGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBsb2FkU2V0dGluZ3MoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMubG9hZERhdGEoKSBhcyB1bmtub3duO1xuICAgIHRoaXMuX3NldHRpbmdzID0gdGhpcy5jcmVhdGVQbHVnaW5TZXR0aW5ncyhkYXRhKTtcbiAgICBpZiAodGhpcy5fc2V0dGluZ3Muc2hvdWxkU2F2ZUFmdGVyTG9hZCgpKSB7XG4gICAgICBhd2FpdCB0aGlzLnNhdmVTZXR0aW5ncyh0aGlzLl9zZXR0aW5ncyk7XG4gICAgfVxuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQWdCQSxtQkFBa0I7QUFDbEIs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
|
180
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5CYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJ2YXIgX19wcm9jZXNzID0gZ2xvYmFsVGhpc1sncHJvY2VzcyddID8/IHtcbiAgXCJjd2RcIjogKCk9PlwiL1wiLFxuICBcImVudlwiOiB7fSxcbiAgXCJwbGF0Zm9ybVwiOiBcImFuZHJvaWRcIlxufTtcbi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFBsdWdpbkJhc2VcbiAqIEJhc2UgY2xhc3MgZm9yIE9ic2lkaWFuIHBsdWdpbnMgcHJvdmlkaW5nIHV0aWxpdHkgbWV0aG9kcyBmb3Igc2V0dGluZ3MgbWFuYWdlbWVudCwgZXJyb3IgaGFuZGxpbmcsIGFuZCBub3RpZmljYXRpb25zLlxuICpcbiAqIFRoaXMgY2xhc3Mgc2ltcGxpZmllcyB0aGUgcHJvY2VzcyBvZiBtYW5hZ2luZyBwbHVnaW4gc2V0dGluZ3MsIGRpc3BsYXlpbmcgbm90aWZpY2F0aW9ucywgYW5kIGhhbmRsaW5nIGVycm9ycy5cbiAqIFN1YmNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCBtZXRob2RzIHRvIGNyZWF0ZSBkZWZhdWx0IHNldHRpbmdzIGFuZCBzZXR0aW5ncyB0YWJzLCBhbmQgY29tcGxldGUgcGx1Z2luLXNwZWNpZmljXG4gKiBsb2FkaW5nIHRhc2tzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUGx1Z2luTWFuaWZlc3QgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQge1xuICBBcHAsXG4gIE5vdGljZSxcbiAgUGx1Z2luLFxuICBQbHVnaW5TZXR0aW5nVGFiXG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUgeyBNYXliZVByb21pc2UgfSBmcm9tICcuLi8uLi9Bc3luYy50cyc7XG5pbXBvcnQgdHlwZSB7IEVtcHR5U2V0dGluZ3MgfSBmcm9tICcuL0VtcHR5U2V0dGluZ3MudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5TZXR0aW5nc0Jhc2UgfSBmcm9tICcuL1BsdWdpblNldHRpbmdzQmFzZS50cyc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlciB9IGZyb20gJy4uLy4uL0Vycm9yLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9GdW5jdGlvbi50cyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgY3JlYXRpbmcgT2JzaWRpYW4gcGx1Z2lucyB3aXRoIGJ1aWx0LWluIHN1cHBvcnQgZm9yIHNldHRpbmdzIG1hbmFnZW1lbnQsIGVycm9yIGhhbmRsaW5nLCBhbmQgbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblNldHRpbmdzIC0gVGhlIHR5cGUgcmVwcmVzZW50aW5nIHRoZSBwbHVnaW4gc2V0dGluZ3Mgb2JqZWN0LlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luQmFzZTxQbHVnaW5TZXR0aW5ncyBleHRlbmRzIFBsdWdpblNldHRpbmdzQmFzZSA9IEVtcHR5U2V0dGluZ3M+IGV4dGVuZHMgUGx1Z2luIHtcbiAgLyoqXG4gICAqIFVzZSBpbnN0ZWFkIG9mIGBjb25zb2xlLmRlYnVnKClgIHRvIGxvZyBtZXNzYWdlcy5cbiAgICpcbiAgICogVGhvc2UgbWVzc2FnZXMgYXJlIG5vdCBzaG93biBieSBkZWZhdWx0LCBidXQgY2FuIGJlIHNob3duIGJ5IHNldHRpbmcgdGhlIGBERUJVR2AgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gdGhlIHBsdWdpbiBJRC5cbiAgICpcbiAgICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2RlYnVnLWpzL2RlYnVnP3RhYj1yZWFkbWUtb3YtZmlsZSNicm93c2VyLXN1cHBvcnR9XG4gICAqXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIG1lc3NhZ2UgdG8gbG9nLlxuICAgKiBAcGFyYW0gYXJncyAtIFRoZSBhcmd1bWVudHMgdG8gbG9nLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbnNvbGVEZWJ1ZzogKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBYm9ydFNpZ25hbCB1c2VkIGZvciBhYm9ydGluZyBsb25nLXJ1bm5pbmcgb3BlcmF0aW9ucy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGFib3J0IHNpZ25hbC5cbiAgICovXG4gIHB1YmxpYyBnZXQgYWJvcnRTaWduYWwoKTogQWJvcnRTaWduYWwge1xuICAgIHJldHVybiB0aGlzLl9hYm9ydFNpZ25hbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgY29weSBvZiB0aGUgY3VycmVudCBwbHVnaW4gc2V0dGluZ3MuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgY29weSBvZiB0aGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKi9cbiAgcHVibGljIGdldCBzZXR0aW5nc0NvcHkoKTogUGx1Z2luU2V0dGluZ3Mge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZVBsdWdpblNldHRpbmdzKHRoaXMuc2V0dGluZ3MudG9KU09OKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHBsdWdpbiBzZXR0aW5ncy5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgc2V0dGluZ3MoKTogUGx1Z2luU2V0dGluZ3Mge1xuICAgIHJldHVybiB0aGlzLl9zZXR0aW5ncztcbiAgfVxuXG4gIHByaXZhdGUgX2Fib3J0U2lnbmFsITogQWJvcnRTaWduYWw7XG5cbiAgcHJpdmF0ZSBfc2V0dGluZ3MhOiBQbHVnaW5TZXR0aW5ncztcblxuICBwcml2YXRlIG5vdGljZT86IE5vdGljZTtcblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhIG5ldyBQbHVnaW5CYXNlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIG1hbmlmZXN0IC0gVGhlIHBsdWdpbiBtYW5pZmVzdC5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihhcHA6IEFwcCwgbWFuaWZlc3Q6IFBsdWdpbk1hbmlmZXN0KSB7XG4gICAgc3VwZXIoYXBwLCBtYW5pZmVzdCk7XG4gICAgdGhpcy5jb25zb2xlRGVidWcgPSBkZWJ1Zy5kZWZhdWx0KG1hbmlmZXN0LmlkKTtcbiAgICBjb25zb2xlLmRlYnVnKGBEZWJ1ZyBtZXNzYWdlcyBmb3IgcGx1Z2luICcke21hbmlmZXN0Lm5hbWV9JyBhcmUgbm90IHNob3duIGJ5IGRlZmF1bHQuIFNldCBsb2NhbFN0b3JhZ2UuZGVidWc9JyR7bWFuaWZlc3QuaWR9JyB0byBzZWUgdGhlbS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9kZWJ1Zy1qcy9kZWJ1Zz90YWI9cmVhZG1lLW92LWZpbGUjYnJvd3Nlci1zdXBwb3J0IGZvciBtb3JlIGluZm9ybWF0aW9uYCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBpcyBsb2FkZWRcbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbmxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5yZWdpc3RlcihyZWdpc3RlckFzeW5jRXJyb3JFdmVudEhhbmRsZXIoKCkgPT4ge1xuICAgICAgdGhpcy5zaG93Tm90aWNlKCdBbiB1bmhhbmRsZWQgZXJyb3Igb2NjdXJyZWQuIFBsZWFzZSBjaGVjayB0aGUgY29uc29sZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nKTtcbiAgICB9KSk7XG5cbiAgICBhd2FpdCB0aGlzLmxvYWRTZXR0aW5ncygpO1xuICAgIGNvbnN0IHBsdWdpblNldHRpbmdzVGFiID0gdGhpcy5jcmVhdGVQbHVnaW5TZXR0aW5nc1RhYigpO1xuICAgIGlmIChwbHVnaW5TZXR0aW5nc1RhYikge1xuICAgICAgdGhpcy5hZGRTZXR0aW5nVGFiKHBsdWdpblNldHRpbmdzVGFiKTtcbiAgICB9XG5cbiAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fYWJvcnRTaWduYWwgPSBhYm9ydENvbnRyb2xsZXIuc2lnbmFsO1xuICAgIHRoaXMucmVnaXN0ZXIoKCkgPT4ge1xuICAgICAgYWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5vbmxvYWRDb21wbGV0ZSgpO1xuICAgIHRoaXMuYXBwLndvcmtzcGFjZS5vbkxheW91dFJlYWR5KHRoaXMub25MYXlvdXRSZWFkeS5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlcyB0aGUgbmV3IHBsdWdpbiBzZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIG5ld1NldHRpbmdzIC0gVGhlIG5ldyBzZXR0aW5ncyB0byBzYXZlLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzZXR0aW5ncyBhcmUgc2F2ZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2F2ZVNldHRpbmdzKG5ld1NldHRpbmdzOiBQbHVnaW5TZXR0aW5ncyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGpzb24gPSBuZXdTZXR0aW5ncy50b0pTT04oKTtcbiAgICB0aGlzLl9zZXR0aW5ncyA9IHRoaXMuY3JlYXRlUGx1Z2luU2V0dGluZ3MoanNvbik7XG4gICAgYXdhaXQgdGhpcy5zYXZlRGF0YShqc29uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSBwbHVnaW4gc2V0dGluZ3MuIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy5cbiAgICpcbiAgICogQHBhcmFtIGRhdGEgLSBUaGUgZGF0YSB0byBjcmVhdGUgdGhlIHBsdWdpbiBzZXR0aW5ncyBmcm9tLlxuICAgKiBAcmV0dXJucyBUaGUgcGx1Z2luIHNldHRpbmdzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZVBsdWdpblNldHRpbmdzKGRhdGE6IHVua25vd24pOiBQbHVnaW5TZXR0aW5ncztcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHBsdWdpbiBzZXR0aW5ncyB0YWIuIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3Nlcy5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHNldHRpbmdzIHRhYiBvciBudWxsIGlmIG5vdCBhcHBsaWNhYmxlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZVBsdWdpblNldHRpbmdzVGFiKCk6IG51bGwgfCBQbHVnaW5TZXR0aW5nVGFiO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgbGF5b3V0IGlzIHJlYWR5LiBUaGlzIG1ldGhvZCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIHRvIHBlcmZvcm0gYWN0aW9ucyBvbmNlXG4gICAqIHRoZSBsYXlvdXQgaXMgcmVhZHkuXG4gICAqXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSBvciB2b2lkIGluZGljYXRpbmcgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGxheW91dCBzZXR1cC5cbiAgICovXG4gIHByb3RlY3RlZCBvbkxheW91dFJlYWR5KCk6IE1heWJlUHJvbWlzZTx2b2lkPiB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gbG9hZGluZyBpcyBjb21wbGV0ZS4gVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIHRvIHBlcmZvcm1cbiAgICogYW55IGFkZGl0aW9uYWwgc2V0dXAgcmVxdWlyZWQgYWZ0ZXIgbG9hZGluZyBpcyBjb21wbGV0ZS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIG9yIHZvaWQgaW5kaWNhdGluZyB0aGUgY29tcGxldGlvbiBvZiB0aGUgbG9hZCBwcm9jZXNzLlxuICAgKi9cbiAgcHJvdGVjdGVkIG9ubG9hZENvbXBsZXRlKCk6IE1heWJlUHJvbWlzZTx2b2lkPiB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIGEgbm90aWNlIG1lc3NhZ2UgdG8gdGhlIHVzZXIuXG4gICAqXG4gICAqIEBwYXJhbSBtZXNzYWdlIC0gVGhlIG1lc3NhZ2UgdG8gZGlzcGxheS5cbiAgICovXG4gIHByb3RlY3RlZCBzaG93Tm90aWNlKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5vdGljZSkge1xuICAgICAgdGhpcy5ub3RpY2UuaGlkZSgpO1xuICAgIH1cblxuICAgIHRoaXMubm90aWNlID0gbmV3IE5vdGljZShgJHt0aGlzLm1hbmlmZXN0Lm5hbWV9XFxuJHttZXNzYWdlfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBwbHVnaW4gc2V0dGluZ3MgZnJvbSB0aGUgc2F2ZWQgZGF0YS5cbiAgICpcbiAgICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIGxvYWRlZC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgbG9hZFNldHRpbmdzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmxvYWREYXRhKCkgYXMgdW5rbm93bjtcbiAgICB0aGlzLl9zZXR0aW5ncyA9IHRoaXMuY3JlYXRlUGx1Z2luU2V0dGluZ3MoZGF0YSk7XG4gICAgaWYgKHRoaXMuX3NldHRpbmdzLnNob3VsZFNhdmVBZnRlckxvYWQoKSkge1xuICAgICAgYXdhaXQgdGhpcy5zYXZlU2V0dGluZ3ModGhpcy5fc2V0dGluZ3MpO1xuICAgIH1cbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFnQkEsbUJBQWtCO0FBQ2xCLHNCQUtPO0FBTVAsbUJBQStDO0FBQy9DLHNCQUFxQjtBQTdCckIsSUFBSSxZ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
|
@@ -24,9 +24,10 @@ export declare abstract class PluginBase<PluginSettings extends PluginSettingsBa
|
|
24
24
|
*
|
25
25
|
* @see {@link https://github.com/debug-js/debug?tab=readme-ov-file#browser-support}
|
26
26
|
*
|
27
|
+
* @param message - The message to log.
|
27
28
|
* @param args - The arguments to log.
|
28
29
|
*/
|
29
|
-
readonly consoleDebug: (...args: unknown[]) => void;
|
30
|
+
readonly consoleDebug: (message: string, ...args: unknown[]) => void;
|
30
31
|
/**
|
31
32
|
* Gets the AbortSignal used for aborting long-running operations.
|
32
33
|
*
|
@@ -8,11 +8,9 @@ function __extractDefault(module){return module&&module.__esModule&&module.defau
|
|
8
8
|
(function patchRequireEsmDefault(){const __require=require;require=Object.assign(id=>{const module=__require(id)??{};return __extractDefault(module)},__require)})()
|
9
9
|
|
10
10
|
"use strict";
|
11
|
-
var __create = Object.create;
|
12
11
|
var __defProp = Object.defineProperty;
|
13
12
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
14
13
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
15
|
-
var __getProtoOf = Object.getPrototypeOf;
|
16
14
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
17
15
|
var __export = (target, all) => {
|
18
16
|
for (var name in all)
|
@@ -26,23 +24,15 @@ var __copyProps = (to, from, except, desc) => {
|
|
26
24
|
}
|
27
25
|
return to;
|
28
26
|
};
|
29
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
30
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
31
|
-
// file that has been converted to a CommonJS file using a Babel-
|
32
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
33
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
34
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
35
|
-
mod
|
36
|
-
));
|
37
27
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
38
28
|
var RenameDeleteHandler_exports = {};
|
39
29
|
__export(RenameDeleteHandler_exports, {
|
40
30
|
registerRenameDeleteHandlers: () => registerRenameDeleteHandlers
|
41
31
|
});
|
42
32
|
module.exports = __toCommonJS(RenameDeleteHandler_exports);
|
43
|
-
var import_debug = __toESM(__extractDefault(require('debug')), 1);
|
44
33
|
var import_monkey_around = require('monkey-around');
|
45
34
|
var import_obsidian = require('obsidian');
|
35
|
+
var import_Debug = require('../Debug.cjs');
|
46
36
|
var import_Function = require('../Function.cjs');
|
47
37
|
var import_Object = require('../Object.cjs');
|
48
38
|
var import_Path = require('../Path.cjs');
|
@@ -165,7 +155,7 @@ function getSettings(app) {
|
|
165
155
|
return settings;
|
166
156
|
}
|
167
157
|
async function handleDelete(app, path) {
|
168
|
-
|
158
|
+
(0, import_Debug.getDebugger)("obsidian-dev-utils:RenameDeleteHandler:handleDelete")(`Handle Delete ${path}`);
|
169
159
|
if (!(0, import_FileSystem.isNote)(app, path)) {
|
170
160
|
return;
|
171
161
|
}
|
@@ -229,7 +219,7 @@ function handleMetadataDeletedIfEnabled(plugin, file, prevCache) {
|
|
229
219
|
}
|
230
220
|
function handleRename(app, oldPath, newPath) {
|
231
221
|
const key = makeKey(oldPath, newPath);
|
232
|
-
|
222
|
+
(0, import_Debug.getDebugger)("obsidian-dev-utils:RenameDeleteHandler:handleRename")(`Handle Rename ${key}`);
|
233
223
|
if (handledRenames.has(key)) {
|
234
224
|
handledRenames.delete(key);
|
235
225
|
return;
|
@@ -372,7 +362,7 @@ function initBacklinksMap(singleBacklinksMap, renameMap, combinedBacklinksMap, p
|
|
372
362
|
}
|
373
363
|
function logRegisteredHandlers(app) {
|
374
364
|
const renameDeleteHandlersMap = getRenameDeleteHandlersMap(app);
|
375
|
-
|
365
|
+
(0, import_Debug.getDebugger)("obsidian-dev-utils:RenameDeleteHandler:logRegisteredHandlers")(`Plugins with registered rename/delete handlers: ${JSON.stringify(Array.from(renameDeleteHandlersMap.keys()))}`);
|
376
366
|
}
|
377
367
|
function makeKey(oldPath, newPath) {
|
378
368
|
return `${oldPath} -> ${newPath}`;
|
@@ -401,4 +391,4 @@ function shouldInvokeHandler(plugin) {
|
|
401
391
|
0 && (module.exports = {
|
402
392
|
registerRenameDeleteHandlers
|
403
393
|
});
|
404
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL1JlbmFtZURlbGV0ZUhhbmRsZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFJlbmFtZURlbGV0ZUhhbmRsZXJcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBoYW5kbGluZyByZW5hbWUgYW5kIGRlbGV0ZSBldmVudHMgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBDYWNoZWRNZXRhZGF0YSxcbiAgUGx1Z2luLFxuICBSZWZlcmVuY2UsXG4gIFRBYnN0cmFjdEZpbGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHsgYXJvdW5kIH0gZnJvbSAnbW9ua2V5LWFyb3VuZCc7XG5pbXBvcnQge1xuICBBcHAsXG4gIFRGaWxlLFxuICBWYXVsdFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgVXBkYXRlTGlua09wdGlvbnMsXG4gIFVwZGF0ZUxpbmtzSW5GaWxlT3B0aW9uc1xufSBmcm9tICcuL0xpbmsudHMnO1xuXG5pbXBvcnQgeyBub29wQXN5bmMgfSBmcm9tICcuLi9GdW5jdGlvbi50cyc7XG5pbXBvcnQge1xuICBub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXMsXG4gIHRvSnNvblxufSBmcm9tICcuLi9PYmplY3QudHMnO1xuaW1wb3J0IHtcbiAgYmFzZW5hbWUsXG4gIGRpcm5hbWUsXG4gIGV4dG5hbWUsXG4gIGpvaW4sXG4gIG1ha2VGaWxlTmFtZSxcbiAgcmVsYXRpdmVcbn0gZnJvbSAnLi4vUGF0aC50cyc7XG5pbXBvcnQgeyBnZXRPYnNpZGlhbkRldlV0aWxzU3RhdGUgfSBmcm9tICcuL0FwcC50cyc7XG5pbXBvcnQge1xuICBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aCxcbiAgaGFzT3duQXR0YWNobWVudEZvbGRlclxufSBmcm9tICcuL0F0dGFjaG1lbnRQYXRoLnRzJztcbmltcG9ydCB7XG4gIGdldEZpbGUsXG4gIGdldEZpbGVPck51bGwsXG4gIGdldEZvbGRlck9yTnVsbCxcbiAgaXNGaWxlLFxuICBpc01hcmtkb3duRmlsZSxcbiAgaXNOb3RlXG59IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5pbXBvcnQge1xuICBlZGl0TGlua3MsXG4gIGV4dHJhY3RMaW5rRmlsZSxcbiAgdXBkYXRlTGluayxcbiAgdXBkYXRlTGlua3NJbkZpbGVcbn0gZnJvbSAnLi9MaW5rLnRzJztcbmltcG9ydCB7XG4gIGdldEFsbExpbmtzLFxuICBnZXRCYWNrbGlua3NGb3JGaWxlT3JQYXRoLFxuICBnZXRCYWNrbGlua3NGb3JGaWxlU2FmZVxufSBmcm9tICcuL01ldGFkYXRhQ2FjaGUudHMnO1xuaW1wb3J0IHsgYWRkVG9RdWV1ZSB9IGZyb20gJy4vUXVldWUudHMnO1xuaW1wb3J0IHtcbiAgZ2V0U2FmZVJlbmFtZVBhdGgsXG4gIHJlbmFtZVNhZmVcbn0gZnJvbSAnLi9WYXVsdC50cyc7XG5pbXBvcnQge1xuICBkZWxldGVFbXB0eUZvbGRlckhpZXJhcmNoeSxcbiAgZGVsZXRlU2FmZVxufSBmcm9tICcuL1ZhdWx0RXgudHMnO1xuXG5jb25zdCBkZWxldGVkTWV0YWRhdGFDYWNoZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBDYWNoZWRNZXRhZGF0YT4oKTtcbmNvbnN0IGhhbmRsZWRSZW5hbWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5jb25zdCBpbnRlcnJ1cHRlZFJlbmFtZXNNYXAgPSBuZXcgTWFwPHN0cmluZywgSW50ZXJydXB0ZWRSZW5hbWVbXT4oKTtcblxuLyoqXG4gKiBTZXR0aW5ncyBmb3IgdGhlIHJlbmFtZS9kZWxldGUgaGFuZGxlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5hbWVEZWxldGVIYW5kbGVyU2V0dGluZ3Mge1xuICAvKipcbiAgICogV2hldGhlciB0byBpZ25vcmUgdGhlIHBhdGguXG4gICAqL1xuICBpc1BhdGhJZ25vcmVkKHBhdGg6IHN0cmluZyk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGVsZXRlIGNvbmZsaWN0aW5nIGF0dGFjaG1lbnRzLlxuICAgKi9cbiAgc2hvdWxkRGVsZXRlQ29uZmxpY3RpbmdBdHRhY2htZW50czogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkZWxldGUgZW1wdHkgZm9sZGVycy5cbiAgICovXG4gIHNob3VsZERlbGV0ZUVtcHR5Rm9sZGVyczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBoYW5kbGUgZGVsZXRpb25zLlxuICAgKi9cbiAgc2hvdWxkSGFuZGxlRGVsZXRpb25zOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGhhbmRsZSByZW5hbWVzLlxuICAgKi9cbiAgc2hvdWxkSGFuZGxlUmVuYW1lczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byByZW5hbWUgYXR0YWNobWVudCBmaWxlcyB3aGVuIGEgbm90ZSBpcyByZW5hbWVkLlxuICAgKi9cbiAgc2hvdWxkUmVuYW1lQXR0YWNobWVudEZpbGVzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgICogV2hldGhlciB0byByZW5hbWUgYXR0YWNobWVudCBmb2xkZXIgd2hlbiBhIG5vdGUgaXMgcmVuYW1lZC5cbiAgICAqL1xuICBzaG91bGRSZW5hbWVBdHRhY2htZW50Rm9sZGVyOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVwZGF0ZSBmaWxlbmFtZSBhbGlhc2VzIHdoZW4gYSBub3RlIGlzIHJlbmFtZWQuXG4gICAqL1xuICBzaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzZXM6IGJvb2xlYW47XG59XG5cbmludGVyZmFjZSBJbnRlcnJ1cHRlZFJlbmFtZSB7XG4gIGNvbWJpbmVkQmFja2xpbmtzTWFwOiBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBzdHJpbmc+PjtcbiAgb2xkUGF0aDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyB0aGUgcmVuYW1lL2RlbGV0ZSBoYW5kbGVycy5cbiAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIGluc3RhbmNlLlxuICogQHBhcmFtIHNldHRpbmdzQnVpbGRlciAtIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBzZXR0aW5ncyBmb3IgdGhlIHJlbmFtZSBkZWxldGUgaGFuZGxlci5cbiAqIEByZXR1cm5zIHZvaWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyUmVuYW1lRGVsZXRlSGFuZGxlcnMocGx1Z2luOiBQbHVnaW4sIHNldHRpbmdzQnVpbGRlcjogKCkgPT4gUGFydGlhbDxSZW5hbWVEZWxldGVIYW5kbGVyU2V0dGluZ3M+KTogdm9pZCB7XG4gIGNvbnN0IHJlbmFtZURlbGV0ZUhhbmRsZXJzTWFwID0gZ2V0UmVuYW1lRGVsZXRlSGFuZGxlcnNNYXAocGx1Z2luLmFwcCk7XG4gIGNvbnN0IHBsdWdpbklkID0gcGx1Z2luLm1hbmlmZXN0LmlkO1xuXG4gIHJlbmFtZURlbGV0ZUhhbmRsZXJzTWFwLnNldChwbHVnaW5JZCwgc2V0dGluZ3NCdWlsZGVyKTtcbiAgbG9nUmVnaXN0ZXJlZEhhbmRsZXJzKHBsdWdpbi5hcHApO1xuXG4gIHBsdWdpbi5yZWdpc3RlcigoKSA9PiB7XG4gICAgcmVuYW1lRGVsZXRlSGFuZGxlcnNNYXAuZGVsZXRlKHBsdWdpbklkKTtcbiAgICBsb2dSZWdpc3RlcmVkSGFuZGxlcnMocGx1Z2luLmFwcCk7XG4gIH0pO1xuXG4gIGNvbnN0IGFwcCA9IHBsdWdpbi5hcHA7XG4gIHBsdWdpbi5yZWdpc3RlckV2ZW50KFxuICAgIGFwcC52YXVsdC5vbignZGVsZXRlJywgKGZpbGUpID0+IHtcbiAgICAgIGhhbmRsZURlbGV0ZUlmRW5hYmxlZChwbHVnaW4sIGZpbGUpO1xuICAgIH0pXG4gICk7XG5cbiAgcGx1Z2luLnJlZ2lzdGVyRXZlbnQoXG4gICAgYXBwLnZhdWx0Lm9uKCdyZW5hbWUnLCAoZmlsZSwgb2xkUGF0aCkgPT4ge1xuICAgICAgaGFuZGxlUmVuYW1lSWZFbmFibGVkKHBsdWdpbiwgZmlsZSwgb2xkUGF0aCk7XG4gICAgfSlcbiAgKTtcblxuICBwbHVnaW4ucmVnaXN0ZXJFdmVudChcbiAgICBhcHAubWV0YWRhdGFDYWNoZS5vbignZGVsZXRlZCcsIChmaWxlLCBwcmV2Q2FjaGUpID0+IHtcbiAgICAgIGhhbmRsZU1ldGFkYXRhRGVsZXRlZElmRW5hYmxlZChwbHVnaW4sIGZpbGUsIHByZXZDYWNoZSk7XG4gICAgfSlcbiAgKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmlsbFJlbmFtZU1hcChhcHA6IEFwcCwgb2xkUGF0aDogc3RyaW5nLCBuZXdQYXRoOiBzdHJpbmcsIHJlbmFtZU1hcDogTWFwPHN0cmluZywgc3RyaW5nPiwgb2xkUGF0aExpbmtzOiBSZWZlcmVuY2VbXSk6IFByb21pc2U8dm9pZD4ge1xuICByZW5hbWVNYXAuc2V0KG9sZFBhdGgsIG5ld1BhdGgpO1xuXG4gIGlmICghaXNOb3RlKGFwcCwgb2xkUGF0aCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBzZXR0aW5ncyA9IGdldFNldHRpbmdzKGFwcCk7XG5cbiAgY29uc3Qgb2xkQXR0YWNobWVudEZvbGRlclBhdGggPSBhd2FpdCBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aChhcHAsIG9sZFBhdGgpO1xuICBjb25zdCBuZXdBdHRhY2htZW50Rm9sZGVyUGF0aCA9IHNldHRpbmdzLnNob3VsZFJlbmFtZUF0dGFjaG1lbnRGb2xkZXJcbiAgICA/IGF3YWl0IGdldEF0dGFjaG1lbnRGb2xkZXJQYXRoKGFwcCwgbmV3UGF0aClcbiAgICA6IG9sZEF0dGFjaG1lbnRGb2xkZXJQYXRoO1xuXG4gIGNvbnN0IG9sZEF0dGFjaG1lbnRGb2xkZXIgPSBnZXRGb2xkZXJPck51bGwoYXBwLCBvbGRBdHRhY2htZW50Rm9sZGVyUGF0aCk7XG5cbiAgaWYgKCFvbGRBdHRhY2htZW50Rm9sZGVyKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKG9sZEF0dGFjaG1lbnRGb2xkZXJQYXRoID09PSBuZXdBdHRhY2htZW50Rm9sZGVyUGF0aCAmJiAhc2V0dGluZ3Muc2hvdWxkUmVuYW1lQXR0YWNobWVudEZpbGVzKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qgb2xkQXR0YWNobWVudEZpbGVzOiBURmlsZVtdID0gW107XG5cbiAgaWYgKCEoYXdhaXQgaGFzT3duQXR0YWNobWVudEZvbGRlcihhcHAsIG9sZFBhdGgpKSkge1xuICAgIGZvciAoY29uc3Qgb2xkUGF0aExpbmsgb2Ygb2xkUGF0aExpbmtzKSB7XG4gICAgICBjb25zdCBvbGRBdHRhY2htZW50RmlsZSA9IGV4dHJhY3RMaW5rRmlsZShhcHAsIG9sZFBhdGhMaW5rLCBvbGRQYXRoKTtcbiAgICAgIGlmICghb2xkQXR0YWNobWVudEZpbGUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChvbGRBdHRhY2htZW50RmlsZS5wYXRoLnN0YXJ0c1dpdGgob2xkQXR0YWNobWVudEZvbGRlclBhdGgpKSB7XG4gICAgICAgIGNvbnN0IG9sZEF0dGFjaG1lbnRCYWNrbGlua3MgPSBhd2FpdCBnZXRCYWNrbGlua3NGb3JGaWxlU2FmZShhcHAsIG9sZEF0dGFjaG1lbnRGaWxlKTtcbiAgICAgICAgaWYgKG9sZEF0dGFjaG1lbnRCYWNrbGlua3Mua2V5cygpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIG9sZEF0dGFjaG1lbnRGaWxlcy5wdXNoKG9sZEF0dGFjaG1lbnRGaWxlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBWYXVsdC5yZWN1cnNlQ2hpbGRyZW4ob2xkQXR0YWNobWVudEZvbGRlciwgKG9sZEF0dGFjaG1lbnRGaWxlKSA9PiB7XG4gICAgICBpZiAoaXNGaWxlKG9sZEF0dGFjaG1lbnRGaWxlKSkge1xuICAgICAgICBvbGRBdHRhY2htZW50RmlsZXMucHVzaChvbGRBdHRhY2htZW50RmlsZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBvbGRCYXNlbmFtZSA9IGJhc2VuYW1lKG9sZFBhdGgsIGV4dG5hbWUob2xkUGF0aCkpO1xuICBjb25zdCBuZXdCYXNlbmFtZSA9IGJhc2VuYW1lKG5ld1BhdGgsIGV4dG5hbWUobmV3UGF0aCkpO1xuXG4gIGZvciAoY29uc3Qgb2xkQXR0YWNobWVudEZpbGUgb2Ygb2xkQXR0YWNobWVudEZpbGVzKSB7XG4gICAgaWYgKGlzTm90ZShhcHAsIG9sZEF0dGFjaG1lbnRGaWxlKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHJlbGF0aXZlKG9sZEF0dGFjaG1lbnRGb2xkZXJQYXRoLCBvbGRBdHRhY2htZW50RmlsZS5wYXRoKTtcbiAgICBjb25zdCBuZXdEaXIgPSBqb2luKG5ld0F0dGFjaG1lbnRGb2xkZXJQYXRoLCBkaXJuYW1lKHJlbGF0aXZlUGF0aCkpO1xuICAgIGNvbnN0IG5ld0NoaWxkQmFzZW5hbWUgPSBzZXR0aW5ncy5zaG91bGRSZW5hbWVBdHRhY2htZW50RmlsZXNcbiAgICAgID8gb2xkQXR0YWNobWVudEZpbGUuYmFzZW5hbWUucmVwbGFjZUFsbChvbGRCYXNlbmFtZSwgbmV3QmFzZW5hbWUpXG4gICAgICA6IG9sZEF0dGFjaG1lbnRGaWxlLmJhc2VuYW1lO1xuICAgIGxldCBuZXdDaGlsZFBhdGggPSBqb2luKG5ld0RpciwgbWFrZUZpbGVOYW1lKG5ld0NoaWxkQmFzZW5hbWUsIG9sZEF0dGFjaG1lbnRGaWxlLmV4dGVuc2lvbikpO1xuXG4gICAgaWYgKG9sZEF0dGFjaG1lbnRGaWxlLnBhdGggPT09IG5ld0NoaWxkUGF0aCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHNldHRpbmdzLnNob3VsZERlbGV0ZUNvbmZsaWN0aW5nQXR0YWNobWVudHMpIHtcbiAgICAgIGNvbnN0IG5ld0NoaWxkRmlsZSA9IGdldEZpbGVPck51bGwoYXBwLCBuZXdDaGlsZFBhdGgpO1xuICAgICAgaWYgKG5ld0NoaWxkRmlsZSkge1xuICAgICAgICBhd2FpdCBhcHAuZmlsZU1hbmFnZXIudHJhc2hGaWxlKG5ld0NoaWxkRmlsZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0NoaWxkUGF0aCA9IGFwcC52YXVsdC5nZXRBdmFpbGFibGVQYXRoKGpvaW4obmV3RGlyLCBuZXdDaGlsZEJhc2VuYW1lKSwgb2xkQXR0YWNobWVudEZpbGUuZXh0ZW5zaW9uKTtcbiAgICB9XG4gICAgcmVuYW1lTWFwLnNldChvbGRBdHRhY2htZW50RmlsZS5wYXRoLCBuZXdDaGlsZFBhdGgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFJlbmFtZURlbGV0ZUhhbmRsZXJzTWFwKGFwcDogQXBwKTogTWFwPHN0cmluZywgKCkgPT4gUGFydGlhbDxSZW5hbWVEZWxldGVIYW5kbGVyU2V0dGluZ3M+PiB7XG4gIHJldHVybiBnZXRPYnNpZGlhbkRldlV0aWxzU3RhdGUoYXBwLCAncmVuYW1lRGVsZXRlSGFuZGxlcnNNYXAnLCBuZXcgTWFwPHN0cmluZywgKCkgPT4gUGFydGlhbDxSZW5hbWVEZWxldGVIYW5kbGVyU2V0dGluZ3M+PigpKS52YWx1ZTtcbn1cblxuZnVuY3Rpb24gZ2V0U2V0dGluZ3MoYXBwOiBBcHApOiBQYXJ0aWFsPFJlbmFtZURlbGV0ZUhhbmRsZXJTZXR0aW5ncz4ge1xuICBjb25zdCByZW5hbWVEZWxldGVIYW5kbGVyc01hcCA9IGdldFJlbmFtZURlbGV0ZUhhbmRsZXJzTWFwKGFwcCk7XG4gIGNvbnN0IHNldHRpbmdzQnVpbGRlcnMgPSBBcnJheS5mcm9tKHJlbmFtZURlbGV0ZUhhbmRsZXJzTWFwLnZhbHVlcygpKS5yZXZlcnNlKCk7XG5cbiAgY29uc3Qgc2V0dGluZ3M6IFBhcnRpYWw8UmVuYW1lRGVsZXRlSGFuZGxlclNldHRpbmdzPiA9IHt9O1xuICBmb3IgKGNvbnN0IHNldHRpbmdzQnVpbGRlciBvZiBzZXR0aW5nc0J1aWxkZXJzKSB7XG4gICAgY29uc3QgbmV3U2V0dGluZ3MgPSBzZXR0aW5nc0J1aWxkZXIoKTtcbiAgICBzZXR0aW5ncy5zaG91bGREZWxldGVDb25mbGljdGluZ0F0dGFjaG1lbnRzIHx8PSBuZXdTZXR0aW5ncy5zaG91bGREZWxldGVDb25mbGljdGluZ0F0dGFjaG1lbnRzID8/IGZhbHNlO1xuICAgIHNldHRpbmdzLnNob3VsZERlbGV0ZUVtcHR5Rm9sZGVycyB8fD0gbmV3U2V0dGluZ3Muc2hvdWxkRGVsZXRlRW1wdHlGb2xkZXJzID8/IGZhbHNlO1xuICAgIHNldHRpbmdzLnNob3VsZEhhbmRsZURlbGV0aW9ucyB8fD0gbmV3U2V0dGluZ3Muc2hvdWxkSGFuZGxlRGVsZXRpb25zID8/IGZhbHNlO1xuICAgIHNldHRpbmdzLnNob3VsZEhhbmRsZVJlbmFtZXMgfHw9IG5ld1NldHRpbmdzLnNob3VsZEhhbmRsZVJlbmFtZXMgPz8gZmFsc2U7XG4gICAgc2V0dGluZ3Muc2hvdWxkUmVuYW1lQXR0YWNobWVudEZpbGVzIHx8PSBuZXdTZXR0aW5ncy5zaG91bGRSZW5hbWVBdHRhY2htZW50RmlsZXMgPz8gZmFsc2U7XG4gICAgc2V0dGluZ3Muc2hvdWxkUmVuYW1lQXR0YWNobWVudEZvbGRlciB8fD0gbmV3U2V0dGluZ3Muc2hvdWxkUmVuYW1lQXR0YWNobWVudEZvbGRlciA/PyBmYWxzZTtcbiAgICBzZXR0aW5ncy5zaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzZXMgfHw9IG5ld1NldHRpbmdzLnNob3VsZFVwZGF0ZUZpbGVuYW1lQWxpYXNlcyA/PyBmYWxzZTtcbiAgICBjb25zdCBpc1BhdGhJZ25vcmVkID0gc2V0dGluZ3MuaXNQYXRoSWdub3JlZDtcbiAgICBzZXR0aW5ncy5pc1BhdGhJZ25vcmVkID0gKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4gPT4gaXNQYXRoSWdub3JlZD8uKHBhdGgpID8/IG5ld1NldHRpbmdzLmlzUGF0aElnbm9yZWQ/LihwYXRoKSA/PyBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBzZXR0aW5ncztcbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFuZGxlRGVsZXRlKGFwcDogQXBwLCBwYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgZGVidWcuZGVmYXVsdCgnb2JzaWRpYW4tZGV2LXV0aWxzOlJlbmFtZURlbGV0ZUhhbmRsZXI6aGFuZGxlRGVsZXRlJykubG9nKGBIYW5kbGUgRGVsZXRlICR7cGF0aH1gKTtcbiAgaWYgKCFpc05vdGUoYXBwLCBwYXRoKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHNldHRpbmdzID0gZ2V0U2V0dGluZ3MoYXBwKTtcbiAgaWYgKCFzZXR0aW5ncy5zaG91bGRIYW5kbGVEZWxldGlvbnMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoc2V0dGluZ3MuaXNQYXRoSWdub3JlZD8uKHBhdGgpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY2FjaGUgPSBkZWxldGVkTWV0YWRhdGFDYWNoZU1hcC5nZXQocGF0aCk7XG4gIGRlbGV0ZWRNZXRhZGF0YUNhY2hlTWFwLmRlbGV0ZShwYXRoKTtcbiAgaWYgKGNhY2hlKSB7XG4gICAgY29uc3QgbGlua3MgPSBnZXRBbGxMaW5rcyhjYWNoZSk7XG5cbiAgICBmb3IgKGNvbnN0IGxpbmsgb2YgbGlua3MpIHtcbiAgICAgIGNvbnN0IGF0dGFjaG1lbnRGaWxlID0gZXh0cmFjdExpbmtGaWxlKGFwcCwgbGluaywgcGF0aCk7XG4gICAgICBpZiAoIWF0dGFjaG1lbnRGaWxlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXNOb3RlKGFwcCwgYXR0YWNobWVudEZpbGUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBkZWxldGVTYWZlKGFwcCwgYXR0YWNobWVudEZpbGUsIHBhdGgsIHNldHRpbmdzLnNob3VsZERlbGV0ZUVtcHR5Rm9sZGVycyk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgYXR0YWNobWVudEZvbGRlclBhdGggPSBhd2FpdCBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aChhcHAsIHBhdGgpO1xuICBjb25zdCBhdHRhY2htZW50Rm9sZGVyID0gZ2V0Rm9sZGVyT3JOdWxsKGFwcCwgYXR0YWNobWVudEZvbGRlclBhdGgpO1xuXG4gIGlmICghYXR0YWNobWVudEZvbGRlcikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICghKGF3YWl0IGhhc093bkF0dGFjaG1lbnRGb2xkZXIoYXBwLCBwYXRoKSkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBhd2FpdCBkZWxldGVTYWZlKGFwcCwgYXR0YWNobWVudEZvbGRlciwgcGF0aCwgZmFsc2UsIHNldHRpbmdzLnNob3VsZERlbGV0ZUVtcHR5Rm9sZGVycyk7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZURlbGV0ZUlmRW5hYmxlZChwbHVnaW46IFBsdWdpbiwgZmlsZTogVEFic3RyYWN0RmlsZSk6IHZvaWQge1xuICBjb25zdCBhcHAgPSBwbHVnaW4uYXBwO1xuICBpZiAoIXNob3VsZEludm9rZUhhbmRsZXIocGx1Z2luKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBwYXRoID0gZmlsZS5wYXRoO1xuICBhZGRUb1F1ZXVlKGFwcCwgKCkgPT4gaGFuZGxlRGVsZXRlKGFwcCwgcGF0aCkpO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVNZXRhZGF0YURlbGV0ZWQoYXBwOiBBcHAsIGZpbGU6IFRBYnN0cmFjdEZpbGUsIHByZXZDYWNoZTogQ2FjaGVkTWV0YWRhdGEgfCBudWxsKTogdm9pZCB7XG4gIGNvbnN0IHNldHRpbmdzID0gZ2V0U2V0dGluZ3MoYXBwKTtcbiAgaWYgKHNldHRpbmdzLmlzUGF0aElnbm9yZWQ/LihmaWxlLnBhdGgpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKCFzZXR0aW5ncy5zaG91bGRIYW5kbGVEZWxldGlvbnMpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKGlzTWFya2Rvd25GaWxlKGFwcCwgZmlsZSkgJiYgcHJldkNhY2hlKSB7XG4gICAgZGVsZXRlZE1ldGFkYXRhQ2FjaGVNYXAuc2V0KGZpbGUucGF0aCwgcHJldkNhY2hlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBoYW5kbGVNZXRhZGF0YURlbGV0ZWRJZkVuYWJsZWQocGx1Z2luOiBQbHVnaW4sIGZpbGU6IFRBYnN0cmFjdEZpbGUsIHByZXZDYWNoZTogQ2FjaGVkTWV0YWRhdGEgfCBudWxsKTogdm9pZCB7XG4gIGlmICghc2hvdWxkSW52b2tlSGFuZGxlcihwbHVnaW4pKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGhhbmRsZU1ldGFkYXRhRGVsZXRlZChwbHVnaW4uYXBwLCBmaWxlLCBwcmV2Q2FjaGUpO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVSZW5hbWUoYXBwOiBBcHAsIG9sZFBhdGg6IHN0cmluZywgbmV3UGF0aDogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IGtleSA9IG1ha2VLZXkob2xkUGF0aCwgbmV3UGF0aCk7XG4gIGRlYnVnLmRlZmF1bHQoJ29ic2lkaWFuLWRldi11dGlsczpSZW5hbWVEZWxldGVIYW5kbGVyOmhhbmRsZVJlbmFtZScpLmxvZyhgSGFuZGxlIFJlbmFtZSAke2tleX1gKTtcbiAgaWYgKGhhbmRsZWRSZW5hbWVzLmhhcyhrZXkpKSB7XG4gICAgaGFuZGxlZFJlbmFtZXMuZGVsZXRlKGtleSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qgc2V0dGluZ3MgPSBnZXRTZXR0aW5ncyhhcHApO1xuICBpZiAoIXNldHRpbmdzLnNob3VsZEhhbmRsZVJlbmFtZXMgfHwgc2V0dGluZ3MuaXNQYXRoSWdub3JlZD8uKG9sZFBhdGgpIHx8IHNldHRpbmdzLmlzUGF0aElnbm9yZWQ/LihuZXdQYXRoKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGNhY2hlID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Q2FjaGUob2xkUGF0aCkgPz8gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Q2FjaGUobmV3UGF0aCk7XG4gIGNvbnN0IG9sZFBhdGhMaW5rcyA9IGNhY2hlID8gZ2V0QWxsTGlua3MoY2FjaGUpIDogW107XG4gIGNvbnN0IG9sZFBhdGhCYWNrbGlua3NNYXAgPSBnZXRCYWNrbGlua3NGb3JGaWxlT3JQYXRoKGFwcCwgb2xkUGF0aCkuZGF0YTtcbiAgYWRkVG9RdWV1ZShhcHAsICgpID0+IGhhbmRsZVJlbmFtZUFzeW5jKGFwcCwgb2xkUGF0aCwgbmV3UGF0aCwgb2xkUGF0aEJhY2tsaW5rc01hcCwgb2xkUGF0aExpbmtzKSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZVJlbmFtZUFzeW5jKGFwcDogQXBwLCBvbGRQYXRoOiBzdHJpbmcsIG5ld1BhdGg6IHN0cmluZywgb2xkUGF0aEJhY2tsaW5rc01hcDogTWFwPHN0cmluZywgUmVmZXJlbmNlW10+LCBvbGRQYXRoTGlua3M6IFJlZmVyZW5jZVtdLCBpbnRlcnJ1cHRlZENvbWJpbmVkQmFja2xpbmtzTWFwPzogTWFwPHN0cmluZywgTWFwPHN0cmluZywgc3RyaW5nPj4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgaW50ZXJydXB0ZWRSZW5hbWVzID0gaW50ZXJydXB0ZWRSZW5hbWVzTWFwLmdldChvbGRQYXRoKTtcbiAgaWYgKGludGVycnVwdGVkUmVuYW1lcykge1xuICAgIGludGVycnVwdGVkUmVuYW1lc01hcC5kZWxldGUob2xkUGF0aCk7XG4gICAgZm9yIChjb25zdCBpbnRlcnJ1cHRlZFJlbmFtZSBvZiBpbnRlcnJ1cHRlZFJlbmFtZXMpIHtcbiAgICAgIGF3YWl0IGhhbmRsZVJlbmFtZUFzeW5jKGFwcCwgaW50ZXJydXB0ZWRSZW5hbWUub2xkUGF0aCwgbmV3UGF0aCwgb2xkUGF0aEJhY2tsaW5rc01hcCwgb2xkUGF0aExpbmtzLCBpbnRlcnJ1cHRlZFJlbmFtZS5jb21iaW5lZEJhY2tsaW5rc01hcCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY2FjaGUgPSBhcHAubWV0YWRhdGFDYWNoZS5nZXRDYWNoZShvbGRQYXRoKSA/PyBhcHAubWV0YWRhdGFDYWNoZS5nZXRDYWNoZShuZXdQYXRoKTtcbiAgY29uc3Qgb2xkUGF0aExpbmtzMiA9IGNhY2hlID8gZ2V0QWxsTGlua3MoY2FjaGUpIDogW107XG4gIGNvbnN0IG9sZFBhdGhCYWNrbGlua3NNYXAyID0gZ2V0QmFja2xpbmtzRm9yRmlsZU9yUGF0aChhcHAsIG9sZFBhdGgpLmRhdGE7XG5cbiAgZm9yIChjb25zdCBsaW5rIG9mIG9sZFBhdGhMaW5rczIpIHtcbiAgICBpZiAob2xkUGF0aExpbmtzLmluY2x1ZGVzKGxpbmspKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgb2xkUGF0aExpbmtzLnB1c2gobGluayk7XG4gIH1cblxuICBpZiAoYXBwLnZhdWx0LmFkYXB0ZXIuaW5zZW5zaXRpdmUgJiYgb2xkUGF0aC50b0xvd2VyQ2FzZSgpID09PSBuZXdQYXRoLnRvTG93ZXJDYXNlKCkpIHtcbiAgICBjb25zdCB0ZW1wUGF0aCA9IGpvaW4oZGlybmFtZShuZXdQYXRoKSwgJ19fdGVtcF9fJyArIGJhc2VuYW1lKG5ld1BhdGgpKTtcbiAgICBhd2FpdCByZW5hbWVIYW5kbGVkKGFwcCwgbmV3UGF0aCwgdGVtcFBhdGgpO1xuICAgIGF3YWl0IGhhbmRsZVJlbmFtZUFzeW5jKGFwcCwgb2xkUGF0aCwgdGVtcFBhdGgsIG9sZFBhdGhCYWNrbGlua3NNYXAsIG9sZFBhdGhMaW5rcyk7XG4gICAgYXdhaXQgYXBwLnZhdWx0LnJlbmFtZShnZXRGaWxlKGFwcCwgdGVtcFBhdGgpLCBuZXdQYXRoKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCByZXN0b3JlVXBkYXRlQWxsTGlua3MgPSBhcm91bmQoYXBwLmZpbGVNYW5hZ2VyLCB7XG4gICAgdXBkYXRlQWxsTGlua3M6ICgpID0+IG5vb3BBc3luY1xuICB9KTtcbiAgdHJ5IHtcbiAgICBjb25zdCByZW5hbWVNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgIGF3YWl0IGZpbGxSZW5hbWVNYXAoYXBwLCBvbGRQYXRoLCBuZXdQYXRoLCByZW5hbWVNYXAsIG9sZFBhdGhMaW5rcyk7XG5cbiAgICBjb25zdCBjb21iaW5lZEJhY2tsaW5rc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBzdHJpbmc+PigpO1xuICAgIGluaXRCYWNrbGlua3NNYXAob2xkUGF0aEJhY2tsaW5rc01hcCwgcmVuYW1lTWFwLCBjb21iaW5lZEJhY2tsaW5rc01hcCwgb2xkUGF0aCk7XG4gICAgaW5pdEJhY2tsaW5rc01hcChvbGRQYXRoQmFja2xpbmtzTWFwMiwgcmVuYW1lTWFwLCBjb21iaW5lZEJhY2tsaW5rc01hcCwgb2xkUGF0aCk7XG5cbiAgICBmb3IgKGNvbnN0IGF0dGFjaG1lbnRPbGRQYXRoIG9mIHJlbmFtZU1hcC5rZXlzKCkpIHtcbiAgICAgIGlmIChhdHRhY2htZW50T2xkUGF0aCA9PT0gb2xkUGF0aCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGF0dGFjaG1lbnRPbGRQYXRoQmFja2xpbmtzTWFwID0gKGF3YWl0IGdldEJhY2tsaW5rc0ZvckZpbGVTYWZlKGFwcCwgYXR0YWNobWVudE9sZFBhdGgpKS5kYXRhO1xuICAgICAgaW5pdEJhY2tsaW5rc01hcChhdHRhY2htZW50T2xkUGF0aEJhY2tsaW5rc01hcCwgcmVuYW1lTWFwLCBjb21iaW5lZEJhY2tsaW5rc01hcCwgYXR0YWNobWVudE9sZFBhdGgpO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmVudEZvbGRlcnMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgIGZvciAoY29uc3QgW29sZEF0dGFjaG1lbnRQYXRoLCBuZXdBdHRhY2htZW50UGF0aF0gb2YgcmVuYW1lTWFwLmVudHJpZXMoKSkge1xuICAgICAgaWYgKG9sZEF0dGFjaG1lbnRQYXRoID09PSBvbGRQYXRoKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgZml4ZWROZXdBdHRhY2htZW50UGF0aCA9IGF3YWl0IHJlbmFtZUhhbmRsZWQoYXBwLCBvbGRBdHRhY2htZW50UGF0aCwgbmV3QXR0YWNobWVudFBhdGgpO1xuICAgICAgcmVuYW1lTWFwLnNldChvbGRBdHRhY2htZW50UGF0aCwgZml4ZWROZXdBdHRhY2htZW50UGF0aCk7XG4gICAgICBwYXJlbnRGb2xkZXJzLmFkZChkaXJuYW1lKG9sZEF0dGFjaG1lbnRQYXRoKSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2V0dGluZ3MgPSBnZXRTZXR0aW5ncyhhcHApO1xuICAgIGlmIChzZXR0aW5ncy5zaG91bGREZWxldGVFbXB0eUZvbGRlcnMpIHtcbiAgICAgIGZvciAoY29uc3QgcGFyZW50Rm9sZGVyIG9mIHBhcmVudEZvbGRlcnMpIHtcbiAgICAgICAgYXdhaXQgZGVsZXRlRW1wdHlGb2xkZXJIaWVyYXJjaHkoYXBwLCBwYXJlbnRGb2xkZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgW25ld0JhY2tsaW5rUGF0aCwgbGlua0pzb25Ub1BhdGhNYXBdIG9mIEFycmF5LmZyb20oY29tYmluZWRCYWNrbGlua3NNYXAuZW50cmllcygpKS5jb25jYXQoQXJyYXkuZnJvbShpbnRlcnJ1cHRlZENvbWJpbmVkQmFja2xpbmtzTWFwPy5lbnRyaWVzKCkgPz8gW10pKSkge1xuICAgICAgYXdhaXQgZWRpdExpbmtzKGFwcCwgbmV3QmFja2xpbmtQYXRoLCAobGluaykgPT4ge1xuICAgICAgICBjb25zdCBvbGRBdHRhY2htZW50UGF0aCA9IGxpbmtKc29uVG9QYXRoTWFwLmdldCh0b0pzb24obGluaykpO1xuICAgICAgICBpZiAoIW9sZEF0dGFjaG1lbnRQYXRoKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmV3QXR0YWNobWVudFBhdGggPSByZW5hbWVNYXAuZ2V0KG9sZEF0dGFjaG1lbnRQYXRoKTtcbiAgICAgICAgaWYgKCFuZXdBdHRhY2htZW50UGF0aCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cGRhdGVMaW5rKG5vcm1hbGl6ZU9wdGlvbmFsUHJvcGVydGllczxVcGRhdGVMaW5rT3B0aW9ucz4oe1xuICAgICAgICAgIGFwcDogYXBwLFxuICAgICAgICAgIGxpbmssXG4gICAgICAgICAgbmV3U291cmNlUGF0aE9yRmlsZTogbmV3QmFja2xpbmtQYXRoLFxuICAgICAgICAgIG5ld1RhcmdldFBhdGhPckZpbGU6IG5ld0F0dGFjaG1lbnRQYXRoLFxuICAgICAgICAgIG9sZFRhcmdldFBhdGhPckZpbGU6IG9sZEF0dGFjaG1lbnRQYXRoLFxuICAgICAgICAgIHNob3VsZFVwZGF0ZUZpbGVuYW1lQWxpYXM6IHNldHRpbmdzLnNob3VsZFVwZGF0ZUZpbGVuYW1lQWxpYXNlc1xuICAgICAgICB9KSk7XG4gICAgICB9LCB7XG4gICAgICAgIHNob3VsZEZhaWxPbk1pc3NpbmdGaWxlOiBmYWxzZVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGlzTm90ZShhcHAsIG5ld1BhdGgpKSB7XG4gICAgICBhd2FpdCB1cGRhdGVMaW5rc0luRmlsZShub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8VXBkYXRlTGlua3NJbkZpbGVPcHRpb25zPih7XG4gICAgICAgIGFwcCxcbiAgICAgICAgbmV3U291cmNlUGF0aE9yRmlsZTogbmV3UGF0aCxcbiAgICAgICAgb2xkU291cmNlUGF0aE9yRmlsZTogb2xkUGF0aCxcbiAgICAgICAgc2hvdWxkRmFpbE9uTWlzc2luZ0ZpbGU6IGZhbHNlLFxuICAgICAgICBzaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzOiBzZXR0aW5ncy5zaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzZXNcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBpZiAoIWdldEZpbGVPck51bGwoYXBwLCBuZXdQYXRoKSkge1xuICAgICAgbGV0IGludGVycnVwdGVkUmVuYW1lcyA9IGludGVycnVwdGVkUmVuYW1lc01hcC5nZXQobmV3UGF0aCk7XG4gICAgICBpZiAoIWludGVycnVwdGVkUmVuYW1lcykge1xuICAgICAgICBpbnRlcnJ1cHRlZFJlbmFtZXMgPSBbXTtcbiAgICAgICAgaW50ZXJydXB0ZWRSZW5hbWVzTWFwLnNldChuZXdQYXRoLCBpbnRlcnJ1cHRlZFJlbmFtZXMpO1xuICAgICAgfVxuICAgICAgaW50ZXJydXB0ZWRSZW5hbWVzLnB1c2goe1xuICAgICAgICBjb21iaW5lZEJhY2tsaW5rc01hcCxcbiAgICAgICAgb2xkUGF0aFxuICAgICAgfSk7XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIHJlc3RvcmVVcGRhdGVBbGxMaW5rcygpO1xuICAgIGNvbnN0IG9ycGhhbktleXMgPSBBcnJheS5mcm9tKGhhbmRsZWRSZW5hbWVzKTtcbiAgICBhZGRUb1F1ZXVlKGFwcCwgKCkgPT4ge1xuICAgICAgZm9yIChjb25zdCBrZXkgb2Ygb3JwaGFuS2V5cykge1xuICAgICAgICBoYW5kbGVkUmVuYW1lcy5kZWxldGUoa2V5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBoYW5kbGVSZW5hbWVJZkVuYWJsZWQocGx1Z2luOiBQbHVnaW4sIGZpbGU6IFRBYnN0cmFjdEZpbGUsIG9sZFBhdGg6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoIXNob3VsZEludm9rZUhhbmRsZXIocGx1Z2luKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoIWlzRmlsZShmaWxlKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBuZXdQYXRoID0gZmlsZS5wYXRoO1xuICBoYW5kbGVSZW5hbWUocGx1Z2luLmFwcCwgb2xkUGF0aCwgbmV3UGF0aCk7XG59XG5cbmZ1bmN0aW9uIGluaXRCYWNrbGlua3NNYXAoc2luZ2xlQmFja2xpbmtzTWFwOiBNYXA8c3RyaW5nLCBSZWZlcmVuY2VbXT4sIHJlbmFtZU1hcDogTWFwPHN0cmluZywgc3RyaW5nPiwgY29tYmluZWRCYWNrbGlua3NNYXA6IE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIHN0cmluZz4+LCBwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgZm9yIChjb25zdCBbYmFja2xpbmtQYXRoLCBsaW5rc10gb2Ygc2luZ2xlQmFja2xpbmtzTWFwLmVudHJpZXMoKSkge1xuICAgIGNvbnN0IG5ld0JhY2tsaW5rUGF0aCA9IHJlbmFtZU1hcC5nZXQoYmFja2xpbmtQYXRoKSA/PyBiYWNrbGlua1BhdGg7XG4gICAgY29uc3QgbGlua0pzb25Ub1BhdGhNYXAgPSBjb21iaW5lZEJhY2tsaW5rc01hcC5nZXQobmV3QmFja2xpbmtQYXRoKSA/PyBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgIGNvbWJpbmVkQmFja2xpbmtzTWFwLnNldChuZXdCYWNrbGlua1BhdGgsIGxpbmtKc29uVG9QYXRoTWFwKTtcbiAgICBmb3IgKGNvbnN0IGxpbmsgb2YgbGlua3MpIHtcbiAgICAgIGxpbmtKc29uVG9QYXRoTWFwLnNldCh0b0pzb24obGluayksIHBhdGgpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBsb2dSZWdpc3RlcmVkSGFuZGxlcnMoYXBwOiBBcHApOiB2b2lkIHtcbiAgY29uc3QgcmVuYW1lRGVsZXRlSGFuZGxlcnNNYXAgPSBnZXRSZW5hbWVEZWxldGVIYW5kbGVyc01hcChhcHApO1xuICBkZWJ1Zy5kZWZhdWx0KCdvYnNpZGlhbi1kZXYtdXRpbHM6UmVuYW1lRGVsZXRlSGFuZGxlcjpsb2dSZWdpc3RlcmVkSGFuZGxlcnMnKS5sb2coYFBsdWdpbnMgd2l0aCByZWdpc3RlcmVkIHJlbmFtZS9kZWxldGUgaGFuZGxlcnM6ICR7SlNPTi5zdHJpbmdpZnkoQXJyYXkuZnJvbShyZW5hbWVEZWxldGVIYW5kbGVyc01hcC5rZXlzKCkpKX1gKTtcbn1cblxuZnVuY3Rpb24gbWFrZUtleShvbGRQYXRoOiBzdHJpbmcsIG5ld1BhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtvbGRQYXRofSAtPiAke25ld1BhdGh9YDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVuYW1lSGFuZGxlZChhcHA6IEFwcCwgb2xkUGF0aDogc3RyaW5nLCBuZXdQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBuZXdQYXRoID0gZ2V0U2FmZVJlbmFtZVBhdGgoYXBwLCBvbGRQYXRoLCBuZXdQYXRoKTtcbiAgaWYgKG9sZFBhdGggPT09IG5ld1BhdGgpIHtcbiAgICByZXR1cm4gbmV3UGF0aDtcbiAgfVxuICBjb25zdCBrZXkgPSBtYWtlS2V5KG9sZFBhdGgsIG5ld1BhdGgpO1xuICBoYW5kbGVkUmVuYW1lcy5hZGQoa2V5KTtcbiAgbmV3UGF0aCA9IGF3YWl0IHJlbmFtZVNhZmUoYXBwLCBvbGRQYXRoLCBuZXdQYXRoKTtcbiAgcmV0dXJuIG5ld1BhdGg7XG59XG5cbmZ1bmN0aW9uIHNob3VsZEludm9rZUhhbmRsZXIocGx1Z2luOiBQbHVnaW4pOiBib29sZWFuIHtcbiAgY29uc3QgYXBwID0gcGx1Z2luLmFwcDtcbiAgY29uc3QgcGx1Z2luSWQgPSBwbHVnaW4ubWFuaWZlc3QuaWQ7XG5cbiAgY29uc3QgcmVuYW1lRGVsZXRlSGFuZGxlclBsdWdpbklkcyA9IGdldFJlbmFtZURlbGV0ZUhhbmRsZXJzTWFwKGFwcCk7XG4gIGNvbnN0IG1haW5QbHVnaW5JZCA9IEFycmF5LmZyb20ocmVuYW1lRGVsZXRlSGFuZGxlclBsdWdpbklkcy5rZXlzKCkpWzBdO1xuICBpZiAobWFpblBsdWdpbklkICE9PSBwbHVnaW5JZCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUEsbUJBQWtCO0FBQ2xCLDJCQUF1QjtBQUN2QixzQkFJTztBQU9QLHNCQUEwQjtBQUMxQixvQkFHTztBQUNQLGtCQU9PO0FBQ1AsaUJBQXlDO0FBQ3pDLDRCQUdPO0FBQ1Asd0JBT087QUFDUCxrQkFLTztBQUNQLDJCQUlPO0FBQ1AsbUJBQTJCO0FBQzNCLG1CQUdPO0FBQ1AscUJBR087QUFFUCxNQUFNLDBCQUEwQixvQkFBSSxJQUE0QjtBQUNoRSxNQUFNLGlCQUFpQixvQkFBSSxJQUFZ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QXVCO0FBQ3pGLE1BQUksQ0FBQyxvQkFBb0IsTUFBTSxHQUFHO0FBQ2hDO0FBQUEsRUFDRjtBQUNBLE1BQUksS0FBQywwQkFBTyxJQUFJLEdBQUc7QUFDakI7QUFBQSxFQUNGO0FBQ0EsUUFBTSxVQUFVLEtBQUs7QUFDckIsZUFBYSxPQUFPLEtBQUssU0FBUyxPQUFPO0FBQzNDO0FBRUEsU0FBUyxpQkFBaUIsb0JBQThDLFdBQWdDLHNCQUF3RCxNQUFvQjtBQUNsTCxhQUFXLENBQUMsY0FBYyxLQUFLLEtBQUssbUJBQW1CLFFBQVEsR0FBRztBQUNoRSxVQUFNLGtCQUFrQixVQUFVLElBQUksWUFBWSxLQUFLO0FBQ3ZELFVBQU0sb0JBQW9CLHFCQUFxQixJQUFJLGVBQWUsS0FBSyxvQkFBSSxJQUFvQjtBQUMvRix5QkFBcUIsSUFBSSxpQkFBaUIsaUJBQWlCO0FBQzNELGVBQVcsUUFBUSxPQUFPO0FBQ3hCLHdCQUFrQixRQUFJLHNCQUFPLElBQUksR0FBRyxJQUFJO0FBQUEsSUFDMUM7QUFBQSxFQUNGO0FBQ0Y7QUFFQSxTQUFTLHNCQUFzQixLQUFnQjtBQUM3QyxRQUFNLDBCQUEwQiwyQkFBMkIsR0FBRztBQUM5RCxlQUFBRCxRQUFNLFFBQVEsOERBQThELEVBQUUsSUFBSSxtREFBbUQsS0FBSyxVQUFVLE1BQU0sS0FBSyx3QkFBd0IsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQ25NO0FBRUEsU0FBUyxRQUFRLFNBQWlCLFNBQXlCO0FBQ3pELFNBQU8sR0FBRyxPQUFPLE9BQU8sT0FBTztBQUNqQztBQUVBLGVBQWUsY0FBYyxLQUFVLFNBQWlCLFNBQWtDO0FBQ3hGLGdCQUFVLGdDQUFrQixLQUFLLFNBQVMsT0FBTztBQUNqRCxNQUFJLFlBQVksU0FBUztBQUN2QixXQUFPO0FBQUEsRUFDVDtBQUNBLFFBQU0sTUFBTSxRQUFRLFNBQVMsT0FBTztBQUNwQyxpQkFBZSxJQUFJLEdBQUc7QUFDdEIsWUFBVSxVQUFNLHlCQUFXLEtBQUssU0FBUyxPQUFPO0FBQ2hELFNBQU87QUFDVDtBQUVBLFNBQVMsb0JBQW9CLFFBQXlCO0FBQ3BELFFBQU0sTUFBTSxPQUFPO0FBQ25CLFFBQU0sV0FBVyxPQUFPLFNBQVM7QUFFakMsUUFBTSwrQkFBK0IsMkJBQTJCLEdBQUc7QUFDbkUsUUFBTSxlQUFlLE1BQU0sS0FBSyw2QkFBNkIsS0FBSyxDQUFDLEVBQUUsQ0FBQztBQUN0RSxNQUFJLGlCQUFpQixVQUFVO0FBQzdCLFdBQU87QUFBQSxFQUNUO0FBQ0EsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogWyJkZWJ1ZyIsICJpbnRlcnJ1cHRlZFJlbmFtZXMiXQp9Cg==
|
394
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL29ic2lkaWFuL1JlbmFtZURlbGV0ZUhhbmRsZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFJlbmFtZURlbGV0ZUhhbmRsZXJcbiAqIENvbnRhaW5zIHV0aWxpdHkgZnVuY3Rpb25zIGZvciBoYW5kbGluZyByZW5hbWUgYW5kIGRlbGV0ZSBldmVudHMgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUge1xuICBDYWNoZWRNZXRhZGF0YSxcbiAgUGx1Z2luLFxuICBSZWZlcmVuY2UsXG4gIFRBYnN0cmFjdEZpbGVcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBhcm91bmQgfSBmcm9tICdtb25rZXktYXJvdW5kJztcbmltcG9ydCB7XG4gIEFwcCxcbiAgVEZpbGUsXG4gIFZhdWx0XG59IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHR5cGUge1xuICBVcGRhdGVMaW5rT3B0aW9ucyxcbiAgVXBkYXRlTGlua3NJbkZpbGVPcHRpb25zXG59IGZyb20gJy4vTGluay50cyc7XG5cbmltcG9ydCB7IGdldERlYnVnZ2VyIH0gZnJvbSAnLi4vRGVidWcudHMnO1xuaW1wb3J0IHsgbm9vcEFzeW5jIH0gZnJvbSAnLi4vRnVuY3Rpb24udHMnO1xuaW1wb3J0IHtcbiAgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzLFxuICB0b0pzb25cbn0gZnJvbSAnLi4vT2JqZWN0LnRzJztcbmltcG9ydCB7XG4gIGJhc2VuYW1lLFxuICBkaXJuYW1lLFxuICBleHRuYW1lLFxuICBqb2luLFxuICBtYWtlRmlsZU5hbWUsXG4gIHJlbGF0aXZlXG59IGZyb20gJy4uL1BhdGgudHMnO1xuaW1wb3J0IHsgZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlIH0gZnJvbSAnLi9BcHAudHMnO1xuaW1wb3J0IHtcbiAgZ2V0QXR0YWNobWVudEZvbGRlclBhdGgsXG4gIGhhc093bkF0dGFjaG1lbnRGb2xkZXJcbn0gZnJvbSAnLi9BdHRhY2htZW50UGF0aC50cyc7XG5pbXBvcnQge1xuICBnZXRGaWxlLFxuICBnZXRGaWxlT3JOdWxsLFxuICBnZXRGb2xkZXJPck51bGwsXG4gIGlzRmlsZSxcbiAgaXNNYXJrZG93bkZpbGUsXG4gIGlzTm90ZVxufSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xuaW1wb3J0IHtcbiAgZWRpdExpbmtzLFxuICBleHRyYWN0TGlua0ZpbGUsXG4gIHVwZGF0ZUxpbmssXG4gIHVwZGF0ZUxpbmtzSW5GaWxlXG59IGZyb20gJy4vTGluay50cyc7XG5pbXBvcnQge1xuICBnZXRBbGxMaW5rcyxcbiAgZ2V0QmFja2xpbmtzRm9yRmlsZU9yUGF0aCxcbiAgZ2V0QmFja2xpbmtzRm9yRmlsZVNhZmVcbn0gZnJvbSAnLi9NZXRhZGF0YUNhY2hlLnRzJztcbmltcG9ydCB7IGFkZFRvUXVldWUgfSBmcm9tICcuL1F1ZXVlLnRzJztcbmltcG9ydCB7XG4gIGdldFNhZmVSZW5hbWVQYXRoLFxuICByZW5hbWVTYWZlXG59IGZyb20gJy4vVmF1bHQudHMnO1xuaW1wb3J0IHtcbiAgZGVsZXRlRW1wdHlGb2xkZXJIaWVyYXJjaHksXG4gIGRlbGV0ZVNhZmVcbn0gZnJvbSAnLi9WYXVsdEV4LnRzJztcblxuY29uc3QgZGVsZXRlZE1ldGFkYXRhQ2FjaGVNYXAgPSBuZXcgTWFwPHN0cmluZywgQ2FjaGVkTWV0YWRhdGE+KCk7XG5jb25zdCBoYW5kbGVkUmVuYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuY29uc3QgaW50ZXJydXB0ZWRSZW5hbWVzTWFwID0gbmV3IE1hcDxzdHJpbmcsIEludGVycnVwdGVkUmVuYW1lW10+KCk7XG5cbi8qKlxuICogU2V0dGluZ3MgZm9yIHRoZSByZW5hbWUvZGVsZXRlIGhhbmRsZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVuYW1lRGVsZXRlSGFuZGxlclNldHRpbmdzIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaWdub3JlIHRoZSBwYXRoLlxuICAgKi9cbiAgaXNQYXRoSWdub3JlZChwYXRoOiBzdHJpbmcpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRlbGV0ZSBjb25mbGljdGluZyBhdHRhY2htZW50cy5cbiAgICovXG4gIHNob3VsZERlbGV0ZUNvbmZsaWN0aW5nQXR0YWNobWVudHM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGVsZXRlIGVtcHR5IGZvbGRlcnMuXG4gICAqL1xuICBzaG91bGREZWxldGVFbXB0eUZvbGRlcnM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaGFuZGxlIGRlbGV0aW9ucy5cbiAgICovXG4gIHNob3VsZEhhbmRsZURlbGV0aW9uczogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBoYW5kbGUgcmVuYW1lcy5cbiAgICovXG4gIHNob3VsZEhhbmRsZVJlbmFtZXM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVuYW1lIGF0dGFjaG1lbnQgZmlsZXMgd2hlbiBhIG5vdGUgaXMgcmVuYW1lZC5cbiAgICovXG4gIHNob3VsZFJlbmFtZUF0dGFjaG1lbnRGaWxlczogYm9vbGVhbjtcblxuICAvKipcbiAgICAqIFdoZXRoZXIgdG8gcmVuYW1lIGF0dGFjaG1lbnQgZm9sZGVyIHdoZW4gYSBub3RlIGlzIHJlbmFtZWQuXG4gICAgKi9cbiAgc2hvdWxkUmVuYW1lQXR0YWNobWVudEZvbGRlcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byB1cGRhdGUgZmlsZW5hbWUgYWxpYXNlcyB3aGVuIGEgbm90ZSBpcyByZW5hbWVkLlxuICAgKi9cbiAgc2hvdWxkVXBkYXRlRmlsZW5hbWVBbGlhc2VzOiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgSW50ZXJydXB0ZWRSZW5hbWUge1xuICBjb21iaW5lZEJhY2tsaW5rc01hcDogTWFwPHN0cmluZywgTWFwPHN0cmluZywgc3RyaW5nPj47XG4gIG9sZFBhdGg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgdGhlIHJlbmFtZS9kZWxldGUgaGFuZGxlcnMuXG4gKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBzZXR0aW5nc0J1aWxkZXIgLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgc2V0dGluZ3MgZm9yIHRoZSByZW5hbWUgZGVsZXRlIGhhbmRsZXIuXG4gKiBAcmV0dXJucyB2b2lkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlclJlbmFtZURlbGV0ZUhhbmRsZXJzKHBsdWdpbjogUGx1Z2luLCBzZXR0aW5nc0J1aWxkZXI6ICgpID0+IFBhcnRpYWw8UmVuYW1lRGVsZXRlSGFuZGxlclNldHRpbmdzPik6IHZvaWQge1xuICBjb25zdCByZW5hbWVEZWxldGVIYW5kbGVyc01hcCA9IGdldFJlbmFtZURlbGV0ZUhhbmRsZXJzTWFwKHBsdWdpbi5hcHApO1xuICBjb25zdCBwbHVnaW5JZCA9IHBsdWdpbi5tYW5pZmVzdC5pZDtcblxuICByZW5hbWVEZWxldGVIYW5kbGVyc01hcC5zZXQocGx1Z2luSWQsIHNldHRpbmdzQnVpbGRlcik7XG4gIGxvZ1JlZ2lzdGVyZWRIYW5kbGVycyhwbHVnaW4uYXBwKTtcblxuICBwbHVnaW4ucmVnaXN0ZXIoKCkgPT4ge1xuICAgIHJlbmFtZURlbGV0ZUhhbmRsZXJzTWFwLmRlbGV0ZShwbHVnaW5JZCk7XG4gICAgbG9nUmVnaXN0ZXJlZEhhbmRsZXJzKHBsdWdpbi5hcHApO1xuICB9KTtcblxuICBjb25zdCBhcHAgPSBwbHVnaW4uYXBwO1xuICBwbHVnaW4ucmVnaXN0ZXJFdmVudChcbiAgICBhcHAudmF1bHQub24oJ2RlbGV0ZScsIChmaWxlKSA9PiB7XG4gICAgICBoYW5kbGVEZWxldGVJZkVuYWJsZWQocGx1Z2luLCBmaWxlKTtcbiAgICB9KVxuICApO1xuXG4gIHBsdWdpbi5yZWdpc3RlckV2ZW50KFxuICAgIGFwcC52YXVsdC5vbigncmVuYW1lJywgKGZpbGUsIG9sZFBhdGgpID0+IHtcbiAgICAgIGhhbmRsZVJlbmFtZUlmRW5hYmxlZChwbHVnaW4sIGZpbGUsIG9sZFBhdGgpO1xuICAgIH0pXG4gICk7XG5cbiAgcGx1Z2luLnJlZ2lzdGVyRXZlbnQoXG4gICAgYXBwLm1ldGFkYXRhQ2FjaGUub24oJ2RlbGV0ZWQnLCAoZmlsZSwgcHJldkNhY2hlKSA9PiB7XG4gICAgICBoYW5kbGVNZXRhZGF0YURlbGV0ZWRJZkVuYWJsZWQocGx1Z2luLCBmaWxlLCBwcmV2Q2FjaGUpO1xuICAgIH0pXG4gICk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZpbGxSZW5hbWVNYXAoYXBwOiBBcHAsIG9sZFBhdGg6IHN0cmluZywgbmV3UGF0aDogc3RyaW5nLCByZW5hbWVNYXA6IE1hcDxzdHJpbmcsIHN0cmluZz4sIG9sZFBhdGhMaW5rczogUmVmZXJlbmNlW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmVuYW1lTWFwLnNldChvbGRQYXRoLCBuZXdQYXRoKTtcblxuICBpZiAoIWlzTm90ZShhcHAsIG9sZFBhdGgpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qgc2V0dGluZ3MgPSBnZXRTZXR0aW5ncyhhcHApO1xuXG4gIGNvbnN0IG9sZEF0dGFjaG1lbnRGb2xkZXJQYXRoID0gYXdhaXQgZ2V0QXR0YWNobWVudEZvbGRlclBhdGgoYXBwLCBvbGRQYXRoKTtcbiAgY29uc3QgbmV3QXR0YWNobWVudEZvbGRlclBhdGggPSBzZXR0aW5ncy5zaG91bGRSZW5hbWVBdHRhY2htZW50Rm9sZGVyXG4gICAgPyBhd2FpdCBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aChhcHAsIG5ld1BhdGgpXG4gICAgOiBvbGRBdHRhY2htZW50Rm9sZGVyUGF0aDtcblxuICBjb25zdCBvbGRBdHRhY2htZW50Rm9sZGVyID0gZ2V0Rm9sZGVyT3JOdWxsKGFwcCwgb2xkQXR0YWNobWVudEZvbGRlclBhdGgpO1xuXG4gIGlmICghb2xkQXR0YWNobWVudEZvbGRlcikge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChvbGRBdHRhY2htZW50Rm9sZGVyUGF0aCA9PT0gbmV3QXR0YWNobWVudEZvbGRlclBhdGggJiYgIXNldHRpbmdzLnNob3VsZFJlbmFtZUF0dGFjaG1lbnRGaWxlcykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG9sZEF0dGFjaG1lbnRGaWxlczogVEZpbGVbXSA9IFtdO1xuXG4gIGlmICghKGF3YWl0IGhhc093bkF0dGFjaG1lbnRGb2xkZXIoYXBwLCBvbGRQYXRoKSkpIHtcbiAgICBmb3IgKGNvbnN0IG9sZFBhdGhMaW5rIG9mIG9sZFBhdGhMaW5rcykge1xuICAgICAgY29uc3Qgb2xkQXR0YWNobWVudEZpbGUgPSBleHRyYWN0TGlua0ZpbGUoYXBwLCBvbGRQYXRoTGluaywgb2xkUGF0aCk7XG4gICAgICBpZiAoIW9sZEF0dGFjaG1lbnRGaWxlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAob2xkQXR0YWNobWVudEZpbGUucGF0aC5zdGFydHNXaXRoKG9sZEF0dGFjaG1lbnRGb2xkZXJQYXRoKSkge1xuICAgICAgICBjb25zdCBvbGRBdHRhY2htZW50QmFja2xpbmtzID0gYXdhaXQgZ2V0QmFja2xpbmtzRm9yRmlsZVNhZmUoYXBwLCBvbGRBdHRhY2htZW50RmlsZSk7XG4gICAgICAgIGlmIChvbGRBdHRhY2htZW50QmFja2xpbmtzLmtleXMoKS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICBvbGRBdHRhY2htZW50RmlsZXMucHVzaChvbGRBdHRhY2htZW50RmlsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgVmF1bHQucmVjdXJzZUNoaWxkcmVuKG9sZEF0dGFjaG1lbnRGb2xkZXIsIChvbGRBdHRhY2htZW50RmlsZSkgPT4ge1xuICAgICAgaWYgKGlzRmlsZShvbGRBdHRhY2htZW50RmlsZSkpIHtcbiAgICAgICAgb2xkQXR0YWNobWVudEZpbGVzLnB1c2gob2xkQXR0YWNobWVudEZpbGUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY29uc3Qgb2xkQmFzZW5hbWUgPSBiYXNlbmFtZShvbGRQYXRoLCBleHRuYW1lKG9sZFBhdGgpKTtcbiAgY29uc3QgbmV3QmFzZW5hbWUgPSBiYXNlbmFtZShuZXdQYXRoLCBleHRuYW1lKG5ld1BhdGgpKTtcblxuICBmb3IgKGNvbnN0IG9sZEF0dGFjaG1lbnRGaWxlIG9mIG9sZEF0dGFjaG1lbnRGaWxlcykge1xuICAgIGlmIChpc05vdGUoYXBwLCBvbGRBdHRhY2htZW50RmlsZSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSByZWxhdGl2ZShvbGRBdHRhY2htZW50Rm9sZGVyUGF0aCwgb2xkQXR0YWNobWVudEZpbGUucGF0aCk7XG4gICAgY29uc3QgbmV3RGlyID0gam9pbihuZXdBdHRhY2htZW50Rm9sZGVyUGF0aCwgZGlybmFtZShyZWxhdGl2ZVBhdGgpKTtcbiAgICBjb25zdCBuZXdDaGlsZEJhc2VuYW1lID0gc2V0dGluZ3Muc2hvdWxkUmVuYW1lQXR0YWNobWVudEZpbGVzXG4gICAgICA/IG9sZEF0dGFjaG1lbnRGaWxlLmJhc2VuYW1lLnJlcGxhY2VBbGwob2xkQmFzZW5hbWUsIG5ld0Jhc2VuYW1lKVxuICAgICAgOiBvbGRBdHRhY2htZW50RmlsZS5iYXNlbmFtZTtcbiAgICBsZXQgbmV3Q2hpbGRQYXRoID0gam9pbihuZXdEaXIsIG1ha2VGaWxlTmFtZShuZXdDaGlsZEJhc2VuYW1lLCBvbGRBdHRhY2htZW50RmlsZS5leHRlbnNpb24pKTtcblxuICAgIGlmIChvbGRBdHRhY2htZW50RmlsZS5wYXRoID09PSBuZXdDaGlsZFBhdGgpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChzZXR0aW5ncy5zaG91bGREZWxldGVDb25mbGljdGluZ0F0dGFjaG1lbnRzKSB7XG4gICAgICBjb25zdCBuZXdDaGlsZEZpbGUgPSBnZXRGaWxlT3JOdWxsKGFwcCwgbmV3Q2hpbGRQYXRoKTtcbiAgICAgIGlmIChuZXdDaGlsZEZpbGUpIHtcbiAgICAgICAgYXdhaXQgYXBwLmZpbGVNYW5hZ2VyLnRyYXNoRmlsZShuZXdDaGlsZEZpbGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBuZXdDaGlsZFBhdGggPSBhcHAudmF1bHQuZ2V0QXZhaWxhYmxlUGF0aChqb2luKG5ld0RpciwgbmV3Q2hpbGRCYXNlbmFtZSksIG9sZEF0dGFjaG1lbnRGaWxlLmV4dGVuc2lvbik7XG4gICAgfVxuICAgIHJlbmFtZU1hcC5zZXQob2xkQXR0YWNobWVudEZpbGUucGF0aCwgbmV3Q2hpbGRQYXRoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRSZW5hbWVEZWxldGVIYW5kbGVyc01hcChhcHA6IEFwcCk6IE1hcDxzdHJpbmcsICgpID0+IFBhcnRpYWw8UmVuYW1lRGVsZXRlSGFuZGxlclNldHRpbmdzPj4ge1xuICByZXR1cm4gZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlKGFwcCwgJ3JlbmFtZURlbGV0ZUhhbmRsZXJzTWFwJywgbmV3IE1hcDxzdHJpbmcsICgpID0+IFBhcnRpYWw8UmVuYW1lRGVsZXRlSGFuZGxlclNldHRpbmdzPj4oKSkudmFsdWU7XG59XG5cbmZ1bmN0aW9uIGdldFNldHRpbmdzKGFwcDogQXBwKTogUGFydGlhbDxSZW5hbWVEZWxldGVIYW5kbGVyU2V0dGluZ3M+IHtcbiAgY29uc3QgcmVuYW1lRGVsZXRlSGFuZGxlcnNNYXAgPSBnZXRSZW5hbWVEZWxldGVIYW5kbGVyc01hcChhcHApO1xuICBjb25zdCBzZXR0aW5nc0J1aWxkZXJzID0gQXJyYXkuZnJvbShyZW5hbWVEZWxldGVIYW5kbGVyc01hcC52YWx1ZXMoKSkucmV2ZXJzZSgpO1xuXG4gIGNvbnN0IHNldHRpbmdzOiBQYXJ0aWFsPFJlbmFtZURlbGV0ZUhhbmRsZXJTZXR0aW5ncz4gPSB7fTtcbiAgZm9yIChjb25zdCBzZXR0aW5nc0J1aWxkZXIgb2Ygc2V0dGluZ3NCdWlsZGVycykge1xuICAgIGNvbnN0IG5ld1NldHRpbmdzID0gc2V0dGluZ3NCdWlsZGVyKCk7XG4gICAgc2V0dGluZ3Muc2hvdWxkRGVsZXRlQ29uZmxpY3RpbmdBdHRhY2htZW50cyB8fD0gbmV3U2V0dGluZ3Muc2hvdWxkRGVsZXRlQ29uZmxpY3RpbmdBdHRhY2htZW50cyA/PyBmYWxzZTtcbiAgICBzZXR0aW5ncy5zaG91bGREZWxldGVFbXB0eUZvbGRlcnMgfHw9IG5ld1NldHRpbmdzLnNob3VsZERlbGV0ZUVtcHR5Rm9sZGVycyA/PyBmYWxzZTtcbiAgICBzZXR0aW5ncy5zaG91bGRIYW5kbGVEZWxldGlvbnMgfHw9IG5ld1NldHRpbmdzLnNob3VsZEhhbmRsZURlbGV0aW9ucyA/PyBmYWxzZTtcbiAgICBzZXR0aW5ncy5zaG91bGRIYW5kbGVSZW5hbWVzIHx8PSBuZXdTZXR0aW5ncy5zaG91bGRIYW5kbGVSZW5hbWVzID8/IGZhbHNlO1xuICAgIHNldHRpbmdzLnNob3VsZFJlbmFtZUF0dGFjaG1lbnRGaWxlcyB8fD0gbmV3U2V0dGluZ3Muc2hvdWxkUmVuYW1lQXR0YWNobWVudEZpbGVzID8/IGZhbHNlO1xuICAgIHNldHRpbmdzLnNob3VsZFJlbmFtZUF0dGFjaG1lbnRGb2xkZXIgfHw9IG5ld1NldHRpbmdzLnNob3VsZFJlbmFtZUF0dGFjaG1lbnRGb2xkZXIgPz8gZmFsc2U7XG4gICAgc2V0dGluZ3Muc2hvdWxkVXBkYXRlRmlsZW5hbWVBbGlhc2VzIHx8PSBuZXdTZXR0aW5ncy5zaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzZXMgPz8gZmFsc2U7XG4gICAgY29uc3QgaXNQYXRoSWdub3JlZCA9IHNldHRpbmdzLmlzUGF0aElnbm9yZWQ7XG4gICAgc2V0dGluZ3MuaXNQYXRoSWdub3JlZCA9IChwYXRoOiBzdHJpbmcpOiBib29sZWFuID0+IGlzUGF0aElnbm9yZWQ/LihwYXRoKSA/PyBuZXdTZXR0aW5ncy5pc1BhdGhJZ25vcmVkPy4ocGF0aCkgPz8gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gc2V0dGluZ3M7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZURlbGV0ZShhcHA6IEFwcCwgcGF0aDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGdldERlYnVnZ2VyKCdvYnNpZGlhbi1kZXYtdXRpbHM6UmVuYW1lRGVsZXRlSGFuZGxlcjpoYW5kbGVEZWxldGUnKShgSGFuZGxlIERlbGV0ZSAke3BhdGh9YCk7XG4gIGlmICghaXNOb3RlKGFwcCwgcGF0aCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBzZXR0aW5ncyA9IGdldFNldHRpbmdzKGFwcCk7XG4gIGlmICghc2V0dGluZ3Muc2hvdWxkSGFuZGxlRGVsZXRpb25zKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHNldHRpbmdzLmlzUGF0aElnbm9yZWQ/LihwYXRoKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGNhY2hlID0gZGVsZXRlZE1ldGFkYXRhQ2FjaGVNYXAuZ2V0KHBhdGgpO1xuICBkZWxldGVkTWV0YWRhdGFDYWNoZU1hcC5kZWxldGUocGF0aCk7XG4gIGlmIChjYWNoZSkge1xuICAgIGNvbnN0IGxpbmtzID0gZ2V0QWxsTGlua3MoY2FjaGUpO1xuXG4gICAgZm9yIChjb25zdCBsaW5rIG9mIGxpbmtzKSB7XG4gICAgICBjb25zdCBhdHRhY2htZW50RmlsZSA9IGV4dHJhY3RMaW5rRmlsZShhcHAsIGxpbmssIHBhdGgpO1xuICAgICAgaWYgKCFhdHRhY2htZW50RmlsZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzTm90ZShhcHAsIGF0dGFjaG1lbnRGaWxlKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgZGVsZXRlU2FmZShhcHAsIGF0dGFjaG1lbnRGaWxlLCBwYXRoLCBzZXR0aW5ncy5zaG91bGREZWxldGVFbXB0eUZvbGRlcnMpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGF0dGFjaG1lbnRGb2xkZXJQYXRoID0gYXdhaXQgZ2V0QXR0YWNobWVudEZvbGRlclBhdGgoYXBwLCBwYXRoKTtcbiAgY29uc3QgYXR0YWNobWVudEZvbGRlciA9IGdldEZvbGRlck9yTnVsbChhcHAsIGF0dGFjaG1lbnRGb2xkZXJQYXRoKTtcblxuICBpZiAoIWF0dGFjaG1lbnRGb2xkZXIpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoIShhd2FpdCBoYXNPd25BdHRhY2htZW50Rm9sZGVyKGFwcCwgcGF0aCkpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgYXdhaXQgZGVsZXRlU2FmZShhcHAsIGF0dGFjaG1lbnRGb2xkZXIsIHBhdGgsIGZhbHNlLCBzZXR0aW5ncy5zaG91bGREZWxldGVFbXB0eUZvbGRlcnMpO1xufVxuXG5mdW5jdGlvbiBoYW5kbGVEZWxldGVJZkVuYWJsZWQocGx1Z2luOiBQbHVnaW4sIGZpbGU6IFRBYnN0cmFjdEZpbGUpOiB2b2lkIHtcbiAgY29uc3QgYXBwID0gcGx1Z2luLmFwcDtcbiAgaWYgKCFzaG91bGRJbnZva2VIYW5kbGVyKHBsdWdpbikpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgcGF0aCA9IGZpbGUucGF0aDtcbiAgYWRkVG9RdWV1ZShhcHAsICgpID0+IGhhbmRsZURlbGV0ZShhcHAsIHBhdGgpKTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlTWV0YWRhdGFEZWxldGVkKGFwcDogQXBwLCBmaWxlOiBUQWJzdHJhY3RGaWxlLCBwcmV2Q2FjaGU6IENhY2hlZE1ldGFkYXRhIHwgbnVsbCk6IHZvaWQge1xuICBjb25zdCBzZXR0aW5ncyA9IGdldFNldHRpbmdzKGFwcCk7XG4gIGlmIChzZXR0aW5ncy5pc1BhdGhJZ25vcmVkPy4oZmlsZS5wYXRoKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICghc2V0dGluZ3Muc2hvdWxkSGFuZGxlRGVsZXRpb25zKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChpc01hcmtkb3duRmlsZShhcHAsIGZpbGUpICYmIHByZXZDYWNoZSkge1xuICAgIGRlbGV0ZWRNZXRhZGF0YUNhY2hlTWFwLnNldChmaWxlLnBhdGgsIHByZXZDYWNoZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlTWV0YWRhdGFEZWxldGVkSWZFbmFibGVkKHBsdWdpbjogUGx1Z2luLCBmaWxlOiBUQWJzdHJhY3RGaWxlLCBwcmV2Q2FjaGU6IENhY2hlZE1ldGFkYXRhIHwgbnVsbCk6IHZvaWQge1xuICBpZiAoIXNob3VsZEludm9rZUhhbmRsZXIocGx1Z2luKSkge1xuICAgIHJldHVybjtcbiAgfVxuICBoYW5kbGVNZXRhZGF0YURlbGV0ZWQocGx1Z2luLmFwcCwgZmlsZSwgcHJldkNhY2hlKTtcbn1cblxuZnVuY3Rpb24gaGFuZGxlUmVuYW1lKGFwcDogQXBwLCBvbGRQYXRoOiBzdHJpbmcsIG5ld1BhdGg6IHN0cmluZyk6IHZvaWQge1xuICBjb25zdCBrZXkgPSBtYWtlS2V5KG9sZFBhdGgsIG5ld1BhdGgpO1xuICBnZXREZWJ1Z2dlcignb2JzaWRpYW4tZGV2LXV0aWxzOlJlbmFtZURlbGV0ZUhhbmRsZXI6aGFuZGxlUmVuYW1lJykoYEhhbmRsZSBSZW5hbWUgJHtrZXl9YCk7XG4gIGlmIChoYW5kbGVkUmVuYW1lcy5oYXMoa2V5KSkge1xuICAgIGhhbmRsZWRSZW5hbWVzLmRlbGV0ZShrZXkpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHNldHRpbmdzID0gZ2V0U2V0dGluZ3MoYXBwKTtcbiAgaWYgKCFzZXR0aW5ncy5zaG91bGRIYW5kbGVSZW5hbWVzIHx8IHNldHRpbmdzLmlzUGF0aElnbm9yZWQ/LihvbGRQYXRoKSB8fCBzZXR0aW5ncy5pc1BhdGhJZ25vcmVkPy4obmV3UGF0aCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBjYWNoZSA9IGFwcC5tZXRhZGF0YUNhY2hlLmdldENhY2hlKG9sZFBhdGgpID8/IGFwcC5tZXRhZGF0YUNhY2hlLmdldENhY2hlKG5ld1BhdGgpO1xuICBjb25zdCBvbGRQYXRoTGlua3MgPSBjYWNoZSA/IGdldEFsbExpbmtzKGNhY2hlKSA6IFtdO1xuICBjb25zdCBvbGRQYXRoQmFja2xpbmtzTWFwID0gZ2V0QmFja2xpbmtzRm9yRmlsZU9yUGF0aChhcHAsIG9sZFBhdGgpLmRhdGE7XG4gIGFkZFRvUXVldWUoYXBwLCAoKSA9PiBoYW5kbGVSZW5hbWVBc3luYyhhcHAsIG9sZFBhdGgsIG5ld1BhdGgsIG9sZFBhdGhCYWNrbGlua3NNYXAsIG9sZFBhdGhMaW5rcykpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBoYW5kbGVSZW5hbWVBc3luYyhhcHA6IEFwcCwgb2xkUGF0aDogc3RyaW5nLCBuZXdQYXRoOiBzdHJpbmcsIG9sZFBhdGhCYWNrbGlua3NNYXA6IE1hcDxzdHJpbmcsIFJlZmVyZW5jZVtdPiwgb2xkUGF0aExpbmtzOiBSZWZlcmVuY2VbXSwgaW50ZXJydXB0ZWRDb21iaW5lZEJhY2tsaW5rc01hcD86IE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIHN0cmluZz4+KTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGludGVycnVwdGVkUmVuYW1lcyA9IGludGVycnVwdGVkUmVuYW1lc01hcC5nZXQob2xkUGF0aCk7XG4gIGlmIChpbnRlcnJ1cHRlZFJlbmFtZXMpIHtcbiAgICBpbnRlcnJ1cHRlZFJlbmFtZXNNYXAuZGVsZXRlKG9sZFBhdGgpO1xuICAgIGZvciAoY29uc3QgaW50ZXJydXB0ZWRSZW5hbWUgb2YgaW50ZXJydXB0ZWRSZW5hbWVzKSB7XG4gICAgICBhd2FpdCBoYW5kbGVSZW5hbWVBc3luYyhhcHAsIGludGVycnVwdGVkUmVuYW1lLm9sZFBhdGgsIG5ld1BhdGgsIG9sZFBhdGhCYWNrbGlua3NNYXAsIG9sZFBhdGhMaW5rcywgaW50ZXJydXB0ZWRSZW5hbWUuY29tYmluZWRCYWNrbGlua3NNYXApO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNhY2hlID0gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Q2FjaGUob2xkUGF0aCkgPz8gYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Q2FjaGUobmV3UGF0aCk7XG4gIGNvbnN0IG9sZFBhdGhMaW5rczIgPSBjYWNoZSA/IGdldEFsbExpbmtzKGNhY2hlKSA6IFtdO1xuICBjb25zdCBvbGRQYXRoQmFja2xpbmtzTWFwMiA9IGdldEJhY2tsaW5rc0ZvckZpbGVPclBhdGgoYXBwLCBvbGRQYXRoKS5kYXRhO1xuXG4gIGZvciAoY29uc3QgbGluayBvZiBvbGRQYXRoTGlua3MyKSB7XG4gICAgaWYgKG9sZFBhdGhMaW5rcy5pbmNsdWRlcyhsaW5rKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIG9sZFBhdGhMaW5rcy5wdXNoKGxpbmspO1xuICB9XG5cbiAgaWYgKGFwcC52YXVsdC5hZGFwdGVyLmluc2Vuc2l0aXZlICYmIG9sZFBhdGgudG9Mb3dlckNhc2UoKSA9PT0gbmV3UGF0aC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgY29uc3QgdGVtcFBhdGggPSBqb2luKGRpcm5hbWUobmV3UGF0aCksICdfX3RlbXBfXycgKyBiYXNlbmFtZShuZXdQYXRoKSk7XG4gICAgYXdhaXQgcmVuYW1lSGFuZGxlZChhcHAsIG5ld1BhdGgsIHRlbXBQYXRoKTtcbiAgICBhd2FpdCBoYW5kbGVSZW5hbWVBc3luYyhhcHAsIG9sZFBhdGgsIHRlbXBQYXRoLCBvbGRQYXRoQmFja2xpbmtzTWFwLCBvbGRQYXRoTGlua3MpO1xuICAgIGF3YWl0IGFwcC52YXVsdC5yZW5hbWUoZ2V0RmlsZShhcHAsIHRlbXBQYXRoKSwgbmV3UGF0aCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcmVzdG9yZVVwZGF0ZUFsbExpbmtzID0gYXJvdW5kKGFwcC5maWxlTWFuYWdlciwge1xuICAgIHVwZGF0ZUFsbExpbmtzOiAoKSA9PiBub29wQXN5bmNcbiAgfSk7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVuYW1lTWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgICBhd2FpdCBmaWxsUmVuYW1lTWFwKGFwcCwgb2xkUGF0aCwgbmV3UGF0aCwgcmVuYW1lTWFwLCBvbGRQYXRoTGlua3MpO1xuXG4gICAgY29uc3QgY29tYmluZWRCYWNrbGlua3NNYXAgPSBuZXcgTWFwPHN0cmluZywgTWFwPHN0cmluZywgc3RyaW5nPj4oKTtcbiAgICBpbml0QmFja2xpbmtzTWFwKG9sZFBhdGhCYWNrbGlua3NNYXAsIHJlbmFtZU1hcCwgY29tYmluZWRCYWNrbGlua3NNYXAsIG9sZFBhdGgpO1xuICAgIGluaXRCYWNrbGlua3NNYXAob2xkUGF0aEJhY2tsaW5rc01hcDIsIHJlbmFtZU1hcCwgY29tYmluZWRCYWNrbGlua3NNYXAsIG9sZFBhdGgpO1xuXG4gICAgZm9yIChjb25zdCBhdHRhY2htZW50T2xkUGF0aCBvZiByZW5hbWVNYXAua2V5cygpKSB7XG4gICAgICBpZiAoYXR0YWNobWVudE9sZFBhdGggPT09IG9sZFBhdGgpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBhdHRhY2htZW50T2xkUGF0aEJhY2tsaW5rc01hcCA9IChhd2FpdCBnZXRCYWNrbGlua3NGb3JGaWxlU2FmZShhcHAsIGF0dGFjaG1lbnRPbGRQYXRoKSkuZGF0YTtcbiAgICAgIGluaXRCYWNrbGlua3NNYXAoYXR0YWNobWVudE9sZFBhdGhCYWNrbGlua3NNYXAsIHJlbmFtZU1hcCwgY29tYmluZWRCYWNrbGlua3NNYXAsIGF0dGFjaG1lbnRPbGRQYXRoKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJlbnRGb2xkZXJzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICBmb3IgKGNvbnN0IFtvbGRBdHRhY2htZW50UGF0aCwgbmV3QXR0YWNobWVudFBhdGhdIG9mIHJlbmFtZU1hcC5lbnRyaWVzKCkpIHtcbiAgICAgIGlmIChvbGRBdHRhY2htZW50UGF0aCA9PT0gb2xkUGF0aCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZpeGVkTmV3QXR0YWNobWVudFBhdGggPSBhd2FpdCByZW5hbWVIYW5kbGVkKGFwcCwgb2xkQXR0YWNobWVudFBhdGgsIG5ld0F0dGFjaG1lbnRQYXRoKTtcbiAgICAgIHJlbmFtZU1hcC5zZXQob2xkQXR0YWNobWVudFBhdGgsIGZpeGVkTmV3QXR0YWNobWVudFBhdGgpO1xuICAgICAgcGFyZW50Rm9sZGVycy5hZGQoZGlybmFtZShvbGRBdHRhY2htZW50UGF0aCkpO1xuICAgIH1cblxuICAgIGNvbnN0IHNldHRpbmdzID0gZ2V0U2V0dGluZ3MoYXBwKTtcbiAgICBpZiAoc2V0dGluZ3Muc2hvdWxkRGVsZXRlRW1wdHlGb2xkZXJzKSB7XG4gICAgICBmb3IgKGNvbnN0IHBhcmVudEZvbGRlciBvZiBwYXJlbnRGb2xkZXJzKSB7XG4gICAgICAgIGF3YWl0IGRlbGV0ZUVtcHR5Rm9sZGVySGllcmFyY2h5KGFwcCwgcGFyZW50Rm9sZGVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtuZXdCYWNrbGlua1BhdGgsIGxpbmtKc29uVG9QYXRoTWFwXSBvZiBBcnJheS5mcm9tKGNvbWJpbmVkQmFja2xpbmtzTWFwLmVudHJpZXMoKSkuY29uY2F0KEFycmF5LmZyb20oaW50ZXJydXB0ZWRDb21iaW5lZEJhY2tsaW5rc01hcD8uZW50cmllcygpID8/IFtdKSkpIHtcbiAgICAgIGF3YWl0IGVkaXRMaW5rcyhhcHAsIG5ld0JhY2tsaW5rUGF0aCwgKGxpbmspID0+IHtcbiAgICAgICAgY29uc3Qgb2xkQXR0YWNobWVudFBhdGggPSBsaW5rSnNvblRvUGF0aE1hcC5nZXQodG9Kc29uKGxpbmspKTtcbiAgICAgICAgaWYgKCFvbGRBdHRhY2htZW50UGF0aCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5ld0F0dGFjaG1lbnRQYXRoID0gcmVuYW1lTWFwLmdldChvbGRBdHRhY2htZW50UGF0aCk7XG4gICAgICAgIGlmICghbmV3QXR0YWNobWVudFBhdGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdXBkYXRlTGluayhub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8VXBkYXRlTGlua09wdGlvbnM+KHtcbiAgICAgICAgICBhcHA6IGFwcCxcbiAgICAgICAgICBsaW5rLFxuICAgICAgICAgIG5ld1NvdXJjZVBhdGhPckZpbGU6IG5ld0JhY2tsaW5rUGF0aCxcbiAgICAgICAgICBuZXdUYXJnZXRQYXRoT3JGaWxlOiBuZXdBdHRhY2htZW50UGF0aCxcbiAgICAgICAgICBvbGRUYXJnZXRQYXRoT3JGaWxlOiBvbGRBdHRhY2htZW50UGF0aCxcbiAgICAgICAgICBzaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzOiBzZXR0aW5ncy5zaG91bGRVcGRhdGVGaWxlbmFtZUFsaWFzZXNcbiAgICAgICAgfSkpO1xuICAgICAgfSwge1xuICAgICAgICBzaG91bGRGYWlsT25NaXNzaW5nRmlsZTogZmFsc2VcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpc05vdGUoYXBwLCBuZXdQYXRoKSkge1xuICAgICAgYXdhaXQgdXBkYXRlTGlua3NJbkZpbGUobm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPFVwZGF0ZUxpbmtzSW5GaWxlT3B0aW9ucz4oe1xuICAgICAgICBhcHAsXG4gICAgICAgIG5ld1NvdXJjZVBhdGhPckZpbGU6IG5ld1BhdGgsXG4gICAgICAgIG9sZFNvdXJjZVBhdGhPckZpbGU6IG9sZFBhdGgsXG4gICAgICAgIHNob3VsZEZhaWxPbk1pc3NpbmdGaWxlOiBmYWxzZSxcbiAgICAgICAgc2hvdWxkVXBkYXRlRmlsZW5hbWVBbGlhczogc2V0dGluZ3Muc2hvdWxkVXBkYXRlRmlsZW5hbWVBbGlhc2VzXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgaWYgKCFnZXRGaWxlT3JOdWxsKGFwcCwgbmV3UGF0aCkpIHtcbiAgICAgIGxldCBpbnRlcnJ1cHRlZFJlbmFtZXMgPSBpbnRlcnJ1cHRlZFJlbmFtZXNNYXAuZ2V0KG5ld1BhdGgpO1xuICAgICAgaWYgKCFpbnRlcnJ1cHRlZFJlbmFtZXMpIHtcbiAgICAgICAgaW50ZXJydXB0ZWRSZW5hbWVzID0gW107XG4gICAgICAgIGludGVycnVwdGVkUmVuYW1lc01hcC5zZXQobmV3UGF0aCwgaW50ZXJydXB0ZWRSZW5hbWVzKTtcbiAgICAgIH1cbiAgICAgIGludGVycnVwdGVkUmVuYW1lcy5wdXNoKHtcbiAgICAgICAgY29tYmluZWRCYWNrbGlua3NNYXAsXG4gICAgICAgIG9sZFBhdGhcbiAgICAgIH0pO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICByZXN0b3JlVXBkYXRlQWxsTGlua3MoKTtcbiAgICBjb25zdCBvcnBoYW5LZXlzID0gQXJyYXkuZnJvbShoYW5kbGVkUmVuYW1lcyk7XG4gICAgYWRkVG9RdWV1ZShhcHAsICgpID0+IHtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIG9ycGhhbktleXMpIHtcbiAgICAgICAgaGFuZGxlZFJlbmFtZXMuZGVsZXRlKGtleSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlUmVuYW1lSWZFbmFibGVkKHBsdWdpbjogUGx1Z2luLCBmaWxlOiBUQWJzdHJhY3RGaWxlLCBvbGRQYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKCFzaG91bGRJbnZva2VIYW5kbGVyKHBsdWdpbikpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKCFpc0ZpbGUoZmlsZSkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgbmV3UGF0aCA9IGZpbGUucGF0aDtcbiAgaGFuZGxlUmVuYW1lKHBsdWdpbi5hcHAsIG9sZFBhdGgsIG5ld1BhdGgpO1xufVxuXG5mdW5jdGlvbiBpbml0QmFja2xpbmtzTWFwKHNpbmdsZUJhY2tsaW5rc01hcDogTWFwPHN0cmluZywgUmVmZXJlbmNlW10+LCByZW5hbWVNYXA6IE1hcDxzdHJpbmcsIHN0cmluZz4sIGNvbWJpbmVkQmFja2xpbmtzTWFwOiBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBzdHJpbmc+PiwgcGF0aDogc3RyaW5nKTogdm9pZCB7XG4gIGZvciAoY29uc3QgW2JhY2tsaW5rUGF0aCwgbGlua3NdIG9mIHNpbmdsZUJhY2tsaW5rc01hcC5lbnRyaWVzKCkpIHtcbiAgICBjb25zdCBuZXdCYWNrbGlua1BhdGggPSByZW5hbWVNYXAuZ2V0KGJhY2tsaW5rUGF0aCkgPz8gYmFja2xpbmtQYXRoO1xuICAgIGNvbnN0IGxpbmtKc29uVG9QYXRoTWFwID0gY29tYmluZWRCYWNrbGlua3NNYXAuZ2V0KG5ld0JhY2tsaW5rUGF0aCkgPz8gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgICBjb21iaW5lZEJhY2tsaW5rc01hcC5zZXQobmV3QmFja2xpbmtQYXRoLCBsaW5rSnNvblRvUGF0aE1hcCk7XG4gICAgZm9yIChjb25zdCBsaW5rIG9mIGxpbmtzKSB7XG4gICAgICBsaW5rSnNvblRvUGF0aE1hcC5zZXQodG9Kc29uKGxpbmspLCBwYXRoKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbG9nUmVnaXN0ZXJlZEhhbmRsZXJzKGFwcDogQXBwKTogdm9pZCB7XG4gIGNvbnN0IHJlbmFtZURlbGV0ZUhhbmRsZXJzTWFwID0gZ2V0UmVuYW1lRGVsZXRlSGFuZGxlcnNNYXAoYXBwKTtcbiAgZ2V0RGVidWdnZXIoJ29ic2lkaWFuLWRldi11dGlsczpSZW5hbWVEZWxldGVIYW5kbGVyOmxvZ1JlZ2lzdGVyZWRIYW5kbGVycycpKGBQbHVnaW5zIHdpdGggcmVnaXN0ZXJlZCByZW5hbWUvZGVsZXRlIGhhbmRsZXJzOiAke0pTT04uc3RyaW5naWZ5KEFycmF5LmZyb20ocmVuYW1lRGVsZXRlSGFuZGxlcnNNYXAua2V5cygpKSl9YCk7XG59XG5cbmZ1bmN0aW9uIG1ha2VLZXkob2xkUGF0aDogc3RyaW5nLCBuZXdQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCR7b2xkUGF0aH0gLT4gJHtuZXdQYXRofWA7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlbmFtZUhhbmRsZWQoYXBwOiBBcHAsIG9sZFBhdGg6IHN0cmluZywgbmV3UGF0aDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgbmV3UGF0aCA9IGdldFNhZmVSZW5hbWVQYXRoKGFwcCwgb2xkUGF0aCwgbmV3UGF0aCk7XG4gIGlmIChvbGRQYXRoID09PSBuZXdQYXRoKSB7XG4gICAgcmV0dXJuIG5ld1BhdGg7XG4gIH1cbiAgY29uc3Qga2V5ID0gbWFrZUtleShvbGRQYXRoLCBuZXdQYXRoKTtcbiAgaGFuZGxlZFJlbmFtZXMuYWRkKGtleSk7XG4gIG5ld1BhdGggPSBhd2FpdCByZW5hbWVTYWZlKGFwcCwgb2xkUGF0aCwgbmV3UGF0aCk7XG4gIHJldHVybiBuZXdQYXRoO1xufVxuXG5mdW5jdGlvbiBzaG91bGRJbnZva2VIYW5kbGVyKHBsdWdpbjogUGx1Z2luKTogYm9vbGVhbiB7XG4gIGNvbnN0IGFwcCA9IHBsdWdpbi5hcHA7XG4gIGNvbnN0IHBsdWdpbklkID0gcGx1Z2luLm1hbmlmZXN0LmlkO1xuXG4gIGNvbnN0IHJlbmFtZURlbGV0ZUhhbmRsZXJQbHVnaW5JZHMgPSBnZXRSZW5hbWVEZWxldGVIYW5kbGVyc01hcChhcHApO1xuICBjb25zdCBtYWluUGx1Z2luSWQgPSBBcnJheS5mcm9tKHJlbmFtZURlbGV0ZUhhbmRsZXJQbHVnaW5JZHMua2V5cygpKVswXTtcbiAgaWYgKG1haW5QbHVnaW5JZCAhPT0gcGx1Z2luSWQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBWUEsMkJBQXVCO0FBQ3ZCLHNCQUlPO0FBT1AsbUJBQTRCO0FBQzVCLHNCQUEwQjtBQUMxQixvQkFHTztBQUNQLGtCQU9PO0FBQ1AsaUJBQXlDO0FBQ3pDLDRCQUdPO0FBQ1Asd0JBT087QUFDUCxrQkFLTztBQUNQLDJCQUlPO0FBQ1AsbUJBQTJCO0FBQzNCLG1CQUdPO0FBQ1AscUJBR087QUFFUCxNQUFNLDBCQUEwQixvQkFBSSxJQUE0QjtBQUNoRSxNQUFNLGlCQUFpQixvQkFBSSxJQUFZO0FBQ3ZDLE1BQU0s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O0FBQUEsRUFDRjtBQUNBLE1BQUksS0FBQywwQkFBTyxJQUFJLEdBQUc7QUFDakI7QUFBQSxFQUNGO0FBQ0EsUUFBTSxVQUFVLEtBQUs7QUFDckIsZUFBYSxPQUFPLEtBQUssU0FBUyxPQUFPO0FBQzNDO0FBRUEsU0FBUyxpQkFBaUIsb0JBQThDLFdBQWdDLHNCQUF3RCxNQUFvQjtBQUNsTCxhQUFXLENBQUMsY0FBYyxLQUFLLEtBQUssbUJBQW1CLFFBQVEsR0FBRztBQUNoRSxVQUFNLGtCQUFrQixVQUFVLElBQUksWUFBWSxLQUFLO0FBQ3ZELFVBQU0sb0JBQW9CLHFCQUFxQixJQUFJLGVBQWUsS0FBSyxvQkFBSSxJQUFvQjtBQUMvRix5QkFBcUIsSUFBSSxpQkFBaUIsaUJBQWlCO0FBQzNELGVBQVcsUUFBUSxPQUFPO0FBQ3hCLHdCQUFrQixRQUFJLHNCQUFPLElBQUksR0FBRyxJQUFJO0FBQUEsSUFDMUM7QUFBQSxFQUNGO0FBQ0Y7QUFFQSxTQUFTLHNCQUFzQixLQUFnQjtBQUM3QyxRQUFNLDBCQUEwQiwyQkFBMkIsR0FBRztBQUM5RCxnQ0FBWSw4REFBOEQsRUFBRSxtREFBbUQsS0FBSyxVQUFVLE1BQU0sS0FBSyx3QkFBd0IsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO0FBQzdMO0FBRUEsU0FBUyxRQUFRLFNBQWlCLFNBQXlCO0FBQ3pELFNBQU8sR0FBRyxPQUFPLE9BQU8sT0FBTztBQUNqQztBQUVBLGVBQWUsY0FBYyxLQUFVLFNBQWlCLFNBQWtDO0FBQ3hGLGdCQUFVLGdDQUFrQixLQUFLLFNBQVMsT0FBTztBQUNqRCxNQUFJLFlBQVksU0FBUztBQUN2QixXQUFPO0FBQUEsRUFDVDtBQUNBLFFBQU0sTUFBTSxRQUFRLFNBQVMsT0FBTztBQUNwQyxpQkFBZSxJQUFJLEdBQUc7QUFDdEIsWUFBVSxVQUFNLHlCQUFXLEtBQUssU0FBUyxPQUFPO0FBQ2hELFNBQU87QUFDVDtBQUVBLFNBQVMsb0JBQW9CLFFBQXlCO0FBQ3BELFFBQU0sTUFBTSxPQUFPO0FBQ25CLFFBQU0sV0FBVyxPQUFPLFNBQVM7QUFFakMsUUFBTSwrQkFBK0IsMkJBQTJCLEdBQUc7QUFDbkUsUUFBTSxlQUFlLE1BQU0sS0FBSyw2QkFBNkIsS0FBSyxDQUFDLEVBQUUsQ0FBQztBQUN0RSxNQUFJLGlCQUFpQixVQUFVO0FBQzdCLFdBQU87QUFBQSxFQUNUO0FBQ0EsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogWyJpbnRlcnJ1cHRlZFJlbmFtZXMiXQp9Cg==
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "obsidian-dev-utils",
|
3
|
-
"version": "12.0.1-beta.
|
3
|
+
"version": "12.0.1-beta.4",
|
4
4
|
"description": "This is the collection of useful functions that you can use for your Obsidian plugin development",
|
5
5
|
"main": "./dist/lib/index.cjs",
|
6
6
|
"types": "./dist/lib/index.d.ts",
|