terraconstructs 0.0.19 → 0.0.20

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 (221) hide show
  1. package/.jsii +662 -19
  2. package/lib/aws/arn.js +1 -1
  3. package/lib/aws/aws-construct.js +1 -1
  4. package/lib/aws/aws-stack.js +2 -2
  5. package/lib/aws/aws-tags.js +2 -2
  6. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  7. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  8. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  9. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  10. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  11. package/lib/aws/cloudwatch/alarm.js +1 -1
  12. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  13. package/lib/aws/cloudwatch/dashboard.js +1 -1
  14. package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
  15. package/lib/aws/cloudwatch/graph.js +8 -8
  16. package/lib/aws/cloudwatch/layout.js +3 -3
  17. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  18. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  19. package/lib/aws/cloudwatch/log-group.js +1 -1
  20. package/lib/aws/cloudwatch/log-query.js +1 -1
  21. package/lib/aws/cloudwatch/log-stream.js +1 -1
  22. package/lib/aws/cloudwatch/metric-filter.js +1 -1
  23. package/lib/aws/cloudwatch/metric.js +2 -2
  24. package/lib/aws/cloudwatch/pattern.js +3 -3
  25. package/lib/aws/cloudwatch/policy.js +1 -1
  26. package/lib/aws/cloudwatch/query-definition.js +2 -2
  27. package/lib/aws/cloudwatch/stats.js +1 -1
  28. package/lib/aws/cloudwatch/subscription-filter.js +1 -1
  29. package/lib/aws/cloudwatch/text.js +1 -1
  30. package/lib/aws/cloudwatch/variable.js +3 -3
  31. package/lib/aws/cloudwatch/widget.js +1 -1
  32. package/lib/aws/compute/activity.js +1 -1
  33. package/lib/aws/compute/alb/application-listener-action.js +1 -1
  34. package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
  35. package/lib/aws/compute/alb/application-listener-rule.js +1 -1
  36. package/lib/aws/compute/alb/application-listener.js +1 -1
  37. package/lib/aws/compute/alb/application-load-balancer.js +1 -1
  38. package/lib/aws/compute/alb/application-target-group.js +1 -1
  39. package/lib/aws/compute/alb/conditions.js +1 -1
  40. package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
  41. package/lib/aws/compute/alb/trust-store.js +1 -1
  42. package/lib/aws/compute/architecture.js +1 -1
  43. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
  44. package/lib/aws/compute/bastion-host.js +1 -1
  45. package/lib/aws/compute/chain.js +1 -1
  46. package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
  47. package/lib/aws/compute/client-vpn-endpoint.js +2 -2
  48. package/lib/aws/compute/client-vpn-route.js +2 -2
  49. package/lib/aws/compute/condition.js +1 -1
  50. package/lib/aws/compute/connections.js +1 -1
  51. package/lib/aws/compute/event-invoke-config.js +1 -1
  52. package/lib/aws/compute/event-source-filter.js +2 -2
  53. package/lib/aws/compute/event-source-mapping.js +1 -1
  54. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  55. package/lib/aws/compute/event-sources/s3.js +1 -1
  56. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  57. package/lib/aws/compute/event-sources/sqs.js +1 -1
  58. package/lib/aws/compute/fields.js +4 -4
  59. package/lib/aws/compute/function-alias.js +1 -1
  60. package/lib/aws/compute/function-base.js +2 -2
  61. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  62. package/lib/aws/compute/function-destinations/function.js +1 -1
  63. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  64. package/lib/aws/compute/function-nodejs.js +1 -1
  65. package/lib/aws/compute/function-url.js +1 -1
  66. package/lib/aws/compute/function.js +1 -1
  67. package/lib/aws/compute/instance-types.js +1 -1
  68. package/lib/aws/compute/instance.js +1 -1
  69. package/lib/aws/compute/ip-addresses.js +2 -2
  70. package/lib/aws/compute/ipam.js +1 -1
  71. package/lib/aws/compute/key-pair.js +1 -1
  72. package/lib/aws/compute/launch-template.js +2 -2
  73. package/lib/aws/compute/lb-shared/base-listener.js +1 -1
  74. package/lib/aws/compute/lb-shared/base-load-balancer.js +2 -2
  75. package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
  76. package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
  77. package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
  78. package/lib/aws/compute/lb-targets/alb-target.js +3 -3
  79. package/lib/aws/compute/lb-targets/instance-target.js +2 -2
  80. package/lib/aws/compute/lb-targets/ip-target.js +1 -1
  81. package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
  82. package/lib/aws/compute/load-balancer.js +3 -3
  83. package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
  84. package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
  85. package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
  86. package/lib/aws/compute/machine-image/common.js +1 -1
  87. package/lib/aws/compute/machine-image/machine-image.js +8 -8
  88. package/lib/aws/compute/nat.js +5 -5
  89. package/lib/aws/compute/network-acl-types.js +2 -2
  90. package/lib/aws/compute/network-acl.js +3 -3
  91. package/lib/aws/compute/nlb/network-listener-action.js +1 -1
  92. package/lib/aws/compute/nlb/network-listener.js +1 -1
  93. package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
  94. package/lib/aws/compute/nlb/network-target-group.js +1 -1
  95. package/lib/aws/compute/peer.js +1 -1
  96. package/lib/aws/compute/placement-group.js +1 -1
  97. package/lib/aws/compute/port.js +1 -1
  98. package/lib/aws/compute/prefix-list.js +1 -1
  99. package/lib/aws/compute/route.js +8 -8
  100. package/lib/aws/compute/security-group.js +1 -1
  101. package/lib/aws/compute/state-graph.js +1 -1
  102. package/lib/aws/compute/state-machine-fragment.js +1 -1
  103. package/lib/aws/compute/state-machine.js +4 -4
  104. package/lib/aws/compute/states/choice.js +1 -1
  105. package/lib/aws/compute/states/custom-state.js +1 -1
  106. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  107. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  108. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  109. package/lib/aws/compute/states/distributed-map.js +1 -1
  110. package/lib/aws/compute/states/fail.js +1 -1
  111. package/lib/aws/compute/states/map-base.js +1 -1
  112. package/lib/aws/compute/states/map.js +1 -1
  113. package/lib/aws/compute/states/parallel.js +1 -1
  114. package/lib/aws/compute/states/pass.js +2 -2
  115. package/lib/aws/compute/states/state.js +1 -1
  116. package/lib/aws/compute/states/succeed.js +1 -1
  117. package/lib/aws/compute/states/task-base.js +2 -2
  118. package/lib/aws/compute/states/task.js +1 -1
  119. package/lib/aws/compute/states/wait.js +2 -2
  120. package/lib/aws/compute/subnet-v2.js +2 -2
  121. package/lib/aws/compute/subnet.js +1 -1
  122. package/lib/aws/compute/task-credentials.js +1 -1
  123. package/lib/aws/compute/task-input.js +1 -1
  124. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  125. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  126. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  127. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  128. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  129. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  130. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  131. package/lib/aws/compute/types.js +1 -1
  132. package/lib/aws/compute/user-data.js +3 -3
  133. package/lib/aws/compute/volume.js +2 -2
  134. package/lib/aws/compute/vpc-endpoint-service.js +1 -1
  135. package/lib/aws/compute/vpc-endpoint.js +6 -6
  136. package/lib/aws/compute/vpc-flow-logs.js +4 -4
  137. package/lib/aws/compute/vpc-v2-base.js +1 -1
  138. package/lib/aws/compute/vpc-v2.js +2 -2
  139. package/lib/aws/compute/vpc.js +4 -4
  140. package/lib/aws/compute/vpn.js +3 -3
  141. package/lib/aws/edge/certificate.js +1 -1
  142. package/lib/aws/edge/distribution.js +3 -3
  143. package/lib/aws/edge/dns-alias-record-targets.js +3 -3
  144. package/lib/aws/edge/dns-record.js +13 -13
  145. package/lib/aws/edge/dns-zone.js +1 -1
  146. package/lib/aws/edge/function.js +2 -2
  147. package/lib/aws/edge/key-value-store.js +4 -4
  148. package/lib/aws/edge/origin.js +3 -3
  149. package/lib/aws/edge/response-headers-policy.js +1 -1
  150. package/lib/aws/encryption/alias.js +1 -1
  151. package/lib/aws/encryption/key.js +1 -1
  152. package/lib/aws/encryption/via-service-principal.js +1 -1
  153. package/lib/aws/iam/grant.js +2 -2
  154. package/lib/aws/iam/group.js +1 -1
  155. package/lib/aws/iam/instance-profile.js +1 -1
  156. package/lib/aws/iam/managed-policy.js +1 -1
  157. package/lib/aws/iam/oidc-provider.js +1 -1
  158. package/lib/aws/iam/policy-document.js +1 -1
  159. package/lib/aws/iam/policy-statement.js +1 -1
  160. package/lib/aws/iam/policy.js +1 -1
  161. package/lib/aws/iam/principals.js +20 -20
  162. package/lib/aws/iam/role.js +1 -1
  163. package/lib/aws/iam/saml-provider.js +2 -2
  164. package/lib/aws/iam/unknown-principal.js +1 -1
  165. package/lib/aws/iam/user.js +1 -1
  166. package/lib/aws/network/simple-ipv4-vpc.js +1 -1
  167. package/lib/aws/network/subnet-group.js +3 -3
  168. package/lib/aws/network/subnet.js +4 -4
  169. package/lib/aws/notify/archive.js +1 -1
  170. package/lib/aws/notify/connection.js +3 -3
  171. package/lib/aws/notify/event-bus.js +3 -3
  172. package/lib/aws/notify/event-pattern.js +1 -1
  173. package/lib/aws/notify/index.d.ts +1 -0
  174. package/lib/aws/notify/index.js +5 -2
  175. package/lib/aws/notify/input.js +2 -2
  176. package/lib/aws/notify/kinesis-stream.js +1 -1
  177. package/lib/aws/notify/notification-rule.js +1 -1
  178. package/lib/aws/notify/policy.js +1 -1
  179. package/lib/aws/notify/queue-policy.js +1 -1
  180. package/lib/aws/notify/queue.js +1 -1
  181. package/lib/aws/notify/resource-policy.js +1 -1
  182. package/lib/aws/notify/rule.js +1 -1
  183. package/lib/aws/notify/schedule.js +1 -1
  184. package/lib/aws/notify/subscription-filter.js +1 -1
  185. package/lib/aws/notify/subscription.js +7 -5
  186. package/lib/aws/notify/subscriptions/email.d.ts +28 -0
  187. package/lib/aws/notify/subscriptions/email.js +37 -0
  188. package/lib/aws/notify/subscriptions/index.d.ts +6 -0
  189. package/lib/aws/notify/subscriptions/index.js +23 -0
  190. package/lib/aws/notify/subscriptions/lambda.d.ts +21 -0
  191. package/lib/aws/notify/subscriptions/lambda.js +69 -0
  192. package/lib/aws/notify/subscriptions/sms.d.ts +16 -0
  193. package/lib/aws/notify/subscriptions/sms.js +29 -0
  194. package/lib/aws/notify/subscriptions/sqs.d.ts +28 -0
  195. package/lib/aws/notify/subscriptions/sqs.js +107 -0
  196. package/lib/aws/notify/subscriptions/subscription.d.ts +31 -0
  197. package/lib/aws/notify/subscriptions/subscription.js +4 -0
  198. package/lib/aws/notify/subscriptions/url.d.ts +45 -0
  199. package/lib/aws/notify/subscriptions/url.js +57 -0
  200. package/lib/aws/notify/targets/event-bus.js +1 -1
  201. package/lib/aws/notify/targets/function.js +1 -1
  202. package/lib/aws/notify/targets/log-group.js +2 -2
  203. package/lib/aws/notify/targets/sqs.js +1 -1
  204. package/lib/aws/notify/targets/state-machine.js +1 -1
  205. package/lib/aws/notify/topic-base.js +1 -1
  206. package/lib/aws/notify/topic.js +1 -1
  207. package/lib/aws/storage/bucket-notifications.js +1 -1
  208. package/lib/aws/storage/bucket-policy.js +1 -1
  209. package/lib/aws/storage/bucket-source.js +1 -1
  210. package/lib/aws/storage/bucket.js +2 -2
  211. package/lib/aws/storage/notification-targets/function.js +1 -1
  212. package/lib/aws/storage/notification-targets/queue.js +1 -1
  213. package/lib/aws/storage/origin-access-identity.js +1 -1
  214. package/lib/aws/storage/parameter.js +2 -2
  215. package/lib/construct-base.js +2 -2
  216. package/lib/duration.js +1 -1
  217. package/lib/expiration.js +1 -1
  218. package/lib/size.js +1 -1
  219. package/lib/stack-base.js +1 -1
  220. package/lib/terra-func.js +1 -1
  221. package/package.json +1 -1
@@ -224,5 +224,5 @@ class Rule extends aws_construct_1.AwsConstructBase {
224
224
  }
225
225
  exports.Rule = Rule;
226
226
  _a = JSII_RTTI_SYMBOL_1;
