obsidian-dev-utils 48.1.4 → 49.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/lib/cjs/Async.cjs +24 -24
  3. package/dist/lib/cjs/Async.d.cts +6 -6
  4. package/dist/lib/cjs/Library.cjs +1 -1
  5. package/dist/lib/cjs/ObjectUtils.cjs +8 -9
  6. package/dist/lib/cjs/ScriptUtils/ESLint/eslint.config.cjs +13 -1
  7. package/dist/lib/cjs/ScriptUtils/esbuild/ObsidianPluginBuilder.cjs +6 -6
  8. package/dist/lib/cjs/ScriptUtils/esbuild/ObsidianPluginBuilder.d.cts +3 -3
  9. package/dist/lib/cjs/ScriptUtils/version.cjs +1 -1
  10. package/dist/lib/cjs/obsidian/AsyncWithNotice.cjs +7 -7
  11. package/dist/lib/cjs/obsidian/AsyncWithNotice.d.cts +6 -6
  12. package/dist/lib/cjs/obsidian/AttachmentPath.cjs +9 -9
  13. package/dist/lib/cjs/obsidian/AttachmentPath.d.cts +10 -10
  14. package/dist/lib/cjs/obsidian/Backlink.cjs +5 -5
  15. package/dist/lib/cjs/obsidian/Backlink.d.cts +6 -6
  16. package/dist/lib/cjs/obsidian/Callout.cjs +4 -4
  17. package/dist/lib/cjs/obsidian/Callout.d.cts +3 -3
  18. package/dist/lib/cjs/obsidian/Commands/AbstractFileCommandBase.cjs +11 -11
  19. package/dist/lib/cjs/obsidian/Commands/AbstractFileCommandBase.d.cts +4 -4
  20. package/dist/lib/cjs/obsidian/Commands/CommandBase.cjs +7 -7
  21. package/dist/lib/cjs/obsidian/Commands/CommandBase.d.cts +3 -3
  22. package/dist/lib/cjs/obsidian/Commands/EditorCommandBase.cjs +8 -8
  23. package/dist/lib/cjs/obsidian/Commands/EditorCommandBase.d.cts +4 -4
  24. package/dist/lib/cjs/obsidian/Commands/FileCommandBase.cjs +4 -4
  25. package/dist/lib/cjs/obsidian/Commands/FileCommandBase.d.cts +3 -3
  26. package/dist/lib/cjs/obsidian/Commands/FolderCommandBase.cjs +4 -4
  27. package/dist/lib/cjs/obsidian/Commands/FolderCommandBase.d.cts +3 -3
  28. package/dist/lib/cjs/obsidian/Commands/NonEditorCommandBase.cjs +4 -4
  29. package/dist/lib/cjs/obsidian/Commands/NonEditorCommandBase.d.cts +3 -3
  30. package/dist/lib/cjs/obsidian/Dataview.cjs +10 -10
  31. package/dist/lib/cjs/obsidian/Dataview.d.cts +10 -10
  32. package/dist/lib/cjs/obsidian/Link.cjs +58 -58
  33. package/dist/lib/cjs/obsidian/Link.d.cts +22 -22
  34. package/dist/lib/cjs/obsidian/Loop.cjs +4 -4
  35. package/dist/lib/cjs/obsidian/Loop.d.cts +3 -3
  36. package/dist/lib/cjs/obsidian/Markdown.cjs +9 -9
  37. package/dist/lib/cjs/obsidian/Markdown.d.cts +4 -4
  38. package/dist/lib/cjs/obsidian/MarkdownCodeBlockProcessor.cjs +24 -24
  39. package/dist/lib/cjs/obsidian/MarkdownCodeBlockProcessor.d.cts +14 -14
  40. package/dist/lib/cjs/obsidian/Modals/Alert.cjs +12 -12
  41. package/dist/lib/cjs/obsidian/Modals/Alert.d.cts +3 -3
  42. package/dist/lib/cjs/obsidian/Modals/Confirm.cjs +13 -13
  43. package/dist/lib/cjs/obsidian/Modals/Confirm.d.cts +3 -3
  44. package/dist/lib/cjs/obsidian/Modals/ModalBase.cjs +1 -1
  45. package/dist/lib/cjs/obsidian/Modals/ModalBase.d.cts +2 -2
  46. package/dist/lib/cjs/obsidian/Modals/Prompt.cjs +14 -14
  47. package/dist/lib/cjs/obsidian/Modals/Prompt.d.cts +3 -3
  48. package/dist/lib/cjs/obsidian/Modals/SelectItem.cjs +11 -11
  49. package/dist/lib/cjs/obsidian/Modals/SelectItem.d.cts +3 -3
  50. package/dist/lib/cjs/obsidian/Queue.cjs +13 -13
  51. package/dist/lib/cjs/obsidian/Queue.d.cts +6 -6
  52. package/dist/lib/cjs/obsidian/RenameDeleteHandler.cjs +19 -19
  53. package/dist/lib/cjs/obsidian/i18n/i18n.cjs +1 -1
  54. package/dist/lib/esm/Async.d.mts +6 -6
  55. package/dist/lib/esm/Async.mjs +24 -24
  56. package/dist/lib/esm/Library.mjs +1 -1
  57. package/dist/lib/esm/ObjectUtils.mjs +8 -9
  58. package/dist/lib/esm/ScriptUtils/ESLint/eslint.config.mjs +13 -1
  59. package/dist/lib/esm/ScriptUtils/esbuild/ObsidianPluginBuilder.d.mts +3 -3
  60. package/dist/lib/esm/ScriptUtils/esbuild/ObsidianPluginBuilder.mjs +6 -6
  61. package/dist/lib/esm/ScriptUtils/version.mjs +1 -1
  62. package/dist/lib/esm/obsidian/AsyncWithNotice.d.mts +6 -6
  63. package/dist/lib/esm/obsidian/AsyncWithNotice.mjs +7 -7
  64. package/dist/lib/esm/obsidian/AttachmentPath.d.mts +10 -10
  65. package/dist/lib/esm/obsidian/AttachmentPath.mjs +9 -9
  66. package/dist/lib/esm/obsidian/Backlink.d.mts +6 -6
  67. package/dist/lib/esm/obsidian/Backlink.mjs +5 -5
  68. package/dist/lib/esm/obsidian/Callout.d.mts +3 -3
  69. package/dist/lib/esm/obsidian/Callout.mjs +4 -4
  70. package/dist/lib/esm/obsidian/Commands/AbstractFileCommandBase.d.mts +4 -4
  71. package/dist/lib/esm/obsidian/Commands/AbstractFileCommandBase.mjs +11 -11
  72. package/dist/lib/esm/obsidian/Commands/CommandBase.d.mts +3 -3
  73. package/dist/lib/esm/obsidian/Commands/CommandBase.mjs +7 -7
  74. package/dist/lib/esm/obsidian/Commands/EditorCommandBase.d.mts +4 -4
  75. package/dist/lib/esm/obsidian/Commands/EditorCommandBase.mjs +8 -8
  76. package/dist/lib/esm/obsidian/Commands/FileCommandBase.d.mts +3 -3
  77. package/dist/lib/esm/obsidian/Commands/FileCommandBase.mjs +4 -4
  78. package/dist/lib/esm/obsidian/Commands/FolderCommandBase.d.mts +3 -3
  79. package/dist/lib/esm/obsidian/Commands/FolderCommandBase.mjs +4 -4
  80. package/dist/lib/esm/obsidian/Commands/NonEditorCommandBase.d.mts +3 -3
  81. package/dist/lib/esm/obsidian/Commands/NonEditorCommandBase.mjs +4 -4
  82. package/dist/lib/esm/obsidian/Dataview.d.mts +10 -10
  83. package/dist/lib/esm/obsidian/Dataview.mjs +10 -10
  84. package/dist/lib/esm/obsidian/Link.d.mts +22 -22
  85. package/dist/lib/esm/obsidian/Link.mjs +58 -58
  86. package/dist/lib/esm/obsidian/Loop.d.mts +3 -3
  87. package/dist/lib/esm/obsidian/Loop.mjs +4 -4
  88. package/dist/lib/esm/obsidian/Markdown.d.mts +4 -4
  89. package/dist/lib/esm/obsidian/Markdown.mjs +9 -9
  90. package/dist/lib/esm/obsidian/MarkdownCodeBlockProcessor.d.mts +14 -14
  91. package/dist/lib/esm/obsidian/MarkdownCodeBlockProcessor.mjs +24 -24
  92. package/dist/lib/esm/obsidian/Modals/Alert.d.mts +3 -3
  93. package/dist/lib/esm/obsidian/Modals/Alert.mjs +12 -12
  94. package/dist/lib/esm/obsidian/Modals/Confirm.d.mts +3 -3
  95. package/dist/lib/esm/obsidian/Modals/Confirm.mjs +13 -13
  96. package/dist/lib/esm/obsidian/Modals/ModalBase.d.mts +2 -2
  97. package/dist/lib/esm/obsidian/Modals/ModalBase.mjs +1 -1
  98. package/dist/lib/esm/obsidian/Modals/Prompt.d.mts +3 -3
  99. package/dist/lib/esm/obsidian/Modals/Prompt.mjs +14 -14
  100. package/dist/lib/esm/obsidian/Modals/SelectItem.d.mts +3 -3
  101. package/dist/lib/esm/obsidian/Modals/SelectItem.mjs +11 -11
  102. package/dist/lib/esm/obsidian/Queue.d.mts +6 -6
  103. package/dist/lib/esm/obsidian/Queue.mjs +13 -13
  104. package/dist/lib/esm/obsidian/RenameDeleteHandler.mjs +19 -19
  105. package/dist/lib/esm/obsidian/i18n/i18n.mjs +1 -1
  106. package/package.json +1 -1
@@ -481,4 +481,4 @@ async function updateVersionInFilesForPlugin(newVersion) {
481
481
  updateVersionInFiles,
482
482
  validate
483
483
  });
