@microsoft/terraform-cdk-constructs 1.10.0 → 2.5.0

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 (372) hide show
  1. package/.jsii +51855 -36874
  2. package/API.md +62102 -40530
  3. package/README.md +15 -0
  4. package/docs/azure-api-version-update-pipeline.md +271 -0
  5. package/lib/azure-actiongroup/lib/action-group.d.ts +3 -3
  6. package/lib/azure-actiongroup/lib/action-group.js +5 -5
  7. package/lib/azure-actiongroup/test/action-group.integ.d.ts +1 -1
  8. package/lib/azure-actiongroup/test/action-group.integ.js +5 -5
  9. package/lib/azure-actiongroup/test/action-group.spec.js +9 -9
  10. package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +3 -3
  11. package/lib/azure-activitylogalert/lib/activity-log-alert.js +5 -5
  12. package/lib/azure-activitylogalert/test/activity-log-alert.integ.d.ts +1 -1
  13. package/lib/azure-activitylogalert/test/activity-log-alert.integ.js +6 -6
  14. package/lib/azure-activitylogalert/test/activity-log-alert.spec.js +9 -9
  15. package/lib/azure-aks/lib/aks-cluster.d.ts +6 -6
  16. package/lib/azure-aks/lib/aks-cluster.js +8 -8
  17. package/lib/azure-aks/test/aks-cluster.integ.d.ts +1 -1
  18. package/lib/azure-aks/test/aks-cluster.integ.js +5 -5
  19. package/lib/azure-aks/test/aks-cluster.spec.js +12 -12
  20. package/lib/azure-applicationinsights/lib/application-insights.d.ts +6 -6
  21. package/lib/azure-applicationinsights/lib/application-insights.js +8 -8
  22. package/lib/azure-applicationinsights/test/application-insights.integ.d.ts +1 -1
  23. package/lib/azure-applicationinsights/test/application-insights.integ.js +6 -6
  24. package/lib/azure-applicationinsights/test/application-insights.spec.js +5 -5
  25. package/lib/azure-containerapps/lib/container-app-environment.d.ts +8 -8
  26. package/lib/azure-containerapps/lib/container-app-environment.js +10 -10
  27. package/lib/azure-containerapps/lib/container-app.d.ts +9 -9
  28. package/lib/azure-containerapps/lib/container-app.js +11 -11
  29. package/lib/azure-containerapps/lib/container-apps-job-schemas.d.ts +8 -0
  30. package/lib/azure-containerapps/lib/container-apps-job-schemas.js +179 -0
  31. package/lib/azure-containerapps/lib/container-apps-job.d.ts +128 -0
  32. package/lib/azure-containerapps/lib/container-apps-job.js +81 -0
  33. package/lib/azure-containerapps/lib/index.d.ts +2 -0
  34. package/lib/azure-containerapps/lib/index.js +3 -1
  35. package/lib/azure-containerapps/test/container-app-environment.integ.d.ts +1 -1
  36. package/lib/azure-containerapps/test/container-app-environment.integ.js +5 -5
  37. package/lib/azure-containerapps/test/container-app-environment.spec.js +19 -19
  38. package/lib/azure-containerapps/test/container-app.integ.d.ts +1 -1
  39. package/lib/azure-containerapps/test/container-app.integ.js +5 -5
  40. package/lib/azure-containerapps/test/container-app.spec.js +30 -30
  41. package/lib/azure-containerapps/test/container-apps-job.integ.d.ts +6 -0
  42. package/lib/azure-containerapps/test/container-apps-job.integ.js +95 -0
  43. package/lib/azure-containerapps/test/container-apps-job.spec.d.ts +1 -0
  44. package/lib/azure-containerapps/test/container-apps-job.spec.js +261 -0
  45. package/lib/azure-containerregistry/lib/container-registry.d.ts +6 -6
  46. package/lib/azure-containerregistry/lib/container-registry.js +8 -8
  47. package/lib/azure-containerregistry/test/container-registry.integ.d.ts +1 -1
  48. package/lib/azure-containerregistry/test/container-registry.integ.js +5 -5
  49. package/lib/azure-containerregistry/test/container-registry.spec.js +11 -11
  50. package/lib/azure-cosmosdb/lib/cosmos-db.d.ts +6 -6
  51. package/lib/azure-cosmosdb/lib/cosmos-db.js +8 -8
  52. package/lib/azure-cosmosdb/test/cosmos-db.integ.d.ts +1 -1
  53. package/lib/azure-cosmosdb/test/cosmos-db.integ.js +5 -5
  54. package/lib/azure-cosmosdb/test/cosmos-db.spec.js +11 -11
  55. package/lib/azure-dataexplorer/index.d.ts +1 -0
  56. package/lib/azure-dataexplorer/index.js +18 -0
  57. package/lib/azure-dataexplorer/lib/data-explorer-cluster-schemas.d.ts +5 -0
  58. package/lib/azure-dataexplorer/lib/data-explorer-cluster-schemas.js +131 -0
  59. package/lib/azure-dataexplorer/lib/data-explorer-cluster.d.ts +54 -0
  60. package/lib/azure-dataexplorer/lib/data-explorer-cluster.js +91 -0
  61. package/lib/azure-dataexplorer/lib/data-explorer-database-schemas.d.ts +5 -0
  62. package/lib/azure-dataexplorer/lib/data-explorer-database-schemas.js +78 -0
  63. package/lib/azure-dataexplorer/lib/data-explorer-database.d.ts +24 -0
  64. package/lib/azure-dataexplorer/lib/data-explorer-database.js +68 -0
  65. package/lib/azure-dataexplorer/lib/data-explorer-table-schemas.d.ts +5 -0
  66. package/lib/azure-dataexplorer/lib/data-explorer-table-schemas.js +94 -0
  67. package/lib/azure-dataexplorer/lib/data-explorer-table.d.ts +25 -0
  68. package/lib/azure-dataexplorer/lib/data-explorer-table.js +62 -0
  69. package/lib/azure-dataexplorer/lib/index.d.ts +6 -0
  70. package/lib/azure-dataexplorer/lib/index.js +23 -0
  71. package/lib/azure-dataexplorer/test/data-explorer.integ.d.ts +1 -0
  72. package/lib/azure-dataexplorer/test/data-explorer.integ.js +78 -0
  73. package/lib/azure-dataexplorer/test/data-explorer.spec.d.ts +1 -0
  74. package/lib/azure-dataexplorer/test/data-explorer.spec.js +248 -0
  75. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +3 -3
  76. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +5 -5
  77. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.js +9 -9
  78. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.d.ts +7 -7
  79. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +9 -9
  80. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.d.ts +4 -4
  81. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +6 -6
  82. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.d.ts +4 -4
  83. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +6 -6
  84. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.d.ts +1 -1
  85. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.js +5 -5
  86. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.js +11 -11
  87. package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.js +14 -14
  88. package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.js +12 -12
  89. package/lib/azure-dnsresolver/lib/dns-resolver.d.ts +8 -8
  90. package/lib/azure-dnsresolver/lib/dns-resolver.js +10 -10
  91. package/lib/azure-dnsresolver/lib/inbound-endpoint.d.ts +6 -6
  92. package/lib/azure-dnsresolver/lib/inbound-endpoint.js +8 -8
  93. package/lib/azure-dnsresolver/lib/outbound-endpoint.d.ts +7 -7
  94. package/lib/azure-dnsresolver/lib/outbound-endpoint.js +9 -9
  95. package/lib/azure-dnsresolver/test/dns-resolver.integ.d.ts +1 -1
  96. package/lib/azure-dnsresolver/test/dns-resolver.integ.js +5 -5
  97. package/lib/azure-dnsresolver/test/dns-resolver.spec.js +11 -11
  98. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.d.ts +1 -1
  99. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.js +5 -5
  100. package/lib/azure-dnsresolver/test/inbound-endpoint.spec.js +12 -12
  101. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.d.ts +1 -1
  102. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.js +5 -5
  103. package/lib/azure-dnsresolver/test/outbound-endpoint.spec.js +9 -9
  104. package/lib/azure-dnszone/lib/dns-zone.d.ts +6 -6
  105. package/lib/azure-dnszone/lib/dns-zone.js +8 -8
  106. package/lib/azure-dnszone/lib/records/dns-records.d.ts +31 -31
  107. package/lib/azure-dnszone/lib/records/dns-records.js +42 -42
  108. package/lib/azure-dnszone/test/dns-records.integ.d.ts +1 -1
  109. package/lib/azure-dnszone/test/dns-records.integ.js +5 -5
  110. package/lib/azure-dnszone/test/dns-records.spec.js +57 -57
  111. package/lib/azure-dnszone/test/dns-zone.integ.d.ts +1 -1
  112. package/lib/azure-dnszone/test/dns-zone.integ.js +5 -5
  113. package/lib/azure-dnszone/test/dns-zone.spec.js +11 -11
  114. package/lib/azure-eventgrideventsubscription/index.d.ts +1 -0
  115. package/lib/azure-eventgrideventsubscription/index.js +18 -0
  116. package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription-schemas.d.ts +5 -0
  117. package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription-schemas.js +151 -0
  118. package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription.d.ts +59 -0
  119. package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription.js +67 -0
  120. package/lib/azure-eventgrideventsubscription/lib/index.d.ts +2 -0
  121. package/lib/azure-eventgrideventsubscription/lib/index.js +19 -0
  122. package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.integ.d.ts +1 -0
  123. package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.integ.js +100 -0
  124. package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.spec.d.ts +1 -0
  125. package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.spec.js +242 -0
  126. package/lib/azure-eventgridsystemtopic/index.d.ts +1 -0
  127. package/lib/azure-eventgridsystemtopic/index.js +18 -0
  128. package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic-schemas.d.ts +5 -0
  129. package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic-schemas.js +164 -0
  130. package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic.d.ts +46 -0
  131. package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic.js +68 -0
  132. package/lib/azure-eventgridsystemtopic/lib/index.d.ts +2 -0
  133. package/lib/azure-eventgridsystemtopic/lib/index.js +19 -0
  134. package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.integ.d.ts +1 -0
  135. package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.integ.js +64 -0
  136. package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.spec.d.ts +1 -0
  137. package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.spec.js +241 -0
  138. package/lib/azure-eventhub/index.d.ts +7 -0
  139. package/lib/azure-eventhub/index.js +24 -0
  140. package/lib/azure-eventhub/lib/event-hub-namespace.d.ts +204 -0
  141. package/lib/azure-eventhub/lib/event-hub-namespace.js +178 -0
  142. package/lib/azure-eventhub/lib/event-hub-schemas.d.ts +63 -0
  143. package/lib/azure-eventhub/lib/event-hub-schemas.js +370 -0
  144. package/lib/azure-eventhub/lib/event-hub.d.ts +153 -0
  145. package/lib/azure-eventhub/lib/event-hub.js +171 -0
  146. package/lib/azure-eventhub/lib/index.d.ts +6 -0
  147. package/lib/azure-eventhub/lib/index.js +23 -0
  148. package/lib/azure-eventhub/test/event-hub.integ.d.ts +9 -0
  149. package/lib/azure-eventhub/test/event-hub.integ.js +113 -0
  150. package/lib/azure-eventhub/test/event-hub.spec.d.ts +8 -0
  151. package/lib/azure-eventhub/test/event-hub.spec.js +438 -0
  152. package/lib/azure-functionapp/lib/function-app.d.ts +6 -6
  153. package/lib/azure-functionapp/lib/function-app.js +8 -8
  154. package/lib/azure-functionapp/test/function-app.integ.d.ts +1 -1
  155. package/lib/azure-functionapp/test/function-app.integ.js +5 -5
  156. package/lib/azure-functionapp/test/function-app.spec.js +12 -12
  157. package/lib/azure-keyvault/lib/key-vault.d.ts +6 -6
  158. package/lib/azure-keyvault/lib/key-vault.js +8 -8
  159. package/lib/azure-keyvault/test/key-vault.integ.d.ts +1 -1
  160. package/lib/azure-keyvault/test/key-vault.integ.js +5 -5
  161. package/lib/azure-keyvault/test/key-vault.spec.js +11 -11
  162. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.d.ts +1 -1
  163. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +3 -3
  164. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.d.ts +1 -1
  165. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.js +6 -6
  166. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.js +6 -6
  167. package/lib/azure-metricalert/lib/metric-alert.d.ts +3 -3
  168. package/lib/azure-metricalert/lib/metric-alert.js +5 -5
  169. package/lib/azure-metricalert/test/metric-alert.integ.d.ts +1 -1
  170. package/lib/azure-metricalert/test/metric-alert.integ.js +5 -5
  171. package/lib/azure-metricalert/test/metric-alert.spec.js +9 -9
  172. package/lib/azure-networkinterface/lib/network-interface.d.ts +5 -5
  173. package/lib/azure-networkinterface/lib/network-interface.js +7 -7
  174. package/lib/azure-networkinterface/test/network-interface.integ.d.ts +1 -1
  175. package/lib/azure-networkinterface/test/network-interface.integ.js +5 -5
  176. package/lib/azure-networkinterface/test/network-interface.spec.js +11 -11
  177. package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +6 -6
  178. package/lib/azure-networksecuritygroup/lib/network-security-group.js +8 -8
  179. package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +1 -1
  180. package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +5 -5
  181. package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +12 -12
  182. package/lib/azure-networkwatcher/lib/network-watcher.d.ts +1 -1
  183. package/lib/azure-networkwatcher/lib/network-watcher.js +3 -3
  184. package/lib/azure-networkwatcher/test/network-watcher.integ.d.ts +1 -1
  185. package/lib/azure-networkwatcher/test/network-watcher.integ.js +6 -6
  186. package/lib/azure-networkwatcher/test/network-watcher.spec.js +6 -6
  187. package/lib/azure-policyassignment/lib/policy-assignment.d.ts +3 -3
  188. package/lib/azure-policyassignment/lib/policy-assignment.js +5 -5
  189. package/lib/azure-policyassignment/test/policy-assignment.integ.d.ts +1 -1
  190. package/lib/azure-policyassignment/test/policy-assignment.integ.js +5 -5
  191. package/lib/azure-policyassignment/test/policy-assignment.spec.js +12 -12
  192. package/lib/azure-policydefinition/lib/policy-definition.d.ts +3 -3
  193. package/lib/azure-policydefinition/lib/policy-definition.js +5 -5
  194. package/lib/azure-policydefinition/test/policy-definition.integ.d.ts +1 -1
  195. package/lib/azure-policydefinition/test/policy-definition.integ.js +5 -5
  196. package/lib/azure-policydefinition/test/policy-definition.spec.js +19 -19
  197. package/lib/azure-policysetdefinition/lib/policy-set-definition.d.ts +1 -1
  198. package/lib/azure-policysetdefinition/lib/policy-set-definition.js +3 -3
  199. package/lib/azure-policysetdefinition/test/policy-set-definition.integ.d.ts +1 -1
  200. package/lib/azure-policysetdefinition/test/policy-set-definition.integ.js +6 -6
  201. package/lib/azure-policysetdefinition/test/policy-set-definition.spec.js +6 -6
  202. package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +10 -10
  203. package/lib/azure-privatednszone/lib/private-dns-zone.js +12 -12
  204. package/lib/azure-privatednszone/lib/records/private-dns-records.d.ts +25 -25
  205. package/lib/azure-privatednszone/lib/records/private-dns-records.js +34 -34
  206. package/lib/azure-privatednszone/test/private-dns-records.integ.d.ts +1 -1
  207. package/lib/azure-privatednszone/test/private-dns-records.integ.js +5 -5
  208. package/lib/azure-privatednszone/test/private-dns-records.spec.js +49 -49
  209. package/lib/azure-privatednszone/test/private-dns-zone.integ.d.ts +1 -1
  210. package/lib/azure-privatednszone/test/private-dns-zone.integ.js +5 -5
  211. package/lib/azure-privatednszone/test/private-dns-zone.spec.js +12 -12
  212. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.d.ts +6 -6
  213. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +8 -8
  214. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.d.ts +1 -1
  215. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.js +5 -5
  216. package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.js +12 -12
  217. package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +5 -5
  218. package/lib/azure-publicipaddress/lib/public-ip-address.js +7 -7
  219. package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +1 -1
  220. package/lib/azure-publicipaddress/test/public-ip-address.integ.js +6 -6
  221. package/lib/azure-publicipaddress/test/public-ip-address.spec.js +11 -11
  222. package/lib/azure-resourcegroup/lib/resource-group.d.ts +5 -5
  223. package/lib/azure-resourcegroup/lib/resource-group.js +7 -7
  224. package/lib/azure-resourcegroup/test/resource-group.integ.d.ts +1 -1
  225. package/lib/azure-resourcegroup/test/resource-group.integ.js +5 -5
  226. package/lib/azure-resourcegroup/test/resource-group.spec.js +14 -14
  227. package/lib/azure-roleassignment/lib/role-assignment.d.ts +3 -3
  228. package/lib/azure-roleassignment/lib/role-assignment.js +5 -5
  229. package/lib/azure-roleassignment/test/role-assignment.integ.d.ts +1 -1
  230. package/lib/azure-roleassignment/test/role-assignment.integ.js +5 -5
  231. package/lib/azure-roleassignment/test/role-assignment.spec.js +12 -12
  232. package/lib/azure-roledefinition/lib/role-definition.d.ts +3 -3
  233. package/lib/azure-roledefinition/lib/role-definition.js +5 -5
  234. package/lib/azure-roledefinition/test/role-definition.integ.d.ts +1 -1
  235. package/lib/azure-roledefinition/test/role-definition.integ.js +5 -5
  236. package/lib/azure-roledefinition/test/role-definition.spec.js +12 -12
  237. package/lib/azure-sreagent/lib/sre-agent.d.ts +8 -8
  238. package/lib/azure-sreagent/lib/sre-agent.js +10 -10
  239. package/lib/azure-sreagent/test/sre-agent.integ.d.ts +1 -1
  240. package/lib/azure-sreagent/test/sre-agent.integ.js +5 -5
  241. package/lib/azure-sreagent/test/sre-agent.spec.js +11 -11
  242. package/lib/azure-staticwebapp/lib/static-web-app.d.ts +6 -6
  243. package/lib/azure-staticwebapp/lib/static-web-app.js +8 -8
  244. package/lib/azure-staticwebapp/test/static-web-app.integ.d.ts +1 -1
  245. package/lib/azure-staticwebapp/test/static-web-app.integ.js +6 -6
  246. package/lib/azure-staticwebapp/test/static-web-app.spec.js +12 -12
  247. package/lib/azure-storageaccount/lib/storage-account.d.ts +6 -6
  248. package/lib/azure-storageaccount/lib/storage-account.js +8 -8
  249. package/lib/azure-storageaccount/test/storage-account.integ.d.ts +1 -1
  250. package/lib/azure-storageaccount/test/storage-account.integ.js +5 -5
  251. package/lib/azure-storageaccount/test/storage-account.spec.js +11 -11
  252. package/lib/azure-storageblobcontainer/index.d.ts +1 -0
  253. package/lib/azure-storageblobcontainer/index.js +18 -0
  254. package/lib/azure-storageblobcontainer/lib/index.d.ts +2 -0
  255. package/lib/azure-storageblobcontainer/lib/index.js +19 -0
  256. package/lib/azure-storageblobcontainer/lib/storage-blob-container-schemas.d.ts +5 -0
  257. package/lib/azure-storageblobcontainer/lib/storage-blob-container-schemas.js +108 -0
  258. package/lib/azure-storageblobcontainer/lib/storage-blob-container.d.ts +37 -0
  259. package/lib/azure-storageblobcontainer/lib/storage-blob-container.js +63 -0
  260. package/lib/azure-storageblobcontainer/test/storage-blob-container.integ.d.ts +1 -0
  261. package/lib/azure-storageblobcontainer/test/storage-blob-container.integ.js +60 -0
  262. package/lib/azure-storageblobcontainer/test/storage-blob-container.spec.d.ts +1 -0
  263. package/lib/azure-storageblobcontainer/test/storage-blob-container.spec.js +172 -0
  264. package/lib/azure-subnet/lib/subnet.d.ts +3 -3
  265. package/lib/azure-subnet/lib/subnet.js +5 -5
  266. package/lib/azure-subnet/test/subnet.integ.d.ts +1 -1
  267. package/lib/azure-subnet/test/subnet.integ.js +5 -5
  268. package/lib/azure-subnet/test/subnet.spec.js +9 -9
  269. package/lib/azure-userassignedidentity/index.d.ts +1 -0
  270. package/lib/azure-userassignedidentity/index.js +18 -0
  271. package/lib/azure-userassignedidentity/lib/index.d.ts +2 -0
  272. package/lib/azure-userassignedidentity/lib/index.js +19 -0
  273. package/lib/azure-userassignedidentity/lib/user-assigned-identity-schemas.d.ts +8 -0
  274. package/lib/azure-userassignedidentity/lib/user-assigned-identity-schemas.js +107 -0
  275. package/lib/azure-userassignedidentity/lib/user-assigned-identity.d.ts +37 -0
  276. package/lib/azure-userassignedidentity/lib/user-assigned-identity.js +85 -0
  277. package/lib/azure-userassignedidentity/test/user-assigned-identity.integ.d.ts +1 -0
  278. package/lib/azure-userassignedidentity/test/user-assigned-identity.integ.js +64 -0
  279. package/lib/azure-userassignedidentity/test/user-assigned-identity.spec.d.ts +1 -0
  280. package/lib/azure-userassignedidentity/test/user-assigned-identity.spec.js +241 -0
  281. package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +6 -6
  282. package/lib/azure-virtualmachine/lib/virtual-machine.js +8 -8
  283. package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +1 -1
  284. package/lib/azure-virtualmachine/test/virtual-machine.integ.js +5 -5
  285. package/lib/azure-virtualmachine/test/virtual-machine.spec.js +17 -17
  286. package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +6 -6
  287. package/lib/azure-virtualnetwork/lib/virtual-network.js +8 -8
  288. package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +1 -1
  289. package/lib/azure-virtualnetwork/test/virtual-network.integ.js +5 -5
  290. package/lib/azure-virtualnetwork/test/virtual-network.spec.js +12 -12
  291. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.d.ts +5 -5
  292. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +7 -7
  293. package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.integ.d.ts +1 -1
  294. package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.integ.js +5 -5
  295. package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.spec.js +13 -13
  296. package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.d.ts +5 -5
  297. package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +7 -7
  298. package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.integ.d.ts +1 -1
  299. package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.integ.js +5 -5
  300. package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.spec.js +20 -20
  301. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.d.ts +4 -4
  302. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +6 -6
  303. package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.d.ts +4 -4
  304. package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +6 -6
  305. package/lib/azure-virtualnetworkmanager/lib/ipam-pool.d.ts +4 -4
  306. package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +6 -6
  307. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.d.ts +4 -4
  308. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +6 -6
  309. package/lib/azure-virtualnetworkmanager/lib/network-group.d.ts +4 -4
  310. package/lib/azure-virtualnetworkmanager/lib/network-group.js +6 -6
  311. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.d.ts +4 -4
  312. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +6 -6
  313. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.d.ts +4 -4
  314. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +6 -6
  315. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.d.ts +4 -4
  316. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +6 -6
  317. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.d.ts +7 -7
  318. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +9 -9
  319. package/lib/azure-virtualnetworkmanager/test/ipam-pool-static-cidr.spec.js +17 -17
  320. package/lib/azure-virtualnetworkmanager/test/ipam-pool.spec.js +15 -15
  321. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.d.ts +1 -1
  322. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.js +5 -5
  323. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.js +57 -57
  324. package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +72 -7
  325. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +147 -8
  326. package/lib/azure-vmss/lib/vmss-schemas.d.ts +195 -0
  327. package/lib/azure-vmss/lib/vmss-schemas.js +33 -1
  328. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +1 -1
  329. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +5 -5
  330. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +474 -12
  331. package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.js +6 -6
  332. package/lib/core-azure/lib/azapi/azapi-resource.d.ts +7 -7
  333. package/lib/core-azure/lib/azapi/azapi-resource.js +6 -6
  334. package/lib/core-azure/lib/azapi/azapi-resource.spec.js +7 -7
  335. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +12 -12
  336. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +15 -15
  337. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +35 -35
  338. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +58 -58
  339. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +25 -25
  340. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +49 -49
  341. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +13 -13
  342. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +22 -22
  343. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +24 -24
  344. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +40 -40
  345. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +44 -44
  346. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +72 -72
  347. package/lib/core-azure/lib/azapi/providers-azapi/index.js +2 -2
  348. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +2 -2
  349. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +54 -54
  350. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +86 -86
  351. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +65 -65
  352. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +102 -102
  353. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +25 -25
  354. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +62 -62
  355. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +36 -36
  356. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +69 -69
  357. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
  358. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  359. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  360. package/lib/index.d.ts +26 -0
  361. package/lib/index.js +28 -2
  362. package/lib/testing/index.d.ts +1 -1
  363. package/lib/testing/index.js +25 -8
  364. package/lib/testing/lib/cleanup.js +1 -1
  365. package/lib/testing/lib/metadata.js +12 -4
  366. package/lib/testing/lib/naming.js +57 -1
  367. package/package.json +10 -22
  368. package/scripts/azure-version-updater/create-issue.ts +189 -0
  369. package/scripts/azure-version-updater/discover.ts +382 -0
  370. package/scripts/azure-version-updater/spec-mapping.ts +164 -0
  371. package/scripts/azure-version-updater/tsconfig.json +11 -0
  372. package/setup.js +2 -2
@@ -24,7 +24,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
24
24
  * - Network ACLs and public network access control
25
25
  * - Soft-delete and purge protection support
26
26
  */
27
- const cdktf = require("cdktf");
27
+ const cdktn = require("cdktn");
28
28
  const key_vault_schemas_1 = require("./key-vault-schemas");
29
29
  const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
30
30
  const data_azapi_client_config_1 = require("../../core-azure/lib/azapi/providers-azapi/data-azapi-client-config");
