@microsoft/terraform-cdk-constructs 1.0.0 → 1.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 (385) hide show
  1. package/.jsii +60999 -15780
  2. package/API.md +54947 -10610
  3. package/README.md +72 -36
  4. package/docs/monitoring-guide.md +206 -0
  5. package/docs/testing.md +84 -1
  6. package/lib/azure-actiongroup/index.d.ts +11 -0
  7. package/lib/azure-actiongroup/index.js +28 -0
  8. package/lib/azure-actiongroup/lib/action-group-schemas.d.ts +24 -0
  9. package/lib/azure-actiongroup/lib/action-group-schemas.js +201 -0
  10. package/lib/azure-actiongroup/lib/action-group.d.ts +312 -0
  11. package/lib/azure-actiongroup/lib/action-group.js +201 -0
  12. package/lib/azure-actiongroup/lib/index.d.ts +5 -0
  13. package/lib/azure-actiongroup/lib/index.js +22 -0
  14. package/lib/azure-actiongroup/test/action-group.integ.d.ts +9 -0
  15. package/lib/azure-actiongroup/test/action-group.integ.js +79 -0
  16. package/lib/azure-actiongroup/test/action-group.spec.d.ts +8 -0
  17. package/lib/azure-actiongroup/test/action-group.spec.js +602 -0
  18. package/lib/azure-activitylogalert/index.d.ts +11 -0
  19. package/lib/azure-activitylogalert/index.js +28 -0
  20. package/lib/azure-activitylogalert/lib/activity-log-alert-schemas.d.ts +24 -0
  21. package/lib/azure-activitylogalert/lib/activity-log-alert-schemas.js +182 -0
  22. package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +236 -0
  23. package/lib/azure-activitylogalert/lib/activity-log-alert.js +212 -0
  24. package/lib/azure-activitylogalert/lib/index.d.ts +5 -0
  25. package/lib/azure-activitylogalert/lib/index.js +22 -0
  26. package/lib/azure-activitylogalert/test/activity-log-alert.integ.d.ts +9 -0
  27. package/lib/azure-activitylogalert/test/activity-log-alert.integ.js +98 -0
  28. package/lib/azure-activitylogalert/test/activity-log-alert.spec.d.ts +9 -0
  29. package/lib/azure-activitylogalert/test/activity-log-alert.spec.js +1101 -0
  30. package/lib/azure-aks/index.d.ts +9 -0
  31. package/lib/azure-aks/index.js +28 -0
  32. package/lib/azure-aks/lib/aks-cluster-schemas.d.ts +505 -0
  33. package/lib/azure-aks/lib/aks-cluster-schemas.js +572 -0
  34. package/lib/azure-aks/lib/aks-cluster.d.ts +395 -0
  35. package/lib/azure-aks/lib/aks-cluster.js +489 -0
  36. package/lib/azure-aks/lib/index.d.ts +11 -0
  37. package/lib/azure-aks/lib/index.js +38 -0
  38. package/lib/azure-aks/test/aks-cluster.integ.d.ts +9 -0
  39. package/lib/azure-aks/test/aks-cluster.integ.js +260 -0
  40. package/lib/azure-aks/test/aks-cluster.spec.d.ts +8 -0
  41. package/lib/azure-aks/test/aks-cluster.spec.js +1396 -0
  42. package/lib/azure-diagnosticsettings/index.d.ts +7 -0
  43. package/lib/azure-diagnosticsettings/index.js +24 -0
  44. package/lib/azure-diagnosticsettings/lib/diagnostic-settings-schemas.d.ts +50 -0
  45. package/lib/azure-diagnosticsettings/lib/diagnostic-settings-schemas.js +207 -0
  46. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +193 -0
  47. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +200 -0
  48. package/lib/azure-diagnosticsettings/lib/index.d.ts +8 -0
  49. package/lib/azure-diagnosticsettings/lib/index.js +25 -0
  50. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.d.ts +8 -0
  51. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.js +432 -0
  52. package/lib/azure-metricalert/index.d.ts +11 -0
  53. package/lib/azure-metricalert/index.js +28 -0
  54. package/lib/azure-metricalert/lib/index.d.ts +5 -0
  55. package/lib/azure-metricalert/lib/index.js +22 -0
  56. package/lib/azure-metricalert/lib/metric-alert-schemas.d.ts +24 -0
  57. package/lib/azure-metricalert/lib/metric-alert-schemas.js +242 -0
  58. package/lib/azure-metricalert/lib/metric-alert.d.ts +344 -0
  59. package/lib/azure-metricalert/lib/metric-alert.js +252 -0
  60. package/lib/azure-metricalert/test/metric-alert.integ.d.ts +9 -0
  61. package/lib/azure-metricalert/test/metric-alert.integ.js +123 -0
  62. package/lib/azure-metricalert/test/metric-alert.spec.d.ts +9 -0
  63. package/lib/azure-metricalert/test/metric-alert.spec.js +1266 -0
  64. package/lib/azure-networkinterface/index.d.ts +4 -0
  65. package/lib/azure-networkinterface/index.js +21 -0
  66. package/lib/azure-networkinterface/lib/index.d.ts +6 -0
  67. package/lib/azure-networkinterface/lib/index.js +22 -0
  68. package/lib/azure-networkinterface/lib/network-interface-schemas.d.ts +32 -0
  69. package/lib/azure-networkinterface/lib/network-interface-schemas.js +222 -0
  70. package/lib/azure-networkinterface/lib/network-interface.d.ts +265 -0
  71. package/lib/azure-networkinterface/lib/network-interface.js +228 -0
  72. package/lib/azure-networkinterface/test/network-interface.integ.d.ts +9 -0
  73. package/lib/azure-networkinterface/test/network-interface.integ.js +102 -0
  74. package/lib/azure-networkinterface/test/network-interface.spec.d.ts +8 -0
  75. package/lib/azure-networkinterface/test/network-interface.spec.js +655 -0
  76. package/lib/azure-networksecuritygroup/index.d.ts +6 -0
  77. package/lib/azure-networksecuritygroup/index.js +23 -0
  78. package/lib/azure-networksecuritygroup/lib/index.d.ts +5 -0
  79. package/lib/azure-networksecuritygroup/lib/index.js +16 -0
  80. package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.d.ts +32 -0
  81. package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.js +198 -0
  82. package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +268 -0
  83. package/lib/azure-networksecuritygroup/lib/network-security-group.js +248 -0
  84. package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +9 -0
  85. package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +151 -0
  86. package/lib/azure-networksecuritygroup/test/network-security-group.spec.d.ts +8 -0
  87. package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +652 -0
  88. package/lib/azure-publicipaddress/index.d.ts +6 -0
  89. package/lib/azure-publicipaddress/index.js +23 -0
  90. package/lib/azure-publicipaddress/lib/index.d.ts +9 -0
  91. package/lib/azure-publicipaddress/lib/index.js +19 -0
  92. package/lib/azure-publicipaddress/lib/public-ip-address-schemas.d.ts +32 -0
  93. package/lib/azure-publicipaddress/lib/public-ip-address-schemas.js +227 -0
  94. package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +256 -0
  95. package/lib/azure-publicipaddress/lib/public-ip-address.js +267 -0
  96. package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +9 -0
  97. package/lib/azure-publicipaddress/test/public-ip-address.integ.js +75 -0
  98. package/lib/azure-publicipaddress/test/public-ip-address.spec.d.ts +15 -0
  99. package/lib/azure-publicipaddress/test/public-ip-address.spec.js +498 -0
  100. package/lib/azure-resourcegroup/lib/resource-group.js +1 -1
  101. package/lib/azure-resourcegroup/test/resource-group.integ.js +23 -11
  102. package/lib/azure-storageaccount/lib/storage-account-schemas.d.ts +98 -0
  103. package/lib/azure-storageaccount/lib/storage-account-schemas.js +1 -1
  104. package/lib/azure-storageaccount/lib/storage-account.d.ts +38 -1
  105. package/lib/azure-storageaccount/lib/storage-account.js +138 -2
  106. package/lib/azure-storageaccount/test/storage-account.integ.js +91 -12
  107. package/lib/azure-subnet/index.d.ts +4 -0
  108. package/lib/azure-subnet/index.js +21 -0
  109. package/lib/azure-subnet/lib/index.d.ts +5 -0
  110. package/lib/azure-subnet/lib/index.js +22 -0
  111. package/lib/azure-subnet/lib/subnet-schemas.d.ts +32 -0
  112. package/lib/azure-subnet/lib/subnet-schemas.js +237 -0
  113. package/lib/azure-subnet/lib/subnet.d.ts +285 -0
  114. package/lib/azure-subnet/lib/subnet.js +254 -0
  115. package/lib/azure-subnet/test/subnet.integ.d.ts +11 -0
  116. package/lib/azure-subnet/test/subnet.integ.js +80 -0
  117. package/lib/azure-subnet/test/subnet.spec.d.ts +8 -0
  118. package/lib/azure-subnet/test/subnet.spec.js +396 -0
  119. package/lib/azure-virtualmachine/index.d.ts +7 -0
  120. package/lib/azure-virtualmachine/index.js +24 -0
  121. package/lib/azure-virtualmachine/lib/index.d.ts +11 -0
  122. package/lib/azure-virtualmachine/lib/index.js +38 -0
  123. package/lib/azure-virtualmachine/lib/virtual-machine-schemas.d.ts +327 -0
  124. package/lib/azure-virtualmachine/lib/virtual-machine-schemas.js +544 -0
  125. package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +377 -0
  126. package/lib/azure-virtualmachine/lib/virtual-machine.js +462 -0
  127. package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +9 -0
  128. package/lib/azure-virtualmachine/test/virtual-machine.integ.js +220 -0
  129. package/lib/azure-virtualmachine/test/virtual-machine.spec.d.ts +9 -0
  130. package/lib/azure-virtualmachine/test/virtual-machine.spec.js +1032 -0
  131. package/lib/azure-virtualnetwork/index.d.ts +10 -0
  132. package/lib/azure-virtualnetwork/index.js +28 -0
  133. package/lib/azure-virtualnetwork/lib/index.d.ts +9 -0
  134. package/lib/azure-virtualnetwork/lib/index.js +22 -0
  135. package/lib/azure-virtualnetwork/lib/virtual-network-schemas.d.ts +32 -0
  136. package/lib/azure-virtualnetwork/lib/virtual-network-schemas.js +236 -0
  137. package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +213 -0
  138. package/lib/azure-virtualnetwork/lib/virtual-network.js +245 -0
  139. package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +9 -0
  140. package/lib/azure-virtualnetwork/test/virtual-network.integ.js +91 -0
  141. package/lib/azure-virtualnetwork/test/virtual-network.spec.d.ts +8 -0
  142. package/lib/azure-virtualnetwork/test/virtual-network.spec.js +398 -0
  143. package/lib/azure-vmss/index.d.ts +6 -0
  144. package/lib/azure-vmss/index.js +23 -0
  145. package/lib/azure-vmss/lib/index.d.ts +9 -0
  146. package/lib/azure-vmss/lib/index.js +39 -0
  147. package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +258 -0
  148. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +503 -0
  149. package/lib/azure-vmss/lib/vmss-schemas.d.ts +472 -0
  150. package/lib/azure-vmss/lib/vmss-schemas.js +444 -0
  151. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +15 -0
  152. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +261 -0
  153. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.d.ts +8 -0
  154. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +997 -0
  155. package/lib/core-azure/lib/azapi/azapi-resource.d.ts +95 -27
  156. package/lib/core-azure/lib/azapi/azapi-resource.js +95 -58
  157. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +33 -21
  158. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +69 -27
  159. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +134 -120
  160. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +209 -59
  161. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +141 -128
  162. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +183 -36
  163. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +55 -43
  164. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +94 -26
  165. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +129 -116
  166. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +155 -32
  167. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +187 -174
  168. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +267 -48
  169. package/lib/core-azure/lib/azapi/providers-azapi/index.d.ts +10 -10
  170. package/lib/core-azure/lib/azapi/providers-azapi/index.js +1 -1
  171. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.d.ts +0 -0
  172. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +13 -0
  173. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +174 -162
  174. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +274 -14
  175. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +239 -225
  176. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +360 -76
  177. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +163 -150
  178. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +221 -46
  179. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +162 -149
  180. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +249 -50
  181. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +4 -2
  182. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  183. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  184. package/lib/index.d.ts +37 -0
  185. package/lib/index.js +40 -2
  186. package/lib/testing/index.d.ts +92 -2
  187. package/lib/testing/index.js +258 -18
  188. package/lib/testing/lib/cleanup.d.ts +229 -0
  189. package/lib/testing/lib/cleanup.js +331 -0
  190. package/lib/testing/lib/metadata.d.ts +151 -0
  191. package/lib/testing/lib/metadata.js +180 -0
  192. package/lib/testing/lib/naming.d.ts +96 -0
  193. package/lib/testing/lib/naming.js +336 -0
  194. package/node_modules/uuid/LICENSE.md +9 -0
  195. package/node_modules/uuid/README.md +510 -0
  196. package/node_modules/uuid/dist/cjs/index.d.ts +15 -0
  197. package/node_modules/uuid/dist/cjs/index.js +31 -0
  198. package/node_modules/uuid/dist/cjs/max.d.ts +2 -0
  199. package/node_modules/uuid/dist/cjs/max.js +3 -0
  200. package/node_modules/uuid/dist/cjs/md5.d.ts +4 -0
  201. package/node_modules/uuid/dist/cjs/md5.js +13 -0
  202. package/node_modules/uuid/dist/cjs/native.d.ts +6 -0
  203. package/node_modules/uuid/dist/cjs/native.js +4 -0
  204. package/node_modules/uuid/dist/cjs/nil.d.ts +2 -0
  205. package/node_modules/uuid/dist/cjs/nil.js +3 -0
  206. package/node_modules/uuid/dist/cjs/package.json +1 -0
  207. package/node_modules/uuid/dist/cjs/parse.d.ts +2 -0
  208. package/node_modules/uuid/dist/cjs/parse.js +11 -0
  209. package/node_modules/uuid/dist/cjs/regex.d.ts +2 -0
  210. package/node_modules/uuid/dist/cjs/regex.js +3 -0
  211. package/node_modules/uuid/dist/cjs/rng.d.ts +1 -0
  212. package/node_modules/uuid/dist/cjs/rng.js +13 -0
  213. package/node_modules/uuid/dist/cjs/sha1.d.ts +4 -0
  214. package/node_modules/uuid/dist/cjs/sha1.js +13 -0
  215. package/node_modules/uuid/dist/cjs/stringify.d.ts +3 -0
  216. package/node_modules/uuid/dist/cjs/stringify.js +39 -0
  217. package/node_modules/uuid/dist/cjs/types.d.ts +21 -0
  218. package/node_modules/uuid/dist/cjs/types.js +2 -0
  219. package/node_modules/uuid/dist/cjs/uuid-bin.d.ts +1 -0
  220. package/node_modules/uuid/dist/cjs/uuid-bin.js +72 -0
  221. package/node_modules/uuid/dist/cjs/v1.d.ts +11 -0
  222. package/node_modules/uuid/dist/cjs/v1.js +87 -0
  223. package/node_modules/uuid/dist/cjs/v1ToV6.d.ts +2 -0
  224. package/node_modules/uuid/dist/cjs/v1ToV6.js +13 -0
  225. package/node_modules/uuid/dist/cjs/v3.d.ts +9 -0
  226. package/node_modules/uuid/dist/cjs/v3.js +14 -0
  227. package/node_modules/uuid/dist/cjs/v35.d.ts +7 -0
  228. package/node_modules/uuid/dist/cjs/v35.js +41 -0
  229. package/node_modules/uuid/dist/cjs/v4.d.ts +4 -0
  230. package/node_modules/uuid/dist/cjs/v4.js +29 -0
  231. package/node_modules/uuid/dist/cjs/v5.d.ts +9 -0
  232. package/node_modules/uuid/dist/cjs/v5.js +14 -0
  233. package/node_modules/uuid/dist/cjs/v6.d.ts +4 -0
  234. package/node_modules/uuid/dist/cjs/v6.js +19 -0
  235. package/node_modules/uuid/dist/cjs/v6ToV1.d.ts +2 -0
  236. package/node_modules/uuid/dist/cjs/v6ToV1.js +13 -0
  237. package/node_modules/uuid/dist/cjs/v7.d.ts +9 -0
  238. package/node_modules/uuid/dist/cjs/v7.js +69 -0
  239. package/node_modules/uuid/dist/cjs/validate.d.ts +2 -0
  240. package/node_modules/uuid/dist/cjs/validate.js +7 -0
  241. package/node_modules/uuid/dist/cjs/version.d.ts +2 -0
  242. package/node_modules/uuid/dist/cjs/version.js +10 -0
  243. package/node_modules/uuid/dist/cjs-browser/index.d.ts +15 -0
  244. package/node_modules/uuid/dist/cjs-browser/index.js +31 -0
  245. package/node_modules/uuid/dist/cjs-browser/max.d.ts +2 -0
  246. package/node_modules/uuid/dist/cjs-browser/max.js +3 -0
  247. package/node_modules/uuid/dist/cjs-browser/md5.d.ts +2 -0
  248. package/node_modules/uuid/dist/cjs-browser/md5.js +137 -0
  249. package/node_modules/uuid/dist/cjs-browser/native.d.ts +4 -0
  250. package/node_modules/uuid/dist/cjs-browser/native.js +4 -0
  251. package/node_modules/uuid/dist/cjs-browser/nil.d.ts +2 -0
  252. package/node_modules/uuid/dist/cjs-browser/nil.js +3 -0
  253. package/node_modules/uuid/dist/cjs-browser/package.json +1 -0
  254. package/node_modules/uuid/dist/cjs-browser/parse.d.ts +2 -0
  255. package/node_modules/uuid/dist/cjs-browser/parse.js +11 -0
  256. package/node_modules/uuid/dist/cjs-browser/regex.d.ts +2 -0
  257. package/node_modules/uuid/dist/cjs-browser/regex.js +3 -0
  258. package/node_modules/uuid/dist/cjs-browser/rng.d.ts +1 -0
  259. package/node_modules/uuid/dist/cjs-browser/rng.js +14 -0
  260. package/node_modules/uuid/dist/cjs-browser/sha1.d.ts +2 -0
  261. package/node_modules/uuid/dist/cjs-browser/sha1.js +72 -0
  262. package/node_modules/uuid/dist/cjs-browser/stringify.d.ts +3 -0
  263. package/node_modules/uuid/dist/cjs-browser/stringify.js +39 -0
  264. package/node_modules/uuid/dist/cjs-browser/types.d.ts +21 -0
  265. package/node_modules/uuid/dist/cjs-browser/types.js +2 -0
  266. package/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts +1 -0
  267. package/node_modules/uuid/dist/cjs-browser/uuid-bin.js +72 -0
  268. package/node_modules/uuid/dist/cjs-browser/v1.d.ts +11 -0
  269. package/node_modules/uuid/dist/cjs-browser/v1.js +87 -0
  270. package/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts +2 -0
  271. package/node_modules/uuid/dist/cjs-browser/v1ToV6.js +13 -0
  272. package/node_modules/uuid/dist/cjs-browser/v3.d.ts +9 -0
  273. package/node_modules/uuid/dist/cjs-browser/v3.js +14 -0
  274. package/node_modules/uuid/dist/cjs-browser/v35.d.ts +7 -0
  275. package/node_modules/uuid/dist/cjs-browser/v35.js +41 -0
  276. package/node_modules/uuid/dist/cjs-browser/v4.d.ts +4 -0
  277. package/node_modules/uuid/dist/cjs-browser/v4.js +29 -0
  278. package/node_modules/uuid/dist/cjs-browser/v5.d.ts +9 -0
  279. package/node_modules/uuid/dist/cjs-browser/v5.js +14 -0
  280. package/node_modules/uuid/dist/cjs-browser/v6.d.ts +4 -0
  281. package/node_modules/uuid/dist/cjs-browser/v6.js +19 -0
  282. package/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts +2 -0
  283. package/node_modules/uuid/dist/cjs-browser/v6ToV1.js +13 -0
  284. package/node_modules/uuid/dist/cjs-browser/v7.d.ts +9 -0
  285. package/node_modules/uuid/dist/cjs-browser/v7.js +69 -0
  286. package/node_modules/uuid/dist/cjs-browser/validate.d.ts +2 -0
  287. package/node_modules/uuid/dist/cjs-browser/validate.js +7 -0
  288. package/node_modules/uuid/dist/cjs-browser/version.d.ts +2 -0
  289. package/node_modules/uuid/dist/cjs-browser/version.js +10 -0
  290. package/node_modules/uuid/dist/esm/bin/uuid +2 -0
  291. package/node_modules/uuid/dist/esm/index.d.ts +15 -0
  292. package/node_modules/uuid/dist/esm/index.js +14 -0
  293. package/node_modules/uuid/dist/esm/max.d.ts +2 -0
  294. package/node_modules/uuid/dist/esm/max.js +1 -0
  295. package/node_modules/uuid/dist/esm/md5.d.ts +4 -0
  296. package/node_modules/uuid/dist/esm/md5.js +11 -0
  297. package/node_modules/uuid/dist/esm/native.d.ts +6 -0
  298. package/node_modules/uuid/dist/esm/native.js +2 -0
  299. package/node_modules/uuid/dist/esm/nil.d.ts +2 -0
  300. package/node_modules/uuid/dist/esm/nil.js +1 -0
  301. package/node_modules/uuid/dist/esm/parse.d.ts +2 -0
  302. package/node_modules/uuid/dist/esm/parse.js +9 -0
  303. package/node_modules/uuid/dist/esm/regex.d.ts +2 -0
  304. package/node_modules/uuid/dist/esm/regex.js +1 -0
  305. package/node_modules/uuid/dist/esm/rng.d.ts +1 -0
  306. package/node_modules/uuid/dist/esm/rng.js +10 -0
  307. package/node_modules/uuid/dist/esm/sha1.d.ts +4 -0
  308. package/node_modules/uuid/dist/esm/sha1.js +11 -0
  309. package/node_modules/uuid/dist/esm/stringify.d.ts +3 -0
  310. package/node_modules/uuid/dist/esm/stringify.js +35 -0
  311. package/node_modules/uuid/dist/esm/types.d.ts +21 -0
  312. package/node_modules/uuid/dist/esm/types.js +1 -0
  313. package/node_modules/uuid/dist/esm/uuid-bin.d.ts +1 -0
  314. package/node_modules/uuid/dist/esm/uuid-bin.js +70 -0
  315. package/node_modules/uuid/dist/esm/v1.d.ts +11 -0
  316. package/node_modules/uuid/dist/esm/v1.js +83 -0
  317. package/node_modules/uuid/dist/esm/v1ToV6.d.ts +2 -0
  318. package/node_modules/uuid/dist/esm/v1ToV6.js +10 -0
  319. package/node_modules/uuid/dist/esm/v3.d.ts +9 -0
  320. package/node_modules/uuid/dist/esm/v3.js +9 -0
  321. package/node_modules/uuid/dist/esm/v35.d.ts +7 -0
  322. package/node_modules/uuid/dist/esm/v35.js +36 -0
  323. package/node_modules/uuid/dist/esm/v4.d.ts +4 -0
  324. package/node_modules/uuid/dist/esm/v4.js +27 -0
  325. package/node_modules/uuid/dist/esm/v5.d.ts +9 -0
  326. package/node_modules/uuid/dist/esm/v5.js +9 -0
  327. package/node_modules/uuid/dist/esm/v6.d.ts +4 -0
  328. package/node_modules/uuid/dist/esm/v6.js +17 -0
  329. package/node_modules/uuid/dist/esm/v6ToV1.d.ts +2 -0
  330. package/node_modules/uuid/dist/esm/v6ToV1.js +10 -0
  331. package/node_modules/uuid/dist/esm/v7.d.ts +9 -0
  332. package/node_modules/uuid/dist/esm/v7.js +65 -0
  333. package/node_modules/uuid/dist/esm/validate.d.ts +2 -0
  334. package/node_modules/uuid/dist/esm/validate.js +5 -0
  335. package/node_modules/uuid/dist/esm/version.d.ts +2 -0
  336. package/node_modules/uuid/dist/esm/version.js +8 -0
  337. package/node_modules/uuid/dist/esm-browser/index.d.ts +15 -0
  338. package/node_modules/uuid/dist/esm-browser/index.js +14 -0
  339. package/node_modules/uuid/dist/esm-browser/max.d.ts +2 -0
  340. package/node_modules/uuid/dist/esm-browser/max.js +1 -0
  341. package/node_modules/uuid/dist/esm-browser/md5.d.ts +2 -0
  342. package/node_modules/uuid/dist/esm-browser/md5.js +135 -0
  343. package/node_modules/uuid/dist/esm-browser/native.d.ts +4 -0
  344. package/node_modules/uuid/dist/esm-browser/native.js +2 -0
  345. package/node_modules/uuid/dist/esm-browser/nil.d.ts +2 -0
  346. package/node_modules/uuid/dist/esm-browser/nil.js +1 -0
  347. package/node_modules/uuid/dist/esm-browser/parse.d.ts +2 -0
  348. package/node_modules/uuid/dist/esm-browser/parse.js +9 -0
  349. package/node_modules/uuid/dist/esm-browser/regex.d.ts +2 -0
  350. package/node_modules/uuid/dist/esm-browser/regex.js +1 -0
  351. package/node_modules/uuid/dist/esm-browser/rng.d.ts +1 -0
  352. package/node_modules/uuid/dist/esm-browser/rng.js +11 -0
  353. package/node_modules/uuid/dist/esm-browser/sha1.d.ts +2 -0
  354. package/node_modules/uuid/dist/esm-browser/sha1.js +70 -0
  355. package/node_modules/uuid/dist/esm-browser/stringify.d.ts +3 -0
  356. package/node_modules/uuid/dist/esm-browser/stringify.js +35 -0
  357. package/node_modules/uuid/dist/esm-browser/types.d.ts +21 -0
  358. package/node_modules/uuid/dist/esm-browser/types.js +1 -0
  359. package/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts +1 -0
  360. package/node_modules/uuid/dist/esm-browser/uuid-bin.js +70 -0
  361. package/node_modules/uuid/dist/esm-browser/v1.d.ts +11 -0
  362. package/node_modules/uuid/dist/esm-browser/v1.js +83 -0
  363. package/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts +2 -0
  364. package/node_modules/uuid/dist/esm-browser/v1ToV6.js +10 -0
  365. package/node_modules/uuid/dist/esm-browser/v3.d.ts +9 -0
  366. package/node_modules/uuid/dist/esm-browser/v3.js +9 -0
  367. package/node_modules/uuid/dist/esm-browser/v35.d.ts +7 -0
  368. package/node_modules/uuid/dist/esm-browser/v35.js +36 -0
  369. package/node_modules/uuid/dist/esm-browser/v4.d.ts +4 -0
  370. package/node_modules/uuid/dist/esm-browser/v4.js +27 -0
  371. package/node_modules/uuid/dist/esm-browser/v5.d.ts +9 -0
  372. package/node_modules/uuid/dist/esm-browser/v5.js +9 -0
  373. package/node_modules/uuid/dist/esm-browser/v6.d.ts +4 -0
  374. package/node_modules/uuid/dist/esm-browser/v6.js +17 -0
  375. package/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts +2 -0
  376. package/node_modules/uuid/dist/esm-browser/v6ToV1.js +10 -0
  377. package/node_modules/uuid/dist/esm-browser/v7.d.ts +9 -0
  378. package/node_modules/uuid/dist/esm-browser/v7.js +65 -0
  379. package/node_modules/uuid/dist/esm-browser/validate.d.ts +2 -0
  380. package/node_modules/uuid/dist/esm-browser/validate.js +5 -0
  381. package/node_modules/uuid/dist/esm-browser/version.d.ts +2 -0
  382. package/node_modules/uuid/dist/esm-browser/version.js +8 -0
  383. package/node_modules/uuid/package.json +132 -0
  384. package/package.json +17 -12
  385. package/scripts/cleanup-test-resources.ts +369 -0