484
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL1NjcmlwdFV0aWxzL3ZlcnNpb24udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgZnVuY3Rpb25zIGZvciBtYW5hZ2luZyB2ZXJzaW9uIHVwZGF0ZXMgaW4gYSBwcm9qZWN0LlxuICogSXQgaW5jbHVkZXMgdGFza3Mgc3VjaCBhcyB2YWxpZGF0aW5nIHZlcnNpb24gdXBkYXRlIHR5cGVzLCBjaGVja2luZyB0aGUgc3RhdGVcbiAqIG9mIEdpdCBhbmQgR2l0SHViIENMSSwgdXBkYXRpbmcgdmVyc2lvbiBudW1iZXJzIGluIGZpbGVzLCBhbmQgcGVyZm9ybWluZ1xuICogR2l0IG9wZXJhdGlvbnMgc3VjaCBhcyB0YWdnaW5nIGFuZCBwdXNoaW5nLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUGFja2FnZUxvY2tKc29uIH0gZnJvbSAnLi9OcG0udHMnO1xuXG5pbXBvcnQgeyBnZXRMaWJEZWJ1Z2dlciB9IGZyb20gJy4uL0RlYnVnLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi4vb2JzaWRpYW4vUGx1Z2luL09ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLnRzJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICcuLi9QYXRoLnRzJztcbmltcG9ydCB7IHJlcGxhY2VBbGwgfSBmcm9tICcuLi9TdHJpbmcudHMnO1xuaW1wb3J0IHtcbiAgYXNzZXJ0Tm9uTnVsbGFibGUsXG4gIGVuc3VyZU5vbk51bGxhYmxlXG59IGZyb20gJy4uL1R5cGVHdWFyZHMudHMnO1xuaW1wb3J0IHsgcmVhZGRpclBvc2l4IH0gZnJvbSAnLi9Gcy50cyc7XG5pbXBvcnQgeyBlZGl0SnNvbiB9IGZyb20gJy4vSlNPTi50cyc7XG5pbXBvcnQge1xuICBjcCxcbiAgY3JlYXRlSW50ZXJmYWNlLFxuICBleGlzdHNTeW5jLFxuICByZWFkRmlsZSxcbiAgcm0sXG4gIHdyaXRlRmlsZVxufSBmcm9tICcuL05vZGVNb2R1bGVzLnRzJztcbmltcG9ydCB7XG4gIGVkaXROcG1TaHJpbmtXcmFwSnNvbixcbiAgZWRpdFBhY2thZ2VKc29uLFxuICBlZGl0UGFja2FnZUxvY2tKc29uLFxuICByZWFkUGFja2FnZUpzb25cbn0gZnJvbSAnLi9OcG0udHMnO1xuaW1wb3J0IHtcbiAgbnBtUnVuLFxuICBucG1SdW5PcHRpb25hbFxufSBmcm9tICcuL05wbVJ1bi50cyc7XG5pbXBvcnQgeyBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIH0gZnJvbSAnLi9PYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi9Sb290LnRzJztcblxuLyoqXG4gKiBFbnVtIHJlcHJlc2VudGluZyBkaWZmZXJlbnQgdHlwZXMgb2YgdmVyc2lvbiB1cGRhdGVzLlxuICovXG5leHBvcnQgZW51bSBWZXJzaW9uVXBkYXRlVHlwZSB7XG4gIEJldGEgPSAnYmV0YScsXG4gIEludmFsaWQgPSAnaW52YWxpZCcsXG4gIE1ham9yID0gJ21ham9yJyxcbiAgTWFudWFsID0gJ21hbnVhbCcsXG4gIE1pbm9yID0gJ21pbm9yJyxcbiAgUGF0Y2ggPSAncGF0Y2gnXG59XG5cbi8qKlxuICogVHlwZSByZXByZXNlbnRpbmcgdGhlIG1hbmlmZXN0IGZpbGUgZm9ybWF0IGZvciBPYnNpZGlhbiBwbHVnaW5zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hbmlmZXN0IHtcbiAgLyoqXG4gICAqIEEgbWluaW11bSBPYnNpZGlhbiB2ZXJzaW9uIHJlcXVpcmVkIGZvciB0aGUgcGx1Z2luLlxuICAgKi9cbiAgbWluQXBwVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHZlcnNpb24gb2YgdGhlIHBsdWdpbi5cbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgc3RydWN0dXJlIG9mIE9ic2lkaWFuIHJlbGVhc2VzIEpTT04uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzaWRpYW5SZWxlYXNlc0pzb24ge1xuICAvKipcbiAgICogQSBuYW1lIG9mIHRoZSBPYnNpZGlhbiByZWxlYXNlLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBHaXQgdGFnIGZvciB0aGUgbmV3IHZlcnNpb24uXG4gKlxuICogQHBhcmFtIG5ld1ZlcnNpb24gLSBUaGUgbmV3IHZlcnNpb24gbnVtYmVyIHRvIHVzZSBmb3IgdGhlIHRhZy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdGFnIGhhcyBiZWVuIGNyZWF0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhZGRHaXRUYWcobmV3VmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChgZ2l0IHRhZyAtYSAke25ld1ZlcnNpb259IC1tICR7bmV3VmVyc2lvbn0gLS1mb3JjZWAsIHsgaXNRdWlldDogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBBZGRzIHVwZGF0ZWQgZmlsZXMgdG8gdGhlIEdpdCBzdGFnaW5nIGFyZWEgYW5kIGNvbW1pdHMgdGhlbSB3aXRoIHRoZSBuZXcgdmVyc2lvbiBtZXNzYWdlLlxuICpcbiAqIEBwYXJhbSBuZXdWZXJzaW9uIC0gVGhlIG5ldyB2ZXJzaW9uIG51bWJlciB1c2VkIGFzIHRoZSBjb21taXQgbWVzc2FnZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsZXMgaGF2ZSBiZWVuIGFkZGVkIGFuZCBjb21taXR0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhZGRVcGRhdGVkRmlsZXNUb0dpdChuZXdWZXJzaW9uOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsnZ2l0JywgJ2FkZCcsICctLWFsbCddLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ2dpdCcsICdjb21taXQnLCAnLW0nLCBgY2hvcmU6IHJlbGVhc2UgJHtuZXdWZXJzaW9ufWAsICctLWFsbG93LWVtcHR5J10sIHsgaXNRdWlldDogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIEdpdEh1YiBDTEkgaXMgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0uXG4gKlxuICogVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBHaXRIdWIgQ0xJIGlzIG5vdCBpbnN0YWxsZWQuXG4gKlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgR2l0SHViIENMSSBpcyBub3QgaW5zdGFsbGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tHaXRIdWJDbGlJbnN0YWxsZWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZXhlY0Zyb21Sb290KCdnaCAtLXZlcnNpb24nLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gIH0gY2F0Y2gge1xuICAgIHRocm93IG5ldyBFcnJvcignR2l0SHViIENMSSBpcyBub3QgaW5zdGFsbGVkLiBQbGVhc2UgaW5zdGFsbCBpdCBmcm9tIGh0dHBzOi8vY2xpLmdpdGh1Yi5jb20vJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgR2l0IGlzIGluc3RhbGxlZCBvbiB0aGUgc3lzdGVtLlxuICpcbiAqIFRocm93cyBhbiBlcnJvciBpZiBHaXQgaXMgbm90IGluc3RhbGxlZC5cbiAqXG4gKiBAdGhyb3dzIEVycm9yIGlmIEdpdCBpcyBub3QgaW5zdGFsbGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tHaXRJbnN0YWxsZWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZXhlY0Zyb21Sb290KCdnaXQgLS12ZXJzaW9uJywgeyBpc1F1aWV0OiB0cnVlIH0pO1xuICB9IGNhdGNoIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0dpdCBpcyBub3QgaW5zdGFsbGVkLiBQbGVhc2UgaW5zdGFsbCBpdCBmcm9tIGh0dHBzOi8vZ2l0LXNjbS5jb20vJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIEdpdCByZXBvc2l0b3J5IGlzIGNsZWFuLCBtZWFuaW5nIHRoZXJlIGFyZSBubyB1bmNvbW1pdHRlZCBjaGFuZ2VzLlxuICpcbiAqIFRocm93cyBhbiBlcnJvciBpZiB0aGUgR2l0IHJlcG9zaXRvcnkgaXMgbm90IGNsZWFuLlxuICpcbiAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEdpdCByZXBvc2l0b3J5IGlzIG5vdCBjbGVhbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNoZWNrR2l0UmVwb0NsZWFuKCk6IFByb21pc2U8dm9pZD4ge1xuICB0cnkge1xuICAgIGNvbnN0IHN0ZG91dCA9IGF3YWl0IGV4ZWNGcm9tUm9vdCgnZ2l0IHN0YXR1cyAtLXBvcmNlbGFpbiAtLXVudHJhY2tlZC1maWxlcz1hbGwnLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gICAgaWYgKHN0ZG91dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgfVxuICB9IGNhdGNoIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0dpdCByZXBvc2l0b3J5IGlzIG5vdCBjbGVhbi4gUGxlYXNlIGNvbW1pdCBvciBzdGFzaCB5b3VyIGNoYW5nZXMgYmVmb3JlIHJlbGVhc2luZyBhIG5ldyB2ZXJzaW9uLicpO1xuICB9XG59XG5cbi8qKlxuICogQ29waWVzIHRoZSB1cGRhdGVkIG1hbmlmZXN0IGZpbGUgdG8gdGhlIGRpc3RyaWJ1dGlvbiBidWlsZCBmb2xkZXIuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb3B5IG9wZXJhdGlvbiBpcyBjb21wbGV0ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvcHlVcGRhdGVkTWFuaWZlc3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGNwKFxuICAgIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbiksXG4gICAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5EaXN0QnVpbGQsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbikpLFxuICAgIHsgZm9yY2U6IHRydWUgfVxuICApO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhIG5ldyB2ZXJzaW9uIHN0cmluZyBiYXNlZCBvbiB0aGUgY3VycmVudCB2ZXJzaW9uIGFuZCB0aGUgc3BlY2lmaWVkIHVwZGF0ZSB0eXBlLlxuICpcbiAqIEBwYXJhbSB2ZXJzaW9uVXBkYXRlVHlwZSAtIFRoZSB0eXBlIG9mIHZlcnNpb24gdXBkYXRlIChtYWpvciwgbWlub3IsIHBhdGNoLCBiZXRhLCBvciBtYW51YWwpLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgbmV3IHZlcnNpb24gc3RyaW5nLlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgY3VycmVudCB2ZXJzaW9uIGZvcm1hdCBpcyBpbnZhbGlkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TmV3VmVyc2lvbih2ZXJzaW9uVXBkYXRlVHlwZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgdmVyc2lvblR5cGUgPSBnZXRWZXJzaW9uVXBkYXRlVHlwZSh2ZXJzaW9uVXBkYXRlVHlwZSk7XG4gIGlmICh2ZXJzaW9uVHlwZSA9PT0gVmVyc2lvblVwZGF0ZVR5cGUuTWFudWFsKSB7XG4gICAgcmV0dXJuIHZlcnNpb25VcGRhdGVUeXBlO1xuICB9XG5cbiAgY29uc3QgcGFja2FnZUpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24oKTtcbiAgY29uc3QgY3VycmVudFZlcnNpb24gPSBwYWNrYWdlSnNvbi52ZXJzaW9uID8/ICcnO1xuXG4gIGNvbnN0IG1hdGNoID0gL14oPzxNYWpvcj5cXGQrKVxcLig/PE1pbm9yPlxcZCspXFwuKD88UGF0Y2g+XFxkKykoPzotYmV0YVxcLig/PEJldGE+XFxkKykpPyQvLmV4ZWMoY3VycmVudFZlcnNpb24pO1xuICBhc3NlcnROb25OdWxsYWJsZShtYXRjaCwgYEludmFsaWQgY3VycmVudCB2ZXJzaW9uIGZvcm1hdDogJHtjdXJyZW50VmVyc2lvbn1gKTtcblxuICBjb25zdCBncm91cHMgPSBlbnN1cmVOb25OdWxsYWJsZShtYXRjaC5ncm91cHMpO1xuICBsZXQgbWFqb3IgPSBOdW1iZXIoZW5zdXJlTm9uTnVsbGFibGUoZ3JvdXBzWydNYWpvciddKSk7XG4gIGxldCBtaW5vciA9IE51bWJlcihlbnN1cmVOb25OdWxsYWJsZShncm91cHNbJ01pbm9yJ10pKTtcbiAgbGV0IHBhdGNoID0gTnVtYmVyKGVuc3VyZU5vbk51bGxhYmxlKGdyb3Vwc1snUGF0Y2gnXSkpO1xuICBsZXQgYmV0YSA9IE51bWJlcihncm91cHNbJ0JldGEnXSA/PyAnJyk7XG5cbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIEFsbCBicmFuY2hlcyBjb3ZlcmVkIGJ1dCB2OCByZXBvcnRzIHN3aXRjaCBhcyBwYXJ0aWFsLiAqL1xuICBzd2l0Y2ggKHZlcnNpb25UeXBlKSB7XG4gICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgICBjYXNlIFZlcnNpb25VcGRhdGVUeXBlLkJldGE6XG4gICAgICBpZiAoYmV0YSA9PT0gMCkge1xuICAgICAgICBwYXRjaCsrO1xuICAgICAgfVxuICAgICAgYmV0YSsrO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBWZXJzaW9uVXBkYXRlVHlwZS5NYWpvcjpcbiAgICAgIG1ham9yKys7XG4gICAgICBtaW5vciA9IDA7XG4gICAgICBwYXRjaCA9IDA7XG4gICAgICBiZXRhID0gMDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgVmVyc2lvblVwZGF0ZVR5cGUuTWlub3I6XG4gICAgICBtaW5vcisrO1xuICAgICAgcGF0Y2ggPSAwO1xuICAgICAgYmV0YSA9IDA7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFZlcnNpb25VcGRhdGVUeXBlLlBhdGNoOlxuICAgICAgaWYgKGJldGEgPT09IDApIHtcbiAgICAgICAgcGF0Y2grKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJldGEgPSAwO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIERlYWQgY29kZTogZ2V0VmVyc2lvblVwZGF0ZVR5cGUgYWxyZWFkeSB2YWxpZGF0ZXMgYWxsIGNhc2VzIGJlZm9yZSByZWFjaGluZyBnZXROZXdWZXJzaW9uIHN3aXRjaC4gKi9cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHZlcnNpb24gdXBkYXRlIHR5cGU6ICR7dmVyc2lvblR5cGV9YCk7XG4gICAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICB9XG5cbiAgcmV0dXJuIGAke1N0cmluZyhtYWpvcil9LiR7U3RyaW5nKG1pbm9yKX0uJHtTdHJpbmcocGF0Y2gpfSR7YmV0YSA+IDAgPyBgLWJldGEuJHtTdHJpbmcoYmV0YSl9YCA6ICcnfWA7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSByZWxlYXNlIG5vdGVzIGZvciBhIHNwZWNpZmljIHZlcnNpb24gZnJvbSB0aGUgY2hhbmdlbG9nLlxuICpcbiAqIEBwYXJhbSBuZXdWZXJzaW9uIC0gVGhlIG5ldyB2ZXJzaW9uIG51bWJlciBmb3Igd2hpY2ggdG8gZ2V0IHRoZSByZWxlYXNlIG5vdGVzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgcmVsZWFzZSBub3RlcyBmb3IgdGhlIHNwZWNpZmllZCB2ZXJzaW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UmVsZWFzZU5vdGVzKG5ld1ZlcnNpb246IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGNoYW5nZWxvZ1BhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZShPYnNpZGlhblBsdWdpblJlcG9QYXRocy5DaGFuZ2Vsb2dNZCk7XG4gIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShjaGFuZ2Vsb2dQYXRoLCAndXRmLTgnKTtcbiAgY29uc3QgbmV3VmVyc2lvbkVzY2FwZWQgPSByZXBsYWNlQWxsKG5ld1ZlcnNpb24sICcuJywgJ1xcXFwuJyk7XG4gIGNvbnN0IG1hdGNoID0gbmV3IFJlZ0V4cChgXFxuIyMgJHtuZXdWZXJzaW9uRXNjYXBlZH1cXG5cXG4oKC58XFxuKSs/KVxcblxcbiMjYCkuZXhlYyhjb250ZW50KTtcbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIHY4IHRyYWNrcyBvcHRpb25hbCBjaGFpbmluZyBhbmQgdGVybmFyeSBhcyBzZXBhcmF0ZSBicmFuY2hlczsgYm90aCBwYXRocyBhcmUgdGVzdGVkLiAqL1xuICBsZXQgcmVsZWFzZU5vdGVzID0gbWF0Y2g/LlsxXSA/IGAke21hdGNoWzFdfVxcblxcbmAgOiAnJztcbiAgLyogdjggaWdub3JlIHN0b3AgKi9cblxuICBjb25zdCB0YWdzID0gKGF3YWl0IGV4ZWNGcm9tUm9vdCgnZ2l0IHRhZyAtLXNvcnQ9LWNyZWF0b3JkYXRlJywgeyBpc1F1aWV0OiB0cnVlIH0pKS5zcGxpdCgvXFxyP1xcbi8pO1xuICBjb25zdCBwcmV2aW91c1ZlcnNpb24gPSB0YWdzWzFdO1xuICBsZXQgY2hhbmdlc1VybDogc3RyaW5nO1xuXG4gIGNvbnN0IHJlcG9VcmwgPSBhd2FpdCBleGVjRnJvbVJvb3QoJ2doIHJlcG8gdmlldyAtLWpzb24gdXJsIC1xIC51cmwnLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG5cbiAgaWYgKHByZXZpb3VzVmVyc2lvbikge1xuICAgIGNoYW5nZXNVcmwgPSBgJHtyZXBvVXJsfS9jb21wYXJlLyR7cHJldmlvdXNWZXJzaW9ufS4uLiR7bmV3VmVyc2lvbn1gO1xuICB9IGVsc2Uge1xuICAgIGNoYW5nZXNVcmwgPSBgJHtyZXBvVXJsfS9jb21taXRzLyR7bmV3VmVyc2lvbn1gO1xuICB9XG5cbiAgcmVsZWFzZU5vdGVzICs9IGAqKkZ1bGwgQ2hhbmdlbG9nKio6ICR7Y2hhbmdlc1VybH1gO1xuICByZXR1cm4gcmVsZWFzZU5vdGVzO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgdGhlIHR5cGUgb2YgdmVyc2lvbiB1cGRhdGUgYmFzZWQgb24gdGhlIGlucHV0IHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gdmVyc2lvblVwZGF0ZVR5cGUgLSBUaGUgaW5wdXQgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgdmVyc2lvbiB1cGRhdGUgdHlwZS5cbiAqIEByZXR1cm5zIFRoZSBjb3JyZXNwb25kaW5nIGBWZXJzaW9uVXBkYXRlVHlwZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJzaW9uVXBkYXRlVHlwZSh2ZXJzaW9uVXBkYXRlVHlwZTogc3RyaW5nKTogVmVyc2lvblVwZGF0ZVR5cGUge1xuICBjb25zdCB2ZXJzaW9uVXBkYXRlVHlwZUVudW0gPSB2ZXJzaW9uVXBkYXRlVHlwZSBhcyBWZXJzaW9uVXBkYXRlVHlwZTtcbiAgc3dpdGNoICh2ZXJzaW9uVXBkYXRlVHlwZUVudW0pIHtcbiAgICBjYXNlIFZlcnNpb25VcGRhdGVUeXBlLkJldGE6XG4gICAgY2FzZSBWZXJzaW9uVXBkYXRlVHlwZS5NYWpvcjpcbiAgICBjYXNlIFZlcnNpb25VcGRhdGVUeXBlLk1pbm9yOlxuICAgIGNhc2UgVmVyc2lvblVwZGF0ZVR5cGUuUGF0Y2g6XG4gICAgICByZXR1cm4gdmVyc2lvblVwZGF0ZVR5cGVFbnVtO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIGlmICgvXlxcZCtcXC5cXGQrXFwuXFxkKyg/Oi1bXFx3XFxkLi1dKyk/JC8udGVzdCh2ZXJzaW9uVXBkYXRlVHlwZSkpIHtcbiAgICAgICAgcmV0dXJuIFZlcnNpb25VcGRhdGVUeXBlLk1hbnVhbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFZlcnNpb25VcGRhdGVUeXBlLkludmFsaWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBQdXNoZXMgY29tbWl0cyBhbmQgdGFncyB0byB0aGUgcmVtb3RlIEdpdCByZXBvc2l0b3J5LlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcHVzaCBvcGVyYXRpb24gaXMgY29tcGxldGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnaXRQdXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjRnJvbVJvb3QoJ2dpdCBwdXNoIC0tZm9sbG93LXRhZ3MgLS1mb3JjZScsIHsgaXNRdWlldDogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBQdWJsaXNoZXMgYSBHaXRIdWIgcmVsZWFzZSBmb3IgdGhlIG5ldyB2ZXJzaW9uLlxuICpcbiAqIEhhbmRsZXMgdGhlIGNyZWF0aW9uIG9mIGEgcmVsZWFzZSBhbmQgdXBsb2FkaW5nIGZpbGVzIGZvciBlaXRoZXIgYW4gT2JzaWRpYW4gcGx1Z2luIG9yIGFub3RoZXIgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gbmV3VmVyc2lvbiAtIFRoZSBuZXcgdmVyc2lvbiBudW1iZXIgZm9yIHRoZSByZWxlYXNlLlxuICogQHBhcmFtIGlzT2JzaWRpYW5QbHVnaW4gLSBBIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgcHJvamVjdCBpcyBhbiBPYnNpZGlhbiBwbHVnaW4uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHJlbGVhc2UgaGFzIGJlZW4gcHVibGlzaGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHVibGlzaEdpdEh1YlJlbGVhc2UobmV3VmVyc2lvbjogc3RyaW5nLCBpc09ic2lkaWFuUGx1Z2luOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGxldCBmaWxlUGF0aHM6IHN0cmluZ1tdO1xuXG4gIGlmIChpc09ic2lkaWFuUGx1Z2luKSB7XG4gICAgY29uc3QgYnVpbGRGb2xkZXIgPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZShPYnNpZGlhblBsdWdpblJlcG9QYXRocy5EaXN0QnVpbGQpO1xuICAgIGNvbnN0IGZpbGVOYW1lcyA9IGF3YWl0IHJlYWRkaXJQb3NpeChidWlsZEZvbGRlcik7XG4gICAgZmlsZVBhdGhzID0gZmlsZU5hbWVzLm1hcCgoZmlsZU5hbWUpID0+IGpvaW4oYnVpbGRGb2xkZXIsIGZpbGVOYW1lKSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcmVzdWx0SnNvbiA9IGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25wbScsICdwYWNrJywgJy0tcGFjay1kZXN0aW5hdGlvbicsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuRGlzdCwgJy0tanNvbiddLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gICAgY29uc3QgcmVzdWx0ID0gSlNPTi5wYXJzZShyZXN1bHRKc29uKSBhcyBbeyBmaWxlbmFtZTogc3RyaW5nIH1dO1xuICAgIGZpbGVQYXRocyA9IFtcbiAgICAgIGpvaW4oT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0LCByZXN1bHRbMF0uZmlsZW5hbWUpLFxuICAgICAgam9pbihPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRpc3QsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuU3R5bGVzQ3NzKVxuICAgIF07XG4gIH1cblxuICBmaWxlUGF0aHMgPSBmaWxlUGF0aHMuZmlsdGVyKChmaWxlUGF0aCkgPT4gZXhpc3RzU3luYyhyZXNvbHZlUGF0aEZyb21Sb290U2FmZShmaWxlUGF0aCkpKTtcblxuICBhd2FpdCBleGVjRnJvbVJvb3QoW1xuICAgICdnaCcsXG4gICAgJ3JlbGVhc2UnLFxuICAgICdjcmVhdGUnLFxuICAgIG5ld1ZlcnNpb24sXG4gICAgLi4uZmlsZVBhdGhzLFxuICAgICctLXRpdGxlJyxcbiAgICBgdiR7bmV3VmVyc2lvbn1gLFxuICAgIC4uLihpc0JldGEobmV3VmVyc2lvbikgPyBbJy0tcHJlcmVsZWFzZSddIDogW10pLFxuICAgICctLW5vdGVzLWZpbGUnLFxuICAgICctJ1xuICBdLCB7XG4gICAgaXNRdWlldDogdHJ1ZSxcbiAgICBzdGRpbjogYXdhaXQgZ2V0UmVsZWFzZU5vdGVzKG5ld1ZlcnNpb24pXG4gIH0pO1xufVxuXG4vKipcbiAqIFVwZGF0ZXMgdGhlIGNoYW5nZWxvZyBmaWxlIHdpdGggbmV3IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGNvbW1pdCBtZXNzYWdlcy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHJlYWRzIHRoZSBjdXJyZW50IGNoYW5nZWxvZywgYXBwZW5kcyBuZXcgZW50cmllcyBmb3IgdGhlIGxhdGVzdCB2ZXJzaW9uLFxuICogYW5kIHByb21wdHMgdGhlIHVzZXIgdG8gcmV2aWV3IHRoZSBjaGFuZ2VzLlxuICpcbiAqIEBwYXJhbSBuZXdWZXJzaW9uIC0gVGhlIG5ldyB2ZXJzaW9uIG51bWJlciB0byBiZSBhZGRlZCB0byB0aGUgY2hhbmdlbG9nLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjaGFuZ2Vsb2cgdXBkYXRlIGlzIGNvbXBsZXRlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ2hhbmdlbG9nKG5ld1ZlcnNpb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBIRUFERVJfTElORVNfQ09VTlQgPSAyO1xuICBjb25zdCBjaGFuZ2Vsb2dQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQ2hhbmdlbG9nTWQpO1xuICBsZXQgcHJldmlvdXNDaGFuZ2Vsb2dMaW5lczogc3RyaW5nW107XG4gIGlmIChleGlzdHNTeW5jKGNoYW5nZWxvZ1BhdGgpKSB7XG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGNoYW5nZWxvZ1BhdGgsICd1dGYtOCcpO1xuICAgIHByZXZpb3VzQ2hhbmdlbG9nTGluZXMgPSBjb250ZW50LnNwbGl0KCdcXG4nKS5zbGljZShIRUFERVJfTElORVNfQ09VTlQpO1xuICAgIGlmIChwcmV2aW91c0NoYW5nZWxvZ0xpbmVzLmF0KC0xKSA9PT0gJycpIHtcbiAgICAgIHByZXZpb3VzQ2hhbmdlbG9nTGluZXMucG9wKCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHByZXZpb3VzQ2hhbmdlbG9nTGluZXMgPSBbXTtcbiAgfVxuXG4gIGNvbnN0IGxhc3RUYWcgPSByZXBsYWNlQWxsKHByZXZpb3VzQ2hhbmdlbG9nTGluZXNbMF0gPz8gJycsICcjIyAnLCAnJyk7XG4gIGNvbnN0IGNvbW1pdFJhbmdlID0gbGFzdFRhZyA/IGAke2xhc3RUYWd9Li5IRUFEYCA6ICdIRUFEJztcbiAgY29uc3QgY29tbWl0TWVzc2FnZXNTdHIgPSBhd2FpdCBleGVjRnJvbVJvb3QoYGdpdCBsb2cgJHtjb21taXRSYW5nZX0gLS1mb3JtYXQ9JUIgLS1maXJzdC1wYXJlbnQgLXpgLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gIGNvbnN0IGNvbW1pdE1lc3NhZ2VzID0gY29tbWl0TWVzc2FnZXNTdHIuc3BsaXQoJ1xcMCcpLmZpbHRlcihCb29sZWFuKS5tYXAodG9TaW5nbGVMaW5lKTtcblxuICBsZXQgbmV3Q2hhbmdlTG9nID0gYCMgQ0hBTkdFTE9HXFxuXFxuIyMgJHtuZXdWZXJzaW9ufVxcblxcbmA7XG5cbiAgZm9yIChjb25zdCBtZXNzYWdlIG9mIGNvbW1pdE1lc3NhZ2VzKSB7XG4gICAgbmV3Q2hhbmdlTG9nICs9IGAtICR7bWVzc2FnZX1cXG5gO1xuICB9XG5cbiAgaWYgKHByZXZpb3VzQ2hhbmdlbG9nTGluZXMubGVuZ3RoID4gMCkge1xuICAgIG5ld0NoYW5nZUxvZyArPSAnXFxuJztcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgcHJldmlvdXNDaGFuZ2Vsb2dMaW5lcykge1xuICAgICAgbmV3Q2hhbmdlTG9nICs9IGAke2xpbmV9XFxuYDtcbiAgICB9XG4gIH1cblxuICBhd2FpdCB3cml0ZUZpbGUoY2hhbmdlbG9nUGF0aCwgbmV3Q2hhbmdlTG9nLCAndXRmLTgnKTtcblxuICBjb25zdCBjb2RlVmVyc2lvbiA9IGF3YWl0IGV4ZWNGcm9tUm9vdCgnY29kZSAtLXZlcnNpb24nLCB7XG4gICAgaXNRdWlldDogdHJ1ZSxcbiAgICBzaG91bGRJZ25vcmVFeGl0Q29kZTogdHJ1ZVxuICB9KTtcbiAgY29uc3QgdmVyc2lvbkRlYnVnZ2VyID0gZ2V0TGliRGVidWdnZXIoJ1ZlcnNpb24nKTtcbiAgaWYgKGNvZGVWZXJzaW9uKSB7XG4gICAgdmVyc2lvbkRlYnVnZ2VyKGBQbGVhc2UgdXBkYXRlIHRoZSAke09ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkNoYW5nZWxvZ01kfSBmaWxlLiBDbG9zZSBWaXN1YWwgU3R1ZGlvIENvZGUgd2hlbiB5b3UgYXJlIGRvbmUuLi5gKTtcbiAgICBhd2FpdCBleGVjRnJvbVJvb3QoWydjb2RlJywgJy13JywgY2hhbmdlbG9nUGF0aF0sIHtcbiAgICAgIGlzUXVpZXQ6IHRydWUsXG4gICAgICBzaG91bGRJZ25vcmVFeGl0Q29kZTogdHJ1ZVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHZlcnNpb25EZWJ1Z2dlcignQ291bGQgbm90IGZpbmQgVmlzdWFsIFN0dWRpbyBDb2RlIGluIHlvdXIgUEFUSC4gVXNpbmcgY29uc29sZSBtb2RlIGluc3RlYWQuJyk7XG4gICAgYXdhaXQgY3JlYXRlSW50ZXJmYWNlKHByb2Nlc3Muc3RkaW4sIHByb2Nlc3Muc3Rkb3V0KS5xdWVzdGlvbihcbiAgICAgIGBQbGVhc2UgdXBkYXRlIHRoZSAke09ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkNoYW5nZWxvZ01kfSBmaWxlLiBQcmVzcyBFbnRlciB3aGVuIHlvdSBhcmUgZG9uZS4uLmBcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgdmVyc2lvbiBvZiB0aGUgcHJvamVjdCBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIHVwZGF0ZSB0eXBlLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBzZXJpZXMgb2YgdGFza3MgdG8gaGFuZGxlIHZlcnNpb24gdXBkYXRlczpcbiAqIDEuIFZhbGlkYXRlcyB0aGUgdmVyc2lvbiB1cGRhdGUgdHlwZS5cbiAqIDIuIENoZWNrcyBpZiBHaXQgYW5kIEdpdEh1YiBDTEkgYXJlIGluc3RhbGxlZC5cbiAqIDMuIFZlcmlmaWVzIHRoYXQgdGhlIEdpdCByZXBvc2l0b3J5IGlzIGNsZWFuLlxuICogNC4gUnVucyBzcGVsbGNoZWNrIGFuZCBsaW50aW5nLlxuICogNS4gQnVpbGRzIHRoZSBwcm9qZWN0LlxuICogNi4gVXBkYXRlcyB2ZXJzaW9uIGluIGZpbGVzIGFuZCBjaGFuZ2Vsb2cuXG4gKiA3LiBBZGRzIHVwZGF0ZWQgZmlsZXMgdG8gR2l0LCB0YWdzIHRoZSBjb21taXQsIGFuZCBwdXNoZXMgdG8gdGhlIHJlcG9zaXRvcnkuXG4gKiA4LiBJZiBhbiBPYnNpZGlhbiBwbHVnaW4sIGNvcGllcyB0aGUgdXBkYXRlZCBtYW5pZmVzdCBhbmQgcHVibGlzaGVzIGEgR2l0SHViIHJlbGVhc2UuXG4gKlxuICogQHBhcmFtIHZlcnNpb25VcGRhdGVUeXBlIC0gVGhlIHR5cGUgb2YgdmVyc2lvbiB1cGRhdGUgdG8gcGVyZm9ybSAobWFqb3IsIG1pbm9yLCBwYXRjaCwgYmV0YSwgb3IgeC55LnpbLWJldGE6dV0pLlxuICogQHBhcmFtIHByZXBhcmVHaXRIdWJSZWxlYXNlIC0gQSBjYWxsYmFjayBmdW5jdGlvbiB0byBwcmVwYXJlIHRoZSBHaXRIdWIgcmVsZWFzZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdmVyc2lvbiB1cGRhdGUgaXMgY29tcGxldGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGRhdGVWZXJzaW9uKHZlcnNpb25VcGRhdGVUeXBlPzogc3RyaW5nLCBwcmVwYXJlR2l0SHViUmVsZWFzZT86IChuZXdWZXJzaW9uOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCF2ZXJzaW9uVXBkYXRlVHlwZSkge1xuICAgIGNvbnN0IG5wbU9sZFZlcnNpb24gPSBwcm9jZXNzLmVudlsnbnBtX29sZF92ZXJzaW9uJ107XG4gICAgY29uc3QgbnBtTmV3VmVyc2lvbiA9IHByb2Nlc3MuZW52WyducG1fbmV3X3ZlcnNpb24nXTtcblxuICAgIGlmIChucG1PbGRWZXJzaW9uICYmIG5wbU5ld1ZlcnNpb24pIHtcbiAgICAgIGF3YWl0IHVwZGF0ZVZlcnNpb25JbkZpbGVzKG5wbU9sZFZlcnNpb24pO1xuICAgICAgYXdhaXQgdXBkYXRlVmVyc2lvbihucG1OZXdWZXJzaW9uLCBwcmVwYXJlR2l0SHViUmVsZWFzZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyB2ZXJzaW9uIHVwZGF0ZSB0eXBlIHByb3ZpZGVkJyk7XG4gIH1cblxuICBjb25zdCBpc09ic2lkaWFuUGx1Z2luID0gZXhpc3RzU3luYyhyZXNvbHZlUGF0aEZyb21Sb290U2FmZShPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEpzb24pKSAmJiAoYXdhaXQgcmVhZFBhY2thZ2VKc29uKCkpLm5hbWUgIT09ICdvYnNpZGlhbi1kZXYtdXRpbHMnO1xuXG4gIHZhbGlkYXRlKHZlcnNpb25VcGRhdGVUeXBlKTtcbiAgYXdhaXQgY2hlY2tHaXRJbnN0YWxsZWQoKTtcbiAgYXdhaXQgY2hlY2tHaXRSZXBvQ2xlYW4oKTtcbiAgYXdhaXQgY2hlY2tHaXRIdWJDbGlJbnN0YWxsZWQoKTtcbiAgYXdhaXQgbnBtUnVuKCdmb3JtYXQ6Y2hlY2snKTtcbiAgYXdhaXQgbnBtUnVuKCdzcGVsbGNoZWNrJyk7XG4gIGF3YWl0IG5wbVJ1bignbGludDptZCcpO1xuICBhd2FpdCBucG1SdW4oJ2J1aWxkJyk7XG4gIGF3YWl0IG5wbVJ1bignbGludCcpO1xuICBhd2FpdCBucG1SdW5PcHRpb25hbCgndGVzdCcpO1xuXG4gIGNvbnN0IG5ld1ZlcnNpb24gPSBhd2FpdCBnZXROZXdWZXJzaW9uKHZlcnNpb25VcGRhdGVUeXBlKTtcbiAgYXdhaXQgdXBkYXRlVmVyc2lvbkluRmlsZXMobmV3VmVyc2lvbik7XG4gIGlmIChpc09ic2lkaWFuUGx1Z2luKSB7XG4gICAgYXdhaXQgdXBkYXRlVmVyc2lvbkluRmlsZXNGb3JQbHVnaW4obmV3VmVyc2lvbik7XG4gIH1cblxuICBhd2FpdCB1cGRhdGVDaGFuZ2Vsb2cobmV3VmVyc2lvbik7XG4gIGF3YWl0IGFkZFVwZGF0ZWRGaWxlc1RvR2l0KG5ld1ZlcnNpb24pO1xuICBhd2FpdCBhZGRHaXRUYWcobmV3VmVyc2lvbik7XG4gIGF3YWl0IGdpdFB1c2goKTtcbiAgYXdhaXQgcHJlcGFyZUdpdEh1YlJlbGVhc2U/LihuZXdWZXJzaW9uKTtcbiAgYXdhaXQgcHVibGlzaEdpdEh1YlJlbGVhc2UobmV3VmVyc2lvbiwgaXNPYnNpZGlhblBsdWdpbik7XG59XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgdmVyc2lvbiBpbiB2YXJpb3VzIGZpbGVzLCBpbmNsdWRpbmcgYHBhY2thZ2UuanNvbmAsIGBwYWNrYWdlLWxvY2suanNvbmAsXG4gKiBhbmQgT2JzaWRpYW4gcGx1Z2luIG1hbmlmZXN0cyBpZiBhcHBsaWNhYmxlLlxuICpcbiAqIEBwYXJhbSBuZXdWZXJzaW9uIC0gVGhlIG5ldyB2ZXJzaW9uIHN0cmluZyB0byB1cGRhdGUgaW4gdGhlIGZpbGVzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB1cGRhdGUgaXMgY29tcGxldGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGRhdGVWZXJzaW9uSW5GaWxlcyhuZXdWZXJzaW9uOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZWRpdFBhY2thZ2VKc29uKChwYWNrYWdlSnNvbikgPT4ge1xuICAgIHBhY2thZ2VKc29uLnZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICB9KTtcblxuICBhd2FpdCBlZGl0UGFja2FnZUxvY2tKc29uKHVwZGF0ZSwgeyBzaG91bGRTa2lwSWZNaXNzaW5nOiB0cnVlIH0pO1xuICBhd2FpdCBlZGl0TnBtU2hyaW5rV3JhcEpzb24odXBkYXRlLCB7IHNob3VsZFNraXBJZk1pc3Npbmc6IHRydWUgfSk7XG5cbiAgZnVuY3Rpb24gdXBkYXRlKHBhY2thZ2VMb2NrSnNvbjogUGFja2FnZUxvY2tKc29uKTogdm9pZCB7XG4gICAgcGFja2FnZUxvY2tKc29uLnZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICAgIGNvbnN0IGRlZmF1bHRQYWNrYWdlID0gcGFja2FnZUxvY2tKc29uLnBhY2thZ2VzPy5bJyddO1xuICAgIGlmIChkZWZhdWx0UGFja2FnZSkge1xuICAgICAgZGVmYXVsdFBhY2thZ2UudmVyc2lvbiA9IG5ld1ZlcnNpb247XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIHRoZSB2ZXJzaW9uIHVwZGF0ZSB0eXBlIHRvIGVuc3VyZSBpdCBpcyBlaXRoZXIgYSByZWNvZ25pemVkIHR5cGVcbiAqIG9yIGEgdmFsaWQgbWFudWFsIHZlcnNpb24gc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB2ZXJzaW9uVXBkYXRlVHlwZSAtIFRoZSB2ZXJzaW9uIHVwZGF0ZSB0eXBlIHRvIHZhbGlkYXRlLlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgdmVyc2lvbiB1cGRhdGUgdHlwZSBpcyBpbnZhbGlkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGUodmVyc2lvblVwZGF0ZVR5cGU6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoZ2V0VmVyc2lvblVwZGF0ZVR5cGUodmVyc2lvblVwZGF0ZVR5cGUpID09PSBWZXJzaW9uVXBkYXRlVHlwZS5JbnZhbGlkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZlcnNpb24gdXBkYXRlIHR5cGUuIFBsZWFzZSB1c2UgXFwnbWFqb3JcXCcsIFxcJ21pbm9yXFwnLCBcXCdwYXRjaFxcJywgb3IgXFwneC55LnpbLXN1ZmZpeF1cXCcgZm9ybWF0LicpO1xuICB9XG59XG5cbi8qKlxuICogRmV0Y2hlcyB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgT2JzaWRpYW4gZnJvbSB0aGUgR2l0SHViIHJlbGVhc2VzIEFQSS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiBPYnNpZGlhbi5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0TGF0ZXN0T2JzaWRpYW5WZXJzaW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHMgLS0gV2UgcnVuIHRoaXMgb3V0c2lkZSBvZiBPYnNpZGlhbiwgc28gd2UgZG9uJ3QgaGF2ZSBgcmVxdWVzdFVybCgpYC5cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9vYnNpZGlhbm1kL29ic2lkaWFuLXJlbGVhc2VzL3JlbGVhc2VzL2xhdGVzdCcpO1xuICBjb25zdCBvYnNpZGlhblJlbGVhc2VzSnNvbiA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKSBhcyBQYXJ0aWFsPE9ic2lkaWFuUmVsZWFzZXNKc29uPjtcbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIEVycm9yIHBhdGg6IEdpdEh1YiBBUEkgYWx3YXlzIHJldHVybnMgYSBuYW1lIGZvciB2YWxpZCByZWxlYXNlcy4gKi9cbiAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKG9ic2lkaWFuUmVsZWFzZXNKc29uLm5hbWUsICdDb3VsZCBub3QgZmluZCB0aGUgbmFtZSBvZiB0aGUgbGF0ZXN0IE9ic2lkaWFuIHJlbGVhc2UnKTtcbiAgLyogdjggaWdub3JlIHN0b3AgKi9cbn1cblxuZnVuY3Rpb24gaXNCZXRhKHZlcnNpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmVyc2lvbi5pbmNsdWRlcyhWZXJzaW9uVXBkYXRlVHlwZS5CZXRhKTtcbn1cblxuZnVuY3Rpb24gdG9TaW5nbGVMaW5lKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbGluZXMgPSBzdHIuc3BsaXQoL1xccj9cXG4vKS5maWx0ZXIoQm9vbGVhbik7XG4gIHJldHVybiBsaW5lcy5qb2luKCcgJyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVZlcnNpb25JbkZpbGVzRm9yUGx1Z2luKG5ld1ZlcnNpb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBtYW5pZmVzdEJldGFKc29uUGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0QmV0YUpzb24pO1xuICBpZiAoaXNCZXRhKG5ld1ZlcnNpb24pKSB7XG4gICAgYXdhaXQgY3AoXG4gICAgICByZXNvbHZlUGF0aEZyb21Sb290U2FmZShPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEpzb24pLFxuICAgICAgbWFuaWZlc3RCZXRhSnNvblBhdGgsXG4gICAgICB7IGZvcmNlOiB0cnVlIH1cbiAgICApO1xuICAgIGF3YWl0IGVkaXRKc29uPE1hbmlmZXN0PihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEJldGFKc29uLCAobWFuaWZlc3QpID0+IHtcbiAgICAgIG1hbmlmZXN0LnZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGxhdGVzdE9ic2lkaWFuVmVyc2lvbiA9IGF3YWl0IGdldExhdGVzdE9ic2lkaWFuVmVyc2lvbigpO1xuXG4gICAgYXdhaXQgZWRpdEpzb248TWFuaWZlc3Q+KE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbiwgKG1hbmlmZXN0KSA9PiB7XG4gICAgICBtYW5pZmVzdC5taW5BcHBWZXJzaW9uID0gbGF0ZXN0T2JzaWRpYW5WZXJzaW9uO1xuICAgICAgbWFuaWZlc3QudmVyc2lvbiA9IG5ld1ZlcnNpb247XG4gICAgfSk7XG5cbiAgICBhd2FpdCBlZGl0SnNvbjxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5WZXJzaW9uc0pzb24sICh2ZXJzaW9ucykgPT4ge1xuICAgICAgdmVyc2lvbnNbbmV3VmVyc2lvbl0gPSBsYXRlc3RPYnNpZGlhblZlcnNpb247XG4gICAgfSk7XG5cbiAgICBpZiAoZXhpc3RzU3luYyhtYW5pZmVzdEJldGFKc29uUGF0aCkpIHtcbiAgICAgIGF3YWl0IHJtKG1hbmlmZXN0QmV0YUpzb25QYXRoKTtcbiAgICB9XG4gIH1cblxuICBhd2FpdCBjb3B5VXBkYXRlZE1hbmlmZXN0KCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBLG1CQUErQjtBQUMvQixxQ0FBd0M7QUFDeEMsa0JBQXFCO0FBQ3JCLG9CQUEyQjtBQUMzQix3QkFHTztBQUNQLGdCQUE2QjtBQUM3QixrQkFBeUI7QUFDekIseUJBT087QUFDUCxpQkFLTztBQUNQLG9CQUdPO0FBQ1AsdUNBQTBDO0FBQzFDLGtCQUdPO0FBS0EsSUFBSyxvQkFBTCxrQkFBS0EsdUJBQUw7QUFDTCxFQUFBQSxtQkFBQSxVQUFPO0FBQ1AsRUFBQUEsbUJBQUEsYUFBVTtBQUNWLEVBQUFBLG1CQUFBLFdBQVE7QUFDUixFQUFBQSxtQkFBQSxZQUFTO0FBQ1QsRUFBQUEsbUJBQUEsV0FBUTtBQUNSLEVBQUFBLG1CQUFBLFdBQVE7QUFORSxTQUFBQTtBQUFBLEdBQUE7QUF3Q1os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QUFnQjtBQUNyQyxnQkFBWSxVQUFVO0FBQUEsRUFDeEIsQ0FBQztBQUVELFlBQU0sZ0NBQW9CLFFBQVEsRUFBRSxxQkFBcUIsS0FBSyxDQUFDO0FBQy9ELFlBQU0sa0NBQXNCLFFBQVEsRUFBRSxxQkFBcUIsS0FBSyxDQUFDO0FBRWpFLFdBQVMsT0FBTyxpQkFBd0M7QUFDdEQsb0JBQWdCLFVBQVU7QUFDMUIsVUFBTSxpQkFBaUIsZ0JBQWdCLFdBQVcsRUFBRTtBQUNwRCxRQUFJLGdCQUFnQjtBQUNsQixxQkFBZSxVQUFVO0FBQUEsSUFDM0I7QUFBQSxFQUNGO0FBQ0Y7QUFTTyxTQUFTLFNBQVMsbUJBQWlDO0FBQ3hELE1BQUkscUJBQXFCLGlCQUFpQixNQUFNLHlCQUEyQjtBQUN6RSxVQUFNLElBQUksTUFBTSxnR0FBd0c7QUFBQSxFQUMxSDtBQUNGO0FBT0EsZUFBZSwyQkFBNEM7QUFFekQsUUFBTSxXQUFXLE1BQU0sTUFBTSwyRUFBMkU7QUFDeEcsUUFBTSx1QkFBdUIsTUFBTSxTQUFTLEtBQUs7QUFFakQsYUFBTyxxQ0FBa0IscUJBQXFCLE1BQU0sd0RBQXdEO0FBRTlHO0FBRUEsU0FBUyxPQUFPLFNBQTBCO0FBQ3hDLFNBQU8sUUFBUSxTQUFTLGlCQUFzQjtBQUNoRDtBQUVBLFNBQVMsYUFBYSxLQUFxQjtBQUN6QyxRQUFNLFFBQVEsSUFBSSxNQUFNLE9BQU8sRUFBRSxPQUFPLE9BQU87QUFDL0MsU0FBTyxNQUFNLEtBQUssR0FBRztBQUN2QjtBQUVBLGVBQWUsOEJBQThCLFlBQW1DO0FBQzlFLFFBQU0sMkJBQXVCLHFDQUF3Qix1REFBd0IsZ0JBQWdCO0FBQzdGLE1BQUksT0FBTyxVQUFVLEdBQUc7QUFDdEIsY0FBTTtBQUFBLFVBQ0oscUNBQXdCLHVEQUF3QixZQUFZO0FBQUEsTUFDNUQ7QUFBQSxNQUNBLEVBQUUsT0FBTyxLQUFLO0FBQUEsSUFDaEI7QUFDQSxjQUFNLHNCQUFtQix1REFBd0Isa0JBQWtCLENBQUMsYUFBYTtBQUMvRSxlQUFTLFVBQVU7QUFBQSxJQUNyQixDQUFDO0FBQUEsRUFDSCxPQUFPO0FBQ0wsVUFBTSx3QkFBd0IsTUFBTSx5QkFBeUI7QUFFN0QsY0FBTSxzQkFBbUIsdURBQXdCLGNBQWMsQ0FBQyxhQUFhO0FBQzNFLGVBQVMsZ0JBQWdCO0FBQ3pCLGVBQVMsVUFBVTtBQUFBLElBQ3JCLENBQUM7QUFFRCxjQUFNLHNCQUFpQyx1REFBd0IsY0FBYyxDQUFDLGFBQWE7QUFDekYsZUFBUyxVQUFVLElBQUk7QUFBQSxJQUN6QixDQUFDO0FBRUQsWUFBSSwrQkFBVyxvQkFBb0IsR0FBRztBQUNwQyxnQkFBTSx1QkFBRyxvQkFBb0I7QUFBQSxJQUMvQjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLG9CQUFvQjtBQUM1QjsiLAogICJuYW1lcyI6IFsiVmVyc2lvblVwZGF0ZVR5cGUiXQp9Cg==
484
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL1NjcmlwdFV0aWxzL3ZlcnNpb24udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgZnVuY3Rpb25zIGZvciBtYW5hZ2luZyB2ZXJzaW9uIHVwZGF0ZXMgaW4gYSBwcm9qZWN0LlxuICogSXQgaW5jbHVkZXMgdGFza3Mgc3VjaCBhcyB2YWxpZGF0aW5nIHZlcnNpb24gdXBkYXRlIHR5cGVzLCBjaGVja2luZyB0aGUgc3RhdGVcbiAqIG9mIEdpdCBhbmQgR2l0SHViIENMSSwgdXBkYXRpbmcgdmVyc2lvbiBudW1iZXJzIGluIGZpbGVzLCBhbmQgcGVyZm9ybWluZ1xuICogR2l0IG9wZXJhdGlvbnMgc3VjaCBhcyB0YWdnaW5nIGFuZCBwdXNoaW5nLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUGFja2FnZUxvY2tKc29uIH0gZnJvbSAnLi9OcG0udHMnO1xuXG5pbXBvcnQgeyBnZXRMaWJEZWJ1Z2dlciB9IGZyb20gJy4uL0RlYnVnLnRzJztcbmltcG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi4vb2JzaWRpYW4vUGx1Z2luL09ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLnRzJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICcuLi9QYXRoLnRzJztcbmltcG9ydCB7IHJlcGxhY2VBbGwgfSBmcm9tICcuLi9TdHJpbmcudHMnO1xuaW1wb3J0IHtcbiAgYXNzZXJ0Tm9uTnVsbGFibGUsXG4gIGVuc3VyZU5vbk51bGxhYmxlXG59IGZyb20gJy4uL1R5cGVHdWFyZHMudHMnO1xuaW1wb3J0IHsgcmVhZGRpclBvc2l4IH0gZnJvbSAnLi9Gcy50cyc7XG5pbXBvcnQgeyBlZGl0SnNvbiB9IGZyb20gJy4vSlNPTi50cyc7XG5pbXBvcnQge1xuICBjcCxcbiAgY3JlYXRlSW50ZXJmYWNlLFxuICBleGlzdHNTeW5jLFxuICByZWFkRmlsZSxcbiAgcm0sXG4gIHdyaXRlRmlsZVxufSBmcm9tICcuL05vZGVNb2R1bGVzLnRzJztcbmltcG9ydCB7XG4gIGVkaXROcG1TaHJpbmtXcmFwSnNvbixcbiAgZWRpdFBhY2thZ2VKc29uLFxuICBlZGl0UGFja2FnZUxvY2tKc29uLFxuICByZWFkUGFja2FnZUpzb25cbn0gZnJvbSAnLi9OcG0udHMnO1xuaW1wb3J0IHtcbiAgbnBtUnVuLFxuICBucG1SdW5PcHRpb25hbFxufSBmcm9tICcuL05wbVJ1bi50cyc7XG5pbXBvcnQgeyBPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzIH0gZnJvbSAnLi9PYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLnRzJztcbmltcG9ydCB7XG4gIGV4ZWNGcm9tUm9vdCxcbiAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmVcbn0gZnJvbSAnLi9Sb290LnRzJztcblxuLyoqXG4gKiBFbnVtIHJlcHJlc2VudGluZyBkaWZmZXJlbnQgdHlwZXMgb2YgdmVyc2lvbiB1cGRhdGVzLlxuICovXG5leHBvcnQgZW51bSBWZXJzaW9uVXBkYXRlVHlwZSB7XG4gIEJldGEgPSAnYmV0YScsXG4gIEludmFsaWQgPSAnaW52YWxpZCcsXG4gIE1ham9yID0gJ21ham9yJyxcbiAgTWFudWFsID0gJ21hbnVhbCcsXG4gIE1pbm9yID0gJ21pbm9yJyxcbiAgUGF0Y2ggPSAncGF0Y2gnXG59XG5cbi8qKlxuICogVHlwZSByZXByZXNlbnRpbmcgdGhlIG1hbmlmZXN0IGZpbGUgZm9ybWF0IGZvciBPYnNpZGlhbiBwbHVnaW5zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hbmlmZXN0IHtcbiAgLyoqXG4gICAqIEEgbWluaW11bSBPYnNpZGlhbiB2ZXJzaW9uIHJlcXVpcmVkIGZvciB0aGUgcGx1Z2luLlxuICAgKi9cbiAgbWluQXBwVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHZlcnNpb24gb2YgdGhlIHBsdWdpbi5cbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgc3RydWN0dXJlIG9mIE9ic2lkaWFuIHJlbGVhc2VzIEpTT04uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2JzaWRpYW5SZWxlYXNlc0pzb24ge1xuICAvKipcbiAgICogQSBuYW1lIG9mIHRoZSBPYnNpZGlhbiByZWxlYXNlLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBHaXQgdGFnIGZvciB0aGUgbmV3IHZlcnNpb24uXG4gKlxuICogQHBhcmFtIG5ld1ZlcnNpb24gLSBUaGUgbmV3IHZlcnNpb24gbnVtYmVyIHRvIHVzZSBmb3IgdGhlIHRhZy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdGFnIGhhcyBiZWVuIGNyZWF0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhZGRHaXRUYWcobmV3VmVyc2lvbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChgZ2l0IHRhZyAtYSAke25ld1ZlcnNpb259IC1tICR7bmV3VmVyc2lvbn0gLS1mb3JjZWAsIHsgaXNRdWlldDogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBBZGRzIHVwZGF0ZWQgZmlsZXMgdG8gdGhlIEdpdCBzdGFnaW5nIGFyZWEgYW5kIGNvbW1pdHMgdGhlbSB3aXRoIHRoZSBuZXcgdmVyc2lvbiBtZXNzYWdlLlxuICpcbiAqIEBwYXJhbSBuZXdWZXJzaW9uIC0gVGhlIG5ldyB2ZXJzaW9uIG51bWJlciB1c2VkIGFzIHRoZSBjb21taXQgbWVzc2FnZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZmlsZXMgaGF2ZSBiZWVuIGFkZGVkIGFuZCBjb21taXR0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhZGRVcGRhdGVkRmlsZXNUb0dpdChuZXdWZXJzaW9uOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZXhlY0Zyb21Sb290KFsnZ2l0JywgJ2FkZCcsICctLWFsbCddLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gIGF3YWl0IGV4ZWNGcm9tUm9vdChbJ2dpdCcsICdjb21taXQnLCAnLW0nLCBgY2hvcmU6IHJlbGVhc2UgJHtuZXdWZXJzaW9ufWAsICctLWFsbG93LWVtcHR5J10sIHsgaXNRdWlldDogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIEdpdEh1YiBDTEkgaXMgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0uXG4gKlxuICogVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBHaXRIdWIgQ0xJIGlzIG5vdCBpbnN0YWxsZWQuXG4gKlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgR2l0SHViIENMSSBpcyBub3QgaW5zdGFsbGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tHaXRIdWJDbGlJbnN0YWxsZWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZXhlY0Zyb21Sb290KCdnaCAtLXZlcnNpb24nLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gIH0gY2F0Y2gge1xuICAgIHRocm93IG5ldyBFcnJvcignR2l0SHViIENMSSBpcyBub3QgaW5zdGFsbGVkLiBQbGVhc2UgaW5zdGFsbCBpdCBmcm9tIGh0dHBzOi8vY2xpLmdpdGh1Yi5jb20vJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgR2l0IGlzIGluc3RhbGxlZCBvbiB0aGUgc3lzdGVtLlxuICpcbiAqIFRocm93cyBhbiBlcnJvciBpZiBHaXQgaXMgbm90IGluc3RhbGxlZC5cbiAqXG4gKiBAdGhyb3dzIEVycm9yIGlmIEdpdCBpcyBub3QgaW5zdGFsbGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tHaXRJbnN0YWxsZWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZXhlY0Zyb21Sb290KCdnaXQgLS12ZXJzaW9uJywgeyBpc1F1aWV0OiB0cnVlIH0pO1xuICB9IGNhdGNoIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0dpdCBpcyBub3QgaW5zdGFsbGVkLiBQbGVhc2UgaW5zdGFsbCBpdCBmcm9tIGh0dHBzOi8vZ2l0LXNjbS5jb20vJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIEdpdCByZXBvc2l0b3J5IGlzIGNsZWFuLCBtZWFuaW5nIHRoZXJlIGFyZSBubyB1bmNvbW1pdHRlZCBjaGFuZ2VzLlxuICpcbiAqIFRocm93cyBhbiBlcnJvciBpZiB0aGUgR2l0IHJlcG9zaXRvcnkgaXMgbm90IGNsZWFuLlxuICpcbiAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEdpdCByZXBvc2l0b3J5IGlzIG5vdCBjbGVhbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNoZWNrR2l0UmVwb0NsZWFuKCk6IFByb21pc2U8dm9pZD4ge1xuICB0cnkge1xuICAgIGNvbnN0IHN0ZG91dCA9IGF3YWl0IGV4ZWNGcm9tUm9vdCgnZ2l0IHN0YXR1cyAtLXBvcmNlbGFpbiAtLXVudHJhY2tlZC1maWxlcz1hbGwnLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gICAgaWYgKHN0ZG91dCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gICAgfVxuICB9IGNhdGNoIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0dpdCByZXBvc2l0b3J5IGlzIG5vdCBjbGVhbi4gUGxlYXNlIGNvbW1pdCBvciBzdGFzaCB5b3VyIGNoYW5nZXMgYmVmb3JlIHJlbGVhc2luZyBhIG5ldyB2ZXJzaW9uLicpO1xuICB9XG59XG5cbi8qKlxuICogQ29waWVzIHRoZSB1cGRhdGVkIG1hbmlmZXN0IGZpbGUgdG8gdGhlIGRpc3RyaWJ1dGlvbiBidWlsZCBmb2xkZXIuXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb3B5IG9wZXJhdGlvbiBpcyBjb21wbGV0ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvcHlVcGRhdGVkTWFuaWZlc3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IGNwKFxuICAgIHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbiksXG4gICAgcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoam9pbihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5EaXN0QnVpbGQsIE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbikpLFxuICAgIHsgZm9yY2U6IHRydWUgfVxuICApO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhIG5ldyB2ZXJzaW9uIHN0cmluZyBiYXNlZCBvbiB0aGUgY3VycmVudCB2ZXJzaW9uIGFuZCB0aGUgc3BlY2lmaWVkIHVwZGF0ZSB0eXBlLlxuICpcbiAqIEBwYXJhbSB2ZXJzaW9uVXBkYXRlVHlwZSAtIFRoZSB0eXBlIG9mIHZlcnNpb24gdXBkYXRlIChtYWpvciwgbWlub3IsIHBhdGNoLCBiZXRhLCBvciBtYW51YWwpLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgbmV3IHZlcnNpb24gc3RyaW5nLlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgY3VycmVudCB2ZXJzaW9uIGZvcm1hdCBpcyBpbnZhbGlkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TmV3VmVyc2lvbih2ZXJzaW9uVXBkYXRlVHlwZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgdmVyc2lvblR5cGUgPSBnZXRWZXJzaW9uVXBkYXRlVHlwZSh2ZXJzaW9uVXBkYXRlVHlwZSk7XG4gIGlmICh2ZXJzaW9uVHlwZSA9PT0gVmVyc2lvblVwZGF0ZVR5cGUuTWFudWFsKSB7XG4gICAgcmV0dXJuIHZlcnNpb25VcGRhdGVUeXBlO1xuICB9XG5cbiAgY29uc3QgcGFja2FnZUpzb24gPSBhd2FpdCByZWFkUGFja2FnZUpzb24oKTtcbiAgY29uc3QgY3VycmVudFZlcnNpb24gPSBwYWNrYWdlSnNvbi52ZXJzaW9uID8/ICcnO1xuXG4gIGNvbnN0IG1hdGNoID0gL14oPzxNYWpvcj5cXGQrKVxcLig/PE1pbm9yPlxcZCspXFwuKD88UGF0Y2g+XFxkKykoPzotYmV0YVxcLig/PEJldGE+XFxkKykpPyQvLmV4ZWMoY3VycmVudFZlcnNpb24pO1xuICBhc3NlcnROb25OdWxsYWJsZShtYXRjaCwgYEludmFsaWQgY3VycmVudCB2ZXJzaW9uIGZvcm1hdDogJHtjdXJyZW50VmVyc2lvbn1gKTtcblxuICBjb25zdCBncm91cHMgPSBlbnN1cmVOb25OdWxsYWJsZShtYXRjaC5ncm91cHMpO1xuICBsZXQgbWFqb3IgPSBOdW1iZXIoZW5zdXJlTm9uTnVsbGFibGUoZ3JvdXBzWydNYWpvciddKSk7XG4gIGxldCBtaW5vciA9IE51bWJlcihlbnN1cmVOb25OdWxsYWJsZShncm91cHNbJ01pbm9yJ10pKTtcbiAgbGV0IHBhdGNoID0gTnVtYmVyKGVuc3VyZU5vbk51bGxhYmxlKGdyb3Vwc1snUGF0Y2gnXSkpO1xuICBsZXQgYmV0YSA9IE51bWJlcihncm91cHNbJ0JldGEnXSA/PyAnJyk7XG5cbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIEFsbCBicmFuY2hlcyBjb3ZlcmVkIGJ1dCB2OCByZXBvcnRzIHN3aXRjaCBhcyBwYXJ0aWFsLiAqL1xuICBzd2l0Y2ggKHZlcnNpb25UeXBlKSB7XG4gICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgICBjYXNlIFZlcnNpb25VcGRhdGVUeXBlLkJldGE6XG4gICAgICBpZiAoYmV0YSA9PT0gMCkge1xuICAgICAgICBwYXRjaCsrO1xuICAgICAgfVxuICAgICAgYmV0YSsrO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBWZXJzaW9uVXBkYXRlVHlwZS5NYWpvcjpcbiAgICAgIG1ham9yKys7XG4gICAgICBtaW5vciA9IDA7XG4gICAgICBwYXRjaCA9IDA7XG4gICAgICBiZXRhID0gMDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgVmVyc2lvblVwZGF0ZVR5cGUuTWlub3I6XG4gICAgICBtaW5vcisrO1xuICAgICAgcGF0Y2ggPSAwO1xuICAgICAgYmV0YSA9IDA7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFZlcnNpb25VcGRhdGVUeXBlLlBhdGNoOlxuICAgICAgaWYgKGJldGEgPT09IDApIHtcbiAgICAgICAgcGF0Y2grKztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJldGEgPSAwO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIERlYWQgY29kZTogZ2V0VmVyc2lvblVwZGF0ZVR5cGUgYWxyZWFkeSB2YWxpZGF0ZXMgYWxsIGNhc2VzIGJlZm9yZSByZWFjaGluZyBnZXROZXdWZXJzaW9uIHN3aXRjaC4gKi9cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHZlcnNpb24gdXBkYXRlIHR5cGU6ICR7dmVyc2lvblR5cGV9YCk7XG4gICAgICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuICB9XG5cbiAgcmV0dXJuIGAke1N0cmluZyhtYWpvcil9LiR7U3RyaW5nKG1pbm9yKX0uJHtTdHJpbmcocGF0Y2gpfSR7YmV0YSA+IDAgPyBgLWJldGEuJHtTdHJpbmcoYmV0YSl9YCA6ICcnfWA7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSByZWxlYXNlIG5vdGVzIGZvciBhIHNwZWNpZmljIHZlcnNpb24gZnJvbSB0aGUgY2hhbmdlbG9nLlxuICpcbiAqIEBwYXJhbSBuZXdWZXJzaW9uIC0gVGhlIG5ldyB2ZXJzaW9uIG51bWJlciBmb3Igd2hpY2ggdG8gZ2V0IHRoZSByZWxlYXNlIG5vdGVzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgcmVsZWFzZSBub3RlcyBmb3IgdGhlIHNwZWNpZmllZCB2ZXJzaW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UmVsZWFzZU5vdGVzKG5ld1ZlcnNpb246IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGNoYW5nZWxvZ1BhdGggPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZShPYnNpZGlhblBsdWdpblJlcG9QYXRocy5DaGFuZ2Vsb2dNZCk7XG4gIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCByZWFkRmlsZShjaGFuZ2Vsb2dQYXRoLCAndXRmLTgnKTtcbiAgY29uc3QgbmV3VmVyc2lvbkVzY2FwZWQgPSByZXBsYWNlQWxsKG5ld1ZlcnNpb24sICcuJywgJ1xcXFwuJyk7XG4gIGNvbnN0IG1hdGNoID0gbmV3IFJlZ0V4cChgXFxuIyMgJHtuZXdWZXJzaW9uRXNjYXBlZH1cXG5cXG4oKC58XFxuKSs/KVxcblxcbiMjYCkuZXhlYyhjb250ZW50KTtcbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIHY4IHRyYWNrcyBvcHRpb25hbCBjaGFpbmluZyBhbmQgdGVybmFyeSBhcyBzZXBhcmF0ZSBicmFuY2hlczsgYm90aCBwYXRocyBhcmUgdGVzdGVkLiAqL1xuICBsZXQgcmVsZWFzZU5vdGVzID0gbWF0Y2g/LlsxXSA/IGAke21hdGNoWzFdfVxcblxcbmAgOiAnJztcbiAgLyogdjggaWdub3JlIHN0b3AgKi9cblxuICBjb25zdCB0YWdzID0gKGF3YWl0IGV4ZWNGcm9tUm9vdCgnZ2l0IHRhZyAtLXNvcnQ9LWNyZWF0b3JkYXRlJywgeyBpc1F1aWV0OiB0cnVlIH0pKS5zcGxpdCgvXFxyP1xcbi8pO1xuICBjb25zdCBwcmV2aW91c1ZlcnNpb24gPSB0YWdzWzFdO1xuICBsZXQgY2hhbmdlc1VybDogc3RyaW5nO1xuXG4gIGNvbnN0IHJlcG9VcmwgPSBhd2FpdCBleGVjRnJvbVJvb3QoJ2doIHJlcG8gdmlldyAtLWpzb24gdXJsIC1xIC51cmwnLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG5cbiAgaWYgKHByZXZpb3VzVmVyc2lvbikge1xuICAgIGNoYW5nZXNVcmwgPSBgJHtyZXBvVXJsfS9jb21wYXJlLyR7cHJldmlvdXNWZXJzaW9ufS4uLiR7bmV3VmVyc2lvbn1gO1xuICB9IGVsc2Uge1xuICAgIGNoYW5nZXNVcmwgPSBgJHtyZXBvVXJsfS9jb21taXRzLyR7bmV3VmVyc2lvbn1gO1xuICB9XG5cbiAgcmVsZWFzZU5vdGVzICs9IGAqKkZ1bGwgQ2hhbmdlbG9nKio6ICR7Y2hhbmdlc1VybH1gO1xuICByZXR1cm4gcmVsZWFzZU5vdGVzO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgdGhlIHR5cGUgb2YgdmVyc2lvbiB1cGRhdGUgYmFzZWQgb24gdGhlIGlucHV0IHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gdmVyc2lvblVwZGF0ZVR5cGUgLSBUaGUgaW5wdXQgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgdmVyc2lvbiB1cGRhdGUgdHlwZS5cbiAqIEByZXR1cm5zIFRoZSBjb3JyZXNwb25kaW5nIGBWZXJzaW9uVXBkYXRlVHlwZWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJzaW9uVXBkYXRlVHlwZSh2ZXJzaW9uVXBkYXRlVHlwZTogc3RyaW5nKTogVmVyc2lvblVwZGF0ZVR5cGUge1xuICBjb25zdCB2ZXJzaW9uVXBkYXRlVHlwZUVudW0gPSB2ZXJzaW9uVXBkYXRlVHlwZSBhcyBWZXJzaW9uVXBkYXRlVHlwZTtcbiAgc3dpdGNoICh2ZXJzaW9uVXBkYXRlVHlwZUVudW0pIHtcbiAgICBjYXNlIFZlcnNpb25VcGRhdGVUeXBlLkJldGE6XG4gICAgY2FzZSBWZXJzaW9uVXBkYXRlVHlwZS5NYWpvcjpcbiAgICBjYXNlIFZlcnNpb25VcGRhdGVUeXBlLk1pbm9yOlxuICAgIGNhc2UgVmVyc2lvblVwZGF0ZVR5cGUuUGF0Y2g6XG4gICAgICByZXR1cm4gdmVyc2lvblVwZGF0ZVR5cGVFbnVtO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIGlmICgvXlxcZCtcXC5cXGQrXFwuXFxkKyg/Oi1bXFx3XFxkLi1dKyk/JC8udGVzdCh2ZXJzaW9uVXBkYXRlVHlwZSkpIHtcbiAgICAgICAgcmV0dXJuIFZlcnNpb25VcGRhdGVUeXBlLk1hbnVhbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFZlcnNpb25VcGRhdGVUeXBlLkludmFsaWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBQdXNoZXMgY29tbWl0cyBhbmQgdGFncyB0byB0aGUgcmVtb3RlIEdpdCByZXBvc2l0b3J5LlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcHVzaCBvcGVyYXRpb24gaXMgY29tcGxldGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnaXRQdXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBleGVjRnJvbVJvb3QoJ2dpdCBwdXNoIC0tZm9sbG93LXRhZ3MgLS1mb3JjZScsIHsgaXNRdWlldDogdHJ1ZSB9KTtcbn1cblxuLyoqXG4gKiBQdWJsaXNoZXMgYSBHaXRIdWIgcmVsZWFzZSBmb3IgdGhlIG5ldyB2ZXJzaW9uLlxuICpcbiAqIEhhbmRsZXMgdGhlIGNyZWF0aW9uIG9mIGEgcmVsZWFzZSBhbmQgdXBsb2FkaW5nIGZpbGVzIGZvciBlaXRoZXIgYW4gT2JzaWRpYW4gcGx1Z2luIG9yIGFub3RoZXIgcHJvamVjdC5cbiAqXG4gKiBAcGFyYW0gbmV3VmVyc2lvbiAtIFRoZSBuZXcgdmVyc2lvbiBudW1iZXIgZm9yIHRoZSByZWxlYXNlLlxuICogQHBhcmFtIGlzT2JzaWRpYW5QbHVnaW4gLSBBIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgcHJvamVjdCBpcyBhbiBPYnNpZGlhbiBwbHVnaW4uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHJlbGVhc2UgaGFzIGJlZW4gcHVibGlzaGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHVibGlzaEdpdEh1YlJlbGVhc2UobmV3VmVyc2lvbjogc3RyaW5nLCBpc09ic2lkaWFuUGx1Z2luOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGxldCBmaWxlUGF0aHM6IHN0cmluZ1tdO1xuXG4gIGlmIChpc09ic2lkaWFuUGx1Z2luKSB7XG4gICAgY29uc3QgYnVpbGRGb2xkZXIgPSByZXNvbHZlUGF0aEZyb21Sb290U2FmZShPYnNpZGlhblBsdWdpblJlcG9QYXRocy5EaXN0QnVpbGQpO1xuICAgIGNvbnN0IGZpbGVOYW1lcyA9IGF3YWl0IHJlYWRkaXJQb3NpeChidWlsZEZvbGRlcik7XG4gICAgZmlsZVBhdGhzID0gZmlsZU5hbWVzLm1hcCgoZmlsZU5hbWUpID0+IGpvaW4oYnVpbGRGb2xkZXIsIGZpbGVOYW1lKSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcmVzdWx0SnNvbiA9IGF3YWl0IGV4ZWNGcm9tUm9vdChbJ25wbScsICdwYWNrJywgJy0tcGFjay1kZXN0aW5hdGlvbicsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuRGlzdCwgJy0tanNvbiddLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gICAgY29uc3QgcmVzdWx0ID0gSlNPTi5wYXJzZShyZXN1bHRKc29uKSBhcyBbeyBmaWxlbmFtZTogc3RyaW5nIH1dO1xuICAgIGZpbGVQYXRocyA9IFtcbiAgICAgIGpvaW4oT2JzaWRpYW5EZXZVdGlsc1JlcG9QYXRocy5EaXN0LCByZXN1bHRbMF0uZmlsZW5hbWUpLFxuICAgICAgam9pbihPYnNpZGlhbkRldlV0aWxzUmVwb1BhdGhzLkRpc3QsIE9ic2lkaWFuRGV2VXRpbHNSZXBvUGF0aHMuU3R5bGVzQ3NzKVxuICAgIF07XG4gIH1cblxuICBmaWxlUGF0aHMgPSBmaWxlUGF0aHMuZmlsdGVyKChmaWxlUGF0aCkgPT4gZXhpc3RzU3luYyhyZXNvbHZlUGF0aEZyb21Sb290U2FmZShmaWxlUGF0aCkpKTtcblxuICBhd2FpdCBleGVjRnJvbVJvb3QoW1xuICAgICdnaCcsXG4gICAgJ3JlbGVhc2UnLFxuICAgICdjcmVhdGUnLFxuICAgIG5ld1ZlcnNpb24sXG4gICAgLi4uZmlsZVBhdGhzLFxuICAgICctLXRpdGxlJyxcbiAgICBgdiR7bmV3VmVyc2lvbn1gLFxuICAgIC4uLihpc0JldGEobmV3VmVyc2lvbikgPyBbJy0tcHJlcmVsZWFzZSddIDogW10pLFxuICAgICctLW5vdGVzLWZpbGUnLFxuICAgICctJ1xuICBdLCB7XG4gICAgaXNRdWlldDogdHJ1ZSxcbiAgICBzdGRpbjogYXdhaXQgZ2V0UmVsZWFzZU5vdGVzKG5ld1ZlcnNpb24pXG4gIH0pO1xufVxuXG4vKipcbiAqIFVwZGF0ZXMgdGhlIGNoYW5nZWxvZyBmaWxlIHdpdGggbmV3IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGNvbW1pdCBtZXNzYWdlcy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHJlYWRzIHRoZSBjdXJyZW50IGNoYW5nZWxvZywgYXBwZW5kcyBuZXcgZW50cmllcyBmb3IgdGhlIGxhdGVzdCB2ZXJzaW9uLFxuICogYW5kIHByb21wdHMgdGhlIHVzZXIgdG8gcmV2aWV3IHRoZSBjaGFuZ2VzLlxuICpcbiAqIEBwYXJhbSBuZXdWZXJzaW9uIC0gVGhlIG5ldyB2ZXJzaW9uIG51bWJlciB0byBiZSBhZGRlZCB0byB0aGUgY2hhbmdlbG9nLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjaGFuZ2Vsb2cgdXBkYXRlIGlzIGNvbXBsZXRlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlQ2hhbmdlbG9nKG5ld1ZlcnNpb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBIRUFERVJfTElORVNfQ09VTlQgPSAyO1xuICBjb25zdCBjaGFuZ2Vsb2dQYXRoID0gcmVzb2x2ZVBhdGhGcm9tUm9vdFNhZmUoT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMuQ2hhbmdlbG9nTWQpO1xuICBsZXQgcHJldmlvdXNDaGFuZ2Vsb2dMaW5lczogc3RyaW5nW107XG4gIGlmIChleGlzdHNTeW5jKGNoYW5nZWxvZ1BhdGgpKSB7XG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IHJlYWRGaWxlKGNoYW5nZWxvZ1BhdGgsICd1dGYtOCcpO1xuICAgIHByZXZpb3VzQ2hhbmdlbG9nTGluZXMgPSBjb250ZW50LnNwbGl0KCdcXG4nKS5zbGljZShIRUFERVJfTElORVNfQ09VTlQpO1xuICAgIGlmIChwcmV2aW91c0NoYW5nZWxvZ0xpbmVzLmF0KC0xKSA9PT0gJycpIHtcbiAgICAgIHByZXZpb3VzQ2hhbmdlbG9nTGluZXMucG9wKCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHByZXZpb3VzQ2hhbmdlbG9nTGluZXMgPSBbXTtcbiAgfVxuXG4gIGNvbnN0IGxhc3RUYWcgPSByZXBsYWNlQWxsKHByZXZpb3VzQ2hhbmdlbG9nTGluZXNbMF0gPz8gJycsICcjIyAnLCAnJyk7XG4gIGNvbnN0IGNvbW1pdFJhbmdlID0gbGFzdFRhZyA/IGAke2xhc3RUYWd9Li5IRUFEYCA6ICdIRUFEJztcbiAgY29uc3QgY29tbWl0TWVzc2FnZXNTdHIgPSBhd2FpdCBleGVjRnJvbVJvb3QoYGdpdCBsb2cgJHtjb21taXRSYW5nZX0gLS1mb3JtYXQ9JUIgLS1maXJzdC1wYXJlbnQgLXpgLCB7IGlzUXVpZXQ6IHRydWUgfSk7XG4gIGNvbnN0IGNvbW1pdE1lc3NhZ2VzID0gY29tbWl0TWVzc2FnZXNTdHIuc3BsaXQoJ1xcMCcpLmZpbHRlcihCb29sZWFuKS5tYXAodG9TaW5nbGVMaW5lKTtcblxuICBsZXQgbmV3Q2hhbmdlTG9nID0gYCMgQ0hBTkdFTE9HXFxuXFxuIyMgJHtuZXdWZXJzaW9ufVxcblxcbmA7XG5cbiAgZm9yIChjb25zdCBtZXNzYWdlIG9mIGNvbW1pdE1lc3NhZ2VzKSB7XG4gICAgbmV3Q2hhbmdlTG9nICs9IGAtICR7bWVzc2FnZX1cXG5gO1xuICB9XG5cbiAgaWYgKHByZXZpb3VzQ2hhbmdlbG9nTGluZXMubGVuZ3RoID4gMCkge1xuICAgIG5ld0NoYW5nZUxvZyArPSAnXFxuJztcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgcHJldmlvdXNDaGFuZ2Vsb2dMaW5lcykge1xuICAgICAgbmV3Q2hhbmdlTG9nICs9IGAke2xpbmV9XFxuYDtcbiAgICB9XG4gIH1cblxuICBhd2FpdCB3cml0ZUZpbGUoY2hhbmdlbG9nUGF0aCwgbmV3Q2hhbmdlTG9nLCAndXRmLTgnKTtcblxuICBjb25zdCBjb2RlVmVyc2lvbiA9IGF3YWl0IGV4ZWNGcm9tUm9vdCgnY29kZSAtLXZlcnNpb24nLCB7XG4gICAgaXNRdWlldDogdHJ1ZSxcbiAgICBzaG91bGRJZ25vcmVFeGl0Q29kZTogdHJ1ZVxuICB9KTtcbiAgY29uc3QgdmVyc2lvbkRlYnVnZ2VyID0gZ2V0TGliRGVidWdnZXIoJ1ZlcnNpb24nKTtcbiAgaWYgKGNvZGVWZXJzaW9uKSB7XG4gICAgdmVyc2lvbkRlYnVnZ2VyKGBQbGVhc2UgdXBkYXRlIHRoZSAke09ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkNoYW5nZWxvZ01kfSBmaWxlLiBDbG9zZSBWaXN1YWwgU3R1ZGlvIENvZGUgd2hlbiB5b3UgYXJlIGRvbmUuLi5gKTtcbiAgICBhd2FpdCBleGVjRnJvbVJvb3QoWydjb2RlJywgJy13JywgY2hhbmdlbG9nUGF0aF0sIHtcbiAgICAgIGlzUXVpZXQ6IHRydWUsXG4gICAgICBzaG91bGRJZ25vcmVFeGl0Q29kZTogdHJ1ZVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHZlcnNpb25EZWJ1Z2dlcignQ291bGQgbm90IGZpbmQgVmlzdWFsIFN0dWRpbyBDb2RlIGluIHlvdXIgUEFUSC4gVXNpbmcgY29uc29sZSBtb2RlIGluc3RlYWQuJyk7XG4gICAgYXdhaXQgY3JlYXRlSW50ZXJmYWNlKHByb2Nlc3Muc3RkaW4sIHByb2Nlc3Muc3Rkb3V0KS5xdWVzdGlvbihcbiAgICAgIGBQbGVhc2UgdXBkYXRlIHRoZSAke09ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLkNoYW5nZWxvZ01kfSBmaWxlLiBQcmVzcyBFbnRlciB3aGVuIHlvdSBhcmUgZG9uZS4uLmBcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgdmVyc2lvbiBvZiB0aGUgcHJvamVjdCBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIHVwZGF0ZSB0eXBlLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBzZXJpZXMgb2YgdGFza3MgdG8gaGFuZGxlIHZlcnNpb24gdXBkYXRlczpcbiAqIDEuIFZhbGlkYXRlcyB0aGUgdmVyc2lvbiB1cGRhdGUgdHlwZS5cbiAqIDIuIENoZWNrcyBpZiBHaXQgYW5kIEdpdEh1YiBDTEkgYXJlIGluc3RhbGxlZC5cbiAqIDMuIFZlcmlmaWVzIHRoYXQgdGhlIEdpdCByZXBvc2l0b3J5IGlzIGNsZWFuLlxuICogNC4gUnVucyBzcGVsbGNoZWNrIGFuZCBsaW50aW5nLlxuICogNS4gQnVpbGRzIHRoZSBwcm9qZWN0LlxuICogNi4gVXBkYXRlcyB2ZXJzaW9uIGluIGZpbGVzIGFuZCBjaGFuZ2Vsb2cuXG4gKiA3LiBBZGRzIHVwZGF0ZWQgZmlsZXMgdG8gR2l0LCB0YWdzIHRoZSBjb21taXQsIGFuZCBwdXNoZXMgdG8gdGhlIHJlcG9zaXRvcnkuXG4gKiA4LiBJZiBhbiBPYnNpZGlhbiBwbHVnaW4sIGNvcGllcyB0aGUgdXBkYXRlZCBtYW5pZmVzdCBhbmQgcHVibGlzaGVzIGEgR2l0SHViIHJlbGVhc2UuXG4gKlxuICogQHBhcmFtIHZlcnNpb25VcGRhdGVUeXBlIC0gVGhlIHR5cGUgb2YgdmVyc2lvbiB1cGRhdGUgdG8gcGVyZm9ybSAobWFqb3IsIG1pbm9yLCBwYXRjaCwgYmV0YSwgb3IgeC55LnpbLWJldGE6dV0pLlxuICogQHBhcmFtIHByZXBhcmVHaXRIdWJSZWxlYXNlIC0gQSBjYWxsYmFjayBmdW5jdGlvbiB0byBwcmVwYXJlIHRoZSBHaXRIdWIgcmVsZWFzZS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgdmVyc2lvbiB1cGRhdGUgaXMgY29tcGxldGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGRhdGVWZXJzaW9uKHZlcnNpb25VcGRhdGVUeXBlPzogc3RyaW5nLCBwcmVwYXJlR2l0SHViUmVsZWFzZT86IChuZXdWZXJzaW9uOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCF2ZXJzaW9uVXBkYXRlVHlwZSkge1xuICAgIGNvbnN0IG5wbU9sZFZlcnNpb24gPSBwcm9jZXNzLmVudlsnbnBtX29sZF92ZXJzaW9uJ107XG4gICAgY29uc3QgbnBtTmV3VmVyc2lvbiA9IHByb2Nlc3MuZW52WyducG1fbmV3X3ZlcnNpb24nXTtcblxuICAgIGlmIChucG1PbGRWZXJzaW9uICYmIG5wbU5ld1ZlcnNpb24pIHtcbiAgICAgIGF3YWl0IHVwZGF0ZVZlcnNpb25JbkZpbGVzKG5wbU9sZFZlcnNpb24pO1xuICAgICAgYXdhaXQgdXBkYXRlVmVyc2lvbihucG1OZXdWZXJzaW9uLCBwcmVwYXJlR2l0SHViUmVsZWFzZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyB2ZXJzaW9uIHVwZGF0ZSB0eXBlIHByb3ZpZGVkJyk7XG4gIH1cblxuICBjb25zdCBpc09ic2lkaWFuUGx1Z2luID0gZXhpc3RzU3luYyhyZXNvbHZlUGF0aEZyb21Sb290U2FmZShPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEpzb24pKSAmJiAoYXdhaXQgcmVhZFBhY2thZ2VKc29uKCkpLm5hbWUgIT09ICdvYnNpZGlhbi1kZXYtdXRpbHMnO1xuXG4gIHZhbGlkYXRlKHZlcnNpb25VcGRhdGVUeXBlKTtcbiAgYXdhaXQgY2hlY2tHaXRJbnN0YWxsZWQoKTtcbiAgYXdhaXQgY2hlY2tHaXRSZXBvQ2xlYW4oKTtcbiAgYXdhaXQgY2hlY2tHaXRIdWJDbGlJbnN0YWxsZWQoKTtcbiAgYXdhaXQgbnBtUnVuKCdmb3JtYXQ6Y2hlY2snKTtcbiAgYXdhaXQgbnBtUnVuKCdzcGVsbGNoZWNrJyk7XG4gIGF3YWl0IG5wbVJ1bignbGludDptZCcpO1xuICBhd2FpdCBucG1SdW4oJ2J1aWxkJyk7XG4gIGF3YWl0IG5wbVJ1bignbGludCcpO1xuICBhd2FpdCBucG1SdW5PcHRpb25hbCgndGVzdCcpO1xuXG4gIGNvbnN0IG5ld1ZlcnNpb24gPSBhd2FpdCBnZXROZXdWZXJzaW9uKHZlcnNpb25VcGRhdGVUeXBlKTtcbiAgYXdhaXQgdXBkYXRlVmVyc2lvbkluRmlsZXMobmV3VmVyc2lvbik7XG4gIGlmIChpc09ic2lkaWFuUGx1Z2luKSB7XG4gICAgYXdhaXQgdXBkYXRlVmVyc2lvbkluRmlsZXNGb3JQbHVnaW4obmV3VmVyc2lvbik7XG4gIH1cblxuICBhd2FpdCB1cGRhdGVDaGFuZ2Vsb2cobmV3VmVyc2lvbik7XG4gIGF3YWl0IGFkZFVwZGF0ZWRGaWxlc1RvR2l0KG5ld1ZlcnNpb24pO1xuICBhd2FpdCBhZGRHaXRUYWcobmV3VmVyc2lvbik7XG4gIGF3YWl0IGdpdFB1c2goKTtcbiAgYXdhaXQgcHJlcGFyZUdpdEh1YlJlbGVhc2U/LihuZXdWZXJzaW9uKTtcbiAgYXdhaXQgcHVibGlzaEdpdEh1YlJlbGVhc2UobmV3VmVyc2lvbiwgaXNPYnNpZGlhblBsdWdpbik7XG59XG5cbi8qKlxuICogVXBkYXRlcyB0aGUgdmVyc2lvbiBpbiB2YXJpb3VzIGZpbGVzLCBpbmNsdWRpbmcgYHBhY2thZ2UuanNvbmAsIGBwYWNrYWdlLWxvY2suanNvbmAsXG4gKiBhbmQgT2JzaWRpYW4gcGx1Z2luIG1hbmlmZXN0cyBpZiBhcHBsaWNhYmxlLlxuICpcbiAqIEBwYXJhbSBuZXdWZXJzaW9uIC0gVGhlIG5ldyB2ZXJzaW9uIHN0cmluZyB0byB1cGRhdGUgaW4gdGhlIGZpbGVzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB1cGRhdGUgaXMgY29tcGxldGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cGRhdGVWZXJzaW9uSW5GaWxlcyhuZXdWZXJzaW9uOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgZWRpdFBhY2thZ2VKc29uKChwYWNrYWdlSnNvbikgPT4ge1xuICAgIHBhY2thZ2VKc29uLnZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICB9KTtcblxuICBhd2FpdCBlZGl0UGFja2FnZUxvY2tKc29uKHVwZGF0ZSwgeyBzaG91bGRTa2lwSWZNaXNzaW5nOiB0cnVlIH0pO1xuICBhd2FpdCBlZGl0TnBtU2hyaW5rV3JhcEpzb24odXBkYXRlLCB7IHNob3VsZFNraXBJZk1pc3Npbmc6IHRydWUgfSk7XG5cbiAgZnVuY3Rpb24gdXBkYXRlKHBhY2thZ2VMb2NrSnNvbjogUGFja2FnZUxvY2tKc29uKTogdm9pZCB7XG4gICAgcGFja2FnZUxvY2tKc29uLnZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICAgIGNvbnN0IGRlZmF1bHRQYWNrYWdlID0gcGFja2FnZUxvY2tKc29uLnBhY2thZ2VzPy5bJyddO1xuICAgIGlmIChkZWZhdWx0UGFja2FnZSkge1xuICAgICAgZGVmYXVsdFBhY2thZ2UudmVyc2lvbiA9IG5ld1ZlcnNpb247XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIHRoZSB2ZXJzaW9uIHVwZGF0ZSB0eXBlIHRvIGVuc3VyZSBpdCBpcyBlaXRoZXIgYSByZWNvZ25pemVkIHR5cGVcbiAqIG9yIGEgdmFsaWQgbWFudWFsIHZlcnNpb24gc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB2ZXJzaW9uVXBkYXRlVHlwZSAtIFRoZSB2ZXJzaW9uIHVwZGF0ZSB0eXBlIHRvIHZhbGlkYXRlLlxuICogQHRocm93cyBFcnJvciBpZiB0aGUgdmVyc2lvbiB1cGRhdGUgdHlwZSBpcyBpbnZhbGlkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGUodmVyc2lvblVwZGF0ZVR5cGU6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoZ2V0VmVyc2lvblVwZGF0ZVR5cGUodmVyc2lvblVwZGF0ZVR5cGUpID09PSBWZXJzaW9uVXBkYXRlVHlwZS5JbnZhbGlkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZlcnNpb24gdXBkYXRlIHR5cGUuIFBsZWFzZSB1c2UgXFwnbWFqb3JcXCcsIFxcJ21pbm9yXFwnLCBcXCdwYXRjaFxcJywgb3IgXFwneC55LnpbLXN1ZmZpeF1cXCcgZm9ybWF0LicpO1xuICB9XG59XG5cbi8qKlxuICogRmV0Y2hlcyB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgT2JzaWRpYW4gZnJvbSB0aGUgR2l0SHViIHJlbGVhc2VzIEFQSS5cbiAqXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiBPYnNpZGlhbi5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0TGF0ZXN0T2JzaWRpYW5WZXJzaW9uKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHMgLS0gV2UgcnVuIHRoaXMgb3V0c2lkZSBvZiBPYnNpZGlhbiwgc28gd2UgZG9uJ3QgaGF2ZSBgcmVxdWVzdFVybCgpYC5cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9vYnNpZGlhbm1kL29ic2lkaWFuLXJlbGVhc2VzL3JlbGVhc2VzL2xhdGVzdCcpO1xuICBjb25zdCBvYnNpZGlhblJlbGVhc2VzSnNvbiA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKSBhcyBQYXJ0aWFsPE9ic2lkaWFuUmVsZWFzZXNKc29uPjtcbiAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKG9ic2lkaWFuUmVsZWFzZXNKc29uLm5hbWUsICdDb3VsZCBub3QgZmluZCB0aGUgbmFtZSBvZiB0aGUgbGF0ZXN0IE9ic2lkaWFuIHJlbGVhc2UnKTtcbn1cblxuZnVuY3Rpb24gaXNCZXRhKHZlcnNpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmVyc2lvbi5pbmNsdWRlcyhWZXJzaW9uVXBkYXRlVHlwZS5CZXRhKTtcbn1cblxuZnVuY3Rpb24gdG9TaW5nbGVMaW5lKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbGluZXMgPSBzdHIuc3BsaXQoL1xccj9cXG4vKS5maWx0ZXIoQm9vbGVhbik7XG4gIHJldHVybiBsaW5lcy5qb2luKCcgJyk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZVZlcnNpb25JbkZpbGVzRm9yUGx1Z2luKG5ld1ZlcnNpb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBtYW5pZmVzdEJldGFKc29uUGF0aCA9IHJlc29sdmVQYXRoRnJvbVJvb3RTYWZlKE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0QmV0YUpzb24pO1xuICBpZiAoaXNCZXRhKG5ld1ZlcnNpb24pKSB7XG4gICAgYXdhaXQgY3AoXG4gICAgICByZXNvbHZlUGF0aEZyb21Sb290U2FmZShPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEpzb24pLFxuICAgICAgbWFuaWZlc3RCZXRhSnNvblBhdGgsXG4gICAgICB7IGZvcmNlOiB0cnVlIH1cbiAgICApO1xuICAgIGF3YWl0IGVkaXRKc29uPE1hbmlmZXN0PihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5NYW5pZmVzdEJldGFKc29uLCAobWFuaWZlc3QpID0+IHtcbiAgICAgIG1hbmlmZXN0LnZlcnNpb24gPSBuZXdWZXJzaW9uO1xuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGxhdGVzdE9ic2lkaWFuVmVyc2lvbiA9IGF3YWl0IGdldExhdGVzdE9ic2lkaWFuVmVyc2lvbigpO1xuXG4gICAgYXdhaXQgZWRpdEpzb248TWFuaWZlc3Q+KE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzLk1hbmlmZXN0SnNvbiwgKG1hbmlmZXN0KSA9PiB7XG4gICAgICBtYW5pZmVzdC5taW5BcHBWZXJzaW9uID0gbGF0ZXN0T2JzaWRpYW5WZXJzaW9uO1xuICAgICAgbWFuaWZlc3QudmVyc2lvbiA9IG5ld1ZlcnNpb247XG4gICAgfSk7XG5cbiAgICBhd2FpdCBlZGl0SnNvbjxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PihPYnNpZGlhblBsdWdpblJlcG9QYXRocy5WZXJzaW9uc0pzb24sICh2ZXJzaW9ucykgPT4ge1xuICAgICAgdmVyc2lvbnNbbmV3VmVyc2lvbl0gPSBsYXRlc3RPYnNpZGlhblZlcnNpb247XG4gICAgfSk7XG5cbiAgICBpZiAoZXhpc3RzU3luYyhtYW5pZmVzdEJldGFKc29uUGF0aCkpIHtcbiAgICAgIGF3YWl0IHJtKG1hbmlmZXN0QmV0YUpzb25QYXRoKTtcbiAgICB9XG4gIH1cblxuICBhd2FpdCBjb3B5VXBkYXRlZE1hbmlmZXN0KCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBLG1CQUErQjtBQUMvQixxQ0FBd0M7QUFDeEMsa0JBQXFCO0FBQ3JCLG9CQUEyQjtBQUMzQix3QkFHTztBQUNQLGdCQUE2QjtBQUM3QixrQkFBeUI7QUFDekIseUJBT087QUFDUCxpQkFLTztBQUNQLG9CQUdPO0FBQ1AsdUNBQTBDO0FBQzFDLGtCQUdPO0FBS0EsSUFBSyxvQkFBTCxrQkFBS0EsdUJBQUw7QUFDTCxFQUFBQSxtQkFBQSxVQUFPO0FBQ1AsRUFBQUEsbUJBQUEsYUFBVTtBQUNWLEVBQUFBLG1CQUFBLFdBQVE7QUFDUixFQUFBQSxtQkFBQSxZQUFTO0FBQ1QsRUFBQUEsbUJBQUEsV0FBUTtBQUNSLEVBQUFBLG1CQUFBLFdBQVE7QUFORSxTQUFBQTtBQUFBLEdBQUE7QUF3Q1osZUFBc0IsVUFBVSxZQUFtQztBQUNqRSxZQUFNLDBCQUFhLGNBQWMsVUFBVSxPQUFPLFVBQVUsWUFBWSxFQUFFLFNBQVMsS0FBSyxDQUFDO0FBQzNGO0FBUUEsZUFBc0IscUJBQXFCLFlBQW1DO0FBQzVFLFlB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S0FBSyxDQUFDO0FBRWpFLFdBQVMsT0FBTyxpQkFBd0M7QUFDdEQsb0JBQWdCLFVBQVU7QUFDMUIsVUFBTSxpQkFBaUIsZ0JBQWdCLFdBQVcsRUFBRTtBQUNwRCxRQUFJLGdCQUFnQjtBQUNsQixxQkFBZSxVQUFVO0FBQUEsSUFDM0I7QUFBQSxFQUNGO0FBQ0Y7QUFTTyxTQUFTLFNBQVMsbUJBQWlDO0FBQ3hELE1BQUkscUJBQXFCLGlCQUFpQixNQUFNLHlCQUEyQjtBQUN6RSxVQUFNLElBQUksTUFBTSxnR0FBd0c7QUFBQSxFQUMxSDtBQUNGO0FBT0EsZUFBZSwyQkFBNEM7QUFFekQsUUFBTSxXQUFXLE1BQU0sTUFBTSwyRUFBMkU7QUFDeEcsUUFBTSx1QkFBdUIsTUFBTSxTQUFTLEtBQUs7QUFDakQsYUFBTyxxQ0FBa0IscUJBQXFCLE1BQU0sd0RBQXdEO0FBQzlHO0FBRUEsU0FBUyxPQUFPLFNBQTBCO0FBQ3hDLFNBQU8sUUFBUSxTQUFTLGlCQUFzQjtBQUNoRDtBQUVBLFNBQVMsYUFBYSxLQUFxQjtBQUN6QyxRQUFNLFFBQVEsSUFBSSxNQUFNLE9BQU8sRUFBRSxPQUFPLE9BQU87QUFDL0MsU0FBTyxNQUFNLEtBQUssR0FBRztBQUN2QjtBQUVBLGVBQWUsOEJBQThCLFlBQW1DO0FBQzlFLFFBQU0sMkJBQXVCLHFDQUF3Qix1REFBd0IsZ0JBQWdCO0FBQzdGLE1BQUksT0FBTyxVQUFVLEdBQUc7QUFDdEIsY0FBTTtBQUFBLFVBQ0oscUNBQXdCLHVEQUF3QixZQUFZO0FBQUEsTUFDNUQ7QUFBQSxNQUNBLEVBQUUsT0FBTyxLQUFLO0FBQUEsSUFDaEI7QUFDQSxjQUFNLHNCQUFtQix1REFBd0Isa0JBQWtCLENBQUMsYUFBYTtBQUMvRSxlQUFTLFVBQVU7QUFBQSxJQUNyQixDQUFDO0FBQUEsRUFDSCxPQUFPO0FBQ0wsVUFBTSx3QkFBd0IsTUFBTSx5QkFBeUI7QUFFN0QsY0FBTSxzQkFBbUIsdURBQXdCLGNBQWMsQ0FBQyxhQUFhO0FBQzNFLGVBQVMsZ0JBQWdCO0FBQ3pCLGVBQVMsVUFBVTtBQUFBLElBQ3JCLENBQUM7QUFFRCxjQUFNLHNCQUFpQyx1REFBd0IsY0FBYyxDQUFDLGFBQWE7QUFDekYsZUFBUyxVQUFVLElBQUk7QUFBQSxJQUN6QixDQUFDO0FBRUQsWUFBSSwrQkFBVyxvQkFBb0IsR0FBRztBQUNwQyxnQkFBTSx1QkFBRyxvQkFBb0I7QUFBQSxJQUMvQjtBQUFBLEVBQ0Y7QUFFQSxRQUFNLG9CQUFvQjtBQUM1QjsiLAogICJuYW1lcyI6IFsiVmVyc2lvblVwZGF0ZVR5cGUiXQp9Cg==
@@ -129,16 +129,16 @@ var import_obsidian = require('obsidian');
129
129
  var import_Async = require('../Async.cjs');
