@microsoft/terraform-cdk-constructs 1.8.0 → 2.2.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 (268) hide show
  1. package/.jsii +48328 -33656
  2. package/API.md +56123 -38995
  3. package/lib/azure-actiongroup/lib/action-group.d.ts +3 -3
  4. package/lib/azure-actiongroup/lib/action-group.js +5 -5
  5. package/lib/azure-actiongroup/test/action-group.integ.d.ts +1 -1
  6. package/lib/azure-actiongroup/test/action-group.integ.js +5 -5
  7. package/lib/azure-actiongroup/test/action-group.spec.js +9 -9
  8. package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +3 -3
  9. package/lib/azure-activitylogalert/lib/activity-log-alert.js +5 -5
  10. package/lib/azure-activitylogalert/test/activity-log-alert.integ.d.ts +1 -1
  11. package/lib/azure-activitylogalert/test/activity-log-alert.integ.js +6 -6
  12. package/lib/azure-activitylogalert/test/activity-log-alert.spec.js +9 -9
  13. package/lib/azure-aks/lib/aks-cluster.d.ts +6 -6
  14. package/lib/azure-aks/lib/aks-cluster.js +8 -8
  15. package/lib/azure-aks/test/aks-cluster.integ.d.ts +1 -1
  16. package/lib/azure-aks/test/aks-cluster.integ.js +5 -5
  17. package/lib/azure-aks/test/aks-cluster.spec.js +12 -12
  18. package/lib/azure-containerapps/index.d.ts +1 -0
  19. package/lib/azure-containerapps/index.js +18 -0
  20. package/lib/azure-containerapps/lib/container-app-environment-schemas.d.ts +50 -0
  21. package/lib/azure-containerapps/lib/container-app-environment-schemas.js +522 -0
  22. package/lib/azure-containerapps/lib/container-app-environment.d.ts +374 -0
  23. package/lib/azure-containerapps/lib/container-app-environment.js +310 -0
  24. package/lib/azure-containerapps/lib/container-app-schemas.d.ts +48 -0
  25. package/lib/azure-containerapps/lib/container-app-schemas.js +466 -0
  26. package/lib/azure-containerapps/lib/container-app.d.ts +925 -0
  27. package/lib/azure-containerapps/lib/container-app.js +320 -0
  28. package/lib/azure-containerapps/lib/index.d.ts +4 -0
  29. package/lib/azure-containerapps/lib/index.js +21 -0
  30. package/lib/azure-containerapps/test/container-app-environment.integ.d.ts +10 -0
  31. package/lib/azure-containerapps/test/container-app-environment.integ.js +82 -0
  32. package/lib/azure-containerapps/test/container-app-environment.spec.d.ts +9 -0
  33. package/lib/azure-containerapps/test/container-app-environment.spec.js +412 -0
  34. package/lib/azure-containerapps/test/container-app.integ.d.ts +10 -0
  35. package/lib/azure-containerapps/test/container-app.integ.js +119 -0
  36. package/lib/azure-containerapps/test/container-app.spec.d.ts +9 -0
  37. package/lib/azure-containerapps/test/container-app.spec.js +839 -0
  38. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +3 -3
  39. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +5 -5
  40. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.js +9 -9
  41. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.d.ts +7 -7
  42. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +9 -9
  43. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.d.ts +4 -4
  44. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +6 -6
  45. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.d.ts +4 -4
  46. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +6 -6
  47. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.d.ts +1 -1
  48. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.js +5 -5
  49. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.js +11 -11
  50. package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.js +14 -14
  51. package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.js +12 -12
  52. package/lib/azure-dnsresolver/lib/dns-resolver.d.ts +8 -8
  53. package/lib/azure-dnsresolver/lib/dns-resolver.js +10 -10
  54. package/lib/azure-dnsresolver/lib/inbound-endpoint.d.ts +6 -6
  55. package/lib/azure-dnsresolver/lib/inbound-endpoint.js +8 -8
  56. package/lib/azure-dnsresolver/lib/outbound-endpoint.d.ts +7 -7
  57. package/lib/azure-dnsresolver/lib/outbound-endpoint.js +9 -9
  58. package/lib/azure-dnsresolver/test/dns-resolver.integ.d.ts +1 -1
  59. package/lib/azure-dnsresolver/test/dns-resolver.integ.js +5 -5
  60. package/lib/azure-dnsresolver/test/dns-resolver.spec.js +11 -11
  61. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.d.ts +1 -1
  62. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.js +5 -5
  63. package/lib/azure-dnsresolver/test/inbound-endpoint.spec.js +12 -12
  64. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.d.ts +1 -1
  65. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.js +5 -5
  66. package/lib/azure-dnsresolver/test/outbound-endpoint.spec.js +9 -9
  67. package/lib/azure-dnszone/lib/dns-zone.d.ts +6 -6
  68. package/lib/azure-dnszone/lib/dns-zone.js +8 -8
  69. package/lib/azure-dnszone/lib/records/dns-records.d.ts +31 -31
  70. package/lib/azure-dnszone/lib/records/dns-records.js +42 -42
  71. package/lib/azure-dnszone/test/dns-records.integ.d.ts +1 -1
  72. package/lib/azure-dnszone/test/dns-records.integ.js +5 -5
  73. package/lib/azure-dnszone/test/dns-records.spec.js +57 -57
  74. package/lib/azure-dnszone/test/dns-zone.integ.d.ts +1 -1
  75. package/lib/azure-dnszone/test/dns-zone.integ.js +5 -5
  76. package/lib/azure-dnszone/test/dns-zone.spec.js +11 -11
  77. package/lib/azure-loganalyticsworkspace/index.d.ts +6 -0
  78. package/lib/azure-loganalyticsworkspace/index.js +23 -0
  79. package/lib/azure-loganalyticsworkspace/lib/index.d.ts +5 -0
  80. package/lib/azure-loganalyticsworkspace/lib/index.js +22 -0
  81. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace-schemas.d.ts +51 -0
  82. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace-schemas.js +255 -0
  83. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.d.ts +301 -0
  84. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +213 -0
  85. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.d.ts +9 -0
  86. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.js +71 -0
  87. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.d.ts +8 -0
  88. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.js +504 -0
  89. package/lib/azure-metricalert/lib/metric-alert.d.ts +3 -3
  90. package/lib/azure-metricalert/lib/metric-alert.js +5 -5
  91. package/lib/azure-metricalert/test/metric-alert.integ.d.ts +1 -1
  92. package/lib/azure-metricalert/test/metric-alert.integ.js +5 -5
  93. package/lib/azure-metricalert/test/metric-alert.spec.js +9 -9
  94. package/lib/azure-networkinterface/lib/network-interface.d.ts +5 -5
  95. package/lib/azure-networkinterface/lib/network-interface.js +7 -7
  96. package/lib/azure-networkinterface/test/network-interface.integ.d.ts +1 -1
  97. package/lib/azure-networkinterface/test/network-interface.integ.js +5 -5
  98. package/lib/azure-networkinterface/test/network-interface.spec.js +11 -11
  99. package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +6 -6
  100. package/lib/azure-networksecuritygroup/lib/network-security-group.js +8 -8
  101. package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +1 -1
  102. package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +5 -5
  103. package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +12 -12
  104. package/lib/azure-networkwatcher/index.d.ts +14 -0
  105. package/lib/azure-networkwatcher/index.js +31 -0
  106. package/lib/azure-networkwatcher/lib/index.d.ts +5 -0
  107. package/lib/azure-networkwatcher/lib/index.js +22 -0
  108. package/lib/azure-networkwatcher/lib/network-watcher-schemas.d.ts +47 -0
  109. package/lib/azure-networkwatcher/lib/network-watcher-schemas.js +167 -0
  110. package/lib/azure-networkwatcher/lib/network-watcher.d.ts +181 -0
  111. package/lib/azure-networkwatcher/lib/network-watcher.js +187 -0
  112. package/lib/azure-networkwatcher/test/network-watcher.integ.d.ts +12 -0
  113. package/lib/azure-networkwatcher/test/network-watcher.integ.js +84 -0
  114. package/lib/azure-networkwatcher/test/network-watcher.spec.d.ts +8 -0
  115. package/lib/azure-networkwatcher/test/network-watcher.spec.js +312 -0
  116. package/lib/azure-policyassignment/lib/policy-assignment.d.ts +3 -3
  117. package/lib/azure-policyassignment/lib/policy-assignment.js +5 -5
  118. package/lib/azure-policyassignment/test/policy-assignment.integ.d.ts +1 -1
  119. package/lib/azure-policyassignment/test/policy-assignment.integ.js +5 -5
  120. package/lib/azure-policyassignment/test/policy-assignment.spec.js +12 -12
  121. package/lib/azure-policydefinition/lib/policy-definition.d.ts +3 -3
  122. package/lib/azure-policydefinition/lib/policy-definition.js +5 -5
  123. package/lib/azure-policydefinition/test/policy-definition.integ.d.ts +1 -1
  124. package/lib/azure-policydefinition/test/policy-definition.integ.js +5 -5
  125. package/lib/azure-policydefinition/test/policy-definition.spec.js +19 -19
  126. package/lib/azure-policysetdefinition/index.d.ts +10 -0
  127. package/lib/azure-policysetdefinition/index.js +27 -0
  128. package/lib/azure-policysetdefinition/lib/index.d.ts +5 -0
  129. package/lib/azure-policysetdefinition/lib/index.js +22 -0
  130. package/lib/azure-policysetdefinition/lib/policy-set-definition-schemas.d.ts +50 -0
  131. package/lib/azure-policysetdefinition/lib/policy-set-definition-schemas.js +255 -0
  132. package/lib/azure-policysetdefinition/lib/policy-set-definition.d.ts +426 -0
  133. package/lib/azure-policysetdefinition/lib/policy-set-definition.js +255 -0
  134. package/lib/azure-policysetdefinition/test/policy-set-definition.integ.d.ts +9 -0
  135. package/lib/azure-policysetdefinition/test/policy-set-definition.integ.js +56 -0
  136. package/lib/azure-policysetdefinition/test/policy-set-definition.spec.d.ts +8 -0
  137. package/lib/azure-policysetdefinition/test/policy-set-definition.spec.js +745 -0
  138. package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +10 -10
  139. package/lib/azure-privatednszone/lib/private-dns-zone.js +12 -12
  140. package/lib/azure-privatednszone/lib/records/private-dns-records.d.ts +25 -25
  141. package/lib/azure-privatednszone/lib/records/private-dns-records.js +34 -34
  142. package/lib/azure-privatednszone/test/private-dns-records.integ.d.ts +1 -1
  143. package/lib/azure-privatednszone/test/private-dns-records.integ.js +5 -5
  144. package/lib/azure-privatednszone/test/private-dns-records.spec.js +49 -49
  145. package/lib/azure-privatednszone/test/private-dns-zone.integ.d.ts +1 -1
  146. package/lib/azure-privatednszone/test/private-dns-zone.integ.js +5 -5
  147. package/lib/azure-privatednszone/test/private-dns-zone.spec.js +12 -12
  148. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.d.ts +6 -6
  149. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +8 -8
  150. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.d.ts +1 -1
  151. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.js +5 -5
  152. package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.js +12 -12
  153. package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +5 -5
  154. package/lib/azure-publicipaddress/lib/public-ip-address.js +7 -7
  155. package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +1 -1
  156. package/lib/azure-publicipaddress/test/public-ip-address.integ.js +6 -6
  157. package/lib/azure-publicipaddress/test/public-ip-address.spec.js +11 -11
  158. package/lib/azure-resourcegroup/lib/resource-group.d.ts +5 -5
  159. package/lib/azure-resourcegroup/lib/resource-group.js +7 -7
  160. package/lib/azure-resourcegroup/test/resource-group.integ.d.ts +1 -1
  161. package/lib/azure-resourcegroup/test/resource-group.integ.js +5 -5
  162. package/lib/azure-resourcegroup/test/resource-group.spec.js +14 -14
  163. package/lib/azure-roleassignment/lib/role-assignment.d.ts +3 -3
  164. package/lib/azure-roleassignment/lib/role-assignment.js +5 -5
  165. package/lib/azure-roleassignment/test/role-assignment.integ.d.ts +1 -1
  166. package/lib/azure-roleassignment/test/role-assignment.integ.js +5 -5
  167. package/lib/azure-roleassignment/test/role-assignment.spec.js +12 -12
  168. package/lib/azure-roledefinition/lib/role-definition.d.ts +3 -3
  169. package/lib/azure-roledefinition/lib/role-definition.js +5 -5
  170. package/lib/azure-roledefinition/test/role-definition.integ.d.ts +1 -1
  171. package/lib/azure-roledefinition/test/role-definition.integ.js +5 -5
  172. package/lib/azure-roledefinition/test/role-definition.spec.js +12 -12
  173. package/lib/azure-storageaccount/lib/storage-account.d.ts +6 -6
  174. package/lib/azure-storageaccount/lib/storage-account.js +8 -8
  175. package/lib/azure-storageaccount/test/storage-account.integ.d.ts +1 -1
  176. package/lib/azure-storageaccount/test/storage-account.integ.js +5 -5
  177. package/lib/azure-storageaccount/test/storage-account.spec.js +11 -11
  178. package/lib/azure-subnet/lib/subnet.d.ts +3 -3
  179. package/lib/azure-subnet/lib/subnet.js +5 -5
  180. package/lib/azure-subnet/test/subnet.integ.d.ts +1 -1
  181. package/lib/azure-subnet/test/subnet.integ.js +5 -5
  182. package/lib/azure-subnet/test/subnet.spec.js +9 -9
  183. package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +6 -6
  184. package/lib/azure-virtualmachine/lib/virtual-machine.js +8 -8
  185. package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +1 -1
  186. package/lib/azure-virtualmachine/test/virtual-machine.integ.js +5 -5
  187. package/lib/azure-virtualmachine/test/virtual-machine.spec.js +17 -17
  188. package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +6 -6
  189. package/lib/azure-virtualnetwork/lib/virtual-network.js +8 -8
  190. package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +1 -1
  191. package/lib/azure-virtualnetwork/test/virtual-network.integ.js +5 -5
  192. package/lib/azure-virtualnetwork/test/virtual-network.spec.js +12 -12
  193. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway-schemas.js +2 -2
  194. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.d.ts +9 -7
  195. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +13 -10
  196. package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.integ.d.ts +1 -1
  197. package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.integ.js +5 -5
  198. package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.spec.js +119 -11
  199. package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.d.ts +5 -5
  200. package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +7 -7
  201. package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.integ.d.ts +1 -1
  202. package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.integ.js +5 -5
  203. package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.spec.js +20 -20
  204. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.d.ts +4 -4
  205. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +6 -6
  206. package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.d.ts +4 -4
  207. package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +6 -6
  208. package/lib/azure-virtualnetworkmanager/lib/ipam-pool.d.ts +4 -4
  209. package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +6 -6
  210. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.d.ts +4 -4
  211. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +6 -6
  212. package/lib/azure-virtualnetworkmanager/lib/network-group.d.ts +4 -4
  213. package/lib/azure-virtualnetworkmanager/lib/network-group.js +6 -6
  214. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.d.ts +4 -4
  215. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +6 -6
  216. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.d.ts +4 -4
  217. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +6 -6
  218. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.d.ts +4 -4
  219. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +6 -6
  220. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.d.ts +7 -7
  221. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +9 -9
  222. package/lib/azure-virtualnetworkmanager/test/ipam-pool-static-cidr.spec.js +17 -17
  223. package/lib/azure-virtualnetworkmanager/test/ipam-pool.spec.js +15 -15
  224. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.d.ts +1 -1
  225. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.js +5 -5
  226. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.js +57 -57
  227. package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +6 -6
  228. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +8 -8
  229. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +1 -1
  230. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +5 -5
  231. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +12 -12
  232. package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.js +6 -6
  233. package/lib/core-azure/lib/azapi/azapi-resource.d.ts +7 -7
  234. package/lib/core-azure/lib/azapi/azapi-resource.js +6 -6
  235. package/lib/core-azure/lib/azapi/azapi-resource.spec.js +7 -7
  236. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +12 -12
  237. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +15 -15
  238. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +35 -35
  239. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +58 -58
  240. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +25 -25
  241. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +49 -49
  242. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +13 -13
  243. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +22 -22
  244. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +24 -24
  245. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +40 -40
  246. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +44 -44
  247. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +72 -72
  248. package/lib/core-azure/lib/azapi/providers-azapi/index.js +2 -2
  249. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +2 -2
  250. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +54 -54
  251. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +86 -86
  252. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +65 -65
  253. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +102 -102
  254. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +25 -25
  255. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +62 -62
  256. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +36 -36
  257. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +69 -69
  258. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
  259. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  260. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  261. package/lib/index.d.ts +12 -0
  262. package/lib/index.js +14 -2
  263. package/lib/testing/index.d.ts +1 -1
  264. package/lib/testing/index.js +8 -8
  265. package/lib/testing/lib/cleanup.js +1 -1
  266. package/lib/testing/lib/metadata.js +1 -1
  267. package/package.json +10 -22
  268. package/setup.js +2 -2
@@ -17,7 +17,7 @@
17
17
  * - Full backward compatibility with existing Network Interface interface
18
18
  * - JSII compliance for multi-language support
19
19
  */
20
- import * as cdktf from "cdktf";
20
+ import * as cdktn from "cdktn";
21
21
  import { Construct } from "constructs";
22
22
  import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
23
23
  import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
