obsidian-integration-testing 13.0.0 → 14.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/cjs/app-config.cjs +1 -1
- package/dist/lib/cjs/app-config.d.cts +25 -25
- package/dist/lib/cjs/connect-to-cdp.cjs +1 -1
- package/dist/lib/cjs/connect-to-cdp.d.cts +4 -4
- package/dist/lib/cjs/demo-vault-bootstrap.cjs +1 -1
- package/dist/lib/cjs/demo-vault-bootstrap.d.cts +10 -2
- package/dist/lib/cjs/device-settings.cjs +1 -1
- package/dist/lib/cjs/device-settings.d.cts +1 -1
- package/dist/lib/cjs/emulator-reaper.cjs +1 -1
- package/dist/lib/cjs/emulator-reaper.d.cts +2 -2
- package/dist/lib/cjs/enable-plugin.cjs +1 -1
- package/dist/lib/cjs/eval-in-obsidian.cjs +1 -1
- package/dist/lib/cjs/eval-in-obsidian.d.cts +12 -12
- package/dist/lib/cjs/generate-function-call.cjs +1 -1
- package/dist/lib/cjs/generate-function-call.d.cts +2 -2
- package/dist/lib/cjs/index.cjs +1 -1
- package/dist/lib/cjs/index.d.cts +4 -4
- package/dist/lib/cjs/jest/global-setup.cjs +1 -1
- package/dist/lib/cjs/jest/global-setup.d.cts +3 -3
- package/dist/lib/cjs/leftover-cleanup.cjs +1 -1
- package/dist/lib/cjs/leftover-cleanup.d.cts +2 -2
- package/dist/lib/cjs/library.cjs +1 -1
- package/dist/lib/cjs/namespace-bootstrap.cjs +1 -1
- package/dist/lib/cjs/obsidian-instance.cjs +1 -1
- package/dist/lib/cjs/obsidian-instance.d.cts +3 -3
- package/dist/lib/cjs/open-obsidian-settings-tab.cjs +3 -3
- package/dist/lib/cjs/open-obsidian-settings-tab.d.cts +4 -4
- package/dist/lib/cjs/parent-liveness.cjs +1 -1
- package/dist/lib/cjs/parent-liveness.d.cts +1 -1
- package/dist/lib/cjs/poll-in-obsidian.cjs +1 -1
- package/dist/lib/cjs/poll-in-obsidian.d.cts +3 -3
- package/dist/lib/cjs/poll-until.cjs +1 -1
- package/dist/lib/cjs/poll-until.d.cts +4 -4
- package/dist/lib/cjs/process-capture.cjs +1 -1
- package/dist/lib/cjs/process-capture.d.cts +3 -3
- package/dist/lib/cjs/run-version-matrix.cjs +1 -1
- package/dist/lib/cjs/run-version-matrix.d.cts +1 -1
- package/dist/lib/cjs/setup-lock.cjs +1 -1
- package/dist/lib/cjs/setup-lock.d.cts +1 -1
- package/dist/lib/cjs/sharp-loader.cjs +1 -1
- package/dist/lib/cjs/sharp-loader.d.cts +6 -6
- package/dist/lib/cjs/temporary-vault.cjs +2 -3
- package/dist/lib/cjs/temporary-vault.d.cts +4 -4
- package/dist/lib/cjs/transport-appium.cjs +1 -1
- package/dist/lib/cjs/transport-factory.cjs +1 -1
- package/dist/lib/cjs/transport.cjs +1 -1
- package/dist/lib/cjs/transport.d.cts +10 -10
- package/dist/lib/cjs/version-matrix.cjs +1 -1
- package/dist/lib/cjs/version-matrix.d.cts +2 -2
- package/dist/lib/cjs/vitest/global-setup.cjs +1 -1
- package/dist/lib/cjs/vitest/global-setup.d.cts +3 -3
- package/dist/lib/esm/app-config.d.mts +25 -25
- package/dist/lib/esm/app-config.mjs +1 -1
- package/dist/lib/esm/connect-to-cdp.d.mts +4 -4
- package/dist/lib/esm/connect-to-cdp.mjs +1 -1
- package/dist/lib/esm/demo-vault-bootstrap.d.mts +10 -2
- package/dist/lib/esm/demo-vault-bootstrap.mjs +1 -1
- package/dist/lib/esm/device-settings.d.mts +1 -1
- package/dist/lib/esm/device-settings.mjs +1 -1
- package/dist/lib/esm/emulator-reaper.d.mts +2 -2
- package/dist/lib/esm/emulator-reaper.mjs +1 -1
- package/dist/lib/esm/enable-plugin.mjs +1 -1
- package/dist/lib/esm/eval-in-obsidian.d.mts +12 -12
- package/dist/lib/esm/eval-in-obsidian.mjs +1 -1
- package/dist/lib/esm/generate-function-call.d.mts +2 -2
- package/dist/lib/esm/generate-function-call.mjs +1 -1
- package/dist/lib/esm/index.d.mts +4 -4
- package/dist/lib/esm/index.mjs +1 -1
- package/dist/lib/esm/jest/global-setup.d.mts +3 -3
- package/dist/lib/esm/jest/global-setup.mjs +1 -1
- package/dist/lib/esm/leftover-cleanup.d.mts +2 -2
- package/dist/lib/esm/leftover-cleanup.mjs +1 -1
- package/dist/lib/esm/library.mjs +1 -1
- package/dist/lib/esm/namespace-bootstrap.mjs +1 -1
- package/dist/lib/esm/obsidian-instance.d.mts +3 -3
- package/dist/lib/esm/obsidian-instance.mjs +1 -1
- package/dist/lib/esm/open-obsidian-settings-tab.d.mts +4 -4
- package/dist/lib/esm/open-obsidian-settings-tab.mjs +3 -3
- package/dist/lib/esm/parent-liveness.d.mts +1 -1
- package/dist/lib/esm/parent-liveness.mjs +1 -1
- package/dist/lib/esm/poll-in-obsidian.d.mts +3 -3
- package/dist/lib/esm/poll-in-obsidian.mjs +1 -1
- package/dist/lib/esm/poll-until.d.mts +4 -4
- package/dist/lib/esm/poll-until.mjs +1 -1
- package/dist/lib/esm/process-capture.d.mts +3 -3
- package/dist/lib/esm/process-capture.mjs +1 -1
- package/dist/lib/esm/run-version-matrix.d.mts +1 -1
- package/dist/lib/esm/run-version-matrix.mjs +1 -1
- package/dist/lib/esm/setup-lock.d.mts +1 -1
- package/dist/lib/esm/setup-lock.mjs +1 -1
- package/dist/lib/esm/sharp-loader.d.mts +6 -6
- package/dist/lib/esm/sharp-loader.mjs +1 -1
- package/dist/lib/esm/temporary-vault.d.mts +4 -4
- package/dist/lib/esm/temporary-vault.mjs +2 -3
- package/dist/lib/esm/transport-appium.mjs +1 -1
- package/dist/lib/esm/transport-factory.mjs +1 -1
- package/dist/lib/esm/transport.d.mts +10 -10
- package/dist/lib/esm/version-matrix.d.mts +2 -2
- package/dist/lib/esm/version-matrix.mjs +1 -1
- package/dist/lib/esm/vitest/global-setup.d.mts +3 -3
- package/dist/lib/esm/vitest/global-setup.mjs +1 -1
- package/package.json +1 -1
|
@@ -127,4 +127,4 @@ async function listenOnFreeLoopbackPort(server) {
|
|
|
127
127
|
buildParentLivenessWatchdogExpression,
|
|
128
128
|
startParentLivenessServer
|
|
129
129
|
});
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BhcmVudC1saXZlbmVzcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRpZXMgYSBoYXJuZXNzLW93bmVkIE9ic2lkaWFuIGluc3RhbmNlJ3MgbGlmZXRpbWUgdG8gdGhlIGhhcm5lc3MgcHJvY2VzcyB0aGF0XG4gKiBsYXVuY2hlZCBpdCwgaW4gdGhlIG9uZSBkaXJlY3Rpb24gdGhlIG9wZXJhdGluZyBzeXN0ZW0gd2lsbCBub3QgZG8gZm9yIHVzLlxuICpcbiAqIFRoZSBvd25lZCBpbnN0YW5jZSBpcyBhbHJlYWR5IGEgY2hpbGQgb2YgdGhlIGhhcm5lc3MgcHJvY2VzcywgYnV0IHRoYXQgbGlua1xuICogY2FycmllcyBubyBsaWZldGltZSBndWFyYW50ZWUuIFdpbmRvd3MgbmV2ZXIgcHJvcGFnYXRlcyBhIHBhcmVudCdzIGRlYXRoIHRvXG4gKiBpdHMgY2hpbGRyZW4gXHUyMDE0IGFuIG9ycGhhbiBzaW1wbHkga2VlcHMgcnVubmluZyB3aXRoIGEgc3RhbGUgcGFyZW50IGlkIFx1MjAxNCBhbmQgb25cbiAqIFBPU0lYIGEgYFNJR0tJTExgIGFpbWVkIGF0IGEgc2luZ2xlIHBpZCBuZXZlciBjYXNjYWRlcyBlaXRoZXIuIFRoZSBpbnN0YW5jZSBpc1xuICogYWRkaXRpb25hbGx5IHNwYXduZWQgYGRldGFjaGVkYCwgc28gaXQgaXMgbm90IGV2ZW4gaW4gdGhlIGhhcm5lc3MncyBwcm9jZXNzXG4gKiBncm91cC4gVGVhcmRvd24gdGhlcmVmb3JlIHJlbGllcyBlbnRpcmVseSBvbiB0aGUgaGFybmVzcyBydW5uaW5nIGl0cyBvd25cbiAqIGNsZWFudXAgKGBraWxsUHJvY2Vzc1RyZWVgIGZyb20gYW4gYGV4aXRgL3NpZ25hbCBoYW5kbGVyKSwgd2hpY2ggaXMgZXhhY3RseVxuICogd2hhdCBhIGBTSUdLSUxMYCwgYSBUYXNrIE1hbmFnZXIga2lsbCwgb3IgYW4gSURFIHN0b3AgYnV0dG9uIGRlbmllcyBpdC4gRXZlcnlcbiAqIHN1Y2gga2lsbCBsZWFrcyBhIGhpZGRlbiBPYnNpZGlhbiBob2xkaW5nIGEgdXNlci1kYXRhIGRpciBhbmQgYSBDRFAgcG9ydCwgYW5kXG4gKiB0aGV5IGFjY3VtdWxhdGU6IHRoZSBuZXh0IHJ1biBwaWNrcyBhIGZyZXNoIHRlbXAgZGlyIGFuZCBhIGZyZWUgcG9ydCwgc29cbiAqIG5vdGhpbmcgY29sbGlkZXMgYW5kIG5vdGhpbmcgY29tcGxhaW5zLlxuICpcbiAqIFRoZSBndWFyYW50ZWVkIGZpeCBpcyBhbiBPUyBwcmltaXRpdmUgXHUyMDE0IGEgV2luZG93cyBKb2IgT2JqZWN0IHdpdGhcbiAqIGBKT0JfT0JKRUNUX0xJTUlUX0tJTExfT05fSk9CX0NMT1NFYCwgb3IgYHByY3RsKFBSX1NFVF9QREVBVEhTSUcpYCBvbiBMaW51eCBcdTIwMTRcbiAqIGJ1dCBuZWl0aGVyIGlzIHJlYWNoYWJsZSBmcm9tIE5vZGUgd2l0aG91dCBhIG5hdGl2ZSBhZGRvbiwgd2hpY2ggaXMgZmFyIHRvb1xuICogaGVhdnkgYSBkZXBlbmRlbmN5IGZvciB0aGlzIGhhcm5lc3MuXG4gKlxuICogU28gd2UgdXNlIHRoZSBvbmUgY3Jvc3MtcGxhdGZvcm0gcmVzb3VyY2UgdGhlIGtlcm5lbCAqZG9lcyogcmVjbGFpbVxuICogZGV0ZXJtaW5pc3RpY2FsbHkgb24gcHJvY2VzcyBkZWF0aDogYSBzb2NrZXQuIFRoZSBoYXJuZXNzIGxpc3RlbnMgb24gYVxuICogbG9vcGJhY2sgcG9ydCBhbmQgdGhlIGluc3RhbmNlJ3MgcmVuZGVyZXIgY29ubmVjdHMgdG8gaXQuIEhvd2V2ZXIgdGhlIGhhcm5lc3NcbiAqIGRpZXMgXHUyMDE0IGNsZWFubHksIGBTSUdLSUxMYGVkLCBvciBjcmFzaGVkIFx1MjAxNCB0aGUga2VybmVsIGNsb3NlcyBpdHMgZW5kIGFuZCB0aGVcbiAqIHJlbmRlcmVyIHNlZXMgYGNsb3NlYC4gTm8gcG9sbGluZywgbm8gaGVhcnRiZWF0IGludGVydmFsLCBubyB0aW1lb3V0IHRvIHR1bmUuXG4gKlxuICogKipBIGNsb3NlIGlzIGEgcXVlc3Rpb24sIG5vdCBhIHZlcmRpY3QuKiogQSBzb2NrZXQgY2xvc2luZyBpcyBub3QgdGhlIHNhbWVcbiAqIGV2ZW50IGFzIGEgcHJvY2VzcyBkeWluZywgYW5kIHRyZWF0aW5nIHRoZW0gYXMgaWRlbnRpY2FsIGRlc3Ryb3llZCBoZWFsdGh5XG4gKiBpbnN0YW5jZXM6IG1lYXN1cmVkIG9uIDIwMjYtMDktMDUsIGEgcmVuZGVyZXIncyBpZGxlIGxpdmVuZXNzIHNvY2tldCBzZW50XG4gKiBgRklOYCBvbiBpdHMgb3duIFx1MjAxNCAzIG1pbiAxMyBzIGludG8gb25lIHJ1biwgMTEgbWluIDU2IHMgaW50byBhbm90aGVyIFx1MjAxNCB3aGlsZVxuICogdGhlIGhhcm5lc3Mgd2FzIHN0aWxsIGxpc3RlbmluZyBhbmQgd2VudCBvbiB3b3JraW5nIGZvciBhbm90aGVyIDE0IG1pbnV0ZXMuXG4gKiBFdmVyeSB0ZXN0IGZpbGUgc2NoZWR1bGVkIGFmdGVyIHRoZSBkZWF0aCB0aGVuIGZhaWxlZCBpbiB0ZW5zIG9mIG1pbGxpc2Vjb25kc1xuICogd2l0aCBgRUNPTk5SRUZVU0VEYCBvbiB0aGUgZGVhZCBDRFAgcG9ydDsgdGhlIHdvcnN0IHJ1biByZXBvcnRlZCAxNTYgc3VjaFxuICogZmFpbHVyZXMgYWNyb3NzIDIxIGZpbGVzLCBub3Qgb25lIG9mIHRoZW0gYSB0ZXN0IHJlc3VsdC4gV2h5IGFuIGlkbGUgdW5yZWYnZFxuICogbG9vcGJhY2sgc29ja2V0IGluIGFuIEVsZWN0cm9uIHJlbmRlcmVyIGRvZXMgdGhhdCBpcyBub3QgZXN0YWJsaXNoZWQsIGFuZCBkb2VzXG4gKiBub3QgbmVlZCB0byBiZTogdGhlIGxpZmV0aW1lcyB2YXJ5IHJ1biB0byBydW4sIHNvIG5vIGZpeGVkIHRpbWVvdXQgZXhwbGFpbnMgaXQuXG4gKlxuICogU28gdGhlIGBjbG9zZWAgaGFuZGxlciAqKnZlcmlmaWVzIGJlZm9yZSBkZXN0cm95aW5nKio6IGl0IHJlY29ubmVjdHMgdG8gdGhlXG4gKiBzYW1lIGxvb3BiYWNrIHBvcnQuIEEgaGFybmVzcyB0aGF0IGlzIGFsaXZlIGlzIHN0aWxsIGxpc3RlbmluZywgc28gdGhlXG4gKiByZWNvbm5lY3Qgc3VjY2VlZHMgYW5kIHRoZSBuZXcgc29ja2V0IGJlY29tZXMgdGhlIGxpdmVuZXNzIHRva2VuOyBvbmx5IHdoZW5cbiAqIG5vdGhpbmcgYW5zd2VycyBhZnRlciBhIGZldyB0cmllcyBcdTIwMTQgd2hhdCBhIGRlYWQgaGFybmVzcyBhY3R1YWxseSBsb29rcyBsaWtlIFx1MjAxNFxuICogaXMgdGhlIHdpbmRvdyBkZXN0cm95ZWQuIFRoZSBsZWFrIHRoZSB3YXRjaGRvZyBleGlzdHMgdG8gcHJldmVudCBpcyBzdGlsbFxuICogcHJldmVudGVkLCBhbmQgdGhlIG1lYXN1cmVkIHJlY292ZXJ5IGlzIDExIG1zLlxuICpcbiAqIEEgcmVjb25uZWN0IHJhdGhlciB0aGFuIGEgY2hlY2sgb24gdGhlIGhhcm5lc3MncyBwcm9jZXNzIGlkLCBiZWNhdXNlIGl0IHByb3Zlc1xuICogdGhlIHRoaW5nIHRoZSB3YXRjaGRvZyBhY3R1YWxseSBkZXBlbmRzIG9uIFx1MjAxNCB0aGUgbGl2ZW5lc3Mgc2VydmVyIHN0aWxsIHNlcnZpbmdcbiAqIFx1MjAxNCBhbmQgaXQgc3RheXMgY29ycmVjdCBhZ2FpbnN0IGEgKmJ1c3kqIGhhcm5lc3M6IHRoZSBrZXJuZWwgY29tcGxldGVzIGFcbiAqIGxvb3BiYWNrIGhhbmRzaGFrZSBvdXQgb2YgdGhlIGxpc3RlbiBiYWNrbG9nIGV2ZW4gd2hpbGUgTm9kZSdzIGV2ZW50IGxvb3AgaXNcbiAqIGJsb2NrZWQuIEl0cyBvbmUgcmVzaWR1YWwgYW1iaWd1aXR5IGlzIGFjY2VwdGVkOiBhIHJlY29ubmVjdCBwcm92ZXMgKnNvbWV0aGluZypcbiAqIGlzIGxpc3RlbmluZyBvbiB0aGF0IGVwaGVtZXJhbCBwb3J0LCBub3QgdGhhdCBpdCBpcyBvdXJzLiBUaGUgcHJvYmUgZm9sbG93cyB0aGVcbiAqIGNsb3NlIGJ5IG1pbGxpc2Vjb25kcywgc28gYW5vdGhlciBwcm9jZXNzIHdpbm5pbmcgdGhhdCBleGFjdCBwb3J0IGluIGJldHdlZW4gaXNcbiAqIG5vdCBhIHJpc2sgd29ydGggYSBoYW5kc2hha2UgcHJvdG9jb2wuXG4gKlxuICogRGVsaWJlcmF0ZWx5IGZhaWwtb3BlbjogdGhlIHJlbmRlcmVyIG9ubHkgYXJtcyB0aGUgZGVzdHJveSBwYXRoIGFmdGVyIHRoZVxuICogY29ubmVjdGlvbiBpcyBhY3R1YWxseSBlc3RhYmxpc2hlZC4gQSB3YXRjaGRvZyB0aGF0IGNhbm5vdCByZWFjaCB0aGUgaGFybmVzc1xuICogbGVhdmVzIHRoZSBpbnN0YW5jZSBydW5uaW5nIHJhdGhlciB0aGFuIGtpbGxpbmcgYSB3aW5kb3cgdGhlIGRldmVsb3BlciBpc1xuICogd29ya2luZyBpbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFNlcnZlciB9IGZyb20gJ25vZGU6bmV0JztcblxuaW1wb3J0IHsgY3JlYXRlU2VydmVyIH0gZnJvbSAnbm9kZTpuZXQnO1xuXG4vKipcbiAqIEEgbGlzdGVuaW5nIGxvb3BiYWNrIHNlcnZlciB3aG9zZSBhY2NlcHRlZCBjb25uZWN0aW9ucyBhY3QgYXMgbGl2ZW5lc3MgdG9rZW5zXG4gKiBmb3IgdGhlIGhhcm5lc3MgcHJvY2Vzcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJlbnRMaXZlbmVzc1NlcnZlciB7XG4gIC8qKlxuICAgKiBTdG9wcyBsaXN0ZW5pbmcuXG4gICAqXG4gICAqIE5vZGUga2VlcHMgYWxyZWFkeS1hY2NlcHRlZCBjb25uZWN0aW9ucyBhbGl2ZSBhY3Jvc3MgYSBgY2xvc2UoKWAsIHNvIHRoaXNcbiAgICogZG9lcyBub3QgYnkgaXRzZWxmIHNpZ25hbCB0aGUgcmVuZGVyZXIgXHUyMDE0IHRoZSBrZXJuZWwgcmVjbGFpbWluZyB0aGUgc29ja2V0IG9uXG4gICAqIHByb2Nlc3MgZGVhdGggaXMgd2hhdCBkb2VzLiBXaGF0IGl0IGRvZXMgZ3VhcmFudGVlIGlzIHRoYXQgYSB3YXRjaGRvZyBwcm9iZVxuICAgKiBhcnJpdmluZyBhZnRlcndhcmRzIGlzIHJlZnVzZWQsIHdoaWNoIGlzIHRoZSBhbnN3ZXIgYSB0b3JuLWRvd24gaGFybmVzc1xuICAgKiBzaG91bGQgZ2l2ZS5cbiAgICovXG4gIGNsb3NlKCk6IHZvaWQ7XG5cbiAgLyoqXG4gIFRoZSBsb29wYmFjayBwb3J0IHRoZSByZW5kZXJlciB3YXRjaGRvZyBzaG91bGQgY29ubmVjdCBiYWNrIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xufVxuXG4vKipcbiAqIExvb3BiYWNrIGhvc3QgdGhlIGxpdmVuZXNzIHNlcnZlciBiaW5kcyB0by4gTmV2ZXIgZXhwb3NlZCBvZmYtbWFjaGluZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBBUkVOVF9MSVZFTkVTU19IT1NUID0gJzEyNy4wLjAuMSc7XG5cbi8qKlxuICogSG93IG1hbnkgdGltZXMgdGhlIHdhdGNoZG9nIHByb2JlcyB0aGUgbG9vcGJhY2sgcG9ydCBiZWZvcmUgY29uY2x1ZGluZyB0aGVcbiAqIGhhcm5lc3MgaXMgZ29uZS5cbiAqXG4gKiBNb3JlIHRoYW4gb25lLCBzbyBhIHNpbmdsZSB0cmFuc2llbnQgcmVmdXNhbCBjYW5ub3QgY29zdCBhIHdob2xlIHJ1bjsgc21hbGwsXG4gKiBiZWNhdXNlIGV2ZXJ5IGF0dGVtcHQgaXMgYSBsb29wYmFjayBjb25uZWN0IHRoYXQgZWl0aGVyIGNvbXBsZXRlcyBvciBpc1xuICogcmVmdXNlZCBpbW1lZGlhdGVseSwgYW5kIGFuIGluc3RhbmNlIHdob3NlIGhhcm5lc3MgcmVhbGx5IGRpZCBkaWUgc2hvdWxkIG5vdFxuICogbGluZ2VyLlxuICovXG5jb25zdCBSRUNPTk5FQ1RfQVRURU1QVF9MSU1JVCA9IDM7XG5cbi8qKlxuICogSG93IGxvbmcgdGhlIHdhdGNoZG9nIHdhaXRzIGJldHdlZW4gcHJvYmVzLlxuICpcbiAqIExvbmcgZW5vdWdoIHRvIG91dGxhc3QgYSBtb21lbnRhcnkgcmVmdXNhbCwgc2hvcnQgZW5vdWdoIHRoYXQgZXhoYXVzdGluZyB0aGVcbiAqIHdob2xlIGJ1ZGdldCBzdGlsbCBkZXN0cm95cyBhbiBvcnBoYW5lZCB3aW5kb3cgaW5zaWRlIGEgc2Vjb25kLlxuICovXG5jb25zdCBSRUNPTk5FQ1RfREVMQVlfSU5fTUlMTElTRUNPTkRTID0gMjUwO1xuXG4vKipcbiAqIEJ1aWxkcyB0aGUgZXhwcmVzc2lvbiBldmFsdWF0ZWQgaW4gdGhlIG93bmVkIGluc3RhbmNlJ3MgcmVuZGVyZXIgdG8gYXJtIHRoZVxuICogd2F0Y2hkb2cuXG4gKlxuICogV3JpdHRlbiBpbiBFUzUgc3R5bGUgKGB2YXJgLCBgZnVuY3Rpb25gKSB3aXRoIG5vIG9wdGlvbmFsIGNoYWluaW5nLCBtYXRjaGluZ1xuICoge0BsaW5rIERJU01JU1NfVFJVU1RfRElBTE9HX0VYUFJ9OiB0aGUgc2FtZSBleHByZXNzaW9uIGhhcyB0byBwYXJzZSBvbiB0aGVcbiAqIENocm9taXVtIDgwLWVyYSByZW5kZXJlcnMgb2YgdGhlIG9sZGVzdCBzdXBwb3J0ZWQgT2JzaWRpYW4gdmVyc2lvbnMgKEwyNikuXG4gKlxuICogQXJtaW5nIGlzIGlkZW1wb3RlbnQgXHUyMDE0IGEgc2Vjb25kIGV2YWx1YXRpb24gZmluZHMgdGhlIHN0b3JlZCBzb2NrZXQgYW5kXG4gKiByZXR1cm5zIHdpdGhvdXQgb3BlbmluZyBhbm90aGVyIGNvbm5lY3Rpb24sIHNvIGEgcmV0cmllZCByZWFkaW5lc3MgcGFzcyBkb2VzXG4gKiBub3QgcGlsZSB1cCBzb2NrZXRzLlxuICpcbiAqIEBwYXJhbSBwb3J0IC0gVGhlIGxvb3BiYWNrIHBvcnQgcmV0dXJuZWQgYnkge0BsaW5rIHN0YXJ0UGFyZW50TGl2ZW5lc3NTZXJ2ZXJ9LlxuICogQHJldHVybnMgVGhlIGV4cHJlc3Npb24gdG8gZXZhbHVhdGUsIHlpZWxkaW5nIGAnYXJtZWQnYCwgYCdhbHJlYWR5LWFybWVkJ2AsIG9yIGAndW5hdmFpbGFibGUnYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUGFyZW50TGl2ZW5lc3NXYXRjaGRvZ0V4cHJlc3Npb24ocG9ydDogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAoZnVuY3Rpb24oKSB7XG4gIHZhciBGTEFHID0gJ19fb2JzaWRpYW5JbnRlZ3JhdGlvblRlc3RpbmdQYXJlbnRMaXZlbmVzcyc7XG4gIGlmICh3aW5kb3dbRkxBR10pIHsgcmV0dXJuICdhbHJlYWR5LWFybWVkJzsgfVxuICB2YXIgbmV0O1xuICB0cnkge1xuICAgIG5ldCA9IHdpbmRvdy5yZXF1aXJlKCdub2RlOm5ldCcpO1xuICB9IGNhdGNoIChub2RlUHJlZml4RXJyb3IpIHtcbiAgICB0cnkge1xuICAgICAgbmV0ID0gd2luZG93LnJlcXVpcmUoJ25ldCcpO1xuICAgIH0gY2F0Y2ggKGJhcmVQcmVmaXhFcnJvcikge1xuICAgICAgcmV0dXJuICd1bmF2YWlsYWJsZSc7XG4gICAgfVxuICB9XG4gIHZhciBQT1JUID0gJHtTdHJpbmcocG9ydCl9O1xuICB2YXIgSE9TVCA9ICcke1BBUkVOVF9MSVZFTkVTU19IT1NUfSc7XG4gIHZhciBSRUNPTk5FQ1RfQVRURU1QVF9MSU1JVCA9ICR7U3RyaW5nKFJFQ09OTkVDVF9BVFRFTVBUX0xJTUlUKX07XG4gIHZhciBSRUNPTk5FQ1RfREVMQVlfSU5fTUlMTElTRUNPTkRTID0gJHtTdHJpbmcoUkVDT05ORUNUX0RFTEFZX0lOX01JTExJU0VDT05EUyl9O1xuICB2YXIgc29ja2V0ID0gbmV0LmNvbm5lY3QoUE9SVCwgSE9TVCk7XG4gIHdpbmRvd1tGTEFHXSA9IHNvY2tldDtcbiAgdmFyIGlzQ29ubmVjdGVkID0gZmFsc2U7XG4gIHNvY2tldC5vbignY29ubmVjdCcsIGZ1bmN0aW9uKCkgeyBpc0Nvbm5lY3RlZCA9IHRydWU7IH0pO1xuICBzb2NrZXQub24oJ2Vycm9yJywgZnVuY3Rpb24oKSB7IC8qIFRoZSBjbG9zZSBoYW5kbGVyIGJlbG93IGRlY2lkZXMgd2hhdCBhbiBlcnJvciBtZWFudC4gKi8gfSk7XG4gIHNvY2tldC5vbignY2xvc2UnLCBmdW5jdGlvbigpIHtcbiAgICAvKiBGYWlsIG9wZW46IGEgY29ubmVjdGlvbiB0aGF0IG5ldmVyIGVzdGFibGlzaGVkIGlzIG5vIGV2aWRlbmNlIHRoZSBoYXJuZXNzIGRpZWQuICovXG4gICAgaWYgKCFpc0Nvbm5lY3RlZCkgeyByZXR1cm47IH1cbiAgICByZWNvbm5lY3QoMSk7XG4gIH0pO1xuICByZXR1cm4gJ2FybWVkJztcblxuICAvKiBBIGNsb3NlIG9ubHkgYXNrcyB0aGUgcXVlc3Rpb24uIFJlY29ubmVjdGluZyBhbnN3ZXJzIGl0LiAqL1xuICBmdW5jdGlvbiByZWNvbm5lY3QoYXR0ZW1wdCkge1xuICAgIHZhciBkaWRDb25uZWN0ID0gZmFsc2U7XG4gICAgdmFyIHByb2JlID0gbmV0LmNvbm5lY3QoUE9SVCwgSE9TVCk7XG4gICAgcHJvYmUub24oJ2Nvbm5lY3QnLCBmdW5jdGlvbigpIHtcbiAgICAgIC8qIFNvbWVvbmUgaXMgc3RpbGwgbGlzdGVuaW5nLCBzbyB0aGUgaGFybmVzcyBpcyBhbGl2ZS4gVGhpcyBpcyB0aGUgbmV3IHRva2VuLiAqL1xuICAgICAgZGlkQ29ubmVjdCA9IHRydWU7XG4gICAgICB3aW5kb3dbRkxBR10gPSBwcm9iZTtcbiAgICAgIHByb2JlLm9uKCdjbG9zZScsIGZ1bmN0aW9uKCkgeyByZWNvbm5lY3QoMSk7IH0pO1xuICAgIH0pO1xuICAgIHByb2JlLm9uKCdlcnJvcicsIGZ1bmN0aW9uKCkge1xuICAgICAgLypcbiAgICAgICAqIFRoaXMgaGFuZGxlciBvdXRsaXZlcyB0aGUgY29ubmVjdCwgc28gaXQgZG91YmxlcyBhcyB0aGUgYWRvcHRlZCBzb2NrZXQnc1xuICAgICAgICogZXJyb3IgaGFuZGxlci4gT25jZSBjb25uZWN0ZWQsIGFuIGVycm9yIHNheXMgbm90aGluZyBhYm91dCB0aGUgaGFybmVzcyBcdTIwMTRcbiAgICAgICAqIHRoZSBjbG9zZSB0aGF0IGZvbGxvd3MgaXQgcmUtcnVucyB0aGUgcHJvYmUuXG4gICAgICAgKi9cbiAgICAgIGlmIChkaWRDb25uZWN0KSB7IHJldHVybjsgfVxuICAgICAgaWYgKGF0dGVtcHQgPCBSRUNPTk5FQ1RfQVRURU1QVF9MSU1JVCkge1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyByZWNvbm5lY3QoYXR0ZW1wdCArIDEpOyB9LCBSRUNPTk5FQ1RfREVMQVlfSU5fTUlMTElTRUNPTkRTKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLyogTm90aGluZyBhbnN3ZXJlZCBhZnRlciBzZXZlcmFsIHRyaWVzOiB0aGUgaGFybmVzcyByZWFsbHkgaXMgZ29uZS4gKi9cbiAgICAgIGRlc3Ryb3lXaW5kb3coKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRlc3Ryb3lXaW5kb3coKSB7XG4gICAgdHJ5IHtcbiAgICAgIHdpbmRvdy5lbGVjdHJvbldpbmRvdy5kZXN0cm95KCk7XG4gICAgfSBjYXRjaCAoZGVzdHJveUVycm9yKSB7XG4gICAgICB3aW5kb3cuY2xvc2UoKTtcbiAgICB9XG4gIH1cbn0pKClgO1xufVxuXG4vKipcbiAqIFN0YXJ0cyB0aGUgbG9vcGJhY2sgbGl2ZW5lc3Mgc2VydmVyIHRoZSBvd25lZCBpbnN0YW5jZSdzIHJlbmRlcmVyIGNvbm5lY3RzXG4gKiBiYWNrIHRvLlxuICpcbiAqIFRoZSBzZXJ2ZXIgYW5kIGV2ZXJ5IGFjY2VwdGVkIHNvY2tldCBhcmUgYHVucmVmYGVkLCBzbyBob2xkaW5nIGEgd2F0Y2hkb2dcbiAqIGNvbm5lY3Rpb24gb3BlbiBuZXZlciBrZWVwcyB0aGUgaGFybmVzcyBwcm9jZXNzIGFsaXZlIG9uIGl0cyBvd24gXHUyMDE0IHRoZVxuICogY29ubmVjdGlvbiBpcyBhIHRva2VuIHRoZSBrZXJuZWwgcmVjbGFpbXMsIG5vdCB3b3JrIHRvIHdhaXQgb24uXG4gKlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gcmVzb2x2aW5nIHRvIHRoZSBsaXN0ZW5pbmcge0BsaW5rIFBhcmVudExpdmVuZXNzU2VydmVyfS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0UGFyZW50TGl2ZW5lc3NTZXJ2ZXIoKTogUHJvbWlzZTxQYXJlbnRMaXZlbmVzc1NlcnZlcj4ge1xuICBjb25zdCBzZXJ2ZXIgPSBjcmVhdGVTZXJ2ZXIoKHNvY2tldCkgPT4ge1xuICAgIHNvY2tldC51bnJlZigpO1xuICAgIC8vIFRoZSBjb25uZWN0aW9uIGNhcnJpZXMgbm8gZGF0YSBcdTIwMTQgaXQgZXhpc3RzIG9ubHkgc28gaXRzIGNsb3NlIGlzIG9ic2VydmFibGUuXG4gICAgc29ja2V0Lm9uKCdlcnJvcicsICgpID0+IHtcbiAgICAgIC8vIEEgcmVuZGVyZXIgdG9ybiBkb3duIG1pZC1jb25uZWN0aW9uIHJlc2V0cyByYXRoZXIgdGhhbiBjbG9zZXM7IG5vdCBhbiBlcnJvciBoZXJlLlxuICAgIH0pO1xuICB9KTtcbiAgc2VydmVyLnVucmVmKCk7XG5cbiAgY29uc3QgcG9ydCA9IGF3YWl0IGxpc3Rlbk9uRnJlZUxvb3BiYWNrUG9ydChzZXJ2ZXIpO1xuICByZXR1cm4ge1xuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgc2VydmVyLmNsb3NlKCk7XG4gICAgfSxcbiAgICBwb3J0XG4gIH07XG59XG5cbi8qKlxuICogQmluZHMgdGhlIHNlcnZlciB0byBhbiBlcGhlbWVyYWwgbG9vcGJhY2sgcG9ydCBhbmQgcmVwb3J0cyB3aGljaCBvbmUgaXQgZ290LlxuICpcbiAqIEBwYXJhbSBzZXJ2ZXIgLSBUaGUgc2VydmVyIHRvIGJpbmQuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSByZXNvbHZpbmcgdG8gdGhlIGFzc2lnbmVkIHBvcnQuXG4gKiBAdGhyb3dzIElmIHRoZSBzZXJ2ZXIgcmVwb3J0cyBhbiBlcnJvciBiZWZvcmUgbGlzdGVuaW5nLCBvciBiaW5kcyB0byBhIHBpcGUgcmF0aGVyIHRoYW4gYSBwb3J0LlxuICovXG5hc3luYyBmdW5jdGlvbiBsaXN0ZW5PbkZyZWVMb29wYmFja1BvcnQoc2VydmVyOiBTZXJ2ZXIpOiBQcm9taXNlPG51bWJlcj4ge1xuICByZXR1cm4gbmV3IFByb21pc2U8bnVtYmVyPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgc2VydmVyLm9uY2UoJ2Vycm9yJywgcmVqZWN0KTtcbiAgICBzZXJ2ZXIubGlzdGVuKDAsIFBBUkVOVF9MSVZFTkVTU19IT1NULCAoKSA9PiB7XG4gICAgICBjb25zdCBhZGRyZXNzID0gc2VydmVyLmFkZHJlc3MoKTtcbiAgICAgIGlmIChhZGRyZXNzID09PSBudWxsIHx8IHR5cGVvZiBhZGRyZXNzID09PSAnc3RyaW5nJykge1xuICAgICAgICBzZXJ2ZXIuY2xvc2UoKTtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignRmFpbGVkIHRvIGRldGVybWluZSB0aGUgcGFyZW50LWxpdmVuZXNzIHBvcnQuJykpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByZXNvbHZlKGFkZHJlc3MucG9ydCk7XG4gICAgfSk7XG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFnRUEsc0JBQTZCO0FBMkJ0QixNQUFNLHVCQUF1QjtBQVdwQyxNQUFNLDBCQUEwQjtBQVFoQyxNQUFNLGtDQUFrQztBQWlCakMsU0FBUyxzQ0FBc0MsTUFBc0I7QUFDMUUsU0FBTztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLGVBYU0sT0FBTyxJQUFJLENBQUM7QUFBQSxnQkFDWCxvQkFBb0I7QUFBQSxrQ0FDRixPQUFPLHVCQUF1QixDQUFDO0FBQUEsMENBQ3ZCLE9BQU8sK0JBQStCLENBQUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQStDakY7QUFZQSxlQUFzQiw0QkFBMkQ7QUFDL0UsUUFBTSxhQUFTLDhCQUFhLENBQUMsV0FBVztBQUN0QyxXQUFPLE1BQU07QUFFYixXQUFPLEdBQUcsU0FBUyxNQUFNO0FBQUEsSUFFekIsQ0FBQztBQUFBLEVBQ0gsQ0FBQztBQUNELFNBQU8sTUFBTTtBQUViLFFBQU0sT0FBTyxNQUFNLHlCQUF5QixNQUFNO0FBQ2xELFNBQU87QUFBQSxJQUNMLFFBQWM7QUFDWixhQUFPLE1BQU07QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLEVBQ0Y7QUFDRjtBQVNBLGVBQWUseUJBQXlCLFFBQWlDO0FBQ3ZFLFNBQU8sSUFBSSxRQUFnQixDQUFDLFNBQVMsV0FBVztBQUM5QyxXQUFPLEtBQUssU0FBUyxNQUFNO0FBQzNCLFdBQU8sT0FBTyxHQUFHLHNCQUFzQixNQUFNO0FBQzNDLFlBQU0sVUFBVSxPQUFPLFFBQVE7QUFDL0IsVUFBSSxZQUFZLFFBQVEsT0FBTyxZQUFZLFVBQVU7QUFDbkQsZUFBTyxNQUFNO0FBQ2IsZUFBTyxJQUFJLE1BQU0sK0NBQStDLENBQUM7QUFDakU7QUFBQSxNQUNGO0FBQ0EsY0FBUSxRQUFRLElBQUk7QUFBQSxJQUN0QixDQUFDO0FBQUEsRUFDSCxDQUFDO0FBQ0g7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BhcmVudC1saXZlbmVzcy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFRpZXMgYSBoYXJuZXNzLW93bmVkIE9ic2lkaWFuIGluc3RhbmNlJ3MgbGlmZXRpbWUgdG8gdGhlIGhhcm5lc3MgcHJvY2VzcyB0aGF0XG4gKiBsYXVuY2hlZCBpdCwgaW4gdGhlIG9uZSBkaXJlY3Rpb24gdGhlIG9wZXJhdGluZyBzeXN0ZW0gd2lsbCBub3QgZG8gZm9yIHVzLlxuICpcbiAqIFRoZSBvd25lZCBpbnN0YW5jZSBpcyBhbHJlYWR5IGEgY2hpbGQgb2YgdGhlIGhhcm5lc3MgcHJvY2VzcywgYnV0IHRoYXQgbGlua1xuICogY2FycmllcyBubyBsaWZldGltZSBndWFyYW50ZWUuIFdpbmRvd3MgbmV2ZXIgcHJvcGFnYXRlcyBhIHBhcmVudCdzIGRlYXRoIHRvXG4gKiBpdHMgY2hpbGRyZW4gXHUyMDE0IGFuIG9ycGhhbiBzaW1wbHkga2VlcHMgcnVubmluZyB3aXRoIGEgc3RhbGUgcGFyZW50IGlkIFx1MjAxNCBhbmQgb25cbiAqIFBPU0lYIGEgYFNJR0tJTExgIGFpbWVkIGF0IGEgc2luZ2xlIHBpZCBuZXZlciBjYXNjYWRlcyBlaXRoZXIuIFRoZSBpbnN0YW5jZSBpc1xuICogYWRkaXRpb25hbGx5IHNwYXduZWQgYGRldGFjaGVkYCwgc28gaXQgaXMgbm90IGV2ZW4gaW4gdGhlIGhhcm5lc3MncyBwcm9jZXNzXG4gKiBncm91cC4gVGVhcmRvd24gdGhlcmVmb3JlIHJlbGllcyBlbnRpcmVseSBvbiB0aGUgaGFybmVzcyBydW5uaW5nIGl0cyBvd25cbiAqIGNsZWFudXAgKGBraWxsUHJvY2Vzc1RyZWVgIGZyb20gYW4gYGV4aXRgL3NpZ25hbCBoYW5kbGVyKSwgd2hpY2ggaXMgZXhhY3RseVxuICogd2hhdCBhIGBTSUdLSUxMYCwgYSBUYXNrIE1hbmFnZXIga2lsbCwgb3IgYW4gSURFIHN0b3AgYnV0dG9uIGRlbmllcyBpdC4gRXZlcnlcbiAqIHN1Y2gga2lsbCBsZWFrcyBhIGhpZGRlbiBPYnNpZGlhbiBob2xkaW5nIGEgdXNlci1kYXRhIGRpciBhbmQgYSBDRFAgcG9ydCwgYW5kXG4gKiB0aGV5IGFjY3VtdWxhdGU6IHRoZSBuZXh0IHJ1biBwaWNrcyBhIGZyZXNoIHRlbXAgZGlyIGFuZCBhIGZyZWUgcG9ydCwgc29cbiAqIG5vdGhpbmcgY29sbGlkZXMgYW5kIG5vdGhpbmcgY29tcGxhaW5zLlxuICpcbiAqIFRoZSBndWFyYW50ZWVkIGZpeCBpcyBhbiBPUyBwcmltaXRpdmUgXHUyMDE0IGEgV2luZG93cyBKb2IgT2JqZWN0IHdpdGhcbiAqIGBKT0JfT0JKRUNUX0xJTUlUX0tJTExfT05fSk9CX0NMT1NFYCwgb3IgYHByY3RsKFBSX1NFVF9QREVBVEhTSUcpYCBvbiBMaW51eCBcdTIwMTRcbiAqIGJ1dCBuZWl0aGVyIGlzIHJlYWNoYWJsZSBmcm9tIE5vZGUgd2l0aG91dCBhIG5hdGl2ZSBhZGRvbiwgd2hpY2ggaXMgZmFyIHRvb1xuICogaGVhdnkgYSBkZXBlbmRlbmN5IGZvciB0aGlzIGhhcm5lc3MuXG4gKlxuICogU28gd2UgdXNlIHRoZSBvbmUgY3Jvc3MtcGxhdGZvcm0gcmVzb3VyY2UgdGhlIGtlcm5lbCAqZG9lcyogcmVjbGFpbVxuICogZGV0ZXJtaW5pc3RpY2FsbHkgb24gcHJvY2VzcyBkZWF0aDogYSBzb2NrZXQuIFRoZSBoYXJuZXNzIGxpc3RlbnMgb24gYVxuICogbG9vcGJhY2sgcG9ydCBhbmQgdGhlIGluc3RhbmNlJ3MgcmVuZGVyZXIgY29ubmVjdHMgdG8gaXQuIEhvd2V2ZXIgdGhlIGhhcm5lc3NcbiAqIGRpZXMgXHUyMDE0IGNsZWFubHksIGBTSUdLSUxMYGVkLCBvciBjcmFzaGVkIFx1MjAxNCB0aGUga2VybmVsIGNsb3NlcyBpdHMgZW5kIGFuZCB0aGVcbiAqIHJlbmRlcmVyIHNlZXMgYGNsb3NlYC4gTm8gcG9sbGluZywgbm8gaGVhcnRiZWF0IGludGVydmFsLCBubyB0aW1lb3V0IHRvIHR1bmUuXG4gKlxuICogKipBIGNsb3NlIGlzIGEgcXVlc3Rpb24sIG5vdCBhIHZlcmRpY3QuKiogQSBzb2NrZXQgY2xvc2luZyBpcyBub3QgdGhlIHNhbWVcbiAqIGV2ZW50IGFzIGEgcHJvY2VzcyBkeWluZywgYW5kIHRyZWF0aW5nIHRoZW0gYXMgaWRlbnRpY2FsIGRlc3Ryb3llZCBoZWFsdGh5XG4gKiBpbnN0YW5jZXM6IG1lYXN1cmVkIG9uIDIwMjYtMDktMDUsIGEgcmVuZGVyZXIncyBpZGxlIGxpdmVuZXNzIHNvY2tldCBzZW50XG4gKiBgRklOYCBvbiBpdHMgb3duIFx1MjAxNCAzIG1pbiAxMyBzIGludG8gb25lIHJ1biwgMTEgbWluIDU2IHMgaW50byBhbm90aGVyIFx1MjAxNCB3aGlsZVxuICogdGhlIGhhcm5lc3Mgd2FzIHN0aWxsIGxpc3RlbmluZyBhbmQgd2VudCBvbiB3b3JraW5nIGZvciBhbm90aGVyIDE0IG1pbnV0ZXMuXG4gKiBFdmVyeSB0ZXN0IGZpbGUgc2NoZWR1bGVkIGFmdGVyIHRoZSBkZWF0aCB0aGVuIGZhaWxlZCBpbiB0ZW5zIG9mIG1pbGxpc2Vjb25kc1xuICogd2l0aCBgRUNPTk5SRUZVU0VEYCBvbiB0aGUgZGVhZCBDRFAgcG9ydDsgdGhlIHdvcnN0IHJ1biByZXBvcnRlZCAxNTYgc3VjaFxuICogZmFpbHVyZXMgYWNyb3NzIDIxIGZpbGVzLCBub3Qgb25lIG9mIHRoZW0gYSB0ZXN0IHJlc3VsdC4gV2h5IGFuIGlkbGUgdW5yZWYnZFxuICogbG9vcGJhY2sgc29ja2V0IGluIGFuIEVsZWN0cm9uIHJlbmRlcmVyIGRvZXMgdGhhdCBpcyBub3QgZXN0YWJsaXNoZWQsIGFuZCBkb2VzXG4gKiBub3QgbmVlZCB0byBiZTogdGhlIGxpZmV0aW1lcyB2YXJ5IHJ1biB0byBydW4sIHNvIG5vIGZpeGVkIHRpbWVvdXQgZXhwbGFpbnMgaXQuXG4gKlxuICogU28gdGhlIGBjbG9zZWAgaGFuZGxlciAqKnZlcmlmaWVzIGJlZm9yZSBkZXN0cm95aW5nKio6IGl0IHJlY29ubmVjdHMgdG8gdGhlXG4gKiBzYW1lIGxvb3BiYWNrIHBvcnQuIEEgaGFybmVzcyB0aGF0IGlzIGFsaXZlIGlzIHN0aWxsIGxpc3RlbmluZywgc28gdGhlXG4gKiByZWNvbm5lY3Qgc3VjY2VlZHMgYW5kIHRoZSBuZXcgc29ja2V0IGJlY29tZXMgdGhlIGxpdmVuZXNzIHRva2VuOyBvbmx5IHdoZW5cbiAqIG5vdGhpbmcgYW5zd2VycyBhZnRlciBhIGZldyB0cmllcyBcdTIwMTQgd2hhdCBhIGRlYWQgaGFybmVzcyBhY3R1YWxseSBsb29rcyBsaWtlIFx1MjAxNFxuICogaXMgdGhlIHdpbmRvdyBkZXN0cm95ZWQuIFRoZSBsZWFrIHRoZSB3YXRjaGRvZyBleGlzdHMgdG8gcHJldmVudCBpcyBzdGlsbFxuICogcHJldmVudGVkLCBhbmQgdGhlIG1lYXN1cmVkIHJlY292ZXJ5IGlzIDExIG1zLlxuICpcbiAqIEEgcmVjb25uZWN0IHJhdGhlciB0aGFuIGEgY2hlY2sgb24gdGhlIGhhcm5lc3MncyBwcm9jZXNzIGlkLCBiZWNhdXNlIGl0IHByb3Zlc1xuICogdGhlIHRoaW5nIHRoZSB3YXRjaGRvZyBhY3R1YWxseSBkZXBlbmRzIG9uIFx1MjAxNCB0aGUgbGl2ZW5lc3Mgc2VydmVyIHN0aWxsIHNlcnZpbmdcbiAqIFx1MjAxNCBhbmQgaXQgc3RheXMgY29ycmVjdCBhZ2FpbnN0IGEgKmJ1c3kqIGhhcm5lc3M6IHRoZSBrZXJuZWwgY29tcGxldGVzIGFcbiAqIGxvb3BiYWNrIGhhbmRzaGFrZSBvdXQgb2YgdGhlIGxpc3RlbiBiYWNrbG9nIGV2ZW4gd2hpbGUgTm9kZSdzIGV2ZW50IGxvb3AgaXNcbiAqIGJsb2NrZWQuIEl0cyBvbmUgcmVzaWR1YWwgYW1iaWd1aXR5IGlzIGFjY2VwdGVkOiBhIHJlY29ubmVjdCBwcm92ZXMgKnNvbWV0aGluZypcbiAqIGlzIGxpc3RlbmluZyBvbiB0aGF0IGVwaGVtZXJhbCBwb3J0LCBub3QgdGhhdCBpdCBpcyBvdXJzLiBUaGUgcHJvYmUgZm9sbG93cyB0aGVcbiAqIGNsb3NlIGJ5IG1pbGxpc2Vjb25kcywgc28gYW5vdGhlciBwcm9jZXNzIHdpbm5pbmcgdGhhdCBleGFjdCBwb3J0IGluIGJldHdlZW4gaXNcbiAqIG5vdCBhIHJpc2sgd29ydGggYSBoYW5kc2hha2UgcHJvdG9jb2wuXG4gKlxuICogRGVsaWJlcmF0ZWx5IGZhaWwtb3BlbjogdGhlIHJlbmRlcmVyIG9ubHkgYXJtcyB0aGUgZGVzdHJveSBwYXRoIGFmdGVyIHRoZVxuICogY29ubmVjdGlvbiBpcyBhY3R1YWxseSBlc3RhYmxpc2hlZC4gQSB3YXRjaGRvZyB0aGF0IGNhbm5vdCByZWFjaCB0aGUgaGFybmVzc1xuICogbGVhdmVzIHRoZSBpbnN0YW5jZSBydW5uaW5nIHJhdGhlciB0aGFuIGtpbGxpbmcgYSB3aW5kb3cgdGhlIGRldmVsb3BlciBpc1xuICogd29ya2luZyBpbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFNlcnZlciB9IGZyb20gJ25vZGU6bmV0JztcblxuaW1wb3J0IHsgY3JlYXRlU2VydmVyIH0gZnJvbSAnbm9kZTpuZXQnO1xuXG4vKipcbiAqIEEgbGlzdGVuaW5nIGxvb3BiYWNrIHNlcnZlciB3aG9zZSBhY2NlcHRlZCBjb25uZWN0aW9ucyBhY3QgYXMgbGl2ZW5lc3MgdG9rZW5zXG4gKiBmb3IgdGhlIGhhcm5lc3MgcHJvY2Vzcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJlbnRMaXZlbmVzc1NlcnZlciB7XG4gIC8qKlxuICAgKiBTdG9wcyBsaXN0ZW5pbmcuXG4gICAqXG4gICAqIE5vZGUga2VlcHMgYWxyZWFkeS1hY2NlcHRlZCBjb25uZWN0aW9ucyBhbGl2ZSBhY3Jvc3MgYSBgY2xvc2UoKWAsIHNvIHRoaXNcbiAgICogZG9lcyBub3QgYnkgaXRzZWxmIHNpZ25hbCB0aGUgcmVuZGVyZXIgXHUyMDE0IHRoZSBrZXJuZWwgcmVjbGFpbWluZyB0aGUgc29ja2V0IG9uXG4gICAqIHByb2Nlc3MgZGVhdGggaXMgd2hhdCBkb2VzLiBXaGF0IGl0IGRvZXMgZ3VhcmFudGVlIGlzIHRoYXQgYSB3YXRjaGRvZyBwcm9iZVxuICAgKiBhcnJpdmluZyBhZnRlcndhcmRzIGlzIHJlZnVzZWQsIHdoaWNoIGlzIHRoZSBhbnN3ZXIgYSB0b3JuLWRvd24gaGFybmVzc1xuICAgKiBzaG91bGQgZ2l2ZS5cbiAgICovXG4gIGNsb3NlOiAoKSA9PiB2b2lkO1xuXG4gIC8qKlxuICBUaGUgbG9vcGJhY2sgcG9ydCB0aGUgcmVuZGVyZXIgd2F0Y2hkb2cgc2hvdWxkIGNvbm5lY3QgYmFjayB0by5cbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBMb29wYmFjayBob3N0IHRoZSBsaXZlbmVzcyBzZXJ2ZXIgYmluZHMgdG8uIE5ldmVyIGV4cG9zZWQgb2ZmLW1hY2hpbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBQQVJFTlRfTElWRU5FU1NfSE9TVCA9ICcxMjcuMC4wLjEnO1xuXG4vKipcbiAqIEhvdyBtYW55IHRpbWVzIHRoZSB3YXRjaGRvZyBwcm9iZXMgdGhlIGxvb3BiYWNrIHBvcnQgYmVmb3JlIGNvbmNsdWRpbmcgdGhlXG4gKiBoYXJuZXNzIGlzIGdvbmUuXG4gKlxuICogTW9yZSB0aGFuIG9uZSwgc28gYSBzaW5nbGUgdHJhbnNpZW50IHJlZnVzYWwgY2Fubm90IGNvc3QgYSB3aG9sZSBydW47IHNtYWxsLFxuICogYmVjYXVzZSBldmVyeSBhdHRlbXB0IGlzIGEgbG9vcGJhY2sgY29ubmVjdCB0aGF0IGVpdGhlciBjb21wbGV0ZXMgb3IgaXNcbiAqIHJlZnVzZWQgaW1tZWRpYXRlbHksIGFuZCBhbiBpbnN0YW5jZSB3aG9zZSBoYXJuZXNzIHJlYWxseSBkaWQgZGllIHNob3VsZCBub3RcbiAqIGxpbmdlci5cbiAqL1xuY29uc3QgUkVDT05ORUNUX0FUVEVNUFRfTElNSVQgPSAzO1xuXG4vKipcbiAqIEhvdyBsb25nIHRoZSB3YXRjaGRvZyB3YWl0cyBiZXR3ZWVuIHByb2Jlcy5cbiAqXG4gKiBMb25nIGVub3VnaCB0byBvdXRsYXN0IGEgbW9tZW50YXJ5IHJlZnVzYWwsIHNob3J0IGVub3VnaCB0aGF0IGV4aGF1c3RpbmcgdGhlXG4gKiB3aG9sZSBidWRnZXQgc3RpbGwgZGVzdHJveXMgYW4gb3JwaGFuZWQgd2luZG93IGluc2lkZSBhIHNlY29uZC5cbiAqL1xuY29uc3QgUkVDT05ORUNUX0RFTEFZX0lOX01JTExJU0VDT05EUyA9IDI1MDtcblxuLyoqXG4gKiBCdWlsZHMgdGhlIGV4cHJlc3Npb24gZXZhbHVhdGVkIGluIHRoZSBvd25lZCBpbnN0YW5jZSdzIHJlbmRlcmVyIHRvIGFybSB0aGVcbiAqIHdhdGNoZG9nLlxuICpcbiAqIFdyaXR0ZW4gaW4gRVM1IHN0eWxlIChgdmFyYCwgYGZ1bmN0aW9uYCkgd2l0aCBubyBvcHRpb25hbCBjaGFpbmluZywgbWF0Y2hpbmdcbiAqIHtAbGluayBESVNNSVNTX1RSVVNUX0RJQUxPR19FWFBSfTogdGhlIHNhbWUgZXhwcmVzc2lvbiBoYXMgdG8gcGFyc2Ugb24gdGhlXG4gKiBDaHJvbWl1bSA4MC1lcmEgcmVuZGVyZXJzIG9mIHRoZSBvbGRlc3Qgc3VwcG9ydGVkIE9ic2lkaWFuIHZlcnNpb25zIChMMjYpLlxuICpcbiAqIEFybWluZyBpcyBpZGVtcG90ZW50IFx1MjAxNCBhIHNlY29uZCBldmFsdWF0aW9uIGZpbmRzIHRoZSBzdG9yZWQgc29ja2V0IGFuZFxuICogcmV0dXJucyB3aXRob3V0IG9wZW5pbmcgYW5vdGhlciBjb25uZWN0aW9uLCBzbyBhIHJldHJpZWQgcmVhZGluZXNzIHBhc3MgZG9lc1xuICogbm90IHBpbGUgdXAgc29ja2V0cy5cbiAqXG4gKiBAcGFyYW0gcG9ydCAtIFRoZSBsb29wYmFjayBwb3J0IHJldHVybmVkIGJ5IHtAbGluayBzdGFydFBhcmVudExpdmVuZXNzU2VydmVyfS5cbiAqIEByZXR1cm5zIFRoZSBleHByZXNzaW9uIHRvIGV2YWx1YXRlLCB5aWVsZGluZyBgJ2FybWVkJ2AsIGAnYWxyZWFkeS1hcm1lZCdgLCBvciBgJ3VuYXZhaWxhYmxlJ2AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFBhcmVudExpdmVuZXNzV2F0Y2hkb2dFeHByZXNzaW9uKHBvcnQ6IG51bWJlcik6IHN0cmluZyB7XG4gIHJldHVybiBgKGZ1bmN0aW9uKCkge1xuICB2YXIgRkxBRyA9ICdfX29ic2lkaWFuSW50ZWdyYXRpb25UZXN0aW5nUGFyZW50TGl2ZW5lc3MnO1xuICBpZiAod2luZG93W0ZMQUddKSB7IHJldHVybiAnYWxyZWFkeS1hcm1lZCc7IH1cbiAgdmFyIG5ldDtcbiAgdHJ5IHtcbiAgICBuZXQgPSB3aW5kb3cucmVxdWlyZSgnbm9kZTpuZXQnKTtcbiAgfSBjYXRjaCAobm9kZVByZWZpeEVycm9yKSB7XG4gICAgdHJ5IHtcbiAgICAgIG5ldCA9IHdpbmRvdy5yZXF1aXJlKCduZXQnKTtcbiAgICB9IGNhdGNoIChiYXJlUHJlZml4RXJyb3IpIHtcbiAgICAgIHJldHVybiAndW5hdmFpbGFibGUnO1xuICAgIH1cbiAgfVxuICB2YXIgUE9SVCA9ICR7U3RyaW5nKHBvcnQpfTtcbiAgdmFyIEhPU1QgPSAnJHtQQVJFTlRfTElWRU5FU1NfSE9TVH0nO1xuICB2YXIgUkVDT05ORUNUX0FUVEVNUFRfTElNSVQgPSAke1N0cmluZyhSRUNPTk5FQ1RfQVRURU1QVF9MSU1JVCl9O1xuICB2YXIgUkVDT05ORUNUX0RFTEFZX0lOX01JTExJU0VDT05EUyA9ICR7U3RyaW5nKFJFQ09OTkVDVF9ERUxBWV9JTl9NSUxMSVNFQ09ORFMpfTtcbiAgdmFyIHNvY2tldCA9IG5ldC5jb25uZWN0KFBPUlQsIEhPU1QpO1xuICB3aW5kb3dbRkxBR10gPSBzb2NrZXQ7XG4gIHZhciBpc0Nvbm5lY3RlZCA9IGZhbHNlO1xuICBzb2NrZXQub24oJ2Nvbm5lY3QnLCBmdW5jdGlvbigpIHsgaXNDb25uZWN0ZWQgPSB0cnVlOyB9KTtcbiAgc29ja2V0Lm9uKCdlcnJvcicsIGZ1bmN0aW9uKCkgeyAvKiBUaGUgY2xvc2UgaGFuZGxlciBiZWxvdyBkZWNpZGVzIHdoYXQgYW4gZXJyb3IgbWVhbnQuICovIH0pO1xuICBzb2NrZXQub24oJ2Nsb3NlJywgZnVuY3Rpb24oKSB7XG4gICAgLyogRmFpbCBvcGVuOiBhIGNvbm5lY3Rpb24gdGhhdCBuZXZlciBlc3RhYmxpc2hlZCBpcyBubyBldmlkZW5jZSB0aGUgaGFybmVzcyBkaWVkLiAqL1xuICAgIGlmICghaXNDb25uZWN0ZWQpIHsgcmV0dXJuOyB9XG4gICAgcmVjb25uZWN0KDEpO1xuICB9KTtcbiAgcmV0dXJuICdhcm1lZCc7XG5cbiAgLyogQSBjbG9zZSBvbmx5IGFza3MgdGhlIHF1ZXN0aW9uLiBSZWNvbm5lY3RpbmcgYW5zd2VycyBpdC4gKi9cbiAgZnVuY3Rpb24gcmVjb25uZWN0KGF0dGVtcHQpIHtcbiAgICB2YXIgZGlkQ29ubmVjdCA9IGZhbHNlO1xuICAgIHZhciBwcm9iZSA9IG5ldC5jb25uZWN0KFBPUlQsIEhPU1QpO1xuICAgIHByb2JlLm9uKCdjb25uZWN0JywgZnVuY3Rpb24oKSB7XG4gICAgICAvKiBTb21lb25lIGlzIHN0aWxsIGxpc3RlbmluZywgc28gdGhlIGhhcm5lc3MgaXMgYWxpdmUuIFRoaXMgaXMgdGhlIG5ldyB0b2tlbi4gKi9cbiAgICAgIGRpZENvbm5lY3QgPSB0cnVlO1xuICAgICAgd2luZG93W0ZMQUddID0gcHJvYmU7XG4gICAgICBwcm9iZS5vbignY2xvc2UnLCBmdW5jdGlvbigpIHsgcmVjb25uZWN0KDEpOyB9KTtcbiAgICB9KTtcbiAgICBwcm9iZS5vbignZXJyb3InLCBmdW5jdGlvbigpIHtcbiAgICAgIC8qXG4gICAgICAgKiBUaGlzIGhhbmRsZXIgb3V0bGl2ZXMgdGhlIGNvbm5lY3QsIHNvIGl0IGRvdWJsZXMgYXMgdGhlIGFkb3B0ZWQgc29ja2V0J3NcbiAgICAgICAqIGVycm9yIGhhbmRsZXIuIE9uY2UgY29ubmVjdGVkLCBhbiBlcnJvciBzYXlzIG5vdGhpbmcgYWJvdXQgdGhlIGhhcm5lc3MgXHUyMDE0XG4gICAgICAgKiB0aGUgY2xvc2UgdGhhdCBmb2xsb3dzIGl0IHJlLXJ1bnMgdGhlIHByb2JlLlxuICAgICAgICovXG4gICAgICBpZiAoZGlkQ29ubmVjdCkgeyByZXR1cm47IH1cbiAgICAgIGlmIChhdHRlbXB0IDwgUkVDT05ORUNUX0FUVEVNUFRfTElNSVQpIHtcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgcmVjb25uZWN0KGF0dGVtcHQgKyAxKTsgfSwgUkVDT05ORUNUX0RFTEFZX0lOX01JTExJU0VDT05EUyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8qIE5vdGhpbmcgYW5zd2VyZWQgYWZ0ZXIgc2V2ZXJhbCB0cmllczogdGhlIGhhcm5lc3MgcmVhbGx5IGlzIGdvbmUuICovXG4gICAgICBkZXN0cm95V2luZG93KCk7XG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBkZXN0cm95V2luZG93KCkge1xuICAgIHRyeSB7XG4gICAgICB3aW5kb3cuZWxlY3Ryb25XaW5kb3cuZGVzdHJveSgpO1xuICAgIH0gY2F0Y2ggKGRlc3Ryb3lFcnJvcikge1xuICAgICAgd2luZG93LmNsb3NlKCk7XG4gICAgfVxuICB9XG59KSgpYDtcbn1cblxuLyoqXG4gKiBTdGFydHMgdGhlIGxvb3BiYWNrIGxpdmVuZXNzIHNlcnZlciB0aGUgb3duZWQgaW5zdGFuY2UncyByZW5kZXJlciBjb25uZWN0c1xuICogYmFjayB0by5cbiAqXG4gKiBUaGUgc2VydmVyIGFuZCBldmVyeSBhY2NlcHRlZCBzb2NrZXQgYXJlIGB1bnJlZmBlZCwgc28gaG9sZGluZyBhIHdhdGNoZG9nXG4gKiBjb25uZWN0aW9uIG9wZW4gbmV2ZXIga2VlcHMgdGhlIGhhcm5lc3MgcHJvY2VzcyBhbGl2ZSBvbiBpdHMgb3duIFx1MjAxNCB0aGVcbiAqIGNvbm5lY3Rpb24gaXMgYSB0b2tlbiB0aGUga2VybmVsIHJlY2xhaW1zLCBub3Qgd29yayB0byB3YWl0IG9uLlxuICpcbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHJlc29sdmluZyB0byB0aGUgbGlzdGVuaW5nIHtAbGluayBQYXJlbnRMaXZlbmVzc1NlcnZlcn0uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzdGFydFBhcmVudExpdmVuZXNzU2VydmVyKCk6IFByb21pc2U8UGFyZW50TGl2ZW5lc3NTZXJ2ZXI+IHtcbiAgY29uc3Qgc2VydmVyID0gY3JlYXRlU2VydmVyKChzb2NrZXQpID0+IHtcbiAgICBzb2NrZXQudW5yZWYoKTtcbiAgICAvLyBUaGUgY29ubmVjdGlvbiBjYXJyaWVzIG5vIGRhdGEgXHUyMDE0IGl0IGV4aXN0cyBvbmx5IHNvIGl0cyBjbG9zZSBpcyBvYnNlcnZhYmxlLlxuICAgIHNvY2tldC5vbignZXJyb3InLCAoKSA9PiB7XG4gICAgICAvLyBBIHJlbmRlcmVyIHRvcm4gZG93biBtaWQtY29ubmVjdGlvbiByZXNldHMgcmF0aGVyIHRoYW4gY2xvc2VzOyBub3QgYW4gZXJyb3IgaGVyZS5cbiAgICB9KTtcbiAgfSk7XG4gIHNlcnZlci51bnJlZigpO1xuXG4gIGNvbnN0IHBvcnQgPSBhd2FpdCBsaXN0ZW5PbkZyZWVMb29wYmFja1BvcnQoc2VydmVyKTtcbiAgcmV0dXJuIHtcbiAgICBjbG9zZSgpOiB2b2lkIHtcbiAgICAgIHNlcnZlci5jbG9zZSgpO1xuICAgIH0sXG4gICAgcG9ydFxuICB9O1xufVxuXG4vKipcbiAqIEJpbmRzIHRoZSBzZXJ2ZXIgdG8gYW4gZXBoZW1lcmFsIGxvb3BiYWNrIHBvcnQgYW5kIHJlcG9ydHMgd2hpY2ggb25lIGl0IGdvdC5cbiAqXG4gKiBAcGFyYW0gc2VydmVyIC0gVGhlIHNlcnZlciB0byBiaW5kLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gcmVzb2x2aW5nIHRvIHRoZSBhc3NpZ25lZCBwb3J0LlxuICogQHRocm93cyBJZiB0aGUgc2VydmVyIHJlcG9ydHMgYW4gZXJyb3IgYmVmb3JlIGxpc3RlbmluZywgb3IgYmluZHMgdG8gYSBwaXBlIHJhdGhlciB0aGFuIGEgcG9ydC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gbGlzdGVuT25GcmVlTG9vcGJhY2tQb3J0KHNlcnZlcjogU2VydmVyKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPG51bWJlcj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHNlcnZlci5vbmNlKCdlcnJvcicsIHJlamVjdCk7XG4gICAgc2VydmVyLmxpc3RlbigwLCBQQVJFTlRfTElWRU5FU1NfSE9TVCwgKCkgPT4ge1xuICAgICAgY29uc3QgYWRkcmVzcyA9IHNlcnZlci5hZGRyZXNzKCk7XG4gICAgICBpZiAoYWRkcmVzcyA9PT0gbnVsbCB8fCB0eXBlb2YgYWRkcmVzcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgc2VydmVyLmNsb3NlKCk7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoJ0ZhaWxlZCB0byBkZXRlcm1pbmUgdGhlIHBhcmVudC1saXZlbmVzcyBwb3J0LicpKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmVzb2x2ZShhZGRyZXNzLnBvcnQpO1xuICAgIH0pO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBZ0VBLHNCQUE2QjtBQTJCdEIsTUFBTSx1QkFBdUI7QUFXcEMsTUFBTSwwQkFBMEI7QUFRaEMsTUFBTSxrQ0FBa0M7QUFpQmpDLFNBQVMsc0NBQXNDLE1BQXNCO0FBQzFFLFNBQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxlQWFNLE9BQU8sSUFBSSxDQUFDO0FBQUEsZ0JBQ1gsb0JBQW9CO0FBQUEsa0NBQ0YsT0FBTyx1QkFBdUIsQ0FBQztBQUFBLDBDQUN2QixPQUFPLCtCQUErQixDQUFDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUErQ2pGO0FBWUEsZUFBc0IsNEJBQTJEO0FBQy9FLFFBQU0sYUFBUyw4QkFBYSxDQUFDLFdBQVc7QUFDdEMsV0FBTyxNQUFNO0FBRWIsV0FBTyxHQUFHLFNBQVMsTUFBTTtBQUFBLElBRXpCLENBQUM7QUFBQSxFQUNILENBQUM7QUFDRCxTQUFPLE1BQU07QUFFYixRQUFNLE9BQU8sTUFBTSx5QkFBeUIsTUFBTTtBQUNsRCxTQUFPO0FBQUEsSUFDTCxRQUFjO0FBQ1osYUFBTyxNQUFNO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxFQUNGO0FBQ0Y7QUFTQSxlQUFlLHlCQUF5QixRQUFpQztBQUN2RSxTQUFPLElBQUksUUFBZ0IsQ0FBQyxTQUFTLFdBQVc7QUFDOUMsV0FBTyxLQUFLLFNBQVMsTUFBTTtBQUMzQixXQUFPLE9BQU8sR0FBRyxzQkFBc0IsTUFBTTtBQUMzQyxZQUFNLFVBQVUsT0FBTyxRQUFRO0FBQy9CLFVBQUksWUFBWSxRQUFRLE9BQU8sWUFBWSxVQUFVO0FBQ25ELGVBQU8sTUFBTTtBQUNiLGVBQU8sSUFBSSxNQUFNLCtDQUErQyxDQUFDO0FBQ2pFO0FBQUEsTUFDRjtBQUNBLGNBQVEsUUFBUSxJQUFJO0FBQUEsSUFDdEIsQ0FBQztBQUFBLEVBQ0gsQ0FBQztBQUNIOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -73,7 +73,7 @@ export interface ParentLivenessServer {
|
|
|
73
73
|
* arriving afterwards is refused, which is the answer a torn-down harness
|
|
74
74
|
* should give.
|
|
75
75
|
*/
|
|
76
|
-
close()
|
|
76
|
+
close: () => void;
|
|
77
77
|
/**
|
|
78
78
|
The loopback port the renderer watchdog should connect back to.
|
|
79
79
|
*/
|
|
@@ -69,4 +69,4 @@ async function pollInObsidian(params) {
|
|
|
69
69
|
0 && (module.exports = {
|
|
70
70
|
pollInObsidian
|
|
71
71
|
});
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BvbGwtaW4tb2JzaWRpYW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBOb2RlLXNpZGUgXCJraWNrIG9mZiwgdGhlbiBwb2xsXCIgaGVscGVyIG92ZXIge0BsaW5rIGV2YWxJbk9ic2lkaWFufS5cbiAqXG4gKiBBIHNpbmdsZSBgZXZhbEluT2JzaWRpYW5gIGNsb3N1cmUgY2Fubm90IHJ1biBsb25nZXIgdGhhbiB0aGUgdHJhbnNwb3J0J3NcbiAqIHBlci1ldmFsIGNhcCBcdTIwMTQgYERFRkFVTFRfRVZBTF9DQVBfSU5fTUlMTElTRUNPTkRTYCAoMzBzKSBvbiBib3RoLCBvbmUgc2hhcmVkXG4gKiBkZWNsYXJlZCBudW1iZXIgcmF0aGVyIHRoYW4gYW4gaW5oZXJpdGVkIG9uZTogZGVza3RvcCBlbmZvcmNlcyBpdCBhc1xuICogYGNvbW1hbmRUaW1lb3V0SW5NaWxsaXNlY29uZHNgLCBBbmRyb2lkIGFzIGBzY3JpcHRUaW1lb3V0SW5NaWxsaXNlY29uZHNgLFxuICogd2hpY2ggaXQgYWxzbyBzZW5kcyBhcyBpdHMgVzNDIGB0aW1lb3V0cy5zY3JpcHRgIGNhcGFiaWxpdHkuIEVpdGhlclxuICogd2F5IGFuIG92ZXJydW4gaXMgcmVwb3J0ZWQgYXMgYEV2YWxDYXBFeGNlZWRlZEVycm9yYCwgd2hpY2ggbmFtZXMgdGhlXG4gKiBjYXAgYW5kIHBvaW50cyBoZXJlLiBTbyBhIGxvbmctcnVubmluZyBpbi1PYnNpZGlhbiBvcGVyYXRpb24gKGUuZy4gYSB3aG9sZVxuICogcGx1Z2luL3ZhdWx0IGJvb3RzdHJhcCkgY2Fubm90IGJlIGF3YWl0ZWQgaW5zaWRlIG9uZSBjbG9zdXJlLiBUaGlzIGhlbHBlciBkb2VzXG4gKiBpdCBmcm9tIE5vZGUgaW5zdGVhZDogaXQgb3B0aW9uYWxseSBydW5zIGEgc2hvcnQgYHN0YXJ0YCBjbG9zdXJlIG9uY2UgdG8ga2lja1xuICogdGhlIHdvcmsgb2ZmLCB0aGVuIHJlcGVhdGVkbHkgcnVucyBhIHNob3J0IGBwb2xsYCBjbG9zdXJlIFx1MjAxNCBlYWNoIGEgc2VwYXJhdGUsXG4gKiB3ZWxsLXVuZGVyLTMwcyBldmFsIFx1MjAxNCB1bnRpbCB0aGUgTm9kZS1zaWRlIGB1bnRpbGAgcHJlZGljYXRlIGFjY2VwdHMgYSBwb2xsXG4gKiByZXN1bHQsIG9yIGEgTm9kZS1zaWRlIHRpbWVvdXQgZWxhcHNlcy4gSXQgcmVtb3ZlcyB0aGUgcGVyLXRlc3QgaGFuZC1yb2xsZWRcbiAqIGBldmFsSW5PYnNpZGlhbmAgKyBgc2xlZXBgIGxvb3AuXG4gKlxuICogVGhlIHRpbWluZyBsb29wIGxpdmVzIGluIHRoZSBwdXJlLCB1bml0LXRlc3RlZCB7QGxpbmsgcG9sbFVudGlsfTsgdGhpcyBtb2R1bGUgaXNcbiAqIHRoZSBpbnRlZ3JhdGlvbi1vbmx5IHdpcmluZyAoaXQgZHJpdmVzIGEgbGl2ZSBPYnNpZGlhbiksIGNvdmVyZWQgYnkgYW5cbiAqIGludGVncmF0aW9uIHRlc3QuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVncmF0aW9uLXRpbWUgY29kZSAoZHJpdmVzIGEgbGl2ZSBPYnNpZGlhbiB2aWEgZXZhbEluT2JzaWRpYW4pIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBzZXRUaW1lb3V0IGFzIHNsZWVwIH0gZnJvbSAnbm9kZTp0aW1lcnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgdHlwZSB7IENvbnRleHRBcmd1bWVudHMgfSBmcm9tICcuL2NvbnRleHQtaWQuY2pzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29tbW9uQXJndW1lbnRzLFxuICBFdmFsSW5PYnNpZGlhblBhcmFtcyxcbiAgR2VuZXJpY09iamVjdFxufSBmcm9tICcuL2V2YWwtaW4tb2JzaWRpYW4uY2pzJztcbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5UcmFuc3BvcnQgfSBmcm9tICcuL3RyYW5zcG9ydC5janMnO1xuXG5pbXBvcnQgeyBDb250ZXh0SWQgfSBmcm9tICcuL2NvbnRleHQtaWQuY2pzJztcbmltcG9ydCB7IGV2YWxJbk9ic2lkaWFuIH0gZnJvbSAnLi9ldmFsLWluLW9ic2lkaWFuLmNqcyc7XG5pbXBvcnQgeyBwb2xsVW50aWwgfSBmcm9tICcuL3BvbGwtdW50aWwuY2pzJztcblxuY29uc3QgREVGQVVMVF9QT0xMX0lOVEVSVkFMX0lOX01JTExJU0VDT05EUyA9IDUwMDtcbmNvbnN0IERFRkFVTFRfUE9MTF9USU1FT1VUX0lOX01JTExJU0VDT05EUyA9IDEyMF8wMDA7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHBvbGxJbk9ic2lkaWFufS4gTWlycm9ycyB7QGxpbmsgRXZhbEluT2JzaWRpYW5QYXJhbXN9IGZvclxuICogdGhlIHNoYXJlZCBmb3J3YXJkZWQgZmllbGRzIChgaW5wdXRgIC8gYGNvbnRleHRJZGAgLyBgdHJhbnNwb3J0YCAvIGB2YXVsdFBhdGhgKTtcbiAqIGBzdGFydGAgLyBgcG9sbGAgYXJlIHRoZSBpbi1PYnNpZGlhbiBjbG9zdXJlcyBhbmQgYHVudGlsYCBpcyB0aGUgTm9kZS1zaWRlXG4gKiBhY2NlcHRhbmNlIHByZWRpY2F0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2xsSW5PYnNpZGlhblBhcmFtczxJbnB1dCBleHRlbmRzIEdlbmVyaWNPYmplY3QsIFBvbGxSZXN1bHQsIFRDb250ZXh0SWQgZXh0ZW5kcyBDb250ZXh0SWQ8dW5rbm93bj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+IHtcbiAgLyoqXG4gICAqIEEge0BsaW5rIENvbnRleHRJZH0gc2hhcmVkIGJ5IGBzdGFydGAgYW5kIGBwb2xsYCwgc28gYHN0YXJ0YCBjYW4gc3Rhc2hcbiAgICogbm9uLXNlcmlhbGl6YWJsZSBzdGF0ZSB0aGF0IGBwb2xsYCBsYXRlciByZWFkcy4gV2hlbiBvbWl0dGVkLCBlYWNoIGNsb3N1cmVcbiAgICogZ2V0cyBhIGZyZXNoIGVtcHR5IGBjb250ZXh0YC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRJZD86IFRDb250ZXh0SWQ7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgYXJndW1lbnRzIHBhc3NlZCB0byBib3RoIGBzdGFydGAgYW5kIGBwb2xsYCAoc2VyaWFsaXplZCBsaWtlXG4gICAqIHtAbGluayBFdmFsSW5PYnNpZGlhblBhcmFtcy5pbnB1dH0pLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXQ/OiBJbnB1dDtcblxuICAvKipcbiAgICogRGVsYXkgYmV0d2VlbiBgcG9sbGAgYXR0ZW1wdHMsIGluIG1pbGxpc2Vjb25kcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYDUwMGBcbiAgICovXG4gIHJlYWRvbmx5IGludGVydmFsSW5NaWxsaXNlY29uZHM/
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BvbGwtaW4tb2JzaWRpYW4udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBOb2RlLXNpZGUgXCJraWNrIG9mZiwgdGhlbiBwb2xsXCIgaGVscGVyIG92ZXIge0BsaW5rIGV2YWxJbk9ic2lkaWFufS5cbiAqXG4gKiBBIHNpbmdsZSBgZXZhbEluT2JzaWRpYW5gIGNsb3N1cmUgY2Fubm90IHJ1biBsb25nZXIgdGhhbiB0aGUgdHJhbnNwb3J0J3NcbiAqIHBlci1ldmFsIGNhcCBcdTIwMTQgYERFRkFVTFRfRVZBTF9DQVBfSU5fTUlMTElTRUNPTkRTYCAoMzBzKSBvbiBib3RoLCBvbmUgc2hhcmVkXG4gKiBkZWNsYXJlZCBudW1iZXIgcmF0aGVyIHRoYW4gYW4gaW5oZXJpdGVkIG9uZTogZGVza3RvcCBlbmZvcmNlcyBpdCBhc1xuICogYGNvbW1hbmRUaW1lb3V0SW5NaWxsaXNlY29uZHNgLCBBbmRyb2lkIGFzIGBzY3JpcHRUaW1lb3V0SW5NaWxsaXNlY29uZHNgLFxuICogd2hpY2ggaXQgYWxzbyBzZW5kcyBhcyBpdHMgVzNDIGB0aW1lb3V0cy5zY3JpcHRgIGNhcGFiaWxpdHkuIEVpdGhlclxuICogd2F5IGFuIG92ZXJydW4gaXMgcmVwb3J0ZWQgYXMgYEV2YWxDYXBFeGNlZWRlZEVycm9yYCwgd2hpY2ggbmFtZXMgdGhlXG4gKiBjYXAgYW5kIHBvaW50cyBoZXJlLiBTbyBhIGxvbmctcnVubmluZyBpbi1PYnNpZGlhbiBvcGVyYXRpb24gKGUuZy4gYSB3aG9sZVxuICogcGx1Z2luL3ZhdWx0IGJvb3RzdHJhcCkgY2Fubm90IGJlIGF3YWl0ZWQgaW5zaWRlIG9uZSBjbG9zdXJlLiBUaGlzIGhlbHBlciBkb2VzXG4gKiBpdCBmcm9tIE5vZGUgaW5zdGVhZDogaXQgb3B0aW9uYWxseSBydW5zIGEgc2hvcnQgYHN0YXJ0YCBjbG9zdXJlIG9uY2UgdG8ga2lja1xuICogdGhlIHdvcmsgb2ZmLCB0aGVuIHJlcGVhdGVkbHkgcnVucyBhIHNob3J0IGBwb2xsYCBjbG9zdXJlIFx1MjAxNCBlYWNoIGEgc2VwYXJhdGUsXG4gKiB3ZWxsLXVuZGVyLTMwcyBldmFsIFx1MjAxNCB1bnRpbCB0aGUgTm9kZS1zaWRlIGB1bnRpbGAgcHJlZGljYXRlIGFjY2VwdHMgYSBwb2xsXG4gKiByZXN1bHQsIG9yIGEgTm9kZS1zaWRlIHRpbWVvdXQgZWxhcHNlcy4gSXQgcmVtb3ZlcyB0aGUgcGVyLXRlc3QgaGFuZC1yb2xsZWRcbiAqIGBldmFsSW5PYnNpZGlhbmAgKyBgc2xlZXBgIGxvb3AuXG4gKlxuICogVGhlIHRpbWluZyBsb29wIGxpdmVzIGluIHRoZSBwdXJlLCB1bml0LXRlc3RlZCB7QGxpbmsgcG9sbFVudGlsfTsgdGhpcyBtb2R1bGUgaXNcbiAqIHRoZSBpbnRlZ3JhdGlvbi1vbmx5IHdpcmluZyAoaXQgZHJpdmVzIGEgbGl2ZSBPYnNpZGlhbiksIGNvdmVyZWQgYnkgYW5cbiAqIGludGVncmF0aW9uIHRlc3QuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVncmF0aW9uLXRpbWUgY29kZSAoZHJpdmVzIGEgbGl2ZSBPYnNpZGlhbiB2aWEgZXZhbEluT2JzaWRpYW4pIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2FibGUgfSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgeyBzZXRUaW1lb3V0IGFzIHNsZWVwIH0gZnJvbSAnbm9kZTp0aW1lcnMvcHJvbWlzZXMnO1xuXG5pbXBvcnQgdHlwZSB7IENvbnRleHRBcmd1bWVudHMgfSBmcm9tICcuL2NvbnRleHQtaWQuY2pzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29tbW9uQXJndW1lbnRzLFxuICBFdmFsSW5PYnNpZGlhblBhcmFtcyxcbiAgR2VuZXJpY09iamVjdFxufSBmcm9tICcuL2V2YWwtaW4tb2JzaWRpYW4uY2pzJztcbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5UcmFuc3BvcnQgfSBmcm9tICcuL3RyYW5zcG9ydC5janMnO1xuXG5pbXBvcnQgeyBDb250ZXh0SWQgfSBmcm9tICcuL2NvbnRleHQtaWQuY2pzJztcbmltcG9ydCB7IGV2YWxJbk9ic2lkaWFuIH0gZnJvbSAnLi9ldmFsLWluLW9ic2lkaWFuLmNqcyc7XG5pbXBvcnQgeyBwb2xsVW50aWwgfSBmcm9tICcuL3BvbGwtdW50aWwuY2pzJztcblxuY29uc3QgREVGQVVMVF9QT0xMX0lOVEVSVkFMX0lOX01JTExJU0VDT05EUyA9IDUwMDtcbmNvbnN0IERFRkFVTFRfUE9MTF9USU1FT1VUX0lOX01JTExJU0VDT05EUyA9IDEyMF8wMDA7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHBvbGxJbk9ic2lkaWFufS4gTWlycm9ycyB7QGxpbmsgRXZhbEluT2JzaWRpYW5QYXJhbXN9IGZvclxuICogdGhlIHNoYXJlZCBmb3J3YXJkZWQgZmllbGRzIChgaW5wdXRgIC8gYGNvbnRleHRJZGAgLyBgdHJhbnNwb3J0YCAvIGB2YXVsdFBhdGhgKTtcbiAqIGBzdGFydGAgLyBgcG9sbGAgYXJlIHRoZSBpbi1PYnNpZGlhbiBjbG9zdXJlcyBhbmQgYHVudGlsYCBpcyB0aGUgTm9kZS1zaWRlXG4gKiBhY2NlcHRhbmNlIHByZWRpY2F0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2xsSW5PYnNpZGlhblBhcmFtczxJbnB1dCBleHRlbmRzIEdlbmVyaWNPYmplY3QsIFBvbGxSZXN1bHQsIFRDb250ZXh0SWQgZXh0ZW5kcyBDb250ZXh0SWQ8dW5rbm93bj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+IHtcbiAgLyoqXG4gICAqIEEge0BsaW5rIENvbnRleHRJZH0gc2hhcmVkIGJ5IGBzdGFydGAgYW5kIGBwb2xsYCwgc28gYHN0YXJ0YCBjYW4gc3Rhc2hcbiAgICogbm9uLXNlcmlhbGl6YWJsZSBzdGF0ZSB0aGF0IGBwb2xsYCBsYXRlciByZWFkcy4gV2hlbiBvbWl0dGVkLCBlYWNoIGNsb3N1cmVcbiAgICogZ2V0cyBhIGZyZXNoIGVtcHR5IGBjb250ZXh0YC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRJZD86IFRDb250ZXh0SWQ7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgYXJndW1lbnRzIHBhc3NlZCB0byBib3RoIGBzdGFydGAgYW5kIGBwb2xsYCAoc2VyaWFsaXplZCBsaWtlXG4gICAqIHtAbGluayBFdmFsSW5PYnNpZGlhblBhcmFtcy5pbnB1dH0pLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXQ/OiBJbnB1dDtcblxuICAvKipcbiAgICogRGVsYXkgYmV0d2VlbiBgcG9sbGAgYXR0ZW1wdHMsIGluIG1pbGxpc2Vjb25kcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYDUwMGBcbiAgICovXG4gIHJlYWRvbmx5IGludGVydmFsSW5NaWxsaXNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBjbG9zdXJlIHBvbGxlZCByZXBlYXRlZGx5IGluc2lkZSBPYnNpZGlhbi4gS2VlcCBpdCBzaG9ydCAod2VsbCB1bmRlciB0aGVcbiAgICogfjMwcyBDRFAgY2FwKTogaXQgc2hvdWxkIHJlYWQgYW5kIHJldHVybiBhIEpTT04tc2VyaWFsaXphYmxlIHN0YXR1cywgbm90XG4gICAqIGF3YWl0IHRoZSBsb25nIG9wZXJhdGlvbiBpdHNlbGYuXG4gICAqL1xuICByZWFkb25seSBwb2xsOiAodGhpczogdm9pZCwgaW5wdXQ6IENvbW1vbkFyZ3VtZW50cyAmIENvbnRleHRBcmd1bWVudHM8VENvbnRleHRJZD4gJiBJbnB1dCkgPT4gUHJvbWlzYWJsZTxQb2xsUmVzdWx0PjtcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgY2xvc3VyZSBydW4gKipvbmNlKiogYmVmb3JlIHBvbGxpbmcgYmVnaW5zLCB0byBraWNrIG9mZiB0aGVcbiAgICogbG9uZy1ydW5uaW5nIHdvcmsgKGZpcmUtYW5kLWZvcmdldCBmcm9tIE5vZGUncyBwZXJzcGVjdGl2ZSkuIEtlZXAgaXQgc2hvcnQgXHUyMDE0XG4gICAqIHN0YXJ0IHRoZSB3b3JrIGFuZCByZXR1cm47IGRvIG5vdCBhd2FpdCBpdCB0byBjb21wbGV0aW9uIGhlcmUuXG4gICAqL1xuICByZWFkb25seSBzdGFydD86ICh0aGlzOiB2b2lkLCBpbnB1dDogQ29tbW9uQXJndW1lbnRzICYgQ29udGV4dEFyZ3VtZW50czxUQ29udGV4dElkPiAmIElucHV0KSA9PiBQcm9taXNhYmxlPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBUb3RhbCBidWRnZXQgYmVmb3JlIHRoZSBwb2xsIHJlamVjdHMsIGluIG1pbGxpc2Vjb25kcy5cbiAgICpcbiAgICogQGRlZmF1bHQgYDEyMDAwMGBcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRJbk1pbGxpc2Vjb25kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgZGV0YWlsIGFwcGVuZGVkIHRvIHRoZSB0aW1lb3V0IGVycm9yIG1lc3NhZ2UuXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0TWVzc2FnZT86IHN0cmluZztcblxuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIHRyYW5zcG9ydCAoZm9yd2FyZGVkIHRvIGV2ZXJ5IHVuZGVybHlpbmcgYGV2YWxJbk9ic2lkaWFuYCkuXG4gICAqL1xuICByZWFkb25seSB0cmFuc3BvcnQ/OiBPYnNpZGlhblRyYW5zcG9ydDtcblxuICAvKipcbiAgICogV2hldGhlciBhIGdpdmVuIGBwb2xsYCByZXN1bHQgaXMgYWNjZXB0YWJsZSwgZXZhbHVhdGVkIGluICoqTm9kZSoqLiBSZXR1cm5pbmdcbiAgICogYHRydWVgIHJlc29sdmVzIHtAbGluayBwb2xsSW5PYnNpZGlhbn0gd2l0aCB0aGF0IHJlc3VsdC5cbiAgICovXG4gIHJlYWRvbmx5IHVudGlsOiAodGhpczogdm9pZCwgcmVzdWx0OiBQb2xsUmVzdWx0KSA9PiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgdmF1bHQgcGF0aCB0byBldmFsdWF0ZSBhZ2FpbnN0IChmb3J3YXJkZWQgdG8gZXZlcnkgdW5kZXJseWluZ1xuICAgKiBgZXZhbEluT2JzaWRpYW5gKS5cbiAgICovXG4gIHJlYWRvbmx5IHZhdWx0UGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBLaWNrcyBvZmYgYW4gb3B0aW9uYWwgYHN0YXJ0YCBjbG9zdXJlIG9uY2UsIHRoZW4gcG9sbHMgYHBvbGxgIGZyb20gTm9kZSB1bnRpbFxuICogYHVudGlsYCBhY2NlcHRzIGEgcmVzdWx0IG9yIHRoZSB0aW1lb3V0IGVsYXBzZXMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwb2xsIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGZpcnN0IGFjY2VwdGVkIGBwb2xsYCByZXN1bHQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwb2xsSW5PYnNpZGlhbjxJbnB1dCBleHRlbmRzIEdlbmVyaWNPYmplY3QsIFBvbGxSZXN1bHQsIFRDb250ZXh0SWQgZXh0ZW5kcyBDb250ZXh0SWQ8dW5rbm93bj4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ+KFxuICBwYXJhbXM6IFBvbGxJbk9ic2lkaWFuUGFyYW1zPElucHV0LCBQb2xsUmVzdWx0LCBUQ29udGV4dElkPlxuKTogUHJvbWlzZTxQb2xsUmVzdWx0PiB7XG4gIGNvbnN0IHtcbiAgICBjb250ZXh0SWQsXG4gICAgaW5wdXQsXG4gICAgaW50ZXJ2YWxJbk1pbGxpc2Vjb25kcyA9IERFRkFVTFRfUE9MTF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMsXG4gICAgcG9sbCxcbiAgICBzdGFydCxcbiAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHMgPSBERUZBVUxUX1BPTExfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMsXG4gICAgdGltZW91dE1lc3NhZ2UsXG4gICAgdHJhbnNwb3J0LFxuICAgIHVudGlsLFxuICAgIHZhdWx0UGF0aFxuICB9ID0gcGFyYW1zO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIHJ1bkV2YWw8UmVzdWx0PihjYWxsYmFjazogKGZ1bmN0aW9uQXJndW1lbnRzOiBDb21tb25Bcmd1bWVudHMgJiBDb250ZXh0QXJndW1lbnRzPFRDb250ZXh0SWQ+ICYgSW5wdXQpID0+IFByb21pc2FibGU8UmVzdWx0Pik6IFByb21pc2U8UmVzdWx0PiB7XG4gICAgY29uc3QgZXZhbFBhcmFtczogRXZhbEluT2JzaWRpYW5QYXJhbXM8SW5wdXQsIFJlc3VsdCwgVENvbnRleHRJZD4gPSB7XG4gICAgICBjYWxsYmFjayxcbiAgICAgIC4uLihpbnB1dCAhPT0gdW5kZWZpbmVkICYmIHsgaW5wdXQgfSksXG4gICAgICAuLi4oY29udGV4dElkICE9PSB1bmRlZmluZWQgJiYgeyBjb250ZXh0SWQgfSksXG4gICAgICAuLi4odHJhbnNwb3J0ICE9PSB1bmRlZmluZWQgJiYgeyB0cmFuc3BvcnQgfSksXG4gICAgICAuLi4odmF1bHRQYXRoICE9PSB1bmRlZmluZWQgJiYgeyB2YXVsdFBhdGggfSlcbiAgICB9O1xuICAgIHJldHVybiBldmFsSW5PYnNpZGlhbjxJbnB1dCwgUmVzdWx0LCBUQ29udGV4dElkPihldmFsUGFyYW1zKTtcbiAgfVxuXG4gIGlmIChzdGFydCkge1xuICAgIGF3YWl0IHJ1bkV2YWwoc3RhcnQpO1xuICB9XG5cbiAgcmV0dXJuIHBvbGxVbnRpbDxQb2xsUmVzdWx0Pih7XG4gICAgYXR0ZW1wdDogYXN5bmMgKCkgPT4gcnVuRXZhbChwb2xsKSxcbiAgICBpbnRlcnZhbEluTWlsbGlzZWNvbmRzLFxuICAgIG5vd0luTWlsbGlzZWNvbmRzOiAoKSA9PiBEYXRlLm5vdygpLFxuICAgIHNsZWVwOiBhc3luYyAobWlsbGlzZWNvbmRzOiBudW1iZXIpID0+IHtcbiAgICAgIGF3YWl0IHNsZWVwKG1pbGxpc2Vjb25kcyk7XG4gICAgfSxcbiAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHMsXG4gICAgdW50aWwsXG4gICAgLi4uKHRpbWVvdXRNZXNzYWdlICE9PSB1bmRlZmluZWQgJiYgeyB0aW1lb3V0TWVzc2FnZSB9KVxuICB9KTtcbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE0QkEsc0JBQW9DO0FBVXBDLHdCQUEwQjtBQUMxQiw4QkFBK0I7QUFDL0Isd0JBQTBCO0FBRTFCLE1BQU0sd0NBQXdDO0FBQzlDLE1BQU0sdUNBQXVDO0FBZ0Y3QyxlQUFzQixlQUNwQixRQUNxQjtBQUNyQixRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBLHlCQUF5QjtBQUFBLElBQ3pCO0FBQUEsSUFDQTtBQUFBLElBQ0Esd0JBQXdCO0FBQUEsSUFDeEI7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFFSixpQkFBZSxRQUFnQixVQUE4SDtBQUMzSixVQUFNLGFBQThEO0FBQUEsTUFDbEU7QUFBQSxNQUNBLEdBQUksVUFBVSxVQUFhLEVBQUUsTUFBTTtBQUFBLE1BQ25DLEdBQUksY0FBYyxVQUFhLEVBQUUsVUFBVTtBQUFBLE1BQzNDLEdBQUksY0FBYyxVQUFhLEVBQUUsVUFBVTtBQUFBLE1BQzNDLEdBQUksY0FBYyxVQUFhLEVBQUUsVUFBVTtBQUFBLElBQzdDO0FBQ0EsZUFBTyx3Q0FBMEMsVUFBVTtBQUFBLEVBQzdEO0FBRUEsTUFBSSxPQUFPO0FBQ1QsVUFBTSxRQUFRLEtBQUs7QUFBQSxFQUNyQjtBQUVBLGFBQU8sNkJBQXNCO0FBQUEsSUFDM0IsU0FBUyxZQUFZLFFBQVEsSUFBSTtBQUFBLElBQ2pDO0FBQUEsSUFDQSxtQkFBbUIsTUFBTSxLQUFLLElBQUk7QUFBQSxJQUNsQyxPQUFPLE9BQU8saUJBQXlCO0FBQ3JDLGdCQUFNLGdCQUFBQSxZQUFNLFlBQVk7QUFBQSxJQUMxQjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSxHQUFJLG1CQUFtQixVQUFhLEVBQUUsZUFBZTtBQUFBLEVBQ3ZELENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFsic2xlZXAiXQp9Cg==
|
|
@@ -55,13 +55,13 @@ export interface PollInObsidianParams<Input extends GenericObject, PollResult, T
|
|
|
55
55
|
* ~30s CDP cap): it should read and return a JSON-serializable status, not
|
|
56
56
|
* await the long operation itself.
|
|
57
57
|
*/
|
|
58
|
-
poll(this: void, input: CommonArguments & ContextArguments<TContextId> & Input)
|
|
58
|
+
readonly poll: (this: void, input: CommonArguments & ContextArguments<TContextId> & Input) => Promisable<PollResult>;
|
|
59
59
|
/**
|
|
60
60
|
* An optional closure run **once** before polling begins, to kick off the
|
|
61
61
|
* long-running work (fire-and-forget from Node's perspective). Keep it short —
|
|
62
62
|
* start the work and return; do not await it to completion here.
|
|
63
63
|
*/
|
|
64
|
-
start
|
|
64
|
+
readonly start?: (this: void, input: CommonArguments & ContextArguments<TContextId> & Input) => Promisable<unknown>;
|
|
65
65
|
/**
|
|
66
66
|
* Total budget before the poll rejects, in milliseconds.
|
|
67
67
|
*
|
|
@@ -80,7 +80,7 @@ export interface PollInObsidianParams<Input extends GenericObject, PollResult, T
|
|
|
80
80
|
* Whether a given `poll` result is acceptable, evaluated in **Node**. Returning
|
|
81
81
|
* `true` resolves {@link pollInObsidian} with that result.
|
|
82
82
|
*/
|
|
83
|
-
until(this: void, result: PollResult)
|
|
83
|
+
readonly until: (this: void, result: PollResult) => boolean;
|
|
84
84
|
/**
|
|
85
85
|
* The vault path to evaluate against (forwarded to every underlying
|
|
86
86
|
* `evalInObsidian`).
|
|
@@ -40,4 +40,4 @@ async function pollUntil(params) {
|
|
|
40
40
|
0 && (module.exports = {
|
|
41
41
|
pollUntil
|
|
42
42
|
});
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BvbGwtdW50aWwudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBQdXJlIHBvbGwtdW50aWwtc2F0aXNmaWVkIGxvb3A6IHJlcGVhdGVkbHkgcnVucyBhbiBhc3luYyBgYXR0ZW1wdGAsIHJldHVybmluZ1xuICogaXRzIHJlc3VsdCBvbmNlIGB1bnRpbGAgYWNjZXB0cyBpdCwgb3IgdGhyb3dpbmcgd2hlbiBhIHRpbWVvdXQgZWxhcHNlcy5cbiAqXG4gKiBFeHRyYWN0ZWQgZnJvbSB0aGUgaW50ZWdyYXRpb24tb25seSB7QGxpbmsgcG9sbEluT2JzaWRpYW59IHdyYXBwZXIgKHdoaWNoIGJpbmRzXG4gKiBgYXR0ZW1wdGAgdG8gYW4gYGV2YWxJbk9ic2lkaWFuYCBjYWxsIGFuZCBpcyBleGNsdWRlZCBmcm9tIHVuaXQgdGVzdHMpIHNvIHRoZVxuICogdGltaW5nL3RpbWVvdXQgbG9naWMgc3RheXMgdW5pdC10ZXN0YWJsZS4gVGhlIGNsb2NrIGFuZCBzbGVlcCBhcmUgaW5qZWN0ZWQgc29cbiAqIHRoZSBsb29wIGlzIGRldGVybWluaXN0aWMgdW5kZXIgdGVzdC5cbiAqL1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBwb2xsVW50aWx9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvbGxVbnRpbFBhcmFtczxSZXN1bHQ+
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3BvbGwtdW50aWwudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBQdXJlIHBvbGwtdW50aWwtc2F0aXNmaWVkIGxvb3A6IHJlcGVhdGVkbHkgcnVucyBhbiBhc3luYyBgYXR0ZW1wdGAsIHJldHVybmluZ1xuICogaXRzIHJlc3VsdCBvbmNlIGB1bnRpbGAgYWNjZXB0cyBpdCwgb3IgdGhyb3dpbmcgd2hlbiBhIHRpbWVvdXQgZWxhcHNlcy5cbiAqXG4gKiBFeHRyYWN0ZWQgZnJvbSB0aGUgaW50ZWdyYXRpb24tb25seSB7QGxpbmsgcG9sbEluT2JzaWRpYW59IHdyYXBwZXIgKHdoaWNoIGJpbmRzXG4gKiBgYXR0ZW1wdGAgdG8gYW4gYGV2YWxJbk9ic2lkaWFuYCBjYWxsIGFuZCBpcyBleGNsdWRlZCBmcm9tIHVuaXQgdGVzdHMpIHNvIHRoZVxuICogdGltaW5nL3RpbWVvdXQgbG9naWMgc3RheXMgdW5pdC10ZXN0YWJsZS4gVGhlIGNsb2NrIGFuZCBzbGVlcCBhcmUgaW5qZWN0ZWQgc29cbiAqIHRoZSBsb29wIGlzIGRldGVybWluaXN0aWMgdW5kZXIgdGVzdC5cbiAqL1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBwb2xsVW50aWx9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvbGxVbnRpbFBhcmFtczxSZXN1bHQ+IHtcbiAgLyoqXG4gIFJ1bnMgb25lIGF0dGVtcHQgYW5kIHJlc29sdmVzIHdpdGggaXRzIHJlc3VsdC5cbiAgICovXG4gIHJlYWRvbmx5IGF0dGVtcHQ6ICh0aGlzOiB2b2lkKSA9PiBQcm9taXNlPFJlc3VsdD47XG5cbiAgLyoqXG4gIERlbGF5IGJldHdlZW4gYXR0ZW1wdHMsIGluIG1pbGxpc2Vjb25kcy5cbiAgICovXG4gIHJlYWRvbmx5IGludGVydmFsSW5NaWxsaXNlY29uZHM6IG51bWJlcjtcblxuICAvKipcbiAgUmV0dXJucyB0aGUgY3VycmVudCB0aW1lIGluIG1pbGxpc2Vjb25kcyAoaW5qZWN0ZWQgZm9yIGRldGVybWluaXN0aWMgdGVzdHMpLlxuICAgKi9cbiAgcmVhZG9ubHkgbm93SW5NaWxsaXNlY29uZHM6ICh0aGlzOiB2b2lkKSA9PiBudW1iZXI7XG5cbiAgLyoqXG4gIFNsZWVwcyBmb3IgdGhlIGdpdmVuIG51bWJlciBvZiBtaWxsaXNlY29uZHMgKGluamVjdGVkIGZvciBkZXRlcm1pbmlzdGljIHRlc3RzKS5cbiAgICovXG4gIHJlYWRvbmx5IHNsZWVwOiAodGhpczogdm9pZCwgbWlsbGlzZWNvbmRzOiBudW1iZXIpID0+IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gIFRvdGFsIGJ1ZGdldCBiZWZvcmUgdGhlIHBvbGwgcmVqZWN0cywgaW4gbWlsbGlzZWNvbmRzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzOiBudW1iZXI7XG5cbiAgLyoqXG4gIE9wdGlvbmFsIGRldGFpbCBhcHBlbmRlZCB0byB0aGUgdGltZW91dCBlcnJvciBtZXNzYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dE1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gIFdoZXRoZXIgYSBnaXZlbiBhdHRlbXB0IHJlc3VsdCBpcyBhY2NlcHRhYmxlIChzdG9wcyB0aGUgcG9sbCkuXG4gICAqL1xuICByZWFkb25seSB1bnRpbDogKHRoaXM6IHZvaWQsIHJlc3VsdDogUmVzdWx0KSA9PiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJ1bnMgYGF0dGVtcHRgIGltbWVkaWF0ZWx5LCB0aGVuIHJlcGVhdGVkbHkgZXZlcnkgYGludGVydmFsSW5NaWxsaXNlY29uZHNgLFxuICogdW50aWwgYHVudGlsKHJlc3VsdClgIGlzIHRydXRoeSBcdTIwMTQgcmVzb2x2aW5nIHdpdGggdGhhdCByZXN1bHQgXHUyMDE0IG9yIHRoZVxuICogYHRpbWVvdXRJbk1pbGxpc2Vjb25kc2AgYnVkZ2V0IGVsYXBzZXMsIGF0IHdoaWNoIHBvaW50IGl0IHJlamVjdHMuIEF0IGxlYXN0IG9uZVxuICogYXR0ZW1wdCBhbHdheXMgcnVuczsgdGhlIHRpbWVvdXQgaXMgY2hlY2tlZCBhZnRlciBlYWNoIHVuc2F0aXNmaWVkIGF0dGVtcHQsIHNvXG4gKiBhIHNsb3cgc2luZ2xlIGF0dGVtcHQgY2Fubm90IGJlIGludGVycnVwdGVkIG1pZC1mbGlnaHQgYnV0IG5vIGZ1cnRoZXIgYXR0ZW1wdFxuICogc3RhcnRzIHBhc3QgdGhlIGRlYWRsaW5lLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcG9sbCBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBmaXJzdCBhY2NlcHRlZCBhdHRlbXB0IHJlc3VsdC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBvbGxVbnRpbDxSZXN1bHQ+KHBhcmFtczogUG9sbFVudGlsUGFyYW1zPFJlc3VsdD4pOiBQcm9taXNlPFJlc3VsdD4ge1xuICBjb25zdCB7IGF0dGVtcHQsIGludGVydmFsSW5NaWxsaXNlY29uZHMsIG5vd0luTWlsbGlzZWNvbmRzLCBzbGVlcCwgdGltZW91dEluTWlsbGlzZWNvbmRzLCB0aW1lb3V0TWVzc2FnZSwgdW50aWwgfSA9IHBhcmFtcztcbiAgY29uc3QgZGVhZGxpbmUgPSBub3dJbk1pbGxpc2Vjb25kcygpICsgdGltZW91dEluTWlsbGlzZWNvbmRzO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5uZWNlc3NhcnktY29uZGl0aW9uIC0tIExvb3AgZXhpdHMgdmlhIHJldHVybiBvciB0aHJvdy5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBhdHRlbXB0KCk7XG4gICAgaWYgKHVudGlsKHJlc3VsdCkpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGlmIChub3dJbk1pbGxpc2Vjb25kcygpID49IGRlYWRsaW5lKSB7XG4gICAgICBjb25zdCBzdWZmaXggPSB0aW1lb3V0TWVzc2FnZSA9PT0gdW5kZWZpbmVkID8gJycgOiBgOiAke3RpbWVvdXRNZXNzYWdlfWA7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHBvbGxJbk9ic2lkaWFuIHRpbWVkIG91dCBhZnRlciAke1N0cmluZyh0aW1lb3V0SW5NaWxsaXNlY29uZHMpfSBtaWxsaXNlY29uZHMke3N1ZmZpeH1gKTtcbiAgICB9XG4gICAgYXdhaXQgc2xlZXAoaW50ZXJ2YWxJbk1pbGxpc2Vjb25kcyk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUErREEsZUFBc0IsVUFBa0IsUUFBa0Q7QUFDeEYsUUFBTSxFQUFFLFNBQVMsd0JBQXdCLG1CQUFtQixPQUFPLHVCQUF1QixnQkFBZ0IsTUFBTSxJQUFJO0FBQ3BILFFBQU0sV0FBVyxrQkFBa0IsSUFBSTtBQUd2QyxTQUFPLE1BQU07QUFDWCxVQUFNLFNBQVMsTUFBTSxRQUFRO0FBQzdCLFFBQUksTUFBTSxNQUFNLEdBQUc7QUFDakIsYUFBTztBQUFBLElBQ1Q7QUFDQSxRQUFJLGtCQUFrQixLQUFLLFVBQVU7QUFDbkMsWUFBTSxTQUFTLG1CQUFtQixTQUFZLEtBQUssS0FBSyxjQUFjO0FBQ3RFLFlBQU0sSUFBSSxNQUFNLGtDQUFrQyxPQUFPLHFCQUFxQixDQUFDLGdCQUFnQixNQUFNLEVBQUU7QUFBQSxJQUN6RztBQUNBLFVBQU0sTUFBTSxzQkFBc0I7QUFBQSxFQUNwQztBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -16,7 +16,7 @@ export interface PollUntilParams<Result> {
|
|
|
16
16
|
/**
|
|
17
17
|
Runs one attempt and resolves with its result.
|
|
18
18
|
*/
|
|
19
|
-
attempt(this: void)
|
|
19
|
+
readonly attempt: (this: void) => Promise<Result>;
|
|
20
20
|
/**
|
|
21
21
|
Delay between attempts, in milliseconds.
|
|
22
22
|
*/
|
|
@@ -24,11 +24,11 @@ export interface PollUntilParams<Result> {
|
|
|
24
24
|
/**
|
|
25
25
|
Returns the current time in milliseconds (injected for deterministic tests).
|
|
26
26
|
*/
|
|
27
|
-
nowInMilliseconds(this: void)
|
|
27
|
+
readonly nowInMilliseconds: (this: void) => number;
|
|
28
28
|
/**
|
|
29
29
|
Sleeps for the given number of milliseconds (injected for deterministic tests).
|
|
30
30
|
*/
|
|
31
|
-
sleep(this: void, milliseconds: number)
|
|
31
|
+
readonly sleep: (this: void, milliseconds: number) => Promise<void>;
|
|
32
32
|
/**
|
|
33
33
|
Total budget before the poll rejects, in milliseconds.
|
|
34
34
|
*/
|
|
@@ -40,7 +40,7 @@ export interface PollUntilParams<Result> {
|
|
|
40
40
|
/**
|
|
41
41
|
Whether a given attempt result is acceptable (stops the poll).
|
|
42
42
|
*/
|
|
43
|
-
until(this: void, result: Result)
|
|
43
|
+
readonly until: (this: void, result: Result) => boolean;
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
46
|
* Runs `attempt` immediately, then repeatedly every `intervalInMilliseconds`,
|
|
@@ -59,4 +59,4 @@ function attachProcessCapture(child, params) {
|
|
|
59
59
|
0 && (module.exports = {
|
|
60
60
|
attachProcessCapture
|
|
61
61
|
});
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3Byb2Nlc3MtY2FwdHVyZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEF0dGFjaGVzIG91dHB1dCBjYXB0dXJlIGFuZCBleGl0IG9ic2VydmF0aW9uIHRvIGEgc3Bhd25lZCBjaGlsZCBwcm9jZXNzLlxuICpcbiAqIEEgbG9uZy1ydW5uaW5nIGNoaWxkIHNwYXduZWQgd2l0aCBwaXBlZCBzdGRpbyBuZWVkcyB0aHJlZSB0aGluZ3MgZG9uZSB0byBpdCxcbiAqIGFuZCBnZXR0aW5nIGFueSBvZiB0aGVtIHdyb25nIGlzIGl0cyBvd24gYnVnOiBpdHMgcGlwZXMgbXVzdCBiZSAqKmRyYWluZWQqKlxuICogKGEgZnVsbCBPUyBwaXBlIGJ1ZmZlciBibG9ja3MgdGhlIHdyaXRlciBcdTIwMTQgYSBjaGF0dHkgcmVuZGVyZXIgd291bGQgaGFuZyB0aGVcbiAqIGFwcCBpdCBiZWxvbmdzIHRvKSwgaXRzIG91dHB1dCBtdXN0IGJlIGtlcHQgKipib3VuZGVkKiogKGFuIGhvdXIgb2YgbG9ncyBpc1xuICogbm90IGEgZGlhZ25vc3RpYyksIGFuZCBpdHMgYGV4aXRgIC8gYGVycm9yYCBtdXN0IGJlICoqcmVjb3JkZWQqKiBzbyBhIGNhbGxlclxuICogdGhhdCBsYXRlciBmaW5kcyB0aGUgcHJvY2VzcyB1bnJlYWNoYWJsZSBjYW4gc2F5IHdoeSBpbnN0ZWFkIG9mIGd1ZXNzaW5nLlxuICpcbiAqIEV4dHJhY3RlZCBzbyB0aGUgc3RhdGUgbWFjaGluZSBpcyB1bml0LXRlc3RhYmxlOiB0aGUgbGF1bmNoZXJzIHRoYXQgdXNlIGl0XG4gKiAoYG9ic2lkaWFuLWluc3RhbmNlLnRzYCwgYW5kIHRoZSBlbXVsYXRvci9BcHBpdW0gc3Bhd25zIGluXG4gKiBgdHJhbnNwb3J0LWZhY3RvcnkudHNgKSBhcmUgaW50ZWdyYXRpb24tdGltZSBnbHVlIGV4Y2x1ZGVkIGZyb20gdW5pdCB0ZXN0cyxcbiAqIHdoaWNoIGlzIGhvdyB0aGUgb3duZWQgT2JzaWRpYW4gaW5zdGFuY2UgY2FtZSB0byBiZSBzcGF3bmVkIGBzdGRpbzogJ2lnbm9yZSdgXG4gKiB3aXRoIG5vIGBleGl0YCBsaXN0ZW5lciBhdCBhbGwgXHUyMDE0IGl0cyBkZWF0aCB3YXMgdW5vYnNlcnZhYmxlIGJ5IGNvbnN0cnVjdGlvbi5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IENoaWxkUHJvY2VzcyB9IGZyb20gJ25vZGU6Y2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgdHlwZSB7IFJlYWRhYmxlIH0gZnJvbSAnbm9kZTpzdHJlYW0nO1xuXG5pbXBvcnQgdHlwZSB7IFByb2Nlc3NFeGl0SW5mbyB9IGZyb20gJy4vcHJvY2Vzcy1leGl0LW1lc3NhZ2UuY2pzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgYXR0YWNoUHJvY2Vzc0NhcHR1cmV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0dGFjaFByb2Nlc3NDYXB0dXJlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBIb3cgbWFueSBjaGFyYWN0ZXJzIG9mIHRoZSBtb3N0IHJlY2VudCBvdXRwdXQgdG8ga2VlcC4gT2xkZXIgb3V0cHV0IGlzXG4gICAqIGRyb3BwZWQgZnJvbSB0aGUgZnJvbnQgYXMgbmV3IG91dHB1dCBhcnJpdmVzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4T3V0cHV0TGVuZ3RoSW5DaGFyYWN0ZXJzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENhbGxlZCBmb3IgZXZlcnkgY2h1bmsgYXMgaXQgYXJyaXZlcywgZm9yIGNhbGxlcnMgdGhhdCB3YW50IHRoZSBvdXRwdXRcbiAgICogKipsaXZlKiogKGxvZ2dlZCBhcyB0aGUgcHJvY2VzcyBydW5zKSByYXRoZXIgdGhhbiBvbmx5IGFzIGEgcG9zdC1tb3J0ZW1cbiAgICogdGFpbC4gRmlyZXMgcmVnYXJkbGVzcyBvZiB7QGxpbmsgUHJvY2Vzc0NhcHR1cmUuc3RvcENhcHR1cmV9LCB3aGljaCBmcmVlemVzXG4gICAqIHRoZSByZXRhaW5lZCB0YWlsIGFuZCBub3RoaW5nIGVsc2UuXG4gICAqL1xuICByZWFkb25seSBvbkNodW5rPzogKChjaHVuazogUHJvY2Vzc091dHB1dENodW5rKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBBIGNoaWxkIHByb2Nlc3MncyBjYXB0dXJlZCBvdXRwdXQgYW5kIGV4aXQgc3RhdHVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2Nlc3NDYXB0dXJlIHtcbiAgLyoqXG4gIFJldHVybnMgdGhlIGV4aXQgLyBzcGF3bi1mYWlsdXJlIGRldGFpbHMgb25jZSB0aGUgcHJvY2VzcyBpcyBubyBsb25nZXIgcnVubmluZywgb3RoZXJ3aXNlIGB1bmRlZmluZWRgLlxuICAgKi9cbiAgcmVhZEV4aXRJbmZvOiAoKSA9PiBQcm9jZXNzRXhpdEluZm8gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gIFJldHVybnMgdGhlIGNhcHR1cmVkIHN0ZG91dCtzdGRlcnIsIGJvdW5kZWQgdG8gdGhlIG1vc3QgcmVjZW50IG91dHB1dC5cbiAgICovXG4gIHJlYWRPdXRwdXQ6ICgpID0+IHN0cmluZztcblxuICAvKipcbiAgICogU3RvcHMgYWNjdW11bGF0aW5nIG91dHB1dCwgZnJlZXppbmcgdGhlIHRhaWwgYXQgd2hhdCBoYXMgYXJyaXZlZCBzbyBmYXIuXG4gICAqIENhbGwgb25jZSBzdGFydHVwIGhhcyBzdWNjZWVkZWQgYW5kIHRoZSB0YWlsIGhhcyBzZXJ2ZWQgaXRzIHB1cnBvc2UuXG4gICAqXG4gICAqIFRoZSBgZGF0YWAgbGlzdGVuZXJzIHN0YXkgYXR0YWNoZWQgZGVsaWJlcmF0ZWx5LCBzbyB0aGUgcGlwZXMga2VlcCBkcmFpbmluZ1xuICAgKiBmb3IgdGhlIHJlc3Qgb2YgdGhlIHByb2Nlc3MncyBsaWZlLlxuICAgKi9cbiAgc3RvcENhcHR1cmU6ICgpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogT25lIGNodW5rIG9mIGEgY2hpbGQgcHJvY2VzcydzIG91dHB1dCwgYW5kIHdoaWNoIHN0cmVhbSBpdCBjYW1lIGZyb20uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc091dHB1dENodW5rIHtcbiAgLyoqXG4gIFRoZSBzdHJlYW0gdGhlIGNodW5rIHdhcyB3cml0dGVuIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RyZWFtOiAnc3RkZXJyJyB8ICdzdGRvdXQnO1xuXG4gIC8qKlxuICBUaGUgY2h1bmsncyB0ZXh0LlxuICAgKi9cbiAgcmVhZG9ubHkgdGV4dDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBgdW5yZWZgIGEgcGlwZWQgc3RkaW8gc3RyZWFtIGNhcnJpZXMgdGhyb3VnaCBpdHMgdW5kZXJseWluZyBzb2NrZXQsIHdoaWNoXG4gKiBgUmVhZGFibGVgIGFsb25lIGRvZXMgbm90IGRlY2xhcmUuXG4gKi9cbmludGVyZmFjZSBTdHJlYW1XaXRoVW5yZWYge1xuICB1bnJlZjogKCkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBBdHRhY2hlcyBvdXRwdXQgY2FwdHVyZSBhbmQgZXhpdCBvYnNlcnZhdGlvbiB0byBhbiBhbHJlYWR5LXNwYXduZWQgcHJvY2Vzcy5cbiAqXG4gKiBUb2xlcmF0ZXMgYSBwcm9jZXNzIHNwYXduZWQgd2l0aG91dCBwaXBlcyAoYHN0ZGlvOiAnaWdub3JlJ2AgbGVhdmVzXG4gKiBgc3Rkb3V0YCAvIGBzdGRlcnJgIGBudWxsYCk6IHRoZSBleGl0IGhhbGYgc3RpbGwgd29ya3MsIGFuZCB0aGUgY2FwdHVyZWRcbiAqIG91dHB1dCBzdGF5cyBlbXB0eS5cbiAqXG4gKiBAcGFyYW0gY2hpbGQgLSBUaGUgc3Bhd25lZCBwcm9jZXNzLlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB0YWlsIGJ1ZGdldCwgYW5kIGFuIG9wdGlvbmFsIGxpdmUtb3V0cHV0IGNhbGxiYWNrLlxuICogQHJldHVybnMgUmVhZGVycyBmb3IgdGhlIGNhcHR1cmVkIG91dHB1dCBhbmQgdGhlIGV4aXQgc3RhdHVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXR0YWNoUHJvY2Vzc0NhcHR1cmUoY2hpbGQ6IENoaWxkUHJvY2VzcywgcGFyYW1zOiBBdHRhY2hQcm9jZXNzQ2FwdHVyZU9wdGlvbnMpOiBQcm9jZXNzQ2FwdHVyZSB7XG4gIGNvbnN0IHsgbWF4T3V0cHV0TGVuZ3RoSW5DaGFyYWN0ZXJzLCBvbkNodW5rIH0gPSBwYXJhbXM7XG5cbiAgbGV0IGNhcHR1cmVkT3V0cHV0ID0gJyc7XG4gIGxldCBleGl0SW5mbzogUHJvY2Vzc0V4aXRJbmZvIHwgdW5kZWZpbmVkO1xuICBsZXQgaXNDYXB0dXJpbmcgPSB0cnVlO1xuXG4gIGF0dGFjaFN0cmVhbShjaGlsZC5zdGRvdXQsICdzdGRvdXQnKTtcbiAgYXR0YWNoU3RyZWFtKGNoaWxkLnN0ZGVyciwgJ3N0ZGVycicpO1xuXG4gIGNoaWxkLm9uY2UoJ2V4aXQnLCAoY29kZTogbnVsbCB8IG51bWJlciwgc2lnbmFsOiBOb2RlSlMuU2lnbmFscyB8IG51bGwpID0+IHtcbiAgICBleGl0SW5mbyA9IHsgY29kZSwgc2lnbmFsIH07XG4gIH0pO1xuXG4gIC8qXG4gICAqIEEgc3Bhd24gZmFpbHVyZSAoZS5nLiBFTk9FTlQgZm9yIGEgbWlzc2luZyBiaW5hcnkpIGVtaXRzICdlcnJvcicsIG5vdFxuICAgKiAnZXhpdCcuIFJlY29yZCBpdCBhcyBhIHN5bnRoZXRpYyBleGl0IHNvIGEgY2FsbGVyIHBvbGxpbmcgZm9yIHJlYWRpbmVzcyBjYW5cbiAgICogZmFpbCBmYXN0IGluc3RlYWQgb2Ygc3Bpbm5pbmcgb3V0IGl0cyB3aG9sZSBidWRnZXQgYWdhaW5zdCBhIHByb2Nlc3MgdGhhdFxuICAgKiBuZXZlciBleGlzdGVkLlxuICAgKi9cbiAgY2hpbGQub25jZSgnZXJyb3InLCAoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgZXhpdEluZm8gPSB7IGNvZGU6IG51bGwsIHNpZ25hbDogbnVsbCwgc3Bhd25FcnJvcjogZXJyb3IubWVzc2FnZSB9O1xuICB9KTtcblxuICByZXR1cm4ge1xuICAgIHJlYWRFeGl0SW5mbzogKCkgPT4gZXhpdEluZm8sXG4gICAgcmVhZE91dHB1dDogKCkgPT4gY2FwdHVyZWRPdXRwdXQsXG4gICAgc3RvcENhcHR1cmU6ICgpOiB2b2lkID0+IHtcbiAgICAgIGlzQ2FwdHVyaW5nID0gZmFsc2U7XG4gICAgfVxuICB9O1xuXG4gIGZ1bmN0aW9uIGF0dGFjaFN0cmVhbShzdHJlYW06IG51bGwgfCBSZWFkYWJsZSwgbmFtZTogUHJvY2Vzc091dHB1dENodW5rWydzdHJlYW0nXSk6IHZvaWQge1xuICAgIGlmICghc3RyZWFtKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3RyZWFtLm9uKCdkYXRhJywgKGNodW5rOiBCdWZmZXIpID0+IHtcbiAgICAgIGNvbnN0IHRleHQgPSBjaHVuay50b1N0cmluZygpO1xuICAgICAgb25DaHVuaz8uKHsgc3RyZWFtOiBuYW1lLCB0ZXh0IH0pO1xuICAgICAgaWYgKGlzQ2FwdHVyaW5nKSB7XG4gICAgICAgIGNhcHR1cmVkT3V0cHV0ID0gKGNhcHR1cmVkT3V0cHV0ICsgdGV4dCkuc2xpY2UoLW1heE91dHB1dExlbmd0aEluQ2hhcmFjdGVycyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvKlxuICAgICAqIGBjaGlsZC51bnJlZigpYCBvbmx5IHJlbGVhc2VzIHRoZSBwcm9jZXNzIGhhbmRsZTsgdGhlIHN0ZGlvIHBpcGVzIGFyZVxuICAgICAqIHNlcGFyYXRlIGhhbmRsZXMgdGhhdCBrZWVwIHRoZSBldmVudCBsb29wIGFsaXZlIG9uIHRoZWlyIG93bi4gQSBoYXJuZXNzXG4gICAgICogdGhhdCBwaXBlcyBhIGRldGFjaGVkIGNoaWxkJ3Mgb3V0cHV0IHdvdWxkIHRoZW4gcmVmdXNlIHRvIGV4aXQgdW50aWwgdGhhdFxuICAgICAqIGNoaWxkIGRpZWQgXHUyMDE0IHRoZSBvcHBvc2l0ZSBvZiB3aGF0IGBkZXRhY2hlZGAgKyBgdW5yZWZgIHdhcyBhc2tlZCBmb3IuXG4gICAgICpcbiAgICAgKiBgdW5yZWZgIGxpdmVzIG9uIHRoZSB1bmRlcmx5aW5nIHNvY2tldCByYXRoZXIgdGhhbiBvbiBgUmVhZGFibGVgLCBzbyBpdCBpc1xuICAgICAqIHJlYWNoZWQgc3RydWN0dXJhbGx5OiBhIHN0cmVhbSB0aGF0IGRvZXMgbm90IGNhcnJ5IG9uZSBzaW1wbHkgc2tpcHMgdGhpcy5cbiAgICAgKi9cbiAgICAoc3RyZWFtIGFzIFBhcnRpYWw8U3RyZWFtV2l0aFVucmVmPikudW5yZWY/LigpO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBcUdPLFNBQVMscUJBQXFCLE9BQXFCLFFBQXFEO0FBQzdHLFFBQU0sRUFBRSw2QkFBNkIsUUFBUSxJQUFJO0FBRWpELE1BQUksaUJBQWlCO0FBQ3JCLE1BQUk7QUFDSixNQUFJLGNBQWM7QUFFbEIsZUFBYSxNQUFNLFFBQVEsUUFBUTtBQUNuQyxlQUFhLE1BQU0sUUFBUSxRQUFRO0FBRW5DLFFBQU0sS0FBSyxRQUFRLENBQUMsTUFBcUIsV0FBa0M7QUFDekUsZUFBVyxFQUFFLE1BQU0sT0FBTztBQUFBLEVBQzVCLENBQUM7QUFRRCxRQUFNLEtBQUssU0FBUyxDQUFDLFVBQWlCO0FBQ3BDLGVBQVcsRUFBRSxNQUFNLE1BQU0sUUFBUSxNQUFNLFlBQVksTUFBTSxRQUFRO0FBQUEsRUFDbkUsQ0FBQztBQUVELFNBQU87QUFBQSxJQUNMLGNBQWMsTUFBTTtBQUFBLElBQ3BCLFlBQVksTUFBTTtBQUFBLElBQ2xCLGFBQWEsTUFBWTtBQUN2QixvQkFBYztBQUFBLElBQ2hCO0FBQUEsRUFDRjtBQUVBLFdBQVMsYUFBYSxRQUF5QixNQUEwQztBQUN2RixRQUFJLENBQUMsUUFBUTtBQUNYO0FBQUEsSUFDRjtBQUVBLFdBQU8sR0FBRyxRQUFRLENBQUMsVUFBa0I7QUFDbkMsWUFBTSxPQUFPLE1BQU0sU0FBUztBQUM1QixnQkFBVSxFQUFFLFFBQVEsTUFBTSxLQUFLLENBQUM7QUFDaEMsVUFBSSxhQUFhO0FBQ2YsMEJBQWtCLGlCQUFpQixNQUFNLE1BQU0sQ0FBQywyQkFBMkI7QUFBQSxNQUM3RTtBQUFBLElBQ0YsQ0FBQztBQVdELElBQUMsT0FBb0MsUUFBUTtBQUFBLEVBQy9DO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -42,11 +42,11 @@ export interface ProcessCapture {
|
|
|
42
42
|
/**
|
|
43
43
|
Returns the exit / spawn-failure details once the process is no longer running, otherwise `undefined`.
|
|
44
44
|
*/
|
|
45
|
-
readExitInfo()
|
|
45
|
+
readExitInfo: () => ProcessExitInfo | undefined;
|
|
46
46
|
/**
|
|
47
47
|
Returns the captured stdout+stderr, bounded to the most recent output.
|
|
48
48
|
*/
|
|
49
|
-
readOutput()
|
|
49
|
+
readOutput: () => string;
|
|
50
50
|
/**
|
|
51
51
|
* Stops accumulating output, freezing the tail at what has arrived so far.
|
|
52
52
|
* Call once startup has succeeded and the tail has served its purpose.
|
|
@@ -54,7 +54,7 @@ export interface ProcessCapture {
|
|
|
54
54
|
* The `data` listeners stay attached deliberately, so the pipes keep draining
|
|
55
55
|
* for the rest of the process's life.
|
|
56
56
|
*/
|
|
57
|
-
stopCapture()
|
|
57
|
+
stopCapture: () => void;
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
60
60
|
* One chunk of a child process's output, and which stream it came from.
|
|
@@ -61,4 +61,4 @@ function logPlan(resolvedSpecs, entries) {
|
|
|
61
61
|
0 && (module.exports = {
|
|
62
62
|
runObsidianVersionMatrix
|
|
63
63
|
});
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3J1bi12ZXJzaW9uLW1hdHJpeC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEludGVncmF0aW9uLXRpbWUgcnVubmVyIHRoYXQgZXhlY3V0ZXMgYSBzdWl0ZSBvbmNlIHBlciAqKmRpc3RpbmN0Kiogc3VwcG9ydGVkXG4gKiBPYnNpZGlhbiB2ZXJzaW9uLlxuICpcbiAqIFRoaW4gZ2x1ZSBvdmVyIHRoZSBwdXJlIGB2ZXJzaW9uLW1hdHJpeC50c2AgZGVjaXNpb24gbGF5ZXI6IHRoZSBvbmx5IHRoaW5nc1xuICogdGhhdCBoYXBwZW4gaGVyZSBhcmUgdGhlIHNpbmdsZSBtYW5pZmVzdCBmZXRjaCBhbmQgdGhlIGxvZ2dpbmcuIEV2ZXJ5dGhpbmdcbiAqIHRoYXQgZGVjaWRlcyBcdTIwMTQgbm9ybWFsaXppbmcgdGhlIHJlcXVlc3RlZCBzcGVjaWZpZXJzLCByZXNvbHZpbmcgdGhlbSxcbiAqIGRlLWR1cGxpY2F0aW5nIG9uIHRoZSByZXNvbHZlZCB2ZXJzaW9uLCBzZXF1ZW5jaW5nIHRoZSBydW5zLCBhbmQgYnVpbGRpbmcgdGhlXG4gKiBmYWlsdXJlIHN1bW1hcnkgXHUyMDE0IGlzIHB1cmUgYW5kIHVuaXQtdGVzdGVkIG5leHQgZG9vci5cbiAqXG4gKiBUaGUgbG9vcCBsaXZlcyBhYm92ZSB0aGUgdHJhbnNwb3J0IHJhdGhlciB0aGFuIGluc2lkZSBpdCBiZWNhdXNlIGEgdGVzdFxuICogZnJhbWV3b3JrJ3MgZ2xvYmFsIHNldHVwIGNhbm5vdCByZS1ydW4gaXRzIG93biB0ZXN0IGZpbGVzOiBpdCBsYXVuY2hlcyBvbmVcbiAqIGluc3RhbmNlIGZvciBvbmUgcnVuLiBLZWVwaW5nIHRoZSBsb29wIGZyYW1ld29yay1hZ25vc3RpYyAodGhlIGNhbGxlciBzdXBwbGllc1xuICogYHJ1bmApIGlzIHdoYXQgbGV0cyBWaXRlc3QsIEplc3QsIGFuZCBtYW51YWwgY29uc3VtZXJzIGFsbCBpbmhlcml0IGl0IChMNikuXG4gKi9cblxuLyogdjggaWdub3JlIHN0YXJ0IC0tIEludGVncmF0aW9uLXRpbWUgZ2x1ZSAobmV0d29yayBmZXRjaCArIGxvZ2dpbmcpIGNvdmVyZWQgYnkgaW50ZWdyYXRpb24gdGVzdHMsIG5vdCB1bml0IHRlc3RzLiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIE9ic2lkaWFuVmVyc2lvbk1hdHJpeEVudHJ5LFxuICBSZXNvbHZlZFZlcnNpb25TcGVjXG59IGZyb20gJy4vdmVyc2lvbi1tYXRyaXguY2pzJztcblxuaW1wb3J0IHsgbG9nIH0gZnJvbSAnLi9sb2cuY2pzJztcbmltcG9ydCB7IGZldGNoRGVza3RvcFJlbGVhc2VzTWFuaWZlc3QgfSBmcm9tICcuL29ic2lkaWFuLXZlcnNpb24tc3dpdGNoLmNqcyc7XG5pbXBvcnQge1xuICBidWlsZFZlcnNpb25NYXRyaXgsXG4gIGZvcm1hdFZlcnNpb25NYXRyaXhQbGFuLFxuICBmb3JtYXRWZXJzaW9uTWF0cml4UnVuSGVhZGVyLFxuICBoYXNDaGFubmVsU3BlYyxcbiAgcmVzb2x2ZVJlcXVlc3RlZFNwZWNzLFxuICByZXNvbHZlVmVyc2lvblNwZWNzLFxuICBydW5WZXJzaW9uTWF0cml4RW50cmllc1xufSBmcm9tICcuL3ZlcnNpb24tbWF0cml4LmNqcyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHJ1bk9ic2lkaWFuVmVyc2lvbk1hdHJpeH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVuT2JzaWRpYW5WZXJzaW9uTWF0cml4UGFyYW1zIHtcbiAgLyoqXG4gICAqIFJ1bnMgdGhlIHN1aXRlcyBhZ2FpbnN0IG9uZSBjb25jcmV0ZSBPYnNpZGlhbiB2ZXJzaW9uLCB0aHJvd2luZyBvbiBmYWlsdXJlLlxuICAgKlxuICAgKiBUaGUgZW50cnkncyBgdmVyc2lvbmAgaXMgdGhlIGNvbmNyZXRlIGB4LnkuemAgdG8gcGluIFx1MjAxNCB0eXBpY2FsbHkgZm9yd2FyZGVkIHRvXG4gICAqIHRoZSB0ZXN0LXJ1bm5lciBjaGlsZCBhcyBgT0JTSURJQU5fVkVSU0lPTmAuXG4gICAqL1xuICByZWFkb25seSBydW46IChlbnRyeTogT2JzaWRpYW5WZXJzaW9uTWF0cml4RW50cnkpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBzcGVjaWZpZXJzIHRvIHJ1biBhZ2FpbnN0OiBhbiBhcnJheSwgb3IgYSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nXG4gICAqIHNvIGFuIGVudiB2YXIgY2FuIGJlIHBhc3NlZCBzdHJhaWdodCB0aHJvdWdoLlxuICAgKlxuICAgKiBFYWNoIGFjY2VwdHMgYW4gZXhwbGljaXQgYCd4LnkueidgLCBgJ3B1YmxpYy1sYXRlc3QnYCwgb3IgYCdjYXRhbHlzdC1sYXRlc3QnYC5cbiAgICogRGVmYXVsdHMgdG8gYm90aCBlbmRzIG9mIHRoZSBzdXBwb3J0ZWQgcmFuZ2Ugd2hlbiBvbWl0dGVkIG9yIGVtcHR5LCBhbmRcbiAgICogdGhlIGxpc3QgaXMgYWx3YXlzIGRlLWR1cGxpY2F0ZWQgb24gdGhlICoqcmVzb2x2ZWQqKiB2ZXJzaW9uIFx1MjAxNCBzbyB3aGVuIHB1YmxpY1xuICAgKiBoYXMgY2F1Z2h0IHVwIHRvIGNhdGFseXN0LCB0aGUgc3VpdGVzIHJ1biBvbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbnM/OiByZWFkb25seSBzdHJpbmdbXSB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSdW5zIGEgc3VpdGUgb25jZSBwZXIgZGlzdGluY3Qgc3VwcG9ydGVkIE9ic2lkaWFuIHZlcnNpb24uXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwZXItdmVyc2lvbiBydW5uZXIgYW5kIHRoZSByZXF1ZXN0ZWQgdmVyc2lvbnMuXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIG9uY2UgZXZlcnkgdmVyc2lvbiBoYXMgcnVuIHN1Y2Nlc3NmdWxseS5cbiAqIEB0aHJvd3MgRXJyb3IgaWYgbm8gdmVyc2lvbiBjb3VsZCBiZSByZXNvbHZlZCwgb3IgYW4ge0BsaW5rIEFnZ3JlZ2F0ZUVycm9yfVxuICogICBuYW1pbmcgZXZlcnkgdmVyc2lvbiB3aG9zZSBydW4gZmFpbGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuT2JzaWRpYW5WZXJzaW9uTWF0cml4KHBhcmFtczogUnVuT2JzaWRpYW5WZXJzaW9uTWF0cml4UGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgcnVuLCB2ZXJzaW9ucyB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IHsgaXNEZWZhdWx0LCBzcGVjcyB9ID0gcmVzb2x2ZVJlcXVlc3RlZFNwZWNzKHZlcnNpb25zKTtcbiAgY29uc3QgbWFuaWZlc3QgPSBoYXNDaGFubmVsU3BlYyhzcGVjcykgPyBhd2FpdCBmZXRjaERlc2t0b3BSZWxlYXNlc01hbmlmZXN0KCkgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IHsgZHJvcHBlZFNwZWNzLCByZXNvbHZlZFNwZWNzIH0gPSByZXNvbHZlVmVyc2lvblNwZWNzKHtcbiAgICBtYW5pZmVzdCxcbiAgICAvLyBUaGUgZGVmYXVsdCBsaXN0IG11c3Qgbm90IGJyZWFrIGV2ZXJ5IGNvbnN1bWVyJ3MgZ2F0ZSB3aGVuIGEgY2hhbm5lbCBpc1xuICAgIC8vIG1vbWVudGFyaWx5IGFic2VudCBmcm9tIHRoZSBtYW5pZmVzdDsgYW4gZXhwbGljaXRseSByZXF1ZXN0ZWQgc3BlY2lmaWVyXG4gICAgLy8gdGhhdCBjYW5ub3QgcmVzb2x2ZSBpcyBhIHJlYWwgZXJyb3IuXG4gICAgc2hvdWxkVG9sZXJhdGVVbnJlc29sdmFibGVTcGVjczogaXNEZWZhdWx0LFxuICAgIHNwZWNzXG4gIH0pO1xuXG4gIGZvciAoY29uc3QgeyByZWFzb24sIHNwZWMgfSBvZiBkcm9wcGVkU3BlY3MpIHtcbiAgICBsb2dNYXRyaXgoYFNraXBwaW5nIFwiJHtzcGVjfVwiOiAke3JlYXNvbn1gKTtcbiAgfVxuXG4gIGNvbnN0IGVudHJpZXMgPSBidWlsZFZlcnNpb25NYXRyaXgocmVzb2x2ZWRTcGVjcyk7XG4gIGxvZ1BsYW4ocmVzb2x2ZWRTcGVjcywgZW50cmllcyk7XG5cbiAgYXdhaXQgcnVuVmVyc2lvbk1hdHJpeEVudHJpZXMoe1xuICAgIGVudHJpZXMsXG4gICAgb25FbnRyeVN0YXJ0OiAoaGVhZGVyUGFyYW1zKSA9PiB7XG4gICAgICBsb2dNYXRyaXgoZm9ybWF0VmVyc2lvbk1hdHJpeFJ1bkhlYWRlcihoZWFkZXJQYXJhbXMpKTtcbiAgICB9LFxuICAgIHJ1blxuICB9KTtcbn1cblxuLyoqXG4gKiBMb2dzIGEgbWF0cml4IG1lc3NhZ2UgdW5kZXIgYSBjb25zaXN0ZW50IHByZWZpeC5cbiAqXG4gKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBtZXNzYWdlIHRvIGxvZy5cbiAqL1xuZnVuY3Rpb24gbG9nTWF0cml4KG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICBsb2coYFt2ZXJzaW9uLW1hdHJpeF0gJHttZXNzYWdlfWApO1xufVxuXG4vKipcbiAqIExvZ3Mgd2hhdCB0aGUgc3BlY2lmaWVycyByZXNvbHZlZCB0byBhbmQgaG93IG1hbnkgcnVucyB0aGF0IGltcGxpZXMuXG4gKlxuICogQHBhcmFtIHJlc29sdmVkU3BlY3MgLSBUaGUgcmVzb2x2ZWQgc3BlY2lmaWVycywgaW4gcmVxdWVzdGVkIG9yZGVyLlxuICogQHBhcmFtIGVudHJpZXMgLSBUaGUgZGUtZHVwbGljYXRlZCBtYXRyaXguXG4gKi9cbmZ1bmN0aW9uIGxvZ1BsYW4ocmVzb2x2ZWRTcGVjczogcmVhZG9ubHkgUmVzb2x2ZWRWZXJzaW9uU3BlY1tdLCBlbnRyaWVzOiByZWFkb25seSBPYnNpZGlhblZlcnNpb25NYXRyaXhFbnRyeVtdKTogdm9pZCB7XG4gIGZvciAoY29uc3QgbGluZSBvZiBmb3JtYXRWZXJzaW9uTWF0cml4UGxhbih7IGVudHJpZXMsIHJlc29sdmVkU3BlY3MgfSkpIHtcbiAgICBsb2dNYXRyaXgobGluZSk7XG4gIH1cbn1cblxuLyogdjggaWdub3JlIHN0b3AgKi9cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF5QkEsaUJBQW9CO0FBQ3BCLHFDQUE2QztBQUM3Qyw0QkFRTztBQWtDUCxlQUFzQix5QkFBeUIsUUFBdUQ7QUFDcEcsUUFBTSxFQUFFLEtBQUssU0FBUyxJQUFJO0FBRTFCLFFBQU0sRUFBRSxXQUFXLE1BQU0sUUFBSSw2Q0FBc0IsUUFBUTtBQUMzRCxRQUFNLGVBQVcsc0NBQWUsS0FBSyxJQUFJLFVBQU0sNkRBQTZCLElBQUk7QUFDaEYsUUFBTSxFQUFFLGNBQWMsY0FBYyxRQUFJLDJDQUFvQjtBQUFBLElBQzFEO0FBQUE7QUFBQTtBQUFBO0FBQUEsSUFJQSxpQ0FBaUM7QUFBQSxJQUNqQztBQUFBLEVBQ0YsQ0FBQztBQUVELGFBQVcsRUFBRSxRQUFRLEtBQUssS0FBSyxjQUFjO0FBQzNDLGNBQVUsYUFBYSxJQUFJLE1BQU0sTUFBTSxFQUFFO0FBQUEsRUFDM0M7QUFFQSxRQUFNLGNBQVUsMENBQW1CLGFBQWE7QUFDaEQsVUFBUSxlQUFlLE9BQU87QUFFOUIsWUFBTSwrQ0FBd0I7QUFBQSxJQUM1QjtBQUFBLElBQ0EsY0FBYyxDQUFDLGlCQUFpQjtBQUM5QixvQkFBVSxvREFBNkIsWUFBWSxDQUFDO0FBQUEsSUFDdEQ7QUFBQSxJQUNBO0FBQUEsRUFDRixDQUFDO0FBQ0g7QUFPQSxTQUFTLFVBQVUsU0FBdUI7QUFDeEMsc0JBQUksb0JBQW9CLE9BQU8sRUFBRTtBQUNuQztBQVFBLFNBQVMsUUFBUSxlQUErQyxTQUFzRDtBQUNwSCxhQUFXLFlBQVEsK0NBQXdCLEVBQUUsU0FBUyxjQUFjLENBQUMsR0FBRztBQUN0RSxjQUFVLElBQUk7QUFBQSxFQUNoQjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -26,7 +26,7 @@ export interface RunObsidianVersionMatrixParams {
|
|
|
26
26
|
* The entry's `version` is the concrete `x.y.z` to pin — typically forwarded to
|
|
27
27
|
* the test-runner child as `OBSIDIAN_VERSION`.
|
|
28
28
|
*/
|
|
29
|
-
run
|
|
29
|
+
readonly run: (entry: ObsidianVersionMatrixEntry) => Promise<void> | void;
|
|
30
30
|
/**
|
|
31
31
|
* The version specifiers to run against: an array, or a comma-separated string
|
|
32
32
|
* so an env var can be passed straight through.
|
|
@@ -316,4 +316,4 @@ function tryCreateLockFile(lockFilePath, label) {
|
|
|
316
316
|
checkIsSetupLockHeld,
|
|
317
317
|
tryAcquireSetupLock
|
|
318
318
|
});
|
|
319
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NldHVwLWxvY2sudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDcm9zcy1wcm9jZXNzIGFkdmlzb3J5IGxvY2sgdGhhdCBzZXJpYWxpemVzIHdob2xlIGludGVncmF0aW9uLXRlc3QgcnVucy5cbiAqXG4gKiBUd28gdGVzdCBydW5zIHRoYXQgZHJpdmUgdGhlIHNhbWUgc2hhcmVkIHJlc291cmNlcyBjb3JydXB0IGVhY2ggb3RoZXI6IG9uXG4gKiBkZXNrdG9wIHRoZXkgc2hhcmUgdGhlIHNpbmdsZSBsb2NhbCBPYnNpZGlhbiBpbnN0YW5jZSwgaXRzIGBvYnNpZGlhbi5qc29uYFxuICogcmVnaXN0cnksIGFuZCB0aGUgQ0RQIHBvcnQ7IG9uIEFuZHJvaWQgdGhleSBzaGFyZSB0aGUgZW11bGF0b3IgYW5kIHRoZSBBcHBpdW1cbiAqIHNlcnZlci4gT25lIHJ1bidzIHNldHVwL3RlYXJkb3duIGtpbGxzIG9yIHJlY29uZmlndXJlcyB0aGUgaW5zdGFuY2UgdGhlIG90aGVyXG4gKiBydW4gaXMgbWlkLWV2YWwgb24gKG9ic2VydmVkIGFzIGBFQ09OTlJFRlVTRURgIG9yIFwidmF1bHQgbm90IG9wZW5cIiksIHNvIGJvdGhcbiAqIHJ1bnMgZmFpbC5cbiAqXG4gKiBUaGlzIGxvY2sgbWFrZXMgdGhlIHNlY29uZCBydW4gKip3YWl0KiogZm9yIHRoZSBmaXJzdCB0byBmaW5pc2ggaW5zdGVhZCBvZlxuICogcnVubmluZyBjb25jdXJyZW50bHkuIEl0IGlzIGhlbGQgZm9yIHRoZSBlbnRpcmUgcnVuOiBhY3F1aXJlZCBhdCB0aGUgc3RhcnQgb2ZcbiAqIHRoZSBjb3JlIHNldHVwIGFuZCByZWxlYXNlZCBieSB0aGUgY29yZSB0ZWFyZG93biAoYW5kIGJ5IHRoZSBwcm9jZXNzIGNsZWFudXBcbiAqIGhhbmRsZXJzKS4gVGhlIGxvY2sgaXMgYSBzZW50aW5lbCBmaWxlIGluIGEgc2hhcmVkIHRlbXAgZGlyZWN0b3J5LCBhbmQgaXRzXG4gKiBob2xkZXIga2VlcHMgYSAqKmhlYXJ0YmVhdCoqIHRpbWVzdGFtcCBpbnNpZGUgaXQgZnJlc2ggZm9yIGFzIGxvbmcgYXMgaXQgaG9sZHNcbiAqIHRoZSBsb2NrIFx1MjAxNCBzbyBhIHJ1biB0aGF0IGNyYXNoZWQgd2l0aG91dCByZWxlYXNpbmcgc3RvcHMgYmVhdGluZyBhbmQgdGhlIG5leHRcbiAqIHJ1biBkZXRlY3RzIHRoZSBsb2NrIGFzIHN0YWxlIGFuZCBzdGVhbHMgaXQuXG4gKlxuICogVGhlIGhlYXJ0YmVhdCwgbm90IHRoZSBob2xkZXIncyBQSUQsIGlzIHdoYXQgcHJvdmVzIGEgaG9sZGVyIGlzIHN0aWxsIHRoZXJlOiBhXG4gKiBQSUQgcHJvYmUgb25seSBhbnN3ZXJzIFwiZG9lcyAqYSogcHJvY2VzcyB3aXRoIHRoaXMgUElEIGV4aXN0XCIsIHdoaWNoIGFcbiAqIHJlY3ljbGVkIFBJRCBzYXRpc2ZpZXMgbG9uZyBhZnRlciB0aGUgcmVhbCBob2xkZXIgZGllZCBcdTIwMTQgbGVhdmluZyBldmVyeSBsYXRlclxuICogcnVuIHRvIGJsb2NrIGZvciB0aGUgZnVsbCBhY3F1aXNpdGlvbiB0aW1lb3V0LlxuICovXG5cbmltcG9ydCB7XG4gIG1rZGlyU3luYyxcbiAgcmVhZEZpbGVTeW5jLFxuICBybVN5bmMsXG4gIHdyaXRlRmlsZVN5bmNcbn0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBob3N0bmFtZSxcbiAgdG1wZGlyXG59IGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQgeyBlcnJvclRvU3RyaW5nIH0gZnJvbSAnLi9lcnJvci10by1zdHJpbmcuY2pzJztcbmltcG9ydCB7IGxvZyB9IGZyb20gJy4vbG9nLmNqcyc7XG5cbi8qKlxuICogVGhlIHNjb3BlIGV2ZXJ5IEFuZHJvaWQgcnVuIHNlcmlhbGl6ZXMgb246IHRoZSBBcHBpdW0gdHJhbnNwb3J0J3MgZ2xvYmFsXG4gKiBzZXR1cCwgYSBwcm9qZWN0IHRoYXQgdGFrZXMgdGhlIGxvY2sgaXRzZWxmLCBhbmQgdGhlIGVtdWxhdG9yIHJlYXBlciBhbGxcbiAqIGhhdmUgdG8gbmFtZSB0aGUgc2FtZSBvbmUsIG9yIHRoZXkgc2VyaWFsaXplIGFnYWluc3Qgbm90aGluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IEFORFJPSURfU0VUVVBfTE9DS19TQ09QRSA9ICdhbmRyb2lkJztcblxuY29uc3QgTE9DS19ESVJfTkFNRSA9ICdvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nJztcbmNvbnN0IExPQ0tfRklMRV9TVUZGSVggPSAnLnNldHVwLmxvY2snO1xuY29uc3QgUE9MTF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMgPSA1MDA7XG5jb25zdCBNSUxMSVNFQ09ORFNfUEVSX1NFQ09ORCA9IDEwMDA7XG5jb25zdCBTRUNPTkRTX1BFUl9NSU5VVEUgPSA2MDtcbmNvbnN0IEhFQVJUQkVBVF9JTlRFUlZBTF9JTl9TRUNPTkRTID0gNTtcbmNvbnN0IEhFQVJUQkVBVF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMgPSBIRUFSVEJFQVRfSU5URVJWQUxfSU5fU0VDT05EUyAqIE1JTExJU0VDT05EU19QRVJfU0VDT05EO1xuLy8gR2VuZXJvdXMgb24gcHVycG9zZTogYSBkZWFkIGhvbGRlciBpcyBub3JtYWxseSBjYXVnaHQgaW5zdGFudGx5IGJ5IHRoZSBQSURcbi8vIHByb2JlLCBzbyB0aGlzIHRocmVzaG9sZCBvbmx5IGhhcyB0byBjb3ZlciB0aGUgcmVjeWNsZWQtUElEIGNhc2UuIFR3byBtaW51dGVzXG4vLyBrZWVwcyBhIGhvbGRlciB0aGF0IGJsb2NrcyBpdHMgZXZlbnQgbG9vcCBkdXJpbmcgaGVhdnkgc3luY2hyb25vdXMgd29yayAoYVxuLy8gbGFyZ2UgdmF1bHQgc3luYywgYW4gaW5zdGFsbGVyIHVucGFjaykgZnJvbSBiZWluZyByb2JiZWQgd2hpbGUgaXQgaXMgYWxpdmUuXG5jb25zdCBNSVNTRURfSEVBUlRCRUFUU19CRUZPUkVfU1RBTEUgPSAyNDtcbmNvbnN0IEhFQVJUQkVBVF9TVEFMRV9JTl9NSUxMSVNFQ09ORFMgPSBIRUFSVEJFQVRfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTICogTUlTU0VEX0hFQVJUQkVBVFNfQkVGT1JFX1NUQUxFO1xuY29uc3QgV0FJVF9MT0dfSU5URVJWQUxfSU5fU0VDT05EUyA9IDMwO1xuY29uc3QgV0FJVF9MT0dfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTID0gV0FJVF9MT0dfSU5URVJWQUxfSU5fU0VDT05EUyAqIE1JTExJU0VDT05EU19QRVJfU0VDT05EO1xuY29uc3QgU1RBTEVfTE9DS19BR0VfSU5fTUlOVVRFUyA9IDMwO1xuY29uc3QgREVGQVVMVF9USU1FT1VUX0lOX01JTlVURVMgPSA2MDtcbmNvbnN0IFNUQUxFX0xPQ0tfQUdFX0lOX01JTExJU0VDT05EUyA9IFNUQUxFX0xPQ0tfQUdFX0lOX01JTlVURVMgKiBTRUNPTkRTX1BFUl9NSU5VVEUgKiBNSUxMSVNFQ09ORFNfUEVSX1NFQ09ORDtcbmNvbnN0IERFRkFVTFRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMgPSBERUZBVUxUX1RJTUVPVVRfSU5fTUlOVVRFUyAqIFNFQ09ORFNfUEVSX01JTlVURSAqIE1JTExJU0VDT05EU19QRVJfU0VDT05EO1xuY29uc3QgUFJPQ0VTU19FWElTVEVOQ0VfUFJPQkVfU0lHTkFMID0gMDtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgYWNxdWlyZVNldHVwTG9ja30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWNxdWlyZVNldHVwTG9ja1BhcmFtcyB7XG4gIC8qKlxuICBTaG9ydCB0cmFuc3BvcnQgbGFiZWwgZm9yIGxvZyBtZXNzYWdlcyAoZS5nLiBgXCJvYnNpZGlhbi1jbGlcImApLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogTG9naWNhbCBzY29wZSB0aGUgbG9jayBzZXJpYWxpemVzIHdpdGhpbi4gUnVucyB0aGF0IHNoYXJlIHJlc291cmNlcyBtdXN0XG4gICAqIHVzZSB0aGUgc2FtZSBzY29wZSAoZS5nLiBgXCJkZXNrdG9wXCJgIGZvciB0aGUgQ0xJL0NEUCB0cmFuc3BvcnRzLCBgXCJhbmRyb2lkXCJgXG4gICAqIGZvciB0aGUgQXBwaXVtIHRyYW5zcG9ydCkuXG4gICAqL1xuICByZWFkb25seSBzY29wZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIHRpbWUgdG8gd2FpdCBmb3IgYSBjb21wZXRpbmcgcnVuIHRvIHJlbGVhc2UgdGhlIGxvY2sgYmVmb3JlIGdpdmluZ1xuICAgKiB1cCBhbmQgdGhyb3dpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0IDEgaG91clxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEEgaGVsZCBzZXR1cCBsb2NrLiBSZWxlYXNlIGl0IG9uY2UgdGhlIHJ1bidzIHRlYXJkb3duIGlzIGNvbXBsZXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNldHVwTG9jayB7XG4gIC8qKlxuICBSZWxlYXNlcyB0aGUgbG9jay4gU2FmZSB0byBjYWxsIG1vcmUgdGhhbiBvbmNlLlxuICAgKi9cbiAgcmVsZWFzZSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayB0cnlBY3F1aXJlU2V0dXBMb2NrfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcnlBY3F1aXJlU2V0dXBMb2NrUGFyYW1zIHtcbiAgLyoqXG4gIFNob3J0IHRyYW5zcG9ydCBsYWJlbCBmb3IgbG9nIG1lc3NhZ2VzLCByZWNvcmRlZCBpbiB0aGUgbG9jayBmaWxlIGFzIHRoZSBob2xkZXIncy5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gIExvZ2ljYWwgc2NvcGUgdGhlIGxvY2sgc2VyaWFsaXplcyB3aXRoaW4gXHUyMDE0IHNlZSB7QGxpbmsgQWNxdWlyZVNldHVwTG9ja1BhcmFtcy5zY29wZX0uXG4gICAqL1xuICByZWFkb25seSBzY29wZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3cgbG9uZyBhIHNhbWUtaG9zdCBob2xkZXIgd2hvc2UgUElEIGlzIHN0aWxsIGFsaXZlIG1heSBnbyB3aXRob3V0IGFcbiAgICogaGVhcnRiZWF0IGJlZm9yZSBpdHMgbG9jayBjb3VudHMgYXMgYWJhbmRvbmVkLlxuICAgKlxuICAgKiBBIGRlYWQgaG9sZGVyIFBJRCBpcyBhYmFuZG9uZWQgYXQgb25jZSB3aGF0ZXZlciB0aGlzIHNheXMuIFRoZSBkZWZhdWx0IGlzXG4gICAqIHRoZSB0aHJlc2hvbGQgZXZlcnkgd2FpdGluZyBydW4gc3RlYWxzIG9uOyBhIGNhbGxlciB0aGF0IGlzICphbHdheXMqIHdhaXRpbmdcbiAgICogXHUyMDE0IHRoZSBlbXVsYXRvciByZWFwZXIgXHUyMDE0IHBhc3NlcyBhIGZhciB3aWRlciBvbmUsIHNvIGEgbGl2ZSBydW4gdGhhdCBibG9ja3NcbiAgICogaXRzIGV2ZW50IGxvb3AgZm9yIGEgY291cGxlIG9mIG1pbnV0ZXMgaXMgbm90IHJvYmJlZCBvZiBpdHMgbG9jay5cbiAgICpcbiAgICogQGRlZmF1bHQgMiBtaW51dGVzXG4gICAqL1xuICByZWFkb25seSBzdGFsZUFmdGVyU2lsZW5jZUluTWlsbGlzZWNvbmRzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjcmVhdGVMb2NrSGFuZGxlfS5cbiAqL1xuaW50ZXJmYWNlIENyZWF0ZUxvY2tIYW5kbGVQYXJhbXMge1xuICAvKipcbiAgVGhlIHRyYW5zcG9ydCBsYWJlbCBvZiB0aGlzIHJ1bi5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBwYXRoIHRvIHRoZSBsb2NrIGZpbGUgdGhpcyBydW4ganVzdCBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9ja0ZpbGVQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBsb2NrIGluZm8gdGhpcyBydW4gd3JvdGUgd2hlbiBpdCBhY3F1aXJlZCB0aGUgbG9jay5cbiAgICovXG4gIHJlYWRvbmx5IG93bkluZm86IExvY2tGaWxlSW5mbztcblxuICAvKipcbiAgVGhlIGxvY2sgc2NvcGUsIGZvciBsb2cgbWVzc2FnZXMuXG4gICAqL1xuICByZWFkb25seSBzY29wZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjcmVhdGVUaW1lb3V0RXJyb3J9LlxuICovXG5pbnRlcmZhY2UgQ3JlYXRlVGltZW91dEVycm9yUGFyYW1zIHtcbiAgLyoqXG4gIFRoZSBjdXJyZW50IGhvbGRlcidzIGxvY2sgaW5mbywgb3IgYG51bGxgIGlmIGl0IGNvdWxkIG5vdCBiZSByZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5mbzogTG9ja0ZpbGVJbmZvIHwgbnVsbDtcblxuICAvKipcbiAgVGhlIGxvY2sgc2NvcGUuXG4gICAqL1xuICByZWFkb25seSBzY29wZTogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgdGltZW91dCB0aGF0IGVsYXBzZWQuXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0SW5NaWxsaXNlY29uZHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZm9ybWF0V2FpdE1lc3NhZ2V9LlxuICovXG5pbnRlcmZhY2UgRm9ybWF0V2FpdE1lc3NhZ2VQYXJhbXMge1xuICAvKipcbiAgVGhlIGN1cnJlbnQgaG9sZGVyJ3MgbG9jayBpbmZvLCBvciBgbnVsbGAgaWYgaXQgY291bGQgbm90IGJlIHJlYWQuXG4gICAqL1xuICByZWFkb25seSBpbmZvOiBMb2NrRmlsZUluZm8gfCBudWxsO1xuXG4gIC8qKlxuICBUaGUgdHJhbnNwb3J0IGxhYmVsIG9mIHRoZSB3YWl0aW5nIHJ1bi5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gIEhvdyBtdWNoIG9mIHRoZSBhY3F1aXNpdGlvbiB0aW1lb3V0IGlzIGxlZnQuXG4gICAqL1xuICByZWFkb25seSByZW1haW5pbmdJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xuXG4gIC8qKlxuICBUaGUgbG9jayBzY29wZS5cbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG5cbiAgLyoqXG4gIEhvdyBsb25nIHRoaXMgcnVuIGhhcyBiZWVuIHdhaXRpbmcgc28gZmFyLlxuICAgKi9cbiAgcmVhZG9ubHkgd2FpdGVkSW5NaWxsaXNlY29uZHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGUgSlNPTiBwYXlsb2FkIHN0b3JlZCBpbnNpZGUgYSBsb2NrIGZpbGUsIGlkZW50aWZ5aW5nIHRoZSBob2xkZXIuXG4gKi9cbmludGVyZmFjZSBMb2NrRmlsZUluZm8ge1xuICAvKipcbiAgV2hlbiB0aGUgbG9jayB3YXMgYWNxdWlyZWQgKGBEYXRlLm5vdygpYCBlcG9jaCBtaWxsaXNlY29uZHMpLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNxdWlyZWRBdEluTWlsbGlzZWNvbmRzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIGhvbGRlciBsYXN0IHByb3ZlZCBpdCB3YXMgc3RpbGwgYWxpdmUgKGBEYXRlLm5vdygpYCBlcG9jaFxuICAgKiBtaWxsaXNlY29uZHMpLCByZWZyZXNoZWQgZXZlcnkge0BsaW5rIEhFQVJUQkVBVF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFN9XG4gICAqIHdoaWxlIHRoZSBsb2NrIGlzIGhlbGQuXG4gICAqXG4gICAqIEFic2VudCBpbiBhIGxvY2sgZmlsZSB3cml0dGVuIGJ5IGFuIG9sZGVyIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLCB3aGljaFxuICAgKiBzdGFtcGVkIHRoZSBQSUQgYnV0IG5ldmVyIGJlYXQuXG4gICAqL1xuICByZWFkb25seSBoZWFydGJlYXRBdEluTWlsbGlzZWNvbmRzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICBUaGUgaG9zdCB0aGF0IGhvbGRzIHRoZSBsb2NrIChQSUQgbGl2ZW5lc3MgaXMgb25seSB2YWxpZCBvbiB0aGUgc2FtZSBob3N0KS5cbiAgICovXG4gIHJlYWRvbmx5IGhvc3RuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSB0cmFuc3BvcnQgbGFiZWwgb2YgdGhlIGhvbGRpbmcgcnVuLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgVGhlIHByb2Nlc3MgSUQgb2YgdGhlIGhvbGRpbmcgcnVuLlxuICAgKi9cbiAgcmVhZG9ubHkgcGlkOiBudW1iZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGRpZFJlZnJlc2hIZWFydGJlYXR9LlxuICovXG5pbnRlcmZhY2UgUmVmcmVzaEhlYXJ0YmVhdFBhcmFtcyB7XG4gIC8qKlxuICBUaGUgdHJhbnNwb3J0IGxhYmVsIG9mIHRoaXMgcnVuLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgVGhlIHBhdGggdG8gdGhlIGxvY2sgZmlsZSB0byByZWZyZXNoLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9ja0ZpbGVQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBsb2NrIGluZm8gdGhpcyBydW4gd3JvdGUgd2hlbiBpdCBhY3F1aXJlZCB0aGUgbG9jay5cbiAgICovXG4gIHJlYWRvbmx5IG93bkluZm86IExvY2tGaWxlSW5mbztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgc3RlYWxTdGFsZUxvY2t9LlxuICovXG5pbnRlcmZhY2UgU3RlYWxTdGFsZUxvY2tQYXJhbXMge1xuICAvKipcbiAgVGhlIGFiYW5kb25lZCBob2xkZXIncyBsb2NrIGluZm8uXG4gICAqL1xuICByZWFkb25seSBpbmZvOiBMb2NrRmlsZUluZm87XG5cbiAgLyoqXG4gIFRoZSB0cmFuc3BvcnQgbGFiZWwgb2YgdGhlIHN0ZWFsaW5nIHJ1bi5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBwYXRoIHRvIHRoZSBsb2NrIGZpbGUgdG8gcmVtb3ZlLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9ja0ZpbGVQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBsb2NrIHNjb3BlLCBmb3IgdGhlIGxvZyBtZXNzYWdlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBY3F1aXJlcyB0aGUgY3Jvc3MtcHJvY2VzcyBzZXR1cCBsb2NrIGZvciB0aGUgZ2l2ZW4gc2NvcGUsIHdhaXRpbmcgdW50aWwgYW55XG4gKiBjb21wZXRpbmcgcnVuIHJlbGVhc2VzIGl0IChvciBpdHMgbG9jayBpcyBkZXRlY3RlZCBhcyBzdGFsZSkuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBsb2NrIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBBIGhhbmRsZSB3aG9zZSB7QGxpbmsgU2V0dXBMb2NrLnJlbGVhc2V9IGZyZWVzIHRoZSBsb2NrLlxuICogQHRocm93cyBJZiB0aGUgbG9jayBjYW5ub3QgYmUgYWNxdWlyZWQgd2l0aGluIGB0aW1lb3V0SW5NaWxsaXNlY29uZHNgLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWNxdWlyZVNldHVwTG9jayhwYXJhbXM6IEFjcXVpcmVTZXR1cExvY2tQYXJhbXMpOiBQcm9taXNlPFNldHVwTG9jaz4ge1xuICBjb25zdCB7XG4gICAgbGFiZWwsXG4gICAgc2NvcGVcbiAgfSA9IHBhcmFtcztcbiAgY29uc3QgdGltZW91dEluTWlsbGlzZWNvbmRzID0gcGFyYW1zLnRpbWVvdXRJbk1pbGxpc2Vjb25kcyA/PyBERUZBVUxUX1RJTUVPVVRfSU5fTUlMTElTRUNPTkRTO1xuICBjb25zdCBsb2NrRmlsZVBhdGggPSBnZXRMb2NrRmlsZVBhdGgoc2NvcGUpO1xuICBta2RpclN5bmMoZ2V0TG9ja0RpcmVjdG9yeSgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICBjb25zdCBzdGFydGVkQXRJbk1pbGxpc2Vjb25kcyA9IERhdGUubm93KCk7XG4gIGNvbnN0IGRlYWRsaW5lSW5NaWxsaXNlY29uZHMgPSBzdGFydGVkQXRJbk1pbGxpc2Vjb25kcyArIHRpbWVvdXRJbk1pbGxpc2Vjb25kcztcbiAgbGV0IGxhc3RMb2dnZWRXYWl0QXRJbk1pbGxpc2Vjb25kczogbnVsbCB8IG51bWJlciA9IG51bGw7XG5cbiAgZm9yICg7Oykge1xuICAgIGNvbnN0IG93bkluZm8gPSB0cnlDcmVhdGVMb2NrRmlsZShsb2NrRmlsZVBhdGgsIGxhYmVsKTtcbiAgICBpZiAob3duSW5mbykge1xuICAgICAgcmV0dXJuIGNyZWF0ZUxvY2tIYW5kbGUoe1xuICAgICAgICBsYWJlbCxcbiAgICAgICAgbG9ja0ZpbGVQYXRoLFxuICAgICAgICBvd25JbmZvLFxuICAgICAgICBzY29wZVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgaW5mbyA9IHJlYWRMb2NrRmlsZUluZm8obG9ja0ZpbGVQYXRoKTtcbiAgICBpZiAoaW5mbyAmJiBjaGVja0lzTG9ja1N0YWxlKGluZm8sIEhFQVJUQkVBVF9TVEFMRV9JTl9NSUxMSVNFQ09ORFMpKSB7XG4gICAgICBzdGVhbFN0YWxlTG9jayh7IGluZm8sIGxhYmVsLCBsb2NrRmlsZVBhdGgsIHNjb3BlIH0pO1xuICAgICAgLy8gUmV0cnkgaW1tZWRpYXRlbHkgXHUyMDE0IGJ1dCBzdGlsbCBob25vdXIgdGhlIGRlYWRsaW5lLCBzbyBhIGxvY2sgdGhhdCBhXG4gICAgICAvLyBjb21wZXRpbmcgcnVuIGtlZXBzIHJlY3JlYXRpbmcgY2Fubm90IHNwaW4gdGhpcyBsb29wIGZvcmV2ZXIuXG4gICAgICBpZiAoRGF0ZS5ub3coKSA+PSBkZWFkbGluZUluTWlsbGlzZWNvbmRzKSB7XG4gICAgICAgIHRocm93IGNyZWF0ZVRpbWVvdXRFcnJvcih7XG4gICAgICAgICAgaW5mbyxcbiAgICAgICAgICBzY29wZSxcbiAgICAgICAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBub3dJbk1pbGxpc2Vjb25kcyA9IERhdGUubm93KCk7XG4gICAgaWYgKG5vd0luTWlsbGlzZWNvbmRzID49IGRlYWRsaW5lSW5NaWxsaXNlY29uZHMpIHtcbiAgICAgIHRocm93IGNyZWF0ZVRpbWVvdXRFcnJvcih7XG4gICAgICAgIGluZm8sXG4gICAgICAgIHNjb3BlLFxuICAgICAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHNob3VsZExvZ1dhaXQgPSBsYXN0TG9nZ2VkV2FpdEF0SW5NaWxsaXNlY29uZHMgPT09IG51bGxcbiAgICAgIHx8IG5vd0luTWlsbGlzZWNvbmRzIC0gbGFzdExvZ2dlZFdhaXRBdEluTWlsbGlzZWNvbmRzID49IFdBSVRfTE9HX0lOVEVSVkFMX0lOX01JTExJU0VDT05EUztcbiAgICBpZiAoc2hvdWxkTG9nV2FpdCkge1xuICAgICAgbGFzdExvZ2dlZFdhaXRBdEluTWlsbGlzZWNvbmRzID0gbm93SW5NaWxsaXNlY29uZHM7XG4gICAgICBsb2coZm9ybWF0V2FpdE1lc3NhZ2Uoe1xuICAgICAgICBpbmZvLFxuICAgICAgICBsYWJlbCxcbiAgICAgICAgcmVtYWluaW5nSW5NaWxsaXNlY29uZHM6IGRlYWRsaW5lSW5NaWxsaXNlY29uZHMgLSBub3dJbk1pbGxpc2Vjb25kcyxcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIHdhaXRlZEluTWlsbGlzZWNvbmRzOiBub3dJbk1pbGxpc2Vjb25kcyAtIHN0YXJ0ZWRBdEluTWlsbGlzZWNvbmRzXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgYXdhaXQgZGVsYXkoUE9MTF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMpO1xuICB9XG59XG5cbi8qKlxuICogUmVwb3J0cyB3aGV0aGVyIGEgcnVuIGN1cnJlbnRseSBob2xkcyB0aGUgc2V0dXAgbG9jayBmb3IgYSBzY29wZS5cbiAqXG4gKiBBIGxvY2sgZmlsZSB0aGF0IGV4aXN0cyBidXQgY2Fubm90IGJlIHJlYWQgY291bnRzIGFzIGhlbGQgXHUyMDE0IHRoZSBzYW1lIGFuc3dlclxuICoge0BsaW5rIGFjcXVpcmVTZXR1cExvY2t9IGdpdmVzIGJ5IHdhaXRpbmcgb24gaXQ6IGl0IGlzIGVpdGhlciBtaWQtd3JpdGUgb3JcbiAqIGNvcnJ1cHQsIGFuZCBlaXRoZXIgd2F5IG5vIHJ1biBjYW4gdGFrZSBpdC5cbiAqXG4gKiBAcGFyYW0gc2NvcGUgLSBUaGUgbG9jayBzY29wZS5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGVuIGEgaG9sZGVyIHRoYXQgaXMgbm90IHN0YWxlIG93bnMgdGhlIGxvY2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0lzU2V0dXBMb2NrSGVsZChzY29wZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGxldCB0ZXh0OiBzdHJpbmc7XG4gIHRyeSB7XG4gICAgdGV4dCA9IHJlYWRGaWxlU3luYyhnZXRMb2NrRmlsZVBhdGgoc2NvcGUpLCAndXRmLTgnKTtcbiAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICByZXR1cm4gZ2V0RXJyb3JDb2RlKGVycm9yKSAhPT0gJ0VOT0VOVCc7XG4gIH1cblxuICBsZXQgaW5mbzogTG9ja0ZpbGVJbmZvO1xuICB0cnkge1xuICAgIGluZm8gPSBKU09OLnBhcnNlKHRleHQpIGFzIExvY2tGaWxlSW5mbztcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZXR1cm4gIWNoZWNrSXNMb2NrU3RhbGUoaW5mbywgSEVBUlRCRUFUX1NUQUxFX0lOX01JTExJU0VDT05EUyk7XG59XG5cbi8qKlxuICogVGFrZXMgdGhlIHNldHVwIGxvY2sgZm9yIGEgc2NvcGUgaWYgaXQgaXMgZnJlZSBvciBhYmFuZG9uZWQsIHdpdGhvdXQgd2FpdGluZy5cbiAqXG4gKiBPbmUgYXR0ZW1wdDogYSBsaXZlIGhvbGRlciBcdTIwMTQgb3IgYSBsb2NrIGZpbGUgdGhhdCBjYW5ub3QgYmUgcmVhZCBcdTIwMTQgbWVhbnNcbiAqIGB1bmRlZmluZWRgLCBhbmQgdGhlIGNhbGxlciBkZWNpZGVzIHdoZXRoZXIgdG8gdHJ5IGFnYWluIGxhdGVyLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgbG9jayBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgQSBoYW5kbGUgd2hvc2Uge0BsaW5rIFNldHVwTG9jay5yZWxlYXNlfSBmcmVlcyB0aGUgbG9jaywgb3IgYHVuZGVmaW5lZGAgd2hpbGUgYW5vdGhlciBydW4gaG9sZHMgaXQuXG4gKiBAdGhyb3dzIElmIHRoZSBmaWxlIHN5c3RlbSBmYWlscyBmb3IgYW55IHJlYXNvbiBvdGhlciB0aGFuIHRoZSBsb2NrIGZpbGUgYWxyZWFkeSBleGlzdGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyeUFjcXVpcmVTZXR1cExvY2socGFyYW1zOiBUcnlBY3F1aXJlU2V0dXBMb2NrUGFyYW1zKTogU2V0dXBMb2NrIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgeyBsYWJlbCwgc2NvcGUgfSA9IHBhcmFtcztcbiAgY29uc3QgbG9ja0ZpbGVQYXRoID0gZ2V0TG9ja0ZpbGVQYXRoKHNjb3BlKTtcbiAgbWtkaXJTeW5jKGdldExvY2tEaXJlY3RvcnkoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgbGV0IG93bkluZm8gPSB0cnlDcmVhdGVMb2NrRmlsZShsb2NrRmlsZVBhdGgsIGxhYmVsKTtcbiAgaWYgKCFvd25JbmZvKSB7XG4gICAgY29uc3QgaW5mbyA9IHJlYWRMb2NrRmlsZUluZm8obG9ja0ZpbGVQYXRoKTtcbiAgICBpZiAoIWluZm8gfHwgIWNoZWNrSXNMb2NrU3RhbGUoaW5mbywgcGFyYW1zLnN0YWxlQWZ0ZXJTaWxlbmNlSW5NaWxsaXNlY29uZHMgPz8gSEVBUlRCRUFUX1NUQUxFX0lOX01JTExJU0VDT05EUykpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgc3RlYWxTdGFsZUxvY2soeyBpbmZvLCBsYWJlbCwgbG9ja0ZpbGVQYXRoLCBzY29wZSB9KTtcbiAgICBvd25JbmZvID0gdHJ5Q3JlYXRlTG9ja0ZpbGUobG9ja0ZpbGVQYXRoLCBsYWJlbCk7XG4gICAgaWYgKCFvd25JbmZvKSB7XG4gICAgICAvLyBBbm90aGVyIHJ1biByZWNyZWF0ZWQgaXQgYmV0d2VlbiB0aGUgc3RlYWwgYW5kIHRoaXMgYXR0ZW1wdDsgaXQgaXMgdGhlaXJzIG5vdy5cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZUxvY2tIYW5kbGUoe1xuICAgIGxhYmVsLFxuICAgIGxvY2tGaWxlUGF0aCxcbiAgICBvd25JbmZvLFxuICAgIHNjb3BlXG4gIH0pO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGxvY2sgY2FuIGJlIGNvbnNpZGVyZWQgYWJhbmRvbmVkLlxuICpcbiAqIEEgbGl2ZSBob2xkZXIgcmVmcmVzaGVzIGl0cyBoZWFydGJlYXQgZXZlcnlcbiAqIHtAbGluayBIRUFSVEJFQVRfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTfSwgc28gYSBoZWFydGJlYXQgdGhhdCBzdG9wcGVkIG1lYW5zXG4gKiB0aGUgaG9sZGVyIGlzIGdvbmUuIFRoYXQgaXMgdGhlIHByaW1hcnkgc2lnbmFsLCBiZWNhdXNlIHRoZSByZWNvcmRlZCBQSUQgYWxvbmVcbiAqIGNhbm5vdCBiZSB0cnVzdGVkOiB7QGxpbmsgY2hlY2tJc1Byb2Nlc3NBbGl2ZX0gb25seSBhbnN3ZXJzIFwiZG9lcyAqYSogcHJvY2Vzc1xuICogd2l0aCB0aGlzIFBJRCBleGlzdFwiLCB3aGljaCBhIHJlY3ljbGVkIFBJRCBzYXRpc2ZpZXMgbG9uZyBhZnRlciB0aGUgaG9sZGVyXG4gKiBkaWVkLlxuICpcbiAqIE9uIHRoZSBzYW1lIGhvc3QgYSBkZWFkIFBJRCBpcyBzdGlsbCBhbiBpbW1lZGlhdGUgZ2l2ZS1hd2F5LCBzbyBpdCBpcyBrZXB0IGFzXG4gKiBhIGZhc3QgcGF0aC4gT24gYSBkaWZmZXJlbnQgaG9zdCAoYSBzaGFyZWQvbmV0d29yayB0ZW1wIGRpcmVjdG9yeSkgdGhlIFBJRFxuICogY2Fubm90IGJlIHByb2JlZCBhdCBhbGwgYW5kIHRoZSB0d28gY2xvY2tzIG1heSBkaXNhZ3JlZSwgc28gdGhlIG11Y2ggd2lkZXJcbiAqIHtAbGluayBTVEFMRV9MT0NLX0FHRV9JTl9NSUxMSVNFQ09ORFN9IHRocmVzaG9sZCBpcyB1c2VkIGluc3RlYWQuXG4gKlxuICogQHBhcmFtIGluZm8gLSBUaGUgcGFyc2VkIGxvY2sgaW5mby5cbiAqIEBwYXJhbSBoZWFydGJlYXRTdGFsZUluTWlsbGlzZWNvbmRzIC0gSG93IGxvbmcgYSBzYW1lLWhvc3QgaG9sZGVyIHdob3NlIFBJRCBpcyBhbGl2ZSBtYXkgc3RheSBzaWxlbnQuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGxvY2sgaXMgc3RhbGUgYW5kIG1heSBiZSBzdG9sZW4uXG4gKi9cbmZ1bmN0aW9uIGNoZWNrSXNMb2NrU3RhbGUoaW5mbzogTG9ja0ZpbGVJbmZvLCBoZWFydGJlYXRTdGFsZUluTWlsbGlzZWNvbmRzOiBudW1iZXIpOiBib29sZWFuIHtcbiAgY29uc3Qgc2lsZW50Rm9ySW5NaWxsaXNlY29uZHMgPSBEYXRlLm5vdygpIC0gZ2V0TGFzdFNlZW5BdEluTWlsbGlzZWNvbmRzKGluZm8pO1xuXG4gIGlmIChpbmZvLmhvc3RuYW1lID09PSBob3N0bmFtZSgpKSB7XG4gICAgcmV0dXJuICFjaGVja0lzUHJvY2Vzc0FsaXZlKGluZm8ucGlkKSB8fCBzaWxlbnRGb3JJbk1pbGxpc2Vjb25kcyA+IGhlYXJ0YmVhdFN0YWxlSW5NaWxsaXNlY29uZHM7XG4gIH1cblxuICByZXR1cm4gc2lsZW50Rm9ySW5NaWxsaXNlY29uZHMgPiBTVEFMRV9MT0NLX0FHRV9JTl9NSUxMSVNFQ09ORFM7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbG9jayBmaWxlIHN0aWxsIG5hbWVzIHRoaXMgcHJvY2VzcyBhcyBpdHMgaG9sZGVyLlxuICpcbiAqIEBwYXJhbSBpbmZvIC0gVGhlIHBhcnNlZCBsb2NrIGluZm8uXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhpcyBwcm9jZXNzIGhvbGRzIHRoZSBsb2NrLlxuICovXG5mdW5jdGlvbiBjaGVja0lzT3duTG9jayhpbmZvOiBMb2NrRmlsZUluZm8pOiBib29sZWFuIHtcbiAgcmV0dXJuIGluZm8ucGlkID09PSBwcm9jZXNzLnBpZCAmJiBpbmZvLmhvc3RuYW1lID09PSBob3N0bmFtZSgpO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIGEgcHJvY2VzcyB3aXRoIHRoZSBnaXZlbiBQSUQgaXMgY3VycmVudGx5IGFsaXZlLlxuICpcbiAqIEBwYXJhbSBwaWQgLSBUaGUgcHJvY2VzcyBJRCB0byBwcm9iZS5cbiAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgcHJvY2VzcyBleGlzdHMuXG4gKi9cbmZ1bmN0aW9uIGNoZWNrSXNQcm9jZXNzQWxpdmUocGlkOiBudW1iZXIpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBwcm9jZXNzLmtpbGwocGlkLCBQUk9DRVNTX0VYSVNURU5DRV9QUk9CRV9TSUdOQUwpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgIC8vIGBFUEVSTWAgbWVhbnMgdGhlIHByb2Nlc3MgZXhpc3RzIGJ1dCBpcyBvd25lZCBieSBhbm90aGVyIHVzZXIgXHUyMDE0IHN0aWxsIGFsaXZlLlxuICAgIHJldHVybiBnZXRFcnJvckNvZGUoZXJyb3IpID09PSAnRVBFUk0nO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIHtAbGluayBTZXR1cExvY2t9IGhhbmRsZSB0aGF0IGtlZXBzIHRoZSBsb2NrJ3MgaGVhcnRiZWF0IGZyZXNoIHdoaWxlXG4gKiBoZWxkIGFuZCByZW1vdmVzIHRoZSBsb2NrIGZpbGUgb24gcmVsZWFzZS5cbiAqXG4gKiBUaGUgaGVhcnRiZWF0IHRpbWVyIGlzIGB1bnJlZmBlZCBzbyBpdCBjYW4gbmV2ZXIga2VlcCB0aGUgcHJvY2VzcyBhbGl2ZSBvbiBpdHNcbiAqIG93biwgYW5kIGl0IHN0b3BzIGFzIHNvb24gYXMgdGhlIGxvY2sgZmlsZSBuYW1lcyBzb21lYm9keSBlbHNlIFx1MjAxNCBhIHJ1biB3aG9zZVxuICogbG9jayB3YXMgc3RvbGVuIG11c3Qgbm90IG92ZXJ3cml0ZSBpdHMgc3VjY2Vzc29yJ3MgbG9jaywgbm9yIGRlbGV0ZSBpdCBvblxuICogcmVsZWFzZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGhhbmRsZSBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgVGhlIGxvY2sgaGFuZGxlLlxuICovXG5mdW5jdGlvbiBjcmVhdGVMb2NrSGFuZGxlKHBhcmFtczogQ3JlYXRlTG9ja0hhbmRsZVBhcmFtcyk6IFNldHVwTG9jayB7XG4gIGNvbnN0IHtcbiAgICBsYWJlbCxcbiAgICBsb2NrRmlsZVBhdGgsXG4gICAgb3duSW5mbyxcbiAgICBzY29wZVxuICB9ID0gcGFyYW1zO1xuICBsZXQgaXNSZWxlYXNlZCA9IGZhbHNlO1xuXG4gIGNvbnN0IGhlYXJ0YmVhdFRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgIGNvbnN0IGlzU3RpbGxPdXJzID0gZGlkUmVmcmVzaEhlYXJ0YmVhdCh7XG4gICAgICBsYWJlbCxcbiAgICAgIGxvY2tGaWxlUGF0aCxcbiAgICAgIG93bkluZm9cbiAgICB9KTtcbiAgICBpZiAoaXNTdGlsbE91cnMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY2xlYXJJbnRlcnZhbChoZWFydGJlYXRUaW1lcik7XG4gICAgbG9nKGBbaW50ZWdyYXRpb24tc2V0dXA6JHtsYWJlbH1dIFRoZSAnJHtzY29wZX0nIHNldHVwIGxvY2sgaXMgbm8gbG9uZ2VyIG91cnMgXHUyMDE0IGFub3RoZXIgcnVuIHRvb2sgaXQgb3Zlci4gSGVhcnRiZWF0IHN0b3BwZWQuYCk7XG4gIH0sIEhFQVJUQkVBVF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMpO1xuICBoZWFydGJlYXRUaW1lci51bnJlZigpO1xuXG4gIHJldHVybiB7XG4gICAgcmVsZWFzZSgpOiB2b2lkIHtcbiAgICAgIGlmIChpc1JlbGVhc2VkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlzUmVsZWFzZWQgPSB0cnVlO1xuICAgICAgY2xlYXJJbnRlcnZhbChoZWFydGJlYXRUaW1lcik7XG5cbiAgICAgIGNvbnN0IGluZm8gPSByZWFkTG9ja0ZpbGVJbmZvKGxvY2tGaWxlUGF0aCk7XG4gICAgICBpZiAoaW5mbyAmJiAhY2hlY2tJc093bkxvY2soaW5mbykpIHtcbiAgICAgICAgbG9nKGBbaW50ZWdyYXRpb24tc2V0dXA6JHtsYWJlbH1dIExlYXZpbmcgdGhlICcke3Njb3BlfScgc2V0dXAgbG9jayBpbiBwbGFjZSBcdTIwMTQgaXQgbm93IGJlbG9uZ3MgdG8gJHtkZXNjcmliZUluZm8oaW5mbyl9LmApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBybVN5bmMobG9ja0ZpbGVQYXRoLCB7IGZvcmNlOiB0cnVlIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGVycm9yIHRocm93biB3aGVuIHRoZSBsb2NrIGNvdWxkIG5vdCBiZSBhY3F1aXJlZCBpbiB0aW1lLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgZXJyb3IgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIFRoZSBlcnJvciB0byB0aHJvdy5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlVGltZW91dEVycm9yKHBhcmFtczogQ3JlYXRlVGltZW91dEVycm9yUGFyYW1zKTogRXJyb3Ige1xuICBjb25zdCB7XG4gICAgaW5mbyxcbiAgICBzY29wZSxcbiAgICB0aW1lb3V0SW5NaWxsaXNlY29uZHNcbiAgfSA9IHBhcmFtcztcbiAgcmV0dXJuIG5ldyBFcnJvcihcbiAgICBgVGltZWQgb3V0IGFmdGVyICR7U3RyaW5nKHRpbWVvdXRJbk1pbGxpc2Vjb25kcyl9bXMgd2FpdGluZyBmb3IgdGhlICcke3Njb3BlfScgaW50ZWdyYXRpb24tdGVzdCBzZXR1cCBsb2NrIGBcbiAgICAgICsgYGhlbGQgYnkgJHtkZXNjcmliZUhvbGRlcihpbmZvKX0uIEFub3RoZXIgaW50ZWdyYXRpb24tdGVzdCBydW4gaXMgc3RpbGwgaW4gcHJvZ3Jlc3MuYFxuICApO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGFmdGVyIHRoZSBnaXZlbiBkZWxheS4gVXNlZCB0byBwb2xsIGJldHdlZW4gbG9jay1hY3F1aXNpdGlvbiBhdHRlbXB0cy5cbiAqXG4gKiBAcGFyYW0gbWlsbGlzZWNvbmRzIC0gVGhlIGRlbGF5IGluIG1pbGxpc2Vjb25kcy5cbiAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIGFmdGVyIHRoZSBkZWxheS5cbiAqL1xuZnVuY3Rpb24gZGVsYXkobWlsbGlzZWNvbmRzOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgc2V0VGltZW91dChyZXNvbHZlLCBtaWxsaXNlY29uZHMpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBsb2NrIGhvbGRlciBmb3IgbG9nL2Vycm9yXG4gKiBtZXNzYWdlcy5cbiAqXG4gKiBAcGFyYW0gaW5mbyAtIFRoZSBwYXJzZWQgbG9jayBpbmZvLCBvciBgbnVsbGAgaWYgaXQgY291bGQgbm90IGJlIHJlYWQuXG4gKiBAcmV0dXJucyBBIGRlc2NyaXB0aW9uIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gZGVzY3JpYmVIb2xkZXIoaW5mbzogTG9ja0ZpbGVJbmZvIHwgbnVsbCk6IHN0cmluZyB7XG4gIHJldHVybiBpbmZvID8gZGVzY3JpYmVJbmZvKGluZm8pIDogJ2Fub3RoZXIgcnVuJztcbn1cblxuLyoqXG4gKiBGb3JtYXRzIGEge0BsaW5rIExvY2tGaWxlSW5mb30gYXMgYSBzaG9ydCBpZGVudGlmaWVyIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gaW5mbyAtIFRoZSBsb2NrIGluZm8uXG4gKiBAcmV0dXJucyBBIHN0cmluZyBsaWtlIGBwaWQgMTIzNCAob2JzaWRpYW4tY2xpKSBvbiBob3N0YC5cbiAqL1xuZnVuY3Rpb24gZGVzY3JpYmVJbmZvKGluZm86IExvY2tGaWxlSW5mbyk6IHN0cmluZyB7XG4gIHJldHVybiBgcGlkICR7U3RyaW5nKGluZm8ucGlkKX0gKCR7aW5mby5sYWJlbH0pIG9uICR7aW5mby5ob3N0bmFtZX1gO1xufVxuXG4vKipcbiAqIFJld3JpdGVzIHRoZSBsb2NrIGZpbGUgd2l0aCBhIGZyZXNoIGhlYXJ0YmVhdCB0aW1lc3RhbXAsIHNvIHdhaXRpbmcgcnVucyBjYW5cbiAqIHRlbGwgdGhpcyBob2xkZXIgYXBhcnQgZnJvbSBhIGNyYXNoZWQgb25lIHdob3NlIFBJRCBoYXMgYmVlbiByZWN5Y2xlZC5cbiAqXG4gKiBBIGxvY2sgZmlsZSB0aGF0IGlzIG1pc3Npbmcgb3IgdW5yZWFkYWJsZSBpcyBzdGlsbCB0cmVhdGVkIGFzIG91cnMgYW5kIHJld3JpdHRlbjpcbiAqIHRoaXMgcnVuIG5ldmVyIHJlbGVhc2VkLCBzbyBpdHMgY2xhaW0gc3RhbmRzLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcmVmcmVzaCBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgYHRydWVgIHdoaWxlIHRoZSBsb2NrIGlzIHN0aWxsIG91cnMsIGBmYWxzZWAgb25jZSBhbm90aGVyIHJ1biBvd25zIGl0LlxuICovXG5mdW5jdGlvbiBkaWRSZWZyZXNoSGVhcnRiZWF0KHBhcmFtczogUmVmcmVzaEhlYXJ0YmVhdFBhcmFtcyk6IGJvb2xlYW4ge1xuICBjb25zdCB7XG4gICAgbGFiZWwsXG4gICAgbG9ja0ZpbGVQYXRoLFxuICAgIG93bkluZm9cbiAgfSA9IHBhcmFtcztcblxuICBjb25zdCBpbmZvID0gcmVhZExvY2tGaWxlSW5mbyhsb2NrRmlsZVBhdGgpO1xuICBpZiAoaW5mbyAmJiAhY2hlY2tJc093bkxvY2soaW5mbykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCByZWZyZXNoZWRJbmZvOiBMb2NrRmlsZUluZm8gPSB7XG4gICAgLi4ub3duSW5mbyxcbiAgICBoZWFydGJlYXRBdEluTWlsbGlzZWNvbmRzOiBEYXRlLm5vdygpXG4gIH07XG4gIHRyeSB7XG4gICAgd3JpdGVGaWxlU3luYyhsb2NrRmlsZVBhdGgsIEpTT04uc3RyaW5naWZ5KHJlZnJlc2hlZEluZm8pKTtcbiAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAvLyBOb3QgZmF0YWw6IHRoZSBsb2NrIGlzIHN0aWxsIGhlbGQgYW5kIHdpbGwgc3RpbGwgYmUgcmVsZWFzZWQuIE9ubHkgaXRzXG4gICAgLy8gaGVhcnRiZWF0IGdvZXMgc3RhbGUsIHdoaWNoIGF0IHdvcnN0IGxldHMgYSB3YWl0aW5nIHJ1biBzdGVhbCBpdC5cbiAgICBsb2coYFtpbnRlZ3JhdGlvbi1zZXR1cDoke2xhYmVsfV0gRmFpbGVkIHRvIHJlZnJlc2ggdGhlIHNldHVwIGxvY2sgaGVhcnRiZWF0OiAke2Vycm9yVG9TdHJpbmcoZXJyb3IpfWApO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIEZvcm1hdHMgYSBkdXJhdGlvbiBhcyBhIGNvbXBhY3QgYDFtIDMwc2AgLyBgNDVzYCBzdHJpbmcgZm9yIHByb2dyZXNzIGxvZ3MuXG4gKlxuICogQHBhcmFtIG1pbGxpc2Vjb25kcyAtIFRoZSBkdXJhdGlvbiBpbiBtaWxsaXNlY29uZHMuXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIGR1cmF0aW9uLlxuICovXG5mdW5jdGlvbiBmb3JtYXREdXJhdGlvbihtaWxsaXNlY29uZHM6IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IHRvdGFsU2Vjb25kcyA9IE1hdGgucm91bmQobWlsbGlzZWNvbmRzIC8gTUlMTElTRUNPTkRTX1BFUl9TRUNPTkQpO1xuICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcih0b3RhbFNlY29uZHMgLyBTRUNPTkRTX1BFUl9NSU5VVEUpO1xuICBjb25zdCBzZWNvbmRzID0gdG90YWxTZWNvbmRzICUgU0VDT05EU19QRVJfTUlOVVRFO1xuICByZXR1cm4gbWludXRlcyA+IDAgPyBgJHtTdHJpbmcobWludXRlcyl9bSAke1N0cmluZyhzZWNvbmRzKX1zYCA6IGAke1N0cmluZyhzZWNvbmRzKX1zYDtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIHBlcmlvZGljIFwic3RpbGwgd2FpdGluZ1wiIHByb2dyZXNzIGxpbmUsIHNvIGEgbGVnaXRpbWF0ZSBtdWx0aS1taW51dGVcbiAqIHdhaXQgaXMgZGlzdGluZ3Vpc2hhYmxlIGZyb20gYSBoYW5nIGluIHRoZSB0ZXJtaW5hbC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIG1lc3NhZ2UgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIFRoZSBtZXNzYWdlIHRvIGxvZy5cbiAqL1xuZnVuY3Rpb24gZm9ybWF0V2FpdE1lc3NhZ2UocGFyYW1zOiBGb3JtYXRXYWl0TWVzc2FnZVBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHtcbiAgICBpbmZvLFxuICAgIGxhYmVsLFxuICAgIHJlbWFpbmluZ0luTWlsbGlzZWNvbmRzLFxuICAgIHNjb3BlLFxuICAgIHdhaXRlZEluTWlsbGlzZWNvbmRzXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGhlbGRGb3IgPSBpbmZvID8gYCwgaGVsZCBmb3IgJHtmb3JtYXREdXJhdGlvbihEYXRlLm5vdygpIC0gaW5mby5hY3F1aXJlZEF0SW5NaWxsaXNlY29uZHMpfWAgOiAnJztcbiAgcmV0dXJuIGBbaW50ZWdyYXRpb24tc2V0dXA6JHtsYWJlbH1dIFdhaXRpbmcgZm9yIHRoZSAnJHtzY29wZX0nIHNldHVwIGxvY2sgaGVsZCBieSAke2Rlc2NyaWJlSG9sZGVyKGluZm8pfSB0byBiZSByZWxlYXNlZCBgXG4gICAgKyBgKHdhaXRlZCAke2Zvcm1hdER1cmF0aW9uKHdhaXRlZEluTWlsbGlzZWNvbmRzKX0ke2hlbGRGb3J9LCBnaXZpbmcgdXAgaW4gJHtmb3JtYXREdXJhdGlvbihyZW1haW5pbmdJbk1pbGxpc2Vjb25kcyl9KS4uLmA7XG59XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIGBjb2RlYCBmcm9tIGEgTm9kZS5qcyBzeXN0ZW0gZXJyb3IsIGlmIHByZXNlbnQuXG4gKlxuICogQHBhcmFtIGVycm9yIC0gVGhlIHRocm93biB2YWx1ZS5cbiAqIEByZXR1cm5zIFRoZSBlcnJvciBjb2RlIHN0cmluZywgb3IgYHVuZGVmaW5lZGAgaWYgbm90IGEgY29kZWQgZXJyb3IuXG4gKi9cbmZ1bmN0aW9uIGdldEVycm9yQ29kZShlcnJvcjogdW5rbm93bik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmICdjb2RlJyBpbiBlcnJvciAmJiB0eXBlb2YgZXJyb3IuY29kZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZXJyb3IuY29kZTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFJldHVybnMgd2hlbiB0aGUgaG9sZGVyIHdhcyBsYXN0IGtub3duIHRvIGJlIGFsaXZlIFx1MjAxNCBpdHMgbW9zdCByZWNlbnQgaGVhcnRiZWF0LFxuICogZmFsbGluZyBiYWNrIHRvIGl0cyBhY3F1aXNpdGlvbiB0aW1lIGZvciBhIGxvY2sgZmlsZSB3cml0dGVuIGJ5IGFuIG9sZGVyXG4gKiB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZSB0aGF0IHN0YW1wZWQgbm8gaGVhcnRiZWF0IGF0IGFsbC5cbiAqXG4gKiBAcGFyYW0gaW5mbyAtIFRoZSBwYXJzZWQgbG9jayBpbmZvLlxuICogQHJldHVybnMgVGhlIGVwb2NoIG1pbGxpc2Vjb25kcyBvZiB0aGUgaG9sZGVyJ3MgbGFzdCBzaWduIG9mIGxpZmUuXG4gKi9cbmZ1bmN0aW9uIGdldExhc3RTZWVuQXRJbk1pbGxpc2Vjb25kcyhpbmZvOiBMb2NrRmlsZUluZm8pOiBudW1iZXIge1xuICByZXR1cm4gaW5mby5oZWFydGJlYXRBdEluTWlsbGlzZWNvbmRzID8/IGluZm8uYWNxdWlyZWRBdEluTWlsbGlzZWNvbmRzO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHNoYXJlZCBsb2NrIGRpcmVjdG9yeSBpbnNpZGUgdGhlIE9TIHRlbXAgZGlyZWN0b3J5LlxuICpcbiAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBsb2NrIGRpcmVjdG9yeS5cbiAqL1xuZnVuY3Rpb24gZ2V0TG9ja0RpcmVjdG9yeSgpOiBzdHJpbmcge1xuICByZXR1cm4gam9pbih0bXBkaXIoKSwgTE9DS19ESVJfTkFNRSk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgbG9jayBmaWxlIHBhdGggZm9yIHRoZSBnaXZlbiBzY29wZS5cbiAqXG4gKiBAcGFyYW0gc2NvcGUgLSBUaGUgbG9jayBzY29wZS5cbiAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBzY29wZSdzIGxvY2sgZmlsZS5cbiAqL1xuZnVuY3Rpb24gZ2V0TG9ja0ZpbGVQYXRoKHNjb3BlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gam9pbihnZXRMb2NrRGlyZWN0b3J5KCksIGAke3Njb3BlfSR7TE9DS19GSUxFX1NVRkZJWH1gKTtcbn1cblxuLyoqXG4gKiBSZWFkcyBhbmQgcGFyc2VzIHRoZSBsb2NrIGZpbGUsIGlmIGl0IGV4aXN0cyBhbmQgaXMgdmFsaWQgSlNPTi5cbiAqXG4gKiBAcGFyYW0gbG9ja0ZpbGVQYXRoIC0gVGhlIHBhdGggdG8gdGhlIGxvY2sgZmlsZS5cbiAqIEByZXR1cm5zIFRoZSBwYXJzZWQgbG9jayBpbmZvLCBvciBgbnVsbGAgaWYgaXQgY291bGQgbm90IGJlIHJlYWQuXG4gKi9cbmZ1bmN0aW9uIHJlYWRMb2NrRmlsZUluZm8obG9ja0ZpbGVQYXRoOiBzdHJpbmcpOiBMb2NrRmlsZUluZm8gfCBudWxsIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShyZWFkRmlsZVN5bmMobG9ja0ZpbGVQYXRoLCAndXRmLTgnKSkgYXMgTG9ja0ZpbGVJbmZvO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG4vKipcbiAqIFJlbW92ZXMgYW4gYWJhbmRvbmVkIGhvbGRlcidzIGxvY2sgZmlsZSwgc2F5aW5nIHdob3NlIGl0IHdhcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGFiYW5kb25lZCBob2xkZXIsIGFuZCB3aG8gaXMgdGFraW5nIG92ZXIuXG4gKi9cbmZ1bmN0aW9uIHN0ZWFsU3RhbGVMb2NrKHBhcmFtczogU3RlYWxTdGFsZUxvY2tQYXJhbXMpOiB2b2lkIHtcbiAgbG9nKGBbaW50ZWdyYXRpb24tc2V0dXA6JHtwYXJhbXMubGFiZWx9XSBTdGVhbGluZyBzdGFsZSAnJHtwYXJhbXMuc2NvcGV9JyBzZXR1cCBsb2NrIGZyb20gJHtkZXNjcmliZUluZm8ocGFyYW1zLmluZm8pfS5gKTtcbiAgcm1TeW5jKHBhcmFtcy5sb2NrRmlsZVBhdGgsIHsgZm9yY2U6IHRydWUgfSk7XG59XG5cbi8qKlxuICogQXR0ZW1wdHMgdG8gYXRvbWljYWxseSBjcmVhdGUgdGhlIGxvY2sgZmlsZSAoZmFpbGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cykuXG4gKlxuICogQHBhcmFtIGxvY2tGaWxlUGF0aCAtIFRoZSBwYXRoIHRvIHRoZSBsb2NrIGZpbGUuXG4gKiBAcGFyYW0gbGFiZWwgLSBUaGUgdHJhbnNwb3J0IGxhYmVsIHRvIHJlY29yZCBpbiB0aGUgbG9jayBmaWxlLlxuICogQHJldHVybnMgVGhlIGxvY2sgaW5mbyB3cml0dGVuIG9uIHN1Y2Nlc3MsIG9yIGBudWxsYCBpZiB0aGUgbG9jayBpcyBhbHJlYWR5IGhlbGQuXG4gKiBAdGhyb3dzIElmIHRoZSBmaWxlIHN5c3RlbSBmYWlscyBmb3IgYW55IHJlYXNvbiBvdGhlciB0aGFuIHRoZSBmaWxlIGV4aXN0aW5nLlxuICovXG5mdW5jdGlvbiB0cnlDcmVhdGVMb2NrRmlsZShsb2NrRmlsZVBhdGg6IHN0cmluZywgbGFiZWw6IHN0cmluZyk6IExvY2tGaWxlSW5mbyB8IG51bGwge1xuICBjb25zdCBub3dJbk1pbGxpc2Vjb25kcyA9IERhdGUubm93KCk7XG4gIGNvbnN0IGluZm86IExvY2tGaWxlSW5mbyA9IHtcbiAgICBhY3F1aXJlZEF0SW5NaWxsaXNlY29uZHM6IG5vd0luTWlsbGlzZWNvbmRzLFxuICAgIGhlYXJ0YmVhdEF0SW5NaWxsaXNlY29uZHM6IG5vd0luTWlsbGlzZWNvbmRzLFxuICAgIGhvc3RuYW1lOiBob3N0bmFtZSgpLFxuICAgIGxhYmVsLFxuICAgIHBpZDogcHJvY2Vzcy5waWRcbiAgfTtcblxuICB0cnkge1xuICAgIHdyaXRlRmlsZVN5bmMobG9ja0ZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShpbmZvKSwgeyBmbGFnOiAnd3gnIH0pO1xuICAgIHJldHVybiBpbmZvO1xuICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgIGlmIChnZXRFcnJvckNvZGUoZXJyb3IpID09PSAnRUVYSVNUJykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQTBCQSxxQkFLTztBQUNQLHFCQUdPO0FBQ1AsdUJBQXFCO0FBQ3JCLDBCQUFvQjtBQUVwQiw2QkFBOEI7QUFDOUIsaUJBQW9CO0FBT2IsTUFBTSwyQkFBMkI7QUFFeEMsTUFBTSxnQkFBZ0I7QUFDdEIsTUFBTSxtQkFBbUI7QUFDekIsTUFBTSxnQ0FBZ0M7QUFDdEMsTUFBTSwwQkFBMEI7QUFDaEMsTUFBTSxxQkFBcUI7QUFDM0IsTUFBTSxnQ0FBZ0M7QUFDdEMsTUFBTSxxQ0FBcUMsZ0NBQWdDO0FBSzNFLE1BQU0saUNBQWlDO0FBQ3ZDLE1BQU0sa0NBQWtDLHFDQUFxQztBQUM3RSxNQUFNLCtCQUErQjtBQUNyQyxNQUFNLG9DQUFv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
|
|
319
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NldHVwLWxvY2sudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBDcm9zcy1wcm9jZXNzIGFkdmlzb3J5IGxvY2sgdGhhdCBzZXJpYWxpemVzIHdob2xlIGludGVncmF0aW9uLXRlc3QgcnVucy5cbiAqXG4gKiBUd28gdGVzdCBydW5zIHRoYXQgZHJpdmUgdGhlIHNhbWUgc2hhcmVkIHJlc291cmNlcyBjb3JydXB0IGVhY2ggb3RoZXI6IG9uXG4gKiBkZXNrdG9wIHRoZXkgc2hhcmUgdGhlIHNpbmdsZSBsb2NhbCBPYnNpZGlhbiBpbnN0YW5jZSwgaXRzIGBvYnNpZGlhbi5qc29uYFxuICogcmVnaXN0cnksIGFuZCB0aGUgQ0RQIHBvcnQ7IG9uIEFuZHJvaWQgdGhleSBzaGFyZSB0aGUgZW11bGF0b3IgYW5kIHRoZSBBcHBpdW1cbiAqIHNlcnZlci4gT25lIHJ1bidzIHNldHVwL3RlYXJkb3duIGtpbGxzIG9yIHJlY29uZmlndXJlcyB0aGUgaW5zdGFuY2UgdGhlIG90aGVyXG4gKiBydW4gaXMgbWlkLWV2YWwgb24gKG9ic2VydmVkIGFzIGBFQ09OTlJFRlVTRURgIG9yIFwidmF1bHQgbm90IG9wZW5cIiksIHNvIGJvdGhcbiAqIHJ1bnMgZmFpbC5cbiAqXG4gKiBUaGlzIGxvY2sgbWFrZXMgdGhlIHNlY29uZCBydW4gKip3YWl0KiogZm9yIHRoZSBmaXJzdCB0byBmaW5pc2ggaW5zdGVhZCBvZlxuICogcnVubmluZyBjb25jdXJyZW50bHkuIEl0IGlzIGhlbGQgZm9yIHRoZSBlbnRpcmUgcnVuOiBhY3F1aXJlZCBhdCB0aGUgc3RhcnQgb2ZcbiAqIHRoZSBjb3JlIHNldHVwIGFuZCByZWxlYXNlZCBieSB0aGUgY29yZSB0ZWFyZG93biAoYW5kIGJ5IHRoZSBwcm9jZXNzIGNsZWFudXBcbiAqIGhhbmRsZXJzKS4gVGhlIGxvY2sgaXMgYSBzZW50aW5lbCBmaWxlIGluIGEgc2hhcmVkIHRlbXAgZGlyZWN0b3J5LCBhbmQgaXRzXG4gKiBob2xkZXIga2VlcHMgYSAqKmhlYXJ0YmVhdCoqIHRpbWVzdGFtcCBpbnNpZGUgaXQgZnJlc2ggZm9yIGFzIGxvbmcgYXMgaXQgaG9sZHNcbiAqIHRoZSBsb2NrIFx1MjAxNCBzbyBhIHJ1biB0aGF0IGNyYXNoZWQgd2l0aG91dCByZWxlYXNpbmcgc3RvcHMgYmVhdGluZyBhbmQgdGhlIG5leHRcbiAqIHJ1biBkZXRlY3RzIHRoZSBsb2NrIGFzIHN0YWxlIGFuZCBzdGVhbHMgaXQuXG4gKlxuICogVGhlIGhlYXJ0YmVhdCwgbm90IHRoZSBob2xkZXIncyBQSUQsIGlzIHdoYXQgcHJvdmVzIGEgaG9sZGVyIGlzIHN0aWxsIHRoZXJlOiBhXG4gKiBQSUQgcHJvYmUgb25seSBhbnN3ZXJzIFwiZG9lcyAqYSogcHJvY2VzcyB3aXRoIHRoaXMgUElEIGV4aXN0XCIsIHdoaWNoIGFcbiAqIHJlY3ljbGVkIFBJRCBzYXRpc2ZpZXMgbG9uZyBhZnRlciB0aGUgcmVhbCBob2xkZXIgZGllZCBcdTIwMTQgbGVhdmluZyBldmVyeSBsYXRlclxuICogcnVuIHRvIGJsb2NrIGZvciB0aGUgZnVsbCBhY3F1aXNpdGlvbiB0aW1lb3V0LlxuICovXG5cbmltcG9ydCB7XG4gIG1rZGlyU3luYyxcbiAgcmVhZEZpbGVTeW5jLFxuICBybVN5bmMsXG4gIHdyaXRlRmlsZVN5bmNcbn0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQge1xuICBob3N0bmFtZSxcbiAgdG1wZGlyXG59IGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgcHJvY2VzcyBmcm9tICdub2RlOnByb2Nlc3MnO1xuXG5pbXBvcnQgeyBlcnJvclRvU3RyaW5nIH0gZnJvbSAnLi9lcnJvci10by1zdHJpbmcuY2pzJztcbmltcG9ydCB7IGxvZyB9IGZyb20gJy4vbG9nLmNqcyc7XG5cbi8qKlxuICogVGhlIHNjb3BlIGV2ZXJ5IEFuZHJvaWQgcnVuIHNlcmlhbGl6ZXMgb246IHRoZSBBcHBpdW0gdHJhbnNwb3J0J3MgZ2xvYmFsXG4gKiBzZXR1cCwgYSBwcm9qZWN0IHRoYXQgdGFrZXMgdGhlIGxvY2sgaXRzZWxmLCBhbmQgdGhlIGVtdWxhdG9yIHJlYXBlciBhbGxcbiAqIGhhdmUgdG8gbmFtZSB0aGUgc2FtZSBvbmUsIG9yIHRoZXkgc2VyaWFsaXplIGFnYWluc3Qgbm90aGluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IEFORFJPSURfU0VUVVBfTE9DS19TQ09QRSA9ICdhbmRyb2lkJztcblxuY29uc3QgTE9DS19ESVJfTkFNRSA9ICdvYnNpZGlhbi1pbnRlZ3JhdGlvbi10ZXN0aW5nJztcbmNvbnN0IExPQ0tfRklMRV9TVUZGSVggPSAnLnNldHVwLmxvY2snO1xuY29uc3QgUE9MTF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMgPSA1MDA7XG5jb25zdCBNSUxMSVNFQ09ORFNfUEVSX1NFQ09ORCA9IDEwMDA7XG5jb25zdCBTRUNPTkRTX1BFUl9NSU5VVEUgPSA2MDtcbmNvbnN0IEhFQVJUQkVBVF9JTlRFUlZBTF9JTl9TRUNPTkRTID0gNTtcbmNvbnN0IEhFQVJUQkVBVF9JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFMgPSBIRUFSVEJFQVRfSU5URVJWQUxfSU5fU0VDT05EUyAqIE1JTExJU0VDT05EU19QRVJfU0VDT05EO1xuLy8gR2VuZXJvdXMgb24gcHVycG9zZTogYSBkZWFkIGhvbGRlciBpcyBub3JtYWxseSBjYXVnaHQgaW5zdGFudGx5IGJ5IHRoZSBQSURcbi8vIHByb2JlLCBzbyB0aGlzIHRocmVzaG9sZCBvbmx5IGhhcyB0byBjb3ZlciB0aGUgcmVjeWNsZWQtUElEIGNhc2UuIFR3byBtaW51dGVzXG4vLyBrZWVwcyBhIGhvbGRlciB0aGF0IGJsb2NrcyBpdHMgZXZlbnQgbG9vcCBkdXJpbmcgaGVhdnkgc3luY2hyb25vdXMgd29yayAoYVxuLy8gbGFyZ2UgdmF1bHQgc3luYywgYW4gaW5zdGFsbGVyIHVucGFjaykgZnJvbSBiZWluZyByb2JiZWQgd2hpbGUgaXQgaXMgYWxpdmUuXG5jb25zdCBNSVNTRURfSEVBUlRCRUFUU19CRUZPUkVfU1RBTEUgPSAyNDtcbmNvbnN0IEhFQVJUQkVBVF9TVEFMRV9JTl9NSUxMSVNFQ09ORFMgPSBIRUFSVEJFQVRfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTICogTUlTU0VEX0hFQVJUQkVBVFNfQkVGT1JFX1NUQUxFO1xuY29uc3QgV0FJVF9MT0dfSU5URVJWQUxfSU5fU0VDT05EUyA9IDMwO1xuY29uc3QgV0FJVF9MT0dfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTID0gV0FJVF9MT0dfSU5URVJWQUxfSU5fU0VDT05EUyAqIE1JTExJU0VDT05EU19QRVJfU0VDT05EO1xuY29uc3QgU1RBTEVfTE9DS19BR0VfSU5fTUlOVVRFUyA9IDMwO1xuY29uc3QgREVGQVVMVF9USU1FT1VUX0lOX01JTlVURVMgPSA2MDtcbmNvbnN0IFNUQUxFX0xPQ0tfQUdFX0lOX01JTExJU0VDT05EUyA9IFNUQUxFX0xPQ0tfQUdFX0lOX01JTlVURVMgKiBTRUNPTkRTX1BFUl9NSU5VVEUgKiBNSUxMSVNFQ09ORFNfUEVSX1NFQ09ORDtcbmNvbnN0IERFRkFVTFRfVElNRU9VVF9JTl9NSUxMSVNFQ09ORFMgPSBERUZBVUxUX1RJTUVPVVRfSU5fTUlOVVRFUyAqIFNFQ09ORFNfUEVSX01JTlVURSAqIE1JTExJU0VDT05EU19QRVJfU0VDT05EO1xuY29uc3QgUFJPQ0VTU19FWElTVEVOQ0VfUFJPQkVfU0lHTkFMID0gMDtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgYWNxdWlyZVNldHVwTG9ja30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWNxdWlyZVNldHVwTG9ja1BhcmFtcyB7XG4gIC8qKlxuICBTaG9ydCB0cmFuc3BvcnQgbGFiZWwgZm9yIGxvZyBtZXNzYWdlcyAoZS5nLiBgXCJvYnNpZGlhbi1jbGlcImApLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogTG9naWNhbCBzY29wZSB0aGUgbG9jayBzZXJpYWxpemVzIHdpdGhpbi4gUnVucyB0aGF0IHNoYXJlIHJlc291cmNlcyBtdXN0XG4gICAqIHVzZSB0aGUgc2FtZSBzY29wZSAoZS5nLiBgXCJkZXNrdG9wXCJgIGZvciB0aGUgQ0xJL0NEUCB0cmFuc3BvcnRzLCBgXCJhbmRyb2lkXCJgXG4gICAqIGZvciB0aGUgQXBwaXVtIHRyYW5zcG9ydCkuXG4gICAqL1xuICByZWFkb25seSBzY29wZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIHRpbWUgdG8gd2FpdCBmb3IgYSBjb21wZXRpbmcgcnVuIHRvIHJlbGVhc2UgdGhlIGxvY2sgYmVmb3JlIGdpdmluZ1xuICAgKiB1cCBhbmQgdGhyb3dpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0IDEgaG91clxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEEgaGVsZCBzZXR1cCBsb2NrLiBSZWxlYXNlIGl0IG9uY2UgdGhlIHJ1bidzIHRlYXJkb3duIGlzIGNvbXBsZXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNldHVwTG9jayB7XG4gIC8qKlxuICBSZWxlYXNlcyB0aGUgbG9jay4gU2FmZSB0byBjYWxsIG1vcmUgdGhhbiBvbmNlLlxuICAgKi9cbiAgcmVsZWFzZTogKCkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgdHJ5QWNxdWlyZVNldHVwTG9ja30uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJ5QWNxdWlyZVNldHVwTG9ja1BhcmFtcyB7XG4gIC8qKlxuICBTaG9ydCB0cmFuc3BvcnQgbGFiZWwgZm9yIGxvZyBtZXNzYWdlcywgcmVjb3JkZWQgaW4gdGhlIGxvY2sgZmlsZSBhcyB0aGUgaG9sZGVyJ3MuXG4gICAqL1xuICByZWFkb25seSBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICBMb2dpY2FsIHNjb3BlIHRoZSBsb2NrIHNlcmlhbGl6ZXMgd2l0aGluIFx1MjAxNCBzZWUge0BsaW5rIEFjcXVpcmVTZXR1cExvY2tQYXJhbXMuc2NvcGV9LlxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU6IHN0cmluZztcblxuICAvKipcbiAgICogSG93IGxvbmcgYSBzYW1lLWhvc3QgaG9sZGVyIHdob3NlIFBJRCBpcyBzdGlsbCBhbGl2ZSBtYXkgZ28gd2l0aG91dCBhXG4gICAqIGhlYXJ0YmVhdCBiZWZvcmUgaXRzIGxvY2sgY291bnRzIGFzIGFiYW5kb25lZC5cbiAgICpcbiAgICogQSBkZWFkIGhvbGRlciBQSUQgaXMgYWJhbmRvbmVkIGF0IG9uY2Ugd2hhdGV2ZXIgdGhpcyBzYXlzLiBUaGUgZGVmYXVsdCBpc1xuICAgKiB0aGUgdGhyZXNob2xkIGV2ZXJ5IHdhaXRpbmcgcnVuIHN0ZWFscyBvbjsgYSBjYWxsZXIgdGhhdCBpcyAqYWx3YXlzKiB3YWl0aW5nXG4gICAqIFx1MjAxNCB0aGUgZW11bGF0b3IgcmVhcGVyIFx1MjAxNCBwYXNzZXMgYSBmYXIgd2lkZXIgb25lLCBzbyBhIGxpdmUgcnVuIHRoYXQgYmxvY2tzXG4gICAqIGl0cyBldmVudCBsb29wIGZvciBhIGNvdXBsZSBvZiBtaW51dGVzIGlzIG5vdCByb2JiZWQgb2YgaXRzIGxvY2suXG4gICAqXG4gICAqIEBkZWZhdWx0IDIgbWludXRlc1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhbGVBZnRlclNpbGVuY2VJbk1pbGxpc2Vjb25kcz86IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgY3JlYXRlTG9ja0hhbmRsZX0uXG4gKi9cbmludGVyZmFjZSBDcmVhdGVMb2NrSGFuZGxlUGFyYW1zIHtcbiAgLyoqXG4gIFRoZSB0cmFuc3BvcnQgbGFiZWwgb2YgdGhpcyBydW4uXG4gICAqL1xuICByZWFkb25seSBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgcGF0aCB0byB0aGUgbG9jayBmaWxlIHRoaXMgcnVuIGp1c3QgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGxvY2tGaWxlUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgbG9jayBpbmZvIHRoaXMgcnVuIHdyb3RlIHdoZW4gaXQgYWNxdWlyZWQgdGhlIGxvY2suXG4gICAqL1xuICByZWFkb25seSBvd25JbmZvOiBMb2NrRmlsZUluZm87XG5cbiAgLyoqXG4gIFRoZSBsb2NrIHNjb3BlLCBmb3IgbG9nIG1lc3NhZ2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgY3JlYXRlVGltZW91dEVycm9yfS5cbiAqL1xuaW50ZXJmYWNlIENyZWF0ZVRpbWVvdXRFcnJvclBhcmFtcyB7XG4gIC8qKlxuICBUaGUgY3VycmVudCBob2xkZXIncyBsb2NrIGluZm8sIG9yIGBudWxsYCBpZiBpdCBjb3VsZCBub3QgYmUgcmVhZC5cbiAgICovXG4gIHJlYWRvbmx5IGluZm86IExvY2tGaWxlSW5mbyB8IG51bGw7XG5cbiAgLyoqXG4gIFRoZSBsb2NrIHNjb3BlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU6IHN0cmluZztcblxuICAvKipcbiAgVGhlIHRpbWVvdXQgdGhhdCBlbGFwc2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dEluTWlsbGlzZWNvbmRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGZvcm1hdFdhaXRNZXNzYWdlfS5cbiAqL1xuaW50ZXJmYWNlIEZvcm1hdFdhaXRNZXNzYWdlUGFyYW1zIHtcbiAgLyoqXG4gIFRoZSBjdXJyZW50IGhvbGRlcidzIGxvY2sgaW5mbywgb3IgYG51bGxgIGlmIGl0IGNvdWxkIG5vdCBiZSByZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5mbzogTG9ja0ZpbGVJbmZvIHwgbnVsbDtcblxuICAvKipcbiAgVGhlIHRyYW5zcG9ydCBsYWJlbCBvZiB0aGUgd2FpdGluZyBydW4uXG4gICAqL1xuICByZWFkb25seSBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICBIb3cgbXVjaCBvZiB0aGUgYWNxdWlzaXRpb24gdGltZW91dCBpcyBsZWZ0LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtYWluaW5nSW5NaWxsaXNlY29uZHM6IG51bWJlcjtcblxuICAvKipcbiAgVGhlIGxvY2sgc2NvcGUuXG4gICAqL1xuICByZWFkb25seSBzY29wZTogc3RyaW5nO1xuXG4gIC8qKlxuICBIb3cgbG9uZyB0aGlzIHJ1biBoYXMgYmVlbiB3YWl0aW5nIHNvIGZhci5cbiAgICovXG4gIHJlYWRvbmx5IHdhaXRlZEluTWlsbGlzZWNvbmRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhlIEpTT04gcGF5bG9hZCBzdG9yZWQgaW5zaWRlIGEgbG9jayBmaWxlLCBpZGVudGlmeWluZyB0aGUgaG9sZGVyLlxuICovXG5pbnRlcmZhY2UgTG9ja0ZpbGVJbmZvIHtcbiAgLyoqXG4gIFdoZW4gdGhlIGxvY2sgd2FzIGFjcXVpcmVkIChgRGF0ZS5ub3coKWAgZXBvY2ggbWlsbGlzZWNvbmRzKS5cbiAgICovXG4gIHJlYWRvbmx5IGFjcXVpcmVkQXRJbk1pbGxpc2Vjb25kczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBob2xkZXIgbGFzdCBwcm92ZWQgaXQgd2FzIHN0aWxsIGFsaXZlIChgRGF0ZS5ub3coKWAgZXBvY2hcbiAgICogbWlsbGlzZWNvbmRzKSwgcmVmcmVzaGVkIGV2ZXJ5IHtAbGluayBIRUFSVEJFQVRfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTfVxuICAgKiB3aGlsZSB0aGUgbG9jayBpcyBoZWxkLlxuICAgKlxuICAgKiBBYnNlbnQgaW4gYSBsb2NrIGZpbGUgd3JpdHRlbiBieSBhbiBvbGRlciB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZSwgd2hpY2hcbiAgICogc3RhbXBlZCB0aGUgUElEIGJ1dCBuZXZlciBiZWF0LlxuICAgKi9cbiAgcmVhZG9ubHkgaGVhcnRiZWF0QXRJbk1pbGxpc2Vjb25kcz86IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgVGhlIGhvc3QgdGhhdCBob2xkcyB0aGUgbG9jayAoUElEIGxpdmVuZXNzIGlzIG9ubHkgdmFsaWQgb24gdGhlIHNhbWUgaG9zdCkuXG4gICAqL1xuICByZWFkb25seSBob3N0bmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgdHJhbnNwb3J0IGxhYmVsIG9mIHRoZSBob2xkaW5nIHJ1bi5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBwcm9jZXNzIElEIG9mIHRoZSBob2xkaW5nIHJ1bi5cbiAgICovXG4gIHJlYWRvbmx5IHBpZDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBkaWRSZWZyZXNoSGVhcnRiZWF0fS5cbiAqL1xuaW50ZXJmYWNlIFJlZnJlc2hIZWFydGJlYXRQYXJhbXMge1xuICAvKipcbiAgVGhlIHRyYW5zcG9ydCBsYWJlbCBvZiB0aGlzIHJ1bi5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBwYXRoIHRvIHRoZSBsb2NrIGZpbGUgdG8gcmVmcmVzaC5cbiAgICovXG4gIHJlYWRvbmx5IGxvY2tGaWxlUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgbG9jayBpbmZvIHRoaXMgcnVuIHdyb3RlIHdoZW4gaXQgYWNxdWlyZWQgdGhlIGxvY2suXG4gICAqL1xuICByZWFkb25seSBvd25JbmZvOiBMb2NrRmlsZUluZm87XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHN0ZWFsU3RhbGVMb2NrfS5cbiAqL1xuaW50ZXJmYWNlIFN0ZWFsU3RhbGVMb2NrUGFyYW1zIHtcbiAgLyoqXG4gIFRoZSBhYmFuZG9uZWQgaG9sZGVyJ3MgbG9jayBpbmZvLlxuICAgKi9cbiAgcmVhZG9ubHkgaW5mbzogTG9ja0ZpbGVJbmZvO1xuXG4gIC8qKlxuICBUaGUgdHJhbnNwb3J0IGxhYmVsIG9mIHRoZSBzdGVhbGluZyBydW4uXG4gICAqL1xuICByZWFkb25seSBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgcGF0aCB0byB0aGUgbG9jayBmaWxlIHRvIHJlbW92ZS5cbiAgICovXG4gIHJlYWRvbmx5IGxvY2tGaWxlUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgbG9jayBzY29wZSwgZm9yIHRoZSBsb2cgbWVzc2FnZS5cbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQWNxdWlyZXMgdGhlIGNyb3NzLXByb2Nlc3Mgc2V0dXAgbG9jayBmb3IgdGhlIGdpdmVuIHNjb3BlLCB3YWl0aW5nIHVudGlsIGFueVxuICogY29tcGV0aW5nIHJ1biByZWxlYXNlcyBpdCAob3IgaXRzIGxvY2sgaXMgZGV0ZWN0ZWQgYXMgc3RhbGUpLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgbG9jayBwYXJhbWV0ZXJzLlxuICogQHJldHVybnMgQSBoYW5kbGUgd2hvc2Uge0BsaW5rIFNldHVwTG9jay5yZWxlYXNlfSBmcmVlcyB0aGUgbG9jay5cbiAqIEB0aHJvd3MgSWYgdGhlIGxvY2sgY2Fubm90IGJlIGFjcXVpcmVkIHdpdGhpbiBgdGltZW91dEluTWlsbGlzZWNvbmRzYC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFjcXVpcmVTZXR1cExvY2socGFyYW1zOiBBY3F1aXJlU2V0dXBMb2NrUGFyYW1zKTogUHJvbWlzZTxTZXR1cExvY2s+IHtcbiAgY29uc3Qge1xuICAgIGxhYmVsLFxuICAgIHNjb3BlXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHRpbWVvdXRJbk1pbGxpc2Vjb25kcyA9IHBhcmFtcy50aW1lb3V0SW5NaWxsaXNlY29uZHMgPz8gREVGQVVMVF9USU1FT1VUX0lOX01JTExJU0VDT05EUztcbiAgY29uc3QgbG9ja0ZpbGVQYXRoID0gZ2V0TG9ja0ZpbGVQYXRoKHNjb3BlKTtcbiAgbWtkaXJTeW5jKGdldExvY2tEaXJlY3RvcnkoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgY29uc3Qgc3RhcnRlZEF0SW5NaWxsaXNlY29uZHMgPSBEYXRlLm5vdygpO1xuICBjb25zdCBkZWFkbGluZUluTWlsbGlzZWNvbmRzID0gc3RhcnRlZEF0SW5NaWxsaXNlY29uZHMgKyB0aW1lb3V0SW5NaWxsaXNlY29uZHM7XG4gIGxldCBsYXN0TG9nZ2VkV2FpdEF0SW5NaWxsaXNlY29uZHM6IG51bGwgfCBudW1iZXIgPSBudWxsO1xuXG4gIGZvciAoOzspIHtcbiAgICBjb25zdCBvd25JbmZvID0gdHJ5Q3JlYXRlTG9ja0ZpbGUobG9ja0ZpbGVQYXRoLCBsYWJlbCk7XG4gICAgaWYgKG93bkluZm8pIHtcbiAgICAgIHJldHVybiBjcmVhdGVMb2NrSGFuZGxlKHtcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIGxvY2tGaWxlUGF0aCxcbiAgICAgICAgb3duSW5mbyxcbiAgICAgICAgc2NvcGVcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGluZm8gPSByZWFkTG9ja0ZpbGVJbmZvKGxvY2tGaWxlUGF0aCk7XG4gICAgaWYgKGluZm8gJiYgY2hlY2tJc0xvY2tTdGFsZShpbmZvLCBIRUFSVEJFQVRfU1RBTEVfSU5fTUlMTElTRUNPTkRTKSkge1xuICAgICAgc3RlYWxTdGFsZUxvY2soeyBpbmZvLCBsYWJlbCwgbG9ja0ZpbGVQYXRoLCBzY29wZSB9KTtcbiAgICAgIC8vIFJldHJ5IGltbWVkaWF0ZWx5IFx1MjAxNCBidXQgc3RpbGwgaG9ub3VyIHRoZSBkZWFkbGluZSwgc28gYSBsb2NrIHRoYXQgYVxuICAgICAgLy8gY29tcGV0aW5nIHJ1biBrZWVwcyByZWNyZWF0aW5nIGNhbm5vdCBzcGluIHRoaXMgbG9vcCBmb3JldmVyLlxuICAgICAgaWYgKERhdGUubm93KCkgPj0gZGVhZGxpbmVJbk1pbGxpc2Vjb25kcykge1xuICAgICAgICB0aHJvdyBjcmVhdGVUaW1lb3V0RXJyb3Ioe1xuICAgICAgICAgIGluZm8sXG4gICAgICAgICAgc2NvcGUsXG4gICAgICAgICAgdGltZW91dEluTWlsbGlzZWNvbmRzXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3Qgbm93SW5NaWxsaXNlY29uZHMgPSBEYXRlLm5vdygpO1xuICAgIGlmIChub3dJbk1pbGxpc2Vjb25kcyA+PSBkZWFkbGluZUluTWlsbGlzZWNvbmRzKSB7XG4gICAgICB0aHJvdyBjcmVhdGVUaW1lb3V0RXJyb3Ioe1xuICAgICAgICBpbmZvLFxuICAgICAgICBzY29wZSxcbiAgICAgICAgdGltZW91dEluTWlsbGlzZWNvbmRzXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBzaG91bGRMb2dXYWl0ID0gbGFzdExvZ2dlZFdhaXRBdEluTWlsbGlzZWNvbmRzID09PSBudWxsXG4gICAgICB8fCBub3dJbk1pbGxpc2Vjb25kcyAtIGxhc3RMb2dnZWRXYWl0QXRJbk1pbGxpc2Vjb25kcyA+PSBXQUlUX0xPR19JTlRFUlZBTF9JTl9NSUxMSVNFQ09ORFM7XG4gICAgaWYgKHNob3VsZExvZ1dhaXQpIHtcbiAgICAgIGxhc3RMb2dnZWRXYWl0QXRJbk1pbGxpc2Vjb25kcyA9IG5vd0luTWlsbGlzZWNvbmRzO1xuICAgICAgbG9nKGZvcm1hdFdhaXRNZXNzYWdlKHtcbiAgICAgICAgaW5mbyxcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIHJlbWFpbmluZ0luTWlsbGlzZWNvbmRzOiBkZWFkbGluZUluTWlsbGlzZWNvbmRzIC0gbm93SW5NaWxsaXNlY29uZHMsXG4gICAgICAgIHNjb3BlLFxuICAgICAgICB3YWl0ZWRJbk1pbGxpc2Vjb25kczogbm93SW5NaWxsaXNlY29uZHMgLSBzdGFydGVkQXRJbk1pbGxpc2Vjb25kc1xuICAgICAgfSkpO1xuICAgIH1cblxuICAgIGF3YWl0IGRlbGF5KFBPTExfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcG9ydHMgd2hldGhlciBhIHJ1biBjdXJyZW50bHkgaG9sZHMgdGhlIHNldHVwIGxvY2sgZm9yIGEgc2NvcGUuXG4gKlxuICogQSBsb2NrIGZpbGUgdGhhdCBleGlzdHMgYnV0IGNhbm5vdCBiZSByZWFkIGNvdW50cyBhcyBoZWxkIFx1MjAxNCB0aGUgc2FtZSBhbnN3ZXJcbiAqIHtAbGluayBhY3F1aXJlU2V0dXBMb2NrfSBnaXZlcyBieSB3YWl0aW5nIG9uIGl0OiBpdCBpcyBlaXRoZXIgbWlkLXdyaXRlIG9yXG4gKiBjb3JydXB0LCBhbmQgZWl0aGVyIHdheSBubyBydW4gY2FuIHRha2UgaXQuXG4gKlxuICogQHBhcmFtIHNjb3BlIC0gVGhlIGxvY2sgc2NvcGUuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgd2hlbiBhIGhvbGRlciB0aGF0IGlzIG5vdCBzdGFsZSBvd25zIHRoZSBsb2NrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tJc1NldHVwTG9ja0hlbGQoc2NvcGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBsZXQgdGV4dDogc3RyaW5nO1xuICB0cnkge1xuICAgIHRleHQgPSByZWFkRmlsZVN5bmMoZ2V0TG9ja0ZpbGVQYXRoKHNjb3BlKSwgJ3V0Zi04Jyk7XG4gIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIGdldEVycm9yQ29kZShlcnJvcikgIT09ICdFTk9FTlQnO1xuICB9XG5cbiAgbGV0IGluZm86IExvY2tGaWxlSW5mbztcbiAgdHJ5IHtcbiAgICBpbmZvID0gSlNPTi5wYXJzZSh0ZXh0KSBhcyBMb2NrRmlsZUluZm87XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuICFjaGVja0lzTG9ja1N0YWxlKGluZm8sIEhFQVJUQkVBVF9TVEFMRV9JTl9NSUxMSVNFQ09ORFMpO1xufVxuXG4vKipcbiAqIFRha2VzIHRoZSBzZXR1cCBsb2NrIGZvciBhIHNjb3BlIGlmIGl0IGlzIGZyZWUgb3IgYWJhbmRvbmVkLCB3aXRob3V0IHdhaXRpbmcuXG4gKlxuICogT25lIGF0dGVtcHQ6IGEgbGl2ZSBob2xkZXIgXHUyMDE0IG9yIGEgbG9jayBmaWxlIHRoYXQgY2Fubm90IGJlIHJlYWQgXHUyMDE0IG1lYW5zXG4gKiBgdW5kZWZpbmVkYCwgYW5kIHRoZSBjYWxsZXIgZGVjaWRlcyB3aGV0aGVyIHRvIHRyeSBhZ2FpbiBsYXRlci5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGxvY2sgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIEEgaGFuZGxlIHdob3NlIHtAbGluayBTZXR1cExvY2sucmVsZWFzZX0gZnJlZXMgdGhlIGxvY2ssIG9yIGB1bmRlZmluZWRgIHdoaWxlIGFub3RoZXIgcnVuIGhvbGRzIGl0LlxuICogQHRocm93cyBJZiB0aGUgZmlsZSBzeXN0ZW0gZmFpbHMgZm9yIGFueSByZWFzb24gb3RoZXIgdGhhbiB0aGUgbG9jayBmaWxlIGFscmVhZHkgZXhpc3RpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cnlBY3F1aXJlU2V0dXBMb2NrKHBhcmFtczogVHJ5QWNxdWlyZVNldHVwTG9ja1BhcmFtcyk6IFNldHVwTG9jayB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHsgbGFiZWwsIHNjb3BlIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGxvY2tGaWxlUGF0aCA9IGdldExvY2tGaWxlUGF0aChzY29wZSk7XG4gIG1rZGlyU3luYyhnZXRMb2NrRGlyZWN0b3J5KCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gIGxldCBvd25JbmZvID0gdHJ5Q3JlYXRlTG9ja0ZpbGUobG9ja0ZpbGVQYXRoLCBsYWJlbCk7XG4gIGlmICghb3duSW5mbykge1xuICAgIGNvbnN0IGluZm8gPSByZWFkTG9ja0ZpbGVJbmZvKGxvY2tGaWxlUGF0aCk7XG4gICAgaWYgKCFpbmZvIHx8ICFjaGVja0lzTG9ja1N0YWxlKGluZm8sIHBhcmFtcy5zdGFsZUFmdGVyU2lsZW5jZUluTWlsbGlzZWNvbmRzID8/IEhFQVJUQkVBVF9TVEFMRV9JTl9NSUxMSVNFQ09ORFMpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHN0ZWFsU3RhbGVMb2NrKHsgaW5mbywgbGFiZWwsIGxvY2tGaWxlUGF0aCwgc2NvcGUgfSk7XG4gICAgb3duSW5mbyA9IHRyeUNyZWF0ZUxvY2tGaWxlKGxvY2tGaWxlUGF0aCwgbGFiZWwpO1xuICAgIGlmICghb3duSW5mbykge1xuICAgICAgLy8gQW5vdGhlciBydW4gcmVjcmVhdGVkIGl0IGJldHdlZW4gdGhlIHN0ZWFsIGFuZCB0aGlzIGF0dGVtcHQ7IGl0IGlzIHRoZWlycyBub3cuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjcmVhdGVMb2NrSGFuZGxlKHtcbiAgICBsYWJlbCxcbiAgICBsb2NrRmlsZVBhdGgsXG4gICAgb3duSW5mbyxcbiAgICBzY29wZVxuICB9KTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsb2NrIGNhbiBiZSBjb25zaWRlcmVkIGFiYW5kb25lZC5cbiAqXG4gKiBBIGxpdmUgaG9sZGVyIHJlZnJlc2hlcyBpdHMgaGVhcnRiZWF0IGV2ZXJ5XG4gKiB7QGxpbmsgSEVBUlRCRUFUX0lOVEVSVkFMX0lOX01JTExJU0VDT05EU30sIHNvIGEgaGVhcnRiZWF0IHRoYXQgc3RvcHBlZCBtZWFuc1xuICogdGhlIGhvbGRlciBpcyBnb25lLiBUaGF0IGlzIHRoZSBwcmltYXJ5IHNpZ25hbCwgYmVjYXVzZSB0aGUgcmVjb3JkZWQgUElEIGFsb25lXG4gKiBjYW5ub3QgYmUgdHJ1c3RlZDoge0BsaW5rIGNoZWNrSXNQcm9jZXNzQWxpdmV9IG9ubHkgYW5zd2VycyBcImRvZXMgKmEqIHByb2Nlc3NcbiAqIHdpdGggdGhpcyBQSUQgZXhpc3RcIiwgd2hpY2ggYSByZWN5Y2xlZCBQSUQgc2F0aXNmaWVzIGxvbmcgYWZ0ZXIgdGhlIGhvbGRlclxuICogZGllZC5cbiAqXG4gKiBPbiB0aGUgc2FtZSBob3N0IGEgZGVhZCBQSUQgaXMgc3RpbGwgYW4gaW1tZWRpYXRlIGdpdmUtYXdheSwgc28gaXQgaXMga2VwdCBhc1xuICogYSBmYXN0IHBhdGguIE9uIGEgZGlmZmVyZW50IGhvc3QgKGEgc2hhcmVkL25ldHdvcmsgdGVtcCBkaXJlY3RvcnkpIHRoZSBQSURcbiAqIGNhbm5vdCBiZSBwcm9iZWQgYXQgYWxsIGFuZCB0aGUgdHdvIGNsb2NrcyBtYXkgZGlzYWdyZWUsIHNvIHRoZSBtdWNoIHdpZGVyXG4gKiB7QGxpbmsgU1RBTEVfTE9DS19BR0VfSU5fTUlMTElTRUNPTkRTfSB0aHJlc2hvbGQgaXMgdXNlZCBpbnN0ZWFkLlxuICpcbiAqIEBwYXJhbSBpbmZvIC0gVGhlIHBhcnNlZCBsb2NrIGluZm8uXG4gKiBAcGFyYW0gaGVhcnRiZWF0U3RhbGVJbk1pbGxpc2Vjb25kcyAtIEhvdyBsb25nIGEgc2FtZS1ob3N0IGhvbGRlciB3aG9zZSBQSUQgaXMgYWxpdmUgbWF5IHN0YXkgc2lsZW50LlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBsb2NrIGlzIHN0YWxlIGFuZCBtYXkgYmUgc3RvbGVuLlxuICovXG5mdW5jdGlvbiBjaGVja0lzTG9ja1N0YWxlKGluZm86IExvY2tGaWxlSW5mbywgaGVhcnRiZWF0U3RhbGVJbk1pbGxpc2Vjb25kczogbnVtYmVyKTogYm9vbGVhbiB7XG4gIGNvbnN0IHNpbGVudEZvckluTWlsbGlzZWNvbmRzID0gRGF0ZS5ub3coKSAtIGdldExhc3RTZWVuQXRJbk1pbGxpc2Vjb25kcyhpbmZvKTtcblxuICBpZiAoaW5mby5ob3N0bmFtZSA9PT0gaG9zdG5hbWUoKSkge1xuICAgIHJldHVybiAhY2hlY2tJc1Byb2Nlc3NBbGl2ZShpbmZvLnBpZCkgfHwgc2lsZW50Rm9ySW5NaWxsaXNlY29uZHMgPiBoZWFydGJlYXRTdGFsZUluTWlsbGlzZWNvbmRzO1xuICB9XG5cbiAgcmV0dXJuIHNpbGVudEZvckluTWlsbGlzZWNvbmRzID4gU1RBTEVfTE9DS19BR0VfSU5fTUlMTElTRUNPTkRTO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIGxvY2sgZmlsZSBzdGlsbCBuYW1lcyB0aGlzIHByb2Nlc3MgYXMgaXRzIGhvbGRlci5cbiAqXG4gKiBAcGFyYW0gaW5mbyAtIFRoZSBwYXJzZWQgbG9jayBpbmZvLlxuICogQHJldHVybnMgYHRydWVgIGlmIHRoaXMgcHJvY2VzcyBob2xkcyB0aGUgbG9jay5cbiAqL1xuZnVuY3Rpb24gY2hlY2tJc093bkxvY2soaW5mbzogTG9ja0ZpbGVJbmZvKTogYm9vbGVhbiB7XG4gIHJldHVybiBpbmZvLnBpZCA9PT0gcHJvY2Vzcy5waWQgJiYgaW5mby5ob3N0bmFtZSA9PT0gaG9zdG5hbWUoKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIHByb2Nlc3Mgd2l0aCB0aGUgZ2l2ZW4gUElEIGlzIGN1cnJlbnRseSBhbGl2ZS5cbiAqXG4gKiBAcGFyYW0gcGlkIC0gVGhlIHByb2Nlc3MgSUQgdG8gcHJvYmUuXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHByb2Nlc3MgZXhpc3RzLlxuICovXG5mdW5jdGlvbiBjaGVja0lzUHJvY2Vzc0FsaXZlKHBpZDogbnVtYmVyKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgcHJvY2Vzcy5raWxsKHBpZCwgUFJPQ0VTU19FWElTVEVOQ0VfUFJPQkVfU0lHTkFMKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAvLyBgRVBFUk1gIG1lYW5zIHRoZSBwcm9jZXNzIGV4aXN0cyBidXQgaXMgb3duZWQgYnkgYW5vdGhlciB1c2VyIFx1MjAxNCBzdGlsbCBhbGl2ZS5cbiAgICByZXR1cm4gZ2V0RXJyb3JDb2RlKGVycm9yKSA9PT0gJ0VQRVJNJztcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSB7QGxpbmsgU2V0dXBMb2NrfSBoYW5kbGUgdGhhdCBrZWVwcyB0aGUgbG9jaydzIGhlYXJ0YmVhdCBmcmVzaCB3aGlsZVxuICogaGVsZCBhbmQgcmVtb3ZlcyB0aGUgbG9jayBmaWxlIG9uIHJlbGVhc2UuXG4gKlxuICogVGhlIGhlYXJ0YmVhdCB0aW1lciBpcyBgdW5yZWZgZWQgc28gaXQgY2FuIG5ldmVyIGtlZXAgdGhlIHByb2Nlc3MgYWxpdmUgb24gaXRzXG4gKiBvd24sIGFuZCBpdCBzdG9wcyBhcyBzb29uIGFzIHRoZSBsb2NrIGZpbGUgbmFtZXMgc29tZWJvZHkgZWxzZSBcdTIwMTQgYSBydW4gd2hvc2VcbiAqIGxvY2sgd2FzIHN0b2xlbiBtdXN0IG5vdCBvdmVyd3JpdGUgaXRzIHN1Y2Nlc3NvcidzIGxvY2ssIG5vciBkZWxldGUgaXQgb25cbiAqIHJlbGVhc2UuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBoYW5kbGUgcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIFRoZSBsb2NrIGhhbmRsZS5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlTG9ja0hhbmRsZShwYXJhbXM6IENyZWF0ZUxvY2tIYW5kbGVQYXJhbXMpOiBTZXR1cExvY2sge1xuICBjb25zdCB7XG4gICAgbGFiZWwsXG4gICAgbG9ja0ZpbGVQYXRoLFxuICAgIG93bkluZm8sXG4gICAgc2NvcGVcbiAgfSA9IHBhcmFtcztcbiAgbGV0IGlzUmVsZWFzZWQgPSBmYWxzZTtcblxuICBjb25zdCBoZWFydGJlYXRUaW1lciA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICBjb25zdCBpc1N0aWxsT3VycyA9IGRpZFJlZnJlc2hIZWFydGJlYXQoe1xuICAgICAgbGFiZWwsXG4gICAgICBsb2NrRmlsZVBhdGgsXG4gICAgICBvd25JbmZvXG4gICAgfSk7XG4gICAgaWYgKGlzU3RpbGxPdXJzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNsZWFySW50ZXJ2YWwoaGVhcnRiZWF0VGltZXIpO1xuICAgIGxvZyhgW2ludGVncmF0aW9uLXNldHVwOiR7bGFiZWx9XSBUaGUgJyR7c2NvcGV9JyBzZXR1cCBsb2NrIGlzIG5vIGxvbmdlciBvdXJzIFx1MjAxNCBhbm90aGVyIHJ1biB0b29rIGl0IG92ZXIuIEhlYXJ0YmVhdCBzdG9wcGVkLmApO1xuICB9LCBIRUFSVEJFQVRfSU5URVJWQUxfSU5fTUlMTElTRUNPTkRTKTtcbiAgaGVhcnRiZWF0VGltZXIudW5yZWYoKTtcblxuICByZXR1cm4ge1xuICAgIHJlbGVhc2UoKTogdm9pZCB7XG4gICAgICBpZiAoaXNSZWxlYXNlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpc1JlbGVhc2VkID0gdHJ1ZTtcbiAgICAgIGNsZWFySW50ZXJ2YWwoaGVhcnRiZWF0VGltZXIpO1xuXG4gICAgICBjb25zdCBpbmZvID0gcmVhZExvY2tGaWxlSW5mbyhsb2NrRmlsZVBhdGgpO1xuICAgICAgaWYgKGluZm8gJiYgIWNoZWNrSXNPd25Mb2NrKGluZm8pKSB7XG4gICAgICAgIGxvZyhgW2ludGVncmF0aW9uLXNldHVwOiR7bGFiZWx9XSBMZWF2aW5nIHRoZSAnJHtzY29wZX0nIHNldHVwIGxvY2sgaW4gcGxhY2UgXHUyMDE0IGl0IG5vdyBiZWxvbmdzIHRvICR7ZGVzY3JpYmVJbmZvKGluZm8pfS5gKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcm1TeW5jKGxvY2tGaWxlUGF0aCwgeyBmb3JjZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBlcnJvciB0aHJvd24gd2hlbiB0aGUgbG9jayBjb3VsZCBub3QgYmUgYWNxdWlyZWQgaW4gdGltZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGVycm9yIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBUaGUgZXJyb3IgdG8gdGhyb3cuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVRpbWVvdXRFcnJvcihwYXJhbXM6IENyZWF0ZVRpbWVvdXRFcnJvclBhcmFtcyk6IEVycm9yIHtcbiAgY29uc3Qge1xuICAgIGluZm8sXG4gICAgc2NvcGUsXG4gICAgdGltZW91dEluTWlsbGlzZWNvbmRzXG4gIH0gPSBwYXJhbXM7XG4gIHJldHVybiBuZXcgRXJyb3IoXG4gICAgYFRpbWVkIG91dCBhZnRlciAke1N0cmluZyh0aW1lb3V0SW5NaWxsaXNlY29uZHMpfW1zIHdhaXRpbmcgZm9yIHRoZSAnJHtzY29wZX0nIGludGVncmF0aW9uLXRlc3Qgc2V0dXAgbG9jayBgXG4gICAgICArIGBoZWxkIGJ5ICR7ZGVzY3JpYmVIb2xkZXIoaW5mbyl9LiBBbm90aGVyIGludGVncmF0aW9uLXRlc3QgcnVuIGlzIHN0aWxsIGluIHByb2dyZXNzLmBcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyBhZnRlciB0aGUgZ2l2ZW4gZGVsYXkuIFVzZWQgdG8gcG9sbCBiZXR3ZWVuIGxvY2stYWNxdWlzaXRpb24gYXR0ZW1wdHMuXG4gKlxuICogQHBhcmFtIG1pbGxpc2Vjb25kcyAtIFRoZSBkZWxheSBpbiBtaWxsaXNlY29uZHMuXG4gKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyBhZnRlciB0aGUgZGVsYXkuXG4gKi9cbmZ1bmN0aW9uIGRlbGF5KG1pbGxpc2Vjb25kczogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgIHNldFRpbWVvdXQocmVzb2x2ZSwgbWlsbGlzZWNvbmRzKTtcbiAgfSk7XG59XG5cbi8qKlxuICogQnVpbGRzIGEgaHVtYW4tcmVhZGFibGUgZGVzY3JpcHRpb24gb2YgdGhlIGN1cnJlbnQgbG9jayBob2xkZXIgZm9yIGxvZy9lcnJvclxuICogbWVzc2FnZXMuXG4gKlxuICogQHBhcmFtIGluZm8gLSBUaGUgcGFyc2VkIGxvY2sgaW5mbywgb3IgYG51bGxgIGlmIGl0IGNvdWxkIG5vdCBiZSByZWFkLlxuICogQHJldHVybnMgQSBkZXNjcmlwdGlvbiBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIGRlc2NyaWJlSG9sZGVyKGluZm86IExvY2tGaWxlSW5mbyB8IG51bGwpOiBzdHJpbmcge1xuICByZXR1cm4gaW5mbyA/IGRlc2NyaWJlSW5mbyhpbmZvKSA6ICdhbm90aGVyIHJ1bic7XG59XG5cbi8qKlxuICogRm9ybWF0cyBhIHtAbGluayBMb2NrRmlsZUluZm99IGFzIGEgc2hvcnQgaWRlbnRpZmllciBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGluZm8gLSBUaGUgbG9jayBpbmZvLlxuICogQHJldHVybnMgQSBzdHJpbmcgbGlrZSBgcGlkIDEyMzQgKG9ic2lkaWFuLWNsaSkgb24gaG9zdGAuXG4gKi9cbmZ1bmN0aW9uIGRlc2NyaWJlSW5mbyhpbmZvOiBMb2NrRmlsZUluZm8pOiBzdHJpbmcge1xuICByZXR1cm4gYHBpZCAke1N0cmluZyhpbmZvLnBpZCl9ICgke2luZm8ubGFiZWx9KSBvbiAke2luZm8uaG9zdG5hbWV9YDtcbn1cblxuLyoqXG4gKiBSZXdyaXRlcyB0aGUgbG9jayBmaWxlIHdpdGggYSBmcmVzaCBoZWFydGJlYXQgdGltZXN0YW1wLCBzbyB3YWl0aW5nIHJ1bnMgY2FuXG4gKiB0ZWxsIHRoaXMgaG9sZGVyIGFwYXJ0IGZyb20gYSBjcmFzaGVkIG9uZSB3aG9zZSBQSUQgaGFzIGJlZW4gcmVjeWNsZWQuXG4gKlxuICogQSBsb2NrIGZpbGUgdGhhdCBpcyBtaXNzaW5nIG9yIHVucmVhZGFibGUgaXMgc3RpbGwgdHJlYXRlZCBhcyBvdXJzIGFuZCByZXdyaXR0ZW46XG4gKiB0aGlzIHJ1biBuZXZlciByZWxlYXNlZCwgc28gaXRzIGNsYWltIHN0YW5kcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHJlZnJlc2ggcGFyYW1ldGVycy5cbiAqIEByZXR1cm5zIGB0cnVlYCB3aGlsZSB0aGUgbG9jayBpcyBzdGlsbCBvdXJzLCBgZmFsc2VgIG9uY2UgYW5vdGhlciBydW4gb3ducyBpdC5cbiAqL1xuZnVuY3Rpb24gZGlkUmVmcmVzaEhlYXJ0YmVhdChwYXJhbXM6IFJlZnJlc2hIZWFydGJlYXRQYXJhbXMpOiBib29sZWFuIHtcbiAgY29uc3Qge1xuICAgIGxhYmVsLFxuICAgIGxvY2tGaWxlUGF0aCxcbiAgICBvd25JbmZvXG4gIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgaW5mbyA9IHJlYWRMb2NrRmlsZUluZm8obG9ja0ZpbGVQYXRoKTtcbiAgaWYgKGluZm8gJiYgIWNoZWNrSXNPd25Mb2NrKGluZm8pKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgcmVmcmVzaGVkSW5mbzogTG9ja0ZpbGVJbmZvID0ge1xuICAgIC4uLm93bkluZm8sXG4gICAgaGVhcnRiZWF0QXRJbk1pbGxpc2Vjb25kczogRGF0ZS5ub3coKVxuICB9O1xuICB0cnkge1xuICAgIHdyaXRlRmlsZVN5bmMobG9ja0ZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShyZWZyZXNoZWRJbmZvKSk7XG4gIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgLy8gTm90IGZhdGFsOiB0aGUgbG9jayBpcyBzdGlsbCBoZWxkIGFuZCB3aWxsIHN0aWxsIGJlIHJlbGVhc2VkLiBPbmx5IGl0c1xuICAgIC8vIGhlYXJ0YmVhdCBnb2VzIHN0YWxlLCB3aGljaCBhdCB3b3JzdCBsZXRzIGEgd2FpdGluZyBydW4gc3RlYWwgaXQuXG4gICAgbG9nKGBbaW50ZWdyYXRpb24tc2V0dXA6JHtsYWJlbH1dIEZhaWxlZCB0byByZWZyZXNoIHRoZSBzZXR1cCBsb2NrIGhlYXJ0YmVhdDogJHtlcnJvclRvU3RyaW5nKGVycm9yKX1gKTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBGb3JtYXRzIGEgZHVyYXRpb24gYXMgYSBjb21wYWN0IGAxbSAzMHNgIC8gYDQ1c2Agc3RyaW5nIGZvciBwcm9ncmVzcyBsb2dzLlxuICpcbiAqIEBwYXJhbSBtaWxsaXNlY29uZHMgLSBUaGUgZHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzLlxuICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCBkdXJhdGlvbi5cbiAqL1xuZnVuY3Rpb24gZm9ybWF0RHVyYXRpb24obWlsbGlzZWNvbmRzOiBudW1iZXIpOiBzdHJpbmcge1xuICBjb25zdCB0b3RhbFNlY29uZHMgPSBNYXRoLnJvdW5kKG1pbGxpc2Vjb25kcyAvIE1JTExJU0VDT05EU19QRVJfU0VDT05EKTtcbiAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IodG90YWxTZWNvbmRzIC8gU0VDT05EU19QRVJfTUlOVVRFKTtcbiAgY29uc3Qgc2Vjb25kcyA9IHRvdGFsU2Vjb25kcyAlIFNFQ09ORFNfUEVSX01JTlVURTtcbiAgcmV0dXJuIG1pbnV0ZXMgPiAwID8gYCR7U3RyaW5nKG1pbnV0ZXMpfW0gJHtTdHJpbmcoc2Vjb25kcyl9c2AgOiBgJHtTdHJpbmcoc2Vjb25kcyl9c2A7XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBwZXJpb2RpYyBcInN0aWxsIHdhaXRpbmdcIiBwcm9ncmVzcyBsaW5lLCBzbyBhIGxlZ2l0aW1hdGUgbXVsdGktbWludXRlXG4gKiB3YWl0IGlzIGRpc3Rpbmd1aXNoYWJsZSBmcm9tIGEgaGFuZyBpbiB0aGUgdGVybWluYWwuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBtZXNzYWdlIHBhcmFtZXRlcnMuXG4gKiBAcmV0dXJucyBUaGUgbWVzc2FnZSB0byBsb2cuXG4gKi9cbmZ1bmN0aW9uIGZvcm1hdFdhaXRNZXNzYWdlKHBhcmFtczogRm9ybWF0V2FpdE1lc3NhZ2VQYXJhbXMpOiBzdHJpbmcge1xuICBjb25zdCB7XG4gICAgaW5mbyxcbiAgICBsYWJlbCxcbiAgICByZW1haW5pbmdJbk1pbGxpc2Vjb25kcyxcbiAgICBzY29wZSxcbiAgICB3YWl0ZWRJbk1pbGxpc2Vjb25kc1xuICB9ID0gcGFyYW1zO1xuICBjb25zdCBoZWxkRm9yID0gaW5mbyA/IGAsIGhlbGQgZm9yICR7Zm9ybWF0RHVyYXRpb24oRGF0ZS5ub3coKSAtIGluZm8uYWNxdWlyZWRBdEluTWlsbGlzZWNvbmRzKX1gIDogJyc7XG4gIHJldHVybiBgW2ludGVncmF0aW9uLXNldHVwOiR7bGFiZWx9XSBXYWl0aW5nIGZvciB0aGUgJyR7c2NvcGV9JyBzZXR1cCBsb2NrIGhlbGQgYnkgJHtkZXNjcmliZUhvbGRlcihpbmZvKX0gdG8gYmUgcmVsZWFzZWQgYFxuICAgICsgYCh3YWl0ZWQgJHtmb3JtYXREdXJhdGlvbih3YWl0ZWRJbk1pbGxpc2Vjb25kcyl9JHtoZWxkRm9yfSwgZ2l2aW5nIHVwIGluICR7Zm9ybWF0RHVyYXRpb24ocmVtYWluaW5nSW5NaWxsaXNlY29uZHMpfSkuLi5gO1xufVxuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBgY29kZWAgZnJvbSBhIE5vZGUuanMgc3lzdGVtIGVycm9yLCBpZiBwcmVzZW50LlxuICpcbiAqIEBwYXJhbSBlcnJvciAtIFRoZSB0aHJvd24gdmFsdWUuXG4gKiBAcmV0dXJucyBUaGUgZXJyb3IgY29kZSBzdHJpbmcsIG9yIGB1bmRlZmluZWRgIGlmIG5vdCBhIGNvZGVkIGVycm9yLlxuICovXG5mdW5jdGlvbiBnZXRFcnJvckNvZGUoZXJyb3I6IHVua25vd24pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvciAmJiAnY29kZScgaW4gZXJyb3IgJiYgdHlwZW9mIGVycm9yLmNvZGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGVycm9yLmNvZGU7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHdoZW4gdGhlIGhvbGRlciB3YXMgbGFzdCBrbm93biB0byBiZSBhbGl2ZSBcdTIwMTQgaXRzIG1vc3QgcmVjZW50IGhlYXJ0YmVhdCxcbiAqIGZhbGxpbmcgYmFjayB0byBpdHMgYWNxdWlzaXRpb24gdGltZSBmb3IgYSBsb2NrIGZpbGUgd3JpdHRlbiBieSBhbiBvbGRlclxuICogdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UgdGhhdCBzdGFtcGVkIG5vIGhlYXJ0YmVhdCBhdCBhbGwuXG4gKlxuICogQHBhcmFtIGluZm8gLSBUaGUgcGFyc2VkIGxvY2sgaW5mby5cbiAqIEByZXR1cm5zIFRoZSBlcG9jaCBtaWxsaXNlY29uZHMgb2YgdGhlIGhvbGRlcidzIGxhc3Qgc2lnbiBvZiBsaWZlLlxuICovXG5mdW5jdGlvbiBnZXRMYXN0U2VlbkF0SW5NaWxsaXNlY29uZHMoaW5mbzogTG9ja0ZpbGVJbmZvKTogbnVtYmVyIHtcbiAgcmV0dXJuIGluZm8uaGVhcnRiZWF0QXRJbk1pbGxpc2Vjb25kcyA/PyBpbmZvLmFjcXVpcmVkQXRJbk1pbGxpc2Vjb25kcztcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBzaGFyZWQgbG9jayBkaXJlY3RvcnkgaW5zaWRlIHRoZSBPUyB0ZW1wIGRpcmVjdG9yeS5cbiAqXG4gKiBAcmV0dXJucyBUaGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgbG9jayBkaXJlY3RvcnkuXG4gKi9cbmZ1bmN0aW9uIGdldExvY2tEaXJlY3RvcnkoKTogc3RyaW5nIHtcbiAgcmV0dXJuIGpvaW4odG1wZGlyKCksIExPQ0tfRElSX05BTUUpO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGxvY2sgZmlsZSBwYXRoIGZvciB0aGUgZ2l2ZW4gc2NvcGUuXG4gKlxuICogQHBhcmFtIHNjb3BlIC0gVGhlIGxvY2sgc2NvcGUuXG4gKiBAcmV0dXJucyBUaGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgc2NvcGUncyBsb2NrIGZpbGUuXG4gKi9cbmZ1bmN0aW9uIGdldExvY2tGaWxlUGF0aChzY29wZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGpvaW4oZ2V0TG9ja0RpcmVjdG9yeSgpLCBgJHtzY29wZX0ke0xPQ0tfRklMRV9TVUZGSVh9YCk7XG59XG5cbi8qKlxuICogUmVhZHMgYW5kIHBhcnNlcyB0aGUgbG9jayBmaWxlLCBpZiBpdCBleGlzdHMgYW5kIGlzIHZhbGlkIEpTT04uXG4gKlxuICogQHBhcmFtIGxvY2tGaWxlUGF0aCAtIFRoZSBwYXRoIHRvIHRoZSBsb2NrIGZpbGUuXG4gKiBAcmV0dXJucyBUaGUgcGFyc2VkIGxvY2sgaW5mbywgb3IgYG51bGxgIGlmIGl0IGNvdWxkIG5vdCBiZSByZWFkLlxuICovXG5mdW5jdGlvbiByZWFkTG9ja0ZpbGVJbmZvKGxvY2tGaWxlUGF0aDogc3RyaW5nKTogTG9ja0ZpbGVJbmZvIHwgbnVsbCB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKGxvY2tGaWxlUGF0aCwgJ3V0Zi04JykpIGFzIExvY2tGaWxlSW5mbztcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuLyoqXG4gKiBSZW1vdmVzIGFuIGFiYW5kb25lZCBob2xkZXIncyBsb2NrIGZpbGUsIHNheWluZyB3aG9zZSBpdCB3YXMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBhYmFuZG9uZWQgaG9sZGVyLCBhbmQgd2hvIGlzIHRha2luZyBvdmVyLlxuICovXG5mdW5jdGlvbiBzdGVhbFN0YWxlTG9jayhwYXJhbXM6IFN0ZWFsU3RhbGVMb2NrUGFyYW1zKTogdm9pZCB7XG4gIGxvZyhgW2ludGVncmF0aW9uLXNldHVwOiR7cGFyYW1zLmxhYmVsfV0gU3RlYWxpbmcgc3RhbGUgJyR7cGFyYW1zLnNjb3BlfScgc2V0dXAgbG9jayBmcm9tICR7ZGVzY3JpYmVJbmZvKHBhcmFtcy5pbmZvKX0uYCk7XG4gIHJtU3luYyhwYXJhbXMubG9ja0ZpbGVQYXRoLCB7IGZvcmNlOiB0cnVlIH0pO1xufVxuXG4vKipcbiAqIEF0dGVtcHRzIHRvIGF0b21pY2FsbHkgY3JlYXRlIHRoZSBsb2NrIGZpbGUgKGZhaWxpbmcgaWYgaXQgYWxyZWFkeSBleGlzdHMpLlxuICpcbiAqIEBwYXJhbSBsb2NrRmlsZVBhdGggLSBUaGUgcGF0aCB0byB0aGUgbG9jayBmaWxlLlxuICogQHBhcmFtIGxhYmVsIC0gVGhlIHRyYW5zcG9ydCBsYWJlbCB0byByZWNvcmQgaW4gdGhlIGxvY2sgZmlsZS5cbiAqIEByZXR1cm5zIFRoZSBsb2NrIGluZm8gd3JpdHRlbiBvbiBzdWNjZXNzLCBvciBgbnVsbGAgaWYgdGhlIGxvY2sgaXMgYWxyZWFkeSBoZWxkLlxuICogQHRocm93cyBJZiB0aGUgZmlsZSBzeXN0ZW0gZmFpbHMgZm9yIGFueSByZWFzb24gb3RoZXIgdGhhbiB0aGUgZmlsZSBleGlzdGluZy5cbiAqL1xuZnVuY3Rpb24gdHJ5Q3JlYXRlTG9ja0ZpbGUobG9ja0ZpbGVQYXRoOiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcpOiBMb2NrRmlsZUluZm8gfCBudWxsIHtcbiAgY29uc3Qgbm93SW5NaWxsaXNlY29uZHMgPSBEYXRlLm5vdygpO1xuICBjb25zdCBpbmZvOiBMb2NrRmlsZUluZm8gPSB7XG4gICAgYWNxdWlyZWRBdEluTWlsbGlzZWNvbmRzOiBub3dJbk1pbGxpc2Vjb25kcyxcbiAgICBoZWFydGJlYXRBdEluTWlsbGlzZWNvbmRzOiBub3dJbk1pbGxpc2Vjb25kcyxcbiAgICBob3N0bmFtZTogaG9zdG5hbWUoKSxcbiAgICBsYWJlbCxcbiAgICBwaWQ6IHByb2Nlc3MucGlkXG4gIH07XG5cbiAgdHJ5IHtcbiAgICB3cml0ZUZpbGVTeW5jKGxvY2tGaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoaW5mbyksIHsgZmxhZzogJ3d4JyB9KTtcbiAgICByZXR1cm4gaW5mbztcbiAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICBpZiAoZ2V0RXJyb3JDb2RlKGVycm9yKSA9PT0gJ0VFWElTVCcpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEwQkEscUJBS087QUFDUCxxQkFHTztBQUNQLHVCQUFxQjtBQUNyQiwwQkFBb0I7QUFFcEIsNkJBQThCO0FBQzlCLGlCQUFvQjtBQU9iLE1BQU0sMkJBQTJCO0FBRXhDLE1BQU0sZ0JBQWdCO0FBQ3RCLE1BQU0sbUJBQW1CO0FBQ3pCLE1BQU0sZ0NBQWdDO0FBQ3RDLE1BQU0sMEJBQTBCO0FBQ2hDLE1BQU0scUJBQXFCO0FBQzNCLE1BQU0sZ0NBQWdDO0FBQ3RDLE1BQU0scUNBQXFDLGdDQUFnQztBQUszRSxNQUFNLGlDQUFpQztBQUN2QyxNQUFNLGtDQUFrQyxxQ0FBcUM7QUFDN0UsTUFBTSwrQkFBK0I7QUFDckMsTUFBTSxvQ0FBb0MsK0JBQStCO0FBQ3pFLE1BQU0sNEJBQTRCO0FBQ2xDLE1BQU0sNkJBQTZCO0FBQ25DLE1BQU0saUNBQWlDLDRCQUE0QixxQkFBcUI7QUFDeEYsTUFBTSxrQ0FBa0MsNkJBQTZCLHFCQUFxQjtBQUMxRixNQUFNLGlDQUFpQztBQW9PdkMsZUFBc0IsaUJBQWlCLFFBQW9EO0FBQ3pGLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLFFBQU0sd0JBQXdCLE9BQU8seUJBQXlCO0FBQzlELFFBQU0sZUFBZSxnQkFBZ0IsS0FBSztBQUMxQyxnQ0FBVSxpQkFBaUIsR0FBRyxFQUFFLFdBQVcsS0FBSyxDQUFDO0FBRWpELFFBQU0sMEJBQTBCLEtBQUssSUFBSTtBQUN6QyxRQUFNLHlCQUF5QiwwQkFBMEI7QUFDekQsTUFBSSxpQ0FBZ0Q7QUFFcEQsYUFBUztBQUNQLFVBQU0sVUFBVSxrQkFBa0IsY0FBYyxLQUFLO0FBQ3JELFFBQUksU0FBUztBQUNYLGFBQU8saUJBQWlCO0FBQUEsUUFDdEI7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBRUEsVUFBTSxPQUFPLGlCQUFpQixZQUFZO0FBQzFDLFFBQUksUUFBUSxpQkFBaUIsTUFBTSwrQkFBK0IsR0FBRztBQUNuRSxxQkFBZSxFQUFFLE1BQU0sT0FBTyxjQUFjLE1BQU0sQ0FBQztBQUduRCxVQUFJLEtBQUssSUFBSSxLQUFLLHdCQUF3QjtBQUN4QyxjQUFNLG1CQUFtQjtBQUFBLFVBQ3ZCO0FBQUEsVUFDQTtBQUFBLFVBQ0E7QUFBQSxRQUNGLENBQUM7QUFBQSxNQUNIO0FBQ0E7QUFBQSxJQUNGO0FBRUEsVUFBTSxvQkFBb0IsS0FBSyxJQUFJO0FBQ25DLFFBQUkscUJBQXFCLHdCQUF3QjtBQUMvQyxZQUFNLG1CQUFtQjtBQUFBLFFBQ3ZCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBRUEsVUFBTSxnQkFBZ0IsbUNBQW1DLFFBQ3BELG9CQUFvQixrQ0FBa0M7QUFDM0QsUUFBSSxlQUFlO0FBQ2pCLHVDQUFpQztBQUNqQywwQkFBSSxrQkFBa0I7QUFBQSxRQUNwQjtBQUFBLFFBQ0E7QUFBQSxRQUNBLHlCQUF5Qix5QkFBeUI7QUFBQSxRQUNsRDtBQUFBLFFBQ0Esc0JBQXNCLG9CQUFvQjtBQUFBLE1BQzVDLENBQUMsQ0FBQztBQUFBLElBQ0o7QUFFQSxVQUFNLE1BQU0sNkJBQTZCO0FBQUEsRUFDM0M7QUFDRjtBQVlPLFNBQVMscUJBQXFCLE9BQXdCO0FBQzNELE1BQUk7QUFDSixNQUFJO0FBQ0YsZUFBTyw2QkFBYSxnQkFBZ0IsS0FBSyxHQUFHLE9BQU87QUFBQSxFQUNyRCxTQUFTLE9BQWdCO0FBQ3ZCLFdBQU8sYUFBYSxLQUFLLE1BQU07QUFBQSxFQUNqQztBQUVBLE1BQUk7QUFDSixNQUFJO0FBQ0YsV0FBTyxLQUFLLE1BQU0sSUFBSTtBQUFBLEVBQ3hCLFFBQVE7QUFDTixXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU8sQ0FBQyxpQkFBaUIsTUFBTSwrQkFBK0I7QUFDaEU7QUFZTyxTQUFTLG9CQUFvQixRQUEwRDtBQUM1RixRQUFNLEVBQUUsT0FBTyxNQUFNLElBQUk7QUFDekIsUUFBTSxlQUFlLGdCQUFnQixLQUFLO0FBQzFDLGdDQUFVLGlCQUFpQixHQUFHLEVBQUUsV0FBVyxLQUFLLENBQUM7QUFFakQsTUFBSSxVQUFVLGtCQUFrQixjQUFjLEtBQUs7QUFDbkQsTUFBSSxDQUFDLFNBQVM7QUFDWixVQUFNLE9BQU8saUJBQWlCLFlBQVk7QUFDMUMsUUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsTUFBTSxPQUFPLG1DQUFtQywrQkFBK0IsR0FBRztBQUMvRyxhQUFPO0FBQUEsSUFDVDtBQUVBLG1CQUFlLEVBQUUsTUFBTSxPQUFPLGNBQWMsTUFBTSxDQUFDO0FBQ25ELGNBQVUsa0JBQWtCLGNBQWMsS0FBSztBQUMvQyxRQUFJLENBQUMsU0FBUztBQUVaLGFBQU87QUFBQSxJQUNUO0FBQUEsRUFDRjtBQUVBLFNBQU8saUJBQWlCO0FBQUEsSUFDdEI7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLENBQUM7QUFDSDtBQXFCQSxTQUFTLGlCQUFpQixNQUFvQiw4QkFBK0M7QUFDM0YsUUFBTSwwQkFBMEIsS0FBSyxJQUFJLElBQUksNEJBQTRCLElBQUk7QUFFN0UsTUFBSSxLQUFLLGlCQUFhLHlCQUFTLEdBQUc7QUFDaEMsV0FBTyxDQUFDLG9CQUFvQixLQUFLLEdBQUcsS0FBSywwQkFBMEI7QUFBQSxFQUNyRTtBQUVBLFNBQU8sMEJBQTBCO0FBQ25DO0FBUUEsU0FBUyxlQUFlLE1BQTZCO0FBQ25ELFNBQU8sS0FBSyxRQUFRLG9CQUFBQSxRQUFRLE9BQU8sS0FBSyxpQkFBYSx5QkFBUztBQUNoRTtBQVFBLFNBQVMsb0JBQW9CLEtBQXNCO0FBQ2pELE1BQUk7QUFDRix3QkFBQUEsUUFBUSxLQUFLLEtBQUssOEJBQThCO0FBQ2hELFdBQU87QUFBQSxFQUNULFNBQVMsT0FBZ0I7QUFFdkIsV0FBTyxhQUFhLEtBQUssTUFBTTtBQUFBLEVBQ2pDO0FBQ0Y7QUFjQSxTQUFTLGlCQUFpQixRQUEyQztBQUNuRSxRQUFNO0FBQUEsSUFDSjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEVBQ0YsSUFBSTtBQUNKLE1BQUksYUFBYTtBQUVqQixRQUFNLGlCQUFpQixZQUFZLE1BQU07QUFDdkMsVUFBTSxjQUFjLG9CQUFvQjtBQUFBLE1BQ3RDO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGLENBQUM7QUFDRCxRQUFJLGFBQWE7QUFDZjtBQUFBLElBQ0Y7QUFDQSxrQkFBYyxjQUFjO0FBQzVCLHdCQUFJLHNCQUFzQixLQUFLLFVBQVUsS0FBSyxvRkFBK0U7QUFBQSxFQUMvSCxHQUFHLGtDQUFrQztBQUNyQyxpQkFBZSxNQUFNO0FBRXJCLFNBQU87QUFBQSxJQUNMLFVBQWdCO0FBQ2QsVUFBSSxZQUFZO0FBQ2Q7QUFBQSxNQUNGO0FBQ0EsbUJBQWE7QUFDYixvQkFBYyxjQUFjO0FBRTVCLFlBQU0sT0FBTyxpQkFBaUIsWUFBWTtBQUMxQyxVQUFJLFFBQVEsQ0FBQyxlQUFlLElBQUksR0FBRztBQUNqQyw0QkFBSSxzQkFBc0IsS0FBSyxrQkFBa0IsS0FBSyxrREFBNkMsYUFBYSxJQUFJLENBQUMsR0FBRztBQUN4SDtBQUFBLE1BQ0Y7QUFDQSxpQ0FBTyxjQUFjLEVBQUUsT0FBTyxLQUFLLENBQUM7QUFBQSxJQUN0QztBQUFBLEVBQ0Y7QUFDRjtBQVFBLFNBQVMsbUJBQW1CLFFBQXlDO0FBQ25FLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFDSixTQUFPLElBQUk7QUFBQSxJQUNULG1CQUFtQixPQUFPLHFCQUFxQixDQUFDLHVCQUF1QixLQUFLLHlDQUM3RCxlQUFlLElBQUksQ0FBQztBQUFBLEVBQ3JDO0FBQ0Y7QUFRQSxTQUFTLE1BQU0sY0FBcUM7QUFDbEQsU0FBTyxJQUFJLFFBQWMsQ0FBQyxZQUFZO0FBQ3BDLGVBQVcsU0FBUyxZQUFZO0FBQUEsRUFDbEMsQ0FBQztBQUNIO0FBU0EsU0FBUyxlQUFlLE1BQW1DO0FBQ3pELFNBQU8sT0FBTyxhQUFhLElBQUksSUFBSTtBQUNyQztBQVFBLFNBQVMsYUFBYSxNQUE0QjtBQUNoRCxTQUFPLE9BQU8sT0FBTyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEtBQUssS0FBSyxRQUFRLEtBQUssUUFBUTtBQUNwRTtBQVlBLFNBQVMsb0JBQW9CLFFBQXlDO0FBQ3BFLFFBQU07QUFBQSxJQUNKO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFFSixRQUFNLE9BQU8saUJBQWlCLFlBQVk7QUFDMUMsTUFBSSxRQUFRLENBQUMsZUFBZSxJQUFJLEdBQUc7QUFDakMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLGdCQUE4QjtBQUFBLElBQ2xDLEdBQUc7QUFBQSxJQUNILDJCQUEyQixLQUFLLElBQUk7QUFBQSxFQUN0QztBQUNBLE1BQUk7QUFDRixzQ0FBYyxjQUFjLEtBQUssVUFBVSxhQUFhLENBQUM7QUFBQSxFQUMzRCxTQUFTLE9BQWdCO0FBR3ZCLHdCQUFJLHNCQUFzQixLQUFLLHFEQUFpRCxzQ0FBYyxLQUFLLENBQUMsRUFBRTtBQUFBLEVBQ3hHO0FBQ0EsU0FBTztBQUNUO0FBUUEsU0FBUyxlQUFlLGNBQThCO0FBQ3BELFFBQU0sZUFBZSxLQUFLLE1BQU0sZUFBZSx1QkFBdUI7QUFDdEUsUUFBTSxVQUFVLEtBQUssTUFBTSxlQUFlLGtCQUFrQjtBQUM1RCxRQUFNLFVBQVUsZUFBZTtBQUMvQixTQUFPLFVBQVUsSUFBSSxHQUFHLE9BQU8sT0FBTyxDQUFDLEtBQUssT0FBTyxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sT0FBTyxDQUFDO0FBQ3JGO0FBU0EsU0FBUyxrQkFBa0IsUUFBeUM7QUFDbEUsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsRUFDRixJQUFJO0FBQ0osUUFBTSxVQUFVLE9BQU8sY0FBYyxlQUFlLEtBQUssSUFBSSxJQUFJLEtBQUssd0JBQXdCLENBQUMsS0FBSztBQUNwRyxTQUFPLHNCQUFzQixLQUFLLHNCQUFzQixLQUFLLHdCQUF3QixlQUFlLElBQUksQ0FBQywyQkFDMUYsZUFBZSxvQkFBb0IsQ0FBQyxHQUFHLE9BQU8sa0JBQWtCLGVBQWUsdUJBQXVCLENBQUM7QUFDeEg7QUFRQSxTQUFTLGFBQWEsT0FBb0M7QUFDeEQsTUFBSSxpQkFBaUIsU0FBUyxVQUFVLFNBQVMsT0FBTyxNQUFNLFNBQVMsVUFBVTtBQUMvRSxXQUFPLE1BQU07QUFBQSxFQUNmO0FBQ0EsU0FBTztBQUNUO0FBVUEsU0FBUyw0QkFBNEIsTUFBNEI7QUFDL0QsU0FBTyxLQUFLLDZCQUE2QixLQUFLO0FBQ2hEO0FBT0EsU0FBUyxtQkFBMkI7QUFDbEMsYUFBTywyQkFBSyx1QkFBTyxHQUFHLGFBQWE7QUFDckM7QUFRQSxTQUFTLGdCQUFnQixPQUF1QjtBQUM5QyxhQUFPLHVCQUFLLGlCQUFpQixHQUFHLEdBQUcsS0FBSyxHQUFHLGdCQUFnQixFQUFFO0FBQy9EO0FBUUEsU0FBUyxpQkFBaUIsY0FBMkM7QUFDbkUsTUFBSTtBQUNGLFdBQU8sS0FBSyxVQUFNLDZCQUFhLGNBQWMsT0FBTyxDQUFDO0FBQUEsRUFDdkQsUUFBUTtBQUNOLFdBQU87QUFBQSxFQUNUO0FBQ0Y7QUFPQSxTQUFTLGVBQWUsUUFBb0M7QUFDMUQsc0JBQUksc0JBQXNCLE9BQU8sS0FBSyxxQkFBcUIsT0FBTyxLQUFLLHFCQUFxQixhQUFhLE9BQU8sSUFBSSxDQUFDLEdBQUc7QUFDeEgsNkJBQU8sT0FBTyxjQUFjLEVBQUUsT0FBTyxLQUFLLENBQUM7QUFDN0M7QUFVQSxTQUFTLGtCQUFrQixjQUFzQixPQUFvQztBQUNuRixRQUFNLG9CQUFvQixLQUFLLElBQUk7QUFDbkMsUUFBTSxPQUFxQjtBQUFBLElBQ3pCLDBCQUEwQjtBQUFBLElBQzFCLDJCQUEyQjtBQUFBLElBQzNCLGNBQVUseUJBQVM7QUFBQSxJQUNuQjtBQUFBLElBQ0EsS0FBSyxvQkFBQUEsUUFBUTtBQUFBLEVBQ2Y7QUFFQSxNQUFJO0FBQ0Ysc0NBQWMsY0FBYyxLQUFLLFVBQVUsSUFBSSxHQUFHLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDaEUsV0FBTztBQUFBLEVBQ1QsU0FBUyxPQUFnQjtBQUN2QixRQUFJLGFBQWEsS0FBSyxNQUFNLFVBQVU7QUFDcEMsYUFBTztBQUFBLElBQ1Q7QUFDQSxVQUFNO0FBQUEsRUFDUjtBQUNGOyIsCiAgIm5hbWVzIjogWyJwcm9jZXNzIl0KfQo=
|
|
@@ -47,4 +47,4 @@ async function importSharp(caller) {
|
|
|
47
47
|
0 && (module.exports = {
|
|
48
48
|
importSharp
|
|
49
49
|
});
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3NoYXJwLWxvYWRlci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIExhemlseSBsb2FkcyBgc2hhcnBgLCB0aGUgT1BUSU9OQUwgcGVlciBkZXBlbmRlbmN5IHRoZSBpbWFnZSBoZWxwZXJzIG5lZWQsIGFuZFxuICogZGVzY3JpYmVzIHRoZSBzbGljZSBvZiBpdHMgc3VyZmFjZSB0aGV5IHVzZS5cbiAqXG4gKiBUaGUgbG9hZCBpcyBkZWZlcnJlZCBiZWNhdXNlIGEgc3RhdGljIGltcG9ydCB3b3VsZCBkcmFnIGBzaGFycGAnc1xuICogcGxhdGZvcm0tc3BlY2lmaWMgbmF0aXZlIGJpbmFyaWVzIGludG8gZXZlcnkgY29uc3VtZXIgb2YgdGhpcyBwYWNrYWdlJ3MgaW5kZXgsXG4gKiB3aGVuIG9ubHkgc2NyZWVuc2hvdCBwb3N0LXByb2Nlc3NpbmcgbmVlZHMgdGhlbS4gVGhlIHR5cGUgaXMgc3RydWN0dXJhbCBmb3JcbiAqIHRoZSBzYW1lIHJlYXNvbjogdGhpcyBtb2R1bGUgdHlwZS1jaGVja3Mgd2l0aG91dCBgc2hhcnBgJ3Mgb3duIHR5cGVzIGJlaW5nXG4gKiByZXNvbHZhYmxlLlxuICovXG5cbi8qKlxuICogQSBsYXllciBwYXNzZWQgdG8gYHNoYXJwYCdzIGBjb21wb3NpdGVgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJwQ29tcG9zaXRlTGF5ZXIge1xuICByZWFkb25seSBpbnB1dDogQnVmZmVyO1xuICByZWFkb25seSBsZWZ0OiBudW1iZXI7XG4gIHJlYWRvbmx5IHRvcDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSBgc2hhcnBgIGVudHJ5IHBvaW50IHRoZSBpbWFnZSBoZWxwZXJzIHVzZS5cbiAqL1xuZXhwb3J0IHR5cGUgU2hhcnBGYWN0b3J5ID0gKGlucHV0OiBVaW50OEFycmF5KSA9PiBTaGFycEluc3RhbmNlO1xuXG4vKipcbiAqIE9uZSBgc2hhcnBgIHBpcGVsaW5lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJwSW5zdGFuY2Uge1xuICBibHVyOiAodGhpczogdm9pZCwgc2lnbWE6IG51bWJlcikgPT4gU2hhcnBJbnN0YW5jZTtcbiAgY29tcG9zaXRlOiAodGhpczogdm9pZCwgbGF5ZXJzOiBTaGFycENvbXBvc2l0ZUxheWVyW10pID0+IFNoYXJwSW5zdGFuY2U7XG4gIG1ldGFkYXRhOiAodGhpczogdm9pZCkgPT4gUHJvbWlzZTxTaGFycE1ldGFkYXRhPjtcbiAgcG5nOiAodGhpczogdm9pZCkgPT4gU2hhcnBJbnN0YW5jZTtcbiAgcmVzaXplOiAodGhpczogdm9pZCwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIG9wdGlvbnM/OiBTaGFycFJlc2l6ZU9wdGlvbnMpID0+IFNoYXJwSW5zdGFuY2U7XG4gIHRvQnVmZmVyOiAodGhpczogdm9pZCkgPT4gUHJvbWlzZTxCdWZmZXI+O1xufVxuXG4vKipcbiAqIFRoZSBzdWJzZXQgb2YgYHNoYXJwYCdzIG1ldGFkYXRhIHRoZSBpbWFnZSBoZWxwZXJzIHJlYWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcnBNZXRhZGF0YSB7XG4gIHJlYWRvbmx5IGhlaWdodD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgd2lkdGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogVGhlIHN1YnNldCBvZiBgc2hhcnBgJ3MgcmVzaXplIG9wdGlvbnMgdGhlIGltYWdlIGhlbHBlcnMgc2V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJwUmVzaXplT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGZpdDogJ2NvdmVyJyB8ICdmaWxsJztcbn1cblxuLyoqXG4gKiBMb2FkcyBgc2hhcnBgIG9uIGRlbWFuZC5cbiAqXG4gKiBAcGFyYW0gY2FsbGVyIC0gTmFtZSBvZiB0aGUgY2FsbGluZyBoZWxwZXIsIHNvIHRoZSBlcnJvciBzYXlzIHdoaWNoIG9uZSBuZWVkcyBpdC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGBzaGFycGAgZmFjdG9yeS5cbiAqIEB0aHJvd3MgRXJyb3IgbmFtaW5nIHRoZSBtaXNzaW5nIG9wdGlvbmFsIHBlZXIgZGVwZW5kZW5jeS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGltcG9ydFNoYXJwKGNhbGxlcjogc3RyaW5nKTogUHJvbWlzZTxTaGFycEZhY3Rvcnk+IHtcbiAgdHJ5IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXggLS0gYHNoYXJwYCBpcyBhbiBPUFRJT05BTCBwZWVyLCBzbyBpdCBtdXN0IGJlIGxvYWRlZCBsYXppbHk6IGEgc3RhdGljIGltcG9ydCB3b3VsZCBkcmFnIGl0cyBuYXRpdmUgYmluYXJpZXMgaW50byBldmVyeSBjb25zdW1lciBvZiB0aGlzIHBhY2thZ2UncyBpbmRleC5cbiAgICBjb25zdCBzaGFycE1vZHVsZSA9IGF3YWl0IGltcG9ydCgnc2hhcnAnKTtcbiAgICBjb25zdCBmYWN0b3J5OiB1bmtub3duID0gc2hhcnBNb2R1bGUuZGVmYXVsdDtcbiAgICByZXR1cm4gZmFjdG9yeSBhcyBTaGFycEZhY3Rvcnk7XG4gIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgLyogdjggaWdub3JlIHN0YXJ0IC0tIFJlYWNoZWQgb25seSB3aGVuIHRoZSBvcHRpb25hbCBwZWVyIGlzIGFic2VudCwgd2hpY2ggaXQgbmV2ZXIgaXMgaW4gdGhpcyBwYWNrYWdlJ3Mgb3duIHRlc3QgcnVuLiAqL1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGAke2NhbGxlcn0gbmVlZHMgdGhlIG9wdGlvbmFsIHBlZXIgZGVwZW5kZW5jeSBcInNoYXJwXCIuIGBcbiAgICAgICAgKyAnSW5zdGFsbCBpdCBpbiB0aGUgY29uc3VtaW5nIHByb2plY3QgKG5wbSBpIC1EIHNoYXJwKS4nLFxuICAgICAgeyBjYXVzZTogZXJyb3IgfVxuICAgICk7XG4gICAgLyogdjggaWdub3JlIHN0b3AgKi9cbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE2REEsZUFBc0IsWUFBWSxRQUF1QztBQUN2RSxNQUFJO0FBRUYsVUFBTSxjQUFjLE1BQU0sT0FBTyxPQUFPO0FBQ3hDLFVBQU0sVUFBbUIsWUFBWTtBQUNyQyxXQUFPO0FBQUEsRUFDVCxTQUFTLE9BQWdCO0FBRXZCLFVBQU0sSUFBSTtBQUFBLE1BQ1IsR0FBRyxNQUFNO0FBQUEsTUFFVCxFQUFFLE9BQU8sTUFBTTtBQUFBLElBQ2pCO0FBQUEsRUFFRjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -26,12 +26,12 @@ export type SharpFactory = (input: Uint8Array) => SharpInstance;
|
|
|
26
26
|
* One `sharp` pipeline.
|
|
27
27
|
*/
|
|
28
28
|
export interface SharpInstance {
|
|
29
|
-
blur(this: void, sigma: number)
|
|
30
|
-
composite(this: void, layers: SharpCompositeLayer[])
|
|
31
|
-
metadata(this: void)
|
|
32
|
-
png(this: void)
|
|
33
|
-
resize(this: void, width: number, height: number, options?: SharpResizeOptions)
|
|
34
|
-
toBuffer(this: void)
|
|
29
|
+
blur: (this: void, sigma: number) => SharpInstance;
|
|
30
|
+
composite: (this: void, layers: SharpCompositeLayer[]) => SharpInstance;
|
|
31
|
+
metadata: (this: void) => Promise<SharpMetadata>;
|
|
32
|
+
png: (this: void) => SharpInstance;
|
|
33
|
+
resize: (this: void, width: number, height: number, options?: SharpResizeOptions) => SharpInstance;
|
|
34
|
+
toBuffer: (this: void) => Promise<Buffer>;
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* The subset of `sharp`'s metadata the image helpers read.
|