@@ -0,0 +1,444 @@
1
+ "use strict";
2
+ /**
3
+ * API schemas for Azure Virtual Machine Scale Sets (VMSS) across all supported versions
4
+ *
5
+ * This file defines the complete API schemas for Microsoft.Compute/virtualMachineScaleSets
6
+ * across all supported API versions. The schemas are used by the AzapiResource
7
+ * framework for validation, transformation, and version management.
8
+ *
9
+ * API Versions verified from Azure REST API Specifications:
10
+ * - 2025-01-02: https://github.com/Azure/azure-rest-api-specs/.../2025-01-02/virtualMachineScaleSets.json
11
+ * - 2025-02-01: https://github.com/Azure/azure-rest-api-specs/.../2025-02-01/virtualMachineScaleSets.json
12
+ * - 2025-04-01: https://github.com/Azure/azure-rest-api-specs/.../2025-04-01/virtualMachineScaleSets.json
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.VMSS_TYPE = exports.ALL_VMSS_VERSIONS = exports.VMSS_VERSION_2025_04_01 = exports.VMSS_VERSION_2025_02_01 = exports.VMSS_VERSION_2025_01_02 = exports.VMSS_SCHEMA_2025_04_01 = exports.VMSS_SCHEMA_2025_02_01 = exports.VMSS_SCHEMA_2025_01_02 = exports.COMMON_VMSS_PROPERTIES = void 0;
16
+ const version_interfaces_1 = require("../../core-azure/lib/version-manager/interfaces/version-interfaces");
17
+ // =============================================================================
18
+ // COMMON PROPERTY DEFINITIONS
19
+ // =============================================================================
20
+ /**
21
+ * Common property definitions shared across all VMSS versions
22
+ */
23
+ exports.COMMON_VMSS_PROPERTIES = {
24
+ location: {
25
+ dataType: version_interfaces_1.PropertyType.STRING,
26
+ required: true,
27
+ description: "The Azure region where the Virtual Machine Scale Set will be created",
28
+ validation: [
29
+ {
30
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
31
+ message: "Location is required for Virtual Machine Scale Sets",
32
+ },
33
+ {
34
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
35
+ value: "^[a-z0-9]+$",
36
+ message: "Location must contain only lowercase letters and numbers",
37
+ },
38
+ ],
39
+ },
40
+ tags: {
41
+ dataType: version_interfaces_1.PropertyType.OBJECT,
42
+ required: false,
43
+ defaultValue: {},
44
+ description: "A dictionary of tags to apply to the Virtual Machine Scale Set",
45
+ validation: [
46
+ {
47
+ ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
48
+ value: version_interfaces_1.PropertyType.OBJECT,
49
+ message: "Tags must be an object with string key-value pairs",
50
+ },
51
+ ],
52
+ },
53
+ name: {
54
+ dataType: version_interfaces_1.PropertyType.STRING,
55
+ required: true,
56
+ description: "The name of the Virtual Machine Scale Set",
57
+ validation: [
58
+ {
59
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
60
+ message: "Virtual Machine Scale Set name is required",
61
+ },
62
+ {
63
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
64
+ value: "^[a-zA-Z0-9]([a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?$",
65
+ message: "VMSS name must be 1-64 characters, start and end with alphanumeric, and can contain hyphens",
66
+ },
67
+ ],
68
+ },
69
+ sku: {
70
+ dataType: version_interfaces_1.PropertyType.OBJECT,
71
+ required: true,
72
+ description: "The SKU configuration for the Virtual Machine Scale Set",
73
+ validation: [
74
+ {
75
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
76
+ message: "SKU is required for Virtual Machine Scale Sets",
77
+ },
78
+ ],
79
+ },
80
+ identity: {
81
+ dataType: version_interfaces_1.PropertyType.OBJECT,
82
+ required: false,
83
+ description: "The identity configuration for the Virtual Machine Scale Set",
84
+ },
85
+ zones: {
86
+ dataType: version_interfaces_1.PropertyType.ARRAY,
87
+ required: false,
88
+ description: "Availability zones for the Virtual Machine Scale Set",
89
+ },
90
+ plan: {
91
+ dataType: version_interfaces_1.PropertyType.OBJECT,
92
+ required: false,
93
+ description: "Plan information for marketplace images",
94
+ },
95
+ upgradePolicy: {
96
+ dataType: version_interfaces_1.PropertyType.OBJECT,
97
+ required: false,
98
+ description: "The upgrade policy for the Virtual Machine Scale Set",
99
+ },
100
+ virtualMachineProfile: {
101
+ dataType: version_interfaces_1.PropertyType.OBJECT,
102
+ required: false,
103
+ description: "The virtual machine profile for the scale set",
104
+ },
105
+ orchestrationMode: {
106
+ dataType: version_interfaces_1.PropertyType.STRING,
107
+ required: false,
108
+ description: "The orchestration mode for the scale set (Uniform or Flexible)",
109
+ validation: [
110
+ {
111
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
112
+ value: "^(Uniform|Flexible)$",
113
+ message: "Orchestration mode must be 'Uniform' or 'Flexible'",
114
+ },
115
+ ],
116
+ },
117
+ overprovision: {
118
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
119
+ required: false,
120
+ description: "Whether to overprovision VMs in the scale set",
121
+ },
122
+ doNotRunExtensionsOnOverprovisionedVMs: {
123
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
124
+ required: false,
125
+ description: "Whether to skip extensions on overprovisioned VMs",
126
+ },
127
+ singlePlacementGroup: {
128
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
129
+ required: false,
130
+ description: "Whether to use a single placement group",
131
+ },
132
+ zoneBalance: {
133
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
134
+ required: false,
135
+ description: "Whether to balance VMs across zones",
136
+ },
137
+ platformFaultDomainCount: {
138
+ dataType: version_interfaces_1.PropertyType.NUMBER,
139
+ required: false,
140
+ description: "The number of fault domains to use",
141
+ },
142
+ automaticRepairsPolicy: {
143
+ dataType: version_interfaces_1.PropertyType.OBJECT,
144
+ required: false,
145
+ description: "The automatic repairs policy for the scale set",
146
+ },
147
+ scaleInPolicy: {
148
+ dataType: version_interfaces_1.PropertyType.OBJECT,
149
+ required: false,
150
+ description: "The scale-in policy for the scale set",
151
+ },
152
+ proximityPlacementGroup: {
153
+ dataType: version_interfaces_1.PropertyType.OBJECT,
154
+ required: false,
155
+ description: "Reference to a proximity placement group",
156
+ },
157
+ hostGroup: {
158
+ dataType: version_interfaces_1.PropertyType.OBJECT,
159
+ required: false,
160
+ description: "Reference to a dedicated host group",
161
+ },
162
+ additionalCapabilities: {
163
+ dataType: version_interfaces_1.PropertyType.OBJECT,
164
+ required: false,
165
+ description: "Additional capabilities like Ultra SSD",
166
+ },
167
+ ignoreChanges: {
168
+ dataType: version_interfaces_1.PropertyType.ARRAY,
169
+ required: false,
170
+ description: "Array of property names to ignore during updates",
171
+ validation: [
172
+ {
173
+ ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
174
+ value: version_interfaces_1.PropertyType.ARRAY,
175
+ message: "IgnoreChanges must be an array of strings",
176
+ },
177
+ ],
178
+ },
179
+ };
180
+ // =============================================================================
181
+ // VERSION-SPECIFIC SCHEMAS
182
+ // =============================================================================
183
+ /**
184
+ * API Schema for VMSS version 2025-01-02
185
+ */
186
+ exports.VMSS_SCHEMA_2025_01_02 = {
187
+ resourceType: "Microsoft.Compute/virtualMachineScaleSets",
188
+ version: "2025-01-02",
189
+ properties: {
190
+ ...exports.COMMON_VMSS_PROPERTIES,
191
+ },
192
+ required: ["location", "name", "sku"],
193
+ optional: [
194
+ "tags",
195
+ "identity",
196
+ "zones",
197
+ "plan",
198
+ "upgradePolicy",
199
+ "virtualMachineProfile",
200
+ "orchestrationMode",
201
+ "overprovision",
202
+ "doNotRunExtensionsOnOverprovisionedVMs",
203
+ "singlePlacementGroup",
204
+ "zoneBalance",
205
+ "platformFaultDomainCount",
206
+ "automaticRepairsPolicy",
207
+ "scaleInPolicy",
208
+ "proximityPlacementGroup",
209
+ "hostGroup",
210
+ "additionalCapabilities",
211
+ "ignoreChanges",
212
+ ],
213
+ deprecated: [],
214
+ transformationRules: {},
215
+ validationRules: [
216
+ {
217
+ property: "location",
218
+ rules: [
219
+ {
220
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
221
+ message: "Location is required for Virtual Machine Scale Sets",
222
+ },
223
+ ],
224
+ },
225
+ {
226
+ property: "name",
227
+ rules: [
228
+ {
229
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
230
+ message: "Name is required for Virtual Machine Scale Sets",
231
+ },
232
+ ],
233
+ },
234
+ {
235
+ property: "sku",
236
+ rules: [
237
+ {
238
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
239
+ message: "SKU is required for Virtual Machine Scale Sets",
240
+ },
241
+ ],
242
+ },
243
+ ],
244
+ };
245
+ /**
246
+ * API Schema for VMSS version 2025-02-01
247
+ */
248
+ exports.VMSS_SCHEMA_2025_02_01 = {
249
+ resourceType: "Microsoft.Compute/virtualMachineScaleSets",
250
+ version: "2025-02-01",
251
+ properties: {
252
+ ...exports.COMMON_VMSS_PROPERTIES,
253
+ },
254
+ required: ["location", "name", "sku"],
255
+ optional: [
256
+ "tags",
257
+ "identity",
258
+ "zones",
259
+ "plan",
260
+ "upgradePolicy",
261
+ "virtualMachineProfile",
262
+ "orchestrationMode",
263
+ "overprovision",
264
+ "doNotRunExtensionsOnOverprovisionedVMs",
265
+ "singlePlacementGroup",
266
+ "zoneBalance",
267
+ "platformFaultDomainCount",
268
+ "automaticRepairsPolicy",
269
+ "scaleInPolicy",
270
+ "proximityPlacementGroup",
271
+ "hostGroup",
272
+ "additionalCapabilities",
273
+ "ignoreChanges",
274
+ ],
275
+ deprecated: [],
276
+ transformationRules: {},
277
+ validationRules: [
278
+ {
279
+ property: "location",
280
+ rules: [
281
+ {
282
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
283
+ message: "Location is required for Virtual Machine Scale Sets",
284
+ },
285
+ ],
286
+ },
287
+ {
288
+ property: "name",
289
+ rules: [
290
+ {
291
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
292
+ message: "Name is required for Virtual Machine Scale Sets",
293
+ },
294
+ ],
295
+ },
296
+ {
297
+ property: "sku",
298
+ rules: [
299
+ {
300
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
301
+ message: "SKU is required for Virtual Machine Scale Sets",
302
+ },
303
+ ],
304
+ },
305
+ ],
306
+ };
307
+ /**
308
+ * API Schema for VMSS version 2025-04-01
309
+ */
310
+ exports.VMSS_SCHEMA_2025_04_01 = {
311
+ resourceType: "Microsoft.Compute/virtualMachineScaleSets",
312
+ version: "2025-04-01",
313
+ properties: {
314
+ ...exports.COMMON_VMSS_PROPERTIES,
315
+ },
316
+ required: ["location", "name", "sku"],
317
+ optional: [
318
+ "tags",
319
+ "identity",
320
+ "zones",
321
+ "plan",
322
+ "upgradePolicy",
323
+ "virtualMachineProfile",
324
+ "orchestrationMode",
325
+ "overprovision",
326
+ "doNotRunExtensionsOnOverprovisionedVMs",
327
+ "singlePlacementGroup",
328
+ "zoneBalance",
329
+ "platformFaultDomainCount",
330
+ "automaticRepairsPolicy",
331
+ "scaleInPolicy",
332
+ "proximityPlacementGroup",
333
+ "hostGroup",
334
+ "additionalCapabilities",
335
+ "ignoreChanges",
336
+ ],
337
+ deprecated: [],
338
+ transformationRules: {},
339
+ validationRules: [
340
+ {
341
+ property: "location",
342
+ rules: [
343
+ {
344
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
345
+ message: "Location is required for Virtual Machine Scale Sets",
346
+ },
347
+ ],
348
+ },
349
+ {
350
+ property: "name",
351
+ rules: [
352
+ {
353
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
354
+ message: "Name is required for Virtual Machine Scale Sets",
355
+ },
356
+ ],
357
+ },
358
+ {
359
+ property: "sku",
360
+ rules: [
361
+ {
362
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
363
+ message: "SKU is required for Virtual Machine Scale Sets",
364
+ },
365
+ ],
366
+ },
367
+ ],
368
+ };
369
+ // =============================================================================
370
+ // VERSION CONFIGURATIONS
371
+ // =============================================================================
372
+ /**
373
+ * Version configuration for VMSS 2025-01-02
374
+ */
375
+ exports.VMSS_VERSION_2025_01_02 = {
376
+ version: "2025-01-02",
377
+ schema: exports.VMSS_SCHEMA_2025_01_02,
378
+ supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
379
+ releaseDate: "2025-01-02",
380
+ deprecationDate: undefined,
381
+ sunsetDate: undefined,
382
+ breakingChanges: [],
383
+ migrationGuide: "/docs/vmss/migration-2025-01-02",
384
+ changeLog: [
385
+ {
386
+ changeType: "added",
387
+ description: "Initial release with comprehensive VMSS features",
388
+ breaking: false,
389
+ },
390
+ ],
391
+ };
392
+ /**
393
+ * Version configuration for VMSS 2025-02-01
394
+ */
395
+ exports.VMSS_VERSION_2025_02_01 = {
396
+ version: "2025-02-01",
397
+ schema: exports.VMSS_SCHEMA_2025_02_01,
398
+ supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
399
+ releaseDate: "2025-02-01",
400
+ deprecationDate: undefined,
401
+ sunsetDate: undefined,
402
+ breakingChanges: [],
403
+ migrationGuide: "/docs/vmss/migration-2025-02-01",
404
+ changeLog: [
405
+ {
406
+ changeType: "updated",
407
+ description: "Enhanced orchestration and scaling features",
408
+ breaking: false,
409
+ },
410
+ ],
411
+ };
412
+ /**
413
+ * Version configuration for VMSS 2025-04-01
414
+ */
415
+ exports.VMSS_VERSION_2025_04_01 = {
416
+ version: "2025-04-01",
417
+ schema: exports.VMSS_SCHEMA_2025_04_01,
418
+ supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
419
+ releaseDate: "2025-04-01",
420
+ deprecationDate: undefined,
421
+ sunsetDate: undefined,
422
+ breakingChanges: [],
423
+ migrationGuide: "/docs/vmss/migration-2025-04-01",
424
+ changeLog: [
425
+ {
426
+ changeType: "updated",
427
+ description: "Latest API version with newest features and improvements",
428
+ breaking: false,
429
+ },
430
+ ],
431
+ };
432
+ /**
433
+ * All supported VMSS versions for registration
434
+ */
435
+ exports.ALL_VMSS_VERSIONS = [
436
+ exports.VMSS_VERSION_2025_01_02,
437
+ exports.VMSS_VERSION_2025_02_01,
438
+ exports.VMSS_VERSION_2025_04_01,
439
+ ];
440
+ /**
441
+ * Resource type constant
442
+ */
443
+ exports.VMSS_TYPE = "Microsoft.Compute/virtualMachineScaleSets";
444
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm1zcy1zY2hlbWFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXZtc3MvbGliL3Ztc3Mtc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQW1CSCwyR0FPNEU7QUFvZTVFLGdGQUFnRjtBQUNoRiw4QkFBOEI7QUFDOUIsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBMEM7SUFDM0UsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsSUFBSTtRQUNkLFdBQVcsRUFDVCxzRUFBc0U7UUFDeEUsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFFBQVE7Z0JBQ3JDLE9BQU8sRUFBRSxxREFBcUQ7YUFDL0Q7WUFDRDtnQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsYUFBYTtnQkFDMUMsS0FBSyxFQUFFLGFBQWE7Z0JBQ3BCLE9BQU8sRUFBRSwwREFBMEQ7YUFDcEU7U0FDRjtLQUNGO0lBQ0QsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsS0FBSztRQUNmLFlBQVksRUFBRSxFQUFFO1FBQ2hCLFdBQVcsRUFDVCxnRUFBZ0U7UUFDbEUsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFVBQVU7Z0JBQ3ZDLEtBQUssRUFBRSxpQ0FBWSxDQUFDLE1BQU07Z0JBQzFCLE9BQU8sRUFBRSxvREFBb0Q7YUFDOUQ7U0FDRjtLQUNGO0lBQ0QsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsSUFBSTtRQUNkLFdBQVcsRUFBRSwyQ0FBMkM7UUFDeEQsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFFBQVE7Z0JBQ3JDLE9BQU8sRUFBRSw0Q0FBNEM7YUFDdEQ7WUFDRDtnQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsYUFBYTtnQkFDMUMsS0FBSyxFQUFFLCtDQUErQztnQkFDdEQsT0FBTyxFQUNMLDZGQUE2RjthQUNoRztTQUNGO0tBQ0Y7SUFDRCxHQUFHLEVBQUU7UUFDSCxRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsV0FBVyxFQUFFLHlEQUF5RDtRQUN0RSxVQUFVLEVBQUU7WUFDVjtnQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsUUFBUTtnQkFDckMsT0FBTyxFQUFFLGdEQUFnRDthQUMxRDtTQUNGO0tBQ0Y7SUFDRCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsV0FBVyxFQUFFLDhEQUE4RDtLQUM1RTtJQUNELEtBQUssRUFBRTtRQUNMLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLEtBQUs7UUFDNUIsUUFBUSxFQUFFLEtBQUs7UUFDZixXQUFXLEVBQUUsc0RBQXNEO0tBQ3BFO0lBQ0QsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsS0FBSztRQUNmLFdBQVcsRUFBRSx5Q0FBeUM7S0FDdkQ7SUFDRCxhQUFhLEVBQUU7UUFDYixRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsV0FBVyxFQUFFLHNEQUFzRDtLQUNwRTtJQUNELHFCQUFxQixFQUFFO1FBQ3JCLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLEtBQUs7UUFDZixXQUFXLEVBQUUsK0NBQStDO0tBQzdEO0lBQ0QsaUJBQWlCLEVBQUU7UUFDakIsUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsS0FBSztRQUNmLFdBQVcsRUFDVCxnRUFBZ0U7UUFDbEUsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLGFBQWE7Z0JBQzFDLEtBQUssRUFBRSxzQkFBc0I7Z0JBQzdCLE9BQU8sRUFBRSxvREFBb0Q7YUFDOUQ7U0FDRjtLQUNGO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsUUFBUSxFQUFFLGlDQUFZLENBQUMsT0FBTztRQUM5QixRQUFRLEVBQUUsS0FBSztRQUNmLFdBQVcsRUFBRSwrQ0FBK0M7S0FDN0Q7SUFDRCxzQ0FBc0MsRUFBRTtRQUN0QyxRQUFRLEVBQUUsaUNBQVksQ0FBQyxPQUFPO1FBQzlCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsV0FBVyxFQUFFLG1EQUFtRDtLQUNqRTtJQUNELG9CQUFvQixFQUFFO1FBQ3BCLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE9BQU87UUFDOUIsUUFBUSxFQUFFLEtBQUs7UUFDZixXQUFXLEVBQUUseUNBQXlDO0tBQ3ZEO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsUUFBUSxFQUFFLGlDQUFZLENBQUMsT0FBTztRQUM5QixRQUFRLEVBQUUsS0FBSztRQUNmLFdBQVcsRUFBRSxxQ0FBcUM7S0FDbkQ7SUFDRCx3QkFBd0IsRUFBRTtRQUN4QixRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsV0FBVyxFQUFFLG9DQUFvQztLQUNsRDtJQUNELHNCQUFzQixFQUFFO1FBQ3RCLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLEtBQUs7UUFDZixXQUFXLEVBQUUsZ0RBQWdEO0tBQzlEO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsS0FBSztRQUNmLFdBQVcsRUFBRSx1Q0FBdUM7S0FDckQ7SUFDRCx1QkFBdUIsRUFBRTtRQUN2QixRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsV0FBVyxFQUFFLDBDQUEwQztLQUN4RDtJQUNELFNBQVMsRUFBRTtRQUNULFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLEtBQUs7UUFDZixXQUFXLEVBQUUscUNBQXFDO0tBQ25EO0lBQ0Qsc0JBQXNCLEVBQUU7UUFDdEIsUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsS0FBSztRQUNmLFdBQVcsRUFBRSx3Q0FBd0M7S0FDdEQ7SUFDRCxhQUFhLEVBQUU7UUFDYixRQUFRLEVBQUUsaUNBQVksQ0FBQyxLQUFLO1FBQzVCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsV0FBVyxFQUFFLGtEQUFrRDtRQUMvRCxVQUFVLEVBQUU7WUFDVjtnQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsVUFBVTtnQkFDdkMsS0FBSyxFQUFFLGlDQUFZLENBQUMsS0FBSztnQkFDekIsT0FBTyxFQUFFLDJDQUEyQzthQUNyRDtTQUNGO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsZ0ZBQWdGO0FBQ2hGLDJCQUEyQjtBQUMzQixnRkFBZ0Y7QUFFaEY7O0dBRUc7QUFDVSxRQUFBLHNCQUFzQixHQUFjO0lBQy9DLFlBQVksRUFBRSwyQ0FBMkM7SUFDekQsT0FBTyxFQUFFLFlBQVk7SUFDckIsVUFBVSxFQUFFO1FBQ1YsR0FBRyw4QkFBc0I7S0FDMUI7SUFDRCxRQUFRLEVBQUUsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQztJQUNyQyxRQUFRLEVBQUU7UUFDUixNQUFNO1FBQ04sVUFBVTtRQUNWLE9BQU87UUFDUCxNQUFNO1FBQ04sZUFBZTtRQUNmLHVCQUF1QjtRQUN2QixtQkFBbUI7UUFDbkIsZUFBZTtRQUNmLHdDQUF3QztRQUN4QyxzQkFBc0I7UUFDdEIsYUFBYTtRQUNiLDBCQUEwQjtRQUMxQix3QkFBd0I7UUFDeEIsZUFBZTtRQUNmLHlCQUF5QjtRQUN6QixXQUFXO1FBQ1gsd0JBQXdCO1FBQ3hCLGVBQWU7S0FDaEI7SUFDRCxVQUFVLEVBQUUsRUFBRTtJQUNkLG1CQUFtQixFQUFFLEVBQUU7SUFDdkIsZUFBZSxFQUFFO1FBQ2Y7WUFDRSxRQUFRLEVBQUUsVUFBVTtZQUNwQixLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFFBQVE7b0JBQ3JDLE9BQU8sRUFBRSxxREFBcUQ7aUJBQy9EO2FBQ0Y7U0FDRjtRQUNEO1lBQ0UsUUFBUSxFQUFFLE1BQU07WUFDaEIsS0FBSyxFQUFFO2dCQUNMO29CQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxRQUFRO29CQUNyQyxPQUFPLEVBQUUsaURBQWlEO2lCQUMzRDthQUNGO1NBQ0Y7UUFDRDtZQUNFLFFBQVEsRUFBRSxLQUFLO1lBQ2YsS0FBSyxFQUFFO2dCQUNMO29CQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxRQUFRO29CQUNyQyxPQUFPLEVBQUUsZ0RBQWdEO2lCQUMxRDthQUNGO1NBQ0Y7S0FDRjtDQUNGLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEsc0JBQXNCLEdBQWM7SUFDL0MsWUFBWSxFQUFFLDJDQUEyQztJQUN6RCxPQUFPLEVBQUUsWUFBWTtJQUNyQixVQUFVLEVBQUU7UUFDVixHQUFHLDhCQUFzQjtLQUMxQjtJQUNELFFBQVEsRUFBRSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO0lBQ3JDLFFBQVEsRUFBRTtRQUNSLE1BQU07UUFDTixVQUFVO1FBQ1YsT0FBTztRQUNQLE1BQU07UUFDTixlQUFlO1FBQ2YsdUJBQXVCO1FBQ3ZCLG1CQUFtQjtRQUNuQixlQUFlO1FBQ2Ysd0NBQXdDO1FBQ3hDLHNCQUFzQjtRQUN0QixhQUFhO1FBQ2IsMEJBQTBCO1FBQzFCLHdCQUF3QjtRQUN4QixlQUFlO1FBQ2YseUJBQXlCO1FBQ3pCLFdBQVc7UUFDWCx3QkFBd0I7UUFDeEIsZUFBZTtLQUNoQjtJQUNELFVBQVUsRUFBRSxFQUFFO0lBQ2QsbUJBQW1CLEVBQUUsRUFBRTtJQUN2QixlQUFlLEVBQUU7UUFDZjtZQUNFLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLEtBQUssRUFBRTtnQkFDTDtvQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsUUFBUTtvQkFDckMsT0FBTyxFQUFFLHFEQUFxRDtpQkFDL0Q7YUFDRjtTQUNGO1FBQ0Q7WUFDRSxRQUFRLEVBQUUsTUFBTTtZQUNoQixLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFFBQVE7b0JBQ3JDLE9BQU8sRUFBRSxpREFBaUQ7aUJBQzNEO2FBQ0Y7U0FDRjtRQUNEO1lBQ0UsUUFBUSxFQUFFLEtBQUs7WUFDZixLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFFBQVE7b0JBQ3JDLE9BQU8sRUFBRSxnREFBZ0Q7aUJBQzFEO2FBQ0Y7U0FDRjtLQUNGO0NBQ0YsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBYztJQUMvQyxZQUFZLEVBQUUsMkNBQTJDO0lBQ3pELE9BQU8sRUFBRSxZQUFZO0lBQ3JCLFVBQVUsRUFBRTtRQUNWLEdBQUcsOEJBQXNCO0tBQzFCO0lBQ0QsUUFBUSxFQUFFLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUM7SUFDckMsUUFBUSxFQUFFO1FBQ1IsTUFBTTtRQUNOLFVBQVU7UUFDVixPQUFPO1FBQ1AsTUFBTTtRQUNOLGVBQWU7UUFDZix1QkFBdUI7UUFDdkIsbUJBQW1CO1FBQ25CLGVBQWU7UUFDZix3Q0FBd0M7UUFDeEMsc0JBQXNCO1FBQ3RCLGFBQWE7UUFDYiwwQkFBMEI7UUFDMUIsd0JBQXdCO1FBQ3hCLGVBQWU7UUFDZix5QkFBeUI7UUFDekIsV0FBVztRQUNYLHdCQUF3QjtRQUN4QixlQUFlO0tBQ2hCO0lBQ0QsVUFBVSxFQUFFLEVBQUU7SUFDZCxtQkFBbUIsRUFBRSxFQUFFO0lBQ3ZCLGVBQWUsRUFBRTtRQUNmO1lBQ0UsUUFBUSxFQUFFLFVBQVU7WUFDcEIsS0FBSyxFQUFFO2dCQUNMO29CQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxRQUFRO29CQUNyQyxPQUFPLEVBQUUscURBQXFEO2lCQUMvRDthQUNGO1NBQ0Y7UUFDRDtZQUNFLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLEtBQUssRUFBRTtnQkFDTDtvQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsUUFBUTtvQkFDckMsT0FBTyxFQUFFLGlEQUFpRDtpQkFDM0Q7YUFDRjtTQUNGO1FBQ0Q7WUFDRSxRQUFRLEVBQUUsS0FBSztZQUNmLEtBQUssRUFBRTtnQkFDTDtvQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsUUFBUTtvQkFDckMsT0FBTyxFQUFFLGdEQUFnRDtpQkFDMUQ7YUFDRjtTQUNGO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsZ0ZBQWdGO0FBQ2hGLHlCQUF5QjtBQUN6QixnRkFBZ0Y7QUFFaEY7O0dBRUc7QUFDVSxRQUFBLHVCQUF1QixHQUFrQjtJQUNwRCxPQUFPLEVBQUUsWUFBWTtJQUNyQixNQUFNLEVBQUUsOEJBQXNCO0lBQzlCLFlBQVksRUFBRSx3Q0FBbUIsQ0FBQyxNQUFNO0lBQ3hDLFdBQVcsRUFBRSxZQUFZO0lBQ3pCLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLGVBQWUsRUFBRSxFQUFFO0lBQ25CLGNBQWMsRUFBRSxpQ0FBaUM7SUFDakQsU0FBUyxFQUFFO1FBQ1Q7WUFDRSxVQUFVLEVBQUUsT0FBTztZQUNuQixXQUFXLEVBQUUsa0RBQWtEO1lBQy9ELFFBQVEsRUFBRSxLQUFLO1NBQ2hCO0tBQ0Y7Q0FDRixDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLHVCQUF1QixHQUFrQjtJQUNwRCxPQUFPLEVBQUUsWUFBWTtJQUNyQixNQUFNLEVBQUUsOEJBQXNCO0lBQzlCLFlBQVksRUFBRSx3Q0FBbUIsQ0FBQyxNQUFNO0lBQ3hDLFdBQVcsRUFBRSxZQUFZO0lBQ3pCLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLGVBQWUsRUFBRSxFQUFFO0lBQ25CLGNBQWMsRUFBRSxpQ0FBaUM7SUFDakQsU0FBUyxFQUFFO1FBQ1Q7WUFDRSxVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsNkNBQTZDO1lBQzFELFFBQVEsRUFBRSxLQUFLO1NBQ2hCO0tBQ0Y7Q0FDRixDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLHVCQUF1QixHQUFrQjtJQUNwRCxPQUFPLEVBQUUsWUFBWTtJQUNyQixNQUFNLEVBQUUsOEJBQXNCO0lBQzlCLFlBQVksRUFBRSx3Q0FBbUIsQ0FBQyxNQUFNO0lBQ3hDLFdBQVcsRUFBRSxZQUFZO0lBQ3pCLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLGVBQWUsRUFBRSxFQUFFO0lBQ25CLGNBQWMsRUFBRSxpQ0FBaUM7SUFDakQsU0FBUyxFQUFFO1FBQ1Q7WUFDRSxVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsMERBQTBEO1lBQ3ZFLFFBQVEsRUFBRSxLQUFLO1NBQ2hCO0tBQ0Y7Q0FDRixDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLGlCQUFpQixHQUFvQjtJQUNoRCwrQkFBdUI7SUFDdkIsK0JBQXVCO0lBQ3ZCLCtCQUF1QjtDQUN4QixDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLFNBQVMsR0FBRywyQ0FBMkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQVBJIHNjaGVtYXMgZm9yIEF6dXJlIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRzIChWTVNTKSBhY3Jvc3MgYWxsIHN1cHBvcnRlZCB2ZXJzaW9uc1xuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBjb21wbGV0ZSBBUEkgc2NoZW1hcyBmb3IgTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVTY2FsZVNldHNcbiAqIGFjcm9zcyBhbGwgc3VwcG9ydGVkIEFQSSB2ZXJzaW9ucy4gVGhlIHNjaGVtYXMgYXJlIHVzZWQgYnkgdGhlIEF6YXBpUmVzb3VyY2VcbiAqIGZyYW1ld29yayBmb3IgdmFsaWRhdGlvbiwgdHJhbnNmb3JtYXRpb24sIGFuZCB2ZXJzaW9uIG1hbmFnZW1lbnQuXG4gKlxuICogQVBJIFZlcnNpb25zIHZlcmlmaWVkIGZyb20gQXp1cmUgUkVTVCBBUEkgU3BlY2lmaWNhdGlvbnM6XG4gKiAtIDIwMjUtMDEtMDI6IGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9henVyZS1yZXN0LWFwaS1zcGVjcy8uLi4vMjAyNS0wMS0wMi92aXJ0dWFsTWFjaGluZVNjYWxlU2V0cy5qc29uXG4gKiAtIDIwMjUtMDItMDE6IGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9henVyZS1yZXN0LWFwaS1zcGVjcy8uLi4vMjAyNS0wMi0wMS92aXJ0dWFsTWFjaGluZVNjYWxlU2V0cy5qc29uXG4gKiAtIDIwMjUtMDQtMDE6IGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9henVyZS1yZXN0LWFwaS1zcGVjcy8uLi4vMjAyNS0wNC0wMS92aXJ0dWFsTWFjaGluZVNjYWxlU2V0cy5qc29uXG4gKi9cblxuaW1wb3J0IHsgTmV0d29ya0ludGVyZmFjZURuc1NldHRpbmdzIH0gZnJvbSBcIi4uLy4uL2F6dXJlLW5ldHdvcmtpbnRlcmZhY2UvbGliL25ldHdvcmstaW50ZXJmYWNlXCI7XG5pbXBvcnQge1xuICBWaXJ0dWFsTWFjaGluZUhhcmR3YXJlUHJvZmlsZSxcbiAgVmlydHVhbE1hY2hpbmVTdG9yYWdlUHJvZmlsZSxcbiAgVmlydHVhbE1hY2hpbmVJZGVudGl0eSxcbiAgVmlydHVhbE1hY2hpbmVQbGFuLFxuICBWaXJ0dWFsTWFjaGluZURpYWdub3N0aWNzUHJvZmlsZSxcbiAgVmlydHVhbE1hY2hpbmVTZWN1cml0eVByb2ZpbGUsXG4gIFZpcnR1YWxNYWNoaW5lQmlsbGluZ1Byb2ZpbGUsXG4gIFZpcnR1YWxNYWNoaW5lSW1hZ2VSZWZlcmVuY2UsXG4gIFZpcnR1YWxNYWNoaW5lT1NEaXNrLFxuICBWaXJ0dWFsTWFjaGluZURhdGFEaXNrLFxuICBWaXJ0dWFsTWFjaGluZUxpbnV4Q29uZmlndXJhdGlvbixcbiAgVmlydHVhbE1hY2hpbmVXaW5kb3dzQ29uZmlndXJhdGlvbixcbiAgVmlydHVhbE1hY2hpbmVCb290RGlhZ25vc3RpY3MsXG4gIFZpcnR1YWxNYWNoaW5lVWVmaVNldHRpbmdzLFxufSBmcm9tIFwiLi4vLi4vYXp1cmUtdmlydHVhbG1hY2hpbmUvbGliL3ZpcnR1YWwtbWFjaGluZS1zY2hlbWFzXCI7XG5pbXBvcnQge1xuICBBcGlTY2hlbWEsXG4gIFByb3BlcnR5RGVmaW5pdGlvbixcbiAgUHJvcGVydHlUeXBlLFxuICBWYWxpZGF0aW9uUnVsZVR5cGUsXG4gIFZlcnNpb25Db25maWcsXG4gIFZlcnNpb25TdXBwb3J0TGV2ZWwsXG59IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLy8gSW1wb3J0IGFuZCByZXVzZSBWTSBpbnRlcmZhY2VzIGZvciBjb2RlIHJldXNlXG5cbi8vIFJlLWV4cG9ydCBWTSBpbnRlcmZhY2VzIGZvciBleHRlcm5hbCB1c2VcbmV4cG9ydCB0eXBlIHtcbiAgVmlydHVhbE1hY2hpbmVIYXJkd2FyZVByb2ZpbGUsXG4gIFZpcnR1YWxNYWNoaW5lU3RvcmFnZVByb2ZpbGUsXG4gIFZpcnR1YWxNYWNoaW5lSWRlbnRpdHksXG4gIFZpcnR1YWxNYWNoaW5lUGxhbixcbiAgVmlydHVhbE1hY2hpbmVEaWFnbm9zdGljc1Byb2ZpbGUsXG4gIFZpcnR1YWxNYWNoaW5lU2VjdXJpdHlQcm9maWxlLFxuICBWaXJ0dWFsTWFjaGluZUJpbGxpbmdQcm9maWxlLFxuICBWaXJ0dWFsTWFjaGluZUltYWdlUmVmZXJlbmNlLFxuICBWaXJ0dWFsTWFjaGluZU9TRGlzayxcbiAgVmlydHVhbE1hY2hpbmVEYXRhRGlzayxcbiAgVmlydHVhbE1hY2hpbmVMaW51eENvbmZpZ3VyYXRpb24sXG4gIFZpcnR1YWxNYWNoaW5lV2luZG93c0NvbmZpZ3VyYXRpb24sXG4gIFZpcnR1YWxNYWNoaW5lQm9vdERpYWdub3N0aWNzLFxuICBWaXJ0dWFsTWFjaGluZVVlZmlTZXR0aW5ncyxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUWVBFU0NSSVBUIElOVEVSRkFDRVMgRk9SIFZNU1MtU1BFQ0lGSUMgT0JKRUNUU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBTS1UgZm9yIHRoZSBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlydHVhbE1hY2hpbmVTY2FsZVNldFNrdSB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdGllcj86IHN0cmluZztcbiAgcmVhZG9ubHkgY2FwYWNpdHk/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVXBncmFkZSBwb2xpY3kgbW9kZSB0eXBlXG4gKi9cbmV4cG9ydCB0eXBlIFVwZ3JhZGVQb2xpY3lNb2RlID0gXCJBdXRvbWF0aWNcIiB8IFwiTWFudWFsXCIgfCBcIlJvbGxpbmdcIjtcblxuLyoqXG4gKiBSb2xsaW5nIHVwZ3JhZGUgcG9saWN5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm9sbGluZ1VwZ3JhZGVQb2xpY3kge1xuICByZWFkb25seSBtYXhCYXRjaEluc3RhbmNlUGVyY2VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgbWF4VW5oZWFsdGh5SW5zdGFuY2VQZXJjZW50PzogbnVtYmVyO1xuICByZWFkb25seSBtYXhVbmhlYWx0aHlVcGdyYWRlZEluc3RhbmNlUGVyY2VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgcGF1c2VUaW1lQmV0d2VlbkJhdGNoZXM/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVuYWJsZUNyb3NzWm9uZVVwZ3JhZGU/OiBib29sZWFuO1xuICByZWFkb25seSBwcmlvcml0aXplVW5oZWFsdGh5SW5zdGFuY2VzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBdXRvbWF0aWMgT1MgdXBncmFkZSBwb2xpY3lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRvbWF0aWNPU1VwZ3JhZGVQb2xpY3kge1xuICByZWFkb25seSBlbmFibGVBdXRvbWF0aWNPU1VwZ3JhZGU/OiBib29sZWFuO1xuICByZWFkb25seSBkaXNhYmxlQXV0b21hdGljUm9sbGJhY2s/OiBib29sZWFuO1xuICByZWFkb25seSB1c2VSb2xsaW5nVXBncmFkZVBvbGljeT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVXBncmFkZSBwb2xpY3kgZm9yIHRoZSBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlydHVhbE1hY2hpbmVTY2FsZVNldFVwZ3JhZGVQb2xpY3kge1xuICByZWFkb25seSBtb2RlPzogVXBncmFkZVBvbGljeU1vZGU7XG4gIHJlYWRvbmx5IHJvbGxpbmdVcGdyYWRlUG9saWN5PzogUm9sbGluZ1VwZ3JhZGVQb2xpY3k7XG4gIHJlYWRvbmx5IGF1dG9tYXRpY09TVXBncmFkZVBvbGljeT86IEF1dG9tYXRpY09TVXBncmFkZVBvbGljeTtcbn1cblxuLyoqXG4gKiBJUCBjb25maWd1cmF0aW9uIHN1Ym5ldCByZWZlcmVuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUENvbmZpZ3VyYXRpb25TdWJuZXQge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEROUyBzZXR0aW5ncyBmb3IgcHVibGljIElQXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGljSVBEbnNTZXR0aW5ncyB7XG4gIHJlYWRvbmx5IGRvbWFpbk5hbWVMYWJlbDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFB1YmxpYyBJUCBhZGRyZXNzIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFB1YmxpY0lQQWRkcmVzc0NvbmZpZ3VyYXRpb25Qcm9wZXJ0aWVzIHtcbiAgcmVhZG9ubHkgaWRsZVRpbWVvdXRJbk1pbnV0ZXM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGRuc1NldHRpbmdzPzogUHVibGljSVBEbnNTZXR0aW5ncztcbn1cblxuLyoqXG4gKiBQdWJsaWMgSVAgYWRkcmVzcyBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGljSVBBZGRyZXNzQ29uZmlndXJhdGlvbiB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IFB1YmxpY0lQQWRkcmVzc0NvbmZpZ3VyYXRpb25Qcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIFJlc291cmNlIHJlZmVyZW5jZSB3aXRoIElEXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VSZWZlcmVuY2Uge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIElQIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElQQ29uZmlndXJhdGlvblByb3BlcnRpZXMge1xuICByZWFkb25seSBzdWJuZXQ/OiBJUENvbmZpZ3VyYXRpb25TdWJuZXQ7XG4gIHJlYWRvbmx5IHByaW1hcnk/OiBib29sZWFuO1xuICByZWFkb25seSBwdWJsaWNJUEFkZHJlc3NDb25maWd1cmF0aW9uPzogUHVibGljSVBBZGRyZXNzQ29uZmlndXJhdGlvbjtcbiAgcmVhZG9ubHkgcHJpdmF0ZUlQQWRkcmVzc1ZlcnNpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFwcGxpY2F0aW9uR2F0ZXdheUJhY2tlbmRBZGRyZXNzUG9vbHM/OiBSZXNvdXJjZVJlZmVyZW5jZVtdO1xuICByZWFkb25seSBsb2FkQmFsYW5jZXJCYWNrZW5kQWRkcmVzc1Bvb2xzPzogUmVzb3VyY2VSZWZlcmVuY2VbXTtcbiAgcmVhZG9ubHkgbG9hZEJhbGFuY2VySW5ib3VuZE5hdFBvb2xzPzogUmVzb3VyY2VSZWZlcmVuY2VbXTtcbn1cblxuLyoqXG4gKiBOZXR3b3JrIGludGVyZmFjZSBJUCBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBDb25maWd1cmF0aW9uIHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogSVBDb25maWd1cmF0aW9uUHJvcGVydGllcztcbn1cblxuLyoqXG4gKiBOZXR3b3JrIHNlY3VyaXR5IGdyb3VwIHJlZmVyZW5jZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtTZWN1cml0eUdyb3VwUmVmZXJlbmNlIHtcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBOZXR3b3JrIGludGVyZmFjZSBjb25maWd1cmF0aW9uIHByb3BlcnRpZXNcbiAqIFVzZXMgTmV0d29ya0ludGVyZmFjZURuc1NldHRpbmdzIGZyb20gYXp1cmUtbmV0d29ya2ludGVyZmFjZSBmb3IgY29uc2lzdGVuY3lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrSW50ZXJmYWNlQ29uZmlndXJhdGlvblByb3BlcnRpZXMge1xuICByZWFkb25seSBwcmltYXJ5PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZW5hYmxlQWNjZWxlcmF0ZWROZXR3b3JraW5nPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZW5hYmxlSVBGb3J3YXJkaW5nPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbmV0d29ya1NlY3VyaXR5R3JvdXA/OiBOZXR3b3JrU2VjdXJpdHlHcm91cFJlZmVyZW5jZTtcbiAgcmVhZG9ubHkgaXBDb25maWd1cmF0aW9uczogSVBDb25maWd1cmF0aW9uW107XG4gIHJlYWRvbmx5IGRuc1NldHRpbmdzPzogTmV0d29ya0ludGVyZmFjZURuc1NldHRpbmdzO1xufVxuXG4vKipcbiAqIE5ldHdvcmsgaW50ZXJmYWNlIGNvbmZpZ3VyYXRpb24gZm9yIFZNU1NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrSW50ZXJmYWNlQ29uZmlndXJhdGlvbiB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IE5ldHdvcmtJbnRlcmZhY2VDb25maWd1cmF0aW9uUHJvcGVydGllcztcbn1cblxuLyoqXG4gKiBIZWFsdGggcHJvYmUgcmVmZXJlbmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGVhbHRoUHJvYmVSZWZlcmVuY2Uge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE5ldHdvcmsgcHJvZmlsZSBmb3IgVk1TUyAoZGlmZmVyZW50IGZyb20gVk0pXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlydHVhbE1hY2hpbmVTY2FsZVNldE5ldHdvcmtQcm9maWxlIHtcbiAgcmVhZG9ubHkgbmV0d29ya0ludGVyZmFjZUNvbmZpZ3VyYXRpb25zPzogTmV0d29ya0ludGVyZmFjZUNvbmZpZ3VyYXRpb25bXTtcbiAgcmVhZG9ubHkgaGVhbHRoUHJvYmU/OiBIZWFsdGhQcm9iZVJlZmVyZW5jZTtcbiAgLyoqXG4gICAqIFRoZSBBUEkgdmVyc2lvbiB0byB1c2UgZm9yIG5ldHdvcmsgaW50ZXJmYWNlIGNvbmZpZ3VyYXRpb25zXG4gICAqXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgYXV0b21hdGljYWxseSBzZXQgdG8gdGhlIGxhdGVzdCBOZXR3b3JrIEludGVyZmFjZSBBUEkgdmVyc2lvblxuICAgKiB3aGVuIG9yY2hlc3RyYXRpb25Nb2RlIGlzIFwiRmxleGlibGVcIiBhbmQgbmV0d29ya0ludGVyZmFjZUNvbmZpZ3VyYXRpb25zIGFyZSBzcGVjaWZpZWQuXG4gICAqXG4gICAqIFlvdSBjYW4gZXhwbGljaXRseSBwcm92aWRlIGEgdmVyc2lvbiBpZiB5b3UgbmVlZCB0byBwaW4gdG8gYSBzcGVjaWZpYyBBUEkgdmVyc2lvbi5cbiAgICpcbiAgICogQGV4YW1wbGUgXCIyMDI0LTEwLTAxXCJcbiAgICogQGRlZmF1bHRWYWx1ZSBMYXRlc3QgTmV0d29yayBJbnRlcmZhY2UgQVBJIHZlcnNpb24gKGF1dG8tcmVzb2x2ZWQpXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrQXBpVmVyc2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBFeHRlbnNpb24gcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFZNRXh0ZW5zaW9uUHJvcGVydGllcyB7XG4gIHJlYWRvbmx5IHB1Ymxpc2hlcjogc3RyaW5nO1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHR5cGVIYW5kbGVyVmVyc2lvbjogc3RyaW5nO1xuICByZWFkb25seSBhdXRvVXBncmFkZU1pbm9yVmVyc2lvbj86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHNldHRpbmdzPzogYW55O1xuICByZWFkb25seSBwcm90ZWN0ZWRTZXR0aW5ncz86IGFueTtcbn1cblxuLyoqXG4gKiBWTSBleHRlbnNpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWTUV4dGVuc2lvbiB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IFZNRXh0ZW5zaW9uUHJvcGVydGllcztcbn1cblxuLyoqXG4gKiBFeHRlbnNpb24gcHJvZmlsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuc2lvblByb2ZpbGUge1xuICByZWFkb25seSBleHRlbnNpb25zPzogVk1FeHRlbnNpb25bXTtcbn1cblxuLyoqXG4gKiBUZXJtaW5hdGUgbm90aWZpY2F0aW9uIHByb2ZpbGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXJtaW5hdGVOb3RpZmljYXRpb25Qcm9maWxlIHtcbiAgcmVhZG9ubHkgbm90QmVmb3JlVGltZW91dD86IHN0cmluZztcbiAgcmVhZG9ubHkgZW5hYmxlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBTY2hlZHVsZWQgZXZlbnRzIHByb2ZpbGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZWRFdmVudHNQcm9maWxlIHtcbiAgcmVhZG9ubHkgdGVybWluYXRlTm90aWZpY2F0aW9uUHJvZmlsZT86IFRlcm1pbmF0ZU5vdGlmaWNhdGlvblByb2ZpbGU7XG59XG5cbi8qKlxuICogT1MgUHJvZmlsZSBmb3IgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldFxuICogVk1TUyB1c2VzIGNvbXB1dGVyTmFtZVByZWZpeCBpbnN0ZWFkIG9mIGNvbXB1dGVyTmFtZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRPU1Byb2ZpbGUge1xuICByZWFkb25seSBjb21wdXRlck5hbWVQcmVmaXg/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFkbWluVXNlcm5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFkbWluUGFzc3dvcmQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGN1c3RvbURhdGE/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHdpbmRvd3NDb25maWd1cmF0aW9uPzogVmlydHVhbE1hY2hpbmVXaW5kb3dzQ29uZmlndXJhdGlvbjtcbiAgcmVhZG9ubHkgbGludXhDb25maWd1cmF0aW9uPzogVmlydHVhbE1hY2hpbmVMaW51eENvbmZpZ3VyYXRpb247XG4gIHJlYWRvbmx5IHNlY3JldHM/OiBhbnlbXTtcbiAgcmVhZG9ubHkgYWxsb3dFeHRlbnNpb25PcGVyYXRpb25zPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcmVxdWlyZUd1ZXN0UHJvdmlzaW9uU2lnbmFsPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBWTSBwcm9maWxlIGZvciB0aGUgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldFxuICogV3JhcHMgVk0gY29uZmlndXJhdGlvbiBhbmQgcmV1c2VzIFZNIGludGVyZmFjZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0Vk1Qcm9maWxlIHtcbiAgcmVhZG9ubHkgb3NQcm9maWxlPzogVmlydHVhbE1hY2hpbmVTY2FsZVNldE9TUHJvZmlsZTtcbiAgcmVhZG9ubHkgc3RvcmFnZVByb2ZpbGU/OiBWaXJ0dWFsTWFjaGluZVN0b3JhZ2VQcm9maWxlO1xuICByZWFkb25seSBuZXR3b3JrUHJvZmlsZT86IFZpcnR1YWxNYWNoaW5lU2NhbGVTZXROZXR3b3JrUHJvZmlsZTtcbiAgcmVhZG9ubHkgc2VjdXJpdHlQcm9maWxlPzogVmlydHVhbE1hY2hpbmVTZWN1cml0eVByb2ZpbGU7XG4gIHJlYWRvbmx5IGRpYWdub3N0aWNzUHJvZmlsZT86IFZpcnR1YWxNYWNoaW5lRGlhZ25vc3RpY3NQcm9maWxlO1xuICByZWFkb25seSBleHRlbnNpb25Qcm9maWxlPzogRXh0ZW5zaW9uUHJvZmlsZTtcbiAgcmVhZG9ubHkgbGljZW5zZVR5cGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByaW9yaXR5Pzogc3RyaW5nO1xuICByZWFkb25seSBldmljdGlvblBvbGljeT86IHN0cmluZztcbiAgcmVhZG9ubHkgYmlsbGluZ1Byb2ZpbGU/OiBWaXJ0dWFsTWFjaGluZUJpbGxpbmdQcm9maWxlO1xuICByZWFkb25seSBzY2hlZHVsZWRFdmVudHNQcm9maWxlPzogU2NoZWR1bGVkRXZlbnRzUHJvZmlsZTtcbn1cblxuLyoqXG4gKiBBdXRvbWF0aWMgcmVwYWlycyBwb2xpY3lcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRvbWF0aWNSZXBhaXJzUG9saWN5IHtcbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGdyYWNlUGVyaW9kPzogc3RyaW5nO1xuICByZWFkb25seSByZXBhaXJBY3Rpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogU2NhbGUtaW4gcG9saWN5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlydHVhbE1hY2hpbmVTY2FsZVNldFNjYWxlSW5Qb2xpY3kge1xuICByZWFkb25seSBydWxlcz86IHN0cmluZ1tdO1xuICByZWFkb25seSBmb3JjZURlbGV0aW9uPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBPcmNoZXN0cmF0aW9uIG1vZGUgdHlwZVxuICovXG5leHBvcnQgdHlwZSBPcmNoZXN0cmF0aW9uTW9kZSA9IFwiVW5pZm9ybVwiIHwgXCJGbGV4aWJsZVwiO1xuXG4vKipcbiAqIFNjYWxpbmcgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRTY2FsaW5nQ29uZmlndXJhdGlvbiB7XG4gIHJlYWRvbmx5IG92ZXJwcm92aXNpb24/OiBib29sZWFuO1xuICByZWFkb25seSBkb05vdFJ1bkV4dGVuc2lvbnNPbk92ZXJwcm92aXNpb25lZFZNcz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHNpbmdsZVBsYWNlbWVudEdyb3VwPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgem9uZUJhbGFuY2U/OiBib29sZWFuO1xuICByZWFkb25seSBwbGF0Zm9ybUZhdWx0RG9tYWluQ291bnQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0IG1vbml0b3JpbmdcbiAqXG4gKiBUaGlzIGludGVyZmFjZSBwcm92aWRlcyBvcHRpb25zIGZvciBjb25maWd1cmluZyBtb25pdG9yaW5nIGFsZXJ0cyBhbmQgZGlhZ25vc3RpY1xuICogc2V0dGluZ3MgZm9yIFZNU1MgcmVzb3VyY2VzLiBBbGwgcHJvcGVydGllcyBhcmUgSlNJSS1jb21wbGlhbnQgZm9yIG11bHRpLWxhbmd1YWdlIHN1cHBvcnQuXG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWbXNzTW9uaXRvcmluZ09wdGlvbnMge1xuICAvKipcbiAgICogQ1BVIHVzYWdlIHRocmVzaG9sZCBwZXJjZW50YWdlIGZvciB0cmlnZ2VyaW5nIGFsZXJ0c1xuICAgKlxuICAgKiBWTVNTIHVzZXMgYSBsb3dlciBkZWZhdWx0IHRocmVzaG9sZCAoNzUlKSBjb21wYXJlZCB0byBzaW5nbGUgVk1zICg4MCUpXG4gICAqIHRvIGFsbG93IGhlYWRyb29tIGZvciBzY2FsaW5nIG9wZXJhdGlvbnMgYmVmb3JlIHJlYWNoaW5nIHNhdHVyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IDc1XG4gICAqL1xuICByZWFkb25seSBjcHVUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEF2YWlsYWJsZSBtZW1vcnkgdGhyZXNob2xkIGluIGJ5dGVzIGZvciB0cmlnZ2VyaW5nIGFsZXJ0c1xuICAgKlxuICAgKiBXaGVuIGF2YWlsYWJsZSBtZW1vcnkgZHJvcHMgYmVsb3cgdGhpcyB0aHJlc2hvbGQsIGFuIGFsZXJ0IHdpbGwgYmUgdHJpZ2dlcmVkLlxuICAgKiBEZWZhdWx0IGlzIDFHQiAoMTA3Mzc0MTgyNCBieXRlcykuXG4gICAqXG4gICAqIEBkZWZhdWx0IDEwNzM3NDE4MjRcbiAgICovXG4gIHJlYWRvbmx5IG1lbW9yeVRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogRGlzayBxdWV1ZSBkZXB0aCB0aHJlc2hvbGQgZm9yIHRyaWdnZXJpbmcgYWxlcnRzXG4gICAqXG4gICAqIEhpZ2ggZGlzayBxdWV1ZSBkZXB0aCBjYW4gaW5kaWNhdGUgZGlzayBwZXJmb3JtYW5jZSBib3R0bGVuZWNrcy5cbiAgICpcbiAgICogQGRlZmF1bHQgMzJcbiAgICovXG4gIHJlYWRvbmx5IGRpc2tRdWV1ZVRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgQ1BVIHVzYWdlIGFsZXJ0XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUNwdUFsZXJ0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgbWVtb3J5IHVzYWdlIGFsZXJ0XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZU1lbW9yeUFsZXJ0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgZGlzayBxdWV1ZSBkZXB0aCBhbGVydFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVEaXNrUXVldWVBbGVydD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBvciBkaXNhYmxlIFZNU1MgZGVsZXRpb24gYWN0aXZpdHkgbG9nIGFsZXJ0XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZURlbGV0aW9uQWxlcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXZlcml0eSBsZXZlbCBmb3IgQ1BVIHVzYWdlIGFsZXJ0c1xuICAgKlxuICAgKiAtIDA6IENyaXRpY2FsXG4gICAqIC0gMTogRXJyb3JcbiAgICogLSAyOiBXYXJuaW5nXG4gICAqIC0gMzogSW5mb3JtYXRpb25hbFxuICAgKiAtIDQ6IFZlcmJvc2VcbiAgICpcbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgcmVhZG9ubHkgY3B1QWxlcnRTZXZlcml0eT86IDAgfCAxIHwgMiB8IDMgfCA0O1xuXG4gIC8qKlxuICAgKiBTZXZlcml0eSBsZXZlbCBmb3IgbWVtb3J5IHVzYWdlIGFsZXJ0c1xuICAgKlxuICAgKiAtIDA6IENyaXRpY2FsXG4gICAqIC0gMTogRXJyb3JcbiAgICogLSAyOiBXYXJuaW5nXG4gICAqIC0gMzogSW5mb3JtYXRpb25hbFxuICAgKiAtIDQ6IFZlcmJvc2VcbiAgICpcbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgcmVhZG9ubHkgbWVtb3J5QWxlcnRTZXZlcml0eT86IDAgfCAxIHwgMiB8IDMgfCA0O1xuXG4gIC8qKlxuICAgKiBTZXZlcml0eSBsZXZlbCBmb3IgZGlzayBxdWV1ZSBkZXB0aCBhbGVydHNcbiAgICpcbiAgICogLSAwOiBDcml0aWNhbFxuICAgKiAtIDE6IEVycm9yXG4gICAqIC0gMjogV2FybmluZ1xuICAgKiAtIDM6IEluZm9ybWF0aW9uYWxcbiAgICogLSA0OiBWZXJib3NlXG4gICAqXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIHJlYWRvbmx5IGRpc2tRdWV1ZUFsZXJ0U2V2ZXJpdHk/OiAwIHwgMSB8IDIgfCAzIHwgNDtcbn1cblxuLyoqXG4gKiBQcm94aW1pdHkgcGxhY2VtZW50IGdyb3VwIHJlZmVyZW5jZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3hpbWl0eVBsYWNlbWVudEdyb3VwUmVmZXJlbmNlIHtcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBIb3N0IGdyb3VwIHJlZmVyZW5jZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhvc3RHcm91cFJlZmVyZW5jZSB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQWRkaXRpb25hbCBjYXBhYmlsaXRpZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRpdGlvbmFsQ2FwYWJpbGl0aWVzIHtcbiAgcmVhZG9ubHkgdWx0cmFTU0RFbmFibGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRQcm9wcyB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgbG9jYXRpb246IHN0cmluZztcbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cElkPzogc3RyaW5nO1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcmVhZG9ubHkgYXBpVmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgc2t1OiBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0U2t1O1xuICByZWFkb25seSBpZGVudGl0eT86IFZpcnR1YWxNYWNoaW5lSWRlbnRpdHk7XG4gIHJlYWRvbmx5IHpvbmVzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IHBsYW4/OiBWaXJ0dWFsTWFjaGluZVBsYW47XG4gIHJlYWRvbmx5IHVwZ3JhZGVQb2xpY3k/OiBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0VXBncmFkZVBvbGljeTtcbiAgcmVhZG9ubHkgdmlydHVhbE1hY2hpbmVQcm9maWxlPzogVmlydHVhbE1hY2hpbmVTY2FsZVNldFZNUHJvZmlsZTtcbiAgcmVhZG9ubHkgb3JjaGVzdHJhdGlvbk1vZGU/OiBPcmNoZXN0cmF0aW9uTW9kZTtcbiAgcmVhZG9ubHkgb3ZlcnByb3Zpc2lvbj86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGRvTm90UnVuRXh0ZW5zaW9uc09uT3ZlcnByb3Zpc2lvbmVkVk1zPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc2luZ2xlUGxhY2VtZW50R3JvdXA/OiBib29sZWFuO1xuICByZWFkb25seSB6b25lQmFsYW5jZT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHBsYXRmb3JtRmF1bHREb21haW5Db3VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgYXV0b21hdGljUmVwYWlyc1BvbGljeT86IEF1dG9tYXRpY1JlcGFpcnNQb2xpY3k7XG4gIHJlYWRvbmx5IHNjYWxlSW5Qb2xpY3k/OiBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0U2NhbGVJblBvbGljeTtcbiAgcmVhZG9ubHkgcHJveGltaXR5UGxhY2VtZW50R3JvdXA/OiBQcm94aW1pdHlQbGFjZW1lbnRHcm91cFJlZmVyZW5jZTtcbiAgcmVhZG9ubHkgaG9zdEdyb3VwPzogSG9zdEdyb3VwUmVmZXJlbmNlO1xuICByZWFkb25seSBhZGRpdGlvbmFsQ2FwYWJpbGl0aWVzPzogQWRkaXRpb25hbENhcGFiaWxpdGllcztcbiAgcmVhZG9ubHkgbW9uaXRvcmluZz86IGFueTtcbiAgcmVhZG9ubHkgaWdub3JlQ2hhbmdlcz86IHN0cmluZ1tdO1xuICByZWFkb25seSBlbmFibGVNaWdyYXRpb25BbmFseXNpcz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGVuYWJsZVZhbGlkYXRpb24/OiBib29sZWFuO1xuICByZWFkb25seSBlbmFibGVUcmFuc2Zvcm1hdGlvbj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQm9keSBwcm9wZXJ0aWVzIGZvciBWTVNTXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlydHVhbE1hY2hpbmVTY2FsZVNldEJvZHlQcm9wZXJ0aWVzIHtcbiAgcmVhZG9ubHkgdXBncmFkZVBvbGljeT86IFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRVcGdyYWRlUG9saWN5O1xuICByZWFkb25seSB2aXJ0dWFsTWFjaGluZVByb2ZpbGU/OiBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0Vk1Qcm9maWxlO1xuICByZWFkb25seSBvcmNoZXN0cmF0aW9uTW9kZT86IE9yY2hlc3RyYXRpb25Nb2RlO1xuICByZWFkb25seSBvdmVycHJvdmlzaW9uPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZG9Ob3RSdW5FeHRlbnNpb25zT25PdmVycHJvdmlzaW9uZWRWTXM/OiBib29sZWFuO1xuICByZWFkb25seSBzaW5nbGVQbGFjZW1lbnRHcm91cD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHpvbmVCYWxhbmNlPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgcGxhdGZvcm1GYXVsdERvbWFpbkNvdW50PzogbnVtYmVyO1xuICByZWFkb25seSBhdXRvbWF0aWNSZXBhaXJzUG9saWN5PzogQXV0b21hdGljUmVwYWlyc1BvbGljeTtcbiAgcmVhZG9ubHkgc2NhbGVJblBvbGljeT86IFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRTY2FsZUluUG9saWN5O1xuICByZWFkb25seSBwcm94aW1pdHlQbGFjZW1lbnRHcm91cD86IFByb3hpbWl0eVBsYWNlbWVudEdyb3VwUmVmZXJlbmNlO1xuICByZWFkb25seSBob3N0R3JvdXA/OiBIb3N0R3JvdXBSZWZlcmVuY2U7XG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxDYXBhYmlsaXRpZXM/OiBBZGRpdGlvbmFsQ2FwYWJpbGl0aWVzO1xufVxuXG4vKipcbiAqIFRoZSByZXNvdXJjZSBib2R5IGludGVyZmFjZSBmb3IgQXp1cmUgVk1TUyBBUEkgY2FsbHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0Qm9keSB7XG4gIHJlYWRvbmx5IGxvY2F0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICByZWFkb25seSBza3U6IFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRTa3U7XG4gIHJlYWRvbmx5IGlkZW50aXR5PzogVmlydHVhbE1hY2hpbmVJZGVudGl0eTtcbiAgcmVhZG9ubHkgem9uZXM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgcGxhbj86IFZpcnR1YWxNYWNoaW5lUGxhbjtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogVmlydHVhbE1hY2hpbmVTY2FsZVNldEJvZHlQcm9wZXJ0aWVzO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ09NTU9OIFBST1BFUlRZIERFRklOSVRJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENvbW1vbiBwcm9wZXJ0eSBkZWZpbml0aW9ucyBzaGFyZWQgYWNyb3NzIGFsbCBWTVNTIHZlcnNpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBDT01NT05fVk1TU19QUk9QRVJUSUVTOiB7IFtrZXk6IHN0cmluZ106IFByb3BlcnR5RGVmaW5pdGlvbiB9ID0ge1xuICBsb2NhdGlvbjoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUgQXp1cmUgcmVnaW9uIHdoZXJlIHRoZSBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0IHdpbGwgYmUgY3JlYXRlZFwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgbWVzc2FnZTogXCJMb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldHNcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUEFUVEVSTl9NQVRDSCxcbiAgICAgICAgdmFsdWU6IFwiXlthLXowLTldKyRcIixcbiAgICAgICAgbWVzc2FnZTogXCJMb2NhdGlvbiBtdXN0IGNvbnRhaW4gb25seSBsb3dlcmNhc2UgbGV0dGVycyBhbmQgbnVtYmVyc1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0YWdzOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZToge30sXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIkEgZGljdGlvbmFyeSBvZiB0YWdzIHRvIGFwcGx5IHRvIHRoZSBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0XCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlRZUEVfQ0hFQ0ssXG4gICAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgICAgICBtZXNzYWdlOiBcIlRhZ3MgbXVzdCBiZSBhbiBvYmplY3Qgd2l0aCBzdHJpbmcga2V5LXZhbHVlIHBhaXJzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIG5hbWU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgbmFtZSBvZiB0aGUgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldFwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgbWVzc2FnZTogXCJWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0IG5hbWUgaXMgcmVxdWlyZWRcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUEFUVEVSTl9NQVRDSCxcbiAgICAgICAgdmFsdWU6IFwiXlthLXpBLVowLTldKFthLXpBLVowLTktXXswLDYyfVthLXpBLVowLTldKT8kXCIsXG4gICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgXCJWTVNTIG5hbWUgbXVzdCBiZSAxLTY0IGNoYXJhY3RlcnMsIHN0YXJ0IGFuZCBlbmQgd2l0aCBhbHBoYW51bWVyaWMsIGFuZCBjYW4gY29udGFpbiBoeXBoZW5zXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHNrdToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBTS1UgY29uZmlndXJhdGlvbiBmb3IgdGhlIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiU0tVIGlzIHJlcXVpcmVkIGZvciBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0c1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBpZGVudGl0eToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgaWRlbnRpdHkgY29uZmlndXJhdGlvbiBmb3IgdGhlIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRcIixcbiAgfSxcbiAgem9uZXM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkFSUkFZLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJBdmFpbGFiaWxpdHkgem9uZXMgZm9yIHRoZSBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0XCIsXG4gIH0sXG4gIHBsYW46IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiUGxhbiBpbmZvcm1hdGlvbiBmb3IgbWFya2V0cGxhY2UgaW1hZ2VzXCIsXG4gIH0sXG4gIHVwZ3JhZGVQb2xpY3k6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIHVwZ3JhZGUgcG9saWN5IGZvciB0aGUgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldFwiLFxuICB9LFxuICB2aXJ0dWFsTWFjaGluZVByb2ZpbGU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIHZpcnR1YWwgbWFjaGluZSBwcm9maWxlIGZvciB0aGUgc2NhbGUgc2V0XCIsXG4gIH0sXG4gIG9yY2hlc3RyYXRpb25Nb2RlOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUgb3JjaGVzdHJhdGlvbiBtb2RlIGZvciB0aGUgc2NhbGUgc2V0IChVbmlmb3JtIG9yIEZsZXhpYmxlKVwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5QQVRURVJOX01BVENILFxuICAgICAgICB2YWx1ZTogXCJeKFVuaWZvcm18RmxleGlibGUpJFwiLFxuICAgICAgICBtZXNzYWdlOiBcIk9yY2hlc3RyYXRpb24gbW9kZSBtdXN0IGJlICdVbmlmb3JtJyBvciAnRmxleGlibGUnXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIG92ZXJwcm92aXNpb246IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIldoZXRoZXIgdG8gb3ZlcnByb3Zpc2lvbiBWTXMgaW4gdGhlIHNjYWxlIHNldFwiLFxuICB9LFxuICBkb05vdFJ1bkV4dGVuc2lvbnNPbk92ZXJwcm92aXNpb25lZFZNczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQk9PTEVBTixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiV2hldGhlciB0byBza2lwIGV4dGVuc2lvbnMgb24gb3ZlcnByb3Zpc2lvbmVkIFZNc1wiLFxuICB9LFxuICBzaW5nbGVQbGFjZW1lbnRHcm91cDoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQk9PTEVBTixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiV2hldGhlciB0byB1c2UgYSBzaW5nbGUgcGxhY2VtZW50IGdyb3VwXCIsXG4gIH0sXG4gIHpvbmVCYWxhbmNlOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5CT09MRUFOLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJXaGV0aGVyIHRvIGJhbGFuY2UgVk1zIGFjcm9zcyB6b25lc1wiLFxuICB9LFxuICBwbGF0Zm9ybUZhdWx0RG9tYWluQ291bnQ6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk5VTUJFUixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIG51bWJlciBvZiBmYXVsdCBkb21haW5zIHRvIHVzZVwiLFxuICB9LFxuICBhdXRvbWF0aWNSZXBhaXJzUG9saWN5OiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBhdXRvbWF0aWMgcmVwYWlycyBwb2xpY3kgZm9yIHRoZSBzY2FsZSBzZXRcIixcbiAgfSxcbiAgc2NhbGVJblBvbGljeToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgc2NhbGUtaW4gcG9saWN5IGZvciB0aGUgc2NhbGUgc2V0XCIsXG4gIH0sXG4gIHByb3hpbWl0eVBsYWNlbWVudEdyb3VwOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlJlZmVyZW5jZSB0byBhIHByb3hpbWl0eSBwbGFjZW1lbnQgZ3JvdXBcIixcbiAgfSxcbiAgaG9zdEdyb3VwOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlJlZmVyZW5jZSB0byBhIGRlZGljYXRlZCBob3N0IGdyb3VwXCIsXG4gIH0sXG4gIGFkZGl0aW9uYWxDYXBhYmlsaXRpZXM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiQWRkaXRpb25hbCBjYXBhYmlsaXRpZXMgbGlrZSBVbHRyYSBTU0RcIixcbiAgfSxcbiAgaWdub3JlQ2hhbmdlczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQVJSQVksXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIkFycmF5IG9mIHByb3BlcnR5IG5hbWVzIHRvIGlnbm9yZSBkdXJpbmcgdXBkYXRlc1wiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5UWVBFX0NIRUNLLFxuICAgICAgICB2YWx1ZTogUHJvcGVydHlUeXBlLkFSUkFZLFxuICAgICAgICBtZXNzYWdlOiBcIklnbm9yZUNoYW5nZXMgbXVzdCBiZSBhbiBhcnJheSBvZiBzdHJpbmdzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVkVSU0lPTi1TUEVDSUZJQyBTQ0hFTUFTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEFQSSBTY2hlbWEgZm9yIFZNU1MgdmVyc2lvbiAyMDI1LTAxLTAyXG4gKi9cbmV4cG9ydCBjb25zdCBWTVNTX1NDSEVNQV8yMDI1XzAxXzAyOiBBcGlTY2hlbWEgPSB7XG4gIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuQ29tcHV0ZS92aXJ0dWFsTWFjaGluZVNjYWxlU2V0c1wiLFxuICB2ZXJzaW9uOiBcIjIwMjUtMDEtMDJcIixcbiAgcHJvcGVydGllczoge1xuICAgIC4uLkNPTU1PTl9WTVNTX1BST1BFUlRJRVMsXG4gIH0sXG4gIHJlcXVpcmVkOiBbXCJsb2NhdGlvblwiLCBcIm5hbWVcIiwgXCJza3VcIl0sXG4gIG9wdGlvbmFsOiBbXG4gICAgXCJ0YWdzXCIsXG4gICAgXCJpZGVudGl0eVwiLFxuICAgIFwiem9uZXNcIixcbiAgICBcInBsYW5cIixcbiAgICBcInVwZ3JhZGVQb2xpY3lcIixcbiAgICBcInZpcnR1YWxNYWNoaW5lUHJvZmlsZVwiLFxuICAgIFwib3JjaGVzdHJhdGlvbk1vZGVcIixcbiAgICBcIm92ZXJwcm92aXNpb25cIixcbiAgICBcImRvTm90UnVuRXh0ZW5zaW9uc09uT3ZlcnByb3Zpc2lvbmVkVk1zXCIsXG4gICAgXCJzaW5nbGVQbGFjZW1lbnRHcm91cFwiLFxuICAgIFwiem9uZUJhbGFuY2VcIixcbiAgICBcInBsYXRmb3JtRmF1bHREb21haW5Db3VudFwiLFxuICAgIFwiYXV0b21hdGljUmVwYWlyc1BvbGljeVwiLFxuICAgIFwic2NhbGVJblBvbGljeVwiLFxuICAgIFwicHJveGltaXR5UGxhY2VtZW50R3JvdXBcIixcbiAgICBcImhvc3RHcm91cFwiLFxuICAgIFwiYWRkaXRpb25hbENhcGFiaWxpdGllc1wiLFxuICAgIFwiaWdub3JlQ2hhbmdlc1wiLFxuICBdLFxuICBkZXByZWNhdGVkOiBbXSxcbiAgdHJhbnNmb3JtYXRpb25SdWxlczoge30sXG4gIHZhbGlkYXRpb25SdWxlczogW1xuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcImxvY2F0aW9uXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIkxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0c1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcIm5hbWVcIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTmFtZSBpcyByZXF1aXJlZCBmb3IgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldHNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJza3VcIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiU0tVIGlzIHJlcXVpcmVkIGZvciBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0c1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBBUEkgU2NoZW1hIGZvciBWTVNTIHZlcnNpb24gMjAyNS0wMi0wMVxuICovXG5leHBvcnQgY29uc3QgVk1TU19TQ0hFTUFfMjAyNV8wMl8wMTogQXBpU2NoZW1hID0ge1xuICByZXNvdXJjZVR5cGU6IFwiTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVTY2FsZVNldHNcIixcbiAgdmVyc2lvbjogXCIyMDI1LTAyLTAxXCIsXG4gIHByb3BlcnRpZXM6IHtcbiAgICAuLi5DT01NT05fVk1TU19QUk9QRVJUSUVTLFxuICB9LFxuICByZXF1aXJlZDogW1wibG9jYXRpb25cIiwgXCJuYW1lXCIsIFwic2t1XCJdLFxuICBvcHRpb25hbDogW1xuICAgIFwidGFnc1wiLFxuICAgIFwiaWRlbnRpdHlcIixcbiAgICBcInpvbmVzXCIsXG4gICAgXCJwbGFuXCIsXG4gICAgXCJ1cGdyYWRlUG9saWN5XCIsXG4gICAgXCJ2aXJ0dWFsTWFjaGluZVByb2ZpbGVcIixcbiAgICBcIm9yY2hlc3RyYXRpb25Nb2RlXCIsXG4gICAgXCJvdmVycHJvdmlzaW9uXCIsXG4gICAgXCJkb05vdFJ1bkV4dGVuc2lvbnNPbk92ZXJwcm92aXNpb25lZFZNc1wiLFxuICAgIFwic2luZ2xlUGxhY2VtZW50R3JvdXBcIixcbiAgICBcInpvbmVCYWxhbmNlXCIsXG4gICAgXCJwbGF0Zm9ybUZhdWx0RG9tYWluQ291bnRcIixcbiAgICBcImF1dG9tYXRpY1JlcGFpcnNQb2xpY3lcIixcbiAgICBcInNjYWxlSW5Qb2xpY3lcIixcbiAgICBcInByb3hpbWl0eVBsYWNlbWVudEdyb3VwXCIsXG4gICAgXCJob3N0R3JvdXBcIixcbiAgICBcImFkZGl0aW9uYWxDYXBhYmlsaXRpZXNcIixcbiAgICBcImlnbm9yZUNoYW5nZXNcIixcbiAgXSxcbiAgZGVwcmVjYXRlZDogW10sXG4gIHRyYW5zZm9ybWF0aW9uUnVsZXM6IHt9LFxuICB2YWxpZGF0aW9uUnVsZXM6IFtcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJsb2NhdGlvblwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJMb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldHNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJuYW1lXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIk5hbWUgaXMgcmVxdWlyZWQgZm9yIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwic2t1XCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIlNLVSBpcyByZXF1aXJlZCBmb3IgVmlydHVhbCBNYWNoaW5lIFNjYWxlIFNldHNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgVk1TUyB2ZXJzaW9uIDIwMjUtMDQtMDFcbiAqL1xuZXhwb3J0IGNvbnN0IFZNU1NfU0NIRU1BXzIwMjVfMDRfMDE6IEFwaVNjaGVtYSA9IHtcbiAgcmVzb3VyY2VUeXBlOiBcIk1pY3Jvc29mdC5Db21wdXRlL3ZpcnR1YWxNYWNoaW5lU2NhbGVTZXRzXCIsXG4gIHZlcnNpb246IFwiMjAyNS0wNC0wMVwiLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLi4uQ09NTU9OX1ZNU1NfUFJPUEVSVElFUyxcbiAgfSxcbiAgcmVxdWlyZWQ6IFtcImxvY2F0aW9uXCIsIFwibmFtZVwiLCBcInNrdVwiXSxcbiAgb3B0aW9uYWw6IFtcbiAgICBcInRhZ3NcIixcbiAgICBcImlkZW50aXR5XCIsXG4gICAgXCJ6b25lc1wiLFxuICAgIFwicGxhblwiLFxuICAgIFwidXBncmFkZVBvbGljeVwiLFxuICAgIFwidmlydHVhbE1hY2hpbmVQcm9maWxlXCIsXG4gICAgXCJvcmNoZXN0cmF0aW9uTW9kZVwiLFxuICAgIFwib3ZlcnByb3Zpc2lvblwiLFxuICAgIFwiZG9Ob3RSdW5FeHRlbnNpb25zT25PdmVycHJvdmlzaW9uZWRWTXNcIixcbiAgICBcInNpbmdsZVBsYWNlbWVudEdyb3VwXCIsXG4gICAgXCJ6b25lQmFsYW5jZVwiLFxuICAgIFwicGxhdGZvcm1GYXVsdERvbWFpbkNvdW50XCIsXG4gICAgXCJhdXRvbWF0aWNSZXBhaXJzUG9saWN5XCIsXG4gICAgXCJzY2FsZUluUG9saWN5XCIsXG4gICAgXCJwcm94aW1pdHlQbGFjZW1lbnRHcm91cFwiLFxuICAgIFwiaG9zdEdyb3VwXCIsXG4gICAgXCJhZGRpdGlvbmFsQ2FwYWJpbGl0aWVzXCIsXG4gICAgXCJpZ25vcmVDaGFuZ2VzXCIsXG4gIF0sXG4gIGRlcHJlY2F0ZWQ6IFtdLFxuICB0cmFuc2Zvcm1hdGlvblJ1bGVzOiB7fSxcbiAgdmFsaWRhdGlvblJ1bGVzOiBbXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibG9jYXRpb25cIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTG9jYXRpb24gaXMgcmVxdWlyZWQgZm9yIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibmFtZVwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJOYW1lIGlzIHJlcXVpcmVkIGZvciBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0c1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcInNrdVwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJTS1UgaXMgcmVxdWlyZWQgZm9yIFZpcnR1YWwgTWFjaGluZSBTY2FsZSBTZXRzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVkVSU0lPTiBDT05GSUdVUkFUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBWZXJzaW9uIGNvbmZpZ3VyYXRpb24gZm9yIFZNU1MgMjAyNS0wMS0wMlxuICovXG5leHBvcnQgY29uc3QgVk1TU19WRVJTSU9OXzIwMjVfMDFfMDI6IFZlcnNpb25Db25maWcgPSB7XG4gIHZlcnNpb246IFwiMjAyNS0wMS0wMlwiLFxuICBzY2hlbWE6IFZNU1NfU0NIRU1BXzIwMjVfMDFfMDIsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gIHJlbGVhc2VEYXRlOiBcIjIwMjUtMDEtMDJcIixcbiAgZGVwcmVjYXRpb25EYXRlOiB1bmRlZmluZWQsXG4gIHN1bnNldERhdGU6IHVuZGVmaW5lZCxcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3Mvdm1zcy9taWdyYXRpb24tMjAyNS0wMS0wMlwiLFxuICBjaGFuZ2VMb2c6IFtcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcImFkZGVkXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJJbml0aWFsIHJlbGVhc2Ugd2l0aCBjb21wcmVoZW5zaXZlIFZNU1MgZmVhdHVyZXNcIixcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBWZXJzaW9uIGNvbmZpZ3VyYXRpb24gZm9yIFZNU1MgMjAyNS0wMi0wMVxuICovXG5leHBvcnQgY29uc3QgVk1TU19WRVJTSU9OXzIwMjVfMDJfMDE6IFZlcnNpb25Db25maWcgPSB7XG4gIHZlcnNpb246IFwiMjAyNS0wMi0wMVwiLFxuICBzY2hlbWE6IFZNU1NfU0NIRU1BXzIwMjVfMDJfMDEsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gIHJlbGVhc2VEYXRlOiBcIjIwMjUtMDItMDFcIixcbiAgZGVwcmVjYXRpb25EYXRlOiB1bmRlZmluZWQsXG4gIHN1bnNldERhdGU6IHVuZGVmaW5lZCxcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3Mvdm1zcy9taWdyYXRpb24tMjAyNS0wMi0wMVwiLFxuICBjaGFuZ2VMb2c6IFtcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcInVwZGF0ZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkVuaGFuY2VkIG9yY2hlc3RyYXRpb24gYW5kIHNjYWxpbmcgZmVhdHVyZXNcIixcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBWZXJzaW9uIGNvbmZpZ3VyYXRpb24gZm9yIFZNU1MgMjAyNS0wNC0wMVxuICovXG5leHBvcnQgY29uc3QgVk1TU19WRVJTSU9OXzIwMjVfMDRfMDE6IFZlcnNpb25Db25maWcgPSB7XG4gIHZlcnNpb246IFwiMjAyNS0wNC0wMVwiLFxuICBzY2hlbWE6IFZNU1NfU0NIRU1BXzIwMjVfMDRfMDEsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gIHJlbGVhc2VEYXRlOiBcIjIwMjUtMDQtMDFcIixcbiAgZGVwcmVjYXRpb25EYXRlOiB1bmRlZmluZWQsXG4gIHN1bnNldERhdGU6IHVuZGVmaW5lZCxcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3Mvdm1zcy9taWdyYXRpb24tMjAyNS0wNC0wMVwiLFxuICBjaGFuZ2VMb2c6IFtcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcInVwZGF0ZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkxhdGVzdCBBUEkgdmVyc2lvbiB3aXRoIG5ld2VzdCBmZWF0dXJlcyBhbmQgaW1wcm92ZW1lbnRzXCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogQWxsIHN1cHBvcnRlZCBWTVNTIHZlcnNpb25zIGZvciByZWdpc3RyYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IEFMTF9WTVNTX1ZFUlNJT05TOiBWZXJzaW9uQ29uZmlnW10gPSBbXG4gIFZNU1NfVkVSU0lPTl8yMDI1XzAxXzAyLFxuICBWTVNTX1ZFUlNJT05fMjAyNV8wMl8wMSxcbiAgVk1TU19WRVJTSU9OXzIwMjVfMDRfMDEsXG5dO1xuXG4vKipcbiAqIFJlc291cmNlIHR5cGUgY29uc3RhbnRcbiAqL1xuZXhwb3J0IGNvbnN0IFZNU1NfVFlQRSA9IFwiTWljcm9zb2Z0LkNvbXB1dGUvdmlydHVhbE1hY2hpbmVTY2FsZVNldHNcIjtcbiJdfQ==
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Integration test for Azure Virtual Machine Scale Set
3
+ *
4
+ * This test demonstrates key usage patterns of the VirtualMachineScaleSet construct
5
+ * and validates deployment, idempotency, and cleanup.
6
+ *
7
+ * Test Coverage:
8
+ * - Uniform orchestration mode with monitoring and SSH authentication
9
+ * - Flexible orchestration mode with password authentication
10
+ * - Monitoring integration with custom thresholds
11
+ * - Automatic network API version resolution
12
+ *
13
+ * Run with: npm run integration:nostream
14
+ */
15
+ import "cdktf/lib/testing/adapters/jest";