@mnaoumov/obsidian-lib 5.2.1 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/cjs/@types/obsidian-integration-testing.d.cts +1 -1
- package/dist/lib/cjs/__merged.cjs +10 -24
- package/dist/lib/cjs/__merged.d.cts +5 -5
- package/dist/lib/cjs/async-with-notice.cjs +7 -7
- package/dist/lib/cjs/backlink-index.cjs +3 -3
- package/dist/lib/cjs/callout.cjs +2 -2
- package/dist/lib/cjs/case-insensitive-file-index.cjs +5 -5
- package/dist/lib/cjs/community-plugins.cjs +3 -3
- package/dist/lib/cjs/components/async-error-handler-component.cjs +2 -2
- package/dist/lib/cjs/components/monkey-around-component.cjs +3 -3
- package/dist/lib/cjs/components/plugin-context-component.cjs +1 -3
- package/dist/lib/cjs/components/plugin-context-component.d.cts +1 -2
- package/dist/lib/cjs/components/plugin-gate-component.cjs +15 -15
- package/dist/lib/cjs/components/plugin-notice-component.cjs +5 -5
- package/dist/lib/cjs/components/plugin-suggestion-component.cjs +5 -5
- package/dist/lib/cjs/components/release-notes-component.cjs +2 -2
- package/dist/lib/cjs/components/rename-delete-handler-component.cjs +10 -10
- package/dist/lib/cjs/css-class.cjs +1 -2
- package/dist/lib/cjs/css-class.d.cts +3 -11
- package/dist/lib/cjs/dataview.cjs +4 -4
- package/dist/lib/cjs/debug.cjs +2 -22
- package/dist/lib/cjs/debug.d.cts +0 -5
- package/dist/lib/cjs/demo-vault-helper.cjs +5 -1
- package/dist/lib/cjs/demo-vault-helper.d.cts +8 -2
- package/dist/lib/cjs/frontmatter.cjs +3 -3
- package/dist/lib/cjs/frontmatter.d.cts +1 -1
- package/dist/lib/cjs/generated-during-build.cjs +2 -2
- package/dist/lib/cjs/html-element.cjs +1 -1
- package/dist/lib/cjs/html-element.d.cts +1 -1
- package/dist/lib/cjs/i18n/i18n.cjs +1 -1
- package/dist/lib/cjs/i18n/i18n.d.cts +1 -1
- package/dist/lib/cjs/i18n/locales/en.cjs +2 -2
- package/dist/lib/cjs/i18n/locales/en.d.cts +1 -1
- package/dist/lib/cjs/i18n/locales/translations-map.d.cts +1 -1
- package/dist/lib/cjs/index.cjs +4 -4
- package/dist/lib/cjs/index.d.cts +1 -1
- package/dist/lib/cjs/library-styles.cjs +7 -14
- package/dist/lib/cjs/library-styles.d.cts +9 -23
- package/dist/lib/cjs/library.cjs +1 -4
- package/dist/lib/cjs/library.d.cts +3 -11
- package/dist/lib/cjs/link.cjs +11 -10
- package/dist/lib/cjs/markdown.cjs +3 -3
- package/dist/lib/cjs/metadata-cache.cjs +5 -5
- package/dist/lib/cjs/modals/alert.cjs +2 -2
- package/dist/lib/cjs/modals/confirm.cjs +3 -3
- package/dist/lib/cjs/modals/prompt.cjs +3 -3
- package/dist/lib/cjs/obsidian-lib-state.cjs +148 -0
- package/dist/lib/cjs/obsidian-lib-state.d.cts +30 -0
- package/dist/lib/cjs/path-settings.cjs +6 -6
- package/dist/lib/cjs/plugin/index.cjs +1 -4
- package/dist/lib/cjs/plugin/index.d.cts +0 -1
- package/dist/lib/cjs/plugin/plugin-api.cjs +3 -3
- package/dist/lib/cjs/plugin/plugin-api.d.cts +5 -41
- package/dist/lib/cjs/plugin/plugin-context.cjs +1 -6
- package/dist/lib/cjs/plugin/plugin-install-state.cjs +5 -5
- package/dist/lib/cjs/plugin/plugin-lifecycle-events.cjs +1 -40
- package/dist/lib/cjs/plugin/plugin-lifecycle-events.d.cts +8 -62
- package/dist/lib/cjs/plugin/plugin.cjs +2 -2
- package/dist/lib/cjs/plugin/plugin.d.cts +1 -1
- package/dist/lib/cjs/popovers/popover.cjs +3 -3
- package/dist/lib/cjs/queue.cjs +4 -4
- package/dist/lib/cjs/reference.cjs +7 -2
- package/dist/lib/cjs/reference.d.cts +12 -0
- package/dist/lib/cjs/resource-lock.cjs +9 -9
- package/dist/lib/cjs/vault-delete.cjs +2 -2
- package/dist/lib/cjs/vault-transaction.cjs +17 -2
- package/dist/lib/cjs/vault-transaction.d.cts +2 -1
- package/dist/lib/cjs/vault.cjs +2 -2
- package/dist/lib/esm/@types/obsidian-integration-testing.d.mts +1 -1
- package/dist/lib/esm/__merged.d.mts +5 -5
- package/dist/lib/esm/__merged.mjs +10 -24
- package/dist/lib/esm/async-with-notice.mjs +7 -7
- package/dist/lib/esm/backlink-index.mjs +3 -3
- package/dist/lib/esm/callout.mjs +2 -2
- package/dist/lib/esm/case-insensitive-file-index.mjs +5 -5
- package/dist/lib/esm/community-plugins.mjs +3 -3
- package/dist/lib/esm/components/async-error-handler-component.mjs +2 -2
- package/dist/lib/esm/components/monkey-around-component.mjs +3 -3
- package/dist/lib/esm/components/plugin-context-component.d.mts +1 -2
- package/dist/lib/esm/components/plugin-context-component.mjs +1 -3
- package/dist/lib/esm/components/plugin-gate-component.mjs +15 -15
- package/dist/lib/esm/components/plugin-notice-component.mjs +5 -5
- package/dist/lib/esm/components/plugin-suggestion-component.mjs +5 -5
- package/dist/lib/esm/components/release-notes-component.mjs +2 -2
- package/dist/lib/esm/components/rename-delete-handler-component.mjs +10 -10
- package/dist/lib/esm/css-class.d.mts +3 -11
- package/dist/lib/esm/css-class.mjs +1 -2
- package/dist/lib/esm/dataview.mjs +4 -4
- package/dist/lib/esm/debug.d.mts +0 -5
- package/dist/lib/esm/debug.mjs +3 -26
- package/dist/lib/esm/demo-vault-helper.d.mts +8 -2
- package/dist/lib/esm/demo-vault-helper.mjs +5 -1
- package/dist/lib/esm/frontmatter.d.mts +1 -1
- package/dist/lib/esm/frontmatter.mjs +3 -3
- package/dist/lib/esm/generated-during-build.mjs +2 -2
- package/dist/lib/esm/html-element.d.mts +1 -1
- package/dist/lib/esm/html-element.mjs +1 -1
- package/dist/lib/esm/i18n/i18n.d.mts +1 -1
- package/dist/lib/esm/i18n/i18n.mjs +1 -1
- package/dist/lib/esm/i18n/locales/en.d.mts +1 -1
- package/dist/lib/esm/i18n/locales/en.mjs +2 -2
- package/dist/lib/esm/i18n/locales/translations-map.d.mts +1 -1
- package/dist/lib/esm/index.d.mts +1 -1
- package/dist/lib/esm/index.mjs +3 -3
- package/dist/lib/esm/library-styles.d.mts +9 -23
- package/dist/lib/esm/library-styles.mjs +7 -12
- package/dist/lib/esm/library.d.mts +3 -11
- package/dist/lib/esm/library.mjs +1 -3
- package/dist/lib/esm/link.mjs +12 -10
- package/dist/lib/esm/markdown.mjs +3 -3
- package/dist/lib/esm/metadata-cache.mjs +9 -6
- package/dist/lib/esm/modals/alert.mjs +2 -2
- package/dist/lib/esm/modals/confirm.mjs +3 -3
- package/dist/lib/esm/modals/prompt.mjs +3 -3
- package/dist/lib/esm/obsidian-lib-state.d.mts +30 -0
- package/dist/lib/esm/obsidian-lib-state.mjs +59 -0
- package/dist/lib/esm/path-settings.mjs +6 -6
- package/dist/lib/esm/plugin/index.d.mts +0 -1
- package/dist/lib/esm/plugin/index.mjs +1 -3
- package/dist/lib/esm/plugin/plugin-api.d.mts +5 -41
- package/dist/lib/esm/plugin/plugin-api.mjs +3 -3
- package/dist/lib/esm/plugin/plugin-context.mjs +1 -7
- package/dist/lib/esm/plugin/plugin-install-state.mjs +5 -5
- package/dist/lib/esm/plugin/plugin-lifecycle-events.d.mts +8 -62
- package/dist/lib/esm/plugin/plugin-lifecycle-events.mjs +1 -37
- package/dist/lib/esm/plugin/plugin.d.mts +1 -1
- package/dist/lib/esm/plugin/plugin.mjs +2 -2
- package/dist/lib/esm/popovers/popover.mjs +3 -3
- package/dist/lib/esm/queue.mjs +4 -4
- package/dist/lib/esm/reference.d.mts +12 -0
- package/dist/lib/esm/reference.mjs +6 -2
- package/dist/lib/esm/resource-lock.mjs +9 -9
- package/dist/lib/esm/vault-delete.mjs +2 -2
- package/dist/lib/esm/vault-transaction.d.mts +2 -1
- package/dist/lib/esm/vault-transaction.mjs +17 -2
- package/dist/lib/esm/vault.mjs +2 -2
- package/dist/styles.css +169 -169
- package/package.json +1 -1
- package/dist/lib/cjs/obsidian-dev-utils-state.cjs +0 -177
- package/dist/lib/cjs/obsidian-dev-utils-state.d.cts +0 -50
- package/dist/lib/cjs/plugin/plugin-api-schema.cjs +0 -127
- package/dist/lib/cjs/plugin/plugin-api-schema.d.cts +0 -37
- package/dist/lib/esm/obsidian-dev-utils-state.d.mts +0 -50
- package/dist/lib/esm/obsidian-dev-utils-state.mjs +0 -86
- package/dist/lib/esm/plugin/plugin-api-schema.d.mts +0 -37
- package/dist/lib/esm/plugin/plugin-api-schema.mjs +0 -41
- package/plugin/plugin-api-schema/package.json +0 -6
|
@@ -3,51 +3,15 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
|
3
3
|
if you want to view the source, please visit the github repository of this plugin
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { getObsidianDevUtilsState } from "../obsidian-dev-utils-state.mjs";
|
|
7
6
|
const PLUGIN_LOADED_EVENT_NAME = "obsidian-lib:plugin-loaded";
|
|
8
7
|
const PLUGIN_UNLOADED_EVENT_NAME = "obsidian-lib:plugin-unloaded";
|
|
9
|
-
const LEGACY_PLUGIN_LOADED_EVENT_NAME = "obsidian-dev-utils:plugin-loaded";
|
|
10
|
-
const LEGACY_PLUGIN_UNLOADED_EVENT_NAME = "obsidian-dev-utils:plugin-unloaded";
|
|
11
|
-
const PLUGIN_LIFECYCLE_EVENT_NAMES = [PLUGIN_LOADED_EVENT_NAME, PLUGIN_UNLOADED_EVENT_NAME];
|
|
12
|
-
const LEGACY_PLUGIN_LIFECYCLE_EVENT_NAMES = {
|
|
13
|
-
[PLUGIN_LOADED_EVENT_NAME]: LEGACY_PLUGIN_LOADED_EVENT_NAME,
|
|
14
|
-
[PLUGIN_UNLOADED_EVENT_NAME]: LEGACY_PLUGIN_UNLOADED_EVENT_NAME
|
|
15
|
-
};
|
|
16
|
-
const ANNOUNCED_PAYLOADS_STATE_KEY = "pluginLifecycleAnnouncedPayloadsV1";
|
|
17
|
-
function registerPluginLifecycleEventRelay(params) {
|
|
18
|
-
const { app, component } = params;
|
|
19
|
-
for (const name of PLUGIN_LIFECYCLE_EVENT_NAMES) {
|
|
20
|
-
component.registerEvent(app.workspace.on(LEGACY_PLUGIN_LIFECYCLE_EVENT_NAMES[name], (payload) => {
|
|
21
|
-
if (typeof payload !== "object" || payload === null) {
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
const announcedPayloads = getAnnouncedPayloads(name);
|
|
25
|
-
if (announcedPayloads.has(payload)) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
announcedPayloads.add(payload);
|
|
29
|
-
app.workspace.trigger(name, payload);
|
|
30
|
-
}));
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
8
|
function triggerPluginLifecycleEvent(params) {
|
|
34
9
|
const { app, name, payload } = params;
|
|
35
|
-
getAnnouncedPayloads(name).add(payload);
|
|
36
10
|
app.workspace.trigger(name, payload);
|
|
37
|
-
app.workspace.trigger(LEGACY_PLUGIN_LIFECYCLE_EVENT_NAMES[name], payload);
|
|
38
|
-
}
|
|
39
|
-
function getAnnouncedPayloads(name) {
|
|
40
|
-
return getObsidianDevUtilsState(ANNOUNCED_PAYLOADS_STATE_KEY, {
|
|
41
|
-
[PLUGIN_LOADED_EVENT_NAME]: /* @__PURE__ */ new WeakSet(),
|
|
42
|
-
[PLUGIN_UNLOADED_EVENT_NAME]: /* @__PURE__ */ new WeakSet()
|
|
43
|
-
}).value[name];
|
|
44
11
|
}
|
|
45
12
|
export {
|
|
46
|
-
LEGACY_PLUGIN_LOADED_EVENT_NAME,
|
|
47
|
-
LEGACY_PLUGIN_UNLOADED_EVENT_NAME,
|
|
48
13
|
PLUGIN_LOADED_EVENT_NAME,
|
|
49
14
|
PLUGIN_UNLOADED_EVENT_NAME,
|
|
50
|
-
registerPluginLifecycleEventRelay,
|
|
51
15
|
triggerPluginLifecycleEvent
|
|
52
16
|
};
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbi9wbHVnaW4tbGlmZWN5Y2xlLWV2ZW50cy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBsaWZlY3ljbGUgYnJvYWRjYXN0IGV2ZXJ5IHtAbGluayBQbHVnaW5CYXNlfSBtYWtlczogYG9ic2lkaWFuLWxpYjpwbHVnaW4tbG9hZGVkYCB3aGVuIGl0IGhhc1xuICogZmluaXNoZWQgbG9hZGluZyBhbmQgYG9ic2lkaWFuLWxpYjpwbHVnaW4tdW5sb2FkZWRgIHdoZW4gaXQgZ29lcyBhd2F5LiBFYWNoIGlzIGFsc28gdHJpZ2dlcmVkIHVuZGVyIGl0c1xuICogbGVnYWN5IG5hbWUsIGBvYnNpZGlhbi1kZXYtdXRpbHM6cGx1Z2luLWxvYWRlZGAgLyBgb2JzaWRpYW4tZGV2LXV0aWxzOnBsdWdpbi11bmxvYWRlZGAsIGZvciBnb29kLlxuICpcbiAqIE9ic2lkaWFuIGdpdmVzIGEgcGx1Z2luIG5vIHdheSB0byBsZWFybiB0aGF0IEFOT1RIRVIgcGx1Z2luIHdhcyBlbmFibGVkIG9yIGRpc2FibGVkIFx1MjAxNCB0aGVyZSBpcyBubyBzdWNoXG4gKiBldmVudCBvbiBgYXBwLnBsdWdpbnNgLCBhbmQgYSBwbHVnaW4ncyBvd24gYEV2ZW50c2Agc291cmNlIGNhbm5vdCBoZWxwIGEgbGlzdGVuZXIgdGhhdCBkb2VzIG5vdCB5ZXQgaG9sZFxuICogdGhlIGluc3RhbmNlLiBTbyB0aGUgYnJvYWRjYXN0IGdvZXMgdGhyb3VnaCBgYXBwLndvcmtzcGFjZWAsIHdoaWNoIGlzIG9uZSBvYmplY3QgZXZlcnkgcGx1Z2luIGluIHRoZVxuICogdmF1bHQgY2FuIHJlYWNoLiBEZWxpYmVyYXRlbHkgTk9UIHRoZSBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuRGV2VXRpbHNgIGJhZyB0aGUgcmVzdCBvZiB0aGUgbGlicmFyeSBzaGFyZXNcbiAqIGl0cyBzdGF0ZSB0aHJvdWdoOiBhIGxpc3RlbmVyIHRoZXJlIG5lZWRzIGl0cyBvd24gY29weSBvZiB0aGlzIGxpYnJhcnksIGFuZCB0aGVzZSBldmVudHMgYXJlIG1lYW50IHRvIGJlXG4gKiBjb25zdW1hYmxlIGJ5IGFueSBwbHVnaW4gYXQgYWxsLlxuICpcbiAqIFRoZSBuYW1lcyBhcmUgcGFzdCB0ZW5zZSBiZWNhdXNlIGEgYnJvYWRjYXN0IHN0YXRlcyBzb21ldGhpbmcgdGhhdCBoYXMgYWxyZWFkeSBoYXBwZW5lZC4gYGxvYWRlZGAgaW5cbiAqIHBhcnRpY3VsYXIgY2FycmllcyBhIGd1YXJhbnRlZTogaXQgaXMgdHJpZ2dlcmVkIG9ubHkgYWZ0ZXIgZXZlcnkgQVBJIHRoZSBwbHVnaW4gZGVjbGFyZXMgaGFzIGJlZW5cbiAqIHB1Ymxpc2hlZCwgc28gYSBsaXN0ZW5lciBtYXkgY2FsbCB0aGVtIGltbWVkaWF0ZWx5LlxuICpcbiAqIEJvdGggdGhlIGV2ZW50IG5hbWVzIGFuZCB7QGxpbmsgUGx1Z2luTGlmZWN5Y2xlRXZlbnRQYXlsb2FkfSBhcmUgYSBDUk9TUy1WRVJTSU9OIENPTlRSQUNULiBDb3BpZXMgb2ZcbiAqIHRoaXMgbGlicmFyeSBhdCBkaWZmZXJlbnQgdmVyc2lvbnMgcHVibGlzaCBhbmQgY29uc3VtZSB0aGVtIHNpZGUgYnkgc2lkZSBpbiBvbmUgdmF1bHQsIHNvIG5laXRoZXIgbWF5XG4gKiBjaGFuZ2UgaW5jb21wYXRpYmx5OiBwbGFpbiBkYXRhIG9ubHksIGFuZCBuZXcgcGF5bG9hZCBmaWVsZHMgb25seSBldmVyIGFkZGVkLlxuICpcbiAqIFRoYXQgY29udHJhY3QgaXMgYWxzbyBQVUJMSVNIRUQsIGFzIG9mIHRoZSBgUGx1Z2luIEFQSSBwcm90b2NvbGAgZ3VpZGU6IHRoaXJkLXBhcnR5IHBsdWdpbnMgdGhhdCB3aWxsXG4gKiBuZXZlciBpbnN0YWxsIHRoaXMgbGlicmFyeSBhcmUgdG9sZCB0byBoYXJkY29kZSB0aGVzZSBzdHJpbmdzIGFuZCB0aGlzIHBheWxvYWQgc2hhcGUuIFB1Ymxpc2hpbmcgaXRcbiAqIGFkZGVkIG5vIG5ldyBjb25zdHJhaW50IFx1MjAxNCB0aGUgY3Jvc3MtY29weSBvbmUgYWJvdmUgYWxyZWFkeSBmb3JiYWRlIGV2ZXJ5IGNoYW5nZSBhbiBvdXRzaWRlciBjb3VsZFxuICogbm90aWNlLlxuICpcbiAqIFRoZSByZW5hbWUgdG8gYG9ic2lkaWFuLWxpYjpgIGlzIGFkZGl0aXZlIGZvciB0aGF0IHJlYXNvbi4gQWxyZWFkeS1yZWxlYXNlZCBjb3BpZXMgZW1pdCBhbmQgaGVhciBvbmx5IHRoZVxuICogbGVnYWN5IG5hbWVzLCBzbyBhIGN1cnJlbnQgY29weSB0cmlnZ2VycyBib3RoLCBhbmQgcmVsYXlzIGFuIG9sZGVyIGNvcHkncyBsZWdhY3kgZXZlbnQgdG8gdGhlIGN1cnJlbnRcbiAqIG5hbWUgKHtAbGluayByZWdpc3RlclBsdWdpbkxpZmVjeWNsZUV2ZW50UmVsYXl9KS4gQSBsaXN0ZW5lciB0aGVyZWZvcmUgbmVlZHMgZXhhY3RseSBPTkUgb2YgdGhlIHR3byBuYW1lczpcbiAqIHRoZSBsZWdhY3kgb25lIGhlYXJzIGV2ZXJ5IGNvcHkgZXZlciByZWxlYXNlZCwgYW5kIHRoZSBjdXJyZW50IG9uZSBoZWFycyBldmVyeSBjb3B5IHdoZW5ldmVyIGF0IGxlYXN0IG9uZVxuICogY3VycmVudCBjb3B5IGlzIGxvYWRlZCB0byByZWxheS4gTGlzdGVuaW5nIG9uIGJvdGggaGVhcnMgZXZlcnkgY3VycmVudCBjb3B5IHR3aWNlLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQXBwLFxuICBDb21wb25lbnRcbn0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgeyBnZXRPYnNpZGlhbkRldlV0aWxzU3RhdGUgfSBmcm9tICcuLi9vYnNpZGlhbi1kZXYtdXRpbHMtc3RhdGUudHMnO1xuXG4vKipcbiAqIFRoZSBuYW1lIG9mIGVpdGhlciBsaWZlY3ljbGUgZXZlbnQuXG4gKi9cbmV4cG9ydCB0eXBlIFBsdWdpbkxpZmVjeWNsZUV2ZW50TmFtZSA9IHR5cGVvZiBQTFVHSU5fTE9BREVEX0VWRU5UX05BTUUgfCB0eXBlb2YgUExVR0lOX1VOTE9BREVEX0VWRU5UX05BTUU7XG5cbi8qKlxuICogVGhlIHBheWxvYWQgb2Yge0BsaW5rIFBMVUdJTl9MT0FERURfRVZFTlRfTkFNRX0gYW5kIHtAbGluayBQTFVHSU5fVU5MT0FERURfRVZFTlRfTkFNRX0uXG4gKlxuICogUGxhaW4gZGF0YSBieSBkZXNpZ24gXHUyMDE0IG5vIGNsYXNzIGluc3RhbmNlcyBhbmQgbm8gdHlwZXMgb3duZWQgYnkgdGhpcyBsaWJyYXJ5IFx1MjAxNCBiZWNhdXNlIGl0IGNyb3NzZXNcbiAqIGJldHdlZW4gaW5kZXBlbmRlbnRseSBidW5kbGVkIGNvcGllcyBvZiBpdCwgYW5kIGJldHdlZW4gcGx1Z2lucyB0aGF0IGRvIG5vdCB1c2UgaXQgYXQgYWxsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbkxpZmVjeWNsZUV2ZW50UGF5bG9hZCB7XG4gIC8qKlxuICAgKiBUaGUgY29udHJhY3QgdmVyc2lvbnMgdGhlIHBsdWdpbiBwdWJsaXNoZWQsIGVtcHR5IHdoZW4gaXQgcHVibGlzaGVzIG5vIEFQSS5cbiAgICpcbiAgICogQW4gYXJyYXkgcmF0aGVyIHRoYW4gYSBzaW5nbGUgdmVyc2lvbiBiZWNhdXNlIGEgcHJvdmlkZXIgbWF5IHB1Ymxpc2ggc2V2ZXJhbCBjb250cmFjdCB2ZXJzaW9ucyBzaWRlIGJ5XG4gICAqIHNpZGUsIHNvIGNvbnN1bWVycyBwaW5uZWQgdG8gYW4gb2xkZXIgcmFuZ2Uga2VlcCB3b3JraW5nIGFjcm9zcyBhIGJyZWFraW5nIGNoYW5nZS5cbiAgICpcbiAgICogVGhlIEFQSSBvYmplY3RzIHRoZW1zZWx2ZXMgYXJlIGRlbGliZXJhdGVseSBOT1QgaGVyZS4gQSBoYW5kbGUgZGVsaXZlcmVkIGJ5IGEgb25lLXNob3QgZXZlbnQgaXMgYVxuICAgKiBwcm9iZTogaXQgYW5zd2VycyBcIm5vd1wiIGFuZCBuZXZlciBzYXlzIHdoZW4gXCJub3dcIiBjaGFuZ2VkLCBhbmQgb25lIHRoYXQgb3V0bGl2ZXMgdGhlIHByb3ZpZGVyIGlzXG4gICAqIGV4YWN0bHkgdGhlIHN0YWxlIGhhbmRsZSB0aGUgcGx1Z2luLWFwaSByZWdpc3RyeSdzIHJldm9jYWJsZSBoYW5kbGVzIGV4aXN0IHRvIHByZXZlbnQuIFJlYWNoIHRoZSBBUElcbiAgICogdGhyb3VnaCBgd2F0Y2hQbHVnaW5BcGlgIGluc3RlYWQsIHdob3NlIHJlZmVyZW5jZSBzdGF5cyBjb3JyZWN0IGFjcm9zcyB1bmxvYWQgYW5kIHJlLWVuYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwaVZlcnNpb25zOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGlkcyBvZiB0aGUgcGx1Z2lucyB0aGlzIG9uZSBkZWNsYXJlcyBhcyBtYW5kYXRvcnkgZGVwZW5kZW5jaWVzLCBlbXB0eSB3aGVuIGl0IGRlY2xhcmVzIG5vbmUuXG4gICAqXG4gICAqIFByZXNlbnQgc28gdGhlIHJlbGF0aW9uc2hpcCBjYW4gYmUgcmVhZCBmcm9tIHRoZSBPVEhFUiBlbmQ6IGEgcHJvdmlkZXIgaGFzIG5vIHdheSB0byBhc2sgd2hvIGRlcGVuZHNcbiAgICogb24gaXQgXHUyMDE0IHRoZSByZWdpc3RyeSBvbmx5IGFuc3dlcnMgY29uc3VtZXItdG8tcHJvdmlkZXIgXHUyMDE0IGFuZCBcIndoaWNoIGluc3RhbGxlZCBwbHVnaW5zIG5lZWQgdGhpcyBvbmVcIlxuICAgKiBpcyB3aGF0IGxldHMgYSBwcm92aWRlcidzIHNldHRpbmdzIHRhYiB0ZWxsIHRoZSB1c2VyIHdoeSBpdCBpcyBpbiB0aGVpciB2YXVsdCBhdCBhbGwuXG4gICAqL1xuICByZWFkb25seSBkZXBlbmRlbmN5UGx1Z2luSWRzOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHBsdWdpbidzIGBtYW5pZmVzdC5pZGAuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luJ3MgYG1hbmlmZXN0Lm5hbWVgLCBmb3IgZGlzcGxheS5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBsdWdpbidzIGBtYW5pZmVzdC52ZXJzaW9uYC5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpblZlcnNpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgcmVnaXN0ZXJQbHVnaW5MaWZlY3ljbGVFdmVudFJlbGF5fS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RlclBsdWdpbkxpZmVjeWNsZUV2ZW50UmVsYXlQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZSB3aG9zZSB3b3Jrc3BhY2UgY2FycmllcyB0aGUgYnJvYWRjYXN0LlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBjb21wb25lbnQgdGhhdCBvd25zIHRoZSByZWxheTogaXQgcmVsYXlzIHdoaWxlIHRoZSBjb21wb25lbnQgaXMgbG9hZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcG9uZW50OiBDb21wb25lbnQ7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHRyaWdnZXJQbHVnaW5MaWZlY3ljbGVFdmVudH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJpZ2dlclBsdWdpbkxpZmVjeWNsZUV2ZW50UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2Ugd2hvc2Ugd29ya3NwYWNlIGNhcnJpZXMgdGhlIGJyb2FkY2FzdC5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdG8gdHJpZ2dlci5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IFBsdWdpbkxpZmVjeWNsZUV2ZW50TmFtZTtcblxuICAvKipcbiAgICogVGhlIHBheWxvYWQgZGVzY3JpYmluZyB0aGUgcGx1Z2luLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF5bG9hZDogUGx1Z2luTGlmZWN5Y2xlRXZlbnRQYXlsb2FkO1xufVxuXG50eXBlIEFubm91bmNlZFBheWxvYWRzID0gUmVjb3JkPFBsdWdpbkxpZmVjeWNsZUV2ZW50TmFtZSwgV2Vha1NldDxvYmplY3Q+PjtcblxuLyoqXG4gKiBUcmlnZ2VyZWQgb25jZSBhIHBsdWdpbiBoYXMgZmluaXNoZWQgbG9hZGluZyBBTkQgcHVibGlzaGVkIGV2ZXJ5IEFQSSBpdCBkZWNsYXJlcywgc28gYSBsaXN0ZW5lciBtYXkgY2FsbFxuICogdGhvc2UgQVBJcyBpbW1lZGlhdGVseS5cbiAqXG4gKiBOYW1lc3BhY2VkIGJ5IHRoZSBwYWNrYWdlIG5hbWUgcmF0aGVyIHRoYW4gYnkgYW4gYWJicmV2aWF0aW9uIG9mIGl0OiB0aGUgZXZlbnQgaXMgZ2xvYmFsIHRvIHRoZSB2YXVsdFxuICogYW5kIGFpbWVkIGF0IHBsdWdpbiBhdXRob3JzIHdobyBoYXZlIG5ldmVyIGhlYXJkIG9mIHRoaXMgbGlicmFyeSwgc28gdGhlIHByZWZpeCBoYXMgdG8gaWRlbnRpZnkgaXRzZWxmLlxuICovXG5leHBvcnQgY29uc3QgUExVR0lOX0xPQURFRF9FVkVOVF9OQU1FID0gJ29ic2lkaWFuLWxpYjpwbHVnaW4tbG9hZGVkJztcblxuLyoqXG4gKiBUcmlnZ2VyZWQgYXMgYSBwbHVnaW4gdW5sb2FkcyBcdTIwMTQgd2hldGhlciB0aGUgdXNlciBkaXNhYmxlZCBpdCwgdW5pbnN0YWxsZWQgaXQsIG9yIE9ic2lkaWFuIGlzIHNodXR0aW5nXG4gKiBkb3duLiBJdHMgQVBJcyBhcmUgcmV2b2tlZCBieSB0aGUgdGltZSBhIGxpc3RlbmVyIHJ1bnMuXG4gKi9cbmV4cG9ydCBjb25zdCBQTFVHSU5fVU5MT0FERURfRVZFTlRfTkFNRSA9ICdvYnNpZGlhbi1saWI6cGx1Z2luLXVubG9hZGVkJztcblxuLyoqXG4gKiBUaGUgbGVnYWN5IG5hbWUgb2Yge0BsaW5rIFBMVUdJTl9MT0FERURfRVZFTlRfTkFNRX0sIGZyb20gYmVmb3JlIHRoZSBsaWJyYXJ5IHdhcyByZW5hbWVkLiBJdCBpcyBzdGlsbFxuICogdHJpZ2dlcmVkLCBmb3IgZ29vZCwgYmVjYXVzZSBvbGRlciBjb3BpZXMgbGlzdGVuIG9ubHkgb24gaXQuXG4gKi9cbmV4cG9ydCBjb25zdCBMRUdBQ1lfUExVR0lOX0xPQURFRF9FVkVOVF9OQU1FID0gJ29ic2lkaWFuLWRldi11dGlsczpwbHVnaW4tbG9hZGVkJztcblxuLyoqXG4gKiBUaGUgbGVnYWN5IG5hbWUgb2Yge0BsaW5rIFBMVUdJTl9VTkxPQURFRF9FVkVOVF9OQU1FfSwgZnJvbSBiZWZvcmUgdGhlIGxpYnJhcnkgd2FzIHJlbmFtZWQuIEl0IGlzIHN0aWxsXG4gKiB0cmlnZ2VyZWQsIGZvciBnb29kLCBiZWNhdXNlIG9sZGVyIGNvcGllcyBsaXN0ZW4gb25seSBvbiBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IExFR0FDWV9QTFVHSU5fVU5MT0FERURfRVZFTlRfTkFNRSA9ICdvYnNpZGlhbi1kZXYtdXRpbHM6cGx1Z2luLXVubG9hZGVkJztcblxuLyoqXG4gKiBUaGUgbGVnYWN5IG5hbWUgb2YgZWl0aGVyIGxpZmVjeWNsZSBldmVudC5cbiAqL1xuZXhwb3J0IHR5cGUgTGVnYWN5UGx1Z2luTGlmZWN5Y2xlRXZlbnROYW1lID0gdHlwZW9mIExFR0FDWV9QTFVHSU5fTE9BREVEX0VWRU5UX05BTUUgfCB0eXBlb2YgTEVHQUNZX1BMVUdJTl9VTkxPQURFRF9FVkVOVF9OQU1FO1xuXG5jb25zdCBQTFVHSU5fTElGRUNZQ0xFX0VWRU5UX05BTUVTOiByZWFkb25seSBQbHVnaW5MaWZlY3ljbGVFdmVudE5hbWVbXSA9IFtQTFVHSU5fTE9BREVEX0VWRU5UX05BTUUsIFBMVUdJTl9VTkxPQURFRF9FVkVOVF9OQU1FXTtcblxuY29uc3QgTEVHQUNZX1BMVUdJTl9MSUZFQ1lDTEVfRVZFTlRfTkFNRVM6IFJlYWRvbmx5PFJlY29yZDxQbHVnaW5MaWZlY3ljbGVFdmVudE5hbWUsIExlZ2FjeVBsdWdpbkxpZmVjeWNsZUV2ZW50TmFtZT4+ID0ge1xuICBbUExVR0lOX0xPQURFRF9FVkVOVF9OQU1FXTogTEVHQUNZX1BMVUdJTl9MT0FERURfRVZFTlRfTkFNRSxcbiAgW1BMVUdJTl9VTkxPQURFRF9FVkVOVF9OQU1FXTogTEVHQUNZX1BMVUdJTl9VTkxPQURFRF9FVkVOVF9OQU1FXG59O1xuXG4vKipcbiAqIFRoZSBzaGFyZWQtc3RhdGUga2V5IG9mIHRoZSBwYXlsb2FkcyBhbHJlYWR5IGFubm91bmNlZCB1bmRlciB0aGUgY3VycmVudCBuYW1lcy4gU2hhcmVkIGJldHdlZW4gY29waWVzIG9mXG4gKiB0aGlzIGxpYnJhcnksIHNvIGl0IGlzIHZlcnNpb25lZDogYSBjaGFuZ2UgdG8gd2hhdCBpdCBob2xkcyB0YWtlcyBhIG5ldyBrZXkuXG4gKi9cbmNvbnN0IEFOTk9VTkNFRF9QQVlMT0FEU19TVEFURV9LRVkgPSAncGx1Z2luTGlmZWN5Y2xlQW5ub3VuY2VkUGF5bG9hZHNWMSc7XG5cbmRlY2xhcmUgbW9kdWxlICdvYnNpZGlhbicge1xuICBpbnRlcmZhY2UgV29ya3NwYWNlIHtcbiAgICAvKipcbiAgICAgKiBTdWJzY3JpYmVzIHRvIGEgcGx1Z2luIGZpbmlzaGluZyBpdHMgbG9hZCwgb3IgdG8gb25lIHVubG9hZGluZy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lIC0gU2hvdWxkIGJlIHtAbGluayBQTFVHSU5fTE9BREVEX0VWRU5UX05BTUV9IG9yIHtAbGluayBQTFVHSU5fVU5MT0FERURfRVZFTlRfTkFNRX0sIG9yIG9uZSBvZiB0aGVpclxuICAgICAqICAgbGVnYWN5IG5hbWVzLlxuICAgICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayByZWNlaXZpbmcgdGhlIHBsdWdpbidzIHBheWxvYWQuXG4gICAgICogQHBhcmFtIGNvbnRleHQgLSBUaGUgY29udGV4dCBwYXNzZWQgYXMgYHRoaXNgIHRvIHRoZSBgY2FsbGJhY2tgIGZ1bmN0aW9uLlxuICAgICAqIEByZXR1cm5zIFRoZSBldmVudCByZWZlcmVuY2UuXG4gICAgICovXG4gICAgLypcbiAgICAgKiBBbiBhdWdtZW50YXRpb24gb2YgYW4gRVhJU1RJTkcgb3ZlcmxvYWQgc2V0IGhhcyB0byBzdGF5IGEgbWV0aG9kIHNpZ25hdHVyZS4gQSBwcm9wZXJ0eSBtZW1iZXIgZG9lcyBub3QgbWVyZ2UgaW50b1xuICAgICAqIGBXb3Jrc3BhY2Uub25gJ3Mgb3ZlcmxvYWRzLCBhbmQgVHlwZVNjcmlwdCBzYXlzIHNvIG5vd2hlcmUgbmVhciBoZXJlOiB0aGUgZGVjbGFyYXRpb24gaXRzZWxmIGNvbXBpbGVzLCBhbmQgZXZlcnlcbiAgICAgKiBjYWxsIHNpdGUgbG9zZXMgdGhlIHNpZ25hdHVyZSBpbnN0ZWFkIFx1MjAxNCBgb24oUExVR0lOX0xPQURFRF9FVkVOVF9OQU1FLCAuLi4pYCBmYWlscyB3aXRoIFwidGhlIGxhc3Qgb3ZlcmxvYWQgZ2F2ZSB0aGVcbiAgICAgKiBmb2xsb3dpbmcgZXJyb3JcIi4gVGhlIHJ1bGUgcmVwb3J0cyB0aGlzIG9uZSB3aXRob3V0IGEgZml4IGZvciB0aGUgc2FtZSByZWFzb24sIHNvIHRoZSBkaXNhYmxlIGJlbG93IGlzIHRoZSBhbnN3ZXJcbiAgICAgKiByYXRoZXIgdGhhbiBhIGRlZmVycmFsLlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWV0aG9kLXNpZ25hdHVyZS1zdHlsZSAtLSBBIHByb3BlcnR5IG1lbWJlciBkb2VzIG5vdCBtZXJnZSBpbnRvIGFuIGV4aXN0aW5nIG92ZXJsb2FkIHNldC4gU2VlIGFib3ZlLlxuICAgIG9uKFxuICAgICAgbmFtZTogTGVnYWN5UGx1Z2luTGlmZWN5Y2xlRXZlbnROYW1lIHwgUGx1Z2luTGlmZWN5Y2xlRXZlbnROYW1lLFxuICAgICAgY2FsbGJhY2s6IChwYXlsb2FkOiBQbHVnaW5MaWZlY3ljbGVFdmVudFBheWxvYWQpID0+IHVua25vd24sXG4gICAgICBjb250ZXh0PzogdW5rbm93blxuICAgICk6IEV2ZW50UmVmO1xuICB9XG59XG5cbi8qKlxuICogUmVsYXlzIGFuIG9sZGVyIGNvcHkncyBsaWZlY3ljbGUgZXZlbnRzIHRvIHRoZSBjdXJyZW50IG5hbWVzLCBmb3IgYXMgbG9uZyBhcyBgY29tcG9uZW50YCBpcyBsb2FkZWQuXG4gKlxuICogQW4gb2xkZXIgY29weSBvZiB0aGlzIGxpYnJhcnkgZW1pdHMgb25seSB0aGUgbGVnYWN5IG5hbWVzLCBzbyB3aXRob3V0IGEgcmVsYXkgYSBsaXN0ZW5lciBvblxuICoge0BsaW5rIFBMVUdJTl9MT0FERURfRVZFTlRfTkFNRX0gd291bGQgbmV2ZXIgaGVhciBhYm91dCBpdC4gVGhlIHJlbGF5IGxpc3RlbnMgb24gZWFjaCBsZWdhY3kgbmFtZSBhbmRcbiAqIHJlLXRyaWdnZXJzIHRoZSBjdXJyZW50IG9uZSwgdW5sZXNzIHRoZSBwYXlsb2FkIHdhcyBhbHJlYWR5IGFubm91bmNlZCB1bmRlciBpdC4gQSBjdXJyZW50IGNvcHkgYW5ub3VuY2VzXG4gKiB1bmRlciBib3RoIG5hbWVzIChzZWUge0BsaW5rIHRyaWdnZXJQbHVnaW5MaWZlY3ljbGVFdmVudH0pIGFuZCBtYXJrcyBpdHMgcGF5bG9hZCBmaXJzdCwgc28gaXRzIG93biBsZWdhY3lcbiAqIGVjaG8gaXMgc2tpcHBlZC4gRXZlcnkgcGx1Z2luIGJ1aWx0IG9uIHRoaXMgbGlicmFyeSByZWdpc3RlcnMgYSByZWxheSwgYW5kIHRoZXkgc2hhcmUgb25lIHNldCBvZiBtYXJrcyxcbiAqIHNvIHRoZSBmaXJzdCByZWxheSB0byBzZWUgYW4gb2xkZXIgY29weSdzIGV2ZW50IHJlLXRyaWdnZXJzIGl0IGFuZCB0aGUgcmVzdCBza2lwIGl0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIFJlZ2lzdGVyUGx1Z2luTGlmZWN5Y2xlRXZlbnRSZWxheVBhcmFtc30uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlclBsdWdpbkxpZmVjeWNsZUV2ZW50UmVsYXkocGFyYW1zOiBSZWdpc3RlclBsdWdpbkxpZmVjeWNsZUV2ZW50UmVsYXlQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3QgeyBhcHAsIGNvbXBvbmVudCB9ID0gcGFyYW1zO1xuICBmb3IgKGNvbnN0IG5hbWUgb2YgUExVR0lOX0xJRkVDWUNMRV9FVkVOVF9OQU1FUykge1xuICAgIGNvbXBvbmVudC5yZWdpc3RlckV2ZW50KGFwcC53b3Jrc3BhY2Uub24oTEVHQUNZX1BMVUdJTl9MSUZFQ1lDTEVfRVZFTlRfTkFNRVNbbmFtZV0sIChwYXlsb2FkOiB1bmtub3duKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHBheWxvYWQgIT09ICdvYmplY3QnIHx8IHBheWxvYWQgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBhbm5vdW5jZWRQYXlsb2FkcyA9IGdldEFubm91bmNlZFBheWxvYWRzKG5hbWUpO1xuICAgICAgaWYgKGFubm91bmNlZFBheWxvYWRzLmhhcyhwYXlsb2FkKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGFubm91bmNlZFBheWxvYWRzLmFkZChwYXlsb2FkKTtcbiAgICAgIGFwcC53b3Jrc3BhY2UudHJpZ2dlcihuYW1lLCBwYXlsb2FkKTtcbiAgICB9KSk7XG4gIH1cbn1cblxuLyoqXG4gKiBUcmlnZ2VycyBvbmUgb2YgdGhlIHR3byBsaWZlY3ljbGUgZXZlbnRzIG9uIHRoZSBhcHAncyB3b3Jrc3BhY2UsIHVuZGVyIGl0cyBjdXJyZW50IG5hbWUgYW5kIHRoZW4gdW5kZXJcbiAqIGl0cyBsZWdhY3kgbmFtZS5cbiAqXG4gKiBCb3RoLCBzbyBhIGxpc3RlbmVyIHdyaXR0ZW4gYWdhaW5zdCBlaXRoZXIgbmFtZSBoZWFycyBldmVyeSBwbHVnaW4gYnVpbHQgb24gdGhpcyBsaWJyYXJ5OiBvbGRlciBjb3BpZXNcbiAqIGxpc3RlbiBvbmx5IG9uIHRoZSBsZWdhY3kgbmFtZS4gVGhlIGN1cnJlbnQgbmFtZSBnb2VzIGZpcnN0IGFuZCB0aGUgcGF5bG9hZCBpcyBtYXJrZWQgYmVmb3JlIGVpdGhlciwgc29cbiAqIHRoZSByZWxheXMgKHNlZSB7QGxpbmsgcmVnaXN0ZXJQbHVnaW5MaWZlY3ljbGVFdmVudFJlbGF5fSkgc2tpcCB0aGUgbGVnYWN5IGVjaG8gaW5zdGVhZCBvZiBhbm5vdW5jaW5nIHRoZVxuICogcGx1Z2luIGEgc2Vjb25kIHRpbWUuXG4gKlxuICogT3RoZXJ3aXNlIGEgdGhpbiB0eXBlZCB3cmFwcGVyIG92ZXIgYFdvcmtzcGFjZS50cmlnZ2VyYCwgd2hpY2ggYWNjZXB0cyBhbnkgZXZlbnQgbmFtZSBhbmQgYW55IGFyZ3VtZW50cyxcbiAqIHNvIHRoYXQgdGhlIG9uZSBwbGFjZSBhIHBheWxvYWQgaXMgY29uc3RydWN0ZWQgaXMgY2hlY2tlZCBhZ2FpbnN0IHtAbGluayBQbHVnaW5MaWZlY3ljbGVFdmVudFBheWxvYWR9LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIFRyaWdnZXJQbHVnaW5MaWZlY3ljbGVFdmVudFBhcmFtc30uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmlnZ2VyUGx1Z2luTGlmZWN5Y2xlRXZlbnQocGFyYW1zOiBUcmlnZ2VyUGx1Z2luTGlmZWN5Y2xlRXZlbnRQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3QgeyBhcHAsIG5hbWUsIHBheWxvYWQgfSA9IHBhcmFtcztcbiAgZ2V0QW5ub3VuY2VkUGF5bG9hZHMobmFtZSkuYWRkKHBheWxvYWQpO1xuICBhcHAud29ya3NwYWNlLnRyaWdnZXIobmFtZSwgcGF5bG9hZCk7XG4gIGFwcC53b3Jrc3BhY2UudHJpZ2dlcihMRUdBQ1lfUExVR0lOX0xJRkVDWUNMRV9FVkVOVF9OQU1FU1tuYW1lXSwgcGF5bG9hZCk7XG59XG5cbmZ1bmN0aW9uIGdldEFubm91bmNlZFBheWxvYWRzKG5hbWU6IFBsdWdpbkxpZmVjeWNsZUV2ZW50TmFtZSk6IFdlYWtTZXQ8b2JqZWN0PiB7XG4gIHJldHVybiBnZXRPYnNpZGlhbkRldlV0aWxzU3RhdGU8QW5ub3VuY2VkUGF5bG9hZHM+KEFOTk9VTkNFRF9QQVlMT0FEU19TVEFURV9LRVksIHtcbiAgICBbUExVR0lOX0xPQURFRF9FVkVOVF9OQU1FXTogbmV3IFdlYWtTZXQoKSxcbiAgICBbUExVR0lOX1VOTE9BREVEX0VWRU5UX05BTUVdOiBuZXcgV2Vha1NldCgpXG4gIH0pLnZhbHVlW25hbWVdO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUF1Q0EsU0FBUyxnQ0FBZ0M7QUFnR2xDLE1BQU0sMkJBQTJCO0FBTWpDLE1BQU0sNkJBQTZCO0FBTW5DLE1BQU0sa0NBQWtDO0FBTXhDLE1BQU0sb0NBQW9DO0FBT2pELE1BQU0sK0JBQW9FLENBQUMsMEJBQTBCLDBCQUEwQjtBQUUvSCxNQUFNLHNDQUFrSDtBQUFBLEVBQ3RILENBQUMsd0JBQXdCLEdBQUc7QUFBQSxFQUM1QixDQUFDLDBCQUEwQixHQUFHO0FBQ2hDO0FBTUEsTUFBTSwrQkFBK0I7QUF5QzlCLFNBQVMsa0NBQWtDLFFBQXVEO0FBQ3ZHLFFBQU0sRUFBRSxLQUFLLFVBQVUsSUFBSTtBQUMzQixhQUFXLFFBQVEsOEJBQThCO0FBQy9DLGNBQVUsY0FBYyxJQUFJLFVBQVUsR0FBRyxvQ0FBb0MsSUFBSSxHQUFHLENBQUMsWUFBcUI7QUFDeEcsVUFBSSxPQUFPLFlBQVksWUFBWSxZQUFZLE1BQU07QUFDbkQ7QUFBQSxNQUNGO0FBRUEsWUFBTSxvQkFBb0IscUJBQXFCLElBQUk7QUFDbkQsVUFBSSxrQkFBa0IsSUFBSSxPQUFPLEdBQUc7QUFDbEM7QUFBQSxNQUNGO0FBRUEsd0JBQWtCLElBQUksT0FBTztBQUM3QixVQUFJLFVBQVUsUUFBUSxNQUFNLE9BQU87QUFBQSxJQUNyQyxDQUFDLENBQUM7QUFBQSxFQUNKO0FBQ0Y7QUFnQk8sU0FBUyw0QkFBNEIsUUFBaUQ7QUFDM0YsUUFBTSxFQUFFLEtBQUssTUFBTSxRQUFRLElBQUk7QUFDL0IsdUJBQXFCLElBQUksRUFBRSxJQUFJLE9BQU87QUFDdEMsTUFBSSxVQUFVLFFBQVEsTUFBTSxPQUFPO0FBQ25DLE1BQUksVUFBVSxRQUFRLG9DQUFvQyxJQUFJLEdBQUcsT0FBTztBQUMxRTtBQUVBLFNBQVMscUJBQXFCLE1BQWlEO0FBQzdFLFNBQU8seUJBQTRDLDhCQUE4QjtBQUFBLElBQy9FLENBQUMsd0JBQXdCLEdBQUcsb0JBQUksUUFBUTtBQUFBLElBQ3hDLENBQUMsMEJBQTBCLEdBQUcsb0JBQUksUUFBUTtBQUFBLEVBQzVDLENBQUMsRUFBRSxNQUFNLElBQUk7QUFDZjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbi9wbHVnaW4tbGlmZWN5Y2xlLWV2ZW50cy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRoZSBsaWZlY3ljbGUgYnJvYWRjYXN0IGV2ZXJ5IHtAbGluayBQbHVnaW5CYXNlfSBtYWtlczogYG9ic2lkaWFuLWxpYjpwbHVnaW4tbG9hZGVkYCB3aGVuIGl0IGhhc1xuICogZmluaXNoZWQgbG9hZGluZyBhbmQgYG9ic2lkaWFuLWxpYjpwbHVnaW4tdW5sb2FkZWRgIHdoZW4gaXQgZ29lcyBhd2F5LlxuICpcbiAqIE9ic2lkaWFuIGdpdmVzIGEgcGx1Z2luIG5vIHdheSB0byBsZWFybiB0aGF0IEFOT1RIRVIgcGx1Z2luIHdhcyBlbmFibGVkIG9yIGRpc2FibGVkIFx1MjAxNCB0aGVyZSBpcyBubyBzdWNoXG4gKiBldmVudCBvbiBgYXBwLnBsdWdpbnNgLCBhbmQgYSBwbHVnaW4ncyBvd24gYEV2ZW50c2Agc291cmNlIGNhbm5vdCBoZWxwIGEgbGlzdGVuZXIgdGhhdCBkb2VzIG5vdCB5ZXQgaG9sZFxuICogdGhlIGluc3RhbmNlLiBTbyB0aGUgYnJvYWRjYXN0IGdvZXMgdGhyb3VnaCBgYXBwLndvcmtzcGFjZWAsIHdoaWNoIGlzIG9uZSBvYmplY3QgZXZlcnkgcGx1Z2luIGluIHRoZVxuICogdmF1bHQgY2FuIHJlYWNoLiBEZWxpYmVyYXRlbHkgTk9UIHRoZSBgZ2xvYmFsVGhpcy5fX29ic2lkaWFuTGliYCBiYWcgdGhlIHJlc3Qgb2YgdGhlIGxpYnJhcnkgc2hhcmVzXG4gKiBpdHMgc3RhdGUgdGhyb3VnaDogYSBsaXN0ZW5lciB0aGVyZSBuZWVkcyBpdHMgb3duIGNvcHkgb2YgdGhpcyBsaWJyYXJ5LCBhbmQgdGhlc2UgZXZlbnRzIGFyZSBtZWFudCB0byBiZVxuICogY29uc3VtYWJsZSBieSBhbnkgcGx1Z2luIGF0IGFsbC5cbiAqXG4gKiBUaGUgbmFtZXMgYXJlIHBhc3QgdGVuc2UgYmVjYXVzZSBhIGJyb2FkY2FzdCBzdGF0ZXMgc29tZXRoaW5nIHRoYXQgaGFzIGFscmVhZHkgaGFwcGVuZWQuIGBsb2FkZWRgIGluXG4gKiBwYXJ0aWN1bGFyIGNhcnJpZXMgYSBndWFyYW50ZWU6IGl0IGlzIHRyaWdnZXJlZCBvbmx5IGFmdGVyIGV2ZXJ5IEFQSSB0aGUgcGx1Z2luIGRlY2xhcmVzIGhhcyBiZWVuXG4gKiBwdWJsaXNoZWQsIHNvIGEgbGlzdGVuZXIgbWF5IGNhbGwgdGhlbSBpbW1lZGlhdGVseS5cbiAqXG4gKiBCb3RoIHRoZSBldmVudCBuYW1lcyBhbmQge0BsaW5rIFBsdWdpbkxpZmVjeWNsZUV2ZW50UGF5bG9hZH0gYXJlIGEgQ1JPU1MtVkVSU0lPTiBDT05UUkFDVC4gQ29waWVzIG9mXG4gKiB0aGlzIGxpYnJhcnkgYXQgZGlmZmVyZW50IHZlcnNpb25zIHB1Ymxpc2ggYW5kIGNvbnN1bWUgdGhlbSBzaWRlIGJ5IHNpZGUgaW4gb25lIHZhdWx0LCBzbyBuZWl0aGVyIG1heVxuICogY2hhbmdlIGluY29tcGF0aWJseTogcGxhaW4gZGF0YSBvbmx5LCBhbmQgbmV3IHBheWxvYWQgZmllbGRzIG9ubHkgZXZlciBhZGRlZC5cbiAqXG4gKiBUaGF0IGNvbnRyYWN0IGlzIGFsc28gUFVCTElTSEVELCBhcyBvZiB0aGUgYFBsdWdpbiBBUEkgcHJvdG9jb2xgIGd1aWRlOiB0aGlyZC1wYXJ0eSBwbHVnaW5zIHRoYXQgd2lsbFxuICogbmV2ZXIgaW5zdGFsbCB0aGlzIGxpYnJhcnkgYXJlIHRvbGQgdG8gaGFyZGNvZGUgdGhlc2Ugc3RyaW5ncyBhbmQgdGhpcyBwYXlsb2FkIHNoYXBlLiBQdWJsaXNoaW5nIGl0XG4gKiBhZGRlZCBubyBuZXcgY29uc3RyYWludCBcdTIwMTQgdGhlIGNyb3NzLWNvcHkgb25lIGFib3ZlIGFscmVhZHkgZm9yYmFkZSBldmVyeSBjaGFuZ2UgYW4gb3V0c2lkZXIgY291bGRcbiAqIG5vdGljZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuLyoqXG4gKiBUaGUgbmFtZSBvZiBlaXRoZXIgbGlmZWN5Y2xlIGV2ZW50LlxuICovXG5leHBvcnQgdHlwZSBQbHVnaW5MaWZlY3ljbGVFdmVudE5hbWUgPSB0eXBlb2YgUExVR0lOX0xPQURFRF9FVkVOVF9OQU1FIHwgdHlwZW9mIFBMVUdJTl9VTkxPQURFRF9FVkVOVF9OQU1FO1xuXG4vKipcbiAqIFRoZSBwYXlsb2FkIG9mIHtAbGluayBQTFVHSU5fTE9BREVEX0VWRU5UX05BTUV9IGFuZCB7QGxpbmsgUExVR0lOX1VOTE9BREVEX0VWRU5UX05BTUV9LlxuICpcbiAqIFBsYWluIGRhdGEgYnkgZGVzaWduIFx1MjAxNCBubyBjbGFzcyBpbnN0YW5jZXMgYW5kIG5vIHR5cGVzIG93bmVkIGJ5IHRoaXMgbGlicmFyeSBcdTIwMTQgYmVjYXVzZSBpdCBjcm9zc2VzXG4gKiBiZXR3ZWVuIGluZGVwZW5kZW50bHkgYnVuZGxlZCBjb3BpZXMgb2YgaXQsIGFuZCBiZXR3ZWVuIHBsdWdpbnMgdGhhdCBkbyBub3QgdXNlIGl0IGF0IGFsbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5MaWZlY3ljbGVFdmVudFBheWxvYWQge1xuICAvKipcbiAgICogVGhlIGNvbnRyYWN0IHZlcnNpb25zIHRoZSBwbHVnaW4gcHVibGlzaGVkLCBlbXB0eSB3aGVuIGl0IHB1Ymxpc2hlcyBubyBBUEkuXG4gICAqXG4gICAqIEFuIGFycmF5IHJhdGhlciB0aGFuIGEgc2luZ2xlIHZlcnNpb24gYmVjYXVzZSBhIHByb3ZpZGVyIG1heSBwdWJsaXNoIHNldmVyYWwgY29udHJhY3QgdmVyc2lvbnMgc2lkZSBieVxuICAgKiBzaWRlLCBzbyBjb25zdW1lcnMgcGlubmVkIHRvIGFuIG9sZGVyIHJhbmdlIGtlZXAgd29ya2luZyBhY3Jvc3MgYSBicmVha2luZyBjaGFuZ2UuXG4gICAqXG4gICAqIFRoZSBBUEkgb2JqZWN0cyB0aGVtc2VsdmVzIGFyZSBkZWxpYmVyYXRlbHkgTk9UIGhlcmUuIEEgaGFuZGxlIGRlbGl2ZXJlZCBieSBhIG9uZS1zaG90IGV2ZW50IGlzIGFcbiAgICogcHJvYmU6IGl0IGFuc3dlcnMgXCJub3dcIiBhbmQgbmV2ZXIgc2F5cyB3aGVuIFwibm93XCIgY2hhbmdlZCwgYW5kIG9uZSB0aGF0IG91dGxpdmVzIHRoZSBwcm92aWRlciBpc1xuICAgKiBleGFjdGx5IHRoZSBzdGFsZSBoYW5kbGUgdGhlIHBsdWdpbi1hcGkgcmVnaXN0cnkncyByZXZvY2FibGUgaGFuZGxlcyBleGlzdCB0byBwcmV2ZW50LiBSZWFjaCB0aGUgQVBJXG4gICAqIHRocm91Z2ggYHdhdGNoUGx1Z2luQXBpYCBpbnN0ZWFkLCB3aG9zZSByZWZlcmVuY2Ugc3RheXMgY29ycmVjdCBhY3Jvc3MgdW5sb2FkIGFuZCByZS1lbmFibGUuXG4gICAqL1xuICByZWFkb25seSBhcGlWZXJzaW9uczogcmVhZG9ubHkgc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBpZHMgb2YgdGhlIHBsdWdpbnMgdGhpcyBvbmUgZGVjbGFyZXMgYXMgbWFuZGF0b3J5IGRlcGVuZGVuY2llcywgZW1wdHkgd2hlbiBpdCBkZWNsYXJlcyBub25lLlxuICAgKlxuICAgKiBQcmVzZW50IHNvIHRoZSByZWxhdGlvbnNoaXAgY2FuIGJlIHJlYWQgZnJvbSB0aGUgT1RIRVIgZW5kOiBhIHByb3ZpZGVyIGhhcyBubyB3YXkgdG8gYXNrIHdobyBkZXBlbmRzXG4gICAqIG9uIGl0IFx1MjAxNCB0aGUgcmVnaXN0cnkgb25seSBhbnN3ZXJzIGNvbnN1bWVyLXRvLXByb3ZpZGVyIFx1MjAxNCBhbmQgXCJ3aGljaCBpbnN0YWxsZWQgcGx1Z2lucyBuZWVkIHRoaXMgb25lXCJcbiAgICogaXMgd2hhdCBsZXRzIGEgcHJvdmlkZXIncyBzZXR0aW5ncyB0YWIgdGVsbCB0aGUgdXNlciB3aHkgaXQgaXMgaW4gdGhlaXIgdmF1bHQgYXQgYWxsLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVwZW5kZW5jeVBsdWdpbklkczogcmVhZG9ubHkgc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4ncyBgbWFuaWZlc3QuaWRgLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBsdWdpbidzIGBtYW5pZmVzdC5uYW1lYCwgZm9yIGRpc3BsYXkuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4ncyBgbWFuaWZlc3QudmVyc2lvbmAuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5WZXJzaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHRyaWdnZXJQbHVnaW5MaWZlY3ljbGVFdmVudH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJpZ2dlclBsdWdpbkxpZmVjeWNsZUV2ZW50UGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2Ugd2hvc2Ugd29ya3NwYWNlIGNhcnJpZXMgdGhlIGJyb2FkY2FzdC5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdG8gdHJpZ2dlci5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IFBsdWdpbkxpZmVjeWNsZUV2ZW50TmFtZTtcblxuICAvKipcbiAgICogVGhlIHBheWxvYWQgZGVzY3JpYmluZyB0aGUgcGx1Z2luLlxuICAgKi9cbiAgcmVhZG9ubHkgcGF5bG9hZDogUGx1Z2luTGlmZWN5Y2xlRXZlbnRQYXlsb2FkO1xufVxuXG4vKipcbiAqIFRyaWdnZXJlZCBvbmNlIGEgcGx1Z2luIGhhcyBmaW5pc2hlZCBsb2FkaW5nIEFORCBwdWJsaXNoZWQgZXZlcnkgQVBJIGl0IGRlY2xhcmVzLCBzbyBhIGxpc3RlbmVyIG1heSBjYWxsXG4gKiB0aG9zZSBBUElzIGltbWVkaWF0ZWx5LlxuICpcbiAqIE5hbWVzcGFjZWQgYnkgdGhlIHBhY2thZ2UgbmFtZSByYXRoZXIgdGhhbiBieSBhbiBhYmJyZXZpYXRpb24gb2YgaXQ6IHRoZSBldmVudCBpcyBnbG9iYWwgdG8gdGhlIHZhdWx0XG4gKiBhbmQgYWltZWQgYXQgcGx1Z2luIGF1dGhvcnMgd2hvIGhhdmUgbmV2ZXIgaGVhcmQgb2YgdGhpcyBsaWJyYXJ5LCBzbyB0aGUgcHJlZml4IGhhcyB0byBpZGVudGlmeSBpdHNlbGYuXG4gKi9cbmV4cG9ydCBjb25zdCBQTFVHSU5fTE9BREVEX0VWRU5UX05BTUUgPSAnb2JzaWRpYW4tbGliOnBsdWdpbi1sb2FkZWQnO1xuXG4vKipcbiAqIFRyaWdnZXJlZCBhcyBhIHBsdWdpbiB1bmxvYWRzIFx1MjAxNCB3aGV0aGVyIHRoZSB1c2VyIGRpc2FibGVkIGl0LCB1bmluc3RhbGxlZCBpdCwgb3IgT2JzaWRpYW4gaXMgc2h1dHRpbmdcbiAqIGRvd24uIEl0cyBBUElzIGFyZSByZXZva2VkIGJ5IHRoZSB0aW1lIGEgbGlzdGVuZXIgcnVucy5cbiAqL1xuZXhwb3J0IGNvbnN0IFBMVUdJTl9VTkxPQURFRF9FVkVOVF9OQU1FID0gJ29ic2lkaWFuLWxpYjpwbHVnaW4tdW5sb2FkZWQnO1xuXG5kZWNsYXJlIG1vZHVsZSAnb2JzaWRpYW4nIHtcbiAgaW50ZXJmYWNlIFdvcmtzcGFjZSB7XG4gICAgLyoqXG4gICAgICogU3Vic2NyaWJlcyB0byBhIHBsdWdpbiBmaW5pc2hpbmcgaXRzIGxvYWQsIG9yIHRvIG9uZSB1bmxvYWRpbmcuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmFtZSAtIFNob3VsZCBiZSB7QGxpbmsgUExVR0lOX0xPQURFRF9FVkVOVF9OQU1FfSBvciB7QGxpbmsgUExVR0lOX1VOTE9BREVEX0VWRU5UX05BTUV9LlxuICAgICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayByZWNlaXZpbmcgdGhlIHBsdWdpbidzIHBheWxvYWQuXG4gICAgICogQHBhcmFtIGNvbnRleHQgLSBUaGUgY29udGV4dCBwYXNzZWQgYXMgYHRoaXNgIHRvIHRoZSBgY2FsbGJhY2tgIGZ1bmN0aW9uLlxuICAgICAqIEByZXR1cm5zIFRoZSBldmVudCByZWZlcmVuY2UuXG4gICAgICovXG4gICAgLypcbiAgICAgKiBBbiBhdWdtZW50YXRpb24gb2YgYW4gRVhJU1RJTkcgb3ZlcmxvYWQgc2V0IGhhcyB0byBzdGF5IGEgbWV0aG9kIHNpZ25hdHVyZS4gQSBwcm9wZXJ0eSBtZW1iZXIgZG9lcyBub3QgbWVyZ2UgaW50b1xuICAgICAqIGBXb3Jrc3BhY2Uub25gJ3Mgb3ZlcmxvYWRzLCBhbmQgVHlwZVNjcmlwdCBzYXlzIHNvIG5vd2hlcmUgbmVhciBoZXJlOiB0aGUgZGVjbGFyYXRpb24gaXRzZWxmIGNvbXBpbGVzLCBhbmQgZXZlcnlcbiAgICAgKiBjYWxsIHNpdGUgbG9zZXMgdGhlIHNpZ25hdHVyZSBpbnN0ZWFkIFx1MjAxNCBgb24oUExVR0lOX0xPQURFRF9FVkVOVF9OQU1FLCAuLi4pYCBmYWlscyB3aXRoIFwidGhlIGxhc3Qgb3ZlcmxvYWQgZ2F2ZSB0aGVcbiAgICAgKiBmb2xsb3dpbmcgZXJyb3JcIi4gVGhlIHJ1bGUgcmVwb3J0cyB0aGlzIG9uZSB3aXRob3V0IGEgZml4IGZvciB0aGUgc2FtZSByZWFzb24sIHNvIHRoZSBkaXNhYmxlIGJlbG93IGlzIHRoZSBhbnN3ZXJcbiAgICAgKiByYXRoZXIgdGhhbiBhIGRlZmVycmFsLlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWV0aG9kLXNpZ25hdHVyZS1zdHlsZSAtLSBBIHByb3BlcnR5IG1lbWJlciBkb2VzIG5vdCBtZXJnZSBpbnRvIGFuIGV4aXN0aW5nIG92ZXJsb2FkIHNldC4gU2VlIGFib3ZlLlxuICAgIG9uKFxuICAgICAgbmFtZTogUGx1Z2luTGlmZWN5Y2xlRXZlbnROYW1lLFxuICAgICAgY2FsbGJhY2s6IChwYXlsb2FkOiBQbHVnaW5MaWZlY3ljbGVFdmVudFBheWxvYWQpID0+IHVua25vd24sXG4gICAgICBjb250ZXh0PzogdW5rbm93blxuICAgICk6IEV2ZW50UmVmO1xuICB9XG59XG5cbi8qKlxuICogVHJpZ2dlcnMgb25lIG9mIHRoZSB0d28gbGlmZWN5Y2xlIGV2ZW50cyBvbiB0aGUgYXBwJ3Mgd29ya3NwYWNlLlxuICpcbiAqIEEgdGhpbiB0eXBlZCB3cmFwcGVyIG92ZXIgYFdvcmtzcGFjZS50cmlnZ2VyYCwgd2hpY2ggYWNjZXB0cyBhbnkgZXZlbnQgbmFtZSBhbmQgYW55IGFyZ3VtZW50cywgc28gdGhhdCB0aGUgb25lXG4gKiBwbGFjZSBhIHBheWxvYWQgaXMgY29uc3RydWN0ZWQgaXMgY2hlY2tlZCBhZ2FpbnN0IHtAbGluayBQbHVnaW5MaWZlY3ljbGVFdmVudFBheWxvYWR9LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIFRyaWdnZXJQbHVnaW5MaWZlY3ljbGVFdmVudFBhcmFtc30uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmlnZ2VyUGx1Z2luTGlmZWN5Y2xlRXZlbnQocGFyYW1zOiBUcmlnZ2VyUGx1Z2luTGlmZWN5Y2xlRXZlbnRQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3QgeyBhcHAsIG5hbWUsIHBheWxvYWQgfSA9IHBhcmFtcztcbiAgYXBwLndvcmtzcGFjZS50cmlnZ2VyKG5hbWUsIHBheWxvYWQpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUEwR08sTUFBTSwyQkFBMkI7QUFNakMsTUFBTSw2QkFBNkI7QUFvQ25DLFNBQVMsNEJBQTRCLFFBQWlEO0FBQzNGLFFBQU0sRUFBRSxLQUFLLE1BQU0sUUFBUSxJQUFJO0FBQy9CLE1BQUksVUFBVSxRQUFRLE1BQU0sT0FBTztBQUNyQzsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -242,7 +242,7 @@ export declare abstract class PluginBase extends PluginBase_base implements Plug
|
|
|
242
242
|
* versions published side by side, which is how a provider ships a breaking `2.0.0` without stranding
|
|
243
243
|
* consumers still pinned to `^1`.
|
|
244
244
|
*
|
|
245
|
-
* Every declaration here is published BEFORE the `obsidian-
|
|
245
|
+
* Every declaration here is published BEFORE the `obsidian-lib:plugin-loaded` broadcast, which is
|
|
246
246
|
* what lets a listener call these APIs the moment it hears that event.
|
|
247
247
|
*
|
|
248
248
|
* @returns The API declarations.
|
|
@@ -414,7 +414,7 @@ class PluginBase extends mixinAsyncEvents()(Plugin) {
|
|
|
414
414
|
* versions published side by side, which is how a provider ships a breaking `2.0.0` without stranding
|
|
415
415
|
* consumers still pinned to `^1`.
|
|
416
416
|
*
|
|
417
|
-
* Every declaration here is published BEFORE the `obsidian-
|
|
417
|
+
* Every declaration here is published BEFORE the `obsidian-lib:plugin-loaded` broadcast, which is
|
|
418
418
|
* what lets a listener call these APIs the moment it hears that event.
|
|
419
419
|
*
|
|
420
420
|
* @returns The API declarations.
|
|
@@ -599,4 +599,4 @@ export {
|
|
|
599
599
|
reloadPlugin,
|
|
600
600
|
showErrorAndDisablePlugin
|
|
601
601
|
};
|
|
602
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW4vcGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHVzaW5nIGEgY29tcG9uZW50LWJhc2VkIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBQbHVnaW5CYXNlIHJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyAoY29udGV4dCwgaTE4biwgZXJyb3IgaGFuZGxpbmcsIGFib3J0IHNpZ25hbCwgbGlmZWN5Y2xlIGV2ZW50cywgZGVidWcpLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50LFxuICBJY29uTmFtZVxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBtaXhpbkFzeW5jRXZlbnRzIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jLWV2ZW50cyc7XG5pbXBvcnQgeyBwcmludEVycm9yIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Vycm9yJztcbmltcG9ydCB7IG5vb3BBc3luYyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9mdW5jdGlvbic7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgeyBQbHVnaW4gfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgUGx1Z2luQ29uZmxpY3QsXG4gIFBsdWdpbkRlcGVuZGVuY3lcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4tZ2F0ZS1jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2xhdGlvbnNNYXAgfSBmcm9tICcuLi9pMThuL2kxOG4udHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5BcGlEZWNsYXJhdGlvbiB9IGZyb20gJy4vcGx1Z2luLWFwaS50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFBsdWdpbkV2ZW50TWFwLFxuICBQbHVnaW5FdmVudFNvdXJjZVxufSBmcm9tICcuL3BsdWdpbi1ldmVudC1zb3VyY2UudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5MaWZlY3ljbGVFdmVudFBheWxvYWQgfSBmcm9tICcuL3BsdWdpbi1saWZlY3ljbGUtZXZlbnRzLnRzJztcblxuaW1wb3J0IHsgQXBwQWN0aXZlRmlsZVByb3ZpZGVyIH0gZnJvbSAnLi4vYWN0aXZlLWZpbGUtcHJvdmlkZXIudHMnO1xuaW1wb3J0IHsgQ29tbWFuZEhhbmRsZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21tYW5kLWhhbmRsZXJzL2NvbW1hbmQtaGFuZGxlci1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgVW5sb2NrQWN0aXZlTm90ZUNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi4vY29tbWFuZC1oYW5kbGVycy91bmxvY2stYWN0aXZlLW5vdGUtY29tbWFuZC1oYW5kbGVyLnRzJztcbmltcG9ydCB7IFBsdWdpbkNvbW1hbmRSZWdpc3RyYXIgfSBmcm9tICcuLi9jb21tYW5kLXJlZ2lzdHJhci50cyc7XG5pbXBvcnQgeyBBYm9ydFNpZ25hbENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYWJvcnQtc2lnbmFsLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBBc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXN5bmMtZXJyb3ItaGFuZGxlci1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgQ29tcG9uZW50RXggfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbXBvbmVudC1leC50cyc7XG5pbXBvcnQgeyBDb25zb2xlRGVidWdDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbnNvbGUtZGVidWctY29tcG9uZW50LnRzJztcbmltcG9ydCB7IE1lbnVFdmVudFJlZ2lzdHJhckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmltcG9ydCB7IE5vdGVib29rTmF2aWdhdG9yTWVudUV2ZW50UmVnaXN0cmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9ub3RlYm9vay1uYXZpZ2F0b3ItbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFBsdWdpbkNvbnRleHRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3BsdWdpbi1jb250ZXh0LWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBQbHVnaW5HYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4tZ2F0ZS1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgUGx1Z2luTm90aWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgUGx1Z2luRGF0YUhhbmRsZXIgfSBmcm9tICcuLi9kYXRhLWhhbmRsZXIudHMnO1xuaW1wb3J0IHsgaW5pdEkxOE4gfSBmcm9tICcuLi9pMThuL2kxOG4udHMnO1xuaW1wb3J0IHsgZGVmYXVsdFRyYW5zbGF0aW9uc01hcCB9IGZyb20gJy4uL2kxOG4vbG9jYWxlcy90cmFuc2xhdGlvbnMtbWFwLnRzJztcbmltcG9ydCB7IFJlc291cmNlTG9ja0NvbXBvbmVudCB9IGZyb20gJy4uL3Jlc291cmNlLWxvY2sudHMnO1xuaW1wb3J0IHsgcHVibGlzaFBsdWdpbkFwaSB9IGZyb20gJy4vcGx1Z2luLWFwaS50cyc7XG5pbXBvcnQgeyBQbHVnaW5FdmVudFNvdXJjZUltcGwgfSBmcm9tICcuL3BsdWdpbi1ldmVudC1zb3VyY2UudHMnO1xuaW1wb3J0IHtcbiAgUExVR0lOX0xPQURFRF9FVkVOVF9OQU1FLFxuICBQTFVHSU5fVU5MT0FERURfRVZFTlRfTkFNRSxcbiAgdHJpZ2dlclBsdWdpbkxpZmVjeWNsZUV2ZW50XG59IGZyb20gJy4vcGx1Z2luLWxpZmVjeWNsZS1ldmVudHMudHMnO1xuXG4vKipcbiAqIFRoZSB1bml2ZXJzYWwgY29tcG9uZW50cyBvd25lZCBieSB7QGxpbmsgUGx1Z2luQmFzZX0sIGtleWVkIGJ5IHRoZSBuYW1lIG9mIHRoZSBhY2Nlc3NvciBleHBvc2luZ1xuICogZWFjaCBvbmUuIEV2ZXJ5IG1lbWJlciBpcyBvcHRpb25hbCBiZWNhdXNlIGEgY29tcG9uZW50IG9ubHkgZXhpc3RzIG9uY2Uge0BsaW5rIFBsdWdpbkJhc2Uub25sb2FkfVxuICogaGFzIGNyZWF0ZWQgaXQuXG4gKi9cbmludGVyZmFjZSBQbHVnaW5CYXNlQ29tcG9uZW50cyB7XG4gIGFib3J0U2lnbmFsQ29tcG9uZW50PzogQWJvcnRTaWduYWxDb21wb25lbnQ7XG4gIGFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50PzogQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQ7XG4gIGNvbW1hbmRIYW5kbGVyQ29tcG9uZW50PzogQ29tbWFuZEhhbmRsZXJDb21wb25lbnQ7XG4gIGNvbnNvbGVEZWJ1Z0NvbXBvbmVudD86IENvbnNvbGVEZWJ1Z0NvbXBvbmVudDtcbiAgcGx1Z2luQ29udGV4dENvbXBvbmVudD86IFBsdWdpbkNvbnRleHRDb21wb25lbnQ7XG4gIHBsdWdpbkdhdGVDb21wb25lbnQ/OiBQbHVnaW5HYXRlQ29tcG9uZW50O1xuICBwbHVnaW5Ob3RpY2VDb21wb25lbnQ/OiBQbHVnaW5Ob3RpY2VDb21wb25lbnQ7XG4gIHBsdWdpblNldHRpbmdzQ29tcG9uZW50PzogUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlPG9iamVjdD47XG4gIHJlc291cmNlTG9ja0NvbXBvbmVudD86IFJlc291cmNlTG9ja0NvbXBvbmVudDtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjcmVhdGluZyBPYnNpZGlhbiBwbHVnaW5zIHdpdGggYSBjb21wb25lbnQtYmFzZWQgYXJjaGl0ZWN0dXJlLlxuICpcbiAqIFJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyBhdXRvbWF0aWNhbGx5LiBTdWJjbGFzc2VzIGFkZCBvciByZXBsYWNlIGNvbXBvbmVudHNcbiAqIHZpYSB7QGxpbmsgcmVtb3ZlQ2hpbGR9IC8ge0BsaW5rIGFkZENoaWxkfS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBsdWdpbkJhc2UgZXh0ZW5kcyBtaXhpbkFzeW5jRXZlbnRzPFBsdWdpbkV2ZW50TWFwPigpKFBsdWdpbikgaW1wbGVtZW50cyBQbHVnaW5FdmVudFNvdXJjZSB7XG4gIC8qKlxuICAgKiBHZXRzIGFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIGFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGFib3J0U2lnbmFsQ29tcG9uZW50KCk6IEFib3J0U2lnbmFsQ29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5jb21wb25lbnRzLmFib3J0U2lnbmFsQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIEFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IGFib3J0U2lnbmFsQ29tcG9uZW50KHZhbHVlOiBBYm9ydFNpZ25hbENvbXBvbmVudCkge1xuICAgIHRoaXMuc2V0Q29tcG9uZW50KCdhYm9ydFNpZ25hbENvbXBvbmVudCcsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFzeW5jIGVycm9yIGhhbmRsZXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBhc3luYyBlcnJvciBoYW5kbGVyIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQoKTogQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLmNvbXBvbmVudHMuYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgYXN5bmMgZXJyb3IgaGFuZGxlciBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIEFzeW5jIGVycm9yIGhhbmRsZXIgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCBhc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCh2YWx1ZTogQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQpIHtcbiAgICB0aGlzLnNldENvbXBvbmVudCgnYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQnLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgc2hhcmVkIGNvbW1hbmQgaGFuZGxlciBjb21wb25lbnQuIFJlZ2lzdGVyIGEgcGx1Z2luJ3MgY29tbWFuZHMgb24gaXQgdmlhXG4gICAqIHtAbGluayBDb21tYW5kSGFuZGxlckNvbXBvbmVudC5yZWdpc3RlckNvbW1hbmRIYW5kbGVyc30gcmF0aGVyIHRoYW4gY29uc3RydWN0aW5nIHlvdXIgb3duXG4gICAqIHtAbGluayBDb21tYW5kSGFuZGxlckNvbXBvbmVudH0g4oCUIHRoZSBhcHAtYmFja2VkIGFjdGl2ZS1maWxlIHByb3ZpZGVyLCBjb21tYW5kIHJlZ2lzdHJhciwgbWVudVxuICAgKiBldmVudCByZWdpc3RyYXIsIGFuZCBwbHVnaW4gbmFtZSBhcmUgYWxyZWFkeSB3aXJlZC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGNvbW1hbmQgaGFuZGxlciBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGNvbW1hbmRIYW5kbGVyQ29tcG9uZW50KCk6IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5jb21wb25lbnRzLmNvbW1hbmRIYW5kbGVyQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb21tYW5kIGhhbmRsZXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgY29tbWFuZCBoYW5kbGVyIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXQgY29tbWFuZEhhbmRsZXJDb21wb25lbnQodmFsdWU6IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50KSB7XG4gICAgdGhpcy5zZXRDb21wb25lbnQoJ2NvbW1hbmRIYW5kbGVyQ29tcG9uZW50JywgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgY29uc29sZSBkZWJ1ZyBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIGNvbnNvbGUgZGVidWcgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBjb25zb2xlRGVidWdDb21wb25lbnQoKTogQ29uc29sZURlYnVnQ29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5jb21wb25lbnRzLmNvbnNvbGVEZWJ1Z0NvbXBvbmVudCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBjb25zb2xlIGRlYnVnIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gQ29uc29sZSBkZWJ1ZyBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IGNvbnNvbGVEZWJ1Z0NvbXBvbmVudCh2YWx1ZTogQ29uc29sZURlYnVnQ29tcG9uZW50KSB7XG4gICAgdGhpcy5zZXRDb21wb25lbnQoJ2NvbnNvbGVEZWJ1Z0NvbXBvbmVudCcsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHBsdWdpbiBjb250ZXh0IGNvbXBvbmVudCAocGx1Z2luIElELCBkZWJ1ZyBjb250cm9sbGVyLCBsaWJyYXJ5IHN0eWxlcykuXG4gICAqXG4gICAqIEByZXR1cm5zIHBsdWdpbiBjb250ZXh0IGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgcGx1Z2luQ29udGV4dENvbXBvbmVudCgpOiBQbHVnaW5Db250ZXh0Q29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5jb21wb25lbnRzLnBsdWdpbkNvbnRleHRDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgcGx1Z2luIGNvbnRleHQgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBQbHVnaW4gY29udGV4dCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IHBsdWdpbkNvbnRleHRDb21wb25lbnQodmFsdWU6IFBsdWdpbkNvbnRleHRDb21wb25lbnQpIHtcbiAgICB0aGlzLnNldENvbXBvbmVudCgncGx1Z2luQ29udGV4dENvbXBvbmVudCcsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBnYXRlIGhvbGRpbmcgdGhlIHBsdWdpbidzIGZlYXR1cmUgc3VyZmFjZSB1cCBvciBkb3duLlxuICAgKlxuICAgKiBSZWFjaCBmb3IgaXQgZnJvbSBhIHNldHRpbmdzIHRhYiB0byByZW5kZXIgdGhlIG92ZXJsYXAgYmFubmVyIGZvciBhXG4gICAqIHtAbGluayBjb21wb25lbnRzL3BsdWdpbi1nYXRlLWNvbXBvbmVudCFQbHVnaW5Db25mbGljdFNldmVyaXR5Lldhcm59IGNvbmZsaWN0IOKAlCB0aGUgb25lXG4gICAqIGJhbm5lciB0aGUgbGlicmFyeSBjYW5ub3QgcGxhY2UgaXRzZWxmLCBiZWNhdXNlIGEgcnVubmluZyBwbHVnaW4gYnVpbGRzIGl0cyBvd24gc2V0dGluZ3MgdGFiLlxuICAgKlxuICAgKiBSZWFkYWJsZSB0aHJvdWdob3V0IHtAbGluayBvbmxvYWRJbXBsfSwgaW5jbHVkaW5nIGl0cyBzeW5jaHJvbm91cyBwcmVmaXgsIHdoaWNoIGlzIHdoZXJlIGEgc2V0dGluZ3NcbiAgICogdGFiIGlzIGJ1aWx0LiBUaGF0IGlzIGRlbGliZXJhdGUgcmF0aGVyIHRoYW4gaW5jaWRlbnRhbDogYWRkaW5nIHRoZSBnYXRlIGlzIHdoYXQgcnVuc1xuICAgKiB7QGxpbmsgb25sb2FkSW1wbH0sIHNvIHtAbGluayBvbmxvYWR9IGFzc2lnbnMgdGhpcyBmaWVsZCBiZWZvcmUgYWRkaW5nIGl0LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcGx1Z2luIGdhdGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBwbHVnaW5HYXRlQ29tcG9uZW50KCk6IFBsdWdpbkdhdGVDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLmNvbXBvbmVudHMucGx1Z2luR2F0ZUNvbXBvbmVudCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGx1Z2luIGdhdGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgcGx1Z2luIGdhdGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCBwbHVnaW5HYXRlQ29tcG9uZW50KHZhbHVlOiBQbHVnaW5HYXRlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5zZXRDb21wb25lbnQoJ3BsdWdpbkdhdGVDb21wb25lbnQnLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBwbHVnaW4gbm90aWNlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgcGx1Z2luIG5vdGljZSBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHBsdWdpbk5vdGljZUNvbXBvbmVudCgpOiBQbHVnaW5Ob3RpY2VDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLmNvbXBvbmVudHMucGx1Z2luTm90aWNlQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHBsdWdpbiBub3RpY2UgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBQbHVnaW4gbm90aWNlIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXQgcGx1Z2luTm90aWNlQ29tcG9uZW50KHZhbHVlOiBQbHVnaW5Ob3RpY2VDb21wb25lbnQpIHtcbiAgICB0aGlzLnNldENvbXBvbmVudCgncGx1Z2luTm90aWNlQ29tcG9uZW50JywgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgcGx1Z2luIHNldHRpbmdzIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgcGx1Z2luIHNldHRpbmdzIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgcGx1Z2luU2V0dGluZ3NDb21wb25lbnQoKTogUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlPG9iamVjdD4ge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLmNvbXBvbmVudHMucGx1Z2luU2V0dGluZ3NDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgcGx1Z2luIHNldHRpbmdzIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gUGx1Z2luIHNldHRpbmdzIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXQgcGx1Z2luU2V0dGluZ3NDb21wb25lbnQodmFsdWU6IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZTxvYmplY3Q+KSB7XG4gICAgdGhpcy5zZXRDb21wb25lbnQoJ3BsdWdpblNldHRpbmdzQ29tcG9uZW50JywgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGVkaXRvciBsb2NrIGNvbXBvbmVudCwgdXNlZCB0byBsb2NrIG5vdGVzIHJlYWQtb25seSBkdXJpbmcgbG9uZyBvcGVyYXRpb25zLiBPd25lZCBieVxuICAgKiB0aGUgcGx1Z2luLCBzbyBpdHMgbG9ja3MgYXJlIHJlbGVhc2VkIGF1dG9tYXRpY2FsbHkgd2hlbiB0aGUgcGx1Z2luIHVubG9hZHMuXG4gICAqXG4gICAqIEByZXR1cm5zIEVkaXRvciBsb2NrIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgcmVzb3VyY2VMb2NrQ29tcG9uZW50KCk6IFJlc291cmNlTG9ja0NvbXBvbmVudCB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuY29tcG9uZW50cy5yZXNvdXJjZUxvY2tDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGVkaXRvciBsb2NrIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gRWRpdG9yIGxvY2sgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCByZXNvdXJjZUxvY2tDb21wb25lbnQodmFsdWU6IFJlc291cmNlTG9ja0NvbXBvbmVudCkge1xuICAgIHRoaXMuc2V0Q29tcG9uZW50KCdyZXNvdXJjZUxvY2tDb21wb25lbnQnLCB2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudHM6IFBsdWdpbkJhc2VDb21wb25lbnRzID0ge307XG5cbiAgLy8gRXZlcnl0aGluZyB0aGUgU1VCQ0xBU1Mgb3duczogd2hhdCBgb25sb2FkSW1wbGAgYWRkcywgYW5kIHdoYXQgaXQgYWRkcyBsYXRlci5cbiAgLy9cbiAgLy8gQSBzZWNvbmQgd3JhcHBlciByYXRoZXIgdGhhbiBvbmUsIGJlY2F1c2UgdGhlIHR3byB0aWVycyBoYXZlIG9wcG9zaXRlIGxpZmV0aW1lcy4gVGhlIHVuaXZlcnNhbFxuICAvLyBjb21wb25lbnRzIGhhdmUgdG8gT1VUTElWRSBhIGxvc3QgZGVwZW5kZW5jeSDigJQgdGhleSBhcmUgd2hhdCBzaG93cyB0aGUgbm90aWNlIG5hbWluZyB0aGUgcGx1Z2luIHRoYXRcbiAgLy8gd2VudCBhd2F5IGFuZCByZW5kZXJzIHRoZSBidXR0b24gdGhhdCBicmluZ3MgaXQgYmFjayDigJQgd2hpbGUgdGhlIHN1YmNsYXNzJ3Mgc3VyZmFjZSBpcyBleGFjdGx5IHdoYXRcbiAgLy8gbXVzdCBzdG9wIHJ1bm5pbmcuIFVubG9hZGluZyBvbmUgd3JhcHBlciBob2xkaW5nIGJvdGggd291bGQgc2lsZW5jZSB0aGUgcGx1Z2luIGF0IHRoZSBtb21lbnQgaXQgbW9zdFxuICAvLyBuZWVkcyB0byBzcGVhay5cbiAgLy9cbiAgLy8gQWx3YXlzIHByZXNlbnQsIG5ldmVyIG51bGwsIGFuZCBSRVBMQUNFRCByYXRoZXIgdGhhbiBlbXB0aWVkIHdoZW4gdGhlIHN1cmZhY2UgaXMgdG9ybiBkb3duLiBUaGF0IGtlZXBzXG4gIC8vIGBhZGRDaGlsZGAgY2FsbGFibGUgYXQgZXZlcnkgcG9pbnQgaW4gdGhlIHBsdWdpbidzIGxpZmUsIGV4YWN0bHkgYXMgaXQgd2FzIGJlZm9yZSB0aGUgdGllcnMgZXhpc3RlZDpcbiAgLy8gQSBjaGlsZCBhZGRlZCBiZWZvcmUgdGhlIGdhdGUgb3BlbnMgaXMgcXVldWVkIGFuZCBsb2FkZWQgd2hlbiBpdCBkb2VzLCB3aGljaCBpcyB3aGF0IGBDb21wb25lbnRFeGBcbiAgLy8gYWxyZWFkeSBkb2VzIGZvciBhbnkgY2hpbGQgYWRkZWQgdG8gYSBub3QteWV0LWxvYWRlZCBjb21wb25lbnQuXG4gIHByaXZhdGUgZ2F0ZWRXcmFwcGVyQ29tcG9uZW50ID0gbmV3IENvbXBvbmVudEV4KCk7XG5cbiAgLy8gVGhlIHBheWxvYWQgYnJvYWRjYXN0IHdoZW4gdGhpcyBwbHVnaW4gZmluaXNoZWQgbG9hZGluZywga2VwdCBzbyB0aGUgbWF0Y2hpbmcgdW5sb2FkZWQgYnJvYWRjYXN0XG4gIC8vIGRlc2NyaWJlcyB0aGUgc2FtZSBwbHVnaW4gd2l0aG91dCByZS1kZXJpdmluZyBpdCBmcm9tIGEgc3VyZmFjZSB0aGF0IGhhcyBzaW5jZSBiZWVuIHRvcm4gZG93bi4gTnVsbFxuICAvLyB3aGVuZXZlciBubyBsb2FkZWQgYnJvYWRjYXN0IGlzIG91dHN0YW5kaW5nLCB3aGljaCBpcyB3aGF0IGtlZXBzIHRoZSB0d28gZXZlbnRzIHBhaXJlZC5cbiAgcHJpdmF0ZSBsaWZlY3ljbGVFdmVudFBheWxvYWQ6IG51bGwgfCBQbHVnaW5MaWZlY3ljbGVFdmVudFBheWxvYWQgPSBudWxsO1xuXG4gIC8vIFRoZSBsaWJyYXJ5J3Mgb3duIGNvbXBvbmVudHMsIHdoaWNoIG91dGxpdmUgYW55IGRlcGVuZGVuY3kuXG4gIHByaXZhdGUgcmVhZG9ubHkgdW5pdmVyc2FsV3JhcHBlckNvbXBvbmVudCA9IG5ldyBDb21wb25lbnRFeCgpO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgY2hpbGQgY29tcG9uZW50LlxuICAgKlxuICAgKiBUaGUgY2hpbGQgaXMgYWRkZWQgdG8gdGhlIGludGVybmFsIHdyYXBwZXIgaG9sZGluZyB0aGUgc3ViY2xhc3MncyBvd24gc3VyZmFjZSwgd2hpY2gge0BsaW5rIG9ubG9hZH1cbiAgICogY3JlYXRlcyBhbmQgbG9hZHMgYmVmb3JlIGNhbGxpbmcge0BsaW5rIG9ubG9hZEltcGx9LiBTbyBhIGNoaWxkIGFkZGVkIGR1cmluZyB7QGxpbmsgb25sb2FkSW1wbH0gaXNcbiAgICogbG9hZGVkIGltbWVkaWF0ZWx5LCBjaGlsZHJlbi1maXJzdCwgYW5kIGlzIHVzYWJsZSBieSB0aGUgdGltZSB0aGlzIG1ldGhvZCByZXR1cm5zLlxuICAgKlxuICAgKiBUaGF0IHdyYXBwZXIgaXMgdG9ybiBkb3duIGFuZCByZWJ1aWx0IHdoZW5ldmVyIHRoZSBnYXRlIGNsb3NlcyBhbmQgb3BlbnMgYWdhaW4g4oCUIGEgZGVwZW5kZW5jeSBkZWNsYXJlZFxuICAgKiBieSB7QGxpbmsgZ2V0UGx1Z2luRGVwZW5kZW5jaWVzfSBnb2luZyBhd2F5IGFuZCBjb21pbmcgYmFjaywgb3IgYSBjb25mbGljdCBkZWNsYXJlZCBieVxuICAgKiB7QGxpbmsgZ2V0UGx1Z2luQ29uZmxpY3RzfSBhcHBlYXJpbmcgYW5kIGJlaW5nIHJlc29sdmVkIOKAlCBzbyBhIGNoaWxkIGFkZGVkIGhlcmUgbGl2ZXMgZXhhY3RseSBhcyBsb25nXG4gICAqIGFzIHRoZSBwbHVnaW4ncyBmZWF0dXJlIHN1cmZhY2UgZG9lcy4gQWRkaW5nIG9uZSB3aGlsZSB0aGUgc3VyZmFjZSBpcyBkb3duIGlzIHN0aWxsIGxlZ2l0aW1hdGUg4oCUIGl0IGlzXG4gICAqIHF1ZXVlZCBhbmQgbG9hZGVkIHdoZW4gdGhlIHN1cmZhY2UgbmV4dCBjb21lcyB1cCwgdGhlIHdheSB7QGxpbmsgQ29tcG9uZW50RXguYWRkQ2hpbGR9IGFscmVhZHkgcXVldWVzXG4gICAqIGEgY2hpbGQgYWRkZWQgdG8gYSBub3QteWV0LWxvYWRlZCBjb21wb25lbnQuXG4gICAqXG4gICAqIFRoaXMgaXMgdGhlIFNVQkNMQVNTJ3MgZG9vciwgYW5kIHRoZSBvbmx5IG9uZSBpdCBoYXM6IHRoZSB1bml2ZXJzYWwgY29tcG9uZW50cyB7QGxpbmsgb25sb2FkfSByZWdpc3RlcnNcbiAgICogdGFrZSBhIHByaXZhdGUgcm91dGUgb250byBhIGRpZmZlcmVudCB3cmFwcGVyLiBTbyBhbnl0aGluZyBvYnNlcnZpbmcgdGhpcyBtZXRob2Qg4oCUIGEgdGVzdCBjb3VudGluZyBpdHNcbiAgICogY2FsbHMsIGEgcGF0Y2ggd3JhcHBpbmcgaXQg4oCUIHNlZXMgZXhhY3RseSB0aGUgY2hpbGRyZW4gdGhlIHN1YmNsYXNzIGFkZGVkLCBhbmQgbm9uZSBvZiB0aGUgbGlicmFyeSdzLlxuICAgKiBCZWZvcmUgdGhlIHR3byB0aWVycyBleGlzdGVkIG9uZSBkb29yIGNhcnJpZWQgYm90aCwgYW5kIGEgY29uc3VtZXIgY291bnRpbmcgdGhlIHRvdGFsIGlzIHRoZSBvbmUgdGhpbmdcbiAgICogdGhlIHNwbGl0IGNvdWxkIG5vdCBrZWVwIHdvcmtpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVENvbXBvbmVudCAtIFRoZSB0eXBlIG9mIGNvbXBvbmVudCB0byBhZGQuXG4gICAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IGluc3RhbmNlIHRvIGFkZC5cbiAgICogQHJldHVybnMgVGhlIGFkZGVkIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhZGRDaGlsZDxUQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50Pihjb21wb25lbnQ6IFRDb21wb25lbnQpOiBUQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5nYXRlZFdyYXBwZXJDb21wb25lbnQuYWRkQ2hpbGQoY29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgZXh0ZXJuYWwgc2V0dGluZ3MgY2hhbmdlLlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyBpZiBuZWVkZWQuIE1ha2Ugc3VyZSB0byBjYWxsIGBhd2FpdCBzdXBlci5vbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKWAgZmlyc3QuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZT8uKCk7XG4gICAgYXdhaXQgdGhpcy50cmlnZ2VyQXN5bmMoJ2V4dGVybmFsU2V0dGluZ3NDaGFuZ2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIGlzIGxvYWRlZC5cbiAgICpcbiAgICogT3JjaGVzdHJhdGVzIGxvYWRpbmc6IHJlZ2lzdGVycyB0aGUgdW5pdmVyc2FsIGNvbXBvbmVudHMsIGxldHMgdGhlIHN1YmNsYXNzIHdpcmUgaXRzIG93blxuICAgKiBjb21wb25lbnRzIHZpYSB7QGxpbmsgb25sb2FkSW1wbH0sIHRoZW4gYXdhaXRzIHRoZSBhc3luYyB0YWlsIG9mIGV2ZXJ5IGxvYWQuXG4gICAqIEVhY2ggY29tcG9uZW50IGxvYWRzIGFzIGl0IGlzIGFkZGVkLCBjaGlsZHJlbi1maXJzdC5cbiAgICpcbiAgICogRG8gTk9UIG92ZXJyaWRlIHRoaXMgbWV0aG9kLiBPdmVycmlkZSB7QGxpbmsgb25sb2FkSW1wbH0gaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbmxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFRoZSB3cmFwcGVyIGlzIGF0dGFjaGVkIGFuZCBsb2FkZWQgYmVmb3JlIGFueXRoaW5nIGlzIHdpcmVkIHVwLCBzbyBldmVyeSBgYWRkQ2hpbGRgIGJlbG93XG4gICAgICAvLyBsb2FkcyBpdHMgY2hpbGQgc3RyYWlnaHQgYXdheSByYXRoZXIgdGhhbiBxdWV1aW5nIGl0LlxuICAgICAgLy8gVGhhdCBpcyB3aGF0IGxldHMgYSBjb21tYW5kIGhhbmRsZXIgcmVnaXN0ZXIgaXRzIG1lbnUgZXZlbnRzIGZyb20gYG9uUmVnaXN0ZXJlZGAsIHdoaWNoXG4gICAgICAvLyBgcmVnaXN0ZXJDb21tYW5kSGFuZGxlcnNgIGF3YWl0cyBhbmQgd2hpY2ggYSByZWdpc3RyYXIgcmVmdXNlcyB3aGlsZSB1bmxvYWRlZC5cbiAgICAgIC8vIEF0dGFjaGluZyBpdCB1cCBmcm9udCBhbHNvIHJlZ2lzdGVycyB0aGUgd3JhcHBlciBmb3IgdGVhcmRvd24gYmVmb3JlIGFueXRoaW5nIGNhbiB0aHJvdy5cbiAgICAgIC8vIFRoZSBsb2FkIGlzIGV4cGxpY2l0IHJhdGhlciB0aGFuIGxlZnQgdG8gYGFkZENoaWxkYCwgd2hpY2ggbG9hZHMgdGhlIGNoaWxkIG9ubHkgd2hlbiB0aGVcbiAgICAgIC8vIHBsdWdpbiBpdHNlbGYgaXMgbG9hZGVkIOKAlCB0cnVlIHdoZW4gT2JzaWRpYW4gY2FsbHMgYGxvYWQoKWAsIGJ1dCBub3Qgd2hlbiBhIGNhbGxlciBpbnZva2VzXG4gICAgICAvLyBgb25sb2FkKClgIGRpcmVjdGx5LlxuICAgICAgc3VwZXIuYWRkQ2hpbGQodGhpcy51bml2ZXJzYWxXcmFwcGVyQ29tcG9uZW50KTtcbiAgICAgIHRoaXMudW5pdmVyc2FsV3JhcHBlckNvbXBvbmVudC5sb2FkKCk7XG5cbiAgICAgIGF3YWl0IGluaXRJMThOKHRoaXMuY3JlYXRlVHJhbnNsYXRpb25zTWFwKCkpO1xuICAgICAgdGhpcy5wbHVnaW5Db250ZXh0Q29tcG9uZW50ID0gdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChcbiAgICAgICAgbmV3IFBsdWdpbkNvbnRleHRDb21wb25lbnQoe1xuICAgICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgICAgcGx1Z2luSWQ6IHRoaXMubWFuaWZlc3QuaWRcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnBsdWdpbk5vdGljZUNvbXBvbmVudCA9IHRoaXMuYWRkVW5pdmVyc2FsQ2hpbGQoXG4gICAgICAgIG5ldyBQbHVnaW5Ob3RpY2VDb21wb25lbnQoe1xuICAgICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgICAgcGx1Z2luTmFtZTogdGhpcy5tYW5pZmVzdC5uYW1lXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5hc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCA9IHRoaXMuYWRkVW5pdmVyc2FsQ2hpbGQobmV3IEFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50KHRoaXMucGx1Z2luTm90aWNlQ29tcG9uZW50KSk7XG4gICAgICB0aGlzLmFib3J0U2lnbmFsQ29tcG9uZW50ID0gdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChuZXcgQWJvcnRTaWduYWxDb21wb25lbnQodGhpcy5tYW5pZmVzdC5pZCkpO1xuICAgICAgdGhpcy5jb25zb2xlRGVidWdDb21wb25lbnQgPSB0aGlzLmFkZFVuaXZlcnNhbENoaWxkKG5ldyBDb25zb2xlRGVidWdDb21wb25lbnQodGhpcy5tYW5pZmVzdC5pZCkpO1xuICAgICAgdGhpcy5yZXNvdXJjZUxvY2tDb21wb25lbnQgPSB0aGlzLmFkZFVuaXZlcnNhbENoaWxkKG5ldyBSZXNvdXJjZUxvY2tDb21wb25lbnQodGhpcy5hcHAsIHRoaXMubWFuaWZlc3QuaWQpKTtcbiAgICAgIC8vIGBOb3RlYm9vayBOYXZpZ2F0b3JgIGRyYXdzIGl0cyBvd24gZmlsZSB0cmVlIGFuZCBuZXZlciByYWlzZXMgT2JzaWRpYW4ncyBgZmlsZS1tZW51YCAvXG4gICAgICAvLyBgZmlsZXMtbWVudWAgZXZlbnRzLCBzbyBldmVyeSBwbHVnaW4ncyBjb250ZXh0LW1lbnUgaXRlbXMgd291bGQgdmFuaXNoIGZvciBhbnlvbmUgYnJvd3NpbmdcbiAgICAgIC8vIHRocm91Z2ggaXQuIFdpcmVkIGhlcmUgcmF0aGVyIHRoYW4gcGVyLXBsdWdpbjogdGhlIGJyaWRnZSBzdGF5cyBkb3JtYW50IHdoZW4gTm90ZWJvb2tcbiAgICAgIC8vIE5hdmlnYXRvciBpcyBub3QgaW5zdGFsbGVkLCBhbmQgYSBwbHVnaW4gd2l0aCBubyBmaWxlL2ZvbGRlciBoYW5kbGVycyBjb250cmlidXRlcyBub3RoaW5nLlxuICAgICAgY29uc3Qgbm90ZWJvb2tOYXZpZ2F0b3JNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnQgPSB0aGlzLmFkZFVuaXZlcnNhbENoaWxkKFxuICAgICAgICBuZXcgTm90ZWJvb2tOYXZpZ2F0b3JNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnQoe1xuICAgICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgICAgcGx1Z2luTmFtZTogdGhpcy5tYW5pZmVzdC5uYW1lLFxuICAgICAgICAgIHN1Ym1lbnVJY29uOiB0aGlzLmdldE5vdGVib29rTmF2aWdhdG9yTWVudVN1Ym1lbnVJY29uKClcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLmNvbW1hbmRIYW5kbGVyQ29tcG9uZW50ID0gdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChcbiAgICAgICAgbmV3IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50KHtcbiAgICAgICAgICBhY3RpdmVGaWxlUHJvdmlkZXI6IG5ldyBBcHBBY3RpdmVGaWxlUHJvdmlkZXIodGhpcy5hcHApLFxuICAgICAgICAgIGFkZGl0aW9uYWxNZW51RXZlbnRSZWdpc3RyYXJzOiBbbm90ZWJvb2tOYXZpZ2F0b3JNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnRdLFxuICAgICAgICAgIC8vIFRoZSBjb21wb25lbnQgaXMgdW5pdmVyc2FsOyB0aGUgY29tbWFuZHMgcmVnaXN0ZXJlZCBUSFJPVUdIIGl0IGFyZSBub3QuIEEgc3ViY2xhc3MgcmVnaXN0ZXJzXG4gICAgICAgICAgLy8gaXRzIG93biBmcm9tIGBvbmxvYWRJbXBsYCwgY2xvc2luZyBvdmVyIGNvbGxhYm9yYXRvcnMgdGhhdCBiZWxvbmcgdG8gdGhlIGZlYXR1cmUgc3VyZmFjZSDigJQgc29cbiAgICAgICAgICAvLyB0aG9zZSBjb21tYW5kcyBtdXN0IGdvIGRvd24gd2l0aCB0aGUgc3VyZmFjZSB3aGVuIHRoZSBnYXRlIGNsb3Nlcywgb3IgdGhleSBzaXQgaW4gdGhlIHBhbGV0dGVcbiAgICAgICAgICAvLyBjYWxsaW5nIGludG8gdG9ybi1kb3duIG9iamVjdHMsIGFuZCBhcmUgcmVnaXN0ZXJlZCBhIHNlY29uZCB0aW1lIHdoZW4gdGhlIGdhdGUgcmVvcGVucyBhbmRcbiAgICAgICAgICAvLyBgb25sb2FkSW1wbGAgcnVucyBhZ2Fpbi5cbiAgICAgICAgICAvLyBSZXNvbHZlZCBvbiBldmVyeSBjYWxsIHJhdGhlciB0aGFuIGNhcHR1cmVkIGhlcmUsIGJlY2F1c2UgYHVubG9hZEZlYXR1cmVTdXJmYWNlYCBSRVBMQUNFUyB0aGVcbiAgICAgICAgICAvLyB3cmFwcGVyIGluc3RlYWQgb2YgZW1wdHlpbmcgaXQ6IGVhY2ggY3ljbGUncyBjb21tYW5kcyBiZWxvbmcgdG8gdGhhdCBjeWNsZSdzIHdyYXBwZXIuXG4gICAgICAgICAgY29tbWFuZExpZmV0aW1lT3duZXJQcm92aWRlcjogKCk6IENvbXBvbmVudEV4ID0+IHRoaXMuZ2F0ZWRXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICAgIGNvbW1hbmRSZWdpc3RyYXI6IG5ldyBQbHVnaW5Db21tYW5kUmVnaXN0cmFyKHRoaXMpLFxuICAgICAgICAgIG1lbnVFdmVudFJlZ2lzdHJhcjogdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChuZXcgTWVudUV2ZW50UmVnaXN0cmFyQ29tcG9uZW50KHRoaXMuYXBwKSksXG4gICAgICAgICAgcGx1Z2luTmFtZTogdGhpcy5tYW5pZmVzdC5uYW1lXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgLy8gQWx3YXlzIGF2YWlsYWJsZTsgdGhlIGNvbW1hbmQncyBvd24gYGNhbkV4ZWN1dGVgIGhpZGVzIGl0IHVubGVzcyB0aGUgYWN0aXZlIG5vdGUgaXMgbG9ja2VkLlxuICAgICAgLy8gVGhlIG9uZSBjb21tYW5kIHRoYXQgbmFtZXMgaXRzIG93bmVyIGV4cGxpY2l0bHksIG9wdGluZyBPVVQgb2YgdGhlIHN1cmZhY2Utc2NvcGVkIGRlZmF1bHQgYWJvdmU6XG4gICAgICAvLyBJdCBpcyB0aGUgcmVzY3VlIGZvciBhIG5vdGUgbGVmdCBsb2NrZWQsIGl0IGNsb3NlcyBvdmVyIG5vdGhpbmcgYnV0IHRoZSB1bml2ZXJzYWwgcmVzb3VyY2UtbG9ja1xuICAgICAgLy8gY29tcG9uZW50LCBhbmQgYSBibG9ja2VkIHBsdWdpbiBpcyBleGFjdGx5IHdoZW4gYSB1c2VyIG1heSBuZWVkIGl0LlxuICAgICAgYXdhaXQgdGhpcy5jb21tYW5kSGFuZGxlckNvbXBvbmVudC5yZWdpc3RlckNvbW1hbmRIYW5kbGVycygoKSA9PiBbXG4gICAgICAgIG5ldyBVbmxvY2tBY3RpdmVOb3RlQ29tbWFuZEhhbmRsZXIoe1xuICAgICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgICAgcmVzb3VyY2VMb2NrQ29tcG9uZW50OiB0aGlzLnJlc291cmNlTG9ja0NvbXBvbmVudFxuICAgICAgICB9KVxuICAgICAgXSwgeyBsaWZldGltZU93bmVyOiB0aGlzLmNvbW1hbmRIYW5kbGVyQ29tcG9uZW50IH0pO1xuXG4gICAgICB0aGlzLnBsdWdpblNldHRpbmdzQ29tcG9uZW50ID0gdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChcbiAgICAgICAgbmV3IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZTxvYmplY3Q+KHtcbiAgICAgICAgICBkYXRhSGFuZGxlcjogbmV3IFBsdWdpbkRhdGFIYW5kbGVyKHRoaXMpLFxuICAgICAgICAgIHBsdWdpbkV2ZW50U291cmNlOiBuZXcgUGx1Z2luRXZlbnRTb3VyY2VJbXBsKHRoaXMpLFxuICAgICAgICAgIHBsdWdpblNldHRpbmdzQ2xhc3M6IE9iamVjdFxuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgLy8gVGhlIGdhdGUuIEl0IGxvYWRzIHRoZSBmZWF0dXJlIHN1cmZhY2UgaXRzZWxmIG9uY2UgZXZlcnkgZGVjbGFyZWQgZGVwZW5kZW5jeSBpcyBzYXRpc2ZpZWQgYW5kIG5vXG4gICAgICAvLyBkZWNsYXJlZCBjb25mbGljdCBob2xkcyDigJQgd2hpY2ggZm9yIGEgcGx1Z2luIGRlY2xhcmluZyBuZWl0aGVyIGlzIGltbWVkaWF0ZWx5LCBzeW5jaHJvbm91c2x5LFxuICAgICAgLy8gYmVmb3JlIHRoaXMgbGluZSByZXR1cm5zIOKAlCBhbmQgdW5sb2FkcyBpdCBhZ2FpbiBpZiBhIGRlcGVuZGVuY3kgaXMgbGF0ZXIgZGlzYWJsZWQgb3IgdW5pbnN0YWxsZWQsXG4gICAgICAvLyBvciBhIGNvbmZsaWN0aW5nIHBsdWdpbiBpcyBlbmFibGVkLiBBIHBsdWdpbiB0aGF0IGlzIGJsb2NrZWQgdGhlcmVmb3JlIHJlYWNoZXMgYGxvYWRXaXRoUHJvbWlzZXNgXG4gICAgICAvLyBiZWxvdyBoYXZpbmcgcmVnaXN0ZXJlZCBub3RoaW5nIG9mIGl0cyBvd24sIHdpdGggb25seSB0aGUgdW5pdmVyc2FsIGNvbXBvbmVudHMgYWJvdmUgcnVubmluZyB0b1xuICAgICAgLy8gZXhwbGFpbiB3aHkgYW5kIHRvIG9mZmVyIHRoZSByZXBhaXIuXG4gICAgICAvLyBBc3NpZ25lZCBCRUZPUkUgdGhlIGFkZCwgdW5saWtlIGV2ZXJ5IHVuaXZlcnNhbCBjb21wb25lbnQgYWJvdmUsIGFuZCB0aGF0IG9yZGVyIGlzIHRoZSB3aG9sZVxuICAgICAgLy8gcG9pbnQuIEFkZGluZyB0aGlzIG9uZSBpcyB3aGF0IHJ1bnMgYG9ubG9hZEltcGxgLCBwZXIgdGhlIHBhcmFncmFwaCBhYm92ZSwgc28gdGhlIGFzc2lnbm1lbnRcbiAgICAgIC8vIHN0YXRlbWVudCBoYXMgbm90IHJldHVybmVkIHlldCB3aGlsZSB0aGUgc3ViY2xhc3MgaXMgcnVubmluZyDigJQgYW5kIGEgc2V0dGluZ3MgdGFiIGJ1aWx0IHRoZXJlXG4gICAgICAvLyByZWFkcyBgdGhpcy5wbHVnaW5HYXRlQ29tcG9uZW50YCB0byByZW5kZXIgdGhlIGBXYXJuYCBiYW5uZXIuIEFzc2lnbmluZyBhZnRlciB0aGUgYWRkIHdvdWxkXG4gICAgICAvLyBtYWtlIHRoYXQgcmVhZCB0aHJvdyBgVmFsdWUgaXMgdW5kZWZpbmVkYCBvdXQgb2YgdGhlIGdldHRlciwgd2hpY2ggaXMgYW4gb3BhcXVlIHdheSB0byBzYXlcbiAgICAgIC8vIFwidG9vIGVhcmx5XCIuIE5vdGhpbmcgYWJvdXQgY2hpbGQtYWRkIG9yZGVyIG1vdmVzOiB0aGUgc2VxdWVuY2Ugb2YgYGFkZFVuaXZlcnNhbENoaWxkYCBjYWxscyBpc1xuICAgICAgLy8gdW5jaGFuZ2VkLCBhbmQgYHNldENvbXBvbmVudGAgaXMgYSBwbGFpbiBzdG9yZS5cbiAgICAgIGNvbnN0IHBsdWdpbkdhdGVDb21wb25lbnQgPSBuZXcgUGx1Z2luR2F0ZUNvbXBvbmVudCh7XG4gICAgICAgIGNvbmZsaWN0czogdGhpcy5nZXRQbHVnaW5Db25mbGljdHMoKSxcbiAgICAgICAgZGVwZW5kZW5jaWVzOiB0aGlzLmdldFBsdWdpbkRlcGVuZGVuY2llcygpLFxuICAgICAgICBsb2FkRmVhdHVyZVN1cmZhY2U6ICgpOiBQcm9taXNlPHZvaWQ+ID0+IHRoaXMubG9hZEZlYXR1cmVTdXJmYWNlKCksXG4gICAgICAgIHBsdWdpbjogdGhpcyxcbiAgICAgICAgcGx1Z2luTm90aWNlQ29tcG9uZW50OiB0aGlzLnBsdWdpbk5vdGljZUNvbXBvbmVudCxcbiAgICAgICAgdW5sb2FkRmVhdHVyZVN1cmZhY2U6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICB0aGlzLnVubG9hZEZlYXR1cmVTdXJmYWNlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5wbHVnaW5HYXRlQ29tcG9uZW50ID0gcGx1Z2luR2F0ZUNvbXBvbmVudDtcbiAgICAgIHRoaXMuYWRkVW5pdmVyc2FsQ2hpbGQocGx1Z2luR2F0ZUNvbXBvbmVudCk7XG5cbiAgICAgIC8vIEV2ZXJ5IGNoaWxkIGhhcyBhbHJlYWR5IGxvYWRlZCBhcyBpdCB3YXMgYWRkZWQ7IHRoaXMgYXdhaXRzIHRoZWlyIGFjY3VtdWxhdGVkIGFzeW5jIHRhaWxzIGFuZFxuICAgICAgLy8gcmVwb3J0cyBhbnkgZmFpbHVyZSBhcyBhIHNpbmdsZSBgQWdncmVnYXRlRXJyb3JgLlxuICAgICAgYXdhaXQgdGhpcy51bml2ZXJzYWxXcmFwcGVyQ29tcG9uZW50LmxvYWRXaXRoUHJvbWlzZXMoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcHJpbnRFcnJvcihuZXcgRXJyb3IoYEVycm9yIGxvYWRpbmcgcGx1Z2luICR7dGhpcy5tYW5pZmVzdC5uYW1lfSAoJHt0aGlzLm1hbmlmZXN0LmlkfSlgLCB7IGNhdXNlOiBlcnJvciB9KSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBpcyB1bmxvYWRlZC5cbiAgICpcbiAgICogQW5ub3VuY2VzIHRoZSBkZXBhcnR1cmUgb24gYGFwcC53b3Jrc3BhY2VgIHNvIGFueXRoaW5nIGRlcGVuZGluZyBvbiB0aGlzIHBsdWdpbiBsZWFybnMgb2YgaXQgYXQgdGhlXG4gICAqIG1vbWVudCBpdCBoYXBwZW5zLCByYXRoZXIgdGhhbiBkaXNjb3ZlcmluZyBpdCBsYXRlciB0aHJvdWdoIGJlaGF2aW9yIHRoYXQgcXVpZXRseSBzdG9wcGVkLlxuICAgKlxuICAgKiBEbyBOT1Qgb3ZlcnJpZGUgdGhpcyBtZXRob2Q7IHB1dCB0ZWFyZG93biBvbiBhIGNvbXBvbmVudCBpbnN0ZWFkLCB3aGljaCB1bmxvYWRzIHdpdGggdGhlIHBsdWdpbi5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBvbnVubG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLmJyb2FkY2FzdFVubG9hZGVkKCk7XG4gICAgc3VwZXIub251bmxvYWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgY2hpbGQgY29tcG9uZW50LlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFRDb21wb25lbnQgLSBUaGUgdHlwZSBvZiBjb21wb25lbnQgdG8gcmVtb3ZlLlxuICAgKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCBpbnN0YW5jZSB0byByZW1vdmUuXG4gICAqIEByZXR1cm5zIFRoZSByZW1vdmVkIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSByZW1vdmVDaGlsZDxUQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50Pihjb21wb25lbnQ6IFRDb21wb25lbnQpOiBUQ29tcG9uZW50IHtcbiAgICAvLyBSb3V0ZWQgYnkgb3duZXJzaGlwIHJhdGhlciB0aGFuIGJ5IHdoaWNoIHRpZXIgYGFkZENoaWxkYCB3b3VsZCBoYXZlIGNob3NlbiwgYmVjYXVzZSB0aGUgdHdvIGRvIG5vdFxuICAgIC8vIGFsd2F5cyBhZ3JlZTogYSB1bml2ZXJzYWwgY29tcG9uZW50IGlzIHBhcmVudGVkIGRpcmVjdGx5IG9uIHRoZSB1bml2ZXJzYWwgd3JhcHBlciwgeWV0IGEgc3ViY2xhc3NcbiAgICAvLyByZXBsYWNpbmcgb25lIGdvZXMgdGhyb3VnaCB0aGUgc2FtZSBwdWJsaWMgYHJlbW92ZUNoaWxkYCBhcyBpdCB3b3VsZCBmb3IgaXRzIG93biBjaGlsZHJlbi5cbiAgICByZXR1cm4gdGhpcy5nYXRlZFdyYXBwZXJDb21wb25lbnQuaGFzQ2hpbGQoY29tcG9uZW50KSA/IHRoaXMuZ2F0ZWRXcmFwcGVyQ29tcG9uZW50LnJlbW92ZUNoaWxkKGNvbXBvbmVudCkgOiB0aGlzLnVuaXZlcnNhbFdyYXBwZXJDb21wb25lbnQucmVtb3ZlQ2hpbGQoY29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUgdHJhbnNsYXRpb25zIG1hcCB1c2VkIHRvIGluaXRpYWxpemUgaTE4biBkdXJpbmcge0BsaW5rIG9ubG9hZH0uXG4gICAqXG4gICAqIE92ZXJyaWRlIGluIHN1YmNsYXNzIHRvIHN1cHBseSBwbHVnaW4tc3BlY2lmaWMgdHJhbnNsYXRpb25zLiBUaGUgZGVmYXVsdCByZXR1cm5zIHRoZSBidWlsdC1pblxuICAgKiBgQG1uYW91bW92L29ic2lkaWFuLWxpYmAgdHJhbnNsYXRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgdHJhbnNsYXRpb25zIG1hcC5cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVUcmFuc2xhdGlvbnNNYXAoKTogVHJhbnNsYXRpb25zTWFwIHtcbiAgICByZXR1cm4gZGVmYXVsdFRyYW5zbGF0aW9uc01hcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUgaWNvbiBzaG93biBvbiB0aGUgcGx1Z2luJ3MgcGFyZW50IGVudHJ5IGluIGBOb3RlYm9vayBOYXZpZ2F0b3JgJ3MgY29udGV4dCBtZW51cy5cbiAgICpcbiAgICogT3ZlcnJpZGUgaW4gc3ViY2xhc3MgdG8gYnJhbmQgdGhhdCBlbnRyeTsgdGhlIGRlZmF1bHQgbGVhdmVzIGl0IHdpdGhvdXQgYW4gaWNvbi4gVGhlIGVudHJ5IGlzXG4gICAqIHRpdGxlZCB3aXRoIHRoZSBwbHVnaW4gbmFtZSBhbmQgaXMgYWRkZWQgYXV0b21hdGljYWxseSDigJQgc2VlXG4gICAqIHtAbGluayBOb3RlYm9va05hdmlnYXRvck1lbnVFdmVudFJlZ2lzdHJhckNvbXBvbmVudH0uXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBpY29uLCBvciBgJydgIGZvciBubyBpY29uLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldE5vdGVib29rTmF2aWdhdG9yTWVudVN1Ym1lbnVJY29uKCk6IEljb25OYW1lIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgdGhlIEFQSXMgdGhpcyBwbHVnaW4gZXhwb3NlcyB0byBvdGhlciBwbHVnaW5zLlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyB0byBwdWJsaXNoIG9uZS4gVGhlIGRlZmF1bHQgcHVibGlzaGVzIG5vbmUuIENhbGxlZCBhZnRlciB7QGxpbmsgb25sb2FkSW1wbH0sIHNvIGFcbiAgICogZGVjbGFyYXRpb24gbWF5IHJlZmVyZW5jZSBhbnl0aGluZyBpdCBjcmVhdGVkOyB0aGUgcmV0dXJuZWQgZGVjbGFyYXRpb25zIGFyZSBwdWJsaXNoZWQgdGhyb3VnaFxuICAgKiBgcHVibGlzaFBsdWdpbkFwaWAgYW5kIHJldm9rZWQgd2hlbiB0aGUgcGx1Z2luJ3MgZmVhdHVyZSBzdXJmYWNlIHVubG9hZHMuXG4gICAqXG4gICAqIFJldHVybmluZyBhIExJU1QgcmF0aGVyIHRoYW4gYSBzaW5nbGUgQVBJIGlzIGRlbGliZXJhdGU6IHRoZSByZWdpc3RyeSBzdXBwb3J0cyBzZXZlcmFsIGNvbnRyYWN0XG4gICAqIHZlcnNpb25zIHB1Ymxpc2hlZCBzaWRlIGJ5IHNpZGUsIHdoaWNoIGlzIGhvdyBhIHByb3ZpZGVyIHNoaXBzIGEgYnJlYWtpbmcgYDIuMC4wYCB3aXRob3V0IHN0cmFuZGluZ1xuICAgKiBjb25zdW1lcnMgc3RpbGwgcGlubmVkIHRvIGBeMWAuXG4gICAqXG4gICAqIEV2ZXJ5IGRlY2xhcmF0aW9uIGhlcmUgaXMgcHVibGlzaGVkIEJFRk9SRSB0aGUgYG9ic2lkaWFuLWRldi11dGlsczpwbHVnaW4tbG9hZGVkYCBicm9hZGNhc3QsIHdoaWNoIGlzXG4gICAqIHdoYXQgbGV0cyBhIGxpc3RlbmVyIGNhbGwgdGhlc2UgQVBJcyB0aGUgbW9tZW50IGl0IGhlYXJzIHRoYXQgZXZlbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBBUEkgZGVjbGFyYXRpb25zLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFBsdWdpbkFwaXMoKTogUGx1Z2luQXBpRGVjbGFyYXRpb25bXSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIHRoZSBwbHVnaW5zIHRoaXMgb25lIHJlZnVzZXMsIG9yIHdhcm5zIGFib3V0LCBydW5uaW5nIGJlc2lkZS5cbiAgICpcbiAgICogT3ZlcnJpZGUgaW4gc3ViY2xhc3MgdG8gZGVjbGFyZSBhbiBvdmVybGFwLiBUaGUgZGVmYXVsdCBkZWNsYXJlcyBub25lLlxuICAgKlxuICAgKiBBIGBCbG9ja2AgY29uZmxpY3QgaXMgdGhlIG1pcnJvciBpbWFnZSBvZiBhIGRlcGVuZGVuY3k6IHdoaWxlIGEgY29uZmxpY3RpbmcgcGx1Z2luIGlzIGVuYWJsZWQgYXQgYVxuICAgKiBjb25mbGljdGluZyB2ZXJzaW9uLCB7QGxpbmsgb25sb2FkSW1wbH0gZG9lcyBub3QgcnVuIGF0IGFsbCBhbmQgdGhlIHBsdWdpbiByZWdpc3RlcnMgbm90aGluZy4gRGVjbGFyZVxuICAgKiBpdCB3aGVuIGJvdGggcGx1Z2lucyBhY3Rpbmcgb24gdGhlIHNhbWUgb3BlcmF0aW9uIGRhbWFnZXMgdGhlIHZhdWx0IOKAlCB0aGVyZSBpcyBubyByZWxpYWJsZSB3YXkgdG8gd2luXG4gICAqIHRoYXQgcmFjZSwgYmVjYXVzZSB3aGljaGV2ZXIgcGx1Z2luIGxvYWRlZCBmaXJzdCBrZWVwcyBhIGhhbmQgb24gdGhlIHdoZWVsLCBzbyByZWZ1c2luZyBkZXRlcm1pbmlzdGljYWxseVxuICAgKiBiZWF0cyBjb21wZXRpbmcgdW5wcmVkaWN0YWJseS4gQSBgV2FybmAgY29uZmxpY3QgZGVjbGFyZXMgYW4gb3ZlcmxhcCB0aGF0IGlzIG1lcmVseSBhbm5veWluZywgc3VjaCBhcyBhXG4gICAqIGR1cGxpY2F0ZWQgY29tbWFuZDogYm90aCBwbHVnaW5zIGtlZXAgcnVubmluZyBhbmQgdGhlIHVzZXIgaXMgdG9sZC5cbiAgICpcbiAgICogVW5saWtlIGEgZGVwZW5kZW5jeSwgYSBjb25mbGljdGluZyBwbHVnaW4gbmVlZCBub3QgcHVibGlzaCBhbnl0aGluZyDigJQgaXQgaXMgZGV0ZWN0ZWQgYnkgcmVhZGluZyBpdHNcbiAgICogaW5zdGFsbGVkIHZlcnNpb24sIHdoaWNoIGlzIHRoZSBvbmx5IHRoaW5nIGFib3V0IGFub3RoZXIgcGx1Z2luIHRoYXQgcmVhZHMgdGhlIHNhbWUgcmVnYXJkbGVzcyBvZiBsb2FkXG4gICAqIG9yZGVyLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgZGVjbGFyZWQgY29uZmxpY3RzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFBsdWdpbkNvbmZsaWN0cygpOiBQbHVnaW5Db25mbGljdFtdIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgdGhlIHBsdWdpbnMgdGhpcyBvbmUgY2Fubm90IHdvcmsgd2l0aG91dC5cbiAgICpcbiAgICogT3ZlcnJpZGUgaW4gc3ViY2xhc3MgdG8gZGVjbGFyZSBhIG1hbmRhdG9yeSBkZXBlbmRlbmN5LiBUaGUgZGVmYXVsdCBkZWNsYXJlcyBub25lLCBhbmQgc3VjaCBhIHBsdWdpblxuICAgKiBsb2FkcyBleGFjdGx5IGFzIGl0IGFsd2F5cyBoYXMuXG4gICAqXG4gICAqIEEgZGVjbGFyZWQgZGVwZW5kZW5jeSBpcyBNQU5EQVRPUlksIHVubGlrZSB0aGUgb2ZmZXIgYFBsdWdpblN1Z2dlc3Rpb25Db21wb25lbnRgIG1ha2VzOiB3aGlsZSBvbmUgaXNcbiAgICogbWlzc2luZywgZGlzYWJsZWQsIG9yIHRvbyBvbGQsIHtAbGluayBvbmxvYWRJbXBsfSBkb2VzIG5vdCBydW4gYXQgYWxsIGFuZCB0aGUgcGx1Z2luIHJlZ2lzdGVycyBub3RoaW5nXG4gICAqIOKAlCBubyBjb21tYW5kcywgbm8gaGFuZGxlcnMsIG5vIHBhdGNoZXMuIEl0IHN0YXlzIGVuYWJsZWQgaW4gT2JzaWRpYW4ncyBsaXN0IHJhdGhlciB0aGFuIGRpc2FibGluZ1xuICAgKiBpdHNlbGYsIGJlY2F1c2UgdGhlIGVuYWJsZWQgc2V0IGlzIHRoZSB1c2VyJ3MgdG8gY2hhbmdlLCBhbmQgaXQgZXhwbGFpbnMgaXRzZWxmIHRocm91Z2ggYSBub3RpY2UgYW5kIGFcbiAgICogc2V0dGluZ3MgYmFubmVyIHRoYXQgaW5zdGFsbHMgdGhlIG1pc3NpbmcgcGx1Z2luIGluIG9uZSBjbGljay4gVGhlIGxvYWQgY29tcGxldGVzIHRoZSBtb21lbnQgdGhlXG4gICAqIGRlcGVuZGVuY3kgYXJyaXZlcywgd2l0aCBubyByZXN0YXJ0LlxuICAgKlxuICAgKiBBIGRlcGVuZGVuY3kgbXVzdCBwdWJsaXNoIGFuIEFQSSB0aHJvdWdoIGBwdWJsaXNoUGx1Z2luQXBpYCwgd2hpY2ggaXMgd2hhdCBtYWtlcyBpdHMgcHJlc2VuY2UsXG4gICAqIGFic2VuY2UsIHZlcnNpb24gYW5kIGRlcGFydHVyZSBhbGwgb2JzZXJ2YWJsZSB0aHJvdWdoIG9uZSBtZWNoYW5pc20uIEEgcGx1Z2luIHdpdGggbm90aGluZyB0byBleHBvc2VcbiAgICogY2FuIHB1Ymxpc2ggYW4gZW1wdHkgQVBJIHB1cmVseSBzbyBpdCBjYW4gYmUgZGVwZW5kZWQgdXBvbi5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGRlY2xhcmVkIGRlcGVuZGVuY2llcy5cbiAgICovXG4gIHByb3RlY3RlZCBnZXRQbHVnaW5EZXBlbmRlbmNpZXMoKTogUGx1Z2luRGVwZW5kZW5jeVtdIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGR1cmluZyB7QGxpbmsgb25sb2FkfSB0byB3aXJlIHBsdWdpbi1zcGVjaWZpYyBjaGlsZCBjb21wb25lbnRzLlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyB0byBhZGQgY2hpbGQgY29tcG9uZW50cyB2aWEge0BsaW5rIGFkZENoaWxkfS4gVGhlIHVuaXZlcnNhbCBjb21wb25lbnRzIGFyZVxuICAgKiBhdmFpbGFibGUgaGVyZS4gQ2hpbGRyZW4gYXJlIGxvYWRlZCBzZXF1ZW50aWFsbHkgaW4gdGhlIG9yZGVyIHRoZXkgYXJlIGFkZGVkIChjaGlsZHJlbi1maXJzdCkuXG4gICAqXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc3ViY2xhc3MgbG9hZCBsb2dpYyBpcyBjb21wbGV0ZS5cbiAgICovXG4gIHByb3RlY3RlZCBvbmxvYWRJbXBsKCk6IFByb21pc2FibGU8dm9pZD4ge1xuICAgIHJldHVybiBub29wQXN5bmMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9yZXMgYSB1bml2ZXJzYWwgY29tcG9uZW50LCB1bmxvYWRpbmcgd2hpY2hldmVyIGNvbXBvbmVudCB0aGUga2V5IGhlbGQgYmVmb3JlLlxuICAgKlxuICAgKiBLZXllZCBieSBuYW1lIHJhdGhlciB0aGFuIGhhbmRlZCB0aGUgcHJldmlvdXMgdmFsdWUgYmVjYXVzZSBga2V5b2YgdGhpc2AgZXhjbHVkZXMgcHJpdmF0ZVxuICAgKiBtZW1iZXJzLCBzbyB0aGUgY29tcG9uZW50cyBsaXZlIGluIGEgc2luZ2xlIHtAbGluayBQbHVnaW5CYXNlQ29tcG9uZW50c30gYmFnIHdob3NlIGtleXMgQVJFXG4gICAqIGluZGV4YWJsZS5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUS2V5IC0gVGhlIGtleSBvZiB0aGUgY29tcG9uZW50IHRvIHN0b3JlLlxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIGtleSBvZiB0aGUgY29tcG9uZW50IHRvIHN0b3JlLlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgY29tcG9uZW50IHRvIHN0b3JlLlxuICAgKi9cbiAgLyoqXG4gICAqIEFkZHMgYSBjb21wb25lbnQgdG8gdGhlIHVuaXZlcnNhbCB0aWVyLCB3aGljaCBvdXRsaXZlcyBhbnkgZGVwZW5kZW5jeS5cbiAgICpcbiAgICogUHJpdmF0ZSBvbiBwdXJwb3NlOiBvbmx5IHRoaXMgY2xhc3MgZGVjaWRlcyB3aGF0IGlzIHVuaXZlcnNhbC4gQSBzdWJjbGFzcyBhZGRpbmcgb25lIG9mIGl0cyBvd24gZ29lc1xuICAgKiB0aHJvdWdoIHtAbGluayBhZGRDaGlsZH0gYW5kIGxhbmRzIGluIHRoZSBnYXRlZCB0aWVyLCB3aGVyZSBpdCBiZWxvbmdzLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFRDb21wb25lbnQgLSBUaGUgdHlwZSBvZiBjb21wb25lbnQgdG8gYWRkLlxuICAgKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCBpbnN0YW5jZSB0byBhZGQuXG4gICAqIEByZXR1cm5zIFRoZSBhZGRlZCBjb21wb25lbnQuXG4gICAqL1xuICBwcml2YXRlIGFkZFVuaXZlcnNhbENoaWxkPFRDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnQ+KGNvbXBvbmVudDogVENvbXBvbmVudCk6IFRDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnVuaXZlcnNhbFdyYXBwZXJDb21wb25lbnQuYWRkQ2hpbGQoY29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbm5vdW5jZXMgb24gYGFwcC53b3Jrc3BhY2VgIHRoYXQgdGhpcyBwbHVnaW4gaXMgbG9hZGVkIGFuZCBpdHMgQVBJcyBhcmUgY2FsbGFibGUuXG4gICAqL1xuICBwcml2YXRlIGJyb2FkY2FzdExvYWRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmxpZmVjeWNsZUV2ZW50UGF5bG9hZCA9IHtcbiAgICAgIGFwaVZlcnNpb25zOiB0aGlzLmdldFBsdWdpbkFwaXMoKS5tYXAoKGRlY2xhcmF0aW9uKSA9PiBkZWNsYXJhdGlvbi5hcGlWZXJzaW9uKSxcbiAgICAgIGRlcGVuZGVuY3lQbHVnaW5JZHM6IHRoaXMuZ2V0UGx1Z2luRGVwZW5kZW5jaWVzKCkubWFwKChkZXBlbmRlbmN5KSA9PiBkZXBlbmRlbmN5LnBsdWdpbklkKSxcbiAgICAgIHBsdWdpbklkOiB0aGlzLm1hbmlmZXN0LmlkLFxuICAgICAgcGx1Z2luTmFtZTogdGhpcy5tYW5pZmVzdC5uYW1lLFxuICAgICAgcGx1Z2luVmVyc2lvbjogdGhpcy5tYW5pZmVzdC52ZXJzaW9uXG4gICAgfTtcblxuICAgIHRyaWdnZXJQbHVnaW5MaWZlY3ljbGVFdmVudCh7XG4gICAgICBhcHA6IHRoaXMuYXBwLFxuICAgICAgbmFtZTogUExVR0lOX0xPQURFRF9FVkVOVF9OQU1FLFxuICAgICAgcGF5bG9hZDogdGhpcy5saWZlY3ljbGVFdmVudFBheWxvYWRcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbm5vdW5jZXMgb24gYGFwcC53b3Jrc3BhY2VgIHRoYXQgdGhpcyBwbHVnaW4ncyBzdXJmYWNlIGhhcyBnb25lIGF3YXkuXG4gICAqXG4gICAqIFNpbGVudCB1bmxlc3MgYSBsb2FkZWQgYnJvYWRjYXN0IGlzIG91dHN0YW5kaW5nLCBzbyB0aGUgdHdvIGV2ZW50cyBzdGF5IHBhaXJlZDogYSBwbHVnaW4gdGhhdCBuZXZlclxuICAgKiBnb3QgcGFzdCBpdHMgZGVwZW5kZW5jeSBnYXRlIG5ldmVyIGFubm91bmNlZCBpdHNlbGYsIGFuZCBtdXN0IG5vdCBhbm5vdW5jZSBhIGRlcGFydHVyZSBlaXRoZXIuXG4gICAqL1xuICBwcml2YXRlIGJyb2FkY2FzdFVubG9hZGVkKCk6IHZvaWQge1xuICAgIGNvbnN0IHBheWxvYWQgPSB0aGlzLmxpZmVjeWNsZUV2ZW50UGF5bG9hZDtcbiAgICBpZiAoIXBheWxvYWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmxpZmVjeWNsZUV2ZW50UGF5bG9hZCA9IG51bGw7XG4gICAgdHJpZ2dlclBsdWdpbkxpZmVjeWNsZUV2ZW50KHtcbiAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICBuYW1lOiBQTFVHSU5fVU5MT0FERURfRVZFTlRfTkFNRSxcbiAgICAgIHBheWxvYWRcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYW5kIGxvYWRzIHRoZSBzdWJjbGFzcydzIGZlYXR1cmUgc3VyZmFjZSwgdGhlbiBwdWJsaXNoZXMgaXRzIEFQSXMgYW5kIGFubm91bmNlcyBpdHNlbGYuXG4gICAqXG4gICAqIE5PVCBpZGVtcG90ZW50LCBkZWxpYmVyYXRlbHkuIGBQbHVnaW5HYXRlQ29tcG9uZW50YCBvd25zIHRoZSB1cC9kb3duIHN0YXRlIG1hY2hpbmUgYW5kIGNhbGxzXG4gICAqIHRoaXMgb25seSBvbiBhIHJlYWwgdHJhbnNpdGlvbjsgYSBzZWNvbmQgZ3VhcmQgaGVyZSB3b3VsZCBiZSBhIHNlY29uZCBjb3B5IG9mIHRoYXQgc3RhdGUsIHdoaWNoIGlzIHRoZVxuICAgKiBraW5kIG9mIGR1cGxpY2F0ZSB0aGF0IGRyaWZ0cy5cbiAgICpcbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBzdXJmYWNlIGlzIGxvYWRlZCBhbmQgdGhlIGJyb2FkY2FzdCBoYXMgYmVlbiBtYWRlLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBsb2FkRmVhdHVyZVN1cmZhY2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gTG9hZGVkIGV4cGxpY2l0bHkgZm9yIHRoZSBzYW1lIHJlYXNvbiB0aGUgdW5pdmVyc2FsIHdyYXBwZXIgaXM6IGBhZGRDaGlsZGAgbG9hZHMgYSBjaGlsZCBvbmx5IG9uY2VcbiAgICAvLyBpdHMgcGFyZW50IGlzIGxvYWRlZCwgYW5kIHRoZSBzdXJmYWNlIGhhcyB0byBiZSBsaXZlIGJlZm9yZSBgb25sb2FkSW1wbGAgc3RhcnRzIGFkZGluZyB0byBpdC5cbiAgICBjb25zdCBnYXRlZFdyYXBwZXJDb21wb25lbnQgPSB0aGlzLmdhdGVkV3JhcHBlckNvbXBvbmVudDtcbiAgICB0aGlzLnVuaXZlcnNhbFdyYXBwZXJDb21wb25lbnQuYWRkQ2hpbGQoZ2F0ZWRXcmFwcGVyQ29tcG9uZW50KTtcbiAgICBnYXRlZFdyYXBwZXJDb21wb25lbnQubG9hZCgpO1xuXG4gICAgYXdhaXQgdGhpcy5vbmxvYWRJbXBsKCk7XG4gICAgYXdhaXQgZ2F0ZWRXcmFwcGVyQ29tcG9uZW50LmxvYWRXaXRoUHJvbWlzZXMoKTtcblxuICAgIGZvciAoY29uc3QgZGVjbGFyYXRpb24gb2YgdGhpcy5nZXRQbHVnaW5BcGlzKCkpIHtcbiAgICAgIHB1Ymxpc2hQbHVnaW5BcGkoe1xuICAgICAgICAuLi5kZWNsYXJhdGlvbixcbiAgICAgICAgLy8gUmV2b2tlZCB3aXRoIHRoZSBTVVJGQUNFLCBub3Qgd2l0aCB0aGUgcGx1Z2luOiBhIHBsdWdpbiB3aG9zZSBkZXBlbmRlbmN5IGdvZXMgYXdheSBrZWVwcyBydW5uaW5nXG4gICAgICAgIC8vIGl0cyB1bml2ZXJzYWwgY29tcG9uZW50cywgYW5kIGEgY29uc3VtZXIgbXVzdCBub3QgYmUgbGVmdCBob2xkaW5nIGEgaGFuZGxlIGludG8gdGhlIGhhbGYgb2YgaXRcbiAgICAgICAgLy8gdGhhdCB3YXMganVzdCB0b3JuIGRvd24uXG4gICAgICAgIGNvbXBvbmVudDogZ2F0ZWRXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBwbHVnaW46IHRoaXNcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuYnJvYWRjYXN0TG9hZGVkKCk7XG4gIH1cblxuICBwcml2YXRlIHNldENvbXBvbmVudDxUS2V5IGV4dGVuZHMga2V5b2YgUGx1Z2luQmFzZUNvbXBvbmVudHM+KGtleTogVEtleSwgdmFsdWU6IE5vbk51bGxhYmxlPFBsdWdpbkJhc2VDb21wb25lbnRzW1RLZXldPik6IHZvaWQge1xuICAgIGNvbnN0IG9sZENvbXBvbmVudCA9IHRoaXMuY29tcG9uZW50c1trZXldO1xuICAgIGlmIChvbGRDb21wb25lbnQpIHtcbiAgICAgIHRoaXMucmVtb3ZlQ2hpbGQob2xkQ29tcG9uZW50KTtcbiAgICB9XG4gICAgdGhpcy5jb21wb25lbnRzW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUZWFycyB0aGUgc3ViY2xhc3MncyBmZWF0dXJlIHN1cmZhY2UgZG93biwgbGVhdmluZyB0aGUgdW5pdmVyc2FsIGNvbXBvbmVudHMgcnVubmluZy5cbiAgICovXG4gIHByaXZhdGUgdW5sb2FkRmVhdHVyZVN1cmZhY2UoKTogdm9pZCB7XG4gICAgY29uc3QgZ2F0ZWRXcmFwcGVyQ29tcG9uZW50ID0gdGhpcy5nYXRlZFdyYXBwZXJDb21wb25lbnQ7XG5cbiAgICAvLyBSZXBsYWNlZCBCRUZPUkUgdGhlIG9sZCBvbmUgaXMgdW5sb2FkZWQsIHNvIGFueXRoaW5nIHRoYXQgcmVzdW1lcyBtaWQtdGVhcmRvd24gYW5kIGNhbGxzIGBhZGRDaGlsZGBcbiAgICAvLyBwYXJrcyBpdHMgY2hpbGQgb24gdGhlIGZyZXNoIHN1cmZhY2UgcmF0aGVyIHRoYW4gb24gdGhlIG9uZSBiZWluZyB0b3JuIGRvd24g4oCUIHdoZXJlIGBDb21wb25lbnRFeGBcbiAgICAvLyB3b3VsZCByZWZ1c2UgaXQgb3V0cmlnaHQsIHNpbmNlIGl0IHJlZnVzZXMgY2hpbGRyZW4gYWRkZWQgdG8gYW4gYWxyZWFkeS11bmxvYWRlZCBjb21wb25lbnQuXG4gICAgdGhpcy5nYXRlZFdyYXBwZXJDb21wb25lbnQgPSBuZXcgQ29tcG9uZW50RXgoKTtcbiAgICB0aGlzLnVuaXZlcnNhbFdyYXBwZXJDb21wb25lbnQucmVtb3ZlQ2hpbGQoZ2F0ZWRXcmFwcGVyQ29tcG9uZW50KTtcblxuICAgIHRoaXMuYnJvYWRjYXN0VW5sb2FkZWQoKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbG9hZHMgdGhlIHNwZWNpZmllZCBwbHVnaW4gYnkgZGlzYWJsaW5nIGFuZCB0aGVuIHJlLWVuYWJsaW5nIGl0LlxuICpcbiAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIHJlbG9hZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcGx1Z2luIGlzIHJlbG9hZGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVsb2FkUGx1Z2luKHBsdWdpbjogUGx1Z2luKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBsdWdpbnMgPSBwbHVnaW4uYXBwLnBsdWdpbnM7XG4gIGNvbnN0IHBsdWdpbklkID0gcGx1Z2luLm1hbmlmZXN0LmlkO1xuICBhd2FpdCBwbHVnaW5zLmRpc2FibGVQbHVnaW4ocGx1Z2luSWQpO1xuICBhd2FpdCBwbHVnaW5zLmVuYWJsZVBsdWdpbihwbHVnaW5JZCk7XG59XG5cbi8qKlxuICogRGlzcGxheXMgYW4gZXJyb3IgbWVzc2FnZSBhcyBhIG5vdGljZSwgbG9ncyBpdCB0byB0aGUgY29uc29sZSwgYW5kIGRpc2FibGVzIHRoZSBzcGVjaWZpZWQgcGx1Z2luLlxuICpcbiAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIGRpc2FibGUuXG4gKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgYW5kIGxvZy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcGx1Z2luIGlzIGRpc2FibGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hvd0Vycm9yQW5kRGlzYWJsZVBsdWdpbihwbHVnaW46IFBsdWdpbiwgbWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBsdWdpbk5vdGljZUNvbXBvbmVudCA9IG5ldyBQbHVnaW5Ob3RpY2VDb21wb25lbnQoe1xuICAgIGFwcDogcGx1Z2luLmFwcCxcbiAgICBwbHVnaW5OYW1lOiBwbHVnaW4ubWFuaWZlc3QubmFtZVxuICB9KTtcbiAgcGx1Z2luTm90aWNlQ29tcG9uZW50LnNob3dOb3RpY2UobWVzc2FnZSk7XG4gIHByaW50RXJyb3IobmV3IEVycm9yKG1lc3NhZ2UpKTtcbiAgYXdhaXQgcGx1Z2luLmFwcC5wbHVnaW5zLmRpc2FibGVQbHVnaW4ocGx1Z2luLm1hbmlmZXN0LmlkKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjQSxTQUFTLHdCQUF3QjtBQUNqQyxTQUFTLGtCQUFrQjtBQUMzQixTQUFTLGlCQUFpQjtBQUMxQixTQUFTLHlCQUF5QjtBQUNsQyxTQUFTLGNBQWM7QUFjdkIsU0FBUyw2QkFBNkI7QUFDdEMsU0FBUywrQkFBK0I7QUFDeEMsU0FBUyxzQ0FBc0M7QUFDL0MsU0FBUyw4QkFBOEI7QUFDdkMsU0FBUyw0QkFBNEI7QUFDckMsU0FBUyxrQ0FBa0M7QUFDM0MsU0FB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
|
|
602
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbHVnaW4vcGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBCYXNlIGNsYXNzIGZvciBPYnNpZGlhbiBwbHVnaW5zIHVzaW5nIGEgY29tcG9uZW50LWJhc2VkIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBQbHVnaW5CYXNlIHJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyAoY29udGV4dCwgaTE4biwgZXJyb3IgaGFuZGxpbmcsIGFib3J0IHNpZ25hbCwgbGlmZWN5Y2xlIGV2ZW50cywgZGVidWcpLlxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgQ29tcG9uZW50LFxuICBJY29uTmFtZVxufSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBtaXhpbkFzeW5jRXZlbnRzIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2FzeW5jLWV2ZW50cyc7XG5pbXBvcnQgeyBwcmludEVycm9yIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Vycm9yJztcbmltcG9ydCB7IG5vb3BBc3luYyB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9mdW5jdGlvbic7XG5pbXBvcnQgeyBlbnN1cmVOb25OdWxsYWJsZSB9IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi90eXBlLWd1YXJkcyc7XG5pbXBvcnQgeyBQbHVnaW4gfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgUGx1Z2luQ29uZmxpY3QsXG4gIFBsdWdpbkRlcGVuZGVuY3lcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4tZ2F0ZS1jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2xhdGlvbnNNYXAgfSBmcm9tICcuLi9pMThuL2kxOG4udHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5BcGlEZWNsYXJhdGlvbiB9IGZyb20gJy4vcGx1Z2luLWFwaS50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIFBsdWdpbkV2ZW50TWFwLFxuICBQbHVnaW5FdmVudFNvdXJjZVxufSBmcm9tICcuL3BsdWdpbi1ldmVudC1zb3VyY2UudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5MaWZlY3ljbGVFdmVudFBheWxvYWQgfSBmcm9tICcuL3BsdWdpbi1saWZlY3ljbGUtZXZlbnRzLnRzJztcblxuaW1wb3J0IHsgQXBwQWN0aXZlRmlsZVByb3ZpZGVyIH0gZnJvbSAnLi4vYWN0aXZlLWZpbGUtcHJvdmlkZXIudHMnO1xuaW1wb3J0IHsgQ29tbWFuZEhhbmRsZXJDb21wb25lbnQgfSBmcm9tICcuLi9jb21tYW5kLWhhbmRsZXJzL2NvbW1hbmQtaGFuZGxlci1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgVW5sb2NrQWN0aXZlTm90ZUNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi4vY29tbWFuZC1oYW5kbGVycy91bmxvY2stYWN0aXZlLW5vdGUtY29tbWFuZC1oYW5kbGVyLnRzJztcbmltcG9ydCB7IFBsdWdpbkNvbW1hbmRSZWdpc3RyYXIgfSBmcm9tICcuLi9jb21tYW5kLXJlZ2lzdHJhci50cyc7XG5pbXBvcnQgeyBBYm9ydFNpZ25hbENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYWJvcnQtc2lnbmFsLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBBc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYXN5bmMtZXJyb3ItaGFuZGxlci1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgQ29tcG9uZW50RXggfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbXBvbmVudC1leC50cyc7XG5pbXBvcnQgeyBDb25zb2xlRGVidWdDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbnNvbGUtZGVidWctY29tcG9uZW50LnRzJztcbmltcG9ydCB7IE1lbnVFdmVudFJlZ2lzdHJhckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmltcG9ydCB7IE5vdGVib29rTmF2aWdhdG9yTWVudUV2ZW50UmVnaXN0cmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9ub3RlYm9vay1uYXZpZ2F0b3ItbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmltcG9ydCB7IFBsdWdpbkNvbnRleHRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3BsdWdpbi1jb250ZXh0LWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBQbHVnaW5HYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4tZ2F0ZS1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgUGx1Z2luTm90aWNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5pbXBvcnQgeyBQbHVnaW5TZXR0aW5nc0NvbXBvbmVudEJhc2UgfSBmcm9tICcuLi9jb21wb25lbnRzL3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQudHMnO1xuaW1wb3J0IHsgUGx1Z2luRGF0YUhhbmRsZXIgfSBmcm9tICcuLi9kYXRhLWhhbmRsZXIudHMnO1xuaW1wb3J0IHsgaW5pdEkxOE4gfSBmcm9tICcuLi9pMThuL2kxOG4udHMnO1xuaW1wb3J0IHsgZGVmYXVsdFRyYW5zbGF0aW9uc01hcCB9IGZyb20gJy4uL2kxOG4vbG9jYWxlcy90cmFuc2xhdGlvbnMtbWFwLnRzJztcbmltcG9ydCB7IFJlc291cmNlTG9ja0NvbXBvbmVudCB9IGZyb20gJy4uL3Jlc291cmNlLWxvY2sudHMnO1xuaW1wb3J0IHsgcHVibGlzaFBsdWdpbkFwaSB9IGZyb20gJy4vcGx1Z2luLWFwaS50cyc7XG5pbXBvcnQgeyBQbHVnaW5FdmVudFNvdXJjZUltcGwgfSBmcm9tICcuL3BsdWdpbi1ldmVudC1zb3VyY2UudHMnO1xuaW1wb3J0IHtcbiAgUExVR0lOX0xPQURFRF9FVkVOVF9OQU1FLFxuICBQTFVHSU5fVU5MT0FERURfRVZFTlRfTkFNRSxcbiAgdHJpZ2dlclBsdWdpbkxpZmVjeWNsZUV2ZW50XG59IGZyb20gJy4vcGx1Z2luLWxpZmVjeWNsZS1ldmVudHMudHMnO1xuXG4vKipcbiAqIFRoZSB1bml2ZXJzYWwgY29tcG9uZW50cyBvd25lZCBieSB7QGxpbmsgUGx1Z2luQmFzZX0sIGtleWVkIGJ5IHRoZSBuYW1lIG9mIHRoZSBhY2Nlc3NvciBleHBvc2luZ1xuICogZWFjaCBvbmUuIEV2ZXJ5IG1lbWJlciBpcyBvcHRpb25hbCBiZWNhdXNlIGEgY29tcG9uZW50IG9ubHkgZXhpc3RzIG9uY2Uge0BsaW5rIFBsdWdpbkJhc2Uub25sb2FkfVxuICogaGFzIGNyZWF0ZWQgaXQuXG4gKi9cbmludGVyZmFjZSBQbHVnaW5CYXNlQ29tcG9uZW50cyB7XG4gIGFib3J0U2lnbmFsQ29tcG9uZW50PzogQWJvcnRTaWduYWxDb21wb25lbnQ7XG4gIGFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50PzogQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQ7XG4gIGNvbW1hbmRIYW5kbGVyQ29tcG9uZW50PzogQ29tbWFuZEhhbmRsZXJDb21wb25lbnQ7XG4gIGNvbnNvbGVEZWJ1Z0NvbXBvbmVudD86IENvbnNvbGVEZWJ1Z0NvbXBvbmVudDtcbiAgcGx1Z2luQ29udGV4dENvbXBvbmVudD86IFBsdWdpbkNvbnRleHRDb21wb25lbnQ7XG4gIHBsdWdpbkdhdGVDb21wb25lbnQ/OiBQbHVnaW5HYXRlQ29tcG9uZW50O1xuICBwbHVnaW5Ob3RpY2VDb21wb25lbnQ/OiBQbHVnaW5Ob3RpY2VDb21wb25lbnQ7XG4gIHBsdWdpblNldHRpbmdzQ29tcG9uZW50PzogUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlPG9iamVjdD47XG4gIHJlc291cmNlTG9ja0NvbXBvbmVudD86IFJlc291cmNlTG9ja0NvbXBvbmVudDtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBjcmVhdGluZyBPYnNpZGlhbiBwbHVnaW5zIHdpdGggYSBjb21wb25lbnQtYmFzZWQgYXJjaGl0ZWN0dXJlLlxuICpcbiAqIFJlZ2lzdGVycyB1bml2ZXJzYWwgY29tcG9uZW50cyBhdXRvbWF0aWNhbGx5LiBTdWJjbGFzc2VzIGFkZCBvciByZXBsYWNlIGNvbXBvbmVudHNcbiAqIHZpYSB7QGxpbmsgcmVtb3ZlQ2hpbGR9IC8ge0BsaW5rIGFkZENoaWxkfS5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBsdWdpbkJhc2UgZXh0ZW5kcyBtaXhpbkFzeW5jRXZlbnRzPFBsdWdpbkV2ZW50TWFwPigpKFBsdWdpbikgaW1wbGVtZW50cyBQbHVnaW5FdmVudFNvdXJjZSB7XG4gIC8qKlxuICAgKiBHZXRzIGFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIGFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGFib3J0U2lnbmFsQ29tcG9uZW50KCk6IEFib3J0U2lnbmFsQ29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5jb21wb25lbnRzLmFib3J0U2lnbmFsQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIEFib3J0IHNpZ25hbCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IGFib3J0U2lnbmFsQ29tcG9uZW50KHZhbHVlOiBBYm9ydFNpZ25hbENvbXBvbmVudCkge1xuICAgIHRoaXMuc2V0Q29tcG9uZW50KCdhYm9ydFNpZ25hbENvbXBvbmVudCcsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFzeW5jIGVycm9yIGhhbmRsZXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBhc3luYyBlcnJvciBoYW5kbGVyIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQoKTogQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLmNvbXBvbmVudHMuYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgYXN5bmMgZXJyb3IgaGFuZGxlciBjb21wb25lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIEFzeW5jIGVycm9yIGhhbmRsZXIgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCBhc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCh2YWx1ZTogQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQpIHtcbiAgICB0aGlzLnNldENvbXBvbmVudCgnYXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQnLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgc2hhcmVkIGNvbW1hbmQgaGFuZGxlciBjb21wb25lbnQuIFJlZ2lzdGVyIGEgcGx1Z2luJ3MgY29tbWFuZHMgb24gaXQgdmlhXG4gICAqIHtAbGluayBDb21tYW5kSGFuZGxlckNvbXBvbmVudC5yZWdpc3RlckNvbW1hbmRIYW5kbGVyc30gcmF0aGVyIHRoYW4gY29uc3RydWN0aW5nIHlvdXIgb3duXG4gICAqIHtAbGluayBDb21tYW5kSGFuZGxlckNvbXBvbmVudH0g4oCUIHRoZSBhcHAtYmFja2VkIGFjdGl2ZS1maWxlIHByb3ZpZGVyLCBjb21tYW5kIHJlZ2lzdHJhciwgbWVudVxuICAgKiBldmVudCByZWdpc3RyYXIsIGFuZCBwbHVnaW4gbmFtZSBhcmUgYWxyZWFkeSB3aXJlZC5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGNvbW1hbmQgaGFuZGxlciBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IGNvbW1hbmRIYW5kbGVyQ29tcG9uZW50KCk6IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5jb21wb25lbnRzLmNvbW1hbmRIYW5kbGVyQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjb21tYW5kIGhhbmRsZXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgY29tbWFuZCBoYW5kbGVyIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXQgY29tbWFuZEhhbmRsZXJDb21wb25lbnQodmFsdWU6IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50KSB7XG4gICAgdGhpcy5zZXRDb21wb25lbnQoJ2NvbW1hbmRIYW5kbGVyQ29tcG9uZW50JywgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgY29uc29sZSBkZWJ1ZyBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIGNvbnNvbGUgZGVidWcgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBjb25zb2xlRGVidWdDb21wb25lbnQoKTogQ29uc29sZURlYnVnQ29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5jb21wb25lbnRzLmNvbnNvbGVEZWJ1Z0NvbXBvbmVudCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBjb25zb2xlIGRlYnVnIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gQ29uc29sZSBkZWJ1ZyBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IGNvbnNvbGVEZWJ1Z0NvbXBvbmVudCh2YWx1ZTogQ29uc29sZURlYnVnQ29tcG9uZW50KSB7XG4gICAgdGhpcy5zZXRDb21wb25lbnQoJ2NvbnNvbGVEZWJ1Z0NvbXBvbmVudCcsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHBsdWdpbiBjb250ZXh0IGNvbXBvbmVudCAocGx1Z2luIElELCBkZWJ1ZyBjb250cm9sbGVyLCBsaWJyYXJ5IHN0eWxlcykuXG4gICAqXG4gICAqIEByZXR1cm5zIHBsdWdpbiBjb250ZXh0IGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgcGx1Z2luQ29udGV4dENvbXBvbmVudCgpOiBQbHVnaW5Db250ZXh0Q29tcG9uZW50IHtcbiAgICByZXR1cm4gZW5zdXJlTm9uTnVsbGFibGUodGhpcy5jb21wb25lbnRzLnBsdWdpbkNvbnRleHRDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgcGx1Z2luIGNvbnRleHQgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBQbHVnaW4gY29udGV4dCBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0IHBsdWdpbkNvbnRleHRDb21wb25lbnQodmFsdWU6IFBsdWdpbkNvbnRleHRDb21wb25lbnQpIHtcbiAgICB0aGlzLnNldENvbXBvbmVudCgncGx1Z2luQ29udGV4dENvbXBvbmVudCcsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBnYXRlIGhvbGRpbmcgdGhlIHBsdWdpbidzIGZlYXR1cmUgc3VyZmFjZSB1cCBvciBkb3duLlxuICAgKlxuICAgKiBSZWFjaCBmb3IgaXQgZnJvbSBhIHNldHRpbmdzIHRhYiB0byByZW5kZXIgdGhlIG92ZXJsYXAgYmFubmVyIGZvciBhXG4gICAqIHtAbGluayBjb21wb25lbnRzL3BsdWdpbi1nYXRlLWNvbXBvbmVudCFQbHVnaW5Db25mbGljdFNldmVyaXR5Lldhcm59IGNvbmZsaWN0IOKAlCB0aGUgb25lXG4gICAqIGJhbm5lciB0aGUgbGlicmFyeSBjYW5ub3QgcGxhY2UgaXRzZWxmLCBiZWNhdXNlIGEgcnVubmluZyBwbHVnaW4gYnVpbGRzIGl0cyBvd24gc2V0dGluZ3MgdGFiLlxuICAgKlxuICAgKiBSZWFkYWJsZSB0aHJvdWdob3V0IHtAbGluayBvbmxvYWRJbXBsfSwgaW5jbHVkaW5nIGl0cyBzeW5jaHJvbm91cyBwcmVmaXgsIHdoaWNoIGlzIHdoZXJlIGEgc2V0dGluZ3NcbiAgICogdGFiIGlzIGJ1aWx0LiBUaGF0IGlzIGRlbGliZXJhdGUgcmF0aGVyIHRoYW4gaW5jaWRlbnRhbDogYWRkaW5nIHRoZSBnYXRlIGlzIHdoYXQgcnVuc1xuICAgKiB7QGxpbmsgb25sb2FkSW1wbH0sIHNvIHtAbGluayBvbmxvYWR9IGFzc2lnbnMgdGhpcyBmaWVsZCBiZWZvcmUgYWRkaW5nIGl0LlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgcGx1Z2luIGdhdGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldCBwbHVnaW5HYXRlQ29tcG9uZW50KCk6IFBsdWdpbkdhdGVDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLmNvbXBvbmVudHMucGx1Z2luR2F0ZUNvbXBvbmVudCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGx1Z2luIGdhdGUgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgcGx1Z2luIGdhdGUgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCBwbHVnaW5HYXRlQ29tcG9uZW50KHZhbHVlOiBQbHVnaW5HYXRlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5zZXRDb21wb25lbnQoJ3BsdWdpbkdhdGVDb21wb25lbnQnLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBwbHVnaW4gbm90aWNlIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgcGx1Z2luIG5vdGljZSBjb21wb25lbnQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHBsdWdpbk5vdGljZUNvbXBvbmVudCgpOiBQbHVnaW5Ob3RpY2VDb21wb25lbnQge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLmNvbXBvbmVudHMucGx1Z2luTm90aWNlQ29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHBsdWdpbiBub3RpY2UgY29tcG9uZW50LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBQbHVnaW4gbm90aWNlIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXQgcGx1Z2luTm90aWNlQ29tcG9uZW50KHZhbHVlOiBQbHVnaW5Ob3RpY2VDb21wb25lbnQpIHtcbiAgICB0aGlzLnNldENvbXBvbmVudCgncGx1Z2luTm90aWNlQ29tcG9uZW50JywgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgcGx1Z2luIHNldHRpbmdzIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHJldHVybnMgcGx1Z2luIHNldHRpbmdzIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgcGx1Z2luU2V0dGluZ3NDb21wb25lbnQoKTogUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlPG9iamVjdD4ge1xuICAgIHJldHVybiBlbnN1cmVOb25OdWxsYWJsZSh0aGlzLmNvbXBvbmVudHMucGx1Z2luU2V0dGluZ3NDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgcGx1Z2luIHNldHRpbmdzIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gUGx1Z2luIHNldHRpbmdzIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXQgcGx1Z2luU2V0dGluZ3NDb21wb25lbnQodmFsdWU6IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZTxvYmplY3Q+KSB7XG4gICAgdGhpcy5zZXRDb21wb25lbnQoJ3BsdWdpblNldHRpbmdzQ29tcG9uZW50JywgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGVkaXRvciBsb2NrIGNvbXBvbmVudCwgdXNlZCB0byBsb2NrIG5vdGVzIHJlYWQtb25seSBkdXJpbmcgbG9uZyBvcGVyYXRpb25zLiBPd25lZCBieVxuICAgKiB0aGUgcGx1Z2luLCBzbyBpdHMgbG9ja3MgYXJlIHJlbGVhc2VkIGF1dG9tYXRpY2FsbHkgd2hlbiB0aGUgcGx1Z2luIHVubG9hZHMuXG4gICAqXG4gICAqIEByZXR1cm5zIEVkaXRvciBsb2NrIGNvbXBvbmVudC5cbiAgICovXG4gIHByb3RlY3RlZCBnZXQgcmVzb3VyY2VMb2NrQ29tcG9uZW50KCk6IFJlc291cmNlTG9ja0NvbXBvbmVudCB7XG4gICAgcmV0dXJuIGVuc3VyZU5vbk51bGxhYmxlKHRoaXMuY29tcG9uZW50cy5yZXNvdXJjZUxvY2tDb21wb25lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGVkaXRvciBsb2NrIGNvbXBvbmVudC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gRWRpdG9yIGxvY2sgY29tcG9uZW50LlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCByZXNvdXJjZUxvY2tDb21wb25lbnQodmFsdWU6IFJlc291cmNlTG9ja0NvbXBvbmVudCkge1xuICAgIHRoaXMuc2V0Q29tcG9uZW50KCdyZXNvdXJjZUxvY2tDb21wb25lbnQnLCB2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudHM6IFBsdWdpbkJhc2VDb21wb25lbnRzID0ge307XG5cbiAgLy8gRXZlcnl0aGluZyB0aGUgU1VCQ0xBU1Mgb3duczogd2hhdCBgb25sb2FkSW1wbGAgYWRkcywgYW5kIHdoYXQgaXQgYWRkcyBsYXRlci5cbiAgLy9cbiAgLy8gQSBzZWNvbmQgd3JhcHBlciByYXRoZXIgdGhhbiBvbmUsIGJlY2F1c2UgdGhlIHR3byB0aWVycyBoYXZlIG9wcG9zaXRlIGxpZmV0aW1lcy4gVGhlIHVuaXZlcnNhbFxuICAvLyBjb21wb25lbnRzIGhhdmUgdG8gT1VUTElWRSBhIGxvc3QgZGVwZW5kZW5jeSDigJQgdGhleSBhcmUgd2hhdCBzaG93cyB0aGUgbm90aWNlIG5hbWluZyB0aGUgcGx1Z2luIHRoYXRcbiAgLy8gd2VudCBhd2F5IGFuZCByZW5kZXJzIHRoZSBidXR0b24gdGhhdCBicmluZ3MgaXQgYmFjayDigJQgd2hpbGUgdGhlIHN1YmNsYXNzJ3Mgc3VyZmFjZSBpcyBleGFjdGx5IHdoYXRcbiAgLy8gbXVzdCBzdG9wIHJ1bm5pbmcuIFVubG9hZGluZyBvbmUgd3JhcHBlciBob2xkaW5nIGJvdGggd291bGQgc2lsZW5jZSB0aGUgcGx1Z2luIGF0IHRoZSBtb21lbnQgaXQgbW9zdFxuICAvLyBuZWVkcyB0byBzcGVhay5cbiAgLy9cbiAgLy8gQWx3YXlzIHByZXNlbnQsIG5ldmVyIG51bGwsIGFuZCBSRVBMQUNFRCByYXRoZXIgdGhhbiBlbXB0aWVkIHdoZW4gdGhlIHN1cmZhY2UgaXMgdG9ybiBkb3duLiBUaGF0IGtlZXBzXG4gIC8vIGBhZGRDaGlsZGAgY2FsbGFibGUgYXQgZXZlcnkgcG9pbnQgaW4gdGhlIHBsdWdpbidzIGxpZmUsIGV4YWN0bHkgYXMgaXQgd2FzIGJlZm9yZSB0aGUgdGllcnMgZXhpc3RlZDpcbiAgLy8gQSBjaGlsZCBhZGRlZCBiZWZvcmUgdGhlIGdhdGUgb3BlbnMgaXMgcXVldWVkIGFuZCBsb2FkZWQgd2hlbiBpdCBkb2VzLCB3aGljaCBpcyB3aGF0IGBDb21wb25lbnRFeGBcbiAgLy8gYWxyZWFkeSBkb2VzIGZvciBhbnkgY2hpbGQgYWRkZWQgdG8gYSBub3QteWV0LWxvYWRlZCBjb21wb25lbnQuXG4gIHByaXZhdGUgZ2F0ZWRXcmFwcGVyQ29tcG9uZW50ID0gbmV3IENvbXBvbmVudEV4KCk7XG5cbiAgLy8gVGhlIHBheWxvYWQgYnJvYWRjYXN0IHdoZW4gdGhpcyBwbHVnaW4gZmluaXNoZWQgbG9hZGluZywga2VwdCBzbyB0aGUgbWF0Y2hpbmcgdW5sb2FkZWQgYnJvYWRjYXN0XG4gIC8vIGRlc2NyaWJlcyB0aGUgc2FtZSBwbHVnaW4gd2l0aG91dCByZS1kZXJpdmluZyBpdCBmcm9tIGEgc3VyZmFjZSB0aGF0IGhhcyBzaW5jZSBiZWVuIHRvcm4gZG93bi4gTnVsbFxuICAvLyB3aGVuZXZlciBubyBsb2FkZWQgYnJvYWRjYXN0IGlzIG91dHN0YW5kaW5nLCB3aGljaCBpcyB3aGF0IGtlZXBzIHRoZSB0d28gZXZlbnRzIHBhaXJlZC5cbiAgcHJpdmF0ZSBsaWZlY3ljbGVFdmVudFBheWxvYWQ6IG51bGwgfCBQbHVnaW5MaWZlY3ljbGVFdmVudFBheWxvYWQgPSBudWxsO1xuXG4gIC8vIFRoZSBsaWJyYXJ5J3Mgb3duIGNvbXBvbmVudHMsIHdoaWNoIG91dGxpdmUgYW55IGRlcGVuZGVuY3kuXG4gIHByaXZhdGUgcmVhZG9ubHkgdW5pdmVyc2FsV3JhcHBlckNvbXBvbmVudCA9IG5ldyBDb21wb25lbnRFeCgpO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgY2hpbGQgY29tcG9uZW50LlxuICAgKlxuICAgKiBUaGUgY2hpbGQgaXMgYWRkZWQgdG8gdGhlIGludGVybmFsIHdyYXBwZXIgaG9sZGluZyB0aGUgc3ViY2xhc3MncyBvd24gc3VyZmFjZSwgd2hpY2gge0BsaW5rIG9ubG9hZH1cbiAgICogY3JlYXRlcyBhbmQgbG9hZHMgYmVmb3JlIGNhbGxpbmcge0BsaW5rIG9ubG9hZEltcGx9LiBTbyBhIGNoaWxkIGFkZGVkIGR1cmluZyB7QGxpbmsgb25sb2FkSW1wbH0gaXNcbiAgICogbG9hZGVkIGltbWVkaWF0ZWx5LCBjaGlsZHJlbi1maXJzdCwgYW5kIGlzIHVzYWJsZSBieSB0aGUgdGltZSB0aGlzIG1ldGhvZCByZXR1cm5zLlxuICAgKlxuICAgKiBUaGF0IHdyYXBwZXIgaXMgdG9ybiBkb3duIGFuZCByZWJ1aWx0IHdoZW5ldmVyIHRoZSBnYXRlIGNsb3NlcyBhbmQgb3BlbnMgYWdhaW4g4oCUIGEgZGVwZW5kZW5jeSBkZWNsYXJlZFxuICAgKiBieSB7QGxpbmsgZ2V0UGx1Z2luRGVwZW5kZW5jaWVzfSBnb2luZyBhd2F5IGFuZCBjb21pbmcgYmFjaywgb3IgYSBjb25mbGljdCBkZWNsYXJlZCBieVxuICAgKiB7QGxpbmsgZ2V0UGx1Z2luQ29uZmxpY3RzfSBhcHBlYXJpbmcgYW5kIGJlaW5nIHJlc29sdmVkIOKAlCBzbyBhIGNoaWxkIGFkZGVkIGhlcmUgbGl2ZXMgZXhhY3RseSBhcyBsb25nXG4gICAqIGFzIHRoZSBwbHVnaW4ncyBmZWF0dXJlIHN1cmZhY2UgZG9lcy4gQWRkaW5nIG9uZSB3aGlsZSB0aGUgc3VyZmFjZSBpcyBkb3duIGlzIHN0aWxsIGxlZ2l0aW1hdGUg4oCUIGl0IGlzXG4gICAqIHF1ZXVlZCBhbmQgbG9hZGVkIHdoZW4gdGhlIHN1cmZhY2UgbmV4dCBjb21lcyB1cCwgdGhlIHdheSB7QGxpbmsgQ29tcG9uZW50RXguYWRkQ2hpbGR9IGFscmVhZHkgcXVldWVzXG4gICAqIGEgY2hpbGQgYWRkZWQgdG8gYSBub3QteWV0LWxvYWRlZCBjb21wb25lbnQuXG4gICAqXG4gICAqIFRoaXMgaXMgdGhlIFNVQkNMQVNTJ3MgZG9vciwgYW5kIHRoZSBvbmx5IG9uZSBpdCBoYXM6IHRoZSB1bml2ZXJzYWwgY29tcG9uZW50cyB7QGxpbmsgb25sb2FkfSByZWdpc3RlcnNcbiAgICogdGFrZSBhIHByaXZhdGUgcm91dGUgb250byBhIGRpZmZlcmVudCB3cmFwcGVyLiBTbyBhbnl0aGluZyBvYnNlcnZpbmcgdGhpcyBtZXRob2Qg4oCUIGEgdGVzdCBjb3VudGluZyBpdHNcbiAgICogY2FsbHMsIGEgcGF0Y2ggd3JhcHBpbmcgaXQg4oCUIHNlZXMgZXhhY3RseSB0aGUgY2hpbGRyZW4gdGhlIHN1YmNsYXNzIGFkZGVkLCBhbmQgbm9uZSBvZiB0aGUgbGlicmFyeSdzLlxuICAgKiBCZWZvcmUgdGhlIHR3byB0aWVycyBleGlzdGVkIG9uZSBkb29yIGNhcnJpZWQgYm90aCwgYW5kIGEgY29uc3VtZXIgY291bnRpbmcgdGhlIHRvdGFsIGlzIHRoZSBvbmUgdGhpbmdcbiAgICogdGhlIHNwbGl0IGNvdWxkIG5vdCBrZWVwIHdvcmtpbmcuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gVENvbXBvbmVudCAtIFRoZSB0eXBlIG9mIGNvbXBvbmVudCB0byBhZGQuXG4gICAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IGluc3RhbmNlIHRvIGFkZC5cbiAgICogQHJldHVybnMgVGhlIGFkZGVkIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhZGRDaGlsZDxUQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50Pihjb21wb25lbnQ6IFRDb21wb25lbnQpOiBUQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5nYXRlZFdyYXBwZXJDb21wb25lbnQuYWRkQ2hpbGQoY29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgZXh0ZXJuYWwgc2V0dGluZ3MgY2hhbmdlLlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyBpZiBuZWVkZWQuIE1ha2Ugc3VyZSB0byBjYWxsIGBhd2FpdCBzdXBlci5vbkV4dGVybmFsU2V0dGluZ3NDaGFuZ2UoKWAgZmlyc3QuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgb25FeHRlcm5hbFNldHRpbmdzQ2hhbmdlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLm9uRXh0ZXJuYWxTZXR0aW5nc0NoYW5nZT8uKCk7XG4gICAgYXdhaXQgdGhpcy50cmlnZ2VyQXN5bmMoJ2V4dGVybmFsU2V0dGluZ3NDaGFuZ2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIGlzIGxvYWRlZC5cbiAgICpcbiAgICogT3JjaGVzdHJhdGVzIGxvYWRpbmc6IHJlZ2lzdGVycyB0aGUgdW5pdmVyc2FsIGNvbXBvbmVudHMsIGxldHMgdGhlIHN1YmNsYXNzIHdpcmUgaXRzIG93blxuICAgKiBjb21wb25lbnRzIHZpYSB7QGxpbmsgb25sb2FkSW1wbH0sIHRoZW4gYXdhaXRzIHRoZSBhc3luYyB0YWlsIG9mIGV2ZXJ5IGxvYWQuXG4gICAqIEVhY2ggY29tcG9uZW50IGxvYWRzIGFzIGl0IGlzIGFkZGVkLCBjaGlsZHJlbi1maXJzdC5cbiAgICpcbiAgICogRG8gTk9UIG92ZXJyaWRlIHRoaXMgbWV0aG9kLiBPdmVycmlkZSB7QGxpbmsgb25sb2FkSW1wbH0gaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBhc3luYyBvbmxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFRoZSB3cmFwcGVyIGlzIGF0dGFjaGVkIGFuZCBsb2FkZWQgYmVmb3JlIGFueXRoaW5nIGlzIHdpcmVkIHVwLCBzbyBldmVyeSBgYWRkQ2hpbGRgIGJlbG93XG4gICAgICAvLyBsb2FkcyBpdHMgY2hpbGQgc3RyYWlnaHQgYXdheSByYXRoZXIgdGhhbiBxdWV1aW5nIGl0LlxuICAgICAgLy8gVGhhdCBpcyB3aGF0IGxldHMgYSBjb21tYW5kIGhhbmRsZXIgcmVnaXN0ZXIgaXRzIG1lbnUgZXZlbnRzIGZyb20gYG9uUmVnaXN0ZXJlZGAsIHdoaWNoXG4gICAgICAvLyBgcmVnaXN0ZXJDb21tYW5kSGFuZGxlcnNgIGF3YWl0cyBhbmQgd2hpY2ggYSByZWdpc3RyYXIgcmVmdXNlcyB3aGlsZSB1bmxvYWRlZC5cbiAgICAgIC8vIEF0dGFjaGluZyBpdCB1cCBmcm9udCBhbHNvIHJlZ2lzdGVycyB0aGUgd3JhcHBlciBmb3IgdGVhcmRvd24gYmVmb3JlIGFueXRoaW5nIGNhbiB0aHJvdy5cbiAgICAgIC8vIFRoZSBsb2FkIGlzIGV4cGxpY2l0IHJhdGhlciB0aGFuIGxlZnQgdG8gYGFkZENoaWxkYCwgd2hpY2ggbG9hZHMgdGhlIGNoaWxkIG9ubHkgd2hlbiB0aGVcbiAgICAgIC8vIHBsdWdpbiBpdHNlbGYgaXMgbG9hZGVkIOKAlCB0cnVlIHdoZW4gT2JzaWRpYW4gY2FsbHMgYGxvYWQoKWAsIGJ1dCBub3Qgd2hlbiBhIGNhbGxlciBpbnZva2VzXG4gICAgICAvLyBgb25sb2FkKClgIGRpcmVjdGx5LlxuICAgICAgc3VwZXIuYWRkQ2hpbGQodGhpcy51bml2ZXJzYWxXcmFwcGVyQ29tcG9uZW50KTtcbiAgICAgIHRoaXMudW5pdmVyc2FsV3JhcHBlckNvbXBvbmVudC5sb2FkKCk7XG5cbiAgICAgIGF3YWl0IGluaXRJMThOKHRoaXMuY3JlYXRlVHJhbnNsYXRpb25zTWFwKCkpO1xuICAgICAgdGhpcy5wbHVnaW5Db250ZXh0Q29tcG9uZW50ID0gdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChcbiAgICAgICAgbmV3IFBsdWdpbkNvbnRleHRDb21wb25lbnQoe1xuICAgICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgICAgcGx1Z2luSWQ6IHRoaXMubWFuaWZlc3QuaWRcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnBsdWdpbk5vdGljZUNvbXBvbmVudCA9IHRoaXMuYWRkVW5pdmVyc2FsQ2hpbGQoXG4gICAgICAgIG5ldyBQbHVnaW5Ob3RpY2VDb21wb25lbnQoe1xuICAgICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgICAgcGx1Z2luTmFtZTogdGhpcy5tYW5pZmVzdC5uYW1lXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5hc3luY0Vycm9ySGFuZGxlckNvbXBvbmVudCA9IHRoaXMuYWRkVW5pdmVyc2FsQ2hpbGQobmV3IEFzeW5jRXJyb3JIYW5kbGVyQ29tcG9uZW50KHRoaXMucGx1Z2luTm90aWNlQ29tcG9uZW50KSk7XG4gICAgICB0aGlzLmFib3J0U2lnbmFsQ29tcG9uZW50ID0gdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChuZXcgQWJvcnRTaWduYWxDb21wb25lbnQodGhpcy5tYW5pZmVzdC5pZCkpO1xuICAgICAgdGhpcy5jb25zb2xlRGVidWdDb21wb25lbnQgPSB0aGlzLmFkZFVuaXZlcnNhbENoaWxkKG5ldyBDb25zb2xlRGVidWdDb21wb25lbnQodGhpcy5tYW5pZmVzdC5pZCkpO1xuICAgICAgdGhpcy5yZXNvdXJjZUxvY2tDb21wb25lbnQgPSB0aGlzLmFkZFVuaXZlcnNhbENoaWxkKG5ldyBSZXNvdXJjZUxvY2tDb21wb25lbnQodGhpcy5hcHAsIHRoaXMubWFuaWZlc3QuaWQpKTtcbiAgICAgIC8vIGBOb3RlYm9vayBOYXZpZ2F0b3JgIGRyYXdzIGl0cyBvd24gZmlsZSB0cmVlIGFuZCBuZXZlciByYWlzZXMgT2JzaWRpYW4ncyBgZmlsZS1tZW51YCAvXG4gICAgICAvLyBgZmlsZXMtbWVudWAgZXZlbnRzLCBzbyBldmVyeSBwbHVnaW4ncyBjb250ZXh0LW1lbnUgaXRlbXMgd291bGQgdmFuaXNoIGZvciBhbnlvbmUgYnJvd3NpbmdcbiAgICAgIC8vIHRocm91Z2ggaXQuIFdpcmVkIGhlcmUgcmF0aGVyIHRoYW4gcGVyLXBsdWdpbjogdGhlIGJyaWRnZSBzdGF5cyBkb3JtYW50IHdoZW4gTm90ZWJvb2tcbiAgICAgIC8vIE5hdmlnYXRvciBpcyBub3QgaW5zdGFsbGVkLCBhbmQgYSBwbHVnaW4gd2l0aCBubyBmaWxlL2ZvbGRlciBoYW5kbGVycyBjb250cmlidXRlcyBub3RoaW5nLlxuICAgICAgY29uc3Qgbm90ZWJvb2tOYXZpZ2F0b3JNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnQgPSB0aGlzLmFkZFVuaXZlcnNhbENoaWxkKFxuICAgICAgICBuZXcgTm90ZWJvb2tOYXZpZ2F0b3JNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnQoe1xuICAgICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgICAgcGx1Z2luTmFtZTogdGhpcy5tYW5pZmVzdC5uYW1lLFxuICAgICAgICAgIHN1Ym1lbnVJY29uOiB0aGlzLmdldE5vdGVib29rTmF2aWdhdG9yTWVudVN1Ym1lbnVJY29uKClcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLmNvbW1hbmRIYW5kbGVyQ29tcG9uZW50ID0gdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChcbiAgICAgICAgbmV3IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50KHtcbiAgICAgICAgICBhY3RpdmVGaWxlUHJvdmlkZXI6IG5ldyBBcHBBY3RpdmVGaWxlUHJvdmlkZXIodGhpcy5hcHApLFxuICAgICAgICAgIGFkZGl0aW9uYWxNZW51RXZlbnRSZWdpc3RyYXJzOiBbbm90ZWJvb2tOYXZpZ2F0b3JNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnRdLFxuICAgICAgICAgIC8vIFRoZSBjb21wb25lbnQgaXMgdW5pdmVyc2FsOyB0aGUgY29tbWFuZHMgcmVnaXN0ZXJlZCBUSFJPVUdIIGl0IGFyZSBub3QuIEEgc3ViY2xhc3MgcmVnaXN0ZXJzXG4gICAgICAgICAgLy8gaXRzIG93biBmcm9tIGBvbmxvYWRJbXBsYCwgY2xvc2luZyBvdmVyIGNvbGxhYm9yYXRvcnMgdGhhdCBiZWxvbmcgdG8gdGhlIGZlYXR1cmUgc3VyZmFjZSDigJQgc29cbiAgICAgICAgICAvLyB0aG9zZSBjb21tYW5kcyBtdXN0IGdvIGRvd24gd2l0aCB0aGUgc3VyZmFjZSB3aGVuIHRoZSBnYXRlIGNsb3Nlcywgb3IgdGhleSBzaXQgaW4gdGhlIHBhbGV0dGVcbiAgICAgICAgICAvLyBjYWxsaW5nIGludG8gdG9ybi1kb3duIG9iamVjdHMsIGFuZCBhcmUgcmVnaXN0ZXJlZCBhIHNlY29uZCB0aW1lIHdoZW4gdGhlIGdhdGUgcmVvcGVucyBhbmRcbiAgICAgICAgICAvLyBgb25sb2FkSW1wbGAgcnVucyBhZ2Fpbi5cbiAgICAgICAgICAvLyBSZXNvbHZlZCBvbiBldmVyeSBjYWxsIHJhdGhlciB0aGFuIGNhcHR1cmVkIGhlcmUsIGJlY2F1c2UgYHVubG9hZEZlYXR1cmVTdXJmYWNlYCBSRVBMQUNFUyB0aGVcbiAgICAgICAgICAvLyB3cmFwcGVyIGluc3RlYWQgb2YgZW1wdHlpbmcgaXQ6IGVhY2ggY3ljbGUncyBjb21tYW5kcyBiZWxvbmcgdG8gdGhhdCBjeWNsZSdzIHdyYXBwZXIuXG4gICAgICAgICAgY29tbWFuZExpZmV0aW1lT3duZXJQcm92aWRlcjogKCk6IENvbXBvbmVudEV4ID0+IHRoaXMuZ2F0ZWRXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICAgIGNvbW1hbmRSZWdpc3RyYXI6IG5ldyBQbHVnaW5Db21tYW5kUmVnaXN0cmFyKHRoaXMpLFxuICAgICAgICAgIG1lbnVFdmVudFJlZ2lzdHJhcjogdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChuZXcgTWVudUV2ZW50UmVnaXN0cmFyQ29tcG9uZW50KHRoaXMuYXBwKSksXG4gICAgICAgICAgcGx1Z2luTmFtZTogdGhpcy5tYW5pZmVzdC5uYW1lXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgLy8gQWx3YXlzIGF2YWlsYWJsZTsgdGhlIGNvbW1hbmQncyBvd24gYGNhbkV4ZWN1dGVgIGhpZGVzIGl0IHVubGVzcyB0aGUgYWN0aXZlIG5vdGUgaXMgbG9ja2VkLlxuICAgICAgLy8gVGhlIG9uZSBjb21tYW5kIHRoYXQgbmFtZXMgaXRzIG93bmVyIGV4cGxpY2l0bHksIG9wdGluZyBPVVQgb2YgdGhlIHN1cmZhY2Utc2NvcGVkIGRlZmF1bHQgYWJvdmU6XG4gICAgICAvLyBJdCBpcyB0aGUgcmVzY3VlIGZvciBhIG5vdGUgbGVmdCBsb2NrZWQsIGl0IGNsb3NlcyBvdmVyIG5vdGhpbmcgYnV0IHRoZSB1bml2ZXJzYWwgcmVzb3VyY2UtbG9ja1xuICAgICAgLy8gY29tcG9uZW50LCBhbmQgYSBibG9ja2VkIHBsdWdpbiBpcyBleGFjdGx5IHdoZW4gYSB1c2VyIG1heSBuZWVkIGl0LlxuICAgICAgYXdhaXQgdGhpcy5jb21tYW5kSGFuZGxlckNvbXBvbmVudC5yZWdpc3RlckNvbW1hbmRIYW5kbGVycygoKSA9PiBbXG4gICAgICAgIG5ldyBVbmxvY2tBY3RpdmVOb3RlQ29tbWFuZEhhbmRsZXIoe1xuICAgICAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICAgICAgcmVzb3VyY2VMb2NrQ29tcG9uZW50OiB0aGlzLnJlc291cmNlTG9ja0NvbXBvbmVudFxuICAgICAgICB9KVxuICAgICAgXSwgeyBsaWZldGltZU93bmVyOiB0aGlzLmNvbW1hbmRIYW5kbGVyQ29tcG9uZW50IH0pO1xuXG4gICAgICB0aGlzLnBsdWdpblNldHRpbmdzQ29tcG9uZW50ID0gdGhpcy5hZGRVbml2ZXJzYWxDaGlsZChcbiAgICAgICAgbmV3IFBsdWdpblNldHRpbmdzQ29tcG9uZW50QmFzZTxvYmplY3Q+KHtcbiAgICAgICAgICBkYXRhSGFuZGxlcjogbmV3IFBsdWdpbkRhdGFIYW5kbGVyKHRoaXMpLFxuICAgICAgICAgIHBsdWdpbkV2ZW50U291cmNlOiBuZXcgUGx1Z2luRXZlbnRTb3VyY2VJbXBsKHRoaXMpLFxuICAgICAgICAgIHBsdWdpblNldHRpbmdzQ2xhc3M6IE9iamVjdFxuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgLy8gVGhlIGdhdGUuIEl0IGxvYWRzIHRoZSBmZWF0dXJlIHN1cmZhY2UgaXRzZWxmIG9uY2UgZXZlcnkgZGVjbGFyZWQgZGVwZW5kZW5jeSBpcyBzYXRpc2ZpZWQgYW5kIG5vXG4gICAgICAvLyBkZWNsYXJlZCBjb25mbGljdCBob2xkcyDigJQgd2hpY2ggZm9yIGEgcGx1Z2luIGRlY2xhcmluZyBuZWl0aGVyIGlzIGltbWVkaWF0ZWx5LCBzeW5jaHJvbm91c2x5LFxuICAgICAgLy8gYmVmb3JlIHRoaXMgbGluZSByZXR1cm5zIOKAlCBhbmQgdW5sb2FkcyBpdCBhZ2FpbiBpZiBhIGRlcGVuZGVuY3kgaXMgbGF0ZXIgZGlzYWJsZWQgb3IgdW5pbnN0YWxsZWQsXG4gICAgICAvLyBvciBhIGNvbmZsaWN0aW5nIHBsdWdpbiBpcyBlbmFibGVkLiBBIHBsdWdpbiB0aGF0IGlzIGJsb2NrZWQgdGhlcmVmb3JlIHJlYWNoZXMgYGxvYWRXaXRoUHJvbWlzZXNgXG4gICAgICAvLyBiZWxvdyBoYXZpbmcgcmVnaXN0ZXJlZCBub3RoaW5nIG9mIGl0cyBvd24sIHdpdGggb25seSB0aGUgdW5pdmVyc2FsIGNvbXBvbmVudHMgYWJvdmUgcnVubmluZyB0b1xuICAgICAgLy8gZXhwbGFpbiB3aHkgYW5kIHRvIG9mZmVyIHRoZSByZXBhaXIuXG4gICAgICAvLyBBc3NpZ25lZCBCRUZPUkUgdGhlIGFkZCwgdW5saWtlIGV2ZXJ5IHVuaXZlcnNhbCBjb21wb25lbnQgYWJvdmUsIGFuZCB0aGF0IG9yZGVyIGlzIHRoZSB3aG9sZVxuICAgICAgLy8gcG9pbnQuIEFkZGluZyB0aGlzIG9uZSBpcyB3aGF0IHJ1bnMgYG9ubG9hZEltcGxgLCBwZXIgdGhlIHBhcmFncmFwaCBhYm92ZSwgc28gdGhlIGFzc2lnbm1lbnRcbiAgICAgIC8vIHN0YXRlbWVudCBoYXMgbm90IHJldHVybmVkIHlldCB3aGlsZSB0aGUgc3ViY2xhc3MgaXMgcnVubmluZyDigJQgYW5kIGEgc2V0dGluZ3MgdGFiIGJ1aWx0IHRoZXJlXG4gICAgICAvLyByZWFkcyBgdGhpcy5wbHVnaW5HYXRlQ29tcG9uZW50YCB0byByZW5kZXIgdGhlIGBXYXJuYCBiYW5uZXIuIEFzc2lnbmluZyBhZnRlciB0aGUgYWRkIHdvdWxkXG4gICAgICAvLyBtYWtlIHRoYXQgcmVhZCB0aHJvdyBgVmFsdWUgaXMgdW5kZWZpbmVkYCBvdXQgb2YgdGhlIGdldHRlciwgd2hpY2ggaXMgYW4gb3BhcXVlIHdheSB0byBzYXlcbiAgICAgIC8vIFwidG9vIGVhcmx5XCIuIE5vdGhpbmcgYWJvdXQgY2hpbGQtYWRkIG9yZGVyIG1vdmVzOiB0aGUgc2VxdWVuY2Ugb2YgYGFkZFVuaXZlcnNhbENoaWxkYCBjYWxscyBpc1xuICAgICAgLy8gdW5jaGFuZ2VkLCBhbmQgYHNldENvbXBvbmVudGAgaXMgYSBwbGFpbiBzdG9yZS5cbiAgICAgIGNvbnN0IHBsdWdpbkdhdGVDb21wb25lbnQgPSBuZXcgUGx1Z2luR2F0ZUNvbXBvbmVudCh7XG4gICAgICAgIGNvbmZsaWN0czogdGhpcy5nZXRQbHVnaW5Db25mbGljdHMoKSxcbiAgICAgICAgZGVwZW5kZW5jaWVzOiB0aGlzLmdldFBsdWdpbkRlcGVuZGVuY2llcygpLFxuICAgICAgICBsb2FkRmVhdHVyZVN1cmZhY2U6ICgpOiBQcm9taXNlPHZvaWQ+ID0+IHRoaXMubG9hZEZlYXR1cmVTdXJmYWNlKCksXG4gICAgICAgIHBsdWdpbjogdGhpcyxcbiAgICAgICAgcGx1Z2luTm90aWNlQ29tcG9uZW50OiB0aGlzLnBsdWdpbk5vdGljZUNvbXBvbmVudCxcbiAgICAgICAgdW5sb2FkRmVhdHVyZVN1cmZhY2U6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICB0aGlzLnVubG9hZEZlYXR1cmVTdXJmYWNlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5wbHVnaW5HYXRlQ29tcG9uZW50ID0gcGx1Z2luR2F0ZUNvbXBvbmVudDtcbiAgICAgIHRoaXMuYWRkVW5pdmVyc2FsQ2hpbGQocGx1Z2luR2F0ZUNvbXBvbmVudCk7XG5cbiAgICAgIC8vIEV2ZXJ5IGNoaWxkIGhhcyBhbHJlYWR5IGxvYWRlZCBhcyBpdCB3YXMgYWRkZWQ7IHRoaXMgYXdhaXRzIHRoZWlyIGFjY3VtdWxhdGVkIGFzeW5jIHRhaWxzIGFuZFxuICAgICAgLy8gcmVwb3J0cyBhbnkgZmFpbHVyZSBhcyBhIHNpbmdsZSBgQWdncmVnYXRlRXJyb3JgLlxuICAgICAgYXdhaXQgdGhpcy51bml2ZXJzYWxXcmFwcGVyQ29tcG9uZW50LmxvYWRXaXRoUHJvbWlzZXMoKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcHJpbnRFcnJvcihuZXcgRXJyb3IoYEVycm9yIGxvYWRpbmcgcGx1Z2luICR7dGhpcy5tYW5pZmVzdC5uYW1lfSAoJHt0aGlzLm1hbmlmZXN0LmlkfSlgLCB7IGNhdXNlOiBlcnJvciB9KSk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBpcyB1bmxvYWRlZC5cbiAgICpcbiAgICogQW5ub3VuY2VzIHRoZSBkZXBhcnR1cmUgb24gYGFwcC53b3Jrc3BhY2VgIHNvIGFueXRoaW5nIGRlcGVuZGluZyBvbiB0aGlzIHBsdWdpbiBsZWFybnMgb2YgaXQgYXQgdGhlXG4gICAqIG1vbWVudCBpdCBoYXBwZW5zLCByYXRoZXIgdGhhbiBkaXNjb3ZlcmluZyBpdCBsYXRlciB0aHJvdWdoIGJlaGF2aW9yIHRoYXQgcXVpZXRseSBzdG9wcGVkLlxuICAgKlxuICAgKiBEbyBOT1Qgb3ZlcnJpZGUgdGhpcyBtZXRob2Q7IHB1dCB0ZWFyZG93biBvbiBhIGNvbXBvbmVudCBpbnN0ZWFkLCB3aGljaCB1bmxvYWRzIHdpdGggdGhlIHBsdWdpbi5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBvbnVubG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLmJyb2FkY2FzdFVubG9hZGVkKCk7XG4gICAgc3VwZXIub251bmxvYWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgY2hpbGQgY29tcG9uZW50LlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFRDb21wb25lbnQgLSBUaGUgdHlwZSBvZiBjb21wb25lbnQgdG8gcmVtb3ZlLlxuICAgKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCBpbnN0YW5jZSB0byByZW1vdmUuXG4gICAqIEByZXR1cm5zIFRoZSByZW1vdmVkIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSByZW1vdmVDaGlsZDxUQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50Pihjb21wb25lbnQ6IFRDb21wb25lbnQpOiBUQ29tcG9uZW50IHtcbiAgICAvLyBSb3V0ZWQgYnkgb3duZXJzaGlwIHJhdGhlciB0aGFuIGJ5IHdoaWNoIHRpZXIgYGFkZENoaWxkYCB3b3VsZCBoYXZlIGNob3NlbiwgYmVjYXVzZSB0aGUgdHdvIGRvIG5vdFxuICAgIC8vIGFsd2F5cyBhZ3JlZTogYSB1bml2ZXJzYWwgY29tcG9uZW50IGlzIHBhcmVudGVkIGRpcmVjdGx5IG9uIHRoZSB1bml2ZXJzYWwgd3JhcHBlciwgeWV0IGEgc3ViY2xhc3NcbiAgICAvLyByZXBsYWNpbmcgb25lIGdvZXMgdGhyb3VnaCB0aGUgc2FtZSBwdWJsaWMgYHJlbW92ZUNoaWxkYCBhcyBpdCB3b3VsZCBmb3IgaXRzIG93biBjaGlsZHJlbi5cbiAgICByZXR1cm4gdGhpcy5nYXRlZFdyYXBwZXJDb21wb25lbnQuaGFzQ2hpbGQoY29tcG9uZW50KSA/IHRoaXMuZ2F0ZWRXcmFwcGVyQ29tcG9uZW50LnJlbW92ZUNoaWxkKGNvbXBvbmVudCkgOiB0aGlzLnVuaXZlcnNhbFdyYXBwZXJDb21wb25lbnQucmVtb3ZlQ2hpbGQoY29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUgdHJhbnNsYXRpb25zIG1hcCB1c2VkIHRvIGluaXRpYWxpemUgaTE4biBkdXJpbmcge0BsaW5rIG9ubG9hZH0uXG4gICAqXG4gICAqIE92ZXJyaWRlIGluIHN1YmNsYXNzIHRvIHN1cHBseSBwbHVnaW4tc3BlY2lmaWMgdHJhbnNsYXRpb25zLiBUaGUgZGVmYXVsdCByZXR1cm5zIHRoZSBidWlsdC1pblxuICAgKiBgQG1uYW91bW92L29ic2lkaWFuLWxpYmAgdHJhbnNsYXRpb25zLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgdHJhbnNsYXRpb25zIG1hcC5cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVUcmFuc2xhdGlvbnNNYXAoKTogVHJhbnNsYXRpb25zTWFwIHtcbiAgICByZXR1cm4gZGVmYXVsdFRyYW5zbGF0aW9uc01hcDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUgaWNvbiBzaG93biBvbiB0aGUgcGx1Z2luJ3MgcGFyZW50IGVudHJ5IGluIGBOb3RlYm9vayBOYXZpZ2F0b3JgJ3MgY29udGV4dCBtZW51cy5cbiAgICpcbiAgICogT3ZlcnJpZGUgaW4gc3ViY2xhc3MgdG8gYnJhbmQgdGhhdCBlbnRyeTsgdGhlIGRlZmF1bHQgbGVhdmVzIGl0IHdpdGhvdXQgYW4gaWNvbi4gVGhlIGVudHJ5IGlzXG4gICAqIHRpdGxlZCB3aXRoIHRoZSBwbHVnaW4gbmFtZSBhbmQgaXMgYWRkZWQgYXV0b21hdGljYWxseSDigJQgc2VlXG4gICAqIHtAbGluayBOb3RlYm9va05hdmlnYXRvck1lbnVFdmVudFJlZ2lzdHJhckNvbXBvbmVudH0uXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBpY29uLCBvciBgJydgIGZvciBubyBpY29uLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldE5vdGVib29rTmF2aWdhdG9yTWVudVN1Ym1lbnVJY29uKCk6IEljb25OYW1lIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgdGhlIEFQSXMgdGhpcyBwbHVnaW4gZXhwb3NlcyB0byBvdGhlciBwbHVnaW5zLlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyB0byBwdWJsaXNoIG9uZS4gVGhlIGRlZmF1bHQgcHVibGlzaGVzIG5vbmUuIENhbGxlZCBhZnRlciB7QGxpbmsgb25sb2FkSW1wbH0sIHNvIGFcbiAgICogZGVjbGFyYXRpb24gbWF5IHJlZmVyZW5jZSBhbnl0aGluZyBpdCBjcmVhdGVkOyB0aGUgcmV0dXJuZWQgZGVjbGFyYXRpb25zIGFyZSBwdWJsaXNoZWQgdGhyb3VnaFxuICAgKiBgcHVibGlzaFBsdWdpbkFwaWAgYW5kIHJldm9rZWQgd2hlbiB0aGUgcGx1Z2luJ3MgZmVhdHVyZSBzdXJmYWNlIHVubG9hZHMuXG4gICAqXG4gICAqIFJldHVybmluZyBhIExJU1QgcmF0aGVyIHRoYW4gYSBzaW5nbGUgQVBJIGlzIGRlbGliZXJhdGU6IHRoZSByZWdpc3RyeSBzdXBwb3J0cyBzZXZlcmFsIGNvbnRyYWN0XG4gICAqIHZlcnNpb25zIHB1Ymxpc2hlZCBzaWRlIGJ5IHNpZGUsIHdoaWNoIGlzIGhvdyBhIHByb3ZpZGVyIHNoaXBzIGEgYnJlYWtpbmcgYDIuMC4wYCB3aXRob3V0IHN0cmFuZGluZ1xuICAgKiBjb25zdW1lcnMgc3RpbGwgcGlubmVkIHRvIGBeMWAuXG4gICAqXG4gICAqIEV2ZXJ5IGRlY2xhcmF0aW9uIGhlcmUgaXMgcHVibGlzaGVkIEJFRk9SRSB0aGUgYG9ic2lkaWFuLWxpYjpwbHVnaW4tbG9hZGVkYCBicm9hZGNhc3QsIHdoaWNoIGlzXG4gICAqIHdoYXQgbGV0cyBhIGxpc3RlbmVyIGNhbGwgdGhlc2UgQVBJcyB0aGUgbW9tZW50IGl0IGhlYXJzIHRoYXQgZXZlbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBBUEkgZGVjbGFyYXRpb25zLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFBsdWdpbkFwaXMoKTogUGx1Z2luQXBpRGVjbGFyYXRpb25bXSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIHRoZSBwbHVnaW5zIHRoaXMgb25lIHJlZnVzZXMsIG9yIHdhcm5zIGFib3V0LCBydW5uaW5nIGJlc2lkZS5cbiAgICpcbiAgICogT3ZlcnJpZGUgaW4gc3ViY2xhc3MgdG8gZGVjbGFyZSBhbiBvdmVybGFwLiBUaGUgZGVmYXVsdCBkZWNsYXJlcyBub25lLlxuICAgKlxuICAgKiBBIGBCbG9ja2AgY29uZmxpY3QgaXMgdGhlIG1pcnJvciBpbWFnZSBvZiBhIGRlcGVuZGVuY3k6IHdoaWxlIGEgY29uZmxpY3RpbmcgcGx1Z2luIGlzIGVuYWJsZWQgYXQgYVxuICAgKiBjb25mbGljdGluZyB2ZXJzaW9uLCB7QGxpbmsgb25sb2FkSW1wbH0gZG9lcyBub3QgcnVuIGF0IGFsbCBhbmQgdGhlIHBsdWdpbiByZWdpc3RlcnMgbm90aGluZy4gRGVjbGFyZVxuICAgKiBpdCB3aGVuIGJvdGggcGx1Z2lucyBhY3Rpbmcgb24gdGhlIHNhbWUgb3BlcmF0aW9uIGRhbWFnZXMgdGhlIHZhdWx0IOKAlCB0aGVyZSBpcyBubyByZWxpYWJsZSB3YXkgdG8gd2luXG4gICAqIHRoYXQgcmFjZSwgYmVjYXVzZSB3aGljaGV2ZXIgcGx1Z2luIGxvYWRlZCBmaXJzdCBrZWVwcyBhIGhhbmQgb24gdGhlIHdoZWVsLCBzbyByZWZ1c2luZyBkZXRlcm1pbmlzdGljYWxseVxuICAgKiBiZWF0cyBjb21wZXRpbmcgdW5wcmVkaWN0YWJseS4gQSBgV2FybmAgY29uZmxpY3QgZGVjbGFyZXMgYW4gb3ZlcmxhcCB0aGF0IGlzIG1lcmVseSBhbm5veWluZywgc3VjaCBhcyBhXG4gICAqIGR1cGxpY2F0ZWQgY29tbWFuZDogYm90aCBwbHVnaW5zIGtlZXAgcnVubmluZyBhbmQgdGhlIHVzZXIgaXMgdG9sZC5cbiAgICpcbiAgICogVW5saWtlIGEgZGVwZW5kZW5jeSwgYSBjb25mbGljdGluZyBwbHVnaW4gbmVlZCBub3QgcHVibGlzaCBhbnl0aGluZyDigJQgaXQgaXMgZGV0ZWN0ZWQgYnkgcmVhZGluZyBpdHNcbiAgICogaW5zdGFsbGVkIHZlcnNpb24sIHdoaWNoIGlzIHRoZSBvbmx5IHRoaW5nIGFib3V0IGFub3RoZXIgcGx1Z2luIHRoYXQgcmVhZHMgdGhlIHNhbWUgcmVnYXJkbGVzcyBvZiBsb2FkXG4gICAqIG9yZGVyLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgZGVjbGFyZWQgY29uZmxpY3RzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFBsdWdpbkNvbmZsaWN0cygpOiBQbHVnaW5Db25mbGljdFtdIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgdGhlIHBsdWdpbnMgdGhpcyBvbmUgY2Fubm90IHdvcmsgd2l0aG91dC5cbiAgICpcbiAgICogT3ZlcnJpZGUgaW4gc3ViY2xhc3MgdG8gZGVjbGFyZSBhIG1hbmRhdG9yeSBkZXBlbmRlbmN5LiBUaGUgZGVmYXVsdCBkZWNsYXJlcyBub25lLCBhbmQgc3VjaCBhIHBsdWdpblxuICAgKiBsb2FkcyBleGFjdGx5IGFzIGl0IGFsd2F5cyBoYXMuXG4gICAqXG4gICAqIEEgZGVjbGFyZWQgZGVwZW5kZW5jeSBpcyBNQU5EQVRPUlksIHVubGlrZSB0aGUgb2ZmZXIgYFBsdWdpblN1Z2dlc3Rpb25Db21wb25lbnRgIG1ha2VzOiB3aGlsZSBvbmUgaXNcbiAgICogbWlzc2luZywgZGlzYWJsZWQsIG9yIHRvbyBvbGQsIHtAbGluayBvbmxvYWRJbXBsfSBkb2VzIG5vdCBydW4gYXQgYWxsIGFuZCB0aGUgcGx1Z2luIHJlZ2lzdGVycyBub3RoaW5nXG4gICAqIOKAlCBubyBjb21tYW5kcywgbm8gaGFuZGxlcnMsIG5vIHBhdGNoZXMuIEl0IHN0YXlzIGVuYWJsZWQgaW4gT2JzaWRpYW4ncyBsaXN0IHJhdGhlciB0aGFuIGRpc2FibGluZ1xuICAgKiBpdHNlbGYsIGJlY2F1c2UgdGhlIGVuYWJsZWQgc2V0IGlzIHRoZSB1c2VyJ3MgdG8gY2hhbmdlLCBhbmQgaXQgZXhwbGFpbnMgaXRzZWxmIHRocm91Z2ggYSBub3RpY2UgYW5kIGFcbiAgICogc2V0dGluZ3MgYmFubmVyIHRoYXQgaW5zdGFsbHMgdGhlIG1pc3NpbmcgcGx1Z2luIGluIG9uZSBjbGljay4gVGhlIGxvYWQgY29tcGxldGVzIHRoZSBtb21lbnQgdGhlXG4gICAqIGRlcGVuZGVuY3kgYXJyaXZlcywgd2l0aCBubyByZXN0YXJ0LlxuICAgKlxuICAgKiBBIGRlcGVuZGVuY3kgbXVzdCBwdWJsaXNoIGFuIEFQSSB0aHJvdWdoIGBwdWJsaXNoUGx1Z2luQXBpYCwgd2hpY2ggaXMgd2hhdCBtYWtlcyBpdHMgcHJlc2VuY2UsXG4gICAqIGFic2VuY2UsIHZlcnNpb24gYW5kIGRlcGFydHVyZSBhbGwgb2JzZXJ2YWJsZSB0aHJvdWdoIG9uZSBtZWNoYW5pc20uIEEgcGx1Z2luIHdpdGggbm90aGluZyB0byBleHBvc2VcbiAgICogY2FuIHB1Ymxpc2ggYW4gZW1wdHkgQVBJIHB1cmVseSBzbyBpdCBjYW4gYmUgZGVwZW5kZWQgdXBvbi5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGRlY2xhcmVkIGRlcGVuZGVuY2llcy5cbiAgICovXG4gIHByb3RlY3RlZCBnZXRQbHVnaW5EZXBlbmRlbmNpZXMoKTogUGx1Z2luRGVwZW5kZW5jeVtdIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGR1cmluZyB7QGxpbmsgb25sb2FkfSB0byB3aXJlIHBsdWdpbi1zcGVjaWZpYyBjaGlsZCBjb21wb25lbnRzLlxuICAgKlxuICAgKiBPdmVycmlkZSBpbiBzdWJjbGFzcyB0byBhZGQgY2hpbGQgY29tcG9uZW50cyB2aWEge0BsaW5rIGFkZENoaWxkfS4gVGhlIHVuaXZlcnNhbCBjb21wb25lbnRzIGFyZVxuICAgKiBhdmFpbGFibGUgaGVyZS4gQ2hpbGRyZW4gYXJlIGxvYWRlZCBzZXF1ZW50aWFsbHkgaW4gdGhlIG9yZGVyIHRoZXkgYXJlIGFkZGVkIChjaGlsZHJlbi1maXJzdCkuXG4gICAqXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc3ViY2xhc3MgbG9hZCBsb2dpYyBpcyBjb21wbGV0ZS5cbiAgICovXG4gIHByb3RlY3RlZCBvbmxvYWRJbXBsKCk6IFByb21pc2FibGU8dm9pZD4ge1xuICAgIHJldHVybiBub29wQXN5bmMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9yZXMgYSB1bml2ZXJzYWwgY29tcG9uZW50LCB1bmxvYWRpbmcgd2hpY2hldmVyIGNvbXBvbmVudCB0aGUga2V5IGhlbGQgYmVmb3JlLlxuICAgKlxuICAgKiBLZXllZCBieSBuYW1lIHJhdGhlciB0aGFuIGhhbmRlZCB0aGUgcHJldmlvdXMgdmFsdWUgYmVjYXVzZSBga2V5b2YgdGhpc2AgZXhjbHVkZXMgcHJpdmF0ZVxuICAgKiBtZW1iZXJzLCBzbyB0aGUgY29tcG9uZW50cyBsaXZlIGluIGEgc2luZ2xlIHtAbGluayBQbHVnaW5CYXNlQ29tcG9uZW50c30gYmFnIHdob3NlIGtleXMgQVJFXG4gICAqIGluZGV4YWJsZS5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBUS2V5IC0gVGhlIGtleSBvZiB0aGUgY29tcG9uZW50IHRvIHN0b3JlLlxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIGtleSBvZiB0aGUgY29tcG9uZW50IHRvIHN0b3JlLlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgY29tcG9uZW50IHRvIHN0b3JlLlxuICAgKi9cbiAgLyoqXG4gICAqIEFkZHMgYSBjb21wb25lbnQgdG8gdGhlIHVuaXZlcnNhbCB0aWVyLCB3aGljaCBvdXRsaXZlcyBhbnkgZGVwZW5kZW5jeS5cbiAgICpcbiAgICogUHJpdmF0ZSBvbiBwdXJwb3NlOiBvbmx5IHRoaXMgY2xhc3MgZGVjaWRlcyB3aGF0IGlzIHVuaXZlcnNhbC4gQSBzdWJjbGFzcyBhZGRpbmcgb25lIG9mIGl0cyBvd24gZ29lc1xuICAgKiB0aHJvdWdoIHtAbGluayBhZGRDaGlsZH0gYW5kIGxhbmRzIGluIHRoZSBnYXRlZCB0aWVyLCB3aGVyZSBpdCBiZWxvbmdzLlxuICAgKlxuICAgKiBAdHlwZVBhcmFtIFRDb21wb25lbnQgLSBUaGUgdHlwZSBvZiBjb21wb25lbnQgdG8gYWRkLlxuICAgKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCBpbnN0YW5jZSB0byBhZGQuXG4gICAqIEByZXR1cm5zIFRoZSBhZGRlZCBjb21wb25lbnQuXG4gICAqL1xuICBwcml2YXRlIGFkZFVuaXZlcnNhbENoaWxkPFRDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnQ+KGNvbXBvbmVudDogVENvbXBvbmVudCk6IFRDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnVuaXZlcnNhbFdyYXBwZXJDb21wb25lbnQuYWRkQ2hpbGQoY29tcG9uZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbm5vdW5jZXMgb24gYGFwcC53b3Jrc3BhY2VgIHRoYXQgdGhpcyBwbHVnaW4gaXMgbG9hZGVkIGFuZCBpdHMgQVBJcyBhcmUgY2FsbGFibGUuXG4gICAqL1xuICBwcml2YXRlIGJyb2FkY2FzdExvYWRlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmxpZmVjeWNsZUV2ZW50UGF5bG9hZCA9IHtcbiAgICAgIGFwaVZlcnNpb25zOiB0aGlzLmdldFBsdWdpbkFwaXMoKS5tYXAoKGRlY2xhcmF0aW9uKSA9PiBkZWNsYXJhdGlvbi5hcGlWZXJzaW9uKSxcbiAgICAgIGRlcGVuZGVuY3lQbHVnaW5JZHM6IHRoaXMuZ2V0UGx1Z2luRGVwZW5kZW5jaWVzKCkubWFwKChkZXBlbmRlbmN5KSA9PiBkZXBlbmRlbmN5LnBsdWdpbklkKSxcbiAgICAgIHBsdWdpbklkOiB0aGlzLm1hbmlmZXN0LmlkLFxuICAgICAgcGx1Z2luTmFtZTogdGhpcy5tYW5pZmVzdC5uYW1lLFxuICAgICAgcGx1Z2luVmVyc2lvbjogdGhpcy5tYW5pZmVzdC52ZXJzaW9uXG4gICAgfTtcblxuICAgIHRyaWdnZXJQbHVnaW5MaWZlY3ljbGVFdmVudCh7XG4gICAgICBhcHA6IHRoaXMuYXBwLFxuICAgICAgbmFtZTogUExVR0lOX0xPQURFRF9FVkVOVF9OQU1FLFxuICAgICAgcGF5bG9hZDogdGhpcy5saWZlY3ljbGVFdmVudFBheWxvYWRcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbm5vdW5jZXMgb24gYGFwcC53b3Jrc3BhY2VgIHRoYXQgdGhpcyBwbHVnaW4ncyBzdXJmYWNlIGhhcyBnb25lIGF3YXkuXG4gICAqXG4gICAqIFNpbGVudCB1bmxlc3MgYSBsb2FkZWQgYnJvYWRjYXN0IGlzIG91dHN0YW5kaW5nLCBzbyB0aGUgdHdvIGV2ZW50cyBzdGF5IHBhaXJlZDogYSBwbHVnaW4gdGhhdCBuZXZlclxuICAgKiBnb3QgcGFzdCBpdHMgZGVwZW5kZW5jeSBnYXRlIG5ldmVyIGFubm91bmNlZCBpdHNlbGYsIGFuZCBtdXN0IG5vdCBhbm5vdW5jZSBhIGRlcGFydHVyZSBlaXRoZXIuXG4gICAqL1xuICBwcml2YXRlIGJyb2FkY2FzdFVubG9hZGVkKCk6IHZvaWQge1xuICAgIGNvbnN0IHBheWxvYWQgPSB0aGlzLmxpZmVjeWNsZUV2ZW50UGF5bG9hZDtcbiAgICBpZiAoIXBheWxvYWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmxpZmVjeWNsZUV2ZW50UGF5bG9hZCA9IG51bGw7XG4gICAgdHJpZ2dlclBsdWdpbkxpZmVjeWNsZUV2ZW50KHtcbiAgICAgIGFwcDogdGhpcy5hcHAsXG4gICAgICBuYW1lOiBQTFVHSU5fVU5MT0FERURfRVZFTlRfTkFNRSxcbiAgICAgIHBheWxvYWRcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYW5kIGxvYWRzIHRoZSBzdWJjbGFzcydzIGZlYXR1cmUgc3VyZmFjZSwgdGhlbiBwdWJsaXNoZXMgaXRzIEFQSXMgYW5kIGFubm91bmNlcyBpdHNlbGYuXG4gICAqXG4gICAqIE5PVCBpZGVtcG90ZW50LCBkZWxpYmVyYXRlbHkuIGBQbHVnaW5HYXRlQ29tcG9uZW50YCBvd25zIHRoZSB1cC9kb3duIHN0YXRlIG1hY2hpbmUgYW5kIGNhbGxzXG4gICAqIHRoaXMgb25seSBvbiBhIHJlYWwgdHJhbnNpdGlvbjsgYSBzZWNvbmQgZ3VhcmQgaGVyZSB3b3VsZCBiZSBhIHNlY29uZCBjb3B5IG9mIHRoYXQgc3RhdGUsIHdoaWNoIGlzIHRoZVxuICAgKiBraW5kIG9mIGR1cGxpY2F0ZSB0aGF0IGRyaWZ0cy5cbiAgICpcbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSBzdXJmYWNlIGlzIGxvYWRlZCBhbmQgdGhlIGJyb2FkY2FzdCBoYXMgYmVlbiBtYWRlLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBsb2FkRmVhdHVyZVN1cmZhY2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gTG9hZGVkIGV4cGxpY2l0bHkgZm9yIHRoZSBzYW1lIHJlYXNvbiB0aGUgdW5pdmVyc2FsIHdyYXBwZXIgaXM6IGBhZGRDaGlsZGAgbG9hZHMgYSBjaGlsZCBvbmx5IG9uY2VcbiAgICAvLyBpdHMgcGFyZW50IGlzIGxvYWRlZCwgYW5kIHRoZSBzdXJmYWNlIGhhcyB0byBiZSBsaXZlIGJlZm9yZSBgb25sb2FkSW1wbGAgc3RhcnRzIGFkZGluZyB0byBpdC5cbiAgICBjb25zdCBnYXRlZFdyYXBwZXJDb21wb25lbnQgPSB0aGlzLmdhdGVkV3JhcHBlckNvbXBvbmVudDtcbiAgICB0aGlzLnVuaXZlcnNhbFdyYXBwZXJDb21wb25lbnQuYWRkQ2hpbGQoZ2F0ZWRXcmFwcGVyQ29tcG9uZW50KTtcbiAgICBnYXRlZFdyYXBwZXJDb21wb25lbnQubG9hZCgpO1xuXG4gICAgYXdhaXQgdGhpcy5vbmxvYWRJbXBsKCk7XG4gICAgYXdhaXQgZ2F0ZWRXcmFwcGVyQ29tcG9uZW50LmxvYWRXaXRoUHJvbWlzZXMoKTtcblxuICAgIGZvciAoY29uc3QgZGVjbGFyYXRpb24gb2YgdGhpcy5nZXRQbHVnaW5BcGlzKCkpIHtcbiAgICAgIHB1Ymxpc2hQbHVnaW5BcGkoe1xuICAgICAgICAuLi5kZWNsYXJhdGlvbixcbiAgICAgICAgLy8gUmV2b2tlZCB3aXRoIHRoZSBTVVJGQUNFLCBub3Qgd2l0aCB0aGUgcGx1Z2luOiBhIHBsdWdpbiB3aG9zZSBkZXBlbmRlbmN5IGdvZXMgYXdheSBrZWVwcyBydW5uaW5nXG4gICAgICAgIC8vIGl0cyB1bml2ZXJzYWwgY29tcG9uZW50cywgYW5kIGEgY29uc3VtZXIgbXVzdCBub3QgYmUgbGVmdCBob2xkaW5nIGEgaGFuZGxlIGludG8gdGhlIGhhbGYgb2YgaXRcbiAgICAgICAgLy8gdGhhdCB3YXMganVzdCB0b3JuIGRvd24uXG4gICAgICAgIGNvbXBvbmVudDogZ2F0ZWRXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBwbHVnaW46IHRoaXNcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuYnJvYWRjYXN0TG9hZGVkKCk7XG4gIH1cblxuICBwcml2YXRlIHNldENvbXBvbmVudDxUS2V5IGV4dGVuZHMga2V5b2YgUGx1Z2luQmFzZUNvbXBvbmVudHM+KGtleTogVEtleSwgdmFsdWU6IE5vbk51bGxhYmxlPFBsdWdpbkJhc2VDb21wb25lbnRzW1RLZXldPik6IHZvaWQge1xuICAgIGNvbnN0IG9sZENvbXBvbmVudCA9IHRoaXMuY29tcG9uZW50c1trZXldO1xuICAgIGlmIChvbGRDb21wb25lbnQpIHtcbiAgICAgIHRoaXMucmVtb3ZlQ2hpbGQob2xkQ29tcG9uZW50KTtcbiAgICB9XG4gICAgdGhpcy5jb21wb25lbnRzW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUZWFycyB0aGUgc3ViY2xhc3MncyBmZWF0dXJlIHN1cmZhY2UgZG93biwgbGVhdmluZyB0aGUgdW5pdmVyc2FsIGNvbXBvbmVudHMgcnVubmluZy5cbiAgICovXG4gIHByaXZhdGUgdW5sb2FkRmVhdHVyZVN1cmZhY2UoKTogdm9pZCB7XG4gICAgY29uc3QgZ2F0ZWRXcmFwcGVyQ29tcG9uZW50ID0gdGhpcy5nYXRlZFdyYXBwZXJDb21wb25lbnQ7XG5cbiAgICAvLyBSZXBsYWNlZCBCRUZPUkUgdGhlIG9sZCBvbmUgaXMgdW5sb2FkZWQsIHNvIGFueXRoaW5nIHRoYXQgcmVzdW1lcyBtaWQtdGVhcmRvd24gYW5kIGNhbGxzIGBhZGRDaGlsZGBcbiAgICAvLyBwYXJrcyBpdHMgY2hpbGQgb24gdGhlIGZyZXNoIHN1cmZhY2UgcmF0aGVyIHRoYW4gb24gdGhlIG9uZSBiZWluZyB0b3JuIGRvd24g4oCUIHdoZXJlIGBDb21wb25lbnRFeGBcbiAgICAvLyB3b3VsZCByZWZ1c2UgaXQgb3V0cmlnaHQsIHNpbmNlIGl0IHJlZnVzZXMgY2hpbGRyZW4gYWRkZWQgdG8gYW4gYWxyZWFkeS11bmxvYWRlZCBjb21wb25lbnQuXG4gICAgdGhpcy5nYXRlZFdyYXBwZXJDb21wb25lbnQgPSBuZXcgQ29tcG9uZW50RXgoKTtcbiAgICB0aGlzLnVuaXZlcnNhbFdyYXBwZXJDb21wb25lbnQucmVtb3ZlQ2hpbGQoZ2F0ZWRXcmFwcGVyQ29tcG9uZW50KTtcblxuICAgIHRoaXMuYnJvYWRjYXN0VW5sb2FkZWQoKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbG9hZHMgdGhlIHNwZWNpZmllZCBwbHVnaW4gYnkgZGlzYWJsaW5nIGFuZCB0aGVuIHJlLWVuYWJsaW5nIGl0LlxuICpcbiAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIHJlbG9hZC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcGx1Z2luIGlzIHJlbG9hZGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVsb2FkUGx1Z2luKHBsdWdpbjogUGx1Z2luKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBsdWdpbnMgPSBwbHVnaW4uYXBwLnBsdWdpbnM7XG4gIGNvbnN0IHBsdWdpbklkID0gcGx1Z2luLm1hbmlmZXN0LmlkO1xuICBhd2FpdCBwbHVnaW5zLmRpc2FibGVQbHVnaW4ocGx1Z2luSWQpO1xuICBhd2FpdCBwbHVnaW5zLmVuYWJsZVBsdWdpbihwbHVnaW5JZCk7XG59XG5cbi8qKlxuICogRGlzcGxheXMgYW4gZXJyb3IgbWVzc2FnZSBhcyBhIG5vdGljZSwgbG9ncyBpdCB0byB0aGUgY29uc29sZSwgYW5kIGRpc2FibGVzIHRoZSBzcGVjaWZpZWQgcGx1Z2luLlxuICpcbiAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luIHRvIGRpc2FibGUuXG4gKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgYW5kIGxvZy5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgcGx1Z2luIGlzIGRpc2FibGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hvd0Vycm9yQW5kRGlzYWJsZVBsdWdpbihwbHVnaW46IFBsdWdpbiwgbWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBsdWdpbk5vdGljZUNvbXBvbmVudCA9IG5ldyBQbHVnaW5Ob3RpY2VDb21wb25lbnQoe1xuICAgIGFwcDogcGx1Z2luLmFwcCxcbiAgICBwbHVnaW5OYW1lOiBwbHVnaW4ubWFuaWZlc3QubmFtZVxuICB9KTtcbiAgcGx1Z2luTm90aWNlQ29tcG9uZW50LnNob3dOb3RpY2UobWVzc2FnZSk7XG4gIHByaW50RXJyb3IobmV3IEVycm9yKG1lc3NhZ2UpKTtcbiAgYXdhaXQgcGx1Z2luLmFwcC5wbHVnaW5zLmRpc2FibGVQbHVnaW4ocGx1Z2luLm1hbmlmZXN0LmlkKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjQSxTQUFTLHdCQUF3QjtBQUNqQyxTQUFTLGtCQUFrQjtBQUMzQixTQUFTLGlCQUFpQjtBQUMxQixTQUFTLHlCQUF5QjtBQUNsQyxTQUFTLGNBQWM7QUFjdkIsU0FBUyw2QkFBNkI7QUFDdEMsU0FBUywrQkFBK0I7QUFDeEMsU0FBUyxzQ0FBc0M7QUFDL0MsU0FBUyw4QkFBOEI7QUFDdkMsU0FBUyw0QkFBNEI7QUFDckMsU0FBUyxrQ0FBa0M7QUFDM0MsU0FBUyxtQkFB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
|
|
@@ -91,10 +91,10 @@ async function showPopover(params) {
|
|
|
91
91
|
});
|
|
92
92
|
const buttonsSetting = new Setting(popoverEl);
|
|
93
93
|
buttonsSetting.addButton((button) => {
|
|
94
|
-
button.setButtonText(okButtonText ?? t(($) => $.
|
|
94
|
+
button.setButtonText(okButtonText ?? t(($) => $.obsidianLib.buttons.ok)).setCta().setClass(CssClass.OkButton).onClick(handleOk);
|
|
95
95
|
});
|
|
96
96
|
buttonsSetting.addButton((button) => {
|
|
97
|
-
button.setButtonText(cancelButtonText ?? t(($) => $.
|
|
97
|
+
button.setButtonText(cancelButtonText ?? t(($) => $.obsidianLib.buttons.cancel)).setClass(CssClass.CancelButton).onClick(handleCancel);
|
|
98
98
|
});
|
|
99
99
|
doc.addEventListener("pointerdown", handlePointerDown, { capture: true });
|
|
100
100
|
positionAtAnchor(popoverEl, anchor, win);
|
|
@@ -120,4 +120,4 @@ function positionAtAnchor(popoverEl, anchor, win) {
|
|
|
120
120
|
export {
|
|
121
121
|
showPopover
|
|
122
122
|
};
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wb3BvdmVycy9wb3BvdmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBBIHNtYWxsIGZsb2F0aW5nIHBhbmVsIGFuY2hvcmVkIGF0IGEgcG9pbnQsIGNvbGxlY3RpbmcgYSB2YWx1ZSBhbmQgcmVzb2x2aW5nIGEgcHJvbWlzZSB3aXRoIGl0LlxuICpcbiAqIFRoaXMgaXMgdGhlIHBvcG92ZXIgY291bnRlcnBhcnQgb2YgYG1vZGFscy9tb2RhbC50c2A6IHRoZSBzYW1lIFwiYXNrIHRoZSB1c2VyIGZvciBhIHZhbHVlLCByZXNvbHZlIGFcbiAqIHByb21pc2VcIiBzaGFwZSwgZm9yIHRoZSBjYXNlcyBhIG1vZGFsIGNhbm5vdCBzZXJ2ZS4gQSBtb2RhbCBkaW1zIHRoZSBzY3JlZW4gYW5kIGlzIHBvc2l0aW9uZWQgYnlcbiAqIE9ic2lkaWFuLCBuZWl0aGVyIG9mIHdoaWNoIHN1aXRzIGFuIGVkaXRvciB0aGF0IG11c3QgYXBwZWFyICphdCogdGhlIHRoaW5nIGl0IGVkaXRzIOKAlCBhIGNsaWNrZWRcbiAqIGxpbmssIHRoZSBjYXJldCwgb3Igd2hlcmV2ZXIgYSBjb250ZXh0IG1lbnUgd2FzIHJhaXNlZC5cbiAqXG4gKiBUaGUgcGFuZWwgcmlkZXMgT2JzaWRpYW4ncyBgLm1lbnVgIGNsYXNzIGZvciBpdHMgYmFja2dyb3VuZCwgYm9yZGVyIGFuZCBzaGFkb3csIHNvIG9ubHkgbGF5b3V0IGlzXG4gKiBzdHlsZWQgYnkgdGhpcyBsaWJyYXJ5LlxuICovXG5cbmltcG9ydCB7IGdldERvY3VtZW50V2luZG93IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2h0bWwtZWxlbWVudCc7XG5pbXBvcnQgeyBTZXR0aW5nIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFBvcG92ZXJBbmNob3IgfSBmcm9tICcuL3BvcG92ZXItYW5jaG9yLnRzJztcblxuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi9jc3MtY2xhc3MudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBhZGRQbHVnaW5Dc3NDbGFzc2VzIH0gZnJvbSAnLi4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcblxuLyoqXG4gKiBUaGUgZ2FwIGluIHBpeGVscyBiZXR3ZWVuIHRoZSBhbmNob3IgYW5kIHRoZSBwb3BvdmVyLlxuICovXG5jb25zdCBBTkNIT1JfR0FQX0lOX1BJWEVMUyA9IDQ7XG5cbi8qKlxuICogVGhlIG1pbmltdW0gZ2FwIGluIHBpeGVscyB0aGUgcG9wb3ZlciBrZWVwcyBmcm9tIHRoZSBlZGdlcyBvZiB0aGUgd2luZG93IHdoZW4gaXQgaGFzIHRvIGJlIGNsYW1wZWRcbiAqIGJhY2sgaW50byB2aWV3LlxuICovXG5jb25zdCBWSUVXUE9SVF9NQVJHSU5fSU5fUElYRUxTID0gODtcblxuLyoqXG4gKiBSZWFkcyB0aGUgdmFsdWUgdGhlIHBvcG92ZXIgcmVzb2x2ZXMgd2l0aCB3aGVuIGl0IGlzIGNvbmZpcm1lZC5cbiAqXG4gKiBAdHlwZVBhcmFtIFZhbHVlIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIHJlc29sdmVkIGJ5IHRoZSBwb3BvdmVyLlxuICogQHJldHVybnMgVGhlIGN1cnJlbnQgdmFsdWUuXG4gKi9cbmV4cG9ydCB0eXBlIFBvcG92ZXJWYWx1ZUdldHRlcjxWYWx1ZT4gPSAoKSA9PiBWYWx1ZTtcblxuLyoqXG4gKiBUaGUgdG9vbHMgaGFuZGVkIHRvIHtAbGluayBTaG93UG9wb3ZlclBhcmFtcy5idWlsZH0gZm9yIHBvcHVsYXRpbmcgYSBwb3BvdmVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNob3dQb3BvdmVyQnVpbGRQYXJhbXMge1xuICAvKipcbiAgICogRGlzbWlzc2VzIHRoZSBwb3BvdmVyLCByZXNvbHZpbmcgaXQgd2l0aCBgbnVsbGAsIGFzIHRoZSBDYW5jZWwgYnV0dG9uIGRvZXMuXG4gICAqL1xuICByZWFkb25seSBjYW5jZWw6ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENvbmZpcm1zIHRoZSBwb3BvdmVyLCByZXNvbHZpbmcgaXQgd2l0aCB0aGUgYnVpbHQgdmFsdWUsIGFzIHRoZSBPSyBidXR0b24gZG9lcy5cbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpcm06ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRvIGFkZCB0aGUgcG9wb3ZlcidzIGNvbnRlbnQgdG8uIFRoZSBPSyBhbmQgQ2FuY2VsIGJ1dHRvbnMgYXJlIGFwcGVuZGVkIGFmdGVyIGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGVudEVsOiBIVE1MRWxlbWVudDtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc2hvd1BvcG92ZXJ9LlxuICpcbiAqIEB0eXBlUGFyYW0gVmFsdWUgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgcmVzb2x2ZWQgYnkgdGhlIHBvcG92ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2hvd1BvcG92ZXJQYXJhbXM8VmFsdWU+IHtcbiAgLyoqXG4gICAqIFdoZXJlIHRvIHBsYWNlIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgYW5jaG9yOiBQb3BvdmVyQW5jaG9yO1xuXG4gIC8qKlxuICAgKiBQb3B1bGF0ZXMgdGhlIHBvcG92ZXIncyBjb250ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHRvb2xzIGZvciBwb3B1bGF0aW5nIHRoZSBwb3BvdmVyLlxuICAgKiBAcmV0dXJucyBBIGdldHRlciByZWFkIHdoZW4gdGhlIHBvcG92ZXIgaXMgY29uZmlybWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGQ6IChwYXJhbXM6IFNob3dQb3BvdmVyQnVpbGRQYXJhbXMpID0+IFBvcG92ZXJWYWx1ZUdldHRlcjxWYWx1ZT47XG5cbiAgLyoqXG4gICAqIEEgdGV4dCBmb3IgdGhlIFwiQ2FuY2VsXCIgYnV0dG9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY2FuY2VsQnV0dG9uVGV4dD86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBDU1MgY2xhc3NlcyB0byBhcHBseSB0byB0aGUgcG9wb3Zlci5cbiAgICovXG4gIHJlYWRvbmx5IGNzc0NsYXNzZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQSB0ZXh0IGZvciB0aGUgXCJPS1wiIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9rQnV0dG9uVGV4dD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEaXNwbGF5cyBhIHBvcG92ZXIgYXQgdGhlIGdpdmVuIGFuY2hvciBhbmQgcmVzb2x2ZXMgd2l0aCB0aGUgYnVpbHQgdmFsdWUsIG9yIGBudWxsYCBpZiBpdCB3YXNcbiAqIGRpc21pc3NlZCB3aXRob3V0IGNvbmZpcm1pbmcuXG4gKlxuICogQHR5cGVQYXJhbSBWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSByZXNvbHZlZCBieSB0aGUgcG9wb3Zlci5cbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHBvcG92ZXIuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGJ1aWx0IHZhbHVlLCBvciBgbnVsbGAgaWYgZGlzbWlzc2VkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hvd1BvcG92ZXI8VmFsdWU+KHBhcmFtczogU2hvd1BvcG92ZXJQYXJhbXM8VmFsdWU+KTogUHJvbWlzZTxudWxsIHwgVmFsdWU+IHtcbiAgY29uc3Qge1xuICAgIGFuY2hvcixcbiAgICBidWlsZCxcbiAgICBjYW5jZWxCdXR0b25UZXh0LFxuICAgIGNzc0NsYXNzZXMsXG4gICAgb2tCdXR0b25UZXh0XG4gIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgZG9jID0gYW5jaG9yLmRvYztcbiAgY29uc3Qgd2luID0gZ2V0RG9jdW1lbnRXaW5kb3coZG9jKTtcbiAgY29uc3QgcG9wb3ZlckVsID0gZG9jLmJvZHkuY3JlYXRlRGl2KHsgY2xzOiAnbWVudScgfSk7XG4gIGFkZFBsdWdpbkNzc0NsYXNzZXMocG9wb3ZlckVsLCBbQ3NzQ2xhc3MuUG9wb3ZlciwgLi4uY3NzQ2xhc3NlcyA/PyBbXV0pO1xuXG4gIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxudWxsIHwgVmFsdWU+KChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3Qgc3RhdGUgPSB7IGlzQ2xvc2VkOiBmYWxzZSB9O1xuXG4gICAgZnVuY3Rpb24gY2xvc2UocmVzdWx0OiBudWxsIHwgVmFsdWUpOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZS5pc0Nsb3NlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzdGF0ZS5pc0Nsb3NlZCA9IHRydWU7XG4gICAgICBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBoYW5kbGVQb2ludGVyRG93biwgdHJ1ZSk7XG4gICAgICBwb3BvdmVyRWwucmVtb3ZlKCk7XG4gICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2FuY2VsKCk6IHZvaWQge1xuICAgICAgY2xvc2UobnVsbCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlT2soKTogdm9pZCB7XG4gICAgICBjbG9zZShnZXRWYWx1ZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaXNtaXNzZXMgdGhlIHBvcG92ZXIgd2hlbiB0aGUgbmV4dCBnZXN0dXJlIHN0YXJ0cyBvdXRzaWRlIGl0LiBMaXN0ZW5pbmcgZm9yIGBwb2ludGVyZG93bmBcbiAgICAgKiByYXRoZXIgdGhhbiBgY2xpY2tgIG1hdHRlcnM6IGEgcG9wb3ZlciBpcyB0eXBpY2FsbHkgb3BlbmVkIGZyb20gYSBgY2xpY2tgIGhhbmRsZXIsIGFuZCB0aGUgdmVyeVxuICAgICAqIHNhbWUgY2xpY2sgd291bGQgb3RoZXJ3aXNlIHJlYWNoIHRoaXMgbGlzdGVuZXIgYW5kIGNsb3NlIHRoZSBwb3BvdmVyIHRoZSBpbnN0YW50IGl0IGFwcGVhcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gJGV2ZW50IC0gVGhlIHBvaW50ZXIgZXZlbnQuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaGFuZGxlUG9pbnRlckRvd24oJGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICAgIGlmICgkZXZlbnQuY29tcG9zZWRQYXRoKCkuaW5jbHVkZXMocG9wb3ZlckVsKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjbG9zZShudWxsKTtcbiAgICB9XG5cbiAgICBjb25zdCBnZXRWYWx1ZSA9IGJ1aWxkKHtcbiAgICAgIGNhbmNlbDogaGFuZGxlQ2FuY2VsLFxuICAgICAgY29uZmlybTogaGFuZGxlT2ssXG4gICAgICBjb250ZW50RWw6IHBvcG92ZXJFbFxuICAgIH0pO1xuXG4gICAgcG9wb3ZlckVsLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoJGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoJGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaGFuZGxlT2soKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoJGV2ZW50LmtleSAhPT0gJ0VzY2FwZScpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGhhbmRsZUNhbmNlbCgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgYnV0dG9uc1NldHRpbmcgPSBuZXcgU2V0dGluZyhwb3BvdmVyRWwpO1xuICAgIGJ1dHRvbnNTZXR0aW5nLmFkZEJ1dHRvbigoYnV0dG9uKSA9PiB7XG4gICAgICBidXR0b25cbiAgICAgICAgLnNldEJ1dHRvblRleHQob2tCdXR0b25UZXh0ID8/IHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5idXR0b25zLm9rKSlcbiAgICAgICAgLnNldEN0YSgpXG4gICAgICAgIC5zZXRDbGFzcyhDc3NDbGFzcy5Pa0J1dHRvbilcbiAgICAgICAgLm9uQ2xpY2soaGFuZGxlT2spO1xuICAgIH0pO1xuICAgIGJ1dHRvbnNTZXR0aW5nLmFkZEJ1dHRvbigoYnV0dG9uKSA9PiB7XG4gICAgICBidXR0b25cbiAgICAgICAgLnNldEJ1dHRvblRleHQoY2FuY2VsQnV0dG9uVGV4dCA/PyB0KCgkKSA9PiAkLm9ic2lkaWFuRGV2VXRpbHMuYnV0dG9ucy5jYW5jZWwpKVxuICAgICAgICAuc2V0Q2xhc3MoQ3NzQ2xhc3MuQ2FuY2VsQnV0dG9uKVxuICAgICAgICAub25DbGljayhoYW5kbGVDYW5jZWwpO1xuICAgIH0pO1xuXG4gICAgZG9jLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgaGFuZGxlUG9pbnRlckRvd24sIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICBwb3NpdGlvbkF0QW5jaG9yKHBvcG92ZXJFbCwgYW5jaG9yLCB3aW4pO1xuICAgIGZvY3VzRmlyc3RJbnB1dChwb3BvdmVyRWwpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBGb2N1c2VzIGFuZCBzZWxlY3RzIHRoZSBwb3BvdmVyJ3MgZmlyc3QgdGV4dCBpbnB1dCwgc28gdGhlIHVzZXIgY2FuIHR5cGUgc3RyYWlnaHQgYXdheS5cbiAqXG4gKiBAcGFyYW0gcG9wb3ZlckVsIC0gVGhlIHBvcG92ZXIgdG8gZm9jdXMgd2l0aGluLlxuICovXG5mdW5jdGlvbiBmb2N1c0ZpcnN0SW5wdXQocG9wb3ZlckVsOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICBjb25zdCBpbnB1dEVsID0gcG9wb3ZlckVsLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XG4gIGlmICghaW5wdXRFbCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlucHV0RWwuZm9jdXMoKTtcbiAgaW5wdXRFbC5zZWxlY3QoKTtcbn1cblxuLyoqXG4gKiBQbGFjZXMgdGhlIHBvcG92ZXIganVzdCBiZWxvdyB0aGUgYW5jaG9yLCBwdWxsaW5nIGl0IGJhY2sgaW5zaWRlIHRoZSB3aW5kb3cgd2hlbiBpdCB3b3VsZCBvdGhlcndpc2VcbiAqIG92ZXJmbG93IOKAlCBhbiBhbmNob3IgbmVhciB0aGUgcmlnaHQgb3IgYm90dG9tIGVkZ2UgaXMgZXhhY3RseSB3aGVyZSBhbiB1bmNsYW1wZWQgcG9wb3ZlciB3b3VsZFxuICogcmVuZGVyIG9mZi1zY3JlZW4uXG4gKlxuICogQHBhcmFtIHBvcG92ZXJFbCAtIFRoZSBwb3BvdmVyIHRvIHBvc2l0aW9uLlxuICogQHBhcmFtIGFuY2hvciAtIFdoZXJlIHRoZSBwb3BvdmVyIGJlbG9uZ3MuXG4gKiBAcGFyYW0gd2luIC0gVGhlIHdpbmRvdyB0aGUgYW5jaG9yIGxpdmVzIGluIChhIHBvcC1vdXQgd2luZG93IGhhcyBpdHMgb3duKS5cbiAqL1xuZnVuY3Rpb24gcG9zaXRpb25BdEFuY2hvcihwb3BvdmVyRWw6IEhUTUxFbGVtZW50LCBhbmNob3I6IFBvcG92ZXJBbmNob3IsIHdpbjogV2luZG93KTogdm9pZCB7XG4gIGNvbnN0IG1heExlZnQgPSBNYXRoLm1heChWSUVXUE9SVF9NQVJHSU5fSU5fUElYRUxTLCB3aW4uaW5uZXJXaWR0aCAtIHBvcG92ZXJFbC5vZmZzZXRXaWR0aCAtIFZJRVdQT1JUX01BUkdJTl9JTl9QSVhFTFMpO1xuICBjb25zdCBtYXhUb3AgPSBNYXRoLm1heChWSUVXUE9SVF9NQVJHSU5fSU5fUElYRUxTLCB3aW4uaW5uZXJIZWlnaHQgLSBwb3BvdmVyRWwub2Zmc2V0SGVpZ2h0IC0gVklFV1BPUlRfTUFSR0lOX0lOX1BJWEVMUyk7XG5cbiAgY29uc3QgbGVmdCA9IE1hdGgubWluKE1hdGgubWF4KGFuY2hvci5sZWZ0LCBWSUVXUE9SVF9NQVJHSU5fSU5fUElYRUxTKSwgbWF4TGVmdCk7XG4gIGNvbnN0IHRvcCA9IE1hdGgubWluKE1hdGgubWF4KGFuY2hvci5ib3R0b20gKyBBTkNIT1JfR0FQX0lOX1BJWEVMUywgVklFV1BPUlRfTUFSR0lOX0lOX1BJWEVMUyksIG1heFRvcCk7XG5cbiAgcG9wb3ZlckVsLnN0eWxlLmxlZnQgPSBgJHtTdHJpbmcoTWF0aC5yb3VuZChsZWZ0ICsgd2luLnNjcm9sbFgpKX1weGA7XG4gIHBvcG92ZXJFbC5zdHlsZS50b3AgPSBgJHtTdHJpbmcoTWF0aC5yb3VuZCh0b3AgKyB3aW4uc2Nyb2xsWSkpfXB4YDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjQSxTQUFTLHlCQUF5QjtBQUNsQyxTQUFTLGVBQWU7QUFJeEIsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUyxTQUFTO0FBQ2xCLFNBQVMsMkJBQTJCO0FBS3BDLE1BQU0sdUJBQXVCO0FBTTdCLE1BQU0sNEJBQTRCO0FBeUVsQyxlQUFzQixZQUFtQixRQUF5RDtBQUNoRyxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFFSixRQUFNLE1BQU0sT0FBTztBQUNuQixRQUFNLE1BQU0sa0JBQWtCLEdBQUc7QUFDakMsUUFBTSxZQUFZLElBQUksS0FBSyxVQUFVLEVBQUUsS0FBSyxPQUFPLENBQUM7QUFDcEQsc0JBQW9CLFdBQVcsQ0FBQyxTQUFTLFNBQVMsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDO0FBRXRFLFNBQU8sTUFBTSxJQUFJLFFBQXNCLENBQUMsWUFBWTtBQUNsRCxVQUFNLFFBQVEsRUFBRSxVQUFVLE1BQU07QUFFaEMsYUFBUyxNQUFNLFFBQTRCO0FBQ3pDLFVBQUksTUFBTSxVQUFVO0FBQ2xCO0FBQUEsTUFDRjtBQUNBLFlBQU0sV0FBVztBQUNqQixVQUFJLG9CQUFvQixlQUFlLG1CQUFtQixJQUFJO0FBQzlELGdCQUFVLE9BQU87QUFDakIsY0FBUSxNQUFNO0FBQUEsSUFDaEI7QUFFQSxhQUFTLGVBQXFCO0FBQzVCLFlBQU0sSUFBSTtBQUFBLElBQ1o7QUFFQSxhQUFTLFdBQWlCO0FBQ3hCLFlBQU0sU0FBUyxDQUFDO0FBQUEsSUFDbEI7QUFTQSxhQUFTLGtCQUFrQixRQUE0QjtBQUNyRCxVQUFJLE9BQU8sYUFBYSxFQUFFLFNBQVMsU0FBUyxHQUFHO0FBQzdDO0FBQUEsTUFDRjtBQUNBLFlBQU0sSUFBSTtBQUFBLElBQ1o7QUFFQSxVQUFNLFdBQVcsTUFBTTtBQUFBLE1BQ3JCLFFBQVE7QUFBQSxNQUNSLFNBQVM7QUFBQSxNQUNULFdBQVc7QUFBQSxJQUNiLENBQUM7QUFFRCxjQUFVLGlCQUFpQixXQUFXLENBQUMsV0FBMEI7QUFDL0QsVUFBSSxPQUFPLFFBQVEsU0FBUztBQUMxQixlQUFPLGVBQWU7QUFDdEIsaUJBQVM7QUFDVDtBQUFBLE1BQ0Y7QUFFQSxVQUFJLE9BQU8sUUFBUSxVQUFVO0FBQzNCO0FBQUEsTUFDRjtBQUVBLGFBQU8sZUFBZTtBQUN0QixtQkFBYTtBQUFBLElBQ2YsQ0FBQztBQUVELFVBQU0saUJBQWlCLElBQUksUUFBUSxTQUFTO0FBQzVDLG1CQUFlLFVBQVUsQ0FBQyxXQUFXO0FBQ25DLGFBQ0csY0FBYyxnQkFBZ0IsRUFBRSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsUUFBUSxFQUFFLENBQUMsRUFDckUsT0FBTyxFQUNQLFNBQVMsU0FBUyxRQUFRLEVBQzFCLFFBQVEsUUFBUTtBQUFBLElBQ3JCLENBQUM7QUFDRCxtQkFBZSxVQUFVLENBQUMsV0FBVztBQUNuQyxhQUNHLGNBQWMsb0JBQW9CLEVBQUUsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLFFBQVEsTUFBTSxDQUFDLEVBQzdFLFNBQVMsU0FBUyxZQUFZLEVBQzlCLFFBQVEsWUFBWTtBQUFBLElBQ3pCLENBQUM7QUFFRCxRQUFJLGlCQUFpQixlQUFlLG1CQUFtQixFQUFFLFNBQVMsS0FBSyxDQUFDO0FBQ3hFLHFCQUFpQixXQUFXLFFBQVEsR0FBRztBQUN2QyxvQkFBZ0IsU0FBUztBQUFBLEVBQzNCLENBQUM7QUFDSDtBQU9BLFNBQVMsZ0JBQWdCLFdBQThCO0FBQ3JELFFBQU0sVUFBVSxVQUFVLGNBQWMsT0FBTztBQUMvQyxNQUFJLENBQUMsU0FBUztBQUNaO0FBQUEsRUFDRjtBQUVBLFVBQVEsTUFBTTtBQUNkLFVBQVEsT0FBTztBQUNqQjtBQVdBLFNBQVMsaUJBQWlCLFdBQXdCLFFBQXVCLEtBQW1CO0FBQzFGLFFBQU0sVUFBVSxLQUFLLElBQUksMkJBQTJCLElBQUksYUFBYSxVQUFVLGNBQWMseUJBQXlCO0FBQ3RILFFBQU0sU0FBUyxLQUFLLElBQUksMkJBQTJCLElBQUksY0FBYyxVQUFVLGVBQWUseUJBQXlCO0FBRXZILFFBQU0sT0FBTyxLQUFLLElBQUksS0FBSyxJQUFJLE9BQU8sTUFBTSx5QkFBeUIsR0FBRyxPQUFPO0FBQy9FLFFBQU0sTUFBTSxLQUFLLElBQUksS0FBSyxJQUFJLE9BQU8sU0FBUyxzQkFBc0IseUJBQXlCLEdBQUcsTUFBTTtBQUV0RyxZQUFVLE1BQU0sT0FBTyxHQUFHLE9BQU8sS0FBSyxNQUFNLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQztBQUNoRSxZQUFVLE1BQU0sTUFBTSxHQUFHLE9BQU8sS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQztBQUNoRTsiLCJuYW1lcyI6W119
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wb3BvdmVycy9wb3BvdmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBBIHNtYWxsIGZsb2F0aW5nIHBhbmVsIGFuY2hvcmVkIGF0IGEgcG9pbnQsIGNvbGxlY3RpbmcgYSB2YWx1ZSBhbmQgcmVzb2x2aW5nIGEgcHJvbWlzZSB3aXRoIGl0LlxuICpcbiAqIFRoaXMgaXMgdGhlIHBvcG92ZXIgY291bnRlcnBhcnQgb2YgYG1vZGFscy9tb2RhbC50c2A6IHRoZSBzYW1lIFwiYXNrIHRoZSB1c2VyIGZvciBhIHZhbHVlLCByZXNvbHZlIGFcbiAqIHByb21pc2VcIiBzaGFwZSwgZm9yIHRoZSBjYXNlcyBhIG1vZGFsIGNhbm5vdCBzZXJ2ZS4gQSBtb2RhbCBkaW1zIHRoZSBzY3JlZW4gYW5kIGlzIHBvc2l0aW9uZWQgYnlcbiAqIE9ic2lkaWFuLCBuZWl0aGVyIG9mIHdoaWNoIHN1aXRzIGFuIGVkaXRvciB0aGF0IG11c3QgYXBwZWFyICphdCogdGhlIHRoaW5nIGl0IGVkaXRzIOKAlCBhIGNsaWNrZWRcbiAqIGxpbmssIHRoZSBjYXJldCwgb3Igd2hlcmV2ZXIgYSBjb250ZXh0IG1lbnUgd2FzIHJhaXNlZC5cbiAqXG4gKiBUaGUgcGFuZWwgcmlkZXMgT2JzaWRpYW4ncyBgLm1lbnVgIGNsYXNzIGZvciBpdHMgYmFja2dyb3VuZCwgYm9yZGVyIGFuZCBzaGFkb3csIHNvIG9ubHkgbGF5b3V0IGlzXG4gKiBzdHlsZWQgYnkgdGhpcyBsaWJyYXJ5LlxuICovXG5cbmltcG9ydCB7IGdldERvY3VtZW50V2luZG93IH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2h0bWwtZWxlbWVudCc7XG5pbXBvcnQgeyBTZXR0aW5nIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFBvcG92ZXJBbmNob3IgfSBmcm9tICcuL3BvcG92ZXItYW5jaG9yLnRzJztcblxuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi9jc3MtY2xhc3MudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBhZGRQbHVnaW5Dc3NDbGFzc2VzIH0gZnJvbSAnLi4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcblxuLyoqXG4gKiBUaGUgZ2FwIGluIHBpeGVscyBiZXR3ZWVuIHRoZSBhbmNob3IgYW5kIHRoZSBwb3BvdmVyLlxuICovXG5jb25zdCBBTkNIT1JfR0FQX0lOX1BJWEVMUyA9IDQ7XG5cbi8qKlxuICogVGhlIG1pbmltdW0gZ2FwIGluIHBpeGVscyB0aGUgcG9wb3ZlciBrZWVwcyBmcm9tIHRoZSBlZGdlcyBvZiB0aGUgd2luZG93IHdoZW4gaXQgaGFzIHRvIGJlIGNsYW1wZWRcbiAqIGJhY2sgaW50byB2aWV3LlxuICovXG5jb25zdCBWSUVXUE9SVF9NQVJHSU5fSU5fUElYRUxTID0gODtcblxuLyoqXG4gKiBSZWFkcyB0aGUgdmFsdWUgdGhlIHBvcG92ZXIgcmVzb2x2ZXMgd2l0aCB3aGVuIGl0IGlzIGNvbmZpcm1lZC5cbiAqXG4gKiBAdHlwZVBhcmFtIFZhbHVlIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIHJlc29sdmVkIGJ5IHRoZSBwb3BvdmVyLlxuICogQHJldHVybnMgVGhlIGN1cnJlbnQgdmFsdWUuXG4gKi9cbmV4cG9ydCB0eXBlIFBvcG92ZXJWYWx1ZUdldHRlcjxWYWx1ZT4gPSAoKSA9PiBWYWx1ZTtcblxuLyoqXG4gKiBUaGUgdG9vbHMgaGFuZGVkIHRvIHtAbGluayBTaG93UG9wb3ZlclBhcmFtcy5idWlsZH0gZm9yIHBvcHVsYXRpbmcgYSBwb3BvdmVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNob3dQb3BvdmVyQnVpbGRQYXJhbXMge1xuICAvKipcbiAgICogRGlzbWlzc2VzIHRoZSBwb3BvdmVyLCByZXNvbHZpbmcgaXQgd2l0aCBgbnVsbGAsIGFzIHRoZSBDYW5jZWwgYnV0dG9uIGRvZXMuXG4gICAqL1xuICByZWFkb25seSBjYW5jZWw6ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENvbmZpcm1zIHRoZSBwb3BvdmVyLCByZXNvbHZpbmcgaXQgd2l0aCB0aGUgYnVpbHQgdmFsdWUsIGFzIHRoZSBPSyBidXR0b24gZG9lcy5cbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpcm06ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBlbGVtZW50IHRvIGFkZCB0aGUgcG9wb3ZlcidzIGNvbnRlbnQgdG8uIFRoZSBPSyBhbmQgQ2FuY2VsIGJ1dHRvbnMgYXJlIGFwcGVuZGVkIGFmdGVyIGl0LlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGVudEVsOiBIVE1MRWxlbWVudDtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc2hvd1BvcG92ZXJ9LlxuICpcbiAqIEB0eXBlUGFyYW0gVmFsdWUgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgcmVzb2x2ZWQgYnkgdGhlIHBvcG92ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2hvd1BvcG92ZXJQYXJhbXM8VmFsdWU+IHtcbiAgLyoqXG4gICAqIFdoZXJlIHRvIHBsYWNlIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgYW5jaG9yOiBQb3BvdmVyQW5jaG9yO1xuXG4gIC8qKlxuICAgKiBQb3B1bGF0ZXMgdGhlIHBvcG92ZXIncyBjb250ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHRvb2xzIGZvciBwb3B1bGF0aW5nIHRoZSBwb3BvdmVyLlxuICAgKiBAcmV0dXJucyBBIGdldHRlciByZWFkIHdoZW4gdGhlIHBvcG92ZXIgaXMgY29uZmlybWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGQ6IChwYXJhbXM6IFNob3dQb3BvdmVyQnVpbGRQYXJhbXMpID0+IFBvcG92ZXJWYWx1ZUdldHRlcjxWYWx1ZT47XG5cbiAgLyoqXG4gICAqIEEgdGV4dCBmb3IgdGhlIFwiQ2FuY2VsXCIgYnV0dG9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY2FuY2VsQnV0dG9uVGV4dD86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBDU1MgY2xhc3NlcyB0byBhcHBseSB0byB0aGUgcG9wb3Zlci5cbiAgICovXG4gIHJlYWRvbmx5IGNzc0NsYXNzZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQSB0ZXh0IGZvciB0aGUgXCJPS1wiIGJ1dHRvbi5cbiAgICovXG4gIHJlYWRvbmx5IG9rQnV0dG9uVGV4dD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEaXNwbGF5cyBhIHBvcG92ZXIgYXQgdGhlIGdpdmVuIGFuY2hvciBhbmQgcmVzb2x2ZXMgd2l0aCB0aGUgYnVpbHQgdmFsdWUsIG9yIGBudWxsYCBpZiBpdCB3YXNcbiAqIGRpc21pc3NlZCB3aXRob3V0IGNvbmZpcm1pbmcuXG4gKlxuICogQHR5cGVQYXJhbSBWYWx1ZSAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSByZXNvbHZlZCBieSB0aGUgcG9wb3Zlci5cbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHBvcG92ZXIuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGJ1aWx0IHZhbHVlLCBvciBgbnVsbGAgaWYgZGlzbWlzc2VkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hvd1BvcG92ZXI8VmFsdWU+KHBhcmFtczogU2hvd1BvcG92ZXJQYXJhbXM8VmFsdWU+KTogUHJvbWlzZTxudWxsIHwgVmFsdWU+IHtcbiAgY29uc3Qge1xuICAgIGFuY2hvcixcbiAgICBidWlsZCxcbiAgICBjYW5jZWxCdXR0b25UZXh0LFxuICAgIGNzc0NsYXNzZXMsXG4gICAgb2tCdXR0b25UZXh0XG4gIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgZG9jID0gYW5jaG9yLmRvYztcbiAgY29uc3Qgd2luID0gZ2V0RG9jdW1lbnRXaW5kb3coZG9jKTtcbiAgY29uc3QgcG9wb3ZlckVsID0gZG9jLmJvZHkuY3JlYXRlRGl2KHsgY2xzOiAnbWVudScgfSk7XG4gIGFkZFBsdWdpbkNzc0NsYXNzZXMocG9wb3ZlckVsLCBbQ3NzQ2xhc3MuUG9wb3ZlciwgLi4uY3NzQ2xhc3NlcyA/PyBbXV0pO1xuXG4gIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxudWxsIHwgVmFsdWU+KChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3Qgc3RhdGUgPSB7IGlzQ2xvc2VkOiBmYWxzZSB9O1xuXG4gICAgZnVuY3Rpb24gY2xvc2UocmVzdWx0OiBudWxsIHwgVmFsdWUpOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZS5pc0Nsb3NlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzdGF0ZS5pc0Nsb3NlZCA9IHRydWU7XG4gICAgICBkb2MucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBoYW5kbGVQb2ludGVyRG93biwgdHJ1ZSk7XG4gICAgICBwb3BvdmVyRWwucmVtb3ZlKCk7XG4gICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlQ2FuY2VsKCk6IHZvaWQge1xuICAgICAgY2xvc2UobnVsbCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlT2soKTogdm9pZCB7XG4gICAgICBjbG9zZShnZXRWYWx1ZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEaXNtaXNzZXMgdGhlIHBvcG92ZXIgd2hlbiB0aGUgbmV4dCBnZXN0dXJlIHN0YXJ0cyBvdXRzaWRlIGl0LiBMaXN0ZW5pbmcgZm9yIGBwb2ludGVyZG93bmBcbiAgICAgKiByYXRoZXIgdGhhbiBgY2xpY2tgIG1hdHRlcnM6IGEgcG9wb3ZlciBpcyB0eXBpY2FsbHkgb3BlbmVkIGZyb20gYSBgY2xpY2tgIGhhbmRsZXIsIGFuZCB0aGUgdmVyeVxuICAgICAqIHNhbWUgY2xpY2sgd291bGQgb3RoZXJ3aXNlIHJlYWNoIHRoaXMgbGlzdGVuZXIgYW5kIGNsb3NlIHRoZSBwb3BvdmVyIHRoZSBpbnN0YW50IGl0IGFwcGVhcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gJGV2ZW50IC0gVGhlIHBvaW50ZXIgZXZlbnQuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaGFuZGxlUG9pbnRlckRvd24oJGV2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICAgIGlmICgkZXZlbnQuY29tcG9zZWRQYXRoKCkuaW5jbHVkZXMocG9wb3ZlckVsKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjbG9zZShudWxsKTtcbiAgICB9XG5cbiAgICBjb25zdCBnZXRWYWx1ZSA9IGJ1aWxkKHtcbiAgICAgIGNhbmNlbDogaGFuZGxlQ2FuY2VsLFxuICAgICAgY29uZmlybTogaGFuZGxlT2ssXG4gICAgICBjb250ZW50RWw6IHBvcG92ZXJFbFxuICAgIH0pO1xuXG4gICAgcG9wb3ZlckVsLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoJGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICBpZiAoJGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaGFuZGxlT2soKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoJGV2ZW50LmtleSAhPT0gJ0VzY2FwZScpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGhhbmRsZUNhbmNlbCgpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgYnV0dG9uc1NldHRpbmcgPSBuZXcgU2V0dGluZyhwb3BvdmVyRWwpO1xuICAgIGJ1dHRvbnNTZXR0aW5nLmFkZEJ1dHRvbigoYnV0dG9uKSA9PiB7XG4gICAgICBidXR0b25cbiAgICAgICAgLnNldEJ1dHRvblRleHQob2tCdXR0b25UZXh0ID8/IHQoKCQpID0+ICQub2JzaWRpYW5MaWIuYnV0dG9ucy5vaykpXG4gICAgICAgIC5zZXRDdGEoKVxuICAgICAgICAuc2V0Q2xhc3MoQ3NzQ2xhc3MuT2tCdXR0b24pXG4gICAgICAgIC5vbkNsaWNrKGhhbmRsZU9rKTtcbiAgICB9KTtcbiAgICBidXR0b25zU2V0dGluZy5hZGRCdXR0b24oKGJ1dHRvbikgPT4ge1xuICAgICAgYnV0dG9uXG4gICAgICAgIC5zZXRCdXR0b25UZXh0KGNhbmNlbEJ1dHRvblRleHQgPz8gdCgoJCkgPT4gJC5vYnNpZGlhbkxpYi5idXR0b25zLmNhbmNlbCkpXG4gICAgICAgIC5zZXRDbGFzcyhDc3NDbGFzcy5DYW5jZWxCdXR0b24pXG4gICAgICAgIC5vbkNsaWNrKGhhbmRsZUNhbmNlbCk7XG4gICAgfSk7XG5cbiAgICBkb2MuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBoYW5kbGVQb2ludGVyRG93biwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgIHBvc2l0aW9uQXRBbmNob3IocG9wb3ZlckVsLCBhbmNob3IsIHdpbik7XG4gICAgZm9jdXNGaXJzdElucHV0KHBvcG92ZXJFbCk7XG4gIH0pO1xufVxuXG4vKipcbiAqIEZvY3VzZXMgYW5kIHNlbGVjdHMgdGhlIHBvcG92ZXIncyBmaXJzdCB0ZXh0IGlucHV0LCBzbyB0aGUgdXNlciBjYW4gdHlwZSBzdHJhaWdodCBhd2F5LlxuICpcbiAqIEBwYXJhbSBwb3BvdmVyRWwgLSBUaGUgcG9wb3ZlciB0byBmb2N1cyB3aXRoaW4uXG4gKi9cbmZ1bmN0aW9uIGZvY3VzRmlyc3RJbnB1dChwb3BvdmVyRWw6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gIGNvbnN0IGlucHV0RWwgPSBwb3BvdmVyRWwucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcbiAgaWYgKCFpbnB1dEVsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaW5wdXRFbC5mb2N1cygpO1xuICBpbnB1dEVsLnNlbGVjdCgpO1xufVxuXG4vKipcbiAqIFBsYWNlcyB0aGUgcG9wb3ZlciBqdXN0IGJlbG93IHRoZSBhbmNob3IsIHB1bGxpbmcgaXQgYmFjayBpbnNpZGUgdGhlIHdpbmRvdyB3aGVuIGl0IHdvdWxkIG90aGVyd2lzZVxuICogb3ZlcmZsb3cg4oCUIGFuIGFuY2hvciBuZWFyIHRoZSByaWdodCBvciBib3R0b20gZWRnZSBpcyBleGFjdGx5IHdoZXJlIGFuIHVuY2xhbXBlZCBwb3BvdmVyIHdvdWxkXG4gKiByZW5kZXIgb2ZmLXNjcmVlbi5cbiAqXG4gKiBAcGFyYW0gcG9wb3ZlckVsIC0gVGhlIHBvcG92ZXIgdG8gcG9zaXRpb24uXG4gKiBAcGFyYW0gYW5jaG9yIC0gV2hlcmUgdGhlIHBvcG92ZXIgYmVsb25ncy5cbiAqIEBwYXJhbSB3aW4gLSBUaGUgd2luZG93IHRoZSBhbmNob3IgbGl2ZXMgaW4gKGEgcG9wLW91dCB3aW5kb3cgaGFzIGl0cyBvd24pLlxuICovXG5mdW5jdGlvbiBwb3NpdGlvbkF0QW5jaG9yKHBvcG92ZXJFbDogSFRNTEVsZW1lbnQsIGFuY2hvcjogUG9wb3ZlckFuY2hvciwgd2luOiBXaW5kb3cpOiB2b2lkIHtcbiAgY29uc3QgbWF4TGVmdCA9IE1hdGgubWF4KFZJRVdQT1JUX01BUkdJTl9JTl9QSVhFTFMsIHdpbi5pbm5lcldpZHRoIC0gcG9wb3ZlckVsLm9mZnNldFdpZHRoIC0gVklFV1BPUlRfTUFSR0lOX0lOX1BJWEVMUyk7XG4gIGNvbnN0IG1heFRvcCA9IE1hdGgubWF4KFZJRVdQT1JUX01BUkdJTl9JTl9QSVhFTFMsIHdpbi5pbm5lckhlaWdodCAtIHBvcG92ZXJFbC5vZmZzZXRIZWlnaHQgLSBWSUVXUE9SVF9NQVJHSU5fSU5fUElYRUxTKTtcblxuICBjb25zdCBsZWZ0ID0gTWF0aC5taW4oTWF0aC5tYXgoYW5jaG9yLmxlZnQsIFZJRVdQT1JUX01BUkdJTl9JTl9QSVhFTFMpLCBtYXhMZWZ0KTtcbiAgY29uc3QgdG9wID0gTWF0aC5taW4oTWF0aC5tYXgoYW5jaG9yLmJvdHRvbSArIEFOQ0hPUl9HQVBfSU5fUElYRUxTLCBWSUVXUE9SVF9NQVJHSU5fSU5fUElYRUxTKSwgbWF4VG9wKTtcblxuICBwb3BvdmVyRWwuc3R5bGUubGVmdCA9IGAke1N0cmluZyhNYXRoLnJvdW5kKGxlZnQgKyB3aW4uc2Nyb2xsWCkpfXB4YDtcbiAgcG9wb3ZlckVsLnN0eWxlLnRvcCA9IGAke1N0cmluZyhNYXRoLnJvdW5kKHRvcCArIHdpbi5zY3JvbGxZKSl9cHhgO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWNBLFNBQVMseUJBQXlCO0FBQ2xDLFNBQVMsZUFBZTtBQUl4QixTQUFTLGdCQUFnQjtBQUN6QixTQUFTLFNBQVM7QUFDbEIsU0FBUywyQkFBMkI7QUFLcEMsTUFBTSx1QkFBdUI7QUFNN0IsTUFBTSw0QkFBNEI7QUF5RWxDLGVBQXNCLFlBQW1CLFFBQXlEO0FBQ2hHLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUVKLFFBQU0sTUFBTSxPQUFPO0FBQ25CLFFBQU0sTUFBTSxrQkFBa0IsR0FBRztBQUNqQyxRQUFNLFlBQVksSUFBSSxLQUFLLFVBQVUsRUFBRSxLQUFLLE9BQU8sQ0FBQztBQUNwRCxzQkFBb0IsV0FBVyxDQUFDLFNBQVMsU0FBUyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUM7QUFFdEUsU0FBTyxNQUFNLElBQUksUUFBc0IsQ0FBQyxZQUFZO0FBQ2xELFVBQU0sUUFBUSxFQUFFLFVBQVUsTUFBTTtBQUVoQyxhQUFTLE1BQU0sUUFBNEI7QUFDekMsVUFBSSxNQUFNLFVBQVU7QUFDbEI7QUFBQSxNQUNGO0FBQ0EsWUFBTSxXQUFXO0FBQ2pCLFVBQUksb0JBQW9CLGVBQWUsbUJBQW1CLElBQUk7QUFDOUQsZ0JBQVUsT0FBTztBQUNqQixjQUFRLE1BQU07QUFBQSxJQUNoQjtBQUVBLGFBQVMsZUFBcUI7QUFDNUIsWUFBTSxJQUFJO0FBQUEsSUFDWjtBQUVBLGFBQVMsV0FBaUI7QUFDeEIsWUFBTSxTQUFTLENBQUM7QUFBQSxJQUNsQjtBQVNBLGFBQVMsa0JBQWtCLFFBQTRCO0FBQ3JELFVBQUksT0FBTyxhQUFhLEVBQUUsU0FBUyxTQUFTLEdBQUc7QUFDN0M7QUFBQSxNQUNGO0FBQ0EsWUFBTSxJQUFJO0FBQUEsSUFDWjtBQUVBLFVBQU0sV0FBVyxNQUFNO0FBQUEsTUFDckIsUUFBUTtBQUFBLE1BQ1IsU0FBUztBQUFBLE1BQ1QsV0FBVztBQUFBLElBQ2IsQ0FBQztBQUVELGNBQVUsaUJBQWlCLFdBQVcsQ0FBQyxXQUEwQjtBQUMvRCxVQUFJLE9BQU8sUUFBUSxTQUFTO0FBQzFCLGVBQU8sZUFBZTtBQUN0QixpQkFBUztBQUNUO0FBQUEsTUFDRjtBQUVBLFVBQUksT0FBTyxRQUFRLFVBQVU7QUFDM0I7QUFBQSxNQUNGO0FBRUEsYUFBTyxlQUFlO0FBQ3RCLG1CQUFhO0FBQUEsSUFDZixDQUFDO0FBRUQsVUFBTSxpQkFBaUIsSUFBSSxRQUFRLFNBQVM7QUFDNUMsbUJBQWUsVUFBVSxDQUFDLFdBQVc7QUFDbkMsYUFDRyxjQUFjLGdCQUFnQixFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksUUFBUSxFQUFFLENBQUMsRUFDaEUsT0FBTyxFQUNQLFNBQVMsU0FBUyxRQUFRLEVBQzFCLFFBQVEsUUFBUTtBQUFBLElBQ3JCLENBQUM7QUFDRCxtQkFBZSxVQUFVLENBQUMsV0FBVztBQUNuQyxhQUNHLGNBQWMsb0JBQW9CLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxRQUFRLE1BQU0sQ0FBQyxFQUN4RSxTQUFTLFNBQVMsWUFBWSxFQUM5QixRQUFRLFlBQVk7QUFBQSxJQUN6QixDQUFDO0FBRUQsUUFBSSxpQkFBaUIsZUFBZSxtQkFBbUIsRUFBRSxTQUFTLEtBQUssQ0FBQztBQUN4RSxxQkFBaUIsV0FBVyxRQUFRLEdBQUc7QUFDdkMsb0JBQWdCLFNBQVM7QUFBQSxFQUMzQixDQUFDO0FBQ0g7QUFPQSxTQUFTLGdCQUFnQixXQUE4QjtBQUNyRCxRQUFNLFVBQVUsVUFBVSxjQUFjLE9BQU87QUFDL0MsTUFBSSxDQUFDLFNBQVM7QUFDWjtBQUFBLEVBQ0Y7QUFFQSxVQUFRLE1BQU07QUFDZCxVQUFRLE9BQU87QUFDakI7QUFXQSxTQUFTLGlCQUFpQixXQUF3QixRQUF1QixLQUFtQjtBQUMxRixRQUFNLFVBQVUsS0FBSyxJQUFJLDJCQUEyQixJQUFJLGFBQWEsVUFBVSxjQUFjLHlCQUF5QjtBQUN0SCxRQUFNLFNBQVMsS0FBSyxJQUFJLDJCQUEyQixJQUFJLGNBQWMsVUFBVSxlQUFlLHlCQUF5QjtBQUV2SCxRQUFNLE9BQU8sS0FBSyxJQUFJLEtBQUssSUFBSSxPQUFPLE1BQU0seUJBQXlCLEdBQUcsT0FBTztBQUMvRSxRQUFNLE1BQU0sS0FBSyxJQUFJLEtBQUssSUFBSSxPQUFPLFNBQVMsc0JBQXNCLHlCQUF5QixHQUFHLE1BQU07QUFFdEcsWUFBVSxNQUFNLE9BQU8sR0FBRyxPQUFPLEtBQUssTUFBTSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUM7QUFDaEUsWUFBVSxNQUFNLE1BQU0sR0FBRyxPQUFPLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxDQUFDLENBQUM7QUFDaEU7IiwibmFtZXMiOltdfQ==
|
package/dist/lib/esm/queue.mjs
CHANGED
|
@@ -46,7 +46,7 @@ import {
|
|
|
46
46
|
import { runWithTimeoutNotice } from "./async-with-notice.mjs";
|
|
47
47
|
import { t } from "./i18n/i18n.mjs";
|
|
48
48
|
import { invokeAsyncAndLog } from "./logger.mjs";
|
|
49
|
-
import {
|
|
49
|
+
import { getObsidianLibState } from "./obsidian-lib-state.mjs";
|
|
50
50
|
function addToQueue(params) {
|
|
51
51
|
const stackTrace = params.stackTrace ?? getStackTrace(1);
|
|
52
52
|
invokeAsyncSafely(() => addToQueueAndWait(params), stackTrace);
|
|
@@ -73,11 +73,11 @@ async function addToQueueAndWait(params) {
|
|
|
73
73
|
async function flushQueue() {
|
|
74
74
|
await addToQueueAndWait({
|
|
75
75
|
operationFunction: noop,
|
|
76
|
-
operationName: t(($) => $.
|
|
76
|
+
operationName: t(($) => $.obsidianLib.queue.flushQueue)
|
|
77
77
|
});
|
|
78
78
|
}
|
|
79
79
|
function getQueue() {
|
|
80
|
-
return
|
|
80
|
+
return getObsidianLibState("queue", { items: [], promise: noopAsync() });
|
|
81
81
|
}
|
|
82
82
|
async function processNextQueueItem() {
|
|
83
83
|
const queue = getQueue().value;
|
|
@@ -110,4 +110,4 @@ export {
|
|
|
110
110
|
addToQueueAndWait,
|
|
111
111
|
flushQueue
|
|
112
112
|
};
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWV1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGVucXVldWluZyBhbmQgcHJvY2Vzc2luZyBmdW5jdGlvbnMgaW4gT2JzaWRpYW4uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBWYWx1ZVdyYXBwZXIgfSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvdmFsdWUtd3JhcHBlcic7XG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQge1xuICBhYm9ydFNpZ25hbEFueSxcbiAgYWJvcnRTaWduYWxOZXZlclxufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvYWJvcnQtY29udHJvbGxlcic7XG5pbXBvcnQge1xuICBhZGRFcnJvckhhbmRsZXIsXG4gIGludm9rZUFzeW5jU2FmZWx5XG59IGZyb20gJ0BtbmFvdW1vdi90eXBlc2NyaXB0LWxpYi9hc3luYyc7XG5pbXBvcnQgeyBnZXRTdGFja1RyYWNlIH0gZnJvbSAnQG1uYW91bW92L3R5cGVzY3JpcHQtbGliL2Vycm9yJztcbmltcG9ydCB7XG4gIG5vb3AsXG4gIG5vb3BBc3luY1xufSBmcm9tICdAbW5hb3Vtb3YvdHlwZXNjcmlwdC1saWIvZnVuY3Rpb24nO1xuXG5pbXBvcnQgeyBydW5XaXRoVGltZW91dE5vdGljZSB9IGZyb20gJy4vYXN5bmMtd2l0aC1ub3RpY2UudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4vaTE4bi9pMThuLnRzJztcbmltcG9ydCB7IGludm9rZUFzeW5jQW5kTG9nIH0gZnJvbSAnLi9sb2dnZXIudHMnO1xuaW1wb3J0IHsgZ2V0T2JzaWRpYW5MaWJTdGF0ZSB9IGZyb20gJy4vb2JzaWRpYW4tbGliLXN0YXRlLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUge0BsaW5rIGFkZFRvUXVldWVBbmRXYWl0fSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRUb1F1ZXVlQW5kV2FpdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBhYm9ydCBzaWduYWwuXG4gICAqL1xuICByZWFkb25seSBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsO1xuXG4gIC8qKlxuICAgKiBUaGUgZnVuY3Rpb24gdG8gYWRkLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uRnVuY3Rpb246IChhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwpID0+IFByb21pc2FibGU8dm9pZD47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG5hbWUgb2YgdGhlIG9wZXJhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgYCcnYFxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IGEgdGltZW91dCBub3RpY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IGB0cnVlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBzdGFjayB0cmFjZS5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrVHJhY2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYDYwMDAwYFxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHRoZSB7QGxpbmsgYWRkVG9RdWV1ZX0gZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkVG9RdWV1ZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBhYm9ydCBzaWduYWwuXG4gICAqL1xuICByZWFkb25seSBhYm9ydFNpZ25hbD86IEFib3J0U2lnbmFsO1xuXG4gIC8qKlxuICAgKiBUaGUgZnVuY3Rpb24gdG8gYWRkLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uRnVuY3Rpb246IChhYm9ydFNpZ25hbDogQWJvcnRTaWduYWwpID0+IFByb21pc2FibGU8dm9pZD47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG5hbWUgb2YgdGhlIG9wZXJhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgYCcnYFxuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0aW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IGEgdGltZW91dCBub3RpY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IGB0cnVlYFxuICAgKi9cbiAgcmVhZG9ubHkgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBzdGFjayB0cmFjZS5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrVHJhY2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYDYwMDAwYFxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgUXVldWUge1xuICBpdGVtczogUXVldWVJdGVtW107XG4gIHByb21pc2U6IFByb21pc2U8dm9pZD47XG59XG5cbmludGVyZmFjZSBRdWV1ZUl0ZW0ge1xuICBhYm9ydFNpZ25hbDogQWJvcnRTaWduYWw7XG4gIG9wZXJhdGlvbkZ1bmN0aW9uOiAoYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKSA9PiBQcm9taXNhYmxlPHZvaWQ+O1xuICBvcGVyYXRpb25OYW1lOiBzdHJpbmc7XG4gIHNob3VsZFNob3dUaW1lb3V0Tm90aWNlOiBib29sZWFuO1xuICBzdGFja1RyYWNlOiBzdHJpbmc7XG4gIHRpbWVvdXRJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xufVxuXG4vKipcbiAqIEFkZHMgYW4gYXN5bmNocm9ub3VzIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIGFmdGVyIHRoZSBwcmV2aW91cyBmdW5jdGlvbiBjb21wbGV0ZXMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRUb1F1ZXVlKHBhcmFtczogQWRkVG9RdWV1ZVBhcmFtcyk6IHZvaWQge1xuICBjb25zdCBzdGFja1RyYWNlID0gcGFyYW1zLnN0YWNrVHJhY2UgPz8gZ2V0U3RhY2tUcmFjZSgxKTtcbiAgaW52b2tlQXN5bmNTYWZlbHkoKCkgPT4gYWRkVG9RdWV1ZUFuZFdhaXQocGFyYW1zKSwgc3RhY2tUcmFjZSk7XG59XG5cbi8qKlxuICogQWRkcyBhbiBhc3luY2hyb25vdXMgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQgYWZ0ZXIgdGhlIHByZXZpb3VzIGZ1bmN0aW9uIGNvbXBsZXRlcyBhbmQgcmV0dXJucyBhIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGZ1bmN0aW9uIGNvbXBsZXRlcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFkZFRvUXVldWVBbmRXYWl0KHBhcmFtczogQWRkVG9RdWV1ZUFuZFdhaXRQYXJhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgYWJvcnRTaWduYWwgPSBwYXJhbXMuYWJvcnRTaWduYWwgPz8gYWJvcnRTaWduYWxOZXZlcigpO1xuICBhYm9ydFNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuXG4gIGNvbnN0IERFRkFVTFRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMgPSA2MF8wMDA7XG4gIGNvbnN0IHRpbWVvdXRJbk1pbGxpc2Vjb25kcyA9IHBhcmFtcy50aW1lb3V0SW5NaWxsaXNlY29uZHMgPz8gREVGQVVMVF9USU1FT1VUX0lOX01JTExJU0VDT05EUztcbiAgY29uc3Qgc3RhY2tUcmFjZSA9IHBhcmFtcy5zdGFja1RyYWNlID8/IGdldFN0YWNrVHJhY2UoMSk7XG4gIGNvbnN0IG9wZXJhdGlvbk5hbWUgPSBwYXJhbXMub3BlcmF0aW9uTmFtZSA/PyAnJztcbiAgY29uc3QgcXVldWUgPSBnZXRRdWV1ZSgpLnZhbHVlO1xuICBxdWV1ZS5pdGVtcy5wdXNoKHtcbiAgICBhYm9ydFNpZ25hbCxcbiAgICBvcGVyYXRpb25GdW5jdGlvbjogcGFyYW1zLm9wZXJhdGlvbkZ1bmN0aW9uLFxuICAgIG9wZXJhdGlvbk5hbWUsXG4gICAgc2hvdWxkU2hvd1RpbWVvdXROb3RpY2U6IHBhcmFtcy5zaG91bGRTaG93VGltZW91dE5vdGljZSA/PyB0cnVlLFxuICAgIHN0YWNrVHJhY2UsXG4gICAgdGltZW91dEluTWlsbGlzZWNvbmRzXG4gIH0pO1xuICBxdWV1ZS5wcm9taXNlID0gcXVldWUucHJvbWlzZS50aGVuKCgpID0+IHByb2Nlc3NOZXh0UXVldWVJdGVtKCkpO1xuICBhd2FpdCBxdWV1ZS5wcm9taXNlO1xufVxuXG4vKipcbiAqIEZsdXNoZXMgdGhlIHF1ZXVlO1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmx1c2hRdWV1ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgYWRkVG9RdWV1ZUFuZFdhaXQoe1xuICAgIG9wZXJhdGlvbkZ1bmN0aW9uOiBub29wLFxuICAgIG9wZXJhdGlvbk5hbWU6IHQoKCQpID0+ICQub2JzaWRpYW5MaWIucXVldWUuZmx1c2hRdWV1ZSlcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldFF1ZXVlKCk6IFZhbHVlV3JhcHBlcjxRdWV1ZT4ge1xuICByZXR1cm4gZ2V0T2JzaWRpYW5MaWJTdGF0ZSgncXVldWUnLCB7IGl0ZW1zOiBbXSwgcHJvbWlzZTogbm9vcEFzeW5jKCkgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NOZXh0UXVldWVJdGVtKCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBxdWV1ZSA9IGdldFF1ZXVlKCkudmFsdWU7XG4gIGNvbnN0IGl0ZW0gPSBxdWV1ZS5pdGVtc1swXTtcbiAgLyogdjggaWdub3JlIHN0YXJ0IC0tIERlZmVuc2l2ZSBjaGVjazsgcHJvY2Vzc05leHRRdWV1ZUl0ZW0gaXMgb25seSBjYWxsZWQgYWZ0ZXIgYW4gaXRlbSBpcyBwdXNoZWQuICovXG4gIGlmICghaXRlbSkge1xuICAgIHJldHVybjtcbiAgfVxuICAvKiB2OCBpZ25vcmUgc3RvcCAqL1xuXG4gIGF3YWl0IGFkZEVycm9ySGFuZGxlcigoKSA9PlxuICAgIHJ1bldpdGhUaW1lb3V0Tm90aWNlKHtcbiAgICAgIGNvbnRleHQ6IHsgcXVldWVkRnVuY3Rpb246IGl0ZW0ub3BlcmF0aW9uRnVuY3Rpb24gfSxcbiAgICAgIGFzeW5jIG9wZXJhdGlvbkZ1bmN0aW9uKGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCBpbnZva2VBc3luY0FuZExvZyh7XG4gICAgICAgICAgJGZ1bmN0aW9uOiBpdGVtLm9wZXJhdGlvbkZ1bmN0aW9uLFxuICAgICAgICAgIGFib3J0U2lnbmFsOiBhYm9ydFNpZ25hbEFueShhYm9ydFNpZ25hbCwgaXRlbS5hYm9ydFNpZ25hbCksXG4gICAgICAgICAgc3RhY2tUcmFjZTogaXRlbS5zdGFja1RyYWNlLFxuICAgICAgICAgIHRpdGxlOiBpdGVtLm9wZXJhdGlvbk5hbWUgfHwgcHJvY2Vzc05leHRRdWV1ZUl0ZW0ubmFtZVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBvcGVyYXRpb25OYW1lOiBpdGVtLm9wZXJhdGlvbk5hbWUsXG4gICAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQ6IG51bGwsXG4gICAgICBzaG91bGRTaG93VGltZW91dE5vdGljZTogaXRlbS5zaG91bGRTaG93VGltZW91dE5vdGljZSxcbiAgICAgIHN0YWNrVHJhY2U6IGl0ZW0uc3RhY2tUcmFjZSxcbiAgICAgIHRpbWVvdXRJbk1pbGxpc2Vjb25kczogaXRlbS50aW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgICB9KVxuICApO1xuICBxdWV1ZS5pdGVtcy5zaGlmdCgpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNBO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHFCQUFxQjtBQUM5QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUVQLFNBQVMsNEJBQTRCO0FBQ3JDLFNBQVMsU0FBUztBQUNsQixTQUFTLHlCQUF5QjtBQUNsQyxTQUFTLDJCQUEyQjtBQXVHN0IsU0FBUyxXQUFXLFFBQWdDO0FBQ3pELFFBQU0sYUFBYSxPQUFPLGNBQWMsY0FBYyxDQUFDO0FBQ3ZELG9CQUFrQixNQUFNLGtCQUFrQixNQUFNLEdBQUcsVUFBVTtBQUMvRDtBQU9BLGVBQXNCLGtCQUFrQixRQUFnRDtBQUN0RixRQUFNLGNBQWMsT0FBTyxlQUFlLGlCQUFpQjtBQUMzRCxjQUFZLGVBQWU7QUFFM0IsUUFBTSxrQ0FBa0M7QUFDeEMsUUFBTSx3QkFBd0IsT0FBTyx5QkFBeUI7QUFDOUQsUUFBTSxhQUFhLE9BQU8sY0FBYyxjQUFjLENBQUM7QUFDdkQsUUFBTSxnQkFBZ0IsT0FBTyxpQkFBaUI7QUFDOUMsUUFBTSxRQUFRLFNBQVMsRUFBRTtBQUN6QixRQUFNLE1BQU0sS0FBSztBQUFBLElBQ2Y7QUFBQSxJQUNBLG1CQUFtQixPQUFPO0FBQUEsSUFDMUI7QUFBQSxJQUNBLHlCQUF5QixPQUFPLDJCQUEyQjtBQUFBLElBQzNEO0FBQUEsSUFDQTtBQUFBLEVBQ0YsQ0FBQztBQUNELFFBQU0sVUFBVSxNQUFNLFFBQVEsS0FBSyxNQUFNLHFCQUFxQixDQUFDO0FBQy9ELFFBQU0sTUFBTTtBQUNkO0FBS0EsZUFBc0IsYUFBNEI7QUFDaEQsUUFBTSxrQkFBa0I7QUFBQSxJQUN0QixtQkFBbUI7QUFBQSxJQUNuQixlQUFlLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxNQUFNLFVBQVU7QUFBQSxFQUN4RCxDQUFDO0FBQ0g7QUFFQSxTQUFTLFdBQWdDO0FBQ3ZDLFNBQU8sb0JBQW9CLFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxTQUFTLFVBQVUsRUFBRSxDQUFDO0FBQ3pFO0FBRUEsZUFBZSx1QkFBc0M7QUFDbkQsUUFBTSxRQUFRLFNBQVMsRUFBRTtBQUN6QixRQUFNLE9BQU8sTUFBTSxNQUFNLENBQUM7QUFFMUIsTUFBSSxDQUFDLE1BQU07QUFDVDtBQUFBLEVBQ0Y7QUFHQSxRQUFNO0FBQUEsSUFBZ0IsTUFDcEIscUJBQXFCO0FBQUEsTUFDbkIsU0FBUyxFQUFFLGdCQUFnQixLQUFLLGtCQUFrQjtBQUFBLE1BQ2xELE1BQU0sa0JBQWtCLGFBQXlDO0FBQy9ELGNBQU0sa0JBQWtCO0FBQUEsVUFDdEIsV0FBVyxLQUFLO0FBQUEsVUFDaEIsYUFBYSxlQUFlLGFBQWEsS0FBSyxXQUFXO0FBQUEsVUFDekQsWUFBWSxLQUFLO0FBQUEsVUFDakIsT0FBTyxLQUFLLGlCQUFpQixxQkFBcUI7QUFBQSxRQUNwRCxDQUFDO0FBQUEsTUFDSDtBQUFBLE1BQ0EsZUFBZSxLQUFLO0FBQUEsTUFDcEIsdUJBQXVCO0FBQUEsTUFDdkIseUJBQXlCLEtBQUs7QUFBQSxNQUM5QixZQUFZLEtBQUs7QUFBQSxNQUNqQix1QkFBdUIsS0FBSztBQUFBLElBQzlCLENBQUM7QUFBQSxFQUNIO0FBQ0EsUUFBTSxNQUFNLE1BQU07QUFDcEI7IiwibmFtZXMiOltdfQ==
|
|
@@ -61,6 +61,18 @@ export interface OffsetRange {
|
|
|
61
61
|
*/
|
|
62
62
|
readonly startOffset: number;
|
|
63
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Gets the text of the one link a reference stands for.
|
|
66
|
+
*
|
|
67
|
+
* For most references that is {@link Reference.original}. A frontmatter link that carries offsets is the
|
|
68
|
+
* exception: its `original` is the WHOLE property value, which may hold several links, and `startOffset` /
|
|
69
|
+
* `endOffset` give this link's span in it. Anything that parses, compares or replaces the link as one link
|
|
70
|
+
* must read that span, never the whole value.
|
|
71
|
+
*
|
|
72
|
+
* @param reference - The reference.
|
|
73
|
+
* @returns The text of the link.
|
|
74
|
+
*/
|
|
75
|
+
export declare function getReferenceLinkText(reference: Reference): string;
|
|
64
76
|
/**
|
|
65
77
|
* Checks if a reference is a canvas file node reference.
|
|
66
78
|
*
|