@pipeline-builder/api-core 5.2.5 → 5.2.7

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 (181) hide show
  1. package/lib/constants/ai-providers.js +1 -1
  2. package/lib/constants/http-status.js +1 -1
  3. package/lib/constants/index.js +1 -1
  4. package/lib/constants/time.js +1 -1
  5. package/lib/errors/app-errors.js +1 -1
  6. package/lib/errors/index.js +1 -1
  7. package/lib/helpers/access-helpers.d.ts +19 -0
  8. package/lib/helpers/access-helpers.js +24 -4
  9. package/lib/helpers/content-disposition.js +1 -1
  10. package/lib/helpers/crud-helpers.js +1 -1
  11. package/lib/helpers/index.d.ts +1 -1
  12. package/lib/helpers/index.js +2 -2
  13. package/lib/helpers/org-hierarchy-http.js +1 -1
  14. package/lib/helpers/org-hierarchy.js +1 -1
  15. package/lib/helpers/restore-helpers.js +1 -1
  16. package/lib/helpers/sse-helpers.js +13 -2
  17. package/lib/helpers/support-calendar.js +1 -1
  18. package/lib/index.js +1 -1
  19. package/lib/middleware/ask-provenance.js +1 -1
  20. package/lib/middleware/assurance.js +1 -1
  21. package/lib/middleware/auth.js +1 -1
  22. package/lib/middleware/deferred-quota-check.js +1 -1
  23. package/lib/middleware/ecosystem-guard.js +1 -1
  24. package/lib/middleware/index.js +1 -1
  25. package/lib/middleware/jwt-verify.js +1 -1
  26. package/lib/middleware/mongo-sanitize.js +1 -1
  27. package/lib/middleware/on-behalf.js +1 -1
  28. package/lib/middleware/permission-gates.js +1 -1
  29. package/lib/middleware/quota-exempt-routes.js +1 -1
  30. package/lib/middleware/revocation.js +1 -1
  31. package/lib/middleware/route-table.js +16 -1
  32. package/lib/middleware/service-tokens.js +1 -1
  33. package/lib/middleware/step-up.js +1 -1
  34. package/lib/middleware/system-org.d.ts +18 -5
  35. package/lib/middleware/system-org.js +19 -6
  36. package/lib/openapi/extend-zod.js +1 -1
  37. package/lib/openapi/index.js +1 -1
  38. package/lib/openapi/registry.js +1 -1
  39. package/lib/openapi/routes/ask-routes.js +1 -1
  40. package/lib/openapi/routes/billing-routes.js +1 -1
  41. package/lib/openapi/routes/image-registry-routes.js +1 -1
  42. package/lib/openapi/routes/index.js +1 -1
  43. package/lib/openapi/routes/message-routes.js +1 -1
  44. package/lib/openapi/routes/pipeline-routes.js +1 -1
  45. package/lib/openapi/routes/pipeline-template-routes.js +1 -1
  46. package/lib/openapi/routes/plugin-routes.js +1 -1
  47. package/lib/openapi/routes/quota-routes.js +1 -1
  48. package/lib/openapi/schema-registry.js +1 -1
  49. package/lib/routes/health.js +1 -1
  50. package/lib/routes/index.js +1 -1
  51. package/lib/services/ai-call-weight.js +1 -1
  52. package/lib/services/alert-delivery.js +1 -1
  53. package/lib/services/api-key-exchange.js +1 -1
  54. package/lib/services/audit-context.js +1 -1
  55. package/lib/services/audit-spool.js +1 -1
  56. package/lib/services/cache-service.js +1 -1
  57. package/lib/services/circuit-breaker.js +1 -1
  58. package/lib/services/compliance-client.js +1 -1
  59. package/lib/services/compliance-event-subscriber.js +1 -1
  60. package/lib/services/durable-event-bus.js +1 -1
  61. package/lib/services/ecosystem-notify-client.d.ts +7 -1
  62. package/lib/services/ecosystem-notify-client.js +9 -3
  63. package/lib/services/entity-events.js +1 -1
  64. package/lib/services/env-redis.js +1 -1
  65. package/lib/services/http-client.js +19 -3
  66. package/lib/services/index.d.ts +1 -1
  67. package/lib/services/index.js +2 -2
  68. package/lib/services/jwks-cache.js +1 -1
  69. package/lib/services/leader-lock.js +1 -1
  70. package/lib/services/notification-channels.js +1 -1
  71. package/lib/services/org-ai-client.js +1 -1
  72. package/lib/services/pagerduty-inbound.js +1 -1
  73. package/lib/services/pagerduty.js +1 -1
  74. package/lib/services/quota-increment-batcher.js +1 -1
  75. package/lib/services/quota.js +1 -1
  76. package/lib/services/remote-audit-client.js +1 -1
  77. package/lib/services/retry-forever.js +1 -1
  78. package/lib/services/retry-strategy.js +1 -1
  79. package/lib/services/s3-client.js +1 -1
  80. package/lib/services/scheduler.js +1 -1
  81. package/lib/services/service-boot.js +1 -1
  82. package/lib/services/service-keys.js +2 -2
  83. package/lib/services/sse-ticket-store.js +1 -1
  84. package/lib/services/system-notification.js +1 -1
  85. package/lib/services/token-revocation.js +1 -1
  86. package/lib/services/version-vuln-policy.d.ts +11 -0
  87. package/lib/services/version-vuln-policy.js +33 -7
  88. package/lib/types/ai-catalog.js +1 -1
  89. package/lib/types/ask-proposals.d.ts +23 -0
  90. package/lib/types/ask-proposals.js +29 -1
  91. package/lib/types/audit-events.js +1 -1
  92. package/lib/types/build-catalog.d.ts +65 -0
  93. package/lib/types/build-catalog.js +95 -1
  94. package/lib/types/catalog-metadata.js +1 -1
  95. package/lib/types/common.js +1 -1
  96. package/lib/types/compliance-exemption.js +1 -1
  97. package/lib/types/ecosystem-notifications.d.ts +9 -0
  98. package/lib/types/ecosystem-notifications.js +15 -6
  99. package/lib/types/ecosystem.d.ts +1 -6
  100. package/lib/types/ecosystem.js +18 -5
  101. package/lib/types/error-codes.js +1 -1
  102. package/lib/types/feature-flags.d.ts +17 -1
  103. package/lib/types/feature-flags.js +1 -1
  104. package/lib/types/http.js +1 -1
  105. package/lib/types/index.d.ts +3 -3
  106. package/lib/types/index.js +4 -4
  107. package/lib/types/metadata-keys.js +1 -1
  108. package/lib/types/permissions.d.ts +60 -13
  109. package/lib/types/permissions.js +63 -14
  110. package/lib/types/pipeline-template.js +1 -1
  111. package/lib/types/pipeline.js +1 -1
  112. package/lib/types/plugin-catalog.js +1 -1
  113. package/lib/types/plugin-health.js +1 -1
  114. package/lib/types/plugin-scan.d.ts +69 -0
  115. package/lib/types/plugin-scan.js +77 -1
  116. package/lib/types/quota-catalog.js +15 -2
  117. package/lib/types/quota-tiers.d.ts +27 -160
  118. package/lib/types/quota-tiers.js +47 -255
  119. package/lib/types/remote-audit-actions.d.ts +1 -1
  120. package/lib/types/remote-audit-actions.js +9 -1
  121. package/lib/types/reserved-tags.js +1 -1
  122. package/lib/types/tier-limits.d.ts +210 -0
  123. package/lib/types/tier-limits.js +254 -0
  124. package/lib/types/usage-projection.js +1 -1
  125. package/lib/types/visibility.js +1 -1
  126. package/lib/types/wire-vocabulary.d.ts +7 -0
  127. package/lib/types/wire-vocabulary.js +7 -1
  128. package/lib/utils/alias-resolver.js +1 -1
  129. package/lib/utils/api-key.js +1 -1
  130. package/lib/utils/audit.js +1 -1
  131. package/lib/utils/aws-scrub.js +3 -3
  132. package/lib/utils/compliance-attributes.js +1 -1
  133. package/lib/utils/concurrency-gate.d.ts +98 -0
  134. package/lib/utils/concurrency-gate.js +110 -0
  135. package/lib/utils/concurrency.js +1 -1
  136. package/lib/utils/crash-handlers.js +1 -1
  137. package/lib/utils/date.js +1 -1
  138. package/lib/utils/dsse.js +1 -1
  139. package/lib/utils/env.d.ts +11 -0
  140. package/lib/utils/env.js +14 -1
  141. package/lib/utils/headers.js +1 -1
  142. package/lib/utils/identity.js +1 -1
  143. package/lib/utils/index.d.ts +1 -0
  144. package/lib/utils/index.js +2 -1
  145. package/lib/utils/jwk.js +2 -2
  146. package/lib/utils/logger.js +1 -1
  147. package/lib/utils/metric-emitter.js +1 -1
  148. package/lib/utils/object.js +1 -1
  149. package/lib/utils/params.js +1 -1
  150. package/lib/utils/plugin-compliance.d.ts +9 -1
  151. package/lib/utils/plugin-compliance.js +1 -1
  152. package/lib/utils/proof-of-work.js +1 -1
  153. package/lib/utils/response.js +1 -1
  154. package/lib/utils/retention.js +1 -1
  155. package/lib/utils/safe-require.js +1 -1
  156. package/lib/utils/secret-encryption.js +1 -1
  157. package/lib/utils/secret-rotation.js +1 -1
  158. package/lib/utils/secure-compare.js +1 -1
  159. package/lib/utils/sensitive-patterns.js +1 -1
  160. package/lib/utils/service-registry.js +1 -1
  161. package/lib/utils/ssrf.js +1 -1
  162. package/lib/validation/ai-schemas.js +1 -1
  163. package/lib/validation/common-schemas.js +1 -1
  164. package/lib/validation/dockerfile-static.js +1 -1
  165. package/lib/validation/index.d.ts +1 -1
  166. package/lib/validation/index.js +2 -2
  167. package/lib/validation/message-schemas.d.ts +73 -0
  168. package/lib/validation/message-schemas.js +63 -2
  169. package/lib/validation/middleware.js +1 -1
  170. package/lib/validation/pipeline-schemas.js +1 -1
  171. package/lib/validation/pipeline-template-schemas.js +1 -1
  172. package/lib/validation/plugin-base-images.js +1 -1
  173. package/lib/validation/plugin-catalog-detect.js +1 -1
  174. package/lib/validation/plugin-catalog-metadata.js +1 -1
  175. package/lib/validation/plugin-heuristics.js +1 -1
  176. package/lib/validation/plugin-lint.js +1 -1
  177. package/lib/validation/plugin-name-confusable.js +1 -1
  178. package/lib/validation/plugin-schemas.js +1 -1
  179. package/lib/validation/plugin-spec-schema.js +1 -1
  180. package/lib/validation/plugin-template-contract.js +1 -1
  181. package/package.json +11 -4
@@ -2,7 +2,7 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { z } from 'zod';
4
4
  import { BaseFilterSchema, BooleanQuerySchema } from './common-schemas.js';
5
- import { MESSAGE_PRIORITIES, MESSAGE_TYPES } from '../types/wire-vocabulary.js';
5
+ import { MESSAGE_PRIORITIES, MESSAGE_SENT_BY, MESSAGE_TYPES } from '../types/wire-vocabulary.js';
6
6
  import { envInt } from '../utils/env.js';
7
7
  /**
8
8
  * Message type schema
@@ -12,6 +12,10 @@ export const MessageTypeSchema = z.enum(MESSAGE_TYPES);
12
12
  * Message priority schema
13
13
  */
14
14
  export const MessagePrioritySchema = z.enum(MESSAGE_PRIORITIES);
15
+ /**
16
+ * Sender filter, relative to the viewer (see `MESSAGE_SENT_BY`).
17
+ */
18
+ export const MessageSentBySchema = z.enum(MESSAGE_SENT_BY);
15
19
  /**
16
20
  * Channel/inbox-bucket schema. Open-ended string up to 50 chars so we
17
21
  * can add new channels (support, help, billing, …) without a schema
@@ -19,6 +23,18 @@ export const MessagePrioritySchema = z.enum(MESSAGE_PRIORITIES);
19
23
  * to keep filter conditions trivially indexable.
20
24
  */
21
25
  export const MessageChannelSchema = z.string().min(1).max(50).regex(/^[a-z0-9_-]+$/);
