terraconstructs 0.2.4 → 0.2.5

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 (412) hide show
  1. package/.jsii +2984 -2812
  2. package/CLAUDE.md +6 -6
  3. package/README.md +1 -1
  4. package/lib/asset-staging.js +3 -3
  5. package/lib/aws/arn.js +5 -5
  6. package/lib/aws/aws-asset-manager.js +9 -9
  7. package/lib/aws/aws-construct.js +1 -1
  8. package/lib/aws/aws-stack.d.ts +2 -2
  9. package/lib/aws/aws-stack.js +9 -9
  10. package/lib/aws/aws-tags.d.ts +1 -1
  11. package/lib/aws/aws-tags.js +5 -5
  12. package/lib/aws/cloudwatch/actions/appscaling.js +1 -1
  13. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  14. package/lib/aws/cloudwatch/actions/lambda.js +2 -2
  15. package/lib/aws/cloudwatch/actions/sns.js +1 -1
  16. package/lib/aws/cloudwatch/actions/ssm.js +2 -2
  17. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  18. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  19. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  20. package/lib/aws/cloudwatch/alarm.d.ts +1 -1
  21. package/lib/aws/cloudwatch/alarm.js +10 -10
  22. package/lib/aws/cloudwatch/composite-alarm.d.ts +1 -1
  23. package/lib/aws/cloudwatch/composite-alarm.js +7 -7
  24. package/lib/aws/cloudwatch/dashboard.d.ts +1 -1
  25. package/lib/aws/cloudwatch/dashboard.js +7 -7
  26. package/lib/aws/cloudwatch/data-protection-policy.d.ts +1 -1
  27. package/lib/aws/cloudwatch/data-protection-policy.js +5 -5
  28. package/lib/aws/cloudwatch/graph.js +8 -8
  29. package/lib/aws/cloudwatch/layout.js +3 -3
  30. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  31. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  32. package/lib/aws/cloudwatch/log-group.d.ts +1 -1
  33. package/lib/aws/cloudwatch/log-group.js +7 -7
  34. package/lib/aws/cloudwatch/log-query.js +1 -1
  35. package/lib/aws/cloudwatch/log-stream.d.ts +1 -1
  36. package/lib/aws/cloudwatch/log-stream.js +3 -3
  37. package/lib/aws/cloudwatch/metric-filter.d.ts +1 -1
  38. package/lib/aws/cloudwatch/metric-filter.js +3 -3
  39. package/lib/aws/cloudwatch/metric.js +6 -6
  40. package/lib/aws/cloudwatch/pattern.js +3 -3
  41. package/lib/aws/cloudwatch/policy.d.ts +1 -1
  42. package/lib/aws/cloudwatch/policy.js +3 -3
  43. package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.d.ts +1 -1
  44. package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.js +1 -1
  45. package/lib/aws/cloudwatch/private/env-tokens.js +6 -6
  46. package/lib/aws/cloudwatch/query-definition.d.ts +1 -1
  47. package/lib/aws/cloudwatch/query-definition.js +4 -4
  48. package/lib/aws/cloudwatch/stats.js +1 -1
  49. package/lib/aws/cloudwatch/subscription-filter.d.ts +1 -1
  50. package/lib/aws/cloudwatch/subscription-filter.js +6 -6
  51. package/lib/aws/cloudwatch/text.js +1 -1
  52. package/lib/aws/cloudwatch/variable.js +3 -3
  53. package/lib/aws/cloudwatch/widget.js +1 -1
  54. package/lib/aws/compute/access-log.d.ts +1 -1
  55. package/lib/aws/compute/access-log.js +5 -5
  56. package/lib/aws/compute/activity.d.ts +1 -1
  57. package/lib/aws/compute/activity.js +5 -5
  58. package/lib/aws/compute/alb/application-listener-action.d.ts +1 -1
  59. package/lib/aws/compute/alb/application-listener-action.js +5 -5
  60. package/lib/aws/compute/alb/application-listener-certificate.js +3 -3
  61. package/lib/aws/compute/alb/application-listener-rule.js +9 -9
  62. package/lib/aws/compute/alb/application-listener.js +5 -5
  63. package/lib/aws/compute/alb/application-load-balancer.js +8 -8
  64. package/lib/aws/compute/alb/application-target-group.js +7 -7
  65. package/lib/aws/compute/alb/conditions.js +3 -3
  66. package/lib/aws/compute/alb/trust-store-revocation.js +3 -3
  67. package/lib/aws/compute/alb/trust-store.js +7 -7
  68. package/lib/aws/compute/api-definition.js +9 -9
  69. package/lib/aws/compute/api-key.js +6 -6
  70. package/lib/aws/compute/architecture.js +1 -1
  71. package/lib/aws/compute/aspects/require-imdsv2-aspect.d.ts +1 -1
  72. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +6 -6
  73. package/lib/aws/compute/authorizer.js +1 -1
  74. package/lib/aws/compute/authorizers/identity-source.js +1 -1
  75. package/lib/aws/compute/authorizers/lambda.d.ts +1 -1
  76. package/lib/aws/compute/authorizers/lambda.js +6 -6
  77. package/lib/aws/compute/base-path-mapping.js +5 -5
  78. package/lib/aws/compute/base-scalable-attribute.js +1 -1
  79. package/lib/aws/compute/bastion-host.js +4 -4
  80. package/lib/aws/compute/chain.js +1 -1
  81. package/lib/aws/compute/client-vpn-authorization-rule.js +3 -3
  82. package/lib/aws/compute/client-vpn-endpoint.d.ts +1 -1
  83. package/lib/aws/compute/client-vpn-endpoint.js +9 -9
  84. package/lib/aws/compute/client-vpn-route.d.ts +1 -1
  85. package/lib/aws/compute/client-vpn-route.js +4 -4
  86. package/lib/aws/compute/code.d.ts +3 -3
  87. package/lib/aws/compute/code.js +15 -15
  88. package/lib/aws/compute/condition.js +1 -1
  89. package/lib/aws/compute/connections.js +1 -1
  90. package/lib/aws/compute/cors.js +1 -1
  91. package/lib/aws/compute/deployment.js +5 -5
  92. package/lib/aws/compute/domain-name.js +5 -5
  93. package/lib/aws/compute/event-invoke-config.d.ts +1 -1
  94. package/lib/aws/compute/event-invoke-config.js +3 -3
  95. package/lib/aws/compute/event-source-filter.js +2 -2
  96. package/lib/aws/compute/event-source-mapping.js +7 -7
  97. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  98. package/lib/aws/compute/event-sources/s3.js +1 -1
  99. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  100. package/lib/aws/compute/event-sources/sqs.js +5 -5
  101. package/lib/aws/compute/fields.d.ts +1 -1
  102. package/lib/aws/compute/fields.js +12 -12
  103. package/lib/aws/compute/function-alias.d.ts +1 -1
  104. package/lib/aws/compute/function-alias.js +3 -3
  105. package/lib/aws/compute/function-base.d.ts +1 -1
  106. package/lib/aws/compute/function-base.js +10 -9
  107. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  108. package/lib/aws/compute/function-destinations/function.js +1 -1
  109. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  110. package/lib/aws/compute/function-nodejs/bundling.js +6 -6
  111. package/lib/aws/compute/function-nodejs/function.js +4 -4
  112. package/lib/aws/compute/function-url.d.ts +1 -1
  113. package/lib/aws/compute/function-url.js +3 -3
  114. package/lib/aws/compute/function-vpc-config.generated.d.ts +5 -5
  115. package/lib/aws/compute/function-vpc-config.generated.js +1 -1
  116. package/lib/aws/compute/function.d.ts +2 -2
  117. package/lib/aws/compute/function.js +9 -9
  118. package/lib/aws/compute/gateway-response.d.ts +1 -1
  119. package/lib/aws/compute/gateway-response.js +4 -4
  120. package/lib/aws/compute/handler.js +1 -1
  121. package/lib/aws/compute/instance-types.js +1 -1
  122. package/lib/aws/compute/instance.d.ts +1 -1
  123. package/lib/aws/compute/instance.js +9 -9
  124. package/lib/aws/compute/integration.js +4 -4
  125. package/lib/aws/compute/integrations/aws.js +3 -3
  126. package/lib/aws/compute/integrations/http.js +1 -1
  127. package/lib/aws/compute/integrations/lambda.js +5 -5
  128. package/lib/aws/compute/integrations/mock.js +1 -1
  129. package/lib/aws/compute/integrations/stepfunctions.js +4 -4
  130. package/lib/aws/compute/ip-addresses.d.ts +1 -1
  131. package/lib/aws/compute/ip-addresses.js +10 -10
  132. package/lib/aws/compute/ipam.d.ts +1 -1
  133. package/lib/aws/compute/ipam.js +5 -5
  134. package/lib/aws/compute/key-pair.d.ts +1 -1
  135. package/lib/aws/compute/key-pair.js +6 -6
  136. package/lib/aws/compute/lambda-api.js +1 -1
  137. package/lib/aws/compute/launch-template.d.ts +1 -1
  138. package/lib/aws/compute/launch-template.js +12 -12
  139. package/lib/aws/compute/lb-shared/base-listener.js +9 -9
  140. package/lib/aws/compute/lb-shared/base-load-balancer.d.ts +2 -2
  141. package/lib/aws/compute/lb-shared/base-load-balancer.js +12 -12
  142. package/lib/aws/compute/lb-shared/base-target-group.d.ts +1 -1
  143. package/lib/aws/compute/lb-shared/base-target-group.js +15 -15
  144. package/lib/aws/compute/lb-shared/lb-listener-config.generated.d.ts +34 -34
  145. package/lib/aws/compute/lb-shared/lb-listener-config.generated.js +1 -1
  146. package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.d.ts +11 -6
  147. package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.js +1 -1
  148. package/lib/aws/compute/lb-shared/listener-action.d.ts +1 -1
  149. package/lib/aws/compute/lb-shared/listener-action.js +1 -1
  150. package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
  151. package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
  152. package/lib/aws/compute/lb-shared/util.js +5 -5
  153. package/lib/aws/compute/lb-targets/alb-target.js +3 -3
  154. package/lib/aws/compute/lb-targets/instance-target.js +2 -2
  155. package/lib/aws/compute/lb-targets/ip-target.js +1 -1
  156. package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
  157. package/lib/aws/compute/load-balancer.d.ts +1 -1
  158. package/lib/aws/compute/load-balancer.js +8 -8
  159. package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
  160. package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
  161. package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
  162. package/lib/aws/compute/machine-image/common.js +1 -1
  163. package/lib/aws/compute/machine-image/machine-image.js +10 -10
  164. package/lib/aws/compute/method.js +6 -6
  165. package/lib/aws/compute/model.js +5 -5
  166. package/lib/aws/compute/nat.js +10 -10
  167. package/lib/aws/compute/network-acl-types.js +2 -2
  168. package/lib/aws/compute/network-acl.d.ts +1 -1
  169. package/lib/aws/compute/network-acl.js +5 -5
  170. package/lib/aws/compute/nlb/network-listener-action.d.ts +1 -1
  171. package/lib/aws/compute/nlb/network-listener-action.js +2 -2
  172. package/lib/aws/compute/nlb/network-listener-certificate.js +2 -2
  173. package/lib/aws/compute/nlb/network-listener.js +5 -5
  174. package/lib/aws/compute/nlb/network-load-balancer.js +6 -6
  175. package/lib/aws/compute/nlb/network-target-group.js +4 -4
  176. package/lib/aws/compute/peer.js +7 -7
  177. package/lib/aws/compute/placement-group.d.ts +1 -1
  178. package/lib/aws/compute/placement-group.js +3 -3
  179. package/lib/aws/compute/port.js +5 -5
  180. package/lib/aws/compute/prefix-list.d.ts +1 -1
  181. package/lib/aws/compute/prefix-list.js +5 -5
  182. package/lib/aws/compute/private/context-stub.js +7 -7
  183. package/lib/aws/compute/private/ebs-util.d.ts +1 -1
  184. package/lib/aws/compute/private/ebs-util.js +3 -3
  185. package/lib/aws/compute/private/json-path.d.ts +1 -1
  186. package/lib/aws/compute/private/json-path.js +8 -8
  187. package/lib/aws/compute/requestvalidator.js +3 -3
  188. package/lib/aws/compute/resource.js +5 -5
  189. package/lib/aws/compute/restapi.d.ts +1 -1
  190. package/lib/aws/compute/restapi.js +11 -11
  191. package/lib/aws/compute/route.d.ts +1 -1
  192. package/lib/aws/compute/route.js +12 -12
  193. package/lib/aws/compute/runtime.js +3 -3
  194. package/lib/aws/compute/scalable-target.d.ts +1 -1
  195. package/lib/aws/compute/scalable-target.js +3 -3
  196. package/lib/aws/compute/schedule.js +4 -4
  197. package/lib/aws/compute/security-group.js +12 -12
  198. package/lib/aws/compute/stage.d.ts +1 -1
  199. package/lib/aws/compute/stage.js +6 -6
  200. package/lib/aws/compute/state-graph.js +1 -1
  201. package/lib/aws/compute/state-machine-fragment.js +1 -1
  202. package/lib/aws/compute/state-machine.d.ts +2 -2
  203. package/lib/aws/compute/state-machine.js +8 -8
  204. package/lib/aws/compute/states/choice.js +1 -1
  205. package/lib/aws/compute/states/custom-state.js +5 -5
  206. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  207. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  208. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  209. package/lib/aws/compute/states/distributed-map.js +4 -4
  210. package/lib/aws/compute/states/fail.js +4 -4
  211. package/lib/aws/compute/states/map-base.js +4 -4
  212. package/lib/aws/compute/states/map.js +1 -1
  213. package/lib/aws/compute/states/parallel.js +1 -1
  214. package/lib/aws/compute/states/pass.js +2 -2
  215. package/lib/aws/compute/states/state.js +4 -4
  216. package/lib/aws/compute/states/succeed.js +1 -1
  217. package/lib/aws/compute/states/task-base.js +2 -2
  218. package/lib/aws/compute/states/task.js +1 -1
  219. package/lib/aws/compute/states/wait.js +2 -2
  220. package/lib/aws/compute/step-scaling-action.js +5 -5
  221. package/lib/aws/compute/step-scaling-policy.js +7 -7
  222. package/lib/aws/compute/stepfunctions-api.js +2 -2
  223. package/lib/aws/compute/subnet-v2.d.ts +1 -1
  224. package/lib/aws/compute/subnet-v2.js +5 -5
  225. package/lib/aws/compute/subnet.js +4 -4
  226. package/lib/aws/compute/target-tracking-scaling-policy.js +3 -3
  227. package/lib/aws/compute/task-credentials.js +1 -1
  228. package/lib/aws/compute/task-input.js +1 -1
  229. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +5 -5
  230. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  231. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  232. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  233. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  234. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  235. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  236. package/lib/aws/compute/types.js +1 -1
  237. package/lib/aws/compute/usage-plan.js +5 -5
  238. package/lib/aws/compute/user-data.d.ts +2 -2
  239. package/lib/aws/compute/user-data.js +10 -10
  240. package/lib/aws/compute/volume.d.ts +1 -1
  241. package/lib/aws/compute/volume.js +7 -7
  242. package/lib/aws/compute/vpc-endpoint-service.js +3 -3
  243. package/lib/aws/compute/vpc-endpoint.d.ts +1 -1
  244. package/lib/aws/compute/vpc-endpoint.js +13 -13
  245. package/lib/aws/compute/vpc-flow-logs.d.ts +1 -1
  246. package/lib/aws/compute/vpc-flow-logs.js +8 -8
  247. package/lib/aws/compute/vpc-link.js +5 -5
  248. package/lib/aws/compute/vpc-v2-base.js +6 -6
  249. package/lib/aws/compute/vpc-v2.d.ts +2 -2
  250. package/lib/aws/compute/vpc-v2.js +4 -4
  251. package/lib/aws/compute/vpc.d.ts +1 -1
  252. package/lib/aws/compute/vpc.js +21 -21
  253. package/lib/aws/compute/vpn.js +8 -8
  254. package/lib/aws/context-provider.js +4 -4
  255. package/lib/aws/edge/certificate.d.ts +1 -1
  256. package/lib/aws/edge/certificate.js +6 -6
  257. package/lib/aws/edge/distribution.d.ts +1 -1
  258. package/lib/aws/edge/distribution.js +9 -9
  259. package/lib/aws/edge/dns-alias-record-targets.d.ts +1 -1
  260. package/lib/aws/edge/dns-alias-record-targets.js +7 -7
  261. package/lib/aws/edge/dns-record.d.ts +1 -1
  262. package/lib/aws/edge/dns-record.js +19 -19
  263. package/lib/aws/edge/dns-zone.d.ts +2 -2
  264. package/lib/aws/edge/dns-zone.js +5 -5
  265. package/lib/aws/edge/function.d.ts +1 -1
  266. package/lib/aws/edge/function.js +4 -4
  267. package/lib/aws/edge/key-value-store.d.ts +1 -1
  268. package/lib/aws/edge/key-value-store.js +6 -6
  269. package/lib/aws/edge/origin.d.ts +1 -1
  270. package/lib/aws/edge/origin.js +6 -6
  271. package/lib/aws/edge/response-headers-policy.d.ts +1 -1
  272. package/lib/aws/edge/response-headers-policy.js +6 -6
  273. package/lib/aws/encryption/alias.d.ts +1 -1
  274. package/lib/aws/encryption/alias.js +8 -8
  275. package/lib/aws/encryption/key.d.ts +1 -1
  276. package/lib/aws/encryption/key.js +6 -6
  277. package/lib/aws/encryption/via-service-principal.js +1 -1
  278. package/lib/aws/iam/grant.js +3 -3
  279. package/lib/aws/iam/group.js +5 -5
  280. package/lib/aws/iam/instance-profile.d.ts +1 -1
  281. package/lib/aws/iam/instance-profile.js +3 -3
  282. package/lib/aws/iam/managed-policy.d.ts +1 -1
  283. package/lib/aws/iam/managed-policy.js +3 -3
  284. package/lib/aws/iam/oidc-provider.d.ts +1 -1
  285. package/lib/aws/iam/oidc-provider.js +3 -3
  286. package/lib/aws/iam/policy-document-config.generated.d.ts +9 -9
  287. package/lib/aws/iam/policy-document-config.generated.js +1 -1
  288. package/lib/aws/iam/policy-document.d.ts +1 -1
  289. package/lib/aws/iam/policy-document.js +5 -5
  290. package/lib/aws/iam/policy-statement-props.generated.d.ts +8 -8
  291. package/lib/aws/iam/policy-statement-props.generated.js +1 -1
  292. package/lib/aws/iam/policy-statement.d.ts +1 -1
  293. package/lib/aws/iam/policy-statement.js +8 -8
  294. package/lib/aws/iam/policy.js +3 -3
  295. package/lib/aws/iam/principals.js +25 -25
  296. package/lib/aws/iam/private/imported-role.js +3 -3
  297. package/lib/aws/iam/private/postprocess-policy-document.d.ts +1 -1
  298. package/lib/aws/iam/private/postprocess-policy-document.js +1 -1
  299. package/lib/aws/iam/private/util.d.ts +1 -1
  300. package/lib/aws/iam/private/util.js +5 -5
  301. package/lib/aws/iam/role.d.ts +1 -1
  302. package/lib/aws/iam/role.js +6 -6
  303. package/lib/aws/iam/saml-provider.d.ts +1 -1
  304. package/lib/aws/iam/saml-provider.js +6 -6
  305. package/lib/aws/iam/unknown-principal.js +4 -4
  306. package/lib/aws/iam/user.js +3 -3
  307. package/lib/aws/network/network.d.ts +1 -1
  308. package/lib/aws/network/network.js +1 -1
  309. package/lib/aws/network/simple-ipv4-vpc.js +12 -12
  310. package/lib/aws/network/subnet-group.d.ts +1 -1
  311. package/lib/aws/network/subnet-group.js +5 -5
  312. package/lib/aws/network/subnet.d.ts +1 -1
  313. package/lib/aws/network/subnet.js +6 -6
  314. package/lib/aws/notify/archive.d.ts +1 -1
  315. package/lib/aws/notify/archive.js +3 -3
  316. package/lib/aws/notify/connection.d.ts +1 -1
  317. package/lib/aws/notify/connection.js +5 -5
  318. package/lib/aws/notify/event-bus.d.ts +1 -1
  319. package/lib/aws/notify/event-bus.js +10 -10
  320. package/lib/aws/notify/event-pattern.d.ts +1 -1
  321. package/lib/aws/notify/event-pattern.js +5 -5
  322. package/lib/aws/notify/input.d.ts +1 -1
  323. package/lib/aws/notify/input.js +12 -12
  324. package/lib/aws/notify/kinesis-stream.d.ts +1 -1
  325. package/lib/aws/notify/kinesis-stream.js +7 -7
  326. package/lib/aws/notify/notification-rule.js +8 -8
  327. package/lib/aws/notify/policy.js +3 -3
  328. package/lib/aws/notify/queue-base.js +1 -1
  329. package/lib/aws/notify/queue-policy.js +3 -3
  330. package/lib/aws/notify/queue.d.ts +1 -1
  331. package/lib/aws/notify/queue.js +8 -8
  332. package/lib/aws/notify/resource-policy.js +3 -3
  333. package/lib/aws/notify/rule.d.ts +1 -1
  334. package/lib/aws/notify/rule.js +6 -6
  335. package/lib/aws/notify/schedule.js +4 -4
  336. package/lib/aws/notify/sns-grants.generated.js +1 -1
  337. package/lib/aws/notify/sqs-grants.generated.js +1 -1
  338. package/lib/aws/notify/subscription-filter.js +1 -1
  339. package/lib/aws/notify/subscription.js +6 -6
  340. package/lib/aws/notify/subscriptions/email.js +1 -1
  341. package/lib/aws/notify/subscriptions/lambda.js +4 -4
  342. package/lib/aws/notify/subscriptions/sms.js +1 -1
  343. package/lib/aws/notify/subscriptions/sqs.js +4 -4
  344. package/lib/aws/notify/subscriptions/url.js +4 -4
  345. package/lib/aws/notify/target.d.ts +1 -1
  346. package/lib/aws/notify/target.js +1 -1
  347. package/lib/aws/notify/targets/event-bus.js +1 -1
  348. package/lib/aws/notify/targets/function.js +1 -1
  349. package/lib/aws/notify/targets/log-group.js +2 -2
  350. package/lib/aws/notify/targets/sqs.js +1 -1
  351. package/lib/aws/notify/targets/state-machine.js +1 -1
  352. package/lib/aws/notify/targets/util.js +3 -3
  353. package/lib/aws/notify/topic-base.js +4 -4
  354. package/lib/aws/notify/topic.js +7 -7
  355. package/lib/aws/provider-config.generated.d.ts +42 -36
  356. package/lib/aws/provider-config.generated.js +1 -1
  357. package/lib/aws/region-lookup.js +4 -4
  358. package/lib/aws/storage/assets/image-asset.js +8 -8
  359. package/lib/aws/storage/assets/s3.js +1 -1
  360. package/lib/aws/storage/auth-token.js +2 -2
  361. package/lib/aws/storage/billing.js +1 -1
  362. package/lib/aws/storage/bucket-notifications.d.ts +1 -1
  363. package/lib/aws/storage/bucket-notifications.js +8 -8
  364. package/lib/aws/storage/bucket-policy.d.ts +1 -1
  365. package/lib/aws/storage/bucket-policy.js +3 -3
  366. package/lib/aws/storage/bucket-source.d.ts +1 -1
  367. package/lib/aws/storage/bucket-source.js +7 -7
  368. package/lib/aws/storage/bucket.d.ts +1 -1
  369. package/lib/aws/storage/bucket.js +8 -8
  370. package/lib/aws/storage/capacity.js +1 -1
  371. package/lib/aws/storage/cors-config.generated.d.ts +5 -5
  372. package/lib/aws/storage/cors-config.generated.js +1 -1
  373. package/lib/aws/storage/cors-rule-config.generated.d.ts +5 -5
  374. package/lib/aws/storage/cors-rule-config.generated.js +1 -1
  375. package/lib/aws/storage/ecr-repository.js +11 -11
  376. package/lib/aws/storage/encryption.d.ts +1 -1
  377. package/lib/aws/storage/encryption.js +5 -5
  378. package/lib/aws/storage/lifecycle-config.generated.d.ts +9 -9
  379. package/lib/aws/storage/lifecycle-config.generated.js +1 -1
  380. package/lib/aws/storage/notification-targets/function.js +2 -2
  381. package/lib/aws/storage/notification-targets/queue.js +4 -4
  382. package/lib/aws/storage/origin-access-identity.d.ts +2 -2
  383. package/lib/aws/storage/origin-access-identity.js +3 -3
  384. package/lib/aws/storage/parameter-util.js +5 -5
  385. package/lib/aws/storage/parameter.d.ts +2 -2
  386. package/lib/aws/storage/parameter.js +16 -16
  387. package/lib/aws/storage/stream-grants.js +1 -1
  388. package/lib/aws/storage/table-grants.js +1 -1
  389. package/lib/aws/storage/table.d.ts +1 -1
  390. package/lib/aws/storage/table.js +10 -10
  391. package/lib/aws/storage/website-config.generated.d.ts +8 -8
  392. package/lib/aws/storage/website-config.generated.js +1 -1
  393. package/lib/bundling.js +5 -5
  394. package/lib/construct-base.d.ts +1 -1
  395. package/lib/construct-base.js +10 -10
  396. package/lib/duration.js +9 -9
  397. package/lib/errors.js +1 -1
  398. package/lib/expiration.js +1 -1
  399. package/lib/fs/ignore.js +4 -4
  400. package/lib/fs/index.js +1 -1
  401. package/lib/private/terraform-dependables-aspect.d.ts +1 -1
  402. package/lib/private/terraform-dependables-aspect.js +6 -6
  403. package/lib/private/unique-resource-name.js +3 -3
  404. package/lib/size.js +6 -6
  405. package/lib/stack-base.d.ts +2 -2
  406. package/lib/stack-base.js +16 -16
  407. package/lib/terra-func.d.ts +1 -1
  408. package/lib/terra-func.js +18 -18
  409. package/lib/time-zone.js +1 -1
  410. package/lib/token.js +5 -5
  411. package/package.json +17 -17
  412. package/setup.js +2 -2
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.NotificationRule = exports.DetailType = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  // https://github.com/aws/aws-cdk/blob/bc96ee17a18c19b98e4ad052bed7c24da2371050/packages/aws-cdk-lib/aws-codestarnotifications/lib/notification-rule.ts
7
- const provider_aws_1 = require("@cdktf/provider-aws");
8
- const cdktf_1 = require("cdktf");
7
+ const provider_aws_1 = require("@cdktn/provider-aws");
8
+ const cdktn_1 = require("cdktn");
9
9
  const aws_construct_1 = require("../aws-construct");