227
- Rule[_a] = { fqn: "terraconstructs.aws.notify.Rule", version: "0.0.19" };
227
+ Rule[_a] = { fqn: "terraconstructs.aws.notify.Rule", version: "0.0.20" };
228
228
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L3J1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyRkFBMkY7QUFFM0Ysc0RBSTZCO0FBQzdCLGlDQUFvQztBQUVwQyxnQ0FBbUM7QUFDbkMsb0RBSTBCO0FBQzFCLDRDQUF3QztBQVF4QyxpQ0FBK0Q7QUFvRy9ELE1BQWEsSUFBSyxTQUFRLGdDQUFnQjtJQUN4Qzs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQzVCLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixZQUFvQjtRQUVwQixNQUFNLEtBQUssR0FBRyxvQkFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQ25ELFlBQVksRUFDWixlQUFTLENBQUMsbUJBQW1CLENBQzlCLENBQUM7UUFFRixNQUFNLE1BQU8sU0FBUSxnQ0FBZ0I7WUFBckM7O2dCQUNTLFlBQU8sR0FBRyxZQUFZLENBQUM7Z0JBQ3ZCLGFBQVEsR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztnQkFDcEMsZ0JBQVcsR0FBRztvQkFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO29CQUNuQixHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU87aUJBQ2xCLENBQUM7Z0JBQ0ssWUFBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDcEMsQ0FBQztTQUFBO1FBQ0QsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQzNCLGtCQUFrQixFQUFFLFlBQVk7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUM1QixDQUFDO0lB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LGFBQWEsS0FBSyxTQUFTO2dCQUNyQyxDQUFDLENBQUM7b0JBQ0UsYUFBYSxFQUFFLFVBQVUsQ0FBQyxhQUFhO29CQUN2QyxVQUFVLEVBQUUsVUFBVSxDQUFDLGFBQWE7aUJBQ3JDO2dCQUNILENBQUMsQ0FBQyxTQUFTO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVztRQUNoQjs7V0FFRztRQUNILEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xDLDhDQUE4QztZQUM5QyxtR0FBbUc7WUFDbkcsNEdBQTRHO1lBQzVHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFFBQVMsQ0FBQztnQkFBRSxTQUFTLENBQUMsOEJBQThCO1lBQ3RGLElBQUksb0NBQXFCLENBQUMscUJBQXFCLENBQzdDLElBQUksRUFDSixNQUFNLENBQUMsUUFBUyxFQUNoQixNQUFNLENBQ1AsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7O0FBOVBILG9CQStQQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE1Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1ldmVudHMvbGliL3J1bGUudHNcblxuaW1wb3J0IHtcbiAgY2xvdWR3YXRjaEV2ZW50UnVsZSxcbiAgY2xvdWR3YXRjaEV2ZW50VGFyZ2V0LFxuICAvL3NjaGVkdWxlclNjaGVkdWxlR3JvdXAgLy9UT0RPOiBzdXBwb3J0IHNjaGVkdWxlciBncm91cHM/XG59IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBMYXp5LCBUb2tlbiB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEFybkZvcm1hdCB9IGZyb20gXCIuLi9hcm5cIjtcbmltcG9ydCB7XG4gIEF3c0NvbnN0cnVjdEJhc2UsXG4gIElBd3NDb25zdHJ1Y3QsXG4gIEF3c0NvbnN0cnVjdFByb3BzLFxufSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQge1xuICBTY2hlZHVsZSxcbiAgRXZlbnRQYXR0ZXJuLFxuICBJUnVsZVRhcmdldCxcbiAgSUV2ZW50QnVzLFxuICBFdmVudENvbW1vbk9wdGlvbnMsXG59IGZyb20gXCIuL1wiO1xuaW1wb3J0IHsgbWVyZ2VFdmVudFBhdHRlcm4sIHJlbmRlckV2ZW50UGF0dGVybiB9IGZyb20gXCIuL3V0aWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBSdWxlUHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcywgRXZlbnRDb21tb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBydWxlIGlzIGVuYWJsZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSdWxlIE5hbWUgcHJlZml4IHRvIGFwcGVuZCB0byBHcmlkIFVVSURcbiAgICpcbiAgICogUnVsZSBuYW1lcyBtdXN0IGJlIG1hZGUgdXAgb2Ygb25seSB1cHBlcmNhc2UgYW5kIGxvd2VyY2FzZSBBU0NJSSBsZXR0ZXJzLFxuICAgKiBudW1iZXJzLCB1bmRlcnNjb3JlcywgYW5kIGh5cGhlbnMsIGFuZCBEdWUgdG8gdGhlIGxlbmd0aCBvZiB0aGUgdGYgZ2VuZXJhdGVkXG4gICAqIHN1ZmZpeCwgbXVzdCBiZSA2NCBjaGFyYWN0ZXJzIG9yIGxlc3MgbG9uZy5cbiAgICpcbiAgICpcbiAgICogQGRlZmF1bHQgLSBHcmlkVVVJRCArIFN0YWNrIFVuaXF1ZSBOYW1lXG4gICAqL1xuICByZWFkb25seSBuYW1lUHJlZml4Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2NoZWR1bGUgb3IgcmF0ZSAoZnJlcXVlbmN5KSB0aGF0IGRldGVybWluZXMgd2hlbiBFdmVudEJyaWRnZVxuICAgKiBydW5zIHRoZSBydWxlLlxuICAgKlxuICAgKiBZb3UgbXVzdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHksIHRoZSBgZXZlbnRQYXR0ZXJuYCBwcm9wZXJ0eSwgb3IgYm90aC5cbiAgICpcbiAgICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBTY2hlZHVsZSBFeHByZXNzaW9uIFN5bnRheCBmb3JcbiAgICogUnVsZXMgaW4gdGhlIEFtYXpvbiBFdmVudEJyaWRnZSBVc2VyIEd1aWRlLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9ldmVudGJyaWRnZS9sYXRlc3QvdXNlcmd1aWRlL3NjaGVkdWxlZC1ldmVudHMuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmUuXG4gICAqL1xuICByZWFkb25seSBzY2hlZHVsZT86IFNjaGVkdWxlO1xuXG4gIC8qKlxuICAgKiBUYXJnZXRzIHRvIGludm9rZSB3aGVuIHRoaXMgcnVsZSBtYXRjaGVzIGFuIGV2ZW50LlxuICAgKlxuICAgKiBJbnB1dCB3aWxsIGJlIHRoZSBmdWxsIG1hdGNoZWQgZXZlbnQuIElmIHlvdSB3aXNoIHRvIHNwZWNpZnkgY3VzdG9tXG4gICAqIHRhcmdldCBpbnB1dCwgdXNlIGBhZGRUYXJnZXQodGFyZ2V0WywgaW5wdXRPcHRpb25zXSlgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHRhcmdldHMuXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRzPzogSVJ1bGVUYXJnZXRbXTtcblxuICAvKipcbiAgICogVGhlIGV2ZW50IGJ1cyB0byBhc3NvY2lhdGUgd2l0aCB0aGlzIHJ1bGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIGRlZmF1bHQgZXZlbnQgYnVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRCdXM/OiBJRXZlbnRCdXM7XG5cbiAgLy8gLyoqXG4gIC8vICAqIEFkZGl0aW9uYWwgcmVzdHJpY3Rpb25zIGZvciB0aGUgZXZlbnQgdG8gcm91dGUgdG8gdGhlIHNwZWNpZmllZCB0YXJnZXRcbiAgLy8gICpcbiAgLy8gICogVGhlIG1ldGhvZCB0aGF0IGdlbmVyYXRlcyB0aGUgcnVsZSBwcm9iYWJseSBpbXBvc2VzIHNvbWUgdHlwZSBvZiBldmVudFxuICAvLyAgKiBmaWx0ZXJpbmcuIFRoZSBmaWx0ZXJpbmcgaW1wbGllZCBieSB3aGF0IHlvdSBwYXNzIGhlcmUgaXMgYWRkZWRcbiAgLy8gICogb24gdG9wIG9mIHRoYXQgZmlsdGVyaW5nLlxuICAvLyAgKlxuICAvLyAgKiBAZGVmYXVsdCAtIE5vIGFkZGl0aW9uYWwgZmlsdGVyaW5nIGJhc2VkIG9uIGFuIGV2ZW50IHBhdHRlcm4uXG4gIC8vICAqXG4gIC8vICAqIEBzZWVcbiAgLy8gICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2V2ZW50YnJpZGdlL2xhdGVzdC91c2VyZ3VpZGUvZXZlbnRicmlkZ2UtYW5kLWV2ZW50LXBhdHRlcm5zLmh0bWxcbiAgLy8gICovXG4gIC8vIHJlYWRvbmx5IGV2ZW50UGF0dGVybj86IEV2ZW50UGF0dGVybjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSdWxlT3V0cHV0cyB7XG4gIC8qKlxuICAgKiBSdWxlIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogUnVsZSBhcm5cbiAgICovXG4gIHJlYWRvbmx5IGFybjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElSdWxlIGV4dGVuZHMgSUF3c0NvbnN0cnVjdCB7XG4gIC8qKiBTdHJvbmdseSB0eXBlZCBvdXRwdXRzICovXG4gIHJlYWRvbmx5IHJ1bGVPdXRwdXRzOiBSdWxlT3V0cHV0cztcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgZXZlbnQgcnVsZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSwgc3VjaCBhc1xuICAgKiBhcm46YXdzOmV2ZW50czp1cy1lYXN0LTI6MTIzNDU2Nzg5MDEyOnJ1bGUvZXhhbXBsZS5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgcnVsZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBldmVudCBydWxlXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHJ1bGVOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBSdWxlIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElSdWxlIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBFdmVudEJyaWRnZSBSdWxlIHByb3ZpZGVkIGFuIEFSTlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKS5cbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lLlxuICAgKiBAcGFyYW0gZXZlbnRSdWxlQXJuIEV2ZW50IFJ1bGUgQVJOIChpLmUuIGFybjphd3M6ZXZlbnRzOjxyZWdpb24+OjxhY2NvdW50LWlkPjpydWxlL015U2NoZWR1bGVkUnVsZSkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21FdmVudFJ1bGVBcm4oXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGV2ZW50UnVsZUFybjogc3RyaW5nLFxuICApOiBJUnVsZSB7XG4gICAgY29uc3QgcGFydHMgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSkuc3BsaXRBcm4oXG4gICAgICBldmVudFJ1bGVBcm4sXG4gICAgICBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICApO1xuXG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElSdWxlIHtcbiAgICAgIHB1YmxpYyBydWxlQXJuID0gZXZlbnRSdWxlQXJuO1xuICAgICAgcHVibGljIHJ1bGVOYW1lID0gcGFydHMucmVzb3VyY2VOYW1lIHx8IFwiXCI7XG4gICAgICBwdWJsaWMgcnVsZU91dHB1dHMgPSB7XG4gICAgICAgIG5hbWU6IHRoaXMucnVsZU5hbWUsXG4gICAgICAgIGFybjogdGhpcy5ydWxlQXJuLFxuICAgICAgfTtcbiAgICAgIHB1YmxpYyBvdXRwdXRzID0gdGhpcy5ydWxlT3V0cHV0cztcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkLCB7XG4gICAgICBlbnZpcm9ubWVudEZyb21Bcm46IGV2ZW50UnVsZUFybixcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogY2xvdWR3YXRjaEV2ZW50UnVsZS5DbG91ZHdhdGNoRXZlbnRSdWxlO1xuICBwdWJsaWMgZ2V0IHJ1bGVBcm4oKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2UuYXJuO1xuICB9XG4gIHB1YmxpYyBnZXQgcnVsZU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2UubmFtZTtcbiAgfVxuICBwdWJsaWMgZ2V0IHJ1bGVPdXRwdXRzKCk6IFJ1bGVPdXRwdXRzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdGhpcy5ydWxlTmFtZSxcbiAgICAgIGFybjogdGhpcy5ydWxlQXJuLFxuICAgIH07XG4gIH1cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLnJ1bGVPdXRwdXRzO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0YXJnZXRzID1cbiAgICBuZXcgQXJyYXk8Y2xvdWR3YXRjaEV2ZW50VGFyZ2V0LkNsb3Vkd2F0Y2hFdmVudFRhcmdldENvbmZpZz4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBldmVudFBhdHRlcm46IEV2ZW50UGF0dGVybiA9IHt9O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2NoZWR1bGVFeHByZXNzaW9uPzogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcsIHByb3BzOiBSdWxlUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBuYW1lLCBwcm9wcyk7XG5cbiAgICBpZiAocHJvcHMuZXZlbnRCdXMgJiYgcHJvcHMuc2NoZWR1bGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJDYW5ub3QgYXNzb2NpYXRlIHJ1bGUgd2l0aCAnZXZlbnRCdXMnIHdoZW4gdXNpbmcgJ3NjaGVkdWxlJ1wiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgbmFtZVByZWZpeDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGlmICghcHJvcHMucnVsZU5hbWUpIHtcbiAgICAgIG5hbWVQcmVmaXggPSB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZVByZWZpeCh0aGlzLCB7XG4gICAgICAgIHByZWZpeDogcHJvcHMubmFtZVByZWZpeCA/PyB0aGlzLmdyaWRVVUlEICsgXCItXCIsXG4gICAgICAgIGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyczogXCIuLV9cIixcbiAgICAgICAgbWF4TGVuZ3RoOiA2NCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gcHJvcHMuZGVzY3JpcHRpb247XG4gICAgdGhpcy5zY2hlZHVsZUV4cHJlc3Npb24gPSBwcm9wcy5zY2hlZHVsZT8uZXhwcmVzc2lvblN0cmluZztcblxuICAgIC8vIGFkZCBhIHdhcm5pbmcgb24gc3ludGggd2hlbiBtaW51dGUgaXMgbm90IGRlZmluZWQgaW4gYSBjcm9uIHNjaGVkdWxlXG4gICAgcHJvcHMuc2NoZWR1bGU/Ll9iaW5kKHRoaXMpO1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBjbG91ZHdhdGNoRXZlbnRSdWxlLkNsb3Vkd2F0Y2hFdmVudFJ1bGUoXG4gICAgICB0aGlzLFxuICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAge1xuICAgICAgICBuYW1lOiBwcm9wcy5ydWxlTmFtZSxcbiAgICAgICAgbmFtZVByZWZpeCxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICAgIHN0YXRlOlxuICAgICAgICAgIHByb3BzLmVuYWJsZWQgPT0gbnVsbFxuICAgICAgICAgICAgPyBcIkVOQUJMRURcIlxuICAgICAgICAgICAgOiBwcm9wcy5lbmFibGVkXG4gICAgICAgICAgICAgID8gXCJFTkFCTEVEXCJcbiAgICAgICAgICAgICAgOiBcIkRJU0FCTEVEXCIsIC8vVE9ETzogc3VwcG9ydCBFTkFCTEVEX1dJVEhfQUxMX0NMT1VEVFJBSUxfTUFOQUdFTUVOVF9FVkVOVFM/XG4gICAgICAgIHNjaGVkdWxlRXhwcmVzc2lvbjogdGhpcy5zY2hlZHVsZUV4cHJlc3Npb24sXG4gICAgICAgIGV2ZW50UGF0dGVybjogTGF6eS5zdHJpbmdWYWx1ZSh7XG4gICAgICAgICAgcHJvZHVjZTogKCkgPT4gdGhpcy5zdGFjay50b0pzb25TdHJpbmcodGhpcy5fcmVuZGVyRXZlbnRQYXR0ZXJuKCkpLFxuICAgICAgICB9KSxcbiAgICAgICAgLy8gdGVycmFmb3JtLXByb3ZpZGVyLWF3cyBzZXBhcmF0ZXMgdGFyZ2V0cyB0byBkaWZmZXJlbnQgcmVzb3VyY2VzLlxuICAgICAgICAvLyB0YXJnZXRzOiBMYXp5LmFueVZhbHVlKHsgcHJvZHVjZTogKCkgPT4gdGhpcy5yZW5kZXJUYXJnZXRzKCkgfSksXG4gICAgICAgIGV2ZW50QnVzTmFtZTogcHJvcHMuZXZlbnRCdXM/LmV2ZW50QnVzTmFtZSxcbiAgICAgICAgZGVwZW5kc09uOiBwcm9wcy5kZXBlbmRzT24sXG4gICAgICB9LFxuICAgICk7XG5cbiAgICB0aGlzLmFkZEV2ZW50UGF0dGVybihwcm9wcy5ldmVudFBhdHRlcm4pO1xuXG4gICAgZm9yIChjb25zdCB0YXJnZXQgb2YgcHJvcHMudGFyZ2V0cyB8fCBbXSkge1xuICAgICAgdGhpcy5hZGRUYXJnZXQodGFyZ2V0KTtcbiAgICB9XG5cbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbih7XG4gICAgICB2YWxpZGF0ZTogKCkgPT4gdGhpcy52YWxpZGF0ZVJ1bGUocHJvcHMucnVsZU5hbWUpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gZXZlbnQgcGF0dGVybiBmaWx0ZXIgdG8gdGhpcyBydWxlLiBJZiBhIHBhdHRlcm4gd2FzIGFscmVhZHkgc3BlY2lmaWVkLFxuICAgKiB0aGVzZSB2YWx1ZXMgYXJlIG1lcmdlZCBpbnRvIHRoZSBleGlzdGluZyBwYXR0ZXJuLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgaWYgdGhlIHJ1bGUgYWxyZWFkeSBjb250YWlucyB0aGUgcGF0dGVybjpcbiAgICpcbiAgICogICAge1xuICAgKiAgICAgIFwicmVzb3VyY2VzXCI6IFsgXCJyMVwiIF0sXG4gICAqICAgICAgXCJkZXRhaWxcIjoge1xuICAgKiAgICAgICAgXCJoZWxsb1wiOiBbIDEgXVxuICAgKiAgICAgIH1cbiAgICogICAgfVxuICAgKlxuICAgKiBBbmQgYGFkZEV2ZW50UGF0dGVybmAgaXMgY2FsbGVkIHdpdGggdGhlIHBhdHRlcm46XG4gICAqXG4gICAqICAgIHtcbiAgICogICAgICBcInJlc291cmNlc1wiOiBbIFwicjJcIiBdLFxuICAgKiAgICAgIFwiZGV0YWlsXCI6IHtcbiAgICogICAgICAgIFwiZm9vXCI6IFsgXCJiYXJcIiBdXG4gICAqICAgICAgfVxuICAgKiAgICB9XG4gICAqXG4gICAqIFRoZSByZXN1bHRpbmcgZXZlbnQgcGF0dGVybiB3aWxsIGJlOlxuICAgKlxuICAgKiAgICB7XG4gICAqICAgICAgXCJyZXNvdXJjZXNcIjogWyBcInIxXCIsIFwicjJcIiBdLFxuICAgKiAgICAgIFwiZGV0YWlsXCI6IHtcbiAgICogICAgICAgIFwiaGVsbG9cIjogWyAxIF0sXG4gICAqICAgICAgICBcImZvb1wiOiBbIFwiYmFyXCIgXVxuICAgKiAgICAgIH1cbiAgICogICAgfVxuICAgKlxuICAgKi9cbiAgcHVibGljIGFkZEV2ZW50UGF0dGVybihldmVudFBhdHRlcm4/OiBFdmVudFBhdHRlcm4pIHtcbiAgICBpZiAoIWV2ZW50UGF0dGVybikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBtZXJnZUV2ZW50UGF0dGVybih0aGlzLmV2ZW50UGF0dGVybiwgZXZlbnRQYXR0ZXJuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3QgcHJpdmF0ZSBvbmx5IHRvIGJlIG92ZXJyaWRlZW4gaW4gQ29weVJ1bGUuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF9yZW5kZXJFdmVudFBhdHRlcm4oKTogYW55IHtcbiAgICByZXR1cm4gcmVuZGVyRXZlbnRQYXR0ZXJuKHRoaXMuZXZlbnRQYXR0ZXJuKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB2YWxpZGF0ZVJ1bGUocnVsZU5hbWU/OiBzdHJpbmcpIHtcbiAgICBpZiAocnVsZU5hbWUgIT09IHVuZGVmaW5lZCAmJiAhVG9rZW4uaXNVbnJlc29sdmVkKHJ1bGVOYW1lKSkge1xuICAgICAgaWYgKHJ1bGVOYW1lLmxlbmd0aCA8IDEgfHwgcnVsZU5hbWUubGVuZ3RoID4gNjQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBFdmVudCBydWxlIG5hbWUgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDY0IGNoYXJhY3RlcnMuIFJlY2VpdmVkOiAke3J1bGVOYW1lfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoIS9eW1xcLlxcLV9BLVphLXowLTldKyQvLnRlc3QocnVsZU5hbWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgRXZlbnQgcnVsZSBuYW1lICR7cnVsZU5hbWV9IGNhbiBjb250YWluIG9ubHkgbGV0dGVycywgbnVtYmVycywgcGVyaW9kcywgaHlwaGVucywgb3IgdW5kZXJzY29yZXMgd2l0aCBubyBzcGFjZXMuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKFxuICAgICAgT2JqZWN0LmtleXModGhpcy5ldmVudFBhdHRlcm4pLmxlbmd0aCA9PT0gMCAmJlxuICAgICAgIXRoaXMuc2NoZWR1bGVFeHByZXNzaW9uXG4gICAgKSB7XG4gICAgICBlcnJvcnMucHVzaChcIkVpdGhlciAnZXZlbnRQYXR0ZXJuJyBvciAnc2NoZWR1bGUnIG11c3QgYmUgZGVmaW5lZFwiKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50YXJnZXRzLmxlbmd0aCA+IDUpIHtcbiAgICAgIGVycm9ycy5wdXNoKFwiRXZlbnQgcnVsZSBjYW5ub3QgaGF2ZSBtb3JlIHRoYW4gNSB0YXJnZXRzLlwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSB0YXJnZXQgdG8gdGhlIHJ1bGUuIFRoZSBhYnN0cmFjdCBjbGFzcyBSdWxlVGFyZ2V0IGNhbiBiZSBleHRlbmRlZCB0byBkZWZpbmUgbmV3XG4gICAqIHRhcmdldHMuXG4gICAqXG4gICAqIE5vLW9wIGlmIHRhcmdldCBpcyB1bmRlZmluZWQuXG4gICAqL1xuICBwdWJsaWMgYWRkVGFyZ2V0KHRhcmdldD86IElSdWxlVGFyZ2V0KTogdm9pZCB7XG4gICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gU2ltcGx5IGluY3JlbWVudCBpZCBmb3IgZWFjaCBgYWRkVGFyZ2V0YCBjYWxsLiBUaGlzIGlzIGd1YXJhbnRlZWQgdG8gYmUgdW5pcXVlLlxuICAgIGNvbnN0IHRhcmdldElkID0gYFRhcmdldCR7dGhpcy50YXJnZXRzLmxlbmd0aH1gO1xuICAgIGNvbnN0IHRhcmdldFByb3BzID0gdGFyZ2V0LmJpbmQodGhpcywgdGFyZ2V0SWQpO1xuICAgIGNvbnN0IGlucHV0UHJvcHMgPSB0YXJnZXRQcm9wcy5pbnB1dCAmJiB0YXJnZXRQcm9wcy5pbnB1dC5iaW5kKHRoaXMpO1xuICAgIHRoaXMudGFyZ2V0cy5wdXNoKHtcbiAgICAgIHRhcmdldElkLFxuICAgICAgcm9sZUFybjogdGFyZ2V0UHJvcHMucm9sZT8ucm9sZUFybixcbiAgICAgIHJ1bGU6IHRoaXMucmVzb3VyY2UubmFtZSxcbiAgICAgIGFybjogdGFyZ2V0UHJvcHMuYXJuLFxuICAgICAgZWNzVGFyZ2V0OiB0YXJnZXRQcm9wcy5lY3NQYXJhbWV0ZXJzLFxuICAgICAgaHR0cFRhcmdldDogdGFyZ2V0UHJvcHMuaHR0cFBhcmFtZXRlcnMsXG4gICAgICBraW5lc2lzVGFyZ2V0OiB0YXJnZXRQcm9wcy5raW5lc2lzUGFyYW1ldGVycyxcbiAgICAgIHJ1bkNvbW1hbmRUYXJnZXRzOiB0YXJnZXRQcm9wcy5ydW5Db21tYW5kUGFyYW1ldGVycyxcbiAgICAgIGJhdGNoVGFyZ2V0OiB0YXJnZXRQcm9wcy5iYXRjaFBhcmFtZXRlcnMsXG4gICAgICBkZWFkTGV0dGVyQ29uZmlnOiB0YXJnZXRQcm9wcy5kZWFkTGV0dGVyQ29uZmlnLFxuICAgICAgcmV0cnlQb2xpY3k6IHRhcmdldFByb3BzLnJldHJ5UG9saWN5LFxuICAgICAgc3FzVGFyZ2V0OiB0YXJnZXRQcm9wcy5zcXNQYXJhbWV0ZXJzLFxuICAgICAgcmVkc2hpZnRUYXJnZXQ6IHRhcmdldFByb3BzLnJlZHNoaWZ0RGF0YVBhcmFtZXRlcnMsXG4gICAgICAvLyBUT0RPOiBub3QgYXZhaWxhYmxlIGluIHRlcnJhZm9ybS1wcm92aWRlci1hd3NcbiAgICAgIC8vIGFwcFN5bmNQYXJhbWV0ZXJzOiB0YXJnZXRQcm9wcy5hcHBTeW5jUGFyYW1ldGVycyxcbiAgICAgIGlucHV0OiBpbnB1dFByb3BzICYmIGlucHV0UHJvcHMuaW5wdXQsXG4gICAgICBpbnB1dFBhdGg6IGlucHV0UHJvcHMgJiYgaW5wdXRQcm9wcy5pbnB1dFBhdGgsXG4gICAgICBpbnB1dFRyYW5zZm9ybWVyOlxuICAgICAgICBpbnB1dFByb3BzPy5pbnB1dFRlbXBsYXRlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgaW5wdXRUZW1wbGF0ZTogaW5wdXRQcm9wcy5pbnB1dFRlbXBsYXRlLFxuICAgICAgICAgICAgICBpbnB1dFBhdGhzOiBpbnB1dFByb3BzLmlucHV0UGF0aHNNYXAsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyByZXNvdXJjZSB0byB0aGUgVGVycmFmb3JtIEpTT04gb3V0cHV0IGF0IFN5bnRoIHRpbWUuXG4gICAqXG4gICAqIGNhbGxlZCBieSBUZXJyYWZvcm1TdGFjay5wcmVwYXJlU3RhY2soKVxuICAgKi9cbiAgcHVibGljIHRvVGVycmFmb3JtKCk6IGFueSB7XG4gICAgLyoqXG4gICAgICogQSBwcmVwYXJpbmcgcmVzb2x2ZSBtaWdodCBhZGQgbmV3IHJlc291cmNlcyB0byB0aGUgc3RhY2tcbiAgICAgKi9cbiAgICBmb3IgKGNvbnN0IHRhcmdldCBvZiB0aGlzLnRhcmdldHMpIHtcbiAgICAgIC8vIG5vdGU6IHRhcmdldElkIGlzIGNhbGN1bGF0ZWQgaW4gYWRkVGFyZ2V0KClcbiAgICAgIC8vIFRPRE86IElkZWFsbHkgd2Ugc2hvdWxkIGhhdmUgdXNlZCBJUmVzb2x2YWJsZS5yZXNvbHZlIGFuZCB1c2UgdGhlIElSZXNvbHZlQ29udGV4dC5wcmVwYXJpbmcgZmxhZ1xuICAgICAgLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzAuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtaWFtL2xpYi9wb2xpY3ktZG9jdW1lbnQudHMjTDQ4XG4gICAgICBpZiAodGhpcy5ub2RlLnRyeUZpbmRDaGlsZCh0YXJnZXQudGFyZ2V0SWQhKSkgY29udGludWU7IC8vIGlnbm9yZSBpZiBhbHJlYWR5IGdlbmVyYXRlZFxuICAgICAgbmV3IGNsb3Vkd2F0Y2hFdmVudFRhcmdldC5DbG91ZHdhdGNoRXZlbnRUYXJnZXQoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHRhcmdldC50YXJnZXRJZCEsXG4gICAgICAgIHRhcmdldCxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB7fTtcbiAgfVxufVxuIl19
@@ -85,7 +85,7 @@ class Schedule {
85
85
  }
86
86
  exports.Schedule = Schedule;
87
87
  _a = JSII_RTTI_SYMBOL_1;