26
+ /**
27
+ * Narrowing by a SPECIFIC party, shared by the list query and the bulk hide:
28
+ * - `senderUserId` — rows that user authored (`created_by`).
29
+ * - `counterpartyOrgId` — rows exchanged with that org (it sent them or
30
+ * received them).
31
+ * Both are AND-ed onto the visibility scope, so naming a user or org the
32
+ * caller has never corresponded with simply matches nothing.
33
+ */
34
+ const MessagePartyFilterFields = {
35
+ senderUserId: z.string().trim().min(1).max(255).optional(),
36
+ counterpartyOrgId: z.string().trim().min(1).max(255).optional(),
37
+ };
22
38
  /**
23
39
  * Message filter schema for query parameters.
24
40
  *
@@ -40,6 +56,12 @@ export const MessageFilterSchema = BaseFilterSchema.extend({
40
56
  isRead: BooleanQuerySchema.optional(),
41
57
  priority: MessagePrioritySchema.optional(),
42
58
  channel: MessageChannelSchema.optional(),
59
+ sentBy: MessageSentBySchema.optional(),
60
+ ...MessagePartyFilterFields,
61
+ // `true` lists what THIS org removed from its inbox (the "Removed" view)
62
+ // instead of the inbox itself. It never widens visibility — it only flips
63
+ // which side of the org's own `hiddenBy` stamp is shown.
64
+ hidden: BooleanQuerySchema.optional(),
43
65
  // Free-text inbox search over subject/content. Bounded so a pathological term
44
66
  // can't blow up the LIKE; the query builder escapes wildcards + ignores blanks.
45
67
  search: z.string().trim().min(1).max(200).optional(),
@@ -156,4 +178,43 @@ export const MessageReplySchema = z.object({
156
178
  export const MessageEditSchema = z.object({
157
179
  content: z.string().min(1, 'Content is required').max(MESSAGE_CONTENT_MAX, `Content must be at most ${MESSAGE_CONTENT_MAX} characters`),
158
180
  });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1zY2hlbWFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vbWVzc2FnZS1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUN4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUV2RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUVoRTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUVyRjs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0lBQ3pELFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7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QUUsbUJBQW1CO0NBQ25DLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN6QyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsMkJBQTJCLG1CQUFtQixhQUFhLENBQUM7SUFDdkksYUFBYSxFQUFFLG1CQUFtQjtDQUNuQyxDQUFDLENBQUM7QUFFSDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN4QyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsMkJBQTJCLG1CQUFtQixhQUFhLENBQUM7Q0FDeEksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuaW1wb3J0IHsgQmFzZUZpbHRlclNjaGVtYSwgQm9vbGVhblF1ZXJ5U2NoZW1hIH0gZnJvbSAnLi9jb21tb24tc2NoZW1hcy5qcyc7XG5pbXBvcnQgeyBNRVNTQUdFX1BSSU9SSVRJRVMsIE1FU1NBR0VfVFlQRVMgfSBmcm9tICcuLi90eXBlcy93aXJlLXZvY2FidWxhcnkuanMnO1xuaW1wb3J0IHsgZW52SW50IH0gZnJvbSAnLi4vdXRpbHMvZW52LmpzJztcblxuLyoqXG4gKiBNZXNzYWdlIHR5cGUgc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlVHlwZVNjaGVtYSA9IHouZW51bShNRVNTQUdFX1RZUEVTKTtcblxuLyoqXG4gKiBNZXNzYWdlIHByaW9yaXR5IHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZVByaW9yaXR5U2NoZW1hID0gei5lbnVtKE1FU1NBR0VfUFJJT1JJVElFUyk7XG5cbi8qKlxuICogQ2hhbm5lbC9pbmJveC1idWNrZXQgc2NoZW1hLiBPcGVuLWVuZGVkIHN0cmluZyB1cCB0byA1MCBjaGFycyBzbyB3ZVxuICogY2FuIGFkZCBuZXcgY2hhbm5lbHMgKHN1cHBvcnQsIGhlbHAsIGJpbGxpbmcsIOKApikgd2l0aG91dCBhIHNjaGVtYVxuICogbWlncmF0aW9uLiBDb25zdHJhaW5lZCB0byBhLXovMC05L2Rhc2gvdW5kZXJzY29yZSBmb3IgVVJMIHNhZmV0eSBhbmRcbiAqIHRvIGtlZXAgZmlsdGVyIGNvbmRpdGlvbnMgdHJpdmlhbGx5IGluZGV4YWJsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IE1lc3NhZ2VDaGFubmVsU2NoZW1hID0gei5zdHJpbmcoKS5taW4oMSkubWF4KDUwKS5yZWdleCgvXlthLXowLTlfLV0rJC8pO1xuXG4vKipcbiAqIE1lc3NhZ2UgZmlsdGVyIHNjaGVtYSBmb3IgcXVlcnkgcGFyYW1ldGVycy5cbiAqXG4gKiBDb252ZW50aW9uIGZvciBgdGhyZWFkSWRgOlxuICogLSBPbWl0dGVkICh1bmRlZmluZWQpOiBubyBmaWx0ZXIgYXBwbGllZCDigJQgcmV0dXJucyBtZXNzYWdlcyByZWdhcmRsZXNzIG9mIHRocmVhZC5cbiAqIC0gYCdyb290J2Agb3IgYG51bGxgOiBmaWx0ZXIgZm9yIHJvb3QgbWVzc2FnZXMgb25seSAodHJhbnNsYXRlZCB0byBgdGhyZWFkSWQgSVMgTlVMTGBcbiAqICAgYnkgdGhlIHJvdXRlIGxheWVyIC8gcXVlcnkgYnVpbGRlcikuIFRoZSBzdHJpbmcgc2VudGluZWwgYCdyb290J2AgaXMgdGhlXG4gKiAgIHdpcmUgZm9ybSwgc2luY2UgVVJMIHF1ZXJ5IHBhcmFtcyBjYW4ndCBjYXJyeSBhIHRydWUgYG51bGxgLlxuICogLSBBIFVVSUQ6IGZpbHRlciBmb3IgbWVzc2FnZXMgaW4gdGhhdCBzcGVjaWZpYyB0aHJlYWQuXG4gKlxuICogYGlzUmVhZGAgaXMgaG9ub3JlZCBieSBgYnVpbGRNZXNzYWdlQ29uZGl0aW9uc2AgaW4gcGlwZWxpbmUtZGF0YSB2aWEgYVxuICogYGpzb25iX2V4aXN0cyhyZWFkX2J5LCAkb3JnSWQpYCBjaGVjayBvbiBgbWVzc2FnZXMucmVhZF9ieWAgZm9yIHRoZSByZXF1ZXN0aW5nXG4gKiBvcmcgKHRoZSBmdW5jdGlvbiBmb3JtLCBub3QgdGhlIGA/YCBvcGVyYXRvciwgdG8gYXZvaWQgcGFyYW0tYmluZGluZyBjbGFzaGVzKS5cbiAqL1xuZXhwb3J0IGNvbnN0IE1lc3NhZ2VGaWx0ZXJTY2hlbWEgPSBCYXNlRmlsdGVyU2NoZW1hLmV4dGVuZCh7XG4gIHRocmVhZElkOiB6LnVuaW9uKFt6LnN0cmluZygpLnV1aWQoKSwgei5saXRlcmFsKCdyb290JyksIHoubnVsbCgpXSkub3B0aW9uYWwoKSxcbiAgcmVjaXBpZW50T3JnSWQ6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIG1lc3NhZ2VUeXBlOiBNZXNzYWdlVHlwZVNjaGVtYS5vcHRpb25hbCgpLFxuICBpc1JlYWQ6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICBwcmlvcml0eTogTWVzc2FnZVByaW9yaXR5U2NoZW1hLm9wdGlvbmFsKCksXG4gIGNoYW5uZWw6IE1lc3NhZ2VDaGFubmVsU2NoZW1hLm9wdGlvbmFsKCksXG4gIC8vIEZyZWUtdGV4dCBpbmJveCBzZWFyY2ggb3ZlciBzdWJqZWN0L2NvbnRlbnQuIEJvdW5kZWQgc28gYSBwYXRob2xvZ2ljYWwgdGVybVxuICAvLyBjYW4ndCBibG93IHVwIHRoZSBMSUtFOyB0aGUgcXVlcnkgYnVpbGRlciBlc2NhcGVzIHdpbGRjYXJkcyArIGlnbm9yZXMgYmxhbmtzLlxuICBzZWFyY2g6IHouc3RyaW5nKCkudHJpbSgpLm1pbigxKS5tYXgoMjAwKS5vcHRpb25hbCgpLFxufSk7XG5cbi8qKlxuICogVXBwZXIgYm91bmRzIG9uIGZyZWUtdGV4dCBtZXNzYWdlIGZpZWxkcy4gV2l0aG91dCB0aGVzZSBhbiB1bmJvdW5kZWRcbiAqIHN1YmplY3QvY29udGVudCAoZS5nLiBhIDFNQiBhbm5vdW5jZW1lbnQpIGlzIHBlcnNpc3RlZCBBTkQgU1NFLWJyb2FkY2FzdCB0b1xuICogZXZlcnkgb3JnLiBgc3ViamVjdGAgbWF0Y2hlcyB0aGUgYHZhcmNoYXIoNTAwKWAgREIgY29sdW1uIHNvIHdlIHJlamVjdCByYXRoZXJcbiAqIHRoYW4gc2lsZW50bHkgdHJ1bmNhdGU7IGBjb250ZW50YCBpcyBhIGB0ZXh0YCBjb2x1bW4gd2l0aCBubyBEQiBib3VuZCwgc28gd2VcbiAqIGNhcCBpdCBhdCBhIHNhbmUgMzIgS2lCIGF0IHRoZSBhcHAgbGF5ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX1NVQkpFQ1RfTUFYID0gNTAwO1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfQ09OVEVOVF9NQVggPSAzMjc2ODtcblxuLyoqIE1heCBhdHRhY2htZW50cyBsaW5rYWJsZSB0byBhIHNpbmdsZSBtZXNzYWdlL3JlcGx5LiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfTUFYX0FUVEFDSE1FTlRTID0gNTtcblxuLyoqXG4gKiBNYXggYXR0YWNobWVudCBzaXplIChNaUIpIOKAlCBlbnYtb3ZlcnJpZGFibGUuIFRoZSB1cGxvYWQgcm91dGUgZW5mb3JjZXMgdGhpc1xuICogKG11bHRlciBgZmlsZVNpemVgKTsga2VwdCBoZXJlIHNvIHRoZSBib3VuZCBsaXZlcyB3aXRoIHRoZSBvdGhlciBtZXNzYWdlXG4gKiBsaW1pdHMgcmF0aGVyIHRoYW4gb25seSBpbmxpbmUgaW4gdGhlIHJvdXRlLlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9BVFRBQ0hNRU5UX01BWF9NQiA9IGVudkludCgnTUVTU0FHRV9BVFRBQ0hNRU5UX01BWF9NQicsIDEwLCB7IG1pbjogMSB9KTtcbmV4cG9ydCBjb25zdCBNRVNTQUdFX0FUVEFDSE1FTlRfTUFYX0JZVEVTID0gTUVTU0FHRV9BVFRBQ0hNRU5UX01BWF9NQiAqIDEwMjQgKiAxMDI0O1xuXG4vKipcbiAqIEFsbG93LWxpc3Qgb2YgYXR0YWNobWVudCBNSU1FIHR5cGVzIOKAlCBjb21tb24gaW1hZ2VzICsgZG9jdW1lbnRzICsgemlwL3lhbWwvanNvbi5cbiAqIERlbGliZXJhdGVseSBleGNsdWRlcyBleGVjdXRhYmxlcy9zY3JpcHRzL0hUTUwvU1ZHIChzdG9yZWQtWFNTIC8gZHJpdmUtYnkpLlxuICogemlwIGlzIGEgZG93bmxvYWQgY29udGFpbmVyIChkb2Vzbid0IHJlbmRlciBpbi1icm93c2VyKTsgeWFtbC9qc29uIGFyZSBwbGFpblxuICogdGV4dCDigJQgbm9uZSBjYXJyeSB0aGUgZHJpdmUtYnkgcmlzayBvZiB0aGUgZXhjbHVkZWQgdHlwZXMuIEV4dGVuZCBoZXJlLlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9BVFRBQ0hNRU5UX0FMTE9XRURfTUlNRTogUmVhZG9ubHlTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW1xuICAnaW1hZ2UvcG5nJywgJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvZ2lmJywgJ2ltYWdlL3dlYnAnLFxuICAnYXBwbGljYXRpb24vcGRmJywgJ3RleHQvcGxhaW4nLCAndGV4dC9jc3YnLFxuICAnYXBwbGljYXRpb24vbXN3b3JkJyxcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JyxcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXG4gICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsXG4gICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uJyxcbiAgLy8gQXJjaGl2ZXMgKHppcCAvIGd6IC8gdGFyIC8gdGFyLmd6KSDigJQgYnJvd3NlcnMgcmVwb3J0IHRoZXNlIHZhcmlvdXNseSBieSBPUztcbiAgLy8gY292ZXIgdGhlIGNvbW1vbiB2YXJpYW50cy4gVGhleSBkb3dubG9hZCByYXRoZXIgdGhhbiByZW5kZXIgaW4tYnJvd3Nlci5cbiAgJ2FwcGxpY2F0aW9uL3ppcCcsICdhcHBsaWNhdGlvbi94LXppcC1jb21wcmVzc2VkJyxcbiAgJ2FwcGxpY2F0aW9uL2d6aXAnLCAnYXBwbGljYXRpb24veC1nemlwJyxcbiAgJ2FwcGxpY2F0aW9uL3gtdGFyJywgJ2FwcGxpY2F0aW9uL3RhcicsXG4gICdhcHBsaWNhdGlvbi94LWNvbXByZXNzZWQtdGFyJyxcbiAgLy8ganNvbiAoYnJvd3NlcnMgbWF5IHNlbmQgYXBwbGljYXRpb24vanNvbiBvciB0ZXh0L2pzb24pLlxuICAnYXBwbGljYXRpb24vanNvbicsICd0ZXh0L2pzb24nLFxuICAvLyB5YW1sL3ltbCDigJQgbm8gc2luZ2xlIHJlZ2lzdGVyZWQgdHlwZTsgY292ZXIgdGhlIGNvbW1vbiB2YXJpYW50cy5cbiAgJ2FwcGxpY2F0aW9uL3gteWFtbCcsICdhcHBsaWNhdGlvbi95YW1sJywgJ3RleHQveWFtbCcsICd0ZXh0L3gteWFtbCcsXG5dKTtcblxuLyoqXG4gKiBTYWZlIGZpbGVuYW1lIGV4dGVuc2lvbnMuIEJyb3dzZXJzIGZyZXF1ZW50bHkgc2VuZCBgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtYFxuICogZm9yIGFyY2hpdmVzICsgY29uZmlnIGZpbGVzICgudGFyLy5nei8udGd6Ly55YW1sL+KApikgYmVjYXVzZSB0aGV5IGhhdmUgbm9cbiAqIHJlbGlhYmxlIHJlZ2lzdGVyZWQgTUlNRSB0eXBlLCBzbyB0aGUgTUlNRSBhbGxvdy1saXN0IGFsb25lIHJlamVjdHMgdGhlbS4gVGhlc2VcbiAqIGV4dGVuc2lvbnMgYXJlIGFjY2VwdGVkIGFzIGEgZmFsbGJhY2sgT05MWSB3aGVuIHRoZSByZXBvcnRlZCBNSU1FIGlzIHRoYXRcbiAqIGdlbmVyaWMgdHlwZSAoc2VlIGlzQWxsb3dlZEF0dGFjaG1lbnRUeXBlKSDigJQgc28gYSBrbm93biByZW5kZXIvZXhlY3V0ZSBNSU1FXG4gKiAoaW1hZ2Uvc3ZnK3htbCwgdGV4dC9odG1sLCDigKYpIGlzIG5ldmVyIHJlc2N1ZWQgYnkgYSBzcG9vZmVkIGV4dGVuc2lvbi4gU3RpbGxcbiAqIGV4Y2x1ZGVzIC5odG1sLy5zdmcvLmpzLy5leGUv4oCmIChuZXZlciBsaXN0ZWQgaGVyZSkuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0FUVEFDSE1FTlRfQUxMT1dFRF9FWFQ6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJy5wbmcnLCAnLmpwZycsICcuanBlZycsICcuZ2lmJywgJy53ZWJwJyxcbiAgJy5wZGYnLCAnLnR4dCcsICcuY3N2JywgJy5kb2MnLCAnLmRvY3gnLCAnLnhscycsICcueGxzeCcsICcucHB0JywgJy5wcHR4JyxcbiAgJy56aXAnLCAnLmd6JywgJy50Z3onLCAnLnRhcicsICcuanNvbicsICcueWFtbCcsICcueW1sJyxcbl0pO1xuXG4vKipcbiAqIFRydWUgaWYgYW4gYXR0YWNobWVudCBpcyBhY2NlcHRlZC4gQWNjZXB0cyBieSBNSU1FIGFsbG93LWxpc3QsIE9SIOKAlCB3aGVuIHRoZVxuICogYnJvd3NlciByZXBvcnRzIHRoZSBnZW5lcmljIGBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1gICh1bmtub3duIGJpbmFyeSkg4oCUIGJ5IGFcbiAqIHNhZmUgZmlsZW5hbWUgZXh0ZW5zaW9uLiBvY3RldC1zdHJlYW0gaXMgc2VydmVkIGFzIGEgZG93bmxvYWQgKG5ldmVyIHJlbmRlcmVkKSxcbiAqIHNvIHRoZSBleHRlbnNpb24gZmFsbGJhY2sgY2FuJ3QgdHVybiBpbnRvIGEgc3RvcmVkLVhTUyB2ZWN0b3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0FsbG93ZWRBdHRhY2htZW50VHlwZShtaW1ldHlwZTogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmIChNRVNTQUdFX0FUVEFDSE1FTlRfQUxMT1dFRF9NSU1FLmhhcyhtaW1ldHlwZSkpIHJldHVybiB0cnVlO1xuICBpZiAobWltZXR5cGUgIT09ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IGRvdCA9IChmaWxlbmFtZSB8fCAnJykubGFzdEluZGV4T2YoJy4nKTtcbiAgaWYgKGRvdCA8IDApIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIE1FU1NBR0VfQVRUQUNITUVOVF9BTExPV0VEX0VYVC5oYXMoZmlsZW5hbWUuc2xpY2UoZG90KS50b0xvd2VyQ2FzZSgpKTtcbn1cblxuLyoqIEF0dGFjaG1lbnQgbWV0YWRhdGEgRFRPIHJldHVybmVkIHRvIGNsaWVudHMgKG5ldmVyIGV4cG9zZXMgdGhlIHN0b3JhZ2Uga2V5KS4gKi9cbi8qKlxuICogQXR0YWNobWVudCBpZHMgdG8gbGluayB0byBhIG1lc3NhZ2UuIEVhY2ggaXMgdGhlIGlkIHJldHVybmVkIGJ5IGEgcHJpb3JcbiAqIFBPU1QgL21lc3NhZ2VzL2F0dGFjaG1lbnRzIHVwbG9hZDsgdGhlIGNyZWF0ZSByb3V0ZSBsaW5rcyBvbmx5IGlkcyB0aGF0IGJlbG9uZ1xuICogdG8gdGhlIGNhbGxlciAob3duIG9yZyArIHVwbG9hZGVyKSBhbmQgYXJlIHN0aWxsIHVuYXR0YWNoZWQuXG4gKi9cbmNvbnN0IEF0dGFjaG1lbnRJZHNTY2hlbWEgPSB6LmFycmF5KHouc3RyaW5nKCkudXVpZCgpKS5tYXgoTUVTU0FHRV9NQVhfQVRUQUNITUVOVFMpLm9wdGlvbmFsKCk7XG5cbi8qKlxuICogTWVzc2FnZSBjcmVhdGlvbiBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IE1lc3NhZ2VDcmVhdGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHJlY2lwaWVudE9yZ0lkOiB6LnN0cmluZygpLm1pbigxLCAnUmVjaXBpZW50IG9yZ2FuaXphdGlvbiBJRCBpcyByZXF1aXJlZCcpLFxuICAvLyBPcHRpb25hbCBwZXItdXNlciB0YXJnZXRpbmcgV0lUSElOIHJlY2lwaWVudE9yZ0lkLiBXaGVuIHNldCwgb25seSB0aGlzIHVzZXJcbiAgLy8gc2VlcyB0aGUgY29udmVyc2F0aW9uIChlbmZvcmNlZCBpbiBidWlsZE1lc3NhZ2VDb25kaXRpb25zKS4gQ29udmVyc2F0aW9uLW9ubHlcbiAgLy8gYW5kIHJlcXVpcmVzIGEgY29uY3JldGUgcmVjaXBpZW50IG9yZyDigJQgdGhlIHJvdXRlIHJlamVjdHMgaXQgb24gYW5ub3VuY2VtZW50c1xuICAvLyBhbmQgJyonIGJyb2FkY2FzdHMuIEJvdW5kZWQgdG8gdGhlIHJlY2lwaWVudF91c2VyX2lkIGNvbHVtbiB3aWR0aC5cbiAgcmVjaXBpZW50VXNlcklkOiB6LnN0cmluZygpLm1pbigxKS5tYXgoMjU1KS5vcHRpb25hbCgpLFxuICBtZXNzYWdlVHlwZTogTWVzc2FnZVR5cGVTY2hlbWEub3B0aW9uYWwoKS5kZWZhdWx0KCdjb252ZXJzYXRpb24nKSxcbiAgY2hhbm5lbDogTWVzc2FnZUNoYW5uZWxTY2hlbWEub3B0aW9uYWwoKSxcbiAgc3ViamVjdDogei5zdHJpbmcoKS5taW4oMSwgJ1N1YmplY3QgaXMgcmVxdWlyZWQnKS5tYXgoTUVTU0FHRV9TVUJKRUNUX01BWCwgYFN1YmplY3QgbXVzdCBiZSBhdCBtb3N0ICR7TUVTU0FHRV9TVUJKRUNUX01BWH0gY2hhcmFjdGVyc2ApLFxuICBjb250ZW50OiB6LnN0cmluZygpLm1pbigxLCAnQ29udGVudCBpcyByZXF1aXJlZCcpLm1heChNRVNTQUdFX0NPTlRFTlRfTUFYLCBgQ29udGVudCBtdXN0IGJlIGF0IG1vc3QgJHtNRVNTQUdFX0NPTlRFTlRfTUFYfSBjaGFyYWN0ZXJzYCksXG4gIHByaW9yaXR5OiBNZXNzYWdlUHJpb3JpdHlTY2hlbWEub3B0aW9uYWwoKS5kZWZhdWx0KCdub3JtYWwnKSxcbiAgYXR0YWNobWVudElkczogQXR0YWNobWVudElkc1NjaGVtYSxcbn0pO1xuXG4vKipcbiAqIE1lc3NhZ2UgcmVwbHkgc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlUmVwbHlTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGNvbnRlbnQ6IHouc3RyaW5nKCkubWluKDEsICdDb250ZW50IGlzIHJlcXVpcmVkJykubWF4KE1FU1NBR0VfQ09OVEVOVF9NQVgsIGBDb250ZW50IG11c3QgYmUgYXQgbW9zdCAke01FU1NBR0VfQ09OVEVOVF9NQVh9IGNoYXJhY3RlcnNgKSxcbiAgYXR0YWNobWVudElkczogQXR0YWNobWVudElkc1NjaGVtYSxcbn0pO1xuXG4vKipcbiAqIEVkaXQgYW4gYWxyZWFkeS1zZW50IG1lc3NhZ2UncyBDT05URU5UIChhdXRob3Itb25seSwgZW5mb3JjZWQgc2VydmVyLXNpZGUpLlxuICogT25seSB0aGUgYm9keSBpcyBlZGl0YWJsZSDigJQgc3ViamVjdC9yZWNpcGllbnQvdHlwZS9hdHRhY2htZW50cyBhcmUgaW1tdXRhYmxlXG4gKiBhZnRlciBzZW5kIChjaGFuZ2luZyB0aGVtIHdvdWxkIHJld3JpdGUgdGhlIGNvbnZlcnNhdGlvbidzIHJvdXRpbmcvbWVhbmluZykuXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlRWRpdFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgY29udGVudDogei5zdHJpbmcoKS5taW4oMSwgJ0NvbnRlbnQgaXMgcmVxdWlyZWQnKS5tYXgoTUVTU0FHRV9DT05URU5UX01BWCwgYENvbnRlbnQgbXVzdCBiZSBhdCBtb3N0ICR7TUVTU0FHRV9DT05URU5UX01BWH0gY2hhcmFjdGVyc2ApLFxufSk7XG4iXX0=
181
+ /** Most rows one bulk call (hide / unhide / read / delete) may name; a page of checkboxes is 25. */
182
+ export const MESSAGE_BULK_MAX_IDS = 200;
183
+ /**
184
+ * Bulk "remove from my inbox", scoped by the SAME filters the list takes —
185
+ * optionally narrowed further to an explicit `ids` selection (the inbox's
186
+ * checkboxes).
187
+ *
188
+ * Every field is optional and every one NARROWS: an empty body means "the whole
189
+ * tab". There is deliberately no `orgId` — the org comes from the authenticated
190
+ * route. `ids` cannot widen anything either: it is AND-ed with the same
191
+ * visibility conditions the list uses, so naming a row the caller cannot see
192
+ * simply matches nothing, and the write only ever stamps the caller's OWN
193
+ * `hiddenBy[orgId]`.
194
+ */
195
+ export const MessageHideSchema = z.object({
196
+ ids: z.array(z.string().uuid()).min(1).max(MESSAGE_BULK_MAX_IDS).optional(),
197
+ messageType: z.enum(['announcement', 'conversation']).optional(),
198
+ isRead: z.boolean().optional(),
199
+ priority: z.enum(['normal', 'high', 'urgent']).optional(),
200
+ channel: z.string().max(64).optional(),
201
+ sentBy: MessageSentBySchema.optional(),
202
+ ...MessagePartyFilterFields,
203
+ search: z.string().max(200).optional(),
204
+ });
205
+ /** An explicit checkbox selection — the body shared by the bulk id routes. */
206
+ const BulkIdsSchema = z.array(z.string().uuid()).min(1).max(MESSAGE_BULK_MAX_IDS);
207
+ /**
208
+ * `POST /messages/unhide` and `POST /messages/delete`: the ticked rows.
209
+ * Ids only — never a filter: restoring is the undo of a specific removal, and
210
+ * delete is per-row author-only, so neither may run against "everything
211
+ * matching".
212
+ */
213
+ export const MessageBulkIdsSchema = z.object({ ids: BulkIdsSchema });
214
+ /**
215
+ * `POST /messages/read` — set THIS org's read state on the ticked rows.
216
+ * `isRead: true` also marks each thread's replies read (as opening it does);
217
+ * `false` clears the root's stamp only, which is what puts it back to unread.
218
+ */
219
+ export const MessageBulkReadSchema = z.object({ ids: BulkIdsSchema, isRead: z.boolean() });
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1zY2hlbWFzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9tZXNzYWdlLXNjaGVtYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakcsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUV2RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUVoRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7QUFFM0Q7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7QUFFckY7Ozs7Ozs7R0FPRztBQUNILE1BQU0sd0JBQXdCLEdBQUc7SUFDL0IsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMxRCxpQkFBaUIsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDaEUsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDekQsUUFBUSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUM5RSxjQUFjLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDNUMsV0FBVyxFQUFFLGlCQUFpQixDQUFDLFFBQVEsRUFBRTtJQUN6QyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFO0lBQ3JDLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxRQUFRLEVBQUU7SUFDMUMsT0FBTyxFQUFFLG9CQUFvQixDQUFDLFFBQVEsRUFBRTtJQUN4QyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsUUFBUSxFQUFFO0lBQ3RDLEdBQUcsd0JBQXdCO0lBQzNCLHlFQUF5RTtJQUN6RSwwRUFBMEU7SUFDMUUseURBQXlEO0lBQ3pELE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7SUFDckMsOEVBQThFO0lBQzlFLGdGQUFnRjtJQUNoRixNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQ3JELENBQUMsQ0FBQztBQUVIOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQztBQUN2QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUM7QUFFekMsMERBQTBEO0FBQzFELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsQ0FBQztBQUV6Qzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzdGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLHlCQUF5QixHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7QUFFcEY7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBd0IsSUFBSSxHQUFHLENBQUM7SUFDMUUsV0FBVyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWTtJQUNwRCxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsVUFBVTtJQUMzQyxvQkFBb0I7SUFDcEIseUVBQXlFO0lBQ3pFLDBCQUEwQjtJQUMxQixtRUFBbUU7SUFDbkUsMkVBQTJFO0lBQzNFLDhFQUE4RTtJQUM5RSwwRUFBMEU7SUFDMUUsaUJBQWlCLEVBQUUsOEJBQThCO0lBQ2pELGtCQUFrQixFQUFFLG9CQUFvQjtJQUN4QyxtQkFBbUIsRUFBRSxpQkFBaUI7SUFDdEMsOEJBQThCO0lBQzlCLDBEQUEwRDtJQUMxRCxrQkFBa0IsRUFBRSxXQUFXO0lBQy9CLG1FQUFtRTtJQUNuRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsYUFBYTtDQUNyRSxDQUFDLENBQUM7QUFFSDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUF3QixJQUFJLEdBQUcsQ0FBQztJQUN6RSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTztJQUN4QyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU87SUFDekUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTTtDQUN4RCxDQUFDLENBQUM7QUFFSDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxRQUFnQixFQUFFLFFBQWdCO0lBQ3hFLElBQUksK0JBQStCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQy9ELElBQUksUUFBUSxLQUFLLDBCQUEwQjtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQzFELE1BQU0sR0FBRyxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDMUIsT0FBTyw4QkFBOEIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQy9FLENBQUM7QUFFRCxtRkFBbUY7QUFDbkY7Ozs7R0FJRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUUvRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDMUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLHVDQUF1QyxDQUFDO0lBQzFFLDhFQUE4RTtJQUM5RSxnRkFBZ0Y7SUFDaEYsZ0ZBQWdGO0lBQ2hGLHFFQUFxRTtJQUNyRSxlQUFlLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3RELFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO0lBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLDJCQUEyQixtQkFBbUIsYUFBYSxDQUFDO0lBQ3ZJLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSwyQkFBMkIsbUJBQW1CLGFBQWEsQ0FBQztJQUN2SSxRQUFRLEVBQUUscUJBQXFCLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUM1RCxhQUFhLEVBQUUsbUJBQW1CO0NBQ25DLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN6QyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsMkJBQTJCLG1CQUFtQixhQUFhLENBQUM7SUFDdkksYUFBYSxFQUFFLG1CQUFtQjtDQUNuQyxDQUFDLENBQUM7QUFFSDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN4QyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsMkJBQTJCLG1CQUFtQixhQUFhLENBQUM7Q0FDeEksQ0FBQyxDQUFDO0FBRUgsb0dBQW9HO0FBQ3BHLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztBQUV4Qzs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDeEMsR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMzRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNoRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QixRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDekQsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3RDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxRQUFRLEVBQUU7SUFDdEMsR0FBRyx3QkFBd0I7SUFDM0IsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQ3ZDLENBQUMsQ0FBQztBQUVILDhFQUE4RTtBQUM5RSxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUVsRjs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztBQUVyRTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG5pbXBvcnQgeyBCYXNlRmlsdGVyU2NoZW1hLCBCb29sZWFuUXVlcnlTY2hlbWEgfSBmcm9tICcuL2NvbW1vbi1zY2hlbWFzLmpzJztcbmltcG9ydCB7IE1FU1NBR0VfUFJJT1JJVElFUywgTUVTU0FHRV9TRU5UX0JZLCBNRVNTQUdFX1RZUEVTIH0gZnJvbSAnLi4vdHlwZXMvd2lyZS12b2NhYnVsYXJ5LmpzJztcbmltcG9ydCB7IGVudkludCB9IGZyb20gJy4uL3V0aWxzL2Vudi5qcyc7XG5cbi8qKlxuICogTWVzc2FnZSB0eXBlIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZVR5cGVTY2hlbWEgPSB6LmVudW0oTUVTU0FHRV9UWVBFUyk7XG5cbi8qKlxuICogTWVzc2FnZSBwcmlvcml0eSBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IE1lc3NhZ2VQcmlvcml0eVNjaGVtYSA9IHouZW51bShNRVNTQUdFX1BSSU9SSVRJRVMpO1xuXG4vKipcbiAqIFNlbmRlciBmaWx0ZXIsIHJlbGF0aXZlIHRvIHRoZSB2aWV3ZXIgKHNlZSBgTUVTU0FHRV9TRU5UX0JZYCkuXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlU2VudEJ5U2NoZW1hID0gei5lbnVtKE1FU1NBR0VfU0VOVF9CWSk7XG5cbi8qKlxuICogQ2hhbm5lbC9pbmJveC1idWNrZXQgc2NoZW1hLiBPcGVuLWVuZGVkIHN0cmluZyB1cCB0byA1MCBjaGFycyBzbyB3ZVxuICogY2FuIGFkZCBuZXcgY2hhbm5lbHMgKHN1cHBvcnQsIGhlbHAsIGJpbGxpbmcsIOKApikgd2l0aG91dCBhIHNjaGVtYVxuICogbWlncmF0aW9uLiBDb25zdHJhaW5lZCB0byBhLXovMC05L2Rhc2gvdW5kZXJzY29yZSBmb3IgVVJMIHNhZmV0eSBhbmRcbiAqIHRvIGtlZXAgZmlsdGVyIGNvbmRpdGlvbnMgdHJpdmlhbGx5IGluZGV4YWJsZS5cbiAqL1xuZXhwb3J0IGNvbnN0IE1lc3NhZ2VDaGFubmVsU2NoZW1hID0gei5zdHJpbmcoKS5taW4oMSkubWF4KDUwKS5yZWdleCgvXlthLXowLTlfLV0rJC8pO1xuXG4vKipcbiAqIE5hcnJvd2luZyBieSBhIFNQRUNJRklDIHBhcnR5LCBzaGFyZWQgYnkgdGhlIGxpc3QgcXVlcnkgYW5kIHRoZSBidWxrIGhpZGU6XG4gKiAtIGBzZW5kZXJVc2VySWRgIOKAlCByb3dzIHRoYXQgdXNlciBhdXRob3JlZCAoYGNyZWF0ZWRfYnlgKS5cbiAqIC0gYGNvdW50ZXJwYXJ0eU9yZ0lkYCDigJQgcm93cyBleGNoYW5nZWQgd2l0aCB0aGF0IG9yZyAoaXQgc2VudCB0aGVtIG9yXG4gKiAgIHJlY2VpdmVkIHRoZW0pLlxuICogQm90aCBhcmUgQU5ELWVkIG9udG8gdGhlIHZpc2liaWxpdHkgc2NvcGUsIHNvIG5hbWluZyBhIHVzZXIgb3Igb3JnIHRoZVxuICogY2FsbGVyIGhhcyBuZXZlciBjb3JyZXNwb25kZWQgd2l0aCBzaW1wbHkgbWF0Y2hlcyBub3RoaW5nLlxuICovXG5jb25zdCBNZXNzYWdlUGFydHlGaWx0ZXJGaWVsZHMgPSB7XG4gIHNlbmRlclVzZXJJZDogei5zdHJpbmcoKS50cmltKCkubWluKDEpLm1heCgyNTUpLm9wdGlvbmFsKCksXG4gIGNvdW50ZXJwYXJ0eU9yZ0lkOiB6LnN0cmluZygpLnRyaW0oKS5taW4oMSkubWF4KDI1NSkub3B0aW9uYWwoKSxcbn07XG5cbi8qKlxuICogTWVzc2FnZSBmaWx0ZXIgc2NoZW1hIGZvciBxdWVyeSBwYXJhbWV0ZXJzLlxuICpcbiAqIENvbnZlbnRpb24gZm9yIGB0aHJlYWRJZGA6XG4gKiAtIE9taXR0ZWQgKHVuZGVmaW5lZCk6IG5vIGZpbHRlciBhcHBsaWVkIOKAlCByZXR1cm5zIG1lc3NhZ2VzIHJlZ2FyZGxlc3Mgb2YgdGhyZWFkLlxuICogLSBgJ3Jvb3QnYCBvciBgbnVsbGA6IGZpbHRlciBmb3Igcm9vdCBtZXNzYWdlcyBvbmx5ICh0cmFuc2xhdGVkIHRvIGB0aHJlYWRJZCBJUyBOVUxMYFxuICogICBieSB0aGUgcm91dGUgbGF5ZXIgLyBxdWVyeSBidWlsZGVyKS4gVGhlIHN0cmluZyBzZW50aW5lbCBgJ3Jvb3QnYCBpcyB0aGVcbiAqICAgd2lyZSBmb3JtLCBzaW5jZSBVUkwgcXVlcnkgcGFyYW1zIGNhbid0IGNhcnJ5IGEgdHJ1ZSBgbnVsbGAuXG4gKiAtIEEgVVVJRDogZmlsdGVyIGZvciBtZXNzYWdlcyBpbiB0aGF0IHNwZWNpZmljIHRocmVhZC5cbiAqXG4gKiBgaXNSZWFkYCBpcyBob25vcmVkIGJ5IGBidWlsZE1lc3NhZ2VDb25kaXRpb25zYCBpbiBwaXBlbGluZS1kYXRhIHZpYSBhXG4gKiBganNvbmJfZXhpc3RzKHJlYWRfYnksICRvcmdJZClgIGNoZWNrIG9uIGBtZXNzYWdlcy5yZWFkX2J5YCBmb3IgdGhlIHJlcXVlc3RpbmdcbiAqIG9yZyAodGhlIGZ1bmN0aW9uIGZvcm0sIG5vdCB0aGUgYD9gIG9wZXJhdG9yLCB0byBhdm9pZCBwYXJhbS1iaW5kaW5nIGNsYXNoZXMpLlxuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZUZpbHRlclNjaGVtYSA9IEJhc2VGaWx0ZXJTY2hlbWEuZXh0ZW5kKHtcbiAgdGhyZWFkSWQ6IHoudW5pb24oW3ouc3RyaW5nKCkudXVpZCgpLCB6LmxpdGVyYWwoJ3Jvb3QnKSwgei5udWxsKCldKS5vcHRpb25hbCgpLFxuICByZWNpcGllbnRPcmdJZDogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgbWVzc2FnZVR5cGU6IE1lc3NhZ2VUeXBlU2NoZW1hLm9wdGlvbmFsKCksXG4gIGlzUmVhZDogQm9vbGVhblF1ZXJ5U2NoZW1hLm9wdGlvbmFsKCksXG4gIHByaW9yaXR5OiBNZXNzYWdlUHJpb3JpdHlTY2hlbWEub3B0aW9uYWwoKSxcbiAgY2hhbm5lbDogTWVzc2FnZUNoYW5uZWxTY2hlbWEub3B0aW9uYWwoKSxcbiAgc2VudEJ5OiBNZXNzYWdlU2VudEJ5U2NoZW1hLm9wdGlvbmFsKCksXG4gIC4uLk1lc3NhZ2VQYXJ0eUZpbHRlckZpZWxkcyxcbiAgLy8gYHRydWVgIGxpc3RzIHdoYXQgVEhJUyBvcmcgcmVtb3ZlZCBmcm9tIGl0cyBpbmJveCAodGhlIFwiUmVtb3ZlZFwiIHZpZXcpXG4gIC8vIGluc3RlYWQgb2YgdGhlIGluYm94IGl0c2VsZi4gSXQgbmV2ZXIgd2lkZW5zIHZpc2liaWxpdHkg4oCUIGl0IG9ubHkgZmxpcHNcbiAgLy8gd2hpY2ggc2lkZSBvZiB0aGUgb3JnJ3Mgb3duIGBoaWRkZW5CeWAgc3RhbXAgaXMgc2hvd24uXG4gIGhpZGRlbjogQm9vbGVhblF1ZXJ5U2NoZW1hLm9wdGlvbmFsKCksXG4gIC8vIEZyZWUtdGV4dCBpbmJveCBzZWFyY2ggb3ZlciBzdWJqZWN0L2NvbnRlbnQuIEJvdW5kZWQgc28gYSBwYXRob2xvZ2ljYWwgdGVybVxuICAvLyBjYW4ndCBibG93IHVwIHRoZSBMSUtFOyB0aGUgcXVlcnkgYnVpbGRlciBlc2NhcGVzIHdpbGRjYXJkcyArIGlnbm9yZXMgYmxhbmtzLlxuICBzZWFyY2g6IHouc3RyaW5nKCkudHJpbSgpLm1pbigxKS5tYXgoMjAwKS5vcHRpb25hbCgpLFxufSk7XG5cbi8qKlxuICogVXBwZXIgYm91bmRzIG9uIGZyZWUtdGV4dCBtZXNzYWdlIGZpZWxkcy4gV2l0aG91dCB0aGVzZSBhbiB1bmJvdW5kZWRcbiAqIHN1YmplY3QvY29udGVudCAoZS5nLiBhIDFNQiBhbm5vdW5jZW1lbnQpIGlzIHBlcnNpc3RlZCBBTkQgU1NFLWJyb2FkY2FzdCB0b1xuICogZXZlcnkgb3JnLiBgc3ViamVjdGAgbWF0Y2hlcyB0aGUgYHZhcmNoYXIoNTAwKWAgREIgY29sdW1uIHNvIHdlIHJlamVjdCByYXRoZXJcbiAqIHRoYW4gc2lsZW50bHkgdHJ1bmNhdGU7IGBjb250ZW50YCBpcyBhIGB0ZXh0YCBjb2x1bW4gd2l0aCBubyBEQiBib3VuZCwgc28gd2VcbiAqIGNhcCBpdCBhdCBhIHNhbmUgMzIgS2lCIGF0IHRoZSBhcHAgbGF5ZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX1NVQkpFQ1RfTUFYID0gNTAwO1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfQ09OVEVOVF9NQVggPSAzMjc2ODtcblxuLyoqIE1heCBhdHRhY2htZW50cyBsaW5rYWJsZSB0byBhIHNpbmdsZSBtZXNzYWdlL3JlcGx5LiAqL1xuZXhwb3J0IGNvbnN0IE1FU1NBR0VfTUFYX0FUVEFDSE1FTlRTID0gNTtcblxuLyoqXG4gKiBNYXggYXR0YWNobWVudCBzaXplIChNaUIpIOKAlCBlbnYtb3ZlcnJpZGFibGUuIFRoZSB1cGxvYWQgcm91dGUgZW5mb3JjZXMgdGhpc1xuICogKG11bHRlciBgZmlsZVNpemVgKTsga2VwdCBoZXJlIHNvIHRoZSBib3VuZCBsaXZlcyB3aXRoIHRoZSBvdGhlciBtZXNzYWdlXG4gKiBsaW1pdHMgcmF0aGVyIHRoYW4gb25seSBpbmxpbmUgaW4gdGhlIHJvdXRlLlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9BVFRBQ0hNRU5UX01BWF9NQiA9IGVudkludCgnTUVTU0FHRV9BVFRBQ0hNRU5UX01BWF9NQicsIDEwLCB7IG1pbjogMSB9KTtcbmV4cG9ydCBjb25zdCBNRVNTQUdFX0FUVEFDSE1FTlRfTUFYX0JZVEVTID0gTUVTU0FHRV9BVFRBQ0hNRU5UX01BWF9NQiAqIDEwMjQgKiAxMDI0O1xuXG4vKipcbiAqIEFsbG93LWxpc3Qgb2YgYXR0YWNobWVudCBNSU1FIHR5cGVzIOKAlCBjb21tb24gaW1hZ2VzICsgZG9jdW1lbnRzICsgemlwL3lhbWwvanNvbi5cbiAqIERlbGliZXJhdGVseSBleGNsdWRlcyBleGVjdXRhYmxlcy9zY3JpcHRzL0hUTUwvU1ZHIChzdG9yZWQtWFNTIC8gZHJpdmUtYnkpLlxuICogemlwIGlzIGEgZG93bmxvYWQgY29udGFpbmVyIChkb2Vzbid0IHJlbmRlciBpbi1icm93c2VyKTsgeWFtbC9qc29uIGFyZSBwbGFpblxuICogdGV4dCDigJQgbm9uZSBjYXJyeSB0aGUgZHJpdmUtYnkgcmlzayBvZiB0aGUgZXhjbHVkZWQgdHlwZXMuIEV4dGVuZCBoZXJlLlxuICovXG5leHBvcnQgY29uc3QgTUVTU0FHRV9BVFRBQ0hNRU5UX0FMTE9XRURfTUlNRTogUmVhZG9ubHlTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoW1xuICAnaW1hZ2UvcG5nJywgJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvZ2lmJywgJ2ltYWdlL3dlYnAnLFxuICAnYXBwbGljYXRpb24vcGRmJywgJ3RleHQvcGxhaW4nLCAndGV4dC9jc3YnLFxuICAnYXBwbGljYXRpb24vbXN3b3JkJyxcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JyxcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXG4gICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsXG4gICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwucHJlc2VudGF0aW9uJyxcbiAgLy8gQXJjaGl2ZXMgKHppcCAvIGd6IC8gdGFyIC8gdGFyLmd6KSDigJQgYnJvd3NlcnMgcmVwb3J0IHRoZXNlIHZhcmlvdXNseSBieSBPUztcbiAgLy8gY292ZXIgdGhlIGNvbW1vbiB2YXJpYW50cy4gVGhleSBkb3dubG9hZCByYXRoZXIgdGhhbiByZW5kZXIgaW4tYnJvd3Nlci5cbiAgJ2FwcGxpY2F0aW9uL3ppcCcsICdhcHBsaWNhdGlvbi94LXppcC1jb21wcmVzc2VkJyxcbiAgJ2FwcGxpY2F0aW9uL2d6aXAnLCAnYXBwbGljYXRpb24veC1nemlwJyxcbiAgJ2FwcGxpY2F0aW9uL3gtdGFyJywgJ2FwcGxpY2F0aW9uL3RhcicsXG4gICdhcHBsaWNhdGlvbi94LWNvbXByZXNzZWQtdGFyJyxcbiAgLy8ganNvbiAoYnJvd3NlcnMgbWF5IHNlbmQgYXBwbGljYXRpb24vanNvbiBvciB0ZXh0L2pzb24pLlxuICAnYXBwbGljYXRpb24vanNvbicsICd0ZXh0L2pzb24nLFxuICAvLyB5YW1sL3ltbCDigJQgbm8gc2luZ2xlIHJlZ2lzdGVyZWQgdHlwZTsgY292ZXIgdGhlIGNvbW1vbiB2YXJpYW50cy5cbiAgJ2FwcGxpY2F0aW9uL3gteWFtbCcsICdhcHBsaWNhdGlvbi95YW1sJywgJ3RleHQveWFtbCcsICd0ZXh0L3gteWFtbCcsXG5dKTtcblxuLyoqXG4gKiBTYWZlIGZpbGVuYW1lIGV4dGVuc2lvbnMuIEJyb3dzZXJzIGZyZXF1ZW50bHkgc2VuZCBgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtYFxuICogZm9yIGFyY2hpdmVzICsgY29uZmlnIGZpbGVzICgudGFyLy5nei8udGd6Ly55YW1sL+KApikgYmVjYXVzZSB0aGV5IGhhdmUgbm9cbiAqIHJlbGlhYmxlIHJlZ2lzdGVyZWQgTUlNRSB0eXBlLCBzbyB0aGUgTUlNRSBhbGxvdy1saXN0IGFsb25lIHJlamVjdHMgdGhlbS4gVGhlc2VcbiAqIGV4dGVuc2lvbnMgYXJlIGFjY2VwdGVkIGFzIGEgZmFsbGJhY2sgT05MWSB3aGVuIHRoZSByZXBvcnRlZCBNSU1FIGlzIHRoYXRcbiAqIGdlbmVyaWMgdHlwZSAoc2VlIGlzQWxsb3dlZEF0dGFjaG1lbnRUeXBlKSDigJQgc28gYSBrbm93biByZW5kZXIvZXhlY3V0ZSBNSU1FXG4gKiAoaW1hZ2Uvc3ZnK3htbCwgdGV4dC9odG1sLCDigKYpIGlzIG5ldmVyIHJlc2N1ZWQgYnkgYSBzcG9vZmVkIGV4dGVuc2lvbi4gU3RpbGxcbiAqIGV4Y2x1ZGVzIC5odG1sLy5zdmcvLmpzLy5leGUv4oCmIChuZXZlciBsaXN0ZWQgaGVyZSkuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0FUVEFDSE1FTlRfQUxMT1dFRF9FWFQ6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJy5wbmcnLCAnLmpwZycsICcuanBlZycsICcuZ2lmJywgJy53ZWJwJyxcbiAgJy5wZGYnLCAnLnR4dCcsICcuY3N2JywgJy5kb2MnLCAnLmRvY3gnLCAnLnhscycsICcueGxzeCcsICcucHB0JywgJy5wcHR4JyxcbiAgJy56aXAnLCAnLmd6JywgJy50Z3onLCAnLnRhcicsICcuanNvbicsICcueWFtbCcsICcueW1sJyxcbl0pO1xuXG4vKipcbiAqIFRydWUgaWYgYW4gYXR0YWNobWVudCBpcyBhY2NlcHRlZC4gQWNjZXB0cyBieSBNSU1FIGFsbG93LWxpc3QsIE9SIOKAlCB3aGVuIHRoZVxuICogYnJvd3NlciByZXBvcnRzIHRoZSBnZW5lcmljIGBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1gICh1bmtub3duIGJpbmFyeSkg4oCUIGJ5IGFcbiAqIHNhZmUgZmlsZW5hbWUgZXh0ZW5zaW9uLiBvY3RldC1zdHJlYW0gaXMgc2VydmVkIGFzIGEgZG93bmxvYWQgKG5ldmVyIHJlbmRlcmVkKSxcbiAqIHNvIHRoZSBleHRlbnNpb24gZmFsbGJhY2sgY2FuJ3QgdHVybiBpbnRvIGEgc3RvcmVkLVhTUyB2ZWN0b3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0FsbG93ZWRBdHRhY2htZW50VHlwZShtaW1ldHlwZTogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmIChNRVNTQUdFX0FUVEFDSE1FTlRfQUxMT1dFRF9NSU1FLmhhcyhtaW1ldHlwZSkpIHJldHVybiB0cnVlO1xuICBpZiAobWltZXR5cGUgIT09ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IGRvdCA9IChmaWxlbmFtZSB8fCAnJykubGFzdEluZGV4T2YoJy4nKTtcbiAgaWYgKGRvdCA8IDApIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIE1FU1NBR0VfQVRUQUNITUVOVF9BTExPV0VEX0VYVC5oYXMoZmlsZW5hbWUuc2xpY2UoZG90KS50b0xvd2VyQ2FzZSgpKTtcbn1cblxuLyoqIEF0dGFjaG1lbnQgbWV0YWRhdGEgRFRPIHJldHVybmVkIHRvIGNsaWVudHMgKG5ldmVyIGV4cG9zZXMgdGhlIHN0b3JhZ2Uga2V5KS4gKi9cbi8qKlxuICogQXR0YWNobWVudCBpZHMgdG8gbGluayB0byBhIG1lc3NhZ2UuIEVhY2ggaXMgdGhlIGlkIHJldHVybmVkIGJ5IGEgcHJpb3JcbiAqIFBPU1QgL21lc3NhZ2VzL2F0dGFjaG1lbnRzIHVwbG9hZDsgdGhlIGNyZWF0ZSByb3V0ZSBsaW5rcyBvbmx5IGlkcyB0aGF0IGJlbG9uZ1xuICogdG8gdGhlIGNhbGxlciAob3duIG9yZyArIHVwbG9hZGVyKSBhbmQgYXJlIHN0aWxsIHVuYXR0YWNoZWQuXG4gKi9cbmNvbnN0IEF0dGFjaG1lbnRJZHNTY2hlbWEgPSB6LmFycmF5KHouc3RyaW5nKCkudXVpZCgpKS5tYXgoTUVTU0FHRV9NQVhfQVRUQUNITUVOVFMpLm9wdGlvbmFsKCk7XG5cbi8qKlxuICogTWVzc2FnZSBjcmVhdGlvbiBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IE1lc3NhZ2VDcmVhdGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHJlY2lwaWVudE9yZ0lkOiB6LnN0cmluZygpLm1pbigxLCAnUmVjaXBpZW50IG9yZ2FuaXphdGlvbiBJRCBpcyByZXF1aXJlZCcpLFxuICAvLyBPcHRpb25hbCBwZXItdXNlciB0YXJnZXRpbmcgV0lUSElOIHJlY2lwaWVudE9yZ0lkLiBXaGVuIHNldCwgb25seSB0aGlzIHVzZXJcbiAgLy8gc2VlcyB0aGUgY29udmVyc2F0aW9uIChlbmZvcmNlZCBpbiBidWlsZE1lc3NhZ2VDb25kaXRpb25zKS4gQ29udmVyc2F0aW9uLW9ubHlcbiAgLy8gYW5kIHJlcXVpcmVzIGEgY29uY3JldGUgcmVjaXBpZW50IG9yZyDigJQgdGhlIHJvdXRlIHJlamVjdHMgaXQgb24gYW5ub3VuY2VtZW50c1xuICAvLyBhbmQgJyonIGJyb2FkY2FzdHMuIEJvdW5kZWQgdG8gdGhlIHJlY2lwaWVudF91c2VyX2lkIGNvbHVtbiB3aWR0aC5cbiAgcmVjaXBpZW50VXNlcklkOiB6LnN0cmluZygpLm1pbigxKS5tYXgoMjU1KS5vcHRpb25hbCgpLFxuICBtZXNzYWdlVHlwZTogTWVzc2FnZVR5cGVTY2hlbWEub3B0aW9uYWwoKS5kZWZhdWx0KCdjb252ZXJzYXRpb24nKSxcbiAgY2hhbm5lbDogTWVzc2FnZUNoYW5uZWxTY2hlbWEub3B0aW9uYWwoKSxcbiAgc3ViamVjdDogei5zdHJpbmcoKS5taW4oMSwgJ1N1YmplY3QgaXMgcmVxdWlyZWQnKS5tYXgoTUVTU0FHRV9TVUJKRUNUX01BWCwgYFN1YmplY3QgbXVzdCBiZSBhdCBtb3N0ICR7TUVTU0FHRV9TVUJKRUNUX01BWH0gY2hhcmFjdGVyc2ApLFxuICBjb250ZW50OiB6LnN0cmluZygpLm1pbigxLCAnQ29udGVudCBpcyByZXF1aXJlZCcpLm1heChNRVNTQUdFX0NPTlRFTlRfTUFYLCBgQ29udGVudCBtdXN0IGJlIGF0IG1vc3QgJHtNRVNTQUdFX0NPTlRFTlRfTUFYfSBjaGFyYWN0ZXJzYCksXG4gIHByaW9yaXR5OiBNZXNzYWdlUHJpb3JpdHlTY2hlbWEub3B0aW9uYWwoKS5kZWZhdWx0KCdub3JtYWwnKSxcbiAgYXR0YWNobWVudElkczogQXR0YWNobWVudElkc1NjaGVtYSxcbn0pO1xuXG4vKipcbiAqIE1lc3NhZ2UgcmVwbHkgc2NoZW1hXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlUmVwbHlTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGNvbnRlbnQ6IHouc3RyaW5nKCkubWluKDEsICdDb250ZW50IGlzIHJlcXVpcmVkJykubWF4KE1FU1NBR0VfQ09OVEVOVF9NQVgsIGBDb250ZW50IG11c3QgYmUgYXQgbW9zdCAke01FU1NBR0VfQ09OVEVOVF9NQVh9IGNoYXJhY3RlcnNgKSxcbiAgYXR0YWNobWVudElkczogQXR0YWNobWVudElkc1NjaGVtYSxcbn0pO1xuXG4vKipcbiAqIEVkaXQgYW4gYWxyZWFkeS1zZW50IG1lc3NhZ2UncyBDT05URU5UIChhdXRob3Itb25seSwgZW5mb3JjZWQgc2VydmVyLXNpZGUpLlxuICogT25seSB0aGUgYm9keSBpcyBlZGl0YWJsZSDigJQgc3ViamVjdC9yZWNpcGllbnQvdHlwZS9hdHRhY2htZW50cyBhcmUgaW1tdXRhYmxlXG4gKiBhZnRlciBzZW5kIChjaGFuZ2luZyB0aGVtIHdvdWxkIHJld3JpdGUgdGhlIGNvbnZlcnNhdGlvbidzIHJvdXRpbmcvbWVhbmluZykuXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlRWRpdFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgY29udGVudDogei5zdHJpbmcoKS5taW4oMSwgJ0NvbnRlbnQgaXMgcmVxdWlyZWQnKS5tYXgoTUVTU0FHRV9DT05URU5UX01BWCwgYENvbnRlbnQgbXVzdCBiZSBhdCBtb3N0ICR7TUVTU0FHRV9DT05URU5UX01BWH0gY2hhcmFjdGVyc2ApLFxufSk7XG5cbi8qKiBNb3N0IHJvd3Mgb25lIGJ1bGsgY2FsbCAoaGlkZSAvIHVuaGlkZSAvIHJlYWQgLyBkZWxldGUpIG1heSBuYW1lOyBhIHBhZ2Ugb2YgY2hlY2tib3hlcyBpcyAyNS4gKi9cbmV4cG9ydCBjb25zdCBNRVNTQUdFX0JVTEtfTUFYX0lEUyA9IDIwMDtcblxuLyoqXG4gKiBCdWxrIFwicmVtb3ZlIGZyb20gbXkgaW5ib3hcIiwgc2NvcGVkIGJ5IHRoZSBTQU1FIGZpbHRlcnMgdGhlIGxpc3QgdGFrZXMg4oCUXG4gKiBvcHRpb25hbGx5IG5hcnJvd2VkIGZ1cnRoZXIgdG8gYW4gZXhwbGljaXQgYGlkc2Agc2VsZWN0aW9uICh0aGUgaW5ib3gnc1xuICogY2hlY2tib3hlcykuXG4gKlxuICogRXZlcnkgZmllbGQgaXMgb3B0aW9uYWwgYW5kIGV2ZXJ5IG9uZSBOQVJST1dTOiBhbiBlbXB0eSBib2R5IG1lYW5zIFwidGhlIHdob2xlXG4gKiB0YWJcIi4gVGhlcmUgaXMgZGVsaWJlcmF0ZWx5IG5vIGBvcmdJZGAg4oCUIHRoZSBvcmcgY29tZXMgZnJvbSB0aGUgYXV0aGVudGljYXRlZFxuICogcm91dGUuIGBpZHNgIGNhbm5vdCB3aWRlbiBhbnl0aGluZyBlaXRoZXI6IGl0IGlzIEFORC1lZCB3aXRoIHRoZSBzYW1lXG4gKiB2aXNpYmlsaXR5IGNvbmRpdGlvbnMgdGhlIGxpc3QgdXNlcywgc28gbmFtaW5nIGEgcm93IHRoZSBjYWxsZXIgY2Fubm90IHNlZVxuICogc2ltcGx5IG1hdGNoZXMgbm90aGluZywgYW5kIHRoZSB3cml0ZSBvbmx5IGV2ZXIgc3RhbXBzIHRoZSBjYWxsZXIncyBPV05cbiAqIGBoaWRkZW5CeVtvcmdJZF1gLlxuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZUhpZGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGlkczogei5hcnJheSh6LnN0cmluZygpLnV1aWQoKSkubWluKDEpLm1heChNRVNTQUdFX0JVTEtfTUFYX0lEUykub3B0aW9uYWwoKSxcbiAgbWVzc2FnZVR5cGU6IHouZW51bShbJ2Fubm91bmNlbWVudCcsICdjb252ZXJzYXRpb24nXSkub3B0aW9uYWwoKSxcbiAgaXNSZWFkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICBwcmlvcml0eTogei5lbnVtKFsnbm9ybWFsJywgJ2hpZ2gnLCAndXJnZW50J10pLm9wdGlvbmFsKCksXG4gIGNoYW5uZWw6IHouc3RyaW5nKCkubWF4KDY0KS5vcHRpb25hbCgpLFxuICBzZW50Qnk6IE1lc3NhZ2VTZW50QnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgLi4uTWVzc2FnZVBhcnR5RmlsdGVyRmllbGRzLFxuICBzZWFyY2g6IHouc3RyaW5nKCkubWF4KDIwMCkub3B0aW9uYWwoKSxcbn0pO1xuXG4vKiogQW4gZXhwbGljaXQgY2hlY2tib3ggc2VsZWN0aW9uIOKAlCB0aGUgYm9keSBzaGFyZWQgYnkgdGhlIGJ1bGsgaWQgcm91dGVzLiAqL1xuY29uc3QgQnVsa0lkc1NjaGVtYSA9IHouYXJyYXkoei5zdHJpbmcoKS51dWlkKCkpLm1pbigxKS5tYXgoTUVTU0FHRV9CVUxLX01BWF9JRFMpO1xuXG4vKipcbiAqIGBQT1NUIC9tZXNzYWdlcy91bmhpZGVgIGFuZCBgUE9TVCAvbWVzc2FnZXMvZGVsZXRlYDogdGhlIHRpY2tlZCByb3dzLlxuICogSWRzIG9ubHkg4oCUIG5ldmVyIGEgZmlsdGVyOiByZXN0b3JpbmcgaXMgdGhlIHVuZG8gb2YgYSBzcGVjaWZpYyByZW1vdmFsLCBhbmRcbiAqIGRlbGV0ZSBpcyBwZXItcm93IGF1dGhvci1vbmx5LCBzbyBuZWl0aGVyIG1heSBydW4gYWdhaW5zdCBcImV2ZXJ5dGhpbmdcbiAqIG1hdGNoaW5nXCIuXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlQnVsa0lkc1NjaGVtYSA9IHoub2JqZWN0KHsgaWRzOiBCdWxrSWRzU2NoZW1hIH0pO1xuXG4vKipcbiAqIGBQT1NUIC9tZXNzYWdlcy9yZWFkYCDigJQgc2V0IFRISVMgb3JnJ3MgcmVhZCBzdGF0ZSBvbiB0aGUgdGlja2VkIHJvd3MuXG4gKiBgaXNSZWFkOiB0cnVlYCBhbHNvIG1hcmtzIGVhY2ggdGhyZWFkJ3MgcmVwbGllcyByZWFkIChhcyBvcGVuaW5nIGl0IGRvZXMpO1xuICogYGZhbHNlYCBjbGVhcnMgdGhlIHJvb3QncyBzdGFtcCBvbmx5LCB3aGljaCBpcyB3aGF0IHB1dHMgaXQgYmFjayB0byB1bnJlYWQuXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlQnVsa1JlYWRTY2hlbWEgPSB6Lm9iamVjdCh7IGlkczogQnVsa0lkc1NjaGVtYSwgaXNSZWFkOiB6LmJvb2xlYW4oKSB9KTtcbiJdfQ==
@@ -62,4 +62,4 @@ export function validateQuery(req, schema) {
62
62
  export function validateBody(req, schema) {
63
63
  return validate(req.body, schema);
64
64
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL21pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUd0QyxPQUFPLEVBQUUsUUFBUSxFQUFrQixNQUFNLEtBQUssQ0FBQztBQXlCL0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUN0QixJQUFhLEVBQ2IsTUFBb0I7SUFFcEIsSUFBSSxDQUFDO1FBQ0gsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUksS0FBSyxZQUFZLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsTUFBTSxPQUFPLEdBQUcsVUFBVTtnQkFDeEIsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssVUFBVSxDQUFDLE9BQU8sRUFBRTtnQkFDdkQsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO1lBQ3hCLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3hELENBQUM7UUFDRCxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUksR0FBWSxFQUFFLE1BQW9CO0lBQ2pFLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDckMsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUksR0FBWSxFQUFFLE1BQW9CO0lBQ2hFLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgdHlwZSB7IFJlcXVlc3QgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCB7IFpvZEVycm9yLCB0eXBlIFpvZFNjaGVtYSB9IGZyb20gJ3pvZCc7XG5cbi8qKlxuICogUmVzdWx0IHR5cGUgZm9yIHZhbGlkYXRpb24gb3BlcmF0aW9ucy5cbiAqXG4gKiBDQU5PTklDQUwgdmFsaWRhdGlvbi1yZXN1bHQgc2hhcGUgZm9yIHRoZSBhcGktY29yZSBwdWJsaWMgc3VyZmFjZTogYSBib29sZWFuLVxuICogZGlzY3JpbWluYXRlZCB1bmlvbiAoYGlmICghcmVzdWx0Lm9rKSDigKZgKS4gVXNlIFRISVMgZm9yIGFueXRoaW5nIHRoYXQgcGFyc2VzXG4gKiBhZ2FpbnN0IGEgWm9kIHNjaGVtYSDigJQgYHZhbGlkYXRlYCAvIGB2YWxpZGF0ZUJvZHlgIC8gYHZhbGlkYXRlUXVlcnlgLiBUaGVcbiAqIGBva2AgZGlzY3JpbWluYW50IGFsc28gY2FycmllcyB0aGUgb3B0aW9uYWwgYHpvZEVycm9yYCBmb3IgY2FsbGVycyB0aGF0IHdhbnRcbiAqIGZpZWxkLWxldmVsIGRldGFpbC5cbiAqXG4gKiBOb3RlIHRoZSBkZWxpYmVyYXRlbHktbGlnaHRlciBzaWJsaW5nIHNoYXBlIGluIGB1dGlscy9wYXJhbXMudHNgXG4gKiAoYHsgdmFsdWUgfSB8IHsgZXJyb3IgfWAsIG5hcnJvd2VkIHdpdGggYCdlcnJvcicgaW4gcmVzdWx0YCkuIFRoYXQgb25lIGlzIGZvclxuICogc2ltcGxlIGlubGluZSByZXF1ZXN0LXBhcnNpbmcgZ3VhcmRzIChgdmFsaWRhdGVCdWxrQXJyYXlgLCBgcGFyc2VEYXRlUmFuZ2VgLFxuICogYHBhcnNlUmVwb3J0SW50ZXJ2YWxgKSDigJQgTk9UIHNjaGVtYSB2YWxpZGF0aW9uLiBUaGUgdHdvIGFyZSBrZXB0IGRpc3RpbmN0IG9uXG4gKiBwdXJwb3NlOiB1bmlmeWluZyBgdXRpbHMvcGFyYW1zLnRzYCBvbnRvIGB7IG9rIH1gIHdvdWxkIHRvdWNoIGV2ZXJ5XG4gKiBgJ2Vycm9yJyBpbiByZXN1bHRgIGNhbGwgc2l0ZSBhY3Jvc3MgdGhlIGRvd25zdHJlYW0gc2VydmljZXMgKHBpcGVsaW5lLFxuICogcGx1Z2luLCByZXBvcnRpbmcsIGNvbXBsaWFuY2UsIOKApikgZm9yIG5vIGJlaGF2aW91cmFsIGdhaW4sIHNvIHRoZSBjb252ZW50aW9uXG4gKiBpcyBkb2N1bWVudGVkIHJhdGhlciB0aGFuIGZvcmNlLW1pZ3JhdGVkLiBSdWxlIG9mIHRodW1iOiBab2Qgc2NoZW1hIOKGklxuICogYFZhbGlkYXRpb25SZXN1bHRgIChgb2tgKTsgYWQtaG9jIHBhcnNlIGd1YXJkIOKGkiBwYXJhbXMudHMgKGAnZXJyb3InIGluYCkuXG4gKi9cbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25SZXN1bHQ8VD4gPVxuICB8IHsgb2s6IHRydWU7IHZhbHVlOiBUIH1cbiAgfCB7IG9rOiBmYWxzZTsgZXJyb3I6IHN0cmluZzsgem9kRXJyb3I/OiBab2RFcnJvciB9O1xuXG4vKipcbiAqIFZhbGlkYXRlIGFyYml0cmFyeSBkYXRhIGFnYWluc3QgYSBab2Qgc2NoZW1hLlxuICpcbiAqIFRoaXMgaXMgdGhlIGNvcmUgdmFsaWRhdGlvbiBmdW5jdGlvbiB1c2VkIGJ5IHRoZSBFeHByZXNzLXNwZWNpZmljIGhlbHBlcnNcbiAqIChgdmFsaWRhdGVCb2R5YCwgYHZhbGlkYXRlUXVlcnlgKS4gSXQgY2FuIGFsc28gYmUgY2FsbGVkIGRpcmVjdGx5IHdoZW5cbiAqIHZhbGlkYXRpbmcgZGF0YSB0aGF0IGRvZXNuJ3QgY29tZSBmcm9tIGEgcmVxdWVzdCBvYmplY3QuXG4gKlxuICogQHBhcmFtIGRhdGEgLSBEYXRhIHRvIHZhbGlkYXRlXG4gKiBAcGFyYW0gc2NoZW1hIC0gWm9kIHNjaGVtYSBmb3IgdmFsaWRhdGlvblxuICogQHJldHVybnMgVmFsaWRhdGlvbiByZXN1bHQgd2l0aCBwYXJzZWQgZGF0YSBvciBlcnJvclxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXN1bHQgPSB2YWxpZGF0ZShzb21lRGF0YSwgTXlTY2hlbWEpO1xuICogaWYgKCFyZXN1bHQub2spIHtcbiAqICAgcmV0dXJuIHNlbmRCYWRSZXF1ZXN0KHJlcywgcmVzdWx0LmVycm9yKTtcbiAqIH1cbiAqIGNvbnN0IHBhcnNlZCA9IHJlc3VsdC52YWx1ZTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGU8VD4oXG4gIGRhdGE6IHVua25vd24sXG4gIHNjaGVtYTogWm9kU2NoZW1hPFQ+LFxuKTogVmFsaWRhdGlvblJlc3VsdDxUPiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHsgb2s6IHRydWUsIHZhbHVlOiBzY2hlbWEucGFyc2UoZGF0YSkgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBab2RFcnJvcikge1xuICAgICAgY29uc3QgZmlyc3RJc3N1ZSA9IGVycm9yLmlzc3Vlc1swXTtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBmaXJzdElzc3VlXG4gICAgICAgID8gYCR7Zmlyc3RJc3N1ZS5wYXRoLmpvaW4oJy4nKX06ICR7Zmlyc3RJc3N1ZS5tZXNzYWdlfWBcbiAgICAgICAgOiAnVmFsaWRhdGlvbiBmYWlsZWQnO1xuICAgICAgcmV0dXJuIHsgb2s6IGZhbHNlLCBlcnJvcjogbWVzc2FnZSwgem9kRXJyb3I6IGVycm9yIH07XG4gICAgfVxuICAgIHJldHVybiB7IG9rOiBmYWxzZSwgZXJyb3I6ICdWYWxpZGF0aW9uIGZhaWxlZCcgfTtcbiAgfVxufVxuXG4vKipcbiAqIFZhbGlkYXRlIHJlcXVlc3QgcXVlcnkgcGFyYW1ldGVycyB3aXRoIGEgWm9kIHNjaGVtYS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmVzdWx0ID0gdmFsaWRhdGVRdWVyeShyZXEsIFBpcGVsaW5lRmlsdGVyU2NoZW1hKTtcbiAqIGlmICghcmVzdWx0Lm9rKSByZXR1cm4gc2VuZEJhZFJlcXVlc3QocmVzLCByZXN1bHQuZXJyb3IpO1xuICogY29uc3QgZmlsdGVyID0gcmVzdWx0LnZhbHVlO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVF1ZXJ5PFQ+KHJlcTogUmVxdWVzdCwgc2NoZW1hOiBab2RTY2hlbWE8VD4pOiBWYWxpZGF0aW9uUmVzdWx0PFQ+IHtcbiAgcmV0dXJuIHZhbGlkYXRlKHJlcS5xdWVyeSwgc2NoZW1hKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSByZXF1ZXN0IGJvZHkgd2l0aCBhIFpvZCBzY2hlbWEuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJlc3VsdCA9IHZhbGlkYXRlQm9keShyZXEsIFBpcGVsaW5lQ3JlYXRlU2NoZW1hKTtcbiAqIGlmICghcmVzdWx0Lm9rKSByZXR1cm4gc2VuZEJhZFJlcXVlc3QocmVzLCByZXN1bHQuZXJyb3IpO1xuICogY29uc3QgZGF0YSA9IHJlc3VsdC52YWx1ZTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVCb2R5PFQ+KHJlcTogUmVxdWVzdCwgc2NoZW1hOiBab2RTY2hlbWE8VD4pOiBWYWxpZGF0aW9uUmVzdWx0PFQ+IHtcbiAgcmV0dXJuIHZhbGlkYXRlKHJlcS5ib2R5LCBzY2hlbWEpO1xufVxuIl19
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBR3RDLE9BQU8sRUFBRSxRQUFRLEVBQWtCLE1BQU0sS0FBSyxDQUFDO0FBeUIvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQ3RCLElBQWEsRUFDYixNQUFvQjtJQUVwQixJQUFJLENBQUM7UUFDSCxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFBSSxLQUFLLFlBQVksUUFBUSxFQUFFLENBQUM7WUFDOUIsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQyxNQUFNLE9BQU8sR0FBRyxVQUFVO2dCQUN4QixDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxVQUFVLENBQUMsT0FBTyxFQUFFO2dCQUN2RCxDQUFDLENBQUMsbUJBQW1CLENBQUM7WUFDeEIsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDeEQsQ0FBQztRQUNELE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxDQUFDO0lBQ25ELENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBSSxHQUFZLEVBQUUsTUFBb0I7SUFDakUsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBSSxHQUFZLEVBQUUsTUFBb0I7SUFDaEUsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB0eXBlIHsgUmVxdWVzdCB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IHsgWm9kRXJyb3IsIHR5cGUgWm9kU2NoZW1hIH0gZnJvbSAnem9kJztcblxuLyoqXG4gKiBSZXN1bHQgdHlwZSBmb3IgdmFsaWRhdGlvbiBvcGVyYXRpb25zLlxuICpcbiAqIENBTk9OSUNBTCB2YWxpZGF0aW9uLXJlc3VsdCBzaGFwZSBmb3IgdGhlIGFwaS1jb3JlIHB1YmxpYyBzdXJmYWNlOiBhIGJvb2xlYW4tXG4gKiBkaXNjcmltaW5hdGVkIHVuaW9uIChgaWYgKCFyZXN1bHQub2spIOKApmApLiBVc2UgVEhJUyBmb3IgYW55dGhpbmcgdGhhdCBwYXJzZXNcbiAqIGFnYWluc3QgYSBab2Qgc2NoZW1hIOKAlCBgdmFsaWRhdGVgIC8gYHZhbGlkYXRlQm9keWAgLyBgdmFsaWRhdGVRdWVyeWAuIFRoZVxuICogYG9rYCBkaXNjcmltaW5hbnQgYWxzbyBjYXJyaWVzIHRoZSBvcHRpb25hbCBgem9kRXJyb3JgIGZvciBjYWxsZXJzIHRoYXQgd2FudFxuICogZmllbGQtbGV2ZWwgZGV0YWlsLlxuICpcbiAqIE5vdGUgdGhlIGRlbGliZXJhdGVseS1saWdodGVyIHNpYmxpbmcgc2hhcGUgaW4gYHV0aWxzL3BhcmFtcy50c2BcbiAqIChgeyB2YWx1ZSB9IHwgeyBlcnJvciB9YCwgbmFycm93ZWQgd2l0aCBgJ2Vycm9yJyBpbiByZXN1bHRgKS4gVGhhdCBvbmUgaXMgZm9yXG4gKiBzaW1wbGUgaW5saW5lIHJlcXVlc3QtcGFyc2luZyBndWFyZHMgKGB2YWxpZGF0ZUJ1bGtBcnJheWAsIGBwYXJzZURhdGVSYW5nZWAsXG4gKiBgcGFyc2VSZXBvcnRJbnRlcnZhbGApIOKAlCBOT1Qgc2NoZW1hIHZhbGlkYXRpb24uIFRoZSB0d28gYXJlIGtlcHQgZGlzdGluY3Qgb25cbiAqIHB1cnBvc2U6IHVuaWZ5aW5nIGB1dGlscy9wYXJhbXMudHNgIG9udG8gYHsgb2sgfWAgd291bGQgdG91Y2ggZXZlcnlcbiAqIGAnZXJyb3InIGluIHJlc3VsdGAgY2FsbCBzaXRlIGFjcm9zcyB0aGUgZG93bnN0cmVhbSBzZXJ2aWNlcyAocGlwZWxpbmUsXG4gKiBwbHVnaW4sIHJlcG9ydGluZywgY29tcGxpYW5jZSwg4oCmKSBmb3Igbm8gYmVoYXZpb3VyYWwgZ2Fpbiwgc28gdGhlIGNvbnZlbnRpb25cbiAqIGlzIGRvY3VtZW50ZWQgcmF0aGVyIHRoYW4gZm9yY2UtbWlncmF0ZWQuIFJ1bGUgb2YgdGh1bWI6IFpvZCBzY2hlbWEg4oaSXG4gKiBgVmFsaWRhdGlvblJlc3VsdGAgKGBva2ApOyBhZC1ob2MgcGFyc2UgZ3VhcmQg4oaSIHBhcmFtcy50cyAoYCdlcnJvcicgaW5gKS5cbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvblJlc3VsdDxUPiA9XG4gIHwgeyBvazogdHJ1ZTsgdmFsdWU6IFQgfVxuICB8IHsgb2s6IGZhbHNlOyBlcnJvcjogc3RyaW5nOyB6b2RFcnJvcj86IFpvZEVycm9yIH07XG5cbi8qKlxuICogVmFsaWRhdGUgYXJiaXRyYXJ5IGRhdGEgYWdhaW5zdCBhIFpvZCBzY2hlbWEuXG4gKlxuICogVGhpcyBpcyB0aGUgY29yZSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHVzZWQgYnkgdGhlIEV4cHJlc3Mtc3BlY2lmaWMgaGVscGVyc1xuICogKGB2YWxpZGF0ZUJvZHlgLCBgdmFsaWRhdGVRdWVyeWApLiBJdCBjYW4gYWxzbyBiZSBjYWxsZWQgZGlyZWN0bHkgd2hlblxuICogdmFsaWRhdGluZyBkYXRhIHRoYXQgZG9lc24ndCBjb21lIGZyb20gYSByZXF1ZXN0IG9iamVjdC5cbiAqXG4gKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gdmFsaWRhdGVcbiAqIEBwYXJhbSBzY2hlbWEgLSBab2Qgc2NoZW1hIGZvciB2YWxpZGF0aW9uXG4gKiBAcmV0dXJucyBWYWxpZGF0aW9uIHJlc3VsdCB3aXRoIHBhcnNlZCBkYXRhIG9yIGVycm9yXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHJlc3VsdCA9IHZhbGlkYXRlKHNvbWVEYXRhLCBNeVNjaGVtYSk7XG4gKiBpZiAoIXJlc3VsdC5vaykge1xuICogICByZXR1cm4gc2VuZEJhZFJlcXVlc3QocmVzLCByZXN1bHQuZXJyb3IpO1xuICogfVxuICogY29uc3QgcGFyc2VkID0gcmVzdWx0LnZhbHVlO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZTxUPihcbiAgZGF0YTogdW5rbm93bixcbiAgc2NoZW1hOiBab2RTY2hlbWE8VD4sXG4pOiBWYWxpZGF0aW9uUmVzdWx0PFQ+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4geyBvazogdHJ1ZSwgdmFsdWU6IHNjaGVtYS5wYXJzZShkYXRhKSB9O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFpvZEVycm9yKSB7XG4gICAgICBjb25zdCBmaXJzdElzc3VlID0gZXJyb3IuaXNzdWVzWzBdO1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGZpcnN0SXNzdWVcbiAgICAgICAgPyBgJHtmaXJzdElzc3VlLnBhdGguam9pbignLicpfTogJHtmaXJzdElzc3VlLm1lc3NhZ2V9YFxuICAgICAgICA6ICdWYWxpZGF0aW9uIGZhaWxlZCc7XG4gICAgICByZXR1cm4geyBvazogZmFsc2UsIGVycm9yOiBtZXNzYWdlLCB6b2RFcnJvcjogZXJyb3IgfTtcbiAgICB9XG4gICAgcmV0dXJuIHsgb2s6IGZhbHNlLCBlcnJvcjogJ1ZhbGlkYXRpb24gZmFpbGVkJyB9O1xuICB9XG59XG5cbi8qKlxuICogVmFsaWRhdGUgcmVxdWVzdCBxdWVyeSBwYXJhbWV0ZXJzIHdpdGggYSBab2Qgc2NoZW1hLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXN1bHQgPSB2YWxpZGF0ZVF1ZXJ5KHJlcSwgUGlwZWxpbmVGaWx0ZXJTY2hlbWEpO1xuICogaWYgKCFyZXN1bHQub2spIHJldHVybiBzZW5kQmFkUmVxdWVzdChyZXMsIHJlc3VsdC5lcnJvcik7XG4gKiBjb25zdCBmaWx0ZXIgPSByZXN1bHQudmFsdWU7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUXVlcnk8VD4ocmVxOiBSZXF1ZXN0LCBzY2hlbWE6IFpvZFNjaGVtYTxUPik6IFZhbGlkYXRpb25SZXN1bHQ8VD4ge1xuICByZXR1cm4gdmFsaWRhdGUocmVxLnF1ZXJ5LCBzY2hlbWEpO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIHJlcXVlc3QgYm9keSB3aXRoIGEgWm9kIHNjaGVtYS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmVzdWx0ID0gdmFsaWRhdGVCb2R5KHJlcSwgUGlwZWxpbmVDcmVhdGVTY2hlbWEpO1xuICogaWYgKCFyZXN1bHQub2spIHJldHVybiBzZW5kQmFkUmVxdWVzdChyZXMsIHJlc3VsdC5lcnJvcik7XG4gKiBjb25zdCBkYXRhID0gcmVzdWx0LnZhbHVlO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUJvZHk8VD4ocmVxOiBSZXF1ZXN0LCBzY2hlbWE6IFpvZFNjaGVtYTxUPik6IFZhbGlkYXRpb25SZXN1bHQ8VD4ge1xuICByZXR1cm4gdmFsaWRhdGUocmVxLmJvZHksIHNjaGVtYSk7XG59XG4iXX0=
@@ -154,4 +154,4 @@ export const PipelineUpdateSchema = z.object({
154
154
  isDefault: BooleanQuerySchema.optional(),
155
155
  visibility: VisibilitySchema.optional(),
156
156
  });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtc2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3BpcGVsaW5lLXNjaGVtYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXZHOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0lBQzFELE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNyQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDMUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzFDLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNuQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDdEMsQ0FBQyxDQUFDO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0scUJBQXFCLEdBQTJCO0lBQ3BE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aWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG5pbXBvcnQgeyBCYXNlRmlsdGVyU2NoZW1hLCBCb29sZWFuUXVlcnlTY2hlbWEsIFZpc2liaWxpdHlTY2hlbWEsIENhdGFsb2dNZXRhZGF0YVNoYXBlIH0gZnJvbSAnLi9jb21tb24tc2NoZW1hcy5qcyc7XG5pbXBvcnQgeyBQVUJMSVNIRVJfSEFORExFX1BBVFRFUk4gfSBmcm9tICcuLi90eXBlcy9lY29zeXN0ZW0uanMnO1xuaW1wb3J0IHsgaXNSZXNlcnZlZFRhZ0tleSwgUkVTRVJWRURfVEFHX0tFWVMsIFJFU0VSVkVEX1RBR19QUkVGSVhFUyB9IGZyb20gJy4uL3R5cGVzL3Jlc2VydmVkLXRhZ3MuanMnO1xuXG4vKipcbiAqIFBpcGVsaW5lIGZpbHRlciBzY2hlbWEgZm9yIHF1ZXJ5IHBhcmFtZXRlcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lRmlsdGVyU2NoZW1hID0gQmFzZUZpbHRlclNjaGVtYS5leHRlbmQoe1xuICBwcm9qZWN0OiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBvcmdhbml6YXRpb246IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIHBpcGVsaW5lTmFtZTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgb3JnSWQ6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIGtleXdvcmQ6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG59KTtcblxuLyoqXG4gKiBLZXlzIHRoYXQgbG9vayBsaWtlIHBsdWdpbi1yZWZlcmVuY2UgZmllbGRzIGJ1dCBhcmVuJ3Q6IHN5bnRoIG5ldmVyIHJlYWRzXG4gKiB0aGVtLCBzbyB3aXRob3V0IGEgbG91ZCByZWZ1c2FsIHRoZSByZWZlcmVuY2Ugc2lsZW50bHkgcmVzb2x2ZXMgdG8gc29tZXRoaW5nXG4gKiBvdGhlciB0aGFuIHdoYXQgaXRzIGF1dGhvciBtZWFudC5cbiAqL1xuY29uc3QgUExVR0lOX1JFRl9OT05fRklFTERTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICB2ZXJzaW9uOlxuICAgICdgdmVyc2lvbmAgaXMgbm90IGEgcGx1Z2luLXJlZmVyZW5jZSBmaWVsZCDigJQgaXQgaXMgaWdub3JlZCBhbmQgdGhlIGRlZmF1bHQgdmVyc2lvbiBpcyB1c2VkLiAnXG4gICAgKyAnUGluIG9yIHJhbmdlIHRoZSB2ZXJzaW9uIHdpdGggYGZpbHRlcjogeyB2ZXJzaW9uOiBcIjEuMi4zXCIgfWAgKGFsc28gXiwgfiwgMS54LCAxLjIsIGxhdGVzdCkuJyxcbn07XG5cbi8qKlxuICogUGx1Z2luIG9wdGlvbnMgc2NoZW1hIChuYW1lLWJhc2VkIHNlbGVjdGlvbilcbiAqL1xuY29uc3QgUGx1Z2luT3B0aW9uc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgbmFtZTogei5zdHJpbmcoKS5taW4oMSksXG4gIC8qKlxuICAgKiBUaGUgcHVibGlzaGVyIHdob3NlIGluc3RhbGxlZCBsaXN0aW5nIHRoZSByZWZlcmVuY2UgcmVzb2x2ZXMgdG9cbiAgICogKGRvY3MvcGx1Z2luLXB1Ymxpc2hpbmcubWQpLiBBYnNlbnQ6IHRoZSBvcmcncyBvd24gcGx1Z2luLCB0aGVuXG4gICAqIGl0cyBwYXJlbnQncywgdGhlbiB0aGUgT2ZmaWNpYWwgbGlzdGluZy5cbiAgICovXG4gIHB1Ymxpc2hlcjogei5zdHJpbmcoKS5tYXgoMzkpLnJlZ2V4KFBVQkxJU0hFUl9IQU5ETEVfUEFUVEVSTiwgJ3B1Ymxpc2hlciBtdXN0IGJlIGEgcHVibGlzaGVyIGhhbmRsZSAobG93ZXJjYXNlIGxldHRlcnMsIGRpZ2l0cyBhbmQgc2luZ2xlIGh5cGhlbnMpJykub3B0aW9uYWwoKSxcbiAgYWxpYXM6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZmlsdGVyOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgbWV0YWRhdGE6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxufSkucGFzc3Rocm91Z2goKS5zdXBlclJlZmluZSgocmVmLCBjdHgpID0+IHtcbiAgZm9yIChjb25zdCBba2V5LCBtZXNzYWdlXSBvZiBPYmplY3QuZW50cmllcyhQTFVHSU5fUkVGX05PTl9GSUVMRFMpKSB7XG4gICAgaWYgKGtleSBpbiAocmVmIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSkge1xuICAgICAgY3R4LmFkZElzc3VlKHsgY29kZTogJ2N1c3RvbScsIHBhdGg6IFtrZXldLCBtZXNzYWdlIH0pO1xuICAgIH1cbiAgfVxufSk7XG5cbi8qKlxuICogU3RhZ2Ugc3RlcCBzY2hlbWFcbiAqXG4gKiBgcGFzc3Rocm91Z2goKWAga2VlcHMgZm9yd2FyZC1jb21wYXRpYmxlIGZpZWxkcywgYnV0IGEgZmV3IGNvbW1vbiBtaXN0YWtlcyBhcmVcbiAqIHJlamVjdGVkIGxvdWRseSByYXRoZXIgdGhhbiBzaWxlbnRseSBpZ25vcmVkIGF0IHN5bnRoIOKAlCBtb3N0IG5vdGFibHkgYVxuICogdG9wLWxldmVsIGBjb21tYW5kc2AsIHdoaWNoIGlzIE5PVCBhIHN0ZXAgZmllbGQgKHRoZSBwbHVnaW4ncyBvd24gY29tbWFuZHMgcnVuKVxuICogYW5kIHdvdWxkIG90aGVyd2lzZSBkbyBub3RoaW5nLlxuICovXG5jb25zdCBTVEVQX05PTl9GSUVMRFM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGNvbW1hbmRzOlxuICAgICdgY29tbWFuZHNgIGlzIG5vdCBhIHN0ZXAgZmllbGQg4oCUIGl0IGlzIGlnbm9yZWQgYXQgc3ludGggKHRoZSBwbHVnaW5cXCdzIG93biBjb21tYW5kcyBydW4pLiAnXG4gICAgKyAnVG8gY2hhbmdlIHdoYXQgYSBzdGVwIHJ1bnMsIHVzZSBhIHBsdWdpbiBlbnYga25vYiAoZS5nLiBgbWV0YWRhdGEuR1JBRExFX1RBU0tgKSwgJ1xuICAgICsgJ2BwcmVDb21tYW5kc2AvYHBvc3RDb21tYW5kc2AgdG8gYWRkIGNvbW1hbmRzIGFyb3VuZCB0aGUgcGx1Z2luXFwncywgb3IgdGhlICdcbiAgICArICdgYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDpjb21tYW5kc2AgbWV0YWRhdGEga2V5IGZvciBhIGZ1bGwgb3ZlcnJpZGUuJyxcbn07XG5cbmNvbnN0IFN0YWdlU3RlcFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgcGx1Z2luOiBQbHVnaW5PcHRpb25zU2NoZW1hLFxuICBtZXRhZGF0YTogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIG5ldHdvcms6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICBwb3NpdGlvbjogei5lbnVtKFsncHJlJywgJ3Bvc3QnXSkub3B0aW9uYWwoKSxcbn0pLnBhc3N0aHJvdWdoKCkuc3VwZXJSZWZpbmUoKHN0ZXAsIGN0eCkgPT4ge1xuICBmb3IgKGNvbnN0IFtrZXksIG1lc3NhZ2VdIG9mIE9iamVjdC5lbnRyaWVzKFNURVBfTk9OX0ZJRUxEUykpIHtcbiAgICBpZiAoa2V5IGluIChzdGVwIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSkge1xuICAgICAgY3R4LmFkZElzc3VlKHsgY29kZTogJ2N1c3RvbScsIHBhdGg6IFtrZXldLCBtZXNzYWdlIH0pO1xuICAgIH1cbiAgfVxufSk7XG5cbi8qKlxuICogU3RhZ2Ugc2NoZW1hLiBgcGFzc3Rocm91Z2goKWAgbGlrZSBpdHMgc2libGluZ3M6IGEgc3RyaWN0LWJ5LWRlZmF1bHQgb2JqZWN0XG4gKiBoZXJlIHN0cmlwcGVkIGV2ZXJ5IHVuZGVjbGFyZWQgc3RhZ2UgZmllbGQgYmVmb3JlIHN0b3JhZ2Ug4oCUIGluY2x1ZGluZ1xuICogYGVudmlyb25tZW50YCwgd2hpY2ggbWFya3MgYSBzdGFnZSBhcyBhIERPUkEgZGVwbG95LlxuICovXG5jb25zdCBTdGFnZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgc3RhZ2VOYW1lOiB6LnN0cmluZygpLm1pbigxKSxcbiAgYWxpYXM6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgLyoqIERlcGxveSBlbnZpcm9ubWVudCB0aGlzIHN0YWdlIHRhcmdldHMgKERPUkEgZGVwbG95IGF0dHJpYnV0aW9uLCBgcGIuZGVwbG95c2ApLiAqL1xuICBlbnZpcm9ubWVudDogei5zdHJpbmcoKS5taW4oMSkubWF4KDY0KS5vcHRpb25hbCgpLFxuICBzdGVwczogei5hcnJheShTdGFnZVN0ZXBTY2hlbWEpLm1pbigxKSxcbn0pLnBhc3N0aHJvdWdoKCk7XG5cbi8qKlxuICogQnVpbGRlclByb3BzIHNjaGVtYSDigJQgc3RydWN0dXJhbCB2YWxpZGF0aW9uIGZvciBwaXBlbGluZSBjb25maWd1cmF0aW9uLlxuICogVXNlcyBwYXNzdGhyb3VnaCgpIHRvIGFsbG93IGFkZGl0aW9uYWwgZmllbGRzIHdpdGhvdXQgcmVqZWN0aW5nIHRoZW0uXG4gKi9cbmNvbnN0IEJ1aWxkZXJQcm9wc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgcHJvamVjdDogei5zdHJpbmcoKS5taW4oMSksXG4gIG9yZ2FuaXphdGlvbjogei5zdHJpbmcoKS5taW4oMSksXG4gIHBpcGVsaW5lTmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBnbG9iYWw6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICBkZWZhdWx0czogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIHJvbGU6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICAvKipcbiAgICogQ29zdC1hbGxvY2F0aW9uIHRhZ3MgYXBwbGllZCB0byB0aGUgcGlwZWxpbmUncyBzdGFjay4gUmVzZXJ2ZWQga2V5cyBhcmVcbiAgICogcmVmdXNlZCByYXRoZXIgdGhhbiBkcm9wcGVkLCBzbyBhIGNhbGxlciBsZWFybnMgd2hpY2gga2V5IGl0IG1heSBub3Qgc2V0O1xuICAgKiBgUGlwZWxpbmVCdWlsZGVyYCBkcm9wcyB0aGVtIGFnYWluIGF0IHN5bnRoIGZvciBjYWxsZXJzIHRoYXQgYnlwYXNzIHRoZSBBUEkuXG4gICAqL1xuICB0YWdzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBzeW50aDogei5vYmplY3Qoe1xuICAgIHNvdXJjZTogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gICAgcGx1Z2luOiBQbHVnaW5PcHRpb25zU2NoZW1hLFxuICB9KS5wYXNzdGhyb3VnaCgpLFxuICBzdGFnZXM6IHouYXJyYXkoU3RhZ2VTY2hlbWEpLm9wdGlvbmFsKCksXG59KS5wYXNzdGhyb3VnaCgpLnN1cGVyUmVmaW5lKChwcm9wcywgY3R4KSA9PiB7XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKChwcm9wcyBhcyB7IHRhZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IH0pLnRhZ3MgPz8ge30pKSB7XG4gICAgaWYgKCFpc1Jlc2VydmVkVGFnS2V5KGtleSkpIGNvbnRpbnVlO1xuICAgIGN0eC5hZGRJc3N1ZSh7XG4gICAgICBjb2RlOiAnY3VzdG9tJyxcbiAgICAgIHBhdGg6IFsndGFncycsIGtleV0sXG4gICAgICBtZXNzYWdlOlxuICAgICAgICBgXFxgJHtrZXl9XFxgIGlzIGEgcmVzZXJ2ZWQgdGFnIGtleSBhbmQgY2Fubm90IGJlIHNldC4gUmVzZXJ2ZWQ6IGBcbiAgICAgICAgKyBgJHtSRVNFUlZFRF9UQUdfS0VZUy5qb2luKCcsICcpfSwgYW5kIGFueXRoaW5nIHN0YXJ0aW5nIHdpdGggYFxuICAgICAgICArIGAke1JFU0VSVkVEX1RBR19QUkVGSVhFUy5qb2luKCcgb3IgJyl9LiBUaGVzZSBjYXJyeSBwaXBlbGluZSB0ZW5hbmN5IGFuZCBgXG4gICAgICAgICsgJ2RlcGxveSBhdHRyaWJ1dGlvbiwgc28gdGhlIHBsYXRmb3JtIG93bnMgdGhlbS4nLFxuICAgIH0pO1xuICB9XG59KTtcblxuLyoqXG4gKiBQaXBlbGluZSBjcmVhdGlvbiBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lQ3JlYXRlU2NoZW1hID0gei5vYmplY3Qoe1xuICAuLi5DYXRhbG9nTWV0YWRhdGFTaGFwZSxcbiAgcHJvamVjdDogei5zdHJpbmcoKS5taW4oMSwgJ1Byb2plY3QgaXMgcmVxdWlyZWQnKSxcbiAgb3JnYW5pemF0aW9uOiB6LnN0cmluZygpLm1pbigxLCAnT3JnYW5pemF0aW9uIGlzIHJlcXVpcmVkJyksXG4gIHBpcGVsaW5lTmFtZTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAga2V5d29yZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgdmlzaWJpbGl0eTogVmlzaWJpbGl0eVNjaGVtYS5vcHRpb25hbCgpLFxuICAvKipcbiAgICogQ3JlYXRlIHRoZSBwaXBlbGluZSBwYXVzZWQuIERlY2xhcmVkIGhlcmUgYmVjYXVzZSBpdCB1c2VkIHRvIGJlIHN0cmlwcGVkOlxuICAgKiB0aGUgc2NoZW1hIGlzIHN0cmljdC1ieS1kZWZhdWx0LCBzbyB0aGUgQ0xJJ3MgYC0tbm8tYWN0aXZlYCB3YXMgc2lsZW50bHlcbiAgICogZHJvcHBlZCBhbmQgZXZlcnkgcGlwZWxpbmUgY2FtZSB1cCBhY3RpdmUuXG4gICAqXG4gICAqIFRoZXJlIGlzIG5vIGBpc0RlZmF1bHRgIGNvdW50ZXJwYXJ0LiBgcGlwZWxpbmVfcHJvamVjdF9vcmdfdW5pcXVlYCBhbGxvd3NcbiAgICogZXhhY3RseSBvbmUgcGlwZWxpbmUgcGVyIChwcm9qZWN0LCBvcmdhbml6YXRpb24sIG9yZyksIHNvIHRoZSByb3cgY3JlYXRlZCBpblxuICAgKiBhIHNsb3QgSVMgdGhhdCBzbG90J3MgZGVmYXVsdCDigJQgYSBgZmFsc2VgIGNvdWxkIG5vdCBiZSBob25vdXJlZC5cbiAgICovXG4gIGlzQWN0aXZlOiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgcHJvcHM6IEJ1aWxkZXJQcm9wc1NjaGVtYSxcbn0pO1xuXG4vKipcbiAqIFBpcGVsaW5lIHVwZGF0ZSBzY2hlbWFcbiAqL1xuZXhwb3J0IGNvbnN0IFBpcGVsaW5lVXBkYXRlU2NoZW1hID0gei5vYmplY3Qoe1xuICAuLi5DYXRhbG9nTWV0YWRhdGFTaGFwZSxcbiAgcGlwZWxpbmVOYW1lOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBrZXl3b3Jkczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBwcm9wczogQnVpbGRlclByb3BzU2NoZW1hLm9wdGlvbmFsKCksXG4gIGlzQWN0aXZlOiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgaXNEZWZhdWx0OiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgdmlzaWJpbGl0eTogVmlzaWJpbGl0eVNjaGVtYS5vcHRpb25hbCgpLFxufSk7XG4iXX0=
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtc2NoZW1hcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vcGlwZWxpbmUtc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDeEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdkc7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDMUQsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3JDLFlBQVksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMxQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDMUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ25DLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUN0QyxDQUFDLENBQUM7QUFFSDs7OztHQUlHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBMkI7SUFDcEQsT0FBTyxFQUNMLDZGQUE2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Q0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLDBCQUEwQixDQUFDO0lBQzNELFlBQVksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMxQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFFBQVEsRUFBRTtJQUN2Qzs7Ozs7Ozs7T0FRRztJQUNILFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7SUFDdkMsS0FBSyxFQUFFLGtCQUFrQjtDQUMxQixDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDM0MsR0FBRyxvQkFBb0I7SUFDdkIsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzFDLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xDLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN4QyxLQUFLLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFO0lBQ3BDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7SUFDdkMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtJQUN4QyxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxFQUFFO0NBQ3hDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcbmltcG9ydCB7IEJhc2VGaWx0ZXJTY2hlbWEsIEJvb2xlYW5RdWVyeVNjaGVtYSwgVmlzaWJpbGl0eVNjaGVtYSwgQ2F0YWxvZ01ldGFkYXRhU2hhcGUgfSBmcm9tICcuL2NvbW1vbi1zY2hlbWFzLmpzJztcbmltcG9ydCB7IFBVQkxJU0hFUl9IQU5ETEVfUEFUVEVSTiB9IGZyb20gJy4uL3R5cGVzL2Vjb3N5c3RlbS5qcyc7XG5pbXBvcnQgeyBpc1Jlc2VydmVkVGFnS2V5LCBSRVNFUlZFRF9UQUdfS0VZUywgUkVTRVJWRURfVEFHX1BSRUZJWEVTIH0gZnJvbSAnLi4vdHlwZXMvcmVzZXJ2ZWQtdGFncy5qcyc7XG5cbi8qKlxuICogUGlwZWxpbmUgZmlsdGVyIHNjaGVtYSBmb3IgcXVlcnkgcGFyYW1ldGVyc1xuICovXG5leHBvcnQgY29uc3QgUGlwZWxpbmVGaWx0ZXJTY2hlbWEgPSBCYXNlRmlsdGVyU2NoZW1hLmV4dGVuZCh7XG4gIHByb2plY3Q6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIG9yZ2FuaXphdGlvbjogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgcGlwZWxpbmVOYW1lOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBvcmdJZDogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAga2V5d29yZDogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbn0pO1xuXG4vKipcbiAqIEtleXMgdGhhdCBsb29rIGxpa2UgcGx1Z2luLXJlZmVyZW5jZSBmaWVsZHMgYnV0IGFyZW4ndDogc3ludGggbmV2ZXIgcmVhZHNcbiAqIHRoZW0sIHNvIHdpdGhvdXQgYSBsb3VkIHJlZnVzYWwgdGhlIHJlZmVyZW5jZSBzaWxlbnRseSByZXNvbHZlcyB0byBzb21ldGhpbmdcbiAqIG90aGVyIHRoYW4gd2hhdCBpdHMgYXV0aG9yIG1lYW50LlxuICovXG5jb25zdCBQTFVHSU5fUkVGX05PTl9GSUVMRFM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIHZlcnNpb246XG4gICAgJ2B2ZXJzaW9uYCBpcyBub3QgYSBwbHVnaW4tcmVmZXJlbmNlIGZpZWxkIOKAlCBpdCBpcyBpZ25vcmVkIGFuZCB0aGUgZGVmYXVsdCB2ZXJzaW9uIGlzIHVzZWQuICdcbiAgICArICdQaW4gb3IgcmFuZ2UgdGhlIHZlcnNpb24gd2l0aCBgZmlsdGVyOiB7IHZlcnNpb246IFwiMS4yLjNcIiB9YCAoYWxzbyBeLCB+LCAxLngsIDEuMiwgbGF0ZXN0KS4nLFxufTtcblxuLyoqXG4gKiBQbHVnaW4gb3B0aW9ucyBzY2hlbWEgKG5hbWUtYmFzZWQgc2VsZWN0aW9uKVxuICovXG5jb25zdCBQbHVnaW5PcHRpb25zU2NoZW1hID0gei5vYmplY3Qoe1xuICBuYW1lOiB6LnN0cmluZygpLm1pbigxKSxcbiAgLyoqXG4gICAqIFRoZSBwdWJsaXNoZXIgd2hvc2UgaW5zdGFsbGVkIGxpc3RpbmcgdGhlIHJlZmVyZW5jZSByZXNvbHZlcyB0b1xuICAgKiAoZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCkuIEFic2VudDogdGhlIG9yZydzIG93biBwbHVnaW4sIHRoZW5cbiAgICogaXRzIHBhcmVudCdzLCB0aGVuIHRoZSBPZmZpY2lhbCBsaXN0aW5nLlxuICAgKi9cbiAgcHVibGlzaGVyOiB6LnN0cmluZygpLm1heCgzOSkucmVnZXgoUFVCTElTSEVSX0hBTkRMRV9QQVRURVJOLCAncHVibGlzaGVyIG11c3QgYmUgYSBwdWJsaXNoZXIgaGFuZGxlIChsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzIGFuZCBzaW5nbGUgaHlwaGVucyknKS5vcHRpb25hbCgpLFxuICBhbGlhczogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBmaWx0ZXI6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICBtZXRhZGF0YTogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG59KS5wYXNzdGhyb3VnaCgpLnN1cGVyUmVmaW5lKChyZWYsIGN0eCkgPT4ge1xuICBmb3IgKGNvbnN0IFtrZXksIG1lc3NhZ2VdIG9mIE9iamVjdC5lbnRyaWVzKFBMVUdJTl9SRUZfTk9OX0ZJRUxEUykpIHtcbiAgICBpZiAoa2V5IGluIChyZWYgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pKSB7XG4gICAgICBjdHguYWRkSXNzdWUoeyBjb2RlOiAnY3VzdG9tJywgcGF0aDogW2tleV0sIG1lc3NhZ2UgfSk7XG4gICAgfVxuICB9XG59KTtcblxuLyoqXG4gKiBTdGFnZSBzdGVwIHNjaGVtYVxuICpcbiAqIGBwYXNzdGhyb3VnaCgpYCBrZWVwcyBmb3J3YXJkLWNvbXBhdGlibGUgZmllbGRzLCBidXQgYSBmZXcgY29tbW9uIG1pc3Rha2VzIGFyZVxuICogcmVqZWN0ZWQgbG91ZGx5IHJhdGhlciB0aGFuIHNpbGVudGx5IGlnbm9yZWQgYXQgc3ludGgg4oCUIG1vc3Qgbm90YWJseSBhXG4gKiB0b3AtbGV2ZWwgYGNvbW1hbmRzYCwgd2hpY2ggaXMgTk9UIGEgc3RlcCBmaWVsZCAodGhlIHBsdWdpbidzIG93biBjb21tYW5kcyBydW4pXG4gKiBhbmQgd291bGQgb3RoZXJ3aXNlIGRvIG5vdGhpbmcuXG4gKi9cbmNvbnN0IFNURVBfTk9OX0ZJRUxEUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgY29tbWFuZHM6XG4gICAgJ2Bjb21tYW5kc2AgaXMgbm90IGEgc3RlcCBmaWVsZCDigJQgaXQgaXMgaWdub3JlZCBhdCBzeW50aCAodGhlIHBsdWdpblxcJ3Mgb3duIGNvbW1hbmRzIHJ1bikuICdcbiAgICArICdUbyBjaGFuZ2Ugd2hhdCBhIHN0ZXAgcnVucywgdXNlIGEgcGx1Z2luIGVudiBrbm9iIChlLmcuIGBtZXRhZGF0YS5HUkFETEVfVEFTS2ApLCAnXG4gICAgKyAnYHByZUNvbW1hbmRzYC9gcG9zdENvbW1hbmRzYCB0byBhZGQgY29tbWFuZHMgYXJvdW5kIHRoZSBwbHVnaW5cXCdzLCBvciB0aGUgJ1xuICAgICsgJ2Bhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOmNvbW1hbmRzYCBtZXRhZGF0YSBrZXkgZm9yIGEgZnVsbCBvdmVycmlkZS4nLFxufTtcblxuY29uc3QgU3RhZ2VTdGVwU2NoZW1hID0gei5vYmplY3Qoe1xuICBwbHVnaW46IFBsdWdpbk9wdGlvbnNTY2hlbWEsXG4gIG1ldGFkYXRhOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgbmV0d29yazogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIHBvc2l0aW9uOiB6LmVudW0oWydwcmUnLCAncG9zdCddKS5vcHRpb25hbCgpLFxufSkucGFzc3Rocm91Z2goKS5zdXBlclJlZmluZSgoc3RlcCwgY3R4KSA9PiB7XG4gIGZvciAoY29uc3QgW2tleSwgbWVzc2FnZV0gb2YgT2JqZWN0LmVudHJpZXMoU1RFUF9OT05fRklFTERTKSkge1xuICAgIGlmIChrZXkgaW4gKHN0ZXAgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pKSB7XG4gICAgICBjdHguYWRkSXNzdWUoeyBjb2RlOiAnY3VzdG9tJywgcGF0aDogW2tleV0sIG1lc3NhZ2UgfSk7XG4gICAgfVxuICB9XG59KTtcblxuLyoqXG4gKiBTdGFnZSBzY2hlbWEuIGBwYXNzdGhyb3VnaCgpYCBsaWtlIGl0cyBzaWJsaW5nczogYSBzdHJpY3QtYnktZGVmYXVsdCBvYmplY3RcbiAqIGhlcmUgc3RyaXBwZWQgZXZlcnkgdW5kZWNsYXJlZCBzdGFnZSBmaWVsZCBiZWZvcmUgc3RvcmFnZSDigJQgaW5jbHVkaW5nXG4gKiBgZW52aXJvbm1lbnRgLCB3aGljaCBtYXJrcyBhIHN0YWdlIGFzIGEgRE9SQSBkZXBsb3kuXG4gKi9cbmNvbnN0IFN0YWdlU2NoZW1hID0gei5vYmplY3Qoe1xuICBzdGFnZU5hbWU6IHouc3RyaW5nKCkubWluKDEpLFxuICBhbGlhczogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAvKiogRGVwbG95IGVudmlyb25tZW50IHRoaXMgc3RhZ2UgdGFyZ2V0cyAoRE9SQSBkZXBsb3kgYXR0cmlidXRpb24sIGBwYi5kZXBsb3lzYCkuICovXG4gIGVudmlyb25tZW50OiB6LnN0cmluZygpLm1pbigxKS5tYXgoNjQpLm9wdGlvbmFsKCksXG4gIHN0ZXBzOiB6LmFycmF5KFN0YWdlU3RlcFNjaGVtYSkubWluKDEpLFxufSkucGFzc3Rocm91Z2goKTtcblxuLyoqXG4gKiBCdWlsZGVyUHJvcHMgc2NoZW1hIOKAlCBzdHJ1Y3R1cmFsIHZhbGlkYXRpb24gZm9yIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24uXG4gKiBVc2VzIHBhc3N0aHJvdWdoKCkgdG8gYWxsb3cgYWRkaXRpb25hbCBmaWVsZHMgd2l0aG91dCByZWplY3RpbmcgdGhlbS5cbiAqL1xuY29uc3QgQnVpbGRlclByb3BzU2NoZW1hID0gei5vYmplY3Qoe1xuICBwcm9qZWN0OiB6LnN0cmluZygpLm1pbigxKSxcbiAgb3JnYW5pemF0aW9uOiB6LnN0cmluZygpLm1pbigxKSxcbiAgcGlwZWxpbmVOYW1lOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGdsb2JhbDogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIGRlZmF1bHRzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgcm9sZTogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIC8qKlxuICAgKiBDb3N0LWFsbG9jYXRpb24gdGFncyBhcHBsaWVkIHRvIHRoZSBwaXBlbGluZSdzIHN0YWNrLiBSZXNlcnZlZCBrZXlzIGFyZVxuICAgKiByZWZ1c2VkIHJhdGhlciB0aGFuIGRyb3BwZWQsIHNvIGEgY2FsbGVyIGxlYXJucyB3aGljaCBrZXkgaXQgbWF5IG5vdCBzZXQ7XG4gICAqIGBQaXBlbGluZUJ1aWxkZXJgIGRyb3BzIHRoZW0gYWdhaW4gYXQgc3ludGggZm9yIGNhbGxlcnMgdGhhdCBieXBhc3MgdGhlIEFQSS5cbiAgICovXG4gIHRhZ3M6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIHN5bnRoOiB6Lm9iamVjdCh7XG4gICAgc291cmNlOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgICBwbHVnaW46IFBsdWdpbk9wdGlvbnNTY2hlbWEsXG4gIH0pLnBhc3N0aHJvdWdoKCksXG4gIHN0YWdlczogei5hcnJheShTdGFnZVNjaGVtYSkub3B0aW9uYWwoKSxcbn0pLnBhc3N0aHJvdWdoKCkuc3VwZXJSZWZpbmUoKHByb3BzLCBjdHgpID0+IHtcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoKHByb3BzIGFzIHsgdGFncz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfSkudGFncyA/PyB7fSkpIHtcbiAgICBpZiAoIWlzUmVzZXJ2ZWRUYWdLZXkoa2V5KSkgY29udGludWU7XG4gICAgY3R4LmFkZElzc3VlKHtcbiAgICAgIGNvZGU6ICdjdXN0b20nLFxuICAgICAgcGF0aDogWyd0YWdzJywga2V5XSxcbiAgICAgIG1lc3NhZ2U6XG4gICAgICAgIGBcXGAke2tleX1cXGAgaXMgYSByZXNlcnZlZCB0YWcga2V5IGFuZCBjYW5ub3QgYmUgc2V0LiBSZXNlcnZlZDogYFxuICAgICAgICArIGAke1JFU0VSVkVEX1RBR19LRVlTLmpvaW4oJywgJyl9LCBhbmQgYW55dGhpbmcgc3RhcnRpbmcgd2l0aCBgXG4gICAgICAgICsgYCR7UkVTRVJWRURfVEFHX1BSRUZJWEVTLmpvaW4oJyBvciAnKX0uIFRoZXNlIGNhcnJ5IHBpcGVsaW5lIHRlbmFuY3kgYW5kIGBcbiAgICAgICAgKyAnZGVwbG95IGF0dHJpYnV0aW9uLCBzbyB0aGUgcGxhdGZvcm0gb3ducyB0aGVtLicsXG4gICAgfSk7XG4gIH1cbn0pO1xuXG4vKipcbiAqIFBpcGVsaW5lIGNyZWF0aW9uIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgUGlwZWxpbmVDcmVhdGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC4uLkNhdGFsb2dNZXRhZGF0YVNoYXBlLFxuICBwcm9qZWN0OiB6LnN0cmluZygpLm1pbigxLCAnUHJvamVjdCBpcyByZXF1aXJlZCcpLFxuICBvcmdhbml6YXRpb246IHouc3RyaW5nKCkubWluKDEsICdPcmdhbml6YXRpb24gaXMgcmVxdWlyZWQnKSxcbiAgcGlwZWxpbmVOYW1lOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBrZXl3b3Jkczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICB2aXNpYmlsaXR5OiBWaXNpYmlsaXR5U2NoZW1hLm9wdGlvbmFsKCksXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIHBpcGVsaW5lIHBhdXNlZC4gRGVjbGFyZWQgaGVyZSBiZWNhdXNlIGl0IHVzZWQgdG8gYmUgc3RyaXBwZWQ6XG4gICAqIHRoZSBzY2hlbWEgaXMgc3RyaWN0LWJ5LWRlZmF1bHQsIHNvIHRoZSBDTEkncyBgLS1uby1hY3RpdmVgIHdhcyBzaWxlbnRseVxuICAgKiBkcm9wcGVkIGFuZCBldmVyeSBwaXBlbGluZSBjYW1lIHVwIGFjdGl2ZS5cbiAgICpcbiAgICogVGhlcmUgaXMgbm8gYGlzRGVmYXVsdGAgY291bnRlcnBhcnQuIGBwaXBlbGluZV9wcm9qZWN0X29yZ191bmlxdWVgIGFsbG93c1xuICAgKiBleGFjdGx5IG9uZSBwaXBlbGluZSBwZXIgKHByb2plY3QsIG9yZ2FuaXphdGlvbiwgb3JnKSwgc28gdGhlIHJvdyBjcmVhdGVkIGluXG4gICAqIGEgc2xvdCBJUyB0aGF0IHNsb3QncyBkZWZhdWx0IOKAlCBhIGBmYWxzZWAgY291bGQgbm90IGJlIGhvbm91cmVkLlxuICAgKi9cbiAgaXNBY3RpdmU6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICBwcm9wczogQnVpbGRlclByb3BzU2NoZW1hLFxufSk7XG5cbi8qKlxuICogUGlwZWxpbmUgdXBkYXRlIHNjaGVtYVxuICovXG5leHBvcnQgY29uc3QgUGlwZWxpbmVVcGRhdGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC4uLkNhdGFsb2dNZXRhZGF0YVNoYXBlLFxuICBwaXBlbGluZU5hbWU6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGtleXdvcmRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIHByb3BzOiBCdWlsZGVyUHJvcHNTY2hlbWEub3B0aW9uYWwoKSxcbiAgaXNBY3RpdmU6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICBpc0RlZmF1bHQ6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICB2aXNpYmlsaXR5OiBWaXNpYmlsaXR5U2NoZW1hLm9wdGlvbmFsKCksXG59KTtcbiJdfQ==
@@ -63,4 +63,4 @@ export const InstantiateTemplateSchema = z.object({
63
63
  pipelineName: z.string().min(1).optional(),
64
64
  inputs: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])).optional(),
65
65
  });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtdGVtcGxhdGUtc2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3BpcGVsaW5lLXRlbXBsYXRlLXNjaGVtYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5IOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDMUMsOEVBQThFO0lBQzlFLG1EQUFtRDtJQUNuRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1NBQzVCLEtBQUssQ0FBQywwQkFBMEIsRUFBRSx1Q0FBdUMsQ0FBQztTQUMxRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxxQkFBcUIsQ0FBQztJQUMvRixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDckMsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzNDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM3QyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE9BQU8s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QUFDLFFBQVEsRUFBRTtDQUN4RixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG5pbXBvcnQgeyBCYXNlRmlsdGVyU2NoZW1hLCBCb29sZWFuUXVlcnlTY2hlbWEsIENhdGFsb2dNZXRhZGF0YVNoYXBlLCBWaXNpYmlsaXR5U2NoZW1hIH0gZnJvbSAnLi9jb21tb24tc2NoZW1hcy5qcyc7XG5cbi8qKlxuICogT25lIGRlY2xhcmVkIHRlbXBsYXRlIGlucHV0IOKAlCBtaXJyb3JzIHRoZSBgVGVtcGxhdGVJbnB1dGAgdHlwZS4gVGhlIGBuYW1lYCBpc1xuICogdGhlIGB2YXJzLjxuYW1lPmAga2V5IHRoZSB0ZW1wbGF0ZSBib2R5IHJlZmVyZW5jZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBUZW1wbGF0ZUlucHV0U2NoZW1hID0gei5vYmplY3Qoe1xuICAvLyBJZGVudGlmaWVyIG9ubHkg4oCUIGJlY29tZXMgYSBgdmFycy48bmFtZT5gIGtleS4gRXhjbHVkZXMgcHJvdG90eXBlLXBvbGx1dGlvblxuICAvLyBrZXlzIGFuZCBhbnl0aGluZyB0aGF0IGlzbid0IGEgcGxhaW4gaWRlbnRpZmllci5cbiAgbmFtZTogei5zdHJpbmcoKS5taW4oMSkubWF4KDY0KVxuICAgIC5yZWdleCgvXltBLVphLXpfXVtBLVphLXowLTlfXSokLywgJ2lucHV0IG5hbWUgbXVzdCBiZSBhIHZhbGlkIGlkZW50aWZpZXInKVxuICAgIC5yZWZpbmUoKG4pID0+ICFbJ19fcHJvdG9fXycsICdjb25zdHJ1Y3RvcicsICdwcm90b3R5cGUnXS5pbmNsdWRlcyhuKSwgJ3Jlc2VydmVkIGlucHV0IG5hbWUnKSxcbiAgbGFiZWw6IHouc3RyaW5nKCkubWF4KDEyMCkub3B0aW9uYWwoKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkubWF4KDUwMCkub3B0aW9uYWwoKSxcbiAgdHlwZTogei5lbnVtKFsnc3RyaW5nJywgJ251bWJlcicsICdib29sZWFuJ10pLFxuICByZXF1aXJlZDogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgZGVmYXVsdDogei51bmlvbihbei5zdHJpbmcoKSwgei5udW1iZXIoKSwgei5ib29sZWFuKCldKS5vcHRpb25hbCgpLFxuICBvcHRpb25zOiB6LmFycmF5KHouc3RyaW5nKCkubWF4KDI1NSkpLm1heCg1MCkub3B0aW9uYWwoKSxcbn0pO1xuXG4vKiogUGlwZWxpbmUtdGVtcGxhdGUgbGlzdCBmaWx0ZXIgKHF1ZXJ5IHBhcmFtcykuICovXG5leHBvcnQgY29uc3QgUGlwZWxpbmVUZW1wbGF0ZUZpbHRlclNjaGVtYSA9IEJhc2VGaWx0ZXJTY2hlbWEuZXh0ZW5kKHtcbiAgbmFtZTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgY2F0ZWdvcnk6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIGtleXdvcmQ6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIG9yZ0lkOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICB2aXNpYmlsaXR5OiBWaXNpYmlsaXR5U2NoZW1hLm9wdGlvbmFsKCksXG59KTtcblxuLyoqIENyZWF0ZSBhIHBpcGVsaW5lIHRlbXBsYXRlIChhdXRob3IgYSBnb2xkZW4gcGF0aCkuICovXG5leHBvcnQgY29uc3QgUGlwZWxpbmVUZW1wbGF0ZUNyZWF0ZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgLi4uQ2F0YWxvZ01ldGFkYXRhU2hhcGUsXG4gIC8vIEJvdW5kZWQgdG8gdGhlIERCIGNvbHVtbiB3aWR0aHMgc28gYW4gb3Zlci1sZW5ndGggdmFsdWUgaXMgYSBjbGVhbiA0MDAsXG4gIC8vIG5vdCBhIFBvc3RncmVzIGxlbmd0aCBlcnJvciBzdXJmYWNlZCBhcyBhIDUwMC5cbiAgbmFtZTogei5zdHJpbmcoKS5taW4oMSwgJ1RlbXBsYXRlIG5hbWUgaXMgcmVxdWlyZWQnKS5tYXgoMjU1KSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkubWF4KDIwMDApLm9wdGlvbmFsKCksXG4gIGtleXdvcmRzOiB6LmFycmF5KHouc3RyaW5nKCkubWF4KDY0KSkubWF4KDUwKS5vcHRpb25hbCgpLFxuICBjYXRlZ29yeTogei5zdHJpbmcoKS5taW4oMSkubWF4KDUwKS5vcHRpb25hbCgpLFxuICB2aXNpYmlsaXR5OiBWaXNpYmlsaXR5U2NoZW1hLm9wdGlvbmFsKCksXG4gIC8vIFRlbXBsYXRlIGJvZHk6IGEgQnVpbGRlclByb3BzIHdpdGggYHt7IHZhcnMuKiB9fWAgcGxhY2Vob2xkZXJzLlxuICBwcm9wczogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLFxuICBpbnB1dHM6IHouYXJyYXkoVGVtcGxhdGVJbnB1dFNjaGVtYSkubWF4KDEwMCkub3B0aW9uYWwoKSxcbn0pO1xuXG4vKiogVXBkYXRlIGEgcGlwZWxpbmUgdGVtcGxhdGUuICovXG5leHBvcnQgY29uc3QgUGlwZWxpbmVUZW1wbGF0ZVVwZGF0ZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgLi4uQ2F0YWxvZ01ldGFkYXRhU2hhcGUsXG4gIG5hbWU6IHouc3RyaW5nKCkubWluKDEpLm1heCgyNTUpLm9wdGlvbmFsKCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm1heCgyMDAwKS5vcHRpb25hbCgpLFxuICBrZXl3b3Jkczogei5hcnJheSh6LnN0cmluZygpLm1heCg2NCkpLm1heCg1MCkub3B0aW9uYWwoKSxcbiAgY2F0ZWdvcnk6IHouc3RyaW5nKCkubWluKDEpLm1heCg1MCkub3B0aW9uYWwoKSxcbiAgdmlzaWJpbGl0eTogVmlzaWJpbGl0eVNjaGVtYS5vcHRpb25hbCgpLFxuICBwcm9wczogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gIGlucHV0czogei5hcnJheShUZW1wbGF0ZUlucHV0U2NoZW1hKS5tYXgoMTAwKS5vcHRpb25hbCgpLFxuICBpc0FjdGl2ZTogQm9vbGVhblF1ZXJ5U2NoZW1hLm9wdGlvbmFsKCksXG59KTtcblxuLyoqXG4gKiBJbnN0YW50aWF0ZSBhIHRlbXBsYXRlIGludG8gYSBjb25jcmV0ZSBwaXBlbGluZSBjb25maWcuIGBpbnB1dHNgIHN1cHBsaWVzIHRoZVxuICogZGVjbGFyZWQgYHZhcnMuKmAgdmFsdWVzOyBwcm9qZWN0L29yZ2FuaXphdGlvbi9waXBlbGluZU5hbWUgbmFtZSB0aGUgcGlwZWxpbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBJbnN0YW50aWF0ZVRlbXBsYXRlU2NoZW1hID0gei5vYmplY3Qoe1xuICBwcm9qZWN0OiB6LnN0cmluZygpLm1pbigxLCAnUHJvamVjdCBpcyByZXF1aXJlZCcpLFxuICBvcmdhbml6YXRpb246IHouc3RyaW5nKCkubWluKDEsICdPcmdhbml6YXRpb24gaXMgcmVxdWlyZWQnKSxcbiAgcGlwZWxpbmVOYW1lOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBpbnB1dHM6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5pb24oW3ouc3RyaW5nKCksIHoubnVtYmVyKCksIHouYm9vbGVhbigpXSkpLm9wdGlvbmFsKCksXG59KTtcbiJdfQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtdGVtcGxhdGUtc2NoZW1hcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vcGlwZWxpbmUtdGVtcGxhdGUtc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDeEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbkg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMxQyw4RUFBOEU7SUFDOUUsbURBQW1EO0lBQ25ELElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7U0FDNUIsS0FBSyxDQUFDLDBCQUEwQixFQUFFLHVDQUF1QyxDQUFDO1NBQzFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLHFCQUFxQixDQUFDO0lBQy9GLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNyQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDM0MsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLFFBQVEsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxF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Q3hGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcbmltcG9ydCB7IEJhc2VGaWx0ZXJTY2hlbWEsIEJvb2xlYW5RdWVyeVNjaGVtYSwgQ2F0YWxvZ01ldGFkYXRhU2hhcGUsIFZpc2liaWxpdHlTY2hlbWEgfSBmcm9tICcuL2NvbW1vbi1zY2hlbWFzLmpzJztcblxuLyoqXG4gKiBPbmUgZGVjbGFyZWQgdGVtcGxhdGUgaW5wdXQg4oCUIG1pcnJvcnMgdGhlIGBUZW1wbGF0ZUlucHV0YCB0eXBlLiBUaGUgYG5hbWVgIGlzXG4gKiB0aGUgYHZhcnMuPG5hbWU+YCBrZXkgdGhlIHRlbXBsYXRlIGJvZHkgcmVmZXJlbmNlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IFRlbXBsYXRlSW5wdXRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC8vIElkZW50aWZpZXIgb25seSDigJQgYmVjb21lcyBhIGB2YXJzLjxuYW1lPmAga2V5LiBFeGNsdWRlcyBwcm90b3R5cGUtcG9sbHV0aW9uXG4gIC8vIGtleXMgYW5kIGFueXRoaW5nIHRoYXQgaXNuJ3QgYSBwbGFpbiBpZGVudGlmaWVyLlxuICBuYW1lOiB6LnN0cmluZygpLm1pbigxKS5tYXgoNjQpXG4gICAgLnJlZ2V4KC9eW0EtWmEtel9dW0EtWmEtejAtOV9dKiQvLCAnaW5wdXQgbmFtZSBtdXN0IGJlIGEgdmFsaWQgaWRlbnRpZmllcicpXG4gICAgLnJlZmluZSgobikgPT4gIVsnX19wcm90b19fJywgJ2NvbnN0cnVjdG9yJywgJ3Byb3RvdHlwZSddLmluY2x1ZGVzKG4pLCAncmVzZXJ2ZWQgaW5wdXQgbmFtZScpLFxuICBsYWJlbDogei5zdHJpbmcoKS5tYXgoMTIwKS5vcHRpb25hbCgpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5tYXgoNTAwKS5vcHRpb25hbCgpLFxuICB0eXBlOiB6LmVudW0oWydzdHJpbmcnLCAnbnVtYmVyJywgJ2Jvb2xlYW4nXSksXG4gIHJlcXVpcmVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICBkZWZhdWx0OiB6LnVuaW9uKFt6LnN0cmluZygpLCB6Lm51bWJlcigpLCB6LmJvb2xlYW4oKV0pLm9wdGlvbmFsKCksXG4gIG9wdGlvbnM6IHouYXJyYXkoei5zdHJpbmcoKS5tYXgoMjU1KSkubWF4KDUwKS5vcHRpb25hbCgpLFxufSk7XG5cbi8qKiBQaXBlbGluZS10ZW1wbGF0ZSBsaXN0IGZpbHRlciAocXVlcnkgcGFyYW1zKS4gKi9cbmV4cG9ydCBjb25zdCBQaXBlbGluZVRlbXBsYXRlRmlsdGVyU2NoZW1hID0gQmFzZUZpbHRlclNjaGVtYS5leHRlbmQoe1xuICBuYW1lOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBjYXRlZ29yeTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAga2V5d29yZDogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgb3JnSWQ6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIHZpc2liaWxpdHk6IFZpc2liaWxpdHlTY2hlbWEub3B0aW9uYWwoKSxcbn0pO1xuXG4vKiogQ3JlYXRlIGEgcGlwZWxpbmUgdGVtcGxhdGUgKGF1dGhvciBhIGdvbGRlbiBwYXRoKS4gKi9cbmV4cG9ydCBjb25zdCBQaXBlbGluZVRlbXBsYXRlQ3JlYXRlU2NoZW1hID0gei5vYmplY3Qoe1xuICAuLi5DYXRhbG9nTWV0YWRhdGFTaGFwZSxcbiAgLy8gQm91bmRlZCB0byB0aGUgREIgY29sdW1uIHdpZHRocyBzbyBhbiBvdmVyLWxlbmd0aCB2YWx1ZSBpcyBhIGNsZWFuIDQwMCxcbiAgLy8gbm90IGEgUG9zdGdyZXMgbGVuZ3RoIGVycm9yIHN1cmZhY2VkIGFzIGEgNTAwLlxuICBuYW1lOiB6LnN0cmluZygpLm1pbigxLCAnVGVtcGxhdGUgbmFtZSBpcyByZXF1aXJlZCcpLm1heCgyNTUpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5tYXgoMjAwMCkub3B0aW9uYWwoKSxcbiAga2V5d29yZHM6IHouYXJyYXkoei5zdHJpbmcoKS5tYXgoNjQpKS5tYXgoNTApLm9wdGlvbmFsKCksXG4gIGNhdGVnb3J5OiB6LnN0cmluZygpLm1pbigxKS5tYXgoNTApLm9wdGlvbmFsKCksXG4gIHZpc2liaWxpdHk6IFZpc2liaWxpdHlTY2hlbWEub3B0aW9uYWwoKSxcbiAgLy8gVGVtcGxhdGUgYm9keTogYSBCdWlsZGVyUHJvcHMgd2l0aCBge3sgdmFycy4qIH19YCBwbGFjZWhvbGRlcnMuXG4gIHByb3BzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSksXG4gIGlucHV0czogei5hcnJheShUZW1wbGF0ZUlucHV0U2NoZW1hKS5tYXgoMTAwKS5vcHRpb25hbCgpLFxufSk7XG5cbi8qKiBVcGRhdGUgYSBwaXBlbGluZSB0ZW1wbGF0ZS4gKi9cbmV4cG9ydCBjb25zdCBQaXBlbGluZVRlbXBsYXRlVXBkYXRlU2NoZW1hID0gei5vYmplY3Qoe1xuICAuLi5DYXRhbG9nTWV0YWRhdGFTaGFwZSxcbiAgbmFtZTogei5zdHJpbmcoKS5taW4oMSkubWF4KDI1NSkub3B0aW9uYWwoKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkubWF4KDIwMDApLm9wdGlvbmFsKCksXG4gIGtleXdvcmRzOiB6LmFycmF5KHouc3RyaW5nKCkubWF4KDY0KSkubWF4KDUwKS5vcHRpb25hbCgpLFxuICBjYXRlZ29yeTogei5zdHJpbmcoKS5taW4oMSkubWF4KDUwKS5vcHRpb25hbCgpLFxuICB2aXNpYmlsaXR5OiBWaXNpYmlsaXR5U2NoZW1hLm9wdGlvbmFsKCksXG4gIHByb3BzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgaW5wdXRzOiB6LmFycmF5KFRlbXBsYXRlSW5wdXRTY2hlbWEpLm1heCgxMDApLm9wdGlvbmFsKCksXG4gIGlzQWN0aXZlOiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbn0pO1xuXG4vKipcbiAqIEluc3RhbnRpYXRlIGEgdGVtcGxhdGUgaW50byBhIGNvbmNyZXRlIHBpcGVsaW5lIGNvbmZpZy4gYGlucHV0c2Agc3VwcGxpZXMgdGhlXG4gKiBkZWNsYXJlZCBgdmFycy4qYCB2YWx1ZXM7IHByb2plY3Qvb3JnYW5pemF0aW9uL3BpcGVsaW5lTmFtZSBuYW1lIHRoZSBwaXBlbGluZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEluc3RhbnRpYXRlVGVtcGxhdGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHByb2plY3Q6IHouc3RyaW5nKCkubWluKDEsICdQcm9qZWN0IGlzIHJlcXVpcmVkJyksXG4gIG9yZ2FuaXphdGlvbjogei5zdHJpbmcoKS5taW4oMSwgJ09yZ2FuaXphdGlvbiBpcyByZXF1aXJlZCcpLFxuICBwaXBlbGluZU5hbWU6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIGlucHV0czogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmlvbihbei5zdHJpbmcoKSwgei5udW1iZXIoKSwgei5ib29sZWFuKCldKSkub3B0aW9uYWwoKSxcbn0pO1xuIl19