10
10
  /**
11
11
  * The level of detail to include in the notifications for this resource.
@@ -43,7 +43,7 @@ class NotificationRule extends aws_construct_1.AwsConstructBase {
43
43
  return { notificationRuleArn: this.notificationRuleArn };
44
44
  }
45
45
  addTarget(_target) {
46
- cdktf_1.Annotations.of(this).addWarning(`Cannot add targets to imported NotificationRule '${this.node.id}'. Define targets directly on the source or manage permissions separately.`);
46
+ cdktn_1.Annotations.of(this).addWarning(`Cannot add targets to imported NotificationRule '${this.node.id}'. Define targets directly on the source or manage permissions separately.`);
47
47
  return false;
48
48
  }
49
49
  }
@@ -71,9 +71,9 @@ class NotificationRule extends aws_construct_1.AwsConstructBase {
71
71
  new provider_aws_1.codestarnotificationsNotificationRule.CodestarnotificationsNotificationRule(this, "Resource", {
72
72
  name: ruleName,
73
73
  detailType: props.detailType ?? DetailType.FULL,
74
- eventTypeIds: cdktf_1.Lazy.listValue({
74
+ eventTypeIds: cdktn_1.Lazy.listValue({
75
75
  produce: () => {
76
- if (cdktf_1.Token.isUnresolved(props.events)) {
76
+ if (cdktn_1.Token.isUnresolved(props.events)) {
77
77
  return props.events;
78
78
  }
79
79
  return this.events;
@@ -86,7 +86,7 @@ class NotificationRule extends aws_construct_1.AwsConstructBase {
86
86
  ? "ENABLED"
87
87
  : undefined, // Let Terraform handle default if undefined
88
88
  // Use Lazy producer to handle the potentially dynamic list of targets
89
- target: cdktf_1.Lazy.anyValue({
89
+ target: cdktn_1.Lazy.anyValue({
90
90
  produce: () => this.targetList.map((t) => provider_aws_1.codestarnotificationsNotificationRule.codestarnotificationsNotificationRuleTargetToTerraform({
91
91
  address: t.targetAddress,
92
92
  type: t.targetType,
@@ -125,5 +125,5 @@ class NotificationRule extends aws_construct_1.AwsConstructBase {
125
125
  }
126
126
  exports.NotificationRule = NotificationRule;
127
127
  _a = JSII_RTTI_SYMBOL_1;
128
- NotificationRule[_a] = { fqn: "terraconstructs.aws.notify.NotificationRule", version: "0.2.4" };
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL25vdGlmeS9ub3RpZmljYXRpb24tcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHVKQUF1SjtBQUV2SixzREFBNEU7QUFDNUUsaUNBQWlEO0FBRWpELG9EQUkwQjtBQU8xQjs7R0FFRztBQUNILElBQVksVUFVWDtBQVZELFdBQVksVUFBVTtJQUNwQjs7T0FFRztJQUNILDZCQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDJCQUFhLENBQUE7QUFDZixDQUFDLEVBVlcsVUFBVSwwQkFBVixVQUFVLFFBVXJCO0FBK0ZEOzs7O0dBSUc7QUFDSCxNQUFhLGdCQUNYLFNBQVEsZ0NBQWdCO0lBR3hCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLHVCQUF1QixDQUNuQyxLQUEyQixFQUMzQixFQUFVLEVBQ1YsbUJBQTJCO1FBRTNCLE1BQU0sTUFBTyxTQUFRLGdDQUFnQjtZQUFyQzs7Z0JBQ1csd0JBQW1CLEdBQUcsbUJBQW1CLENBQUM7WUFXckQsQ0FBQztZQVZDLElBQVcsT0FBTztnQkFDaEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNELENBQUM7WUFFTSxTQUFTLENBQUMsT0FBZ0M7Z0JBQy9DLG1CQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FDN0Isb0RBQW9ELElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSw0RUFBNEUsQ0FDN0ksQ0FBQztnQkFDRixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7U0FDRjtRQUVELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUMzQixrQkFBa0IsRUFBRSxtQkFBbUI7U0FDeEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQVdELElBQVcsT0FBTztRQUNoQixPQUFPLEVBQUUsbUJBQW1CLEVB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QWE7WUFDN0MsQ0FBQyxDQUFDLFVBQVUsS0FBSyxXQUFXLENBQUMsVUFBVSxDQUMxQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbEMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0Q7Ozs7OztPQU1HO0lBQ0ssU0FBUyxDQUFDLE1BQWdCO1FBQ2hDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN2QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2hDLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXpJSCw0Q0EwSUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi9iYzk2ZWUxN2ExOGMxOWI5OGU0YWQwNTJiZWQ3YzI0ZGEyMzcxMDUwL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1jb2Rlc3Rhcm5vdGlmaWNhdGlvbnMvbGliL25vdGlmaWNhdGlvbi1ydWxlLnRzXG5cbmltcG9ydCB7IGNvZGVzdGFybm90aWZpY2F0aW9uc05vdGlmaWNhdGlvblJ1bGUgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgQW5ub3RhdGlvbnMsIExhenksIFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBBd3NDb25zdHJ1Y3RCYXNlLFxuICBBd3NDb25zdHJ1Y3RQcm9wcyxcbiAgSUF3c0NvbnN0cnVjdCxcbn0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IElOb3RpZmljYXRpb25SdWxlU291cmNlIH0gZnJvbSBcIi4vbm90aWZpY2F0aW9uLXJ1bGUtc291cmNlXCI7XG5pbXBvcnQge1xuICBJTm90aWZpY2F0aW9uUnVsZVRhcmdldCxcbiAgTm90aWZpY2F0aW9uUnVsZVRhcmdldENvbmZpZyxcbn0gZnJvbSBcIi4vbm90aWZpY2F0aW9uLXJ1bGUtdGFyZ2V0XCI7XG5cbi8qKlxuICogVGhlIGxldmVsIG9mIGRldGFpbCB0byBpbmNsdWRlIGluIHRoZSBub3RpZmljYXRpb25zIGZvciB0aGlzIHJlc291cmNlLlxuICovXG5leHBvcnQgZW51bSBEZXRhaWxUeXBlIHtcbiAgLyoqXG4gICAqIEJBU0lDIHdpbGwgaW5jbHVkZSBvbmx5IHRoZSBjb250ZW50cyBvZiB0aGUgZXZlbnQgYXMgaXQgd291bGQgYXBwZWFyIGluIEFXUyBDbG91ZFdhdGNoXG4gICAqL1xuICBCQVNJQyA9IFwiQkFTSUNcIixcblxuICAvKipcbiAgICogRlVMTCB3aWxsIGluY2x1ZGUgYW55IHN1cHBsZW1lbnRhbCBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSBBV1MgQ29kZVN0YXIgTm90aWZpY2F0aW9ucyBhbmQvb3IgdGhlIHNlcnZpY2UgZm9yIHRoZSByZXNvdXJjZSBmb3Igd2hpY2ggdGhlIG5vdGlmaWNhdGlvbiBpcyBjcmVhdGVkLlxuICAgKi9cbiAgRlVMTCA9IFwiRlVMTFwiLFxufVxuXG4vKipcbiAqIFN0YW5kYXJkIHNldCBvZiBvcHRpb25zIGZvciBgbm90aWZ5T25YeHhgIGNvZGVzdGFyIG5vdGlmaWNhdGlvbiBoYW5kbGVyIG9uIGNvbnN0cnVjdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvblJ1bGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIGZvciB0aGUgbm90aWZpY2F0aW9uIHJ1bGUuXG4gICAqIE5vdGlmaWNhdGlvbiBydWxlIG5hbWVzIG11c3QgYmUgdW5pcXVlIGluIHlvdXIgQVdTIGFjY291bnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZ2VuZXJhdGVkIGZyb20gdGhlIGBpZGBcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvblJ1bGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdHVzIG9mIHRoZSBub3RpZmljYXRpb24gcnVsZS5cbiAgICogSWYgdGhlIGVuYWJsZWQgaXMgc2V0IHRvIERJU0FCTEVELCBub3RpZmljYXRpb25zIGFyZW4ndCBzZW50IGZvciB0aGUgbm90aWZpY2F0aW9uIHJ1bGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbGV2ZWwgb2YgZGV0YWlsIHRvIGluY2x1ZGUgaW4gdGhlIG5vdGlmaWNhdGlvbnMgZm9yIHRoaXMgcmVzb3VyY2UuXG4gICAqIEJBU0lDIHdpbGwgaW5jbHVkZSBvbmx5IHRoZSBjb250ZW50cyBvZiB0aGUgZXZlbnQgYXMgaXQgd291bGQgYXBwZWFyIGluIEFXUyBDbG91ZFdhdGNoLlxuICAgKiBGVUxMIHdpbGwgaW5jbHVkZSBhbnkgc3VwcGxlbWVudGFsIGluZm9ybWF0aW9uIHByb3ZpZGVkIGJ5IEFXUyBDb2RlU3RhciBOb3RpZmljYXRpb25zIGFuZC9vciB0aGUgc2VydmljZSBmb3IgdGhlIHJlc291cmNlIGZvciB3aGljaCB0aGUgbm90aWZpY2F0aW9uIGlzIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IERldGFpbFR5cGUuRlVMTFxuICAgKi9cbiAgcmVhZG9ubHkgZGV0YWlsVHlwZT86IERldGFpbFR5cGU7XG5cbiAgLy8gY3JlYXRlZEJ5IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIFRlcnJhZm9ybSByZXNvdXJjZVxuICAvLyAvKipcbiAgLy8gICogVGhlIG5hbWUgb3IgZW1haWwgYWxpYXMgb2YgdGhlIHBlcnNvbiB3aG8gY3JlYXRlZCB0aGUgbm90aWZpY2F0aW9uIHJ1bGUuXG4gIC8vICAqIElmIG5vdCBzcGVjaWZpZWQsIGl0IG1lYW5zIHRoYXQgdGhlIGNyZWF0b3IncyBhbGlhcyBpcyBub3QgcHJvdmlkZWQuXG4gIC8vICAqXG4gIC8vICAqIEBkZWZhdWx0IC0gTm8gYWxpYXMgcHJvdmlkZWRcbiAgLy8gICovXG4gIC8vIHJlYWRvbmx5IGNyZWF0ZWRCeT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIG5ldyBub3RpZmljYXRpb24gcnVsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvblJ1bGVQcm9wc1xuICBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzLFxuICAgIE5vdGlmaWNhdGlvblJ1bGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBldmVudCB0eXBlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBub3RpZmljYXRpb24gcnVsZS5cbiAgICogRm9yIGEgY29tcGxldGUgbGlzdCBvZiBldmVudCB0eXBlcyBhbmQgSURzLCBzZWUgTm90aWZpY2F0aW9uIGNvbmNlcHRzIGluIHRoZSBEZXZlbG9wZXIgVG9vbHMgQ29uc29sZSBVc2VyIEd1aWRlLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kdGNvbnNvbGUvbGF0ZXN0L3VzZXJndWlkZS9jb25jZXB0cy5odG1sI2NvbmNlcHRzLWFwaVxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSByZXNvdXJjZSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgbm90aWZpY2F0aW9uIHJ1bGUuXG4gICAqIEN1cnJlbnRseSwgU3VwcG9ydGVkIHNvdXJjZXMgaW5jbHVkZSBwaXBlbGluZXMgaW4gQVdTIENvZGVQaXBlbGluZSwgYnVpbGQgcHJvamVjdHMgaW4gQVdTIENvZGVCdWlsZCwgYW5kIHJlcG9zaXRvcmllcyBpbiBBV1MgQ29kZUNvbW1pdCBpbiB0aGlzIEwyIGNvbnN0cnVjdG9yLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1jb2Rlc3Rhcm5vdGlmaWNhdGlvbnMtbm90aWZpY2F0aW9ucnVsZS5odG1sI2Nmbi1jb2Rlc3Rhcm5vdGlmaWNhdGlvbnMtbm90aWZpY2F0aW9ucnVsZS1yZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlOiBJTm90aWZpY2F0aW9uUnVsZVNvdXJjZTtcblxuICAvKipcbiAgICogVGhlIHRhcmdldHMgdG8gcmVnaXN0ZXIgZm9yIHRoZSBub3RpZmljYXRpb24gZGVzdGluYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gdGFyZ2V0cyBhcmUgYWRkZWQgdG8gdGhlIHJ1bGUuIFVzZSBgYWRkVGFyZ2V0KClgIHRvIGFkZCBhIHRhcmdldC5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldHM/OiBJTm90aWZpY2F0aW9uUnVsZVRhcmdldFtdO1xuICAvKipcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81Ljg4LjAvZG9jcy9yZXNvdXJjZXMvY29kZXN0YXJub3RpZmljYXRpb25zX25vdGlmaWNhdGlvbl9ydWxlI3RhZ3MgQ29kZXN0YXJub3RpZmljYXRpb25zTm90aWZpY2F0aW9uUnVsZSN0YWdzfVxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH07XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIG5vdGlmaWNhdGlvbiBydWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU5vdGlmaWNhdGlvblJ1bGUgZXh0ZW5kcyBJQXdzQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIG5vdGlmaWNhdGlvbiBydWxlIChpLmUuIGFybjphd3M6Y29kZXN0YXItbm90aWZpY2F0aW9uczo6Om5vdGlmaWNhdGlvbnJ1bGUvMDEyMzRhYmNkZSlcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uUnVsZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRzIHRhcmdldCB0byBub3RpZmljYXRpb24gcnVsZVxuICAgKlxuICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSBTTlMgdG9waWMgb3IgQVdTIENoYXRib3QgU2xhY2sgdGFyZ2V0XG4gICAqIEByZXR1cm5zIGJvb2xlYW4gLSByZXR1cm4gdHJ1ZSBpZiBpdCBoYWQgYW55IGVmZmVjdFxuICAgKi9cbiAgYWRkVGFyZ2V0KHRhcmdldDogSU5vdGlmaWNhdGlvblJ1bGVUYXJnZXQpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgbmV3IG5vdGlmaWNhdGlvbiBydWxlXG4gKlxuICogQHJlc291cmNlIEFXUzo6Q29kZVN0YXJOb3RpZmljYXRpb25zOjpOb3RpZmljYXRpb25SdWxlXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25SdWxlXG4gIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZVxuICBpbXBsZW1lbnRzIElOb3RpZmljYXRpb25SdWxlXG57XG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3Rpbmcgbm90aWZpY2F0aW9uIHJ1bGUgcHJvdmlkZWQgYW4gQVJOXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNyZWF0aW5nIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIG5hbWVcbiAgICogQHBhcmFtIG5vdGlmaWNhdGlvblJ1bGVBcm4gTm90aWZpY2F0aW9uIHJ1bGUgQVJOIChpLmUuIGFybjphd3M6Y29kZXN0YXItbm90aWZpY2F0aW9uczo6Om5vdGlmaWNhdGlvbnJ1bGUvMDEyMzRhYmNkZSlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbU5vdGlmaWNhdGlvblJ1bGVBcm4oXG4gICAgc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgbm90aWZpY2F0aW9uUnVsZUFybjogc3RyaW5nLFxuICApOiBJTm90aWZpY2F0aW9uUnVsZSB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElOb3RpZmljYXRpb25SdWxlIHtcbiAgICAgIHJlYWRvbmx5IG5vdGlmaWNhdGlvblJ1bGVBcm4gPSBub3RpZmljYXRpb25SdWxlQXJuO1xuICAgICAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgICAgICByZXR1cm4geyBub3RpZmljYXRpb25SdWxlQXJuOiB0aGlzLm5vdGlmaWNhdGlvblJ1bGVBcm4gfTtcbiAgICAgIH1cblxuICAgICAgcHVibGljIGFkZFRhcmdldChfdGFyZ2V0OiBJTm90aWZpY2F0aW9uUnVsZVRhcmdldCk6IGJvb2xlYW4ge1xuICAgICAgICBBbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRXYXJuaW5nKFxuICAgICAgICAgIGBDYW5ub3QgYWRkIHRhcmdldHMgdG8gaW1wb3J0ZWQgTm90aWZpY2F0aW9uUnVsZSAnJHt0aGlzLm5vZGUuaWR9Jy4gRGVmaW5lIHRhcmdldHMgZGlyZWN0bHkgb24gdGhlIHNvdXJjZSBvciBtYW5hZ2UgcGVybWlzc2lvbnMgc2VwYXJhdGVseS5gLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkLCB7XG4gICAgICBlbnZpcm9ubWVudEZyb21Bcm46IG5vdGlmaWNhdGlvblJ1bGVBcm4sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5vdGlmaWNhdGlvblJ1bGVBcm46IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHRhcmdldExpc3Q6IE5vdGlmaWNhdGlvblJ1bGVUYXJnZXRDb25maWdbXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50czogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZTogY29kZXN0YXJub3RpZmljYXRpb25zTm90aWZpY2F0aW9uUnVsZS5Db2Rlc3Rhcm5vdGlmaWNhdGlvbnNOb3RpZmljYXRpb25SdWxlO1xuXG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4geyBub3RpZmljYXRpb25SdWxlQXJuOiB0aGlzLm5vdGlmaWNhdGlvblJ1bGVBcm4gfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBOb3RpZmljYXRpb25SdWxlUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgY29uc3Qgc291cmNlID0gcHJvcHMuc291cmNlLmJpbmRBc05vdGlmaWNhdGlvblJ1bGVTb3VyY2UodGhpcyk7XG5cbiAgICB0aGlzLmFkZEV2ZW50cyhwcm9wcy5ldmVudHMpO1xuXG4gICAgLy8gUHJvY2VzcyBpbml0aWFsIHRhcmdldHMgZnJvbSBwcm9wc1xuICAgIHByb3BzLnRhcmdldHM/LmZvckVhY2goKHRhcmdldCkgPT4ge1xuICAgICAgdGhpcy5hZGRUYXJnZXQodGFyZ2V0KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJ1bGVOYW1lID0gcHJvcHMubm90aWZpY2F0aW9uUnVsZU5hbWVcbiAgICAgID8gcHJvcHMubm90aWZpY2F0aW9uUnVsZU5hbWUuc2xpY2UoLTY0KSAvLyBFbnN1cmUgNjQgY2hhciBsaW1pdFxuICAgICAgOiB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7IG1heExlbmd0aDogNjQgfSk7XG5cbiAgICB0aGlzLnJlc291cmNlID1cbiAgICAgIG5ldyBjb2Rlc3Rhcm5vdGlmaWNhdGlvbnNOb3RpZmljYXRpb25SdWxlLkNvZGVzdGFybm90aWZpY2F0aW9uc05vdGlmaWNhdGlvblJ1bGUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IHJ1bGVOYW1lLFxuICAgICAgICAgIGRldGFpbFR5cGU6IHByb3BzLmRldGFpbFR5cGUgPz8gRGV0YWlsVHlwZS5GVUxMLFxuICAgICAgICAgIGV2ZW50VHlwZUlkczogTGF6eS5saXN0VmFsdWUoe1xuICAgICAgICAgICAgcHJvZHVjZTogKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmV2ZW50cykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcHMuZXZlbnRzO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmV2ZW50cztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgcmVzb3VyY2U6IHNvdXJjZS5zb3VyY2VBcm4sXG4gICAgICAgICAgc3RhdHVzOlxuICAgICAgICAgICAgcHJvcHMuZW5hYmxlZCA9PT0gZmFsc2VcbiAgICAgICAgICAgICAgPyBcIkRJU0FCTEVEXCJcbiAgICAgICAgICAgICAgOiBwcm9wcy5lbmFibGVkID09PSB0cnVlIHx8IHByb3BzLmVuYWJsZWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gXCJFTkFCTEVEXCJcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCwgLy8gTGV0IFRlcnJhZm9ybSBoYW5kbGUgZGVmYXVsdCBpZiB1bmRlZmluZWRcbiAgICAgICAgICAvLyBVc2UgTGF6eSBwcm9kdWNlciB0byBoYW5kbGUgdGhlIHBvdGVudGlhbGx5IGR5bmFtaWMgbGlzdCBvZiB0YXJnZXRzXG4gICAgICAgICAgdGFyZ2V0OiBMYXp5LmFueVZhbHVlKHtcbiAgICAgICAgICAgIHByb2R1Y2U6ICgpID0+XG4gICAgICAgICAgICAgIHRoaXMudGFyZ2V0TGlzdC5tYXAoKHQpID0+XG4gICAgICAgICAgICAgICAgY29kZXN0YXJub3RpZmljYXRpb25zTm90aWZpY2F0aW9uUnVsZS5jb2Rlc3Rhcm5vdGlmaWNhdGlvbnNOb3RpZmljYXRpb25SdWxlVGFyZ2V0VG9UZXJyYWZvcm0oXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGFkZHJlc3M6IHQudGFyZ2V0QWRkcmVzcyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogdC50YXJnZXRUeXBlLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRhZ3M6IHByb3BzLnRhZ3MsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgdGhpcy5ub3RpZmljYXRpb25SdWxlQXJuID0gdGhpcy5yZXNvdXJjZS5hcm47XG4gIH1cblxuICBwdWJsaWMgYWRkVGFyZ2V0KHRhcmdldDogSU5vdGlmaWNhdGlvblJ1bGVUYXJnZXQpOiBib29sZWFuIHtcbiAgICBjb25zdCBib3VuZFRhcmdldCA9IHRhcmdldC5iaW5kQXNOb3RpZmljYXRpb25SdWxlVGFyZ2V0KHRoaXMpO1xuICAgIC8vIENoZWNrIGlmIHRhcmdldCBhbHJlYWR5IGV4aXN0cyB0byBhdm9pZCBkdXBsaWNhdGVzIGlmIHRoaXMgbWV0aG9kIHdlcmUgdG8gdXBkYXRlIHRoZSByZXNvdXJjZVxuICAgIGNvbnN0IGV4aXN0cyA9IHRoaXMudGFyZ2V0TGlzdC5zb21lKFxuICAgICAgKHQpID0+XG4gICAgICAgIHQudGFyZ2V0QWRkcmVzcyA9PT0gYm91bmRUYXJnZXQudGFyZ2V0QWRkcmVzcyAmJlxuICAgICAgICB0LnRhcmdldFR5cGUgPT09IGJvdW5kVGFyZ2V0LnRhcmdldFR5cGUsXG4gICAgKTtcbiAgICBpZiAoIWV4aXN0cykge1xuICAgICAgdGhpcy50YXJnZXRMaXN0LnB1c2goYm91bmRUYXJnZXQpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvKipcbiAgICogQWRkcyBldmVudHMgdG8gbm90aWZpY2F0aW9uIHJ1bGVcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZHRjb25zb2xlL2xhdGVzdC91c2VyZ3VpZGUvY29uY2VwdHMuaHRtbCNldmVudHMtcmVmLXBpcGVsaW5lXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2R0Y29uc29sZS9sYXRlc3QvdXNlcmd1aWRlL2NvbmNlcHRzLmh0bWwjZXZlbnRzLXJlZi1idWlsZHByb2plY3RcbiAgICogQHBhcmFtIGV2ZW50cyBUaGUgbGlzdCBvZiBldmVudCB0eXBlcyBmb3IgQVdTIENvZGVidWlsZCBhbmQgQVdTIENvZGVQaXBlbGluZVxuICAgKi9cbiAgcHJpdmF0ZSBhZGRFdmVudHMoZXZlbnRzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGV2ZW50cy5mb3JFYWNoKChldmVudCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZXZlbnRzLmluY2x1ZGVzKGV2ZW50KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZXZlbnRzLnB1c2goZXZlbnQpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
128
+ NotificationRule[_a] = { fqn: "terraconstructs.aws.notify.NotificationRule", version: "0.2.5" };
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL25vdGlmeS9ub3RpZmljYXRpb24tcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHVKQUF1SjtBQUV2SixzREFBNEU7QUFDNUUsaUNBQWlEO0FBRWpELG9EQUkwQjtBQU8xQjs7R0FFRztBQUNILElBQVksVUFVWDtBQVZELFdBQVksVUFBVTtJQUNwQjs7T0FFRztJQUNILDZCQUFlLENBQUE7SUFFZjs7T0FFRztJQUNILDJCQUFhLENBQUE7QUFDZixDQUFDLEVBVlcsVUFBVSwwQkFBVixVQUFVLFFBVXJCO0FBK0ZEOzs7O0dBSUc7QUFDSCxNQUFhLGdCQUNYLFNBQVEsZ0NBQWdCO0lBR3hCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLHVCQUF1QixDQUNuQyxLQUEyQixFQUMzQixFQUFVLEVBQ1YsbUJBQTJCO1FBRTNCLE1BQU0sTUFBTyxTQUFRLGdDQUFnQjtZQUFyQzs7Z0JBQ1csd0JBQW1CLEdBQUcsbUJBQW1CLENBQUM7WUFXckQsQ0FBQztZQVZDLElBQVcsT0FBTztnQkFDaEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNELENBQUM7WUFFTSxTQUFTLENBQUMsT0FBZ0M7Z0JBQy9DLG1CQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FDN0Isb0RBQW9ELElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSw0RUFBNEUsQ0FDN0ksQ0FBQztnQkFDRixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7U0FDRjtRQUVELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUMzQixrQkFBa0IsRUFBRSxtQkFBbUI7U0FDeEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQVdELElBQVcsT0FBTztRQUNoQixPQUFPLEVBQUUsbUJBQW1CLEVB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QWE7WUFDN0MsQ0FBQyxDQUFDLFVBQVUsS0FBSyxXQUFXLENBQUMsVUFBVSxDQUMxQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbEMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0Q7Ozs7OztPQU1HO0lBQ0ssU0FBUyxDQUFDLE1BQWdCO1FBQ2hDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN2QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2hDLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXpJSCw0Q0EwSUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi9iYzk2ZWUxN2ExOGMxOWI5OGU0YWQwNTJiZWQ3YzI0ZGEyMzcxMDUwL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1jb2Rlc3Rhcm5vdGlmaWNhdGlvbnMvbGliL25vdGlmaWNhdGlvbi1ydWxlLnRzXG5cbmltcG9ydCB7IGNvZGVzdGFybm90aWZpY2F0aW9uc05vdGlmaWNhdGlvblJ1bGUgfSBmcm9tIFwiQGNka3RuL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgQW5ub3RhdGlvbnMsIExhenksIFRva2VuIH0gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBBd3NDb25zdHJ1Y3RCYXNlLFxuICBBd3NDb25zdHJ1Y3RQcm9wcyxcbiAgSUF3c0NvbnN0cnVjdCxcbn0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IElOb3RpZmljYXRpb25SdWxlU291cmNlIH0gZnJvbSBcIi4vbm90aWZpY2F0aW9uLXJ1bGUtc291cmNlXCI7XG5pbXBvcnQge1xuICBJTm90aWZpY2F0aW9uUnVsZVRhcmdldCxcbiAgTm90aWZpY2F0aW9uUnVsZVRhcmdldENvbmZpZyxcbn0gZnJvbSBcIi4vbm90aWZpY2F0aW9uLXJ1bGUtdGFyZ2V0XCI7XG5cbi8qKlxuICogVGhlIGxldmVsIG9mIGRldGFpbCB0byBpbmNsdWRlIGluIHRoZSBub3RpZmljYXRpb25zIGZvciB0aGlzIHJlc291cmNlLlxuICovXG5leHBvcnQgZW51bSBEZXRhaWxUeXBlIHtcbiAgLyoqXG4gICAqIEJBU0lDIHdpbGwgaW5jbHVkZSBvbmx5IHRoZSBjb250ZW50cyBvZiB0aGUgZXZlbnQgYXMgaXQgd291bGQgYXBwZWFyIGluIEFXUyBDbG91ZFdhdGNoXG4gICAqL1xuICBCQVNJQyA9IFwiQkFTSUNcIixcblxuICAvKipcbiAgICogRlVMTCB3aWxsIGluY2x1ZGUgYW55IHN1cHBsZW1lbnRhbCBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSBBV1MgQ29kZVN0YXIgTm90aWZpY2F0aW9ucyBhbmQvb3IgdGhlIHNlcnZpY2UgZm9yIHRoZSByZXNvdXJjZSBmb3Igd2hpY2ggdGhlIG5vdGlmaWNhdGlvbiBpcyBjcmVhdGVkLlxuICAgKi9cbiAgRlVMTCA9IFwiRlVMTFwiLFxufVxuXG4vKipcbiAqIFN0YW5kYXJkIHNldCBvZiBvcHRpb25zIGZvciBgbm90aWZ5T25YeHhgIGNvZGVzdGFyIG5vdGlmaWNhdGlvbiBoYW5kbGVyIG9uIGNvbnN0cnVjdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvblJ1bGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIGZvciB0aGUgbm90aWZpY2F0aW9uIHJ1bGUuXG4gICAqIE5vdGlmaWNhdGlvbiBydWxlIG5hbWVzIG11c3QgYmUgdW5pcXVlIGluIHlvdXIgQVdTIGFjY291bnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZ2VuZXJhdGVkIGZyb20gdGhlIGBpZGBcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvblJ1bGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdHVzIG9mIHRoZSBub3RpZmljYXRpb24gcnVsZS5cbiAgICogSWYgdGhlIGVuYWJsZWQgaXMgc2V0IHRvIERJU0FCTEVELCBub3RpZmljYXRpb25zIGFyZW4ndCBzZW50IGZvciB0aGUgbm90aWZpY2F0aW9uIHJ1bGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbGV2ZWwgb2YgZGV0YWlsIHRvIGluY2x1ZGUgaW4gdGhlIG5vdGlmaWNhdGlvbnMgZm9yIHRoaXMgcmVzb3VyY2UuXG4gICAqIEJBU0lDIHdpbGwgaW5jbHVkZSBvbmx5IHRoZSBjb250ZW50cyBvZiB0aGUgZXZlbnQgYXMgaXQgd291bGQgYXBwZWFyIGluIEFXUyBDbG91ZFdhdGNoLlxuICAgKiBGVUxMIHdpbGwgaW5jbHVkZSBhbnkgc3VwcGxlbWVudGFsIGluZm9ybWF0aW9uIHByb3ZpZGVkIGJ5IEFXUyBDb2RlU3RhciBOb3RpZmljYXRpb25zIGFuZC9vciB0aGUgc2VydmljZSBmb3IgdGhlIHJlc291cmNlIGZvciB3aGljaCB0aGUgbm90aWZpY2F0aW9uIGlzIGNyZWF0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IERldGFpbFR5cGUuRlVMTFxuICAgKi9cbiAgcmVhZG9ubHkgZGV0YWlsVHlwZT86IERldGFpbFR5cGU7XG5cbiAgLy8gY3JlYXRlZEJ5IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIFRlcnJhZm9ybSByZXNvdXJjZVxuICAvLyAvKipcbiAgLy8gICogVGhlIG5hbWUgb3IgZW1haWwgYWxpYXMgb2YgdGhlIHBlcnNvbiB3aG8gY3JlYXRlZCB0aGUgbm90aWZpY2F0aW9uIHJ1bGUuXG4gIC8vICAqIElmIG5vdCBzcGVjaWZpZWQsIGl0IG1lYW5zIHRoYXQgdGhlIGNyZWF0b3IncyBhbGlhcyBpcyBub3QgcHJvdmlkZWQuXG4gIC8vICAqXG4gIC8vICAqIEBkZWZhdWx0IC0gTm8gYWxpYXMgcHJvdmlkZWRcbiAgLy8gICovXG4gIC8vIHJlYWRvbmx5IGNyZWF0ZWRCeT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIG5ldyBub3RpZmljYXRpb24gcnVsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvblJ1bGVQcm9wc1xuICBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzLFxuICAgIE5vdGlmaWNhdGlvblJ1bGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBldmVudCB0eXBlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBub3RpZmljYXRpb24gcnVsZS5cbiAgICogRm9yIGEgY29tcGxldGUgbGlzdCBvZiBldmVudCB0eXBlcyBhbmQgSURzLCBzZWUgTm90aWZpY2F0aW9uIGNvbmNlcHRzIGluIHRoZSBEZXZlbG9wZXIgVG9vbHMgQ29uc29sZSBVc2VyIEd1aWRlLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9kdGNvbnNvbGUvbGF0ZXN0L3VzZXJndWlkZS9jb25jZXB0cy5odG1sI2NvbmNlcHRzLWFwaVxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSByZXNvdXJjZSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgbm90aWZpY2F0aW9uIHJ1bGUuXG4gICAqIEN1cnJlbnRseSwgU3VwcG9ydGVkIHNvdXJjZXMgaW5jbHVkZSBwaXBlbGluZXMgaW4gQVdTIENvZGVQaXBlbGluZSwgYnVpbGQgcHJvamVjdHMgaW4gQVdTIENvZGVCdWlsZCwgYW5kIHJlcG9zaXRvcmllcyBpbiBBV1MgQ29kZUNvbW1pdCBpbiB0aGlzIEwyIGNvbnN0cnVjdG9yLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1jb2Rlc3Rhcm5vdGlmaWNhdGlvbnMtbm90aWZpY2F0aW9ucnVsZS5odG1sI2Nmbi1jb2Rlc3Rhcm5vdGlmaWNhdGlvbnMtbm90aWZpY2F0aW9ucnVsZS1yZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlOiBJTm90aWZpY2F0aW9uUnVsZVNvdXJjZTtcblxuICAvKipcbiAgICogVGhlIHRhcmdldHMgdG8gcmVnaXN0ZXIgZm9yIHRoZSBub3RpZmljYXRpb24gZGVzdGluYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gdGFyZ2V0cyBhcmUgYWRkZWQgdG8gdGhlIHJ1bGUuIFVzZSBgYWRkVGFyZ2V0KClgIHRvIGFkZCBhIHRhcmdldC5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldHM/OiBJTm90aWZpY2F0aW9uUnVsZVRhcmdldFtdO1xuICAvKipcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81Ljg4LjAvZG9jcy9yZXNvdXJjZXMvY29kZXN0YXJub3RpZmljYXRpb25zX25vdGlmaWNhdGlvbl9ydWxlI3RhZ3MgQ29kZXN0YXJub3RpZmljYXRpb25zTm90aWZpY2F0aW9uUnVsZSN0YWdzfVxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH07XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIG5vdGlmaWNhdGlvbiBydWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU5vdGlmaWNhdGlvblJ1bGUgZXh0ZW5kcyBJQXdzQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIG5vdGlmaWNhdGlvbiBydWxlIChpLmUuIGFybjphd3M6Y29kZXN0YXItbm90aWZpY2F0aW9uczo6Om5vdGlmaWNhdGlvbnJ1bGUvMDEyMzRhYmNkZSlcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9uUnVsZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRzIHRhcmdldCB0byBub3RpZmljYXRpb24gcnVsZVxuICAgKlxuICAgKiBAcGFyYW0gdGFyZ2V0IFRoZSBTTlMgdG9waWMgb3IgQVdTIENoYXRib3QgU2xhY2sgdGFyZ2V0XG4gICAqIEByZXR1cm5zIGJvb2xlYW4gLSByZXR1cm4gdHJ1ZSBpZiBpdCBoYWQgYW55IGVmZmVjdFxuICAgKi9cbiAgYWRkVGFyZ2V0KHRhcmdldDogSU5vdGlmaWNhdGlvblJ1bGVUYXJnZXQpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEEgbmV3IG5vdGlmaWNhdGlvbiBydWxlXG4gKlxuICogQHJlc291cmNlIEFXUzo6Q29kZVN0YXJOb3RpZmljYXRpb25zOjpOb3RpZmljYXRpb25SdWxlXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25SdWxlXG4gIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZVxuICBpbXBsZW1lbnRzIElOb3RpZmljYXRpb25SdWxlXG57XG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3Rpbmcgbm90aWZpY2F0aW9uIHJ1bGUgcHJvdmlkZWQgYW4gQVJOXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNyZWF0aW5nIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIG5hbWVcbiAgICogQHBhcmFtIG5vdGlmaWNhdGlvblJ1bGVBcm4gTm90aWZpY2F0aW9uIHJ1bGUgQVJOIChpLmUuIGFybjphd3M6Y29kZXN0YXItbm90aWZpY2F0aW9uczo6Om5vdGlmaWNhdGlvbnJ1bGUvMDEyMzRhYmNkZSlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbU5vdGlmaWNhdGlvblJ1bGVBcm4oXG4gICAgc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgbm90aWZpY2F0aW9uUnVsZUFybjogc3RyaW5nLFxuICApOiBJTm90aWZpY2F0aW9uUnVsZSB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElOb3RpZmljYXRpb25SdWxlIHtcbiAgICAgIHJlYWRvbmx5IG5vdGlmaWNhdGlvblJ1bGVBcm4gPSBub3RpZmljYXRpb25SdWxlQXJuO1xuICAgICAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgICAgICByZXR1cm4geyBub3RpZmljYXRpb25SdWxlQXJuOiB0aGlzLm5vdGlmaWNhdGlvblJ1bGVBcm4gfTtcbiAgICAgIH1cblxuICAgICAgcHVibGljIGFkZFRhcmdldChfdGFyZ2V0OiBJTm90aWZpY2F0aW9uUnVsZVRhcmdldCk6IGJvb2xlYW4ge1xuICAgICAgICBBbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRXYXJuaW5nKFxuICAgICAgICAgIGBDYW5ub3QgYWRkIHRhcmdldHMgdG8gaW1wb3J0ZWQgTm90aWZpY2F0aW9uUnVsZSAnJHt0aGlzLm5vZGUuaWR9Jy4gRGVmaW5lIHRhcmdldHMgZGlyZWN0bHkgb24gdGhlIHNvdXJjZSBvciBtYW5hZ2UgcGVybWlzc2lvbnMgc2VwYXJhdGVseS5gLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkLCB7XG4gICAgICBlbnZpcm9ubWVudEZyb21Bcm46IG5vdGlmaWNhdGlvblJ1bGVBcm4sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5vdGlmaWNhdGlvblJ1bGVBcm46IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHRhcmdldExpc3Q6IE5vdGlmaWNhdGlvblJ1bGVUYXJnZXRDb25maWdbXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50czogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZTogY29kZXN0YXJub3RpZmljYXRpb25zTm90aWZpY2F0aW9uUnVsZS5Db2Rlc3Rhcm5vdGlmaWNhdGlvbnNOb3RpZmljYXRpb25SdWxlO1xuXG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4geyBub3RpZmljYXRpb25SdWxlQXJuOiB0aGlzLm5vdGlmaWNhdGlvblJ1bGVBcm4gfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBOb3RpZmljYXRpb25SdWxlUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgY29uc3Qgc291cmNlID0gcHJvcHMuc291cmNlLmJpbmRBc05vdGlmaWNhdGlvblJ1bGVTb3VyY2UodGhpcyk7XG5cbiAgICB0aGlzLmFkZEV2ZW50cyhwcm9wcy5ldmVudHMpO1xuXG4gICAgLy8gUHJvY2VzcyBpbml0aWFsIHRhcmdldHMgZnJvbSBwcm9wc1xuICAgIHByb3BzLnRhcmdldHM/LmZvckVhY2goKHRhcmdldCkgPT4ge1xuICAgICAgdGhpcy5hZGRUYXJnZXQodGFyZ2V0KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJ1bGVOYW1lID0gcHJvcHMubm90aWZpY2F0aW9uUnVsZU5hbWVcbiAgICAgID8gcHJvcHMubm90aWZpY2F0aW9uUnVsZU5hbWUuc2xpY2UoLTY0KSAvLyBFbnN1cmUgNjQgY2hhciBsaW1pdFxuICAgICAgOiB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7IG1heExlbmd0aDogNjQgfSk7XG5cbiAgICB0aGlzLnJlc291cmNlID1cbiAgICAgIG5ldyBjb2Rlc3Rhcm5vdGlmaWNhdGlvbnNOb3RpZmljYXRpb25SdWxlLkNvZGVzdGFybm90aWZpY2F0aW9uc05vdGlmaWNhdGlvblJ1bGUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IHJ1bGVOYW1lLFxuICAgICAgICAgIGRldGFpbFR5cGU6IHByb3BzLmRldGFpbFR5cGUgPz8gRGV0YWlsVHlwZS5GVUxMLFxuICAgICAgICAgIGV2ZW50VHlwZUlkczogTGF6eS5saXN0VmFsdWUoe1xuICAgICAgICAgICAgcHJvZHVjZTogKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmV2ZW50cykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcHMuZXZlbnRzO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmV2ZW50cztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgcmVzb3VyY2U6IHNvdXJjZS5zb3VyY2VBcm4sXG4gICAgICAgICAgc3RhdHVzOlxuICAgICAgICAgICAgcHJvcHMuZW5hYmxlZCA9PT0gZmFsc2VcbiAgICAgICAgICAgICAgPyBcIkRJU0FCTEVEXCJcbiAgICAgICAgICAgICAgOiBwcm9wcy5lbmFibGVkID09PSB0cnVlIHx8IHByb3BzLmVuYWJsZWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gXCJFTkFCTEVEXCJcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCwgLy8gTGV0IFRlcnJhZm9ybSBoYW5kbGUgZGVmYXVsdCBpZiB1bmRlZmluZWRcbiAgICAgICAgICAvLyBVc2UgTGF6eSBwcm9kdWNlciB0byBoYW5kbGUgdGhlIHBvdGVudGlhbGx5IGR5bmFtaWMgbGlzdCBvZiB0YXJnZXRzXG4gICAgICAgICAgdGFyZ2V0OiBMYXp5LmFueVZhbHVlKHtcbiAgICAgICAgICAgIHByb2R1Y2U6ICgpID0+XG4gICAgICAgICAgICAgIHRoaXMudGFyZ2V0TGlzdC5tYXAoKHQpID0+XG4gICAgICAgICAgICAgICAgY29kZXN0YXJub3RpZmljYXRpb25zTm90aWZpY2F0aW9uUnVsZS5jb2Rlc3Rhcm5vdGlmaWNhdGlvbnNOb3RpZmljYXRpb25SdWxlVGFyZ2V0VG9UZXJyYWZvcm0oXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGFkZHJlc3M6IHQudGFyZ2V0QWRkcmVzcyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogdC50YXJnZXRUeXBlLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRhZ3M6IHByb3BzLnRhZ3MsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgdGhpcy5ub3RpZmljYXRpb25SdWxlQXJuID0gdGhpcy5yZXNvdXJjZS5hcm47XG4gIH1cblxuICBwdWJsaWMgYWRkVGFyZ2V0KHRhcmdldDogSU5vdGlmaWNhdGlvblJ1bGVUYXJnZXQpOiBib29sZWFuIHtcbiAgICBjb25zdCBib3VuZFRhcmdldCA9IHRhcmdldC5iaW5kQXNOb3RpZmljYXRpb25SdWxlVGFyZ2V0KHRoaXMpO1xuICAgIC8vIENoZWNrIGlmIHRhcmdldCBhbHJlYWR5IGV4aXN0cyB0byBhdm9pZCBkdXBsaWNhdGVzIGlmIHRoaXMgbWV0aG9kIHdlcmUgdG8gdXBkYXRlIHRoZSByZXNvdXJjZVxuICAgIGNvbnN0IGV4aXN0cyA9IHRoaXMudGFyZ2V0TGlzdC5zb21lKFxuICAgICAgKHQpID0+XG4gICAgICAgIHQudGFyZ2V0QWRkcmVzcyA9PT0gYm91bmRUYXJnZXQudGFyZ2V0QWRkcmVzcyAmJlxuICAgICAgICB0LnRhcmdldFR5cGUgPT09IGJvdW5kVGFyZ2V0LnRhcmdldFR5cGUsXG4gICAgKTtcbiAgICBpZiAoIWV4aXN0cykge1xuICAgICAgdGhpcy50YXJnZXRMaXN0LnB1c2goYm91bmRUYXJnZXQpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvKipcbiAgICogQWRkcyBldmVudHMgdG8gbm90aWZpY2F0aW9uIHJ1bGVcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZHRjb25zb2xlL2xhdGVzdC91c2VyZ3VpZGUvY29uY2VwdHMuaHRtbCNldmVudHMtcmVmLXBpcGVsaW5lXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2R0Y29uc29sZS9sYXRlc3QvdXNlcmd1aWRlL2NvbmNlcHRzLmh0bWwjZXZlbnRzLXJlZi1idWlsZHByb2plY3RcbiAgICogQHBhcmFtIGV2ZW50cyBUaGUgbGlzdCBvZiBldmVudCB0eXBlcyBmb3IgQVdTIENvZGVidWlsZCBhbmQgQVdTIENvZGVQaXBlbGluZVxuICAgKi9cbiAgcHJpdmF0ZSBhZGRFdmVudHMoZXZlbnRzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGV2ZW50cy5mb3JFYWNoKChldmVudCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZXZlbnRzLmluY2x1ZGVzKGV2ZW50KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZXZlbnRzLnB1c2goZXZlbnQpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.TopicPolicy = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  // https://github.com/aws/aws-cdk/blob/6b9e47a1529319561bc1040739fe02bac15895bf/packages/aws-cdk-lib/aws-sns/lib/policy.ts
7
- const provider_aws_1 = require("@cdktf/provider-aws");
7
+ const provider_aws_1 = require("@cdktn/provider-aws");
8
8
  const aws_construct_1 = require("../aws-construct");
9
9
  const iam_1 = require("../iam");
10
10
  /**
@@ -79,5 +79,5 @@ class TopicPolicy extends aws_construct_1.AwsConstructBase {
79
79
  }
80
80
  exports.TopicPolicy = TopicPolicy;
81
81
  _a = JSII_RTTI_SYMBOL_1;
82
- TopicPolicy[_a] = { fqn: "terraconstructs.aws.notify.TopicPolicy", version: "0.2.4" };
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9ub3RpZnkvcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMEhBQTBIO0FBRTFILHNEQUFxRDtBQUdyRCxvREFBdUU7QUFDdkUsZ0NBQWdGO0FBMkJoRjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFhLFdBQVksU0FBUSxnQ0FBZ0I7SUFNL0Msa0VBQWtFO0lBQ2xFLElBQVcsT0FBTztRQUNoQixPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTtTQUMvQixDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBdUI7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLFFBQVE7WUFDWCxLQUFLLENBQUMsY0FBYztnQkFDcEIsSUFBSSxvQkFBYyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtvQkFDekMsNERBQTREO29CQUM1RCwyRUFBMkU7b0JBQzNFLCtDQUErQztvQkFDL0Msa0ZBQWtGO29CQUNsRixVQUFVLEVBQUUsSUFBSTtpQkFDakIsQ0FBQyxDQUFDO1FBRUwsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsc0VBQXNFO1lBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUN6QixJQUFJLENBQUMsd0JBQXdCLENBQzNCLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQzVDLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFFRCwyRUFBMkU7UUFDM0UsNEdBQTRHO1FBQzVHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3BDLElBQUksNkJBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksS0FBSyxFQUFFLEVBQUU7Z0JBQzNELEdBQUcsRUFBRSxLQUFLLENBQUMsUUFBUTtnQkFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTthQUMzQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sd0JBQXdCLENBQUMsU0FBbUI7UUFDcEQsT0FBTyxJQUFJLHFCQUFlLENBQUM7WUFDekIsZ0VBQWdFO1lBQ2hFLEdBQUcsRUFBRSw0QkFBNEI7WUFDakMsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO1lBQ3hCLE1BQU0sRUFBRSxZQUFNLENBQUMsSUFBSTtZQUNuQixTQUFTLEVBQUUsU0FBUztZQUNwQixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsSUFBSSxFQUFFLE1BQU07b0JBQ1osUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUNsQjthQUNGO1lBQ0QsVUFBVSxFQUFFLENBQUMsSUFBSSxtQkFBYSxFQUFFLENBQUM7U0FDbEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFsRUgsa0NBbUVDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvNmI5ZTQ3YTE1MjkzMTk1NjFiYzEwNDA3MzlmZTAyYmFjMTU4OTViZi9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3Mtc25zL2xpYi9wb2xpY3kudHNcblxuaW1wb3J0IHsgc25zVG9waWNQb2xpY3kgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IElUb3BpYyB9IGZyb20gXCIuL3RvcGljLWJhc2VcIjtcbmltcG9ydCB7IEF3c0NvbnN0cnVjdEJhc2UsIEF3c0NvbnN0cnVjdFByb3BzIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEVmZmVjdCwgUG9saWN5RG9jdW1lbnQsIFBvbGljeVN0YXRlbWVudCwgU3RhclByaW5jaXBhbCB9IGZyb20gXCIuLi9pYW1cIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRvIGFzc29jaWF0ZSBTTlMgdG9waWNzIHdpdGggYSBwb2xpY3lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb3BpY1BvbGljeVByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIHNldCBvZiB0b3BpY3MgdGhpcyBwb2xpY3kgYXBwbGllcyB0by5cbiAgICovXG4gIHJlYWRvbmx5IHRvcGljczogSVRvcGljW107XG5cbiAgLyoqXG4gICAqIElBTSBwb2xpY3kgZG9jdW1lbnQgdG8gYXBwbHkgdG8gdG9waWMocykuXG4gICAqIEBkZWZhdWx0IGVtcHR5IHBvbGljeSBkb2N1bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5RG9jdW1lbnQ/OiBQb2xpY3lEb2N1bWVudDtcblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byBlbmZvcmNlIGVuY3J5cHRpb24gb2YgZGF0YSBpbiB0cmFuc2l0IHdoZW4gcHVibGlzaGluZyB0byB0aGUgdG9waWMuXG4gICAqXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nucy9sYXRlc3QvZGcvc25zLXNlY3VyaXR5LWJlc3QtcHJhY3RpY2VzLmh0bWwjZW5mb3JjZS1lbmNyeXB0aW9uLWRhdGEtaW4tdHJhbnNpdC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuZm9yY2VTU0w/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBwb2xpY3kgZm9yIGFuIFNOUyBUb3BpY1xuICpcbiAqIFBvbGljaWVzIGRlZmluZSB0aGUgb3BlcmF0aW9ucyB0aGF0IGFyZSBhbGxvd2VkIG9uIHRoaXMgcmVzb3VyY2UuXG4gKlxuICogWW91IGFsbW9zdCBuZXZlciBuZWVkIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdCBkaXJlY3RseS5cbiAqXG4gKiBBbGwgQVdTIHJlc291cmNlcyB0aGF0IHN1cHBvcnQgcmVzb3VyY2UgcG9saWNpZXMgaGF2ZSBhIG1ldGhvZCBjYWxsZWRcbiAqIGBhZGRUb1Jlc291cmNlUG9saWN5KClgLCB3aGljaCB3aWxsIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgbmV3IHJlc291cmNlXG4gKiBwb2xpY3kgaWYgb25lIGRvZXNuJ3QgZXhpc3QgeWV0LCBvdGhlcndpc2UgaXQgd2lsbCBhZGQgdG8gdGhlIGV4aXN0aW5nXG4gKiBwb2xpY3kuXG4gKlxuICogUHJlZmVyIHRvIHVzZSBgYWRkVG9SZXNvdXJjZVBvbGljeSgpYCBpbnN0ZWFkLlxuICpcbiAqIEByZXNvdXJjZSBhd3Nfc25zX3RvcGljX3BvbGljeVxuICovXG5leHBvcnQgY2xhc3MgVG9waWNQb2xpY3kgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIHtcbiAgLyoqXG4gICAqIFRoZSBJQU0gcG9saWN5IGRvY3VtZW50IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBvbGljeS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudDogUG9saWN5RG9jdW1lbnQ7XG5cbiAgLy8gT3V0cHV0cyBhcmUgbWluaW1hbCBhcyB0aGlzIGNvbnN0cnVjdCBtYW5hZ2VzIG11bHRpcGxlIHBvbGljaWVzXG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4ge1xuICAgICAgcG9saWN5SnNvbjogdGhpcy5kb2N1bWVudC5qc29uLFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVG9waWNQb2xpY3lQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgdGhpcy5kb2N1bWVudCA9XG4gICAgICBwcm9wcy5wb2xpY3lEb2N1bWVudCA/P1xuICAgICAgbmV3IFBvbGljeURvY3VtZW50KHRoaXMsIFwiUG9saWN5RG9jdW1lbnRcIiwge1xuICAgICAgICAvLyBzdGF0ZW1lbnRzIG11c3QgYmUgdW5pcXVlLCBzbyB3ZSB1c2UgdGhlIHN0YXRlbWVudCBpbmRleC5cbiAgICAgICAgLy8gcG90ZW50aWFsbHkgU0lEcyBjYW4gY2hhbmdlIGFzIGEgcmVzdWx0IG9mIG9yZGVyIGNoYW5nZSwgYnV0IHRoaXMgc2hvdWxkXG4gICAgICAgIC8vIG5vdCBoYXZlIGFuIGltcGFjdCBvbiB0aGUgcG9saWN5IGV2YWx1YXRpb24uXG4gICAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zbnMvbGF0ZXN0L2RnL0FjY2Vzc1BvbGljeUxhbmd1YWdlX1NwZWNpYWxJbmZvLmh0bWxcbiAgICAgICAgYXNzaWduU2lkczogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLmVuZm9yY2VTU0wpIHtcbiAgICAgIC8vIHByZXNlcnZpbmcgQ0ZOIGJlaGF2aW9yIGJ5IHVzaW5nIGEgc2luZ2xlIHBvbGljeSBkb2MgZm9yIGFsbCB0b3BpY3NcbiAgICAgIHRoaXMuZG9jdW1lbnQuYWRkU3RhdGVtZW50cyhcbiAgICAgICAgdGhpcy5jcmVhdGVTU0xQb2xpY3lTdGF0ZW1lbnQoXG4gICAgICAgICAgcHJvcHMudG9waWNzLm1hcCgodG9waWMpID0+IHRvcGljLnRvcGljQXJuKSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gVEYgUHJvdmlkZXIgQVdTIGVmZmVjdGl2ZWx5IHNldHMgdGhlIFBvbGljeSBhdHRyaWJ1dGUgb24gZXZlcnkgdG9waWMgLi4uXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItYXdzL2Jsb2IvdjUuOTcuMC9pbnRlcm5hbC9zZXJ2aWNlL3Nucy90b3BpY19wb2xpY3kuZ28jTDczXG4gICAgcHJvcHMudG9waWNzLmZvckVhY2goKHRvcGljLCBpbmRleCkgPT4ge1xuICAgICAgbmV3IHNuc1RvcGljUG9saWN5LlNuc1RvcGljUG9saWN5KHRoaXMsIGBSZXNvdXJjZS0ke2luZGV4fWAsIHtcbiAgICAgICAgYXJuOiB0b3BpYy50b3BpY0FybixcbiAgICAgICAgcG9saWN5OiB0aGlzLmRvY3VtZW50Lmpzb24sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc3RhdGVtZW50IHRvIGVuZm9yY2UgZW5jcnlwdGlvbiBvZiBkYXRhIGluIHRyYW5zaXQgd2hlbiBwdWJsaXNoaW5nIHRvIHRoZSB0b3BpYy5cbiAgICpcbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc25zL2xhdGVzdC9kZy9zbnMtc2VjdXJpdHktYmVzdC1wcmFjdGljZXMuaHRtbCNlbmZvcmNlLWVuY3J5cHRpb24tZGF0YS1pbi10cmFuc2l0LlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVNTTFBvbGljeVN0YXRlbWVudCh0b3BpY0FybnM6IHN0cmluZ1tdKTogUG9saWN5U3RhdGVtZW50IHtcbiAgICByZXR1cm4gbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAvLyBOT1RFOiBTSUQgbmVlZHMgdG8gYmUgdW5pcXVlIHdpdGhpbiB0aGUgcG9saWN5IGZvciBlYWNoIHRvcGljXG4gICAgICBzaWQ6IFwiQWxsb3dQdWJsaXNoVGhyb3VnaFNTTE9ubHlcIixcbiAgICAgIGFjdGlvbnM6IFtcInNuczpQdWJsaXNoXCJdLFxuICAgICAgZWZmZWN0OiBFZmZlY3QuREVOWSxcbiAgICAgIHJlc291cmNlczogdG9waWNBcm5zLFxuICAgICAgY29uZGl0aW9uOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0OiBcIkJvb2xcIixcbiAgICAgICAgICB2YXJpYWJsZTogXCJhd3M6U2VjdXJlVHJhbnNwb3J0XCIsXG4gICAgICAgICAgdmFsdWVzOiBbXCJmYWxzZVwiXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwcmluY2lwYWxzOiBbbmV3IFN0YXJQcmluY2lwYWwoKV0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
82
+ TopicPolicy[_a] = { fqn: "terraconstructs.aws.notify.TopicPolicy", version: "0.2.5" };
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9ub3RpZnkvcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMEhBQTBIO0FBRTFILHNEQUFxRDtBQUdyRCxvREFBdUU7QUFDdkUsZ0NBQWdGO0FBMkJoRjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFhLFdBQVksU0FBUSxnQ0FBZ0I7SUFNL0Msa0VBQWtFO0lBQ2xFLElBQVcsT0FBTztRQUNoQixPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTtTQUMvQixDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBdUI7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLFFBQVE7WUFDWCxLQUFLLENBQUMsY0FBYztnQkFDcEIsSUFBSSxvQkFBYyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtvQkFDekMsNERBQTREO29CQUM1RCwyRUFBMkU7b0JBQzNFLCtDQUErQztvQkFDL0Msa0ZBQWtGO29CQUNsRixVQUFVLEVBQUUsSUFBSTtpQkFDakIsQ0FBQyxDQUFDO1FBRUwsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsc0VBQXNFO1lBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUN6QixJQUFJLENBQUMsd0JBQXdCLENBQzNCLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQzVDLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFFRCwyRUFBMkU7UUFDM0UsNEdBQTRHO1FBQzVHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3BDLElBQUksNkJBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksS0FBSyxFQUFFLEVBQUU7Z0JBQzNELEdBQUcsRUFBRSxLQUFLLENBQUMsUUFBUTtnQkFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTthQUMzQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sd0JBQXdCLENBQUMsU0FBbUI7UUFDcEQsT0FBTyxJQUFJLHFCQUFlLENBQUM7WUFDekIsZ0VBQWdFO1lBQ2hFLEdBQUcsRUFBRSw0QkFBNEI7WUFDakMsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO1lBQ3hCLE1BQU0sRUFBRSxZQUFNLENBQUMsSUFBSTtZQUNuQixTQUFTLEVBQUUsU0FBUztZQUNwQixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsSUFBSSxFQUFFLE1BQU07b0JBQ1osUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUNsQjthQUNGO1lBQ0QsVUFBVSxFQUFFLENBQUMsSUFBSSxtQkFBYSxFQUFFLENBQUM7U0FDbEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFsRUgsa0NBbUVDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvNmI5ZTQ3YTE1MjkzMTk1NjFiYzEwNDA3MzlmZTAyYmFjMTU4OTViZi9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3Mtc25zL2xpYi9wb2xpY3kudHNcblxuaW1wb3J0IHsgc25zVG9waWNQb2xpY3kgfSBmcm9tIFwiQGNka3RuL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IElUb3BpYyB9IGZyb20gXCIuL3RvcGljLWJhc2VcIjtcbmltcG9ydCB7IEF3c0NvbnN0cnVjdEJhc2UsIEF3c0NvbnN0cnVjdFByb3BzIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEVmZmVjdCwgUG9saWN5RG9jdW1lbnQsIFBvbGljeVN0YXRlbWVudCwgU3RhclByaW5jaXBhbCB9IGZyb20gXCIuLi9pYW1cIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRvIGFzc29jaWF0ZSBTTlMgdG9waWNzIHdpdGggYSBwb2xpY3lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb3BpY1BvbGljeVByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIHNldCBvZiB0b3BpY3MgdGhpcyBwb2xpY3kgYXBwbGllcyB0by5cbiAgICovXG4gIHJlYWRvbmx5IHRvcGljczogSVRvcGljW107XG5cbiAgLyoqXG4gICAqIElBTSBwb2xpY3kgZG9jdW1lbnQgdG8gYXBwbHkgdG8gdG9waWMocykuXG4gICAqIEBkZWZhdWx0IGVtcHR5IHBvbGljeSBkb2N1bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5RG9jdW1lbnQ/OiBQb2xpY3lEb2N1bWVudDtcblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byBlbmZvcmNlIGVuY3J5cHRpb24gb2YgZGF0YSBpbiB0cmFuc2l0IHdoZW4gcHVibGlzaGluZyB0byB0aGUgdG9waWMuXG4gICAqXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nucy9sYXRlc3QvZGcvc25zLXNlY3VyaXR5LWJlc3QtcHJhY3RpY2VzLmh0bWwjZW5mb3JjZS1lbmNyeXB0aW9uLWRhdGEtaW4tdHJhbnNpdC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuZm9yY2VTU0w/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBwb2xpY3kgZm9yIGFuIFNOUyBUb3BpY1xuICpcbiAqIFBvbGljaWVzIGRlZmluZSB0aGUgb3BlcmF0aW9ucyB0aGF0IGFyZSBhbGxvd2VkIG9uIHRoaXMgcmVzb3VyY2UuXG4gKlxuICogWW91IGFsbW9zdCBuZXZlciBuZWVkIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdCBkaXJlY3RseS5cbiAqXG4gKiBBbGwgQVdTIHJlc291cmNlcyB0aGF0IHN1cHBvcnQgcmVzb3VyY2UgcG9saWNpZXMgaGF2ZSBhIG1ldGhvZCBjYWxsZWRcbiAqIGBhZGRUb1Jlc291cmNlUG9saWN5KClgLCB3aGljaCB3aWxsIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgbmV3IHJlc291cmNlXG4gKiBwb2xpY3kgaWYgb25lIGRvZXNuJ3QgZXhpc3QgeWV0LCBvdGhlcndpc2UgaXQgd2lsbCBhZGQgdG8gdGhlIGV4aXN0aW5nXG4gKiBwb2xpY3kuXG4gKlxuICogUHJlZmVyIHRvIHVzZSBgYWRkVG9SZXNvdXJjZVBvbGljeSgpYCBpbnN0ZWFkLlxuICpcbiAqIEByZXNvdXJjZSBhd3Nfc25zX3RvcGljX3BvbGljeVxuICovXG5leHBvcnQgY2xhc3MgVG9waWNQb2xpY3kgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIHtcbiAgLyoqXG4gICAqIFRoZSBJQU0gcG9saWN5IGRvY3VtZW50IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBvbGljeS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudDogUG9saWN5RG9jdW1lbnQ7XG5cbiAgLy8gT3V0cHV0cyBhcmUgbWluaW1hbCBhcyB0aGlzIGNvbnN0cnVjdCBtYW5hZ2VzIG11bHRpcGxlIHBvbGljaWVzXG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4ge1xuICAgICAgcG9saWN5SnNvbjogdGhpcy5kb2N1bWVudC5qc29uLFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVG9waWNQb2xpY3lQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgdGhpcy5kb2N1bWVudCA9XG4gICAgICBwcm9wcy5wb2xpY3lEb2N1bWVudCA/P1xuICAgICAgbmV3IFBvbGljeURvY3VtZW50KHRoaXMsIFwiUG9saWN5RG9jdW1lbnRcIiwge1xuICAgICAgICAvLyBzdGF0ZW1lbnRzIG11c3QgYmUgdW5pcXVlLCBzbyB3ZSB1c2UgdGhlIHN0YXRlbWVudCBpbmRleC5cbiAgICAgICAgLy8gcG90ZW50aWFsbHkgU0lEcyBjYW4gY2hhbmdlIGFzIGEgcmVzdWx0IG9mIG9yZGVyIGNoYW5nZSwgYnV0IHRoaXMgc2hvdWxkXG4gICAgICAgIC8vIG5vdCBoYXZlIGFuIGltcGFjdCBvbiB0aGUgcG9saWN5IGV2YWx1YXRpb24uXG4gICAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zbnMvbGF0ZXN0L2RnL0FjY2Vzc1BvbGljeUxhbmd1YWdlX1NwZWNpYWxJbmZvLmh0bWxcbiAgICAgICAgYXNzaWduU2lkczogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgaWYgKHByb3BzLmVuZm9yY2VTU0wpIHtcbiAgICAgIC8vIHByZXNlcnZpbmcgQ0ZOIGJlaGF2aW9yIGJ5IHVzaW5nIGEgc2luZ2xlIHBvbGljeSBkb2MgZm9yIGFsbCB0b3BpY3NcbiAgICAgIHRoaXMuZG9jdW1lbnQuYWRkU3RhdGVtZW50cyhcbiAgICAgICAgdGhpcy5jcmVhdGVTU0xQb2xpY3lTdGF0ZW1lbnQoXG4gICAgICAgICAgcHJvcHMudG9waWNzLm1hcCgodG9waWMpID0+IHRvcGljLnRvcGljQXJuKSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gVEYgUHJvdmlkZXIgQVdTIGVmZmVjdGl2ZWx5IHNldHMgdGhlIFBvbGljeSBhdHRyaWJ1dGUgb24gZXZlcnkgdG9waWMgLi4uXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItYXdzL2Jsb2IvdjUuOTcuMC9pbnRlcm5hbC9zZXJ2aWNlL3Nucy90b3BpY19wb2xpY3kuZ28jTDczXG4gICAgcHJvcHMudG9waWNzLmZvckVhY2goKHRvcGljLCBpbmRleCkgPT4ge1xuICAgICAgbmV3IHNuc1RvcGljUG9saWN5LlNuc1RvcGljUG9saWN5KHRoaXMsIGBSZXNvdXJjZS0ke2luZGV4fWAsIHtcbiAgICAgICAgYXJuOiB0b3BpYy50b3BpY0FybixcbiAgICAgICAgcG9saWN5OiB0aGlzLmRvY3VtZW50Lmpzb24sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc3RhdGVtZW50IHRvIGVuZm9yY2UgZW5jcnlwdGlvbiBvZiBkYXRhIGluIHRyYW5zaXQgd2hlbiBwdWJsaXNoaW5nIHRvIHRoZSB0b3BpYy5cbiAgICpcbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc25zL2xhdGVzdC9kZy9zbnMtc2VjdXJpdHktYmVzdC1wcmFjdGljZXMuaHRtbCNlbmZvcmNlLWVuY3J5cHRpb24tZGF0YS1pbi10cmFuc2l0LlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVNTTFBvbGljeVN0YXRlbWVudCh0b3BpY0FybnM6IHN0cmluZ1tdKTogUG9saWN5U3RhdGVtZW50IHtcbiAgICByZXR1cm4gbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAvLyBOT1RFOiBTSUQgbmVlZHMgdG8gYmUgdW5pcXVlIHdpdGhpbiB0aGUgcG9saWN5IGZvciBlYWNoIHRvcGljXG4gICAgICBzaWQ6IFwiQWxsb3dQdWJsaXNoVGhyb3VnaFNTTE9ubHlcIixcbiAgICAgIGFjdGlvbnM6IFtcInNuczpQdWJsaXNoXCJdLFxuICAgICAgZWZmZWN0OiBFZmZlY3QuREVOWSxcbiAgICAgIHJlc291cmNlczogdG9waWNBcm5zLFxuICAgICAgY29uZGl0aW9uOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0OiBcIkJvb2xcIixcbiAgICAgICAgICB2YXJpYWJsZTogXCJhd3M6U2VjdXJlVHJhbnNwb3J0XCIsXG4gICAgICAgICAgdmFsdWVzOiBbXCJmYWxzZVwiXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBwcmluY2lwYWxzOiBbbmV3IFN0YXJQcmluY2lwYWwoKV0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -130,7 +130,7 @@ class QueueBase extends aws_construct_1.AwsConstructBase {
130
130
  }
131
131
  exports.QueueBase = QueueBase;
132
132
  _a = JSII_RTTI_SYMBOL_1;
133
- QueueBase[_a] = { fqn: "terraconstructs.aws.notify.QueueBase", version: "0.2.4" };
133
+ QueueBase[_a] = { fqn: "terraconstructs.aws.notify.QueueBase", version: "0.2.5" };
134
134
  /**
135
135
  * What kind of encryption to apply to this queue
136
136
  */
