obsidian-dev-utils 22.1.1-beta.21 → 22.1.1-beta.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/lib/cjs/Array.cjs +48 -0
- package/dist/lib/cjs/Array.d.cts +7 -0
- package/dist/lib/cjs/AsyncEvents.cjs +216 -0
- package/dist/lib/cjs/AsyncEvents.d.cts +139 -0
- package/dist/lib/cjs/Blob.cjs +1 -1
- package/dist/lib/cjs/Blob.d.cts +7 -7
- package/dist/lib/cjs/Error.cjs +8 -6
- package/dist/lib/cjs/HTMLElement.cjs +1 -1
- package/dist/lib/cjs/HTMLElement.d.cts +1 -1
- package/dist/lib/cjs/Library.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/CliUtils.cjs +2 -2
- package/dist/lib/cjs/ScriptUtils/CliUtils.d.cts +2 -2
- package/dist/lib/cjs/ScriptUtils/CodeGenerator.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/CodeGenerator.d.cts +1 -1
- package/dist/lib/cjs/ScriptUtils/Fs.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/Fs.d.cts +3 -3
- package/dist/lib/cjs/ScriptUtils/JSON.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/JSON.d.cts +3 -3
- package/dist/lib/cjs/ScriptUtils/Npm.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/Npm.d.cts +9 -9
- package/dist/lib/cjs/ScriptUtils/build.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/build.d.cts +5 -5
- package/dist/lib/cjs/ScriptUtils/esbuild/ObsidianPluginBuilder.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/esbuild/ObsidianPluginBuilder.d.cts +2 -2
- package/dist/lib/cjs/ScriptUtils/format.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/format.d.cts +1 -1
- package/dist/lib/cjs/ScriptUtils/version.cjs +1 -1
- package/dist/lib/cjs/ScriptUtils/version.d.cts +8 -8
- package/dist/lib/cjs/String.cjs +1 -1
- package/dist/lib/cjs/String.d.cts +1 -1
- package/dist/lib/cjs/ValueProvider.cjs +1 -1
- package/dist/lib/cjs/ValueProvider.d.cts +1 -1
- package/dist/lib/cjs/index.cjs +7 -1
- package/dist/lib/cjs/index.d.cts +2 -0
- package/dist/lib/cjs/obsidian/AttachmentPath.cjs +1 -1
- package/dist/lib/cjs/obsidian/AttachmentPath.d.cts +4 -4
- package/dist/lib/cjs/obsidian/Dataview.cjs +1 -1
- package/dist/lib/cjs/obsidian/Dataview.d.cts +5 -5
- package/dist/lib/cjs/obsidian/FileChange.cjs +1 -1
- package/dist/lib/cjs/obsidian/FileChange.d.cts +2 -2
- package/dist/lib/cjs/obsidian/FileManager.cjs +1 -1
- package/dist/lib/cjs/obsidian/FileManager.d.cts +3 -3
- package/dist/lib/cjs/obsidian/Link.cjs +1 -1
- package/dist/lib/cjs/obsidian/Link.d.cts +4 -4
- package/dist/lib/cjs/obsidian/MetadataCache.cjs +1 -1
- package/dist/lib/cjs/obsidian/MetadataCache.d.cts +3 -3
- package/dist/lib/cjs/obsidian/Modals/Alert.cjs +1 -1
- package/dist/lib/cjs/obsidian/Modals/Alert.d.cts +1 -1
- package/dist/lib/cjs/obsidian/Modals/Confirm.cjs +1 -1
- package/dist/lib/cjs/obsidian/Modals/Confirm.d.cts +1 -1
- package/dist/lib/cjs/obsidian/Modals/ModalBase.cjs +1 -1
- package/dist/lib/cjs/obsidian/Modals/ModalBase.d.cts +1 -1
- package/dist/lib/cjs/obsidian/Modals/Prompt.cjs +1 -1
- package/dist/lib/cjs/obsidian/Modals/Prompt.d.cts +1 -1
- package/dist/lib/cjs/obsidian/Modals/SelectItem.cjs +1 -1
- package/dist/lib/cjs/obsidian/Modals/SelectItem.d.cts +1 -1
- package/dist/lib/cjs/obsidian/Plugin/Plugin.cjs +1 -1
- package/dist/lib/cjs/obsidian/Plugin/Plugin.d.cts +2 -2
- package/dist/lib/cjs/obsidian/Plugin/PluginBase.cjs +50 -6
- package/dist/lib/cjs/obsidian/Plugin/PluginBase.d.cts +28 -4
- package/dist/lib/cjs/obsidian/Plugin/PluginSettingsManagerBase.cjs +18 -8
- package/dist/lib/cjs/obsidian/Plugin/PluginSettingsManagerBase.d.cts +3 -3
- package/dist/lib/cjs/obsidian/Queue.cjs +1 -1
- package/dist/lib/cjs/obsidian/Queue.d.cts +1 -1
- package/dist/lib/cjs/obsidian/Vault.cjs +1 -1
- package/dist/lib/cjs/obsidian/Vault.d.cts +9 -9
- package/dist/lib/cjs/obsidian/VaultEx.cjs +1 -1
- package/dist/lib/cjs/obsidian/VaultEx.d.cts +2 -2
- package/dist/lib/esm/Array.d.mts +7 -0
- package/dist/lib/esm/Array.mjs +24 -0
- package/dist/lib/esm/AsyncEvents.d.mts +139 -0
- package/dist/lib/esm/AsyncEvents.mjs +192 -0
- package/dist/lib/esm/Blob.d.mts +7 -7
- package/dist/lib/esm/Blob.mjs +1 -1
- package/dist/lib/esm/Error.mjs +8 -6
- package/dist/lib/esm/HTMLElement.d.mts +1 -1
- package/dist/lib/esm/HTMLElement.mjs +1 -1
- package/dist/lib/esm/Library.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/CliUtils.d.mts +2 -2
- package/dist/lib/esm/ScriptUtils/CliUtils.mjs +2 -2
- package/dist/lib/esm/ScriptUtils/CodeGenerator.d.mts +1 -1
- package/dist/lib/esm/ScriptUtils/CodeGenerator.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/Fs.d.mts +3 -3
- package/dist/lib/esm/ScriptUtils/Fs.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/JSON.d.mts +3 -3
- package/dist/lib/esm/ScriptUtils/JSON.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/Npm.d.mts +9 -9
- package/dist/lib/esm/ScriptUtils/Npm.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/build.d.mts +5 -5
- package/dist/lib/esm/ScriptUtils/build.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/esbuild/ObsidianPluginBuilder.d.mts +2 -2
- package/dist/lib/esm/ScriptUtils/esbuild/ObsidianPluginBuilder.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/format.d.mts +1 -1
- package/dist/lib/esm/ScriptUtils/format.mjs +1 -1
- package/dist/lib/esm/ScriptUtils/version.d.mts +8 -8
- package/dist/lib/esm/ScriptUtils/version.mjs +1 -1
- package/dist/lib/esm/String.d.mts +1 -1
- package/dist/lib/esm/String.mjs +1 -1
- package/dist/lib/esm/ValueProvider.d.mts +1 -1
- package/dist/lib/esm/ValueProvider.mjs +1 -1
- package/dist/lib/esm/index.d.mts +2 -0
- package/dist/lib/esm/index.mjs +5 -1
- package/dist/lib/esm/obsidian/AttachmentPath.d.mts +4 -4
- package/dist/lib/esm/obsidian/AttachmentPath.mjs +1 -1
- package/dist/lib/esm/obsidian/Dataview.d.mts +5 -5
- package/dist/lib/esm/obsidian/Dataview.mjs +1 -1
- package/dist/lib/esm/obsidian/FileChange.d.mts +2 -2
- package/dist/lib/esm/obsidian/FileChange.mjs +1 -1
- package/dist/lib/esm/obsidian/FileManager.d.mts +3 -3
- package/dist/lib/esm/obsidian/FileManager.mjs +1 -1
- package/dist/lib/esm/obsidian/Link.d.mts +4 -4
- package/dist/lib/esm/obsidian/Link.mjs +1 -1
- package/dist/lib/esm/obsidian/MetadataCache.d.mts +3 -3
- package/dist/lib/esm/obsidian/MetadataCache.mjs +1 -1
- package/dist/lib/esm/obsidian/Modals/Alert.d.mts +1 -1
- package/dist/lib/esm/obsidian/Modals/Alert.mjs +1 -1
- package/dist/lib/esm/obsidian/Modals/Confirm.d.mts +1 -1
- package/dist/lib/esm/obsidian/Modals/Confirm.mjs +1 -1
- package/dist/lib/esm/obsidian/Modals/ModalBase.d.mts +1 -1
- package/dist/lib/esm/obsidian/Modals/ModalBase.mjs +1 -1
- package/dist/lib/esm/obsidian/Modals/Prompt.d.mts +1 -1
- package/dist/lib/esm/obsidian/Modals/Prompt.mjs +1 -1
- package/dist/lib/esm/obsidian/Modals/SelectItem.d.mts +1 -1
- package/dist/lib/esm/obsidian/Modals/SelectItem.mjs +1 -1
- package/dist/lib/esm/obsidian/Plugin/Plugin.d.mts +2 -2
- package/dist/lib/esm/obsidian/Plugin/Plugin.mjs +1 -1
- package/dist/lib/esm/obsidian/Plugin/PluginBase.d.mts +28 -4
- package/dist/lib/esm/obsidian/Plugin/PluginBase.mjs +53 -6
- package/dist/lib/esm/obsidian/Plugin/PluginSettingsManagerBase.d.mts +3 -3
- package/dist/lib/esm/obsidian/Plugin/PluginSettingsManagerBase.mjs +18 -8
- package/dist/lib/esm/obsidian/Queue.d.mts +1 -1
- package/dist/lib/esm/obsidian/Queue.mjs +1 -1
- package/dist/lib/esm/obsidian/Vault.d.mts +9 -9
- package/dist/lib/esm/obsidian/Vault.mjs +1 -1
- package/dist/lib/esm/obsidian/VaultEx.d.mts +2 -2
- package/dist/lib/esm/obsidian/VaultEx.mjs +1 -1
- package/package.json +1 -2
@@ -66,4 +66,4 @@ async function format(rewrite = true) {
|
|
66
66
|
0 && (module.exports = {
|
67
67
|
format
|
68
68
|
});
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
69
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL1NjcmlwdFV0aWxzL2Zvcm1hdC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsidmFyIF9faW1wb3J0X21ldGFfdXJsID0gZ2xvYmFsVGhpc1snaW1wb3J0Lm1ldGEudXJsJ10gPz8gKCgpPT57aWYodHlwZW9mIF9fZmlsZW5hbWU9PT1cInN0cmluZ1wiKXtjb25zdCBsb2NhbFJlcXVpcmU9cmVxdWlyZTtjb25zdCB1cmw9bG9jYWxSZXF1aXJlKFwibm9kZTp1cmxcIik7cmV0dXJuIHVybC5wYXRoVG9GaWxlVVJMKF9fZmlsZW5hbWUpLmhyZWZ9aWYodHlwZW9mIHdpbmRvdyE9PVwidW5kZWZpbmVkXCIpe3JldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZn1yZXR1cm5cIlwifSkoKTtcbi8qKiBAcGFja2FnZURvY3VtZW50YXRpb24gZm9ybWF0XG4gKiBGb3JtYXQgdGhlIHNvdXJjZSBjb2RlLlxuICovXG5cbmltcG9ydCB7XG4gIGdldERpcm5hbWUsXG4gIGpvaW5cbn0gZnJvbSAnLi4vUGF0aC50cyc7XG5pbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnLi9Ob2RlTW9kdWxlcy50cyc7XG5pbXBvcnQgeyBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIH0gZnJvbSAnLi9PYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgZ2V0Um9vdERpcixcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi9Sb290LnRzJztcblxuLyoqXG4gKiBGb3JtYXQgdGhlIHNvdXJjZSBjb2RlLlxuICpcbiAqIEBwYXJhbSByZXdyaXRlIC0gV2hldGhlciB0byByZXdyaXRlIHRoZSBzb3VyY2UgY29kZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc291cmNlIGNvZGUgaGFzIGJlZW4gZm9ybWF0dGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZm9ybWF0KHJld3JpdGUgPSB0cnVlKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHJvb3REaXIgPSBnZXRSb290RGlyKCk7XG4gIGlmICghcm9vdERpcikge1xuICAgIHRocm93IG5ldyBFcnJvcignUm9vdCBkaXJlY3Rvcnkgbm90IGZvdW5kJyk7XG4gIH1cbiAgbGV0IGRwcmludEpzb25QYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EcHJpbnRKc29uKTtcbiAgaWYgKCFleGlzdHNTeW5jKGRwcmludEpzb25QYXRoKSkge1xuICAgIGNvbnN0IHBhY2thZ2VEaXIgPSBnZXRSb290RGlyKGdldERpcm5hbWUoaW1wb3J0Lm1ldGEudXJsKSk7XG4gICAgaWYgKCFwYWNrYWdlRGlyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIHBhY2thZ2UgZGlyZWN0b3J5LicpO1xuICAgIH1cbiAgICBkcHJpbnRKc29uUGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKGpvaW4oT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0LCBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRwcmludEpzb24pLCBwYWNrYWdlRGlyKTtcbiAgfVxuXG4gIGlmICghZXhpc3RzU3luYyhkcHJpbnRKc29uUGF0aCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2RwcmludC5qc29uIG5vdCBmb3VuZCcpO1xuICB9XG5cbiAgY29uc3QgY29tbWFuZCA9IHJld3JpdGUgPyAnZm10JyA6ICdjaGVjayc7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25weCcsICdkcHJpbnQnLCBjb21tYW5kLCAnLS1jb25maWcnLCBkcHJpbnRKc29uUGF0aCwgJyoqLyonXSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUtBLGtCQUdPO0FBQ1AseUJBQTJCO0FBQzNCLHVDQUEwQztBQUMxQyxrQkFJTztBQWZQLElBQUksb0JBQW9CLFdBQVcsaUJBQWlCLE1BQU0sTUFBSTtBQUFDLE1BQUcsT0FBTyxlQUFhLFVBQVM7QUFBQyxVQUFNLGVBQWE7QUFBUSxVQUFNLE1BQUksYUFBYSxVQUFVO0FBQUUsV0FBTyxJQUFJLGNBQWMsVUFBVSxFQUFFO0FBQUEsRUFBSTtBQUFDLE1BQUcsT0FBTyxXQUFTLGFBQVk7QUFBQyxXQUFPLE9BQU8sU0FBUztBQUFBLEVBQUk7QUFBQyxTQUFNO0FBQUUsR0FBRztBQXVCL1EsZUFBc0IsT0FBTyxVQUFVLE1BQXFCO0FBQzFELFFBQU0sY0FBVSx3QkFBVztBQUMzQixNQUFJLENBQUMsU0FBUztBQUNaLFVBQU0sSUFBSSxNQUFNLDBCQUEwQjtBQUFBLEVBQzVDO0FBQ0EsTUFBSSxxQkFBaUIscUNBQXdCLDJEQUEwQixVQUFVO0FBQ2pGLE1BQUksS0FBQywrQkFBVyxjQUFjLEdBQUc7QUFDL0IsVUFBTSxpQkFBYSw0QkFBVyx3QkFBVyxpQkFBZSxDQUFDO0FBQ3pELFFBQUksQ0FBQyxZQUFZO0FBQ2YsWUFBTSxJQUFJLE1BQU0sbUNBQW1DO0FBQUEsSUFDckQ7QUFDQSx5QkFBaUIseUNBQXdCLGtCQUFLLDJEQUEwQixNQUFNLDJEQUEwQixVQUFVLEdBQUcsVUFBVTtBQUFBLEVBQ2pJO0FBRUEsTUFBSSxLQUFDLCtCQUFXLGNBQWMsR0FBRztBQUMvQixVQUFNLElBQUksTUFBTSx1QkFBdUI7QUFBQSxFQUN6QztBQUVBLFFBQU0sVUFBVSxVQUFVLFFBQVE7QUFDbEMsWUFBTSwwQkFBYSxDQUFDLE9BQU8sVUFBVSxTQUFTLFlBQVksZ0JBQWdCLE1BQU0sQ0FBQztBQUNuRjsiLAogICJuYW1lcyI6IFtdCn0K
|
@@ -5,6 +5,6 @@
|
|
5
5
|
* Format the source code.
|
6
6
|
*
|
7
7
|
* @param rewrite - Whether to rewrite the source code.
|
8
|
-
* @returns A
|
8
|
+
* @returns A {@link Promise} that resolves when the source code has been formatted.
|
9
9
|
*/
|
10
10
|
export declare function format(rewrite?: boolean): Promise<void>;
|
@@ -382,4 +382,4 @@ async function updateVersionInFilesForPlugin(newVersion) {
|
|
382
382
|
updateVersionInFiles,
|
383
383
|
validate
|
384
384
|
});
|
385
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL1NjcmlwdFV0aWxzL3ZlcnNpb24udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIHZlcnNpb25cbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGZ1bmN0aW9ucyBmb3IgbWFuYWdpbmcgdmVyc2lvbiB1cGRhdGVzIGluIGEgcHJvamVjdC5cbiAqIEl0IGluY2x1ZGVzIHRhc2tzIHN1Y2ggYXMgdmFsaWRhdGluZyB2ZXJzaW9uIHVwZGF0ZSB0eXBlcywgY2hlY2tpbmcgdGhlIHN0YXRlXG4gKiBvZiBHaXQgYW5kIEdpdEh1YiBDTEksIHVwZGF0aW5nIHZlcnNpb24gbnVtYmVycyBpbiBmaWxlcywgYW5kIHBlcmZvcm1pbmdcbiAqIEdpdCBvcGVyYXRpb25zIHN1Y2ggYXMgdGFnZ2luZyBhbmQgcHVzaGluZy5cbiAqXG4gKiBUaGUgbWFpbiBmdW5jdGlvbiwgYHVwZGF0ZVZlcnNpb25gLCBjb29yZGluYXRlcyB0aGVzZSB0YXNrcyB0byBlbnN1cmUgdGhhdFxuICogdmVyc2lvbiB1cGRhdGVzIGFyZSBoYW5kbGVkIGNvbnNpc3RlbnRseSBhbmQgY29ycmVjdGx5LiBJdCBhbHNvIGludGVncmF0ZXNcbiAqIHdpdGggT2JzaWRpYW4gcGx1Z2lucywgaWYgYXBwbGljYWJsZSwgYnkgdXBkYXRpbmcgcmVsZXZhbnQgZmlsZXMgYW5kIHJlbGVhc2luZ1xuICogbmV3IHZlcnNpb25zIG9uIEdpdEh1Yi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBhY2thZ2VMb2NrSnNvbiB9IGZyb20gJy4vTnBtLnRzJztcblxuaW1wb3J0IHsgZ2V0TGliRGVidWdnZXIgfSBmcm9tICcuLi9EZWJ1Zy50cyc7XG5pbXBvcnQgeyB0aHJvd0V4cHJlc3Npb24gfSBmcm9tICcuLi9FcnJvci50cyc7XG5pbXBvcnQgeyBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB9IGZyb20gJy4uL29ic2lkaWFuL1BsdWdpbi9PYnNpZGlhblBsdWdpblJlcG9QYXRocy50cyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnLi4vUGF0aC50cyc7XG5pbXBvcnQgeyByZXBsYWNlQWxsIH0gZnJvbSAnLi4vU3RyaW5nLnRzJztcbmltcG9ydCB7IHJlYWRkaXJQb3NpeCB9IGZyb20gJy4vRnMudHMnO1xuaW1wb3J0IHsgZWRpdEpzb24gfSBmcm9tICcuL0pTT04udHMnO1xuaW1wb3J0IHtcbiAgY3AsXG4gIGNyZWF0ZUludGVyZmFjZSxcbiAgZXhpc3RzU3luYyxcbiAgcmVhZEZpbGUsXG4gIHJtLFxuICB3cml0ZUZpbGVcbn0gZnJvbSAnLi9Ob2RlTW9kdWxlcy50cyc7XG5pbXBvcnQge1xuICBlZGl0TnBtU2hyaW5rV3JhcEpzb24sXG4gIGVkaXRQYWNrYWdlSnNvbixcbiAgZWRpdFBhY2thZ2VMb2NrSnNvbixcbiAgcmVhZFBhY2thZ2VKc29uXG59IGZyb20gJy4vTnBtLnRzJztcbmltcG9ydCB7IG5wbVJ1biB9IGZyb20gJy4vTnBtUnVuLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuL09ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMudHMnO1xuaW1wb3J0IHtcbiAgZXhlY0Zyb21Sb290LFxuICByZXNvbHZlUGF0aEZyb21Sb290U2FmZVxufSBmcm9tICcuL1Jvb3QudHMnO1xuXG4vKipcbiAqIEVudW0gcmVwcmVzZW50aW5nIGRpZmZlcmVudCB0eXBlcyBvZiB2ZXJzaW9uIHVwZGF0ZXMuXG4gKi9cbmV4cG9ydCBlbnVtIFZlcnNpb25VcGRhdGVUeXBlIHtcbiAgQmV0YSA9ICdiZXRhJyxcbiAgSW52YWxpZCA9ICdpbnZhbGlkJyxcbiAgTWFqb3IgPSAnbWFqb3InLFxuICBNYW51YWwgPSAnbWFudWFsJyxcbiAgTWlub3IgPSAnbWlub3InLFxuICBQYXRjaCA9ICdwYXRjaCdcbn1cblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgbWFuaWZlc3QgZmlsZSBmb3JtYXQgZm9yIE9ic2lkaWFuIHBsdWdpbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuaWZlc3Qge1xuICAvKipcbiAgICogVGhlIG1pbmltdW0gT2JzaWRpYW4gdmVyc2lvbiByZXF1aXJlZCBmb3IgdGhlIHBsdWdpbi5cbiAgICovXG4gIG1pbkFwcFZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIHBsdWdpbi5cbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgc3RydWN0dXJlIG9mIE9ic2lkaWFuIHJlbGVhc2VzIEpTT04uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzaWRpYW5SZWxlYXNlc0pzb24ge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIE9ic2lkaWFuIHJlbGVhc2UuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIEdpdCB0YWcgZm9yIHRoZSBuZXcgdmVyc2lvbi5cbiAqXG4gKiBAcGFyYW0gbmV3VmVyc2lvbiAtIFRoZSBuZXcgdmVyc2lvbiBudW1iZXIgdG8gdXNlIGZvciB0aGUgdGFnLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdGFnIGhhcyBiZWVuIGNyZWF0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhZGRHaXRUYWcobmV3VmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChgZ2l0IHRhZyAtYSAke25ld1ZlcnNpb259IC1tICR7bmV3VmVyc2lvbn0gLS1mb3JjZWAsIHsgaXNRdWlldDogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBBZGRzIHVwZGF0ZWQgZmlsZXMgdG8gdGhlIEdpdCBzdGFnaW5nIGFyZWEgYW5kIGNvbW1pdHMgdGhlbSB3aXRoIHRoZSBuZXcgdmVyc2lvbiBtZXNzYWdlLlxuICpcbiAqIEBwYXJhbSBuZXdWZXJzaW9uIC0gVGhlIG5ldyB2ZXJzaW9uIG51bWJlciB1c2VkIGFzIHRoZSBjb21taXQgbWVzc2FnZS5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZpbGVzIGhhdmUgYmVlbiBhZGRlZCBhbmQgY29tbWl0dGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkVXBkYXRlZEZpbGVzVG9HaXQobmV3VmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ2dpdCcsICdhZGQnLCAnLS1hbGwnXSwgeyBpc1F1aWV0OiB0cnVlIH0pO1xuICBhd2FpdCBleGVjRnJvbVJvb3QoYGdpdCBjb21taXQgLW0gJHtuZXdWZXJzaW9ufSAtLWFsbG93LWVtcHR5YCwgeyBpc1F1aWV0OiB0cnVlIH0pO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgR2l0SHViIENMSSBpcyBpbnN0YWxsZWQgb24gdGhlIHN5c3RlbS5cbiAqXG4gKiBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlIEdpdEh1YiBDTEkgaXMgbm90IGluc3RhbGxlZC5cbiAqXG4gKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBHaXRIdWIgQ0xJIGlzIG5vdCBpbnN0YWxsZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjaGVja0dpdEh1YkNsaUluc3RhbGxlZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBleGVjRnJvbVJvb3QoJ2doIC0tdmVyc2lvbicsIHsgaXNRdWlldDogdHJ1ZSB9KTtcbiAgfSBjYXRjaCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdHaXRIdWIgQ0xJIGlzIG5vdCBpbnN0YWxsZWQuIFBsZWFzZSBpbnN0YWxsIGl0IGZyb20gaHR0cHM6Ly9jbGkuZ2l0aHViLmNvbS8nKTtcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrcyBpZiBHaXQgaXMgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0uXG4gKlxuICogVGhyb3dzIGFuIGVycm9yIGlmIEdpdCBpcyBub3QgaW5zdGFsbGVkLlxuICpcbiAqIEB0aHJvd3MgRXJyb3IgaWYgR2l0IGlzIG5vdCBpbnN0YWxsZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjaGVja0dpdEluc3RhbGxlZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgdHJ5IHtcbiAgICBhd2FpdCBleGVjRnJvbVJvb3QoJ2dpdCAtLXZlcnNpb24nLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gIH0gY2F0Y2gge1xuICAgIHRocm93IG5ldyBFcnJvcignR2l0IGlzIG5vdCBpbnN0YWxsZWQuIFBsZWFzZSBpbnN0YWxsIGl0IGZyb20gaHR0cHM6Ly9naXQtc2NtLmNvbS8nKTtcbiAgfVxufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgR2l0IHJlcG9zaXRvcnkgaXMgY2xlYW4sIG1lYW5pbmcgdGhlcmUgYXJlIG5vIHVuY29tbWl0dGVkIGNoYW5nZXMuXG4gKlxuICogVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBHaXQgcmVwb3NpdG9yeSBpcyBub3QgY2xlYW4uXG4gKlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgR2l0IHJlcG9zaXRvcnkgaXMgbm90IGNsZWFuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tHaXRSZXBvQ2xlYW4oKTogUHJvbWlzZTx2b2lkPiB7XG4gIHRyeSB7XG4gICAgY29uc3Qgc3Rkb3V0ID0gYXdhaXQgZXhlY0Zyb21Sb290KCdnaXQgc3RhdHVzIC0tcG9yY2VsYWluIC0tdW50cmFja2VkLWZpbGVzPWFsbCcsIHsgaXNRdWlldDogdHJ1ZSB9KTtcbiAgICBpZiAoc3Rkb3V0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICB9XG4gIH0gY2F0Y2gge1xuICAgIHRocm93IG5ldyBFcnJvcignR2l0IHJlcG9zaXRvcnkgaXMgbm90IGNsZWFuLiBQbGVhc2UgY29tbWl0IG9yIHN0YXNoIHlvdXIgY2hhbmdlcyBiZWZvcmUgcmVsZWFzaW5nIGEgbmV3IHZlcnNpb24uJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb3BpZXMgdGhlIHVwZGF0ZWQgbWFuaWZlc3QgZmlsZSB0byB0aGUgZGlzdHJpYnV0aW9uIGJ1aWxkIGRpcmVjdG9yeS5cbiAqXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb3B5IG9wZXJhdGlvbiBpcyBjb21wbGV0ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvcHlVcGRhdGVkTWFuaWZlc3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGNwKFxuICAgIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbiksXG4gICAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5EaXN0QnVpbGQsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbikpLFxuICAgIHsgZm9yY2U6IHRydWUgfVxuICApO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhIG5ldyB2ZXJzaW9uIHN0cmluZyBiYXNlZCBvbiB0aGUgY3VycmVudCB2ZXJzaW9uIGFuZCB0aGUgc3BlY2lmaWVkIHVwZGF0ZSB0eXBlLlxuICpcbiAqIEBwYXJhbSB2ZXJzaW9uVXBkYXRlVHlwZSAtIFRoZSB0eXBlIG9mIHZlcnNpb24gdXBkYXRlIChtYWpvciwgbWlub3IsIHBhdGNoLCBiZXRhLCBvciBtYW51YWwpLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgbmV3IHZlcnNpb24gc3RyaW5nLlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgY3VycmVudCB2ZXJzaW9uIGZvcm1hdCBpcyBpbnZhbGlkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TmV3VmVyc2lvbih2ZXJzaW9uVXBkYXRlVHlwZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgdmVyc2lvblR5cGUgPSBnZXRWZXJzaW9uVXBkYXRlVHlwZSh2ZXJzaW9uVXBkYXRlVHlwZSk7XG4gIGlmICh2ZXJzaW9uVHlwZSA9PT0gVmVyc2lvblVwZGF0ZVR5cGUuTWFudWFsKSB7XG4gICAgcmV0dXJuIHZlcnNpb25VcGRhdGVUeXBlO1xuICB9XG5cbiAgY29uc3QgcGFja2FnZUpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24oKTtcbiAgY29uc3QgY3VycmVudFZlcnNpb24gPSBwYWNrYWdlSnNvbi52ZXJzaW9uID8/ICcnO1xuXG4gIGNvbnN0IG1hdGNoID0gL14oPzxNYWpvcj5cXGQrKVxcLig/PE1pbm9yPlxcZCspXFwuKD88UGF0Y2g+XFxkKykoPzotYmV0YVxcLig/PEJldGE+XFxkKykpPyQvLmV4ZWMoY3VycmVudFZlcnNpb24pO1xuICBpZiAoIW1hdGNoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGN1cnJlbnQgdmVyc2lvbiBmb3JtYXQ6ICR7Y3VycmVudFZlcnNpb259YCk7XG4gIH1cblxuICBsZXQgbWFqb3IgPSBOdW1iZXIobWF0Y2guZ3JvdXBzPy5bJ01ham9yJ10gPz8gJycpO1xuICBsZXQgbWlub3IgPSBOdW1iZXIobWF0Y2guZ3JvdXBzPy5bJ01pbm9yJ10gPz8gJycpO1xuICBsZXQgcGF0Y2ggPSBOdW1iZXIobWF0Y2guZ3JvdXBzPy5bJ1BhdGNoJ10gPz8gJycpO1xuICBsZXQgYmV0YSA9IE51bWJlcihtYXRjaC5ncm91cHM/LlsnQmV0YSddID8/ICcnKTtcblxuICBzd2l0Y2ggKHZlcnNpb25UeXBlKSB7XG4gICAgY2FzZSBWZXJzaW9uVXBkYXRlVHlwZS5CZXRhOlxuICAgICAgaWYgKGJldGEgPT09IDApIHtcbiAgICAgICAgcGF0Y2grKztcbiAgICAgIH1cbiAgICAgIGJldGErKztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgVmVyc2lvblVwZGF0ZVR5cGUuTWFqb3I6XG4gICAgICBtYWpvcisrO1xuICAgICAgbWlub3IgPSAwO1xuICAgICAgcGF0Y2ggPSAwO1xuICAgICAgYmV0YSA9IDA7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFZlcnNpb25VcGRhdGVUeXBlLk1pbm9yOlxuICAgICAgbWlub3IrKztcbiAgICAgIHBhdGNoID0gMDtcbiAgICAgIGJldGEgPSAwO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBWZXJzaW9uVXBkYXRlVHlwZS5QYXRjaDpcbiAgICAgIGlmIChiZXRhID09PSAwKSB7XG4gICAgICAgIHBhdGNoKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBiZXRhID0gMDtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdmVyc2lvbiB1cGRhdGUgdHlwZTogJHt2ZXJzaW9uVHlwZX1gKTtcbiAgfVxuXG4gIHJldHVybiBgJHttYWpvci50b1N0cmluZygpfS4ke21pbm9yLnRvU3RyaW5nKCl9LiR7cGF0Y2gudG9TdHJpbmcoKX0ke2JldGEgPiAwID8gYC1iZXRhLiR7YmV0YS50b1N0cmluZygpfWAgOiAnJ31gO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgcmVsZWFzZSBub3RlcyBmb3IgYSBzcGVjaWZpYyB2ZXJzaW9uIGZyb20gdGhlIGNoYW5nZWxvZy5cbiAqXG4gKiBAcGFyYW0gbmV3VmVyc2lvbiAtIFRoZSBuZXcgdmVyc2lvbiBudW1iZXIgZm9yIHdoaWNoIHRvIGdldCB0aGUgcmVsZWFzZSBub3Rlcy5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSByZWxlYXNlIG5vdGVzIGZvciB0aGUgc3BlY2lmaWVkIHZlcnNpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRSZWxlYXNlTm90ZXMobmV3VmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgY2hhbmdlbG9nUGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkNoYW5nZWxvZ01kKTtcbiAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGNoYW5nZWxvZ1BhdGgsICd1dGYtOCcpO1xuICBjb25zdCBuZXdWZXJzaW9uRXNjYXBlZCA9IHJlcGxhY2VBbGwobmV3VmVyc2lvbiwgJy4nLCAnXFxcXC4nKTtcbiAgY29uc3QgbWF0Y2ggPSBuZXcgUmVnRXhwKGBcXG4jIyAke25ld1ZlcnNpb25Fc2NhcGVkfVxcblxcbigoLnxcXG4pKz8pXFxuXFxuIyNgKS5leGVjKGNvbnRlbnQpO1xuICBsZXQgcmVsZWFzZU5vdGVzID0gbWF0Y2g/LlsxXSA/IGAke21hdGNoWzFdfVxcblxcbmAgOiAnJztcblxuICBjb25zdCB0YWdzID0gKGF3YWl0IGV4ZWNGcm9tUm9vdCgnZ2l0IHRhZyAtLXNvcnQ9LWNyZWF0b3JkYXRlJywgeyBpc1F1aWV0OiB0cnVlIH0pKS5zcGxpdCgvXFxyP1xcbi8pO1xuICBjb25zdCBwcmV2aW91c1ZlcnNpb24gPSB0YWdzWzFdO1xuICBsZXQgY2hhbmdlc1VybDogc3RyaW5nO1xuXG4gIGNvbnN0IHJlcG9VcmwgPSBhd2FpdCBleGVjRnJvbVJvb3QoJ2doIHJlcG8gdmlldyAtLWpzb24gdXJsIC1xIC51cmwnLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG5cbiAgaWYgKHByZXZpb3VzVmVyc2lvbikge1xuICAgIGNoYW5nZXNVcmwgPSBgJHtyZXBvVXJsfS9jb21wYXJlLyR7cHJldmlvdXNWZXJzaW9ufS4uLiR7bmV3VmVyc2lvbn1gO1xuICB9IGVsc2Uge1xuICAgIGNoYW5nZXNVcmwgPSBgJHtyZXBvVXJsfS9jb21taXRzLyR7bmV3VmVyc2lvbn1gO1xuICB9XG5cbiAgcmVsZWFzZU5vdGVzICs9IGAqKkZ1bGwgQ2hhbmdlbG9nKio6ICR7Y2hhbmdlc1VybH1gO1xuICByZXR1cm4gcmVsZWFzZU5vdGVzO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgdGhlIHR5cGUgb2YgdmVyc2lvbiB1cGRhdGUgYmFzZWQgb24gdGhlIGlucHV0IHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gdmVyc2lvblVwZGF0ZVR5cGUgLSBUaGUgaW5wdXQgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgdmVyc2lvbiB1cGRhdGUgdHlwZS5cbiAqIEByZXR1cm5zIFRoZSBjb3JyZXNwb25kaW5nIGBWZXJzaW9uVXBkYXRlVHlwZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJzaW9uVXBkYXRlVHlwZSh2ZXJzaW9uVXBkYXRlVHlwZTogc3RyaW5nKTogVmVyc2lvblVwZGF0ZVR5cGUge1xuICBjb25zdCB2ZXJzaW9uVXBkYXRlVHlwZUVudW0gPSB2ZXJzaW9uVXBkYXRlVHlwZSBhcyBWZXJzaW9uVXBkYXRlVHlwZTtcbiAgc3dpdGNoICh2ZXJzaW9uVXBkYXRlVHlwZUVudW0pIHtcbiAgICBjYXNlIFZlcnNpb25VcGRhdGVUeXBlLkJldGE6XG4gICAgY2FzZSBWZXJzaW9uVXBkYXRlVHlwZS5NYWpvcjpcbiAgICBjYXNlIFZlcnNpb25VcGRhdGVUeXBlLk1pbm9yOlxuICAgIGNhc2UgVmVyc2lvblVwZGF0ZVR5cGUuUGF0Y2g6XG4gICAgICByZXR1cm4gdmVyc2lvblVwZGF0ZVR5cGVFbnVtO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIGlmICgvXlxcZCtcXC5cXGQrXFwuXFxkKyg/Oi1bXFx3XFxkLi1dKyk/JC8udGVzdCh2ZXJzaW9uVXBkYXRlVHlwZSkpIHtcbiAgICAgICAgcmV0dXJuIFZlcnNpb25VcGRhdGVUeXBlLk1hbnVhbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFZlcnNpb25VcGRhdGVUeXBlLkludmFsaWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBQdXNoZXMgY29tbWl0cyBhbmQgdGFncyB0byB0aGUgcmVtb3RlIEdpdCByZXBvc2l0b3J5LlxuICpcbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHB1c2ggb3BlcmF0aW9uIGlzIGNvbXBsZXRlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2l0UHVzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KCdnaXQgcHVzaCAtLWZvbGxvdy10YWdzIC0tZm9yY2UnLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG59XG5cbi8qKlxuICogUHVibGlzaGVzIGEgR2l0SHViIHJlbGVhc2UgZm9yIHRoZSBuZXcgdmVyc2lvbi5cbiAqXG4gKiBIYW5kbGVzIHRoZSBjcmVhdGlvbiBvZiBhIHJlbGVhc2UgYW5kIHVwbG9hZGluZyBmaWxlcyBmb3IgZWl0aGVyIGFuIE9ic2lkaWFuIHBsdWdpbiBvciBhbm90aGVyIHByb2plY3QuXG4gKlxuICogQHBhcmFtIG5ld1ZlcnNpb24gLSBUaGUgbmV3IHZlcnNpb24gbnVtYmVyIGZvciB0aGUgcmVsZWFzZS5cbiAqIEBwYXJhbSBpc09ic2lkaWFuUGx1Z2luIC0gQSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIHByb2plY3QgaXMgYW4gT2JzaWRpYW4gcGx1Z2luLlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcmVsZWFzZSBoYXMgYmVlbiBwdWJsaXNoZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwdWJsaXNoR2l0SHViUmVsZWFzZShuZXdWZXJzaW9uOiBzdHJpbmcsIGlzT2JzaWRpYW5QbHVnaW46IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgbGV0IGZpbGVQYXRoczogc3RyaW5nW107XG5cbiAgaWYgKGlzT2JzaWRpYW5QbHVnaW4pIHtcbiAgICBjb25zdCBidWlsZERpciA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRpc3RCdWlsZCk7XG4gICAgY29uc3QgZmlsZU5hbWVzID0gYXdhaXQgcmVhZGRpclBvc2l4KGJ1aWxkRGlyKTtcbiAgICBmaWxlUGF0aHMgPSBmaWxlTmFtZXMubWFwKChmaWxlTmFtZSkgPT4gam9pbihidWlsZERpciwgZmlsZU5hbWUpKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCByZXN1bHRKc29uID0gYXdhaXQgZXhlY0Zyb21Sb290KFsnbnBtJywgJ3BhY2snLCAnLS1wYWNrLWRlc3RpbmF0aW9uJywgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0LCAnLS1qc29uJ10sIHsgaXNRdWlldDogdHJ1ZSB9KTtcbiAgICBjb25zdCByZXN1bHQgPSBKU09OLnBhcnNlKHJlc3VsdEpzb24pIGFzIFt7IGZpbGVuYW1lOiBzdHJpbmcgfV07XG4gICAgZmlsZVBhdGhzID0gW1xuICAgICAgam9pbihPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRpc3QsIHJlc3VsdFswXS5maWxlbmFtZSksXG4gICAgICBqb2luKE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuRGlzdCwgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5TdHlsZXNDc3MpXG4gICAgXTtcbiAgfVxuXG4gIGZpbGVQYXRocyA9IGZpbGVQYXRocy5maWx0ZXIoKGZpbGVQYXRoKSA9PiBleGlzdHNTeW5jKHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKGZpbGVQYXRoKSkpO1xuXG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbXG4gICAgJ2doJyxcbiAgICAncmVsZWFzZScsXG4gICAgJ2NyZWF0ZScsXG4gICAgbmV3VmVyc2lvbixcbiAgICAuLi5maWxlUGF0aHMsXG4gICAgJy0tdGl0bGUnLFxuICAgIGB2JHtuZXdWZXJzaW9ufWAsXG4gICAgLi4uKGlzQmV0YShuZXdWZXJzaW9uKSA/IFsnLS1wcmVyZWxlYXNlJ10gOiBbXSksXG4gICAgJy0tbm90ZXMtZmlsZScsXG4gICAgJy0nXG4gIF0sIHtcbiAgICBpc1F1aWV0OiB0cnVlLFxuICAgIHN0ZGluOiBhd2FpdCBnZXRSZWxlYXNlTm90ZXMobmV3VmVyc2lvbilcbiAgfSk7XG59XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgY2hhbmdlbG9nIGZpbGUgd2l0aCBuZXcgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgY29tbWl0IG1lc3NhZ2VzLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gcmVhZHMgdGhlIGN1cnJlbnQgY2hhbmdlbG9nLCBhcHBlbmRzIG5ldyBlbnRyaWVzIGZvciB0aGUgbGF0ZXN0IHZlcnNpb24sXG4gKiBhbmQgcHJvbXB0cyB0aGUgdXNlciB0byByZXZpZXcgdGhlIGNoYW5nZXMuXG4gKlxuICogQHBhcmFtIG5ld1ZlcnNpb24gLSBUaGUgbmV3IHZlcnNpb24gbnVtYmVyIHRvIGJlIGFkZGVkIHRvIHRoZSBjaGFuZ2Vsb2cuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjaGFuZ2Vsb2cgdXBkYXRlIGlzIGNvbXBsZXRlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ2hhbmdlbG9nKG5ld1ZlcnNpb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBIRUFERVJfTElORVNfQ09VTlQgPSAyO1xuICBjb25zdCBjaGFuZ2Vsb2dQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQ2hhbmdlbG9nTWQpO1xuICBsZXQgcHJldmlvdXNDaGFuZ2Vsb2dMaW5lczogc3RyaW5nW107XG4gIGlmIChleGlzdHNTeW5jKGNoYW5nZWxvZ1BhdGgpKSB7XG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGNoYW5nZWxvZ1BhdGgsICd1dGYtOCcpO1xuICAgIHByZXZpb3VzQ2hhbmdlbG9nTGluZXMgPSBjb250ZW50LnNwbGl0KCdcXG4nKS5zbGljZShIRUFERVJfTElORVNfQ09VTlQpO1xuICAgIGlmIChwcmV2aW91c0NoYW5nZWxvZ0xpbmVzLmF0KC0xKSA9PT0gJycpIHtcbiAgICAgIHByZXZpb3VzQ2hhbmdlbG9nTGluZXMucG9wKCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHByZXZpb3VzQ2hhbmdlbG9nTGluZXMgPSBbXTtcbiAgfVxuXG4gIGNvbnN0IGxhc3RUYWcgPSByZXBsYWNlQWxsKHByZXZpb3VzQ2hhbmdlbG9nTGluZXNbMF0gPz8gJycsICcjIyAnLCAnJyk7XG4gIGNvbnN0IGNvbW1pdFJhbmdlID0gbGFzdFRhZyA/IGAke2xhc3RUYWd9Li5IRUFEYCA6ICdIRUFEJztcbiAgY29uc3QgY29tbWl0TWVzc2FnZXNTdHIgPSBhd2FpdCBleGVjRnJvbVJvb3QoYGdpdCBsb2cgJHtjb21taXRSYW5nZX0gLS1mb3JtYXQ9JUIgLS1maXJzdC1wYXJlbnQgLXpgLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gIGNvbnN0IGNvbW1pdE1lc3NhZ2VzID0gY29tbWl0TWVzc2FnZXNTdHIuc3BsaXQoJ1xcMCcpLmZpbHRlcihCb29sZWFuKS5tYXAodG9TaW5nbGVMaW5lKTtcblxuICBsZXQgbmV3Q2hhbmdlTG9nID0gYCMgQ0hBTkdFTE9HXFxuXFxuIyMgJHtuZXdWZXJzaW9ufVxcblxcbmA7XG5cbiAgZm9yIChjb25zdCBtZXNzYWdlIG9mIGNvbW1pdE1lc3NhZ2VzKSB7XG4gICAgbmV3Q2hhbmdlTG9nICs9IGAtICR7bWVzc2FnZX1cXG5gO1xuICB9XG5cbiAgaWYgKHByZXZpb3VzQ2hhbmdlbG9nTGluZXMubGVuZ3RoID4gMCkge1xuICAgIG5ld0NoYW5nZUxvZyArPSAnXFxuJztcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgcHJldmlvdXNDaGFuZ2Vsb2dMaW5lcykge1xuICAgICAgbmV3Q2hhbmdlTG9nICs9IGAke2xpbmV9XFxuYDtcbiAgICB9XG4gIH1cblxuICBhd2FpdCB3cml0ZUZpbGUoY2hhbmdlbG9nUGF0aCwgbmV3Q2hhbmdlTG9nLCAndXRmLTgnKTtcblxuICBjb25zdCBjb2RlVmVyc2lvbiA9IGF3YWl0IGV4ZWNGcm9tUm9vdCgnY29kZSAtLXZlcnNpb24nLCB7XG4gICAgaXNRdWlldDogdHJ1ZSxcbiAgICBzaG91bGRJZ25vcmVFeGl0Q29kZTogdHJ1ZVxuICB9KTtcbiAgY29uc3QgX2RlYnVnZ2VyID0gZ2V0TGliRGVidWdnZXIoJ1ZlcnNpb24nKTtcbiAgaWYgKGNvZGVWZXJzaW9uKSB7XG4gICAgX2RlYnVnZ2VyKGBQbGVhc2UgdXBkYXRlIHRoZSAke09ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkNoYW5nZWxvZ01kfSBmaWxlLiBDbG9zZSBWaXN1YWwgU3R1ZGlvIENvZGUgd2hlbiB5b3UgYXJlIGRvbmUuLi5gKTtcbiAgICBhd2FpdCBleGVjRnJvbVJvb3QoWydjb2RlJywgJy13JywgY2hhbmdlbG9nUGF0aF0sIHtcbiAgICAgIGlzUXVpZXQ6IHRydWUsXG4gICAgICBzaG91bGRJZ25vcmVFeGl0Q29kZTogdHJ1ZVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIF9kZWJ1Z2dlcignQ291bGQgbm90IGZpbmQgVmlzdWFsIFN0dWRpbyBDb2RlIGluIHlvdXIgUEFUSC4gVXNpbmcgY29uc29sZSBtb2RlIGluc3RlYWQuJyk7XG4gICAgYXdhaXQgY3JlYXRlSW50ZXJmYWNlKHByb2Nlc3Muc3RkaW4sIHByb2Nlc3Muc3Rkb3V0KS5xdWVzdGlvbihcbiAgICAgIGBQbGVhc2UgdXBkYXRlIHRoZSAke09ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkNoYW5nZWxvZ01kfSBmaWxlLiBQcmVzcyBFbnRlciB3aGVuIHlvdSBhcmUgZG9uZS4uLmBcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgdmVyc2lvbiBvZiB0aGUgcHJvamVjdCBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIHVwZGF0ZSB0eXBlLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBzZXJpZXMgb2YgdGFza3MgdG8gaGFuZGxlIHZlcnNpb24gdXBkYXRlczpcbiAqIDEuIFZhbGlkYXRlcyB0aGUgdmVyc2lvbiB1cGRhdGUgdHlwZS5cbiAqIDIuIENoZWNrcyBpZiBHaXQgYW5kIEdpdEh1YiBDTEkgYXJlIGluc3RhbGxlZC5cbiAqIDMuIFZlcmlmaWVzIHRoYXQgdGhlIEdpdCByZXBvc2l0b3J5IGlzIGNsZWFuLlxuICogNC4gUnVucyBzcGVsbGNoZWNrIGFuZCBsaW50aW5nLlxuICogNS4gQnVpbGRzIHRoZSBwcm9qZWN0LlxuICogNi4gVXBkYXRlcyB2ZXJzaW9uIGluIGZpbGVzIGFuZCBjaGFuZ2Vsb2cuXG4gKiA3LiBBZGRzIHVwZGF0ZWQgZmlsZXMgdG8gR2l0LCB0YWdzIHRoZSBjb21taXQsIGFuZCBwdXNoZXMgdG8gdGhlIHJlcG9zaXRvcnkuXG4gKiA4LiBJZiBhbiBPYnNpZGlhbiBwbHVnaW4sIGNvcGllcyB0aGUgdXBkYXRlZCBtYW5pZmVzdCBhbmQgcHVibGlzaGVzIGEgR2l0SHViIHJlbGVhc2UuXG4gKlxuICogQHBhcmFtIHZlcnNpb25VcGRhdGVUeXBlIC0gVGhlIHR5cGUgb2YgdmVyc2lvbiB1cGRhdGUgdG8gcGVyZm9ybSAobWFqb3IsIG1pbm9yLCBwYXRjaCwgYmV0YSwgb3IgeC55LnpbLWJldGE6dV0pLlxuICogQHBhcmFtIHByZXBhcmVHaXRIdWJSZWxlYXNlIC0gQSBjYWxsYmFjayBmdW5jdGlvbiB0byBwcmVwYXJlIHRoZSBHaXRIdWIgcmVsZWFzZS5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHZlcnNpb24gdXBkYXRlIGlzIGNvbXBsZXRlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlVmVyc2lvbih2ZXJzaW9uVXBkYXRlVHlwZT86IHN0cmluZywgcHJlcGFyZUdpdEh1YlJlbGVhc2U/OiAobmV3VmVyc2lvbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghdmVyc2lvblVwZGF0ZVR5cGUpIHtcbiAgICBjb25zdCBucG1PbGRWZXJzaW9uID0gcHJvY2Vzcy5lbnZbJ25wbV9vbGRfdmVyc2lvbiddO1xuICAgIGNvbnN0IG5wbU5ld1ZlcnNpb24gPSBwcm9jZXNzLmVudlsnbnBtX25ld192ZXJzaW9uJ107XG5cbiAgICBpZiAobnBtT2xkVmVyc2lvbiAmJiBucG1OZXdWZXJzaW9uKSB7XG4gICAgICBhd2FpdCB1cGRhdGVWZXJzaW9uSW5GaWxlcyhucG1PbGRWZXJzaW9uKTtcbiAgICAgIGF3YWl0IHVwZGF0ZVZlcnNpb24obnBtTmV3VmVyc2lvbiwgcHJlcGFyZUdpdEh1YlJlbGVhc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignTm8gdmVyc2lvbiB1cGRhdGUgdHlwZSBwcm92aWRlZCcpO1xuICB9XG5cbiAgY29uc3QgaXNPYnNpZGlhblBsdWdpbiA9IGV4aXN0c1N5bmMocmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFuaWZlc3RKc29uKSk7XG5cbiAgdmFsaWRhdGUodmVyc2lvblVwZGF0ZVR5cGUpO1xuICBhd2FpdCBjaGVja0dpdEluc3RhbGxlZCgpO1xuICBhd2FpdCBjaGVja0dpdFJlcG9DbGVhbigpO1xuICBhd2FpdCBjaGVja0dpdEh1YkNsaUluc3RhbGxlZCgpO1xuICBhd2FpdCBucG1SdW4oJ2Zvcm1hdDpjaGVjaycpO1xuICBhd2FpdCBucG1SdW4oJ3NwZWxsY2hlY2snKTtcbiAgYXdhaXQgbnBtUnVuKCdidWlsZCcpO1xuICBhd2FpdCBucG1SdW4oJ2xpbnQnKTtcblxuICBjb25zdCBuZXdWZXJzaW9uID0gYXdhaXQgZ2V0TmV3VmVyc2lvbih2ZXJzaW9uVXBkYXRlVHlwZSk7XG4gIGF3YWl0IHVwZGF0ZVZlcnNpb25JbkZpbGVzKG5ld1ZlcnNpb24pO1xuICBpZiAoaXNPYnNpZGlhblBsdWdpbikge1xuICAgIGF3YWl0IHVwZGF0ZVZlcnNpb25JbkZpbGVzRm9yUGx1Z2luKG5ld1ZlcnNpb24pO1xuICB9XG5cbiAgYXdhaXQgdXBkYXRlQ2hhbmdlbG9nKG5ld1ZlcnNpb24pO1xuICBhd2FpdCBhZGRVcGRhdGVkRmlsZXNUb0dpdChuZXdWZXJzaW9uKTtcbiAgYXdhaXQgYWRkR2l0VGFnKG5ld1ZlcnNpb24pO1xuICBhd2FpdCBnaXRQdXNoKCk7XG4gIGF3YWl0IHByZXBhcmVHaXRIdWJSZWxlYXNlPy4obmV3VmVyc2lvbik7XG4gIGF3YWl0IHB1Ymxpc2hHaXRIdWJSZWxlYXNlKG5ld1ZlcnNpb24sIGlzT2JzaWRpYW5QbHVnaW4pO1xufVxuXG4vKipcbiAqIFVwZGF0ZXMgdGhlIHZlcnNpb24gaW4gdmFyaW91cyBmaWxlcywgaW5jbHVkaW5nIGBwYWNrYWdlLmpzb25gLCBgcGFja2FnZS1sb2NrLmpzb25gLFxuICogYW5kIE9ic2lkaWFuIHBsdWdpbiBtYW5pZmVzdHMgaWYgYXBwbGljYWJsZS5cbiAqXG4gKiBAcGFyYW0gbmV3VmVyc2lvbiAtIFRoZSBuZXcgdmVyc2lvbiBzdHJpbmcgdG8gdXBkYXRlIGluIHRoZSBmaWxlcy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdXBkYXRlIGlzIGNvbXBsZXRlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlVmVyc2lvbkluRmlsZXMobmV3VmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGVkaXRQYWNrYWdlSnNvbigocGFja2FnZUpzb24pID0+IHtcbiAgICBwYWNrYWdlSnNvbi52ZXJzaW9uID0gbmV3VmVyc2lvbjtcbiAgfSk7XG5cbiAgYXdhaXQgZWRpdFBhY2thZ2VMb2NrSnNvbih1cGRhdGUsIHsgc2hvdWxkU2tpcElmTWlzc2luZzogdHJ1ZSB9KTtcbiAgYXdhaXQgZWRpdE5wbVNocmlua1dyYXBKc29uKHVwZGF0ZSwgeyBzaG91bGRTa2lwSWZNaXNzaW5nOiB0cnVlIH0pO1xuXG4gIGZ1bmN0aW9uIHVwZGF0ZShwYWNrYWdlTG9ja0pzb246IFBhY2thZ2VMb2NrSnNvbik6IHZvaWQge1xuICAgIHBhY2thZ2VMb2NrSnNvbi52ZXJzaW9uID0gbmV3VmVyc2lvbjtcbiAgICBjb25zdCBkZWZhdWx0UGFja2FnZSA9IHBhY2thZ2VMb2NrSnNvbi5wYWNrYWdlcz8uWycnXTtcbiAgICBpZiAoZGVmYXVsdFBhY2thZ2UpIHtcbiAgICAgIGRlZmF1bHRQYWNrYWdlLnZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGUgdmVyc2lvbiB1cGRhdGUgdHlwZSB0byBlbnN1cmUgaXQgaXMgZWl0aGVyIGEgcmVjb2duaXplZCB0eXBlXG4gKiBvciBhIHZhbGlkIG1hbnVhbCB2ZXJzaW9uIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gdmVyc2lvblVwZGF0ZVR5cGUgLSBUaGUgdmVyc2lvbiB1cGRhdGUgdHlwZSB0byB2YWxpZGF0ZS5cbiAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIHZlcnNpb24gdXBkYXRlIHR5cGUgaXMgaW52YWxpZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlKHZlcnNpb25VcGRhdGVUeXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKGdldFZlcnNpb25VcGRhdGVUeXBlKHZlcnNpb25VcGRhdGVUeXBlKSA9PT0gVmVyc2lvblVwZGF0ZVR5cGUuSW52YWxpZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2ZXJzaW9uIHVwZGF0ZSB0eXBlLiBQbGVhc2UgdXNlIFxcJ21ham9yXFwnLCBcXCdtaW5vclxcJywgXFwncGF0Y2hcXCcsIG9yIFxcJ3gueS56Wy1zdWZmaXhdXFwnIGZvcm1hdC4nKTtcbiAgfVxufVxuXG4vKipcbiAqIEZldGNoZXMgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIE9ic2lkaWFuIGZyb20gdGhlIEdpdEh1YiByZWxlYXNlcyBBUEkuXG4gKlxuICogQHJldHVybnMgQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIE9ic2lkaWFuLlxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRMYXRlc3RPYnNpZGlhblZlcnNpb24oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9vYnNpZGlhbm1kL29ic2lkaWFuLXJlbGVhc2VzL3JlbGVhc2VzL2xhdGVzdCcpO1xuICBjb25zdCBvYnNpZGlhblJlbGVhc2VzSnNvbiA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKSBhcyBQYXJ0aWFsPE9ic2lkaWFuUmVsZWFzZXNKc29uPjtcbiAgcmV0dXJuIG9ic2lkaWFuUmVsZWFzZXNKc29uLm5hbWUgPz8gdGhyb3dFeHByZXNzaW9uKG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgdGhlIG5hbWUgb2YgdGhlIGxhdGVzdCBPYnNpZGlhbiByZWxlYXNlJykpO1xufVxuXG5mdW5jdGlvbiBpc0JldGEodmVyc2lvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiB2ZXJzaW9uLmluY2x1ZGVzKFZlcnNpb25VcGRhdGVUeXBlLkJldGEpO1xufVxuXG5mdW5jdGlvbiB0b1NpbmdsZUxpbmUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBsaW5lcyA9IHN0ci5zcGxpdCgvXFxyP1xcbi8pLmZpbHRlcihCb29sZWFuKTtcbiAgcmV0dXJuIGxpbmVzLmpvaW4oJyAnKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlVmVyc2lvbkluRmlsZXNGb3JQbHVnaW4obmV3VmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IG1hbmlmZXN0QmV0YUpzb25QYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFuaWZlc3RCZXRhSnNvbik7XG4gIGlmIChpc0JldGEobmV3VmVyc2lvbikpIHtcbiAgICBhd2FpdCBjcChcbiAgICAgIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbiksXG4gICAgICBtYW5pZmVzdEJldGFKc29uUGF0aCxcbiAgICAgIHsgZm9yY2U6IHRydWUgfVxuICAgICk7XG4gICAgYXdhaXQgZWRpdEpzb248TWFuaWZlc3Q+KE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0QmV0YUpzb24sIChtYW5pZmVzdCkgPT4ge1xuICAgICAgbWFuaWZlc3QudmVyc2lvbiA9IG5ld1ZlcnNpb247XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbGF0ZXN0T2JzaWRpYW5WZXJzaW9uID0gYXdhaXQgZ2V0TGF0ZXN0T2JzaWRpYW5WZXJzaW9uKCk7XG5cbiAgICBhd2FpdCBlZGl0SnNvbjxNYW5pZmVzdD4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFuaWZlc3RKc29uLCAobWFuaWZlc3QpID0+IHtcbiAgICAgIG1hbmlmZXN0Lm1pbkFwcFZlcnNpb24gPSBsYXRlc3RPYnNpZGlhblZlcnNpb247XG4gICAgICBtYW5pZmVzdC52ZXJzaW9uID0gbmV3VmVyc2lvbjtcbiAgICB9KTtcblxuICAgIGF3YWl0IGVkaXRKc29uPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlZlcnNpb25zSnNvbiwgKHZlcnNpb25zKSA9PiB7XG4gICAgICB2ZXJzaW9uc1tuZXdWZXJzaW9uXSA9IGxhdGVzdE9ic2lkaWFuVmVyc2lvbjtcbiAgICB9KTtcblxuICAgIGlmIChleGlzdHNTeW5jKG1hbmlmZXN0QmV0YUpzb25QYXRoKSkge1xuICAgICAgYXdhaXQgcm0obWFuaWZlc3RCZXRhSnNvblBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIGF3YWl0IGNvcHlVcGRhdGVkTWFuaWZlc3QoKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZUEsbUJBQStCO0FBQy9CLG1CQUFnQztBQUNoQyxxQ0FBd0M7QUFDeEMsa0JBQXFCO0FBQ3JCLG9CQUEyQjtBQUMzQixnQkFBNkI7QUFDN0Isa0JBQXlCO0FBQ3pCLHlCQU9PO0FBQ1AsaUJBS087QUFDUCxvQkFBdUI7QUFDdkIsdUNBQTBDO0FBQzFDLGtCQUdPO0FBS0EsSUFBSyxvQkFBTCxrQkFBS0EsdUJBQUw7QUFDTCxFQUFBQSxtQkFBQSxVQUFPO0FBQ1AsRUFB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QkFBZ0IsQ0FBQyxnQkFBZ0I7QUFDckMsZ0JBQVksVUFBVTtBQUFBLEVBQ3hCLENBQUM7QUFFRCxZQUFNLGdDQUFvQixRQUFRLEVBQUUscUJBQXFCLEtBQUssQ0FBQztBQUMvRCxZQUFNLGtDQUFzQixRQUFRLEVBQUUscUJBQXFCLEtBQUssQ0FBQztBQUVqRSxXQUFTLE9BQU8saUJBQXdDO0FBQ3RELG9CQUFnQixVQUFVO0FBQzFCLFVBQU0saUJBQWlCLGdCQUFnQixXQUFXLEVBQUU7QUFDcEQsUUFBSSxnQkFBZ0I7QUFDbEIscUJBQWUsVUFBVTtBQUFBLElBQzNCO0FBQUEsRUFDRjtBQUNGO0FBU08sU0FBUyxTQUFTLG1CQUFpQztBQUN4RCxNQUFJLHFCQUFxQixpQkFBaUIsTUFBTSx5QkFBMkI7QUFDekUsVUFBTSxJQUFJLE1BQU0sZ0dBQXdHO0FBQUEsRUFDMUg7QUFDRjtBQU9BLGVBQWUsMkJBQTRDO0FBQ3pELFFBQU0sV0FBVyxNQUFNLE1BQU0sMkVBQTJFO0FBQ3hHLFFBQU0sdUJBQXVCLE1BQU0sU0FBUyxLQUFLO0FBQ2pELFNBQU8scUJBQXFCLFlBQVEsOEJBQWdCLElBQUksTUFBTSx3REFBd0QsQ0FBQztBQUN6SDtBQUVBLFNBQVMsT0FBTyxTQUEwQjtBQUN4QyxTQUFPLFFBQVEsU0FBUyxpQkFBc0I7QUFDaEQ7QUFFQSxTQUFTLGFBQWEsS0FBcUI7QUFDekMsUUFBTSxRQUFRLElBQUksTUFBTSxPQUFPLEVBQUUsT0FBTyxPQUFPO0FBQy9DLFNBQU8sTUFBTSxLQUFLLEdBQUc7QUFDdkI7QUFFQSxlQUFlLDhCQUE4QixZQUFtQztBQUM5RSxRQUFNLDJCQUF1QixxQ0FBd0IsdURBQXdCLGdCQUFnQjtBQUM3RixNQUFJLE9BQU8sVUFBVSxHQUFHO0FBQ3RCLGNBQU07QUFBQSxVQUNKLHFDQUF3Qix1REFBd0IsWUFBWTtBQUFBLE1BQzVEO0FBQUEsTUFDQSxFQUFFLE9BQU8sS0FBSztBQUFBLElBQ2hCO0FBQ0EsY0FBTSxzQkFBbUIsdURBQXdCLGtCQUFrQixDQUFDLGFBQWE7QUFDL0UsZUFBUyxVQUFVO0FBQUEsSUFDckIsQ0FBQztBQUFBLEVBQ0gsT0FBTztBQUNMLFVBQU0sd0JBQXdCLE1BQU0seUJBQXlCO0FBRTdELGNBQU0sc0JBQW1CLHVEQUF3QixjQUFjLENBQUMsYUFBYTtBQUMzRSxlQUFTLGdCQUFnQjtBQUN6QixlQUFTLFVBQVU7QUFBQSxJQUNyQixDQUFDO0FBRUQsY0FBTSxzQkFBaUMsdURBQXdCLGNBQWMsQ0FBQyxhQUFhO0FBQ3pGLGVBQVMsVUFBVSxJQUFJO0FBQUEsSUFDekIsQ0FBQztBQUVELFlBQUksK0JBQVcsb0JBQW9CLEdBQUc7QUFDcEMsZ0JBQU0sdUJBQUcsb0JBQW9CO0FBQUEsSUFDL0I7QUFBQSxFQUNGO0FBRUEsUUFBTSxvQkFBb0I7QUFDNUI7IiwKICAibmFtZXMiOiBbIlZlcnNpb25VcGRhdGVUeXBlIl0KfQo=
|
385
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL1NjcmlwdFV0aWxzL3ZlcnNpb24udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIHZlcnNpb25cbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGZ1bmN0aW9ucyBmb3IgbWFuYWdpbmcgdmVyc2lvbiB1cGRhdGVzIGluIGEgcHJvamVjdC5cbiAqIEl0IGluY2x1ZGVzIHRhc2tzIHN1Y2ggYXMgdmFsaWRhdGluZyB2ZXJzaW9uIHVwZGF0ZSB0eXBlcywgY2hlY2tpbmcgdGhlIHN0YXRlXG4gKiBvZiBHaXQgYW5kIEdpdEh1YiBDTEksIHVwZGF0aW5nIHZlcnNpb24gbnVtYmVycyBpbiBmaWxlcywgYW5kIHBlcmZvcm1pbmdcbiAqIEdpdCBvcGVyYXRpb25zIHN1Y2ggYXMgdGFnZ2luZyBhbmQgcHVzaGluZy5cbiAqXG4gKiBUaGUgbWFpbiBmdW5jdGlvbiwgYHVwZGF0ZVZlcnNpb25gLCBjb29yZGluYXRlcyB0aGVzZSB0YXNrcyB0byBlbnN1cmUgdGhhdFxuICogdmVyc2lvbiB1cGRhdGVzIGFyZSBoYW5kbGVkIGNvbnNpc3RlbnRseSBhbmQgY29ycmVjdGx5LiBJdCBhbHNvIGludGVncmF0ZXNcbiAqIHdpdGggT2JzaWRpYW4gcGx1Z2lucywgaWYgYXBwbGljYWJsZSwgYnkgdXBkYXRpbmcgcmVsZXZhbnQgZmlsZXMgYW5kIHJlbGVhc2luZ1xuICogbmV3IHZlcnNpb25zIG9uIEdpdEh1Yi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFBhY2thZ2VMb2NrSnNvbiB9IGZyb20gJy4vTnBtLnRzJztcblxuaW1wb3J0IHsgZ2V0TGliRGVidWdnZXIgfSBmcm9tICcuLi9EZWJ1Zy50cyc7XG5pbXBvcnQgeyB0aHJvd0V4cHJlc3Npb24gfSBmcm9tICcuLi9FcnJvci50cyc7XG5pbXBvcnQgeyBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB9IGZyb20gJy4uL29ic2lkaWFuL1BsdWdpbi9PYnNpZGlhblBsdWdpblJlcG9QYXRocy50cyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnLi4vUGF0aC50cyc7XG5pbXBvcnQgeyByZXBsYWNlQWxsIH0gZnJvbSAnLi4vU3RyaW5nLnRzJztcbmltcG9ydCB7IHJlYWRkaXJQb3NpeCB9IGZyb20gJy4vRnMudHMnO1xuaW1wb3J0IHsgZWRpdEpzb24gfSBmcm9tICcuL0pTT04udHMnO1xuaW1wb3J0IHtcbiAgY3AsXG4gIGNyZWF0ZUludGVyZmFjZSxcbiAgZXhpc3RzU3luYyxcbiAgcmVhZEZpbGUsXG4gIHJtLFxuICB3cml0ZUZpbGVcbn0gZnJvbSAnLi9Ob2RlTW9kdWxlcy50cyc7XG5pbXBvcnQge1xuICBlZGl0TnBtU2hyaW5rV3JhcEpzb24sXG4gIGVkaXRQYWNrYWdlSnNvbixcbiAgZWRpdFBhY2thZ2VMb2NrSnNvbixcbiAgcmVhZFBhY2thZ2VKc29uXG59IGZyb20gJy4vTnBtLnRzJztcbmltcG9ydCB7IG5wbVJ1biB9IGZyb20gJy4vTnBtUnVuLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMgfSBmcm9tICcuL09ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMudHMnO1xuaW1wb3J0IHtcbiAgZXhlY0Zyb21Sb290LFxuICByZXNvbHZlUGF0aEZyb21Sb290U2FmZVxufSBmcm9tICcuL1Jvb3QudHMnO1xuXG4vKipcbiAqIEVudW0gcmVwcmVzZW50aW5nIGRpZmZlcmVudCB0eXBlcyBvZiB2ZXJzaW9uIHVwZGF0ZXMuXG4gKi9cbmV4cG9ydCBlbnVtIFZlcnNpb25VcGRhdGVUeXBlIHtcbiAgQmV0YSA9ICdiZXRhJyxcbiAgSW52YWxpZCA9ICdpbnZhbGlkJyxcbiAgTWFqb3IgPSAnbWFqb3InLFxuICBNYW51YWwgPSAnbWFudWFsJyxcbiAgTWlub3IgPSAnbWlub3InLFxuICBQYXRjaCA9ICdwYXRjaCdcbn1cblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgbWFuaWZlc3QgZmlsZSBmb3JtYXQgZm9yIE9ic2lkaWFuIHBsdWdpbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuaWZlc3Qge1xuICAvKipcbiAgICogVGhlIG1pbmltdW0gT2JzaWRpYW4gdmVyc2lvbiByZXF1aXJlZCBmb3IgdGhlIHBsdWdpbi5cbiAgICovXG4gIG1pbkFwcFZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIHBsdWdpbi5cbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgc3RydWN0dXJlIG9mIE9ic2lkaWFuIHJlbGVhc2VzIEpTT04uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzaWRpYW5SZWxlYXNlc0pzb24ge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIE9ic2lkaWFuIHJlbGVhc2UuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIEdpdCB0YWcgZm9yIHRoZSBuZXcgdmVyc2lvbi5cbiAqXG4gKiBAcGFyYW0gbmV3VmVyc2lvbiAtIFRoZSBuZXcgdmVyc2lvbiBudW1iZXIgdG8gdXNlIGZvciB0aGUgdGFnLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB0YWcgaGFzIGJlZW4gY3JlYXRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZEdpdFRhZyhuZXdWZXJzaW9uOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KGBnaXQgdGFnIC1hICR7bmV3VmVyc2lvbn0gLW0gJHtuZXdWZXJzaW9ufSAtLWZvcmNlYCwgeyBpc1F1aWV0OiB0cnVlIH0pO1xufVxuXG4vKipcbiAqIEFkZHMgdXBkYXRlZCBmaWxlcyB0byB0aGUgR2l0IHN0YWdpbmcgYXJlYSBhbmQgY29tbWl0cyB0aGVtIHdpdGggdGhlIG5ldyB2ZXJzaW9uIG1lc3NhZ2UuXG4gKlxuICogQHBhcmFtIG5ld1ZlcnNpb24gLSBUaGUgbmV3IHZlcnNpb24gbnVtYmVyIHVzZWQgYXMgdGhlIGNvbW1pdCBtZXNzYWdlLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBmaWxlcyBoYXZlIGJlZW4gYWRkZWQgYW5kIGNvbW1pdHRlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZFVwZGF0ZWRGaWxlc1RvR2l0KG5ld1ZlcnNpb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjRnJvbVJvb3QoWydnaXQnLCAnYWRkJywgJy0tYWxsJ10sIHsgaXNRdWlldDogdHJ1ZSB9KTtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KGBnaXQgY29tbWl0IC1tICR7bmV3VmVyc2lvbn0gLS1hbGxvdy1lbXB0eWAsIHsgaXNRdWlldDogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIEdpdEh1YiBDTEkgaXMgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0uXG4gKlxuICogVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBHaXRIdWIgQ0xJIGlzIG5vdCBpbnN0YWxsZWQuXG4gKlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgR2l0SHViIENMSSBpcyBub3QgaW5zdGFsbGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tHaXRIdWJDbGlJbnN0YWxsZWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZXhlY0Zyb21Sb290KCdnaCAtLXZlcnNpb24nLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gIH0gY2F0Y2gge1xuICAgIHRocm93IG5ldyBFcnJvcignR2l0SHViIENMSSBpcyBub3QgaW5zdGFsbGVkLiBQbGVhc2UgaW5zdGFsbCBpdCBmcm9tIGh0dHBzOi8vY2xpLmdpdGh1Yi5jb20vJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgR2l0IGlzIGluc3RhbGxlZCBvbiB0aGUgc3lzdGVtLlxuICpcbiAqIFRocm93cyBhbiBlcnJvciBpZiBHaXQgaXMgbm90IGluc3RhbGxlZC5cbiAqXG4gKiBAdGhyb3dzIEVycm9yIGlmIEdpdCBpcyBub3QgaW5zdGFsbGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tHaXRJbnN0YWxsZWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZXhlY0Zyb21Sb290KCdnaXQgLS12ZXJzaW9uJywgeyBpc1F1aWV0OiB0cnVlIH0pO1xuICB9IGNhdGNoIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0dpdCBpcyBub3QgaW5zdGFsbGVkLiBQbGVhc2UgaW5zdGFsbCBpdCBmcm9tIGh0dHBzOi8vZ2l0LXNjbS5jb20vJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIEdpdCByZXBvc2l0b3J5IGlzIGNsZWFuLCBtZWFuaW5nIHRoZXJlIGFyZSBubyB1bmNvbW1pdHRlZCBjaGFuZ2VzLlxuICpcbiAqIFRocm93cyBhbiBlcnJvciBpZiB0aGUgR2l0IHJlcG9zaXRvcnkgaXMgbm90IGNsZWFuLlxuICpcbiAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEdpdCByZXBvc2l0b3J5IGlzIG5vdCBjbGVhbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNoZWNrR2l0UmVwb0NsZWFuKCk6IFByb21pc2U8dm9pZD4ge1xuICB0cnkge1xuICAgIGNvbnN0IHN0ZG91dCA9IGF3YWl0IGV4ZWNGcm9tUm9vdCgnZ2l0IHN0YXR1cyAtLXBvcmNlbGFpbiAtLXVudHJhY2tlZC1maWxlcz1hbGwnLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gICAgaWYgKHN0ZG91dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgfVxuICB9IGNhdGNoIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0dpdCByZXBvc2l0b3J5IGlzIG5vdCBjbGVhbi4gUGxlYXNlIGNvbW1pdCBvciBzdGFzaCB5b3VyIGNoYW5nZXMgYmVmb3JlIHJlbGVhc2luZyBhIG5ldyB2ZXJzaW9uLicpO1xuICB9XG59XG5cbi8qKlxuICogQ29waWVzIHRoZSB1cGRhdGVkIG1hbmlmZXN0IGZpbGUgdG8gdGhlIGRpc3RyaWJ1dGlvbiBidWlsZCBkaXJlY3RvcnkuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb3B5IG9wZXJhdGlvbiBpcyBjb21wbGV0ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvcHlVcGRhdGVkTWFuaWZlc3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGNwKFxuICAgIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbiksXG4gICAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5EaXN0QnVpbGQsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbikpLFxuICAgIHsgZm9yY2U6IHRydWUgfVxuICApO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhIG5ldyB2ZXJzaW9uIHN0cmluZyBiYXNlZCBvbiB0aGUgY3VycmVudCB2ZXJzaW9uIGFuZCB0aGUgc3BlY2lmaWVkIHVwZGF0ZSB0eXBlLlxuICpcbiAqIEBwYXJhbSB2ZXJzaW9uVXBkYXRlVHlwZSAtIFRoZSB0eXBlIG9mIHZlcnNpb24gdXBkYXRlIChtYWpvciwgbWlub3IsIHBhdGNoLCBiZXRhLCBvciBtYW51YWwpLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgbmV3IHZlcnNpb24gc3RyaW5nLlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgY3VycmVudCB2ZXJzaW9uIGZvcm1hdCBpcyBpbnZhbGlkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TmV3VmVyc2lvbih2ZXJzaW9uVXBkYXRlVHlwZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgdmVyc2lvblR5cGUgPSBnZXRWZXJzaW9uVXBkYXRlVHlwZSh2ZXJzaW9uVXBkYXRlVHlwZSk7XG4gIGlmICh2ZXJzaW9uVHlwZSA9PT0gVmVyc2lvblVwZGF0ZVR5cGUuTWFudWFsKSB7XG4gICAgcmV0dXJuIHZlcnNpb25VcGRhdGVUeXBlO1xuICB9XG5cbiAgY29uc3QgcGFja2FnZUpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24oKTtcbiAgY29uc3QgY3VycmVudFZlcnNpb24gPSBwYWNrYWdlSnNvbi52ZXJzaW9uID8/ICcnO1xuXG4gIGNvbnN0IG1hdGNoID0gL14oPzxNYWpvcj5cXGQrKVxcLig/PE1pbm9yPlxcZCspXFwuKD88UGF0Y2g+XFxkKykoPzotYmV0YVxcLig/PEJldGE+XFxkKykpPyQvLmV4ZWMoY3VycmVudFZlcnNpb24pO1xuICBpZiAoIW1hdGNoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGN1cnJlbnQgdmVyc2lvbiBmb3JtYXQ6ICR7Y3VycmVudFZlcnNpb259YCk7XG4gIH1cblxuICBsZXQgbWFqb3IgPSBOdW1iZXIobWF0Y2guZ3JvdXBzPy5bJ01ham9yJ10gPz8gJycpO1xuICBsZXQgbWlub3IgPSBOdW1iZXIobWF0Y2guZ3JvdXBzPy5bJ01pbm9yJ10gPz8gJycpO1xuICBsZXQgcGF0Y2ggPSBOdW1iZXIobWF0Y2guZ3JvdXBzPy5bJ1BhdGNoJ10gPz8gJycpO1xuICBsZXQgYmV0YSA9IE51bWJlcihtYXRjaC5ncm91cHM/LlsnQmV0YSddID8/ICcnKTtcblxuICBzd2l0Y2ggKHZlcnNpb25UeXBlKSB7XG4gICAgY2FzZSBWZXJzaW9uVXBkYXRlVHlwZS5CZXRhOlxuICAgICAgaWYgKGJldGEgPT09IDApIHtcbiAgICAgICAgcGF0Y2grKztcbiAgICAgIH1cbiAgICAgIGJldGErKztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgVmVyc2lvblVwZGF0ZVR5cGUuTWFqb3I6XG4gICAgICBtYWpvcisrO1xuICAgICAgbWlub3IgPSAwO1xuICAgICAgcGF0Y2ggPSAwO1xuICAgICAgYmV0YSA9IDA7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFZlcnNpb25VcGRhdGVUeXBlLk1pbm9yOlxuICAgICAgbWlub3IrKztcbiAgICAgIHBhdGNoID0gMDtcbiAgICAgIGJldGEgPSAwO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBWZXJzaW9uVXBkYXRlVHlwZS5QYXRjaDpcbiAgICAgIGlmIChiZXRhID09PSAwKSB7XG4gICAgICAgIHBhdGNoKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBiZXRhID0gMDtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgdmVyc2lvbiB1cGRhdGUgdHlwZTogJHt2ZXJzaW9uVHlwZX1gKTtcbiAgfVxuXG4gIHJldHVybiBgJHttYWpvci50b1N0cmluZygpfS4ke21pbm9yLnRvU3RyaW5nKCl9LiR7cGF0Y2gudG9TdHJpbmcoKX0ke2JldGEgPiAwID8gYC1iZXRhLiR7YmV0YS50b1N0cmluZygpfWAgOiAnJ31gO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgcmVsZWFzZSBub3RlcyBmb3IgYSBzcGVjaWZpYyB2ZXJzaW9uIGZyb20gdGhlIGNoYW5nZWxvZy5cbiAqXG4gKiBAcGFyYW0gbmV3VmVyc2lvbiAtIFRoZSBuZXcgdmVyc2lvbiBudW1iZXIgZm9yIHdoaWNoIHRvIGdldCB0aGUgcmVsZWFzZSBub3Rlcy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlbGVhc2Ugbm90ZXMgZm9yIHRoZSBzcGVjaWZpZWQgdmVyc2lvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFJlbGVhc2VOb3RlcyhuZXdWZXJzaW9uOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBjaGFuZ2Vsb2dQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQ2hhbmdlbG9nTWQpO1xuICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGUoY2hhbmdlbG9nUGF0aCwgJ3V0Zi04Jyk7XG4gIGNvbnN0IG5ld1ZlcnNpb25Fc2NhcGVkID0gcmVwbGFjZUFsbChuZXdWZXJzaW9uLCAnLicsICdcXFxcLicpO1xuICBjb25zdCBtYXRjaCA9IG5ldyBSZWdFeHAoYFxcbiMjICR7bmV3VmVyc2lvbkVzY2FwZWR9XFxuXFxuKCgufFxcbikrPylcXG5cXG4jI2ApLmV4ZWMoY29udGVudCk7XG4gIGxldCByZWxlYXNlTm90ZXMgPSBtYXRjaD8uWzFdID8gYCR7bWF0Y2hbMV19XFxuXFxuYCA6ICcnO1xuXG4gIGNvbnN0IHRhZ3MgPSAoYXdhaXQgZXhlY0Zyb21Sb290KCdnaXQgdGFnIC0tc29ydD0tY3JlYXRvcmRhdGUnLCB7IGlzUXVpZXQ6IHRydWUgfSkpLnNwbGl0KC9cXHI/XFxuLyk7XG4gIGNvbnN0IHByZXZpb3VzVmVyc2lvbiA9IHRhZ3NbMV07XG4gIGxldCBjaGFuZ2VzVXJsOiBzdHJpbmc7XG5cbiAgY29uc3QgcmVwb1VybCA9IGF3YWl0IGV4ZWNGcm9tUm9vdCgnZ2ggcmVwbyB2aWV3IC0tanNvbiB1cmwgLXEgLnVybCcsIHsgaXNRdWlldDogdHJ1ZSB9KTtcblxuICBpZiAocHJldmlvdXNWZXJzaW9uKSB7XG4gICAgY2hhbmdlc1VybCA9IGAke3JlcG9Vcmx9L2NvbXBhcmUvJHtwcmV2aW91c1ZlcnNpb259Li4uJHtuZXdWZXJzaW9ufWA7XG4gIH0gZWxzZSB7XG4gICAgY2hhbmdlc1VybCA9IGAke3JlcG9Vcmx9L2NvbW1pdHMvJHtuZXdWZXJzaW9ufWA7XG4gIH1cblxuICByZWxlYXNlTm90ZXMgKz0gYCoqRnVsbCBDaGFuZ2Vsb2cqKjogJHtjaGFuZ2VzVXJsfWA7XG4gIHJldHVybiByZWxlYXNlTm90ZXM7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgdHlwZSBvZiB2ZXJzaW9uIHVwZGF0ZSBiYXNlZCBvbiB0aGUgaW5wdXQgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB2ZXJzaW9uVXBkYXRlVHlwZSAtIFRoZSBpbnB1dCBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB2ZXJzaW9uIHVwZGF0ZSB0eXBlLlxuICogQHJldHVybnMgVGhlIGNvcnJlc3BvbmRpbmcgYFZlcnNpb25VcGRhdGVUeXBlYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNpb25VcGRhdGVUeXBlKHZlcnNpb25VcGRhdGVUeXBlOiBzdHJpbmcpOiBWZXJzaW9uVXBkYXRlVHlwZSB7XG4gIGNvbnN0IHZlcnNpb25VcGRhdGVUeXBlRW51bSA9IHZlcnNpb25VcGRhdGVUeXBlIGFzIFZlcnNpb25VcGRhdGVUeXBlO1xuICBzd2l0Y2ggKHZlcnNpb25VcGRhdGVUeXBlRW51bSkge1xuICAgIGNhc2UgVmVyc2lvblVwZGF0ZVR5cGUuQmV0YTpcbiAgICBjYXNlIFZlcnNpb25VcGRhdGVUeXBlLk1ham9yOlxuICAgIGNhc2UgVmVyc2lvblVwZGF0ZVR5cGUuTWlub3I6XG4gICAgY2FzZSBWZXJzaW9uVXBkYXRlVHlwZS5QYXRjaDpcbiAgICAgIHJldHVybiB2ZXJzaW9uVXBkYXRlVHlwZUVudW07XG5cbiAgICBkZWZhdWx0OlxuICAgICAgaWYgKC9eXFxkK1xcLlxcZCtcXC5cXGQrKD86LVtcXHdcXGQuLV0rKT8kLy50ZXN0KHZlcnNpb25VcGRhdGVUeXBlKSkge1xuICAgICAgICByZXR1cm4gVmVyc2lvblVwZGF0ZVR5cGUuTWFudWFsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gVmVyc2lvblVwZGF0ZVR5cGUuSW52YWxpZDtcbiAgfVxufVxuXG4vKipcbiAqIFB1c2hlcyBjb21taXRzIGFuZCB0YWdzIHRvIHRoZSByZW1vdGUgR2l0IHJlcG9zaXRvcnkuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBwdXNoIG9wZXJhdGlvbiBpcyBjb21wbGV0ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdpdFB1c2goKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdCgnZ2l0IHB1c2ggLS1mb2xsb3ctdGFncyAtLWZvcmNlJywgeyBpc1F1aWV0OiB0cnVlIH0pO1xufVxuXG4vKipcbiAqIFB1Ymxpc2hlcyBhIEdpdEh1YiByZWxlYXNlIGZvciB0aGUgbmV3IHZlcnNpb24uXG4gKlxuICogSGFuZGxlcyB0aGUgY3JlYXRpb24gb2YgYSByZWxlYXNlIGFuZCB1cGxvYWRpbmcgZmlsZXMgZm9yIGVpdGhlciBhbiBPYnNpZGlhbiBwbHVnaW4gb3IgYW5vdGhlciBwcm9qZWN0LlxuICpcbiAqIEBwYXJhbSBuZXdWZXJzaW9uIC0gVGhlIG5ldyB2ZXJzaW9uIG51bWJlciBmb3IgdGhlIHJlbGVhc2UuXG4gKiBAcGFyYW0gaXNPYnNpZGlhblBsdWdpbiAtIEEgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoZSBwcm9qZWN0IGlzIGFuIE9ic2lkaWFuIHBsdWdpbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcmVsZWFzZSBoYXMgYmVlbiBwdWJsaXNoZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwdWJsaXNoR2l0SHViUmVsZWFzZShuZXdWZXJzaW9uOiBzdHJpbmcsIGlzT2JzaWRpYW5QbHVnaW46IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgbGV0IGZpbGVQYXRoczogc3RyaW5nW107XG5cbiAgaWYgKGlzT2JzaWRpYW5QbHVnaW4pIHtcbiAgICBjb25zdCBidWlsZERpciA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkRpc3RCdWlsZCk7XG4gICAgY29uc3QgZmlsZU5hbWVzID0gYXdhaXQgcmVhZGRpclBvc2l4KGJ1aWxkRGlyKTtcbiAgICBmaWxlUGF0aHMgPSBmaWxlTmFtZXMubWFwKChmaWxlTmFtZSkgPT4gam9pbihidWlsZERpciwgZmlsZU5hbWUpKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCByZXN1bHRKc29uID0gYXdhaXQgZXhlY0Zyb21Sb290KFsnbnBtJywgJ3BhY2snLCAnLS1wYWNrLWRlc3RpbmF0aW9uJywgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0LCAnLS1qc29uJ10sIHsgaXNRdWlldDogdHJ1ZSB9KTtcbiAgICBjb25zdCByZXN1bHQgPSBKU09OLnBhcnNlKHJlc3VsdEpzb24pIGFzIFt7IGZpbGVuYW1lOiBzdHJpbmcgfV07XG4gICAgZmlsZVBhdGhzID0gW1xuICAgICAgam9pbihPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRpc3QsIHJlc3VsdFswXS5maWxlbmFtZSksXG4gICAgICBqb2luKE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuRGlzdCwgT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5TdHlsZXNDc3MpXG4gICAgXTtcbiAgfVxuXG4gIGZpbGVQYXRocyA9IGZpbGVQYXRocy5maWx0ZXIoKGZpbGVQYXRoKSA9PiBleGlzdHNTeW5jKHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKGZpbGVQYXRoKSkpO1xuXG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbXG4gICAgJ2doJyxcbiAgICAncmVsZWFzZScsXG4gICAgJ2NyZWF0ZScsXG4gICAgbmV3VmVyc2lvbixcbiAgICAuLi5maWxlUGF0aHMsXG4gICAgJy0tdGl0bGUnLFxuICAgIGB2JHtuZXdWZXJzaW9ufWAsXG4gICAgLi4uKGlzQmV0YShuZXdWZXJzaW9uKSA/IFsnLS1wcmVyZWxlYXNlJ10gOiBbXSksXG4gICAgJy0tbm90ZXMtZmlsZScsXG4gICAgJy0nXG4gIF0sIHtcbiAgICBpc1F1aWV0OiB0cnVlLFxuICAgIHN0ZGluOiBhd2FpdCBnZXRSZWxlYXNlTm90ZXMobmV3VmVyc2lvbilcbiAgfSk7XG59XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgY2hhbmdlbG9nIGZpbGUgd2l0aCBuZXcgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgY29tbWl0IG1lc3NhZ2VzLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gcmVhZHMgdGhlIGN1cnJlbnQgY2hhbmdlbG9nLCBhcHBlbmRzIG5ldyBlbnRyaWVzIGZvciB0aGUgbGF0ZXN0IHZlcnNpb24sXG4gKiBhbmQgcHJvbXB0cyB0aGUgdXNlciB0byByZXZpZXcgdGhlIGNoYW5nZXMuXG4gKlxuICogQHBhcmFtIG5ld1ZlcnNpb24gLSBUaGUgbmV3IHZlcnNpb24gbnVtYmVyIHRvIGJlIGFkZGVkIHRvIHRoZSBjaGFuZ2Vsb2cuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGNoYW5nZWxvZyB1cGRhdGUgaXMgY29tcGxldGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGRhdGVDaGFuZ2Vsb2cobmV3VmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IEhFQURFUl9MSU5FU19DT1VOVCA9IDI7XG4gIGNvbnN0IGNoYW5nZWxvZ1BhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZShPYnNpZGlhblBsdWdpblJlcG9QYXRocy5DaGFuZ2Vsb2dNZCk7XG4gIGxldCBwcmV2aW91c0NoYW5nZWxvZ0xpbmVzOiBzdHJpbmdbXTtcbiAgaWYgKGV4aXN0c1N5bmMoY2hhbmdlbG9nUGF0aCkpIHtcbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgcmVhZEZpbGUoY2hhbmdlbG9nUGF0aCwgJ3V0Zi04Jyk7XG4gICAgcHJldmlvdXNDaGFuZ2Vsb2dMaW5lcyA9IGNvbnRlbnQuc3BsaXQoJ1xcbicpLnNsaWNlKEhFQURFUl9MSU5FU19DT1VOVCk7XG4gICAgaWYgKHByZXZpb3VzQ2hhbmdlbG9nTGluZXMuYXQoLTEpID09PSAnJykge1xuICAgICAgcHJldmlvdXNDaGFuZ2Vsb2dMaW5lcy5wb3AoKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcHJldmlvdXNDaGFuZ2Vsb2dMaW5lcyA9IFtdO1xuICB9XG5cbiAgY29uc3QgbGFzdFRhZyA9IHJlcGxhY2VBbGwocHJldmlvdXNDaGFuZ2Vsb2dMaW5lc1swXSA/PyAnJywgJyMjICcsICcnKTtcbiAgY29uc3QgY29tbWl0UmFuZ2UgPSBsYXN0VGFnID8gYCR7bGFzdFRhZ30uLkhFQURgIDogJ0hFQUQnO1xuICBjb25zdCBjb21taXRNZXNzYWdlc1N0ciA9IGF3YWl0IGV4ZWNGcm9tUm9vdChgZ2l0IGxvZyAke2NvbW1pdFJhbmdlfSAtLWZvcm1hdD0lQiAtLWZpcnN0LXBhcmVudCAtemAsIHsgaXNRdWlldDogdHJ1ZSB9KTtcbiAgY29uc3QgY29tbWl0TWVzc2FnZXMgPSBjb21taXRNZXNzYWdlc1N0ci5zcGxpdCgnXFwwJykuZmlsdGVyKEJvb2xlYW4pLm1hcCh0b1NpbmdsZUxpbmUpO1xuXG4gIGxldCBuZXdDaGFuZ2VMb2cgPSBgIyBDSEFOR0VMT0dcXG5cXG4jIyAke25ld1ZlcnNpb259XFxuXFxuYDtcblxuICBmb3IgKGNvbnN0IG1lc3NhZ2Ugb2YgY29tbWl0TWVzc2FnZXMpIHtcbiAgICBuZXdDaGFuZ2VMb2cgKz0gYC0gJHttZXNzYWdlfVxcbmA7XG4gIH1cblxuICBpZiAocHJldmlvdXNDaGFuZ2Vsb2dMaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgbmV3Q2hhbmdlTG9nICs9ICdcXG4nO1xuICAgIGZvciAoY29uc3QgbGluZSBvZiBwcmV2aW91c0NoYW5nZWxvZ0xpbmVzKSB7XG4gICAgICBuZXdDaGFuZ2VMb2cgKz0gYCR7bGluZX1cXG5gO1xuICAgIH1cbiAgfVxuXG4gIGF3YWl0IHdyaXRlRmlsZShjaGFuZ2Vsb2dQYXRoLCBuZXdDaGFuZ2VMb2csICd1dGYtOCcpO1xuXG4gIGNvbnN0IGNvZGVWZXJzaW9uID0gYXdhaXQgZXhlY0Zyb21Sb290KCdjb2RlIC0tdmVyc2lvbicsIHtcbiAgICBpc1F1aWV0OiB0cnVlLFxuICAgIHNob3VsZElnbm9yZUV4aXRDb2RlOiB0cnVlXG4gIH0pO1xuICBjb25zdCBfZGVidWdnZXIgPSBnZXRMaWJEZWJ1Z2dlcignVmVyc2lvbicpO1xuICBpZiAoY29kZVZlcnNpb24pIHtcbiAgICBfZGVidWdnZXIoYFBsZWFzZSB1cGRhdGUgdGhlICR7T2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQ2hhbmdlbG9nTWR9IGZpbGUuIENsb3NlIFZpc3VhbCBTdHVkaW8gQ29kZSB3aGVuIHlvdSBhcmUgZG9uZS4uLmApO1xuICAgIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ2NvZGUnLCAnLXcnLCBjaGFuZ2Vsb2dQYXRoXSwge1xuICAgICAgaXNRdWlldDogdHJ1ZSxcbiAgICAgIHNob3VsZElnbm9yZUV4aXRDb2RlOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgX2RlYnVnZ2VyKCdDb3VsZCBub3QgZmluZCBWaXN1YWwgU3R1ZGlvIENvZGUgaW4geW91ciBQQVRILiBVc2luZyBjb25zb2xlIG1vZGUgaW5zdGVhZC4nKTtcbiAgICBhd2FpdCBjcmVhdGVJbnRlcmZhY2UocHJvY2Vzcy5zdGRpbiwgcHJvY2Vzcy5zdGRvdXQpLnF1ZXN0aW9uKFxuICAgICAgYFBsZWFzZSB1cGRhdGUgdGhlICR7T2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQ2hhbmdlbG9nTWR9IGZpbGUuIFByZXNzIEVudGVyIHdoZW4geW91IGFyZSBkb25lLi4uYFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBVcGRhdGVzIHRoZSB2ZXJzaW9uIG9mIHRoZSBwcm9qZWN0IGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgdXBkYXRlIHR5cGUuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhIHNlcmllcyBvZiB0YXNrcyB0byBoYW5kbGUgdmVyc2lvbiB1cGRhdGVzOlxuICogMS4gVmFsaWRhdGVzIHRoZSB2ZXJzaW9uIHVwZGF0ZSB0eXBlLlxuICogMi4gQ2hlY2tzIGlmIEdpdCBhbmQgR2l0SHViIENMSSBhcmUgaW5zdGFsbGVkLlxuICogMy4gVmVyaWZpZXMgdGhhdCB0aGUgR2l0IHJlcG9zaXRvcnkgaXMgY2xlYW4uXG4gKiA0LiBSdW5zIHNwZWxsY2hlY2sgYW5kIGxpbnRpbmcuXG4gKiA1LiBCdWlsZHMgdGhlIHByb2plY3QuXG4gKiA2LiBVcGRhdGVzIHZlcnNpb24gaW4gZmlsZXMgYW5kIGNoYW5nZWxvZy5cbiAqIDcuIEFkZHMgdXBkYXRlZCBmaWxlcyB0byBHaXQsIHRhZ3MgdGhlIGNvbW1pdCwgYW5kIHB1c2hlcyB0byB0aGUgcmVwb3NpdG9yeS5cbiAqIDguIElmIGFuIE9ic2lkaWFuIHBsdWdpbiwgY29waWVzIHRoZSB1cGRhdGVkIG1hbmlmZXN0IGFuZCBwdWJsaXNoZXMgYSBHaXRIdWIgcmVsZWFzZS5cbiAqXG4gKiBAcGFyYW0gdmVyc2lvblVwZGF0ZVR5cGUgLSBUaGUgdHlwZSBvZiB2ZXJzaW9uIHVwZGF0ZSB0byBwZXJmb3JtIChtYWpvciwgbWlub3IsIHBhdGNoLCBiZXRhLCBvciB4LnkuelstYmV0YTp1XSkuXG4gKiBAcGFyYW0gcHJlcGFyZUdpdEh1YlJlbGVhc2UgLSBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIHByZXBhcmUgdGhlIEdpdEh1YiByZWxlYXNlLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB2ZXJzaW9uIHVwZGF0ZSBpcyBjb21wbGV0ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVZlcnNpb24odmVyc2lvblVwZGF0ZVR5cGU/OiBzdHJpbmcsIHByZXBhcmVHaXRIdWJSZWxlYXNlPzogKG5ld1ZlcnNpb246IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPik6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIXZlcnNpb25VcGRhdGVUeXBlKSB7XG4gICAgY29uc3QgbnBtT2xkVmVyc2lvbiA9IHByb2Nlc3MuZW52WyducG1fb2xkX3ZlcnNpb24nXTtcbiAgICBjb25zdCBucG1OZXdWZXJzaW9uID0gcHJvY2Vzcy5lbnZbJ25wbV9uZXdfdmVyc2lvbiddO1xuXG4gICAgaWYgKG5wbU9sZFZlcnNpb24gJiYgbnBtTmV3VmVyc2lvbikge1xuICAgICAgYXdhaXQgdXBkYXRlVmVyc2lvbkluRmlsZXMobnBtT2xkVmVyc2lvbik7XG4gICAgICBhd2FpdCB1cGRhdGVWZXJzaW9uKG5wbU5ld1ZlcnNpb24sIHByZXBhcmVHaXRIdWJSZWxlYXNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHZlcnNpb24gdXBkYXRlIHR5cGUgcHJvdmlkZWQnKTtcbiAgfVxuXG4gIGNvbnN0IGlzT2JzaWRpYW5QbHVnaW4gPSBleGlzdHNTeW5jKHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbikpO1xuXG4gIHZhbGlkYXRlKHZlcnNpb25VcGRhdGVUeXBlKTtcbiAgYXdhaXQgY2hlY2tHaXRJbnN0YWxsZWQoKTtcbiAgYXdhaXQgY2hlY2tHaXRSZXBvQ2xlYW4oKTtcbiAgYXdhaXQgY2hlY2tHaXRIdWJDbGlJbnN0YWxsZWQoKTtcbiAgYXdhaXQgbnBtUnVuKCdmb3JtYXQ6Y2hlY2snKTtcbiAgYXdhaXQgbnBtUnVuKCdzcGVsbGNoZWNrJyk7XG4gIGF3YWl0IG5wbVJ1bignYnVpbGQnKTtcbiAgYXdhaXQgbnBtUnVuKCdsaW50Jyk7XG5cbiAgY29uc3QgbmV3VmVyc2lvbiA9IGF3YWl0IGdldE5ld1ZlcnNpb24odmVyc2lvblVwZGF0ZVR5cGUpO1xuICBhd2FpdCB1cGRhdGVWZXJzaW9uSW5GaWxlcyhuZXdWZXJzaW9uKTtcbiAgaWYgKGlzT2JzaWRpYW5QbHVnaW4pIHtcbiAgICBhd2FpdCB1cGRhdGVWZXJzaW9uSW5GaWxlc0ZvclBsdWdpbihuZXdWZXJzaW9uKTtcbiAgfVxuXG4gIGF3YWl0IHVwZGF0ZUNoYW5nZWxvZyhuZXdWZXJzaW9uKTtcbiAgYXdhaXQgYWRkVXBkYXRlZEZpbGVzVG9HaXQobmV3VmVyc2lvbik7XG4gIGF3YWl0IGFkZEdpdFRhZyhuZXdWZXJzaW9uKTtcbiAgYXdhaXQgZ2l0UHVzaCgpO1xuICBhd2FpdCBwcmVwYXJlR2l0SHViUmVsZWFzZT8uKG5ld1ZlcnNpb24pO1xuICBhd2FpdCBwdWJsaXNoR2l0SHViUmVsZWFzZShuZXdWZXJzaW9uLCBpc09ic2lkaWFuUGx1Z2luKTtcbn1cblxuLyoqXG4gKiBVcGRhdGVzIHRoZSB2ZXJzaW9uIGluIHZhcmlvdXMgZmlsZXMsIGluY2x1ZGluZyBgcGFja2FnZS5qc29uYCwgYHBhY2thZ2UtbG9jay5qc29uYCxcbiAqIGFuZCBPYnNpZGlhbiBwbHVnaW4gbWFuaWZlc3RzIGlmIGFwcGxpY2FibGUuXG4gKlxuICogQHBhcmFtIG5ld1ZlcnNpb24gLSBUaGUgbmV3IHZlcnNpb24gc3RyaW5nIHRvIHVwZGF0ZSBpbiB0aGUgZmlsZXMuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHVwZGF0ZSBpcyBjb21wbGV0ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVZlcnNpb25JbkZpbGVzKG5ld1ZlcnNpb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBlZGl0UGFja2FnZUpzb24oKHBhY2thZ2VKc29uKSA9PiB7XG4gICAgcGFja2FnZUpzb24udmVyc2lvbiA9IG5ld1ZlcnNpb247XG4gIH0pO1xuXG4gIGF3YWl0IGVkaXRQYWNrYWdlTG9ja0pzb24odXBkYXRlLCB7IHNob3VsZFNraXBJZk1pc3Npbmc6IHRydWUgfSk7XG4gIGF3YWl0IGVkaXROcG1TaHJpbmtXcmFwSnNvbih1cGRhdGUsIHsgc2hvdWxkU2tpcElmTWlzc2luZzogdHJ1ZSB9KTtcblxuICBmdW5jdGlvbiB1cGRhdGUocGFja2FnZUxvY2tKc29uOiBQYWNrYWdlTG9ja0pzb24pOiB2b2lkIHtcbiAgICBwYWNrYWdlTG9ja0pzb24udmVyc2lvbiA9IG5ld1ZlcnNpb247XG4gICAgY29uc3QgZGVmYXVsdFBhY2thZ2UgPSBwYWNrYWdlTG9ja0pzb24ucGFja2FnZXM/LlsnJ107XG4gICAgaWYgKGRlZmF1bHRQYWNrYWdlKSB7XG4gICAgICBkZWZhdWx0UGFja2FnZS52ZXJzaW9uID0gbmV3VmVyc2lvbjtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgdGhlIHZlcnNpb24gdXBkYXRlIHR5cGUgdG8gZW5zdXJlIGl0IGlzIGVpdGhlciBhIHJlY29nbml6ZWQgdHlwZVxuICogb3IgYSB2YWxpZCBtYW51YWwgdmVyc2lvbiBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHZlcnNpb25VcGRhdGVUeXBlIC0gVGhlIHZlcnNpb24gdXBkYXRlIHR5cGUgdG8gdmFsaWRhdGUuXG4gKiBAdGhyb3dzIEVycm9yIGlmIHRoZSB2ZXJzaW9uIHVwZGF0ZSB0eXBlIGlzIGludmFsaWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZSh2ZXJzaW9uVXBkYXRlVHlwZTogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChnZXRWZXJzaW9uVXBkYXRlVHlwZSh2ZXJzaW9uVXBkYXRlVHlwZSkgPT09IFZlcnNpb25VcGRhdGVUeXBlLkludmFsaWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmVyc2lvbiB1cGRhdGUgdHlwZS4gUGxlYXNlIHVzZSBcXCdtYWpvclxcJywgXFwnbWlub3JcXCcsIFxcJ3BhdGNoXFwnLCBvciBcXCd4Lnkuelstc3VmZml4XVxcJyBmb3JtYXQuJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBGZXRjaGVzIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiBPYnNpZGlhbiBmcm9tIHRoZSBHaXRIdWIgcmVsZWFzZXMgQVBJLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIE9ic2lkaWFuLlxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRMYXRlc3RPYnNpZGlhblZlcnNpb24oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9vYnNpZGlhbm1kL29ic2lkaWFuLXJlbGVhc2VzL3JlbGVhc2VzL2xhdGVzdCcpO1xuICBjb25zdCBvYnNpZGlhblJlbGVhc2VzSnNvbiA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKSBhcyBQYXJ0aWFsPE9ic2lkaWFuUmVsZWFzZXNKc29uPjtcbiAgcmV0dXJuIG9ic2lkaWFuUmVsZWFzZXNKc29uLm5hbWUgPz8gdGhyb3dFeHByZXNzaW9uKG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgdGhlIG5hbWUgb2YgdGhlIGxhdGVzdCBPYnNpZGlhbiByZWxlYXNlJykpO1xufVxuXG5mdW5jdGlvbiBpc0JldGEodmVyc2lvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiB2ZXJzaW9uLmluY2x1ZGVzKFZlcnNpb25VcGRhdGVUeXBlLkJldGEpO1xufVxuXG5mdW5jdGlvbiB0b1NpbmdsZUxpbmUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBsaW5lcyA9IHN0ci5zcGxpdCgvXFxyP1xcbi8pLmZpbHRlcihCb29sZWFuKTtcbiAgcmV0dXJuIGxpbmVzLmpvaW4oJyAnKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdXBkYXRlVmVyc2lvbkluRmlsZXNGb3JQbHVnaW4obmV3VmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IG1hbmlmZXN0QmV0YUpzb25QYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFuaWZlc3RCZXRhSnNvbik7XG4gIGlmIChpc0JldGEobmV3VmVyc2lvbikpIHtcbiAgICBhd2FpdCBjcChcbiAgICAgIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbiksXG4gICAgICBtYW5pZmVzdEJldGFKc29uUGF0aCxcbiAgICAgIHsgZm9yY2U6IHRydWUgfVxuICAgICk7XG4gICAgYXdhaXQgZWRpdEpzb248TWFuaWZlc3Q+KE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0QmV0YUpzb24sIChtYW5pZmVzdCkgPT4ge1xuICAgICAgbWFuaWZlc3QudmVyc2lvbiA9IG5ld1ZlcnNpb247XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbGF0ZXN0T2JzaWRpYW5WZXJzaW9uID0gYXdhaXQgZ2V0TGF0ZXN0T2JzaWRpYW5WZXJzaW9uKCk7XG5cbiAgICBhd2FpdCBlZGl0SnNvbjxNYW5pZmVzdD4oT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuTWFuaWZlc3RKc29uLCAobWFuaWZlc3QpID0+IHtcbiAgICAgIG1hbmlmZXN0Lm1pbkFwcFZlcnNpb24gPSBsYXRlc3RPYnNpZGlhblZlcnNpb247XG4gICAgICBtYW5pZmVzdC52ZXJzaW9uID0gbmV3VmVyc2lvbjtcbiAgICB9KTtcblxuICAgIGF3YWl0IGVkaXRKc29uPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLlZlcnNpb25zSnNvbiwgKHZlcnNpb25zKSA9PiB7XG4gICAgICB2ZXJzaW9uc1tuZXdWZXJzaW9uXSA9IGxhdGVzdE9ic2lkaWFuVmVyc2lvbjtcbiAgICB9KTtcblxuICAgIGlmIChleGlzdHNTeW5jKG1hbmlmZXN0QmV0YUpzb25QYXRoKSkge1xuICAgICAgYXdhaXQgcm0obWFuaWZlc3RCZXRhSnNvblBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIGF3YWl0IGNvcHlVcGRhdGVkTWFuaWZlc3QoKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZUEsbUJBQStCO0FBQy9CLG1CQUFnQztBQUNoQyxxQ0FBd0M7QUFDeEMsa0JBQXFCO0FBQ3JCLG9CQUEyQjtBQUMzQixnQkFBNkI7QUFDN0Isa0JBQXlCO0FBQ3pCLHlCQU9PO0FBQ1AsaUJBS087QUFDUCxvQkFBdUI7QUFDdkIsdUNBQTBD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
|
@@ -47,14 +47,14 @@ export interface ObsidianReleasesJson {
|
|
47
47
|
* Creates a Git tag for the new version.
|
48
48
|
*
|
49
49
|
* @param newVersion - The new version number to use for the tag.
|
50
|
-
* @returns A
|
50
|
+
* @returns A {@link Promise} that resolves when the tag has been created.
|
51
51
|
*/
|
52
52
|
export declare function addGitTag(newVersion: string): Promise<void>;
|
53
53
|
/**
|
54
54
|
* Adds updated files to the Git staging area and commits them with the new version message.
|
55
55
|
*
|
56
56
|
* @param newVersion - The new version number used as the commit message.
|
57
|
-
* @returns A
|
57
|
+
* @returns A {@link Promise} that resolves when the files have been added and committed.
|
58
58
|
*/
|
59
59
|
export declare function addUpdatedFilesToGit(newVersion: string): Promise<void>;
|
60
60
|
/**
|
@@ -84,7 +84,7 @@ export declare function checkGitRepoClean(): Promise<void>;
|
|
84
84
|
/**
|
85
85
|
* Copies the updated manifest file to the distribution build directory.
|
86
86
|
*
|
87
|
-
* @returns A
|
87
|
+
* @returns A {@link Promise} that resolves when the copy operation is complete.
|
88
88
|
*/
|
89
89
|
export declare function copyUpdatedManifest(): Promise<void>;
|
90
90
|
/**
|
@@ -99,7 +99,7 @@ export declare function getNewVersion(versionUpdateType: string): Promise<string
|
|
99
99
|
* Retrieves the release notes for a specific version from the changelog.
|
100
100
|
*
|
101
101
|
* @param newVersion - The new version number for which to get the release notes.
|
102
|
-
* @returns A
|
102
|
+
* @returns A {@link Promise} that resolves to the release notes for the specified version.
|
103
103
|
*/
|
104
104
|
export declare function getReleaseNotes(newVersion: string): Promise<string>;
|
105
105
|
/**
|
@@ -112,7 +112,7 @@ export declare function getVersionUpdateType(versionUpdateType: string): Version
|
|
112
112
|
/**
|
113
113
|
* Pushes commits and tags to the remote Git repository.
|
114
114
|
*
|
115
|
-
* @returns A
|
115
|
+
* @returns A {@link Promise} that resolves when the push operation is complete.
|
116
116
|
*/
|
117
117
|
export declare function gitPush(): Promise<void>;
|
118
118
|
/**
|
@@ -122,7 +122,7 @@ export declare function gitPush(): Promise<void>;
|
|
122
122
|
*
|
123
123
|
* @param newVersion - The new version number for the release.
|
124
124
|
* @param isObsidianPlugin - A boolean indicating if the project is an Obsidian plugin.
|
125
|
-
* @returns A
|
125
|
+
* @returns A {@link Promise} that resolves when the release has been published.
|
126
126
|
*/
|
127
127
|
export declare function publishGitHubRelease(newVersion: string, isObsidianPlugin: boolean): Promise<void>;
|
128
128
|
/**
|
@@ -132,7 +132,7 @@ export declare function publishGitHubRelease(newVersion: string, isObsidianPlugi
|
|
132
132
|
* and prompts the user to review the changes.
|
133
133
|
*
|
134
134
|
* @param newVersion - The new version number to be added to the changelog.
|
135
|
-
* @returns A
|
135
|
+
* @returns A {@link Promise} that resolves when the changelog update is complete.
|
136
136
|
*/
|
137
137
|
export declare function updateChangelog(newVersion: string): Promise<void>;
|
138
138
|
/**
|
@@ -150,7 +150,7 @@ export declare function updateChangelog(newVersion: string): Promise<void>;
|
|
150
150
|
*
|
151
151
|
* @param versionUpdateType - The type of version update to perform (major, minor, patch, beta, or x.y.z[-beta:u]).
|
152
152
|
* @param prepareGitHubRelease - A callback function to prepare the GitHub release.
|
153
|
-
* @returns A
|
153
|
+
* @returns A {@link Promise} that resolves when the version update is complete.
|
154
154
|
*/
|
155
155
|
export declare function updateVersion(versionUpdateType?: string, prepareGitHubRelease?: (newVersion: string) => Promise<void>): Promise<void>;
|
156
156
|
/**
|
package/dist/lib/cjs/String.cjs
CHANGED
@@ -151,4 +151,4 @@ function unescape(str) {
|
|
151
151
|
trimStart,
|
152
152
|
unescape
|
153
153
|
});
|
154
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL1N0cmluZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gU3RyaW5nXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3Igc3RyaW5nIG9wZXJhdGlvbnMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBNYXliZVJldHVybiB9IGZyb20gJy4vVHlwZS50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlUHJvdmlkZXIgfSBmcm9tICcuL1ZhbHVlUHJvdmlkZXIudHMnO1xuXG5pbXBvcnQgeyB0aHJvd0V4cHJlc3Npb24gfSBmcm9tICcuL0Vycm9yLnRzJztcbmltcG9ydCB7IGVzY2FwZVJlZ0V4cCB9IGZyb20gJy4vUmVnRXhwLnRzJztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJy4vVmFsdWVQcm92aWRlci50cyc7XG5cbi8qKlxuICogQSBzeW5jaHJvbm91cy9hc3luY2hyb25vdXMgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgcmVwbGFjZW1lbnQgc3RyaW5ncywgb3IgYSBzdHJpbmcgdG8gcmVwbGFjZSB3aXRoLlxuICovXG5leHBvcnQgdHlwZSBBc3luY1JlcGxhY2VyPFJlcGxhY2VHcm91cEFyZ3MgZXh0ZW5kcyBzdHJpbmdbXT4gPSBWYWx1ZVByb3ZpZGVyPFN0cmluZ1JlcGxhY2VtZW50LCBbUmVwbGFjZUNvbW1vbkFyZ3MsIC4uLlJlcGxhY2VHcm91cEFyZ3NdPjtcblxuLyoqXG4gKiBDb21tb24gYXJndW1lbnRzIGZvciB0aGUgYHJlcGxhY2VBbGxgL2ByZXBsYWNlQWxsQXN5bmNgIGZ1bmN0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBsYWNlQ29tbW9uQXJncyB7XG4gIC8qKlxuICAgKiBUaGUgZ3JvdXBzIG9mIHRoZSBtYXRjaC5cbiAgICovXG4gIGdyb3VwczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIG9mZnNldCBvZiB0aGUgbWF0Y2guXG4gICAqL1xuICBvZmZzZXQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBvZiB0aGUgbWF0Y2guXG4gICAqL1xuICBzb3VyY2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN1YnN0cmluZyBvZiB0aGUgbWF0Y2guXG4gICAqL1xuICBzdWJzdHJpbmc6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIHN5bmNocm9ub3VzIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIHJlcGxhY2VtZW50IHN0cmluZ3MsIG9yIGEgc3RyaW5nIHRvIHJlcGxhY2Ugd2l0aC5cbiAqL1xuZXhwb3J0IHR5cGUgUmVwbGFjZXI8UmVwbGFjZUdyb3VwQXJncyBleHRlbmRzIHN0cmluZ1tdPiA9ICgoLi4uYXJnczogW1JlcGxhY2VDb21tb25BcmdzLCAuLi5SZXBsYWNlR3JvdXBBcmdzXSkgPT4gU3RyaW5nUmVwbGFjZW1lbnQpIHwgU3RyaW5nUmVwbGFjZW1lbnQ7XG5cbnR5cGUgU3RyaW5nUmVwbGFjZW1lbnQgPSBNYXliZVJldHVybjxzdHJpbmc+O1xuXG4vKipcbiAqIE1hcHBpbmcgb2Ygc3BlY2lhbCBjaGFyYWN0ZXJzIHRvIHRoZWlyIGVzY2FwZWQgY291bnRlcnBhcnRzLlxuICovXG5jb25zdCBFU0NBUEVfTUFQOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAnXFxuJzogJ1xcXFxuJyxcbiAgJ1xccic6ICdcXFxccicsXG4gICdcXHQnOiAnXFxcXHQnLFxuICAnXFxiJzogJ1xcXFxiJyxcbiAgJ1xcZic6ICdcXFxcZicsXG4gICdcXCcnOiAnXFxcXFxcJycsXG4gICdcIic6ICdcXFxcXCInLFxuICAnXFxcXCc6ICdcXFxcXFxcXCdcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogTWFwcGluZyBvZiBlc2NhcGVkIHNwZWNpYWwgY2hhcmFjdGVycyB0byB0aGVpciB1bmVzY2FwZWQgY291bnRlcnBhcnRzLlxuICovXG5jb25zdCBVTkVTQ0FQRV9NQVA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbmZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKEVTQ0FQRV9NQVApKSB7XG4gIFVORVNDQVBFX01BUFt2YWx1ZV0gPSBrZXk7XG59XG5cbi8qKlxuICogRW5zdXJlcyB0aGF0IGEgc3RyaW5nIGVuZHMgd2l0aCB0aGUgc3BlY2lmaWVkIHN1ZmZpeCwgYWRkaW5nIGl0IGlmIG5lY2Vzc2FyeS5cbiAqXG4gKiBAcGFyYW0gc3RyIC0gVGhlIHN0cmluZyB0byBjaGVjay5cbiAqIEBwYXJhbSBzdWZmaXggLSBUaGUgc3VmZml4IHRvIGVuc3VyZS5cbiAqIEByZXR1cm5zIFRoZSBzdHJpbmcgdGhhdCBlbmRzIHdpdGggdGhlIHN1ZmZpeC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZUVuZHNXaXRoKHN0cjogc3RyaW5nLCBzdWZmaXg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzdHIuZW5kc1dpdGgoc3VmZml4KSA/IHN0ciA6IHN0ciArIHN1ZmZpeDtcbn1cblxuLyoqXG4gKiBFbnN1cmVzIHRoYXQgYSBzdHJpbmcgc3RhcnRzIHdpdGggdGhlIHNwZWNpZmllZCBwcmVmaXgsIGFkZGluZyBpdCBpZiBuZWNlc3NhcnkuXG4gKlxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gY2hlY2suXG4gKiBAcGFyYW0gcHJlZml4IC0gVGhlIHByZWZpeCB0byBlbnN1cmUuXG4gKiBAcmV0dXJucyBUaGUgc3RyaW5nIHRoYXQgc3RhcnRzIHdpdGggdGhlIHByZWZpeC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVN0YXJ0c1dpdGgoc3RyOiBzdHJpbmcsIHByZWZpeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0ci5zdGFydHNXaXRoKHByZWZpeCkgPyBzdHIgOiBwcmVmaXggKyBzdHI7XG59XG5cbi8qKlxuICogRXNjYXBlcyBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gZXNjYXBlLlxuICogQHJldHVybnMgVGhlIGVzY2FwZWQgc3RyaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJlcGxhY2Uoc3RyLCBFU0NBUEVfTUFQKTtcbn1cblxuLyoqXG4gKiBJbnNlcnRzIGEgc3Vic3RyaW5nIGF0IGEgc3BlY2lmaWVkIHBvc2l0aW9uIGluIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIGluc2VydCB0aGUgc3Vic3RyaW5nIGludG8uXG4gKiBAcGFyYW0gc3Vic3RyaW5nIC0gVGhlIHN1YnN0cmluZyB0byBpbnNlcnQuXG4gKiBAcGFyYW0gc3RhcnRJbmRleCAtIFRoZSBpbmRleCB0byBpbnNlcnQgdGhlIHN1YnN0cmluZyBhdC5cbiAqIEBwYXJhbSBlbmRJbmRleCAtIFRoZSBpbmRleCB0byBlbmQgdGhlIHN1YnN0cmluZyBhdC5cbiAqIEByZXR1cm5zIFRoZSBtb2RpZmllZCBzdHJpbmcgd2l0aCB0aGUgc3Vic3RyaW5nIGluc2VydGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0QXQoc3RyOiBzdHJpbmcsIHN1YnN0cmluZzogc3RyaW5nLCBzdGFydEluZGV4OiBudW1iZXIsIGVuZEluZGV4PzogbnVtYmVyKTogc3RyaW5nIHtcbiAgZW5kSW5kZXggPz89IHN0YXJ0SW5kZXg7XG4gIHJldHVybiBzdHIuc2xpY2UoMCwgc3RhcnRJbmRleCkgKyBzdWJzdHJpbmcgKyBzdHIuc2xpY2UoZW5kSW5kZXgpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgc3RyaW5nIGludG8gYSB2YWxpZCBKYXZhU2NyaXB0IHZhcmlhYmxlIG5hbWUgYnkgcmVwbGFjaW5nIGludmFsaWQgY2hhcmFjdGVycyB3aXRoIHVuZGVyc2NvcmVzLlxuICpcbiAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBUaGUgdmFsaWQgdmFyaWFibGUgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VWYWxpZFZhcmlhYmxlTmFtZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXBsYWNlQWxsKHN0ciwgL1teYS16QS1aMC05X10vZywgJ18nKTtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIGEgc3RyaW5nIGJ5IGNvbnZlcnRpbmcgaXQgdG8gdGhlIE5GQyBmb3JtIGFuZCByZXBsYWNpbmcgbm9uLWJyZWFraW5nIHNwYWNlcyB3aXRoIHJlZ3VsYXIgc3BhY2VzLlxuICpcbiAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIG5vcm1hbGl6ZS5cbiAqIEByZXR1cm5zIFRoZSBub3JtYWxpemVkIHN0cmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXBsYWNlQWxsKHN0ciwgL1xcdTAwQTB8XFx1MjAyRi9nLCAnICcpLm5vcm1hbGl6ZSgnTkZDJyk7XG59XG5cbi8qKlxuICogUmVwbGFjZXMgb2NjdXJyZW5jZXMgb2Ygc3RyaW5ncyBpbiBhIGdpdmVuIHN0cmluZyBiYXNlZCBvbiBhIHJlcGxhY2VtZW50cyBtYXAuXG4gKlxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gcGVyZm9ybSByZXBsYWNlbWVudHMgb24uXG4gKiBAcGFyYW0gcmVwbGFjZW1lbnRzTWFwIC0gQW4gb2JqZWN0IG1hcHBpbmcgc3RyaW5ncyB0byB0aGVpciByZXBsYWNlbWVudCB2YWx1ZXMuXG4gKiBAcmV0dXJucyBUaGUgbW9kaWZpZWQgc3RyaW5nIHdpdGggcmVwbGFjZW1lbnRzIGFwcGxpZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlKHN0cjogc3RyaW5nLCByZXBsYWNlbWVudHNNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcge1xuICBjb25zdCByZWdFeHAgPSBuZXcgUmVnRXhwKE9iamVjdC5rZXlzKHJlcGxhY2VtZW50c01hcCkubWFwKChzb3VyY2UpID0+IGVzY2FwZVJlZ0V4cChzb3VyY2UpKS5qb2luKCd8JyksICdnJyk7XG4gIHJldHVybiByZXBsYWNlQWxsKHN0ciwgcmVnRXhwLCAoeyBzdWJzdHJpbmc6IHNvdXJjZSB9KSA9PiByZXBsYWNlbWVudHNNYXBbc291cmNlXSA/PyB0aHJvd0V4cHJlc3Npb24obmV3IEVycm9yKGBVbmV4cGVjdGVkIHJlcGxhY2VtZW50IHNvdXJjZTogJHtzb3VyY2V9YCkpKTtcbn1cblxuLyoqXG4gKiBSZXBsYWNlcyBhbGwgb2NjdXJyZW5jZXMgb2YgYSBzZWFyY2ggc3RyaW5nIG9yIHBhdHRlcm4gd2l0aCB0aGUgcmVzdWx0cyBvZiBhbiByZXBsYWNlciBmdW5jdGlvbi5cbiAqXG4gKiBAdHlwZVBhcmFtIFJlcGxhY2VHcm91cEFyZ3MgLSBUaGUgdHlwZSBvZiBhZGRpdGlvbmFsIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIHJlcGxhY2VyIGZ1bmN0aW9uLlxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgaW4gd2hpY2ggdG8gcGVyZm9ybSByZXBsYWNlbWVudHMuXG4gKiBAcGFyYW0gc2VhcmNoVmFsdWUgLSBUaGUgc3RyaW5nIG9yIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBzZWFyY2ggZm9yLlxuICogQHBhcmFtIHJlcGxhY2VyIC0gQSByZXBsYWNlciBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyByZXBsYWNlbWVudCBzdHJpbmdzLCBvciBhIHN0cmluZyB0byByZXBsYWNlIHdpdGguXG4gKiBAcmV0dXJucyBUaGUgc3RyaW5nIHdpdGggYWxsIHJlcGxhY2VtZW50cyBtYWRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZUFsbDxSZXBsYWNlR3JvdXBBcmdzIGV4dGVuZHMgc3RyaW5nW10+KFxuICBzdHI6IHN0cmluZyxcbiAgc2VhcmNoVmFsdWU6IFJlZ0V4cCB8IHN0cmluZyxcbiAgcmVwbGFjZXI6IFJlcGxhY2VyPFJlcGxhY2VHcm91cEFyZ3M+XG4pOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIHJlcGxhY2VyID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBzdHI7XG4gIH1cblxuICBpZiAoc2VhcmNoVmFsdWUgaW5zdGFuY2VvZiBSZWdFeHAgJiYgIXNlYXJjaFZhbHVlLmdsb2JhbCkge1xuICAgIHNlYXJjaFZhbHVlID0gbmV3IFJlZ0V4cChzZWFyY2hWYWx1ZS5zb3VyY2UsIGAke3NlYXJjaFZhbHVlLmZsYWdzfWdgKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgcmVwbGFjZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlQWxsKHNlYXJjaFZhbHVlLCByZXBsYWNlcik7XG4gIH1cblxuICByZXR1cm4gc3RyLnJlcGxhY2VBbGwoc2VhcmNoVmFsdWUsIChzdWJzdHJpbmc6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gICAgY29uc3QgU09VUkNFX0lOREVYX09GRlNFVF9GT1JfR1JPVVBfQVJHID0gMjtcbiAgICBjb25zdCBoYXNHcm91cHNBcmcgPSB0eXBlb2YgYXJncy5hdCgtMSkgPT09ICdvYmplY3QnO1xuICAgIGNvbnN0IHNvdXJjZUluZGV4ID0gaGFzR3JvdXBzQXJnID8gYXJncy5sZW5ndGggLSBTT1VSQ0VfSU5ERVhfT0ZGU0VUX0ZPUl9HUk9VUF9BUkcgOiBhcmdzLmxlbmd0aCAtIDE7XG5cbiAgICBjb25zdCBjb21tb25BcmdzOiBSZXBsYWNlQ29tbW9uQXJncyA9IHtcbiAgICAgIGdyb3VwczogaGFzR3JvdXBzQXJnID8gYXJncy5hdCgtMSkgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPiA6IHVuZGVmaW5lZCxcbiAgICAgIG9mZnNldDogYXJncy5hdChzb3VyY2VJbmRleCAtIDEpIGFzIG51bWJlcixcbiAgICAgIHNvdXJjZTogYXJncy5hdChzb3VyY2VJbmRleCkgYXMgc3RyaW5nLFxuICAgICAgc3Vic3RyaW5nXG4gICAgfTtcblxuICAgIGNvbnN0IGdyb3VwQXJncyA9IGFyZ3Muc2xpY2UoMCwgc291cmNlSW5kZXggLSAxKSBhcyBSZXBsYWNlR3JvdXBBcmdzO1xuICAgIHJldHVybiAocmVwbGFjZXIoY29tbW9uQXJncywgLi4uZ3JvdXBBcmdzKSBhcyBzdHJpbmcgfCB1bmRlZmluZWQpID8/IGNvbW1vbkFyZ3Muc3Vic3RyaW5nO1xuICB9KTtcbn1cblxuLyoqXG4gKiBBc3luY2hyb25vdXNseSByZXBsYWNlcyBhbGwgb2NjdXJyZW5jZXMgb2YgYSBzZWFyY2ggc3RyaW5nIG9yIHBhdHRlcm4gd2l0aCB0aGUgcmVzdWx0cyBvZiBhbiBhc3luY2hyb25vdXMgcmVwbGFjZXIgZnVuY3Rpb24uXG4gKlxuICogQHR5cGVQYXJhbSBSZXBsYWNlR3JvdXBBcmdzIC0gVGhlIHR5cGUgb2YgYWRkaXRpb25hbCBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSByZXBsYWNlciBmdW5jdGlvbi5cbiAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIGluIHdoaWNoIHRvIHBlcmZvcm0gcmVwbGFjZW1lbnRzLlxuICogQHBhcmFtIHNlYXJjaFZhbHVlIC0gVGhlIHN0cmluZyBvciByZWd1bGFyIGV4cHJlc3Npb24gdG8gc2VhcmNoIGZvci5cbiAqIEBwYXJhbSByZXBsYWNlciAtIEEgc3luY2hyb25vdXMvYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIHJlcGxhY2VtZW50IHN0cmluZ3MsIG9yIGEgc3RyaW5nIHRvIHJlcGxhY2Ugd2l0aC5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBzdHJpbmcgd2l0aCBhbGwgcmVwbGFjZW1lbnRzIG1hZGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXBsYWNlQWxsQXN5bmM8UmVwbGFjZUdyb3VwQXJncyBleHRlbmRzIHN0cmluZ1tdPihcbiAgc3RyOiBzdHJpbmcsXG4gIHNlYXJjaFZhbHVlOiBSZWdFeHAgfCBzdHJpbmcsXG4gIHJlcGxhY2VyOiBBc3luY1JlcGxhY2VyPFJlcGxhY2VHcm91cEFyZ3M+XG4pOiBQcm9taXNlPHN0cmluZz4ge1xuICBpZiAodHlwZW9mIHJlcGxhY2VyID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiByZXBsYWNlQWxsKHN0ciwgc2VhcmNoVmFsdWUsIHJlcGxhY2VyKTtcbiAgfVxuXG4gIGNvbnN0IHJlcGxhY2VtZW50UHJvbWlzZXM6IFByb21pc2U8U3RyaW5nUmVwbGFjZW1lbnQ+W10gPSBbXTtcblxuICByZXBsYWNlQWxsPFJlcGxhY2VHcm91cEFyZ3M+KHN0ciwgc2VhcmNoVmFsdWUsIChjb21tb25BcmdzLCAuLi5ncm91cEFyZ3MpID0+IHtcbiAgICByZXBsYWNlbWVudFByb21pc2VzLnB1c2gocmVzb2x2ZVZhbHVlKHJlcGxhY2VyLCBjb21tb25BcmdzLCAuLi5ncm91cEFyZ3MpKTtcbiAgICByZXR1cm4gJyc7XG4gIH0pO1xuXG4gIGNvbnN0IHJlcGxhY2VtZW50cyA9IGF3YWl0IFByb21pc2UuYWxsKHJlcGxhY2VtZW50UHJvbWlzZXMpO1xuICByZXR1cm4gcmVwbGFjZUFsbChzdHIsIHNlYXJjaFZhbHVlLCAoYXJncyk6IHN0cmluZyA9PiByZXBsYWNlbWVudHMuc2hpZnQoKSA/PyBhcmdzLnN1YnN0cmluZyk7XG59XG5cbi8qKlxuICogVHJpbXMgdGhlIHNwZWNpZmllZCBzdWZmaXggZnJvbSB0aGUgZW5kIG9mIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIHRyaW0uXG4gKiBAcGFyYW0gc3VmZml4IC0gVGhlIHN1ZmZpeCB0byByZW1vdmUgZnJvbSB0aGUgZW5kIG9mIHRoZSBzdHJpbmcuXG4gKiBAcGFyYW0gc2hvdWxkVmFsaWRhdGUgLSBJZiB0cnVlLCB0aHJvd3MgYW4gZXJyb3IgaWYgdGhlIHN0cmluZyBkb2VzIG5vdCBlbmQgd2l0aCB0aGUgc3VmZml4LlxuICogQHJldHVybnMgVGhlIHRyaW1tZWQgc3RyaW5nLlxuICogQHRocm93cyBJZiBgdmFsaWRhdGVgIGlzIHRydWUgYW5kIHRoZSBzdHJpbmcgZG9lcyBub3QgZW5kIHdpdGggdGhlIHN1ZmZpeC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyaW1FbmQoc3RyOiBzdHJpbmcsIHN1ZmZpeDogc3RyaW5nLCBzaG91bGRWYWxpZGF0ZT86IGJvb2xlYW4pOiBzdHJpbmcge1xuICBpZiAoc3RyLmVuZHNXaXRoKHN1ZmZpeCkpIHtcbiAgICByZXR1cm4gc3RyLnNsaWNlKDAsIC1zdWZmaXgubGVuZ3RoKTtcbiAgfVxuXG4gIGlmIChzaG91bGRWYWxpZGF0ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgU3RyaW5nICR7c3RyfSBkb2VzIG5vdCBlbmQgd2l0aCBzdWZmaXggJHtzdWZmaXh9YCk7XG4gIH1cblxuICByZXR1cm4gc3RyO1xufVxuXG4vKipcbiAqIFRyaW1zIHRoZSBzcGVjaWZpZWQgcHJlZml4IGZyb20gdGhlIHN0YXJ0IG9mIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIHRyaW0uXG4gKiBAcGFyYW0gcHJlZml4IC0gVGhlIHByZWZpeCB0byByZW1vdmUgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHN0cmluZy5cbiAqIEBwYXJhbSB2YWxpZGF0ZSAtIElmIHRydWUsIHRocm93cyBhbiBlcnJvciBpZiB0aGUgc3RyaW5nIGRvZXMgbm90IHN0YXJ0IHdpdGggdGhlIHByZWZpeC5cbiAqIEByZXR1cm5zIFRoZSB0cmltbWVkIHN0cmluZy5cbiAqIEB0aHJvd3MgSWYgYHZhbGlkYXRlYCBpcyB0cnVlIGFuZCB0aGUgc3RyaW5nIGRvZXMgbm90IHN0YXJ0IHdpdGggdGhlIHByZWZpeC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyaW1TdGFydChzdHI6IHN0cmluZywgcHJlZml4OiBzdHJpbmcsIHZhbGlkYXRlPzogYm9vbGVhbik6IHN0cmluZyB7XG4gIGlmIChzdHIuc3RhcnRzV2l0aChwcmVmaXgpKSB7XG4gICAgcmV0dXJuIHN0ci5zbGljZShwcmVmaXgubGVuZ3RoKTtcbiAgfVxuXG4gIGlmICh2YWxpZGF0ZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgU3RyaW5nICR7c3RyfSBkb2VzIG5vdCBzdGFydCB3aXRoIHByZWZpeCAke3ByZWZpeH1gKTtcbiAgfVxuXG4gIHJldHVybiBzdHI7XG59XG5cbi8qKlxuICogVW5lc2NhcGVzIGEgc3RyaW5nIGJ5IHJlcGxhY2luZyBlc2NhcGUgc2VxdWVuY2VzIHdpdGggdGhlaXIgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJzLlxuICpcbiAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIHVuZXNjYXBlLlxuICogQHJldHVybnMgVGhlIHVuZXNjYXBlZCBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bmVzY2FwZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXBsYWNlKHN0ciwgVU5FU0NBUEVfTUFQKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBLG1CQUFnQztBQUNoQyxvQkFBNkI7QUFDN0IsMkJBQTZCO0FBMEM3QixNQUFNLGFBQXFDO0FBQUEsRUFDekMsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sS0FBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLEVBQ04sS0FBTTtBQUFBLEVBQ04sS0FBSztBQUFBLEVBQ0wsTUFBTTtBQUNSO0FBS0EsTUFBTSxlQUF1QyxDQUFDO0FBQzlDLFdBQVcsQ0FBQyxLQUFLLEtBQUssS0FBSyxPQUFPLFFBQVEsVUFBVSxHQUFHO0FBQ3JELGVBQWEsS0FBSyxJQUFJO0FBQ3hCO0FBU08sU0FBUyxlQUFlLEtBQWEsUUFBd0I7QUFDbEUsU0FBTyxJQUFJLFNBQVMsTUFBTSxJQUFJLE1BQU0sTUFBTTtBQUM1QztB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
|
154
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL1N0cmluZy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb24gU3RyaW5nXG4gKiBDb250YWlucyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3Igc3RyaW5nIG9wZXJhdGlvbnMuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBNYXliZVJldHVybiB9IGZyb20gJy4vVHlwZS50cyc7XG5pbXBvcnQgdHlwZSB7IFZhbHVlUHJvdmlkZXIgfSBmcm9tICcuL1ZhbHVlUHJvdmlkZXIudHMnO1xuXG5pbXBvcnQgeyB0aHJvd0V4cHJlc3Npb24gfSBmcm9tICcuL0Vycm9yLnRzJztcbmltcG9ydCB7IGVzY2FwZVJlZ0V4cCB9IGZyb20gJy4vUmVnRXhwLnRzJztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJy4vVmFsdWVQcm92aWRlci50cyc7XG5cbi8qKlxuICogQSBzeW5jaHJvbm91cy9hc3luY2hyb25vdXMgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgcmVwbGFjZW1lbnQgc3RyaW5ncywgb3IgYSBzdHJpbmcgdG8gcmVwbGFjZSB3aXRoLlxuICovXG5leHBvcnQgdHlwZSBBc3luY1JlcGxhY2VyPFJlcGxhY2VHcm91cEFyZ3MgZXh0ZW5kcyBzdHJpbmdbXT4gPSBWYWx1ZVByb3ZpZGVyPFN0cmluZ1JlcGxhY2VtZW50LCBbUmVwbGFjZUNvbW1vbkFyZ3MsIC4uLlJlcGxhY2VHcm91cEFyZ3NdPjtcblxuLyoqXG4gKiBDb21tb24gYXJndW1lbnRzIGZvciB0aGUgYHJlcGxhY2VBbGxgL2ByZXBsYWNlQWxsQXN5bmNgIGZ1bmN0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBsYWNlQ29tbW9uQXJncyB7XG4gIC8qKlxuICAgKiBUaGUgZ3JvdXBzIG9mIHRoZSBtYXRjaC5cbiAgICovXG4gIGdyb3VwczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIG9mZnNldCBvZiB0aGUgbWF0Y2guXG4gICAqL1xuICBvZmZzZXQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBvZiB0aGUgbWF0Y2guXG4gICAqL1xuICBzb3VyY2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN1YnN0cmluZyBvZiB0aGUgbWF0Y2guXG4gICAqL1xuICBzdWJzdHJpbmc6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIHN5bmNocm9ub3VzIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIHJlcGxhY2VtZW50IHN0cmluZ3MsIG9yIGEgc3RyaW5nIHRvIHJlcGxhY2Ugd2l0aC5cbiAqL1xuZXhwb3J0IHR5cGUgUmVwbGFjZXI8UmVwbGFjZUdyb3VwQXJncyBleHRlbmRzIHN0cmluZ1tdPiA9ICgoLi4uYXJnczogW1JlcGxhY2VDb21tb25BcmdzLCAuLi5SZXBsYWNlR3JvdXBBcmdzXSkgPT4gU3RyaW5nUmVwbGFjZW1lbnQpIHwgU3RyaW5nUmVwbGFjZW1lbnQ7XG5cbnR5cGUgU3RyaW5nUmVwbGFjZW1lbnQgPSBNYXliZVJldHVybjxzdHJpbmc+O1xuXG4vKipcbiAqIE1hcHBpbmcgb2Ygc3BlY2lhbCBjaGFyYWN0ZXJzIHRvIHRoZWlyIGVzY2FwZWQgY291bnRlcnBhcnRzLlxuICovXG5jb25zdCBFU0NBUEVfTUFQOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAnXFxuJzogJ1xcXFxuJyxcbiAgJ1xccic6ICdcXFxccicsXG4gICdcXHQnOiAnXFxcXHQnLFxuICAnXFxiJzogJ1xcXFxiJyxcbiAgJ1xcZic6ICdcXFxcZicsXG4gICdcXCcnOiAnXFxcXFxcJycsXG4gICdcIic6ICdcXFxcXCInLFxuICAnXFxcXCc6ICdcXFxcXFxcXCdcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogTWFwcGluZyBvZiBlc2NhcGVkIHNwZWNpYWwgY2hhcmFjdGVycyB0byB0aGVpciB1bmVzY2FwZWQgY291bnRlcnBhcnRzLlxuICovXG5jb25zdCBVTkVTQ0FQRV9NQVA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbmZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKEVTQ0FQRV9NQVApKSB7XG4gIFVORVNDQVBFX01BUFt2YWx1ZV0gPSBrZXk7XG59XG5cbi8qKlxuICogRW5zdXJlcyB0aGF0IGEgc3RyaW5nIGVuZHMgd2l0aCB0aGUgc3BlY2lmaWVkIHN1ZmZpeCwgYWRkaW5nIGl0IGlmIG5lY2Vzc2FyeS5cbiAqXG4gKiBAcGFyYW0gc3RyIC0gVGhlIHN0cmluZyB0byBjaGVjay5cbiAqIEBwYXJhbSBzdWZmaXggLSBUaGUgc3VmZml4IHRvIGVuc3VyZS5cbiAqIEByZXR1cm5zIFRoZSBzdHJpbmcgdGhhdCBlbmRzIHdpdGggdGhlIHN1ZmZpeC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZUVuZHNXaXRoKHN0cjogc3RyaW5nLCBzdWZmaXg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzdHIuZW5kc1dpdGgoc3VmZml4KSA/IHN0ciA6IHN0ciArIHN1ZmZpeDtcbn1cblxuLyoqXG4gKiBFbnN1cmVzIHRoYXQgYSBzdHJpbmcgc3RhcnRzIHdpdGggdGhlIHNwZWNpZmllZCBwcmVmaXgsIGFkZGluZyBpdCBpZiBuZWNlc3NhcnkuXG4gKlxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gY2hlY2suXG4gKiBAcGFyYW0gcHJlZml4IC0gVGhlIHByZWZpeCB0byBlbnN1cmUuXG4gKiBAcmV0dXJucyBUaGUgc3RyaW5nIHRoYXQgc3RhcnRzIHdpdGggdGhlIHByZWZpeC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVN0YXJ0c1dpdGgoc3RyOiBzdHJpbmcsIHByZWZpeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0ci5zdGFydHNXaXRoKHByZWZpeCkgPyBzdHIgOiBwcmVmaXggKyBzdHI7XG59XG5cbi8qKlxuICogRXNjYXBlcyBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gZXNjYXBlLlxuICogQHJldHVybnMgVGhlIGVzY2FwZWQgc3RyaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJlcGxhY2Uoc3RyLCBFU0NBUEVfTUFQKTtcbn1cblxuLyoqXG4gKiBJbnNlcnRzIGEgc3Vic3RyaW5nIGF0IGEgc3BlY2lmaWVkIHBvc2l0aW9uIGluIGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIGluc2VydCB0aGUgc3Vic3RyaW5nIGludG8uXG4gKiBAcGFyYW0gc3Vic3RyaW5nIC0gVGhlIHN1YnN0cmluZyB0byBpbnNlcnQuXG4gKiBAcGFyYW0gc3RhcnRJbmRleCAtIFRoZSBpbmRleCB0byBpbnNlcnQgdGhlIHN1YnN0cmluZyBhdC5cbiAqIEBwYXJhbSBlbmRJbmRleCAtIFRoZSBpbmRleCB0byBlbmQgdGhlIHN1YnN0cmluZyBhdC5cbiAqIEByZXR1cm5zIFRoZSBtb2RpZmllZCBzdHJpbmcgd2l0aCB0aGUgc3Vic3RyaW5nIGluc2VydGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0QXQoc3RyOiBzdHJpbmcsIHN1YnN0cmluZzogc3RyaW5nLCBzdGFydEluZGV4OiBudW1iZXIsIGVuZEluZGV4PzogbnVtYmVyKTogc3RyaW5nIHtcbiAgZW5kSW5kZXggPz89IHN0YXJ0SW5kZXg7XG4gIHJldHVybiBzdHIuc2xpY2UoMCwgc3RhcnRJbmRleCkgKyBzdWJzdHJpbmcgKyBzdHIuc2xpY2UoZW5kSW5kZXgpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgc3RyaW5nIGludG8gYSB2YWxpZCBKYXZhU2NyaXB0IHZhcmlhYmxlIG5hbWUgYnkgcmVwbGFjaW5nIGludmFsaWQgY2hhcmFjdGVycyB3aXRoIHVuZGVyc2NvcmVzLlxuICpcbiAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyBUaGUgdmFsaWQgdmFyaWFibGUgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VWYWxpZFZhcmlhYmxlTmFtZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXBsYWNlQWxsKHN0ciwgL1teYS16QS1aMC05X10vZywgJ18nKTtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIGEgc3RyaW5nIGJ5IGNvbnZlcnRpbmcgaXQgdG8gdGhlIE5GQyBmb3JtIGFuZCByZXBsYWNpbmcgbm9uLWJyZWFraW5nIHNwYWNlcyB3aXRoIHJlZ3VsYXIgc3BhY2VzLlxuICpcbiAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIG5vcm1hbGl6ZS5cbiAqIEByZXR1cm5zIFRoZSBub3JtYWxpemVkIHN0cmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiByZXBsYWNlQWxsKHN0ciwgL1xcdTAwQTB8XFx1MjAyRi9nLCAnICcpLm5vcm1hbGl6ZSgnTkZDJyk7XG59XG5cbi8qKlxuICogUmVwbGFjZXMgb2NjdXJyZW5jZXMgb2Ygc3RyaW5ncyBpbiBhIGdpdmVuIHN0cmluZyBiYXNlZCBvbiBhIHJlcGxhY2VtZW50cyBtYXAuXG4gKlxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gcGVyZm9ybSByZXBsYWNlbWVudHMgb24uXG4gKiBAcGFyYW0gcmVwbGFjZW1lbnRzTWFwIC0gQW4gb2JqZWN0IG1hcHBpbmcgc3RyaW5ncyB0byB0aGVpciByZXBsYWNlbWVudCB2YWx1ZXMuXG4gKiBAcmV0dXJucyBUaGUgbW9kaWZpZWQgc3RyaW5nIHdpdGggcmVwbGFjZW1lbnRzIGFwcGxpZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlKHN0cjogc3RyaW5nLCByZXBsYWNlbWVudHNNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcge1xuICBjb25zdCByZWdFeHAgPSBuZXcgUmVnRXhwKE9iamVjdC5rZXlzKHJlcGxhY2VtZW50c01hcCkubWFwKChzb3VyY2UpID0+IGVzY2FwZVJlZ0V4cChzb3VyY2UpKS5qb2luKCd8JyksICdnJyk7XG4gIHJldHVybiByZXBsYWNlQWxsKHN0ciwgcmVnRXhwLCAoeyBzdWJzdHJpbmc6IHNvdXJjZSB9KSA9PiByZXBsYWNlbWVudHNNYXBbc291cmNlXSA/PyB0aHJvd0V4cHJlc3Npb24obmV3IEVycm9yKGBVbmV4cGVjdGVkIHJlcGxhY2VtZW50IHNvdXJjZTogJHtzb3VyY2V9YCkpKTtcbn1cblxuLyoqXG4gKiBSZXBsYWNlcyBhbGwgb2NjdXJyZW5jZXMgb2YgYSBzZWFyY2ggc3RyaW5nIG9yIHBhdHRlcm4gd2l0aCB0aGUgcmVzdWx0cyBvZiBhbiByZXBsYWNlciBmdW5jdGlvbi5cbiAqXG4gKiBAdHlwZVBhcmFtIFJlcGxhY2VHcm91cEFyZ3MgLSBUaGUgdHlwZSBvZiBhZGRpdGlvbmFsIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIHJlcGxhY2VyIGZ1bmN0aW9uLlxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgaW4gd2hpY2ggdG8gcGVyZm9ybSByZXBsYWNlbWVudHMuXG4gKiBAcGFyYW0gc2VhcmNoVmFsdWUgLSBUaGUgc3RyaW5nIG9yIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBzZWFyY2ggZm9yLlxuICogQHBhcmFtIHJlcGxhY2VyIC0gQSByZXBsYWNlciBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyByZXBsYWNlbWVudCBzdHJpbmdzLCBvciBhIHN0cmluZyB0byByZXBsYWNlIHdpdGguXG4gKiBAcmV0dXJucyBUaGUgc3RyaW5nIHdpdGggYWxsIHJlcGxhY2VtZW50cyBtYWRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZUFsbDxSZXBsYWNlR3JvdXBBcmdzIGV4dGVuZHMgc3RyaW5nW10+KFxuICBzdHI6IHN0cmluZyxcbiAgc2VhcmNoVmFsdWU6IFJlZ0V4cCB8IHN0cmluZyxcbiAgcmVwbGFjZXI6IFJlcGxhY2VyPFJlcGxhY2VHcm91cEFyZ3M+XG4pOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIHJlcGxhY2VyID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBzdHI7XG4gIH1cblxuICBpZiAoc2VhcmNoVmFsdWUgaW5zdGFuY2VvZiBSZWdFeHAgJiYgIXNlYXJjaFZhbHVlLmdsb2JhbCkge1xuICAgIHNlYXJjaFZhbHVlID0gbmV3IFJlZ0V4cChzZWFyY2hWYWx1ZS5zb3VyY2UsIGAke3NlYXJjaFZhbHVlLmZsYWdzfWdgKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgcmVwbGFjZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlQWxsKHNlYXJjaFZhbHVlLCByZXBsYWNlcik7XG4gIH1cblxuICByZXR1cm4gc3RyLnJlcGxhY2VBbGwoc2VhcmNoVmFsdWUsIChzdWJzdHJpbmc6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gICAgY29uc3QgU09VUkNFX0lOREVYX09GRlNFVF9GT1JfR1JPVVBfQVJHID0gMjtcbiAgICBjb25zdCBoYXNHcm91cHNBcmcgPSB0eXBlb2YgYXJncy5hdCgtMSkgPT09ICdvYmplY3QnO1xuICAgIGNvbnN0IHNvdXJjZUluZGV4ID0gaGFzR3JvdXBzQXJnID8gYXJncy5sZW5ndGggLSBTT1VSQ0VfSU5ERVhfT0ZGU0VUX0ZPUl9HUk9VUF9BUkcgOiBhcmdzLmxlbmd0aCAtIDE7XG5cbiAgICBjb25zdCBjb21tb25BcmdzOiBSZXBsYWNlQ29tbW9uQXJncyA9IHtcbiAgICAgIGdyb3VwczogaGFzR3JvdXBzQXJnID8gYXJncy5hdCgtMSkgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPiA6IHVuZGVmaW5lZCxcbiAgICAgIG9mZnNldDogYXJncy5hdChzb3VyY2VJbmRleCAtIDEpIGFzIG51bWJlcixcbiAgICAgIHNvdXJjZTogYXJncy5hdChzb3VyY2VJbmRleCkgYXMgc3RyaW5nLFxuICAgICAgc3Vic3RyaW5nXG4gICAgfTtcblxuICAgIGNvbnN0IGdyb3VwQXJncyA9IGFyZ3Muc2xpY2UoMCwgc291cmNlSW5kZXggLSAxKSBhcyBSZXBsYWNlR3JvdXBBcmdzO1xuICAgIHJldHVybiAocmVwbGFjZXIoY29tbW9uQXJncywgLi4uZ3JvdXBBcmdzKSBhcyBzdHJpbmcgfCB1bmRlZmluZWQpID8/IGNvbW1vbkFyZ3Muc3Vic3RyaW5nO1xuICB9KTtcbn1cblxuLyoqXG4gKiBBc3luY2hyb25vdXNseSByZXBsYWNlcyBhbGwgb2NjdXJyZW5jZXMgb2YgYSBzZWFyY2ggc3RyaW5nIG9yIHBhdHRlcm4gd2l0aCB0aGUgcmVzdWx0cyBvZiBhbiBhc3luY2hyb25vdXMgcmVwbGFjZXIgZnVuY3Rpb24uXG4gKlxuICogQHR5cGVQYXJhbSBSZXBsYWNlR3JvdXBBcmdzIC0gVGhlIHR5cGUgb2YgYWRkaXRpb25hbCBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSByZXBsYWNlciBmdW5jdGlvbi5cbiAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIGluIHdoaWNoIHRvIHBlcmZvcm0gcmVwbGFjZW1lbnRzLlxuICogQHBhcmFtIHNlYXJjaFZhbHVlIC0gVGhlIHN0cmluZyBvciByZWd1bGFyIGV4cHJlc3Npb24gdG8gc2VhcmNoIGZvci5cbiAqIEBwYXJhbSByZXBsYWNlciAtIEEgc3luY2hyb25vdXMvYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIHJlcGxhY2VtZW50IHN0cmluZ3MsIG9yIGEgc3RyaW5nIHRvIHJlcGxhY2Ugd2l0aC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHN0cmluZyB3aXRoIGFsbCByZXBsYWNlbWVudHMgbWFkZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlcGxhY2VBbGxBc3luYzxSZXBsYWNlR3JvdXBBcmdzIGV4dGVuZHMgc3RyaW5nW10+KFxuICBzdHI6IHN0cmluZyxcbiAgc2VhcmNoVmFsdWU6IFJlZ0V4cCB8IHN0cmluZyxcbiAgcmVwbGFjZXI6IEFzeW5jUmVwbGFjZXI8UmVwbGFjZUdyb3VwQXJncz5cbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIGlmICh0eXBlb2YgcmVwbGFjZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHJlcGxhY2VBbGwoc3RyLCBzZWFyY2hWYWx1ZSwgcmVwbGFjZXIpO1xuICB9XG5cbiAgY29uc3QgcmVwbGFjZW1lbnRQcm9taXNlczogUHJvbWlzZTxTdHJpbmdSZXBsYWNlbWVudD5bXSA9IFtdO1xuXG4gIHJlcGxhY2VBbGw8UmVwbGFjZUdyb3VwQXJncz4oc3RyLCBzZWFyY2hWYWx1ZSwgKGNvbW1vbkFyZ3MsIC4uLmdyb3VwQXJncykgPT4ge1xuICAgIHJlcGxhY2VtZW50UHJvbWlzZXMucHVzaChyZXNvbHZlVmFsdWUocmVwbGFjZXIsIGNvbW1vbkFyZ3MsIC4uLmdyb3VwQXJncykpO1xuICAgIHJldHVybiAnJztcbiAgfSk7XG5cbiAgY29uc3QgcmVwbGFjZW1lbnRzID0gYXdhaXQgUHJvbWlzZS5hbGwocmVwbGFjZW1lbnRQcm9taXNlcyk7XG4gIHJldHVybiByZXBsYWNlQWxsKHN0ciwgc2VhcmNoVmFsdWUsIChhcmdzKTogc3RyaW5nID0+IHJlcGxhY2VtZW50cy5zaGlmdCgpID8/IGFyZ3Muc3Vic3RyaW5nKTtcbn1cblxuLyoqXG4gKiBUcmltcyB0aGUgc3BlY2lmaWVkIHN1ZmZpeCBmcm9tIHRoZSBlbmQgb2YgYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gdHJpbS5cbiAqIEBwYXJhbSBzdWZmaXggLSBUaGUgc3VmZml4IHRvIHJlbW92ZSBmcm9tIHRoZSBlbmQgb2YgdGhlIHN0cmluZy5cbiAqIEBwYXJhbSBzaG91bGRWYWxpZGF0ZSAtIElmIHRydWUsIHRocm93cyBhbiBlcnJvciBpZiB0aGUgc3RyaW5nIGRvZXMgbm90IGVuZCB3aXRoIHRoZSBzdWZmaXguXG4gKiBAcmV0dXJucyBUaGUgdHJpbW1lZCBzdHJpbmcuXG4gKiBAdGhyb3dzIElmIGB2YWxpZGF0ZWAgaXMgdHJ1ZSBhbmQgdGhlIHN0cmluZyBkb2VzIG5vdCBlbmQgd2l0aCB0aGUgc3VmZml4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJpbUVuZChzdHI6IHN0cmluZywgc3VmZml4OiBzdHJpbmcsIHNob3VsZFZhbGlkYXRlPzogYm9vbGVhbik6IHN0cmluZyB7XG4gIGlmIChzdHIuZW5kc1dpdGgoc3VmZml4KSkge1xuICAgIHJldHVybiBzdHIuc2xpY2UoMCwgLXN1ZmZpeC5sZW5ndGgpO1xuICB9XG5cbiAgaWYgKHNob3VsZFZhbGlkYXRlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTdHJpbmcgJHtzdHJ9IGRvZXMgbm90IGVuZCB3aXRoIHN1ZmZpeCAke3N1ZmZpeH1gKTtcbiAgfVxuXG4gIHJldHVybiBzdHI7XG59XG5cbi8qKlxuICogVHJpbXMgdGhlIHNwZWNpZmllZCBwcmVmaXggZnJvbSB0aGUgc3RhcnQgb2YgYSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gdHJpbS5cbiAqIEBwYXJhbSBwcmVmaXggLSBUaGUgcHJlZml4IHRvIHJlbW92ZSBmcm9tIHRoZSBzdGFydCBvZiB0aGUgc3RyaW5nLlxuICogQHBhcmFtIHZhbGlkYXRlIC0gSWYgdHJ1ZSwgdGhyb3dzIGFuIGVycm9yIGlmIHRoZSBzdHJpbmcgZG9lcyBub3Qgc3RhcnQgd2l0aCB0aGUgcHJlZml4LlxuICogQHJldHVybnMgVGhlIHRyaW1tZWQgc3RyaW5nLlxuICogQHRocm93cyBJZiBgdmFsaWRhdGVgIGlzIHRydWUgYW5kIHRoZSBzdHJpbmcgZG9lcyBub3Qgc3RhcnQgd2l0aCB0aGUgcHJlZml4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJpbVN0YXJ0KHN0cjogc3RyaW5nLCBwcmVmaXg6IHN0cmluZywgdmFsaWRhdGU/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgaWYgKHN0ci5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICByZXR1cm4gc3RyLnNsaWNlKHByZWZpeC5sZW5ndGgpO1xuICB9XG5cbiAgaWYgKHZhbGlkYXRlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBTdHJpbmcgJHtzdHJ9IGRvZXMgbm90IHN0YXJ0IHdpdGggcHJlZml4ICR7cHJlZml4fWApO1xuICB9XG5cbiAgcmV0dXJuIHN0cjtcbn1cblxuLyoqXG4gKiBVbmVzY2FwZXMgYSBzdHJpbmcgYnkgcmVwbGFjaW5nIGVzY2FwZSBzZXF1ZW5jZXMgd2l0aCB0aGVpciBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMuXG4gKlxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gdW5lc2NhcGUuXG4gKiBAcmV0dXJucyBUaGUgdW5lc2NhcGVkIHN0cmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVuZXNjYXBlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHJlcGxhY2Uoc3RyLCBVTkVTQ0FQRV9NQVApO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUEsbUJBQWdDO0FBQ2hDLG9CQUE2QjtBQUM3QiwyQkFBNkI7QUEwQzdCLE1BQU0sYUFBcUM7QUFBQSxFQUN6QyxNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixLQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsRUFDTixLQUFNO0FBQUEsRUFDTixLQUFLO0FBQUEsRUFDTCxNQUFNO0FBQ1I7QUFLQSxNQUFNLGVBQXVDLENBQUM7QUFDOUMsV0FBVyxDQUFDLEtBQUssS0FBSyxLQUFLLE9BQU8sUUFBUSxVQUFVLEdBQUc7QUFDckQsZUFBYSxLQUFLLElBQUk7QUFDeEI7QUFTTyxTQUFTLGVBQWUsS0FBYSxRQUF3QjtBQUNsRSxTQUFPLElBQUksU0FBUyxNQUFNLElBQUksTUFBTSxNQUFN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
|
@@ -106,7 +106,7 @@ export declare function replaceAll<ReplaceGroupArgs extends string[]>(str: strin
|
|
106
106
|
* @param str - The string in which to perform replacements.
|
107
107
|
* @param searchValue - The string or regular expression to search for.
|
108
108
|
* @param replacer - A synchronous/asynchronous function that generates replacement strings, or a string to replace with.
|
109
|
-
* @returns A
|
109
|
+
* @returns A {@link Promise} that resolves to the string with all replacements made.
|
110
110
|
*/
|
111
111
|
export declare function replaceAllAsync<ReplaceGroupArgs extends string[]>(str: string, searchValue: RegExp | string, replacer: AsyncReplacer<ReplaceGroupArgs>): Promise<string>;
|
112
112
|
/**
|
@@ -41,4 +41,4 @@ function isFunction(value) {
|
|
41
41
|
0 && (module.exports = {
|
42
42
|
resolveValue
|
43
43
|
});
|
44
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL1ZhbHVlUHJvdmlkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFZhbHVlUHJvdmlkZXJcbiAqIENvbnRhaW5zIHV0aWxpdHkgdHlwZXMgYW5kIGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgdmFsdWUgcHJvdmlkZXJzLCB3aGljaCBjYW4gYmUgZWl0aGVyIGRpcmVjdCB2YWx1ZXMgb3IgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIHZhbHVlcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuLyoqXG4gKiBSZXByZXNlbnRzIGEgdmFsdWUgcHJvdmlkZXIgdGhhdCBjYW4gZWl0aGVyIGJlIGEgZGlyZWN0IHZhbHVlIG9mIHR5cGUgYFZhbHVlYCBvciBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHZhbHVlIG9mIHR5cGUgYFZhbHVlYC5cbiAqXG4gKiBAdHlwZVBhcmFtIFZhbHVlIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIHByb3ZpZGVkLlxuICogQHR5cGVQYXJhbSBBcmdzIC0gVGhlIHR5cGVzIG9mIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uIGlmIHRoZSBwcm92aWRlciBpcyBhIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgdHlwZSBWYWx1ZVByb3ZpZGVyPFZhbHVlLCBBcmdzIGV4dGVuZHMgdW5rbm93bltdID0gW10+
|
44
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL1ZhbHVlUHJvdmlkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uIFZhbHVlUHJvdmlkZXJcbiAqIENvbnRhaW5zIHV0aWxpdHkgdHlwZXMgYW5kIGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgdmFsdWUgcHJvdmlkZXJzLCB3aGljaCBjYW4gYmUgZWl0aGVyIGRpcmVjdCB2YWx1ZXMgb3IgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIHZhbHVlcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuLyoqXG4gKiBSZXByZXNlbnRzIGEgdmFsdWUgcHJvdmlkZXIgdGhhdCBjYW4gZWl0aGVyIGJlIGEgZGlyZWN0IHZhbHVlIG9mIHR5cGUgYFZhbHVlYCBvciBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHZhbHVlIG9mIHR5cGUgYFZhbHVlYC5cbiAqXG4gKiBAdHlwZVBhcmFtIFZhbHVlIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIHByb3ZpZGVkLlxuICogQHR5cGVQYXJhbSBBcmdzIC0gVGhlIHR5cGVzIG9mIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uIGlmIHRoZSBwcm92aWRlciBpcyBhIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgdHlwZSBWYWx1ZVByb3ZpZGVyPFZhbHVlLCBBcmdzIGV4dGVuZHMgdW5rbm93bltdID0gW10+ID0gKCguLi5hcmdzOiBBcmdzKSA9PiBQcm9taXNhYmxlPFZhbHVlPikgfCBWYWx1ZTtcblxuLyoqXG4gKiBSZXNvbHZlcyBhIHZhbHVlIGZyb20gYSB2YWx1ZSBwcm92aWRlciwgd2hpY2ggY2FuIGJlIGVpdGhlciBhIGRpcmVjdCB2YWx1ZSBvciBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHZhbHVlLlxuICpcbiAqIEB0eXBlUGFyYW0gQXJncyAtIFRoZSB0eXBlcyBvZiBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbiBpZiB0aGUgcHJvdmlkZXIgaXMgYSBmdW5jdGlvbi5cbiAqIEB0eXBlUGFyYW0gVmFsdWUgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgcHJvdmlkZWQuXG4gKiBAcGFyYW0gcHJvdmlkZXIgLSBUaGUgdmFsdWUgcHJvdmlkZXIgdG8gcmVzb2x2ZS5cbiAqIEBwYXJhbSBhcmdzIC0gVGhlIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBmdW5jdGlvbiBpZiB0aGUgcHJvdmlkZXIgaXMgYSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgdmFsdWUgcHJvdmlkZWQgYnkgdGhlIHZhbHVlIHByb3ZpZGVyLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZVZhbHVlPFZhbHVlLCBBcmdzIGV4dGVuZHMgdW5rbm93bltdPihwcm92aWRlcjogVmFsdWVQcm92aWRlcjxWYWx1ZSwgQXJncz4sIC4uLmFyZ3M6IEFyZ3MpOiBQcm9taXNlPFZhbHVlPiB7XG4gIGlmIChpc0Z1bmN0aW9uKHByb3ZpZGVyKSkge1xuICAgIHJldHVybiBhd2FpdCBwcm92aWRlciguLi5hcmdzKTtcbiAgfVxuICByZXR1cm4gcHJvdmlkZXI7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgZ2l2ZW4gdmFsdWUgcHJvdmlkZXIgaXMgYSBmdW5jdGlvbi5cbiAqXG4gKiBAdHlwZVBhcmFtIFZhbHVlIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIHByb3ZpZGVkLlxuICogQHR5cGVQYXJhbSBBcmdzIC0gVGhlIHR5cGVzIG9mIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uIGlmIHRoZSBwcm92aWRlciBpcyBhIGZ1bmN0aW9uLlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHByb3ZpZGVyIHRvIGNoZWNrLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZSBwcm92aWRlciBpcyBhIGZ1bmN0aW9uLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAqL1xuZnVuY3Rpb24gaXNGdW5jdGlvbjxWYWx1ZSwgQXJncyBleHRlbmRzIHVua25vd25bXT4odmFsdWU6IFZhbHVlUHJvdmlkZXI8VmFsdWUsIEFyZ3M+KTogdmFsdWUgaXMgKC4uLmFyZ3M6IEFyZ3MpID0+IFByb21pc2FibGU8VmFsdWU+IHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBdUJBLGVBQXNCLGFBQTRDLGFBQXlDLE1BQTRCO0FBQ3JJLE1BQUksV0FBVyxRQUFRLEdBQUc7QUFDeEIsV0FBTyxNQUFNLFNBQVMsR0FBRyxJQUFJO0FBQUEsRUFDL0I7QUFDQSxTQUFPO0FBQ1Q7QUFVQSxTQUFTLFdBQTBDLE9BQWtGO0FBQ25JLFNBQU8sT0FBTyxVQUFVO0FBQzFCOyIsCiAgIm5hbWVzIjogW10KfQo=
|
@@ -17,6 +17,6 @@ export type ValueProvider<Value, Args extends unknown[] = []> = ((...args: Args)
|
|
17
17
|
* @typeParam Value - The type of the value provided.
|
18
18
|
* @param provider - The value provider to resolve.
|
19
19
|
* @param args - The arguments to pass to the function if the provider is a function.
|
20
|
-
* @returns A
|
20
|
+
* @returns A {@link Promise} that resolves with the value provided by the value provider.
|
21
21
|
*/
|
22
22
|
export declare function resolveValue<Value, Args extends unknown[]>(provider: ValueProvider<Value, Args>, ...args: Args): Promise<Value>;
|
package/dist/lib/cjs/index.cjs
CHANGED
@@ -35,7 +35,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
35
35
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
36
36
|
var index_exports = {};
|
37
37
|
__export(index_exports, {
|
38
|
+
Array: () => Array,
|
38
39
|
Async: () => Async,
|
40
|
+
AsyncEvents: () => AsyncEvents,
|
39
41
|
Blob: () => Blob,
|
40
42
|
CssClass: () => CssClass,
|
41
43
|
Debug: () => Debug,
|
@@ -58,7 +60,9 @@ __export(index_exports, {
|
|
58
60
|
url: () => url
|
59
61
|
});
|
60
62
|
module.exports = __toCommonJS(index_exports);
|
63
|
+
var Array = __toESM(__extractDefault(require('./Array.cjs')), 1);
|
61
64
|
var Async = __toESM(__extractDefault(require('./Async.cjs')), 1);
|
65
|
+
var AsyncEvents = __toESM(__extractDefault(require('./AsyncEvents.cjs')), 1);
|
62
66
|
var Blob = __toESM(__extractDefault(require('./Blob.cjs')), 1);
|
63
67
|
var codemirror = __toESM(__extractDefault(require('./codemirror/index.cjs')), 1);
|
64
68
|
var CssClass = __toESM(__extractDefault(require('./CssClass.cjs')), 1);
|
@@ -81,7 +85,9 @@ var url = __toESM(__extractDefault(require('./url.cjs')), 1);
|
|
81
85
|
var ValueProvider = __toESM(__extractDefault(require('./ValueProvider.cjs')), 1);
|
82
86
|
// Annotate the CommonJS export names for ESM import in node:
|
83
87
|
0 && (module.exports = {
|
88
|
+
Array,
|
84
89
|
Async,
|
90
|
+
AsyncEvents,
|
85
91
|
Blob,
|
86
92
|
CssClass,
|
87
93
|
Debug,
|
@@ -103,4 +109,4 @@ var ValueProvider = __toESM(__extractDefault(require('./ValueProvider.cjs')), 1)
|
|
103
109
|
obsidian,
|
104
110
|
url
|
105
111
|
});
|
106
|
-
//# sourceMappingURL=data:application/json;base64,
|
112
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0ICogYXMgQXJyYXkgZnJvbSAnLi9BcnJheS50cyc7XG5leHBvcnQgKiBhcyBBc3luYyBmcm9tICcuL0FzeW5jLnRzJztcbmV4cG9ydCAqIGFzIEFzeW5jRXZlbnRzIGZyb20gJy4vQXN5bmNFdmVudHMudHMnO1xuZXhwb3J0ICogYXMgQmxvYiBmcm9tICcuL0Jsb2IudHMnO1xuZXhwb3J0ICogYXMgY29kZW1pcnJvciBmcm9tICcuL2NvZGVtaXJyb3IvaW5kZXgudHMnO1xuZXhwb3J0ICogYXMgQ3NzQ2xhc3MgZnJvbSAnLi9Dc3NDbGFzcy50cyc7XG5leHBvcnQgKiBhcyBEZWJ1ZyBmcm9tICcuL0RlYnVnLnRzJztcbmV4cG9ydCAqIGFzIERlYnVnQ29udHJvbGxlciBmcm9tICcuL0RlYnVnQ29udHJvbGxlci50cyc7XG5leHBvcnQgKiBhcyBFbnVtIGZyb20gJy4vRW51bS50cyc7XG5leHBvcnQgKiBhcyBFcnJvciBmcm9tICcuL0Vycm9yLnRzJztcbmV4cG9ydCAqIGFzIEZ1bmN0aW9uIGZyb20gJy4vRnVuY3Rpb24udHMnO1xuZXhwb3J0ICogYXMgSFRNTEVsZW1lbnQgZnJvbSAnLi9IVE1MRWxlbWVudC50cyc7XG5leHBvcnQgKiBhcyBMaWJyYXJ5IGZyb20gJy4vTGlicmFyeS50cyc7XG5leHBvcnQgKiBhcyBPYmplY3QgZnJvbSAnLi9PYmplY3QudHMnO1xuZXhwb3J0ICogYXMgb2JzaWRpYW4gZnJvbSAnLi9vYnNpZGlhbi9pbmRleC50cyc7XG5leHBvcnQgKiBhcyBQYXRoIGZyb20gJy4vUGF0aC50cyc7XG5leHBvcnQgKiBhcyBSZWdFeHAgZnJvbSAnLi9SZWdFeHAudHMnO1xuZXhwb3J0ICogYXMgU2NyaXB0VXRpbHMgZnJvbSAnLi9TY3JpcHRVdGlscy9pbmRleC50cyc7XG5leHBvcnQgKiBhcyBTdHJpbmcgZnJvbSAnLi9TdHJpbmcudHMnO1xuZXhwb3J0ICogYXMgVHJhbnNmb3JtZXJzIGZyb20gJy4vVHJhbnNmb3JtZXJzL2luZGV4LnRzJztcbmV4cG9ydCAqIGFzIFR5cGUgZnJvbSAnLi9UeXBlLnRzJztcbmV4cG9ydCAqIGFzIHVybCBmcm9tICcuL3VybC50cyc7XG5leHBvcnQgKiBhcyBWYWx1ZVByb3ZpZGVyIGZyb20gJy4vVmFsdWVQcm92aWRlci50cyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFBQUE7QUFBQSxFQUFBO0FBQUE7QUFBQTtBQUFBLGdCQUFBQztBQUFBLEVBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUEsWUFBdUI7QUFDdkIsWUFBdUI7QUFDdkIsa0JBQTZCO0FBQzdCLFdBQXNCO0FBQ3RCLGlCQUE0QjtBQUM1QixlQUEwQjtBQUMxQixZQUF1QjtBQUN2QixzQkFBaUM7QUFDakMsV0FBc0I7QUFDdEIsSUFBQUQsU0FBdUI7QUFDdkIsZUFBMEI7QUFDMUIsa0JBQTZCO0FBQzdCLGNBQXlCO0FBQ3pCLElBQUFDLFVBQXdCO0FBQ3hCLGVBQTBCO0FBQzFCLFdBQXNCO0FBQ3RCLGFBQXdCO0FBQ3hCLGtCQUE2QjtBQUM3QixhQUF3QjtBQUN4QixtQkFBOEI7QUFDOUIsV0FBc0I7QUFDdEIsVUFBcUI7QUFDckIsb0JBQStCOyIsCiAgIm5hbWVzIjogWyJFcnJvciIsICJPYmplY3QiXQp9Cg==
|
package/dist/lib/cjs/index.d.cts
CHANGED
@@ -92,4 +92,4 @@ function normalizeSlashes(path) {
|
|
92
92
|
getAvailablePathForAttachments,
|
93
93
|
hasOwnAttachmentFolder
|
94
94
|
});
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
95
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0F0dGFjaG1lbnRQYXRoLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvbiBBdHRhY2htZW50UGF0aFxuICogUHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCBhdHRhY2htZW50IHBhdGhzLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQXBwLFxuICBURmlsZVxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IHBhcmVudEZvbGRlclBhdGggfSBmcm9tICdvYnNpZGlhbi10eXBpbmdzL2ltcGxlbWVudGF0aW9ucyc7XG5cbmltcG9ydCB0eXBlIHsgUGF0aE9yRmlsZSB9IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5cbmltcG9ydCB7XG4gIGJhc2VuYW1lLFxuICBkaXJuYW1lLFxuICBleHRuYW1lLFxuICBqb2luXG59IGZyb20gJy4uL1BhdGgudHMnO1xuaW1wb3J0IHtcbiAgbm9ybWFsaXplLFxuICByZXBsYWNlQWxsLFxuICB0cmltU3RhcnRcbn0gZnJvbSAnLi4vU3RyaW5nLnRzJztcbmltcG9ydCB7XG4gIGdldEZpbGUsXG4gIGdldEZvbGRlcixcbiAgZ2V0Rm9sZGVyT3JOdWxsLFxuICBnZXRQYXRoXG59IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5cbi8qKlxuICogSXMgb3ZlcnJpZGRlbiB3cmFwcGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuZGVkV3JhcHBlciB7XG4gIC8qKlxuICAgKiBJcyBleHRlbmRlZC5cbiAgICovXG4gIGlzRXh0ZW5kZWQ6IHRydWU7XG59XG5cbi8qKlxuICogR2V0IGF2YWlsYWJsZSBwYXRoIGZvciBhdHRhY2htZW50cyBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgR2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzRXh0ZW5kZWRGbiA9IChcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgZXh0ZW5zaW9uOiBzdHJpbmcsXG4gIGZpbGU6IG51bGwgfCBURmlsZSxcbiAgc2hvdWxkU2tpcEZvbGRlckNyZWF0aW9uPzogYm9vbGVhblxuKSA9PiBQcm9taXNlPHN0cmluZz47XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBmaWxlIHBhdGggZm9yIGFuIGF0dGFjaG1lbnQgd2l0aGluIGEgbm90ZS5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIGF0dGFjaG1lbnRQYXRoT3JGaWxlIC0gVGhlIHBhdGggb2YgdGhlIGF0dGFjaG1lbnQuXG4gKiBAcGFyYW0gbm90ZVBhdGhPckZpbGUgLSBUaGUgcGF0aCBvZiB0aGUgbm90ZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGZpbGUgcGF0aCBvZiB0aGUgYXR0YWNobWVudC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEF0dGFjaG1lbnRGaWxlUGF0aChhcHA6IEFwcCwgYXR0YWNobWVudFBhdGhPckZpbGU6IFBhdGhPckZpbGUsIG5vdGVQYXRoT3JGaWxlOiBQYXRoT3JGaWxlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgYXR0YWNobWVudFBhdGggPSBnZXRQYXRoKGFwcCwgYXR0YWNobWVudFBhdGhPckZpbGUpO1xuICBjb25zdCBub3RlUGF0aCA9IGdldFBhdGgoYXBwLCBub3RlUGF0aE9yRmlsZSk7XG4gIGNvbnN0IG5vdGUgPSBnZXRGaWxlKGFwcCwgbm90ZVBhdGgsIHRydWUpO1xuICBjb25zdCBleHQgPSBleHRuYW1lKGF0dGFjaG1lbnRQYXRoKTtcbiAgY29uc3QgZmlsZU5hbWUgPSBiYXNlbmFtZShhdHRhY2htZW50UGF0aCwgZXh0KTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3VuYm91bmQtbWV0aG9kXG4gIGNvbnN0IGludGVybmFsRm4gPSBhcHAudmF1bHQuZ2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzO1xuICBpZiAoKGludGVybmFsRm4gYXMgUGFydGlhbDxFeHRlbmRlZFdyYXBwZXI+KS5pc0V4dGVuZGVkKSB7XG4gICAgcmV0dXJuIChpbnRlcm5hbEZuIGFzIEdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50c0V4dGVuZGVkRm4pKGZpbGVOYW1lLCBleHQuc2xpY2UoMSksIG5vdGUsIHRydWUpO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IGdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50cyhhcHAsIGZpbGVOYW1lLCBleHQuc2xpY2UoMSksIG5vdGUsIHRydWUpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgYXR0YWNobWVudCBmb2xkZXIgcGF0aCBmb3IgYSBnaXZlbiBub3RlLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gbm90ZVBhdGhPckZpbGUgLSBUaGUgcGF0aCBvZiB0aGUgbm90ZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGF0dGFjaG1lbnQgZm9sZGVyIHBhdGguXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aChhcHA6IEFwcCwgbm90ZVBhdGhPckZpbGU6IFBhdGhPckZpbGUpOiBQcm9taXNlPHN0cmluZz4ge1xuICByZXR1cm4gcGFyZW50Rm9sZGVyUGF0aChhd2FpdCBnZXRBdHRhY2htZW50RmlsZVBhdGgoYXBwLCAnRFVNTVlfRklMRS5wZGYnLCBub3RlUGF0aE9yRmlsZSkpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgYXZhaWxhYmxlIHBhdGggZm9yIGF0dGFjaG1lbnRzLlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBmaWxlbmFtZSAtIE5hbWUgb2YgdGhlIGZpbGUuXG4gKiBAcGFyYW0gZXh0ZW5zaW9uIC0gRXh0ZW5zaW9uIG9mIHRoZSBmaWxlLlxuICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZSB0byBhdHRhY2ggdG8uXG4gKiBAcGFyYW0gc2hvdWxkU2tpcEZvbGRlckNyZWF0aW9uIC0gU2hvdWxkIGZvbGRlciBjcmVhdGlvbiBiZSBza2lwcGVkP1xuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgYXZhaWxhYmxlIHBhdGggZm9yIGF0dGFjaG1lbnRzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzKFxuICBhcHA6IEFwcCxcbiAgZmlsZW5hbWU6IHN0cmluZyxcbiAgZXh0ZW5zaW9uOiBzdHJpbmcsXG4gIGZpbGU6IG51bGwgfCBURmlsZSxcbiAgc2hvdWxkU2tpcEZvbGRlckNyZWF0aW9uOiBib29sZWFuXG4pOiBQcm9taXNlPHN0cmluZz4ge1xuICBsZXQgYXR0YWNobWVudEZvbGRlclBhdGggPSBhcHAudmF1bHQuZ2V0Q29uZmlnKCdhdHRhY2htZW50Rm9sZGVyUGF0aCcpIGFzIHN0cmluZztcbiAgY29uc3QgaXNDdXJyZW50Rm9sZGVyID0gYXR0YWNobWVudEZvbGRlclBhdGggPT09ICcuJyB8fCBhdHRhY2htZW50Rm9sZGVyUGF0aCA9PT0gJy4vJztcbiAgbGV0IHJlbGF0aXZlUGF0aCA9IG51bGw7XG5cbiAgaWYgKGF0dGFjaG1lbnRGb2xkZXJQYXRoLnN0YXJ0c1dpdGgoJy4vJykpIHtcbiAgICByZWxhdGl2ZVBhdGggPSB0cmltU3RhcnQoYXR0YWNobWVudEZvbGRlclBhdGgsICcuLycpO1xuICB9XG5cbiAgaWYgKGlzQ3VycmVudEZvbGRlcikge1xuICAgIGF0dGFjaG1lbnRGb2xkZXJQYXRoID0gZmlsZSA/IGZpbGUucGFyZW50Py5wYXRoID8/ICcnIDogJyc7XG4gIH0gZWxzZSBpZiAocmVsYXRpdmVQYXRoKSB7XG4gICAgYXR0YWNobWVudEZvbGRlclBhdGggPSAoZmlsZSA/IGZpbGUucGFyZW50Py5nZXRQYXJlbnRQcmVmaXgoKSA/PyAnJyA6ICcnKSArIHJlbGF0aXZlUGF0aDtcbiAgfVxuXG4gIGF0dGFjaG1lbnRGb2xkZXJQYXRoID0gbm9ybWFsaXplKG5vcm1hbGl6ZVNsYXNoZXMoYXR0YWNobWVudEZvbGRlclBhdGgpKTtcbiAgZmlsZW5hbWUgPSBub3JtYWxpemUobm9ybWFsaXplU2xhc2hlcyhmaWxlbmFtZSkpO1xuXG4gIGxldCBmb2xkZXIgPSBnZXRGb2xkZXJPck51bGwoYXBwLCBhdHRhY2htZW50Rm9sZGVyUGF0aCwgdHJ1ZSk7XG5cbiAgaWYgKCFmb2xkZXIgJiYgcmVsYXRpdmVQYXRoKSB7XG4gICAgaWYgKHNob3VsZFNraXBGb2xkZXJDcmVhdGlvbikge1xuICAgICAgZm9sZGVyID0gZ2V0Rm9sZGVyKGFwcCwgYXR0YWNobWVudEZvbGRlclBhdGgsIHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb2xkZXIgPSBhd2FpdCBhcHAudmF1bHQuY3JlYXRlRm9sZGVyKGF0dGFjaG1lbnRGb2xkZXJQYXRoKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBwcmVmaXggPSBmb2xkZXI/LmdldFBhcmVudFByZWZpeCgpID8/ICcnO1xuICByZXR1cm4gYXBwLnZhdWx0LmdldEF2YWlsYWJsZVBhdGgocHJlZml4ICsgZmlsZW5hbWUsIGV4dGVuc2lvbik7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgbm90ZSBoYXMgaXRzIG93biBhdHRhY2htZW50IGZvbGRlci5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBvZiB0aGUgbm90ZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgbm90ZSBoYXMgaXRzIG93biBhdHRhY2htZW50IGZvbGRlci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhc093bkF0dGFjaG1lbnRGb2xkZXIoYXBwOiBBcHAsIHBhdGg6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCBhdHRhY2htZW50Rm9sZGVyUGF0aCA9IGF3YWl0IGdldEF0dGFjaG1lbnRGb2xkZXJQYXRoKGFwcCwgcGF0aCk7XG4gIGNvbnN0IGR1bW15QXR0YWNobWVudEZvbGRlclBhdGggPSBhd2FpdCBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aChhcHAsIGpvaW4oZGlybmFtZShwYXRoKSwgJ0RVTU1ZX0ZJTEUubWQnKSk7XG4gIHJldHVybiBhdHRhY2htZW50Rm9sZGVyUGF0aCAhPT0gZHVtbXlBdHRhY2htZW50Rm9sZGVyUGF0aDtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIGEgcGF0aCBieSBjb21iaW5pbmcgbXVsdGlwbGUgc2xhc2hlcyBpbnRvIGEgc2luZ2xlIHNsYXNoIGFuZCByZW1vdmluZyBsZWFkaW5nIGFuZCB0cmFpbGluZyBzbGFzaGVzLlxuICogQHBhcmFtIHBhdGggLSBQYXRoIHRvIG5vcm1hbGl6ZS5cbiAqIEByZXR1cm5zIFRoZSBub3JtYWxpemVkIHBhdGguXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVNsYXNoZXMocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcGF0aCA9IHJlcGxhY2VBbGwocGF0aCwgLyg/OltcXFxcL10pKy9nLCAnLycpO1xuICBwYXRoID0gcmVwbGFjZUFsbChwYXRoLCAvXlxcLyt8XFwvKyQvZywgJycpO1xuICByZXR1cm4gcGF0aCB8fCAnLyc7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBLDZCQUFpQztBQUlqQyxrQkFLTztBQUNQLG9CQUlPO0FBQ1Asd0JBS087QUE4QlAsZUFBc0Isc0JBQXNCLEtBQVUsc0JBQWtDLGdCQUE2QztBQUNuSSxRQUFNLHFCQUFpQiwyQkFBUSxLQUFLLG9CQUFvQjtBQUN4RCxRQUFNLGVBQVcsMkJBQVEsS0FBSyxjQUFjO0FBQzVDLFFBQU0sV0FBTywyQkFBUSxLQUFLLFVBQVUsSUFBSTtBQUN4QyxRQUFNLFVBQU0scUJBQVEsY0FBYztBQUNsQyxRQUFNLGVBQVcsc0JBQVMsZ0JBQWdCLEdBQUc7QUFHN0MsUUFBTSxhQUFhLElBQUksTUFBTTtBQUM3QixNQUFLLFdBQXdDLFlBQVk7QUFDdkQsV0FBUSxXQUF3RCxVQUFVLElBQUksTUFBTSxDQUFDLEdBQUcsTUFBTSxJQUFJO0FBQUEsRUFDcEc7QUFFQSxTQUFPLE1BQU0sK0JBQStCLEtBQUssVUFBVSxJQUFJLE1BQU0sQ0FBQyxHQUFHLE1BQU0sSUFBSTtBQUNyRjtBQVNBLGVBQXNCLHdCQUF3QixLQUFVLGdCQUE2QztBQUNuRyxhQUFPLHlDQUFpQixNQUFNLHNCQUFzQixLQUFLLGtCQUFrQixjQUFjLENBQUM7QUFDNUY7QUFXQSxlQUFzQiwrQkFDcEIsS0FDQSxVQUNBLFdBQ0EsTUFDQSwwQkFDaUI7QUFDakIsTUFBSSx1QkFBdUIsSUFBSSxNQUFNLFVBQVUsc0JBQXNCO0FBQ3JFLFFBQU0sa0JBQWtCLHlCQUF5QixPQUFPLHlCQUF5QjtBQUNqRixNQUFJLGVBQWU7QUFFbkIsTUFBSSxxQkFBcUIsV0FBVyxJQUFJLEdBQUc7QUFDekMsdUJBQWUseUJBQVUsc0JBQXNCLElBQUk7QUFBQSxFQUNyRDtBQUVBLE1BQUksaUJBQWlCO0FBQ25CLDJCQUF1QixPQUFPLEtBQUssUUFBUSxRQUFRLEtBQUs7QUFBQSxFQUMxRCxXQUFXLGNBQWM7QUFDdkIsNEJBQXdCLE9BQU8sS0FBSyxRQUFRLGdCQUFnQixLQUFLLEtBQUssTUFBTTtBQUFBLEVBQzlFO0FBRUEsNkJBQXVCLHlCQUFVLGlCQUFpQixvQkFBb0IsQ0FBQztBQUN2RSxpQkFBVyx5QkFBVSxpQkFBaUIsUUFBUSxDQUFDO0FBRS9DLE1BQUksYUFBUyxtQ0FBZ0IsS0FBSyxzQkFBc0IsSUFBSTtBQUU1RCxNQUFJLENBQUMsVUFBVSxjQUFjO0FBQzNCLFFBQUksMEJBQTBCO0FBQzVCLG1CQUFTLDZCQUFVLEtBQUssc0JBQXNCLElBQUk7QUFBQSxJQUNwRCxPQUFPO0FBQ0wsZUFBUyxNQUFNLElBQUksTUFBTSxhQUFhLG9CQUFvQjtBQUFBLElBQzVEO0FBQUEsRUFDRjtBQUVBLFFBQU0sU0FBUyxRQUFRLGdCQUFnQixLQUFLO0FBQzVDLFNBQU8sSUFBSSxNQUFNLGlCQUFpQixTQUFTLFVBQVUsU0FBUztBQUNoRTtBQVNBLGVBQXNCLHVCQUF1QixLQUFVLE1BQWdDO0FBQ3JGLFFBQU0sdUJBQXVCLE1BQU0sd0JBQXdCLEtBQUssSUFBSTtBQUNwRSxRQUFNLDRCQUE0QixNQUFNLHdCQUF3QixTQUFLLHNCQUFLLHFCQUFRLElBQUksR0FBRyxlQUFlLENBQUM7QUFDekcsU0FBTyx5QkFBeUI7QUFDbEM7QUFPQSxTQUFTLGlCQUFpQixNQUFzQjtBQUM5QyxhQUFPLDBCQUFXLE1BQU0sZUFBZSxHQUFHO0FBQzFDLGFBQU8sMEJBQVcsTUFBTSxjQUFjLEVBQUU7QUFDeEMsU0FBTyxRQUFRO0FBQ2pCOyIsCiAgIm5hbWVzIjogW10KfQo=
|
@@ -23,7 +23,7 @@ export type GetAvailablePathForAttachmentsExtendedFn = (filename: string, extens
|
|
23
23
|
* @param app - The Obsidian application instance.
|
24
24
|
* @param attachmentPathOrFile - The path of the attachment.
|
25
25
|
* @param notePathOrFile - The path of the note.
|
26
|
-
* @returns A
|
26
|
+
* @returns A {@link Promise} that resolves to the file path of the attachment.
|
27
27
|
*/
|
28
28
|
export declare function getAttachmentFilePath(app: App, attachmentPathOrFile: PathOrFile, notePathOrFile: PathOrFile): Promise<string>;
|
29
29
|
/**
|
@@ -31,7 +31,7 @@ export declare function getAttachmentFilePath(app: App, attachmentPathOrFile: Pa
|
|
31
31
|
*
|
32
32
|
* @param app - The Obsidian application instance.
|
33
33
|
* @param notePathOrFile - The path of the note.
|
34
|
-
* @returns A
|
34
|
+
* @returns A {@link Promise} that resolves to the attachment folder path.
|
35
35
|
*/
|
36
36
|
export declare function getAttachmentFolderPath(app: App, notePathOrFile: PathOrFile): Promise<string>;
|
37
37
|
/**
|
@@ -41,7 +41,7 @@ export declare function getAttachmentFolderPath(app: App, notePathOrFile: PathOr
|
|
41
41
|
* @param extension - Extension of the file.
|
42
42
|
* @param file - The file to attach to.
|
43
43
|
* @param shouldSkipFolderCreation - Should folder creation be skipped?
|
44
|
-
* @returns A
|
44
|
+
* @returns A {@link Promise} that resolves to the available path for attachments.
|
45
45
|
*/
|
46
46
|
export declare function getAvailablePathForAttachments(app: App, filename: string, extension: string, file: null | TFile, shouldSkipFolderCreation: boolean): Promise<string>;
|
47
47
|
/**
|
@@ -49,6 +49,6 @@ export declare function getAvailablePathForAttachments(app: App, filename: strin
|
|
49
49
|
*
|
50
50
|
* @param app - The Obsidian application instance.
|
51
51
|
* @param path - The path of the note.
|
52
|
-
* @returns A
|
52
|
+
* @returns A {@link Promise} that resolves to a boolean indicating whether the note has its own attachment folder.
|
53
53
|
*/
|
54
54
|
export declare function hasOwnAttachmentFolder(app: App, path: string): Promise<boolean>;
|