@@ -14,4 +14,4 @@ export const PLUGIN_BASE_IMAGES = [
14
14
  { key: 'rust', image: 'plugin-rust-base:1.0', dir: '_rust-base', provides: 'one pinned Rust toolchain + clippy/rustfmt', smokeTest: 'cargo --version && rustc --version' },
15
15
  { key: 'trivy', image: 'plugin-trivy-base:1.0', dir: '_trivy-base', provides: 'trivy (two pinned versions)', smokeTest: 'trivy --version' },
16
16
  ];
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWJhc2UtaW1hZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vcGx1Z2luLWJhc2UtaW1hZ2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUF1QnRDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUErQjtJQUM1RCxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLGtFQUFrRSxFQUFFLFNBQVMsRUFBRSxnQ0FBZ0MsRUFBRTtJQUM3TCxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHlCQUF5QixFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO0lBQzlILEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsc0NBQXNDLEVBQUUsU0FBUyxFQUFFLGlDQUFpQyxFQUFFO0lBQzlKLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFO0lBQ3ZJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUU7SUFDL0csRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxxQ0FBcUMsRUFBRSxTQUFTLEVBQUUsZ0NBQWdDLEVBQUU7SUFDNUosRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxTQUFTLEVBQUUsaUNBQWlDLEVBQUU7SUFDckosRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSwyQkFBMkIsRUFBRSxTQUFTLEVBQUUscUNBQXFDLEVBQUU7SUFDdkosRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxTQUFTLEVBQUUscUNBQXFDLEVBQUU7SUFDL0osRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSwyQkFBMkIsRUFBRSxTQUFTLEVBQUUsb0NBQW9DLEVBQUU7SUFDekosRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSw0Q0FBNEMsRUFBRSxTQUFTLEVBQUUsb0NBQW9DLEVBQUU7SUFDMUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSw2QkFBNkIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUU7Q0FDNUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFRoZSBzaGFyZWQgcGx1Z2luIGJhc2UgaW1hZ2VzIChkZXBsb3kvcGx1Z2lucy9fYmFzZSk6IHdoYXQgYHBsdWdpbiBuZXdgXG4gKiBzY2FmZm9sZHMgYEZST01gIGFuZCB3aGF0IEFJIHBsdWdpbiBnZW5lcmF0aW9uIHRlbGxzIHRoZSBtb2RlbCB0byBzdGFydFxuICogZnJvbS4gTGlzdGVkIGhlcmUgYmVjYXVzZSBuZWl0aGVyIHRoZSBDTEkgbm9yIHRoZSBwbHVnaW4gc2VydmljZSBzaGlwcyB0aGVcbiAqIHJlcG87IGEgcGlwZWxpbmUtbWFuYWdlciB0ZXN0IGZhaWxzIHdoZW4gdGhlIGxpc3QgZHJpZnRzIGZyb20gdGhlIHRyZWUuXG4gKi9cblxuLyoqIE9uZSBgcGx1Z2luLTxlY28+LWJhc2VgIGltYWdlIGEgcGx1Z2luIGNhbiBzdGFydCBgRlJPTWAuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbkJhc2VJbWFnZSB7XG4gIC8qKiBgLS1iYXNlYCB2YWx1ZS4gKi9cbiAga2V5OiBzdHJpbmc7XG4gIC8qKiBJbWFnZSB0YWcgdGhlIERvY2tlcmZpbGUncyBgRlJPTWAgbmFtZXMuICovXG4gIGltYWdlOiBzdHJpbmc7XG4gIC8qKiBEaXJlY3RvcnkgdW5kZXIgZGVwbG95L3BsdWdpbnMvX2Jhc2UuICovXG4gIGRpcjogc3RyaW5nO1xuICAvKiogV2hhdCB0aGUgYmFzZSBwcm92aWRlcyBvbiB0b3Agb2YgdGhlIHJvb3QgYmFzZS4gKi9cbiAgcHJvdmlkZXM6IHN0cmluZztcbiAgLyoqIEEgY29tbWFuZCB0aGF0IHByb3ZlcyB0aGUgcnVudGltZSBpcyBvbiBQQVRIICh0aGUgc2NhZmZvbGQncyBzbW9rZVRlc3QpLiAqL1xuICBzbW9rZVRlc3Q6IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFBMVUdJTl9CQVNFX0lNQUdFUzogcmVhZG9ubHkgUGx1Z2luQmFzZUltYWdlW10gPSBbXG4gIHsga2V5OiAncGx1Z2luJywgaW1hZ2U6ICdwbHVnaW4tYmFzZToyNi4xMCcsIGRpcjogJ19wbHVnaW4tYmFzZScsIHByb3ZpZGVzOiAnZ2l0LCBjdXJsLCBqcSwgdW56aXAsIGZldGNoLXZlcmlmaWVkLCBydW4tbG9nZ2VkICh0aGUgcm9vdCBiYXNlKScsIHNtb2tlVGVzdDogJ2Jhc2ggLS12ZXJzaW9uICYmIGpxIC0tdmVyc2lvbicgfSxcbiAgeyBrZXk6ICdhd3MtY2xpJywgaW1hZ2U6ICdwbHVnaW4tYXdzLWNsaS1iYXNlOjEuMCcsIGRpcjogJ19hd3MtY2xpLWJhc2UnLCBwcm92aWRlczogJ0FXUyBDTEkgdjInLCBzbW9rZVRlc3Q6ICdhd3MgLS12ZXJzaW9uJyB9LFxuICB7IGtleTogJ2NwcCcsIGltYWdlOiAncGx1Z2luLWNwcC1iYXNlOjEuMCcsIGRpcjogJ19jcHAtYmFzZScsIHByb3ZpZGVzOiAnQy9DKysgdG9vbGNoYWluLCBDTWFrZSwgQ29uYW4sIE1lc29uJywgc21va2VUZXN0OiAnY2MgLS12ZXJzaW9uICYmIGNtYWtlIC0tdmVyc2lvbicgfSxcbiAgeyBrZXk6ICdkb3RuZXQnLCBpbWFnZTogJ3BsdWdpbi1kb3RuZXQtYmFzZToxLjAnLCBkaXI6ICdfZG90bmV0LWJhc2UnLCBwcm92aWRlczogJ29uZSBwaW5uZWQgLk5FVCBTREsnLCBzbW9rZVRlc3Q6ICdkb3RuZXQgLS12ZXJzaW9uJyB9LFxuICB7IGtleTogJ2dvJywgaW1hZ2U6ICdwbHVnaW4tZ28tYmFzZToxLjAnLCBkaXI6ICdfZ28tYmFzZScsIHByb3ZpZGVzOiAnb25lIHBpbm5lZCBHbycsIHNtb2tlVGVzdDogJ2dvIHZlcnNpb24nIH0sXG4gIHsga2V5OiAnanZtJywgaW1hZ2U6ICdwbHVnaW4tanZtLWJhc2U6MS4wJywgZGlyOiAnX2p2bS1iYXNlJywgcHJvdmlkZXM6ICdDb3JyZXR0byBKREssIE1hdmVuLCBHcmFkbGUsIEtvdGxpbicsIHNtb2tlVGVzdDogJ2phdmEgLXZlcnNpb24gJiYgbXZuIC0tdmVyc2lvbicgfSxcbiAgeyBrZXk6ICdub2RlJywgaW1hZ2U6ICdwbHVnaW4tbm9kZS1iYXNlOjEuMCcsIGRpcjogJ19ub2RlLWJhc2UnLCBwcm92aWRlczogJ29uZSBwaW5uZWQgTm9kZS5qcyArIG5wbScsIHNtb2tlVGVzdDogJ25vZGUgLS12ZXJzaW9uICYmIG5wbSAtLXZlcnNpb24nIH0sXG4gIHsga2V5OiAncGhwJywgaW1hZ2U6ICdwbHVnaW4tcGhwLWJhc2U6MS4wJywgZGlyOiAnX3BocC1iYXNlJywgcHJvdmlkZXM6ICdvbmUgcGlubmVkIFBIUCArIENvbXBvc2VyJywgc21va2VUZXN0OiAncGhwIC0tdmVyc2lvbiAmJiBjb21wb3NlciAtLXZlcnNpb24nIH0sXG4gIHsga2V5OiAncHl0aG9uJywgaW1hZ2U6ICdwbHVnaW4tcHl0aG9uLWJhc2U6MS4wJywgZGlyOiAnX3B5dGhvbi1iYXNlJywgcHJvdmlkZXM6ICdvbmUgcGlubmVkIENQeXRob24gKyBwaXAnLCBzbW9rZVRlc3Q6ICdweXRob24zIC0tdmVyc2lvbiAmJiBwaXAzIC0tdmVyc2lvbicgfSxcbiAgeyBrZXk6ICdydWJ5JywgaW1hZ2U6ICdwbHVnaW4tcnVieS1iYXNlOjEuMCcsIGRpcjogJ19ydWJ5LWJhc2UnLCBwcm92aWRlczogJ29uZSBwaW5uZWQgUnVieSArIEJ1bmRsZXInLCBzbW9rZVRlc3Q6ICdydWJ5IC0tdmVyc2lvbiAmJiBidW5kbGUgLS12ZXJzaW9uJyB9LFxuICB7IGtleTogJ3J1c3QnLCBpbWFnZTogJ3BsdWdpbi1ydXN0LWJhc2U6MS4wJywgZGlyOiAnX3J1c3QtYmFzZScsIHByb3ZpZGVzOiAnb25lIHBpbm5lZCBSdXN0IHRvb2xjaGFpbiArIGNsaXBweS9ydXN0Zm10Jywgc21va2VUZXN0OiAnY2FyZ28gLS12ZXJzaW9uICYmIHJ1c3RjIC0tdmVyc2lvbicgfSxcbiAgeyBrZXk6ICd0cml2eScsIGltYWdlOiAncGx1Z2luLXRyaXZ5LWJhc2U6MS4wJywgZGlyOiAnX3RyaXZ5LWJhc2UnLCBwcm92aWRlczogJ3RyaXZ5ICh0d28gcGlubmVkIHZlcnNpb25zKScsIHNtb2tlVGVzdDogJ3RyaXZ5IC0tdmVyc2lvbicgfSxcbl07XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWJhc2UtaW1hZ2VzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9wbHVnaW4tYmFzZS1pbWFnZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQXVCdEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQStCO0lBQzVELEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsa0VBQWtFLEVBQUUsU0FBUyxFQUFFLGdDQUFnQyxFQUFFO0lBQzdMLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUseUJBQXlCLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7SUFDOUgsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxzQ0FBc0MsRUFBRSxTQUFTLEVBQUUsaUNBQWlDLEVBQUU7SUFDOUosRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUU7SUFDdkksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRTtJQUMvRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLHFDQUFxQyxFQUFFLFNBQVMsRUFBRSxnQ0FBZ0MsRUFBRTtJQUM1SixFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixFQUFFLFNBQVMsRUFBRSxpQ0FBaUMsRUFBRTtJQUNySixFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLDJCQUEyQixFQUFFLFNBQVMsRUFBRSxxQ0FBcUMsRUFBRTtJQUN2SixFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixFQUFFLFNBQVMsRUFBRSxxQ0FBcUMsRUFBRTtJQUMvSixFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLDJCQUEyQixFQUFFLFNBQVMsRUFBRSxvQ0FBb0MsRUFBRTtJQUN6SixFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLDRDQUE0QyxFQUFFLFNBQVMsRUFBRSxvQ0FBb0MsRUFBRTtJQUMxSyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLDZCQUE2QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRTtDQUM1SSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogVGhlIHNoYXJlZCBwbHVnaW4gYmFzZSBpbWFnZXMgKGRlcGxveS9wbHVnaW5zL19iYXNlKTogd2hhdCBgcGx1Z2luIG5ld2BcbiAqIHNjYWZmb2xkcyBgRlJPTWAgYW5kIHdoYXQgQUkgcGx1Z2luIGdlbmVyYXRpb24gdGVsbHMgdGhlIG1vZGVsIHRvIHN0YXJ0XG4gKiBmcm9tLiBMaXN0ZWQgaGVyZSBiZWNhdXNlIG5laXRoZXIgdGhlIENMSSBub3IgdGhlIHBsdWdpbiBzZXJ2aWNlIHNoaXBzIHRoZVxuICogcmVwbzsgYSBwaXBlbGluZS1tYW5hZ2VyIHRlc3QgZmFpbHMgd2hlbiB0aGUgbGlzdCBkcmlmdHMgZnJvbSB0aGUgdHJlZS5cbiAqL1xuXG4vKiogT25lIGBwbHVnaW4tPGVjbz4tYmFzZWAgaW1hZ2UgYSBwbHVnaW4gY2FuIHN0YXJ0IGBGUk9NYC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luQmFzZUltYWdlIHtcbiAgLyoqIGAtLWJhc2VgIHZhbHVlLiAqL1xuICBrZXk6IHN0cmluZztcbiAgLyoqIEltYWdlIHRhZyB0aGUgRG9ja2VyZmlsZSdzIGBGUk9NYCBuYW1lcy4gKi9cbiAgaW1hZ2U6IHN0cmluZztcbiAgLyoqIERpcmVjdG9yeSB1bmRlciBkZXBsb3kvcGx1Z2lucy9fYmFzZS4gKi9cbiAgZGlyOiBzdHJpbmc7XG4gIC8qKiBXaGF0IHRoZSBiYXNlIHByb3ZpZGVzIG9uIHRvcCBvZiB0aGUgcm9vdCBiYXNlLiAqL1xuICBwcm92aWRlczogc3RyaW5nO1xuICAvKiogQSBjb21tYW5kIHRoYXQgcHJvdmVzIHRoZSBydW50aW1lIGlzIG9uIFBBVEggKHRoZSBzY2FmZm9sZCdzIHNtb2tlVGVzdCkuICovXG4gIHNtb2tlVGVzdDogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgUExVR0lOX0JBU0VfSU1BR0VTOiByZWFkb25seSBQbHVnaW5CYXNlSW1hZ2VbXSA9IFtcbiAgeyBrZXk6ICdwbHVnaW4nLCBpbWFnZTogJ3BsdWdpbi1iYXNlOjI2LjEwJywgZGlyOiAnX3BsdWdpbi1iYXNlJywgcHJvdmlkZXM6ICdnaXQsIGN1cmwsIGpxLCB1bnppcCwgZmV0Y2gtdmVyaWZpZWQsIHJ1bi1sb2dnZWQgKHRoZSByb290IGJhc2UpJywgc21va2VUZXN0OiAnYmFzaCAtLXZlcnNpb24gJiYganEgLS12ZXJzaW9uJyB9LFxuICB7IGtleTogJ2F3cy1jbGknLCBpbWFnZTogJ3BsdWdpbi1hd3MtY2xpLWJhc2U6MS4wJywgZGlyOiAnX2F3cy1jbGktYmFzZScsIHByb3ZpZGVzOiAnQVdTIENMSSB2MicsIHNtb2tlVGVzdDogJ2F3cyAtLXZlcnNpb24nIH0sXG4gIHsga2V5OiAnY3BwJywgaW1hZ2U6ICdwbHVnaW4tY3BwLWJhc2U6MS4wJywgZGlyOiAnX2NwcC1iYXNlJywgcHJvdmlkZXM6ICdDL0MrKyB0b29sY2hhaW4sIENNYWtlLCBDb25hbiwgTWVzb24nLCBzbW9rZVRlc3Q6ICdjYyAtLXZlcnNpb24gJiYgY21ha2UgLS12ZXJzaW9uJyB9LFxuICB7IGtleTogJ2RvdG5ldCcsIGltYWdlOiAncGx1Z2luLWRvdG5ldC1iYXNlOjEuMCcsIGRpcjogJ19kb3RuZXQtYmFzZScsIHByb3ZpZGVzOiAnb25lIHBpbm5lZCAuTkVUIFNESycsIHNtb2tlVGVzdDogJ2RvdG5ldCAtLXZlcnNpb24nIH0sXG4gIHsga2V5OiAnZ28nLCBpbWFnZTogJ3BsdWdpbi1nby1iYXNlOjEuMCcsIGRpcjogJ19nby1iYXNlJywgcHJvdmlkZXM6ICdvbmUgcGlubmVkIEdvJywgc21va2VUZXN0OiAnZ28gdmVyc2lvbicgfSxcbiAgeyBrZXk6ICdqdm0nLCBpbWFnZTogJ3BsdWdpbi1qdm0tYmFzZToxLjAnLCBkaXI6ICdfanZtLWJhc2UnLCBwcm92aWRlczogJ0NvcnJldHRvIEpESywgTWF2ZW4sIEdyYWRsZSwgS290bGluJywgc21va2VUZXN0OiAnamF2YSAtdmVyc2lvbiAmJiBtdm4gLS12ZXJzaW9uJyB9LFxuICB7IGtleTogJ25vZGUnLCBpbWFnZTogJ3BsdWdpbi1ub2RlLWJhc2U6MS4wJywgZGlyOiAnX25vZGUtYmFzZScsIHByb3ZpZGVzOiAnb25lIHBpbm5lZCBOb2RlLmpzICsgbnBtJywgc21va2VUZXN0OiAnbm9kZSAtLXZlcnNpb24gJiYgbnBtIC0tdmVyc2lvbicgfSxcbiAgeyBrZXk6ICdwaHAnLCBpbWFnZTogJ3BsdWdpbi1waHAtYmFzZToxLjAnLCBkaXI6ICdfcGhwLWJhc2UnLCBwcm92aWRlczogJ29uZSBwaW5uZWQgUEhQICsgQ29tcG9zZXInLCBzbW9rZVRlc3Q6ICdwaHAgLS12ZXJzaW9uICYmIGNvbXBvc2VyIC0tdmVyc2lvbicgfSxcbiAgeyBrZXk6ICdweXRob24nLCBpbWFnZTogJ3BsdWdpbi1weXRob24tYmFzZToxLjAnLCBkaXI6ICdfcHl0aG9uLWJhc2UnLCBwcm92aWRlczogJ29uZSBwaW5uZWQgQ1B5dGhvbiArIHBpcCcsIHNtb2tlVGVzdDogJ3B5dGhvbjMgLS12ZXJzaW9uICYmIHBpcDMgLS12ZXJzaW9uJyB9LFxuICB7IGtleTogJ3J1YnknLCBpbWFnZTogJ3BsdWdpbi1ydWJ5LWJhc2U6MS4wJywgZGlyOiAnX3J1YnktYmFzZScsIHByb3ZpZGVzOiAnb25lIHBpbm5lZCBSdWJ5ICsgQnVuZGxlcicsIHNtb2tlVGVzdDogJ3J1YnkgLS12ZXJzaW9uICYmIGJ1bmRsZSAtLXZlcnNpb24nIH0sXG4gIHsga2V5OiAncnVzdCcsIGltYWdlOiAncGx1Z2luLXJ1c3QtYmFzZToxLjAnLCBkaXI6ICdfcnVzdC1iYXNlJywgcHJvdmlkZXM6ICdvbmUgcGlubmVkIFJ1c3QgdG9vbGNoYWluICsgY2xpcHB5L3J1c3RmbXQnLCBzbW9rZVRlc3Q6ICdjYXJnbyAtLXZlcnNpb24gJiYgcnVzdGMgLS12ZXJzaW9uJyB9LFxuICB7IGtleTogJ3RyaXZ5JywgaW1hZ2U6ICdwbHVnaW4tdHJpdnktYmFzZToxLjAnLCBkaXI6ICdfdHJpdnktYmFzZScsIHByb3ZpZGVzOiAndHJpdnkgKHR3byBwaW5uZWQgdmVyc2lvbnMpJywgc21va2VUZXN0OiAndHJpdnkgLS12ZXJzaW9uJyB9LFxuXTtcbiJdfQ==
@@ -234,4 +234,4 @@ export function parseCatalogEditsPart(text) {
234
234
  }