@@ -91,23 +91,23 @@ class KeyVault extends azapi_resource_1.AzapiResource {
91
91
  super(scope, id, { ...props, tenantId: resolvedTenantId });
92
92
  this.props = props;
93
93
  // Create Terraform outputs
94
- this.idOutput = new cdktf.TerraformOutput(this, "id", {
94
+ this.idOutput = new cdktn.TerraformOutput(this, "id", {
95
95
  value: this.id,
96
96
  description: "The ID of the Key Vault",
97
97
  });
98
- this.locationOutput = new cdktf.TerraformOutput(this, "location", {
98
+ this.locationOutput = new cdktn.TerraformOutput(this, "location", {
99
99
  value: `\${${this.terraformResource.fqn}.location}`,
100
100
  description: "The location of the Key Vault",
101
101
  });
102
- this.nameOutput = new cdktf.TerraformOutput(this, "name", {
102
+ this.nameOutput = new cdktn.TerraformOutput(this, "name", {
103
103
  value: `\${${this.terraformResource.fqn}.name}`,
104
104
  description: "The name of the Key Vault",
105
105
  });
106
- this.tagsOutput = new cdktf.TerraformOutput(this, "tags", {
106
+ this.tagsOutput = new cdktn.TerraformOutput(this, "tags", {
107
107
  value: `\${${this.terraformResource.fqn}.tags}`,
108
108
  description: "The tags assigned to the Key Vault",
109
109
  });
110
- this.vaultUriOutput = new cdktf.TerraformOutput(this, "vault_uri", {
110
+ this.vaultUriOutput = new cdktn.TerraformOutput(this, "vault_uri", {
111
111
  value: this.vaultUri,
112
112
  description: "The URI of the Key Vault for performing data plane operations",
113
113
  });
@@ -235,9 +235,9 @@ class KeyVault extends azapi_resource_1.AzapiResource {
235
235
  }
236
236
  exports.KeyVault = KeyVault;
237
237
  _a = JSII_RTTI_SYMBOL_1;
238
- KeyVault[_a] = { fqn: "@microsoft/terraform-cdk-constructs.KeyVault", version: "1.10.0" };
238
+ KeyVault[_a] = { fqn: "@microsoft/terraform-cdk-constructs.KeyVault", version: "2.5.0" };
239
239
  // Static initializer runs once when the class is first loaded
240
240
  (() => {
241
241
  azapi_resource_1.AzapiResource.registerSchemas(key_vault_schemas_1.KEY_VAULT_TYPE, key_vault_schemas_1.ALL_KEY_VAULT_VERSIONS);
242
242
  })();
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LXZhdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWtleXZhdWx0L2xpYi9rZXktdmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCwrQkFBK0I7QUFFL0IsMkRBQTZFO0FBQzdFLDhFQUdtRDtBQUNuRCxrSEFBNEc7QUFpUTVHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DRztBQUNILE1BQWEsUUFBUyxTQUFRLDhCQUFhO0lBa0J6Qzs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW9CO1FBQzVELDRFQUE0RTtRQUM1RSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsRCxJQUNFLEtBQUssQ0FBQyx5QkFBeUIsR0FBRyxDQUFDO2dCQUNuQyxLQUFLLENBQUMseUJBQXlCLEdBQUcsRUFBRSxFQUNwQyxDQUFDO2dCQUNELE1BQU0sSUFBSSxLQUFLLENBQ2IseURBQXlELENBQzFELENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELDZFQUE2RTtRQUM3RSw0RUFBNEU7UUFDNUUsK0NBQStDO1FBQy9DLE1BQU0sZ0JBQWdCLEdBQ3BCLEtBQUssQ0FBQyxRQUFRO1lBQ2QsQ0FBQyxHQUFHLEVBQUU7Z0JBQ0osTUFBTSxZQUFZLEdBQUcsSUFBSSxnREFBcUIsQ0FDNUMsS0FBSyxFQUNMLEdBQUcsRUFBRSxnQkFBZ0IsRUFDckIsRUFBRSxDQUNILENBQUM7Z0JBQ0YsT0FBTyxNQUFNLFlBQVksQ0FBQyxHQUFHLGFBQWEsQ0FBQztZQUM3QyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVAsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQW1CLENBQUMsQ0FBQztRQUU1RSxJ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Q0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEdBQVcsRUFBRSxLQUFhO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxLQUFhLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVMsQ0FBQyxHQUFXO1FBQzFCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0ZBQWdGO0lBQ2hGLHlCQUF5QjtJQUN6QixnRkFBZ0Y7SUFFaEY7O09BRUc7SUFDSyxtQkFBbUI7UUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUU7Z0JBQzlDO29CQUNFLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWE7aUJBQ3pDO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7O0FBOU5ILDRCQStOQzs7O0FBOU5DLDhEQUE4RDtBQUM5RDtJQUNFLDhCQUFhLENBQUMsZUFBZSxDQUFDLGtDQUFjLEVBQUUsMENBQXNCLENBQUMsQ0FBQztBQUN4RSxDQUFDLEdBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVW5pZmllZCBBenVyZSBLZXkgVmF1bHQgaW1wbGVtZW50YXRpb24gdXNpbmcgQXphcGlSZXNvdXJjZSBmcmFtZXdvcmtcbiAqXG4gKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgdmVyc2lvbi1hd2FyZSBpbXBsZW1lbnRhdGlvbiBmb3IgQXp1cmUgS2V5IFZhdWx0XG4gKiAoTWljcm9zb2Z0LktleVZhdWx0L3ZhdWx0cykgdGhhdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiBtYW5hZ2VtZW50LFxuICogc2NoZW1hIHZhbGlkYXRpb24sIGFuZCBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbiBhY3Jvc3MgYWxsIHN1cHBvcnRlZCBBUEkgdmVyc2lvbnMuXG4gKlxuICogU3VwcG9ydGVkIEFQSSBWZXJzaW9uczpcbiAqIC0gMjAyMy0wMi0wMSAoQWN0aXZlKVxuICogLSAyMDIzLTA3LTAxIChBY3RpdmUpXG4gKiAtIDIwMjQtMTEtMDEgKEFjdGl2ZSwgTGF0ZXN0KVxuICpcbiAqIEZlYXR1cmVzOlxuICogLSBBdXRvbWF0aWMgbGF0ZXN0IHZlcnNpb24gcmVzb2x1dGlvbiB3aGVuIG5vIHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gKiAtIEV4cGxpY2l0IHZlcnNpb24gcGlubmluZyBmb3Igc3RhYmlsaXR5IHJlcXVpcmVtZW50c1xuICogLSBTY2hlbWEtZHJpdmVuIHZhbGlkYXRpb24gYW5kIHRyYW5zZm9ybWF0aW9uXG4gKiAtIEZ1bGwgSlNJSSBjb21wbGlhbmNlIGZvciBtdWx0aS1sYW5ndWFnZSBzdXBwb3J0XG4gKiAtIENvbmZpZ3VyYWJsZSBTS1UsIHRlbmFudCwgUkJBQyBhbmQgYWNjZXNzIHBvbGljaWVzXG4gKiAtIE5ldHdvcmsgQUNMcyBhbmQgcHVibGljIG5ldHdvcmsgYWNjZXNzIGNvbnRyb2xcbiAqIC0gU29mdC1kZWxldGUgYW5kIHB1cmdlIHByb3RlY3Rpb24gc3VwcG9ydFxuICovXG5cbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEFMTF9LRVlfVkFVTFRfVkVSU0lPTlMsIEtFWV9WQVVMVF9UWVBFIH0gZnJvbSBcIi4va2V5LXZhdWx0LXNjaGVtYXNcIjtcbmltcG9ydCB7XG4gIEF6YXBpUmVzb3VyY2UsXG4gIEF6YXBpUmVzb3VyY2VQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL2F6YXBpLXJlc291cmNlXCI7XG5pbXBvcnQgeyBEYXRhQXphcGlDbGllbnRDb25maWcgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvcHJvdmlkZXJzLWF6YXBpL2RhdGEtYXphcGktY2xpZW50LWNvbmZpZ1wiO1xuaW1wb3J0IHsgQXBpU2NoZW1hIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL3ZlcnNpb24tbWFuYWdlci9pbnRlcmZhY2VzL3ZlcnNpb24taW50ZXJmYWNlc1wiO1xuXG4vKipcbiAqIFNLVSBjb25maWd1cmF0aW9uIGZvciBLZXkgVmF1bHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLZXlWYXVsdFNrdSB7XG4gIC8qKlxuICAgKiBUaGUgU0tVIG5hbWUgKHN0YW5kYXJkIG9yIHByZW1pdW0pXG4gICAqXG4gICAqIEBkZWZhdWx0IFwic3RhbmRhcmRcIlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogXCJzdGFuZGFyZFwiIHwgXCJwcmVtaXVtXCI7XG5cbiAgLyoqXG4gICAqIFRoZSBTS1UgZmFtaWx5LiBBbHdheXMgXCJBXCIgZm9yIEtleSBWYXVsdC5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJBXCJcbiAgICovXG4gIHJlYWRvbmx5IGZhbWlseT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQZXJtaXNzaW9ucyBjb25maWd1cmF0aW9uIGZvciBhbiBhY2Nlc3MgcG9saWN5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2V5VmF1bHRBY2Nlc3NQb2xpY3lQZXJtaXNzaW9ucyB7XG4gIC8qKlxuICAgKiBQZXJtaXNzaW9ucyBmb3Iga2V5cyAoZS5nLiBcImdldFwiLCBcImxpc3RcIiwgXCJjcmVhdGVcIiwgXCJkZWxldGVcIilcbiAgICovXG4gIHJlYWRvbmx5IGtleXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUGVybWlzc2lvbnMgZm9yIHNlY3JldHMgKGUuZy4gXCJnZXRcIiwgXCJsaXN0XCIsIFwic2V0XCIsIFwiZGVsZXRlXCIpXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFBlcm1pc3Npb25zIGZvciBjZXJ0aWZpY2F0ZXMgKGUuZy4gXCJnZXRcIiwgXCJsaXN0XCIsIFwiY3JlYXRlXCIsIFwiZGVsZXRlXCIpXG4gICAqL1xuICByZWFkb25seSBjZXJ0aWZpY2F0ZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUGVybWlzc2lvbnMgZm9yIHN0b3JhZ2UgKGUuZy4gXCJnZXRcIiwgXCJsaXN0XCIsIFwic2V0XCIsIFwiZGVsZXRlXCIpXG4gICAqL1xuICByZWFkb25seSBzdG9yYWdlPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogQWNjZXNzIHBvbGljeSBjb25maWd1cmF0aW9uIGZvciB0aGUgS2V5IFZhdWx0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2V5VmF1bHRBY2Nlc3NQb2xpY3kge1xuICAvKipcbiAgICogVGhlIEF6dXJlIEFjdGl2ZSBEaXJlY3RvcnkgdGVuYW50IElEXG4gICAqL1xuICByZWFkb25seSB0ZW5hbnRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgb2JqZWN0IElEIG9mIGEgdXNlciwgc2VydmljZSBwcmluY2lwYWwsIG9yIHNlY3VyaXR5IGdyb3VwIGluIEFBRFxuICAgKi9cbiAgcmVhZG9ubHkgb2JqZWN0SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFwcGxpY2F0aW9uIElEIG9mIHRoZSBjbGllbnQgbWFraW5nIHRoZSByZXF1ZXN0IG9uIGJlaGFsZiBvZiB0aGUgdXNlclxuICAgKi9cbiAgcmVhZG9ubHkgYXBwbGljYXRpb25JZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBlcm1pc3Npb25zIGdyYW50ZWQgdG8gdGhlIGlkZW50aXR5XG4gICAqL1xuICByZWFkb25seSBwZXJtaXNzaW9uczogS2V5VmF1bHRBY2Nlc3NQb2xpY3lQZXJtaXNzaW9ucztcbn1cblxuLyoqXG4gKiBJUCBydWxlIGZvciBLZXkgVmF1bHQgbmV0d29yayBBQ0xzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2V5VmF1bHRJcFJ1bGUge1xuICAvKipcbiAgICogSVAgYWRkcmVzcyBvciBDSURSIHJhbmdlXG4gICAqL1xuICByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFZpcnR1YWwgbmV0d29yayBydWxlIGZvciBLZXkgVmF1bHQgbmV0d29yayBBQ0xzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2V5VmF1bHRWaXJ0dWFsTmV0d29ya1J1bGUge1xuICAvKipcbiAgICogVmlydHVhbCBuZXR3b3JrIHN1Ym5ldCByZXNvdXJjZSBJRFxuICAgKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBpZ25vcmUgbWlzc2luZyBWTkVUIHNlcnZpY2UgZW5kcG9pbnRcbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZU1pc3NpbmdWbmV0U2VydmljZUVuZHBvaW50PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBOZXR3b3JrIEFDTCBjb25maWd1cmF0aW9uIGZvciB0aGUgS2V5IFZhdWx0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2V5VmF1bHROZXR3b3JrQWNscyB7XG4gIC8qKlxuICAgKiBEZWZhdWx0IGFjdGlvbiB3aGVuIG5vIHJ1bGUgbWF0Y2hlcyAoQWxsb3cgb3IgRGVueSlcbiAgICpcbiAgICogQGRlZmF1bHQgXCJBbGxvd1wiXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0QWN0aW9uPzogXCJBbGxvd1wiIHwgXCJEZW55XCI7XG5cbiAgLyoqXG4gICAqIFRlbGxzIHdoYXQgdHJhZmZpYyBjYW4gYnlwYXNzIG5ldHdvcmsgcnVsZXMuIENhbiBiZSAnQXp1cmVTZXJ2aWNlcycgb3IgJ05vbmUnLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIkF6dXJlU2VydmljZXNcIlxuICAgKi9cbiAgcmVhZG9ubHkgYnlwYXNzPzogXCJBenVyZVNlcnZpY2VzXCIgfCBcIk5vbmVcIjtcblxuICAvKipcbiAgICogSVAgcnVsZXMgZm9yIHRoZSBLZXkgVmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IGlwUnVsZXM/OiBLZXlWYXVsdElwUnVsZVtdO1xuXG4gIC8qKlxuICAgKiBWaXJ0dWFsIG5ldHdvcmsgc3VibmV0IHJ1bGVzIGZvciB0aGUgS2V5IFZhdWx0XG4gICAqL1xuICByZWFkb25seSB2aXJ0dWFsTmV0d29ya1J1bGVzPzogS2V5VmF1bHRWaXJ0dWFsTmV0d29ya1J1bGVbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgdW5pZmllZCBBenVyZSBLZXkgVmF1bHRcbiAqXG4gKiBFeHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB3aXRoIEtleSBWYXVsdCBzcGVjaWZpYyBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtleVZhdWx0UHJvcHMgZXh0ZW5kcyBBemFwaVJlc291cmNlUHJvcHMge1xuICAvKipcbiAgICogUmVzb3VyY2UgZ3JvdXAgSUQgd2hlcmUgdGhlIEtleSBWYXVsdCB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlR3JvdXBJZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFNLVSAocHJpY2luZyB0aWVyKSBmb3IgdGhlIEtleSBWYXVsdFxuICAgKlxuICAgKiBAZGVmYXVsdCB7IG5hbWU6IFwic3RhbmRhcmRcIiwgZmFtaWx5OiBcIkFcIiB9XG4gICAqL1xuICByZWFkb25seSBza3U/OiBLZXlWYXVsdFNrdTtcblxuICAvKipcbiAgICogVGhlIEF6dXJlIEFjdGl2ZSBEaXJlY3RvcnkgdGVuYW50IElEIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIGF1dGhlbnRpY2F0aW5nXG4gICAqIHJlcXVlc3RzIHRvIHRoZSBLZXkgVmF1bHQuIElmIG5vdCBwcm92aWRlZCwgdGhlIGN1cnJlbnQgdGVuYW50IElEIGZyb20gdGhlXG4gICAqIEFaQVBJIGNsaWVudCBjb25maWd1cmF0aW9uIGlzIHVzZWQuXG4gICAqL1xuICByZWFkb25seSB0ZW5hbnRJZD86IHN0cmluZztcblxuICAvKipcbiAgICogQWNjZXNzIHBvbGljaWVzIGZvciB0aGUgS2V5IFZhdWx0LlxuICAgKlxuICAgKiBPbmx5IGFwcGxpY2FibGUgd2hlbiBgZW5hYmxlUmJhY0F1dGhvcml6YXRpb25gIGlzIGZhbHNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjZXNzUG9saWNpZXM/OiBLZXlWYXVsdEFjY2Vzc1BvbGljeVtdO1xuXG4gIC8qKlxuICAgKiBOZXR3b3JrIEFDTCBjb25maWd1cmF0aW9uIGZvciB0aGUgS2V5IFZhdWx0XG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrQWNscz86IEtleVZhdWx0TmV0d29ya0FjbHM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgQXp1cmUgVmlydHVhbCBNYWNoaW5lcyBhcmUgcGVybWl0dGVkIHRvIHJldHJpZXZlIGNlcnRpZmljYXRlc1xuICAgKiBzdG9yZWQgYXMgc2VjcmV0cyBmcm9tIHRoZSBLZXkgVmF1bHQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkRm9yRGVwbG95bWVudD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgQXp1cmUgRGlzayBFbmNyeXB0aW9uIGlzIHBlcm1pdHRlZCB0byByZXRyaWV2ZSBzZWNyZXRzIGZyb20gdGhlXG4gICAqIEtleSBWYXVsdCBhbmQgdW53cmFwIGtleXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkRm9yRGlza0VuY3J5cHRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIEF6dXJlIFJlc291cmNlIE1hbmFnZXIgaXMgcGVybWl0dGVkIHRvIHJldHJpZXZlIHNlY3JldHMgZnJvbSB0aGVcbiAgICogS2V5IFZhdWx0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZEZvclRlbXBsYXRlRGVwbG95bWVudD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgQXp1cmUgUkJBQyBpcyB1c2VkIHRvIGF1dGhvcml6ZSBkYXRhIGFjdGlvbnMgaW5zdGVhZCBvZiBhY2Nlc3NcbiAgICogcG9saWNpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVJiYWNBdXRob3JpemF0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBzb2Z0LWRlbGV0ZSBpcyBlbmFibGVkIG9uIHRoZSBLZXkgVmF1bHQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVNvZnREZWxldGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgZGF5cyB0aGF0IGl0ZW1zIHNob3VsZCBiZSByZXRhaW5lZCBhZnRlciBzb2Z0LWRlbGV0ZSAoNy05MCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IDkwXG4gICAqL1xuICByZWFkb25seSBzb2Z0RGVsZXRlUmV0ZW50aW9uSW5EYXlzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHB1cmdlIHByb3RlY3Rpb24gaXMgZW5hYmxlZC4gT25jZSBlbmFibGVkLCB0aGlzIHByb3BlcnR5IGNhbm5vdFxuICAgKiBiZSBkaXNhYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVB1cmdlUHJvdGVjdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIEtleSBWYXVsdCBhY2NlcHRzIHRyYWZmaWMgZnJvbSBwdWJsaWMgbmV0d29ya3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiRW5hYmxlZFwiXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNOZXR3b3JrQWNjZXNzPzogXCJFbmFibGVkXCIgfCBcIkRpc2FibGVkXCI7XG5cbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgdG8gaWdub3JlIGR1cmluZyB1cGRhdGVzXG4gICAqXG4gICAqIEBleGFtcGxlIFtcInRhZ3NcIl1cbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZUNoYW5nZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBLZXkgVmF1bHQgcHJvcGVydGllcyBmb3IgdGhlIHJlcXVlc3QgYm9keVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtleVZhdWx0Qm9keVByb3BlcnRpZXMge1xuICByZWFkb25seSB0ZW5hbnRJZDogc3RyaW5nO1xuICByZWFkb25seSBza3U6IEtleVZhdWx0U2t1O1xuICByZWFkb25seSBhY2Nlc3NQb2xpY2llcz86IEtleVZhdWx0QWNjZXNzUG9saWN5W107XG4gIHJlYWRvbmx5IG5ldHdvcmtBY2xzPzogS2V5VmF1bHROZXR3b3JrQWNscztcbiAgcmVhZG9ubHkgZW5hYmxlZEZvckRlcGxveW1lbnQ/OiBib29sZWFuO1xuICByZWFkb25seSBlbmFibGVkRm9yRGlza0VuY3J5cHRpb24/OiBib29sZWFuO1xuICByZWFkb25seSBlbmFibGVkRm9yVGVtcGxhdGVEZXBsb3ltZW50PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZW5hYmxlUmJhY0F1dGhvcml6YXRpb24/OiBib29sZWFuO1xuICByZWFkb25seSBlbmFibGVTb2Z0RGVsZXRlPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc29mdERlbGV0ZVJldGVudGlvbkluRGF5cz86IG51bWJlcjtcbiAgcmVhZG9ubHkgZW5hYmxlUHVyZ2VQcm90ZWN0aW9uPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzcz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgcmVzb3VyY2UgYm9keSBpbnRlcmZhY2UgZm9yIEF6dXJlIEtleSBWYXVsdCBBUEkgY2FsbHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLZXlWYXVsdEJvZHkge1xuICByZWFkb25seSBsb2NhdGlvbjogc3RyaW5nO1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogS2V5VmF1bHRCb2R5UHJvcGVydGllcztcbn1cblxuLyoqXG4gKiBVbmlmaWVkIEF6dXJlIEtleSBWYXVsdCBpbXBsZW1lbnRhdGlvblxuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBzaW5nbGUsIHZlcnNpb24tYXdhcmUgaW1wbGVtZW50YXRpb24gdGhhdCBhdXRvbWF0aWNhbGx5XG4gKiBoYW5kbGVzIHZlcnNpb24gcmVzb2x1dGlvbiwgc2NoZW1hIHZhbGlkYXRpb24sIGFuZCBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvblxuICogd2hpbGUgbWFpbnRhaW5pbmcgZnVsbCBKU0lJIGNvbXBsaWFuY2UuXG4gKlxuICogQXp1cmUgS2V5IFZhdWx0IGlzIGEgY2xvdWQgc2VydmljZSBmb3Igc2VjdXJlbHkgc3RvcmluZyBhbmQgYWNjZXNzaW5nIHNlY3JldHMsXG4gKiBrZXlzLCBhbmQgY2VydGlmaWNhdGVzIHdpdGggY2VudHJhbGl6ZWQgbWFuYWdlbWVudCBhbmQgYWNjZXNzIGNvbnRyb2wuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEJhc2ljIHVzYWdlIHdpdGggYXV0b21hdGljIHZlcnNpb24gcmVzb2x1dGlvbiBhbmQgY3VycmVudCB0ZW5hbnQ6XG4gKiBjb25zdCBrZXlWYXVsdCA9IG5ldyBLZXlWYXVsdCh0aGlzLCBcImt2XCIsIHtcbiAqICAgbmFtZTogXCJteS1rZXl2YXVsdC0xMjM0XCIsXG4gKiAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICogICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVXNhZ2Ugd2l0aCBleHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgYW5kIGNvbmZpZ3VyYXRpb246XG4gKiBjb25zdCBrZXlWYXVsdCA9IG5ldyBLZXlWYXVsdCh0aGlzLCBcImt2XCIsIHtcbiAqICAgbmFtZTogXCJteS1rZXl2YXVsdC0xMjM0XCIsXG4gKiAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICogICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gKiAgIHNrdTogeyBuYW1lOiBcInByZW1pdW1cIiB9LFxuICogICBhcGlWZXJzaW9uOiBcIjIwMjMtMDctMDFcIixcbiAqICAgZW5hYmxlUHVyZ2VQcm90ZWN0aW9uOiB0cnVlLFxuICogICBwdWJsaWNOZXR3b3JrQWNjZXNzOiBcIkRpc2FibGVkXCIsXG4gKiAgIG5ldHdvcmtBY2xzOiB7XG4gKiAgICAgZGVmYXVsdEFjdGlvbjogXCJEZW55XCIsXG4gKiAgICAgYnlwYXNzOiBcIkF6dXJlU2VydmljZXNcIixcbiAqICAgfSxcbiAqIH0pO1xuICpcbiAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gKi9cbmV4cG9ydCBjbGFzcyBLZXlWYXVsdCBleHRlbmRzIEF6YXBpUmVzb3VyY2Uge1xuICAvLyBTdGF0aWMgaW5pdGlhbGl6ZXIgcnVucyBvbmNlIHdoZW4gdGhlIGNsYXNzIGlzIGZpcnN0IGxvYWRlZFxuICBzdGF0aWMge1xuICAgIEF6YXBpUmVzb3VyY2UucmVnaXN0ZXJTY2hlbWFzKEtFWV9WQVVMVF9UWVBFLCBBTExfS0VZX1ZBVUxUX1ZFUlNJT05TKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgcHJvcGVydGllcyBmb3IgdGhpcyBLZXkgVmF1bHQgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogS2V5VmF1bHRQcm9wcztcblxuICAvLyBPdXRwdXQgcHJvcGVydGllcyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nXG4gIHB1YmxpYyByZWFkb25seSBpZE91dHB1dDogY2RrdGYuVGVycmFmb3JtT3V0cHV0O1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYXRpb25PdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHRhZ3NPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHZhdWx0VXJpT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQXp1cmUgS2V5IFZhdWx0IHVzaW5nIHRoZSBBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBpbnN0YW5jZVxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBLZXkgVmF1bHRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBLZXlWYXVsdFByb3BzKSB7XG4gICAgLy8gVmFsaWRhdGUgc29mdERlbGV0ZVJldGVudGlvbkluRGF5cyBib3VuZHMgYmVmb3JlIGRlbGVnYXRpbmcgdG8gYmFzZSBjbGFzc1xuICAgIGlmIChwcm9wcy5zb2Z0RGVsZXRlUmV0ZW50aW9uSW5EYXlzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChcbiAgICAgICAgcHJvcHMuc29mdERlbGV0ZVJldGVudGlvbkluRGF5cyA8IDcgfHxcbiAgICAgICAgcHJvcHMuc29mdERlbGV0ZVJldGVudGlvbkluRGF5cyA+IDkwXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIFwic29mdERlbGV0ZVJldGVudGlvbkluRGF5cyBtdXN0IGJlIGJldHdlZW4gNyBhbmQgOTAgZGF5c1wiLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHRlbmFudElkIGlzIG5vdCBwcm92aWRlZCwgZmFsbCBiYWNrIHRvIHRoZSBjdXJyZW50IEFaQVBJIGNsaWVudCB0ZW5hbnQuXG4gICAgLy8gVGhlIERhdGFBemFwaUNsaWVudENvbmZpZyBkYXRhIHNvdXJjZSBtdXN0IGJlIGNyZWF0ZWQgb24gdGhlIHBhcmVudCBzY29wZVxuICAgIC8vIHNvIGl0IGlzIGF2YWlsYWJsZSBiZWZvcmUgc3VwZXIoKSBpcyBjYWxsZWQuXG4gICAgY29uc3QgcmVzb2x2ZWRUZW5hbnRJZCA9XG4gICAgICBwcm9wcy50ZW5hbnRJZCA/P1xuICAgICAgKCgpID0+IHtcbiAgICAgICAgY29uc3QgY2xpZW50Q29uZmlnID0gbmV3IERhdGFBemFwaUNsaWVudENvbmZpZyhcbiAgICAgICAgICBzY29wZSxcbiAgICAgICAgICBgJHtpZH1fY2xpZW50X2NvbmZpZ2AsXG4gICAgICAgICAge30sXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBgXFwkeyR7Y2xpZW50Q29uZmlnLmZxbn0udGVuYW50X2lkfWA7XG4gICAgICB9KSgpO1xuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7IC4uLnByb3BzLCB0ZW5hbnRJZDogcmVzb2x2ZWRUZW5hbnRJZCB9IGFzIEtleVZhdWx0UHJvcHMpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgLy8gQ3JlYXRlIFRlcnJhZm9ybSBvdXRwdXRzXG4gICAgdGhpcy5pZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJpZFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBJRCBvZiB0aGUgS2V5IFZhdWx0XCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLmxvY2F0aW9uT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImxvY2F0aW9uXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59LmxvY2F0aW9ufWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbG9jYXRpb24gb2YgdGhlIEtleSBWYXVsdFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uYW1lT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcIm5hbWVcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ubmFtZX1gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIG5hbWUgb2YgdGhlIEtleSBWYXVsdFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy50YWdzT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcInRhZ3NcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0udGFnc31gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIHRhZ3MgYXNzaWduZWQgdG8gdGhlIEtleSBWYXVsdFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy52YXVsdFVyaU91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJ2YXVsdF91cmlcIiwge1xuICAgICAgdmFsdWU6IHRoaXMudmF1bHRVcmksXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJUaGUgVVJJIG9mIHRoZSBLZXkgVmF1bHQgZm9yIHBlcmZvcm1pbmcgZGF0YSBwbGFuZSBvcGVyYXRpb25zXCIsXG4gICAgfSk7XG5cbiAgICAvLyBPdmVycmlkZSBsb2dpY2FsIElEc1xuICAgIHRoaXMuaWRPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJpZFwiKTtcbiAgICB0aGlzLmxvY2F0aW9uT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwibG9jYXRpb25cIik7XG4gICAgdGhpcy5uYW1lT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwibmFtZVwiKTtcbiAgICB0aGlzLnRhZ3NPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJ0YWdzXCIpO1xuICAgIHRoaXMudmF1bHRVcmlPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJ2YXVsdF91cmlcIik7XG5cbiAgICAvLyBBcHBseSBpZ25vcmUgY2hhbmdlcyBpZiBzcGVjaWZpZWRcbiAgICB0aGlzLl9hcHBseUlnbm9yZUNoYW5nZXMoKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFJFUVVJUkVEIEFCU1RSQUNUIE1FVEhPRFMgRlJPTSBBemFwaVJlc291cmNlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRlZmF1bHQgQVBJIHZlcnNpb24gdG8gdXNlIHdoZW4gbm8gZXhwbGljaXQgdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjIwMjQtMTEtMDFcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBenVyZSByZXNvdXJjZSB0eXBlIGZvciBLZXkgVmF1bHRcbiAgICovXG4gIHByb3RlY3RlZCByZXNvdXJjZVR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gS0VZX1ZBVUxUX1RZUEU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQVBJIHNjaGVtYSBmb3IgdGhlIHJlc29sdmVkIHZlcnNpb25cbiAgICovXG4gIHByb3RlY3RlZCBhcGlTY2hlbWEoKTogQXBpU2NoZW1hIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlU2NoZW1hKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgbG9jYXRpb24gaXMgcmVxdWlyZWQgZm9yIEtleSBWYXVsdHNcbiAgICovXG4gIHByb3RlY3RlZCByZXF1aXJlc0xvY2F0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIHJlc291cmNlIGJvZHkgZm9yIHRoZSBBenVyZSBBUEkgY2FsbFxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVJlc291cmNlQm9keShwcm9wczogYW55KTogYW55IHtcbiAgICBjb25zdCB0eXBlZFByb3BzID0gcHJvcHMgYXMgS2V5VmF1bHRQcm9wcztcblxuICAgIGNvbnN0IHByb3BlcnRpZXM6IGFueSA9IHtcbiAgICAgIHRlbmFudElkOiB0eXBlZFByb3BzLnRlbmFudElkLFxuICAgICAgc2t1OiB7XG4gICAgICAgIG5hbWU6IHR5cGVkUHJvcHMuc2t1Py5uYW1lID8/IFwic3RhbmRhcmRcIixcbiAgICAgICAgZmFtaWx5OiB0eXBlZFByb3BzLnNrdT8uZmFtaWx5ID8/IFwiQVwiLFxuICAgICAgfSxcbiAgICAgIGVuYWJsZWRGb3JEZXBsb3ltZW50OiB0eXBlZFByb3BzLmVuYWJsZWRGb3JEZXBsb3ltZW50ID8/IGZhbHNlLFxuICAgICAgZW5hYmxlZEZvckRpc2tFbmNyeXB0aW9uOiB0eXBlZFByb3BzLmVuYWJsZWRGb3JEaXNrRW5jcnlwdGlvbiA/PyBmYWxzZSxcbiAgICAgIGVuYWJsZWRGb3JUZW1wbGF0ZURlcGxveW1lbnQ6XG4gICAgICAgIHR5cGVkUHJvcHMuZW5hYmxlZEZvclRlbXBsYXRlRGVwbG95bWVudCA/PyBmYWxzZSxcbiAgICAgIGVuYWJsZVJiYWNBdXRob3JpemF0aW9uOiB0eXBlZFByb3BzLmVuYWJsZVJiYWNBdXRob3JpemF0aW9uID8/IHRydWUsXG4gICAgICBlbmFibGVTb2Z0RGVsZXRlOiB0eXBlZFByb3BzLmVuYWJsZVNvZnREZWxldGUgPz8gdHJ1ZSxcbiAgICAgIHNvZnREZWxldGVSZXRlbnRpb25JbkRheXM6IHR5cGVkUHJvcHMuc29mdERlbGV0ZVJldGVudGlvbkluRGF5cyA/PyA5MCxcbiAgICAgIHB1YmxpY05ldHdvcmtBY2Nlc3M6IHR5cGVkUHJvcHMucHVibGljTmV0d29ya0FjY2VzcyA/PyBcIkVuYWJsZWRcIixcbiAgICB9O1xuXG4gICAgaWYgKHR5cGVkUHJvcHMuZW5hYmxlUHVyZ2VQcm90ZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHByb3BlcnRpZXMuZW5hYmxlUHVyZ2VQcm90ZWN0aW9uID0gdHlwZWRQcm9wcy5lbmFibGVQdXJnZVByb3RlY3Rpb247XG4gICAgfVxuXG4gICAgLy8gYWNjZXNzUG9saWNpZXMgaXMgb25seSBtZWFuaW5nZnVsIHdoZW4gUkJBQyBhdXRob3JpemF0aW9uIGlzIGRpc2FibGVkLlxuICAgIC8vIEFsd2F5cyBpbmNsdWRlIHRoZSBhcnJheSAoQXp1cmUgcmVxdWlyZXMgaXQpIC0gZGVmYXVsdCB0byBlbXB0eS5cbiAgICBwcm9wZXJ0aWVzLmFjY2Vzc1BvbGljaWVzID0gdHlwZWRQcm9wcy5hY2Nlc3NQb2xpY2llcyA/PyBbXTtcblxuICAgIGlmICh0eXBlZFByb3BzLm5ldHdvcmtBY2xzKSB7XG4gICAgICBwcm9wZXJ0aWVzLm5ldHdvcmtBY2xzID0ge1xuICAgICAgICBkZWZhdWx0QWN0aW9uOiB0eXBlZFByb3BzLm5ldHdvcmtBY2xzLmRlZmF1bHRBY3Rpb24gPz8gXCJBbGxvd1wiLFxuICAgICAgICBieXBhc3M6IHR5cGVkUHJvcHMubmV0d29ya0FjbHMuYnlwYXNzID8/IFwiQXp1cmVTZXJ2aWNlc1wiLFxuICAgICAgICBpcFJ1bGVzOiB0eXBlZFByb3BzLm5ldHdvcmtBY2xzLmlwUnVsZXMgPz8gW10sXG4gICAgICAgIHZpcnR1YWxOZXR3b3JrUnVsZXM6IHR5cGVkUHJvcHMubmV0d29ya0FjbHMudmlydHVhbE5ldHdvcmtSdWxlcyA/PyBbXSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxvY2F0aW9uOiB0aGlzLmxvY2F0aW9uLFxuICAgICAgdGFnczogdGhpcy5hbGxUYWdzKCksXG4gICAgICBwcm9wZXJ0aWVzLFxuICAgIH07XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQVUJMSUMgTUVUSE9EUyBGT1IgS0VZIFZBVUxUIE9QRVJBVElPTlNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2V0IHRoZSBkYXRhIHBsYW5lIFVSSSBvZiB0aGUgS2V5IFZhdWx0XG4gICAqXG4gICAqIFJldHVybnMgdGhlIGRldGVybWluaXN0aWMgQXp1cmUgcHVibGljIGNsb3VkIEtleSBWYXVsdCBVUkkgaW4gdGhlIGZvcm1cbiAgICogYGh0dHBzOi8ve25hbWV9LnZhdWx0LmF6dXJlLm5ldC9gLiBUaGlzIGF2b2lkcyBkZXBlbmRpbmcgb24gdGhlIEFaQVBJXG4gICAqIHJlc291cmNlIGBvdXRwdXRgIGF0dHJpYnV0ZSB3aGljaCBpcyBvbmx5IHBvcHVsYXRlZCBmb3IgcHJvcGVydGllcyBsaXN0ZWRcbiAgICogaW4gYHJlc3BvbnNlX2V4cG9ydF92YWx1ZXNgLlxuICAgKi9cbiAgcHVibGljIGdldCB2YXVsdFVyaSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgaHR0cHM6Ly9cXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ubmFtZX0udmF1bHQuYXp1cmUubmV0L2A7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgdGFnIHRvIHRoZSBLZXkgVmF1bHRcbiAgICovXG4gIHB1YmxpYyBhZGRUYWcoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJvcHMudGFncykge1xuICAgICAgKHRoaXMucHJvcHMgYXMgYW55KS50YWdzID0ge307XG4gICAgfVxuICAgIHRoaXMucHJvcHMudGFncyFba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIHRhZyBmcm9tIHRoZSBLZXkgVmF1bHRcbiAgICovXG4gIHB1YmxpYyByZW1vdmVUYWcoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy50YWdzICYmIHRoaXMucHJvcHMudGFnc1trZXldKSB7XG4gICAgICBkZWxldGUgdGhpcy5wcm9wcy50YWdzW2tleV07XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFJJVkFURSBIRUxQRVIgTUVUSE9EU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGlnbm9yZSBjaGFuZ2VzIGxpZmVjeWNsZSBydWxlcyBpZiBzcGVjaWZpZWQgaW4gcHJvcHNcbiAgICovXG4gIHByaXZhdGUgX2FwcGx5SWdub3JlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzICYmIHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnRlcnJhZm9ybVJlc291cmNlLmFkZE92ZXJyaWRlKFwibGlmZWN5Y2xlXCIsIFtcbiAgICAgICAge1xuICAgICAgICAgIGlnbm9yZV9jaGFuZ2VzOiB0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LXZhdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWtleXZhdWx0L2xpYi9rZXktdmF1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCwrQkFBK0I7QUFFL0IsMkRBQTZFO0FBQzdFLDhFQUdtRDtBQUNuRCxrSEFBNEc7QUFpUTVHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DRztBQUNILE1BQWEsUUFBUyxTQUFRLDhCQUFhO0lBa0J6Qzs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW9CO1FBQzVELDRFQUE0RTtRQUM1RSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsRCxJQUNFLEtBQUssQ0FBQyx5QkFBeUIsR0FBRyxDQUFDO2dCQUNuQyxLQUFLLENBQUMseUJBQXlCLEdBQUcsRUFBRSxFQUNwQyxDQUFDO2dCQUNELE1BQU0sSUFBSSxLQUFLLENBQ2IseURBQXlELENBQzFELENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELDZFQUE2RTtRQUM3RSw0RUFBNEU7UUFDNUUsK0NBQStDO1FBQy9DLE1BQU0sZ0JBQWdCLEdBQ3BCLEtBQUssQ0FBQyxRQUFRO1lBQ2QsQ0FBQyxHQUFHLEVBQUU7Z0JBQ0osTUFBTSxZQUFZLEdBQUcsSUFBSSxnREFBcUIsQ0FDNUMsS0FBSyxFQUNMLEdBQUcsRUFBRSxnQkFBZ0IsRUFDckIsRUFBRSxDQUNILENBQUM7Z0JBQ0YsT0FBTyxNQUFNLFlBQVksQ0FBQyxHQUFHLGFBQWEsQ0FBQztZQUM3QyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVAsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQW1CLENBQUMsQ0FBQztRQUU1RSxJ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Q0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEdBQVcsRUFBRSxLQUFhO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxLQUFhLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVMsQ0FBQyxHQUFXO1FBQzFCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0ZBQWdGO0lBQ2hGLHlCQUF5QjtJQUN6QixnRkFBZ0Y7SUFFaEY7O09BRUc7SUFDSyxtQkFBbUI7UUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUU7Z0JBQzlDO29CQUNFLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWE7aUJBQ3pDO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7O0FBOU5ILDRCQStOQzs7O0FBOU5DLDhEQUE4RDtBQUM5RDtJQUNFLDhCQUFhLENBQUMsZUFBZSxDQUFDLGtDQUFjLEVBQUUsMENBQXNCLENBQUMsQ0FBQztBQUN4RSxDQUFDLEdBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVW5pZmllZCBBenVyZSBLZXkgVmF1bHQgaW1wbGVtZW50YXRpb24gdXNpbmcgQXphcGlSZXNvdXJjZSBmcmFtZXdvcmtcbiAqXG4gKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgdmVyc2lvbi1hd2FyZSBpbXBsZW1lbnRhdGlvbiBmb3IgQXp1cmUgS2V5IFZhdWx0XG4gKiAoTWljcm9zb2Z0LktleVZhdWx0L3ZhdWx0cykgdGhhdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiBtYW5hZ2VtZW50LFxuICogc2NoZW1hIHZhbGlkYXRpb24sIGFuZCBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbiBhY3Jvc3MgYWxsIHN1cHBvcnRlZCBBUEkgdmVyc2lvbnMuXG4gKlxuICogU3VwcG9ydGVkIEFQSSBWZXJzaW9uczpcbiAqIC0gMjAyMy0wMi0wMSAoQWN0aXZlKVxuICogLSAyMDIzLTA3LTAxIChBY3RpdmUpXG4gKiAtIDIwMjQtMTEtMDEgKEFjdGl2ZSwgTGF0ZXN0KVxuICpcbiAqIEZlYXR1cmVzOlxuICogLSBBdXRvbWF0aWMgbGF0ZXN0IHZlcnNpb24gcmVzb2x1dGlvbiB3aGVuIG5vIHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gKiAtIEV4cGxpY2l0IHZlcnNpb24gcGlubmluZyBmb3Igc3RhYmlsaXR5IHJlcXVpcmVtZW50c1xuICogLSBTY2hlbWEtZHJpdmVuIHZhbGlkYXRpb24gYW5kIHRyYW5zZm9ybWF0aW9uXG4gKiAtIEZ1bGwgSlNJSSBjb21wbGlhbmNlIGZvciBtdWx0aS1sYW5ndWFnZSBzdXBwb3J0XG4gKiAtIENvbmZpZ3VyYWJsZSBTS1UsIHRlbmFudCwgUkJBQyBhbmQgYWNjZXNzIHBvbGljaWVzXG4gKiAtIE5ldHdvcmsgQUNMcyBhbmQgcHVibGljIG5ldHdvcmsgYWNjZXNzIGNvbnRyb2xcbiAqIC0gU29mdC1kZWxldGUgYW5kIHB1cmdlIHByb3RlY3Rpb24gc3VwcG9ydFxuICovXG5cbmltcG9ydCAqIGFzIGNka3RuIGZyb20gXCJjZGt0blwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEFMTF9LRVlfVkFVTFRfVkVSU0lPTlMsIEtFWV9WQVVMVF9UWVBFIH0gZnJvbSBcIi4va2V5LXZhdWx0LXNjaGVtYXNcIjtcbmltcG9ydCB7XG4gIEF6YXBpUmVzb3VyY2UsXG4gIEF6YXBpUmVzb3VyY2VQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL2F6YXBpLXJlc291cmNlXCI7XG5pbXBvcnQgeyBEYXRhQXphcGlDbGllbnRDb25maWcgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvcHJvdmlkZXJzLWF6YXBpL2RhdGEtYXphcGktY2xpZW50LWNvbmZpZ1wiO1xuaW1wb3J0IHsgQXBpU2NoZW1hIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL3ZlcnNpb24tbWFuYWdlci9pbnRlcmZhY2VzL3ZlcnNpb24taW50ZXJmYWNlc1wiO1xuXG4vKipcbiAqIFNLVSBjb25maWd1cmF0aW9uIGZvciBLZXkgVmF1bHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLZXlWYXVsdFNrdSB7XG4gIC8qKlxuICAgKiBUaGUgU0tVIG5hbWUgKHN0YW5kYXJkIG9yIHByZW1pdW0pXG4gICAqXG4gICAqIEBkZWZhdWx0IFwic3RhbmRhcmRcIlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogXCJzdGFuZGFyZFwiIHwgXCJwcmVtaXVtXCI7XG5cbiAgLyoqXG4gICAqIFRoZSBTS1UgZmFtaWx5LiBBbHdheXMgXCJBXCIgZm9yIEtleSBWYXVsdC5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJBXCJcbiAgICovXG4gIHJlYWRvbmx5IGZhbWlseT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQZXJtaXNzaW9ucyBjb25maWd1cmF0aW9uIGZvciBhbiBhY2Nlc3MgcG9saWN5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2V5VmF1bHRBY2Nlc3NQb2xpY3lQZXJtaXNzaW9ucyB7XG4gIC8qKlxuICAgKiBQZXJtaXNzaW9ucyBmb3Iga2V5cyAoZS5nLiBcImdldFwiLCBcImxpc3RcIiwgXCJjcmVhdGVcIiwgXCJkZWxldGVcIilcbiAgICovXG4gIHJlYWRvbmx5IGtleXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUGVybWlzc2lvbnMgZm9yIHNlY3JldHMgKGUuZy4gXCJnZXRcIiwgXCJsaXN0XCIsIFwic2V0XCIsIFwiZGVsZXRlXCIpXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFBlcm1pc3Npb25zIGZvciBjZXJ0aWZpY2F0ZXMgKGUuZy4gXCJnZXRcIiwgXCJsaXN0XCIsIFwiY3JlYXRlXCIsIFwiZGVsZXRlXCIpXG4gICAqL1xuICByZWFkb25seSBjZXJ0aWZpY2F0ZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUGVybWlzc2lvbnMgZm9yIHN0b3JhZ2UgKGUuZy4gXCJnZXRcIiwgXCJsaXN0XCIsIFwic2V0XCIsIFwiZGVsZXRlXCIpXG4gICAqL1xuICByZWFkb25seSBzdG9yYWdlPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogQWNjZXNzIHBvbGljeSBjb25maWd1cmF0aW9uIGZvciB0aGUgS2V5IFZhdWx0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2V5VmF1bHRBY2Nlc3NQb2xpY3kge1xuICAvKipcbiAgICogVGhlIEF6dXJlIEFjdGl2ZSBEaXJlY3RvcnkgdGVuYW50IElEXG4gICAqL1xuICByZWFkb25seSB0ZW5hbnRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgb2JqZWN0IElEIG9mIGEgdXNlciwgc2VydmljZSBwcmluY2lwYWwsIG9yIHNlY3VyaXR5IGdyb3VwIGluIEFBRFxuICAgKi9cbiAgcmVhZG9ubHkgb2JqZWN0SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFwcGxpY2F0aW9uIElEIG9mIHRoZSBjbGllbnQgbWFraW5nIHRoZSByZXF1ZXN0IG9uIGJlaGFsZiBvZiB0aGUgdXNlclxuICAgKi9cbiAgcmVhZG9ubHkgYXBwbGljYXRpb25JZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBlcm1pc3Npb25zIGdyYW50ZWQgdG8gdGhlIGlkZW50aXR5XG4gICAqL1xuICByZWFkb25seSBwZXJtaXNzaW9uczogS2V5VmF1bHRBY2Nlc3NQb2xpY3lQZXJtaXNzaW9ucztcbn1cblxuLyoqXG4gKiBJUCBydWxlIGZvciBLZXkgVmF1bHQgbmV0d29yayBBQ0xzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2V5VmF1bHRJcFJ1bGUge1xuICAvKipcbiAgICogSVAgYWRkcmVzcyBvciBDSURSIHJhbmdlXG4gICAqL1xuICByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFZpcnR1YWwgbmV0d29yayBydWxlIGZvciBLZXkgVmF1bHQgbmV0d29yayBBQ0xzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2V5VmF1bHRWaXJ0dWFsTmV0d29ya1J1bGUge1xuICAvKipcbiAgICogVmlydHVhbCBuZXR3b3JrIHN1Ym5ldCByZXNvdXJjZSBJRFxuICAgKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBpZ25vcmUgbWlzc2luZyBWTkVUIHNlcnZpY2UgZW5kcG9pbnRcbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZU1pc3NpbmdWbmV0U2VydmljZUVuZHBvaW50PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBOZXR3b3JrIEFDTCBjb25maWd1cmF0aW9uIGZvciB0aGUgS2V5IFZhdWx0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2V5VmF1bHROZXR3b3JrQWNscyB7XG4gIC8qKlxuICAgKiBEZWZhdWx0IGFjdGlvbiB3aGVuIG5vIHJ1bGUgbWF0Y2hlcyAoQWxsb3cgb3IgRGVueSlcbiAgICpcbiAgICogQGRlZmF1bHQgXCJBbGxvd1wiXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0QWN0aW9uPzogXCJBbGxvd1wiIHwgXCJEZW55XCI7XG5cbiAgLyoqXG4gICAqIFRlbGxzIHdoYXQgdHJhZmZpYyBjYW4gYnlwYXNzIG5ldHdvcmsgcnVsZXMuIENhbiBiZSAnQXp1cmVTZXJ2aWNlcycgb3IgJ05vbmUnLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIkF6dXJlU2VydmljZXNcIlxuICAgKi9cbiAgcmVhZG9ubHkgYnlwYXNzPzogXCJBenVyZVNlcnZpY2VzXCIgfCBcIk5vbmVcIjtcblxuICAvKipcbiAgICogSVAgcnVsZXMgZm9yIHRoZSBLZXkgVmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IGlwUnVsZXM/OiBLZXlWYXVsdElwUnVsZVtdO1xuXG4gIC8qKlxuICAgKiBWaXJ0dWFsIG5ldHdvcmsgc3VibmV0IHJ1bGVzIGZvciB0aGUgS2V5IFZhdWx0XG4gICAqL1xuICByZWFkb25seSB2aXJ0dWFsTmV0d29ya1J1bGVzPzogS2V5VmF1bHRWaXJ0dWFsTmV0d29ya1J1bGVbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgdW5pZmllZCBBenVyZSBLZXkgVmF1bHRcbiAqXG4gKiBFeHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB3aXRoIEtleSBWYXVsdCBzcGVjaWZpYyBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtleVZhdWx0UHJvcHMgZXh0ZW5kcyBBemFwaVJlc291cmNlUHJvcHMge1xuICAvKipcbiAgICogUmVzb3VyY2UgZ3JvdXAgSUQgd2hlcmUgdGhlIEtleSBWYXVsdCB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlR3JvdXBJZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFNLVSAocHJpY2luZyB0aWVyKSBmb3IgdGhlIEtleSBWYXVsdFxuICAgKlxuICAgKiBAZGVmYXVsdCB7IG5hbWU6IFwic3RhbmRhcmRcIiwgZmFtaWx5OiBcIkFcIiB9XG4gICAqL1xuICByZWFkb25seSBza3U/OiBLZXlWYXVsdFNrdTtcblxuICAvKipcbiAgICogVGhlIEF6dXJlIEFjdGl2ZSBEaXJlY3RvcnkgdGVuYW50IElEIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIGF1dGhlbnRpY2F0aW5nXG4gICAqIHJlcXVlc3RzIHRvIHRoZSBLZXkgVmF1bHQuIElmIG5vdCBwcm92aWRlZCwgdGhlIGN1cnJlbnQgdGVuYW50IElEIGZyb20gdGhlXG4gICAqIEFaQVBJIGNsaWVudCBjb25maWd1cmF0aW9uIGlzIHVzZWQuXG4gICAqL1xuICByZWFkb25seSB0ZW5hbnRJZD86IHN0cmluZztcblxuICAvKipcbiAgICogQWNjZXNzIHBvbGljaWVzIGZvciB0aGUgS2V5IFZhdWx0LlxuICAgKlxuICAgKiBPbmx5IGFwcGxpY2FibGUgd2hlbiBgZW5hYmxlUmJhY0F1dGhvcml6YXRpb25gIGlzIGZhbHNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjZXNzUG9saWNpZXM/OiBLZXlWYXVsdEFjY2Vzc1BvbGljeVtdO1xuXG4gIC8qKlxuICAgKiBOZXR3b3JrIEFDTCBjb25maWd1cmF0aW9uIGZvciB0aGUgS2V5IFZhdWx0XG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrQWNscz86IEtleVZhdWx0TmV0d29ya0FjbHM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgQXp1cmUgVmlydHVhbCBNYWNoaW5lcyBhcmUgcGVybWl0dGVkIHRvIHJldHJpZXZlIGNlcnRpZmljYXRlc1xuICAgKiBzdG9yZWQgYXMgc2VjcmV0cyBmcm9tIHRoZSBLZXkgVmF1bHQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkRm9yRGVwbG95bWVudD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgQXp1cmUgRGlzayBFbmNyeXB0aW9uIGlzIHBlcm1pdHRlZCB0byByZXRyaWV2ZSBzZWNyZXRzIGZyb20gdGhlXG4gICAqIEtleSBWYXVsdCBhbmQgdW53cmFwIGtleXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkRm9yRGlza0VuY3J5cHRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIEF6dXJlIFJlc291cmNlIE1hbmFnZXIgaXMgcGVybWl0dGVkIHRvIHJldHJpZXZlIHNlY3JldHMgZnJvbSB0aGVcbiAgICogS2V5IFZhdWx0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZEZvclRlbXBsYXRlRGVwbG95bWVudD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgQXp1cmUgUkJBQyBpcyB1c2VkIHRvIGF1dGhvcml6ZSBkYXRhIGFjdGlvbnMgaW5zdGVhZCBvZiBhY2Nlc3NcbiAgICogcG9saWNpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVJiYWNBdXRob3JpemF0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBzb2Z0LWRlbGV0ZSBpcyBlbmFibGVkIG9uIHRoZSBLZXkgVmF1bHQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVNvZnREZWxldGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgZGF5cyB0aGF0IGl0ZW1zIHNob3VsZCBiZSByZXRhaW5lZCBhZnRlciBzb2Z0LWRlbGV0ZSAoNy05MCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IDkwXG4gICAqL1xuICByZWFkb25seSBzb2Z0RGVsZXRlUmV0ZW50aW9uSW5EYXlzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHB1cmdlIHByb3RlY3Rpb24gaXMgZW5hYmxlZC4gT25jZSBlbmFibGVkLCB0aGlzIHByb3BlcnR5IGNhbm5vdFxuICAgKiBiZSBkaXNhYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVB1cmdlUHJvdGVjdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIEtleSBWYXVsdCBhY2NlcHRzIHRyYWZmaWMgZnJvbSBwdWJsaWMgbmV0d29ya3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiRW5hYmxlZFwiXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNOZXR3b3JrQWNjZXNzPzogXCJFbmFibGVkXCIgfCBcIkRpc2FibGVkXCI7XG5cbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgdG8gaWdub3JlIGR1cmluZyB1cGRhdGVzXG4gICAqXG4gICAqIEBleGFtcGxlIFtcInRhZ3NcIl1cbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZUNoYW5nZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBLZXkgVmF1bHQgcHJvcGVydGllcyBmb3IgdGhlIHJlcXVlc3QgYm9keVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtleVZhdWx0Qm9keVByb3BlcnRpZXMge1xuICByZWFkb25seSB0ZW5hbnRJZDogc3RyaW5nO1xuICByZWFkb25seSBza3U6IEtleVZhdWx0U2t1O1xuICByZWFkb25seSBhY2Nlc3NQb2xpY2llcz86IEtleVZhdWx0QWNjZXNzUG9saWN5W107XG4gIHJlYWRvbmx5IG5ldHdvcmtBY2xzPzogS2V5VmF1bHROZXR3b3JrQWNscztcbiAgcmVhZG9ubHkgZW5hYmxlZEZvckRlcGxveW1lbnQ/OiBib29sZWFuO1xuICByZWFkb25seSBlbmFibGVkRm9yRGlza0VuY3J5cHRpb24/OiBib29sZWFuO1xuICByZWFkb25seSBlbmFibGVkRm9yVGVtcGxhdGVEZXBsb3ltZW50PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZW5hYmxlUmJhY0F1dGhvcml6YXRpb24/OiBib29sZWFuO1xuICByZWFkb25seSBlbmFibGVTb2Z0RGVsZXRlPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc29mdERlbGV0ZVJldGVudGlvbkluRGF5cz86IG51bWJlcjtcbiAgcmVhZG9ubHkgZW5hYmxlUHVyZ2VQcm90ZWN0aW9uPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzcz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgcmVzb3VyY2UgYm9keSBpbnRlcmZhY2UgZm9yIEF6dXJlIEtleSBWYXVsdCBBUEkgY2FsbHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLZXlWYXVsdEJvZHkge1xuICByZWFkb25seSBsb2NhdGlvbjogc3RyaW5nO1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogS2V5VmF1bHRCb2R5UHJvcGVydGllcztcbn1cblxuLyoqXG4gKiBVbmlmaWVkIEF6dXJlIEtleSBWYXVsdCBpbXBsZW1lbnRhdGlvblxuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBzaW5nbGUsIHZlcnNpb24tYXdhcmUgaW1wbGVtZW50YXRpb24gdGhhdCBhdXRvbWF0aWNhbGx5XG4gKiBoYW5kbGVzIHZlcnNpb24gcmVzb2x1dGlvbiwgc2NoZW1hIHZhbGlkYXRpb24sIGFuZCBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvblxuICogd2hpbGUgbWFpbnRhaW5pbmcgZnVsbCBKU0lJIGNvbXBsaWFuY2UuXG4gKlxuICogQXp1cmUgS2V5IFZhdWx0IGlzIGEgY2xvdWQgc2VydmljZSBmb3Igc2VjdXJlbHkgc3RvcmluZyBhbmQgYWNjZXNzaW5nIHNlY3JldHMsXG4gKiBrZXlzLCBhbmQgY2VydGlmaWNhdGVzIHdpdGggY2VudHJhbGl6ZWQgbWFuYWdlbWVudCBhbmQgYWNjZXNzIGNvbnRyb2wuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEJhc2ljIHVzYWdlIHdpdGggYXV0b21hdGljIHZlcnNpb24gcmVzb2x1dGlvbiBhbmQgY3VycmVudCB0ZW5hbnQ6XG4gKiBjb25zdCBrZXlWYXVsdCA9IG5ldyBLZXlWYXVsdCh0aGlzLCBcImt2XCIsIHtcbiAqICAgbmFtZTogXCJteS1rZXl2YXVsdC0xMjM0XCIsXG4gKiAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICogICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVXNhZ2Ugd2l0aCBleHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgYW5kIGNvbmZpZ3VyYXRpb246XG4gKiBjb25zdCBrZXlWYXVsdCA9IG5ldyBLZXlWYXVsdCh0aGlzLCBcImt2XCIsIHtcbiAqICAgbmFtZTogXCJteS1rZXl2YXVsdC0xMjM0XCIsXG4gKiAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICogICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gKiAgIHNrdTogeyBuYW1lOiBcInByZW1pdW1cIiB9LFxuICogICBhcGlWZXJzaW9uOiBcIjIwMjMtMDctMDFcIixcbiAqICAgZW5hYmxlUHVyZ2VQcm90ZWN0aW9uOiB0cnVlLFxuICogICBwdWJsaWNOZXR3b3JrQWNjZXNzOiBcIkRpc2FibGVkXCIsXG4gKiAgIG5ldHdvcmtBY2xzOiB7XG4gKiAgICAgZGVmYXVsdEFjdGlvbjogXCJEZW55XCIsXG4gKiAgICAgYnlwYXNzOiBcIkF6dXJlU2VydmljZXNcIixcbiAqICAgfSxcbiAqIH0pO1xuICpcbiAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gKi9cbmV4cG9ydCBjbGFzcyBLZXlWYXVsdCBleHRlbmRzIEF6YXBpUmVzb3VyY2Uge1xuICAvLyBTdGF0aWMgaW5pdGlhbGl6ZXIgcnVucyBvbmNlIHdoZW4gdGhlIGNsYXNzIGlzIGZpcnN0IGxvYWRlZFxuICBzdGF0aWMge1xuICAgIEF6YXBpUmVzb3VyY2UucmVnaXN0ZXJTY2hlbWFzKEtFWV9WQVVMVF9UWVBFLCBBTExfS0VZX1ZBVUxUX1ZFUlNJT05TKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgcHJvcGVydGllcyBmb3IgdGhpcyBLZXkgVmF1bHQgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogS2V5VmF1bHRQcm9wcztcblxuICAvLyBPdXRwdXQgcHJvcGVydGllcyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nXG4gIHB1YmxpYyByZWFkb25seSBpZE91dHB1dDogY2RrdG4uVGVycmFmb3JtT3V0cHV0O1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYXRpb25PdXRwdXQ6IGNka3RuLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RuLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHRhZ3NPdXRwdXQ6IGNka3RuLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHZhdWx0VXJpT3V0cHV0OiBjZGt0bi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQXp1cmUgS2V5IFZhdWx0IHVzaW5nIHRoZSBBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBpbnN0YW5jZVxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBLZXkgVmF1bHRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBLZXlWYXVsdFByb3BzKSB7XG4gICAgLy8gVmFsaWRhdGUgc29mdERlbGV0ZVJldGVudGlvbkluRGF5cyBib3VuZHMgYmVmb3JlIGRlbGVnYXRpbmcgdG8gYmFzZSBjbGFzc1xuICAgIGlmIChwcm9wcy5zb2Z0RGVsZXRlUmV0ZW50aW9uSW5EYXlzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChcbiAgICAgICAgcHJvcHMuc29mdERlbGV0ZVJldGVudGlvbkluRGF5cyA8IDcgfHxcbiAgICAgICAgcHJvcHMuc29mdERlbGV0ZVJldGVudGlvbkluRGF5cyA+IDkwXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIFwic29mdERlbGV0ZVJldGVudGlvbkluRGF5cyBtdXN0IGJlIGJldHdlZW4gNyBhbmQgOTAgZGF5c1wiLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHRlbmFudElkIGlzIG5vdCBwcm92aWRlZCwgZmFsbCBiYWNrIHRvIHRoZSBjdXJyZW50IEFaQVBJIGNsaWVudCB0ZW5hbnQuXG4gICAgLy8gVGhlIERhdGFBemFwaUNsaWVudENvbmZpZyBkYXRhIHNvdXJjZSBtdXN0IGJlIGNyZWF0ZWQgb24gdGhlIHBhcmVudCBzY29wZVxuICAgIC8vIHNvIGl0IGlzIGF2YWlsYWJsZSBiZWZvcmUgc3VwZXIoKSBpcyBjYWxsZWQuXG4gICAgY29uc3QgcmVzb2x2ZWRUZW5hbnRJZCA9XG4gICAgICBwcm9wcy50ZW5hbnRJZCA/P1xuICAgICAgKCgpID0+IHtcbiAgICAgICAgY29uc3QgY2xpZW50Q29uZmlnID0gbmV3IERhdGFBemFwaUNsaWVudENvbmZpZyhcbiAgICAgICAgICBzY29wZSxcbiAgICAgICAgICBgJHtpZH1fY2xpZW50X2NvbmZpZ2AsXG4gICAgICAgICAge30sXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBgXFwkeyR7Y2xpZW50Q29uZmlnLmZxbn0udGVuYW50X2lkfWA7XG4gICAgICB9KSgpO1xuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7IC4uLnByb3BzLCB0ZW5hbnRJZDogcmVzb2x2ZWRUZW5hbnRJZCB9IGFzIEtleVZhdWx0UHJvcHMpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgLy8gQ3JlYXRlIFRlcnJhZm9ybSBvdXRwdXRzXG4gICAgdGhpcy5pZE91dHB1dCA9IG5ldyBjZGt0bi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJpZFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBJRCBvZiB0aGUgS2V5IFZhdWx0XCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLmxvY2F0aW9uT3V0cHV0ID0gbmV3IGNka3RuLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImxvY2F0aW9uXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59LmxvY2F0aW9ufWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbG9jYXRpb24gb2YgdGhlIEtleSBWYXVsdFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uYW1lT3V0cHV0ID0gbmV3IGNka3RuLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcIm5hbWVcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ubmFtZX1gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIG5hbWUgb2YgdGhlIEtleSBWYXVsdFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy50YWdzT3V0cHV0ID0gbmV3IGNka3RuLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcInRhZ3NcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0udGFnc31gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIHRhZ3MgYXNzaWduZWQgdG8gdGhlIEtleSBWYXVsdFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy52YXVsdFVyaU91dHB1dCA9IG5ldyBjZGt0bi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJ2YXVsdF91cmlcIiwge1xuICAgICAgdmFsdWU6IHRoaXMudmF1bHRVcmksXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJUaGUgVVJJIG9mIHRoZSBLZXkgVmF1bHQgZm9yIHBlcmZvcm1pbmcgZGF0YSBwbGFuZSBvcGVyYXRpb25zXCIsXG4gICAgfSk7XG5cbiAgICAvLyBPdmVycmlkZSBsb2dpY2FsIElEc1xuICAgIHRoaXMuaWRPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJpZFwiKTtcbiAgICB0aGlzLmxvY2F0aW9uT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwibG9jYXRpb25cIik7XG4gICAgdGhpcy5uYW1lT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwibmFtZVwiKTtcbiAgICB0aGlzLnRhZ3NPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJ0YWdzXCIpO1xuICAgIHRoaXMudmF1bHRVcmlPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJ2YXVsdF91cmlcIik7XG5cbiAgICAvLyBBcHBseSBpZ25vcmUgY2hhbmdlcyBpZiBzcGVjaWZpZWRcbiAgICB0aGlzLl9hcHBseUlnbm9yZUNoYW5nZXMoKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFJFUVVJUkVEIEFCU1RSQUNUIE1FVEhPRFMgRlJPTSBBemFwaVJlc291cmNlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRlZmF1bHQgQVBJIHZlcnNpb24gdG8gdXNlIHdoZW4gbm8gZXhwbGljaXQgdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjIwMjQtMTEtMDFcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBenVyZSByZXNvdXJjZSB0eXBlIGZvciBLZXkgVmF1bHRcbiAgICovXG4gIHByb3RlY3RlZCByZXNvdXJjZVR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gS0VZX1ZBVUxUX1RZUEU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQVBJIHNjaGVtYSBmb3IgdGhlIHJlc29sdmVkIHZlcnNpb25cbiAgICovXG4gIHByb3RlY3RlZCBhcGlTY2hlbWEoKTogQXBpU2NoZW1hIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlU2NoZW1hKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgbG9jYXRpb24gaXMgcmVxdWlyZWQgZm9yIEtleSBWYXVsdHNcbiAgICovXG4gIHByb3RlY3RlZCByZXF1aXJlc0xvY2F0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIHJlc291cmNlIGJvZHkgZm9yIHRoZSBBenVyZSBBUEkgY2FsbFxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVJlc291cmNlQm9keShwcm9wczogYW55KTogYW55IHtcbiAgICBjb25zdCB0eXBlZFByb3BzID0gcHJvcHMgYXMgS2V5VmF1bHRQcm9wcztcblxuICAgIGNvbnN0IHByb3BlcnRpZXM6IGFueSA9IHtcbiAgICAgIHRlbmFudElkOiB0eXBlZFByb3BzLnRlbmFudElkLFxuICAgICAgc2t1OiB7XG4gICAgICAgIG5hbWU6IHR5cGVkUHJvcHMuc2t1Py5uYW1lID8/IFwic3RhbmRhcmRcIixcbiAgICAgICAgZmFtaWx5OiB0eXBlZFByb3BzLnNrdT8uZmFtaWx5ID8/IFwiQVwiLFxuICAgICAgfSxcbiAgICAgIGVuYWJsZWRGb3JEZXBsb3ltZW50OiB0eXBlZFByb3BzLmVuYWJsZWRGb3JEZXBsb3ltZW50ID8/IGZhbHNlLFxuICAgICAgZW5hYmxlZEZvckRpc2tFbmNyeXB0aW9uOiB0eXBlZFByb3BzLmVuYWJsZWRGb3JEaXNrRW5jcnlwdGlvbiA/PyBmYWxzZSxcbiAgICAgIGVuYWJsZWRGb3JUZW1wbGF0ZURlcGxveW1lbnQ6XG4gICAgICAgIHR5cGVkUHJvcHMuZW5hYmxlZEZvclRlbXBsYXRlRGVwbG95bWVudCA/PyBmYWxzZSxcbiAgICAgIGVuYWJsZVJiYWNBdXRob3JpemF0aW9uOiB0eXBlZFByb3BzLmVuYWJsZVJiYWNBdXRob3JpemF0aW9uID8/IHRydWUsXG4gICAgICBlbmFibGVTb2Z0RGVsZXRlOiB0eXBlZFByb3BzLmVuYWJsZVNvZnREZWxldGUgPz8gdHJ1ZSxcbiAgICAgIHNvZnREZWxldGVSZXRlbnRpb25JbkRheXM6IHR5cGVkUHJvcHMuc29mdERlbGV0ZVJldGVudGlvbkluRGF5cyA/PyA5MCxcbiAgICAgIHB1YmxpY05ldHdvcmtBY2Nlc3M6IHR5cGVkUHJvcHMucHVibGljTmV0d29ya0FjY2VzcyA/PyBcIkVuYWJsZWRcIixcbiAgICB9O1xuXG4gICAgaWYgKHR5cGVkUHJvcHMuZW5hYmxlUHVyZ2VQcm90ZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHByb3BlcnRpZXMuZW5hYmxlUHVyZ2VQcm90ZWN0aW9uID0gdHlwZWRQcm9wcy5lbmFibGVQdXJnZVByb3RlY3Rpb247XG4gICAgfVxuXG4gICAgLy8gYWNjZXNzUG9saWNpZXMgaXMgb25seSBtZWFuaW5nZnVsIHdoZW4gUkJBQyBhdXRob3JpemF0aW9uIGlzIGRpc2FibGVkLlxuICAgIC8vIEFsd2F5cyBpbmNsdWRlIHRoZSBhcnJheSAoQXp1cmUgcmVxdWlyZXMgaXQpIC0gZGVmYXVsdCB0byBlbXB0eS5cbiAgICBwcm9wZXJ0aWVzLmFjY2Vzc1BvbGljaWVzID0gdHlwZWRQcm9wcy5hY2Nlc3NQb2xpY2llcyA/PyBbXTtcblxuICAgIGlmICh0eXBlZFByb3BzLm5ldHdvcmtBY2xzKSB7XG4gICAgICBwcm9wZXJ0aWVzLm5ldHdvcmtBY2xzID0ge1xuICAgICAgICBkZWZhdWx0QWN0aW9uOiB0eXBlZFByb3BzLm5ldHdvcmtBY2xzLmRlZmF1bHRBY3Rpb24gPz8gXCJBbGxvd1wiLFxuICAgICAgICBieXBhc3M6IHR5cGVkUHJvcHMubmV0d29ya0FjbHMuYnlwYXNzID8/IFwiQXp1cmVTZXJ2aWNlc1wiLFxuICAgICAgICBpcFJ1bGVzOiB0eXBlZFByb3BzLm5ldHdvcmtBY2xzLmlwUnVsZXMgPz8gW10sXG4gICAgICAgIHZpcnR1YWxOZXR3b3JrUnVsZXM6IHR5cGVkUHJvcHMubmV0d29ya0FjbHMudmlydHVhbE5ldHdvcmtSdWxlcyA/PyBbXSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxvY2F0aW9uOiB0aGlzLmxvY2F0aW9uLFxuICAgICAgdGFnczogdGhpcy5hbGxUYWdzKCksXG4gICAgICBwcm9wZXJ0aWVzLFxuICAgIH07XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQVUJMSUMgTUVUSE9EUyBGT1IgS0VZIFZBVUxUIE9QRVJBVElPTlNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2V0IHRoZSBkYXRhIHBsYW5lIFVSSSBvZiB0aGUgS2V5IFZhdWx0XG4gICAqXG4gICAqIFJldHVybnMgdGhlIGRldGVybWluaXN0aWMgQXp1cmUgcHVibGljIGNsb3VkIEtleSBWYXVsdCBVUkkgaW4gdGhlIGZvcm1cbiAgICogYGh0dHBzOi8ve25hbWV9LnZhdWx0LmF6dXJlLm5ldC9gLiBUaGlzIGF2b2lkcyBkZXBlbmRpbmcgb24gdGhlIEFaQVBJXG4gICAqIHJlc291cmNlIGBvdXRwdXRgIGF0dHJpYnV0ZSB3aGljaCBpcyBvbmx5IHBvcHVsYXRlZCBmb3IgcHJvcGVydGllcyBsaXN0ZWRcbiAgICogaW4gYHJlc3BvbnNlX2V4cG9ydF92YWx1ZXNgLlxuICAgKi9cbiAgcHVibGljIGdldCB2YXVsdFVyaSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgaHR0cHM6Ly9cXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ubmFtZX0udmF1bHQuYXp1cmUubmV0L2A7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgdGFnIHRvIHRoZSBLZXkgVmF1bHRcbiAgICovXG4gIHB1YmxpYyBhZGRUYWcoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJvcHMudGFncykge1xuICAgICAgKHRoaXMucHJvcHMgYXMgYW55KS50YWdzID0ge307XG4gICAgfVxuICAgIHRoaXMucHJvcHMudGFncyFba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIHRhZyBmcm9tIHRoZSBLZXkgVmF1bHRcbiAgICovXG4gIHB1YmxpYyByZW1vdmVUYWcoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy50YWdzICYmIHRoaXMucHJvcHMudGFnc1trZXldKSB7XG4gICAgICBkZWxldGUgdGhpcy5wcm9wcy50YWdzW2tleV07XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFJJVkFURSBIRUxQRVIgTUVUSE9EU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGlnbm9yZSBjaGFuZ2VzIGxpZmVjeWNsZSBydWxlcyBpZiBzcGVjaWZpZWQgaW4gcHJvcHNcbiAgICovXG4gIHByaXZhdGUgX2FwcGx5SWdub3JlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzICYmIHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnRlcnJhZm9ybVJlc291cmNlLmFkZE92ZXJyaWRlKFwibGlmZWN5Y2xlXCIsIFtcbiAgICAgICAge1xuICAgICAgICAgIGlnbm9yZV9jaGFuZ2VzOiB0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -6,4 +6,4 @@
6
6
  *
7
7
  * Run with: npm run integration:nostream
8
8
  */
9
- import "cdktf/lib/testing/adapters/jest";
9
+ import "cdktn/lib/testing/adapters/jest";
@@ -8,8 +8,8 @@
8
8
  * Run with: npm run integration:nostream
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- const cdktf_1 = require("cdktf");
12
- require("cdktf/lib/testing/adapters/jest");
11
+ const cdktn_1 = require("cdktn");
12
+ require("cdktn/lib/testing/adapters/jest");
13
13
  const azure_resourcegroup_1 = require("../../azure-resourcegroup");
14
14
  const provider_1 = require("../../core-azure/lib/azapi/providers-azapi/provider");
15
15
  const testing_1 = require("../../testing");
@@ -95,9 +95,9 @@ class KeyVaultExampleStack extends testing_1.BaseTestStack {
95
95
  }
96
96
  describe("Key Vault Integration Test", () => {
97
97
  it("should deploy, validate idempotency, and cleanup key vault resources", () => {
98
- const app = cdktf_1.Testing.app();
98
+ const app = cdktn_1.Testing.app();
99
99
  const stack = new KeyVaultExampleStack(app, "test-key-vault");
100
- const synthesized = cdktf_1.Testing.fullSynth(stack);
100
+ const synthesized = cdktn_1.Testing.fullSynth(stack);
101
101
  // This will:
102
102
  // 1. Run terraform apply to deploy resources
103
103
  // 2. Run terraform plan to check idempotency (no changes expected)
@@ -105,4 +105,4 @@ describe("Key Vault Integration Test", () => {
105
105
  (0, testing_1.TerraformApplyCheckAndDestroy)(synthesized, { verifyCleanup: true });
106
106
  }, 1200000); // 20 minute timeout for deployment and cleanup
107
107
  });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LXZhdWx0LmludGVnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWtleXZhdWx0L3Rlc3Qva2V5LXZhdWx0LmludGVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztHQU9HOztBQUVILGlDQUFnQztBQUVoQywyQ0FBeUM7QUFDekMsbUVBQTBEO0FBQzFELGtGQUFvRjtBQUNwRiwyQ0FBNkU7QUFDN0UseURBQTZEO0FBQzdELGdEQUE0QztBQUU1Qyx3REFBd0Q7QUFDeEQsTUFBTSxZQUFZLEdBQUcsSUFBSSwwQkFBZSxDQUFDLHVCQUF1QixFQUFFO0lBQ2hFLFdBQVcsRUFBRSxDQUFDO0NBQ2YsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxNQUFNLG9CQUFxQixTQUFRLHVCQUFhO0lBQzlDLFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsY0FBYyxFQUFFO2dCQUNkLFdBQVcsRUFBRSxZQUFZLENBQUMsV0FBVztnQkFDckMsV0FBVyxFQUFFLFlBQVksQ0FBQyxXQUFXO2dCQUNyQyxhQUFhLEVBQUUsWUFBWSxDQUFDLGFBQWE7YUFDMUM7U0FDRixDQUFDLENBQUM7UUFFSCwyQkFBMkI7UUFDM0IsSUFBSSx3QkFBYSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFckMsd0JBQXdCO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FDdEMsb0NBQW9DLEVBQ3BDLElBQUksQ0FDTCxDQUFDO1FBRUYsMEJBQTBCO1FBQzFCLE1BQU0sYUFBYSxHQUFHLElBQUksbUNBQWEsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQzFELElBQUksRUFBRSxNQUFNO1lBQ1osUUFBUSxFQUFFLFFBQVE7WUFDbEIsSUFBSSxFQUFFO2dCQUNKLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRTthQUNyQjtTQUNGLENBQUMsQ0FBQztRQUVILHdFQUF3RTtRQUN4RSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQzNDLDJCQUEyQixFQUMzQixPQUFPLENBQ1IsQ0FBQztRQUNGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FDL0MsMkJBQTJCLEVBQzNCLEtBQUssQ0FDTixDQUFDO1FBQ0YsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUM3QywyQkFBMkIsRUFDM0IsS0FBSyxDQUNOLENBQUM7UUFFRiwyRUFBMkU7UUFDM0UsSUFBSSxvQkFBUSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUNuQyxJQUFJLEVBQUUsV0FBVztZQUNqQixRQUFRLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFTO1lBQ3ZDLGVBQWUsRUFBRSxhQUFhLENBQUMsRUFBRTtZQUNqQywrREFBK0Q7WUFDL0QseUJBQXlCLEVBQUUsQ0FBQztZQUM1QixJQUFJLEVBQUU7Z0JBQ0osR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixPQUFPLEVBQUUsT0FBTzthQUNqQjtTQUNGLENBQUMsQ0FBQztRQUVILGlFQUFpRTtRQUNqRSxJQUFJLG9CQUFRLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFO1lBQ3ZDLElBQUksRUFBRSxlQUFlO1lBQ3JCLFFBQVEsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVM7WUFDdkMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQ2pDLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDeEIsVUFBVSxFQUFFLFlBQVk7WUFDeEIseUJBQXlCLEVBQUUsQ0FBQztZQUM1QixJQUFJLEVBQUU7Z0JBQ0osR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixPQUFPLEVBQUUsV0FBVzthQUNyQjtTQUNGLENBQUMsQ0FBQztRQUVILG1FQUFtRTtRQUNuRSxJQUFJLG9CQUFRLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQ3JDLElBQUksRUFBRSxhQUFhO1lBQ25CLFFBQVEsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVM7WUFDdkMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQ2pDLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDekIsdUJBQXVCLEVBQUUsSUFBSTtZQUM3QixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLHlCQUF5QixFQUFFLENBQUM7WUFDNUIsbUJBQW1CLEVBQUUsU0FBUztZQUM5QixXQUFXLEVBQUU7Z0JBQ1gsYUFBYSxFQUFFLE9BQU87Z0JBQ3RCLE1BQU0sRUFBRSxlQUFlO2FBQ3hCO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDcEIsT0FBTyxFQUFFLFNBQVM7YUFDbkI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRCxRQUFRLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFO0lBQzFDLEVBQUUsQ0FBQyxzRUFBc0UsRUFBRSxHQUFHLEVBQUU7UUFDOUUsTUFBTSxHQUFHLEdBQUcsZUFBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksb0JBQW9CLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDOUQsTUFBTSxXQUFXLEdBQUcsZUFBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QyxhQUFhO1FBQ2IsNkNBQTZDO1FBQzdDLG1FQUFtRTtRQUNuRSxnREFBZ0Q7UUFDaEQsSUFBQSx1Q0FBNkIsRUFBQyxXQUFXLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQywrQ0FBK0M7QUFDOUQsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVncmF0aW9uIHRlc3QgZm9yIEF6dXJlIEtleSBWYXVsdFxuICpcbiAqIFRoaXMgdGVzdCBkZW1vbnN0cmF0ZXMgYmFzaWMgdXNhZ2Ugb2YgdGhlIEtleVZhdWx0IGNvbnN0cnVjdFxuICogYW5kIHZhbGlkYXRlcyBkZXBsb3ltZW50LCBpZGVtcG90ZW5jeSwgYW5kIGNsZWFudXAuXG4gKlxuICogUnVuIHdpdGg6IG5wbSBydW4gaW50ZWdyYXRpb246bm9zdHJlYW1cbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IFwiY2RrdGYvbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuaW1wb3J0IHsgUmVzb3VyY2VHcm91cCB9IGZyb20gXCIuLi8uLi9henVyZS1yZXNvdXJjZWdyb3VwXCI7XG5pbXBvcnQgeyBBemFwaVByb3ZpZGVyIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL3Byb3ZpZGVycy1hemFwaS9wcm92aWRlclwiO1xuaW1wb3J0IHsgQmFzZVRlc3RTdGFjaywgVGVycmFmb3JtQXBwbHlDaGVja0FuZERlc3Ryb3kgfSBmcm9tIFwiLi4vLi4vdGVzdGluZ1wiO1xuaW1wb3J0IHsgVGVzdFJ1bk1ldGFkYXRhIH0gZnJvbSBcIi4uLy4uL3Rlc3RpbmcvbGliL21ldGFkYXRhXCI7XG5pbXBvcnQgeyBLZXlWYXVsdCB9IGZyb20gXCIuLi9saWIva2V5LXZhdWx0XCI7XG5cbi8vIEdlbmVyYXRlIHVuaXF1ZSB0ZXN0IHJ1biBtZXRhZGF0YSBmb3IgdGhpcyB0ZXN0IHN1aXRlXG5jb25zdCB0ZXN0TWV0YWRhdGEgPSBuZXcgVGVzdFJ1bk1ldGFkYXRhKFwia2V5LXZhdWx0LWludGVncmF0aW9uXCIsIHtcbiAgbWF4QWdlSG91cnM6IDQsXG59KTtcblxuLyoqXG4gKiBFeGFtcGxlIHN0YWNrIGRlbW9uc3RyYXRpbmcgS2V5IFZhdWx0IHVzYWdlXG4gKi9cbmNsYXNzIEtleVZhdWx0RXhhbXBsZVN0YWNrIGV4dGVuZHMgQmFzZVRlc3RTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHRlc3RSdW5PcHRpb25zOiB7XG4gICAgICAgIG1heEFnZUhvdXJzOiB0ZXN0TWV0YWRhdGEubWF4QWdlSG91cnMsXG4gICAgICAgIGF1dG9DbGVhbnVwOiB0ZXN0TWV0YWRhdGEuYXV0b0NsZWFudXAsXG4gICAgICAgIGNsZWFudXBQb2xpY3k6IHRlc3RNZXRhZGF0YS5jbGVhbnVwUG9saWN5LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIENvbmZpZ3VyZSBBWkFQSSBwcm92aWRlclxuICAgIG5ldyBBemFwaVByb3ZpZGVyKHRoaXMsIFwiYXphcGlcIiwge30pO1xuXG4gICAgLy8gR2VuZXJhdGUgdW5pcXVlIG5hbWVzXG4gICAgY29uc3QgcmdOYW1lID0gdGhpcy5nZW5lcmF0ZVJlc291cmNlTmFtZShcbiAgICAgIFwiTWljcm9zb2Z0LlJlc291cmNlcy9yZXNvdXJjZUdyb3Vwc1wiLFxuICAgICAgXCJrdlwiLFxuICAgICk7XG5cbiAgICAvLyBDcmVhdGUgYSByZXNvdXJjZSBncm91cFxuICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cCh0aGlzLCBcImV4YW1wbGUtcmdcIiwge1xuICAgICAgbmFtZTogcmdOYW1lLFxuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIC4uLnRoaXMuc3lzdGVtVGFncygpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIEdlbmVyYXRlIHVuaXF1ZSBLZXkgVmF1bHQgbmFtZXMgKG11c3QgYmUgZ2xvYmFsbHkgdW5pcXVlLCAzLTI0IGNoYXJzKVxuICAgIGNvbnN0IGJhc2ljS3ZOYW1lID0gdGhpcy5nZW5lcmF0ZVJlc291cmNlTmFtZShcbiAgICAgIFwiTWljcm9zb2Z0LktleVZhdWx0L3ZhdWx0c1wiLFxuICAgICAgXCJiYXNpY1wiLFxuICAgICk7XG4gICAgY29uc3QgdmVyc2lvbmVkS3ZOYW1lID0gdGhpcy5nZW5lcmF0ZVJlc291cmNlTmFtZShcbiAgICAgIFwiTWljcm9zb2Z0LktleVZhdWx0L3ZhdWx0c1wiLFxuICAgICAgXCJ2ZXJcIixcbiAgICApO1xuICAgIGNvbnN0IHNlY3VyZWRLdk5hbWUgPSB0aGlzLmdlbmVyYXRlUmVzb3VyY2VOYW1lKFxuICAgICAgXCJNaWNyb3NvZnQuS2V5VmF1bHQvdmF1bHRzXCIsXG4gICAgICBcInNlY1wiLFxuICAgICk7XG5cbiAgICAvLyBFeGFtcGxlIDE6IEJhc2ljIEtleSBWYXVsdCB1c2luZyBjdXJyZW50IHRlbmFudCBmcm9tIEFaQVBJIGNsaWVudCBjb25maWdcbiAgICBuZXcgS2V5VmF1bHQodGhpcywgXCJiYXNpYy1rZXl2YXVsdFwiLCB7XG4gICAgICBuYW1lOiBiYXNpY0t2TmFtZSxcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLnByb3BzLmxvY2F0aW9uISxcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIC8vIHNvZnREZWxldGVSZXRlbnRpb25JbkRheXMgbWluaW11bSA3IGtlZXBzIHRlc3QgY2xlYW51cCBxdWlja1xuICAgICAgc29mdERlbGV0ZVJldGVudGlvbkluRGF5czogNyxcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgLi4udGhpcy5zeXN0ZW1UYWdzKCksXG4gICAgICAgIGV4YW1wbGU6IFwiYmFzaWNcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBFeGFtcGxlIDI6IEtleSBWYXVsdCB3aXRoIHNwZWNpZmljIEFQSSB2ZXJzaW9uIGFuZCBQcmVtaXVtIFNLVVxuICAgIG5ldyBLZXlWYXVsdCh0aGlzLCBcInZlcnNpb25lZC1rZXl2YXVsdFwiLCB7XG4gICAgICBuYW1lOiB2ZXJzaW9uZWRLdk5hbWUsXG4gICAgICBsb2NhdGlvbjogcmVzb3VyY2VHcm91cC5wcm9wcy5sb2NhdGlvbiEsXG4gICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICBza3U6IHsgbmFtZTogXCJwcmVtaXVtXCIgfSxcbiAgICAgIGFwaVZlcnNpb246IFwiMjAyMy0wNy0wMVwiLFxuICAgICAgc29mdERlbGV0ZVJldGVudGlvbkluRGF5czogNyxcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgLi4udGhpcy5zeXN0ZW1UYWdzKCksXG4gICAgICAgIGV4YW1wbGU6IFwidmVyc2lvbmVkXCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gRXhhbXBsZSAzOiBLZXkgVmF1bHQgd2l0aCBoYXJkZW5lZCBuZXR3b3JrIGFuZCBzZWN1cml0eSBzZXR0aW5nc1xuICAgIG5ldyBLZXlWYXVsdCh0aGlzLCBcInNlY3VyZWQta2V5dmF1bHRcIiwge1xuICAgICAgbmFtZTogc2VjdXJlZEt2TmFtZSxcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLnByb3BzLmxvY2F0aW9uISxcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIHNrdTogeyBuYW1lOiBcInN0YW5kYXJkXCIgfSxcbiAgICAgIGVuYWJsZVJiYWNBdXRob3JpemF0aW9uOiB0cnVlLFxuICAgICAgZW5hYmxlU29mdERlbGV0ZTogdHJ1ZSxcbiAgICAgIHNvZnREZWxldGVSZXRlbnRpb25JbkRheXM6IDcsXG4gICAgICBwdWJsaWNOZXR3b3JrQWNjZXNzOiBcIkVuYWJsZWRcIixcbiAgICAgIG5ldHdvcmtBY2xzOiB7XG4gICAgICAgIGRlZmF1bHRBY3Rpb246IFwiQWxsb3dcIixcbiAgICAgICAgYnlwYXNzOiBcIkF6dXJlU2VydmljZXNcIixcbiAgICAgIH0sXG4gICAgICB0YWdzOiB7XG4gICAgICAgIC4uLnRoaXMuc3lzdGVtVGFncygpLFxuICAgICAgICBleGFtcGxlOiBcInNlY3VyZWRcIixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuZGVzY3JpYmUoXCJLZXkgVmF1bHQgSW50ZWdyYXRpb24gVGVzdFwiLCAoKSA9PiB7XG4gIGl0KFwic2hvdWxkIGRlcGxveSwgdmFsaWRhdGUgaWRlbXBvdGVuY3ksIGFuZCBjbGVhbnVwIGtleSB2YXVsdCByZXNvdXJjZXNcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgS2V5VmF1bHRFeGFtcGxlU3RhY2soYXBwLCBcInRlc3Qta2V5LXZhdWx0XCIpO1xuICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5mdWxsU3ludGgoc3RhY2spO1xuXG4gICAgLy8gVGhpcyB3aWxsOlxuICAgIC8vIDEuIFJ1biB0ZXJyYWZvcm0gYXBwbHkgdG8gZGVwbG95IHJlc291cmNlc1xuICAgIC8vIDIuIFJ1biB0ZXJyYWZvcm0gcGxhbiB0byBjaGVjayBpZGVtcG90ZW5jeSAobm8gY2hhbmdlcyBleHBlY3RlZClcbiAgICAvLyAzLiBSdW4gdGVycmFmb3JtIGRlc3Ryb3kgdG8gY2xlYW51cCByZXNvdXJjZXNcbiAgICBUZXJyYWZvcm1BcHBseUNoZWNrQW5kRGVzdHJveShzeW50aGVzaXplZCwgeyB2ZXJpZnlDbGVhbnVwOiB0cnVlIH0pO1xuICB9LCAxMjAwMDAwKTsgLy8gMjAgbWludXRlIHRpbWVvdXQgZm9yIGRlcGxveW1lbnQgYW5kIGNsZWFudXBcbn0pO1xuIl19
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LXZhdWx0LmludGVnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWtleXZhdWx0L3Rlc3Qva2V5LXZhdWx0LmludGVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztHQU9HOztBQUVILGlDQUFnQztBQUVoQywyQ0FBeUM7QUFDekMsbUVBQTBEO0FBQzFELGtGQUFvRjtBQUNwRiwyQ0FBNkU7QUFDN0UseURBQTZEO0FBQzdELGdEQUE0QztBQUU1Qyx3REFBd0Q7QUFDeEQsTUFBTSxZQUFZLEdBQUcsSUFBSSwwQkFBZSxDQUFDLHVCQUF1QixFQUFFO0lBQ2hFLFdBQVcsRUFBRSxDQUFDO0NBQ2YsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxNQUFNLG9CQUFxQixTQUFRLHVCQUFhO0lBQzlDLFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsY0FBYyxFQUFFO2dCQUNkLFdBQVcsRUFBRSxZQUFZLENBQUMsV0FBVztnQkFDckMsV0FBVyxFQUFFLFlBQVksQ0FBQyxXQUFXO2dCQUNyQyxhQUFhLEVBQUUsWUFBWSxDQUFDLGFBQWE7YUFDMUM7U0FDRixDQUFDLENBQUM7UUFFSCwyQkFBMkI7UUFDM0IsSUFBSSx3QkFBYSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFckMsd0JBQXdCO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FDdEMsb0NBQW9DLEVBQ3BDLElBQUksQ0FDTCxDQUFDO1FBRUYsMEJBQTBCO1FBQzFCLE1BQU0sYUFBYSxHQUFHLElBQUksbUNBQWEsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO1lBQzFELElBQUksRUFBRSxNQUFNO1lBQ1osUUFBUSxFQUFFLFFBQVE7WUFDbEIsSUFBSSxFQUFFO2dCQUNKLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRTthQUNyQjtTQUNGLENBQUMsQ0FBQztRQUVILHdFQUF3RTtRQUN4RSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQzNDLDJCQUEyQixFQUMzQixPQUFPLENBQ1IsQ0FBQztRQUNGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FDL0MsMkJBQTJCLEVBQzNCLEtBQUssQ0FDTixDQUFDO1FBQ0YsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUM3QywyQkFBMkIsRUFDM0IsS0FBSyxDQUNOLENBQUM7UUFFRiwyRUFBMkU7UUFDM0UsSUFBSSxvQkFBUSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUNuQyxJQUFJLEVBQUUsV0FBVztZQUNqQixRQUFRLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFTO1lBQ3ZDLGVBQWUsRUFBRSxhQUFhLENBQUMsRUFBRTtZQUNqQywrREFBK0Q7WUFDL0QseUJBQXlCLEVBQUUsQ0FBQztZQUM1QixJQUFJLEVBQUU7Z0JBQ0osR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixPQUFPLEVBQUUsT0FBTzthQUNqQjtTQUNGLENBQUMsQ0FBQztRQUVILGlFQUFpRTtRQUNqRSxJQUFJLG9CQUFRLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFO1lBQ3ZDLElBQUksRUFBRSxlQUFlO1lBQ3JCLFFBQVEsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVM7WUFDdkMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQ2pDLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDeEIsVUFBVSxFQUFFLFlBQVk7WUFDeEIseUJBQXlCLEVBQUUsQ0FBQztZQUM1QixJQUFJLEVBQUU7Z0JBQ0osR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixPQUFPLEVBQUUsV0FBVzthQUNyQjtTQUNGLENBQUMsQ0FBQztRQUVILG1FQUFtRTtRQUNuRSxJQUFJLG9CQUFRLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQ3JDLElBQUksRUFBRSxhQUFhO1lBQ25CLFFBQVEsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVM7WUFDdkMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQ2pDLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDekIsdUJBQXVCLEVBQUUsSUFBSTtZQUM3QixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLHlCQUF5QixFQUFFLENBQUM7WUFDNUIsbUJBQW1CLEVBQUUsU0FBUztZQUM5QixXQUFXLEVBQUU7Z0JBQ1gsYUFBYSxFQUFFLE9BQU87Z0JBQ3RCLE1BQU0sRUFBRSxlQUFlO2FBQ3hCO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDcEIsT0FBTyxFQUFFLFNBQVM7YUFDbkI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRCxRQUFRLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFO0lBQzFDLEVBQUUsQ0FBQyxzRUFBc0UsRUFBRSxHQUFHLEVBQUU7UUFDOUUsTUFBTSxHQUFHLEdBQUcsZUFBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksb0JBQW9CLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDOUQsTUFBTSxXQUFXLEdBQUcsZUFBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QyxhQUFhO1FBQ2IsNkNBQTZDO1FBQzdDLG1FQUFtRTtRQUNuRSxnREFBZ0Q7UUFDaEQsSUFBQSx1Q0FBNkIsRUFBQyxXQUFXLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQywrQ0FBK0M7QUFDOUQsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVncmF0aW9uIHRlc3QgZm9yIEF6dXJlIEtleSBWYXVsdFxuICpcbiAqIFRoaXMgdGVzdCBkZW1vbnN0cmF0ZXMgYmFzaWMgdXNhZ2Ugb2YgdGhlIEtleVZhdWx0IGNvbnN0cnVjdFxuICogYW5kIHZhbGlkYXRlcyBkZXBsb3ltZW50LCBpZGVtcG90ZW5jeSwgYW5kIGNsZWFudXAuXG4gKlxuICogUnVuIHdpdGg6IG5wbSBydW4gaW50ZWdyYXRpb246bm9zdHJlYW1cbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IFwiY2RrdG4vbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuaW1wb3J0IHsgUmVzb3VyY2VHcm91cCB9IGZyb20gXCIuLi8uLi9henVyZS1yZXNvdXJjZWdyb3VwXCI7XG5pbXBvcnQgeyBBemFwaVByb3ZpZGVyIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL3Byb3ZpZGVycy1hemFwaS9wcm92aWRlclwiO1xuaW1wb3J0IHsgQmFzZVRlc3RTdGFjaywgVGVycmFmb3JtQXBwbHlDaGVja0FuZERlc3Ryb3kgfSBmcm9tIFwiLi4vLi4vdGVzdGluZ1wiO1xuaW1wb3J0IHsgVGVzdFJ1bk1ldGFkYXRhIH0gZnJvbSBcIi4uLy4uL3Rlc3RpbmcvbGliL21ldGFkYXRhXCI7XG5pbXBvcnQgeyBLZXlWYXVsdCB9IGZyb20gXCIuLi9saWIva2V5LXZhdWx0XCI7XG5cbi8vIEdlbmVyYXRlIHVuaXF1ZSB0ZXN0IHJ1biBtZXRhZGF0YSBmb3IgdGhpcyB0ZXN0IHN1aXRlXG5jb25zdCB0ZXN0TWV0YWRhdGEgPSBuZXcgVGVzdFJ1bk1ldGFkYXRhKFwia2V5LXZhdWx0LWludGVncmF0aW9uXCIsIHtcbiAgbWF4QWdlSG91cnM6IDQsXG59KTtcblxuLyoqXG4gKiBFeGFtcGxlIHN0YWNrIGRlbW9uc3RyYXRpbmcgS2V5IFZhdWx0IHVzYWdlXG4gKi9cbmNsYXNzIEtleVZhdWx0RXhhbXBsZVN0YWNrIGV4dGVuZHMgQmFzZVRlc3RTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHRlc3RSdW5PcHRpb25zOiB7XG4gICAgICAgIG1heEFnZUhvdXJzOiB0ZXN0TWV0YWRhdGEubWF4QWdlSG91cnMsXG4gICAgICAgIGF1dG9DbGVhbnVwOiB0ZXN0TWV0YWRhdGEuYXV0b0NsZWFudXAsXG4gICAgICAgIGNsZWFudXBQb2xpY3k6IHRlc3RNZXRhZGF0YS5jbGVhbnVwUG9saWN5LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIENvbmZpZ3VyZSBBWkFQSSBwcm92aWRlclxuICAgIG5ldyBBemFwaVByb3ZpZGVyKHRoaXMsIFwiYXphcGlcIiwge30pO1xuXG4gICAgLy8gR2VuZXJhdGUgdW5pcXVlIG5hbWVzXG4gICAgY29uc3QgcmdOYW1lID0gdGhpcy5nZW5lcmF0ZVJlc291cmNlTmFtZShcbiAgICAgIFwiTWljcm9zb2Z0LlJlc291cmNlcy9yZXNvdXJjZUdyb3Vwc1wiLFxuICAgICAgXCJrdlwiLFxuICAgICk7XG5cbiAgICAvLyBDcmVhdGUgYSByZXNvdXJjZSBncm91cFxuICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cCh0aGlzLCBcImV4YW1wbGUtcmdcIiwge1xuICAgICAgbmFtZTogcmdOYW1lLFxuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIC4uLnRoaXMuc3lzdGVtVGFncygpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIEdlbmVyYXRlIHVuaXF1ZSBLZXkgVmF1bHQgbmFtZXMgKG11c3QgYmUgZ2xvYmFsbHkgdW5pcXVlLCAzLTI0IGNoYXJzKVxuICAgIGNvbnN0IGJhc2ljS3ZOYW1lID0gdGhpcy5nZW5lcmF0ZVJlc291cmNlTmFtZShcbiAgICAgIFwiTWljcm9zb2Z0LktleVZhdWx0L3ZhdWx0c1wiLFxuICAgICAgXCJiYXNpY1wiLFxuICAgICk7XG4gICAgY29uc3QgdmVyc2lvbmVkS3ZOYW1lID0gdGhpcy5nZW5lcmF0ZVJlc291cmNlTmFtZShcbiAgICAgIFwiTWljcm9zb2Z0LktleVZhdWx0L3ZhdWx0c1wiLFxuICAgICAgXCJ2ZXJcIixcbiAgICApO1xuICAgIGNvbnN0IHNlY3VyZWRLdk5hbWUgPSB0aGlzLmdlbmVyYXRlUmVzb3VyY2VOYW1lKFxuICAgICAgXCJNaWNyb3NvZnQuS2V5VmF1bHQvdmF1bHRzXCIsXG4gICAgICBcInNlY1wiLFxuICAgICk7XG5cbiAgICAvLyBFeGFtcGxlIDE6IEJhc2ljIEtleSBWYXVsdCB1c2luZyBjdXJyZW50IHRlbmFudCBmcm9tIEFaQVBJIGNsaWVudCBjb25maWdcbiAgICBuZXcgS2V5VmF1bHQodGhpcywgXCJiYXNpYy1rZXl2YXVsdFwiLCB7XG4gICAgICBuYW1lOiBiYXNpY0t2TmFtZSxcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLnByb3BzLmxvY2F0aW9uISxcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIC8vIHNvZnREZWxldGVSZXRlbnRpb25JbkRheXMgbWluaW11bSA3IGtlZXBzIHRlc3QgY2xlYW51cCBxdWlja1xuICAgICAgc29mdERlbGV0ZVJldGVudGlvbkluRGF5czogNyxcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgLi4udGhpcy5zeXN0ZW1UYWdzKCksXG4gICAgICAgIGV4YW1wbGU6IFwiYmFzaWNcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBFeGFtcGxlIDI6IEtleSBWYXVsdCB3aXRoIHNwZWNpZmljIEFQSSB2ZXJzaW9uIGFuZCBQcmVtaXVtIFNLVVxuICAgIG5ldyBLZXlWYXVsdCh0aGlzLCBcInZlcnNpb25lZC1rZXl2YXVsdFwiLCB7XG4gICAgICBuYW1lOiB2ZXJzaW9uZWRLdk5hbWUsXG4gICAgICBsb2NhdGlvbjogcmVzb3VyY2VHcm91cC5wcm9wcy5sb2NhdGlvbiEsXG4gICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICBza3U6IHsgbmFtZTogXCJwcmVtaXVtXCIgfSxcbiAgICAgIGFwaVZlcnNpb246IFwiMjAyMy0wNy0wMVwiLFxuICAgICAgc29mdERlbGV0ZVJldGVudGlvbkluRGF5czogNyxcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgLi4udGhpcy5zeXN0ZW1UYWdzKCksXG4gICAgICAgIGV4YW1wbGU6IFwidmVyc2lvbmVkXCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gRXhhbXBsZSAzOiBLZXkgVmF1bHQgd2l0aCBoYXJkZW5lZCBuZXR3b3JrIGFuZCBzZWN1cml0eSBzZXR0aW5nc1xuICAgIG5ldyBLZXlWYXVsdCh0aGlzLCBcInNlY3VyZWQta2V5dmF1bHRcIiwge1xuICAgICAgbmFtZTogc2VjdXJlZEt2TmFtZSxcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLnByb3BzLmxvY2F0aW9uISxcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIHNrdTogeyBuYW1lOiBcInN0YW5kYXJkXCIgfSxcbiAgICAgIGVuYWJsZVJiYWNBdXRob3JpemF0aW9uOiB0cnVlLFxuICAgICAgZW5hYmxlU29mdERlbGV0ZTogdHJ1ZSxcbiAgICAgIHNvZnREZWxldGVSZXRlbnRpb25JbkRheXM6IDcsXG4gICAgICBwdWJsaWNOZXR3b3JrQWNjZXNzOiBcIkVuYWJsZWRcIixcbiAgICAgIG5ldHdvcmtBY2xzOiB7XG4gICAgICAgIGRlZmF1bHRBY3Rpb246IFwiQWxsb3dcIixcbiAgICAgICAgYnlwYXNzOiBcIkF6dXJlU2VydmljZXNcIixcbiAgICAgIH0sXG4gICAgICB0YWdzOiB7XG4gICAgICAgIC4uLnRoaXMuc3lzdGVtVGFncygpLFxuICAgICAgICBleGFtcGxlOiBcInNlY3VyZWRcIixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuZGVzY3JpYmUoXCJLZXkgVmF1bHQgSW50ZWdyYXRpb24gVGVzdFwiLCAoKSA9PiB7XG4gIGl0KFwic2hvdWxkIGRlcGxveSwgdmFsaWRhdGUgaWRlbXBvdGVuY3ksIGFuZCBjbGVhbnVwIGtleSB2YXVsdCByZXNvdXJjZXNcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgS2V5VmF1bHRFeGFtcGxlU3RhY2soYXBwLCBcInRlc3Qta2V5LXZhdWx0XCIpO1xuICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5mdWxsU3ludGgoc3RhY2spO1xuXG4gICAgLy8gVGhpcyB3aWxsOlxuICAgIC8vIDEuIFJ1biB0ZXJyYWZvcm0gYXBwbHkgdG8gZGVwbG95IHJlc291cmNlc1xuICAgIC8vIDIuIFJ1biB0ZXJyYWZvcm0gcGxhbiB0byBjaGVjayBpZGVtcG90ZW5jeSAobm8gY2hhbmdlcyBleHBlY3RlZClcbiAgICAvLyAzLiBSdW4gdGVycmFmb3JtIGRlc3Ryb3kgdG8gY2xlYW51cCByZXNvdXJjZXNcbiAgICBUZXJyYWZvcm1BcHBseUNoZWNrQW5kRGVzdHJveShzeW50aGVzaXplZCwgeyB2ZXJpZnlDbGVhbnVwOiB0cnVlIH0pO1xuICB9LCAxMjAwMDAwKTsgLy8gMjAgbWludXRlIHRpbWVvdXQgZm9yIGRlcGxveW1lbnQgYW5kIGNsZWFudXBcbn0pO1xuIl19
@@ -3,16 +3,16 @@
3
3
  * Unit tests for Azure Key Vault using AzapiResource framework
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const cdktf_1 = require("cdktf");
7
- const cdktf = require("cdktf");
6
+ const cdktn_1 = require("cdktn");
7
+ const cdktn = require("cdktn");
8
8
  const azure_resourcegroup_1 = require("../../azure-resourcegroup");
9
9
  const key_vault_1 = require("../lib/key-vault");
10
10
  describe("KeyVault", () => {
11
11
  let app;
12
12
  let stack;
13
13
  beforeEach(() => {
14
- app = cdktf_1.Testing.app();
15
- stack = new cdktf.TerraformStack(app, "TestStack");
14
+ app = cdktn_1.Testing.app();
15
+ stack = new cdktn.TerraformStack(app, "TestStack");
16
16
  });
17
17
  describe("constructor", () => {
18
18
  it("should create a key vault with required properties", () => {
@@ -97,11 +97,11 @@ describe("KeyVault", () => {
97
97
  tenantId: "00000000-0000-0000-0000-000000000000",
98
98
  };
99
99
  const keyVault = new key_vault_1.KeyVault(stack, "TestKv", props);
100
- expect(keyVault.idOutput).toBeInstanceOf(cdktf.TerraformOutput);
101
- expect(keyVault.locationOutput).toBeInstanceOf(cdktf.TerraformOutput);
102
- expect(keyVault.nameOutput).toBeInstanceOf(cdktf.TerraformOutput);
103
- expect(keyVault.tagsOutput).toBeInstanceOf(cdktf.TerraformOutput);
104
- expect(keyVault.vaultUriOutput).toBeInstanceOf(cdktf.TerraformOutput);
100
+ expect(keyVault.idOutput).toBeInstanceOf(cdktn.TerraformOutput);
101
+ expect(keyVault.locationOutput).toBeInstanceOf(cdktn.TerraformOutput);
102
+ expect(keyVault.nameOutput).toBeInstanceOf(cdktn.TerraformOutput);
103
+ expect(keyVault.tagsOutput).toBeInstanceOf(cdktn.TerraformOutput);
104
+ expect(keyVault.vaultUriOutput).toBeInstanceOf(cdktn.TerraformOutput);
105
105
  });
106
106
  it("should expose vaultUri property", () => {
107
107
  const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
@@ -254,11 +254,11 @@ describe("KeyVault", () => {
254
254
  },
255
255
  };
256
256
  new key_vault_1.KeyVault(stack, "TestKv", props);
257
- const synthesized = cdktf_1.Testing.synth(stack);
257
+ const synthesized = cdktn_1.Testing.synth(stack);
258
258
  expect(synthesized).toBeDefined();
259
259
  const stackConfig = JSON.parse(synthesized);
260
260
  expect(stackConfig.resource).toBeDefined();
261
261
  });
262
262
  });
263
263
  });
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LXZhdWx0LnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUta2V5dmF1bHQvdGVzdC9rZXktdmF1bHQuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7O0FBRUgsaUNBQWdDO0FBQ2hDLCtCQUErQjtBQUMvQixtRUFBMEQ7QUFDMUQsZ0RBQTJEO0FBRTNELFFBQVEsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO0lBQ3hCLElBQUksR0FBYyxDQUFDO0lBQ25CLElBQUksS0FBMkIsQ0FBQztJQUVoQyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsR0FBRyxHQUFHLGVBQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNwQixLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO1FBQzNCLEVBQUUsQ0FBQyxvREFBb0QsRUFBRSxHQUFHLEVBQUU7WUFDNUQsTUFBTSxFQUFFLEdBQUcsSUFBSSxtQ0FBYSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUU7Z0JBQzVDLElBQUksRUFBRSxTQUFTO2dCQUNmLFFBQVEsRUFBRSxRQUFRO2FBQ25CLENBQUMsQ0FBQztZQUVILE1BQU0sS0FBSyxHQUFrQjtnQkFDM0IsSUFBSSxFQUFFLG1CQUFtQjtnQkFDekIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLGVBQWUsRUFBRSxFQUFFLENBQUMsRUFBRTtnQkFDdEIsUUFBUSxFQUFFLHNDQUFzQzthQUNqRCxDQUFDO1lBRUYsTUFBTSxRQUFRLEdBQUcsSUFBSSxvQkFBUSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFdEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxvQkFBUSxDQUFDLENBQUM7WUFDMUMsTUFB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QUFXLEVBQUUsQ0FBQztZQUVsQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzVDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVbml0IHRlc3RzIGZvciBBenVyZSBLZXkgVmF1bHQgdXNpbmcgQXphcGlSZXNvdXJjZSBmcmFtZXdvcmtcbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiLi4vLi4vYXp1cmUtcmVzb3VyY2Vncm91cFwiO1xuaW1wb3J0IHsgS2V5VmF1bHQsIEtleVZhdWx0UHJvcHMgfSBmcm9tIFwiLi4vbGliL2tleS12YXVsdFwiO1xuXG5kZXNjcmliZShcIktleVZhdWx0XCIsICgpID0+IHtcbiAgbGV0IGFwcDogY2RrdGYuQXBwO1xuICBsZXQgc3RhY2s6IGNka3RmLlRlcnJhZm9ybVN0YWNrO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgc3RhY2sgPSBuZXcgY2RrdGYuVGVycmFmb3JtU3RhY2soYXBwLCBcIlRlc3RTdGFja1wiKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJjb25zdHJ1Y3RvclwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGEga2V5IHZhdWx0IHdpdGggcmVxdWlyZWQgcHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogS2V5VmF1bHRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWtleXZhdWx0LTAwMVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZy5pZCxcbiAgICAgICAgdGVuYW50SWQ6IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBrZXlWYXVsdCA9IG5ldyBLZXlWYXVsdChzdGFjaywgXCJUZXN0S3ZcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3Qoa2V5VmF1bHQpLnRvQmVJbnN0YW5jZU9mKEtleVZhdWx0KTtcbiAgICAgIGV4cGVjdChrZXlWYXVsdC5wcm9wcykudG9CZShwcm9wcyk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgYSBrZXkgdmF1bHQgd2l0aCBhbGwgcHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogS2V5VmF1bHRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWtleXZhdWx0LTAwMlwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZy5pZCxcbiAgICAgICAgdGVuYW50SWQ6IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gICAgICAgIHNrdTogeyBuYW1lOiBcInByZW1pdW1cIiwgZmFtaWx5OiBcIkFcIiB9LFxuICAgICAgICBlbmFibGVkRm9yRGVwbG95bWVudDogdHJ1ZSxcbiAgICAgICAgZW5hYmxlZEZvckRpc2tFbmNyeXB0aW9uOiB0cnVlLFxuICAgICAgICBlbmFibGVkRm9yVGVtcGxhdGVEZXBsb3ltZW50OiB0cnVlLFxuICAgICAgICBlbmFibGVSYmFjQXV0aG9yaXphdGlvbjogZmFsc2UsXG4gICAgICAgIGVuYWJsZVNvZnREZWxldGU6IHRydWUsXG4gICAgICAgIHNvZnREZWxldGVSZXRlbnRpb25JbkRheXM6IDMwLFxuICAgICAgICBlbmFibGVQdXJnZVByb3RlY3Rpb246IHRydWUsXG4gICAgICAgIHB1YmxpY05ldHdvcmtBY2Nlc3M6IFwiRGlzYWJsZWRcIixcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIGVudmlyb25tZW50OiBcInRlc3RcIixcbiAgICAgICAgICBwcm9qZWN0OiBcImNka3RmLWNvbnN0cnVjdHNcIixcbiAgICAgICAgfSxcbiAgICAgICAgbmV0d29ya0FjbHM6IHtcbiAgICAgICAgICBkZWZhdWx0QWN0aW9uOiBcIkRlbnlcIixcbiAgICAgICAgICBieXBhc3M6IFwiQXp1cmVTZXJ2aWNlc1wiLFxuICAgICAgICAgIGlwUnVsZXM6IFt7IHZhbHVlOiBcIjEuMi4zLjRcIiB9XSxcbiAgICAgICAgfSxcbiAgICAgICAgYWNjZXNzUG9saWNpZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZW5hbnRJZDogXCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcbiAgICAgICAgICAgIG9iamVjdElkOiBcIjExMTExMTExLTExMTEtMTExMS0xMTExLTExMTExMTExMTExMVwiLFxuICAgICAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICAgICAgc2VjcmV0czogW1wiZ2V0XCIsIFwibGlzdFwiXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGtleVZhdWx0ID0gbmV3IEtleVZhdWx0KHN0YWNrLCBcIlRlc3RLdlwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChrZXlWYXVsdC5wcm9wcykudG9CZShwcm9wcyk7XG4gICAgICBleHBlY3Qoa2V5VmF1bHQudGFncykudG9FcXVhbChwcm9wcy50YWdzKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHJlc29sdmUgdGVuYW50SWQgZnJvbSBBWkFQSSBjbGllbnQgY29uZmlnIHdoZW4gbm90IHNwZWNpZmllZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogS2V5VmF1bHRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWtleXZhdWx0LTAwM1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZy5pZCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGtleVZhdWx0ID0gbmV3IEtleVZhdWx0KHN0YWNrLCBcIlRlc3RLdlwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChrZXlWYXVsdCkudG9CZUluc3RhbmNlT2YoS2V5VmF1bHQpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIHRlcnJhZm9ybSBvdXRwdXRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJnID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJHXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHByb3BzOiBLZXlWYXVsdFByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3Qta2V5dmF1bHQtMDA0XCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJnLmlkLFxuICAgICAgICB0ZW5hbnRJZDogXCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGtleVZhdWx0ID0gbmV3IEtleVZhdWx0KHN0YWNrLCBcIlRlc3RLdlwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChrZXlWYXVsdC5pZE91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdGYuVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChrZXlWYXVsdC5sb2NhdGlvbk91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdGYuVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChrZXlWYXVsdC5uYW1lT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0Zi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KGtleVZhdWx0LnRhZ3NPdXRwdXQpLnRvQmVJbnN0YW5jZU9mKGNka3RmLlRlcnJhZm9ybU91dHB1dCk7XG4gICAgICBleHBlY3Qoa2V5VmF1bHQudmF1bHRVcmlPdXRwdXQpLnRvQmVJbnN0YW5jZU9mKGNka3RmLlRlcnJhZm9ybU91dHB1dCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBleHBvc2UgdmF1bHRVcmkgcHJvcGVydHlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcmcgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UkdcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcHJvcHM6IEtleVZhdWx0UHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1rZXl2YXVsdC0wMDVcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmcuaWQsXG4gICAgICAgIHRlbmFudElkOiBcIjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMFwiLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qga2V5VmF1bHQgPSBuZXcgS2V5VmF1bHQoc3RhY2ssIFwiVGVzdEt2XCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KGtleVZhdWx0LnZhdWx0VXJpKS50b0NvbnRhaW4oXCJ2YXVsdC5henVyZS5uZXRcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwidmFsaWRhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgcmVqZWN0IHNvZnREZWxldGVSZXRlbnRpb25JbkRheXMgYmVsb3cgN1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogS2V5VmF1bHRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWtleXZhdWx0LTAwNlwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZy5pZCxcbiAgICAgICAgdGVuYW50SWQ6IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gICAgICAgIHNvZnREZWxldGVSZXRlbnRpb25JbkRheXM6IDMsXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QoKCkgPT4gbmV3IEtleVZhdWx0KHN0YWNrLCBcIlRlc3RLdlwiLCBwcm9wcykpLnRvVGhyb3coXG4gICAgICAgIC9zb2Z0RGVsZXRlUmV0ZW50aW9uSW5EYXlzLyxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCByZWplY3Qgc29mdERlbGV0ZVJldGVudGlvbkluRGF5cyBhYm92ZSA5MFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogS2V5VmF1bHRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWtleXZhdWx0LTAwN1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZy5pZCxcbiAgICAgICAgdGVuYW50SWQ6IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gICAgICAgIHNvZnREZWxldGVSZXRlbnRpb25JbkRheXM6IDM2NSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdCgoKSA9PiBuZXcgS2V5VmF1bHQoc3RhY2ssIFwiVGVzdEt2XCIsIHByb3BzKSkudG9UaHJvdyhcbiAgICAgICAgL3NvZnREZWxldGVSZXRlbnRpb25JbkRheXMvLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJTS1UgY29uZmlndXJhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgYWNjZXB0IHN0YW5kYXJkIFNLVSBieSBkZWZhdWx0XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJnID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJHXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHByb3BzOiBLZXlWYXVsdFByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3Qta2V5dmF1bHQtMDA4XCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJnLmlkLFxuICAgICAgICB0ZW5hbnRJZDogXCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGtleVZhdWx0ID0gbmV3IEtleVZhdWx0KHN0YWNrLCBcIlRlc3RLdlwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChrZXlWYXVsdCkudG9CZUluc3RhbmNlT2YoS2V5VmF1bHQpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgYWNjZXB0IHByZW1pdW0gU0tVXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJnID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJHXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHByb3BzOiBLZXlWYXVsdFByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3Qta2V5dmF1bHQtMDA5XCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJnLmlkLFxuICAgICAgICB0ZW5hbnRJZDogXCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcbiAgICAgICAgc2t1OiB7IG5hbWU6IFwicHJlbWl1bVwiIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBrZXlWYXVsdCA9IG5ldyBLZXlWYXVsdChzdGFjaywgXCJUZXN0S3ZcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3Qoa2V5VmF1bHQucHJvcHMuc2t1Py5uYW1lKS50b0JlKFwicHJlbWl1bVwiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJ0YWcgbWFuYWdlbWVudFwiLCAoKSA9PiB7XG4gICAgbGV0IGtleVZhdWx0OiBLZXlWYXVsdDtcblxuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgY29uc3QgcmcgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UkdcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcHJvcHM6IEtleVZhdWx0UHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1rZXl2YXVsdC0wMTBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmcuaWQsXG4gICAgICAgIHRlbmFudElkOiBcIjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMFwiLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwidGVzdFwiLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAga2V5VmF1bHQgPSBuZXcgS2V5VmF1bHQoc3RhY2ssIFwiVGVzdEt2XCIsIHByb3BzKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGFkZCBhIHRhZ1wiLCAoKSA9PiB7XG4gICAgICBrZXlWYXVsdC5hZGRUYWcoXCJuZXdUYWdcIiwgXCJuZXdWYWx1ZVwiKTtcblxuICAgICAgZXhwZWN0KGtleVZhdWx0LnByb3BzLnRhZ3MhLm5ld1RhZykudG9CZShcIm5ld1ZhbHVlXCIpO1xuICAgICAgZXhwZWN0KGtleVZhdWx0LnByb3BzLnRhZ3MhLmVudmlyb25tZW50KS50b0JlKFwidGVzdFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHJlbW92ZSBhbiBleGlzdGluZyB0YWdcIiwgKCkgPT4ge1xuICAgICAga2V5VmF1bHQucmVtb3ZlVGFnKFwiZW52aXJvbm1lbnRcIik7XG5cbiAgICAgIGV4cGVjdChrZXlWYXVsdC5wcm9wcy50YWdzIS5lbnZpcm9ubWVudCkudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkFQSSB2ZXJzaW9uaW5nXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCB1c2UgZGVmYXVsdCB2ZXJzaW9uIHdoZW4gbm90IHNwZWNpZmllZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogS2V5VmF1bHRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWtleXZhdWx0LTAxMVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZy5pZCxcbiAgICAgICAgdGVuYW50SWQ6IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBrZXlWYXVsdCA9IG5ldyBLZXlWYXVsdChzdGFjaywgXCJUZXN0S3ZcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3Qoa2V5VmF1bHQucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNC0xMS0wMVwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGFjY2VwdCBzcGVjaWZpYyBBUEkgdmVyc2lvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogS2V5VmF1bHRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWtleXZhdWx0LTAxMlwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZy5pZCxcbiAgICAgICAgdGVuYW50SWQ6IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyMy0wNy0wMVwiLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qga2V5VmF1bHQgPSBuZXcgS2V5VmF1bHQoc3RhY2ssIFwiVGVzdEt2XCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KGtleVZhdWx0LnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjMtMDctMDFcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiQ0RLIFRlcnJhZm9ybSBpbnRlZ3JhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgc3ludGhlc2l6ZSB0byB2YWxpZCBUZXJyYWZvcm1cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcmcgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UkdcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcHJvcHM6IEtleVZhdWx0UHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1rZXl2YXVsdC0wMTNcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmcuaWQsXG4gICAgICAgIHRlbmFudElkOiBcIjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMFwiLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwidGVzdFwiLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgbmV3IEtleVZhdWx0KHN0YWNrLCBcIlRlc3RLdlwiLCBwcm9wcyk7XG5cbiAgICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5zeW50aChzdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQmVEZWZpbmVkKCk7XG5cbiAgICAgIGNvbnN0IHN0YWNrQ29uZmlnID0gSlNPTi5wYXJzZShzeW50aGVzaXplZCk7XG4gICAgICBleHBlY3Qoc3RhY2tDb25maWcucmVzb3VyY2UpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LXZhdWx0LnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUta2V5dmF1bHQvdGVzdC9rZXktdmF1bHQuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7O0FBRUgsaUNBQWdDO0FBQ2hDLCtCQUErQjtBQUMvQixtRUFBMEQ7QUFDMUQsZ0RBQTJEO0FBRTNELFFBQVEsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO0lBQ3hCLElBQUksR0FBYyxDQUFDO0lBQ25CLElBQUksS0FBMkIsQ0FBQztJQUVoQyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsR0FBRyxHQUFHLGVBQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNwQixLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO1FBQzNCLEVBQUUsQ0FBQyxvREFBb0QsRUFBRSxHQUFHLEVBQUU7WUFDNUQsTUFBTSxFQUFFLEdBQUcsSUFBSSxtQ0FBYSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUU7Z0JBQzVDLElBQUksRUFBRSxTQUFTO2dCQUNmLFFBQVEsRUFBRSxRQUFRO2FBQ25CLENBQUMsQ0FBQztZQUVILE1BQU0sS0FBSyxHQUFrQjtnQkFDM0IsSUFBSSxFQUFFLG1CQUFtQjtnQkFDekIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLGVBQWUsRUFBRSxFQUFFLENBQUMsRUFBRTtnQkFDdEIsUUFBUSxFQUFFLHNDQUFzQzthQUNqRCxDQUFDO1lBRUYsTUFBTSxRQUFRLEdBQUcsSUFBSSxvQkFBUSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFdEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxvQkFBUSxDQUFDLENBQUM7WUFDMUMsTUFB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QUFXLEVBQUUsQ0FBQztZQUVsQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzVDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVbml0IHRlc3RzIGZvciBBenVyZSBLZXkgVmF1bHQgdXNpbmcgQXphcGlSZXNvdXJjZSBmcmFtZXdvcmtcbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgKiBhcyBjZGt0biBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiLi4vLi4vYXp1cmUtcmVzb3VyY2Vncm91cFwiO1xuaW1wb3J0IHsgS2V5VmF1bHQsIEtleVZhdWx0UHJvcHMgfSBmcm9tIFwiLi4vbGliL2tleS12YXVsdFwiO1xuXG5kZXNjcmliZShcIktleVZhdWx0XCIsICgpID0+IHtcbiAgbGV0IGFwcDogY2RrdG4uQXBwO1xuICBsZXQgc3RhY2s6IGNka3RuLlRlcnJhZm9ybVN0YWNrO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgc3RhY2sgPSBuZXcgY2RrdG4uVGVycmFmb3JtU3RhY2soYXBwLCBcIlRlc3RTdGFja1wiKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJjb25zdHJ1Y3RvclwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGEga2V5IHZhdWx0IHdpdGggcmVxdWlyZWQgcHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogS2V5VmF1bHRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWtleXZhdWx0LTAwMVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZy5pZCxcbiAgICAgICAgdGVuYW50SWQ6IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBrZXlWYXVsdCA9IG5ldyBLZXlWYXVsdChzdGFjaywgXCJUZXN0S3ZcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3Qoa2V5VmF1bHQpLnRvQmVJbnN0YW5jZU9mKEtleVZhdWx0KTtcbiAgICAgIGV4cGVjdChrZXlWYXVsdC5wcm9wcykudG9CZShwcm9wcyk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgYSBrZXkgdmF1bHQgd2l0aCBhbGwgcHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogS2V5VmF1bHRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWtleXZhdWx0LTAwMlwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZy5pZCxcbiAgICAgICAgdGVuYW50SWQ6IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gICAgICAgIHNrdTogeyBuYW1lOiBcInByZW1pdW1cIiwgZmFtaWx5OiBcIkFcIiB9LFxuICAgICAgICBlbmFibGVkRm9yRGVwbG95bWVudDogdHJ1ZSxcbiAgICAgICAgZW5hYmxlZEZvckRpc2tFbmNyeXB0aW9uOiB0cnVlLFxuICAgICAgICBlbmFibGVkRm9yVGVtcGxhdGVEZXBsb3ltZW50OiB0cnVlLFxuICAgICAgICBlbmFibGVSYmFjQXV0aG9yaXphdGlvbjogZmFsc2UsXG4gICAgICAgIGVuYWJsZVNvZnREZWxldGU6IHRydWUsXG4gICAgICAgIHNvZnREZWxldGVSZXRlbnRpb25JbkRheXM6IDMwLFxuICAgICAgICBlbmFibGVQdXJnZVByb3RlY3Rpb246IHRydWUsXG4gICAgICAgIHB1YmxpY05ldHdvcmtBY2Nlc3M6IFwiRGlzYWJsZWRcIixcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIGVudmlyb25tZW50OiBcInRlc3RcIixcbiAgICAgICAgICBwcm9qZWN0OiBcImNka3RmLWNvbnN0cnVjdHNcIixcbiAgICAgICAgfSxcbiAgICAgICAgbmV0d29ya0FjbHM6IHtcbiAgICAgICAgICBkZWZhdWx0QWN0aW9uOiBcIkRlbnlcIixcbiAgICAgICAgICBieXBhc3M6IFwiQXp1cmVTZXJ2aWNlc1wiLFxuICAgICAgICAgIGlwUnVsZXM6IFt7IHZhbHVlOiBcIjEuMi4zLjRcIiB9XSxcbiAgICAgICAgfSxcbiAgICAgICAgYWNjZXNzUG9saWNpZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZW5hbnRJZDogXCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcbiAgICAgICAgICAgIG9iamVjdElkOiBcIjExMTExMTExLTExMTEtMTExMS0xMTExLTExMTExMTExMTExMVwiLFxuICAgICAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICAgICAgc2VjcmV0czogW1wiZ2V0XCIsIFwibGlzdFwiXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGtleVZhdWx0ID0gbmV3IEtleVZhdWx0KHN0YWNrLCBcIlRlc3RLdlwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChrZXlWYXVsdC5wcm9wcykudG9CZShwcm9wcyk7XG4gICAgICBleHBlY3Qoa2V5VmF1bHQudGFncykudG9FcXVhbChwcm9wcy50YWdzKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHJlc29sdmUgdGVuYW50SWQgZnJvbSBBWkFQSSBjbGllbnQgY29uZmlnIHdoZW4gbm90IHNwZWNpZmllZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogS2V5VmF1bHRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWtleXZhdWx0LTAwM1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZy5pZCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGtleVZhdWx0ID0gbmV3IEtleVZhdWx0KHN0YWNrLCBcIlRlc3RLdlwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChrZXlWYXVsdCkudG9CZUluc3RhbmNlT2YoS2V5VmF1bHQpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIHRlcnJhZm9ybSBvdXRwdXRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJnID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJHXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHByb3BzOiBLZXlWYXVsdFByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3Qta2V5dmF1bHQtMDA0XCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJnLmlkLFxuICAgICAgICB0ZW5hbnRJZDogXCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGtleVZhdWx0ID0gbmV3IEtleVZhdWx0KHN0YWNrLCBcIlRlc3RLdlwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChrZXlWYXVsdC5pZE91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdG4uVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChrZXlWYXVsdC5sb2NhdGlvbk91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdG4uVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChrZXlWYXVsdC5uYW1lT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0bi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KGtleVZhdWx0LnRhZ3NPdXRwdXQpLnRvQmVJbnN0YW5jZU9mKGNka3RuLlRlcnJhZm9ybU91dHB1dCk7XG4gICAgICBleHBlY3Qoa2V5VmF1bHQudmF1bHRVcmlPdXRwdXQpLnRvQmVJbnN0YW5jZU9mKGNka3RuLlRlcnJhZm9ybU91dHB1dCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBleHBvc2UgdmF1bHRVcmkgcHJvcGVydHlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcmcgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UkdcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcHJvcHM6IEtleVZhdWx0UHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1rZXl2YXVsdC0wMDVcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmcuaWQsXG4gICAgICAgIHRlbmFudElkOiBcIjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMFwiLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qga2V5VmF1bHQgPSBuZXcgS2V5VmF1bHQoc3RhY2ssIFwiVGVzdEt2XCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KGtleVZhdWx0LnZhdWx0VXJpKS50b0NvbnRhaW4oXCJ2YXVsdC5henVyZS5uZXRcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwidmFsaWRhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgcmVqZWN0IHNvZnREZWxldGVSZXRlbnRpb25JbkRheXMgYmVsb3cgN1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogS2V5VmF1bHRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWtleXZhdWx0LTAwNlwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZy5pZCxcbiAgICAgICAgdGVuYW50SWQ6IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gICAgICAgIHNvZnREZWxldGVSZXRlbnRpb25JbkRheXM6IDMsXG4gICAgICB9O1xuXG4gICAgICBleHBlY3QoKCkgPT4gbmV3IEtleVZhdWx0KHN0YWNrLCBcIlRlc3RLdlwiLCBwcm9wcykpLnRvVGhyb3coXG4gICAgICAgIC9zb2Z0RGVsZXRlUmV0ZW50aW9uSW5EYXlzLyxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCByZWplY3Qgc29mdERlbGV0ZVJldGVudGlvbkluRGF5cyBhYm92ZSA5MFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogS2V5VmF1bHRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWtleXZhdWx0LTAwN1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZy5pZCxcbiAgICAgICAgdGVuYW50SWQ6IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gICAgICAgIHNvZnREZWxldGVSZXRlbnRpb25JbkRheXM6IDM2NSxcbiAgICAgIH07XG5cbiAgICAgIGV4cGVjdCgoKSA9PiBuZXcgS2V5VmF1bHQoc3RhY2ssIFwiVGVzdEt2XCIsIHByb3BzKSkudG9UaHJvdyhcbiAgICAgICAgL3NvZnREZWxldGVSZXRlbnRpb25JbkRheXMvLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJTS1UgY29uZmlndXJhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgYWNjZXB0IHN0YW5kYXJkIFNLVSBieSBkZWZhdWx0XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJnID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJHXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHByb3BzOiBLZXlWYXVsdFByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3Qta2V5dmF1bHQtMDA4XCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJnLmlkLFxuICAgICAgICB0ZW5hbnRJZDogXCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGtleVZhdWx0ID0gbmV3IEtleVZhdWx0KHN0YWNrLCBcIlRlc3RLdlwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChrZXlWYXVsdCkudG9CZUluc3RhbmNlT2YoS2V5VmF1bHQpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgYWNjZXB0IHByZW1pdW0gU0tVXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJnID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJHXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHByb3BzOiBLZXlWYXVsdFByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3Qta2V5dmF1bHQtMDA5XCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJnLmlkLFxuICAgICAgICB0ZW5hbnRJZDogXCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcbiAgICAgICAgc2t1OiB7IG5hbWU6IFwicHJlbWl1bVwiIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBrZXlWYXVsdCA9IG5ldyBLZXlWYXVsdChzdGFjaywgXCJUZXN0S3ZcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3Qoa2V5VmF1bHQucHJvcHMuc2t1Py5uYW1lKS50b0JlKFwicHJlbWl1bVwiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJ0YWcgbWFuYWdlbWVudFwiLCAoKSA9PiB7XG4gICAgbGV0IGtleVZhdWx0OiBLZXlWYXVsdDtcblxuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgY29uc3QgcmcgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UkdcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcHJvcHM6IEtleVZhdWx0UHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1rZXl2YXVsdC0wMTBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmcuaWQsXG4gICAgICAgIHRlbmFudElkOiBcIjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMFwiLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwidGVzdFwiLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAga2V5VmF1bHQgPSBuZXcgS2V5VmF1bHQoc3RhY2ssIFwiVGVzdEt2XCIsIHByb3BzKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGFkZCBhIHRhZ1wiLCAoKSA9PiB7XG4gICAgICBrZXlWYXVsdC5hZGRUYWcoXCJuZXdUYWdcIiwgXCJuZXdWYWx1ZVwiKTtcblxuICAgICAgZXhwZWN0KGtleVZhdWx0LnByb3BzLnRhZ3MhLm5ld1RhZykudG9CZShcIm5ld1ZhbHVlXCIpO1xuICAgICAgZXhwZWN0KGtleVZhdWx0LnByb3BzLnRhZ3MhLmVudmlyb25tZW50KS50b0JlKFwidGVzdFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHJlbW92ZSBhbiBleGlzdGluZyB0YWdcIiwgKCkgPT4ge1xuICAgICAga2V5VmF1bHQucmVtb3ZlVGFnKFwiZW52aXJvbm1lbnRcIik7XG5cbiAgICAgIGV4cGVjdChrZXlWYXVsdC5wcm9wcy50YWdzIS5lbnZpcm9ubWVudCkudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkFQSSB2ZXJzaW9uaW5nXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCB1c2UgZGVmYXVsdCB2ZXJzaW9uIHdoZW4gbm90IHNwZWNpZmllZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogS2V5VmF1bHRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWtleXZhdWx0LTAxMVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZy5pZCxcbiAgICAgICAgdGVuYW50SWQ6IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBrZXlWYXVsdCA9IG5ldyBLZXlWYXVsdChzdGFjaywgXCJUZXN0S3ZcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3Qoa2V5VmF1bHQucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNC0xMS0wMVwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGFjY2VwdCBzcGVjaWZpYyBBUEkgdmVyc2lvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogS2V5VmF1bHRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWtleXZhdWx0LTAxMlwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZy5pZCxcbiAgICAgICAgdGVuYW50SWQ6IFwiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyMy0wNy0wMVwiLFxuICAgICAgfTtcblxuICAgICAgY29uc3Qga2V5VmF1bHQgPSBuZXcgS2V5VmF1bHQoc3RhY2ssIFwiVGVzdEt2XCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KGtleVZhdWx0LnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjMtMDctMDFcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiQ0RLIFRlcnJhZm9ybSBpbnRlZ3JhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgc3ludGhlc2l6ZSB0byB2YWxpZCBUZXJyYWZvcm1cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcmcgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UkdcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcHJvcHM6IEtleVZhdWx0UHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1rZXl2YXVsdC0wMTNcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmcuaWQsXG4gICAgICAgIHRlbmFudElkOiBcIjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMFwiLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwidGVzdFwiLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgbmV3IEtleVZhdWx0KHN0YWNrLCBcIlRlc3RLdlwiLCBwcm9wcyk7XG5cbiAgICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5zeW50aChzdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQmVEZWZpbmVkKCk7XG5cbiAgICAgIGNvbnN0IHN0YWNrQ29uZmlnID0gSlNPTi5wYXJzZShzeW50aGVzaXplZCk7XG4gICAgICBleHBlY3Qoc3RhY2tDb25maWcucmVzb3VyY2UpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -18,7 +18,7 @@
18
18
  * - Public network access controls
19
19
  * - Workspace features configuration
20
20
  */
21
- import * as cdktf from "cdktf";
21
+ import * as cdktf from "cdktn";
22
22
  import { Construct } from "constructs";
23
23
  import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
24
24
  import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
@@ -23,7 +23,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
23
23
  * - Public network access controls
24
24
  * - Workspace features configuration
25
25
  */
26
- const cdktf = require("cdktf");
26
+ const cdktf = require("cdktn");
27
27
  const log_analytics_workspace_schemas_1 = require("./log-analytics-workspace-schemas");
28
28
  const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
29
29
  /**
@@ -206,8 +206,8 @@ class LogAnalyticsWorkspace extends azapi_resource_1.AzapiResource {
206
206
  }
207
207
  exports.LogAnalyticsWorkspace = LogAnalyticsWorkspace;
208
208
  _a = JSII_RTTI_SYMBOL_1;
209
- LogAnalyticsWorkspace[_a] = { fqn: "@microsoft/terraform-cdk-constructs.LogAnalyticsWorkspace", version: "1.10.0" };
209
+ LogAnalyticsWorkspace[_a] = { fqn: "@microsoft/terraform-cdk-constructs.LogAnalyticsWorkspace", version: "2.5.0" };
210
210
  (() => {
211
211
  azapi_resource_1.AzapiResource.registerSchemas(log_analytics_workspace_schemas_1.LOG_ANALYTICS_WORKSPACE_TYPE, log_analytics_workspace_schemas_1.ALL_LOG_ANALYTICS_WORKSPACE_VERSIONS);
212
212
  })();
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWFuYWx5dGljcy13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtbG9nYW5hbHl0aWNzd29ya3NwYWNlL2xpYi9sb2ctYW5hbHl0aWNzLXdvcmtzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBRUgsK0JBQStCO0FBRS9CLHVGQUcyQztBQUMzQyw4RUFHbUQ7QUE2TW5EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSw4QkFBYTtJQW1CdEQ7Ozs7Ozs7OztPQVNHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQztRQUN6RSxzQ0FBc0M7UUFDdEMsSUFBSSxLQUFLLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLElBQUksS0FBSyxDQUFDLGVBQWUsR0FBRyxFQUFFLElBQUksS0FBSyxDQUFDLGVBQWUsR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDOUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1lBQ3JFLENBQUM7UUFDSCxDQUFDO1FBRUQseUVBQXlFO1FBQ3pFLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEtBQUsscUJBQXFCLEVBQUUsQ0FBQztZQUM5QyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoRSxJQUNFLEtBQUssQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEtBQUssU0FBUztnQkFDaEQsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsRUFDekQsQ0FBQztn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UUFBUSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUNqRCxDQUFDO1FBRUQsSUFBSSxVQUFVLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLENBQUM7UUFDakUsQ0FBQztRQUVELElBQUksVUFBVSxDQUFDLG1DQUFtQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQ0FBbUM7Z0JBQ2pELFVBQVUsQ0FBQyxtQ0FBbUMsQ0FBQztRQUNuRCxDQUFDO1FBRUQsNkNBQTZDO1FBQzdDLElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUN0QyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ08sZUFBZSxDQUFDLEtBQVU7UUFDbEMsT0FBUSxLQUFvQyxDQUFDLGVBQWUsQ0FBQztJQUMvRCxDQUFDOztBQTNLSCxzREE0S0M7OztBQTNLQztJQUNFLDhCQUFhLENBQUMsZUFBZSxDQUMzQiw4REFBNEIsRUFDNUIsc0VBQW9DLENBQ3JDLENBQUM7QUFDSixDQUFDLEdBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVW5pZmllZCBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBpbXBsZW1lbnRhdGlvbiB1c2luZyBBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSB2ZXJzaW9uLWF3YXJlIGltcGxlbWVudGF0aW9uIGZvciBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICogdGhhdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiBtYW5hZ2VtZW50LCBzY2hlbWEgdmFsaWRhdGlvbiwgYW5kIHByb3BlcnR5XG4gKiB0cmFuc2Zvcm1hdGlvbiBhY3Jvc3MgYWxsIHN1cHBvcnRlZCBBUEkgdmVyc2lvbnMuXG4gKlxuICogU3VwcG9ydGVkIEFQSSBWZXJzaW9uczpcbiAqIC0gMjAyMy0wOS0wMSAoQWN0aXZlLCBMYXRlc3QpXG4gKiAtIDIwMjItMTAtMDEgKEFjdGl2ZSwgQmFja3dhcmQgQ29tcGF0aWJpbGl0eSlcbiAqXG4gKiBGZWF0dXJlczpcbiAqIC0gQXV0b21hdGljIGxhdGVzdCB2ZXJzaW9uIHJlc29sdXRpb24gd2hlbiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICogLSBFeHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgZm9yIHN0YWJpbGl0eSByZXF1aXJlbWVudHNcbiAqIC0gU2NoZW1hLWRyaXZlbiB2YWxpZGF0aW9uIGFuZCB0cmFuc2Zvcm1hdGlvblxuICogLSBGdWxsIEpTSUkgY29tcGxpYW5jZSBmb3IgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuICogLSBDb25maWd1cmFibGUgZGF0YSByZXRlbnRpb24sIFNLVSwgYW5kIHdvcmtzcGFjZSBjYXBwaW5nXG4gKiAtIFB1YmxpYyBuZXR3b3JrIGFjY2VzcyBjb250cm9sc1xuICogLSBXb3Jrc3BhY2UgZmVhdHVyZXMgY29uZmlndXJhdGlvblxuICovXG5cbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEFMTF9MT0dfQU5BTFlUSUNTX1dPUktTUEFDRV9WRVJTSU9OUyxcbiAgTE9HX0FOQUxZVElDU19XT1JLU1BBQ0VfVFlQRSxcbn0gZnJvbSBcIi4vbG9nLWFuYWx5dGljcy13b3Jrc3BhY2Utc2NoZW1hc1wiO1xuaW1wb3J0IHtcbiAgQXphcGlSZXNvdXJjZSxcbiAgQXphcGlSZXNvdXJjZVByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvYXphcGktcmVzb3VyY2VcIjtcbmltcG9ydCB7IEFwaVNjaGVtYSB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLyoqXG4gKiBTS1UgY29uZmlndXJhdGlvbiBmb3IgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VTa3Uge1xuICAvKipcbiAgICogU0tVIG5hbWUgZm9yIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICAgKlxuICAgKiBBdmFpbGFibGUgb3B0aW9uczpcbiAgICogLSBcIkZyZWVcIiAtIEZyZWUgdGllciAobGltaXRlZCB0byA1MDBNQi9kYXksIDcgZGF5IHJldGVudGlvbilcbiAgICogLSBcIlN0YW5kYXJkXCIgLSBTdGFuZGFyZCB0aWVyIChsZWdhY3kpXG4gICAqIC0gXCJQcmVtaXVtXCIgLSBQcmVtaXVtIHRpZXIgKGxlZ2FjeSlcbiAgICogLSBcIlBlck5vZGVcIiAtIFBlciBub2RlIHByaWNpbmcgKGxlZ2FjeSwgZm9yIE9NUyBjdXN0b21lcnMpXG4gICAqIC0gXCJQZXJHQjIwMThcIiAtIFBheS1hcy15b3UtZ28gcHJpY2luZyBiYXNlZCBvbiBkYXRhIGluZ2VzdGlvblxuICAgKiAtIFwiU3RhbmRhbG9uZVwiIC0gU3RhbmRhbG9uZSB0aWVyIChsZWdhY3kpXG4gICAqIC0gXCJDYXBhY2l0eVJlc2VydmF0aW9uXCIgLSBDb21taXRtZW50IHRpZXIgd2l0aCByZXNlcnZlZCBjYXBhY2l0eVxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIFwiUGVyR0IyMDE4XCJcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6XG4gICAgfCBcIkZyZWVcIlxuICAgIHwgXCJTdGFuZGFyZFwiXG4gICAgfCBcIlByZW1pdW1cIlxuICAgIHwgXCJQZXJOb2RlXCJcbiAgICB8IFwiUGVyR0IyMDE4XCJcbiAgICB8IFwiU3RhbmRhbG9uZVwiXG4gICAgfCBcIkNhcGFjaXR5UmVzZXJ2YXRpb25cIjtcblxuICAvKipcbiAgICogQ2FwYWNpdHkgcmVzZXJ2YXRpb24gbGV2ZWwgaW4gR0IgcGVyIGRheVxuICAgKiBPbmx5IGFwcGxpY2FibGUgd2hlbiBTS1UgbmFtZSBpcyBcIkNhcGFjaXR5UmVzZXJ2YXRpb25cIlxuICAgKiBWYWxpZCB2YWx1ZXM6IDEwMCwgMjAwLCAzMDAsIDQwMCwgNTAwLCAxMDAwLCAyMDAwLCA1MDAwXG4gICAqL1xuICByZWFkb25seSBjYXBhY2l0eVJlc2VydmF0aW9uTGV2ZWw/OiBudW1iZXI7XG59XG5cbi8qKlxuICogV29ya3NwYWNlIGNhcHBpbmcgY29uZmlndXJhdGlvbiBmb3IgZGFpbHkgZGF0YSBpbmdlc3Rpb24gbGltaXRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nQW5hbHl0aWNzV29ya3NwYWNlQ2FwcGluZyB7XG4gIC8qKlxuICAgKiBEYWlseSB2b2x1bWUgY2FwIGluIEdCXG4gICAqIEEgdmFsdWUgb2YgLTEgbWVhbnMgbm8gY2FwXG4gICAqL1xuICByZWFkb25seSBkYWlseVF1b3RhR2I6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBXb3Jrc3BhY2UgZmVhdHVyZXMgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ0FuYWx5dGljc1dvcmtzcGFjZUZlYXR1cmVzIHtcbiAgLyoqXG4gICAqIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIGRhdGEgZXhwb3J0IGlzIGVuYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZURhdGFFeHBvcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciBkYXRhIHNob3VsZCBiZSBpbW1lZGlhdGVseSBwdXJnZWQgYWZ0ZXIgMzAgZGF5c1xuICAgKiBpbnN0ZWFkIG9mIHRoZSBjb25maWd1cmVkIHJldGVudGlvbiBwZXJpb2RcbiAgICovXG4gIHJlYWRvbmx5IGltbWVkaWF0ZVB1cmdlRGF0YU9uMzBEYXlzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgbG9nIGFjY2VzcyB1c2luZyBBQURJQU0gaXMgZGlzYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVMb2NhbEF1dGg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciBjbHVzdGVyIHJlc291cmNlIHBlcm1pc3Npb25zIGFyZSBlbmFibGVkXG4gICAqL1xuICByZWFkb25seSBlbmFibGVMb2dBY2Nlc3NVc2luZ09ubHlSZXNvdXJjZVBlcm1pc3Npb25zPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNYW5hZ2VkIGlkZW50aXR5IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB3b3Jrc3BhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VJZGVudGl0eSB7XG4gIC8qKlxuICAgKiBUeXBlIG9mIG1hbmFnZWQgaWRlbnRpdHlcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6XG4gICAgfCBcIlN5c3RlbUFzc2lnbmVkXCJcbiAgICB8IFwiVXNlckFzc2lnbmVkXCJcbiAgICB8IFwiU3lzdGVtQXNzaWduZWQsVXNlckFzc2lnbmVkXCJcbiAgICB8IFwiTm9uZVwiO1xuXG4gIC8qKlxuICAgKiBVc2VyLWFzc2lnbmVkIGlkZW50aXR5IHJlc291cmNlIElEc1xuICAgKiBSZXF1aXJlZCB3aGVuIHR5cGUgaW5jbHVkZXMgVXNlckFzc2lnbmVkXG4gICAqL1xuICByZWFkb25seSB1c2VyQXNzaWduZWRJZGVudGl0aWVzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgdW5pZmllZCBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICpcbiAqIEV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHdpdGggTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2Ugc3BlY2lmaWMgcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ0FuYWx5dGljc1dvcmtzcGFjZVByb3BzIGV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIFJlc291cmNlIEdyb3VwIElEIHdoZXJlIHRoZSB3b3Jrc3BhY2Ugd2lsbCBiZSBjcmVhdGVkXG4gICAqIFRoZSB3b3Jrc3BhY2Ugd2lsbCBiZSBjcmVhdGVkIGFzIGEgY2hpbGQgb2YgdGhpcyByZXNvdXJjZSBncm91cFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERhdGEgcmV0ZW50aW9uIHBlcmlvZCBpbiBkYXlzXG4gICAqXG4gICAqIFZhbHVlcyBiZXR3ZWVuIDMwIGFuZCA3MzAgYXJlIHN1cHBvcnRlZCBmb3IgcGF5LWFzLXlvdS1nbyBwcmljaW5nLlxuICAgKiBGcmVlIHRpZXIgaXMgbGltaXRlZCB0byA3IGRheXMuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgMzBcbiAgICovXG4gIHJlYWRvbmx5IHJldGVudGlvbkluRGF5cz86IG51bWJlcjtcblxuICAvKipcbiAgICogU0tVIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB3b3Jrc3BhY2VcbiAgICpcbiAgICogRGV0ZXJtaW5lcyBwcmljaW5nIHRpZXIgYW5kIGNhcGFiaWxpdGllcyBvZiB0aGUgd29ya3NwYWNlLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHsgbmFtZTogXCJQZXJHQjIwMThcIiB9XG4gICAqL1xuICByZWFkb25seSBza3U/OiBMb2dBbmFseXRpY3NXb3Jrc3BhY2VTa3U7XG5cbiAgLyoqXG4gICAqIERhaWx5IHZvbHVtZSBjYXAgZm9yIGRhdGEgaW5nZXN0aW9uXG4gICAqXG4gICAqIFdoZW4gdGhlIGRhaWx5IGNhcCBpcyByZWFjaGVkLCBkYXRhIGluZ2VzdGlvbiBzdG9wcyB1bnRpbCB0aGUgbmV4dCBkYXkuXG4gICAqIEEgdmFsdWUgb2YgZGFpbHlRdW90YUdiOiAtMSBtZWFucyBubyBjYXAuXG4gICAqL1xuICByZWFkb25seSB3b3Jrc3BhY2VDYXBwaW5nPzogTG9nQW5hbHl0aWNzV29ya3NwYWNlQ2FwcGluZztcblxuICAvKipcbiAgICogUHVibGljIG5ldHdvcmsgYWNjZXNzIGZvciBkYXRhIGluZ2VzdGlvblxuICAgKlxuICAgKiBDb250cm9scyB3aGV0aGVyIGRhdGEgY2FuIGJlIGluZ2VzdGVkIG92ZXIgdGhlIHB1YmxpYyBpbnRlcm5ldC5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBcIkVuYWJsZWRcIlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzc0ZvckluZ2VzdGlvbj86IFwiRW5hYmxlZFwiIHwgXCJEaXNhYmxlZFwiO1xuXG4gIC8qKlxuICAgKiBQdWJsaWMgbmV0d29yayBhY2Nlc3MgZm9yIHF1ZXJ5aW5nIGRhdGFcbiAgICpcbiAgICogQ29udHJvbHMgd2hldGhlciBxdWVyaWVzIGNhbiBiZSBleGVjdXRlZCBvdmVyIHRoZSBwdWJsaWMgaW50ZXJuZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgXCJFbmFibGVkXCJcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY05ldHdvcmtBY2Nlc3NGb3JRdWVyeT86IFwiRW5hYmxlZFwiIHwgXCJEaXNhYmxlZFwiO1xuXG4gIC8qKlxuICAgKiBXb3Jrc3BhY2UgZmVhdHVyZXMgY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIHNwZWNpZmljIHdvcmtzcGFjZSBmZWF0dXJlcyBsaWtlIGRhdGEgZXhwb3J0LFxuICAgKiBpbW1lZGlhdGUgcHVyZ2UsIGFuZCBsb2NhbCBhdXRoZW50aWNhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGZlYXR1cmVzPzogTG9nQW5hbHl0aWNzV29ya3NwYWNlRmVhdHVyZXM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY3VzdG9tZXItbWFuYWdlZCBrZXlzIGFyZSByZXF1aXJlZCBmb3Igc2F2ZWQgc2VhcmNoZXMgYW5kIGFsZXJ0c1xuICAgKlxuICAgKiBXaGVuIGVuYWJsZWQsIGFsbCBzYXZlZCBzZWFyY2hlcyBhbmQgYWxlcnRzIG11c3QgdXNlIGN1c3RvbWVyLW1hbmFnZWQga2V5cy5cbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlQ21rRm9yUXVlcnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZSBJRCBvZiB0aGUgZGVmYXVsdCBEYXRhIENvbGxlY3Rpb24gUnVsZVxuICAgKlxuICAgKiBBc3NvY2lhdGVzIGEgZGVmYXVsdCBEQ1Igd2l0aCB0aGUgd29ya3NwYWNlIGZvciBkYXRhIGNvbGxlY3Rpb24uXG4gICAqIE9ubHkgYXZhaWxhYmxlIGluIEFQSSB2ZXJzaW9uIDIwMjMtMDktMDEgYW5kIGxhdGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1hbmFnZWQgaWRlbnRpdHkgY29uZmlndXJhdGlvbiBmb3IgdGhlIHdvcmtzcGFjZVxuICAgKlxuICAgKiBFbmFibGVzIG1hbmFnZWQgaWRlbnRpdHkgYXV0aGVudGljYXRpb24gZm9yIHRoZSB3b3Jrc3BhY2UuXG4gICAqL1xuICByZWFkb25seSBpZGVudGl0eT86IExvZ0FuYWx5dGljc1dvcmtzcGFjZUlkZW50aXR5O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSByZXF1ZXN0IGJvZHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VCb2R5UHJvcGVydGllcyB7XG4gIHJlYWRvbmx5IHJldGVudGlvbkluRGF5cz86IG51bWJlcjtcbiAgcmVhZG9ubHkgc2t1PzogTG9nQW5hbHl0aWNzV29ya3NwYWNlU2t1O1xuICByZWFkb25seSB3b3Jrc3BhY2VDYXBwaW5nPzogTG9nQW5hbHl0aWNzV29ya3NwYWNlQ2FwcGluZztcbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzc0ZvckluZ2VzdGlvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzc0ZvclF1ZXJ5Pzogc3RyaW5nO1xuICByZWFkb25seSBmZWF0dXJlcz86IExvZ0FuYWx5dGljc1dvcmtzcGFjZUZlYXR1cmVzO1xuICByZWFkb25seSBmb3JjZUNta0ZvclF1ZXJ5PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHJlc291cmNlIGJvZHkgaW50ZXJmYWNlIGZvciBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBBUEkgY2FsbHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VCb2R5IHtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogTG9nQW5hbHl0aWNzV29ya3NwYWNlQm9keVByb3BlcnRpZXM7XG4gIHJlYWRvbmx5IGlkZW50aXR5PzogTG9nQW5hbHl0aWNzV29ya3NwYWNlSWRlbnRpdHk7XG59XG5cbi8qKlxuICogVW5pZmllZCBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBpbXBsZW1lbnRhdGlvblxuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBzaW5nbGUsIHZlcnNpb24tYXdhcmUgaW1wbGVtZW50YXRpb24gdGhhdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvblxuICogcmVzb2x1dGlvbiwgc2NoZW1hIHZhbGlkYXRpb24sIGFuZCBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbiB3aGlsZSBtYWludGFpbmluZyBmdWxsIEpTSUkgY29tcGxpYW5jZS5cbiAqXG4gKiBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBpcyB0aGUgY2VudHJhbCBkZXN0aW5hdGlvbiBmb3IgbG9nIGRhdGEgZnJvbSBBenVyZSByZXNvdXJjZXMsXG4gKiBhcHBsaWNhdGlvbnMsIGFuZCBvbi1wcmVtaXNlcyBpbmZyYXN0cnVjdHVyZS4gSXQgZW5hYmxlcyBxdWVyeWluZywgYW5hbHlzaXMsIGFuZFxuICogdmlzdWFsaXphdGlvbiBvZiBsb2cgZGF0YSB1c2luZyBLdXN0byBRdWVyeSBMYW5ndWFnZSAoS1FMKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQmFzaWMgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2Ugd2l0aCBkZWZhdWx0IHNldHRpbmdzOlxuICogY29uc3Qgd29ya3NwYWNlID0gbmV3IExvZ0FuYWx5dGljc1dvcmtzcGFjZSh0aGlzLCBcIm15LXdvcmtzcGFjZVwiLCB7XG4gKiAgIG5hbWU6IFwibXktbG9nLWFuYWx5dGljc1wiLFxuICogICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAqICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICogfSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIExvZyBBbmFseXRpY3MgV29ya3NwYWNlIHdpdGggY3VzdG9tIHJldGVudGlvbiBhbmQgU0tVOlxuICogY29uc3Qgd29ya3NwYWNlID0gbmV3IExvZ0FuYWx5dGljc1dvcmtzcGFjZSh0aGlzLCBcInByb2R1Y3Rpb24td29ya3NwYWNlXCIsIHtcbiAqICAgbmFtZTogXCJwcm9kdWN0aW9uLWxvZ3NcIixcbiAqICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gKiAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAqICAgcmV0ZW50aW9uSW5EYXlzOiA5MCxcbiAqICAgc2t1OiB7XG4gKiAgICAgbmFtZTogXCJQZXJHQjIwMThcIlxuICogICB9LFxuICogICBwdWJsaWNOZXR3b3JrQWNjZXNzRm9ySW5nZXN0aW9uOiBcIkVuYWJsZWRcIixcbiAqICAgcHVibGljTmV0d29ya0FjY2Vzc0ZvclF1ZXJ5OiBcIkVuYWJsZWRcIixcbiAqICAgdGFnczoge1xuICogICAgIGVudmlyb25tZW50OiBcInByb2R1Y3Rpb25cIlxuICogICB9XG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2Ugd2l0aCBjYXBhY2l0eSByZXNlcnZhdGlvbjpcbiAqIGNvbnN0IHdvcmtzcGFjZSA9IG5ldyBMb2dBbmFseXRpY3NXb3Jrc3BhY2UodGhpcywgXCJoaWdoLXZvbHVtZS13b3Jrc3BhY2VcIiwge1xuICogICBuYW1lOiBcImhpZ2gtdm9sdW1lLWxvZ3NcIixcbiAqICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gKiAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAqICAgcmV0ZW50aW9uSW5EYXlzOiAzNjUsXG4gKiAgIHNrdToge1xuICogICAgIG5hbWU6IFwiQ2FwYWNpdHlSZXNlcnZhdGlvblwiLFxuICogICAgIGNhcGFjaXR5UmVzZXJ2YXRpb25MZXZlbDogNTAwXG4gKiAgIH0sXG4gKiAgIHdvcmtzcGFjZUNhcHBpbmc6IHtcbiAqICAgICBkYWlseVF1b3RhR2I6IDEwMFxuICogICB9XG4gKiB9KTtcbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgTG9nQW5hbHl0aWNzV29ya3NwYWNlIGV4dGVuZHMgQXphcGlSZXNvdXJjZSB7XG4gIHN0YXRpYyB7XG4gICAgQXphcGlSZXNvdXJjZS5yZWdpc3RlclNjaGVtYXMoXG4gICAgICBMT0dfQU5BTFlUSUNTX1dPUktTUEFDRV9UWVBFLFxuICAgICAgQUxMX0xPR19BTkFMWVRJQ1NfV09SS1NQQUNFX1ZFUlNJT05TLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGlucHV0IHByb3BlcnRpZXMgZm9yIHRoaXMgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogTG9nQW5hbHl0aWNzV29ya3NwYWNlUHJvcHM7XG5cbiAgLy8gT3V0cHV0IHByb3BlcnRpZXMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZ1xuICBwdWJsaWMgcmVhZG9ubHkgaWRPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtzcGFjZUlkT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBjdXN0b21lcklkT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQXp1cmUgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UgdXNpbmcgdGhlIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIFRoZSBjb25zdHJ1Y3RvciBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiByZXNvbHV0aW9uLCBzY2hlbWEgcmVnaXN0cmF0aW9uLFxuICAgKiB2YWxpZGF0aW9uLCBhbmQgcmVzb3VyY2UgY3JlYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIExvZyBBbmFseXRpY3MgV29ya3NwYWNlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTG9nQW5hbHl0aWNzV29ya3NwYWNlUHJvcHMpIHtcbiAgICAvLyBWYWxpZGF0ZSByZXRlbnRpb24gZGF5cyBpZiBwcm92aWRlZFxuICAgIGlmIChwcm9wcy5yZXRlbnRpb25JbkRheXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHByb3BzLnJldGVudGlvbkluRGF5cyA8IDMwIHx8IHByb3BzLnJldGVudGlvbkluRGF5cyA+IDczMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJyZXRlbnRpb25JbkRheXMgbXVzdCBiZSBiZXR3ZWVuIDMwIGFuZCA3MzAgZGF5c1wiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBjYXBhY2l0eSByZXNlcnZhdGlvbiBsZXZlbCBpZiBDYXBhY2l0eVJlc2VydmF0aW9uIFNLVSBpcyB1c2VkXG4gICAgaWYgKHByb3BzLnNrdT8ubmFtZSA9PT0gXCJDYXBhY2l0eVJlc2VydmF0aW9uXCIpIHtcbiAgICAgIGNvbnN0IHZhbGlkTGV2ZWxzID0gWzEwMCwgMjAwLCAzMDAsIDQwMCwgNTAwLCAxMDAwLCAyMDAwLCA1MDAwXTtcbiAgICAgIGlmIChcbiAgICAgICAgcHJvcHMuc2t1LmNhcGFjaXR5UmVzZXJ2YXRpb25MZXZlbCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICF2YWxpZExldmVscy5pbmNsdWRlcyhwcm9wcy5za3UuY2FwYWNpdHlSZXNlcnZhdGlvbkxldmVsKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgY2FwYWNpdHlSZXNlcnZhdGlvbkxldmVsIG11c3QgYmUgb25lIG9mICR7dmFsaWRMZXZlbHMuam9pbihcIiwgXCIpfSB3aGVuIHVzaW5nIENhcGFjaXR5UmVzZXJ2YXRpb24gU0tVYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIC8vIENyZWF0ZSBUZXJyYWZvcm0gb3V0cHV0cyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nIGZyb20gb3RoZXIgcmVzb3VyY2VzXG4gICAgdGhpcy5pZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJpZFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBJRCBvZiB0aGUgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2VcIixcbiAgICB9KTtcblxuICAgIHRoaXMubmFtZU91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJuYW1lXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm5hbWV9YCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBuYW1lIG9mIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy53b3Jrc3BhY2VJZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJ3b3Jrc3BhY2VfaWRcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ub3V0cHV0LnByb3BlcnRpZXMuY3VzdG9tZXJJZH1gLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiVGhlIHVuaXF1ZSBpZGVudGlmaWVyICh3b3Jrc3BhY2UgSUQpIG9mIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jdXN0b21lcklkT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImN1c3RvbWVyX2lkXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLmN1c3RvbWVySWR9YCxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlRoZSBjdXN0b21lciBJRCAoc2FtZSBhcyB3b3Jrc3BhY2UgSUQpIG9mIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVwiLFxuICAgIH0pO1xuXG4gICAgLy8gT3ZlcnJpZGUgbG9naWNhbCBJRHNcbiAgICB0aGlzLmlkT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwiaWRcIik7XG4gICAgdGhpcy5uYW1lT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwibmFtZVwiKTtcbiAgICB0aGlzLndvcmtzcGFjZUlkT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwid29ya3NwYWNlX2lkXCIpO1xuICAgIHRoaXMuY3VzdG9tZXJJZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImN1c3RvbWVyX2lkXCIpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUkVRVUlSRUQgQUJTVFJBQ1QgTUVUSE9EUyBGUk9NIEF6YXBpUmVzb3VyY2VcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZGVmYXVsdCBBUEkgdmVyc2lvbiB0byB1c2Ugd2hlbiBubyBleHBsaWNpdCB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICAgKiBSZXR1cm5zIHRoZSBsYXRlc3Qgc3RhYmxlIHZlcnNpb24gYXMgdGhlIGRlZmF1bHRcbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjIwMjMtMDktMDFcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBenVyZSByZXNvdXJjZSB0eXBlIGZvciBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBMT0dfQU5BTFlUSUNTX1dPUktTUEFDRV9UWVBFO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEFQSSBzY2hlbWEgZm9yIHRoZSByZXNvbHZlZCB2ZXJzaW9uXG4gICAqIFVzZXMgdGhlIGZyYW1ld29yaydzIHNjaGVtYSByZXNvbHV0aW9uIHRvIGdldCB0aGUgYXBwcm9wcmlhdGUgc2NoZW1hXG4gICAqL1xuICBwcm90ZWN0ZWQgYXBpU2NoZW1hKCk6IEFwaVNjaGVtYSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZVNjaGVtYSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoaXMgcmVzb3VyY2UgdHlwZSByZXF1aXJlcyBhIGxvY2F0aW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVxdWlyZXNMb2NhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICogVHJhbnNmb3JtcyB0aGUgaW5wdXQgcHJvcGVydGllcyBpbnRvIHRoZSBKU09OIGZvcm1hdCBleHBlY3RlZCBieSBBenVyZSBSRVNUIEFQSVxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVJlc291cmNlQm9keShwcm9wczogYW55KTogYW55IHtcbiAgICBjb25zdCB0eXBlZFByb3BzID0gcHJvcHMgYXMgTG9nQW5hbHl0aWNzV29ya3NwYWNlUHJvcHM7XG5cbiAgICBjb25zdCBib2R5OiBhbnkgPSB7XG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHJldGVudGlvbkluRGF5czogdHlwZWRQcm9wcy5yZXRlbnRpb25JbkRheXMgPz8gMzAsXG4gICAgICAgIHNrdTogdHlwZWRQcm9wcy5za3UgPz8geyBuYW1lOiBcIlBlckdCMjAxOFwiIH0sXG4gICAgICAgIHB1YmxpY05ldHdvcmtBY2Nlc3NGb3JJbmdlc3Rpb246XG4gICAgICAgICAgdHlwZWRQcm9wcy5wdWJsaWNOZXR3b3JrQWNjZXNzRm9ySW5nZXN0aW9uID8/IFwiRW5hYmxlZFwiLFxuICAgICAgICBwdWJsaWNOZXR3b3JrQWNjZXNzRm9yUXVlcnk6XG4gICAgICAgICAgdHlwZWRQcm9wcy5wdWJsaWNOZXR3b3JrQWNjZXNzRm9yUXVlcnkgPz8gXCJFbmFibGVkXCIsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvLyBBZGQgb3B0aW9uYWwgcHJvcGVydGllcyBvbmx5IGlmIHNwZWNpZmllZFxuICAgIGlmICh0eXBlZFByb3BzLndvcmtzcGFjZUNhcHBpbmcpIHtcbiAgICAgIGJvZHkucHJvcGVydGllcy53b3Jrc3BhY2VDYXBwaW5nID0gdHlwZWRQcm9wcy53b3Jrc3BhY2VDYXBwaW5nO1xuICAgIH1cblxuICAgIGlmICh0eXBlZFByb3BzLmZlYXR1cmVzKSB7XG4gICAgICBib2R5LnByb3BlcnRpZXMuZmVhdHVyZXMgPSB0eXBlZFByb3BzLmZlYXR1cmVzO1xuICAgIH1cblxuICAgIGlmICh0eXBlZFByb3BzLmZvcmNlQ21rRm9yUXVlcnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYm9keS5wcm9wZXJ0aWVzLmZvcmNlQ21rRm9yUXVlcnkgPSB0eXBlZFByb3BzLmZvcmNlQ21rRm9yUXVlcnk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVkUHJvcHMuZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQpIHtcbiAgICAgIGJvZHkucHJvcGVydGllcy5kZWZhdWx0RGF0YUNvbGxlY3Rpb25SdWxlUmVzb3VyY2VJZCA9XG4gICAgICAgIHR5cGVkUHJvcHMuZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQ7XG4gICAgfVxuXG4gICAgLy8gQWRkIGlkZW50aXR5IGF0IHRoZSB0b3AgbGV2ZWwgaWYgc3BlY2lmaWVkXG4gICAgaWYgKHR5cGVkUHJvcHMuaWRlbnRpdHkpIHtcbiAgICAgIGJvZHkuaWRlbnRpdHkgPSB0eXBlZFByb3BzLmlkZW50aXR5O1xuICAgIH1cblxuICAgIHJldHVybiBib2R5O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIHRoZSBwYXJlbnQgcmVzb3VyY2UgSUQgZm9yIExvZyBBbmFseXRpY3MgV29ya3NwYWNlXG4gICAqIExvZyBBbmFseXRpY3MgV29ya3NwYWNlIGlzIGEgdG9wLWxldmVsIHJlc291cmNlIHdpdGhpbiBhIHJlc291cmNlIGdyb3VwXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIFRoZSByZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm5zIFRoZSBwYXJlbnQgcmVzb3VyY2UgSUQgKHRoZSByZXNvdXJjZSBncm91cClcbiAgICovXG4gIHByb3RlY3RlZCByZXNvbHZlUGFyZW50SWQocHJvcHM6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChwcm9wcyBhcyBMb2dBbmFseXRpY3NXb3Jrc3BhY2VQcm9wcykucmVzb3VyY2VHcm91cElkO1xuICB9XG59XG4iXX0=
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWFuYWx5dGljcy13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtbG9nYW5hbHl0aWNzd29ya3NwYWNlL2xpYi9sb2ctYW5hbHl0aWNzLXdvcmtzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBRUgsK0JBQStCO0FBRS9CLHVGQUcyQztBQUMzQyw4RUFHbUQ7QUE2TW5EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSw4QkFBYTtJQW1CdEQ7Ozs7Ozs7OztPQVNHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQztRQUN6RSxzQ0FBc0M7UUFDdEMsSUFBSSxLQUFLLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLElBQUksS0FBSyxDQUFDLGVBQWUsR0FBRyxFQUFFLElBQUksS0FBSyxDQUFDLGVBQWUsR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDOUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1lBQ3JFLENBQUM7UUFDSCxDQUFDO1FBRUQseUVBQXlFO1FBQ3pFLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEtBQUsscUJBQXFCLEVBQUUsQ0FBQztZQUM5QyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoRSxJQUNFLEtBQUssQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEtBQUssU0FBUztnQkFDaEQsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsRUFDekQsQ0FBQztn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UUFBUSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUNqRCxDQUFDO1FBRUQsSUFBSSxVQUFVLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLENBQUM7UUFDakUsQ0FBQztRQUVELElBQUksVUFBVSxDQUFDLG1DQUFtQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQ0FBbUM7Z0JBQ2pELFVBQVUsQ0FBQyxtQ0FBbUMsQ0FBQztRQUNuRCxDQUFDO1FBRUQsNkNBQTZDO1FBQzdDLElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUN0QyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ08sZUFBZSxDQUFDLEtBQVU7UUFDbEMsT0FBUSxLQUFvQyxDQUFDLGVBQWUsQ0FBQztJQUMvRCxDQUFDOztBQTNLSCxzREE0S0M7OztBQTNLQztJQUNFLDhCQUFhLENBQUMsZUFBZSxDQUMzQiw4REFBNEIsRUFDNUIsc0VBQW9DLENBQ3JDLENBQUM7QUFDSixDQUFDLEdBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVW5pZmllZCBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBpbXBsZW1lbnRhdGlvbiB1c2luZyBBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSB2ZXJzaW9uLWF3YXJlIGltcGxlbWVudGF0aW9uIGZvciBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICogdGhhdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiBtYW5hZ2VtZW50LCBzY2hlbWEgdmFsaWRhdGlvbiwgYW5kIHByb3BlcnR5XG4gKiB0cmFuc2Zvcm1hdGlvbiBhY3Jvc3MgYWxsIHN1cHBvcnRlZCBBUEkgdmVyc2lvbnMuXG4gKlxuICogU3VwcG9ydGVkIEFQSSBWZXJzaW9uczpcbiAqIC0gMjAyMy0wOS0wMSAoQWN0aXZlLCBMYXRlc3QpXG4gKiAtIDIwMjItMTAtMDEgKEFjdGl2ZSwgQmFja3dhcmQgQ29tcGF0aWJpbGl0eSlcbiAqXG4gKiBGZWF0dXJlczpcbiAqIC0gQXV0b21hdGljIGxhdGVzdCB2ZXJzaW9uIHJlc29sdXRpb24gd2hlbiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICogLSBFeHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgZm9yIHN0YWJpbGl0eSByZXF1aXJlbWVudHNcbiAqIC0gU2NoZW1hLWRyaXZlbiB2YWxpZGF0aW9uIGFuZCB0cmFuc2Zvcm1hdGlvblxuICogLSBGdWxsIEpTSUkgY29tcGxpYW5jZSBmb3IgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuICogLSBDb25maWd1cmFibGUgZGF0YSByZXRlbnRpb24sIFNLVSwgYW5kIHdvcmtzcGFjZSBjYXBwaW5nXG4gKiAtIFB1YmxpYyBuZXR3b3JrIGFjY2VzcyBjb250cm9sc1xuICogLSBXb3Jrc3BhY2UgZmVhdHVyZXMgY29uZmlndXJhdGlvblxuICovXG5cbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0blwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEFMTF9MT0dfQU5BTFlUSUNTX1dPUktTUEFDRV9WRVJTSU9OUyxcbiAgTE9HX0FOQUxZVElDU19XT1JLU1BBQ0VfVFlQRSxcbn0gZnJvbSBcIi4vbG9nLWFuYWx5dGljcy13b3Jrc3BhY2Utc2NoZW1hc1wiO1xuaW1wb3J0IHtcbiAgQXphcGlSZXNvdXJjZSxcbiAgQXphcGlSZXNvdXJjZVByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvYXphcGktcmVzb3VyY2VcIjtcbmltcG9ydCB7IEFwaVNjaGVtYSB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLyoqXG4gKiBTS1UgY29uZmlndXJhdGlvbiBmb3IgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VTa3Uge1xuICAvKipcbiAgICogU0tVIG5hbWUgZm9yIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICAgKlxuICAgKiBBdmFpbGFibGUgb3B0aW9uczpcbiAgICogLSBcIkZyZWVcIiAtIEZyZWUgdGllciAobGltaXRlZCB0byA1MDBNQi9kYXksIDcgZGF5IHJldGVudGlvbilcbiAgICogLSBcIlN0YW5kYXJkXCIgLSBTdGFuZGFyZCB0aWVyIChsZWdhY3kpXG4gICAqIC0gXCJQcmVtaXVtXCIgLSBQcmVtaXVtIHRpZXIgKGxlZ2FjeSlcbiAgICogLSBcIlBlck5vZGVcIiAtIFBlciBub2RlIHByaWNpbmcgKGxlZ2FjeSwgZm9yIE9NUyBjdXN0b21lcnMpXG4gICAqIC0gXCJQZXJHQjIwMThcIiAtIFBheS1hcy15b3UtZ28gcHJpY2luZyBiYXNlZCBvbiBkYXRhIGluZ2VzdGlvblxuICAgKiAtIFwiU3RhbmRhbG9uZVwiIC0gU3RhbmRhbG9uZSB0aWVyIChsZWdhY3kpXG4gICAqIC0gXCJDYXBhY2l0eVJlc2VydmF0aW9uXCIgLSBDb21taXRtZW50IHRpZXIgd2l0aCByZXNlcnZlZCBjYXBhY2l0eVxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIFwiUGVyR0IyMDE4XCJcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6XG4gICAgfCBcIkZyZWVcIlxuICAgIHwgXCJTdGFuZGFyZFwiXG4gICAgfCBcIlByZW1pdW1cIlxuICAgIHwgXCJQZXJOb2RlXCJcbiAgICB8IFwiUGVyR0IyMDE4XCJcbiAgICB8IFwiU3RhbmRhbG9uZVwiXG4gICAgfCBcIkNhcGFjaXR5UmVzZXJ2YXRpb25cIjtcblxuICAvKipcbiAgICogQ2FwYWNpdHkgcmVzZXJ2YXRpb24gbGV2ZWwgaW4gR0IgcGVyIGRheVxuICAgKiBPbmx5IGFwcGxpY2FibGUgd2hlbiBTS1UgbmFtZSBpcyBcIkNhcGFjaXR5UmVzZXJ2YXRpb25cIlxuICAgKiBWYWxpZCB2YWx1ZXM6IDEwMCwgMjAwLCAzMDAsIDQwMCwgNTAwLCAxMDAwLCAyMDAwLCA1MDAwXG4gICAqL1xuICByZWFkb25seSBjYXBhY2l0eVJlc2VydmF0aW9uTGV2ZWw/OiBudW1iZXI7XG59XG5cbi8qKlxuICogV29ya3NwYWNlIGNhcHBpbmcgY29uZmlndXJhdGlvbiBmb3IgZGFpbHkgZGF0YSBpbmdlc3Rpb24gbGltaXRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nQW5hbHl0aWNzV29ya3NwYWNlQ2FwcGluZyB7XG4gIC8qKlxuICAgKiBEYWlseSB2b2x1bWUgY2FwIGluIEdCXG4gICAqIEEgdmFsdWUgb2YgLTEgbWVhbnMgbm8gY2FwXG4gICAqL1xuICByZWFkb25seSBkYWlseVF1b3RhR2I6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBXb3Jrc3BhY2UgZmVhdHVyZXMgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ0FuYWx5dGljc1dvcmtzcGFjZUZlYXR1cmVzIHtcbiAgLyoqXG4gICAqIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIGRhdGEgZXhwb3J0IGlzIGVuYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZURhdGFFeHBvcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciBkYXRhIHNob3VsZCBiZSBpbW1lZGlhdGVseSBwdXJnZWQgYWZ0ZXIgMzAgZGF5c1xuICAgKiBpbnN0ZWFkIG9mIHRoZSBjb25maWd1cmVkIHJldGVudGlvbiBwZXJpb2RcbiAgICovXG4gIHJlYWRvbmx5IGltbWVkaWF0ZVB1cmdlRGF0YU9uMzBEYXlzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgbG9nIGFjY2VzcyB1c2luZyBBQURJQU0gaXMgZGlzYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVMb2NhbEF1dGg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciBjbHVzdGVyIHJlc291cmNlIHBlcm1pc3Npb25zIGFyZSBlbmFibGVkXG4gICAqL1xuICByZWFkb25seSBlbmFibGVMb2dBY2Nlc3NVc2luZ09ubHlSZXNvdXJjZVBlcm1pc3Npb25zPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNYW5hZ2VkIGlkZW50aXR5IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB3b3Jrc3BhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VJZGVudGl0eSB7XG4gIC8qKlxuICAgKiBUeXBlIG9mIG1hbmFnZWQgaWRlbnRpdHlcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6XG4gICAgfCBcIlN5c3RlbUFzc2lnbmVkXCJcbiAgICB8IFwiVXNlckFzc2lnbmVkXCJcbiAgICB8IFwiU3lzdGVtQXNzaWduZWQsVXNlckFzc2lnbmVkXCJcbiAgICB8IFwiTm9uZVwiO1xuXG4gIC8qKlxuICAgKiBVc2VyLWFzc2lnbmVkIGlkZW50aXR5IHJlc291cmNlIElEc1xuICAgKiBSZXF1aXJlZCB3aGVuIHR5cGUgaW5jbHVkZXMgVXNlckFzc2lnbmVkXG4gICAqL1xuICByZWFkb25seSB1c2VyQXNzaWduZWRJZGVudGl0aWVzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgdW5pZmllZCBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICpcbiAqIEV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHdpdGggTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2Ugc3BlY2lmaWMgcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ0FuYWx5dGljc1dvcmtzcGFjZVByb3BzIGV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIFJlc291cmNlIEdyb3VwIElEIHdoZXJlIHRoZSB3b3Jrc3BhY2Ugd2lsbCBiZSBjcmVhdGVkXG4gICAqIFRoZSB3b3Jrc3BhY2Ugd2lsbCBiZSBjcmVhdGVkIGFzIGEgY2hpbGQgb2YgdGhpcyByZXNvdXJjZSBncm91cFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERhdGEgcmV0ZW50aW9uIHBlcmlvZCBpbiBkYXlzXG4gICAqXG4gICAqIFZhbHVlcyBiZXR3ZWVuIDMwIGFuZCA3MzAgYXJlIHN1cHBvcnRlZCBmb3IgcGF5LWFzLXlvdS1nbyBwcmljaW5nLlxuICAgKiBGcmVlIHRpZXIgaXMgbGltaXRlZCB0byA3IGRheXMuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgMzBcbiAgICovXG4gIHJlYWRvbmx5IHJldGVudGlvbkluRGF5cz86IG51bWJlcjtcblxuICAvKipcbiAgICogU0tVIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB3b3Jrc3BhY2VcbiAgICpcbiAgICogRGV0ZXJtaW5lcyBwcmljaW5nIHRpZXIgYW5kIGNhcGFiaWxpdGllcyBvZiB0aGUgd29ya3NwYWNlLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHsgbmFtZTogXCJQZXJHQjIwMThcIiB9XG4gICAqL1xuICByZWFkb25seSBza3U/OiBMb2dBbmFseXRpY3NXb3Jrc3BhY2VTa3U7XG5cbiAgLyoqXG4gICAqIERhaWx5IHZvbHVtZSBjYXAgZm9yIGRhdGEgaW5nZXN0aW9uXG4gICAqXG4gICAqIFdoZW4gdGhlIGRhaWx5IGNhcCBpcyByZWFjaGVkLCBkYXRhIGluZ2VzdGlvbiBzdG9wcyB1bnRpbCB0aGUgbmV4dCBkYXkuXG4gICAqIEEgdmFsdWUgb2YgZGFpbHlRdW90YUdiOiAtMSBtZWFucyBubyBjYXAuXG4gICAqL1xuICByZWFkb25seSB3b3Jrc3BhY2VDYXBwaW5nPzogTG9nQW5hbHl0aWNzV29ya3NwYWNlQ2FwcGluZztcblxuICAvKipcbiAgICogUHVibGljIG5ldHdvcmsgYWNjZXNzIGZvciBkYXRhIGluZ2VzdGlvblxuICAgKlxuICAgKiBDb250cm9scyB3aGV0aGVyIGRhdGEgY2FuIGJlIGluZ2VzdGVkIG92ZXIgdGhlIHB1YmxpYyBpbnRlcm5ldC5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBcIkVuYWJsZWRcIlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzc0ZvckluZ2VzdGlvbj86IFwiRW5hYmxlZFwiIHwgXCJEaXNhYmxlZFwiO1xuXG4gIC8qKlxuICAgKiBQdWJsaWMgbmV0d29yayBhY2Nlc3MgZm9yIHF1ZXJ5aW5nIGRhdGFcbiAgICpcbiAgICogQ29udHJvbHMgd2hldGhlciBxdWVyaWVzIGNhbiBiZSBleGVjdXRlZCBvdmVyIHRoZSBwdWJsaWMgaW50ZXJuZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgXCJFbmFibGVkXCJcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY05ldHdvcmtBY2Nlc3NGb3JRdWVyeT86IFwiRW5hYmxlZFwiIHwgXCJEaXNhYmxlZFwiO1xuXG4gIC8qKlxuICAgKiBXb3Jrc3BhY2UgZmVhdHVyZXMgY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIHNwZWNpZmljIHdvcmtzcGFjZSBmZWF0dXJlcyBsaWtlIGRhdGEgZXhwb3J0LFxuICAgKiBpbW1lZGlhdGUgcHVyZ2UsIGFuZCBsb2NhbCBhdXRoZW50aWNhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGZlYXR1cmVzPzogTG9nQW5hbHl0aWNzV29ya3NwYWNlRmVhdHVyZXM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY3VzdG9tZXItbWFuYWdlZCBrZXlzIGFyZSByZXF1aXJlZCBmb3Igc2F2ZWQgc2VhcmNoZXMgYW5kIGFsZXJ0c1xuICAgKlxuICAgKiBXaGVuIGVuYWJsZWQsIGFsbCBzYXZlZCBzZWFyY2hlcyBhbmQgYWxlcnRzIG11c3QgdXNlIGN1c3RvbWVyLW1hbmFnZWQga2V5cy5cbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlQ21rRm9yUXVlcnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZSBJRCBvZiB0aGUgZGVmYXVsdCBEYXRhIENvbGxlY3Rpb24gUnVsZVxuICAgKlxuICAgKiBBc3NvY2lhdGVzIGEgZGVmYXVsdCBEQ1Igd2l0aCB0aGUgd29ya3NwYWNlIGZvciBkYXRhIGNvbGxlY3Rpb24uXG4gICAqIE9ubHkgYXZhaWxhYmxlIGluIEFQSSB2ZXJzaW9uIDIwMjMtMDktMDEgYW5kIGxhdGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1hbmFnZWQgaWRlbnRpdHkgY29uZmlndXJhdGlvbiBmb3IgdGhlIHdvcmtzcGFjZVxuICAgKlxuICAgKiBFbmFibGVzIG1hbmFnZWQgaWRlbnRpdHkgYXV0aGVudGljYXRpb24gZm9yIHRoZSB3b3Jrc3BhY2UuXG4gICAqL1xuICByZWFkb25seSBpZGVudGl0eT86IExvZ0FuYWx5dGljc1dvcmtzcGFjZUlkZW50aXR5O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSByZXF1ZXN0IGJvZHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VCb2R5UHJvcGVydGllcyB7XG4gIHJlYWRvbmx5IHJldGVudGlvbkluRGF5cz86IG51bWJlcjtcbiAgcmVhZG9ubHkgc2t1PzogTG9nQW5hbHl0aWNzV29ya3NwYWNlU2t1O1xuICByZWFkb25seSB3b3Jrc3BhY2VDYXBwaW5nPzogTG9nQW5hbHl0aWNzV29ya3NwYWNlQ2FwcGluZztcbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzc0ZvckluZ2VzdGlvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzc0ZvclF1ZXJ5Pzogc3RyaW5nO1xuICByZWFkb25seSBmZWF0dXJlcz86IExvZ0FuYWx5dGljc1dvcmtzcGFjZUZlYXR1cmVzO1xuICByZWFkb25seSBmb3JjZUNta0ZvclF1ZXJ5PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHJlc291cmNlIGJvZHkgaW50ZXJmYWNlIGZvciBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBBUEkgY2FsbHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VCb2R5IHtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogTG9nQW5hbHl0aWNzV29ya3NwYWNlQm9keVByb3BlcnRpZXM7XG4gIHJlYWRvbmx5IGlkZW50aXR5PzogTG9nQW5hbHl0aWNzV29ya3NwYWNlSWRlbnRpdHk7XG59XG5cbi8qKlxuICogVW5pZmllZCBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBpbXBsZW1lbnRhdGlvblxuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBzaW5nbGUsIHZlcnNpb24tYXdhcmUgaW1wbGVtZW50YXRpb24gdGhhdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvblxuICogcmVzb2x1dGlvbiwgc2NoZW1hIHZhbGlkYXRpb24sIGFuZCBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbiB3aGlsZSBtYWludGFpbmluZyBmdWxsIEpTSUkgY29tcGxpYW5jZS5cbiAqXG4gKiBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBpcyB0aGUgY2VudHJhbCBkZXN0aW5hdGlvbiBmb3IgbG9nIGRhdGEgZnJvbSBBenVyZSByZXNvdXJjZXMsXG4gKiBhcHBsaWNhdGlvbnMsIGFuZCBvbi1wcmVtaXNlcyBpbmZyYXN0cnVjdHVyZS4gSXQgZW5hYmxlcyBxdWVyeWluZywgYW5hbHlzaXMsIGFuZFxuICogdmlzdWFsaXphdGlvbiBvZiBsb2cgZGF0YSB1c2luZyBLdXN0byBRdWVyeSBMYW5ndWFnZSAoS1FMKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQmFzaWMgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2Ugd2l0aCBkZWZhdWx0IHNldHRpbmdzOlxuICogY29uc3Qgd29ya3NwYWNlID0gbmV3IExvZ0FuYWx5dGljc1dvcmtzcGFjZSh0aGlzLCBcIm15LXdvcmtzcGFjZVwiLCB7XG4gKiAgIG5hbWU6IFwibXktbG9nLWFuYWx5dGljc1wiLFxuICogICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAqICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICogfSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIExvZyBBbmFseXRpY3MgV29ya3NwYWNlIHdpdGggY3VzdG9tIHJldGVudGlvbiBhbmQgU0tVOlxuICogY29uc3Qgd29ya3NwYWNlID0gbmV3IExvZ0FuYWx5dGljc1dvcmtzcGFjZSh0aGlzLCBcInByb2R1Y3Rpb24td29ya3NwYWNlXCIsIHtcbiAqICAgbmFtZTogXCJwcm9kdWN0aW9uLWxvZ3NcIixcbiAqICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gKiAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAqICAgcmV0ZW50aW9uSW5EYXlzOiA5MCxcbiAqICAgc2t1OiB7XG4gKiAgICAgbmFtZTogXCJQZXJHQjIwMThcIlxuICogICB9LFxuICogICBwdWJsaWNOZXR3b3JrQWNjZXNzRm9ySW5nZXN0aW9uOiBcIkVuYWJsZWRcIixcbiAqICAgcHVibGljTmV0d29ya0FjY2Vzc0ZvclF1ZXJ5OiBcIkVuYWJsZWRcIixcbiAqICAgdGFnczoge1xuICogICAgIGVudmlyb25tZW50OiBcInByb2R1Y3Rpb25cIlxuICogICB9XG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2Ugd2l0aCBjYXBhY2l0eSByZXNlcnZhdGlvbjpcbiAqIGNvbnN0IHdvcmtzcGFjZSA9IG5ldyBMb2dBbmFseXRpY3NXb3Jrc3BhY2UodGhpcywgXCJoaWdoLXZvbHVtZS13b3Jrc3BhY2VcIiwge1xuICogICBuYW1lOiBcImhpZ2gtdm9sdW1lLWxvZ3NcIixcbiAqICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gKiAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAqICAgcmV0ZW50aW9uSW5EYXlzOiAzNjUsXG4gKiAgIHNrdToge1xuICogICAgIG5hbWU6IFwiQ2FwYWNpdHlSZXNlcnZhdGlvblwiLFxuICogICAgIGNhcGFjaXR5UmVzZXJ2YXRpb25MZXZlbDogNTAwXG4gKiAgIH0sXG4gKiAgIHdvcmtzcGFjZUNhcHBpbmc6IHtcbiAqICAgICBkYWlseVF1b3RhR2I6IDEwMFxuICogICB9XG4gKiB9KTtcbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgTG9nQW5hbHl0aWNzV29ya3NwYWNlIGV4dGVuZHMgQXphcGlSZXNvdXJjZSB7XG4gIHN0YXRpYyB7XG4gICAgQXphcGlSZXNvdXJjZS5yZWdpc3RlclNjaGVtYXMoXG4gICAgICBMT0dfQU5BTFlUSUNTX1dPUktTUEFDRV9UWVBFLFxuICAgICAgQUxMX0xPR19BTkFMWVRJQ1NfV09SS1NQQUNFX1ZFUlNJT05TLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGlucHV0IHByb3BlcnRpZXMgZm9yIHRoaXMgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogTG9nQW5hbHl0aWNzV29ya3NwYWNlUHJvcHM7XG5cbiAgLy8gT3V0cHV0IHByb3BlcnRpZXMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZ1xuICBwdWJsaWMgcmVhZG9ubHkgaWRPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtzcGFjZUlkT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBjdXN0b21lcklkT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQXp1cmUgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UgdXNpbmcgdGhlIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIFRoZSBjb25zdHJ1Y3RvciBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiByZXNvbHV0aW9uLCBzY2hlbWEgcmVnaXN0cmF0aW9uLFxuICAgKiB2YWxpZGF0aW9uLCBhbmQgcmVzb3VyY2UgY3JlYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIExvZyBBbmFseXRpY3MgV29ya3NwYWNlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTG9nQW5hbHl0aWNzV29ya3NwYWNlUHJvcHMpIHtcbiAgICAvLyBWYWxpZGF0ZSByZXRlbnRpb24gZGF5cyBpZiBwcm92aWRlZFxuICAgIGlmIChwcm9wcy5yZXRlbnRpb25JbkRheXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHByb3BzLnJldGVudGlvbkluRGF5cyA8IDMwIHx8IHByb3BzLnJldGVudGlvbkluRGF5cyA+IDczMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJyZXRlbnRpb25JbkRheXMgbXVzdCBiZSBiZXR3ZWVuIDMwIGFuZCA3MzAgZGF5c1wiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBjYXBhY2l0eSByZXNlcnZhdGlvbiBsZXZlbCBpZiBDYXBhY2l0eVJlc2VydmF0aW9uIFNLVSBpcyB1c2VkXG4gICAgaWYgKHByb3BzLnNrdT8ubmFtZSA9PT0gXCJDYXBhY2l0eVJlc2VydmF0aW9uXCIpIHtcbiAgICAgIGNvbnN0IHZhbGlkTGV2ZWxzID0gWzEwMCwgMjAwLCAzMDAsIDQwMCwgNTAwLCAxMDAwLCAyMDAwLCA1MDAwXTtcbiAgICAgIGlmIChcbiAgICAgICAgcHJvcHMuc2t1LmNhcGFjaXR5UmVzZXJ2YXRpb25MZXZlbCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICF2YWxpZExldmVscy5pbmNsdWRlcyhwcm9wcy5za3UuY2FwYWNpdHlSZXNlcnZhdGlvbkxldmVsKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgY2FwYWNpdHlSZXNlcnZhdGlvbkxldmVsIG11c3QgYmUgb25lIG9mICR7dmFsaWRMZXZlbHMuam9pbihcIiwgXCIpfSB3aGVuIHVzaW5nIENhcGFjaXR5UmVzZXJ2YXRpb24gU0tVYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIC8vIENyZWF0ZSBUZXJyYWZvcm0gb3V0cHV0cyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nIGZyb20gb3RoZXIgcmVzb3VyY2VzXG4gICAgdGhpcy5pZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJpZFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBJRCBvZiB0aGUgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2VcIixcbiAgICB9KTtcblxuICAgIHRoaXMubmFtZU91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJuYW1lXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm5hbWV9YCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBuYW1lIG9mIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy53b3Jrc3BhY2VJZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJ3b3Jrc3BhY2VfaWRcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ub3V0cHV0LnByb3BlcnRpZXMuY3VzdG9tZXJJZH1gLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiVGhlIHVuaXF1ZSBpZGVudGlmaWVyICh3b3Jrc3BhY2UgSUQpIG9mIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jdXN0b21lcklkT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImN1c3RvbWVyX2lkXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLmN1c3RvbWVySWR9YCxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlRoZSBjdXN0b21lciBJRCAoc2FtZSBhcyB3b3Jrc3BhY2UgSUQpIG9mIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVwiLFxuICAgIH0pO1xuXG4gICAgLy8gT3ZlcnJpZGUgbG9naWNhbCBJRHNcbiAgICB0aGlzLmlkT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwiaWRcIik7XG4gICAgdGhpcy5uYW1lT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwibmFtZVwiKTtcbiAgICB0aGlzLndvcmtzcGFjZUlkT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwid29ya3NwYWNlX2lkXCIpO1xuICAgIHRoaXMuY3VzdG9tZXJJZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImN1c3RvbWVyX2lkXCIpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUkVRVUlSRUQgQUJTVFJBQ1QgTUVUSE9EUyBGUk9NIEF6YXBpUmVzb3VyY2VcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZGVmYXVsdCBBUEkgdmVyc2lvbiB0byB1c2Ugd2hlbiBubyBleHBsaWNpdCB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICAgKiBSZXR1cm5zIHRoZSBsYXRlc3Qgc3RhYmxlIHZlcnNpb24gYXMgdGhlIGRlZmF1bHRcbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjIwMjMtMDktMDFcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBenVyZSByZXNvdXJjZSB0eXBlIGZvciBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBMT0dfQU5BTFlUSUNTX1dPUktTUEFDRV9UWVBFO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEFQSSBzY2hlbWEgZm9yIHRoZSByZXNvbHZlZCB2ZXJzaW9uXG4gICAqIFVzZXMgdGhlIGZyYW1ld29yaydzIHNjaGVtYSByZXNvbHV0aW9uIHRvIGdldCB0aGUgYXBwcm9wcmlhdGUgc2NoZW1hXG4gICAqL1xuICBwcm90ZWN0ZWQgYXBpU2NoZW1hKCk6IEFwaVNjaGVtYSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZVNjaGVtYSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoaXMgcmVzb3VyY2UgdHlwZSByZXF1aXJlcyBhIGxvY2F0aW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVxdWlyZXNMb2NhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICogVHJhbnNmb3JtcyB0aGUgaW5wdXQgcHJvcGVydGllcyBpbnRvIHRoZSBKU09OIGZvcm1hdCBleHBlY3RlZCBieSBBenVyZSBSRVNUIEFQSVxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVJlc291cmNlQm9keShwcm9wczogYW55KTogYW55IHtcbiAgICBjb25zdCB0eXBlZFByb3BzID0gcHJvcHMgYXMgTG9nQW5hbHl0aWNzV29ya3NwYWNlUHJvcHM7XG5cbiAgICBjb25zdCBib2R5OiBhbnkgPSB7XG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHJldGVudGlvbkluRGF5czogdHlwZWRQcm9wcy5yZXRlbnRpb25JbkRheXMgPz8gMzAsXG4gICAgICAgIHNrdTogdHlwZWRQcm9wcy5za3UgPz8geyBuYW1lOiBcIlBlckdCMjAxOFwiIH0sXG4gICAgICAgIHB1YmxpY05ldHdvcmtBY2Nlc3NGb3JJbmdlc3Rpb246XG4gICAgICAgICAgdHlwZWRQcm9wcy5wdWJsaWNOZXR3b3JrQWNjZXNzRm9ySW5nZXN0aW9uID8/IFwiRW5hYmxlZFwiLFxuICAgICAgICBwdWJsaWNOZXR3b3JrQWNjZXNzRm9yUXVlcnk6XG4gICAgICAgICAgdHlwZWRQcm9wcy5wdWJsaWNOZXR3b3JrQWNjZXNzRm9yUXVlcnkgPz8gXCJFbmFibGVkXCIsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvLyBBZGQgb3B0aW9uYWwgcHJvcGVydGllcyBvbmx5IGlmIHNwZWNpZmllZFxuICAgIGlmICh0eXBlZFByb3BzLndvcmtzcGFjZUNhcHBpbmcpIHtcbiAgICAgIGJvZHkucHJvcGVydGllcy53b3Jrc3BhY2VDYXBwaW5nID0gdHlwZWRQcm9wcy53b3Jrc3BhY2VDYXBwaW5nO1xuICAgIH1cblxuICAgIGlmICh0eXBlZFByb3BzLmZlYXR1cmVzKSB7XG4gICAgICBib2R5LnByb3BlcnRpZXMuZmVhdHVyZXMgPSB0eXBlZFByb3BzLmZlYXR1cmVzO1xuICAgIH1cblxuICAgIGlmICh0eXBlZFByb3BzLmZvcmNlQ21rRm9yUXVlcnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYm9keS5wcm9wZXJ0aWVzLmZvcmNlQ21rRm9yUXVlcnkgPSB0eXBlZFByb3BzLmZvcmNlQ21rRm9yUXVlcnk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVkUHJvcHMuZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQpIHtcbiAgICAgIGJvZHkucHJvcGVydGllcy5kZWZhdWx0RGF0YUNvbGxlY3Rpb25SdWxlUmVzb3VyY2VJZCA9XG4gICAgICAgIHR5cGVkUHJvcHMuZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQ7XG4gICAgfVxuXG4gICAgLy8gQWRkIGlkZW50aXR5IGF0IHRoZSB0b3AgbGV2ZWwgaWYgc3BlY2lmaWVkXG4gICAgaWYgKHR5cGVkUHJvcHMuaWRlbnRpdHkpIHtcbiAgICAgIGJvZHkuaWRlbnRpdHkgPSB0eXBlZFByb3BzLmlkZW50aXR5O1xuICAgIH1cblxuICAgIHJldHVybiBib2R5O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIHRoZSBwYXJlbnQgcmVzb3VyY2UgSUQgZm9yIExvZyBBbmFseXRpY3MgV29ya3NwYWNlXG4gICAqIExvZyBBbmFseXRpY3MgV29ya3NwYWNlIGlzIGEgdG9wLWxldmVsIHJlc291cmNlIHdpdGhpbiBhIHJlc291cmNlIGdyb3VwXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIFRoZSByZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm5zIFRoZSBwYXJlbnQgcmVzb3VyY2UgSUQgKHRoZSByZXNvdXJjZSBncm91cClcbiAgICovXG4gIHByb3RlY3RlZCByZXNvbHZlUGFyZW50SWQocHJvcHM6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChwcm9wcyBhcyBMb2dBbmFseXRpY3NXb3Jrc3BhY2VQcm9wcykucmVzb3VyY2VHcm91cElkO1xuICB9XG59XG4iXX0=
@@ -6,4 +6,4 @@
6
6
  *
7
7
  * Run with: npm run integration:nostream
8
8
  */
9
- import "cdktf/lib/testing/adapters/jest";
9
+ import "cdktn/lib/testing/adapters/jest";