@workflow/core 5.0.0-beta.42 → 5.0.0-beta.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/dist/capabilities.d.ts +4 -4
  2. package/dist/capabilities.js +5 -5
  3. package/dist/capture-stack.d.ts +1 -1
  4. package/dist/capture-stack.js +2 -2
  5. package/dist/class-serialization.d.ts +8 -8
  6. package/dist/class-serialization.js +9 -9
  7. package/dist/classify-error.js +5 -5
  8. package/dist/context-violation-error.d.ts +5 -5
  9. package/dist/context-violation-error.d.ts.map +1 -1
  10. package/dist/context-violation-error.js +5 -5
  11. package/dist/create-hook.d.ts +10 -6
  12. package/dist/create-hook.d.ts.map +1 -1
  13. package/dist/create-hook.js +1 -1
  14. package/dist/define-hook.js +2 -2
  15. package/dist/describe-error.d.ts +7 -7
  16. package/dist/describe-error.js +8 -8
  17. package/dist/encryption.d.ts +5 -5
  18. package/dist/encryption.js +7 -7
  19. package/dist/events-consumer.d.ts +19 -7
  20. package/dist/events-consumer.d.ts.map +1 -1
  21. package/dist/events-consumer.js +33 -12
  22. package/dist/flushable-stream.d.ts +4 -4
  23. package/dist/flushable-stream.js +12 -12
  24. package/dist/global.d.ts +1 -1
  25. package/dist/global.js +1 -1
  26. package/dist/index.d.ts +1 -1
  27. package/dist/index.js +2 -2
  28. package/dist/log-format.d.ts +2 -2
  29. package/dist/log-format.js +5 -5
  30. package/dist/logger.js +4 -4
  31. package/dist/private.d.ts +39 -64
  32. package/dist/private.d.ts.map +1 -1
  33. package/dist/private.js +294 -48
  34. package/dist/replay-payload-cache.d.ts +1 -1
  35. package/dist/replay-payload-cache.js +4 -4
  36. package/dist/runtime/compute-instance.d.ts +4 -3
  37. package/dist/runtime/compute-instance.d.ts.map +1 -1
  38. package/dist/runtime/compute-instance.js +5 -4
  39. package/dist/runtime/constants.d.ts +46 -19
  40. package/dist/runtime/constants.d.ts.map +1 -1
  41. package/dist/runtime/constants.js +76 -38
  42. package/dist/runtime/count-step-started-events.d.ts +7 -7
  43. package/dist/runtime/count-step-started-events.js +4 -4
  44. package/dist/runtime/deployment-guard.d.ts +7 -7
  45. package/dist/runtime/deployment-guard.js +8 -8
  46. package/dist/runtime/get-port-lazy.d.ts +2 -2
  47. package/dist/runtime/get-port-lazy.d.ts.map +1 -1
  48. package/dist/runtime/get-port-lazy.js +37 -30
  49. package/dist/runtime/get-world-lazy.d.ts +2 -2
  50. package/dist/runtime/get-world-lazy.js +3 -3
  51. package/dist/runtime/helpers.d.ts +18 -18
  52. package/dist/runtime/helpers.js +27 -27
  53. package/dist/runtime/quickjs-entrypoint.d.ts +23 -10
  54. package/dist/runtime/quickjs-entrypoint.d.ts.map +1 -1
  55. package/dist/runtime/quickjs-entrypoint.js +200 -81
  56. package/dist/runtime/quickjs-runtime.d.ts +31 -15
  57. package/dist/runtime/quickjs-runtime.d.ts.map +1 -1
  58. package/dist/runtime/quickjs-runtime.js +126 -77
  59. package/dist/runtime/quickjs-serde.d.ts +10 -10
  60. package/dist/runtime/quickjs-serde.js +20 -20
  61. package/dist/runtime/replay-budget.d.ts +4 -4
  62. package/dist/runtime/replay-budget.js +5 -5
  63. package/dist/runtime/replay-recovery-reporter.d.ts +1 -1
  64. package/dist/runtime/replay-recovery-reporter.js +2 -2
  65. package/dist/runtime/resume-hook.d.ts +2 -2
  66. package/dist/runtime/resume-hook.js +27 -27
  67. package/dist/runtime/resume-latency.d.ts +25 -25
  68. package/dist/runtime/resume-latency.d.ts.map +1 -1
  69. package/dist/runtime/resume-latency.js +4 -4
  70. package/dist/runtime/run-id-time.d.ts +2 -2
  71. package/dist/runtime/run-id-time.js +5 -5
  72. package/dist/runtime/run.d.ts +21 -4
  73. package/dist/runtime/run.d.ts.map +1 -1
  74. package/dist/runtime/run.js +154 -35
  75. package/dist/runtime/runs.d.ts +4 -4
  76. package/dist/runtime/runs.js +2 -2
  77. package/dist/runtime/start.d.ts +3 -3
  78. package/dist/runtime/start.d.ts.map +1 -1
  79. package/dist/runtime/start.js +27 -23
  80. package/dist/runtime/step-executor.d.ts +59 -11
  81. package/dist/runtime/step-executor.d.ts.map +1 -1
  82. package/dist/runtime/step-executor.js +116 -42
  83. package/dist/runtime/step-latency.d.ts +20 -14
  84. package/dist/runtime/step-latency.d.ts.map +1 -1
  85. package/dist/runtime/step-latency.js +13 -11
  86. package/dist/runtime/step-ownership.d.ts +6 -6
  87. package/dist/runtime/step-ownership.js +8 -8
  88. package/dist/runtime/step-single-flight.d.ts +1 -1
  89. package/dist/runtime/step-single-flight.d.ts.map +1 -1
  90. package/dist/runtime/step-single-flight.js +17 -11
  91. package/dist/runtime/suspension-handler.d.ts +99 -7
  92. package/dist/runtime/suspension-handler.d.ts.map +1 -1
  93. package/dist/runtime/suspension-handler.js +678 -57
  94. package/dist/runtime/unserializable-step.d.ts +34 -0
  95. package/dist/runtime/unserializable-step.d.ts.map +1 -0
  96. package/dist/runtime/unserializable-step.js +52 -0
  97. package/dist/runtime/vm-mode.d.ts +1 -1
  98. package/dist/runtime/vm-mode.js +2 -2
  99. package/dist/runtime/wait-continuation.d.ts +31 -9
  100. package/dist/runtime/wait-continuation.d.ts.map +1 -1
  101. package/dist/runtime/wait-continuation.js +44 -13
  102. package/dist/runtime/wait-until.d.ts +1 -1
  103. package/dist/runtime/wait-until.js +2 -2
  104. package/dist/runtime/world-compatibility.d.ts +20 -9
  105. package/dist/runtime/world-compatibility.d.ts.map +1 -1
  106. package/dist/runtime/world-compatibility.js +24 -13
  107. package/dist/runtime/world-init.d.ts +5 -5
  108. package/dist/runtime/world-init.js +6 -6
  109. package/dist/runtime/world.d.ts.map +1 -1
  110. package/dist/runtime/world.js +13 -3
  111. package/dist/runtime.d.ts.map +1 -1
  112. package/dist/runtime.js +417 -213
  113. package/dist/sealed-box.d.ts +7 -7
  114. package/dist/sealed-box.js +15 -15
  115. package/dist/serialization/client.js +2 -2
  116. package/dist/serialization/codec-devalue-vm.d.ts +1 -1
  117. package/dist/serialization/codec-devalue-vm.js +4 -4
  118. package/dist/serialization/codec-devalue.d.ts +1 -1
  119. package/dist/serialization/codec-devalue.js +2 -2
  120. package/dist/serialization/codec.d.ts +4 -4
  121. package/dist/serialization/codec.js +2 -2
  122. package/dist/serialization/compression.d.ts +12 -11
  123. package/dist/serialization/compression.d.ts.map +1 -1
  124. package/dist/serialization/compression.js +16 -15
  125. package/dist/serialization/encryption.d.ts +7 -7
  126. package/dist/serialization/encryption.d.ts.map +1 -1
  127. package/dist/serialization/encryption.js +8 -8
  128. package/dist/serialization/errors.js +2 -2
  129. package/dist/serialization/format.d.ts +6 -6
  130. package/dist/serialization/format.js +7 -7
  131. package/dist/serialization/hardened.d.ts +18 -18
  132. package/dist/serialization/hardened.d.ts.map +1 -1
  133. package/dist/serialization/hardened.js +41 -32
  134. package/dist/serialization/index.d.ts +1 -1
  135. package/dist/serialization/index.js +2 -2
  136. package/dist/serialization/reducers/class-vm.d.ts +1 -1
  137. package/dist/serialization/reducers/class-vm.js +2 -2
  138. package/dist/serialization/reducers/class.js +2 -2
  139. package/dist/serialization/reducers/common-vm.js +12 -12
  140. package/dist/serialization/reducers/common.js +12 -12
  141. package/dist/serialization/reducers/step-function-vm.d.ts +1 -1
  142. package/dist/serialization/reducers/step-function-vm.js +2 -2
  143. package/dist/serialization/reducers/step-function.js +2 -2
  144. package/dist/serialization/step.js +2 -2
  145. package/dist/serialization/types.d.ts +5 -5
  146. package/dist/serialization/types.js +2 -2
  147. package/dist/serialization/workflow-vm.d.ts +1 -1
  148. package/dist/serialization/workflow-vm.d.ts.map +1 -1
  149. package/dist/serialization/workflow-vm.js +13 -10
  150. package/dist/serialization-format.d.ts +11 -11
  151. package/dist/serialization-format.d.ts.map +1 -1
  152. package/dist/serialization-format.js +29 -23
  153. package/dist/serialization.d.ts +20 -12
  154. package/dist/serialization.d.ts.map +1 -1
  155. package/dist/serialization.js +141 -99
  156. package/dist/set-attributes.js +2 -2
  157. package/dist/source-map.d.ts +1 -1
  158. package/dist/source-map.d.ts.map +1 -1
  159. package/dist/source-map.js +18 -12
  160. package/dist/step/context-storage.d.ts +5 -5
  161. package/dist/step/context-storage.js +1 -1
  162. package/dist/step/writable-stream.d.ts +3 -3
  163. package/dist/step/writable-stream.js +7 -7
  164. package/dist/step.js +12 -12
  165. package/dist/symbols.d.ts +2 -2
  166. package/dist/symbols.js +3 -3
  167. package/dist/telemetry/semantic-conventions.d.ts +21 -13
  168. package/dist/telemetry/semantic-conventions.d.ts.map +1 -1
  169. package/dist/telemetry/semantic-conventions.js +21 -15
  170. package/dist/telemetry.d.ts +9 -3
  171. package/dist/telemetry.d.ts.map +1 -1
  172. package/dist/telemetry.js +40 -10
  173. package/dist/test-support/orchestrator-context.d.ts.map +1 -1
  174. package/dist/test-support/orchestrator-context.js +12 -2
  175. package/dist/version.d.ts +1 -1
  176. package/dist/version.js +2 -2
  177. package/dist/vm/index.js +4 -4
  178. package/dist/vm/script-cache.d.ts.map +1 -1
  179. package/dist/vm/script-cache.js +23 -17
  180. package/dist/vm/uint8array-base64.js +1 -1
  181. package/dist/workflow/abort-controller.d.ts +1 -1
  182. package/dist/workflow/abort-controller.js +12 -12
  183. package/dist/workflow/create-hook.js +3 -3
  184. package/dist/workflow/get-workflow-metadata.js +2 -2
  185. package/dist/workflow/hook.js +18 -18
  186. package/dist/workflow/set-attributes.d.ts +1 -1
  187. package/dist/workflow/set-attributes.js +2 -2
  188. package/dist/workflow/sleep.js +2 -2
  189. package/dist/workflow/world-init-stub.d.ts +1 -1
  190. package/dist/workflow/world-init-stub.js +2 -2
  191. package/dist/workflow.d.ts +2 -2
  192. package/dist/workflow.js +36 -14
  193. package/docs/api-reference/create-hook.mdx +15 -15
  194. package/docs/api-reference/create-webhook.mdx +15 -15
  195. package/docs/api-reference/define-hook.mdx +10 -10
  196. package/docs/api-reference/fatal-error.mdx +2 -2
  197. package/docs/api-reference/fetch.mdx +7 -7
  198. package/docs/api-reference/get-step-metadata.mdx +2 -2
  199. package/docs/api-reference/get-workflow-metadata.mdx +3 -3
  200. package/docs/api-reference/get-writable.mdx +7 -7
  201. package/docs/api-reference/index.mdx +1 -1
  202. package/docs/api-reference/retryable-error.mdx +1 -1
  203. package/docs/api-reference/set-attributes.mdx +2 -2
  204. package/docs/api-reference/sleep.mdx +3 -3
  205. package/docs/foundations/cancellation.mdx +31 -31
  206. package/docs/foundations/errors-and-retries.mdx +42 -11
  207. package/docs/foundations/hooks.mdx +37 -37
  208. package/docs/foundations/idempotency.mdx +9 -9
  209. package/docs/foundations/serialization.mdx +21 -22
  210. package/docs/foundations/starting-workflows.mdx +36 -37
  211. package/docs/foundations/streaming.mdx +68 -39
  212. package/docs/foundations/versioning.mdx +3 -3
  213. package/docs/foundations/workflows-and-steps.mdx +9 -9
  214. package/docs/how-it-works/cancellation.mdx +62 -62
  215. package/docs/how-it-works/code-transform.mdx +66 -54
  216. package/docs/how-it-works/encryption.mdx +25 -21
  217. package/docs/how-it-works/event-sourcing.mdx +84 -28
  218. package/docs/how-it-works/framework-integrations.mdx +12 -12
  219. package/docs/how-it-works/understanding-directives.mdx +21 -21
  220. package/package.json +7 -7
@@ -17,7 +17,7 @@
17
17
  *
18
18
  * ## Adding a new non-format capability
19
19
  *
20
- * Some capabilities aren't serialization format prefixes e.g.
20
+ * Some capabilities aren't serialization format prefixes: e.g.
21
21
  * byte-stream wire framing is an envelope around chunks rather than
22
22
  * a content format. For those, add a boolean field to `RunCapabilities`
23
23
  * and an entry in `CAPABILITY_VERSION_TABLE` below.
@@ -30,7 +30,7 @@
30
30
  * - `framedByteStreams` (wire-level chunk framing for byte streams): added in `5.0.0-beta.15`
31
31
  * - `gzip` (gzip payload compression): added in `5.0.0-beta.18`
32
32
  * - `zstd` (zstd payload compression, preferred codec): added in `5.0.0-beta.18`
33
- * alongside gzip they co-ship, so any run that can read one can read both.
33
+ * alongside gzip; they co-ship, so any run that can read one can read both.
34
34
  * - `encp` (X25519 sealed-box encryption for cross-run writes): added in
35
35
  * `5.0.0-beta.37`. Note that producers do **not** gate `encp` on this table:
36
36
  * they gate on the presence of `encryptionPublicKey` on the target run,