@@ -3,7 +3,7 @@ var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.QueuePolicy = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const provider_aws_1 = require("@cdktf/provider-aws");
6
+ const provider_aws_1 = require("@cdktn/provider-aws");
7
7
  const aws_construct_1 = require("../aws-construct");
8
8
  const iam_1 = require("../iam");
9
9
  /**
@@ -35,5 +35,5 @@ class QueuePolicy extends aws_construct_1.AwsConstructBase {
35
35
  }
36
36
  exports.QueuePolicy = QueuePolicy;
37
37
  _a = JSII_RTTI_SYMBOL_1;
38
- QueuePolicy[_a] = { fqn: "terraconstructs.aws.notify.QueuePolicy", version: "0.2.4" };
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUtcG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9ub3RpZnkvcXVldWUtcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0RBQXFEO0FBRXJELG9EQUF1RTtBQUV2RSxnQ0FBd0M7QUFZeEM7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQWEsV0FBWSxTQUFRLGdDQUFnQjtJQUsvQyxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBQ0QsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1QjtRQUMvRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksb0JBQWMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFbkQsSUFBSSw2QkFBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ2xELE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUk7WUFDMUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUTtTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDOztBQWhCSCxrQ0FpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzcXNRdWV1ZVBvbGljeSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXdzQ29uc3RydWN0QmFzZSwgQXdzQ29uc3RydWN0UHJvcHMgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgSVF1ZXVlIH0gZnJvbSBcIi4vXCI7XG5pbXBvcnQgeyBQb2xpY3lEb2N1bWVudCB9IGZyb20gXCIuLi9pYW1cIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRvIGFzc29jaWF0ZSBTUVMgcXVldWVzIHdpdGggYSBwb2xpY3lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdWV1ZVBvbGljeVByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIHNldCBvZiBxdWV1ZXMgdGhpcyBwb2xpY3kgYXBwbGllcyB0by5cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXVlOiBJUXVldWU7XG59XG5cbi8qKlxuICogVGhlIHBvbGljeSBmb3IgYW4gU1FTIFF1ZXVlXG4gKlxuICogUG9saWNpZXMgZGVmaW5lIHRoZSBvcGVyYXRpb25zIHRoYXQgYXJlIGFsbG93ZWQgb24gdGhpcyByZXNvdXJjZS5cbiAqXG4gKiBZb3UgYWxtb3N0IG5ldmVyIG5lZWQgdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0IGRpcmVjdGx5LlxuICpcbiAqIEFsbCBBV1MgcmVzb3VyY2VzIHRoYXQgc3VwcG9ydCByZXNvdXJjZSBwb2xpY2llcyBoYXZlIGEgbWV0aG9kIGNhbGxlZFxuICogYGFkZFRvUmVzb3VyY2VQb2xpY3koKWAsIHdoaWNoIHdpbGwgYXV0b21hdGljYWxseSBjcmVhdGUgYSBuZXcgcmVzb3VyY2VcbiAqIHBvbGljeSBpZiBvbmUgZG9lc24ndCBleGlzdCB5ZXQsIG90aGVyd2lzZSBpdCB3aWxsIGFkZCB0byB0aGUgZXhpc3RpbmdcbiAqIHBvbGljeS5cbiAqXG4gKiBQcmVmZXIgdG8gdXNlIGBhZGRUb1Jlc291cmNlUG9saWN5KClgIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBRdWV1ZVBvbGljeSBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2Uge1xuICAvKipcbiAgICogVGhlIElBTSBwb2xpY3kgZG9jdW1lbnQgZm9yIHRoaXMgcG9saWN5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50OiBQb2xpY3lEb2N1bWVudDtcbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50Lm91dHB1dHM7XG4gIH1cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFF1ZXVlUG9saWN5UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICB0aGlzLmRvY3VtZW50ID0gbmV3IFBvbGljeURvY3VtZW50KHRoaXMsIFwiUG9saWN5XCIpO1xuXG4gICAgbmV3IHNxc1F1ZXVlUG9saWN5LlNxc1F1ZXVlUG9saWN5KHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgcG9saWN5OiB0aGlzLmRvY3VtZW50Lmpzb24sXG4gICAgICBxdWV1ZVVybDogcHJvcHMucXVldWUucXVldWVVcmwsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
38
+ QueuePolicy[_a] = { fqn: "terraconstructs.aws.notify.QueuePolicy", version: "0.2.5" };
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUtcG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9ub3RpZnkvcXVldWUtcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0RBQXFEO0FBRXJELG9EQUF1RTtBQUV2RSxnQ0FBd0M7QUFZeEM7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQWEsV0FBWSxTQUFRLGdDQUFnQjtJQUsvQyxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBQ0QsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1QjtRQUMvRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksb0JBQWMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFbkQsSUFBSSw2QkFBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ2xELE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUk7WUFDMUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUTtTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDOztBQWhCSCxrQ0FpQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzcXNRdWV1ZVBvbGljeSB9IGZyb20gXCJAY2RrdG4vcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXdzQ29uc3RydWN0QmFzZSwgQXdzQ29uc3RydWN0UHJvcHMgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgSVF1ZXVlIH0gZnJvbSBcIi4vXCI7XG5pbXBvcnQgeyBQb2xpY3lEb2N1bWVudCB9IGZyb20gXCIuLi9pYW1cIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRvIGFzc29jaWF0ZSBTUVMgcXVldWVzIHdpdGggYSBwb2xpY3lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdWV1ZVBvbGljeVByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIHNldCBvZiBxdWV1ZXMgdGhpcyBwb2xpY3kgYXBwbGllcyB0by5cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXVlOiBJUXVldWU7XG59XG5cbi8qKlxuICogVGhlIHBvbGljeSBmb3IgYW4gU1FTIFF1ZXVlXG4gKlxuICogUG9saWNpZXMgZGVmaW5lIHRoZSBvcGVyYXRpb25zIHRoYXQgYXJlIGFsbG93ZWQgb24gdGhpcyByZXNvdXJjZS5cbiAqXG4gKiBZb3UgYWxtb3N0IG5ldmVyIG5lZWQgdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0IGRpcmVjdGx5LlxuICpcbiAqIEFsbCBBV1MgcmVzb3VyY2VzIHRoYXQgc3VwcG9ydCByZXNvdXJjZSBwb2xpY2llcyBoYXZlIGEgbWV0aG9kIGNhbGxlZFxuICogYGFkZFRvUmVzb3VyY2VQb2xpY3koKWAsIHdoaWNoIHdpbGwgYXV0b21hdGljYWxseSBjcmVhdGUgYSBuZXcgcmVzb3VyY2VcbiAqIHBvbGljeSBpZiBvbmUgZG9lc24ndCBleGlzdCB5ZXQsIG90aGVyd2lzZSBpdCB3aWxsIGFkZCB0byB0aGUgZXhpc3RpbmdcbiAqIHBvbGljeS5cbiAqXG4gKiBQcmVmZXIgdG8gdXNlIGBhZGRUb1Jlc291cmNlUG9saWN5KClgIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBRdWV1ZVBvbGljeSBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2Uge1xuICAvKipcbiAgICogVGhlIElBTSBwb2xpY3kgZG9jdW1lbnQgZm9yIHRoaXMgcG9saWN5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50OiBQb2xpY3lEb2N1bWVudDtcbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50Lm91dHB1dHM7XG4gIH1cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFF1ZXVlUG9saWN5UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICB0aGlzLmRvY3VtZW50ID0gbmV3IFBvbGljeURvY3VtZW50KHRoaXMsIFwiUG9saWN5XCIpO1xuXG4gICAgbmV3IHNxc1F1ZXVlUG9saWN5LlNxc1F1ZXVlUG9saWN5KHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgcG9saWN5OiB0aGlzLmRvY3VtZW50Lmpzb24sXG4gICAgICBxdWV1ZVVybDogcHJvcHMucXVldWUucXVldWVVcmwsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { sqsQueue } from "@cdktf/provider-aws";
1
+ import { sqsQueue } from "@cdktn/provider-aws";
2
2
  import { Construct } from "constructs";
3
3
  import { Duration } from "../../duration";
4
4
  import { IQueue, QueueBase, QueueEncryption } from "./queue-base";
@@ -6,8 +6,8 @@ exports.validateQueueProps = validateQueueProps;
6
6
  exports.validateRedriveAllowPolicy = validateRedriveAllowPolicy;
7
7
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
8
8
  // https://github.com/aws/aws-cdk/blob/v2.232.2/packages/aws-cdk-lib/aws-sqs/lib/queue.ts
9
- const provider_aws_1 = require("@cdktf/provider-aws");
10
- const cdktf_1 = require("cdktf");
9
+ const provider_aws_1 = require("@cdktn/provider-aws");
10
+ const cdktn_1 = require("cdktn");
11
11
  const errors_1 = require("../../errors");
12
12
  const helpers_internal_1 = require("../../helpers-internal");
13
13
  const arn_1 = require("../arn");
@@ -46,7 +46,7 @@ class Queue extends queue_base_1.QueueBase {
46
46
  * Determine fifo flag based on queueName and fifo attribute
47
47
  */