@@ -207,10 +207,10 @@ export interface NetworkInterfaceBody {
207
207
  */
208
208
  export declare class NetworkInterface extends AzapiResource {
209
209
  readonly props: NetworkInterfaceProps;
210
- readonly idOutput: cdktf.TerraformOutput;
211
- readonly locationOutput: cdktf.TerraformOutput;
212
- readonly nameOutput: cdktf.TerraformOutput;
213
- readonly tagsOutput: cdktf.TerraformOutput;
210
+ readonly idOutput: cdktn.TerraformOutput;
211
+ readonly locationOutput: cdktn.TerraformOutput;
212
+ readonly nameOutput: cdktn.TerraformOutput;
213
+ readonly tagsOutput: cdktn.TerraformOutput;
214
214
  /**
215
215
  * Creates a new Azure Network Interface using the VersionedAzapiResource framework
216
216
  *
@@ -22,7 +22,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
22
22
  * - Full backward compatibility with existing Network Interface interface
23
23
  * - JSII compliance for multi-language support
24
24
  */
25
- const cdktf = require("cdktf");
25
+ const cdktn = require("cdktn");
26
26
  const network_interface_schemas_1 = require("./network-interface-schemas");
27
27
  const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
28
28
  /**
@@ -78,19 +78,19 @@ class NetworkInterface extends azapi_resource_1.AzapiResource {
78
78
  this.props = props;
79
79
  // Extract properties from the AZAPI resource outputs
80
80
  // Create Terraform outputs
81
- this.idOutput = new cdktf.TerraformOutput(this, "id", {
81
+ this.idOutput = new cdktn.TerraformOutput(this, "id", {
82
82
  value: this.id,
83
83
  description: "The ID of the Network Interface",
84
84
  });
85
- this.locationOutput = new cdktf.TerraformOutput(this, "location", {
85
+ this.locationOutput = new cdktn.TerraformOutput(this, "location", {
86
86
  value: `\${${this.terraformResource.fqn}.location}`,
87
87
  description: "The location of the Network Interface",
88
88
  });
89
- this.nameOutput = new cdktf.TerraformOutput(this, "name", {
89
+ this.nameOutput = new cdktn.TerraformOutput(this, "name", {
90
90
  value: `\${${this.terraformResource.fqn}.name}`,
91
91
  description: "The name of the Network Interface",
92
92
  });
93
- this.tagsOutput = new cdktf.TerraformOutput(this, "tags", {
93
+ this.tagsOutput = new cdktn.TerraformOutput(this, "tags", {
94
94
  value: `\${${this.terraformResource.fqn}.tags}`,
95
95
  description: "The tags assigned to the Network Interface",
96
96
  });
@@ -206,8 +206,8 @@ class NetworkInterface extends azapi_resource_1.AzapiResource {
206
206
  }
207
207
  exports.NetworkInterface = NetworkInterface;
208
208
  _a = JSII_RTTI_SYMBOL_1;
209
- NetworkInterface[_a] = { fqn: "@microsoft/terraform-cdk-constructs.NetworkInterface", version: "1.8.0" };
209
+ NetworkInterface[_a] = { fqn: "@microsoft/terraform-cdk-constructs.NetworkInterface", version: "2.2.0" };
210
210
  (() => {
211
211
  azapi_resource_1.AzapiResource.registerSchemas(network_interface_schemas_1.NETWORK_INTERFACE_TYPE, network_interface_schemas_1.ALL_NETWORK_INTERFACE_VERSIONS);
212
212
  })();
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtbmV0d29ya2ludGVyZmFjZS9saWIvbmV0d29yay1pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBRUgsK0JBQStCO0FBRS9CLDJFQUdxQztBQUNyQyw4RUFHbUQ7QUFzS25EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNDRztBQUNILE1BQWEsZ0JBQWlCLFNBQVEsOEJBQWE7SUFnQmpELG9CQUFvQjtJQUVwQjs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLHFEQUFxRDtRQUVyRCwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtZQUNwRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDZCxXQUFXLEVBQUUsaUNBQWlDO1NBQy9DLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDaEUsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsWUFBWTtZQUNuRCxXQUFXLEVBQUUsdUNBQXVDO1NBQ3JELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDeEQsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFD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QUFDLEtBQUssQ0FBQyxJQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVMsQ0FBQyxHQUFXO1FBQzFCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0ZBQWdGO0lBQ2hGLHlCQUF5QjtJQUN6QixnRkFBZ0Y7SUFFaEY7O09BRUc7SUFDSyxtQkFBbUI7UUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUU7Z0JBQzlDO29CQUNFLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWE7aUJBQ3pDO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7O0FBbExILDRDQW1MQzs7O0FBbExDO0lBQ0UsOEJBQWEsQ0FBQyxlQUFlLENBQzNCLGtEQUFzQixFQUN0QiwwREFBOEIsQ0FDL0IsQ0FBQztBQUNKLENBQUMsR0FBQSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVbmlmaWVkIEF6dXJlIE5ldHdvcmsgSW50ZXJmYWNlIGltcGxlbWVudGF0aW9uIHVzaW5nIFZlcnNpb25lZEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gKlxuICogVGhpcyBjbGFzcyByZXBsYWNlcyBhbGwgdmVyc2lvbi1zcGVjaWZpYyBOZXR3b3JrIEludGVyZmFjZSBpbXBsZW1lbnRhdGlvbnMgd2l0aCBhIHNpbmdsZVxuICogdW5pZmllZCBjbGFzcyB0aGF0IGF1dG9tYXRpY2FsbHkgaGFuZGxlcyB2ZXJzaW9uIG1hbmFnZW1lbnQsIHNjaGVtYSB2YWxpZGF0aW9uLCBhbmRcbiAqIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uIGFjcm9zcyBhbGwgc3VwcG9ydGVkIEFQSSB2ZXJzaW9ucy5cbiAqXG4gKiBTdXBwb3J0ZWQgQVBJIFZlcnNpb25zOlxuICogLSAyMDI0LTA3LTAxIChBY3RpdmUpXG4gKiAtIDIwMjQtMTAtMDEgKEFjdGl2ZSlcbiAqIC0gMjAyNS0wMS0wMSAoQWN0aXZlLCBMYXRlc3QpXG4gKlxuICogRmVhdHVyZXM6XG4gKiAtIEF1dG9tYXRpYyBsYXRlc3QgdmVyc2lvbiByZXNvbHV0aW9uIHdoZW4gbm8gdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAqIC0gRXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nIGZvciBzdGFiaWxpdHkgcmVxdWlyZW1lbnRzXG4gKiAtIFNjaGVtYS1kcml2ZW4gdmFsaWRhdGlvbiBhbmQgdHJhbnNmb3JtYXRpb25cbiAqIC0gRnVsbCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggZXhpc3RpbmcgTmV0d29yayBJbnRlcmZhY2UgaW50ZXJmYWNlXG4gKiAtIEpTSUkgY29tcGxpYW5jZSBmb3IgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuICovXG5cbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEFMTF9ORVRXT1JLX0lOVEVSRkFDRV9WRVJTSU9OUyxcbiAgTkVUV09SS19JTlRFUkZBQ0VfVFlQRSxcbn0gZnJvbSBcIi4vbmV0d29yay1pbnRlcmZhY2Utc2NoZW1hc1wiO1xuaW1wb3J0IHtcbiAgQXphcGlSZXNvdXJjZSxcbiAgQXphcGlSZXNvdXJjZVByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvYXphcGktcmVzb3VyY2VcIjtcbmltcG9ydCB7IEFwaVNjaGVtYSB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLyoqXG4gKiBTdWJuZXQgcmVmZXJlbmNlIGZvciBOZXR3b3JrIEludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtJbnRlcmZhY2VTdWJuZXRSZWZlcmVuY2Uge1xuICAvKipcbiAgICogU3VibmV0IHJlc291cmNlIElEXG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFB1YmxpYyBJUCBhZGRyZXNzIHJlZmVyZW5jZSBmb3IgTmV0d29yayBJbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrSW50ZXJmYWNlUHVibGljSVBSZWZlcmVuY2Uge1xuICAvKipcbiAgICogUHVibGljIElQIGFkZHJlc3MgcmVzb3VyY2UgSURcbiAgICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogTmV0d29yayBTZWN1cml0eSBHcm91cCByZWZlcmVuY2UgZm9yIE5ldHdvcmsgSW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya0ludGVyZmFjZU5TR1JlZmVyZW5jZSB7XG4gIC8qKlxuICAgKiBOZXR3b3JrIFNlY3VyaXR5IEdyb3VwIHJlc291cmNlIElEXG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIElQIENvbmZpZ3VyYXRpb24gZm9yIE5ldHdvcmsgSW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya0ludGVyZmFjZUlQQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBJUCBjb25maWd1cmF0aW9uXG4gICAqIEBleGFtcGxlIFwiaXBjb25maWcxXCJcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogU3VibmV0IHJlZmVyZW5jZSB3aXRoIGlkIHByb3BlcnR5XG4gICAqIEBleGFtcGxlIHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvLi4uL3N1Ym5ldHMvbXlTdWJuZXRcIiB9XG4gICAqL1xuICByZWFkb25seSBzdWJuZXQ6IE5ldHdvcmtJbnRlcmZhY2VTdWJuZXRSZWZlcmVuY2U7XG5cbiAgLyoqXG4gICAqIFByaXZhdGUgSVAgYWxsb2NhdGlvbiBtZXRob2RcbiAgICogQGV4YW1wbGUgXCJEeW5hbWljXCIgb3IgXCJTdGF0aWNcIlxuICAgKiBAZGVmYXVsdFZhbHVlIFwiRHluYW1pY1wiXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcml2YXRlIElQIGFkZHJlc3MgKHJlcXVpcmVkIGlmIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2QgaXMgU3RhdGljKVxuICAgKiBAZXhhbXBsZSBcIjEwLjAuMS40XCJcbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVJUEFkZHJlc3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFB1YmxpYyBJUCBhZGRyZXNzIHJlZmVyZW5jZSB3aXRoIGlkIHByb3BlcnR5XG4gICAqIE9wdGlvbmFsIC0gZm9yIE5JQ3MgdGhhdCBuZWVkIHB1YmxpYyBJUHNcbiAgICogQGV4YW1wbGUgeyBpZDogXCIvc3Vic2NyaXB0aW9ucy8uLi4vcHVibGljSVBBZGRyZXNzZXMvbXlQdWJsaWNJUFwiIH1cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0lQQWRkcmVzcz86IE5ldHdvcmtJbnRlcmZhY2VQdWJsaWNJUFJlZmVyZW5jZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGlzIHRoZSBwcmltYXJ5IElQIGNvbmZpZ3VyYXRpb25cbiAgICogQXQgbGVhc3Qgb25lIElQIGNvbmZpZ3VyYXRpb24gbXVzdCBiZSBwcmltYXJ5XG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHByaW1hcnk/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEROUyBzZXR0aW5ncyBjb25maWd1cmF0aW9uIGZvciBOZXR3b3JrIEludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtJbnRlcmZhY2VEbnNTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBBcnJheSBvZiBETlMgc2VydmVyIElQIGFkZHJlc3Nlc1xuICAgKiBAZXhhbXBsZSBbXCIxMC4wLjAuNFwiLCBcIjEwLjAuMC41XCJdXG4gICAqL1xuICByZWFkb25seSBkbnNTZXJ2ZXJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEludGVybmFsIEROUyBuYW1lIGxhYmVsIGZvciB0aGUgTklDXG4gICAqIEBleGFtcGxlIFwibXl2bVwiXG4gICAqL1xuICByZWFkb25seSBpbnRlcm5hbERuc05hbWVMYWJlbD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgdW5pZmllZCBBenVyZSBOZXR3b3JrIEludGVyZmFjZVxuICpcbiAqIEV4dGVuZHMgVmVyc2lvbmVkQXphcGlSZXNvdXJjZVByb3BzIHdpdGggTmV0d29yayBJbnRlcmZhY2Ugc3BlY2lmaWMgcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtJbnRlcmZhY2VQcm9wcyBleHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBJUCBjb25maWd1cmF0aW9ucyBmb3IgdGhlIG5ldHdvcmsgaW50ZXJmYWNlXG4gICAqIEF0IGxlYXN0IG9uZSBJUCBjb25maWd1cmF0aW9uIGlzIHJlcXVpcmVkXG4gICAqIE9uZSBJUCBjb25maWd1cmF0aW9uIG11c3QgYmUgbWFya2VkIGFzIHByaW1hcnlcbiAgICovXG4gIHJlYWRvbmx5IGlwQ29uZmlndXJhdGlvbnM6IE5ldHdvcmtJbnRlcmZhY2VJUENvbmZpZ3VyYXRpb25bXTtcblxuICAvKipcbiAgICogTmV0d29yayBTZWN1cml0eSBHcm91cCByZWZlcmVuY2Ugd2l0aCBpZCBwcm9wZXJ0eVxuICAgKiBPcHRpb25hbCAtIGFzc29jaWF0ZXMgYW4gTlNHIHdpdGggdGhpcyBOSUNcbiAgICogQGV4YW1wbGUgeyBpZDogXCIvc3Vic2NyaXB0aW9ucy8uLi4vbmV0d29ya1NlY3VyaXR5R3JvdXBzL215TlNHXCIgfVxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya1NlY3VyaXR5R3JvdXA/OiBOZXR3b3JrSW50ZXJmYWNlTlNHUmVmZXJlbmNlO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgYWNjZWxlcmF0ZWQgbmV0d29ya2luZyBmb3IgaGlnaC1wZXJmb3JtYW5jZSBzY2VuYXJpb3NcbiAgICogUmVxdWlyZXMgc3VwcG9ydGVkIFZNIHNpemVcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUFjY2VsZXJhdGVkTmV0d29ya2luZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBJUCBmb3J3YXJkaW5nIGZvciBuZXR3b3JrIHZpcnR1YWwgYXBwbGlhbmNlc1xuICAgKiBBbGxvd3MgTklDIHRvIGZvcndhcmQgdHJhZmZpYyBub3QgZGVzdGluZWQgZm9yIGl0cyBJUFxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlSVBGb3J3YXJkaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRE5TIHNldHRpbmdzIGNvbmZpZ3VyYXRpb25cbiAgICogT3B0aW9uYWwgLSBjb25maWd1cmVzIEROUyBzZXJ2ZXJzIGZvciB0aGUgTklDXG4gICAqL1xuICByZWFkb25seSBkbnNTZXR0aW5ncz86IE5ldHdvcmtJbnRlcmZhY2VEbnNTZXR0aW5ncztcblxuICAvKipcbiAgICogVGhlIGxpZmVjeWNsZSBydWxlcyB0byBpZ25vcmUgY2hhbmdlc1xuICAgKiBAZXhhbXBsZSBbXCJ0YWdzXCJdXG4gICAqL1xuICByZWFkb25seSBpZ25vcmVDaGFuZ2VzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFJlc291cmNlIGdyb3VwIElEIHdoZXJlIHRoZSBuZXR3b3JrIGludGVyZmFjZSB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlR3JvdXBJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBOZXR3b3JrIEludGVyZmFjZSBwcm9wZXJ0aWVzIGZvciB0aGUgcmVxdWVzdCBib2R5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya0ludGVyZmFjZUJvZHlQcm9wZXJ0aWVzIHtcbiAgcmVhZG9ubHkgaXBDb25maWd1cmF0aW9uczogTmV0d29ya0ludGVyZmFjZUlQQ29uZmlndXJhdGlvbltdO1xuICByZWFkb25seSBuZXR3b3JrU2VjdXJpdHlHcm91cD86IE5ldHdvcmtJbnRlcmZhY2VOU0dSZWZlcmVuY2U7XG4gIHJlYWRvbmx5IGVuYWJsZUFjY2VsZXJhdGVkTmV0d29ya2luZz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGVuYWJsZUlQRm9yd2FyZGluZz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGRuc1NldHRpbmdzPzogTmV0d29ya0ludGVyZmFjZURuc1NldHRpbmdzO1xufVxuXG4vKipcbiAqIFRoZSByZXNvdXJjZSBib2R5IGludGVyZmFjZSBmb3IgQXp1cmUgTmV0d29yayBJbnRlcmZhY2UgQVBJIGNhbGxzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya0ludGVyZmFjZUJvZHkge1xuICByZWFkb25seSBsb2NhdGlvbjogc3RyaW5nO1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogTmV0d29ya0ludGVyZmFjZUJvZHlQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIFVuaWZpZWQgQXp1cmUgTmV0d29yayBJbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cbiAqXG4gKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgc2luZ2xlLCB2ZXJzaW9uLWF3YXJlIGltcGxlbWVudGF0aW9uIHRoYXQgcmVwbGFjZXMgYWxsXG4gKiB2ZXJzaW9uLXNwZWNpZmljIE5ldHdvcmsgSW50ZXJmYWNlIGNsYXNzZXMuIEl0IGF1dG9tYXRpY2FsbHkgaGFuZGxlcyB2ZXJzaW9uXG4gKiByZXNvbHV0aW9uLCBzY2hlbWEgdmFsaWRhdGlvbiwgYW5kIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uIHdoaWxlIG1haW50YWluaW5nXG4gKiBmdWxsIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEJhc2ljIHVzYWdlIHdpdGggYXV0b21hdGljIHZlcnNpb24gcmVzb2x1dGlvbjpcbiAqIGNvbnN0IG5pYyA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHRoaXMsIFwibmljXCIsIHtcbiAqICAgbmFtZTogXCJteW5pY1wiLFxuICogICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAqICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICogICBpcENvbmZpZ3VyYXRpb25zOiBbe1xuICogICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gKiAgICAgc3VibmV0OiB7IGlkOiBzdWJuZXQuaWQgfSxcbiAqICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAqICAgICBwcmltYXJ5OiB0cnVlXG4gKiAgIH1dXG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVXNhZ2Ugd2l0aCBleHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmc6XG4gKiBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZSh0aGlzLCBcIm5pY1wiLCB7XG4gKiAgIG5hbWU6IFwibXluaWNcIixcbiAqICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gKiAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAqICAgaXBDb25maWd1cmF0aW9uczogW3tcbiAqICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICogICAgIHN1Ym5ldDogeyBpZDogc3VibmV0LmlkIH0sXG4gKiAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gKiAgICAgcHJpbWFyeTogdHJ1ZVxuICogICB9XSxcbiAqICAgYXBpVmVyc2lvbjogXCIyMDI0LTA3LTAxXCIsXG4gKiB9KTtcbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgTmV0d29ya0ludGVyZmFjZSBleHRlbmRzIEF6YXBpUmVzb3VyY2Uge1xuICBzdGF0aWMge1xuICAgIEF6YXBpUmVzb3VyY2UucmVnaXN0ZXJTY2hlbWFzKFxuICAgICAgTkVUV09SS19JTlRFUkZBQ0VfVFlQRSxcbiAgICAgIEFMTF9ORVRXT1JLX0lOVEVSRkFDRV9WRVJTSU9OUyxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBOZXR3b3JrSW50ZXJmYWNlUHJvcHM7XG5cbiAgLy8gT3V0cHV0IHByb3BlcnRpZXMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZ1xuICBwdWJsaWMgcmVhZG9ubHkgaWRPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IGxvY2F0aW9uT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSB0YWdzT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLy8gUHVibGljIHByb3BlcnRpZXNcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBBenVyZSBOZXR3b3JrIEludGVyZmFjZSB1c2luZyB0aGUgVmVyc2lvbmVkQXphcGlSZXNvdXJjZSBmcmFtZXdvcmtcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgaW5zdGFuY2VcbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgTmV0d29yayBJbnRlcmZhY2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBOZXR3b3JrSW50ZXJmYWNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIC8vIEV4dHJhY3QgcHJvcGVydGllcyBmcm9tIHRoZSBBWkFQSSByZXNvdXJjZSBvdXRwdXRzXG5cbiAgICAvLyBDcmVhdGUgVGVycmFmb3JtIG91dHB1dHNcbiAgICB0aGlzLmlkT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImlkXCIsIHtcbiAgICAgIHZhbHVlOiB0aGlzLmlkLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIElEIG9mIHRoZSBOZXR3b3JrIEludGVyZmFjZVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5sb2NhdGlvbk91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJsb2NhdGlvblwiLCB7XG4gICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5sb2NhdGlvbn1gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGxvY2F0aW9uIG9mIHRoZSBOZXR3b3JrIEludGVyZmFjZVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uYW1lT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcIm5hbWVcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ubmFtZX1gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIG5hbWUgb2YgdGhlIE5ldHdvcmsgSW50ZXJmYWNlXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLnRhZ3NPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwidGFnc1wiLCB7XG4gICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS50YWdzfWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgdGFncyBhc3NpZ25lZCB0byB0aGUgTmV0d29yayBJbnRlcmZhY2VcIixcbiAgICB9KTtcblxuICAgIC8vIE92ZXJyaWRlIGxvZ2ljYWwgSURzXG4gICAgdGhpcy5pZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImlkXCIpO1xuICAgIHRoaXMubG9jYXRpb25PdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJsb2NhdGlvblwiKTtcbiAgICB0aGlzLm5hbWVPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJuYW1lXCIpO1xuICAgIHRoaXMudGFnc091dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcInRhZ3NcIik7XG5cbiAgICAvLyBBcHBseSBpZ25vcmUgY2hhbmdlcyBpZiBzcGVjaWZpZWRcbiAgICB0aGlzLl9hcHBseUlnbm9yZUNoYW5nZXMoKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFJFUVVJUkVEIEFCU1RSQUNUIE1FVEhPRFMgRlJPTSBWZXJzaW9uZWRBemFwaVJlc291cmNlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRlZmF1bHQgQVBJIHZlcnNpb24gdG8gdXNlIHdoZW4gbm8gZXhwbGljaXQgdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjIwMjQtMTAtMDFcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBenVyZSByZXNvdXJjZSB0eXBlIGZvciBOZXR3b3JrIEludGVyZmFjZXNcbiAgICovXG4gIHByb3RlY3RlZCByZXNvdXJjZVR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gTkVUV09SS19JTlRFUkZBQ0VfVFlQRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBUEkgc2NoZW1hIGZvciB0aGUgcmVzb2x2ZWQgdmVyc2lvblxuICAgKi9cbiAgcHJvdGVjdGVkIGFwaVNjaGVtYSgpOiBBcGlTY2hlbWEge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVTY2hlbWEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCBsb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgTmV0d29yayBJbnRlcmZhY2VzXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVxdWlyZXNMb2NhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZUJvZHkocHJvcHM6IGFueSk6IGFueSB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIE5ldHdvcmtJbnRlcmZhY2VQcm9wcztcblxuICAgIC8vIFRyYW5zZm9ybSBpcENvbmZpZ3VyYXRpb25zIHRvIG1hdGNoIEF6dXJlIEFQSSBzY2hlbWFcbiAgICAvLyBFYWNoIElQIGNvbmZpZ3VyYXRpb24gbmVlZHMgaXRzIHByb3BlcnRpZXMgbmVzdGVkIHVuZGVyIGEgXCJwcm9wZXJ0aWVzXCIga2V5XG4gICAgY29uc3QgaXBDb25maWd1cmF0aW9ucyA9IHR5cGVkUHJvcHMuaXBDb25maWd1cmF0aW9ucy5tYXAoKGlwQ29uZmlnKSA9PiAoe1xuICAgICAgbmFtZTogaXBDb25maWcubmFtZSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgc3VibmV0OiBpcENvbmZpZy5zdWJuZXQsXG4gICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6XG4gICAgICAgICAgaXBDb25maWcucHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZCB8fCBcIkR5bmFtaWNcIixcbiAgICAgICAgcHJpdmF0ZUlQQWRkcmVzczogaXBDb25maWcucHJpdmF0ZUlQQWRkcmVzcyxcbiAgICAgICAgcHVibGljSVBBZGRyZXNzOiBpcENvbmZpZy5wdWJsaWNJUEFkZHJlc3MsXG4gICAgICAgIHByaW1hcnk6IGlwQ29uZmlnLnByaW1hcnksXG4gICAgICB9LFxuICAgIH0pKTtcblxuICAgIHJldHVybiB7XG4gICAgICBsb2NhdGlvbjogdGhpcy5sb2NhdGlvbixcbiAgICAgIHRhZ3M6IHRoaXMuYWxsVGFncygpLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBpcENvbmZpZ3VyYXRpb25zLFxuICAgICAgICBuZXR3b3JrU2VjdXJpdHlHcm91cDogdHlwZWRQcm9wcy5uZXR3b3JrU2VjdXJpdHlHcm91cCxcbiAgICAgICAgZW5hYmxlQWNjZWxlcmF0ZWROZXR3b3JraW5nOlxuICAgICAgICAgIHR5cGVkUHJvcHMuZW5hYmxlQWNjZWxlcmF0ZWROZXR3b3JraW5nIHx8IGZhbHNlLFxuICAgICAgICBlbmFibGVJUEZvcndhcmRpbmc6IHR5cGVkUHJvcHMuZW5hYmxlSVBGb3J3YXJkaW5nIHx8IGZhbHNlLFxuICAgICAgICBkbnNTZXR0aW5nczogdHlwZWRQcm9wcy5kbnNTZXR0aW5ncyxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBVQkxJQyBNRVRIT0RTIEZPUiBORVRXT1JLIElOVEVSRkFDRSBPUEVSQVRJT05TXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHJpdmF0ZSBJUCBhZGRyZXNzIG9mIHRoZSBwcmltYXJ5IElQIGNvbmZpZ3VyYXRpb25cbiAgICogTm90ZTogVGhpcyBtYXkgbm90IGJlIGF2YWlsYWJsZSB1bnRpbCBhZnRlciB0aGUgcmVzb3VyY2UgaXMgY3JlYXRlZFxuICAgKiBUaGUgYWN0dWFsIElQIGFkZHJlc3MgbG9jYXRpb24gaW4gQXp1cmUgQVBJIHJlc3BvbnNlIHZhcmllcyBieSBBUEkgdmVyc2lvblxuICAgKi9cbiAgcHVibGljIGdldCBwcml2YXRlSVBBZGRyZXNzKCk6IHN0cmluZyB7XG4gICAgLy8gVGhlIHByaXZhdGUgSVAgYWRkcmVzcyBpcyB0eXBpY2FsbHkgYXZhaWxhYmxlIGF0IHJ1bnRpbWUgYnV0IG5vdCBpbiBUZXJyYWZvcm0gb3V0cHV0XG4gICAgLy8gVXNlcnMgc2hvdWxkIHF1ZXJ5IHRoZSBBenVyZSBBUEkgZGlyZWN0bHkgZm9yIHRoZSBwcml2YXRlIElQIGlmIG5lZWRlZFxuICAgIHJldHVybiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59LmlkfWA7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgdGFnIHRvIHRoZSBOZXR3b3JrIEludGVyZmFjZVxuICAgKi9cbiAgcHVibGljIGFkZFRhZyhrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcm9wcy50YWdzKSB7XG4gICAgICAodGhpcy5wcm9wcyBhcyBhbnkpLnRhZ3MgPSB7fTtcbiAgICB9XG4gICAgdGhpcy5wcm9wcy50YWdzIVtrZXldID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgdGFnIGZyb20gdGhlIE5ldHdvcmsgSW50ZXJmYWNlXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlVGFnKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHMudGFncyAmJiB0aGlzLnByb3BzLnRhZ3Nba2V5XSkge1xuICAgICAgZGVsZXRlIHRoaXMucHJvcHMudGFnc1trZXldO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBSSVZBVEUgSEVMUEVSIE1FVEhPRFNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogQXBwbGllcyBpZ25vcmUgY2hhbmdlcyBsaWZlY3ljbGUgcnVsZXMgaWYgc3BlY2lmaWVkIGluIHByb3BzXG4gICAqL1xuICBwcml2YXRlIF9hcHBseUlnbm9yZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcyAmJiB0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5hZGRPdmVycmlkZShcImxpZmVjeWNsZVwiLCBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZ25vcmVfY2hhbmdlczogdGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzLFxuICAgICAgICB9LFxuICAgICAgXSk7XG4gICAgfVxuICB9XG59XG4iXX0=
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtbmV0d29ya2ludGVyZmFjZS9saWIvbmV0d29yay1pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBRUgsK0JBQStCO0FBRS9CLDJFQUdxQztBQUNyQyw4RUFHbUQ7QUFzS25EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNDRztBQUNILE1BQWEsZ0JBQWlCLFNBQVEsOEJBQWE7SUFnQmpELG9CQUFvQjtJQUVwQjs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLHFEQUFxRDtRQUVyRCwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtZQUNwRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDZCxXQUFXLEVBQUUsaUNBQWlDO1NBQy9DLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDaEUsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsWUFBWTtZQUNuRCxXQUFXLEVBQUUsdUNBQXVDO1NBQ3JELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDeEQsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFD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QUFDLEtBQUssQ0FBQyxJQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVMsQ0FBQyxHQUFXO1FBQzFCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0ZBQWdGO0lBQ2hGLHlCQUF5QjtJQUN6QixnRkFBZ0Y7SUFFaEY7O09BRUc7SUFDSyxtQkFBbUI7UUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUU7Z0JBQzlDO29CQUNFLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWE7aUJBQ3pDO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7O0FBbExILDRDQW1MQzs7O0FBbExDO0lBQ0UsOEJBQWEsQ0FBQyxlQUFlLENBQzNCLGtEQUFzQixFQUN0QiwwREFBOEIsQ0FDL0IsQ0FBQztBQUNKLENBQUMsR0FBQSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVbmlmaWVkIEF6dXJlIE5ldHdvcmsgSW50ZXJmYWNlIGltcGxlbWVudGF0aW9uIHVzaW5nIFZlcnNpb25lZEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gKlxuICogVGhpcyBjbGFzcyByZXBsYWNlcyBhbGwgdmVyc2lvbi1zcGVjaWZpYyBOZXR3b3JrIEludGVyZmFjZSBpbXBsZW1lbnRhdGlvbnMgd2l0aCBhIHNpbmdsZVxuICogdW5pZmllZCBjbGFzcyB0aGF0IGF1dG9tYXRpY2FsbHkgaGFuZGxlcyB2ZXJzaW9uIG1hbmFnZW1lbnQsIHNjaGVtYSB2YWxpZGF0aW9uLCBhbmRcbiAqIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uIGFjcm9zcyBhbGwgc3VwcG9ydGVkIEFQSSB2ZXJzaW9ucy5cbiAqXG4gKiBTdXBwb3J0ZWQgQVBJIFZlcnNpb25zOlxuICogLSAyMDI0LTA3LTAxIChBY3RpdmUpXG4gKiAtIDIwMjQtMTAtMDEgKEFjdGl2ZSlcbiAqIC0gMjAyNS0wMS0wMSAoQWN0aXZlLCBMYXRlc3QpXG4gKlxuICogRmVhdHVyZXM6XG4gKiAtIEF1dG9tYXRpYyBsYXRlc3QgdmVyc2lvbiByZXNvbHV0aW9uIHdoZW4gbm8gdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAqIC0gRXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nIGZvciBzdGFiaWxpdHkgcmVxdWlyZW1lbnRzXG4gKiAtIFNjaGVtYS1kcml2ZW4gdmFsaWRhdGlvbiBhbmQgdHJhbnNmb3JtYXRpb25cbiAqIC0gRnVsbCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggZXhpc3RpbmcgTmV0d29yayBJbnRlcmZhY2UgaW50ZXJmYWNlXG4gKiAtIEpTSUkgY29tcGxpYW5jZSBmb3IgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuICovXG5cbmltcG9ydCAqIGFzIGNka3RuIGZyb20gXCJjZGt0blwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEFMTF9ORVRXT1JLX0lOVEVSRkFDRV9WRVJTSU9OUyxcbiAgTkVUV09SS19JTlRFUkZBQ0VfVFlQRSxcbn0gZnJvbSBcIi4vbmV0d29yay1pbnRlcmZhY2Utc2NoZW1hc1wiO1xuaW1wb3J0IHtcbiAgQXphcGlSZXNvdXJjZSxcbiAgQXphcGlSZXNvdXJjZVByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvYXphcGktcmVzb3VyY2VcIjtcbmltcG9ydCB7IEFwaVNjaGVtYSB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLyoqXG4gKiBTdWJuZXQgcmVmZXJlbmNlIGZvciBOZXR3b3JrIEludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtJbnRlcmZhY2VTdWJuZXRSZWZlcmVuY2Uge1xuICAvKipcbiAgICogU3VibmV0IHJlc291cmNlIElEXG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFB1YmxpYyBJUCBhZGRyZXNzIHJlZmVyZW5jZSBmb3IgTmV0d29yayBJbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrSW50ZXJmYWNlUHVibGljSVBSZWZlcmVuY2Uge1xuICAvKipcbiAgICogUHVibGljIElQIGFkZHJlc3MgcmVzb3VyY2UgSURcbiAgICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogTmV0d29yayBTZWN1cml0eSBHcm91cCByZWZlcmVuY2UgZm9yIE5ldHdvcmsgSW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya0ludGVyZmFjZU5TR1JlZmVyZW5jZSB7XG4gIC8qKlxuICAgKiBOZXR3b3JrIFNlY3VyaXR5IEdyb3VwIHJlc291cmNlIElEXG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIElQIENvbmZpZ3VyYXRpb24gZm9yIE5ldHdvcmsgSW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya0ludGVyZmFjZUlQQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBJUCBjb25maWd1cmF0aW9uXG4gICAqIEBleGFtcGxlIFwiaXBjb25maWcxXCJcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogU3VibmV0IHJlZmVyZW5jZSB3aXRoIGlkIHByb3BlcnR5XG4gICAqIEBleGFtcGxlIHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvLi4uL3N1Ym5ldHMvbXlTdWJuZXRcIiB9XG4gICAqL1xuICByZWFkb25seSBzdWJuZXQ6IE5ldHdvcmtJbnRlcmZhY2VTdWJuZXRSZWZlcmVuY2U7XG5cbiAgLyoqXG4gICAqIFByaXZhdGUgSVAgYWxsb2NhdGlvbiBtZXRob2RcbiAgICogQGV4YW1wbGUgXCJEeW5hbWljXCIgb3IgXCJTdGF0aWNcIlxuICAgKiBAZGVmYXVsdFZhbHVlIFwiRHluYW1pY1wiXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcml2YXRlIElQIGFkZHJlc3MgKHJlcXVpcmVkIGlmIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2QgaXMgU3RhdGljKVxuICAgKiBAZXhhbXBsZSBcIjEwLjAuMS40XCJcbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVJUEFkZHJlc3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFB1YmxpYyBJUCBhZGRyZXNzIHJlZmVyZW5jZSB3aXRoIGlkIHByb3BlcnR5XG4gICAqIE9wdGlvbmFsIC0gZm9yIE5JQ3MgdGhhdCBuZWVkIHB1YmxpYyBJUHNcbiAgICogQGV4YW1wbGUgeyBpZDogXCIvc3Vic2NyaXB0aW9ucy8uLi4vcHVibGljSVBBZGRyZXNzZXMvbXlQdWJsaWNJUFwiIH1cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0lQQWRkcmVzcz86IE5ldHdvcmtJbnRlcmZhY2VQdWJsaWNJUFJlZmVyZW5jZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGlzIHRoZSBwcmltYXJ5IElQIGNvbmZpZ3VyYXRpb25cbiAgICogQXQgbGVhc3Qgb25lIElQIGNvbmZpZ3VyYXRpb24gbXVzdCBiZSBwcmltYXJ5XG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHByaW1hcnk/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEROUyBzZXR0aW5ncyBjb25maWd1cmF0aW9uIGZvciBOZXR3b3JrIEludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtJbnRlcmZhY2VEbnNTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBBcnJheSBvZiBETlMgc2VydmVyIElQIGFkZHJlc3Nlc1xuICAgKiBAZXhhbXBsZSBbXCIxMC4wLjAuNFwiLCBcIjEwLjAuMC41XCJdXG4gICAqL1xuICByZWFkb25seSBkbnNTZXJ2ZXJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEludGVybmFsIEROUyBuYW1lIGxhYmVsIGZvciB0aGUgTklDXG4gICAqIEBleGFtcGxlIFwibXl2bVwiXG4gICAqL1xuICByZWFkb25seSBpbnRlcm5hbERuc05hbWVMYWJlbD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgdW5pZmllZCBBenVyZSBOZXR3b3JrIEludGVyZmFjZVxuICpcbiAqIEV4dGVuZHMgVmVyc2lvbmVkQXphcGlSZXNvdXJjZVByb3BzIHdpdGggTmV0d29yayBJbnRlcmZhY2Ugc3BlY2lmaWMgcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtJbnRlcmZhY2VQcm9wcyBleHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBJUCBjb25maWd1cmF0aW9ucyBmb3IgdGhlIG5ldHdvcmsgaW50ZXJmYWNlXG4gICAqIEF0IGxlYXN0IG9uZSBJUCBjb25maWd1cmF0aW9uIGlzIHJlcXVpcmVkXG4gICAqIE9uZSBJUCBjb25maWd1cmF0aW9uIG11c3QgYmUgbWFya2VkIGFzIHByaW1hcnlcbiAgICovXG4gIHJlYWRvbmx5IGlwQ29uZmlndXJhdGlvbnM6IE5ldHdvcmtJbnRlcmZhY2VJUENvbmZpZ3VyYXRpb25bXTtcblxuICAvKipcbiAgICogTmV0d29yayBTZWN1cml0eSBHcm91cCByZWZlcmVuY2Ugd2l0aCBpZCBwcm9wZXJ0eVxuICAgKiBPcHRpb25hbCAtIGFzc29jaWF0ZXMgYW4gTlNHIHdpdGggdGhpcyBOSUNcbiAgICogQGV4YW1wbGUgeyBpZDogXCIvc3Vic2NyaXB0aW9ucy8uLi4vbmV0d29ya1NlY3VyaXR5R3JvdXBzL215TlNHXCIgfVxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya1NlY3VyaXR5R3JvdXA/OiBOZXR3b3JrSW50ZXJmYWNlTlNHUmVmZXJlbmNlO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgYWNjZWxlcmF0ZWQgbmV0d29ya2luZyBmb3IgaGlnaC1wZXJmb3JtYW5jZSBzY2VuYXJpb3NcbiAgICogUmVxdWlyZXMgc3VwcG9ydGVkIFZNIHNpemVcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUFjY2VsZXJhdGVkTmV0d29ya2luZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBJUCBmb3J3YXJkaW5nIGZvciBuZXR3b3JrIHZpcnR1YWwgYXBwbGlhbmNlc1xuICAgKiBBbGxvd3MgTklDIHRvIGZvcndhcmQgdHJhZmZpYyBub3QgZGVzdGluZWQgZm9yIGl0cyBJUFxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlSVBGb3J3YXJkaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRE5TIHNldHRpbmdzIGNvbmZpZ3VyYXRpb25cbiAgICogT3B0aW9uYWwgLSBjb25maWd1cmVzIEROUyBzZXJ2ZXJzIGZvciB0aGUgTklDXG4gICAqL1xuICByZWFkb25seSBkbnNTZXR0aW5ncz86IE5ldHdvcmtJbnRlcmZhY2VEbnNTZXR0aW5ncztcblxuICAvKipcbiAgICogVGhlIGxpZmVjeWNsZSBydWxlcyB0byBpZ25vcmUgY2hhbmdlc1xuICAgKiBAZXhhbXBsZSBbXCJ0YWdzXCJdXG4gICAqL1xuICByZWFkb25seSBpZ25vcmVDaGFuZ2VzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFJlc291cmNlIGdyb3VwIElEIHdoZXJlIHRoZSBuZXR3b3JrIGludGVyZmFjZSB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlR3JvdXBJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBOZXR3b3JrIEludGVyZmFjZSBwcm9wZXJ0aWVzIGZvciB0aGUgcmVxdWVzdCBib2R5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya0ludGVyZmFjZUJvZHlQcm9wZXJ0aWVzIHtcbiAgcmVhZG9ubHkgaXBDb25maWd1cmF0aW9uczogTmV0d29ya0ludGVyZmFjZUlQQ29uZmlndXJhdGlvbltdO1xuICByZWFkb25seSBuZXR3b3JrU2VjdXJpdHlHcm91cD86IE5ldHdvcmtJbnRlcmZhY2VOU0dSZWZlcmVuY2U7XG4gIHJlYWRvbmx5IGVuYWJsZUFjY2VsZXJhdGVkTmV0d29ya2luZz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGVuYWJsZUlQRm9yd2FyZGluZz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGRuc1NldHRpbmdzPzogTmV0d29ya0ludGVyZmFjZURuc1NldHRpbmdzO1xufVxuXG4vKipcbiAqIFRoZSByZXNvdXJjZSBib2R5IGludGVyZmFjZSBmb3IgQXp1cmUgTmV0d29yayBJbnRlcmZhY2UgQVBJIGNhbGxzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya0ludGVyZmFjZUJvZHkge1xuICByZWFkb25seSBsb2NhdGlvbjogc3RyaW5nO1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogTmV0d29ya0ludGVyZmFjZUJvZHlQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIFVuaWZpZWQgQXp1cmUgTmV0d29yayBJbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cbiAqXG4gKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgc2luZ2xlLCB2ZXJzaW9uLWF3YXJlIGltcGxlbWVudGF0aW9uIHRoYXQgcmVwbGFjZXMgYWxsXG4gKiB2ZXJzaW9uLXNwZWNpZmljIE5ldHdvcmsgSW50ZXJmYWNlIGNsYXNzZXMuIEl0IGF1dG9tYXRpY2FsbHkgaGFuZGxlcyB2ZXJzaW9uXG4gKiByZXNvbHV0aW9uLCBzY2hlbWEgdmFsaWRhdGlvbiwgYW5kIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uIHdoaWxlIG1haW50YWluaW5nXG4gKiBmdWxsIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEJhc2ljIHVzYWdlIHdpdGggYXV0b21hdGljIHZlcnNpb24gcmVzb2x1dGlvbjpcbiAqIGNvbnN0IG5pYyA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHRoaXMsIFwibmljXCIsIHtcbiAqICAgbmFtZTogXCJteW5pY1wiLFxuICogICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAqICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICogICBpcENvbmZpZ3VyYXRpb25zOiBbe1xuICogICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gKiAgICAgc3VibmV0OiB7IGlkOiBzdWJuZXQuaWQgfSxcbiAqICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAqICAgICBwcmltYXJ5OiB0cnVlXG4gKiAgIH1dXG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVXNhZ2Ugd2l0aCBleHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmc6XG4gKiBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZSh0aGlzLCBcIm5pY1wiLCB7XG4gKiAgIG5hbWU6IFwibXluaWNcIixcbiAqICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gKiAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAqICAgaXBDb25maWd1cmF0aW9uczogW3tcbiAqICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICogICAgIHN1Ym5ldDogeyBpZDogc3VibmV0LmlkIH0sXG4gKiAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gKiAgICAgcHJpbWFyeTogdHJ1ZVxuICogICB9XSxcbiAqICAgYXBpVmVyc2lvbjogXCIyMDI0LTA3LTAxXCIsXG4gKiB9KTtcbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgTmV0d29ya0ludGVyZmFjZSBleHRlbmRzIEF6YXBpUmVzb3VyY2Uge1xuICBzdGF0aWMge1xuICAgIEF6YXBpUmVzb3VyY2UucmVnaXN0ZXJTY2hlbWFzKFxuICAgICAgTkVUV09SS19JTlRFUkZBQ0VfVFlQRSxcbiAgICAgIEFMTF9ORVRXT1JLX0lOVEVSRkFDRV9WRVJTSU9OUyxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBOZXR3b3JrSW50ZXJmYWNlUHJvcHM7XG5cbiAgLy8gT3V0cHV0IHByb3BlcnRpZXMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZ1xuICBwdWJsaWMgcmVhZG9ubHkgaWRPdXRwdXQ6IGNka3RuLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IGxvY2F0aW9uT3V0cHV0OiBjZGt0bi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lT3V0cHV0OiBjZGt0bi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSB0YWdzT3V0cHV0OiBjZGt0bi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLy8gUHVibGljIHByb3BlcnRpZXNcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBBenVyZSBOZXR3b3JrIEludGVyZmFjZSB1c2luZyB0aGUgVmVyc2lvbmVkQXphcGlSZXNvdXJjZSBmcmFtZXdvcmtcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgaW5zdGFuY2VcbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgTmV0d29yayBJbnRlcmZhY2VcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBOZXR3b3JrSW50ZXJmYWNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIC8vIEV4dHJhY3QgcHJvcGVydGllcyBmcm9tIHRoZSBBWkFQSSByZXNvdXJjZSBvdXRwdXRzXG5cbiAgICAvLyBDcmVhdGUgVGVycmFmb3JtIG91dHB1dHNcbiAgICB0aGlzLmlkT3V0cHV0ID0gbmV3IGNka3RuLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImlkXCIsIHtcbiAgICAgIHZhbHVlOiB0aGlzLmlkLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIElEIG9mIHRoZSBOZXR3b3JrIEludGVyZmFjZVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5sb2NhdGlvbk91dHB1dCA9IG5ldyBjZGt0bi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJsb2NhdGlvblwiLCB7XG4gICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5sb2NhdGlvbn1gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGxvY2F0aW9uIG9mIHRoZSBOZXR3b3JrIEludGVyZmFjZVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uYW1lT3V0cHV0ID0gbmV3IGNka3RuLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcIm5hbWVcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ubmFtZX1gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIG5hbWUgb2YgdGhlIE5ldHdvcmsgSW50ZXJmYWNlXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLnRhZ3NPdXRwdXQgPSBuZXcgY2RrdG4uVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwidGFnc1wiLCB7XG4gICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS50YWdzfWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgdGFncyBhc3NpZ25lZCB0byB0aGUgTmV0d29yayBJbnRlcmZhY2VcIixcbiAgICB9KTtcblxuICAgIC8vIE92ZXJyaWRlIGxvZ2ljYWwgSURzXG4gICAgdGhpcy5pZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImlkXCIpO1xuICAgIHRoaXMubG9jYXRpb25PdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJsb2NhdGlvblwiKTtcbiAgICB0aGlzLm5hbWVPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJuYW1lXCIpO1xuICAgIHRoaXMudGFnc091dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcInRhZ3NcIik7XG5cbiAgICAvLyBBcHBseSBpZ25vcmUgY2hhbmdlcyBpZiBzcGVjaWZpZWRcbiAgICB0aGlzLl9hcHBseUlnbm9yZUNoYW5nZXMoKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFJFUVVJUkVEIEFCU1RSQUNUIE1FVEhPRFMgRlJPTSBWZXJzaW9uZWRBemFwaVJlc291cmNlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRlZmF1bHQgQVBJIHZlcnNpb24gdG8gdXNlIHdoZW4gbm8gZXhwbGljaXQgdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjIwMjQtMTAtMDFcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBenVyZSByZXNvdXJjZSB0eXBlIGZvciBOZXR3b3JrIEludGVyZmFjZXNcbiAgICovXG4gIHByb3RlY3RlZCByZXNvdXJjZVR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gTkVUV09SS19JTlRFUkZBQ0VfVFlQRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBUEkgc2NoZW1hIGZvciB0aGUgcmVzb2x2ZWQgdmVyc2lvblxuICAgKi9cbiAgcHJvdGVjdGVkIGFwaVNjaGVtYSgpOiBBcGlTY2hlbWEge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVTY2hlbWEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCBsb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgTmV0d29yayBJbnRlcmZhY2VzXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVxdWlyZXNMb2NhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZUJvZHkocHJvcHM6IGFueSk6IGFueSB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIE5ldHdvcmtJbnRlcmZhY2VQcm9wcztcblxuICAgIC8vIFRyYW5zZm9ybSBpcENvbmZpZ3VyYXRpb25zIHRvIG1hdGNoIEF6dXJlIEFQSSBzY2hlbWFcbiAgICAvLyBFYWNoIElQIGNvbmZpZ3VyYXRpb24gbmVlZHMgaXRzIHByb3BlcnRpZXMgbmVzdGVkIHVuZGVyIGEgXCJwcm9wZXJ0aWVzXCIga2V5XG4gICAgY29uc3QgaXBDb25maWd1cmF0aW9ucyA9IHR5cGVkUHJvcHMuaXBDb25maWd1cmF0aW9ucy5tYXAoKGlwQ29uZmlnKSA9PiAoe1xuICAgICAgbmFtZTogaXBDb25maWcubmFtZSxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgc3VibmV0OiBpcENvbmZpZy5zdWJuZXQsXG4gICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6XG4gICAgICAgICAgaXBDb25maWcucHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZCB8fCBcIkR5bmFtaWNcIixcbiAgICAgICAgcHJpdmF0ZUlQQWRkcmVzczogaXBDb25maWcucHJpdmF0ZUlQQWRkcmVzcyxcbiAgICAgICAgcHVibGljSVBBZGRyZXNzOiBpcENvbmZpZy5wdWJsaWNJUEFkZHJlc3MsXG4gICAgICAgIHByaW1hcnk6IGlwQ29uZmlnLnByaW1hcnksXG4gICAgICB9LFxuICAgIH0pKTtcblxuICAgIHJldHVybiB7XG4gICAgICBsb2NhdGlvbjogdGhpcy5sb2NhdGlvbixcbiAgICAgIHRhZ3M6IHRoaXMuYWxsVGFncygpLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBpcENvbmZpZ3VyYXRpb25zLFxuICAgICAgICBuZXR3b3JrU2VjdXJpdHlHcm91cDogdHlwZWRQcm9wcy5uZXR3b3JrU2VjdXJpdHlHcm91cCxcbiAgICAgICAgZW5hYmxlQWNjZWxlcmF0ZWROZXR3b3JraW5nOlxuICAgICAgICAgIHR5cGVkUHJvcHMuZW5hYmxlQWNjZWxlcmF0ZWROZXR3b3JraW5nIHx8IGZhbHNlLFxuICAgICAgICBlbmFibGVJUEZvcndhcmRpbmc6IHR5cGVkUHJvcHMuZW5hYmxlSVBGb3J3YXJkaW5nIHx8IGZhbHNlLFxuICAgICAgICBkbnNTZXR0aW5nczogdHlwZWRQcm9wcy5kbnNTZXR0aW5ncyxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBVQkxJQyBNRVRIT0RTIEZPUiBORVRXT1JLIElOVEVSRkFDRSBPUEVSQVRJT05TXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHJpdmF0ZSBJUCBhZGRyZXNzIG9mIHRoZSBwcmltYXJ5IElQIGNvbmZpZ3VyYXRpb25cbiAgICogTm90ZTogVGhpcyBtYXkgbm90IGJlIGF2YWlsYWJsZSB1bnRpbCBhZnRlciB0aGUgcmVzb3VyY2UgaXMgY3JlYXRlZFxuICAgKiBUaGUgYWN0dWFsIElQIGFkZHJlc3MgbG9jYXRpb24gaW4gQXp1cmUgQVBJIHJlc3BvbnNlIHZhcmllcyBieSBBUEkgdmVyc2lvblxuICAgKi9cbiAgcHVibGljIGdldCBwcml2YXRlSVBBZGRyZXNzKCk6IHN0cmluZyB7XG4gICAgLy8gVGhlIHByaXZhdGUgSVAgYWRkcmVzcyBpcyB0eXBpY2FsbHkgYXZhaWxhYmxlIGF0IHJ1bnRpbWUgYnV0IG5vdCBpbiBUZXJyYWZvcm0gb3V0cHV0XG4gICAgLy8gVXNlcnMgc2hvdWxkIHF1ZXJ5IHRoZSBBenVyZSBBUEkgZGlyZWN0bHkgZm9yIHRoZSBwcml2YXRlIElQIGlmIG5lZWRlZFxuICAgIHJldHVybiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59LmlkfWA7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgdGFnIHRvIHRoZSBOZXR3b3JrIEludGVyZmFjZVxuICAgKi9cbiAgcHVibGljIGFkZFRhZyhrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcm9wcy50YWdzKSB7XG4gICAgICAodGhpcy5wcm9wcyBhcyBhbnkpLnRhZ3MgPSB7fTtcbiAgICB9XG4gICAgdGhpcy5wcm9wcy50YWdzIVtrZXldID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgdGFnIGZyb20gdGhlIE5ldHdvcmsgSW50ZXJmYWNlXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlVGFnKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHMudGFncyAmJiB0aGlzLnByb3BzLnRhZ3Nba2V5XSkge1xuICAgICAgZGVsZXRlIHRoaXMucHJvcHMudGFnc1trZXldO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBSSVZBVEUgSEVMUEVSIE1FVEhPRFNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogQXBwbGllcyBpZ25vcmUgY2hhbmdlcyBsaWZlY3ljbGUgcnVsZXMgaWYgc3BlY2lmaWVkIGluIHByb3BzXG4gICAqL1xuICBwcml2YXRlIF9hcHBseUlnbm9yZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcyAmJiB0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5hZGRPdmVycmlkZShcImxpZmVjeWNsZVwiLCBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZ25vcmVfY2hhbmdlczogdGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzLFxuICAgICAgICB9LFxuICAgICAgXSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -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 azure_subnet_1 = require("../../azure-subnet");
15
15
  const azure_virtualnetwork_1 = require("../../azure-virtualnetwork");
@@ -103,9 +103,9 @@ class NetworkInterfaceExampleStack extends testing_1.BaseTestStack {
103
103
  }
104
104
  describe("Network Interface Integration Test", () => {
105
105
  it("should deploy, validate idempotency, and cleanup network interface resources", () => {
106
- const app = cdktf_1.Testing.app();
106
+ const app = cdktn_1.Testing.app();
107
107
  const stack = new NetworkInterfaceExampleStack(app, "test-network-interface");
108
- const synthesized = cdktf_1.Testing.fullSynth(stack);
108
+ const synthesized = cdktn_1.Testing.fullSynth(stack);
109
109
  // This will:
110
110
  // 1. Run terraform apply to deploy resources
111
111
  // 2. Run terraform plan to check idempotency (no changes expected)
@@ -113,4 +113,4 @@ describe("Network Interface Integration Test", () => {
113
113
  (0, testing_1.TerraformApplyCheckAndDestroy)(synthesized);
114
114
  }, 600000); // 10 minute timeout for deployment and cleanup
115
115
  });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1pbnRlcmZhY2UuaW50ZWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtbmV0d29ya2ludGVyZmFjZS90ZXN0L25ldHdvcmstaW50ZXJmYWNlLmludGVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztHQU9HOztBQUVILGlDQUFnQztBQUVoQywyQ0FBeUM7QUFDekMsbUVBQTBEO0FBQzFELHFEQUE0QztBQUM1QyxxRUFBNEQ7QUFDNUQsa0ZBQW9GO0FBQ3BGLDJDQUE2RTtBQUM3RSx5REFBNkQ7QUFDN0QsZ0VBQTREO0FBRTVELHdEQUF3RDtBQUN4RCxNQUFNLFlBQVksR0FBRyxJQUFJLDBCQUFlLENBQUMsK0JBQStCLEVBQUU7SUFDeEUsV0FBVyxFQUFFLENBQUM7Q0FDZixDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sNEJBQTZCLFNBQVEsdUJBQWE7SUFDdEQsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixjQUFjLEVBQUU7Z0JBQ2QsV0FBVyxFQUFFLFlBQVksQ0FBQyxXQUFXO2dCQUNyQyxXQUFXLEVBQUUsWUFBWSxDQUFDLFdBQVc7Z0JBQ3JDLGFBQWEsRUFBRSxZQUFZLENBQUMsYUFBYTthQUMxQztTQUNGLENBQUMsQ0FBQztRQUVILDJCQUEyQjtRQUMzQixJQUFJLHdCQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVyQyx3QkFBd0I7UUFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUN0QyxvQ0FBb0MsRUFDcEMsS0FBSyxDQUNOLENBQUM7UUFFRiwwQkFBMEI7UUFDMUIsTUFBTSxhQUFhLEdBQUcsSUFBSSxtQ0FBYSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDMUQsSUFBSSxFQUFFLE1BQU07WUFDWixRQUFRLEVBQUUsUUFBUTtZ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cmZhY2VcbiAqXG4gKiBUaGlzIHRlc3QgZGVtb25zdHJhdGVzIGJhc2ljIHVzYWdlIG9mIHRoZSBOZXR3b3JrSW50ZXJmYWNlIGNvbnN0cnVjdFxuICogYW5kIHZhbGlkYXRlcyBkZXBsb3ltZW50LCBpZGVtcG90ZW5jeSwgYW5kIGNsZWFudXAuXG4gKlxuICogUnVuIHdpdGg6IG5wbSBydW4gaW50ZWdyYXRpb246bm9zdHJlYW1cbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IFwiY2RrdGYvbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuaW1wb3J0IHsgUmVzb3VyY2VHcm91cCB9IGZyb20gXCIuLi8uLi9henVyZS1yZXNvdXJjZWdyb3VwXCI7XG5pbXBvcnQgeyBTdWJuZXQgfSBmcm9tIFwiLi4vLi4vYXp1cmUtc3VibmV0XCI7XG5pbXBvcnQgeyBWaXJ0dWFsTmV0d29yayB9IGZyb20gXCIuLi8uLi9henVyZS12aXJ0dWFsbmV0d29ya1wiO1xuaW1wb3J0IHsgQXphcGlQcm92aWRlciB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi9hemFwaS9wcm92aWRlcnMtYXphcGkvcHJvdmlkZXJcIjtcbmltcG9ydCB7IEJhc2VUZXN0U3RhY2ssIFRlcnJhZm9ybUFwcGx5Q2hlY2tBbmREZXN0cm95IH0gZnJvbSBcIi4uLy4uL3Rlc3RpbmdcIjtcbmltcG9ydCB7IFRlc3RSdW5NZXRhZGF0YSB9IGZyb20gXCIuLi8uLi90ZXN0aW5nL2xpYi9tZXRhZGF0YVwiO1xuaW1wb3J0IHsgTmV0d29ya0ludGVyZmFjZSB9IGZyb20gXCIuLi9saWIvbmV0d29yay1pbnRlcmZhY2VcIjtcblxuLy8gR2VuZXJhdGUgdW5pcXVlIHRlc3QgcnVuIG1ldGFkYXRhIGZvciB0aGlzIHRlc3Qgc3VpdGVcbmNvbnN0IHRlc3RNZXRhZGF0YSA9IG5ldyBUZXN0UnVuTWV0YWRhdGEoXCJuZXR3b3JrLWludGVyZmFjZS1pbnRlZ3JhdGlvblwiLCB7XG4gIG1heEFnZUhvdXJzOiA0LFxufSk7XG5cbi8qKlxuICogRXhhbXBsZSBzdGFjayBkZW1vbnN0cmF0aW5nIE5ldHdvcmsgSW50ZXJmYWNlIHVzYWdlXG4gKi9cbmNsYXNzIE5ldHdvcmtJbnRlcmZhY2VFeGFtcGxlU3RhY2sgZXh0ZW5kcyBCYXNlVGVzdFN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgdGVzdFJ1bk9wdGlvbnM6IHtcbiAgICAgICAgbWF4QWdlSG91cnM6IHRlc3RNZXRhZGF0YS5tYXhBZ2VIb3VycyxcbiAgICAgICAgYXV0b0NsZWFudXA6IHRlc3RNZXRhZGF0YS5hdXRvQ2xlYW51cCxcbiAgICAgICAgY2xlYW51cFBvbGljeTogdGVzdE1ldGFkYXRhLmNsZWFudXBQb2xpY3ksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gQ29uZmlndXJlIEFaQVBJIHByb3ZpZGVyXG4gICAgbmV3IEF6YXBpUHJvdmlkZXIodGhpcywgXCJhemFwaVwiLCB7fSk7XG5cbiAgICAvLyBHZW5lcmF0ZSB1bmlxdWUgbmFtZXNcbiAgICBjb25zdCByZ05hbWUgPSB0aGlzLmdlbmVyYXRlUmVzb3VyY2VOYW1lKFxuICAgICAgXCJNaWNyb3NvZnQuUmVzb3VyY2VzL3Jlc291cmNlR3JvdXBzXCIsXG4gICAgICBcIm5pY1wiLFxuICAgICk7XG5cbiAgICAvLyBDcmVhdGUgYSByZXNvdXJjZSBncm91cFxuICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cCh0aGlzLCBcImV4YW1wbGUtcmdcIiwge1xuICAgICAgbmFtZTogcmdOYW1lLFxuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIC4uLnRoaXMuc3lzdGVtVGFncygpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBhIHZpcnR1YWwgbmV0d29ya1xuICAgIGNvbnN0IHZuZXQgPSBuZXcgVmlydHVhbE5ldHdvcmsodGhpcywgXCJleGFtcGxlLXZuZXRcIiwge1xuICAgICAgbmFtZTogXCJ2bmV0LWV4YW1wbGVcIixcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLnByb3BzLmxvY2F0aW9uISxcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIGFkZHJlc3NTcGFjZToge1xuICAgICAgICBhZGRyZXNzUHJlZml4ZXM6IFtcIjEwLjAuMC4wLzE2XCJdLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBhIHN1Ym5ldCAtIHVzZSB2aXJ0dWFsTmV0d29ya0lkIHRvIGNyZWF0ZSBleHBsaWNpdCBUZXJyYWZvcm0gZGVwZW5kZW5jeVxuICAgIGNvbnN0IHN1Ym5ldCA9IG5ldyBTdWJuZXQodGhpcywgXCJleGFtcGxlLXN1Ym5ldFwiLCB7XG4gICAgICBuYW1lOiBcInN1Ym5ldC1leGFtcGxlXCIsXG4gICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICB2aXJ0dWFsTmV0d29ya05hbWU6IFwidm5ldC1leGFtcGxlXCIsXG4gICAgICB2aXJ0dWFsTmV0d29ya0lkOiB2bmV0LmlkLFxuICAgICAgYWRkcmVzc1ByZWZpeDogXCIxMC4wLjEuMC8yNFwiLFxuICAgIH0pO1xuXG4gICAgLy8gRXhhbXBsZSAxOiBCYXNpYyBuZXR3b3JrIGludGVyZmFjZVxuICAgIG5ldyBOZXR3b3JrSW50ZXJmYWNlKHRoaXMsIFwiYmFzaWMtbmljXCIsIHtcbiAgICAgIG5hbWU6IFwibmljLWJhc2ljLWV4YW1wbGVcIixcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLnByb3BzLmxvY2F0aW9uISxcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgc3VibmV0OiB7IGlkOiBzdWJuZXQuaWQgfSxcbiAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgLi4udGhpcy5zeXN0ZW1UYWdzKCksXG4gICAgICAgIGV4YW1wbGU6IFwiYmFzaWNcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBFeGFtcGxlIDI6IE5ldHdvcmsgaW50ZXJmYWNlIHdpdGggc3BlY2lmaWMgdmVyc2lvblxuICAgIG5ldyBOZXR3b3JrSW50ZXJmYWNlKHRoaXMsIFwidmVyc2lvbmVkLW5pY1wiLCB7XG4gICAgICBuYW1lOiBcIm5pYy12ZXJzaW9uZWQtZXhhbXBsZVwiLFxuICAgICAgbG9jYXRpb246IHJlc291cmNlR3JvdXAucHJvcHMubG9jYXRpb24hLFxuICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IHN1Ym5ldC5pZCB9LFxuICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgYXBpVmVyc2lvbjogXCIyMDI0LTA3LTAxXCIsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIC4uLnRoaXMuc3lzdGVtVGFncygpLFxuICAgICAgICBleGFtcGxlOiBcInZlcnNpb25lZFwiLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuXG5kZXNjcmliZShcIk5ldHdvcmsgSW50ZXJmYWNlIEludGVncmF0aW9uIFRlc3RcIiwgKCkgPT4ge1xuICBpdChcInNob3VsZCBkZXBsb3ksIHZhbGlkYXRlIGlkZW1wb3RlbmN5LCBhbmQgY2xlYW51cCBuZXR3b3JrIGludGVyZmFjZSByZXNvdXJjZXNcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgTmV0d29ya0ludGVyZmFjZUV4YW1wbGVTdGFjayhcbiAgICAgIGFwcCxcbiAgICAgIFwidGVzdC1uZXR3b3JrLWludGVyZmFjZVwiLFxuICAgICk7XG4gICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLmZ1bGxTeW50aChzdGFjayk7XG5cbiAgICAvLyBUaGlzIHdpbGw6XG4gICAgLy8gMS4gUnVuIHRlcnJhZm9ybSBhcHBseSB0byBkZXBsb3kgcmVzb3VyY2VzXG4gICAgLy8gMi4gUnVuIHRlcnJhZm9ybSBwbGFuIHRvIGNoZWNrIGlkZW1wb3RlbmN5IChubyBjaGFuZ2VzIGV4cGVjdGVkKVxuICAgIC8vIDMuIFJ1biB0ZXJyYWZvcm0gZGVzdHJveSB0byBjbGVhbnVwIHJlc291cmNlc1xuICAgIFRlcnJhZm9ybUFwcGx5Q2hlY2tBbmREZXN0cm95KHN5bnRoZXNpemVkKTtcbiAgfSwgNjAwMDAwKTsgLy8gMTAgbWludXRlIHRpbWVvdXQgZm9yIGRlcGxveW1lbnQgYW5kIGNsZWFudXBcbn0pO1xuIl19
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1pbnRlcmZhY2UuaW50ZWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtbmV0d29ya2ludGVyZmFjZS90ZXN0L25ldHdvcmstaW50ZXJmYWNlLmludGVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztHQU9HOztBQUVILGlDQUFnQztBQUVoQywyQ0FBeUM7QUFDekMsbUVBQTBEO0FBQzFELHFEQUE0QztBQUM1QyxxRUFBNEQ7QUFDNUQsa0ZBQW9GO0FBQ3BGLDJDQUE2RTtBQUM3RSx5REFBNkQ7QUFDN0QsZ0VBQTREO0FBRTVELHdEQUF3RDtBQUN4RCxNQUFNLFlBQVksR0FBRyxJQUFJLDBCQUFlLENBQUMsK0JBQStCLEVBQUU7SUFDeEUsV0FBVyxFQUFFLENBQUM7Q0FDZixDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sNEJBQTZCLFNBQVEsdUJBQWE7SUFDdEQsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixjQUFjLEVBQUU7Z0JBQ2QsV0FBVyxFQUFFLFlBQVksQ0FBQyxXQUFXO2dCQUNyQyxXQUFXLEVBQUUsWUFBWSxDQUFDLFdBQVc7Z0JBQ3JDLGFBQWEsRUFBRSxZQUFZLENBQUMsYUFBYTthQUMxQztTQUNGLENBQUMsQ0FBQztRQUVILDJCQUEyQjtRQUMzQixJQUFJLHdCQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVyQyx3QkFBd0I7UUFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUN0QyxvQ0FBb0MsRUFDcEMsS0FBSyxDQUNOLENBQUM7UUFFRiwwQkFBMEI7UUFDMUIsTUFBTSxhQUFhLEdBQUcsSUFBSSxtQ0FBYSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDMUQsSUFBSSxFQUFFLE1BQU07WUFDWixRQUFRLEVBQUUsUUFBUTtZ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cmZhY2VcbiAqXG4gKiBUaGlzIHRlc3QgZGVtb25zdHJhdGVzIGJhc2ljIHVzYWdlIG9mIHRoZSBOZXR3b3JrSW50ZXJmYWNlIGNvbnN0cnVjdFxuICogYW5kIHZhbGlkYXRlcyBkZXBsb3ltZW50LCBpZGVtcG90ZW5jeSwgYW5kIGNsZWFudXAuXG4gKlxuICogUnVuIHdpdGg6IG5wbSBydW4gaW50ZWdyYXRpb246bm9zdHJlYW1cbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IFwiY2RrdG4vbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuaW1wb3J0IHsgUmVzb3VyY2VHcm91cCB9IGZyb20gXCIuLi8uLi9henVyZS1yZXNvdXJjZWdyb3VwXCI7XG5pbXBvcnQgeyBTdWJuZXQgfSBmcm9tIFwiLi4vLi4vYXp1cmUtc3VibmV0XCI7XG5pbXBvcnQgeyBWaXJ0dWFsTmV0d29yayB9IGZyb20gXCIuLi8uLi9henVyZS12aXJ0dWFsbmV0d29ya1wiO1xuaW1wb3J0IHsgQXphcGlQcm92aWRlciB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi9hemFwaS9wcm92aWRlcnMtYXphcGkvcHJvdmlkZXJcIjtcbmltcG9ydCB7IEJhc2VUZXN0U3RhY2ssIFRlcnJhZm9ybUFwcGx5Q2hlY2tBbmREZXN0cm95IH0gZnJvbSBcIi4uLy4uL3Rlc3RpbmdcIjtcbmltcG9ydCB7IFRlc3RSdW5NZXRhZGF0YSB9IGZyb20gXCIuLi8uLi90ZXN0aW5nL2xpYi9tZXRhZGF0YVwiO1xuaW1wb3J0IHsgTmV0d29ya0ludGVyZmFjZSB9IGZyb20gXCIuLi9saWIvbmV0d29yay1pbnRlcmZhY2VcIjtcblxuLy8gR2VuZXJhdGUgdW5pcXVlIHRlc3QgcnVuIG1ldGFkYXRhIGZvciB0aGlzIHRlc3Qgc3VpdGVcbmNvbnN0IHRlc3RNZXRhZGF0YSA9IG5ldyBUZXN0UnVuTWV0YWRhdGEoXCJuZXR3b3JrLWludGVyZmFjZS1pbnRlZ3JhdGlvblwiLCB7XG4gIG1heEFnZUhvdXJzOiA0LFxufSk7XG5cbi8qKlxuICogRXhhbXBsZSBzdGFjayBkZW1vbnN0cmF0aW5nIE5ldHdvcmsgSW50ZXJmYWNlIHVzYWdlXG4gKi9cbmNsYXNzIE5ldHdvcmtJbnRlcmZhY2VFeGFtcGxlU3RhY2sgZXh0ZW5kcyBCYXNlVGVzdFN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgdGVzdFJ1bk9wdGlvbnM6IHtcbiAgICAgICAgbWF4QWdlSG91cnM6IHRlc3RNZXRhZGF0YS5tYXhBZ2VIb3VycyxcbiAgICAgICAgYXV0b0NsZWFudXA6IHRlc3RNZXRhZGF0YS5hdXRvQ2xlYW51cCxcbiAgICAgICAgY2xlYW51cFBvbGljeTogdGVzdE1ldGFkYXRhLmNsZWFudXBQb2xpY3ksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gQ29uZmlndXJlIEFaQVBJIHByb3ZpZGVyXG4gICAgbmV3IEF6YXBpUHJvdmlkZXIodGhpcywgXCJhemFwaVwiLCB7fSk7XG5cbiAgICAvLyBHZW5lcmF0ZSB1bmlxdWUgbmFtZXNcbiAgICBjb25zdCByZ05hbWUgPSB0aGlzLmdlbmVyYXRlUmVzb3VyY2VOYW1lKFxuICAgICAgXCJNaWNyb3NvZnQuUmVzb3VyY2VzL3Jlc291cmNlR3JvdXBzXCIsXG4gICAgICBcIm5pY1wiLFxuICAgICk7XG5cbiAgICAvLyBDcmVhdGUgYSByZXNvdXJjZSBncm91cFxuICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cCh0aGlzLCBcImV4YW1wbGUtcmdcIiwge1xuICAgICAgbmFtZTogcmdOYW1lLFxuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIC4uLnRoaXMuc3lzdGVtVGFncygpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBhIHZpcnR1YWwgbmV0d29ya1xuICAgIGNvbnN0IHZuZXQgPSBuZXcgVmlydHVhbE5ldHdvcmsodGhpcywgXCJleGFtcGxlLXZuZXRcIiwge1xuICAgICAgbmFtZTogXCJ2bmV0LWV4YW1wbGVcIixcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLnByb3BzLmxvY2F0aW9uISxcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIGFkZHJlc3NTcGFjZToge1xuICAgICAgICBhZGRyZXNzUHJlZml4ZXM6IFtcIjEwLjAuMC4wLzE2XCJdLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBhIHN1Ym5ldCAtIHVzZSB2aXJ0dWFsTmV0d29ya0lkIHRvIGNyZWF0ZSBleHBsaWNpdCBUZXJyYWZvcm0gZGVwZW5kZW5jeVxuICAgIGNvbnN0IHN1Ym5ldCA9IG5ldyBTdWJuZXQodGhpcywgXCJleGFtcGxlLXN1Ym5ldFwiLCB7XG4gICAgICBuYW1lOiBcInN1Ym5ldC1leGFtcGxlXCIsXG4gICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICB2aXJ0dWFsTmV0d29ya05hbWU6IFwidm5ldC1leGFtcGxlXCIsXG4gICAgICB2aXJ0dWFsTmV0d29ya0lkOiB2bmV0LmlkLFxuICAgICAgYWRkcmVzc1ByZWZpeDogXCIxMC4wLjEuMC8yNFwiLFxuICAgIH0pO1xuXG4gICAgLy8gRXhhbXBsZSAxOiBCYXNpYyBuZXR3b3JrIGludGVyZmFjZVxuICAgIG5ldyBOZXR3b3JrSW50ZXJmYWNlKHRoaXMsIFwiYmFzaWMtbmljXCIsIHtcbiAgICAgIG5hbWU6IFwibmljLWJhc2ljLWV4YW1wbGVcIixcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLnByb3BzLmxvY2F0aW9uISxcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgc3VibmV0OiB7IGlkOiBzdWJuZXQuaWQgfSxcbiAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgLi4udGhpcy5zeXN0ZW1UYWdzKCksXG4gICAgICAgIGV4YW1wbGU6IFwiYmFzaWNcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBFeGFtcGxlIDI6IE5ldHdvcmsgaW50ZXJmYWNlIHdpdGggc3BlY2lmaWMgdmVyc2lvblxuICAgIG5ldyBOZXR3b3JrSW50ZXJmYWNlKHRoaXMsIFwidmVyc2lvbmVkLW5pY1wiLCB7XG4gICAgICBuYW1lOiBcIm5pYy12ZXJzaW9uZWQtZXhhbXBsZVwiLFxuICAgICAgbG9jYXRpb246IHJlc291cmNlR3JvdXAucHJvcHMubG9jYXRpb24hLFxuICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IHN1Ym5ldC5pZCB9LFxuICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgYXBpVmVyc2lvbjogXCIyMDI0LTA3LTAxXCIsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIC4uLnRoaXMuc3lzdGVtVGFncygpLFxuICAgICAgICBleGFtcGxlOiBcInZlcnNpb25lZFwiLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuXG5kZXNjcmliZShcIk5ldHdvcmsgSW50ZXJmYWNlIEludGVncmF0aW9uIFRlc3RcIiwgKCkgPT4ge1xuICBpdChcInNob3VsZCBkZXBsb3ksIHZhbGlkYXRlIGlkZW1wb3RlbmN5LCBhbmQgY2xlYW51cCBuZXR3b3JrIGludGVyZmFjZSByZXNvdXJjZXNcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgTmV0d29ya0ludGVyZmFjZUV4YW1wbGVTdGFjayhcbiAgICAgIGFwcCxcbiAgICAgIFwidGVzdC1uZXR3b3JrLWludGVyZmFjZVwiLFxuICAgICk7XG4gICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLmZ1bGxTeW50aChzdGFjayk7XG5cbiAgICAvLyBUaGlzIHdpbGw6XG4gICAgLy8gMS4gUnVuIHRlcnJhZm9ybSBhcHBseSB0byBkZXBsb3kgcmVzb3VyY2VzXG4gICAgLy8gMi4gUnVuIHRlcnJhZm9ybSBwbGFuIHRvIGNoZWNrIGlkZW1wb3RlbmN5IChubyBjaGFuZ2VzIGV4cGVjdGVkKVxuICAgIC8vIDMuIFJ1biB0ZXJyYWZvcm0gZGVzdHJveSB0byBjbGVhbnVwIHJlc291cmNlc1xuICAgIFRlcnJhZm9ybUFwcGx5Q2hlY2tBbmREZXN0cm95KHN5bnRoZXNpemVkKTtcbiAgfSwgNjAwMDAwKTsgLy8gMTAgbWludXRlIHRpbWVvdXQgZm9yIGRlcGxveW1lbnQgYW5kIGNsZWFudXBcbn0pO1xuIl19
@@ -7,15 +7,15 @@
7
7
  * property transformation, and resource creation.
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- const cdktf_1 = require("cdktf");
11
- const cdktf = require("cdktf");
10
+ const cdktn_1 = require("cdktn");
11
+ const cdktn = require("cdktn");
12
12
  const network_interface_1 = require("../lib/network-interface");
13
13
  describe("NetworkInterface - Implementation", () => {
14
14
  let app;
15
15
  let stack;
16
16
  beforeEach(() => {
17
- app = cdktf_1.Testing.app();
18
- stack = new cdktf.TerraformStack(app, "TestStack");
17
+ app = cdktn_1.Testing.app();
18
+ stack = new cdktn.TerraformStack(app, "TestStack");
19
19
  });
20
20
  describe("Constructor and Basic Properties", () => {
21
21
  it("should create network interface with automatic latest version resolution", () => {
@@ -467,10 +467,10 @@ describe("NetworkInterface - Implementation", () => {
467
467
  },
468
468
  ],
469
469
  });
470
- expect(nic.idOutput).toBeInstanceOf(cdktf.TerraformOutput);
471
- expect(nic.nameOutput).toBeInstanceOf(cdktf.TerraformOutput);
472
- expect(nic.locationOutput).toBeInstanceOf(cdktf.TerraformOutput);
473
- expect(nic.tagsOutput).toBeInstanceOf(cdktf.TerraformOutput);
470
+ expect(nic.idOutput).toBeInstanceOf(cdktn.TerraformOutput);
471
+ expect(nic.nameOutput).toBeInstanceOf(cdktn.TerraformOutput);
472
+ expect(nic.locationOutput).toBeInstanceOf(cdktn.TerraformOutput);
473
+ expect(nic.tagsOutput).toBeInstanceOf(cdktn.TerraformOutput);
474
474
  });
475
475
  it("should have correct id format", () => {
476
476
  const nic = new network_interface_1.NetworkInterface(stack, "IdFormat", {
@@ -559,7 +559,7 @@ describe("NetworkInterface - Implementation", () => {
559
559
  ],
560
560
  tags: { test: "synthesis" },
561
561
  });
562
- const synthesized = cdktf_1.Testing.synth(stack);
562
+ const synthesized = cdktn_1.Testing.synth(stack);
563
563
  expect(synthesized).toBeDefined();
564
564
  const stackConfig = JSON.parse(synthesized);
565
565
  expect(stackConfig.resource).toBeDefined();
@@ -593,7 +593,7 @@ describe("NetworkInterface - Implementation", () => {
593
593
  });
594
594
  expect(nic1.resolvedApiVersion).toBe("2024-10-01");
595
595
  expect(nic2.resolvedApiVersion).toBe("2024-07-01");
596
- const synthesized = cdktf_1.Testing.synth(stack);
596
+ const synthesized = cdktn_1.Testing.synth(stack);
597
597
  expect(synthesized).toBeDefined();
598
598
  });
599
599
  });
@@ -652,4 +652,4 @@ describe("NetworkInterface - Implementation", () => {
652
652
  });
653
653
  });
654
654
  });
655
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1pbnRlcmZhY2Uuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1uZXR3b3JraW50ZXJmYWNlL3Rlc3QvbmV0d29yay1pbnRlcmZhY2Uuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQUVILGlDQUFnQztBQUNoQywrQkFBK0I7QUFDL0IsZ0VBR2tDO0FBRWxDLFFBQVEsQ0FBQyxtQ0FBbUMsRUFBRSxHQUFHLEVBQUU7SUFDakQsSUFBSSxHQUFjLENBQUM7SUFDbkIsSUFBSSxLQUEyQixDQUFDO0lBRWhDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxHQUFHLEdBQUcsZUFBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtRQUNoRCxFQUFFLENBQUMsMEVBQTBFLEVBQUUsR0FBRyxFQUFFO1lBQ2xGLE1BQU0sS0FBSyxHQUEwQjtnQkFDbkMsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixnQkFBZ0IsRUFBRTtvQkFDaEI7d0JBQ0UsSUFBSSxFQUFFLFdBQVc7d0JBQ2pCLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxxQ0FBcUMsRUFBRTt3QkFDckQseUJBQXlCLEVBQUUsU0FBUzt3QkFDcEMsT0FBTyxFQUFFLElBQUk7cUJBQ2Q7aUJBQ0Y7YUFDRixDQUFDO1lBRUYsTUFBTSxHQUFHLEdBQUcsSUFBSSxvQ0FBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRTFELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsb0NBQWdCLENBQUMsQ0FBQztZQUM3QyxNQUFNLENB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LENBQUM7WUFDaEQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb21wcmVoZW5zaXZlIHRlc3RzIGZvciB0aGUgTmV0d29yayBJbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cbiAqXG4gKiBUaGlzIHRlc3Qgc3VpdGUgdmFsaWRhdGVzIHRoZSBOZXR3b3JrSW50ZXJmYWNlIGNsYXNzIHVzaW5nIHRoZSBBemFwaVJlc291cmNlIGZyYW1ld29yay5cbiAqIFRlc3RzIGNvdmVyIGF1dG9tYXRpYyB2ZXJzaW9uIHJlc29sdXRpb24sIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZywgc2NoZW1hIHZhbGlkYXRpb24sXG4gKiBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbiwgYW5kIHJlc291cmNlIGNyZWF0aW9uLlxuICovXG5cbmltcG9ydCB7IFRlc3RpbmcgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHtcbiAgTmV0d29ya0ludGVyZmFjZSxcbiAgTmV0d29ya0ludGVyZmFjZVByb3BzLFxufSBmcm9tIFwiLi4vbGliL25ldHdvcmstaW50ZXJmYWNlXCI7XG5cbmRlc2NyaWJlKFwiTmV0d29ya0ludGVyZmFjZSAtIEltcGxlbWVudGF0aW9uXCIsICgpID0+IHtcbiAgbGV0IGFwcDogY2RrdGYuQXBwO1xuICBsZXQgc3RhY2s6IGNka3RmLlRlcnJhZm9ybVN0YWNrO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgc3RhY2sgPSBuZXcgY2RrdGYuVGVycmFmb3JtU3RhY2soYXBwLCBcIlRlc3RTdGFja1wiKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJDb25zdHJ1Y3RvciBhbmQgQmFzaWMgUHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIG5ldHdvcmsgaW50ZXJmYWNlIHdpdGggYXV0b21hdGljIGxhdGVzdCB2ZXJzaW9uIHJlc29sdXRpb25cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IE5ldHdvcmtJbnRlcmZhY2VQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LW5pY1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDFcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJUZXN0TklDXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KG5pYykudG9CZUluc3RhbmNlT2YoTmV0d29ya0ludGVyZmFjZSk7XG4gICAgICBleHBlY3QobmljLnByb3BzKS50b0JlKHByb3BzKTtcbiAgICAgIGV4cGVjdChuaWMubmFtZSkudG9CZShcInRlc3QtbmljXCIpO1xuICAgICAgZXhwZWN0KG5pYy5sb2NhdGlvbikudG9CZShcImVhc3R1c1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBuZXR3b3JrIGludGVyZmFjZSB3aXRoIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZ1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogTmV0d29ya0ludGVyZmFjZVByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtbmljLXBpbm5lZFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJ3ZXN0dXNcIixcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDI0LTA3LTAxXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICB0YWdzOiB7IGVudmlyb25tZW50OiBcInRlc3RcIiB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbmljID0gbmV3IE5ldHdvcmtJbnRlcmZhY2Uoc3RhY2ssIFwiVGVzdE5JQ1wiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChuaWMucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNC0wNy0wMVwiKTtcbiAgICAgIGV4cGVjdChuaWMudGFncykudG9FcXVhbCh7IGVudmlyb25tZW50OiBcInRlc3RcIiB9KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBuZXR3b3JrIGludGVyZmFjZSB3aXRoIGFsbCBvcHRpb25hbCBwcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBOZXR3b3JrSW50ZXJmYWNlUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1uaWMtZnVsbFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJjZW50cmFsdXNcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDFcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgICAgIHByaXZhdGVJUEFkZHJlc3M6IFwiMTAuMC4xLjRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzczogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3B1YmxpY0lQcy9waXAxXCIgfSxcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbmV0d29ya1NlY3VyaXR5R3JvdXA6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9uc2dzL25zZzFcIiB9LFxuICAgICAgICBlbmFibGVBY2NlbGVyYXRlZE5ldHdvcmtpbmc6IHRydWUsXG4gICAgICAgIGVuYWJsZUlQRm9yd2FyZGluZzogdHJ1ZSxcbiAgICAgICAgZG5zU2V0dGluZ3M6IHtcbiAgICAgICAgICBkbnNTZXJ2ZXJzOiBbXCIxMC4wLjAuNFwiLCBcIjEwLjAuMC41XCJdLFxuICAgICAgICAgIGludGVybmFsRG5zTmFtZUxhYmVsOiBcIm15dm1cIixcbiAgICAgICAgfSxcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIGVudmlyb25tZW50OiBcInByb2R1Y3Rpb25cIixcbiAgICAgICAgICBwcm9qZWN0OiBcIm5ldHdvcmtpbmdcIixcbiAgICAgICAgICBvd25lcjogXCJ0ZWFtQGNvbXBhbnkuY29tXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGlnbm9yZUNoYW5nZXM6IFtcInRhZ3NcIl0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJUZXN0TklDXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5pcENvbmZpZ3VyYXRpb25zKS50b0VxdWFsKHByb3BzLmlwQ29uZmlndXJhdGlvbnMpO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5uZXR3b3JrU2VjdXJpdHlHcm91cCkudG9FcXVhbChcbiAgICAgICAgcHJvcHMubmV0d29ya1NlY3VyaXR5R3JvdXAsXG4gICAgICApO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5lbmFibGVBY2NlbGVyYXRlZE5ldHdvcmtpbmcpLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QobmljLnByb3BzLmVuYWJsZUlQRm9yd2FyZGluZykudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdChuaWMucHJvcHMuZG5zU2V0dGluZ3MpLnRvRXF1YWwocHJvcHMuZG5zU2V0dGluZ3MpO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy50YWdzKS50b0VxdWFsKHByb3BzLnRhZ3MpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdXNlIGRlZmF1bHQgbmFtZSB3aGVuIG5hbWUgaXMgbm90IHByb3ZpZGVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBOZXR3b3JrSW50ZXJmYWNlUHJvcHMgPSB7XG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG5pYyA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIlRlc3ROSUNcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QobmljLm5hbWUpLnRvQmUoXCJUZXN0TklDXCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlJlc291cmNlIFR5cGUgYW5kIEFQSSBWZXJzaW9uc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgaGF2ZSBjb3JyZWN0IHJlc291cmNlIHR5cGVcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgbmljID0gbmV3IE5ldHdvcmtJbnRlcmZhY2Uoc3RhY2ssIFwiVGVzdE5JQ1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1uaWNcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChuaWMpLnRvQmVJbnN0YW5jZU9mKE5ldHdvcmtJbnRlcmZhY2UpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgc3VwcG9ydCBhbGwgcmVnaXN0ZXJlZCBBUEkgdmVyc2lvbnNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgdmVyc2lvbnMgPSBbXCIyMDI0LTA3LTAxXCIsIFwiMjAyNC0xMC0wMVwiXTtcblxuICAgICAgdmVyc2lvbnMuZm9yRWFjaCgodmVyc2lvbikgPT4ge1xuICAgICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShcbiAgICAgICAgICBzdGFjayxcbiAgICAgICAgICBgTklDLSR7dmVyc2lvbi5yZXBsYWNlKC8tL2csIFwiXCIpfWAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogYG5pYy0ke3ZlcnNpb259YCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgICAgYXBpVmVyc2lvbjogdmVyc2lvbixcbiAgICAgICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuXG4gICAgICAgIGV4cGVjdChuaWMucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKHZlcnNpb24pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB1c2UgbGF0ZXN0IHZlcnNpb24gYXMgZGVmYXVsdFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJUZXN0TklDXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LW5pY1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDFcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KG5pYy5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI0LTEwLTAxXCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIklQIENvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBOSUMgd2l0aCBzaW5nbGUgZHluYW1pYyBJUCBjb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IG5pYyA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIlNpbmdsZUR5bmFtaWNcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1zaW5nbGUtZHluYW1pY1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDFcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5pcENvbmZpZ3VyYXRpb25zKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgICBleHBlY3QobmljLnByb3BzLmlwQ29uZmlndXJhdGlvbnNbMF0ucHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZCkudG9CZShcbiAgICAgICAgXCJEeW5hbWljXCIsXG4gICAgICApO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5pcENvbmZpZ3VyYXRpb25zWzBdLnByaW1hcnkpLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgTklDIHdpdGggc3RhdGljIHByaXZhdGUgSVBcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgbmljID0gbmV3IE5ldHdvcmtJbnRlcmZhY2Uoc3RhY2ssIFwiU3RhdGljSVBcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1zdGF0aWNcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiU3RhdGljXCIsXG4gICAgICAgICAgICBwcml2YXRlSVBBZGRyZXNzOiBcIjEwLjAuMS40XCIsXG4gICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5pcENvbmZpZ3VyYXRpb25zWzBdLnByaXZhdGVJUEFsbG9jYXRpb25NZXRob2QpLnRvQmUoXG4gICAgICAgIFwiU3RhdGljXCIsXG4gICAgICApO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5pcENvbmZpZ3VyYXRpb25zWzBdLnByaXZhdGVJUEFkZHJlc3MpLnRvQmUoXCIxMC4wLjEuNFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBOSUMgd2l0aCBwdWJsaWMgSVAgYWRkcmVzc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJXaXRoUHVibGljSVBcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1wdWJsaWMtaXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzOiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3QvcHVibGljSVBzL3BpcDFcIiB9LFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChuaWMucHJvcHMuaXBDb25maWd1cmF0aW9uc1swXS5wdWJsaWNJUEFkZHJlc3MpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QobmljLnByb3BzLmlwQ29uZmlndXJhdGlvbnNbMF0ucHVibGljSVBBZGRyZXNzPy5pZCkudG9CZShcbiAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3B1YmxpY0lQcy9waXAxXCIsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIE5JQyB3aXRoIG11bHRpcGxlIElQIGNvbmZpZ3VyYXRpb25zXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IG5pYyA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIk11bHRpcGxlSVBzXCIsIHtcbiAgICAgICAgbmFtZTogXCJuaWMtbXVsdGlwbGUtaXBzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMlwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiU3RhdGljXCIsXG4gICAgICAgICAgICBwcml2YXRlSVBBZGRyZXNzOiBcIjEwLjAuMS41XCIsXG4gICAgICAgICAgICBwcmltYXJ5OiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChuaWMucHJvcHMuaXBDb25maWd1cmF0aW9ucykudG9IYXZlTGVuZ3RoKDIpO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5pcENvbmZpZ3VyYXRpb25zWzBdLnByaW1hcnkpLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QobmljLnByb3BzLmlwQ29uZmlndXJhdGlvbnNbMV0ucHJpbWFyeSkudG9CZShmYWxzZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiTmV0d29yayBTZWN1cml0eSBHcm91cCBBc3NvY2lhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIE5JQyB3aXRoIE5TRyBhdHRhY2hlZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJXaXRoTlNHXCIsIHtcbiAgICAgICAgbmFtZTogXCJuaWMtd2l0aC1uc2dcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBuZXR3b3JrU2VjdXJpdHlHcm91cDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L25zZ3MvbnNnMVwiIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5uZXR3b3JrU2VjdXJpdHlHcm91cCkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChuaWMucHJvcHMubmV0d29ya1NlY3VyaXR5R3JvdXA/LmlkKS50b0JlKFxuICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3QvbnNncy9uc2cxXCIsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIE5JQyB3aXRob3V0IE5TR1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJXaXRob3V0TlNHXCIsIHtcbiAgICAgICAgbmFtZTogXCJuaWMtbm8tbnNnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QobmljLnByb3BzLm5ldHdvcmtTZWN1cml0eUdyb3VwKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiQWNjZWxlcmF0ZWQgTmV0d29ya2luZ1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIE5JQyB3aXRoIGFjY2VsZXJhdGVkIG5ldHdvcmtpbmcgZW5hYmxlZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJBY2NlbGVyYXRlZE5ldHdvcmtpbmdcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1hY2NlbGVyYXRlZFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDFcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGVuYWJsZUFjY2VsZXJhdGVkTmV0d29ya2luZzogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QobmljLnByb3BzLmVuYWJsZUFjY2VsZXJhdGVkTmV0d29ya2luZykudG9CZSh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGRlZmF1bHQgYWNjZWxlcmF0ZWQgbmV0d29ya2luZyB0byBmYWxzZVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJEZWZhdWx0QWNjZWxlcmF0ZWRcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1kZWZhdWx0LWFjY2VsZXJhdGVkXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QobmljLnByb3BzLmVuYWJsZUFjY2VsZXJhdGVkTmV0d29ya2luZykudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIklQIEZvcndhcmRpbmdcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBOSUMgd2l0aCBJUCBmb3J3YXJkaW5nIGVuYWJsZWQgKGZvciBOVkFzKVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJJUEZvcndhcmRpbmdcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1pcC1mb3J3YXJkaW5nXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZW5hYmxlSVBGb3J3YXJkaW5nOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChuaWMucHJvcHMuZW5hYmxlSVBGb3J3YXJkaW5nKS50b0JlKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgZGVmYXVsdCBJUCBmb3J3YXJkaW5nIHRvIGZhbHNlXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IG5pYyA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIkRlZmF1bHRJUEZvcndhcmRpbmdcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1kZWZhdWx0LWZvcndhcmRpbmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChuaWMucHJvcHMuZW5hYmxlSVBGb3J3YXJkaW5nKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiRE5TIFNldHRpbmdzIENvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBOSUMgd2l0aCBjdXN0b20gRE5TIHNlcnZlcnNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgbmljID0gbmV3IE5ldHdvcmtJbnRlcmZhY2Uoc3RhY2ssIFwiQ3VzdG9tRE5TXCIsIHtcbiAgICAgICAgbmFtZTogXCJuaWMtZG5zXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZG5zU2V0dGluZ3M6IHtcbiAgICAgICAgICBkbnNTZXJ2ZXJzOiBbXCI4LjguOC44XCIsIFwiOC44LjQuNFwiXSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QobmljLnByb3BzLmRuc1NldHRpbmdzKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5kbnNTZXR0aW5ncz8uZG5zU2VydmVycykudG9FcXVhbChbXCI4LjguOC44XCIsIFwiOC44LjQuNFwiXSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgTklDIHdpdGggaW50ZXJuYWwgRE5TIG5hbWUgbGFiZWxcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgbmljID0gbmV3IE5ldHdvcmtJbnRlcmZhY2Uoc3RhY2ssIFwiSW50ZXJuYWxETlNcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1pbnRlcm5hbC1kbnNcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBkbnNTZXR0aW5nczoge1xuICAgICAgICAgIGludGVybmFsRG5zTmFtZUxhYmVsOiBcIm15dm1cIixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QobmljLnByb3BzLmRuc1NldHRpbmdzPy5pbnRlcm5hbERuc05hbWVMYWJlbCkudG9CZShcIm15dm1cIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgTklDIHdpdGhvdXQgRE5TIHNldHRpbmdzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IG5pYyA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIk5vRE5TXCIsIHtcbiAgICAgICAgbmFtZTogXCJuaWMtbm8tZG5zXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QobmljLnByb3BzLmRuc1NldHRpbmdzKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiVGFncyBNYW5hZ2VtZW50XCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgTklDIHdpdGggdGFnc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJUYWdnZWROSUNcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy10YWdnZWRcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICAgIGNvc3RfY2VudGVyOiBcImVuZ2luZWVyaW5nXCIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KG5pYy5wcm9wcy50YWdzKS50b0VxdWFsKHtcbiAgICAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICBjb3N0X2NlbnRlcjogXCJlbmdpbmVlcmluZ1wiLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzdXBwb3J0IGFkZGluZyB0YWdzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IG5pYyA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIkFkZFRhZ1wiLCB7XG4gICAgICAgIG5hbWU6IFwibmljLWFkZC10YWdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICB0YWdzOiB7IGVudmlyb25tZW50OiBcInRlc3RcIiB9LFxuICAgICAgfSk7XG5cbiAgICAgIG5pYy5hZGRUYWcoXCJuZXdUYWdcIiwgXCJuZXdWYWx1ZVwiKTtcbiAgICAgIGV4cGVjdChuaWMucHJvcHMudGFncyEubmV3VGFnKS50b0JlKFwibmV3VmFsdWVcIik7XG4gICAgICBleHBlY3QobmljLnByb3BzLnRhZ3MhLmVudmlyb25tZW50KS50b0JlKFwidGVzdFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHN1cHBvcnQgcmVtb3ZpbmcgdGFnc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJSZW1vdmVUYWdcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1yZW1vdmUtdGFnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIGVudmlyb25tZW50OiBcInRlc3RcIixcbiAgICAgICAgICB0ZW1wb3Jhcnk6IFwidHJ1ZVwiLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIG5pYy5yZW1vdmVUYWcoXCJ0ZW1wb3JhcnlcIik7XG4gICAgICBleHBlY3QobmljLnByb3BzLnRhZ3MhLnRlbXBvcmFyeSkudG9CZVVuZGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy50YWdzIS5lbnZpcm9ubWVudCkudG9CZShcInRlc3RcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiVGVycmFmb3JtIE91dHB1dHNcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBUZXJyYWZvcm0gb3V0cHV0c1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJPdXRwdXRUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJuaWMtb3V0cHV0c1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDFcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KG5pYy5pZE91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdGYuVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChuaWMubmFtZU91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdGYuVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChuaWMubG9jYXRpb25PdXRwdXQpLnRvQmVJbnN0YW5jZU9mKGNka3RmLlRlcnJhZm9ybU91dHB1dCk7XG4gICAgICBleHBlY3QobmljLnRhZ3NPdXRwdXQpLnRvQmVJbnN0YW5jZU9mKGNka3RmLlRlcnJhZm9ybU91dHB1dCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYXZlIGNvcnJlY3QgaWQgZm9ybWF0XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IG5pYyA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIklkRm9ybWF0XCIsIHtcbiAgICAgICAgbmFtZTogXCJuaWMtaWRcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChuaWMuaWQpLnRvTWF0Y2goL15cXCRcXHsuKlxcLmlkXFx9JC8pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlZlcnNpb24gQ29tcGF0aWJpbGl0eVwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgd29yayB3aXRoIGFsbCBzdXBwb3J0ZWQgQVBJIHZlcnNpb25zXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZlcnNpb25zID0gW1wiMjAyNC0wNy0wMVwiLCBcIjIwMjQtMTAtMDFcIl07XG5cbiAgICAgIHZlcnNpb25zLmZvckVhY2goKHZlcnNpb24pID0+IHtcbiAgICAgICAgY29uc3QgbmljID0gbmV3IE5ldHdvcmtJbnRlcmZhY2UoXG4gICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgYE5JQy0ke3ZlcnNpb24ucmVwbGFjZSgvLS9nLCBcIlwiKX1gLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IGBuaWMtJHt2ZXJzaW9ufWAsXG4gICAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICAgIGFwaVZlcnNpb246IHZlcnNpb24sXG4gICAgICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gICAgICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcblxuICAgICAgICBleHBlY3QobmljLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZSh2ZXJzaW9uKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIklnbm9yZSBDaGFuZ2VzIENvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGFwcGx5IGlnbm9yZSBjaGFuZ2VzIGxpZmVjeWNsZSBydWxlc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJJZ25vcmVDaGFuZ2VzXCIsIHtcbiAgICAgICAgbmFtZTogXCJuaWMtaWdub3JlXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgaWdub3JlQ2hhbmdlczogW1widGFnc1wiLCBcImRuc1NldHRpbmdzXCJdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChuaWMpLnRvQmVJbnN0YW5jZU9mKE5ldHdvcmtJbnRlcmZhY2UpO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5pZ25vcmVDaGFuZ2VzKS50b0VxdWFsKFtcInRhZ3NcIiwgXCJkbnNTZXR0aW5nc1wiXSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgZW1wdHkgaWdub3JlIGNoYW5nZXMgYXJyYXlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgbmljID0gbmV3IE5ldHdvcmtJbnRlcmZhY2Uoc3RhY2ssIFwiRW1wdHlJZ25vcmVcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1lbXB0eS1pZ25vcmVcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QobmljKS50b0JlSW5zdGFuY2VPZihOZXR3b3JrSW50ZXJmYWNlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJDREsgVGVycmFmb3JtIEludGVncmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBzeW50aGVzaXplIHRvIHZhbGlkIFRlcnJhZm9ybSBjb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICAgIG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIlN5bnRoVGVzdFwiLCB7XG4gICAgICAgIG5hbWU6IFwibmljLXN5bnRoXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdGFnczogeyB0ZXN0OiBcInN5bnRoZXNpc1wiIH0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9CZURlZmluZWQoKTtcblxuICAgICAgY29uc3Qgc3RhY2tDb25maWcgPSBKU09OLnBhcnNlKHN5bnRoZXNpemVkKTtcbiAgICAgIGV4cGVjdChzdGFja0NvbmZpZy5yZXNvdXJjZSkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBtdWx0aXBsZSBOSUNzIGluIHRoZSBzYW1lIHN0YWNrXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IG5pYzEgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJOSUMxXCIsIHtcbiAgICAgICAgbmFtZTogXCJuaWMtMVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDFcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgbmljMiA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIk5JQzJcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy0yXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcIndlc3R1c1wiLFxuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjQtMDctMDFcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDJcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgICAgIHByaXZhdGVJUEFkZHJlc3M6IFwiMTAuMS4xLjRcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QobmljMS5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI0LTEwLTAxXCIpO1xuICAgICAgZXhwZWN0KG5pYzIucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNC0wNy0wMVwiKTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJDb21wbGV0ZSBOZXR3b3JraW5nIFNjZW5hcmlvc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIFZNIE5JQyB3aXRoIGFsbCBuZXR3b3JraW5nIGNvbXBvbmVudHNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgbmljID0gbmV3IE5ldHdvcmtJbnRlcmZhY2Uoc3RhY2ssIFwiQ29tcGxldGVOSUNcIiwge1xuICAgICAgICBuYW1lOiBcInZtLW5pYy1jb21wbGV0ZVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDFcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgICAgIHByaXZhdGVJUEFkZHJlc3M6IFwiMTAuMC4xLjRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzczogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3B1YmxpY0lQcy9waXAxXCIgfSxcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbmV0d29ya1NlY3VyaXR5R3JvdXA6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9uc2dzL25zZzFcIiB9LFxuICAgICAgICBlbmFibGVBY2NlbGVyYXRlZE5ldHdvcmtpbmc6IHRydWUsXG4gICAgICAgIGRuc1NldHRpbmdzOiB7XG4gICAgICAgICAgZG5zU2VydmVyczogW1wiMTAuMC4wLjRcIl0sXG4gICAgICAgICAgaW50ZXJuYWxEbnNOYW1lTGFiZWw6IFwibXl2bVwiLFxuICAgICAgICB9LFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICAgIHJvbGU6IFwid2ViLXNlcnZlclwiLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChuaWMucHJvcHMuaXBDb25maWd1cmF0aW9uc1swXS5wdWJsaWNJUEFkZHJlc3MpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QobmljLnByb3BzLm5ldHdvcmtTZWN1cml0eUdyb3VwKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5lbmFibGVBY2NlbGVyYXRlZE5ldHdvcmtpbmcpLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QobmljLnByb3BzLmRuc1NldHRpbmdzKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIE5WQSBOSUMgd2l0aCBJUCBmb3J3YXJkaW5nXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IG5pYyA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIk5WQU5JQ1wiLCB7XG4gICAgICAgIG5hbWU6IFwibnZhLW5pY1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDFcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgICAgIHByaXZhdGVJUEFkZHJlc3M6IFwiMTAuMC4xLjEwXCIsXG4gICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGVuYWJsZUlQRm9yd2FyZGluZzogdHJ1ZSxcbiAgICAgICAgZW5hYmxlQWNjZWxlcmF0ZWROZXR3b3JraW5nOiB0cnVlLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgcm9sZTogXCJuZXR3b3JrLXZpcnR1YWwtYXBwbGlhbmNlXCIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5lbmFibGVJUEZvcndhcmRpbmcpLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QobmljLnByb3BzLmVuYWJsZUFjY2VsZXJhdGVkTmV0d29ya2luZykudG9CZSh0cnVlKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
655
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1pbnRlcmZhY2Uuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1uZXR3b3JraW50ZXJmYWNlL3Rlc3QvbmV0d29yay1pbnRlcmZhY2Uuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQUVILGlDQUFnQztBQUNoQywrQkFBK0I7QUFDL0IsZ0VBR2tDO0FBRWxDLFFBQVEsQ0FBQyxtQ0FBbUMsRUFBRSxHQUFHLEVBQUU7SUFDakQsSUFBSSxHQUFjLENBQUM7SUFDbkIsSUFBSSxLQUEyQixDQUFDO0lBRWhDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxHQUFHLEdBQUcsZUFBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtRQUNoRCxFQUFFLENBQUMsMEVBQTBFLEVBQUUsR0FBRyxFQUFFO1lBQ2xGLE1BQU0sS0FBSyxHQUEwQjtnQkFDbkMsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixnQkFBZ0IsRUFBRTtvQkFDaEI7d0JBQ0UsSUFBSSxFQUFFLFdBQVc7d0JBQ2pCLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxxQ0FBcUMsRUFBRTt3QkFDckQseUJBQXlCLEVBQUUsU0FBUzt3QkFDcEMsT0FBTyxFQUFFLElBQUk7cUJBQ2Q7aUJBQ0Y7YUFDRixDQUFDO1lBRUYsTUFBTSxHQUFHLEdBQUcsSUFBSSxvQ0FBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRTFELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsb0NBQWdCLENBQUMsQ0FBQztZQUM3QyxNQUFNLENB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LENBQUM7WUFDaEQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb21wcmVoZW5zaXZlIHRlc3RzIGZvciB0aGUgTmV0d29yayBJbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cbiAqXG4gKiBUaGlzIHRlc3Qgc3VpdGUgdmFsaWRhdGVzIHRoZSBOZXR3b3JrSW50ZXJmYWNlIGNsYXNzIHVzaW5nIHRoZSBBemFwaVJlc291cmNlIGZyYW1ld29yay5cbiAqIFRlc3RzIGNvdmVyIGF1dG9tYXRpYyB2ZXJzaW9uIHJlc29sdXRpb24sIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZywgc2NoZW1hIHZhbGlkYXRpb24sXG4gKiBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbiwgYW5kIHJlc291cmNlIGNyZWF0aW9uLlxuICovXG5cbmltcG9ydCB7IFRlc3RpbmcgfSBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCAqIGFzIGNka3RuIGZyb20gXCJjZGt0blwiO1xuaW1wb3J0IHtcbiAgTmV0d29ya0ludGVyZmFjZSxcbiAgTmV0d29ya0ludGVyZmFjZVByb3BzLFxufSBmcm9tIFwiLi4vbGliL25ldHdvcmstaW50ZXJmYWNlXCI7XG5cbmRlc2NyaWJlKFwiTmV0d29ya0ludGVyZmFjZSAtIEltcGxlbWVudGF0aW9uXCIsICgpID0+IHtcbiAgbGV0IGFwcDogY2RrdG4uQXBwO1xuICBsZXQgc3RhY2s6IGNka3RuLlRlcnJhZm9ybVN0YWNrO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgc3RhY2sgPSBuZXcgY2RrdG4uVGVycmFmb3JtU3RhY2soYXBwLCBcIlRlc3RTdGFja1wiKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJDb25zdHJ1Y3RvciBhbmQgQmFzaWMgUHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIG5ldHdvcmsgaW50ZXJmYWNlIHdpdGggYXV0b21hdGljIGxhdGVzdCB2ZXJzaW9uIHJlc29sdXRpb25cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IE5ldHdvcmtJbnRlcmZhY2VQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LW5pY1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDFcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJUZXN0TklDXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KG5pYykudG9CZUluc3RhbmNlT2YoTmV0d29ya0ludGVyZmFjZSk7XG4gICAgICBleHBlY3QobmljLnByb3BzKS50b0JlKHByb3BzKTtcbiAgICAgIGV4cGVjdChuaWMubmFtZSkudG9CZShcInRlc3QtbmljXCIpO1xuICAgICAgZXhwZWN0KG5pYy5sb2NhdGlvbikudG9CZShcImVhc3R1c1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBuZXR3b3JrIGludGVyZmFjZSB3aXRoIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZ1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogTmV0d29ya0ludGVyZmFjZVByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtbmljLXBpbm5lZFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJ3ZXN0dXNcIixcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDI0LTA3LTAxXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICB0YWdzOiB7IGVudmlyb25tZW50OiBcInRlc3RcIiB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgbmljID0gbmV3IE5ldHdvcmtJbnRlcmZhY2Uoc3RhY2ssIFwiVGVzdE5JQ1wiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChuaWMucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNC0wNy0wMVwiKTtcbiAgICAgIGV4cGVjdChuaWMudGFncykudG9FcXVhbCh7IGVudmlyb25tZW50OiBcInRlc3RcIiB9KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBuZXR3b3JrIGludGVyZmFjZSB3aXRoIGFsbCBvcHRpb25hbCBwcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBOZXR3b3JrSW50ZXJmYWNlUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1uaWMtZnVsbFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJjZW50cmFsdXNcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDFcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgICAgIHByaXZhdGVJUEFkZHJlc3M6IFwiMTAuMC4xLjRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzczogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3B1YmxpY0lQcy9waXAxXCIgfSxcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbmV0d29ya1NlY3VyaXR5R3JvdXA6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9uc2dzL25zZzFcIiB9LFxuICAgICAgICBlbmFibGVBY2NlbGVyYXRlZE5ldHdvcmtpbmc6IHRydWUsXG4gICAgICAgIGVuYWJsZUlQRm9yd2FyZGluZzogdHJ1ZSxcbiAgICAgICAgZG5zU2V0dGluZ3M6IHtcbiAgICAgICAgICBkbnNTZXJ2ZXJzOiBbXCIxMC4wLjAuNFwiLCBcIjEwLjAuMC41XCJdLFxuICAgICAgICAgIGludGVybmFsRG5zTmFtZUxhYmVsOiBcIm15dm1cIixcbiAgICAgICAgfSxcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIGVudmlyb25tZW50OiBcInByb2R1Y3Rpb25cIixcbiAgICAgICAgICBwcm9qZWN0OiBcIm5ldHdvcmtpbmdcIixcbiAgICAgICAgICBvd25lcjogXCJ0ZWFtQGNvbXBhbnkuY29tXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGlnbm9yZUNoYW5nZXM6IFtcInRhZ3NcIl0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJUZXN0TklDXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5pcENvbmZpZ3VyYXRpb25zKS50b0VxdWFsKHByb3BzLmlwQ29uZmlndXJhdGlvbnMpO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5uZXR3b3JrU2VjdXJpdHlHcm91cCkudG9FcXVhbChcbiAgICAgICAgcHJvcHMubmV0d29ya1NlY3VyaXR5R3JvdXAsXG4gICAgICApO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5lbmFibGVBY2NlbGVyYXRlZE5ldHdvcmtpbmcpLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QobmljLnByb3BzLmVuYWJsZUlQRm9yd2FyZGluZykudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdChuaWMucHJvcHMuZG5zU2V0dGluZ3MpLnRvRXF1YWwocHJvcHMuZG5zU2V0dGluZ3MpO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy50YWdzKS50b0VxdWFsKHByb3BzLnRhZ3MpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdXNlIGRlZmF1bHQgbmFtZSB3aGVuIG5hbWUgaXMgbm90IHByb3ZpZGVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBOZXR3b3JrSW50ZXJmYWNlUHJvcHMgPSB7XG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG5pYyA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIlRlc3ROSUNcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QobmljLm5hbWUpLnRvQmUoXCJUZXN0TklDXCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlJlc291cmNlIFR5cGUgYW5kIEFQSSBWZXJzaW9uc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgaGF2ZSBjb3JyZWN0IHJlc291cmNlIHR5cGVcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgbmljID0gbmV3IE5ldHdvcmtJbnRlcmZhY2Uoc3RhY2ssIFwiVGVzdE5JQ1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1uaWNcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChuaWMpLnRvQmVJbnN0YW5jZU9mKE5ldHdvcmtJbnRlcmZhY2UpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgc3VwcG9ydCBhbGwgcmVnaXN0ZXJlZCBBUEkgdmVyc2lvbnNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgdmVyc2lvbnMgPSBbXCIyMDI0LTA3LTAxXCIsIFwiMjAyNC0xMC0wMVwiXTtcblxuICAgICAgdmVyc2lvbnMuZm9yRWFjaCgodmVyc2lvbikgPT4ge1xuICAgICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShcbiAgICAgICAgICBzdGFjayxcbiAgICAgICAgICBgTklDLSR7dmVyc2lvbi5yZXBsYWNlKC8tL2csIFwiXCIpfWAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogYG5pYy0ke3ZlcnNpb259YCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgICAgYXBpVmVyc2lvbjogdmVyc2lvbixcbiAgICAgICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuXG4gICAgICAgIGV4cGVjdChuaWMucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKHZlcnNpb24pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB1c2UgbGF0ZXN0IHZlcnNpb24gYXMgZGVmYXVsdFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJUZXN0TklDXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LW5pY1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDFcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KG5pYy5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI0LTEwLTAxXCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIklQIENvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBOSUMgd2l0aCBzaW5nbGUgZHluYW1pYyBJUCBjb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IG5pYyA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIlNpbmdsZUR5bmFtaWNcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1zaW5nbGUtZHluYW1pY1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDFcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5pcENvbmZpZ3VyYXRpb25zKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgICBleHBlY3QobmljLnByb3BzLmlwQ29uZmlndXJhdGlvbnNbMF0ucHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZCkudG9CZShcbiAgICAgICAgXCJEeW5hbWljXCIsXG4gICAgICApO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5pcENvbmZpZ3VyYXRpb25zWzBdLnByaW1hcnkpLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgTklDIHdpdGggc3RhdGljIHByaXZhdGUgSVBcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgbmljID0gbmV3IE5ldHdvcmtJbnRlcmZhY2Uoc3RhY2ssIFwiU3RhdGljSVBcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1zdGF0aWNcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiU3RhdGljXCIsXG4gICAgICAgICAgICBwcml2YXRlSVBBZGRyZXNzOiBcIjEwLjAuMS40XCIsXG4gICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5pcENvbmZpZ3VyYXRpb25zWzBdLnByaXZhdGVJUEFsbG9jYXRpb25NZXRob2QpLnRvQmUoXG4gICAgICAgIFwiU3RhdGljXCIsXG4gICAgICApO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5pcENvbmZpZ3VyYXRpb25zWzBdLnByaXZhdGVJUEFkZHJlc3MpLnRvQmUoXCIxMC4wLjEuNFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBOSUMgd2l0aCBwdWJsaWMgSVAgYWRkcmVzc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJXaXRoUHVibGljSVBcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1wdWJsaWMtaXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHVibGljSVBBZGRyZXNzOiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3QvcHVibGljSVBzL3BpcDFcIiB9LFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChuaWMucHJvcHMuaXBDb25maWd1cmF0aW9uc1swXS5wdWJsaWNJUEFkZHJlc3MpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QobmljLnByb3BzLmlwQ29uZmlndXJhdGlvbnNbMF0ucHVibGljSVBBZGRyZXNzPy5pZCkudG9CZShcbiAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3B1YmxpY0lQcy9waXAxXCIsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIE5JQyB3aXRoIG11bHRpcGxlIElQIGNvbmZpZ3VyYXRpb25zXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IG5pYyA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIk11bHRpcGxlSVBzXCIsIHtcbiAgICAgICAgbmFtZTogXCJuaWMtbXVsdGlwbGUtaXBzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMlwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiU3RhdGljXCIsXG4gICAgICAgICAgICBwcml2YXRlSVBBZGRyZXNzOiBcIjEwLjAuMS41XCIsXG4gICAgICAgICAgICBwcmltYXJ5OiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChuaWMucHJvcHMuaXBDb25maWd1cmF0aW9ucykudG9IYXZlTGVuZ3RoKDIpO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5pcENvbmZpZ3VyYXRpb25zWzBdLnByaW1hcnkpLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QobmljLnByb3BzLmlwQ29uZmlndXJhdGlvbnNbMV0ucHJpbWFyeSkudG9CZShmYWxzZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiTmV0d29yayBTZWN1cml0eSBHcm91cCBBc3NvY2lhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIE5JQyB3aXRoIE5TRyBhdHRhY2hlZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJXaXRoTlNHXCIsIHtcbiAgICAgICAgbmFtZTogXCJuaWMtd2l0aC1uc2dcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBuZXR3b3JrU2VjdXJpdHlHcm91cDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L25zZ3MvbnNnMVwiIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5uZXR3b3JrU2VjdXJpdHlHcm91cCkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChuaWMucHJvcHMubmV0d29ya1NlY3VyaXR5R3JvdXA/LmlkKS50b0JlKFxuICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3QvbnNncy9uc2cxXCIsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIE5JQyB3aXRob3V0IE5TR1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJXaXRob3V0TlNHXCIsIHtcbiAgICAgICAgbmFtZTogXCJuaWMtbm8tbnNnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QobmljLnByb3BzLm5ldHdvcmtTZWN1cml0eUdyb3VwKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiQWNjZWxlcmF0ZWQgTmV0d29ya2luZ1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIE5JQyB3aXRoIGFjY2VsZXJhdGVkIG5ldHdvcmtpbmcgZW5hYmxlZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJBY2NlbGVyYXRlZE5ldHdvcmtpbmdcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1hY2NlbGVyYXRlZFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDFcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGVuYWJsZUFjY2VsZXJhdGVkTmV0d29ya2luZzogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QobmljLnByb3BzLmVuYWJsZUFjY2VsZXJhdGVkTmV0d29ya2luZykudG9CZSh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGRlZmF1bHQgYWNjZWxlcmF0ZWQgbmV0d29ya2luZyB0byBmYWxzZVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJEZWZhdWx0QWNjZWxlcmF0ZWRcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1kZWZhdWx0LWFjY2VsZXJhdGVkXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QobmljLnByb3BzLmVuYWJsZUFjY2VsZXJhdGVkTmV0d29ya2luZykudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIklQIEZvcndhcmRpbmdcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBOSUMgd2l0aCBJUCBmb3J3YXJkaW5nIGVuYWJsZWQgKGZvciBOVkFzKVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJJUEZvcndhcmRpbmdcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1pcC1mb3J3YXJkaW5nXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZW5hYmxlSVBGb3J3YXJkaW5nOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChuaWMucHJvcHMuZW5hYmxlSVBGb3J3YXJkaW5nKS50b0JlKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgZGVmYXVsdCBJUCBmb3J3YXJkaW5nIHRvIGZhbHNlXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IG5pYyA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIkRlZmF1bHRJUEZvcndhcmRpbmdcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1kZWZhdWx0LWZvcndhcmRpbmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChuaWMucHJvcHMuZW5hYmxlSVBGb3J3YXJkaW5nKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiRE5TIFNldHRpbmdzIENvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBOSUMgd2l0aCBjdXN0b20gRE5TIHNlcnZlcnNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgbmljID0gbmV3IE5ldHdvcmtJbnRlcmZhY2Uoc3RhY2ssIFwiQ3VzdG9tRE5TXCIsIHtcbiAgICAgICAgbmFtZTogXCJuaWMtZG5zXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgZG5zU2V0dGluZ3M6IHtcbiAgICAgICAgICBkbnNTZXJ2ZXJzOiBbXCI4LjguOC44XCIsIFwiOC44LjQuNFwiXSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QobmljLnByb3BzLmRuc1NldHRpbmdzKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5kbnNTZXR0aW5ncz8uZG5zU2VydmVycykudG9FcXVhbChbXCI4LjguOC44XCIsIFwiOC44LjQuNFwiXSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgTklDIHdpdGggaW50ZXJuYWwgRE5TIG5hbWUgbGFiZWxcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgbmljID0gbmV3IE5ldHdvcmtJbnRlcmZhY2Uoc3RhY2ssIFwiSW50ZXJuYWxETlNcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1pbnRlcm5hbC1kbnNcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBkbnNTZXR0aW5nczoge1xuICAgICAgICAgIGludGVybmFsRG5zTmFtZUxhYmVsOiBcIm15dm1cIixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QobmljLnByb3BzLmRuc1NldHRpbmdzPy5pbnRlcm5hbERuc05hbWVMYWJlbCkudG9CZShcIm15dm1cIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgTklDIHdpdGhvdXQgRE5TIHNldHRpbmdzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IG5pYyA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIk5vRE5TXCIsIHtcbiAgICAgICAgbmFtZTogXCJuaWMtbm8tZG5zXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QobmljLnByb3BzLmRuc1NldHRpbmdzKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiVGFncyBNYW5hZ2VtZW50XCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgTklDIHdpdGggdGFnc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJUYWdnZWROSUNcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy10YWdnZWRcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICAgIGNvc3RfY2VudGVyOiBcImVuZ2luZWVyaW5nXCIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KG5pYy5wcm9wcy50YWdzKS50b0VxdWFsKHtcbiAgICAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICBjb3N0X2NlbnRlcjogXCJlbmdpbmVlcmluZ1wiLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzdXBwb3J0IGFkZGluZyB0YWdzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IG5pYyA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIkFkZFRhZ1wiLCB7XG4gICAgICAgIG5hbWU6IFwibmljLWFkZC10YWdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICB0YWdzOiB7IGVudmlyb25tZW50OiBcInRlc3RcIiB9LFxuICAgICAgfSk7XG5cbiAgICAgIG5pYy5hZGRUYWcoXCJuZXdUYWdcIiwgXCJuZXdWYWx1ZVwiKTtcbiAgICAgIGV4cGVjdChuaWMucHJvcHMudGFncyEubmV3VGFnKS50b0JlKFwibmV3VmFsdWVcIik7XG4gICAgICBleHBlY3QobmljLnByb3BzLnRhZ3MhLmVudmlyb25tZW50KS50b0JlKFwidGVzdFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHN1cHBvcnQgcmVtb3ZpbmcgdGFnc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJSZW1vdmVUYWdcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1yZW1vdmUtdGFnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIGVudmlyb25tZW50OiBcInRlc3RcIixcbiAgICAgICAgICB0ZW1wb3Jhcnk6IFwidHJ1ZVwiLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIG5pYy5yZW1vdmVUYWcoXCJ0ZW1wb3JhcnlcIik7XG4gICAgICBleHBlY3QobmljLnByb3BzLnRhZ3MhLnRlbXBvcmFyeSkudG9CZVVuZGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy50YWdzIS5lbnZpcm9ubWVudCkudG9CZShcInRlc3RcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiVGVycmFmb3JtIE91dHB1dHNcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBUZXJyYWZvcm0gb3V0cHV0c1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJPdXRwdXRUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJuaWMtb3V0cHV0c1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDFcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KG5pYy5pZE91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdG4uVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChuaWMubmFtZU91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdG4uVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChuaWMubG9jYXRpb25PdXRwdXQpLnRvQmVJbnN0YW5jZU9mKGNka3RuLlRlcnJhZm9ybU91dHB1dCk7XG4gICAgICBleHBlY3QobmljLnRhZ3NPdXRwdXQpLnRvQmVJbnN0YW5jZU9mKGNka3RuLlRlcnJhZm9ybU91dHB1dCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYXZlIGNvcnJlY3QgaWQgZm9ybWF0XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IG5pYyA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIklkRm9ybWF0XCIsIHtcbiAgICAgICAgbmFtZTogXCJuaWMtaWRcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChuaWMuaWQpLnRvTWF0Y2goL15cXCRcXHsuKlxcLmlkXFx9JC8pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlZlcnNpb24gQ29tcGF0aWJpbGl0eVwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgd29yayB3aXRoIGFsbCBzdXBwb3J0ZWQgQVBJIHZlcnNpb25zXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZlcnNpb25zID0gW1wiMjAyNC0wNy0wMVwiLCBcIjIwMjQtMTAtMDFcIl07XG5cbiAgICAgIHZlcnNpb25zLmZvckVhY2goKHZlcnNpb24pID0+IHtcbiAgICAgICAgY29uc3QgbmljID0gbmV3IE5ldHdvcmtJbnRlcmZhY2UoXG4gICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgYE5JQy0ke3ZlcnNpb24ucmVwbGFjZSgvLS9nLCBcIlwiKX1gLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IGBuaWMtJHt2ZXJzaW9ufWAsXG4gICAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICAgIGFwaVZlcnNpb246IHZlcnNpb24sXG4gICAgICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gICAgICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcblxuICAgICAgICBleHBlY3QobmljLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZSh2ZXJzaW9uKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIklnbm9yZSBDaGFuZ2VzIENvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGFwcGx5IGlnbm9yZSBjaGFuZ2VzIGxpZmVjeWNsZSBydWxlc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBuaWMgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJJZ25vcmVDaGFuZ2VzXCIsIHtcbiAgICAgICAgbmFtZTogXCJuaWMtaWdub3JlXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgaWdub3JlQ2hhbmdlczogW1widGFnc1wiLCBcImRuc1NldHRpbmdzXCJdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChuaWMpLnRvQmVJbnN0YW5jZU9mKE5ldHdvcmtJbnRlcmZhY2UpO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5pZ25vcmVDaGFuZ2VzKS50b0VxdWFsKFtcInRhZ3NcIiwgXCJkbnNTZXR0aW5nc1wiXSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgZW1wdHkgaWdub3JlIGNoYW5nZXMgYXJyYXlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgbmljID0gbmV3IE5ldHdvcmtJbnRlcmZhY2Uoc3RhY2ssIFwiRW1wdHlJZ25vcmVcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy1lbXB0eS1pZ25vcmVcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIGlwQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImlwY29uZmlnMVwiLFxuICAgICAgICAgICAgc3VibmV0OiB7IGlkOiBcIi9zdWJzY3JpcHRpb25zL3Rlc3Qvc3VibmV0cy9zdWJuZXQxXCIgfSxcbiAgICAgICAgICAgIHByaXZhdGVJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgICAgICAgcHJpbWFyeTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QobmljKS50b0JlSW5zdGFuY2VPZihOZXR3b3JrSW50ZXJmYWNlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJDREsgVGVycmFmb3JtIEludGVncmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBzeW50aGVzaXplIHRvIHZhbGlkIFRlcnJhZm9ybSBjb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICAgIG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIlN5bnRoVGVzdFwiLCB7XG4gICAgICAgIG5hbWU6IFwibmljLXN5bnRoXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBpcENvbmZpZ3VyYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJpcGNvbmZpZzFcIixcbiAgICAgICAgICAgIHN1Ym5ldDogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3N1Ym5ldHMvc3VibmV0MVwiIH0sXG4gICAgICAgICAgICBwcml2YXRlSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdGFnczogeyB0ZXN0OiBcInN5bnRoZXNpc1wiIH0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9CZURlZmluZWQoKTtcblxuICAgICAgY29uc3Qgc3RhY2tDb25maWcgPSBKU09OLnBhcnNlKHN5bnRoZXNpemVkKTtcbiAgICAgIGV4cGVjdChzdGFja0NvbmZpZy5yZXNvdXJjZSkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBtdWx0aXBsZSBOSUNzIGluIHRoZSBzYW1lIHN0YWNrXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IG5pYzEgPSBuZXcgTmV0d29ya0ludGVyZmFjZShzdGFjaywgXCJOSUMxXCIsIHtcbiAgICAgICAgbmFtZTogXCJuaWMtMVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDFcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgbmljMiA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIk5JQzJcIiwge1xuICAgICAgICBuYW1lOiBcIm5pYy0yXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcIndlc3R1c1wiLFxuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjQtMDctMDFcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDJcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgICAgIHByaXZhdGVJUEFkZHJlc3M6IFwiMTAuMS4xLjRcIixcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QobmljMS5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI0LTEwLTAxXCIpO1xuICAgICAgZXhwZWN0KG5pYzIucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNC0wNy0wMVwiKTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJDb21wbGV0ZSBOZXR3b3JraW5nIFNjZW5hcmlvc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIFZNIE5JQyB3aXRoIGFsbCBuZXR3b3JraW5nIGNvbXBvbmVudHNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgbmljID0gbmV3IE5ldHdvcmtJbnRlcmZhY2Uoc3RhY2ssIFwiQ29tcGxldGVOSUNcIiwge1xuICAgICAgICBuYW1lOiBcInZtLW5pYy1jb21wbGV0ZVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDFcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgICAgIHByaXZhdGVJUEFkZHJlc3M6IFwiMTAuMC4xLjRcIixcbiAgICAgICAgICAgIHB1YmxpY0lQQWRkcmVzczogeyBpZDogXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3B1YmxpY0lQcy9waXAxXCIgfSxcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbmV0d29ya1NlY3VyaXR5R3JvdXA6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9uc2dzL25zZzFcIiB9LFxuICAgICAgICBlbmFibGVBY2NlbGVyYXRlZE5ldHdvcmtpbmc6IHRydWUsXG4gICAgICAgIGRuc1NldHRpbmdzOiB7XG4gICAgICAgICAgZG5zU2VydmVyczogW1wiMTAuMC4wLjRcIl0sXG4gICAgICAgICAgaW50ZXJuYWxEbnNOYW1lTGFiZWw6IFwibXl2bVwiLFxuICAgICAgICB9LFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICAgIHJvbGU6IFwid2ViLXNlcnZlclwiLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChuaWMucHJvcHMuaXBDb25maWd1cmF0aW9uc1swXS5wdWJsaWNJUEFkZHJlc3MpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QobmljLnByb3BzLm5ldHdvcmtTZWN1cml0eUdyb3VwKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5lbmFibGVBY2NlbGVyYXRlZE5ldHdvcmtpbmcpLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QobmljLnByb3BzLmRuc1NldHRpbmdzKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIE5WQSBOSUMgd2l0aCBJUCBmb3J3YXJkaW5nXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IG5pYyA9IG5ldyBOZXR3b3JrSW50ZXJmYWNlKHN0YWNrLCBcIk5WQU5JQ1wiLCB7XG4gICAgICAgIG5hbWU6IFwibnZhLW5pY1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgaXBDb25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXBjb25maWcxXCIsXG4gICAgICAgICAgICBzdWJuZXQ6IHsgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC9zdWJuZXRzL3N1Ym5ldDFcIiB9LFxuICAgICAgICAgICAgcHJpdmF0ZUlQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgICAgIHByaXZhdGVJUEFkZHJlc3M6IFwiMTAuMC4xLjEwXCIsXG4gICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGVuYWJsZUlQRm9yd2FyZGluZzogdHJ1ZSxcbiAgICAgICAgZW5hYmxlQWNjZWxlcmF0ZWROZXR3b3JraW5nOiB0cnVlLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgcm9sZTogXCJuZXR3b3JrLXZpcnR1YWwtYXBwbGlhbmNlXCIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KG5pYy5wcm9wcy5lbmFibGVJUEZvcndhcmRpbmcpLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QobmljLnByb3BzLmVuYWJsZUFjY2VsZXJhdGVkTmV0d29ya2luZykudG9CZSh0cnVlKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -17,7 +17,7 @@
17
17
  * - Full backward compatibility
18
18
  * - JSII compliance for multi-language support
19
19
  */
20
- import * as cdktf from "cdktf";
20
+ import * as cdktn from "cdktn";
21
21
  import { Construct } from "constructs";
22
22
  import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
23
23
  import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
@@ -187,11 +187,11 @@ export declare class NetworkSecurityGroup extends AzapiResource {
187
187
  * The input properties for this Network Security Group instance
188
188
  */
189
189
  readonly props: NetworkSecurityGroupProps;
190
- readonly idOutput: cdktf.TerraformOutput;
191
- readonly nameOutput: cdktf.TerraformOutput;
192
- readonly locationOutput: cdktf.TerraformOutput;
193
- readonly securityRulesOutput: cdktf.TerraformOutput;
194
- readonly tagsOutput: cdktf.TerraformOutput;
190
+ readonly idOutput: cdktn.TerraformOutput;
191
+ readonly nameOutput: cdktn.TerraformOutput;
192
+ readonly locationOutput: cdktn.TerraformOutput;
193
+ readonly securityRulesOutput: cdktn.TerraformOutput;
194
+ readonly tagsOutput: cdktn.TerraformOutput;
195
195
  /**
196
196
  * Creates a new Azure Network Security Group using the AzapiResource framework
197
197
  *