@@ -58,7 +58,7 @@ export interface RunCapabilities {
58
58
  * Whether the target run can decode wire-framed byte streams. When true,
59
59
  * byte streams (`type: 'bytes'` ReadableStreams passed across boundaries)
60
60
  * are wrapped in a length-prefixed frame envelope on the wire so the
61
- * reader can identify chunk boundaries which enables auto-reconnect
61
+ * reader can identify chunk boundaries, which enables auto-reconnect
62
62
  * on transient stream errors. When false, byte streams are written as
63
63
  * raw bytes (the legacy format) for compatibility with older runs.
64
64
  */
@@ -69,7 +69,7 @@ export interface RunCapabilities {
69
69
  * its `@workflow/core` version string (from `executionContext.workflowCoreVersion`).
70
70
  *
71
71
  * When the version is `undefined`, not a string, or not a valid semver string
72
- * (e.g. very old runs that predate the field, or corrupted metadata),
72
+ * (e.g. older runs that predate the field, or corrupted metadata),
73
73
  * we assume the most conservative capabilities (baseline formats only,
74
74
  * non-format capabilities all `false`).
75
75
  */
@@ -17,7 +17,7 @@
17
17
  *
18
18
  * ## Adding a new non-format capability
19
19
  *
20
- * Some capabilities aren't serialization format prefixes e.g.
20
+ * Some capabilities aren't serialization format prefixes: e.g.
21
21
  * byte-stream wire framing is an envelope around chunks rather than
22
22
  * a content format. For those, add a boolean field to `RunCapabilities`
23
23
  * and an entry in `CAPABILITY_VERSION_TABLE` below.
@@ -30,7 +30,7 @@
30
30
  * - `framedByteStreams` (wire-level chunk framing for byte streams): added in `5.0.0-beta.15`
31
31
  * - `gzip` (gzip payload compression): added in `5.0.0-beta.18`
32
32
  * - `zstd` (zstd payload compression, preferred codec): added in `5.0.0-beta.18`
33
- * alongside gzip they co-ship, so any run that can read one can read both.
33
+ * alongside gzip; they co-ship, so any run that can read one can read both.
34
34
  * - `encp` (X25519 sealed-box encryption for cross-run writes): added in
35
35
  * `5.0.0-beta.37`. Note that producers do **not** gate `encp` on this table:
36
36
  * they gate on the presence of `encryptionPublicKey` on the target run,
@@ -57,7 +57,7 @@ const FORMAT_VERSION_TABLE = [
57
57
  // bump to the next beta. A too-low cutoff makes new producers write
58
58
  // compressed payloads to consumers that cannot decompress them; too-high
59
59
  // merely delays the optimization (safe). gzip and zstd ship together, so
60
- // they share a min version a run that can read one can read both.
60
+ // they share a min version: a run that can read one can read both.
61
61
  { format: SerializationFormat.GZIP, minVersion: '5.0.0-beta.18' },
62
62
  { format: SerializationFormat.ZSTD, minVersion: '5.0.0-beta.18' },
63
63
  // TODO(release): verify this matches the actual version that ships sealed-box
@@ -101,7 +101,7 @@ const BASELINE_FORMATS = new Set([
101
101
  * its `@workflow/core` version string (from `executionContext.workflowCoreVersion`).
102
102
  *
103
103
  * When the version is `undefined`, not a string, or not a valid semver string
104
- * (e.g. very old runs that predate the field, or corrupted metadata),
104
+ * (e.g. older runs that predate the field, or corrupted metadata),
105
105
  * we assume the most conservative capabilities (baseline formats only,
106
106
  * non-format capabilities all `false`).
107
107
  */
@@ -129,4 +129,4 @@ export function getRunCapabilities(workflowCoreVersion) {
129
129
  }
130
130
  return result;
131
131
  }
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWJpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NhcGFiaWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Q0c7QUFFSCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUNMLG1CQUFtQixHQUVwQixNQUFNLG9CQUFvQixDQUFDO0FBd0I1Qjs7OztHQUlHO0FBQ0gsTUFBTSxvQkFBb0IsR0FHckI7SUFDSCxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRTtJQUN0RSwyRUFBMkU7SUFDM0UsNEVBQTRFO0lBQzVFLG9FQUFvRTtJQUNwRSx5RUFBeUU7SUFDekUseUVBQXlFO0lBQ3pFLG9FQUFvRTtJQUNwRSxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRTtJQUNqRSxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRTtJQUNqRSw4RUFBOEU7SUFDOUUsMkVBQTJFO0lBQzNFLDBFQUEwRTtJQUMxRSw2RUFBNkU7SUFDN0UsbUVBQW1FO0lBQ25FLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFO0lBQ25FLGtCQUFrQjtJQUNsQiw2REFBNkQ7SUFDN0QscUVBQXFFO0NBQ3RFLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLHdCQUF3QixHQUd6QjtJQUNILCtFQUErRTtJQUMvRSw2RUFBNkU7SUFDN0UsK0VBQStFO0lBQy9FLDBFQUEwRTtJQUMxRSxrQ0FBa0M7SUFDbEMsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRTtJQUNoRSw0RUFBNEU7SUFDNUUsd0VBQXdFO0lBQ3hFLDZFQUE2RTtJQUM3RSx3RUFBd0U7SUFDeEUsOEVBQThFO0lBQzlFLDZFQUE2RTtDQUM5RSxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sZ0JBQWdCLEdBQXlDLElBQUksR0FBRyxDQUFDO0lBQ3JFLG1CQUFtQixDQUFDLFVBQVU7Q0FDL0IsQ0FBQyxDQUFDO0FBRUg7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLG1CQUF1QztJQUV2QyxJQUFJLENBQUMsbUJBQW1CLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztRQUMvRCxPQUFPO1lBQ0wsZ0JBQWdCLEVBQUUsZ0JBQWdCO1lBQ2xDLGlCQUFpQixFQUFFLEtBQUs7U0FDekIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBMEIsZ0JBQWdCLENBQUMsQ0FBQztJQUVuRSxLQUFLLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUMxRCxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNoRCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQW9CO1FBQzlCLGdCQUFnQixFQUFFLE9BQU87UUFDekIsaUJBQWlCLEVBQUUsS0FBSztLQUN6QixDQUFDO0lBRUYsS0FBSyxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxJQUFJLHdCQUF3QixFQUFFLENBQUM7UUFDbEUsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDaEQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENhcGFiaWxpdGllcyB0YWJsZSBmb3Igd29ya2Zsb3cgcnVucyBiYXNlZCBvbiB0aGVpciBgQHdvcmtmbG93L2NvcmVgIHZlcnNpb24uXG4gKlxuICogV2hlbiByZXN1bWluZyBhIGhvb2sgb3Igd2ViaG9vaywgdGhlIHBheWxvYWQgbXVzdCBiZSBlbmNvZGVkIGluIGEgZm9ybWF0XG4gKiB0aGF0IHRoZSAqdGFyZ2V0KiB3b3JrZmxvdyBydW4ncyBkZXBsb3ltZW50IGNhbiBkZWNvZGUuIFRoaXMgbW9kdWxlIHByb3ZpZGVzXG4gKiBhIHdheSB0byBsb29rIHVwIHdoYXQgc2VyaWFsaXphdGlvbiBmb3JtYXRzIGEgZ2l2ZW4gYEB3b3JrZmxvdy9jb3JlYCB2ZXJzaW9uXG4gKiBzdXBwb3J0cywgc28gdGhhdCBuZXdlciBkZXBsb3ltZW50cyBjYW4gYXZvaWQgZW5jb2RpbmcgcGF5bG9hZHMgaW4gZm9ybWF0c1xuICogdGhhdCBvbGRlciBkZXBsb3ltZW50cyBkb24ndCB1bmRlcnN0YW5kIChlLmcuLCB0aGUgYGVuY3JgIGVuY3J5cHRpb24gZm9ybWF0KS5cbiAqXG4gKiAjIyBBZGRpbmcgYSBuZXcgZm9ybWF0XG4gKlxuICogV2hlbiBhIG5ldyBzZXJpYWxpemF0aW9uIGZvcm1hdCBpcyBpbnRyb2R1Y2VkOlxuICogMS4gQWRkIHRoZSBmb3JtYXQgY29uc3RhbnQgdG8gYFNlcmlhbGl6YXRpb25Gb3JtYXRgIGluIGBzZXJpYWxpemF0aW9uLnRzYFxuICogMi4gQWRkIGFuIGVudHJ5IHRvIGBGT1JNQVRfVkVSU0lPTl9UQUJMRWAgYmVsb3cgd2l0aCB0aGUgbWluaW11bVxuICogICAgYEB3b3JrZmxvdy9jb3JlYCB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgaXRcbiAqIDMuIFRoZSBgZ2V0UnVuQ2FwYWJpbGl0aWVzKClgIGZ1bmN0aW9uIHdpbGwgYXV0b21hdGljYWxseSBpbmNsdWRlIGl0XG4gKlxuICogIyMgQWRkaW5nIGEgbmV3IG5vbi1mb3JtYXQgY2FwYWJpbGl0eVxuICpcbiAqIFNvbWUgY2FwYWJpbGl0aWVzIGFyZW4ndCBzZXJpYWxpemF0aW9uIGZvcm1hdCBwcmVmaXhlcyDigJQgZS5nLlxuICogYnl0ZS1zdHJlYW0gd2lyZSBmcmFtaW5nIGlzIGFuIGVudmVsb3BlIGFyb3VuZCBjaHVua3MgcmF0aGVyIHRoYW5cbiAqIGEgY29udGVudCBmb3JtYXQuIEZvciB0aG9zZSwgYWRkIGEgYm9vbGVhbiBmaWVsZCB0byBgUnVuQ2FwYWJpbGl0aWVzYFxuICogYW5kIGFuIGVudHJ5IGluIGBDQVBBQklMSVRZX1ZFUlNJT05fVEFCTEVgIGJlbG93LlxuICpcbiAqICMjIEhpc3RvcnlcbiAqXG4gKiAtIGBlbmNyYCAoQUVTLTI1Ni1HQ00gZW5jcnlwdGlvbik6IGFkZGVkIGluIGA0LjIuMC1iZXRhLjY0YFxuICogICBDb21taXQ6IDc2MThhYzM2IFwiV2lyZSBBRVMtR0NNIGVuY3J5cHRpb24gaW50byBzZXJpYWxpemF0aW9uIGxheWVyICgjMTI1MSlcIlxuICogICBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL3dvcmtmbG93L2NvbW1pdC83NjE4YWMzNlxuICogLSBgZnJhbWVkQnl0ZVN0cmVhbXNgICh3aXJlLWxldmVsIGNodW5rIGZyYW1pbmcgZm9yIGJ5dGUgc3RyZWFtcyk6IGFkZGVkIGluIGA1LjAuMC1iZXRhLjE1YFxuICogLSBgZ3ppcGAgKGd6aXAgcGF5bG9hZCBjb21wcmVzc2lvbik6IGFkZGVkIGluIGA1LjAuMC1iZXRhLjE4YFxuICogLSBgenN0ZGAgKHpzdGQgcGF5bG9hZCBjb21wcmVzc2lvbiwgcHJlZmVycmVkIGNvZGVjKTogYWRkZWQgaW4gYDUuMC4wLWJldGEuMThgXG4gKiAgIGFsb25nc2lkZSBnemlwIOKAlCB0aGV5IGNvLXNoaXAsIHNvIGFueSBydW4gdGhhdCBjYW4gcmVhZCBvbmUgY2FuIHJlYWQgYm90aC5cbiAqIC0gYGVuY3BgIChYMjU1MTkgc2VhbGVkLWJveCBlbmNyeXB0aW9uIGZvciBjcm9zcy1ydW4gd3JpdGVzKTogYWRkZWQgaW5cbiAqICAgYDUuMC4wLWJldGEuMzdgLiBOb3RlIHRoYXQgcHJvZHVjZXJzIGRvICoqbm90KiogZ2F0ZSBgZW5jcGAgb24gdGhpcyB0YWJsZTpcbiAqICAgdGhleSBnYXRlIG9uIHRoZSBwcmVzZW5jZSBvZiBgZW5jcnlwdGlvblB1YmxpY0tleWAgb24gdGhlIHRhcmdldCBydW4sXG4gKiAgIHdoaWNoIGEgcnVuIG9ubHkgY2FycmllcyBpZiB0aGUgZGVwbG95bWVudCB0aGF0IGNyZWF0ZWQgaXQgY291bGQgYWxzb1xuICogICBvcGVuIGBlbmNwYC4gVGhlIGVudHJ5IGV4aXN0cyBzbyB0aGUgY2FwYWJpbGl0eSBzZXQgc3RheXMgYSBjb21wbGV0ZSxcbiAqICAgYXVkaXRhYmxlIGRlc2NyaXB0aW9uIG9mIGEgcnVuJ3MgZGVjb2RpbmcgYWJpbGl0eS5cbiAqIC0gTGF6eSBob29rIHJlc3VtZSAoXCJjb25zdW1lciByZS1lbnN1cmVzIGBob29rX3JlY2VpdmVkYCBmcm9tIGBob29rSW5wdXRgXCIpOlxuICogICBkZWxpYmVyYXRlbHkgTk9UIHRyYWNrZWQgaGVyZS4gUmF0aGVyIHRoYW4gcHJlZGljdCBhIHJlbGVhc2UgY3V0b2ZmLCB0aGVcbiAqICAgcnVuJ3MgY3JlYXRpbmcgZGVwbG95bWVudCBzdGFtcHMgYW4gZXhwbGljaXQgYGhvb2tSZXN1bWVJbnB1dFZlcnNpb25gXG4gKiAgIGV4ZWN1dGlvbi1jb250ZXh0IG1hcmtlcjsgYHJlc3VtZUhvb2soKWAgZ2F0ZXMgdGhlIHBhcmFsbGVsIGZhc3QgcGF0aCBvblxuICogICB0aGF0IG1hcmtlciAobWlycm9yZWQgb250byB0aGUgaG9vaydzIHJlc3VtZUNvbnRleHQgYnkgdGhlIHNlcnZlcikuXG4gKi9cblxuaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHtcbiAgU2VyaWFsaXphdGlvbkZvcm1hdCxcbiAgdHlwZSBTZXJpYWxpemF0aW9uRm9ybWF0VHlwZSxcbn0gZnJvbSAnLi9zZXJpYWxpemF0aW9uLmpzJztcblxuLyoqXG4gKiBDYXBhYmlsaXRpZXMgb2YgYSB3b3JrZmxvdyBydW4gYmFzZWQgb24gaXRzIGBAd29ya2Zsb3cvY29yZWAgdmVyc2lvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW5DYXBhYmlsaXRpZXMge1xuICAvKipcbiAgICogVGhlIHNldCBvZiBzZXJpYWxpemF0aW9uIGZvcm1hdCBwcmVmaXhlcyB0aGF0IHRoZSB0YXJnZXQgcnVuIGNhbiBkZWNvZGUuXG4gICAqIFVzZSBgc3VwcG9ydGVkRm9ybWF0cy5oYXMoU2VyaWFsaXphdGlvbkZvcm1hdC5FTkNSWVBURUQpYCB0byBjaGVja1xuICAgKiBpZiBlbmNyeXB0aW9uIGlzIHN1cHBvcnRlZCwgZXRjLlxuICAgKi9cbiAgc3VwcG9ydGVkRm9ybWF0czogUmVhZG9ubHlTZXQ8U2VyaWFsaXphdGlvbkZvcm1hdFR5cGU+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB0YXJnZXQgcnVuIGNhbiBkZWNvZGUgd2lyZS1mcmFtZWQgYnl0ZSBzdHJlYW1zLiBXaGVuIHRydWUsXG4gICAqIGJ5dGUgc3RyZWFtcyAoYHR5cGU6ICdieXRlcydgIFJlYWRhYmxlU3RyZWFtcyBwYXNzZWQgYWNyb3NzIGJvdW5kYXJpZXMpXG4gICAqIGFyZSB3cmFwcGVkIGluIGEgbGVuZ3RoLXByZWZpeGVkIGZyYW1lIGVudmVsb3BlIG9uIHRoZSB3aXJlIHNvIHRoZVxuICAgKiByZWFkZXIgY2FuIGlkZW50aWZ5IGNodW5rIGJvdW5kYXJpZXMg4oCUIHdoaWNoIGVuYWJsZXMgYXV0by1yZWNvbm5lY3RcbiAgICogb24gdHJhbnNpZW50IHN0cmVhbSBlcnJvcnMuIFdoZW4gZmFsc2UsIGJ5dGUgc3RyZWFtcyBhcmUgd3JpdHRlbiBhc1xuICAgKiByYXcgYnl0ZXMgKHRoZSBsZWdhY3kgZm9ybWF0KSBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIHJ1bnMuXG4gICAqL1xuICBmcmFtZWRCeXRlU3RyZWFtczogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNYXBzIHNlcmlhbGl6YXRpb24gZm9ybWF0IGlkZW50aWZpZXJzIHRvIHRoZSBtaW5pbXVtIGBAd29ya2Zsb3cvY29yZWBcbiAqIHZlcnNpb24gdGhhdCBpbnRyb2R1Y2VkIHN1cHBvcnQgZm9yIHRoZW0uIEZvcm1hdHMgbm90IGxpc3RlZCBoZXJlIGFyZVxuICogYXNzdW1lZCB0byBiZSBzdXBwb3J0ZWQgYnkgYWxsIHNwZWNWZXJzaW9uIDIgcnVucyAoZS5nLiwgYGRldmxgKS5cbiAqL1xuY29uc3QgRk9STUFUX1ZFUlNJT05fVEFCTEU6IFJlYWRvbmx5QXJyYXk8e1xuICBmb3JtYXQ6IFNlcmlhbGl6YXRpb25Gb3JtYXRUeXBlO1xuICBtaW5WZXJzaW9uOiBzdHJpbmc7XG59PiA9IFtcbiAgeyBmb3JtYXQ6IFNlcmlhbGl6YXRpb25Gb3JtYXQuRU5DUllQVEVELCBtaW5WZXJzaW9uOiAnNC4yLjAtYmV0YS42NCcgfSxcbiAgLy8gVE9ETyhyZWxlYXNlKTogdmVyaWZ5IHRoaXMgbWF0Y2hlcyB0aGUgYWN0dWFsIHZlcnNpb24gdGhhdCBzaGlwcyBwYXlsb2FkXG4gIC8vIGNvbXByZXNzaW9uLiBJZiBhIFwiVmVyc2lvbiBQYWNrYWdlcyAoYmV0YSlcIiBQUiBtZXJnZXMgYmVmb3JlIHRoaXMgY2hhbmdlLFxuICAvLyBidW1wIHRvIHRoZSBuZXh0IGJldGEuIEEgdG9vLWxvdyBjdXRvZmYgbWFrZXMgbmV3IHByb2R1Y2VycyB3cml0ZVxuICAvLyBjb21wcmVzc2VkIHBheWxvYWRzIHRvIGNvbnN1bWVycyB0aGF0IGNhbm5vdCBkZWNvbXByZXNzIHRoZW07IHRvby1oaWdoXG4gIC8vIG1lcmVseSBkZWxheXMgdGhlIG9wdGltaXphdGlvbiAoc2FmZSkuIGd6aXAgYW5kIHpzdGQgc2hpcCB0b2dldGhlciwgc29cbiAgLy8gdGhleSBzaGFyZSBhIG1pbiB2ZXJzaW9uIOKAlCBhIHJ1biB0aGF0IGNhbiByZWFkIG9uZSBjYW4gcmVhZCBib3RoLlxuICB7IGZvcm1hdDogU2VyaWFsaXphdGlvbkZvcm1hdC5HWklQLCBtaW5WZXJzaW9uOiAnNS4wLjAtYmV0YS4xOCcgfSxcbiAgeyBmb3JtYXQ6IFNlcmlhbGl6YXRpb25Gb3JtYXQuWlNURCwgbWluVmVyc2lvbjogJzUuMC4wLWJldGEuMTgnIH0sXG4gIC8vIFRPRE8ocmVsZWFzZSk6IHZlcmlmeSB0aGlzIG1hdGNoZXMgdGhlIGFjdHVhbCB2ZXJzaW9uIHRoYXQgc2hpcHMgc2VhbGVkLWJveFxuICAvLyBlbmNyeXB0aW9uLiBJZiBhIFwiVmVyc2lvbiBQYWNrYWdlcyAoYmV0YSlcIiBQUiBtZXJnZXMgYmVmb3JlIHRoaXMgY2hhbmdlLFxuICAvLyBidW1wIHRvIHRoZSBuZXh0IGJldGEuIFVubGlrZSB0aGUgZW50cmllcyBhYm92ZSwgYSB3cm9uZyBjdXRvZmYgaGVyZSBpc1xuICAvLyBub3QgYSBjb3JyZWN0bmVzcyBoYXphcmQ6IHByb2R1Y2VycyBnYXRlIGBlbmNwYCBvbiB0aGUgdGFyZ2V0IHJ1biBjYXJyeWluZ1xuICAvLyBhbiBgZW5jcnlwdGlvblB1YmxpY0tleWAsIG5vdCBvbiB0aGlzIHRhYmxlIChzZWUgSGlzdG9yeSBhYm92ZSkuXG4gIHsgZm9ybWF0OiBTZXJpYWxpemF0aW9uRm9ybWF0LlNFQUxFRCwgbWluVmVyc2lvbjogJzUuMC4wLWJldGEuMzcnIH0sXG4gIC8vIEZ1dHVyZSBlbnRyaWVzOlxuICAvLyB7IGZvcm1hdDogU2VyaWFsaXphdGlvbkZvcm1hdC5DQk9SLCBtaW5WZXJzaW9uOiAnNS54LnknIH0sXG4gIC8vIHsgZm9ybWF0OiBTZXJpYWxpemF0aW9uRm9ybWF0LkVOQ1JZUFRFRF9WMiwgbWluVmVyc2lvbjogJzUueC55JyB9LFxuXTtcblxuLyoqXG4gKiBNYXBzIG5vbi1mb3JtYXQgY2FwYWJpbGl0eSBmbGFncyAoYm9vbGVhbnMgb24gYFJ1bkNhcGFiaWxpdGllc2ApIHRvIHRoZVxuICogbWluaW11bSBgQHdvcmtmbG93L2NvcmVgIHZlcnNpb24gdGhhdCBpbnRyb2R1Y2VkIHN1cHBvcnQgZm9yIHRoZW0uXG4gKi9cbmNvbnN0IENBUEFCSUxJVFlfVkVSU0lPTl9UQUJMRTogUmVhZG9ubHlBcnJheTx7XG4gIGNhcGFiaWxpdHk6IGtleW9mIE9taXQ8UnVuQ2FwYWJpbGl0aWVzLCAnc3VwcG9ydGVkRm9ybWF0cyc+O1xuICBtaW5WZXJzaW9uOiBzdHJpbmc7XG59PiA9IFtcbiAgLy8gVE9ETyhyZWxlYXNlKTogdmVyaWZ5IHRoaXMgbWF0Y2hlcyB0aGUgYWN0dWFsIHZlcnNpb24gdGhhdCBzaGlwcyBieXRlLXN0cmVhbVxuICAvLyBmcmFtaW5nLiBJZiBhIFwiVmVyc2lvbiBQYWNrYWdlcyAoYmV0YSlcIiBQUiBtZXJnZXMgYmVmb3JlIHRoaXMgY2hhbmdlLCBidW1wXG4gIC8vIHRvIHRoZSBuZXh0IGJldGEuIEEgdG9vLWxvdyBjdXRvZmYgbWFrZXMgbmV3IHByb2R1Y2VycyB3cml0ZSBmcmFtZWQgYnl0ZXMgdG9cbiAgLy8gY29uc3VtZXJzIHRoYXQgY2Fubm90IHVuZnJhbWUgdGhlbSAoc2lsZW50IGNvcnJ1cHRpb24pOyB0b28taGlnaCBtZXJlbHlcbiAgLy8gZGVsYXlzIHRoZSBvcHRpbWl6YXRpb24gKHNhZmUpLlxuICB7IGNhcGFiaWxpdHk6ICdmcmFtZWRCeXRlU3RyZWFtcycsIG1pblZlcnNpb246ICc1LjAuMC1iZXRhLjE1JyB9LFxuICAvLyBOT1RFOiBsYXp5IGhvb2sgcmVzdW1lIChcImRvZXMgdGhlIGNvbnN1bWVyIHJlLWVuc3VyZSBgaG9va19yZWNlaXZlZGAgZnJvbVxuICAvLyB0aGUgcXVldWUgbWVzc2FnZSdzIGBob29rSW5wdXRgP1wiKSBpcyBpbnRlbnRpb25hbGx5IE5PVCBnYXRlZCBoZXJlLiBBXG4gIC8vIHZlcnNpb24tY29tcGFyZSBhZ2FpbnN0IGEgcHJlZGljdGVkIHJlbGVhc2UgY3V0b2ZmIGlzIGEgZ3Vlc3M7IGluc3RlYWQgdGhlXG4gIC8vIHJ1bidzIGNyZWF0aW5nIGRlcGxveW1lbnQgc3RhbXBzIGFuIGV4cGxpY2l0IGBob29rUmVzdW1lSW5wdXRWZXJzaW9uYFxuICAvLyBtYXJrZXIgaW50byBpdHMgZXhlY3V0aW9uIGNvbnRleHQsIHdoaWNoIHRoZSBzZXJ2ZXIgbWlycm9ycyBvbnRvIHRoZSBob29rJ3NcbiAgLy8gcmVzdW1lQ29udGV4dC4gYHJlc3VtZUhvb2soKWAgZ2F0ZXMgdGhlIHBhcmFsbGVsIGZhc3QgcGF0aCBvbiB0aGF0IG1hcmtlci5cbl07XG5cbi8qKlxuICogVGhlIHNldCBvZiBmb3JtYXRzIHN1cHBvcnRlZCBieSBhbGwgc3BlY1ZlcnNpb24gMiBydW5zLCByZWdhcmRsZXNzIG9mXG4gKiBgQHdvcmtmbG93L2NvcmVgIHZlcnNpb24uIFRoZXNlIGFyZSB0aGUgYmFzZWxpbmUgZm9ybWF0cyB0aGF0IHdlcmUgcHJlc2VudFxuICogZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHNwZWNWZXJzaW9uIDIgcHJvdG9jb2wuXG4gKi9cbmNvbnN0IEJBU0VMSU5FX0ZPUk1BVFM6IFJlYWRvbmx5U2V0PFNlcmlhbGl6YXRpb25Gb3JtYXRUeXBlPiA9IG5ldyBTZXQoW1xuICBTZXJpYWxpemF0aW9uRm9ybWF0LkRFVkFMVUVfVjEsXG5dKTtcblxuLyoqXG4gKiBMb29rIHVwIHdoYXQgc2VyaWFsaXphdGlvbiBjYXBhYmlsaXRpZXMgYSB3b3JrZmxvdyBydW4gc3VwcG9ydHMgYmFzZWQgb25cbiAqIGl0cyBgQHdvcmtmbG93L2NvcmVgIHZlcnNpb24gc3RyaW5nIChmcm9tIGBleGVjdXRpb25Db250ZXh0LndvcmtmbG93Q29yZVZlcnNpb25gKS5cbiAqXG4gKiBXaGVuIHRoZSB2ZXJzaW9uIGlzIGB1bmRlZmluZWRgLCBub3QgYSBzdHJpbmcsIG9yIG5vdCBhIHZhbGlkIHNlbXZlciBzdHJpbmdcbiAqIChlLmcuIHZlcnkgb2xkIHJ1bnMgdGhhdCBwcmVkYXRlIHRoZSBmaWVsZCwgb3IgY29ycnVwdGVkIG1ldGFkYXRhKSxcbiAqIHdlIGFzc3VtZSB0aGUgbW9zdCBjb25zZXJ2YXRpdmUgY2FwYWJpbGl0aWVzIChiYXNlbGluZSBmb3JtYXRzIG9ubHksXG4gKiBub24tZm9ybWF0IGNhcGFiaWxpdGllcyBhbGwgYGZhbHNlYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSdW5DYXBhYmlsaXRpZXMoXG4gIHdvcmtmbG93Q29yZVZlcnNpb246IHN0cmluZyB8IHVuZGVmaW5lZFxuKTogUnVuQ2FwYWJpbGl0aWVzIHtcbiAgaWYgKCF3b3JrZmxvd0NvcmVWZXJzaW9uIHx8ICFzZW12ZXIudmFsaWQod29ya2Zsb3dDb3JlVmVyc2lvbikpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3VwcG9ydGVkRm9ybWF0czogQkFTRUxJTkVfRk9STUFUUyxcbiAgICAgIGZyYW1lZEJ5dGVTdHJlYW1zOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgZm9ybWF0cyA9IG5ldyBTZXQ8U2VyaWFsaXphdGlvbkZvcm1hdFR5cGU+KEJBU0VMSU5FX0ZPUk1BVFMpO1xuXG4gIGZvciAoY29uc3QgeyBmb3JtYXQsIG1pblZlcnNpb24gfSBvZiBGT1JNQVRfVkVSU0lPTl9UQUJMRSkge1xuICAgIGlmIChzZW12ZXIuZ3RlKHdvcmtmbG93Q29yZVZlcnNpb24sIG1pblZlcnNpb24pKSB7XG4gICAgICBmb3JtYXRzLmFkZChmb3JtYXQpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogUnVuQ2FwYWJpbGl0aWVzID0ge1xuICAgIHN1cHBvcnRlZEZvcm1hdHM6IGZvcm1hdHMsXG4gICAgZnJhbWVkQnl0ZVN0cmVhbXM6IGZhbHNlLFxuICB9O1xuXG4gIGZvciAoY29uc3QgeyBjYXBhYmlsaXR5LCBtaW5WZXJzaW9uIH0gb2YgQ0FQQUJJTElUWV9WRVJTSU9OX1RBQkxFKSB7XG4gICAgaWYgKHNlbXZlci5ndGUod29ya2Zsb3dDb3JlVmVyc2lvbiwgbWluVmVyc2lvbikpIHtcbiAgICAgIHJlc3VsdFtjYXBhYmlsaXR5XSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWJpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NhcGFiaWxpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Q0c7QUFFSCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUNMLG1CQUFtQixHQUVwQixNQUFNLG9CQUFvQixDQUFDO0FBd0I1Qjs7OztHQUlHO0FBQ0gsTUFBTSxvQkFBb0IsR0FHckI7SUFDSCxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRTtJQUN0RSwyRUFBMkU7SUFDM0UsNEVBQTRFO0lBQzVFLG9FQUFvRTtJQUNwRSx5RUFBeUU7SUFDekUseUVBQXlFO0lBQ3pFLG1FQUFtRTtJQUNuRSxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRTtJQUNqRSxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRTtJQUNqRSw4RUFBOEU7SUFDOUUsMkVBQTJFO0lBQzNFLDBFQUEwRTtJQUMxRSw2RUFBNkU7SUFDN0UsbUVBQW1FO0lBQ25FLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFO0lBQ25FLGtCQUFrQjtJQUNsQiw2REFBNkQ7SUFDN0QscUVBQXFFO0NBQ3RFLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLHdCQUF3QixHQUd6QjtJQUNILCtFQUErRTtJQUMvRSw2RUFBNkU7SUFDN0UsK0VBQStFO0lBQy9FLDBFQUEwRTtJQUMxRSxrQ0FBa0M7SUFDbEMsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRTtJQUNoRSw0RUFBNEU7SUFDNUUsd0VBQXdFO0lBQ3hFLDZFQUE2RTtJQUM3RSx3RUFBd0U7SUFDeEUsOEVBQThFO0lBQzlFLDZFQUE2RTtDQUM5RSxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sZ0JBQWdCLEdBQXlDLElBQUksR0FBRyxDQUFDO0lBQ3JFLG1CQUFtQixDQUFDLFVBQVU7Q0FDL0IsQ0FBQyxDQUFDO0FBRUg7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLG1CQUF1QztJQUV2QyxJQUFJLENBQUMsbUJBQW1CLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztRQUMvRCxPQUFPO1lBQ0wsZ0JBQWdCLEVBQUUsZ0JBQWdCO1lBQ2xDLGlCQUFpQixFQUFFLEtBQUs7U0FDekIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBMEIsZ0JBQWdCLENBQUMsQ0FBQztJQUVuRSxLQUFLLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUMxRCxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNoRCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQW9CO1FBQzlCLGdCQUFnQixFQUFFLE9BQU87UUFDekIsaUJBQWlCLEVBQUUsS0FBSztLQUN6QixDQUFDO0lBRUYsS0FBSyxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxJQUFJLHdCQUF3QixFQUFFLENBQUM7UUFDbEUsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDaEQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENhcGFiaWxpdGllcyB0YWJsZSBmb3Igd29ya2Zsb3cgcnVucyBiYXNlZCBvbiB0aGVpciBgQHdvcmtmbG93L2NvcmVgIHZlcnNpb24uXG4gKlxuICogV2hlbiByZXN1bWluZyBhIGhvb2sgb3Igd2ViaG9vaywgdGhlIHBheWxvYWQgbXVzdCBiZSBlbmNvZGVkIGluIGEgZm9ybWF0XG4gKiB0aGF0IHRoZSAqdGFyZ2V0KiB3b3JrZmxvdyBydW4ncyBkZXBsb3ltZW50IGNhbiBkZWNvZGUuIFRoaXMgbW9kdWxlIHByb3ZpZGVzXG4gKiBhIHdheSB0byBsb29rIHVwIHdoYXQgc2VyaWFsaXphdGlvbiBmb3JtYXRzIGEgZ2l2ZW4gYEB3b3JrZmxvdy9jb3JlYCB2ZXJzaW9uXG4gKiBzdXBwb3J0cywgc28gdGhhdCBuZXdlciBkZXBsb3ltZW50cyBjYW4gYXZvaWQgZW5jb2RpbmcgcGF5bG9hZHMgaW4gZm9ybWF0c1xuICogdGhhdCBvbGRlciBkZXBsb3ltZW50cyBkb24ndCB1bmRlcnN0YW5kIChlLmcuLCB0aGUgYGVuY3JgIGVuY3J5cHRpb24gZm9ybWF0KS5cbiAqXG4gKiAjIyBBZGRpbmcgYSBuZXcgZm9ybWF0XG4gKlxuICogV2hlbiBhIG5ldyBzZXJpYWxpemF0aW9uIGZvcm1hdCBpcyBpbnRyb2R1Y2VkOlxuICogMS4gQWRkIHRoZSBmb3JtYXQgY29uc3RhbnQgdG8gYFNlcmlhbGl6YXRpb25Gb3JtYXRgIGluIGBzZXJpYWxpemF0aW9uLnRzYFxuICogMi4gQWRkIGFuIGVudHJ5IHRvIGBGT1JNQVRfVkVSU0lPTl9UQUJMRWAgYmVsb3cgd2l0aCB0aGUgbWluaW11bVxuICogICAgYEB3b3JrZmxvdy9jb3JlYCB2ZXJzaW9uIHRoYXQgc3VwcG9ydHMgaXRcbiAqIDMuIFRoZSBgZ2V0UnVuQ2FwYWJpbGl0aWVzKClgIGZ1bmN0aW9uIHdpbGwgYXV0b21hdGljYWxseSBpbmNsdWRlIGl0XG4gKlxuICogIyMgQWRkaW5nIGEgbmV3IG5vbi1mb3JtYXQgY2FwYWJpbGl0eVxuICpcbiAqIFNvbWUgY2FwYWJpbGl0aWVzIGFyZW4ndCBzZXJpYWxpemF0aW9uIGZvcm1hdCBwcmVmaXhlczogZS5nLlxuICogYnl0ZS1zdHJlYW0gd2lyZSBmcmFtaW5nIGlzIGFuIGVudmVsb3BlIGFyb3VuZCBjaHVua3MgcmF0aGVyIHRoYW5cbiAqIGEgY29udGVudCBmb3JtYXQuIEZvciB0aG9zZSwgYWRkIGEgYm9vbGVhbiBmaWVsZCB0byBgUnVuQ2FwYWJpbGl0aWVzYFxuICogYW5kIGFuIGVudHJ5IGluIGBDQVBBQklMSVRZX1ZFUlNJT05fVEFCTEVgIGJlbG93LlxuICpcbiAqICMjIEhpc3RvcnlcbiAqXG4gKiAtIGBlbmNyYCAoQUVTLTI1Ni1HQ00gZW5jcnlwdGlvbik6IGFkZGVkIGluIGA0LjIuMC1iZXRhLjY0YFxuICogICBDb21taXQ6IDc2MThhYzM2IFwiV2lyZSBBRVMtR0NNIGVuY3J5cHRpb24gaW50byBzZXJpYWxpemF0aW9uIGxheWVyICgjMTI1MSlcIlxuICogICBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL3dvcmtmbG93L2NvbW1pdC83NjE4YWMzNlxuICogLSBgZnJhbWVkQnl0ZVN0cmVhbXNgICh3aXJlLWxldmVsIGNodW5rIGZyYW1pbmcgZm9yIGJ5dGUgc3RyZWFtcyk6IGFkZGVkIGluIGA1LjAuMC1iZXRhLjE1YFxuICogLSBgZ3ppcGAgKGd6aXAgcGF5bG9hZCBjb21wcmVzc2lvbik6IGFkZGVkIGluIGA1LjAuMC1iZXRhLjE4YFxuICogLSBgenN0ZGAgKHpzdGQgcGF5bG9hZCBjb21wcmVzc2lvbiwgcHJlZmVycmVkIGNvZGVjKTogYWRkZWQgaW4gYDUuMC4wLWJldGEuMThgXG4gKiAgIGFsb25nc2lkZSBnemlwOyB0aGV5IGNvLXNoaXAsIHNvIGFueSBydW4gdGhhdCBjYW4gcmVhZCBvbmUgY2FuIHJlYWQgYm90aC5cbiAqIC0gYGVuY3BgIChYMjU1MTkgc2VhbGVkLWJveCBlbmNyeXB0aW9uIGZvciBjcm9zcy1ydW4gd3JpdGVzKTogYWRkZWQgaW5cbiAqICAgYDUuMC4wLWJldGEuMzdgLiBOb3RlIHRoYXQgcHJvZHVjZXJzIGRvICoqbm90KiogZ2F0ZSBgZW5jcGAgb24gdGhpcyB0YWJsZTpcbiAqICAgdGhleSBnYXRlIG9uIHRoZSBwcmVzZW5jZSBvZiBgZW5jcnlwdGlvblB1YmxpY0tleWAgb24gdGhlIHRhcmdldCBydW4sXG4gKiAgIHdoaWNoIGEgcnVuIG9ubHkgY2FycmllcyBpZiB0aGUgZGVwbG95bWVudCB0aGF0IGNyZWF0ZWQgaXQgY291bGQgYWxzb1xuICogICBvcGVuIGBlbmNwYC4gVGhlIGVudHJ5IGV4aXN0cyBzbyB0aGUgY2FwYWJpbGl0eSBzZXQgc3RheXMgYSBjb21wbGV0ZSxcbiAqICAgYXVkaXRhYmxlIGRlc2NyaXB0aW9uIG9mIGEgcnVuJ3MgZGVjb2RpbmcgYWJpbGl0eS5cbiAqIC0gTGF6eSBob29rIHJlc3VtZSAoXCJjb25zdW1lciByZS1lbnN1cmVzIGBob29rX3JlY2VpdmVkYCBmcm9tIGBob29rSW5wdXRgXCIpOlxuICogICBkZWxpYmVyYXRlbHkgTk9UIHRyYWNrZWQgaGVyZS4gUmF0aGVyIHRoYW4gcHJlZGljdCBhIHJlbGVhc2UgY3V0b2ZmLCB0aGVcbiAqICAgcnVuJ3MgY3JlYXRpbmcgZGVwbG95bWVudCBzdGFtcHMgYW4gZXhwbGljaXQgYGhvb2tSZXN1bWVJbnB1dFZlcnNpb25gXG4gKiAgIGV4ZWN1dGlvbi1jb250ZXh0IG1hcmtlcjsgYHJlc3VtZUhvb2soKWAgZ2F0ZXMgdGhlIHBhcmFsbGVsIGZhc3QgcGF0aCBvblxuICogICB0aGF0IG1hcmtlciAobWlycm9yZWQgb250byB0aGUgaG9vaydzIHJlc3VtZUNvbnRleHQgYnkgdGhlIHNlcnZlcikuXG4gKi9cblxuaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHtcbiAgU2VyaWFsaXphdGlvbkZvcm1hdCxcbiAgdHlwZSBTZXJpYWxpemF0aW9uRm9ybWF0VHlwZSxcbn0gZnJvbSAnLi9zZXJpYWxpemF0aW9uLmpzJztcblxuLyoqXG4gKiBDYXBhYmlsaXRpZXMgb2YgYSB3b3JrZmxvdyBydW4gYmFzZWQgb24gaXRzIGBAd29ya2Zsb3cvY29yZWAgdmVyc2lvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdW5DYXBhYmlsaXRpZXMge1xuICAvKipcbiAgICogVGhlIHNldCBvZiBzZXJpYWxpemF0aW9uIGZvcm1hdCBwcmVmaXhlcyB0aGF0IHRoZSB0YXJnZXQgcnVuIGNhbiBkZWNvZGUuXG4gICAqIFVzZSBgc3VwcG9ydGVkRm9ybWF0cy5oYXMoU2VyaWFsaXphdGlvbkZvcm1hdC5FTkNSWVBURUQpYCB0byBjaGVja1xuICAgKiBpZiBlbmNyeXB0aW9uIGlzIHN1cHBvcnRlZCwgZXRjLlxuICAgKi9cbiAgc3VwcG9ydGVkRm9ybWF0czogUmVhZG9ubHlTZXQ8U2VyaWFsaXphdGlvbkZvcm1hdFR5cGU+O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB0YXJnZXQgcnVuIGNhbiBkZWNvZGUgd2lyZS1mcmFtZWQgYnl0ZSBzdHJlYW1zLiBXaGVuIHRydWUsXG4gICAqIGJ5dGUgc3RyZWFtcyAoYHR5cGU6ICdieXRlcydgIFJlYWRhYmxlU3RyZWFtcyBwYXNzZWQgYWNyb3NzIGJvdW5kYXJpZXMpXG4gICAqIGFyZSB3cmFwcGVkIGluIGEgbGVuZ3RoLXByZWZpeGVkIGZyYW1lIGVudmVsb3BlIG9uIHRoZSB3aXJlIHNvIHRoZVxuICAgKiByZWFkZXIgY2FuIGlkZW50aWZ5IGNodW5rIGJvdW5kYXJpZXMsIHdoaWNoIGVuYWJsZXMgYXV0by1yZWNvbm5lY3RcbiAgICogb24gdHJhbnNpZW50IHN0cmVhbSBlcnJvcnMuIFdoZW4gZmFsc2UsIGJ5dGUgc3RyZWFtcyBhcmUgd3JpdHRlbiBhc1xuICAgKiByYXcgYnl0ZXMgKHRoZSBsZWdhY3kgZm9ybWF0KSBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIHJ1bnMuXG4gICAqL1xuICBmcmFtZWRCeXRlU3RyZWFtczogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNYXBzIHNlcmlhbGl6YXRpb24gZm9ybWF0IGlkZW50aWZpZXJzIHRvIHRoZSBtaW5pbXVtIGBAd29ya2Zsb3cvY29yZWBcbiAqIHZlcnNpb24gdGhhdCBpbnRyb2R1Y2VkIHN1cHBvcnQgZm9yIHRoZW0uIEZvcm1hdHMgbm90IGxpc3RlZCBoZXJlIGFyZVxuICogYXNzdW1lZCB0byBiZSBzdXBwb3J0ZWQgYnkgYWxsIHNwZWNWZXJzaW9uIDIgcnVucyAoZS5nLiwgYGRldmxgKS5cbiAqL1xuY29uc3QgRk9STUFUX1ZFUlNJT05fVEFCTEU6IFJlYWRvbmx5QXJyYXk8e1xuICBmb3JtYXQ6IFNlcmlhbGl6YXRpb25Gb3JtYXRUeXBlO1xuICBtaW5WZXJzaW9uOiBzdHJpbmc7XG59PiA9IFtcbiAgeyBmb3JtYXQ6IFNlcmlhbGl6YXRpb25Gb3JtYXQuRU5DUllQVEVELCBtaW5WZXJzaW9uOiAnNC4yLjAtYmV0YS42NCcgfSxcbiAgLy8gVE9ETyhyZWxlYXNlKTogdmVyaWZ5IHRoaXMgbWF0Y2hlcyB0aGUgYWN0dWFsIHZlcnNpb24gdGhhdCBzaGlwcyBwYXlsb2FkXG4gIC8vIGNvbXByZXNzaW9uLiBJZiBhIFwiVmVyc2lvbiBQYWNrYWdlcyAoYmV0YSlcIiBQUiBtZXJnZXMgYmVmb3JlIHRoaXMgY2hhbmdlLFxuICAvLyBidW1wIHRvIHRoZSBuZXh0IGJldGEuIEEgdG9vLWxvdyBjdXRvZmYgbWFrZXMgbmV3IHByb2R1Y2VycyB3cml0ZVxuICAvLyBjb21wcmVzc2VkIHBheWxvYWRzIHRvIGNvbnN1bWVycyB0aGF0IGNhbm5vdCBkZWNvbXByZXNzIHRoZW07IHRvby1oaWdoXG4gIC8vIG1lcmVseSBkZWxheXMgdGhlIG9wdGltaXphdGlvbiAoc2FmZSkuIGd6aXAgYW5kIHpzdGQgc2hpcCB0b2dldGhlciwgc29cbiAgLy8gdGhleSBzaGFyZSBhIG1pbiB2ZXJzaW9uOiBhIHJ1biB0aGF0IGNhbiByZWFkIG9uZSBjYW4gcmVhZCBib3RoLlxuICB7IGZvcm1hdDogU2VyaWFsaXphdGlvbkZvcm1hdC5HWklQLCBtaW5WZXJzaW9uOiAnNS4wLjAtYmV0YS4xOCcgfSxcbiAgeyBmb3JtYXQ6IFNlcmlhbGl6YXRpb25Gb3JtYXQuWlNURCwgbWluVmVyc2lvbjogJzUuMC4wLWJldGEuMTgnIH0sXG4gIC8vIFRPRE8ocmVsZWFzZSk6IHZlcmlmeSB0aGlzIG1hdGNoZXMgdGhlIGFjdHVhbCB2ZXJzaW9uIHRoYXQgc2hpcHMgc2VhbGVkLWJveFxuICAvLyBlbmNyeXB0aW9uLiBJZiBhIFwiVmVyc2lvbiBQYWNrYWdlcyAoYmV0YSlcIiBQUiBtZXJnZXMgYmVmb3JlIHRoaXMgY2hhbmdlLFxuICAvLyBidW1wIHRvIHRoZSBuZXh0IGJldGEuIFVubGlrZSB0aGUgZW50cmllcyBhYm92ZSwgYSB3cm9uZyBjdXRvZmYgaGVyZSBpc1xuICAvLyBub3QgYSBjb3JyZWN0bmVzcyBoYXphcmQ6IHByb2R1Y2VycyBnYXRlIGBlbmNwYCBvbiB0aGUgdGFyZ2V0IHJ1biBjYXJyeWluZ1xuICAvLyBhbiBgZW5jcnlwdGlvblB1YmxpY0tleWAsIG5vdCBvbiB0aGlzIHRhYmxlIChzZWUgSGlzdG9yeSBhYm92ZSkuXG4gIHsgZm9ybWF0OiBTZXJpYWxpemF0aW9uRm9ybWF0LlNFQUxFRCwgbWluVmVyc2lvbjogJzUuMC4wLWJldGEuMzcnIH0sXG4gIC8vIEZ1dHVyZSBlbnRyaWVzOlxuICAvLyB7IGZvcm1hdDogU2VyaWFsaXphdGlvbkZvcm1hdC5DQk9SLCBtaW5WZXJzaW9uOiAnNS54LnknIH0sXG4gIC8vIHsgZm9ybWF0OiBTZXJpYWxpemF0aW9uRm9ybWF0LkVOQ1JZUFRFRF9WMiwgbWluVmVyc2lvbjogJzUueC55JyB9LFxuXTtcblxuLyoqXG4gKiBNYXBzIG5vbi1mb3JtYXQgY2FwYWJpbGl0eSBmbGFncyAoYm9vbGVhbnMgb24gYFJ1bkNhcGFiaWxpdGllc2ApIHRvIHRoZVxuICogbWluaW11bSBgQHdvcmtmbG93L2NvcmVgIHZlcnNpb24gdGhhdCBpbnRyb2R1Y2VkIHN1cHBvcnQgZm9yIHRoZW0uXG4gKi9cbmNvbnN0IENBUEFCSUxJVFlfVkVSU0lPTl9UQUJMRTogUmVhZG9ubHlBcnJheTx7XG4gIGNhcGFiaWxpdHk6IGtleW9mIE9taXQ8UnVuQ2FwYWJpbGl0aWVzLCAnc3VwcG9ydGVkRm9ybWF0cyc+O1xuICBtaW5WZXJzaW9uOiBzdHJpbmc7XG59PiA9IFtcbiAgLy8gVE9ETyhyZWxlYXNlKTogdmVyaWZ5IHRoaXMgbWF0Y2hlcyB0aGUgYWN0dWFsIHZlcnNpb24gdGhhdCBzaGlwcyBieXRlLXN0cmVhbVxuICAvLyBmcmFtaW5nLiBJZiBhIFwiVmVyc2lvbiBQYWNrYWdlcyAoYmV0YSlcIiBQUiBtZXJnZXMgYmVmb3JlIHRoaXMgY2hhbmdlLCBidW1wXG4gIC8vIHRvIHRoZSBuZXh0IGJldGEuIEEgdG9vLWxvdyBjdXRvZmYgbWFrZXMgbmV3IHByb2R1Y2VycyB3cml0ZSBmcmFtZWQgYnl0ZXMgdG9cbiAgLy8gY29uc3VtZXJzIHRoYXQgY2Fubm90IHVuZnJhbWUgdGhlbSAoc2lsZW50IGNvcnJ1cHRpb24pOyB0b28taGlnaCBtZXJlbHlcbiAgLy8gZGVsYXlzIHRoZSBvcHRpbWl6YXRpb24gKHNhZmUpLlxuICB7IGNhcGFiaWxpdHk6ICdmcmFtZWRCeXRlU3RyZWFtcycsIG1pblZlcnNpb246ICc1LjAuMC1iZXRhLjE1JyB9LFxuICAvLyBOT1RFOiBsYXp5IGhvb2sgcmVzdW1lIChcImRvZXMgdGhlIGNvbnN1bWVyIHJlLWVuc3VyZSBgaG9va19yZWNlaXZlZGAgZnJvbVxuICAvLyB0aGUgcXVldWUgbWVzc2FnZSdzIGBob29rSW5wdXRgP1wiKSBpcyBpbnRlbnRpb25hbGx5IE5PVCBnYXRlZCBoZXJlLiBBXG4gIC8vIHZlcnNpb24tY29tcGFyZSBhZ2FpbnN0IGEgcHJlZGljdGVkIHJlbGVhc2UgY3V0b2ZmIGlzIGEgZ3Vlc3M7IGluc3RlYWQgdGhlXG4gIC8vIHJ1bidzIGNyZWF0aW5nIGRlcGxveW1lbnQgc3RhbXBzIGFuIGV4cGxpY2l0IGBob29rUmVzdW1lSW5wdXRWZXJzaW9uYFxuICAvLyBtYXJrZXIgaW50byBpdHMgZXhlY3V0aW9uIGNvbnRleHQsIHdoaWNoIHRoZSBzZXJ2ZXIgbWlycm9ycyBvbnRvIHRoZSBob29rJ3NcbiAgLy8gcmVzdW1lQ29udGV4dC4gYHJlc3VtZUhvb2soKWAgZ2F0ZXMgdGhlIHBhcmFsbGVsIGZhc3QgcGF0aCBvbiB0aGF0IG1hcmtlci5cbl07XG5cbi8qKlxuICogVGhlIHNldCBvZiBmb3JtYXRzIHN1cHBvcnRlZCBieSBhbGwgc3BlY1ZlcnNpb24gMiBydW5zLCByZWdhcmRsZXNzIG9mXG4gKiBgQHdvcmtmbG93L2NvcmVgIHZlcnNpb24uIFRoZXNlIGFyZSB0aGUgYmFzZWxpbmUgZm9ybWF0cyB0aGF0IHdlcmUgcHJlc2VudFxuICogZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHNwZWNWZXJzaW9uIDIgcHJvdG9jb2wuXG4gKi9cbmNvbnN0IEJBU0VMSU5FX0ZPUk1BVFM6IFJlYWRvbmx5U2V0PFNlcmlhbGl6YXRpb25Gb3JtYXRUeXBlPiA9IG5ldyBTZXQoW1xuICBTZXJpYWxpemF0aW9uRm9ybWF0LkRFVkFMVUVfVjEsXG5dKTtcblxuLyoqXG4gKiBMb29rIHVwIHdoYXQgc2VyaWFsaXphdGlvbiBjYXBhYmlsaXRpZXMgYSB3b3JrZmxvdyBydW4gc3VwcG9ydHMgYmFzZWQgb25cbiAqIGl0cyBgQHdvcmtmbG93L2NvcmVgIHZlcnNpb24gc3RyaW5nIChmcm9tIGBleGVjdXRpb25Db250ZXh0LndvcmtmbG93Q29yZVZlcnNpb25gKS5cbiAqXG4gKiBXaGVuIHRoZSB2ZXJzaW9uIGlzIGB1bmRlZmluZWRgLCBub3QgYSBzdHJpbmcsIG9yIG5vdCBhIHZhbGlkIHNlbXZlciBzdHJpbmdcbiAqIChlLmcuIG9sZGVyIHJ1bnMgdGhhdCBwcmVkYXRlIHRoZSBmaWVsZCwgb3IgY29ycnVwdGVkIG1ldGFkYXRhKSxcbiAqIHdlIGFzc3VtZSB0aGUgbW9zdCBjb25zZXJ2YXRpdmUgY2FwYWJpbGl0aWVzIChiYXNlbGluZSBmb3JtYXRzIG9ubHksXG4gKiBub24tZm9ybWF0IGNhcGFiaWxpdGllcyBhbGwgYGZhbHNlYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSdW5DYXBhYmlsaXRpZXMoXG4gIHdvcmtmbG93Q29yZVZlcnNpb246IHN0cmluZyB8IHVuZGVmaW5lZFxuKTogUnVuQ2FwYWJpbGl0aWVzIHtcbiAgaWYgKCF3b3JrZmxvd0NvcmVWZXJzaW9uIHx8ICFzZW12ZXIudmFsaWQod29ya2Zsb3dDb3JlVmVyc2lvbikpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3VwcG9ydGVkRm9ybWF0czogQkFTRUxJTkVfRk9STUFUUyxcbiAgICAgIGZyYW1lZEJ5dGVTdHJlYW1zOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgZm9ybWF0cyA9IG5ldyBTZXQ8U2VyaWFsaXphdGlvbkZvcm1hdFR5cGU+KEJBU0VMSU5FX0ZPUk1BVFMpO1xuXG4gIGZvciAoY29uc3QgeyBmb3JtYXQsIG1pblZlcnNpb24gfSBvZiBGT1JNQVRfVkVSU0lPTl9UQUJMRSkge1xuICAgIGlmIChzZW12ZXIuZ3RlKHdvcmtmbG93Q29yZVZlcnNpb24sIG1pblZlcnNpb24pKSB7XG4gICAgICBmb3JtYXRzLmFkZChmb3JtYXQpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogUnVuQ2FwYWJpbGl0aWVzID0ge1xuICAgIHN1cHBvcnRlZEZvcm1hdHM6IGZvcm1hdHMsXG4gICAgZnJhbWVkQnl0ZVN0cmVhbXM6IGZhbHNlLFxuICB9O1xuXG4gIGZvciAoY29uc3QgeyBjYXBhYmlsaXR5LCBtaW5WZXJzaW9uIH0gb2YgQ0FQQUJJTElUWV9WRVJTSU9OX1RBQkxFKSB7XG4gICAgaWYgKHNlbXZlci5ndGUod29ya2Zsb3dDb3JlVmVyc2lvbiwgbWluVmVyc2lvbikpIHtcbiAgICAgIHJlc3VsdFtjYXBhYmlsaXR5XSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
@@ -5,7 +5,7 @@
5
5
  * code frame at our `throw` site inside `@workflow/core`, which is useless
6
6
  * to the user.
7
7
  *
8
- * No-op on engines that don't expose `Error.captureStackTrace` the stack
8
+ * No-op on engines that don't expose `Error.captureStackTrace`: the stack
9
9
  * degrades gracefully to the default behavior.
10
10
  *
11
11
  * Kept in its own tiny module so callers that can't participate in the
@@ -5,7 +5,7 @@
5
5
  * code frame at our `throw` site inside `@workflow/core`, which is useless
6
6
  * to the user.
7
7
  *
8
- * No-op on engines that don't expose `Error.captureStackTrace` the stack
8
+ * No-op on engines that don't expose `Error.captureStackTrace`: the stack
9
9
  * degrades gracefully to the default behavior.
10
10
  *
11
11
  * Kept in its own tiny module so callers that can't participate in the
@@ -18,4 +18,4 @@ stackStartFn) {
18
18
  const capture = Error.captureStackTrace;
19
19
  capture?.(err, stackStartFn);
20
20
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwdHVyZS1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jYXB0dXJlLXN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLEdBQVU7QUFDVix3RkFBd0Y7QUFDeEYsWUFBc0I7SUFFdEIsTUFBTSxPQUFPLEdBQ1gsS0FHRCxDQUFDLGlCQUFpQixDQUFDO0lBQ3BCLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBWOC1vbmx5IChOb2RlLCBCdW4sIENocm9tZSwgRGVubykuIFJld3JpdGVzIGBlcnIuc3RhY2tgIHNvIHRoZSB0b3AgZnJhbWUgaXNcbiAqIHRoZSBjYWxsZXIgb2YgYHN0YWNrU3RhcnRGbmAgaW5zdGVhZCBvZiB0aGUgZnJhbWV3b3JrIGZ1bmN0aW9uIHRoYXQgdGhyZXcuXG4gKiBXaXRob3V0IHRoaXMsIHRlcm1pbmFsIG92ZXJsYXlzIChOZXh0LmpzLCBUdXJib3BhY2ssIFZTIENvZGUpIHJlbmRlciB0aGVcbiAqIGNvZGUgZnJhbWUgYXQgb3VyIGB0aHJvd2Agc2l0ZSBpbnNpZGUgYEB3b3JrZmxvdy9jb3JlYCwgd2hpY2ggaXMgdXNlbGVzc1xuICogdG8gdGhlIHVzZXIuXG4gKlxuICogTm8tb3Agb24gZW5naW5lcyB0aGF0IGRvbid0IGV4cG9zZSBgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2VgIOKAlCB0aGUgc3RhY2tcbiAqIGRlZ3JhZGVzIGdyYWNlZnVsbHkgdG8gdGhlIGRlZmF1bHQgYmVoYXZpb3IuXG4gKlxuICogS2VwdCBpbiBpdHMgb3duIHRpbnkgbW9kdWxlIHNvIGNhbGxlcnMgdGhhdCBjYW4ndCBwYXJ0aWNpcGF0ZSBpbiB0aGVcbiAqIGBjb250ZXh0LWVycm9ycy50c2Ag4oaUIGB3b3JrZmxvdy9nZXQtd29ya2Zsb3ctbWV0YWRhdGEudHNgIGltcG9ydCBjeWNsZSBjYW5cbiAqIHN0aWxsIHB1bGwgaW4gdGhlIGhlbHBlciB3aXRob3V0IHB1bGxpbmcgaW4gdGhlIGZ1bGwgZXJyb3IgY2xhc3Nlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZGlyZWN0U3RhY2tUb0NhbGxlcihcbiAgZXJyOiBFcnJvcixcbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvY29tcGxleGl0eS9ub0Jhbm5lZFR5cGVzOiBzaWduYXR1cmUgbWF0Y2hlcyBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZVxuICBzdGFja1N0YXJ0Rm46IEZ1bmN0aW9uXG4pOiB2b2lkIHtcbiAgY29uc3QgY2FwdHVyZSA9IChcbiAgICBFcnJvciBhcyB1bmtub3duIGFzIHtcbiAgICAgIGNhcHR1cmVTdGFja1RyYWNlPzogKHRhcmdldDogb2JqZWN0LCBmbjogRnVuY3Rpb24pID0+IHZvaWQ7XG4gICAgfVxuICApLmNhcHR1cmVTdGFja1RyYWNlO1xuICBjYXB0dXJlPy4oZXJyLCBzdGFja1N0YXJ0Rm4pO1xufVxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwdHVyZS1zdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jYXB0dXJlLXN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLEdBQVU7QUFDVix3RkFBd0Y7QUFDeEYsWUFBc0I7SUFFdEIsTUFBTSxPQUFPLEdBQ1gsS0FHRCxDQUFDLGlCQUFpQixDQUFDO0lBQ3BCLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBWOC1vbmx5IChOb2RlLCBCdW4sIENocm9tZSwgRGVubykuIFJld3JpdGVzIGBlcnIuc3RhY2tgIHNvIHRoZSB0b3AgZnJhbWUgaXNcbiAqIHRoZSBjYWxsZXIgb2YgYHN0YWNrU3RhcnRGbmAgaW5zdGVhZCBvZiB0aGUgZnJhbWV3b3JrIGZ1bmN0aW9uIHRoYXQgdGhyZXcuXG4gKiBXaXRob3V0IHRoaXMsIHRlcm1pbmFsIG92ZXJsYXlzIChOZXh0LmpzLCBUdXJib3BhY2ssIFZTIENvZGUpIHJlbmRlciB0aGVcbiAqIGNvZGUgZnJhbWUgYXQgb3VyIGB0aHJvd2Agc2l0ZSBpbnNpZGUgYEB3b3JrZmxvdy9jb3JlYCwgd2hpY2ggaXMgdXNlbGVzc1xuICogdG8gdGhlIHVzZXIuXG4gKlxuICogTm8tb3Agb24gZW5naW5lcyB0aGF0IGRvbid0IGV4cG9zZSBgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2VgOiB0aGUgc3RhY2tcbiAqIGRlZ3JhZGVzIGdyYWNlZnVsbHkgdG8gdGhlIGRlZmF1bHQgYmVoYXZpb3IuXG4gKlxuICogS2VwdCBpbiBpdHMgb3duIHRpbnkgbW9kdWxlIHNvIGNhbGxlcnMgdGhhdCBjYW4ndCBwYXJ0aWNpcGF0ZSBpbiB0aGVcbiAqIGBjb250ZXh0LWVycm9ycy50c2Ag4oaUIGB3b3JrZmxvdy9nZXQtd29ya2Zsb3ctbWV0YWRhdGEudHNgIGltcG9ydCBjeWNsZSBjYW5cbiAqIHN0aWxsIHB1bGwgaW4gdGhlIGhlbHBlciB3aXRob3V0IHB1bGxpbmcgaW4gdGhlIGZ1bGwgZXJyb3IgY2xhc3Nlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZGlyZWN0U3RhY2tUb0NhbGxlcihcbiAgZXJyOiBFcnJvcixcbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvY29tcGxleGl0eS9ub0Jhbm5lZFR5cGVzOiBzaWduYXR1cmUgbWF0Y2hlcyBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZVxuICBzdGFja1N0YXJ0Rm46IEZ1bmN0aW9uXG4pOiB2b2lkIHtcbiAgY29uc3QgY2FwdHVyZSA9IChcbiAgICBFcnJvciBhcyB1bmtub3duIGFzIHtcbiAgICAgIGNhcHR1cmVTdGFja1RyYWNlPzogKHRhcmdldDogb2JqZWN0LCBmbjogRnVuY3Rpb24pID0+IHZvaWQ7XG4gICAgfVxuICApLmNhcHR1cmVTdGFja1RyYWNlO1xuICBjYXB0dXJlPy4oZXJyLCBzdGFja1N0YXJ0Rm4pO1xufVxuIl19
@@ -19,30 +19,30 @@
19
19
  */
20
20
  export declare function registerSerializationClass(classId: string, cls: Function): void;
21
21
  /**
22
- * Stable, well-known registry id for the SDK's `Run` class.
22
+ * Stable, well-known registry ID for the SDK's `Run` class.
23
23
  *
24
- * The SWC plugin auto-registers `Run` under a *path-derived* id (e.g.
24
+ * The SWC plugin auto-registers `Run` under a *path-derived* ID (e.g.
25
25
  * `class//./node_modules/@workflow/core/dist/runtime/run//Run`), which
26
26
  * varies with the app's dependency layout and bundler. Host-side code
27
27
  * that needs to construct `Run` instances inside the workflow VM (e.g.
28
28
  * the hook event consumer resolving `hook.getConflict()`) cannot know
29
- * that id statically, so the workflow-mode `create-hook` module also
30
- * aliases the bundle's `Run` under this stable id at evaluation time.
29
+ * that ID statically, so the workflow-mode `create-hook` module also
30
+ * aliases the bundle's `Run` under this stable ID at evaluation time.
31
31
  *
32
- * The `workflow` pseudo-path cannot collide with plugin-derived ids,
32
+ * The `workflow` pseudo-path cannot collide with plugin-derived IDs,
33
33
  * which always use real relative module paths (`./…` / `../…`).
34
34
  */
35
35
  export declare const RUN_CLASS_ID = "class//workflow//Run";
36
36
  /**
37
- * Register an additional registry id for a class without touching its
37
+ * Register an additional registry ID for a class without touching its
38
38
  * `classId` property.
39
39
  *
40
40
  * Unlike {@link registerSerializationClass}, this is safe to call for a
41
41
  * class the SWC plugin has already registered: the plugin's inlined IIFE
42
42
  * defines `classId` as non-configurable, so a second `defineProperty`
43
- * would throw. Aliasing only adds a registry entry the class keeps
43
+ * would throw. Aliasing only adds a registry entry: the class keeps
44
44
  * serializing under its primary (path-derived) id, while lookups succeed
45
- * under both.
45
+ * under both IDs.
46
46
  *
47
47
  * Registration is per-global by construction: evaluated inside the
48
48
  * workflow VM it registers the VM's compiled class on the VM's registry;
@@ -45,30 +45,30 @@ export function registerSerializationClass(classId, cls) {
45
45
  });
46
46
  }
47
47
  /**
48
- * Stable, well-known registry id for the SDK's `Run` class.
48
+ * Stable, well-known registry ID for the SDK's `Run` class.
49
49
  *
50
- * The SWC plugin auto-registers `Run` under a *path-derived* id (e.g.
50
+ * The SWC plugin auto-registers `Run` under a *path-derived* ID (e.g.
51
51
  * `class//./node_modules/@workflow/core/dist/runtime/run//Run`), which
52
52
  * varies with the app's dependency layout and bundler. Host-side code
53
53
  * that needs to construct `Run` instances inside the workflow VM (e.g.
54
54
  * the hook event consumer resolving `hook.getConflict()`) cannot know
55
- * that id statically, so the workflow-mode `create-hook` module also
56
- * aliases the bundle's `Run` under this stable id at evaluation time.
55
+ * that ID statically, so the workflow-mode `create-hook` module also
56
+ * aliases the bundle's `Run` under this stable ID at evaluation time.
57
57
  *
58
- * The `workflow` pseudo-path cannot collide with plugin-derived ids,
58
+ * The `workflow` pseudo-path cannot collide with plugin-derived IDs,
59
59
  * which always use real relative module paths (`./…` / `../…`).
60
60
  */
61
61
  export const RUN_CLASS_ID = 'class//workflow//Run';
62
62
  /**
63
- * Register an additional registry id for a class without touching its
63
+ * Register an additional registry ID for a class without touching its
64
64
  * `classId` property.
65
65
  *
66
66
  * Unlike {@link registerSerializationClass}, this is safe to call for a
67
67
  * class the SWC plugin has already registered: the plugin's inlined IIFE
68
68
  * defines `classId` as non-configurable, so a second `defineProperty`
69
- * would throw. Aliasing only adds a registry entry the class keeps
69
+ * would throw. Aliasing only adds a registry entry: the class keeps
70
70
  * serializing under its primary (path-derived) id, while lookups succeed
71
- * under both.
71
+ * under both IDs.
72
72
  *
73
73
  * Registration is per-global by construction: evaluated inside the
74
74
  * workflow VM it registers the VM's compiled class on the VM's registry;
@@ -94,4 +94,4 @@ export function getSerializationClass(classId, global
94
94
  ) {
95
95
  return getRegistry(global).get(classId);
96
96
  }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Mtc2VyaWFsaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jbGFzcy1zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUt2RDs7Ozs7R0FLRztBQUNILFNBQVMsV0FBVyxDQUFDLFNBQThCLFVBQVU7SUFDM0QsTUFBTSxDQUFDLEdBQUcsTUFBYSxDQUFDO0lBQ3hCLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQyx1QkFBdUIsQ0FBOEIsQ0FBQztJQUN2RSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsdUJBQXVCLENBQUMsR0FBRyxRQUFRLENBQUM7SUFDeEMsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILHNHQUFzRztBQUN0RyxNQUFNLFVBQVUsMEJBQTBCLENBQUMsT0FBZSxFQUFFLEdBQWE7SUFDdkUsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNoQyw2Q0FBNkM7SUFDN0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFO1FBQ3BDLEtBQUssRUFBRSxPQUFPO1FBQ2QsUUFBUSxFQUFFLEtBQUs7UUFDZixVQUFVLEVBQUUsS0FBSztRQUNqQixZQUFZLEVBQUUsS0FBSztLQUNwQixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxzQkFBc0IsQ0FBQztBQUVuRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLE9BQWU7QUFDZixzR0FBc0c7QUFDdEcsR0FBYSxFQUNiLFNBQThCLFVBQVU7SUFFeEMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxPQUFlLEVBQ2YsTUFBMkI7QUFDM0Isc0dBQXNHOztJQUV0RyxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2xhc3Mgc2VyaWFsaXphdGlvbiB1dGlsaXRpZXMuXG4gKlxuICogVGhpcyBtb2R1bGUgaXMgc2VwYXJhdGUgZnJvbSBwcml2YXRlLnRzIHRvIGF2b2lkIHB1bGxpbmcgaW4gTm9kZS5qcy1vbmx5XG4gKiBkZXBlbmRlbmNpZXMgKGxpa2UgYXN5bmNfaG9va3MgdmlhIGdldC1jbG9zdXJlLXZhcnMudHMpIHdoZW4gdXNlZCBpblxuICogd29ya2Zsb3cgYnVuZGxlcy5cbiAqL1xuXG5pbXBvcnQgeyBXT1JLRkxPV19DTEFTU19SRUdJU1RSWSB9IGZyb20gJy4vc3ltYm9scy5qcyc7XG5cbi8vIGJpb21lLWlnbm9yZSBsaW50L2NvbXBsZXhpdHkvbm9CYW5uZWRUeXBlczogV2UgbmVlZCB0byB1c2UgRnVuY3Rpb24gdG8gcmVwcmVzZW50IGNsYXNzIGNvbnN0cnVjdG9yc1xudHlwZSBDbGFzc1JlZ2lzdHJ5ID0gTWFwPHN0cmluZywgRnVuY3Rpb24+O1xuXG4vKipcbiAqIEdldCBvciBjcmVhdGUgdGhlIGNsYXNzIHJlZ2lzdHJ5IG9uIHRoZSBnaXZlbiBnbG9iYWwgb2JqZWN0LlxuICogVGhpcyB3b3JrcyBpc29tb3JwaGljYWxseSBpbiBib3RoIHN0ZXAgbW9kZSAobWFpbiBjb250ZXh0KSBhbmQgd29ya2Zsb3cgbW9kZSAoVk0gY29udGV4dCkuXG4gKlxuICogQHBhcmFtIGdsb2JhbCAtIFRoZSBnbG9iYWwgb2JqZWN0IHRvIHVzZS4gRGVmYXVsdHMgdG8gZ2xvYmFsVGhpcywgYnV0IGNhbiBiZSBhIFZNJ3MgZ2xvYmFsLlxuICovXG5mdW5jdGlvbiBnZXRSZWdpc3RyeShnbG9iYWw6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBnbG9iYWxUaGlzKTogQ2xhc3NSZWdpc3RyeSB7XG4gIGNvbnN0IGcgPSBnbG9iYWwgYXMgYW55O1xuICBsZXQgcmVnaXN0cnkgPSBnW1dPUktGTE9XX0NMQVNTX1JFR0lTVFJZXSBhcyBDbGFzc1JlZ2lzdHJ5IHwgdW5kZWZpbmVkO1xuICBpZiAoIXJlZ2lzdHJ5KSB7XG4gICAgcmVnaXN0cnkgPSBuZXcgTWFwKCk7XG4gICAgZ1tXT1JLRkxPV19DTEFTU19SRUdJU1RSWV0gPSByZWdpc3RyeTtcbiAgfVxuICByZXR1cm4gcmVnaXN0cnk7XG59XG5cbi8qKlxuICogUmVnaXN0ZXIgYSBjbGFzcyBjb25zdHJ1Y3RvciBmb3Igc2VyaWFsaXphdGlvbi5cbiAqIFRoaXMgYWxsb3dzIGNsYXNzIGNvbnN0cnVjdG9ycyB0byBiZSBkZXNlcmlhbGl6ZWQgYnkgbG9va2luZyB1cCB0aGUgY2xhc3NJZC5cbiAqXG4gKiBOb3RlOiBUaGUgU1dDIHBsdWdpbiBub3cgaW5saW5lcyBlcXVpdmFsZW50IHJlZ2lzdHJhdGlvbiBsb2dpYyBhcyBhXG4gKiBzZWxmLWNvbnRhaW5lZCBJSUZFICh1c2luZyB0aGUgc2FtZSBnbG9iYWxUaGlzIFN5bWJvbC1rZXllZCByZWdpc3RyeSksXG4gKiBzbyB0aGlzIGZ1bmN0aW9uIGlzIG5vIGxvbmdlciBpbXBvcnRlZCBieSBnZW5lcmF0ZWQgY29kZS4gSXQgaXMgcmV0YWluZWRcbiAqIGZvciBwcm9ncmFtbWF0aWMgdXNlIGFuZCB0ZXN0aW5nLlxuICpcbiAqIEFsc28gc2V0cyB0aGUgYGNsYXNzSWRgIHByb3BlcnR5IG9uIHRoZSBjbGFzcyBzbyB0aGUgc2VyaWFsaXplciBjYW4gZmluZCBpdFxuICogd2hlbiBzZXJpYWxpemluZyBpbnN0YW5jZXMgKGUuZy4sIHN0ZXAgcmV0dXJuIHZhbHVlcykuXG4gKi9cbi8vIGJpb21lLWlnbm9yZSBsaW50L2NvbXBsZXhpdHkvbm9CYW5uZWRUeXBlczogV2UgbmVlZCB0byB1c2UgRnVuY3Rpb24gdG8gcmVwcmVzZW50IGNsYXNzIGNvbnN0cnVjdG9yc1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyU2VyaWFsaXphdGlvbkNsYXNzKGNsYXNzSWQ6IHN0cmluZywgY2xzOiBGdW5jdGlvbikge1xuICBnZXRSZWdpc3RyeSgpLnNldChjbGFzc0lkLCBjbHMpO1xuICAvLyBTZXQgY2xhc3NJZCBvbiB0aGUgY2xhc3MgZm9yIHNlcmlhbGl6YXRpb25cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNscywgJ2NsYXNzSWQnLCB7XG4gICAgdmFsdWU6IGNsYXNzSWQsXG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gIH0pO1xufVxuXG4vKipcbiAqIFN0YWJsZSwgd2VsbC1rbm93biByZWdpc3RyeSBpZCBmb3IgdGhlIFNESydzIGBSdW5gIGNsYXNzLlxuICpcbiAqIFRoZSBTV0MgcGx1Z2luIGF1dG8tcmVnaXN0ZXJzIGBSdW5gIHVuZGVyIGEgKnBhdGgtZGVyaXZlZCogaWQgKGUuZy5cbiAqIGBjbGFzcy8vLi9ub2RlX21vZHVsZXMvQHdvcmtmbG93L2NvcmUvZGlzdC9ydW50aW1lL3J1bi8vUnVuYCksIHdoaWNoXG4gKiB2YXJpZXMgd2l0aCB0aGUgYXBwJ3MgZGVwZW5kZW5jeSBsYXlvdXQgYW5kIGJ1bmRsZXIuIEhvc3Qtc2lkZSBjb2RlXG4gKiB0aGF0IG5lZWRzIHRvIGNvbnN0cnVjdCBgUnVuYCBpbnN0YW5jZXMgaW5zaWRlIHRoZSB3b3JrZmxvdyBWTSAoZS5nLlxuICogdGhlIGhvb2sgZXZlbnQgY29uc3VtZXIgcmVzb2x2aW5nIGBob29rLmdldENvbmZsaWN0KClgKSBjYW5ub3Qga25vd1xuICogdGhhdCBpZCBzdGF0aWNhbGx5LCBzbyB0aGUgd29ya2Zsb3ctbW9kZSBgY3JlYXRlLWhvb2tgIG1vZHVsZSBhbHNvXG4gKiBhbGlhc2VzIHRoZSBidW5kbGUncyBgUnVuYCB1bmRlciB0aGlzIHN0YWJsZSBpZCBhdCBldmFsdWF0aW9uIHRpbWUuXG4gKlxuICogVGhlIGB3b3JrZmxvd2AgcHNldWRvLXBhdGggY2Fubm90IGNvbGxpZGUgd2l0aCBwbHVnaW4tZGVyaXZlZCBpZHMsXG4gKiB3aGljaCBhbHdheXMgdXNlIHJlYWwgcmVsYXRpdmUgbW9kdWxlIHBhdGhzIChgLi/igKZgIC8gYC4uL+KApmApLlxuICovXG5leHBvcnQgY29uc3QgUlVOX0NMQVNTX0lEID0gJ2NsYXNzLy93b3JrZmxvdy8vUnVuJztcblxuLyoqXG4gKiBSZWdpc3RlciBhbiBhZGRpdGlvbmFsIHJlZ2lzdHJ5IGlkIGZvciBhIGNsYXNzIHdpdGhvdXQgdG91Y2hpbmcgaXRzXG4gKiBgY2xhc3NJZGAgcHJvcGVydHkuXG4gKlxuICogVW5saWtlIHtAbGluayByZWdpc3RlclNlcmlhbGl6YXRpb25DbGFzc30sIHRoaXMgaXMgc2FmZSB0byBjYWxsIGZvciBhXG4gKiBjbGFzcyB0aGUgU1dDIHBsdWdpbiBoYXMgYWxyZWFkeSByZWdpc3RlcmVkOiB0aGUgcGx1Z2luJ3MgaW5saW5lZCBJSUZFXG4gKiBkZWZpbmVzIGBjbGFzc0lkYCBhcyBub24tY29uZmlndXJhYmxlLCBzbyBhIHNlY29uZCBgZGVmaW5lUHJvcGVydHlgXG4gKiB3b3VsZCB0aHJvdy4gQWxpYXNpbmcgb25seSBhZGRzIGEgcmVnaXN0cnkgZW50cnkg4oCUIHRoZSBjbGFzcyBrZWVwc1xuICogc2VyaWFsaXppbmcgdW5kZXIgaXRzIHByaW1hcnkgKHBhdGgtZGVyaXZlZCkgaWQsIHdoaWxlIGxvb2t1cHMgc3VjY2VlZFxuICogdW5kZXIgYm90aC5cbiAqXG4gKiBSZWdpc3RyYXRpb24gaXMgcGVyLWdsb2JhbCBieSBjb25zdHJ1Y3Rpb246IGV2YWx1YXRlZCBpbnNpZGUgdGhlXG4gKiB3b3JrZmxvdyBWTSBpdCByZWdpc3RlcnMgdGhlIFZNJ3MgY29tcGlsZWQgY2xhc3Mgb24gdGhlIFZNJ3MgcmVnaXN0cnk7XG4gKiBldmFsdWF0ZWQgb24gdGhlIGhvc3QgaXQgcmVnaXN0ZXJzIHRoZSBob3N0IGNsYXNzIG9uIHRoZSBob3N0J3NcbiAqIHJlZ2lzdHJ5LiBFYWNoIGNvbnRleHQgcmVzb2x2ZXMgaXRzIG93biBjb3JyZWN0IHZhcmlhbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbGlhc1NlcmlhbGl6YXRpb25DbGFzcyhcbiAgY2xhc3NJZDogc3RyaW5nLFxuICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb21wbGV4aXR5L25vQmFubmVkVHlwZXM6IFdlIG5lZWQgdG8gdXNlIEZ1bmN0aW9uIHRvIHJlcHJlc2VudCBjbGFzcyBjb25zdHJ1Y3RvcnNcbiAgY2xzOiBGdW5jdGlvbixcbiAgZ2xvYmFsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gZ2xvYmFsVGhpc1xuKSB7XG4gIGdldFJlZ2lzdHJ5KGdsb2JhbCkuc2V0KGNsYXNzSWQsIGNscyk7XG59XG5cbi8qKlxuICogRmluZCBhIHJlZ2lzdGVyZWQgY2xhc3MgY29uc3RydWN0b3IgYnkgSUQgKHVzZWQgZHVyaW5nIGRlc2VyaWFsaXphdGlvbilcbiAqXG4gKiBAcGFyYW0gY2xhc3NJZCAtIFRoZSBjbGFzcyBJRCB0byBsb29rIHVwXG4gKiBAcGFyYW0gZ2xvYmFsIC0gVGhlIGdsb2JhbCBvYmplY3QgdG8gY2hlY2suIFRoaXMgZW5zdXJlcyB3b3JrZmxvdyBjb2RlIHJ1bm5pbmdcbiAqICAgICAgICAgICAgICAgICBpbiBhIFZNIG9ubHkgYWNjZXNzZXMgY2xhc3NlcyByZWdpc3RlcmVkIG9uIHRoZSBWTSdzIGdsb2JhbCxcbiAqICAgICAgICAgICAgICAgICBtYXRjaGluZyBwcm9kdWN0aW9uIHNlcnZlcmxlc3MgYmVoYXZpb3Igd2hlcmUgd29ya2Zsb3cgY29kZVxuICogICAgICAgICAgICAgICAgIHJ1bnMgaW4gaXNvbGF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VyaWFsaXphdGlvbkNsYXNzKFxuICBjbGFzc0lkOiBzdHJpbmcsXG4gIGdsb2JhbDogUmVjb3JkPHN0cmluZywgYW55PlxuICAvLyBiaW9tZS1pZ25vcmUgbGludC9jb21wbGV4aXR5L25vQmFubmVkVHlwZXM6IFdlIG5lZWQgdG8gdXNlIEZ1bmN0aW9uIHRvIHJlcHJlc2VudCBjbGFzcyBjb25zdHJ1Y3RvcnNcbik6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGdldFJlZ2lzdHJ5KGdsb2JhbCkuZ2V0KGNsYXNzSWQpO1xufVxuIl19
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Mtc2VyaWFsaXphdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jbGFzcy1zZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUt2RDs7Ozs7R0FLRztBQUNILFNBQVMsV0FBVyxDQUFDLFNBQThCLFVBQVU7SUFDM0QsTUFBTSxDQUFDLEdBQUcsTUFBYSxDQUFDO0lBQ3hCLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQyx1QkFBdUIsQ0FBOEIsQ0FBQztJQUN2RSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsdUJBQXVCLENBQUMsR0FBRyxRQUFRLENBQUM7SUFDeEMsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILHNHQUFzRztBQUN0RyxNQUFNLFVBQVUsMEJBQTBCLENBQUMsT0FBZSxFQUFFLEdBQWE7SUFDdkUsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNoQyw2Q0FBNkM7SUFDN0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFO1FBQ3BDLEtBQUssRUFBRSxPQUFPO1FBQ2QsUUFBUSxFQUFFLEtBQUs7UUFDZixVQUFVLEVBQUUsS0FBSztRQUNqQixZQUFZLEVBQUUsS0FBSztLQUNwQixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxzQkFBc0IsQ0FBQztBQUVuRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLE9BQWU7QUFDZixzR0FBc0c7QUFDdEcsR0FBYSxFQUNiLFNBQThCLFVBQVU7SUFFeEMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxPQUFlLEVBQ2YsTUFBMkI7QUFDM0Isc0dBQXNHOztJQUV0RyxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2xhc3Mgc2VyaWFsaXphdGlvbiB1dGlsaXRpZXMuXG4gKlxuICogVGhpcyBtb2R1bGUgaXMgc2VwYXJhdGUgZnJvbSBwcml2YXRlLnRzIHRvIGF2b2lkIHB1bGxpbmcgaW4gTm9kZS5qcy1vbmx5XG4gKiBkZXBlbmRlbmNpZXMgKGxpa2UgYXN5bmNfaG9va3MgdmlhIGdldC1jbG9zdXJlLXZhcnMudHMpIHdoZW4gdXNlZCBpblxuICogd29ya2Zsb3cgYnVuZGxlcy5cbiAqL1xuXG5pbXBvcnQgeyBXT1JLRkxPV19DTEFTU19SRUdJU1RSWSB9IGZyb20gJy4vc3ltYm9scy5qcyc7XG5cbi8vIGJpb21lLWlnbm9yZSBsaW50L2NvbXBsZXhpdHkvbm9CYW5uZWRUeXBlczogV2UgbmVlZCB0byB1c2UgRnVuY3Rpb24gdG8gcmVwcmVzZW50IGNsYXNzIGNvbnN0cnVjdG9yc1xudHlwZSBDbGFzc1JlZ2lzdHJ5ID0gTWFwPHN0cmluZywgRnVuY3Rpb24+O1xuXG4vKipcbiAqIEdldCBvciBjcmVhdGUgdGhlIGNsYXNzIHJlZ2lzdHJ5IG9uIHRoZSBnaXZlbiBnbG9iYWwgb2JqZWN0LlxuICogVGhpcyB3b3JrcyBpc29tb3JwaGljYWxseSBpbiBib3RoIHN0ZXAgbW9kZSAobWFpbiBjb250ZXh0KSBhbmQgd29ya2Zsb3cgbW9kZSAoVk0gY29udGV4dCkuXG4gKlxuICogQHBhcmFtIGdsb2JhbCAtIFRoZSBnbG9iYWwgb2JqZWN0IHRvIHVzZS4gRGVmYXVsdHMgdG8gZ2xvYmFsVGhpcywgYnV0IGNhbiBiZSBhIFZNJ3MgZ2xvYmFsLlxuICovXG5mdW5jdGlvbiBnZXRSZWdpc3RyeShnbG9iYWw6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBnbG9iYWxUaGlzKTogQ2xhc3NSZWdpc3RyeSB7XG4gIGNvbnN0IGcgPSBnbG9iYWwgYXMgYW55O1xuICBsZXQgcmVnaXN0cnkgPSBnW1dPUktGTE9XX0NMQVNTX1JFR0lTVFJZXSBhcyBDbGFzc1JlZ2lzdHJ5IHwgdW5kZWZpbmVkO1xuICBpZiAoIXJlZ2lzdHJ5KSB7XG4gICAgcmVnaXN0cnkgPSBuZXcgTWFwKCk7XG4gICAgZ1tXT1JLRkxPV19DTEFTU19SRUdJU1RSWV0gPSByZWdpc3RyeTtcbiAgfVxuICByZXR1cm4gcmVnaXN0cnk7XG59XG5cbi8qKlxuICogUmVnaXN0ZXIgYSBjbGFzcyBjb25zdHJ1Y3RvciBmb3Igc2VyaWFsaXphdGlvbi5cbiAqIFRoaXMgYWxsb3dzIGNsYXNzIGNvbnN0cnVjdG9ycyB0byBiZSBkZXNlcmlhbGl6ZWQgYnkgbG9va2luZyB1cCB0aGUgY2xhc3NJZC5cbiAqXG4gKiBOb3RlOiBUaGUgU1dDIHBsdWdpbiBub3cgaW5saW5lcyBlcXVpdmFsZW50IHJlZ2lzdHJhdGlvbiBsb2dpYyBhcyBhXG4gKiBzZWxmLWNvbnRhaW5lZCBJSUZFICh1c2luZyB0aGUgc2FtZSBnbG9iYWxUaGlzIFN5bWJvbC1rZXllZCByZWdpc3RyeSksXG4gKiBzbyB0aGlzIGZ1bmN0aW9uIGlzIG5vIGxvbmdlciBpbXBvcnRlZCBieSBnZW5lcmF0ZWQgY29kZS4gSXQgaXMgcmV0YWluZWRcbiAqIGZvciBwcm9ncmFtbWF0aWMgdXNlIGFuZCB0ZXN0aW5nLlxuICpcbiAqIEFsc28gc2V0cyB0aGUgYGNsYXNzSWRgIHByb3BlcnR5IG9uIHRoZSBjbGFzcyBzbyB0aGUgc2VyaWFsaXplciBjYW4gZmluZCBpdFxuICogd2hlbiBzZXJpYWxpemluZyBpbnN0YW5jZXMgKGUuZy4sIHN0ZXAgcmV0dXJuIHZhbHVlcykuXG4gKi9cbi8vIGJpb21lLWlnbm9yZSBsaW50L2NvbXBsZXhpdHkvbm9CYW5uZWRUeXBlczogV2UgbmVlZCB0byB1c2UgRnVuY3Rpb24gdG8gcmVwcmVzZW50IGNsYXNzIGNvbnN0cnVjdG9yc1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyU2VyaWFsaXphdGlvbkNsYXNzKGNsYXNzSWQ6IHN0cmluZywgY2xzOiBGdW5jdGlvbikge1xuICBnZXRSZWdpc3RyeSgpLnNldChjbGFzc0lkLCBjbHMpO1xuICAvLyBTZXQgY2xhc3NJZCBvbiB0aGUgY2xhc3MgZm9yIHNlcmlhbGl6YXRpb25cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNscywgJ2NsYXNzSWQnLCB7XG4gICAgdmFsdWU6IGNsYXNzSWQsXG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gIH0pO1xufVxuXG4vKipcbiAqIFN0YWJsZSwgd2VsbC1rbm93biByZWdpc3RyeSBJRCBmb3IgdGhlIFNESydzIGBSdW5gIGNsYXNzLlxuICpcbiAqIFRoZSBTV0MgcGx1Z2luIGF1dG8tcmVnaXN0ZXJzIGBSdW5gIHVuZGVyIGEgKnBhdGgtZGVyaXZlZCogSUQgKGUuZy5cbiAqIGBjbGFzcy8vLi9ub2RlX21vZHVsZXMvQHdvcmtmbG93L2NvcmUvZGlzdC9ydW50aW1lL3J1bi8vUnVuYCksIHdoaWNoXG4gKiB2YXJpZXMgd2l0aCB0aGUgYXBwJ3MgZGVwZW5kZW5jeSBsYXlvdXQgYW5kIGJ1bmRsZXIuIEhvc3Qtc2lkZSBjb2RlXG4gKiB0aGF0IG5lZWRzIHRvIGNvbnN0cnVjdCBgUnVuYCBpbnN0YW5jZXMgaW5zaWRlIHRoZSB3b3JrZmxvdyBWTSAoZS5nLlxuICogdGhlIGhvb2sgZXZlbnQgY29uc3VtZXIgcmVzb2x2aW5nIGBob29rLmdldENvbmZsaWN0KClgKSBjYW5ub3Qga25vd1xuICogdGhhdCBJRCBzdGF0aWNhbGx5LCBzbyB0aGUgd29ya2Zsb3ctbW9kZSBgY3JlYXRlLWhvb2tgIG1vZHVsZSBhbHNvXG4gKiBhbGlhc2VzIHRoZSBidW5kbGUncyBgUnVuYCB1bmRlciB0aGlzIHN0YWJsZSBJRCBhdCBldmFsdWF0aW9uIHRpbWUuXG4gKlxuICogVGhlIGB3b3JrZmxvd2AgcHNldWRvLXBhdGggY2Fubm90IGNvbGxpZGUgd2l0aCBwbHVnaW4tZGVyaXZlZCBJRHMsXG4gKiB3aGljaCBhbHdheXMgdXNlIHJlYWwgcmVsYXRpdmUgbW9kdWxlIHBhdGhzIChgLi/igKZgIC8gYC4uL+KApmApLlxuICovXG5leHBvcnQgY29uc3QgUlVOX0NMQVNTX0lEID0gJ2NsYXNzLy93b3JrZmxvdy8vUnVuJztcblxuLyoqXG4gKiBSZWdpc3RlciBhbiBhZGRpdGlvbmFsIHJlZ2lzdHJ5IElEIGZvciBhIGNsYXNzIHdpdGhvdXQgdG91Y2hpbmcgaXRzXG4gKiBgY2xhc3NJZGAgcHJvcGVydHkuXG4gKlxuICogVW5saWtlIHtAbGluayByZWdpc3RlclNlcmlhbGl6YXRpb25DbGFzc30sIHRoaXMgaXMgc2FmZSB0byBjYWxsIGZvciBhXG4gKiBjbGFzcyB0aGUgU1dDIHBsdWdpbiBoYXMgYWxyZWFkeSByZWdpc3RlcmVkOiB0aGUgcGx1Z2luJ3MgaW5saW5lZCBJSUZFXG4gKiBkZWZpbmVzIGBjbGFzc0lkYCBhcyBub24tY29uZmlndXJhYmxlLCBzbyBhIHNlY29uZCBgZGVmaW5lUHJvcGVydHlgXG4gKiB3b3VsZCB0aHJvdy4gQWxpYXNpbmcgb25seSBhZGRzIGEgcmVnaXN0cnkgZW50cnk6IHRoZSBjbGFzcyBrZWVwc1xuICogc2VyaWFsaXppbmcgdW5kZXIgaXRzIHByaW1hcnkgKHBhdGgtZGVyaXZlZCkgaWQsIHdoaWxlIGxvb2t1cHMgc3VjY2VlZFxuICogdW5kZXIgYm90aCBJRHMuXG4gKlxuICogUmVnaXN0cmF0aW9uIGlzIHBlci1nbG9iYWwgYnkgY29uc3RydWN0aW9uOiBldmFsdWF0ZWQgaW5zaWRlIHRoZVxuICogd29ya2Zsb3cgVk0gaXQgcmVnaXN0ZXJzIHRoZSBWTSdzIGNvbXBpbGVkIGNsYXNzIG9uIHRoZSBWTSdzIHJlZ2lzdHJ5O1xuICogZXZhbHVhdGVkIG9uIHRoZSBob3N0IGl0IHJlZ2lzdGVycyB0aGUgaG9zdCBjbGFzcyBvbiB0aGUgaG9zdCdzXG4gKiByZWdpc3RyeS4gRWFjaCBjb250ZXh0IHJlc29sdmVzIGl0cyBvd24gY29ycmVjdCB2YXJpYW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWxpYXNTZXJpYWxpemF0aW9uQ2xhc3MoXG4gIGNsYXNzSWQ6IHN0cmluZyxcbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvY29tcGxleGl0eS9ub0Jhbm5lZFR5cGVzOiBXZSBuZWVkIHRvIHVzZSBGdW5jdGlvbiB0byByZXByZXNlbnQgY2xhc3MgY29uc3RydWN0b3JzXG4gIGNsczogRnVuY3Rpb24sXG4gIGdsb2JhbDogUmVjb3JkPHN0cmluZywgYW55PiA9IGdsb2JhbFRoaXNcbikge1xuICBnZXRSZWdpc3RyeShnbG9iYWwpLnNldChjbGFzc0lkLCBjbHMpO1xufVxuXG4vKipcbiAqIEZpbmQgYSByZWdpc3RlcmVkIGNsYXNzIGNvbnN0cnVjdG9yIGJ5IElEICh1c2VkIGR1cmluZyBkZXNlcmlhbGl6YXRpb24pXG4gKlxuICogQHBhcmFtIGNsYXNzSWQgLSBUaGUgY2xhc3MgSUQgdG8gbG9vayB1cFxuICogQHBhcmFtIGdsb2JhbCAtIFRoZSBnbG9iYWwgb2JqZWN0IHRvIGNoZWNrLiBUaGlzIGVuc3VyZXMgd29ya2Zsb3cgY29kZSBydW5uaW5nXG4gKiAgICAgICAgICAgICAgICAgaW4gYSBWTSBvbmx5IGFjY2Vzc2VzIGNsYXNzZXMgcmVnaXN0ZXJlZCBvbiB0aGUgVk0ncyBnbG9iYWwsXG4gKiAgICAgICAgICAgICAgICAgbWF0Y2hpbmcgcHJvZHVjdGlvbiBzZXJ2ZXJsZXNzIGJlaGF2aW9yIHdoZXJlIHdvcmtmbG93IGNvZGVcbiAqICAgICAgICAgICAgICAgICBydW5zIGluIGlzb2xhdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNlcmlhbGl6YXRpb25DbGFzcyhcbiAgY2xhc3NJZDogc3RyaW5nLFxuICBnbG9iYWw6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvY29tcGxleGl0eS9ub0Jhbm5lZFR5cGVzOiBXZSBuZWVkIHRvIHVzZSBGdW5jdGlvbiB0byByZXByZXNlbnQgY2xhc3MgY29uc3RydWN0b3JzXG4pOiBGdW5jdGlvbiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRSZWdpc3RyeShnbG9iYWwpLmdldChjbGFzc0lkKTtcbn1cbiJdfQ==
@@ -7,7 +7,7 @@ const WORLD_CONTRACT_ERROR_CODES = new Set([
7
7
  /**
8
8
  * `WorkflowWorldError.code` values that mark a transient transport failure
9
9
  * (set by world-vercel's HTTP client): `TRANSPORT` covers an exhausted
10
- * RetryAgent (`UND_ERR_REQ_RETRY` e.g. the firewall in front of
10
+ * RetryAgent (`UND_ERR_REQ_RETRY`, e.g. the firewall in front of
11
11
  * workflow-server shedding load with 429/503), a dropped socket, or a
12
12
  * connect/DNS failure; `TIMEOUT` covers a request that exceeded the client
13
13
  * timeout. Both are infrastructure failures a fresh invocation can recover
@@ -18,7 +18,7 @@ const RETRYABLE_WORLD_ERROR_CODES = new Set(['TRANSPORT', 'TIMEOUT']);
18
18
  /**
19
19
  * Set of error names that should classify as generic `RUNTIME_ERROR`. Each
20
20
  * `*.is()` static does a name-based duck check, so subclassing alone is
21
- * not enough we have to enumerate every concrete subclass we want to
21
+ * not enough, so we have to enumerate every concrete subclass we want to
22
22
  * recognize. Keep in sync with the `WorkflowRuntimeError` class hierarchy
23
23
  * in `@workflow/errors`.
24
24
  */
@@ -100,9 +100,9 @@ export function classifyRunError(err) {
100
100
  if (WorkflowDeploymentMismatchError.is(err)) {
101
101
  return RUN_ERROR_CODES.DEPLOYMENT_MISMATCH;
102
102
  }
103
- // World-layer faults both a malformed response (contract violation) and a
103
+ // World-layer faults, both a malformed response (contract violation) and a
104
104
  // transient infrastructure failure (throttle / 5xx / transport / timeout,
105
- // e.g. a firewall challenge) are the backend's fault, not the user's.
105
+ // e.g. a firewall challenge), are the backend's fault, not the user's.
106
106
  // Bucket them under WORLD_CONTRACT_ERROR rather than USER_ERROR so dashboards
107
107
  // attribute an outage correctly. Note the retryable variants are normally
108
108
  // redelivered via the queue (see `isRetryableWorldError`) and only reach this
@@ -117,4 +117,4 @@ export function classifyRunError(err) {
117
117
  }
118
118
  return RUN_ERROR_CODES.USER_ERROR;
119
119
  }
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NpZnktZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xhc3NpZnktZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLGVBQWUsRUFFZixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLGFBQWEsRUFDYiwrQkFBK0IsRUFDL0IsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUNwQixrQkFBa0IsR0FDbkIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixNQUFNLDBCQUEwQixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ3pDLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsZUFBZSxDQUFDLG9CQUFvQjtDQUNyQyxDQUFDLENBQUM7QUFFSDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLDJCQUEyQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFFdEU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRztJQUMzQixvQkFBb0IsQ0FBQyxFQUFFO0lBQ3ZCLHNCQUFzQixDQUFDLEVBQUU7SUFDekIsMEJBQTBCLENBQUMsRUFBRTtJQUM3QiwrREFBK0Q7SUFDL0QseURBQXlEO0lBQ3pELG9FQUFvRTtJQUNwRSxrQ0FBa0M7SUFDbEMsc0JBQXNCLENBQUMsRUFBRTtDQUMxQixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEdBQVk7SUFDL0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNyRCxPQUFPLENBQ0wsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSwwQkFBMEIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BFLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLG9DQUFvQyxDQUFDO1FBQzVELEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLCtCQUErQixDQUFDO1FBQ3ZELENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUTtZQUN4QixLQUFLLEtBQUssSUFBSTtZQUNkLE1BQU0sSUFBSSxLQUFLO1lBQ2YsS0FBSyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsQ0FDN0IsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEdBQVk7SUFDaEQsSUFBSSxhQUFhLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxHQUFZO0lBQzNDLElBQUkscUJBQXFCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbEMsT0FBTyxlQUFlLENBQUMsaUJBQWlCLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksc0JBQXNCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbkMsT0FBTyxlQUFlLENBQUMsbUJBQW1CLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksc0JBQXNCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbkMsT0FBTyxlQUFlLENBQUMsbUJBQW1CLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksK0JBQStCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDNUMsT0FBTyxlQUFlLENBQUMsbUJBQW1CLENBQUM7SUFDN0MsQ0FBQztJQUVELDRFQUE0RTtJQUM1RSwwRUFBMEU7SUFDMUUsd0VBQXdFO0lBQ3hFLDhFQUE4RTtJQUM5RSwwRUFBMEU7SUFDMUUsOEVBQThFO0lBQzlFLDBEQUEwRDtJQUMxRCxJQUFJLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxJQUFJLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDNUQsT0FBTyxlQUFlLENBQUMsb0JBQW9CLENBQUM7SUFDOUMsQ0FBQztJQUVELEtBQUssTUFBTSxPQUFPLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUMzQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sZUFBZSxDQUFDLGFBQWEsQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29ycnVwdGVkRXZlbnRMb2dFcnJvcixcbiAgTWF4RXZlbnRzRXhjZWVkZWRFcnJvcixcbiAgUmVwbGF5RGl2ZXJnZW5jZUVycm9yLFxuICBSVU5fRVJST1JfQ09ERVMsXG4gIHR5cGUgUnVuRXJyb3JDb2RlLFxuICBSdW50aW1lRGVjcnlwdGlvbkVycm9yLFxuICBTdGVwTm90UmVnaXN0ZXJlZEVycm9yLFxuICBUaHJvdHRsZUVycm9yLFxuICBXb3JrZmxvd0RlcGxveW1lbnRNaXNtYXRjaEVycm9yLFxuICBXb3JrZmxvd05vdFJlZ2lzdGVyZWRFcnJvcixcbiAgV29ya2Zsb3dSdW50aW1lRXJyb3IsXG4gIFdvcmtmbG93V29ybGRFcnJvcixcbn0gZnJvbSAnQHdvcmtmbG93L2Vycm9ycyc7XG5cbmNvbnN0IFdPUkxEX0NPTlRSQUNUX0VSUk9SX0NPREVTID0gbmV3IFNldChbXG4gICdQQVJTRV9FUlJPUicsXG4gICdTQ0hFTUFfVkFMSURBVElPTicsXG4gIFJVTl9FUlJPUl9DT0RFUy5XT1JMRF9DT05UUkFDVF9FUlJPUixcbl0pO1xuXG4vKipcbiAqIGBXb3JrZmxvd1dvcmxkRXJyb3IuY29kZWAgdmFsdWVzIHRoYXQgbWFyayBhIHRyYW5zaWVudCB0cmFuc3BvcnQgZmFpbHVyZVxuICogKHNldCBieSB3b3JsZC12ZXJjZWwncyBIVFRQIGNsaWVudCk6IGBUUkFOU1BPUlRgIGNvdmVycyBhbiBleGhhdXN0ZWRcbiAqIFJldHJ5QWdlbnQgKGBVTkRfRVJSX1JFUV9SRVRSWWAg4oCUIGUuZy4gdGhlIGZpcmV3YWxsIGluIGZyb250IG9mXG4gKiB3b3JrZmxvdy1zZXJ2ZXIgc2hlZGRpbmcgbG9hZCB3aXRoIDQyOS81MDMpLCBhIGRyb3BwZWQgc29ja2V0LCBvciBhXG4gKiBjb25uZWN0L0ROUyBmYWlsdXJlOyBgVElNRU9VVGAgY292ZXJzIGEgcmVxdWVzdCB0aGF0IGV4Y2VlZGVkIHRoZSBjbGllbnRcbiAqIHRpbWVvdXQuIEJvdGggYXJlIGluZnJhc3RydWN0dXJlIGZhaWx1cmVzIGEgZnJlc2ggaW52b2NhdGlvbiBjYW4gcmVjb3ZlclxuICogZnJvbS4gS2VwdCBkaXN0aW5jdCBmcm9tIGBXT1JMRF9DT05UUkFDVF9FUlJPUl9DT0RFU2Agc28gYSB0cmFuc3BvcnQgYmxpcCBpc1xuICogbmV2ZXIgbWlzY2xhc3NpZmllZCBhcyB0aGUgc2VydmVyIHJldHVybmluZyBhIG1hbGZvcm1lZCByZXNwb25zZS5cbiAqL1xuY29uc3QgUkVUUllBQkxFX1dPUkxEX0VSUk9SX0NPREVTID0gbmV3IFNldChbJ1RSQU5TUE9SVCcsICdUSU1FT1VUJ10pO1xuXG4vKipcbiAqIFNldCBvZiBlcnJvciBuYW1lcyB0aGF0IHNob3VsZCBjbGFzc2lmeSBhcyBnZW5lcmljIGBSVU5USU1FX0VSUk9SYC4gRWFjaFxuICogYCouaXMoKWAgc3RhdGljIGRvZXMgYSBuYW1lLWJhc2VkIGR1Y2sgY2hlY2ssIHNvIHN1YmNsYXNzaW5nIGFsb25lIGlzXG4gKiBub3QgZW5vdWdoIOKAlCB3ZSBoYXZlIHRvIGVudW1lcmF0ZSBldmVyeSBjb25jcmV0ZSBzdWJjbGFzcyB3ZSB3YW50IHRvXG4gKiByZWNvZ25pemUuIEtlZXAgaW4gc3luYyB3aXRoIHRoZSBgV29ya2Zsb3dSdW50aW1lRXJyb3JgIGNsYXNzIGhpZXJhcmNoeVxuICogaW4gYEB3b3JrZmxvdy9lcnJvcnNgLlxuICovXG5jb25zdCBSVU5USU1FX0VSUk9SX0NIRUNLUyA9IFtcbiAgV29ya2Zsb3dSdW50aW1lRXJyb3IuaXMsXG4gIFN0ZXBOb3RSZWdpc3RlcmVkRXJyb3IuaXMsXG4gIFdvcmtmbG93Tm90UmVnaXN0ZXJlZEVycm9yLmlzLFxuICAvLyBTREstbGV2ZWwgZW5jcnlwdGlvbiBmYWlsdXJlcyAobW9zdCBub3RhYmx5IEFFUy1HQ00gYXV0aC10YWdcbiAgLy8gbWlzbWF0Y2hlcyBzdXJmYWNpbmcgYXMgYSBuYXRpdmUgYE9wZXJhdGlvbkVycm9yYCBmcm9tXG4gIC8vIGBBRVNDaXBoZXJKb2Iub25Eb25lYCkgYXJlIHdyYXBwZWQgaW4gYFJ1bnRpbWVEZWNyeXB0aW9uRXJyb3JgIGF0XG4gIC8vIHRoZSBlbmNyeXB0aW9uIG1vZHVsZSBib3VuZGFyeS5cbiAgUnVudGltZURlY3J5cHRpb25FcnJvci5pcyxcbl07XG5cbi8qKlxuICogQ2xhc3NpZnkgYW4gZXJyb3IgdGhhdCBjYXVzZWQgYSB3b3JrZmxvdyBydW4gdG8gZmFpbC5cbiAqXG4gKiBBZnRlciB0aGUgc3RydWN0dXJhbCBzZXBhcmF0aW9uIG9mIGluZnJhc3RydWN0dXJlIHZzIHVzZXIgY29kZSBlcnJvclxuICogaGFuZGxpbmcsIHRoZSBvbmx5IGVycm9ycyB0aGF0IHJlYWNoIHRoZSBgcnVuX2ZhaWxlZGAgdHJ5L2NhdGNoIGFyZTpcbiAqIC0gVXNlciBjb2RlIGVycm9ycyAodGhyb3dzIGZyb20gd29ya2Zsb3cgZnVuY3Rpb25zLCBwcm9wYWdhdGVkIHN0ZXAgZmFpbHVyZXMpXG4gKiAtIFdvcmtmbG93UnVudGltZUVycm9yIGFuZCBzdWJjbGFzc2VzIChtaXNzaW5nIHRpbWVzdGFtcHMsIHdvcmtmbG93L3N0ZXBcbiAqICAgbm90IHJlZ2lzdGVyZWQsIGNvcnJ1cHRlZCBldmVudCBsb2csIGV0Yy4pXG4gKlxuICogVXNlcyBlYWNoIHN1YmNsYXNzJ3MgYC5pcygpYCBzdGF0aWMgKGEgbmFtZS1iYXNlZCBkdWNrIGNoZWNrKSBpbnN0ZWFkIG9mXG4gKiBhIHNpbmdsZSBgaW5zdGFuY2VvZmAgY2hlY2sgYmVjYXVzZSB3b3JrZmxvd3MgZXhlY3V0ZSBpbiBhIHNlcGFyYXRlXG4gKiBgdm1gIHJlYWxtOiB0aGUgVk0tY29udGV4dCBgV29ya2Zsb3dSdW50aW1lRXJyb3JgIGFuZCB0aGUgaG9zdC1jb250ZXh0XG4gKiBvbmUgYXJlIGRpc3RpbmN0IGNsYXNzZXMsIHNvIGBpbnN0YW5jZW9mYCByZXR1cm5zIGBmYWxzZWAgZm9yIGFueSBlcnJvclxuICogdGhyb3duIGluc2lkZSB0aGUgd29ya2Zsb3cgVk0gYW5kIHdlJ2QgbWlzY2xhc3NpZnkgZ2VudWluZSBydW50aW1lXG4gKiBlcnJvcnMgYXMgdXNlciBlcnJvcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1dvcmxkQ29udHJhY3RFcnJvcihlcnI6IHVua25vd24pOiBlcnIgaXMgV29ya2Zsb3dXb3JsZEVycm9yIHtcbiAgaWYgKCFXb3JrZmxvd1dvcmxkRXJyb3IuaXMoZXJyKSB8fCBlcnIuc3RhdHVzICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBjYXVzZSA9ICdjYXVzZScgaW4gZXJyID8gZXJyLmNhdXNlIDogdW5kZWZpbmVkO1xuICByZXR1cm4gKFxuICAgIChlcnIuY29kZSAhPT0gdW5kZWZpbmVkICYmIFdPUkxEX0NPTlRSQUNUX0VSUk9SX0NPREVTLmhhcyhlcnIuY29kZSkpIHx8XG4gICAgZXJyLm1lc3NhZ2Uuc3RhcnRzV2l0aCgnRmFpbGVkIHRvIHBhcnNlIHJlc3BvbnNlIGJvZHkgZm9yICcpIHx8XG4gICAgZXJyLm1lc3NhZ2Uuc3RhcnRzV2l0aCgnU2NoZW1hIHZhbGlkYXRpb24gZmFpbGVkIGZvciAnKSB8fFxuICAgICh0eXBlb2YgY2F1c2UgPT09ICdvYmplY3QnICYmXG4gICAgICBjYXVzZSAhPT0gbnVsbCAmJlxuICAgICAgJ25hbWUnIGluIGNhdXNlICYmXG4gICAgICBjYXVzZS5uYW1lID09PSAnWm9kRXJyb3InKVxuICApO1xufVxuXG4vKipcbiAqIFRydWUgd2hlbiBhbiBlcnJvciBmcm9tIGEgd29ybGQgKHdvcmtmbG93LXNlcnZlcikgY2FsbCBpcyBhIHRyYW5zaWVudFxuICogaW5mcmFzdHJ1Y3R1cmUgZmFpbHVyZSB0aGF0IHNob3VsZCBiZSByZXRyaWVkIGJ5IHJlZGVsaXZlcmluZyB0aGUgcXVldWVcbiAqIG1lc3NhZ2UsIHJhdGhlciB0aGFuIGZhaWxpbmcgdGhlIHJ1bi4gQSBmcmVzaCBpbnZvY2F0aW9uIHdpbGwgbGlrZWx5XG4gKiBzdWNjZWVkIG9uY2UgdGhlIGJhY2tlbmQgKG9yIHRoZSBmaXJld2FsbCBpbiBmcm9udCBvZiBpdCkgcmVjb3ZlcnMuXG4gKlxuICogLSBgVGhyb3R0bGVFcnJvcmAgKDQyOSk6IHJhdGUgbGltaXRlZCAvIGxvYWQgc2hlZFxuICogLSBgV29ya2Zsb3dXb3JsZEVycm9yYCB3aXRoIGBzdGF0dXMgPj0gNTAwYDogc2VydmVyLXNpZGUgZXJyb3JcbiAqIC0gYFdvcmtmbG93V29ybGRFcnJvcmAgd2l0aCBhIHJldHJ5YWJsZSB0cmFuc3BvcnQgYGNvZGVgIChgVFJBTlNQT1JUYCAvXG4gKiAgIGBUSU1FT1VUYCk6IHRoZSByZXF1ZXN0IG5ldmVyIHByb2R1Y2VkIGEgdXNhYmxlIHJlc3BvbnNlXG4gKlxuICogVXNlcyBgLmlzKClgIG5hbWUtYmFzZWQgZHVjayBjaGVja3MgKG5vdCBgaW5zdGFuY2VvZmApIGZvciB0aGUgc2FtZVxuICogY3Jvc3MtYHZtYC1yZWFsbSByZWFzb24gZGVzY3JpYmVkIG9uIGBjbGFzc2lmeVJ1bkVycm9yYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmV0cnlhYmxlV29ybGRFcnJvcihlcnI6IHVua25vd24pOiBib29sZWFuIHtcbiAgaWYgKFRocm90dGxlRXJyb3IuaXMoZXJyKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmICghV29ya2Zsb3dXb3JsZEVycm9yLmlzKGVycikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKGVyci5zdGF0dXMgIT09IHVuZGVmaW5lZCAmJiBlcnIuc3RhdHVzID49IDUwMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBlcnIuY29kZSAhPT0gdW5kZWZpbmVkICYmIFJFVFJZQUJMRV9XT1JMRF9FUlJPUl9DT0RFUy5oYXMoZXJyLmNvZGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xhc3NpZnlSdW5FcnJvcihlcnI6IHVua25vd24pOiBSdW5FcnJvckNvZGUge1xuICBpZiAoUmVwbGF5RGl2ZXJnZW5jZUVycm9yLmlzKGVycikpIHtcbiAgICByZXR1cm4gUlVOX0VSUk9SX0NPREVTLlJFUExBWV9ESVZFUkdFTkNFO1xuICB9XG5cbiAgaWYgKENvcnJ1cHRlZEV2ZW50TG9nRXJyb3IuaXMoZXJyKSkge1xuICAgIHJldHVybiBSVU5fRVJST1JfQ09ERVMuQ09SUlVQVEVEX0VWRU5UX0xPRztcbiAgfVxuXG4gIGlmIChNYXhFdmVudHNFeGNlZWRlZEVycm9yLmlzKGVycikpIHtcbiAgICByZXR1cm4gUlVOX0VSUk9SX0NPREVTLk1BWF9FVkVOVFNfRVhDRUVERUQ7XG4gIH1cblxuICBpZiAoV29ya2Zsb3dEZXBsb3ltZW50TWlzbWF0Y2hFcnJvci5pcyhlcnIpKSB7XG4gICAgcmV0dXJuIFJVTl9FUlJPUl9DT0RFUy5ERVBMT1lNRU5UX01JU01BVENIO1xuICB9XG5cbiAgLy8gV29ybGQtbGF5ZXIgZmF1bHRzIOKAlCBib3RoIGEgbWFsZm9ybWVkIHJlc3BvbnNlIChjb250cmFjdCB2aW9sYXRpb24pIGFuZCBhXG4gIC8vIHRyYW5zaWVudCBpbmZyYXN0cnVjdHVyZSBmYWlsdXJlICh0aHJvdHRsZSAvIDV4eCAvIHRyYW5zcG9ydCAvIHRpbWVvdXQsXG4gIC8vIGUuZy4gYSBmaXJld2FsbCBjaGFsbGVuZ2UpIOKAlCBhcmUgdGhlIGJhY2tlbmQncyBmYXVsdCwgbm90IHRoZSB1c2VyJ3MuXG4gIC8vIEJ1Y2tldCB0aGVtIHVuZGVyIFdPUkxEX0NPTlRSQUNUX0VSUk9SIHJhdGhlciB0aGFuIFVTRVJfRVJST1Igc28gZGFzaGJvYXJkc1xuICAvLyBhdHRyaWJ1dGUgYW4gb3V0YWdlIGNvcnJlY3RseS4gTm90ZSB0aGUgcmV0cnlhYmxlIHZhcmlhbnRzIGFyZSBub3JtYWxseVxuICAvLyByZWRlbGl2ZXJlZCB2aWEgdGhlIHF1ZXVlIChzZWUgYGlzUmV0cnlhYmxlV29ybGRFcnJvcmApIGFuZCBvbmx5IHJlYWNoIHRoaXNcbiAgLy8gdGVybWluYWwgY2xhc3NpZmljYXRpb24gaWYgdGhlIHJ1biB1bHRpbWF0ZWx5IGdpdmVzIHVwLlxuICBpZiAoaXNXb3JsZENvbnRyYWN0RXJyb3IoZXJyKSB8fCBpc1JldHJ5YWJsZVdvcmxkRXJyb3IoZXJyKSkge1xuICAgIHJldHVybiBSVU5fRVJST1JfQ09ERVMuV09STERfQ09OVFJBQ1RfRVJST1I7XG4gIH1cblxuICBmb3IgKGNvbnN0IGlzTWF0Y2ggb2YgUlVOVElNRV9FUlJPUl9DSEVDS1MpIHtcbiAgICBpZiAoaXNNYXRjaChlcnIpKSB7XG4gICAgICByZXR1cm4gUlVOX0VSUk9SX0NPREVTLlJVTlRJTUVfRVJST1I7XG4gICAgfVxuICB9XG4gIHJldHVybiBSVU5fRVJST1JfQ09ERVMuVVNFUl9FUlJPUjtcbn1cbiJdfQ==
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NpZnktZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xhc3NpZnktZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLGVBQWUsRUFFZixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLGFBQWEsRUFDYiwrQkFBK0IsRUFDL0IsMEJBQTBCLEVBQzFCLG9CQUFvQixFQUNwQixrQkFBa0IsR0FDbkIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixNQUFNLDBCQUEwQixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ3pDLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsZUFBZSxDQUFDLG9CQUFvQjtDQUNyQyxDQUFDLENBQUM7QUFFSDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLDJCQUEyQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFFdEU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRztJQUMzQixvQkFBb0IsQ0FBQyxFQUFFO0lBQ3ZCLHNCQUFzQixDQUFDLEVBQUU7SUFDekIsMEJBQTBCLENBQUMsRUFBRTtJQUM3QiwrREFBK0Q7SUFDL0QseURBQXlEO0lBQ3pELG9FQUFvRTtJQUNwRSxrQ0FBa0M7SUFDbEMsc0JBQXNCLENBQUMsRUFBRTtDQUMxQixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEdBQVk7SUFDL0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLE9BQU8sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNyRCxPQUFPLENBQ0wsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSwwQkFBMEIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BFLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLG9DQUFvQyxDQUFDO1FBQzVELEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLCtCQUErQixDQUFDO1FBQ3ZELENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUTtZQUN4QixLQUFLLEtBQUssSUFBSTtZQUNkLE1BQU0sSUFBSSxLQUFLO1lBQ2YsS0FBSyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsQ0FDN0IsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEdBQVk7SUFDaEQsSUFBSSxhQUFhLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxHQUFZO0lBQzNDLElBQUkscUJBQXFCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbEMsT0FBTyxlQUFlLENBQUMsaUJBQWlCLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksc0JBQXNCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbkMsT0FBTyxlQUFlLENBQUMsbUJBQW1CLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksc0JBQXNCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbkMsT0FBTyxlQUFlLENBQUMsbUJBQW1CLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksK0JBQStCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDNUMsT0FBTyxlQUFlLENBQUMsbUJBQW1CLENBQUM7SUFDN0MsQ0FBQztJQUVELDJFQUEyRTtJQUMzRSwwRUFBMEU7SUFDMUUsdUVBQXVFO0lBQ3ZFLDhFQUE4RTtJQUM5RSwwRUFBMEU7SUFDMUUsOEVBQThFO0lBQzlFLDBEQUEwRDtJQUMxRCxJQUFJLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxJQUFJLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDNUQsT0FBTyxlQUFlLENBQUMsb0JBQW9CLENBQUM7SUFDOUMsQ0FBQztJQUVELEtBQUssTUFBTSxPQUFPLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUMzQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sZUFBZSxDQUFDLGFBQWEsQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29ycnVwdGVkRXZlbnRMb2dFcnJvcixcbiAgTWF4RXZlbnRzRXhjZWVkZWRFcnJvcixcbiAgUmVwbGF5RGl2ZXJnZW5jZUVycm9yLFxuICBSVU5fRVJST1JfQ09ERVMsXG4gIHR5cGUgUnVuRXJyb3JDb2RlLFxuICBSdW50aW1lRGVjcnlwdGlvbkVycm9yLFxuICBTdGVwTm90UmVnaXN0ZXJlZEVycm9yLFxuICBUaHJvdHRsZUVycm9yLFxuICBXb3JrZmxvd0RlcGxveW1lbnRNaXNtYXRjaEVycm9yLFxuICBXb3JrZmxvd05vdFJlZ2lzdGVyZWRFcnJvcixcbiAgV29ya2Zsb3dSdW50aW1lRXJyb3IsXG4gIFdvcmtmbG93V29ybGRFcnJvcixcbn0gZnJvbSAnQHdvcmtmbG93L2Vycm9ycyc7XG5cbmNvbnN0IFdPUkxEX0NPTlRSQUNUX0VSUk9SX0NPREVTID0gbmV3IFNldChbXG4gICdQQVJTRV9FUlJPUicsXG4gICdTQ0hFTUFfVkFMSURBVElPTicsXG4gIFJVTl9FUlJPUl9DT0RFUy5XT1JMRF9DT05UUkFDVF9FUlJPUixcbl0pO1xuXG4vKipcbiAqIGBXb3JrZmxvd1dvcmxkRXJyb3IuY29kZWAgdmFsdWVzIHRoYXQgbWFyayBhIHRyYW5zaWVudCB0cmFuc3BvcnQgZmFpbHVyZVxuICogKHNldCBieSB3b3JsZC12ZXJjZWwncyBIVFRQIGNsaWVudCk6IGBUUkFOU1BPUlRgIGNvdmVycyBhbiBleGhhdXN0ZWRcbiAqIFJldHJ5QWdlbnQgKGBVTkRfRVJSX1JFUV9SRVRSWWAsIGUuZy4gdGhlIGZpcmV3YWxsIGluIGZyb250IG9mXG4gKiB3b3JrZmxvdy1zZXJ2ZXIgc2hlZGRpbmcgbG9hZCB3aXRoIDQyOS81MDMpLCBhIGRyb3BwZWQgc29ja2V0LCBvciBhXG4gKiBjb25uZWN0L0ROUyBmYWlsdXJlOyBgVElNRU9VVGAgY292ZXJzIGEgcmVxdWVzdCB0aGF0IGV4Y2VlZGVkIHRoZSBjbGllbnRcbiAqIHRpbWVvdXQuIEJvdGggYXJlIGluZnJhc3RydWN0dXJlIGZhaWx1cmVzIGEgZnJlc2ggaW52b2NhdGlvbiBjYW4gcmVjb3ZlclxuICogZnJvbS4gS2VwdCBkaXN0aW5jdCBmcm9tIGBXT1JMRF9DT05UUkFDVF9FUlJPUl9DT0RFU2Agc28gYSB0cmFuc3BvcnQgYmxpcCBpc1xuICogbmV2ZXIgbWlzY2xhc3NpZmllZCBhcyB0aGUgc2VydmVyIHJldHVybmluZyBhIG1hbGZvcm1lZCByZXNwb25zZS5cbiAqL1xuY29uc3QgUkVUUllBQkxFX1dPUkxEX0VSUk9SX0NPREVTID0gbmV3IFNldChbJ1RSQU5TUE9SVCcsICdUSU1FT1VUJ10pO1xuXG4vKipcbiAqIFNldCBvZiBlcnJvciBuYW1lcyB0aGF0IHNob3VsZCBjbGFzc2lmeSBhcyBnZW5lcmljIGBSVU5USU1FX0VSUk9SYC4gRWFjaFxuICogYCouaXMoKWAgc3RhdGljIGRvZXMgYSBuYW1lLWJhc2VkIGR1Y2sgY2hlY2ssIHNvIHN1YmNsYXNzaW5nIGFsb25lIGlzXG4gKiBub3QgZW5vdWdoLCBzbyB3ZSBoYXZlIHRvIGVudW1lcmF0ZSBldmVyeSBjb25jcmV0ZSBzdWJjbGFzcyB3ZSB3YW50IHRvXG4gKiByZWNvZ25pemUuIEtlZXAgaW4gc3luYyB3aXRoIHRoZSBgV29ya2Zsb3dSdW50aW1lRXJyb3JgIGNsYXNzIGhpZXJhcmNoeVxuICogaW4gYEB3b3JrZmxvdy9lcnJvcnNgLlxuICovXG5jb25zdCBSVU5USU1FX0VSUk9SX0NIRUNLUyA9IFtcbiAgV29ya2Zsb3dSdW50aW1lRXJyb3IuaXMsXG4gIFN0ZXBOb3RSZWdpc3RlcmVkRXJyb3IuaXMsXG4gIFdvcmtmbG93Tm90UmVnaXN0ZXJlZEVycm9yLmlzLFxuICAvLyBTREstbGV2ZWwgZW5jcnlwdGlvbiBmYWlsdXJlcyAobW9zdCBub3RhYmx5IEFFUy1HQ00gYXV0aC10YWdcbiAgLy8gbWlzbWF0Y2hlcyBzdXJmYWNpbmcgYXMgYSBuYXRpdmUgYE9wZXJhdGlvbkVycm9yYCBmcm9tXG4gIC8vIGBBRVNDaXBoZXJKb2Iub25Eb25lYCkgYXJlIHdyYXBwZWQgaW4gYFJ1bnRpbWVEZWNyeXB0aW9uRXJyb3JgIGF0XG4gIC8vIHRoZSBlbmNyeXB0aW9uIG1vZHVsZSBib3VuZGFyeS5cbiAgUnVudGltZURlY3J5cHRpb25FcnJvci5pcyxcbl07XG5cbi8qKlxuICogQ2xhc3NpZnkgYW4gZXJyb3IgdGhhdCBjYXVzZWQgYSB3b3JrZmxvdyBydW4gdG8gZmFpbC5cbiAqXG4gKiBBZnRlciB0aGUgc3RydWN0dXJhbCBzZXBhcmF0aW9uIG9mIGluZnJhc3RydWN0dXJlIHZzIHVzZXIgY29kZSBlcnJvclxuICogaGFuZGxpbmcsIHRoZSBvbmx5IGVycm9ycyB0aGF0IHJlYWNoIHRoZSBgcnVuX2ZhaWxlZGAgdHJ5L2NhdGNoIGFyZTpcbiAqIC0gVXNlciBjb2RlIGVycm9ycyAodGhyb3dzIGZyb20gd29ya2Zsb3cgZnVuY3Rpb25zLCBwcm9wYWdhdGVkIHN0ZXAgZmFpbHVyZXMpXG4gKiAtIFdvcmtmbG93UnVudGltZUVycm9yIGFuZCBzdWJjbGFzc2VzIChtaXNzaW5nIHRpbWVzdGFtcHMsIHdvcmtmbG93L3N0ZXBcbiAqICAgbm90IHJlZ2lzdGVyZWQsIGNvcnJ1cHRlZCBldmVudCBsb2csIGV0Yy4pXG4gKlxuICogVXNlcyBlYWNoIHN1YmNsYXNzJ3MgYC5pcygpYCBzdGF0aWMgKGEgbmFtZS1iYXNlZCBkdWNrIGNoZWNrKSBpbnN0ZWFkIG9mXG4gKiBhIHNpbmdsZSBgaW5zdGFuY2VvZmAgY2hlY2sgYmVjYXVzZSB3b3JrZmxvd3MgZXhlY3V0ZSBpbiBhIHNlcGFyYXRlXG4gKiBgdm1gIHJlYWxtOiB0aGUgVk0tY29udGV4dCBgV29ya2Zsb3dSdW50aW1lRXJyb3JgIGFuZCB0aGUgaG9zdC1jb250ZXh0XG4gKiBvbmUgYXJlIGRpc3RpbmN0IGNsYXNzZXMsIHNvIGBpbnN0YW5jZW9mYCByZXR1cm5zIGBmYWxzZWAgZm9yIGFueSBlcnJvclxuICogdGhyb3duIGluc2lkZSB0aGUgd29ya2Zsb3cgVk0gYW5kIHdlJ2QgbWlzY2xhc3NpZnkgZ2VudWluZSBydW50aW1lXG4gKiBlcnJvcnMgYXMgdXNlciBlcnJvcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1dvcmxkQ29udHJhY3RFcnJvcihlcnI6IHVua25vd24pOiBlcnIgaXMgV29ya2Zsb3dXb3JsZEVycm9yIHtcbiAgaWYgKCFXb3JrZmxvd1dvcmxkRXJyb3IuaXMoZXJyKSB8fCBlcnIuc3RhdHVzICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBjYXVzZSA9ICdjYXVzZScgaW4gZXJyID8gZXJyLmNhdXNlIDogdW5kZWZpbmVkO1xuICByZXR1cm4gKFxuICAgIChlcnIuY29kZSAhPT0gdW5kZWZpbmVkICYmIFdPUkxEX0NPTlRSQUNUX0VSUk9SX0NPREVTLmhhcyhlcnIuY29kZSkpIHx8XG4gICAgZXJyLm1lc3NhZ2Uuc3RhcnRzV2l0aCgnRmFpbGVkIHRvIHBhcnNlIHJlc3BvbnNlIGJvZHkgZm9yICcpIHx8XG4gICAgZXJyLm1lc3NhZ2Uuc3RhcnRzV2l0aCgnU2NoZW1hIHZhbGlkYXRpb24gZmFpbGVkIGZvciAnKSB8fFxuICAgICh0eXBlb2YgY2F1c2UgPT09ICdvYmplY3QnICYmXG4gICAgICBjYXVzZSAhPT0gbnVsbCAmJlxuICAgICAgJ25hbWUnIGluIGNhdXNlICYmXG4gICAgICBjYXVzZS5uYW1lID09PSAnWm9kRXJyb3InKVxuICApO1xufVxuXG4vKipcbiAqIFRydWUgd2hlbiBhbiBlcnJvciBmcm9tIGEgd29ybGQgKHdvcmtmbG93LXNlcnZlcikgY2FsbCBpcyBhIHRyYW5zaWVudFxuICogaW5mcmFzdHJ1Y3R1cmUgZmFpbHVyZSB0aGF0IHNob3VsZCBiZSByZXRyaWVkIGJ5IHJlZGVsaXZlcmluZyB0aGUgcXVldWVcbiAqIG1lc3NhZ2UsIHJhdGhlciB0aGFuIGZhaWxpbmcgdGhlIHJ1bi4gQSBmcmVzaCBpbnZvY2F0aW9uIHdpbGwgbGlrZWx5XG4gKiBzdWNjZWVkIG9uY2UgdGhlIGJhY2tlbmQgKG9yIHRoZSBmaXJld2FsbCBpbiBmcm9udCBvZiBpdCkgcmVjb3ZlcnMuXG4gKlxuICogLSBgVGhyb3R0bGVFcnJvcmAgKDQyOSk6IHJhdGUgbGltaXRlZCAvIGxvYWQgc2hlZFxuICogLSBgV29ya2Zsb3dXb3JsZEVycm9yYCB3aXRoIGBzdGF0dXMgPj0gNTAwYDogc2VydmVyLXNpZGUgZXJyb3JcbiAqIC0gYFdvcmtmbG93V29ybGRFcnJvcmAgd2l0aCBhIHJldHJ5YWJsZSB0cmFuc3BvcnQgYGNvZGVgIChgVFJBTlNQT1JUYCAvXG4gKiAgIGBUSU1FT1VUYCk6IHRoZSByZXF1ZXN0IG5ldmVyIHByb2R1Y2VkIGEgdXNhYmxlIHJlc3BvbnNlXG4gKlxuICogVXNlcyBgLmlzKClgIG5hbWUtYmFzZWQgZHVjayBjaGVja3MgKG5vdCBgaW5zdGFuY2VvZmApIGZvciB0aGUgc2FtZVxuICogY3Jvc3MtYHZtYC1yZWFsbSByZWFzb24gZGVzY3JpYmVkIG9uIGBjbGFzc2lmeVJ1bkVycm9yYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmV0cnlhYmxlV29ybGRFcnJvcihlcnI6IHVua25vd24pOiBib29sZWFuIHtcbiAgaWYgKFRocm90dGxlRXJyb3IuaXMoZXJyKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIGlmICghV29ya2Zsb3dXb3JsZEVycm9yLmlzKGVycikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKGVyci5zdGF0dXMgIT09IHVuZGVmaW5lZCAmJiBlcnIuc3RhdHVzID49IDUwMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBlcnIuY29kZSAhPT0gdW5kZWZpbmVkICYmIFJFVFJZQUJMRV9XT1JMRF9FUlJPUl9DT0RFUy5oYXMoZXJyLmNvZGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xhc3NpZnlSdW5FcnJvcihlcnI6IHVua25vd24pOiBSdW5FcnJvckNvZGUge1xuICBpZiAoUmVwbGF5RGl2ZXJnZW5jZUVycm9yLmlzKGVycikpIHtcbiAgICByZXR1cm4gUlVOX0VSUk9SX0NPREVTLlJFUExBWV9ESVZFUkdFTkNFO1xuICB9XG5cbiAgaWYgKENvcnJ1cHRlZEV2ZW50TG9nRXJyb3IuaXMoZXJyKSkge1xuICAgIHJldHVybiBSVU5fRVJST1JfQ09ERVMuQ09SUlVQVEVEX0VWRU5UX0xPRztcbiAgfVxuXG4gIGlmIChNYXhFdmVudHNFeGNlZWRlZEVycm9yLmlzKGVycikpIHtcbiAgICByZXR1cm4gUlVOX0VSUk9SX0NPREVTLk1BWF9FVkVOVFNfRVhDRUVERUQ7XG4gIH1cblxuICBpZiAoV29ya2Zsb3dEZXBsb3ltZW50TWlzbWF0Y2hFcnJvci5pcyhlcnIpKSB7XG4gICAgcmV0dXJuIFJVTl9FUlJPUl9DT0RFUy5ERVBMT1lNRU5UX01JU01BVENIO1xuICB9XG5cbiAgLy8gV29ybGQtbGF5ZXIgZmF1bHRzLCBib3RoIGEgbWFsZm9ybWVkIHJlc3BvbnNlIChjb250cmFjdCB2aW9sYXRpb24pIGFuZCBhXG4gIC8vIHRyYW5zaWVudCBpbmZyYXN0cnVjdHVyZSBmYWlsdXJlICh0aHJvdHRsZSAvIDV4eCAvIHRyYW5zcG9ydCAvIHRpbWVvdXQsXG4gIC8vIGUuZy4gYSBmaXJld2FsbCBjaGFsbGVuZ2UpLCBhcmUgdGhlIGJhY2tlbmQncyBmYXVsdCwgbm90IHRoZSB1c2VyJ3MuXG4gIC8vIEJ1Y2tldCB0aGVtIHVuZGVyIFdPUkxEX0NPTlRSQUNUX0VSUk9SIHJhdGhlciB0aGFuIFVTRVJfRVJST1Igc28gZGFzaGJvYXJkc1xuICAvLyBhdHRyaWJ1dGUgYW4gb3V0YWdlIGNvcnJlY3RseS4gTm90ZSB0aGUgcmV0cnlhYmxlIHZhcmlhbnRzIGFyZSBub3JtYWxseVxuICAvLyByZWRlbGl2ZXJlZCB2aWEgdGhlIHF1ZXVlIChzZWUgYGlzUmV0cnlhYmxlV29ybGRFcnJvcmApIGFuZCBvbmx5IHJlYWNoIHRoaXNcbiAgLy8gdGVybWluYWwgY2xhc3NpZmljYXRpb24gaWYgdGhlIHJ1biB1bHRpbWF0ZWx5IGdpdmVzIHVwLlxuICBpZiAoaXNXb3JsZENvbnRyYWN0RXJyb3IoZXJyKSB8fCBpc1JldHJ5YWJsZVdvcmxkRXJyb3IoZXJyKSkge1xuICAgIHJldHVybiBSVU5fRVJST1JfQ09ERVMuV09STERfQ09OVFJBQ1RfRVJST1I7XG4gIH1cblxuICBmb3IgKGNvbnN0IGlzTWF0Y2ggb2YgUlVOVElNRV9FUlJPUl9DSEVDS1MpIHtcbiAgICBpZiAoaXNNYXRjaChlcnIpKSB7XG4gICAgICByZXR1cm4gUlVOX0VSUk9SX0NPREVTLlJVTlRJTUVfRVJST1I7XG4gICAgfVxuICB9XG4gIHJldHVybiBSVU5fRVJST1JfQ09ERVMuVVNFUl9FUlJPUjtcbn1cbiJdfQ==
@@ -10,7 +10,7 @@ declare const INSPECT_CUSTOM: unique symbol;
10
10
  * ANSI-framed string (for terminal display via `util.inspect` / `toString`).
11
11
  *
12
12
  * Keeping the pieces structured means we never have to strip ANSI back out
13
- * once it's in the message we just don't put it there in the first place.
13
+ * once it's in the message because we don't put it there in the first place.
14
14
  */
15
15
  export interface FramedContent {
16
16
  /** Headline. `{ code: 'foo()' }` segments render as backticked inline code. */
@@ -41,7 +41,7 @@ export declare function renderPretty(c: FramedContent): string;
41
41
  *
42
42
  * - `.message` is **plain text** (no ANSI escape bytes). Structured logs,
43
43
  * log drains, CBOR-serialized event data, and anything else that reads
44
- * `err.message` / `err.stack` as a string gets clean output no mojibake
44
+ * `err.message` / `err.stack` as a string gets clean output: no mojibake
45
45
  * in JSON, no `\x1B[...m` noise in Vercel logs.
46
46
  *
47
47
  * - The ANSI-framed version is rendered **lazily** via `toString()` and
@@ -50,13 +50,13 @@ export declare function renderPretty(c: FramedContent): string;
50
50
  * attached to a structured log field, the consumer sees plain text.
51
51
  *
52
52
  * - `fatal = true` marks these as non-retryable. Calling `createHook()`
53
- * from a step function will never succeed no matter how many retries
54
- * burning attempts just produces duplicated log output. The runtime's
53
+ * from a step function will never succeed no matter how many retries.
54
+ * Burning attempts produces duplicated log output. The runtime's
55
55
  * `FatalError.is(err)` gate recognizes any error with `fatal: true`.
56
56
  */
57
57
  export declare abstract class ContextViolationError extends Error {
58
58
  #private;
59
- /** Non-retryable see class doc. */
59
+ /** Non-retryable, see class doc. */
60
60
  readonly fatal = true;
61
61
  constructor(content: FramedContent);
62
62
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"context-violation-error.d.ts","sourceRoot":"","sources":["../src/context-violation-error.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,WAAW,MAAM,EAAE,CAAC;AAE1C,QAAA,MAAM,cAAc,eAA2C,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;IACnC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,MAAM,OAAO,GACf;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7B,MAAM,MAAM,MAAM,GACd;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC;AAwBrD,wBAAgB,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAepD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAGrD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,8BAAsB,qBAAsB,SAAQ,KAAK;;IACvD,qCAAqC;IACrC,QAAQ,CAAC,KAAK,QAAQ;gBAIV,OAAO,EAAE,aAAa;IAKlC;;;;;OAKG;IACH,CAAC,cAAc,CAAC,IAAI,MAAM;IAgB1B,QAAQ,IAAI,MAAM;CAGnB;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,SAAQ,qBAAqB;IAClE,IAAI,SAA+B;gBAEvB,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;CASnD;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,qBAAqB;IAC9D,IAAI,SAA2B;gBAEnB,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;CASnD;AAED;;;GAGG;AACH,qBAAa,+BAAgC,SAAQ,qBAAqB;IACxE,IAAI,SAAqC;gBAE7B,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;CASnD"}
1
+ {"version":3,"file":"context-violation-error.d.ts","sourceRoot":"","sources":["../src/context-violation-error.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,WAAW,MAAM,EAAE,CAAC;AAE1C,QAAA,MAAM,cAAc,eAA2C,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;IACnC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,MAAM,OAAO,GACf;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7B,MAAM,MAAM,MAAM,GACd;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC;AAwBrD,wBAAgB,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAepD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAGrD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,8BAAsB,qBAAsB,SAAQ,KAAK;;IACvD,oCAAoC;IACpC,QAAQ,CAAC,KAAK,QAAQ;gBAIV,OAAO,EAAE,aAAa;IAKlC;;;;;OAKG;IACH,CAAC,cAAc,CAAC,IAAI,MAAM;IAgB1B,QAAQ,IAAI,MAAM;CAGnB;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,SAAQ,qBAAqB;IAClE,IAAI,SAA+B;gBAEvB,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;CASnD;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,qBAAqB;IAC9D,IAAI,SAA2B;gBAEnB,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;CASnD;AAED;;;GAGG;AACH,qBAAa,+BAAgC,SAAQ,qBAAqB;IACxE,IAAI,SAAqC;gBAE7B,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;CASnD"}
@@ -51,7 +51,7 @@ export function renderPretty(c) {
51
51
  *
52
52
  * - `.message` is **plain text** (no ANSI escape bytes). Structured logs,
53
53
  * log drains, CBOR-serialized event data, and anything else that reads
54
- * `err.message` / `err.stack` as a string gets clean output no mojibake
54
+ * `err.message` / `err.stack` as a string gets clean output: no mojibake
55
55
  * in JSON, no `\x1B[...m` noise in Vercel logs.
56
56
  *
57
57
  * - The ANSI-framed version is rendered **lazily** via `toString()` and
@@ -60,12 +60,12 @@ export function renderPretty(c) {
60
60
  * attached to a structured log field, the consumer sees plain text.
61
61
  *
62
62
  * - `fatal = true` marks these as non-retryable. Calling `createHook()`
63
- * from a step function will never succeed no matter how many retries
64
- * burning attempts just produces duplicated log output. The runtime's
63
+ * from a step function will never succeed no matter how many retries.
64
+ * Burning attempts produces duplicated log output. The runtime's
65
65
  * `FatalError.is(err)` gate recognizes any error with `fatal: true`.
66
66
  */
67
67
  export class ContextViolationError extends Error {
68
- /** Non-retryable see class doc. */
68
+ /** Non-retryable, see class doc. */
69
69
  fatal = true;
70
70
  #content;
71
71
  constructor(content) {
@@ -146,4 +146,4 @@ export class NotInWorkflowOrStepContextError extends ContextViolationError {
146
146
  });
147
147
  }
148
148
  }
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC12aW9sYXRpb24tZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dC12aW9sYXRpb24tZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSx1QkFBdUIsQ0FBQztBQVE5QyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUEwQmhFLFNBQVMsa0JBQWtCLENBQUMsQ0FBVTtJQUNwQyxJQUFJLE1BQU0sSUFBSSxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN4QyxJQUFJLEtBQUssSUFBSSxDQUFDO1FBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQzdCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxDQUFVO0lBQ3JDLElBQUksTUFBTSxJQUFJLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLElBQUksS0FBSyxJQUFJLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxDQUFTO0lBQ2xDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNO1FBQUUsT0FBTyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMvQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLENBQVM7SUFDbkMsSUFBSSxDQUFDLENBQUMs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LGlDQUFpQyxDQUFDO0lBRXpDLFlBQVksWUFBb0IsRUFBRSxPQUFnQjtRQUNoRCxLQUFLLENBQUM7WUFDSixLQUFLLEVBQUU7Z0JBQ0wsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFO2dCQUN0QixFQUFFLElBQUksRUFBRSx3REFBd0QsRUFBRTthQUNuRTtZQUNELE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgQW5zaSBmcm9tICdAd29ya2Zsb3cvZXJyb3JzL2Fuc2knO1xuXG4vKipcbiAqIEEgYGRvY3M6YCBsaW5lIFVSTC4gVGhlIGxlYWRpbmcgcHJvdG9jb2wgaXMgcGFydCBvZiB0aGUgdHlwZSBzbyBjYWxsIHNpdGVzXG4gKiBjYW4ndCBhY2NpZGVudGFsbHkgcGFzcyBhIHByb3RvY29sLXJlbGF0aXZlIG9yIGJhcmUgcGF0aC5cbiAqL1xuZXhwb3J0IHR5cGUgRG9jc1VybCA9IGBodHRwczovLyR7c3RyaW5nfWA7XG5cbmNvbnN0IElOU1BFQ1RfQ1VTVE9NID0gU3ltYm9sLmZvcignbm9kZWpzLnV0aWwuaW5zcGVjdC5jdXN0b20nKTtcblxuLyoqXG4gKiBTdHJ1Y3R1cmVkIGRhdGEgZm9yIGEgZnJhbWVkIGVycm9yLiBUaGUgYmFzZSBjbGFzcyB0YWtlcyB0aGlzIGFuZCByZW5kZXJzXG4gKiBpdCB0byBwbGFpbiB0ZXh0IChmb3IgYC5tZXNzYWdlYCAvIGAuc3RhY2tgIC8gc3RydWN0dXJlZCBsb2dzKSBvciB0byBhblxuICogQU5TSS1mcmFtZWQgc3RyaW5nIChmb3IgdGVybWluYWwgZGlzcGxheSB2aWEgYHV0aWwuaW5zcGVjdGAgLyBgdG9TdHJpbmdgKS5cbiAqXG4gKiBLZWVwaW5nIHRoZSBwaWVjZXMgc3RydWN0dXJlZCBtZWFucyB3ZSBuZXZlciBoYXZlIHRvIHN0cmlwIEFOU0kgYmFjayBvdXRcbiAqIG9uY2UgaXQncyBpbiB0aGUgbWVzc2FnZSDigJQgd2UganVzdCBkb24ndCBwdXQgaXQgdGhlcmUgaW4gdGhlIGZpcnN0IHBsYWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZyYW1lZENvbnRlbnQge1xuICAvKiogSGVhZGxpbmUuIGB7IGNvZGU6ICdmb28oKScgfWAgc2VnbWVudHMgcmVuZGVyIGFzIGJhY2t0aWNrZWQgaW5saW5lIGNvZGUuICovXG4gIHJlYWRvbmx5IHRpdGxlOiByZWFkb25seSBTZWdtZW50W107XG4gIC8qKiBPbmUgZnJhbWVkIGJyYW5jaCBwZXIgZW50cnkuIFRoZSBsYXN0IHVzZXMgYOKVsOKWtmAsIG90aGVycyB1c2UgYOKUnOKWtmAuICovXG4gIHJlYWRvbmx5IGRldGFpbHM6IHJlYWRvbmx5IERldGFpbFtdO1xufVxuXG5leHBvcnQgdHlwZSBTZWdtZW50ID1cbiAgfCB7IHJlYWRvbmx5IHRleHQ6IHN0cmluZyB9XG4gIHwgeyByZWFkb25seSBjb2RlOiBzdHJpbmcgfVxuICB8IHsgcmVhZG9ubHkgZGltOiBzdHJpbmcgfTtcblxuZXhwb3J0IHR5cGUgRGV0YWlsID1cbiAgfCB7IHJlYWRvbmx5IHR5cGU6ICdwbGFpbic7IHJlYWRvbmx5IHNlZ21lbnRzOiByZWFkb25seSBTZWdtZW50W10gfVxuICB8IHsgcmVhZG9ubHkgdHlwZTogJ2RvY3MnOyByZWFkb25seSB1cmw6IERvY3NVcmwgfTtcblxuZnVuY3Rpb24gcmVuZGVyU2VnbWVudFBsYWluKHM6IFNlZ21lbnQpOiBzdHJpbmcge1xuICBpZiAoJ2NvZGUnIGluIHMpIHJldHVybiBgXFxgJHtzLmNvZGV9XFxgYDtcbiAgaWYgKCdkaW0nIGluIHMpIHJldHVybiBzLmRpbTtcbiAgcmV0dXJuIHMudGV4dDtcbn1cblxuZnVuY3Rpb24gcmVuZGVyU2VnbWVudFByZXR0eShzOiBTZWdtZW50KTogc3RyaW5nIHtcbiAgaWYgKCdjb2RlJyBpbiBzKSByZXR1cm4gQW5zaS5jb2RlKHMuY29kZSk7XG4gIGlmICgnZGltJyBpbiBzKSByZXR1cm4gQW5zaS5kaW0ocy5kaW0pO1xuICByZXR1cm4gcy50ZXh0O1xufVxuXG5mdW5jdGlvbiByZW5kZXJEZXRhaWxQbGFpbihkOiBEZXRhaWwpOiBzdHJpbmcge1xuICBpZiAoZC50eXBlID09PSAnZG9jcycpIHJldHVybiBgZG9jczogJHtkLnVybH1gO1xuICByZXR1cm4gZC5zZWdtZW50cy5tYXAocmVuZGVyU2VnbWVudFBsYWluKS5qb2luKCcnKTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyRGV0YWlsUHJldHR5KGQ6IERldGFpbCk6IHN0cmluZyB7XG4gIGlmIChkLnR5cGUgPT09ICdkb2NzJykgcmV0dXJuIEFuc2kuZG9jcyhkLnVybCk7XG4gIHJldHVybiBkLnNlZ21lbnRzLm1hcChyZW5kZXJTZWdtZW50UHJldHR5KS5qb2luKCcnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlclBsYWluKGM6IEZyYW1lZENvbnRlbnQpOiBzdHJpbmcge1xuICAvLyBNaW1pYyBgQW5zaS5mcmFtZWAgc3RydWN0dXJlIHNvIGAubWVzc2FnZWAgaXMgc3RpbGwgcmVhZGFibGUgaW4gbG9nc1xuICAvLyBldmVuIHdpdGhvdXQgdGhlIGNvbG9yLlxuICBjb25zdCB0aXRsZSA9IGMudGl0bGUubWFwKHJlbmRlclNlZ21lbnRQbGFpbikuam9pbignJyk7XG4gIGNvbnN0IGxpbmVzID0gW3RpdGxlXTtcbiAgYy5kZXRhaWxzLmZvckVhY2goKGRldGFpbCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBpc0xhc3QgPSBpbmRleCA9PT0gYy5kZXRhaWxzLmxlbmd0aCAtIDE7XG4gICAgY29uc3QgZmlyc3QgPSBpc0xhc3QgPyAn4pWw4pa2ICcgOiAn4pSc4pa2ICc7XG4gICAgY29uc3QgY29udCA9IGlzTGFzdCA/ICcgICAnIDogJ+KUgiAgJztcbiAgICBjb25zdCByYXcgPSByZW5kZXJEZXRhaWxQbGFpbihkZXRhaWwpLnNwbGl0KCdcXG4nKTtcbiAgICByYXcuZm9yRWFjaCgobGluZSwgaSkgPT4ge1xuICAgICAgbGluZXMucHVzaChgJHtpID09PSAwID8gZmlyc3QgOiBjb250fSR7bGluZX1gKTtcbiAgICB9KTtcbiAgfSk7XG4gIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlclByZXR0eShjOiBGcmFtZWRDb250ZW50KTogc3RyaW5nIHtcbiAgY29uc3QgdGl0bGUgPSBjLnRpdGxlLm1hcChyZW5kZXJTZWdtZW50UHJldHR5KS5qb2luKCcnKTtcbiAgcmV0dXJuIEFuc2kuZnJhbWUodGl0bGUsIGMuZGV0YWlscy5tYXAocmVuZGVyRGV0YWlsUHJldHR5KSk7XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3Igc3RydWN0dXJlZCBjb250ZXh0LXZpb2xhdGlvbiBlcnJvcnMuXG4gKlxuICogRGVzaWduIG5vdGVzOlxuICpcbiAqIC0gYC5tZXNzYWdlYCBpcyAqKnBsYWluIHRleHQqKiAobm8gQU5TSSBlc2NhcGUgYnl0ZXMpLiBTdHJ1Y3R1cmVkIGxvZ3MsXG4gKiAgIGxvZyBkcmFpbnMsIENCT1Itc2VyaWFsaXplZCBldmVudCBkYXRhLCBhbmQgYW55dGhpbmcgZWxzZSB0aGF0IHJlYWRzXG4gKiAgIGBlcnIubWVzc2FnZWAgLyBgZXJyLnN0YWNrYCBhcyBhIHN0cmluZyBnZXRzIGNsZWFuIG91dHB1dCDigJQgbm8gbW9qaWJha2VcbiAqICAgaW4gSlNPTiwgbm8gYFxceDFCWy4uLm1gIG5vaXNlIGluIFZlcmNlbCBsb2dzLlxuICpcbiAqIC0gVGhlIEFOU0ktZnJhbWVkIHZlcnNpb24gaXMgcmVuZGVyZWQgKipsYXppbHkqKiB2aWEgYHRvU3RyaW5nKClgIGFuZFxuICogICBgW3V0aWwuaW5zcGVjdC5jdXN0b21dYC4gV2hlbiB0aGUgZXJyb3IgaXMgdGhyb3duIGFuZCBOb2RlIHByaW50cyBpdFxuICogICB2aWEgYHV0aWwuaW5zcGVjdGAsIHRoZSB1c2VyIHNlZXMgdGhlIGNvbG9yZWQsIGZyYW1lZCBib3guIFdoZW4gaXQnc1xuICogICBhdHRhY2hlZCB0byBhIHN0cnVjdHVyZWQgbG9nIGZpZWxkLCB0aGUgY29uc3VtZXIgc2VlcyBwbGFpbiB0ZXh0LlxuICpcbiAqIC0gYGZhdGFsID0gdHJ1ZWAgbWFya3MgdGhlc2UgYXMgbm9uLXJldHJ5YWJsZS4gQ2FsbGluZyBgY3JlYXRlSG9vaygpYFxuICogICBmcm9tIGEgc3RlcCBmdW5jdGlvbiB3aWxsIG5ldmVyIHN1Y2NlZWQgbm8gbWF0dGVyIGhvdyBtYW55IHJldHJpZXMg4oCUXG4gKiAgIGJ1cm5pbmcgYXR0ZW1wdHMganVzdCBwcm9kdWNlcyBkdXBsaWNhdGVkIGxvZyBvdXRwdXQuIFRoZSBydW50aW1lJ3NcbiAqICAgYEZhdGFsRXJyb3IuaXMoZXJyKWAgZ2F0ZSByZWNvZ25pemVzIGFueSBlcnJvciB3aXRoIGBmYXRhbDogdHJ1ZWAuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb250ZXh0VmlvbGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIC8qKiBOb24tcmV0cnlhYmxlIOKAlCBzZWUgY2xhc3MgZG9jLiAqL1xuICByZWFkb25seSBmYXRhbCA9IHRydWU7XG5cbiAgcmVhZG9ubHkgI2NvbnRlbnQ6IEZyYW1lZENvbnRlbnQ7XG5cbiAgY29uc3RydWN0b3IoY29udGVudDogRnJhbWVkQ29udGVudCkge1xuICAgIHN1cGVyKHJlbmRlclBsYWluKGNvbnRlbnQpKTtcbiAgICB0aGlzLiNjb250ZW50ID0gY29udGVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBgY29uc29sZS5sb2coZXJyKWAgYW5kIG1vc3QgTm9kZSBpbnRlcm5hbHMgcm91dGUgdGhyb3VnaCBgdXRpbC5pbnNwZWN0YCxcbiAgICogd2hpY2ggcmVzcGVjdHMgdGhpcyBzeW1ib2wuIFJldHVybmluZyBhIGN1c3RvbSBzdHJpbmcgaGVyZSBtZWFucyB0aGVcbiAgICogdGhyb3duIGVycm9yIHByaW50cyBhcyBhIHByZXR0eSBmcmFtZSBpbiB0aGUgdGVybWluYWwgd2hpbGUgYC5tZXNzYWdlYFxuICAgKiBhbmQgYC5zdGFja2Agc3RheSBwbGFpbi5cbiAgICovXG4gIFtJTlNQRUNUX0NVU1RPTV0oKTogc3RyaW5nIHtcbiAgICBjb25zdCBwcmV0dHkgPSByZW5kZXJQcmV0dHkodGhpcy4jY29udGVudCk7XG4gICAgLy8gYHN0YWNrYCBzdGFydHMgd2l0aCBgJHtuYW1lfTogJHttZXNzYWdlfVxcbiAgICBhdCAuLi5gLiBPdXIgbWVzc2FnZSBpc1xuICAgIC8vIG11bHRpLWxpbmUgKGB0aXRsZVxcbuKVsOKWtiBkb2NzOiDigKZgKSwgc28gc2xpY2luZyBvbmx5IHRoZSBmaXJzdCBsaW5lIGdsdWVzXG4gICAgLy8gdGhlIGZyYW1lZC1kZXRhaWwgdGFpbCBvZiB0aGUgbWVzc2FnZSBvbnRvIHRoZSBwcmVwZW5kZWQgcHJldHR5IGZvcm1cbiAgICAvLyBhbmQgcmVuZGVycyBldmVyeSBkZXRhaWwgbGluZSB0d2ljZS4gU2xpY2UgcGFzdCAqYWxsKiBtZXNzYWdlIGxpbmVzLlxuICAgIGNvbnN0IG1lc3NhZ2VMaW5lQ291bnQgPSB0aGlzLm1lc3NhZ2Uuc3BsaXQoJ1xcbicpLmxlbmd0aDtcbiAgICBjb25zdCB0YWlsID0gKHRoaXMuc3RhY2sgPz8gJycpXG4gICAgICAuc3BsaXQoJ1xcbicpXG4gICAgICAuc2xpY2UobWVzc2FnZUxpbmVDb3VudClcbiAgICAgIC5qb2luKCdcXG4nKTtcbiAgICByZXR1cm4gdGFpbFxuICAgICAgPyBgJHt0aGlzLm5hbWV9OiAke3ByZXR0eX1cXG4ke3RhaWx9YFxuICAgICAgOiBgJHt0aGlzLm5hbWV9OiAke3ByZXR0eX1gO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5uYW1lfTogJHtyZW5kZXJQcmV0dHkodGhpcy4jY29udGVudCl9YDtcbiAgfVxufVxuXG4vKipcbiAqIFRocm93biB3aGVuIGFuIEFQSSB0aGF0IG11c3QgcnVuIGluc2lkZSBhIHdvcmtmbG93IGZ1bmN0aW9uIGlzIGNhbGxlZFxuICogZnJvbSBvdXRzaWRlIGEgd29ya2Zsb3cgY29udGV4dCAoZS5nLiBmcm9tIGEgc3RlcCBmdW5jdGlvbiBvciBmcm9tXG4gKiByZWd1bGFyIGFwcGxpY2F0aW9uIGNvZGUpLlxuICovXG5leHBvcnQgY2xhc3MgTm90SW5Xb3JrZmxvd0NvbnRleHRFcnJvciBleHRlbmRzIENvbnRleHRWaW9sYXRpb25FcnJvciB7XG4gIG5hbWUgPSAnTm90SW5Xb3JrZmxvd0NvbnRleHRFcnJvcic7XG5cbiAgY29uc3RydWN0b3IoZnVuY3Rpb25OYW1lOiBzdHJpbmcsIGRvY3NVcmw6IERvY3NVcmwpIHtcbiAgICBzdXBlcih7XG4gICAgICB0aXRsZTogW1xuICAgICAgICB7IGNvZGU6IGZ1bmN0aW9uTmFtZSB9LFxuICAgICAgICB7IHRleHQ6ICcgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBhIHdvcmtmbG93IGZ1bmN0aW9uJyB9LFxuICAgICAgXSxcbiAgICAgIGRldGFpbHM6IFt7IHR5cGU6ICdkb2NzJywgdXJsOiBkb2NzVXJsIH1dLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogVGhyb3duIHdoZW4gYW4gQVBJIHRoYXQgbXVzdCBydW4gaW5zaWRlIGEgc3RlcCBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbVxuICogb3V0c2lkZSBhIHN0ZXAgY29udGV4dC5cbiAqL1xuZXhwb3J0IGNsYXNzIE5vdEluU3RlcENvbnRleHRFcnJvciBleHRlbmRzIENvbnRleHRWaW9sYXRpb25FcnJvciB7XG4gIG5hbWUgPSAnTm90SW5TdGVwQ29udGV4dEVycm9yJztcblxuICBjb25zdHJ1Y3RvcihmdW5jdGlvbk5hbWU6IHN0cmluZywgZG9jc1VybDogRG9jc1VybCkge1xuICAgIHN1cGVyKHtcbiAgICAgIHRpdGxlOiBbXG4gICAgICAgIHsgY29kZTogZnVuY3Rpb25OYW1lIH0sXG4gICAgICAgIHsgdGV4dDogJyBjYW4gb25seSBiZSBjYWxsZWQgaW5zaWRlIGEgc3RlcCBmdW5jdGlvbicgfSxcbiAgICAgIF0sXG4gICAgICBkZXRhaWxzOiBbeyB0eXBlOiAnZG9jcycsIHVybDogZG9jc1VybCB9XSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFRocm93biB3aGVuIGFuIEFQSSB0aGF0IG11c3QgcnVuIGluc2lkZSBlaXRoZXIgYSB3b3JrZmxvdyBvciBzdGVwIGZ1bmN0aW9uXG4gKiBpcyBjYWxsZWQgZnJvbSByZWd1bGFyIGFwcGxpY2F0aW9uIGNvZGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3RJbldvcmtmbG93T3JTdGVwQ29udGV4dEVycm9yIGV4dGVuZHMgQ29udGV4dFZpb2xhdGlvbkVycm9yIHtcbiAgbmFtZSA9ICdOb3RJbldvcmtmbG93T3JTdGVwQ29udGV4dEVycm9yJztcblxuICBjb25zdHJ1Y3RvcihmdW5jdGlvbk5hbWU6IHN0cmluZywgZG9jc1VybDogRG9jc1VybCkge1xuICAgIHN1cGVyKHtcbiAgICAgIHRpdGxlOiBbXG4gICAgICAgIHsgY29kZTogZnVuY3Rpb25OYW1lIH0sXG4gICAgICAgIHsgdGV4dDogJyBjYW4gb25seSBiZSBjYWxsZWQgaW5zaWRlIGEgd29ya2Zsb3cgb3Igc3RlcCBmdW5jdGlvbicgfSxcbiAgICAgIF0sXG4gICAgICBkZXRhaWxzOiBbeyB0eXBlOiAnZG9jcycsIHVybDogZG9jc1VybCB9XSxcbiAgICB9KTtcbiAgfVxufVxuIl19
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC12aW9sYXRpb24tZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29udGV4dC12aW9sYXRpb24tZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSx1QkFBdUIsQ0FBQztBQVE5QyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUEwQmhFLFNBQVMsa0JBQWtCLENBQUMsQ0FBVTtJQUNwQyxJQUFJLE1BQU0sSUFBSSxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN4QyxJQUFJLEtBQUssSUFBSSxDQUFDO1FBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQzdCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxDQUFVO0lBQ3JDLElBQUksTUFBTSxJQUFJLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLElBQUksS0FBSyxJQUFJLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxDQUFTO0lBQ2xDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNO1FBQUUsT0FBTyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMvQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLENBQVM7SUFDbkMsSUFBSSxDQUFDLENBQUMs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LGlDQUFpQyxDQUFDO0lBRXpDLFlBQVksWUFBb0IsRUFBRSxPQUFnQjtRQUNoRCxLQUFLLENBQUM7WUFDSixLQUFLLEVBQUU7Z0JBQ0wsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFO2dCQUN0QixFQUFFLElBQUksRUFBRSx3REFBd0QsRUFBRTthQUNuRTtZQUNELE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgQW5zaSBmcm9tICdAd29ya2Zsb3cvZXJyb3JzL2Fuc2knO1xuXG4vKipcbiAqIEEgYGRvY3M6YCBsaW5lIFVSTC4gVGhlIGxlYWRpbmcgcHJvdG9jb2wgaXMgcGFydCBvZiB0aGUgdHlwZSBzbyBjYWxsIHNpdGVzXG4gKiBjYW4ndCBhY2NpZGVudGFsbHkgcGFzcyBhIHByb3RvY29sLXJlbGF0aXZlIG9yIGJhcmUgcGF0aC5cbiAqL1xuZXhwb3J0IHR5cGUgRG9jc1VybCA9IGBodHRwczovLyR7c3RyaW5nfWA7XG5cbmNvbnN0IElOU1BFQ1RfQ1VTVE9NID0gU3ltYm9sLmZvcignbm9kZWpzLnV0aWwuaW5zcGVjdC5jdXN0b20nKTtcblxuLyoqXG4gKiBTdHJ1Y3R1cmVkIGRhdGEgZm9yIGEgZnJhbWVkIGVycm9yLiBUaGUgYmFzZSBjbGFzcyB0YWtlcyB0aGlzIGFuZCByZW5kZXJzXG4gKiBpdCB0byBwbGFpbiB0ZXh0IChmb3IgYC5tZXNzYWdlYCAvIGAuc3RhY2tgIC8gc3RydWN0dXJlZCBsb2dzKSBvciB0byBhblxuICogQU5TSS1mcmFtZWQgc3RyaW5nIChmb3IgdGVybWluYWwgZGlzcGxheSB2aWEgYHV0aWwuaW5zcGVjdGAgLyBgdG9TdHJpbmdgKS5cbiAqXG4gKiBLZWVwaW5nIHRoZSBwaWVjZXMgc3RydWN0dXJlZCBtZWFucyB3ZSBuZXZlciBoYXZlIHRvIHN0cmlwIEFOU0kgYmFjayBvdXRcbiAqIG9uY2UgaXQncyBpbiB0aGUgbWVzc2FnZSBiZWNhdXNlIHdlIGRvbid0IHB1dCBpdCB0aGVyZSBpbiB0aGUgZmlyc3QgcGxhY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnJhbWVkQ29udGVudCB7XG4gIC8qKiBIZWFkbGluZS4gYHsgY29kZTogJ2ZvbygpJyB9YCBzZWdtZW50cyByZW5kZXIgYXMgYmFja3RpY2tlZCBpbmxpbmUgY29kZS4gKi9cbiAgcmVhZG9ubHkgdGl0bGU6IHJlYWRvbmx5IFNlZ21lbnRbXTtcbiAgLyoqIE9uZSBmcmFtZWQgYnJhbmNoIHBlciBlbnRyeS4gVGhlIGxhc3QgdXNlcyBg4pWw4pa2YCwgb3RoZXJzIHVzZSBg4pSc4pa2YC4gKi9cbiAgcmVhZG9ubHkgZGV0YWlsczogcmVhZG9ubHkgRGV0YWlsW107XG59XG5cbmV4cG9ydCB0eXBlIFNlZ21lbnQgPVxuICB8IHsgcmVhZG9ubHkgdGV4dDogc3RyaW5nIH1cbiAgfCB7IHJlYWRvbmx5IGNvZGU6IHN0cmluZyB9XG4gIHwgeyByZWFkb25seSBkaW06IHN0cmluZyB9O1xuXG5leHBvcnQgdHlwZSBEZXRhaWwgPVxuICB8IHsgcmVhZG9ubHkgdHlwZTogJ3BsYWluJzsgcmVhZG9ubHkgc2VnbWVudHM6IHJlYWRvbmx5IFNlZ21lbnRbXSB9XG4gIHwgeyByZWFkb25seSB0eXBlOiAnZG9jcyc7IHJlYWRvbmx5IHVybDogRG9jc1VybCB9O1xuXG5mdW5jdGlvbiByZW5kZXJTZWdtZW50UGxhaW4oczogU2VnbWVudCk6IHN0cmluZyB7XG4gIGlmICgnY29kZScgaW4gcykgcmV0dXJuIGBcXGAke3MuY29kZX1cXGBgO1xuICBpZiAoJ2RpbScgaW4gcykgcmV0dXJuIHMuZGltO1xuICByZXR1cm4gcy50ZXh0O1xufVxuXG5mdW5jdGlvbiByZW5kZXJTZWdtZW50UHJldHR5KHM6IFNlZ21lbnQpOiBzdHJpbmcge1xuICBpZiAoJ2NvZGUnIGluIHMpIHJldHVybiBBbnNpLmNvZGUocy5jb2RlKTtcbiAgaWYgKCdkaW0nIGluIHMpIHJldHVybiBBbnNpLmRpbShzLmRpbSk7XG4gIHJldHVybiBzLnRleHQ7XG59XG5cbmZ1bmN0aW9uIHJlbmRlckRldGFpbFBsYWluKGQ6IERldGFpbCk6IHN0cmluZyB7XG4gIGlmIChkLnR5cGUgPT09ICdkb2NzJykgcmV0dXJuIGBkb2NzOiAke2QudXJsfWA7XG4gIHJldHVybiBkLnNlZ21lbnRzLm1hcChyZW5kZXJTZWdtZW50UGxhaW4pLmpvaW4oJycpO1xufVxuXG5mdW5jdGlvbiByZW5kZXJEZXRhaWxQcmV0dHkoZDogRGV0YWlsKTogc3RyaW5nIHtcbiAgaWYgKGQudHlwZSA9PT0gJ2RvY3MnKSByZXR1cm4gQW5zaS5kb2NzKGQudXJsKTtcbiAgcmV0dXJuIGQuc2VnbWVudHMubWFwKHJlbmRlclNlZ21lbnRQcmV0dHkpLmpvaW4oJycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyUGxhaW4oYzogRnJhbWVkQ29udGVudCk6IHN0cmluZyB7XG4gIC8vIE1pbWljIGBBbnNpLmZyYW1lYCBzdHJ1Y3R1cmUgc28gYC5tZXNzYWdlYCBpcyBzdGlsbCByZWFkYWJsZSBpbiBsb2dzXG4gIC8vIGV2ZW4gd2l0aG91dCB0aGUgY29sb3IuXG4gIGNvbnN0IHRpdGxlID0gYy50aXRsZS5tYXAocmVuZGVyU2VnbWVudFBsYWluKS5qb2luKCcnKTtcbiAgY29uc3QgbGluZXMgPSBbdGl0bGVdO1xuICBjLmRldGFpbHMuZm9yRWFjaCgoZGV0YWlsLCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IGlzTGFzdCA9IGluZGV4ID09PSBjLmRldGFpbHMubGVuZ3RoIC0gMTtcbiAgICBjb25zdCBmaXJzdCA9IGlzTGFzdCA/ICfilbDilrYgJyA6ICfilJzilrYgJztcbiAgICBjb25zdCBjb250ID0gaXNMYXN0ID8gJyAgICcgOiAn4pSCICAnO1xuICAgIGNvbnN0IHJhdyA9IHJlbmRlckRldGFpbFBsYWluKGRldGFpbCkuc3BsaXQoJ1xcbicpO1xuICAgIHJhdy5mb3JFYWNoKChsaW5lLCBpKSA9PiB7XG4gICAgICBsaW5lcy5wdXNoKGAke2kgPT09IDAgPyBmaXJzdCA6IGNvbnR9JHtsaW5lfWApO1xuICAgIH0pO1xuICB9KTtcbiAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcbicpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyUHJldHR5KGM6IEZyYW1lZENvbnRlbnQpOiBzdHJpbmcge1xuICBjb25zdCB0aXRsZSA9IGMudGl0bGUubWFwKHJlbmRlclNlZ21lbnRQcmV0dHkpLmpvaW4oJycpO1xuICByZXR1cm4gQW5zaS5mcmFtZSh0aXRsZSwgYy5kZXRhaWxzLm1hcChyZW5kZXJEZXRhaWxQcmV0dHkpKTtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBzdHJ1Y3R1cmVkIGNvbnRleHQtdmlvbGF0aW9uIGVycm9ycy5cbiAqXG4gKiBEZXNpZ24gbm90ZXM6XG4gKlxuICogLSBgLm1lc3NhZ2VgIGlzICoqcGxhaW4gdGV4dCoqIChubyBBTlNJIGVzY2FwZSBieXRlcykuIFN0cnVjdHVyZWQgbG9ncyxcbiAqICAgbG9nIGRyYWlucywgQ0JPUi1zZXJpYWxpemVkIGV2ZW50IGRhdGEsIGFuZCBhbnl0aGluZyBlbHNlIHRoYXQgcmVhZHNcbiAqICAgYGVyci5tZXNzYWdlYCAvIGBlcnIuc3RhY2tgIGFzIGEgc3RyaW5nIGdldHMgY2xlYW4gb3V0cHV0OiBubyBtb2ppYmFrZVxuICogICBpbiBKU09OLCBubyBgXFx4MUJbLi4ubWAgbm9pc2UgaW4gVmVyY2VsIGxvZ3MuXG4gKlxuICogLSBUaGUgQU5TSS1mcmFtZWQgdmVyc2lvbiBpcyByZW5kZXJlZCAqKmxhemlseSoqIHZpYSBgdG9TdHJpbmcoKWAgYW5kXG4gKiAgIGBbdXRpbC5pbnNwZWN0LmN1c3RvbV1gLiBXaGVuIHRoZSBlcnJvciBpcyB0aHJvd24gYW5kIE5vZGUgcHJpbnRzIGl0XG4gKiAgIHZpYSBgdXRpbC5pbnNwZWN0YCwgdGhlIHVzZXIgc2VlcyB0aGUgY29sb3JlZCwgZnJhbWVkIGJveC4gV2hlbiBpdCdzXG4gKiAgIGF0dGFjaGVkIHRvIGEgc3RydWN0dXJlZCBsb2cgZmllbGQsIHRoZSBjb25zdW1lciBzZWVzIHBsYWluIHRleHQuXG4gKlxuICogLSBgZmF0YWwgPSB0cnVlYCBtYXJrcyB0aGVzZSBhcyBub24tcmV0cnlhYmxlLiBDYWxsaW5nIGBjcmVhdGVIb29rKClgXG4gKiAgIGZyb20gYSBzdGVwIGZ1bmN0aW9uIHdpbGwgbmV2ZXIgc3VjY2VlZCBubyBtYXR0ZXIgaG93IG1hbnkgcmV0cmllcy5cbiAqICAgQnVybmluZyBhdHRlbXB0cyBwcm9kdWNlcyBkdXBsaWNhdGVkIGxvZyBvdXRwdXQuIFRoZSBydW50aW1lJ3NcbiAqICAgYEZhdGFsRXJyb3IuaXMoZXJyKWAgZ2F0ZSByZWNvZ25pemVzIGFueSBlcnJvciB3aXRoIGBmYXRhbDogdHJ1ZWAuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb250ZXh0VmlvbGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIC8qKiBOb24tcmV0cnlhYmxlLCBzZWUgY2xhc3MgZG9jLiAqL1xuICByZWFkb25seSBmYXRhbCA9IHRydWU7XG5cbiAgcmVhZG9ubHkgI2NvbnRlbnQ6IEZyYW1lZENvbnRlbnQ7XG5cbiAgY29uc3RydWN0b3IoY29udGVudDogRnJhbWVkQ29udGVudCkge1xuICAgIHN1cGVyKHJlbmRlclBsYWluKGNvbnRlbnQpKTtcbiAgICB0aGlzLiNjb250ZW50ID0gY29udGVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBgY29uc29sZS5sb2coZXJyKWAgYW5kIG1vc3QgTm9kZSBpbnRlcm5hbHMgcm91dGUgdGhyb3VnaCBgdXRpbC5pbnNwZWN0YCxcbiAgICogd2hpY2ggcmVzcGVjdHMgdGhpcyBzeW1ib2wuIFJldHVybmluZyBhIGN1c3RvbSBzdHJpbmcgaGVyZSBtZWFucyB0aGVcbiAgICogdGhyb3duIGVycm9yIHByaW50cyBhcyBhIHByZXR0eSBmcmFtZSBpbiB0aGUgdGVybWluYWwgd2hpbGUgYC5tZXNzYWdlYFxuICAgKiBhbmQgYC5zdGFja2Agc3RheSBwbGFpbi5cbiAgICovXG4gIFtJTlNQRUNUX0NVU1RPTV0oKTogc3RyaW5nIHtcbiAgICBjb25zdCBwcmV0dHkgPSByZW5kZXJQcmV0dHkodGhpcy4jY29udGVudCk7XG4gICAgLy8gYHN0YWNrYCBzdGFydHMgd2l0aCBgJHtuYW1lfTogJHttZXNzYWdlfVxcbiAgICBhdCAuLi5gLiBPdXIgbWVzc2FnZSBpc1xuICAgIC8vIG11bHRpLWxpbmUgKGB0aXRsZVxcbuKVsOKWtiBkb2NzOiDigKZgKSwgc28gc2xpY2luZyBvbmx5IHRoZSBmaXJzdCBsaW5lIGdsdWVzXG4gICAgLy8gdGhlIGZyYW1lZC1kZXRhaWwgdGFpbCBvZiB0aGUgbWVzc2FnZSBvbnRvIHRoZSBwcmVwZW5kZWQgcHJldHR5IGZvcm1cbiAgICAvLyBhbmQgcmVuZGVycyBldmVyeSBkZXRhaWwgbGluZSB0d2ljZS4gU2xpY2UgcGFzdCAqYWxsKiBtZXNzYWdlIGxpbmVzLlxuICAgIGNvbnN0IG1lc3NhZ2VMaW5lQ291bnQgPSB0aGlzLm1lc3NhZ2Uuc3BsaXQoJ1xcbicpLmxlbmd0aDtcbiAgICBjb25zdCB0YWlsID0gKHRoaXMuc3RhY2sgPz8gJycpXG4gICAgICAuc3BsaXQoJ1xcbicpXG4gICAgICAuc2xpY2UobWVzc2FnZUxpbmVDb3VudClcbiAgICAgIC5qb2luKCdcXG4nKTtcbiAgICByZXR1cm4gdGFpbFxuICAgICAgPyBgJHt0aGlzLm5hbWV9OiAke3ByZXR0eX1cXG4ke3RhaWx9YFxuICAgICAgOiBgJHt0aGlzLm5hbWV9OiAke3ByZXR0eX1gO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5uYW1lfTogJHtyZW5kZXJQcmV0dHkodGhpcy4jY29udGVudCl9YDtcbiAgfVxufVxuXG4vKipcbiAqIFRocm93biB3aGVuIGFuIEFQSSB0aGF0IG11c3QgcnVuIGluc2lkZSBhIHdvcmtmbG93IGZ1bmN0aW9uIGlzIGNhbGxlZFxuICogZnJvbSBvdXRzaWRlIGEgd29ya2Zsb3cgY29udGV4dCAoZS5nLiBmcm9tIGEgc3RlcCBmdW5jdGlvbiBvciBmcm9tXG4gKiByZWd1bGFyIGFwcGxpY2F0aW9uIGNvZGUpLlxuICovXG5leHBvcnQgY2xhc3MgTm90SW5Xb3JrZmxvd0NvbnRleHRFcnJvciBleHRlbmRzIENvbnRleHRWaW9sYXRpb25FcnJvciB7XG4gIG5hbWUgPSAnTm90SW5Xb3JrZmxvd0NvbnRleHRFcnJvcic7XG5cbiAgY29uc3RydWN0b3IoZnVuY3Rpb25OYW1lOiBzdHJpbmcsIGRvY3NVcmw6IERvY3NVcmwpIHtcbiAgICBzdXBlcih7XG4gICAgICB0aXRsZTogW1xuICAgICAgICB7IGNvZGU6IGZ1bmN0aW9uTmFtZSB9LFxuICAgICAgICB7IHRleHQ6ICcgY2FuIG9ubHkgYmUgY2FsbGVkIGluc2lkZSBhIHdvcmtmbG93IGZ1bmN0aW9uJyB9LFxuICAgICAgXSxcbiAgICAgIGRldGFpbHM6IFt7IHR5cGU6ICdkb2NzJywgdXJsOiBkb2NzVXJsIH1dLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogVGhyb3duIHdoZW4gYW4gQVBJIHRoYXQgbXVzdCBydW4gaW5zaWRlIGEgc3RlcCBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbVxuICogb3V0c2lkZSBhIHN0ZXAgY29udGV4dC5cbiAqL1xuZXhwb3J0IGNsYXNzIE5vdEluU3RlcENvbnRleHRFcnJvciBleHRlbmRzIENvbnRleHRWaW9sYXRpb25FcnJvciB7XG4gIG5hbWUgPSAnTm90SW5TdGVwQ29udGV4dEVycm9yJztcblxuICBjb25zdHJ1Y3RvcihmdW5jdGlvbk5hbWU6IHN0cmluZywgZG9jc1VybDogRG9jc1VybCkge1xuICAgIHN1cGVyKHtcbiAgICAgIHRpdGxlOiBbXG4gICAgICAgIHsgY29kZTogZnVuY3Rpb25OYW1lIH0sXG4gICAgICAgIHsgdGV4dDogJyBjYW4gb25seSBiZSBjYWxsZWQgaW5zaWRlIGEgc3RlcCBmdW5jdGlvbicgfSxcbiAgICAgIF0sXG4gICAgICBkZXRhaWxzOiBbeyB0eXBlOiAnZG9jcycsIHVybDogZG9jc1VybCB9XSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFRocm93biB3aGVuIGFuIEFQSSB0aGF0IG11c3QgcnVuIGluc2lkZSBlaXRoZXIgYSB3b3JrZmxvdyBvciBzdGVwIGZ1bmN0aW9uXG4gKiBpcyBjYWxsZWQgZnJvbSByZWd1bGFyIGFwcGxpY2F0aW9uIGNvZGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3RJbldvcmtmbG93T3JTdGVwQ29udGV4dEVycm9yIGV4dGVuZHMgQ29udGV4dFZpb2xhdGlvbkVycm9yIHtcbiAgbmFtZSA9ICdOb3RJbldvcmtmbG93T3JTdGVwQ29udGV4dEVycm9yJztcblxuICBjb25zdHJ1Y3RvcihmdW5jdGlvbk5hbWU6IHN0cmluZywgZG9jc1VybDogRG9jc1VybCkge1xuICAgIHN1cGVyKHtcbiAgICAgIHRpdGxlOiBbXG4gICAgICAgIHsgY29kZTogZnVuY3Rpb25OYW1lIH0sXG4gICAgICAgIHsgdGV4dDogJyBjYW4gb25seSBiZSBjYWxsZWQgaW5zaWRlIGEgd29ya2Zsb3cgb3Igc3RlcCBmdW5jdGlvbicgfSxcbiAgICAgIF0sXG4gICAgICBkZXRhaWxzOiBbeyB0eXBlOiAnZG9jcycsIHVybDogZG9jc1VybCB9XSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -30,7 +30,7 @@ export interface Hook<T = any> extends AsyncIterable<T>, Thenable<T> {
30
30
  * Returns the {@link Run} already using this token, or `null` when this Hook
31
31
  * registers successfully.
32
32
  *
33
- * Calling `createHook()` alone does not register the hook registration
33
+ * Calling `createHook()` alone does not register the hook: registration
34
34
  * only happens when the workflow suspends. Awaiting `getConflict()`
35
35
  * suspends the workflow to commit the hook registration without waiting for
36
36
  * payload data.
@@ -108,13 +108,17 @@ export interface HookOptions {
108
108
  * the token with the information it has available.
109
109
  *
110
110
  * Deterministic tokens are intended for use with `createHook()` and
111
- * server-side `resumeHook()` only. For webhooks (`createWebhook()`),
112
- * tokens are always randomly generated to prevent unauthorized access
113
- * to the public webhook endpoint.
111
+ * server-side `resumeHook()` only. For webhooks (`createWebhook()`), an
112
+ * explicit token is not accepted, one is always generated for you.
113
+ *
114
+ * A generated token is not trivial to guess but is not a security
115
+ * contract, so authenticate webhook requests themselves rather than
116
+ * relying on URL secrecy:
117
+ * https://workflow-sdk.dev/docs/foundations/hooks#token-design
114
118
  *
115
119
  * If provided, the token must be a non-empty string; passing an empty
116
- * string throws. If not provided (or `undefined`), a randomly generated
117
- * token will be assigned.
120
+ * string throws. If not provided (or `undefined`), a token is generated
121
+ * for you.
118
122
  *
119
123
  * @example
120
124
  *
@@ -1 +1 @@
1
- {"version":3,"file":"create-hook.d.ts","sourceRoot":"","sources":["../src/create-hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAEtC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD;;GAEG;AACH,UAAU,QAAQ,CAAC,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,OAAO;IAClD,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,IAAI,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClE;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAE5C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;;;;;;;;;;;OAYG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,OAAO,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAC;IACzD;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,yBAAyB,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,CAAC;IAExD;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cACf,SAAQ,IAAI,CACV,WAAW,EACX,OAAO,GAAG,WAAW,GAAG,2BAA2B,CACpD;IACD;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,wBAAgB,UAAU,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAMlE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,cAAc,GAAG;IAAE,WAAW,EAAE,QAAQ,CAAA;CAAE,GAClD,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAChC,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"create-hook.d.ts","sourceRoot":"","sources":["../src/create-hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAEtC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD;;GAEG;AACH,UAAU,QAAQ,CAAC,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,OAAO;IAClD,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,IAAI,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClE;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAE5C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;;;;;;;;;;;OAYG;IACH,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC,SAAS,OAAO,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAC;IACzD;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,yBAAyB,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,CAAC;IAExD;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cACf,SAAQ,IAAI,CACV,WAAW,EACX,OAAO,GAAG,WAAW,GAAG,2BAA2B,CACpD;IACD;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,wBAAgB,UAAU,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAMlE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,cAAc,GAAG;IAAE,WAAW,EAAE,QAAQ,CAAA;CAAE,GAClD,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAChC,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC"}