88
- Schedule[_a] = { fqn: "terraconstructs.aws.notify.Schedule", version: "0.0.19" };
88
+ Schedule[_a] = { fqn: "terraconstructs.aws.notify.Schedule", version: "0.0.20" };
89
89
  class LiteralSchedule extends Schedule {
90
90
  constructor(expressionString) {
91
91
  super();
@@ -101,5 +101,5 @@ class SubscriptionFilter {
101
101
  }
102
102
  exports.SubscriptionFilter = SubscriptionFilter;
103
103
  _a = JSII_RTTI_SYMBOL_1;
104
- SubscriptionFilter[_a] = { fqn: "terraconstructs.aws.notify.SubscriptionFilter", version: "0.0.19" };
104
+ SubscriptionFilter[_a] = { fqn: "terraconstructs.aws.notify.SubscriptionFilter", version: "0.0.20" };
105
105
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L3N1YnNjcmlwdGlvbi1maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFpSUE7O0dBRUc7QUFDSCxNQUFhLGtCQUFrQjtJQUM3Qjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsZ0JBQWtDO1FBQzNELE1BQU0sVUFBVSxHQUFHLElBQUksS0FBSyxFQUFPLENBQUM7UUFFcEMsSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLElBQUksZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDN0Qsc0NBQXNDO1lBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQ2IsMkRBQTJELENBQzVELENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLElBQUksZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDNUQsc0NBQXNDO1lBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQ2IsMERBQTBELENBQzNELENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxJQUFJLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztRQUMzRSxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksZ0JBQWdCLENBQUMsU0FBUyxDQUFDO1FBRXpFLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUVELElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUVELElBQUksZ0JBQWdCLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkMsVUFBVSxDQUFDLElBQUksQ0FDYixHQUFHLGdCQUFnQixD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QUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxJQUFJLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZO1FBQ3hCLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBNEIsYUFBb0IsRUFBRTtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUcsQ0FBQzs7QUF0SHhELGdEQXVIQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iLzc0NTI0NjI1NTBhMTAwZjViZDJkY2FiNmY0OTVjOWY2OGJmMGRiNGEvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLXNucy9saWIvc3Vic2NyaXB0aW9uLWZpbHRlci50c1xuXG4vLyBUT0RPOiBBZG9wdCBVbnNjb3BlZFZhbGlkYXRpb25FcnJvclxuLy8gLSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvcHVsbC8zMzM4Mi9cbi8vIC0gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL3B1bGwvMzMwNDVcbi8vIGltcG9ydCB7IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yIH0gZnJvbSBcIi4uLy4uL2NvcmUvbGliL2Vycm9yc1wiO1xuXG4vKipcbiAqIENvbmRpdGlvbnMgdGhhdCBjYW4gYmUgYXBwbGllZCB0byBzdHJpbmcgYXR0cmlidXRlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJpbmdDb25kaXRpb25zIHtcbiAgLyoqXG4gICAqIE1hdGNoIG9uZSBvciBtb3JlIHZhbHVlcy5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBhbGxvd2xpc3RgXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgd2hpdGVsaXN0Pzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE1hdGNoIGFueSB2YWx1ZSB0aGF0IGRvZXNuJ3QgaW5jbHVkZSBhbnkgb2YgdGhlIHNwZWNpZmllZCB2YWx1ZXMuXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgZGVueWxpc3RgXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgYmxhY2tsaXN0Pzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE1hdGNoIG9uZSBvciBtb3JlIHZhbHVlcy5cbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSBhbGxvd2xpc3Q/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTWF0Y2ggYW55IHZhbHVlIHRoYXQgZG9lc24ndCBpbmNsdWRlIGFueSBvZiB0aGUgc3BlY2lmaWVkIHZhbHVlcy5cbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSBkZW55bGlzdD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBNYXRjaGVzIHZhbHVlcyB0aGF0IGJlZ2lucyB3aXRoIHRoZSBzcGVjaWZpZWQgcHJlZml4ZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgbWF0Y2hQcmVmaXhlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBNYXRjaGVzIHZhbHVlcyB0aGF0IGVuZCB3aXRoIHRoZSBzcGVjaWZpZWQgc3VmZml4ZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgbWF0Y2hTdWZmaXhlcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEJldHdlZW4gY29uZGl0aW9uIGZvciBhIG51bWVyaWMgYXR0cmlidXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJldHdlZW5Db25kaXRpb24ge1xuICAvKipcbiAgICogVGhlIHN0YXJ0IHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhcnQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHN0b3AgdmFsdWUuXG4gICAqL1xuICByZWFkb25seSBzdG9wOiBudW1iZXI7XG59XG5cbi8qKlxuICogQ29uZGl0aW9ucyB0aGF0IGNhbiBiZSBhcHBsaWVkIHRvIG51bWVyaWMgYXR0cmlidXRlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOdW1lcmljQ29uZGl0aW9ucyB7XG4gIC8qKlxuICAgKiBNYXRjaCBvbmUgb3IgbW9yZSB2YWx1ZXMuXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgYWxsb3dsaXN0YFxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHdoaXRlbGlzdD86IG51bWJlcltdO1xuXG4gIC8qKlxuICAgKiBNYXRjaCBvbmUgb3IgbW9yZSB2YWx1ZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dsaXN0PzogbnVtYmVyW107XG5cbiAgLyoqXG4gICAqIE1hdGNoIHZhbHVlcyB0aGF0IGFyZSBncmVhdGVyIHRoYW4gdGhlIHNwZWNpZmllZCB2YWx1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSBncmVhdGVyVGhhbj86IG51bWJlcjtcblxuICAvKipcbiAgICogTWF0Y2ggdmFsdWVzIHRoYXQgYXJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGdyZWF0ZXJUaGFuT3JFcXVhbFRvPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXRjaCB2YWx1ZXMgdGhhdCBhcmUgbGVzcyB0aGFuIHRoZSBzcGVjaWZpZWQgdmFsdWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgbGVzc1RoYW4/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1hdGNoIHZhbHVlcyB0aGF0IGFyZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSBsZXNzVGhhbk9yRXF1YWxUbz86IG51bWJlcjtcblxuICAvKipcbiAgICogTWF0Y2ggdmFsdWVzIHRoYXQgYXJlIGJldHdlZW4gdGhlIHNwZWNpZmllZCB2YWx1ZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgYmV0d2Vlbj86IEJldHdlZW5Db25kaXRpb247XG5cbiAgLyoqXG4gICAqIE1hdGNoIHZhbHVlcyB0aGF0IGFyZSBzdHJpY3RseSBiZXR3ZWVuIHRoZSBzcGVjaWZpZWQgdmFsdWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGJldHdlZW5TdHJpY3Q/OiBCZXR3ZWVuQ29uZGl0aW9uO1xufVxuXG4vKipcbiAqIEEgc3Vic2NyaXB0aW9uIGZpbHRlciBmb3IgYW4gYXR0cmlidXRlLlxuICovXG5leHBvcnQgY2xhc3MgU3Vic2NyaXB0aW9uRmlsdGVyIHtcbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdWJzY3JpcHRpb24gZmlsdGVyIGZvciBhIHN0cmluZyBhdHRyaWJ1dGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN0cmluZ0ZpbHRlcihzdHJpbmdDb25kaXRpb25zOiBTdHJpbmdDb25kaXRpb25zKSB7XG4gICAgY29uc3QgY29uZGl0aW9ucyA9IG5ldyBBcnJheTxhbnk+KCk7XG5cbiAgICBpZiAoc3RyaW5nQ29uZGl0aW9ucy53aGl0ZWxpc3QgJiYgc3RyaW5nQ29uZGl0aW9ucy5hbGxvd2xpc3QpIHtcbiAgICAgIC8vIFRPRE86IEFkb3B0IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiYHdoaXRlbGlzdGAgaXMgZGVwcmVjYXRlZDsgcGxlYXNlIHVzZSBgYWxsb3dsaXN0YCBpbnN0ZWFkXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoc3RyaW5nQ29uZGl0aW9ucy5ibGFja2xpc3QgJiYgc3RyaW5nQ29uZGl0aW9ucy5kZW55bGlzdCkge1xuICAgICAgLy8gVE9ETzogQWRvcHQgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3JcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJgYmxhY2tsaXN0YCBpcyBkZXByZWNhdGVkOyBwbGVhc2UgdXNlIGBkZW55bGlzdGAgaW5zdGVhZFwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgYWxsb3dsaXN0ID0gc3RyaW5nQ29uZGl0aW9ucy5hbGxvd2xpc3QgPz8gc3RyaW5nQ29uZGl0aW9ucy53aGl0ZWxpc3Q7XG4gICAgY29uc3QgZGVueWxpc3QgPSBzdHJpbmdDb25kaXRpb25zLmRlbnlsaXN0ID8/IHN0cmluZ0NvbmRpdGlvbnMuYmxhY2tsaXN0O1xuXG4gICAgaWYgKGFsbG93bGlzdCkge1xuICAgICAgY29uZGl0aW9ucy5wdXNoKC4uLmFsbG93bGlzdCk7XG4gICAgfVxuXG4gICAgaWYgKGRlbnlsaXN0KSB7XG4gICAgICBjb25kaXRpb25zLnB1c2goeyBcImFueXRoaW5nLWJ1dFwiOiBkZW55bGlzdCB9KTtcbiAgICB9XG5cbiAgICBpZiAoc3RyaW5nQ29uZGl0aW9ucy5tYXRjaFByZWZpeGVzKSB7XG4gICAgICBjb25kaXRpb25zLnB1c2goXG4gICAgICAgIC4uLnN0cmluZ0NvbmRpdGlvbnMubWF0Y2hQcmVmaXhlcy5tYXAoKHApID0+ICh7IHByZWZpeDogcCB9KSksXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChzdHJpbmdDb25kaXRpb25zLm1hdGNoU3VmZml4ZXMpIHtcbiAgICAgIGNvbmRpdGlvbnMucHVzaChcbiAgICAgICAgLi4uc3RyaW5nQ29uZGl0aW9ucy5tYXRjaFN1ZmZpeGVzLm1hcCgocykgPT4gKHsgc3VmZml4OiBzIH0pKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBTdWJzY3JpcHRpb25GaWx0ZXIoY29uZGl0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN1YnNjcmlwdGlvbiBmaWx0ZXIgZm9yIGEgbnVtZXJpYyBhdHRyaWJ1dGUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG51bWVyaWNGaWx0ZXIobnVtZXJpY0NvbmRpdGlvbnM6IE51bWVyaWNDb25kaXRpb25zKSB7XG4gICAgY29uc3QgY29uZGl0aW9ucyA9IG5ldyBBcnJheTxhbnk+KCk7XG5cbiAgICBpZiAobnVtZXJpY0NvbmRpdGlvbnMud2hpdGVsaXN0ICYmIG51bWVyaWNDb25kaXRpb25zLmFsbG93bGlzdCkge1xuICAgICAgLy8gVE9ETzogQWRvcHQgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3JcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJgd2hpdGVsaXN0YCBpcyBkZXByZWNhdGVkOyBwbGVhc2UgdXNlIGBhbGxvd2xpc3RgIGluc3RlYWRcIixcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGFsbG93bGlzdCA9XG4gICAgICBudW1lcmljQ29uZGl0aW9ucy5hbGxvd2xpc3QgPz8gbnVtZXJpY0NvbmRpdGlvbnMud2hpdGVsaXN0O1xuXG4gICAgaWYgKGFsbG93bGlzdCkge1xuICAgICAgY29uZGl0aW9ucy5wdXNoKC4uLmFsbG93bGlzdC5tYXAoKHYpID0+ICh7IG51bWVyaWM6IFtcIj1cIiwgdl0gfSkpKTtcbiAgICB9XG5cbiAgICBpZiAobnVtZXJpY0NvbmRpdGlvbnMuZ3JlYXRlclRoYW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uZGl0aW9ucy5wdXNoKHsgbnVtZXJpYzogW1wiPlwiLCBudW1lcmljQ29uZGl0aW9ucy5ncmVhdGVyVGhhbl0gfSk7XG4gICAgfVxuXG4gICAgaWYgKG51bWVyaWNDb25kaXRpb25zLmdyZWF0ZXJUaGFuT3JFcXVhbFRvICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbmRpdGlvbnMucHVzaCh7XG4gICAgICAgIG51bWVyaWM6IFtcIj49XCIsIG51bWVyaWNDb25kaXRpb25zLmdyZWF0ZXJUaGFuT3JFcXVhbFRvXSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChudW1lcmljQ29uZGl0aW9ucy5sZXNzVGhhbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25kaXRpb25zLnB1c2goeyBudW1lcmljOiBbXCI8XCIsIG51bWVyaWNDb25kaXRpb25zLmxlc3NUaGFuXSB9KTtcbiAgICB9XG5cbiAgICBpZiAobnVtZXJpY0NvbmRpdGlvbnMubGVzc1RoYW5PckVxdWFsVG8gIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uZGl0aW9ucy5wdXNoKHsgbnVtZXJpYzogW1wiPD1cIiwgbnVtZXJpY0NvbmRpdGlvbnMubGVzc1RoYW5PckVxdWFsVG9dIH0pO1xuICAgIH1cblxuICAgIGlmIChudW1lcmljQ29uZGl0aW9ucy5iZXR3ZWVuKSB7XG4gICAgICBjb25kaXRpb25zLnB1c2goe1xuICAgICAgICBudW1lcmljOiBbXG4gICAgICAgICAgXCI+PVwiLFxuICAgICAgICAgIG51bWVyaWNDb25kaXRpb25zLmJldHdlZW4uc3RhcnQsXG4gICAgICAgICAgXCI8PVwiLFxuICAgICAgICAgIG51bWVyaWNDb25kaXRpb25zLmJldHdlZW4uc3RvcCxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChudW1lcmljQ29uZGl0aW9ucy5iZXR3ZWVuU3RyaWN0KSB7XG4gICAgICBjb25kaXRpb25zLnB1c2goe1xuICAgICAgICBudW1lcmljOiBbXG4gICAgICAgICAgXCI+XCIsXG4gICAgICAgICAgbnVtZXJpY0NvbmRpdGlvbnMuYmV0d2VlblN0cmljdC5zdGFydCxcbiAgICAgICAgICBcIjxcIixcbiAgICAgICAgICBudW1lcmljQ29uZGl0aW9ucy5iZXR3ZWVuU3RyaWN0LnN0b3AsXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbkZpbHRlcihjb25kaXRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3Vic2NyaXB0aW9uIGZpbHRlciBmb3IgYXR0cmlidXRlIGtleSBtYXRjaGluZy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXhpc3RzRmlsdGVyKCkge1xuICAgIHJldHVybiBuZXcgU3Vic2NyaXB0aW9uRmlsdGVyKFt7IGV4aXN0czogdHJ1ZSB9XSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGNvbmRpdGlvbnMgY29uZGl0aW9ucyB0aGF0IHNwZWNpZnkgdGhlIG1lc3NhZ2UgYXR0cmlidXRlcyB0aGF0IHNob3VsZCBiZSBpbmNsdWRlZCwgZXhjbHVkZWQsIG1hdGNoZWQsIGV0Yy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjb25kaXRpb25zOiBhbnlbXSA9IFtdKSB7fVxufVxuIl19
@@ -80,6 +80,8 @@ class Subscription extends aws_construct_1.AwsConstructBase {
80
80
  redrivePolicy: redrivePolicyJson,
81
81
  subscriptionRoleArn: props.subscriptionRoleArn,
82
82
  deliveryPolicy: deliveryPolicyJson,
83
+ // TODO: Bump to newer provider-aws version to get 'region' property support
84
+ // region: props.topic.stack.region,
83
85
  // confirmationTimeoutInMinutes: // Not directly available in CDK props
84
86
  // endpointAutoConfirms: // Not directly available in CDK props
85
87
  // replayPolicy: // Not directly available in CDK props (missing in AWS CDK)
@@ -207,7 +209,7 @@ class Subscription extends aws_construct_1.AwsConstructBase {
207
209
  }
208
210
  exports.Subscription = Subscription;
209
211
  _a = JSII_RTTI_SYMBOL_1;
210
- Subscription[_a] = { fqn: "terraconstructs.aws.notify.Subscription", version: "0.0.19" };
212
+ Subscription[_a] = { fqn: "terraconstructs.aws.notify.Subscription", version: "0.0.20" };
211
213
  /**
212
214
  * The type of subscription, controlling the type of the endpoint parameter.
213
215
  */
@@ -313,7 +315,7 @@ class FilterOrPolicy {
313
315
  }
314
316
  exports.FilterOrPolicy = FilterOrPolicy;
315
317
  _b = JSII_RTTI_SYMBOL_1;
316
- FilterOrPolicy[_b] = { fqn: "terraconstructs.aws.notify.FilterOrPolicy", version: "0.0.19" };
318
+ FilterOrPolicy[_b] = { fqn: "terraconstructs.aws.notify.FilterOrPolicy", version: "0.0.20" };
317
319
  /**
318
320
  * Filter implementation of FilterOrPolicy
319
321
  */
@@ -333,7 +335,7 @@ class Filter extends FilterOrPolicy {
333
335
  }
334
336
  exports.Filter = Filter;
335
337
  _c = JSII_RTTI_SYMBOL_1;
336
- Filter[_c] = { fqn: "terraconstructs.aws.notify.Filter", version: "0.0.19" };
338
+ Filter[_c] = { fqn: "terraconstructs.aws.notify.Filter", version: "0.0.20" };
337
339
  /**
338
340
  * Policy Implementation of FilterOrPolicy
339
341
  */
@@ -353,5 +355,5 @@ class Policy extends FilterOrPolicy {
353
355
  }
354
356
  exports.Policy = Policy;
355
357
  _d = JSII_RTTI_SYMBOL_1;
356
- Policy[_d] = { fqn: "terraconstructs.aws.notify.Policy", version: "0.0.19" };
357
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9ub3RpZnkvc3Vic2NyaXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0lBQWdJO0FBRWhJLHNEQUEyRDtBQUszRCxvREFBdUU7QUFDdkUsOEJBQThCO0FBZ0c5Qjs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxZQUFhLFNBQVEsZ0NBQWdCO0lBU2hELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUNoRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUNFLEtBQUssQ0FBQyxrQkFBa0I7WUFDeEI7Z0JBQ0Usb0JBQW9CLENBQUMsSUFBSTtnQkFDekIsb0JBQW9CLENBQUMsS0FBSztnQkFDMUIsb0JBQW9CLENBQUMsR0FBRztnQkFDeEIsb0JBQW9CLENBQUMsUUFBUTthQUM5QixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUM3QixDQUFDO1lBQ0QsK0JBQStCO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQ2IsNEZBQTRGLENBQzdGLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxnQkFBb0MsQ0FBQztRQUN6QyxzRkFBc0Y7UUFDdEYsSUFBSSxpQkFBa0UsQ0FBQztRQUV2RSxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLDJCQUEyQixFQUFFLENBQUM7WUFDNUQsTUFBTSxJQUFJLEtBQUssQ0FDYixtRkFBbUYsQ0FDcEYsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1B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Q2xFLE9BQU8sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQU9EOztPQUVHO0lBQ0ksUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7SUFDakQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7SUFDakQsQ0FBQzs7QUFoQ0gsd0NBaUNDOzs7QUFFRDs7R0FFRztBQUNILE1BQWEsTUFBTyxTQUFRLGNBQWM7SUFLeEM7OztPQUdHO0lBQ0gsWUFBbUMsU0FBNkI7UUFDOUQsS0FBSyxFQUFFLENBQUM7UUFEeUIsY0FBUyxHQUFULFNBQVMsQ0FBb0I7UUFSaEU7O1dBRUc7UUFDYSxTQUFJLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDO0lBT2pELENBQUM7O0FBWEgsd0JBWUM7OztBQUVEOztHQUVHO0FBQ0gsTUFBYSxNQUFPLFNBQVEsY0FBYztJQUt4Qzs7O09BR0c7SUFDSCxZQUNrQixTQUFrRDtRQUVsRSxLQUFLLEVBQUUsQ0FBQztRQUZRLGNBQVMsR0FBVCxTQUFTLENBQXlDO1FBVHBFOztXQUVHO1FBQ2EsU0FBSSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztJQVNqRCxDQUFDOztBQWJILHdCQWNDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvNmI5ZTQ3YTE1MjkzMTk1NjFiYzEwNDA3MzlmZTAyYmFjMTU4OTViZi9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3Mtc25zL2xpYi9zdWJzY3JpcHRpb24udHNcblxuaW1wb3J0IHsgc25zVG9waWNTdWJzY3JpcHRpb24gfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IERlbGl2ZXJ5UG9saWN5IH0gZnJvbSBcIi4vZGVsaXZlcnktcG9saWN5XCI7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25GaWx0ZXIgfSBmcm9tIFwiLi9zdWJzY3JpcHRpb24tZmlsdGVyXCI7XG5pbXBvcnQgeyBJVG9waWMgfSBmcm9tIFwiLi90b3BpYy1iYXNlXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlLCBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uL2lhbVwiO1xuaW1wb3J0ICogYXMgbm90aWZ5IGZyb20gXCIuLi9ub3RpZnlcIjtcblxuLyoqXG4gKiBPdXRwdXRzIGZvciB0aGUgU3Vic2NyaXB0aW9uIGNvbnN0cnVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWJzY3JpcHRpb25PdXRwdXRzIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHN1YnNjcmlwdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHN1YnNjcmlwdGlvbkFybjogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGNyZWF0aW5nIGEgbmV3IHN1YnNjcmlwdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmlwdGlvbk9wdGlvbnMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBXaGF0IHR5cGUgb2Ygc3Vic2NyaXB0aW9uIHRvIGFkZC5cbiAgICovXG4gIHJlYWRvbmx5IHByb3RvY29sOiBTdWJzY3JpcHRpb25Qcm90b2NvbDtcblxuICAvKipcbiAgICogVGhlIHN1YnNjcmlwdGlvbiBlbmRwb2ludC5cbiAgICpcbiAgICogVGhlIG1lYW5pbmcgb2YgdGhpcyB2YWx1ZSBkZXBlbmRzIG9uIHRoZSB2YWx1ZSBmb3IgJ3Byb3RvY29sJy5cbiAgICovXG4gIHJlYWRvbmx5IGVuZHBvaW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIHRydWUgaWYgcmF3IG1lc3NhZ2UgZGVsaXZlcnkgaXMgZW5hYmxlZCBmb3IgdGhlIHN1YnNjcmlwdGlvbi4gUmF3IG1lc3NhZ2VzIGFyZSBmcmVlIG9mIEpTT04gZm9ybWF0dGluZyBhbmQgY2FuIGJlXG4gICAqIHNlbnQgdG8gSFRUUC9TIGFuZCBBbWF6b24gU1FTIGVuZHBvaW50cy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBHZXRTdWJzY3JpcHRpb25BdHRyaWJ1dGVzIGluIHRoZSBBbWF6b24gU2ltcGxlXG4gICAqIE5vdGlmaWNhdGlvbiBTZXJ2aWNlIEFQSSBSZWZlcmVuY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByYXdNZXNzYWdlRGVsaXZlcnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgZmlsdGVyIHBvbGljeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbGwgbWVzc2FnZXMgYXJlIGRlbGl2ZXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVyUG9saWN5PzogeyBbYXR0cmlidXRlOiBzdHJpbmddOiBTdWJzY3JpcHRpb25GaWx0ZXIgfTtcblxuICAvKipcbiAgICogVGhlIGZpbHRlciBwb2xpY3kgdGhhdCBpcyBhcHBsaWVkIG9uIHRoZSBtZXNzYWdlIGJvZHkuXG4gICAqIFRvIGFwcGx5IGEgZmlsdGVyIHBvbGljeSB0byB0aGUgbWVzc2FnZSBhdHRyaWJ1dGVzLCB1c2UgYGZpbHRlclBvbGljeWAuIEEgbWF4aW11bSBvZiBvbmUgb2YgYGZpbHRlclBvbGljeVdpdGhNZXNzYWdlQm9keWAgYW5kIGBmaWx0ZXJQb2xpY3lgIG1heSBiZSB1c2VkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFsbCBtZXNzYWdlcyBhcmUgZGVsaXZlcmVkXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXJQb2xpY3lXaXRoTWVzc2FnZUJvZHk/OiB7XG4gICAgW2F0dHJpYnV0ZTogc3RyaW5nXTogRmlsdGVyT3JQb2xpY3k7XG4gIH07XG5cbiAgLy8gVE9ETzogQ3Jvc3MtcmVnaW9uIHN1YnNjcmlwdGlvbnMgbWlnaHQgcmVxdWlyZSBwcm92aWRlciBhbGlhc2VzIGluIENES1RGLlxuICAvLyBUaGUgc25zX3RvcGljX3N1YnNjcmlwdGlvbiByZXNvdXJjZSBpdHNlbGYgZG9lc24ndCBoYXZlIGEgcmVnaW9uIHBhcmFtZXRlci5cbiAgLy8gLyoqXG4gIC8vICAqIFRoZSByZWdpb24gd2hlcmUgdGhlIHRvcGljIHJlc2lkZXMsIGluIHRoZSBjYXNlIG9mIGNyb3NzLXJlZ2lvbiBzdWJzY3JpcHRpb25zXG4gIC8vICAqIEBsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1zbnMtc3Vic2NyaXB0aW9uLmh0bWwjY2ZuLXNucy1zdWJzY3JpcHRpb24tcmVnaW9uXG4gIC8vICAqIEBkZWZhdWx0IC0gdGhlIHJlZ2lvbiB3aGVyZSB0aGUgc3RhY2sgaXMgYmVpbmcgZGVwbG95ZWQuXG4gIC8vICAqL1xuICAvLyByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFF1ZXVlIHRvIGJlIHVzZWQgYXMgZGVhZCBsZXR0ZXIgcXVldWUuXG4gICAqIElmIG5vdCBwYXNzZWQgbm8gZGVhZCBsZXR0ZXIgcXVldWUgaXMgZW5hYmxlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBkZWFkIGxldHRlciBxdWV1ZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVhZExldHRlclF1ZXVlPzogbm90aWZ5LklRdWV1ZTtcblxuICAvKipcbiAgICogQXJuIG9mIHJvbGUgYWxsb3dpbmcgYWNjZXNzIHRvIGZpcmVob3NlIGRlbGl2ZXJ5IHN0cmVhbS5cbiAgICogUmVxdWlyZWQgZm9yIGEgZmlyZWhvc2Ugc3Vic2NyaXB0aW9uIHByb3RvY29sLlxuICAgKiBAZGVmYXVsdCAtIE5vIHN1YnNjcmlwdGlvbiByb2xlIGlzIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSBzdWJzY3JpcHRpb25Sb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVsaXZlcnkgcG9saWN5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGlmIHRoZSBpbml0aWFsIGRlbGl2ZXJ5IG9mIHRoZSBtZXNzYWdlIGZhaWxzLCB0aHJlZSByZXRyaWVzIHdpdGggYSBkZWxheSBiZXR3ZWVuIGZhaWxlZCBhdHRlbXB0cyBzZXQgYXQgMjAgc2Vjb25kc1xuICAgKi9cbiAgcmVhZG9ubHkgZGVsaXZlcnlQb2xpY3k/OiBEZWxpdmVyeVBvbGljeTtcbn1cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBuZXcgc3Vic2NyaXB0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uUHJvcHMgZXh0ZW5kcyBTdWJzY3JpcHRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB0b3BpYyB0byBzdWJzY3JpYmUgdG8uXG4gICAqL1xuICByZWFkb25seSB0b3BpYzogSVRvcGljO1xufVxuXG4vKipcbiAqIEEgbmV3IHN1YnNjcmlwdGlvbi5cbiAqXG4gKiBQcmVmZXIgdG8gdXNlIHRoZSBgSVRvcGljLmFkZFN1YnNjcmlwdGlvbigpYCBtZXRob2RzIHRvIGNyZWF0ZSBpbnN0YW5jZXMgb2ZcbiAqIHRoaXMgY2xhc3MuXG4gKlxuICogQHJlc291cmNlIGF3c19zbnNfdG9waWNfc3Vic2NyaXB0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBTdWJzY3JpcHRpb24gZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIHtcbiAgLyoqXG4gICAqIFRoZSBETFEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgc3Vic2NyaXB0aW9uIGlmIHByZXNlbnQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVhZExldHRlclF1ZXVlPzogbm90aWZ5LklRdWV1ZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBzbnNUb3BpY1N1YnNjcmlwdGlvbi5TbnNUb3BpY1N1YnNjcmlwdGlvbjtcblxuICBwdWJsaWMgcmVhZG9ubHkgc3Vic2NyaXB0aW9uT3V0cHV0czogU3Vic2NyaXB0aW9uT3V0cHV0cztcbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLnN1YnNjcmlwdGlvbk91dHB1dHM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3Vic2NyaXB0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGlmIChcbiAgICAgIHByb3BzLnJhd01lc3NhZ2VEZWxpdmVyeSAmJlxuICAgICAgW1xuICAgICAgICBTdWJzY3JpcHRpb25Qcm90b2NvbC5IVFRQLFxuICAgICAgICBTdWJzY3JpcHRpb25Qcm90b2NvbC5IVFRQUyxcbiAgICAgICAgU3Vic2NyaXB0aW9uUHJvdG9jb2wuU1FTLFxuICAgICAgICBTdWJzY3JpcHRpb25Qcm90b2NvbC5GSVJFSE9TRSxcbiAgICAgIF0uaW5kZXhPZihwcm9wcy5wcm90b2NvbCkgPCAwXG4gICAgKSB7XG4gICAgICAvLyBUT0RPOiByZS1hZGQgVmFsaWRhdGlvbkVycm9yXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiUmF3IG1lc3NhZ2UgZGVsaXZlcnkgY2FuIG9ubHkgYmUgZW5hYmxlZCBmb3IgSFRUUCwgSFRUUFMsIFNRUywgYW5kIEZpcmVob3NlIHN1YnNjcmlwdGlvbnMuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBmaWx0ZXJQb2xpY3lKc29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGZpbHRlcl9wb2xpY3kgYXBwbGllcyB0byBNZXNzYWdlQXR0cmlidXRlcyAoZGVmYXVsdCkgb3IgTWVzc2FnZUJvZHkgKi9cbiAgICBsZXQgZmlsdGVyUG9saWN5U2NvcGU6IFwiTWVzc2FnZUF0dHJpYnV0ZXNcIiB8IFwiTWVzc2FnZUJvZHlcIiB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChwcm9wcy5maWx0ZXJQb2xpY3kgJiYgcHJvcHMuZmlsdGVyUG9saWN5V2l0aE1lc3NhZ2VCb2R5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQSBtYXhpbXVtIG9mIG9uZSBvZiBgZmlsdGVyUG9saWN5V2l0aE1lc3NhZ2VCb2R5YCBhbmQgYGZpbHRlclBvbGljeWAgbWF5IGJlIHVzZWQuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5maWx0ZXJQb2xpY3kpIHtcbiAgICAgIGlmIChPYmplY3Qua2V5cyhwcm9wcy5maWx0ZXJQb2xpY3kpLmxlbmd0aCA+IDUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIFwiQSBmaWx0ZXIgcG9saWN5IGNhbiBoYXZlIGEgbWF4aW11bSBvZiA1IGF0dHJpYnV0ZSBuYW1lcy5cIixcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsdGVyUG9saWN5Q29uZGl0aW9ucyA9IE9iamVjdC5lbnRyaWVzKHByb3BzLmZpbHRlclBvbGljeSkucmVkdWNlKFxuICAgICAgICAoYWNjLCBbaywgdl0pID0+ICh7IC4uLmFjYywgW2tdOiB2LmNvbmRpdGlvbnMgfSksXG4gICAgICAgIHt9LFxuICAgICAgKTtcblxuICAgICAgbGV0IHRvdGFsID0gMTtcbiAgICAgIE9iamVjdC52YWx1ZXMoZmlsdGVyUG9saWN5Q29uZGl0aW9ucykuZm9yRWFjaCgoZmlsdGVyOiBhbnkpID0+IHtcbiAgICAgICAgdG90YWwgKj0gZmlsdGVyLmxlbmd0aDtcbiAgICAgIH0pO1xuICAgICAgaWYgKHRvdGFsID4gMTUwKSB7XG4gICAgICAgIC8vIFRPRE86IHJlLWFkZCBWYWxpZGF0aW9uRXJyb3JcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBUaGUgdG90YWwgY29tYmluYXRpb24gb2YgdmFsdWVzICgke3RvdGFsfSkgbXVzdCBub3QgZXhjZWVkIDE1MC5gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgZmlsdGVyUG9saWN5SnNvbiA9IEpTT04uc3RyaW5naWZ5KGZpbHRlclBvbGljeUNvbmRpdGlvbnMpO1xuICAgICAgZmlsdGVyUG9saWN5U2NvcGUgPSBcIk1lc3NhZ2VBdHRyaWJ1dGVzXCI7IC8vIERlZmF1bHQgc2NvcGVcbiAgICB9IGVsc2UgaWYgKHByb3BzLmZpbHRlclBvbGljeVdpdGhNZXNzYWdlQm9keSkge1xuICAgICAgaWYgKE9iamVjdC5rZXlzKHByb3BzLmZpbHRlclBvbGljeVdpdGhNZXNzYWdlQm9keSkubGVuZ3RoID4gNSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJBIGZpbHRlciBwb2xpY3kgY2FuIGhhdmUgYSBtYXhpbXVtIG9mIDUgYXR0cmlidXRlIG5hbWVzLlwiLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgYnVpbHRQb2xpY3kgPSBidWlsZEZpbHRlclBvbGljeVdpdGhNZXNzYWdlQm9keShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgcHJvcHMuZmlsdGVyUG9saWN5V2l0aE1lc3NhZ2VCb2R5LFxuICAgICAgKTtcbiAgICAgIGZpbHRlclBvbGljeUpzb24gPSBKU09OLnN0cmluZ2lmeShidWlsdFBvbGljeSk7XG4gICAgICBmaWx0ZXJQb2xpY3lTY29wZSA9IFwiTWVzc2FnZUJvZHlcIjtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBwcm9wcy5wcm90b2NvbCA9PT0gU3Vic2NyaXB0aW9uUHJvdG9jb2wuRklSRUhPU0UgJiZcbiAgICAgICFwcm9wcy5zdWJzY3JpcHRpb25Sb2xlQXJuXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiU3Vic2NyaXB0aW9uIHJvbGUgYXJuIGlzIHJlcXVpcmVkIGZpZWxkIGZvciBzdWJzY3JpcHRpb25zIHdpdGggYSBmaXJlaG9zZSBwcm90b2NvbC5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5kZWFkTGV0dGVyUXVldWUgPSB0aGlzLmJ1aWxkRGVhZExldHRlclF1ZXVlKHByb3BzKTtcbiAgICBjb25zdCByZWRyaXZlUG9saWN5SnNvbiA9IHRoaXMuYnVpbGREZWFkTGV0dGVyQ29uZmlnKHRoaXMuZGVhZExldHRlclF1ZXVlKTtcbiAgICBjb25zdCBkZWxpdmVyeVBvbGljeUpzb24gPSBwcm9wcy5kZWxpdmVyeVBvbGljeVxuICAgICAgPyB0aGlzLnJlbmRlckRlbGl2ZXJ5UG9saWN5KHByb3BzLmRlbGl2ZXJ5UG9saWN5LCBwcm9wcy5wcm90b2NvbClcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBzbnNUb3BpY1N1YnNjcmlwdGlvbi5TbnNUb3BpY1N1YnNjcmlwdGlvbihcbiAgICAgIHRoaXMsXG4gICAgICBcIlJlc291cmNlXCIsXG4gICAgICB7XG4gICAgICAgIGVuZHBvaW50OiBwcm9wcy5lbmRwb2ludCxcbiAgICAgICAgcHJvdG9jb2w6IHByb3BzLnByb3RvY29sLFxuICAgICAgICB0b3BpY0FybjogcHJvcHMudG9waWMudG9waWNBcm4sXG4gICAgICAgIHJhd01lc3NhZ2VEZWxpdmVyeTogcHJvcHMucmF3TWVzc2FnZURlbGl2ZXJ5LFxuICAgICAgICBmaWx0ZXJQb2xpY3k6IGZpbHRlclBvbGljeUpzb24sXG4gICAgICAgIGZpbHRlclBvbGljeVNjb3BlOiBmaWx0ZXJQb2xpY3lTY29wZSxcbiAgICAgICAgcmVkcml2ZVBvbGljeTogcmVkcml2ZVBvbGljeUpzb24sXG4gICAgICAgIHN1YnNjcmlwdGlvblJvbGVBcm46IHByb3BzLnN1YnNjcmlwdGlvblJvbGVBcm4sXG4gICAgICAgIGRlbGl2ZXJ5UG9saWN5OiBkZWxpdmVyeVBvbGljeUpzb24sXG4gICAgICAgIC8vIGNvbmZpcm1hdGlvblRpbWVvdXRJbk1pbnV0ZXM6IC8vIE5vdCBkaXJlY3RseSBhdmFpbGFibGUgaW4gQ0RLIHByb3BzXG4gICAgICAgIC8vIGVuZHBvaW50QXV0b0NvbmZpcm1zOiAvLyBOb3QgZGlyZWN0bHkgYXZhaWxhYmxlIGluIENESyBwcm9wc1xuICAgICAgICAvLyByZXBsYXlQb2xpY3k6IC8vIE5vdCBkaXJlY3RseSBhdmFpbGFibGUgaW4gQ0RLIHByb3BzIChtaXNzaW5nIGluIEFXUyBDREspXG4gICAgICB9LFxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbk91dHB1dHMgPSB7XG4gICAgICBzdWJzY3JpcHRpb25Bcm46IHRoaXMucmVzb3VyY2UuYXJuLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckRlbGl2ZXJ5UG9saWN5KFxuICAgIGRlbGl2ZXJ5UG9saWN5OiBEZWxpdmVyeVBvbGljeSxcbiAgICBwcm90b2NvbDogU3Vic2NyaXB0aW9uUHJvdG9jb2wsXG4gICk6IHN0cmluZyB7XG4gICAgLy8gVE9ETzogcmUtYWRkIFZhbGlkYXRpb25FcnJvcihzKVxuICAgIGlmIChcbiAgICAgICFbU3Vic2NyaXB0aW9uUHJvdG9jb2wuSFRUUCwgU3Vic2NyaXB0aW9uUHJvdG9jb2wuSFRUUFNdLmluY2x1ZGVzKFxuICAgICAgICBwcm90b2NvbCxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYERlbGl2ZXJ5IHBvbGljeSBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgSFRUUCBhbmQgSFRUUFMgc3Vic2NyaXB0aW9ucywgZ290OiAke3Byb3RvY29sfWAsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCB7IGhlYWx0aHlSZXRyeVBvbGljeSwgdGhyb3R0bGVQb2xpY3ksIHJlcXVlc3RQb2xpY3kgfSA9XG4gICAgICBkZWxpdmVyeVBvbGljeTtcbiAgICBjb25zdCByZW5kZXJlZFBvbGljeTogYW55ID0ge307XG5cbiAgICBpZiAoaGVhbHRoeVJldHJ5UG9saWN5KSB7XG4gICAgICBjb25zdCBkZWxheVRhcmdldExpbWl0U2VjcyA9IDM2MDA7XG4gICAgICBjb25zdCBtaW5EZWxheVRhcmdldCA9IGhlYWx0aHlSZXRyeVBvbGljeS5taW5EZWxheVRhcmdldDtcbiAgICAgIGNvbnN0IG1heERlbGF5VGFyZ2V0ID0gaGVhbHRoeVJldHJ5UG9saWN5Lm1heERlbGF5VGFyZ2V0O1xuICAgICAgaWYgKG1pbkRlbGF5VGFyZ2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKG1pbkRlbGF5VGFyZ2V0LnRvTWlsbGlzZWNvbmRzKCkgJSAxMDAwICE9PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYG1pbkRlbGF5VGFyZ2V0IG11c3QgYmUgYSB3aG9sZSBudW1iZXIgb2Ygc2Vjb25kcywgZ290OiAke21pbkRlbGF5VGFyZ2V0fWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtaW5EZWxheVRhcmdldFNlY3MgPSBtaW5EZWxheVRhcmdldC50b1NlY29uZHMoKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIG1pbkRlbGF5VGFyZ2V0U2VjcyA8IDEgfHxcbiAgICAgICAgICBtaW5EZWxheVRhcmdldFNlY3MgPiBkZWxheVRhcmdldExpbWl0U2Vjc1xuICAgICAgICApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgbWluRGVsYXlUYXJnZXQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kICR7ZGVsYXlUYXJnZXRMaW1pdFNlY3N9IHNlY29uZHMgaW5jbHVzaXZlLCBnb3Q6ICR7bWluRGVsYXlUYXJnZXRTZWNzfXNgLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChtYXhEZWxheVRhcmdldCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChtYXhEZWxheVRhcmdldC50b01pbGxpc2Vjb25kcygpICUgMTAwMCAhPT0gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBtYXhEZWxheVRhcmdldCBtdXN0IGJlIGEgd2hvbGUgbnVtYmVyIG9mIHNlY29uZHMsIGdvdDogJHttYXhEZWxheVRhcmdldH1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWF4RGVsYXlUYXJnZXRTZWNzID0gbWF4RGVsYXlUYXJnZXQudG9TZWNvbmRzKCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBtYXhEZWxheVRhcmdldFNlY3MgPCAxIHx8XG4gICAgICAgICAgbWF4RGVsYXlUYXJnZXRTZWNzID4gZGVsYXlUYXJnZXRMaW1pdFNlY3NcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYG1heERlbGF5VGFyZ2V0IG11c3QgYmUgYmV0d2VlbiAxIGFuZCAke2RlbGF5VGFyZ2V0TGltaXRTZWNzfSBzZWNvbmRzIGluY2x1c2l2ZSwgZ290OiAke21heERlbGF5VGFyZ2V0U2Vjc31zYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICBtaW5EZWxheVRhcmdldCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgbWluRGVsYXlUYXJnZXQudG9TZWNvbmRzKCkgPiBtYXhEZWxheVRhcmdldFNlY3NcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwibWluRGVsYXlUYXJnZXQgbXVzdCBub3QgZXhjZWVkIG1heERlbGF5VGFyZ2V0XCIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG51bVJldHJpZXNMaW1pdCA9IDEwMDtcbiAgICAgIGlmIChcbiAgICAgICAgaGVhbHRoeVJldHJ5UG9saWN5Lm51bVJldHJpZXMgJiZcbiAgICAgICAgKGhlYWx0aHlSZXRyeVBvbGljeS5udW1SZXRyaWVzIDwgMCB8fFxuICAgICAgICAgIGhlYWx0aHlSZXRyeVBvbGljeS5udW1SZXRyaWVzID4gbnVtUmV0cmllc0xpbWl0KVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgbnVtUmV0cmllcyBtdXN0IGJlIGJldHdlZW4gMCBhbmQgJHtudW1SZXRyaWVzTGltaXR9IGluY2x1c2l2ZSwgZ290OiAke2hlYWx0aHlSZXRyeVBvbGljeS5udW1SZXRyaWVzfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCB7IG51bU5vRGVsYXlSZXRyaWVzLCBudW1NaW5EZWxheVJldHJpZXMsIG51bU1heERlbGF5UmV0cmllcyB9ID1cbiAgICAgICAgaGVhbHRoeVJldHJ5UG9saWN5O1xuICAgICAgaWYgKFxuICAgICAgICBudW1Ob0RlbGF5UmV0cmllcyAmJlxuICAgICAgICAobnVtTm9EZWxheVJldHJpZXMgPCAwIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKG51bU5vRGVsYXlSZXRyaWVzKSlcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYG51bU5vRGVsYXlSZXRyaWVzIG11c3QgYmUgYW4gaW50ZWdlciB6ZXJvIG9yIGdyZWF0ZXIsIGdvdDogJHtudW1Ob0RlbGF5UmV0cmllc31gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBudW1NaW5EZWxheVJldHJpZXMgJiZcbiAgICAgICAgKG51bU1pbkRlbGF5UmV0cmllcyA8IDAgfHwgIU51bWJlci5pc0ludGVnZXIobnVtTWluRGVsYXlSZXRyaWVzKSlcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYG51bU1pbkRlbGF5UmV0cmllcyBtdXN0IGJlIGFuIGludGVnZXIgemVybyBvciBncmVhdGVyLCBnb3Q6ICR7bnVtTWluRGVsYXlSZXRyaWVzfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIG51bU1heERlbGF5UmV0cmllcyAmJlxuICAgICAgICAobnVtTWF4RGVsYXlSZXRyaWVzIDwgMCB8fCAhTnVtYmVyLmlzSW50ZWdlcihudW1NYXhEZWxheVJldHJpZXMpKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgbnVtTWF4RGVsYXlSZXRyaWVzIG11c3QgYmUgYW4gaW50ZWdlciB6ZXJvIG9yIGdyZWF0ZXIsIGdvdDogJHtudW1NYXhEZWxheVJldHJpZXN9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmVuZGVyZWRQb2xpY3kuaGVhbHRoeVJldHJ5UG9saWN5ID0ge1xuICAgICAgICBtaW5EZWxheVRhcmdldDpcbiAgICAgICAgICBoZWFsdGh5UmV0cnlQb2xpY3kubWluRGVsYXlUYXJnZXQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyAyMFxuICAgICAgICAgICAgOiBoZWFsdGh5UmV0cnlQb2xpY3kubWluRGVsYXlUYXJnZXQudG9TZWNvbmRzKCksXG4gICAgICAgIG1heERlbGF5VGFyZ2V0OlxuICAgICAgICAgIGhlYWx0aHlSZXRyeVBvbGljeS5tYXhEZWxheVRhcmdldCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IDIwXG4gICAgICAgICAgICA6IGhlYWx0aHlSZXRyeVBvbGljeS5tYXhEZWxheVRhcmdldC50b1NlY29uZHMoKSxcbiAgICAgICAgbnVtUmV0cmllczpcbiAgICAgICAgICBoZWFsdGh5UmV0cnlQb2xpY3kubnVtUmV0cmllcyA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IDNcbiAgICAgICAgICAgIDogaGVhbHRoeVJldHJ5UG9saWN5Lm51bVJldHJpZXMsXG4gICAgICAgIG51bU5vRGVsYXlSZXRyaWVzOiBoZWFsdGh5UmV0cnlQb2xpY3kubnVtTm9EZWxheVJldHJpZXMsXG4gICAgICAgIG51bU1pbkRlbGF5UmV0cmllczogaGVhbHRoeVJldHJ5UG9saWN5Lm51bU1pbkRlbGF5UmV0cmllcyxcbiAgICAgICAgbnVtTWF4RGVsYXlSZXRyaWVzOiBoZWFsdGh5UmV0cnlQb2xpY3kubnVtTWF4RGVsYXlSZXRyaWVzLFxuICAgICAgICBiYWNrb2ZmRnVuY3Rpb246IGhlYWx0aHlSZXRyeVBvbGljeS5iYWNrb2ZmRnVuY3Rpb24sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmICh0aHJvdHRsZVBvbGljeSkge1xuICAgICAgY29uc3QgbWF4UmVjZWl2ZXNQZXJTZWNvbmQgPSB0aHJvdHRsZVBvbGljeS5tYXhSZWNlaXZlc1BlclNlY29uZDtcbiAgICAgIGlmIChcbiAgICAgICAgbWF4UmVjZWl2ZXNQZXJTZWNvbmQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAobWF4UmVjZWl2ZXNQZXJTZWNvbmQgPCAxIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKG1heFJlY2VpdmVzUGVyU2Vjb25kKSlcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYG1heFJlY2VpdmVzUGVyU2Vjb25kIG11c3QgYmUgYW4gaW50ZWdlciBncmVhdGVyIHRoYW4gemVybywgZ290OiAke21heFJlY2VpdmVzUGVyU2Vjb25kfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZW5kZXJlZFBvbGljeS50aHJvdHRsZVBvbGljeSA9IHtcbiAgICAgICAgbWF4UmVjZWl2ZXNQZXJTZWNvbmQ6IHRocm90dGxlUG9saWN5Lm1heFJlY2VpdmVzUGVyU2Vjb25kLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAocmVxdWVzdFBvbGljeSkge1xuICAgICAgcmVuZGVyZWRQb2xpY3kucmVxdWVzdFBvbGljeSA9IHtcbiAgICAgICAgaGVhZGVyQ29udGVudFR5cGU6IHJlcXVlc3RQb2xpY3kuaGVhZGVyQ29udGVudFR5cGUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShyZW5kZXJlZFBvbGljeSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRGVhZExldHRlclF1ZXVlKFxuICAgIHByb3BzOiBTdWJzY3JpcHRpb25Qcm9wcyxcbiAgKTogbm90aWZ5LklRdWV1ZSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFwcm9wcy5kZWFkTGV0dGVyUXVldWUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgZGVhZExldHRlclF1ZXVlID0gcHJvcHMuZGVhZExldHRlclF1ZXVlO1xuXG4gICAgZGVhZExldHRlclF1ZXVlLmFkZFRvUmVzb3VyY2VQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIHJlc291cmNlczogW2RlYWRMZXR0ZXJRdWV1ZS5xdWV1ZUFybl0sXG4gICAgICAgIGFjdGlvbnM6IFtcInNxczpTZW5kTWVzc2FnZVwiXSxcbiAgICAgICAgcHJpbmNpcGFsczogW25ldyBpYW0uU2VydmljZVByaW5jaXBhbChcInNucy5hbWF6b25hd3MuY29tXCIpXSxcbiAgICAgICAgY29uZGl0aW9uOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGVzdDogXCJBcm5FcXVhbHNcIixcbiAgICAgICAgICAgIHZhcmlhYmxlOiBcImF3czpTb3VyY2VBcm5cIixcbiAgICAgICAgICAgIHZhbHVlczogW3Byb3BzLnRvcGljLnRvcGljQXJuXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHJldHVybiBkZWFkTGV0dGVyUXVldWU7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRGVhZExldHRlckNvbmZpZyhcbiAgICBkZWFkTGV0dGVyUXVldWU/OiBub3RpZnkuSVF1ZXVlLFxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmIChkZWFkTGV0dGVyUXVldWUpIHtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGRlYWRMZXR0ZXJUYXJnZXRBcm46IGRlYWRMZXR0ZXJRdWV1ZS5xdWV1ZUFybixcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFRoZSB0eXBlIG9mIHN1YnNjcmlwdGlvbiwgY29udHJvbGxpbmcgdGhlIHR5cGUgb2YgdGhlIGVuZHBvaW50IHBhcmFtZXRlci5cbiAqL1xuZXhwb3J0IGVudW0gU3Vic2NyaXB0aW9uUHJvdG9jb2wge1xuICAvKipcbiAgICogSlNPTi1lbmNvZGVkIG1lc3NhZ2UgaXMgUE9TVEVEIHRvIGFuIEhUVFAgdXJsLlxuICAgKi9cbiAgSFRUUCA9IFwiaHR0cFwiLFxuXG4gIC8qKlxuICAgKiBKU09OLWVuY29kZWQgbWVzc2FnZSBpcyBQT1NUZWQgdG8gYW4gSFRUUFMgdXJsLlxuICAgKi9cbiAgSFRUUFMgPSBcImh0dHBzXCIsXG5cbiAgLyoqXG4gICAqIE5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgdmlhIGVtYWlsLlxuICAgKi9cbiAgRU1BSUwgPSBcImVtYWlsXCIsXG5cbiAgLyoqXG4gICAqIE5vdGlmaWNhdGlvbnMgYXJlIEpTT04tZW5jb2RlZCBhbmQgc2VudCB2aWEgbWFpbC5cbiAgICovXG4gIEVNQUlMX0pTT04gPSBcImVtYWlsLWpzb25cIixcblxuICAvKipcbiAgICogTm90aWZpY2F0aW9uIGlzIGRlbGl2ZXJlZCBieSBTTVNcbiAgICovXG4gIFNNUyA9IFwic21zXCIsXG5cbiAgLyoqXG4gICAqIE5vdGlmaWNhdGlvbnMgYXJlIGVucXVldWVkIGludG8gYW4gU1FTIHF1ZXVlLlxuICAgKi9cbiAgU1FTID0gXCJzcXNcIixcblxuICAvKipcbiAgICogSlNPTi1lbmNvZGVkIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgdG8gYSBtb2JpbGUgYXBwIGVuZHBvaW50LlxuICAgKi9cbiAgQVBQTElDQVRJT04gPSBcImFwcGxpY2F0aW9uXCIsXG5cbiAgLyoqXG4gICAqIE5vdGlmaWNhdGlvbnMgdHJpZ2dlciBhIExhbWJkYSBmdW5jdGlvbi5cbiAgICovXG4gIExBTUJEQSA9IFwibGFtYmRhXCIsXG5cbiAgLyoqXG4gICAqIE5vdGlmaWNhdGlvbnMgcHV0IHJlY29yZHMgaW50byBhIGZpcmVob3NlIGRlbGl2ZXJ5IHN0cmVhbS5cbiAgICovXG4gIEZJUkVIT1NFID0gXCJmaXJlaG9zZVwiLFxufVxuXG5mdW5jdGlvbiBidWlsZEZpbHRlclBvbGljeVdpdGhNZXNzYWdlQm9keShcbiAgc2NvcGU6IENvbnN0cnVjdCxcbiAgaW5wdXRPYmplY3Q6IHsgW2tleTogc3RyaW5nXTogRmlsdGVyT3JQb2xpY3kgfSxcbiAgZGVwdGggPSAxLFxuICB0b3RhbENvbWJpbmF0aW9uVmFsdWVzID0gWzFdLFxuKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gIGNvbnN0IHJlc3VsdDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gIGZvciAoY29uc3QgW2tleSwgZmlsdGVyT3JQb2xpY3ldIG9mIE9iamVjdC5lbnRyaWVzKGlucHV0T2JqZWN0KSkge1xuICAgIGlmIChmaWx0ZXJPclBvbGljeS5pc1BvbGljeSgpKSB7XG4gICAgICByZXN1bHRba2V5XSA9IGJ1aWxkRmlsdGVyUG9saWN5V2l0aE1lc3NhZ2VCb2R5KFxuICAgICAgICBzY29wZSxcbiAgICAgICAgZmlsdGVyT3JQb2xpY3kucG9saWN5RG9jLFxuICAgICAgICBkZXB0aCArIDEsXG4gICAgICAgIHRvdGFsQ29tYmluYXRpb25WYWx1ZXMsXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoZmlsdGVyT3JQb2xpY3kuaXNGaWx0ZXIoKSkge1xuICAgICAgY29uc3QgZmlsdGVyID0gZmlsdGVyT3JQb2xpY3kuZmlsdGVyRG9jLmNvbmRpdGlvbnM7XG4gICAgICByZXN1bHRba2V5XSA9IGZpbHRlcjtcbiAgICAgIHRvdGFsQ29tYmluYXRpb25WYWx1ZXNbMF0gKj0gZmlsdGVyLmxlbmd0aCAqIGRlcHRoO1xuICAgIH1cbiAgfVxuXG4gIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zbnMvbGF0ZXN0L2RnL3N1YnNjcmlwdGlvbi1maWx0ZXItcG9saWN5LWNvbnN0cmFpbnRzLmh0bWxcbiAgaWYgKHRvdGFsQ29tYmluYXRpb25WYWx1ZXNbMF0gPiAxNTApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVGhlIHRvdGFsIGNvbWJpbmF0aW9uIG9mIHZhbHVlcyAoJHt0b3RhbENvbWJpbmF0aW9uVmFsdWVzfSkgbXVzdCBub3QgZXhjZWVkIDE1MC5gLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIFRoZSB0eXBlIG9mIHRoZSBNZXNzYWdlQm9keSBhdCBhIGdpdmVuIGtleSB2YWx1ZSBwYWlyXG4gKi9cbmV4cG9ydCBlbnVtIEZpbHRlck9yUG9saWN5VHlwZSB7XG4gIC8qKlxuICAgKiBUaGUgZmlsdGVyIG9mIHRoZSBNZXNzYWdlQm9keVxuICAgKi9cbiAgRklMVEVSLFxuICAvKipcbiAgICogQSBuZXN0ZWQga2V5IG9mIHRoZSBNZXNzYWdlQm9keVxuICAgKi9cbiAgUE9MSUNZLFxufVxuXG4vKipcbiAqIENsYXNzIGZvciBidWlsZGluZyB0aGUgRmlsdGVyUG9saWN5IGJ5IGF2b2lkaW5nIHVuaW9uIHR5cGVzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGaWx0ZXJPclBvbGljeSB7XG4gIC8qKlxuICAgKiBGaWx0ZXIgb2YgTWVzc2FnZUJvZHlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZmlsdGVyKGZpbHRlcjogU3Vic2NyaXB0aW9uRmlsdGVyKSB7XG4gICAgcmV0dXJuIG5ldyBGaWx0ZXIoZmlsdGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQb2xpY3kgb2YgTWVzc2FnZUJvZHlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcG9saWN5KHBvbGljeTogeyBbYXR0cmlidXRlOiBzdHJpbmddOiBGaWx0ZXJPclBvbGljeSB9KSB7XG4gICAgcmV0dXJuIG5ldyBQb2xpY3kocG9saWN5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUeXBlIHN3aXRjaCBmb3IgZGlzYW1iaWd1YXRpbmcgYmV0d2VlbiBzdWJjbGFzc2VzXG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSB0eXBlOiBGaWx0ZXJPclBvbGljeVR5cGU7XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGluc3RhbmNlIGlzIGBQb2xpY3lgIHR5cGVcbiAgICovXG4gIHB1YmxpYyBpc1BvbGljeSgpOiB0aGlzIGlzIFBvbGljeSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gRmlsdGVyT3JQb2xpY3lUeXBlLlBPTElDWTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBpbnN0YW5jZSBpcyBgRmlsdGVyYCB0eXBlXG4gICAqL1xuICBwdWJsaWMgaXNGaWx0ZXIoKTogdGhpcyBpcyBGaWx0ZXIge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IEZpbHRlck9yUG9saWN5VHlwZS5GSUxURVI7XG4gIH1cbn1cblxuLyoqXG4gKiBGaWx0ZXIgaW1wbGVtZW50YXRpb24gb2YgRmlsdGVyT3JQb2xpY3lcbiAqL1xuZXhwb3J0IGNsYXNzIEZpbHRlciBleHRlbmRzIEZpbHRlck9yUG9saWN5IHtcbiAgLyoqXG4gICAqIFR5cGUgdXNlZCBpbiBERlMgYnVpbGRGaWx0ZXJQb2xpY3lXaXRoTWVzc2FnZUJvZHkgdG8gZGV0ZXJtaW5lIGpzb24gdmFsdWUgdHlwZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHR5cGUgPSBGaWx0ZXJPclBvbGljeVR5cGUuRklMVEVSO1xuICAvKipcbiAgICogUG9saWN5IGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBmaWx0ZXJEb2MgZmlsdGVyIGFyZ3VtZW50IHRvIGNvbnN0cnVjdFxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBmaWx0ZXJEb2M6IFN1YnNjcmlwdGlvbkZpbHRlcikge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBQb2xpY3kgSW1wbGVtZW50YXRpb24gb2YgRmlsdGVyT3JQb2xpY3lcbiAqL1xuZXhwb3J0IGNsYXNzIFBvbGljeSBleHRlbmRzIEZpbHRlck9yUG9saWN5IHtcbiAgLyoqXG4gICAqIFR5cGUgdXNlZCBpbiBERlMgYnVpbGRGaWx0ZXJQb2xpY3lXaXRoTWVzc2FnZUJvZHkgdG8gZGV0ZXJtaW5lIGpzb24gdmFsdWUgdHlwZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHR5cGUgPSBGaWx0ZXJPclBvbGljeVR5cGUuUE9MSUNZO1xuICAvKipcbiAgICogUG9saWN5IGNvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBwb2xpY3lEb2MgcG9saWN5IGFyZ3VtZW50IHRvIGNvbnN0cnVjdFxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBwb2xpY3lEb2M6IHsgW2F0dHJpYnV0ZTogc3RyaW5nXTogRmlsdGVyT3JQb2xpY3kgfSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuIl19
358
+ Policy[_d] = { fqn: "terraconstructs.aws.notify.Policy", version: "0.0.20" };
359
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9ub3RpZnkvc3Vic2NyaXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0lBQWdJO0FBRWhJLHNEQUEyRDtBQUszRCxvREFBdUU7QUFDdkUsOEJBQThCO0FBZ0c5Qjs7Ozs7OztHQU9HO0FBQ0gsTUFBYSxZQUFhLFNBQVEsZ0NBQWdCO0lBU2hELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUNoRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUNFLEtBQUssQ0FBQyxrQkFBa0I7WUFDeEI7Z0JBQ0Usb0JBQW9CLENBQUMsSUFBSTtnQkFDekIsb0JBQW9CLENBQUMsS0FBSztnQkFDMUIsb0JBQW9CLENBQUMsR0FBRztnQkFDeEIsb0JBQW9CLENBQUMsUUFBUTthQUM5QixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUM3QixDQUFDO1lBQ0QsK0JBQStCO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQ2IsNEZBQTRGLENBQzdGLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxnQkFBb0MsQ0FBQztRQUN6QyxzRkFBc0Y7UUFDdEYsSUFBSSxpQkFBa0UsQ0FBQztRQUV2RSxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLDJCQUEyQixFQUFFLENBQUM7WUFDNUQsTUFBTSxJQUFJLEtBQUssQ0FDYixtRkFBbUYsQ0FDcEYsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1B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QU0sQ0FBQyxNQUFNLENBQUMsTUFBK0M7UUFDbEUsT0FBTyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBT0Q7O09BRUc7SUFDSSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztJQUNqRCxDQUFDOztBQWhDSCx3Q0FpQ0M7OztBQUVEOztHQUVHO0FBQ0gsTUFBYSxNQUFPLFNBQVEsY0FBYztJQUt4Qzs7O09BR0c7SUFDSCxZQUFtQyxTQUE2QjtRQUM5RCxLQUFLLEVBQUUsQ0FBQztRQUR5QixjQUFTLEdBQVQsU0FBUyxDQUFvQjtRQVJoRTs7V0FFRztRQUNhLFNBQUksR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7SUFPakQsQ0FBQzs7QUFYSCx3QkFZQzs7O0FBRUQ7O0dBRUc7QUFDSCxNQUFhLE1BQU8sU0FBUSxjQUFjO0lBS3hDOzs7T0FHRztJQUNILFlBQ2tCLFNBQWtEO1FBRWxFLEtBQUssRUFBRSxDQUFDO1FBRlEsY0FBUyxHQUFULFNBQVMsQ0FBeUM7UUFUcEU7O1dBRUc7UUFDYSxTQUFJLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDO0lBU2pELENBQUM7O0FBYkgsd0JBY0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi82YjllNDdhMTUyOTMxOTU2MWJjMTA0MDczOWZlMDJiYWMxNTg5NWJmL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1zbnMvbGliL3N1YnNjcmlwdGlvbi50c1xuXG5pbXBvcnQgeyBzbnNUb3BpY1N1YnNjcmlwdGlvbiB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgRGVsaXZlcnlQb2xpY3kgfSBmcm9tIFwiLi9kZWxpdmVyeS1wb2xpY3lcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvbkZpbHRlciB9IGZyb20gXCIuL3N1YnNjcmlwdGlvbi1maWx0ZXJcIjtcbmltcG9ydCB7IElUb3BpYyB9IGZyb20gXCIuL3RvcGljLWJhc2VcIjtcbmltcG9ydCB7IEF3c0NvbnN0cnVjdEJhc2UsIEF3c0NvbnN0cnVjdFByb3BzIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vaWFtXCI7XG5pbXBvcnQgKiBhcyBub3RpZnkgZnJvbSBcIi4uL25vdGlmeVwiO1xuXG4vKipcbiAqIE91dHB1dHMgZm9yIHRoZSBTdWJzY3JpcHRpb24gY29uc3RydWN0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmlwdGlvbk91dHB1dHMge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgc3Vic2NyaXB0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgc3Vic2NyaXB0aW9uQXJuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY3JlYXRpbmcgYSBuZXcgc3Vic2NyaXB0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uT3B0aW9ucyBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIFdoYXQgdHlwZSBvZiBzdWJzY3JpcHRpb24gdG8gYWRkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdG9jb2w6IFN1YnNjcmlwdGlvblByb3RvY29sO1xuXG4gIC8qKlxuICAgKiBUaGUgc3Vic2NyaXB0aW9uIGVuZHBvaW50LlxuICAgKlxuICAgKiBUaGUgbWVhbmluZyBvZiB0aGlzIHZhbHVlIGRlcGVuZHMgb24gdGhlIHZhbHVlIGZvciAncHJvdG9jb2wnLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogdHJ1ZSBpZiByYXcgbWVzc2FnZSBkZWxpdmVyeSBpcyBlbmFibGVkIGZvciB0aGUgc3Vic2NyaXB0aW9uLiBSYXcgbWVzc2FnZXMgYXJlIGZyZWUgb2YgSlNPTiBmb3JtYXR0aW5nIGFuZCBjYW4gYmVcbiAgICogc2VudCB0byBIVFRQL1MgYW5kIEFtYXpvbiBTUVMgZW5kcG9pbnRzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIEdldFN1YnNjcmlwdGlvbkF0dHJpYnV0ZXMgaW4gdGhlIEFtYXpvbiBTaW1wbGVcbiAgICogTm90aWZpY2F0aW9uIFNlcnZpY2UgQVBJIFJlZmVyZW5jZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJhd01lc3NhZ2VEZWxpdmVyeT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBmaWx0ZXIgcG9saWN5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFsbCBtZXNzYWdlcyBhcmUgZGVsaXZlcmVkXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXJQb2xpY3k/OiB7IFthdHRyaWJ1dGU6IHN0cmluZ106IFN1YnNjcmlwdGlvbkZpbHRlciB9O1xuXG4gIC8qKlxuICAgKiBUaGUgZmlsdGVyIHBvbGljeSB0aGF0IGlzIGFwcGxpZWQgb24gdGhlIG1lc3NhZ2UgYm9keS5cbiAgICogVG8gYXBwbHkgYSBmaWx0ZXIgcG9saWN5IHRvIHRoZSBtZXNzYWdlIGF0dHJpYnV0ZXMsIHVzZSBgZmlsdGVyUG9saWN5YC4gQSBtYXhpbXVtIG9mIG9uZSBvZiBgZmlsdGVyUG9saWN5V2l0aE1lc3NhZ2VCb2R5YCBhbmQgYGZpbHRlclBvbGljeWAgbWF5IGJlIHVzZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYWxsIG1lc3NhZ2VzIGFyZSBkZWxpdmVyZWRcbiAgICovXG4gIHJlYWRvbmx5IGZpbHRlclBvbGljeVdpdGhNZXNzYWdlQm9keT86IHtcbiAgICBbYXR0cmlidXRlOiBzdHJpbmddOiBGaWx0ZXJPclBvbGljeTtcbiAgfTtcblxuICAvLyBUT0RPOiBDcm9zcy1yZWdpb24gc3Vic2NyaXB0aW9ucyBtaWdodCByZXF1aXJlIHByb3ZpZGVyIGFsaWFzZXMgaW4gQ0RLVEYuXG4gIC8vIFRoZSBzbnNfdG9waWNfc3Vic2NyaXB0aW9uIHJlc291cmNlIGl0c2VsZiBkb2Vzbid0IGhhdmUgYSByZWdpb24gcGFyYW1ldGVyLlxuICAvLyAvKipcbiAgLy8gICogVGhlIHJlZ2lvbiB3aGVyZSB0aGUgdG9waWMgcmVzaWRlcywgaW4gdGhlIGNhc2Ugb2YgY3Jvc3MtcmVnaW9uIHN1YnNjcmlwdGlvbnNcbiAgLy8gICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLXNucy1zdWJzY3JpcHRpb24uaHRtbCNjZm4tc25zLXN1YnNjcmlwdGlvbi1yZWdpb25cbiAgLy8gICogQGRlZmF1bHQgLSB0aGUgcmVnaW9uIHdoZXJlIHRoZSBzdGFjayBpcyBiZWluZyBkZXBsb3llZC5cbiAgLy8gICovXG4gIC8vIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogUXVldWUgdG8gYmUgdXNlZCBhcyBkZWFkIGxldHRlciBxdWV1ZS5cbiAgICogSWYgbm90IHBhc3NlZCBubyBkZWFkIGxldHRlciBxdWV1ZSBpcyBlbmFibGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGRlYWQgbGV0dGVyIHF1ZXVlIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSBkZWFkTGV0dGVyUXVldWU/OiBub3RpZnkuSVF1ZXVlO1xuXG4gIC8qKlxuICAgKiBBcm4gb2Ygcm9sZSBhbGxvd2luZyBhY2Nlc3MgdG8gZmlyZWhvc2UgZGVsaXZlcnkgc3RyZWFtLlxuICAgKiBSZXF1aXJlZCBmb3IgYSBmaXJlaG9zZSBzdWJzY3JpcHRpb24gcHJvdG9jb2wuXG4gICAqIEBkZWZhdWx0IC0gTm8gc3Vic2NyaXB0aW9uIHJvbGUgaXMgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IHN1YnNjcmlwdGlvblJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWxpdmVyeSBwb2xpY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gaWYgdGhlIGluaXRpYWwgZGVsaXZlcnkgb2YgdGhlIG1lc3NhZ2UgZmFpbHMsIHRocmVlIHJldHJpZXMgd2l0aCBhIGRlbGF5IGJldHdlZW4gZmFpbGVkIGF0dGVtcHRzIHNldCBhdCAyMCBzZWNvbmRzXG4gICAqL1xuICByZWFkb25seSBkZWxpdmVyeVBvbGljeT86IERlbGl2ZXJ5UG9saWN5O1xufVxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIG5ldyBzdWJzY3JpcHRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWJzY3JpcHRpb25Qcm9wcyBleHRlbmRzIFN1YnNjcmlwdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHRvcGljIHRvIHN1YnNjcmliZSB0by5cbiAgICovXG4gIHJlYWRvbmx5IHRvcGljOiBJVG9waWM7XG59XG5cbi8qKlxuICogQSBuZXcgc3Vic2NyaXB0aW9uLlxuICpcbiAqIFByZWZlciB0byB1c2UgdGhlIGBJVG9waWMuYWRkU3Vic2NyaXB0aW9uKClgIG1ldGhvZHMgdG8gY3JlYXRlIGluc3RhbmNlcyBvZlxuICogdGhpcyBjbGFzcy5cbiAqXG4gKiBAcmVzb3VyY2UgYXdzX3Nuc190b3BpY19zdWJzY3JpcHRpb25cbiAqL1xuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvbiBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2Uge1xuICAvKipcbiAgICogVGhlIERMUSBhc3NvY2lhdGVkIHdpdGggdGhpcyBzdWJzY3JpcHRpb24gaWYgcHJlc2VudC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZWFkTGV0dGVyUXVldWU/OiBub3RpZnkuSVF1ZXVlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IHNuc1RvcGljU3Vic2NyaXB0aW9uLlNuc1RvcGljU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyByZWFkb25seSBzdWJzY3JpcHRpb25PdXRwdXRzOiBTdWJzY3JpcHRpb25PdXRwdXRzO1xuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9uT3V0cHV0cztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdWJzY3JpcHRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgaWYgKFxuICAgICAgcHJvcHMucmF3TWVzc2FnZURlbGl2ZXJ5ICYmXG4gICAgICBbXG4gICAgICAgIFN1YnNjcmlwdGlvblByb3RvY29sLkhUVFAsXG4gICAgICAgIFN1YnNjcmlwdGlvblByb3RvY29sLkhUVFBTLFxuICAgICAgICBTdWJzY3JpcHRpb25Qcm90b2NvbC5TUVMsXG4gICAgICAgIFN1YnNjcmlwdGlvblByb3RvY29sLkZJUkVIT1NFLFxuICAgICAgXS5pbmRleE9mKHByb3BzLnByb3RvY29sKSA8IDBcbiAgICApIHtcbiAgICAgIC8vIFRPRE86IHJlLWFkZCBWYWxpZGF0aW9uRXJyb3JcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJSYXcgbWVzc2FnZSBkZWxpdmVyeSBjYW4gb25seSBiZSBlbmFibGVkIGZvciBIVFRQLCBIVFRQUywgU1FTLCBhbmQgRmlyZWhvc2Ugc3Vic2NyaXB0aW9ucy5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IGZpbHRlclBvbGljeUpzb246IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogV2hldGhlciB0aGUgZmlsdGVyX3BvbGljeSBhcHBsaWVzIHRvIE1lc3NhZ2VBdHRyaWJ1dGVzIChkZWZhdWx0KSBvciBNZXNzYWdlQm9keSAqL1xuICAgIGxldCBmaWx0ZXJQb2xpY3lTY29wZTogXCJNZXNzYWdlQXR0cmlidXRlc1wiIHwgXCJNZXNzYWdlQm9keVwiIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKHByb3BzLmZpbHRlclBvbGljeSAmJiBwcm9wcy5maWx0ZXJQb2xpY3lXaXRoTWVzc2FnZUJvZHkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJBIG1heGltdW0gb2Ygb25lIG9mIGBmaWx0ZXJQb2xpY3lXaXRoTWVzc2FnZUJvZHlgIGFuZCBgZmlsdGVyUG9saWN5YCBtYXkgYmUgdXNlZC5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmZpbHRlclBvbGljeSkge1xuICAgICAgaWYgKE9iamVjdC5rZXlzKHByb3BzLmZpbHRlclBvbGljeSkubGVuZ3RoID4gNSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJBIGZpbHRlciBwb2xpY3kgY2FuIGhhdmUgYSBtYXhpbXVtIG9mIDUgYXR0cmlidXRlIG5hbWVzLlwiLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmaWx0ZXJQb2xpY3lDb25kaXRpb25zID0gT2JqZWN0LmVudHJpZXMocHJvcHMuZmlsdGVyUG9saWN5KS5yZWR1Y2UoXG4gICAgICAgIChhY2MsIFtrLCB2XSkgPT4gKHsgLi4uYWNjLCBba106IHYuY29uZGl0aW9ucyB9KSxcbiAgICAgICAge30sXG4gICAgICApO1xuXG4gICAgICBsZXQgdG90YWwgPSAxO1xuICAgICAgT2JqZWN0LnZhbHVlcyhmaWx0ZXJQb2xpY3lDb25kaXRpb25zKS5mb3JFYWNoKChmaWx0ZXI6IGFueSkgPT4ge1xuICAgICAgICB0b3RhbCAqPSBmaWx0ZXIubGVuZ3RoO1xuICAgICAgfSk7XG4gICAgICBpZiAodG90YWwgPiAxNTApIHtcbiAgICAgICAgLy8gVE9ETzogcmUtYWRkIFZhbGlkYXRpb25FcnJvclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFRoZSB0b3RhbCBjb21iaW5hdGlvbiBvZiB2YWx1ZXMgKCR7dG90YWx9KSBtdXN0IG5vdCBleGNlZWQgMTUwLmAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBmaWx0ZXJQb2xpY3lKc29uID0gSlNPTi5zdHJpbmdpZnkoZmlsdGVyUG9saWN5Q29uZGl0aW9ucyk7XG4gICAgICBmaWx0ZXJQb2xpY3lTY29wZSA9IFwiTWVzc2FnZUF0dHJpYnV0ZXNcIjsgLy8gRGVmYXVsdCBzY29wZVxuICAgIH0gZWxzZSBpZiAocHJvcHMuZmlsdGVyUG9saWN5V2l0aE1lc3NhZ2VCb2R5KSB7XG4gICAgICBpZiAoT2JqZWN0LmtleXMocHJvcHMuZmlsdGVyUG9saWN5V2l0aE1lc3NhZ2VCb2R5KS5sZW5ndGggPiA1KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBcIkEgZmlsdGVyIHBvbGljeSBjYW4gaGF2ZSBhIG1heGltdW0gb2YgNSBhdHRyaWJ1dGUgbmFtZXMuXCIsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCBidWlsdFBvbGljeSA9IGJ1aWxkRmlsdGVyUG9saWN5V2l0aE1lc3NhZ2VCb2R5KFxuICAgICAgICB0aGlzLFxuICAgICAgICBwcm9wcy5maWx0ZXJQb2xpY3lXaXRoTWVzc2FnZUJvZHksXG4gICAgICApO1xuICAgICAgZmlsdGVyUG9saWN5SnNvbiA9IEpTT04uc3RyaW5naWZ5KGJ1aWx0UG9saWN5KTtcbiAgICAgIGZpbHRlclBvbGljeVNjb3BlID0gXCJNZXNzYWdlQm9keVwiO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHByb3BzLnByb3RvY29sID09PSBTdWJzY3JpcHRpb25Qcm90b2NvbC5GSVJFSE9TRSAmJlxuICAgICAgIXByb3BzLnN1YnNjcmlwdGlvblJvbGVBcm5cbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJTdWJzY3JpcHRpb24gcm9sZSBhcm4gaXMgcmVxdWlyZWQgZmllbGQgZm9yIHN1YnNjcmlwdGlvbnMgd2l0aCBhIGZpcmVob3NlIHByb3RvY29sLlwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmRlYWRMZXR0ZXJRdWV1ZSA9IHRoaXMuYnVpbGREZWFkTGV0dGVyUXVldWUocHJvcHMpO1xuICAgIGNvbnN0IHJlZHJpdmVQb2xpY3lKc29uID0gdGhpcy5idWlsZERlYWRMZXR0ZXJDb25maWcodGhpcy5kZWFkTGV0dGVyUXVldWUpO1xuICAgIGNvbnN0IGRlbGl2ZXJ5UG9saWN5SnNvbiA9IHByb3BzLmRlbGl2ZXJ5UG9saWN5XG4gICAgICA/IHRoaXMucmVuZGVyRGVsaXZlcnlQb2xpY3kocHJvcHMuZGVsaXZlcnlQb2xpY3ksIHByb3BzLnByb3RvY29sKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IHNuc1RvcGljU3Vic2NyaXB0aW9uLlNuc1RvcGljU3Vic2NyaXB0aW9uKFxuICAgICAgdGhpcyxcbiAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgIHtcbiAgICAgICAgZW5kcG9pbnQ6IHByb3BzLmVuZHBvaW50LFxuICAgICAgICBwcm90b2NvbDogcHJvcHMucHJvdG9jb2wsXG4gICAgICAgIHRvcGljQXJuOiBwcm9wcy50b3BpYy50b3BpY0FybixcbiAgICAgICAgcmF3TWVzc2FnZURlbGl2ZXJ5OiBwcm9wcy5yYXdNZXNzYWdlRGVsaXZlcnksXG4gICAgICAgIGZpbHRlclBvbGljeTogZmlsdGVyUG9saWN5SnNvbixcbiAgICAgICAgZmlsdGVyUG9saWN5U2NvcGU6IGZpbHRlclBvbGljeVNjb3BlLFxuICAgICAgICByZWRyaXZlUG9saWN5OiByZWRyaXZlUG9saWN5SnNvbixcbiAgICAgICAgc3Vic2NyaXB0aW9uUm9sZUFybjogcHJvcHMuc3Vic2NyaXB0aW9uUm9sZUFybixcbiAgICAgICAgZGVsaXZlcnlQb2xpY3k6IGRlbGl2ZXJ5UG9saWN5SnNvbixcbiAgICAgICAgLy8gVE9ETzogQnVtcCB0byBuZXdlciBwcm92aWRlci1hd3MgdmVyc2lvbiB0byBnZXQgJ3JlZ2lvbicgcHJvcGVydHkgc3VwcG9ydFxuICAgICAgICAvLyByZWdpb246IHByb3BzLnRvcGljLnN0YWNrLnJlZ2lvbixcbiAgICAgICAgLy8gY29uZmlybWF0aW9uVGltZW91dEluTWludXRlczogLy8gTm90IGRpcmVjdGx5IGF2YWlsYWJsZSBpbiBDREsgcHJvcHNcbiAgICAgICAgLy8gZW5kcG9pbnRBdXRvQ29uZmlybXM6IC8vIE5vdCBkaXJlY3RseSBhdmFpbGFibGUgaW4gQ0RLIHByb3BzXG4gICAgICAgIC8vIHJlcGxheVBvbGljeTogLy8gTm90IGRpcmVjdGx5IGF2YWlsYWJsZSBpbiBDREsgcHJvcHMgKG1pc3NpbmcgaW4gQVdTIENESylcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uT3V0cHV0cyA9IHtcbiAgICAgIHN1YnNjcmlwdGlvbkFybjogdGhpcy5yZXNvdXJjZS5hcm4sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyRGVsaXZlcnlQb2xpY3koXG4gICAgZGVsaXZlcnlQb2xpY3k6IERlbGl2ZXJ5UG9saWN5LFxuICAgIHByb3RvY29sOiBTdWJzY3JpcHRpb25Qcm90b2NvbCxcbiAgKTogc3RyaW5nIHtcbiAgICAvLyBUT0RPOiByZS1hZGQgVmFsaWRhdGlvbkVycm9yKHMpXG4gICAgaWYgKFxuICAgICAgIVtTdWJzY3JpcHRpb25Qcm90b2NvbC5IVFRQLCBTdWJzY3JpcHRpb25Qcm90b2NvbC5IVFRQU10uaW5jbHVkZXMoXG4gICAgICAgIHByb3RvY29sLFxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRGVsaXZlcnkgcG9saWN5IGlzIG9ubHkgc3VwcG9ydGVkIGZvciBIVFRQIGFuZCBIVFRQUyBzdWJzY3JpcHRpb25zLCBnb3Q6ICR7cHJvdG9jb2x9YCxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHsgaGVhbHRoeVJldHJ5UG9saWN5LCB0aHJvdHRsZVBvbGljeSwgcmVxdWVzdFBvbGljeSB9ID1cbiAgICAgIGRlbGl2ZXJ5UG9saWN5O1xuICAgIGNvbnN0IHJlbmRlcmVkUG9saWN5OiBhbnkgPSB7fTtcblxuICAgIGlmIChoZWFsdGh5UmV0cnlQb2xpY3kpIHtcbiAgICAgIGNvbnN0IGRlbGF5VGFyZ2V0TGltaXRTZWNzID0gMzYwMDtcbiAgICAgIGNvbnN0IG1pbkRlbGF5VGFyZ2V0ID0gaGVhbHRoeVJldHJ5UG9saWN5Lm1pbkRlbGF5VGFyZ2V0O1xuICAgICAgY29uc3QgbWF4RGVsYXlUYXJnZXQgPSBoZWFsdGh5UmV0cnlQb2xpY3kubWF4RGVsYXlUYXJnZXQ7XG4gICAgICBpZiAobWluRGVsYXlUYXJnZXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAobWluRGVsYXlUYXJnZXQudG9NaWxsaXNlY29uZHMoKSAlIDEwMDAgIT09IDApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgbWluRGVsYXlUYXJnZXQgbXVzdCBiZSBhIHdob2xlIG51bWJlciBvZiBzZWNvbmRzLCBnb3Q6ICR7bWluRGVsYXlUYXJnZXR9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1pbkRlbGF5VGFyZ2V0U2VjcyA9IG1pbkRlbGF5VGFyZ2V0LnRvU2Vjb25kcygpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgbWluRGVsYXlUYXJnZXRTZWNzIDwgMSB8fFxuICAgICAgICAgIG1pbkRlbGF5VGFyZ2V0U2VjcyA+IGRlbGF5VGFyZ2V0TGltaXRTZWNzXG4gICAgICAgICkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBtaW5EZWxheVRhcmdldCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgJHtkZWxheVRhcmdldExpbWl0U2Vjc30gc2Vjb25kcyBpbmNsdXNpdmUsIGdvdDogJHttaW5EZWxheVRhcmdldFNlY3N9c2AsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKG1heERlbGF5VGFyZ2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKG1heERlbGF5VGFyZ2V0LnRvTWlsbGlzZWNvbmRzKCkgJSAxMDAwICE9PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYG1heERlbGF5VGFyZ2V0IG11c3QgYmUgYSB3aG9sZSBudW1iZXIgb2Ygc2Vjb25kcywgZ290OiAke21heERlbGF5VGFyZ2V0fWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXhEZWxheVRhcmdldFNlY3MgPSBtYXhEZWxheVRhcmdldC50b1NlY29uZHMoKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIG1heERlbGF5VGFyZ2V0U2VjcyA8IDEgfHxcbiAgICAgICAgICBtYXhEZWxheVRhcmdldFNlY3MgPiBkZWxheVRhcmdldExpbWl0U2Vjc1xuICAgICAgICApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgbWF4RGVsYXlUYXJnZXQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kICR7ZGVsYXlUYXJnZXRMaW1pdFNlY3N9IHNlY29uZHMgaW5jbHVzaXZlLCBnb3Q6ICR7bWF4RGVsYXlUYXJnZXRTZWNzfXNgLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIG1pbkRlbGF5VGFyZ2V0ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBtaW5EZWxheVRhcmdldC50b1NlY29uZHMoKSA+IG1heERlbGF5VGFyZ2V0U2Vjc1xuICAgICAgICApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJtaW5EZWxheVRhcmdldCBtdXN0IG5vdCBleGNlZWQgbWF4RGVsYXlUYXJnZXRcIik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgbnVtUmV0cmllc0xpbWl0ID0gMTAwO1xuICAgICAgaWYgKFxuICAgICAgICBoZWFsdGh5UmV0cnlQb2xpY3kubnVtUmV0cmllcyAmJlxuICAgICAgICAoaGVhbHRoeVJldHJ5UG9saWN5Lm51bVJldHJpZXMgPCAwIHx8XG4gICAgICAgICAgaGVhbHRoeVJldHJ5UG9saWN5Lm51bVJldHJpZXMgPiBudW1SZXRyaWVzTGltaXQpXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBudW1SZXRyaWVzIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAke251bVJldHJpZXNMaW1pdH0gaW5jbHVzaXZlLCBnb3Q6ICR7aGVhbHRoeVJldHJ5UG9saWN5Lm51bVJldHJpZXN9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgbnVtTm9EZWxheVJldHJpZXMsIG51bU1pbkRlbGF5UmV0cmllcywgbnVtTWF4RGVsYXlSZXRyaWVzIH0gPVxuICAgICAgICBoZWFsdGh5UmV0cnlQb2xpY3k7XG4gICAgICBpZiAoXG4gICAgICAgIG51bU5vRGVsYXlSZXRyaWVzICYmXG4gICAgICAgIChudW1Ob0RlbGF5UmV0cmllcyA8IDAgfHwgIU51bWJlci5pc0ludGVnZXIobnVtTm9EZWxheVJldHJpZXMpKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgbnVtTm9EZWxheVJldHJpZXMgbXVzdCBiZSBhbiBpbnRlZ2VyIHplcm8gb3IgZ3JlYXRlciwgZ290OiAke251bU5vRGVsYXlSZXRyaWVzfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIG51bU1pbkRlbGF5UmV0cmllcyAmJlxuICAgICAgICAobnVtTWluRGVsYXlSZXRyaWVzIDwgMCB8fCAhTnVtYmVyLmlzSW50ZWdlcihudW1NaW5EZWxheVJldHJpZXMpKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgbnVtTWluRGVsYXlSZXRyaWVzIG11c3QgYmUgYW4gaW50ZWdlciB6ZXJvIG9yIGdyZWF0ZXIsIGdvdDogJHtudW1NaW5EZWxheVJldHJpZXN9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbnVtTWF4RGVsYXlSZXRyaWVzICYmXG4gICAgICAgIChudW1NYXhEZWxheVJldHJpZXMgPCAwIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKG51bU1heERlbGF5UmV0cmllcykpXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBudW1NYXhEZWxheVJldHJpZXMgbXVzdCBiZSBhbiBpbnRlZ2VyIHplcm8gb3IgZ3JlYXRlciwgZ290OiAke251bU1heERlbGF5UmV0cmllc31gLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZW5kZXJlZFBvbGljeS5oZWFsdGh5UmV0cnlQb2xpY3kgPSB7XG4gICAgICAgIG1pbkRlbGF5VGFyZ2V0OlxuICAgICAgICAgIGhlYWx0aHlSZXRyeVBvbGljeS5taW5EZWxheVRhcmdldCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IDIwXG4gICAgICAgICAgICA6IGhlYWx0aHlSZXRyeVBvbGljeS5taW5EZWxheVRhcmdldC50b1NlY29uZHMoKSxcbiAgICAgICAgbWF4RGVsYXlUYXJnZXQ6XG4gICAgICAgICAgaGVhbHRoeVJldHJ5UG9saWN5Lm1heERlbGF5VGFyZ2V0ID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gMjBcbiAgICAgICAgICAgIDogaGVhbHRoeVJldHJ5UG9saWN5Lm1heERlbGF5VGFyZ2V0LnRvU2Vjb25kcygpLFxuICAgICAgICBudW1SZXRyaWVzOlxuICAgICAgICAgIGhlYWx0aHlSZXRyeVBvbGljeS5udW1SZXRyaWVzID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gM1xuICAgICAgICAgICAgOiBoZWFsdGh5UmV0cnlQb2xpY3kubnVtUmV0cmllcyxcbiAgICAgICAgbnVtTm9EZWxheVJldHJpZXM6IGhlYWx0aHlSZXRyeVBvbGljeS5udW1Ob0RlbGF5UmV0cmllcyxcbiAgICAgICAgbnVtTWluRGVsYXlSZXRyaWVzOiBoZWFsdGh5UmV0cnlQb2xpY3kubnVtTWluRGVsYXlSZXRyaWVzLFxuICAgICAgICBudW1NYXhEZWxheVJldHJpZXM6IGhlYWx0aHlSZXRyeVBvbGljeS5udW1NYXhEZWxheVJldHJpZXMsXG4gICAgICAgIGJhY2tvZmZGdW5jdGlvbjogaGVhbHRoeVJldHJ5UG9saWN5LmJhY2tvZmZGdW5jdGlvbixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHRocm90dGxlUG9saWN5KSB7XG4gICAgICBjb25zdCBtYXhSZWNlaXZlc1BlclNlY29uZCA9IHRocm90dGxlUG9saWN5Lm1heFJlY2VpdmVzUGVyU2Vjb25kO1xuICAgICAgaWYgKFxuICAgICAgICBtYXhSZWNlaXZlc1BlclNlY29uZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgIChtYXhSZWNlaXZlc1BlclNlY29uZCA8IDEgfHwgIU51bWJlci5pc0ludGVnZXIobWF4UmVjZWl2ZXNQZXJTZWNvbmQpKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgbWF4UmVjZWl2ZXNQZXJTZWNvbmQgbXVzdCBiZSBhbiBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiB6ZXJvLCBnb3Q6ICR7bWF4UmVjZWl2ZXNQZXJTZWNvbmR9YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJlbmRlcmVkUG9saWN5LnRocm90dGxlUG9saWN5ID0ge1xuICAgICAgICBtYXhSZWNlaXZlc1BlclNlY29uZDogdGhyb3R0bGVQb2xpY3kubWF4UmVjZWl2ZXNQZXJTZWNvbmQsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChyZXF1ZXN0UG9saWN5KSB7XG4gICAgICByZW5kZXJlZFBvbGljeS5yZXF1ZXN0UG9saWN5ID0ge1xuICAgICAgICBoZWFkZXJDb250ZW50VHlwZTogcmVxdWVzdFBvbGljeS5oZWFkZXJDb250ZW50VHlwZSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHJlbmRlcmVkUG9saWN5KTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGREZWFkTGV0dGVyUXVldWUoXG4gICAgcHJvcHM6IFN1YnNjcmlwdGlvblByb3BzLFxuICApOiBub3RpZnkuSVF1ZXVlIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXByb3BzLmRlYWRMZXR0ZXJRdWV1ZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBkZWFkTGV0dGVyUXVldWUgPSBwcm9wcy5kZWFkTGV0dGVyUXVldWU7XG5cbiAgICBkZWFkTGV0dGVyUXVldWUuYWRkVG9SZXNvdXJjZVBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgcmVzb3VyY2VzOiBbZGVhZExldHRlclF1ZXVlLnF1ZXVlQXJuXSxcbiAgICAgICAgYWN0aW9uczogW1wic3FzOlNlbmRNZXNzYWdlXCJdLFxuICAgICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwic25zLmFtYXpvbmF3cy5jb21cIildLFxuICAgICAgICBjb25kaXRpb246IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXN0OiBcIkFybkVxdWFsc1wiLFxuICAgICAgICAgICAgdmFyaWFibGU6IFwiYXdzOlNvdXJjZUFyblwiLFxuICAgICAgICAgICAgdmFsdWVzOiBbcHJvcHMudG9waWMudG9waWNBcm5dLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgcmV0dXJuIGRlYWRMZXR0ZXJRdWV1ZTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGREZWFkTGV0dGVyQ29uZmlnKFxuICAgIGRlYWRMZXR0ZXJRdWV1ZT86IG5vdGlmeS5JUXVldWUsXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGRlYWRMZXR0ZXJRdWV1ZSkge1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgZGVhZExldHRlclRhcmdldEFybjogZGVhZExldHRlclF1ZXVlLnF1ZXVlQXJuLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2Ygc3Vic2NyaXB0aW9uLCBjb250cm9sbGluZyB0aGUgdHlwZSBvZiB0aGUgZW5kcG9pbnQgcGFyYW1ldGVyLlxuICovXG5leHBvcnQgZW51bSBTdWJzY3JpcHRpb25Qcm90b2NvbCB7XG4gIC8qKlxuICAgKiBKU09OLWVuY29kZWQgbWVzc2FnZSBpcyBQT1NURUQgdG8gYW4gSFRUUCB1cmwuXG4gICAqL1xuICBIVFRQID0gXCJodHRwXCIsXG5cbiAgLyoqXG4gICAqIEpTT04tZW5jb2RlZCBtZXNzYWdlIGlzIFBPU1RlZCB0byBhbiBIVFRQUyB1cmwuXG4gICAqL1xuICBIVFRQUyA9IFwiaHR0cHNcIixcblxuICAvKipcbiAgICogTm90aWZpY2F0aW9ucyBhcmUgc2VudCB2aWEgZW1haWwuXG4gICAqL1xuICBFTUFJTCA9IFwiZW1haWxcIixcblxuICAvKipcbiAgICogTm90aWZpY2F0aW9ucyBhcmUgSlNPTi1lbmNvZGVkIGFuZCBzZW50IHZpYSBtYWlsLlxuICAgKi9cbiAgRU1BSUxfSlNPTiA9IFwiZW1haWwtanNvblwiLFxuXG4gIC8qKlxuICAgKiBOb3RpZmljYXRpb24gaXMgZGVsaXZlcmVkIGJ5IFNNU1xuICAgKi9cbiAgU01TID0gXCJzbXNcIixcblxuICAvKipcbiAgICogTm90aWZpY2F0aW9ucyBhcmUgZW5xdWV1ZWQgaW50byBhbiBTUVMgcXVldWUuXG4gICAqL1xuICBTUVMgPSBcInNxc1wiLFxuXG4gIC8qKlxuICAgKiBKU09OLWVuY29kZWQgbm90aWZpY2F0aW9ucyBhcmUgc2VudCB0byBhIG1vYmlsZSBhcHAgZW5kcG9pbnQuXG4gICAqL1xuICBBUFBMSUNBVElPTiA9IFwiYXBwbGljYXRpb25cIixcblxuICAvKipcbiAgICogTm90aWZpY2F0aW9ucyB0cmlnZ2VyIGEgTGFtYmRhIGZ1bmN0aW9uLlxuICAgKi9cbiAgTEFNQkRBID0gXCJsYW1iZGFcIixcblxuICAvKipcbiAgICogTm90aWZpY2F0aW9ucyBwdXQgcmVjb3JkcyBpbnRvIGEgZmlyZWhvc2UgZGVsaXZlcnkgc3RyZWFtLlxuICAgKi9cbiAgRklSRUhPU0UgPSBcImZpcmVob3NlXCIsXG59XG5cbmZ1bmN0aW9uIGJ1aWxkRmlsdGVyUG9saWN5V2l0aE1lc3NhZ2VCb2R5KFxuICBzY29wZTogQ29uc3RydWN0LFxuICBpbnB1dE9iamVjdDogeyBba2V5OiBzdHJpbmddOiBGaWx0ZXJPclBvbGljeSB9LFxuICBkZXB0aCA9IDEsXG4gIHRvdGFsQ29tYmluYXRpb25WYWx1ZXMgPSBbMV0sXG4pOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgY29uc3QgcmVzdWx0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG5cbiAgZm9yIChjb25zdCBba2V5LCBmaWx0ZXJPclBvbGljeV0gb2YgT2JqZWN0LmVudHJpZXMoaW5wdXRPYmplY3QpKSB7XG4gICAgaWYgKGZpbHRlck9yUG9saWN5LmlzUG9saWN5KCkpIHtcbiAgICAgIHJlc3VsdFtrZXldID0gYnVpbGRGaWx0ZXJQb2xpY3lXaXRoTWVzc2FnZUJvZHkoXG4gICAgICAgIHNjb3BlLFxuICAgICAgICBmaWx0ZXJPclBvbGljeS5wb2xpY3lEb2MsXG4gICAgICAgIGRlcHRoICsgMSxcbiAgICAgICAgdG90YWxDb21iaW5hdGlvblZhbHVlcyxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChmaWx0ZXJPclBvbGljeS5pc0ZpbHRlcigpKSB7XG4gICAgICBjb25zdCBmaWx0ZXIgPSBmaWx0ZXJPclBvbGljeS5maWx0ZXJEb2MuY29uZGl0aW9ucztcbiAgICAgIHJlc3VsdFtrZXldID0gZmlsdGVyO1xuICAgICAgdG90YWxDb21iaW5hdGlvblZhbHVlc1swXSAqPSBmaWx0ZXIubGVuZ3RoICogZGVwdGg7XG4gICAgfVxuICB9XG5cbiAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nucy9sYXRlc3QvZGcvc3Vic2NyaXB0aW9uLWZpbHRlci1wb2xpY3ktY29uc3RyYWludHMuaHRtbFxuICBpZiAodG90YWxDb21iaW5hdGlvblZhbHVlc1swXSA+IDE1MCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBUaGUgdG90YWwgY29tYmluYXRpb24gb2YgdmFsdWVzICgke3RvdGFsQ29tYmluYXRpb25WYWx1ZXN9KSBtdXN0IG5vdCBleGNlZWQgMTUwLmAsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgdGhlIE1lc3NhZ2VCb2R5IGF0IGEgZ2l2ZW4ga2V5IHZhbHVlIHBhaXJcbiAqL1xuZXhwb3J0IGVudW0gRmlsdGVyT3JQb2xpY3lUeXBlIHtcbiAgLyoqXG4gICAqIFRoZSBmaWx0ZXIgb2YgdGhlIE1lc3NhZ2VCb2R5XG4gICAqL1xuICBGSUxURVIsXG4gIC8qKlxuICAgKiBBIG5lc3RlZCBrZXkgb2YgdGhlIE1lc3NhZ2VCb2R5XG4gICAqL1xuICBQT0xJQ1ksXG59XG5cbi8qKlxuICogQ2xhc3MgZm9yIGJ1aWxkaW5nIHRoZSBGaWx0ZXJQb2xpY3kgYnkgYXZvaWRpbmcgdW5pb24gdHlwZXNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZpbHRlck9yUG9saWN5IHtcbiAgLyoqXG4gICAqIEZpbHRlciBvZiBNZXNzYWdlQm9keVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmaWx0ZXIoZmlsdGVyOiBTdWJzY3JpcHRpb25GaWx0ZXIpIHtcbiAgICByZXR1cm4gbmV3IEZpbHRlcihmaWx0ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBvbGljeSBvZiBNZXNzYWdlQm9keVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwb2xpY3kocG9saWN5OiB7IFthdHRyaWJ1dGU6IHN0cmluZ106IEZpbHRlck9yUG9saWN5IH0pIHtcbiAgICByZXR1cm4gbmV3IFBvbGljeShwb2xpY3kpO1xuICB9XG5cbiAgLyoqXG4gICAqIFR5cGUgc3dpdGNoIGZvciBkaXNhbWJpZ3VhdGluZyBiZXR3ZWVuIHN1YmNsYXNzZXNcbiAgICovXG4gIGFic3RyYWN0IHJlYWRvbmx5IHR5cGU6IEZpbHRlck9yUG9saWN5VHlwZTtcblxuICAvKipcbiAgICogQ2hlY2sgaWYgaW5zdGFuY2UgaXMgYFBvbGljeWAgdHlwZVxuICAgKi9cbiAgcHVibGljIGlzUG9saWN5KCk6IHRoaXMgaXMgUG9saWN5IHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBGaWx0ZXJPclBvbGljeVR5cGUuUE9MSUNZO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGluc3RhbmNlIGlzIGBGaWx0ZXJgIHR5cGVcbiAgICovXG4gIHB1YmxpYyBpc0ZpbHRlcigpOiB0aGlzIGlzIEZpbHRlciB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gRmlsdGVyT3JQb2xpY3lUeXBlLkZJTFRFUjtcbiAgfVxufVxuXG4vKipcbiAqIEZpbHRlciBpbXBsZW1lbnRhdGlvbiBvZiBGaWx0ZXJPclBvbGljeVxuICovXG5leHBvcnQgY2xhc3MgRmlsdGVyIGV4dGVuZHMgRmlsdGVyT3JQb2xpY3kge1xuICAvKipcbiAgICogVHlwZSB1c2VkIGluIERGUyBidWlsZEZpbHRlclBvbGljeVdpdGhNZXNzYWdlQm9keSB0byBkZXRlcm1pbmUganNvbiB2YWx1ZSB0eXBlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZSA9IEZpbHRlck9yUG9saWN5VHlwZS5GSUxURVI7XG4gIC8qKlxuICAgKiBQb2xpY3kgY29uc3RydWN0b3JcbiAgICogQHBhcmFtIGZpbHRlckRvYyBmaWx0ZXIgYXJndW1lbnQgdG8gY29uc3RydWN0XG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGZpbHRlckRvYzogU3Vic2NyaXB0aW9uRmlsdGVyKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuXG4vKipcbiAqIFBvbGljeSBJbXBsZW1lbnRhdGlvbiBvZiBGaWx0ZXJPclBvbGljeVxuICovXG5leHBvcnQgY2xhc3MgUG9saWN5IGV4dGVuZHMgRmlsdGVyT3JQb2xpY3kge1xuICAvKipcbiAgICogVHlwZSB1c2VkIGluIERGUyBidWlsZEZpbHRlclBvbGljeVdpdGhNZXNzYWdlQm9keSB0byBkZXRlcm1pbmUganNvbiB2YWx1ZSB0eXBlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZSA9IEZpbHRlck9yUG9saWN5VHlwZS5QT0xJQ1k7XG4gIC8qKlxuICAgKiBQb2xpY3kgY29uc3RydWN0b3JcbiAgICogQHBhcmFtIHBvbGljeURvYyBwb2xpY3kgYXJndW1lbnQgdG8gY29uc3RydWN0XG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHBvbGljeURvYzogeyBbYXR0cmlidXRlOiBzdHJpbmddOiBGaWx0ZXJPclBvbGljeSB9LFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,28 @@
1
+ import * as sns from "..";
2
+ import { SubscriptionProps } from "./subscription";
3
+ /**
4
+ * Options for email subscriptions.
5
+ */
6
+ export interface EmailSubscriptionProps extends SubscriptionProps {
7
+ /**
8
+ * Indicates if the full notification JSON should be sent to the email
9
+ * address or just the message text.
10
+ *
11
+ * @default false (Message text)
12
+ */
13
+ readonly json?: boolean;
14
+ }
15
+ /**
16
+ * Use an email address as a subscription target
17
+ *
18
+ * Email subscriptions require confirmation.
19
+ */
20
+ export declare class EmailSubscription implements sns.ITopicSubscription {
21
+ private readonly emailAddress;
22
+ private readonly props;
23
+ constructor(emailAddress: string, props?: EmailSubscriptionProps);
24
+ /**
25
+ * Returns a configuration for an email address to subscribe to an SNS topic
26
+ */
27
+ bind(_topic: sns.ITopic): sns.TopicSubscriptionConfig;
28
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.EmailSubscription = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ // https://github.com/aws/aws-cdk/blob/v2.176.0/packages/aws-cdk-lib/aws-sns/lib/subscription.ts
7
+ const sns = require("..");
8
+ /**
9
+ * Use an email address as a subscription target
10
+ *
11
+ * Email subscriptions require confirmation.
12
+ */
13
+ class EmailSubscription {
14
+ constructor(emailAddress, props = {}) {
15
+ this.emailAddress = emailAddress;
16
+ this.props = props;
17
+ }
18
+ /**
19
+ * Returns a configuration for an email address to subscribe to an SNS topic
20
+ */
21
+ bind(_topic) {
22
+ return {
23
+ subscriberId: this.emailAddress,
24
+ endpoint: this.emailAddress,
25
+ protocol: this.props.json
26
+ ? sns.SubscriptionProtocol.EMAIL_JSON
27
+ : sns.SubscriptionProtocol.EMAIL,
28
+ filterPolicy: this.props.filterPolicy,
29
+ filterPolicyWithMessageBody: this.props.filterPolicyWithMessageBody,
30
+ deadLetterQueue: this.props.deadLetterQueue,
31
+ };
32
+ }
33
+ }
34
+ exports.EmailSubscription = EmailSubscription;
35
+ _a = JSII_RTTI_SYMBOL_1;
36
+ EmailSubscription[_a] = { fqn: "terraconstructs.aws.notify.subscriptions.EmailSubscription", version: "0.0.20" };
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL25vdGlmeS9zdWJzY3JpcHRpb25zL2VtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0dBQWdHO0FBRWhHLDBCQUEwQjtBQWdCMUI7Ozs7R0FJRztBQUNILE1BQWEsaUJBQWlCO0lBQzVCLFlBQ21CLFlBQW9CLEVBQ3BCLFFBQWdDLEVBQUU7UUFEbEMsaUJBQVksR0FBWixZQUFZLENBQVE7UUFDcEIsVUFBSyxHQUFMLEtBQUssQ0FBNkI7SUFDbEQsQ0FBQztJQUVKOztPQUVHO0lBQ0ksSUFBSSxDQUFDLE1BQWtCO1FBQzVCLE9BQU87WUFDTCxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDL0IsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQzNCLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7Z0JBQ3ZCLENBQUMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsVUFBVTtnQkFDckMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLO1lBQ2xDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVk7WUFDckMsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQywyQkFBMkI7WUFDbkUsZUFBZSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZTtTQUM1QyxDQUFDO0lBQ0osQ0FBQzs7QUFwQkgsOENBcUJDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTc2LjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLXNucy9saWIvc3Vic2NyaXB0aW9uLnRzXG5cbmltcG9ydCAqIGFzIHNucyBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvblByb3BzIH0gZnJvbSBcIi4vc3Vic2NyaXB0aW9uXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZW1haWwgc3Vic2NyaXB0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbWFpbFN1YnNjcmlwdGlvblByb3BzIGV4dGVuZHMgU3Vic2NyaXB0aW9uUHJvcHMge1xuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBmdWxsIG5vdGlmaWNhdGlvbiBKU09OIHNob3VsZCBiZSBzZW50IHRvIHRoZSBlbWFpbFxuICAgKiBhZGRyZXNzIG9yIGp1c3QgdGhlIG1lc3NhZ2UgdGV4dC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2UgKE1lc3NhZ2UgdGV4dClcbiAgICovXG4gIHJlYWRvbmx5IGpzb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFVzZSBhbiBlbWFpbCBhZGRyZXNzIGFzIGEgc3Vic2NyaXB0aW9uIHRhcmdldFxuICpcbiAqIEVtYWlsIHN1YnNjcmlwdGlvbnMgcmVxdWlyZSBjb25maXJtYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBFbWFpbFN1YnNjcmlwdGlvbiBpbXBsZW1lbnRzIHNucy5JVG9waWNTdWJzY3JpcHRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVtYWlsQWRkcmVzczogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IEVtYWlsU3Vic2NyaXB0aW9uUHJvcHMgPSB7fSxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY29uZmlndXJhdGlvbiBmb3IgYW4gZW1haWwgYWRkcmVzcyB0byBzdWJzY3JpYmUgdG8gYW4gU05TIHRvcGljXG4gICAqL1xuICBwdWJsaWMgYmluZChfdG9waWM6IHNucy5JVG9waWMpOiBzbnMuVG9waWNTdWJzY3JpcHRpb25Db25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBzdWJzY3JpYmVySWQ6IHRoaXMuZW1haWxBZGRyZXNzLFxuICAgICAgZW5kcG9pbnQ6IHRoaXMuZW1haWxBZGRyZXNzLFxuICAgICAgcHJvdG9jb2w6IHRoaXMucHJvcHMuanNvblxuICAgICAgICA/IHNucy5TdWJzY3JpcHRpb25Qcm90b2NvbC5FTUFJTF9KU09OXG4gICAgICAgIDogc25zLlN1YnNjcmlwdGlvblByb3RvY29sLkVNQUlMLFxuICAgICAgZmlsdGVyUG9saWN5OiB0aGlzLnByb3BzLmZpbHRlclBvbGljeSxcbiAgICAgIGZpbHRlclBvbGljeVdpdGhNZXNzYWdlQm9keTogdGhpcy5wcm9wcy5maWx0ZXJQb2xpY3lXaXRoTWVzc2FnZUJvZHksXG4gICAgICBkZWFkTGV0dGVyUXVldWU6IHRoaXMucHJvcHMuZGVhZExldHRlclF1ZXVlLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export * from "./subscription";
2
+ export * from "./email";
3
+ export * from "./lambda";
4
+ export * from "./sqs";
5
+ export * from "./url";
6
+ export * from "./sms";
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./subscription"), exports);
18
+ __exportStar(require("./email"), exports);
19
+ __exportStar(require("./lambda"), exports);
20
+ __exportStar(require("./sqs"), exports);
21
+ __exportStar(require("./url"), exports);
22
+ __exportStar(require("./sms"), exports);
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL25vdGlmeS9zdWJzY3JpcHRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBK0I7QUFDL0IsMENBQXdCO0FBQ3hCLDJDQUF5QjtBQUN6Qix3Q0FBc0I7QUFDdEIsd0NBQXNCO0FBQ3RCLHdDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3N1YnNjcmlwdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW1haWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xhbWJkYVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3FzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91cmxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Ntc1wiO1xuIl19
@@ -0,0 +1,21 @@
1
+ import { SubscriptionProps } from "./subscription";
2
+ import * as sns from "../";
3
+ import * as lambda from "../../compute";
4
+ /**
5
+ * Properties for a Lambda subscription
6
+ */
7
+ export interface LambdaSubscriptionProps extends SubscriptionProps {
8
+ }
9
+ /**
10
+ * Use a Lambda function as a subscription target
11
+ */
12
+ export declare class LambdaSubscription implements sns.ITopicSubscription {
13
+ private readonly fn;
14
+ private readonly props;
15
+ constructor(fn: lambda.IFunction, props?: LambdaSubscriptionProps);
16
+ /**
17
+ * Returns a configuration for a Lambda function to subscribe to an SNS topic
18
+ */
19
+ bind(topic: sns.ITopic): sns.TopicSubscriptionConfig;
20
+ private regionFromArn;
21
+ }
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.LambdaSubscription = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ // https://github.com/aws/aws-cdk/blob/v2.176.0/packages/aws-cdk-lib/aws-sns-subscriptions/lib/lambda.ts
7
+ const cdktf_1 = require("cdktf");
8
+ const constructs_1 = require("constructs");
9
+ const sns = require("../");
10
+ const arn_1 = require("../../arn");
11
+ const aws_stack_1 = require("../../aws-stack");
12
+ const iam = require("../../iam");
13
+ /**
14
+ * Use a Lambda function as a subscription target
15
+ */
16
+ class LambdaSubscription {
17
+ constructor(fn, props = {}) {
18
+ this.fn = fn;
19
+ this.props = props;
20
+ }
21
+ /**
22
+ * Returns a configuration for a Lambda function to subscribe to an SNS topic
23
+ */
24
+ bind(topic) {
25
+ // Create subscription under *consuming* construct to make sure it ends up
26
+ // in the correct stack in cases of cross-stack subscriptions.
27
+ if (!constructs_1.Construct.isConstruct(this.fn)) {
28
+ throw new Error("The supplied lambda Function object must be an instance of Construct");
29
+ }
30
+ this.fn.addPermission(`AllowInvoke:${aws_stack_1.AwsStack.uniqueId(topic.node)}`, {
31
+ sourceArn: topic.topicArn,
32
+ principal: new iam.ServicePrincipal("sns.amazonaws.com"),
33
+ });
34
+ // if the topic and function are created in different stacks
35
+ // then we need to make sure the topic is created first
36
+ if (topic instanceof sns.Topic && topic.stack !== this.fn.stack) {
37
+ this.fn.stack.addDependency(topic.stack);
38
+ }
39
+ return {
40
+ subscriberScope: this.fn,
41
+ subscriberId: topic.node.id,
42
+ endpoint: this.fn.functionArn,
43
+ protocol: sns.SubscriptionProtocol.LAMBDA,
44
+ filterPolicy: this.props.filterPolicy,
45
+ filterPolicyWithMessageBody: this.props.filterPolicyWithMessageBody,
46
+ region: this.regionFromArn(topic),
47
+ deadLetterQueue: this.props.deadLetterQueue,
48
+ };
49
+ }
50
+ regionFromArn(topic) {
51
+ // no need to specify `region` for topics defined within the same stack.
52
+ if (topic instanceof sns.Topic) {
53
+ if (topic.stack !== this.fn.stack) {
54
+ // only if we know the region, will not work for
55
+ // env agnostic stacks
56
+ if (!cdktf_1.Token.isUnresolved(topic.env.region) &&
57
+ topic.env.region !== this.fn.env.region) {
58
+ return topic.env.region;
59
+ }
60
+ }
61
+ return undefined;
62
+ }
63
+ return aws_stack_1.AwsStack.ofAwsConstruct(topic).splitArn(topic.topicArn, arn_1.ArnFormat.SLASH_RESOURCE_NAME).region;
64
+ }
65
+ }
66
+ exports.LambdaSubscription = LambdaSubscription;
67
+ _a = JSII_RTTI_SYMBOL_1;
68
+ LambdaSubscription[_a] = { fqn: "terraconstructs.aws.notify.subscriptions.LambdaSubscription", version: "0.0.20" };
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9ub3RpZnkvc3Vic2NyaXB0aW9ucy9sYW1iZGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3R0FBd0c7QUFFeEcsaUNBQThCO0FBQzlCLDJDQUF1QztBQUV2QywyQkFBMkI7QUFDM0IsbUNBQXNDO0FBQ3RDLCtDQUEyQztBQUUzQyxpQ0FBaUM7QUFNakM7O0dBRUc7QUFDSCxNQUFhLGtCQUFrQjtJQUM3QixZQUNtQixFQUFvQixFQUNwQixRQUFpQyxFQUFFO1FBRG5DLE9BQUUsR0FBRixFQUFFLENBQWtCO1FBQ3BCLFVBQUssR0FBTCxLQUFLLENBQThCO0lBQ25ELENBQUM7SUFFSjs7T0FFRztJQUNJLElBQUksQ0FBQyxLQUFpQjtRQUMzQiwwRUFBMEU7UUFDMUUsOERBQThEO1FBQzlELElBQUksQ0FBQyxzQkFBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksS0FBSyxDQUNiLHNFQUFzRSxDQUN2RSxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGVBQWUsb0JBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDcEUsU0FBUyxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3pCLFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQztTQUN6RCxDQUFDLENBQUM7UUFFSCw0REFBNEQ7UUFDNUQsdURBQXVEO1FBQ3ZELElBQUksS0FBSyxZQUFZLEdBQUcsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hFLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUVELE9BQU87WUFDTCxlQUFlLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDeEIsWUFBWSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzQixRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXO1lBQzdCLFFBQVEsRUFBRSxHQUFHLENBQUMsb0JBQW9CLENBQUMsTUFBTTtZQUN6QyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZO1lBQ3JDLDJCQUEyQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsMkJBQTJCO1lBQ25FLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUNqQyxlQUFlLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlO1NBQzVDLENBQUM7SUFDSixDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQWlCO1FBQ3JDLHdFQUF3RTtRQUN4RSxJQUFJLEtBQUssWUFBWSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDL0IsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2xDLGdEQUFnRDtnQkFDaEQsc0JBQXNCO2dCQUN0QixJQUNFLENBQUMsYUFBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztvQkFDckMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUN2QyxDQUFDO29CQUNELE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7Z0JBQzFCLENBQUM7WUFDSCxDQUFDO1lBQ0QsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELE9BQU8sb0JBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUM1QyxLQUFLLENBQUMsUUFBUSxFQUNkLGVBQVMsQ0FBQyxtQkFBbUIsQ0FDOUIsQ0FBQyxNQUFNLENBQUM7SUFDWCxDQUFDOztBQTVESCxnREE2REMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzYuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3Mtc25zLXN1YnNjcmlwdGlvbnMvbGliL2xhbWJkYS50c1xuXG5pbXBvcnQgeyBUb2tlbiB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvblByb3BzIH0gZnJvbSBcIi4vc3Vic2NyaXB0aW9uXCI7XG5pbXBvcnQgKiBhcyBzbnMgZnJvbSBcIi4uL1wiO1xuaW1wb3J0IHsgQXJuRm9ybWF0IH0gZnJvbSBcIi4uLy4uL2FyblwiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSBcIi4uLy4uL2NvbXB1dGVcIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vLi4vaWFtXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBMYW1iZGEgc3Vic2NyaXB0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhU3Vic2NyaXB0aW9uUHJvcHMgZXh0ZW5kcyBTdWJzY3JpcHRpb25Qcm9wcyB7fVxuLyoqXG4gKiBVc2UgYSBMYW1iZGEgZnVuY3Rpb24gYXMgYSBzdWJzY3JpcHRpb24gdGFyZ2V0XG4gKi9cbmV4cG9ydCBjbGFzcyBMYW1iZGFTdWJzY3JpcHRpb24gaW1wbGVtZW50cyBzbnMuSVRvcGljU3Vic2NyaXB0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmbjogbGFtYmRhLklGdW5jdGlvbixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBMYW1iZGFTdWJzY3JpcHRpb25Qcm9wcyA9IHt9LFxuICApIHt9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjb25maWd1cmF0aW9uIGZvciBhIExhbWJkYSBmdW5jdGlvbiB0byBzdWJzY3JpYmUgdG8gYW4gU05TIHRvcGljXG4gICAqL1xuICBwdWJsaWMgYmluZCh0b3BpYzogc25zLklUb3BpYyk6IHNucy5Ub3BpY1N1YnNjcmlwdGlvbkNvbmZpZyB7XG4gICAgLy8gQ3JlYXRlIHN1YnNjcmlwdGlvbiB1bmRlciAqY29uc3VtaW5nKiBjb25zdHJ1Y3QgdG8gbWFrZSBzdXJlIGl0IGVuZHMgdXBcbiAgICAvLyBpbiB0aGUgY29ycmVjdCBzdGFjayBpbiBjYXNlcyBvZiBjcm9zcy1zdGFjayBzdWJzY3JpcHRpb25zLlxuICAgIGlmICghQ29uc3RydWN0LmlzQ29uc3RydWN0KHRoaXMuZm4pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiVGhlIHN1cHBsaWVkIGxhbWJkYSBGdW5jdGlvbiBvYmplY3QgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBDb25zdHJ1Y3RcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5mbi5hZGRQZXJtaXNzaW9uKGBBbGxvd0ludm9rZToke0F3c1N0YWNrLnVuaXF1ZUlkKHRvcGljLm5vZGUpfWAsIHtcbiAgICAgIHNvdXJjZUFybjogdG9waWMudG9waWNBcm4sXG4gICAgICBwcmluY2lwYWw6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbChcInNucy5hbWF6b25hd3MuY29tXCIpLFxuICAgIH0pO1xuXG4gICAgLy8gaWYgdGhlIHRvcGljIGFuZCBmdW5jdGlvbiBhcmUgY3JlYXRlZCBpbiBkaWZmZXJlbnQgc3RhY2tzXG4gICAgLy8gdGhlbiB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgdG9waWMgaXMgY3JlYXRlZCBmaXJzdFxuICAgIGlmICh0b3BpYyBpbnN0YW5jZW9mIHNucy5Ub3BpYyAmJiB0b3BpYy5zdGFjayAhPT0gdGhpcy5mbi5zdGFjaykge1xuICAgICAgdGhpcy5mbi5zdGFjay5hZGREZXBlbmRlbmN5KHRvcGljLnN0YWNrKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3Vic2NyaWJlclNjb3BlOiB0aGlzLmZuLFxuICAgICAgc3Vic2NyaWJlcklkOiB0b3BpYy5ub2RlLmlkLFxuICAgICAgZW5kcG9pbnQ6IHRoaXMuZm4uZnVuY3Rpb25Bcm4sXG4gICAgICBwcm90b2NvbDogc25zLlN1YnNjcmlwdGlvblByb3RvY29sLkxBTUJEQSxcbiAgICAgIGZpbHRlclBvbGljeTogdGhpcy5wcm9wcy5maWx0ZXJQb2xpY3ksXG4gICAgICBmaWx0ZXJQb2xpY3lXaXRoTWVzc2FnZUJvZHk6IHRoaXMucHJvcHMuZmlsdGVyUG9saWN5V2l0aE1lc3NhZ2VCb2R5LFxuICAgICAgcmVnaW9uOiB0aGlzLnJlZ2lvbkZyb21Bcm4odG9waWMpLFxuICAgICAgZGVhZExldHRlclF1ZXVlOiB0aGlzLnByb3BzLmRlYWRMZXR0ZXJRdWV1ZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpb25Gcm9tQXJuKHRvcGljOiBzbnMuSVRvcGljKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBubyBuZWVkIHRvIHNwZWNpZnkgYHJlZ2lvbmAgZm9yIHRvcGljcyBkZWZpbmVkIHdpdGhpbiB0aGUgc2FtZSBzdGFjay5cbiAgICBpZiAodG9waWMgaW5zdGFuY2VvZiBzbnMuVG9waWMpIHtcbiAgICAgIGlmICh0b3BpYy5zdGFjayAhPT0gdGhpcy5mbi5zdGFjaykge1xuICAgICAgICAvLyBvbmx5IGlmIHdlIGtub3cgdGhlIHJlZ2lvbiwgd2lsbCBub3Qgd29yayBmb3JcbiAgICAgICAgLy8gZW52IGFnbm9zdGljIHN0YWNrc1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZCh0b3BpYy5lbnYucmVnaW9uKSAmJlxuICAgICAgICAgIHRvcGljLmVudi5yZWdpb24gIT09IHRoaXMuZm4uZW52LnJlZ2lvblxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gdG9waWMuZW52LnJlZ2lvbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRvcGljKS5zcGxpdEFybihcbiAgICAgIHRvcGljLnRvcGljQXJuLFxuICAgICAgQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgKS5yZWdpb247XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import * as sns from "..";
2
+ import { SubscriptionProps } from "./subscription";
3
+ /**
4
+ * Options for SMS subscriptions.
5
+ */
6
+ export interface SmsSubscriptionProps extends SubscriptionProps {
7
+ }
8
+ /**
9
+ * Use an sms address as a subscription target
10
+ */
11
+ export declare class SmsSubscription implements sns.ITopicSubscription {
12
+ private readonly phoneNumber;
13
+ private readonly props;
14
+ constructor(phoneNumber: string, props?: SmsSubscriptionProps);
15
+ bind(_topic: sns.ITopic): sns.TopicSubscriptionConfig;
16
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.SmsSubscription = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ // https://github.com/aws/aws-cdk/blob/v2.176.0/packages/aws-cdk-lib/aws-sns-subscriptions/lib/sms.ts
7
+ const sns = require("..");
8
+ /**
9
+ * Use an sms address as a subscription target
10
+ */
11
+ class SmsSubscription {
12
+ constructor(phoneNumber, props = {}) {
13
+ this.phoneNumber = phoneNumber;
14
+ this.props = props;
15
+ }
16
+ bind(_topic) {
17
+ return {
18
+ subscriberId: this.phoneNumber,
19
+ endpoint: this.phoneNumber,
20
+ protocol: sns.SubscriptionProtocol.SMS,
21
+ filterPolicy: this.props.filterPolicy,
22
+ filterPolicyWithMessageBody: this.props.filterPolicyWithMessageBody,
23
+ };
24
+ }
25
+ }
26
+ exports.SmsSubscription = SmsSubscription;
27
+ _a = JSII_RTTI_SYMBOL_1;
28
+ SmsSubscription[_a] = { fqn: "terraconstructs.aws.notify.subscriptions.SmsSubscription", version: "0.0.20" };
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9ub3RpZnkvc3Vic2NyaXB0aW9ucy9zbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxR0FBcUc7QUFFckcsMEJBQTBCO0FBUTFCOztHQUVHO0FBQ0gsTUFBYSxlQUFlO0lBQzFCLFlBQ21CLFdBQW1CLEVBQ25CLFFBQThCLEVBQUU7UUFEaEMsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsVUFBSyxHQUFMLEtBQUssQ0FBMkI7SUFDaEQsQ0FBQztJQUVHLElBQUksQ0FBQyxNQUFrQjtRQUM1QixPQUFPO1lBQ0wsWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzlCLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVztZQUMxQixRQUFRLEVBQUUsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEdBQUc7WUFDdEMsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWTtZQUNyQywyQkFBMkIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLDJCQUEyQjtTQUNwRSxDQUFDO0lBQ0osQ0FBQzs7QUFkSCwwQ0FlQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1zbnMtc3Vic2NyaXB0aW9ucy9saWIvc21zLnRzXG5cbmltcG9ydCAqIGFzIHNucyBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvblByb3BzIH0gZnJvbSBcIi4vc3Vic2NyaXB0aW9uXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgU01TIHN1YnNjcmlwdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU21zU3Vic2NyaXB0aW9uUHJvcHMgZXh0ZW5kcyBTdWJzY3JpcHRpb25Qcm9wcyB7fVxuXG4vKipcbiAqIFVzZSBhbiBzbXMgYWRkcmVzcyBhcyBhIHN1YnNjcmlwdGlvbiB0YXJnZXRcbiAqL1xuZXhwb3J0IGNsYXNzIFNtc1N1YnNjcmlwdGlvbiBpbXBsZW1lbnRzIHNucy5JVG9waWNTdWJzY3JpcHRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBob25lTnVtYmVyOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9wczogU21zU3Vic2NyaXB0aW9uUHJvcHMgPSB7fSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBiaW5kKF90b3BpYzogc25zLklUb3BpYyk6IHNucy5Ub3BpY1N1YnNjcmlwdGlvbkNvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN1YnNjcmliZXJJZDogdGhpcy5waG9uZU51bWJlcixcbiAgICAgIGVuZHBvaW50OiB0aGlzLnBob25lTnVtYmVyLFxuICAgICAgcHJvdG9jb2w6IHNucy5TdWJzY3JpcHRpb25Qcm90b2NvbC5TTVMsXG4gICAgICBmaWx0ZXJQb2xpY3k6IHRoaXMucHJvcHMuZmlsdGVyUG9saWN5LFxuICAgICAgZmlsdGVyUG9saWN5V2l0aE1lc3NhZ2VCb2R5OiB0aGlzLnByb3BzLmZpbHRlclBvbGljeVdpdGhNZXNzYWdlQm9keSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,28 @@
1
+ import * as notify from "..";
2
+ import { SubscriptionProps } from "./subscription";
3
+ /**
4
+ * Properties for an SQS subscription
5
+ */
6
+ export interface SqsSubscriptionProps extends SubscriptionProps {
7
+ /**
8
+ * The message to the queue is the same as it was sent to the topic
9
+ *
10
+ * If false, the message will be wrapped in an SNS envelope.
11
+ *
12
+ * @default false
13
+ */
14
+ readonly rawMessageDelivery?: boolean;
15
+ }
16
+ /**
17
+ * Use an SQS queue as a subscription target
18
+ */
19
+ export declare class SqsSubscription implements notify.ITopicSubscription {
20
+ private readonly queue;
21
+ private readonly props;
22
+ constructor(queue: notify.IQueue, props?: SqsSubscriptionProps);
23
+ /**
24
+ * Returns a configuration for an SQS queue to subscribe to an SNS topic
25
+ */
26
+ bind(topic: notify.ITopic): notify.TopicSubscriptionConfig;
27
+ private regionFromArn;
28
+ }