@pipeline-builder/api-core 5.2.6 → 5.2.8

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 (189) 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 +3 -2
  22. package/lib/middleware/client-version.d.ts +45 -0
  23. package/lib/middleware/client-version.js +97 -0
  24. package/lib/middleware/deferred-quota-check.js +1 -1
  25. package/lib/middleware/ecosystem-guard.js +1 -1
  26. package/lib/middleware/index.d.ts +1 -0
  27. package/lib/middleware/index.js +2 -1
  28. package/lib/middleware/jwt-verify.js +1 -1
  29. package/lib/middleware/mongo-sanitize.js +1 -1
  30. package/lib/middleware/on-behalf.js +1 -1
  31. package/lib/middleware/permission-gates.js +1 -1
  32. package/lib/middleware/quota-exempt-routes.js +1 -1
  33. package/lib/middleware/revocation.js +1 -1
  34. package/lib/middleware/route-table.js +16 -1
  35. package/lib/middleware/service-tokens.js +1 -1
  36. package/lib/middleware/step-up.js +1 -1
  37. package/lib/middleware/system-org.d.ts +18 -5
  38. package/lib/middleware/system-org.js +19 -6
  39. package/lib/openapi/extend-zod.js +1 -1
  40. package/lib/openapi/index.js +1 -1
  41. package/lib/openapi/registry.js +1 -1
  42. package/lib/openapi/routes/ask-routes.js +1 -1
  43. package/lib/openapi/routes/billing-routes.js +1 -1
  44. package/lib/openapi/routes/image-registry-routes.js +1 -1
  45. package/lib/openapi/routes/index.js +1 -1
  46. package/lib/openapi/routes/message-routes.js +1 -1
  47. package/lib/openapi/routes/pipeline-routes.js +1 -1
  48. package/lib/openapi/routes/pipeline-template-routes.js +1 -1
  49. package/lib/openapi/routes/plugin-routes.js +1 -1
  50. package/lib/openapi/routes/quota-routes.js +1 -1
  51. package/lib/openapi/schema-registry.js +1 -1
  52. package/lib/routes/health.js +1 -1
  53. package/lib/routes/index.js +1 -1
  54. package/lib/services/ai-call-weight.js +1 -1
  55. package/lib/services/alert-delivery.js +1 -1
  56. package/lib/services/api-key-exchange.d.ts +4 -2
  57. package/lib/services/api-key-exchange.js +15 -8
  58. package/lib/services/audit-context.d.ts +3 -0
  59. package/lib/services/audit-context.js +2 -1
  60. package/lib/services/audit-spool.js +1 -1
  61. package/lib/services/cache-service.js +1 -1
  62. package/lib/services/circuit-breaker.js +1 -1
  63. package/lib/services/compliance-client.js +1 -1
  64. package/lib/services/compliance-event-subscriber.js +1 -1
  65. package/lib/services/durable-event-bus.js +1 -1
  66. package/lib/services/ecosystem-notify-client.d.ts +7 -1
  67. package/lib/services/ecosystem-notify-client.js +9 -3
  68. package/lib/services/entity-events.js +1 -1
  69. package/lib/services/env-redis.js +1 -1
  70. package/lib/services/http-client.js +19 -3
  71. package/lib/services/index.d.ts +1 -1
  72. package/lib/services/index.js +2 -2
  73. package/lib/services/jwks-cache.js +1 -1
  74. package/lib/services/leader-lock.js +1 -1
  75. package/lib/services/notification-channels.js +1 -1
  76. package/lib/services/org-ai-client.js +1 -1
  77. package/lib/services/pagerduty-inbound.js +1 -1
  78. package/lib/services/pagerduty.js +1 -1
  79. package/lib/services/quota-increment-batcher.js +1 -1
  80. package/lib/services/quota.js +1 -1
  81. package/lib/services/remote-audit-client.js +1 -1
  82. package/lib/services/retry-forever.js +1 -1
  83. package/lib/services/retry-strategy.js +1 -1
  84. package/lib/services/s3-client.js +1 -1
  85. package/lib/services/scheduler.js +1 -1
  86. package/lib/services/service-boot.js +1 -1
  87. package/lib/services/service-keys.js +2 -2
  88. package/lib/services/sse-ticket-store.js +1 -1
  89. package/lib/services/system-notification.js +1 -1
  90. package/lib/services/token-revocation.js +1 -1
  91. package/lib/services/version-vuln-policy.d.ts +11 -0
  92. package/lib/services/version-vuln-policy.js +33 -7
  93. package/lib/types/ai-catalog.js +1 -1
  94. package/lib/types/ask-proposals.d.ts +23 -0
  95. package/lib/types/ask-proposals.js +29 -1
  96. package/lib/types/audit-events.js +1 -1
  97. package/lib/types/build-catalog.d.ts +65 -0
  98. package/lib/types/build-catalog.js +95 -1
  99. package/lib/types/catalog-metadata.js +1 -1
  100. package/lib/types/common.js +1 -1
  101. package/lib/types/compliance-exemption.js +1 -1
  102. package/lib/types/ecosystem-notifications.d.ts +9 -0
  103. package/lib/types/ecosystem-notifications.js +15 -6
  104. package/lib/types/ecosystem.d.ts +1 -6
  105. package/lib/types/ecosystem.js +18 -5
  106. package/lib/types/error-codes.d.ts +3 -0
  107. package/lib/types/error-codes.js +6 -1
  108. package/lib/types/feature-flags.d.ts +17 -1
  109. package/lib/types/feature-flags.js +1 -1
  110. package/lib/types/http.js +1 -1
  111. package/lib/types/index.d.ts +3 -3
  112. package/lib/types/index.js +4 -4
  113. package/lib/types/metadata-keys.js +1 -1
  114. package/lib/types/permissions.d.ts +60 -13
  115. package/lib/types/permissions.js +63 -14
  116. package/lib/types/pipeline-template.js +1 -1
  117. package/lib/types/pipeline.js +1 -1
  118. package/lib/types/plugin-catalog.js +1 -1
  119. package/lib/types/plugin-health.js +1 -1
  120. package/lib/types/plugin-scan.d.ts +69 -0
  121. package/lib/types/plugin-scan.js +77 -1
  122. package/lib/types/quota-catalog.js +15 -2
  123. package/lib/types/quota-tiers.d.ts +27 -160
  124. package/lib/types/quota-tiers.js +47 -255
  125. package/lib/types/remote-audit-actions.d.ts +1 -1
  126. package/lib/types/remote-audit-actions.js +9 -1
  127. package/lib/types/reserved-tags.js +1 -1
  128. package/lib/types/tier-limits.d.ts +210 -0
  129. package/lib/types/tier-limits.js +254 -0
  130. package/lib/types/usage-projection.js +1 -1
  131. package/lib/types/visibility.js +1 -1
  132. package/lib/types/wire-vocabulary.d.ts +7 -0
  133. package/lib/types/wire-vocabulary.js +7 -1
  134. package/lib/utils/alias-resolver.js +1 -1
  135. package/lib/utils/api-key.js +1 -1
  136. package/lib/utils/audit.js +1 -1
  137. package/lib/utils/aws-scrub.js +1 -1
  138. package/lib/utils/compliance-attributes.js +1 -1
  139. package/lib/utils/concurrency-gate.d.ts +98 -0
  140. package/lib/utils/concurrency-gate.js +110 -0
  141. package/lib/utils/concurrency.js +1 -1
  142. package/lib/utils/crash-handlers.js +1 -1
  143. package/lib/utils/date.js +1 -1
  144. package/lib/utils/dsse.js +1 -1
  145. package/lib/utils/env.d.ts +11 -0
  146. package/lib/utils/env.js +14 -1
  147. package/lib/utils/headers.js +1 -1
  148. package/lib/utils/identity.js +1 -1
  149. package/lib/utils/index.d.ts +2 -0
  150. package/lib/utils/index.js +3 -1
  151. package/lib/utils/jwk.js +2 -2
  152. package/lib/utils/logger.js +1 -1
  153. package/lib/utils/metric-emitter.js +1 -1
  154. package/lib/utils/object.js +1 -1
  155. package/lib/utils/params.js +1 -1
  156. package/lib/utils/plugin-compliance.d.ts +9 -1
  157. package/lib/utils/plugin-compliance.js +1 -1
  158. package/lib/utils/proof-of-work.js +1 -1
  159. package/lib/utils/response.js +1 -1
  160. package/lib/utils/retention.js +1 -1
  161. package/lib/utils/safe-require.js +1 -1
  162. package/lib/utils/secret-encryption.js +1 -1
  163. package/lib/utils/secret-rotation.js +1 -1
  164. package/lib/utils/secure-compare.js +1 -1
  165. package/lib/utils/semver.d.ts +18 -0
  166. package/lib/utils/semver.js +120 -0
  167. package/lib/utils/sensitive-patterns.js +1 -1
  168. package/lib/utils/service-registry.js +1 -1
  169. package/lib/utils/ssrf.js +1 -1
  170. package/lib/validation/ai-schemas.js +1 -1
  171. package/lib/validation/common-schemas.js +1 -1
  172. package/lib/validation/dockerfile-static.js +1 -1
  173. package/lib/validation/index.d.ts +1 -1
  174. package/lib/validation/index.js +2 -2
  175. package/lib/validation/message-schemas.d.ts +73 -0
  176. package/lib/validation/message-schemas.js +63 -2
  177. package/lib/validation/middleware.js +1 -1
  178. package/lib/validation/pipeline-schemas.js +1 -1
  179. package/lib/validation/pipeline-template-schemas.js +1 -1
  180. package/lib/validation/plugin-base-images.js +1 -1
  181. package/lib/validation/plugin-catalog-detect.js +1 -1
  182. package/lib/validation/plugin-catalog-metadata.js +1 -1
  183. package/lib/validation/plugin-heuristics.js +1 -1
  184. package/lib/validation/plugin-lint.js +1 -1
  185. package/lib/validation/plugin-name-confusable.js +1 -1
  186. package/lib/validation/plugin-schemas.js +1 -1
  187. package/lib/validation/plugin-spec-schema.js +1 -1
  188. package/lib/validation/plugin-template-contract.js +1 -1
  189. package/package.json +11 -4
