obsidian-dev-utils 100.1.0 → 100.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/integration-test-plugin/main.js +1 -0
- package/dist/lib/cjs/desktop-zip-extractor.cjs +1 -1
- package/dist/lib/cjs/generated-during-build.cjs +1 -1
- package/dist/lib/cjs/obsidian/desktop-demo-vault-opener.cjs +1 -1
- package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.cjs +2 -1
- package/dist/lib/cjs/obsidian/plugin/obsidian-plugin-repo-paths.d.cts +4 -0
- package/dist/lib/cjs/script-utils/linters/eslint-config.cjs +46 -9
- package/dist/lib/esm/desktop-zip-extractor.mjs +1 -1
- package/dist/lib/esm/generated-during-build.mjs +1 -1
- package/dist/lib/esm/obsidian/desktop-demo-vault-opener.mjs +1 -1
- package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.d.mts +4 -0
- package/dist/lib/esm/obsidian/plugin/obsidian-plugin-repo-paths.mjs +2 -1
- package/dist/lib/esm/script-utils/linters/eslint-config.mjs +46 -9
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
+
## 100.2.0
|
|
4
|
+
|
|
5
|
+
- docs(eslint-config): reword the comment coinage cspell rejects
|
|
6
|
+
- feat(eslint-config): exempt desktop-only modules and unit tests from the Node-builtins bans
|
|
7
|
+
- test(path-settings): record notices at the source instead of differencing a global count
|
|
8
|
+
- docs(agents): name the eslint-typecheck timeout as load, not a broken rule
|
|
9
|
+
|
|
3
10
|
## 100.1.0
|
|
4
11
|
|
|
5
12
|
- feat(note-priority): publish filterHighestPriorityNotePaths
|
|
@@ -34614,6 +34614,7 @@ var ObsidianPluginRepoPaths = /* @__PURE__ */ ((ObsidianPluginRepoPaths2) => {
|
|
|
34614
34614
|
ObsidianPluginRepoPaths2["AnyAndroidCaptureIntegrationTestTs"] = "*.android-capture.integration.test.ts";
|
|
34615
34615
|
ObsidianPluginRepoPaths2["AnyAndroidIntegrationTestTs"] = "*.android.integration.test.ts";
|
|
34616
34616
|
ObsidianPluginRepoPaths2["AnyCjs"] = "*.cjs";
|
|
34617
|
+
ObsidianPluginRepoPaths2["AnyDesktopTs"] = "desktop-*.ts";
|
|
34617
34618
|
ObsidianPluginRepoPaths2["AnyIntegrationTestTs"] = "*.integration.test.ts";
|
|
34618
34619
|
ObsidianPluginRepoPaths2["AnyJs"] = "*.js";
|
|
34619
34620
|
ObsidianPluginRepoPaths2["AnyMjs"] = "*.mjs";
|
|
@@ -273,4 +273,4 @@ function readEntryData(archive, entry) {
|
|
|
273
273
|
0 && (module.exports = {
|
|
274
274
|
extractZipArchive
|
|
275
275
|
});
|
|
276
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Rlc2t0b3AtemlwLWV4dHJhY3Rvci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEV4dHJhY3RzIGEgWklQIGFyY2hpdmUgdG8gZGlzayB1c2luZyBvbmx5IE5vZGUncyBgemxpYmAgXHUyMDE0IHdpdGggbm8gdGhpcmQtcGFydHkgdW56aXAgZGVwZW5kZW5jeS5cbiAqXG4gKiBJdCBleGlzdHMgZm9yIG9uZSBtZWFzdXJlZCByZWFzb24uIFRoZSBkZXBlbmRlbmN5IGl0IHJlcGxhY2VkIG9uIHRoaXMgcGF0aCwgYGFkbS16aXBgLCBidW5kbGVkXG4gKiByb3VnaGx5IDM0IEtCIG9mIG1pbmlmaWVkIEphdmFTY3JpcHQgaW50byBFVkVSWSBPYnNpZGlhbiBwbHVnaW4gYnVpbHQgd2l0aCB0aGlzIGxpYnJhcnk6IGEgcGx1Z2luXG4gKiBzaGlwcyBhIHNpbmdsZSBDSlMgYG1haW4uanNgLCBlc2J1aWxkIGhhcyBubyBjb2RlIHNwbGl0dGluZyB0byBwdXQgYSBkZXBlbmRlbmN5IGJlaGluZCwgYW5kIGFcbiAqIGBhd2FpdCBpbXBvcnQoKWAgb25seSBkZWZlcnMgZXZhbHVhdGlvbiBcdTIwMTQgdGhlIG1vZHVsZSBib2R5IGlzIGlubGluZWQgZWl0aGVyIHdheS4gYG5vZGU6emxpYmAgaXNcbiAqIGFscmVhZHkgYW4gZXNidWlsZCBleHRlcm5hbCwgc28gdGhlIHNhbWUgd29yayBub3cgY29zdHMgYSBwbHVnaW4gYnVuZGxlIG5vdGhpbmcgYXQgYWxsLiBBcmNoaXZlc1xuICogYXJlIHN0aWxsIFdSSVRURU4gd2l0aCBgYWRtLXppcGAgYXQgcmVsZWFzZSB0aW1lIChgc2NyaXB0LXV0aWxzL2RlbW8tdmF1bHQudHNgKSwgd2hpY2ggaXMgTm9kZS1zaWRlXG4gKiB0b29saW5nIGFuZCBuZXZlciByZWFjaGVzIGEgcGx1Z2luIGJ1bmRsZS5cbiAqXG4gKiBEZWxpYmVyYXRlbHkgbmFycm93OiBpdCByZWFkcyBleGFjdGx5IHdoYXQgdGhhdCB3cml0ZXIgcHJvZHVjZXMgXHUyMDE0IHN0b3JlZCBhbmQgZGVmbGF0ZWQgZW50cmllcyBpbiBhblxuICogdW5lbmNyeXB0ZWQgYXJjaGl2ZSBiZWxvdyB0aGUgNCBHQiAvIDY1NTM1LWVudHJ5IFpJUDY0IHRocmVzaG9sZCBcdTIwMTQgYW5kIHJhaXNlcyBhIG5hbWVkIGVycm9yIGZvclxuICogYW55dGhpbmcgZWxzZSByYXRoZXIgdGhhbiBndWVzc2luZyBhdCBpdC4gU2l6ZXMgYW5kIG9mZnNldHMgYXJlIHRha2VuIGZyb20gdGhlIGNlbnRyYWwgZGlyZWN0b3J5LFxuICogd2hpY2ggaXMgYXV0aG9yaXRhdGl2ZSBldmVuIGZvciBhcmNoaXZlcyB3cml0dGVuIHdpdGggZGF0YSBkZXNjcmlwdG9ycy5cbiAqXG4gKiBUaGUgYG5vZGU6YCBpbXBvcnRzIGJlbG93IGFyZSBzYWZlIHRvIG1lcmVseSBFVkFMVUFURSBvbiBtb2JpbGUgXHUyMDE0IGByZXF1aXJlYCBoYW5kcyBiYWNrIGB1bmRlZmluZWRgXG4gKiB0aGVyZSBhbmQgbm90aGluZyByZWFkcyBpdCBhdCBsb2FkIHRpbWUgXHUyMDE0IHNvIHRoaXMgbW9kdWxlIGNhbiBzaXQgaW4gdGhlIGdlbmVyYXRlZCBiYXJyZWxzIHdpdGhvdXRcbiAqIGJyZWFraW5nIHRoZSBsaWJyYXJ5J3MgbG9hZCBvbiBBbmRyb2lkLiBPbmx5IHRoZSBjYWxscyBhcmUgZGVza3RvcC1vbmx5LlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzIC0tIERlc2t0b3Atb25seSBleHRyYWN0aW9uOyB0aGUgb25seSBjYWxsZXIgaXMgZ2F0ZWQgYnkgYFBsYXRmb3JtLmlzRGVza3RvcEFwcGAsIHNvIHRoZXNlIE5vZGUgQVBJcyBhcmUgbmV2ZXIgcmVhY2hlZCBvbiBtb2JpbGUuICovXG5pbXBvcnQgdHlwZSB7IEJ1ZmZlciB9IGZyb20gJ25vZGU6YnVmZmVyJztcblxuaW1wb3J0IHsgaW5mbGF0ZVJhd1N5bmMgfSBmcm9tICdub2RlOnpsaWInO1xuLyogZXNsaW50LWVuYWJsZSBpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlcyAtLSBEZXNrdG9wLW9ubHkgZXh0cmFjdGlvbjsgdGhlIG9ubHkgY2FsbGVyIGlzIGdhdGVkIGJ5IGBQbGF0Zm9ybS5pc0Rlc2t0b3BBcHBgLCBzbyB0aGVzZSBOb2RlIEFQSXMgYXJlIG5ldmVyIHJlYWNoZWQgb24gbW9iaWxlLiAqL1xuXG5pbXBvcnQge1xuICBkaXJuYW1lLFxuICBqb2luXG59IGZyb20gJy4vcGF0aC50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGV4dHJhY3RaaXBBcmNoaXZlfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRyYWN0WmlwQXJjaGl2ZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgcmF3IFpJUCBhcmNoaXZlIGJ5dGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgYXJjaGl2ZTogQnVmZmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgZmlsZS1zeXN0ZW0gaW1wbGVtZW50YXRpb24gdGhlIGV4dHJhY3RlZCBlbnRyaWVzIGFyZSB3cml0dGVuIHdpdGguXG4gICAqXG4gICAqIEluamVjdGVkIHJhdGhlciB0aGFuIGltcG9ydGVkIHNvIHRoZSBjYWxsZXIgY2hvb3NlcyB3aGljaCBgZnNgIHdyaXRlcyB0aGUgZmlsZXMuIFRoZSBkZW1vLXZhdWx0XG4gICAqIG9wZW5lciBoYW5kcyBvdmVyIEVsZWN0cm9uJ3MgYG9yaWdpbmFsLWZzYCAoc2VlIHtAbGluayBaaXBFeHRyYWN0aW9uRmlsZVN5c3RlbX0pLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZVN5c3RlbTogWmlwRXh0cmFjdGlvbkZpbGVTeXN0ZW07XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3RvcnkgdG8gZXh0cmFjdCBpbnRvLiBDcmVhdGVkIGlmIGl0IGRvZXMgbm90IGV4aXN0LlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0RGlyZWN0b3J5OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHNsaWNlIG9mIGBub2RlOmZzYCBleHRyYWN0aW9uIG5lZWRzLlxuICpcbiAqIE9ubHkgdGhlIHR3byBXUklUSU5HIGNhbGxzIGFyZSByZXF1aXJlZCwgYW5kIHRoYXQgaXMgZGVsaWJlcmF0ZTogRWxlY3Ryb24ncyBhc2FyIGxheWVyIGludGVyY2VwdHNcbiAqIGBmc2AgUkVBRFMgKGFuZCBgZXhpc3RzU3luY2ApIG9uIGFueSBwYXRoIGNvbnRhaW5pbmcgYC5hc2FyYCwgd2hpY2ggYSBkZW1vIHZhdWx0IG1heSBsZWdpdGltYXRlbHlcbiAqIHNoaXAgYXMgYSBwbGFpbiBmaWxlLiBOZXZlciBwcm9iaW5nIHRoZSB0YXJnZXQgd2l0aCBhIHJlYWQga2VlcHMgdGhhdCBpbnRlcmNlcHRpb24gb3V0IG9mIHRoZVxuICogcGljdHVyZSBlbnRpcmVseSwgYW5kIGEgY2FsbGVyIHRoYXQgaGFuZHMgb3ZlciBFbGVjdHJvbidzIGBvcmlnaW5hbC1mc2AgaXMgc2FmZSBldmVuIGZyb20gdGhlXG4gKiB3cml0ZSBzaWRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFppcEV4dHJhY3Rpb25GaWxlU3lzdGVtIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBkaXJlY3RvcnksIGluY2x1ZGluZyBhbnkgbWlzc2luZyBwYXJlbnRzLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFRoZSBkaXJlY3RvcnkgdG8gY3JlYXRlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB7QGxpbmsgWmlwRXh0cmFjdGlvbk1rZGlyT3B0aW9uc30uXG4gICAqIEByZXR1cm5zIFRoZSBmaXJzdCBkaXJlY3RvcnkgY3JlYXRlZCwgaWYgYW55LlxuICAgKi9cbiAgbWtkaXJTeW5jKHBhdGg6IHN0cmluZywgb3B0aW9uczogWmlwRXh0cmFjdGlvbk1rZGlyT3B0aW9ucyk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV3JpdGVzIGEgZmlsZSwgb3ZlcndyaXRpbmcgaXQgaWYgaXQgZXhpc3RzLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFRoZSBmaWxlIHRvIHdyaXRlLlxuICAgKiBAcGFyYW0gZGF0YSAtIFRoZSBieXRlcyB0byB3cml0ZS5cbiAgICovXG4gIHdyaXRlRmlsZVN5bmMocGF0aDogc3RyaW5nLCBkYXRhOiBCdWZmZXIpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSBvcHRpb25zIHtAbGluayBaaXBFeHRyYWN0aW9uRmlsZVN5c3RlbS5ta2RpclN5bmN9IGlzIGFsd2F5cyBjYWxsZWQgd2l0aC5cbiAqXG4gKiBFeHRyYWN0aW9uIG5ldmVyIHByb2JlcyBmb3IgYW4gZXhpc3RpbmcgZGlyZWN0b3J5LCBzbyBldmVyeSBjYWxsIGhhcyB0byBjcmVhdGUgdGhlIG1pc3NpbmcgcGFyZW50c1xuICogaXRzZWxmIGFuZCB0b2xlcmF0ZSBhIGRpcmVjdG9yeSB0aGF0IGlzIGFscmVhZHkgdGhlcmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgWmlwRXh0cmFjdGlvbk1rZGlyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBbHdheXMgYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVjdXJzaXZlOiB0cnVlO1xufVxuXG5pbnRlcmZhY2UgWmlwRW50cnkge1xuICByZWFkb25seSBjb21wcmVzc2VkU2l6ZTogbnVtYmVyO1xuICByZWFkb25seSBjb21wcmVzc2lvbk1ldGhvZDogbnVtYmVyO1xuICByZWFkb25seSBsb2NhbEhlYWRlck9mZnNldDogbnVtYmVyO1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG5cbmNvbnN0IEVORF9PRl9DRU5UUkFMX0RJUkVDVE9SWV9TSUdOQVRVUkUgPSAweDA2XzA1XzRCXzUwO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfSEVBREVSX1NJR05BVFVSRSA9IDB4MDJfMDFfNEJfNTA7XG5jb25zdCBMT0NBTF9GSUxFX0hFQURFUl9TSUdOQVRVUkUgPSAweDA0XzAzXzRCXzUwO1xuXG5jb25zdCBFTkRfT0ZfQ0VOVFJBTF9ESVJFQ1RPUllfU0laRSA9IDIyO1xuY29uc3QgTUFYX0FSQ0hJVkVfQ09NTUVOVF9MRU5HVEggPSA2NV81MzU7XG5cbi8vIEEgY291bnQgb3Igb2Zmc2V0IHNhdHVyYXRlZCB0byBhbGwtb25lcyBtZWFucyB0aGUgcmVhbCB2YWx1ZSBsaXZlcyBpbiBhIFpJUDY0IHJlY29yZCB0aGlzIHJlYWRlclxuLy8gRG9lcyBub3QgaW1wbGVtZW50LCBzbyB0aGUgZmllbGQgbXVzdCBuZXZlciBiZSByZWFkIGF0IGZhY2UgdmFsdWUuXG5jb25zdCBTQVRVUkFURURfVUlOVF8xNiA9IDY1XzUzNTtcbmNvbnN0IFNBVFVSQVRFRF9VSU5UXzMyID0gNF8yOTRfOTY3XzI5NTtcblxuLy8gRmllbGQgb2Zmc2V0cyB3aXRoaW4gdGhlIGVuZC1vZi1jZW50cmFsLWRpcmVjdG9yeSByZWNvcmQuXG5jb25zdCBBUkNISVZFX0VOVFJZX0NPVU5UX09GRlNFVCA9IDEwO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfU1RBUlRfT0ZGU0VUID0gMTY7XG5cbi8vIEZpZWxkIG9mZnNldHMgd2l0aGluIGEgY2VudHJhbC1kaXJlY3RvcnkgaGVhZGVyLlxuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfRkxBR1NfT0ZGU0VUID0gODtcbmNvbnN0IENFTlRSQUxfRElSRUNUT1JZX0NPTVBSRVNTSU9OX01FVEhPRF9PRkZTRVQgPSAxMDtcbmNvbnN0IENFTlRSQUxfRElSRUNUT1JZX0NPTVBSRVNTRURfU0laRV9PRkZTRVQgPSAyMDtcbmNvbnN0IENFTlRSQUxfRElSRUNUT1JZX05BTUVfTEVOR1RIX09GRlNFVCA9IDI4O1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfRVhUUkFfTEVOR1RIX09GRlNFVCA9IDMwO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfQ09NTUVOVF9MRU5HVEhfT0ZGU0VUID0gMzI7XG5jb25zdCBDRU5UUkFMX0RJUkVDVE9SWV9MT0NBTF9IRUFERVJfT0ZGU0VUX09GRlNFVCA9IDQyO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfSEVBREVSX1NJWkUgPSA0NjtcblxuLy8gRmllbGQgb2Zmc2V0cyB3aXRoaW4gYSBsb2NhbCBmaWxlIGhlYWRlci5cbmNvbnN0IExPQ0FMX0hFQURFUl9OQU1FX0xFTkdUSF9PRkZTRVQgPSAyNjtcbmNvbnN0IExPQ0FMX0hFQURFUl9FWFRSQV9MRU5HVEhfT0ZGU0VUID0gMjg7XG5jb25zdCBMT0NBTF9IRUFERVJfU0laRSA9IDMwO1xuXG5jb25zdCBDT01QUkVTU0lPTl9NRVRIT0RfU1RPUkVEID0gMDtcbmNvbnN0IENPTVBSRVNTSU9OX01FVEhPRF9ERUZMQVRFRCA9IDg7XG5cbi8vIEJpdCAwIG9mIHRoZSBnZW5lcmFsLXB1cnBvc2UgZmxhZ3MgbWFya3MgYW4gZW5jcnlwdGVkIGVudHJ5LCBhbmQgaXQgaXMgdGhlIGxvd2VzdCBiaXQgXHUyMDE0IHNvIHRoZVxuLy8gUmVtYWluZGVyIHRlc3RzIGl0IHdpdGhvdXQgcmVhY2hpbmcgZm9yIGEgYml0d2lzZSBvcGVyYXRvci5cbmNvbnN0IEVOQ1JZUFRFRF9GTEFHX0RJVklTT1IgPSAyO1xuXG5jb25zdCBFTlRSWV9OQU1FX1NFUEFSQVRPUiA9ICcvJztcbmNvbnN0IFdJTkRPV1NfRFJJVkVfUFJFRklYX1JFR19FWFAgPSAvXltBLVphLXpdOi87XG5cbi8qKlxuICogRXh0cmFjdHMgZXZlcnkgZW50cnkgb2YgYSBaSVAgYXJjaGl2ZSBpbnRvIGEgZGlyZWN0b3J5LlxuICpcbiAqIERpcmVjdG9yeSBlbnRyaWVzIGJlY29tZSBkaXJlY3RvcmllczsgYSBmaWxlIGVudHJ5J3MgcGFyZW50cyBhcmUgY3JlYXRlZCB3aGV0aGVyIG9yIG5vdCB0aGUgYXJjaGl2ZVxuICogZGVjbGFyZWQgdGhlbS4gQW4gZW50cnkgd2hvc2UgbmFtZSB3b3VsZCBlc2NhcGUge0BsaW5rIEV4dHJhY3RaaXBBcmNoaXZlUGFyYW1zLnRhcmdldERpcmVjdG9yeX0gaXNcbiAqIHJlZnVzZWQgcmF0aGVyIHRoYW4gd3JpdHRlbiAodGhlIFwiemlwIHNsaXBcIiB0cmF2ZXJzYWwpLCBhcyBpcyBhbiBlbmNyeXB0ZWQsIFpJUDY0LCBvclxuICogdW5rbm93bi1jb21wcmVzc2lvbiBhcmNoaXZlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIEV4dHJhY3RaaXBBcmNoaXZlUGFyYW1zfS5cbiAqIEB0aHJvd3MgQW4ge0BsaW5rIEVycm9yfSBuYW1pbmcgdGhlIHJlYXNvbiB3aGVuIHRoZSBhcmNoaXZlIGNhbm5vdCBiZSByZWFkIGFzIHdyaXR0ZW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0WmlwQXJjaGl2ZShwYXJhbXM6IEV4dHJhY3RaaXBBcmNoaXZlUGFyYW1zKTogdm9pZCB7XG4gIGNvbnN0IHtcbiAgICBhcmNoaXZlLFxuICAgIGZpbGVTeXN0ZW0sXG4gICAgdGFyZ2V0RGlyZWN0b3J5XG4gIH0gPSBwYXJhbXM7XG5cbiAgZmlsZVN5c3RlbS5ta2RpclN5bmModGFyZ2V0RGlyZWN0b3J5LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICBmb3IgKGNvbnN0IGVudHJ5IG9mIHJlYWRDZW50cmFsRGlyZWN0b3J5KGFyY2hpdmUpKSB7XG4gICAgYXNzZXJ0U2FmZUVudHJ5TmFtZShlbnRyeS5uYW1lKTtcblxuICAgIGlmIChlbnRyeS5uYW1lLmVuZHNXaXRoKEVOVFJZX05BTUVfU0VQQVJBVE9SKSkge1xuICAgICAgLy8gTmFtZWQgd2l0aG91dCBpdHMgdHJhaWxpbmcgc2VwYXJhdG9yLCBzbyB0aGUgY3JlYXRlZCBwYXRoIHJlYWRzIHRoZSBzYW1lIGFzIGV2ZXJ5IG90aGVyIG9uZS5cbiAgICAgIGZpbGVTeXN0ZW0ubWtkaXJTeW5jKGpvaW4odGFyZ2V0RGlyZWN0b3J5LCBlbnRyeS5uYW1lLnNsaWNlKDAsIC0xKSksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgZW50cnlQYXRoID0gam9pbih0YXJnZXREaXJlY3RvcnksIGVudHJ5Lm5hbWUpO1xuICAgIGZpbGVTeXN0ZW0ubWtkaXJTeW5jKGRpcm5hbWUoZW50cnlQYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgZmlsZVN5c3RlbS53cml0ZUZpbGVTeW5jKGVudHJ5UGF0aCwgcmVhZEVudHJ5RGF0YShhcmNoaXZlLCBlbnRyeSkpO1xuICB9XG59XG5cbi8qKlxuICogUmVmdXNlcyBhbiBlbnRyeSBuYW1lIHRoYXQgd291bGQgcGxhY2UgdGhlIGV4dHJhY3RlZCBmaWxlIG91dHNpZGUgdGhlIHRhcmdldCBkaXJlY3RvcnkuXG4gKlxuICogQW4gYXJjaGl2ZSBpcyB1bnRydXN0ZWQgaW5wdXQgZXZlbiB3aGVuIHdlIHB1Ymxpc2hlZCBpdCBvdXJzZWx2ZXMsIGFuZCBldmVyeSBvbmUgb2YgdGhlc2Ugc2hhcGVzXG4gKiBlc2NhcGVzIHRoZSB0YXJnZXQ6IGFuIGFic29sdXRlIFBPU0lYIHBhdGgsIGEgV2luZG93cyBkcml2ZS1xdWFsaWZpZWQgcGF0aCwgYSBiYWNrc2xhc2ggKHdoaWNoIHRoZVxuICogWklQIHNwZWNpZmljYXRpb24gZm9yYmlkcyBhcyBhIHNlcGFyYXRvciwgc28gaXRzIG9ubHkgdXNlIGhlcmUgaXMgdG8gc211Z2dsZSBvbmUgcGFzdCBhXG4gKiBmb3J3YXJkLXNsYXNoIGNoZWNrKSwgYW5kIGEgYC4uYCBzZWdtZW50LlxuICpcbiAqIEBwYXJhbSBlbnRyeU5hbWUgLSBUaGUgZW50cnkgbmFtZSBhcyByZWNvcmRlZCBpbiB0aGUgYXJjaGl2ZS5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0U2FmZUVudHJ5TmFtZShlbnRyeU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoZW50cnlOYW1lLnN0YXJ0c1dpdGgoRU5UUllfTkFNRV9TRVBBUkFUT1IpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSZWZ1c2luZyB0byBleHRyYWN0IHRoZSBhYnNvbHV0ZSBhcmNoaXZlIGVudHJ5ICcke2VudHJ5TmFtZX0nLmApO1xuICB9XG5cbiAgaWYgKFdJTkRPV1NfRFJJVkVfUFJFRklYX1JFR19FWFAudGVzdChlbnRyeU5hbWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSZWZ1c2luZyB0byBleHRyYWN0IHRoZSBkcml2ZS1xdWFsaWZpZWQgYXJjaGl2ZSBlbnRyeSAnJHtlbnRyeU5hbWV9Jy5gKTtcbiAgfVxuXG4gIGlmIChlbnRyeU5hbWUuaW5jbHVkZXMoJ1xcXFwnKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUmVmdXNpbmcgdG8gZXh0cmFjdCB0aGUgYXJjaGl2ZSBlbnRyeSAnJHtlbnRyeU5hbWV9Jywgd2hpY2ggdXNlcyBhIGJhY2tzbGFzaCBzZXBhcmF0b3IuYCk7XG4gIH1cblxuICBpZiAoZW50cnlOYW1lLnNwbGl0KEVOVFJZX05BTUVfU0VQQVJBVE9SKS5pbmNsdWRlcygnLi4nKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUmVmdXNpbmcgdG8gZXh0cmFjdCB0aGUgYXJjaGl2ZSBlbnRyeSAnJHtlbnRyeU5hbWV9Jywgd2hpY2ggcG9pbnRzIG91dHNpZGUgdGhlIHRhcmdldCBkaXJlY3RvcnkuYCk7XG4gIH1cbn1cblxuLyoqXG4gKiBMb2NhdGVzIHRoZSBlbmQtb2YtY2VudHJhbC1kaXJlY3RvcnkgcmVjb3JkIGFuZCByZXR1cm5zIGl0cyBvZmZzZXQuXG4gKlxuICogVGhlIHJlY29yZCBzaXRzIGF0IHRoZSB2ZXJ5IGVuZCBvZiB0aGUgYXJjaGl2ZSB1bmxlc3MgYSB0cmFpbGluZyBjb21tZW50IGZvbGxvd3MgaXQsIHNvIGl0IGlzIGZvdW5kXG4gKiBieSBzY2FubmluZyBiYWNrd2FyZHMgb3ZlciB0aGUgY29tbWVudCdzIG1heGltdW0gbGVuZ3RoIHJhdGhlciB0aGFuIGFzc3VtZWQgdG8gYmUgYXQgYSBmaXhlZCBwbGFjZS5cbiAqXG4gKiBAcGFyYW0gYXJjaGl2ZSAtIFRoZSByYXcgWklQIGFyY2hpdmUgYnl0ZXMuXG4gKiBAcmV0dXJucyBUaGUgcmVjb3JkJ3Mgb2Zmc2V0LlxuICovXG5mdW5jdGlvbiBmaW5kRW5kT2ZDZW50cmFsRGlyZWN0b3J5T2Zmc2V0KGFyY2hpdmU6IEJ1ZmZlcik6IG51bWJlciB7XG4gIGNvbnN0IGxhc3RQb3NzaWJsZU9mZnNldCA9IGFyY2hpdmUubGVuZ3RoIC0gRU5EX09GX0NFTlRSQUxfRElSRUNUT1JZX1NJWkU7XG4gIGNvbnN0IGZpcnN0UG9zc2libGVPZmZzZXQgPSBNYXRoLm1heCgwLCBsYXN0UG9zc2libGVPZmZzZXQgLSBNQVhfQVJDSElWRV9DT01NRU5UX0xFTkdUSCk7XG5cbiAgZm9yIChsZXQgb2Zmc2V0ID0gbGFzdFBvc3NpYmxlT2Zmc2V0OyBvZmZzZXQgPj0gZmlyc3RQb3NzaWJsZU9mZnNldDsgb2Zmc2V0LS0pIHtcbiAgICBpZiAoYXJjaGl2ZS5yZWFkVUludDMyTEUob2Zmc2V0KSA9PT0gRU5EX09GX0NFTlRSQUxfRElSRUNUT1JZX1NJR05BVFVSRSkge1xuICAgICAgcmV0dXJuIG9mZnNldDtcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhcmNoaXZlIGlzIG5vdCBhIFpJUCBmaWxlOiBpdHMgZW5kLW9mLWNlbnRyYWwtZGlyZWN0b3J5IHJlY29yZCBpcyBtaXNzaW5nLicpO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBjZW50cmFsIGRpcmVjdG9yeSwgd2hpY2ggaXMgdGhlIGFyY2hpdmUncyBhdXRob3JpdGF0aXZlIGluZGV4IG9mIGl0cyBlbnRyaWVzLlxuICpcbiAqIEBwYXJhbSBhcmNoaXZlIC0gVGhlIHJhdyBaSVAgYXJjaGl2ZSBieXRlcy5cbiAqIEByZXR1cm5zIE9uZSB7QGxpbmsgWmlwRW50cnl9IHBlciBlbnRyeSwgaW4gdGhlIG9yZGVyIHRoZSBhcmNoaXZlIGxpc3RzIHRoZW0uXG4gKi9cbmZ1bmN0aW9uIHJlYWRDZW50cmFsRGlyZWN0b3J5KGFyY2hpdmU6IEJ1ZmZlcik6IFppcEVudHJ5W10ge1xuICBjb25zdCBlbmRPZkNlbnRyYWxEaXJlY3RvcnlPZmZzZXQgPSBmaW5kRW5kT2ZDZW50cmFsRGlyZWN0b3J5T2Zmc2V0KGFyY2hpdmUpO1xuICBjb25zdCBlbnRyeUNvdW50ID0gYXJjaGl2ZS5yZWFkVUludDE2TEUoZW5kT2ZDZW50cmFsRGlyZWN0b3J5T2Zmc2V0ICsgQVJDSElWRV9FTlRSWV9DT1VOVF9PRkZTRVQpO1xuICBsZXQgZW50cnlPZmZzZXQgPSBhcmNoaXZlLnJlYWRVSW50MzJMRShlbmRPZkNlbnRyYWxEaXJlY3RvcnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9TVEFSVF9PRkZTRVQpO1xuXG4gIGlmIChlbnRyeUNvdW50ID09PSBTQVRVUkFURURfVUlOVF8xNiB8fCBlbnRyeU9mZnNldCA9PT0gU0FUVVJBVEVEX1VJTlRfMzIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1pJUDY0IGFyY2hpdmVzIGFyZSBub3Qgc3VwcG9ydGVkLicpO1xuICB9XG5cbiAgY29uc3QgZW50cmllczogWmlwRW50cnlbXSA9IFtdO1xuICBmb3IgKGxldCBlbnRyeUluZGV4ID0gMDsgZW50cnlJbmRleCA8IGVudHJ5Q291bnQ7IGVudHJ5SW5kZXgrKykge1xuICAgIGlmIChhcmNoaXZlLnJlYWRVSW50MzJMRShlbnRyeU9mZnNldCkgIT09IENFTlRSQUxfRElSRUNUT1JZX0hFQURFUl9TSUdOQVRVUkUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGFyY2hpdmUncyBjZW50cmFsIGRpcmVjdG9yeSBpcyBjb3JydXB0IGF0IGVudHJ5ICR7U3RyaW5nKGVudHJ5SW5kZXgpfS5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBmbGFncyA9IGFyY2hpdmUucmVhZFVJbnQxNkxFKGVudHJ5T2Zmc2V0ICsgQ0VOVFJBTF9ESVJFQ1RPUllfRkxBR1NfT0ZGU0VUKTtcbiAgICBpZiAoZmxhZ3MgJSBFTkNSWVBURURfRkxBR19ESVZJU09SID09PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VuY3J5cHRlZCBaSVAgYXJjaGl2ZXMgYXJlIG5vdCBzdXBwb3J0ZWQuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcHJlc3NlZFNpemUgPSBhcmNoaXZlLnJlYWRVSW50MzJMRShlbnRyeU9mZnNldCArIENFTlRSQUxfRElSRUNUT1JZX0NPTVBSRVNTRURfU0laRV9PRkZTRVQpO1xuICAgIGNvbnN0IGxvY2FsSGVhZGVyT2Zmc2V0ID0gYXJjaGl2ZS5yZWFkVUludDMyTEUoZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9MT0NBTF9IRUFERVJfT0ZGU0VUX09GRlNFVCk7XG4gICAgaWYgKGNvbXByZXNzZWRTaXplID09PSBTQVRVUkFURURfVUlOVF8zMiB8fCBsb2NhbEhlYWRlck9mZnNldCA9PT0gU0FUVVJBVEVEX1VJTlRfMzIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWklQNjQgYXJjaGl2ZXMgYXJlIG5vdCBzdXBwb3J0ZWQuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbmFtZUxlbmd0aCA9IGFyY2hpdmUucmVhZFVJbnQxNkxFKGVudHJ5T2Zmc2V0ICsgQ0VOVFJBTF9ESVJFQ1RPUllfTkFNRV9MRU5HVEhfT0ZGU0VUKTtcbiAgICBjb25zdCBuYW1lT2Zmc2V0ID0gZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9IRUFERVJfU0laRTtcbiAgICBlbnRyaWVzLnB1c2goe1xuICAgICAgY29tcHJlc3NlZFNpemUsXG4gICAgICBjb21wcmVzc2lvbk1ldGhvZDogYXJjaGl2ZS5yZWFkVUludDE2TEUoZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9DT01QUkVTU0lPTl9NRVRIT0RfT0ZGU0VUKSxcbiAgICAgIGxvY2FsSGVhZGVyT2Zmc2V0LFxuICAgICAgbmFtZTogYXJjaGl2ZS50b1N0cmluZygndXRmLTgnLCBuYW1lT2Zmc2V0LCBuYW1lT2Zmc2V0ICsgbmFtZUxlbmd0aClcbiAgICB9KTtcblxuICAgIGVudHJ5T2Zmc2V0ID0gbmFtZU9mZnNldFxuICAgICAgKyBuYW1lTGVuZ3RoXG4gICAgICArIGFyY2hpdmUucmVhZFVJbnQxNkxFKGVudHJ5T2Zmc2V0ICsgQ0VOVFJBTF9ESVJFQ1RPUllfRVhUUkFfTEVOR1RIX09GRlNFVClcbiAgICAgICsgYXJjaGl2ZS5yZWFkVUludDE2TEUoZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9DT01NRU5UX0xFTkdUSF9PRkZTRVQpO1xuICB9XG5cbiAgcmV0dXJuIGVudHJpZXM7XG59XG5cbi8qKlxuICogUmVhZHMgYW5kIGRlY29tcHJlc3NlcyBvbmUgZW50cnkncyBieXRlcy5cbiAqXG4gKiBUaGUgZGF0YSdzIHN0YXJ0IGlzIGNvbXB1dGVkIGZyb20gdGhlIExPQ0FMIGhlYWRlciByYXRoZXIgdGhhbiB0aGUgY2VudHJhbCBvbmU6IHRoZSB0d28gY2FycnlcbiAqIGluZGVwZW5kZW50IG5hbWUgYW5kIGV4dHJhLWZpZWxkIGxlbmd0aHMsIGFuZCBvbmx5IHRoZSBsb2NhbCBwYWlyIGRlc2NyaWJlcyB3aGVyZSB0aGUgYnl0ZXNcbiAqIGFjdHVhbGx5IGJlZ2luLlxuICpcbiAqIEBwYXJhbSBhcmNoaXZlIC0gVGhlIHJhdyBaSVAgYXJjaGl2ZSBieXRlcy5cbiAqIEBwYXJhbSBlbnRyeSAtIFRoZSBlbnRyeSwgYXMgcmVhZCBmcm9tIHRoZSBjZW50cmFsIGRpcmVjdG9yeS5cbiAqIEByZXR1cm5zIFRoZSBlbnRyeSdzIHVuY29tcHJlc3NlZCBjb250ZW50LlxuICovXG5mdW5jdGlvbiByZWFkRW50cnlEYXRhKGFyY2hpdmU6IEJ1ZmZlciwgZW50cnk6IFppcEVudHJ5KTogQnVmZmVyIHtcbiAgaWYgKGFyY2hpdmUucmVhZFVJbnQzMkxFKGVudHJ5LmxvY2FsSGVhZGVyT2Zmc2V0KSAhPT0gTE9DQUxfRklMRV9IRUFERVJfU0lHTkFUVVJFKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgYXJjaGl2ZSBlbnRyeSAnJHtlbnRyeS5uYW1lfScgaGFzIGEgY29ycnVwdCBsb2NhbCBoZWFkZXIuYCk7XG4gIH1cblxuICBjb25zdCBkYXRhT2Zmc2V0ID0gZW50cnkubG9jYWxIZWFkZXJPZmZzZXRcbiAgICArIExPQ0FMX0hFQURFUl9TSVpFXG4gICAgKyBhcmNoaXZlLnJlYWRVSW50MTZMRShlbnRyeS5sb2NhbEhlYWRlck9mZnNldCArIExPQ0FMX0hFQURFUl9OQU1FX0xFTkdUSF9PRkZTRVQpXG4gICAgKyBhcmNoaXZlLnJlYWRVSW50MTZMRShlbnRyeS5sb2NhbEhlYWRlck9mZnNldCArIExPQ0FMX0hFQURFUl9FWFRSQV9MRU5HVEhfT0ZGU0VUKTtcbiAgY29uc3QgZGF0YUVuZCA9IGRhdGFPZmZzZXQgKyBlbnRyeS5jb21wcmVzc2VkU2l6ZTtcbiAgaWYgKGRhdGFFbmQgPiBhcmNoaXZlLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGFyY2hpdmUgaXMgdHJ1bmNhdGVkOiBlbnRyeSAnJHtlbnRyeS5uYW1lfScgcnVucyBwYXN0IGl0cyBlbmQuYCk7XG4gIH1cblxuICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IGFyY2hpdmUuc3ViYXJyYXkoZGF0YU9mZnNldCwgZGF0YUVuZCk7XG4gIHN3aXRjaCAoZW50cnkuY29tcHJlc3Npb25NZXRob2QpIHtcbiAgICBjYXNlIENPTVBSRVNTSU9OX01FVEhPRF9ERUZMQVRFRDoge1xuICAgICAgcmV0dXJuIGluZmxhdGVSYXdTeW5jKGNvbXByZXNzZWREYXRhKTtcbiAgICB9XG4gICAgY2FzZSBDT01QUkVTU0lPTl9NRVRIT0RfU1RPUkVEOiB7XG4gICAgICByZXR1cm4gY29tcHJlc3NlZERhdGE7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGFyY2hpdmUgZW50cnkgJyR7ZW50cnkubmFtZX0nIHVzZXMgdW5zdXBwb3J0ZWQgY29tcHJlc3Npb24gbWV0aG9kICR7U3RyaW5nKGVudHJ5LmNvbXByZXNzaW9uTWV0aG9kKX0uYCk7XG4gICAgfVxuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Rlc2t0b3AtemlwLWV4dHJhY3Rvci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEV4dHJhY3RzIGEgWklQIGFyY2hpdmUgdG8gZGlzayB1c2luZyBvbmx5IE5vZGUncyBgemxpYmAgXHUyMDE0IHdpdGggbm8gdGhpcmQtcGFydHkgdW56aXAgZGVwZW5kZW5jeS5cbiAqXG4gKiBJdCBleGlzdHMgZm9yIG9uZSBtZWFzdXJlZCByZWFzb24uIFRoZSBkZXBlbmRlbmN5IGl0IHJlcGxhY2VkIG9uIHRoaXMgcGF0aCwgYGFkbS16aXBgLCBidW5kbGVkXG4gKiByb3VnaGx5IDM0IEtCIG9mIG1pbmlmaWVkIEphdmFTY3JpcHQgaW50byBFVkVSWSBPYnNpZGlhbiBwbHVnaW4gYnVpbHQgd2l0aCB0aGlzIGxpYnJhcnk6IGEgcGx1Z2luXG4gKiBzaGlwcyBhIHNpbmdsZSBDSlMgYG1haW4uanNgLCBlc2J1aWxkIGhhcyBubyBjb2RlIHNwbGl0dGluZyB0byBwdXQgYSBkZXBlbmRlbmN5IGJlaGluZCwgYW5kIGFcbiAqIGBhd2FpdCBpbXBvcnQoKWAgb25seSBkZWZlcnMgZXZhbHVhdGlvbiBcdTIwMTQgdGhlIG1vZHVsZSBib2R5IGlzIGlubGluZWQgZWl0aGVyIHdheS4gYG5vZGU6emxpYmAgaXNcbiAqIGFscmVhZHkgYW4gZXNidWlsZCBleHRlcm5hbCwgc28gdGhlIHNhbWUgd29yayBub3cgY29zdHMgYSBwbHVnaW4gYnVuZGxlIG5vdGhpbmcgYXQgYWxsLiBBcmNoaXZlc1xuICogYXJlIHN0aWxsIFdSSVRURU4gd2l0aCBgYWRtLXppcGAgYXQgcmVsZWFzZSB0aW1lIChgc2NyaXB0LXV0aWxzL2RlbW8tdmF1bHQudHNgKSwgd2hpY2ggaXMgTm9kZS1zaWRlXG4gKiB0b29saW5nIGFuZCBuZXZlciByZWFjaGVzIGEgcGx1Z2luIGJ1bmRsZS5cbiAqXG4gKiBEZWxpYmVyYXRlbHkgbmFycm93OiBpdCByZWFkcyBleGFjdGx5IHdoYXQgdGhhdCB3cml0ZXIgcHJvZHVjZXMgXHUyMDE0IHN0b3JlZCBhbmQgZGVmbGF0ZWQgZW50cmllcyBpbiBhblxuICogdW5lbmNyeXB0ZWQgYXJjaGl2ZSBiZWxvdyB0aGUgNCBHQiAvIDY1NTM1LWVudHJ5IFpJUDY0IHRocmVzaG9sZCBcdTIwMTQgYW5kIHJhaXNlcyBhIG5hbWVkIGVycm9yIGZvclxuICogYW55dGhpbmcgZWxzZSByYXRoZXIgdGhhbiBndWVzc2luZyBhdCBpdC4gU2l6ZXMgYW5kIG9mZnNldHMgYXJlIHRha2VuIGZyb20gdGhlIGNlbnRyYWwgZGlyZWN0b3J5LFxuICogd2hpY2ggaXMgYXV0aG9yaXRhdGl2ZSBldmVuIGZvciBhcmNoaXZlcyB3cml0dGVuIHdpdGggZGF0YSBkZXNjcmlwdG9ycy5cbiAqXG4gKiBUaGUgYG5vZGU6YCBpbXBvcnRzIGJlbG93IGFyZSBzYWZlIHRvIG1lcmVseSBFVkFMVUFURSBvbiBtb2JpbGUgXHUyMDE0IGByZXF1aXJlYCBoYW5kcyBiYWNrIGB1bmRlZmluZWRgXG4gKiB0aGVyZSBhbmQgbm90aGluZyByZWFkcyBpdCBhdCBsb2FkIHRpbWUgXHUyMDE0IHNvIHRoaXMgbW9kdWxlIGNhbiBzaXQgaW4gdGhlIGdlbmVyYXRlZCBiYXJyZWxzIHdpdGhvdXRcbiAqIGJyZWFraW5nIHRoZSBsaWJyYXJ5J3MgbG9hZCBvbiBBbmRyb2lkLiBPbmx5IHRoZSBjYWxscyBhcmUgZGVza3RvcC1vbmx5LlxuICovXG5cbmltcG9ydCB0eXBlIHsgQnVmZmVyIH0gZnJvbSAnbm9kZTpidWZmZXInO1xuXG5pbXBvcnQgeyBpbmZsYXRlUmF3U3luYyB9IGZyb20gJ25vZGU6emxpYic7XG5cbmltcG9ydCB7XG4gIGRpcm5hbWUsXG4gIGpvaW5cbn0gZnJvbSAnLi9wYXRoLnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZXh0cmFjdFppcEFyY2hpdmV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dHJhY3RaaXBBcmNoaXZlUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSByYXcgWklQIGFyY2hpdmUgYnl0ZXMuXG4gICAqL1xuICByZWFkb25seSBhcmNoaXZlOiBCdWZmZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBmaWxlLXN5c3RlbSBpbXBsZW1lbnRhdGlvbiB0aGUgZXh0cmFjdGVkIGVudHJpZXMgYXJlIHdyaXR0ZW4gd2l0aC5cbiAgICpcbiAgICogSW5qZWN0ZWQgcmF0aGVyIHRoYW4gaW1wb3J0ZWQgc28gdGhlIGNhbGxlciBjaG9vc2VzIHdoaWNoIGBmc2Agd3JpdGVzIHRoZSBmaWxlcy4gVGhlIGRlbW8tdmF1bHRcbiAgICogb3BlbmVyIGhhbmRzIG92ZXIgRWxlY3Ryb24ncyBgb3JpZ2luYWwtZnNgIChzZWUge0BsaW5rIFppcEV4dHJhY3Rpb25GaWxlU3lzdGVtfSkuXG4gICAqL1xuICByZWFkb25seSBmaWxlU3lzdGVtOiBaaXBFeHRyYWN0aW9uRmlsZVN5c3RlbTtcblxuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB0byBleHRyYWN0IGludG8uIENyZWF0ZWQgaWYgaXQgZG9lcyBub3QgZXhpc3QuXG4gICAqL1xuICByZWFkb25seSB0YXJnZXREaXJlY3Rvcnk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgc2xpY2Ugb2YgYG5vZGU6ZnNgIGV4dHJhY3Rpb24gbmVlZHMuXG4gKlxuICogT25seSB0aGUgdHdvIFdSSVRJTkcgY2FsbHMgYXJlIHJlcXVpcmVkLCBhbmQgdGhhdCBpcyBkZWxpYmVyYXRlOiBFbGVjdHJvbidzIGFzYXIgbGF5ZXIgaW50ZXJjZXB0c1xuICogYGZzYCBSRUFEUyAoYW5kIGBleGlzdHNTeW5jYCkgb24gYW55IHBhdGggY29udGFpbmluZyBgLmFzYXJgLCB3aGljaCBhIGRlbW8gdmF1bHQgbWF5IGxlZ2l0aW1hdGVseVxuICogc2hpcCBhcyBhIHBsYWluIGZpbGUuIE5ldmVyIHByb2JpbmcgdGhlIHRhcmdldCB3aXRoIGEgcmVhZCBrZWVwcyB0aGF0IGludGVyY2VwdGlvbiBvdXQgb2YgdGhlXG4gKiBwaWN0dXJlIGVudGlyZWx5LCBhbmQgYSBjYWxsZXIgdGhhdCBoYW5kcyBvdmVyIEVsZWN0cm9uJ3MgYG9yaWdpbmFsLWZzYCBpcyBzYWZlIGV2ZW4gZnJvbSB0aGVcbiAqIHdyaXRlIHNpZGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgWmlwRXh0cmFjdGlvbkZpbGVTeXN0ZW0ge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIGRpcmVjdG9yeSwgaW5jbHVkaW5nIGFueSBtaXNzaW5nIHBhcmVudHMuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gVGhlIGRpcmVjdG9yeSB0byBjcmVhdGUuXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBaaXBFeHRyYWN0aW9uTWtkaXJPcHRpb25zfS5cbiAgICogQHJldHVybnMgVGhlIGZpcnN0IGRpcmVjdG9yeSBjcmVhdGVkLCBpZiBhbnkuXG4gICAqL1xuICBta2RpclN5bmMocGF0aDogc3RyaW5nLCBvcHRpb25zOiBaaXBFeHRyYWN0aW9uTWtkaXJPcHRpb25zKTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXcml0ZXMgYSBmaWxlLCBvdmVyd3JpdGluZyBpdCBpZiBpdCBleGlzdHMuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gVGhlIGZpbGUgdG8gd3JpdGUuXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIGJ5dGVzIHRvIHdyaXRlLlxuICAgKi9cbiAgd3JpdGVGaWxlU3luYyhwYXRoOiBzdHJpbmcsIGRhdGE6IEJ1ZmZlcik6IHZvaWQ7XG59XG5cbi8qKlxuICogVGhlIG9wdGlvbnMge0BsaW5rIFppcEV4dHJhY3Rpb25GaWxlU3lzdGVtLm1rZGlyU3luY30gaXMgYWx3YXlzIGNhbGxlZCB3aXRoLlxuICpcbiAqIEV4dHJhY3Rpb24gbmV2ZXIgcHJvYmVzIGZvciBhbiBleGlzdGluZyBkaXJlY3RvcnksIHNvIGV2ZXJ5IGNhbGwgaGFzIHRvIGNyZWF0ZSB0aGUgbWlzc2luZyBwYXJlbnRzXG4gKiBpdHNlbGYgYW5kIHRvbGVyYXRlIGEgZGlyZWN0b3J5IHRoYXQgaXMgYWxyZWFkeSB0aGVyZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBaaXBFeHRyYWN0aW9uTWtkaXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFsd2F5cyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSByZWN1cnNpdmU6IHRydWU7XG59XG5cbmludGVyZmFjZSBaaXBFbnRyeSB7XG4gIHJlYWRvbmx5IGNvbXByZXNzZWRTaXplOiBudW1iZXI7XG4gIHJlYWRvbmx5IGNvbXByZXNzaW9uTWV0aG9kOiBudW1iZXI7XG4gIHJlYWRvbmx5IGxvY2FsSGVhZGVyT2Zmc2V0OiBudW1iZXI7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbn1cblxuY29uc3QgRU5EX09GX0NFTlRSQUxfRElSRUNUT1JZX1NJR05BVFVSRSA9IDB4MDZfMDVfNEJfNTA7XG5jb25zdCBDRU5UUkFMX0RJUkVDVE9SWV9IRUFERVJfU0lHTkFUVVJFID0gMHgwMl8wMV80Ql81MDtcbmNvbnN0IExPQ0FMX0ZJTEVfSEVBREVSX1NJR05BVFVSRSA9IDB4MDRfMDNfNEJfNTA7XG5cbmNvbnN0IEVORF9PRl9DRU5UUkFMX0RJUkVDVE9SWV9TSVpFID0gMjI7XG5jb25zdCBNQVhfQVJDSElWRV9DT01NRU5UX0xFTkdUSCA9IDY1XzUzNTtcblxuLy8gQSBjb3VudCBvciBvZmZzZXQgc2F0dXJhdGVkIHRvIGFsbC1vbmVzIG1lYW5zIHRoZSByZWFsIHZhbHVlIGxpdmVzIGluIGEgWklQNjQgcmVjb3JkIHRoaXMgcmVhZGVyXG4vLyBEb2VzIG5vdCBpbXBsZW1lbnQsIHNvIHRoZSBmaWVsZCBtdXN0IG5ldmVyIGJlIHJlYWQgYXQgZmFjZSB2YWx1ZS5cbmNvbnN0IFNBVFVSQVRFRF9VSU5UXzE2ID0gNjVfNTM1O1xuY29uc3QgU0FUVVJBVEVEX1VJTlRfMzIgPSA0XzI5NF85NjdfMjk1O1xuXG4vLyBGaWVsZCBvZmZzZXRzIHdpdGhpbiB0aGUgZW5kLW9mLWNlbnRyYWwtZGlyZWN0b3J5IHJlY29yZC5cbmNvbnN0IEFSQ0hJVkVfRU5UUllfQ09VTlRfT0ZGU0VUID0gMTA7XG5jb25zdCBDRU5UUkFMX0RJUkVDVE9SWV9TVEFSVF9PRkZTRVQgPSAxNjtcblxuLy8gRmllbGQgb2Zmc2V0cyB3aXRoaW4gYSBjZW50cmFsLWRpcmVjdG9yeSBoZWFkZXIuXG5jb25zdCBDRU5UUkFMX0RJUkVDVE9SWV9GTEFHU19PRkZTRVQgPSA4O1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfQ09NUFJFU1NJT05fTUVUSE9EX09GRlNFVCA9IDEwO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfQ09NUFJFU1NFRF9TSVpFX09GRlNFVCA9IDIwO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfTkFNRV9MRU5HVEhfT0ZGU0VUID0gMjg7XG5jb25zdCBDRU5UUkFMX0RJUkVDVE9SWV9FWFRSQV9MRU5HVEhfT0ZGU0VUID0gMzA7XG5jb25zdCBDRU5UUkFMX0RJUkVDVE9SWV9DT01NRU5UX0xFTkdUSF9PRkZTRVQgPSAzMjtcbmNvbnN0IENFTlRSQUxfRElSRUNUT1JZX0xPQ0FMX0hFQURFUl9PRkZTRVRfT0ZGU0VUID0gNDI7XG5jb25zdCBDRU5UUkFMX0RJUkVDVE9SWV9IRUFERVJfU0laRSA9IDQ2O1xuXG4vLyBGaWVsZCBvZmZzZXRzIHdpdGhpbiBhIGxvY2FsIGZpbGUgaGVhZGVyLlxuY29uc3QgTE9DQUxfSEVBREVSX05BTUVfTEVOR1RIX09GRlNFVCA9IDI2O1xuY29uc3QgTE9DQUxfSEVBREVSX0VYVFJBX0xFTkdUSF9PRkZTRVQgPSAyODtcbmNvbnN0IExPQ0FMX0hFQURFUl9TSVpFID0gMzA7XG5cbmNvbnN0IENPTVBSRVNTSU9OX01FVEhPRF9TVE9SRUQgPSAwO1xuY29uc3QgQ09NUFJFU1NJT05fTUVUSE9EX0RFRkxBVEVEID0gODtcblxuLy8gQml0IDAgb2YgdGhlIGdlbmVyYWwtcHVycG9zZSBmbGFncyBtYXJrcyBhbiBlbmNyeXB0ZWQgZW50cnksIGFuZCBpdCBpcyB0aGUgbG93ZXN0IGJpdCBcdTIwMTQgc28gdGhlXG4vLyBSZW1haW5kZXIgdGVzdHMgaXQgd2l0aG91dCByZWFjaGluZyBmb3IgYSBiaXR3aXNlIG9wZXJhdG9yLlxuY29uc3QgRU5DUllQVEVEX0ZMQUdfRElWSVNPUiA9IDI7XG5cbmNvbnN0IEVOVFJZX05BTUVfU0VQQVJBVE9SID0gJy8nO1xuY29uc3QgV0lORE9XU19EUklWRV9QUkVGSVhfUkVHX0VYUCA9IC9eW0EtWmEtel06LztcblxuLyoqXG4gKiBFeHRyYWN0cyBldmVyeSBlbnRyeSBvZiBhIFpJUCBhcmNoaXZlIGludG8gYSBkaXJlY3RvcnkuXG4gKlxuICogRGlyZWN0b3J5IGVudHJpZXMgYmVjb21lIGRpcmVjdG9yaWVzOyBhIGZpbGUgZW50cnkncyBwYXJlbnRzIGFyZSBjcmVhdGVkIHdoZXRoZXIgb3Igbm90IHRoZSBhcmNoaXZlXG4gKiBkZWNsYXJlZCB0aGVtLiBBbiBlbnRyeSB3aG9zZSBuYW1lIHdvdWxkIGVzY2FwZSB7QGxpbmsgRXh0cmFjdFppcEFyY2hpdmVQYXJhbXMudGFyZ2V0RGlyZWN0b3J5fSBpc1xuICogcmVmdXNlZCByYXRoZXIgdGhhbiB3cml0dGVuICh0aGUgXCJ6aXAgc2xpcFwiIHRyYXZlcnNhbCksIGFzIGlzIGFuIGVuY3J5cHRlZCwgWklQNjQsIG9yXG4gKiB1bmtub3duLWNvbXByZXNzaW9uIGFyY2hpdmUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgRXh0cmFjdFppcEFyY2hpdmVQYXJhbXN9LlxuICogQHRocm93cyBBbiB7QGxpbmsgRXJyb3J9IG5hbWluZyB0aGUgcmVhc29uIHdoZW4gdGhlIGFyY2hpdmUgY2Fubm90IGJlIHJlYWQgYXMgd3JpdHRlbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RaaXBBcmNoaXZlKHBhcmFtczogRXh0cmFjdFppcEFyY2hpdmVQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgIGFyY2hpdmUsXG4gICAgZmlsZVN5c3RlbSxcbiAgICB0YXJnZXREaXJlY3RvcnlcbiAgfSA9IHBhcmFtcztcblxuICBmaWxlU3lzdGVtLm1rZGlyU3luYyh0YXJnZXREaXJlY3RvcnksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gIGZvciAoY29uc3QgZW50cnkgb2YgcmVhZENlbnRyYWxEaXJlY3RvcnkoYXJjaGl2ZSkpIHtcbiAgICBhc3NlcnRTYWZlRW50cnlOYW1lKGVudHJ5Lm5hbWUpO1xuXG4gICAgaWYgKGVudHJ5Lm5hbWUuZW5kc1dpdGgoRU5UUllfTkFNRV9TRVBBUkFUT1IpKSB7XG4gICAgICAvLyBOYW1lZCB3aXRob3V0IGl0cyB0cmFpbGluZyBzZXBhcmF0b3IsIHNvIHRoZSBjcmVhdGVkIHBhdGggcmVhZHMgdGhlIHNhbWUgYXMgZXZlcnkgb3RoZXIgb25lLlxuICAgICAgZmlsZVN5c3RlbS5ta2RpclN5bmMoam9pbih0YXJnZXREaXJlY3RvcnksIGVudHJ5Lm5hbWUuc2xpY2UoMCwgLTEpKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBlbnRyeVBhdGggPSBqb2luKHRhcmdldERpcmVjdG9yeSwgZW50cnkubmFtZSk7XG4gICAgZmlsZVN5c3RlbS5ta2RpclN5bmMoZGlybmFtZShlbnRyeVBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBmaWxlU3lzdGVtLndyaXRlRmlsZVN5bmMoZW50cnlQYXRoLCByZWFkRW50cnlEYXRhKGFyY2hpdmUsIGVudHJ5KSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZWZ1c2VzIGFuIGVudHJ5IG5hbWUgdGhhdCB3b3VsZCBwbGFjZSB0aGUgZXh0cmFjdGVkIGZpbGUgb3V0c2lkZSB0aGUgdGFyZ2V0IGRpcmVjdG9yeS5cbiAqXG4gKiBBbiBhcmNoaXZlIGlzIHVudHJ1c3RlZCBpbnB1dCBldmVuIHdoZW4gd2UgcHVibGlzaGVkIGl0IG91cnNlbHZlcywgYW5kIGV2ZXJ5IG9uZSBvZiB0aGVzZSBzaGFwZXNcbiAqIGVzY2FwZXMgdGhlIHRhcmdldDogYW4gYWJzb2x1dGUgUE9TSVggcGF0aCwgYSBXaW5kb3dzIGRyaXZlLXF1YWxpZmllZCBwYXRoLCBhIGJhY2tzbGFzaCAod2hpY2ggdGhlXG4gKiBaSVAgc3BlY2lmaWNhdGlvbiBmb3JiaWRzIGFzIGEgc2VwYXJhdG9yLCBzbyBpdHMgb25seSB1c2UgaGVyZSBpcyB0byBzbXVnZ2xlIG9uZSBwYXN0IGFcbiAqIGZvcndhcmQtc2xhc2ggY2hlY2spLCBhbmQgYSBgLi5gIHNlZ21lbnQuXG4gKlxuICogQHBhcmFtIGVudHJ5TmFtZSAtIFRoZSBlbnRyeSBuYW1lIGFzIHJlY29yZGVkIGluIHRoZSBhcmNoaXZlLlxuICovXG5mdW5jdGlvbiBhc3NlcnRTYWZlRW50cnlOYW1lKGVudHJ5TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChlbnRyeU5hbWUuc3RhcnRzV2l0aChFTlRSWV9OQU1FX1NFUEFSQVRPUikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFJlZnVzaW5nIHRvIGV4dHJhY3QgdGhlIGFic29sdXRlIGFyY2hpdmUgZW50cnkgJyR7ZW50cnlOYW1lfScuYCk7XG4gIH1cblxuICBpZiAoV0lORE9XU19EUklWRV9QUkVGSVhfUkVHX0VYUC50ZXN0KGVudHJ5TmFtZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFJlZnVzaW5nIHRvIGV4dHJhY3QgdGhlIGRyaXZlLXF1YWxpZmllZCBhcmNoaXZlIGVudHJ5ICcke2VudHJ5TmFtZX0nLmApO1xuICB9XG5cbiAgaWYgKGVudHJ5TmFtZS5pbmNsdWRlcygnXFxcXCcpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSZWZ1c2luZyB0byBleHRyYWN0IHRoZSBhcmNoaXZlIGVudHJ5ICcke2VudHJ5TmFtZX0nLCB3aGljaCB1c2VzIGEgYmFja3NsYXNoIHNlcGFyYXRvci5gKTtcbiAgfVxuXG4gIGlmIChlbnRyeU5hbWUuc3BsaXQoRU5UUllfTkFNRV9TRVBBUkFUT1IpLmluY2x1ZGVzKCcuLicpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSZWZ1c2luZyB0byBleHRyYWN0IHRoZSBhcmNoaXZlIGVudHJ5ICcke2VudHJ5TmFtZX0nLCB3aGljaCBwb2ludHMgb3V0c2lkZSB0aGUgdGFyZ2V0IGRpcmVjdG9yeS5gKTtcbiAgfVxufVxuXG4vKipcbiAqIExvY2F0ZXMgdGhlIGVuZC1vZi1jZW50cmFsLWRpcmVjdG9yeSByZWNvcmQgYW5kIHJldHVybnMgaXRzIG9mZnNldC5cbiAqXG4gKiBUaGUgcmVjb3JkIHNpdHMgYXQgdGhlIHZlcnkgZW5kIG9mIHRoZSBhcmNoaXZlIHVubGVzcyBhIHRyYWlsaW5nIGNvbW1lbnQgZm9sbG93cyBpdCwgc28gaXQgaXMgZm91bmRcbiAqIGJ5IHNjYW5uaW5nIGJhY2t3YXJkcyBvdmVyIHRoZSBjb21tZW50J3MgbWF4aW11bSBsZW5ndGggcmF0aGVyIHRoYW4gYXNzdW1lZCB0byBiZSBhdCBhIGZpeGVkIHBsYWNlLlxuICpcbiAqIEBwYXJhbSBhcmNoaXZlIC0gVGhlIHJhdyBaSVAgYXJjaGl2ZSBieXRlcy5cbiAqIEByZXR1cm5zIFRoZSByZWNvcmQncyBvZmZzZXQuXG4gKi9cbmZ1bmN0aW9uIGZpbmRFbmRPZkNlbnRyYWxEaXJlY3RvcnlPZmZzZXQoYXJjaGl2ZTogQnVmZmVyKTogbnVtYmVyIHtcbiAgY29uc3QgbGFzdFBvc3NpYmxlT2Zmc2V0ID0gYXJjaGl2ZS5sZW5ndGggLSBFTkRfT0ZfQ0VOVFJBTF9ESVJFQ1RPUllfU0laRTtcbiAgY29uc3QgZmlyc3RQb3NzaWJsZU9mZnNldCA9IE1hdGgubWF4KDAsIGxhc3RQb3NzaWJsZU9mZnNldCAtIE1BWF9BUkNISVZFX0NPTU1FTlRfTEVOR1RIKTtcblxuICBmb3IgKGxldCBvZmZzZXQgPSBsYXN0UG9zc2libGVPZmZzZXQ7IG9mZnNldCA+PSBmaXJzdFBvc3NpYmxlT2Zmc2V0OyBvZmZzZXQtLSkge1xuICAgIGlmIChhcmNoaXZlLnJlYWRVSW50MzJMRShvZmZzZXQpID09PSBFTkRfT0ZfQ0VOVFJBTF9ESVJFQ1RPUllfU0lHTkFUVVJFKSB7XG4gICAgICByZXR1cm4gb2Zmc2V0O1xuICAgIH1cbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcignVGhlIGFyY2hpdmUgaXMgbm90IGEgWklQIGZpbGU6IGl0cyBlbmQtb2YtY2VudHJhbC1kaXJlY3RvcnkgcmVjb3JkIGlzIG1pc3NpbmcuJyk7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIGNlbnRyYWwgZGlyZWN0b3J5LCB3aGljaCBpcyB0aGUgYXJjaGl2ZSdzIGF1dGhvcml0YXRpdmUgaW5kZXggb2YgaXRzIGVudHJpZXMuXG4gKlxuICogQHBhcmFtIGFyY2hpdmUgLSBUaGUgcmF3IFpJUCBhcmNoaXZlIGJ5dGVzLlxuICogQHJldHVybnMgT25lIHtAbGluayBaaXBFbnRyeX0gcGVyIGVudHJ5LCBpbiB0aGUgb3JkZXIgdGhlIGFyY2hpdmUgbGlzdHMgdGhlbS5cbiAqL1xuZnVuY3Rpb24gcmVhZENlbnRyYWxEaXJlY3RvcnkoYXJjaGl2ZTogQnVmZmVyKTogWmlwRW50cnlbXSB7XG4gIGNvbnN0IGVuZE9mQ2VudHJhbERpcmVjdG9yeU9mZnNldCA9IGZpbmRFbmRPZkNlbnRyYWxEaXJlY3RvcnlPZmZzZXQoYXJjaGl2ZSk7XG4gIGNvbnN0IGVudHJ5Q291bnQgPSBhcmNoaXZlLnJlYWRVSW50MTZMRShlbmRPZkNlbnRyYWxEaXJlY3RvcnlPZmZzZXQgKyBBUkNISVZFX0VOVFJZX0NPVU5UX09GRlNFVCk7XG4gIGxldCBlbnRyeU9mZnNldCA9IGFyY2hpdmUucmVhZFVJbnQzMkxFKGVuZE9mQ2VudHJhbERpcmVjdG9yeU9mZnNldCArIENFTlRSQUxfRElSRUNUT1JZX1NUQVJUX09GRlNFVCk7XG5cbiAgaWYgKGVudHJ5Q291bnQgPT09IFNBVFVSQVRFRF9VSU5UXzE2IHx8IGVudHJ5T2Zmc2V0ID09PSBTQVRVUkFURURfVUlOVF8zMikge1xuICAgIHRocm93IG5ldyBFcnJvcignWklQNjQgYXJjaGl2ZXMgYXJlIG5vdCBzdXBwb3J0ZWQuJyk7XG4gIH1cblxuICBjb25zdCBlbnRyaWVzOiBaaXBFbnRyeVtdID0gW107XG4gIGZvciAobGV0IGVudHJ5SW5kZXggPSAwOyBlbnRyeUluZGV4IDwgZW50cnlDb3VudDsgZW50cnlJbmRleCsrKSB7XG4gICAgaWYgKGFyY2hpdmUucmVhZFVJbnQzMkxFKGVudHJ5T2Zmc2V0KSAhPT0gQ0VOVFJBTF9ESVJFQ1RPUllfSEVBREVSX1NJR05BVFVSRSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgYXJjaGl2ZSdzIGNlbnRyYWwgZGlyZWN0b3J5IGlzIGNvcnJ1cHQgYXQgZW50cnkgJHtTdHJpbmcoZW50cnlJbmRleCl9LmApO1xuICAgIH1cblxuICAgIGNvbnN0IGZsYWdzID0gYXJjaGl2ZS5yZWFkVUludDE2TEUoZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9GTEFHU19PRkZTRVQpO1xuICAgIGlmIChmbGFncyAlIEVOQ1JZUFRFRF9GTEFHX0RJVklTT1IgPT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRW5jcnlwdGVkIFpJUCBhcmNoaXZlcyBhcmUgbm90IHN1cHBvcnRlZC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wcmVzc2VkU2l6ZSA9IGFyY2hpdmUucmVhZFVJbnQzMkxFKGVudHJ5T2Zmc2V0ICsgQ0VOVFJBTF9ESVJFQ1RPUllfQ09NUFJFU1NFRF9TSVpFX09GRlNFVCk7XG4gICAgY29uc3QgbG9jYWxIZWFkZXJPZmZzZXQgPSBhcmNoaXZlLnJlYWRVSW50MzJMRShlbnRyeU9mZnNldCArIENFTlRSQUxfRElSRUNUT1JZX0xPQ0FMX0hFQURFUl9PRkZTRVRfT0ZGU0VUKTtcbiAgICBpZiAoY29tcHJlc3NlZFNpemUgPT09IFNBVFVSQVRFRF9VSU5UXzMyIHx8IGxvY2FsSGVhZGVyT2Zmc2V0ID09PSBTQVRVUkFURURfVUlOVF8zMikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdaSVA2NCBhcmNoaXZlcyBhcmUgbm90IHN1cHBvcnRlZC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBuYW1lTGVuZ3RoID0gYXJjaGl2ZS5yZWFkVUludDE2TEUoZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9OQU1FX0xFTkdUSF9PRkZTRVQpO1xuICAgIGNvbnN0IG5hbWVPZmZzZXQgPSBlbnRyeU9mZnNldCArIENFTlRSQUxfRElSRUNUT1JZX0hFQURFUl9TSVpFO1xuICAgIGVudHJpZXMucHVzaCh7XG4gICAgICBjb21wcmVzc2VkU2l6ZSxcbiAgICAgIGNvbXByZXNzaW9uTWV0aG9kOiBhcmNoaXZlLnJlYWRVSW50MTZMRShlbnRyeU9mZnNldCArIENFTlRSQUxfRElSRUNUT1JZX0NPTVBSRVNTSU9OX01FVEhPRF9PRkZTRVQpLFxuICAgICAgbG9jYWxIZWFkZXJPZmZzZXQsXG4gICAgICBuYW1lOiBhcmNoaXZlLnRvU3RyaW5nKCd1dGYtOCcsIG5hbWVPZmZzZXQsIG5hbWVPZmZzZXQgKyBuYW1lTGVuZ3RoKVxuICAgIH0pO1xuXG4gICAgZW50cnlPZmZzZXQgPSBuYW1lT2Zmc2V0XG4gICAgICArIG5hbWVMZW5ndGhcbiAgICAgICsgYXJjaGl2ZS5yZWFkVUludDE2TEUoZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9FWFRSQV9MRU5HVEhfT0ZGU0VUKVxuICAgICAgKyBhcmNoaXZlLnJlYWRVSW50MTZMRShlbnRyeU9mZnNldCArIENFTlRSQUxfRElSRUNUT1JZX0NPTU1FTlRfTEVOR1RIX09GRlNFVCk7XG4gIH1cblxuICByZXR1cm4gZW50cmllcztcbn1cblxuLyoqXG4gKiBSZWFkcyBhbmQgZGVjb21wcmVzc2VzIG9uZSBlbnRyeSdzIGJ5dGVzLlxuICpcbiAqIFRoZSBkYXRhJ3Mgc3RhcnQgaXMgY29tcHV0ZWQgZnJvbSB0aGUgTE9DQUwgaGVhZGVyIHJhdGhlciB0aGFuIHRoZSBjZW50cmFsIG9uZTogdGhlIHR3byBjYXJyeVxuICogaW5kZXBlbmRlbnQgbmFtZSBhbmQgZXh0cmEtZmllbGQgbGVuZ3RocywgYW5kIG9ubHkgdGhlIGxvY2FsIHBhaXIgZGVzY3JpYmVzIHdoZXJlIHRoZSBieXRlc1xuICogYWN0dWFsbHkgYmVnaW4uXG4gKlxuICogQHBhcmFtIGFyY2hpdmUgLSBUaGUgcmF3IFpJUCBhcmNoaXZlIGJ5dGVzLlxuICogQHBhcmFtIGVudHJ5IC0gVGhlIGVudHJ5LCBhcyByZWFkIGZyb20gdGhlIGNlbnRyYWwgZGlyZWN0b3J5LlxuICogQHJldHVybnMgVGhlIGVudHJ5J3MgdW5jb21wcmVzc2VkIGNvbnRlbnQuXG4gKi9cbmZ1bmN0aW9uIHJlYWRFbnRyeURhdGEoYXJjaGl2ZTogQnVmZmVyLCBlbnRyeTogWmlwRW50cnkpOiBCdWZmZXIge1xuICBpZiAoYXJjaGl2ZS5yZWFkVUludDMyTEUoZW50cnkubG9jYWxIZWFkZXJPZmZzZXQpICE9PSBMT0NBTF9GSUxFX0hFQURFUl9TSUdOQVRVUkUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBhcmNoaXZlIGVudHJ5ICcke2VudHJ5Lm5hbWV9JyBoYXMgYSBjb3JydXB0IGxvY2FsIGhlYWRlci5gKTtcbiAgfVxuXG4gIGNvbnN0IGRhdGFPZmZzZXQgPSBlbnRyeS5sb2NhbEhlYWRlck9mZnNldFxuICAgICsgTE9DQUxfSEVBREVSX1NJWkVcbiAgICArIGFyY2hpdmUucmVhZFVJbnQxNkxFKGVudHJ5LmxvY2FsSGVhZGVyT2Zmc2V0ICsgTE9DQUxfSEVBREVSX05BTUVfTEVOR1RIX09GRlNFVClcbiAgICArIGFyY2hpdmUucmVhZFVJbnQxNkxFKGVudHJ5LmxvY2FsSGVhZGVyT2Zmc2V0ICsgTE9DQUxfSEVBREVSX0VYVFJBX0xFTkdUSF9PRkZTRVQpO1xuICBjb25zdCBkYXRhRW5kID0gZGF0YU9mZnNldCArIGVudHJ5LmNvbXByZXNzZWRTaXplO1xuICBpZiAoZGF0YUVuZCA+IGFyY2hpdmUubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgYXJjaGl2ZSBpcyB0cnVuY2F0ZWQ6IGVudHJ5ICcke2VudHJ5Lm5hbWV9JyBydW5zIHBhc3QgaXRzIGVuZC5gKTtcbiAgfVxuXG4gIGNvbnN0IGNvbXByZXNzZWREYXRhID0gYXJjaGl2ZS5zdWJhcnJheShkYXRhT2Zmc2V0LCBkYXRhRW5kKTtcbiAgc3dpdGNoIChlbnRyeS5jb21wcmVzc2lvbk1ldGhvZCkge1xuICAgIGNhc2UgQ09NUFJFU1NJT05fTUVUSE9EX0RFRkxBVEVEOiB7XG4gICAgICByZXR1cm4gaW5mbGF0ZVJhd1N5bmMoY29tcHJlc3NlZERhdGEpO1xuICAgIH1cbiAgICBjYXNlIENPTVBSRVNTSU9OX01FVEhPRF9TVE9SRUQ6IHtcbiAgICAgIHJldHVybiBjb21wcmVzc2VkRGF0YTtcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgYXJjaGl2ZSBlbnRyeSAnJHtlbnRyeS5uYW1lfScgdXNlcyB1bnN1cHBvcnRlZCBjb21wcmVzc2lvbiBtZXRob2QgJHtTdHJpbmcoZW50cnkuY29tcHJlc3Npb25NZXRob2QpfS5gKTtcbiAgICB9XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBeUJBLHVCQUErQjtBQUUvQixrQkFHTztBQXlFUCxNQUFNLHFDQUFxQztBQUMzQyxNQUFNLHFDQUFxQztBQUMzQyxNQUFNLDhCQUE4QjtBQUVwQyxNQUFNLGdDQUFnQztBQUN0QyxNQUFNLDZCQUE2QjtBQUluQyxNQUFNLG9CQUFvQjtBQUMxQixNQUFNLG9CQUFvQjtBQUcxQixNQUFNLDZCQUE2QjtBQUNuQyxNQUFNLGlDQUFpQztBQUd2QyxNQUFNLGlDQUFpQztBQUN2QyxNQUFNLDhDQUE4QztBQUNwRCxNQUFNLDJDQUEyQztBQUNqRCxNQUFNLHVDQUF1QztBQUM3QyxNQUFNLHdDQUF3QztBQUM5QyxNQUFNLDBDQUEwQztBQUNo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
|
|
@@ -146,7 +146,7 @@ __export(generated_during_build_exports, {
|
|
|
146
146
|
LIBRARY_VERSION: () => LIBRARY_VERSION
|
|
147
147
|
});
|
|
148
148
|
module.exports = __toCommonJS(generated_during_build_exports);
|
|
149
|
-
const LIBRARY_VERSION = "100.
|
|
149
|
+
const LIBRARY_VERSION = "100.2.0";
|
|
150
150
|
const LIBRARY_STYLES = ".obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component pre, .obsidian-dev-utils.code-highlighter-component code {\n font-family: var(--font-monospace);\n line-height: var(--line-height-normal);\n margin: 0;\n}\n.obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component code {\n font-size: var(--code-size);\n}\n.obsidian-dev-utils.code-highlighter-component textarea {\n background: transparent;\n color: transparent;\n z-index: 2;\n width: 20em;\n height: 10em;\n}\n.obsidian-dev-utils.code-highlighter-component pre {\n position: absolute;\n pointer-events: none;\n border: var(--input-border-width) solid transparent;\n overflow: auto;\n inset: 0;\n padding: var(--size-4-1) var(--size-4-2);\n z-index: 1;\n}\n.obsidian-dev-utils.code-highlighter-component pre::after {\n content: \"\";\n display: block;\n height: var(--bottom-gap, 0);\n}\n.obsidian-dev-utils.code-highlighter-component pre.is-placeholder {\n opacity: 0.6;\n}\n.obsidian-dev-utils.code-highlighter-component code {\n display: block;\n padding: 0;\n}\n\n.obsidian-dev-utils-lock-indicator {\n display: inline-flex;\n align-items: center;\n color: var(--text-muted);\n}\n.obsidian-dev-utils-lock-indicator .svg-icon {\n width: var(--icon-s);\n height: var(--icon-s);\n}\n\n@keyframes obsidian-dev-utils-lock-indicator-flash {\n 40% {\n color: var(--text-error);\n transform: scale(1.4);\n }\n}\n.obsidian-dev-utils-lock-indicator-flash {\n animation: obsidian-dev-utils-lock-indicator-flash 0.35s ease-in-out;\n}\n\n.obsidian-dev-utils input[type=url] {\n height: var(--input-height);\n}\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=tel],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=url],\n.obsidian-dev-utils input[type=week] {\n -webkit-app-region: no-drag;\n background: var(--background-modifier-form-field);\n border: var(--input-border-width) solid var(--background-modifier-border);\n color: var(--text-normal);\n font-family: inherit;\n padding: var(--size-4-1) var(--size-4-2);\n font-size: var(--font-ui-small);\n border-radius: var(--input-radius);\n outline: none;\n}\n@media (hover: hover) {\n .obsidian-dev-utils input[type=month]:hover,\n .obsidian-dev-utils input[type=tel]:hover,\n .obsidian-dev-utils input[type=time]:hover,\n .obsidian-dev-utils input[type=url]:hover,\n .obsidian-dev-utils input[type=week]:hover {\n border-color: var(--background-modifier-border-hover);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n }\n}\n.obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus,\n.obsidian-dev-utils input[type=tel]:active,\n.obsidian-dev-utils input[type=tel]:focus,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus {\n border-color: var(--background-modifier-border-focus);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n}\n.obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus, .obsidian-dev-utils input[type=month]:focus-visible,\n.obsidian-dev-utils input[type=tel]:active,\n.obsidian-dev-utils input[type=tel]:focus,\n.obsidian-dev-utils input[type=tel]:focus-visible,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=time]:focus-visible,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=url]:focus-visible,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus,\n.obsidian-dev-utils input[type=week]:focus-visible {\n box-shadow: 0 0 0 2px var(--background-modifier-border-focus);\n}\n.obsidian-dev-utils input[type=month]::placeholder,\n.obsidian-dev-utils input[type=tel]::placeholder,\n.obsidian-dev-utils input[type=time]::placeholder,\n.obsidian-dev-utils input[type=url]::placeholder,\n.obsidian-dev-utils input[type=week]::placeholder {\n color: var(--text-faint);\n}\n.mod-rtl input[type=month],\n.mod-rtl input[type=time],\n.mod-rtl input[type=week],\n.is-rtl input[type=month],\n.is-rtl input[type=time],\n.is-rtl input[type=week],\n.rtl input[type=month],\n.rtl input[type=time],\n.rtl input[type=week] {\n direction: rtl;\n}\n.mod-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.rtl input[type=month]::-webkit-calendar-picker-indicator,\n.rtl input[type=time]::-webkit-calendar-picker-indicator,\n.rtl input[type=week]::-webkit-calendar-picker-indicator {\n right: var(--size-4-1);\n left: auto;\n}\n\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=week] {\n font-variant-numeric: tabular-nums;\n position: relative;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-text {\n color: var(--text-faint);\n padding-inline-end: 0;\n}\n.obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {\n position: absolute;\n left: var(--size-4-1);\n right: auto;\n opacity: 0.5;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:focus {\n background-color: var(--text-selection);\n color: var(--text-normal);\n cursor: text;\n}\n.mod-rtl .obsidian-dev-utils input[type=month], .is-rtl .obsidian-dev-utils input[type=month], .rtl .obsidian-dev-utils input[type=month],\n.mod-rtl .obsidian-dev-utils input[type=time],\n.is-rtl .obsidian-dev-utils input[type=time],\n.rtl .obsidian-dev-utils input[type=time],\n.mod-rtl .obsidian-dev-utils input[type=week],\n.is-rtl .obsidian-dev-utils input[type=week],\n.rtl .obsidian-dev-utils input[type=week] {\n direction: rtl;\n}\n.mod-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .is-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {\n left: auto;\n right: var(--size-4-1);\n}\n\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=month],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=time],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=week] {\n padding-inline-start: var(--size-4-6);\n}\n\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator {\n margin-inline-start: 0;\n}\n\n.obsidian-dev-utilsprogress.loop {\n min-width: 200px;\n}\n\n@keyframes obsidian-dev-utils-minimized-modal-bar-pulse {\n 0%, 100% {\n box-shadow: var(--shadow-s);\n }\n 50% {\n box-shadow: 0 0 0 2px var(--interactive-accent);\n }\n}\n@keyframes obsidian-dev-utils-minimized-modal-bar-attention {\n 0% {\n box-shadow: 0 0 0 0 var(--interactive-accent);\n }\n 40% {\n box-shadow: 0 0 0 4px var(--interactive-accent);\n }\n 100% {\n box-shadow: var(--shadow-s);\n }\n}\n.obsidian-dev-utils.minimizable-modal .minimize-button {\n position: absolute;\n top: var(--size-4-2);\n right: calc(var(--size-4-2) + var(--size-4-9));\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--size-2-2);\n border: none;\n border-radius: var(--radius-s);\n background: transparent;\n color: var(--icon-color);\n cursor: pointer;\n box-shadow: none;\n}\n.obsidian-dev-utils.minimizable-modal .minimize-button:hover {\n background: var(--background-modifier-hover);\n color: var(--icon-color-hover);\n}\n.obsidian-dev-utils.minimized-modal-bar {\n position: fixed;\n right: var(--size-4-4);\n bottom: calc(var(--size-4-4) + var(--size-4-8));\n z-index: var(--layer-modal);\n display: flex;\n align-items: center;\n gap: var(--size-4-2);\n padding: var(--size-4-2) var(--size-4-3);\n border: 1px solid var(--background-modifier-border);\n border-radius: var(--radius-m);\n background: var(--background-secondary);\n box-shadow: var(--shadow-s);\n cursor: pointer;\n animation: obsidian-dev-utils-minimized-modal-bar-pulse 2s ease-in-out infinite;\n}\n.obsidian-dev-utils.minimized-modal-bar:hover {\n background-image: linear-gradient(var(--background-modifier-hover), var(--background-modifier-hover));\n}\n.obsidian-dev-utils.minimized-modal-bar.minimized-modal-bar-attention {\n animation: obsidian-dev-utils-minimized-modal-bar-attention 0.35s ease-out;\n}\n.obsidian-dev-utils.minimized-modal-bar .minimized-modal-bar-title {\n font-weight: var(--font-medium);\n}\n.obsidian-dev-utils.minimized-modal-bar .restore-button,\n.obsidian-dev-utils.minimized-modal-bar .cancel-button {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--size-2-2);\n border: none;\n border-radius: var(--radius-s);\n background: transparent;\n color: var(--icon-color);\n cursor: pointer;\n box-shadow: none;\n}\n.obsidian-dev-utils.minimized-modal-bar .restore-button:hover,\n.obsidian-dev-utils.minimized-modal-bar .cancel-button:hover {\n background: var(--background-modifier-hover);\n color: var(--icon-color-hover);\n}\n\n.obsidian-dev-utils.modal-commands {\n display: flex;\n flex-wrap: wrap;\n gap: var(--size-2-2);\n padding: var(--size-4-2) var(--size-4-3);\n border-top: 1px solid var(--background-modifier-border);\n}\n.obsidian-dev-utils.modal-command {\n display: inline-flex;\n align-items: baseline;\n gap: var(--size-2-2);\n min-height: var(--size-4-8);\n padding: var(--size-2-1) var(--size-4-2);\n border: 1px solid var(--background-modifier-border);\n border-radius: var(--radius-s);\n background-color: var(--background-secondary);\n color: var(--text-muted);\n font-size: var(--font-ui-smaller);\n white-space: nowrap;\n cursor: pointer;\n}\n.obsidian-dev-utils.modal-command:hover:not(:disabled) {\n background-color: var(--background-modifier-hover);\n color: var(--text-normal);\n}\n.obsidian-dev-utils.modal-command.is-active {\n border-color: var(--interactive-accent);\n background-color: var(--interactive-accent);\n color: var(--text-on-accent);\n}\n.obsidian-dev-utils.modal-command:disabled {\n opacity: 0.5;\n cursor: default;\n}\n.obsidian-dev-utils.modal-command-hotkey {\n color: var(--text-faint);\n font-size: var(--font-smallest);\n}\n.modal-command.is-active .obsidian-dev-utils.modal-command-hotkey {\n opacity: 0.7;\n color: var(--text-on-accent);\n}\n\n.obsidian-dev-utils.modal-container .ok-button {\n margin-right: 10px;\n margin-top: 20px;\n}\n\n.obsidian-dev-utils .multiple-dropdown-component select,\n.obsidian-dev-utils .multiple-dropdown-component select:focus,\n.obsidian-dev-utils .multiple-dropdown-component .dropdown {\n height: auto;\n padding-top: 3px;\n}\n.obsidian-dev-utils .multiple-dropdown-component select option:checked,\n.obsidian-dev-utils .multiple-dropdown-component select:focus option:checked,\n.obsidian-dev-utils .multiple-dropdown-component .dropdown option:checked {\n background-color: #1967d2;\n color: #fff;\n}\n\n.obsidian-dev-utils.plugin-notice-name {\n color: var(--text-accent);\n display: inline-block;\n font-weight: var(--font-bold);\n margin-bottom: var(--size-4-2);\n}\n.obsidian-dev-utils.plugin-notice-content {\n padding-right: var(--size-4-5);\n position: relative;\n}\n.obsidian-dev-utils.plugin-notice-content .obsidian-dev-utils.cancel-button {\n display: block;\n margin-top: var(--size-4-2);\n width: fit-content;\n}\n.obsidian-dev-utils.plugin-notice-content .obsidian-dev-utils.plugin-notice-close-button {\n position: absolute;\n right: var(--size-4-3);\n top: var(--size-4-3);\n}\n.obsidian-dev-utils.plugin-notice-requires-explicit-close.notice {\n padding: 0;\n}\n.obsidian-dev-utils.plugin-notice-requires-explicit-close.notice .obsidian-dev-utils.plugin-notice-content {\n padding: var(--size-4-3) var(--size-4-4);\n}\n\n.obsidian-dev-utils.plugin-settings-tab a:focus {\n outline: 2px solid var(--link-color);\n}\n\n.obsidian-dev-utils.plugin-suggestion-banner {\n background-color: var(--background-secondary);\n border-left: var(--size-2-1) solid var(--text-accent);\n border-radius: var(--radius-s);\n display: flex;\n flex-direction: column;\n gap: var(--size-4-2);\n margin-bottom: var(--size-4-4);\n padding: var(--size-4-3) var(--size-4-4);\n}\n.obsidian-dev-utils.plugin-suggestion-banner button {\n width: fit-content;\n}\n\n.obsidian-dev-utils.popover {\n max-width: min(420px, 90vw);\n min-width: 320px;\n padding: var(--size-4-2) var(--size-4-3);\n position: absolute;\n z-index: var(--layer-menu);\n}\n.obsidian-dev-utils.popover .setting-item {\n align-items: center;\n border-top: none;\n gap: var(--size-4-2);\n padding: var(--size-2-1) 0;\n}\n.obsidian-dev-utils.popover .setting-item-info {\n margin-right: 0;\n}\n.obsidian-dev-utils.popover .setting-item-control {\n flex-grow: 1;\n justify-content: flex-end;\n}\n.obsidian-dev-utils.popover input[type=text] {\n width: 100%;\n}\n\n.obsidian-dev-utils.prompt-modal .text-box {\n width: 100%;\n}\n\nbody button:not(.clickable-icon) {\n color: var(--text-color);\n}\n\n.obsidian-dev-utils.tri-state-checkbox-component input[type=checkbox]:indeterminate {\n appearance: checkbox;\n}\n\n.obsidian-dev-utils :invalid:not(.untouched) {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-dev-utils input.metadata-input-text:active:invalid:not(.untouched), .obsidian-dev-utils input.metadata-input-text:focus-visible:invalid:not(.untouched), .obsidian-dev-utils input.metadata-input-text:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=date]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=date]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=date]:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=datetime-local]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=datetime-local]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=datetime-local]:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=email]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=email]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=email]:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=number]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=number]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=number]:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=password]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=password]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=password]:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=search]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=search]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=search]:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=text]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=text]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=text]:focus:invalid:not(.untouched),\n.obsidian-dev-utils textarea:active:invalid:not(.untouched),\n.obsidian-dev-utils textarea:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils textarea:focus:invalid:not(.untouched) {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-dev-utils.setting-component-wrapper {\n position: relative;\n display: inline-flex;\n}\n.obsidian-dev-utils.overlay-validator {\n caret-color: transparent;\n cursor: default;\n position: absolute;\n background-color: transparent;\n border: none;\n outline: none;\n pointer-events: none;\n z-index: 9999;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n.obsidian-dev-utils.tooltip.tooltip-validator {\n position: absolute;\n top: calc(100% + 8px);\n width: max-content;\n}\n\n/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../src/styles/code-highlighter-component.scss%22,%22../src/styles/editor-lock.scss%22,%22../src/styles/input.scss%22,%22../src/styles/input-time.scss%22,%22../src/styles/loop.scss%22,%22../src/styles/minimizable-modal.scss%22,%22../src/styles/modal-commands.scss%22,%22../src/styles/modal-container.scss%22,%22../src/styles/multiple-dropdown-component.scss%22,%22../src/styles/plugin-notice.scss%22,%22../src/styles/plugin-settings-tab.scss%22,%22../src/styles/plugin-suggestion.scss%22,%22../src/styles/popover.scss%22,%22../src/styles/prompt-modal.scss%22,%22../src/styles/tldraw-button-color-workaround.scss%22,%22../src/styles/tri-state-checkbox-component.scss%22,%22../src/styles/validation.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAEI;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;;ACvCN;EACE;EACA;EACA;;AAEA;EACE;EACA;;;AAMJ;EACE;IACE;IACA;;;AAIJ;EACE;;;ACvBA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;AAAA;AAAA;AAAA;AAAA;IACE;IACA,YACE;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA,YACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;AAAA;EACE;;AASE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AC7DV;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;AAGF;AAAA;AAAA;EACE;EACA;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAIK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGP;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AAKF;AAAA;AAAA;EACE;;;AAMJ;EACE;;;ACjDJ;EACE;;;ACFJ;EACE;IAEE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;EAGF;IACE;;;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AASN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAOA;EACE;;AAOF;EACE;;AAGF;EACE;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACE;EACA;;;ACpGN;EACE;EACA;EACA;EACA;EACA;;AAMF;EACE;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAKF;EACE;EACA;;AAIJ;EACE;EACA;;AAGA;EACE;EACA;;;AC3DF;EACE;EACA;;;ACFF;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;;ACTN;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAOJ;EACE;;AAEA;EACE;;;AChCF;EACE;;;ACFJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;ACRJ;EAIE;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;;AC9BF;EACE;;;ACON;EACE;;;ACTE;EACE;;;ACKJ;EAPA;;AAuBI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAvBJ;;AA6BA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA%22,%22file%22:%22styles.css%22,%22sourcesContent%22:%5B%22.obsidian-dev-utils%20%7B%5Cn%20%20&.code-highlighter-component%20%7B%5Cn%20%20%20%20textarea,%20pre,%20code%20%7B%5Cn%20%20%20%20%20%20font-family:%20var(--font-monospace);%5Cn%20%20%20%20%20%20line-height:%20var(--line-height-normal);%5Cn%20%20%20%20%20%20margin:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea,%20code%20%7B%5Cn%20%20%20%20%20%20font-size:%20var(--code-size);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea%20%7B%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20transparent;%5Cn%20%20%20%20%20%20z-index:%202;%5Cn%20%20%20%20%20%20width:%2020em;%5Cn%20%20%20%20%20%20height:%2010em;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20%20%20border:%20var(--input-border-width)%20solid%20transparent;%5Cn%20%20%20%20%20%20overflow:%20auto;%5Cn%20%20%20%20%20%20inset:%200;%5Cn%20%20%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20%20%20z-index:%201;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre::after%20%7B%5Cn%20%20%20%20%20%20content:%20%5C%22%5C%22;%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20height:%20var(--bottom-gap,%200);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre.is-placeholder%20%7B%5Cn%20%20%20%20%20%20opacity:%200.6;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20code%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20padding:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20Lock%20indicators%20shown%20in%20the%20tab%20header%20and%20the%20status%20bar%20while%20a%20note%20is%20locked.%20These%20live%20in%5Cn//%20global%20Obsidian%20DOM%20(tab%20header%20/%20status%20bar),%20so%20they%20are%20styled%20with%20a%20global%20class%20rather%20than%5Cn//%20scoped%20under%20%60.obsidian-dev-utils%60.%5Cn.obsidian-dev-utils-lock-indicator%20%7B%5Cn%20%20display:%20inline-flex;%5Cn%20%20align-items:%20center;%5Cn%20%20color:%20var(--text-muted);%5Cn%5Cn%20%20.svg-icon%20%7B%5Cn%20%20%20%20width:%20var(--icon-s);%5Cn%20%20%20%20height:%20var(--icon-s);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn//%20Flashed%20on%20every%20lock%20indicator%20(tab%20header,%20view%20action,%20status%20bar)%20when%20the%20user%20attempts%20to%5Cn//%20type%20in%20a%20locked%20note,%20to%20make%20clear%20the%20note%20is%20read-only.%20Re-added%20per%20rejected%20keystroke.%5Cn@keyframes%20obsidian-dev-utils-lock-indicator-flash%20%7B%5Cn%20%2040%25%20%7B%5Cn%20%20%20%20color:%20var(--text-error);%5Cn%20%20%20%20transform:%20scale(1.4);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.obsidian-dev-utils-lock-indicator-flash%20%7B%5Cn%20%20animation:%20obsidian-dev-utils-lock-indicator-flash%200.35s%20ease-in-out;%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='url'%5D%20%7B%5Cn%20%20%20%20height:%20var(--input-height)%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='tel'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='url'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20-webkit-app-region:%20no-drag;%5Cn%20%20%20%20background:%20var(--background-modifier-form-field);%5Cn%20%20%20%20border:%20var(--input-border-width)%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20font-family:%20inherit;%5Cn%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20font-size:%20var(--font-ui-small);%5Cn%20%20%20%20border-radius:%20var(--input-radius);%5Cn%20%20%20%20outline:%20none;%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20@media%20(hover:%20hover)%20%7B%5Cn%20%20%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20border-color:%20var(--background-modifier-border-hover);%5Cn%20%20%20%20%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus,%5Cn%20%20%20%20&:focus-visible%20%7B%5Cn%20%20%20%20%20%20box-shadow:%200%200%200%202px%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::placeholder%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20@at-root%20%7B%5Cn%20%20%20%20.mod-rtl,%5Cn%20%20%20%20.is-rtl,%5Cn%20%20%20%20.rtl%20%7B%5Cn%20%20%20%20%20%20&%20%7B%5Cn%20%20%20%20%20%20%20%20input%5Btype='month'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='time'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20font-variant-numeric:%20tabular-nums;%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-text%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%20%20padding-inline-end:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20left:%20var(--size-4-1);%5Cn%20%20%20%20%20%20right:%20auto;%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-month-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-day-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-year-field%20%7B%5Cn%20%20%20%20%20%20&:active,%5Cn%20%20%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--text-selection);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%20%20%20%20cursor:%20text;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20.mod-rtl%20&,%5Cn%20%20%20%20%20%20.is-rtl%20&,%5Cn%20%20%20%20%20%20.rtl%20&%20%7B%5Cn%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20body:not(.is-ios):not(.is-android)%20&%20%7B%5Cn%20%20%20%20%20%20%20%20padding-inline-start:%20var(--size-4-6);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='time'%5D%20%7B%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20margin-inline-start:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&progress.loop%20%7B%5Cn%20%20%20%20min-width:%20200px;%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22@keyframes%20obsidian-dev-utils-minimized-modal-bar-pulse%20%7B%5Cn%20%200%25,%5Cn%20%20100%25%20%7B%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%7D%5Cn%5Cn%20%2050%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%202px%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn@keyframes%20obsidian-dev-utils-minimized-modal-bar-attention%20%7B%5Cn%20%200%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%200%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%5Cn%20%2040%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%204px%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%5Cn%20%20100%25%20%7B%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20//%20The%20minimize%20button%20lives%20inside%20the%20modal%20container,%20left%20of%20Obsidian's%20close%20button.%5Cn%20%20&.minimizable-modal%20%7B%5Cn%20%20%20%20.minimize-button%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20top:%20var(--size-4-2);%5Cn%20%20%20%20%20%20right:%20calc(var(--size-4-2)%20+%20var(--size-4-9));%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20padding:%20var(--size-2-2);%5Cn%20%20%20%20%20%20border:%20none;%5Cn%20%20%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20var(--icon-color);%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20box-shadow:%20none;%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20%20%20color:%20var(--icon-color-hover);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20The%20minimized%20bar%20is%20appended%20to%20document.body.%20It%20floats%20at%20the%20bottom-right%20while%20minimized,%5Cn%20%20//%20and%20gently%20pulses%20an%20accent%20ring%20so%20the%20user%20does%20not%20forget%20about%20the%20minimized%20operation.%5Cn%20%20//%20It%20floats%20a%20status-bar's%20height%20above%20the%20bottom%20edge%20so%20it%20never%20covers%20the%20bottom-right%5Cn%20%20//%20status-bar%20items%20(e.g.%20the%20editor-lock%20unlock%20indicator,%20which%20lives%20in%20the%20same%20corner).%5Cn%20%20&.minimized-modal-bar%20%7B%5Cn%20%20%20%20position:%20fixed;%5Cn%20%20%20%20right:%20var(--size-4-4);%5Cn%20%20%20%20bottom:%20calc(var(--size-4-4)%20+%20var(--size-4-8));%5Cn%20%20%20%20z-index:%20var(--layer-modal);%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20align-items:%20center;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20border:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20border-radius:%20var(--radius-m);%5Cn%20%20%20%20background:%20var(--background-secondary);%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20animation:%20obsidian-dev-utils-minimized-modal-bar-pulse%202s%20ease-in-out%20infinite;%5Cn%5Cn%20%20%20%20//%20Layer%20the%20translucent%20hover%20tint%20over%20the%20opaque%20%60background%60%20(%60--background-secondary%60)%20via%5Cn%20%20%20%20//%20%60background-image%60%20instead%20of%20replacing%20the%20background-color.%20%60--background-modifier-hover%60%20is%5Cn%20%20%20%20//%20translucent,%20so%20setting%20it%20as%20%60background%60%20would%20let%20the%20editor%20content%20behind%20the%20floating%20bar%5Cn%20%20%20%20//%20bleed%20through%20and%20make%20the%20title%20unreadable.%20A%20gradient%20of%20the%20tint%20composited%20over%20the%20opaque%5Cn%20%20%20%20//%20base%20keeps%20the%20bar%20opaque%20while%20preserving%20the%20subtle%20hover%20highlight.%5Cn%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20background-image:%20linear-gradient(var(--background-modifier-hover),%20var(--background-modifier-hover));%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20A%20one-shot,%20more%20pronounced%20flash%20played%20when%20the%20user%20attempts%20a%20blocked%20action%20(a%20keystroke,%5Cn%20%20%20%20//%20right-click,%20or%20opening%20another%20modal)%20while%20this%20modal%20is%20minimized,%20so%20the%20block%20is%20not%5Cn%20%20%20%20//%20silent.%20Its%20higher%20specificity%20overrides%20the%20gentle%20infinite%20idle%20pulse%20while%20it%20plays;%20the%5Cn%20%20%20%20//%20class%20is%20removed%20on%20%60animationend%60,%20restoring%20the%20idle%20pulse.%5Cn%20%20%20%20&.minimized-modal-bar-attention%20%7B%5Cn%20%20%20%20%20%20animation:%20obsidian-dev-utils-minimized-modal-bar-attention%200.35s%20ease-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.minimized-modal-bar-title%20%7B%5Cn%20%20%20%20%20%20font-weight:%20var(--font-medium);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.restore-button,%5Cn%20%20%20%20.cancel-button%20%7B%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20padding:%20var(--size-2-2);%5Cn%20%20%20%20%20%20border:%20none;%5Cn%20%20%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20var(--icon-color);%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20box-shadow:%20none;%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20%20%20color:%20var(--icon-color-hover);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20//%20The%20strip%20of%20commands%20along%20the%20bottom%20of%20a%20modal.%5Cn%20%20//%5Cn%20%20//%20In%20%60Instructions%60%20render%20mode%20it%20also%20carries%20Obsidian's%20own%20%60.prompt-instructions%60,%20so%20this%20rule%20only%5Cn%20%20//%20has%20to%20supply%20the%20separator%20and%20the%20wrapping%20that%20a%20self-created%20bar%20does%20not%20inherit;%20in%20%60Buttons%60%5Cn%20%20//%20mode%20it%20is%20the%20whole%20strip.%5Cn%20%20&.modal-commands%20%7B%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-wrap:%20wrap;%5Cn%20%20%20%20gap:%20var(--size-2-2);%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20border-top:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%7D%5Cn%5Cn%20%20//%20One%20command%20button.%20Replaces%20the%20instruction%20bar%20rather%20than%20supplementing%20it:%20the%20bar%20can%20only%20ever%5Cn%20%20//%20say%20which%20key%20to%20press,%20and%20on%20a%20phone%20there%20is%20no%20modifier%20key%20to%20press,%20so%20every%20control%20it%20names%5Cn%20%20//%20is%20unreachable%20there.%5Cn%20%20&.modal-command%20%7B%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%20%20align-items:%20baseline;%5Cn%20%20%20%20gap:%20var(--size-2-2);%5Cn%5Cn%20%20%20%20//%20Comfortably%20tappable%20on%20a%20phone,%20where%20this%20strip%20is%20the%20only%20way%20in.%5Cn%20%20%20%20min-height:%20var(--size-4-8);%5Cn%20%20%20%20padding:%20var(--size-2-1)%20var(--size-4-2);%5Cn%20%20%20%20border:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20background-color:%20var(--background-secondary);%5Cn%20%20%20%20color:%20var(--text-muted);%5Cn%20%20%20%20font-size:%20var(--font-ui-smaller);%5Cn%20%20%20%20white-space:%20nowrap;%5Cn%20%20%20%20cursor:%20pointer;%5Cn%5Cn%20%20%20%20&:hover:not(:disabled)%20%7B%5Cn%20%20%20%20%20%20background-color:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20A%20toggle%20that%20is%20ON.%20An%20action%20never%20carries%20it%20%E2%80%94%20it%20does%20something%20and%20is%20done,%20so%20there%20is%20no%5Cn%20%20%20%20//%20state%20for%20it%20to%20show.%5Cn%20%20%20%20&.is-active%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20background-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20Disabled%20rather%20than%20removed:%20a%20strip%20that%20lost%20buttons%20as%20modes%20change%20would%20reflow%20under%20the%5Cn%20%20%20%20//%20pointer,%20which%20on%20a%20phone%20means%20a%20mis-tap.%5Cn%20%20%20%20&:disabled%20%7B%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%20%20cursor:%20default;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.modal-command-hotkey%20%7B%5Cn%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20font-size:%20var(--font-smallest);%5Cn%5Cn%20%20%20%20//%20Faint%20against%20the%20surface%20is%20right;%20faint%20against%20the%20accent%20fill%20is%20invisible.%5Cn%20%20%20%20.modal-command.is-active%20&%20%7B%5Cn%20%20%20%20%20%20opacity:%200.7;%5Cn%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.modal-container%20%7B%5Cn%20%20%20%20.ok-button%20%7B%5Cn%20%20%20%20%20%20margin-right:%2010px;%5Cn%20%20%20%20%20%20margin-top:%2020px;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20.multiple-dropdown-component%20%7B%5Cn%20%20%20%20select,%5Cn%20%20%20%20select:focus,%5Cn%20%20%20%20.dropdown%20%7B%5Cn%20%20%20%20%20%20height:%20auto;%5Cn%20%20%20%20%20%20padding-top:%203px;%5Cn%5Cn%20%20%20%20%20%20option:checked%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20%231967d2;%5Cn%20%20%20%20%20%20%20%20color:%20%23fff;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.plugin-notice-name%20%7B%5Cn%20%20%20%20color:%20var(--text-accent);%5Cn%20%20%20%20display:%20inline-block;%5Cn%20%20%20%20font-weight:%20var(--font-bold);%5Cn%20%20%20%20margin-bottom:%20var(--size-4-2);%5Cn%20%20%7D%5Cn%5Cn%20%20&.plugin-notice-content%20%7B%5Cn%20%20%20%20padding-right:%20var(--size-4-5);%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20.obsidian-dev-utils.cancel-button%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20margin-top:%20var(--size-4-2);%5Cn%20%20%20%20%20%20width:%20fit-content;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20The%20close%20button%20reuses%20Obsidian's%20%60modal-header-button%60%20+%20%60clickable-icon%60%20classes%20so%20it%20matches%5Cn%20%20%20%20//%20The%20native%20modal%20close%20button%20(box%20+%20hover);%20only%20its%20corner%20position%20is%20set%20here.%5Cn%20%20%20%20.obsidian-dev-utils.plugin-notice-close-button%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20right:%20var(--size-4-3);%5Cn%20%20%20%20%20%20top:%20var(--size-4-3);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20Move%20the%20notice's%20own%20padding%20onto%20the%20content%20wrapper%20so%20the%20wrapper%20covers%20the%20whole%20clickable%5Cn%20%20//%20Area%20%E2%80%94%20otherwise%20a%20click%20landing%20on%20the%20notice's%20bare%20padding%20(outside%20the%20wrapper)%20would%20bypass%20the%5Cn%20%20//%20Stop-propagation%20guard%20and%20dismiss%20the%20hard-to-close%20notice.%5Cn%20%20&.plugin-notice-requires-explicit-close.notice%20%7B%5Cn%20%20%20%20padding:%200;%5Cn%5Cn%20%20%20%20.obsidian-dev-utils.plugin-notice-content%20%7B%5Cn%20%20%20%20%20%20padding:%20var(--size-4-3)%20var(--size-4-4);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.plugin-settings-tab%20%7B%5Cn%20%20%20%20a:focus%20%7B%5Cn%20%20%20%20%20%20outline:%202px%20solid%20var(--link-color);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.plugin-suggestion-banner%20%7B%5Cn%20%20%20%20background-color:%20var(--background-secondary);%5Cn%20%20%20%20border-left:%20var(--size-2-1)%20solid%20var(--text-accent);%5Cn%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-direction:%20column;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20margin-bottom:%20var(--size-4-4);%5Cn%20%20%20%20padding:%20var(--size-4-3)%20var(--size-4-4);%5Cn%5Cn%20%20%20%20button%20%7B%5Cn%20%20%20%20%20%20width:%20fit-content;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20A%20popover%20is%20anchored%20at%20a%20point%20and%20appended%20to%20the%20document%20body,%20outside%20any%20plugin-scoped%5Cn//%20container,%20so%20it%20is%20positioned%20absolutely%20at%20the%20top%20level.%20It%20borrows%20Obsidian's%20%60.menu%60%20look,%5Cn//%20which%20already%20carries%20the%20popup%20background,%20border%20and%20shadow%20%E2%80%94%20only%20layout%20is%20set%20here.%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20&.popover%20%7B%5Cn%20%20%20%20//%20Deliberately%20not%20%60calc(100vw%20-%2016px)%60:%20the%20SCSS%20compiler%20strips%20the%20%60calc(%60%20wrapper%20inside%5Cn%20%20%20%20//%20%60min()%60,%20which%20yields%20invalid%20CSS.%20A%20viewport%20percentage%20keeps%20a%20narrow%20window's%20popover%20on%5Cn%20%20%20%20//%20screen.%5Cn%20%20%20%20max-width:%20min(420px,%2090vw);%5Cn%20%20%20%20min-width:%20320px;%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20z-index:%20var(--layer-menu);%5Cn%5Cn%20%20%20%20//%20Setting%20rows%20are%20built%20for%20a%20full-width%20settings%20tab;%20compact%20them%20for%20a%20popover.%5Cn%20%20%20%20.setting-item%20%7B%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20border-top:%20none;%5Cn%20%20%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20%20%20padding:%20var(--size-2-1)%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.setting-item-info%20%7B%5Cn%20%20%20%20%20%20margin-right:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.setting-item-control%20%7B%5Cn%20%20%20%20%20%20flex-grow:%201;%5Cn%20%20%20%20%20%20justify-content:%20flex-end;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20input%5Btype='text'%5D%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.prompt-modal%20%7B%5Cn%20%20%20%20.text-box%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20The%20tldraw%20Obsidian%20plugin%20(tldraw/obsidian-plugin)%20ships%20an%20unscoped%20global%20rule%5Cn//%20%60button:not(.clickable-icon)%20%7B%20color:%20currentColor%20%7D%60%20that%20overrides%20Obsidian's%20own%5Cn//%20%60button:not(.clickable-icon)%20%7B%20color:%20var(--text-color)%20%7D%60%20app-wide.%20Obsidian%20sets%5Cn//%20%60--text-color%60%20contextually%20per%20button%20variant%20(%60--text-normal%60%20by%20default,%5Cn//%20%60--text-on-accent%60%20for%20%60.mod-cta%60,%20%60--text-error%60%20for%20%60.mod-warning%60),%20so%20tldraw's%5Cn//%20%60currentColor%60%20discards%20that%20and%20breaks%20button%20contrast%20outside%20tldraw%20%E2%80%94%20e.g.%5Cn//%20White-on-white%20action%20buttons%20inside%20a%20Notice.%20Re-assert%20Obsidian's%20own%20value%20with%20a%5Cn//%20%60body%60-prefixed%20selector%20(specificity%200,1,2)%20so%20it%20wins%20over%20tldraw's%20(0,1,1)%20while%5Cn//%20Staying%20correct%20for%20every%20button%20variant%20(it%20reuses%20the%20same%20contextual%20%60--text-color%60).%5Cn//%20Defensive%20workaround%20%E2%80%94%20remove%20once%20the%20upstream%20fix%20ships%20(tldraw/obsidian-plugin%23210).%5Cnbody%20button:not(.clickable-icon)%20%7B%5Cn%20%20color:%20var(--text-color);%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.tri-state-checkbox-component%20%7B%5Cn%20%20%20%20input%5Btype='checkbox'%5D:indeterminate%20%7B%5Cn%20%20%20%20%20%20appearance:%20checkbox;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22@mixin%20invalid%20%7B%5Cn%20%20box-shadow:%200%200%200%202px%20var(--text-error);%5Cn%7D%5Cn%5Cn//%20An%20input%20the%20user%20has%20not%20interacted%20with%20yet%20carries%20%60.untouched%60%20(set%20by%20%60PromptModal%60),%20so%20a%20modal%20that%5Cn//%20opens%20invalid%20by%20design%20does%20not%20greet%20the%20user%20in%20red.%20Both%20blocks%20below%20must%20be%20gated:%20the%20input%20is%5Cn//%20focused%20on%20open,%20so%20the%20focus%20block%20alone%20would%20keep%20painting%20it.%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20:invalid:not(.untouched)%20%7B%5Cn%20%20%20%20@include%20invalid;%5Cn%20%20%7D%5Cn%5Cn%20%20input.metadata-input-text,%5Cn%20%20input%5Btype='date'%5D,%5Cn%20%20input%5Btype='datetime-local'%5D,%5Cn%20%20input%5Btype='email'%5D,%5Cn%20%20input%5Btype='number'%5D,%5Cn%20%20input%5Btype='password'%5D,%5Cn%20%20input%5Btype='search'%5D,%5Cn%20%20input%5Btype='text'%5D,%5Cn%20%20textarea%20%7B%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus-visible,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20&:invalid:not(.untouched)%20%7B%5Cn%20%20%20%20%20%20%20%20@include%20invalid;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.setting-component-wrapper%20%7B%5Cn%20%20%20%20position:%20relative;%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%7D%5Cn%5Cn%20%20&.overlay-validator%20%7B%5Cn%20%20%20%20caret-color:%20transparent;%5Cn%20%20%20%20cursor:%20default;%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20background-color:%20transparent;%5Cn%20%20%20%20border:%20none;%5Cn%20%20%20%20outline:%20none;%5Cn%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20z-index:%209999;%5Cn%20%20%20%20left:%200;%5Cn%20%20%20%20top:%200;%5Cn%20%20%20%20width:%20100%25;%5Cn%20%20%20%20height:%20100%25;%5Cn%20%20%7D%5Cn%5Cn%20%20&.tooltip.tooltip-validator%20%7B%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20top:%20calc(100%25%20+%208px);%5Cn%20%20%20%20width:%20max-content;%5Cn%20%20%7D%5Cn%7D%5Cn%22%5D%7D */\n";
|
|
151
151
|
// Annotate the CommonJS export names for ESM import in node:
|
|
152
152
|
0 && (module.exports = {
|
|
@@ -355,4 +355,4 @@ async function resolveDemoVaultArchive(params) {
|
|
|
355
355
|
0 && (module.exports = {
|
|
356
356
|
openDemoVault
|
|
357
357
|
});
|
|
358
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBEb3dubG9hZHMgYW5kIG9wZW5zIGEgcGx1Z2luJ3Mgc2hpcHBlZCBkZW1vIHZhdWx0IGluIGEgbmV3IE9ic2lkaWFuIHdpbmRvdyAoZGVza3RvcCBvbmx5KS5cbiAqXG4gKiBBIHBsdWdpbiBjYW4gYXR0YWNoIGEgYDxwbHVnaW4taWQ+LWRlbW8tdmF1bHQuemlwYCBhcmNoaXZlIHRvIGVhY2ggR2l0SHViIHJlbGVhc2UgKHNlZVxuICogYGFyY2hpdmVQbHVnaW5EZW1vVmF1bHRgIGluIGBzY3JpcHQtdXRpbHMvZGVtby12YXVsdC50c2A7IGV2ZXJ5IG5hbWUgc2hhcmVkIHdpdGggaXQgY29tZXMgZnJvbVxuICogYGRlbW8tdmF1bHQtbmFtaW5nLnRzYCkuIFRoaXMgcmVzb2x2ZXMgdGhlIHBsdWdpbidzIHJlcG9zaXRvcnkgZnJvbSBPYnNpZGlhbidzIGNvbW11bml0eSByZWdpc3RyeSxcbiAqIGRvd25sb2FkcyB0aGUgYXJjaGl2ZSBmb3IgdGhlIGNob3NlbiB2ZXJzaW9uLCBhbmQgb3BlbnMgaXQgYXMgYSB2YXVsdCBpbiBhIG5ldyB3aW5kb3cuIFdoZW4gdGhlXG4gKiBpbnN0YWxsZWQgcGx1Z2luIHZlcnNpb24gaXMgYmVoaW5kIHRoZSBsYXRlc3QgcmVsZWFzZSwgdGhlIHVzZXIgaXMgb2ZmZXJlZCBhIGNob2ljZSBiZXR3ZWVuIHRoZSB0d29cbiAqIHZlcnNpb25zLlxuICpcbiAqIEEgcHJvZ3Jlc3Mgbm90aWNlIGlzIHNob3duIGltbWVkaWF0ZWx5IChkb3dubG9hZCArIGV4dHJhY3Rpb24gY2FuIHRha2UgYSB3aGlsZSwgc28gdGhlIHVzZXIgbXVzdCBzZWVcbiAqIHNvbWV0aGluZyBpcyBoYXBwZW5pbmcgcmlnaHQgYXdheSkuIE9ubHkgdGhlIGRvd25sb2FkZWQgQVJDSElWRSBpcyBjYWNoZWQgKHVuZGVyIHRoZSBPUyB0ZW1wXG4gKiBkaXJlY3RvcnkpOyBldmVyeSBpbnZvY2F0aW9uIGV4dHJhY3RzIGEgRlJFU0ggY29weSBpbnRvIGl0cyBvd24gdGVtcG9yYXJ5IGZvbGRlciBhbmQgb3BlbnMgdGhhdCwgc28gYVxuICogcHJldmlvdXMgc2Vzc2lvbidzIGVkaXRzIG5ldmVyIGxlYWsgaW50byBhIG5ldyBvbmUuIFRoZSB2YXVsdCBmb2xkZXIgaXMgdGhlIGFyY2hpdmUncyBvd24gc2luZ2xlXG4gKiB0b3AtbGV2ZWwgZm9sZGVyLCBgPHBsdWdpbi1pZD4tZGVtby12YXVsdC08dmVyc2lvbj5gLCB3aGljaCByZWFkcyBuaWNlbHkgaW4gT2JzaWRpYW4ncyB2YXVsdCBzd2l0Y2hlclxuICogYW5kIGlzIHRoZSBzYW1lIG5hbWUgYSBoYW5kLXVuemlwcGVkIGFyY2hpdmUgcHJvZHVjZXMuIE9ycGhhbmVkIGV4dHJhY3RlZCBmb2xkZXJzIGxlZnQgb3ZlciBmcm9tXG4gKiBlYXJsaWVyIHNlc3Npb25zIGFyZSBjbGVhbmVkIHVwIChiZXN0LWVmZm9ydCkgb24gZWFjaCBvcGVuLlxuICpcbiAqICoqTm90aGluZyBoZXJlIG1heSB0b3VjaCBhIHBsYXRmb3JtLW9ubHkgQVBJIHdoaWxlIHRoZSBtb2R1bGUgSU5JVElBTElaRVMuKiogVGhlIGBub2RlOmAgaW1wb3J0cyBiZWxvd1xuICogYXJlIHNhZmUgdG8gbWVyZWx5IGV2YWx1YXRlIG9uIG1vYmlsZSBcdTIwMTQgYHJlcXVpcmVgIGhhbmRzIGJhY2sgYHVuZGVmaW5lZGAgdGhlcmUgYW5kIG5vdGhpbmcgcmVhZHMgaXQgYXRcbiAqIGxvYWQgdGltZSBcdTIwMTQgYW5kIGJlY2F1c2UgdGhlIGdlbmVyYXRlZCBiYXJyZWxzIHJlLWV4cG9ydCB0aGlzIG1vZHVsZSwgdGhhdCBpcyBhIGxvYWQtYmVhcmluZyBwcm9wZXJ0eSBvZlxuICogdGhlIHdob2xlIGxpYnJhcnkgcmF0aGVyIHRoYW4gYSBkZXRhaWwgb2YgdGhpcyBmaWxlLiBJdCB3YXMgbGVhcm5lZCB0aGUgaGFyZCB3YXk6IHRoaXMgbW9kdWxlIG9uY2VcbiAqIGltcG9ydGVkIGBhZG0temlwYCwgd2hvc2UgemlwLWNyeXB0byBtZXRob2Qgb3BlbnMgd2l0aCBhIHRvcC1sZXZlbFxuICogYGNvbnN0IHsgcmFuZG9tRmlsbFN5bmMgfSA9IHJlcXVpcmUoJ2NyeXB0bycpYCwgYW5kIGEgc3RhdGljIGBpbXBvcnQgQWRtWmlwIGZyb20gJ2FkbS16aXAnYCB0aGVyZWZvcmVcbiAqIGtpbGxlZCB0aGUgbGlicmFyeSdzIGxvYWQgb24gQW5kcm9pZCAoc2VlIHRoZSBtb2JpbGUtbG9hZCBjaGVjayBpblxuICogYHNjcmlwdHMvaGVscGVycy9hc3NlcnQtbW9iaWxlLWxvYWRhYmxlLWJ1bmRsZS50c2AsIHdoaWNoIGZhaWxzIHRoZSBidWlsZCBvbiBleGFjdGx5IHRoYXQpLiBFeHRyYWN0aW9uXG4gKiBub3cgZ29lcyB0aHJvdWdoIGBkZXNrdG9wLXppcC1leHRyYWN0b3IudHNgLCB3aGljaCBuZWVkcyBubyBkZXBlbmRlbmN5IGF0IGFsbCBcdTIwMTQgYnV0IGFueSBmdXR1cmVcbiAqIGRlcGVuZGVuY3kgdGhhdCBpbml0aWFsaXplcyBhZ2FpbnN0IGEgcGxhdGZvcm0tb25seSBBUEkgc3RpbGwgaGFzIHRvIGJlIGRlZmVycmVkIGJlaGluZCBhIGNhbGwtdGltZVxuICogYGltcG9ydCgpYC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSAnY29tcGFyZS12ZXJzaW9ucyc7XG4vKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlcyAtLSBEZXNrdG9wLW9ubHkgZmVhdHVyZSBnYXRlZCBieSBgUGxhdGZvcm0uaXNEZXNrdG9wQXBwYDsgdGhlIGNvbW1hbmQgaXMgaGlkZGVuIG9uIG1vYmlsZSBzbyB0aGVzZSBOb2RlIEFQSXMgYXJlIG5ldmVyIHJlYWNoZWQgdGhlcmUuICovXG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdub2RlOmJ1ZmZlcic7XG5pbXBvcnQge1xuICBleGlzdHNTeW5jLFxuICBta2RpclN5bmMsXG4gIG1rZHRlbXBTeW5jLFxuICByZWFkZGlyU3luYyxcbiAgcmVhZEZpbGVTeW5jLFxuICBybVN5bmMsXG4gIHN0YXRTeW5jLFxuICB3cml0ZUZpbGVTeW5jXG59IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG4vKiBlc2xpbnQtZW5hYmxlIGltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzIC0tIERlc2t0b3Atb25seSBmZWF0dXJlIGdhdGVkIGJ5IGBQbGF0Zm9ybS5pc0Rlc2t0b3BBcHBgOyB0aGUgY29tbWFuZCBpcyBoaWRkZW4gb24gbW9iaWxlIHNvIHRoZXNlIE5vZGUgQVBJcyBhcmUgbmV2ZXIgcmVhY2hlZCB0aGVyZS4gKi9cbmltcG9ydCB7IHJlcXVlc3RVcmwgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgUGx1Z2luTm90aWNlQ29tcG9uZW50LFxuICBQbHVnaW5Ob3RpY2VDb21wb25lbnREZWxheWVkTm90aWNlXG59IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5cbmltcG9ydCB7IGV4dHJhY3RaaXBBcmNoaXZlIH0gZnJvbSAnLi4vZGVza3RvcC16aXAtZXh0cmFjdG9yLnRzJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICcuLi9wYXRoLnRzJztcbmltcG9ydCB7XG4gIGdldENvbW11bml0eVBsdWdpblJlcG8sXG4gIGdldExhdGVzdFJlbGVhc2VWZXJzaW9uXG59IGZyb20gJy4vY29tbXVuaXR5LXBsdWdpbnMudHMnO1xuaW1wb3J0IHsgUGx1Z2luTm90aWNlTW9kZSB9IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5pbXBvcnQge1xuICBnZXREZW1vVmF1bHRBcmNoaXZlRmlsZU5hbWUsXG4gIGdldERlbW9WYXVsdEZvbGRlck5hbWVcbn0gZnJvbSAnLi9kZW1vLXZhdWx0LW5hbWluZy50cyc7XG5pbXBvcnQgeyBzZWxlY3RPcHRpb24gfSBmcm9tICcuL21vZGFscy9zZWxlY3Qtb3B0aW9uLnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgb3BlbkRlbW9WYXVsdH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkRlbW9WYXVsdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gaWQsIHVzZWQgdG8gbG9jYXRlIHRoZSBHaXRIdWIgcmVwb3NpdG9yeSwgdG8gbmFtZSB0aGUgYXJjaGl2ZSBhc3NldCwgYW5kIHRvIG5hbWUgdGhlXG4gICAqIGNhY2hlZCBhcmNoaXZlIGFuZCB0aGUgZXh0cmFjdGVkIHZhdWx0IGZvbGRlci5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gZGlzcGxheSBuYW1lLCB1c2VkIHRvIGxhYmVsIHRoZSBub3RpY2VzIGFuZCB0aGUgdmVyc2lvbi1jaG9pY2UgZGlhbG9nLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbm90aWNlIGNvbXBvbmVudCB1c2VkIHRvIHJlcG9ydCBwcm9ncmVzcyBhbmQgcHJvYmxlbXMgKHBsdWdpbiBub3QgaW4gdGhlIHJlZ2lzdHJ5LCBtaXNzaW5nXG4gICAqIGFyY2hpdmUpLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTm90aWNlQ29tcG9uZW50OiBQbHVnaW5Ob3RpY2VDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50bHkgaW5zdGFsbGVkIHBsdWdpbiB2ZXJzaW9uLCBvZmZlcmVkIGFzIG9uZSBvZiB0aGUgdmVyc2lvbiBjaG9pY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luVmVyc2lvbjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRXh0cmFjdERlbW9WYXVsdFRvRnJlc2hGb2xkZXJQYXJhbXMge1xuICByZWFkb25seSBhcmNoaXZlOiBCdWZmZXI7XG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFJlc29sdmVEZW1vVmF1bHRBcmNoaXZlUGFyYW1zIHtcbiAgcmVhZG9ubHkgcGx1Z2luSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwbHVnaW5Ob3RpY2VDb21wb25lbnQ6IFBsdWdpbk5vdGljZUNvbXBvbmVudDtcbiAgcmVhZG9ubHkgcHJvZ3Jlc3NOb3RpY2U6IFBsdWdpbk5vdGljZUNvbXBvbmVudERlbGF5ZWROb3RpY2U7XG4gIHJlYWRvbmx5IHJlcG86IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG5jb25zdCBERU1PX1ZBVUxUU19DQUNIRV9GT0xERVIgPSAnb2JzaWRpYW4tZGVtby12YXVsdHMnO1xuY29uc3QgQVJDSElWRVNfU1VCRk9MREVSID0gJ2FyY2hpdmVzJztcbmNvbnN0IEVYVFJBQ1RFRF9WQVVMVFNfU1VCRk9MREVSID0gJ2V4dHJhY3RlZCc7XG5jb25zdCBIVFRQX1NUQVRVU19PSyA9IDIwMDtcbi8vIE9uZSBkYXkgaW4gbWlsbGlzZWNvbmRzICgyNCAqIDYwICogNjAgKiAxMDAwKS5cbmNvbnN0IE9SUEhBTkVEX0VYVFJBQ1RFRF9WQVVMVF9NQVhfQUdFX0lOX01JTExJU0VDT05EUyA9IDg2XzQwMF8wMDA7XG5cbi8qKlxuICogRG93bmxvYWRzIGFuZCBvcGVucyB0aGUgcGx1Z2luJ3MgZGVtbyB2YXVsdCBpbiBhIG5ldyBPYnNpZGlhbiB3aW5kb3cuIERlc2t0b3Agb25seS5cbiAqXG4gKiBJZiB0aGUgaW5zdGFsbGVkIHBsdWdpbiB2ZXJzaW9uIGlzIHRoZSBsYXRlc3QgKG9yIG5ld2VyKSwgaXRzIGRlbW8gdmF1bHQgb3BlbnMgZGlyZWN0bHk7IG90aGVyd2lzZVxuICogdGhlIHVzZXIgY2hvb3NlcyBiZXR3ZWVuIHRoZSBsYXRlc3QgYW5kIHRoZSBjdXJyZW50bHktaW5zdGFsbGVkIHZlcnNpb24uIEEgcHJvZ3Jlc3Mgbm90aWNlIGlzIHNob3duXG4gKiBpbW1lZGlhdGVseS4gVGhlIGNob3NlbiB2ZXJzaW9uJ3MgYXJjaGl2ZSBpcyBkb3dubG9hZGVkIG9uY2UgKHRoZW4gcmV1c2VkIGZyb20gdGhlIGFyY2hpdmUgY2FjaGUpLFxuICogYnV0IGEgZnJlc2ggY29weSBpcyBleHRyYWN0ZWQgaW50byBpdHMgb3duIHRlbXBvcmFyeSBmb2xkZXIgb24gZXZlcnkgb3BlbiBcdTIwMTQgdGhlIHZhdWx0IGlzIG5ldmVyIHJldXNlZFxuICogYWNyb3NzIHNlc3Npb25zLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIE9wZW5EZW1vVmF1bHRQYXJhbXN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSB2YXVsdCBoYXMgYmVlbiBvcGVuZWQsIG9yIG9uY2UgdGhlIG9wZXJhdGlvbiBoYXNcbiAqIGJlZW4gcmVwb3J0ZWQgYXMgbm90IHBvc3NpYmxlIChub3RpY2Ugc2hvd24pIG9yIGNhbmNlbGxlZCBieSB0aGUgdXNlci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9wZW5EZW1vVmF1bHQocGFyYW1zOiBPcGVuRGVtb1ZhdWx0UGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgcGx1Z2luSWQsXG4gICAgcGx1Z2luTmFtZSxcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQsXG4gICAgcGx1Z2luVmVyc2lvblxuICB9ID0gcGFyYW1zO1xuXG4gIC8vIFNob3duIGltbWVkaWF0ZWx5IChgZGVsYXlJbk1pbGxpc2Vjb25kczogMGApOiByZXNvbHZpbmcgdGhlIHJlbGVhc2UsIGRvd25sb2FkaW5nIGFuZCBleHRyYWN0aW5nIGNhblxuICAvLyBFYWNoIHRha2UgYSB3aGlsZSwgc28gdGhlIHVzZXIgbXVzdCBzZWUgcHJvZ3Jlc3MgdGhlIG1vbWVudCB0aGUgY29tbWFuZCBpcyBpbnZva2VkLlxuICAvL1xuICAvLyBLZXB0IG91dCBvZiB0aGUgc2hhcmVkIHNsb3QgKGBTZXBhcmF0ZWApLCBiZWNhdXNlIHRoaXMgdmVyeSBmdW5jdGlvbiByYWlzZXMgb3JkaW5hcnkgbm90aWNlcyB3aGlsZVxuICAvLyBUaGUgb3BlcmF0aW9uIGlzIHN0aWxsIHJ1bm5pbmcgXHUyMDE0IFwibm90IGluIHRoZSByZWdpc3RyeVwiLCBcIm5vIGRlbW8gdmF1bHQgZm9yIHRoaXMgdmVyc2lvblwiIFx1MjAxNCBhbmQgYVxuICAvLyBTbG90IG5vdGljZSB3b3VsZCBoaWRlIHRoZSBwcm9ncmVzcyBub3RpY2UgcmF0aGVyIHRoYW4gYXBwZWFyIGJlc2lkZSBpdC5cbiAgdXNpbmcgcHJvZ3Jlc3NOb3RpY2UgPSBwbHVnaW5Ob3RpY2VDb21wb25lbnQuc2hvd05vdGljZUFmdGVyRGVsYXkoe1xuICAgIGNvbnRlbnQ6IGBPcGVuaW5nIGRlbW8gdmF1bHQgZm9yICR7cGx1Z2luTmFtZX1cdTIwMjZgLFxuICAgIGRlbGF5SW5NaWxsaXNlY29uZHM6IDAsXG4gICAgbW9kZTogUGx1Z2luTm90aWNlTW9kZS5TZXBhcmF0ZVxuICB9KTtcblxuICBjb25zdCByZXBvID0gYXdhaXQgZ2V0Q29tbXVuaXR5UGx1Z2luUmVwbyhwbHVnaW5JZCk7XG4gIGlmICghcmVwbykge1xuICAgIHBsdWdpbk5vdGljZUNvbXBvbmVudC5zaG93Tm90aWNlKGBDb3VsZCBub3QgZmluZCBwbHVnaW4gJHtwbHVnaW5OYW1lfSBpbiB0aGUgY29tbXVuaXR5IHBsdWdpbnMgcmVnaXN0cnkuYCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY3VycmVudFZlcnNpb24gPSBwbHVnaW5WZXJzaW9uO1xuICBjb25zdCBsYXRlc3RWZXJzaW9uID0gYXdhaXQgZ2V0TGF0ZXN0UmVsZWFzZVZlcnNpb24ocmVwbyk7XG5cbiAgbGV0IHZlcnNpb25Ub09wZW46IHN0cmluZztcbiAgaWYgKGNvbXBhcmVWZXJzaW9ucyhjdXJyZW50VmVyc2lvbiwgbGF0ZXN0VmVyc2lvbikgPj0gMCkge1xuICAgIHZlcnNpb25Ub09wZW4gPSBjdXJyZW50VmVyc2lvbjtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBjaG9zZW5WZXJzaW9uID0gYXdhaXQgc2VsZWN0T3B0aW9uPG51bGwgfCBzdHJpbmc+KHtcbiAgICAgIGFwcCxcbiAgICAgIG1lc3NhZ2U6IGBDdXJyZW50IHZlcnNpb24gb2YgcGx1Z2luICR7cGx1Z2luTmFtZX0gdiR7Y3VycmVudFZlcnNpb259IGlzIG5vdCB0aGUgbGF0ZXN0ICh2JHtsYXRlc3RWZXJzaW9ufSlgLFxuICAgICAgb3B0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgaXNDdGE6IHRydWUsXG4gICAgICAgICAgdGV4dDogYE9wZW4gZGVtbyB2YXVsdCBmb3IgbGF0ZXN0IHZlcnNpb24gKHYke2xhdGVzdFZlcnNpb259KWAsXG4gICAgICAgICAgdmFsdWU6IGxhdGVzdFZlcnNpb25cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6IGBPcGVuIGRlbW8gdmF1bHQgZm9yIGN1cnJlbnQgdmVyc2lvbiAodiR7Y3VycmVudFZlcnNpb259KWAsXG4gICAgICAgICAgdmFsdWU6IGN1cnJlbnRWZXJzaW9uXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiAnQ2FuY2VsJyxcbiAgICAgICAgICB2YWx1ZTogbnVsbFxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgdGl0bGU6IHBsdWdpbk5hbWVcbiAgICB9KTtcbiAgICBpZiAoY2hvc2VuVmVyc2lvbiA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2ZXJzaW9uVG9PcGVuID0gY2hvc2VuVmVyc2lvbjtcbiAgfVxuXG4gIGNvbnN0IGFyY2hpdmUgPSBhd2FpdCByZXNvbHZlRGVtb1ZhdWx0QXJjaGl2ZSh7XG4gICAgcGx1Z2luSWQsXG4gICAgcGx1Z2luTmFtZSxcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQsXG4gICAgcHJvZ3Jlc3NOb3RpY2UsXG4gICAgcmVwbyxcbiAgICB2ZXJzaW9uOiB2ZXJzaW9uVG9PcGVuXG4gIH0pO1xuICBpZiAoIWFyY2hpdmUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBwcm9ncmVzc05vdGljZS5zZXRDb250ZW50KGBFeHRyYWN0aW5nIGRlbW8gdmF1bHQgZm9yICR7cGx1Z2luTmFtZX0gdiR7dmVyc2lvblRvT3Blbn1cdTIwMjZgKTtcbiAgY2xlYW51cE9ycGhhbmVkRXh0cmFjdGVkVmF1bHRzKCk7XG4gIGNvbnN0IHZhdWx0RGlyZWN0b3J5ID0gZXh0cmFjdERlbW9WYXVsdFRvRnJlc2hGb2xkZXIoe1xuICAgIGFyY2hpdmUsXG4gICAgcGx1Z2luSWQsXG4gICAgdmVyc2lvbjogdmVyc2lvblRvT3BlblxuICB9KTtcblxuICB3aW5kb3cuZWxlY3Ryb24uaXBjUmVuZGVyZXIuc2VuZFN5bmMoJ3ZhdWx0LW9wZW4nLCB2YXVsdERpcmVjdG9yeSwgZmFsc2UpO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgZXh0cmFjdGVkIGRlbW8tdmF1bHQgZm9sZGVycyBsZWZ0IG92ZXIgZnJvbSBlYXJsaWVyIHNlc3Npb25zIChiZXN0LWVmZm9ydCkuXG4gKlxuICogRXZlcnkgb3BlbiBleHRyYWN0cyBhIGZyZXNoIGNvcHkgaW50byBpdHMgb3duIGZvbGRlciBhbmQgbmV2ZXIgZGVsZXRlcyBpdCBhZnRlcndhcmRzICh0aGUgdmF1bHQgc3RheXNcbiAqIG9wZW4gaW4gaXRzIHdpbmRvdyksIHNvIHRoZXNlIGFjY3VtdWxhdGUuIFRoaXMgZHJvcHMgZm9sZGVycyBvbGRlciB0aGFuXG4gKiB7QGxpbmsgT1JQSEFORURfRVhUUkFDVEVEX1ZBVUxUX01BWF9BR0VfSU5fTUlMTElTRUNPTkRTfS4gQSBmb2xkZXIgd2hvc2UgdmF1bHQgaXMgc3RpbGwgb3BlbiBpbiBhbm90aGVyXG4gKiB3aW5kb3cgaXMgbG9ja2VkIG9uIFdpbmRvd3MgYW5kIGNhbm5vdCBiZSByZW1vdmVkIFx1MjAxNCB0aGUgcmVtb3ZhbCBpcyB3cmFwcGVkIHNvIHN1Y2ggYSBmb2xkZXIgaXMgc2ltcGx5XG4gKiBza2lwcGVkIGFuZCByZXRyaWVkIG9uIGEgbGF0ZXIgb3Blbi5cbiAqL1xuZnVuY3Rpb24gY2xlYW51cE9ycGhhbmVkRXh0cmFjdGVkVmF1bHRzKCk6IHZvaWQge1xuICBjb25zdCBleHRyYWN0ZWRWYXVsdHNSb290ID0gam9pbih0bXBkaXIoKSwgREVNT19WQVVMVFNfQ0FDSEVfRk9MREVSLCBFWFRSQUNURURfVkFVTFRTX1NVQkZPTERFUik7XG4gIGlmICghZXhpc3RzU3luYyhleHRyYWN0ZWRWYXVsdHNSb290KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gIGZvciAoY29uc3QgZW50cnlOYW1lIG9mIHJlYWRkaXJTeW5jKGV4dHJhY3RlZFZhdWx0c1Jvb3QpKSB7XG4gICAgY29uc3QgZW50cnlQYXRoID0gam9pbihleHRyYWN0ZWRWYXVsdHNSb290LCBlbnRyeU5hbWUpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGF0cyA9IHN0YXRTeW5jKGVudHJ5UGF0aCk7XG4gICAgICBpZiAobm93IC0gc3RhdHMubXRpbWVNcyA8IE9SUEhBTkVEX0VYVFJBQ1RFRF9WQVVMVF9NQVhfQUdFX0lOX01JTExJU0VDT05EUykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHJtU3luYyhlbnRyeVBhdGgsIHsgZm9yY2U6IHRydWUsIHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIEJlc3QtZWZmb3J0IGNsZWFudXA6IGFuIG9ycGhhbiB3aG9zZSB2YXVsdCBpcyBzdGlsbCBvcGVuIChsb2NrZWQgb24gV2luZG93cykgY2Fubm90IGJlIHJlbW92ZWQ7IHNraXAgaXQgYW5kIHJldHJ5IG9uIGEgbGF0ZXIgb3Blbi5cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBFeHRyYWN0cyBhIGRvd25sb2FkZWQgZGVtby12YXVsdCBhcmNoaXZlIHRvIGRpc2suXG4gKlxuICogRXh0cmFjdGlvbiBpcyB3cml0dGVuIHdpdGggRWxlY3Ryb24ncyBgb3JpZ2luYWwtZnNgIFx1MjAxNCB0aGUgcmVhbCBgZnNgIHdpdGggYXNhciBpbnRlcmNlcHRpb24gZGlzYWJsZWQgXHUyMDE0XG4gKiByYXRoZXIgdGhhbiB3aXRoIGBub2RlOmZzYC4gQSBkZW1vIHZhdWx0IG1heSBzaGlwIGEgZmlsZSB0aGF0IG1lcmVseSBMT09LUyBsaWtlIGFuIEVsZWN0cm9uIGFyY2hpdmVcbiAqIChlLmcuIGBfYXNzZXRzL0NvZGVTY3JpcHRUb29sa2l0L21vZHVsZS5hc2FyYCBkZW1vbnN0cmF0aW5nIHRoZSBBU0FSIHJlcXVpcmUgZmVhdHVyZSksIGFuZCBFbGVjdHJvbidzXG4gKiBhc2FyIGxheWVyIGludGVyY2VwdHMgYGZzYCBvcGVyYXRpb25zIG9uIGFueSBwYXRoIGNvbnRhaW5pbmcgYC5hc2FyYCwgdHJlYXRpbmcgaXQgYXMgYW4gYXJjaGl2ZSByb290XG4gKiByYXRoZXIgdGhhbiBhIHBsYWluIGZpbGUuIFRoYXQgYWxyZWFkeSBjb3N0IG9uZSBwcm9kdWN0aW9uIGJ1ZyB3aGVuIHRoZSBleHRyYWN0b3IgYGNobW9kYC1lZCBzdWNoIGFcbiAqIGZpbGUgYW5kIGdvdCBgRU5PRU5UYDsgbm90aGluZyBgY2htb2RgcyBhbnkgbW9yZSwgYnV0IHdyaXRpbmcgdGhvc2UgYnl0ZXMgdGhyb3VnaCB0aGUgY29weSB0aGF0IGhhcyBub1xuICogYXNhciBsYXllciBjb3N0cyBub3RoaW5nIGFuZCBrZWVwcyB0aGUgd2hvbGUgY2xhc3Mgb2YgZmFpbHVyZSBvZmYgdGhpcyBwYXRoLiBgb3JpZ2luYWwtZnNgIGlzIGEgZGVza3RvcC1vbmx5XG4gKiBFbGVjdHJvbiBtb2R1bGUgd2l0aCBubyBidW5kbGVkIHR5cGVzLCBzbyBpdCBpcyBsb2FkZWQgdmlhIGB3aW5kb3cucmVxdWlyZWAgYW5kIHR5cGVkIGFzIGBub2RlOmZzYCdzXG4gKiBzaGFwZS5cbiAqXG4gKiBAcGFyYW0gYXJjaGl2ZSAtIFRoZSByYXcgemlwIGFyY2hpdmUgYnl0ZXMuXG4gKiBAcGFyYW0gdGFyZ2V0RGlyZWN0b3J5IC0gVGhlIGRpcmVjdG9yeSB0byBleHRyYWN0IGludG8uXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3REZW1vVmF1bHRBcmNoaXZlKGFyY2hpdmU6IEJ1ZmZlciwgdGFyZ2V0RGlyZWN0b3J5OiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3Qgb3JpZ2luYWxGcyA9IHdpbmRvdy5yZXF1aXJlKCdub2RlOm9yaWdpbmFsLWZzJykgYXMgdHlwZW9mIGltcG9ydCgnbm9kZTpmcycpO1xuICBleHRyYWN0WmlwQXJjaGl2ZSh7XG4gICAgYXJjaGl2ZSxcbiAgICBmaWxlU3lzdGVtOiBvcmlnaW5hbEZzLFxuICAgIHRhcmdldERpcmVjdG9yeVxuICB9KTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgYXJjaGl2ZSBpbnRvIGEgZnJlc2gsIHVuaXF1ZWx5LW5hbWVkIHRlbXBvcmFyeSBmb2xkZXIgYW5kIHJldHVybnMgdGhlIHZhdWx0IHBhdGguXG4gKlxuICogQSB1bmlxdWUgcGFyZW50IGZvbGRlciAoYG1rZHRlbXBTeW5jYCkgZ3VhcmFudGVlcyBhIGJyYW5kLW5ldyBleHRyYWN0aW9uIGV2ZXJ5IHRpbWUgXHUyMDE0IHRoZSBkZW1vIHZhdWx0XG4gKiBpcyBuZXZlciByZXVzZWQgYWNyb3NzIG9wZW5zLCBzbyBhIHByZXZpb3VzIHNlc3Npb24ncyBlZGl0cyBuZXZlciBsZWFrIGluLiBUaGUgYXJjaGl2ZSBpcyBleHRyYWN0ZWRcbiAqIGludG8gdGhhdCBwYXJlbnQgYW5kIHRoZSB2YXVsdCBpcyB0aGUgc2luZ2xlIGA8cGx1Z2luLWlkPi1kZW1vLXZhdWx0LTx2ZXJzaW9uPmAgZm9sZGVyIGl0IGNvbnRhaW5zLCBzb1xuICogT2JzaWRpYW4ncyB2YXVsdCBzd2l0Y2hlciBzaG93cyBhIGZyaWVuZGx5IG5hbWUgKGl0cyBiYXNlbmFtZSkgcmF0aGVyIHRoYW4gdGhlIHJhbmRvbSB0ZW1wIGlkLlxuICpcbiAqIFRoYXQgZm9sZGVyIGlzIG5vdCBzZWFyY2hlZCBmb3I6IHtAbGluayBnZXREZW1vVmF1bHRGb2xkZXJOYW1lfSBuYW1lcyBpdCBvbiBib3RoIHNpZGVzLCBzbyB0aGUgcGF0aCBpc1xuICoga25vd24gYmVmb3JlIGEgYnl0ZSBpcyB3cml0dGVuLiBXaGljaCBrZWVwcyB0aGUgZXh0cmFjdG9yIGZyZWUgb2YgYW55IHJlYWQgXHUyMDE0IGRlbGliZXJhdGUsIGJlY2F1c2VcbiAqIEVsZWN0cm9uJ3MgYXNhciBsYXllciBpbnRlcmNlcHRzIGBmc2AgcmVhZHMgb24gYW55IHBhdGggY29udGFpbmluZyBgLmFzYXJgLCBhbmQgYSBkZW1vIHZhdWx0IG1heVxuICogbGVnaXRpbWF0ZWx5IHNoaXAgc3VjaCBhIGZpbGUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgRXh0cmFjdERlbW9WYXVsdFRvRnJlc2hGb2xkZXJQYXJhbXN9LlxuICogQHJldHVybnMgVGhlIGFic29sdXRlIHBhdGggb2YgdGhlIGZyZXNobHkgZXh0cmFjdGVkIHZhdWx0IGZvbGRlci5cbiAqL1xuZnVuY3Rpb24gZXh0cmFjdERlbW9WYXVsdFRvRnJlc2hGb2xkZXIocGFyYW1zOiBFeHRyYWN0RGVtb1ZhdWx0VG9GcmVzaEZvbGRlclBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHsgYXJjaGl2ZSwgcGx1Z2luSWQsIHZlcnNpb24gfSA9IHBhcmFtcztcbiAgY29uc3QgZXh0cmFjdGVkVmF1bHRzUm9vdCA9IGpvaW4odG1wZGlyKCksIERFTU9fVkFVTFRTX0NBQ0hFX0ZPTERFUiwgRVhUUkFDVEVEX1ZBVUxUU19TVUJGT0xERVIpO1xuICBta2RpclN5bmMoZXh0cmFjdGVkVmF1bHRzUm9vdCwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIGNvbnN0IHVuaXF1ZVBhcmVudERpcmVjdG9yeSA9IG1rZHRlbXBTeW5jKGpvaW4oZXh0cmFjdGVkVmF1bHRzUm9vdCwgYCR7cGx1Z2luSWR9LSR7dmVyc2lvbn0tYCkpO1xuICBleHRyYWN0RGVtb1ZhdWx0QXJjaGl2ZShhcmNoaXZlLCB1bmlxdWVQYXJlbnREaXJlY3RvcnkpO1xuICByZXR1cm4gam9pbihcbiAgICB1bmlxdWVQYXJlbnREaXJlY3RvcnksXG4gICAgZ2V0RGVtb1ZhdWx0Rm9sZGVyTmFtZSh7XG4gICAgICBwbHVnaW5JZCxcbiAgICAgIHZlcnNpb25cbiAgICB9KVxuICApO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBkZW1vLXZhdWx0IGFyY2hpdmUgYnl0ZXMgZm9yIGEgdmVyc2lvbiwgZG93bmxvYWRpbmcgYW5kIGNhY2hpbmcgdGhlbSBvbiBmaXJzdCB1c2UuXG4gKlxuICogT25seSB0aGUgYXJjaGl2ZSBpcyBjYWNoZWQgKGtleWVkIGJ5IHBsdWdpbiBpZCArIHZlcnNpb24pOyB0aGUgZXh0cmFjdGVkIHZhdWx0IGlzIG5vdC4gQSBjYWNoZSBoaXQgaXNcbiAqIHJldHVybmVkIHdpdGhvdXQgYW55IG5ldHdvcmsgcmVxdWVzdDsgYSBtaXNzIGRvd25sb2FkcyB0aGUgcmVsZWFzZSBhc3NldCwgd3JpdGVzIGl0IHRvIHRoZSBhcmNoaXZlXG4gKiBjYWNoZSwgYW5kIHJldHVybnMgdGhlIGZyZXNobHkgZG93bmxvYWRlZCBieXRlcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBSZXNvbHZlRGVtb1ZhdWx0QXJjaGl2ZVBhcmFtc30uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSByZXNvbHZpbmcgdG8gdGhlIGFyY2hpdmUgYnl0ZXMsIG9yIGBudWxsYCB3aGVuIG5vIGFyY2hpdmUgaXMgYXZhaWxhYmxlIGZvclxuICogdGhlIHZlcnNpb24gKGEgbm90aWNlIGhhcyBiZWVuIHNob3duKS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZURlbW9WYXVsdEFyY2hpdmUocGFyYW1zOiBSZXNvbHZlRGVtb1ZhdWx0QXJjaGl2ZVBhcmFtcyk6IFByb21pc2U8QnVmZmVyIHwgbnVsbD4ge1xuICBjb25zdCB7XG4gICAgcGx1Z2luSWQsXG4gICAgcGx1Z2luTmFtZSxcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQsXG4gICAgcHJvZ3Jlc3NOb3RpY2UsXG4gICAgcmVwbyxcbiAgICB2ZXJzaW9uXG4gIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgYXJjaGl2ZXNEaXJlY3RvcnkgPSBqb2luKHRtcGRpcigpLCBERU1PX1ZBVUxUU19DQUNIRV9GT0xERVIsIEFSQ0hJVkVTX1NVQkZPTERFUik7XG4gIGNvbnN0IGFyY2hpdmVQYXRoID0gam9pbihhcmNoaXZlc0RpcmVjdG9yeSwgYCR7cGx1Z2luSWR9LSR7dmVyc2lvbn0uemlwYCk7XG4gIGlmIChleGlzdHNTeW5jKGFyY2hpdmVQYXRoKSkge1xuICAgIHJldHVybiByZWFkRmlsZVN5bmMoYXJjaGl2ZVBhdGgpO1xuICB9XG5cbiAgcHJvZ3Jlc3NOb3RpY2Uuc2V0Q29udGVudChgRG93bmxvYWRpbmcgZGVtbyB2YXVsdCBmb3IgJHtwbHVnaW5OYW1lfSB2JHt2ZXJzaW9ufVx1MjAyNmApO1xuICBjb25zdCBhc3NldFVybCA9IGBodHRwczovL2dpdGh1Yi5jb20vJHtyZXBvfS9yZWxlYXNlcy9kb3dubG9hZC8ke3ZlcnNpb259LyR7Z2V0RGVtb1ZhdWx0QXJjaGl2ZUZpbGVOYW1lKHBsdWdpbklkKX1gO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcXVlc3RVcmwoe1xuICAgIHRocm93OiBmYWxzZSxcbiAgICB1cmw6IGFzc2V0VXJsXG4gIH0pO1xuICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSBIVFRQX1NUQVRVU19PSykge1xuICAgIHBsdWdpbk5vdGljZUNvbXBvbmVudC5zaG93Tm90aWNlKGBObyBkZW1vIHZhdWx0IGlzIGF2YWlsYWJsZSBmb3IgcGx1Z2luICR7cGx1Z2luTmFtZX0gdiR7dmVyc2lvbn0uYCk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBhcmNoaXZlID0gQnVmZmVyLmZyb20ocmVzcG9uc2UuYXJyYXlCdWZmZXIpO1xuICBta2RpclN5bmMoYXJjaGl2ZXNEaXJlY3RvcnksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICB3cml0ZUZpbGVTeW5jKGFyY2hpdmVQYXRoLCBhcmNoaXZlKTtcbiAgcmV0dXJuIGFyY2hpdmU7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQW1DQSw4QkFBZ0M7QUFFaEMseUJBQXVCO0FBQ3ZCLHFCQVNPO0FBQ1AscUJBQXVCO0FBRXZCLHNCQUEyQjtBQU8zQixtQ0FBa0M7QUFDbEMsa0JBQXFCO0FBQ3JCLCtCQUdPO0FBQ1AscUNBQWlDO0FBQ2pDLCtCQUdPO0FBQ1AsMkJBQTZCO0FBaUQ3QixNQUFNLDJCQUEyQjtBQUNqQyxNQUFNLHFCQUFxQjtBQUMzQixNQUFNLDZCQUE2QjtBQUNuQyxNQUFNLGlCQUFpQjtBQUV2QixNQUFNLG1EQUFtRDtBQWV6RCxlQUFzQixjQUFjLFFBQTRDO0FBZTlFO0FBQUE7QUFkQSxVQUFNO0FBQUEsTUFDSjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGLElBQUk7QUFRSixVQUFNLGlCQUFpQixzQ0FBc0IscUJBQXFCO0FBQUEsTUFDaEUsU0FBUywwQkFBMEIs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
|
|
358
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBEb3dubG9hZHMgYW5kIG9wZW5zIGEgcGx1Z2luJ3Mgc2hpcHBlZCBkZW1vIHZhdWx0IGluIGEgbmV3IE9ic2lkaWFuIHdpbmRvdyAoZGVza3RvcCBvbmx5KS5cbiAqXG4gKiBBIHBsdWdpbiBjYW4gYXR0YWNoIGEgYDxwbHVnaW4taWQ+LWRlbW8tdmF1bHQuemlwYCBhcmNoaXZlIHRvIGVhY2ggR2l0SHViIHJlbGVhc2UgKHNlZVxuICogYGFyY2hpdmVQbHVnaW5EZW1vVmF1bHRgIGluIGBzY3JpcHQtdXRpbHMvZGVtby12YXVsdC50c2A7IGV2ZXJ5IG5hbWUgc2hhcmVkIHdpdGggaXQgY29tZXMgZnJvbVxuICogYGRlbW8tdmF1bHQtbmFtaW5nLnRzYCkuIFRoaXMgcmVzb2x2ZXMgdGhlIHBsdWdpbidzIHJlcG9zaXRvcnkgZnJvbSBPYnNpZGlhbidzIGNvbW11bml0eSByZWdpc3RyeSxcbiAqIGRvd25sb2FkcyB0aGUgYXJjaGl2ZSBmb3IgdGhlIGNob3NlbiB2ZXJzaW9uLCBhbmQgb3BlbnMgaXQgYXMgYSB2YXVsdCBpbiBhIG5ldyB3aW5kb3cuIFdoZW4gdGhlXG4gKiBpbnN0YWxsZWQgcGx1Z2luIHZlcnNpb24gaXMgYmVoaW5kIHRoZSBsYXRlc3QgcmVsZWFzZSwgdGhlIHVzZXIgaXMgb2ZmZXJlZCBhIGNob2ljZSBiZXR3ZWVuIHRoZSB0d29cbiAqIHZlcnNpb25zLlxuICpcbiAqIEEgcHJvZ3Jlc3Mgbm90aWNlIGlzIHNob3duIGltbWVkaWF0ZWx5IChkb3dubG9hZCArIGV4dHJhY3Rpb24gY2FuIHRha2UgYSB3aGlsZSwgc28gdGhlIHVzZXIgbXVzdCBzZWVcbiAqIHNvbWV0aGluZyBpcyBoYXBwZW5pbmcgcmlnaHQgYXdheSkuIE9ubHkgdGhlIGRvd25sb2FkZWQgQVJDSElWRSBpcyBjYWNoZWQgKHVuZGVyIHRoZSBPUyB0ZW1wXG4gKiBkaXJlY3RvcnkpOyBldmVyeSBpbnZvY2F0aW9uIGV4dHJhY3RzIGEgRlJFU0ggY29weSBpbnRvIGl0cyBvd24gdGVtcG9yYXJ5IGZvbGRlciBhbmQgb3BlbnMgdGhhdCwgc28gYVxuICogcHJldmlvdXMgc2Vzc2lvbidzIGVkaXRzIG5ldmVyIGxlYWsgaW50byBhIG5ldyBvbmUuIFRoZSB2YXVsdCBmb2xkZXIgaXMgdGhlIGFyY2hpdmUncyBvd24gc2luZ2xlXG4gKiB0b3AtbGV2ZWwgZm9sZGVyLCBgPHBsdWdpbi1pZD4tZGVtby12YXVsdC08dmVyc2lvbj5gLCB3aGljaCByZWFkcyBuaWNlbHkgaW4gT2JzaWRpYW4ncyB2YXVsdCBzd2l0Y2hlclxuICogYW5kIGlzIHRoZSBzYW1lIG5hbWUgYSBoYW5kLXVuemlwcGVkIGFyY2hpdmUgcHJvZHVjZXMuIE9ycGhhbmVkIGV4dHJhY3RlZCBmb2xkZXJzIGxlZnQgb3ZlciBmcm9tXG4gKiBlYXJsaWVyIHNlc3Npb25zIGFyZSBjbGVhbmVkIHVwIChiZXN0LWVmZm9ydCkgb24gZWFjaCBvcGVuLlxuICpcbiAqICoqTm90aGluZyBoZXJlIG1heSB0b3VjaCBhIHBsYXRmb3JtLW9ubHkgQVBJIHdoaWxlIHRoZSBtb2R1bGUgSU5JVElBTElaRVMuKiogVGhlIGBub2RlOmAgaW1wb3J0cyBiZWxvd1xuICogYXJlIHNhZmUgdG8gbWVyZWx5IGV2YWx1YXRlIG9uIG1vYmlsZSBcdTIwMTQgYHJlcXVpcmVgIGhhbmRzIGJhY2sgYHVuZGVmaW5lZGAgdGhlcmUgYW5kIG5vdGhpbmcgcmVhZHMgaXQgYXRcbiAqIGxvYWQgdGltZSBcdTIwMTQgYW5kIGJlY2F1c2UgdGhlIGdlbmVyYXRlZCBiYXJyZWxzIHJlLWV4cG9ydCB0aGlzIG1vZHVsZSwgdGhhdCBpcyBhIGxvYWQtYmVhcmluZyBwcm9wZXJ0eSBvZlxuICogdGhlIHdob2xlIGxpYnJhcnkgcmF0aGVyIHRoYW4gYSBkZXRhaWwgb2YgdGhpcyBmaWxlLiBJdCB3YXMgbGVhcm5lZCB0aGUgaGFyZCB3YXk6IHRoaXMgbW9kdWxlIG9uY2VcbiAqIGltcG9ydGVkIGBhZG0temlwYCwgd2hvc2UgemlwLWNyeXB0byBtZXRob2Qgb3BlbnMgd2l0aCBhIHRvcC1sZXZlbFxuICogYGNvbnN0IHsgcmFuZG9tRmlsbFN5bmMgfSA9IHJlcXVpcmUoJ2NyeXB0bycpYCwgYW5kIGEgc3RhdGljIGBpbXBvcnQgQWRtWmlwIGZyb20gJ2FkbS16aXAnYCB0aGVyZWZvcmVcbiAqIGtpbGxlZCB0aGUgbGlicmFyeSdzIGxvYWQgb24gQW5kcm9pZCAoc2VlIHRoZSBtb2JpbGUtbG9hZCBjaGVjayBpblxuICogYHNjcmlwdHMvaGVscGVycy9hc3NlcnQtbW9iaWxlLWxvYWRhYmxlLWJ1bmRsZS50c2AsIHdoaWNoIGZhaWxzIHRoZSBidWlsZCBvbiBleGFjdGx5IHRoYXQpLiBFeHRyYWN0aW9uXG4gKiBub3cgZ29lcyB0aHJvdWdoIGBkZXNrdG9wLXppcC1leHRyYWN0b3IudHNgLCB3aGljaCBuZWVkcyBubyBkZXBlbmRlbmN5IGF0IGFsbCBcdTIwMTQgYnV0IGFueSBmdXR1cmVcbiAqIGRlcGVuZGVuY3kgdGhhdCBpbml0aWFsaXplcyBhZ2FpbnN0IGEgcGxhdGZvcm0tb25seSBBUEkgc3RpbGwgaGFzIHRvIGJlIGRlZmVycmVkIGJlaGluZCBhIGNhbGwtdGltZVxuICogYGltcG9ydCgpYC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSAnY29tcGFyZS12ZXJzaW9ucyc7XG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdub2RlOmJ1ZmZlcic7XG5pbXBvcnQge1xuICBleGlzdHNTeW5jLFxuICBta2RpclN5bmMsXG4gIG1rZHRlbXBTeW5jLFxuICByZWFkZGlyU3luYyxcbiAgcmVhZEZpbGVTeW5jLFxuICBybVN5bmMsXG4gIHN0YXRTeW5jLFxuICB3cml0ZUZpbGVTeW5jXG59IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgeyByZXF1ZXN0VXJsIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7XG4gIFBsdWdpbk5vdGljZUNvbXBvbmVudCxcbiAgUGx1Z2luTm90aWNlQ29tcG9uZW50RGVsYXllZE5vdGljZVxufSBmcm9tICcuL2NvbXBvbmVudHMvcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgeyBleHRyYWN0WmlwQXJjaGl2ZSB9IGZyb20gJy4uL2Rlc2t0b3AtemlwLWV4dHJhY3Rvci50cyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnLi4vcGF0aC50cyc7XG5pbXBvcnQge1xuICBnZXRDb21tdW5pdHlQbHVnaW5SZXBvLFxuICBnZXRMYXRlc3RSZWxlYXNlVmVyc2lvblxufSBmcm9tICcuL2NvbW11bml0eS1wbHVnaW5zLnRzJztcbmltcG9ydCB7IFBsdWdpbk5vdGljZU1vZGUgfSBmcm9tICcuL2NvbXBvbmVudHMvcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuaW1wb3J0IHtcbiAgZ2V0RGVtb1ZhdWx0QXJjaGl2ZUZpbGVOYW1lLFxuICBnZXREZW1vVmF1bHRGb2xkZXJOYW1lXG59IGZyb20gJy4vZGVtby12YXVsdC1uYW1pbmcudHMnO1xuaW1wb3J0IHsgc2VsZWN0T3B0aW9uIH0gZnJvbSAnLi9tb2RhbHMvc2VsZWN0LW9wdGlvbi50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIG9wZW5EZW1vVmF1bHR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5EZW1vVmF1bHRQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luIGlkLCB1c2VkIHRvIGxvY2F0ZSB0aGUgR2l0SHViIHJlcG9zaXRvcnksIHRvIG5hbWUgdGhlIGFyY2hpdmUgYXNzZXQsIGFuZCB0byBuYW1lIHRoZVxuICAgKiBjYWNoZWQgYXJjaGl2ZSBhbmQgdGhlIGV4dHJhY3RlZCB2YXVsdCBmb2xkZXIuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luIGRpc3BsYXkgbmFtZSwgdXNlZCB0byBsYWJlbCB0aGUgbm90aWNlcyBhbmQgdGhlIHZlcnNpb24tY2hvaWNlIGRpYWxvZy5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5vdGljZSBjb21wb25lbnQgdXNlZCB0byByZXBvcnQgcHJvZ3Jlc3MgYW5kIHByb2JsZW1zIChwbHVnaW4gbm90IGluIHRoZSByZWdpc3RyeSwgbWlzc2luZ1xuICAgKiBhcmNoaXZlKS5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5vdGljZUNvbXBvbmVudDogUGx1Z2luTm90aWNlQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IGluc3RhbGxlZCBwbHVnaW4gdmVyc2lvbiwgb2ZmZXJlZCBhcyBvbmUgb2YgdGhlIHZlcnNpb24gY2hvaWNlcy5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpblZlcnNpb246IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEV4dHJhY3REZW1vVmF1bHRUb0ZyZXNoRm9sZGVyUGFyYW1zIHtcbiAgcmVhZG9ubHkgYXJjaGl2ZTogQnVmZmVyO1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBSZXNvbHZlRGVtb1ZhdWx0QXJjaGl2ZVBhcmFtcyB7XG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcGx1Z2luTm90aWNlQ29tcG9uZW50OiBQbHVnaW5Ob3RpY2VDb21wb25lbnQ7XG4gIHJlYWRvbmx5IHByb2dyZXNzTm90aWNlOiBQbHVnaW5Ob3RpY2VDb21wb25lbnREZWxheWVkTm90aWNlO1xuICByZWFkb25seSByZXBvOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuY29uc3QgREVNT19WQVVMVFNfQ0FDSEVfRk9MREVSID0gJ29ic2lkaWFuLWRlbW8tdmF1bHRzJztcbmNvbnN0IEFSQ0hJVkVTX1NVQkZPTERFUiA9ICdhcmNoaXZlcyc7XG5jb25zdCBFWFRSQUNURURfVkFVTFRTX1NVQkZPTERFUiA9ICdleHRyYWN0ZWQnO1xuY29uc3QgSFRUUF9TVEFUVVNfT0sgPSAyMDA7XG4vLyBPbmUgZGF5IGluIG1pbGxpc2Vjb25kcyAoMjQgKiA2MCAqIDYwICogMTAwMCkuXG5jb25zdCBPUlBIQU5FRF9FWFRSQUNURURfVkFVTFRfTUFYX0FHRV9JTl9NSUxMSVNFQ09ORFMgPSA4Nl80MDBfMDAwO1xuXG4vKipcbiAqIERvd25sb2FkcyBhbmQgb3BlbnMgdGhlIHBsdWdpbidzIGRlbW8gdmF1bHQgaW4gYSBuZXcgT2JzaWRpYW4gd2luZG93LiBEZXNrdG9wIG9ubHkuXG4gKlxuICogSWYgdGhlIGluc3RhbGxlZCBwbHVnaW4gdmVyc2lvbiBpcyB0aGUgbGF0ZXN0IChvciBuZXdlciksIGl0cyBkZW1vIHZhdWx0IG9wZW5zIGRpcmVjdGx5OyBvdGhlcndpc2VcbiAqIHRoZSB1c2VyIGNob29zZXMgYmV0d2VlbiB0aGUgbGF0ZXN0IGFuZCB0aGUgY3VycmVudGx5LWluc3RhbGxlZCB2ZXJzaW9uLiBBIHByb2dyZXNzIG5vdGljZSBpcyBzaG93blxuICogaW1tZWRpYXRlbHkuIFRoZSBjaG9zZW4gdmVyc2lvbidzIGFyY2hpdmUgaXMgZG93bmxvYWRlZCBvbmNlICh0aGVuIHJldXNlZCBmcm9tIHRoZSBhcmNoaXZlIGNhY2hlKSxcbiAqIGJ1dCBhIGZyZXNoIGNvcHkgaXMgZXh0cmFjdGVkIGludG8gaXRzIG93biB0ZW1wb3JhcnkgZm9sZGVyIG9uIGV2ZXJ5IG9wZW4gXHUyMDE0IHRoZSB2YXVsdCBpcyBuZXZlciByZXVzZWRcbiAqIGFjcm9zcyBzZXNzaW9ucy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBPcGVuRGVtb1ZhdWx0UGFyYW1zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUgdmF1bHQgaGFzIGJlZW4gb3BlbmVkLCBvciBvbmNlIHRoZSBvcGVyYXRpb24gaGFzXG4gKiBiZWVuIHJlcG9ydGVkIGFzIG5vdCBwb3NzaWJsZSAobm90aWNlIHNob3duKSBvciBjYW5jZWxsZWQgYnkgdGhlIHVzZXIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvcGVuRGVtb1ZhdWx0KHBhcmFtczogT3BlbkRlbW9WYXVsdFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIHBsdWdpbklkLFxuICAgIHBsdWdpbk5hbWUsXG4gICAgcGx1Z2luTm90aWNlQ29tcG9uZW50LFxuICAgIHBsdWdpblZlcnNpb25cbiAgfSA9IHBhcmFtcztcblxuICAvLyBTaG93biBpbW1lZGlhdGVseSAoYGRlbGF5SW5NaWxsaXNlY29uZHM6IDBgKTogcmVzb2x2aW5nIHRoZSByZWxlYXNlLCBkb3dubG9hZGluZyBhbmQgZXh0cmFjdGluZyBjYW5cbiAgLy8gRWFjaCB0YWtlIGEgd2hpbGUsIHNvIHRoZSB1c2VyIG11c3Qgc2VlIHByb2dyZXNzIHRoZSBtb21lbnQgdGhlIGNvbW1hbmQgaXMgaW52b2tlZC5cbiAgLy9cbiAgLy8gS2VwdCBvdXQgb2YgdGhlIHNoYXJlZCBzbG90IChgU2VwYXJhdGVgKSwgYmVjYXVzZSB0aGlzIHZlcnkgZnVuY3Rpb24gcmFpc2VzIG9yZGluYXJ5IG5vdGljZXMgd2hpbGVcbiAgLy8gVGhlIG9wZXJhdGlvbiBpcyBzdGlsbCBydW5uaW5nIFx1MjAxNCBcIm5vdCBpbiB0aGUgcmVnaXN0cnlcIiwgXCJubyBkZW1vIHZhdWx0IGZvciB0aGlzIHZlcnNpb25cIiBcdTIwMTQgYW5kIGFcbiAgLy8gU2xvdCBub3RpY2Ugd291bGQgaGlkZSB0aGUgcHJvZ3Jlc3Mgbm90aWNlIHJhdGhlciB0aGFuIGFwcGVhciBiZXNpZGUgaXQuXG4gIHVzaW5nIHByb2dyZXNzTm90aWNlID0gcGx1Z2luTm90aWNlQ29tcG9uZW50LnNob3dOb3RpY2VBZnRlckRlbGF5KHtcbiAgICBjb250ZW50OiBgT3BlbmluZyBkZW1vIHZhdWx0IGZvciAke3BsdWdpbk5hbWV9XHUyMDI2YCxcbiAgICBkZWxheUluTWlsbGlzZWNvbmRzOiAwLFxuICAgIG1vZGU6IFBsdWdpbk5vdGljZU1vZGUuU2VwYXJhdGVcbiAgfSk7XG5cbiAgY29uc3QgcmVwbyA9IGF3YWl0IGdldENvbW11bml0eVBsdWdpblJlcG8ocGx1Z2luSWQpO1xuICBpZiAoIXJlcG8pIHtcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQuc2hvd05vdGljZShgQ291bGQgbm90IGZpbmQgcGx1Z2luICR7cGx1Z2luTmFtZX0gaW4gdGhlIGNvbW11bml0eSBwbHVnaW5zIHJlZ2lzdHJ5LmApO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnRWZXJzaW9uID0gcGx1Z2luVmVyc2lvbjtcbiAgY29uc3QgbGF0ZXN0VmVyc2lvbiA9IGF3YWl0IGdldExhdGVzdFJlbGVhc2VWZXJzaW9uKHJlcG8pO1xuXG4gIGxldCB2ZXJzaW9uVG9PcGVuOiBzdHJpbmc7XG4gIGlmIChjb21wYXJlVmVyc2lvbnMoY3VycmVudFZlcnNpb24sIGxhdGVzdFZlcnNpb24pID49IDApIHtcbiAgICB2ZXJzaW9uVG9PcGVuID0gY3VycmVudFZlcnNpb247XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgY2hvc2VuVmVyc2lvbiA9IGF3YWl0IHNlbGVjdE9wdGlvbjxudWxsIHwgc3RyaW5nPih7XG4gICAgICBhcHAsXG4gICAgICBtZXNzYWdlOiBgQ3VycmVudCB2ZXJzaW9uIG9mIHBsdWdpbiAke3BsdWdpbk5hbWV9IHYke2N1cnJlbnRWZXJzaW9ufSBpcyBub3QgdGhlIGxhdGVzdCAodiR7bGF0ZXN0VmVyc2lvbn0pYCxcbiAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlzQ3RhOiB0cnVlLFxuICAgICAgICAgIHRleHQ6IGBPcGVuIGRlbW8gdmF1bHQgZm9yIGxhdGVzdCB2ZXJzaW9uICh2JHtsYXRlc3RWZXJzaW9ufSlgLFxuICAgICAgICAgIHZhbHVlOiBsYXRlc3RWZXJzaW9uXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiBgT3BlbiBkZW1vIHZhdWx0IGZvciBjdXJyZW50IHZlcnNpb24gKHYke2N1cnJlbnRWZXJzaW9ufSlgLFxuICAgICAgICAgIHZhbHVlOiBjdXJyZW50VmVyc2lvblxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogJ0NhbmNlbCcsXG4gICAgICAgICAgdmFsdWU6IG51bGxcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIHRpdGxlOiBwbHVnaW5OYW1lXG4gICAgfSk7XG4gICAgaWYgKGNob3NlblZlcnNpb24gPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmVyc2lvblRvT3BlbiA9IGNob3NlblZlcnNpb247XG4gIH1cblxuICBjb25zdCBhcmNoaXZlID0gYXdhaXQgcmVzb2x2ZURlbW9WYXVsdEFyY2hpdmUoe1xuICAgIHBsdWdpbklkLFxuICAgIHBsdWdpbk5hbWUsXG4gICAgcGx1Z2luTm90aWNlQ29tcG9uZW50LFxuICAgIHByb2dyZXNzTm90aWNlLFxuICAgIHJlcG8sXG4gICAgdmVyc2lvbjogdmVyc2lvblRvT3BlblxuICB9KTtcbiAgaWYgKCFhcmNoaXZlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHJvZ3Jlc3NOb3RpY2Uuc2V0Q29udGVudChgRXh0cmFjdGluZyBkZW1vIHZhdWx0IGZvciAke3BsdWdpbk5hbWV9IHYke3ZlcnNpb25Ub09wZW59XHUyMDI2YCk7XG4gIGNsZWFudXBPcnBoYW5lZEV4dHJhY3RlZFZhdWx0cygpO1xuICBjb25zdCB2YXVsdERpcmVjdG9yeSA9IGV4dHJhY3REZW1vVmF1bHRUb0ZyZXNoRm9sZGVyKHtcbiAgICBhcmNoaXZlLFxuICAgIHBsdWdpbklkLFxuICAgIHZlcnNpb246IHZlcnNpb25Ub09wZW5cbiAgfSk7XG5cbiAgd2luZG93LmVsZWN0cm9uLmlwY1JlbmRlcmVyLnNlbmRTeW5jKCd2YXVsdC1vcGVuJywgdmF1bHREaXJlY3RvcnksIGZhbHNlKTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIGV4dHJhY3RlZCBkZW1vLXZhdWx0IGZvbGRlcnMgbGVmdCBvdmVyIGZyb20gZWFybGllciBzZXNzaW9ucyAoYmVzdC1lZmZvcnQpLlxuICpcbiAqIEV2ZXJ5IG9wZW4gZXh0cmFjdHMgYSBmcmVzaCBjb3B5IGludG8gaXRzIG93biBmb2xkZXIgYW5kIG5ldmVyIGRlbGV0ZXMgaXQgYWZ0ZXJ3YXJkcyAodGhlIHZhdWx0IHN0YXlzXG4gKiBvcGVuIGluIGl0cyB3aW5kb3cpLCBzbyB0aGVzZSBhY2N1bXVsYXRlLiBUaGlzIGRyb3BzIGZvbGRlcnMgb2xkZXIgdGhhblxuICoge0BsaW5rIE9SUEhBTkVEX0VYVFJBQ1RFRF9WQVVMVF9NQVhfQUdFX0lOX01JTExJU0VDT05EU30uIEEgZm9sZGVyIHdob3NlIHZhdWx0IGlzIHN0aWxsIG9wZW4gaW4gYW5vdGhlclxuICogd2luZG93IGlzIGxvY2tlZCBvbiBXaW5kb3dzIGFuZCBjYW5ub3QgYmUgcmVtb3ZlZCBcdTIwMTQgdGhlIHJlbW92YWwgaXMgd3JhcHBlZCBzbyBzdWNoIGEgZm9sZGVyIGlzIHNpbXBseVxuICogc2tpcHBlZCBhbmQgcmV0cmllZCBvbiBhIGxhdGVyIG9wZW4uXG4gKi9cbmZ1bmN0aW9uIGNsZWFudXBPcnBoYW5lZEV4dHJhY3RlZFZhdWx0cygpOiB2b2lkIHtcbiAgY29uc3QgZXh0cmFjdGVkVmF1bHRzUm9vdCA9IGpvaW4odG1wZGlyKCksIERFTU9fVkFVTFRTX0NBQ0hFX0ZPTERFUiwgRVhUUkFDVEVEX1ZBVUxUU19TVUJGT0xERVIpO1xuICBpZiAoIWV4aXN0c1N5bmMoZXh0cmFjdGVkVmF1bHRzUm9vdCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICBmb3IgKGNvbnN0IGVudHJ5TmFtZSBvZiByZWFkZGlyU3luYyhleHRyYWN0ZWRWYXVsdHNSb290KSkge1xuICAgIGNvbnN0IGVudHJ5UGF0aCA9IGpvaW4oZXh0cmFjdGVkVmF1bHRzUm9vdCwgZW50cnlOYW1lKTtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RhdHMgPSBzdGF0U3luYyhlbnRyeVBhdGgpO1xuICAgICAgaWYgKG5vdyAtIHN0YXRzLm10aW1lTXMgPCBPUlBIQU5FRF9FWFRSQUNURURfVkFVTFRfTUFYX0FHRV9JTl9NSUxMSVNFQ09ORFMpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBybVN5bmMoZW50cnlQYXRoLCB7IGZvcmNlOiB0cnVlLCByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBCZXN0LWVmZm9ydCBjbGVhbnVwOiBhbiBvcnBoYW4gd2hvc2UgdmF1bHQgaXMgc3RpbGwgb3BlbiAobG9ja2VkIG9uIFdpbmRvd3MpIGNhbm5vdCBiZSByZW1vdmVkOyBza2lwIGl0IGFuZCByZXRyeSBvbiBhIGxhdGVyIG9wZW4uXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogRXh0cmFjdHMgYSBkb3dubG9hZGVkIGRlbW8tdmF1bHQgYXJjaGl2ZSB0byBkaXNrLlxuICpcbiAqIEV4dHJhY3Rpb24gaXMgd3JpdHRlbiB3aXRoIEVsZWN0cm9uJ3MgYG9yaWdpbmFsLWZzYCBcdTIwMTQgdGhlIHJlYWwgYGZzYCB3aXRoIGFzYXIgaW50ZXJjZXB0aW9uIGRpc2FibGVkIFx1MjAxNFxuICogcmF0aGVyIHRoYW4gd2l0aCBgbm9kZTpmc2AuIEEgZGVtbyB2YXVsdCBtYXkgc2hpcCBhIGZpbGUgdGhhdCBtZXJlbHkgTE9PS1MgbGlrZSBhbiBFbGVjdHJvbiBhcmNoaXZlXG4gKiAoZS5nLiBgX2Fzc2V0cy9Db2RlU2NyaXB0VG9vbGtpdC9tb2R1bGUuYXNhcmAgZGVtb25zdHJhdGluZyB0aGUgQVNBUiByZXF1aXJlIGZlYXR1cmUpLCBhbmQgRWxlY3Ryb24nc1xuICogYXNhciBsYXllciBpbnRlcmNlcHRzIGBmc2Agb3BlcmF0aW9ucyBvbiBhbnkgcGF0aCBjb250YWluaW5nIGAuYXNhcmAsIHRyZWF0aW5nIGl0IGFzIGFuIGFyY2hpdmUgcm9vdFxuICogcmF0aGVyIHRoYW4gYSBwbGFpbiBmaWxlLiBUaGF0IGFscmVhZHkgY29zdCBvbmUgcHJvZHVjdGlvbiBidWcgd2hlbiB0aGUgZXh0cmFjdG9yIGBjaG1vZGAtZWQgc3VjaCBhXG4gKiBmaWxlIGFuZCBnb3QgYEVOT0VOVGA7IG5vdGhpbmcgYGNobW9kYHMgYW55IG1vcmUsIGJ1dCB3cml0aW5nIHRob3NlIGJ5dGVzIHRocm91Z2ggdGhlIGNvcHkgdGhhdCBoYXMgbm9cbiAqIGFzYXIgbGF5ZXIgY29zdHMgbm90aGluZyBhbmQga2VlcHMgdGhlIHdob2xlIGNsYXNzIG9mIGZhaWx1cmUgb2ZmIHRoaXMgcGF0aC4gYG9yaWdpbmFsLWZzYCBpcyBhIGRlc2t0b3Atb25seVxuICogRWxlY3Ryb24gbW9kdWxlIHdpdGggbm8gYnVuZGxlZCB0eXBlcywgc28gaXQgaXMgbG9hZGVkIHZpYSBgd2luZG93LnJlcXVpcmVgIGFuZCB0eXBlZCBhcyBgbm9kZTpmc2Anc1xuICogc2hhcGUuXG4gKlxuICogQHBhcmFtIGFyY2hpdmUgLSBUaGUgcmF3IHppcCBhcmNoaXZlIGJ5dGVzLlxuICogQHBhcmFtIHRhcmdldERpcmVjdG9yeSAtIFRoZSBkaXJlY3RvcnkgdG8gZXh0cmFjdCBpbnRvLlxuICovXG5mdW5jdGlvbiBleHRyYWN0RGVtb1ZhdWx0QXJjaGl2ZShhcmNoaXZlOiBCdWZmZXIsIHRhcmdldERpcmVjdG9yeTogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IG9yaWdpbmFsRnMgPSB3aW5kb3cucmVxdWlyZSgnbm9kZTpvcmlnaW5hbC1mcycpIGFzIHR5cGVvZiBpbXBvcnQoJ25vZGU6ZnMnKTtcbiAgZXh0cmFjdFppcEFyY2hpdmUoe1xuICAgIGFyY2hpdmUsXG4gICAgZmlsZVN5c3RlbTogb3JpZ2luYWxGcyxcbiAgICB0YXJnZXREaXJlY3RvcnlcbiAgfSk7XG59XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIGFyY2hpdmUgaW50byBhIGZyZXNoLCB1bmlxdWVseS1uYW1lZCB0ZW1wb3JhcnkgZm9sZGVyIGFuZCByZXR1cm5zIHRoZSB2YXVsdCBwYXRoLlxuICpcbiAqIEEgdW5pcXVlIHBhcmVudCBmb2xkZXIgKGBta2R0ZW1wU3luY2ApIGd1YXJhbnRlZXMgYSBicmFuZC1uZXcgZXh0cmFjdGlvbiBldmVyeSB0aW1lIFx1MjAxNCB0aGUgZGVtbyB2YXVsdFxuICogaXMgbmV2ZXIgcmV1c2VkIGFjcm9zcyBvcGVucywgc28gYSBwcmV2aW91cyBzZXNzaW9uJ3MgZWRpdHMgbmV2ZXIgbGVhayBpbi4gVGhlIGFyY2hpdmUgaXMgZXh0cmFjdGVkXG4gKiBpbnRvIHRoYXQgcGFyZW50IGFuZCB0aGUgdmF1bHQgaXMgdGhlIHNpbmdsZSBgPHBsdWdpbi1pZD4tZGVtby12YXVsdC08dmVyc2lvbj5gIGZvbGRlciBpdCBjb250YWlucywgc29cbiAqIE9ic2lkaWFuJ3MgdmF1bHQgc3dpdGNoZXIgc2hvd3MgYSBmcmllbmRseSBuYW1lIChpdHMgYmFzZW5hbWUpIHJhdGhlciB0aGFuIHRoZSByYW5kb20gdGVtcCBpZC5cbiAqXG4gKiBUaGF0IGZvbGRlciBpcyBub3Qgc2VhcmNoZWQgZm9yOiB7QGxpbmsgZ2V0RGVtb1ZhdWx0Rm9sZGVyTmFtZX0gbmFtZXMgaXQgb24gYm90aCBzaWRlcywgc28gdGhlIHBhdGggaXNcbiAqIGtub3duIGJlZm9yZSBhIGJ5dGUgaXMgd3JpdHRlbi4gV2hpY2gga2VlcHMgdGhlIGV4dHJhY3RvciBmcmVlIG9mIGFueSByZWFkIFx1MjAxNCBkZWxpYmVyYXRlLCBiZWNhdXNlXG4gKiBFbGVjdHJvbidzIGFzYXIgbGF5ZXIgaW50ZXJjZXB0cyBgZnNgIHJlYWRzIG9uIGFueSBwYXRoIGNvbnRhaW5pbmcgYC5hc2FyYCwgYW5kIGEgZGVtbyB2YXVsdCBtYXlcbiAqIGxlZ2l0aW1hdGVseSBzaGlwIHN1Y2ggYSBmaWxlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIEV4dHJhY3REZW1vVmF1bHRUb0ZyZXNoRm9sZGVyUGFyYW1zfS5cbiAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoIG9mIHRoZSBmcmVzaGx5IGV4dHJhY3RlZCB2YXVsdCBmb2xkZXIuXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3REZW1vVmF1bHRUb0ZyZXNoRm9sZGVyKHBhcmFtczogRXh0cmFjdERlbW9WYXVsdFRvRnJlc2hGb2xkZXJQYXJhbXMpOiBzdHJpbmcge1xuICBjb25zdCB7IGFyY2hpdmUsIHBsdWdpbklkLCB2ZXJzaW9uIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGV4dHJhY3RlZFZhdWx0c1Jvb3QgPSBqb2luKHRtcGRpcigpLCBERU1PX1ZBVUxUU19DQUNIRV9GT0xERVIsIEVYVFJBQ1RFRF9WQVVMVFNfU1VCRk9MREVSKTtcbiAgbWtkaXJTeW5jKGV4dHJhY3RlZFZhdWx0c1Jvb3QsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBjb25zdCB1bmlxdWVQYXJlbnREaXJlY3RvcnkgPSBta2R0ZW1wU3luYyhqb2luKGV4dHJhY3RlZFZhdWx0c1Jvb3QsIGAke3BsdWdpbklkfS0ke3ZlcnNpb259LWApKTtcbiAgZXh0cmFjdERlbW9WYXVsdEFyY2hpdmUoYXJjaGl2ZSwgdW5pcXVlUGFyZW50RGlyZWN0b3J5KTtcbiAgcmV0dXJuIGpvaW4oXG4gICAgdW5pcXVlUGFyZW50RGlyZWN0b3J5LFxuICAgIGdldERlbW9WYXVsdEZvbGRlck5hbWUoe1xuICAgICAgcGx1Z2luSWQsXG4gICAgICB2ZXJzaW9uXG4gICAgfSlcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgZGVtby12YXVsdCBhcmNoaXZlIGJ5dGVzIGZvciBhIHZlcnNpb24sIGRvd25sb2FkaW5nIGFuZCBjYWNoaW5nIHRoZW0gb24gZmlyc3QgdXNlLlxuICpcbiAqIE9ubHkgdGhlIGFyY2hpdmUgaXMgY2FjaGVkIChrZXllZCBieSBwbHVnaW4gaWQgKyB2ZXJzaW9uKTsgdGhlIGV4dHJhY3RlZCB2YXVsdCBpcyBub3QuIEEgY2FjaGUgaGl0IGlzXG4gKiByZXR1cm5lZCB3aXRob3V0IGFueSBuZXR3b3JrIHJlcXVlc3Q7IGEgbWlzcyBkb3dubG9hZHMgdGhlIHJlbGVhc2UgYXNzZXQsIHdyaXRlcyBpdCB0byB0aGUgYXJjaGl2ZVxuICogY2FjaGUsIGFuZCByZXR1cm5zIHRoZSBmcmVzaGx5IGRvd25sb2FkZWQgYnl0ZXMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgUmVzb2x2ZURlbW9WYXVsdEFyY2hpdmVQYXJhbXN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gcmVzb2x2aW5nIHRvIHRoZSBhcmNoaXZlIGJ5dGVzLCBvciBgbnVsbGAgd2hlbiBubyBhcmNoaXZlIGlzIGF2YWlsYWJsZSBmb3JcbiAqIHRoZSB2ZXJzaW9uIChhIG5vdGljZSBoYXMgYmVlbiBzaG93bikuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVEZW1vVmF1bHRBcmNoaXZlKHBhcmFtczogUmVzb2x2ZURlbW9WYXVsdEFyY2hpdmVQYXJhbXMpOiBQcm9taXNlPEJ1ZmZlciB8IG51bGw+IHtcbiAgY29uc3Qge1xuICAgIHBsdWdpbklkLFxuICAgIHBsdWdpbk5hbWUsXG4gICAgcGx1Z2luTm90aWNlQ29tcG9uZW50LFxuICAgIHByb2dyZXNzTm90aWNlLFxuICAgIHJlcG8sXG4gICAgdmVyc2lvblxuICB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IGFyY2hpdmVzRGlyZWN0b3J5ID0gam9pbih0bXBkaXIoKSwgREVNT19WQVVMVFNfQ0FDSEVfRk9MREVSLCBBUkNISVZFU19TVUJGT0xERVIpO1xuICBjb25zdCBhcmNoaXZlUGF0aCA9IGpvaW4oYXJjaGl2ZXNEaXJlY3RvcnksIGAke3BsdWdpbklkfS0ke3ZlcnNpb259LnppcGApO1xuICBpZiAoZXhpc3RzU3luYyhhcmNoaXZlUGF0aCkpIHtcbiAgICByZXR1cm4gcmVhZEZpbGVTeW5jKGFyY2hpdmVQYXRoKTtcbiAgfVxuXG4gIHByb2dyZXNzTm90aWNlLnNldENvbnRlbnQoYERvd25sb2FkaW5nIGRlbW8gdmF1bHQgZm9yICR7cGx1Z2luTmFtZX0gdiR7dmVyc2lvbn1cdTIwMjZgKTtcbiAgY29uc3QgYXNzZXRVcmwgPSBgaHR0cHM6Ly9naXRodWIuY29tLyR7cmVwb30vcmVsZWFzZXMvZG93bmxvYWQvJHt2ZXJzaW9ufS8ke2dldERlbW9WYXVsdEFyY2hpdmVGaWxlTmFtZShwbHVnaW5JZCl9YDtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXF1ZXN0VXJsKHtcbiAgICB0aHJvdzogZmFsc2UsXG4gICAgdXJsOiBhc3NldFVybFxuICB9KTtcbiAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gSFRUUF9TVEFUVVNfT0spIHtcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQuc2hvd05vdGljZShgTm8gZGVtbyB2YXVsdCBpcyBhdmFpbGFibGUgZm9yIHBsdWdpbiAke3BsdWdpbk5hbWV9IHYke3ZlcnNpb259LmApO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgYXJjaGl2ZSA9IEJ1ZmZlci5mcm9tKHJlc3BvbnNlLmFycmF5QnVmZmVyKTtcbiAgbWtkaXJTeW5jKGFyY2hpdmVzRGlyZWN0b3J5LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgd3JpdGVGaWxlU3luYyhhcmNoaXZlUGF0aCwgYXJjaGl2ZSk7XG4gIHJldHVybiBhcmNoaXZlO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
|
@@ -149,6 +149,7 @@ var ObsidianPluginRepoPaths = /* @__PURE__ */ ((ObsidianPluginRepoPaths2) => {
|
|
|
149
149
|
ObsidianPluginRepoPaths2["AnyAndroidCaptureIntegrationTestTs"] = "*.android-capture.integration.test.ts";
|
|
150
150
|
ObsidianPluginRepoPaths2["AnyAndroidIntegrationTestTs"] = "*.android.integration.test.ts";
|
|
151
151
|
ObsidianPluginRepoPaths2["AnyCjs"] = "*.cjs";
|
|
152
|
+
ObsidianPluginRepoPaths2["AnyDesktopTs"] = "desktop-*.ts";
|
|
152
153
|
ObsidianPluginRepoPaths2["AnyIntegrationTestTs"] = "*.integration.test.ts";
|
|
153
154
|
ObsidianPluginRepoPaths2["AnyJs"] = "*.js";
|
|
154
155
|
ObsidianPluginRepoPaths2["AnyMjs"] = "*.mjs";
|
|
@@ -208,4 +209,4 @@ var ObsidianPluginRepoPaths = /* @__PURE__ */ ((ObsidianPluginRepoPaths2) => {
|
|
|
208
209
|
0 && (module.exports = {
|
|
209
210
|
ObsidianPluginRepoPaths
|
|
210
211
|
});
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIGFuIGVudW1lcmF0aW9uIGZvciBjb21tb24gZmlsZSBhbmQgZm9sZGVyIHBhdGhzIHVzZWQgaW4gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICovXG5cbi8qKlxuICogRW51bWVyYXRpb24gb2YgY29tbW9ubHkgdXNlZCBmaWxlIGFuZCBmb2xkZXIgcGF0aHMgaW4gT2JzaWRpYW4gcGx1Z2luIGRldmVsb3BtZW50LlxuICovXG5leHBvcnQgZW51bSBPYnNpZGlhblBsdWdpblJlcG9QYXRocyB7XG4gIC8qKlxuICBBbnkgQW5kcm9pZCBjYXB0dXJlIGludGVncmF0aW9uLXRlc3QgVHlwZVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55QW5kcm9pZENhcHR1cmVJbnRlZ3JhdGlvblRlc3RUcyA9ICcqLmFuZHJvaWQtY2FwdHVyZS5pbnRlZ3JhdGlvbi50ZXN0LnRzJyxcblxuICAvKipcbiAgQW55IEFuZHJvaWQgaW50ZWdyYXRpb24tdGVzdCBUeXBlU2NyaXB0IGZpbGUuXG4gICAqL1xuICBBbnlBbmRyb2lkSW50ZWdyYXRpb25UZXN0VHMgPSAnKi5hbmRyb2lkLmludGVncmF0aW9uLnRlc3QudHMnLFxuXG4gIC8qKlxuICBDb21tb25KUyBmaWxlLlxuICAgKi9cbiAgQW55Q2pzID0gJyouY2pzJyxcblxuICAvKipcbiAgQW55IGRlc2t0b3Atb25seSBUeXBlU2NyaXB0IG1vZHVsZSwgaWRlbnRpZmllZCBieSB0aGUgYGRlc2t0b3AtYCBmaWxlbmFtZSBwcmVmaXguXG4gICAqL1xuICBBbnlEZXNrdG9wVHMgPSAnZGVza3RvcC0qLnRzJyxcblxuICAvKipcbiAgQW55IGludGVncmF0aW9uLXRlc3QgVHlwZVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55SW50ZWdyYXRpb25UZXN0VHMgPSAnKi5pbnRlZ3JhdGlvbi50ZXN0LnRzJyxcblxuICAvKipcbiAgSmF2YVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55SnMgPSAnKi5qcycsXG5cbiAgLyoqXG4gIEVTTSBKYXZhU2NyaXB0IGZpbGUuXG4gICAqL1xuICBBbnlNanMgPSAnKi5tanMnLFxuXG4gIC8qKlxuICBBbnkgcGF0aCByZWN1cnNpdmVseS5cbiAgICovXG4gIEFueVBhdGggPSAnKionLFxuXG4gIC8qKlxuICBBbnkgdGVzdCBUeXBlU2NyaXB0IGZpbGUuXG4gICAqL1xuICBBbnlUZXN0VHMgPSAnKi50ZXN0LnRzJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55VHMgPSAnKi50cycsXG5cbiAgLyoqXG4gIFJlYWN0SlMgVHlwZVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgQW55VHN4ID0gJyoudHN4JyxcblxuICAvKipcbiAgT2JzaWRpYW4gYXBwbGljYXRpb24gc2V0dGluZ3MgZmlsZSB3aXRoaW4gYW4gT2JzaWRpYW4gY29uZmlndXJhdGlvbiBmb2xkZXIuXG4gICAqL1xuICBBcHBKc29uID0gJ2FwcC5qc29uJyxcblxuICAvKipcbiAgQ2hhbmdlbG9nIGZpbGUuXG4gICAqL1xuICBDaGFuZ2Vsb2dNZCA9ICdDSEFOR0VMT0cubWQnLFxuXG4gIC8qKlxuICBDb21taXRsaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIENvbW1pdGxpbnRDb25maWdUcyA9ICdjb21taXRsaW50LmNvbmZpZy50cycsXG5cbiAgLyoqXG4gIEN1cnJlbnQgZm9sZGVyLlxuICAgKi9cbiAgQ3VycmVudEZvbGRlciA9ICcuJyxcblxuICAvKipcbiAgRGVtbyB2YXVsdCBmb2xkZXIgc2hpcHBlZCBpbiBhIHBsdWdpbiByZXBvIHJvb3QuXG4gICAqL1xuICBEZW1vVmF1bHQgPSAnZGVtby12YXVsdCcsXG5cbiAgLyoqXG4gIERpc3RyaWJ1dGlvbiBmb2xkZXIuXG4gICAqL1xuICBEaXN0ID0gJ2Rpc3QnLFxuXG4gIC8qKlxuICBCdWlsZCBmb2xkZXIgd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLlxuICAgKi9cbiAgRGlzdEJ1aWxkID0gJ2Rpc3QvYnVpbGQnLFxuXG4gIC8qKlxuICBEZXZlbG9wbWVudCBmb2xkZXIgd2l0aGluIHRoZSB7QGxpbmsgRGlzdH0gZm9sZGVyLlxuICAgKi9cbiAgRGlzdERldiA9ICdkaXN0L2RldicsXG5cbiAgLyoqXG4gIE9ic2lkaWFuIGNvbmZpZ3VyYXRpb24gZm9sZGVyIHdpdGhpbiBhIHZhdWx0LlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG9ic2lkaWFubWQvaGFyZGNvZGVkLWNvbmZpZy1wYXRoIC0tIFRoaXMgaXMgdGhlIGRlZmF1bHQgY29uZmlnIGZvbGRlciBuYW1lIGJha2VkIGludG8gYSBzaGlwcGVkIGRlbW8tdmF1bHQgc2tlbGV0b24sIG5vdCBhIGxvb2t1cCBhZ2FpbnN0IGEgbGl2ZSB2YXVsdC5cbiAgRG90T2JzaWRpYW4gPSAnLm9ic2lkaWFuJyxcblxuICAvKipcbiAgQ29tbW9uSlMgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ0NqcyA9ICdlc2xpbnQuY29uZmlnLmNqcycsXG5cbiAgLyoqXG4gIENvbW1vbkpTIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ0N0cyA9ICdlc2xpbnQuY29uZmlnLmN0cycsXG5cbiAgLyoqXG4gIEphdmFTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ0pzID0gJ2VzbGludC5jb25maWcuanMnLFxuXG4gIC8qKlxuICBFU00gSmF2YVNjcmlwdCBFU0xpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgRXNsaW50Q29uZmlnTWpzID0gJ2VzbGludC5jb25maWcubWpzJyxcblxuICAvKipcbiAgRVNNIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ010cyA9ICdlc2xpbnQuY29uZmlnLm10cycsXG5cbiAgLyoqXG4gIFR5cGVTY3JpcHQgRVNMaW50IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIEVzbGludENvbmZpZ1RzID0gJ2VzbGludC5jb25maWcudHMnLFxuXG4gIC8qKlxuICBIb3QgcmVsb2FkIGZpbGUuXG4gICAqL1xuICBIb3RSZWxvYWQgPSAnLmhvdHJlbG9hZCcsXG5cbiAgLyoqXG4gIExpY2Vuc2UgZmlsZS5cbiAgICovXG4gIExpY2Vuc2UgPSAnTElDRU5TRScsXG5cbiAgLyoqXG4gIE1haW4gQ1NTIGZpbGUuXG4gICAqL1xuICBNYWluQ3NzID0gJ21haW4uY3NzJyxcblxuICAvKipcbiAgTWFpbiBKYXZhU2NyaXB0IGZpbGUuXG4gICAqL1xuICBNYWluSnMgPSAnbWFpbi5qcycsXG5cbiAgLyoqXG4gIE1haW4gVHlwZVNjcmlwdCBmaWxlLlxuICAgKi9cbiAgTWFpblRzID0gJ21haW4udHMnLFxuXG4gIC8qKlxuICBNYW5pZmVzdCBmaWxlIGZvciBiZXRhIHJlbGVhc2VzLlxuICAgKi9cbiAgTWFuaWZlc3RCZXRhSnNvbiA9ICdtYW5pZmVzdC1iZXRhLmpzb24nLFxuXG4gIC8qKlxuICBNYW5pZmVzdCBmaWxlLlxuICAgKi9cbiAgTWFuaWZlc3RKc29uID0gJ21hbmlmZXN0Lmpzb24nLFxuXG4gIC8qKlxuICBDb21tb25KUyBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnQ2pzID0gJy5tYXJrZG93bmxpbnQtY2xpMi5janMnLFxuXG4gIC8qKlxuICBKU09OQyBNYXJrZG93bmxpbnQgQ0xJMiBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBNYXJrZG93bmxpbnRDbGkyQ29uZmlnSnNvbmMgPSAnLm1hcmtkb3dubGludC1jbGkyLmpzb25jJyxcblxuICAvKipcbiAgRVNNIE1hcmtkb3dubGludCBDTEkyIGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIE1hcmtkb3dubGludENsaTJDb25maWdNanMgPSAnLm1hcmtkb3dubGludC1jbGkyLm1qcycsXG5cbiAgLyoqXG4gIFlBTUwgTWFya2Rvd25saW50IENMSTIgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q2xpMkNvbmZpZ1lhbWwgPSAnLm1hcmtkb3dubGludC1jbGkyLnlhbWwnLFxuXG4gIC8qKlxuICBDb21tb25KUyBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnQ2pzID0gJy5tYXJrZG93bmxpbnQuY2pzJyxcblxuICAvKipcbiAgSlNPTiBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnSnNvbiA9ICcubWFya2Rvd25saW50Lmpzb24nLFxuXG4gIC8qKlxuICBKU09OQyBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnSnNvbmMgPSAnLm1hcmtkb3dubGludC5qc29uYycsXG5cbiAgLyoqXG4gIEVTTSBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnTWpzID0gJy5tYXJrZG93bmxpbnQubWpzJyxcblxuICAvKipcbiAgWUFNTCBNYXJrZG93bmxpbnQgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKi9cbiAgTWFya2Rvd25saW50Q29uZmlnWWFtbCA9ICcubWFya2Rvd25saW50LnlhbWwnLFxuXG4gIC8qKlxuICBZQU1MIE1hcmtkb3dubGludCBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBNYXJrZG93bmxpbnRDb25maWdZbWwgPSAnLm1hcmtkb3dubGludC55bWwnLFxuXG4gIC8qKlxuICBNb2NrcyBmb2xkZXIuXG4gICAqL1xuICBNb2NrcyA9ICdzcmMvdGVzdC1oZWxwZXJzJyxcblxuICAvKipcbiAgTm9kZSBtb2R1bGVzIGZvbGRlci5cbiAgICovXG4gIE5vZGVNb2R1bGVzID0gJ25vZGVfbW9kdWxlcycsXG5cbiAgLyoqXG4gIE5QTSBzaHJpbmt3cmFwIGZpbGUuXG4gICAqL1xuICBOcG1TaHJpbmt3cmFwSnNvbiA9ICducG0tc2hyaW5rd3JhcC5qc29uJyxcblxuICAvKipcbiAgUGFja2FnZSBKU09OIGZpbGUuXG4gICAqL1xuICBQYWNrYWdlSnNvbiA9ICdwYWNrYWdlLmpzb24nLFxuXG4gIC8qKlxuICBQYWNrYWdlLWxvY2sgSlNPTiBmaWxlLlxuICAgKi9cbiAgUGFja2FnZUxvY2tKc29uID0gJ3BhY2thZ2UtbG9jay5qc29uJyxcblxuICAvKipcbiAgUGx1Z2lucyBmb2xkZXIgd2l0aGluIGFuIE9ic2lkaWFuIGNvbmZpZ3VyYXRpb24gZm9sZGVyLlxuICAgKi9cbiAgUGx1Z2lucyA9ICdwbHVnaW5zJyxcblxuICAvKipcbiAgU2NyaXB0cyBmb2xkZXIuXG4gICAqL1xuICBTY3JpcHRzID0gJ3NjcmlwdHMnLFxuXG4gIC8qKlxuICBTY3JpcHQgdXRpbGl0aWVzIGZvbGRlciAoZGV2LW9ubHkgdG9vbGluZyB0aGF0IHJ1bnMgaW4gdGhlIGNvbnN1bWVyJ3MgTm9kZSBlbnZpcm9ubWVudCwgbm90IHRoZSBPYnNpZGlhbiBydW50aW1lKS5cbiAgICovXG4gIFNjcmlwdFV0aWxzID0gJ3NyYy9zY3JpcHQtdXRpbHMnLFxuXG4gIC8qKlxuICBTb3VyY2UgZm9sZGVyLlxuICAgKi9cbiAgU3JjID0gJ3NyYycsXG5cbiAgLyoqXG4gIFN0eWxlcyBDU1MgZmlsZS5cbiAgICovXG4gIFN0eWxlc0NzcyA9ICdzdHlsZXMuY3NzJyxcblxuICAvKipcbiAgVGVzdHMgZm9sZGVyLlxuICAgKi9cbiAgVGVzdHMgPSAnX190ZXN0c19fJyxcblxuICAvKipcbiAgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGZpbGUuXG4gICAqL1xuICBUc0NvbmZpZ0pzb24gPSAndHNjb25maWcuanNvbicsXG5cbiAgLyoqXG4gIFZlcnNpb25zIEpTT04gZmlsZS5cbiAgICovXG4gIFZlcnNpb25zSnNvbiA9ICd2ZXJzaW9ucy5qc29uJyxcblxuICAvKipcbiAgVml0ZXN0IGNvbmZpZ3VyYXRpb24gZmlsZS5cbiAgICovXG4gIFZpdGVzdENvbmZpZ1RzID0gJ3ZpdGVzdC5jb25maWcudHMnXG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVNPLElBQUssMEJBQUwsa0JBQUtBLDZCQUFMO0FBSUwsRUFBQUEseUJBQUEsd0NBQXFDO0FBS3JDLEVBQUFBLHlCQUFBLGlDQUE4QjtBQUs5QixFQUFBQSx5QkFBQSxZQUFTO0FBS1QsRUFBQUEseUJBQUEsa0JBQWU7QUFLZixFQUFBQSx5QkFBQSwwQkFBdUI7QUFLdkIsRUFBQUEseUJBQUEsV0FBUTtBQUtSLEVBQUFBLHlCQUFBLFlBQVM7QUFLVCxFQUFBQSx5QkFBQSxhQUFVO0FBS1YsRUFBQUEseUJBQUEsZUFBWTtBQUtaLEVBQUFBLHlCQUFBLFdBQVE7QUFLUixFQUFBQSx5QkFBQSxZQUFTO0FBS1QsRUFBQUEseUJBQUEsYUFBVTtBQUtWLEVBQUFBLHlCQUFBLGlCQUFjO0FBS2QsRUFBQUEseUJBQUEsd0JBQXFCO0FBS3JCLEVBQUFBLHlCQUFBLG1CQUFnQjtBQUtoQixFQUFBQSx5QkFBQSxlQUFZO0FBS1osRUFBQUEseUJBQUEsVUFBTztBQUtQLEVBQUFBLHlCQUFBLGVBQVk7QUFLWixFQUFBQSx5QkFBQSxhQUFVO0FBTVYsRUFBQUEseUJBQUEsaUJBQWM7QUFLZCxFQUFBQSx5QkFBQSxxQkFBa0I7QUFLbEIsRUFBQUEseUJBQUEscUJBQWtCO0FBS2xCLEVBQUFBLHlCQUFBLG9CQUFpQjtBQUtqQixFQUFBQSx5QkFBQSxxQkFBa0I7QUFLbEIsRUFBQUEseUJBQUEscUJBQWtCO0FBS2xCLEVBQUFBLHlCQUFBLG9CQUFpQjtBQUtqQixFQUFBQSx5QkFBQSxlQUFZO0FBS1osRUFBQUEseUJBQUEsYUFBVTtBQUtWLEVBQUFBLHlCQUFBLGFBQVU7QUFLVixFQUFBQSx5QkFBQSxZQUFTO0FBS1QsRUFBQUEseUJBQUEsWUFBUztBQUtULEVBQUFBLHlCQUFBLHNCQUFtQjtBQUtuQixFQUFBQSx5QkFBQSxrQkFBZTtBQUtmLEVBQUFBLHlCQUFBLCtCQUE0QjtBQUs1QixFQUFBQSx5QkFBQSxpQ0FBOEI7QUFLOUIsRUFBQUEseUJBQUEsK0JBQTRCO0FBSzVCLEVBQUFBLHlCQUFBLGdDQUE2QjtBQUs3QixFQUFBQSx5QkFBQSwyQkFBd0I7QUFLeEIsRUFBQUEseUJBQUEsNEJBQXlCO0FBS3pCLEVBQUFBLHlCQUFBLDZCQUEwQjtBQUsxQixFQUFBQSx5QkFBQSwyQkFBd0I7QUFLeEIsRUFBQUEseUJBQUEsNEJBQXlCO0FBS3pCLEVBQUFBLHlCQUFBLDJCQUF3QjtBQUt4QixFQUFBQSx5QkFBQSxXQUFRO0FBS1IsRUFBQUEseUJBQUEsaUJBQWM7QUFLZCxFQUFBQSx5QkFBQSx1QkFBb0I7QUFLcEIsRUFBQUEseUJBQUEsaUJBQWM7QUFLZCxFQUFBQSx5QkFBQSxxQkFBa0I7QUFLbEIsRUFBQUEseUJBQUEsYUFBVTtBQUtWLEVBQUFBLHlCQUFBLGFBQVU7QUFLVixFQUFBQSx5QkFBQSxpQkFBYztBQUtkLEVBQUFBLHlCQUFBLFNBQU07QUFLTixFQUFBQSx5QkFBQSxlQUFZO0FBS1osRUFBQUEseUJBQUEsV0FBUTtBQUtSLEVBQUFBLHlCQUFBLGtCQUFlO0FBS2YsRUFBQUEseUJBQUEsa0JBQWU7QUFLZixFQUFBQSx5QkFBQSxvQkFBaUI7QUE3UlAsU0FBQUE7QUFBQSxHQUFBOyIsCiAgIm5hbWVzIjogWyJPYnNpZGlhblBsdWdpblJlcG9QYXRocyJdCn0K
|
|
@@ -21,6 +21,10 @@ export declare enum ObsidianPluginRepoPaths {
|
|
|
21
21
|
*/
|
|
22
22
|
AnyCjs = "*.cjs",
|
|
23
23
|
/**
|
|
24
|
+
Any desktop-only TypeScript module, identified by the `desktop-` filename prefix.
|
|
25
|
+
*/
|
|
26
|
+
AnyDesktopTs = "desktop-*.ts",
|
|
27
|
+
/**
|
|
24
28
|
Any integration-test TypeScript file.
|
|
25
29
|
*/
|
|
26
30
|
AnyIntegrationTestTs = "*.integration.test.ts",
|