130
130
  var import_Debug = require('../Debug.cjs');
131
131
  var import_i18n = require('./i18n/i18n.cjs');
132
- async function retryWithTimeoutNotice(options) {
132
+ async function retryWithTimeoutNotice(params) {
133
133
  return (0, import_Async.retryWithTimeout)({
134
- ...options,
135
- onTimeout: options.shouldShowTimeoutNotice ? onTimeoutNotice : onTimeoutWithoutNotice
134
+ ...params,
135
+ onTimeout: params.shouldShowTimeoutNotice ? onTimeoutNotice : onTimeoutWithoutNotice
136
136
  });
137
137
  }
138
- async function runWithTimeoutNotice(options) {
138
+ async function runWithTimeoutNotice(params) {
139
139
  return (0, import_Async.runWithTimeout)({
140
- ...options,
141
- onTimeout: options.shouldShowTimeoutNotice ? onTimeoutNotice : onTimeoutWithoutNotice
140
+ ...params,
141
+ onTimeout: params.shouldShowTimeoutNotice ? onTimeoutNotice : onTimeoutWithoutNotice
142
142
  });
143
143
  }
144
144
  function onTimeoutNotice(ctx) {
@@ -197,4 +197,4 @@ function onTimeoutWithoutNotice(ctx) {
197
197
  retryWithTimeoutNotice,
198
198
  runWithTimeoutNotice
199
199
  });
200
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0FzeW5jV2l0aE5vdGljZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBQcm92aWRlcyBhIHV0aWxpdHkgdG8gZXhlY3V0ZSBhbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gd2l0aCBhIG5vdGljZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBOb3RpY2UgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgUmV0cnlPcHRpb25zLFxuICBUaW1lb3V0Q29udGV4dFxufSBmcm9tICcuLi9Bc3luYy50cyc7XG5cbmltcG9ydCB7XG4gIHJldHJ5V2l0aFRpbWVvdXQsXG4gIHJ1bldpdGhUaW1lb3V0XG59IGZyb20gJy4uL0FzeW5jLnRzJztcbmltcG9ydCB7IGdldERlYnVnZ2VyIH0gZnJvbSAnLi4vRGVidWcudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4vaTE4bi9pMThuLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcmV0cnlXaXRoVGltZW91dE5vdGljZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlXaXRoVGltZW91dE5vdGljZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG9wZXJhdGlvbiBmdW5jdGlvbiB0byBleGVjdXRlLlxuICAgKlxuICAgKiBAcGFyYW0gYWJvcnRTaWduYWwgLSBUaGUgYWJvcnQgc2lnbmFsIHRvIGxpc3RlbiB0by5cbiAgICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25GbjogKHRoaXM6IHZvaWQsIGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCkgPT4gUHJvbWlzYWJsZTxib29sZWFuPjtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG9wZXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXRyeSBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgcmV0cnlPcHRpb25zPzogUmV0cnlPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSB0aW1lb3V0IG5vdGljZS4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTaG93VGltZW91dE5vdGljZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0cmFjZSBvZiB0aGUgc291cmNlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcnVuV2l0aFRpbWVvdXR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bldpdGhUaW1lb3V0Tm90aWNlT3B0aW9uczxSZXN1bHQ+IHtcbiAgLyoqXG4gICAqIFRoZSBjb250ZXh0IG9mIHRoZSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ/OiB1bmtub3duO1xuXG4gIC8qKlxuICAgKiBUaGUgb3BlcmF0aW9uIGZ1bmN0aW9uIHRvIGV4ZWN1dGUuXG4gICAqXG4gICAqIEBwYXJhbSBhYm9ydFNpZ25hbCAtIFRoZSBhYm9ydCBzaWduYWwgdG8gbGlzdGVuIHRvLlxuICAgKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbkZuOiAoYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKSA9PiBQcm9taXNhYmxlPFJlc3VsdD47XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBvcGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNob3cgYSB0aW1lb3V0IG5vdGljZS4gRGVmYXVsdCBpcyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTaG93VGltZW91dE5vdGljZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFjayB0cmFjZSBvZiB0aGUgc291cmNlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tUcmFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gdGltZSB0byB3YWl0IGluIG1pbGxpc2Vjb25kcy5cbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xufVxuXG4vKipcbiAqIFJldHJpZXMgdGhlIHByb3ZpZGVkIGZ1bmN0aW9uIHVudGlsIGl0IHJldHVybnMgdHJ1ZSBvciB0aGUgdGltZW91dCBpcyByZWFjaGVkIGFuZCBkaXNwbGF5cyBhIG5vdGljZSBpZiB0aGUgZnVuY3Rpb24gdGltZXMgb3V0LlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZnVuY3Rpb24gcmV0dXJucyB0cnVlIG9yIHJlamVjdHMgd2hlbiB0aGUgdGltZW91dCBpcyByZWFjaGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV0cnlXaXRoVGltZW91dE5vdGljZShvcHRpb25zOiBSZXRyeVdpdGhUaW1lb3V0Tm90aWNlT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gcmV0cnlXaXRoVGltZW91dCh7XG4gICAgLi4ub3B0aW9ucyxcbiAgICBvblRpbWVvdXQ6IG9wdGlvbnMuc2hvdWxkU2hvd1RpbWVvdXROb3RpY2UgPyBvblRpbWVvdXROb3RpY2UgOiBvblRpbWVvdXRXaXRob3V0Tm90aWNlXG4gIH0pO1xufVxuXG4vKipcbiAqIEV4ZWN1dGVzIGEgZnVuY3Rpb24gd2l0aCBhIHRpbWVvdXQgYW5kIGRpc3BsYXlzIGEgbm90aWNlIGlmIHRoZSBmdW5jdGlvbiB0aW1lcyBvdXQuXG4gKlxuICogQHR5cGVQYXJhbSBSIC0gVGhlIHR5cGUgb2YgdGhlIHJlc3VsdCBmcm9tIHRoZSBhc3luY2hyb25vdXMgZnVuY3Rpb24uXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bldpdGhUaW1lb3V0Tm90aWNlPFJlc3VsdD4ob3B0aW9uczogUnVuV2l0aFRpbWVvdXROb3RpY2VPcHRpb25zPFJlc3VsdD4pOiBQcm9taXNlPFJlc3VsdD4ge1xuICByZXR1cm4gcnVuV2l0aFRpbWVvdXQoe1xuICAgIC4uLm9wdGlvbnMsXG4gICAgb25UaW1lb3V0OiBvcHRpb25zLnNob3VsZFNob3dUaW1lb3V0Tm90aWNlID8gb25UaW1lb3V0Tm90aWNlIDogb25UaW1lb3V0V2l0aG91dE5vdGljZVxuICB9KTtcbn1cblxuZnVuY3Rpb24gb25UaW1lb3V0Tm90aWNlKGN0eDogVGltZW91dENvbnRleHQpOiB2b2lkIHtcbiAgY29uc3Qgc3RhcnRUaW1lID0gTWF0aC50cnVuYyhwZXJmb3JtYW5jZS5ub3coKSAtIGN0eC5kdXJhdGlvbik7XG4gIGxldCBydW5uaW5nVGltZUVsOiBIVE1MU3BhbkVsZW1lbnQ7XG4gIGxldCBpbnRlcnZhbElkOiBudW1iZXI7XG4gIGNvbnN0IFNFQ09ORF9JTl9NSUxMSVNFQ09ORFMgPSAxMDAwO1xuXG4gIGNvbnN0IG5vdGljZSA9IG5ldyBOb3RpY2UoY3JlYXRlRnJhZ21lbnQoKGYpID0+IHtcbiAgICBpZiAoY3R4Lm9wZXJhdGlvbk5hbWUpIHtcbiAgICAgIGYuYXBwZW5kVGV4dCh0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYXN5bmNXaXRoTm90aWNlLm9wZXJhdGlvbikpO1xuICAgICAgZi5hcHBlbmRUZXh0KCc6ICcpO1xuICAgICAgZi5hcHBlbmRUZXh0KGN0eC5vcGVyYXRpb25OYW1lKTtcbiAgICAgIGYuY3JlYXRlRWwoJ2JyJyk7XG4gICAgfVxuICAgIGYuYXBwZW5kVGV4dCh0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYXN5bmNXaXRoTm90aWNlLnRpbWVkT3V0LCB7IGR1cmF0aW9uOiBjdHguZHVyYXRpb24gfSkpO1xuICAgIGYuY3JlYXRlRWwoJ2JyJyk7XG4gICAgZi5hcHBlbmRUZXh0KHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5hc3luY1dpdGhOb3RpY2UucnVubmluZ0ZvcikpO1xuICAgIGYuYXBwZW5kVGV4dCgnICcpO1xuICAgIHJ1bm5pbmdUaW1lRWwgPSBmLmNyZWF0ZVNwYW4oKTtcbiAgICBmLmFwcGVuZFRleHQoJyAnKTtcbiAgICBmLmFwcGVuZFRleHQodCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmFzeW5jV2l0aE5vdGljZS5taWxsaXNlY29uZHMpKTtcbiAgICBmLmNyZWF0ZUVsKCdicicpO1xuICAgIGYuYXBwZW5kVGV4dCh0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYXN5bmNXaXRoTm90aWNlLnRlcm1pbmF0ZU9wZXJhdGlvbikpO1xuICAgIGYuY3JlYXRlRWwoJ2JyJyk7XG4gICAgY29uc3QgYnV0dG9uID0gZi5jcmVhdGVFbCgnYnV0dG9uJywge1xuICAgICAgdGV4dDogdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmJ1dHRvbnMuY2FuY2VsKVxuICAgIH0pO1xuICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIGN0eC50ZXJtaW5hdGVPcGVyYXRpb24oKTtcbiAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7XG4gICAgICBub3RpY2UuaGlkZSgpO1xuICAgIH0pO1xuICB9KSk7XG5cbiAgdXBkYXRlUnVubmluZ1RpbWUoKTtcbiAgaW50ZXJ2YWxJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbCh1cGRhdGVSdW5uaW5nVGltZSwgU0VDT05EX0lOX01JTExJU0VDT05EUyk7XG5cbiAgY3R4Lm9uT3BlcmF0aW9uQ29tcGxldGVkKCgpID0+IHtcbiAgICBjbGVhckludGVydmFsKGludGVydmFsSWQpO1xuICAgIG5vdGljZS5oaWRlKCk7XG4gIH0pO1xuXG4gIGZ1bmN0aW9uIHVwZGF0ZVJ1bm5pbmdUaW1lKCk6IHZvaWQge1xuICAgIGNvbnN0IHJ1bm5pbmdUaW1lSW5NaWxsaXNlY29uZHMgPSBNYXRoLm1heChjdHguZHVyYXRpb24sIE1hdGgucm91bmQoKHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lKSAvIFNFQ09ORF9JTl9NSUxMSVNFQ09ORFMpICogU0VDT05EX0lOX01JTExJU0VDT05EUyk7XG4gICAgcnVubmluZ1RpbWVFbC50ZXh0Q29udGVudCA9IFN0cmluZyhydW5uaW5nVGltZUluTWlsbGlzZWNvbmRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBvblRpbWVvdXRXaXRob3V0Tm90aWNlKGN0eDogVGltZW91dENvbnRleHQpOiB2b2lkIHtcbiAgY29uc3Qgc3RhcnRUaW1lID0gTWF0aC50cnVuYyhwZXJmb3JtYW5jZS5ub3coKSAtIGN0eC5kdXJhdGlvbik7XG5cbiAgY3R4Lm9uT3BlcmF0aW9uQ29tcGxldGVkKCgpID0+IHtcbiAgICBnZXREZWJ1Z2dlcignQXN5bmNXaXRoTm90aWNlOm9uVGltZW91dFdpdGhvdXROb3RpY2UnKSgnT3BlcmF0aW9uIGNvbXBsZXRlZCBhZnRlciB0aW1lb3V0Jywge1xuICAgICAgb3BlcmF0aW9uTmFtZTogY3R4Lm9wZXJhdGlvbk5hbWUsXG4gICAgICB0b3RhbER1cmF0aW9uOiBNYXRoLnRydW5jKHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lKVxuICAgIH0pO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
200
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0FzeW5jV2l0aE5vdGljZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBQcm92aWRlcyBhIHV0aWxpdHkgdG8gZXhlY3V0ZSBhbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gd2l0aCBhIG5vdGljZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBOb3RpY2UgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgUmV0cnlPcHRpb25zLFxuICBUaW1lb3V0Q29udGV4dFxufSBmcm9tICcuLi9Bc3luYy50cyc7XG5cbmltcG9ydCB7XG4gIHJldHJ5V2l0aFRpbWVvdXQsXG4gIHJ1bldpdGhUaW1lb3V0XG59IGZyb20gJy4uL0FzeW5jLnRzJztcbmltcG9ydCB7IGdldERlYnVnZ2VyIH0gZnJvbSAnLi4vRGVidWcudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4vaTE4bi9pMThuLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcmV0cnlXaXRoVGltZW91dE5vdGljZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlXaXRoVGltZW91dE5vdGljZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgb3BlcmF0aW9uIGZ1bmN0aW9uIHRvIGV4ZWN1dGUuXG4gICAqXG4gICAqIEBwYXJhbSBhYm9ydFNpZ25hbCAtIFRoZSBhYm9ydCBzaWduYWwgdG8gbGlzdGVuIHRvLlxuICAgKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbkZuOiAodGhpczogdm9pZCwgYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKSA9PiBQcm9taXNhYmxlPGJvb2xlYW4+O1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgb3BlcmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJldHJ5IG9wdGlvbnMuXG4gICAqL1xuICByZWFkb25seSByZXRyeU9wdGlvbnM/OiBSZXRyeU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2hvdyBhIHRpbWVvdXQgbm90aWNlLiBEZWZhdWx0IGlzIGB0cnVlYC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFNob3dUaW1lb3V0Tm90aWNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHN0YWNrIHRyYWNlIG9mIHRoZSBzb3VyY2UgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBzdGFja1RyYWNlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBydW5XaXRoVGltZW91dH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVuV2l0aFRpbWVvdXROb3RpY2VQYXJhbXM8UmVzdWx0PiB7XG4gIC8qKlxuICAgKiBUaGUgY29udGV4dCBvZiB0aGUgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0PzogdW5rbm93bjtcblxuICAvKipcbiAgICogVGhlIG9wZXJhdGlvbiBmdW5jdGlvbiB0byBleGVjdXRlLlxuICAgKlxuICAgKiBAcGFyYW0gYWJvcnRTaWduYWwgLSBUaGUgYWJvcnQgc2lnbmFsIHRvIGxpc3RlbiB0by5cbiAgICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBvcGVyYXRpb25GbjogKGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCkgPT4gUHJvbWlzYWJsZTxSZXN1bHQ+O1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgb3BlcmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IGEgdGltZW91dCBub3RpY2UuIERlZmF1bHQgaXMgYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdHJhY2Ugb2YgdGhlIHNvdXJjZSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrVHJhY2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHRpbWUgdG8gd2FpdCBpbiBtaWxsaXNlY29uZHMuXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0SW5NaWxsaXNlY29uZHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZXRyaWVzIHRoZSBwcm92aWRlZCBmdW5jdGlvbiB1bnRpbCBpdCByZXR1cm5zIHRydWUgb3IgdGhlIHRpbWVvdXQgaXMgcmVhY2hlZCBhbmQgZGlzcGxheXMgYSBub3RpY2UgaWYgdGhlIGZ1bmN0aW9uIHRpbWVzIG91dC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZnVuY3Rpb24gcmV0dXJucyB0cnVlIG9yIHJlamVjdHMgd2hlbiB0aGUgdGltZW91dCBpcyByZWFjaGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV0cnlXaXRoVGltZW91dE5vdGljZShwYXJhbXM6IFJldHJ5V2l0aFRpbWVvdXROb3RpY2VQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIHJldHJ5V2l0aFRpbWVvdXQoe1xuICAgIC4uLnBhcmFtcyxcbiAgICBvblRpbWVvdXQ6IHBhcmFtcy5zaG91bGRTaG93VGltZW91dE5vdGljZSA/IG9uVGltZW91dE5vdGljZSA6IG9uVGltZW91dFdpdGhvdXROb3RpY2VcbiAgfSk7XG59XG5cbi8qKlxuICogRXhlY3V0ZXMgYSBmdW5jdGlvbiB3aXRoIGEgdGltZW91dCBhbmQgZGlzcGxheXMgYSBub3RpY2UgaWYgdGhlIGZ1bmN0aW9uIHRpbWVzIG91dC5cbiAqXG4gKiBAdHlwZVBhcmFtIFIgLSBUaGUgdHlwZSBvZiB0aGUgcmVzdWx0IGZyb20gdGhlIGFzeW5jaHJvbm91cyBmdW5jdGlvbi5cbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIGZ1bmN0aW9uLlxuICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5XaXRoVGltZW91dE5vdGljZTxSZXN1bHQ+KHBhcmFtczogUnVuV2l0aFRpbWVvdXROb3RpY2VQYXJhbXM8UmVzdWx0Pik6IFByb21pc2U8UmVzdWx0PiB7XG4gIHJldHVybiBydW5XaXRoVGltZW91dCh7XG4gICAgLi4ucGFyYW1zLFxuICAgIG9uVGltZW91dDogcGFyYW1zLnNob3VsZFNob3dUaW1lb3V0Tm90aWNlID8gb25UaW1lb3V0Tm90aWNlIDogb25UaW1lb3V0V2l0aG91dE5vdGljZVxuICB9KTtcbn1cblxuZnVuY3Rpb24gb25UaW1lb3V0Tm90aWNlKGN0eDogVGltZW91dENvbnRleHQpOiB2b2lkIHtcbiAgY29uc3Qgc3RhcnRUaW1lID0gTWF0aC50cnVuYyhwZXJmb3JtYW5jZS5ub3coKSAtIGN0eC5kdXJhdGlvbik7XG4gIGxldCBydW5uaW5nVGltZUVsOiBIVE1MU3BhbkVsZW1lbnQ7XG4gIGxldCBpbnRlcnZhbElkOiBudW1iZXI7XG4gIGNvbnN0IFNFQ09ORF9JTl9NSUxMSVNFQ09ORFMgPSAxMDAwO1xuXG4gIGNvbnN0IG5vdGljZSA9IG5ldyBOb3RpY2UoY3JlYXRlRnJhZ21lbnQoKGYpID0+IHtcbiAgICBpZiAoY3R4Lm9wZXJhdGlvbk5hbWUpIHtcbiAgICAgIGYuYXBwZW5kVGV4dCh0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYXN5bmNXaXRoTm90aWNlLm9wZXJhdGlvbikpO1xuICAgICAgZi5hcHBlbmRUZXh0KCc6ICcpO1xuICAgICAgZi5hcHBlbmRUZXh0KGN0eC5vcGVyYXRpb25OYW1lKTtcbiAgICAgIGYuY3JlYXRlRWwoJ2JyJyk7XG4gICAgfVxuICAgIGYuYXBwZW5kVGV4dCh0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYXN5bmNXaXRoTm90aWNlLnRpbWVkT3V0LCB7IGR1cmF0aW9uOiBjdHguZHVyYXRpb24gfSkpO1xuICAgIGYuY3JlYXRlRWwoJ2JyJyk7XG4gICAgZi5hcHBlbmRUZXh0KHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5hc3luY1dpdGhOb3RpY2UucnVubmluZ0ZvcikpO1xuICAgIGYuYXBwZW5kVGV4dCgnICcpO1xuICAgIHJ1bm5pbmdUaW1lRWwgPSBmLmNyZWF0ZVNwYW4oKTtcbiAgICBmLmFwcGVuZFRleHQoJyAnKTtcbiAgICBmLmFwcGVuZFRleHQodCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmFzeW5jV2l0aE5vdGljZS5taWxsaXNlY29uZHMpKTtcbiAgICBmLmNyZWF0ZUVsKCdicicpO1xuICAgIGYuYXBwZW5kVGV4dCh0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYXN5bmNXaXRoTm90aWNlLnRlcm1pbmF0ZU9wZXJhdGlvbikpO1xuICAgIGYuY3JlYXRlRWwoJ2JyJyk7XG4gICAgY29uc3QgYnV0dG9uID0gZi5jcmVhdGVFbCgnYnV0dG9uJywge1xuICAgICAgdGV4dDogdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmJ1dHRvbnMuY2FuY2VsKVxuICAgIH0pO1xuICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgIGN0eC50ZXJtaW5hdGVPcGVyYXRpb24oKTtcbiAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7XG4gICAgICBub3RpY2UuaGlkZSgpO1xuICAgIH0pO1xuICB9KSk7XG5cbiAgdXBkYXRlUnVubmluZ1RpbWUoKTtcbiAgaW50ZXJ2YWxJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbCh1cGRhdGVSdW5uaW5nVGltZSwgU0VDT05EX0lOX01JTExJU0VDT05EUyk7XG5cbiAgY3R4Lm9uT3BlcmF0aW9uQ29tcGxldGVkKCgpID0+IHtcbiAgICBjbGVhckludGVydmFsKGludGVydmFsSWQpO1xuICAgIG5vdGljZS5oaWRlKCk7XG4gIH0pO1xuXG4gIGZ1bmN0aW9uIHVwZGF0ZVJ1bm5pbmdUaW1lKCk6IHZvaWQge1xuICAgIGNvbnN0IHJ1bm5pbmdUaW1lSW5NaWxsaXNlY29uZHMgPSBNYXRoLm1heChjdHguZHVyYXRpb24sIE1hdGgucm91bmQoKHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lKSAvIFNFQ09ORF9JTl9NSUxMSVNFQ09ORFMpICogU0VDT05EX0lOX01JTExJU0VDT05EUyk7XG4gICAgcnVubmluZ1RpbWVFbC50ZXh0Q29udGVudCA9IFN0cmluZyhydW5uaW5nVGltZUluTWlsbGlzZWNvbmRzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBvblRpbWVvdXRXaXRob3V0Tm90aWNlKGN0eDogVGltZW91dENvbnRleHQpOiB2b2lkIHtcbiAgY29uc3Qgc3RhcnRUaW1lID0gTWF0aC50cnVuYyhwZXJmb3JtYW5jZS5ub3coKSAtIGN0eC5kdXJhdGlvbik7XG5cbiAgY3R4Lm9uT3BlcmF0aW9uQ29tcGxldGVkKCgpID0+IHtcbiAgICBnZXREZWJ1Z2dlcignQXN5bmNXaXRoTm90aWNlOm9uVGltZW91dFdpdGhvdXROb3RpY2UnKSgnT3BlcmF0aW9uIGNvbXBsZXRlZCBhZnRlciB0aW1lb3V0Jywge1xuICAgICAgb3BlcmF0aW9uTmFtZTogY3R4Lm9wZXJhdGlvbk5hbWUsXG4gICAgICB0b3RhbER1cmF0aW9uOiBNYXRoLnRydW5jKHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lKVxuICAgIH0pO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFRQSxzQkFBdUI7QUFPdkIsbUJBR087QUFDUCxtQkFBNEI7QUFDNUIsa0JBQWtCO0FBK0VsQixlQUFzQix1QkFBdUIsUUFBcUQ7QUFDaEcsYUFBTywrQkFBaUI7QUFBQSxJQUN0QixHQUFHO0FBQUEsSUFDSCxXQUFXLE9BQU8sMEJBQTBCLGtCQUFrQjtBQUFBLEVBQ2hFLENBQUM7QUFDSDtBQVNBLGVBQXNCLHFCQUE2QixRQUE2RDtBQUM5RyxhQUFPLDZCQUFlO0FBQUEsSUFDcEIsR0FBRztBQUFBLElBQ0gsV0FBVyxPQUFPLDBCQUEwQixrQkFBa0I7QUFBQSxFQUNoRSxDQUFDO0FBQ0g7QUFFQSxTQUFTLGdCQUFnQixLQUEyQjtBQUNsRCxRQUFNLFlBQVksS0FBSyxNQUFNLFlBQVksSUFBSSxJQUFJLElBQUksUUFBUTtBQUM3RCxNQUFJO0FBQ0osTUFBSTtBQUNKLFFBQU0seUJBQXlCO0FBRS9CLFFBQU0sU0FBUyxJQUFJLHVCQUFPLGVBQWUsQ0FBQyxNQUFNO0FBQzlDLFFBQUksSUFBSSxlQUFlO0FBQ3JCLFFBQUUsZUFBVyxlQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQixnQkFBZ0IsU0FBUyxDQUFDO0FBQ25FLFFBQUUsV0FBVyxJQUFJO0FBQ2pCLFFBQUUsV0FBVyxJQUFJLGFBQWE7QUFDOUIsUUFBRSxTQUFTLElBQUk7QUFBQSxJQUNqQjtBQUNBLE1BQUUsZUFBVyxlQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQixnQkFBZ0IsVUFBVSxFQUFFLFVBQVUsSUFBSSxTQUFTLENBQUMsQ0FBQztBQUM5RixNQUFFLFNBQVMsSUFBSTtBQUNmLE1BQUUsZUFBVyxlQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQixnQkFBZ0IsVUFBVSxDQUFDO0FBQ3BFLE1BQUUsV0FBVyxHQUFHO0FBQ2hCLG9CQUFnQixFQUFFLFdBQVc7QUFDN0IsTUFBRSxXQUFXLEdBQUc7QUFDaEIsTUFBRSxlQUFXLGVBQUUsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLGdCQUFnQixZQUFZLENBQUM7QUFDdEUsTUFBRSxTQUFTLElBQUk7QUFDZixNQUFFLGVBQVcsZUFBRSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsZ0JBQWdCLGtCQUFrQixDQUFDO0FBQzVFLE1BQUUsU0FBUyxJQUFJO0FBQ2YsVUFBTSxTQUFTLEVBQUUsU0FBUyxVQUFVO0FBQUEsTUFDbEMsVUFBTSxlQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQixRQUFRLE1BQU07QUFBQSxJQUNsRCxDQUFDO0FBQ0QsV0FBTyxpQkFBaUIsU0FBUyxNQUFNO0FBQ3JDLFVBQUksbUJBQW1CO0FBQ3ZCLG9CQUFjLFVBQVU7QUFDeEIsYUFBTyxLQUFLO0FBQUEsSUFDZCxDQUFDO0FBQUEsRUFDSCxDQUFDLENBQUM7QUFFRixvQkFBa0I7QUFDbEIsZUFBYSxPQUFPLFlBQVksbUJBQW1CLHNCQUFzQjtBQUV6RSxNQUFJLHFCQUFxQixNQUFNO0FBQzdCLGtCQUFjLFVBQVU7QUFDeEIsV0FBTyxLQUFLO0FBQUEsRUFDZCxDQUFDO0FBRUQsV0FBUyxvQkFBMEI7QUFDakMsVUFBTSw0QkFBNEIsS0FBSyxJQUFJLElBQUksVUFBVSxLQUFLLE9BQU8sWUFBWSxJQUFJLElBQUksYUFBYSxzQkFBc0IsSUFBSSxzQkFBc0I7QUFDdEosa0JBQWMsY0FBYyxPQUFPLHlCQUF5QjtBQUFBLEVBQzlEO0FBQ0Y7QUFFQSxTQUFTLHVCQUF1QixLQUEyQjtBQUN6RCxRQUFNLFlBQVksS0FBSyxNQUFNLFlBQVksSUFBSSxJQUFJLElBQUksUUFBUTtBQUU3RCxNQUFJLHFCQUFxQixNQUFNO0FBQzdCLGtDQUFZLHdDQUF3QyxFQUFFLHFDQUFxQztBQUFBLE1BQ3pGLGVBQWUsSUFBSTtBQUFBLE1BQ25CLGVBQWUsS0FBSyxNQUFNLFlBQVksSUFBSSxJQUFJLFNBQVM7QUFBQSxJQUN6RCxDQUFDO0FBQUEsRUFDSCxDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -8,7 +8,7 @@ import type { RetryOptions } from '../Async.cjs';
8
8
  /**
9
9
  * Options for {@link retryWithTimeoutNotice}.
10
10
  */
11
- export interface RetryWithTimeoutNoticeOptions {
11
+ export interface RetryWithTimeoutNoticeParams {
12
12
  /**
13
13
  * The operation function to execute.
14
14
  *
@@ -36,7 +36,7 @@ export interface RetryWithTimeoutNoticeOptions {
36
36
  /**
37
37
  * Options for {@link runWithTimeout}.
38
38
  */
39
- export interface RunWithTimeoutNoticeOptions<Result> {
39
+ export interface RunWithTimeoutNoticeParams<Result> {
40
40
  /**
41
41
  * The context of the function.
42
42
  */
@@ -68,15 +68,15 @@ export interface RunWithTimeoutNoticeOptions<Result> {
68
68
  /**
69
69
  * Retries the provided function until it returns true or the timeout is reached and displays a notice if the function times out.
70
70
  *
71
- * @param options - The options for the function.
71
+ * @param params - The parameters for the function.
72
72
  * @returns A {@link Promise} that resolves when the function returns true or rejects when the timeout is reached.
73
73
  */
74
- export declare function retryWithTimeoutNotice(options: RetryWithTimeoutNoticeOptions): Promise<void>;
74
+ export declare function retryWithTimeoutNotice(params: RetryWithTimeoutNoticeParams): Promise<void>;
75
75
  /**
76
76
  * Executes a function with a timeout and displays a notice if the function times out.
77
77
  *
78
78
  * @typeParam R - The type of the result from the asynchronous function.
79
- * @param options - The options for the function.
79
+ * @param params - The parameters for the function.
80
80
  * @returns The result of the function.
81
81
  */
82
- export declare function runWithTimeoutNotice<Result>(options: RunWithTimeoutNoticeOptions<Result>): Promise<Result>;
82
+ export declare function runWithTimeoutNotice<Result>(params: RunWithTimeoutNoticeParams<Result>): Promise<Result>;
@@ -140,13 +140,13 @@ var AttachmentPathContext = /* @__PURE__ */ ((AttachmentPathContext2) => {
140
140
  return AttachmentPathContext2;
141
141
  })(AttachmentPathContext || {});
142
142
  const DUMMY_PATH = "__DUMMY__";
143
- async function getAttachmentFilePath(options) {
143
+ async function getAttachmentFilePath(params) {
144
144
  const {
145
145
  app,
146
146
  notePathOrFile,
147
147
  oldAttachmentPathOrFile,
148
148
  shouldSkipDuplicateCheck
149
- } = options;
149
+ } = params;
150
150
  const attachmentPath = (0, import_FileSystem.getPath)(app, oldAttachmentPathOrFile);
151
151
  const attachmentFileExtension = (0, import_Path.extname)(attachmentPath);
152
152
  const attachmentFileBaseName = (0, import_Path.basename)(attachmentPath, attachmentFileExtension);
@@ -158,10 +158,10 @@ async function getAttachmentFilePath(options) {
158
158
  attachmentFileContent: attachmentFile ? await app.vault.readBinary(attachmentFile) : void 0,
159
159
  attachmentFileExtension: attachmentFileExtension.slice(1),
160
160
  attachmentFileStat: attachmentFile?.stat,
161
- context: options.context,
161
+ context: params.context,
162
162
  notePathOrFile,
163
- oldAttachmentPathOrFile: options.oldAttachmentPathOrFile,
164
- oldNotePathOrFile: options.oldNotePathOrFile,
163
+ oldAttachmentPathOrFile: params.oldAttachmentPathOrFile,
164
+ oldNotePathOrFile: params.oldNotePathOrFile,
165
165
  shouldSkipDuplicateCheck,
166
166
  shouldSkipMissingAttachmentFolderCreation: true
167
167
  });
@@ -186,14 +186,14 @@ async function getAttachmentFolderPath(app, notePathOrFile, context = "Unknown"
186
186
  })
187
187
  );
188
188
  }
189
- async function getAvailablePathForAttachments(options) {
189
+ async function getAvailablePathForAttachments(params) {
190
190
  const {
191
191
  app,
192
192
  attachmentFileExtension,
193
193
  notePathOrFile,
194
194
  shouldSkipDuplicateCheck,
195
195
  shouldSkipMissingAttachmentFolderCreation
196
- } = options;
196
+ } = params;
197
197
  let attachmentFolderPath = app.vault.getConfig("attachmentFolderPath");
198
198
  const isCurrentFolder = attachmentFolderPath === "." || attachmentFolderPath === "./";
199
199
  const relativePath = attachmentFolderPath.startsWith("./") ? (0, import_String.trimStart)(attachmentFolderPath, "./") : null;
@@ -204,7 +204,7 @@ async function getAvailablePathForAttachments(options) {
204
204
  attachmentFolderPath = (noteFileOrNull ? noteFileOrNull.parent?.getParentPrefix() ?? "" : "") + relativePath;
205
205
  }
206
206
  attachmentFolderPath = (0, import_String.normalize)(normalizeSlashes(attachmentFolderPath));
207
- const attachmentFileBaseName = (0, import_String.normalize)(normalizeSlashes(options.attachmentFileBaseName));
207
+ const attachmentFileBaseName = (0, import_String.normalize)(normalizeSlashes(params.attachmentFileBaseName));
208
208
  let folder = (0, import_FileSystem.getFolderOrNull)(app, attachmentFolderPath, true);
209
209
  if (!folder && relativePath) {
210
210
  folder = shouldSkipMissingAttachmentFolderCreation ? (0, import_FileSystem.getFolder)(app, attachmentFolderPath, true) : await app.vault.createFolder(attachmentFolderPath);
@@ -231,4 +231,4 @@ function normalizeSlashes(path) {
231
231
  getAvailablePathForAttachments,
232
232
  hasOwnAttachmentFolder
233
233
  });
234
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0F0dGFjaG1lbnRQYXRoLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggYXR0YWNobWVudCBwYXRocy5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gRGVlcGx5IGNvdXBsZWQgdG8gT2JzaWRpYW4gcnVudGltZTsgcmVxdWlyZXMgcnVubmluZyB2YXVsdCBmb3IgbWVhbmluZ2Z1bCB0ZXN0aW5nLiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgRmlsZVN0YXRzLFxuICBWYXVsdFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IHBhcmVudEZvbGRlclBhdGggfSBmcm9tICdvYnNpZGlhbi10eXBpbmdzL2ltcGxlbWVudGF0aW9ucyc7XG5cbmltcG9ydCB0eXBlIHsgUGF0aE9yRmlsZSB9IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5cbmltcG9ydCB7XG4gIGJhc2VuYW1lLFxuICBkaXJuYW1lLFxuICBleHRuYW1lLFxuICBqb2luLFxuICBtYWtlRmlsZU5hbWVcbn0gZnJvbSAnLi4vUGF0aC50cyc7XG5pbXBvcnQge1xuICBub3JtYWxpemUsXG4gIHJlcGxhY2VBbGwsXG4gIHRyaW1TdGFydFxufSBmcm9tICcuLi9TdHJpbmcudHMnO1xuaW1wb3J0IHtcbiAgZ2V0RmlsZU9yTnVsbCxcbiAgZ2V0Rm9sZGVyLFxuICBnZXRGb2xkZXJPck51bGwsXG4gIGdldFBhdGgsXG4gIE1BUktET1dOX0ZJTEVfRVhURU5TSU9OXG59IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5cbi8qKlxuICogQSBjb250ZXh0IGZvciBhbiBhdHRhY2htZW50IHBhdGguXG4gKi9cbmV4cG9ydCBlbnVtIEF0dGFjaG1lbnRQYXRoQ29udGV4dCB7XG4gIC8qKlxuICAgKiBBIGNvbnRleHQgZm9yIGEgZGVsZXRlIG5vdGUuXG4gICAqL1xuICBEZWxldGVOb3RlID0gJ0RlbGV0ZU5vdGUnLFxuXG4gIC8qKlxuICAgKiBBIGNvbnRleHQgZm9yIGEgcmVuYW1lIG5vdGUuXG4gICAqL1xuICBSZW5hbWVOb3RlID0gJ1JlbmFtZU5vdGUnLFxuXG4gIC8qKlxuICAgKiBBbiB1bmtub3duIGNvbnRleHQuXG4gICAqL1xuICBVbmtub3duID0gJ1Vua25vd24nXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGdldCBhdmFpbGFibGUgcGF0aCBmb3IgYXR0YWNobWVudHMgZXh0ZW5kZWQgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzRXh0ZW5kZWRGbk9wdGlvbnMge1xuICAvKipcbiAgICogQSBiYXNlIG5hbWUgb2YgdGhlIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBhdHRhY2htZW50RmlsZUJhc2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgY29udGVudCBvZiB0aGUgYXR0YWNobWVudCBmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXR0YWNobWVudEZpbGVDb250ZW50PzogQXJyYXlCdWZmZXIgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEFuIGV4dGVuc2lvbiBvZiB0aGUgYXR0YWNobWVudC5cbiAgICovXG4gIHJlYWRvbmx5IGF0dGFjaG1lbnRGaWxlRXh0ZW5zaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgc3RhdHMgb2YgdGhlIGF0dGFjaG1lbnQgZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IGF0dGFjaG1lbnRGaWxlU3RhdD86IEZpbGVTdGF0cyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQSBjb250ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dDogQXR0YWNobWVudFBhdGhDb250ZXh0O1xuXG4gIC8qKlxuICAgKiBBIHBhdGggb3IgZmlsZSBvZiB0aGUgbm90ZS5cbiAgICovXG4gIHJlYWRvbmx5IG5vdGVQYXRoT3JGaWxlOiBudWxsIHwgUGF0aE9yRmlsZTtcblxuICAvKipcbiAgICogQSBwYXRoIG9yIGZpbGUgb2YgdGhlIG9sZCBhdHRhY2htZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgb2xkQXR0YWNobWVudFBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIEEgcGF0aCBvciBmaWxlIG9mIHRoZSBvbGQgbm90ZS5cbiAgICovXG4gIHJlYWRvbmx5IG9sZE5vdGVQYXRoT3JGaWxlPzogUGF0aE9yRmlsZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogU2hvdWxkIHRoZSBkdXBsaWNhdGUgY2hlY2sgYmUgc2tpcHBlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFNraXBEdXBsaWNhdGVDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNob3VsZCB0aGUgZ2VuZXJhdGVkIGF0dGFjaG1lbnQgZmlsZSBuYW1lIGJlIHNraXBwZWQuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTa2lwR2VuZXJhdGVkQXR0YWNobWVudEZpbGVOYW1lPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2hvdWxkIG1pc3NpbmcgYXR0YWNobWVudCBmb2xkZXIgY3JlYXRpb24gYmUgc2tpcHBlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFNraXBNaXNzaW5nQXR0YWNobWVudEZvbGRlckNyZWF0aW9uOiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIHtAbGluayBWYXVsdC5nZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHN9IGV4dGVuZGVkIHdyYXBwZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzRm5FeHRlbmRlZCBleHRlbmRzIEdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50c0ZuIHtcbiAgLyoqXG4gICAqIEdldCBhdmFpbGFibGUgcGF0aCBmb3IgYXR0YWNobWVudHMgd2l0aCBhZGRpdGlvbmFsIG9wdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgdGhlIGdldCBhdmFpbGFibGUgcGF0aCBmb3IgYXR0YWNobWVudHMuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGF2YWlsYWJsZSBwYXRoIGZvciBhdHRhY2htZW50cy5cbiAgICovXG4gIGV4dGVuZGVkKG9wdGlvbnM6IEdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50c0V4dGVuZGVkRm5PcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+O1xufVxuXG50eXBlIEdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50c0ZuID0gVmF1bHRbJ2dldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50cyddO1xuXG4vKipcbiAqIER1bW15IHBhdGguXG4gKi9cbmV4cG9ydCBjb25zdCBEVU1NWV9QQVRIID0gJ19fRFVNTVlfXyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGdldEF0dGFjaG1lbnRGaWxlUGF0aCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRBdHRhY2htZW50RmlsZVBhdGhPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFuIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIEEgY29udGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ6IEF0dGFjaG1lbnRQYXRoQ29udGV4dDtcblxuICAvKipcbiAgICogQSBwYXRoIG9mIHRoZSBub3RlLlxuICAgKi9cbiAgcmVhZG9ubHkgbm90ZVBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIEEgcGF0aCBvZiB0aGUgYXR0YWNobWVudC5cbiAgICovXG4gIHJlYWRvbmx5IG9sZEF0dGFjaG1lbnRQYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xuXG4gIC8qKlxuICAgKiBBIHBhdGggb2YgdGhlIG9sZCBub3RlLlxuICAgKi9cbiAgcmVhZG9ubHkgb2xkTm90ZVBhdGhPckZpbGU/OiBQYXRoT3JGaWxlIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgdGhlIGR1cGxpY2F0ZSBjaGVjayBiZSBza2lwcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrOiBib29sZWFuO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBnZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHMgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBbiBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuICAvKipcbiAgICogQSBiYXNlIG5hbWUgb2YgdGhlIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBhdHRhY2htZW50RmlsZUJhc2VOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbiBleHRlbnNpb24gb2YgdGhlIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBhdHRhY2htZW50RmlsZUV4dGVuc2lvbjogc3RyaW5nO1xuICAvKipcbiAgICogQSBmaWxlIHRvIGF0dGFjaCB0by5cbiAgICovXG4gIHJlYWRvbmx5IG5vdGVQYXRoT3JGaWxlOiBudWxsIHwgUGF0aE9yRmlsZTtcbiAgLyoqXG4gICAqIFNob3VsZCB0aGUgZHVwbGljYXRlIGNoZWNrIGJlIHNraXBwZWQuXG4gICAqL1xuICByZWFkb25seSBzaG91bGRTa2lwRHVwbGljYXRlQ2hlY2s/OiBib29sZWFuO1xuICAvKipcbiAgICogU2hvdWxkIG1pc3NpbmcgYXR0YWNobWVudCBmb2xkZXIgY3JlYXRpb24gYmUgc2tpcHBlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFNraXBNaXNzaW5nQXR0YWNobWVudEZvbGRlckNyZWF0aW9uPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGZpbGUgcGF0aCBmb3IgYW4gYXR0YWNobWVudCB3aXRoaW4gYSBub3RlLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgdGhlIGdldCBhdHRhY2htZW50IGZpbGUgcGF0aCBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGZpbGUgcGF0aCBvZiB0aGUgYXR0YWNobWVudC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEF0dGFjaG1lbnRGaWxlUGF0aChvcHRpb25zOiBHZXRBdHRhY2htZW50RmlsZVBhdGhPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBub3RlUGF0aE9yRmlsZSxcbiAgICBvbGRBdHRhY2htZW50UGF0aE9yRmlsZSxcbiAgICBzaG91bGRTa2lwRHVwbGljYXRlQ2hlY2tcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGF0dGFjaG1lbnRQYXRoID0gZ2V0UGF0aChhcHAsIG9sZEF0dGFjaG1lbnRQYXRoT3JGaWxlKTtcbiAgY29uc3QgYXR0YWNobWVudEZpbGVFeHRlbnNpb24gPSBleHRuYW1lKGF0dGFjaG1lbnRQYXRoKTtcbiAgY29uc3QgYXR0YWNobWVudEZpbGVCYXNlTmFtZSA9IGJhc2VuYW1lKGF0dGFjaG1lbnRQYXRoLCBhdHRhY2htZW50RmlsZUV4dGVuc2lvbik7XG4gIGNvbnN0IGF0dGFjaG1lbnRGaWxlID0gZ2V0RmlsZU9yTnVsbChhcHAsIGF0dGFjaG1lbnRQYXRoKTtcblxuICBjb25zdCBleHRlbmRlZEZuID0gKGFwcC52YXVsdC5nZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHMgYXMgUGFydGlhbDxHZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNGbkV4dGVuZGVkPikuZXh0ZW5kZWQ7XG4gIGlmIChleHRlbmRlZEZuKSB7XG4gICAgcmV0dXJuIGV4dGVuZGVkRm4oe1xuICAgICAgYXR0YWNobWVudEZpbGVCYXNlTmFtZSxcbiAgICAgIGF0dGFjaG1lbnRGaWxlQ29udGVudDogYXR0YWNobWVudEZpbGUgPyBhd2FpdCBhcHAudmF1bHQucmVhZEJpbmFyeShhdHRhY2htZW50RmlsZSkgOiB1bmRlZmluZWQsXG4gICAgICBhdHRhY2htZW50RmlsZUV4dGVuc2lvbjogYXR0YWNobWVudEZpbGVFeHRlbnNpb24uc2xpY2UoMSksXG4gICAgICBhdHRhY2htZW50RmlsZVN0YXQ6IGF0dGFjaG1lbnRGaWxlPy5zdGF0LFxuICAgICAgY29udGV4dDogb3B0aW9ucy5jb250ZXh0LFxuICAgICAgbm90ZVBhdGhPckZpbGUsXG4gICAgICBvbGRBdHRhY2htZW50UGF0aE9yRmlsZTogb3B0aW9ucy5vbGRBdHRhY2htZW50UGF0aE9yRmlsZSxcbiAgICAgIG9sZE5vdGVQYXRoT3JGaWxlOiBvcHRpb25zLm9sZE5vdGVQYXRoT3JGaWxlLFxuICAgICAgc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrLFxuICAgICAgc2hvdWxkU2tpcE1pc3NpbmdBdHRhY2htZW50Rm9sZGVyQ3JlYXRpb246IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBhd2FpdCBnZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHMoe1xuICAgIGFwcCxcbiAgICBhdHRhY2htZW50RmlsZUJhc2VOYW1lLFxuICAgIGF0dGFjaG1lbnRGaWxlRXh0ZW5zaW9uOiBhdHRhY2htZW50RmlsZUV4dGVuc2lvbi5zbGljZSgxKSxcbiAgICBub3RlUGF0aE9yRmlsZSxcbiAgICBzaG91bGRTa2lwRHVwbGljYXRlQ2hlY2ssXG4gICAgc2hvdWxkU2tpcE1pc3NpbmdBdHRhY2htZW50Rm9sZGVyQ3JlYXRpb246IHRydWVcbiAgfSk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBhdHRhY2htZW50IGZvbGRlciBwYXRoIGZvciBhIGdpdmVuIG5vdGUuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHBsaWNhdGlvbiBpbnN0YW5jZS5cbiAqIEBwYXJhbSBub3RlUGF0aE9yRmlsZSAtIFRoZSBwYXRoIG9mIHRoZSBub3RlLlxuICogQHBhcmFtIGNvbnRleHQgLSBUaGUgY29udGV4dC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGF0dGFjaG1lbnQgZm9sZGVyIHBhdGguXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aChhcHA6IEFwcCwgbm90ZVBhdGhPckZpbGU6IFBhdGhPckZpbGUsIGNvbnRleHQgPSBBdHRhY2htZW50UGF0aENvbnRleHQuVW5rbm93bik6IFByb21pc2U8c3RyaW5nPiB7XG4gIHJldHVybiBwYXJlbnRGb2xkZXJQYXRoKFxuICAgIGF3YWl0IGdldEF0dGFjaG1lbnRGaWxlUGF0aCh7XG4gICAgICBhcHAsXG4gICAgICBjb250ZXh0LFxuICAgICAgbm90ZVBhdGhPckZpbGUsXG4gICAgICBvbGRBdHRhY2htZW50UGF0aE9yRmlsZTogRFVNTVlfUEFUSCxcbiAgICAgIHNob3VsZFNraXBEdXBsaWNhdGVDaGVjazogdHJ1ZVxuICAgIH0pXG4gICk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBhdmFpbGFibGUgcGF0aCBmb3IgYXR0YWNobWVudHMuXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25zIGZvciB0aGUgZ2V0IGF2YWlsYWJsZSBwYXRoIGZvciBhdHRhY2htZW50cyBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGF2YWlsYWJsZSBwYXRoIGZvciBhdHRhY2htZW50cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50cyhvcHRpb25zOiBHZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBhdHRhY2htZW50RmlsZUV4dGVuc2lvbixcbiAgICBub3RlUGF0aE9yRmlsZSxcbiAgICBzaG91bGRTa2lwRHVwbGljYXRlQ2hlY2ssXG4gICAgc2hvdWxkU2tpcE1pc3NpbmdBdHRhY2htZW50Rm9sZGVyQ3JlYXRpb25cbiAgfSA9IG9wdGlvbnM7XG4gIGxldCBhdHRhY2htZW50Rm9sZGVyUGF0aCA9IGFwcC52YXVsdC5nZXRDb25maWcoJ2F0dGFjaG1lbnRGb2xkZXJQYXRoJykgYXMgc3RyaW5nO1xuICBjb25zdCBpc0N1cnJlbnRGb2xkZXIgPSBhdHRhY2htZW50Rm9sZGVyUGF0aCA9PT0gJy4nIHx8IGF0dGFjaG1lbnRGb2xkZXJQYXRoID09PSAnLi8nO1xuICBjb25zdCByZWxhdGl2ZVBhdGggPSBhdHRhY2htZW50Rm9sZGVyUGF0aC5zdGFydHNXaXRoKCcuLycpID8gdHJpbVN0YXJ0KGF0dGFjaG1lbnRGb2xkZXJQYXRoLCAnLi8nKSA6IG51bGw7XG5cbiAgY29uc3Qgbm90ZUZpbGVPck51bGwgPSBnZXRGaWxlT3JOdWxsKGFwcCwgbm90ZVBhdGhPckZpbGUpO1xuXG4gIGlmIChpc0N1cnJlbnRGb2xkZXIpIHtcbiAgICBhdHRhY2htZW50Rm9sZGVyUGF0aCA9IG5vdGVGaWxlT3JOdWxsID8gbm90ZUZpbGVPck51bGwucGFyZW50Py5wYXRoID8/ICcnIDogJyc7XG4gIH0gZWxzZSBpZiAocmVsYXRpdmVQYXRoKSB7XG4gICAgYXR0YWNobWVudEZvbGRlclBhdGggPSAobm90ZUZpbGVPck51bGwgPyBub3RlRmlsZU9yTnVsbC5wYXJlbnQ/LmdldFBhcmVudFByZWZpeCgpID8/ICcnIDogJycpICsgcmVsYXRpdmVQYXRoO1xuICB9XG5cbiAgYXR0YWNobWVudEZvbGRlclBhdGggPSBub3JtYWxpemUobm9ybWFsaXplU2xhc2hlcyhhdHRhY2htZW50Rm9sZGVyUGF0aCkpO1xuICBjb25zdCBhdHRhY2htZW50RmlsZUJhc2VOYW1lID0gbm9ybWFsaXplKG5vcm1hbGl6ZVNsYXNoZXMob3B0aW9ucy5hdHRhY2htZW50RmlsZUJhc2VOYW1lKSk7XG5cbiAgbGV0IGZvbGRlciA9IGdldEZvbGRlck9yTnVsbChhcHAsIGF0dGFjaG1lbnRGb2xkZXJQYXRoLCB0cnVlKTtcblxuICBpZiAoIWZvbGRlciAmJiByZWxhdGl2ZVBhdGgpIHtcbiAgICBmb2xkZXIgPSBzaG91bGRTa2lwTWlzc2luZ0F0dGFjaG1lbnRGb2xkZXJDcmVhdGlvblxuICAgICAgPyBnZXRGb2xkZXIoYXBwLCBhdHRhY2htZW50Rm9sZGVyUGF0aCwgdHJ1ZSlcbiAgICAgIDogYXdhaXQgYXBwLnZhdWx0LmNyZWF0ZUZvbGRlcihhdHRhY2htZW50Rm9sZGVyUGF0aCk7XG4gIH1cblxuICBjb25zdCBwcmVmaXggPSBmb2xkZXI/LmdldFBhcmVudFByZWZpeCgpID8/ICcnO1xuICByZXR1cm4gc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrXG4gICAgPyBtYWtlRmlsZU5hbWUocHJlZml4ICsgYXR0YWNobWVudEZpbGVCYXNlTmFtZSwgYXR0YWNobWVudEZpbGVFeHRlbnNpb24pXG4gICAgOiBhcHAudmF1bHQuZ2V0QXZhaWxhYmxlUGF0aChwcmVmaXggKyBhdHRhY2htZW50RmlsZUJhc2VOYW1lLCBhdHRhY2htZW50RmlsZUV4dGVuc2lvbik7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgbm90ZSBoYXMgaXRzIG93biBhdHRhY2htZW50IGZvbGRlci5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGggLSBUaGUgcGF0aCBvZiB0aGUgbm90ZS5cbiAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIGNvbnRleHQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIG5vdGUgaGFzIGl0cyBvd24gYXR0YWNobWVudCBmb2xkZXIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYXNPd25BdHRhY2htZW50Rm9sZGVyKGFwcDogQXBwLCBwYXRoOiBzdHJpbmcsIGNvbnRleHQgPSBBdHRhY2htZW50UGF0aENvbnRleHQuVW5rbm93bik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCBhdHRhY2htZW50Rm9sZGVyUGF0aCA9IGF3YWl0IGdldEF0dGFjaG1lbnRGb2xkZXJQYXRoKGFwcCwgcGF0aCwgY29udGV4dCk7XG4gIGNvbnN0IGR1bW15QXR0YWNobWVudEZvbGRlclBhdGggPSBhd2FpdCBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aChhcHAsIGpvaW4oZGlybmFtZShwYXRoKSwgYCR7RFVNTVlfUEFUSH0uJHtNQVJLRE9XTl9GSUxFX0VYVEVOU0lPTn1gKSwgY29udGV4dCk7XG4gIHJldHVybiBhdHRhY2htZW50Rm9sZGVyUGF0aCAhPT0gZHVtbXlBdHRhY2htZW50Rm9sZGVyUGF0aDtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIGEgcGF0aCBieSBjb21iaW5pbmcgbXVsdGlwbGUgc2xhc2hlcyBpbnRvIGEgc2luZ2xlIHNsYXNoIGFuZCByZW1vdmluZyBsZWFkaW5nIGFuZCB0cmFpbGluZyBzbGFzaGVzLlxuICpcbiAqIEBwYXJhbSBwYXRoIC0gUGF0aCB0byBub3JtYWxpemUuXG4gKiBAcmV0dXJucyBUaGUgbm9ybWFsaXplZCBwYXRoLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVTbGFzaGVzKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHBhdGggPSByZXBsYWNlQWxsKHBhdGgsIC8oPzpbXFxcXC9dKSsvZywgJy8nKTtcbiAgcGF0aCA9IHJlcGxhY2VBbGwocGF0aCwgL15cXC8rfFxcLyskL2csICcnKTtcbiAgcmV0dXJuIHBhdGggfHwgJy8nO1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjog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
234
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0F0dGFjaG1lbnRQYXRoLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggYXR0YWNobWVudCBwYXRocy5cbiAqL1xuXG4vKiB2OCBpZ25vcmUgc3RhcnQgLS0gRGVlcGx5IGNvdXBsZWQgdG8gT2JzaWRpYW4gcnVudGltZTsgcmVxdWlyZXMgcnVubmluZyB2YXVsdCBmb3IgbWVhbmluZ2Z1bCB0ZXN0aW5nLiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcCxcbiAgRmlsZVN0YXRzLFxuICBWYXVsdFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IHBhcmVudEZvbGRlclBhdGggfSBmcm9tICdvYnNpZGlhbi10eXBpbmdzL2ltcGxlbWVudGF0aW9ucyc7XG5cbmltcG9ydCB0eXBlIHsgUGF0aE9yRmlsZSB9IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5cbmltcG9ydCB7XG4gIGJhc2VuYW1lLFxuICBkaXJuYW1lLFxuICBleHRuYW1lLFxuICBqb2luLFxuICBtYWtlRmlsZU5hbWVcbn0gZnJvbSAnLi4vUGF0aC50cyc7XG5pbXBvcnQge1xuICBub3JtYWxpemUsXG4gIHJlcGxhY2VBbGwsXG4gIHRyaW1TdGFydFxufSBmcm9tICcuLi9TdHJpbmcudHMnO1xuaW1wb3J0IHtcbiAgZ2V0RmlsZU9yTnVsbCxcbiAgZ2V0Rm9sZGVyLFxuICBnZXRGb2xkZXJPck51bGwsXG4gIGdldFBhdGgsXG4gIE1BUktET1dOX0ZJTEVfRVhURU5TSU9OXG59IGZyb20gJy4vRmlsZVN5c3RlbS50cyc7XG5cbi8qKlxuICogQSBjb250ZXh0IGZvciBhbiBhdHRhY2htZW50IHBhdGguXG4gKi9cbmV4cG9ydCBlbnVtIEF0dGFjaG1lbnRQYXRoQ29udGV4dCB7XG4gIC8qKlxuICAgKiBBIGNvbnRleHQgZm9yIGEgZGVsZXRlIG5vdGUuXG4gICAqL1xuICBEZWxldGVOb3RlID0gJ0RlbGV0ZU5vdGUnLFxuXG4gIC8qKlxuICAgKiBBIGNvbnRleHQgZm9yIGEgcmVuYW1lIG5vdGUuXG4gICAqL1xuICBSZW5hbWVOb3RlID0gJ1JlbmFtZU5vdGUnLFxuXG4gIC8qKlxuICAgKiBBbiB1bmtub3duIGNvbnRleHQuXG4gICAqL1xuICBVbmtub3duID0gJ1Vua25vd24nXG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGdldCBhdmFpbGFibGUgcGF0aCBmb3IgYXR0YWNobWVudHMgZXh0ZW5kZWQgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzRXh0ZW5kZWRGblBhcmFtcyB7XG4gIC8qKlxuICAgKiBBIGJhc2UgbmFtZSBvZiB0aGUgYXR0YWNobWVudC5cbiAgICovXG4gIHJlYWRvbmx5IGF0dGFjaG1lbnRGaWxlQmFzZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQSBjb250ZW50IG9mIHRoZSBhdHRhY2htZW50IGZpbGUuXG4gICAqL1xuICByZWFkb25seSBhdHRhY2htZW50RmlsZUNvbnRlbnQ/OiBBcnJheUJ1ZmZlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQW4gZXh0ZW5zaW9uIG9mIHRoZSBhdHRhY2htZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgYXR0YWNobWVudEZpbGVFeHRlbnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogQSBzdGF0cyBvZiB0aGUgYXR0YWNobWVudCBmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXR0YWNobWVudEZpbGVTdGF0PzogRmlsZVN0YXRzIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBBIGNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0OiBBdHRhY2htZW50UGF0aENvbnRleHQ7XG5cbiAgLyoqXG4gICAqIEEgcGF0aCBvciBmaWxlIG9mIHRoZSBub3RlLlxuICAgKi9cbiAgcmVhZG9ubHkgbm90ZVBhdGhPckZpbGU6IG51bGwgfCBQYXRoT3JGaWxlO1xuXG4gIC8qKlxuICAgKiBBIHBhdGggb3IgZmlsZSBvZiB0aGUgb2xkIGF0dGFjaG1lbnQuXG4gICAqL1xuICByZWFkb25seSBvbGRBdHRhY2htZW50UGF0aE9yRmlsZTogUGF0aE9yRmlsZTtcblxuICAvKipcbiAgICogQSBwYXRoIG9yIGZpbGUgb2YgdGhlIG9sZCBub3RlLlxuICAgKi9cbiAgcmVhZG9ubHkgb2xkTm90ZVBhdGhPckZpbGU/OiBQYXRoT3JGaWxlIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgdGhlIGR1cGxpY2F0ZSBjaGVjayBiZSBza2lwcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2hvdWxkIHRoZSBnZW5lcmF0ZWQgYXR0YWNobWVudCBmaWxlIG5hbWUgYmUgc2tpcHBlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFNraXBHZW5lcmF0ZWRBdHRhY2htZW50RmlsZU5hbWU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgbWlzc2luZyBhdHRhY2htZW50IGZvbGRlciBjcmVhdGlvbiBiZSBza2lwcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2tpcE1pc3NpbmdBdHRhY2htZW50Rm9sZGVyQ3JlYXRpb246IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICoge0BsaW5rIFZhdWx0LmdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50c30gZXh0ZW5kZWQgd3JhcHBlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNGbkV4dGVuZGVkIGV4dGVuZHMgR2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzRm4ge1xuICAvKipcbiAgICogR2V0IGF2YWlsYWJsZSBwYXRoIGZvciBhdHRhY2htZW50cyB3aXRoIGFkZGl0aW9uYWwgcGFyYW1zLlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gUGFyYW1ldGVycyBmb3IgdGhlIGdldCBhdmFpbGFibGUgcGF0aCBmb3IgYXR0YWNobWVudHMuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGF2YWlsYWJsZSBwYXRoIGZvciBhdHRhY2htZW50cy5cbiAgICovXG4gIGV4dGVuZGVkKHBhcmFtczogR2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzRXh0ZW5kZWRGblBhcmFtcyk6IFByb21pc2U8c3RyaW5nPjtcbn1cblxudHlwZSBHZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHNGbiA9IFZhdWx0WydnZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHMnXTtcblxuLyoqXG4gKiBEdW1teSBwYXRoLlxuICovXG5leHBvcnQgY29uc3QgRFVNTVlfUEFUSCA9ICdfX0RVTU1ZX18nO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBnZXRBdHRhY2htZW50RmlsZVBhdGggZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QXR0YWNobWVudEZpbGVQYXRoUGFyYW1zIHtcbiAgLyoqXG4gICAqIEFuIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIEEgY29udGV4dC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ6IEF0dGFjaG1lbnRQYXRoQ29udGV4dDtcblxuICAvKipcbiAgICogQSBwYXRoIG9mIHRoZSBub3RlLlxuICAgKi9cbiAgcmVhZG9ubHkgbm90ZVBhdGhPckZpbGU6IFBhdGhPckZpbGU7XG5cbiAgLyoqXG4gICAqIEEgcGF0aCBvZiB0aGUgYXR0YWNobWVudC5cbiAgICovXG4gIHJlYWRvbmx5IG9sZEF0dGFjaG1lbnRQYXRoT3JGaWxlOiBQYXRoT3JGaWxlO1xuXG4gIC8qKlxuICAgKiBBIHBhdGggb2YgdGhlIG9sZCBub3RlLlxuICAgKi9cbiAgcmVhZG9ubHkgb2xkTm90ZVBhdGhPckZpbGU/OiBQYXRoT3JGaWxlIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgdGhlIGR1cGxpY2F0ZSBjaGVjayBiZSBza2lwcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrOiBib29sZWFuO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSBnZXRBdmFpbGFibGVQYXRoRm9yQXR0YWNobWVudHMgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzUGFyYW1zIHtcbiAgLyoqXG4gICAqIEFuIE9ic2lkaWFuIGFwcGxpY2F0aW9uIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG4gIC8qKlxuICAgKiBBIGJhc2UgbmFtZSBvZiB0aGUgYXR0YWNobWVudC5cbiAgICovXG4gIHJlYWRvbmx5IGF0dGFjaG1lbnRGaWxlQmFzZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIEFuIGV4dGVuc2lvbiBvZiB0aGUgYXR0YWNobWVudC5cbiAgICovXG4gIHJlYWRvbmx5IGF0dGFjaG1lbnRGaWxlRXh0ZW5zaW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIGZpbGUgdG8gYXR0YWNoIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgbm90ZVBhdGhPckZpbGU6IG51bGwgfCBQYXRoT3JGaWxlO1xuICAvKipcbiAgICogU2hvdWxkIHRoZSBkdXBsaWNhdGUgY2hlY2sgYmUgc2tpcHBlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3VsZFNraXBEdXBsaWNhdGVDaGVjaz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTaG91bGQgbWlzc2luZyBhdHRhY2htZW50IGZvbGRlciBjcmVhdGlvbiBiZSBza2lwcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2tpcE1pc3NpbmdBdHRhY2htZW50Rm9sZGVyQ3JlYXRpb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgZmlsZSBwYXRoIGZvciBhbiBhdHRhY2htZW50IHdpdGhpbiBhIG5vdGUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFBhcmFtZXRlcnMgZm9yIHRoZSBnZXQgYXR0YWNobWVudCBmaWxlIHBhdGggZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBmaWxlIHBhdGggb2YgdGhlIGF0dGFjaG1lbnQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBdHRhY2htZW50RmlsZVBhdGgocGFyYW1zOiBHZXRBdHRhY2htZW50RmlsZVBhdGhQYXJhbXMpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIG5vdGVQYXRoT3JGaWxlLFxuICAgIG9sZEF0dGFjaG1lbnRQYXRoT3JGaWxlLFxuICAgIHNob3VsZFNraXBEdXBsaWNhdGVDaGVja1xuICB9ID0gcGFyYW1zO1xuICBjb25zdCBhdHRhY2htZW50UGF0aCA9IGdldFBhdGgoYXBwLCBvbGRBdHRhY2htZW50UGF0aE9yRmlsZSk7XG4gIGNvbnN0IGF0dGFjaG1lbnRGaWxlRXh0ZW5zaW9uID0gZXh0bmFtZShhdHRhY2htZW50UGF0aCk7XG4gIGNvbnN0IGF0dGFjaG1lbnRGaWxlQmFzZU5hbWUgPSBiYXNlbmFtZShhdHRhY2htZW50UGF0aCwgYXR0YWNobWVudEZpbGVFeHRlbnNpb24pO1xuICBjb25zdCBhdHRhY2htZW50RmlsZSA9IGdldEZpbGVPck51bGwoYXBwLCBhdHRhY2htZW50UGF0aCk7XG5cbiAgY29uc3QgZXh0ZW5kZWRGbiA9IChhcHAudmF1bHQuZ2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzIGFzIFBhcnRpYWw8R2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzRm5FeHRlbmRlZD4pLmV4dGVuZGVkO1xuICBpZiAoZXh0ZW5kZWRGbikge1xuICAgIHJldHVybiBleHRlbmRlZEZuKHtcbiAgICAgIGF0dGFjaG1lbnRGaWxlQmFzZU5hbWUsXG4gICAgICBhdHRhY2htZW50RmlsZUNvbnRlbnQ6IGF0dGFjaG1lbnRGaWxlID8gYXdhaXQgYXBwLnZhdWx0LnJlYWRCaW5hcnkoYXR0YWNobWVudEZpbGUpIDogdW5kZWZpbmVkLFxuICAgICAgYXR0YWNobWVudEZpbGVFeHRlbnNpb246IGF0dGFjaG1lbnRGaWxlRXh0ZW5zaW9uLnNsaWNlKDEpLFxuICAgICAgYXR0YWNobWVudEZpbGVTdGF0OiBhdHRhY2htZW50RmlsZT8uc3RhdCxcbiAgICAgIGNvbnRleHQ6IHBhcmFtcy5jb250ZXh0LFxuICAgICAgbm90ZVBhdGhPckZpbGUsXG4gICAgICBvbGRBdHRhY2htZW50UGF0aE9yRmlsZTogcGFyYW1zLm9sZEF0dGFjaG1lbnRQYXRoT3JGaWxlLFxuICAgICAgb2xkTm90ZVBhdGhPckZpbGU6IHBhcmFtcy5vbGROb3RlUGF0aE9yRmlsZSxcbiAgICAgIHNob3VsZFNraXBEdXBsaWNhdGVDaGVjayxcbiAgICAgIHNob3VsZFNraXBNaXNzaW5nQXR0YWNobWVudEZvbGRlckNyZWF0aW9uOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gYXdhaXQgZ2V0QXZhaWxhYmxlUGF0aEZvckF0dGFjaG1lbnRzKHtcbiAgICBhcHAsXG4gICAgYXR0YWNobWVudEZpbGVCYXNlTmFtZSxcbiAgICBhdHRhY2htZW50RmlsZUV4dGVuc2lvbjogYXR0YWNobWVudEZpbGVFeHRlbnNpb24uc2xpY2UoMSksXG4gICAgbm90ZVBhdGhPckZpbGUsXG4gICAgc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrLFxuICAgIHNob3VsZFNraXBNaXNzaW5nQXR0YWNobWVudEZvbGRlckNyZWF0aW9uOiB0cnVlXG4gIH0pO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgYXR0YWNobWVudCBmb2xkZXIgcGF0aCBmb3IgYSBnaXZlbiBub3RlLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gbm90ZVBhdGhPckZpbGUgLSBUaGUgcGF0aCBvZiB0aGUgbm90ZS5cbiAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIGNvbnRleHQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBhdHRhY2htZW50IGZvbGRlciBwYXRoLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QXR0YWNobWVudEZvbGRlclBhdGgoYXBwOiBBcHAsIG5vdGVQYXRoT3JGaWxlOiBQYXRoT3JGaWxlLCBjb250ZXh0ID0gQXR0YWNobWVudFBhdGhDb250ZXh0LlVua25vd24pOiBQcm9taXNlPHN0cmluZz4ge1xuICByZXR1cm4gcGFyZW50Rm9sZGVyUGF0aChcbiAgICBhd2FpdCBnZXRBdHRhY2htZW50RmlsZVBhdGgoe1xuICAgICAgYXBwLFxuICAgICAgY29udGV4dCxcbiAgICAgIG5vdGVQYXRoT3JGaWxlLFxuICAgICAgb2xkQXR0YWNobWVudFBhdGhPckZpbGU6IERVTU1ZX1BBVEgsXG4gICAgICBzaG91bGRTa2lwRHVwbGljYXRlQ2hlY2s6IHRydWVcbiAgICB9KVxuICApO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgYXZhaWxhYmxlIHBhdGggZm9yIGF0dGFjaG1lbnRzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBQYXJhbWV0ZXJzIGZvciB0aGUgZ2V0IGF2YWlsYWJsZSBwYXRoIGZvciBhdHRhY2htZW50cyBmdW5jdGlvbi5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGF2YWlsYWJsZSBwYXRoIGZvciBhdHRhY2htZW50cy5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50cyhwYXJhbXM6IEdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50c1BhcmFtcyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgYXR0YWNobWVudEZpbGVFeHRlbnNpb24sXG4gICAgbm90ZVBhdGhPckZpbGUsXG4gICAgc2hvdWxkU2tpcER1cGxpY2F0ZUNoZWNrLFxuICAgIHNob3VsZFNraXBNaXNzaW5nQXR0YWNobWVudEZvbGRlckNyZWF0aW9uXG4gIH0gPSBwYXJhbXM7XG4gIGxldCBhdHRhY2htZW50Rm9sZGVyUGF0aCA9IGFwcC52YXVsdC5nZXRDb25maWcoJ2F0dGFjaG1lbnRGb2xkZXJQYXRoJykgYXMgc3RyaW5nO1xuICBjb25zdCBpc0N1cnJlbnRGb2xkZXIgPSBhdHRhY2htZW50Rm9sZGVyUGF0aCA9PT0gJy4nIHx8IGF0dGFjaG1lbnRGb2xkZXJQYXRoID09PSAnLi8nO1xuICBjb25zdCByZWxhdGl2ZVBhdGggPSBhdHRhY2htZW50Rm9sZGVyUGF0aC5zdGFydHNXaXRoKCcuLycpID8gdHJpbVN0YXJ0KGF0dGFjaG1lbnRGb2xkZXJQYXRoLCAnLi8nKSA6IG51bGw7XG5cbiAgY29uc3Qgbm90ZUZpbGVPck51bGwgPSBnZXRGaWxlT3JOdWxsKGFwcCwgbm90ZVBhdGhPckZpbGUpO1xuXG4gIGlmIChpc0N1cnJlbnRGb2xkZXIpIHtcbiAgICBhdHRhY2htZW50Rm9sZGVyUGF0aCA9IG5vdGVGaWxlT3JOdWxsID8gbm90ZUZpbGVPck51bGwucGFyZW50Py5wYXRoID8/ICcnIDogJyc7XG4gIH0gZWxzZSBpZiAocmVsYXRpdmVQYXRoKSB7XG4gICAgYXR0YWNobWVudEZvbGRlclBhdGggPSAobm90ZUZpbGVPck51bGwgPyBub3RlRmlsZU9yTnVsbC5wYXJlbnQ/LmdldFBhcmVudFByZWZpeCgpID8/ICcnIDogJycpICsgcmVsYXRpdmVQYXRoO1xuICB9XG5cbiAgYXR0YWNobWVudEZvbGRlclBhdGggPSBub3JtYWxpemUobm9ybWFsaXplU2xhc2hlcyhhdHRhY2htZW50Rm9sZGVyUGF0aCkpO1xuICBjb25zdCBhdHRhY2htZW50RmlsZUJhc2VOYW1lID0gbm9ybWFsaXplKG5vcm1hbGl6ZVNsYXNoZXMocGFyYW1zLmF0dGFjaG1lbnRGaWxlQmFzZU5hbWUpKTtcblxuICBsZXQgZm9sZGVyID0gZ2V0Rm9sZGVyT3JOdWxsKGFwcCwgYXR0YWNobWVudEZvbGRlclBhdGgsIHRydWUpO1xuXG4gIGlmICghZm9sZGVyICYmIHJlbGF0aXZlUGF0aCkge1xuICAgIGZvbGRlciA9IHNob3VsZFNraXBNaXNzaW5nQXR0YWNobWVudEZvbGRlckNyZWF0aW9uXG4gICAgICA/IGdldEZvbGRlcihhcHAsIGF0dGFjaG1lbnRGb2xkZXJQYXRoLCB0cnVlKVxuICAgICAgOiBhd2FpdCBhcHAudmF1bHQuY3JlYXRlRm9sZGVyKGF0dGFjaG1lbnRGb2xkZXJQYXRoKTtcbiAgfVxuXG4gIGNvbnN0IHByZWZpeCA9IGZvbGRlcj8uZ2V0UGFyZW50UHJlZml4KCkgPz8gJyc7XG4gIHJldHVybiBzaG91bGRTa2lwRHVwbGljYXRlQ2hlY2tcbiAgICA/IG1ha2VGaWxlTmFtZShwcmVmaXggKyBhdHRhY2htZW50RmlsZUJhc2VOYW1lLCBhdHRhY2htZW50RmlsZUV4dGVuc2lvbilcbiAgICA6IGFwcC52YXVsdC5nZXRBdmFpbGFibGVQYXRoKHByZWZpeCArIGF0dGFjaG1lbnRGaWxlQmFzZU5hbWUsIGF0dGFjaG1lbnRGaWxlRXh0ZW5zaW9uKTtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgYSBub3RlIGhhcyBpdHMgb3duIGF0dGFjaG1lbnQgZm9sZGVyLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwbGljYXRpb24gaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIG9mIHRoZSBub3RlLlxuICogQHBhcmFtIGNvbnRleHQgLSBUaGUgY29udGV4dC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgbm90ZSBoYXMgaXRzIG93biBhdHRhY2htZW50IGZvbGRlci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhc093bkF0dGFjaG1lbnRGb2xkZXIoYXBwOiBBcHAsIHBhdGg6IHN0cmluZywgY29udGV4dCA9IEF0dGFjaG1lbnRQYXRoQ29udGV4dC5Vbmtub3duKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IGF0dGFjaG1lbnRGb2xkZXJQYXRoID0gYXdhaXQgZ2V0QXR0YWNobWVudEZvbGRlclBhdGgoYXBwLCBwYXRoLCBjb250ZXh0KTtcbiAgY29uc3QgZHVtbXlBdHRhY2htZW50Rm9sZGVyUGF0aCA9IGF3YWl0IGdldEF0dGFjaG1lbnRGb2xkZXJQYXRoKGFwcCwgam9pbihkaXJuYW1lKHBhdGgpLCBgJHtEVU1NWV9QQVRIfS4ke01BUktET1dOX0ZJTEVfRVhURU5TSU9OfWApLCBjb250ZXh0KTtcbiAgcmV0dXJuIGF0dGFjaG1lbnRGb2xkZXJQYXRoICE9PSBkdW1teUF0dGFjaG1lbnRGb2xkZXJQYXRoO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBwYXRoIGJ5IGNvbWJpbmluZyBtdWx0aXBsZSBzbGFzaGVzIGludG8gYSBzaW5nbGUgc2xhc2ggYW5kIHJlbW92aW5nIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHNsYXNoZXMuXG4gKlxuICogQHBhcmFtIHBhdGggLSBQYXRoIHRvIG5vcm1hbGl6ZS5cbiAqIEByZXR1cm5zIFRoZSBub3JtYWxpemVkIHBhdGguXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVNsYXNoZXMocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcGF0aCA9IHJlcGxhY2VBbGwocGF0aCwgLyg/OltcXFxcL10pKy9nLCAnLycpO1xuICBwYXRoID0gcmVwbGFjZUFsbChwYXRoLCAvXlxcLyt8XFwvKyQvZywgJycpO1xuICByZXR1cm4gcGF0aCB8fCAnLyc7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7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
@@ -25,7 +25,7 @@ export declare enum AttachmentPathContext {
25
25
  /**
26
26
  * Options for the get available path for attachments extended function.
27
27
  */
28
- export interface GetAvailablePathForAttachmentsExtendedFnOptions {
28
+ export interface GetAvailablePathForAttachmentsExtendedFnParams {
29
29
  /**
30
30
  * A base name of the attachment.
31
31
  */
@@ -76,12 +76,12 @@ export interface GetAvailablePathForAttachmentsExtendedFnOptions {
76
76
  */
77
77
  export interface GetAvailablePathForAttachmentsFnExtended extends GetAvailablePathForAttachmentsFn {
78
78
  /**
79
- * Get available path for attachments with additional options.
79
+ * Get available path for attachments with additional params.
80
80
  *
81
- * @param options - Options for the get available path for attachments.
81
+ * @param params - Parameters for the get available path for attachments.
82
82
  * @returns A {@link Promise} that resolves to the available path for attachments.
83
83
  */
84
- extended(options: GetAvailablePathForAttachmentsExtendedFnOptions): Promise<string>;
84
+ extended(params: GetAvailablePathForAttachmentsExtendedFnParams): Promise<string>;
85
85
  }
86
86
  type GetAvailablePathForAttachmentsFn = Vault['getAvailablePathForAttachments'];
87
87
  /**
@@ -91,7 +91,7 @@ export declare const DUMMY_PATH = "__DUMMY__";
91
91
  /**
92
92
  * Options for the getAttachmentFilePath function.
93
93
  */
94
- export interface GetAttachmentFilePathOptions {
94
+ export interface GetAttachmentFilePathParams {
95
95
  /**
96
96
  * An Obsidian application instance.
97
97
  */
@@ -120,7 +120,7 @@ export interface GetAttachmentFilePathOptions {
120
120
  /**
121
121
  * Options for the getAvailablePathForAttachments function.
122
122
  */
123
- export interface GetAvailablePathForAttachmentsOptions {
123
+ export interface GetAvailablePathForAttachmentsParams {
124
124
  /**
125
125
  * An Obsidian application instance.
126
126
  */
@@ -149,10 +149,10 @@ export interface GetAvailablePathForAttachmentsOptions {
149
149
  /**
150
150
  * Retrieves the file path for an attachment within a note.
151
151
  *
152
- * @param options - Options for the get attachment file path function.
152
+ * @param params - Parameters for the get attachment file path function.
153
153
  * @returns A {@link Promise} that resolves to the file path of the attachment.
154
154
  */
155
- export declare function getAttachmentFilePath(options: GetAttachmentFilePathOptions): Promise<string>;
155
+ export declare function getAttachmentFilePath(params: GetAttachmentFilePathParams): Promise<string>;
156
156
  /**
157
157
  * Retrieves the attachment folder path for a given note.
158
158
  *
@@ -165,10 +165,10 @@ export declare function getAttachmentFolderPath(app: App, notePathOrFile: PathOr
165
165
  /**
166
166
  * Retrieves the available path for attachments.
167
167
  *
168
- * @param options - Options for the get available path for attachments function.
168
+ * @param params - Parameters for the get available path for attachments function.
169
169
  * @returns A {@link Promise} that resolves to the available path for attachments.
170
170
  */
171
- export declare function getAvailablePathForAttachments(options: GetAvailablePathForAttachmentsOptions): Promise<string>;
171
+ export declare function getAvailablePathForAttachments(params: GetAvailablePathForAttachmentsParams): Promise<string>;
172
172
  /**
173
173
  * Checks if a note has its own attachment folder.
174
174
  *
@@ -170,12 +170,12 @@ async function renderBacklinksTable(dv, pathOrFiles) {
170
170
  rows: backlinkRows
171
171
  });
172
172
  }
173
- function renderDelayedBacklinks(options) {
173
+ function renderDelayedBacklinks(params) {
174
174
  const {
175
175
  dv,
176
176
  files,
177
177
  title = "Backlinks"
178
- } = options;
178
+ } = params;
179
179
  (0, import_Callout.renderCallout)({
180
180
  async contentProvider() {
181
181
  await renderBacklinksTable(dv, files);
@@ -184,12 +184,12 @@ function renderDelayedBacklinks(options) {
184
184
  header: title
185
185
  });
186
186
  }
187
- function renderDelayedBacklinksForFolder(options) {
187
+ function renderDelayedBacklinksForFolder(params) {
188
188
  const {
189
189
  dv,
190
190
  folder,
191
191
  title = "Folder Backlinks"
192
- } = options;
192
+ } = params;
193
193
  const folder2 = folder ?? dv.current().file.folder;
194
194
  renderDelayedBacklinks({
195
195
  dv,
@@ -203,4 +203,4 @@ function renderDelayedBacklinksForFolder(options) {
203
203
  renderDelayedBacklinks,
204
204
  renderDelayedBacklinksForFolder
205
205
  });
206
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0JhY2tsaW5rLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggYmFja2xpbmtzLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBEZWVwbHkgY291cGxlZCB0byBPYnNpZGlhbiBydW50aW1lOyByZXF1aXJlcyBydW5uaW5nIHZhdWx0IGZvciBtZWFuaW5nZnVsIHRlc3RpbmcuICovXG5cbmltcG9ydCB0eXBlIHsgVEZpbGUgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgRGF0YXZpZXdJbmxpbmVBcGksXG4gIExpbmtcbn0gZnJvbSAnLi9EYXRhdmlldy50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFBhdGhPckFic3RyYWN0RmlsZSxcbiAgUGF0aE9yRmlsZVxufSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xuXG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJy4uL1R5cGVHdWFyZHMudHMnO1xuaW1wb3J0IHsgcmVuZGVyQ2FsbG91dCB9IGZyb20gJy4vQ2FsbG91dC50cyc7XG5pbXBvcnQgeyByZW5kZXJQYWdpbmF0ZWRUYWJsZSB9IGZyb20gJy4vRGF0YXZpZXcudHMnO1xuaW1wb3J0IHsgZml4VGl0bGUgfSBmcm9tICcuL0RhdGF2aWV3TGluay50cyc7XG5pbXBvcnQge1xuICBnZXRBYnN0cmFjdEZpbGVPck51bGwsXG4gIGdldE1hcmtkb3duRmlsZXMsXG4gIGlzRmlsZSxcbiAgaXNGb2xkZXJcbn0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcbmltcG9ydCB7IGdlbmVyYXRlTWFya2Rvd25MaW5rIH0gZnJvbSAnLi9MaW5rLnRzJztcbmltcG9ydCB7IGdldEJhY2tsaW5rc0ZvckZpbGVTYWZlIH0gZnJvbSAnLi9NZXRhZGF0YUNhY2hlLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcmVuZGVyRGVsYXllZEJhY2tsaW5rc0ZvckZvbGRlcn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVyRGVsYXllZEJhY2tsaW5rc0ZvckZvbGRlck9wdGlvbnMge1xuICAvKipcbiAgICogQSB7QGxpbmsgRGF0YXZpZXdJbmxpbmVBcGl9IGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBBIGZvbGRlciBwYXRoLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBjdXJyZW50IGZpbGUncyBmb2xkZXIgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgZm9sZGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHRpdGxlIGZvciB0aGUgcmVuZGVyZWQgYmFja2xpbmtzLiBEZWZhdWx0cyB0byBcIkZvbGRlciBCYWNrbGlua3NcIi5cbiAgICovXG4gIHJlYWRvbmx5IHRpdGxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayByZW5kZXJEZWxheWVkQmFja2xpbmtzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJEZWxheWVkQmFja2xpbmtzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBIHtAbGluayBEYXRhdmlld0lubGluZUFwaX0gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBkdjogRGF0YXZpZXdJbmxpbmVBcGk7XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIFBhdGhPckZpbGUuXG4gICAqL1xuICByZWFkb25seSBmaWxlczogUGF0aE9yRmlsZVtdO1xuXG4gIC8qKlxuICAgKiBBIHRpdGxlIGZvciB0aGUgcmVuZGVyZWQgYmFja2xpbmtzLiBEZWZhdWx0cyB0byBcIkJhY2tsaW5rc1wiLlxuICAgKi9cbiAgcmVhZG9ubHkgdGl0bGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVuZGVycyBhIGJhY2tsaW5rcyB0YWJsZSB1c2luZyB0aGUgcHJvdmlkZWQgRGF0YXZpZXdJbmxpbmVBcGkgYW5kIG9wdGlvbmFsIGFycmF5IG9mIFBhdGhPckFic3RyYWN0RmlsZS5cbiAqXG4gKiBAcGFyYW0gZHYgLSBUaGUgRGF0YXZpZXdJbmxpbmVBcGkgaW5zdGFuY2UuXG4gKiBAcGFyYW0gcGF0aE9yRmlsZXMgLSBBbiBvcHRpb25hbCBhcnJheSBvZiBQYXRoT3JBYnN0cmFjdEZpbGUuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGJhY2tsaW5rcyB0YWJsZSBoYXMgYmVlbiByZW5kZXJlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlckJhY2tsaW5rc1RhYmxlKGR2OiBEYXRhdmlld0lubGluZUFwaSwgcGF0aE9yRmlsZXM/OiBQYXRoT3JBYnN0cmFjdEZpbGVbXSk6IFByb21pc2U8dm9pZD4ge1xuICBwYXRoT3JGaWxlcyA/Pz0gW107XG4gIGNvbnN0IGZpbGVzOiBURmlsZVtdID0gcGF0aE9yRmlsZXMuZmxhdE1hcCgoYWJzdHJhY3RGaWxlT3JQYXRoKSA9PiB7XG4gICAgY29uc3QgYWJzdHJhY3RGaWxlID0gZ2V0QWJzdHJhY3RGaWxlT3JOdWxsKGR2LmFwcCwgYWJzdHJhY3RGaWxlT3JQYXRoKTtcbiAgICBpZiAoIWFic3RyYWN0RmlsZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGlmIChpc0ZpbGUoYWJzdHJhY3RGaWxlKSkge1xuICAgICAgcmV0dXJuIFthYnN0cmFjdEZpbGVdO1xuICAgIH1cblxuICAgIGlmICghaXNGb2xkZXIoYWJzdHJhY3RGaWxlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBhIGZvbGRlcicpO1xuICAgIH1cblxuICAgIHJldHVybiBnZXRNYXJrZG93bkZpbGVzKGR2LmFwcCwgYWJzdHJhY3RGaWxlLCB0cnVlKTtcbiAgfSk7XG5cbiAgY29uc3QgYmFja2xpbmtSb3dzOiBbTGluaywgc3RyaW5nW11dW10gPSBbXTtcblxuICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICBjb25zdCBsaW5rID0gZml4VGl0bGUoZHYsIGZpbGUucGF0aCk7XG4gICAgY29uc3QgYmFja2xpbmtzID0gYXdhaXQgZ2V0QmFja2xpbmtzRm9yRmlsZVNhZmUoZHYuYXBwLCBmaWxlKTtcbiAgICBjb25zdCBiYWNrbGlua0xpbmtzID0gYmFja2xpbmtzLmtleXMoKS5tYXAoKGJhY2tMaW5rUGF0aCkgPT4ge1xuICAgICAgY29uc3QgbWFya2Rvd25MaW5rID0gZ2VuZXJhdGVNYXJrZG93bkxpbmsoe1xuICAgICAgICBhcHA6IGR2LmFwcCxcbiAgICAgICAgc291cmNlUGF0aE9yRmlsZTogZHYuY3VycmVudCgpLmZpbGUucGF0aCxcbiAgICAgICAgdGFyZ2V0UGF0aE9yRmlsZTogZW5zdXJlTm9uTnVsbGFibGUoZHYuYXBwLm1ldGFkYXRhQ2FjaGUuZ2V0Rmlyc3RMaW5rcGF0aERlc3QoYmFja0xpbmtQYXRoLCBmaWxlLnBhdGgpLCAnTGluayBub3QgZm91bmQnKVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBgJHttYXJrZG93bkxpbmt9ICgke2JhY2tMaW5rUGF0aH0pYDtcbiAgICB9KTtcbiAgICBpZiAoYmFja2xpbmtMaW5rcy5sZW5ndGgpIHtcbiAgICAgIGJhY2tsaW5rUm93cy5wdXNoKFtsaW5rLCBiYWNrbGlua0xpbmtzXSk7XG4gICAgfVxuICB9XG5cbiAgYXdhaXQgcmVuZGVyUGFnaW5hdGVkVGFibGUoe1xuICAgIGR2LFxuICAgIGhlYWRlcnM6IFsnTm90ZScsICdCYWNrbGlua3MnXSxcbiAgICByb3dzOiBiYWNrbGlua1Jvd3NcbiAgfSk7XG59XG5cbi8qKlxuICogUmVuZGVycyBkZWxheWVkIGJhY2tsaW5rcy5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZW5kZXJpbmcgZGVsYXllZCBiYWNrbGlua3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJEZWxheWVkQmFja2xpbmtzKG9wdGlvbnM6IFJlbmRlckRlbGF5ZWRCYWNrbGlua3NPcHRpb25zKTogdm9pZCB7XG4gIGNvbnN0IHtcbiAgICBkdixcbiAgICBmaWxlcyxcbiAgICB0aXRsZSA9ICdCYWNrbGlua3MnXG4gIH0gPSBvcHRpb25zO1xuICByZW5kZXJDYWxsb3V0KHtcbiAgICBhc3luYyBjb250ZW50UHJvdmlkZXIoKSB7XG4gICAgICBhd2FpdCByZW5kZXJCYWNrbGlua3NUYWJsZShkdiwgZmlsZXMpO1xuICAgIH0sXG4gICAgZHYsXG4gICAgaGVhZGVyOiB0aXRsZVxuICB9KTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIGRlbGF5ZWQgYmFja2xpbmtzIGZvciBhIHNwZWNpZmljIGZvbGRlci5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciByZW5kZXJpbmcgZGVsYXllZCBiYWNrbGlua3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJEZWxheWVkQmFja2xpbmtzRm9yRm9sZGVyKG9wdGlvbnM6IFJlbmRlckRlbGF5ZWRCYWNrbGlua3NGb3JGb2xkZXJPcHRpb25zKTogdm9pZCB7XG4gIGNvbnN0IHtcbiAgICBkdixcbiAgICBmb2xkZXIsXG4gICAgdGl0bGUgPSAnRm9sZGVyIEJhY2tsaW5rcydcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGZvbGRlcjIgPSBmb2xkZXIgPz8gZHYuY3VycmVudCgpLmZpbGUuZm9sZGVyO1xuICByZW5kZXJEZWxheWVkQmFja2xpbmtzKHtcbiAgICBkdixcbiAgICBmaWxlczogZ2V0TWFya2Rvd25GaWxlcyhkdi5hcHAsIGZvbGRlcjIsIHRydWUpLFxuICAgIHRpdGxlXG4gIH0pO1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
206
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL0JhY2tsaW5rLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFByb3ZpZGVzIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB3b3JraW5nIHdpdGggYmFja2xpbmtzLlxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBEZWVwbHkgY291cGxlZCB0byBPYnNpZGlhbiBydW50aW1lOyByZXF1aXJlcyBydW5uaW5nIHZhdWx0IGZvciBtZWFuaW5nZnVsIHRlc3RpbmcuICovXG5cbmltcG9ydCB0eXBlIHsgVEZpbGUgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgRGF0YXZpZXdJbmxpbmVBcGksXG4gIExpbmtcbn0gZnJvbSAnLi9EYXRhdmlldy50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFBhdGhPckFic3RyYWN0RmlsZSxcbiAgUGF0aE9yRmlsZVxufSBmcm9tICcuL0ZpbGVTeXN0ZW0udHMnO1xuXG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJy4uL1R5cGVHdWFyZHMudHMnO1xuaW1wb3J0IHsgcmVuZGVyQ2FsbG91dCB9IGZyb20gJy4vQ2FsbG91dC50cyc7XG5pbXBvcnQgeyByZW5kZXJQYWdpbmF0ZWRUYWJsZSB9IGZyb20gJy4vRGF0YXZpZXcudHMnO1xuaW1wb3J0IHsgZml4VGl0bGUgfSBmcm9tICcuL0RhdGF2aWV3TGluay50cyc7XG5pbXBvcnQge1xuICBnZXRBYnN0cmFjdEZpbGVPck51bGwsXG4gIGdldE1hcmtkb3duRmlsZXMsXG4gIGlzRmlsZSxcbiAgaXNGb2xkZXJcbn0gZnJvbSAnLi9GaWxlU3lzdGVtLnRzJztcbmltcG9ydCB7IGdlbmVyYXRlTWFya2Rvd25MaW5rIH0gZnJvbSAnLi9MaW5rLnRzJztcbmltcG9ydCB7IGdldEJhY2tsaW5rc0ZvckZpbGVTYWZlIH0gZnJvbSAnLi9NZXRhZGF0YUNhY2hlLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgcmVuZGVyRGVsYXllZEJhY2tsaW5rc0ZvckZvbGRlcn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVyRGVsYXllZEJhY2tsaW5rc0ZvckZvbGRlclBhcmFtcyB7XG4gIC8qKlxuICAgKiBBIHtAbGluayBEYXRhdmlld0lubGluZUFwaX0gaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBkdjogRGF0YXZpZXdJbmxpbmVBcGk7XG5cbiAgLyoqXG4gICAqIEEgZm9sZGVyIHBhdGguIElmIG5vdCBwcm92aWRlZCwgdGhlIGN1cnJlbnQgZmlsZSdzIGZvbGRlciB3aWxsIGJlIHVzZWQuXG4gICAqL1xuICByZWFkb25seSBmb2xkZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgdGl0bGUgZm9yIHRoZSByZW5kZXJlZCBiYWNrbGlua3MuIERlZmF1bHRzIHRvIFwiRm9sZGVyIEJhY2tsaW5rc1wiLlxuICAgKi9cbiAgcmVhZG9ubHkgdGl0bGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHJlbmRlckRlbGF5ZWRCYWNrbGlua3N9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlckRlbGF5ZWRCYWNrbGlua3NQYXJhbXMge1xuICAvKipcbiAgICogQSB7QGxpbmsgRGF0YXZpZXdJbmxpbmVBcGl9IGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZHY6IERhdGF2aWV3SW5saW5lQXBpO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBQYXRoT3JGaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZXM6IFBhdGhPckZpbGVbXTtcblxuICAvKipcbiAgICogQSB0aXRsZSBmb3IgdGhlIHJlbmRlcmVkIGJhY2tsaW5rcy4gRGVmYXVsdHMgdG8gXCJCYWNrbGlua3NcIi5cbiAgICovXG4gIHJlYWRvbmx5IHRpdGxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYSBiYWNrbGlua3MgdGFibGUgdXNpbmcgdGhlIHByb3ZpZGVkIERhdGF2aWV3SW5saW5lQXBpIGFuZCBvcHRpb25hbCBhcnJheSBvZiBQYXRoT3JBYnN0cmFjdEZpbGUuXG4gKlxuICogQHBhcmFtIGR2IC0gVGhlIERhdGF2aWV3SW5saW5lQXBpIGluc3RhbmNlLlxuICogQHBhcmFtIHBhdGhPckZpbGVzIC0gQW4gb3B0aW9uYWwgYXJyYXkgb2YgUGF0aE9yQWJzdHJhY3RGaWxlLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBiYWNrbGlua3MgdGFibGUgaGFzIGJlZW4gcmVuZGVyZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXJCYWNrbGlua3NUYWJsZShkdjogRGF0YXZpZXdJbmxpbmVBcGksIHBhdGhPckZpbGVzPzogUGF0aE9yQWJzdHJhY3RGaWxlW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgcGF0aE9yRmlsZXMgPz89IFtdO1xuICBjb25zdCBmaWxlczogVEZpbGVbXSA9IHBhdGhPckZpbGVzLmZsYXRNYXAoKGFic3RyYWN0RmlsZU9yUGF0aCkgPT4ge1xuICAgIGNvbnN0IGFic3RyYWN0RmlsZSA9IGdldEFic3RyYWN0RmlsZU9yTnVsbChkdi5hcHAsIGFic3RyYWN0RmlsZU9yUGF0aCk7XG4gICAgaWYgKCFhYnN0cmFjdEZpbGUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBpZiAoaXNGaWxlKGFic3RyYWN0RmlsZSkpIHtcbiAgICAgIHJldHVybiBbYWJzdHJhY3RGaWxlXTtcbiAgICB9XG5cbiAgICBpZiAoIWlzRm9sZGVyKGFic3RyYWN0RmlsZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgYSBmb2xkZXInKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2V0TWFya2Rvd25GaWxlcyhkdi5hcHAsIGFic3RyYWN0RmlsZSwgdHJ1ZSk7XG4gIH0pO1xuXG4gIGNvbnN0IGJhY2tsaW5rUm93czogW0xpbmssIHN0cmluZ1tdXVtdID0gW107XG5cbiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgY29uc3QgbGluayA9IGZpeFRpdGxlKGR2LCBmaWxlLnBhdGgpO1xuICAgIGNvbnN0IGJhY2tsaW5rcyA9IGF3YWl0IGdldEJhY2tsaW5rc0ZvckZpbGVTYWZlKGR2LmFwcCwgZmlsZSk7XG4gICAgY29uc3QgYmFja2xpbmtMaW5rcyA9IGJhY2tsaW5rcy5rZXlzKCkubWFwKChiYWNrTGlua1BhdGgpID0+IHtcbiAgICAgIGNvbnN0IG1hcmtkb3duTGluayA9IGdlbmVyYXRlTWFya2Rvd25MaW5rKHtcbiAgICAgICAgYXBwOiBkdi5hcHAsXG4gICAgICAgIHNvdXJjZVBhdGhPckZpbGU6IGR2LmN1cnJlbnQoKS5maWxlLnBhdGgsXG4gICAgICAgIHRhcmdldFBhdGhPckZpbGU6IGVuc3VyZU5vbk51bGxhYmxlKGR2LmFwcC5tZXRhZGF0YUNhY2hlLmdldEZpcnN0TGlua3BhdGhEZXN0KGJhY2tMaW5rUGF0aCwgZmlsZS5wYXRoKSwgJ0xpbmsgbm90IGZvdW5kJylcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gYCR7bWFya2Rvd25MaW5rfSAoJHtiYWNrTGlua1BhdGh9KWA7XG4gICAgfSk7XG4gICAgaWYgKGJhY2tsaW5rTGlua3MubGVuZ3RoKSB7XG4gICAgICBiYWNrbGlua1Jvd3MucHVzaChbbGluaywgYmFja2xpbmtMaW5rc10pO1xuICAgIH1cbiAgfVxuXG4gIGF3YWl0IHJlbmRlclBhZ2luYXRlZFRhYmxlKHtcbiAgICBkdixcbiAgICBoZWFkZXJzOiBbJ05vdGUnLCAnQmFja2xpbmtzJ10sXG4gICAgcm93czogYmFja2xpbmtSb3dzXG4gIH0pO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgZGVsYXllZCBiYWNrbGlua3MuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciByZW5kZXJpbmcgZGVsYXllZCBiYWNrbGlua3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJEZWxheWVkQmFja2xpbmtzKHBhcmFtczogUmVuZGVyRGVsYXllZEJhY2tsaW5rc1BhcmFtcyk6IHZvaWQge1xuICBjb25zdCB7XG4gICAgZHYsXG4gICAgZmlsZXMsXG4gICAgdGl0bGUgPSAnQmFja2xpbmtzJ1xuICB9ID0gcGFyYW1zO1xuICByZW5kZXJDYWxsb3V0KHtcbiAgICBhc3luYyBjb250ZW50UHJvdmlkZXIoKSB7XG4gICAgICBhd2FpdCByZW5kZXJCYWNrbGlua3NUYWJsZShkdiwgZmlsZXMpO1xuICAgIH0sXG4gICAgZHYsXG4gICAgaGVhZGVyOiB0aXRsZVxuICB9KTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIGRlbGF5ZWQgYmFja2xpbmtzIGZvciBhIHNwZWNpZmljIGZvbGRlci5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHJlbmRlcmluZyBkZWxheWVkIGJhY2tsaW5rcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckRlbGF5ZWRCYWNrbGlua3NGb3JGb2xkZXIocGFyYW1zOiBSZW5kZXJEZWxheWVkQmFja2xpbmtzRm9yRm9sZGVyUGFyYW1zKTogdm9pZCB7XG4gIGNvbnN0IHtcbiAgICBkdixcbiAgICBmb2xkZXIsXG4gICAgdGl0bGUgPSAnRm9sZGVyIEJhY2tsaW5rcydcbiAgfSA9IHBhcmFtcztcbiAgY29uc3QgZm9sZGVyMiA9IGZvbGRlciA/PyBkdi5jdXJyZW50KCkuZmlsZS5mb2xkZXI7XG4gIHJlbmRlckRlbGF5ZWRCYWNrbGlua3Moe1xuICAgIGR2LFxuICAgIGZpbGVzOiBnZXRNYXJrZG93bkZpbGVzKGR2LmFwcCwgZm9sZGVyMiwgdHJ1ZSksXG4gICAgdGl0bGVcbiAgfSk7XG59XG5cbi8qIHY4IGlnbm9yZSBzdG9wICovXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -8,7 +8,7 @@ import type { PathOrAbstractFile, PathOrFile } from './FileSystem.cjs';
8
8
  /**
9
9
  * Options for {@link renderDelayedBacklinksForFolder}.
10
10
  */
11
- export interface RenderDelayedBacklinksForFolderOptions {
11
+ export interface RenderDelayedBacklinksForFolderParams {
12
12
  /**
13
13
  * A {@link DataviewInlineApi} instance.
14
14
  */
@@ -25,7 +25,7 @@ export interface RenderDelayedBacklinksForFolderOptions {
25
25
  /**
26
26
  * Options for {@link renderDelayedBacklinks}.
27
27
  */
28
- export interface RenderDelayedBacklinksOptions {
28
+ export interface RenderDelayedBacklinksParams {
29
29
  /**
30
30
  * A {@link DataviewInlineApi} instance.
31
31
  */
@@ -50,12 +50,12 @@ export declare function renderBacklinksTable(dv: DataviewInlineApi, pathOrFiles?
50
50
  /**
51
51
  * Renders delayed backlinks.
52
52
  *
53
- * @param options - The options for rendering delayed backlinks.
53
+ * @param params - The parameters for rendering delayed backlinks.
54
54
  */
55
- export declare function renderDelayedBacklinks(options: RenderDelayedBacklinksOptions): void;
55
+ export declare function renderDelayedBacklinks(params: RenderDelayedBacklinksParams): void;
56
56
  /**
57
57
  * Renders delayed backlinks for a specific folder.
58
58
  *
59
- * @param options - The options for rendering delayed backlinks.
59
+ * @param params - The parameters for rendering delayed backlinks.
60
60
  */
61
- export declare function renderDelayedBacklinksForFolder(options: RenderDelayedBacklinksForFolderOptions): void;
61
+ export declare function renderDelayedBacklinksForFolder(params: RenderDelayedBacklinksForFolderParams): void;