48
48
  determineFifo() {
49
- if (cdktf_1.Token.isUnresolved(this.queueArn)) {
49
+ if (cdktn_1.Token.isUnresolved(this.queueArn)) {
50
50
  return false;
51
51
  }
52
52
  else {
@@ -66,7 +66,7 @@ class Queue extends queue_base_1.QueueBase {
66
66
  validateRedriveAllowPolicy(this, props.redriveAllowPolicy);
67
67
  }
68
68
  let namePrefix = props.queueName;
69
- if (namePrefix && !cdktf_1.Token.isUnresolved(namePrefix)) {
69
+ if (namePrefix && !cdktn_1.Token.isUnresolved(namePrefix)) {
70
70
  if (namePrefix.endsWith(".fifo")) {
71
71
  namePrefix = namePrefix.slice(0, -5);
72
72
  }
@@ -187,7 +187,7 @@ class Queue extends queue_base_1.QueueBase {
187
187
  const queueName = props.queueName;
188
188
  if (typeof fifoQueue === "undefined" &&
189
189
  queueName &&
190
- !cdktf_1.Token.isUnresolved(queueName) &&
190
+ !cdktn_1.Token.isUnresolved(queueName) &&
191
191
  queueName.endsWith(".fifo")) {
192
192
  fifoQueue = true;
193
193
  }
@@ -247,7 +247,7 @@ class Queue extends queue_base_1.QueueBase {
247
247
  }
248
248
  exports.Queue = Queue;
249
249
  _a = JSII_RTTI_SYMBOL_1;
250
- Queue[_a] = { fqn: "terraconstructs.aws.notify.Queue", version: "0.2.4" };
250
+ Queue[_a] = { fqn: "terraconstructs.aws.notify.Queue", version: "0.2.5" };
251
251
  /**
252
252
  * Uniquely identifies this class.
253
253
  */
@@ -301,7 +301,7 @@ var RedrivePermission;
301
301
  // ref: https://github.com/aws/aws-cdk/blob/v2.232.2/packages/aws-cdk-lib/aws-sqs/lib/validate-queue-props.ts
302
302
  function validateRange(value, minValue, maxValue) {
303
303
  return (value !== undefined &&
304
- !cdktf_1.Token.isUnresolved(value) &&
304
+ !cdktn_1.Token.isUnresolved(value) &&
305
305
  (value < minValue || value > maxValue));
306
306
  }
307
307
  const queueValidationRules = [
@@ -355,4 +355,4 @@ function validateQueueProps(scope, props) {
355
355
  function validateRedriveAllowPolicy(scope, policy) {
356
356
  (0, helpers_internal_1.validateAllProps)(scope, Queue.name, policy, redriveValidationRules);
357
357
  }
358
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL25vdGlmeS9xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBaXVCQSxnREFFQztBQUVELGdFQUtDOztBQTF1QkQseUZBQXlGO0FBRXpGLHNEQUErQztBQUMvQyxpQ0FBOEI7QUFHOUIseUNBQStDO0FBQy9DLDZEQUEwRTtBQUMxRSxnQ0FBbUM7QUFDbkMsNkNBQWtFO0FBRWxFLDRDQUF3QztBQUN4QyxxQ0FBcUM7QUFDckMsOEJBQThCO0FBbU05Qjs7R0FFRztBQUNILE1BQWEsS0FBTSxTQUFRLHNCQUFTO0lBT2xDOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQ3hCLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixRQUFnQjtRQUVoQixNQUFNLEtBQUssR0FBRyxvQkFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxlQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2RSxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLGVBQWUsU0FBUyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxPQUFPLElBQUksU0FBUyxFQUFFLENBQUM7UUFFeEcsTUFBTSxNQUFPLFNBQVEsc0JBQVM7WUFBOUI7O2dCQUNrQixhQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsNENBQTRDO2dCQUNqRSxhQUFRLEdBQUcsUUFBUSxDQUFDO2dCQUNwQixjQUFTLEdBQUcsU0FBUyxDQUFDO2dCQUN0Qix3QkFBbUIsR0FBRyxTQUFTLENBQUM7Z0JBQ2hDLFNBQUksR0FBWSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JDLG1CQUFjLEdBQUcsU0FBUyxDQUFDO2dCQUV4QixxQkFB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SSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztRQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQ1osd0ZBQXdGO0tBQzNGO0lBQ0Q7UUFDRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FDakQsQ0FBQyxDQUFDLENBQ0EsaUJBQWlCLEtBQUssaUJBQWlCLENBQUMsUUFBUTtZQUNoRCxZQUFZO1lBQ1osWUFBWSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQ3pCO1FBQ0gsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUNaLDZGQUE2RjtLQUNoRztJQUNEO1FBQ0UsU0FBUyxFQUFFLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQ2pELENBQUMsQ0FBQyxDQUNBLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLENBQUMsU0FBUztZQUNoRCxpQkFBaUIsS0FBSyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7WUFDbkQsWUFBWSxDQUNiO1FBQ0gsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUNaLDRGQUE0RjtLQUMvRjtDQUNGLENBQUM7QUFFRixTQUFnQixrQkFBa0IsQ0FBQyxLQUFnQixFQUFFLEtBQWlCO0lBQ3BFLElBQUEsbUNBQWdCLEVBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFDbkUsQ0FBQztBQUVELFNBQWdCLDBCQUEwQixDQUN4QyxLQUFnQixFQUNoQixNQUEwQjtJQUUxQixJQUFBLG1DQUFnQixFQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0FBQ3RFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4yMzIuMi9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3Mtc3FzL2xpYi9xdWV1ZS50c1xuXG5pbXBvcnQgeyBzcXNRdWV1ZSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBUb2tlbiB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2R1cmF0aW9uXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tIFwiLi4vLi4vZXJyb3JzXCI7XG5pbXBvcnQgeyB2YWxpZGF0ZUFsbFByb3BzLCBWYWxpZGF0aW9uUnVsZSB9IGZyb20gXCIuLi8uLi9oZWxwZXJzLWludGVybmFsXCI7XG5pbXBvcnQgeyBBcm5Gb3JtYXQgfSBmcm9tIFwiLi4vYXJuXCI7XG5pbXBvcnQgeyBJUXVldWUsIFF1ZXVlQmFzZSwgUXVldWVFbmNyeXB0aW9uIH0gZnJvbSBcIi4vcXVldWUtYmFzZVwiO1xuaW1wb3J0IHsgQXdzQ29uc3RydWN0UHJvcHMgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSBcIi4uL2VuY3J5cHRpb25cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vaWFtXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBuZXcgUXVldWVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdWV1ZVByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogUXVldWUgTmFtZSBwcmVmaXhcbiAgICpcbiAgICogUXVldWUgbmFtZXMgbXVzdCBiZSBtYWRlIHVwIG9mIG9ubHkgdXBwZXJjYXNlIGFuZCBsb3dlcmNhc2UgQVNDSUkgbGV0dGVycyxcbiAgICogbnVtYmVycywgdW5kZXJzY29yZXMsIGFuZCBoeXBoZW5zLCBhbmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDgwIGNoYXJhY3RlcnNcbiAgICogbG9uZy5cbiAgICpcbiAgICogVGVycmFmb3JtIFByZWZpeGVzIG11c3QgcmVzZXJ2ZSAyNiBjaGFyYWN0ZXJzIGZvciB0aGUgdGVycmFmb3JtIGdlbmVyYXRlZCBzdWZmaXguXG4gICAqXG4gICAqIEZvciBhIEZJRk8gKGZpcnN0LWluLWZpcnN0LW91dCkgcXVldWUsIHRoZSBuYW1lIG11c3QgZW5kIHdpdGggdGhlIC5maWZvXG4gICAqIEBkZWZhdWx0IC0gR3JpZFVVSUQgKyBTdGFjayBVbmlxdWUgTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgcXVldWVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHNlY29uZHMgdGhhdCBBbWF6b24gU1FTIHJldGFpbnMgYSBtZXNzYWdlLlxuICAgKlxuICAgKiBZb3UgY2FuIHNwZWNpZnkgYW4gaW50ZWdlciB2YWx1ZSBmcm9tIDYwIHNlY29uZHMgKDEgbWludXRlKSB0byAxMjA5NjAwXG4gICAqIHNlY29uZHMgKDE0IGRheXMpLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAzNDU2MDAgc2Vjb25kcyAoNCBkYXlzKS5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uZGF5cyg0KVxuICAgKi9cbiAgcmVhZG9ubHkgcmV0ZW50aW9uUGVyaW9kPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGluIHNlY29uZHMgdGhhdCB0aGUgZGVsaXZlcnkgb2YgYWxsIG1lc3NhZ2VzIGluIHRoZSBxdWV1ZSBpcyBkZWxheWVkLlxuICAgKlxuICAgKiBZb3UgY2FuIHNwZWNpZnkgYW4gaW50ZWdlciB2YWx1ZSBvZiAwIHRvIDkwMCAoMTUgbWludXRlcykuIFRoZSBkZWZhdWx0XG4gICAqIHZhbHVlIGlzIDAuXG4gICAqXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IGRlbGl2ZXJ5RGVsYXk/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGxpbWl0IG9mIGhvdyBtYW55IGJ5dGVzIHRoYXQgYSBtZXNzYWdlIGNhbiBjb250YWluIGJlZm9yZSBBbWF6b24gU1FTIHJlamVjdHMgaXQuXG4gICAqXG4gICAqIFlvdSBjYW4gc3BlY2lmeSBhbiBpbnRlZ2VyIHZhbHVlIGZyb20gMTAyNCBieXRlcyAoMSBLaUIpIHRvIDEwNDg1NzYgYnl0ZXNcbiAgICogKDEgTWlCKS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgMTA0ODU3NiAoMSBNaUIpLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxTWlCXG4gICAqL1xuICByZWFkb25seSBtYXhNZXNzYWdlU2l6ZUJ5dGVzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IHdhaXQgdGltZSBmb3IgUmVjZWl2ZU1lc3NhZ2UgY2FsbHMuXG4gICAqXG4gICAqIERvZXMgbm90IHdhaXQgaWYgc2V0IHRvIDAsIG90aGVyd2lzZSB3YWl0cyB0aGlzIGFtb3VudCBvZiBzZWNvbmRzXG4gICAqIGJ5IGRlZmF1bHQgZm9yIG1lc3NhZ2VzIHRvIGFycml2ZS5cbiAgICpcbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBBbWF6b24gU1FTIExvbmcgUG9sbC5cbiAgICpcbiAgICogIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IHJlY2VpdmVNZXNzYWdlV2FpdFRpbWU/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGltZW91dCBvZiBwcm9jZXNzaW5nIGEgc2luZ2xlIG1lc3NhZ2UuXG4gICAqXG4gICAqIEFmdGVyIGRlcXVldWluZywgdGhlIHByb2Nlc3NvciBoYXMgdGhpcyBtdWNoIHRpbWUgdG8gaGFuZGxlIHRoZSBtZXNzYWdlXG4gICAqIGFuZCBkZWxldGUgaXQgZnJvbSB0aGUgcXVldWUgYmVmb3JlIGl0IGJlY29tZXMgdmlzaWJsZSBhZ2FpbiBmb3IgZGVxdWV1ZWluZ1xuICAgKiBieSBhbm90aGVyIHByb2Nlc3Nvci5cbiAgICpcbiAgICogVmFsdWVzIG11c3QgYmUgZnJvbSAwIHRvIDQzMjAwIHNlY29uZHMgKDEyIGhvdXJzKS4gSWYgeW91IGRvbid0IHNwZWNpZnlcbiAgICogYSB2YWx1ZSwgQVdTIENsb3VkRm9ybWF0aW9uIHVzZXMgdGhlIGRlZmF1bHQgdmFsdWUgb2YgMzAgc2Vjb25kcy5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uc2Vjb25kcygzMClcbiAgICovXG4gIHJlYWRvbmx5IHZpc2liaWxpdHlUaW1lb3V0PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFNlbmQgbWVzc2FnZXMgdG8gdGhpcyBxdWV1ZSBpZiB0aGV5IHdlcmUgdW5zdWNjZXNzZnVsbHkgZGVxdWV1ZWQgYSBudW1iZXIgb2YgdGltZXMuXG4gICAqXG4gICAqIFNlZSBbQVdTIERvY3NdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NTaW1wbGVRdWV1ZVNlcnZpY2UvbGF0ZXN0L1NRU0RldmVsb3Blckd1aWRlL3Nxcy1kZWFkLWxldHRlci1xdWV1ZXMuaHRtbClcbiAgICpcbiAgICogQGRlZmF1bHQgbm8gZGVhZC1sZXR0ZXIgcXVldWVcbiAgICpcbiAgICoge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzL3Jlc291cmNlcy9zcXNfcXVldWUjcmVkcml2ZV9wb2xpY3kgU3FzUXVldWUjcmVkcml2ZV9wb2xpY3l9XG4gICAqL1xuICByZWFkb25seSBkZWFkTGV0dGVyUXVldWU/OiBEZWFkTGV0dGVyUXVldWU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNvbnRlbnRzIG9mIHRoZSBxdWV1ZSBhcmUgZW5jcnlwdGVkLCBhbmQgYnkgd2hhdCB0eXBlIG9mIGtleS5cbiAgICpcbiAgICogQmUgYXdhcmUgdGhhdCBlbmNyeXB0aW9uIGlzIG5vdCBhdmFpbGFibGUgaW4gYWxsIHJlZ2lvbnMsIHBsZWFzZSBzZWUgdGhlIGRvY3NcbiAgICogZm9yIGN1cnJlbnQgYXZhaWxhYmlsaXR5IGRldGFpbHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFNRU19NQU5BR0VEIChTU0UtU1FTKSBmb3IgbmV3bHkgY3JlYXRlZCBxdWV1ZXNcbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBRdWV1ZUVuY3J5cHRpb247XG5cbiAgLyoqXG4gICAqIEV4dGVybmFsIEtNUyBrZXkgdG8gdXNlIGZvciBxdWV1ZSBlbmNyeXB0aW9uLlxuICAgKlxuICAgKiBJbmRpdmlkdWFsIG1lc3NhZ2VzIHdpbGwgYmUgZW5jcnlwdGVkIHVzaW5nIGRhdGEga2V5cy4gVGhlIGRhdGEga2V5cyBpblxuICAgKiB0dXJuIHdpbGwgYmUgZW5jcnlwdGVkIHVzaW5nIHRoaXMga2V5LCBhbmQgcmV1c2VkIGZvciBhIG1heGltdW0gb2ZcbiAgICogYGRhdGFLZXlSZXVzZVNlY3NgIHNlY29uZHMuXG4gICAqXG4gICAqIElmIHRoZSAnZW5jcnlwdGlvbk1hc3RlcktleScgcHJvcGVydHkgaXMgc2V0LCAnZW5jcnlwdGlvbicgdHlwZSB3aWxsIGJlXG4gICAqIGltcGxpY2l0bHkgc2V0IHRvIFwiS01TXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IElmIGVuY3J5cHRpb24gaXMgc2V0IHRvIEtNUyBhbmQgbm90IHNwZWNpZmllZCwgYSBrZXkgd2lsbCBiZSBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbk1hc3RlcktleT86IGttcy5JS2V5O1xuXG4gIC8qKlxuICAgKiBUaGUgbGVuZ3RoIG9mIHRpbWUgdGhhdCBBbWF6b24gU1FTIHJldXNlcyBhIGRhdGEga2V5IGJlZm9yZSBjYWxsaW5nIEtNUyBhZ2Fpbi5cbiAgICpcbiAgICogVGhlIHZhbHVlIG11c3QgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDYwICgxIG1pbnV0ZSkgYW5kIDg2LDQwMCAoMjRcbiAgICogaG91cnMpLiBUaGUgZGVmYXVsdCBpcyAzMDAgKDUgbWludXRlcykuXG4gICAqXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLm1pbnV0ZXMoNSlcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFLZXlSZXVzZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgYSBmaXJzdC1pbi1maXJzdC1vdXQgKEZJRk8pIHF1ZXVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZSwgdW5sZXNzIHF1ZXVlTmFtZSBlbmRzIGluICcuZmlmbycgb3IgJ2NvbnRlbnRCYXNlZERlZHVwbGljYXRpb24nIGlzIHRydWUuXG4gICAqL1xuICByZWFkb25seSBmaWZvPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZW5hYmxlIGNvbnRlbnQtYmFzZWQgZGVkdXBsaWNhdGlvbi5cbiAgICpcbiAgICogRHVyaW5nIHRoZSBkZWR1cGxpY2F0aW9uIGludGVydmFsICg1IG1pbnV0ZXMpLCBBbWF6b24gU1FTIHRyZWF0c1xuICAgKiBtZXNzYWdlcyB0aGF0IGFyZSBzZW50IHdpdGggaWRlbnRpY2FsIGNvbnRlbnQgKGV4Y2x1ZGluZyBhdHRyaWJ1dGVzKSBhc1xuICAgKiBkdXBsaWNhdGVzIGFuZCBkZWxpdmVycyBvbmx5IG9uZSBjb3B5IG9mIHRoZSBtZXNzYWdlLlxuICAgKlxuICAgKiBJZiB5b3UgZG9uJ3QgZW5hYmxlIGNvbnRlbnQtYmFzZWQgZGVkdXBsaWNhdGlvbiBhbmQgeW91IHdhbnQgdG8gZGVkdXBsaWNhdGVcbiAgICogbWVzc2FnZXMsIHByb3ZpZGUgYW4gZXhwbGljaXQgZGVkdXBsaWNhdGlvbiBJRCBpbiB5b3VyIFNlbmRNZXNzYWdlKCkgY2FsbC5cbiAgICpcbiAgICogKE9ubHkgYXBwbGllcyB0byBGSUZPIHF1ZXVlcy4pXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjb250ZW50QmFzZWREZWR1cGxpY2F0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRm9yIGhpZ2ggdGhyb3VnaHB1dCBmb3IgRklGTyBxdWV1ZXMsIHNwZWNpZmllcyB3aGV0aGVyIG1lc3NhZ2UgZGVkdXBsaWNhdGlvblxuICAgKiBvY2N1cnMgYXQgdGhlIG1lc3NhZ2UgZ3JvdXAgb3IgcXVldWUgbGV2ZWwuXG4gICAqXG4gICAqIChPbmx5IGFwcGxpZXMgdG8gRklGTyBxdWV1ZXMuKVxuICAgKlxuICAgKiBAZGVmYXVsdCBEZWR1cGxpY2F0aW9uU2NvcGUuUVVFVUVcbiAgICovXG4gIHJlYWRvbmx5IGRlZHVwbGljYXRpb25TY29wZT86IERlZHVwbGljYXRpb25TY29wZTtcblxuICAvKipcbiAgICogRm9yIGhpZ2ggdGhyb3VnaHB1dCBmb3IgRklGTyBxdWV1ZXMsIHNwZWNpZmllcyB3aGV0aGVyIHRoZSBGSUZPIHF1ZXVlXG4gICAqIHRocm91Z2hwdXQgcXVvdGEgYXBwbGllcyB0byB0aGUgZW50aXJlIHF1ZXVlIG9yIHBlciBtZXNzYWdlIGdyb3VwLlxuICAgKlxuICAgKiAoT25seSBhcHBsaWVzIHRvIEZJRk8gcXVldWVzLilcbiAgICpcbiAgICogQGRlZmF1bHQgRmlmb1Rocm91Z2hwdXRMaW1pdC5QRVJfUVVFVUVcbiAgICovXG4gIHJlYWRvbmx5IGZpZm9UaHJvdWdocHV0TGltaXQ/OiBGaWZvVGhyb3VnaHB1dExpbWl0O1xuXG4gIC8qKlxuICAgKiBQb2xpY3kgdG8gYXBwbHkgd2hlbiB0aGUgcXVldWUgaXMgcmVtb3ZlZCBmcm9tIHRoZSBzdGFja1xuICAgKlxuICAgKiBFdmVuIHRob3VnaCBxdWV1ZXMgYXJlIHRlY2huaWNhbGx5IHN0YXRlZnVsLCB0aGVpciBjb250ZW50cyBhcmUgdHJhbnNpZW50IGFuZCBpdFxuICAgKiBpcyBjb21tb24gdG8gYWRkIGFuZCByZW1vdmUgUXVldWVzIHdoaWxlIHJlYXJjaGl0ZWN0aW5nIHlvdXIgYXBwbGljYXRpb24uIFRoZVxuICAgKiBkZWZhdWx0IGlzIHRoZXJlZm9yZSBgREVTVFJPWWAuIENoYW5nZSBpdCB0byBgUkVUQUlOYCBpZiB0aGUgbWVzc2FnZXMgYXJlIHNvXG4gICAqIHZhbHVhYmxlIHRoYXQgYWNjaWRlbnRhbGx5IGxvc2luZyB0aGVtIHdvdWxkIGJlIHVuYWNjZXB0YWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgUmVtb3ZhbFBvbGljeS5ERVNUUk9ZXG4gICAqL1xuICAvLyByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcblxuICAvKipcbiAgICogRW5mb3JjZSBlbmNyeXB0aW9uIG9mIGRhdGEgaW4gdHJhbnNpdC5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTU2ltcGxlUXVldWVTZXJ2aWNlL2xhdGVzdC9TUVNEZXZlbG9wZXJHdWlkZS9zcXMtc2VjdXJpdHktYmVzdC1wcmFjdGljZXMuaHRtbCNlbmZvcmNlLWVuY3J5cHRpb24tZGF0YS1pbi10cmFuc2l0XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmZvcmNlU1NMPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHN0cmluZyB0aGF0IGluY2x1ZGVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgcGVybWlzc2lvbnMgZm9yIHRoZSBkZWFkLWxldHRlciBxdWV1ZVxuICAgKiByZWRyaXZlIHBlcm1pc3Npb24gYW5kIHdoaWNoIHNvdXJjZSBxdWV1ZXMgY2FuIHNwZWNpZnkgZGVhZC1sZXR0ZXIgcXVldWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEFsbCBzb3VyY2UgcXVldWVzIGNhbiBkZXNpZ25hdGUgdGhpcyBxdWV1ZSBhcyB0aGVpciBkZWFkLWxldHRlciBxdWV1ZS5cbiAgICpcbiAgICoge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzL3Jlc291cmNlcy9zcXNfcXVldWUjcmVkcml2ZV9hbGxvd19wb2xpY3kgU3FzUXVldWUjcmVkcml2ZV9hbGxvd19wb2xpY3l9XG4gICAqL1xuICByZWFkb25seSByZWRyaXZlQWxsb3dQb2xpY3k/OiBSZWRyaXZlQWxsb3dQb2xpY3k7XG59XG5cbi8qKlxuICogQSBuZXcgQW1hem9uIFNRUyBxdWV1ZVxuICovXG5leHBvcnQgY2xhc3MgUXVldWUgZXh0ZW5kcyBRdWV1ZUJhc2Uge1xuICAvKipcbiAgICogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9XG4gICAgXCJ0ZXJyYWNvbnN0cnVjdHMuYXdzLnNxcy5RdWV1ZVwiO1xuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgU1FTIHF1ZXVlIHByb3ZpZGVkIGFuIEFSTlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lXG4gICAqIEBwYXJhbSBxdWV1ZUFybiBxdWV1ZSBBUk4gKGkuZS4gYXJuOmF3czpzcXM6dXMtZWFzdC0yOjQ0NDQ1NTU1NjY2NjpxdWV1ZTEpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21RdWV1ZUFybihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcXVldWVBcm46IHN0cmluZyxcbiAgKTogSVF1ZXVlIHtcbiAgICBjb25zdCBzdGFjayA9IEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHNjb3BlKTtcbiAgICBjb25zdCBwYXJzZWRBcm4gPSBzdGFjay5zcGxpdEFybihxdWV1ZUFybiwgQXJuRm9ybWF0Lk5PX1JFU09VUkNFX05BTUUpO1xuICAgIGNvbnN0IHF1ZXVlTmFtZSA9IHBhcnNlZEFybi5yZXNvdXJjZTtcbiAgICBjb25zdCBxdWV1ZVVybCA9IGBodHRwczovL3Nxcy4ke3BhcnNlZEFybi5yZWdpb259LiR7c3RhY2sudXJsU3VmZml4fS8ke3BhcnNlZEFybi5hY2NvdW50fS8ke3F1ZXVlTmFtZX1gO1xuXG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgUXVldWVCYXNlIGltcGxlbWVudHMgSVF1ZXVlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBxdWV1ZUFybiA9IHF1ZXVlQXJuOyAvLyBhcm46YXdzOnNxczp1cy1lYXN0LTE6MTIzNDU2Nzg5MDEyOnF1ZXVlMVxuICAgICAgcHVibGljIHJlYWRvbmx5IHF1ZXVlVXJsID0gcXVldWVVcmw7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcXVldWVOYW1lID0gcXVldWVOYW1lO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGVuY3J5cHRpb25NYXN0ZXJLZXkgPSB1bmRlZmluZWQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZmlmbzogYm9vbGVhbiA9IHRoaXMuZGV0ZXJtaW5lRmlmbygpO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGVuY3J5cHRpb25UeXBlID0gdW5kZWZpbmVkO1xuXG4gICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXV0b0NyZWF0ZVBvbGljeSA9IGZhbHNlO1xuXG4gICAgICAvKipcbiAgICAgICAqIERldGVybWluZSBmaWZvIGZsYWcgYmFzZWQgb24gcXVldWVOYW1lIGFuZCBmaWZvIGF0dHJpYnV0ZVxuICAgICAgICovXG4gICAgICBwcml2YXRlIGRldGVybWluZUZpZm8oKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQodGhpcy5xdWV1ZUFybikpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHF1ZXVlTmFtZS5lbmRzV2l0aChcIi5maWZvXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkLCB7XG4gICAgICBlbnZpcm9ubWVudEZyb21Bcm46IHF1ZXVlQXJuLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBzcXNRdWV1ZS5TcXNRdWV1ZTtcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGlzIHF1ZXVlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcXVldWVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhpcyBxdWV1ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHF1ZXVlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgVVJMIG9mIHRoaXMgcXVldWVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBxdWV1ZVVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiB0aGlzIHF1ZXVlIGlzIGVuY3J5cHRlZCwgdGhpcyBpcyB0aGUgS01TIGtleS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBlbmNyeXB0aW9uTWFzdGVyS2V5Pzoga21zLklLZXk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBxdWV1ZSBpcyBhbiBBbWF6b24gU1FTIEZJRk8gcXVldWUuIElmIGZhbHNlLCB0aGlzIGlzIGEgc3RhbmRhcmQgcXVldWUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZmlmbzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY29udGVudHMgb2YgdGhlIHF1ZXVlIGFyZSBlbmNyeXB0ZWQsIGFuZCBieSB3aGF0IHR5cGUgb2Yga2V5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVuY3J5cHRpb25UeXBlPzogUXVldWVFbmNyeXB0aW9uO1xuXG4gIC8qKlxuICAgKiBJZiB0aGlzIHF1ZXVlIGlzIGNvbmZpZ3VyZWQgd2l0aCBhIGRlYWQtbGV0dGVyIHF1ZXVlLCB0aGlzIGlzIHRoZSBkZWFkLWxldHRlciBxdWV1ZSBzZXR0aW5ncy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZWFkTGV0dGVyUXVldWU/OiBEZWFkTGV0dGVyUXVldWU7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGF1dG9DcmVhdGVQb2xpY3kgPSB0cnVlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcGh5c2ljYWxOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFF1ZXVlUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgdmFsaWRhdGVRdWV1ZVByb3BzKHRoaXMsIHByb3BzKTtcblxuICAgIGlmIChwcm9wcy5yZWRyaXZlQWxsb3dQb2xpY3kpIHtcbiAgICAgIHZhbGlkYXRlUmVkcml2ZUFsbG93UG9saWN5KHRoaXMsIHByb3BzLnJlZHJpdmVBbGxvd1BvbGljeSk7XG4gICAgfVxuXG4gICAgbGV0IG5hbWVQcmVmaXggPSBwcm9wcy5xdWV1ZU5hbWU7XG4gICAgaWYgKG5hbWVQcmVmaXggJiYgIVRva2VuLmlzVW5yZXNvbHZlZChuYW1lUHJlZml4KSkge1xuICAgICAgaWYgKG5hbWVQcmVmaXguZW5kc1dpdGgoXCIuZmlmb1wiKSkge1xuICAgICAgICBuYW1lUHJlZml4ID0gbmFtZVByZWZpeC5zbGljZSgwLCAtNSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFRPRE86IFNob3VsZCB3ZSBhbHdheXMgaGF2ZSB0aGUgZ3JpZFVVSUQgYXMgdGhlIHByZWZpeD9cbiAgICBuYW1lUHJlZml4ID0gdGhpcy5zdGFjay51bmlxdWVSZXNvdXJjZU5hbWVQcmVmaXgodGhpcywge1xuICAgICAgcHJlZml4OiBuYW1lUHJlZml4ID8/IHRoaXMuZ3JpZFVVSUQgKyBcIi1cIixcbiAgICAgIGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyczogXCJfLVwiLFxuICAgICAgbWF4TGVuZ3RoOiA4MCxcbiAgICB9KTtcblxuICAgIHRoaXMucGh5c2ljYWxOYW1lID0gbmFtZVByZWZpeDtcbiAgICBjb25zdCByZWRyaXZlUG9saWN5ID0gcHJvcHMuZGVhZExldHRlclF1ZXVlXG4gICAgICA/IHtcbiAgICAgICAgICBkZWFkTGV0dGVyVGFyZ2V0QXJuOiBwcm9wcy5kZWFkTGV0dGVyUXVldWUucXVldWUucXVldWVBcm4sXG4gICAgICAgICAgbWF4UmVjZWl2ZUNvdW50OiBwcm9wcy5kZWFkTGV0dGVyUXVldWUubWF4UmVjZWl2ZUNvdW50LFxuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIFdoZW4gYHJlZHJpdmVBbGxvd1BvbGljeWAgaXMgcHJvdmlkZWQsIGByZWRyaXZlUGVybWlzc2lvbmAgZGVmYXVsdHMgdG8gYWxsb3cgYWxsIHF1ZXVlcyAoYEFMTE9XX0FMTGApO1xuICAgIGNvbnN0IHJlZHJpdmVBbGxvd1BvbGljeSA9IHByb3BzLnJlZHJpdmVBbGxvd1BvbGljeVxuICAgICAgPyB7XG4gICAgICAgICAgcmVkcml2ZVBlcm1pc3Npb246XG4gICAgICAgICAgICBwcm9wcy5yZWRyaXZlQWxsb3dQb2xpY3kucmVkcml2ZVBlcm1pc3Npb24gPz9cbiAgICAgICAgICAgIC8vIFdoZW4gYHNvdXJjZVF1ZXVlc2AgaXMgcHJvdmlkZWQgaW4gYHJlZHJpdmVBbGxvd1BvbGljeWAsIGByZWRyaXZlUGVybWlzc2lvbmAgZGVmYXVsdHMgdG9cbiAgICAgICAgICAgIC8vIGFsbG93IHNwZWNpZmllZCBxdWV1ZXMgKGBCWV9RVUVVRWApOyBvdGhlcndpc2UsIGl0IGRlZmF1bHRzIHRvIGFsbG93IGFsbCBxdWV1ZXMgKGBBTExPV19BTExgKS5cbiAgICAgICAgICAgIChwcm9wcy5yZWRyaXZlQWxsb3dQb2xpY3kuc291cmNlUXVldWVzXG4gICAgICAgICAgICAgID8gUmVkcml2ZVBlcm1pc3Npb24uQllfUVVFVUVcbiAgICAgICAgICAgICAgOiBSZWRyaXZlUGVybWlzc2lvbi5BTExPV19BTEwpLFxuICAgICAgICAgIHNvdXJjZVF1ZXVlQXJuczogcHJvcHMucmVkcml2ZUFsbG93UG9saWN5LnNvdXJjZVF1ZXVlcz8ubWFwKFxuICAgICAgICAgICAgKHEpID0+IHEucXVldWVBcm4sXG4gICAgICAgICAgKSxcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCB7IGVuY3J5cHRpb25NYXN0ZXJLZXksIGVuY3J5cHRpb25Qcm9wcywgZW5jcnlwdGlvblR5cGUgfSA9XG4gICAgICBfZGV0ZXJtaW5lRW5jcnlwdGlvblByb3BzLmNhbGwodGhpcyk7XG5cbiAgICBjb25zdCBmaWZvUHJvcHMgPSB0aGlzLmRldGVybWluZUZpZm9Qcm9wcyhwcm9wcyk7XG4gICAgdGhpcy5maWZvID0gZmlmb1Byb3BzLmZpZm9RdWV1ZSB8fCBmYWxzZTtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgc3FzUXVldWUuU3FzUXVldWUodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBuYW1lUHJlZml4OiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICAgIC4uLmZpZm9Qcm9wcyxcbiAgICAgIC4uLmVuY3J5cHRpb25Qcm9wcyxcbiAgICAgIHJlZHJpdmVQb2xpY3k6IHJlZHJpdmVQb2xpY3kgPyBKU09OLnN0cmluZ2lmeShyZWRyaXZlUG9saWN5KSA6IHVuZGVmaW5lZCxcbiAgICAgIHJlZHJpdmVBbGxvd1BvbGljeTogcmVkcml2ZUFsbG93UG9saWN5XG4gICAgICAgID8gSlNPTi5zdHJpbmdpZnkocmVkcml2ZUFsbG93UG9saWN5KVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGRlbGF5U2Vjb25kczogcHJvcHMuZGVsaXZlcnlEZWxheT8udG9TZWNvbmRzKCksXG4gICAgICBtYXhNZXNzYWdlU2l6ZTogcHJvcHMubWF4TWVzc2FnZVNpemVCeXRlcyxcbiAgICAgIG1lc3NhZ2VSZXRlbnRpb25TZWNvbmRzOiBwcm9wcy5yZXRlbnRpb25QZXJpb2Q/LnRvU2Vjb25kcygpLFxuICAgICAgcmVjZWl2ZVdhaXRUaW1lU2Vjb25kczogcHJvcHMucmVjZWl2ZU1lc3NhZ2VXYWl0VGltZT8udG9TZWNvbmRzKCksXG4gICAgICB2aXNpYmlsaXR5VGltZW91dFNlY29uZHM6IHByb3BzLnZpc2liaWxpdHlUaW1lb3V0Py50b1NlY29uZHMoKSxcbiAgICB9KTtcbiAgICAvLyBxdWV1ZS5hcHBseVJlbW92YWxQb2xpY3kocHJvcHMucmVtb3ZhbFBvbGljeSA/PyBSZW1vdmFsUG9saWN5LkRFU1RST1kpO1xuXG4gICAgdGhpcy5xdWV1ZUFybiA9IHRoaXMucmVzb3VyY2UuYXJuO1xuICAgIHRoaXMucXVldWVOYW1lID0gdGhpcy5yZXNvdXJjZS5uYW1lO1xuICAgIHRoaXMuZW5jcnlwdGlvbk1hc3RlcktleSA9IGVuY3J5cHRpb25NYXN0ZXJLZXk7XG4gICAgdGhpcy5xdWV1ZVVybCA9IHRoaXMucmVzb3VyY2UudXJsO1xuICAgIHRoaXMuZGVhZExldHRlclF1ZXVlID0gcHJvcHMuZGVhZExldHRlclF1ZXVlO1xuICAgIHRoaXMuZW5jcnlwdGlvblR5cGUgPSBlbmNyeXB0aW9uVHlwZTtcblxuICAgIGZ1bmN0aW9uIF9kZXRlcm1pbmVFbmNyeXB0aW9uUHJvcHModGhpczogUXVldWUpOiB7XG4gICAgICBlbmNyeXB0aW9uUHJvcHM6IEVuY3J5cHRpb25Qcm9wcztcbiAgICAgIGVuY3J5cHRpb25NYXN0ZXJLZXk/OiBrbXMuSUtleTtcbiAgICAgIGVuY3J5cHRpb25UeXBlOiBRdWV1ZUVuY3J5cHRpb24gfCB1bmRlZmluZWQ7XG4gICAgfSB7XG4gICAgICBsZXQgZW5jcnlwdGlvbiA9IHByb3BzLmVuY3J5cHRpb247XG5cbiAgICAgIGlmIChcbiAgICAgICAgZW5jcnlwdGlvbiA9PT0gUXVldWVFbmNyeXB0aW9uLlNRU19NQU5BR0VEICYmXG4gICAgICAgIHByb3BzLmVuY3J5cHRpb25NYXN0ZXJLZXlcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgIFwiJ2VuY3J5cHRpb25NYXN0ZXJLZXknIGlzIG5vdCBzdXBwb3J0ZWQgaWYgZW5jcnlwdGlvbiB0eXBlICdTUVNfTUFOQUdFRCcgaXMgdXNlZFwiLFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChlbmNyeXB0aW9uICE9PSBRdWV1ZUVuY3J5cHRpb24uS01TICYmIHByb3BzLmVuY3J5cHRpb25NYXN0ZXJLZXkpIHtcbiAgICAgICAgZW5jcnlwdGlvbiA9IFF1ZXVlRW5jcnlwdGlvbi5LTVM7IC8vIEtNUyBpcyBpbXBsaWVkIGJ5IHNwZWNpZnlpbmcgYW4gZW5jcnlwdGlvbiBrZXlcbiAgICAgIH1cblxuICAgICAgaWYgKCFlbmNyeXB0aW9uKSB7XG4gICAgICAgIHJldHVybiB7IGVuY3J5cHRpb25Qcm9wczoge30sIGVuY3J5cHRpb25UeXBlOiBlbmNyeXB0aW9uIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChlbmNyeXB0aW9uID09PSBRdWV1ZUVuY3J5cHRpb24uVU5FTkNSWVBURUQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBlbmNyeXB0aW9uVHlwZTogZW5jcnlwdGlvbixcbiAgICAgICAgICBlbmNyeXB0aW9uUHJvcHM6IHtcbiAgICAgICAgICAgIHNxc01hbmFnZWRTc2VFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBpZiAoZW5jcnlwdGlvbiA9PT0gUXVldWVFbmNyeXB0aW9uLktNU19NQU5BR0VEKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW5jcnlwdGlvblR5cGU6IGVuY3J5cHRpb24sXG4gICAgICAgICAgZW5jcnlwdGlvblByb3BzOiB7XG4gICAgICAgICAgICBrbXNNYXN0ZXJLZXlJZDogXCJhbGlhcy9hd3Mvc3FzXCIsXG4gICAgICAgICAgICBrbXNEYXRhS2V5UmV1c2VQZXJpb2RTZWNvbmRzOiBwcm9wcy5kYXRhS2V5UmV1c2U/LnRvU2Vjb25kcygpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChlbmNyeXB0aW9uID09PSBRdWV1ZUVuY3J5cHRpb24uS01TKSB7XG4gICAgICAgIGNvbnN0IG1hc3RlcktleSA9XG4gICAgICAgICAgcHJvcHMuZW5jcnlwdGlvbk1hc3RlcktleSB8fFxuICAgICAgICAgIG5ldyBrbXMuS2V5KHRoaXMsIFwiS2V5XCIsIHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgQ3JlYXRlZCBieSAke3RoaXMubm9kZS5wYXRofWAsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBlbmNyeXB0aW9uVHlwZTogZW5jcnlwdGlvbixcbiAgICAgICAgICBlbmNyeXB0aW9uTWFzdGVyS2V5OiBtYXN0ZXJLZXksXG4gICAgICAgICAgZW5jcnlwdGlvblByb3BzOiB7XG4gICAgICAgICAgICBrbXNNYXN0ZXJLZXlJZDogbWFzdGVyS2V5LmtleUFybixcbiAgICAgICAgICAgIGttc0RhdGFLZXlSZXVzZVBlcmlvZFNlY29uZHM6IHByb3BzLmRhdGFLZXlSZXVzZT8udG9TZWNvbmRzKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgaWYgKGVuY3J5cHRpb24gPT09IFF1ZXVlRW5jcnlwdGlvbi5TUVNfTUFOQUdFRCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGVuY3J5cHRpb25UeXBlOiBlbmNyeXB0aW9uLFxuICAgICAgICAgIGVuY3J5cHRpb25Qcm9wczoge1xuICAgICAgICAgICAgc3FzTWFuYWdlZFNzZUVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgYFVuZXhwZWN0ZWQgJ2VuY3J5cHRpb25UeXBlJzogJHtlbmNyeXB0aW9ufWAsXG4gICAgICAgIHRoaXMsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEVuZm9yY2UgZW5jcnlwdGlvbiBvZiBkYXRhIGluIHRyYW5zaXRcbiAgICBpZiAocHJvcHMuZW5mb3JjZVNTTCkge1xuICAgICAgdGhpcy5lbmZvcmNlU1NMU3RhdGVtZW50KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvb2sgYXQgdGhlIHByb3BzLCBzZWUgaWYgdGhlIEZJRk8gcHJvcHMgYWdyZWUsIGFuZCByZXR1cm4gdGhlIGNvcnJlY3Qgc3Vic2V0IG9mIHByb3BzXG4gICAqL1xuICBwcml2YXRlIGRldGVybWluZUZpZm9Qcm9wcyhwcm9wczogUXVldWVQcm9wcyk6IEZpZm9Qcm9wcyB7XG4gICAgLy8gQ2hlY2sgaWYgYW55IG9mIHRoZSBzaWduYWxzIHRoYXQgd2UgaGF2ZSBzYXkgdGhhdCB0aGlzIGlzIGEgRklGTyBxdWV1ZS5cbiAgICBsZXQgZmlmb1F1ZXVlID0gcHJvcHMuZmlmbztcbiAgICBjb25zdCBxdWV1ZU5hbWUgPSBwcm9wcy5xdWV1ZU5hbWU7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIGZpZm9RdWV1ZSA9PT0gXCJ1bmRlZmluZWRcIiAmJlxuICAgICAgcXVldWVOYW1lICYmXG4gICAgICAhVG9rZW4uaXNVbnJlc29sdmVkKHF1ZXVlTmFtZSkgJiZcbiAgICAgIHF1ZXVlTmFtZS5lbmRzV2l0aChcIi5maWZvXCIpXG4gICAgKSB7XG4gICAgICBmaWZvUXVldWUgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGZpZm9RdWV1ZSA9PT0gXCJ1bmRlZmluZWRcIiAmJiBwcm9wcy5jb250ZW50QmFzZWREZWR1cGxpY2F0aW9uKSB7XG4gICAgICBmaWZvUXVldWUgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGZpZm9RdWV1ZSA9PT0gXCJ1bmRlZmluZWRcIiAmJiBwcm9wcy5kZWR1cGxpY2F0aW9uU2NvcGUpIHtcbiAgICAgIGZpZm9RdWV1ZSA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgZmlmb1F1ZXVlID09PSBcInVuZGVmaW5lZFwiICYmIHByb3BzLmZpZm9UaHJvdWdocHV0TGltaXQpIHtcbiAgICAgIGZpZm9RdWV1ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8gSWYgd2UgaGF2ZSBhIG5hbWUsIHNlZSB0aGF0IGl0IGFncmVlcyB3aXRoIHRoZSBGSUZPIHNldHRpbmdcbiAgICBpZiAodHlwZW9mIHF1ZXVlTmFtZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgaWYgKGZpZm9RdWV1ZSAmJiAhcXVldWVOYW1lLmVuZHNXaXRoKFwiLmZpZm9cIikpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcIkZJRk8gcXVldWUgbmFtZXMgbXVzdCBlbmQgaW4gJy5maWZvJ1wiLCB0aGlzKTtcbiAgICAgIH1cbiAgICAgIGlmICghZmlmb1F1ZXVlICYmIHF1ZXVlTmFtZS5lbmRzV2l0aChcIi5maWZvXCIpKSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgXCJOb24tRklGTyBxdWV1ZSBuYW1lIG1heSBub3QgZW5kIGluICcuZmlmbydcIixcbiAgICAgICAgICB0aGlzLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcm9wcy5jb250ZW50QmFzZWREZWR1cGxpY2F0aW9uICYmICFmaWZvUXVldWUpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIFwiQ29udGVudC1iYXNlZCBkZWR1cGxpY2F0aW9uIGNhbiBvbmx5IGJlIGRlZmluZWQgZm9yIEZJRk8gcXVldWVzXCIsXG4gICAgICAgIHRoaXMsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5kZWR1cGxpY2F0aW9uU2NvcGUgJiYgIWZpZm9RdWV1ZSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgXCJEZWR1cGxpY2F0aW9uIHNjb3BlIGNhbiBvbmx5IGJlIGRlZmluZWQgZm9yIEZJRk8gcXVldWVzXCIsXG4gICAgICAgIHRoaXMsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5maWZvVGhyb3VnaHB1dExpbWl0ICYmICFmaWZvUXVldWUpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIFwiRklGTyB0aHJvdWdocHV0IGxpbWl0IGNhbiBvbmx5IGJlIGRlZmluZWQgZm9yIEZJRk8gcXVldWVzXCIsXG4gICAgICAgIHRoaXMsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50QmFzZWREZWR1cGxpY2F0aW9uOiBwcm9wcy5jb250ZW50QmFzZWREZWR1cGxpY2F0aW9uLFxuICAgICAgZGVkdXBsaWNhdGlvblNjb3BlOiBwcm9wcy5kZWR1cGxpY2F0aW9uU2NvcGUsXG4gICAgICBmaWZvVGhyb3VnaHB1dExpbWl0OiBwcm9wcy5maWZvVGhyb3VnaHB1dExpbWl0LFxuICAgICAgZmlmb1F1ZXVlLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiBpYW0gc3RhdGVtZW50IHRvIGVuZm9yY2UgZW5jcnlwdGlvbiBvZiBkYXRhIGluIHRyYW5zaXQuXG4gICAqL1xuICBwcml2YXRlIGVuZm9yY2VTU0xTdGF0ZW1lbnQoKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50ID0gbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgYWN0aW9uczogW1wic3FzOipcIl0sXG4gICAgICBjb25kaXRpb246IFtcbiAgICAgICAge1xuICAgICAgICAgIHRlc3Q6IFwiQm9vbFwiLFxuICAgICAgICAgIHZhcmlhYmxlOiBcImF3czpTZWN1cmVUcmFuc3BvcnRcIixcbiAgICAgICAgICB2YWx1ZXM6IFtcImZhbHNlXCJdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5ERU5ZLFxuICAgICAgcmVzb3VyY2VzOiBbdGhpcy5xdWV1ZUFybl0sXG4gICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5BbnlQcmluY2lwYWwoKV0sXG4gICAgfSk7XG4gICAgdGhpcy5hZGRUb1Jlc291cmNlUG9saWN5KHN0YXRlbWVudCk7XG4gIH1cbn1cblxuaW50ZXJmYWNlIEZpZm9Qcm9wcyB7XG4gIHJlYWRvbmx5IGZpZm9RdWV1ZT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGNvbnRlbnRCYXNlZERlZHVwbGljYXRpb24/OiBib29sZWFuO1xuICByZWFkb25seSBkZWR1cGxpY2F0aW9uU2NvcGU/OiBEZWR1cGxpY2F0aW9uU2NvcGU7XG4gIHJlYWRvbmx5IGZpZm9UaHJvdWdocHV0TGltaXQ/OiBGaWZvVGhyb3VnaHB1dExpbWl0O1xufVxuXG5pbnRlcmZhY2UgRW5jcnlwdGlvblByb3BzIHtcbiAgcmVhZG9ubHkga21zTWFzdGVyS2V5SWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGttc0RhdGFLZXlSZXVzZVBlcmlvZFNlY29uZHM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHNxc01hbmFnZWRTc2VFbmFibGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEZWFkIGxldHRlciBxdWV1ZSBzZXR0aW5nc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERlYWRMZXR0ZXJRdWV1ZSB7XG4gIC8qKlxuICAgKiBUaGUgZGVhZC1sZXR0ZXIgcXVldWUgdG8gd2hpY2ggQW1hem9uIFNRUyBtb3ZlcyBtZXNzYWdlcyBhZnRlciB0aGUgdmFsdWUgb2YgbWF4UmVjZWl2ZUNvdW50IGlzIGV4Y2VlZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcXVldWU6IElRdWV1ZTtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiB0aW1lcyBhIG1lc3NhZ2UgY2FuIGJlIHVuc3VjY2Vzc2Z1bGx5IGRlcXVldWVkIGJlZm9yZSBiZWluZyBtb3ZlZCB0byB0aGUgZGVhZC1sZXR0ZXIgcXVldWUuXG4gICAqL1xuICByZWFkb25seSBtYXhSZWNlaXZlQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQZXJtaXNzaW9uIHNldHRpbmdzIGZvciB0aGUgZGVhZCBsZXR0ZXIgc291cmNlIHF1ZXVlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVkcml2ZUFsbG93UG9saWN5IHtcbiAgLyoqXG4gICAqIFBlcm1pc3Npb24gc2V0dGluZ3MgZm9yIHNvdXJjZSBxdWV1ZXMgdGhhdCBjYW4gZGVzaWduYXRlIHRoaXMgcXVldWUgYXMgdGhlaXIgZGVhZC1sZXR0ZXIgcXVldWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYFJlZHJpdmVQZXJtaXNzaW9uLkJZX1FVRVVFYCBpZiBgc291cmNlUXVldWVzYCBpcyBzcGVjaWZpZWQsYFJlZHJpdmVQZXJtaXNzaW9uLkFMTE9XX0FMTGAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVkcml2ZVBlcm1pc3Npb24/OiBSZWRyaXZlUGVybWlzc2lvbjtcblxuICAvKipcbiAgICogU291cmNlIHF1ZXVlcyB0aGF0IGNhbiBkZXNpZ25hdGUgdGhpcyBxdWV1ZSBhcyB0aGVpciBkZWFkLWxldHRlciBxdWV1ZS5cbiAgICpcbiAgICogV2hlbiBgcmVkcml2ZVBlcm1pc3Npb25gIGlzIHNldCB0byBgUmVkcml2ZVBlcm1pc3Npb24uQllfUVVFVUVgLCB0aGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZC5cbiAgICpcbiAgICogWW91IGNhbiBzcGVjaWZ5IHVwIHRvIDEwIHNvdXJjZSBxdWV1ZXMuXG4gICAqIFRvIGFsbG93IG1vcmUgdGhhbiAxMCBzb3VyY2UgcXVldWVzIHRvIHNwZWNpZnkgZGVhZC1sZXR0ZXIgcXVldWVzLCBzZXQgdGhlIGByZWRyaXZlUGVybWlzc2lvbmAgdG9cbiAgICogYFJlZHJpdmVQZXJtaXNzaW9uLkFMTE9XX0FMTGAuXG4gICAqXG4gICAqIFdoZW4gYHJlZHJpdmVQZXJtaXNzaW9uYCBpcyBlaXRoZXIgYFJlZHJpdmVQZXJtaXNzaW9uLkFMTE9XX0FMTGAgb3IgYFJlZHJpdmVQZXJtaXNzaW9uLkRFTllfQUxMYCxcbiAgICogdGhpcyBwYXJhbWV0ZXIgY2Fubm90IGJlIHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBSZXF1aXJlZCB3aGVuIGByZWRyaXZlUGVybWlzc2lvbmDCoGlzIGBSZWRyaXZlUGVybWlzc2lvbi5CWV9RVUVVRWAsIGNhbm5vdCBiZSBkZWZpbmVkIG90aGVyd2lzZS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZVF1ZXVlcz86IElRdWV1ZVtdO1xufVxuXG4vKipcbiAqIFdoYXQga2luZCBvZiBkZWR1cGxpY2F0aW9uIHNjb3BlIHRvIGFwcGx5XG4gKi9cbmV4cG9ydCBlbnVtIERlZHVwbGljYXRpb25TY29wZSB7XG4gIC8qKlxuICAgKiBEZWR1cGxpY2F0aW9uIG9jY3VycyBhdCB0aGUgbWVzc2FnZSBncm91cCBsZXZlbFxuICAgKi9cbiAgTUVTU0FHRV9HUk9VUCA9IFwibWVzc2FnZUdyb3VwXCIsXG4gIC8qKlxuICAgKiBEZWR1cGxpY2F0aW9uIG9jY3VycyBhdCB0aGUgbWVzc2FnZSBxdWV1ZSBsZXZlbFxuICAgKi9cbiAgUVVFVUUgPSBcInF1ZXVlXCIsXG59XG5cbi8qKlxuICogV2hldGhlciB0aGUgRklGTyBxdWV1ZSB0aHJvdWdocHV0IHF1b3RhIGFwcGxpZXMgdG8gdGhlIGVudGlyZSBxdWV1ZSBvciBwZXIgbWVzc2FnZSBncm91cFxuICovXG5leHBvcnQgZW51bSBGaWZvVGhyb3VnaHB1dExpbWl0IHtcbiAgLyoqXG4gICAqIFRocm91Z2hwdXQgcXVvdGEgYXBwbGllcyBwZXIgcXVldWVcbiAgICovXG4gIFBFUl9RVUVVRSA9IFwicGVyUXVldWVcIixcbiAgLyoqXG4gICAqIFRocm91Z2hwdXQgcXVvdGEgYXBwbGllcyBwZXIgbWVzc2FnZSBncm91cCBpZFxuICAgKi9cbiAgUEVSX01FU1NBR0VfR1JPVVBfSUQgPSBcInBlck1lc3NhZ2VHcm91cElkXCIsXG59XG5cbi8qKlxuICogVGhlIHBlcm1pc3Npb24gdHlwZSB0aGF0IGRlZmluZXMgd2hpY2ggc291cmNlIHF1ZXVlcyBjYW4gc3BlY2lmeSB0aGUgY3VycmVudCBxdWV1ZSBhcyB0aGUgZGVhZC1sZXR0ZXIgcXVldWVcbiAqL1xuZXhwb3J0IGVudW0gUmVkcml2ZVBlcm1pc3Npb24ge1xuICAvKipcbiAgICogQW55IHNvdXJjZSBxdWV1ZXMgaW4gdGhpcyBBV1MgYWNjb3VudCBpbiB0aGUgc2FtZSBSZWdpb24gY2FuIHNwZWNpZnkgdGhpcyBxdWV1ZSBhcyB0aGUgZGVhZC1sZXR0ZXIgcXVldWVcbiAgICovXG4gIEFMTE9XX0FMTCA9IFwiYWxsb3dBbGxcIixcbiAgLyoqXG4gICAqIE5vIHNvdXJjZSBxdWV1ZXMgY2FuIHNwZWNpZnkgdGhpcyBxdWV1ZSBhcyB0aGUgZGVhZC1sZXR0ZXIgcXVldWVcbiAgICovXG4gIERFTllfQUxMID0gXCJkZW55QWxsXCIsXG4gIC8qKlxuICAgKiBPbmx5IHF1ZXVlcyBzcGVjaWZpZWQgYnkgdGhlIGBzb3VyY2VRdWV1ZUFybnNgIHBhcmFtZXRlciBjYW4gc3BlY2lmeSB0aGlzIHF1ZXVlIGFzIHRoZSBkZWFkLWxldHRlciBxdWV1ZVxuICAgKi9cbiAgQllfUVVFVUUgPSBcImJ5UXVldWVcIixcbn1cblxuLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4yMzIuMi9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3Mtc3FzL2xpYi92YWxpZGF0ZS1xdWV1ZS1wcm9wcy50c1xuXG5mdW5jdGlvbiB2YWxpZGF0ZVJhbmdlKFxuICB2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICBtaW5WYWx1ZTogbnVtYmVyLFxuICBtYXhWYWx1ZTogbnVtYmVyLFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgdmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICFUb2tlbi5pc1VucmVzb2x2ZWQodmFsdWUpICYmXG4gICAgKHZhbHVlIDwgbWluVmFsdWUgfHwgdmFsdWUgPiBtYXhWYWx1ZSlcbiAgKTtcbn1cblxuY29uc3QgcXVldWVWYWxpZGF0aW9uUnVsZXM6IFZhbGlkYXRpb25SdWxlPFF1ZXVlUHJvcHM+W10gPSBbXG4gIHtcbiAgICBjb25kaXRpb246IChwcm9wcykgPT5cbiAgICAgIHZhbGlkYXRlUmFuZ2UocHJvcHMuZGVsaXZlcnlEZWxheT8udG9TZWNvbmRzKCksIDAsIDkwMCksXG4gICAgbWVzc2FnZTogKHByb3BzKSA9PlxuICAgICAgYGRlbGl2ZXJ5IGRlbGF5IG11c3QgYmUgYmV0d2VlbiAwIGFuZCA5MDAgc2Vjb25kcywgYnV0ICR7cHJvcHMuZGVsaXZlcnlEZWxheT8udG9TZWNvbmRzKCl9IHdhcyBwcm92aWRlZGAsXG4gIH0sXG4gIHtcbiAgICBjb25kaXRpb246IChwcm9wcykgPT5cbiAgICAgIHZhbGlkYXRlUmFuZ2UocHJvcHMubWF4TWVzc2FnZVNpemVCeXRlcywgMV8wMjQsIDFfMDQ4XzU3NiksXG4gICAgbWVzc2FnZTogKHByb3BzKSA9PlxuICAgICAgYG1heGltdW0gbWVzc2FnZSBzaXplIG11c3QgYmUgYmV0d2VlbiAxLDAyNCBhbmQgMSwwNDgsNTc2IGJ5dGVzLCBidXQgJHtwcm9wcy5tYXhNZXNzYWdlU2l6ZUJ5dGVzfSB3YXMgcHJvdmlkZWRgLFxuICB9LFxuICB7XG4gICAgY29uZGl0aW9uOiAocHJvcHMpID0+XG4gICAgICB2YWxpZGF0ZVJhbmdlKHByb3BzLnJldGVudGlvblBlcmlvZD8udG9TZWNvbmRzKCksIDYwLCAxXzIwOV82MDApLFxuICAgIG1lc3NhZ2U6IChwcm9wcykgPT5cbiAgICAgIGBtZXNzYWdlIHJldGVudGlvbiBwZXJpb2QgbXVzdCBiZSBiZXR3ZWVuIDYwIGFuZCAxLDIwOSw2MDAgc2Vjb25kcywgYnV0ICR7cHJvcHMucmV0ZW50aW9uUGVyaW9kPy50b1NlY29uZHMoKX0gd2FzIHByb3ZpZGVkYCxcbiAgfSxcbiAge1xuICAgIGNvbmRpdGlvbjogKHByb3BzKSA9PlxuICAgICAgdmFsaWRhdGVSYW5nZShwcm9wcy5yZWNlaXZlTWVzc2FnZVdhaXRUaW1lPy50b1NlY29uZHMoKSwgMCwgMjApLFxuICAgIG1lc3NhZ2U6IChwcm9wcykgPT5cbiAgICAgIGByZWNlaXZlIHdhaXQgdGltZSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAgc2Vjb25kcywgYnV0ICR7cHJvcHMucmVjZWl2ZU1lc3NhZ2VXYWl0VGltZT8udG9TZWNvbmRzKCl9IHdhcyBwcm92aWRlZGAsXG4gIH0sXG4gIHtcbiAgICBjb25kaXRpb246IChwcm9wcykgPT5cbiAgICAgIHZhbGlkYXRlUmFuZ2UocHJvcHMudmlzaWJpbGl0eVRpbWVvdXQ/LnRvU2Vjb25kcygpLCAwLCA0M18yMDApLFxuICAgIG1lc3NhZ2U6IChwcm9wcykgPT5cbiAgICAgIGB2aXNpYmlsaXR5IHRpbWVvdXQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDQzLDIwMCBzZWNvbmRzLCBidXQgJHtwcm9wcy52aXNpYmlsaXR5VGltZW91dD8udG9TZWNvbmRzKCl9IHdhcyBwcm92aWRlZGAsXG4gIH0sXG4gIHtcbiAgICBjb25kaXRpb246IChwcm9wcykgPT5cbiAgICAgIHZhbGlkYXRlUmFuZ2UoXG4gICAgICAgIHByb3BzLmRlYWRMZXR0ZXJRdWV1ZT8ubWF4UmVjZWl2ZUNvdW50LFxuICAgICAgICAxLFxuICAgICAgICBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcbiAgICAgICksXG4gICAgbWVzc2FnZTogKHByb3BzKSA9PlxuICAgICAgYGRlYWQgbGV0dGVyIHRhcmdldCBtYXhpbXVtIHJlY2VpdmUgY291bnQgbXVzdCBiZSAxIG9yIG1vcmUsIGJ1dCAke3Byb3BzLmRlYWRMZXR0ZXJRdWV1ZT8ubWF4UmVjZWl2ZUNvdW50fSB3YXMgcHJvdmlkZWRgLFxuICB9LFxuXTtcblxuY29uc3QgcmVkcml2ZVZhbGlkYXRpb25SdWxlczogVmFsaWRhdGlvblJ1bGU8UmVkcml2ZUFsbG93UG9saWN5PltdID0gW1xuICB7XG4gICAgY29uZGl0aW9uOiAoeyByZWRyaXZlUGVybWlzc2lvbiwgc291cmNlUXVldWVzIH0pID0+XG4gICAgICByZWRyaXZlUGVybWlzc2lvbiA9PT0gUmVkcml2ZVBlcm1pc3Npb24uQllfUVVFVUUgJiZcbiAgICAgICghc291cmNlUXVldWVzIHx8IHNvdXJjZVF1ZXVlcy5sZW5ndGggPT09IDApLFxuICAgIG1lc3NhZ2U6ICgpID0+XG4gICAgICBcIkF0IGxlYXN0IG9uZSBzb3VyY2UgcXVldWUgbXVzdCBiZSBzcGVjaWZpZWQgd2hlbiBSZWRyaXZlUGVybWlzc2lvbiBpcyBzZXQgdG8gJ2J5UXVldWUnXCIsXG4gIH0sXG4gIHtcbiAgICBjb25kaXRpb246ICh7IHJlZHJpdmVQZXJtaXNzaW9uLCBzb3VyY2VRdWV1ZXMgfSkgPT5cbiAgICAgICEhKFxuICAgICAgICByZWRyaXZlUGVybWlzc2lvbiA9PT0gUmVkcml2ZVBlcm1pc3Npb24uQllfUVVFVUUgJiZcbiAgICAgICAgc291cmNlUXVldWVzICYmXG4gICAgICAgIHNvdXJjZVF1ZXVlcy5sZW5ndGggPiAxMFxuICAgICAgKSxcbiAgICBtZXNzYWdlOiAoKSA9PlxuICAgICAgXCJVcCB0byAxMCBzb3VyY2VRdWV1ZXMgY2FuIGJlIHNwZWNpZmllZC4gU2V0IFJlZHJpdmVQZXJtaXNzaW9uIHRvICdhbGxvd0FsbCcgdG8gc3BlY2lmeSBtb3JlXCIsXG4gIH0sXG4gIHtcbiAgICBjb25kaXRpb246ICh7IHJlZHJpdmVQZXJtaXNzaW9uLCBzb3VyY2VRdWV1ZXMgfSkgPT5cbiAgICAgICEhKFxuICAgICAgICAocmVkcml2ZVBlcm1pc3Npb24gPT09IFJlZHJpdmVQZXJtaXNzaW9uLkFMTE9XX0FMTCB8fFxuICAgICAgICAgIHJlZHJpdmVQZXJtaXNzaW9uID09PSBSZWRyaXZlUGVybWlzc2lvbi5ERU5ZX0FMTCkgJiZcbiAgICAgICAgc291cmNlUXVldWVzXG4gICAgICApLFxuICAgIG1lc3NhZ2U6ICgpID0+XG4gICAgICBcInNvdXJjZVF1ZXVlcyBjYW5ub3QgYmUgY29uZmlndXJlZCB3aGVuIFJlZHJpdmVQZXJtaXNzaW9uIGlzIHNldCB0byAnYWxsb3dBbGwnIG9yICdkZW55QWxsJ1wiLFxuICB9LFxuXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUXVldWVQcm9wcyhzY29wZTogQ29uc3RydWN0LCBwcm9wczogUXVldWVQcm9wcykge1xuICB2YWxpZGF0ZUFsbFByb3BzKHNjb3BlLCBRdWV1ZS5uYW1lLCBwcm9wcywgcXVldWVWYWxpZGF0aW9uUnVsZXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVSZWRyaXZlQWxsb3dQb2xpY3koXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIHBvbGljeTogUmVkcml2ZUFsbG93UG9saWN5LFxuKSB7XG4gIHZhbGlkYXRlQWxsUHJvcHMoc2NvcGUsIFF1ZXVlLm5hbWUsIHBvbGljeSwgcmVkcml2ZVZhbGlkYXRpb25SdWxlcyk7XG59XG4iXX0=
358
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL25vdGlmeS9xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBaXVCQSxnREFFQztBQUVELGdFQUtDOztBQTF1QkQseUZBQXlGO0FBRXpGLHNEQUErQztBQUMvQyxpQ0FBOEI7QUFHOUIseUNBQStDO0FBQy9DLDZEQUEwRTtBQUMxRSxnQ0FBbUM7QUFDbkMsNkNBQWtFO0FBRWxFLDRDQUF3QztBQUN4QyxxQ0FBcUM7QUFDckMsOEJBQThCO0FBbU05Qjs7R0FFRztBQUNILE1BQWEsS0FBTSxTQUFRLHNCQUFTO0lBT2xDOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQ3hCLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixRQUFnQjtRQUVoQixNQUFNLEtBQUssR0FBRyxvQkFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxlQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2RSxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQ3JDLE1BQU0sUUFBUSxHQUFHLGVBQWUsU0FBUyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxPQUFPLElBQUksU0FBUyxFQUFFLENBQUM7UUFFeEcsTUFBTSxNQUFPLFNBQVEsc0JBQVM7WUFBOUI7O2dCQUNrQixhQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsNENBQTRDO2dCQUNqRSxhQUFRLEdBQUcsUUFBUSxDQUFDO2dCQUNwQixjQUFTLEdBQUcsU0FBUyxDQUFDO2dCQUN0Qix3QkFBbUIsR0FBRyxTQUFTLENBQUM7Z0JBQ2hDLFNBQUksR0FBWSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JDLG1CQUFjLEdBQUcsU0FBUyxDQUFDO2dCQUV4QixxQkFB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SSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztRQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQ1osd0ZBQXdGO0tBQzNGO0lBQ0Q7UUFDRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FDakQsQ0FBQyxDQUFDLENBQ0EsaUJBQWlCLEtBQUssaUJBQWlCLENBQUMsUUFBUTtZQUNoRCxZQUFZO1lBQ1osWUFBWSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQ3pCO1FBQ0gsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUNaLDZGQUE2RjtLQUNoRztJQUNEO1FBQ0UsU0FBUyxFQUFFLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQ2pELENBQUMsQ0FBQyxDQUNBLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLENBQUMsU0FBUztZQUNoRCxpQkFBaUIsS0FBSyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7WUFDbkQsWUFBWSxDQUNiO1FBQ0gsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUNaLDRGQUE0RjtLQUMvRjtDQUNGLENBQUM7QUFFRixTQUFnQixrQkFBa0IsQ0FBQyxLQUFnQixFQUFFLEtBQWlCO0lBQ3BFLElBQUEsbUNBQWdCLEVBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFDbkUsQ0FBQztBQUVELFNBQWdCLDBCQUEwQixDQUN4QyxLQUFnQixFQUNoQixNQUEwQjtJQUUxQixJQUFBLG1DQUFnQixFQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0FBQ3RFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4yMzIuMi9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3Mtc3FzL2xpYi9xdWV1ZS50c1xuXG5pbXBvcnQgeyBzcXNRdWV1ZSB9IGZyb20gXCJAY2RrdG4vcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBUb2tlbiB9IGZyb20gXCJjZGt0blwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2R1cmF0aW9uXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tIFwiLi4vLi4vZXJyb3JzXCI7XG5pbXBvcnQgeyB2YWxpZGF0ZUFsbFByb3BzLCBWYWxpZGF0aW9uUnVsZSB9IGZyb20gXCIuLi8uLi9oZWxwZXJzLWludGVybmFsXCI7XG5pbXBvcnQgeyBBcm5Gb3JtYXQgfSBmcm9tIFwiLi4vYXJuXCI7XG5pbXBvcnQgeyBJUXVldWUsIFF1ZXVlQmFzZSwgUXVldWVFbmNyeXB0aW9uIH0gZnJvbSBcIi4vcXVldWUtYmFzZVwiO1xuaW1wb3J0IHsgQXdzQ29uc3RydWN0UHJvcHMgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSBcIi4uL2VuY3J5cHRpb25cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vaWFtXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBuZXcgUXVldWVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdWV1ZVByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogUXVldWUgTmFtZSBwcmVmaXhcbiAgICpcbiAgICogUXVldWUgbmFtZXMgbXVzdCBiZSBtYWRlIHVwIG9mIG9ubHkgdXBwZXJjYXNlIGFuZCBsb3dlcmNhc2UgQVNDSUkgbGV0dGVycyxcbiAgICogbnVtYmVycywgdW5kZXJzY29yZXMsIGFuZCBoeXBoZW5zLCBhbmQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDgwIGNoYXJhY3RlcnNcbiAgICogbG9uZy5cbiAgICpcbiAgICogVGVycmFmb3JtIFByZWZpeGVzIG11c3QgcmVzZXJ2ZSAyNiBjaGFyYWN0ZXJzIGZvciB0aGUgdGVycmFmb3JtIGdlbmVyYXRlZCBzdWZmaXguXG4gICAqXG4gICAqIEZvciBhIEZJRk8gKGZpcnN0LWluLWZpcnN0LW91dCkgcXVldWUsIHRoZSBuYW1lIG11c3QgZW5kIHdpdGggdGhlIC5maWZvXG4gICAqIEBkZWZhdWx0IC0gR3JpZFVVSUQgKyBTdGFjayBVbmlxdWUgTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgcXVldWVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHNlY29uZHMgdGhhdCBBbWF6b24gU1FTIHJldGFpbnMgYSBtZXNzYWdlLlxuICAgKlxuICAgKiBZb3UgY2FuIHNwZWNpZnkgYW4gaW50ZWdlciB2YWx1ZSBmcm9tIDYwIHNlY29uZHMgKDEgbWludXRlKSB0byAxMjA5NjAwXG4gICAqIHNlY29uZHMgKDE0IGRheXMpLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAzNDU2MDAgc2Vjb25kcyAoNCBkYXlzKS5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uZGF5cyg0KVxuICAgKi9cbiAgcmVhZG9ubHkgcmV0ZW50aW9uUGVyaW9kPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGluIHNlY29uZHMgdGhhdCB0aGUgZGVsaXZlcnkgb2YgYWxsIG1lc3NhZ2VzIGluIHRoZSBxdWV1ZSBpcyBkZWxheWVkLlxuICAgKlxuICAgKiBZb3UgY2FuIHNwZWNpZnkgYW4gaW50ZWdlciB2YWx1ZSBvZiAwIHRvIDkwMCAoMTUgbWludXRlcykuIFRoZSBkZWZhdWx0XG4gICAqIHZhbHVlIGlzIDAuXG4gICAqXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IGRlbGl2ZXJ5RGVsYXk/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIGxpbWl0IG9mIGhvdyBtYW55IGJ5dGVzIHRoYXQgYSBtZXNzYWdlIGNhbiBjb250YWluIGJlZm9yZSBBbWF6b24gU1FTIHJlamVjdHMgaXQuXG4gICAqXG4gICAqIFlvdSBjYW4gc3BlY2lmeSBhbiBpbnRlZ2VyIHZhbHVlIGZyb20gMTAyNCBieXRlcyAoMSBLaUIpIHRvIDEwNDg1NzYgYnl0ZXNcbiAgICogKDEgTWlCKS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgMTA0ODU3NiAoMSBNaUIpLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxTWlCXG4gICAqL1xuICByZWFkb25seSBtYXhNZXNzYWdlU2l6ZUJ5dGVzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IHdhaXQgdGltZSBmb3IgUmVjZWl2ZU1lc3NhZ2UgY2FsbHMuXG4gICAqXG4gICAqIERvZXMgbm90IHdhaXQgaWYgc2V0IHRvIDAsIG90aGVyd2lzZSB3YWl0cyB0aGlzIGFtb3VudCBvZiBzZWNvbmRzXG4gICAqIGJ5IGRlZmF1bHQgZm9yIG1lc3NhZ2VzIHRvIGFycml2ZS5cbiAgICpcbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBBbWF6b24gU1FTIExvbmcgUG9sbC5cbiAgICpcbiAgICogIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IHJlY2VpdmVNZXNzYWdlV2FpdFRpbWU/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGltZW91dCBvZiBwcm9jZXNzaW5nIGEgc2luZ2xlIG1lc3NhZ2UuXG4gICAqXG4gICAqIEFmdGVyIGRlcXVldWluZywgdGhlIHByb2Nlc3NvciBoYXMgdGhpcyBtdWNoIHRpbWUgdG8gaGFuZGxlIHRoZSBtZXNzYWdlXG4gICAqIGFuZCBkZWxldGUgaXQgZnJvbSB0aGUgcXVldWUgYmVmb3JlIGl0IGJlY29tZXMgdmlzaWJsZSBhZ2FpbiBmb3IgZGVxdWV1ZWluZ1xuICAgKiBieSBhbm90aGVyIHByb2Nlc3Nvci5cbiAgICpcbiAgICogVmFsdWVzIG11c3QgYmUgZnJvbSAwIHRvIDQzMjAwIHNlY29uZHMgKDEyIGhvdXJzKS4gSWYgeW91IGRvbid0IHNwZWNpZnlcbiAgICogYSB2YWx1ZSwgQVdTIENsb3VkRm9ybWF0aW9uIHVzZXMgdGhlIGRlZmF1bHQgdmFsdWUgb2YgMzAgc2Vjb25kcy5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uc2Vjb25kcygzMClcbiAgICovXG4gIHJlYWRvbmx5IHZpc2liaWxpdHlUaW1lb3V0PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFNlbmQgbWVzc2FnZXMgdG8gdGhpcyBxdWV1ZSBpZiB0aGV5IHdlcmUgdW5zdWNjZXNzZnVsbHkgZGVxdWV1ZWQgYSBudW1iZXIgb2YgdGltZXMuXG4gICAqXG4gICAqIFNlZSBbQVdTIERvY3NdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NTaW1wbGVRdWV1ZVNlcnZpY2UvbGF0ZXN0L1NRU0RldmVsb3Blckd1aWRlL3Nxcy1kZWFkLWxldHRlci1xdWV1ZXMuaHRtbClcbiAgICpcbiAgICogQGRlZmF1bHQgbm8gZGVhZC1sZXR0ZXIgcXVldWVcbiAgICpcbiAgICoge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzL3Jlc291cmNlcy9zcXNfcXVldWUjcmVkcml2ZV9wb2xpY3kgU3FzUXVldWUjcmVkcml2ZV9wb2xpY3l9XG4gICAqL1xuICByZWFkb25seSBkZWFkTGV0dGVyUXVldWU/OiBEZWFkTGV0dGVyUXVldWU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNvbnRlbnRzIG9mIHRoZSBxdWV1ZSBhcmUgZW5jcnlwdGVkLCBhbmQgYnkgd2hhdCB0eXBlIG9mIGtleS5cbiAgICpcbiAgICogQmUgYXdhcmUgdGhhdCBlbmNyeXB0aW9uIGlzIG5vdCBhdmFpbGFibGUgaW4gYWxsIHJlZ2lvbnMsIHBsZWFzZSBzZWUgdGhlIGRvY3NcbiAgICogZm9yIGN1cnJlbnQgYXZhaWxhYmlsaXR5IGRldGFpbHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFNRU19NQU5BR0VEIChTU0UtU1FTKSBmb3IgbmV3bHkgY3JlYXRlZCBxdWV1ZXNcbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBRdWV1ZUVuY3J5cHRpb247XG5cbiAgLyoqXG4gICAqIEV4dGVybmFsIEtNUyBrZXkgdG8gdXNlIGZvciBxdWV1ZSBlbmNyeXB0aW9uLlxuICAgKlxuICAgKiBJbmRpdmlkdWFsIG1lc3NhZ2VzIHdpbGwgYmUgZW5jcnlwdGVkIHVzaW5nIGRhdGEga2V5cy4gVGhlIGRhdGEga2V5cyBpblxuICAgKiB0dXJuIHdpbGwgYmUgZW5jcnlwdGVkIHVzaW5nIHRoaXMga2V5LCBhbmQgcmV1c2VkIGZvciBhIG1heGltdW0gb2ZcbiAgICogYGRhdGFLZXlSZXVzZVNlY3NgIHNlY29uZHMuXG4gICAqXG4gICAqIElmIHRoZSAnZW5jcnlwdGlvbk1hc3RlcktleScgcHJvcGVydHkgaXMgc2V0LCAnZW5jcnlwdGlvbicgdHlwZSB3aWxsIGJlXG4gICAqIGltcGxpY2l0bHkgc2V0IHRvIFwiS01TXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IElmIGVuY3J5cHRpb24gaXMgc2V0IHRvIEtNUyBhbmQgbm90IHNwZWNpZmllZCwgYSBrZXkgd2lsbCBiZSBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbk1hc3RlcktleT86IGttcy5JS2V5O1xuXG4gIC8qKlxuICAgKiBUaGUgbGVuZ3RoIG9mIHRpbWUgdGhhdCBBbWF6b24gU1FTIHJldXNlcyBhIGRhdGEga2V5IGJlZm9yZSBjYWxsaW5nIEtNUyBhZ2Fpbi5cbiAgICpcbiAgICogVGhlIHZhbHVlIG11c3QgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDYwICgxIG1pbnV0ZSkgYW5kIDg2LDQwMCAoMjRcbiAgICogaG91cnMpLiBUaGUgZGVmYXVsdCBpcyAzMDAgKDUgbWludXRlcykuXG4gICAqXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLm1pbnV0ZXMoNSlcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFLZXlSZXVzZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgYSBmaXJzdC1pbi1maXJzdC1vdXQgKEZJRk8pIHF1ZXVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZSwgdW5sZXNzIHF1ZXVlTmFtZSBlbmRzIGluICcuZmlmbycgb3IgJ2NvbnRlbnRCYXNlZERlZHVwbGljYXRpb24nIGlzIHRydWUuXG4gICAqL1xuICByZWFkb25seSBmaWZvPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZW5hYmxlIGNvbnRlbnQtYmFzZWQgZGVkdXBsaWNhdGlvbi5cbiAgICpcbiAgICogRHVyaW5nIHRoZSBkZWR1cGxpY2F0aW9uIGludGVydmFsICg1IG1pbnV0ZXMpLCBBbWF6b24gU1FTIHRyZWF0c1xuICAgKiBtZXNzYWdlcyB0aGF0IGFyZSBzZW50IHdpdGggaWRlbnRpY2FsIGNvbnRlbnQgKGV4Y2x1ZGluZyBhdHRyaWJ1dGVzKSBhc1xuICAgKiBkdXBsaWNhdGVzIGFuZCBkZWxpdmVycyBvbmx5IG9uZSBjb3B5IG9mIHRoZSBtZXNzYWdlLlxuICAgKlxuICAgKiBJZiB5b3UgZG9uJ3QgZW5hYmxlIGNvbnRlbnQtYmFzZWQgZGVkdXBsaWNhdGlvbiBhbmQgeW91IHdhbnQgdG8gZGVkdXBsaWNhdGVcbiAgICogbWVzc2FnZXMsIHByb3ZpZGUgYW4gZXhwbGljaXQgZGVkdXBsaWNhdGlvbiBJRCBpbiB5b3VyIFNlbmRNZXNzYWdlKCkgY2FsbC5cbiAgICpcbiAgICogKE9ubHkgYXBwbGllcyB0byBGSUZPIHF1ZXVlcy4pXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjb250ZW50QmFzZWREZWR1cGxpY2F0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRm9yIGhpZ2ggdGhyb3VnaHB1dCBmb3IgRklGTyBxdWV1ZXMsIHNwZWNpZmllcyB3aGV0aGVyIG1lc3NhZ2UgZGVkdXBsaWNhdGlvblxuICAgKiBvY2N1cnMgYXQgdGhlIG1lc3NhZ2UgZ3JvdXAgb3IgcXVldWUgbGV2ZWwuXG4gICAqXG4gICAqIChPbmx5IGFwcGxpZXMgdG8gRklGTyBxdWV1ZXMuKVxuICAgKlxuICAgKiBAZGVmYXVsdCBEZWR1cGxpY2F0aW9uU2NvcGUuUVVFVUVcbiAgICovXG4gIHJlYWRvbmx5IGRlZHVwbGljYXRpb25TY29wZT86IERlZHVwbGljYXRpb25TY29wZTtcblxuICAvKipcbiAgICogRm9yIGhpZ2ggdGhyb3VnaHB1dCBmb3IgRklGTyBxdWV1ZXMsIHNwZWNpZmllcyB3aGV0aGVyIHRoZSBGSUZPIHF1ZXVlXG4gICAqIHRocm91Z2hwdXQgcXVvdGEgYXBwbGllcyB0byB0aGUgZW50aXJlIHF1ZXVlIG9yIHBlciBtZXNzYWdlIGdyb3VwLlxuICAgKlxuICAgKiAoT25seSBhcHBsaWVzIHRvIEZJRk8gcXVldWVzLilcbiAgICpcbiAgICogQGRlZmF1bHQgRmlmb1Rocm91Z2hwdXRMaW1pdC5QRVJfUVVFVUVcbiAgICovXG4gIHJlYWRvbmx5IGZpZm9UaHJvdWdocHV0TGltaXQ/OiBGaWZvVGhyb3VnaHB1dExpbWl0O1xuXG4gIC8qKlxuICAgKiBQb2xpY3kgdG8gYXBwbHkgd2hlbiB0aGUgcXVldWUgaXMgcmVtb3ZlZCBmcm9tIHRoZSBzdGFja1xuICAgKlxuICAgKiBFdmVuIHRob3VnaCBxdWV1ZXMgYXJlIHRlY2huaWNhbGx5IHN0YXRlZnVsLCB0aGVpciBjb250ZW50cyBhcmUgdHJhbnNpZW50IGFuZCBpdFxuICAgKiBpcyBjb21tb24gdG8gYWRkIGFuZCByZW1vdmUgUXVldWVzIHdoaWxlIHJlYXJjaGl0ZWN0aW5nIHlvdXIgYXBwbGljYXRpb24uIFRoZVxuICAgKiBkZWZhdWx0IGlzIHRoZXJlZm9yZSBgREVTVFJPWWAuIENoYW5nZSBpdCB0byBgUkVUQUlOYCBpZiB0aGUgbWVzc2FnZXMgYXJlIHNvXG4gICAqIHZhbHVhYmxlIHRoYXQgYWNjaWRlbnRhbGx5IGxvc2luZyB0aGVtIHdvdWxkIGJlIHVuYWNjZXB0YWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgUmVtb3ZhbFBvbGljeS5ERVNUUk9ZXG4gICAqL1xuICAvLyByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcblxuICAvKipcbiAgICogRW5mb3JjZSBlbmNyeXB0aW9uIG9mIGRhdGEgaW4gdHJhbnNpdC5cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTU2ltcGxlUXVldWVTZXJ2aWNlL2xhdGVzdC9TUVNEZXZlbG9wZXJHdWlkZS9zcXMtc2VjdXJpdHktYmVzdC1wcmFjdGljZXMuaHRtbCNlbmZvcmNlLWVuY3J5cHRpb24tZGF0YS1pbi10cmFuc2l0XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmZvcmNlU1NMPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHN0cmluZyB0aGF0IGluY2x1ZGVzIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgcGVybWlzc2lvbnMgZm9yIHRoZSBkZWFkLWxldHRlciBxdWV1ZVxuICAgKiByZWRyaXZlIHBlcm1pc3Npb24gYW5kIHdoaWNoIHNvdXJjZSBxdWV1ZXMgY2FuIHNwZWNpZnkgZGVhZC1sZXR0ZXIgcXVldWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEFsbCBzb3VyY2UgcXVldWVzIGNhbiBkZXNpZ25hdGUgdGhpcyBxdWV1ZSBhcyB0aGVpciBkZWFkLWxldHRlciBxdWV1ZS5cbiAgICpcbiAgICoge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzL3Jlc291cmNlcy9zcXNfcXVldWUjcmVkcml2ZV9hbGxvd19wb2xpY3kgU3FzUXVldWUjcmVkcml2ZV9hbGxvd19wb2xpY3l9XG4gICAqL1xuICByZWFkb25seSByZWRyaXZlQWxsb3dQb2xpY3k/OiBSZWRyaXZlQWxsb3dQb2xpY3k7XG59XG5cbi8qKlxuICogQSBuZXcgQW1hem9uIFNRUyBxdWV1ZVxuICovXG5leHBvcnQgY2xhc3MgUXVldWUgZXh0ZW5kcyBRdWV1ZUJhc2Uge1xuICAvKipcbiAgICogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9XG4gICAgXCJ0ZXJyYWNvbnN0cnVjdHMuYXdzLnNxcy5RdWV1ZVwiO1xuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgU1FTIHF1ZXVlIHByb3ZpZGVkIGFuIEFSTlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lXG4gICAqIEBwYXJhbSBxdWV1ZUFybiBxdWV1ZSBBUk4gKGkuZS4gYXJuOmF3czpzcXM6dXMtZWFzdC0yOjQ0NDQ1NTU1NjY2NjpxdWV1ZTEpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21RdWV1ZUFybihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcXVldWVBcm46IHN0cmluZyxcbiAgKTogSVF1ZXVlIHtcbiAgICBjb25zdCBzdGFjayA9IEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHNjb3BlKTtcbiAgICBjb25zdCBwYXJzZWRBcm4gPSBzdGFjay5zcGxpdEFybihxdWV1ZUFybiwgQXJuRm9ybWF0Lk5PX1JFU09VUkNFX05BTUUpO1xuICAgIGNvbnN0IHF1ZXVlTmFtZSA9IHBhcnNlZEFybi5yZXNvdXJjZTtcbiAgICBjb25zdCBxdWV1ZVVybCA9IGBodHRwczovL3Nxcy4ke3BhcnNlZEFybi5yZWdpb259LiR7c3RhY2sudXJsU3VmZml4fS8ke3BhcnNlZEFybi5hY2NvdW50fS8ke3F1ZXVlTmFtZX1gO1xuXG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgUXVldWVCYXNlIGltcGxlbWVudHMgSVF1ZXVlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBxdWV1ZUFybiA9IHF1ZXVlQXJuOyAvLyBhcm46YXdzOnNxczp1cy1lYXN0LTE6MTIzNDU2Nzg5MDEyOnF1ZXVlMVxuICAgICAgcHVibGljIHJlYWRvbmx5IHF1ZXVlVXJsID0gcXVldWVVcmw7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcXVldWVOYW1lID0gcXVldWVOYW1lO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGVuY3J5cHRpb25NYXN0ZXJLZXkgPSB1bmRlZmluZWQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZmlmbzogYm9vbGVhbiA9IHRoaXMuZGV0ZXJtaW5lRmlmbygpO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGVuY3J5cHRpb25UeXBlID0gdW5kZWZpbmVkO1xuXG4gICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXV0b0NyZWF0ZVBvbGljeSA9IGZhbHNlO1xuXG4gICAgICAvKipcbiAgICAgICAqIERldGVybWluZSBmaWZvIGZsYWcgYmFzZWQgb24gcXVldWVOYW1lIGFuZCBmaWZvIGF0dHJpYnV0ZVxuICAgICAgICovXG4gICAgICBwcml2YXRlIGRldGVybWluZUZpZm8oKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQodGhpcy5xdWV1ZUFybikpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHF1ZXVlTmFtZS5lbmRzV2l0aChcIi5maWZvXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkLCB7XG4gICAgICBlbnZpcm9ubWVudEZyb21Bcm46IHF1ZXVlQXJuLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBzcXNRdWV1ZS5TcXNRdWV1ZTtcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGlzIHF1ZXVlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcXVldWVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhpcyBxdWV1ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHF1ZXVlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgVVJMIG9mIHRoaXMgcXVldWVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBxdWV1ZVVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiB0aGlzIHF1ZXVlIGlzIGVuY3J5cHRlZCwgdGhpcyBpcyB0aGUgS01TIGtleS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBlbmNyeXB0aW9uTWFzdGVyS2V5Pzoga21zLklLZXk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBxdWV1ZSBpcyBhbiBBbWF6b24gU1FTIEZJRk8gcXVldWUuIElmIGZhbHNlLCB0aGlzIGlzIGEgc3RhbmRhcmQgcXVldWUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZmlmbzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY29udGVudHMgb2YgdGhlIHF1ZXVlIGFyZSBlbmNyeXB0ZWQsIGFuZCBieSB3aGF0IHR5cGUgb2Yga2V5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVuY3J5cHRpb25UeXBlPzogUXVldWVFbmNyeXB0aW9uO1xuXG4gIC8qKlxuICAgKiBJZiB0aGlzIHF1ZXVlIGlzIGNvbmZpZ3VyZWQgd2l0aCBhIGRlYWQtbGV0dGVyIHF1ZXVlLCB0aGlzIGlzIHRoZSBkZWFkLWxldHRlciBxdWV1ZSBzZXR0aW5ncy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZWFkTGV0dGVyUXVldWU/OiBEZWFkTGV0dGVyUXVldWU7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGF1dG9DcmVhdGVQb2xpY3kgPSB0cnVlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcGh5c2ljYWxOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFF1ZXVlUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgdmFsaWRhdGVRdWV1ZVByb3BzKHRoaXMsIHByb3BzKTtcblxuICAgIGlmIChwcm9wcy5yZWRyaXZlQWxsb3dQb2xpY3kpIHtcbiAgICAgIHZhbGlkYXRlUmVkcml2ZUFsbG93UG9saWN5KHRoaXMsIHByb3BzLnJlZHJpdmVBbGxvd1BvbGljeSk7XG4gICAgfVxuXG4gICAgbGV0IG5hbWVQcmVmaXggPSBwcm9wcy5xdWV1ZU5hbWU7XG4gICAgaWYgKG5hbWVQcmVmaXggJiYgIVRva2VuLmlzVW5yZXNvbHZlZChuYW1lUHJlZml4KSkge1xuICAgICAgaWYgKG5hbWVQcmVmaXguZW5kc1dpdGgoXCIuZmlmb1wiKSkge1xuICAgICAgICBuYW1lUHJlZml4ID0gbmFtZVByZWZpeC5zbGljZSgwLCAtNSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFRPRE86IFNob3VsZCB3ZSBhbHdheXMgaGF2ZSB0aGUgZ3JpZFVVSUQgYXMgdGhlIHByZWZpeD9cbiAgICBuYW1lUHJlZml4ID0gdGhpcy5zdGFjay51bmlxdWVSZXNvdXJjZU5hbWVQcmVmaXgodGhpcywge1xuICAgICAgcHJlZml4OiBuYW1lUHJlZml4ID8/IHRoaXMuZ3JpZFVVSUQgKyBcIi1cIixcbiAgICAgIGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyczogXCJfLVwiLFxuICAgICAgbWF4TGVuZ3RoOiA4MCxcbiAgICB9KTtcblxuICAgIHRoaXMucGh5c2ljYWxOYW1lID0gbmFtZVByZWZpeDtcbiAgICBjb25zdCByZWRyaXZlUG9saWN5ID0gcHJvcHMuZGVhZExldHRlclF1ZXVlXG4gICAgICA/IHtcbiAgICAgICAgICBkZWFkTGV0dGVyVGFyZ2V0QXJuOiBwcm9wcy5kZWFkTGV0dGVyUXVldWUucXVldWUucXVldWVBcm4sXG4gICAgICAgICAgbWF4UmVjZWl2ZUNvdW50OiBwcm9wcy5kZWFkTGV0dGVyUXVldWUubWF4UmVjZWl2ZUNvdW50LFxuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIFdoZW4gYHJlZHJpdmVBbGxvd1BvbGljeWAgaXMgcHJvdmlkZWQsIGByZWRyaXZlUGVybWlzc2lvbmAgZGVmYXVsdHMgdG8gYWxsb3cgYWxsIHF1ZXVlcyAoYEFMTE9XX0FMTGApO1xuICAgIGNvbnN0IHJlZHJpdmVBbGxvd1BvbGljeSA9IHByb3BzLnJlZHJpdmVBbGxvd1BvbGljeVxuICAgICAgPyB7XG4gICAgICAgICAgcmVkcml2ZVBlcm1pc3Npb246XG4gICAgICAgICAgICBwcm9wcy5yZWRyaXZlQWxsb3dQb2xpY3kucmVkcml2ZVBlcm1pc3Npb24gPz9cbiAgICAgICAgICAgIC8vIFdoZW4gYHNvdXJjZVF1ZXVlc2AgaXMgcHJvdmlkZWQgaW4gYHJlZHJpdmVBbGxvd1BvbGljeWAsIGByZWRyaXZlUGVybWlzc2lvbmAgZGVmYXVsdHMgdG9cbiAgICAgICAgICAgIC8vIGFsbG93IHNwZWNpZmllZCBxdWV1ZXMgKGBCWV9RVUVVRWApOyBvdGhlcndpc2UsIGl0IGRlZmF1bHRzIHRvIGFsbG93IGFsbCBxdWV1ZXMgKGBBTExPV19BTExgKS5cbiAgICAgICAgICAgIChwcm9wcy5yZWRyaXZlQWxsb3dQb2xpY3kuc291cmNlUXVldWVzXG4gICAgICAgICAgICAgID8gUmVkcml2ZVBlcm1pc3Npb24uQllfUVVFVUVcbiAgICAgICAgICAgICAgOiBSZWRyaXZlUGVybWlzc2lvbi5BTExPV19BTEwpLFxuICAgICAgICAgIHNvdXJjZVF1ZXVlQXJuczogcHJvcHMucmVkcml2ZUFsbG93UG9saWN5LnNvdXJjZVF1ZXVlcz8ubWFwKFxuICAgICAgICAgICAgKHEpID0+IHEucXVldWVBcm4sXG4gICAgICAgICAgKSxcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCB7IGVuY3J5cHRpb25NYXN0ZXJLZXksIGVuY3J5cHRpb25Qcm9wcywgZW5jcnlwdGlvblR5cGUgfSA9XG4gICAgICBfZGV0ZXJtaW5lRW5jcnlwdGlvblByb3BzLmNhbGwodGhpcyk7XG5cbiAgICBjb25zdCBmaWZvUHJvcHMgPSB0aGlzLmRldGVybWluZUZpZm9Qcm9wcyhwcm9wcyk7XG4gICAgdGhpcy5maWZvID0gZmlmb1Byb3BzLmZpZm9RdWV1ZSB8fCBmYWxzZTtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgc3FzUXVldWUuU3FzUXVldWUodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBuYW1lUHJlZml4OiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICAgIC4uLmZpZm9Qcm9wcyxcbiAgICAgIC4uLmVuY3J5cHRpb25Qcm9wcyxcbiAgICAgIHJlZHJpdmVQb2xpY3k6IHJlZHJpdmVQb2xpY3kgPyBKU09OLnN0cmluZ2lmeShyZWRyaXZlUG9saWN5KSA6IHVuZGVmaW5lZCxcbiAgICAgIHJlZHJpdmVBbGxvd1BvbGljeTogcmVkcml2ZUFsbG93UG9saWN5XG4gICAgICAgID8gSlNPTi5zdHJpbmdpZnkocmVkcml2ZUFsbG93UG9saWN5KVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGRlbGF5U2Vjb25kczogcHJvcHMuZGVsaXZlcnlEZWxheT8udG9TZWNvbmRzKCksXG4gICAgICBtYXhNZXNzYWdlU2l6ZTogcHJvcHMubWF4TWVzc2FnZVNpemVCeXRlcyxcbiAgICAgIG1lc3NhZ2VSZXRlbnRpb25TZWNvbmRzOiBwcm9wcy5yZXRlbnRpb25QZXJpb2Q/LnRvU2Vjb25kcygpLFxuICAgICAgcmVjZWl2ZVdhaXRUaW1lU2Vjb25kczogcHJvcHMucmVjZWl2ZU1lc3NhZ2VXYWl0VGltZT8udG9TZWNvbmRzKCksXG4gICAgICB2aXNpYmlsaXR5VGltZW91dFNlY29uZHM6IHByb3BzLnZpc2liaWxpdHlUaW1lb3V0Py50b1NlY29uZHMoKSxcbiAgICB9KTtcbiAgICAvLyBxdWV1ZS5hcHBseVJlbW92YWxQb2xpY3kocHJvcHMucmVtb3ZhbFBvbGljeSA/PyBSZW1vdmFsUG9saWN5LkRFU1RST1kpO1xuXG4gICAgdGhpcy5xdWV1ZUFybiA9IHRoaXMucmVzb3VyY2UuYXJuO1xuICAgIHRoaXMucXVldWVOYW1lID0gdGhpcy5yZXNvdXJjZS5uYW1lO1xuICAgIHRoaXMuZW5jcnlwdGlvbk1hc3RlcktleSA9IGVuY3J5cHRpb25NYXN0ZXJLZXk7XG4gICAgdGhpcy5xdWV1ZVVybCA9IHRoaXMucmVzb3VyY2UudXJsO1xuICAgIHRoaXMuZGVhZExldHRlclF1ZXVlID0gcHJvcHMuZGVhZExldHRlclF1ZXVlO1xuICAgIHRoaXMuZW5jcnlwdGlvblR5cGUgPSBlbmNyeXB0aW9uVHlwZTtcblxuICAgIGZ1bmN0aW9uIF9kZXRlcm1pbmVFbmNyeXB0aW9uUHJvcHModGhpczogUXVldWUpOiB7XG4gICAgICBlbmNyeXB0aW9uUHJvcHM6IEVuY3J5cHRpb25Qcm9wcztcbiAgICAgIGVuY3J5cHRpb25NYXN0ZXJLZXk/OiBrbXMuSUtleTtcbiAgICAgIGVuY3J5cHRpb25UeXBlOiBRdWV1ZUVuY3J5cHRpb24gfCB1bmRlZmluZWQ7XG4gICAgfSB7XG4gICAgICBsZXQgZW5jcnlwdGlvbiA9IHByb3BzLmVuY3J5cHRpb247XG5cbiAgICAgIGlmIChcbiAgICAgICAgZW5jcnlwdGlvbiA9PT0gUXVldWVFbmNyeXB0aW9uLlNRU19NQU5BR0VEICYmXG4gICAgICAgIHByb3BzLmVuY3J5cHRpb25NYXN0ZXJLZXlcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgIFwiJ2VuY3J5cHRpb25NYXN0ZXJLZXknIGlzIG5vdCBzdXBwb3J0ZWQgaWYgZW5jcnlwdGlvbiB0eXBlICdTUVNfTUFOQUdFRCcgaXMgdXNlZFwiLFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChlbmNyeXB0aW9uICE9PSBRdWV1ZUVuY3J5cHRpb24uS01TICYmIHByb3BzLmVuY3J5cHRpb25NYXN0ZXJLZXkpIHtcbiAgICAgICAgZW5jcnlwdGlvbiA9IFF1ZXVlRW5jcnlwdGlvbi5LTVM7IC8vIEtNUyBpcyBpbXBsaWVkIGJ5IHNwZWNpZnlpbmcgYW4gZW5jcnlwdGlvbiBrZXlcbiAgICAgIH1cblxuICAgICAgaWYgKCFlbmNyeXB0aW9uKSB7XG4gICAgICAgIHJldHVybiB7IGVuY3J5cHRpb25Qcm9wczoge30sIGVuY3J5cHRpb25UeXBlOiBlbmNyeXB0aW9uIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChlbmNyeXB0aW9uID09PSBRdWV1ZUVuY3J5cHRpb24uVU5FTkNSWVBURUQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBlbmNyeXB0aW9uVHlwZTogZW5jcnlwdGlvbixcbiAgICAgICAgICBlbmNyeXB0aW9uUHJvcHM6IHtcbiAgICAgICAgICAgIHNxc01hbmFnZWRTc2VFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBpZiAoZW5jcnlwdGlvbiA9PT0gUXVldWVFbmNyeXB0aW9uLktNU19NQU5BR0VEKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZW5jcnlwdGlvblR5cGU6IGVuY3J5cHRpb24sXG4gICAgICAgICAgZW5jcnlwdGlvblByb3BzOiB7XG4gICAgICAgICAgICBrbXNNYXN0ZXJLZXlJZDogXCJhbGlhcy9hd3Mvc3FzXCIsXG4gICAgICAgICAgICBrbXNEYXRhS2V5UmV1c2VQZXJpb2RTZWNvbmRzOiBwcm9wcy5kYXRhS2V5UmV1c2U/LnRvU2Vjb25kcygpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChlbmNyeXB0aW9uID09PSBRdWV1ZUVuY3J5cHRpb24uS01TKSB7XG4gICAgICAgIGNvbnN0IG1hc3RlcktleSA9XG4gICAgICAgICAgcHJvcHMuZW5jcnlwdGlvbk1hc3RlcktleSB8fFxuICAgICAgICAgIG5ldyBrbXMuS2V5KHRoaXMsIFwiS2V5XCIsIHtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgQ3JlYXRlZCBieSAke3RoaXMubm9kZS5wYXRofWAsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBlbmNyeXB0aW9uVHlwZTogZW5jcnlwdGlvbixcbiAgICAgICAgICBlbmNyeXB0aW9uTWFzdGVyS2V5OiBtYXN0ZXJLZXksXG4gICAgICAgICAgZW5jcnlwdGlvblByb3BzOiB7XG4gICAgICAgICAgICBrbXNNYXN0ZXJLZXlJZDogbWFzdGVyS2V5LmtleUFybixcbiAgICAgICAgICAgIGttc0RhdGFLZXlSZXVzZVBlcmlvZFNlY29uZHM6IHByb3BzLmRhdGFLZXlSZXVzZT8udG9TZWNvbmRzKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgaWYgKGVuY3J5cHRpb24gPT09IFF1ZXVlRW5jcnlwdGlvbi5TUVNfTUFOQUdFRCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGVuY3J5cHRpb25UeXBlOiBlbmNyeXB0aW9uLFxuICAgICAgICAgIGVuY3J5cHRpb25Qcm9wczoge1xuICAgICAgICAgICAgc3FzTWFuYWdlZFNzZUVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgYFVuZXhwZWN0ZWQgJ2VuY3J5cHRpb25UeXBlJzogJHtlbmNyeXB0aW9ufWAsXG4gICAgICAgIHRoaXMsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEVuZm9yY2UgZW5jcnlwdGlvbiBvZiBkYXRhIGluIHRyYW5zaXRcbiAgICBpZiAocHJvcHMuZW5mb3JjZVNTTCkge1xuICAgICAgdGhpcy5lbmZvcmNlU1NMU3RhdGVtZW50KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExvb2sgYXQgdGhlIHByb3BzLCBzZWUgaWYgdGhlIEZJRk8gcHJvcHMgYWdyZWUsIGFuZCByZXR1cm4gdGhlIGNvcnJlY3Qgc3Vic2V0IG9mIHByb3BzXG4gICAqL1xuICBwcml2YXRlIGRldGVybWluZUZpZm9Qcm9wcyhwcm9wczogUXVldWVQcm9wcyk6IEZpZm9Qcm9wcyB7XG4gICAgLy8gQ2hlY2sgaWYgYW55IG9mIHRoZSBzaWduYWxzIHRoYXQgd2UgaGF2ZSBzYXkgdGhhdCB0aGlzIGlzIGEgRklGTyBxdWV1ZS5cbiAgICBsZXQgZmlmb1F1ZXVlID0gcHJvcHMuZmlmbztcbiAgICBjb25zdCBxdWV1ZU5hbWUgPSBwcm9wcy5xdWV1ZU5hbWU7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIGZpZm9RdWV1ZSA9PT0gXCJ1bmRlZmluZWRcIiAmJlxuICAgICAgcXVldWVOYW1lICYmXG4gICAgICAhVG9rZW4uaXNVbnJlc29sdmVkKHF1ZXVlTmFtZSkgJiZcbiAgICAgIHF1ZXVlTmFtZS5lbmRzV2l0aChcIi5maWZvXCIpXG4gICAgKSB7XG4gICAgICBmaWZvUXVldWUgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGZpZm9RdWV1ZSA9PT0gXCJ1bmRlZmluZWRcIiAmJiBwcm9wcy5jb250ZW50QmFzZWREZWR1cGxpY2F0aW9uKSB7XG4gICAgICBmaWZvUXVldWUgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGZpZm9RdWV1ZSA9PT0gXCJ1bmRlZmluZWRcIiAmJiBwcm9wcy5kZWR1cGxpY2F0aW9uU2NvcGUpIHtcbiAgICAgIGZpZm9RdWV1ZSA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgZmlmb1F1ZXVlID09PSBcInVuZGVmaW5lZFwiICYmIHByb3BzLmZpZm9UaHJvdWdocHV0TGltaXQpIHtcbiAgICAgIGZpZm9RdWV1ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8gSWYgd2UgaGF2ZSBhIG5hbWUsIHNlZSB0aGF0IGl0IGFncmVlcyB3aXRoIHRoZSBGSUZPIHNldHRpbmdcbiAgICBpZiAodHlwZW9mIHF1ZXVlTmFtZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgaWYgKGZpZm9RdWV1ZSAmJiAhcXVldWVOYW1lLmVuZHNXaXRoKFwiLmZpZm9cIikpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcIkZJRk8gcXVldWUgbmFtZXMgbXVzdCBlbmQgaW4gJy5maWZvJ1wiLCB0aGlzKTtcbiAgICAgIH1cbiAgICAgIGlmICghZmlmb1F1ZXVlICYmIHF1ZXVlTmFtZS5lbmRzV2l0aChcIi5maWZvXCIpKSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgXCJOb24tRklGTyBxdWV1ZSBuYW1lIG1heSBub3QgZW5kIGluICcuZmlmbydcIixcbiAgICAgICAgICB0aGlzLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcm9wcy5jb250ZW50QmFzZWREZWR1cGxpY2F0aW9uICYmICFmaWZvUXVldWUpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIFwiQ29udGVudC1iYXNlZCBkZWR1cGxpY2F0aW9uIGNhbiBvbmx5IGJlIGRlZmluZWQgZm9yIEZJRk8gcXVldWVzXCIsXG4gICAgICAgIHRoaXMsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5kZWR1cGxpY2F0aW9uU2NvcGUgJiYgIWZpZm9RdWV1ZSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgXCJEZWR1cGxpY2F0aW9uIHNjb3BlIGNhbiBvbmx5IGJlIGRlZmluZWQgZm9yIEZJRk8gcXVldWVzXCIsXG4gICAgICAgIHRoaXMsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5maWZvVGhyb3VnaHB1dExpbWl0ICYmICFmaWZvUXVldWUpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIFwiRklGTyB0aHJvdWdocHV0IGxpbWl0IGNhbiBvbmx5IGJlIGRlZmluZWQgZm9yIEZJRk8gcXVldWVzXCIsXG4gICAgICAgIHRoaXMsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50QmFzZWREZWR1cGxpY2F0aW9uOiBwcm9wcy5jb250ZW50QmFzZWREZWR1cGxpY2F0aW9uLFxuICAgICAgZGVkdXBsaWNhdGlvblNjb3BlOiBwcm9wcy5kZWR1cGxpY2F0aW9uU2NvcGUsXG4gICAgICBmaWZvVGhyb3VnaHB1dExpbWl0OiBwcm9wcy5maWZvVGhyb3VnaHB1dExpbWl0LFxuICAgICAgZmlmb1F1ZXVlLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiBpYW0gc3RhdGVtZW50IHRvIGVuZm9yY2UgZW5jcnlwdGlvbiBvZiBkYXRhIGluIHRyYW5zaXQuXG4gICAqL1xuICBwcml2YXRlIGVuZm9yY2VTU0xTdGF0ZW1lbnQoKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50ID0gbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgYWN0aW9uczogW1wic3FzOipcIl0sXG4gICAgICBjb25kaXRpb246IFtcbiAgICAgICAge1xuICAgICAgICAgIHRlc3Q6IFwiQm9vbFwiLFxuICAgICAgICAgIHZhcmlhYmxlOiBcImF3czpTZWN1cmVUcmFuc3BvcnRcIixcbiAgICAgICAgICB2YWx1ZXM6IFtcImZhbHNlXCJdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5ERU5ZLFxuICAgICAgcmVzb3VyY2VzOiBbdGhpcy5xdWV1ZUFybl0sXG4gICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5BbnlQcmluY2lwYWwoKV0sXG4gICAgfSk7XG4gICAgdGhpcy5hZGRUb1Jlc291cmNlUG9saWN5KHN0YXRlbWVudCk7XG4gIH1cbn1cblxuaW50ZXJmYWNlIEZpZm9Qcm9wcyB7XG4gIHJlYWRvbmx5IGZpZm9RdWV1ZT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGNvbnRlbnRCYXNlZERlZHVwbGljYXRpb24/OiBib29sZWFuO1xuICByZWFkb25seSBkZWR1cGxpY2F0aW9uU2NvcGU/OiBEZWR1cGxpY2F0aW9uU2NvcGU7XG4gIHJlYWRvbmx5IGZpZm9UaHJvdWdocHV0TGltaXQ/OiBGaWZvVGhyb3VnaHB1dExpbWl0O1xufVxuXG5pbnRlcmZhY2UgRW5jcnlwdGlvblByb3BzIHtcbiAgcmVhZG9ubHkga21zTWFzdGVyS2V5SWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGttc0RhdGFLZXlSZXVzZVBlcmlvZFNlY29uZHM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHNxc01hbmFnZWRTc2VFbmFibGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEZWFkIGxldHRlciBxdWV1ZSBzZXR0aW5nc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERlYWRMZXR0ZXJRdWV1ZSB7XG4gIC8qKlxuICAgKiBUaGUgZGVhZC1sZXR0ZXIgcXVldWUgdG8gd2hpY2ggQW1hem9uIFNRUyBtb3ZlcyBtZXNzYWdlcyBhZnRlciB0aGUgdmFsdWUgb2YgbWF4UmVjZWl2ZUNvdW50IGlzIGV4Y2VlZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcXVldWU6IElRdWV1ZTtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiB0aW1lcyBhIG1lc3NhZ2UgY2FuIGJlIHVuc3VjY2Vzc2Z1bGx5IGRlcXVldWVkIGJlZm9yZSBiZWluZyBtb3ZlZCB0byB0aGUgZGVhZC1sZXR0ZXIgcXVldWUuXG4gICAqL1xuICByZWFkb25seSBtYXhSZWNlaXZlQ291bnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQZXJtaXNzaW9uIHNldHRpbmdzIGZvciB0aGUgZGVhZCBsZXR0ZXIgc291cmNlIHF1ZXVlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVkcml2ZUFsbG93UG9saWN5IHtcbiAgLyoqXG4gICAqIFBlcm1pc3Npb24gc2V0dGluZ3MgZm9yIHNvdXJjZSBxdWV1ZXMgdGhhdCBjYW4gZGVzaWduYXRlIHRoaXMgcXVldWUgYXMgdGhlaXIgZGVhZC1sZXR0ZXIgcXVldWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYFJlZHJpdmVQZXJtaXNzaW9uLkJZX1FVRVVFYCBpZiBgc291cmNlUXVldWVzYCBpcyBzcGVjaWZpZWQsYFJlZHJpdmVQZXJtaXNzaW9uLkFMTE9XX0FMTGAgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVkcml2ZVBlcm1pc3Npb24/OiBSZWRyaXZlUGVybWlzc2lvbjtcblxuICAvKipcbiAgICogU291cmNlIHF1ZXVlcyB0aGF0IGNhbiBkZXNpZ25hdGUgdGhpcyBxdWV1ZSBhcyB0aGVpciBkZWFkLWxldHRlciBxdWV1ZS5cbiAgICpcbiAgICogV2hlbiBgcmVkcml2ZVBlcm1pc3Npb25gIGlzIHNldCB0byBgUmVkcml2ZVBlcm1pc3Npb24uQllfUVVFVUVgLCB0aGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZC5cbiAgICpcbiAgICogWW91IGNhbiBzcGVjaWZ5IHVwIHRvIDEwIHNvdXJjZSBxdWV1ZXMuXG4gICAqIFRvIGFsbG93IG1vcmUgdGhhbiAxMCBzb3VyY2UgcXVldWVzIHRvIHNwZWNpZnkgZGVhZC1sZXR0ZXIgcXVldWVzLCBzZXQgdGhlIGByZWRyaXZlUGVybWlzc2lvbmAgdG9cbiAgICogYFJlZHJpdmVQZXJtaXNzaW9uLkFMTE9XX0FMTGAuXG4gICAqXG4gICAqIFdoZW4gYHJlZHJpdmVQZXJtaXNzaW9uYCBpcyBlaXRoZXIgYFJlZHJpdmVQZXJtaXNzaW9uLkFMTE9XX0FMTGAgb3IgYFJlZHJpdmVQZXJtaXNzaW9uLkRFTllfQUxMYCxcbiAgICogdGhpcyBwYXJhbWV0ZXIgY2Fubm90IGJlIHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBSZXF1aXJlZCB3aGVuIGByZWRyaXZlUGVybWlzc2lvbmDCoGlzIGBSZWRyaXZlUGVybWlzc2lvbi5CWV9RVUVVRWAsIGNhbm5vdCBiZSBkZWZpbmVkIG90aGVyd2lzZS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZVF1ZXVlcz86IElRdWV1ZVtdO1xufVxuXG4vKipcbiAqIFdoYXQga2luZCBvZiBkZWR1cGxpY2F0aW9uIHNjb3BlIHRvIGFwcGx5XG4gKi9cbmV4cG9ydCBlbnVtIERlZHVwbGljYXRpb25TY29wZSB7XG4gIC8qKlxuICAgKiBEZWR1cGxpY2F0aW9uIG9jY3VycyBhdCB0aGUgbWVzc2FnZSBncm91cCBsZXZlbFxuICAgKi9cbiAgTUVTU0FHRV9HUk9VUCA9IFwibWVzc2FnZUdyb3VwXCIsXG4gIC8qKlxuICAgKiBEZWR1cGxpY2F0aW9uIG9jY3VycyBhdCB0aGUgbWVzc2FnZSBxdWV1ZSBsZXZlbFxuICAgKi9cbiAgUVVFVUUgPSBcInF1ZXVlXCIsXG59XG5cbi8qKlxuICogV2hldGhlciB0aGUgRklGTyBxdWV1ZSB0aHJvdWdocHV0IHF1b3RhIGFwcGxpZXMgdG8gdGhlIGVudGlyZSBxdWV1ZSBvciBwZXIgbWVzc2FnZSBncm91cFxuICovXG5leHBvcnQgZW51bSBGaWZvVGhyb3VnaHB1dExpbWl0IHtcbiAgLyoqXG4gICAqIFRocm91Z2hwdXQgcXVvdGEgYXBwbGllcyBwZXIgcXVldWVcbiAgICovXG4gIFBFUl9RVUVVRSA9IFwicGVyUXVldWVcIixcbiAgLyoqXG4gICAqIFRocm91Z2hwdXQgcXVvdGEgYXBwbGllcyBwZXIgbWVzc2FnZSBncm91cCBpZFxuICAgKi9cbiAgUEVSX01FU1NBR0VfR1JPVVBfSUQgPSBcInBlck1lc3NhZ2VHcm91cElkXCIsXG59XG5cbi8qKlxuICogVGhlIHBlcm1pc3Npb24gdHlwZSB0aGF0IGRlZmluZXMgd2hpY2ggc291cmNlIHF1ZXVlcyBjYW4gc3BlY2lmeSB0aGUgY3VycmVudCBxdWV1ZSBhcyB0aGUgZGVhZC1sZXR0ZXIgcXVldWVcbiAqL1xuZXhwb3J0IGVudW0gUmVkcml2ZVBlcm1pc3Npb24ge1xuICAvKipcbiAgICogQW55IHNvdXJjZSBxdWV1ZXMgaW4gdGhpcyBBV1MgYWNjb3VudCBpbiB0aGUgc2FtZSBSZWdpb24gY2FuIHNwZWNpZnkgdGhpcyBxdWV1ZSBhcyB0aGUgZGVhZC1sZXR0ZXIgcXVldWVcbiAgICovXG4gIEFMTE9XX0FMTCA9IFwiYWxsb3dBbGxcIixcbiAgLyoqXG4gICAqIE5vIHNvdXJjZSBxdWV1ZXMgY2FuIHNwZWNpZnkgdGhpcyBxdWV1ZSBhcyB0aGUgZGVhZC1sZXR0ZXIgcXVldWVcbiAgICovXG4gIERFTllfQUxMID0gXCJkZW55QWxsXCIsXG4gIC8qKlxuICAgKiBPbmx5IHF1ZXVlcyBzcGVjaWZpZWQgYnkgdGhlIGBzb3VyY2VRdWV1ZUFybnNgIHBhcmFtZXRlciBjYW4gc3BlY2lmeSB0aGlzIHF1ZXVlIGFzIHRoZSBkZWFkLWxldHRlciBxdWV1ZVxuICAgKi9cbiAgQllfUVVFVUUgPSBcImJ5UXVldWVcIixcbn1cblxuLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4yMzIuMi9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3Mtc3FzL2xpYi92YWxpZGF0ZS1xdWV1ZS1wcm9wcy50c1xuXG5mdW5jdGlvbiB2YWxpZGF0ZVJhbmdlKFxuICB2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICBtaW5WYWx1ZTogbnVtYmVyLFxuICBtYXhWYWx1ZTogbnVtYmVyLFxuKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgdmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICFUb2tlbi5pc1VucmVzb2x2ZWQodmFsdWUpICYmXG4gICAgKHZhbHVlIDwgbWluVmFsdWUgfHwgdmFsdWUgPiBtYXhWYWx1ZSlcbiAgKTtcbn1cblxuY29uc3QgcXVldWVWYWxpZGF0aW9uUnVsZXM6IFZhbGlkYXRpb25SdWxlPFF1ZXVlUHJvcHM+W10gPSBbXG4gIHtcbiAgICBjb25kaXRpb246IChwcm9wcykgPT5cbiAgICAgIHZhbGlkYXRlUmFuZ2UocHJvcHMuZGVsaXZlcnlEZWxheT8udG9TZWNvbmRzKCksIDAsIDkwMCksXG4gICAgbWVzc2FnZTogKHByb3BzKSA9PlxuICAgICAgYGRlbGl2ZXJ5IGRlbGF5IG11c3QgYmUgYmV0d2VlbiAwIGFuZCA5MDAgc2Vjb25kcywgYnV0ICR7cHJvcHMuZGVsaXZlcnlEZWxheT8udG9TZWNvbmRzKCl9IHdhcyBwcm92aWRlZGAsXG4gIH0sXG4gIHtcbiAgICBjb25kaXRpb246IChwcm9wcykgPT5cbiAgICAgIHZhbGlkYXRlUmFuZ2UocHJvcHMubWF4TWVzc2FnZVNpemVCeXRlcywgMV8wMjQsIDFfMDQ4XzU3NiksXG4gICAgbWVzc2FnZTogKHByb3BzKSA9PlxuICAgICAgYG1heGltdW0gbWVzc2FnZSBzaXplIG11c3QgYmUgYmV0d2VlbiAxLDAyNCBhbmQgMSwwNDgsNTc2IGJ5dGVzLCBidXQgJHtwcm9wcy5tYXhNZXNzYWdlU2l6ZUJ5dGVzfSB3YXMgcHJvdmlkZWRgLFxuICB9LFxuICB7XG4gICAgY29uZGl0aW9uOiAocHJvcHMpID0+XG4gICAgICB2YWxpZGF0ZVJhbmdlKHByb3BzLnJldGVudGlvblBlcmlvZD8udG9TZWNvbmRzKCksIDYwLCAxXzIwOV82MDApLFxuICAgIG1lc3NhZ2U6IChwcm9wcykgPT5cbiAgICAgIGBtZXNzYWdlIHJldGVudGlvbiBwZXJpb2QgbXVzdCBiZSBiZXR3ZWVuIDYwIGFuZCAxLDIwOSw2MDAgc2Vjb25kcywgYnV0ICR7cHJvcHMucmV0ZW50aW9uUGVyaW9kPy50b1NlY29uZHMoKX0gd2FzIHByb3ZpZGVkYCxcbiAgfSxcbiAge1xuICAgIGNvbmRpdGlvbjogKHByb3BzKSA9PlxuICAgICAgdmFsaWRhdGVSYW5nZShwcm9wcy5yZWNlaXZlTWVzc2FnZVdhaXRUaW1lPy50b1NlY29uZHMoKSwgMCwgMjApLFxuICAgIG1lc3NhZ2U6IChwcm9wcykgPT5cbiAgICAgIGByZWNlaXZlIHdhaXQgdGltZSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMjAgc2Vjb25kcywgYnV0ICR7cHJvcHMucmVjZWl2ZU1lc3NhZ2VXYWl0VGltZT8udG9TZWNvbmRzKCl9IHdhcyBwcm92aWRlZGAsXG4gIH0sXG4gIHtcbiAgICBjb25kaXRpb246IChwcm9wcykgPT5cbiAgICAgIHZhbGlkYXRlUmFuZ2UocHJvcHMudmlzaWJpbGl0eVRpbWVvdXQ/LnRvU2Vjb25kcygpLCAwLCA0M18yMDApLFxuICAgIG1lc3NhZ2U6IChwcm9wcykgPT5cbiAgICAgIGB2aXNpYmlsaXR5IHRpbWVvdXQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDQzLDIwMCBzZWNvbmRzLCBidXQgJHtwcm9wcy52aXNpYmlsaXR5VGltZW91dD8udG9TZWNvbmRzKCl9IHdhcyBwcm92aWRlZGAsXG4gIH0sXG4gIHtcbiAgICBjb25kaXRpb246IChwcm9wcykgPT5cbiAgICAgIHZhbGlkYXRlUmFuZ2UoXG4gICAgICAgIHByb3BzLmRlYWRMZXR0ZXJRdWV1ZT8ubWF4UmVjZWl2ZUNvdW50LFxuICAgICAgICAxLFxuICAgICAgICBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcbiAgICAgICksXG4gICAgbWVzc2FnZTogKHByb3BzKSA9PlxuICAgICAgYGRlYWQgbGV0dGVyIHRhcmdldCBtYXhpbXVtIHJlY2VpdmUgY291bnQgbXVzdCBiZSAxIG9yIG1vcmUsIGJ1dCAke3Byb3BzLmRlYWRMZXR0ZXJRdWV1ZT8ubWF4UmVjZWl2ZUNvdW50fSB3YXMgcHJvdmlkZWRgLFxuICB9LFxuXTtcblxuY29uc3QgcmVkcml2ZVZhbGlkYXRpb25SdWxlczogVmFsaWRhdGlvblJ1bGU8UmVkcml2ZUFsbG93UG9saWN5PltdID0gW1xuICB7XG4gICAgY29uZGl0aW9uOiAoeyByZWRyaXZlUGVybWlzc2lvbiwgc291cmNlUXVldWVzIH0pID0+XG4gICAgICByZWRyaXZlUGVybWlzc2lvbiA9PT0gUmVkcml2ZVBlcm1pc3Npb24uQllfUVVFVUUgJiZcbiAgICAgICghc291cmNlUXVldWVzIHx8IHNvdXJjZVF1ZXVlcy5sZW5ndGggPT09IDApLFxuICAgIG1lc3NhZ2U6ICgpID0+XG4gICAgICBcIkF0IGxlYXN0IG9uZSBzb3VyY2UgcXVldWUgbXVzdCBiZSBzcGVjaWZpZWQgd2hlbiBSZWRyaXZlUGVybWlzc2lvbiBpcyBzZXQgdG8gJ2J5UXVldWUnXCIsXG4gIH0sXG4gIHtcbiAgICBjb25kaXRpb246ICh7IHJlZHJpdmVQZXJtaXNzaW9uLCBzb3VyY2VRdWV1ZXMgfSkgPT5cbiAgICAgICEhKFxuICAgICAgICByZWRyaXZlUGVybWlzc2lvbiA9PT0gUmVkcml2ZVBlcm1pc3Npb24uQllfUVVFVUUgJiZcbiAgICAgICAgc291cmNlUXVldWVzICYmXG4gICAgICAgIHNvdXJjZVF1ZXVlcy5sZW5ndGggPiAxMFxuICAgICAgKSxcbiAgICBtZXNzYWdlOiAoKSA9PlxuICAgICAgXCJVcCB0byAxMCBzb3VyY2VRdWV1ZXMgY2FuIGJlIHNwZWNpZmllZC4gU2V0IFJlZHJpdmVQZXJtaXNzaW9uIHRvICdhbGxvd0FsbCcgdG8gc3BlY2lmeSBtb3JlXCIsXG4gIH0sXG4gIHtcbiAgICBjb25kaXRpb246ICh7IHJlZHJpdmVQZXJtaXNzaW9uLCBzb3VyY2VRdWV1ZXMgfSkgPT5cbiAgICAgICEhKFxuICAgICAgICAocmVkcml2ZVBlcm1pc3Npb24gPT09IFJlZHJpdmVQZXJtaXNzaW9uLkFMTE9XX0FMTCB8fFxuICAgICAgICAgIHJlZHJpdmVQZXJtaXNzaW9uID09PSBSZWRyaXZlUGVybWlzc2lvbi5ERU5ZX0FMTCkgJiZcbiAgICAgICAgc291cmNlUXVldWVzXG4gICAgICApLFxuICAgIG1lc3NhZ2U6ICgpID0+XG4gICAgICBcInNvdXJjZVF1ZXVlcyBjYW5ub3QgYmUgY29uZmlndXJlZCB3aGVuIFJlZHJpdmVQZXJtaXNzaW9uIGlzIHNldCB0byAnYWxsb3dBbGwnIG9yICdkZW55QWxsJ1wiLFxuICB9LFxuXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUXVldWVQcm9wcyhzY29wZTogQ29uc3RydWN0LCBwcm9wczogUXVldWVQcm9wcykge1xuICB2YWxpZGF0ZUFsbFByb3BzKHNjb3BlLCBRdWV1ZS5uYW1lLCBwcm9wcywgcXVldWVWYWxpZGF0aW9uUnVsZXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVSZWRyaXZlQWxsb3dQb2xpY3koXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIHBvbGljeTogUmVkcml2ZUFsbG93UG9saWN5LFxuKSB7XG4gIHZhbGlkYXRlQWxsUHJvcHMoc2NvcGUsIFF1ZXVlLm5hbWUsIHBvbGljeSwgcmVkcml2ZVZhbGlkYXRpb25SdWxlcyk7XG59XG4iXX0=
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.ResourcePolicy = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  // https://github.com/aws/aws-cdk/blob/v2.170.0/packages/aws-cdk-lib/aws-kinesis/lib/resource-policy.ts
7
- const provider_aws_1 = require("@cdktf/provider-aws");
7
+ const provider_aws_1 = require("@cdktn/provider-aws");
8
8
  const aws_construct_1 = require("../aws-construct");
9
9
  const iam_1 = require("../iam");
10
10
  /**
@@ -39,5 +39,5 @@ class ResourcePolicy extends aws_construct_1.AwsConstructBase {
39
39
  }
40
40
  exports.ResourcePolicy = ResourcePolicy;
41
41
  _a = JSII_RTTI_SYMBOL_1;
42
- ResourcePolicy[_a] = { fqn: "terraconstructs.aws.notify.ResourcePolicy", version: "0.2.4" };
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtcG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9ub3RpZnkvcmVzb3VyY2UtcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsdUdBQXVHO0FBRXZHLHNEQUE0RDtBQUU1RCxvREFBdUU7QUFFdkUsZ0NBQXdDO0FBbUJ4Qzs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsZ0NBQWdCO0lBS2xELElBQVcsT0FBTztRQUNoQjs7V0FFRztRQUNILE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxjQUFjLElBQUksSUFBSSxvQkFBYyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUzRSxJQUFJLG9DQUFxQixDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDaEUsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTtZQUMxQixXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBckJILHdDQXNCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1raW5lc2lzL2xpYi9yZXNvdXJjZS1wb2xpY3kudHNcblxuaW1wb3J0IHsga2luZXNpc1Jlc291cmNlUG9saWN5IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlLCBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBJU3RyZWFtIH0gZnJvbSBcIi4va2luZXNpcy1zdHJlYW1cIjtcbmltcG9ydCB7IFBvbGljeURvY3VtZW50IH0gZnJvbSBcIi4uL2lhbVwiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gYXNzb2NpYXRlIGEgZGF0YSBzdHJlYW0gd2l0aCBhIHBvbGljeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlUG9saWN5UHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgc3RyZWFtIHRoaXMgcG9saWN5IGFwcGxpZXMgdG8uXG4gICAqL1xuICByZWFkb25seSBzdHJlYW06IElTdHJlYW07XG5cbiAgLyoqXG4gICAqIElBTSBwb2xpY3kgZG9jdW1lbnQgdG8gYXBwbHkgdG8gYSBkYXRhIHN0cmVhbS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBlbXB0eSBwb2xpY3kgZG9jdW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeURvY3VtZW50PzogUG9saWN5RG9jdW1lbnQ7XG59XG5cbi8qKlxuICogVGhlIHBvbGljeSBmb3IgYSBkYXRhIHN0cmVhbSBvciByZWdpc3RlcmVkIGNvbnN1bWVyLlxuICpcbiAqIFBvbGljaWVzIGRlZmluZSB0aGUgb3BlcmF0aW9ucyB0aGF0IGFyZSBhbGxvd2VkIG9uIHRoaXMgcmVzb3VyY2UuXG4gKlxuICogWW91IGFsbW9zdCBuZXZlciBuZWVkIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdCBkaXJlY3RseS5cbiAqXG4gKiBBbGwgQVdTIHJlc291cmNlcyB0aGF0IHN1cHBvcnQgcmVzb3VyY2UgcG9saWNpZXMgaGF2ZSBhIG1ldGhvZCBjYWxsZWRcbiAqIGBhZGRUb1Jlc291cmNlUG9saWN5KClgLCB3aGljaCB3aWxsIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgbmV3IHJlc291cmNlXG4gKiBwb2xpY3kgaWYgb25lIGRvZXNuJ3QgZXhpc3QgeWV0LCBvdGhlcndpc2UgaXQgd2lsbCBhZGQgdG8gdGhlIGV4aXN0aW5nXG4gKiBwb2xpY3kuXG4gKlxuICogUHJlZmVyIHRvIHVzZSBgYWRkVG9SZXNvdXJjZVBvbGljeSgpYCBpbnN0ZWFkLlxuICovXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VQb2xpY3kgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIHtcbiAgLyoqXG4gICAqIFRoZSBJQU0gcG9saWN5IGRvY3VtZW50IGZvciB0aGlzIHBvbGljeS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudDogUG9saWN5RG9jdW1lbnQ7XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICAvKipcbiAgICAgKiBUaGlzIHJlc291cmNlIGV4cG9ydHMgbm8gYWRkaXRpb25hbCBhdHRyaWJ1dGVzLlxuICAgICAqL1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSZXNvdXJjZVBvbGljeVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuZG9jdW1lbnQgPSBwcm9wcy5wb2xpY3lEb2N1bWVudCA/PyBuZXcgUG9saWN5RG9jdW1lbnQodGhpcywgXCJQb2xpY3lcIik7XG5cbiAgICBuZXcga2luZXNpc1Jlc291cmNlUG9saWN5LktpbmVzaXNSZXNvdXJjZVBvbGljeSh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIHBvbGljeTogdGhpcy5kb2N1bWVudC5qc29uLFxuICAgICAgcmVzb3VyY2VBcm46IHByb3BzLnN0cmVhbS5zdHJlYW1Bcm4sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
42
+ ResourcePolicy[_a] = { fqn: "terraconstructs.aws.notify.ResourcePolicy", version: "0.2.5" };
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtcG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9ub3RpZnkvcmVzb3VyY2UtcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsdUdBQXVHO0FBRXZHLHNEQUE0RDtBQUU1RCxvREFBdUU7QUFFdkUsZ0NBQXdDO0FBbUJ4Qzs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsZ0NBQWdCO0lBS2xELElBQVcsT0FBTztRQUNoQjs7V0FFRztRQUNILE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxjQUFjLElBQUksSUFBSSxvQkFBYyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUzRSxJQUFJLG9DQUFxQixDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDaEUsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTtZQUMxQixXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBckJILHdDQXNCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1raW5lc2lzL2xpYi9yZXNvdXJjZS1wb2xpY3kudHNcblxuaW1wb3J0IHsga2luZXNpc1Jlc291cmNlUG9saWN5IH0gZnJvbSBcIkBjZGt0bi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlLCBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBJU3RyZWFtIH0gZnJvbSBcIi4va2luZXNpcy1zdHJlYW1cIjtcbmltcG9ydCB7IFBvbGljeURvY3VtZW50IH0gZnJvbSBcIi4uL2lhbVwiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gYXNzb2NpYXRlIGEgZGF0YSBzdHJlYW0gd2l0aCBhIHBvbGljeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlUG9saWN5UHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgc3RyZWFtIHRoaXMgcG9saWN5IGFwcGxpZXMgdG8uXG4gICAqL1xuICByZWFkb25seSBzdHJlYW06IElTdHJlYW07XG5cbiAgLyoqXG4gICAqIElBTSBwb2xpY3kgZG9jdW1lbnQgdG8gYXBwbHkgdG8gYSBkYXRhIHN0cmVhbS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBlbXB0eSBwb2xpY3kgZG9jdW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeURvY3VtZW50PzogUG9saWN5RG9jdW1lbnQ7XG59XG5cbi8qKlxuICogVGhlIHBvbGljeSBmb3IgYSBkYXRhIHN0cmVhbSBvciByZWdpc3RlcmVkIGNvbnN1bWVyLlxuICpcbiAqIFBvbGljaWVzIGRlZmluZSB0aGUgb3BlcmF0aW9ucyB0aGF0IGFyZSBhbGxvd2VkIG9uIHRoaXMgcmVzb3VyY2UuXG4gKlxuICogWW91IGFsbW9zdCBuZXZlciBuZWVkIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdCBkaXJlY3RseS5cbiAqXG4gKiBBbGwgQVdTIHJlc291cmNlcyB0aGF0IHN1cHBvcnQgcmVzb3VyY2UgcG9saWNpZXMgaGF2ZSBhIG1ldGhvZCBjYWxsZWRcbiAqIGBhZGRUb1Jlc291cmNlUG9saWN5KClgLCB3aGljaCB3aWxsIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgbmV3IHJlc291cmNlXG4gKiBwb2xpY3kgaWYgb25lIGRvZXNuJ3QgZXhpc3QgeWV0LCBvdGhlcndpc2UgaXQgd2lsbCBhZGQgdG8gdGhlIGV4aXN0aW5nXG4gKiBwb2xpY3kuXG4gKlxuICogUHJlZmVyIHRvIHVzZSBgYWRkVG9SZXNvdXJjZVBvbGljeSgpYCBpbnN0ZWFkLlxuICovXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VQb2xpY3kgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIHtcbiAgLyoqXG4gICAqIFRoZSBJQU0gcG9saWN5IGRvY3VtZW50IGZvciB0aGlzIHBvbGljeS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudDogUG9saWN5RG9jdW1lbnQ7XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICAvKipcbiAgICAgKiBUaGlzIHJlc291cmNlIGV4cG9ydHMgbm8gYWRkaXRpb25hbCBhdHRyaWJ1dGVzLlxuICAgICAqL1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSZXNvdXJjZVBvbGljeVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuZG9jdW1lbnQgPSBwcm9wcy5wb2xpY3lEb2N1bWVudCA/PyBuZXcgUG9saWN5RG9jdW1lbnQodGhpcywgXCJQb2xpY3lcIik7XG5cbiAgICBuZXcga2luZXNpc1Jlc291cmNlUG9saWN5LktpbmVzaXNSZXNvdXJjZVBvbGljeSh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIHBvbGljeTogdGhpcy5kb2N1bWVudC5qc29uLFxuICAgICAgcmVzb3VyY2VBcm46IHByb3BzLnN0cmVhbS5zdHJlYW1Bcm4sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { cloudwatchEventRule } from "@cdktf/provider-aws";
1
+ import { cloudwatchEventRule } from "@cdktn/provider-aws";
2
2
  import { Construct } from "constructs";
3
3
  import { AwsConstructBase, IAwsConstruct, AwsConstructProps } from "../aws-construct";
4
4
  import { Schedule, EventPattern, IRuleTarget, IEventBus, EventCommonOptions } from "./";