experimental-agent 0.8.0-alpha.2 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-5N2UOGXY.mjs +123 -0
- package/dist/chunk-HPBAZJLN.mjs +242 -0
- package/dist/{chunk-EH4L2CPW.mjs → chunk-HVZTAMAX.mjs} +2 -10
- package/dist/{client-DIanpEQ_.d.ts → client-BY6gceox.d.ts} +0 -6
- package/dist/{client-PuttJd6O.d.mts → client-BaItaOx5.d.mts} +0 -6
- package/dist/{framework-DH4Z1NLV.d.ts → framework-DSe3sdP_.d.ts} +5 -0
- package/dist/{framework-c9fvEy0o.d.mts → framework-VPUsYNMf.d.mts} +5 -0
- package/dist/framework-runtime.d.mts +3 -3
- package/dist/framework-runtime.d.ts +3 -3
- package/dist/framework-runtime.js +33 -15
- package/dist/framework-runtime.mjs +33 -7
- package/dist/framework.d.mts +4 -4
- package/dist/framework.d.ts +4 -4
- package/dist/framework.js +45 -2
- package/dist/framework.mjs +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -10
- package/dist/index.mjs +1 -1
- package/dist/next/agents.d.mts +1 -1
- package/dist/next/agents.d.ts +1 -1
- package/dist/next/agents.js +45 -2
- package/dist/next/agents.mjs +2 -2
- package/dist/next/loader.js +2 -2
- package/dist/next/loader.mjs +1 -1
- package/dist/next.js +5 -3
- package/dist/next.mjs +5 -3
- package/dist/react.d.mts +1 -1
- package/dist/react.d.ts +1 -1
- package/dist/{resolve-BZ26gcyj.d.ts → resolve-DCys_2es.d.ts} +17 -4
- package/dist/{resolve-Cma6YFgx.d.mts → resolve-YlI7Dugf.d.mts} +17 -4
- package/package.json +13 -13
- package/dist/chunk-DO4HKPHR.mjs +0 -199
- package/dist/chunk-LMYEJDMD.mjs +0 -123
package/dist/index.mjs
CHANGED
package/dist/next/agents.d.mts
CHANGED
package/dist/next/agents.d.ts
CHANGED
package/dist/next/agents.js
CHANGED
|
@@ -64,6 +64,20 @@ function inlineEntry(opts) {
|
|
|
64
64
|
});
|
|
65
65
|
parts.push(` import: () => import(${JSON.stringify(relativePath)})`);
|
|
66
66
|
}
|
|
67
|
+
if (opts.agent.tools.length > 0) {
|
|
68
|
+
const toolLines = opts.agent.tools.map((tool) => {
|
|
69
|
+
const rel = relativeImportPath({
|
|
70
|
+
from: opts.outputDir,
|
|
71
|
+
to: tool.importPath
|
|
72
|
+
});
|
|
73
|
+
return ` ${JSON.stringify(tool.name)}: () => import(${JSON.stringify(rel)})`;
|
|
74
|
+
});
|
|
75
|
+
parts.push(` imports: {
|
|
76
|
+
tools: {
|
|
77
|
+
${toolLines.join(",\n")}
|
|
78
|
+
}
|
|
79
|
+
}`);
|
|
80
|
+
}
|
|
67
81
|
return ` ${JSON.stringify(opts.agent.name)}: {
|
|
68
82
|
${parts.join(",\n")}
|
|
69
83
|
},`;
|
|
@@ -174,10 +188,39 @@ function getSystemPrompt(agentDir) {
|
|
|
174
188
|
}
|
|
175
189
|
return parts.length > 0 ? parts.join("\n\n") : void 0;
|
|
176
190
|
}
|
|
191
|
+
function getTools(agentDir) {
|
|
192
|
+
const toolsDir = path2.join(agentDir, "tools");
|
|
193
|
+
const entries = listDir(toolsDir);
|
|
194
|
+
const tools = [];
|
|
195
|
+
for (const entry of entries.sort()) {
|
|
196
|
+
const absolutePath = path2.join(toolsDir, entry);
|
|
197
|
+
if (isDirectory(absolutePath)) {
|
|
198
|
+
const indexFile = findIndexFile(absolutePath);
|
|
199
|
+
if (indexFile) {
|
|
200
|
+
tools.push({ name: entry, importPath: indexFile });
|
|
201
|
+
}
|
|
202
|
+
} else if (TS_EXT.test(entry)) {
|
|
203
|
+
const name = entry.replace(TS_EXT, "");
|
|
204
|
+
tools.push({ name, importPath: absolutePath });
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return tools;
|
|
208
|
+
}
|
|
209
|
+
function findIndexFile(dir) {
|
|
210
|
+
const extensions = [".ts", ".js", ".mts", ".mjs"];
|
|
211
|
+
for (const ext of extensions) {
|
|
212
|
+
const candidate = path2.join(dir, `index${ext}`);
|
|
213
|
+
if (fileExists(candidate)) {
|
|
214
|
+
return candidate;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return null;
|
|
218
|
+
}
|
|
177
219
|
function scanAgent(agentDir) {
|
|
178
220
|
const { skills, tsSkillImportPaths } = getSkills(agentDir.absolutePath);
|
|
179
221
|
const systemPrompt = getSystemPrompt(agentDir.absolutePath);
|
|
180
|
-
|
|
222
|
+
const tools = getTools(agentDir.absolutePath);
|
|
223
|
+
return { ...agentDir, skills, systemPrompt, tsSkillImportPaths, tools };
|
|
181
224
|
}
|
|
182
225
|
function findAgentsRoot(cwd, userDefinedAgentsDir) {
|
|
183
226
|
if (userDefinedAgentsDir) {
|
|
@@ -361,4 +404,4 @@ function withAgents(config, agentsConfig = {}) {
|
|
|
361
404
|
0 && (module.exports = {
|
|
362
405
|
withAgents
|
|
363
406
|
});
|
|
364
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2ZyYW1ld29yay1uZXh0L2FnZW50cy1wbHVnaW4udHMiLCAiLi4vLi4vc3JjL2ZyYW1ld29yay9nZW5lcmF0ZS50cyIsICIuLi8uLi9zcmMvZnJhbWV3b3JrL3NjYW4udHMiLCAiLi4vLi4vc3JjL2ZyYW1ld29yay9mcmFtZXdvcmsudHMiLCAiLi4vLi4vc3JjL2ZyYW1ld29yay1uZXh0L25leHQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IEZyYW1ld29yayB9IGZyb20gXCIuLi9mcmFtZXdvcmsvZnJhbWV3b3JrXCI7XG5pbXBvcnQgeyBOZXh0LCB0eXBlIE5leHRDb25maWdJbnB1dCB9IGZyb20gXCIuL25leHRcIjtcblxuZXhwb3J0IHR5cGUgeyBOZXh0Q29uZmlnSW5wdXQsIFdpdGhBZ2VudHNDb25maWcgfSBmcm9tIFwiLi9uZXh0XCI7XG5cbi8qKlxuICogTmV4dC5qcyBjb25maWcgd3JhcHBlciB0aGF0IGRpc2NvdmVycyBhZ2VudHMgb24gdGhlIGZpbGVzeXN0ZW0gYW5kXG4gKiBnZW5lcmF0ZXMgdGhlIHJvdXRlIGhhbmRsZXIgKyByZWdpc3RyeSBmaWxlcyBuZWVkZWQgdG8gc2VydmUgdGhlbS5cbiAqXG4gKiBDYWxsIHRoaXMgaW4gYG5leHQuY29uZmlnLnRzYDpcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IHdpdGhBZ2VudHMgfSBmcm9tIFwiZXhwZXJpbWVudGFsLWFnZW50L25leHQvYWdlbnRzXCI7XG4gKlxuICogZXhwb3J0IGRlZmF1bHQgd2l0aEFnZW50cyh7IHJlYWN0U3RyaWN0TW9kZTogdHJ1ZSB9KTtcbiAqIGBgYFxuICpcbiAqIERlYnVnIGxvZ3M6XG4gKiBgYGB0c1xuICogaW1wb3J0IHsgd2l0aEFnZW50cyB9IGZyb20gXCJleHBlcmltZW50YWwtYWdlbnQvbmV4dC9hZ2VudHNcIjtcbiAqXG4gKiBleHBvcnQgZGVmYXVsdCB3aXRoQWdlbnRzKHsgcmVhY3RTdHJpY3RNb2RlOiB0cnVlIH0sIHsgZGVidWc6IHRydWUgfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhBZ2VudHMoXG4gIGNvbmZpZzogTmV4dENvbmZpZ0lucHV0LFxuICBhZ2VudHNDb25maWc6IFBpY2s8XG4gICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBGcmFtZXdvcms+WzBdLFxuICAgIFwiYWdlbnRzRGlyXCIgfCBcImRlYnVnXCJcbiAgPiA9IHt9XG4pOiBOZXh0Q29uZmlnSW5wdXQge1xuICBjb25zdCBmcmFtZXdvcmsgPSBuZXcgRnJhbWV3b3JrKGFnZW50c0NvbmZpZyk7XG4gIGNvbnN0IG5leHQgPSBuZXcgTmV4dChmcmFtZXdvcmspO1xuICBuZXh0LndyaXRlRmlsZXMoKTtcblxuICByZXR1cm4gY29uZmlnO1xufVxuIiwgImltcG9ydCAqIGFzIGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgU2Nhbm5lZEFnZW50IH0gZnJvbSBcIi4vc2NhblwiO1xuXG5jb25zdCBUU19JTVBPUlRfRVhUID0gL1xcLih0c3xtdHMpJC87XG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVSZWdpc3RyeShvcHRzOiB7XG4gIGFnZW50czogU2Nhbm5lZEFnZW50W107XG4gIG91dHB1dERpcjogc3RyaW5nO1xufSk6IHN0cmluZyB7XG4gIGNvbnN0IGVudHJpZXMgPSBvcHRzLmFnZW50cy5tYXAoKGFnZW50KSA9PlxuICAgIGlubGluZUVudHJ5KHsgYWdlbnQsIG91dHB1dERpcjogb3B0cy5vdXRwdXREaXIgfSlcbiAgKTtcblxuICByZXR1cm4gW1xuICAgIFwiLy8gQXV0by1nZW5lcmF0ZWQgYnkgd2l0aEFnZW50cyAtIGRvIG5vdCBlZGl0XCIsXG4gICAgJ2ltcG9ydCB0eXBlIHsgQWdlbnRSZWdpc3RyeSB9IGZyb20gXCJleHBlcmltZW50YWwtYWdlbnQvZnJhbWV3b3JrXCI7JyxcbiAgICBcIlwiLFxuICAgIFwiZXhwb3J0IGNvbnN0IGFnZW50cyA9IHtcIixcbiAgICAuLi5lbnRyaWVzLFxuICAgIFwifSBzYXRpc2ZpZXMgQWdlbnRSZWdpc3RyeTtcIixcbiAgICBcIlwiLFxuICBdLmpvaW4oXCJcXG5cIik7XG59XG5cbmZ1bmN0aW9uIGlubGluZUVudHJ5KG9wdHM6IHtcbiAgYWdlbnQ6IFNjYW5uZWRBZ2VudDtcbiAgb3V0cHV0RGlyOiBzdHJpbmc7XG59KTogc3RyaW5nIHtcbiAgY29uc3QgY29uZmlnID0gYnVpbGRDb25maWcob3B0cy5hZ2VudCk7XG4gIGNvbnN0IGNvbmZpZ1N0ciA9IEpTT04uc3RyaW5naWZ5KGNvbmZpZywgbnVsbCwgMilcbiAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAubWFwKChsaW5lLCBpKSA9PiAoaSA9PT0gMCA/IGxpbmUgOiBgICAgICAgJHtsaW5lfWApKVxuICAgIC5qb2luKFwiXFxuXCIpO1xuXG4gIGNvbnN0IHBhcnRzID0gW2AgICAgY29uZmlnOiAke2NvbmZpZ1N0cn1gXTtcblxuICBpZiAob3B0cy5hZ2VudC5oYXNBZ2VudENvbmZpZykge1xuICAgIGNvbnN0IGNvbmZpZ1BhdGggPSBmaW5kQWdlbnRDb25maWdQYXRoKG9wdHMuYWdlbnQuYWJzb2x1dGVQYXRoKTtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSByZWxhdGl2ZUltcG9ydFBhdGgoe1xuICAgICAgZnJvbTogb3B0cy5vdXRwdXREaXIsXG4gICAgICB0bzogY29uZmlnUGF0aCxcbiAgICB9KTtcbiAgICBwYXJ0cy5wdXNoKGAgICAgaW1wb3J0OiAoKSA9PiBpbXBvcnQoJHtKU09OLnN0cmluZ2lmeShyZWxhdGl2ZVBhdGgpfSlgKTtcbiAgfVxuXG4gIHJldHVybiBgICAke0pTT04uc3RyaW5naWZ5KG9wdHMuYWdlbnQubmFtZSl9OiB7XFxuJHtwYXJ0cy5qb2luKFwiLFxcblwiKX1cXG4gIH0sYDtcbn1cblxuZnVuY3Rpb24gYnVpbGRDb25maWcoYWdlbnQ6IFNjYW5uZWRBZ2VudCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgY29uc3QgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXG4gIGlmIChhZ2VudC5zeXN0ZW1Qcm9tcHQpIHtcbiAgICBjb25maWcuc3lzdGVtID0gYWdlbnQuc3lzdGVtUHJvbXB0O1xuICB9XG5cbiAgaWYgKGFnZW50LnNraWxscy5sZW5ndGggPiAwKSB7XG4gICAgY29uZmlnLnNraWxscyA9IGFnZW50LnNraWxscztcbiAgfVxuXG4gIHJldHVybiBjb25maWc7XG59XG5cbmZ1bmN0aW9uIGZpbmRBZ2VudENvbmZpZ1BhdGgoYWdlbnREaXI6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGV4dGVuc2lvbnMgPSBbXCIudHNcIiwgXCIuanNcIiwgXCIubXRzXCIsIFwiLm1qc1wiXTtcbiAgZm9yIChjb25zdCBleHQgb2YgZXh0ZW5zaW9ucykge1xuICAgIGNvbnN0IGNhbmRpZGF0ZSA9IHBhdGguam9pbihhZ2VudERpciwgYGFnZW50JHtleHR9YCk7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoY2FuZGlkYXRlKSkge1xuICAgICAgcmV0dXJuIGNhbmRpZGF0ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBhdGguam9pbihhZ2VudERpciwgXCJhZ2VudFwiKTtcbn1cblxuZnVuY3Rpb24gcmVsYXRpdmVJbXBvcnRQYXRoKG9wdHM6IHsgZnJvbTogc3RyaW5nOyB0bzogc3RyaW5nIH0pOiBzdHJpbmcge1xuICBsZXQgcmVsID0gcGF0aC5yZWxhdGl2ZShvcHRzLmZyb20sIG9wdHMudG8pLnJlcGxhY2UoL1xcXFwvZywgXCIvXCIpO1xuICByZWwgPSByZWwucmVwbGFjZShUU19JTVBPUlRfRVhULCBcIlwiKTtcbiAgaWYgKCFyZWwuc3RhcnRzV2l0aChcIi5cIikpIHtcbiAgICByZWwgPSBgLi8ke3JlbH1gO1xuICB9XG4gIHJldHVybiByZWw7XG59XG5cbiIsICJpbXBvcnQgKiBhcyBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgdHlwZSB7IEhvc3RTa2lsbElucHV0LCBTa2lsbElucHV0IH0gZnJvbSBcIi4uL3NraWxscy90eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBBZ2VudERpciA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBhYnNvbHV0ZVBhdGg6IHN0cmluZztcbiAgaGFzQWdlbnRDb25maWc6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBTY2FubmVkQWdlbnQgPSBBZ2VudERpciAmIHtcbiAgc2tpbGxzOiBTa2lsbElucHV0W107XG4gIHN5c3RlbVByb21wdDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB0c1NraWxsSW1wb3J0UGF0aHM6IHN0cmluZ1tdO1xufTtcblxuY29uc3QgQUdFTlRfQ09ORklHX0ZJTEVTID0gW1wiYWdlbnQudHNcIiwgXCJhZ2VudC5qc1wiLCBcImFnZW50Lm10c1wiLCBcImFnZW50Lm1qc1wiXTtcbmNvbnN0IE1EX0VYVCA9IC9cXC5tZCQvO1xuY29uc3QgVFNfRVhUID0gL1xcLih0c3xqc3xtdHN8bWpzKSQvO1xuXG5leHBvcnQgZnVuY3Rpb24gbGlzdERpcihkaXI6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgaWYgKCFmcy5leGlzdHNTeW5jKGRpcikpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIGZzLnJlYWRkaXJTeW5jKGRpcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkRmlsZShmaWxlUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgXCJ1dGYtOFwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVFeGlzdHMoZmlsZVBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gZnMuZXhpc3RzU3luYyhmaWxlUGF0aCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RpcmVjdG9yeShmaWxlUGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBmcy5leGlzdHNTeW5jKGZpbGVQYXRoKSAmJiBmcy5zdGF0U3luYyhmaWxlUGF0aCkuaXNEaXJlY3RvcnkoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc2NvdmVyQWdlbnREaXJzKGFnZW50c1Jvb3Q6IHN0cmluZyk6IEFnZW50RGlyW10ge1xuICBjb25zdCBlbnRyaWVzID0gbGlzdERpcihhZ2VudHNSb290KTtcbiAgY29uc3QgZGlyczogQWdlbnREaXJbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgIGNvbnN0IGFic29sdXRlUGF0aCA9IHBhdGguam9pbihhZ2VudHNSb290LCBlbnRyeSk7XG4gICAgaWYgKCFpc0RpcmVjdG9yeShhYnNvbHV0ZVBhdGgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKGVudHJ5LnN0YXJ0c1dpdGgoXCIuXCIpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBkaXJzLnB1c2goe1xuICAgICAgbmFtZTogZW50cnksXG4gICAgICBhYnNvbHV0ZVBhdGgsXG4gICAgICBoYXNBZ2VudENvbmZpZzogaGFzQWdlbnRDb25maWcoYWJzb2x1dGVQYXRoKSxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBkaXJzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzQWdlbnRDb25maWcoYWdlbnREaXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gQUdFTlRfQ09ORklHX0ZJTEVTLnNvbWUoKGYpID0+IGZpbGVFeGlzdHMocGF0aC5qb2luKGFnZW50RGlyLCBmKSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2tpbGxzKGFnZW50RGlyOiBzdHJpbmcpOiB7XG4gIHNraWxsczogU2tpbGxJbnB1dFtdO1xuICB0c1NraWxsSW1wb3J0UGF0aHM6IHN0cmluZ1tdO1xufSB7XG4gIGNvbnN0IHNraWxsc0RpciA9IHBhdGguam9pbihhZ2VudERpciwgXCJza2lsbHNcIik7XG4gIGNvbnN0IGVudHJpZXMgPSBsaXN0RGlyKHNraWxsc0Rpcik7XG4gIGNvbnN0IHNraWxsczogU2tpbGxJbnB1dFtdID0gW107XG4gIGNvbnN0IHRzU2tpbGxJbXBvcnRQYXRoczogc3RyaW5nW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMuc29ydCgpKSB7XG4gICAgY29uc3QgYWJzb2x1dGVQYXRoID0gcGF0aC5qb2luKHNraWxsc0RpciwgZW50cnkpO1xuXG4gICAgaWYgKE1EX0VYVC50ZXN0KGVudHJ5KSkge1xuICAgICAgc2tpbGxzLnB1c2goe1xuICAgICAgICB0eXBlOiBcImhvc3RcIixcbiAgICAgICAgcGF0aDogYWJzb2x1dGVQYXRoLFxuICAgICAgfSBzYXRpc2ZpZXMgSG9zdFNraWxsSW5wdXQpO1xuICAgIH0gZWxzZSBpZiAoVFNfRVhULnRlc3QoZW50cnkpKSB7XG4gICAgICB0c1NraWxsSW1wb3J0UGF0aHMucHVzaChhYnNvbHV0ZVBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IHNraWxscywgdHNTa2lsbEltcG9ydFBhdGhzIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTeXN0ZW1Qcm9tcHQoYWdlbnREaXI6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHN5c3RlbURpciA9IHBhdGguam9pbihhZ2VudERpciwgXCJzeXN0ZW1cIik7XG4gIGNvbnN0IGVudHJpZXMgPSBsaXN0RGlyKHN5c3RlbURpcik7XG4gIGNvbnN0IG1kRmlsZXMgPSBlbnRyaWVzLmZpbHRlcigoZSkgPT4gTURfRVhULnRlc3QoZSkpLnNvcnQoKTtcblxuICBpZiAobWRGaWxlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgZmlsZSBvZiBtZEZpbGVzKSB7XG4gICAgY29uc3QgY29udGVudCA9IHJlYWRGaWxlKHBhdGguam9pbihzeXN0ZW1EaXIsIGZpbGUpKS50cmltKCk7XG4gICAgaWYgKGNvbnRlbnQpIHtcbiAgICAgIHBhcnRzLnB1c2goY29udGVudCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHBhcnRzLmxlbmd0aCA+IDAgPyBwYXJ0cy5qb2luKFwiXFxuXFxuXCIpIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2NhbkFnZW50KGFnZW50RGlyOiBBZ2VudERpcik6IFNjYW5uZWRBZ2VudCB7XG4gIGNvbnN0IHsgc2tpbGxzLCB0c1NraWxsSW1wb3J0UGF0aHMgfSA9IGdldFNraWxscyhhZ2VudERpci5hYnNvbHV0ZVBhdGgpO1xuICBjb25zdCBzeXN0ZW1Qcm9tcHQgPSBnZXRTeXN0ZW1Qcm9tcHQoYWdlbnREaXIuYWJzb2x1dGVQYXRoKTtcblxuICByZXR1cm4geyAuLi5hZ2VudERpciwgc2tpbGxzLCBzeXN0ZW1Qcm9tcHQsIHRzU2tpbGxJbXBvcnRQYXRocyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZEFnZW50c1Jvb3QoXG4gIGN3ZDogc3RyaW5nLFxuICB1c2VyRGVmaW5lZEFnZW50c0Rpcjogc3RyaW5nIHwgdW5kZWZpbmVkXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKHVzZXJEZWZpbmVkQWdlbnRzRGlyKSB7XG4gICAgcmV0dXJuIHBhdGgucmVzb2x2ZShjd2QsIHVzZXJEZWZpbmVkQWdlbnRzRGlyKTtcbiAgfVxuICBjb25zdCBjYW5kaWRhdGVzID0gW1xuICAgIHBhdGguam9pbihjd2QsIFwic3JjXCIsIFwiYWdlbnRzXCIpLFxuICAgIHBhdGguam9pbihjd2QsIFwiYWdlbnRzXCIpLFxuICBdO1xuXG4gIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICBpZiAoaXNEaXJlY3RvcnkoY2FuZGlkYXRlKSkge1xuICAgICAgcmV0dXJuIGNhbmRpZGF0ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbiIsICJpbXBvcnQgeyBnZW5lcmF0ZVJlZ2lzdHJ5IH0gZnJvbSBcIi4vZ2VuZXJhdGVcIjtcbmltcG9ydCB0eXBlIHsgU2Nhbm5lZEFnZW50IH0gZnJvbSBcIi4vc2NhblwiO1xuaW1wb3J0IHsgZGlzY292ZXJBZ2VudERpcnMsIGZpbmRBZ2VudHNSb290LCBzY2FuQWdlbnQgfSBmcm9tIFwiLi9zY2FuXCI7XG5cbi8qKlxuICogRnJhbWV3b3JrLWFnbm9zdGljIGNvcmUgZm9yIGZpbGVzeXN0ZW0tYmFzZWQgYWdlbnQgZGlzY292ZXJ5IGFuZFxuICogcmVnaXN0cnkgY29kZSBnZW5lcmF0aW9uLiBBZGFwdGVycyBsaWtlIHtAbGluayBOZXh0fSByZWNlaXZlIGFcbiAqIGBGcmFtZXdvcmtgIGluc3RhbmNlIGFuZCB1c2UgaXQgdG8gc2NhbiBhZ2VudHMgYW5kIHByb2R1Y2UgcmVnaXN0cnlcbiAqIHNvdXJjZSBjb2RlLlxuICovXG5leHBvcnQgY2xhc3MgRnJhbWV3b3JrIHtcbiAgcmVhZG9ubHkgY3dkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFnZW50c0Rpcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICByZWFkb25seSBsb2c6ICguLi5hcmdzOiB1bmtub3duW10pID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3Iob3B0czoge1xuICAgIC8qKlxuICAgICAqIFByb2plY3Qgcm9vdCBkaXJlY3RvcnkuXG4gICAgICogQGRlZmF1bHRWYWx1ZSBgcHJvY2Vzcy5jd2QoKWBcbiAgICAgKi9cbiAgICBjd2Q/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogUGF0aCB0byB0aGUgYWdlbnRzIGRpcmVjdG9yeSwgcmVsYXRpdmUgdG8gYGN3ZGAuXG4gICAgICogV2hlbiBvbWl0dGVkLCBhdXRvLWRldGVjdGVkIGFzIHRoZSBmaXJzdCBleGlzdGluZyBkaXJlY3RvcnlcbiAgICAgKiBhbW9uZyBgc3JjL2FnZW50c2AgYW5kIGBhZ2VudHNgLlxuICAgICAqL1xuICAgIGFnZW50c0Rpcj86IHN0cmluZztcbiAgICAvKiogRW5hYmxlIHZlcmJvc2UgbG9nZ2luZyB0byBzdGRvdXQuICovXG4gICAgZGVidWc/OiBib29sZWFuO1xuICB9KSB7XG4gICAgdGhpcy5jd2QgPSBvcHRzLmN3ZCA/PyBwcm9jZXNzLmN3ZCgpO1xuICAgIHRoaXMuYWdlbnRzRGlyID0gb3B0cy5hZ2VudHNEaXI7XG4gICAgdGhpcy5sb2cgPSBvcHRzLmRlYnVnXG4gICAgICA/IGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSwgXCJbRnJhbWV3b3JrXVwiKVxuICAgICAgOiAoKSA9PiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogU2NhbiB0aGUgYWdlbnRzIGRpcmVjdG9yeSBhbmQgcmV0dXJuIG1ldGFkYXRhIGZvciBldmVyeSBhZ2VudCBmb3VuZC5cbiAgICogRWFjaCBzdWJmb2xkZXIgaW5zaWRlIHRoZSBhZ2VudHMgZGlyZWN0b3J5IGJlY29tZXMgb25lIGFnZW50LlxuICAgKiBSZXR1cm5zIGFuIGVtcHR5IGFycmF5IHdoZW4gbm8gYWdlbnRzIGRpcmVjdG9yeSBleGlzdHMuXG4gICAqL1xuICBkaXNjb3ZlckFnZW50cygpOiBTY2FubmVkQWdlbnRbXSB7XG4gICAgY29uc3Qgcm9vdCA9IGZpbmRBZ2VudHNSb290KHRoaXMuY3dkLCB0aGlzLmFnZW50c0Rpcik7XG4gICAgaWYgKCFyb290KSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IGRpcnMgPSBkaXNjb3ZlckFnZW50RGlycyhyb290KTtcbiAgICByZXR1cm4gZGlycy5tYXAoc2NhbkFnZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSB0aGUgVHlwZVNjcmlwdCBzb3VyY2UgZm9yIGFuIGFnZW50IHJlZ2lzdHJ5IG1vZHVsZS5cbiAgICpcbiAgICogQHBhcmFtIG9wdHMuYWdlbnRzIC0gU2Nhbm5lZCBhZ2VudHMgdG8gaW5jbHVkZSBpbiB0aGUgcmVnaXN0cnkuXG4gICAqIEBwYXJhbSBvcHRzLm91dHB1dERpciAtIERpcmVjdG9yeSB3aGVyZSB0aGUgcmVnaXN0cnkgZmlsZSB3aWxsIGJlIHdyaXR0ZW5cbiAgICogICAodXNlZCB0byBjb21wdXRlIHJlbGF0aXZlIGltcG9ydCBwYXRocyB0byBlYWNoIGFnZW50J3MgY29uZmlnIG1vZHVsZSkuXG4gICAqIEByZXR1cm5zIFRoZSBmdWxsIHNvdXJjZSB0ZXh0IG9mIHRoZSBnZW5lcmF0ZWQgYF9yZWdpc3RyeS50c2AgZmlsZS5cbiAgICovXG4gIGdlbmVyYXRlUmVnaXN0cnlTb3VyY2UgPSBnZW5lcmF0ZVJlZ2lzdHJ5O1xufVxuIiwgImltcG9ydCAqIGFzIGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgTmV4dENvbmZpZyB9IGZyb20gXCJuZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEZyYW1ld29yayB9IGZyb20gXCIuLi9mcmFtZXdvcmsvZnJhbWV3b3JrXCI7XG5cbi8qKiBBIE5leHQuanMgY29uZmlnIG9iamVjdCBvciBhc3luYyBjb25maWcgZnVuY3Rpb24uICovXG5leHBvcnQgdHlwZSBOZXh0Q29uZmlnSW5wdXQgPVxuICB8IE5leHRDb25maWdcbiAgfCAoKFxuICAgICAgcGhhc2U6IHN0cmluZyxcbiAgICAgIGN0eDogeyBkZWZhdWx0Q29uZmlnOiBOZXh0Q29uZmlnIH1cbiAgICApID0+IFByb21pc2U8TmV4dENvbmZpZz4pO1xuXG4vKiogT3B0aW9ucyBmb3Ige0BsaW5rIHdpdGhBZ2VudHN9LiAqL1xuZXhwb3J0IHR5cGUgV2l0aEFnZW50c0NvbmZpZyA9IHtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGFnZW50cyBkaXJlY3RvcnksIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHJvb3QuXG4gICAqIFdoZW4gb21pdHRlZCwgYXV0by1kZXRlY3RlZCBhcyB0aGUgZmlyc3QgZXhpc3RpbmcgZGlyZWN0b3J5XG4gICAqIGFtb25nIGBzcmMvYWdlbnRzYCBhbmQgYGFnZW50c2AuXG4gICAqL1xuICBhZ2VudHNEaXI/OiBzdHJpbmc7XG4gIC8qKiBFbmFibGUgdmVyYm9zZSBsb2dnaW5nIHRvIHN0ZG91dC4gKi9cbiAgZGVidWc/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBOZXh0LmpzIGFkYXB0ZXIgZm9yIGZpbGVzeXN0ZW0tYmFzZWQgYWdlbnQgcm91dGluZy5cbiAqXG4gKiBSZWNlaXZlcyBhIHtAbGluayBGcmFtZXdvcmt9IGluc3RhbmNlIChjb21wb3NpdGlvbikgYW5kIHVzZXMgaXQgdG9cbiAqIGRpc2NvdmVyIGFnZW50cywgZ2VuZXJhdGUgYSByZWdpc3RyeSwgYW5kIHdyaXRlIHRoZSBOZXh0LmpzIHJvdXRlXG4gKiBoYW5kbGVyIGZpbGVzIHRoYXQgc2VydmUgdGhlbS5cbiAqXG4gKiBNb3N0IHVzZXJzIHNob3VsZCB1c2UgdGhlIHtAbGluayB3aXRoQWdlbnRzfSBoZWxwZXIgaW5zdGVhZCBvZlxuICogY29uc3RydWN0aW5nIHRoaXMgY2xhc3MgZGlyZWN0bHkuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBGcmFtZXdvcmsgfSBmcm9tIFwiZXhwZXJpbWVudGFsLWFnZW50L2ZyYW1ld29ya1wiO1xuICogaW1wb3J0IHsgTmV4dCB9IGZyb20gXCJleHBlcmltZW50YWwtYWdlbnQvbmV4dC9hZ2VudHNcIjtcbiAqXG4gKiBjb25zdCBmcmFtZXdvcmsgPSBuZXcgRnJhbWV3b3JrKHsgY3dkOiBwcm9jZXNzLmN3ZCgpIH0pO1xuICogbmV3IE5leHQoZnJhbWV3b3JrKS5nZW5lcmF0ZSgpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXh0IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmcmFtZXdvcms6IEZyYW1ld29yaykge31cblxuICBwcml2YXRlIGdldCBhcHBEaXIoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjd2QgPSB0aGlzLmZyYW1ld29yay5jd2Q7XG4gICAgY29uc3Qgc3JjQXBwRGlyID0gcGF0aC5qb2luKGN3ZCwgXCJzcmNcIiwgXCJhcHBcIik7XG4gICAgY29uc3Qgcm9vdEFwcERpciA9IHBhdGguam9pbihjd2QsIFwiYXBwXCIpO1xuXG4gICAgaWYgKHRoaXMuaGFzQXBwTGF5b3V0KHNyY0FwcERpcikpIHtcbiAgICAgIHJldHVybiBcInNyYy9hcHBcIjtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzQXBwTGF5b3V0KHJvb3RBcHBEaXIpKSB7XG4gICAgICByZXR1cm4gXCJhcHBcIjtcbiAgICB9XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoc3JjQXBwRGlyKSkge1xuICAgICAgcmV0dXJuIFwic3JjL2FwcFwiO1xuICAgIH1cbiAgICByZXR1cm4gXCJhcHBcIjtcbiAgfVxuXG4gIGdlbmVyYXRlTmV4dFJvdXRlSGFuZGxlclNvdXJjZShvcHRzOiB7IHJlZ2lzdHJ5SW1wb3J0UGF0aDogc3RyaW5nIH0pOiBzdHJpbmcge1xuICAgIHJldHVybiBgLy8gQXV0by1nZW5lcmF0ZWQgYnkgd2l0aEFnZW50cyAtIGRvIG5vdCBlZGl0XG4vLyBAdHMtbm9jaGVja1xuLy8gYmlvbWUtaWdub3JlIGZvcm1hdCwgbGludCwgbGludC9zdHlsZSwgbGludC9zdXNwaWNpb3VzLCBsaW50L2NvbXBsZXhpdHksIGxpbnQvcGVyZm9ybWFuY2UsIGxpbnQvc2VjdXJpdHksIGxpbnQvY29ycmVjdG5lc3MsIGxpbnQvc3RyaWN0XG4vLyBwcmV0dGllci1pZ25vcmVcblxuaW1wb3J0IHsgcnVudGltZSB9IGZyb20gXCJleHBlcmltZW50YWwtYWdlbnQvZnJhbWV3b3JrLXJ1bnRpbWVcIjtcbmltcG9ydCB7IGhhbmRsZVJlcXVlc3QgfSBmcm9tIFwiZXhwZXJpbWVudGFsLWFnZW50XCI7XG5pbXBvcnQgeyBhZ2VudHMgfSBmcm9tICR7SlNPTi5zdHJpbmdpZnkob3B0cy5yZWdpc3RyeUltcG9ydFBhdGgpfTtcblxuYXN5bmMgZnVuY3Rpb24gd29ya2Zsb3coYWdlbnQsIHNlc3Npb25JZCwgLi4uYXJncykge1xuICBcInVzZSB3b3JrZmxvd1wiO1xuICByZXR1cm4gYWdlbnQuc2Vzc2lvbihzZXNzaW9uSWQpLnNlbmQoLi4uYXJncyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoXG4gIHJlcTogUmVxdWVzdCxcbiAgY3R4OiB7IHBhcmFtczogUHJvbWlzZTx7IGFnZW50OiBzdHJpbmc7IHBhdGg/OiBzdHJpbmdbXSB9PiB9XG4pIHtcbiAgY29uc3QgcGFyYW1zID0gYXdhaXQgY3R4LnBhcmFtcztcbiAgY29uc3QgbmFtZSA9IHBhcmFtcy5hZ2VudDtcbiAgY29uc3QgaW5zdGFuY2UgPSBhd2FpdCBydW50aW1lLnJlc29sdmVBZ2VudCh7IG5hbWUsIGFnZW50cyB9KTtcblxuICBpZiAoIWluc3RhbmNlKSB7XG4gICAgY29uc3QgYXZhaWxhYmxlID0gT2JqZWN0LmtleXMoYWdlbnRzKS5qb2luKFwiLCBcIik7XG4gICAgY29uc3QgYm9keSA9XG4gICAgICBcXGBBZ2VudCBcIlxcJHtuYW1lfVwiIG5vdCBmb3VuZC5cXFxcblxcXFxuXFxgICtcbiAgICAgIFxcYEF2YWlsYWJsZSBhZ2VudHM6IFxcJHthdmFpbGFibGV9XFxcXG5cXFxcblxcYCArXG4gICAgICBcXGBoaW50OiBlYWNoIGZvbGRlciBpbnNpZGUgYWdlbnRzLyBiZWNvbWVzIGFuIGFnZW50LlxcXFxuXFxgICtcbiAgICAgIFxcYCAgICAgIENyZWF0ZSBhZ2VudHMvXFwke25hbWV9LyB0byBhZGQgdGhpcyBhZ2VudC5cXFxcblxcYDtcbiAgICByZXR1cm4gbmV3IFJlc3BvbnNlKGJvZHksIHsgc3RhdHVzOiA0MDQgfSk7XG4gIH1cblxuICByZXR1cm4gaGFuZGxlUmVxdWVzdChpbnN0YW5jZSwgeyBiYXNlUGF0aDogXFxgLy53ZWxsLWtub3duL2FnZW50cy9cXCR7bmFtZX1cXGAsIHdvcmtmbG93IH0pLmZldGNoKHJlcSk7XG59XG5cbmV4cG9ydCBjb25zdCBHRVQgPSBoYW5kbGVyO1xuZXhwb3J0IGNvbnN0IFBPU1QgPSBoYW5kbGVyO1xuYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQdXJlIGNvZGVnZW4gc3RlcDogc2NhbiBhZ2VudHMgYW5kIHJldHVybiB0aGUgZ2VuZXJhdGVkIHNvdXJjZVxuICAgKiBzdHJpbmdzIHdpdGhvdXQgdG91Y2hpbmcgdGhlIGZpbGVzeXN0ZW0uIFVzZWZ1bCBmb3IgYWRhcHRlcnMgdGhhdFxuICAgKiBuZWVkIHRvIGNvbnRyb2wgd2hlcmUgYW5kIGhvdyBmaWxlcyBhcmUgd3JpdHRlbi5cbiAgICpcbiAgICogUmV0dXJucyBgbnVsbGAgd2hlbiBubyBhZ2VudHMgYXJlIGZvdW5kLlxuICAgKi9cbiAgZmlsZXNUb1dyaXRlKCk6IHtcbiAgICByZWdpc3RyeVNvdXJjZTogc3RyaW5nO1xuICAgIHJvdXRlU291cmNlOiBzdHJpbmc7XG4gICAgZGlyOiBzdHJpbmc7XG4gIH0gfCBudWxsIHtcbiAgICBjb25zdCBhZ2VudHMgPSB0aGlzLmZyYW1ld29yay5kaXNjb3ZlckFnZW50cygpO1xuXG4gICAgaWYgKGFnZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuZnJhbWV3b3JrLmxvZyhcbiAgICAgIFwiZGlzY292ZXJlZCBhZ2VudHM6XCIsXG4gICAgICBhZ2VudHMubWFwKChhKSA9PiBhLm5hbWUpXG4gICAgKTtcblxuICAgIGNvbnN0IGRpciA9IHBhdGguam9pbihcbiAgICAgIHRoaXMuZnJhbWV3b3JrLmN3ZCxcbiAgICAgIHRoaXMuYXBwRGlyLFxuICAgICAgXCIud2VsbC1rbm93blwiLFxuICAgICAgXCJhZ2VudHNcIixcbiAgICAgIFwiW2FnZW50XVwiLFxuICAgICAgXCJbWy4uLnBhdGhdXVwiXG4gICAgKTtcblxuICAgIGNvbnN0IHJlZ2lzdHJ5U291cmNlID0gdGhpcy5mcmFtZXdvcmsuZ2VuZXJhdGVSZWdpc3RyeVNvdXJjZSh7XG4gICAgICBhZ2VudHMsXG4gICAgICBvdXRwdXREaXI6IGRpcixcbiAgICB9KTtcbiAgICBjb25zdCByb3V0ZVNvdXJjZSA9IHRoaXMuZ2VuZXJhdGVOZXh0Um91dGVIYW5kbGVyU291cmNlKHtcbiAgICAgIHJlZ2lzdHJ5SW1wb3J0UGF0aDogXCIuL19yZWdpc3RyeVwiLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHsgcmVnaXN0cnlTb3VyY2UsIHJvdXRlU291cmNlLCBkaXIgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY2FuIGZvciBhZ2VudHMsIGdlbmVyYXRlIHNvdXJjZSwgYW5kIHdyaXRlIHRoZSBgX3JlZ2lzdHJ5LnRzYCBhbmRcbiAgICogYHJvdXRlLnRzYCBmaWxlcyBpbnRvIHRoZSBOZXh0LmpzIGFwcCBkaXJlY3RvcnkuXG4gICAqL1xuICB3cml0ZUZpbGVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZpbGVzVG9Xcml0ZSA9IHRoaXMuZmlsZXNUb1dyaXRlKCk7XG5cbiAgICBpZiAoIWZpbGVzVG9Xcml0ZSkge1xuICAgICAgY29uc29sZS53YXJuKFwiW3dpdGhBZ2VudHNdIE5vIGFnZW50cyBmb3VuZFwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IHJlZ2lzdHJ5U291cmNlLCByb3V0ZVNvdXJjZSwgZGlyIH0gPSBmaWxlc1RvV3JpdGU7XG5cbiAgICBmcy5ta2RpclN5bmMoZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihkaXIsIFwiX3JlZ2lzdHJ5LnRzXCIpLCByZWdpc3RyeVNvdXJjZSk7XG4gICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4oZGlyLCBcInJvdXRlLnRzXCIpLCByb3V0ZVNvdXJjZSk7XG5cbiAgICBjb25zdCBnaXRpZ25vcmVQYXRoID0gcGF0aC5qb2luKGRpciwgXCIuZ2l0aWdub3JlXCIpO1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhnaXRpZ25vcmVQYXRoKSkge1xuICAgICAgZnMud3JpdGVGaWxlU3luYyhnaXRpZ25vcmVQYXRoLCBcIipcXG5cIik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYXNBcHBMYXlvdXQoZGlyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gW1wibGF5b3V0LnRzeFwiLCBcImxheW91dC5qc1wiLCBcImxheW91dC5qc3hcIl0uc29tZSgoZikgPT5cbiAgICAgIGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKGRpciwgZikpXG4gICAgKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7O0FDQUEsU0FBb0I7QUFDcEIsV0FBc0I7QUFHdEIsSUFBTSxnQkFBZ0I7QUFDZixTQUFTLGlCQUFpQixNQUd0QjtBQUNULFFBQU0sVUFBVSxLQUFLLE9BQU87QUFBQSxJQUFJLENBQUMsVUFDL0IsWUFBWSxFQUFFLE9BQU8sV0FBVyxLQUFLLFVBQVUsQ0FBQztBQUFBLEVBQ2xEO0FBRUEsU0FBTztBQUFBLElBQ0w7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBLEdBQUc7QUFBQSxJQUNIO0FBQUEsSUFDQTtBQUFBLEVBQ0YsRUFBRSxLQUFLLElBQUk7QUFDYjtBQUVBLFNBQVMsWUFBWSxNQUdWO0FBQ1QsUUFBTSxTQUFTLFlBQVksS0FBSyxLQUFLO0FBQ3JDLFFBQU0sWUFBWSxLQUFLLFVBQVUsUUFBUSxNQUFNLENBQUMsRUFDN0MsTUFBTSxJQUFJLEVBQ1YsSUFBSSxDQUFDLE1BQU0sTUFBTyxNQUFNLElBQUksT0FBTyxTQUFTLElBQUksRUFBRyxFQUNuRCxLQUFLLElBQUk7QUFFWixRQUFNLFFBQVEsQ0FBQyxlQUFlLFNBQVMsRUFBRTtBQUV6QyxNQUFJLEtBQUssTUFBTSxnQkFBZ0I7QUFDN0IsVUFBTSxhQUFhLG9CQUFvQixLQUFLLE1BQU0sWUFBWTtBQUM5RCxVQUFNLGVBQWUsbUJBQW1CO0FBQUEsTUFDdEMsTUFBTSxLQUFLO0FBQUEsTUFDWCxJQUFJO0FBQUEsSUFDTixDQUFDO0FBQ0QsVUFBTSxLQUFLLDRCQUE0QixLQUFLLFVBQVUsWUFBWSxDQUFDLEdBQUc7QUFBQSxFQUN4RTtBQUVB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YztBQUMvRCxJQUFHLGtCQUFtQixXQUFLLEtBQUssVUFBVSxHQUFHLFdBQVc7QUFFeEQsVUFBTSxnQkFBcUIsV0FBSyxLQUFLLFlBQVk7QUFDakQsUUFBSSxDQUFJLGVBQVcsYUFBYSxHQUFHO0FBQ2pDLE1BQUcsa0JBQWMsZUFBZSxLQUFLO0FBQUEsSUFDdkM7QUFBQSxFQUNGO0FBQUEsRUFFUSxhQUFhLEtBQXNCO0FBQ3pDLFdBQU8sQ0FBQyxjQUFjLGFBQWEsWUFBWSxFQUFFO0FBQUEsTUFBSyxDQUFDLE1BQ2xELGVBQWdCLFdBQUssS0FBSyxDQUFDLENBQUM7QUFBQSxJQUNqQztBQUFBLEVBQ0Y7QUFDRjs7O0FKeEpPLFNBQVMsV0FDZCxRQUNBLGVBR0ksQ0FBQyxHQUNZO0FBQ2pCLFFBQU0sWUFBWSxJQUFJLFVBQVUsWUFBWTtBQUM1QyxRQUFNLE9BQU8sSUFBSSxLQUFLLFNBQVM7QUFDL0IsT0FBSyxXQUFXO0FBRWhCLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFsiZnMiLCAicGF0aCIsICJmcyIsICJwYXRoIl0KfQo=
|
|
407
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2ZyYW1ld29yay1uZXh0L2FnZW50cy1wbHVnaW4udHMiLCAiLi4vLi4vc3JjL2ZyYW1ld29yay9nZW5lcmF0ZS50cyIsICIuLi8uLi9zcmMvZnJhbWV3b3JrL3NjYW4udHMiLCAiLi4vLi4vc3JjL2ZyYW1ld29yay9mcmFtZXdvcmsudHMiLCAiLi4vLi4vc3JjL2ZyYW1ld29yay1uZXh0L25leHQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IEZyYW1ld29yayB9IGZyb20gXCIuLi9mcmFtZXdvcmsvZnJhbWV3b3JrXCI7XG5pbXBvcnQgeyBOZXh0LCB0eXBlIE5leHRDb25maWdJbnB1dCB9IGZyb20gXCIuL25leHRcIjtcblxuZXhwb3J0IHR5cGUgeyBOZXh0Q29uZmlnSW5wdXQsIFdpdGhBZ2VudHNDb25maWcgfSBmcm9tIFwiLi9uZXh0XCI7XG5cbi8qKlxuICogTmV4dC5qcyBjb25maWcgd3JhcHBlciB0aGF0IGRpc2NvdmVycyBhZ2VudHMgb24gdGhlIGZpbGVzeXN0ZW0gYW5kXG4gKiBnZW5lcmF0ZXMgdGhlIHJvdXRlIGhhbmRsZXIgKyByZWdpc3RyeSBmaWxlcyBuZWVkZWQgdG8gc2VydmUgdGhlbS5cbiAqXG4gKiBDYWxsIHRoaXMgaW4gYG5leHQuY29uZmlnLnRzYDpcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IHdpdGhBZ2VudHMgfSBmcm9tIFwiZXhwZXJpbWVudGFsLWFnZW50L25leHQvYWdlbnRzXCI7XG4gKlxuICogZXhwb3J0IGRlZmF1bHQgd2l0aEFnZW50cyh7IHJlYWN0U3RyaWN0TW9kZTogdHJ1ZSB9KTtcbiAqIGBgYFxuICpcbiAqIERlYnVnIGxvZ3M6XG4gKiBgYGB0c1xuICogaW1wb3J0IHsgd2l0aEFnZW50cyB9IGZyb20gXCJleHBlcmltZW50YWwtYWdlbnQvbmV4dC9hZ2VudHNcIjtcbiAqXG4gKiBleHBvcnQgZGVmYXVsdCB3aXRoQWdlbnRzKHsgcmVhY3RTdHJpY3RNb2RlOiB0cnVlIH0sIHsgZGVidWc6IHRydWUgfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhBZ2VudHMoXG4gIGNvbmZpZzogTmV4dENvbmZpZ0lucHV0LFxuICBhZ2VudHNDb25maWc6IFBpY2s8XG4gICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBGcmFtZXdvcms+WzBdLFxuICAgIFwiYWdlbnRzRGlyXCIgfCBcImRlYnVnXCJcbiAgPiA9IHt9XG4pOiBOZXh0Q29uZmlnSW5wdXQge1xuICBjb25zdCBmcmFtZXdvcmsgPSBuZXcgRnJhbWV3b3JrKGFnZW50c0NvbmZpZyk7XG4gIGNvbnN0IG5leHQgPSBuZXcgTmV4dChmcmFtZXdvcmspO1xuICBuZXh0LndyaXRlRmlsZXMoKTtcblxuICByZXR1cm4gY29uZmlnO1xufVxuIiwgImltcG9ydCAqIGFzIGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgU2Nhbm5lZEFnZW50IH0gZnJvbSBcIi4vc2NhblwiO1xuXG5jb25zdCBUU19JTVBPUlRfRVhUID0gL1xcLih0c3xtdHMpJC87XG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVSZWdpc3RyeShvcHRzOiB7XG4gIGFnZW50czogU2Nhbm5lZEFnZW50W107XG4gIG91dHB1dERpcjogc3RyaW5nO1xufSk6IHN0cmluZyB7XG4gIGNvbnN0IGVudHJpZXMgPSBvcHRzLmFnZW50cy5tYXAoKGFnZW50KSA9PlxuICAgIGlubGluZUVudHJ5KHsgYWdlbnQsIG91dHB1dERpcjogb3B0cy5vdXRwdXREaXIgfSlcbiAgKTtcblxuICByZXR1cm4gW1xuICAgIFwiLy8gQXV0by1nZW5lcmF0ZWQgYnkgd2l0aEFnZW50cyAtIGRvIG5vdCBlZGl0XCIsXG4gICAgJ2ltcG9ydCB0eXBlIHsgQWdlbnRSZWdpc3RyeSB9IGZyb20gXCJleHBlcmltZW50YWwtYWdlbnQvZnJhbWV3b3JrXCI7JyxcbiAgICBcIlwiLFxuICAgIFwiZXhwb3J0IGNvbnN0IGFnZW50cyA9IHtcIixcbiAgICAuLi5lbnRyaWVzLFxuICAgIFwifSBzYXRpc2ZpZXMgQWdlbnRSZWdpc3RyeTtcIixcbiAgICBcIlwiLFxuICBdLmpvaW4oXCJcXG5cIik7XG59XG5cbmZ1bmN0aW9uIGlubGluZUVudHJ5KG9wdHM6IHtcbiAgYWdlbnQ6IFNjYW5uZWRBZ2VudDtcbiAgb3V0cHV0RGlyOiBzdHJpbmc7XG59KTogc3RyaW5nIHtcbiAgY29uc3QgY29uZmlnID0gYnVpbGRDb25maWcob3B0cy5hZ2VudCk7XG4gIGNvbnN0IGNvbmZpZ1N0ciA9IEpTT04uc3RyaW5naWZ5KGNvbmZpZywgbnVsbCwgMilcbiAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAubWFwKChsaW5lLCBpKSA9PiAoaSA9PT0gMCA/IGxpbmUgOiBgICAgICAgJHtsaW5lfWApKVxuICAgIC5qb2luKFwiXFxuXCIpO1xuXG4gIGNvbnN0IHBhcnRzID0gW2AgICAgY29uZmlnOiAke2NvbmZpZ1N0cn1gXTtcblxuICBpZiAob3B0cy5hZ2VudC5oYXNBZ2VudENvbmZpZykge1xuICAgIGNvbnN0IGNvbmZpZ1BhdGggPSBmaW5kQWdlbnRDb25maWdQYXRoKG9wdHMuYWdlbnQuYWJzb2x1dGVQYXRoKTtcbiAgICBjb25zdCByZWxhdGl2ZVBhdGggPSByZWxhdGl2ZUltcG9ydFBhdGgoe1xuICAgICAgZnJvbTogb3B0cy5vdXRwdXREaXIsXG4gICAgICB0bzogY29uZmlnUGF0aCxcbiAgICB9KTtcbiAgICBwYXJ0cy5wdXNoKGAgICAgaW1wb3J0OiAoKSA9PiBpbXBvcnQoJHtKU09OLnN0cmluZ2lmeShyZWxhdGl2ZVBhdGgpfSlgKTtcbiAgfVxuXG4gIGlmIChvcHRzLmFnZW50LnRvb2xzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zdCB0b29sTGluZXMgPSBvcHRzLmFnZW50LnRvb2xzLm1hcCgodG9vbCkgPT4ge1xuICAgICAgY29uc3QgcmVsID0gcmVsYXRpdmVJbXBvcnRQYXRoKHtcbiAgICAgICAgZnJvbTogb3B0cy5vdXRwdXREaXIsXG4gICAgICAgIHRvOiB0b29sLmltcG9ydFBhdGgsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBgICAgICAgICAke0pTT04uc3RyaW5naWZ5KHRvb2wubmFtZSl9OiAoKSA9PiBpbXBvcnQoJHtKU09OLnN0cmluZ2lmeShyZWwpfSlgO1xuICAgIH0pO1xuICAgIHBhcnRzLnB1c2goYCAgICBpbXBvcnRzOiB7XFxuICAgICAgdG9vbHM6IHtcXG4ke3Rvb2xMaW5lcy5qb2luKFwiLFxcblwiKX1cXG4gICAgICB9XFxuICAgIH1gKTtcbiAgfVxuXG4gIHJldHVybiBgICAke0pTT04uc3RyaW5naWZ5KG9wdHMuYWdlbnQubmFtZSl9OiB7XFxuJHtwYXJ0cy5qb2luKFwiLFxcblwiKX1cXG4gIH0sYDtcbn1cblxuZnVuY3Rpb24gYnVpbGRDb25maWcoYWdlbnQ6IFNjYW5uZWRBZ2VudCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgY29uc3QgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXG4gIGlmIChhZ2VudC5zeXN0ZW1Qcm9tcHQpIHtcbiAgICBjb25maWcuc3lzdGVtID0gYWdlbnQuc3lzdGVtUHJvbXB0O1xuICB9XG5cbiAgaWYgKGFnZW50LnNraWxscy5sZW5ndGggPiAwKSB7XG4gICAgY29uZmlnLnNraWxscyA9IGFnZW50LnNraWxscztcbiAgfVxuXG4gIHJldHVybiBjb25maWc7XG59XG5cbmZ1bmN0aW9uIGZpbmRBZ2VudENvbmZpZ1BhdGgoYWdlbnREaXI6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGV4dGVuc2lvbnMgPSBbXCIudHNcIiwgXCIuanNcIiwgXCIubXRzXCIsIFwiLm1qc1wiXTtcbiAgZm9yIChjb25zdCBleHQgb2YgZXh0ZW5zaW9ucykge1xuICAgIGNvbnN0IGNhbmRpZGF0ZSA9IHBhdGguam9pbihhZ2VudERpciwgYGFnZW50JHtleHR9YCk7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoY2FuZGlkYXRlKSkge1xuICAgICAgcmV0dXJuIGNhbmRpZGF0ZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBhdGguam9pbihhZ2VudERpciwgXCJhZ2VudFwiKTtcbn1cblxuZnVuY3Rpb24gcmVsYXRpdmVJbXBvcnRQYXRoKG9wdHM6IHsgZnJvbTogc3RyaW5nOyB0bzogc3RyaW5nIH0pOiBzdHJpbmcge1xuICBsZXQgcmVsID0gcGF0aC5yZWxhdGl2ZShvcHRzLmZyb20sIG9wdHMudG8pLnJlcGxhY2UoL1xcXFwvZywgXCIvXCIpO1xuICByZWwgPSByZWwucmVwbGFjZShUU19JTVBPUlRfRVhULCBcIlwiKTtcbiAgaWYgKCFyZWwuc3RhcnRzV2l0aChcIi5cIikpIHtcbiAgICByZWwgPSBgLi8ke3JlbH1gO1xuICB9XG4gIHJldHVybiByZWw7XG59XG5cbiIsICJpbXBvcnQgKiBhcyBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgdHlwZSB7IEhvc3RTa2lsbElucHV0LCBTa2lsbElucHV0IH0gZnJvbSBcIi4uL3NraWxscy90eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBBZ2VudERpciA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBhYnNvbHV0ZVBhdGg6IHN0cmluZztcbiAgaGFzQWdlbnRDb25maWc6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBTY2FubmVkVG9vbCA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBpbXBvcnRQYXRoOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBTY2FubmVkQWdlbnQgPSBBZ2VudERpciAmIHtcbiAgc2tpbGxzOiBTa2lsbElucHV0W107XG4gIHN5c3RlbVByb21wdDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB0c1NraWxsSW1wb3J0UGF0aHM6IHN0cmluZ1tdO1xuICB0b29sczogU2Nhbm5lZFRvb2xbXTtcbn07XG5cbmNvbnN0IEFHRU5UX0NPTkZJR19GSUxFUyA9IFtcImFnZW50LnRzXCIsIFwiYWdlbnQuanNcIiwgXCJhZ2VudC5tdHNcIiwgXCJhZ2VudC5tanNcIl07XG5jb25zdCBNRF9FWFQgPSAvXFwubWQkLztcbmNvbnN0IFRTX0VYVCA9IC9cXC4odHN8anN8bXRzfG1qcykkLztcblxuZXhwb3J0IGZ1bmN0aW9uIGxpc3REaXIoZGlyOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGlmICghZnMuZXhpc3RzU3luYyhkaXIpKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiBmcy5yZWFkZGlyU3luYyhkaXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEZpbGUoZmlsZVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsIFwidXRmLThcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWxlRXhpc3RzKGZpbGVQYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGZzLmV4aXN0c1N5bmMoZmlsZVBhdGgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEaXJlY3RvcnkoZmlsZVBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gZnMuZXhpc3RzU3luYyhmaWxlUGF0aCkgJiYgZnMuc3RhdFN5bmMoZmlsZVBhdGgpLmlzRGlyZWN0b3J5KCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNjb3ZlckFnZW50RGlycyhhZ2VudHNSb290OiBzdHJpbmcpOiBBZ2VudERpcltdIHtcbiAgY29uc3QgZW50cmllcyA9IGxpc3REaXIoYWdlbnRzUm9vdCk7XG4gIGNvbnN0IGRpcnM6IEFnZW50RGlyW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBwYXRoLmpvaW4oYWdlbnRzUm9vdCwgZW50cnkpO1xuICAgIGlmICghaXNEaXJlY3RvcnkoYWJzb2x1dGVQYXRoKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChlbnRyeS5zdGFydHNXaXRoKFwiLlwiKSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgZGlycy5wdXNoKHtcbiAgICAgIG5hbWU6IGVudHJ5LFxuICAgICAgYWJzb2x1dGVQYXRoLFxuICAgICAgaGFzQWdlbnRDb25maWc6IGhhc0FnZW50Q29uZmlnKGFic29sdXRlUGF0aCksXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZGlycztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0FnZW50Q29uZmlnKGFnZW50RGlyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIEFHRU5UX0NPTkZJR19GSUxFUy5zb21lKChmKSA9PiBmaWxlRXhpc3RzKHBhdGguam9pbihhZ2VudERpciwgZikpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNraWxscyhhZ2VudERpcjogc3RyaW5nKToge1xuICBza2lsbHM6IFNraWxsSW5wdXRbXTtcbiAgdHNTa2lsbEltcG9ydFBhdGhzOiBzdHJpbmdbXTtcbn0ge1xuICBjb25zdCBza2lsbHNEaXIgPSBwYXRoLmpvaW4oYWdlbnREaXIsIFwic2tpbGxzXCIpO1xuICBjb25zdCBlbnRyaWVzID0gbGlzdERpcihza2lsbHNEaXIpO1xuICBjb25zdCBza2lsbHM6IFNraWxsSW5wdXRbXSA9IFtdO1xuICBjb25zdCB0c1NraWxsSW1wb3J0UGF0aHM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzLnNvcnQoKSkge1xuICAgIGNvbnN0IGFic29sdXRlUGF0aCA9IHBhdGguam9pbihza2lsbHNEaXIsIGVudHJ5KTtcblxuICAgIGlmIChNRF9FWFQudGVzdChlbnRyeSkpIHtcbiAgICAgIHNraWxscy5wdXNoKHtcbiAgICAgICAgdHlwZTogXCJob3N0XCIsXG4gICAgICAgIHBhdGg6IGFic29sdXRlUGF0aCxcbiAgICAgIH0gc2F0aXNmaWVzIEhvc3RTa2lsbElucHV0KTtcbiAgICB9IGVsc2UgaWYgKFRTX0VYVC50ZXN0KGVudHJ5KSkge1xuICAgICAgdHNTa2lsbEltcG9ydFBhdGhzLnB1c2goYWJzb2x1dGVQYXRoKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBza2lsbHMsIHRzU2tpbGxJbXBvcnRQYXRocyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3lzdGVtUHJvbXB0KGFnZW50RGlyOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBzeXN0ZW1EaXIgPSBwYXRoLmpvaW4oYWdlbnREaXIsIFwic3lzdGVtXCIpO1xuICBjb25zdCBlbnRyaWVzID0gbGlzdERpcihzeXN0ZW1EaXIpO1xuICBjb25zdCBtZEZpbGVzID0gZW50cmllcy5maWx0ZXIoKGUpID0+IE1EX0VYVC50ZXN0KGUpKS5zb3J0KCk7XG5cbiAgaWYgKG1kRmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGZpbGUgb2YgbWRGaWxlcykge1xuICAgIGNvbnN0IGNvbnRlbnQgPSByZWFkRmlsZShwYXRoLmpvaW4oc3lzdGVtRGlyLCBmaWxlKSkudHJpbSgpO1xuICAgIGlmIChjb250ZW50KSB7XG4gICAgICBwYXJ0cy5wdXNoKGNvbnRlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJ0cy5sZW5ndGggPiAwID8gcGFydHMuam9pbihcIlxcblxcblwiKSA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvb2xzKGFnZW50RGlyOiBzdHJpbmcpOiBTY2FubmVkVG9vbFtdIHtcbiAgY29uc3QgdG9vbHNEaXIgPSBwYXRoLmpvaW4oYWdlbnREaXIsIFwidG9vbHNcIik7XG4gIGNvbnN0IGVudHJpZXMgPSBsaXN0RGlyKHRvb2xzRGlyKTtcbiAgY29uc3QgdG9vbHM6IFNjYW5uZWRUb29sW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMuc29ydCgpKSB7XG4gICAgY29uc3QgYWJzb2x1dGVQYXRoID0gcGF0aC5qb2luKHRvb2xzRGlyLCBlbnRyeSk7XG5cbiAgICBpZiAoaXNEaXJlY3RvcnkoYWJzb2x1dGVQYXRoKSkge1xuICAgICAgY29uc3QgaW5kZXhGaWxlID0gZmluZEluZGV4RmlsZShhYnNvbHV0ZVBhdGgpO1xuICAgICAgaWYgKGluZGV4RmlsZSkge1xuICAgICAgICB0b29scy5wdXNoKHsgbmFtZTogZW50cnksIGltcG9ydFBhdGg6IGluZGV4RmlsZSB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKFRTX0VYVC50ZXN0KGVudHJ5KSkge1xuICAgICAgY29uc3QgbmFtZSA9IGVudHJ5LnJlcGxhY2UoVFNfRVhULCBcIlwiKTtcbiAgICAgIHRvb2xzLnB1c2goeyBuYW1lLCBpbXBvcnRQYXRoOiBhYnNvbHV0ZVBhdGggfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRvb2xzO1xufVxuXG5mdW5jdGlvbiBmaW5kSW5kZXhGaWxlKGRpcjogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IGV4dGVuc2lvbnMgPSBbXCIudHNcIiwgXCIuanNcIiwgXCIubXRzXCIsIFwiLm1qc1wiXTtcbiAgZm9yIChjb25zdCBleHQgb2YgZXh0ZW5zaW9ucykge1xuICAgIGNvbnN0IGNhbmRpZGF0ZSA9IHBhdGguam9pbihkaXIsIGBpbmRleCR7ZXh0fWApO1xuICAgIGlmIChmaWxlRXhpc3RzKGNhbmRpZGF0ZSkpIHtcbiAgICAgIHJldHVybiBjYW5kaWRhdGU7XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2NhbkFnZW50KGFnZW50RGlyOiBBZ2VudERpcik6IFNjYW5uZWRBZ2VudCB7XG4gIGNvbnN0IHsgc2tpbGxzLCB0c1NraWxsSW1wb3J0UGF0aHMgfSA9IGdldFNraWxscyhhZ2VudERpci5hYnNvbHV0ZVBhdGgpO1xuICBjb25zdCBzeXN0ZW1Qcm9tcHQgPSBnZXRTeXN0ZW1Qcm9tcHQoYWdlbnREaXIuYWJzb2x1dGVQYXRoKTtcbiAgY29uc3QgdG9vbHMgPSBnZXRUb29scyhhZ2VudERpci5hYnNvbHV0ZVBhdGgpO1xuXG4gIHJldHVybiB7IC4uLmFnZW50RGlyLCBza2lsbHMsIHN5c3RlbVByb21wdCwgdHNTa2lsbEltcG9ydFBhdGhzLCB0b29scyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZEFnZW50c1Jvb3QoXG4gIGN3ZDogc3RyaW5nLFxuICB1c2VyRGVmaW5lZEFnZW50c0Rpcjogc3RyaW5nIHwgdW5kZWZpbmVkXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKHVzZXJEZWZpbmVkQWdlbnRzRGlyKSB7XG4gICAgcmV0dXJuIHBhdGgucmVzb2x2ZShjd2QsIHVzZXJEZWZpbmVkQWdlbnRzRGlyKTtcbiAgfVxuICBjb25zdCBjYW5kaWRhdGVzID0gW1xuICAgIHBhdGguam9pbihjd2QsIFwic3JjXCIsIFwiYWdlbnRzXCIpLFxuICAgIHBhdGguam9pbihjd2QsIFwiYWdlbnRzXCIpLFxuICBdO1xuXG4gIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICBpZiAoaXNEaXJlY3RvcnkoY2FuZGlkYXRlKSkge1xuICAgICAgcmV0dXJuIGNhbmRpZGF0ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbiIsICJpbXBvcnQgeyBnZW5lcmF0ZVJlZ2lzdHJ5IH0gZnJvbSBcIi4vZ2VuZXJhdGVcIjtcbmltcG9ydCB0eXBlIHsgU2Nhbm5lZEFnZW50IH0gZnJvbSBcIi4vc2NhblwiO1xuaW1wb3J0IHsgZGlzY292ZXJBZ2VudERpcnMsIGZpbmRBZ2VudHNSb290LCBzY2FuQWdlbnQgfSBmcm9tIFwiLi9zY2FuXCI7XG5cbi8qKlxuICogRnJhbWV3b3JrLWFnbm9zdGljIGNvcmUgZm9yIGZpbGVzeXN0ZW0tYmFzZWQgYWdlbnQgZGlzY292ZXJ5IGFuZFxuICogcmVnaXN0cnkgY29kZSBnZW5lcmF0aW9uLiBBZGFwdGVycyBsaWtlIHtAbGluayBOZXh0fSByZWNlaXZlIGFcbiAqIGBGcmFtZXdvcmtgIGluc3RhbmNlIGFuZCB1c2UgaXQgdG8gc2NhbiBhZ2VudHMgYW5kIHByb2R1Y2UgcmVnaXN0cnlcbiAqIHNvdXJjZSBjb2RlLlxuICovXG5leHBvcnQgY2xhc3MgRnJhbWV3b3JrIHtcbiAgcmVhZG9ubHkgY3dkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFnZW50c0Rpcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICByZWFkb25seSBsb2c6ICguLi5hcmdzOiB1bmtub3duW10pID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3Iob3B0czoge1xuICAgIC8qKlxuICAgICAqIFByb2plY3Qgcm9vdCBkaXJlY3RvcnkuXG4gICAgICogQGRlZmF1bHRWYWx1ZSBgcHJvY2Vzcy5jd2QoKWBcbiAgICAgKi9cbiAgICBjd2Q/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogUGF0aCB0byB0aGUgYWdlbnRzIGRpcmVjdG9yeSwgcmVsYXRpdmUgdG8gYGN3ZGAuXG4gICAgICogV2hlbiBvbWl0dGVkLCBhdXRvLWRldGVjdGVkIGFzIHRoZSBmaXJzdCBleGlzdGluZyBkaXJlY3RvcnlcbiAgICAgKiBhbW9uZyBgc3JjL2FnZW50c2AgYW5kIGBhZ2VudHNgLlxuICAgICAqL1xuICAgIGFnZW50c0Rpcj86IHN0cmluZztcbiAgICAvKiogRW5hYmxlIHZlcmJvc2UgbG9nZ2luZyB0byBzdGRvdXQuICovXG4gICAgZGVidWc/OiBib29sZWFuO1xuICB9KSB7XG4gICAgdGhpcy5jd2QgPSBvcHRzLmN3ZCA/PyBwcm9jZXNzLmN3ZCgpO1xuICAgIHRoaXMuYWdlbnRzRGlyID0gb3B0cy5hZ2VudHNEaXI7XG4gICAgdGhpcy5sb2cgPSBvcHRzLmRlYnVnXG4gICAgICA/IGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSwgXCJbRnJhbWV3b3JrXVwiKVxuICAgICAgOiAoKSA9PiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogU2NhbiB0aGUgYWdlbnRzIGRpcmVjdG9yeSBhbmQgcmV0dXJuIG1ldGFkYXRhIGZvciBldmVyeSBhZ2VudCBmb3VuZC5cbiAgICogRWFjaCBzdWJmb2xkZXIgaW5zaWRlIHRoZSBhZ2VudHMgZGlyZWN0b3J5IGJlY29tZXMgb25lIGFnZW50LlxuICAgKiBSZXR1cm5zIGFuIGVtcHR5IGFycmF5IHdoZW4gbm8gYWdlbnRzIGRpcmVjdG9yeSBleGlzdHMuXG4gICAqL1xuICBkaXNjb3ZlckFnZW50cygpOiBTY2FubmVkQWdlbnRbXSB7XG4gICAgY29uc3Qgcm9vdCA9IGZpbmRBZ2VudHNSb290KHRoaXMuY3dkLCB0aGlzLmFnZW50c0Rpcik7XG4gICAgaWYgKCFyb290KSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IGRpcnMgPSBkaXNjb3ZlckFnZW50RGlycyhyb290KTtcbiAgICByZXR1cm4gZGlycy5tYXAoc2NhbkFnZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSB0aGUgVHlwZVNjcmlwdCBzb3VyY2UgZm9yIGFuIGFnZW50IHJlZ2lzdHJ5IG1vZHVsZS5cbiAgICpcbiAgICogQHBhcmFtIG9wdHMuYWdlbnRzIC0gU2Nhbm5lZCBhZ2VudHMgdG8gaW5jbHVkZSBpbiB0aGUgcmVnaXN0cnkuXG4gICAqIEBwYXJhbSBvcHRzLm91dHB1dERpciAtIERpcmVjdG9yeSB3aGVyZSB0aGUgcmVnaXN0cnkgZmlsZSB3aWxsIGJlIHdyaXR0ZW5cbiAgICogICAodXNlZCB0byBjb21wdXRlIHJlbGF0aXZlIGltcG9ydCBwYXRocyB0byBlYWNoIGFnZW50J3MgY29uZmlnIG1vZHVsZSkuXG4gICAqIEByZXR1cm5zIFRoZSBmdWxsIHNvdXJjZSB0ZXh0IG9mIHRoZSBnZW5lcmF0ZWQgYF9yZWdpc3RyeS50c2AgZmlsZS5cbiAgICovXG4gIGdlbmVyYXRlUmVnaXN0cnlTb3VyY2UgPSBnZW5lcmF0ZVJlZ2lzdHJ5O1xufVxuIiwgImltcG9ydCAqIGFzIGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgTmV4dENvbmZpZyB9IGZyb20gXCJuZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEZyYW1ld29yayB9IGZyb20gXCIuLi9mcmFtZXdvcmsvZnJhbWV3b3JrXCI7XG5cbi8qKiBBIE5leHQuanMgY29uZmlnIG9iamVjdCBvciBhc3luYyBjb25maWcgZnVuY3Rpb24uICovXG5leHBvcnQgdHlwZSBOZXh0Q29uZmlnSW5wdXQgPVxuICB8IE5leHRDb25maWdcbiAgfCAoKFxuICAgICAgcGhhc2U6IHN0cmluZyxcbiAgICAgIGN0eDogeyBkZWZhdWx0Q29uZmlnOiBOZXh0Q29uZmlnIH1cbiAgICApID0+IFByb21pc2U8TmV4dENvbmZpZz4pO1xuXG4vKiogT3B0aW9ucyBmb3Ige0BsaW5rIHdpdGhBZ2VudHN9LiAqL1xuZXhwb3J0IHR5cGUgV2l0aEFnZW50c0NvbmZpZyA9IHtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGFnZW50cyBkaXJlY3RvcnksIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHJvb3QuXG4gICAqIFdoZW4gb21pdHRlZCwgYXV0by1kZXRlY3RlZCBhcyB0aGUgZmlyc3QgZXhpc3RpbmcgZGlyZWN0b3J5XG4gICAqIGFtb25nIGBzcmMvYWdlbnRzYCBhbmQgYGFnZW50c2AuXG4gICAqL1xuICBhZ2VudHNEaXI/OiBzdHJpbmc7XG4gIC8qKiBFbmFibGUgdmVyYm9zZSBsb2dnaW5nIHRvIHN0ZG91dC4gKi9cbiAgZGVidWc/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBOZXh0LmpzIGFkYXB0ZXIgZm9yIGZpbGVzeXN0ZW0tYmFzZWQgYWdlbnQgcm91dGluZy5cbiAqXG4gKiBSZWNlaXZlcyBhIHtAbGluayBGcmFtZXdvcmt9IGluc3RhbmNlIChjb21wb3NpdGlvbikgYW5kIHVzZXMgaXQgdG9cbiAqIGRpc2NvdmVyIGFnZW50cywgZ2VuZXJhdGUgYSByZWdpc3RyeSwgYW5kIHdyaXRlIHRoZSBOZXh0LmpzIHJvdXRlXG4gKiBoYW5kbGVyIGZpbGVzIHRoYXQgc2VydmUgdGhlbS5cbiAqXG4gKiBNb3N0IHVzZXJzIHNob3VsZCB1c2UgdGhlIHtAbGluayB3aXRoQWdlbnRzfSBoZWxwZXIgaW5zdGVhZCBvZlxuICogY29uc3RydWN0aW5nIHRoaXMgY2xhc3MgZGlyZWN0bHkuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBGcmFtZXdvcmsgfSBmcm9tIFwiZXhwZXJpbWVudGFsLWFnZW50L2ZyYW1ld29ya1wiO1xuICogaW1wb3J0IHsgTmV4dCB9IGZyb20gXCJleHBlcmltZW50YWwtYWdlbnQvbmV4dC9hZ2VudHNcIjtcbiAqXG4gKiBjb25zdCBmcmFtZXdvcmsgPSBuZXcgRnJhbWV3b3JrKHsgY3dkOiBwcm9jZXNzLmN3ZCgpIH0pO1xuICogbmV3IE5leHQoZnJhbWV3b3JrKS5nZW5lcmF0ZSgpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXh0IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmcmFtZXdvcms6IEZyYW1ld29yaykge31cblxuICBnZXQgYXBwRGlyKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY3dkID0gdGhpcy5mcmFtZXdvcmsuY3dkO1xuICAgIGNvbnN0IHNyY0FwcERpciA9IHBhdGguam9pbihjd2QsIFwic3JjXCIsIFwiYXBwXCIpO1xuICAgIGNvbnN0IHJvb3RBcHBEaXIgPSBwYXRoLmpvaW4oY3dkLCBcImFwcFwiKTtcblxuICAgIGlmICh0aGlzLmhhc0FwcExheW91dChzcmNBcHBEaXIpKSB7XG4gICAgICByZXR1cm4gXCJzcmMvYXBwXCI7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc0FwcExheW91dChyb290QXBwRGlyKSkge1xuICAgICAgcmV0dXJuIFwiYXBwXCI7XG4gICAgfVxuICAgIGlmIChmcy5leGlzdHNTeW5jKHNyY0FwcERpcikpIHtcbiAgICAgIHJldHVybiBcInNyYy9hcHBcIjtcbiAgICB9XG4gICAgcmV0dXJuIFwiYXBwXCI7XG4gIH1cblxuICBnZW5lcmF0ZU5leHRSb3V0ZUhhbmRsZXJTb3VyY2Uob3B0czogeyByZWdpc3RyeUltcG9ydFBhdGg6IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYC8vIEF1dG8tZ2VuZXJhdGVkIGJ5IHdpdGhBZ2VudHMgLSBkbyBub3QgZWRpdFxuLy8gQHRzLW5vY2hlY2tcbi8vIGJpb21lLWlnbm9yZSBmb3JtYXQsIGxpbnQsIGxpbnQvc3R5bGUsIGxpbnQvc3VzcGljaW91cywgbGludC9jb21wbGV4aXR5LCBsaW50L3BlcmZvcm1hbmNlLCBsaW50L3NlY3VyaXR5LCBsaW50L2NvcnJlY3RuZXNzLCBsaW50L3N0cmljdFxuLy8gcHJldHRpZXItaWdub3JlXG5cbmltcG9ydCB7IHJ1bnRpbWUgfSBmcm9tIFwiZXhwZXJpbWVudGFsLWFnZW50L2ZyYW1ld29yay1ydW50aW1lXCI7XG5pbXBvcnQgeyBoYW5kbGVSZXF1ZXN0IH0gZnJvbSBcImV4cGVyaW1lbnRhbC1hZ2VudFwiO1xuaW1wb3J0IHsgYWdlbnRzIH0gZnJvbSAke0pTT04uc3RyaW5naWZ5KG9wdHMucmVnaXN0cnlJbXBvcnRQYXRoKX07XG5cbmFzeW5jIGZ1bmN0aW9uIHdvcmtmbG93KGFnZW50LCBzZXNzaW9uSWQsIC4uLmFyZ3MpIHtcbiAgXCJ1c2Ugd29ya2Zsb3dcIjtcbiAgcmV0dXJuIGFnZW50LnNlc3Npb24oc2Vzc2lvbklkKS5zZW5kKC4uLmFyZ3MpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBoYW5kbGVyKFxuICByZXE6IFJlcXVlc3QsXG4gIGN0eDogeyBwYXJhbXM6IFByb21pc2U8eyBhZ2VudDogc3RyaW5nOyBwYXRoPzogc3RyaW5nW10gfT4gfVxuKSB7XG4gIGNvbnN0IHBhcmFtcyA9IGF3YWl0IGN0eC5wYXJhbXM7XG4gIGNvbnN0IG5hbWUgPSBwYXJhbXMuYWdlbnQ7XG4gIGNvbnN0IGluc3RhbmNlID0gYXdhaXQgcnVudGltZS5yZXNvbHZlQWdlbnQoeyBuYW1lLCBhZ2VudHMgfSk7XG5cbiAgaWYgKCFpbnN0YW5jZSkge1xuICAgIGNvbnN0IGF2YWlsYWJsZSA9IE9iamVjdC5rZXlzKGFnZW50cykuam9pbihcIiwgXCIpO1xuICAgIGNvbnN0IGJvZHkgPVxuICAgICAgXFxgQWdlbnQgXCJcXCR7bmFtZX1cIiBub3QgZm91bmQuXFxcXG5cXFxcblxcYCArXG4gICAgICBcXGBBdmFpbGFibGUgYWdlbnRzOiBcXCR7YXZhaWxhYmxlfVxcXFxuXFxcXG5cXGAgK1xuICAgICAgXFxgaGludDogZWFjaCBmb2xkZXIgaW5zaWRlIGFnZW50cy8gYmVjb21lcyBhbiBhZ2VudC5cXFxcblxcYCArXG4gICAgICBcXGAgICAgICBDcmVhdGUgYWdlbnRzL1xcJHtuYW1lfS8gdG8gYWRkIHRoaXMgYWdlbnQuXFxcXG5cXGA7XG4gICAgcmV0dXJuIG5ldyBSZXNwb25zZShib2R5LCB7IHN0YXR1czogNDA0IH0pO1xuICB9XG5cbiAgcmV0dXJuIGhhbmRsZVJlcXVlc3QoaW5zdGFuY2UsIHsgYmFzZVBhdGg6IFxcYC8ud2VsbC1rbm93bi9hZ2VudHMvXFwke25hbWV9XFxgLCB3b3JrZmxvdyB9KS5mZXRjaChyZXEpO1xufVxuXG5leHBvcnQgY29uc3QgR0VUID0gaGFuZGxlcjtcbmV4cG9ydCBjb25zdCBQT1NUID0gaGFuZGxlcjtcbmA7XG4gIH1cblxuICAvKipcbiAgICogUHVyZSBjb2RlZ2VuIHN0ZXA6IHNjYW4gYWdlbnRzIGFuZCByZXR1cm4gdGhlIGdlbmVyYXRlZCBzb3VyY2VcbiAgICogc3RyaW5ncyB3aXRob3V0IHRvdWNoaW5nIHRoZSBmaWxlc3lzdGVtLiBVc2VmdWwgZm9yIGFkYXB0ZXJzIHRoYXRcbiAgICogbmVlZCB0byBjb250cm9sIHdoZXJlIGFuZCBob3cgZmlsZXMgYXJlIHdyaXR0ZW4uXG4gICAqXG4gICAqIFJldHVybnMgYG51bGxgIHdoZW4gbm8gYWdlbnRzIGFyZSBmb3VuZC5cbiAgICovXG4gIGZpbGVzVG9Xcml0ZSgpOiB7XG4gICAgcmVnaXN0cnlTb3VyY2U6IHN0cmluZztcbiAgICByb3V0ZVNvdXJjZTogc3RyaW5nO1xuICAgIGRpcjogc3RyaW5nO1xuICB9IHwgbnVsbCB7XG4gICAgY29uc3QgYWdlbnRzID0gdGhpcy5mcmFtZXdvcmsuZGlzY292ZXJBZ2VudHMoKTtcblxuICAgIGlmIChhZ2VudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLmZyYW1ld29yay5sb2coXG4gICAgICBcImRpc2NvdmVyZWQgYWdlbnRzOlwiLFxuICAgICAgYWdlbnRzLm1hcCgoYSkgPT4gYS5uYW1lKVxuICAgICk7XG5cbiAgICBjb25zdCBkaXIgPSBwYXRoLmpvaW4oXG4gICAgICB0aGlzLmZyYW1ld29yay5jd2QsXG4gICAgICB0aGlzLmFwcERpcixcbiAgICAgIFwiLndlbGwta25vd25cIixcbiAgICAgIFwiYWdlbnRzXCIsXG4gICAgICBcIlthZ2VudF1cIixcbiAgICAgIFwiW1suLi5wYXRoXV1cIlxuICAgICk7XG5cbiAgICBjb25zdCByZWdpc3RyeVNvdXJjZSA9IHRoaXMuZnJhbWV3b3JrLmdlbmVyYXRlUmVnaXN0cnlTb3VyY2Uoe1xuICAgICAgYWdlbnRzLFxuICAgICAgb3V0cHV0RGlyOiBkaXIsXG4gICAgfSk7XG4gICAgY29uc3Qgcm91dGVTb3VyY2UgPSB0aGlzLmdlbmVyYXRlTmV4dFJvdXRlSGFuZGxlclNvdXJjZSh7XG4gICAgICByZWdpc3RyeUltcG9ydFBhdGg6IFwiLi9fcmVnaXN0cnlcIixcbiAgICB9KTtcblxuICAgIHJldHVybiB7IHJlZ2lzdHJ5U291cmNlLCByb3V0ZVNvdXJjZSwgZGlyIH07XG4gIH1cblxuICAvKipcbiAgICogU2NhbiBmb3IgYWdlbnRzLCBnZW5lcmF0ZSBzb3VyY2UsIGFuZCB3cml0ZSB0aGUgYF9yZWdpc3RyeS50c2AgYW5kXG4gICAqIGByb3V0ZS50c2AgZmlsZXMgaW50byB0aGUgTmV4dC5qcyBhcHAgZGlyZWN0b3J5LlxuICAgKi9cbiAgd3JpdGVGaWxlcygpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlc1RvV3JpdGUgPSB0aGlzLmZpbGVzVG9Xcml0ZSgpO1xuXG4gICAgaWYgKCFmaWxlc1RvV3JpdGUpIHtcbiAgICAgIGNvbnNvbGUud2FybihcIlt3aXRoQWdlbnRzXSBObyBhZ2VudHMgZm91bmRcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyByZWdpc3RyeVNvdXJjZSwgcm91dGVTb3VyY2UsIGRpciB9ID0gZmlsZXNUb1dyaXRlO1xuXG4gICAgZnMubWtkaXJTeW5jKGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4oZGlyLCBcIl9yZWdpc3RyeS50c1wiKSwgcmVnaXN0cnlTb3VyY2UpO1xuICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKGRpciwgXCJyb3V0ZS50c1wiKSwgcm91dGVTb3VyY2UpO1xuXG4gICAgY29uc3QgZ2l0aWdub3JlUGF0aCA9IHBhdGguam9pbihkaXIsIFwiLmdpdGlnbm9yZVwiKTtcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZ2l0aWdub3JlUGF0aCkpIHtcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoZ2l0aWdub3JlUGF0aCwgXCIqXFxuXCIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFzQXBwTGF5b3V0KGRpcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFtcImxheW91dC50c3hcIiwgXCJsYXlvdXQuanNcIiwgXCJsYXlvdXQuanN4XCJdLnNvbWUoKGYpID0+XG4gICAgICBmcy5leGlzdHNTeW5jKHBhdGguam9pbihkaXIsIGYpKVxuICAgICk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7OztBQ0FBLFNBQW9CO0FBQ3BCLFdBQXNCO0FBR3RCLElBQU0sZ0JBQWdCO0FBQ2YsU0FBUyxpQkFBaUIsTUFHdEI7QUFDVCxRQUFNLFVB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QUE7QUFBQTtBQUFBO0FBQUEsRUFTQSxlQUlTO0FBQ1AsVUFBTSxTQUFTLEtBQUssVUFBVSxlQUFlO0FBRTdDLFFBQUksT0FBTyxXQUFXLEdBQUc7QUFDdkIsYUFBTztBQUFBLElBQ1Q7QUFFQSxTQUFLLFVBQVU7QUFBQSxNQUNiO0FBQUEsTUFDQSxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSTtBQUFBLElBQzFCO0FBRUEsVUFBTSxNQUFXO0FBQUEsTUFDZixLQUFLLFVBQVU7QUFBQSxNQUNmLEtBQUs7QUFBQSxNQUNMO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUVBLFVBQU0saUJBQWlCLEtBQUssVUFBVSx1QkFBdUI7QUFBQSxNQUMzRDtBQUFBLE1BQ0EsV0FBVztBQUFBLElBQ2IsQ0FBQztBQUNELFVBQU0sY0FBYyxLQUFLLCtCQUErQjtBQUFBLE1BQ3RELG9CQUFvQjtBQUFBLElBQ3RCLENBQUM7QUFFRCxXQUFPLEVBQUUsZ0JBQWdCLGFBQWEsSUFBSTtBQUFBLEVBQzVDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1BLGFBQW1CO0FBQ2pCLFVBQU0sZUFBZSxLQUFLLGFBQWE7QUFFdkMsUUFBSSxDQUFDLGNBQWM7QUFDakIsY0FBUSxLQUFLLDhCQUE4QjtBQUMzQztBQUFBLElBQ0Y7QUFFQSxVQUFNLEVBQUUsZ0JBQWdCLGFBQWEsSUFBSSxJQUFJO0FBRTdDLElBQUcsY0FBVSxLQUFLLEVBQUUsV0FBVyxLQUFLLENBQUM7QUFDckMsSUFBRyxrQkFBbUIsV0FBSyxLQUFLLGNBQWMsR0FBRyxjQUFjO0FBQy9ELElBQUcsa0JBQW1CLFdBQUssS0FBSyxVQUFVLEdBQUcsV0FBVztBQUV4RCxVQUFNLGdCQUFxQixXQUFLLEtBQUssWUFBWTtBQUNqRCxRQUFJLENBQUksZUFBVyxhQUFhLEdBQUc7QUFDakMsTUFBRyxrQkFBYyxlQUFlLEtBQUs7QUFBQSxJQUN2QztBQUFBLEVBQ0Y7QUFBQSxFQUVRLGFBQWEsS0FBc0I7QUFDekMsV0FBTyxDQUFDLGNBQWMsYUFBYSxZQUFZLEVBQUU7QUFBQSxNQUFLLENBQUMsTUFDbEQsZUFBZ0IsV0FBSyxLQUFLLENBQUMsQ0FBQztBQUFBLElBQ2pDO0FBQUEsRUFDRjtBQUNGOzs7QUp4Sk8sU0FBUyxXQUNkLFFBQ0EsZUFHSSxDQUFDLEdBQ1k7QUFDakIsUUFBTSxZQUFZLElBQUksVUFBVSxZQUFZO0FBQzVDLFFBQU0sT0FBTyxJQUFJLEtBQUssU0FBUztBQUMvQixPQUFLLFdBQVc7QUFFaEIsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogWyJmcyIsICJwYXRoIiwgImZzIiwgInBhdGgiXQp9Cg==
|
package/dist/next/agents.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Framework
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-HPBAZJLN.mjs";
|
|
4
4
|
import "../chunk-BJTO5JO5.mjs";
|
|
5
5
|
|
|
6
6
|
// src/framework-next/next.ts
|
|
@@ -134,4 +134,4 @@ function withAgents(config, agentsConfig = {}) {
|
|
|
134
134
|
export {
|
|
135
135
|
withAgents
|
|
136
136
|
};
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2ZyYW1ld29yay1uZXh0L25leHQudHMiLCAiLi4vLi4vc3JjL2ZyYW1ld29yay1uZXh0L2FnZW50cy1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCAqIGFzIGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgTmV4dENvbmZpZyB9IGZyb20gXCJuZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEZyYW1ld29yayB9IGZyb20gXCIuLi9mcmFtZXdvcmsvZnJhbWV3b3JrXCI7XG5cbi8qKiBBIE5leHQuanMgY29uZmlnIG9iamVjdCBvciBhc3luYyBjb25maWcgZnVuY3Rpb24uICovXG5leHBvcnQgdHlwZSBOZXh0Q29uZmlnSW5wdXQgPVxuICB8IE5leHRDb25maWdcbiAgfCAoKFxuICAgICAgcGhhc2U6IHN0cmluZyxcbiAgICAgIGN0eDogeyBkZWZhdWx0Q29uZmlnOiBOZXh0Q29uZmlnIH1cbiAgICApID0+IFByb21pc2U8TmV4dENvbmZpZz4pO1xuXG4vKiogT3B0aW9ucyBmb3Ige0BsaW5rIHdpdGhBZ2VudHN9LiAqL1xuZXhwb3J0IHR5cGUgV2l0aEFnZW50c0NvbmZpZyA9IHtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGFnZW50cyBkaXJlY3RvcnksIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHJvb3QuXG4gICAqIFdoZW4gb21pdHRlZCwgYXV0by1kZXRlY3RlZCBhcyB0aGUgZmlyc3QgZXhpc3RpbmcgZGlyZWN0b3J5XG4gICAqIGFtb25nIGBzcmMvYWdlbnRzYCBhbmQgYGFnZW50c2AuXG4gICAqL1xuICBhZ2VudHNEaXI/OiBzdHJpbmc7XG4gIC8qKiBFbmFibGUgdmVyYm9zZSBsb2dnaW5nIHRvIHN0ZG91dC4gKi9cbiAgZGVidWc/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBOZXh0LmpzIGFkYXB0ZXIgZm9yIGZpbGVzeXN0ZW0tYmFzZWQgYWdlbnQgcm91dGluZy5cbiAqXG4gKiBSZWNlaXZlcyBhIHtAbGluayBGcmFtZXdvcmt9IGluc3RhbmNlIChjb21wb3NpdGlvbikgYW5kIHVzZXMgaXQgdG9cbiAqIGRpc2NvdmVyIGFnZW50cywgZ2VuZXJhdGUgYSByZWdpc3RyeSwgYW5kIHdyaXRlIHRoZSBOZXh0LmpzIHJvdXRlXG4gKiBoYW5kbGVyIGZpbGVzIHRoYXQgc2VydmUgdGhlbS5cbiAqXG4gKiBNb3N0IHVzZXJzIHNob3VsZCB1c2UgdGhlIHtAbGluayB3aXRoQWdlbnRzfSBoZWxwZXIgaW5zdGVhZCBvZlxuICogY29uc3RydWN0aW5nIHRoaXMgY2xhc3MgZGlyZWN0bHkuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBGcmFtZXdvcmsgfSBmcm9tIFwiZXhwZXJpbWVudGFsLWFnZW50L2ZyYW1ld29ya1wiO1xuICogaW1wb3J0IHsgTmV4dCB9IGZyb20gXCJleHBlcmltZW50YWwtYWdlbnQvbmV4dC9hZ2VudHNcIjtcbiAqXG4gKiBjb25zdCBmcmFtZXdvcmsgPSBuZXcgRnJhbWV3b3JrKHsgY3dkOiBwcm9jZXNzLmN3ZCgpIH0pO1xuICogbmV3IE5leHQoZnJhbWV3b3JrKS5nZW5lcmF0ZSgpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXh0IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmcmFtZXdvcms6IEZyYW1ld29yaykge31cblxuICBwcml2YXRlIGdldCBhcHBEaXIoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjd2QgPSB0aGlzLmZyYW1ld29yay5jd2Q7XG4gICAgY29uc3Qgc3JjQXBwRGlyID0gcGF0aC5qb2luKGN3ZCwgXCJzcmNcIiwgXCJhcHBcIik7XG4gICAgY29uc3Qgcm9vdEFwcERpciA9IHBhdGguam9pbihjd2QsIFwiYXBwXCIpO1xuXG4gICAgaWYgKHRoaXMuaGFzQXBwTGF5b3V0KHNyY0FwcERpcikpIHtcbiAgICAgIHJldHVybiBcInNyYy9hcHBcIjtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGFzQXBwTGF5b3V0KHJvb3RBcHBEaXIpKSB7XG4gICAgICByZXR1cm4gXCJhcHBcIjtcbiAgICB9XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoc3JjQXBwRGlyKSkge1xuICAgICAgcmV0dXJuIFwic3JjL2FwcFwiO1xuICAgIH1cbiAgICByZXR1cm4gXCJhcHBcIjtcbiAgfVxuXG4gIGdlbmVyYXRlTmV4dFJvdXRlSGFuZGxlclNvdXJjZShvcHRzOiB7IHJlZ2lzdHJ5SW1wb3J0UGF0aDogc3RyaW5nIH0pOiBzdHJpbmcge1xuICAgIHJldHVybiBgLy8gQXV0by1nZW5lcmF0ZWQgYnkgd2l0aEFnZW50cyAtIGRvIG5vdCBlZGl0XG4vLyBAdHMtbm9jaGVja1xuLy8gYmlvbWUtaWdub3JlIGZvcm1hdCwgbGludCwgbGludC9zdHlsZSwgbGludC9zdXNwaWNpb3VzLCBsaW50L2NvbXBsZXhpdHksIGxpbnQvcGVyZm9ybWFuY2UsIGxpbnQvc2VjdXJpdHksIGxpbnQvY29ycmVjdG5lc3MsIGxpbnQvc3RyaWN0XG4vLyBwcmV0dGllci1pZ25vcmVcblxuaW1wb3J0IHsgcnVudGltZSB9IGZyb20gXCJleHBlcmltZW50YWwtYWdlbnQvZnJhbWV3b3JrLXJ1bnRpbWVcIjtcbmltcG9ydCB7IGhhbmRsZVJlcXVlc3QgfSBmcm9tIFwiZXhwZXJpbWVudGFsLWFnZW50XCI7XG5pbXBvcnQgeyBhZ2VudHMgfSBmcm9tICR7SlNPTi5zdHJpbmdpZnkob3B0cy5yZWdpc3RyeUltcG9ydFBhdGgpfTtcblxuYXN5bmMgZnVuY3Rpb24gd29ya2Zsb3coYWdlbnQsIHNlc3Npb25JZCwgLi4uYXJncykge1xuICBcInVzZSB3b3JrZmxvd1wiO1xuICByZXR1cm4gYWdlbnQuc2Vzc2lvbihzZXNzaW9uSWQpLnNlbmQoLi4uYXJncyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoXG4gIHJlcTogUmVxdWVzdCxcbiAgY3R4OiB7IHBhcmFtczogUHJvbWlzZTx7IGFnZW50OiBzdHJpbmc7IHBhdGg/OiBzdHJpbmdbXSB9PiB9XG4pIHtcbiAgY29uc3QgcGFyYW1zID0gYXdhaXQgY3R4LnBhcmFtcztcbiAgY29uc3QgbmFtZSA9IHBhcmFtcy5hZ2VudDtcbiAgY29uc3QgaW5zdGFuY2UgPSBhd2FpdCBydW50aW1lLnJlc29sdmVBZ2VudCh7IG5hbWUsIGFnZW50cyB9KTtcblxuICBpZiAoIWluc3RhbmNlKSB7XG4gICAgY29uc3QgYXZhaWxhYmxlID0gT2JqZWN0LmtleXMoYWdlbnRzKS5qb2luKFwiLCBcIik7XG4gICAgY29uc3QgYm9keSA9XG4gICAgICBcXGBBZ2VudCBcIlxcJHtuYW1lfVwiIG5vdCBmb3VuZC5cXFxcblxcXFxuXFxgICtcbiAgICAgIFxcYEF2YWlsYWJsZSBhZ2VudHM6IFxcJHthdmFpbGFibGV9XFxcXG5cXFxcblxcYCArXG4gICAgICBcXGBoaW50OiBlYWNoIGZvbGRlciBpbnNpZGUgYWdlbnRzLyBiZWNvbWVzIGFuIGFnZW50LlxcXFxuXFxgICtcbiAgICAgIFxcYCAgICAgIENyZWF0ZSBhZ2VudHMvXFwke25hbWV9LyB0byBhZGQgdGhpcyBhZ2VudC5cXFxcblxcYDtcbiAgICByZXR1cm4gbmV3IFJlc3BvbnNlKGJvZHksIHsgc3RhdHVzOiA0MDQgfSk7XG4gIH1cblxuICByZXR1cm4gaGFuZGxlUmVxdWVzdChpbnN0YW5jZSwgeyBiYXNlUGF0aDogXFxgLy53ZWxsLWtub3duL2FnZW50cy9cXCR7bmFtZX1cXGAsIHdvcmtmbG93IH0pLmZldGNoKHJlcSk7XG59XG5cbmV4cG9ydCBjb25zdCBHRVQgPSBoYW5kbGVyO1xuZXhwb3J0IGNvbnN0IFBPU1QgPSBoYW5kbGVyO1xuYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQdXJlIGNvZGVnZW4gc3RlcDogc2NhbiBhZ2VudHMgYW5kIHJldHVybiB0aGUgZ2VuZXJhdGVkIHNvdXJjZVxuICAgKiBzdHJpbmdzIHdpdGhvdXQgdG91Y2hpbmcgdGhlIGZpbGVzeXN0ZW0uIFVzZWZ1bCBmb3IgYWRhcHRlcnMgdGhhdFxuICAgKiBuZWVkIHRvIGNvbnRyb2wgd2hlcmUgYW5kIGhvdyBmaWxlcyBhcmUgd3JpdHRlbi5cbiAgICpcbiAgICogUmV0dXJucyBgbnVsbGAgd2hlbiBubyBhZ2VudHMgYXJlIGZvdW5kLlxuICAgKi9cbiAgZmlsZXNUb1dyaXRlKCk6IHtcbiAgICByZWdpc3RyeVNvdXJjZTogc3RyaW5nO1xuICAgIHJvdXRlU291cmNlOiBzdHJpbmc7XG4gICAgZGlyOiBzdHJpbmc7XG4gIH0gfCBudWxsIHtcbiAgICBjb25zdCBhZ2VudHMgPSB0aGlzLmZyYW1ld29yay5kaXNjb3ZlckFnZW50cygpO1xuXG4gICAgaWYgKGFnZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuZnJhbWV3b3JrLmxvZyhcbiAgICAgIFwiZGlzY292ZXJlZCBhZ2VudHM6XCIsXG4gICAgICBhZ2VudHMubWFwKChhKSA9PiBhLm5hbWUpXG4gICAgKTtcblxuICAgIGNvbnN0IGRpciA9IHBhdGguam9pbihcbiAgICAgIHRoaXMuZnJhbWV3b3JrLmN3ZCxcbiAgICAgIHRoaXMuYXBwRGlyLFxuICAgICAgXCIud2VsbC1rbm93blwiLFxuICAgICAgXCJhZ2VudHNcIixcbiAgICAgIFwiW2FnZW50XVwiLFxuICAgICAgXCJbWy4uLnBhdGhdXVwiXG4gICAgKTtcblxuICAgIGNvbnN0IHJlZ2lzdHJ5U291cmNlID0gdGhpcy5mcmFtZXdvcmsuZ2VuZXJhdGVSZWdpc3RyeVNvdXJjZSh7XG4gICAgICBhZ2VudHMsXG4gICAgICBvdXRwdXREaXI6IGRpcixcbiAgICB9KTtcbiAgICBjb25zdCByb3V0ZVNvdXJjZSA9IHRoaXMuZ2VuZXJhdGVOZXh0Um91dGVIYW5kbGVyU291cmNlKHtcbiAgICAgIHJlZ2lzdHJ5SW1wb3J0UGF0aDogXCIuL19yZWdpc3RyeVwiLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHsgcmVnaXN0cnlTb3VyY2UsIHJvdXRlU291cmNlLCBkaXIgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY2FuIGZvciBhZ2VudHMsIGdlbmVyYXRlIHNvdXJjZSwgYW5kIHdyaXRlIHRoZSBgX3JlZ2lzdHJ5LnRzYCBhbmRcbiAgICogYHJvdXRlLnRzYCBmaWxlcyBpbnRvIHRoZSBOZXh0LmpzIGFwcCBkaXJlY3RvcnkuXG4gICAqL1xuICB3cml0ZUZpbGVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZpbGVzVG9Xcml0ZSA9IHRoaXMuZmlsZXNUb1dyaXRlKCk7XG5cbiAgICBpZiAoIWZpbGVzVG9Xcml0ZSkge1xuICAgICAgY29uc29sZS53YXJuKFwiW3dpdGhBZ2VudHNdIE5vIGFnZW50cyBmb3VuZFwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IHJlZ2lzdHJ5U291cmNlLCByb3V0ZVNvdXJjZSwgZGlyIH0gPSBmaWxlc1RvV3JpdGU7XG5cbiAgICBmcy5ta2RpclN5bmMoZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihkaXIsIFwiX3JlZ2lzdHJ5LnRzXCIpLCByZWdpc3RyeVNvdXJjZSk7XG4gICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4oZGlyLCBcInJvdXRlLnRzXCIpLCByb3V0ZVNvdXJjZSk7XG5cbiAgICBjb25zdCBnaXRpZ25vcmVQYXRoID0gcGF0aC5qb2luKGRpciwgXCIuZ2l0aWdub3JlXCIpO1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhnaXRpZ25vcmVQYXRoKSkge1xuICAgICAgZnMud3JpdGVGaWxlU3luYyhnaXRpZ25vcmVQYXRoLCBcIipcXG5cIik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYXNBcHBMYXlvdXQoZGlyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gW1wibGF5b3V0LnRzeFwiLCBcImxheW91dC5qc1wiLCBcImxheW91dC5qc3hcIl0uc29tZSgoZikgPT5cbiAgICAgIGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKGRpciwgZikpXG4gICAgKTtcbiAgfVxufVxuIiwgImltcG9ydCB7IEZyYW1ld29yayB9IGZyb20gXCIuLi9mcmFtZXdvcmsvZnJhbWV3b3JrXCI7XG5pbXBvcnQgeyBOZXh0LCB0eXBlIE5leHRDb25maWdJbnB1dCB9IGZyb20gXCIuL25leHRcIjtcblxuZXhwb3J0IHR5cGUgeyBOZXh0Q29uZmlnSW5wdXQsIFdpdGhBZ2VudHNDb25maWcgfSBmcm9tIFwiLi9uZXh0XCI7XG5cbi8qKlxuICogTmV4dC5qcyBjb25maWcgd3JhcHBlciB0aGF0IGRpc2NvdmVycyBhZ2VudHMgb24gdGhlIGZpbGVzeXN0ZW0gYW5kXG4gKiBnZW5lcmF0ZXMgdGhlIHJvdXRlIGhhbmRsZXIgKyByZWdpc3RyeSBmaWxlcyBuZWVkZWQgdG8gc2VydmUgdGhlbS5cbiAqXG4gKiBDYWxsIHRoaXMgaW4gYG5leHQuY29uZmlnLnRzYDpcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGltcG9ydCB7IHdpdGhBZ2VudHMgfSBmcm9tIFwiZXhwZXJpbWVudGFsLWFnZW50L25leHQvYWdlbnRzXCI7XG4gKlxuICogZXhwb3J0IGRlZmF1bHQgd2l0aEFnZW50cyh7IHJlYWN0U3RyaWN0TW9kZTogdHJ1ZSB9KTtcbiAqIGBgYFxuICpcbiAqIERlYnVnIGxvZ3M6XG4gKiBgYGB0c1xuICogaW1wb3J0IHsgd2l0aEFnZW50cyB9IGZyb20gXCJleHBlcmltZW50YWwtYWdlbnQvbmV4dC9hZ2VudHNcIjtcbiAqXG4gKiBleHBvcnQgZGVmYXVsdCB3aXRoQWdlbnRzKHsgcmVhY3RTdHJpY3RNb2RlOiB0cnVlIH0sIHsgZGVidWc6IHRydWUgfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhBZ2VudHMoXG4gIGNvbmZpZzogTmV4dENvbmZpZ0lucHV0LFxuICBhZ2VudHNDb25maWc6IFBpY2s8XG4gICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBGcmFtZXdvcms+WzBdLFxuICAgIFwiYWdlbnRzRGlyXCIgfCBcImRlYnVnXCJcbiAgPiA9IHt9XG4pOiBOZXh0Q29uZmlnSW5wdXQge1xuICBjb25zdCBmcmFtZXdvcmsgPSBuZXcgRnJhbWV3b3JrKGFnZW50c0NvbmZpZyk7XG4gIGNvbnN0IG5leHQgPSBuZXcgTmV4dChmcmFtZXdvcmspO1xuICBuZXh0LndyaXRlRmlsZXMoKTtcblxuICByZXR1cm4gY29uZmlnO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7O0FBQUEsWUFBWSxRQUFRO0FBQ3BCLFlBQVksVUFBVTtBQTJDZixJQUFNLE9BQU4sTUFBVztBQUFBLEVBQ2hCLFlBQTZCLFdBQXNCO0FBQXRCO0FBQUEsRUFBdUI7QUFBQSxFQUVwRCxJQUFZLFNBQWlCO0FBQzNCLFVBQU0sTUFBTSxLQUFLLFVBQVU7QUFDM0IsVUFBTSxZQUFpQixVQUFLLEtBQUssT0FBTyxLQUFLO0FBQzdDLFVBQU0sYUFBa0IsVUFBSyxLQUFLLEtBQUs7QUFFdkMsUUFBSSxLQUFLLGFBQWEsU0FBUyxHQUFHO0FBQ2hDLGFBQU87QUFBQSxJQUNUO0FBQ0EsUUFBSSxLQUFLLGFBQWEsVUFBVSxHQUFHO0FBQ2pDLGFBQU87QUFBQSxJQUNUO0FBQ0EsUUFBTyxjQUFXLFNBQVMsR0FBRztBQUM1QixhQUFPO0FBQUEsSUFDVDtBQUNBLFdBQU87QUFBQSxFQUNUO0FBQUEsRUFFQSwrQkFBK0IsTUFBOEM7QUFDM0UsV0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQU9jLEtBQUssVUFBVSxLQUFLLGtCQUFrQixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUErQjlEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVNBLGVBSVM7QUFDUCxVQUFNLFNBQVMsS0FBSyxVQUFVLGVBQWU7QUFFN0MsUUFBSSxPQUFPLFdBQVcsR0FBRztBQUN2QixhQUFPO0FBQUEsSUFDVDtBQUVBLFNBQUssVUFBVTtBQUFBLE1BQ2I7QUFBQSxNQUNBLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJO0FBQUEsSUFDMUI7QUFFQSxVQUFNLE1BQVc7QUFBQSxNQUNmLEtBQUssVUFBVTtBQUFBLE1BQ2YsS0FBSztBQUFBLE1BQ0w7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBRUEsVUFBTSxpQkFBaUIsS0FBSyxVQUFVLHVCQUF1QjtBQUFBLE1BQzNEO0FBQUEsTUFDQSxXQUFXO0FBQUEsSUFDYixDQUFDO0FBQ0QsVUFBTSxjQUFjLEtBQUssK0JBQStCO0FBQUEsTUFDdEQsb0JBQW9CO0FBQUEsSUFDdEIsQ0FBQztBQUVELFdBQU8sRUFBRSxnQkFBZ0IsYUFBYSxJQUFJO0FBQUEsRUFDNUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTUEsYUFBbUI7QUFDakIsVUFBTSxlQUFlLEtBQUssYUFBYTtBQUV2QyxRQUFJLENBQUMsY0FBYztBQUNqQixjQUFRLEtBQUssOEJBQThCO0FBQzNDO0FBQUEsSUFDRjtBQUVBLFVBQU0sRUFBRSxnQkFBZ0IsYUFBYSxJQUFJLElBQUk7QUFFN0MsSUFBRyxhQUFVLEtBQUssRUFBRSxXQUFXLEtBQUssQ0FBQztBQUNyQyxJQUFHLGlCQUFtQixVQUFLLEtBQUssY0FBYyxHQUFHLGNBQWM7QUFDL0QsSUFBRyxpQkFBbUIsVUFBSyxLQUFLLFVBQVUsR0FBRyxXQUFXO0FBRXhELFVBQU0sZ0JBQXFCLFVBQUssS0FBSyxZQUFZO0FBQ2pELFFBQUksQ0FBSSxjQUFXLGFBQWEsR0FBRztBQUNqQyxNQUFHLGlCQUFjLGVBQWUsS0FBSztBQUFBLElBQ3ZDO0FBQUEsRUFDRjtBQUFBLEVBRVEsYUFBYSxLQUFzQjtBQUN6QyxXQUFPLENBQUMsY0FBYyxhQUFhLFlBQVksRUFBRTtBQUFBLE1BQUssQ0FBQyxNQUNsRCxjQUFnQixVQUFLLEtBQUssQ0FBQyxDQUFDO0FBQUEsSUFDakM7QUFBQSxFQUNGO0FBQ0Y7OztBQ3hKTyxTQUFTLFdBQ2QsUUFDQSxlQUdJLENBQUMsR0FDWTtBQUNqQixRQUFNLFlBQVksSUFBSSxVQUFVLFlBQVk7QUFDNUMsUUFBTSxPQUFPLElBQUksS0FBSyxTQUFTO0FBQy9CLE9BQUssV0FBVztBQUVoQixTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2ZyYW1ld29yay1uZXh0L25leHQudHMiLCAiLi4vLi4vc3JjL2ZyYW1ld29yay1uZXh0L2FnZW50cy1wbHVnaW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCAqIGFzIGZzIGZyb20gXCJub2RlOmZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgTmV4dENvbmZpZyB9IGZyb20gXCJuZXh0XCI7XG5pbXBvcnQgdHlwZSB7IEZyYW1ld29yayB9IGZyb20gXCIuLi9mcmFtZXdvcmsvZnJhbWV3b3JrXCI7XG5cbi8qKiBBIE5leHQuanMgY29uZmlnIG9iamVjdCBvciBhc3luYyBjb25maWcgZnVuY3Rpb24uICovXG5leHBvcnQgdHlwZSBOZXh0Q29uZmlnSW5wdXQgPVxuICB8IE5leHRDb25maWdcbiAgfCAoKFxuICAgICAgcGhhc2U6IHN0cmluZyxcbiAgICAgIGN0eDogeyBkZWZhdWx0Q29uZmlnOiBOZXh0Q29uZmlnIH1cbiAgICApID0+IFByb21pc2U8TmV4dENvbmZpZz4pO1xuXG4vKiogT3B0aW9ucyBmb3Ige0BsaW5rIHdpdGhBZ2VudHN9LiAqL1xuZXhwb3J0IHR5cGUgV2l0aEFnZW50c0NvbmZpZyA9IHtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGFnZW50cyBkaXJlY3RvcnksIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IHJvb3QuXG4gICAqIFdoZW4gb21pdHRlZCwgYXV0by1kZXRlY3RlZCBhcyB0aGUgZmlyc3QgZXhpc3RpbmcgZGlyZWN0b3J5XG4gICAqIGFtb25nIGBzcmMvYWdlbnRzYCBhbmQgYGFnZW50c2AuXG4gICAqL1xuICBhZ2VudHNEaXI/OiBzdHJpbmc7XG4gIC8qKiBFbmFibGUgdmVyYm9zZSBsb2dnaW5nIHRvIHN0ZG91dC4gKi9cbiAgZGVidWc/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBOZXh0LmpzIGFkYXB0ZXIgZm9yIGZpbGVzeXN0ZW0tYmFzZWQgYWdlbnQgcm91dGluZy5cbiAqXG4gKiBSZWNlaXZlcyBhIHtAbGluayBGcmFtZXdvcmt9IGluc3RhbmNlIChjb21wb3NpdGlvbikgYW5kIHVzZXMgaXQgdG9cbiAqIGRpc2NvdmVyIGFnZW50cywgZ2VuZXJhdGUgYSByZWdpc3RyeSwgYW5kIHdyaXRlIHRoZSBOZXh0LmpzIHJvdXRlXG4gKiBoYW5kbGVyIGZpbGVzIHRoYXQgc2VydmUgdGhlbS5cbiAqXG4gKiBNb3N0IHVzZXJzIHNob3VsZCB1c2UgdGhlIHtAbGluayB3aXRoQWdlbnRzfSBoZWxwZXIgaW5zdGVhZCBvZlxuICogY29uc3RydWN0aW5nIHRoaXMgY2xhc3MgZGlyZWN0bHkuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBGcmFtZXdvcmsgfSBmcm9tIFwiZXhwZXJpbWVudGFsLWFnZW50L2ZyYW1ld29ya1wiO1xuICogaW1wb3J0IHsgTmV4dCB9IGZyb20gXCJleHBlcmltZW50YWwtYWdlbnQvbmV4dC9hZ2VudHNcIjtcbiAqXG4gKiBjb25zdCBmcmFtZXdvcmsgPSBuZXcgRnJhbWV3b3JrKHsgY3dkOiBwcm9jZXNzLmN3ZCgpIH0pO1xuICogbmV3IE5leHQoZnJhbWV3b3JrKS5nZW5lcmF0ZSgpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXh0IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmcmFtZXdvcms6IEZyYW1ld29yaykge31cblxuICBnZXQgYXBwRGlyKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY3dkID0gdGhpcy5mcmFtZXdvcmsuY3dkO1xuICAgIGNvbnN0IHNyY0FwcERpciA9IHBhdGguam9pbihjd2QsIFwic3JjXCIsIFwiYXBwXCIpO1xuICAgIGNvbnN0IHJvb3RBcHBEaXIgPSBwYXRoLmpvaW4oY3dkLCBcImFwcFwiKTtcblxuICAgIGlmICh0aGlzLmhhc0FwcExheW91dChzcmNBcHBEaXIpKSB7XG4gICAgICByZXR1cm4gXCJzcmMvYXBwXCI7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc0FwcExheW91dChyb290QXBwRGlyKSkge1xuICAgICAgcmV0dXJuIFwiYXBwXCI7XG4gICAgfVxuICAgIGlmIChmcy5leGlzdHNTeW5jKHNyY0FwcERpcikpIHtcbiAgICAgIHJldHVybiBcInNyYy9hcHBcIjtcbiAgICB9XG4gICAgcmV0dXJuIFwiYXBwXCI7XG4gIH1cblxuICBnZW5lcmF0ZU5leHRSb3V0ZUhhbmRsZXJTb3VyY2Uob3B0czogeyByZWdpc3RyeUltcG9ydFBhdGg6IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYC8vIEF1dG8tZ2VuZXJhdGVkIGJ5IHdpdGhBZ2VudHMgLSBkbyBub3QgZWRpdFxuLy8gQHRzLW5vY2hlY2tcbi8vIGJpb21lLWlnbm9yZSBmb3JtYXQsIGxpbnQsIGxpbnQvc3R5bGUsIGxpbnQvc3VzcGljaW91cywgbGludC9jb21wbGV4aXR5LCBsaW50L3BlcmZvcm1hbmNlLCBsaW50L3NlY3VyaXR5LCBsaW50L2NvcnJlY3RuZXNzLCBsaW50L3N0cmljdFxuLy8gcHJldHRpZXItaWdub3JlXG5cbmltcG9ydCB7IHJ1bnRpbWUgfSBmcm9tIFwiZXhwZXJpbWVudGFsLWFnZW50L2ZyYW1ld29yay1ydW50aW1lXCI7XG5pbXBvcnQgeyBoYW5kbGVSZXF1ZXN0IH0gZnJvbSBcImV4cGVyaW1lbnRhbC1hZ2VudFwiO1xuaW1wb3J0IHsgYWdlbnRzIH0gZnJvbSAke0pTT04uc3RyaW5naWZ5KG9wdHMucmVnaXN0cnlJbXBvcnRQYXRoKX07XG5cbmFzeW5jIGZ1bmN0aW9uIHdvcmtmbG93KGFnZW50LCBzZXNzaW9uSWQsIC4uLmFyZ3MpIHtcbiAgXCJ1c2Ugd29ya2Zsb3dcIjtcbiAgcmV0dXJuIGFnZW50LnNlc3Npb24oc2Vzc2lvbklkKS5zZW5kKC4uLmFyZ3MpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBoYW5kbGVyKFxuICByZXE6IFJlcXVlc3QsXG4gIGN0eDogeyBwYXJhbXM6IFByb21pc2U8eyBhZ2VudDogc3RyaW5nOyBwYXRoPzogc3RyaW5nW10gfT4gfVxuKSB7XG4gIGNvbnN0IHBhcmFtcyA9IGF3YWl0IGN0eC5wYXJhbXM7XG4gIGNvbnN0IG5hbWUgPSBwYXJhbXMuYWdlbnQ7XG4gIGNvbnN0IGluc3RhbmNlID0gYXdhaXQgcnVudGltZS5yZXNvbHZlQWdlbnQoeyBuYW1lLCBhZ2VudHMgfSk7XG5cbiAgaWYgKCFpbnN0YW5jZSkge1xuICAgIGNvbnN0IGF2YWlsYWJsZSA9IE9iamVjdC5rZXlzKGFnZW50cykuam9pbihcIiwgXCIpO1xuICAgIGNvbnN0IGJvZHkgPVxuICAgICAgXFxgQWdlbnQgXCJcXCR7bmFtZX1cIiBub3QgZm91bmQuXFxcXG5cXFxcblxcYCArXG4gICAgICBcXGBBdmFpbGFibGUgYWdlbnRzOiBcXCR7YXZhaWxhYmxlfVxcXFxuXFxcXG5cXGAgK1xuICAgICAgXFxgaGludDogZWFjaCBmb2xkZXIgaW5zaWRlIGFnZW50cy8gYmVjb21lcyBhbiBhZ2VudC5cXFxcblxcYCArXG4gICAgICBcXGAgICAgICBDcmVhdGUgYWdlbnRzL1xcJHtuYW1lfS8gdG8gYWRkIHRoaXMgYWdlbnQuXFxcXG5cXGA7XG4gICAgcmV0dXJuIG5ldyBSZXNwb25zZShib2R5LCB7IHN0YXR1czogNDA0IH0pO1xuICB9XG5cbiAgcmV0dXJuIGhhbmRsZVJlcXVlc3QoaW5zdGFuY2UsIHsgYmFzZVBhdGg6IFxcYC8ud2VsbC1rbm93bi9hZ2VudHMvXFwke25hbWV9XFxgLCB3b3JrZmxvdyB9KS5mZXRjaChyZXEpO1xufVxuXG5leHBvcnQgY29uc3QgR0VUID0gaGFuZGxlcjtcbmV4cG9ydCBjb25zdCBQT1NUID0gaGFuZGxlcjtcbmA7XG4gIH1cblxuICAvKipcbiAgICogUHVyZSBjb2RlZ2VuIHN0ZXA6IHNjYW4gYWdlbnRzIGFuZCByZXR1cm4gdGhlIGdlbmVyYXRlZCBzb3VyY2VcbiAgICogc3RyaW5ncyB3aXRob3V0IHRvdWNoaW5nIHRoZSBmaWxlc3lzdGVtLiBVc2VmdWwgZm9yIGFkYXB0ZXJzIHRoYXRcbiAgICogbmVlZCB0byBjb250cm9sIHdoZXJlIGFuZCBob3cgZmlsZXMgYXJlIHdyaXR0ZW4uXG4gICAqXG4gICAqIFJldHVybnMgYG51bGxgIHdoZW4gbm8gYWdlbnRzIGFyZSBmb3VuZC5cbiAgICovXG4gIGZpbGVzVG9Xcml0ZSgpOiB7XG4gICAgcmVnaXN0cnlTb3VyY2U6IHN0cmluZztcbiAgICByb3V0ZVNvdXJjZTogc3RyaW5nO1xuICAgIGRpcjogc3RyaW5nO1xuICB9IHwgbnVsbCB7XG4gICAgY29uc3QgYWdlbnRzID0gdGhpcy5mcmFtZXdvcmsuZGlzY292ZXJBZ2VudHMoKTtcblxuICAgIGlmIChhZ2VudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLmZyYW1ld29yay5sb2coXG4gICAgICBcImRpc2NvdmVyZWQgYWdlbnRzOlwiLFxuICAgICAgYWdlbnRzLm1hcCgoYSkgPT4gYS5uYW1lKVxuICAgICk7XG5cbiAgICBjb25zdCBkaXIgPSBwYXRoLmpvaW4oXG4gICAgICB0aGlzLmZyYW1ld29yay5jd2QsXG4gICAgICB0aGlzLmFwcERpcixcbiAgICAgIFwiLndlbGwta25vd25cIixcbiAgICAgIFwiYWdlbnRzXCIsXG4gICAgICBcIlthZ2VudF1cIixcbiAgICAgIFwiW1suLi5wYXRoXV1cIlxuICAgICk7XG5cbiAgICBjb25zdCByZWdpc3RyeVNvdXJjZSA9IHRoaXMuZnJhbWV3b3JrLmdlbmVyYXRlUmVnaXN0cnlTb3VyY2Uoe1xuICAgICAgYWdlbnRzLFxuICAgICAgb3V0cHV0RGlyOiBkaXIsXG4gICAgfSk7XG4gICAgY29uc3Qgcm91dGVTb3VyY2UgPSB0aGlzLmdlbmVyYXRlTmV4dFJvdXRlSGFuZGxlclNvdXJjZSh7XG4gICAgICByZWdpc3RyeUltcG9ydFBhdGg6IFwiLi9fcmVnaXN0cnlcIixcbiAgICB9KTtcblxuICAgIHJldHVybiB7IHJlZ2lzdHJ5U291cmNlLCByb3V0ZVNvdXJjZSwgZGlyIH07XG4gIH1cblxuICAvKipcbiAgICogU2NhbiBmb3IgYWdlbnRzLCBnZW5lcmF0ZSBzb3VyY2UsIGFuZCB3cml0ZSB0aGUgYF9yZWdpc3RyeS50c2AgYW5kXG4gICAqIGByb3V0ZS50c2AgZmlsZXMgaW50byB0aGUgTmV4dC5qcyBhcHAgZGlyZWN0b3J5LlxuICAgKi9cbiAgd3JpdGVGaWxlcygpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlc1RvV3JpdGUgPSB0aGlzLmZpbGVzVG9Xcml0ZSgpO1xuXG4gICAgaWYgKCFmaWxlc1RvV3JpdGUpIHtcbiAgICAgIGNvbnNvbGUud2FybihcIlt3aXRoQWdlbnRzXSBObyBhZ2VudHMgZm91bmRcIik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyByZWdpc3RyeVNvdXJjZSwgcm91dGVTb3VyY2UsIGRpciB9ID0gZmlsZXNUb1dyaXRlO1xuXG4gICAgZnMubWtkaXJTeW5jKGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4oZGlyLCBcIl9yZWdpc3RyeS50c1wiKSwgcmVnaXN0cnlTb3VyY2UpO1xuICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKGRpciwgXCJyb3V0ZS50c1wiKSwgcm91dGVTb3VyY2UpO1xuXG4gICAgY29uc3QgZ2l0aWdub3JlUGF0aCA9IHBhdGguam9pbihkaXIsIFwiLmdpdGlnbm9yZVwiKTtcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZ2l0aWdub3JlUGF0aCkpIHtcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoZ2l0aWdub3JlUGF0aCwgXCIqXFxuXCIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFzQXBwTGF5b3V0KGRpcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFtcImxheW91dC50c3hcIiwgXCJsYXlvdXQuanNcIiwgXCJsYXlvdXQuanN4XCJdLnNvbWUoKGYpID0+XG4gICAgICBmcy5leGlzdHNTeW5jKHBhdGguam9pbihkaXIsIGYpKVxuICAgICk7XG4gIH1cbn1cbiIsICJpbXBvcnQgeyBGcmFtZXdvcmsgfSBmcm9tIFwiLi4vZnJhbWV3b3JrL2ZyYW1ld29ya1wiO1xuaW1wb3J0IHsgTmV4dCwgdHlwZSBOZXh0Q29uZmlnSW5wdXQgfSBmcm9tIFwiLi9uZXh0XCI7XG5cbmV4cG9ydCB0eXBlIHsgTmV4dENvbmZpZ0lucHV0LCBXaXRoQWdlbnRzQ29uZmlnIH0gZnJvbSBcIi4vbmV4dFwiO1xuXG4vKipcbiAqIE5leHQuanMgY29uZmlnIHdyYXBwZXIgdGhhdCBkaXNjb3ZlcnMgYWdlbnRzIG9uIHRoZSBmaWxlc3lzdGVtIGFuZFxuICogZ2VuZXJhdGVzIHRoZSByb3V0ZSBoYW5kbGVyICsgcmVnaXN0cnkgZmlsZXMgbmVlZGVkIHRvIHNlcnZlIHRoZW0uXG4gKlxuICogQ2FsbCB0aGlzIGluIGBuZXh0LmNvbmZpZy50c2A6XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyB3aXRoQWdlbnRzIH0gZnJvbSBcImV4cGVyaW1lbnRhbC1hZ2VudC9uZXh0L2FnZW50c1wiO1xuICpcbiAqIGV4cG9ydCBkZWZhdWx0IHdpdGhBZ2VudHMoeyByZWFjdFN0cmljdE1vZGU6IHRydWUgfSk7XG4gKiBgYGBcbiAqXG4gKiBEZWJ1ZyBsb2dzOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IHdpdGhBZ2VudHMgfSBmcm9tIFwiZXhwZXJpbWVudGFsLWFnZW50L25leHQvYWdlbnRzXCI7XG4gKlxuICogZXhwb3J0IGRlZmF1bHQgd2l0aEFnZW50cyh7IHJlYWN0U3RyaWN0TW9kZTogdHJ1ZSB9LCB7IGRlYnVnOiB0cnVlIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoQWdlbnRzKFxuICBjb25maWc6IE5leHRDb25maWdJbnB1dCxcbiAgYWdlbnRzQ29uZmlnOiBQaWNrPFxuICAgIENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgRnJhbWV3b3JrPlswXSxcbiAgICBcImFnZW50c0RpclwiIHwgXCJkZWJ1Z1wiXG4gID4gPSB7fVxuKTogTmV4dENvbmZpZ0lucHV0IHtcbiAgY29uc3QgZnJhbWV3b3JrID0gbmV3IEZyYW1ld29yayhhZ2VudHNDb25maWcpO1xuICBjb25zdCBuZXh0ID0gbmV3IE5leHQoZnJhbWV3b3JrKTtcbiAgbmV4dC53cml0ZUZpbGVzKCk7XG5cbiAgcmV0dXJuIGNvbmZpZztcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7OztBQUFBLFlBQVksUUFBUTtBQUNwQixZQUFZLFVBQVU7QUEyQ2YsSUFBTSxPQUFOLE1BQVc7QUFBQSxFQUNoQixZQUE2QixXQUFzQjtBQUF0QjtBQUFBLEVBQXVCO0FBQUEsRUFFcEQsSUFBSSxTQUFpQjtBQUNuQixVQUFNLE1BQU0sS0FBSyxVQUFVO0FBQzNCLFVBQU0sWUFBaUIsVUFBSyxLQUFLLE9BQU8sS0FBSztBQUM3QyxVQUFNLGFBQWtCLFVBQUssS0FBSyxLQUFLO0FBRXZDLFFBQUksS0FBSyxhQUFhLFNBQVMsR0FBRztBQUNoQyxhQUFPO0FBQUEsSUFDVDtBQUNBLFFBQUksS0FBSyxhQUFhLFVBQVUsR0FBRztBQUNqQyxhQUFPO0FBQUEsSUFDVDtBQUNBLFFBQU8sY0FBVyxTQUFTLEdBQUc7QUFDNUIsYUFBTztBQUFBLElBQ1Q7QUFDQSxXQUFPO0FBQUEsRUFDVDtBQUFBLEVBRUEsK0JBQStCLE1BQThDO0FBQzNFLFdBQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx5QkFPYyxLQUFLLFVBQVUsS0FBSyxrQkFBa0IsQ0FBQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBK0I5RDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFTQSxlQUlTO0FBQ1AsVUFBTSxTQUFTLEtBQUssVUFBVSxlQUFlO0FBRTdDLFFBQUksT0FBTyxXQUFXLEdBQUc7QUFDdkIsYUFBTztBQUFBLElBQ1Q7QUFFQSxTQUFLLFVBQVU7QUFBQSxNQUNiO0FBQUEsTUFDQSxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSTtBQUFBLElBQzFCO0FBRUEsVUFBTSxNQUFXO0FBQUEsTUFDZixLQUFLLFVBQVU7QUFBQSxNQUNmLEtBQUs7QUFBQSxNQUNMO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUVBLFVBQU0saUJBQWlCLEtBQUssVUFBVSx1QkFBdUI7QUFBQSxNQUMzRDtBQUFBLE1BQ0EsV0FBVztBQUFBLElBQ2IsQ0FBQztBQUNELFVBQU0sY0FBYyxLQUFLLCtCQUErQjtBQUFBLE1BQ3RELG9CQUFvQjtBQUFBLElBQ3RCLENBQUM7QUFFRCxXQUFPLEVBQUUsZ0JBQWdCLGFBQWEsSUFBSTtBQUFBLEVBQzVDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU1BLGFBQW1CO0FBQ2pCLFVBQU0sZUFBZSxLQUFLLGFBQWE7QUFFdkMsUUFBSSxDQUFDLGNBQWM7QUFDakIsY0FBUSxLQUFLLDhCQUE4QjtBQUMzQztBQUFBLElBQ0Y7QUFFQSxVQUFNLEVBQUUsZ0JBQWdCLGFBQWEsSUFBSSxJQUFJO0FBRTdDLElBQUcsYUFBVSxLQUFLLEVBQUUsV0FBVyxLQUFLLENBQUM7QUFDckMsSUFBRyxpQkFBbUIsVUFBSyxLQUFLLGNBQWMsR0FBRyxjQUFjO0FBQy9ELElBQUcsaUJBQW1CLFVBQUssS0FBSyxVQUFVLEdBQUcsV0FBVztBQUV4RCxVQUFNLGdCQUFxQixVQUFLLEtBQUssWUFBWTtBQUNqRCxRQUFJLENBQUksY0FBVyxhQUFhLEdBQUc7QUFDakMsTUFBRyxpQkFBYyxlQUFlLEtBQUs7QUFBQSxJQUN2QztBQUFBLEVBQ0Y7QUFBQSxFQUVRLGFBQWEsS0FBc0I7QUFDekMsV0FBTyxDQUFDLGNBQWMsYUFBYSxZQUFZLEVBQUU7QUFBQSxNQUFLLENBQUMsTUFDbEQsY0FBZ0IsVUFBSyxLQUFLLENBQUMsQ0FBQztBQUFBLElBQ2pDO0FBQUEsRUFDRjtBQUNGOzs7QUN4Sk8sU0FBUyxXQUNkLFFBQ0EsZUFHSSxDQUFDLEdBQ1k7QUFDakIsUUFBTSxZQUFZLElBQUksVUFBVSxZQUFZO0FBQzVDLFFBQU0sT0FBTyxJQUFJLEtBQUssU0FBUztBQUMvQixPQUFLLFdBQVc7QUFFaEIsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
|
package/dist/next/loader.js
CHANGED
|
@@ -39,7 +39,7 @@ var import_core = require("@swc/core");
|
|
|
39
39
|
// package.json
|
|
40
40
|
var package_default = {
|
|
41
41
|
name: "experimental-agent",
|
|
42
|
-
version: "0.8.0
|
|
42
|
+
version: "0.8.0",
|
|
43
43
|
main: "./dist/index.js",
|
|
44
44
|
module: "./dist/index.mjs",
|
|
45
45
|
types: "./dist/index.d.ts",
|
|
@@ -259,4 +259,4 @@ function findAgentExports(ast) {
|
|
|
259
259
|
}
|
|
260
260
|
return exports2;
|
|
261
261
|
}
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL25leHQvbG9hZGVyLnRzIiwgIi4uLy4uL3BhY2thZ2UuanNvbiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyB0eXBlIE1vZHVsZSwgcGFyc2VTeW5jIH0gZnJvbSBcIkBzd2MvY29yZVwiO1xuaW1wb3J0IHBrZyBmcm9tIFwiLi4vLi4vcGFja2FnZS5qc29uXCI7XG5cbnR5cGUgTG9hZGVyT3B0aW9ucyA9IHtcbiAgZGVidWc/OiBib29sZWFuO1xuICBhcHBEaXI/OiBzdHJpbmc7XG59O1xuXG50eXBlIExvYWRlckNvbnRleHQgPSB7XG4gIHJlc291cmNlUGF0aDogc3RyaW5nO1xuICBnZXRPcHRpb25zKCk6IExvYWRlck9wdGlvbnM7XG59O1xuXG5jb25zdCBQQUNLQUdFX05BTUUgPSBwa2cubmFtZTtcbmNvbnN0IEFHRU5UX1BST1RPQ09MX1ZFUlNJT04gPSBcInYxXCI7XG5jb25zdCBUWVBFU0NSSVBUX0VYVF9SRUdFWCA9IC9cXC4odHN8dHN4fG10c3xjdHMpJC87XG5cbi8qKlxuICogV2VicGFjay9UdXJib3BhY2sgbG9hZGVyIHRoYXQgd2lyZXMgdXAgYWdlbnQucnBjIGJ5IHJlcXVpcmluZyBzdGVwcy5qc1xuICogYXQgdGhlIEVORCBvZiB0aGUgZmlsZS4gVXNpbmcgcmVxdWlyZSgpIGF2b2lkcyBpbXBvcnQgaG9pc3RpbmcgaXNzdWVzLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZ2VudFJwY0xvYWRlcihcbiAgdGhpczogTG9hZGVyQ29udGV4dCxcbiAgc291cmNlOiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIGNvbnN0IHsgZGVidWcsIGFwcERpcjogYXBwRGlyT3B0aW9uIH0gPSB0aGlzLmdldE9wdGlvbnMoKTtcbiAgY29uc3QgbG9nID0gZGVidWdcbiAgICA/ICguLi5hcmdzOiB1bmtub3duW10pID0+IGNvbnNvbGUubG9nKFwiW2FnZW50LWxvYWRlcl1cIiwgLi4uYXJncylcbiAgICA6ICgpID0+IHVuZGVmaW5lZDtcblxuICBsb2coXCJwcm9jZXNzaW5nOlwiLCB0aGlzLnJlc291cmNlUGF0aCk7XG5cbiAgaWYgKCFzb3VyY2UuaW5jbHVkZXMoUEFDS0FHRV9OQU1FKSkge1xuICAgIGxvZyhcInNraXBwaW5nIC0gbm8gcGFja2FnZSBuYW1lXCIpO1xuICAgIHJldHVybiBzb3VyY2U7XG4gIH1cblxuICBjb25zdCBmaWxlbmFtZSA9IHRoaXMucmVzb3VyY2VQYXRoO1xuICBjb25zdCBpc1R5cGVTY3JpcHQgPSBUWVBFU0NSSVBUX0VYVF9SRUdFWC50ZXN0KGZpbGVuYW1lKTtcblxuICBsZXQgYXN0OiBNb2R1bGU7XG4gIHRyeSB7XG4gICAgYXN0ID0gcGFyc2VTeW5jKHNvdXJjZSwge1xuICAgICAgc3ludGF4OiBpc1R5cGVTY3JpcHQgPyBcInR5cGVzY3JpcHRcIiA6IFwiZWNtYXNjcmlwdFwiLFxuICAgICAgdHN4OiBmaWxlbmFtZS5lbmRzV2l0aChcIi50c3hcIiksXG4gICAgICBqc3g6IGZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzeFwiKSxcbiAgICB9KTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfVxuXG4gIGNvbnN0IGFnZW50RXhwb3J0cyA9IGZpbmRBZ2VudEV4cG9ydHMoYXN0KTtcbiAgaWYgKGFnZW50RXhwb3J0cy5sZW5ndGggPT09IDApIHtcbiAgICBsb2coXCJza2lwcGluZyAtIG5vIGFnZW50IGV4cG9ydHNcIik7XG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfVxuXG4gIGxvZyhcImZvdW5kIGFnZW50IGV4cG9ydHM6XCIsIGFnZW50RXhwb3J0cyk7XG5cbiAgY29uc3QgZmlsZURpciA9IHBhdGguZGlybmFtZShmaWxlbmFtZSk7XG5cbiAgbGV0IGFwcERpcjogc3RyaW5nO1xuICBpZiAoYXBwRGlyT3B0aW9uKSB7XG4gICAgYXBwRGlyID0gYXBwRGlyT3B0aW9uO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHNyY0luZGV4ID0gZmlsZW5hbWUubGFzdEluZGV4T2YoYCR7cGF0aC5zZXB9c3JjJHtwYXRoLnNlcH1gKTtcbiAgICBpZiAoc3JjSW5kZXggIT09IC0xKSB7XG4gICAgICBjb25zdCBzcmNEaXIgPSBmaWxlbmFtZS5zdWJzdHJpbmcoMCwgc3JjSW5kZXggKyA0KTtcbiAgICAgIGFwcERpciA9IHBhdGguam9pbihzcmNEaXIsIFwiYXBwXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBhcHBTZXAgPSBgJHtwYXRoLnNlcH1hcHAke3BhdGguc2VwfWA7XG4gICAgICBjb25zdCBhcHBJbmRleCA9IGZpbGVuYW1lLmxhc3RJbmRleE9mKGFwcFNlcCk7XG4gICAgICBpZiAoYXBwSW5kZXggIT09IC0xKSB7XG4gICAgICAgIGFwcERpciA9IGZpbGVuYW1lLnN1YnN0cmluZygwLCBhcHBJbmRleCArIGFwcFNlcC5sZW5ndGggLSAxKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZyhcInNraXBwaW5nIC0gbm8gc3JjLyBvciBhcHAvIGRpciBmb3VuZFwiKTtcbiAgICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBzdGVwc1BhdGggPSBwYXRoLmpvaW4oXG4gICAgYXBwRGlyLFxuICAgIFwiLndlbGwta25vd25cIixcbiAgICBcImFnZW50XCIsXG4gICAgQUdFTlRfUFJPVE9DT0xfVkVSU0lPTixcbiAgICBcInN0ZXBzLmpzXCJcbiAgKTtcbiAgbGV0IHJlbGF0aXZlUGF0aCA9IHBhdGgucmVsYXRpdmUoZmlsZURpciwgc3RlcHNQYXRoKS5yZXBsYWNlKC9cXFxcL2csIFwiL1wiKTtcblxuICBpZiAoIShyZWxhdGl2ZVBhdGguc3RhcnRzV2l0aChcIi4vXCIpIHx8IHJlbGF0aXZlUGF0aC5zdGFydHNXaXRoKFwiLi4vXCIpKSkge1xuICAgIHJlbGF0aXZlUGF0aCA9IGAuLyR7cmVsYXRpdmVQYXRofWA7XG4gIH1cblxuICBjb25zdCBpbml0Q2FsbHMgPSBhZ2VudEV4cG9ydHNcbiAgICAubWFwKChuYW1lKSA9PiB7XG4gICAgICBjb25zdCBpbml0TmFtZSA9IGBfX2luaXQke25hbWVbMF0udG9VcHBlckNhc2UoKX0ke25hbWUuc2xpY2UoMSl9YDtcbiAgICAgIHJldHVybiBgJHtpbml0TmFtZX0oJHtuYW1lfSk7YDtcbiAgICB9KVxuICAgIC5qb2luKFwiXFxuXCIpO1xuXG4gIGNvbnN0IGluaXRJbXBvcnRzID0gYWdlbnRFeHBvcnRzXG4gICAgLm1hcCgobmFtZSkgPT4gYF9faW5pdCR7bmFtZVswXS50b1VwcGVyQ2FzZSgpfSR7bmFtZS5zbGljZSgxKX1gKVxuICAgIC5qb2luKFwiLCBcIik7XG5cbiAgbG9nKFwiaW5qZWN0aW5nIGluaXQgY2FsbHMgZm9yOlwiLCBhZ2VudEV4cG9ydHMpO1xuICByZXR1cm4gYCR7c291cmNlfVxuaW1wb3J0IHsgJHtpbml0SW1wb3J0c30gfSBmcm9tIFwiJHtyZWxhdGl2ZVBhdGh9XCI7XG4ke2luaXRDYWxsc31gO1xufVxuXG5mdW5jdGlvbiBmaW5kQWdlbnRFeHBvcnRzKGFzdDogTW9kdWxlKTogc3RyaW5nW10ge1xuICBsZXQgYWdlbnRMb2NhbE5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGZvciAoY29uc3QgaXRlbSBvZiBhc3QuYm9keSkge1xuICAgIGlmIChcbiAgICAgIGl0ZW0udHlwZSA9PT0gXCJJbXBvcnREZWNsYXJhdGlvblwiICYmXG4gICAgICBpdGVtLnNvdXJjZS52YWx1ZSA9PT0gUEFDS0FHRV9OQU1FXG4gICAgKSB7XG4gICAgICBmb3IgKGNvbnN0IHNwZWNpZmllciBvZiBpdGVtLnNwZWNpZmllcnMpIHtcbiAgICAgICAgaWYgKHNwZWNpZmllci50eXBlID09PSBcIkltcG9ydFNwZWNpZmllclwiKSB7XG4gICAgICAgICAgY29uc3QgaW1wb3J0ZWQgPVxuICAgICAgICAgICAgc3BlY2lmaWVyLmltcG9ydGVkPy50eXBlID09PSBcIklkZW50aWZpZXJcIlxuICAgICAgICAgICAgICA/IHNwZWNpZmllci5pbXBvcnRlZC52YWx1ZVxuICAgICAgICAgICAgICA6IHNwZWNpZmllci5sb2NhbC52YWx1ZTtcblxuICAgICAgICAgIGlmIChpbXBvcnRlZCA9PT0gXCJhZ2VudFwiKSB7XG4gICAgICAgICAgICBhZ2VudExvY2FsTmFtZSA9IHNwZWNpZmllci5sb2NhbC52YWx1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICghYWdlbnRMb2NhbE5hbWUpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBleHBvcnRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgaXRlbSBvZiBhc3QuYm9keSkge1xuICAgIGlmIChpdGVtLnR5cGUgPT09IFwiRXhwb3J0RGVjbGFyYXRpb25cIiAmJiBpdGVtLmRlY2xhcmF0aW9uKSB7XG4gICAgICBjb25zdCBkZWNsID0gaXRlbS5kZWNsYXJhdGlvbjtcbiAgICAgIGlmIChkZWNsLnR5cGUgPT09IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiKSB7XG4gICAgICAgIGZvciAoY29uc3QgZGVjbGFyYXRvciBvZiBkZWNsLmRlY2xhcmF0aW9ucykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGRlY2xhcmF0b3IuaWQudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIgJiZcbiAgICAgICAgICAgIGRlY2xhcmF0b3IuaW5pdD8udHlwZSA9PT0gXCJDYWxsRXhwcmVzc2lvblwiICYmXG4gICAgICAgICAgICBkZWNsYXJhdG9yLmluaXQuY2FsbGVlLnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXG4gICAgICAgICAgICBkZWNsYXJhdG9yLmluaXQuY2FsbGVlLnZhbHVlID09PSBhZ2VudExvY2FsTmFtZVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZXhwb3J0cy5wdXNoKGRlY2xhcmF0b3IuaWQudmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBleHBvcnRzO1xufVxuIiwgIntcbiAgXCJuYW1lXCI6IFwiZXhwZXJpbWVudGFsLWFnZW50XCIsXG4gIFwidmVyc2lvblwiOiBcIjAuOC4wLWFscGhhLjFcIixcbiAgXCJtYWluXCI6IFwiLi9kaXN0L2luZGV4LmpzXCIsXG4gIFwibW9kdWxlXCI6IFwiLi9kaXN0L2luZGV4Lm1qc1wiLFxuICBcInR5cGVzXCI6IFwiLi9kaXN0L2luZGV4LmQudHNcIixcbiAgXCJzaWRlRWZmZWN0c1wiOiB0cnVlLFxuICBcImxpY2Vuc2VcIjogXCJNSVRcIixcbiAgXCJmaWxlc1wiOiBbXG4gICAgXCJkaXN0LyoqXCJcbiAgXSxcbiAgXCJleHBvcnRzXCI6IHtcbiAgICBcIi5cIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9pbmRleC5kLnRzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC9pbmRleC5tanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC9pbmRleC5qc1wiXG4gICAgfSxcbiAgICBcIi4vc3RvcmFnZVwiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L3N0b3JhZ2UuZC50c1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3Qvc3RvcmFnZS5tanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC9zdG9yYWdlLmpzXCJcbiAgICB9LFxuICAgIFwiLi9zYW5kYm94XCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3Qvc2FuZGJveC5kLnRzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC9zYW5kYm94Lm1qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0L3NhbmRib3guanNcIlxuICAgIH0sXG4gICAgXCIuL25leHRcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9uZXh0LmQudHNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0L25leHQubWpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QvbmV4dC5qc1wiXG4gICAgfSxcbiAgICBcIi4vbmV4dC9sb2FkZXJcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9uZXh0L2xvYWRlci5kLnRzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC9uZXh0L2xvYWRlci5tanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC9uZXh0L2xvYWRlci5qc1wiXG4gICAgfSxcbiAgICBcIi4vbmV4dC9hZ2VudHNcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9uZXh0L2FnZW50cy5kLnRzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC9uZXh0L2FnZW50cy5tanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC9uZXh0L2FnZW50cy5qc1wiXG4gICAgfSxcbiAgICBcIi4vZnJhbWV3b3JrXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QvZnJhbWV3b3JrLmQudHNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0L2ZyYW1ld29yay5tanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC9mcmFtZXdvcmsuanNcIlxuICAgIH0sXG4gICAgXCIuL2ZyYW1ld29yay1ydW50aW1lXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QvZnJhbWV3b3JrLXJ1bnRpbWUuZC50c1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QvZnJhbWV3b3JrLXJ1bnRpbWUubWpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QvZnJhbWV3b3JrLXJ1bnRpbWUuanNcIlxuICAgIH0sXG4gICAgXCIuL2NsaWVudFwiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L2NsaWVudC5kLnRzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC9jbGllbnQubWpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QvY2xpZW50LmpzXCJcbiAgICB9LFxuICAgIFwiLi9saWZlY3ljbGUtd29ya2Zsb3dcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9saWZlY3ljbGUtd29ya2Zsb3cuZC50c1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QvbGlmZWN5Y2xlLXdvcmtmbG93Lm1qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0L2xpZmVjeWNsZS13b3JrZmxvdy5qc1wiXG4gICAgfSxcbiAgICBcIi4vbGlmZWN5Y2xlLXdvcmtmbG93LXN0ZXBzXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QvbGlmZWN5Y2xlLXdvcmtmbG93LXN0ZXBzLmQudHNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0L2xpZmVjeWNsZS13b3JrZmxvdy1zdGVwcy5tanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC9saWZlY3ljbGUtd29ya2Zsb3ctc3RlcHMuanNcIlxuICAgIH0sXG4gICAgXCIuL3JlYWN0XCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QvcmVhY3QuZC50c1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QvcmVhY3QubWpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QvcmVhY3QuanNcIlxuICAgIH1cbiAgfSxcbiAgXCJzY3JpcHRzXCI6IHtcbiAgICBcImJ1aWxkXCI6IFwidHN1cFwiLFxuICAgIFwiZGV2XCI6IFwidHN1cCAtLXdhdGNoXCIsXG4gICAgXCJjbGVhblwiOiBcInJtIC1yZiAudHVyYm8gJiYgcm0gLXJmIG5vZGVfbW9kdWxlcyAmJiBybSAtcmYgZGlzdFwiLFxuICAgIFwicmVsZWFzZVwiOiBcInBucG0gYnVpbGQgJiYgbnBtIHB1Ymxpc2hcIixcbiAgICBcInR5cGVjaGVja1wiOiBcInRzYyAtLW5vRW1pdFwiLFxuICAgIFwidGVzdFwiOiBcInZpdGVzdCBydW5cIixcbiAgICBcInRlc3Q6d2F0Y2hcIjogXCJ2aXRlc3RcIlxuICB9LFxuICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAZWx5c2lhanMvb3BlbmFwaVwiOiBcIl4xLjQuMTRcIixcbiAgICBcIkBzd2MvY29yZVwiOiBcIl4xLjEwLjBcIixcbiAgICBcIkB0YW5zdGFjay9yZWFjdC1xdWVyeVwiOiBcIl41LjkwLjIxXCIsXG4gICAgXCJAdmVyY2VsL2t2MlwiOiBcIl4wLjAuMThcIixcbiAgICBcIkB2ZXJjZWwvb2lkY1wiOiBcIl4zLjEuMFwiLFxuICAgIFwiQHZlcmNlbC9zYW5kYm94XCI6IFwiMS43LjFcIixcbiAgICBcIkB3b3JrZmxvdy9zZXJkZVwiOiBcIjQuMS4wLWJldGEuMlwiLFxuICAgIFwiYmV0dGVyLWFsbFwiOiBcIl4wLjAuNVwiLFxuICAgIFwiZWx5c2lhXCI6IFwiXjEuNC4yNVwiLFxuICAgIFwiZXJyb3JlXCI6IFwiXjAuMTQuMFwiLFxuICAgIFwiZmFzdC1kZWVwLWVxdWFsXCI6IFwiXjMuMS4zXCIsXG4gICAgXCJ1bGlkXCI6IFwiXjMuMC4yXCIsXG4gICAgXCJ6b2RcIjogXCJeNC4zLjZcIlxuICB9LFxuICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAYWdlbnQvdHNjb25maWdcIjogXCJ3b3Jrc3BhY2U6KlwiLFxuICAgIFwiQGFpLXNkay9yZWFjdFwiOiBcIl4zLjAuODhcIixcbiAgICBcIkB0eXBlcy9ub2RlXCI6IFwiXjIwLjExLjI0XCIsXG4gICAgXCJAdHlwZXMvcmVhY3RcIjogXCJeMTkuMi4xNFwiLFxuICAgIFwiZG90ZW52XCI6IFwiXjE3LjIuM1wiLFxuICAgIFwibmV4dFwiOiBcIl4xNi4wLjBcIixcbiAgICBcInJlYWN0XCI6IFwiXjE5LjIuNFwiLFxuICAgIFwidHN1cFwiOiBcIl44LjAuMlwiLFxuICAgIFwidHlwZXNjcmlwdFwiOiBcIjUuNS40XCIsXG4gICAgXCJ2aXRlc3RcIjogXCJeMy4wLjBcIixcbiAgICBcIndvcmtmbG93XCI6IFwiNC4yLjAtYmV0YS43MFwiXG4gIH0sXG4gIFwicGVlckRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJhaVwiOiBcIl42LjAuMFwiXG4gIH0sXG4gIFwicHVibGlzaENvbmZpZ1wiOiB7XG4gICAgXCJhY2Nlc3NcIjogXCJwdWJsaWNcIlxuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0FBc0I7QUFDdEIsa0JBQXVDOzs7QUNEdkM7QUFBQSxFQUNFLE1BQVE7QUFBQSxFQUNSLFNBQVc7QUFBQSxFQUNYLE1BQVE7QUFBQSxFQUNSLFFBQVU7QUFBQSxFQUNWLE9BQVM7QUFBQSxFQUNULGFBQWU7QUFBQSxFQUNmLFNBQVc7QUFBQSxFQUNYLE9BQVM7QUFBQSxJQUNQO0FBQUEsRUFDRjtBQUFBLEVBQ0EsU0FBVztBQUFBLElBQ1QsS0FBSztBQUFBLE1BQ0gsT0FBUztBQUFBLE1BQ1QsUUFBVTtBQUFBLE1BQ1YsU0FBVztBQUFBLElBQ2I7QUFBQSxJQUNBLGFBQWE7QUFBQSxNQUNYLE9BQVM7QUFBQSxNQUNULFFBQVU7QUFBQSxNQUNWLFNBQVc7QUFBQSxJQUNiO0FBQUEsSUFDQSxhQUFhO0FBQUEsTUFDWCxPQUFTO0FBQUEsTUFDVCxRQUFVO0FBQUEsTUFDVixTQUFXO0FBQUEsSUFDYjtBQUFBLElBQ0EsVUFBVTtBQUFBLE1BQ1IsT0FBUztBQUFBLE1BQ1QsUUFBVTtBQUFBLE1BQ1YsU0FBVztBQUFBLElBQ2I7QUFBQSxJQUNBLGlCQUFpQjtBQUFBLE1BQ2YsT0FBUztBQUFBLE1BQ1QsUUFBVTtBQUFBLE1BQ1YsU0FBVztBQUFBLElBQ2I7QUFBQSxJQUNBLGlCQUFpQjtBQUFBLE1BQ2YsT0FBUztBQUFBLE1BQ1QsUUFBVTtBQUFBLE1BQ1YsU0FBVztBQUFBLElBQ2I7QUFBQSxJQUNBLGVBQWU7QUFBQSxNQUNiLE9BQVM7QUFBQSxNQUNULFFBQVU7QUFBQSxNQUNWLFNBQVc7QUFBQSxJQUNiO0FBQUEsSUFDQSx1QkFBdUI7QUFBQSxN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
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL25leHQvbG9hZGVyLnRzIiwgIi4uLy4uL3BhY2thZ2UuanNvbiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyB0eXBlIE1vZHVsZSwgcGFyc2VTeW5jIH0gZnJvbSBcIkBzd2MvY29yZVwiO1xuaW1wb3J0IHBrZyBmcm9tIFwiLi4vLi4vcGFja2FnZS5qc29uXCI7XG5cbnR5cGUgTG9hZGVyT3B0aW9ucyA9IHtcbiAgZGVidWc/OiBib29sZWFuO1xuICBhcHBEaXI/OiBzdHJpbmc7XG59O1xuXG50eXBlIExvYWRlckNvbnRleHQgPSB7XG4gIHJlc291cmNlUGF0aDogc3RyaW5nO1xuICBnZXRPcHRpb25zKCk6IExvYWRlck9wdGlvbnM7XG59O1xuXG5jb25zdCBQQUNLQUdFX05BTUUgPSBwa2cubmFtZTtcbmNvbnN0IEFHRU5UX1BST1RPQ09MX1ZFUlNJT04gPSBcInYxXCI7XG5jb25zdCBUWVBFU0NSSVBUX0VYVF9SRUdFWCA9IC9cXC4odHN8dHN4fG10c3xjdHMpJC87XG5cbi8qKlxuICogV2VicGFjay9UdXJib3BhY2sgbG9hZGVyIHRoYXQgd2lyZXMgdXAgYWdlbnQucnBjIGJ5IHJlcXVpcmluZyBzdGVwcy5qc1xuICogYXQgdGhlIEVORCBvZiB0aGUgZmlsZS4gVXNpbmcgcmVxdWlyZSgpIGF2b2lkcyBpbXBvcnQgaG9pc3RpbmcgaXNzdWVzLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZ2VudFJwY0xvYWRlcihcbiAgdGhpczogTG9hZGVyQ29udGV4dCxcbiAgc291cmNlOiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIGNvbnN0IHsgZGVidWcsIGFwcERpcjogYXBwRGlyT3B0aW9uIH0gPSB0aGlzLmdldE9wdGlvbnMoKTtcbiAgY29uc3QgbG9nID0gZGVidWdcbiAgICA/ICguLi5hcmdzOiB1bmtub3duW10pID0+IGNvbnNvbGUubG9nKFwiW2FnZW50LWxvYWRlcl1cIiwgLi4uYXJncylcbiAgICA6ICgpID0+IHVuZGVmaW5lZDtcblxuICBsb2coXCJwcm9jZXNzaW5nOlwiLCB0aGlzLnJlc291cmNlUGF0aCk7XG5cbiAgaWYgKCFzb3VyY2UuaW5jbHVkZXMoUEFDS0FHRV9OQU1FKSkge1xuICAgIGxvZyhcInNraXBwaW5nIC0gbm8gcGFja2FnZSBuYW1lXCIpO1xuICAgIHJldHVybiBzb3VyY2U7XG4gIH1cblxuICBjb25zdCBmaWxlbmFtZSA9IHRoaXMucmVzb3VyY2VQYXRoO1xuICBjb25zdCBpc1R5cGVTY3JpcHQgPSBUWVBFU0NSSVBUX0VYVF9SRUdFWC50ZXN0KGZpbGVuYW1lKTtcblxuICBsZXQgYXN0OiBNb2R1bGU7XG4gIHRyeSB7XG4gICAgYXN0ID0gcGFyc2VTeW5jKHNvdXJjZSwge1xuICAgICAgc3ludGF4OiBpc1R5cGVTY3JpcHQgPyBcInR5cGVzY3JpcHRcIiA6IFwiZWNtYXNjcmlwdFwiLFxuICAgICAgdHN4OiBmaWxlbmFtZS5lbmRzV2l0aChcIi50c3hcIiksXG4gICAgICBqc3g6IGZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzeFwiKSxcbiAgICB9KTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfVxuXG4gIGNvbnN0IGFnZW50RXhwb3J0cyA9IGZpbmRBZ2VudEV4cG9ydHMoYXN0KTtcbiAgaWYgKGFnZW50RXhwb3J0cy5sZW5ndGggPT09IDApIHtcbiAgICBsb2coXCJza2lwcGluZyAtIG5vIGFnZW50IGV4cG9ydHNcIik7XG4gICAgcmV0dXJuIHNvdXJjZTtcbiAgfVxuXG4gIGxvZyhcImZvdW5kIGFnZW50IGV4cG9ydHM6XCIsIGFnZW50RXhwb3J0cyk7XG5cbiAgY29uc3QgZmlsZURpciA9IHBhdGguZGlybmFtZShmaWxlbmFtZSk7XG5cbiAgbGV0IGFwcERpcjogc3RyaW5nO1xuICBpZiAoYXBwRGlyT3B0aW9uKSB7XG4gICAgYXBwRGlyID0gYXBwRGlyT3B0aW9uO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHNyY0luZGV4ID0gZmlsZW5hbWUubGFzdEluZGV4T2YoYCR7cGF0aC5zZXB9c3JjJHtwYXRoLnNlcH1gKTtcbiAgICBpZiAoc3JjSW5kZXggIT09IC0xKSB7XG4gICAgICBjb25zdCBzcmNEaXIgPSBmaWxlbmFtZS5zdWJzdHJpbmcoMCwgc3JjSW5kZXggKyA0KTtcbiAgICAgIGFwcERpciA9IHBhdGguam9pbihzcmNEaXIsIFwiYXBwXCIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBhcHBTZXAgPSBgJHtwYXRoLnNlcH1hcHAke3BhdGguc2VwfWA7XG4gICAgICBjb25zdCBhcHBJbmRleCA9IGZpbGVuYW1lLmxhc3RJbmRleE9mKGFwcFNlcCk7XG4gICAgICBpZiAoYXBwSW5kZXggIT09IC0xKSB7XG4gICAgICAgIGFwcERpciA9IGZpbGVuYW1lLnN1YnN0cmluZygwLCBhcHBJbmRleCArIGFwcFNlcC5sZW5ndGggLSAxKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZyhcInNraXBwaW5nIC0gbm8gc3JjLyBvciBhcHAvIGRpciBmb3VuZFwiKTtcbiAgICAgICAgcmV0dXJuIHNvdXJjZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBzdGVwc1BhdGggPSBwYXRoLmpvaW4oXG4gICAgYXBwRGlyLFxuICAgIFwiLndlbGwta25vd25cIixcbiAgICBcImFnZW50XCIsXG4gICAgQUdFTlRfUFJPVE9DT0xfVkVSU0lPTixcbiAgICBcInN0ZXBzLmpzXCJcbiAgKTtcbiAgbGV0IHJlbGF0aXZlUGF0aCA9IHBhdGgucmVsYXRpdmUoZmlsZURpciwgc3RlcHNQYXRoKS5yZXBsYWNlKC9cXFxcL2csIFwiL1wiKTtcblxuICBpZiAoIShyZWxhdGl2ZVBhdGguc3RhcnRzV2l0aChcIi4vXCIpIHx8IHJlbGF0aXZlUGF0aC5zdGFydHNXaXRoKFwiLi4vXCIpKSkge1xuICAgIHJlbGF0aXZlUGF0aCA9IGAuLyR7cmVsYXRpdmVQYXRofWA7XG4gIH1cblxuICBjb25zdCBpbml0Q2FsbHMgPSBhZ2VudEV4cG9ydHNcbiAgICAubWFwKChuYW1lKSA9PiB7XG4gICAgICBjb25zdCBpbml0TmFtZSA9IGBfX2luaXQke25hbWVbMF0udG9VcHBlckNhc2UoKX0ke25hbWUuc2xpY2UoMSl9YDtcbiAgICAgIHJldHVybiBgJHtpbml0TmFtZX0oJHtuYW1lfSk7YDtcbiAgICB9KVxuICAgIC5qb2luKFwiXFxuXCIpO1xuXG4gIGNvbnN0IGluaXRJbXBvcnRzID0gYWdlbnRFeHBvcnRzXG4gICAgLm1hcCgobmFtZSkgPT4gYF9faW5pdCR7bmFtZVswXS50b1VwcGVyQ2FzZSgpfSR7bmFtZS5zbGljZSgxKX1gKVxuICAgIC5qb2luKFwiLCBcIik7XG5cbiAgbG9nKFwiaW5qZWN0aW5nIGluaXQgY2FsbHMgZm9yOlwiLCBhZ2VudEV4cG9ydHMpO1xuICByZXR1cm4gYCR7c291cmNlfVxuaW1wb3J0IHsgJHtpbml0SW1wb3J0c30gfSBmcm9tIFwiJHtyZWxhdGl2ZVBhdGh9XCI7XG4ke2luaXRDYWxsc31gO1xufVxuXG5mdW5jdGlvbiBmaW5kQWdlbnRFeHBvcnRzKGFzdDogTW9kdWxlKTogc3RyaW5nW10ge1xuICBsZXQgYWdlbnRMb2NhbE5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGZvciAoY29uc3QgaXRlbSBvZiBhc3QuYm9keSkge1xuICAgIGlmIChcbiAgICAgIGl0ZW0udHlwZSA9PT0gXCJJbXBvcnREZWNsYXJhdGlvblwiICYmXG4gICAgICBpdGVtLnNvdXJjZS52YWx1ZSA9PT0gUEFDS0FHRV9OQU1FXG4gICAgKSB7XG4gICAgICBmb3IgKGNvbnN0IHNwZWNpZmllciBvZiBpdGVtLnNwZWNpZmllcnMpIHtcbiAgICAgICAgaWYgKHNwZWNpZmllci50eXBlID09PSBcIkltcG9ydFNwZWNpZmllclwiKSB7XG4gICAgICAgICAgY29uc3QgaW1wb3J0ZWQgPVxuICAgICAgICAgICAgc3BlY2lmaWVyLmltcG9ydGVkPy50eXBlID09PSBcIklkZW50aWZpZXJcIlxuICAgICAgICAgICAgICA/IHNwZWNpZmllci5pbXBvcnRlZC52YWx1ZVxuICAgICAgICAgICAgICA6IHNwZWNpZmllci5sb2NhbC52YWx1ZTtcblxuICAgICAgICAgIGlmIChpbXBvcnRlZCA9PT0gXCJhZ2VudFwiKSB7XG4gICAgICAgICAgICBhZ2VudExvY2FsTmFtZSA9IHNwZWNpZmllci5sb2NhbC52YWx1ZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICghYWdlbnRMb2NhbE5hbWUpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjb25zdCBleHBvcnRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgaXRlbSBvZiBhc3QuYm9keSkge1xuICAgIGlmIChpdGVtLnR5cGUgPT09IFwiRXhwb3J0RGVjbGFyYXRpb25cIiAmJiBpdGVtLmRlY2xhcmF0aW9uKSB7XG4gICAgICBjb25zdCBkZWNsID0gaXRlbS5kZWNsYXJhdGlvbjtcbiAgICAgIGlmIChkZWNsLnR5cGUgPT09IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiKSB7XG4gICAgICAgIGZvciAoY29uc3QgZGVjbGFyYXRvciBvZiBkZWNsLmRlY2xhcmF0aW9ucykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGRlY2xhcmF0b3IuaWQudHlwZSA9PT0gXCJJZGVudGlmaWVyXCIgJiZcbiAgICAgICAgICAgIGRlY2xhcmF0b3IuaW5pdD8udHlwZSA9PT0gXCJDYWxsRXhwcmVzc2lvblwiICYmXG4gICAgICAgICAgICBkZWNsYXJhdG9yLmluaXQuY2FsbGVlLnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmXG4gICAgICAgICAgICBkZWNsYXJhdG9yLmluaXQuY2FsbGVlLnZhbHVlID09PSBhZ2VudExvY2FsTmFtZVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZXhwb3J0cy5wdXNoKGRlY2xhcmF0b3IuaWQudmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBleHBvcnRzO1xufVxuIiwgIntcbiAgXCJuYW1lXCI6IFwiZXhwZXJpbWVudGFsLWFnZW50XCIsXG4gIFwidmVyc2lvblwiOiBcIjAuOC4wXCIsXG4gIFwibWFpblwiOiBcIi4vZGlzdC9pbmRleC5qc1wiLFxuICBcIm1vZHVsZVwiOiBcIi4vZGlzdC9pbmRleC5tanNcIixcbiAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9pbmRleC5kLnRzXCIsXG4gIFwic2lkZUVmZmVjdHNcIjogdHJ1ZSxcbiAgXCJsaWNlbnNlXCI6IFwiTUlUXCIsXG4gIFwiZmlsZXNcIjogW1xuICAgIFwiZGlzdC8qKlwiXG4gIF0sXG4gIFwiZXhwb3J0c1wiOiB7XG4gICAgXCIuXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QvaW5kZXguZC50c1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QvaW5kZXgubWpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QvaW5kZXguanNcIlxuICAgIH0sXG4gICAgXCIuL3N0b3JhZ2VcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9zdG9yYWdlLmQudHNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0L3N0b3JhZ2UubWpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3Qvc3RvcmFnZS5qc1wiXG4gICAgfSxcbiAgICBcIi4vc2FuZGJveFwiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L3NhbmRib3guZC50c1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3Qvc2FuZGJveC5tanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC9zYW5kYm94LmpzXCJcbiAgICB9LFxuICAgIFwiLi9uZXh0XCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QvbmV4dC5kLnRzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC9uZXh0Lm1qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0L25leHQuanNcIlxuICAgIH0sXG4gICAgXCIuL25leHQvbG9hZGVyXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QvbmV4dC9sb2FkZXIuZC50c1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QvbmV4dC9sb2FkZXIubWpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QvbmV4dC9sb2FkZXIuanNcIlxuICAgIH0sXG4gICAgXCIuL25leHQvYWdlbnRzXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QvbmV4dC9hZ2VudHMuZC50c1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QvbmV4dC9hZ2VudHMubWpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QvbmV4dC9hZ2VudHMuanNcIlxuICAgIH0sXG4gICAgXCIuL2ZyYW1ld29ya1wiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L2ZyYW1ld29yay5kLnRzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC9mcmFtZXdvcmsubWpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QvZnJhbWV3b3JrLmpzXCJcbiAgICB9LFxuICAgIFwiLi9mcmFtZXdvcmstcnVudGltZVwiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L2ZyYW1ld29yay1ydW50aW1lLmQudHNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0L2ZyYW1ld29yay1ydW50aW1lLm1qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0L2ZyYW1ld29yay1ydW50aW1lLmpzXCJcbiAgICB9LFxuICAgIFwiLi9jbGllbnRcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9jbGllbnQuZC50c1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QvY2xpZW50Lm1qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0L2NsaWVudC5qc1wiXG4gICAgfSxcbiAgICBcIi4vbGlmZWN5Y2xlLXdvcmtmbG93XCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QvbGlmZWN5Y2xlLXdvcmtmbG93LmQudHNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0L2xpZmVjeWNsZS13b3JrZmxvdy5tanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC9saWZlY3ljbGUtd29ya2Zsb3cuanNcIlxuICAgIH0sXG4gICAgXCIuL2xpZmVjeWNsZS13b3JrZmxvdy1zdGVwc1wiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L2xpZmVjeWNsZS13b3JrZmxvdy1zdGVwcy5kLnRzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC9saWZlY3ljbGUtd29ya2Zsb3ctc3RlcHMubWpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QvbGlmZWN5Y2xlLXdvcmtmbG93LXN0ZXBzLmpzXCJcbiAgICB9LFxuICAgIFwiLi9yZWFjdFwiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L3JlYWN0LmQudHNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0L3JlYWN0Lm1qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0L3JlYWN0LmpzXCJcbiAgICB9XG4gIH0sXG4gIFwic2NyaXB0c1wiOiB7XG4gICAgXCJidWlsZFwiOiBcInRzdXBcIixcbiAgICBcImRldlwiOiBcInRzdXAgLS13YXRjaFwiLFxuICAgIFwiY2xlYW5cIjogXCJybSAtcmYgLnR1cmJvICYmIHJtIC1yZiBub2RlX21vZHVsZXMgJiYgcm0gLXJmIGRpc3RcIixcbiAgICBcInJlbGVhc2VcIjogXCJwbnBtIGJ1aWxkICYmIG5wbSBwdWJsaXNoXCIsXG4gICAgXCJ0eXBlY2hlY2tcIjogXCJ0c2MgLS1ub0VtaXRcIixcbiAgICBcInRlc3RcIjogXCJ2aXRlc3QgcnVuXCIsXG4gICAgXCJ0ZXN0OndhdGNoXCI6IFwidml0ZXN0XCJcbiAgfSxcbiAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQGVseXNpYWpzL29wZW5hcGlcIjogXCJeMS40LjE0XCIsXG4gICAgXCJAc3djL2NvcmVcIjogXCJeMS4xMC4wXCIsXG4gICAgXCJAdGFuc3RhY2svcmVhY3QtcXVlcnlcIjogXCJeNS45MC4yMVwiLFxuICAgIFwiQHZlcmNlbC9rdjJcIjogXCJeMC4wLjE4XCIsXG4gICAgXCJAdmVyY2VsL29pZGNcIjogXCJeMy4xLjBcIixcbiAgICBcIkB2ZXJjZWwvc2FuZGJveFwiOiBcIjEuNy4xXCIsXG4gICAgXCJAd29ya2Zsb3cvc2VyZGVcIjogXCI0LjEuMC1iZXRhLjJcIixcbiAgICBcImJldHRlci1hbGxcIjogXCJeMC4wLjVcIixcbiAgICBcImVseXNpYVwiOiBcIl4xLjQuMjVcIixcbiAgICBcImVycm9yZVwiOiBcIl4wLjE0LjBcIixcbiAgICBcImZhc3QtZGVlcC1lcXVhbFwiOiBcIl4zLjEuM1wiLFxuICAgIFwidWxpZFwiOiBcIl4zLjAuMlwiLFxuICAgIFwiem9kXCI6IFwiXjQuMy42XCJcbiAgfSxcbiAgXCJkZXZEZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiQGFnZW50L3RzY29uZmlnXCI6IFwid29ya3NwYWNlOipcIixcbiAgICBcIkBhaS1zZGsvcmVhY3RcIjogXCJeMy4wLjg4XCIsXG4gICAgXCJAdHlwZXMvbm9kZVwiOiBcIl4yMC4xMS4yNFwiLFxuICAgIFwiQHR5cGVzL3JlYWN0XCI6IFwiXjE5LjIuMTRcIixcbiAgICBcImRvdGVudlwiOiBcIl4xNy4yLjNcIixcbiAgICBcIm5leHRcIjogXCJeMTYuMC4wXCIsXG4gICAgXCJyZWFjdFwiOiBcIl4xOS4yLjRcIixcbiAgICBcInRzdXBcIjogXCJeOC4wLjJcIixcbiAgICBcInR5cGVzY3JpcHRcIjogXCI1LjUuNFwiLFxuICAgIFwidml0ZXN0XCI6IFwiXjMuMC4wXCIsXG4gICAgXCJ3b3JrZmxvd1wiOiBcIjQuMi4wLWJldGEuNzBcIlxuICB9LFxuICBcInBlZXJEZXBlbmRlbmNpZXNcIjoge1xuICAgIFwiYWlcIjogXCJeNi4wLjBcIlxuICB9LFxuICBcInB1Ymxpc2hDb25maWdcIjoge1xuICAgIFwiYWNjZXNzXCI6IFwicHVibGljXCJcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFdBQXNCO0FBQ3RCLGtCQUF1Qzs7O0FDRHZDO0FBQUEsRUFDRSxNQUFRO0FBQUEsRUFDUixTQUFXO0FBQUEsRUFDWCxNQUFRO0FBQUEsRUFDUixRQUFVO0FBQUEsRUFDVixPQUFTO0FBQUEsRUFDVCxhQUFlO0FBQUEsRUFDZixTQUFXO0FBQUEsRUFDWCxPQUFTO0FBQUEsSUFDUDtBQUFBLEVBQ0Y7QUFBQSxFQUNBLFNBQVc7QUFBQSxJQUNULEtBQUs7QUFBQSxNQUNILE9BQVM7QUFBQSxNQUNULFFBQVU7QUFBQSxNQUNWLFNBQVc7QUFBQSxJQUNiO0FBQUEsSUFDQSxhQUFhO0FBQUEsTUFDWCxPQUFTO0FBQUEsTUFDVCxRQUFVO0FBQUEsTUFDVixTQUFXO0FBQUEsSUFDYjtBQUFBLElBQ0EsYUFBYTtBQUFBLE1BQ1gsT0FBUztBQUFBLE1BQ1QsUUFBVTtBQUFBLE1BQ1YsU0FBVztBQUFBLElBQ2I7QUFBQSxJQUNBLFVBQVU7QUFBQSxNQUNSLE9BQVM7QUFBQSxNQUNULFFBQVU7QUFBQSxNQUNWLFNBQVc7QUFBQSxJQUNiO0FBQUEsSUFDQSxpQkFBaUI7QUFBQSxNQUNmLE9BQVM7QUFBQSxNQUNULFFBQVU7QUFBQSxNQUNWLFNBQVc7QUFBQSxJQUNiO0FBQUEsSUFDQSxpQkFBaUI7QUFBQSxNQUNmLE9BQVM7QUFBQSxNQUNULFFBQVU7QUFBQSxNQUNWLFNBQVc7QUFBQSxJQUNiO0FBQUEsSUFDQSxlQUFlO0FBQUEsTUFDYixPQUFTO0FBQUEsTUFDVCxRQUFVO0FBQUEsTUFDVixTQUFXO0FBQUEsSUFDYjtBQUFBLElBQ0EsdUJBQXVCO0FBQUEsTUFDckIsT0FB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
|
package/dist/next/loader.mjs
CHANGED
package/dist/next.js
CHANGED
|
@@ -40,7 +40,7 @@ var path = __toESM(require("path"));
|
|
|
40
40
|
// package.json
|
|
41
41
|
var package_default = {
|
|
42
42
|
name: "experimental-agent",
|
|
43
|
-
version: "0.8.0
|
|
43
|
+
version: "0.8.0",
|
|
44
44
|
main: "./dist/index.js",
|
|
45
45
|
module: "./dist/index.mjs",
|
|
46
46
|
types: "./dist/index.d.ts",
|
|
@@ -207,7 +207,9 @@ function detectAgents(cwd, debug) {
|
|
|
207
207
|
const content = fs.readFileSync(fullPath, "utf-8");
|
|
208
208
|
if (content.includes(PACKAGE_NAME) && content.includes("agent(")) {
|
|
209
209
|
const stripped = content.replace(/\/\/.*$/gm, "").replace(/\/\*[\s\S]*?\*\//g, "");
|
|
210
|
-
const exportMatches =
|
|
210
|
+
const exportMatches = Array.from(
|
|
211
|
+
stripped.matchAll(AGENT_EXPORT_REGEX)
|
|
212
|
+
);
|
|
211
213
|
const seen = /* @__PURE__ */ new Set();
|
|
212
214
|
for (const match of exportMatches) {
|
|
213
215
|
if (seen.has(match[1])) {
|
|
@@ -393,4 +395,4 @@ function withAgent(configOrFn, agentConfig) {
|
|
|
393
395
|
0 && (module.exports = {
|
|
394
396
|
withAgent
|
|
395
397
|
});
|
|
396
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL25leHQvaW5kZXgudHMiLCAiLi4vcGFja2FnZS5qc29uIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgKiBhcyBjcnlwdG8gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgdHlwZSB7IE5leHRDb25maWcgfSBmcm9tIFwibmV4dFwiO1xuaW1wb3J0IHBrZyBmcm9tIFwiLi4vLi4vcGFja2FnZS5qc29uXCI7XG5cbmV4cG9ydCB0eXBlIFdpdGhBZ2VudENvbmZpZyA9IHtcbiAgLyoqIEVuYWJsZSBkZWJ1ZyBsb2dnaW5nIGZvciB0aGUgTmV4dC5qcyBsb2FkZXIgKGFnZW50IGRldGVjdGlvbiwgZmlsZSBnZW5lcmF0aW9uKS4gKi9cbiAgZGVidWc/OiBib29sZWFuO1xufTtcblxuY29uc3QgUEFDS0FHRV9OQU1FID0gcGtnLm5hbWU7XG5jb25zdCBBR0VOVF9QUk9UT0NPTF9WRVJTSU9OID0gXCJ2MVwiO1xuY29uc3QgRklMRV9FWFRfUkVHRVggPSAvXFwuKHRzfHRzeHxqc3xqc3gpJC87XG5jb25zdCBBR0VOVF9FWFBPUlRfUkVHRVggPSAvZXhwb3J0XFxzK2NvbnN0XFxzKyhcXHcrKVxccyo9XFxzKmFnZW50XFxzKlxcKC9nO1xuY29uc3QgREVGQVVMVF9XT1JLRkxPV19ESVJTID0gW1wicGFnZXNcIiwgXCJhcHBcIiwgXCJzcmMvcGFnZXNcIiwgXCJzcmMvYXBwXCJdO1xuXG50eXBlIERldGVjdGVkQWdlbnQgPSB7XG4gIGV4cG9ydE5hbWU6IHN0cmluZztcbiAgZmlsZVBhdGg6IHN0cmluZztcbiAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyOiBleHBvcnROYW1lIG9yIGV4cG9ydE5hbWVfaGFzaCBpZiBkdXBsaWNhdGVzIGV4aXN0ICovXG4gIHVuaXF1ZUlkOiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBzaG9ydEhhc2goc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgaGFzaCA9IDA7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2hhciA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9CaXR3aXNlT3BlcmF0b3JzOiBpbnRlbnRpb25hbCBoYXNoIGNvbXB1dGF0aW9uXG4gICAgaGFzaCA9IChoYXNoIDw8IDUpIC0gaGFzaCArIGNoYXI7XG4gICAgLy8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub0JpdHdpc2VPcGVyYXRvcnM6IGNvbnZlcnQgdG8gMzItYml0IGludGVnZXJcbiAgICBoYXNoICY9IGhhc2g7XG4gIH1cbiAgcmV0dXJuIE1hdGguYWJzKGhhc2gpLnRvU3RyaW5nKDM2KS5zbGljZSgwLCA2KTtcbn1cblxuZnVuY3Rpb24gaGFzTmV4dEFwcExheW91dChkaXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gW1wibGF5b3V0LnRzeFwiLCBcImxheW91dC50c1wiLCBcImxheW91dC5qc1wiLCBcImxheW91dC5qc3hcIl0uc29tZSgoZikgPT5cbiAgICBmcy5leGlzdHNTeW5jKHBhdGguam9pbihkaXIsIGYpKVxuICApO1xufVxuXG4vKipcbiAqIERldGVjdHMgd2hldGhlciB0aGUgcHJvamVjdCB1c2VzIHNyYy9hcHAgb3IgYXBwIGRpcmVjdG9yeSBzdHJ1Y3R1cmVcbiAqIGJ5IGNoZWNraW5nIHdoaWNoIGRpcmVjdG9yeSBjb250YWlucyBhIE5leHQuanMgbGF5b3V0IGZpbGUuXG4gKiBSZXR1cm5zIHRoZSBhcHAgZGlyZWN0b3J5IHBhdGggcmVsYXRpdmUgdG8gY3dkLlxuICovXG5mdW5jdGlvbiBnZXRBcHBEaXIoY3dkOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBzcmNBcHBEaXIgPSBwYXRoLmpvaW4oY3dkLCBcInNyY1wiLCBcImFwcFwiKTtcbiAgY29uc3Qgcm9vdEFwcERpciA9IHBhdGguam9pbihjd2QsIFwiYXBwXCIpO1xuXG4gIGlmIChoYXNOZXh0QXBwTGF5b3V0KHNyY0FwcERpcikpIHtcbiAgICByZXR1cm4gXCJzcmMvYXBwXCI7XG4gIH1cbiAgaWYgKGhhc05leHRBcHBMYXlvdXQocm9vdEFwcERpcikpIHtcbiAgICByZXR1cm4gXCJhcHBcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBGYWxsYmFjayB3aGVuIG5laXRoZXIgZGlyZWN0b3J5IGhhcyBhIGxheW91dCBmaWxlIHlldFxuICAgKiAoZS5nLiBmcmVzaCBwcm9qZWN0KS4gUHJlZmVyIHNyYy9hcHAgaWYgdGhlIGRpcmVjdG9yeSBleGlzdHMuXG4gICAqL1xuICBpZiAoZnMuZXhpc3RzU3luYyhzcmNBcHBEaXIpKSB7XG4gICAgcmV0dXJuIFwic3JjL2FwcFwiO1xuICB9XG4gIHJldHVybiBcImFwcFwiO1xufVxuXG4vKipcbiAqIFNjYW5zIGZvciBhZ2VudCBleHBvcnRzIGluIHRoZSBwcm9qZWN0LlxuICovXG5mdW5jdGlvbiBkZXRlY3RBZ2VudHMoY3dkOiBzdHJpbmcsIGRlYnVnOiBib29sZWFuKTogRGV0ZWN0ZWRBZ2VudFtdIHtcbiAgY29uc3QgYWdlbnRzOiBEZXRlY3RlZEFnZW50W10gPSBbXTtcblxuICBjb25zdCBkaXJzVG9TY2FuID0gW3BhdGguam9pbihjd2QsIFwic3JjXCIpLCBjd2RdO1xuXG4gIGZ1bmN0aW9uIHNjYW5EaXIoZGlyOiBzdHJpbmcpIHtcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZGlyKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVudHJpZXMgPSBmcy5yZWFkZGlyU3luYyhkaXIsIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KTtcbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5qb2luKGRpciwgZW50cnkubmFtZSk7XG4gICAgICBpZiAoXG4gICAgICAgIGVudHJ5LmlzRGlyZWN0b3J5KCkgJiZcbiAgICAgICAgIWVudHJ5Lm5hbWUuc3RhcnRzV2l0aChcIi5cIikgJiZcbiAgICAgICAgZW50cnkubmFtZSAhPT0gXCJub2RlX21vZHVsZXNcIiAmJlxuICAgICAgICBlbnRyeS5uYW1lICE9PSBcInNyY1wiXG4gICAgICApIHtcbiAgICAgICAgc2NhbkRpcihmdWxsUGF0aCk7XG4gICAgICB9IGVsc2UgaWYgKGVudHJ5LmlzRmlsZSgpICYmIEZJTEVfRVhUX1JFR0VYLnRlc3QoZW50cnkubmFtZSkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKGZ1bGxQYXRoLCBcInV0Zi04XCIpO1xuICAgICAgICAgIGlmIChjb250ZW50LmluY2x1ZGVzKFBBQ0tBR0VfTkFNRSkgJiYgY29udGVudC5pbmNsdWRlcyhcImFnZW50KFwiKSkge1xuICAgICAgICAgICAgLy8gU3RyaXAgc2luZ2xlLWxpbmUgY29tbWVudHMgYW5kIGJsb2NrIGNvbW1lbnRzIHRvIGF2b2lkXG4gICAgICAgICAgICAvLyBtYXRjaGluZyBjb21tZW50ZWQtb3V0IGFnZW50IGV4cG9ydHNcbiAgICAgICAgICAgIGNvbnN0IHN0cmlwcGVkID0gY29udGVudFxuICAgICAgICAgICAgICAucmVwbGFjZSgvXFwvXFwvLiokL2dtLCBcIlwiKVxuICAgICAgICAgICAgICAucmVwbGFjZSgvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nLCBcIlwiKTtcbiAgICAgICAgICAgIGNvbnN0IGV4cG9ydE1hdGNoZXMgPSBzdHJpcHBlZC5tYXRjaEFsbChBR0VOVF9FWFBPUlRfUkVHRVgpO1xuICAgICAgICAgICAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBtYXRjaCBvZiBleHBvcnRNYXRjaGVzKSB7XG4gICAgICAgICAgICAgIGlmIChzZWVuLmhhcyhtYXRjaFsxXSkpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBzZWVuLmFkZChtYXRjaFsxXSk7XG4gICAgICAgICAgICAgIGFnZW50cy5wdXNoKHtcbiAgICAgICAgICAgICAgICBleHBvcnROYW1lOiBtYXRjaFsxXSxcbiAgICAgICAgICAgICAgICBmaWxlUGF0aDogZnVsbFBhdGgsXG4gICAgICAgICAgICAgICAgdW5pcXVlSWQ6IFwiXCIsIC8vIFdpbGwgYmUgc2V0IGFmdGVyIGFsbCBhZ2VudHMgYXJlIGZvdW5kXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBpZiAoZGVidWcpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICAgIGBbd2l0aEFnZW50XSBGb3VuZCBhZ2VudDogJHttYXRjaFsxXX0gaW4gJHtmdWxsUGF0aH1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gSWdub3JlIHJlYWQgZXJyb3JzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb3IgKGNvbnN0IGRpciBvZiBkaXJzVG9TY2FuKSB7XG4gICAgc2NhbkRpcihkaXIpO1xuICB9XG5cbiAgLy8gQXNzaWduIHVuaXF1ZSBJRHMgLSBhZGQgaGFzaCBzdWZmaXggaWYgZHVwbGljYXRlIGV4cG9ydCBuYW1lcyBleGlzdFxuICBjb25zdCBuYW1lQ291bnRzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbiAgZm9yIChjb25zdCBhZ2VudCBvZiBhZ2VudHMpIHtcbiAgICBuYW1lQ291bnRzLnNldChcbiAgICAgIGFnZW50LmV4cG9ydE5hbWUsXG4gICAgICAobmFtZUNvdW50cy5nZXQoYWdlbnQuZXhwb3J0TmFtZSkgfHwgMCkgKyAxXG4gICAgKTtcbiAgfVxuXG4gIGZvciAoY29uc3QgYWdlbnQgb2YgYWdlbnRzKSB7XG4gICAgY29uc3QgY291bnQgPSBuYW1lQ291bnRzLmdldChhZ2VudC5leHBvcnROYW1lKSA/PyAwO1xuICAgIGlmIChjb3VudCA+IDEpIHtcbiAgICAgIGFnZW50LnVuaXF1ZUlkID0gYCR7YWdlbnQuZXhwb3J0TmFtZX1fJHtzaG9ydEhhc2goYWdlbnQuZmlsZVBhdGgpfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFnZW50LnVuaXF1ZUlkID0gYWdlbnQuZXhwb3J0TmFtZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYWdlbnRzO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhbGwgYWdlbnQgZmlsZXMgaW4gLndlbGwta25vd24vYWdlbnQvdjEvOlxuICogLSBzdGVwcy5qczogUlBDIHN0ZXAgZnVuY3Rpb25zIHdpdGggXCJ1c2Ugc3RlcFwiXG4gKiAtIHJvdXRlLmpzOiB0cmlnZ2VycyB3b3JrZmxvdyBkaXNjb3ZlcnlcbiAqL1xuZnVuY3Rpb24gZ2VuZXJhdGVBZ2VudEZpbGVzKFxuICBhZ2VudHM6IERldGVjdGVkQWdlbnRbXSxcbiAgb3V0cHV0RGlyOiBzdHJpbmcsXG4gIF9jd2Q6IHN0cmluZyxcbiAgZGVidWc6IGJvb2xlYW5cbik6IHZvaWQge1xuICBpZiAoYWdlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIGlmIChkZWJ1Zykge1xuICAgICAgY29uc29sZS5sb2coXCJbd2l0aEFnZW50XSBObyBhZ2VudHMgZm91bmQsIHNraXBwaW5nIGdlbmVyYXRpb25cIik7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICghZnMuZXhpc3RzU3luYyhvdXRwdXREaXIpKSB7XG4gICAgZnMubWtkaXJTeW5jKG91dHB1dERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgc3RlcCBmdW5jdGlvbnMgdGhhdCB1c2UgZHluYW1pYyBpbXBvcnQuXG4gICAqIER5bmFtaWMgaW1wb3J0IGVuc3VyZXMgdGhlIGFnZW50IG1vZHVsZSBsb2FkcyAoaW5jbHVkaW5nIGxvYWRlci1pbmplY3RlZCBpbml0KVxuICAgKiB3aGVuIHRoZSBzdGVwIHJ1bnMgaW4gd29ya2Zsb3cgY29udGV4dCwgYXZvaWRpbmcgdGhlIFwibm90IGluaXRpYWxpemVkXCIgZXJyb3IuXG4gICAqXG4gICAqIFVzZXMgdW5pcXVlSWQgZm9yIGZ1bmN0aW9uIG5hbWVzIHRvIGhhbmRsZSBkdXBsaWNhdGUgZXhwb3J0IG5hbWVzIGFjcm9zcyBmaWxlcy5cbiAgICovXG4gIGNvbnN0IHJwY0Z1bmN0aW9ucyA9IGFnZW50c1xuICAgIC5tYXAoKGEpID0+IHtcbiAgICAgIC8vIENhbGN1bGF0ZSByZWxhdGl2ZSBwYXRoIGZyb20gc3RlcHMuanMgdG8gdGhlIGFnZW50IGZpbGVcbiAgICAgIGxldCBhZ2VudFJlbFBhdGggPSBwYXRoXG4gICAgICAgIC5yZWxhdGl2ZShvdXRwdXREaXIsIGEuZmlsZVBhdGgpXG4gICAgICAgIC5yZXBsYWNlKC9cXFxcL2csIFwiL1wiKTtcblxuICAgICAgaWYgKCFhZ2VudFJlbFBhdGguc3RhcnRzV2l0aChcIi5cIikpIHtcbiAgICAgICAgYWdlbnRSZWxQYXRoID0gYC4vJHthZ2VudFJlbFBhdGh9YDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGBcbmV4cG9ydCBjb25zdCAke2EudW5pcXVlSWR9UnBjID0gYXN5bmMgKHBhcmFtcykgPT4ge1xuICBcInVzZSBzdGVwXCI7XG4gIGNvbnN0IHsgJHthLmV4cG9ydE5hbWV9IH0gPSBhd2FpdCBpbXBvcnQoXCIke2FnZW50UmVsUGF0aH1cIik7XG4gIGNvbnN0IHJlcyA9IGF3YWl0ICR7YS5leHBvcnROYW1lfS5oYW5kbGVyKHBhcmFtcyk7XG4gIGlmIChyZXMgaW5zdGFuY2VvZiBSZXNwb25zZSkge1xuICAgIHJldHVybiByZXMuanNvbigpO1xuICB9XG4gIHJldHVybiByZXM7XG59O2A7XG4gICAgfSlcbiAgICAuam9pbihcIlxcblwiKTtcblxuICAvKipcbiAgICogSW5pdCBmdW5jdGlvbnMgd2lyZSB1cCBhZ2VudC5ycGMgaW4gdGhlIG1haW4gYXBwIGNvbnRleHQuXG4gICAqIFVzZXMgZXhwb3J0TmFtZSBmb3IgdGhlIGZ1bmN0aW9uIG5hbWUgKGxvYWRlciBtYXRjaGVzIGJ5IGV4cG9ydCBuYW1lKSxcbiAgICogYnV0IHJlZmVyZW5jZXMgdW5pcXVlSWQgZm9yIHRoZSBScGMgZnVuY3Rpb24uXG4gICAqL1xuICBjb25zdCBpbml0RnVuY3Rpb25zID0gYWdlbnRzXG4gICAgLm1hcChcbiAgICAgIChhKSA9PiBgXG5leHBvcnQgZnVuY3Rpb24gX19pbml0JHthLmV4cG9ydE5hbWVbMF0udG9VcHBlckNhc2UoKX0ke2EuZXhwb3J0TmFtZS5zbGljZShcbiAgICAgICAgMVxuICAgICAgKX0oYWdlbnQpIHtcbiAgYWdlbnQucnBjID0gJHthLnVuaXF1ZUlkfVJwYztcbn1gXG4gICAgKVxuICAgIC5qb2luKFwiXFxuXCIpO1xuXG4gIGNvbnN0IHN0ZXBzQ29udGVudCA9IGAvLyBBdXRvLWdlbmVyYXRlZCBieSB3aXRoQWdlbnQgLSBkbyBub3QgZWRpdFxuJHtycGNGdW5jdGlvbnN9XG4ke2luaXRGdW5jdGlvbnN9XG5gO1xuXG4gIGNvbnN0IHN0ZXBzUGF0aCA9IHBhdGguam9pbihvdXRwdXREaXIsIFwic3RlcHMuanNcIik7XG4gIGZzLndyaXRlRmlsZVN5bmMoc3RlcHNQYXRoLCBzdGVwc0NvbnRlbnQpO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSByb3V0ZS5qcyB0aGF0IGltcG9ydHMgc3RlcHMuanMuXG4gICAqIFRoaXMgZW5zdXJlcyB3b3JrZmxvdyBkaXNjb3ZlcnMgdGhlIFwidXNlIHN0ZXBcIiBmdW5jdGlvbnMuXG4gICAqIE5vIGFjdHVhbCBoYW5kbGVyIG5lZWRlZCAtIHN0b3JhZ2UgUlBDIHVzZXMgdGhlIHN0ZXAgZnVuY3Rpb24gZGlyZWN0bHkuXG4gICAqL1xuICBjb25zdCByb3V0ZUNvbnRlbnQgPSBgLy8gQXV0by1nZW5lcmF0ZWQgYnkgd2l0aEFnZW50IC0gdHJpZ2dlcnMgd29ya2Zsb3cgZGlzY292ZXJ5XG5pbXBvcnQgXCIuL3N0ZXBzLmpzXCI7XG5leHBvcnQgZnVuY3Rpb24gR0VUKCkge1xuICByZXR1cm4gbmV3IFJlc3BvbnNlKFwib2tcIik7XG59XG5gO1xuXG4gIGNvbnN0IHJvdXRlUGF0aCA9IHBhdGguam9pbihvdXRwdXREaXIsIFwicm91dGUuanNcIik7XG4gIGZzLndyaXRlRmlsZVN5bmMocm91dGVQYXRoLCByb3V0ZUNvbnRlbnQpO1xuXG4gIC8vIEFkZCAuZ2l0aWdub3JlXG4gIGNvbnN0IGdpdGlnbm9yZVBhdGggPSBwYXRoLmpvaW4ob3V0cHV0RGlyLCBcIi5naXRpZ25vcmVcIik7XG4gIGlmICghZnMuZXhpc3RzU3luYyhnaXRpZ25vcmVQYXRoKSkge1xuICAgIGZzLndyaXRlRmlsZVN5bmMoZ2l0aWdub3JlUGF0aCwgXCIqXFxuXCIpO1xuICB9XG5cbiAgaWYgKGRlYnVnKSB7XG4gICAgY29uc29sZS5sb2coYFt3aXRoQWdlbnRdIEdlbmVyYXRlZCBhZ2VudCBmaWxlcyBhdCAke291dHB1dERpcn1gKTtcbiAgfVxufVxuXG50eXBlIFR1cmJvcGFja0xvYWRlciA9XG4gIHwgc3RyaW5nXG4gIHwgeyBsb2FkZXI6IHN0cmluZzsgb3B0aW9ucz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH07XG5cbnR5cGUgVHVyYm9wYWNrUnVsZSA9IHtcbiAgbG9hZGVycz86IFR1cmJvcGFja0xvYWRlcltdO1xuICBjb25kaXRpb24/OiB7XG4gICAgYWxsPzogdW5rbm93bltdO1xuICAgIGFueT86IHVua25vd25bXTtcbiAgICBwYXRoPzogUmVnRXhwO1xuICAgIGNvbnRlbnQ/OiBSZWdFeHA7XG4gICAgbm90PzogdW5rbm93bjtcbiAgfTtcbn07XG5cbnR5cGUgV29ya2Zsb3dDb25maWdGbiA9IChcbiAgcGhhc2U6IHN0cmluZyxcbiAgY3R4OiB7IGRlZmF1bHRDb25maWc6IE5leHRDb25maWcgfVxuKSA9PiBQcm9taXNlPE5leHRDb25maWc+O1xuXG50eXBlIE5leHRDb25maWdJbnB1dCA9XG4gIHwgTmV4dENvbmZpZ1xuICB8ICgoXG4gICAgICBwaGFzZTogc3RyaW5nLFxuICAgICAgY3R4OiB7IGRlZmF1bHRDb25maWc6IE5leHRDb25maWcgfVxuICAgICkgPT4gUHJvbWlzZTxOZXh0Q29uZmlnPik7XG5cbi8qKlxuICogTmV4dC5qcyBwbHVnaW4gdGhhdCBjb25maWd1cmVzIGFnZW50IHN1cHBvcnQuXG4gKlxuICogLSBEZXRlY3RzIGFnZW50cyBhbmQgZ2VuZXJhdGVzIFJQQyBzdGVwcyB3aXRoIFwidXNlIHN0ZXBcIiBpbiAud2VsbC1rbm93bi9hZ2VudC92MS9cbiAqIC0gR2VuZXJhdGVzIEFHRU5UX1NFQ1JFVCBmb3Igc2VjdXJlIFJQQyBjYWxsc1xuICogLSBXcmFwcyB3aXRoV29ya2Zsb3cgZm9yIHdvcmtmbG93IHN1cHBvcnRcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIG5leHQuY29uZmlnLnRzXG4gKiBpbXBvcnQgeyB3aXRoQWdlbnQgfSBmcm9tIFwiZXhwZXJpbWVudGFsLWFnZW50L25leHRcIjtcbiAqXG4gKiAvLyBPcHRpb24gMTogd2l0aEFnZW50IGhhbmRsZXMgZXZlcnl0aGluZyAocmVjb21tZW5kZWQpXG4gKiBleHBvcnQgZGVmYXVsdCB3aXRoQWdlbnQoe30pO1xuICpcbiAqIC8vIE9wdGlvbiAyOiBDb21wb3NlIHdpdGggb3RoZXIgcGx1Z2luc1xuICogZXhwb3J0IGRlZmF1bHQgd2l0aEFnZW50KHdpdGhTb21lT3RoZXJQbHVnaW4oe30pKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aEFnZW50KFxuICBjb25maWdPckZuOiBOZXh0Q29uZmlnSW5wdXQsXG4gIGFnZW50Q29uZmlnPzogV2l0aEFnZW50Q29uZmlnXG4pOiBXb3JrZmxvd0NvbmZpZ0ZuIHtcbiAgY29uc3QgZGVidWcgPSBhZ2VudENvbmZpZz8uZGVidWcgPz8gZmFsc2U7XG4gIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKCk7XG5cbiAgLy8gRGV0ZWN0IGFwcCBkaXJlY3Rvcnkgc3RydWN0dXJlIChzcmMvYXBwIHZzIGFwcClcbiAgY29uc3QgYXBwRGlyID0gZ2V0QXBwRGlyKGN3ZCk7XG4gIGNvbnN0IGFnZW50RGlyID0gYCR7YXBwRGlyfS8ud2VsbC1rbm93bi9hZ2VudC8ke0FHRU5UX1BST1RPQ09MX1ZFUlNJT059YDtcblxuICAvLyBEZXRlY3QgYWdlbnRzIGFuZCBnZW5lcmF0ZSBmaWxlcyBGSVJTVCAoYmVmb3JlIHdvcmtmbG93IGRpc2NvdmVycyB0aGVtKVxuICBjb25zdCBhZ2VudHMgPSBkZXRlY3RBZ2VudHMoY3dkLCBkZWJ1Zyk7XG4gIGNvbnN0IG91dHB1dERpciA9IHBhdGguam9pbihjd2QsIGFnZW50RGlyKTtcbiAgZ2VuZXJhdGVBZ2VudEZpbGVzKGFnZW50cywgb3V0cHV0RGlyLCBjd2QsIGRlYnVnKTtcblxuICBjb25zdCBhZ2VudEZpbGVQYXRocyA9IGFnZW50cy5tYXAoKGEpID0+IGEuZmlsZVBhdGgpO1xuICBjb25zdCBsb2FkZXJQYXRoID0gcmVxdWlyZS5yZXNvbHZlKFwiLi9uZXh0L2xvYWRlclwiKTtcbiAgY29uc3QgYWJzb2x1dGVBcHBEaXIgPSBwYXRoLmpvaW4oY3dkLCBhcHBEaXIpO1xuICBjb25zdCBsb2FkZXJPcHRpb25zID0geyBhcHBEaXI6IGFic29sdXRlQXBwRGlyLCBkZWJ1ZyB9O1xuXG4gIGlmIChkZWJ1Zykge1xuICAgIGNvbnNvbGUubG9nKFwiW3dpdGhBZ2VudF0gbG9hZGVyIHBhdGg6XCIsIGxvYWRlclBhdGgpO1xuICAgIGNvbnNvbGUubG9nKFwiW3dpdGhBZ2VudF0gYWdlbnQgZmlsZXM6XCIsIGFnZW50RmlsZVBhdGhzKTtcbiAgICBjb25zb2xlLmxvZyhcIlt3aXRoQWdlbnRdIGFnZW50IGRpcjpcIiwgYWdlbnREaXIpO1xuICB9XG5cbiAgLy8gQnVpbGQgcmVnZXggdG8gbWF0Y2ggYWdlbnQgZmlsZSBwYXRoc1xuICBjb25zdCBhZ2VudFBhdGhSZWdleCA9XG4gICAgYWdlbnRGaWxlUGF0aHMubGVuZ3RoID4gMFxuICAgICAgPyBuZXcgUmVnRXhwKFxuICAgICAgICAgIGAke2FnZW50RmlsZVBhdGhzXG4gICAgICAgICAgICAubWFwKChwKSA9PlxuICAgICAgICAgICAgICBwYXRoXG4gICAgICAgICAgICAgICAgLnJlbGF0aXZlKGN3ZCwgcClcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxcXC9nLCBcIi9cIilcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csIFwiXFxcXCQmXCIpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuam9pbihcInxcIil9JGBcbiAgICAgICAgKVxuICAgICAgOiBudWxsO1xuXG4gIC8qKlxuICAgKiBBbHdheXMgcGFzcyB0aHJvdWdoIHdpdGhXb3JrZmxvdyAtIGl0IGhhbmRsZXMgYm90aCBOZXh0Q29uZmlnIGFuZCBhc3luYyBmdW5jdGlvbnMuXG4gICAqIFRoaXMgZW5zdXJlcyB3b3JrZmxvdyBpcyBhbHdheXMgY29uZmlndXJlZCwgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSB1c2VyIHBhc3NlZC5cbiAgICovXG4gIGxldCB3aXRoV29ya2Zsb3c6IChcbiAgICBjb25maWc6IE5leHRDb25maWdJbnB1dCxcbiAgICBvcHRpb25zPzogeyB3b3JrZmxvd3M/OiB7IGRpcnM/OiBzdHJpbmdbXSB9IH1cbiAgKSA9PiBXb3JrZmxvd0NvbmZpZ0ZuO1xuICB0cnkge1xuICAgIHdpdGhXb3JrZmxvdyA9IHJlcXVpcmUoXCJ3b3JrZmxvdy9uZXh0XCIpLndpdGhXb3JrZmxvdztcbiAgfSBjYXRjaCB7XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgXCJbd2l0aEFnZW50XSB3b3JrZmxvdy9uZXh0IG5vdCBmb3VuZC4gTWFrZSBzdXJlIHdvcmtmbG93IGlzIGluc3RhbGxlZC5cIlxuICAgICk7XG4gICAgcmV0dXJuIHR5cGVvZiBjb25maWdPckZuID09PSBcImZ1bmN0aW9uXCJcbiAgICAgID8gY29uZmlnT3JGblxuICAgICAgOiBhc3luYyAoKSA9PiBjb25maWdPckZuO1xuICB9XG5cbiAgY29uc3QgYmFzZUNvbmZpZ0ZuID0gd2l0aFdvcmtmbG93KGNvbmZpZ09yRm4sIHtcbiAgICB3b3JrZmxvd3M6IHtcbiAgICAgIGRpcnM6IFsuLi5ERUZBVUxUX1dPUktGTE9XX0RJUlMsIGFnZW50RGlyXSxcbiAgICB9LFxuICB9KTtcblxuICAvKipcbiAgICogUmV0dXJuIGEgd3JhcHBlciB0aGF0IHJ1bnMgQUZURVIgd29ya2Zsb3cgcHJvY2Vzc2VzLCB0aGVuIGFkZHMgb3VyIGxvYWRlci5cbiAgICogVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB3b3JrZmxvdyBvdmVyd3JpdGVzIHR1cmJvcGFjayBydWxlcyAtIHdlIG5lZWQgdG9cbiAgICogbW9kaWZ5IHRoZW0gYWZ0ZXIgd29ya2Zsb3cgaXMgZG9uZS5cbiAgICovXG4gIHJldHVybiBhc3luYyAocGhhc2UsIGN0eCkgPT4ge1xuICAgIGNvbnN0IG5leHRDb25maWcgPSBhd2FpdCBiYXNlQ29uZmlnRm4ocGhhc2UsIGN0eCk7XG5cbiAgICAvLyBTZXQgdXAgQUdFTlRfU0VDUkVUIGlmIG5vdCBhbHJlYWR5IHNldFxuICAgIGlmICghcHJvY2Vzcy5lbnYuQUdFTlRfU0VDUkVUKSB7XG4gICAgICBuZXh0Q29uZmlnLmVudiA9IHtcbiAgICAgICAgLi4ubmV4dENvbmZpZy5lbnYsXG4gICAgICAgIEFHRU5UX1NFQ1JFVDogY3J5cHRvLnJhbmRvbVVVSUQoKSxcbiAgICAgIH07XG4gICAgICBpZiAoZGVidWcpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJbd2l0aEFnZW50XSBHZW5lcmF0ZWQgQUdFTlRfU0VDUkVUXCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghYWdlbnRQYXRoUmVnZXggfHwgYWdlbnRGaWxlUGF0aHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbmV4dENvbmZpZztcbiAgICB9XG5cbiAgICAvLyBNb2RpZnkgdHVyYm9wYWNrIHJ1bGVzIHRvIGluY2x1ZGUgb3VyIGxvYWRlciBmb3IgYWdlbnQgZmlsZXNcbiAgICBjb25zdCBydWxlcyA9IChuZXh0Q29uZmlnLnR1cmJvcGFjaz8ucnVsZXMgfHwge30pIGFzIFJlY29yZDxcbiAgICAgIHN0cmluZyxcbiAgICAgIFR1cmJvcGFja1J1bGVcbiAgICA+O1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgW1wiKi50c1wiLCBcIioudHN4XCIsIFwiKi5qc1wiLCBcIiouanN4XCJdKSB7XG4gICAgICBjb25zdCBleGlzdGluZ1J1bGUgPSBydWxlc1trZXldO1xuICAgICAgaWYgKCFleGlzdGluZ1J1bGUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogV29ya2Zsb3cncyBydWxlIGhhczogY29uZGl0aW9uLmFsbCA9IFt7IG5vdDogcGF0aCB9LCB7IGNvbnRlbnQ6IC91c2Ugc3RlcHwuLi4vIH1dXG4gICAgICAgKiBXZSB3YW50OiBydW4gbG9hZGVyIGlmIHdvcmtmbG93J3MgY29uZGl0aW9ucyBtYXRjaCBPUiBpdCdzIGFuIGFnZW50IGZpbGUuXG4gICAgICAgKiBTbyB3ZSB3cmFwIGluOiBjb25kaXRpb24uYW55ID0gW2V4aXN0aW5nQ29uZGl0aW9uLCB7IHBhdGg6IGFnZW50UGF0aFJlZ2V4IH1dXG4gICAgICAgKi9cbiAgICAgIHJ1bGVzW2tleV0gPSB7XG4gICAgICAgIC4uLmV4aXN0aW5nUnVsZSxcbiAgICAgICAgbG9hZGVyczogW1xuICAgICAgICAgIHsgbG9hZGVyOiBsb2FkZXJQYXRoLCBvcHRpb25zOiBsb2FkZXJPcHRpb25zIH0sXG4gICAgICAgICAgLi4uKGV4aXN0aW5nUnVsZS5sb2FkZXJzIHx8IFtdKSxcbiAgICAgICAgXSxcbiAgICAgICAgY29uZGl0aW9uOiB7XG4gICAgICAgICAgYW55OiBbZXhpc3RpbmdSdWxlLmNvbmRpdGlvbiwgeyBwYXRoOiBhZ2VudFBhdGhSZWdleCB9XSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gQWxzbyBjb25maWd1cmUgd2VicGFjayBmb3Igbm9uLXR1cmJvcGFjayBidWlsZHNcbiAgICBjb25zdCBleGlzdGluZ1dlYnBhY2sgPSBuZXh0Q29uZmlnLndlYnBhY2s7XG4gICAgbmV4dENvbmZpZy53ZWJwYWNrID0gKHdlYnBhY2tDb25maWcsIGNvbnRleHQpID0+IHtcbiAgICAgIHdlYnBhY2tDb25maWcubW9kdWxlLnJ1bGVzLnB1c2goe1xuICAgICAgICB0ZXN0OiAocmVzb3VyY2VQYXRoOiBzdHJpbmcpID0+IGFnZW50RmlsZVBhdGhzLmluY2x1ZGVzKHJlc291cmNlUGF0aCksXG4gICAgICAgIHVzZTogW3sgbG9hZGVyOiBsb2FkZXJQYXRoLCBvcHRpb25zOiBsb2FkZXJPcHRpb25zIH1dLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gZXhpc3RpbmdXZWJwYWNrPy4od2VicGFja0NvbmZpZywgY29udGV4dCkgPz8gd2VicGFja0NvbmZpZztcbiAgICB9O1xuXG4gICAgaWYgKGRlYnVnKSB7XG4gICAgICBjb25zb2xlLmxvZyhcIlt3aXRoQWdlbnRdIEFkZGVkIGFnZW50IGxvYWRlciB0byB0dXJib3BhY2sgcnVsZXNcIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHRDb25maWc7XG4gIH07XG59XG4iLCAie1xuICBcIm5hbWVcIjogXCJleHBlcmltZW50YWwtYWdlbnRcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMC44LjAtYWxwaGEuMVwiLFxuICBcIm1haW5cIjogXCIuL2Rpc3QvaW5kZXguanNcIixcbiAgXCJtb2R1bGVcIjogXCIuL2Rpc3QvaW5kZXgubWpzXCIsXG4gIFwidHlwZXNcIjogXCIuL2Rpc3QvaW5kZXguZC50c1wiLFxuICBcInNpZGVFZmZlY3RzXCI6IHRydWUsXG4gIFwibGljZW5zZVwiOiBcIk1JVFwiLFxuICBcImZpbGVzXCI6IFtcbiAgICBcImRpc3QvKipcIlxuICBdLFxuICBcImV4cG9ydHNcIjoge1xuICAgIFwiLlwiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L2luZGV4LmQudHNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0L2luZGV4Lm1qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0L2luZGV4LmpzXCJcbiAgICB9LFxuICAgIFwiLi9zdG9yYWdlXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3Qvc3RvcmFnZS5kLnRzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC9zdG9yYWdlLm1qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0L3N0b3JhZ2UuanNcIlxuICAgIH0sXG4gICAgXCIuL3NhbmRib3hcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9zYW5kYm94LmQudHNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0L3NhbmRib3gubWpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3Qvc2FuZGJveC5qc1wiXG4gICAgfSxcbiAgICBcIi4vbmV4dFwiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L25leHQuZC50c1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QvbmV4dC5tanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC9uZXh0LmpzXCJcbiAgICB9LFxuICAgIFwiLi9uZXh0L2xvYWRlclwiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L25leHQvbG9hZGVyLmQudHNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0L25leHQvbG9hZGVyLm1qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0L25leHQvbG9hZGVyLmpzXCJcbiAgICB9LFxuICAgIFwiLi9uZXh0L2FnZW50c1wiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L25leHQvYWdlbnRzLmQudHNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0L25leHQvYWdlbnRzLm1qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0L25leHQvYWdlbnRzLmpzXCJcbiAgICB9LFxuICAgIFwiLi9mcmFtZXdvcmtcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9mcmFtZXdvcmsuZC50c1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QvZnJhbWV3b3JrLm1qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0L2ZyYW1ld29yay5qc1wiXG4gICAgfSxcbiAgICBcIi4vZnJhbWV3b3JrLXJ1bnRpbWVcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9mcmFtZXdvcmstcnVudGltZS5kLnRzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC9mcmFtZXdvcmstcnVudGltZS5tanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC9mcmFtZXdvcmstcnVudGltZS5qc1wiXG4gICAgfSxcbiAgICBcIi4vY2xpZW50XCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QvY2xpZW50LmQudHNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0L2NsaWVudC5tanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC9jbGllbnQuanNcIlxuICAgIH0sXG4gICAgXCIuL2xpZmVjeWNsZS13b3JrZmxvd1wiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L2xpZmVjeWNsZS13b3JrZmxvdy5kLnRzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC9saWZlY3ljbGUtd29ya2Zsb3cubWpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QvbGlmZWN5Y2xlLXdvcmtmbG93LmpzXCJcbiAgICB9LFxuICAgIFwiLi9saWZlY3ljbGUtd29ya2Zsb3ctc3RlcHNcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9saWZlY3ljbGUtd29ya2Zsb3ctc3RlcHMuZC50c1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QvbGlmZWN5Y2xlLXdvcmtmbG93LXN0ZXBzLm1qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0L2xpZmVjeWNsZS13b3JrZmxvdy1zdGVwcy5qc1wiXG4gICAgfSxcbiAgICBcIi4vcmVhY3RcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9yZWFjdC5kLnRzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC9yZWFjdC5tanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC9yZWFjdC5qc1wiXG4gICAgfVxuICB9LFxuICBcInNjcmlwdHNcIjoge1xuICAgIFwiYnVpbGRcIjogXCJ0c3VwXCIsXG4gICAgXCJkZXZcIjogXCJ0c3VwIC0td2F0Y2hcIixcbiAgICBcImNsZWFuXCI6IFwicm0gLXJmIC50dXJibyAmJiBybSAtcmYgbm9kZV9tb2R1bGVzICYmIHJtIC1yZiBkaXN0XCIsXG4gICAgXCJyZWxlYXNlXCI6IFwicG5wbSBidWlsZCAmJiBucG0gcHVibGlzaFwiLFxuICAgIFwidHlwZWNoZWNrXCI6IFwidHNjIC0tbm9FbWl0XCIsXG4gICAgXCJ0ZXN0XCI6IFwidml0ZXN0IHJ1blwiLFxuICAgIFwidGVzdDp3YXRjaFwiOiBcInZpdGVzdFwiXG4gIH0sXG4gIFwiZGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBlbHlzaWFqcy9vcGVuYXBpXCI6IFwiXjEuNC4xNFwiLFxuICAgIFwiQHN3Yy9jb3JlXCI6IFwiXjEuMTAuMFwiLFxuICAgIFwiQHRhbnN0YWNrL3JlYWN0LXF1ZXJ5XCI6IFwiXjUuOTAuMjFcIixcbiAgICBcIkB2ZXJjZWwva3YyXCI6IFwiXjAuMC4xOFwiLFxuICAgIFwiQHZlcmNlbC9vaWRjXCI6IFwiXjMuMS4wXCIsXG4gICAgXCJAdmVyY2VsL3NhbmRib3hcIjogXCIxLjcuMVwiLFxuICAgIFwiQHdvcmtmbG93L3NlcmRlXCI6IFwiNC4xLjAtYmV0YS4yXCIsXG4gICAgXCJiZXR0ZXItYWxsXCI6IFwiXjAuMC41XCIsXG4gICAgXCJlbHlzaWFcIjogXCJeMS40LjI1XCIsXG4gICAgXCJlcnJvcmVcIjogXCJeMC4xNC4wXCIsXG4gICAgXCJmYXN0LWRlZXAtZXF1YWxcIjogXCJeMy4xLjNcIixcbiAgICBcInVsaWRcIjogXCJeMy4wLjJcIixcbiAgICBcInpvZFwiOiBcIl40LjMuNlwiXG4gIH0sXG4gIFwiZGV2RGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcIkBhZ2VudC90c2NvbmZpZ1wiOiBcIndvcmtzcGFjZToqXCIsXG4gICAgXCJAYWktc2RrL3JlYWN0XCI6IFwiXjMuMC44OFwiLFxuICAgIFwiQHR5cGVzL25vZGVcIjogXCJeMjAuMTEuMjRcIixcbiAgICBcIkB0eXBlcy9yZWFjdFwiOiBcIl4xOS4yLjE0XCIsXG4gICAgXCJkb3RlbnZcIjogXCJeMTcuMi4zXCIsXG4gICAgXCJuZXh0XCI6IFwiXjE2LjAuMFwiLFxuICAgIFwicmVhY3RcIjogXCJeMTkuMi40XCIsXG4gICAgXCJ0c3VwXCI6IFwiXjguMC4yXCIsXG4gICAgXCJ0eXBlc2NyaXB0XCI6IFwiNS41LjRcIixcbiAgICBcInZpdGVzdFwiOiBcIl4zLjAuMFwiLFxuICAgIFwid29ya2Zsb3dcIjogXCI0LjIuMC1iZXRhLjcwXCJcbiAgfSxcbiAgXCJwZWVyRGVwZW5kZW5jaWVzXCI6IHtcbiAgICBcImFpXCI6IFwiXjYuMC4wXCJcbiAgfSxcbiAgXCJwdWJsaXNoQ29uZmlnXCI6IHtcbiAgICBcImFjY2Vzc1wiOiBcInB1YmxpY1wiXG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxhQUF3QjtBQUN4QixTQUFvQjtBQUNwQixXQUFzQjs7O0FDRnRCO0FBQUEsRUFDRSxNQUFRO0FBQUEsRUFDUixTQUFXO0FBQUEsRUFDWCxNQUFRO0FBQUEsRUFDUixRQUFVO0FBQUEsRUFDVixPQUFTO0FBQUEsRUFDVCxhQUFlO0FBQUEsRUFDZixTQUFXO0FBQUEsRUFDWCxPQUFTO0FBQUEs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
|
|
398
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL25leHQvaW5kZXgudHMiLCAiLi4vcGFja2FnZS5qc29uIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgKiBhcyBjcnlwdG8gZnJvbSBcIm5vZGU6Y3J5cHRvXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgdHlwZSB7IE5leHRDb25maWcgfSBmcm9tIFwibmV4dFwiO1xuaW1wb3J0IHBrZyBmcm9tIFwiLi4vLi4vcGFja2FnZS5qc29uXCI7XG5cbmV4cG9ydCB0eXBlIFdpdGhBZ2VudENvbmZpZyA9IHtcbiAgLyoqIEVuYWJsZSBkZWJ1ZyBsb2dnaW5nIGZvciB0aGUgTmV4dC5qcyBsb2FkZXIgKGFnZW50IGRldGVjdGlvbiwgZmlsZSBnZW5lcmF0aW9uKS4gKi9cbiAgZGVidWc/OiBib29sZWFuO1xufTtcblxuY29uc3QgUEFDS0FHRV9OQU1FID0gcGtnLm5hbWU7XG5jb25zdCBBR0VOVF9QUk9UT0NPTF9WRVJTSU9OID0gXCJ2MVwiO1xuY29uc3QgRklMRV9FWFRfUkVHRVggPSAvXFwuKHRzfHRzeHxqc3xqc3gpJC87XG5jb25zdCBBR0VOVF9FWFBPUlRfUkVHRVggPSAvZXhwb3J0XFxzK2NvbnN0XFxzKyhcXHcrKVxccyo9XFxzKmFnZW50XFxzKlxcKC9nO1xuY29uc3QgREVGQVVMVF9XT1JLRkxPV19ESVJTID0gW1wicGFnZXNcIiwgXCJhcHBcIiwgXCJzcmMvcGFnZXNcIiwgXCJzcmMvYXBwXCJdO1xuXG50eXBlIERldGVjdGVkQWdlbnQgPSB7XG4gIGV4cG9ydE5hbWU6IHN0cmluZztcbiAgZmlsZVBhdGg6IHN0cmluZztcbiAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyOiBleHBvcnROYW1lIG9yIGV4cG9ydE5hbWVfaGFzaCBpZiBkdXBsaWNhdGVzIGV4aXN0ICovXG4gIHVuaXF1ZUlkOiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBzaG9ydEhhc2goc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgaGFzaCA9IDA7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgY2hhciA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9CaXR3aXNlT3BlcmF0b3JzOiBpbnRlbnRpb25hbCBoYXNoIGNvbXB1dGF0aW9uXG4gICAgaGFzaCA9IChoYXNoIDw8IDUpIC0gaGFzaCArIGNoYXI7XG4gICAgLy8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub0JpdHdpc2VPcGVyYXRvcnM6IGNvbnZlcnQgdG8gMzItYml0IGludGVnZXJcbiAgICBoYXNoICY9IGhhc2g7XG4gIH1cbiAgcmV0dXJuIE1hdGguYWJzKGhhc2gpLnRvU3RyaW5nKDM2KS5zbGljZSgwLCA2KTtcbn1cblxuZnVuY3Rpb24gaGFzTmV4dEFwcExheW91dChkaXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gW1wibGF5b3V0LnRzeFwiLCBcImxheW91dC50c1wiLCBcImxheW91dC5qc1wiLCBcImxheW91dC5qc3hcIl0uc29tZSgoZikgPT5cbiAgICBmcy5leGlzdHNTeW5jKHBhdGguam9pbihkaXIsIGYpKVxuICApO1xufVxuXG4vKipcbiAqIERldGVjdHMgd2hldGhlciB0aGUgcHJvamVjdCB1c2VzIHNyYy9hcHAgb3IgYXBwIGRpcmVjdG9yeSBzdHJ1Y3R1cmVcbiAqIGJ5IGNoZWNraW5nIHdoaWNoIGRpcmVjdG9yeSBjb250YWlucyBhIE5leHQuanMgbGF5b3V0IGZpbGUuXG4gKiBSZXR1cm5zIHRoZSBhcHAgZGlyZWN0b3J5IHBhdGggcmVsYXRpdmUgdG8gY3dkLlxuICovXG5mdW5jdGlvbiBnZXRBcHBEaXIoY3dkOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBzcmNBcHBEaXIgPSBwYXRoLmpvaW4oY3dkLCBcInNyY1wiLCBcImFwcFwiKTtcbiAgY29uc3Qgcm9vdEFwcERpciA9IHBhdGguam9pbihjd2QsIFwiYXBwXCIpO1xuXG4gIGlmIChoYXNOZXh0QXBwTGF5b3V0KHNyY0FwcERpcikpIHtcbiAgICByZXR1cm4gXCJzcmMvYXBwXCI7XG4gIH1cbiAgaWYgKGhhc05leHRBcHBMYXlvdXQocm9vdEFwcERpcikpIHtcbiAgICByZXR1cm4gXCJhcHBcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBGYWxsYmFjayB3aGVuIG5laXRoZXIgZGlyZWN0b3J5IGhhcyBhIGxheW91dCBmaWxlIHlldFxuICAgKiAoZS5nLiBmcmVzaCBwcm9qZWN0KS4gUHJlZmVyIHNyYy9hcHAgaWYgdGhlIGRpcmVjdG9yeSBleGlzdHMuXG4gICAqL1xuICBpZiAoZnMuZXhpc3RzU3luYyhzcmNBcHBEaXIpKSB7XG4gICAgcmV0dXJuIFwic3JjL2FwcFwiO1xuICB9XG4gIHJldHVybiBcImFwcFwiO1xufVxuXG4vKipcbiAqIFNjYW5zIGZvciBhZ2VudCBleHBvcnRzIGluIHRoZSBwcm9qZWN0LlxuICovXG5mdW5jdGlvbiBkZXRlY3RBZ2VudHMoY3dkOiBzdHJpbmcsIGRlYnVnOiBib29sZWFuKTogRGV0ZWN0ZWRBZ2VudFtdIHtcbiAgY29uc3QgYWdlbnRzOiBEZXRlY3RlZEFnZW50W10gPSBbXTtcblxuICBjb25zdCBkaXJzVG9TY2FuID0gW3BhdGguam9pbihjd2QsIFwic3JjXCIpLCBjd2RdO1xuXG4gIGZ1bmN0aW9uIHNjYW5EaXIoZGlyOiBzdHJpbmcpIHtcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZGlyKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVudHJpZXMgPSBmcy5yZWFkZGlyU3luYyhkaXIsIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KTtcbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5qb2luKGRpciwgZW50cnkubmFtZSk7XG4gICAgICBpZiAoXG4gICAgICAgIGVudHJ5LmlzRGlyZWN0b3J5KCkgJiZcbiAgICAgICAgIWVudHJ5Lm5hbWUuc3RhcnRzV2l0aChcIi5cIikgJiZcbiAgICAgICAgZW50cnkubmFtZSAhPT0gXCJub2RlX21vZHVsZXNcIiAmJlxuICAgICAgICBlbnRyeS5uYW1lICE9PSBcInNyY1wiXG4gICAgICApIHtcbiAgICAgICAgc2NhbkRpcihmdWxsUGF0aCk7XG4gICAgICB9IGVsc2UgaWYgKGVudHJ5LmlzRmlsZSgpICYmIEZJTEVfRVhUX1JFR0VYLnRlc3QoZW50cnkubmFtZSkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKGZ1bGxQYXRoLCBcInV0Zi04XCIpO1xuICAgICAgICAgIGlmIChjb250ZW50LmluY2x1ZGVzKFBBQ0tBR0VfTkFNRSkgJiYgY29udGVudC5pbmNsdWRlcyhcImFnZW50KFwiKSkge1xuICAgICAgICAgICAgLy8gU3RyaXAgc2luZ2xlLWxpbmUgY29tbWVudHMgYW5kIGJsb2NrIGNvbW1lbnRzIHRvIGF2b2lkXG4gICAgICAgICAgICAvLyBtYXRjaGluZyBjb21tZW50ZWQtb3V0IGFnZW50IGV4cG9ydHNcbiAgICAgICAgICAgIGNvbnN0IHN0cmlwcGVkID0gY29udGVudFxuICAgICAgICAgICAgICAucmVwbGFjZSgvXFwvXFwvLiokL2dtLCBcIlwiKVxuICAgICAgICAgICAgICAucmVwbGFjZSgvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nLCBcIlwiKTtcbiAgICAgICAgICAgIGNvbnN0IGV4cG9ydE1hdGNoZXMgPSBBcnJheS5mcm9tKFxuICAgICAgICAgICAgICBzdHJpcHBlZC5tYXRjaEFsbChBR0VOVF9FWFBPUlRfUkVHRVgpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBtYXRjaCBvZiBleHBvcnRNYXRjaGVzKSB7XG4gICAgICAgICAgICAgIGlmIChzZWVuLmhhcyhtYXRjaFsxXSkpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBzZWVuLmFkZChtYXRjaFsxXSk7XG4gICAgICAgICAgICAgIGFnZW50cy5wdXNoKHtcbiAgICAgICAgICAgICAgICBleHBvcnROYW1lOiBtYXRjaFsxXSxcbiAgICAgICAgICAgICAgICBmaWxlUGF0aDogZnVsbFBhdGgsXG4gICAgICAgICAgICAgICAgdW5pcXVlSWQ6IFwiXCIsIC8vIFdpbGwgYmUgc2V0IGFmdGVyIGFsbCBhZ2VudHMgYXJlIGZvdW5kXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBpZiAoZGVidWcpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICAgIGBbd2l0aEFnZW50XSBGb3VuZCBhZ2VudDogJHttYXRjaFsxXX0gaW4gJHtmdWxsUGF0aH1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gSWdub3JlIHJlYWQgZXJyb3JzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb3IgKGNvbnN0IGRpciBvZiBkaXJzVG9TY2FuKSB7XG4gICAgc2NhbkRpcihkaXIpO1xuICB9XG5cbiAgLy8gQXNzaWduIHVuaXF1ZSBJRHMgLSBhZGQgaGFzaCBzdWZmaXggaWYgZHVwbGljYXRlIGV4cG9ydCBuYW1lcyBleGlzdFxuICBjb25zdCBuYW1lQ291bnRzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbiAgZm9yIChjb25zdCBhZ2VudCBvZiBhZ2VudHMpIHtcbiAgICBuYW1lQ291bnRzLnNldChcbiAgICAgIGFnZW50LmV4cG9ydE5hbWUsXG4gICAgICAobmFtZUNvdW50cy5nZXQoYWdlbnQuZXhwb3J0TmFtZSkgfHwgMCkgKyAxXG4gICAgKTtcbiAgfVxuXG4gIGZvciAoY29uc3QgYWdlbnQgb2YgYWdlbnRzKSB7XG4gICAgY29uc3QgY291bnQgPSBuYW1lQ291bnRzLmdldChhZ2VudC5leHBvcnROYW1lKSA/PyAwO1xuICAgIGlmIChjb3VudCA+IDEpIHtcbiAgICAgIGFnZW50LnVuaXF1ZUlkID0gYCR7YWdlbnQuZXhwb3J0TmFtZX1fJHtzaG9ydEhhc2goYWdlbnQuZmlsZVBhdGgpfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFnZW50LnVuaXF1ZUlkID0gYWdlbnQuZXhwb3J0TmFtZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYWdlbnRzO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhbGwgYWdlbnQgZmlsZXMgaW4gLndlbGwta25vd24vYWdlbnQvdjEvOlxuICogLSBzdGVwcy5qczogUlBDIHN0ZXAgZnVuY3Rpb25zIHdpdGggXCJ1c2Ugc3RlcFwiXG4gKiAtIHJvdXRlLmpzOiB0cmlnZ2VycyB3b3JrZmxvdyBkaXNjb3ZlcnlcbiAqL1xuZnVuY3Rpb24gZ2VuZXJhdGVBZ2VudEZpbGVzKFxuICBhZ2VudHM6IERldGVjdGVkQWdlbnRbXSxcbiAgb3V0cHV0RGlyOiBzdHJpbmcsXG4gIF9jd2Q6IHN0cmluZyxcbiAgZGVidWc6IGJvb2xlYW5cbik6IHZvaWQge1xuICBpZiAoYWdlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIGlmIChkZWJ1Zykge1xuICAgICAgY29uc29sZS5sb2coXCJbd2l0aEFnZW50XSBObyBhZ2VudHMgZm91bmQsIHNraXBwaW5nIGdlbmVyYXRpb25cIik7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICghZnMuZXhpc3RzU3luYyhvdXRwdXREaXIpKSB7XG4gICAgZnMubWtkaXJTeW5jKG91dHB1dERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgc3RlcCBmdW5jdGlvbnMgdGhhdCB1c2UgZHluYW1pYyBpbXBvcnQuXG4gICAqIER5bmFtaWMgaW1wb3J0IGVuc3VyZXMgdGhlIGFnZW50IG1vZHVsZSBsb2FkcyAoaW5jbHVkaW5nIGxvYWRlci1pbmplY3RlZCBpbml0KVxuICAgKiB3aGVuIHRoZSBzdGVwIHJ1bnMgaW4gd29ya2Zsb3cgY29udGV4dCwgYXZvaWRpbmcgdGhlIFwibm90IGluaXRpYWxpemVkXCIgZXJyb3IuXG4gICAqXG4gICAqIFVzZXMgdW5pcXVlSWQgZm9yIGZ1bmN0aW9uIG5hbWVzIHRvIGhhbmRsZSBkdXBsaWNhdGUgZXhwb3J0IG5hbWVzIGFjcm9zcyBmaWxlcy5cbiAgICovXG4gIGNvbnN0IHJwY0Z1bmN0aW9ucyA9IGFnZW50c1xuICAgIC5tYXAoKGEpID0+IHtcbiAgICAgIC8vIENhbGN1bGF0ZSByZWxhdGl2ZSBwYXRoIGZyb20gc3RlcHMuanMgdG8gdGhlIGFnZW50IGZpbGVcbiAgICAgIGxldCBhZ2VudFJlbFBhdGggPSBwYXRoXG4gICAgICAgIC5yZWxhdGl2ZShvdXRwdXREaXIsIGEuZmlsZVBhdGgpXG4gICAgICAgIC5yZXBsYWNlKC9cXFxcL2csIFwiL1wiKTtcblxuICAgICAgaWYgKCFhZ2VudFJlbFBhdGguc3RhcnRzV2l0aChcIi5cIikpIHtcbiAgICAgICAgYWdlbnRSZWxQYXRoID0gYC4vJHthZ2VudFJlbFBhdGh9YDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGBcbmV4cG9ydCBjb25zdCAke2EudW5pcXVlSWR9UnBjID0gYXN5bmMgKHBhcmFtcykgPT4ge1xuICBcInVzZSBzdGVwXCI7XG4gIGNvbnN0IHsgJHthLmV4cG9ydE5hbWV9IH0gPSBhd2FpdCBpbXBvcnQoXCIke2FnZW50UmVsUGF0aH1cIik7XG4gIGNvbnN0IHJlcyA9IGF3YWl0ICR7YS5leHBvcnROYW1lfS5oYW5kbGVyKHBhcmFtcyk7XG4gIGlmIChyZXMgaW5zdGFuY2VvZiBSZXNwb25zZSkge1xuICAgIHJldHVybiByZXMuanNvbigpO1xuICB9XG4gIHJldHVybiByZXM7XG59O2A7XG4gICAgfSlcbiAgICAuam9pbihcIlxcblwiKTtcblxuICAvKipcbiAgICogSW5pdCBmdW5jdGlvbnMgd2lyZSB1cCBhZ2VudC5ycGMgaW4gdGhlIG1haW4gYXBwIGNvbnRleHQuXG4gICAqIFVzZXMgZXhwb3J0TmFtZSBmb3IgdGhlIGZ1bmN0aW9uIG5hbWUgKGxvYWRlciBtYXRjaGVzIGJ5IGV4cG9ydCBuYW1lKSxcbiAgICogYnV0IHJlZmVyZW5jZXMgdW5pcXVlSWQgZm9yIHRoZSBScGMgZnVuY3Rpb24uXG4gICAqL1xuICBjb25zdCBpbml0RnVuY3Rpb25zID0gYWdlbnRzXG4gICAgLm1hcChcbiAgICAgIChhKSA9PiBgXG5leHBvcnQgZnVuY3Rpb24gX19pbml0JHthLmV4cG9ydE5hbWVbMF0udG9VcHBlckNhc2UoKX0ke2EuZXhwb3J0TmFtZS5zbGljZShcbiAgICAgICAgMVxuICAgICAgKX0oYWdlbnQpIHtcbiAgYWdlbnQucnBjID0gJHthLnVuaXF1ZUlkfVJwYztcbn1gXG4gICAgKVxuICAgIC5qb2luKFwiXFxuXCIpO1xuXG4gIGNvbnN0IHN0ZXBzQ29udGVudCA9IGAvLyBBdXRvLWdlbmVyYXRlZCBieSB3aXRoQWdlbnQgLSBkbyBub3QgZWRpdFxuJHtycGNGdW5jdGlvbnN9XG4ke2luaXRGdW5jdGlvbnN9XG5gO1xuXG4gIGNvbnN0IHN0ZXBzUGF0aCA9IHBhdGguam9pbihvdXRwdXREaXIsIFwic3RlcHMuanNcIik7XG4gIGZzLndyaXRlRmlsZVN5bmMoc3RlcHNQYXRoLCBzdGVwc0NvbnRlbnQpO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSByb3V0ZS5qcyB0aGF0IGltcG9ydHMgc3RlcHMuanMuXG4gICAqIFRoaXMgZW5zdXJlcyB3b3JrZmxvdyBkaXNjb3ZlcnMgdGhlIFwidXNlIHN0ZXBcIiBmdW5jdGlvbnMuXG4gICAqIE5vIGFjdHVhbCBoYW5kbGVyIG5lZWRlZCAtIHN0b3JhZ2UgUlBDIHVzZXMgdGhlIHN0ZXAgZnVuY3Rpb24gZGlyZWN0bHkuXG4gICAqL1xuICBjb25zdCByb3V0ZUNvbnRlbnQgPSBgLy8gQXV0by1nZW5lcmF0ZWQgYnkgd2l0aEFnZW50IC0gdHJpZ2dlcnMgd29ya2Zsb3cgZGlzY292ZXJ5XG5pbXBvcnQgXCIuL3N0ZXBzLmpzXCI7XG5leHBvcnQgZnVuY3Rpb24gR0VUKCkge1xuICByZXR1cm4gbmV3IFJlc3BvbnNlKFwib2tcIik7XG59XG5gO1xuXG4gIGNvbnN0IHJvdXRlUGF0aCA9IHBhdGguam9pbihvdXRwdXREaXIsIFwicm91dGUuanNcIik7XG4gIGZzLndyaXRlRmlsZVN5bmMocm91dGVQYXRoLCByb3V0ZUNvbnRlbnQpO1xuXG4gIC8vIEFkZCAuZ2l0aWdub3JlXG4gIGNvbnN0IGdpdGlnbm9yZVBhdGggPSBwYXRoLmpvaW4ob3V0cHV0RGlyLCBcIi5naXRpZ25vcmVcIik7XG4gIGlmICghZnMuZXhpc3RzU3luYyhnaXRpZ25vcmVQYXRoKSkge1xuICAgIGZzLndyaXRlRmlsZVN5bmMoZ2l0aWdub3JlUGF0aCwgXCIqXFxuXCIpO1xuICB9XG5cbiAgaWYgKGRlYnVnKSB7XG4gICAgY29uc29sZS5sb2coYFt3aXRoQWdlbnRdIEdlbmVyYXRlZCBhZ2VudCBmaWxlcyBhdCAke291dHB1dERpcn1gKTtcbiAgfVxufVxuXG50eXBlIFR1cmJvcGFja0xvYWRlciA9XG4gIHwgc3RyaW5nXG4gIHwgeyBsb2FkZXI6IHN0cmluZzsgb3B0aW9ucz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH07XG5cbnR5cGUgVHVyYm9wYWNrUnVsZSA9IHtcbiAgbG9hZGVycz86IFR1cmJvcGFja0xvYWRlcltdO1xuICBjb25kaXRpb24/OiB7XG4gICAgYWxsPzogdW5rbm93bltdO1xuICAgIGFueT86IHVua25vd25bXTtcbiAgICBwYXRoPzogUmVnRXhwO1xuICAgIGNvbnRlbnQ/OiBSZWdFeHA7XG4gICAgbm90PzogdW5rbm93bjtcbiAgfTtcbn07XG5cbnR5cGUgV29ya2Zsb3dDb25maWdGbiA9IChcbiAgcGhhc2U6IHN0cmluZyxcbiAgY3R4OiB7IGRlZmF1bHRDb25maWc6IE5leHRDb25maWcgfVxuKSA9PiBQcm9taXNlPE5leHRDb25maWc+O1xuXG50eXBlIE5leHRDb25maWdJbnB1dCA9XG4gIHwgTmV4dENvbmZpZ1xuICB8ICgoXG4gICAgICBwaGFzZTogc3RyaW5nLFxuICAgICAgY3R4OiB7IGRlZmF1bHRDb25maWc6IE5leHRDb25maWcgfVxuICAgICkgPT4gUHJvbWlzZTxOZXh0Q29uZmlnPik7XG5cbi8qKlxuICogTmV4dC5qcyBwbHVnaW4gdGhhdCBjb25maWd1cmVzIGFnZW50IHN1cHBvcnQuXG4gKlxuICogLSBEZXRlY3RzIGFnZW50cyBhbmQgZ2VuZXJhdGVzIFJQQyBzdGVwcyB3aXRoIFwidXNlIHN0ZXBcIiBpbiAud2VsbC1rbm93bi9hZ2VudC92MS9cbiAqIC0gR2VuZXJhdGVzIEFHRU5UX1NFQ1JFVCBmb3Igc2VjdXJlIFJQQyBjYWxsc1xuICogLSBXcmFwcyB3aXRoV29ya2Zsb3cgZm9yIHdvcmtmbG93IHN1cHBvcnRcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIG5leHQuY29uZmlnLnRzXG4gKiBpbXBvcnQgeyB3aXRoQWdlbnQgfSBmcm9tIFwiZXhwZXJpbWVudGFsLWFnZW50L25leHRcIjtcbiAqXG4gKiAvLyBPcHRpb24gMTogd2l0aEFnZW50IGhhbmRsZXMgZXZlcnl0aGluZyAocmVjb21tZW5kZWQpXG4gKiBleHBvcnQgZGVmYXVsdCB3aXRoQWdlbnQoe30pO1xuICpcbiAqIC8vIE9wdGlvbiAyOiBDb21wb3NlIHdpdGggb3RoZXIgcGx1Z2luc1xuICogZXhwb3J0IGRlZmF1bHQgd2l0aEFnZW50KHdpdGhTb21lT3RoZXJQbHVnaW4oe30pKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aEFnZW50KFxuICBjb25maWdPckZuOiBOZXh0Q29uZmlnSW5wdXQsXG4gIGFnZW50Q29uZmlnPzogV2l0aEFnZW50Q29uZmlnXG4pOiBXb3JrZmxvd0NvbmZpZ0ZuIHtcbiAgY29uc3QgZGVidWcgPSBhZ2VudENvbmZpZz8uZGVidWcgPz8gZmFsc2U7XG4gIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKCk7XG5cbiAgLy8gRGV0ZWN0IGFwcCBkaXJlY3Rvcnkgc3RydWN0dXJlIChzcmMvYXBwIHZzIGFwcClcbiAgY29uc3QgYXBwRGlyID0gZ2V0QXBwRGlyKGN3ZCk7XG4gIGNvbnN0IGFnZW50RGlyID0gYCR7YXBwRGlyfS8ud2VsbC1rbm93bi9hZ2VudC8ke0FHRU5UX1BST1RPQ09MX1ZFUlNJT059YDtcblxuICAvLyBEZXRlY3QgYWdlbnRzIGFuZCBnZW5lcmF0ZSBmaWxlcyBGSVJTVCAoYmVmb3JlIHdvcmtmbG93IGRpc2NvdmVycyB0aGVtKVxuICBjb25zdCBhZ2VudHMgPSBkZXRlY3RBZ2VudHMoY3dkLCBkZWJ1Zyk7XG4gIGNvbnN0IG91dHB1dERpciA9IHBhdGguam9pbihjd2QsIGFnZW50RGlyKTtcbiAgZ2VuZXJhdGVBZ2VudEZpbGVzKGFnZW50cywgb3V0cHV0RGlyLCBjd2QsIGRlYnVnKTtcblxuICBjb25zdCBhZ2VudEZpbGVQYXRocyA9IGFnZW50cy5tYXAoKGEpID0+IGEuZmlsZVBhdGgpO1xuICBjb25zdCBsb2FkZXJQYXRoID0gcmVxdWlyZS5yZXNvbHZlKFwiLi9uZXh0L2xvYWRlclwiKTtcbiAgY29uc3QgYWJzb2x1dGVBcHBEaXIgPSBwYXRoLmpvaW4oY3dkLCBhcHBEaXIpO1xuICBjb25zdCBsb2FkZXJPcHRpb25zID0geyBhcHBEaXI6IGFic29sdXRlQXBwRGlyLCBkZWJ1ZyB9O1xuXG4gIGlmIChkZWJ1Zykge1xuICAgIGNvbnNvbGUubG9nKFwiW3dpdGhBZ2VudF0gbG9hZGVyIHBhdGg6XCIsIGxvYWRlclBhdGgpO1xuICAgIGNvbnNvbGUubG9nKFwiW3dpdGhBZ2VudF0gYWdlbnQgZmlsZXM6XCIsIGFnZW50RmlsZVBhdGhzKTtcbiAgICBjb25zb2xlLmxvZyhcIlt3aXRoQWdlbnRdIGFnZW50IGRpcjpcIiwgYWdlbnREaXIpO1xuICB9XG5cbiAgLy8gQnVpbGQgcmVnZXggdG8gbWF0Y2ggYWdlbnQgZmlsZSBwYXRoc1xuICBjb25zdCBhZ2VudFBhdGhSZWdleCA9XG4gICAgYWdlbnRGaWxlUGF0aHMubGVuZ3RoID4gMFxuICAgICAgPyBuZXcgUmVnRXhwKFxuICAgICAgICAgIGAke2FnZW50RmlsZVBhdGhzXG4gICAgICAgICAgICAubWFwKChwKSA9PlxuICAgICAgICAgICAgICBwYXRoXG4gICAgICAgICAgICAgICAgLnJlbGF0aXZlKGN3ZCwgcClcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvXFxcXC9nLCBcIi9cIilcbiAgICAgICAgICAgICAgICAucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csIFwiXFxcXCQmXCIpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuam9pbihcInxcIil9JGBcbiAgICAgICAgKVxuICAgICAgOiBudWxsO1xuXG4gIC8qKlxuICAgKiBBbHdheXMgcGFzcyB0aHJvdWdoIHdpdGhXb3JrZmxvdyAtIGl0IGhhbmRsZXMgYm90aCBOZXh0Q29uZmlnIGFuZCBhc3luYyBmdW5jdGlvbnMuXG4gICAqIFRoaXMgZW5zdXJlcyB3b3JrZmxvdyBpcyBhbHdheXMgY29uZmlndXJlZCwgcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSB1c2VyIHBhc3NlZC5cbiAgICovXG4gIGxldCB3aXRoV29ya2Zsb3c6IChcbiAgICBjb25maWc6IE5leHRDb25maWdJbnB1dCxcbiAgICBvcHRpb25zPzogeyB3b3JrZmxvd3M/OiB7IGRpcnM/OiBzdHJpbmdbXSB9IH1cbiAgKSA9PiBXb3JrZmxvd0NvbmZpZ0ZuO1xuICB0cnkge1xuICAgIHdpdGhXb3JrZmxvdyA9IHJlcXVpcmUoXCJ3b3JrZmxvdy9uZXh0XCIpLndpdGhXb3JrZmxvdztcbiAgfSBjYXRjaCB7XG4gICAgY29uc29sZS53YXJuKFxuICAgICAgXCJbd2l0aEFnZW50XSB3b3JrZmxvdy9uZXh0IG5vdCBmb3VuZC4gTWFrZSBzdXJlIHdvcmtmbG93IGlzIGluc3RhbGxlZC5cIlxuICAgICk7XG4gICAgcmV0dXJuIHR5cGVvZiBjb25maWdPckZuID09PSBcImZ1bmN0aW9uXCJcbiAgICAgID8gY29uZmlnT3JGblxuICAgICAgOiBhc3luYyAoKSA9PiBjb25maWdPckZuO1xuICB9XG5cbiAgY29uc3QgYmFzZUNvbmZpZ0ZuID0gd2l0aFdvcmtmbG93KGNvbmZpZ09yRm4sIHtcbiAgICB3b3JrZmxvd3M6IHtcbiAgICAgIGRpcnM6IFsuLi5ERUZBVUxUX1dPUktGTE9XX0RJUlMsIGFnZW50RGlyXSxcbiAgICB9LFxuICB9KTtcblxuICAvKipcbiAgICogUmV0dXJuIGEgd3JhcHBlciB0aGF0IHJ1bnMgQUZURVIgd29ya2Zsb3cgcHJvY2Vzc2VzLCB0aGVuIGFkZHMgb3VyIGxvYWRlci5cbiAgICogVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB3b3JrZmxvdyBvdmVyd3JpdGVzIHR1cmJvcGFjayBydWxlcyAtIHdlIG5lZWQgdG9cbiAgICogbW9kaWZ5IHRoZW0gYWZ0ZXIgd29ya2Zsb3cgaXMgZG9uZS5cbiAgICovXG4gIHJldHVybiBhc3luYyAocGhhc2UsIGN0eCkgPT4ge1xuICAgIGNvbnN0IG5leHRDb25maWcgPSBhd2FpdCBiYXNlQ29uZmlnRm4ocGhhc2UsIGN0eCk7XG5cbiAgICAvLyBTZXQgdXAgQUdFTlRfU0VDUkVUIGlmIG5vdCBhbHJlYWR5IHNldFxuICAgIGlmICghcHJvY2Vzcy5lbnYuQUdFTlRfU0VDUkVUKSB7XG4gICAgICBuZXh0Q29uZmlnLmVudiA9IHtcbiAgICAgICAgLi4ubmV4dENvbmZpZy5lbnYsXG4gICAgICAgIEFHRU5UX1NFQ1JFVDogY3J5cHRvLnJhbmRvbVVVSUQoKSxcbiAgICAgIH07XG4gICAgICBpZiAoZGVidWcpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJbd2l0aEFnZW50XSBHZW5lcmF0ZWQgQUdFTlRfU0VDUkVUXCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghYWdlbnRQYXRoUmVnZXggfHwgYWdlbnRGaWxlUGF0aHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbmV4dENvbmZpZztcbiAgICB9XG5cbiAgICAvLyBNb2RpZnkgdHVyYm9wYWNrIHJ1bGVzIHRvIGluY2x1ZGUgb3VyIGxvYWRlciBmb3IgYWdlbnQgZmlsZXNcbiAgICBjb25zdCBydWxlcyA9IChuZXh0Q29uZmlnLnR1cmJvcGFjaz8ucnVsZXMgfHwge30pIGFzIFJlY29yZDxcbiAgICAgIHN0cmluZyxcbiAgICAgIFR1cmJvcGFja1J1bGVcbiAgICA+O1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgW1wiKi50c1wiLCBcIioudHN4XCIsIFwiKi5qc1wiLCBcIiouanN4XCJdKSB7XG4gICAgICBjb25zdCBleGlzdGluZ1J1bGUgPSBydWxlc1trZXldO1xuICAgICAgaWYgKCFleGlzdGluZ1J1bGUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogV29ya2Zsb3cncyBydWxlIGhhczogY29uZGl0aW9uLmFsbCA9IFt7IG5vdDogcGF0aCB9LCB7IGNvbnRlbnQ6IC91c2Ugc3RlcHwuLi4vIH1dXG4gICAgICAgKiBXZSB3YW50OiBydW4gbG9hZGVyIGlmIHdvcmtmbG93J3MgY29uZGl0aW9ucyBtYXRjaCBPUiBpdCdzIGFuIGFnZW50IGZpbGUuXG4gICAgICAgKiBTbyB3ZSB3cmFwIGluOiBjb25kaXRpb24uYW55ID0gW2V4aXN0aW5nQ29uZGl0aW9uLCB7IHBhdGg6IGFnZW50UGF0aFJlZ2V4IH1dXG4gICAgICAgKi9cbiAgICAgIHJ1bGVzW2tleV0gPSB7XG4gICAgICAgIC4uLmV4aXN0aW5nUnVsZSxcbiAgICAgICAgbG9hZGVyczogW1xuICAgICAgICAgIHsgbG9hZGVyOiBsb2FkZXJQYXRoLCBvcHRpb25zOiBsb2FkZXJPcHRpb25zIH0sXG4gICAgICAgICAgLi4uKGV4aXN0aW5nUnVsZS5sb2FkZXJzIHx8IFtdKSxcbiAgICAgICAgXSxcbiAgICAgICAgY29uZGl0aW9uOiB7XG4gICAgICAgICAgYW55OiBbZXhpc3RpbmdSdWxlLmNvbmRpdGlvbiwgeyBwYXRoOiBhZ2VudFBhdGhSZWdleCB9XSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gQWxzbyBjb25maWd1cmUgd2VicGFjayBmb3Igbm9uLXR1cmJvcGFjayBidWlsZHNcbiAgICBjb25zdCBleGlzdGluZ1dlYnBhY2sgPSBuZXh0Q29uZmlnLndlYnBhY2s7XG4gICAgbmV4dENvbmZpZy53ZWJwYWNrID0gKHdlYnBhY2tDb25maWcsIGNvbnRleHQpID0+IHtcbiAgICAgIHdlYnBhY2tDb25maWcubW9kdWxlLnJ1bGVzLnB1c2goe1xuICAgICAgICB0ZXN0OiAocmVzb3VyY2VQYXRoOiBzdHJpbmcpID0+IGFnZW50RmlsZVBhdGhzLmluY2x1ZGVzKHJlc291cmNlUGF0aCksXG4gICAgICAgIHVzZTogW3sgbG9hZGVyOiBsb2FkZXJQYXRoLCBvcHRpb25zOiBsb2FkZXJPcHRpb25zIH1dLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gZXhpc3RpbmdXZWJwYWNrPy4od2VicGFja0NvbmZpZywgY29udGV4dCkgPz8gd2VicGFja0NvbmZpZztcbiAgICB9O1xuXG4gICAgaWYgKGRlYnVnKSB7XG4gICAgICBjb25zb2xlLmxvZyhcIlt3aXRoQWdlbnRdIEFkZGVkIGFnZW50IGxvYWRlciB0byB0dXJib3BhY2sgcnVsZXNcIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHRDb25maWc7XG4gIH07XG59XG4iLCAie1xuICBcIm5hbWVcIjogXCJleHBlcmltZW50YWwtYWdlbnRcIixcbiAgXCJ2ZXJzaW9uXCI6IFwiMC44LjBcIixcbiAgXCJtYWluXCI6IFwiLi9kaXN0L2luZGV4LmpzXCIsXG4gIFwibW9kdWxlXCI6IFwiLi9kaXN0L2luZGV4Lm1qc1wiLFxuICBcInR5cGVzXCI6IFwiLi9kaXN0L2luZGV4LmQudHNcIixcbiAgXCJzaWRlRWZmZWN0c1wiOiB0cnVlLFxuICBcImxpY2Vuc2VcIjogXCJNSVRcIixcbiAgXCJmaWxlc1wiOiBbXG4gICAgXCJkaXN0LyoqXCJcbiAgXSxcbiAgXCJleHBvcnRzXCI6IHtcbiAgICBcIi5cIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9pbmRleC5kLnRzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC9pbmRleC5tanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC9pbmRleC5qc1wiXG4gICAgfSxcbiAgICBcIi4vc3RvcmFnZVwiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L3N0b3JhZ2UuZC50c1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3Qvc3RvcmFnZS5tanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC9zdG9yYWdlLmpzXCJcbiAgICB9LFxuICAgIFwiLi9zYW5kYm94XCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3Qvc2FuZGJveC5kLnRzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC9zYW5kYm94Lm1qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0L3NhbmRib3guanNcIlxuICAgIH0sXG4gICAgXCIuL25leHRcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9uZXh0LmQudHNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0L25leHQubWpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QvbmV4dC5qc1wiXG4gICAgfSxcbiAgICBcIi4vbmV4dC9sb2FkZXJcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9uZXh0L2xvYWRlci5kLnRzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC9uZXh0L2xvYWRlci5tanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC9uZXh0L2xvYWRlci5qc1wiXG4gICAgfSxcbiAgICBcIi4vbmV4dC9hZ2VudHNcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9uZXh0L2FnZW50cy5kLnRzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC9uZXh0L2FnZW50cy5tanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC9uZXh0L2FnZW50cy5qc1wiXG4gICAgfSxcbiAgICBcIi4vZnJhbWV3b3JrXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QvZnJhbWV3b3JrLmQudHNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0L2ZyYW1ld29yay5tanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC9mcmFtZXdvcmsuanNcIlxuICAgIH0sXG4gICAgXCIuL2ZyYW1ld29yay1ydW50aW1lXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QvZnJhbWV3b3JrLXJ1bnRpbWUuZC50c1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QvZnJhbWV3b3JrLXJ1bnRpbWUubWpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QvZnJhbWV3b3JrLXJ1bnRpbWUuanNcIlxuICAgIH0sXG4gICAgXCIuL2NsaWVudFwiOiB7XG4gICAgICBcInR5cGVzXCI6IFwiLi9kaXN0L2NsaWVudC5kLnRzXCIsXG4gICAgICBcImltcG9ydFwiOiBcIi4vZGlzdC9jbGllbnQubWpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QvY2xpZW50LmpzXCJcbiAgICB9LFxuICAgIFwiLi9saWZlY3ljbGUtd29ya2Zsb3dcIjoge1xuICAgICAgXCJ0eXBlc1wiOiBcIi4vZGlzdC9saWZlY3ljbGUtd29ya2Zsb3cuZC50c1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QvbGlmZWN5Y2xlLXdvcmtmbG93Lm1qc1wiLFxuICAgICAgXCJyZXF1aXJlXCI6IFwiLi9kaXN0L2xpZmVjeWNsZS13b3JrZmxvdy5qc1wiXG4gICAgfSxcbiAgICBcIi4vbGlmZWN5Y2xlLXdvcmtmbG93LXN0ZXBzXCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QvbGlmZWN5Y2xlLXdvcmtmbG93LXN0ZXBzLmQudHNcIixcbiAgICAgIFwiaW1wb3J0XCI6IFwiLi9kaXN0L2xpZmVjeWNsZS13b3JrZmxvdy1zdGVwcy5tanNcIixcbiAgICAgIFwicmVxdWlyZVwiOiBcIi4vZGlzdC9saWZlY3ljbGUtd29ya2Zsb3ctc3RlcHMuanNcIlxuICAgIH0sXG4gICAgXCIuL3JlYWN0XCI6IHtcbiAgICAgIFwidHlwZXNcIjogXCIuL2Rpc3QvcmVhY3QuZC50c1wiLFxuICAgICAgXCJpbXBvcnRcIjogXCIuL2Rpc3QvcmVhY3QubWpzXCIsXG4gICAgICBcInJlcXVpcmVcIjogXCIuL2Rpc3QvcmVhY3QuanNcIlxuICAgIH1cbiAgfSxcbiAgXCJzY3JpcHRzXCI6IHtcbiAgICBcImJ1aWxkXCI6IFwidHN1cFwiLFxuICAgIFwiZGV2XCI6IFwidHN1cCAtLXdhdGNoXCIsXG4gICAgXCJjbGVhblwiOiBcInJtIC1yZiAudHVyYm8gJiYgcm0gLXJmIG5vZGVfbW9kdWxlcyAmJiBybSAtcmYgZGlzdFwiLFxuICAgIFwicmVsZWFzZVwiOiBcInBucG0gYnVpbGQgJiYgbnBtIHB1Ymxpc2hcIixcbiAgICBcInR5cGVjaGVja1wiOiBcInRzYyAtLW5vRW1pdFwiLFxuICAgIFwidGVzdFwiOiBcInZpdGVzdCBydW5cIixcbiAgICBcInRlc3Q6d2F0Y2hcIjogXCJ2aXRlc3RcIlxuICB9LFxuICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAZWx5c2lhanMvb3BlbmFwaVwiOiBcIl4xLjQuMTRcIixcbiAgICBcIkBzd2MvY29yZVwiOiBcIl4xLjEwLjBcIixcbiAgICBcIkB0YW5zdGFjay9yZWFjdC1xdWVyeVwiOiBcIl41LjkwLjIxXCIsXG4gICAgXCJAdmVyY2VsL2t2MlwiOiBcIl4wLjAuMThcIixcbiAgICBcIkB2ZXJjZWwvb2lkY1wiOiBcIl4zLjEuMFwiLFxuICAgIFwiQHZlcmNlbC9zYW5kYm94XCI6IFwiMS43LjFcIixcbiAgICBcIkB3b3JrZmxvdy9zZXJkZVwiOiBcIjQuMS4wLWJldGEuMlwiLFxuICAgIFwiYmV0dGVyLWFsbFwiOiBcIl4wLjAuNVwiLFxuICAgIFwiZWx5c2lhXCI6IFwiXjEuNC4yNVwiLFxuICAgIFwiZXJyb3JlXCI6IFwiXjAuMTQuMFwiLFxuICAgIFwiZmFzdC1kZWVwLWVxdWFsXCI6IFwiXjMuMS4zXCIsXG4gICAgXCJ1bGlkXCI6IFwiXjMuMC4yXCIsXG4gICAgXCJ6b2RcIjogXCJeNC4zLjZcIlxuICB9LFxuICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJAYWdlbnQvdHNjb25maWdcIjogXCJ3b3Jrc3BhY2U6KlwiLFxuICAgIFwiQGFpLXNkay9yZWFjdFwiOiBcIl4zLjAuODhcIixcbiAgICBcIkB0eXBlcy9ub2RlXCI6IFwiXjIwLjExLjI0XCIsXG4gICAgXCJAdHlwZXMvcmVhY3RcIjogXCJeMTkuMi4xNFwiLFxuICAgIFwiZG90ZW52XCI6IFwiXjE3LjIuM1wiLFxuICAgIFwibmV4dFwiOiBcIl4xNi4wLjBcIixcbiAgICBcInJlYWN0XCI6IFwiXjE5LjIuNFwiLFxuICAgIFwidHN1cFwiOiBcIl44LjAuMlwiLFxuICAgIFwidHlwZXNjcmlwdFwiOiBcIjUuNS40XCIsXG4gICAgXCJ2aXRlc3RcIjogXCJeMy4wLjBcIixcbiAgICBcIndvcmtmbG93XCI6IFwiNC4yLjAtYmV0YS43MFwiXG4gIH0sXG4gIFwicGVlckRlcGVuZGVuY2llc1wiOiB7XG4gICAgXCJhaVwiOiBcIl42LjAuMFwiXG4gIH0sXG4gIFwicHVibGlzaENvbmZpZ1wiOiB7XG4gICAgXCJhY2Nlc3NcIjogXCJwdWJsaWNcIlxuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsYUFBd0I7QUFDeEIsU0FBb0I7QUFDcEIsV0FBc0I7OztBQ0Z0QjtBQUFBLEVBQ0UsTUFBUTtBQUFBLEVBQ1IsU0FBVztBQUFBLEVBQ1gsTUFBUTtBQUFBLEVBQ1IsUUFBVTtBQUFBLEVBQ1YsT0FBUztBQUFBLEVBQ1QsYUFBZTtB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
|