235
235
  return parseCatalogEdits(raw);
236
236
  }
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWNhdGFsb2ctZGV0ZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vcGx1Z2luLWNhdGFsb2ctZGV0ZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEdBQ3RGLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUNMLHFCQUFxQixFQUFFLGtCQUFrQixHQUUxQyxNQUFNLDRCQUE0QixDQUFDO0FBMENwQyxnRkFBZ0Y7QUFDaEYsaUJBQWlCO0FBQ2pCLGdGQUFnRjtBQUVoRixzR0FBc0c7QUFDdEcsTUFBTSxVQUFVLG1CQUFtQixDQUFDLElBQVk7SUFDOUMsT0FBTyxJQUFJO1NBQ1IsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQjtTQUN2RCxPQUFPLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLENBQUMsZUFBZTtTQUN2RCxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGNBQWM7U0FDdEMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQztTQUNoQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztTQUNwQixJQUFJLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCwyREFBMkQ7QUFDM0QsU0FBUyxVQUFVLENBQUMsRUFBVTtJQUM1QixNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUM7SUFDekIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ25CLEtBQUssTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFR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QU0sTUFBTSxHQUFHLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLE9BQU87WUFDTCxFQUFFLEVBQUUsS0FBSztZQUNULEtBQUssRUFBRSxxQkFBcUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFFBQVEsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7U0FDekgsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzFDLENBQUM7QUFFRCxpR0FBaUc7QUFDakcsTUFBTSxVQUFVLHFCQUFxQixDQUFDLElBQXdCO0lBQzVELElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtRQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUM3RSxJQUFJLEdBQVksQ0FBQztJQUNqQixJQUFJLENBQUM7UUFDSCxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLDZCQUE2QixFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUNELE9BQU8saUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIENhdGFsb2cgbWV0YWRhdGE6IERFVEVDVEVEIGZyb20gdGhlIHBhY2thZ2UsIHRoZW4gQUNDRVBURUQgT1IgRURJVEVEXG4gKiAoZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCkuXG4gKlxuICogU291cmNlcywgaGlnaGVzdCBwcmlvcml0eSBmaXJzdCDigJQgdGhlIGZpcnN0IG5vbi1lbXB0eSB2YWx1ZSB3aW5zLCBwZXIgZmllbGQ6XG4gKlxuICogfCBGaWVsZCAgICAgICAgICAgICAgfCAxLiBzcGVjICAgICAgICAgICAgfCAyLiBSRUFETUUubWQgICAgICAgfCAzLiBvd24gRG9ja2VyZmlsZSBMQUJFTCAgICAgICAgICAgICAgICAgfFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCBzdW1tYXJ5ICAgICAgICAgICAgfCBgc3VtbWFyeWAgICAgICAgICAgfCDigJQgICAgICAgICAgICAgICAgICB8IOKAlCAodGhlbiBmaXJzdCBzZW50ZW5jZSBvZiBkZXNjcmlwdGlvbikgIHxcbiAqIHwgZGVzY3JpcHRpb24gICAgICAgIHwgYGRlc2NyaXB0aW9uYCAgICAgIHwgZmlyc3QgcGFyYWdyYXBoICAgIHwgYG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5kZXNjcmlwdGlvbmAgIHxcbiAqIHwgZGlzcGxheU5hbWUgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgfCBmaXJzdCBgIyBoZWFkaW5nYCAgfCBgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnRpdGxlYCAgICAgICAgfFxuICogfCBsaWNlbnNlICAgICAgICAgICAgfCBgbGljZW5zZWAgICAgICAgICAgfCDigJQgICAgICAgICAgICAgICAgICB8IGBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UubGljZW5zZXNgICAgICB8XG4gKiB8IGhvbWVwYWdlVXJsICAgICAgICB8IGBob21lcGFnZVVybGAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgIHwgYG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS51cmxgICAgICAgICAgIHxcbiAqIHwgc291cmNlVXJsICAgICAgICAgIHwgYHNvdXJjZVVybGAgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgfCBgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnNvdXJjZWAgICAgICAgfFxuICogfCBkb2N1bWVudGF0aW9uVXJsICAgfCBgZG9jdW1lbnRhdGlvblVybGAgfCDigJQgICAgICAgICAgICAgICAgICB8IGBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuZG9jdW1lbnRhdGlvbmB8XG4gKiB8IGNhdGVnb3J5LCBrZXl3b3JkcywgaWNvbiwgY2hhbmdlbG9nIHwgc3BlYyB8IOKAlCAgICAgICAgICAgICAgfCDigJQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IHJlYWRtZSAgICAgICAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgIHwgYFJFQURNRS5tZGAgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICpcbiAqIEV2ZXJ5IHZhbHVlIOKAlCBkZXRlY3RlZCBvciB0eXBlZCDigJQgcGFzc2VzIHRoZSBPTkUgc2hhcmVkIHZhbGlkYXRvclxuICogKGFwaS1jb3JlIGB2YWxpZGF0ZUNhdGFsb2dGaWVsZGApLiBBIGRldGVjdGVkIHZhbHVlIHRoYXQgZmFpbHMgaXMgcmV0dXJuZWRcbiAqIEJMQU5LIFdJVEggVEhFIFJFQVNPTiwgbmV2ZXIgc2lsZW50bHkgZHJvcHBlZCwgYW5kIGlzIG5vdCBzdG9yZWQgdW5sZXNzIHRoZVxuICogdXNlciBzdXBwbGllcyBhIHZhbGlkIHJlcGxhY2VtZW50LlxuICpcbiAqIFB1cmUgYW5kIHNoYXJlZCBmcm9tIGFwaS1jb3JlOiB0aGUgcGx1Z2luIHNlcnZpY2UncyB1cGxvYWQgYW5kIGluc3BlY3RcbiAqIHJvdXRlcyBhbmQgdGhlIENMSSdzIGBwbHVnaW4gdmFsaWRhdGVgIC8gYHBsdWdpbiBwdWJsaXNoYCBydW4gdGhpcyBvbmVcbiAqIGRldGVjdGlvbiwgc28gdGhlIENMSSByZXBvcnRzIGV4YWN0bHkgd2hhdCB0aGUgc2VydmVyIHdpbGwgZGV0ZWN0LlxuICovXG5cbmltcG9ydCB7IE9DSV9MQUJFTFMsIHBhcnNlRG9ja2VyZmlsZSB9IGZyb20gJy4vZG9ja2VyZmlsZS1zdGF0aWMuanMnO1xuaW1wb3J0IHtcbiAgUGx1Z2luQ2F0YWxvZ0VkaXRzU2NoZW1hLCBjb250cmFjdEtleXNNZXNzYWdlLCBmaW5kQ29udHJhY3RLZXlzLCB2YWxpZGF0ZUNhdGFsb2dGaWVsZCwgdHlwZSBQbHVnaW5DYXRhbG9nRWRpdHMsXG59IGZyb20gJy4vcGx1Z2luLWNhdGFsb2ctbWV0YWRhdGEuanMnO1xuaW1wb3J0IHtcbiAgUExVR0lOX0NBVEFMT0dfRklFTERTLCBQTFVHSU5fU1VNTUFSWV9NQVgsXG4gIHR5cGUgTWV0YWRhdGFTb3VyY2UsIHR5cGUgTWV0YWRhdGFTb3VyY2VzLCB0eXBlIFBsdWdpbkNhdGFsb2dGaWVsZCxcbn0gZnJvbSAnLi4vdHlwZXMvcGx1Z2luLWNhdGFsb2cuanMnO1xuXG4vKiogQSBzb3VyY2UgYSB2YWx1ZSBjYW4gYmUgREVURUNURUQgZnJvbSAoYHVzZXJgIGlzIG9ubHkgZXZlciBhbiBlZGl0KS4gKi9cbmV4cG9ydCB0eXBlIERldGVjdGVkU291cmNlID0gRXhjbHVkZTxNZXRhZGF0YVNvdXJjZSwgJ3VzZXInPjtcblxuLyoqIE9uZSBkZXNjcmlwdGl2ZSBmaWVsZCBhcyBkZXRlY3RlZCBmcm9tIHRoZSBwYWNrYWdlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXRlY3RlZEZpZWxkIHtcbiAgZmllbGQ6IFBsdWdpbkNhdGFsb2dGaWVsZDtcbiAgLyoqIFRoZSB2YWxpZGF0ZWQgKG5vcm1hbGl6ZWQpIHZhbHVlLCBvciBudWxsIHdoZW4gbm9uZSB3YXMgZm91bmQgb3IgaXQgZmFpbGVkIHZhbGlkYXRpb24uICovXG4gIHZhbHVlOiB1bmtub3duO1xuICAvKiogV2hlcmUgdGhlIHdpbm5pbmcgY2FuZGlkYXRlIGNhbWUgZnJvbSwgb3IgbnVsbCB3aGVuIG5vIHNvdXJjZSBoYWQgb25lLiAqL1xuICBzb3VyY2U6IERldGVjdGVkU291cmNlIHwgbnVsbDtcbiAgLyoqIFdoeSB0aGUgd2lubmluZyBjYW5kaWRhdGUgd2FzIHJlZnVzZWQsIG9yIG51bGwuICovXG4gIGVycm9yOiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKiogVGhlIHNwZWMgZmllbGRzIGRldGVjdGlvbiByZWFkcyAoYSBzdHJ1Y3R1cmFsIHN1YnNldCBvZiB0aGUgcGx1Z2luIHNwZWMpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9nU3BlY0ZpZWxkcyB7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICByZWFkb25seSBzdW1tYXJ5Pzogc3RyaW5nO1xuICByZWFkb25seSBjYXRlZ29yeT86IHN0cmluZztcbiAgcmVhZG9ubHkga2V5d29yZHM/OiByZWFkb25seSBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgbGljZW5zZT86IHN0cmluZztcbiAgcmVhZG9ubHkgaG9tZXBhZ2VVcmw/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvdXJjZVVybD86IHN0cmluZztcbiAgcmVhZG9ubHkgZG9jdW1lbnRhdGlvblVybD86IHN0cmluZztcbiAgcmVhZG9ubHkgaWNvbj86IHN0cmluZyB8IHsga2V5OiBzdHJpbmc7IGJhZGdlPzogc3RyaW5nIH07XG4gIHJlYWRvbmx5IGNoYW5nZWxvZz86IHN0cmluZztcbn1cblxuLyoqIFdoYXQgZGV0ZWN0aW9uIHJlYWRzOiB0aGUgc3BlYywgdGhlIHppcC1yb290IFJFQURNRSBhbmQgdGhlIHBsdWdpbidzIG93biBEb2NrZXJmaWxlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9nSW5wdXRzIHtcbiAgc3BlYzogQ2F0YWxvZ1NwZWNGaWVsZHM7XG4gIHJlYWRtZU1kOiBzdHJpbmcgfCBudWxsO1xuICBkb2NrZXJmaWxlQ29udGVudDogc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqIFRoZSBhY2NlcHRlZC9lZGl0ZWQgdmFsdWVzIG9mIGV2ZXJ5IGRlc2NyaXB0aXZlIGZpZWxkLCBwbHVzIHRoZWlyIHByb3ZlbmFuY2UuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkQ2F0YWxvZyB7XG4gIHZhbHVlczogUmVjb3JkPFBsdWdpbkNhdGFsb2dGaWVsZCwgdW5rbm93bj47XG4gIHNvdXJjZXM6IE1ldGFkYXRhU291cmNlcztcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSRUFETUUgcmVhZGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIFN0cmlwIGlubGluZSBtYXJrZG93biBkb3duIHRvIHJlYWRhYmxlIHRleHQgKGxpbmtzIOKGkiB0ZXh0LCBpbWFnZXMvZW1waGFzaXMvY29kZSBtYXJrcyByZW1vdmVkKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpcElubGluZU1hcmtkb3duKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB0ZXh0XG4gICAgLnJlcGxhY2UoLyFcXFtbXlxcXV0qXFxdXFwoW14pXSpcXCkvZywgJycpIC8vIGltYWdlcyAvIGJhZGdlc1xuICAgIC5yZXBsYWNlKC9cXFsoW15cXF1dKilcXF1cXChbXildKlxcKS9nLCAnJDEnKSAvLyBsaW5rcyDihpIgdGV4dFxuICAgIC5yZXBsYWNlKC88W14+XSs+L2csICcnKSAvLyBpbmxpbmUgSFRNTFxuICAgIC5yZXBsYWNlKC8oXFwqXFwqfF9ffFxcKnxffGApL2csICcnKVxuICAgIC5yZXBsYWNlKC9cXHMrL2csICcgJylcbiAgICAudHJpbSgpO1xufVxuXG4vKiogTWFya2Rvd24gbGluZXMgb3V0c2lkZSBmZW5jZWQgY29kZSBibG9ja3MsIGluIG9yZGVyLiAqL1xuZnVuY3Rpb24gcHJvc2VMaW5lcyhtZDogc3RyaW5nKTogc3RyaW5nW10ge1xuICBjb25zdCBvdXQ6IHN0cmluZ1tdID0gW107XG4gIGxldCBmZW5jZWQgPSBmYWxzZTtcbiAgZm9yIChjb25zdCBsaW5lIG9mIG1kLnJlcGxhY2UoL1xcclxcbj8vZywgJ1xcbicpLnNwbGl0KCdcXG4nKSkge1xuICAgIGlmICgvXlxccyooYGBgfH5+fikvLnRlc3QobGluZSkpIHtcbiAgICAgIGZlbmNlZCA9ICFmZW5jZWQ7XG4gICAgICBvdXQucHVzaCgnJyk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgb3V0LnB1c2goZmVuY2VkID8gJycgOiBsaW5lKTtcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuXG4vKiogVGhlIFJFQURNRSdzIGZpcnN0IGxldmVsLTEgQVRYIGhlYWRpbmcgKGAjIFRpdGxlYCksIGFzIHBsYWluIHRleHQuICovXG5leHBvcnQgZnVuY3Rpb24gcmVhZG1lVGl0bGUobWQ6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBmb3IgKGNvbnN0IGxpbmUgb2YgcHJvc2VMaW5lcyhtZCkpIHtcbiAgICBjb25zdCBtID0gL14jXFxzKyguKz8pXFxzKiMqXFxzKiQvLmV4ZWMobGluZSk7XG4gICAgaWYgKG0pIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gc3RyaXBJbmxpbmVNYXJrZG93bihtWzFdISk7XG4gICAgICByZXR1cm4gdGl0bGUgfHwgbnVsbDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogVGhlIFJFQURNRSdzIGZpcnN0IHByb3NlIHBhcmFncmFwaDogdGhlIGZpcnN0IGJsb2NrIG9mIGNvbnNlY3V0aXZlIHRleHRcbiAqIGxpbmVzIHRoYXQgaXMgbm90IGEgaGVhZGluZywgYmFkZ2Ugcm93LCBsaXN0LCB0YWJsZSwgcXVvdGUsIHJ1bGUgb3IgSFRNTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRtZUZpcnN0UGFyYWdyYXBoKG1kOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgaXNTdHJ1Y3R1cmFsID0gKGw6IHN0cmluZyk6IGJvb2xlYW4gPT5cbiAgICAvXlxccyooI3w+fFstKitdXFxzfFxcZCtbLildXFxzfFxcfHw8fC0tLXxcXCpcXCpcXCp8PT09KS8udGVzdChsKTtcbiAgbGV0IHBhcmE6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgbGluZSBvZiBbLi4ucHJvc2VMaW5lcyhtZCksICcnXSkge1xuICAgIGlmIChsaW5lLnRyaW0oKSA9PT0gJycgfHwgaXNTdHJ1Y3R1cmFsKGxpbmUpKSB7XG4gICAgICBpZiAocGFyYS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHRleHQgPSBzdHJpcElubGluZU1hcmtkb3duKHBhcmEuam9pbignICcpKTtcbiAgICAgICAgaWYgKHRleHQpIHJldHVybiB0ZXh0O1xuICAgICAgfVxuICAgICAgcGFyYSA9IFtdO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHBhcmEucHVzaChsaW5lLnRyaW0oKSk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogVGhlIGZpcnN0IHNlbnRlbmNlIG9mIGB0ZXh0YCwgY2FwcGVkIGF0IHtAbGluayBQTFVHSU5fU1VNTUFSWV9NQVh9OiBjdXQgYXRcbiAqIHRoZSBmaXJzdCBgLmAvYCFgL2A/YCBmb2xsb3dlZCBieSB3aGl0ZXNwYWNlIChvciB0aGUgZW5kKSwgZWxzZSB0aGUgZmlyc3RcbiAqIGxpbmU7IGFuIG92ZXItbG9uZyBzZW50ZW5jZSBpcyBzaG9ydGVuZWQgb24gYSB3b3JkIGJvdW5kYXJ5IHdpdGggYOKApmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdFNlbnRlbmNlKHRleHQ6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBmbGF0ID0gdGV4dC5yZXBsYWNlKC9cXHMrL2csICcgJykudHJpbSgpO1xuICBpZiAoIWZsYXQpIHJldHVybiBudWxsO1xuICBjb25zdCBtID0gL14oLis/Wy4hP10pKFxcc3wkKS8uZXhlYyhmbGF0KTtcbiAgY29uc3Qgc2VudGVuY2UgPSAobSA/IG1bMV0hIDogZmxhdCkudHJpbSgpO1xuICBpZiAoc2VudGVuY2UubGVuZ3RoIDw9IFBMVUdJTl9TVU1NQVJZX01BWCkgcmV0dXJuIHNlbnRlbmNlO1xuICBjb25zdCBjdXQgPSBzZW50ZW5jZS5zbGljZSgwLCBQTFVHSU5fU1VNTUFSWV9NQVggLSAxKTtcbiAgY29uc3QgYXRXb3JkID0gY3V0LmluY2x1ZGVzKCcgJykgPyBjdXQuc2xpY2UoMCwgY3V0Lmxhc3RJbmRleE9mKCcgJykpIDogY3V0O1xuICByZXR1cm4gYCR7YXRXb3JkLnJlcGxhY2UoL1tcXHMsOzpdKyQvLCAnJyl94oCmYDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERldGVjdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxudHlwZSBDYW5kaWRhdGUgPSBbRGV0ZWN0ZWRTb3VyY2UsIHVua25vd25dO1xuXG5jb25zdCBub25FbXB0eSA9ICh2OiB1bmtub3duKTogYm9vbGVhbiA9PlxuICB2ICE9PSB1bmRlZmluZWQgJiYgdiAhPT0gbnVsbCAmJiAhKHR5cGVvZiB2ID09PSAnc3RyaW5nJyAmJiB2LnRyaW0oKSA9PT0gJycpICYmICEoQXJyYXkuaXNBcnJheSh2KSAmJiB2Lmxlbmd0aCA9PT0gMCk7XG5cbi8qKiBQaWNrIHRoZSBmaXJzdCBub24tZW1wdHkgY2FuZGlkYXRlIGFuZCB2YWxpZGF0ZSBpdCAoYmxhbmsgKyByZWFzb24gb24gZmFpbHVyZSkuICovXG5mdW5jdGlvbiBwaWNrKGZpZWxkOiBQbHVnaW5DYXRhbG9nRmllbGQsIGNhbmRpZGF0ZXM6IENhbmRpZGF0ZVtdKTogRGV0ZWN0ZWRGaWVsZCB7XG4gIGNvbnN0IHdpbm5lciA9IGNhbmRpZGF0ZXMuZmluZCgoWywgdl0pID0+IG5vbkVtcHR5KHYpKTtcbiAgaWYgKCF3aW5uZXIpIHJldHVybiB7IGZpZWxkLCB2YWx1ZTogbnVsbCwgc291cmNlOiBudWxsLCBlcnJvcjogbnVsbCB9O1xuICBjb25zdCBbc291cmNlLCByYXddID0gd2lubmVyO1xuICBjb25zdCBjaGVja2VkID0gdmFsaWRhdGVDYXRhbG9nRmllbGQoZmllbGQsIHJhdyk7XG4gIHJldHVybiBjaGVja2VkLm9rXG4gICAgPyB7IGZpZWxkLCB2YWx1ZTogY2hlY2tlZC52YWx1ZSwgc291cmNlLCBlcnJvcjogbnVsbCB9XG4gICAgOiB7IGZpZWxkLCB2YWx1ZTogbnVsbCwgc291cmNlLCBlcnJvcjogY2hlY2tlZC5lcnJvciB9O1xufVxuXG4vKiogVGhlIHN1bW1hcnkgZGVyaXZlZCBmcm9tIGEgZGVzY3JpcHRpb24sIGFzIGEgZGV0ZWN0ZWQgZmllbGQuICovXG5mdW5jdGlvbiBkZXJpdmVkU3VtbWFyeShkZXNjcmlwdGlvbjogdW5rbm93bik6IERldGVjdGVkRmllbGQge1xuICBjb25zdCBzZW50ZW5jZSA9IHR5cGVvZiBkZXNjcmlwdGlvbiA9PT0gJ3N0cmluZycgPyBmaXJzdFNlbnRlbmNlKGRlc2NyaXB0aW9uKSA6IG51bGw7XG4gIHJldHVybiBwaWNrKCdzdW1tYXJ5JywgW1snZGVyaXZlZCcsIHNlbnRlbmNlXV0pO1xufVxuXG4vKipcbiAqIERldGVjdCBldmVyeSBkZXNjcmlwdGl2ZSBmaWVsZCBmcm9tIHRoZSBwYWNrYWdlLCBpblxuICogYFBMVUdJTl9DQVRBTE9HX0ZJRUxEU2Agb3JkZXIuIFB1cmU7IG5ldmVyIHRocm93cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdENhdGFsb2dNZXRhZGF0YShpbnB1dHM6IENhdGFsb2dJbnB1dHMpOiBEZXRlY3RlZEZpZWxkW10ge1xuICBjb25zdCB7IHNwZWMgfSA9IGlucHV0cztcbiAgY29uc3QgcmVhZG1lID0gaW5wdXRzLnJlYWRtZU1kO1xuICBjb25zdCBsYWJlbHMgPSBwYXJzZURvY2tlcmZpbGUoaW5wdXRzLmRvY2tlcmZpbGVDb250ZW50KS5sYWJlbHM7XG4gIGNvbnN0IGxhYmVsID0gKGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IGxhYmVsc1trZXldO1xuXG4gIGNvbnN0IGRlc2NyaXB0aW9uID0gcGljaygnZGVzY3JpcHRpb24nLCBbXG4gICAgWydzcGVjJywgc3BlYy5kZXNjcmlwdGlvbl0sXG4gICAgWydyZWFkbWUnLCByZWFkbWUgIT09IG51bGwgPyByZWFkbWVGaXJzdFBhcmFncmFwaChyZWFkbWUpIDogbnVsbF0sXG4gICAgWydkb2NrZXJmaWxlJywgbGFiZWwoT0NJX0xBQkVMUy5kZXNjcmlwdGlvbildLFxuICBdKTtcbiAgY29uc3Qgc3BlY1N1bW1hcnkgPSBwaWNrKCdzdW1tYXJ5JywgW1snc3BlYycsIHNwZWMuc3VtbWFyeV1dKTtcblxuICBjb25zdCBieUZpZWxkOiBSZWNvcmQ8UGx1Z2luQ2F0YWxvZ0ZpZWxkLCBEZXRlY3RlZEZpZWxkPiA9IHtcbiAgICBkaXNwbGF5TmFtZTogcGljaygnZGlzcGxheU5hbWUnLCBbXG4gICAgICBbJ3JlYWRtZScsIHJlYWRtZSAhPT0gbnVsbCA/IHJlYWRtZVRpdGxlKHJlYWRtZSkgOiBudWxsXSxcbiAgICAgIFsnZG9ja2VyZmlsZScsIGxhYmVsKE9DSV9MQUJFTFMudGl0bGUpXSxcbiAgICBdKSxcbiAgICBzdW1tYXJ5OiBzcGVjU3VtbWFyeS5zb3VyY2UgIT09IG51bGwgPyBzcGVjU3VtbWFyeSA6IGRlcml2ZWRTdW1tYXJ5KGRlc2NyaXB0aW9uLnZhbHVlKSxcbiAgICBkZXNjcmlwdGlvbixcbiAgICBjYXRlZ29yeTogcGljaygnY2F0ZWdvcnknLCBbWydzcGVjJywgc3BlYy5jYXRlZ29yeV1dKSxcbiAgICBrZXl3b3JkczogcGljaygna2V5d29yZHMnLCBbWydzcGVjJywgc3BlYy5rZXl3b3Jkc11dKSxcbiAgICBsaWNlbnNlOiBwaWNrKCdsaWNlbnNlJywgW1snc3BlYycsIHNwZWMubGljZW5zZV0sIFsnZG9ja2VyZmlsZScsIGxhYmVsKE9DSV9MQUJFTFMubGljZW5zZXMpXV0pLFxuICAgIGhvbWVwYWdlVXJsOiBwaWNrKCdob21lcGFnZVVybCcsIFtbJ3NwZWMnLCBzcGVjLmhvbWVwYWdlVXJsXSwgWydkb2NrZXJmaWxlJywgbGFiZWwoT0NJX0xBQkVMUy51cmwpXV0pLFxuICAgIHNvdXJjZVVybDogcGljaygnc291cmNlVXJsJywgW1snc3BlYycsIHNwZWMuc291cmNlVXJsXSwgWydkb2NrZXJmaWxlJywgbGFiZWwoT0NJX0xBQkVMUy5zb3VyY2UpXV0pLFxuICAgIGRvY3VtZW50YXRpb25Vcmw6IHBpY2soJ2RvY3VtZW50YXRpb25VcmwnLCBbWydzcGVjJywgc3BlYy5kb2N1bWVudGF0aW9uVXJsXSwgWydkb2NrZXJmaWxlJywgbGFiZWwoT0NJX0xBQkVMUy5kb2N1bWVudGF0aW9uKV1dKSxcbiAgICBpY29uOiBwaWNrKCdpY29uJywgW1snc3BlYycsIHNwZWMuaWNvbl1dKSxcbiAgICBjaGFuZ2Vsb2c6IHBpY2soJ2NoYW5nZWxvZycsIFtbJ3NwZWMnLCBzcGVjLmNoYW5nZWxvZ11dKSxcbiAgICByZWFkbWU6IHBpY2soJ3JlYWRtZScsIFtbJ3JlYWRtZScsIHJlYWRtZV1dKSxcbiAgfTtcbiAgcmV0dXJuIFBMVUdJTl9DQVRBTE9HX0ZJRUxEUy5tYXAoKGYpID0+IGJ5RmllbGRbZl0pO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQWNjZXB0IG9yIGVkaXRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogQXBwbHkgdGhlIHVzZXIncyBlZGl0cyBvdmVyIHRoZSBkZXRlY3RlZCB2YWx1ZXMuIEEga2V5IHByZXNlbnQgaW4gYGVkaXRzYFxuICogaXMgdGhlIHVzZXIncyAoYG51bGxgIGNsZWFycyBpdCkgYW5kIGlzIHJlY29yZGVkIGFzIGB1c2VyYDsgZXZlcnkgb3RoZXIgZmllbGRcbiAqIGtlZXBzIGl0cyBkZXRlY3RlZCB2YWx1ZSAobm9uZSB3aGVuIGl0IGZhaWxlZCB2YWxpZGF0aW9uKS4gYGVkaXRzYCBtdXN0XG4gKiBhbHJlYWR5IGhhdmUgcGFzc2VkIGBQbHVnaW5DYXRhbG9nRWRpdHNTY2hlbWFgLiBBIHN1bW1hcnkgdGhhdCB3YXMgREVSSVZFRFxuICogZnJvbSB0aGUgZGVzY3JpcHRpb24gaXMgcmUtZGVyaXZlZCB3aGVuIHRoZSB1c2VyIGVkaXRlZCB0aGUgZGVzY3JpcHRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ2F0YWxvZ01ldGFkYXRhKGRldGVjdGVkOiBEZXRlY3RlZEZpZWxkW10sIGVkaXRzOiBQbHVnaW5DYXRhbG9nRWRpdHMgPSB7fSk6IFJlc29sdmVkQ2F0YWxvZyB7XG4gIGNvbnN0IHZhbHVlcyA9IHt9IGFzIFJlY29yZDxQbHVnaW5DYXRhbG9nRmllbGQsIHVua25vd24+O1xuICBjb25zdCBzb3VyY2VzOiBNZXRhZGF0YVNvdXJjZXMgPSB7fTtcbiAgY29uc3Qgc2V0ID0gKGZpZWxkOiBQbHVnaW5DYXRhbG9nRmllbGQsIHZhbHVlOiB1bmtub3duLCBzb3VyY2U6IE1ldGFkYXRhU291cmNlIHwgbnVsbCk6IHZvaWQgPT4ge1xuICAgIHZhbHVlc1tmaWVsZF0gPSB2YWx1ZSA/PyBudWxsO1xuICAgIGlmIChzb3VyY2UgJiYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgfHwgc291cmNlID09PSAndXNlcicpKSBzb3VyY2VzW2ZpZWxkXSA9IHNvdXJjZTtcbiAgfTtcblxuICBmb3IgKGNvbnN0IGQgb2YgZGV0ZWN0ZWQpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVkaXRzLCBkLmZpZWxkKSkge1xuICAgICAgc2V0KGQuZmllbGQsIChlZGl0cyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbZC5maWVsZF0sICd1c2VyJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldChkLmZpZWxkLCBkLmVycm9yID8gbnVsbCA6IGQudmFsdWUsIGQuZXJyb3IgPyBudWxsIDogZC5zb3VyY2UpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHN1bW1hcnlEZXRlY3RlZCA9IGRldGVjdGVkLmZpbmQoKGQpID0+IGQuZmllbGQgPT09ICdzdW1tYXJ5Jyk7XG4gIGNvbnN0IHN1bW1hcnlFZGl0ZWQgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZWRpdHMsICdzdW1tYXJ5Jyk7XG4gIGNvbnN0IGRlc2NyaXB0aW9uRWRpdGVkID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVkaXRzLCAnZGVzY3JpcHRpb24nKTtcbiAgaWYgKCFzdW1tYXJ5RWRpdGVkICYmIGRlc2NyaXB0aW9uRWRpdGVkICYmIChzdW1tYXJ5RGV0ZWN0ZWQ/LnNvdXJjZSA9PT0gJ2Rlcml2ZWQnIHx8IHN1bW1hcnlEZXRlY3RlZD8uc291cmNlID09PSBudWxsKSkge1xuICAgIGNvbnN0IHJlZGVyaXZlZCA9IGRlcml2ZWRTdW1tYXJ5KHZhbHVlcy5kZXNjcmlwdGlvbik7XG4gICAgZGVsZXRlIHNvdXJjZXMuc3VtbWFyeTtcbiAgICBzZXQoJ3N1bW1hcnknLCByZWRlcml2ZWQuZXJyb3IgPyBudWxsIDogcmVkZXJpdmVkLnZhbHVlLCByZWRlcml2ZWQuZXJyb3IgPyBudWxsIDogcmVkZXJpdmVkLnNvdXJjZSk7XG4gIH1cbiAgcmV0dXJuIHsgdmFsdWVzLCBzb3VyY2VzIH07XG59XG5cbi8qKiBBIGRldGVjdGlvbiB3aXRoIGV2ZXJ5IHZhbHVlIGFjY2VwdGVkIChubyBlZGl0cykg4oCUIHNjcmlwdHMsIHRoZSBPZmZpY2lhbCBsb2FkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gYWNjZXB0QWxsQ2F0YWxvZ01ldGFkYXRhKGRldGVjdGVkOiBEZXRlY3RlZEZpZWxkW10pOiBSZXNvbHZlZENhdGFsb2cge1xuICByZXR1cm4gcmVzb2x2ZUNhdGFsb2dNZXRhZGF0YShkZXRlY3RlZCwge30pO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRWRpdCBwYXlsb2Fkc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBWYWxpZGF0ZSBhIGNhdGFsb2ctZWRpdCBwYXlsb2FkICh0aGUgdXBsb2FkJ3MgYG1ldGFkYXRhYCBwYXJ0LCBhbHJlYWR5XG4gKiBKU09OLWRlY29kZWQpLiBFeGVjdXRpb24tY29udHJhY3Qga2V5cyBhcmUgcmVmdXNlZCBieSBuYW1lIGJlZm9yZSB0aGVcbiAqIHN0cmljdCBzY2hlbWEgcnVucywgc28gdGhlIGNhbGxlciBsZWFybnMgZXhhY3RseSB3aGljaCBrZXlzIGNhbid0IGJlIGVkaXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ2F0YWxvZ0VkaXRzKHJhdzogdW5rbm93bik6IHsgb2s6IHRydWU7IHZhbHVlOiBQbHVnaW5DYXRhbG9nRWRpdHMgfSB8IHsgb2s6IGZhbHNlOyBlcnJvcjogc3RyaW5nOyBjb250cmFjdEtleXM/OiBzdHJpbmdbXSB9IHtcbiAgaWYgKCFyYXcgfHwgdHlwZW9mIHJhdyAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShyYXcpKSB7XG4gICAgcmV0dXJuIHsgb2s6IGZhbHNlLCBlcnJvcjogJ21ldGFkYXRhIG11c3QgYmUgYSBKU09OIG9iamVjdCcgfTtcbiAgfVxuICBjb25zdCBjb250cmFjdEtleXMgPSBmaW5kQ29udHJhY3RLZXlzKHJhdyk7XG4gIGlmIChjb250cmFjdEtleXMubGVuZ3RoID4gMCkgcmV0dXJuIHsgb2s6IGZhbHNlLCBlcnJvcjogY29udHJhY3RLZXlzTWVzc2FnZShjb250cmFjdEtleXMpLCBjb250cmFjdEtleXMgfTtcbiAgY29uc3QgcGFyc2VkID0gUGx1Z2luQ2F0YWxvZ0VkaXRzU2NoZW1hLnNhZmVQYXJzZShyYXcpO1xuICBpZiAoIXBhcnNlZC5zdWNjZXNzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9rOiBmYWxzZSxcbiAgICAgIGVycm9yOiBgSW52YWxpZCBtZXRhZGF0YTogJHtwYXJzZWQuZXJyb3IuaXNzdWVzLm1hcCgoaSkgPT4gYCR7aS5wYXRoLmpvaW4oJy4nKSB8fCAnKHJvb3QpJ306ICR7aS5tZXNzYWdlfWApLmpvaW4oJzsgJyl9YCxcbiAgICB9O1xuICB9XG4gIHJldHVybiB7IG9rOiB0cnVlLCB2YWx1ZTogcGFyc2VkLmRhdGEgfTtcbn1cblxuLyoqIERlY29kZSB0aGUgdXBsb2FkJ3MgbXVsdGlwYXJ0IGBtZXRhZGF0YWAgcGFydCAoSlNPTiB0ZXh0KSwgdGhlbiB7QGxpbmsgcGFyc2VDYXRhbG9nRWRpdHN9LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ2F0YWxvZ0VkaXRzUGFydCh0ZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBSZXR1cm5UeXBlPHR5cGVvZiBwYXJzZUNhdGFsb2dFZGl0cz4ge1xuICBpZiAodGV4dCA9PT0gdW5kZWZpbmVkIHx8IHRleHQudHJpbSgpID09PSAnJykgcmV0dXJuIHsgb2s6IHRydWUsIHZhbHVlOiB7fSB9O1xuICBsZXQgcmF3OiB1bmtub3duO1xuICB0cnkge1xuICAgIHJhdyA9IEpTT04ucGFyc2UodGV4dCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB7IG9rOiBmYWxzZSwgZXJyb3I6ICdtZXRhZGF0YSBtdXN0IGJlIHZhbGlkIEpTT04nIH07XG4gIH1cbiAgcmV0dXJuIHBhcnNlQ2F0YWxvZ0VkaXRzKHJhdyk7XG59XG4iXX0=
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWNhdGFsb2ctZGV0ZWN0LmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9wbHVnaW4tY2F0YWxvZy1kZXRlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQkc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JFLE9BQU8sRUFDTCx3QkFBd0IsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsR0FDdEYsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQ0wscUJBQXFCLEVBQUUsa0JBQWtCLEdBRTFDLE1BQU0sNEJBQTRCLENBQUM7QUEwQ3BDLGdGQUFnRjtBQUNoRixpQkFBaUI7QUFDakIsZ0ZBQWdGO0FBRWhGLHNHQUFzRztBQUN0RyxNQUFNLFVBQVUsbUJBQW1CLENBQUMsSUFBWTtJQUM5QyxPQUFPLElBQUk7U0FDUixPQUFPLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLENBQUMsa0JBQWtCO1NBQ3ZELE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsQ0FBQyxlQUFlO1NBQ3ZELE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsY0FBYztTQUN0QyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO1NBQ2hDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO1NBQ3BCLElBQUksRUFBRSxDQUFDO0FBQ1osQ0FBQztBQUVELDJEQUEyRDtBQUMzRCxTQUFTLFVBQVUsQ0FBQyxFQUFVO0lBQzVCLE1BQU0sR0FBRyxHQUFhLEVBQUUsQ0FBQztJQUN6QixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDbkIsS0FBSyxNQUFNLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMs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QXdCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEIsT0FBTztZQUNMLEVBQUUsRUFBRSxLQUFLO1lBQ1QsS0FBSyxFQUFFLHFCQUFxQixNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksUUFBUSxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtTQUN6SCxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDMUMsQ0FBQztBQUVELGlHQUFpRztBQUNqRyxNQUFNLFVBQVUscUJBQXFCLENBQUMsSUFBd0I7SUFDNUQsSUFBSSxJQUFJLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1FBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQzdFLElBQUksR0FBWSxDQUFDO0lBQ2pCLElBQUksQ0FBQztRQUNILEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsT0FBTyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogQ2F0YWxvZyBtZXRhZGF0YTogREVURUNURUQgZnJvbSB0aGUgcGFja2FnZSwgdGhlbiBBQ0NFUFRFRCBPUiBFRElURURcbiAqIChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kKS5cbiAqXG4gKiBTb3VyY2VzLCBoaWdoZXN0IHByaW9yaXR5IGZpcnN0IOKAlCB0aGUgZmlyc3Qgbm9uLWVtcHR5IHZhbHVlIHdpbnMsIHBlciBmaWVsZDpcbiAqXG4gKiB8IEZpZWxkICAgICAgICAgICAgICB8IDEuIHNwZWMgICAgICAgICAgICB8IDIuIFJFQURNRS5tZCAgICAgICB8IDMuIG93biBEb2NrZXJmaWxlIExBQkVMICAgICAgICAgICAgICAgICB8XG4gKiB8LS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gKiB8IHN1bW1hcnkgICAgICAgICAgICB8IGBzdW1tYXJ5YCAgICAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgIHwg4oCUICh0aGVuIGZpcnN0IHNlbnRlbmNlIG9mIGRlc2NyaXB0aW9uKSAgfFxuICogfCBkZXNjcmlwdGlvbiAgICAgICAgfCBgZGVzY3JpcHRpb25gICAgICAgfCBmaXJzdCBwYXJhZ3JhcGggICAgfCBgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLmRlc2NyaXB0aW9uYCAgfFxuICogfCBkaXNwbGF5TmFtZSAgICAgICAgfCDigJQgICAgICAgICAgICAgICAgICB8IGZpcnN0IGAjIGhlYWRpbmdgICB8IGBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UudGl0bGVgICAgICAgICB8XG4gKiB8IGxpY2Vuc2UgICAgICAgICAgICB8IGBsaWNlbnNlYCAgICAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgIHwgYG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5saWNlbnNlc2AgICAgIHxcbiAqIHwgaG9tZXBhZ2VVcmwgICAgICAgIHwgYGhvbWVwYWdlVXJsYCAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgfCBgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnVybGAgICAgICAgICAgfFxuICogfCBzb3VyY2VVcmwgICAgICAgICAgfCBgc291cmNlVXJsYCAgICAgICAgfCDigJQgICAgICAgICAgICAgICAgICB8IGBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2Uuc291cmNlYCAgICAgICB8XG4gKiB8IGRvY3VtZW50YXRpb25VcmwgICB8IGBkb2N1bWVudGF0aW9uVXJsYCB8IOKAlCAgICAgICAgICAgICAgICAgIHwgYG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5kb2N1bWVudGF0aW9uYHxcbiAqIHwgY2F0ZWdvcnksIGtleXdvcmRzLCBpY29uLCBjaGFuZ2Vsb2cgfCBzcGVjIHwg4oCUICAgICAgICAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgcmVhZG1lICAgICAgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgfCBgUkVBRE1FLm1kYCAgICAgICAgfCDigJQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKlxuICogRXZlcnkgdmFsdWUg4oCUIGRldGVjdGVkIG9yIHR5cGVkIOKAlCBwYXNzZXMgdGhlIE9ORSBzaGFyZWQgdmFsaWRhdG9yXG4gKiAoYXBpLWNvcmUgYHZhbGlkYXRlQ2F0YWxvZ0ZpZWxkYCkuIEEgZGV0ZWN0ZWQgdmFsdWUgdGhhdCBmYWlscyBpcyByZXR1cm5lZFxuICogQkxBTksgV0lUSCBUSEUgUkVBU09OLCBuZXZlciBzaWxlbnRseSBkcm9wcGVkLCBhbmQgaXMgbm90IHN0b3JlZCB1bmxlc3MgdGhlXG4gKiB1c2VyIHN1cHBsaWVzIGEgdmFsaWQgcmVwbGFjZW1lbnQuXG4gKlxuICogUHVyZSBhbmQgc2hhcmVkIGZyb20gYXBpLWNvcmU6IHRoZSBwbHVnaW4gc2VydmljZSdzIHVwbG9hZCBhbmQgaW5zcGVjdFxuICogcm91dGVzIGFuZCB0aGUgQ0xJJ3MgYHBsdWdpbiB2YWxpZGF0ZWAgLyBgcGx1Z2luIHB1Ymxpc2hgIHJ1biB0aGlzIG9uZVxuICogZGV0ZWN0aW9uLCBzbyB0aGUgQ0xJIHJlcG9ydHMgZXhhY3RseSB3aGF0IHRoZSBzZXJ2ZXIgd2lsbCBkZXRlY3QuXG4gKi9cblxuaW1wb3J0IHsgT0NJX0xBQkVMUywgcGFyc2VEb2NrZXJmaWxlIH0gZnJvbSAnLi9kb2NrZXJmaWxlLXN0YXRpYy5qcyc7XG5pbXBvcnQge1xuICBQbHVnaW5DYXRhbG9nRWRpdHNTY2hlbWEsIGNvbnRyYWN0S2V5c01lc3NhZ2UsIGZpbmRDb250cmFjdEtleXMsIHZhbGlkYXRlQ2F0YWxvZ0ZpZWxkLCB0eXBlIFBsdWdpbkNhdGFsb2dFZGl0cyxcbn0gZnJvbSAnLi9wbHVnaW4tY2F0YWxvZy1tZXRhZGF0YS5qcyc7XG5pbXBvcnQge1xuICBQTFVHSU5fQ0FUQUxPR19GSUVMRFMsIFBMVUdJTl9TVU1NQVJZX01BWCxcbiAgdHlwZSBNZXRhZGF0YVNvdXJjZSwgdHlwZSBNZXRhZGF0YVNvdXJjZXMsIHR5cGUgUGx1Z2luQ2F0YWxvZ0ZpZWxkLFxufSBmcm9tICcuLi90eXBlcy9wbHVnaW4tY2F0YWxvZy5qcyc7XG5cbi8qKiBBIHNvdXJjZSBhIHZhbHVlIGNhbiBiZSBERVRFQ1RFRCBmcm9tIChgdXNlcmAgaXMgb25seSBldmVyIGFuIGVkaXQpLiAqL1xuZXhwb3J0IHR5cGUgRGV0ZWN0ZWRTb3VyY2UgPSBFeGNsdWRlPE1ldGFkYXRhU291cmNlLCAndXNlcic+O1xuXG4vKiogT25lIGRlc2NyaXB0aXZlIGZpZWxkIGFzIGRldGVjdGVkIGZyb20gdGhlIHBhY2thZ2UuICovXG5leHBvcnQgaW50ZXJmYWNlIERldGVjdGVkRmllbGQge1xuICBmaWVsZDogUGx1Z2luQ2F0YWxvZ0ZpZWxkO1xuICAvKiogVGhlIHZhbGlkYXRlZCAobm9ybWFsaXplZCkgdmFsdWUsIG9yIG51bGwgd2hlbiBub25lIHdhcyBmb3VuZCBvciBpdCBmYWlsZWQgdmFsaWRhdGlvbi4gKi9cbiAgdmFsdWU6IHVua25vd247XG4gIC8qKiBXaGVyZSB0aGUgd2lubmluZyBjYW5kaWRhdGUgY2FtZSBmcm9tLCBvciBudWxsIHdoZW4gbm8gc291cmNlIGhhZCBvbmUuICovXG4gIHNvdXJjZTogRGV0ZWN0ZWRTb3VyY2UgfCBudWxsO1xuICAvKiogV2h5IHRoZSB3aW5uaW5nIGNhbmRpZGF0ZSB3YXMgcmVmdXNlZCwgb3IgbnVsbC4gKi9cbiAgZXJyb3I6IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKiBUaGUgc3BlYyBmaWVsZHMgZGV0ZWN0aW9uIHJlYWRzIChhIHN0cnVjdHVyYWwgc3Vic2V0IG9mIHRoZSBwbHVnaW4gc3BlYykuICovXG5leHBvcnQgaW50ZXJmYWNlIENhdGFsb2dTcGVjRmllbGRzIHtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN1bW1hcnk/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNhdGVnb3J5Pzogc3RyaW5nO1xuICByZWFkb25seSBrZXl3b3Jkcz86IHJlYWRvbmx5IHN0cmluZ1tdO1xuICByZWFkb25seSBsaWNlbnNlPzogc3RyaW5nO1xuICByZWFkb25seSBob21lcGFnZVVybD86IHN0cmluZztcbiAgcmVhZG9ubHkgc291cmNlVXJsPzogc3RyaW5nO1xuICByZWFkb25seSBkb2N1bWVudGF0aW9uVXJsPzogc3RyaW5nO1xuICByZWFkb25seSBpY29uPzogc3RyaW5nIHwgeyBrZXk6IHN0cmluZzsgYmFkZ2U/OiBzdHJpbmcgfTtcbiAgcmVhZG9ubHkgY2hhbmdlbG9nPzogc3RyaW5nO1xufVxuXG4vKiogV2hhdCBkZXRlY3Rpb24gcmVhZHM6IHRoZSBzcGVjLCB0aGUgemlwLXJvb3QgUkVBRE1FIGFuZCB0aGUgcGx1Z2luJ3Mgb3duIERvY2tlcmZpbGUuICovXG5leHBvcnQgaW50ZXJmYWNlIENhdGFsb2dJbnB1dHMge1xuICBzcGVjOiBDYXRhbG9nU3BlY0ZpZWxkcztcbiAgcmVhZG1lTWQ6IHN0cmluZyB8IG51bGw7XG4gIGRvY2tlcmZpbGVDb250ZW50OiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKiogVGhlIGFjY2VwdGVkL2VkaXRlZCB2YWx1ZXMgb2YgZXZlcnkgZGVzY3JpcHRpdmUgZmllbGQsIHBsdXMgdGhlaXIgcHJvdmVuYW5jZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZWRDYXRhbG9nIHtcbiAgdmFsdWVzOiBSZWNvcmQ8UGx1Z2luQ2F0YWxvZ0ZpZWxkLCB1bmtub3duPjtcbiAgc291cmNlczogTWV0YWRhdGFTb3VyY2VzO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJFQURNRSByZWFkaW5nXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiogU3RyaXAgaW5saW5lIG1hcmtkb3duIGRvd24gdG8gcmVhZGFibGUgdGV4dCAobGlua3Mg4oaSIHRleHQsIGltYWdlcy9lbXBoYXNpcy9jb2RlIG1hcmtzIHJlbW92ZWQpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0cmlwSW5saW5lTWFya2Rvd24odGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRleHRcbiAgICAucmVwbGFjZSgvIVxcW1teXFxdXSpcXF1cXChbXildKlxcKS9nLCAnJykgLy8gaW1hZ2VzIC8gYmFkZ2VzXG4gICAgLnJlcGxhY2UoL1xcWyhbXlxcXV0qKVxcXVxcKFteKV0qXFwpL2csICckMScpIC8vIGxpbmtzIOKGkiB0ZXh0XG4gICAgLnJlcGxhY2UoLzxbXj5dKz4vZywgJycpIC8vIGlubGluZSBIVE1MXG4gICAgLnJlcGxhY2UoLyhcXCpcXCp8X198XFwqfF98YCkvZywgJycpXG4gICAgLnJlcGxhY2UoL1xccysvZywgJyAnKVxuICAgIC50cmltKCk7XG59XG5cbi8qKiBNYXJrZG93biBsaW5lcyBvdXRzaWRlIGZlbmNlZCBjb2RlIGJsb2NrcywgaW4gb3JkZXIuICovXG5mdW5jdGlvbiBwcm9zZUxpbmVzKG1kOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IG91dDogc3RyaW5nW10gPSBbXTtcbiAgbGV0IGZlbmNlZCA9IGZhbHNlO1xuICBmb3IgKGNvbnN0IGxpbmUgb2YgbWQucmVwbGFjZSgvXFxyXFxuPy9nLCAnXFxuJykuc3BsaXQoJ1xcbicpKSB7XG4gICAgaWYgKC9eXFxzKihgYGB8fn5+KS8udGVzdChsaW5lKSkge1xuICAgICAgZmVuY2VkID0gIWZlbmNlZDtcbiAgICAgIG91dC5wdXNoKCcnKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBvdXQucHVzaChmZW5jZWQgPyAnJyA6IGxpbmUpO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG5cbi8qKiBUaGUgUkVBRE1FJ3MgZmlyc3QgbGV2ZWwtMSBBVFggaGVhZGluZyAoYCMgVGl0bGVgKSwgYXMgcGxhaW4gdGV4dC4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWFkbWVUaXRsZShtZDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIGZvciAoY29uc3QgbGluZSBvZiBwcm9zZUxpbmVzKG1kKSkge1xuICAgIGNvbnN0IG0gPSAvXiNcXHMrKC4rPylcXHMqIypcXHMqJC8uZXhlYyhsaW5lKTtcbiAgICBpZiAobSkge1xuICAgICAgY29uc3QgdGl0bGUgPSBzdHJpcElubGluZU1hcmtkb3duKG1bMV0hKTtcbiAgICAgIHJldHVybiB0aXRsZSB8fCBudWxsO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBUaGUgUkVBRE1FJ3MgZmlyc3QgcHJvc2UgcGFyYWdyYXBoOiB0aGUgZmlyc3QgYmxvY2sgb2YgY29uc2VjdXRpdmUgdGV4dFxuICogbGluZXMgdGhhdCBpcyBub3QgYSBoZWFkaW5nLCBiYWRnZSByb3csIGxpc3QsIHRhYmxlLCBxdW90ZSwgcnVsZSBvciBIVE1MLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVhZG1lRmlyc3RQYXJhZ3JhcGgobWQ6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBpc1N0cnVjdHVyYWwgPSAobDogc3RyaW5nKTogYm9vbGVhbiA9PlxuICAgIC9eXFxzKigjfD58Wy0qK11cXHN8XFxkK1suKV1cXHN8XFx8fDx8LS0tfFxcKlxcKlxcKnw9PT0pLy50ZXN0KGwpO1xuICBsZXQgcGFyYTogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBsaW5lIG9mIFsuLi5wcm9zZUxpbmVzKG1kKSwgJyddKSB7XG4gICAgaWYgKGxpbmUudHJpbSgpID09PSAnJyB8fCBpc1N0cnVjdHVyYWwobGluZSkpIHtcbiAgICAgIGlmIChwYXJhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgdGV4dCA9IHN0cmlwSW5saW5lTWFya2Rvd24ocGFyYS5qb2luKCcgJykpO1xuICAgICAgICBpZiAodGV4dCkgcmV0dXJuIHRleHQ7XG4gICAgICB9XG4gICAgICBwYXJhID0gW107XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgcGFyYS5wdXNoKGxpbmUudHJpbSgpKTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBUaGUgZmlyc3Qgc2VudGVuY2Ugb2YgYHRleHRgLCBjYXBwZWQgYXQge0BsaW5rIFBMVUdJTl9TVU1NQVJZX01BWH06IGN1dCBhdFxuICogdGhlIGZpcnN0IGAuYC9gIWAvYD9gIGZvbGxvd2VkIGJ5IHdoaXRlc3BhY2UgKG9yIHRoZSBlbmQpLCBlbHNlIHRoZSBmaXJzdFxuICogbGluZTsgYW4gb3Zlci1sb25nIHNlbnRlbmNlIGlzIHNob3J0ZW5lZCBvbiBhIHdvcmQgYm91bmRhcnkgd2l0aCBg4oCmYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0U2VudGVuY2UodGV4dDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IGZsYXQgPSB0ZXh0LnJlcGxhY2UoL1xccysvZywgJyAnKS50cmltKCk7XG4gIGlmICghZmxhdCkgcmV0dXJuIG51bGw7XG4gIGNvbnN0IG0gPSAvXiguKz9bLiE/XSkoXFxzfCQpLy5leGVjKGZsYXQpO1xuICBjb25zdCBzZW50ZW5jZSA9IChtID8gbVsxXSEgOiBmbGF0KS50cmltKCk7XG4gIGlmIChzZW50ZW5jZS5sZW5ndGggPD0gUExVR0lOX1NVTU1BUllfTUFYKSByZXR1cm4gc2VudGVuY2U7XG4gIGNvbnN0IGN1dCA9IHNlbnRlbmNlLnNsaWNlKDAsIFBMVUdJTl9TVU1NQVJZX01BWCAtIDEpO1xuICBjb25zdCBhdFdvcmQgPSBjdXQuaW5jbHVkZXMoJyAnKSA/IGN1dC5zbGljZSgwLCBjdXQubGFzdEluZGV4T2YoJyAnKSkgOiBjdXQ7XG4gIHJldHVybiBgJHthdFdvcmQucmVwbGFjZSgvW1xccyw7Ol0rJC8sICcnKX3igKZgO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRGV0ZWN0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG50eXBlIENhbmRpZGF0ZSA9IFtEZXRlY3RlZFNvdXJjZSwgdW5rbm93bl07XG5cbmNvbnN0IG5vbkVtcHR5ID0gKHY6IHVua25vd24pOiBib29sZWFuID0+XG4gIHYgIT09IHVuZGVmaW5lZCAmJiB2ICE9PSBudWxsICYmICEodHlwZW9mIHYgPT09ICdzdHJpbmcnICYmIHYudHJpbSgpID09PSAnJykgJiYgIShBcnJheS5pc0FycmF5KHYpICYmIHYubGVuZ3RoID09PSAwKTtcblxuLyoqIFBpY2sgdGhlIGZpcnN0IG5vbi1lbXB0eSBjYW5kaWRhdGUgYW5kIHZhbGlkYXRlIGl0IChibGFuayArIHJlYXNvbiBvbiBmYWlsdXJlKS4gKi9cbmZ1bmN0aW9uIHBpY2soZmllbGQ6IFBsdWdpbkNhdGFsb2dGaWVsZCwgY2FuZGlkYXRlczogQ2FuZGlkYXRlW10pOiBEZXRlY3RlZEZpZWxkIHtcbiAgY29uc3Qgd2lubmVyID0gY2FuZGlkYXRlcy5maW5kKChbLCB2XSkgPT4gbm9uRW1wdHkodikpO1xuICBpZiAoIXdpbm5lcikgcmV0dXJuIHsgZmllbGQsIHZhbHVlOiBudWxsLCBzb3VyY2U6IG51bGwsIGVycm9yOiBudWxsIH07XG4gIGNvbnN0IFtzb3VyY2UsIHJhd10gPSB3aW5uZXI7XG4gIGNvbnN0IGNoZWNrZWQgPSB2YWxpZGF0ZUNhdGFsb2dGaWVsZChmaWVsZCwgcmF3KTtcbiAgcmV0dXJuIGNoZWNrZWQub2tcbiAgICA/IHsgZmllbGQsIHZhbHVlOiBjaGVja2VkLnZhbHVlLCBzb3VyY2UsIGVycm9yOiBudWxsIH1cbiAgICA6IHsgZmllbGQsIHZhbHVlOiBudWxsLCBzb3VyY2UsIGVycm9yOiBjaGVja2VkLmVycm9yIH07XG59XG5cbi8qKiBUaGUgc3VtbWFyeSBkZXJpdmVkIGZyb20gYSBkZXNjcmlwdGlvbiwgYXMgYSBkZXRlY3RlZCBmaWVsZC4gKi9cbmZ1bmN0aW9uIGRlcml2ZWRTdW1tYXJ5KGRlc2NyaXB0aW9uOiB1bmtub3duKTogRGV0ZWN0ZWRGaWVsZCB7XG4gIGNvbnN0IHNlbnRlbmNlID0gdHlwZW9mIGRlc2NyaXB0aW9uID09PSAnc3RyaW5nJyA/IGZpcnN0U2VudGVuY2UoZGVzY3JpcHRpb24pIDogbnVsbDtcbiAgcmV0dXJuIHBpY2soJ3N1bW1hcnknLCBbWydkZXJpdmVkJywgc2VudGVuY2VdXSk7XG59XG5cbi8qKlxuICogRGV0ZWN0IGV2ZXJ5IGRlc2NyaXB0aXZlIGZpZWxkIGZyb20gdGhlIHBhY2thZ2UsIGluXG4gKiBgUExVR0lOX0NBVEFMT0dfRklFTERTYCBvcmRlci4gUHVyZTsgbmV2ZXIgdGhyb3dzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0Q2F0YWxvZ01ldGFkYXRhKGlucHV0czogQ2F0YWxvZ0lucHV0cyk6IERldGVjdGVkRmllbGRbXSB7XG4gIGNvbnN0IHsgc3BlYyB9ID0gaW5wdXRzO1xuICBjb25zdCByZWFkbWUgPSBpbnB1dHMucmVhZG1lTWQ7XG4gIGNvbnN0IGxhYmVscyA9IHBhcnNlRG9ja2VyZmlsZShpbnB1dHMuZG9ja2VyZmlsZUNvbnRlbnQpLmxhYmVscztcbiAgY29uc3QgbGFiZWwgPSAoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4gbGFiZWxzW2tleV07XG5cbiAgY29uc3QgZGVzY3JpcHRpb24gPSBwaWNrKCdkZXNjcmlwdGlvbicsIFtcbiAgICBbJ3NwZWMnLCBzcGVjLmRlc2NyaXB0aW9uXSxcbiAgICBbJ3JlYWRtZScsIHJlYWRtZSAhPT0gbnVsbCA/IHJlYWRtZUZpcnN0UGFyYWdyYXBoKHJlYWRtZSkgOiBudWxsXSxcbiAgICBbJ2RvY2tlcmZpbGUnLCBsYWJlbChPQ0lfTEFCRUxTLmRlc2NyaXB0aW9uKV0sXG4gIF0pO1xuICBjb25zdCBzcGVjU3VtbWFyeSA9IHBpY2soJ3N1bW1hcnknLCBbWydzcGVjJywgc3BlYy5zdW1tYXJ5XV0pO1xuXG4gIGNvbnN0IGJ5RmllbGQ6IFJlY29yZDxQbHVnaW5DYXRhbG9nRmllbGQsIERldGVjdGVkRmllbGQ+ID0ge1xuICAgIGRpc3BsYXlOYW1lOiBwaWNrKCdkaXNwbGF5TmFtZScsIFtcbiAgICAgIFsncmVhZG1lJywgcmVhZG1lICE9PSBudWxsID8gcmVhZG1lVGl0bGUocmVhZG1lKSA6IG51bGxdLFxuICAgICAgWydkb2NrZXJmaWxlJywgbGFiZWwoT0NJX0xBQkVMUy50aXRsZSldLFxuICAgIF0pLFxuICAgIHN1bW1hcnk6IHNwZWNTdW1tYXJ5LnNvdXJjZSAhPT0gbnVsbCA/IHNwZWNTdW1tYXJ5IDogZGVyaXZlZFN1bW1hcnkoZGVzY3JpcHRpb24udmFsdWUpLFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIGNhdGVnb3J5OiBwaWNrKCdjYXRlZ29yeScsIFtbJ3NwZWMnLCBzcGVjLmNhdGVnb3J5XV0pLFxuICAgIGtleXdvcmRzOiBwaWNrKCdrZXl3b3JkcycsIFtbJ3NwZWMnLCBzcGVjLmtleXdvcmRzXV0pLFxuICAgIGxpY2Vuc2U6IHBpY2soJ2xpY2Vuc2UnLCBbWydzcGVjJywgc3BlYy5saWNlbnNlXSwgWydkb2NrZXJmaWxlJywgbGFiZWwoT0NJX0xBQkVMUy5saWNlbnNlcyldXSksXG4gICAgaG9tZXBhZ2VVcmw6IHBpY2soJ2hvbWVwYWdlVXJsJywgW1snc3BlYycsIHNwZWMuaG9tZXBhZ2VVcmxdLCBbJ2RvY2tlcmZpbGUnLCBsYWJlbChPQ0lfTEFCRUxTLnVybCldXSksXG4gICAgc291cmNlVXJsOiBwaWNrKCdzb3VyY2VVcmwnLCBbWydzcGVjJywgc3BlYy5zb3VyY2VVcmxdLCBbJ2RvY2tlcmZpbGUnLCBsYWJlbChPQ0lfTEFCRUxTLnNvdXJjZSldXSksXG4gICAgZG9jdW1lbnRhdGlvblVybDogcGljaygnZG9jdW1lbnRhdGlvblVybCcsIFtbJ3NwZWMnLCBzcGVjLmRvY3VtZW50YXRpb25VcmxdLCBbJ2RvY2tlcmZpbGUnLCBsYWJlbChPQ0lfTEFCRUxTLmRvY3VtZW50YXRpb24pXV0pLFxuICAgIGljb246IHBpY2soJ2ljb24nLCBbWydzcGVjJywgc3BlYy5pY29uXV0pLFxuICAgIGNoYW5nZWxvZzogcGljaygnY2hhbmdlbG9nJywgW1snc3BlYycsIHNwZWMuY2hhbmdlbG9nXV0pLFxuICAgIHJlYWRtZTogcGljaygncmVhZG1lJywgW1sncmVhZG1lJywgcmVhZG1lXV0pLFxuICB9O1xuICByZXR1cm4gUExVR0lOX0NBVEFMT0dfRklFTERTLm1hcCgoZikgPT4gYnlGaWVsZFtmXSk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBBY2NlcHQgb3IgZWRpdFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBBcHBseSB0aGUgdXNlcidzIGVkaXRzIG92ZXIgdGhlIGRldGVjdGVkIHZhbHVlcy4gQSBrZXkgcHJlc2VudCBpbiBgZWRpdHNgXG4gKiBpcyB0aGUgdXNlcidzIChgbnVsbGAgY2xlYXJzIGl0KSBhbmQgaXMgcmVjb3JkZWQgYXMgYHVzZXJgOyBldmVyeSBvdGhlciBmaWVsZFxuICoga2VlcHMgaXRzIGRldGVjdGVkIHZhbHVlIChub25lIHdoZW4gaXQgZmFpbGVkIHZhbGlkYXRpb24pLiBgZWRpdHNgIG11c3RcbiAqIGFscmVhZHkgaGF2ZSBwYXNzZWQgYFBsdWdpbkNhdGFsb2dFZGl0c1NjaGVtYWAuIEEgc3VtbWFyeSB0aGF0IHdhcyBERVJJVkVEXG4gKiBmcm9tIHRoZSBkZXNjcmlwdGlvbiBpcyByZS1kZXJpdmVkIHdoZW4gdGhlIHVzZXIgZWRpdGVkIHRoZSBkZXNjcmlwdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDYXRhbG9nTWV0YWRhdGEoZGV0ZWN0ZWQ6IERldGVjdGVkRmllbGRbXSwgZWRpdHM6IFBsdWdpbkNhdGFsb2dFZGl0cyA9IHt9KTogUmVzb2x2ZWRDYXRhbG9nIHtcbiAgY29uc3QgdmFsdWVzID0ge30gYXMgUmVjb3JkPFBsdWdpbkNhdGFsb2dGaWVsZCwgdW5rbm93bj47XG4gIGNvbnN0IHNvdXJjZXM6IE1ldGFkYXRhU291cmNlcyA9IHt9O1xuICBjb25zdCBzZXQgPSAoZmllbGQ6IFBsdWdpbkNhdGFsb2dGaWVsZCwgdmFsdWU6IHVua25vd24sIHNvdXJjZTogTWV0YWRhdGFTb3VyY2UgfCBudWxsKTogdm9pZCA9PiB7XG4gICAgdmFsdWVzW2ZpZWxkXSA9IHZhbHVlID8/IG51bGw7XG4gICAgaWYgKHNvdXJjZSAmJiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCB8fCBzb3VyY2UgPT09ICd1c2VyJykpIHNvdXJjZXNbZmllbGRdID0gc291cmNlO1xuICB9O1xuXG4gIGZvciAoY29uc3QgZCBvZiBkZXRlY3RlZCkge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZWRpdHMsIGQuZmllbGQpKSB7XG4gICAgICBzZXQoZC5maWVsZCwgKGVkaXRzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtkLmZpZWxkXSwgJ3VzZXInKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0KGQuZmllbGQsIGQuZXJyb3IgPyBudWxsIDogZC52YWx1ZSwgZC5lcnJvciA/IG51bGwgOiBkLnNvdXJjZSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc3VtbWFyeURldGVjdGVkID0gZGV0ZWN0ZWQuZmluZCgoZCkgPT4gZC5maWVsZCA9PT0gJ3N1bW1hcnknKTtcbiAgY29uc3Qgc3VtbWFyeUVkaXRlZCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlZGl0cywgJ3N1bW1hcnknKTtcbiAgY29uc3QgZGVzY3JpcHRpb25FZGl0ZWQgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZWRpdHMsICdkZXNjcmlwdGlvbicpO1xuICBpZiAoIXN1bW1hcnlFZGl0ZWQgJiYgZGVzY3JpcHRpb25FZGl0ZWQgJiYgKHN1bW1hcnlEZXRlY3RlZD8uc291cmNlID09PSAnZGVyaXZlZCcgfHwgc3VtbWFyeURldGVjdGVkPy5zb3VyY2UgPT09IG51bGwpKSB7XG4gICAgY29uc3QgcmVkZXJpdmVkID0gZGVyaXZlZFN1bW1hcnkodmFsdWVzLmRlc2NyaXB0aW9uKTtcbiAgICBkZWxldGUgc291cmNlcy5zdW1tYXJ5O1xuICAgIHNldCgnc3VtbWFyeScsIHJlZGVyaXZlZC5lcnJvciA/IG51bGwgOiByZWRlcml2ZWQudmFsdWUsIHJlZGVyaXZlZC5lcnJvciA/IG51bGwgOiByZWRlcml2ZWQuc291cmNlKTtcbiAgfVxuICByZXR1cm4geyB2YWx1ZXMsIHNvdXJjZXMgfTtcbn1cblxuLyoqIEEgZGV0ZWN0aW9uIHdpdGggZXZlcnkgdmFsdWUgYWNjZXB0ZWQgKG5vIGVkaXRzKSDigJQgc2NyaXB0cywgdGhlIE9mZmljaWFsIGxvYWRlci4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhY2NlcHRBbGxDYXRhbG9nTWV0YWRhdGEoZGV0ZWN0ZWQ6IERldGVjdGVkRmllbGRbXSk6IFJlc29sdmVkQ2F0YWxvZyB7XG4gIHJldHVybiByZXNvbHZlQ2F0YWxvZ01ldGFkYXRhKGRldGVjdGVkLCB7fSk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFZGl0IHBheWxvYWRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIFZhbGlkYXRlIGEgY2F0YWxvZy1lZGl0IHBheWxvYWQgKHRoZSB1cGxvYWQncyBgbWV0YWRhdGFgIHBhcnQsIGFscmVhZHlcbiAqIEpTT04tZGVjb2RlZCkuIEV4ZWN1dGlvbi1jb250cmFjdCBrZXlzIGFyZSByZWZ1c2VkIGJ5IG5hbWUgYmVmb3JlIHRoZVxuICogc3RyaWN0IHNjaGVtYSBydW5zLCBzbyB0aGUgY2FsbGVyIGxlYXJucyBleGFjdGx5IHdoaWNoIGtleXMgY2FuJ3QgYmUgZWRpdGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDYXRhbG9nRWRpdHMocmF3OiB1bmtub3duKTogeyBvazogdHJ1ZTsgdmFsdWU6IFBsdWdpbkNhdGFsb2dFZGl0cyB9IHwgeyBvazogZmFsc2U7IGVycm9yOiBzdHJpbmc7IGNvbnRyYWN0S2V5cz86IHN0cmluZ1tdIH0ge1xuICBpZiAoIXJhdyB8fCB0eXBlb2YgcmF3ICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHJhdykpIHtcbiAgICByZXR1cm4geyBvazogZmFsc2UsIGVycm9yOiAnbWV0YWRhdGEgbXVzdCBiZSBhIEpTT04gb2JqZWN0JyB9O1xuICB9XG4gIGNvbnN0IGNvbnRyYWN0S2V5cyA9IGZpbmRDb250cmFjdEtleXMocmF3KTtcbiAgaWYgKGNvbnRyYWN0S2V5cy5sZW5ndGggPiAwKSByZXR1cm4geyBvazogZmFsc2UsIGVycm9yOiBjb250cmFjdEtleXNNZXNzYWdlKGNvbnRyYWN0S2V5cyksIGNvbnRyYWN0S2V5cyB9O1xuICBjb25zdCBwYXJzZWQgPSBQbHVnaW5DYXRhbG9nRWRpdHNTY2hlbWEuc2FmZVBhcnNlKHJhdyk7XG4gIGlmICghcGFyc2VkLnN1Y2Nlc3MpIHtcbiAgICByZXR1cm4ge1xuICAgICAgb2s6IGZhbHNlLFxuICAgICAgZXJyb3I6IGBJbnZhbGlkIG1ldGFkYXRhOiAke3BhcnNlZC5lcnJvci5pc3N1ZXMubWFwKChpKSA9PiBgJHtpLnBhdGguam9pbignLicpIHx8ICcocm9vdCknfTogJHtpLm1lc3NhZ2V9YCkuam9pbignOyAnKX1gLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHsgb2s6IHRydWUsIHZhbHVlOiBwYXJzZWQuZGF0YSB9O1xufVxuXG4vKiogRGVjb2RlIHRoZSB1cGxvYWQncyBtdWx0aXBhcnQgYG1ldGFkYXRhYCBwYXJ0IChKU09OIHRleHQpLCB0aGVuIHtAbGluayBwYXJzZUNhdGFsb2dFZGl0c30uICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDYXRhbG9nRWRpdHNQYXJ0KHRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IFJldHVyblR5cGU8dHlwZW9mIHBhcnNlQ2F0YWxvZ0VkaXRzPiB7XG4gIGlmICh0ZXh0ID09PSB1bmRlZmluZWQgfHwgdGV4dC50cmltKCkgPT09ICcnKSByZXR1cm4geyBvazogdHJ1ZSwgdmFsdWU6IHt9IH07XG4gIGxldCByYXc6IHVua25vd247XG4gIHRyeSB7XG4gICAgcmF3ID0gSlNPTi5wYXJzZSh0ZXh0KTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHsgb2s6IGZhbHNlLCBlcnJvcjogJ21ldGFkYXRhIG11c3QgYmUgdmFsaWQgSlNPTicgfTtcbiAgfVxuICByZXR1cm4gcGFyc2VDYXRhbG9nRWRpdHMocmF3KTtcbn1cbiJdfQ==