@@ -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==
@@ -159,4 +159,4 @@ export function findContractKeys(payload) {
159
159
  export function contractKeysMessage(keys) {
160
160
  return `These fields define what the plugin runs and can only change by uploading a new version: ${keys.join(', ')}`;
161
161
  }
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWNhdGFsb2ctbWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9wbHVnaW4tY2F0YWxvZy1tZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUN4QixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGlCQUFpQixFQUNqQiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsY0FBYyxHQUVmLE1BQU0sNEJBQTRCLENBQUM7QUFFcEM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQXdCLElBQUksR0FBRyxDQUFDO0lBQzNELFlBQVksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUztJQUN0RixjQUFjLEVBQUUsY0FBYztJQUM5QixTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVM7SUFDL0IsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxtQkFBbUI7SUFDMUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxrQkFBa0I7SUFDdEUsZUFBZSxFQUFFLG1CQUFtQjtJQUNwQyxXQUFXLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsY0FBYztJQUN2RSxVQUFVLEVBQUUsYUFBYSxFQUFFLFVBQVU7SUFDckMsd0JBQXdCO0NBQ3pCLENBQUMsQ0FBQztBQUVILHFEQUFxRDtBQUNyRCxNQUFNLFVBQVUsZUFBZSxDQUFDLEVBQVU7SUFDeEMsT0FBTyxnQkFBZ0IsQ0FBQyxHQUFH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bGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBQbHVnaW4gQ0FUQUxPRyBtZXRhZGF0YTogdGhlIGRlc2NyaXB0aXZlIGZpZWxkcyBhIHBsdWdpbiB2ZXJzaW9uIHNob3dzIGluIHRoZVxuICogY2F0YWxvZywgZGV0ZWN0ZWQgZnJvbSB0aGUgcGFja2FnZSBhbmQgdGhlbiBhY2NlcHRlZCBvciBlZGl0ZWQgYnkgdGhlIHVzZXJcbiAqIChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kKS5cbiAqXG4gKiBPTkUgdmFsaWRhdG9yIGZvciBib3RoIHBhdGhzOiBhIHZhbHVlIGRldGVjdGVkIGZyb20gdGhlIHBhY2thZ2UgKHNwZWMsXG4gKiBSRUFETUUsIHRoZSBwbHVnaW4ncyBvd24gRG9ja2VyZmlsZSBsYWJlbHMpIGFuZCBhIHZhbHVlIHR5cGVkIGludG8gYSBmb3JtIG9yXG4gKiBzZW50IGJ5IHRoZSBDTEkgcGFzcyB0aGUgc2FtZSBydWxlcy4gU2hhcmVkIGZyb20gYXBpLWNvcmUgc28gdGhlIHBsdWdpblxuICogc2VydmljZSwgdGhlIGZyb250ZW5kIGFuZCB0aGUgQ0xJIGNhbid0IGRyaWZ0LlxuICpcbiAqIE9ubHkgREVTQ1JJUFRJVkUgZmllbGRzIGxpdmUgaGVyZS4gRXhlY3V0aW9uLWNvbnRyYWN0IGZpZWxkcyAoY29tbWFuZHMsIGVudixcbiAqIHNlY3JldHMsIGNvbXB1dGUgdHlwZSwg4oCmKSBhcmUgc3BlYy1vbmx5IOKAlCBjaGFuZ2luZyBvbmUgaXMgYSBuZXcgdmVyc2lvbiB3aXRoIGFcbiAqIG5ldyBkaWdlc3Qg4oCUIGFuZCBhbiBlZGl0IHBheWxvYWQgbmFtaW5nIG9uZSBpcyByZWZ1c2VkXG4gKiAoe0BsaW5rIGZpbmRDb250cmFjdEtleXN9KS5cbiAqL1xuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcbmltcG9ydCB7XG4gIFBMVUdJTl9DQVRBTE9HX0ZJRUxEUyxcbiAgUExVR0lOX0NBVEVHT1JJRVMsXG4gIFBMVUdJTl9DSEFOR0VMT0dfTUFYX0JZVEVTLFxuICBQTFVHSU5fREVTQ1JJUFRJT05fTUFYLFxuICBQTFVHSU5fRElTUExBWV9OQU1FX01BWCxcbiAgUExVR0lOX0tFWVdPUkRfTUFYX0xFTkdUSCxcbiAgUExVR0lOX0tFWVdPUkRTX01BWCxcbiAgUExVR0lOX1JFQURNRV9NQVhfQllURVMsXG4gIFBMVUdJTl9TVU1NQVJZX01BWCxcbiAgUExVR0lOX1VSTF9NQVgsXG4gIHR5cGUgUGx1Z2luQ2F0YWxvZ0ZpZWxkLFxufSBmcm9tICcuLi90eXBlcy9wbHVnaW4tY2F0YWxvZy5qcyc7XG5cbi8qKlxuICogQWNjZXB0ZWQgU1BEWCBsaWNlbnNlIGlkZW50aWZpZXJzIOKAlCBhIGNvbXBhY3QgYWxsb3dsaXN0IG9mIHRoZSBpZHMgdGhhdFxuICogY292ZXIgZWZmZWN0aXZlbHkgZXZlcnkgcHVibGlzaGVkIHBsdWdpbiwgcmF0aGVyIHRoYW4gdGhlIGZ1bGwgfjcwMC1lbnRyeVxuICogU1BEWCBsaXN0IChhbiB1bmZhbWlsaWFyIGlkIGlzIHdvcnRoIGEgaHVtYW4gbG9vaykuIENhc2Utc2Vuc2l0aXZlLCBleGFjdGx5XG4gKiBhcyBTUERYIHNwZWxscyB0aGVtLiBgTGljZW5zZVJlZi1Qcm9wcmlldGFyeWAgaXMgdGhlIFNQRFgtc2FuY3Rpb25lZFxuICogc3BlbGxpbmcgZm9yIFwibm90IG9wZW4gc291cmNlXCIuXG4gKi9cbmV4cG9ydCBjb25zdCBTUERYX0xJQ0VOU0VfSURTOiBSZWFkb25seVNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdBcGFjaGUtMi4wJywgJ01JVCcsICdNSVQtMCcsICdJU0MnLCAnMEJTRCcsICdVbmxpY2Vuc2UnLCAnQ0MwLTEuMCcsICdabGliJywgJ0JTTC0xLjAnLFxuICAnQlNELTItQ2xhdXNlJywgJ0JTRC0zLUNsYXVzZScsXG4gICdNUEwtMi4wJywgJ0VQTC0xLjAnLCAnRVBMLTIuMCcsXG4gICdMR1BMLTIuMS1vbmx5JywgJ0xHUEwtMi4xLW9yLWxhdGVyJywgJ0xHUEwtMy4wLW9ubHknLCAnTEdQTC0zLjAtb3ItbGF0ZXInLFxuICAnR1BMLTIuMC1vbmx5JywgJ0dQTC0yLjAtb3ItbGF0ZXInLCAnR1BMLTMuMC1vbmx5JywgJ0dQTC0zLjAtb3ItbGF0ZXInLFxuICAnQUdQTC0zLjAtb25seScsICdBR1BMLTMuMC1vci1sYXRlcicsXG4gICdDQy1CWS00LjAnLCAnQ0MtQlktU0EtNC4wJywgJ1B5dGhvbi0yLjAnLCAnUG9zdGdyZVNRTCcsICdBcnRpc3RpYy0yLjAnLFxuICAnQlVTTC0xLjEnLCAnRWxhc3RpYy0yLjAnLCAnU1NQTC0xLjAnLFxuICAnTGljZW5zZVJlZi1Qcm9wcmlldGFyeScsXG5dKTtcblxuLyoqIFRydWUgd2hlbiBgaWRgIGlzIGFuIGFjY2VwdGVkIFNQRFggaWRlbnRpZmllci4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0FsbG93ZWRTcGR4SWQoaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gU1BEWF9MSUNFTlNFX0lEUy5oYXMoaWQpO1xufVxuXG4vKipcbiAqIFVSTCBzaG9ydGVuZXJzIHJlZnVzZWQgaW4gcHJvamVjdCBsaW5rczogYSBzaG9ydGVuZXIgaGlkZXMgdGhlIGRlc3RpbmF0aW9uXG4gKiBmcm9tIHRoZSByZXZpZXdlciBhbmQgY2FuIGJlIHJlLXBvaW50ZWQgYWZ0ZXIgYXBwcm92YWwuXG4gKi9cbmV4cG9ydCBjb25zdCBVUkxfU0hPUlRFTkVSX0hPU1RTOiBSZWFkb25seVNldDxzdHJpbmc+ID0gbmV3IFNldChbXG4gICdiaXQubHknLCAndC5jbycsICd0aW55dXJsLmNvbScsICdnb28uZ2wnLCAnb3cubHknLCAnaXMuZ2QnLCAnYnVmZi5seScsICdyZWJyYW5kLmx5JywgJ2N1dHQubHknLCAnc2hvcnR1cmwuYXQnLFxuXSk7XG5cbi8qKlxuICogV2h5IGByYXdgIGlzIG5vdCBhbiBhY2NlcHRhYmxlIHByb2plY3QgVVJMLCBvciBgbnVsbGAgd2hlbiBpdCBpczogbXVzdCBwYXJzZSxcbiAqIGJlIGBodHRwczpgLCBjYXJyeSBubyB1c2VyaW5mbywgYW5kIG5vdCBwb2ludCBhdCBhIGtub3duIHNob3J0ZW5lciAodGhlIGhvc3RcbiAqIG9yIGFueSBwYXJlbnQgZG9tYWluIG9mIGl0KS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2plY3RVcmxQcm9ibGVtKHJhdzogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmIChyYXcubGVuZ3RoID4gUExVR0lOX1VSTF9NQVgpIHJldHVybiBgbXVzdCBiZSBhdCBtb3N0ICR7UExVR0lOX1VSTF9NQVh9IGNoYXJhY3RlcnNgO1xuICBsZXQgdXJsOiBVUkw7XG4gIHRyeSB7XG4gICAgdXJsID0gbmV3IFVSTChyYXcpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gJ211c3QgYmUgYW4gYWJzb2x1dGUgVVJMJztcbiAgfVxuICBpZiAodXJsLnByb3RvY29sICE9PSAnaHR0cHM6JykgcmV0dXJuICdtdXN0IHVzZSBodHRwcyc7XG4gIGlmICh1cmwudXNlcm5hbWUgfHwgdXJsLnBhc3N3b3JkKSByZXR1cm4gJ211c3Qgbm90IGVtYmVkIGNyZWRlbnRpYWxzJztcbiAgY29uc3QgaG9zdCA9IHVybC5ob3N0bmFtZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xcLiQvLCAnJyk7XG4gIGNvbnN0IGxhYmVscyA9IGhvc3Quc3BsaXQoJy4nKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsYWJlbHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgaWYgKFVSTF9TSE9SVEVORVJfSE9TVFMuaGFzKGxhYmVscy5zbGljZShpKS5qb2luKCcuJykpKSByZXR1cm4gYG11c3Qgbm90IHVzZSBhIFVSTCBzaG9ydGVuZXIgKCR7aG9zdH0pYDtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqIEN1cmF0ZWQgaWNvbiAvIGJhZGdlIGtleTogYSBmaWxlIG5hbWUgdW5kZXIgYGRlcGxveS9wbHVnaW5zL19pY29ucy9gLiAqL1xuZXhwb3J0IGNvbnN0IElDT05fS0VZX1BBVFRFUk4gPSAvXlthLXowLTktXSskLztcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZpZWxkIHNjaGVtYXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmNvbnN0IHV0ZjhCeXRlcyA9ICh2OiBzdHJpbmcpOiBudW1iZXIgPT4gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHYpLmxlbmd0aDtcblxuLyoqIGBodHRwczpgIHByb2plY3QgVVJMLCBubyBzaG9ydGVuZXJzLCBubyBjcmVkZW50aWFscy4gKi9cbmV4cG9ydCBjb25zdCBQcm9qZWN0VXJsU2NoZW1hID0gei5zdHJpbmcoKS5zdXBlclJlZmluZSgodiwgY3R4KSA9PiB7XG4gIGNvbnN0IHByb2JsZW0gPSBwcm9qZWN0VXJsUHJvYmxlbSh2KTtcbiAgaWYgKHByb2JsZW0pIGN0eC5hZGRJc3N1ZSh7IGNvZGU6ICdjdXN0b20nLCBtZXNzYWdlOiBwcm9ibGVtIH0pO1xufSk7XG5cbi8qKiBDdXJhdGVkIGljb24gLyBiYWRnZSBrZXkuICovXG5leHBvcnQgY29uc3QgSWNvbktleVNjaGVtYSA9IHouc3RyaW5nKCkubWF4KDY0KS5yZWdleChJQ09OX0tFWV9QQVRURVJOLCAnbXVzdCBtYXRjaCBeW2EtejAtOS1dKyQnKTtcblxuLyoqXG4gKiBJY29uIGFzIHN0b3JlZDogYHsga2V5LCBiYWRnZT8gfWAuIEEgYmFyZSBrZXkgc3RyaW5nIGlzIGFjY2VwdGVkIGFuZFxuICogbm9ybWFsaXplZCBmaXJzdCwgc28gYSBiYWQga2V5IHJlcG9ydHMgdGhlIGtleSBydWxlIChub3QgYSBiYXJlIHVuaW9uIG1pc3MpLlxuICovXG5leHBvcnQgY29uc3QgUGx1Z2luSWNvblNjaGVtYSA9IHoucHJlcHJvY2VzcyhcbiAgKHYpID0+ICh0eXBlb2YgdiA9PT0gJ3N0cmluZycgPyB7IGtleTogdiB9IDogdiksXG4gIHoub2JqZWN0KHsga2V5OiBJY29uS2V5U2NoZW1hLCBiYWRnZTogSWNvbktleVNjaGVtYS5vcHRpb25hbCgpIH0pLnN0cmljdCgpLFxuKTtcblxuLyoqIEEgbm9uLWVtcHR5IHNpbmdsZS1saW5lLWlzaCB0ZXh0IGZpZWxkIHdpdGggYSBjaGFyYWN0ZXIgY2FwLiAqL1xuY29uc3QgdGV4dCA9IChtYXg6IG51bWJlcikgPT4gei5zdHJpbmcoKS50cmltKCkubWluKDEsICdtdXN0IG5vdCBiZSBlbXB0eScpLm1heChtYXgsIGBtdXN0IGJlIGF0IG1vc3QgJHttYXh9IGNoYXJhY3RlcnNgKTtcblxuLyoqXG4gKiBQZXItZmllbGQgdmFsaWRhdG9ycyBmb3IgZXZlcnkgREVTQ1JJUFRJVkUgZmllbGQuIEEgZGV0ZWN0ZWQgdmFsdWVcbiAqIGFuZCBhIHVzZXItdHlwZWQgdmFsdWUgYm90aCBnbyB0aHJvdWdoIHRoZXNlLlxuICovXG5leHBvcnQgY29uc3QgUExVR0lOX0NBVEFMT0dfRklFTERfU0NIRU1BUyA9IHtcbiAgc3VtbWFyeTogdGV4dChQTFVHSU5fU1VNTUFSWV9NQVgpLFxuICBkZXNjcmlwdGlvbjogdGV4dChQTFVHSU5fREVTQ1JJUFRJT05fTUFYKSxcbiAgZGlzcGxheU5hbWU6IHRleHQoUExVR0lOX0RJU1BMQVlfTkFNRV9NQVgpLFxuICBjYXRlZ29yeTogei5lbnVtKFBMVUdJTl9DQVRFR09SSUVTLCB7IG1lc3NhZ2U6IGBtdXN0IGJlIG9uZSBvZjogJHtQTFVHSU5fQ0FURUdPUklFUy5qb2luKCcsICcpfWAgfSksXG4gIGtleXdvcmRzOiB6LmFycmF5KFxuICAgIHouc3RyaW5nKCkudHJpbSgpLm1pbigxLCAna2V5d29yZHMgbXVzdCBub3QgYmUgZW1wdHknKS5tYXgoUExVR0lOX0tFWVdPUkRfTUFYX0xFTkdUSCwgYGVhY2gga2V5d29yZCBtdXN0IGJlIGF0IG1vc3QgJHtQTFVHSU5fS0VZV09SRF9NQVhfTEVOR1RIfSBjaGFyYWN0ZXJzYCksXG4gICkubWF4KFBMVUdJTl9LRVlXT1JEU19NQVgsIGBhdCBtb3N0ICR7UExVR0lOX0tFWVdPUkRTX01BWH0ga2V5d29yZHNgKSxcbiAgbGljZW5zZTogei5zdHJpbmcoKS5yZWZpbmUoaXNBbGxvd2VkU3BkeElkLCB7IG1lc3NhZ2U6ICdtdXN0IGJlIGEgc3VwcG9ydGVkIFNQRFggbGljZW5zZSBpZGVudGlmaWVyIChlLmcuIEFwYWNoZS0yLjAsIE1JVCknIH0pLFxuICBob21lcGFnZVVybDogUHJvamVjdFVybFNjaGVtYSxcbiAgc291cmNlVXJsOiBQcm9qZWN0VXJsU2NoZW1hLFxuICBkb2N1bWVudGF0aW9uVXJsOiBQcm9qZWN0VXJsU2NoZW1hLFxuICBpY29uOiBQbHVnaW5JY29uU2NoZW1hLFxuICBjaGFuZ2Vsb2c6IHouc3RyaW5nKCkucmVmaW5lKCh2KSA9PiB1dGY4Qnl0ZXModikgPD0gUExVR0lOX0NIQU5HRUxPR19NQVhfQllURVMsIHtcbiAgICBtZXNzYWdlOiBgbXVzdCBiZSBhdCBtb3N0ICR7UExVR0lOX0NIQU5HRUxPR19NQVhfQllURVN9IGJ5dGVzYCxcbiAgfSksXG4gIHJlYWRtZTogei5zdHJpbmcoKS5yZWZpbmUoKHYpID0+IHV0ZjhCeXRlcyh2KSA8PSBQTFVHSU5fUkVBRE1FX01BWF9CWVRFUywge1xuICAgIG1lc3NhZ2U6IGBtdXN0IGJlIGF0IG1vc3QgJHtQTFVHSU5fUkVBRE1FX01BWF9CWVRFU30gYnl0ZXNgLFxuICB9KSxcbn0gYXMgY29uc3Qgc2F0aXNmaWVzIFJlY29yZDxQbHVnaW5DYXRhbG9nRmllbGQsIHouWm9kVHlwZT47XG5cbi8qKlxuICogQ2F0YWxvZyBFRElUUyAodGhlIHVwbG9hZCdzIGBtZXRhZGF0YWAgcGFydCwgYSBgUFVUIC9wbHVnaW5zLzppZGAgYm9keSdzXG4gKiBkZXNjcmlwdGl2ZSBrZXlzLCB0aGUgQ0xJJ3MgYC0tbWV0YWRhdGFgIGZpbGUpLiBgbnVsbGAgY2xlYXJzIGEgZmllbGQuXG4gKiBTdHJpY3Q6IGFuIHVua25vd24ga2V5IGlzIGFuIGVycm9yLCBuZXZlciBzaWxlbnRseSBkcm9wcGVkLlxuICovXG5leHBvcnQgY29uc3QgUGx1Z2luQ2F0YWxvZ0VkaXRzU2NoZW1hID0gei5vYmplY3QoXG4gIE9iamVjdC5mcm9tRW50cmllcyhQTFVHSU5fQ0FUQUxPR19GSUVMRFMubWFwKChmKSA9PiBbZiwgUExVR0lOX0NBVEFMT0dfRklFTERfU0NIRU1BU1tmXS5udWxsYWJsZSgpLm9wdGlvbmFsKCldKSkgYXMge1xuICAgIFtLIGluIFBsdWdpbkNhdGFsb2dGaWVsZF06IHouWm9kT3B0aW9uYWw8ei5ab2ROdWxsYWJsZTx0eXBlb2YgUExVR0lOX0NBVEFMT0dfRklFTERfU0NIRU1BU1tLXT4+O1xuICB9LFxuKS5zdHJpY3QoKTtcbmV4cG9ydCB0eXBlIFBsdWdpbkNhdGFsb2dFZGl0cyA9IHouaW5mZXI8dHlwZW9mIFBsdWdpbkNhdGFsb2dFZGl0c1NjaGVtYT47XG5cbi8qKlxuICogVmFsaWRhdGUgb25lIGZpZWxkJ3MgdmFsdWUuIFJldHVybnMgdGhlIG5vcm1hbGl6ZWQgdmFsdWUgKHRyaW1tZWQgdGV4dCwgYW5cbiAqIGljb24gc3RyaW5nIGFzIGB7IGtleSB9YCkgb3IgdGhlIHJlYXNvbiBpdCB3YXMgcmVmdXNlZCDigJQgc28gYSBkZXRlY3RlZCB2YWx1ZVxuICogdGhhdCBmYWlscyBpcyBzaG93biBCTEFOSyBXSVRIIFRIRSBSRUFTT04gcmF0aGVyIHRoYW4gc2lsZW50bHkgZHJvcHBlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQ2F0YWxvZ0ZpZWxkPEYgZXh0ZW5kcyBQbHVnaW5DYXRhbG9nRmllbGQ+KFxuICBmaWVsZDogRixcbiAgdmFsdWU6IHVua25vd24sXG4pOiB7IG9rOiB0cnVlOyB2YWx1ZTogei5pbmZlcjx0eXBlb2YgUExVR0lOX0NBVEFMT0dfRklFTERfU0NIRU1BU1tGXT4gfSB8IHsgb2s6IGZhbHNlOyBlcnJvcjogc3RyaW5nIH0ge1xuICBjb25zdCByZXN1bHQgPSAoUExVR0lOX0NBVEFMT0dfRklFTERfU0NIRU1BU1tmaWVsZF0gYXMgei5ab2RUeXBlKS5zYWZlUGFyc2UodmFsdWUpO1xuICBpZiAocmVzdWx0LnN1Y2Nlc3MpIHJldHVybiB7IG9rOiB0cnVlLCB2YWx1ZTogcmVzdWx0LmRhdGEgYXMgei5pbmZlcjx0eXBlb2YgUExVR0lOX0NBVEFMT0dfRklFTERfU0NIRU1BU1tGXT4gfTtcbiAgcmV0dXJuIHsgb2s6IGZhbHNlLCBlcnJvcjogcmVzdWx0LmVycm9yLmlzc3Vlcy5tYXAoKGkpID0+IGkubWVzc2FnZSkuam9pbignOyAnKSB9O1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRXhlY3V0aW9uIGNvbnRyYWN0IChuZXZlciBlZGl0YWJsZSlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogS2V5cyB0aGF0IGRlc2NyaWJlIFdIQVQgUlVOUy4gVGhleSBjb21lIG9ubHkgZnJvbSB0aGUgc3BlYzogY2hhbmdpbmcgb25lIGlzIGFcbiAqIG5ldyB2ZXJzaW9uLCBhIG5ldyBkaWdlc3QgYW5kIGEgcmV2aWV3IGRpZmYuIEEgbWV0YWRhdGEgZWRpdFxuICogbmFtaW5nIGFueSBvZiB0aGVtIGlzIHJlZnVzZWQgd2l0aCA0MDAg4oCUIHRoZSByZWZ1c2FsIGlzIHRoZSBBUEkncywgbm90IGp1c3RcbiAqIHRoZSBVSSdzLiBgbmFtZWAvYHZlcnNpb25gIGtleSB0aGUgcHVzaGVkIGltYWdlIGFuZCBhcmUgaW1tdXRhYmxlIHRvby5cbiAqL1xuZXhwb3J0IGNvbnN0IFBMVUdJTl9DT05UUkFDVF9GSUVMRFMgPSBbXG4gICduYW1lJywgJ3ZlcnNpb24nLFxuICAnY29tbWFuZHMnLCAnaW5zdGFsbENvbW1hbmRzJywgJ2VudicsICdidWlsZEFyZ3MnLCAnc2VjcmV0cycsXG4gICdtZXRhZGF0YScsICdyZXF1aXJlZE1ldGFkYXRhJywgJ3JlcXVpcmVkVmFycycsICdtZXRhZGF0YVR5cGVzJywgJ3ZhcnNUeXBlcycsXG4gICduZXR3b3JrJywgJ25ldHdvcmtFZ3Jlc3MnLCAnY29tcHV0ZVR5cGUnLCAncGx1Z2luVHlwZScsICdwcmltYXJ5T3V0cHV0RGlyZWN0b3J5JyxcbiAgJ3Ntb2tlVGVzdCcsICd0aW1lb3V0JywgJ2ZhaWx1cmVCZWhhdmlvcicsICdkb2NrZXJmaWxlJywgJ2J1aWxkVHlwZScsXG5dIGFzIGNvbnN0O1xuXG4vKiogVGhlIGV4ZWN1dGlvbi1jb250cmFjdCBrZXlzIHByZXNlbnQgaW4gYHBheWxvYWRgIChlbXB0eSB3aGVuIG5vbmUpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRDb250cmFjdEtleXMocGF5bG9hZDogdW5rbm93bik6IHN0cmluZ1tdIHtcbiAgaWYgKCFwYXlsb2FkIHx8IHR5cGVvZiBwYXlsb2FkICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHBheWxvYWQpKSByZXR1cm4gW107XG4gIHJldHVybiBQTFVHSU5fQ09OVFJBQ1RfRklFTERTLmZpbHRlcigoaykgPT4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBheWxvYWQsIGspKTtcbn1cblxuLyoqIFRoZSBtZXNzYWdlIGEgY29udHJhY3Qta2V5IHJlZnVzYWwgY2Fycmllcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb250cmFjdEtleXNNZXNzYWdlKGtleXM6IHJlYWRvbmx5IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBUaGVzZSBmaWVsZHMgZGVmaW5lIHdoYXQgdGhlIHBsdWdpbiBydW5zIGFuZCBjYW4gb25seSBjaGFuZ2UgYnkgdXBsb2FkaW5nIGEgbmV3IHZlcnNpb246ICR7a2V5cy5qb2luKCcsICcpfWA7XG59XG4iXX0=
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWNhdGFsb2ctbWV0YWRhdGEuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3BsdWdpbi1jYXRhbG9nLW1ldGFkYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ3hCLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsaUJBQWlCLEVBQ2pCLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6QixtQkFBbUIsRUFDbkIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQixjQUFjLEdBRWYsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBd0IsSUFBSSxHQUFHLENBQUM7SUFDM0QsWUFBWSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTO0lBQ3RGLGNBQWMsRUFBRSxjQUFjO0lBQzlCLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUztJQUMvQixlQUFlLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLG1CQUFtQjtJQUMxRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGtCQUFrQjtJQUN0RSxlQUFlLEVBQUUsbUJBQW1CO0lBQ3BDLFdBQVcsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxjQUFjO0lBQ3ZFLFVBQVUsRUFBRSxhQUFhLEVBQUUsVUFBVTtJQUNyQyx3QkFBd0I7Q0FDekIsQ0FBQyxDQUFDO0FBRUgscURBQXFEO0FBQ3JELE1BQU0sVUFBVSxlQUFlLENBQUMsRUFBVTtJQUN4QyxPQUFPLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMs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dHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFBsdWdpbiBDQVRBTE9HIG1ldGFkYXRhOiB0aGUgZGVzY3JpcHRpdmUgZmllbGRzIGEgcGx1Z2luIHZlcnNpb24gc2hvd3MgaW4gdGhlXG4gKiBjYXRhbG9nLCBkZXRlY3RlZCBmcm9tIHRoZSBwYWNrYWdlIGFuZCB0aGVuIGFjY2VwdGVkIG9yIGVkaXRlZCBieSB0aGUgdXNlclxuICogKGRvY3MvcGx1Z2luLXB1Ymxpc2hpbmcubWQpLlxuICpcbiAqIE9ORSB2YWxpZGF0b3IgZm9yIGJvdGggcGF0aHM6IGEgdmFsdWUgZGV0ZWN0ZWQgZnJvbSB0aGUgcGFja2FnZSAoc3BlYyxcbiAqIFJFQURNRSwgdGhlIHBsdWdpbidzIG93biBEb2NrZXJmaWxlIGxhYmVscykgYW5kIGEgdmFsdWUgdHlwZWQgaW50byBhIGZvcm0gb3JcbiAqIHNlbnQgYnkgdGhlIENMSSBwYXNzIHRoZSBzYW1lIHJ1bGVzLiBTaGFyZWQgZnJvbSBhcGktY29yZSBzbyB0aGUgcGx1Z2luXG4gKiBzZXJ2aWNlLCB0aGUgZnJvbnRlbmQgYW5kIHRoZSBDTEkgY2FuJ3QgZHJpZnQuXG4gKlxuICogT25seSBERVNDUklQVElWRSBmaWVsZHMgbGl2ZSBoZXJlLiBFeGVjdXRpb24tY29udHJhY3QgZmllbGRzIChjb21tYW5kcywgZW52LFxuICogc2VjcmV0cywgY29tcHV0ZSB0eXBlLCDigKYpIGFyZSBzcGVjLW9ubHkg4oCUIGNoYW5naW5nIG9uZSBpcyBhIG5ldyB2ZXJzaW9uIHdpdGggYVxuICogbmV3IGRpZ2VzdCDigJQgYW5kIGFuIGVkaXQgcGF5bG9hZCBuYW1pbmcgb25lIGlzIHJlZnVzZWRcbiAqICh7QGxpbmsgZmluZENvbnRyYWN0S2V5c30pLlxuICovXG5cbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuaW1wb3J0IHtcbiAgUExVR0lOX0NBVEFMT0dfRklFTERTLFxuICBQTFVHSU5fQ0FURUdPUklFUyxcbiAgUExVR0lOX0NIQU5HRUxPR19NQVhfQllURVMsXG4gIFBMVUdJTl9ERVNDUklQVElPTl9NQVgsXG4gIFBMVUdJTl9ESVNQTEFZX05BTUVfTUFYLFxuICBQTFVHSU5fS0VZV09SRF9NQVhfTEVOR1RILFxuICBQTFVHSU5fS0VZV09SRFNfTUFYLFxuICBQTFVHSU5fUkVBRE1FX01BWF9CWVRFUyxcbiAgUExVR0lOX1NVTU1BUllfTUFYLFxuICBQTFVHSU5fVVJMX01BWCxcbiAgdHlwZSBQbHVnaW5DYXRhbG9nRmllbGQsXG59IGZyb20gJy4uL3R5cGVzL3BsdWdpbi1jYXRhbG9nLmpzJztcblxuLyoqXG4gKiBBY2NlcHRlZCBTUERYIGxpY2Vuc2UgaWRlbnRpZmllcnMg4oCUIGEgY29tcGFjdCBhbGxvd2xpc3Qgb2YgdGhlIGlkcyB0aGF0XG4gKiBjb3ZlciBlZmZlY3RpdmVseSBldmVyeSBwdWJsaXNoZWQgcGx1Z2luLCByYXRoZXIgdGhhbiB0aGUgZnVsbCB+NzAwLWVudHJ5XG4gKiBTUERYIGxpc3QgKGFuIHVuZmFtaWxpYXIgaWQgaXMgd29ydGggYSBodW1hbiBsb29rKS4gQ2FzZS1zZW5zaXRpdmUsIGV4YWN0bHlcbiAqIGFzIFNQRFggc3BlbGxzIHRoZW0uIGBMaWNlbnNlUmVmLVByb3ByaWV0YXJ5YCBpcyB0aGUgU1BEWC1zYW5jdGlvbmVkXG4gKiBzcGVsbGluZyBmb3IgXCJub3Qgb3BlbiBzb3VyY2VcIi5cbiAqL1xuZXhwb3J0IGNvbnN0IFNQRFhfTElDRU5TRV9JRFM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ0FwYWNoZS0yLjAnLCAnTUlUJywgJ01JVC0wJywgJ0lTQycsICcwQlNEJywgJ1VubGljZW5zZScsICdDQzAtMS4wJywgJ1psaWInLCAnQlNMLTEuMCcsXG4gICdCU0QtMi1DbGF1c2UnLCAnQlNELTMtQ2xhdXNlJyxcbiAgJ01QTC0yLjAnLCAnRVBMLTEuMCcsICdFUEwtMi4wJyxcbiAgJ0xHUEwtMi4xLW9ubHknLCAnTEdQTC0yLjEtb3ItbGF0ZXInLCAnTEdQTC0zLjAtb25seScsICdMR1BMLTMuMC1vci1sYXRlcicsXG4gICdHUEwtMi4wLW9ubHknLCAnR1BMLTIuMC1vci1sYXRlcicsICdHUEwtMy4wLW9ubHknLCAnR1BMLTMuMC1vci1sYXRlcicsXG4gICdBR1BMLTMuMC1vbmx5JywgJ0FHUEwtMy4wLW9yLWxhdGVyJyxcbiAgJ0NDLUJZLTQuMCcsICdDQy1CWS1TQS00LjAnLCAnUHl0aG9uLTIuMCcsICdQb3N0Z3JlU1FMJywgJ0FydGlzdGljLTIuMCcsXG4gICdCVVNMLTEuMScsICdFbGFzdGljLTIuMCcsICdTU1BMLTEuMCcsXG4gICdMaWNlbnNlUmVmLVByb3ByaWV0YXJ5Jyxcbl0pO1xuXG4vKiogVHJ1ZSB3aGVuIGBpZGAgaXMgYW4gYWNjZXB0ZWQgU1BEWCBpZGVudGlmaWVyLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQWxsb3dlZFNwZHhJZChpZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBTUERYX0xJQ0VOU0VfSURTLmhhcyhpZCk7XG59XG5cbi8qKlxuICogVVJMIHNob3J0ZW5lcnMgcmVmdXNlZCBpbiBwcm9qZWN0IGxpbmtzOiBhIHNob3J0ZW5lciBoaWRlcyB0aGUgZGVzdGluYXRpb25cbiAqIGZyb20gdGhlIHJldmlld2VyIGFuZCBjYW4gYmUgcmUtcG9pbnRlZCBhZnRlciBhcHByb3ZhbC5cbiAqL1xuZXhwb3J0IGNvbnN0IFVSTF9TSE9SVEVORVJfSE9TVFM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0KFtcbiAgJ2JpdC5seScsICd0LmNvJywgJ3Rpbnl1cmwuY29tJywgJ2dvby5nbCcsICdvdy5seScsICdpcy5nZCcsICdidWZmLmx5JywgJ3JlYnJhbmQubHknLCAnY3V0dC5seScsICdzaG9ydHVybC5hdCcsXG5dKTtcblxuLyoqXG4gKiBXaHkgYHJhd2AgaXMgbm90IGFuIGFjY2VwdGFibGUgcHJvamVjdCBVUkwsIG9yIGBudWxsYCB3aGVuIGl0IGlzOiBtdXN0IHBhcnNlLFxuICogYmUgYGh0dHBzOmAsIGNhcnJ5IG5vIHVzZXJpbmZvLCBhbmQgbm90IHBvaW50IGF0IGEga25vd24gc2hvcnRlbmVyICh0aGUgaG9zdFxuICogb3IgYW55IHBhcmVudCBkb21haW4gb2YgaXQpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvamVjdFVybFByb2JsZW0ocmF3OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKHJhdy5sZW5ndGggPiBQTFVHSU5fVVJMX01BWCkgcmV0dXJuIGBtdXN0IGJlIGF0IG1vc3QgJHtQTFVHSU5fVVJMX01BWH0gY2hhcmFjdGVyc2A7XG4gIGxldCB1cmw6IFVSTDtcbiAgdHJ5IHtcbiAgICB1cmwgPSBuZXcgVVJMKHJhdyk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiAnbXVzdCBiZSBhbiBhYnNvbHV0ZSBVUkwnO1xuICB9XG4gIGlmICh1cmwucHJvdG9jb2wgIT09ICdodHRwczonKSByZXR1cm4gJ211c3QgdXNlIGh0dHBzJztcbiAgaWYgKHVybC51c2VybmFtZSB8fCB1cmwucGFzc3dvcmQpIHJldHVybiAnbXVzdCBub3QgZW1iZWQgY3JlZGVudGlhbHMnO1xuICBjb25zdCBob3N0ID0gdXJsLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFwuJC8sICcnKTtcbiAgY29uc3QgbGFiZWxzID0gaG9zdC5zcGxpdCgnLicpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxhYmVscy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICBpZiAoVVJMX1NIT1JURU5FUl9IT1NUUy5oYXMobGFiZWxzLnNsaWNlKGkpLmpvaW4oJy4nKSkpIHJldHVybiBgbXVzdCBub3QgdXNlIGEgVVJMIHNob3J0ZW5lciAoJHtob3N0fSlgO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKiogQ3VyYXRlZCBpY29uIC8gYmFkZ2Uga2V5OiBhIGZpbGUgbmFtZSB1bmRlciBgZGVwbG95L3BsdWdpbnMvX2ljb25zL2AuICovXG5leHBvcnQgY29uc3QgSUNPTl9LRVlfUEFUVEVSTiA9IC9eW2EtejAtOS1dKyQvO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRmllbGQgc2NoZW1hc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuY29uc3QgdXRmOEJ5dGVzID0gKHY6IHN0cmluZyk6IG51bWJlciA9PiBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodikubGVuZ3RoO1xuXG4vKiogYGh0dHBzOmAgcHJvamVjdCBVUkwsIG5vIHNob3J0ZW5lcnMsIG5vIGNyZWRlbnRpYWxzLiAqL1xuZXhwb3J0IGNvbnN0IFByb2plY3RVcmxTY2hlbWEgPSB6LnN0cmluZygpLnN1cGVyUmVmaW5lKCh2LCBjdHgpID0+IHtcbiAgY29uc3QgcHJvYmxlbSA9IHByb2plY3RVcmxQcm9ibGVtKHYpO1xuICBpZiAocHJvYmxlbSkgY3R4LmFkZElzc3VlKHsgY29kZTogJ2N1c3RvbScsIG1lc3NhZ2U6IHByb2JsZW0gfSk7XG59KTtcblxuLyoqIEN1cmF0ZWQgaWNvbiAvIGJhZGdlIGtleS4gKi9cbmV4cG9ydCBjb25zdCBJY29uS2V5U2NoZW1hID0gei5zdHJpbmcoKS5tYXgoNjQpLnJlZ2V4KElDT05fS0VZX1BBVFRFUk4sICdtdXN0IG1hdGNoIF5bYS16MC05LV0rJCcpO1xuXG4vKipcbiAqIEljb24gYXMgc3RvcmVkOiBgeyBrZXksIGJhZGdlPyB9YC4gQSBiYXJlIGtleSBzdHJpbmcgaXMgYWNjZXB0ZWQgYW5kXG4gKiBub3JtYWxpemVkIGZpcnN0LCBzbyBhIGJhZCBrZXkgcmVwb3J0cyB0aGUga2V5IHJ1bGUgKG5vdCBhIGJhcmUgdW5pb24gbWlzcykuXG4gKi9cbmV4cG9ydCBjb25zdCBQbHVnaW5JY29uU2NoZW1hID0gei5wcmVwcm9jZXNzKFxuICAodikgPT4gKHR5cGVvZiB2ID09PSAnc3RyaW5nJyA/IHsga2V5OiB2IH0gOiB2KSxcbiAgei5vYmplY3QoeyBrZXk6IEljb25LZXlTY2hlbWEsIGJhZGdlOiBJY29uS2V5U2NoZW1hLm9wdGlvbmFsKCkgfSkuc3RyaWN0KCksXG4pO1xuXG4vKiogQSBub24tZW1wdHkgc2luZ2xlLWxpbmUtaXNoIHRleHQgZmllbGQgd2l0aCBhIGNoYXJhY3RlciBjYXAuICovXG5jb25zdCB0ZXh0ID0gKG1heDogbnVtYmVyKSA9PiB6LnN0cmluZygpLnRyaW0oKS5taW4oMSwgJ211c3Qgbm90IGJlIGVtcHR5JykubWF4KG1heCwgYG11c3QgYmUgYXQgbW9zdCAke21heH0gY2hhcmFjdGVyc2ApO1xuXG4vKipcbiAqIFBlci1maWVsZCB2YWxpZGF0b3JzIGZvciBldmVyeSBERVNDUklQVElWRSBmaWVsZC4gQSBkZXRlY3RlZCB2YWx1ZVxuICogYW5kIGEgdXNlci10eXBlZCB2YWx1ZSBib3RoIGdvIHRocm91Z2ggdGhlc2UuXG4gKi9cbmV4cG9ydCBjb25zdCBQTFVHSU5fQ0FUQUxPR19GSUVMRF9TQ0hFTUFTID0ge1xuICBzdW1tYXJ5OiB0ZXh0KFBMVUdJTl9TVU1NQVJZX01BWCksXG4gIGRlc2NyaXB0aW9uOiB0ZXh0KFBMVUdJTl9ERVNDUklQVElPTl9NQVgpLFxuICBkaXNwbGF5TmFtZTogdGV4dChQTFVHSU5fRElTUExBWV9OQU1FX01BWCksXG4gIGNhdGVnb3J5OiB6LmVudW0oUExVR0lOX0NBVEVHT1JJRVMsIHsgbWVzc2FnZTogYG11c3QgYmUgb25lIG9mOiAke1BMVUdJTl9DQVRFR09SSUVTLmpvaW4oJywgJyl9YCB9KSxcbiAga2V5d29yZHM6IHouYXJyYXkoXG4gICAgei5zdHJpbmcoKS50cmltKCkubWluKDEsICdrZXl3b3JkcyBtdXN0IG5vdCBiZSBlbXB0eScpLm1heChQTFVHSU5fS0VZV09SRF9NQVhfTEVOR1RILCBgZWFjaCBrZXl3b3JkIG11c3QgYmUgYXQgbW9zdCAke1BMVUdJTl9LRVlXT1JEX01BWF9MRU5HVEh9IGNoYXJhY3RlcnNgKSxcbiAgKS5tYXgoUExVR0lOX0tFWVdPUkRTX01BWCwgYGF0IG1vc3QgJHtQTFVHSU5fS0VZV09SRFNfTUFYfSBrZXl3b3Jkc2ApLFxuICBsaWNlbnNlOiB6LnN0cmluZygpLnJlZmluZShpc0FsbG93ZWRTcGR4SWQsIHsgbWVzc2FnZTogJ211c3QgYmUgYSBzdXBwb3J0ZWQgU1BEWCBsaWNlbnNlIGlkZW50aWZpZXIgKGUuZy4gQXBhY2hlLTIuMCwgTUlUKScgfSksXG4gIGhvbWVwYWdlVXJsOiBQcm9qZWN0VXJsU2NoZW1hLFxuICBzb3VyY2VVcmw6IFByb2plY3RVcmxTY2hlbWEsXG4gIGRvY3VtZW50YXRpb25Vcmw6IFByb2plY3RVcmxTY2hlbWEsXG4gIGljb246IFBsdWdpbkljb25TY2hlbWEsXG4gIGNoYW5nZWxvZzogei5zdHJpbmcoKS5yZWZpbmUoKHYpID0+IHV0ZjhCeXRlcyh2KSA8PSBQTFVHSU5fQ0hBTkdFTE9HX01BWF9CWVRFUywge1xuICAgIG1lc3NhZ2U6IGBtdXN0IGJlIGF0IG1vc3QgJHtQTFVHSU5fQ0hBTkdFTE9HX01BWF9CWVRFU30gYnl0ZXNgLFxuICB9KSxcbiAgcmVhZG1lOiB6LnN0cmluZygpLnJlZmluZSgodikgPT4gdXRmOEJ5dGVzKHYpIDw9IFBMVUdJTl9SRUFETUVfTUFYX0JZVEVTLCB7XG4gICAgbWVzc2FnZTogYG11c3QgYmUgYXQgbW9zdCAke1BMVUdJTl9SRUFETUVfTUFYX0JZVEVTfSBieXRlc2AsXG4gIH0pLFxufSBhcyBjb25zdCBzYXRpc2ZpZXMgUmVjb3JkPFBsdWdpbkNhdGFsb2dGaWVsZCwgei5ab2RUeXBlPjtcblxuLyoqXG4gKiBDYXRhbG9nIEVESVRTICh0aGUgdXBsb2FkJ3MgYG1ldGFkYXRhYCBwYXJ0LCBhIGBQVVQgL3BsdWdpbnMvOmlkYCBib2R5J3NcbiAqIGRlc2NyaXB0aXZlIGtleXMsIHRoZSBDTEkncyBgLS1tZXRhZGF0YWAgZmlsZSkuIGBudWxsYCBjbGVhcnMgYSBmaWVsZC5cbiAqIFN0cmljdDogYW4gdW5rbm93biBrZXkgaXMgYW4gZXJyb3IsIG5ldmVyIHNpbGVudGx5IGRyb3BwZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBQbHVnaW5DYXRhbG9nRWRpdHNTY2hlbWEgPSB6Lm9iamVjdChcbiAgT2JqZWN0LmZyb21FbnRyaWVzKFBMVUdJTl9DQVRBTE9HX0ZJRUxEUy5tYXAoKGYpID0+IFtmLCBQTFVHSU5fQ0FUQUxPR19GSUVMRF9TQ0hFTUFTW2ZdLm51bGxhYmxlKCkub3B0aW9uYWwoKV0pKSBhcyB7XG4gICAgW0sgaW4gUGx1Z2luQ2F0YWxvZ0ZpZWxkXTogei5ab2RPcHRpb25hbDx6LlpvZE51bGxhYmxlPHR5cGVvZiBQTFVHSU5fQ0FUQUxPR19GSUVMRF9TQ0hFTUFTW0tdPj47XG4gIH0sXG4pLnN0cmljdCgpO1xuZXhwb3J0IHR5cGUgUGx1Z2luQ2F0YWxvZ0VkaXRzID0gei5pbmZlcjx0eXBlb2YgUGx1Z2luQ2F0YWxvZ0VkaXRzU2NoZW1hPjtcblxuLyoqXG4gKiBWYWxpZGF0ZSBvbmUgZmllbGQncyB2YWx1ZS4gUmV0dXJucyB0aGUgbm9ybWFsaXplZCB2YWx1ZSAodHJpbW1lZCB0ZXh0LCBhblxuICogaWNvbiBzdHJpbmcgYXMgYHsga2V5IH1gKSBvciB0aGUgcmVhc29uIGl0IHdhcyByZWZ1c2VkIOKAlCBzbyBhIGRldGVjdGVkIHZhbHVlXG4gKiB0aGF0IGZhaWxzIGlzIHNob3duIEJMQU5LIFdJVEggVEhFIFJFQVNPTiByYXRoZXIgdGhhbiBzaWxlbnRseSBkcm9wcGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVDYXRhbG9nRmllbGQ8RiBleHRlbmRzIFBsdWdpbkNhdGFsb2dGaWVsZD4oXG4gIGZpZWxkOiBGLFxuICB2YWx1ZTogdW5rbm93bixcbik6IHsgb2s6IHRydWU7IHZhbHVlOiB6LmluZmVyPHR5cGVvZiBQTFVHSU5fQ0FUQUxPR19GSUVMRF9TQ0hFTUFTW0ZdPiB9IHwgeyBvazogZmFsc2U7IGVycm9yOiBzdHJpbmcgfSB7XG4gIGNvbnN0IHJlc3VsdCA9IChQTFVHSU5fQ0FUQUxPR19GSUVMRF9TQ0hFTUFTW2ZpZWxkXSBhcyB6LlpvZFR5cGUpLnNhZmVQYXJzZSh2YWx1ZSk7XG4gIGlmIChyZXN1bHQuc3VjY2VzcykgcmV0dXJuIHsgb2s6IHRydWUsIHZhbHVlOiByZXN1bHQuZGF0YSBhcyB6LmluZmVyPHR5cGVvZiBQTFVHSU5fQ0FUQUxPR19GSUVMRF9TQ0hFTUFTW0ZdPiB9O1xuICByZXR1cm4geyBvazogZmFsc2UsIGVycm9yOiByZXN1bHQuZXJyb3IuaXNzdWVzLm1hcCgoaSkgPT4gaS5tZXNzYWdlKS5qb2luKCc7ICcpIH07XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFeGVjdXRpb24gY29udHJhY3QgKG5ldmVyIGVkaXRhYmxlKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBLZXlzIHRoYXQgZGVzY3JpYmUgV0hBVCBSVU5TLiBUaGV5IGNvbWUgb25seSBmcm9tIHRoZSBzcGVjOiBjaGFuZ2luZyBvbmUgaXMgYVxuICogbmV3IHZlcnNpb24sIGEgbmV3IGRpZ2VzdCBhbmQgYSByZXZpZXcgZGlmZi4gQSBtZXRhZGF0YSBlZGl0XG4gKiBuYW1pbmcgYW55IG9mIHRoZW0gaXMgcmVmdXNlZCB3aXRoIDQwMCDigJQgdGhlIHJlZnVzYWwgaXMgdGhlIEFQSSdzLCBub3QganVzdFxuICogdGhlIFVJJ3MuIGBuYW1lYC9gdmVyc2lvbmAga2V5IHRoZSBwdXNoZWQgaW1hZ2UgYW5kIGFyZSBpbW11dGFibGUgdG9vLlxuICovXG5leHBvcnQgY29uc3QgUExVR0lOX0NPTlRSQUNUX0ZJRUxEUyA9IFtcbiAgJ25hbWUnLCAndmVyc2lvbicsXG4gICdjb21tYW5kcycsICdpbnN0YWxsQ29tbWFuZHMnLCAnZW52JywgJ2J1aWxkQXJncycsICdzZWNyZXRzJyxcbiAgJ21ldGFkYXRhJywgJ3JlcXVpcmVkTWV0YWRhdGEnLCAncmVxdWlyZWRWYXJzJywgJ21ldGFkYXRhVHlwZXMnLCAndmFyc1R5cGVzJyxcbiAgJ25ldHdvcmsnLCAnbmV0d29ya0VncmVzcycsICdjb21wdXRlVHlwZScsICdwbHVnaW5UeXBlJywgJ3ByaW1hcnlPdXRwdXREaXJlY3RvcnknLFxuICAnc21va2VUZXN0JywgJ3RpbWVvdXQnLCAnZmFpbHVyZUJlaGF2aW9yJywgJ2RvY2tlcmZpbGUnLCAnYnVpbGRUeXBlJyxcbl0gYXMgY29uc3Q7XG5cbi8qKiBUaGUgZXhlY3V0aW9uLWNvbnRyYWN0IGtleXMgcHJlc2VudCBpbiBgcGF5bG9hZGAgKGVtcHR5IHdoZW4gbm9uZSkuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZENvbnRyYWN0S2V5cyhwYXlsb2FkOiB1bmtub3duKTogc3RyaW5nW10ge1xuICBpZiAoIXBheWxvYWQgfHwgdHlwZW9mIHBheWxvYWQgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkocGF5bG9hZCkpIHJldHVybiBbXTtcbiAgcmV0dXJuIFBMVUdJTl9DT05UUkFDVF9GSUVMRFMuZmlsdGVyKChrKSA9PiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocGF5bG9hZCwgaykpO1xufVxuXG4vKiogVGhlIG1lc3NhZ2UgYSBjb250cmFjdC1rZXkgcmVmdXNhbCBjYXJyaWVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnRyYWN0S2V5c01lc3NhZ2Uoa2V5czogcmVhZG9ubHkgc3RyaW5nW10pOiBzdHJpbmcge1xuICByZXR1cm4gYFRoZXNlIGZpZWxkcyBkZWZpbmUgd2hhdCB0aGUgcGx1Z2luIHJ1bnMgYW5kIGNhbiBvbmx5IGNoYW5nZSBieSB1cGxvYWRpbmcgYSBuZXcgdmVyc2lvbjogJHtrZXlzLmpvaW4oJywgJyl9YDtcbn1cbiJdfQ==
@@ -208,4 +208,4 @@ export function scanPluginSourceHeuristics(files) {
208
208
  export function blockingHeuristics(report) {
209
209
  return report.findings.filter((f) => f.severity === 'high');
210
210
  }
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWhldXJpc3RpY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9wbHVnaW4taGV1cmlzdGljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBK0JsRCxnRkFBZ0Y7QUFDaEYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztBQUNwRCx1Q0FBdUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsRUFBRSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7QUFDM0QsaUNBQWlDO0FBQ2pDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQztBQUMzQyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUM7QUFDeEIsc0dBQXNHO0FBQ3RHLE1BQU0sYUFBYSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7QUFlL0IsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQSxzREFBc0QsQ0FBQztBQUUvRSxNQUFNLFVBQVUsR0FBd0I7SUFDdEM7UUFDRSxFQUFFLEVBQUUsaUJBQWlCO1FBQ3JCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLE9BQU8sRUFBRSx3QkFBd0I7UUFDakMsSUFBSSxFQUFFLDhNQUE4TTtLQUNyTjtJQUNEO1FBQ0UsRUFBRSxFQUFFLGlCQUFpQjtRQUNyQixRQUFRLEVBQUUsTUFBTTtRQUNoQixPQUFPLEVBQUUsdURBQXVEO1FBQ2hFLElBQUksRUFBRSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFBLDJDQUEyQyxLQUFLLCtFQUErRSxLQUFLLHdDQUF3QyxLQUFLLHNIQUFzSCxFQUFFLEdBQUcsQ0FBQztLQUN6VTtJQUNEO1FBQ0UsRUFBRSxF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SUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMzSCxHQUFHLENBQUM7b0JBQ0YsRUFBRSxFQUFFLGVBQWU7b0JBQ25CLFFBQVEsRUFBRSxNQUFNO29CQUNoQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7b0JBQ2YsSUFBSSxFQUFFLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxTQUFTLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQztvQkFDdEMsT0FBTyxFQUFFLHNDQUFzQztpQkFDaEQsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLENBQUM7QUFDbEQsQ0FBQztBQUVELDhDQUE4QztBQUM5QyxNQUFNLFVBQVUsa0JBQWtCLENBQUMsTUFBMEM7SUFDM0UsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQztBQUM5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogTWFsd2FyZSBoZXVyaXN0aWNzIG92ZXIgYSBwbHVnaW4gUEFDS0FHRSdzIHNvdXJjZSAoZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCxcbiAqIHRoZSBhdXRvbWF0ZWQgc3VibWlzc2lvbiBnYXRlKTogdGhlIERvY2tlcmZpbGUsIHRoZSBzcGVjIGFuZCBldmVyeSBvdGhlciB0ZXh0IGZpbGUgaW4gdGhlXG4gKiB6aXAuIEEgcGx1Z2luIHJ1bnMgaW5zaWRlIGEgY3VzdG9tZXIncyBDb2RlQnVpbGQgd2l0aCB0aGUgY3VzdG9tZXIncyBrZXlzLCBzb1xuICogdGhlIHBhdHRlcm5zIGxvb2tlZCBmb3IgYXJlIHRoZSBvbmVzIHRoYXQgYWJ1c2UgZXhhY3RseSB0aGF0OlxuICpcbiAqICAtIGNyeXB0by1taW5lciBzaWduYXR1cmVzICh4bXJpZywgYHN0cmF0dW0rdGNwOi8vYCwgY3J5cHRvbmlnaHQsIOKApik7XG4gKiAgLSBvYmZ1c2NhdGVkIGV4ZWN1dGlvbiAoYSBiYXNlNjQvaGV4IGJsb2IgZGVjb2RlZCBpbnRvIGEgc2hlbGwgb3IgYGV2YWxgLFxuICogICAgYGV2YWwgXCIkKOKApiB8IGJhc2U2NCAtZClcImAsIGxvbmcgc2luZ2xlLWxpbmUgZW5jb2RlZCBwYXlsb2Fkcyk7XG4gKiAgLSBjcmVkZW50aWFsIGFjY2VzcyAoYEFXU19TRUNSRVRfQUNDRVNTX0tFWWAsIGBBV1NfU0VTU0lPTl9UT0tFTmAsIHRoZSBFQ1MgL1xuICogICAgQ29kZUJ1aWxkIGNvbnRhaW5lci1jcmVkZW50aWFsIGVuZHBvaW50cyBhbmQgdmFyaWFibGVzLCBJTURTXG4gKiAgICBgMTY5LjI1NC4xNjkuMjU0YCAvIGBmZDAwOmVjMjo6MjU0YCwgYH4vLmF3cy9jcmVkZW50aWFsc2AsXG4gKiAgICBgL3Zhci9ydW4vc2VjcmV0c2ApO1xuICogIC0gcmV2ZXJzZSBzaGVsbHMgYW5kIHVuY2hlY2tlZCBwaXBlLXRvLXNoZWxsIGRvd25sb2FkcztcbiAqICAtIHNlY3JldC1sb29raW5nIGxpdGVyYWxzIChgQUtJQeKApmAsIGBnaHBf4oCmYCwgYHhveGIt4oCmYCwgUEVNIHByaXZhdGUga2V5cywgYVxuICogICAgaGlnaC1lbnRyb3B5IHZhbHVlIGFzc2lnbmVkIHRvIGEgYCpfVE9LRU5gIC8gYCpfU0VDUkVUYCAvIGAqX1BBU1NXT1JEYCAvXG4gKiAgICBgKl9LRVlgIG5hbWUpLlxuICpcbiAqIGBoaWdoYCBmaW5kaW5ncyBmYWlsIHRoZSBhbm9ueW1vdXMtc3VibWlzc2lvbiBnYXRlOyBgbWVkaXVtYCBvbmVzIGFyZSBzaG93blxuICogdG8gbW9kZXJhdG9ycyBvbmx5LiBUaGUgQ0xJIChgcGx1Z2luIHZhbGlkYXRlYCAvIGBwbHVnaW4gcHVibGlzaGApIHJ1bnMgdGhlXG4gKiBzYW1lIHNjYW4gc28gYW4gYXV0aG9yIHNlZXMgaXQgYmVmb3JlIHVwbG9hZGluZy4gUHVyZSBhbmQgYm91bmRlZDogZmlsZXMgYW5kXG4gKiBsaW5lcyBhcmUgc2l6ZS1jYXBwZWQsIGJpbmFyeSBmaWxlcyBhcmUgc2tpcHBlZCwgYW5kIGZpbmRpbmdzIGFyZSBjYXBwZWQuXG4gKi9cblxuaW1wb3J0IHsgcGlwZUluc3RhbGxlcnMgfSBmcm9tICcuL3BsdWdpbi1saW50LmpzJztcblxuZXhwb3J0IHR5cGUgSGV1cmlzdGljU2V2ZXJpdHkgPSAnaGlnaCcgfCAnbWVkaXVtJztcblxuZXhwb3J0IGludGVyZmFjZSBIZXVyaXN0aWNGaW5kaW5nIHtcbiAgLyoqIFJ1bGUgaWQgKHN0YWJsZTsgbW9kZXJhdG9ycyBmaWx0ZXIgb24gaXQpLiAqL1xuICBpZDogc3RyaW5nO1xuICBzZXZlcml0eTogSGV1cmlzdGljU2V2ZXJpdHk7XG4gIC8qKiBUaGUgZmlsZSwgcmVsYXRpdmUgdG8gdGhlIHBhY2thZ2Ugcm9vdC4gKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogMS1iYXNlZCBsaW5lIG51bWJlci4gKi9cbiAgbGluZTogbnVtYmVyO1xuICAvKiogVGhlIG9mZmVuZGluZyBsaW5lLCB0cmltbWVkIGFuZCBjYXBwZWQsIHdpdGggc2VjcmV0IHZhbHVlcyBtYXNrZWQuICovXG4gIGV4Y2VycHQ6IHN0cmluZztcbiAgLyoqIFdoYXQgdGhlIHJ1bGUgbWVhbnMuICovXG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIZXVyaXN0aWNzUmVwb3J0IHtcbiAgZmluZGluZ3M6IEhldXJpc3RpY0ZpbmRpbmdbXTtcbiAgLyoqIEZpbGVzIHNjYW5uZWQuICovXG4gIHNjYW5uZWRGaWxlczogbnVtYmVyO1xuICAvKiogRmlsZXMgc2tpcHBlZCAoYmluYXJ5LCBvdmVyIHRoZSBzaXplIGNhcCwgb3IgcGFzdCB0aGUgdG90YWwgYnVkZ2V0KS4gKi9cbiAgc2tpcHBlZEZpbGVzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIZXVyaXN0aWNzSW5wdXRGaWxlIHtcbiAgcGF0aDogc3RyaW5nO1xuICBjb250ZW50OiBzdHJpbmcgfCBVaW50OEFycmF5O1xufVxuXG4vKiogQSBzaW5nbGUgZmlsZSBsYXJnZXIgdGhhbiB0aGlzIGlzIG5vdCBzY2FubmVkIChsaXN0ZWQgaW4gYHNraXBwZWRGaWxlc2ApLiAqL1xuZXhwb3J0IGNvbnN0IEhFVVJJU1RJQ1NfTUFYX0ZJTEVfQllURVMgPSA1MTIgKiAxMDI0O1xuLyoqIFRvdGFsIGJ5dGVzIHNjYW5uZWQgcGVyIHBhY2thZ2UuICovXG5leHBvcnQgY29uc3QgSEVVUklTVElDU19NQVhfVE9UQUxfQllURVMgPSAxNiAqIDEwMjQgKiAxMDI0O1xuLyoqIEZpbmRpbmdzIGtlcHQgcGVyIHBhY2thZ2UuICovXG5leHBvcnQgY29uc3QgSEVVUklTVElDU19NQVhfRklORElOR1MgPSAyMDA7XG5jb25zdCBFWENFUlBUX01BWCA9IDE2MDtcbi8qKiBBIGxpbmUgbG9uZ2VyIHRoYW4gdGhpcyBpcyBzY2FubmVkIG9ubHkgZm9yIHRoZSBlbmNvZGVkLWJsb2IgcnVsZSAoYW5kIHRydW5jYXRlZCBmb3IgdGhlIHJlc3QpLiAqL1xuY29uc3QgTElORV9TQ0FOX01BWCA9IDggKiAxMDI0O1xuXG5pbnRlcmZhY2UgTGluZVJ1bGUge1xuICBpZDogc3RyaW5nO1xuICBzZXZlcml0eTogSGV1cmlzdGljU2V2ZXJpdHk7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgdGVzdDogUmVnRXhwO1xuICAvKiogU2V2ZXJpdHkgaW4gZG9jdW1lbnRhdGlvbiBmaWxlcyAoUkVBRE1FLCAqLm1kKSwgd2hlcmUgbWVudGlvbmluZyBhIG5hbWUgaXNuJ3QgdXNpbmcgaXQuICovXG4gIGRvY1NldmVyaXR5PzogSGV1cmlzdGljU2V2ZXJpdHkgfCBudWxsO1xuICAvKiogTWFzayBzZWNyZXQtbG9va2luZyB2YWx1ZXMgaW4gdGhlIGV4Y2VycHQuICovXG4gIHNlY3JldD86IGJvb2xlYW47XG4gIC8qKiBPbmx5IG9uIGNvZGUgbGluZXM6IGEgYCNgIC8gYC8vYCBjb21tZW50IHRoYXQgTUVOVElPTlMgdGhlIHBhdHRlcm4gaXNuJ3QgdXNpbmcgaXQuICovXG4gIGNvZGVPbmx5PzogYm9vbGVhbjtcbn1cblxuY29uc3QgU0hFTEwgPSBTdHJpbmcucmF3YCg/OnN1ZG9cXHMrKT8oPzpcXC91c3IpPyg/OlxcL2JpblxcLyk/KD86YmF8ZGF8enxrKT9zaFxcYmA7XG5cbmNvbnN0IExJTkVfUlVMRVM6IHJlYWRvbmx5IExpbmVSdWxlW10gPSBbXG4gIHtcbiAgICBpZDogJ21pbmVyLXNpZ25hdHVyZScsXG4gICAgc2V2ZXJpdHk6ICdoaWdoJyxcbiAgICBtZXNzYWdlOiAnQ3J5cHRvLW1pbmVyIHNpZ25hdHVyZScsXG4gICAgdGVzdDogL1xcYnhtcmlnXFxifHN0cmF0dW1cXCsoPzp0Y3B8c3NsfHRscyk6XFwvXFwvfFxcYmNyeXB0b25pZ2h0XFxifFxcYm1pbmVyZFxcYnxcXGJuaWNlaGFzaFxcYnxcXGJjcHVtaW5lclxcYnxcXGJ4bXItc3Rha1xcYnxcXGJldGhtaW5lclxcYnxcXGJuYm1pbmVyXFxifFxcYnBob2VuaXhtaW5lclxcYnxcXGJsb2xtaW5lclxcYnxcXGJzdXBwb3J0eG1yXFxifFxcYm1pbmV4bXJcXGJ8XFxibW9uZXJvb2NlYW5cXGIvaSxcbiAgfSxcbiAge1xuICAgIGlkOiAnb2JmdXNjYXRlZC1leGVjJyxcbiAgICBzZXZlcml0eTogJ2hpZ2gnLFxuICAgIG1lc3NhZ2U6ICdFbmNvZGVkIHBheWxvYWQgZGVjb2RlZCBzdHJhaWdodCBpbnRvIGEgc2hlbGwgb3IgZXZhbCcsXG4gICAgdGVzdDogbmV3IFJlZ0V4cChTdHJpbmcucmF3YGJhc2U2NFxccysoPzotZHwtRHwtLWRlY29kZSlcXGJbXlxcbl0qXFx8XFxzKiR7U0hFTEx9fFxcYmV2YWxcXGJbXlxcbl0qXFwkXFwoW15cXG5dKmJhc2U2NFxccysoPzotZHwtRHwtLWRlY29kZSl8XFxieHhkXFxzKy1yXFxiW15cXG5dKlxcfFxccyoke1NIRUxMfXwoPzpcXFxceFswLTlhLWZBLUZdezJ9KXs4LH1bXlxcbl0qXFx8XFxzKiR7U0hFTEx9fFxcYmV4ZWNcXHMqXFwoXFxzKig/OmJhc2U2NFxcLmI2NGRlY29kZXxfX2ltcG9ydF9fXFwoXFxzKlsnXCJdKD86YmFzZTY0fHpsaWIpWydcIl0pfFxcYmV2YWxcXHMqXFwoXFxzKig/OmF0b2J8QnVmZmVyXFwuZnJvbSlcXHMqXFwoYCwgJ2knKSxcbiAgfSxcbiAge1xuICAgIGlkOiAncmV2ZXJzZS1zaGVsbCcsXG4gICAgc2V2ZXJpdHk6ICdoaWdoJyxcbiAgICBtZXNzYWdlOiAnUmV2ZXJzZS1zaGVsbCBwYXR0ZXJuJyxcbiAgICB0ZXN0OiAvXFwvZGV2XFwvdGNwXFwvXFxkfFxcYm5jKD86YXQpP1xcYlteXFxuXSpcXHMtKD86ZXxjKVxccytcXFMqc2hcXGJ8XFxibmNhdFxcYlteXFxuXSotLSg/OmV4ZWN8c2gtZXhlYylcXGJ8XFxic29jYXRcXGJbXlxcbl0qXFxiZXhlYzovaSxcbiAgfSxcbiAge1xuICAgIGlkOiAnY3JlZGVudGlhbC1hY2Nlc3MnLFxuICAgIHNldmVyaXR5OiAnaGlnaCcsXG4gICAgZG9jU2V2ZXJpdHk6ICdtZWRpdW0nLFxuICAgIGNvZGVPbmx5OiB0cnVlLFxuICAgIG1lc3NhZ2U6ICdSZWFkcyBjbG91ZCBvciBidWlsZCBjcmVkZW50aWFscycsXG4gICAgdGVzdDogL1xcYkFXU19TRUNSRVRfQUNDRVNTX0tFWVxcYnxcXGJBV1NfU0VTU0lPTl9UT0tFTlxcYnxcXGJBV1NfQ09OVEFJTkVSX0NSRURFTlRJQUxTXyg/OlJFTEFUSVZFfEZVTEwpX1VSSVxcYnxcXGJBV1NfQ09OVEFJTkVSX0FVVEhPUklaQVRJT05fVE9LRU4oPzpfRklMRSk/XFxifFxcYkNPREVCVUlMRF9bQS1aMC05X10qKD86VE9LRU58Q1JFREVOVElBTHxTRUNSRVR8QVVUSClbQS1aMC05X10qXFxifDE2OVxcLjI1NFxcLjE2OVxcLjI1NHwxNjlcXC4yNTRcXC4xNzBcXC4yfGZkMDA6ZWMyOjoyNTR8XFwuYXdzXFwvY3JlZGVudGlhbHN8XFwvdmFyXFwvcnVuXFwvc2VjcmV0c1xcYi8sXG4gIH0sXG4gIHtcbiAgICBpZDogJ3BpcGUtdG8tc2hlbGwnLFxuICAgIHNldmVyaXR5OiAnaGlnaCcsXG4gICAgZG9jU2V2ZXJpdHk6IG51bGwsXG4gICAgY29kZU9ubHk6IHRydWUsXG4gICAgbWVzc2FnZTogJ0Rvd25sb2FkIHBpcGVkIHN0cmFpZ2h0IGludG8gYSBzaGVsbCcsXG4gICAgdGVzdDogbmV3IFJlZ0V4cChTdHJpbmcucmF3YFxcYig/OmN1cmx8d2dldClcXGJbXlxcbnxdKlxcfFxccyoke1NIRUxMfWAsICdpJyksXG4gIH0sXG4gIHtcbiAgICBpZDogJ3NlY3JldC1saXRlcmFsJyxcbiAgICBzZXZlcml0eTogJ2hpZ2gnLFxuICAgIG1lc3NhZ2U6ICdTZWNyZXQtbG9va2luZyBsaXRlcmFsJyxcbiAgICBzZWNyZXQ6IHRydWUsXG4gICAgdGVzdDogL1xcYig/OkFLSUF8QVNJQSlbMC05QS1aXXsxNn1cXGJ8XFxiZ2hbcG91c3JdX1tBLVphLXowLTldezM2LH1cXGJ8XFxiZ2l0aHViX3BhdF9bQS1aYS16MC05X117NDAsfVxcYnxcXGJ4b3hbYmFwXS1bQS1aYS16MC05LV17MTAsfXwtLS0tLUJFR0lOICg/OlJTQSB8RUMgfERTQSB8T1BFTlNTSCB8UEdQIHxFTkNSWVBURUQgKT9QUklWQVRFIEtFWS0tLS0tfFxcYmdscGF0LVtBLVphLXowLTlfLV17MjAsfVxcYnxcXGJza19saXZlX1tBLVphLXowLTldezE2LH1cXGIvLFxuICB9LFxuXTtcblxuLyoqIGBOQU1FPXZhbHVlYCAvIGBOQU1FOiB2YWx1ZWAgLyBgRU5WIE5BTUUgdmFsdWVgIGFzc2lnbm1lbnRzIHRvIGEgc2VjcmV0LWxvb2tpbmcgbmFtZS4gKi9cbmNvbnN0IFNFQ1JFVF9BU1NJR05NRU5UID0gL1xcYihbQS1aYS16MC05X10qKD86VE9LRU58U0VDUkVUfFBBU1NXT1JEfFBBU1NXRHxBUElfS0VZfFBSSVZBVEVfS0VZfEFDQ0VTU19LRVl8X0tFWSkpXFxiW1wiJ10/XFxzKig/Ols6PV18XFxzKVxccypbXCInXT8oW15cXHNcIidgLDspXXsxNix9KS9pO1xuLyoqIEEgbG9uZyBzaW5nbGUtdG9rZW4gYmFzZTY0IG9yIGhleCBydW4gKGFuIGVtYmVkZGVkIHBheWxvYWQpLiAqL1xuY29uc3QgRU5DT0RFRF9CTE9CID0gL1tBLVphLXowLTkrL117MjQwLH09ezAsMn18XFxiWzAtOWEtZkEtRl17MjQwLH1cXGIvO1xuXG4vKiogU2hhbm5vbiBlbnRyb3B5IG9mIGBzYCwgaW4gYml0cyBwZXIgY2hhcmFjdGVyLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNoYW5ub25FbnRyb3B5KHM6IHN0cmluZyk6IG51bWJlciB7XG4gIGlmICghcykgcmV0dXJuIDA7XG4gIGNvbnN0IGNvdW50cyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gIGZvciAoY29uc3QgY2ggb2YgcykgY291bnRzLnNldChjaCwgKGNvdW50cy5nZXQoY2gpID8/IDApICsgMSk7XG4gIGxldCBoID0gMDtcbiAgZm9yIChjb25zdCBuIG9mIGNvdW50cy52YWx1ZXMoKSkge1xuICAgIGNvbnN0IHAgPSBuIC8gcy5sZW5ndGg7XG4gICAgaCAtPSBwICogTWF0aC5sb2cyKHApO1xuICB9XG4gIHJldHVybiBoO1xufVxuXG4vKiogV2hldGhlciBhIHNlY3JldC1hc3NpZ25tZW50IHZhbHVlIGxvb2tzIGxpa2UgYSByZWFsIGNyZWRlbnRpYWwgKG5vdCBhIHBsYWNlaG9sZGVyIG9yIGEgcmVmZXJlbmNlKS4gKi9cbmZ1bmN0aW9uIGxvb2tzTGlrZVNlY3JldFZhbHVlKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKC9bJF18XFx7XFx7fDx8PnxcXCp7Myx9fHh7Nix9fGNoYW5nZW1lfGV4YW1wbGV8cGxhY2Vob2xkZXJ8eW91clstX10vaS50ZXN0KHZhbHVlKSkgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gc2hhbm5vbkVudHJvcHkodmFsdWUpID49IDMuNTtcbn1cblxuZnVuY3Rpb24gaXNEb2NGaWxlKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gLyhefFxcLylyZWFkbWUoXFwuW2Etel0rKT8kL2kudGVzdChwYXRoKSB8fCAvXFwuKG1kfG1hcmtkb3dufHJzdHx0eHR8YWRvYykkL2kudGVzdChwYXRoKTtcbn1cblxuZnVuY3Rpb24gbWFzayhsaW5lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbGluZVxuICAgIC5yZXBsYWNlKC9cXGIoKD86QUtJQXxBU0lBKVswLTlBLVpdezR9KVswLTlBLVpdezEyfVxcYi9nLCAnJDHigKYnKVxuICAgIC5yZXBsYWNlKC9cXGIoZ2hbcG91c3JdX3xnaXRodWJfcGF0X3x4b3hbYmFwXS18Z2xwYXQtfHNrX2xpdmVfKVtBLVphLXowLTlfLV0rL2csICckMeKApicpXG4gICAgLnJlcGxhY2UoU0VDUkVUX0FTU0lHTk1FTlQsIChtLCBfbmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PiBtLnJlcGxhY2UodmFsdWUsIGAke3ZhbHVlLnNsaWNlKDAsIDQpfeKApmApKTtcbn1cblxuZnVuY3Rpb24gZXhjZXJwdE9mKGxpbmU6IHN0cmluZywgc2VjcmV0OiBib29sZWFuKTogc3RyaW5nIHtcbiAgY29uc3QgdCA9IChzZWNyZXQgPyBtYXNrKGxpbmUpIDogbGluZSkudHJpbSgpO1xuICByZXR1cm4gdC5sZW5ndGggPiBFWENFUlBUX01BWCA/IGAke3Quc2xpY2UoMCwgRVhDRVJQVF9NQVggLSAxKX3igKZgIDogdDtcbn1cblxuLyoqIFdoZXRoZXIgYSBkZWNvZGVkIGJ1ZmZlciBsb29rcyBiaW5hcnkgKGEgTlVMIGluIGl0cyBmaXJzdCA4IEtpQikuICovXG5mdW5jdGlvbiBpc0JpbmFyeShieXRlczogVWludDhBcnJheSk6IGJvb2xlYW4ge1xuICBjb25zdCBuID0gTWF0aC5taW4oYnl0ZXMubGVuZ3RoLCA4MTkyKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIGlmIChieXRlc1tpXSA9PT0gMCkgcmV0dXJuIHRydWU7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gYXNUZXh0KGNvbnRlbnQ6IHN0cmluZyB8IFVpbnQ4QXJyYXkpOiB7IHRleHQ6IHN0cmluZyB8IG51bGw7IGJ5dGVzOiBudW1iZXIgfSB7XG4gIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHJldHVybiB7IHRleHQ6IGNvbnRlbnQuaW5jbHVkZXMoJ1xcdTAwMDAnKSA/IG51bGwgOiBjb250ZW50LCBieXRlczogQnVmZmVyLmJ5dGVMZW5ndGgoY29udGVudCkgfTtcbiAgaWYgKGlzQmluYXJ5KGNvbnRlbnQpKSByZXR1cm4geyB0ZXh0OiBudWxsLCBieXRlczogY29udGVudC5sZW5ndGggfTtcbiAgcmV0dXJuIHsgdGV4dDogQnVmZmVyLmZyb20oY29udGVudCkudG9TdHJpbmcoJ3V0ZjgnKSwgYnl0ZXM6IGNvbnRlbnQubGVuZ3RoIH07XG59XG5cbi8qKlxuICogU2NhbiBhIHBsdWdpbiBwYWNrYWdlJ3MgZmlsZXMuIGBmaWxlc2AgcGF0aHMgYXJlIHBhY2thZ2UtcmVsYXRpdmU7IGFcbiAqIERvY2tlcmZpbGUgaXMgcmVjb2duaXNlZCBieSBuYW1lIChgRG9ja2VyZmlsZWAsIGAqLkRvY2tlcmZpbGVgLFxuICogYERvY2tlcmZpbGUuKmApLiBEZXRlcm1pbmlzdGljOiBmaW5kaW5ncyBjb21lIGJhY2sgaW4gZmlsZSB0aGVuIGxpbmUgb3JkZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzY2FuUGx1Z2luU291cmNlSGV1cmlzdGljcyhmaWxlczogcmVhZG9ubHkgSGV1cmlzdGljc0lucHV0RmlsZVtdKTogSGV1cmlzdGljc1JlcG9ydCB7XG4gIGNvbnN0IGZpbmRpbmdzOiBIZXVyaXN0aWNGaW5kaW5nW10gPSBbXTtcbiAgY29uc3Qgc2tpcHBlZEZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGxldCBzY2FubmVkRmlsZXMgPSAwO1xuICBsZXQgYnVkZ2V0ID0gSEVVUklTVElDU19NQVhfVE9UQUxfQllURVM7XG5cbiAgY29uc3QgYWRkID0gKGY6IEhldXJpc3RpY0ZpbmRpbmcpOiB2b2lkID0+IHtcbiAgICBjb25zdCBrZXkgPSBgJHtmLmlkfXwke2YucGF0aH18JHtmLmxpbmV9YDtcbiAgICBpZiAoc2Vlbi5oYXMoa2V5KSB8fCBmaW5kaW5ncy5sZW5ndGggPj0gSEVVUklTVElDU19NQVhfRklORElOR1MpIHJldHVybjtcbiAgICBzZWVuLmFkZChrZXkpO1xuICAgIGZpbmRpbmdzLnB1c2goZik7XG4gIH07XG5cbiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgY29uc3QgeyB0ZXh0LCBieXRlcyB9ID0gYXNUZXh0KGZpbGUuY29udGVudCk7XG4gICAgaWYgKHRleHQgPT09IG51bGwgfHwgYnl0ZXMgPiBIRVVSSVNUSUNTX01BWF9GSUxFX0JZVEVTIHx8IGJ5dGVzID4gYnVkZ2V0KSB7XG4gICAgICBza2lwcGVkRmlsZXMucHVzaChmaWxlLnBhdGgpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGJ1ZGdldCAtPSBieXRlcztcbiAgICBzY2FubmVkRmlsZXMrKztcbiAgICBjb25zdCBkb2MgPSBpc0RvY0ZpbGUoZmlsZS5wYXRoKTtcbiAgICBjb25zdCBsaW5lcyA9IHRleHQucmVwbGFjZSgvXFxyXFxuPy9nLCAnXFxuJykuc3BsaXQoJ1xcbicpO1xuXG4gICAgbGluZXMuZm9yRWFjaCgocmF3LCBpZHgpID0+IHtcbiAgICAgIGNvbnN0IGxpbmUgPSBpZHggKyAxO1xuICAgICAgaWYgKEVOQ09ERURfQkxPQi50ZXN0KHJhdykpIHtcbiAgICAgICAgYWRkKHsgaWQ6ICdlbmNvZGVkLWJsb2InLCBzZXZlcml0eTogJ21lZGl1bScsIHBhdGg6IGZpbGUucGF0aCwgbGluZSwgZXhjZXJwdDogZXhjZXJwdE9mKHJhdywgZmFsc2UpLCBtZXNzYWdlOiAnTG9uZyBzaW5nbGUtbGluZSBlbmNvZGVkIHBheWxvYWQnIH0pO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2NhbiA9IHJhdy5sZW5ndGggPiBMSU5FX1NDQU5fTUFYID8gcmF3LnNsaWNlKDAsIExJTkVfU0NBTl9NQVgpIDogcmF3O1xuICAgICAgY29uc3QgY29tbWVudCA9IC9eXFxzKigjfFxcL1xcLykvLnRlc3Qoc2Nhbik7XG4gICAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgTElORV9SVUxFUykge1xuICAgICAgICBpZiAocnVsZS5jb2RlT25seSAmJiBjb21tZW50KSBjb250aW51ZTtcbiAgICAgICAgaWYgKCFydWxlLnRlc3QudGVzdChzY2FuKSkgY29udGludWU7XG4gICAgICAgIGNvbnN0IHNldmVyaXR5ID0gZG9jICYmIHJ1bGUuZG9jU2V2ZXJpdHkgIT09IHVuZGVmaW5lZCA/IHJ1bGUuZG9jU2V2ZXJpdHkgOiBydWxlLnNldmVyaXR5O1xuICAgICAgICBpZiAoc2V2ZXJpdHkgPT09IG51bGwpIGNvbnRpbnVlO1xuICAgICAgICBhZGQoeyBpZDogcnVsZS5pZCwgc2V2ZXJpdHksIHBhdGg6IGZpbGUucGF0aCwgbGluZSwgZXhjZXJwdDogZXhjZXJwdE9mKHNjYW4sIHJ1bGUuc2VjcmV0ID09PSB0cnVlKSwgbWVzc2FnZTogcnVsZS5tZXNzYWdlIH0pO1xuICAgICAgfVxuICAgICAgY29uc3QgYXNzaWdubWVudCA9IFNFQ1JFVF9BU1NJR05NRU5ULmV4ZWMoc2Nhbik7XG4gICAgICBpZiAoYXNzaWdubWVudCAmJiBsb29rc0xpa2VTZWNyZXRWYWx1ZShhc3NpZ25tZW50WzJdISkpIHtcbiAgICAgICAgYWRkKHtcbiAgICAgICAgICBpZDogJ3NlY3JldC1kZWZhdWx0JyxcbiAgICAgICAgICBzZXZlcml0eTogZG9jID8gJ21lZGl1bScgOiAnaGlnaCcsXG4gICAgICAgICAgcGF0aDogZmlsZS5wYXRoLFxuICAgICAgICAgIGxpbmUsXG4gICAgICAgICAgZXhjZXJwdDogZXhjZXJwdE9mKHNjYW4sIHRydWUpLFxuICAgICAgICAgIG1lc3NhZ2U6IGBIaWdoLWVudHJvcHkgdmFsdWUgYXNzaWduZWQgdG8gJHthc3NpZ25tZW50WzFdfWAsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gRG9ja2VyZmlsZSBSVU4gbGluZXMgdGhhdCBwaXBlIGEgZG93bmxvYWQgaW50byBhIHNoZWxsLCBjb250aW51YXRpb24tam9pbmVkXG4gICAgLy8gKHRoZSBsaW5lIHJ1bGUgYWJvdmUgb25seSBzZWVzIG9uZSBwaHlzaWNhbCBsaW5lKS5cbiAgICBpZiAoLyhefFxcLykoRG9ja2VyZmlsZShcXC5bXi9dKyk/fFteL10rXFwuRG9ja2VyZmlsZSkkL2kudGVzdChmaWxlLnBhdGgpKSB7XG4gICAgICBmb3IgKGNvbnN0IGluc3RydWN0aW9uIG9mIHBpcGVJbnN0YWxsZXJzKHRleHQpKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0TGluZSA9IGxpbmVzLmZpbmRJbmRleCgobCkgPT4gbC50cmltKCkgIT09ICcnICYmIGluc3RydWN0aW9uLnN0YXJ0c1dpdGgobC50cmltKCkucmVwbGFjZSgvXFxcXFxccyokLywgJycpLnRyaW0oKSkpO1xuICAgICAgICBhZGQoe1xuICAgICAgICAgIGlkOiAncGlwZS10by1zaGVsbCcsXG4gICAgICAgICAgc2V2ZXJpdHk6ICdoaWdoJyxcbiAgICAgICAgICBwYXRoOiBmaWxlLnBhdGgsXG4gICAgICAgICAgbGluZTogZmlyc3RMaW5lID49IDAgPyBmaXJzdExpbmUgKyAxIDogMSxcbiAgICAgICAgICBleGNlcnB0OiBleGNlcnB0T2YoaW5zdHJ1Y3Rpb24sIGZhbHNlKSxcbiAgICAgICAgICBtZXNzYWdlOiAnRG93bmxvYWQgcGlwZWQgc3RyYWlnaHQgaW50byBhIHNoZWxsJyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgZmluZGluZ3MsIHNjYW5uZWRGaWxlcywgc2tpcHBlZEZpbGVzIH07XG59XG5cbi8qKiBUaGUgZmluZGluZ3MgdGhhdCBmYWlsIGEgZ2F0ZSAoYGhpZ2hgKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBibG9ja2luZ0hldXJpc3RpY3MocmVwb3J0OiBQaWNrPEhldXJpc3RpY3NSZXBvcnQsICdmaW5kaW5ncyc+KTogSGV1cmlzdGljRmluZGluZ1tdIHtcbiAgcmV0dXJuIHJlcG9ydC5maW5kaW5ncy5maWx0ZXIoKGYpID0+IGYuc2V2ZXJpdHkgPT09ICdoaWdoJyk7XG59XG4iXX0=
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWhldXJpc3RpY3MuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3BsdWdpbi1oZXVyaXN0aWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUErQmxELGdGQUFnRjtBQUNoRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO0FBQ3BELHVDQUF1QztBQUN2QyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUMzRCxpQ0FBaUM7QUFDakMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFDO0FBQzNDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQztBQUN4QixzR0FBc0c7QUFDdEcsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztBQWUvQixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFBLHNEQUFzRCxDQUFDO0FBRS9FLE1BQU0sVUFBVSxHQUF3QjtJQUN0QztRQUNFLEVBQUUsRUFBRSxpQkFBaUI7UUFDckIsUUFBUSxFQUFFLE1BQU07UUFDaEIsT0FBTyxFQUFFLHdCQUF3QjtRQUNqQyxJQUFJLEVBQUUsOE1BQThNO0tBQ3JOO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsaUJBQWlCO1FBQ3JCLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLE9BQU8sRUFBRSx1REFBdUQ7UUFDaEUsSUFBSSxFQUFFLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUEsMkNBQTJDLEtBQUssK0VBQStFLEtBQUssd0NBQXdDLEtBQUssc0hBQXNILEVBQUUsR0FBRyxDQUFDO0tBQ3pVO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsZUFBZTtRQUNuQixR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QUFFLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzNILEdBQUcsQ0FBQztvQkFDRixFQUFFLEVBQUUsZUFBZTtvQkFDbkIsUUFBUSxFQUFFLE1BQU07b0JBQ2hCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtvQkFDZixJQUFJLEVBQUUsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO29CQUN0QyxPQUFPLEVBQUUsc0NBQXNDO2lCQUNoRCxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsQ0FBQztBQUNsRCxDQUFDO0FBRUQsOENBQThDO0FBQzlDLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxNQUEwQztJQUMzRSxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxDQUFDO0FBQzlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBNYWx3YXJlIGhldXJpc3RpY3Mgb3ZlciBhIHBsdWdpbiBQQUNLQUdFJ3Mgc291cmNlIChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kLFxuICogdGhlIGF1dG9tYXRlZCBzdWJtaXNzaW9uIGdhdGUpOiB0aGUgRG9ja2VyZmlsZSwgdGhlIHNwZWMgYW5kIGV2ZXJ5IG90aGVyIHRleHQgZmlsZSBpbiB0aGVcbiAqIHppcC4gQSBwbHVnaW4gcnVucyBpbnNpZGUgYSBjdXN0b21lcidzIENvZGVCdWlsZCB3aXRoIHRoZSBjdXN0b21lcidzIGtleXMsIHNvXG4gKiB0aGUgcGF0dGVybnMgbG9va2VkIGZvciBhcmUgdGhlIG9uZXMgdGhhdCBhYnVzZSBleGFjdGx5IHRoYXQ6XG4gKlxuICogIC0gY3J5cHRvLW1pbmVyIHNpZ25hdHVyZXMgKHhtcmlnLCBgc3RyYXR1bSt0Y3A6Ly9gLCBjcnlwdG9uaWdodCwg4oCmKTtcbiAqICAtIG9iZnVzY2F0ZWQgZXhlY3V0aW9uIChhIGJhc2U2NC9oZXggYmxvYiBkZWNvZGVkIGludG8gYSBzaGVsbCBvciBgZXZhbGAsXG4gKiAgICBgZXZhbCBcIiQo4oCmIHwgYmFzZTY0IC1kKVwiYCwgbG9uZyBzaW5nbGUtbGluZSBlbmNvZGVkIHBheWxvYWRzKTtcbiAqICAtIGNyZWRlbnRpYWwgYWNjZXNzIChgQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZYCwgYEFXU19TRVNTSU9OX1RPS0VOYCwgdGhlIEVDUyAvXG4gKiAgICBDb2RlQnVpbGQgY29udGFpbmVyLWNyZWRlbnRpYWwgZW5kcG9pbnRzIGFuZCB2YXJpYWJsZXMsIElNRFNcbiAqICAgIGAxNjkuMjU0LjE2OS4yNTRgIC8gYGZkMDA6ZWMyOjoyNTRgLCBgfi8uYXdzL2NyZWRlbnRpYWxzYCxcbiAqICAgIGAvdmFyL3J1bi9zZWNyZXRzYCk7XG4gKiAgLSByZXZlcnNlIHNoZWxscyBhbmQgdW5jaGVja2VkIHBpcGUtdG8tc2hlbGwgZG93bmxvYWRzO1xuICogIC0gc2VjcmV0LWxvb2tpbmcgbGl0ZXJhbHMgKGBBS0lB4oCmYCwgYGdocF/igKZgLCBgeG94Yi3igKZgLCBQRU0gcHJpdmF0ZSBrZXlzLCBhXG4gKiAgICBoaWdoLWVudHJvcHkgdmFsdWUgYXNzaWduZWQgdG8gYSBgKl9UT0tFTmAgLyBgKl9TRUNSRVRgIC8gYCpfUEFTU1dPUkRgIC9cbiAqICAgIGAqX0tFWWAgbmFtZSkuXG4gKlxuICogYGhpZ2hgIGZpbmRpbmdzIGZhaWwgdGhlIGFub255bW91cy1zdWJtaXNzaW9uIGdhdGU7IGBtZWRpdW1gIG9uZXMgYXJlIHNob3duXG4gKiB0byBtb2RlcmF0b3JzIG9ubHkuIFRoZSBDTEkgKGBwbHVnaW4gdmFsaWRhdGVgIC8gYHBsdWdpbiBwdWJsaXNoYCkgcnVucyB0aGVcbiAqIHNhbWUgc2NhbiBzbyBhbiBhdXRob3Igc2VlcyBpdCBiZWZvcmUgdXBsb2FkaW5nLiBQdXJlIGFuZCBib3VuZGVkOiBmaWxlcyBhbmRcbiAqIGxpbmVzIGFyZSBzaXplLWNhcHBlZCwgYmluYXJ5IGZpbGVzIGFyZSBza2lwcGVkLCBhbmQgZmluZGluZ3MgYXJlIGNhcHBlZC5cbiAqL1xuXG5pbXBvcnQgeyBwaXBlSW5zdGFsbGVycyB9IGZyb20gJy4vcGx1Z2luLWxpbnQuanMnO1xuXG5leHBvcnQgdHlwZSBIZXVyaXN0aWNTZXZlcml0eSA9ICdoaWdoJyB8ICdtZWRpdW0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhldXJpc3RpY0ZpbmRpbmcge1xuICAvKiogUnVsZSBpZCAoc3RhYmxlOyBtb2RlcmF0b3JzIGZpbHRlciBvbiBpdCkuICovXG4gIGlkOiBzdHJpbmc7XG4gIHNldmVyaXR5OiBIZXVyaXN0aWNTZXZlcml0eTtcbiAgLyoqIFRoZSBmaWxlLCByZWxhdGl2ZSB0byB0aGUgcGFja2FnZSByb290LiAqL1xuICBwYXRoOiBzdHJpbmc7XG4gIC8qKiAxLWJhc2VkIGxpbmUgbnVtYmVyLiAqL1xuICBsaW5lOiBudW1iZXI7XG4gIC8qKiBUaGUgb2ZmZW5kaW5nIGxpbmUsIHRyaW1tZWQgYW5kIGNhcHBlZCwgd2l0aCBzZWNyZXQgdmFsdWVzIG1hc2tlZC4gKi9cbiAgZXhjZXJwdDogc3RyaW5nO1xuICAvKiogV2hhdCB0aGUgcnVsZSBtZWFucy4gKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhldXJpc3RpY3NSZXBvcnQge1xuICBmaW5kaW5nczogSGV1cmlzdGljRmluZGluZ1tdO1xuICAvKiogRmlsZXMgc2Nhbm5lZC4gKi9cbiAgc2Nhbm5lZEZpbGVzOiBudW1iZXI7XG4gIC8qKiBGaWxlcyBza2lwcGVkIChiaW5hcnksIG92ZXIgdGhlIHNpemUgY2FwLCBvciBwYXN0IHRoZSB0b3RhbCBidWRnZXQpLiAqL1xuICBza2lwcGVkRmlsZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhldXJpc3RpY3NJbnB1dEZpbGUge1xuICBwYXRoOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IHN0cmluZyB8IFVpbnQ4QXJyYXk7XG59XG5cbi8qKiBBIHNpbmdsZSBmaWxlIGxhcmdlciB0aGFuIHRoaXMgaXMgbm90IHNjYW5uZWQgKGxpc3RlZCBpbiBgc2tpcHBlZEZpbGVzYCkuICovXG5leHBvcnQgY29uc3QgSEVVUklTVElDU19NQVhfRklMRV9CWVRFUyA9IDUxMiAqIDEwMjQ7XG4vKiogVG90YWwgYnl0ZXMgc2Nhbm5lZCBwZXIgcGFja2FnZS4gKi9cbmV4cG9ydCBjb25zdCBIRVVSSVNUSUNTX01BWF9UT1RBTF9CWVRFUyA9IDE2ICogMTAyNCAqIDEwMjQ7XG4vKiogRmluZGluZ3Mga2VwdCBwZXIgcGFja2FnZS4gKi9cbmV4cG9ydCBjb25zdCBIRVVSSVNUSUNTX01BWF9GSU5ESU5HUyA9IDIwMDtcbmNvbnN0IEVYQ0VSUFRfTUFYID0gMTYwO1xuLyoqIEEgbGluZSBsb25nZXIgdGhhbiB0aGlzIGlzIHNjYW5uZWQgb25seSBmb3IgdGhlIGVuY29kZWQtYmxvYiBydWxlIChhbmQgdHJ1bmNhdGVkIGZvciB0aGUgcmVzdCkuICovXG5jb25zdCBMSU5FX1NDQU5fTUFYID0gOCAqIDEwMjQ7XG5cbmludGVyZmFjZSBMaW5lUnVsZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHNldmVyaXR5OiBIZXVyaXN0aWNTZXZlcml0eTtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICB0ZXN0OiBSZWdFeHA7XG4gIC8qKiBTZXZlcml0eSBpbiBkb2N1bWVudGF0aW9uIGZpbGVzIChSRUFETUUsICoubWQpLCB3aGVyZSBtZW50aW9uaW5nIGEgbmFtZSBpc24ndCB1c2luZyBpdC4gKi9cbiAgZG9jU2V2ZXJpdHk/OiBIZXVyaXN0aWNTZXZlcml0eSB8IG51bGw7XG4gIC8qKiBNYXNrIHNlY3JldC1sb29raW5nIHZhbHVlcyBpbiB0aGUgZXhjZXJwdC4gKi9cbiAgc2VjcmV0PzogYm9vbGVhbjtcbiAgLyoqIE9ubHkgb24gY29kZSBsaW5lczogYSBgI2AgLyBgLy9gIGNvbW1lbnQgdGhhdCBNRU5USU9OUyB0aGUgcGF0dGVybiBpc24ndCB1c2luZyBpdC4gKi9cbiAgY29kZU9ubHk/OiBib29sZWFuO1xufVxuXG5jb25zdCBTSEVMTCA9IFN0cmluZy5yYXdgKD86c3Vkb1xccyspPyg/OlxcL3Vzcik/KD86XFwvYmluXFwvKT8oPzpiYXxkYXx6fGspP3NoXFxiYDtcblxuY29uc3QgTElORV9SVUxFUzogcmVhZG9ubHkgTGluZVJ1bGVbXSA9IFtcbiAge1xuICAgIGlkOiAnbWluZXItc2lnbmF0dXJlJyxcbiAgICBzZXZlcml0eTogJ2hpZ2gnLFxuICAgIG1lc3NhZ2U6ICdDcnlwdG8tbWluZXIgc2lnbmF0dXJlJyxcbiAgICB0ZXN0OiAvXFxieG1yaWdcXGJ8c3RyYXR1bVxcKyg/OnRjcHxzc2x8dGxzKTpcXC9cXC98XFxiY3J5cHRvbmlnaHRcXGJ8XFxibWluZXJkXFxifFxcYm5pY2VoYXNoXFxifFxcYmNwdW1pbmVyXFxifFxcYnhtci1zdGFrXFxifFxcYmV0aG1pbmVyXFxifFxcYm5ibWluZXJcXGJ8XFxicGhvZW5peG1pbmVyXFxifFxcYmxvbG1pbmVyXFxifFxcYnN1cHBvcnR4bXJcXGJ8XFxibWluZXhtclxcYnxcXGJtb25lcm9vY2VhblxcYi9pLFxuICB9LFxuICB7XG4gICAgaWQ6ICdvYmZ1c2NhdGVkLWV4ZWMnLFxuICAgIHNldmVyaXR5OiAnaGlnaCcsXG4gICAgbWVzc2FnZTogJ0VuY29kZWQgcGF5bG9hZCBkZWNvZGVkIHN0cmFpZ2h0IGludG8gYSBzaGVsbCBvciBldmFsJyxcbiAgICB0ZXN0OiBuZXcgUmVnRXhwKFN0cmluZy5yYXdgYmFzZTY0XFxzKyg/Oi1kfC1EfC0tZGVjb2RlKVxcYlteXFxuXSpcXHxcXHMqJHtTSEVMTH18XFxiZXZhbFxcYlteXFxuXSpcXCRcXChbXlxcbl0qYmFzZTY0XFxzKyg/Oi1kfC1EfC0tZGVjb2RlKXxcXGJ4eGRcXHMrLXJcXGJbXlxcbl0qXFx8XFxzKiR7U0hFTEx9fCg/OlxcXFx4WzAtOWEtZkEtRl17Mn0pezgsfVteXFxuXSpcXHxcXHMqJHtTSEVMTH18XFxiZXhlY1xccypcXChcXHMqKD86YmFzZTY0XFwuYjY0ZGVjb2RlfF9faW1wb3J0X19cXChcXHMqWydcIl0oPzpiYXNlNjR8emxpYilbJ1wiXSl8XFxiZXZhbFxccypcXChcXHMqKD86YXRvYnxCdWZmZXJcXC5mcm9tKVxccypcXChgLCAnaScpLFxuICB9LFxuICB7XG4gICAgaWQ6ICdyZXZlcnNlLXNoZWxsJyxcbiAgICBzZXZlcml0eTogJ2hpZ2gnLFxuICAgIG1lc3NhZ2U6ICdSZXZlcnNlLXNoZWxsIHBhdHRlcm4nLFxuICAgIHRlc3Q6IC9cXC9kZXZcXC90Y3BcXC9cXGR8XFxibmMoPzphdCk/XFxiW15cXG5dKlxccy0oPzplfGMpXFxzK1xcUypzaFxcYnxcXGJuY2F0XFxiW15cXG5dKi0tKD86ZXhlY3xzaC1leGVjKVxcYnxcXGJzb2NhdFxcYlteXFxuXSpcXGJleGVjOi9pLFxuICB9LFxuICB7XG4gICAgaWQ6ICdjcmVkZW50aWFsLWFjY2VzcycsXG4gICAgc2V2ZXJpdHk6ICdoaWdoJyxcbiAgICBkb2NTZXZlcml0eTogJ21lZGl1bScsXG4gICAgY29kZU9ubHk6IHRydWUsXG4gICAgbWVzc2FnZTogJ1JlYWRzIGNsb3VkIG9yIGJ1aWxkIGNyZWRlbnRpYWxzJyxcbiAgICB0ZXN0OiAvXFxiQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZXFxifFxcYkFXU19TRVNTSU9OX1RPS0VOXFxifFxcYkFXU19DT05UQUlORVJfQ1JFREVOVElBTFNfKD86UkVMQVRJVkV8RlVMTClfVVJJXFxifFxcYkFXU19DT05UQUlORVJfQVVUSE9SSVpBVElPTl9UT0tFTig/Ol9GSUxFKT9cXGJ8XFxiQ09ERUJVSUxEX1tBLVowLTlfXSooPzpUT0tFTnxDUkVERU5USUFMfFNFQ1JFVHxBVVRIKVtBLVowLTlfXSpcXGJ8MTY5XFwuMjU0XFwuMTY5XFwuMjU0fDE2OVxcLjI1NFxcLjE3MFxcLjJ8ZmQwMDplYzI6OjI1NHxcXC5hd3NcXC9jcmVkZW50aWFsc3xcXC92YXJcXC9ydW5cXC9zZWNyZXRzXFxiLyxcbiAgfSxcbiAge1xuICAgIGlkOiAncGlwZS10by1zaGVsbCcsXG4gICAgc2V2ZXJpdHk6ICdoaWdoJyxcbiAgICBkb2NTZXZlcml0eTogbnVsbCxcbiAgICBjb2RlT25seTogdHJ1ZSxcbiAgICBtZXNzYWdlOiAnRG93bmxvYWQgcGlwZWQgc3RyYWlnaHQgaW50byBhIHNoZWxsJyxcbiAgICB0ZXN0OiBuZXcgUmVnRXhwKFN0cmluZy5yYXdgXFxiKD86Y3VybHx3Z2V0KVxcYlteXFxufF0qXFx8XFxzKiR7U0hFTEx9YCwgJ2knKSxcbiAgfSxcbiAge1xuICAgIGlkOiAnc2VjcmV0LWxpdGVyYWwnLFxuICAgIHNldmVyaXR5OiAnaGlnaCcsXG4gICAgbWVzc2FnZTogJ1NlY3JldC1sb29raW5nIGxpdGVyYWwnLFxuICAgIHNlY3JldDogdHJ1ZSxcbiAgICB0ZXN0OiAvXFxiKD86QUtJQXxBU0lBKVswLTlBLVpdezE2fVxcYnxcXGJnaFtwb3Vzcl1fW0EtWmEtejAtOV17MzYsfVxcYnxcXGJnaXRodWJfcGF0X1tBLVphLXowLTlfXXs0MCx9XFxifFxcYnhveFtiYXBdLVtBLVphLXowLTktXXsxMCx9fC0tLS0tQkVHSU4gKD86UlNBIHxFQyB8RFNBIHxPUEVOU1NIIHxQR1AgfEVOQ1JZUFRFRCApP1BSSVZBVEUgS0VZLS0tLS18XFxiZ2xwYXQtW0EtWmEtejAtOV8tXXsyMCx9XFxifFxcYnNrX2xpdmVfW0EtWmEtejAtOV17MTYsfVxcYi8sXG4gIH0sXG5dO1xuXG4vKiogYE5BTUU9dmFsdWVgIC8gYE5BTUU6IHZhbHVlYCAvIGBFTlYgTkFNRSB2YWx1ZWAgYXNzaWdubWVudHMgdG8gYSBzZWNyZXQtbG9va2luZyBuYW1lLiAqL1xuY29uc3QgU0VDUkVUX0FTU0lHTk1FTlQgPSAvXFxiKFtBLVphLXowLTlfXSooPzpUT0tFTnxTRUNSRVR8UEFTU1dPUkR8UEFTU1dEfEFQSV9LRVl8UFJJVkFURV9LRVl8QUNDRVNTX0tFWXxfS0VZKSlcXGJbXCInXT9cXHMqKD86Wzo9XXxcXHMpXFxzKltcIiddPyhbXlxcc1wiJ2AsOyldezE2LH0pL2k7XG4vKiogQSBsb25nIHNpbmdsZS10b2tlbiBiYXNlNjQgb3IgaGV4IHJ1biAoYW4gZW1iZWRkZWQgcGF5bG9hZCkuICovXG5jb25zdCBFTkNPREVEX0JMT0IgPSAvW0EtWmEtejAtOSsvXXsyNDAsfT17MCwyfXxcXGJbMC05YS1mQS1GXXsyNDAsfVxcYi87XG5cbi8qKiBTaGFubm9uIGVudHJvcHkgb2YgYHNgLCBpbiBiaXRzIHBlciBjaGFyYWN0ZXIuICovXG5leHBvcnQgZnVuY3Rpb24gc2hhbm5vbkVudHJvcHkoczogc3RyaW5nKTogbnVtYmVyIHtcbiAgaWYgKCFzKSByZXR1cm4gMDtcbiAgY29uc3QgY291bnRzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbiAgZm9yIChjb25zdCBjaCBvZiBzKSBjb3VudHMuc2V0KGNoLCAoY291bnRzLmdldChjaCkgPz8gMCkgKyAxKTtcbiAgbGV0IGggPSAwO1xuICBmb3IgKGNvbnN0IG4gb2YgY291bnRzLnZhbHVlcygpKSB7XG4gICAgY29uc3QgcCA9IG4gLyBzLmxlbmd0aDtcbiAgICBoIC09IHAgKiBNYXRoLmxvZzIocCk7XG4gIH1cbiAgcmV0dXJuIGg7XG59XG5cbi8qKiBXaGV0aGVyIGEgc2VjcmV0LWFzc2lnbm1lbnQgdmFsdWUgbG9va3MgbGlrZSBhIHJlYWwgY3JlZGVudGlhbCAobm90IGEgcGxhY2Vob2xkZXIgb3IgYSByZWZlcmVuY2UpLiAqL1xuZnVuY3Rpb24gbG9va3NMaWtlU2VjcmV0VmFsdWUodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoL1skXXxcXHtcXHt8PHw+fFxcKnszLH18eHs2LH18Y2hhbmdlbWV8ZXhhbXBsZXxwbGFjZWhvbGRlcnx5b3VyWy1fXS9pLnRlc3QodmFsdWUpKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiBzaGFubm9uRW50cm9weSh2YWx1ZSkgPj0gMy41O1xufVxuXG5mdW5jdGlvbiBpc0RvY0ZpbGUocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAvKF58XFwvKXJlYWRtZShcXC5bYS16XSspPyQvaS50ZXN0KHBhdGgpIHx8IC9cXC4obWR8bWFya2Rvd258cnN0fHR4dHxhZG9jKSQvaS50ZXN0KHBhdGgpO1xufVxuXG5mdW5jdGlvbiBtYXNrKGxpbmU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBsaW5lXG4gICAgLnJlcGxhY2UoL1xcYigoPzpBS0lBfEFTSUEpWzAtOUEtWl17NH0pWzAtOUEtWl17MTJ9XFxiL2csICckMeKApicpXG4gICAgLnJlcGxhY2UoL1xcYihnaFtwb3Vzcl1ffGdpdGh1Yl9wYXRffHhveFtiYXBdLXxnbHBhdC18c2tfbGl2ZV8pW0EtWmEtejAtOV8tXSsvZywgJyQx4oCmJylcbiAgICAucmVwbGFjZShTRUNSRVRfQVNTSUdOTUVOVCwgKG0sIF9uYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpID0+IG0ucmVwbGFjZSh2YWx1ZSwgYCR7dmFsdWUuc2xpY2UoMCwgNCl94oCmYCkpO1xufVxuXG5mdW5jdGlvbiBleGNlcnB0T2YobGluZTogc3RyaW5nLCBzZWNyZXQ6IGJvb2xlYW4pOiBzdHJpbmcge1xuICBjb25zdCB0ID0gKHNlY3JldCA/IG1hc2sobGluZSkgOiBsaW5lKS50cmltKCk7XG4gIHJldHVybiB0Lmxlbmd0aCA+IEVYQ0VSUFRfTUFYID8gYCR7dC5zbGljZSgwLCBFWENFUlBUX01BWCAtIDEpfeKApmAgOiB0O1xufVxuXG4vKiogV2hldGhlciBhIGRlY29kZWQgYnVmZmVyIGxvb2tzIGJpbmFyeSAoYSBOVUwgaW4gaXRzIGZpcnN0IDggS2lCKS4gKi9cbmZ1bmN0aW9uIGlzQmluYXJ5KGJ5dGVzOiBVaW50OEFycmF5KTogYm9vbGVhbiB7XG4gIGNvbnN0IG4gPSBNYXRoLm1pbihieXRlcy5sZW5ndGgsIDgxOTIpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykgaWYgKGJ5dGVzW2ldID09PSAwKSByZXR1cm4gdHJ1ZTtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBhc1RleHQoY29udGVudDogc3RyaW5nIHwgVWludDhBcnJheSk6IHsgdGV4dDogc3RyaW5nIHwgbnVsbDsgYnl0ZXM6IG51bWJlciB9IHtcbiAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykgcmV0dXJuIHsgdGV4dDogY29udGVudC5pbmNsdWRlcygnXFx1MDAwMCcpID8gbnVsbCA6IGNvbnRlbnQsIGJ5dGVzOiBCdWZmZXIuYnl0ZUxlbmd0aChjb250ZW50KSB9O1xuICBpZiAoaXNCaW5hcnkoY29udGVudCkpIHJldHVybiB7IHRleHQ6IG51bGwsIGJ5dGVzOiBjb250ZW50Lmxlbmd0aCB9O1xuICByZXR1cm4geyB0ZXh0OiBCdWZmZXIuZnJvbShjb250ZW50KS50b1N0cmluZygndXRmOCcpLCBieXRlczogY29udGVudC5sZW5ndGggfTtcbn1cblxuLyoqXG4gKiBTY2FuIGEgcGx1Z2luIHBhY2thZ2UncyBmaWxlcy4gYGZpbGVzYCBwYXRocyBhcmUgcGFja2FnZS1yZWxhdGl2ZTsgYVxuICogRG9ja2VyZmlsZSBpcyByZWNvZ25pc2VkIGJ5IG5hbWUgKGBEb2NrZXJmaWxlYCwgYCouRG9ja2VyZmlsZWAsXG4gKiBgRG9ja2VyZmlsZS4qYCkuIERldGVybWluaXN0aWM6IGZpbmRpbmdzIGNvbWUgYmFjayBpbiBmaWxlIHRoZW4gbGluZSBvcmRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNjYW5QbHVnaW5Tb3VyY2VIZXVyaXN0aWNzKGZpbGVzOiByZWFkb25seSBIZXVyaXN0aWNzSW5wdXRGaWxlW10pOiBIZXVyaXN0aWNzUmVwb3J0IHtcbiAgY29uc3QgZmluZGluZ3M6IEhldXJpc3RpY0ZpbmRpbmdbXSA9IFtdO1xuICBjb25zdCBza2lwcGVkRmlsZXM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHNlZW4gPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgbGV0IHNjYW5uZWRGaWxlcyA9IDA7XG4gIGxldCBidWRnZXQgPSBIRVVSSVNUSUNTX01BWF9UT1RBTF9CWVRFUztcblxuICBjb25zdCBhZGQgPSAoZjogSGV1cmlzdGljRmluZGluZyk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGtleSA9IGAke2YuaWR9fCR7Zi5wYXRofXwke2YubGluZX1gO1xuICAgIGlmIChzZWVuLmhhcyhrZXkpIHx8IGZpbmRpbmdzLmxlbmd0aCA+PSBIRVVSSVNUSUNTX01BWF9GSU5ESU5HUykgcmV0dXJuO1xuICAgIHNlZW4uYWRkKGtleSk7XG4gICAgZmluZGluZ3MucHVzaChmKTtcbiAgfTtcblxuICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICBjb25zdCB7IHRleHQsIGJ5dGVzIH0gPSBhc1RleHQoZmlsZS5jb250ZW50KTtcbiAgICBpZiAodGV4dCA9PT0gbnVsbCB8fCBieXRlcyA+IEhFVVJJU1RJQ1NfTUFYX0ZJTEVfQllURVMgfHwgYnl0ZXMgPiBidWRnZXQpIHtcbiAgICAgIHNraXBwZWRGaWxlcy5wdXNoKGZpbGUucGF0aCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgYnVkZ2V0IC09IGJ5dGVzO1xuICAgIHNjYW5uZWRGaWxlcysrO1xuICAgIGNvbnN0IGRvYyA9IGlzRG9jRmlsZShmaWxlLnBhdGgpO1xuICAgIGNvbnN0IGxpbmVzID0gdGV4dC5yZXBsYWNlKC9cXHJcXG4/L2csICdcXG4nKS5zcGxpdCgnXFxuJyk7XG5cbiAgICBsaW5lcy5mb3JFYWNoKChyYXcsIGlkeCkgPT4ge1xuICAgICAgY29uc3QgbGluZSA9IGlkeCArIDE7XG4gICAgICBpZiAoRU5DT0RFRF9CTE9CLnRlc3QocmF3KSkge1xuICAgICAgICBhZGQoeyBpZDogJ2VuY29kZWQtYmxvYicsIHNldmVyaXR5OiAnbWVkaXVtJywgcGF0aDogZmlsZS5wYXRoLCBsaW5lLCBleGNlcnB0OiBleGNlcnB0T2YocmF3LCBmYWxzZSksIG1lc3NhZ2U6ICdMb25nIHNpbmdsZS1saW5lIGVuY29kZWQgcGF5bG9hZCcgfSk7XG4gICAgICB9XG4gICAgICBjb25zdCBzY2FuID0gcmF3Lmxlbmd0aCA+IExJTkVfU0NBTl9NQVggPyByYXcuc2xpY2UoMCwgTElORV9TQ0FOX01BWCkgOiByYXc7XG4gICAgICBjb25zdCBjb21tZW50ID0gL15cXHMqKCN8XFwvXFwvKS8udGVzdChzY2FuKTtcbiAgICAgIGZvciAoY29uc3QgcnVsZSBvZiBMSU5FX1JVTEVTKSB7XG4gICAgICAgIGlmIChydWxlLmNvZGVPbmx5ICYmIGNvbW1lbnQpIGNvbnRpbnVlO1xuICAgICAgICBpZiAoIXJ1bGUudGVzdC50ZXN0KHNjYW4pKSBjb250aW51ZTtcbiAgICAgICAgY29uc3Qgc2V2ZXJpdHkgPSBkb2MgJiYgcnVsZS5kb2NTZXZlcml0eSAhPT0gdW5kZWZpbmVkID8gcnVsZS5kb2NTZXZlcml0eSA6IHJ1bGUuc2V2ZXJpdHk7XG4gICAgICAgIGlmIChzZXZlcml0eSA9PT0gbnVsbCkgY29udGludWU7XG4gICAgICAgIGFkZCh7IGlkOiBydWxlLmlkLCBzZXZlcml0eSwgcGF0aDogZmlsZS5wYXRoLCBsaW5lLCBleGNlcnB0OiBleGNlcnB0T2Yoc2NhbiwgcnVsZS5zZWNyZXQgPT09IHRydWUpLCBtZXNzYWdlOiBydWxlLm1lc3NhZ2UgfSk7XG4gICAgICB9XG4gICAgICBjb25zdCBhc3NpZ25tZW50ID0gU0VDUkVUX0FTU0lHTk1FTlQuZXhlYyhzY2FuKTtcbiAgICAgIGlmIChhc3NpZ25tZW50ICYmIGxvb2tzTGlrZVNlY3JldFZhbHVlKGFzc2lnbm1lbnRbMl0hKSkge1xuICAgICAgICBhZGQoe1xuICAgICAgICAgIGlkOiAnc2VjcmV0LWRlZmF1bHQnLFxuICAgICAgICAgIHNldmVyaXR5OiBkb2MgPyAnbWVkaXVtJyA6ICdoaWdoJyxcbiAgICAgICAgICBwYXRoOiBmaWxlLnBhdGgsXG4gICAgICAgICAgbGluZSxcbiAgICAgICAgICBleGNlcnB0OiBleGNlcnB0T2Yoc2NhbiwgdHJ1ZSksXG4gICAgICAgICAgbWVzc2FnZTogYEhpZ2gtZW50cm9weSB2YWx1ZSBhc3NpZ25lZCB0byAke2Fzc2lnbm1lbnRbMV19YCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBEb2NrZXJmaWxlIFJVTiBsaW5lcyB0aGF0IHBpcGUgYSBkb3dubG9hZCBpbnRvIGEgc2hlbGwsIGNvbnRpbnVhdGlvbi1qb2luZWRcbiAgICAvLyAodGhlIGxpbmUgcnVsZSBhYm92ZSBvbmx5IHNlZXMgb25lIHBoeXNpY2FsIGxpbmUpLlxuICAgIGlmICgvKF58XFwvKShEb2NrZXJmaWxlKFxcLlteL10rKT98W14vXStcXC5Eb2NrZXJmaWxlKSQvaS50ZXN0KGZpbGUucGF0aCkpIHtcbiAgICAgIGZvciAoY29uc3QgaW5zdHJ1Y3Rpb24gb2YgcGlwZUluc3RhbGxlcnModGV4dCkpIHtcbiAgICAgICAgY29uc3QgZmlyc3RMaW5lID0gbGluZXMuZmluZEluZGV4KChsKSA9PiBsLnRyaW0oKSAhPT0gJycgJiYgaW5zdHJ1Y3Rpb24uc3RhcnRzV2l0aChsLnRyaW0oKS5yZXBsYWNlKC9cXFxcXFxzKiQvLCAnJykudHJpbSgpKSk7XG4gICAgICAgIGFkZCh7XG4gICAgICAgICAgaWQ6ICdwaXBlLXRvLXNoZWxsJyxcbiAgICAgICAgICBzZXZlcml0eTogJ2hpZ2gnLFxuICAgICAgICAgIHBhdGg6IGZpbGUucGF0aCxcbiAgICAgICAgICBsaW5lOiBmaXJzdExpbmUgPj0gMCA/IGZpcnN0TGluZSArIDEgOiAxLFxuICAgICAgICAgIGV4Y2VycHQ6IGV4Y2VycHRPZihpbnN0cnVjdGlvbiwgZmFsc2UpLFxuICAgICAgICAgIG1lc3NhZ2U6ICdEb3dubG9hZCBwaXBlZCBzdHJhaWdodCBpbnRvIGEgc2hlbGwnLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4geyBmaW5kaW5ncywgc2Nhbm5lZEZpbGVzLCBza2lwcGVkRmlsZXMgfTtcbn1cblxuLyoqIFRoZSBmaW5kaW5ncyB0aGF0IGZhaWwgYSBnYXRlIChgaGlnaGApLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJsb2NraW5nSGV1cmlzdGljcyhyZXBvcnQ6IFBpY2s8SGV1cmlzdGljc1JlcG9ydCwgJ2ZpbmRpbmdzJz4pOiBIZXVyaXN0aWNGaW5kaW5nW10ge1xuICByZXR1cm4gcmVwb3J0LmZpbmRpbmdzLmZpbHRlcigoZikgPT4gZi5zZXZlcml0eSA9PT0gJ2hpZ2gnKTtcbn1cbiJdfQ==
@@ -133,4 +133,4 @@ export function lintPluginSpec(spec, specText) {
133
133
  }
134
134
  return findings;
135
135
  }
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWxpbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9wbHVnaW4tbGludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUVILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU96RCw0REFBNEQ7QUFDNUQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQXNCLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUMvTCxtQ0FBbUM7QUFDbkMsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQXNCLENBQUMsd0JBQXdCLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBRXZJLHdGQUF3RjtBQUN4RixNQUFNLFVBQVUsc0JBQXNCLENBQUMsT0FBZTtJQUNwRCxNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUM7SUFDekIsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2IsS0FBSyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM5RCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQUUsU0FBUztRQUNoQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QixHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ3ZDLFNBQVM7UUFDWCxDQUFDO1FBQ0QsR0FBRyxJQUFJLEdB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QUNELElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFFBQVEsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM5RSxHQUFHLENBQUMsa0VBQWtFLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFDRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1FBQUUsR0FBRyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7SUFDdkgsSUFBSSxVQUFVLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFBRSxHQUFHLENBQUMsdUNBQXVDLENBQUMsQ0FBQztJQUN0SSxNQUFNLFFBQVEsR0FBRyx5RkFBeUYsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUgsSUFBSSxRQUFRO1FBQUUsR0FBRyxDQUFDLDhGQUE4RixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0ksSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzNELFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxxR0FBcUcsRUFBRSxDQUFDLENBQUM7SUFDdEosQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBUaGUgY2F0YWxvZydzIFNUQVRJQyBwbHVnaW4gY2hlY2tzIChkZXBsb3kvYmluL3Rlc3QtcGx1Z2lucy5zaCksIGZvciBhIHBsdWdpblxuICogZGlyZWN0b3J5IG91dHNpZGUgdGhlIHJlcG86IHRoZSBzcGVjIGZpZWxkcyB0aGUgY2F0YWxvZyB0b29saW5nIHJlcXVpcmVzIGFuZFxuICogdGhlIERvY2tlcmZpbGUgcnVsZXMgKGRlcGxveS9wbHVnaW5zL1JFQURNRS5tZCBcIkRvY2tlcmZpbGUgcnVsZXNcIikuIFNoYXJlZFxuICogZnJvbSBhcGktY29yZSBzbyB0aGUgQ0xJIChgcGx1Z2luIHZhbGlkYXRlIC0tbGludGAsIGBwbHVnaW4gcHVibGlzaGApIGFuZCB0aGVcbiAqIHBsdWdpbiBzZXJ2aWNlIChBSSBnZW5lcmF0aW9uKSBhcHBseSBPTkUgaW1wbGVtZW50YXRpb24gKHBsdWdpbi1lY29zeXN0ZW0gVzYpOlxuICpcbiAqICAtIHRoZSBmaW5hbCBzdGFnZSBlbmRzIGFzIGEgbm9uLXJvb3QgYFVTRVJgLCBzZXQgaW4gdGhlIHBsdWdpbidzIG93biBEb2NrZXJmaWxlO1xuICogIC0gZXZlcnkgZG93bmxvYWQgZ29lcyB0aHJvdWdoIGBmZXRjaC12ZXJpZmllZGAgKG5vIHJhdyBjdXJsL3dnZXQsIG5vIGBBREQgPHVybD5gXG4gKiAgICB3aXRob3V0IGAtLWNoZWNrc3VtPWApO1xuICogIC0gbm8gcGlwZS10by1zaGVsbCBpbnN0YWxsZXJzO1xuICogIC0gbm8gc2VjcmV0cyBpbiBgRU5WYC9gQVJHYDsgYXB0IGNhY2hlcyBjbGVhbmVkOyBhIGBXT1JLRElSYDtcbiAqICAtIHRoZSBzcGVjIG5ldmVyIGRvd25sb2FkcyBhIHRvb2wgYXQgcnVudGltZS5cbiAqXG4gKiBPbmx5IHRoZSByZXBvLWxheW91dCBydWxlcyAobmFtZSA9IGRpcmVjdG9yeSwgY2F0ZWdvcnkgPSBwYXJlbnQgZGlyZWN0b3J5KVxuICogYXJlIGxlZnQgdG8gdGVzdC1wbHVnaW5zLnNoOiBhIHB1Ymxpc2hlcidzIHBsdWdpbiBkb2Vzbid0IGxpdmUgaW4gdGhhdCB0cmVlLlxuICogV2FybmluZ3MgbmV2ZXIgZmFpbDsgZXJyb3JzIGRvLlxuICovXG5cbmltcG9ydCB7IHBhcnNlRG9ja2VyZmlsZSB9IGZyb20gJy4vZG9ja2VyZmlsZS1zdGF0aWMuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbkxpbnRGaW5kaW5nIHtcbiAgbGV2ZWw6ICdlcnJvcicgfCAnd2FybmluZyc7XG4gIG1lc3NhZ2U6IHN0cmluZztcbn1cblxuLyoqIFNwZWMgZmllbGRzIHRlc3QtcGx1Z2lucy5zaCByZXF1aXJlcyBvbiBldmVyeSBwbHVnaW4uICovXG5leHBvcnQgY29uc3QgUExVR0lOX0xJTlRfUkVRVUlSRURfRklFTERTOiByZWFkb25seSBzdHJpbmdbXSA9IFsnbmFtZScsICdkZXNjcmlwdGlvbicsICdrZXl3b3JkcycsICdjYXRlZ29yeScsICd2ZXJzaW9uJywgJ3BsdWdpblR5cGUnLCAnY29tcHV0ZVR5cGUnLCAndGltZW91dCcsICdmYWlsdXJlQmVoYXZpb3InLCAnc2VjcmV0cyddO1xuLyoqIOKApmFuZCBvbiBldmVyeSBDb2RlQnVpbGRTdGVwLiAqL1xuZXhwb3J0IGNvbnN0IFBMVUdJTl9MSU5UX0NPREVCVUlMRF9GSUVMRFM6IHJlYWRvbmx5IHN0cmluZ1tdID0gWydwcmltYXJ5T3V0cHV0RGlyZWN0b3J5JywgJ2RvY2tlcmZpbGUnLCAnaW5zdGFsbENvbW1hbmRzJywgJ2NvbW1hbmRzJ107XG5cbi8qKiBMb2dpY2FsIERvY2tlcmZpbGUgaW5zdHJ1Y3Rpb25zOiBjb21tZW50IGxpbmVzIGRyb3BwZWQsIGBcXGAgY29udGludWF0aW9ucyBqb2luZWQuICovXG5leHBvcnQgZnVuY3Rpb24gZG9ja2VyZmlsZUluc3RydWN0aW9ucyhjb250ZW50OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IG91dDogc3RyaW5nW10gPSBbXTtcbiAgbGV0IGJ1ZiA9ICcnO1xuICBmb3IgKGNvbnN0IHJhdyBvZiBjb250ZW50LnJlcGxhY2UoL1xcclxcbj8vZywgJ1xcbicpLnNwbGl0KCdcXG4nKSkge1xuICAgIGlmICgvXlxccyojLy50ZXN0KHJhdykpIGNvbnRpbnVlO1xuICAgIGlmICgvXFxcXFxccyokLy50ZXN0KHJhdykpIHtcbiAgICAgIGJ1ZiArPSBgJHtyYXcucmVwbGFjZSgvXFxcXFxccyokLywgJycpfSBgO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGJ1ZiArPSByYXc7XG4gICAgaWYgKC9cXFMvLnRlc3QoYnVmKSkgb3V0LnB1c2goYnVmLnRyaW0oKSk7XG4gICAgYnVmID0gJyc7XG4gIH1cbiAgaWYgKC9cXFMvLnRlc3QoYnVmKSkgb3V0LnB1c2goYnVmLnRyaW0oKSk7XG4gIHJldHVybiBvdXQ7XG59XG5cbmNvbnN0IGluc3RydWN0aW9uT2YgPSAobGluZTogc3RyaW5nKTogc3RyaW5nID0+ICgvXihcXFMrKS8uZXhlYyhsaW5lKT8uWzFdID8/ICcnKS50b1VwcGVyQ2FzZSgpO1xuXG4vKiogUlVOIGluc3RydWN0aW9ucyB0aGF0IHBpcGUgaW50byBhIHNoZWxsIChgY3VybCDigKYgfCBiYXNoYCkuICovXG5leHBvcnQgZnVuY3Rpb24gcGlwZUluc3RhbGxlcnMoY29udGVudDogc3RyaW5nKTogc3RyaW5nW10ge1xuICByZXR1cm4gZG9ja2VyZmlsZUluc3RydWN0aW9ucyhjb250ZW50KS5maWx0ZXIobCA9PlxuICAgIGluc3RydWN0aW9uT2YobCkgPT09ICdSVU4nICYmIC8oXnxbXnxdKVxcfFxccyooc3Vkb1xccyspPyhcXC91c3IpPyhcXC9iaW5cXC8pPyhiYXxkYXx6fGspP3NoKFxcc3wkKS8udGVzdChsKSk7XG59XG5cbi8qKiBjdXJsL3dnZXQgRE9XTkxPQURTIGluIFJVTiwgYW5kIGBBREQgPHVybD5gIHdpdGhvdXQgYC0tY2hlY2tzdW09YC4gKi9cbmV4cG9ydCBmdW5jdGlvbiByYXdEb3dubG9hZHMoY29udGVudDogc3RyaW5nKTogc3RyaW5nW10ge1xuICBjb25zdCBmb3VuZDogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBsaW5lIG9mIGRvY2tlcmZpbGVJbnN0cnVjdGlvbnMoY29udGVudCkpIHtcbiAgICBjb25zdCBpbnN0ciA9IGluc3RydWN0aW9uT2YobGluZSk7XG4gICAgaWYgKGluc3RyID09PSAnQUREJyAmJiAvaHR0cHM/OlxcL1xcLy8udGVzdChsaW5lKSAmJiAhLy0tY2hlY2tzdW09Ly50ZXN0KGxpbmUpKSB7XG4gICAgICBmb3VuZC5wdXNoKGBBREQgJHtsaW5lfWApO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGlmIChpbnN0ciAhPT0gJ1JVTicpIGNvbnRpbnVlO1xuICAgIGNvbnN0IGJvZHkgPSBsaW5lLnJlcGxhY2UoL15cXHMqcnVuXFxzKy9pLCAnJyk7XG4gICAgZm9yIChsZXQgcGFydCBvZiBib2R5LnNwbGl0KC8mJnxcXHxcXHx8O3xcXHx8XFwkXFwofGB8XFwofFxcey8pKSB7XG4gICAgICBmb3IgKDs7KSB7XG4gICAgICAgIHBhcnQgPSBwYXJ0LnJlcGxhY2UoL15cXHMrLywgJycpO1xuICAgICAgICBjb25zdCBwcmVmaXggPSAvXihpZnx0aGVufGRvfGVsc2V8ZWxpZnx3aGlsZXx1bnRpbHwhfHN1ZG98ZXhlY3xjb21tYW5kfHRpbWV8LS1bYS16LV0rKD1cXFMqKT98W0EtWmEtel9dW0EtWmEtejAtOV9dKj1cXFMqKVxccysvLmV4ZWMocGFydCk7XG4gICAgICAgIGlmICghcHJlZml4KSBicmVhaztcbiAgICAgICAgcGFydCA9IHBhcnQuc2xpY2UocHJlZml4WzBdLmxlbmd0aCk7XG4gICAgICB9XG4gICAgICBpZiAoL14oY3VybHx3Z2V0KShcXHN8JCkvLnRlc3QocGFydCkgJiYgKC86XFwvXFwvLy50ZXN0KHBhcnQpIHx8IC9cXCQvLnRlc3QocGFydCkgfHwgL1xccygtb3wtT3wtLW91dHB1dHwtLW91dHB1dC1kb2N1bWVudCkoW1xccz1dfCQpLy50ZXN0KHBhcnQpKSkge1xuICAgICAgICBmb3VuZC5wdXNoKHBhcnQudHJpbSgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZvdW5kO1xufVxuXG4vKiogTGludCBhIERvY2tlcmZpbGUgYWdhaW5zdCB0aGUgY2F0YWxvZydzIHJ1bGVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpbnRQbHVnaW5Eb2NrZXJmaWxlKGNvbnRlbnQ6IHN0cmluZyk6IFBsdWdpbkxpbnRGaW5kaW5nW10ge1xuICBjb25zdCBmaW5kaW5nczogUGx1Z2luTGludEZpbmRpbmdbXSA9IFtdO1xuICBjb25zdCBlcnIgPSAobWVzc2FnZTogc3RyaW5nKSA9PiBmaW5kaW5ncy5wdXNoKHsgbGV2ZWw6ICdlcnJvcicsIG1lc3NhZ2UgfSk7XG4gIGNvbnN0IGluc3RydWN0aW9ucyA9IGRvY2tlcmZpbGVJbnN0cnVjdGlvbnMoY29udGVudCk7XG4gIGlmICghaW5zdHJ1Y3Rpb25zLnNvbWUobCA9PiBpbnN0cnVjdGlvbk9mKGwpID09PSAnRlJPTScpKSB7XG4gICAgZXJyKCdEb2NrZXJmaWxlOiBtaXNzaW5nIEZST00gaW5zdHJ1Y3Rpb24nKTtcbiAgICByZXR1cm4gZmluZGluZ3M7XG4gIH1cbiAgaWYgKCFpbnN0cnVjdGlvbnMuc29tZShsID0+IGluc3RydWN0aW9uT2YobCkgPT09ICdXT1JLRElSJykpIGVycignRG9ja2VyZmlsZTogbWlzc2luZyBXT1JLRElSIGluc3RydWN0aW9uJyk7XG4gIGlmICgvXihFTlZ8QVJHKVxccysoLipUT0tFTnwuKlNFQ1JFVHwuKlBBU1NXT1JEfC4qQVBJX0tFWXwuKlBSSVZBVEVfS0VZKS9tLnRlc3QoY29udGVudCkpIHtcbiAgICBlcnIoJ0RvY2tlcmZpbGU6IHBvdGVudGlhbCBzZWNyZXQgaW4gYW4gRU5WL0FSRyBpbnN0cnVjdGlvbiAocGFzcyBzZWNyZXRzIGF0IHJ1biB0aW1lIHZpYSB0aGUgc3BlY1xcJ3MgYHNlY3JldHNgKScpO1xuICB9XG4gIGNvbnN0IGZpbmFsVXNlciA9IHBhcnNlRG9ja2VyZmlsZShjb250ZW50KS5maW5hbFVzZXI7XG4gIGNvbnN0IHVzZXJQYXJ0ID0gKGZpbmFsVXNlciA/PyAnJykuc3BsaXQoJzonKVswXTtcbiAgaWYgKCFmaW5hbFVzZXIpIGVycignRG9ja2VyZmlsZTogdGhlIGZpbmFsIHN0YWdlIHNldHMgbm8gVVNFUiAoZW5kIHdpdGggYFVTRVIgMTAwMDoxMDAwYCknKTtcbiAgZWxzZSBpZiAodXNlclBhcnQgPT09ICdyb290JyB8fCB1c2VyUGFydCA9PT0gJzAnKSBlcnIoYERvY2tlcmZpbGU6IHRoZSBmaW5hbCBzdGFnZSBydW5zIGFzIHJvb3QgKFVTRVIgJHtmaW5hbFVzZXJ9KTsgZW5kIHdpdGggXFxgVVNFUiAxMDAwOjEwMDBcXGBgKTtcbiAgY29uc3QgcGlwZXMgPSBwaXBlSW5zdGFsbGVycyhjb250ZW50KTtcbiAgaWYgKHBpcGVzLmxlbmd0aCkgZXJyKGBEb2NrZXJmaWxlOiBwaXBlcyBhIGRvd25sb2FkIGludG8gYSBzaGVsbCAodXNlIGEgcGlubmVkIHJlbGVhc2UgdmlhIGZldGNoLXZlcmlmaWVkLCBhIGZldGNoLWFwdC1rZXkgYXB0IHJlcG8sIG9yIGFuIGVjb3N5c3RlbSBiYXNlKTogJHtwaXBlc1swXSEuc2xpY2UoMCwgMTYwKX1gKTtcbiAgY29uc3QgZG93bmxvYWRzID0gcmF3RG93bmxvYWRzKGNvbnRlbnQpO1xuICBpZiAoZG93bmxvYWRzLmxlbmd0aCkgZXJyKGBEb2NrZXJmaWxlOiByYXcgZG93bmxvYWQgbm90IHZpYSBmZXRjaC12ZXJpZmllZDogJHtkb3dubG9hZHNbMF0hLnNsaWNlKDAsIDE2MCl9YCk7XG4gIGlmICgvYXB0LWdldCBpbnN0YWxsLy50ZXN0KGNvbnRlbnQpICYmICEvcm0gLXJmIFxcL3ZhclxcL2xpYlxcL2FwdFxcL2xpc3RzLy50ZXN0KGNvbnRlbnQpKSB7XG4gICAgZXJyKCdEb2NrZXJmaWxlOiBtaXNzaW5nIGFwdCBjYWNoZSBjbGVhbnVwIChybSAtcmYgL3Zhci9saWIvYXB0L2xpc3RzLyopJyk7XG4gIH1cbiAgcmV0dXJuIGZpbmRpbmdzO1xufVxuXG4vKiogTGludCB0aGUgc3BlYyBkb2N1bWVudCAoYXMgcGFyc2VkKSB0aGUgd2F5IHRlc3QtcGx1Z2lucy5zaCBkb2VzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpbnRQbHVnaW5TcGVjKHNwZWM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBzcGVjVGV4dDogc3RyaW5nKTogUGx1Z2luTGludEZpbmRpbmdbXSB7XG4gIGNvbnN0IGZpbmRpbmdzOiBQbHVnaW5MaW50RmluZGluZ1tdID0gW107XG4gIGNvbnN0IGVyciA9IChtZXNzYWdlOiBzdHJpbmcpID0+IGZpbmRpbmdzLnB1c2goeyBsZXZlbDogJ2Vycm9yJywgbWVzc2FnZSB9KTtcbiAgZm9yIChjb25zdCBmIG9mIFBMVUdJTl9MSU5UX1JFUVVJUkVEX0ZJRUxEUykgaWYgKCEoZiBpbiBzcGVjKSkgZXJyKGBwbHVnaW4tc3BlYy55YW1sOiBtaXNzaW5nIHJlcXVpcmVkIGZpZWxkOiAke2Z9YCk7XG4gIGlmIChzcGVjLnBsdWdpblR5cGUgPT09ICdDb2RlQnVpbGRTdGVwJyB8fCBzcGVjLnBsdWdpblR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgIGZvciAoY29uc3QgZiBvZiBQTFVHSU5fTElOVF9DT0RFQlVJTERfRklFTERTKSBpZiAoIShmIGluIHNwZWMpKSBlcnIoYHBsdWdpbi1zcGVjLnlhbWw6IG1pc3NpbmcgQ29kZUJ1aWxkIGZpZWxkOiAke2Z9YCk7XG4gIH1cbiAgaWYgKHR5cGVvZiBzcGVjLnZlcnNpb24gPT09ICdzdHJpbmcnICYmICEvXlxcZCtcXC5cXGQrXFwuXFxkKyQvLnRlc3Qoc3BlYy52ZXJzaW9uKSkge1xuICAgIGVycihgcGx1Z2luLXNwZWMueWFtbDogY2F0YWxvZyB2ZXJzaW9ucyBhcmUgcGxhaW4gc2VtdmVyIHgueS56IChnb3QgJHtzcGVjLnZlcnNpb259KWApO1xuICB9XG4gIGlmICh0eXBlb2Ygc3BlYy5kZXNjcmlwdGlvbiAhPT0gJ3N0cmluZycgfHwgc3BlYy5kZXNjcmlwdGlvbi50cmltKCkgPT09ICcnKSBlcnIoJ3BsdWdpbi1zcGVjLnlhbWw6IGVtcHR5IGRlc2NyaXB0aW9uJyk7XG4gIGlmICgna2V5d29yZHMnIGluIHNwZWMgJiYgKCFBcnJheS5pc0FycmF5KHNwZWMua2V5d29yZHMpIHx8IHNwZWMua2V5d29yZHMubGVuZ3RoID09PSAwKSkgZXJyKCdwbHVnaW4tc3BlYy55YW1sOiBlbXB0eSBrZXl3b3JkcyBsaXN0Jyk7XG4gIGNvbnN0IGRvd25sb2FkID0gLyhjdXJsfHdnZXQpXFxzLipodHRwcz86XFwvXFwvW15cXHNcIl0qKHJlbGVhc2VzXFwvZG93bmxvYWRcXC98XFwudGFyXFwuZ3p8XFwudGd6fFxcLnRhclxcLnh6fFxcLnppcCkvLmV4ZWMoc3BlY1RleHQpO1xuICBpZiAoZG93bmxvYWQpIGVycihgcGx1Z2luLXNwZWMueWFtbDogZG93bmxvYWRzIGEgdG9vbCBhdCBydW50aW1lIChiYWtlIGl0IGludG8gdGhlIGltYWdlIHZpYSBmZXRjaC12ZXJpZmllZCk6ICR7ZG93bmxvYWRbMF0uc2xpY2UoMCwgMTYwKX1gKTtcbiAgaWYgKC9eXFxzKi0gXFx8L20udGVzdChzcGVjVGV4dCkgJiYgIS9zZXQgLWUvLnRlc3Qoc3BlY1RleHQpKSB7XG4gICAgZmluZGluZ3MucHVzaCh7IGxldmVsOiAnd2FybmluZycsIG1lc3NhZ2U6ICdwbHVnaW4tc3BlYy55YW1sOiBtdWx0aS1saW5lIGNvbW1hbmQocykgd2l0aG91dCBgc2V0IC1lYCDigJQgaW50ZXJtZWRpYXRlIGZhaWx1cmVzIHdpbGwgc2lsZW50bHkgcGFzcycgfSk7XG4gIH1cbiAgcmV0dXJuIGZpbmRpbmdzO1xufVxuIl19
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWxpbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3BsdWdpbi1saW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBRUgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBT3pELDREQUE0RDtBQUM1RCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBc0IsQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQy9MLG1DQUFtQztBQUNuQyxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBc0IsQ0FBQyx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFFdkksd0ZBQXdGO0FBQ3hGLE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxPQUFlO0lBQ3BELE1BQU0sR0FBRyxHQUFhLEVBQUUsQ0FBQztJQUN6QixJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDYixLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzlELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFBRSxTQUFTO1FBQ2hDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLEdBQUcsSUFBSSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDdkMsU0FBUztRQUNYLENBQUM7UUFDRCxHQUFHLElBQUksR0FBRyxDQUFDO1FBQ1gsSUFB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QUksQ0FBQyxPQUFPLEtBQUssUUFBUSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzlFLEdBQUcsQ0FBQyxrRUFBa0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUNELElBQUksT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7UUFBRSxHQUFHLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUN2SCxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztRQUFFLEdBQUcsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBQ3RJLE1BQU0sUUFBUSxHQUFHLHlGQUF5RixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxSCxJQUFJLFFBQVE7UUFBRSxHQUFHLENBQUMsOEZBQThGLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3SSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDM0QsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLHFHQUFxRyxFQUFFLENBQUMsQ0FBQztJQUN0SixDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFRoZSBjYXRhbG9nJ3MgU1RBVElDIHBsdWdpbiBjaGVja3MgKGRlcGxveS9iaW4vdGVzdC1wbHVnaW5zLnNoKSwgZm9yIGEgcGx1Z2luXG4gKiBkaXJlY3Rvcnkgb3V0c2lkZSB0aGUgcmVwbzogdGhlIHNwZWMgZmllbGRzIHRoZSBjYXRhbG9nIHRvb2xpbmcgcmVxdWlyZXMgYW5kXG4gKiB0aGUgRG9ja2VyZmlsZSBydWxlcyAoZGVwbG95L3BsdWdpbnMvUkVBRE1FLm1kIFwiRG9ja2VyZmlsZSBydWxlc1wiKS4gU2hhcmVkXG4gKiBmcm9tIGFwaS1jb3JlIHNvIHRoZSBDTEkgKGBwbHVnaW4gdmFsaWRhdGUgLS1saW50YCwgYHBsdWdpbiBwdWJsaXNoYCkgYW5kIHRoZVxuICogcGx1Z2luIHNlcnZpY2UgKEFJIGdlbmVyYXRpb24pIGFwcGx5IE9ORSBpbXBsZW1lbnRhdGlvbiAocGx1Z2luLWVjb3N5c3RlbSBXNik6XG4gKlxuICogIC0gdGhlIGZpbmFsIHN0YWdlIGVuZHMgYXMgYSBub24tcm9vdCBgVVNFUmAsIHNldCBpbiB0aGUgcGx1Z2luJ3Mgb3duIERvY2tlcmZpbGU7XG4gKiAgLSBldmVyeSBkb3dubG9hZCBnb2VzIHRocm91Z2ggYGZldGNoLXZlcmlmaWVkYCAobm8gcmF3IGN1cmwvd2dldCwgbm8gYEFERCA8dXJsPmBcbiAqICAgIHdpdGhvdXQgYC0tY2hlY2tzdW09YCk7XG4gKiAgLSBubyBwaXBlLXRvLXNoZWxsIGluc3RhbGxlcnM7XG4gKiAgLSBubyBzZWNyZXRzIGluIGBFTlZgL2BBUkdgOyBhcHQgY2FjaGVzIGNsZWFuZWQ7IGEgYFdPUktESVJgO1xuICogIC0gdGhlIHNwZWMgbmV2ZXIgZG93bmxvYWRzIGEgdG9vbCBhdCBydW50aW1lLlxuICpcbiAqIE9ubHkgdGhlIHJlcG8tbGF5b3V0IHJ1bGVzIChuYW1lID0gZGlyZWN0b3J5LCBjYXRlZ29yeSA9IHBhcmVudCBkaXJlY3RvcnkpXG4gKiBhcmUgbGVmdCB0byB0ZXN0LXBsdWdpbnMuc2g6IGEgcHVibGlzaGVyJ3MgcGx1Z2luIGRvZXNuJ3QgbGl2ZSBpbiB0aGF0IHRyZWUuXG4gKiBXYXJuaW5ncyBuZXZlciBmYWlsOyBlcnJvcnMgZG8uXG4gKi9cblxuaW1wb3J0IHsgcGFyc2VEb2NrZXJmaWxlIH0gZnJvbSAnLi9kb2NrZXJmaWxlLXN0YXRpYy5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luTGludEZpbmRpbmcge1xuICBsZXZlbDogJ2Vycm9yJyB8ICd3YXJuaW5nJztcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG4vKiogU3BlYyBmaWVsZHMgdGVzdC1wbHVnaW5zLnNoIHJlcXVpcmVzIG9uIGV2ZXJ5IHBsdWdpbi4gKi9cbmV4cG9ydCBjb25zdCBQTFVHSU5fTElOVF9SRVFVSVJFRF9GSUVMRFM6IHJlYWRvbmx5IHN0cmluZ1tdID0gWyduYW1lJywgJ2Rlc2NyaXB0aW9uJywgJ2tleXdvcmRzJywgJ2NhdGVnb3J5JywgJ3ZlcnNpb24nLCAncGx1Z2luVHlwZScsICdjb21wdXRlVHlwZScsICd0aW1lb3V0JywgJ2ZhaWx1cmVCZWhhdmlvcicsICdzZWNyZXRzJ107XG4vKiog4oCmYW5kIG9uIGV2ZXJ5IENvZGVCdWlsZFN0ZXAuICovXG5leHBvcnQgY29uc3QgUExVR0lOX0xJTlRfQ09ERUJVSUxEX0ZJRUxEUzogcmVhZG9ubHkgc3RyaW5nW10gPSBbJ3ByaW1hcnlPdXRwdXREaXJlY3RvcnknLCAnZG9ja2VyZmlsZScsICdpbnN0YWxsQ29tbWFuZHMnLCAnY29tbWFuZHMnXTtcblxuLyoqIExvZ2ljYWwgRG9ja2VyZmlsZSBpbnN0cnVjdGlvbnM6IGNvbW1lbnQgbGluZXMgZHJvcHBlZCwgYFxcYCBjb250aW51YXRpb25zIGpvaW5lZC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkb2NrZXJmaWxlSW5zdHJ1Y3Rpb25zKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3Qgb3V0OiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgYnVmID0gJyc7XG4gIGZvciAoY29uc3QgcmF3IG9mIGNvbnRlbnQucmVwbGFjZSgvXFxyXFxuPy9nLCAnXFxuJykuc3BsaXQoJ1xcbicpKSB7XG4gICAgaWYgKC9eXFxzKiMvLnRlc3QocmF3KSkgY29udGludWU7XG4gICAgaWYgKC9cXFxcXFxzKiQvLnRlc3QocmF3KSkge1xuICAgICAgYnVmICs9IGAke3Jhdy5yZXBsYWNlKC9cXFxcXFxzKiQvLCAnJyl9IGA7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgYnVmICs9IHJhdztcbiAgICBpZiAoL1xcUy8udGVzdChidWYpKSBvdXQucHVzaChidWYudHJpbSgpKTtcbiAgICBidWYgPSAnJztcbiAgfVxuICBpZiAoL1xcUy8udGVzdChidWYpKSBvdXQucHVzaChidWYudHJpbSgpKTtcbiAgcmV0dXJuIG91dDtcbn1cblxuY29uc3QgaW5zdHJ1Y3Rpb25PZiA9IChsaW5lOiBzdHJpbmcpOiBzdHJpbmcgPT4gKC9eKFxcUyspLy5leGVjKGxpbmUpPy5bMV0gPz8gJycpLnRvVXBwZXJDYXNlKCk7XG5cbi8qKiBSVU4gaW5zdHJ1Y3Rpb25zIHRoYXQgcGlwZSBpbnRvIGEgc2hlbGwgKGBjdXJsIOKApiB8IGJhc2hgKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwaXBlSW5zdGFsbGVycyhjb250ZW50OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBkb2NrZXJmaWxlSW5zdHJ1Y3Rpb25zKGNvbnRlbnQpLmZpbHRlcihsID0+XG4gICAgaW5zdHJ1Y3Rpb25PZihsKSA9PT0gJ1JVTicgJiYgLyhefFtefF0pXFx8XFxzKihzdWRvXFxzKyk/KFxcL3Vzcik/KFxcL2JpblxcLyk/KGJhfGRhfHp8ayk/c2goXFxzfCQpLy50ZXN0KGwpKTtcbn1cblxuLyoqIGN1cmwvd2dldCBET1dOTE9BRFMgaW4gUlVOLCBhbmQgYEFERCA8dXJsPmAgd2l0aG91dCBgLS1jaGVja3N1bT1gLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJhd0Rvd25sb2Fkcyhjb250ZW50OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGZvdW5kOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGxpbmUgb2YgZG9ja2VyZmlsZUluc3RydWN0aW9ucyhjb250ZW50KSkge1xuICAgIGNvbnN0IGluc3RyID0gaW5zdHJ1Y3Rpb25PZihsaW5lKTtcbiAgICBpZiAoaW5zdHIgPT09ICdBREQnICYmIC9odHRwcz86XFwvXFwvLy50ZXN0KGxpbmUpICYmICEvLS1jaGVja3N1bT0vLnRlc3QobGluZSkpIHtcbiAgICAgIGZvdW5kLnB1c2goYEFERCAke2xpbmV9YCk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgaWYgKGluc3RyICE9PSAnUlVOJykgY29udGludWU7XG4gICAgY29uc3QgYm9keSA9IGxpbmUucmVwbGFjZSgvXlxccypydW5cXHMrL2ksICcnKTtcbiAgICBmb3IgKGxldCBwYXJ0IG9mIGJvZHkuc3BsaXQoLyYmfFxcfFxcfHw7fFxcfHxcXCRcXCh8YHxcXCh8XFx7LykpIHtcbiAgICAgIGZvciAoOzspIHtcbiAgICAgICAgcGFydCA9IHBhcnQucmVwbGFjZSgvXlxccysvLCAnJyk7XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IC9eKGlmfHRoZW58ZG98ZWxzZXxlbGlmfHdoaWxlfHVudGlsfCF8c3Vkb3xleGVjfGNvbW1hbmR8dGltZXwtLVthLXotXSsoPVxcUyopP3xbQS1aYS16X11bQS1aYS16MC05X10qPVxcUyopXFxzKy8uZXhlYyhwYXJ0KTtcbiAgICAgICAgaWYgKCFwcmVmaXgpIGJyZWFrO1xuICAgICAgICBwYXJ0ID0gcGFydC5zbGljZShwcmVmaXhbMF0ubGVuZ3RoKTtcbiAgICAgIH1cbiAgICAgIGlmICgvXihjdXJsfHdnZXQpKFxcc3wkKS8udGVzdChwYXJ0KSAmJiAoLzpcXC9cXC8vLnRlc3QocGFydCkgfHwgL1xcJC8udGVzdChwYXJ0KSB8fCAvXFxzKC1vfC1PfC0tb3V0cHV0fC0tb3V0cHV0LWRvY3VtZW50KShbXFxzPV18JCkvLnRlc3QocGFydCkpKSB7XG4gICAgICAgIGZvdW5kLnB1c2gocGFydC50cmltKCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZm91bmQ7XG59XG5cbi8qKiBMaW50IGEgRG9ja2VyZmlsZSBhZ2FpbnN0IHRoZSBjYXRhbG9nJ3MgcnVsZXMuICovXG5leHBvcnQgZnVuY3Rpb24gbGludFBsdWdpbkRvY2tlcmZpbGUoY29udGVudDogc3RyaW5nKTogUGx1Z2luTGludEZpbmRpbmdbXSB7XG4gIGNvbnN0IGZpbmRpbmdzOiBQbHVnaW5MaW50RmluZGluZ1tdID0gW107XG4gIGNvbnN0IGVyciA9IChtZXNzYWdlOiBzdHJpbmcpID0+IGZpbmRpbmdzLnB1c2goeyBsZXZlbDogJ2Vycm9yJywgbWVzc2FnZSB9KTtcbiAgY29uc3QgaW5zdHJ1Y3Rpb25zID0gZG9ja2VyZmlsZUluc3RydWN0aW9ucyhjb250ZW50KTtcbiAgaWYgKCFpbnN0cnVjdGlvbnMuc29tZShsID0+IGluc3RydWN0aW9uT2YobCkgPT09ICdGUk9NJykpIHtcbiAgICBlcnIoJ0RvY2tlcmZpbGU6IG1pc3NpbmcgRlJPTSBpbnN0cnVjdGlvbicpO1xuICAgIHJldHVybiBmaW5kaW5ncztcbiAgfVxuICBpZiAoIWluc3RydWN0aW9ucy5zb21lKGwgPT4gaW5zdHJ1Y3Rpb25PZihsKSA9PT0gJ1dPUktESVInKSkgZXJyKCdEb2NrZXJmaWxlOiBtaXNzaW5nIFdPUktESVIgaW5zdHJ1Y3Rpb24nKTtcbiAgaWYgKC9eKEVOVnxBUkcpXFxzKyguKlRPS0VOfC4qU0VDUkVUfC4qUEFTU1dPUkR8LipBUElfS0VZfC4qUFJJVkFURV9LRVkpL20udGVzdChjb250ZW50KSkge1xuICAgIGVycignRG9ja2VyZmlsZTogcG90ZW50aWFsIHNlY3JldCBpbiBhbiBFTlYvQVJHIGluc3RydWN0aW9uIChwYXNzIHNlY3JldHMgYXQgcnVuIHRpbWUgdmlhIHRoZSBzcGVjXFwncyBgc2VjcmV0c2ApJyk7XG4gIH1cbiAgY29uc3QgZmluYWxVc2VyID0gcGFyc2VEb2NrZXJmaWxlKGNvbnRlbnQpLmZpbmFsVXNlcjtcbiAgY29uc3QgdXNlclBhcnQgPSAoZmluYWxVc2VyID8/ICcnKS5zcGxpdCgnOicpWzBdO1xuICBpZiAoIWZpbmFsVXNlcikgZXJyKCdEb2NrZXJmaWxlOiB0aGUgZmluYWwgc3RhZ2Ugc2V0cyBubyBVU0VSIChlbmQgd2l0aCBgVVNFUiAxMDAwOjEwMDBgKScpO1xuICBlbHNlIGlmICh1c2VyUGFydCA9PT0gJ3Jvb3QnIHx8IHVzZXJQYXJ0ID09PSAnMCcpIGVycihgRG9ja2VyZmlsZTogdGhlIGZpbmFsIHN0YWdlIHJ1bnMgYXMgcm9vdCAoVVNFUiAke2ZpbmFsVXNlcn0pOyBlbmQgd2l0aCBcXGBVU0VSIDEwMDA6MTAwMFxcYGApO1xuICBjb25zdCBwaXBlcyA9IHBpcGVJbnN0YWxsZXJzKGNvbnRlbnQpO1xuICBpZiAocGlwZXMubGVuZ3RoKSBlcnIoYERvY2tlcmZpbGU6IHBpcGVzIGEgZG93bmxvYWQgaW50byBhIHNoZWxsICh1c2UgYSBwaW5uZWQgcmVsZWFzZSB2aWEgZmV0Y2gtdmVyaWZpZWQsIGEgZmV0Y2gtYXB0LWtleSBhcHQgcmVwbywgb3IgYW4gZWNvc3lzdGVtIGJhc2UpOiAke3BpcGVzWzBdIS5zbGljZSgwLCAxNjApfWApO1xuICBjb25zdCBkb3dubG9hZHMgPSByYXdEb3dubG9hZHMoY29udGVudCk7XG4gIGlmIChkb3dubG9hZHMubGVuZ3RoKSBlcnIoYERvY2tlcmZpbGU6IHJhdyBkb3dubG9hZCBub3QgdmlhIGZldGNoLXZlcmlmaWVkOiAke2Rvd25sb2Fkc1swXSEuc2xpY2UoMCwgMTYwKX1gKTtcbiAgaWYgKC9hcHQtZ2V0IGluc3RhbGwvLnRlc3QoY29udGVudCkgJiYgIS9ybSAtcmYgXFwvdmFyXFwvbGliXFwvYXB0XFwvbGlzdHMvLnRlc3QoY29udGVudCkpIHtcbiAgICBlcnIoJ0RvY2tlcmZpbGU6IG1pc3NpbmcgYXB0IGNhY2hlIGNsZWFudXAgKHJtIC1yZiAvdmFyL2xpYi9hcHQvbGlzdHMvKiknKTtcbiAgfVxuICByZXR1cm4gZmluZGluZ3M7XG59XG5cbi8qKiBMaW50IHRoZSBzcGVjIGRvY3VtZW50IChhcyBwYXJzZWQpIHRoZSB3YXkgdGVzdC1wbHVnaW5zLnNoIGRvZXMuICovXG5leHBvcnQgZnVuY3Rpb24gbGludFBsdWdpblNwZWMoc3BlYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIHNwZWNUZXh0OiBzdHJpbmcpOiBQbHVnaW5MaW50RmluZGluZ1tdIHtcbiAgY29uc3QgZmluZGluZ3M6IFBsdWdpbkxpbnRGaW5kaW5nW10gPSBbXTtcbiAgY29uc3QgZXJyID0gKG1lc3NhZ2U6IHN0cmluZykgPT4gZmluZGluZ3MucHVzaCh7IGxldmVsOiAnZXJyb3InLCBtZXNzYWdlIH0pO1xuICBmb3IgKGNvbnN0IGYgb2YgUExVR0lOX0xJTlRfUkVRVUlSRURfRklFTERTKSBpZiAoIShmIGluIHNwZWMpKSBlcnIoYHBsdWdpbi1zcGVjLnlhbWw6IG1pc3NpbmcgcmVxdWlyZWQgZmllbGQ6ICR7Zn1gKTtcbiAgaWYgKHNwZWMucGx1Z2luVHlwZSA9PT0gJ0NvZGVCdWlsZFN0ZXAnIHx8IHNwZWMucGx1Z2luVHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZm9yIChjb25zdCBmIG9mIFBMVUdJTl9MSU5UX0NPREVCVUlMRF9GSUVMRFMpIGlmICghKGYgaW4gc3BlYykpIGVycihgcGx1Z2luLXNwZWMueWFtbDogbWlzc2luZyBDb2RlQnVpbGQgZmllbGQ6ICR7Zn1gKTtcbiAgfVxuICBpZiAodHlwZW9mIHNwZWMudmVyc2lvbiA9PT0gJ3N0cmluZycgJiYgIS9eXFxkK1xcLlxcZCtcXC5cXGQrJC8udGVzdChzcGVjLnZlcnNpb24pKSB7XG4gICAgZXJyKGBwbHVnaW4tc3BlYy55YW1sOiBjYXRhbG9nIHZlcnNpb25zIGFyZSBwbGFpbiBzZW12ZXIgeC55LnogKGdvdCAke3NwZWMudmVyc2lvbn0pYCk7XG4gIH1cbiAgaWYgKHR5cGVvZiBzcGVjLmRlc2NyaXB0aW9uICE9PSAnc3RyaW5nJyB8fCBzcGVjLmRlc2NyaXB0aW9uLnRyaW0oKSA9PT0gJycpIGVycigncGx1Z2luLXNwZWMueWFtbDogZW1wdHkgZGVzY3JpcHRpb24nKTtcbiAgaWYgKCdrZXl3b3JkcycgaW4gc3BlYyAmJiAoIUFycmF5LmlzQXJyYXkoc3BlYy5rZXl3b3JkcykgfHwgc3BlYy5rZXl3b3Jkcy5sZW5ndGggPT09IDApKSBlcnIoJ3BsdWdpbi1zcGVjLnlhbWw6IGVtcHR5IGtleXdvcmRzIGxpc3QnKTtcbiAgY29uc3QgZG93bmxvYWQgPSAvKGN1cmx8d2dldClcXHMuKmh0dHBzPzpcXC9cXC9bXlxcc1wiXSoocmVsZWFzZXNcXC9kb3dubG9hZFxcL3xcXC50YXJcXC5nenxcXC50Z3p8XFwudGFyXFwueHp8XFwuemlwKS8uZXhlYyhzcGVjVGV4dCk7XG4gIGlmIChkb3dubG9hZCkgZXJyKGBwbHVnaW4tc3BlYy55YW1sOiBkb3dubG9hZHMgYSB0b29sIGF0IHJ1bnRpbWUgKGJha2UgaXQgaW50byB0aGUgaW1hZ2UgdmlhIGZldGNoLXZlcmlmaWVkKTogJHtkb3dubG9hZFswXS5zbGljZSgwLCAxNjApfWApO1xuICBpZiAoL15cXHMqLSBcXHwvbS50ZXN0KHNwZWNUZXh0KSAmJiAhL3NldCAtZS8udGVzdChzcGVjVGV4dCkpIHtcbiAgICBmaW5kaW5ncy5wdXNoKHsgbGV2ZWw6ICd3YXJuaW5nJywgbWVzc2FnZTogJ3BsdWdpbi1zcGVjLnlhbWw6IG11bHRpLWxpbmUgY29tbWFuZChzKSB3aXRob3V0IGBzZXQgLWVgIOKAlCBpbnRlcm1lZGlhdGUgZmFpbHVyZXMgd2lsbCBzaWxlbnRseSBwYXNzJyB9KTtcbiAgfVxuICByZXR1cm4gZmluZGluZ3M7XG59XG4iXX0=
@@ -78,4 +78,4 @@ export function findConfusableName(candidate, names) {
78
78
  export function isConfusableName(candidate, names) {
79
79
  return findConfusableName(candidate, names) !== null;
80
80
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLW5hbWUtY29uZnVzYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3BsdWdpbi1uYW1lLWNvbmZ1c2FibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsTUFBTSxVQUFVLEdBQW9DLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNqRixNQUFNLFdBQVcsR0FBcUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFFekYsNENBQTRDO0FBQzVDLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxJQUFZO0lBQ2xELElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxVQUFVO1FBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsS0FBSyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUI7SUFDdkYsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLO1FBQUUsT0FBTyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQzVELElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BDLElBQUksUUFBUSxHQUFhLEVBQUUsQ0FBQztJQUM1QixJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ25DLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBRSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzVHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDWixNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELElBQUksTUFBTSxHQUFHLEtBQUs7WUFBRSxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDckMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQixJQUFJLEdBQUcsR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUUsQ0FBQztBQUN6QixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxTQUFpQixFQUFFLEtBQXVCO0lBQzNFLE1BQU0sQ0FBQyxHQUFHLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDaEMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixNQUFNLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLFNBQVM7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLGtCQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO0lBQy9ELENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCw2REFBNkQ7QUFDN0QsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFNBQWlCLEVBQUUsS0FBdUI7SUFDekUsT0FBTyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDO0FBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBDb25mdXNhYmxlIHBsdWdpbiBuYW1lcyAoZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCk6XG4gKiBhIG5ldyBjb21tdW5pdHkgbGlzdGluZyDigJQgYW4gYW5vbnltb3VzIHN1Ym1pc3Npb24gb3IgYSBgbmV3X2xpc3RpbmdgXG4gKiByZXF1ZXN0IOKAlCBtYXkgbm90IGxvb2sgbGlrZSBvbmUgb2YgdGhlIGRpcmVjdG9yeSdzIG1vc3QtaW5zdGFsbGVkIHBsdWdpbnNcbiAqIChgdGVycmFmMHJtYCwgYGt1YmUtY3RsYCwgYGRvY2tlcl9idWlsZGAsIGB0ZnNlY2Ag4oaSIGB0ZnNlZGApLlxuICpcbiAqIFR3byBuYW1lcyBhcmUgQ09ORlVTQUJMRSB3aGVuLCBhZnRlciB7QGxpbmsgbm9ybWFsaXplQ29uZnVzYWJsZU5hbWV9XG4gKiAobG93ZXJjYXNlOyBzdHJpcCBgLWAsIGBfYCwgYC5gOyBgcm5g4oaSYG1gLCBgdnZg4oaSYHdgLCBgMGDihpJgb2AsIGAxYOKGkmBsYCxcbiAqIGAzYOKGkmBlYCwgYDVg4oaSYHNgKSwgdGhleSBhcmUgZXF1YWwgb3Igb25lIERhbWVyYXXigJNMZXZlbnNodGVpbiBlZGl0IGFwYXJ0XG4gKiAoYW4gaW5zZXJ0aW9uLCBkZWxldGlvbiwgc3Vic3RpdHV0aW9uIG9yIGFkamFjZW50IHRyYW5zcG9zaXRpb24pLlxuICpcbiAqIFB1cmUsIHNvIHRoZSBDTEkgY2FuIHdhcm4gYmVmb3JlIGEgcHVibGlzaCBhbmQgdGhlIHBsdWdpbiBzZXJ2aWNlIGRlY2lkZXNcbiAqIHdpdGggdGhlIHNhbWUgcnVsZS5cbiAqL1xuXG5jb25zdCBNVUxUSV9DSEFSOiBSZWFkb25seUFycmF5PFtSZWdFeHAsIHN0cmluZ10+ID0gW1svcm4vZywgJ20nXSwgWy92di9nLCAndyddXTtcbmNvbnN0IFNJTkdMRV9DSEFSOiBSZWFkb25seTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHsgMDogJ28nLCAxOiAnbCcsIDM6ICdlJywgNTogJ3MnIH07XG5cbi8qKiBUaGUgY29tcGFyaXNvbiBmb3JtIG9mIGEgcGx1Z2luIG5hbWUuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQ29uZnVzYWJsZU5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IG91dCA9IG5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bLV8uXS9nLCAnJyk7XG4gIGZvciAoY29uc3QgW2Zyb20sIHRvXSBvZiBNVUxUSV9DSEFSKSBvdXQgPSBvdXQucmVwbGFjZShmcm9tLCB0byk7XG4gIHJldHVybiBvdXQucmVwbGFjZSgvWzAxMzVdL2csIChjKSA9PiBTSU5HTEVfQ0hBUltjXSA/PyBjKTtcbn1cblxuLyoqXG4gKiBPcHRpbWFsLXN0cmluZy1hbGlnbm1lbnQgRGFtZXJhdeKAk0xldmVuc2h0ZWluIGRpc3RhbmNlIGJldHdlZW4gYGFgIGFuZCBgYmAsXG4gKiBnaXZpbmcgdXAgKHJldHVybmluZyBgbGltaXQgKyAxYCkgb25jZSBpdCBtdXN0IGV4Y2VlZCBgbGltaXRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGFtZXJhdUxldmVuc2h0ZWluKGE6IHN0cmluZywgYjogc3RyaW5nLCBsaW1pdCA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSk6IG51bWJlciB7XG4gIGlmIChhID09PSBiKSByZXR1cm4gMDtcbiAgaWYgKE1hdGguYWJzKGEubGVuZ3RoIC0gYi5sZW5ndGgpID4gbGltaXQpIHJldHVybiBsaW1pdCArIDE7XG4gIGlmIChhLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGIubGVuZ3RoO1xuICBpZiAoYi5sZW5ndGggPT09IDApIHJldHVybiBhLmxlbmd0aDtcbiAgbGV0IHByZXZQcmV2OiBudW1iZXJbXSA9IFtdO1xuICBsZXQgcHJldiA9IEFycmF5LmZyb20oeyBsZW5ndGg6IGIubGVuZ3RoICsgMSB9LCAoXywgaikgPT4gaik7XG4gIGZvciAobGV0IGkgPSAxOyBpIDw9IGEubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjdXIgPSBbaV07XG4gICAgbGV0IHJvd01pbiA9IGk7XG4gICAgZm9yIChsZXQgaiA9IDE7IGogPD0gYi5sZW5ndGg7IGorKykge1xuICAgICAgY29uc3QgY29zdCA9IGFbaSAtIDFdID09PSBiW2ogLSAxXSA/IDAgOiAxO1xuICAgICAgbGV0IGQgPSBNYXRoLm1pbihwcmV2W2pdISArIDEsIGN1cltqIC0gMV0hICsgMSwgcHJldltqIC0gMV0hICsgY29zdCk7XG4gICAgICBpZiAoaSA+IDEgJiYgaiA+IDEgJiYgYVtpIC0gMV0gPT09IGJbaiAtIDJdICYmIGFbaSAtIDJdID09PSBiW2ogLSAxXSkgZCA9IE1hdGgubWluKGQsIHByZXZQcmV2W2ogLSAyXSEgKyAxKTtcbiAgICAgIGN1ci5wdXNoKGQpO1xuICAgICAgcm93TWluID0gTWF0aC5taW4ocm93TWluLCBkKTtcbiAgICB9XG4gICAgaWYgKHJvd01pbiA+IGxpbWl0KSByZXR1cm4gbGltaXQgKyAxO1xuICAgIHByZXZQcmV2ID0gcHJldjtcbiAgICBwcmV2ID0gY3VyO1xuICB9XG4gIHJldHVybiBwcmV2W2IubGVuZ3RoXSE7XG59XG5cbi8qKlxuICogVGhlIGZpcnN0IG9mIGBuYW1lc2AgdGhhdCBgY2FuZGlkYXRlYCBpcyBjb25mdXNhYmxlIHdpdGggKHNlZSB0aGUgbW9kdWxlXG4gKiBub3RlKSwgb3IgbnVsbC4gQW4gRVhBQ1QgbWF0Y2ggY291bnRzIHRvbyDigJQgdGhlIGNhbGxlciBkZWNpZGVzIHdoZXRoZXIgdGhlXG4gKiBzYW1lIG5hbWUgaXMgYSBjb25mbGljdCBvciB0aGUgc2FtZSBsaXN0aW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZENvbmZ1c2FibGVOYW1lKGNhbmRpZGF0ZTogc3RyaW5nLCBuYW1lczogSXRlcmFibGU8c3RyaW5nPik6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBjID0gbm9ybWFsaXplQ29uZnVzYWJsZU5hbWUoY2FuZGlkYXRlKTtcbiAgaWYgKGMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbDtcbiAgZm9yIChjb25zdCBuYW1lIG9mIG5hbWVzKSB7XG4gICAgY29uc3QgbiA9IG5vcm1hbGl6ZUNvbmZ1c2FibGVOYW1lKG5hbWUpO1xuICAgIGlmIChuLmxlbmd0aCA9PT0gMCkgY29udGludWU7XG4gICAgaWYgKGMgPT09IG4gfHwgZGFtZXJhdUxldmVuc2h0ZWluKGMsIG4sIDEpIDw9IDEpIHJldHVybiBuYW1lO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKiogV2hldGhlciBgY2FuZGlkYXRlYCBpcyBjb25mdXNhYmxlIHdpdGggYW55IG9mIGBuYW1lc2AuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb25mdXNhYmxlTmFtZShjYW5kaWRhdGU6IHN0cmluZywgbmFtZXM6IEl0ZXJhYmxlPHN0cmluZz4pOiBib29sZWFuIHtcbiAgcmV0dXJuIGZpbmRDb25mdXNhYmxlTmFtZShjYW5kaWRhdGUsIG5hbWVzKSAhPT0gbnVsbDtcbn1cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLW5hbWUtY29uZnVzYWJsZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vcGx1Z2luLW5hbWUtY29uZnVzYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxNQUFNLFVBQVUsR0FBb0MsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2pGLE1BQU0sV0FBVyxHQUFxQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztBQUV6Riw0Q0FBNEM7QUFDNUMsTUFBTSxVQUFVLHVCQUF1QixDQUFDLElBQVk7SUFDbEQsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkQsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVU7UUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakUsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxLQUFLLEdBQUcsTUFBTSxDQUFDLGlCQUFpQjtJQUN2RixJQUFJLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUs7UUFBRSxPQUFPLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDNUQsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDcEMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDcEMsSUFBSSxRQUFRLEdBQWEsRUFBRSxDQUFDO0lBQzVCLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDbkMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDZixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDNUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNaLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsSUFBSSxNQUFNLEdBQUcsS0FBSztZQUFFLE9BQU8sS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNyQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLElBQUksR0FBRyxHQUFHLENBQUM7SUFDYixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBRSxDQUFDO0FBQ3pCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFNBQWlCLEVBQUUsS0FBdUI7SUFDM0UsTUFBTSxDQUFDLEdBQUcsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUNoQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE1BQU0sQ0FBQyxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsU0FBUztRQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7SUFDL0QsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELDZEQUE2RDtBQUM3RCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsU0FBaUIsRUFBRSxLQUF1QjtJQUN6RSxPQUFPLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUM7QUFDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIENvbmZ1c2FibGUgcGx1Z2luIG5hbWVzIChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kKTpcbiAqIGEgbmV3IGNvbW11bml0eSBsaXN0aW5nIOKAlCBhbiBhbm9ueW1vdXMgc3VibWlzc2lvbiBvciBhIGBuZXdfbGlzdGluZ2BcbiAqIHJlcXVlc3Qg4oCUIG1heSBub3QgbG9vayBsaWtlIG9uZSBvZiB0aGUgZGlyZWN0b3J5J3MgbW9zdC1pbnN0YWxsZWQgcGx1Z2luc1xuICogKGB0ZXJyYWYwcm1gLCBga3ViZS1jdGxgLCBgZG9ja2VyX2J1aWxkYCwgYHRmc2VjYCDihpIgYHRmc2VkYCkuXG4gKlxuICogVHdvIG5hbWVzIGFyZSBDT05GVVNBQkxFIHdoZW4sIGFmdGVyIHtAbGluayBub3JtYWxpemVDb25mdXNhYmxlTmFtZX1cbiAqIChsb3dlcmNhc2U7IHN0cmlwIGAtYCwgYF9gLCBgLmA7IGBybmDihpJgbWAsIGB2dmDihpJgd2AsIGAwYOKGkmBvYCwgYDFg4oaSYGxgLFxuICogYDNg4oaSYGVgLCBgNWDihpJgc2ApLCB0aGV5IGFyZSBlcXVhbCBvciBvbmUgRGFtZXJhdeKAk0xldmVuc2h0ZWluIGVkaXQgYXBhcnRcbiAqIChhbiBpbnNlcnRpb24sIGRlbGV0aW9uLCBzdWJzdGl0dXRpb24gb3IgYWRqYWNlbnQgdHJhbnNwb3NpdGlvbikuXG4gKlxuICogUHVyZSwgc28gdGhlIENMSSBjYW4gd2FybiBiZWZvcmUgYSBwdWJsaXNoIGFuZCB0aGUgcGx1Z2luIHNlcnZpY2UgZGVjaWRlc1xuICogd2l0aCB0aGUgc2FtZSBydWxlLlxuICovXG5cbmNvbnN0IE1VTFRJX0NIQVI6IFJlYWRvbmx5QXJyYXk8W1JlZ0V4cCwgc3RyaW5nXT4gPSBbWy9ybi9nLCAnbSddLCBbL3Z2L2csICd3J11dO1xuY29uc3QgU0lOR0xFX0NIQVI6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0geyAwOiAnbycsIDE6ICdsJywgMzogJ2UnLCA1OiAncycgfTtcblxuLyoqIFRoZSBjb21wYXJpc29uIGZvcm0gb2YgYSBwbHVnaW4gbmFtZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVDb25mdXNhYmxlTmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgb3V0ID0gbmFtZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stXy5dL2csICcnKTtcbiAgZm9yIChjb25zdCBbZnJvbSwgdG9dIG9mIE1VTFRJX0NIQVIpIG91dCA9IG91dC5yZXBsYWNlKGZyb20sIHRvKTtcbiAgcmV0dXJuIG91dC5yZXBsYWNlKC9bMDEzNV0vZywgKGMpID0+IFNJTkdMRV9DSEFSW2NdID8/IGMpO1xufVxuXG4vKipcbiAqIE9wdGltYWwtc3RyaW5nLWFsaWdubWVudCBEYW1lcmF14oCTTGV2ZW5zaHRlaW4gZGlzdGFuY2UgYmV0d2VlbiBgYWAgYW5kIGBiYCxcbiAqIGdpdmluZyB1cCAocmV0dXJuaW5nIGBsaW1pdCArIDFgKSBvbmNlIGl0IG11c3QgZXhjZWVkIGBsaW1pdGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkYW1lcmF1TGV2ZW5zaHRlaW4oYTogc3RyaW5nLCBiOiBzdHJpbmcsIGxpbWl0ID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKTogbnVtYmVyIHtcbiAgaWYgKGEgPT09IGIpIHJldHVybiAwO1xuICBpZiAoTWF0aC5hYnMoYS5sZW5ndGggLSBiLmxlbmd0aCkgPiBsaW1pdCkgcmV0dXJuIGxpbWl0ICsgMTtcbiAgaWYgKGEubGVuZ3RoID09PSAwKSByZXR1cm4gYi5sZW5ndGg7XG4gIGlmIChiLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGEubGVuZ3RoO1xuICBsZXQgcHJldlByZXY6IG51bWJlcltdID0gW107XG4gIGxldCBwcmV2ID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogYi5sZW5ndGggKyAxIH0sIChfLCBqKSA9PiBqKTtcbiAgZm9yIChsZXQgaSA9IDE7IGkgPD0gYS5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGN1ciA9IFtpXTtcbiAgICBsZXQgcm93TWluID0gaTtcbiAgICBmb3IgKGxldCBqID0gMTsgaiA8PSBiLmxlbmd0aDsgaisrKSB7XG4gICAgICBjb25zdCBjb3N0ID0gYVtpIC0gMV0gPT09IGJbaiAtIDFdID8gMCA6IDE7XG4gICAgICBsZXQgZCA9IE1hdGgubWluKHByZXZbal0hICsgMSwgY3VyW2ogLSAxXSEgKyAxLCBwcmV2W2ogLSAxXSEgKyBjb3N0KTtcbiAgICAgIGlmIChpID4gMSAmJiBqID4gMSAmJiBhW2kgLSAxXSA9PT0gYltqIC0gMl0gJiYgYVtpIC0gMl0gPT09IGJbaiAtIDFdKSBkID0gTWF0aC5taW4oZCwgcHJldlByZXZbaiAtIDJdISArIDEpO1xuICAgICAgY3VyLnB1c2goZCk7XG4gICAgICByb3dNaW4gPSBNYXRoLm1pbihyb3dNaW4sIGQpO1xuICAgIH1cbiAgICBpZiAocm93TWluID4gbGltaXQpIHJldHVybiBsaW1pdCArIDE7XG4gICAgcHJldlByZXYgPSBwcmV2O1xuICAgIHByZXYgPSBjdXI7XG4gIH1cbiAgcmV0dXJuIHByZXZbYi5sZW5ndGhdITtcbn1cblxuLyoqXG4gKiBUaGUgZmlyc3Qgb2YgYG5hbWVzYCB0aGF0IGBjYW5kaWRhdGVgIGlzIGNvbmZ1c2FibGUgd2l0aCAoc2VlIHRoZSBtb2R1bGVcbiAqIG5vdGUpLCBvciBudWxsLiBBbiBFWEFDVCBtYXRjaCBjb3VudHMgdG9vIOKAlCB0aGUgY2FsbGVyIGRlY2lkZXMgd2hldGhlciB0aGVcbiAqIHNhbWUgbmFtZSBpcyBhIGNvbmZsaWN0IG9yIHRoZSBzYW1lIGxpc3RpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQ29uZnVzYWJsZU5hbWUoY2FuZGlkYXRlOiBzdHJpbmcsIG5hbWVzOiBJdGVyYWJsZTxzdHJpbmc+KTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IGMgPSBub3JtYWxpemVDb25mdXNhYmxlTmFtZShjYW5kaWRhdGUpO1xuICBpZiAoYy5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xuICBmb3IgKGNvbnN0IG5hbWUgb2YgbmFtZXMpIHtcbiAgICBjb25zdCBuID0gbm9ybWFsaXplQ29uZnVzYWJsZU5hbWUobmFtZSk7XG4gICAgaWYgKG4ubGVuZ3RoID09PSAwKSBjb250aW51ZTtcbiAgICBpZiAoYyA9PT0gbiB8fCBkYW1lcmF1TGV2ZW5zaHRlaW4oYywgbiwgMSkgPD0gMSkgcmV0dXJuIG5hbWU7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKiBXaGV0aGVyIGBjYW5kaWRhdGVgIGlzIGNvbmZ1c2FibGUgd2l0aCBhbnkgb2YgYG5hbWVzYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbmZ1c2FibGVOYW1lKGNhbmRpZGF0ZTogc3RyaW5nLCBuYW1lczogSXRlcmFibGU8c3RyaW5nPik6IGJvb2xlYW4ge1xuICByZXR1cm4gZmluZENvbmZ1c2FibGVOYW1lKGNhbmRpZGF0ZSwgbmFtZXMpICE9PSBudWxsO1xufVxuIl19
@@ -108,4 +108,4 @@ export const PluginUploadBodySchema = z.object({
108
108
  */
109
109
  buildSize: z.enum(BUILD_SIZES).optional(),
110
110
  });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9wbHVnaW4tc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDeEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVqRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztJQUN4RCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsdUVBQXVFO0lBQ3ZFLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN4RSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDckMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ25DLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2pDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNyQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDdkMsQ0FBQyxDQUFDO0FBRUg7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDekMsR0FBRyxvQkFBb0I7SUFDdkIsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLDZCQUE2QixDQUFDO0lBQ3ZELElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSx5QkFBeUIsQ0FBQztJQUNsRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUscUJBQXFCLENBQUM7SUFDakQsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFFBQVEsRUFBRTtJQUN2QyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDdEMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDakMsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN4RCxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3RELEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDaEQsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN0RCxlQUFlLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDL0MsUUFBUSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3hDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7SUFDdkMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtJQUN4QyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMxRCxlQUFlLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDOUQsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN4QixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkIsUUFBUSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7UUFDckIsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7S0FDbkMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQ2YsQ0FBQyxDQUFDO0FBRUg7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3pDLEdBQUcsb0JBQW9CO0lBQ3ZCLEdBQUcsd0JBQXdCLENBQUMsS0FBSztJQUNqQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFO0lBQ3ZDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFFBQVEsRUFBRTtDQUN4QyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7QUFFWjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDN0MsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFFBQVEsRUFBRTtJQUN2Qzs7O09BR0c7SUFDSCxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQy9DOzs7OztPQUtHO0lBQ0gsY0FBYyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDcEQ7Ozs7O09BS0c7SUFDSCxTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUMvQzs7Ozs7Ozs7OztPQVVHO0lBQ0gsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzVDOzs7OztPQUtHO0lBQ0gsU0FBUyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQzFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcbmltcG9ydCB7IEJhc2VGaWx0ZXJTY2hlbWEsIEJvb2xlYW5RdWVyeVNjaGVtYSwgVmlzaWJpbGl0eVNjaGVtYSwgQ2F0YWxvZ01ldGFkYXRhU2hhcGUgfSBmcm9tICcuL2NvbW1vbi1zY2hlbWFzLmpzJztcbmltcG9ydCB7IFBsdWdpbkNhdGFsb2dFZGl0c1NjaGVtYSB9IGZyb20gJy4vcGx1Z2luLWNhdGFsb2ctbWV0YWRhdGEuanMnO1xuaW1wb3J0IHsgQlVJTERfQ0xBU1NFUywgQlVJTERfU0laRVMgfSBmcm9tICcuLi90eXBlcy9idWlsZC1jYXRhbG9nLmpzJztcbmltcG9ydCB7IFBVQkxJU0hFUl9IQU5ETEVfUEFUVEVSTiB9IGZyb20gJy4uL3R5cGVzL2Vjb3N5c3RlbS5qcyc7XG5cbi8qKlxuICogUGx1Z2luIGZpbHRlciBzY2hlbWEgZm9yIHF1ZXJ5IHBhcmFtZXRlcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFBsdWdpbkZpbHRlclNjaGVtYSA9IEJhc2VGaWx0ZXJTY2hlbWEuZXh0ZW5kKHtcbiAgbmFtZTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgLyoqIFJlc29sdmUgdGhyb3VnaCB0aGlzIHB1Ymxpc2hlcidzIGluc3RhbGxlZCBsaXN0aW5nOyBsb29rdXAgb25seS4gKi9cbiAgcHVibGlzaGVyOiB6LnN0cmluZygpLm1heCgzOSkucmVnZXgoUFVCTElTSEVSX0hBTkRMRV9QQVRURVJOKS5vcHRpb25hbCgpLFxuICB2ZXJzaW9uOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBvcmdJZDogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgcGx1Z2luVHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBrZXl3b3JkOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBjYXRlZ29yeTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbn0pO1xuXG4vKipcbiAqIFBsdWdpbiBjcmVhdGlvbiBzY2hlbWEg4oCUIHVzZWQgZm9yIE9wZW5BUEkgZG9jdW1lbnRhdGlvbiBhbmQgZGlyZWN0IEFQSSBjcmVhdGlvbi5cbiAqIEN1cnJlbnRseSBubyByb3V0ZSB1c2VzIHRoaXMgZGlyZWN0bHk7IHBsdWdpbnMgYXJlIGNyZWF0ZWQgdmlhIHVwbG9hZCBvciBBSSBnZW5lcmF0aW9uLlxuICogUmV0YWluZWQgZm9yIGZ1dHVyZSBkaXJlY3QtY3JlYXRlIGVuZHBvaW50IGFuZCBPcGVuQVBJIHNwZWMgY29tcGxldGVuZXNzLlxuICovXG5leHBvcnQgY29uc3QgUGx1Z2luQ3JlYXRlU2NoZW1hID0gei5vYmplY3Qoe1xuICAuLi5DYXRhbG9nTWV0YWRhdGFTaGFwZSxcbiAgb3JnSWQ6IHouc3RyaW5nKCkubWluKDEsICdPcmdhbml6YXRpb24gSUQgaXMgcmVxdWlyZWQnKSxcbiAgbmFtZTogei5zdHJpbmcoKS5taW4oMSwgJ1BsdWdpbiBuYW1lIGlzIHJlcXVpcmVkJyksXG4gIHZlcnNpb246IHouc3RyaW5nKCkubWluKDEsICdWZXJzaW9uIGlzIHJlcXVpcmVkJyksXG4gIHZpc2liaWxpdHk6IFZpc2liaWxpdHlTY2hlbWEub3B0aW9uYWwoKSxcbiAgY2F0ZWdvcnk6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIHBsdWdpblR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgY29tcHV0ZVR5cGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgcHJpbWFyeU91dHB1dERpcmVjdG9yeTogei5zdHJpbmcoKS5udWxsYWJsZSgpLm9wdGlvbmFsKCksXG4gIG1ldGFkYXRhOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgZW52OiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBidWlsZEFyZ3M6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGluc3RhbGxDb21tYW5kczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBjb21tYW5kczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBpc0FjdGl2ZTogQm9vbGVhblF1ZXJ5U2NoZW1hLm9wdGlvbmFsKCksXG4gIGlzRGVmYXVsdDogQm9vbGVhblF1ZXJ5U2NoZW1hLm9wdGlvbmFsKCksXG4gIHRpbWVvdXQ6IHoubnVtYmVyKCkuaW50KCkucG9zaXRpdmUoKS5udWxsYWJsZSgpLm9wdGlvbmFsKCksXG4gIGZhaWx1cmVCZWhhdmlvcjogei5lbnVtKFsnZmFpbCcsICd3YXJuJywgJ2lnbm9yZSddKS5vcHRpb25hbCgpLFxuICBzZWNyZXRzOiB6LmFycmF5KHoub2JqZWN0KHtcbiAgICBuYW1lOiB6LnN0cmluZygpLm1pbigxKSxcbiAgICByZXF1aXJlZDogei5ib29sZWFuKCksXG4gICAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgfSkpLm9wdGlvbmFsKCksXG59KTtcblxuLyoqXG4gKiBQbHVnaW4gdXBkYXRlIHNjaGVtYSAoYFBVVCAvcGx1Z2lucy86aWRgKS5cbiAqXG4gKiBERVNDUklQVElWRSBjYXRhbG9nIGZpZWxkcyBvbmx5IHBsdXMgdGhlIHZlcnNpb24ncyBvcGVyYXRpb25hbFxuICogZmxhZ3MgYW5kIGRldmVsb3Blci1wb3J0YWwgbWV0YWRhdGEuIEV4ZWN1dGlvbi1jb250cmFjdCBrZXlzIChjb21tYW5kcywgZW52LFxuICogc2VjcmV0cywgY29tcHV0ZSB0eXBlLCDigKYpIGFyZSBuZXZlciBhY2NlcHRlZCDigJQgdGhlIHJvdXRlIHJlZnVzZXMgdGhlbSB3aXRoIGFcbiAqIDQwMCBuYW1pbmcgdGhlIGtleXMgYmVmb3JlIHRoaXMgc2NoZW1hIHJ1bnMsIGFuZCBgLnN0cmljdCgpYCByZWZ1c2VzIGFueXRoaW5nXG4gKiBlbHNlIHVua25vd24gcmF0aGVyIHRoYW4gc2lsZW50bHkgZHJvcHBpbmcgaXQuXG4gKi9cbmV4cG9ydCBjb25zdCBQbHVnaW5VcGRhdGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC4uLkNhdGFsb2dNZXRhZGF0YVNoYXBlLFxuICAuLi5QbHVnaW5DYXRhbG9nRWRpdHNTY2hlbWEuc2hhcGUsXG4gIGlzQWN0aXZlOiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgaXNEZWZhdWx0OiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgdmlzaWJpbGl0eTogVmlzaWJpbGl0eVNjaGVtYS5vcHRpb25hbCgpLFxufSkuc3RyaWN0KCk7XG5cbi8qKlxuICogUGx1Z2luIHVwbG9hZCBib2R5IHNjaGVtYSAobXVsdGlwYXJ0IGZvcm0tZGF0YSB0ZXh0IGZpZWxkcylcbiAqL1xuZXhwb3J0IGNvbnN0IFBsdWdpblVwbG9hZEJvZHlTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHZpc2liaWxpdHk6IFZpc2liaWxpdHlTY2hlbWEub3B0aW9uYWwoKSxcbiAgLyoqXG4gICAqIENhdGFsb2cgbWV0YWRhdGEgZWRpdHMgYXMgYSBKU09OIG9iamVjdCAoYSB7QGxpbmsgUGx1Z2luQ2F0YWxvZ0VkaXRzU2NoZW1hfVxuICAgKiBkb2N1bWVudCkuIEFic2VudCDih5IgZXZlcnkgdmFsdWUgZGV0ZWN0ZWQgZnJvbSB0aGUgcGFja2FnZSBpcyBhY2NlcHRlZC5cbiAgICovXG4gIG1ldGFkYXRhOiB6LnN0cmluZygpLm1heCgyNTYgKiAxMDI0KS5vcHRpb25hbCgpLFxuICAvKipcbiAgICogYHRydWVgOiBvbmNlIHRoZSBidWlsZCBjb21wbGV0ZXMsIHN1Ym1pdCBhIHB1Ymxpc2ggcmVxdWVzdCAobmV3IGxpc3RpbmcsIG9yXG4gICAqIG5ldyB2ZXJzaW9uIG9mIHRoZSBvcmcncyBleGlzdGluZyBsaXN0aW5nKSBmb3IgdGhlIGJ1aWx0IHZlcnNpb24gYXMgdGhlXG4gICAqIHVwbG9hZGVyIChkb2NzL3BsdWdpbi1wdWJsaXNoaW5nLm1kKS4gTmVlZHMgYHBsdWdpbnM6cHVibGlzaGAgYW5kXG4gICAqIGB2aXNpYmlsaXR5PXB1YmxpY2AuIFRoZSBPZmZpY2lhbCBjYXRhbG9nIGxvYWRlciBhbHdheXMgc2V0cyBpdC5cbiAgICovXG4gIHB1Ymxpc2hSZXF1ZXN0OiB6LmVudW0oWyd0cnVlJywgJ2ZhbHNlJ10pLm9wdGlvbmFsKCksXG4gIC8qKlxuICAgKiBgdHJ1ZWA6IHRoaXMgdXBsb2FkIGlzIHRoZSBTRVRVUCBjYXRhbG9nIGxvYWQgKGRlcGxveS9iaW4vbG9hZC1wbHVnaW5zLnNoKS5cbiAgICogSG9ub3VyZWQgb25seSBmb3IgYSBzeXN0ZW0tb3JnIGJ1aWxkLCB3aGVyZSBhbiBpbWFnZSB0aGUgc2NhbiBnYXRlcyByZWZ1c2VcbiAgICogaXMgS0VQVCBpbiB0aGUgcmVnaXN0cnkgZm9yIHByb21vdGlvbiAoYFBPU1QgL3BsdWdpbnMva2VwdC1zZXR1cC1pbWFnZXMvOmlkL3Byb21vdGVgKVxuICAgKiBpbnN0ZWFkIG9mIGRpc2NhcmRlZC4gSWdub3JlZCAobm9ybWFsIGRpc2NhcmQpIGZvciBhbnkgb3RoZXIgb3JnLlxuICAgKi9cbiAgc2V0dXBMb2FkOiB6LmVudW0oWyd0cnVlJywgJ2ZhbHNlJ10pLm9wdGlvbmFsKCksXG4gIC8qKlxuICAgKiBTY2hlZHVsaW5nIGNsYXNzIGZvciB0aGlzIGJ1aWxkIChEMTEpLiBgc3RhbmRhcmRgIGlzIHRoZSBkZWZhdWx0IGFuZCB0aGVcbiAgICogb25seSBjbGFzcyBhbiB1cmdlbnQgZml4IHNob3VsZCB1c2U7IGBiYXRjaGAgdHJhZGVzIHN0YXJ0IGxhdGVuY3kgZm9yIG1vcmVcbiAgICogcGVyLW9yZyBoZWFkcm9vbSwgYW5kIGV2ZXJ5IHRpZXIgaGFzIGJvdGgg4oCUIGEgZnJlZSBhY2NvdW50IG11c3Qgc3RpbGwgYmVcbiAgICogYWJsZSB0byBwdXNoIG9uZSB1cmdlbnQgYnVpbGQgdGhyb3VnaC5cbiAgICpcbiAgICogTm90IGEgQnVsbE1RIHByaW9yaXR5OiBwcmlvcml0aWVzIGFyZSBwZXItcXVldWUgaW50ZWdlcnMgYW5kIGJ1aWxkcyBhcmVcbiAgICogYWxyZWFkeSBzcGxpdCBhY3Jvc3Mgb25lIHF1ZXVlIFBFUiBUSUVSLCBzbyBhIHByaW9yaXR5IHdvdWxkIG9ubHkgb3JkZXIgYVxuICAgKiB0aWVyIGFnYWluc3QgaXRzZWxmLiBUaGUgY2xhc3MgaXMgYSBqb2IgZmllbGQgdGhlIHdvcmtlciBhZG1pdHMgYWdhaW5zdCxcbiAgICogd2hpY2ggaXMgd2hlcmUgdGhlIGNvbnRlbnRpb24gYWN0dWFsbHkgaXMuXG4gICAqL1xuICBidWlsZENsYXNzOiB6LmVudW0oQlVJTERfQ0xBU1NFUykub3B0aW9uYWwoKSxcbiAgLyoqXG4gICAqIE1hY2hpbmUgc2l6ZSBmb3IgdGhpcyBidWlsZCAoRDEzKS4gQ3JlZGl0LW5ldXRyYWwgcGVyIGJ1aWxkIOKAlCBhIGAyeGAgYnVpbGRcbiAgICogYnVybnMgdGhlIHNhbWUgY3JlZGl0cyB0d2ljZSBhcyBmYXN0IOKAlCBzbyB0aGlzIGlzIGEgY2FwYWJpbGl0eSBnYXRlLCBub3QgYVxuICAgKiBwcmljZTogYFRJRVJfQlVJTERfU0laRVNgIHNheXMgd2hpY2ggdGllciBtYXkgYXNrIGZvciB3aGljaCwgYW5kIGEgcmVxdWVzdFxuICAgKiBhYm92ZSB0aGUgdGllcidzIGNlaWxpbmcgaXMgcmVmdXNlZCByYXRoZXIgdGhhbiBzaWxlbnRseSBkb3duZ3JhZGVkLlxuICAgKi9cbiAgYnVpbGRTaXplOiB6LmVudW0oQlVJTERfU0laRVMpLm9wdGlvbmFsKCksXG59KTtcbiJdfQ==
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNjaGVtYXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL3BsdWdpbi1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUN4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWpFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0lBQ3hELElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNsQyx1RUFBdUU7SUFDdkUsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3hFLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNyQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDbkMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDakMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVB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QUFLO0lBQ2pDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUU7SUFDdkMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRTtJQUN4QyxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxFQUFFO0NBQ3hDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUVaOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM3QyxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxFQUFFO0lBQ3ZDOzs7T0FHRztJQUNILFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDL0M7Ozs7O09BS0c7SUFDSCxjQUFjLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNwRDs7Ozs7T0FLRztJQUNILFNBQVMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQy9DOzs7Ozs7Ozs7O09BVUc7SUFDSCxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDNUM7Ozs7O09BS0c7SUFDSCxTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUU7Q0FDMUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuaW1wb3J0IHsgQmFzZUZpbHRlclNjaGVtYSwgQm9vbGVhblF1ZXJ5U2NoZW1hLCBWaXNpYmlsaXR5U2NoZW1hLCBDYXRhbG9nTWV0YWRhdGFTaGFwZSB9IGZyb20gJy4vY29tbW9uLXNjaGVtYXMuanMnO1xuaW1wb3J0IHsgUGx1Z2luQ2F0YWxvZ0VkaXRzU2NoZW1hIH0gZnJvbSAnLi9wbHVnaW4tY2F0YWxvZy1tZXRhZGF0YS5qcyc7XG5pbXBvcnQgeyBCVUlMRF9DTEFTU0VTLCBCVUlMRF9TSVpFUyB9IGZyb20gJy4uL3R5cGVzL2J1aWxkLWNhdGFsb2cuanMnO1xuaW1wb3J0IHsgUFVCTElTSEVSX0hBTkRMRV9QQVRURVJOIH0gZnJvbSAnLi4vdHlwZXMvZWNvc3lzdGVtLmpzJztcblxuLyoqXG4gKiBQbHVnaW4gZmlsdGVyIHNjaGVtYSBmb3IgcXVlcnkgcGFyYW1ldGVyc1xuICovXG5leHBvcnQgY29uc3QgUGx1Z2luRmlsdGVyU2NoZW1hID0gQmFzZUZpbHRlclNjaGVtYS5leHRlbmQoe1xuICBuYW1lOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICAvKiogUmVzb2x2ZSB0aHJvdWdoIHRoaXMgcHVibGlzaGVyJ3MgaW5zdGFsbGVkIGxpc3Rpbmc7IGxvb2t1cCBvbmx5LiAqL1xuICBwdWJsaXNoZXI6IHouc3RyaW5nKCkubWF4KDM5KS5yZWdleChQVUJMSVNIRVJfSEFORExFX1BBVFRFUk4pLm9wdGlvbmFsKCksXG4gIHZlcnNpb246IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIG9yZ0lkOiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxuICBwbHVnaW5UeXBlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGtleXdvcmQ6IHouc3RyaW5nKCkubWluKDEpLm9wdGlvbmFsKCksXG4gIGNhdGVnb3J5OiB6LnN0cmluZygpLm1pbigxKS5vcHRpb25hbCgpLFxufSk7XG5cbi8qKlxuICogUGx1Z2luIGNyZWF0aW9uIHNjaGVtYSDigJQgdXNlZCBmb3IgT3BlbkFQSSBkb2N1bWVudGF0aW9uIGFuZCBkaXJlY3QgQVBJIGNyZWF0aW9uLlxuICogQ3VycmVudGx5IG5vIHJvdXRlIHVzZXMgdGhpcyBkaXJlY3RseTsgcGx1Z2lucyBhcmUgY3JlYXRlZCB2aWEgdXBsb2FkIG9yIEFJIGdlbmVyYXRpb24uXG4gKiBSZXRhaW5lZCBmb3IgZnV0dXJlIGRpcmVjdC1jcmVhdGUgZW5kcG9pbnQgYW5kIE9wZW5BUEkgc3BlYyBjb21wbGV0ZW5lc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBQbHVnaW5DcmVhdGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIC4uLkNhdGFsb2dNZXRhZGF0YVNoYXBlLFxuICBvcmdJZDogei5zdHJpbmcoKS5taW4oMSwgJ09yZ2FuaXphdGlvbiBJRCBpcyByZXF1aXJlZCcpLFxuICBuYW1lOiB6LnN0cmluZygpLm1pbigxLCAnUGx1Z2luIG5hbWUgaXMgcmVxdWlyZWQnKSxcbiAgdmVyc2lvbjogei5zdHJpbmcoKS5taW4oMSwgJ1ZlcnNpb24gaXMgcmVxdWlyZWQnKSxcbiAgdmlzaWJpbGl0eTogVmlzaWJpbGl0eVNjaGVtYS5vcHRpb25hbCgpLFxuICBjYXRlZ29yeTogei5zdHJpbmcoKS5taW4oMSkub3B0aW9uYWwoKSxcbiAgcGx1Z2luVHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBjb21wdXRlVHlwZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBwcmltYXJ5T3V0cHV0RGlyZWN0b3J5OiB6LnN0cmluZygpLm51bGxhYmxlKCkub3B0aW9uYWwoKSxcbiAgbWV0YWRhdGE6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICBlbnY6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGJ1aWxkQXJnczogei5yZWNvcmQoei5zdHJpbmcoKSwgei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgaW5zdGFsbENvbW1hbmRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGNvbW1hbmRzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIGlzQWN0aXZlOiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgaXNEZWZhdWx0OiBCb29sZWFuUXVlcnlTY2hlbWEub3B0aW9uYWwoKSxcbiAgdGltZW91dDogei5udW1iZXIoKS5pbnQoKS5wb3NpdGl2ZSgpLm51bGxhYmxlKCkub3B0aW9uYWwoKSxcbiAgZmFpbHVyZUJlaGF2aW9yOiB6LmVudW0oWydmYWlsJywgJ3dhcm4nLCAnaWdub3JlJ10pLm9wdGlvbmFsKCksXG4gIHNlY3JldHM6IHouYXJyYXkoei5vYmplY3Qoe1xuICAgIG5hbWU6IHouc3RyaW5nKCkubWluKDEpLFxuICAgIHJlcXVpcmVkOiB6LmJvb2xlYW4oKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB9KSkub3B0aW9uYWwoKSxcbn0pO1xuXG4vKipcbiAqIFBsdWdpbiB1cGRhdGUgc2NoZW1hIChgUFVUIC9wbHVnaW5zLzppZGApLlxuICpcbiAqIERFU0NSSVBUSVZFIGNhdGFsb2cgZmllbGRzIG9ubHkgcGx1cyB0aGUgdmVyc2lvbidzIG9wZXJhdGlvbmFsXG4gKiBmbGFncyBhbmQgZGV2ZWxvcGVyLXBvcnRhbCBtZXRhZGF0YS4gRXhlY3V0aW9uLWNvbnRyYWN0IGtleXMgKGNvbW1hbmRzLCBlbnYsXG4gKiBzZWNyZXRzLCBjb21wdXRlIHR5cGUsIOKApikgYXJlIG5ldmVyIGFjY2VwdGVkIOKAlCB0aGUgcm91dGUgcmVmdXNlcyB0aGVtIHdpdGggYVxuICogNDAwIG5hbWluZyB0aGUga2V5cyBiZWZvcmUgdGhpcyBzY2hlbWEgcnVucywgYW5kIGAuc3RyaWN0KClgIHJlZnVzZXMgYW55dGhpbmdcbiAqIGVsc2UgdW5rbm93biByYXRoZXIgdGhhbiBzaWxlbnRseSBkcm9wcGluZyBpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IFBsdWdpblVwZGF0ZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgLi4uQ2F0YWxvZ01ldGFkYXRhU2hhcGUsXG4gIC4uLlBsdWdpbkNhdGFsb2dFZGl0c1NjaGVtYS5zaGFwZSxcbiAgaXNBY3RpdmU6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICBpc0RlZmF1bHQ6IEJvb2xlYW5RdWVyeVNjaGVtYS5vcHRpb25hbCgpLFxuICB2aXNpYmlsaXR5OiBWaXNpYmlsaXR5U2NoZW1hLm9wdGlvbmFsKCksXG59KS5zdHJpY3QoKTtcblxuLyoqXG4gKiBQbHVnaW4gdXBsb2FkIGJvZHkgc2NoZW1hIChtdWx0aXBhcnQgZm9ybS1kYXRhIHRleHQgZmllbGRzKVxuICovXG5leHBvcnQgY29uc3QgUGx1Z2luVXBsb2FkQm9keVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdmlzaWJpbGl0eTogVmlzaWJpbGl0eVNjaGVtYS5vcHRpb25hbCgpLFxuICAvKipcbiAgICogQ2F0YWxvZyBtZXRhZGF0YSBlZGl0cyBhcyBhIEpTT04gb2JqZWN0IChhIHtAbGluayBQbHVnaW5DYXRhbG9nRWRpdHNTY2hlbWF9XG4gICAqIGRvY3VtZW50KS4gQWJzZW50IOKHkiBldmVyeSB2YWx1ZSBkZXRlY3RlZCBmcm9tIHRoZSBwYWNrYWdlIGlzIGFjY2VwdGVkLlxuICAgKi9cbiAgbWV0YWRhdGE6IHouc3RyaW5nKCkubWF4KDI1NiAqIDEwMjQpLm9wdGlvbmFsKCksXG4gIC8qKlxuICAgKiBgdHJ1ZWA6IG9uY2UgdGhlIGJ1aWxkIGNvbXBsZXRlcywgc3VibWl0IGEgcHVibGlzaCByZXF1ZXN0IChuZXcgbGlzdGluZywgb3JcbiAgICogbmV3IHZlcnNpb24gb2YgdGhlIG9yZydzIGV4aXN0aW5nIGxpc3RpbmcpIGZvciB0aGUgYnVpbHQgdmVyc2lvbiBhcyB0aGVcbiAgICogdXBsb2FkZXIgKGRvY3MvcGx1Z2luLXB1Ymxpc2hpbmcubWQpLiBOZWVkcyBgcGx1Z2luczpwdWJsaXNoYCBhbmRcbiAgICogYHZpc2liaWxpdHk9cHVibGljYC4gVGhlIE9mZmljaWFsIGNhdGFsb2cgbG9hZGVyIGFsd2F5cyBzZXRzIGl0LlxuICAgKi9cbiAgcHVibGlzaFJlcXVlc3Q6IHouZW51bShbJ3RydWUnLCAnZmFsc2UnXSkub3B0aW9uYWwoKSxcbiAgLyoqXG4gICAqIGB0cnVlYDogdGhpcyB1cGxvYWQgaXMgdGhlIFNFVFVQIGNhdGFsb2cgbG9hZCAoZGVwbG95L2Jpbi9sb2FkLXBsdWdpbnMuc2gpLlxuICAgKiBIb25vdXJlZCBvbmx5IGZvciBhIHN5c3RlbS1vcmcgYnVpbGQsIHdoZXJlIGFuIGltYWdlIHRoZSBzY2FuIGdhdGVzIHJlZnVzZVxuICAgKiBpcyBLRVBUIGluIHRoZSByZWdpc3RyeSBmb3IgcHJvbW90aW9uIChgUE9TVCAvcGx1Z2lucy9rZXB0LXNldHVwLWltYWdlcy86aWQvcHJvbW90ZWApXG4gICAqIGluc3RlYWQgb2YgZGlzY2FyZGVkLiBJZ25vcmVkIChub3JtYWwgZGlzY2FyZCkgZm9yIGFueSBvdGhlciBvcmcuXG4gICAqL1xuICBzZXR1cExvYWQ6IHouZW51bShbJ3RydWUnLCAnZmFsc2UnXSkub3B0aW9uYWwoKSxcbiAgLyoqXG4gICAqIFNjaGVkdWxpbmcgY2xhc3MgZm9yIHRoaXMgYnVpbGQgKEQxMSkuIGBzdGFuZGFyZGAgaXMgdGhlIGRlZmF1bHQgYW5kIHRoZVxuICAgKiBvbmx5IGNsYXNzIGFuIHVyZ2VudCBmaXggc2hvdWxkIHVzZTsgYGJhdGNoYCB0cmFkZXMgc3RhcnQgbGF0ZW5jeSBmb3IgbW9yZVxuICAgKiBwZXItb3JnIGhlYWRyb29tLCBhbmQgZXZlcnkgdGllciBoYXMgYm90aCDigJQgYSBmcmVlIGFjY291bnQgbXVzdCBzdGlsbCBiZVxuICAgKiBhYmxlIHRvIHB1c2ggb25lIHVyZ2VudCBidWlsZCB0aHJvdWdoLlxuICAgKlxuICAgKiBOb3QgYSBCdWxsTVEgcHJpb3JpdHk6IHByaW9yaXRpZXMgYXJlIHBlci1xdWV1ZSBpbnRlZ2VycyBhbmQgYnVpbGRzIGFyZVxuICAgKiBhbHJlYWR5IHNwbGl0IGFjcm9zcyBvbmUgcXVldWUgUEVSIFRJRVIsIHNvIGEgcHJpb3JpdHkgd291bGQgb25seSBvcmRlciBhXG4gICAqIHRpZXIgYWdhaW5zdCBpdHNlbGYuIFRoZSBjbGFzcyBpcyBhIGpvYiBmaWVsZCB0aGUgd29ya2VyIGFkbWl0cyBhZ2FpbnN0LFxuICAgKiB3aGljaCBpcyB3aGVyZSB0aGUgY29udGVudGlvbiBhY3R1YWxseSBpcy5cbiAgICovXG4gIGJ1aWxkQ2xhc3M6IHouZW51bShCVUlMRF9DTEFTU0VTKS5vcHRpb25hbCgpLFxuICAvKipcbiAgICogTWFjaGluZSBzaXplIGZvciB0aGlzIGJ1aWxkIChEMTMpLiBDcmVkaXQtbmV1dHJhbCBwZXIgYnVpbGQg4oCUIGEgYDJ4YCBidWlsZFxuICAgKiBidXJucyB0aGUgc2FtZSBjcmVkaXRzIHR3aWNlIGFzIGZhc3Qg4oCUIHNvIHRoaXMgaXMgYSBjYXBhYmlsaXR5IGdhdGUsIG5vdCBhXG4gICAqIHByaWNlOiBgVElFUl9CVUlMRF9TSVpFU2Agc2F5cyB3aGljaCB0aWVyIG1heSBhc2sgZm9yIHdoaWNoLCBhbmQgYSByZXF1ZXN0XG4gICAqIGFib3ZlIHRoZSB0aWVyJ3MgY2VpbGluZyBpcyByZWZ1c2VkIHJhdGhlciB0aGFuIHNpbGVudGx5IGRvd25ncmFkZWQuXG4gICAqL1xuICBidWlsZFNpemU6IHouZW51bShCVUlMRF9TSVpFUykub3B0aW9uYWwoKSxcbn0pO1xuIl19