@microsoft/terraform-cdk-constructs 0.0.3-pre.7 → 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 (1290) hide show
  1. package/.devcontainer/devcontainer.json +2 -2
  2. package/.jsii +67552 -10179
  3. package/API.md +69252 -9464
  4. package/LICENSE +16 -18
  5. package/README.md +186 -75
  6. package/cdktf.json +1 -1
  7. package/docs/ARCHITECTURE.md +836 -0
  8. package/docs/azapi-testing-architecture.md +482 -0
  9. package/docs/monitoring-guide.md +206 -0
  10. package/docs/testing.md +99 -114
  11. package/docs/versioning-and-migrations-user-guide.md +409 -0
  12. package/go.mod +12 -12
  13. package/go.sum +27 -23
  14. package/lib/azure-actiongroup/index.d.ts +10 -0
  15. package/lib/azure-actiongroup/index.js +11 -1
  16. package/lib/azure-actiongroup/lib/action-group-schemas.d.ts +24 -0
  17. package/lib/azure-actiongroup/lib/action-group-schemas.js +201 -0
  18. package/lib/azure-actiongroup/lib/action-group.d.ts +312 -0
  19. package/lib/azure-actiongroup/lib/action-group.js +201 -0
  20. package/lib/azure-actiongroup/lib/index.d.ts +5 -1
  21. package/lib/azure-actiongroup/lib/index.js +6 -2
  22. package/lib/azure-actiongroup/test/action-group.integ.d.ts +9 -0
  23. package/lib/azure-actiongroup/test/action-group.integ.js +79 -0
  24. package/lib/azure-actiongroup/test/action-group.spec.d.ts +8 -0
  25. package/lib/azure-actiongroup/test/action-group.spec.js +602 -0
  26. package/lib/azure-activitylogalert/index.d.ts +11 -0
  27. package/lib/azure-activitylogalert/index.js +28 -0
  28. package/lib/azure-activitylogalert/lib/activity-log-alert-schemas.d.ts +24 -0
  29. package/lib/azure-activitylogalert/lib/activity-log-alert-schemas.js +182 -0
  30. package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +236 -0
  31. package/lib/azure-activitylogalert/lib/activity-log-alert.js +212 -0
  32. package/lib/azure-activitylogalert/lib/index.d.ts +5 -0
  33. package/lib/azure-activitylogalert/lib/index.js +22 -0
  34. package/lib/azure-activitylogalert/test/activity-log-alert.integ.d.ts +9 -0
  35. package/lib/azure-activitylogalert/test/activity-log-alert.integ.js +98 -0
  36. package/lib/azure-activitylogalert/test/activity-log-alert.spec.d.ts +9 -0
  37. package/lib/azure-activitylogalert/test/activity-log-alert.spec.js +1101 -0
  38. package/lib/azure-aks/index.d.ts +9 -0
  39. package/lib/azure-aks/index.js +28 -0
  40. package/lib/azure-aks/lib/aks-cluster-schemas.d.ts +505 -0
  41. package/lib/azure-aks/lib/aks-cluster-schemas.js +572 -0
  42. package/lib/azure-aks/lib/aks-cluster.d.ts +395 -0
  43. package/lib/azure-aks/lib/aks-cluster.js +489 -0
  44. package/lib/azure-aks/lib/index.d.ts +11 -0
  45. package/lib/azure-aks/lib/index.js +38 -0
  46. package/lib/azure-aks/test/aks-cluster.integ.d.ts +9 -0
  47. package/lib/azure-aks/test/aks-cluster.integ.js +260 -0
  48. package/lib/azure-aks/test/aks-cluster.spec.d.ts +8 -0
  49. package/lib/azure-aks/test/aks-cluster.spec.js +1396 -0
  50. package/lib/azure-diagnosticsettings/index.d.ts +7 -0
  51. package/lib/azure-diagnosticsettings/index.js +24 -0
  52. package/lib/azure-diagnosticsettings/lib/diagnostic-settings-schemas.d.ts +50 -0
  53. package/lib/azure-diagnosticsettings/lib/diagnostic-settings-schemas.js +207 -0
  54. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +193 -0
  55. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +200 -0
  56. package/lib/azure-diagnosticsettings/lib/index.d.ts +8 -0
  57. package/lib/azure-diagnosticsettings/lib/index.js +25 -0
  58. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.d.ts +8 -0
  59. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.js +432 -0
  60. package/lib/azure-metricalert/index.d.ts +10 -1
  61. package/lib/azure-metricalert/index.js +11 -2
  62. package/lib/azure-metricalert/lib/index.d.ts +4 -0
  63. package/lib/azure-metricalert/lib/index.js +5 -1
  64. package/lib/azure-metricalert/lib/metric-alert-schemas.d.ts +24 -0
  65. package/lib/azure-metricalert/lib/metric-alert-schemas.js +242 -0
  66. package/lib/azure-metricalert/lib/metric-alert.d.ts +337 -49
  67. package/lib/azure-metricalert/lib/metric-alert.js +228 -104
  68. package/lib/azure-metricalert/test/metric-alert.integ.d.ts +9 -0
  69. package/lib/azure-metricalert/test/metric-alert.integ.js +123 -0
  70. package/lib/azure-metricalert/test/metric-alert.spec.d.ts +9 -0
  71. package/lib/azure-metricalert/test/metric-alert.spec.js +1266 -0
  72. package/lib/azure-networkinterface/index.d.ts +4 -0
  73. package/lib/azure-networkinterface/index.js +21 -0
  74. package/lib/azure-networkinterface/lib/index.d.ts +6 -0
  75. package/lib/azure-networkinterface/lib/index.js +22 -0
  76. package/lib/azure-networkinterface/lib/network-interface-schemas.d.ts +32 -0
  77. package/lib/azure-networkinterface/lib/network-interface-schemas.js +222 -0
  78. package/lib/azure-networkinterface/lib/network-interface.d.ts +265 -0
  79. package/lib/azure-networkinterface/lib/network-interface.js +228 -0
  80. package/lib/azure-networkinterface/test/network-interface.integ.d.ts +9 -0
  81. package/lib/azure-networkinterface/test/network-interface.integ.js +102 -0
  82. package/lib/azure-networkinterface/test/network-interface.spec.d.ts +8 -0
  83. package/lib/azure-networkinterface/test/network-interface.spec.js +655 -0
  84. package/lib/azure-networksecuritygroup/index.d.ts +5 -0
  85. package/lib/azure-networksecuritygroup/index.js +6 -1
  86. package/lib/azure-networksecuritygroup/lib/index.d.ts +5 -2
  87. package/lib/azure-networksecuritygroup/lib/index.js +14 -17
  88. package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.d.ts +32 -0
  89. package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.js +198 -0
  90. package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +268 -0
  91. package/lib/azure-networksecuritygroup/lib/network-security-group.js +248 -0
  92. package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +9 -0
  93. package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +151 -0
  94. package/lib/azure-networksecuritygroup/test/network-security-group.spec.d.ts +8 -0
  95. package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +652 -0
  96. package/lib/azure-publicipaddress/index.d.ts +6 -0
  97. package/lib/azure-publicipaddress/index.js +23 -0
  98. package/lib/azure-publicipaddress/lib/index.d.ts +9 -0
  99. package/lib/azure-publicipaddress/lib/index.js +19 -0
  100. package/lib/azure-publicipaddress/lib/public-ip-address-schemas.d.ts +32 -0
  101. package/lib/azure-publicipaddress/lib/public-ip-address-schemas.js +227 -0
  102. package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +256 -0
  103. package/lib/azure-publicipaddress/lib/public-ip-address.js +267 -0
  104. package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +9 -0
  105. package/lib/azure-publicipaddress/test/public-ip-address.integ.js +75 -0
  106. package/lib/azure-publicipaddress/test/public-ip-address.spec.d.ts +15 -0
  107. package/lib/azure-publicipaddress/test/public-ip-address.spec.js +498 -0
  108. package/lib/azure-resourcegroup/index.d.ts +37 -0
  109. package/lib/azure-resourcegroup/index.js +39 -1
  110. package/lib/azure-resourcegroup/lib/index.d.ts +44 -0
  111. package/lib/azure-resourcegroup/lib/index.js +43 -1
  112. package/lib/azure-resourcegroup/lib/resource-group-schemas.d.ts +40 -0
  113. package/lib/azure-resourcegroup/lib/resource-group-schemas.js +243 -0
  114. package/lib/azure-resourcegroup/lib/resource-group.d.ts +170 -46
  115. package/lib/azure-resourcegroup/lib/resource-group.js +222 -56
  116. package/lib/azure-resourcegroup/test/resource-group.integ.d.ts +9 -0
  117. package/lib/azure-resourcegroup/test/resource-group.integ.js +72 -0
  118. package/lib/azure-resourcegroup/test/resource-group.spec.d.ts +9 -0
  119. package/lib/azure-resourcegroup/test/resource-group.spec.js +554 -0
  120. package/lib/azure-storageaccount/index.d.ts +19 -0
  121. package/lib/azure-storageaccount/index.js +20 -1
  122. package/lib/azure-storageaccount/lib/index.d.ts +8 -5
  123. package/lib/azure-storageaccount/lib/index.js +9 -6
  124. package/lib/azure-storageaccount/lib/storage-account-schemas.d.ts +138 -0
  125. package/lib/azure-storageaccount/lib/storage-account-schemas.js +378 -0
  126. package/lib/azure-storageaccount/lib/storage-account.d.ts +348 -0
  127. package/lib/azure-storageaccount/lib/storage-account.js +365 -0
  128. package/lib/azure-storageaccount/test/storage-account.integ.d.ts +9 -0
  129. package/lib/azure-storageaccount/test/storage-account.integ.js +151 -0
  130. package/lib/azure-storageaccount/test/storage-account.spec.d.ts +4 -0
  131. package/lib/azure-storageaccount/test/storage-account.spec.js +315 -0
  132. package/lib/azure-subnet/index.d.ts +4 -0
  133. package/lib/azure-subnet/index.js +21 -0
  134. package/lib/azure-subnet/lib/index.d.ts +5 -0
  135. package/lib/azure-subnet/lib/index.js +22 -0
  136. package/lib/azure-subnet/lib/subnet-schemas.d.ts +32 -0
  137. package/lib/azure-subnet/lib/subnet-schemas.js +237 -0
  138. package/lib/azure-subnet/lib/subnet.d.ts +285 -0
  139. package/lib/azure-subnet/lib/subnet.js +254 -0
  140. package/lib/azure-subnet/test/subnet.integ.d.ts +11 -0
  141. package/lib/azure-subnet/test/subnet.integ.js +80 -0
  142. package/lib/azure-subnet/test/subnet.spec.d.ts +8 -0
  143. package/lib/azure-subnet/test/subnet.spec.js +396 -0
  144. package/lib/azure-virtualmachine/index.d.ts +6 -0
  145. package/lib/azure-virtualmachine/index.js +7 -1
  146. package/lib/azure-virtualmachine/lib/index.d.ts +11 -2
  147. package/lib/azure-virtualmachine/lib/index.js +22 -3
  148. package/lib/azure-virtualmachine/lib/virtual-machine-schemas.d.ts +327 -0
  149. package/lib/azure-virtualmachine/lib/virtual-machine-schemas.js +544 -0
  150. package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +377 -0
  151. package/lib/azure-virtualmachine/lib/virtual-machine.js +462 -0
  152. package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +9 -0
  153. package/lib/azure-virtualmachine/test/virtual-machine.integ.js +220 -0
  154. package/lib/azure-virtualmachine/test/virtual-machine.spec.d.ts +9 -0
  155. package/lib/azure-virtualmachine/test/virtual-machine.spec.js +1032 -0
  156. package/lib/azure-virtualnetwork/index.d.ts +9 -0
  157. package/lib/azure-virtualnetwork/index.js +11 -1
  158. package/lib/azure-virtualnetwork/lib/index.d.ts +9 -2
  159. package/lib/azure-virtualnetwork/lib/index.js +20 -17
  160. package/lib/azure-virtualnetwork/lib/virtual-network-schemas.d.ts +32 -0
  161. package/lib/azure-virtualnetwork/lib/virtual-network-schemas.js +236 -0
  162. package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +213 -0
  163. package/lib/azure-virtualnetwork/lib/virtual-network.js +245 -0
  164. package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +9 -0
  165. package/lib/azure-virtualnetwork/test/virtual-network.integ.js +91 -0
  166. package/lib/azure-virtualnetwork/test/virtual-network.spec.d.ts +8 -0
  167. package/lib/azure-virtualnetwork/test/virtual-network.spec.js +398 -0
  168. package/lib/azure-vmss/index.d.ts +6 -0
  169. package/lib/azure-vmss/index.js +23 -0
  170. package/lib/azure-vmss/lib/index.d.ts +9 -0
  171. package/lib/azure-vmss/lib/index.js +39 -0
  172. package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +258 -0
  173. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +503 -0
  174. package/lib/azure-vmss/lib/vmss-schemas.d.ts +472 -0
  175. package/lib/azure-vmss/lib/vmss-schemas.js +444 -0
  176. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +15 -0
  177. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +261 -0
  178. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.d.ts +8 -0
  179. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +997 -0
  180. package/lib/core-azure/lib/azapi/azapi-exports.d.ts +16 -0
  181. package/lib/core-azure/lib/azapi/azapi-exports.js +38 -0
  182. package/lib/core-azure/lib/azapi/azapi-resource.d.ts +481 -0
  183. package/lib/core-azure/lib/azapi/azapi-resource.js +505 -0
  184. package/lib/core-azure/lib/azapi/azapi-resource.spec.d.ts +7 -0
  185. package/lib/core-azure/lib/azapi/azapi-resource.spec.js +545 -0
  186. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +74 -0
  187. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +203 -0
  188. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +341 -0
  189. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +671 -0
  190. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +344 -0
  191. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +583 -0
  192. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +128 -0
  193. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +281 -0
  194. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +285 -0
  195. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +491 -0
  196. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +518 -0
  197. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +839 -0
  198. package/lib/core-azure/lib/azapi/providers-azapi/index.d.ts +10 -0
  199. package/lib/core-azure/lib/azapi/providers-azapi/index.js +15 -0
  200. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.d.ts +0 -0
  201. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +13 -0
  202. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +447 -0
  203. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +844 -0
  204. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +689 -0
  205. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +1140 -0
  206. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +400 -0
  207. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +706 -0
  208. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +450 -0
  209. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +788 -0
  210. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.d.ts +215 -0
  211. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +567 -0
  212. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.spec.d.ts +7 -0
  213. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.spec.js +630 -0
  214. package/lib/core-azure/lib/index.d.ts +18 -3
  215. package/lib/core-azure/lib/index.js +24 -4
  216. package/lib/core-azure/lib/version-manager/api-version-manager.d.ts +253 -0
  217. package/lib/core-azure/lib/version-manager/api-version-manager.js +509 -0
  218. package/lib/core-azure/lib/version-manager/api-version-manager.spec.d.ts +7 -0
  219. package/lib/core-azure/lib/version-manager/api-version-manager.spec.js +510 -0
  220. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.d.ts +669 -0
  221. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +202 -0
  222. package/lib/core-azure/lib/version-manager/version-manager.d.ts +9 -0
  223. package/lib/core-azure/lib/version-manager/version-manager.js +23 -0
  224. package/lib/index.d.ts +54 -13
  225. package/lib/index.js +76 -15
  226. package/lib/testing/index.d.ts +124 -1
  227. package/lib/testing/index.js +480 -4
  228. package/lib/testing/lib/cleanup.d.ts +229 -0
  229. package/lib/testing/lib/cleanup.js +331 -0
  230. package/lib/testing/lib/metadata.d.ts +151 -0
  231. package/lib/testing/lib/metadata.js +180 -0
  232. package/lib/testing/lib/naming.d.ts +96 -0
  233. package/lib/testing/lib/naming.js +336 -0
  234. package/lib/util/azureTenantIdHelpers.js +3 -4
  235. package/lib/util/randomName.js +2 -3
  236. package/node_modules/uuid/LICENSE.md +9 -0
  237. package/node_modules/uuid/README.md +510 -0
  238. package/node_modules/uuid/dist/cjs/index.d.ts +15 -0
  239. package/node_modules/uuid/dist/cjs/index.js +31 -0
  240. package/node_modules/uuid/dist/cjs/max.d.ts +2 -0
  241. package/node_modules/uuid/dist/cjs/max.js +3 -0
  242. package/node_modules/uuid/dist/cjs/md5.d.ts +4 -0
  243. package/node_modules/uuid/dist/cjs/md5.js +13 -0
  244. package/node_modules/uuid/dist/cjs/native.d.ts +6 -0
  245. package/node_modules/uuid/dist/cjs/native.js +4 -0
  246. package/node_modules/uuid/dist/cjs/nil.d.ts +2 -0
  247. package/node_modules/uuid/dist/cjs/nil.js +3 -0
  248. package/node_modules/uuid/dist/cjs/package.json +1 -0
  249. package/node_modules/uuid/dist/cjs/parse.d.ts +2 -0
  250. package/node_modules/uuid/dist/cjs/parse.js +11 -0
  251. package/node_modules/uuid/dist/cjs/regex.d.ts +2 -0
  252. package/node_modules/uuid/dist/cjs/regex.js +3 -0
  253. package/node_modules/uuid/dist/cjs/rng.d.ts +1 -0
  254. package/node_modules/uuid/dist/cjs/rng.js +13 -0
  255. package/node_modules/uuid/dist/cjs/sha1.d.ts +4 -0
  256. package/node_modules/uuid/dist/cjs/sha1.js +13 -0
  257. package/node_modules/uuid/dist/cjs/stringify.d.ts +3 -0
  258. package/node_modules/uuid/dist/cjs/stringify.js +39 -0
  259. package/node_modules/uuid/dist/cjs/types.d.ts +21 -0
  260. package/node_modules/uuid/dist/cjs/types.js +2 -0
  261. package/node_modules/uuid/dist/cjs/uuid-bin.d.ts +1 -0
  262. package/node_modules/uuid/dist/cjs/uuid-bin.js +72 -0
  263. package/node_modules/uuid/dist/cjs/v1.d.ts +11 -0
  264. package/node_modules/uuid/dist/cjs/v1.js +87 -0
  265. package/node_modules/uuid/dist/cjs/v1ToV6.d.ts +2 -0
  266. package/node_modules/uuid/dist/cjs/v1ToV6.js +13 -0
  267. package/node_modules/uuid/dist/cjs/v3.d.ts +9 -0
  268. package/node_modules/uuid/dist/cjs/v3.js +14 -0
  269. package/node_modules/uuid/dist/cjs/v35.d.ts +7 -0
  270. package/node_modules/uuid/dist/cjs/v35.js +41 -0
  271. package/node_modules/uuid/dist/cjs/v4.d.ts +4 -0
  272. package/node_modules/uuid/dist/cjs/v4.js +29 -0
  273. package/node_modules/uuid/dist/cjs/v5.d.ts +9 -0
  274. package/node_modules/uuid/dist/cjs/v5.js +14 -0
  275. package/node_modules/uuid/dist/cjs/v6.d.ts +4 -0
  276. package/node_modules/uuid/dist/cjs/v6.js +19 -0
  277. package/node_modules/uuid/dist/cjs/v6ToV1.d.ts +2 -0
  278. package/node_modules/uuid/dist/cjs/v6ToV1.js +13 -0
  279. package/node_modules/uuid/dist/cjs/v7.d.ts +9 -0
  280. package/node_modules/uuid/dist/cjs/v7.js +69 -0
  281. package/node_modules/uuid/dist/cjs/validate.d.ts +2 -0
  282. package/node_modules/uuid/dist/cjs/validate.js +7 -0
  283. package/node_modules/uuid/dist/cjs/version.d.ts +2 -0
  284. package/node_modules/uuid/dist/cjs/version.js +10 -0
  285. package/node_modules/uuid/dist/cjs-browser/index.d.ts +15 -0
  286. package/node_modules/uuid/dist/cjs-browser/index.js +31 -0
  287. package/node_modules/uuid/dist/cjs-browser/max.d.ts +2 -0
  288. package/node_modules/uuid/dist/cjs-browser/max.js +3 -0
  289. package/node_modules/uuid/dist/cjs-browser/md5.d.ts +2 -0
  290. package/node_modules/uuid/dist/cjs-browser/md5.js +137 -0
  291. package/node_modules/uuid/dist/cjs-browser/native.d.ts +4 -0
  292. package/node_modules/uuid/dist/cjs-browser/native.js +4 -0
  293. package/node_modules/uuid/dist/cjs-browser/nil.d.ts +2 -0
  294. package/node_modules/uuid/dist/cjs-browser/nil.js +3 -0
  295. package/node_modules/uuid/dist/cjs-browser/package.json +1 -0
  296. package/node_modules/uuid/dist/cjs-browser/parse.d.ts +2 -0
  297. package/node_modules/uuid/dist/cjs-browser/parse.js +11 -0
  298. package/node_modules/uuid/dist/cjs-browser/regex.d.ts +2 -0
  299. package/node_modules/uuid/dist/cjs-browser/regex.js +3 -0
  300. package/node_modules/uuid/dist/cjs-browser/rng.d.ts +1 -0
  301. package/node_modules/uuid/dist/cjs-browser/rng.js +14 -0
  302. package/node_modules/uuid/dist/cjs-browser/sha1.d.ts +2 -0
  303. package/node_modules/uuid/dist/cjs-browser/sha1.js +72 -0
  304. package/node_modules/uuid/dist/cjs-browser/stringify.d.ts +3 -0
  305. package/node_modules/uuid/dist/cjs-browser/stringify.js +39 -0
  306. package/node_modules/uuid/dist/cjs-browser/types.d.ts +21 -0
  307. package/node_modules/uuid/dist/cjs-browser/types.js +2 -0
  308. package/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts +1 -0
  309. package/node_modules/uuid/dist/cjs-browser/uuid-bin.js +72 -0
  310. package/node_modules/uuid/dist/cjs-browser/v1.d.ts +11 -0
  311. package/node_modules/uuid/dist/cjs-browser/v1.js +87 -0
  312. package/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts +2 -0
  313. package/node_modules/uuid/dist/cjs-browser/v1ToV6.js +13 -0
  314. package/node_modules/uuid/dist/cjs-browser/v3.d.ts +9 -0
  315. package/node_modules/uuid/dist/cjs-browser/v3.js +14 -0
  316. package/node_modules/uuid/dist/cjs-browser/v35.d.ts +7 -0
  317. package/node_modules/uuid/dist/cjs-browser/v35.js +41 -0
  318. package/node_modules/uuid/dist/cjs-browser/v4.d.ts +4 -0
  319. package/node_modules/uuid/dist/cjs-browser/v4.js +29 -0
  320. package/node_modules/uuid/dist/cjs-browser/v5.d.ts +9 -0
  321. package/node_modules/uuid/dist/cjs-browser/v5.js +14 -0
  322. package/node_modules/uuid/dist/cjs-browser/v6.d.ts +4 -0
  323. package/node_modules/uuid/dist/cjs-browser/v6.js +19 -0
  324. package/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts +2 -0
  325. package/node_modules/uuid/dist/cjs-browser/v6ToV1.js +13 -0
  326. package/node_modules/uuid/dist/cjs-browser/v7.d.ts +9 -0
  327. package/node_modules/uuid/dist/cjs-browser/v7.js +69 -0
  328. package/node_modules/uuid/dist/cjs-browser/validate.d.ts +2 -0
  329. package/node_modules/uuid/dist/cjs-browser/validate.js +7 -0
  330. package/node_modules/uuid/dist/cjs-browser/version.d.ts +2 -0
  331. package/node_modules/uuid/dist/cjs-browser/version.js +10 -0
  332. package/node_modules/uuid/dist/esm/bin/uuid +2 -0
  333. package/node_modules/uuid/dist/esm/index.d.ts +15 -0
  334. package/node_modules/uuid/dist/esm/index.js +14 -0
  335. package/node_modules/uuid/dist/esm/max.d.ts +2 -0
  336. package/node_modules/uuid/dist/esm/max.js +1 -0
  337. package/node_modules/uuid/dist/esm/md5.d.ts +4 -0
  338. package/node_modules/uuid/dist/esm/md5.js +11 -0
  339. package/node_modules/uuid/dist/esm/native.d.ts +6 -0
  340. package/node_modules/uuid/dist/esm/native.js +2 -0
  341. package/node_modules/uuid/dist/esm/nil.d.ts +2 -0
  342. package/node_modules/uuid/dist/esm/nil.js +1 -0
  343. package/node_modules/uuid/dist/esm/parse.d.ts +2 -0
  344. package/node_modules/uuid/dist/esm/parse.js +9 -0
  345. package/node_modules/uuid/dist/esm/regex.d.ts +2 -0
  346. package/node_modules/uuid/dist/esm/regex.js +1 -0
  347. package/node_modules/uuid/dist/esm/rng.d.ts +1 -0
  348. package/node_modules/uuid/dist/esm/rng.js +10 -0
  349. package/node_modules/uuid/dist/esm/sha1.d.ts +4 -0
  350. package/node_modules/uuid/dist/esm/sha1.js +11 -0
  351. package/node_modules/uuid/dist/esm/stringify.d.ts +3 -0
  352. package/node_modules/uuid/dist/esm/stringify.js +35 -0
  353. package/node_modules/uuid/dist/esm/types.d.ts +21 -0
  354. package/node_modules/uuid/dist/esm/types.js +1 -0
  355. package/node_modules/uuid/dist/esm/uuid-bin.d.ts +1 -0
  356. package/node_modules/uuid/dist/esm/uuid-bin.js +70 -0
  357. package/node_modules/uuid/dist/esm/v1.d.ts +11 -0
  358. package/node_modules/uuid/dist/esm/v1.js +83 -0
  359. package/node_modules/uuid/dist/esm/v1ToV6.d.ts +2 -0
  360. package/node_modules/uuid/dist/esm/v1ToV6.js +10 -0
  361. package/node_modules/uuid/dist/esm/v3.d.ts +9 -0
  362. package/node_modules/uuid/dist/esm/v3.js +9 -0
  363. package/node_modules/uuid/dist/esm/v35.d.ts +7 -0
  364. package/node_modules/uuid/dist/esm/v35.js +36 -0
  365. package/node_modules/uuid/dist/esm/v4.d.ts +4 -0
  366. package/node_modules/uuid/dist/esm/v4.js +27 -0
  367. package/node_modules/uuid/dist/esm/v5.d.ts +9 -0
  368. package/node_modules/uuid/dist/esm/v5.js +9 -0
  369. package/node_modules/uuid/dist/esm/v6.d.ts +4 -0
  370. package/node_modules/uuid/dist/esm/v6.js +17 -0
  371. package/node_modules/uuid/dist/esm/v6ToV1.d.ts +2 -0
  372. package/node_modules/uuid/dist/esm/v6ToV1.js +10 -0
  373. package/node_modules/uuid/dist/esm/v7.d.ts +9 -0
  374. package/node_modules/uuid/dist/esm/v7.js +65 -0
  375. package/node_modules/uuid/dist/esm/validate.d.ts +2 -0
  376. package/node_modules/uuid/dist/esm/validate.js +5 -0
  377. package/node_modules/uuid/dist/esm/version.d.ts +2 -0
  378. package/node_modules/uuid/dist/esm/version.js +8 -0
  379. package/node_modules/uuid/dist/esm-browser/index.d.ts +15 -0
  380. package/node_modules/uuid/dist/esm-browser/index.js +14 -0
  381. package/node_modules/uuid/dist/esm-browser/max.d.ts +2 -0
  382. package/node_modules/uuid/dist/esm-browser/max.js +1 -0
  383. package/node_modules/uuid/dist/esm-browser/md5.d.ts +2 -0
  384. package/node_modules/uuid/dist/esm-browser/md5.js +135 -0
  385. package/node_modules/uuid/dist/esm-browser/native.d.ts +4 -0
  386. package/node_modules/uuid/dist/esm-browser/native.js +2 -0
  387. package/node_modules/uuid/dist/esm-browser/nil.d.ts +2 -0
  388. package/node_modules/uuid/dist/esm-browser/nil.js +1 -0
  389. package/node_modules/uuid/dist/esm-browser/parse.d.ts +2 -0
  390. package/node_modules/uuid/dist/esm-browser/parse.js +9 -0
  391. package/node_modules/uuid/dist/esm-browser/regex.d.ts +2 -0
  392. package/node_modules/uuid/dist/esm-browser/regex.js +1 -0
  393. package/node_modules/uuid/dist/esm-browser/rng.d.ts +1 -0
  394. package/node_modules/uuid/dist/esm-browser/rng.js +11 -0
  395. package/node_modules/uuid/dist/esm-browser/sha1.d.ts +2 -0
  396. package/node_modules/uuid/dist/esm-browser/sha1.js +70 -0
  397. package/node_modules/uuid/dist/esm-browser/stringify.d.ts +3 -0
  398. package/node_modules/uuid/dist/esm-browser/stringify.js +35 -0
  399. package/node_modules/uuid/dist/esm-browser/types.d.ts +21 -0
  400. package/node_modules/uuid/dist/esm-browser/types.js +1 -0
  401. package/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts +1 -0
  402. package/node_modules/uuid/dist/esm-browser/uuid-bin.js +70 -0
  403. package/node_modules/uuid/dist/esm-browser/v1.d.ts +11 -0
  404. package/node_modules/uuid/dist/esm-browser/v1.js +83 -0
  405. package/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts +2 -0
  406. package/node_modules/uuid/dist/esm-browser/v1ToV6.js +10 -0
  407. package/node_modules/uuid/dist/esm-browser/v3.d.ts +9 -0
  408. package/node_modules/uuid/dist/esm-browser/v3.js +9 -0
  409. package/node_modules/uuid/dist/esm-browser/v35.d.ts +7 -0
  410. package/node_modules/uuid/dist/esm-browser/v35.js +36 -0
  411. package/node_modules/uuid/dist/esm-browser/v4.d.ts +4 -0
  412. package/node_modules/uuid/dist/esm-browser/v4.js +27 -0
  413. package/node_modules/uuid/dist/esm-browser/v5.d.ts +9 -0
  414. package/node_modules/uuid/dist/esm-browser/v5.js +9 -0
  415. package/node_modules/uuid/dist/esm-browser/v6.d.ts +4 -0
  416. package/node_modules/uuid/dist/esm-browser/v6.js +17 -0
  417. package/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts +2 -0
  418. package/node_modules/uuid/dist/esm-browser/v6ToV1.js +10 -0
  419. package/node_modules/uuid/dist/esm-browser/v7.d.ts +9 -0
  420. package/node_modules/uuid/dist/esm-browser/v7.js +65 -0
  421. package/node_modules/uuid/dist/esm-browser/validate.d.ts +2 -0
  422. package/node_modules/uuid/dist/esm-browser/validate.js +5 -0
  423. package/node_modules/uuid/dist/esm-browser/version.d.ts +2 -0
  424. package/node_modules/uuid/dist/esm-browser/version.js +8 -0
  425. package/node_modules/uuid/package.json +132 -0
  426. package/package.json +51 -33
  427. package/scripts/cleanup-test-resources.ts +369 -0
  428. package/cdktf.out/manifest.json +0 -13
  429. package/cdktf.out/stacks/testAzureActionGroup/cdk.tf.json +0 -111
  430. package/cdktf.out/stacks/testAzureApplicationGateway/cdk.tf.json +0 -588
  431. package/cdktf.out/stacks/testAzureApplicationInsights/cdk.tf.json +0 -245
  432. package/cdktf.out/stacks/testAzureContainerRegistry/cdk.tf.json +0 -179
  433. package/cdktf.out/stacks/testAzureEventhub/cdk.tf.json +0 -236
  434. package/cdktf.out/stacks/testAzureKeyVault/cdk.tf.json +0 -436
  435. package/cdktf.out/stacks/testAzureKubernetesCluster/cdk.tf.json +0 -152
  436. package/cdktf.out/stacks/testAzureKusto/cdk.tf.json +0 -209
  437. package/cdktf.out/stacks/testAzureLinuxFunctionApp/cdk.tf.json +0 -439
  438. package/cdktf.out/stacks/testAzureLinuxVirtualMachineExample/cdk.tf.json +0 -283
  439. package/cdktf.out/stacks/testAzureLinuxVirtualMachineScaleSetExample/cdk.tf.json +0 -261
  440. package/cdktf.out/stacks/testAzureLogAnalytics/cdk.tf.json +0 -309
  441. package/cdktf.out/stacks/testAzureMetricAlert/cdk.tf.json +0 -161
  442. package/cdktf.out/stacks/testAzureNetworkSecurityGroup/cdk.tf.json +0 -271
  443. package/cdktf.out/stacks/testAzureQueryRuleAlert/cdk.tf.json +0 -122
  444. package/cdktf.out/stacks/testAzureResourceGroup/cdk.tf.json +0 -88
  445. package/cdktf.out/stacks/testAzureStorageAccount/cdk.tf.json +0 -339
  446. package/cdktf.out/stacks/testAzureVirtualNetwork/cdk.tf.json +0 -264
  447. package/cdktf.out/stacks/testAzureWindowVirtualMachineScaleSetExample/cdk.tf.json +0 -261
  448. package/cdktf.out/stacks/testAzureWindowsVirtualMachineExample/cdk.tf.json +0 -280
  449. package/cdktf.out/stacks/testExampleAzureResource/cdk.tf.json +0 -167
  450. package/lib/azure-actiongroup/lib/actiongroup.d.ts +0 -49
  451. package/lib/azure-actiongroup/lib/actiongroup.js +0 -85
  452. package/lib/azure-actiongroup/model/action-group-props.d.ts +0 -47
  453. package/lib/azure-actiongroup/model/action-group-props.js +0 -3
  454. package/lib/azure-actiongroup/model/arm-role-receiver-props.d.ts +0 -20
  455. package/lib/azure-actiongroup/model/arm-role-receiver-props.js +0 -3
  456. package/lib/azure-actiongroup/model/azure-app-push-receiver-props.d.ts +0 -14
  457. package/lib/azure-actiongroup/model/azure-app-push-receiver-props.js +0 -3
  458. package/lib/azure-actiongroup/model/email-receiver-props.d.ts +0 -19
  459. package/lib/azure-actiongroup/model/email-receiver-props.js +0 -3
  460. package/lib/azure-actiongroup/model/eventhub-receiver-props.d.ts +0 -23
  461. package/lib/azure-actiongroup/model/eventhub-receiver-props.js +0 -3
  462. package/lib/azure-actiongroup/model/function.d.ts +0 -40
  463. package/lib/azure-actiongroup/model/function.js +0 -118
  464. package/lib/azure-actiongroup/model/index.d.ts +0 -10
  465. package/lib/azure-actiongroup/model/index.js +0 -27
  466. package/lib/azure-actiongroup/model/logic-app-receiver-props.d.ts +0 -23
  467. package/lib/azure-actiongroup/model/logic-app-receiver-props.js +0 -3
  468. package/lib/azure-actiongroup/model/sms-receiver-props.d.ts +0 -18
  469. package/lib/azure-actiongroup/model/sms-receiver-props.js +0 -3
  470. package/lib/azure-actiongroup/model/voice-receiver-props.d.ts +0 -18
  471. package/lib/azure-actiongroup/model/voice-receiver-props.js +0 -3
  472. package/lib/azure-actiongroup/model/webhook-receiver-props.d.ts +0 -18
  473. package/lib/azure-actiongroup/model/webhook-receiver-props.js +0 -3
  474. package/lib/azure-actiongroup/test/AzureActionGroup.spec.d.ts +0 -1
  475. package/lib/azure-actiongroup/test/AzureActionGroup.spec.js +0 -294
  476. package/lib/azure-actiongroup/test/ExampleAzureActionGroup.d.ts +0 -5
  477. package/lib/azure-actiongroup/test/ExampleAzureActionGroup.js +0 -66
  478. package/lib/azure-applicationgateway/index.d.ts +0 -1
  479. package/lib/azure-applicationgateway/index.js +0 -18
  480. package/lib/azure-applicationgateway/lib/gateway.d.ts +0 -248
  481. package/lib/azure-applicationgateway/lib/gateway.js +0 -199
  482. package/lib/azure-applicationgateway/lib/index.d.ts +0 -1
  483. package/lib/azure-applicationgateway/lib/index.js +0 -18
  484. package/lib/azure-applicationgateway/test/AzureApplicationGateway.spec.d.ts +0 -1
  485. package/lib/azure-applicationgateway/test/AzureApplicationGateway.spec.js +0 -106
  486. package/lib/azure-applicationgateway/test/ExampleAzureApplicationGateway.d.ts +0 -5
  487. package/lib/azure-applicationgateway/test/ExampleAzureApplicationGateway.js +0 -267
  488. package/lib/azure-applicationinsights/index.d.ts +0 -1
  489. package/lib/azure-applicationinsights/index.js +0 -18
  490. package/lib/azure-applicationinsights/lib/appinsights.d.ts +0 -110
  491. package/lib/azure-applicationinsights/lib/appinsights.js +0 -134
  492. package/lib/azure-applicationinsights/lib/index.d.ts +0 -1
  493. package/lib/azure-applicationinsights/lib/index.js +0 -18
  494. package/lib/azure-applicationinsights/test/AzureAppInsights.spec.d.ts +0 -1
  495. package/lib/azure-applicationinsights/test/AzureAppInsights.spec.js +0 -55
  496. package/lib/azure-applicationinsights/test/ExampleAzureApplicationInsights.d.ts +0 -5
  497. package/lib/azure-applicationinsights/test/ExampleAzureApplicationInsights.js +0 -87
  498. package/lib/azure-containerregistry/index.d.ts +0 -1
  499. package/lib/azure-containerregistry/index.js +0 -18
  500. package/lib/azure-containerregistry/lib/index.d.ts +0 -1
  501. package/lib/azure-containerregistry/lib/index.js +0 -18
  502. package/lib/azure-containerregistry/lib/registry.d.ts +0 -70
  503. package/lib/azure-containerregistry/lib/registry.js +0 -76
  504. package/lib/azure-containerregistry/test/AzureContainerRegistry.spec.d.ts +0 -1
  505. package/lib/azure-containerregistry/test/AzureContainerRegistry.spec.js +0 -50
  506. package/lib/azure-containerregistry/test/ExampleAzureContainerRegistry.d.ts +0 -5
  507. package/lib/azure-containerregistry/test/ExampleAzureContainerRegistry.js +0 -57
  508. package/lib/azure-datalake/index.d.ts +0 -1
  509. package/lib/azure-datalake/index.js +0 -18
  510. package/lib/azure-datalake/lib/datalake.d.ts +0 -64
  511. package/lib/azure-datalake/lib/datalake.js +0 -92
  512. package/lib/azure-datalake/lib/filesystem.d.ts +0 -70
  513. package/lib/azure-datalake/lib/filesystem.js +0 -83
  514. package/lib/azure-datalake/lib/index.d.ts +0 -3
  515. package/lib/azure-datalake/lib/index.js +0 -20
  516. package/lib/azure-datalake/lib/path.d.ts +0 -49
  517. package/lib/azure-datalake/lib/path.js +0 -51
  518. package/lib/azure-eventhub/index.d.ts +0 -1
  519. package/lib/azure-eventhub/index.js +0 -18
  520. package/lib/azure-eventhub/lib/authorization.d.ts +0 -58
  521. package/lib/azure-eventhub/lib/authorization.js +0 -84
  522. package/lib/azure-eventhub/lib/cluster.d.ts +0 -56
  523. package/lib/azure-eventhub/lib/cluster.js +0 -64
  524. package/lib/azure-eventhub/lib/consumer.d.ts +0 -54
  525. package/lib/azure-eventhub/lib/consumer.js +0 -59
  526. package/lib/azure-eventhub/lib/index.d.ts +0 -6
  527. package/lib/azure-eventhub/lib/index.js +0 -23
  528. package/lib/azure-eventhub/lib/instance.d.ts +0 -164
  529. package/lib/azure-eventhub/lib/instance.js +0 -184
  530. package/lib/azure-eventhub/lib/kusto-connection.d.ts +0 -109
  531. package/lib/azure-eventhub/lib/kusto-connection.js +0 -76
  532. package/lib/azure-eventhub/lib/namespace.d.ts +0 -151
  533. package/lib/azure-eventhub/lib/namespace.js +0 -131
  534. package/lib/azure-eventhub/test/AzureEventhub.spec.d.ts +0 -1
  535. package/lib/azure-eventhub/test/AzureEventhub.spec.js +0 -56
  536. package/lib/azure-eventhub/test/ExampleAzureEventhub.d.ts +0 -5
  537. package/lib/azure-eventhub/test/ExampleAzureEventhub.js +0 -72
  538. package/lib/azure-functionapp/index.d.ts +0 -1
  539. package/lib/azure-functionapp/index.js +0 -18
  540. package/lib/azure-functionapp/lib/functionapplinux.d.ts +0 -211
  541. package/lib/azure-functionapp/lib/functionapplinux.js +0 -141
  542. package/lib/azure-functionapp/lib/index.d.ts +0 -1
  543. package/lib/azure-functionapp/lib/index.js +0 -18
  544. package/lib/azure-functionapp/serviceplanskus.d.ts +0 -70
  545. package/lib/azure-functionapp/serviceplanskus.js +0 -81
  546. package/lib/azure-functionapp/test/AzureLinuxFunctionApp.spec.d.ts +0 -1
  547. package/lib/azure-functionapp/test/AzureLinuxFunctionApp.spec.js +0 -48
  548. package/lib/azure-functionapp/test/ExampleAzureLinuxFunctionApp.d.ts +0 -5
  549. package/lib/azure-functionapp/test/ExampleAzureLinuxFunctionApp.js +0 -123
  550. package/lib/azure-keyvault/index.d.ts +0 -1
  551. package/lib/azure-keyvault/index.js +0 -18
  552. package/lib/azure-keyvault/lib/certificate.d.ts +0 -133
  553. package/lib/azure-keyvault/lib/certificate.js +0 -146
  554. package/lib/azure-keyvault/lib/index.d.ts +0 -5
  555. package/lib/azure-keyvault/lib/index.js +0 -22
  556. package/lib/azure-keyvault/lib/key.d.ts +0 -72
  557. package/lib/azure-keyvault/lib/key.js +0 -69
  558. package/lib/azure-keyvault/lib/policy.d.ts +0 -76
  559. package/lib/azure-keyvault/lib/policy.js +0 -56
  560. package/lib/azure-keyvault/lib/secret.d.ts +0 -70
  561. package/lib/azure-keyvault/lib/secret.js +0 -64
  562. package/lib/azure-keyvault/lib/vault.d.ts +0 -282
  563. package/lib/azure-keyvault/lib/vault.js +0 -392
  564. package/lib/azure-keyvault/test/AzureKeyVault.spec.d.ts +0 -1
  565. package/lib/azure-keyvault/test/AzureKeyVault.spec.js +0 -63
  566. package/lib/azure-keyvault/test/ExampleAzureKeyVault.d.ts +0 -5
  567. package/lib/azure-keyvault/test/ExampleAzureKeyVault.js +0 -112
  568. package/lib/azure-kubernetes/index.d.ts +0 -1
  569. package/lib/azure-kubernetes/index.js +0 -18
  570. package/lib/azure-kubernetes/lib/cluster.d.ts +0 -93
  571. package/lib/azure-kubernetes/lib/cluster.js +0 -63
  572. package/lib/azure-kubernetes/lib/index.d.ts +0 -1
  573. package/lib/azure-kubernetes/lib/index.js +0 -18
  574. package/lib/azure-kubernetes/test/AzureKubernetesCluster.spec.d.ts +0 -1
  575. package/lib/azure-kubernetes/test/AzureKubernetesCluster.spec.js +0 -56
  576. package/lib/azure-kubernetes/test/ExampleAzureKubernetesCluster.d.ts +0 -5
  577. package/lib/azure-kubernetes/test/ExampleAzureKubernetesCluster.js +0 -65
  578. package/lib/azure-kusto/index.d.ts +0 -1
  579. package/lib/azure-kusto/index.js +0 -18
  580. package/lib/azure-kusto/lib/cluster.d.ts +0 -136
  581. package/lib/azure-kusto/lib/cluster.js +0 -138
  582. package/lib/azure-kusto/lib/compute-specification.d.ts +0 -71
  583. package/lib/azure-kusto/lib/compute-specification.js +0 -651
  584. package/lib/azure-kusto/lib/database.d.ts +0 -162
  585. package/lib/azure-kusto/lib/database.js +0 -180
  586. package/lib/azure-kusto/lib/index.d.ts +0 -3
  587. package/lib/azure-kusto/lib/index.js +0 -20
  588. package/lib/azure-kusto/test/AzureKusto.spec.d.ts +0 -1
  589. package/lib/azure-kusto/test/AzureKusto.spec.js +0 -50
  590. package/lib/azure-kusto/test/ExampleAzureKusto.d.ts +0 -5
  591. package/lib/azure-kusto/test/ExampleAzureKusto.js +0 -71
  592. package/lib/azure-loganalytics/index.d.ts +0 -1
  593. package/lib/azure-loganalytics/index.js +0 -18
  594. package/lib/azure-loganalytics/lib/index.d.ts +0 -1
  595. package/lib/azure-loganalytics/lib/index.js +0 -18
  596. package/lib/azure-loganalytics/lib/workspace.d.ts +0 -163
  597. package/lib/azure-loganalytics/lib/workspace.js +0 -126
  598. package/lib/azure-loganalytics/test/AzureLogAnalytics.spec.d.ts +0 -1
  599. package/lib/azure-loganalytics/test/AzureLogAnalytics.spec.js +0 -50
  600. package/lib/azure-loganalytics/test/ExampleAzureLogAnalytics.d.ts +0 -5
  601. package/lib/azure-loganalytics/test/ExampleAzureLogAnalytics.js +0 -115
  602. package/lib/azure-metricalert/model/action-props.d.ts +0 -11
  603. package/lib/azure-metricalert/model/action-props.js +0 -3
  604. package/lib/azure-metricalert/model/criteria-base-props.d.ts +0 -38
  605. package/lib/azure-metricalert/model/criteria-base-props.js +0 -3
  606. package/lib/azure-metricalert/model/criteria-dimension-props.d.ts +0 -21
  607. package/lib/azure-metricalert/model/criteria-dimension-props.js +0 -3
  608. package/lib/azure-metricalert/model/criteria-props.d.ts +0 -12
  609. package/lib/azure-metricalert/model/criteria-props.js +0 -3
  610. package/lib/azure-metricalert/model/dynamic-criteria-props.d.ts +0 -29
  611. package/lib/azure-metricalert/model/dynamic-criteria-props.js +0 -3
  612. package/lib/azure-metricalert/model/function.d.ts +0 -28
  613. package/lib/azure-metricalert/model/function.js +0 -78
  614. package/lib/azure-metricalert/model/index.d.ts +0 -7
  615. package/lib/azure-metricalert/model/index.js +0 -24
  616. package/lib/azure-metricalert/model/metric-alert-props.d.ts +0 -86
  617. package/lib/azure-metricalert/model/metric-alert-props.js +0 -3
  618. package/lib/azure-metricalert/test/AzureMetricAlert.spec.d.ts +0 -1
  619. package/lib/azure-metricalert/test/AzureMetricAlert.spec.js +0 -63
  620. package/lib/azure-metricalert/test/ExampleAzureMetricAlert.d.ts +0 -5
  621. package/lib/azure-metricalert/test/ExampleAzureMetricAlert.js +0 -81
  622. package/lib/azure-networksecuritygroup/lib/preconfigured-rules.d.ts +0 -77
  623. package/lib/azure-networksecuritygroup/lib/preconfigured-rules.js +0 -608
  624. package/lib/azure-networksecuritygroup/lib/securitygroup.d.ts +0 -190
  625. package/lib/azure-networksecuritygroup/lib/securitygroup.js +0 -172
  626. package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.spec.d.ts +0 -1
  627. package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.spec.js +0 -54
  628. package/lib/azure-networksecuritygroup/test/ExampleAzureNetworkSecurityGroup.d.ts +0 -5
  629. package/lib/azure-networksecuritygroup/test/ExampleAzureNetworkSecurityGroup.js +0 -97
  630. package/lib/azure-queryrulealert/index.d.ts +0 -1
  631. package/lib/azure-queryrulealert/index.js +0 -18
  632. package/lib/azure-queryrulealert/lib/index.d.ts +0 -1
  633. package/lib/azure-queryrulealert/lib/index.js +0 -18
  634. package/lib/azure-queryrulealert/lib/query-rule-alert.d.ts +0 -175
  635. package/lib/azure-queryrulealert/lib/query-rule-alert.js +0 -205
  636. package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.spec.d.ts +0 -1
  637. package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.spec.js +0 -67
  638. package/lib/azure-queryrulealert/test/ExampleAzureQueryRuleAlert.d.ts +0 -5
  639. package/lib/azure-queryrulealert/test/ExampleAzureQueryRuleAlert.js +0 -67
  640. package/lib/azure-resourcegroup/test/AzureResourceGroup.spec.d.ts +0 -1
  641. package/lib/azure-resourcegroup/test/AzureResourceGroup.spec.js +0 -41
  642. package/lib/azure-resourcegroup/test/ExampleAzureResourceGroup.d.ts +0 -5
  643. package/lib/azure-resourcegroup/test/ExampleAzureResourceGroup.js +0 -29
  644. package/lib/azure-storageaccount/lib/account.d.ts +0 -232
  645. package/lib/azure-storageaccount/lib/account.js +0 -225
  646. package/lib/azure-storageaccount/lib/container.d.ts +0 -122
  647. package/lib/azure-storageaccount/lib/container.js +0 -167
  648. package/lib/azure-storageaccount/lib/fileshare.d.ts +0 -105
  649. package/lib/azure-storageaccount/lib/fileshare.js +0 -126
  650. package/lib/azure-storageaccount/lib/queue.d.ts +0 -35
  651. package/lib/azure-storageaccount/lib/queue.js +0 -52
  652. package/lib/azure-storageaccount/lib/table.d.ts +0 -38
  653. package/lib/azure-storageaccount/lib/table.js +0 -55
  654. package/lib/azure-storageaccount/test/AzureStorageAccount.spec.d.ts +0 -1
  655. package/lib/azure-storageaccount/test/AzureStorageAccount.spec.js +0 -45
  656. package/lib/azure-storageaccount/test/ExampleAzureStorageAccount.d.ts +0 -5
  657. package/lib/azure-storageaccount/test/ExampleAzureStorageAccount.js +0 -102
  658. package/lib/azure-virtualmachine/lib/image-references.d.ts +0 -22
  659. package/lib/azure-virtualmachine/lib/image-references.js +0 -128
  660. package/lib/azure-virtualmachine/lib/vm.d.ts +0 -281
  661. package/lib/azure-virtualmachine/lib/vm.js +0 -283
  662. package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.spec.d.ts +0 -1
  663. package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.spec.js +0 -48
  664. package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.spec.d.ts +0 -1
  665. package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.spec.js +0 -50
  666. package/lib/azure-virtualmachine/test/ExampleAzureLinuxVirtualMachine.d.ts +0 -5
  667. package/lib/azure-virtualmachine/test/ExampleAzureLinuxVirtualMachine.js +0 -106
  668. package/lib/azure-virtualmachine/test/ExampleAzureWindowsVirtualMachine.d.ts +0 -5
  669. package/lib/azure-virtualmachine/test/ExampleAzureWindowsVirtualMachine.js +0 -102
  670. package/lib/azure-virtualmachinescaleset/index.d.ts +0 -1
  671. package/lib/azure-virtualmachinescaleset/index.js +0 -18
  672. package/lib/azure-virtualmachinescaleset/lib/cluster.d.ts +0 -324
  673. package/lib/azure-virtualmachinescaleset/lib/cluster.js +0 -264
  674. package/lib/azure-virtualmachinescaleset/lib/index.d.ts +0 -1
  675. package/lib/azure-virtualmachinescaleset/lib/index.js +0 -18
  676. package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.spec.d.ts +0 -1
  677. package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.spec.js +0 -48
  678. package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.spec.d.ts +0 -1
  679. package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.spec.js +0 -50
  680. package/lib/azure-virtualmachinescaleset/test/ExampleAzureLinuxVirtualMachineScaleSet.d.ts +0 -5
  681. package/lib/azure-virtualmachinescaleset/test/ExampleAzureLinuxVirtualMachineScaleSet.js +0 -107
  682. package/lib/azure-virtualmachinescaleset/test/ExampleAzureWindowsVirtualMachineScaleSet.d.ts +0 -5
  683. package/lib/azure-virtualmachinescaleset/test/ExampleAzureWindowsVirtualMachineScaleSet.js +0 -103
  684. package/lib/azure-virtualnetwork/lib/network.d.ts +0 -122
  685. package/lib/azure-virtualnetwork/lib/network.js +0 -120
  686. package/lib/azure-virtualnetwork/lib/peering.d.ts +0 -90
  687. package/lib/azure-virtualnetwork/lib/peering.js +0 -71
  688. package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.spec.d.ts +0 -1
  689. package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.spec.js +0 -48
  690. package/lib/azure-virtualnetwork/test/ExampleAzureVirtualNetwork.d.ts +0 -5
  691. package/lib/azure-virtualnetwork/test/ExampleAzureVirtualNetwork.js +0 -88
  692. package/lib/core-azure/lib/diagsettings.d.ts +0 -89
  693. package/lib/core-azure/lib/diagsettings.js +0 -83
  694. package/lib/core-azure/lib/rbac.d.ts +0 -50
  695. package/lib/core-azure/lib/rbac.js +0 -48
  696. package/lib/core-azure/lib/resource.d.ts +0 -62
  697. package/lib/core-azure/lib/resource.js +0 -118
  698. package/lib/core-azure/test/AzureResource.spec.d.ts +0 -1
  699. package/lib/core-azure/test/AzureResource.spec.js +0 -19
  700. package/lib/core-azure/test/ExampleAzureResource.d.ts +0 -5
  701. package/lib/core-azure/test/ExampleAzureResource.js +0 -67
  702. package/node_modules/moment/CHANGELOG.md +0 -996
  703. package/node_modules/moment/LICENSE +0 -22
  704. package/node_modules/moment/README.md +0 -55
  705. package/node_modules/moment/dist/locale/af.js +0 -71
  706. package/node_modules/moment/dist/locale/ar-dz.js +0 -156
  707. package/node_modules/moment/dist/locale/ar-kw.js +0 -55
  708. package/node_modules/moment/dist/locale/ar-ly.js +0 -171
  709. package/node_modules/moment/dist/locale/ar-ma.js +0 -56
  710. package/node_modules/moment/dist/locale/ar-ps.js +0 -112
  711. package/node_modules/moment/dist/locale/ar-sa.js +0 -105
  712. package/node_modules/moment/dist/locale/ar-tn.js +0 -55
  713. package/node_modules/moment/dist/locale/ar.js +0 -189
  714. package/node_modules/moment/dist/locale/az.js +0 -102
  715. package/node_modules/moment/dist/locale/be.js +0 -142
  716. package/node_modules/moment/dist/locale/bg.js +0 -87
  717. package/node_modules/moment/dist/locale/bm.js +0 -52
  718. package/node_modules/moment/dist/locale/bn-bd.js +0 -129
  719. package/node_modules/moment/dist/locale/bn.js +0 -119
  720. package/node_modules/moment/dist/locale/bo.js +0 -124
  721. package/node_modules/moment/dist/locale/br.js +0 -168
  722. package/node_modules/moment/dist/locale/bs.js +0 -160
  723. package/node_modules/moment/dist/locale/ca.js +0 -100
  724. package/node_modules/moment/dist/locale/cs.js +0 -181
  725. package/node_modules/moment/dist/locale/cv.js +0 -63
  726. package/node_modules/moment/dist/locale/cy.js +0 -98
  727. package/node_modules/moment/dist/locale/da.js +0 -53
  728. package/node_modules/moment/dist/locale/de-at.js +0 -79
  729. package/node_modules/moment/dist/locale/de-ch.js +0 -78
  730. package/node_modules/moment/dist/locale/de.js +0 -78
  731. package/node_modules/moment/dist/locale/dv.js +0 -90
  732. package/node_modules/moment/dist/locale/el.js +0 -106
  733. package/node_modules/moment/dist/locale/en-au.js +0 -68
  734. package/node_modules/moment/dist/locale/en-ca.js +0 -64
  735. package/node_modules/moment/dist/locale/en-gb.js +0 -68
  736. package/node_modules/moment/dist/locale/en-ie.js +0 -68
  737. package/node_modules/moment/dist/locale/en-il.js +0 -64
  738. package/node_modules/moment/dist/locale/en-in.js +0 -68
  739. package/node_modules/moment/dist/locale/en-nz.js +0 -68
  740. package/node_modules/moment/dist/locale/en-sg.js +0 -68
  741. package/node_modules/moment/dist/locale/eo.js +0 -68
  742. package/node_modules/moment/dist/locale/es-do.js +0 -108
  743. package/node_modules/moment/dist/locale/es-mx.js +0 -110
  744. package/node_modules/moment/dist/locale/es-us.js +0 -110
  745. package/node_modules/moment/dist/locale/es.js +0 -110
  746. package/node_modules/moment/dist/locale/et.js +0 -78
  747. package/node_modules/moment/dist/locale/eu.js +0 -65
  748. package/node_modules/moment/dist/locale/fa.js +0 -113
  749. package/node_modules/moment/dist/locale/fi.js +0 -124
  750. package/node_modules/moment/dist/locale/fil.js +0 -58
  751. package/node_modules/moment/dist/locale/fo.js +0 -57
  752. package/node_modules/moment/dist/locale/fr-ca.js +0 -70
  753. package/node_modules/moment/dist/locale/fr-ch.js +0 -74
  754. package/node_modules/moment/dist/locale/fr.js +0 -108
  755. package/node_modules/moment/dist/locale/fy.js +0 -75
  756. package/node_modules/moment/dist/locale/ga.js +0 -95
  757. package/node_modules/moment/dist/locale/gd.js +0 -95
  758. package/node_modules/moment/dist/locale/gl.js +0 -75
  759. package/node_modules/moment/dist/locale/gom-deva.js +0 -126
  760. package/node_modules/moment/dist/locale/gom-latn.js +0 -124
  761. package/node_modules/moment/dist/locale/gu.js +0 -122
  762. package/node_modules/moment/dist/locale/he.js +0 -94
  763. package/node_modules/moment/dist/locale/hi.js +0 -168
  764. package/node_modules/moment/dist/locale/hr.js +0 -156
  765. package/node_modules/moment/dist/locale/hu.js +0 -118
  766. package/node_modules/moment/dist/locale/hy-am.js +0 -94
  767. package/node_modules/moment/dist/locale/id.js +0 -76
  768. package/node_modules/moment/dist/locale/is.js +0 -140
  769. package/node_modules/moment/dist/locale/it-ch.js +0 -64
  770. package/node_modules/moment/dist/locale/it.js +0 -106
  771. package/node_modules/moment/dist/locale/ja.js +0 -148
  772. package/node_modules/moment/dist/locale/jv.js +0 -76
  773. package/node_modules/moment/dist/locale/ka.js +0 -92
  774. package/node_modules/moment/dist/locale/kk.js +0 -82
  775. package/node_modules/moment/dist/locale/km.js +0 -103
  776. package/node_modules/moment/dist/locale/kn.js +0 -124
  777. package/node_modules/moment/dist/locale/ko.js +0 -75
  778. package/node_modules/moment/dist/locale/ku-kmr.js +0 -121
  779. package/node_modules/moment/dist/locale/ku.js +0 -118
  780. package/node_modules/moment/dist/locale/ky.js +0 -84
  781. package/node_modules/moment/dist/locale/lb.js +0 -137
  782. package/node_modules/moment/dist/locale/lo.js +0 -66
  783. package/node_modules/moment/dist/locale/lt.js +0 -125
  784. package/node_modules/moment/dist/locale/lv.js +0 -94
  785. package/node_modules/moment/dist/locale/me.js +0 -117
  786. package/node_modules/moment/dist/locale/mi.js +0 -60
  787. package/node_modules/moment/dist/locale/mk.js +0 -85
  788. package/node_modules/moment/dist/locale/ml.js +0 -82
  789. package/node_modules/moment/dist/locale/mn.js +0 -100
  790. package/node_modules/moment/dist/locale/mr.js +0 -203
  791. package/node_modules/moment/dist/locale/ms-my.js +0 -76
  792. package/node_modules/moment/dist/locale/ms.js +0 -75
  793. package/node_modules/moment/dist/locale/mt.js +0 -56
  794. package/node_modules/moment/dist/locale/my.js +0 -91
  795. package/node_modules/moment/dist/locale/nb.js +0 -60
  796. package/node_modules/moment/dist/locale/ne.js +0 -121
  797. package/node_modules/moment/dist/locale/nl-be.js +0 -102
  798. package/node_modules/moment/dist/locale/nl.js +0 -104
  799. package/node_modules/moment/dist/locale/nn.js +0 -59
  800. package/node_modules/moment/dist/locale/oc-lnc.js +0 -85
  801. package/node_modules/moment/dist/locale/pa-in.js +0 -122
  802. package/node_modules/moment/dist/locale/pl.js +0 -140
  803. package/node_modules/moment/dist/locale/pt-br.js +0 -58
  804. package/node_modules/moment/dist/locale/pt.js +0 -63
  805. package/node_modules/moment/dist/locale/ro.js +0 -76
  806. package/node_modules/moment/dist/locale/ru.js +0 -213
  807. package/node_modules/moment/dist/locale/sd.js +0 -81
  808. package/node_modules/moment/dist/locale/se.js +0 -57
  809. package/node_modules/moment/dist/locale/si.js +0 -69
  810. package/node_modules/moment/dist/locale/sk.js +0 -145
  811. package/node_modules/moment/dist/locale/sl.js +0 -171
  812. package/node_modules/moment/dist/locale/sq.js +0 -65
  813. package/node_modules/moment/dist/locale/sr-cyrl.js +0 -127
  814. package/node_modules/moment/dist/locale/sr.js +0 -129
  815. package/node_modules/moment/dist/locale/ss.js +0 -84
  816. package/node_modules/moment/dist/locale/sv.js +0 -68
  817. package/node_modules/moment/dist/locale/sw.js +0 -55
  818. package/node_modules/moment/dist/locale/ta.js +0 -131
  819. package/node_modules/moment/dist/locale/te.js +0 -88
  820. package/node_modules/moment/dist/locale/tet.js +0 -68
  821. package/node_modules/moment/dist/locale/tg.js +0 -117
  822. package/node_modules/moment/dist/locale/th.js +0 -65
  823. package/node_modules/moment/dist/locale/tk.js +0 -91
  824. package/node_modules/moment/dist/locale/tl-ph.js +0 -57
  825. package/node_modules/moment/dist/locale/tlh.js +0 -124
  826. package/node_modules/moment/dist/locale/tr.js +0 -106
  827. package/node_modules/moment/dist/locale/tzl.js +0 -89
  828. package/node_modules/moment/dist/locale/tzm-latn.js +0 -54
  829. package/node_modules/moment/dist/locale/tzm.js +0 -54
  830. package/node_modules/moment/dist/locale/ug-cn.js +0 -111
  831. package/node_modules/moment/dist/locale/uk.js +0 -167
  832. package/node_modules/moment/dist/locale/ur.js +0 -82
  833. package/node_modules/moment/dist/locale/uz-latn.js +0 -54
  834. package/node_modules/moment/dist/locale/uz.js +0 -51
  835. package/node_modules/moment/dist/locale/vi.js +0 -80
  836. package/node_modules/moment/dist/locale/x-pseudo.js +0 -73
  837. package/node_modules/moment/dist/locale/yo.js +0 -53
  838. package/node_modules/moment/dist/locale/zh-cn.js +0 -120
  839. package/node_modules/moment/dist/locale/zh-hk.js +0 -101
  840. package/node_modules/moment/dist/locale/zh-mo.js +0 -100
  841. package/node_modules/moment/dist/locale/zh-tw.js +0 -99
  842. package/node_modules/moment/dist/moment.js +0 -5680
  843. package/node_modules/moment/ender.js +0 -1
  844. package/node_modules/moment/locale/af.js +0 -82
  845. package/node_modules/moment/locale/ar-dz.js +0 -167
  846. package/node_modules/moment/locale/ar-kw.js +0 -66
  847. package/node_modules/moment/locale/ar-ly.js +0 -182
  848. package/node_modules/moment/locale/ar-ma.js +0 -67
  849. package/node_modules/moment/locale/ar-ps.js +0 -123
  850. package/node_modules/moment/locale/ar-sa.js +0 -116
  851. package/node_modules/moment/locale/ar-tn.js +0 -66
  852. package/node_modules/moment/locale/ar.js +0 -200
  853. package/node_modules/moment/locale/az.js +0 -113
  854. package/node_modules/moment/locale/be.js +0 -153
  855. package/node_modules/moment/locale/bg.js +0 -98
  856. package/node_modules/moment/locale/bm.js +0 -62
  857. package/node_modules/moment/locale/bn-bd.js +0 -140
  858. package/node_modules/moment/locale/bn.js +0 -130
  859. package/node_modules/moment/locale/bo.js +0 -135
  860. package/node_modules/moment/locale/br.js +0 -179
  861. package/node_modules/moment/locale/bs.js +0 -171
  862. package/node_modules/moment/locale/ca.js +0 -111
  863. package/node_modules/moment/locale/cs.js +0 -192
  864. package/node_modules/moment/locale/cv.js +0 -74
  865. package/node_modules/moment/locale/cy.js +0 -109
  866. package/node_modules/moment/locale/da.js +0 -64
  867. package/node_modules/moment/locale/de-at.js +0 -90
  868. package/node_modules/moment/locale/de-ch.js +0 -87
  869. package/node_modules/moment/locale/de.js +0 -89
  870. package/node_modules/moment/locale/dv.js +0 -101
  871. package/node_modules/moment/locale/el.js +0 -117
  872. package/node_modules/moment/locale/en-au.js +0 -79
  873. package/node_modules/moment/locale/en-ca.js +0 -75
  874. package/node_modules/moment/locale/en-gb.js +0 -79
  875. package/node_modules/moment/locale/en-ie.js +0 -79
  876. package/node_modules/moment/locale/en-il.js +0 -75
  877. package/node_modules/moment/locale/en-in.js +0 -79
  878. package/node_modules/moment/locale/en-nz.js +0 -79
  879. package/node_modules/moment/locale/en-sg.js +0 -79
  880. package/node_modules/moment/locale/eo.js +0 -79
  881. package/node_modules/moment/locale/es-do.js +0 -119
  882. package/node_modules/moment/locale/es-mx.js +0 -121
  883. package/node_modules/moment/locale/es-us.js +0 -121
  884. package/node_modules/moment/locale/es.js +0 -121
  885. package/node_modules/moment/locale/et.js +0 -89
  886. package/node_modules/moment/locale/eu.js +0 -76
  887. package/node_modules/moment/locale/fa.js +0 -124
  888. package/node_modules/moment/locale/fi.js +0 -135
  889. package/node_modules/moment/locale/fil.js +0 -69
  890. package/node_modules/moment/locale/fo.js +0 -68
  891. package/node_modules/moment/locale/fr-ca.js +0 -81
  892. package/node_modules/moment/locale/fr-ch.js +0 -85
  893. package/node_modules/moment/locale/fr.js +0 -119
  894. package/node_modules/moment/locale/fy.js +0 -86
  895. package/node_modules/moment/locale/ga.js +0 -106
  896. package/node_modules/moment/locale/gd.js +0 -106
  897. package/node_modules/moment/locale/gl.js +0 -86
  898. package/node_modules/moment/locale/gom-deva.js +0 -137
  899. package/node_modules/moment/locale/gom-latn.js +0 -135
  900. package/node_modules/moment/locale/gu.js +0 -133
  901. package/node_modules/moment/locale/he.js +0 -105
  902. package/node_modules/moment/locale/hi.js +0 -179
  903. package/node_modules/moment/locale/hr.js +0 -167
  904. package/node_modules/moment/locale/hu.js +0 -129
  905. package/node_modules/moment/locale/hy-am.js +0 -105
  906. package/node_modules/moment/locale/id.js +0 -87
  907. package/node_modules/moment/locale/is.js +0 -151
  908. package/node_modules/moment/locale/it-ch.js +0 -75
  909. package/node_modules/moment/locale/it.js +0 -117
  910. package/node_modules/moment/locale/ja.js +0 -159
  911. package/node_modules/moment/locale/jv.js +0 -87
  912. package/node_modules/moment/locale/ka.js +0 -103
  913. package/node_modules/moment/locale/kk.js +0 -93
  914. package/node_modules/moment/locale/km.js +0 -114
  915. package/node_modules/moment/locale/kn.js +0 -135
  916. package/node_modules/moment/locale/ko.js +0 -86
  917. package/node_modules/moment/locale/ku-kmr.js +0 -125
  918. package/node_modules/moment/locale/ku.js +0 -129
  919. package/node_modules/moment/locale/ky.js +0 -95
  920. package/node_modules/moment/locale/lb.js +0 -148
  921. package/node_modules/moment/locale/lo.js +0 -77
  922. package/node_modules/moment/locale/lt.js +0 -136
  923. package/node_modules/moment/locale/lv.js +0 -105
  924. package/node_modules/moment/locale/me.js +0 -128
  925. package/node_modules/moment/locale/mi.js +0 -71
  926. package/node_modules/moment/locale/mk.js +0 -97
  927. package/node_modules/moment/locale/ml.js +0 -93
  928. package/node_modules/moment/locale/mn.js +0 -111
  929. package/node_modules/moment/locale/mr.js +0 -214
  930. package/node_modules/moment/locale/ms-my.js +0 -87
  931. package/node_modules/moment/locale/ms.js +0 -86
  932. package/node_modules/moment/locale/mt.js +0 -67
  933. package/node_modules/moment/locale/my.js +0 -102
  934. package/node_modules/moment/locale/nb.js +0 -71
  935. package/node_modules/moment/locale/ne.js +0 -132
  936. package/node_modules/moment/locale/nl-be.js +0 -113
  937. package/node_modules/moment/locale/nl.js +0 -115
  938. package/node_modules/moment/locale/nn.js +0 -70
  939. package/node_modules/moment/locale/oc-lnc.js +0 -96
  940. package/node_modules/moment/locale/pa-in.js +0 -133
  941. package/node_modules/moment/locale/pl.js +0 -151
  942. package/node_modules/moment/locale/pt-br.js +0 -69
  943. package/node_modules/moment/locale/pt.js +0 -74
  944. package/node_modules/moment/locale/ro.js +0 -87
  945. package/node_modules/moment/locale/ru.js +0 -224
  946. package/node_modules/moment/locale/sd.js +0 -92
  947. package/node_modules/moment/locale/se.js +0 -68
  948. package/node_modules/moment/locale/si.js +0 -80
  949. package/node_modules/moment/locale/sk.js +0 -156
  950. package/node_modules/moment/locale/sl.js +0 -182
  951. package/node_modules/moment/locale/sq.js +0 -76
  952. package/node_modules/moment/locale/sr-cyrl.js +0 -138
  953. package/node_modules/moment/locale/sr.js +0 -140
  954. package/node_modules/moment/locale/ss.js +0 -95
  955. package/node_modules/moment/locale/sv.js +0 -79
  956. package/node_modules/moment/locale/sw.js +0 -66
  957. package/node_modules/moment/locale/ta.js +0 -142
  958. package/node_modules/moment/locale/te.js +0 -99
  959. package/node_modules/moment/locale/tet.js +0 -79
  960. package/node_modules/moment/locale/tg.js +0 -128
  961. package/node_modules/moment/locale/th.js +0 -76
  962. package/node_modules/moment/locale/tk.js +0 -102
  963. package/node_modules/moment/locale/tl-ph.js +0 -68
  964. package/node_modules/moment/locale/tlh.js +0 -135
  965. package/node_modules/moment/locale/tr.js +0 -117
  966. package/node_modules/moment/locale/tzl.js +0 -100
  967. package/node_modules/moment/locale/tzm-latn.js +0 -65
  968. package/node_modules/moment/locale/tzm.js +0 -65
  969. package/node_modules/moment/locale/ug-cn.js +0 -122
  970. package/node_modules/moment/locale/uk.js +0 -178
  971. package/node_modules/moment/locale/ur.js +0 -93
  972. package/node_modules/moment/locale/uz-latn.js +0 -65
  973. package/node_modules/moment/locale/uz.js +0 -62
  974. package/node_modules/moment/locale/vi.js +0 -91
  975. package/node_modules/moment/locale/x-pseudo.js +0 -84
  976. package/node_modules/moment/locale/yo.js +0 -64
  977. package/node_modules/moment/locale/zh-cn.js +0 -131
  978. package/node_modules/moment/locale/zh-hk.js +0 -112
  979. package/node_modules/moment/locale/zh-mo.js +0 -111
  980. package/node_modules/moment/locale/zh-tw.js +0 -110
  981. package/node_modules/moment/min/locales.js +0 -12800
  982. package/node_modules/moment/min/locales.min.js +0 -2
  983. package/node_modules/moment/min/locales.min.js.map +0 -1
  984. package/node_modules/moment/min/moment-with-locales.js +0 -18472
  985. package/node_modules/moment/min/moment-with-locales.min.js +0 -2
  986. package/node_modules/moment/min/moment-with-locales.min.js.map +0 -1
  987. package/node_modules/moment/min/moment.min.js +0 -2
  988. package/node_modules/moment/min/moment.min.js.map +0 -1
  989. package/node_modules/moment/moment.d.ts +0 -796
  990. package/node_modules/moment/moment.js +0 -5688
  991. package/node_modules/moment/package.js +0 -11
  992. package/node_modules/moment/package.json +0 -116
  993. package/node_modules/moment/src/lib/create/check-overflow.js +0 -57
  994. package/node_modules/moment/src/lib/create/date-from-array.js +0 -35
  995. package/node_modules/moment/src/lib/create/from-anything.js +0 -117
  996. package/node_modules/moment/src/lib/create/from-array.js +0 -187
  997. package/node_modules/moment/src/lib/create/from-object.js +0 -20
  998. package/node_modules/moment/src/lib/create/from-string-and-array.js +0 -67
  999. package/node_modules/moment/src/lib/create/from-string-and-format.js +0 -135
  1000. package/node_modules/moment/src/lib/create/from-string.js +0 -258
  1001. package/node_modules/moment/src/lib/create/local.js +0 -5
  1002. package/node_modules/moment/src/lib/create/parsing-flags.js +0 -28
  1003. package/node_modules/moment/src/lib/create/utc.js +0 -5
  1004. package/node_modules/moment/src/lib/create/valid.js +0 -51
  1005. package/node_modules/moment/src/lib/duration/abs.js +0 -18
  1006. package/node_modules/moment/src/lib/duration/add-subtract.js +0 -21
  1007. package/node_modules/moment/src/lib/duration/as.js +0 -76
  1008. package/node_modules/moment/src/lib/duration/bubble.js +0 -68
  1009. package/node_modules/moment/src/lib/duration/clone.js +0 -5
  1010. package/node_modules/moment/src/lib/duration/constructor.js +0 -42
  1011. package/node_modules/moment/src/lib/duration/create.js +0 -133
  1012. package/node_modules/moment/src/lib/duration/duration.js +0 -16
  1013. package/node_modules/moment/src/lib/duration/get.js +0 -27
  1014. package/node_modules/moment/src/lib/duration/humanize.js +0 -114
  1015. package/node_modules/moment/src/lib/duration/iso-string.js +0 -68
  1016. package/node_modules/moment/src/lib/duration/prototype.js +0 -78
  1017. package/node_modules/moment/src/lib/duration/valid.js +0 -55
  1018. package/node_modules/moment/src/lib/format/format.js +0 -104
  1019. package/node_modules/moment/src/lib/locale/base-config.js +0 -41
  1020. package/node_modules/moment/src/lib/locale/calendar.js +0 -15
  1021. package/node_modules/moment/src/lib/locale/constructor.js +0 -5
  1022. package/node_modules/moment/src/lib/locale/en.js +0 -39
  1023. package/node_modules/moment/src/lib/locale/formats.js +0 -36
  1024. package/node_modules/moment/src/lib/locale/invalid.js +0 -5
  1025. package/node_modules/moment/src/lib/locale/lists.js +0 -93
  1026. package/node_modules/moment/src/lib/locale/locale.js +0 -45
  1027. package/node_modules/moment/src/lib/locale/locales.js +0 -249
  1028. package/node_modules/moment/src/lib/locale/ordinal.js +0 -8
  1029. package/node_modules/moment/src/lib/locale/pre-post-format.js +0 -3
  1030. package/node_modules/moment/src/lib/locale/prototype.js +0 -88
  1031. package/node_modules/moment/src/lib/locale/relative.js +0 -32
  1032. package/node_modules/moment/src/lib/locale/set.js +0 -56
  1033. package/node_modules/moment/src/lib/moment/add-subtract.js +0 -61
  1034. package/node_modules/moment/src/lib/moment/calendar.js +0 -53
  1035. package/node_modules/moment/src/lib/moment/clone.js +0 -5
  1036. package/node_modules/moment/src/lib/moment/compare.js +0 -72
  1037. package/node_modules/moment/src/lib/moment/constructor.js +0 -80
  1038. package/node_modules/moment/src/lib/moment/creation-data.js +0 -9
  1039. package/node_modules/moment/src/lib/moment/diff.js +0 -79
  1040. package/node_modules/moment/src/lib/moment/format.js +0 -78
  1041. package/node_modules/moment/src/lib/moment/from.js +0 -20
  1042. package/node_modules/moment/src/lib/moment/get-set.js +0 -117
  1043. package/node_modules/moment/src/lib/moment/locale.js +0 -34
  1044. package/node_modules/moment/src/lib/moment/min-max.js +0 -62
  1045. package/node_modules/moment/src/lib/moment/moment.js +0 -28
  1046. package/node_modules/moment/src/lib/moment/now.js +0 -3
  1047. package/node_modules/moment/src/lib/moment/prototype.js +0 -197
  1048. package/node_modules/moment/src/lib/moment/start-end-of.js +0 -164
  1049. package/node_modules/moment/src/lib/moment/to-type.js +0 -42
  1050. package/node_modules/moment/src/lib/moment/to.js +0 -20
  1051. package/node_modules/moment/src/lib/moment/valid.js +0 -15
  1052. package/node_modules/moment/src/lib/parse/regex.js +0 -84
  1053. package/node_modules/moment/src/lib/parse/token.js +0 -36
  1054. package/node_modules/moment/src/lib/units/aliases.js +0 -75
  1055. package/node_modules/moment/src/lib/units/constants.js +0 -9
  1056. package/node_modules/moment/src/lib/units/day-of-month.js +0 -35
  1057. package/node_modules/moment/src/lib/units/day-of-week.js +0 -432
  1058. package/node_modules/moment/src/lib/units/day-of-year.js +0 -28
  1059. package/node_modules/moment/src/lib/units/era.js +0 -293
  1060. package/node_modules/moment/src/lib/units/hour.js +0 -152
  1061. package/node_modules/moment/src/lib/units/millisecond.js +0 -66
  1062. package/node_modules/moment/src/lib/units/minute.js +0 -24
  1063. package/node_modules/moment/src/lib/units/month.js +0 -340
  1064. package/node_modules/moment/src/lib/units/offset.js +0 -249
  1065. package/node_modules/moment/src/lib/units/priorities.js +0 -34
  1066. package/node_modules/moment/src/lib/units/quarter.js +0 -24
  1067. package/node_modules/moment/src/lib/units/second.js +0 -24
  1068. package/node_modules/moment/src/lib/units/timestamp.js +0 -20
  1069. package/node_modules/moment/src/lib/units/timezone.js +0 -16
  1070. package/node_modules/moment/src/lib/units/units.js +0 -20
  1071. package/node_modules/moment/src/lib/units/week-calendar-utils.js +0 -66
  1072. package/node_modules/moment/src/lib/units/week-year.js +0 -128
  1073. package/node_modules/moment/src/lib/units/week.js +0 -62
  1074. package/node_modules/moment/src/lib/units/year.js +0 -75
  1075. package/node_modules/moment/src/lib/utils/abs-ceil.js +0 -7
  1076. package/node_modules/moment/src/lib/utils/abs-floor.js +0 -8
  1077. package/node_modules/moment/src/lib/utils/abs-round.js +0 -7
  1078. package/node_modules/moment/src/lib/utils/compare-arrays.js +0 -18
  1079. package/node_modules/moment/src/lib/utils/defaults.js +0 -10
  1080. package/node_modules/moment/src/lib/utils/deprecate.js +0 -69
  1081. package/node_modules/moment/src/lib/utils/extend.js +0 -19
  1082. package/node_modules/moment/src/lib/utils/has-own-prop.js +0 -3
  1083. package/node_modules/moment/src/lib/utils/hooks.js +0 -13
  1084. package/node_modules/moment/src/lib/utils/index-of.js +0 -18
  1085. package/node_modules/moment/src/lib/utils/is-array.js +0 -6
  1086. package/node_modules/moment/src/lib/utils/is-calendar-spec.js +0 -25
  1087. package/node_modules/moment/src/lib/utils/is-date.js +0 -6
  1088. package/node_modules/moment/src/lib/utils/is-function.js +0 -6
  1089. package/node_modules/moment/src/lib/utils/is-leap-year.js +0 -3
  1090. package/node_modules/moment/src/lib/utils/is-moment-input.js +0 -75
  1091. package/node_modules/moment/src/lib/utils/is-number.js +0 -6
  1092. package/node_modules/moment/src/lib/utils/is-object-empty.js +0 -15
  1093. package/node_modules/moment/src/lib/utils/is-object.js +0 -8
  1094. package/node_modules/moment/src/lib/utils/is-string.js +0 -3
  1095. package/node_modules/moment/src/lib/utils/is-undefined.js +0 -3
  1096. package/node_modules/moment/src/lib/utils/keys.js +0 -20
  1097. package/node_modules/moment/src/lib/utils/map.js +0 -9
  1098. package/node_modules/moment/src/lib/utils/mod.js +0 -3
  1099. package/node_modules/moment/src/lib/utils/some.js +0 -20
  1100. package/node_modules/moment/src/lib/utils/to-int.js +0 -12
  1101. package/node_modules/moment/src/lib/utils/zero-fill.js +0 -10
  1102. package/node_modules/moment/src/locale/af.js +0 -71
  1103. package/node_modules/moment/src/locale/ar-dz.js +0 -156
  1104. package/node_modules/moment/src/locale/ar-kw.js +0 -55
  1105. package/node_modules/moment/src/locale/ar-ly.js +0 -171
  1106. package/node_modules/moment/src/locale/ar-ma.js +0 -56
  1107. package/node_modules/moment/src/locale/ar-ps.js +0 -112
  1108. package/node_modules/moment/src/locale/ar-sa.js +0 -105
  1109. package/node_modules/moment/src/locale/ar-tn.js +0 -55
  1110. package/node_modules/moment/src/locale/ar.js +0 -189
  1111. package/node_modules/moment/src/locale/az.js +0 -102
  1112. package/node_modules/moment/src/locale/be.js +0 -142
  1113. package/node_modules/moment/src/locale/bg.js +0 -87
  1114. package/node_modules/moment/src/locale/bm.js +0 -52
  1115. package/node_modules/moment/src/locale/bn-bd.js +0 -129
  1116. package/node_modules/moment/src/locale/bn.js +0 -119
  1117. package/node_modules/moment/src/locale/bo.js +0 -124
  1118. package/node_modules/moment/src/locale/br.js +0 -168
  1119. package/node_modules/moment/src/locale/bs.js +0 -160
  1120. package/node_modules/moment/src/locale/ca.js +0 -100
  1121. package/node_modules/moment/src/locale/cs.js +0 -181
  1122. package/node_modules/moment/src/locale/cv.js +0 -63
  1123. package/node_modules/moment/src/locale/cy.js +0 -98
  1124. package/node_modules/moment/src/locale/da.js +0 -53
  1125. package/node_modules/moment/src/locale/de-at.js +0 -79
  1126. package/node_modules/moment/src/locale/de-ch.js +0 -78
  1127. package/node_modules/moment/src/locale/de.js +0 -78
  1128. package/node_modules/moment/src/locale/dv.js +0 -90
  1129. package/node_modules/moment/src/locale/el.js +0 -106
  1130. package/node_modules/moment/src/locale/en-au.js +0 -68
  1131. package/node_modules/moment/src/locale/en-ca.js +0 -64
  1132. package/node_modules/moment/src/locale/en-gb.js +0 -68
  1133. package/node_modules/moment/src/locale/en-ie.js +0 -68
  1134. package/node_modules/moment/src/locale/en-il.js +0 -64
  1135. package/node_modules/moment/src/locale/en-in.js +0 -68
  1136. package/node_modules/moment/src/locale/en-nz.js +0 -68
  1137. package/node_modules/moment/src/locale/en-sg.js +0 -68
  1138. package/node_modules/moment/src/locale/eo.js +0 -68
  1139. package/node_modules/moment/src/locale/es-do.js +0 -108
  1140. package/node_modules/moment/src/locale/es-mx.js +0 -110
  1141. package/node_modules/moment/src/locale/es-us.js +0 -110
  1142. package/node_modules/moment/src/locale/es.js +0 -110
  1143. package/node_modules/moment/src/locale/et.js +0 -78
  1144. package/node_modules/moment/src/locale/eu.js +0 -65
  1145. package/node_modules/moment/src/locale/fa.js +0 -113
  1146. package/node_modules/moment/src/locale/fi.js +0 -124
  1147. package/node_modules/moment/src/locale/fil.js +0 -58
  1148. package/node_modules/moment/src/locale/fo.js +0 -57
  1149. package/node_modules/moment/src/locale/fr-ca.js +0 -70
  1150. package/node_modules/moment/src/locale/fr-ch.js +0 -74
  1151. package/node_modules/moment/src/locale/fr.js +0 -108
  1152. package/node_modules/moment/src/locale/fy.js +0 -75
  1153. package/node_modules/moment/src/locale/ga.js +0 -95
  1154. package/node_modules/moment/src/locale/gd.js +0 -95
  1155. package/node_modules/moment/src/locale/gl.js +0 -75
  1156. package/node_modules/moment/src/locale/gom-deva.js +0 -126
  1157. package/node_modules/moment/src/locale/gom-latn.js +0 -124
  1158. package/node_modules/moment/src/locale/gu.js +0 -122
  1159. package/node_modules/moment/src/locale/he.js +0 -94
  1160. package/node_modules/moment/src/locale/hi.js +0 -168
  1161. package/node_modules/moment/src/locale/hr.js +0 -156
  1162. package/node_modules/moment/src/locale/hu.js +0 -118
  1163. package/node_modules/moment/src/locale/hy-am.js +0 -94
  1164. package/node_modules/moment/src/locale/id.js +0 -76
  1165. package/node_modules/moment/src/locale/is.js +0 -140
  1166. package/node_modules/moment/src/locale/it-ch.js +0 -64
  1167. package/node_modules/moment/src/locale/it.js +0 -106
  1168. package/node_modules/moment/src/locale/ja.js +0 -148
  1169. package/node_modules/moment/src/locale/jv.js +0 -76
  1170. package/node_modules/moment/src/locale/ka.js +0 -92
  1171. package/node_modules/moment/src/locale/kk.js +0 -82
  1172. package/node_modules/moment/src/locale/km.js +0 -103
  1173. package/node_modules/moment/src/locale/kn.js +0 -124
  1174. package/node_modules/moment/src/locale/ko.js +0 -75
  1175. package/node_modules/moment/src/locale/ku-kmr.js +0 -121
  1176. package/node_modules/moment/src/locale/ku.js +0 -118
  1177. package/node_modules/moment/src/locale/ky.js +0 -84
  1178. package/node_modules/moment/src/locale/lb.js +0 -137
  1179. package/node_modules/moment/src/locale/lo.js +0 -66
  1180. package/node_modules/moment/src/locale/lt.js +0 -125
  1181. package/node_modules/moment/src/locale/lv.js +0 -94
  1182. package/node_modules/moment/src/locale/me.js +0 -117
  1183. package/node_modules/moment/src/locale/mi.js +0 -60
  1184. package/node_modules/moment/src/locale/mk.js +0 -85
  1185. package/node_modules/moment/src/locale/ml.js +0 -82
  1186. package/node_modules/moment/src/locale/mn.js +0 -100
  1187. package/node_modules/moment/src/locale/mr.js +0 -203
  1188. package/node_modules/moment/src/locale/ms-my.js +0 -76
  1189. package/node_modules/moment/src/locale/ms.js +0 -75
  1190. package/node_modules/moment/src/locale/mt.js +0 -56
  1191. package/node_modules/moment/src/locale/my.js +0 -91
  1192. package/node_modules/moment/src/locale/nb.js +0 -60
  1193. package/node_modules/moment/src/locale/ne.js +0 -121
  1194. package/node_modules/moment/src/locale/nl-be.js +0 -102
  1195. package/node_modules/moment/src/locale/nl.js +0 -104
  1196. package/node_modules/moment/src/locale/nn.js +0 -59
  1197. package/node_modules/moment/src/locale/oc-lnc.js +0 -85
  1198. package/node_modules/moment/src/locale/pa-in.js +0 -122
  1199. package/node_modules/moment/src/locale/pl.js +0 -140
  1200. package/node_modules/moment/src/locale/pt-br.js +0 -58
  1201. package/node_modules/moment/src/locale/pt.js +0 -63
  1202. package/node_modules/moment/src/locale/ro.js +0 -76
  1203. package/node_modules/moment/src/locale/ru.js +0 -213
  1204. package/node_modules/moment/src/locale/sd.js +0 -81
  1205. package/node_modules/moment/src/locale/se.js +0 -57
  1206. package/node_modules/moment/src/locale/si.js +0 -69
  1207. package/node_modules/moment/src/locale/sk.js +0 -145
  1208. package/node_modules/moment/src/locale/sl.js +0 -171
  1209. package/node_modules/moment/src/locale/sq.js +0 -65
  1210. package/node_modules/moment/src/locale/sr-cyrl.js +0 -127
  1211. package/node_modules/moment/src/locale/sr.js +0 -129
  1212. package/node_modules/moment/src/locale/ss.js +0 -84
  1213. package/node_modules/moment/src/locale/sv.js +0 -68
  1214. package/node_modules/moment/src/locale/sw.js +0 -55
  1215. package/node_modules/moment/src/locale/ta.js +0 -131
  1216. package/node_modules/moment/src/locale/te.js +0 -88
  1217. package/node_modules/moment/src/locale/tet.js +0 -68
  1218. package/node_modules/moment/src/locale/tg.js +0 -117
  1219. package/node_modules/moment/src/locale/th.js +0 -65
  1220. package/node_modules/moment/src/locale/tk.js +0 -91
  1221. package/node_modules/moment/src/locale/tl-ph.js +0 -57
  1222. package/node_modules/moment/src/locale/tlh.js +0 -124
  1223. package/node_modules/moment/src/locale/tr.js +0 -106
  1224. package/node_modules/moment/src/locale/tzl.js +0 -89
  1225. package/node_modules/moment/src/locale/tzm-latn.js +0 -54
  1226. package/node_modules/moment/src/locale/tzm.js +0 -54
  1227. package/node_modules/moment/src/locale/ug-cn.js +0 -111
  1228. package/node_modules/moment/src/locale/uk.js +0 -167
  1229. package/node_modules/moment/src/locale/ur.js +0 -82
  1230. package/node_modules/moment/src/locale/uz-latn.js +0 -54
  1231. package/node_modules/moment/src/locale/uz.js +0 -51
  1232. package/node_modules/moment/src/locale/vi.js +0 -80
  1233. package/node_modules/moment/src/locale/x-pseudo.js +0 -73
  1234. package/node_modules/moment/src/locale/yo.js +0 -53
  1235. package/node_modules/moment/src/locale/zh-cn.js +0 -120
  1236. package/node_modules/moment/src/locale/zh-hk.js +0 -101
  1237. package/node_modules/moment/src/locale/zh-mo.js +0 -100
  1238. package/node_modules/moment/src/locale/zh-tw.js +0 -99
  1239. package/node_modules/moment/src/moment.js +0 -93
  1240. package/node_modules/moment/ts3.1-typings/moment.d.ts +0 -785
  1241. package/node_modules/nanoid/LICENSE +0 -20
  1242. package/node_modules/nanoid/README.md +0 -38
  1243. package/node_modules/nanoid/async/index.browser.js +0 -33
  1244. package/node_modules/nanoid/async/index.d.ts +0 -56
  1245. package/node_modules/nanoid/async/index.js +0 -34
  1246. package/node_modules/nanoid/async/index.native.js +0 -25
  1247. package/node_modules/nanoid/bin/nanoid.js +0 -46
  1248. package/node_modules/nanoid/index.browser.js +0 -33
  1249. package/node_modules/nanoid/index.d.ts +0 -91
  1250. package/node_modules/nanoid/index.js +0 -45
  1251. package/node_modules/nanoid/nanoid.js +0 -1
  1252. package/node_modules/nanoid/non-secure/index.d.ts +0 -33
  1253. package/node_modules/nanoid/non-secure/index.js +0 -20
  1254. package/node_modules/nanoid/package.json +0 -46
  1255. package/node_modules/nanoid/url-alphabet/index.js +0 -2
  1256. package/node_modules/ts-md5/LICENSE +0 -21
  1257. package/node_modules/ts-md5/README.md +0 -101
  1258. package/node_modules/ts-md5/dist/cjs/index.d.ts +0 -3
  1259. package/node_modules/ts-md5/dist/cjs/index.js +0 -10
  1260. package/node_modules/ts-md5/dist/cjs/index.js.map +0 -1
  1261. package/node_modules/ts-md5/dist/cjs/md5.d.ts +0 -70
  1262. package/node_modules/ts-md5/dist/cjs/md5.js +0 -429
  1263. package/node_modules/ts-md5/dist/cjs/md5.js.map +0 -1
  1264. package/node_modules/ts-md5/dist/cjs/md5_file_hasher.d.ts +0 -25
  1265. package/node_modules/ts-md5/dist/cjs/md5_file_hasher.js +0 -96
  1266. package/node_modules/ts-md5/dist/cjs/md5_file_hasher.js.map +0 -1
  1267. package/node_modules/ts-md5/dist/cjs/parallel_hasher.d.ts +0 -22
  1268. package/node_modules/ts-md5/dist/cjs/parallel_hasher.js +0 -69
  1269. package/node_modules/ts-md5/dist/cjs/parallel_hasher.js.map +0 -1
  1270. package/node_modules/ts-md5/dist/esm/index.d.ts +0 -3
  1271. package/node_modules/ts-md5/dist/esm/index.js +0 -4
  1272. package/node_modules/ts-md5/dist/esm/index.js.map +0 -1
  1273. package/node_modules/ts-md5/dist/esm/md5.d.ts +0 -70
  1274. package/node_modules/ts-md5/dist/esm/md5.js +0 -421
  1275. package/node_modules/ts-md5/dist/esm/md5.js.map +0 -1
  1276. package/node_modules/ts-md5/dist/esm/md5_file_hasher.d.ts +0 -25
  1277. package/node_modules/ts-md5/dist/esm/md5_file_hasher.js +0 -89
  1278. package/node_modules/ts-md5/dist/esm/md5_file_hasher.js.map +0 -1
  1279. package/node_modules/ts-md5/dist/esm/parallel_hasher.d.ts +0 -22
  1280. package/node_modules/ts-md5/dist/esm/parallel_hasher.js +0 -64
  1281. package/node_modules/ts-md5/dist/esm/parallel_hasher.js.map +0 -1
  1282. package/node_modules/ts-md5/dist/md5.js +0 -429
  1283. package/node_modules/ts-md5/dist/md5_worker.js +0 -523
  1284. package/node_modules/ts-md5/package.json +0 -82
  1285. package/node_modules/ts-md5/src/index.ts +0 -4
  1286. package/node_modules/ts-md5/src/md5.ts +0 -473
  1287. package/node_modules/ts-md5/src/md5_file_hasher.ts +0 -110
  1288. package/node_modules/ts-md5/src/parallel_hasher.ts +0 -90
  1289. package/node_modules/ts-md5/src/worker.js +0 -20
  1290. package/tfsec.json +0 -4
@@ -0,0 +1,844 @@
1
+ "use strict";
2
+ // https://registry.terraform.io/providers/azure/azapi/2.7.0/docs
3
+ // generated from terraform resource schema
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.AzapiProvider = void 0;
6
+ exports.azapiProviderEndpointToTerraform = azapiProviderEndpointToTerraform;
7
+ exports.azapiProviderEndpointToHclTerraform = azapiProviderEndpointToHclTerraform;
8
+ const cdktf = require("cdktf");
9
+ function azapiProviderEndpointToTerraform(struct) {
10
+ if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
11
+ return struct;
12
+ }
13
+ if (cdktf.isComplexElement(struct)) {
14
+ throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
15
+ }
16
+ return {
17
+ active_directory_authority_host: cdktf.stringToTerraform(struct.activeDirectoryAuthorityHost),
18
+ resource_manager_audience: cdktf.stringToTerraform(struct.resourceManagerAudience),
19
+ resource_manager_endpoint: cdktf.stringToTerraform(struct.resourceManagerEndpoint),
20
+ };
21
+ }
22
+ function azapiProviderEndpointToHclTerraform(struct) {
23
+ if (!cdktf.canInspect(struct) || cdktf.Tokenization.isResolvable(struct)) {
24
+ return struct;
25
+ }
26
+ if (cdktf.isComplexElement(struct)) {
27
+ throw new Error("A complex element was used as configuration, this is not supported: https://cdk.tf/complex-object-as-configuration");
28
+ }
29
+ const attrs = {
30
+ active_directory_authority_host: {
31
+ value: cdktf.stringToHclTerraform(struct.activeDirectoryAuthorityHost),
32
+ isBlock: false,
33
+ type: "simple",
34
+ storageClassType: "string",
35
+ },
36
+ resource_manager_audience: {
37
+ value: cdktf.stringToHclTerraform(struct.resourceManagerAudience),
38
+ isBlock: false,
39
+ type: "simple",
40
+ storageClassType: "string",
41
+ },
42
+ resource_manager_endpoint: {
43
+ value: cdktf.stringToHclTerraform(struct.resourceManagerEndpoint),
44
+ isBlock: false,
45
+ type: "simple",
46
+ storageClassType: "string",
47
+ },
48
+ };
49
+ // remove undefined attributes
50
+ return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
51
+ }
52
+ /**
53
+ * Represents a {@link https://registry.terraform.io/providers/azure/azapi/2.7.0/docs azapi}
54
+ */
55
+ class AzapiProvider extends cdktf.TerraformProvider {
56
+ // ==============
57
+ // STATIC Methods
58
+ // ==============
59
+ /**
60
+ * Generates CDKTF code for importing a AzapiProvider resource upon running "cdktf plan <stack-name>"
61
+ * @param scope The scope in which to define this construct
62
+ * @param importToId The construct id used in the generated config for the AzapiProvider to import
63
+ * @param importFromId The id of the existing AzapiProvider that should be imported. Refer to the {@link https://registry.terraform.io/providers/azure/azapi/2.7.0/docs#import import section} in the documentation of this resource for the id to use
64
+ * @param provider? Optional instance of the provider where the AzapiProvider to import is found
65
+ */
66
+ static generateConfigForImport(scope, importToId, importFromId, provider) {
67
+ return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "azapi", importId: importFromId, provider });
68
+ }
69
+ // ===========
70
+ // INITIALIZER
71
+ // ===========
72
+ /**
73
+ * Create a new {@link https://registry.terraform.io/providers/azure/azapi/2.7.0/docs azapi} Resource
74
+ *
75
+ * @param scope The scope in which to define this construct
76
+ * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
77
+ * @param options AzapiProviderConfig = {}
78
+ */
79
+ constructor(scope, id, config = {}) {
80
+ super(scope, id, {
81
+ terraformResourceType: 'azapi',
82
+ terraformGeneratorMetadata: {
83
+ providerName: 'azapi',
84
+ providerVersion: '2.7.0',
85
+ providerVersionConstraint: '~> 2.7.0'
86
+ },
87
+ terraformProviderSource: 'Azure/azapi'
88
+ });
89
+ this._auxiliaryTenantIds = config.auxiliaryTenantIds;
90
+ this._clientCertificate = config.clientCertificate;
91
+ this._clientCertificatePassword = config.clientCertificatePassword;
92
+ this._clientCertificatePath = config.clientCertificatePath;
93
+ this._clientId = config.clientId;
94
+ this._clientIdFilePath = config.clientIdFilePath;
95
+ this._clientSecret = config.clientSecret;
96
+ this._clientSecretFilePath = config.clientSecretFilePath;
97
+ this._customCorrelationRequestId = config.customCorrelationRequestId;
98
+ this._defaultLocation = config.defaultLocation;
99
+ this._defaultName = config.defaultName;
100
+ this._defaultTags = config.defaultTags;
101
+ this._disableCorrelationRequestId = config.disableCorrelationRequestId;
102
+ this._disableDefaultOutput = config.disableDefaultOutput;
103
+ this._disableInstanceDiscovery = config.disableInstanceDiscovery;
104
+ this._disableTerraformPartnerId = config.disableTerraformPartnerId;
105
+ this._enablePreflight = config.enablePreflight;
106
+ this._endpoint = config.endpoint;
107
+ this._environment = config.environment;
108
+ this._ignoreNoOpChanges = config.ignoreNoOpChanges;
109
+ this._maximumBusyRetryAttempts = config.maximumBusyRetryAttempts;
110
+ this._oidcAzureServiceConnectionId = config.oidcAzureServiceConnectionId;
111
+ this._oidcRequestToken = config.oidcRequestToken;
112
+ this._oidcRequestUrl = config.oidcRequestUrl;
113
+ this._oidcToken = config.oidcToken;
114
+ this._oidcTokenFilePath = config.oidcTokenFilePath;
115
+ this._partnerId = config.partnerId;
116
+ this._skipProviderRegistration = config.skipProviderRegistration;
117
+ this._subscriptionId = config.subscriptionId;
118
+ this._tenantId = config.tenantId;
119
+ this._useAksWorkloadIdentity = config.useAksWorkloadIdentity;
120
+ this._useCli = config.useCli;
121
+ this._useMsi = config.useMsi;
122
+ this._useOidc = config.useOidc;
123
+ this._alias = config.alias;
124
+ }
125
+ get auxiliaryTenantIds() {
126
+ return this._auxiliaryTenantIds;
127
+ }
128
+ set auxiliaryTenantIds(value) {
129
+ this._auxiliaryTenantIds = value;
130
+ }
131
+ resetAuxiliaryTenantIds() {
132
+ this._auxiliaryTenantIds = undefined;
133
+ }
134
+ // Temporarily expose input value. Use with caution.
135
+ get auxiliaryTenantIdsInput() {
136
+ return this._auxiliaryTenantIds;
137
+ }
138
+ get clientCertificate() {
139
+ return this._clientCertificate;
140
+ }
141
+ set clientCertificate(value) {
142
+ this._clientCertificate = value;
143
+ }
144
+ resetClientCertificate() {
145
+ this._clientCertificate = undefined;
146
+ }
147
+ // Temporarily expose input value. Use with caution.
148
+ get clientCertificateInput() {
149
+ return this._clientCertificate;
150
+ }
151
+ get clientCertificatePassword() {
152
+ return this._clientCertificatePassword;
153
+ }
154
+ set clientCertificatePassword(value) {
155
+ this._clientCertificatePassword = value;
156
+ }
157
+ resetClientCertificatePassword() {
158
+ this._clientCertificatePassword = undefined;
159
+ }
160
+ // Temporarily expose input value. Use with caution.
161
+ get clientCertificatePasswordInput() {
162
+ return this._clientCertificatePassword;
163
+ }
164
+ get clientCertificatePath() {
165
+ return this._clientCertificatePath;
166
+ }
167
+ set clientCertificatePath(value) {
168
+ this._clientCertificatePath = value;
169
+ }
170
+ resetClientCertificatePath() {
171
+ this._clientCertificatePath = undefined;
172
+ }
173
+ // Temporarily expose input value. Use with caution.
174
+ get clientCertificatePathInput() {
175
+ return this._clientCertificatePath;
176
+ }
177
+ get clientId() {
178
+ return this._clientId;
179
+ }
180
+ set clientId(value) {
181
+ this._clientId = value;
182
+ }
183
+ resetClientId() {
184
+ this._clientId = undefined;
185
+ }
186
+ // Temporarily expose input value. Use with caution.
187
+ get clientIdInput() {
188
+ return this._clientId;
189
+ }
190
+ get clientIdFilePath() {
191
+ return this._clientIdFilePath;
192
+ }
193
+ set clientIdFilePath(value) {
194
+ this._clientIdFilePath = value;
195
+ }
196
+ resetClientIdFilePath() {
197
+ this._clientIdFilePath = undefined;
198
+ }
199
+ // Temporarily expose input value. Use with caution.
200
+ get clientIdFilePathInput() {
201
+ return this._clientIdFilePath;
202
+ }
203
+ get clientSecret() {
204
+ return this._clientSecret;
205
+ }
206
+ set clientSecret(value) {
207
+ this._clientSecret = value;
208
+ }
209
+ resetClientSecret() {
210
+ this._clientSecret = undefined;
211
+ }
212
+ // Temporarily expose input value. Use with caution.
213
+ get clientSecretInput() {
214
+ return this._clientSecret;
215
+ }
216
+ get clientSecretFilePath() {
217
+ return this._clientSecretFilePath;
218
+ }
219
+ set clientSecretFilePath(value) {
220
+ this._clientSecretFilePath = value;
221
+ }
222
+ resetClientSecretFilePath() {
223
+ this._clientSecretFilePath = undefined;
224
+ }
225
+ // Temporarily expose input value. Use with caution.
226
+ get clientSecretFilePathInput() {
227
+ return this._clientSecretFilePath;
228
+ }
229
+ get customCorrelationRequestId() {
230
+ return this._customCorrelationRequestId;
231
+ }
232
+ set customCorrelationRequestId(value) {
233
+ this._customCorrelationRequestId = value;
234
+ }
235
+ resetCustomCorrelationRequestId() {
236
+ this._customCorrelationRequestId = undefined;
237
+ }
238
+ // Temporarily expose input value. Use with caution.
239
+ get customCorrelationRequestIdInput() {
240
+ return this._customCorrelationRequestId;
241
+ }
242
+ get defaultLocation() {
243
+ return this._defaultLocation;
244
+ }
245
+ set defaultLocation(value) {
246
+ this._defaultLocation = value;
247
+ }
248
+ resetDefaultLocation() {
249
+ this._defaultLocation = undefined;
250
+ }
251
+ // Temporarily expose input value. Use with caution.
252
+ get defaultLocationInput() {
253
+ return this._defaultLocation;
254
+ }
255
+ get defaultName() {
256
+ return this._defaultName;
257
+ }
258
+ set defaultName(value) {
259
+ this._defaultName = value;
260
+ }
261
+ resetDefaultName() {
262
+ this._defaultName = undefined;
263
+ }
264
+ // Temporarily expose input value. Use with caution.
265
+ get defaultNameInput() {
266
+ return this._defaultName;
267
+ }
268
+ get defaultTags() {
269
+ return this._defaultTags;
270
+ }
271
+ set defaultTags(value) {
272
+ this._defaultTags = value;
273
+ }
274
+ resetDefaultTags() {
275
+ this._defaultTags = undefined;
276
+ }
277
+ // Temporarily expose input value. Use with caution.
278
+ get defaultTagsInput() {
279
+ return this._defaultTags;
280
+ }
281
+ get disableCorrelationRequestId() {
282
+ return this._disableCorrelationRequestId;
283
+ }
284
+ set disableCorrelationRequestId(value) {
285
+ this._disableCorrelationRequestId = value;
286
+ }
287
+ resetDisableCorrelationRequestId() {
288
+ this._disableCorrelationRequestId = undefined;
289
+ }
290
+ // Temporarily expose input value. Use with caution.
291
+ get disableCorrelationRequestIdInput() {
292
+ return this._disableCorrelationRequestId;
293
+ }
294
+ get disableDefaultOutput() {
295
+ return this._disableDefaultOutput;
296
+ }
297
+ set disableDefaultOutput(value) {
298
+ this._disableDefaultOutput = value;
299
+ }
300
+ resetDisableDefaultOutput() {
301
+ this._disableDefaultOutput = undefined;
302
+ }
303
+ // Temporarily expose input value. Use with caution.
304
+ get disableDefaultOutputInput() {
305
+ return this._disableDefaultOutput;
306
+ }
307
+ get disableInstanceDiscovery() {
308
+ return this._disableInstanceDiscovery;
309
+ }
310
+ set disableInstanceDiscovery(value) {
311
+ this._disableInstanceDiscovery = value;
312
+ }
313
+ resetDisableInstanceDiscovery() {
314
+ this._disableInstanceDiscovery = undefined;
315
+ }
316
+ // Temporarily expose input value. Use with caution.
317
+ get disableInstanceDiscoveryInput() {
318
+ return this._disableInstanceDiscovery;
319
+ }
320
+ get disableTerraformPartnerId() {
321
+ return this._disableTerraformPartnerId;
322
+ }
323
+ set disableTerraformPartnerId(value) {
324
+ this._disableTerraformPartnerId = value;
325
+ }
326
+ resetDisableTerraformPartnerId() {
327
+ this._disableTerraformPartnerId = undefined;
328
+ }
329
+ // Temporarily expose input value. Use with caution.
330
+ get disableTerraformPartnerIdInput() {
331
+ return this._disableTerraformPartnerId;
332
+ }
333
+ get enablePreflight() {
334
+ return this._enablePreflight;
335
+ }
336
+ set enablePreflight(value) {
337
+ this._enablePreflight = value;
338
+ }
339
+ resetEnablePreflight() {
340
+ this._enablePreflight = undefined;
341
+ }
342
+ // Temporarily expose input value. Use with caution.
343
+ get enablePreflightInput() {
344
+ return this._enablePreflight;
345
+ }
346
+ get endpoint() {
347
+ return this._endpoint;
348
+ }
349
+ set endpoint(value) {
350
+ this._endpoint = value;
351
+ }
352
+ resetEndpoint() {
353
+ this._endpoint = undefined;
354
+ }
355
+ // Temporarily expose input value. Use with caution.
356
+ get endpointInput() {
357
+ return this._endpoint;
358
+ }
359
+ get environment() {
360
+ return this._environment;
361
+ }
362
+ set environment(value) {
363
+ this._environment = value;
364
+ }
365
+ resetEnvironment() {
366
+ this._environment = undefined;
367
+ }
368
+ // Temporarily expose input value. Use with caution.
369
+ get environmentInput() {
370
+ return this._environment;
371
+ }
372
+ get ignoreNoOpChanges() {
373
+ return this._ignoreNoOpChanges;
374
+ }
375
+ set ignoreNoOpChanges(value) {
376
+ this._ignoreNoOpChanges = value;
377
+ }
378
+ resetIgnoreNoOpChanges() {
379
+ this._ignoreNoOpChanges = undefined;
380
+ }
381
+ // Temporarily expose input value. Use with caution.
382
+ get ignoreNoOpChangesInput() {
383
+ return this._ignoreNoOpChanges;
384
+ }
385
+ get maximumBusyRetryAttempts() {
386
+ return this._maximumBusyRetryAttempts;
387
+ }
388
+ set maximumBusyRetryAttempts(value) {
389
+ this._maximumBusyRetryAttempts = value;
390
+ }
391
+ resetMaximumBusyRetryAttempts() {
392
+ this._maximumBusyRetryAttempts = undefined;
393
+ }
394
+ // Temporarily expose input value. Use with caution.
395
+ get maximumBusyRetryAttemptsInput() {
396
+ return this._maximumBusyRetryAttempts;
397
+ }
398
+ get oidcAzureServiceConnectionId() {
399
+ return this._oidcAzureServiceConnectionId;
400
+ }
401
+ set oidcAzureServiceConnectionId(value) {
402
+ this._oidcAzureServiceConnectionId = value;
403
+ }
404
+ resetOidcAzureServiceConnectionId() {
405
+ this._oidcAzureServiceConnectionId = undefined;
406
+ }
407
+ // Temporarily expose input value. Use with caution.
408
+ get oidcAzureServiceConnectionIdInput() {
409
+ return this._oidcAzureServiceConnectionId;
410
+ }
411
+ get oidcRequestToken() {
412
+ return this._oidcRequestToken;
413
+ }
414
+ set oidcRequestToken(value) {
415
+ this._oidcRequestToken = value;
416
+ }
417
+ resetOidcRequestToken() {
418
+ this._oidcRequestToken = undefined;
419
+ }
420
+ // Temporarily expose input value. Use with caution.
421
+ get oidcRequestTokenInput() {
422
+ return this._oidcRequestToken;
423
+ }
424
+ get oidcRequestUrl() {
425
+ return this._oidcRequestUrl;
426
+ }
427
+ set oidcRequestUrl(value) {
428
+ this._oidcRequestUrl = value;
429
+ }
430
+ resetOidcRequestUrl() {
431
+ this._oidcRequestUrl = undefined;
432
+ }
433
+ // Temporarily expose input value. Use with caution.
434
+ get oidcRequestUrlInput() {
435
+ return this._oidcRequestUrl;
436
+ }
437
+ get oidcToken() {
438
+ return this._oidcToken;
439
+ }
440
+ set oidcToken(value) {
441
+ this._oidcToken = value;
442
+ }
443
+ resetOidcToken() {
444
+ this._oidcToken = undefined;
445
+ }
446
+ // Temporarily expose input value. Use with caution.
447
+ get oidcTokenInput() {
448
+ return this._oidcToken;
449
+ }
450
+ get oidcTokenFilePath() {
451
+ return this._oidcTokenFilePath;
452
+ }
453
+ set oidcTokenFilePath(value) {
454
+ this._oidcTokenFilePath = value;
455
+ }
456
+ resetOidcTokenFilePath() {
457
+ this._oidcTokenFilePath = undefined;
458
+ }
459
+ // Temporarily expose input value. Use with caution.
460
+ get oidcTokenFilePathInput() {
461
+ return this._oidcTokenFilePath;
462
+ }
463
+ get partnerId() {
464
+ return this._partnerId;
465
+ }
466
+ set partnerId(value) {
467
+ this._partnerId = value;
468
+ }
469
+ resetPartnerId() {
470
+ this._partnerId = undefined;
471
+ }
472
+ // Temporarily expose input value. Use with caution.
473
+ get partnerIdInput() {
474
+ return this._partnerId;
475
+ }
476
+ get skipProviderRegistration() {
477
+ return this._skipProviderRegistration;
478
+ }
479
+ set skipProviderRegistration(value) {
480
+ this._skipProviderRegistration = value;
481
+ }
482
+ resetSkipProviderRegistration() {
483
+ this._skipProviderRegistration = undefined;
484
+ }
485
+ // Temporarily expose input value. Use with caution.
486
+ get skipProviderRegistrationInput() {
487
+ return this._skipProviderRegistration;
488
+ }
489
+ get subscriptionId() {
490
+ return this._subscriptionId;
491
+ }
492
+ set subscriptionId(value) {
493
+ this._subscriptionId = value;
494
+ }
495
+ resetSubscriptionId() {
496
+ this._subscriptionId = undefined;
497
+ }
498
+ // Temporarily expose input value. Use with caution.
499
+ get subscriptionIdInput() {
500
+ return this._subscriptionId;
501
+ }
502
+ get tenantId() {
503
+ return this._tenantId;
504
+ }
505
+ set tenantId(value) {
506
+ this._tenantId = value;
507
+ }
508
+ resetTenantId() {
509
+ this._tenantId = undefined;
510
+ }
511
+ // Temporarily expose input value. Use with caution.
512
+ get tenantIdInput() {
513
+ return this._tenantId;
514
+ }
515
+ get useAksWorkloadIdentity() {
516
+ return this._useAksWorkloadIdentity;
517
+ }
518
+ set useAksWorkloadIdentity(value) {
519
+ this._useAksWorkloadIdentity = value;
520
+ }
521
+ resetUseAksWorkloadIdentity() {
522
+ this._useAksWorkloadIdentity = undefined;
523
+ }
524
+ // Temporarily expose input value. Use with caution.
525
+ get useAksWorkloadIdentityInput() {
526
+ return this._useAksWorkloadIdentity;
527
+ }
528
+ get useCli() {
529
+ return this._useCli;
530
+ }
531
+ set useCli(value) {
532
+ this._useCli = value;
533
+ }
534
+ resetUseCli() {
535
+ this._useCli = undefined;
536
+ }
537
+ // Temporarily expose input value. Use with caution.
538
+ get useCliInput() {
539
+ return this._useCli;
540
+ }
541
+ get useMsi() {
542
+ return this._useMsi;
543
+ }
544
+ set useMsi(value) {
545
+ this._useMsi = value;
546
+ }
547
+ resetUseMsi() {
548
+ this._useMsi = undefined;
549
+ }
550
+ // Temporarily expose input value. Use with caution.
551
+ get useMsiInput() {
552
+ return this._useMsi;
553
+ }
554
+ get useOidc() {
555
+ return this._useOidc;
556
+ }
557
+ set useOidc(value) {
558
+ this._useOidc = value;
559
+ }
560
+ resetUseOidc() {
561
+ this._useOidc = undefined;
562
+ }
563
+ // Temporarily expose input value. Use with caution.
564
+ get useOidcInput() {
565
+ return this._useOidc;
566
+ }
567
+ get alias() {
568
+ return this._alias;
569
+ }
570
+ set alias(value) {
571
+ this._alias = value;
572
+ }
573
+ resetAlias() {
574
+ this._alias = undefined;
575
+ }
576
+ // Temporarily expose input value. Use with caution.
577
+ get aliasInput() {
578
+ return this._alias;
579
+ }
580
+ // =========
581
+ // SYNTHESIS
582
+ // =========
583
+ synthesizeAttributes() {
584
+ return {
585
+ auxiliary_tenant_ids: cdktf.listMapper(cdktf.stringToTerraform, false)(this._auxiliaryTenantIds),
586
+ client_certificate: cdktf.stringToTerraform(this._clientCertificate),
587
+ client_certificate_password: cdktf.stringToTerraform(this._clientCertificatePassword),
588
+ client_certificate_path: cdktf.stringToTerraform(this._clientCertificatePath),
589
+ client_id: cdktf.stringToTerraform(this._clientId),
590
+ client_id_file_path: cdktf.stringToTerraform(this._clientIdFilePath),
591
+ client_secret: cdktf.stringToTerraform(this._clientSecret),
592
+ client_secret_file_path: cdktf.stringToTerraform(this._clientSecretFilePath),
593
+ custom_correlation_request_id: cdktf.stringToTerraform(this._customCorrelationRequestId),
594
+ default_location: cdktf.stringToTerraform(this._defaultLocation),
595
+ default_name: cdktf.stringToTerraform(this._defaultName),
596
+ default_tags: cdktf.hashMapper(cdktf.stringToTerraform)(this._defaultTags),
597
+ disable_correlation_request_id: cdktf.booleanToTerraform(this._disableCorrelationRequestId),
598
+ disable_default_output: cdktf.booleanToTerraform(this._disableDefaultOutput),
599
+ disable_instance_discovery: cdktf.booleanToTerraform(this._disableInstanceDiscovery),
600
+ disable_terraform_partner_id: cdktf.booleanToTerraform(this._disableTerraformPartnerId),
601
+ enable_preflight: cdktf.booleanToTerraform(this._enablePreflight),
602
+ endpoint: cdktf.listMapper(azapiProviderEndpointToTerraform, false)(this._endpoint),
603
+ environment: cdktf.stringToTerraform(this._environment),
604
+ ignore_no_op_changes: cdktf.booleanToTerraform(this._ignoreNoOpChanges),
605
+ maximum_busy_retry_attempts: cdktf.numberToTerraform(this._maximumBusyRetryAttempts),
606
+ oidc_azure_service_connection_id: cdktf.stringToTerraform(this._oidcAzureServiceConnectionId),
607
+ oidc_request_token: cdktf.stringToTerraform(this._oidcRequestToken),
608
+ oidc_request_url: cdktf.stringToTerraform(this._oidcRequestUrl),
609
+ oidc_token: cdktf.stringToTerraform(this._oidcToken),
610
+ oidc_token_file_path: cdktf.stringToTerraform(this._oidcTokenFilePath),
611
+ partner_id: cdktf.stringToTerraform(this._partnerId),
612
+ skip_provider_registration: cdktf.booleanToTerraform(this._skipProviderRegistration),
613
+ subscription_id: cdktf.stringToTerraform(this._subscriptionId),
614
+ tenant_id: cdktf.stringToTerraform(this._tenantId),
615
+ use_aks_workload_identity: cdktf.booleanToTerraform(this._useAksWorkloadIdentity),
616
+ use_cli: cdktf.booleanToTerraform(this._useCli),
617
+ use_msi: cdktf.booleanToTerraform(this._useMsi),
618
+ use_oidc: cdktf.booleanToTerraform(this._useOidc),
619
+ alias: cdktf.stringToTerraform(this._alias),
620
+ };
621
+ }
622
+ synthesizeHclAttributes() {
623
+ const attrs = {
624
+ auxiliary_tenant_ids: {
625
+ value: cdktf.listMapperHcl(cdktf.stringToHclTerraform, false)(this._auxiliaryTenantIds),
626
+ isBlock: false,
627
+ type: "list",
628
+ storageClassType: "stringList",
629
+ },
630
+ client_certificate: {
631
+ value: cdktf.stringToHclTerraform(this._clientCertificate),
632
+ isBlock: false,
633
+ type: "simple",
634
+ storageClassType: "string",
635
+ },
636
+ client_certificate_password: {
637
+ value: cdktf.stringToHclTerraform(this._clientCertificatePassword),
638
+ isBlock: false,
639
+ type: "simple",
640
+ storageClassType: "string",
641
+ },
642
+ client_certificate_path: {
643
+ value: cdktf.stringToHclTerraform(this._clientCertificatePath),
644
+ isBlock: false,
645
+ type: "simple",
646
+ storageClassType: "string",
647
+ },
648
+ client_id: {
649
+ value: cdktf.stringToHclTerraform(this._clientId),
650
+ isBlock: false,
651
+ type: "simple",
652
+ storageClassType: "string",
653
+ },
654
+ client_id_file_path: {
655
+ value: cdktf.stringToHclTerraform(this._clientIdFilePath),
656
+ isBlock: false,
657
+ type: "simple",
658
+ storageClassType: "string",
659
+ },
660
+ client_secret: {
661
+ value: cdktf.stringToHclTerraform(this._clientSecret),
662
+ isBlock: false,
663
+ type: "simple",
664
+ storageClassType: "string",
665
+ },
666
+ client_secret_file_path: {
667
+ value: cdktf.stringToHclTerraform(this._clientSecretFilePath),
668
+ isBlock: false,
669
+ type: "simple",
670
+ storageClassType: "string",
671
+ },
672
+ custom_correlation_request_id: {
673
+ value: cdktf.stringToHclTerraform(this._customCorrelationRequestId),
674
+ isBlock: false,
675
+ type: "simple",
676
+ storageClassType: "string",
677
+ },
678
+ default_location: {
679
+ value: cdktf.stringToHclTerraform(this._defaultLocation),
680
+ isBlock: false,
681
+ type: "simple",
682
+ storageClassType: "string",
683
+ },
684
+ default_name: {
685
+ value: cdktf.stringToHclTerraform(this._defaultName),
686
+ isBlock: false,
687
+ type: "simple",
688
+ storageClassType: "string",
689
+ },
690
+ default_tags: {
691
+ value: cdktf.hashMapperHcl(cdktf.stringToHclTerraform)(this._defaultTags),
692
+ isBlock: false,
693
+ type: "map",
694
+ storageClassType: "stringMap",
695
+ },
696
+ disable_correlation_request_id: {
697
+ value: cdktf.booleanToHclTerraform(this._disableCorrelationRequestId),
698
+ isBlock: false,
699
+ type: "simple",
700
+ storageClassType: "boolean",
701
+ },
702
+ disable_default_output: {
703
+ value: cdktf.booleanToHclTerraform(this._disableDefaultOutput),
704
+ isBlock: false,
705
+ type: "simple",
706
+ storageClassType: "boolean",
707
+ },
708
+ disable_instance_discovery: {
709
+ value: cdktf.booleanToHclTerraform(this._disableInstanceDiscovery),
710
+ isBlock: false,
711
+ type: "simple",
712
+ storageClassType: "boolean",
713
+ },
714
+ disable_terraform_partner_id: {
715
+ value: cdktf.booleanToHclTerraform(this._disableTerraformPartnerId),
716
+ isBlock: false,
717
+ type: "simple",
718
+ storageClassType: "boolean",
719
+ },
720
+ enable_preflight: {
721
+ value: cdktf.booleanToHclTerraform(this._enablePreflight),
722
+ isBlock: false,
723
+ type: "simple",
724
+ storageClassType: "boolean",
725
+ },
726
+ endpoint: {
727
+ value: cdktf.listMapperHcl(azapiProviderEndpointToHclTerraform, false)(this._endpoint),
728
+ isBlock: true,
729
+ type: "list",
730
+ storageClassType: "AzapiProviderEndpointList",
731
+ },
732
+ environment: {
733
+ value: cdktf.stringToHclTerraform(this._environment),
734
+ isBlock: false,
735
+ type: "simple",
736
+ storageClassType: "string",
737
+ },
738
+ ignore_no_op_changes: {
739
+ value: cdktf.booleanToHclTerraform(this._ignoreNoOpChanges),
740
+ isBlock: false,
741
+ type: "simple",
742
+ storageClassType: "boolean",
743
+ },
744
+ maximum_busy_retry_attempts: {
745
+ value: cdktf.numberToHclTerraform(this._maximumBusyRetryAttempts),
746
+ isBlock: false,
747
+ type: "simple",
748
+ storageClassType: "number",
749
+ },
750
+ oidc_azure_service_connection_id: {
751
+ value: cdktf.stringToHclTerraform(this._oidcAzureServiceConnectionId),
752
+ isBlock: false,
753
+ type: "simple",
754
+ storageClassType: "string",
755
+ },
756
+ oidc_request_token: {
757
+ value: cdktf.stringToHclTerraform(this._oidcRequestToken),
758
+ isBlock: false,
759
+ type: "simple",
760
+ storageClassType: "string",
761
+ },
762
+ oidc_request_url: {
763
+ value: cdktf.stringToHclTerraform(this._oidcRequestUrl),
764
+ isBlock: false,
765
+ type: "simple",
766
+ storageClassType: "string",
767
+ },
768
+ oidc_token: {
769
+ value: cdktf.stringToHclTerraform(this._oidcToken),
770
+ isBlock: false,
771
+ type: "simple",
772
+ storageClassType: "string",
773
+ },
774
+ oidc_token_file_path: {
775
+ value: cdktf.stringToHclTerraform(this._oidcTokenFilePath),
776
+ isBlock: false,
777
+ type: "simple",
778
+ storageClassType: "string",
779
+ },
780
+ partner_id: {
781
+ value: cdktf.stringToHclTerraform(this._partnerId),
782
+ isBlock: false,
783
+ type: "simple",
784
+ storageClassType: "string",
785
+ },
786
+ skip_provider_registration: {
787
+ value: cdktf.booleanToHclTerraform(this._skipProviderRegistration),
788
+ isBlock: false,
789
+ type: "simple",
790
+ storageClassType: "boolean",
791
+ },
792
+ subscription_id: {
793
+ value: cdktf.stringToHclTerraform(this._subscriptionId),
794
+ isBlock: false,
795
+ type: "simple",
796
+ storageClassType: "string",
797
+ },
798
+ tenant_id: {
799
+ value: cdktf.stringToHclTerraform(this._tenantId),
800
+ isBlock: false,
801
+ type: "simple",
802
+ storageClassType: "string",
803
+ },
804
+ use_aks_workload_identity: {
805
+ value: cdktf.booleanToHclTerraform(this._useAksWorkloadIdentity),
806
+ isBlock: false,
807
+ type: "simple",
808
+ storageClassType: "boolean",
809
+ },
810
+ use_cli: {
811
+ value: cdktf.booleanToHclTerraform(this._useCli),
812
+ isBlock: false,
813
+ type: "simple",
814
+ storageClassType: "boolean",
815
+ },
816
+ use_msi: {
817
+ value: cdktf.booleanToHclTerraform(this._useMsi),
818
+ isBlock: false,
819
+ type: "simple",
820
+ storageClassType: "boolean",
821
+ },
822
+ use_oidc: {
823
+ value: cdktf.booleanToHclTerraform(this._useOidc),
824
+ isBlock: false,
825
+ type: "simple",
826
+ storageClassType: "boolean",
827
+ },
828
+ alias: {
829
+ value: cdktf.stringToHclTerraform(this._alias),
830
+ isBlock: false,
831
+ type: "simple",
832
+ storageClassType: "string",
833
+ },
834
+ };
835
+ // remove undefined attributes
836
+ return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
837
+ }
838
+ }
839
+ exports.AzapiProvider = AzapiProvider;
840
+ // =================
841
+ // STATIC PROPERTIES
842
+ // =================
843
+ AzapiProvider.tfResourceType = "azapi";
844
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29yZS1henVyZS9saWIvYXphcGkvcHJvdmlkZXJzLWF6YXBpL3Byb3ZpZGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxpRUFBaUU7QUFDakUsMkNBQTJDOzs7QUFnUDNDLDRFQVVDO0FBR0Qsa0ZBNEJDO0FBdFJELCtCQUErQjtBQTZPL0IsU0FBZ0IsZ0NBQWdDLENBQUMsTUFBa0Q7SUFDakcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDO0lBQUMsQ0FBQztJQUM1RixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsb0hBQW9ILENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBQ0QsT0FBTztRQUNMLCtCQUErQixFQUFFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFPLENBQUMsNEJBQTRCLENBQUM7UUFDOUYseUJBQXlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU8sQ0FBQyx1QkFBdUIsQ0FBQztRQUNuRix5QkFBeUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTyxDQUFDLHVCQUF1QixDQUFDO0tBQ3BGLENBQUE7QUFDSCxDQUFDO0FBR0QsU0FBZ0IsbUNBQW1DLENBQUMsTUFBa0Q7SUFDcEcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUFDLE9BQU8sTUFBTSxDQUFDO0lBQUMsQ0FBQztJQUM1RixJQUFJLEtBQUssQ0FBQyxnQkFBZ0Is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QUFLLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQzlDLE9BQU8sRUFBRSxLQUFLO2dCQUNkLElBQUksRUFBRSxRQUFRO2dCQUNkLGdCQUFnQixFQUFFLFFBQVE7YUFDM0I7U0FDRixDQUFDO1FBRUYsOEJBQThCO1FBQzlCLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFFLENBQUMsQ0FBQTtJQUM1SCxDQUFDOztBQXY0Qkgsc0NBdzRCQztBQXQ0QkMsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDRyw0QkFBYyxHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9henVyZS9hemFwaS8yLjcuMC9kb2NzXG4vLyBnZW5lcmF0ZWQgZnJvbSB0ZXJyYWZvcm0gcmVzb3VyY2Ugc2NoZW1hXG5cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgY2RrdGYgZnJvbSAnY2RrdGYnO1xuXG4vLyBDb25maWd1cmF0aW9uXG5cbmV4cG9ydCBpbnRlcmZhY2UgQXphcGlQcm92aWRlckNvbmZpZyB7XG4gIC8qKlxuICAqIExpc3Qgb2YgYXV4aWxpYXJ5IFRlbmFudCBJRHMgcmVxdWlyZWQgZm9yIG11bHRpLXRlbmFuY3kgYW5kIGNyb3NzLXRlbmFudCBzY2VuYXJpb3MuIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBgQVJNX0FVWElMSUFSWV9URU5BTlRfSURTYCBFbnZpcm9ubWVudCBWYXJpYWJsZS5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2F6dXJlL2F6YXBpLzIuNy4wL2RvY3MjYXV4aWxpYXJ5X3RlbmFudF9pZHMgQXphcGlQcm92aWRlciNhdXhpbGlhcnlfdGVuYW50X2lkc31cbiAgKi9cbiAgcmVhZG9ubHkgYXV4aWxpYXJ5VGVuYW50SWRzPzogc3RyaW5nW107XG4gIC8qKlxuICAqIEEgYmFzZTY0LWVuY29kZWQgUEtDUyMxMiBidW5kbGUgdG8gYmUgdXNlZCBhcyB0aGUgY2xpZW50IGNlcnRpZmljYXRlIGZvciBhdXRoZW50aWNhdGlvbi4gVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIGBBUk1fQ0xJRU5UX0NFUlRJRklDQVRFYCBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2F6dXJlL2F6YXBpLzIuNy4wL2RvY3MjY2xpZW50X2NlcnRpZmljYXRlIEF6YXBpUHJvdmlkZXIjY2xpZW50X2NlcnRpZmljYXRlfVxuICAqL1xuICByZWFkb25seSBjbGllbnRDZXJ0aWZpY2F0ZT86IHN0cmluZztcbiAgLyoqXG4gICogVGhlIHBhc3N3b3JkIGFzc29jaWF0ZWQgd2l0aCB0aGUgQ2xpZW50IENlcnRpZmljYXRlLiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgYEFSTV9DTElFTlRfQ0VSVElGSUNBVEVfUEFTU1dPUkRgIEVudmlyb25tZW50IFZhcmlhYmxlLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvYXp1cmUvYXphcGkvMi43LjAvZG9jcyNjbGllbnRfY2VydGlmaWNhdGVfcGFzc3dvcmQgQXphcGlQcm92aWRlciNjbGllbnRfY2VydGlmaWNhdGVfcGFzc3dvcmR9XG4gICovXG4gIHJlYWRvbmx5IGNsaWVudENlcnRpZmljYXRlUGFzc3dvcmQ/OiBzdHJpbmc7XG4gIC8qKlxuICAqIFRoZSBwYXRoIHRvIHRoZSBDbGllbnQgQ2VydGlmaWNhdGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBTZXJ2aWNlIFByaW5jaXBhbCB3aGljaCBzaG91bGQgYmUgdXNlZC4gVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIGBBUk1fQ0xJRU5UX0NFUlRJRklDQVRFX1BBVEhgIEVudmlyb25tZW50IFZhcmlhYmxlLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvYXp1cmUvYXphcGkvMi43LjAvZG9jcyNjbGllbnRfY2VydGlmaWNhdGVfcGF0aCBBemFwaVByb3ZpZGVyI2NsaWVudF9jZXJ0aWZpY2F0ZV9wYXRofVxuICAqL1xuICByZWFkb25seSBjbGllbnRDZXJ0aWZpY2F0ZVBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAqIFRoZSBDbGllbnQgSUQgd2hpY2ggc2hvdWxkIGJlIHVzZWQuIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBgQVJNX0NMSUVOVF9JRGAsIGBBWlVSRV9DTElFTlRfSURgIEVudmlyb25tZW50IFZhcmlhYmxlLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvYXp1cmUvYXphcGkvMi43LjAvZG9jcyNjbGllbnRfaWQgQXphcGlQcm92aWRlciNjbGllbnRfaWR9XG4gICovXG4gIHJlYWRvbmx5IGNsaWVudElkPzogc3RyaW5nO1xuICAvKipcbiAgKiBUaGUgcGF0aCB0byBhIGZpbGUgY29udGFpbmluZyB0aGUgQ2xpZW50IElEIHdoaWNoIHNob3VsZCBiZSB1c2VkLiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgYEFSTV9DTElFTlRfSURfRklMRV9QQVRIYCBFbnZpcm9ubWVudCBWYXJpYWJsZS5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2F6dXJlL2F6YXBpLzIuNy4wL2RvY3MjY2xpZW50X2lkX2ZpbGVfcGF0aCBBemFwaVByb3ZpZGVyI2NsaWVudF9pZF9maWxlX3BhdGh9XG4gICovXG4gIHJlYWRvbmx5IGNsaWVudElkRmlsZVBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAqIFRoZSBDbGllbnQgU2VjcmV0IHdoaWNoIHNob3VsZCBiZSB1c2VkLiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgYEFSTV9DTElFTlRfU0VDUkVUYCBFbnZpcm9ubWVudCBWYXJpYWJsZS5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2F6dXJlL2F6YXBpLzIuNy4wL2RvY3MjY2xpZW50X3NlY3JldCBBemFwaVByb3ZpZGVyI2NsaWVudF9zZWNyZXR9XG4gICovXG4gIHJlYWRvbmx5IGNsaWVudFNlY3JldD86IHN0cmluZztcbiAgLyoqXG4gICogVGhlIHBhdGggdG8gYSBmaWxlIGNvbnRhaW5pbmcgdGhlIENsaWVudCBTZWNyZXQgd2hpY2ggc2hvdWxkIGJlIHVzZWQuIEZvciB1c2UgV2hlbiBhdXRoZW50aWNhdGluZyBhcyBhIFNlcnZpY2UgUHJpbmNpcGFsIHVzaW5nIGEgQ2xpZW50IFNlY3JldC4gVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIGBBUk1fQ0xJRU5UX1NFQ1JFVF9GSUxFX1BBVEhgIEVudmlyb25tZW50IFZhcmlhYmxlLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvYXp1cmUvYXphcGkvMi43LjAvZG9jcyNjbGllbnRfc2VjcmV0X2ZpbGVfcGF0aCBBemFwaVByb3ZpZGVyI2NsaWVudF9zZWNyZXRfZmlsZV9wYXRofVxuICAqL1xuICByZWFkb25seSBjbGllbnRTZWNyZXRGaWxlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICogVGhlIHZhbHVlIG9mIHRoZSBgeC1tcy1jb3JyZWxhdGlvbi1yZXF1ZXN0LWlkYCBoZWFkZXIsIG90aGVyd2lzZSBhbiBhdXRvLWdlbmVyYXRlZCBVVUlEIHdpbGwgYmUgdXNlZC4gVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIGBBUk1fQ09SUkVMQVRJT05fUkVRVUVTVF9JRGAgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9henVyZS9hemFwaS8yLjcuMC9kb2NzI2N1c3RvbV9jb3JyZWxhdGlvbl9yZXF1ZXN0X2lkIEF6YXBpUHJvdmlkZXIjY3VzdG9tX2NvcnJlbGF0aW9uX3JlcXVlc3RfaWR9XG4gICovXG4gIHJlYWRvbmx5IGN1c3RvbUNvcnJlbGF0aW9uUmVxdWVzdElkPzogc3RyaW5nO1xuICAvKipcbiAgKiAgVGhlIGRlZmF1bHQgQXp1cmUgUmVnaW9uIHdoZXJlIHRoZSBhenVyZSByZXNvdXJjZSBzaG91bGQgZXhpc3QuIFRoZSBgbG9jYXRpb25gIGluIGVhY2ggcmVzb3VyY2UgYmxvY2sgY2FuIG92ZXJyaWRlIHRoZSBgZGVmYXVsdF9sb2NhdGlvbmAuIENoYW5naW5nIHRoaXMgZm9yY2VzIG5ldyByZXNvdXJjZXMgdG8gYmUgY3JlYXRlZC5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2F6dXJlL2F6YXBpLzIuNy4wL2RvY3MjZGVmYXVsdF9sb2NhdGlvbiBBemFwaVByb3ZpZGVyI2RlZmF1bHRfbG9jYXRpb259XG4gICovXG4gIHJlYWRvbmx5IGRlZmF1bHRMb2NhdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICogVGhlIGRlZmF1bHQgbmFtZSB0byBjcmVhdGUgdGhlIGF6dXJlIHJlc291cmNlLiBUaGUgYG5hbWVgIGluIGVhY2ggcmVzb3VyY2UgYmxvY2sgY2FuIG92ZXJyaWRlIHRoZSBgZGVmYXVsdF9uYW1lYC4gQ2hhbmdpbmcgdGhpcyBmb3JjZXMgbmV3IHJlc291cmNlcyB0byBiZSBjcmVhdGVkLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvYXp1cmUvYXphcGkvMi43LjAvZG9jcyNkZWZhdWx0X25hbWUgQXphcGlQcm92aWRlciNkZWZhdWx0X25hbWV9XG4gICovXG4gIHJlYWRvbmx5IGRlZmF1bHROYW1lPzogc3RyaW5nO1xuICAvKipcbiAgKiBBIG1hcHBpbmcgb2YgdGFncyB3aGljaCBzaG91bGQgYmUgYXNzaWduZWQgdG8gdGhlIGF6dXJlIHJlc291cmNlIGFzIGRlZmF1bHQgdGFncy4gVGhlYHRhZ3NgIGluIGVhY2ggcmVzb3VyY2UgYmxvY2sgY2FuIG92ZXJyaWRlIHRoZSBgZGVmYXVsdF90YWdzYC5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2F6dXJlL2F6YXBpLzIuNy4wL2RvY3MjZGVmYXVsdF90YWdzIEF6YXBpUHJvdmlkZXIjZGVmYXVsdF90YWdzfVxuICAqL1xuICByZWFkb25seSBkZWZhdWx0VGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIC8qKlxuICAqIFRoaXMgd2lsbCBkaXNhYmxlIHRoZSB4LW1zLWNvcnJlbGF0aW9uLXJlcXVlc3QtaWQgaGVhZGVyLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvYXp1cmUvYXphcGkvMi43LjAvZG9jcyNkaXNhYmxlX2NvcnJlbGF0aW9uX3JlcXVlc3RfaWQgQXphcGlQcm92aWRlciNkaXNhYmxlX2NvcnJlbGF0aW9uX3JlcXVlc3RfaWR9XG4gICovXG4gIHJlYWRvbmx5IGRpc2FibGVDb3JyZWxhdGlvblJlcXVlc3RJZD86IGJvb2xlYW4gfCBjZGt0Zi5JUmVzb2x2YWJsZTtcbiAgLyoqXG4gICogRGlzYWJsZSBkZWZhdWx0IG91dHB1dC4gVGhlIGRlZmF1bHQgaXMgZmFsc2UuIFdoZW4gc2V0IHRvIGZhbHNlLCB0aGUgcHJvdmlkZXIgd2lsbCBvdXRwdXQgdGhlIHJlYWQtb25seSBwcm9wZXJ0aWVzIGlmIGByZXNwb25zZV9leHBvcnRfdmFsdWVzYCBpcyBub3Qgc3BlY2lmaWVkIGluIHRoZSByZXNvdXJjZSBibG9jay4gV2hlbiBzZXQgdG8gdHJ1ZSwgdGhlIHByb3ZpZGVyIHdpbGwgZGlzYWJsZSB0aGlzIG91dHB1dC4gVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIGBBUk1fRElTQUJMRV9ERUZBVUxUX09VVFBVVGAgRW52aXJvbm1lbnQgVmFyaWFibGUuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9henVyZS9hemFwaS8yLjcuMC9kb2NzI2Rpc2FibGVfZGVmYXVsdF9vdXRwdXQgQXphcGlQcm92aWRlciNkaXNhYmxlX2RlZmF1bHRfb3V0cHV0fVxuICAqL1xuICByZWFkb25seSBkaXNhYmxlRGVmYXVsdE91dHB1dD86IGJvb2xlYW4gfCBjZGt0Zi5JUmVzb2x2YWJsZTtcbiAgLyoqXG4gICogRGlzYWJsZXMgSW5zdGFuY2UgRGlzY292ZXJ5LCB3aGljaCB2YWxpZGF0ZXMgdGhhdCB0aGUgQXV0aG9yaXR5IGlzIHZhbGlkIGFuZCBrbm93biBieSB0aGUgTWljcm9zb2Z0IEVudHJhIGluc3RhbmNlIG1ldGFkYXRhIHNlcnZpY2UgYXQgYGh0dHBzOi8vbG9naW4ubWljcm9zb2Z0LmNvbWAgYmVmb3JlIGF1dGhlbnRpY2F0aW5nLiBUaGlzIHNob3VsZCBvbmx5IGJlIGVuYWJsZWQgd2hlbiB0aGUgY29uZmlndXJlZCBhdXRob3JpdHkgaXMga25vd24gdG8gYmUgdmFsaWQgYW5kIHRydXN0d29ydGh5IC0gc3VjaCBhcyB3aGVuIHJ1bm5pbmcgYWdhaW5zdCBBenVyZSBTdGFjayBvciB3aGVuIGBlbnZpcm9ubWVudGAgaXMgc2V0IHRvIGBjdXN0b21gLiBUaGlzIGNhbiBhbHNvIGJlIHNwZWNpZmllZCB2aWEgdGhlIGBBUk1fRElTQUJMRV9JTlNUQU5DRV9ESVNDT1ZFUllgIGVudmlyb25tZW50IHZhcmlhYmxlLiBEZWZhdWx0cyB0byBgZmFsc2VgLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvYXp1cmUvYXphcGkvMi43LjAvZG9jcyNkaXNhYmxlX2luc3RhbmNlX2Rpc2NvdmVyeSBBemFwaVByb3ZpZGVyI2Rpc2FibGVfaW5zdGFuY2VfZGlzY292ZXJ5fVxuICAqL1xuICByZWFkb25seSBkaXNhYmxlSW5zdGFuY2VEaXNjb3Zlcnk/OiBib29sZWFuIHwgY2RrdGYuSVJlc29sdmFibGU7XG4gIC8qKlxuICAqIERpc2FibGUgc2VuZGluZyB0aGUgVGVycmFmb3JtIFBhcnRuZXIgSUQgaWYgYSBjdXN0b20gYHBhcnRuZXJfaWRgIGlzbid0IHNwZWNpZmllZCwgd2hpY2ggYWxsb3dzIE1pY3Jvc29mdCB0byBiZXR0ZXIgdW5kZXJzdGFuZCB0aGUgdXNhZ2Ugb2YgVGVycmFmb3JtLiBUaGUgUGFydG5lciBJRCBkb2VzIG5vdCBnaXZlIEhhc2hpQ29ycCBhbnkgZGlyZWN0IGFjY2VzcyB0byB1c2FnZSBpbmZvcm1hdGlvbi4gVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIGBBUk1fRElTQUJMRV9URVJSQUZPUk1fUEFSVE5FUl9JRGAgZW52aXJvbm1lbnQgdmFyaWFibGUuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9henVyZS9hemFwaS8yLjcuMC9kb2NzI2Rpc2FibGVfdGVycmFmb3JtX3BhcnRuZXJfaWQgQXphcGlQcm92aWRlciNkaXNhYmxlX3RlcnJhZm9ybV9wYXJ0bmVyX2lkfVxuICAqL1xuICByZWFkb25seSBkaXNhYmxlVGVycmFmb3JtUGFydG5lcklkPzogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlO1xuICAvKipcbiAgKiBFbmFibGUgUHJlZmxpZ2h0IFZhbGlkYXRpb24uIFRoZSBkZWZhdWx0IGlzIGZhbHNlLiBXaGVuIHNldCB0byB0cnVlLCB0aGUgcHJvdmlkZXIgd2lsbCB1c2UgUHJlZmxpZ2h0IHRvIGRvIHN0YXRpYyB2YWxpZGF0aW9uIGJlZm9yZSByZWFsbHkgZGVwbG95aW5nIGEgbmV3IHJlc291cmNlLiBXaGVuIHNldCB0byBmYWxzZSwgdGhlIHByb3ZpZGVyIHdpbGwgZGlzYWJsZSB0aGlzIHZhbGlkYXRpb24uIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBgQVJNX0VOQUJMRV9QUkVGTElHSFRgIEVudmlyb25tZW50IFZhcmlhYmxlLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvYXp1cmUvYXphcGkvMi43LjAvZG9jcyNlbmFibGVfcHJlZmxpZ2h0IEF6YXBpUHJvdmlkZXIjZW5hYmxlX3ByZWZsaWdodH1cbiAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlUHJlZmxpZ2h0PzogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlO1xuICAvKipcbiAgKiBUaGUgQXp1cmUgQVBJIEVuZHBvaW50IENvbmZpZ3VyYXRpb24uXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9henVyZS9hemFwaS8yLjcuMC9kb2NzI2VuZHBvaW50IEF6YXBpUHJvdmlkZXIjZW5kcG9pbnR9XG4gICovXG4gIHJlYWRvbmx5IGVuZHBvaW50PzogQXphcGlQcm92aWRlckVuZHBvaW50W10gfCBjZGt0Zi5JUmVzb2x2YWJsZTtcbiAgLyoqXG4gICogVGhlIENsb3VkIEVudmlyb25tZW50IHdoaWNoIHNob3VsZCBiZSB1c2VkLiBQb3NzaWJsZSB2YWx1ZXMgYXJlIGBwdWJsaWNgLCBgdXNnb3Zlcm5tZW50YCwgYGNoaW5hYCBhbmQgYGN1c3RvbWAuIERlZmF1bHRzIHRvIGBwdWJsaWNgLiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgYEFSTV9FTlZJUk9OTUVOVGAgRW52aXJvbm1lbnQgVmFyaWFibGUuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9henVyZS9hemFwaS8yLjcuMC9kb2NzI2Vudmlyb25tZW50IEF6YXBpUHJvdmlkZXIjZW52aXJvbm1lbnR9XG4gICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50Pzogc3RyaW5nO1xuICAvKipcbiAgKiBJZ25vcmUgbm8tb3AgY2hhbmdlcyBmb3IgYGF6YXBpX3Jlc291cmNlYC4gVGhlIGRlZmF1bHQgaXMgdHJ1ZS4gV2hlbiBzZXQgdG8gdHJ1ZSwgdGhlIHByb3ZpZGVyIHdpbGwgc3VwcHJlc3MgY2hhbmdlcyBpbiB0aGUgYGF6YXBpX3Jlc291cmNlYCBpZiB0aGUgYGJvZHlgIGluIHRoZSBuZXcgQVBJIHZlcnNpb24gc3RpbGwgbWF0Y2hlcyB0aGUgcmVtb3RlIHN0YXRlLiBXaGVuIHNldCB0byBmYWxzZSwgdGhlIHByb3ZpZGVyIHdpbGwgbm90IHN1cHByZXNzIHRoZXNlIGNoYW5nZXMuIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBgQVJNX0lHTk9SRV9OT19PUF9DSEFOR0VTYCBFbnZpcm9ubWVudCBWYXJpYWJsZS5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2F6dXJlL2F6YXBpLzIuNy4wL2RvY3MjaWdub3JlX25vX29wX2NoYW5nZXMgQXphcGlQcm92aWRlciNpZ25vcmVfbm9fb3BfY2hhbmdlc31cbiAgKi9cbiAgcmVhZG9ubHkgaWdub3JlTm9PcENoYW5nZXM/OiBib29sZWFuIHwgY2RrdGYuSVJlc29sdmFibGU7XG4gIC8qKlxuICAqIERFUFJFQ0FURUQgLSBUaGUgbWF4aW11bSBudW1iZXIgb2YgcmV0cmllcyB0byBhdHRlbXB0IGlmIHRoZSBBenVyZSBBUEkgcmV0dXJucyBhbiBIVFRQIDQwOCwgNDI5LCA1MDAsIDUwMiwgNTAzLCBvciA1MDQgcmVzcG9uc2UuIFRoZSBkZWZhdWx0IGlzIGAzMjc2N2AsIHRoaXMgYWxsb3dzIHRoZSBwcm92aWRlciB0byByZWx5IG9uIHRoZSByZXNvdXJjZSB0aW1lb3V0IHZhbHVlcyByYXRoZXIgdGhhbiBhIG1heGltdW0gcmV0cnkgY291bnQuIFRoZSByZXNvdXJjZS1zcGVjaWZpYyByZXRyeSBjb25maWd1cmF0aW9uIG1heSBhZGRpdGlvbmFsbHkgYmUgdXNlZCB0byByZXRyeSBvbiBvdGhlciBlcnJvcnMgYW5kIGNvbmRpdGlvbnMuIFRoaXMgcHJvcGVydHkgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9henVyZS9hemFwaS8yLjcuMC9kb2NzI21heGltdW1fYnVzeV9yZXRyeV9hdHRlbXB0cyBBemFwaVByb3ZpZGVyI21heGltdW1fYnVzeV9yZXRyeV9hdHRlbXB0c31cbiAgKi9cbiAgcmVhZG9ubHkgbWF4aW11bUJ1c3lSZXRyeUF0dGVtcHRzPzogbnVtYmVyO1xuICAvKipcbiAgKiBUaGUgQXp1cmUgUGlwZWxpbmVzIFNlcnZpY2UgQ29ubmVjdGlvbiBJRCB0byB1c2UgZm9yIGF1dGhlbnRpY2F0aW9uLiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgYEFSTV9BRE9fUElQRUxJTkVfU0VSVklDRV9DT05ORUNUSU9OX0lEYCwgYEFSTV9PSURDX0FaVVJFX1NFUlZJQ0VfQ09OTkVDVElPTl9JRGAsIG9yIGBBWlVSRVNVQlNDUklQVElPTl9TRVJWSUNFX0NPTk5FQ1RJT05fSURgIEVudmlyb25tZW50IFZhcmlhYmxlcy5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2F6dXJlL2F6YXBpLzIuNy4wL2RvY3Mjb2lkY19henVyZV9zZXJ2aWNlX2Nvbm5lY3Rpb25faWQgQXphcGlQcm92aWRlciNvaWRjX2F6dXJlX3NlcnZpY2VfY29ubmVjdGlvbl9pZH1cbiAgKi9cbiAgcmVhZG9ubHkgb2lkY0F6dXJlU2VydmljZUNvbm5lY3Rpb25JZD86IHN0cmluZztcbiAgLyoqXG4gICogVGhlIGJlYXJlciB0b2tlbiBmb3IgdGhlIHJlcXVlc3QgdG8gdGhlIE9JREMgcHJvdmlkZXIuIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBgQVJNX09JRENfUkVRVUVTVF9UT0tFTmAsIGBBQ1RJT05TX0lEX1RPS0VOX1JFUVVFU1RfVE9LRU5gLCBvciBgU1lTVEVNX0FDQ0VTU1RPS0VOYCBFbnZpcm9ubWVudCBWYXJpYWJsZXMuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9henVyZS9hemFwaS8yLjcuMC9kb2NzI29pZGNfcmVxdWVzdF90b2tlbiBBemFwaVByb3ZpZGVyI29pZGNfcmVxdWVzdF90b2tlbn1cbiAgKi9cbiAgcmVhZG9ubHkgb2lkY1JlcXVlc3RUb2tlbj86IHN0cmluZztcbiAgLyoqXG4gICogVGhlIFVSTCBmb3IgdGhlIE9JREMgcHJvdmlkZXIgZnJvbSB3aGljaCB0byByZXF1ZXN0IGFuIElEIHRva2VuLiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgYEFSTV9PSURDX1JFUVVFU1RfVVJMYCwgYEFDVElPTlNfSURfVE9LRU5fUkVRVUVTVF9VUkxgLCBvciBgU1lTVEVNX09JRENSRVFVRVNUVVJJYCBFbnZpcm9ubWVudCBWYXJpYWJsZXMuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9henVyZS9hemFwaS8yLjcuMC9kb2NzI29pZGNfcmVxdWVzdF91cmwgQXphcGlQcm92aWRlciNvaWRjX3JlcXVlc3RfdXJsfVxuICAqL1xuICByZWFkb25seSBvaWRjUmVxdWVzdFVybD86IHN0cmluZztcbiAgLyoqXG4gICogVGhlIElEIHRva2VuIHdoZW4gYXV0aGVudGljYXRpbmcgdXNpbmcgT3BlbklEIENvbm5lY3QgKE9JREMpLiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgYEFSTV9PSURDX1RPS0VOYCBlbnZpcm9ubWVudCBWYXJpYWJsZS5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2F6dXJlL2F6YXBpLzIuNy4wL2RvY3Mjb2lkY190b2tlbiBBemFwaVByb3ZpZGVyI29pZGNfdG9rZW59XG4gICovXG4gIHJlYWRvbmx5IG9pZGNUb2tlbj86IHN0cmluZztcbiAgLyoqXG4gICogVGhlIHBhdGggdG8gYSBmaWxlIGNvbnRhaW5pbmcgYW4gSUQgdG9rZW4gd2hlbiBhdXRoZW50aWNhdGluZyB1c2luZyBPcGVuSUQgQ29ubmVjdCAoT0lEQykuIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBgQVJNX09JRENfVE9LRU5fRklMRV9QQVRIYCwgYEFaVVJFX0ZFREVSQVRFRF9UT0tFTl9GSUxFYCBlbnZpcm9ubWVudCBWYXJpYWJsZS5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2F6dXJlL2F6YXBpLzIuNy4wL2RvY3Mjb2lkY190b2tlbl9maWxlX3BhdGggQXphcGlQcm92aWRlciNvaWRjX3Rva2VuX2ZpbGVfcGF0aH1cbiAgKi9cbiAgcmVhZG9ubHkgb2lkY1Rva2VuRmlsZVBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAqIEEgR1VJRC9VVUlEIHRoYXQgaXMgW3JlZ2lzdGVyZWRdKGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2F6dXJlL21hcmtldHBsYWNlL2F6dXJlLXBhcnRuZXItY3VzdG9tZXItdXNhZ2UtYXR0cmlidXRpb24jcmVnaXN0ZXItZ3VpZHMtYW5kLW9mZmVycykgd2l0aCBNaWNyb3NvZnQgdG8gZmFjaWxpdGF0ZSBwYXJ0bmVyIHJlc291cmNlIHVzYWdlIGF0dHJpYnV0aW9uLiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgYEFSTV9QQVJUTkVSX0lEYCBFbnZpcm9ubWVudCBWYXJpYWJsZS5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2F6dXJlL2F6YXBpLzIuNy4wL2RvY3MjcGFydG5lcl9pZCBBemFwaVByb3ZpZGVyI3BhcnRuZXJfaWR9XG4gICovXG4gIHJlYWRvbmx5IHBhcnRuZXJJZD86IHN0cmluZztcbiAgLyoqXG4gICogU2hvdWxkIHRoZSBQcm92aWRlciBza2lwIHJlZ2lzdGVyaW5nIHRoZSBSZXNvdXJjZSBQcm92aWRlcnMgaXQgc3VwcG9ydHM/IFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBgQVJNX1NLSVBfUFJPVklERVJfUkVHSVNUUkFUSU9OYCBFbnZpcm9ubWVudCBWYXJpYWJsZS4gRGVmYXVsdHMgdG8gYGZhbHNlYC5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2F6dXJlL2F6YXBpLzIuNy4wL2RvY3Mjc2tpcF9wcm92aWRlcl9yZWdpc3RyYXRpb24gQXphcGlQcm92aWRlciNza2lwX3Byb3ZpZGVyX3JlZ2lzdHJhdGlvbn1cbiAgKi9cbiAgcmVhZG9ubHkgc2tpcFByb3ZpZGVyUmVnaXN0cmF0aW9uPzogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlO1xuICAvKipcbiAgKiBUaGUgU3Vic2NyaXB0aW9uIElEIHdoaWNoIHNob3VsZCBiZSB1c2VkLiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgYEFSTV9TVUJTQ1JJUFRJT05fSURgIEVudmlyb25tZW50IFZhcmlhYmxlLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvYXp1cmUvYXphcGkvMi43LjAvZG9jcyNzdWJzY3JpcHRpb25faWQgQXphcGlQcm92aWRlciNzdWJzY3JpcHRpb25faWR9XG4gICovXG4gIHJlYWRvbmx5IHN1YnNjcmlwdGlvbklkPzogc3RyaW5nO1xuICAvKipcbiAgKiBUaGUgVGVuYW50IElEIHNob3VsZCBiZSB1c2VkLiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgYEFSTV9URU5BTlRfSURgIEVudmlyb25tZW50IFZhcmlhYmxlLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvYXp1cmUvYXphcGkvMi43LjAvZG9jcyN0ZW5hbnRfaWQgQXphcGlQcm92aWRlciN0ZW5hbnRfaWR9XG4gICovXG4gIHJlYWRvbmx5IHRlbmFudElkPzogc3RyaW5nO1xuICAvKipcbiAgKiBTaG91bGQgQUtTIFdvcmtsb2FkIElkZW50aXR5IGJlIHVzZWQgZm9yIEF1dGhlbnRpY2F0aW9uPyBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgYEFSTV9VU0VfQUtTX1dPUktMT0FEX0lERU5USVRZYCBFbnZpcm9ubWVudCBWYXJpYWJsZS4gRGVmYXVsdHMgdG8gYGZhbHNlYC4gV2hlbiBzZXQsIGBjbGllbnRfaWRgLCBgdGVuYW50X2lkYCBhbmQgYG9pZGNfdG9rZW5fZmlsZV9wYXRoYCB3aWxsIGJlIGRldGVjdGVkIGZyb20gdGhlIGVudmlyb25tZW50IGFuZCBkbyBub3QgbmVlZCB0byBiZSBzcGVjaWZpZWQuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9henVyZS9hemFwaS8yLjcuMC9kb2NzI3VzZV9ha3Nfd29ya2xvYWRfaWRlbnRpdHkgQXphcGlQcm92aWRlciN1c2VfYWtzX3dvcmtsb2FkX2lkZW50aXR5fVxuICAqL1xuICByZWFkb25seSB1c2VBa3NXb3JrbG9hZElkZW50aXR5PzogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlO1xuICAvKipcbiAgKiBTaG91bGQgQXp1cmUgQ0xJIGJlIHVzZWQgZm9yIGF1dGhlbnRpY2F0aW9uPyBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgYEFSTV9VU0VfQ0xJYCBlbnZpcm9ubWVudCB2YXJpYWJsZS4gRGVmYXVsdHMgdG8gYHRydWVgLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvYXp1cmUvYXphcGkvMi43LjAvZG9jcyN1c2VfY2xpIEF6YXBpUHJvdmlkZXIjdXNlX2NsaX1cbiAgKi9cbiAgcmVhZG9ubHkgdXNlQ2xpPzogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlO1xuICAvKipcbiAgKiBTaG91bGQgTWFuYWdlZCBJZGVudGl0eSBiZSB1c2VkIGZvciBBdXRoZW50aWNhdGlvbj8gVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIGBBUk1fVVNFX01TSWAgRW52aXJvbm1lbnQgVmFyaWFibGUuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9henVyZS9hemFwaS8yLjcuMC9kb2NzI3VzZV9tc2kgQXphcGlQcm92aWRlciN1c2VfbXNpfVxuICAqL1xuICByZWFkb25seSB1c2VNc2k/OiBib29sZWFuIHwgY2RrdGYuSVJlc29sdmFibGU7XG4gIC8qKlxuICAqIFNob3VsZCBPSURDIGJlIHVzZWQgZm9yIEF1dGhlbnRpY2F0aW9uPyBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgYEFSTV9VU0VfT0lEQ2AgRW52aXJvbm1lbnQgVmFyaWFibGUuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9henVyZS9hemFwaS8yLjcuMC9kb2NzI3VzZV9vaWRjIEF6YXBpUHJvdmlkZXIjdXNlX29pZGN9XG4gICovXG4gIHJlYWRvbmx5IHVzZU9pZGM/OiBib29sZWFuIHwgY2RrdGYuSVJlc29sdmFibGU7XG4gIC8qKlxuICAqIEFsaWFzIG5hbWVcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2F6dXJlL2F6YXBpLzIuNy4wL2RvY3MjYWxpYXMgQXphcGlQcm92aWRlciNhbGlhc31cbiAgKi9cbiAgcmVhZG9ubHkgYWxpYXM/OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIEF6YXBpUHJvdmlkZXJFbmRwb2ludCB7XG4gIC8qKlxuICAqIFRoZSBBenVyZSBBY3RpdmUgRGlyZWN0b3J5IGxvZ2luIGVuZHBvaW50IHRvIHVzZS4gVGhpcyBjYW4gYWxzbyBiZSBzb3VyY2VkIGZyb20gdGhlIGBBUk1fQUNUSVZFX0RJUkVDVE9SWV9BVVRIT1JJVFlfSE9TVGAgRW52aXJvbm1lbnQgVmFyaWFibGUuIERlZmF1bHRzIHRvIGBodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vYCBmb3IgcHVibGljIGNsb3VkLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvYXp1cmUvYXphcGkvMi43LjAvZG9jcyNhY3RpdmVfZGlyZWN0b3J5X2F1dGhvcml0eV9ob3N0IEF6YXBpUHJvdmlkZXIjYWN0aXZlX2RpcmVjdG9yeV9hdXRob3JpdHlfaG9zdH1cbiAgKi9cbiAgcmVhZG9ubHkgYWN0aXZlRGlyZWN0b3J5QXV0aG9yaXR5SG9zdD86IHN0cmluZztcbiAgLyoqXG4gICogVGhlIHJlc291cmNlIElEIHRvIG9idGFpbiBBRCB0b2tlbnMgZm9yLiBUaGlzIGNhbiBhbHNvIGJlIHNvdXJjZWQgZnJvbSB0aGUgYEFSTV9SRVNPVVJDRV9NQU5BR0VSX0FVRElFTkNFYCBFbnZpcm9ubWVudCBWYXJpYWJsZS4gRGVmYXVsdHMgdG8gYGh0dHBzOi8vbWFuYWdlbWVudC5jb3JlLndpbmRvd3MubmV0L2AgZm9yIHB1YmxpYyBjbG91ZC5cbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2F6dXJlL2F6YXBpLzIuNy4wL2RvY3MjcmVzb3VyY2VfbWFuYWdlcl9hdWRpZW5jZSBBemFwaVByb3ZpZGVyI3Jlc291cmNlX21hbmFnZXJfYXVkaWVuY2V9XG4gICovXG4gIHJlYWRvbmx5IHJlc291cmNlTWFuYWdlckF1ZGllbmNlPzogc3RyaW5nO1xuICAvKipcbiAgKiBUaGUgQXp1cmUgUmVzb3VyY2UgTWFuYWdlciBlbmRwb2ludCB0byB1c2UuIFRoaXMgY2FuIGFsc28gYmUgc291cmNlZCBmcm9tIHRoZSBgQVJNX1JFU09VUkNFX01BTkFHRVJfRU5EUE9JTlRgIEVudmlyb25tZW50IFZhcmlhYmxlLiBEZWZhdWx0cyB0byBgaHR0cHM6Ly9tYW5hZ2VtZW50LmF6dXJlLmNvbS9gIGZvciBwdWJsaWMgY2xvdWQuXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9henVyZS9hemFwaS8yLjcuMC9kb2NzI3Jlc291cmNlX21hbmFnZXJfZW5kcG9pbnQgQXphcGlQcm92aWRlciNyZXNvdXJjZV9tYW5hZ2VyX2VuZHBvaW50fVxuICAqL1xuICByZWFkb25seSByZXNvdXJjZU1hbmFnZXJFbmRwb2ludD86IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF6YXBpUHJvdmlkZXJFbmRwb2ludFRvVGVycmFmb3JtKHN0cnVjdD86IEF6YXBpUHJvdmlkZXJFbmRwb2ludCB8IGNka3RmLklSZXNvbHZhYmxlKTogYW55IHtcbiAgaWYgKCFjZGt0Zi5jYW5JbnNwZWN0KHN0cnVjdCkgfHwgY2RrdGYuVG9rZW5pemF0aW9uLmlzUmVzb2x2YWJsZShzdHJ1Y3QpKSB7IHJldHVybiBzdHJ1Y3Q7IH1cbiAgaWYgKGNka3RmLmlzQ29tcGxleEVsZW1lbnQoc3RydWN0KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkEgY29tcGxleCBlbGVtZW50IHdhcyB1c2VkIGFzIGNvbmZpZ3VyYXRpb24sIHRoaXMgaXMgbm90IHN1cHBvcnRlZDogaHR0cHM6Ly9jZGsudGYvY29tcGxleC1vYmplY3QtYXMtY29uZmlndXJhdGlvblwiKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIGFjdGl2ZV9kaXJlY3RvcnlfYXV0aG9yaXR5X2hvc3Q6IGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKHN0cnVjdCEuYWN0aXZlRGlyZWN0b3J5QXV0aG9yaXR5SG9zdCksXG4gICAgcmVzb3VyY2VfbWFuYWdlcl9hdWRpZW5jZTogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0oc3RydWN0IS5yZXNvdXJjZU1hbmFnZXJBdWRpZW5jZSksXG4gICAgcmVzb3VyY2VfbWFuYWdlcl9lbmRwb2ludDogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0oc3RydWN0IS5yZXNvdXJjZU1hbmFnZXJFbmRwb2ludCksXG4gIH1cbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gYXphcGlQcm92aWRlckVuZHBvaW50VG9IY2xUZXJyYWZvcm0oc3RydWN0PzogQXphcGlQcm92aWRlckVuZHBvaW50IHwgY2RrdGYuSVJlc29sdmFibGUpOiBhbnkge1xuICBpZiAoIWNka3RmLmNhbkluc3BlY3Qoc3RydWN0KSB8fCBjZGt0Zi5Ub2tlbml6YXRpb24uaXNSZXNvbHZhYmxlKHN0cnVjdCkpIHsgcmV0dXJuIHN0cnVjdDsgfVxuICBpZiAoY2RrdGYuaXNDb21wbGV4RWxlbWVudChzdHJ1Y3QpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQSBjb21wbGV4IGVsZW1lbnQgd2FzIHVzZWQgYXMgY29uZmlndXJhdGlvbiwgdGhpcyBpcyBub3Qgc3VwcG9ydGVkOiBodHRwczovL2Nkay50Zi9jb21wbGV4LW9iamVjdC1hcy1jb25maWd1cmF0aW9uXCIpO1xuICB9XG4gIGNvbnN0IGF0dHJzID0ge1xuICAgIGFjdGl2ZV9kaXJlY3RvcnlfYXV0aG9yaXR5X2hvc3Q6IHtcbiAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybShzdHJ1Y3QhLmFjdGl2ZURpcmVjdG9yeUF1dGhvcml0eUhvc3QpLFxuICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICB9LFxuICAgIHJlc291cmNlX21hbmFnZXJfYXVkaWVuY2U6IHtcbiAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybShzdHJ1Y3QhLnJlc291cmNlTWFuYWdlckF1ZGllbmNlKSxcbiAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgfSxcbiAgICByZXNvdXJjZV9tYW5hZ2VyX2VuZHBvaW50OiB7XG4gICAgICB2YWx1ZTogY2RrdGYuc3RyaW5nVG9IY2xUZXJyYWZvcm0oc3RydWN0IS5yZXNvdXJjZU1hbmFnZXJFbmRwb2ludCksXG4gICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgIH0sXG4gIH07XG5cbiAgLy8gcmVtb3ZlIHVuZGVmaW5lZCBhdHRyaWJ1dGVzXG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoYXR0cnMpLmZpbHRlcigoW18sIHZhbHVlXSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZS52YWx1ZSAhPT0gdW5kZWZpbmVkKSk7XG59XG5cblxuLyoqXG4qIFJlcHJlc2VudHMgYSB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2F6dXJlL2F6YXBpLzIuNy4wL2RvY3MgYXphcGl9XG4qL1xuZXhwb3J0IGNsYXNzIEF6YXBpUHJvdmlkZXIgZXh0ZW5kcyBjZGt0Zi5UZXJyYWZvcm1Qcm92aWRlciB7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT1cbiAgLy8gU1RBVElDIFBST1BFUlRJRVNcbiAgLy8gPT09PT09PT09PT09PT09PT1cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0ZlJlc291cmNlVHlwZSA9IFwiYXphcGlcIjtcblxuICAvLyA9PT09PT09PT09PT09PVxuICAvLyBTVEFUSUMgTWV0aG9kc1xuICAvLyA9PT09PT09PT09PT09PVxuICAvKipcbiAgKiBHZW5lcmF0ZXMgQ0RLVEYgY29kZSBmb3IgaW1wb3J0aW5nIGEgQXphcGlQcm92aWRlciByZXNvdXJjZSB1cG9uIHJ1bm5pbmcgXCJjZGt0ZiBwbGFuIDxzdGFjay1uYW1lPlwiXG4gICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgKiBAcGFyYW0gaW1wb3J0VG9JZCBUaGUgY29uc3RydWN0IGlkIHVzZWQgaW4gdGhlIGdlbmVyYXRlZCBjb25maWcgZm9yIHRoZSBBemFwaVByb3ZpZGVyIHRvIGltcG9ydFxuICAqIEBwYXJhbSBpbXBvcnRGcm9tSWQgVGhlIGlkIG9mIHRoZSBleGlzdGluZyBBemFwaVByb3ZpZGVyIHRoYXQgc2hvdWxkIGJlIGltcG9ydGVkLiBSZWZlciB0byB0aGUge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9henVyZS9hemFwaS8yLjcuMC9kb2NzI2ltcG9ydCBpbXBvcnQgc2VjdGlvbn0gaW4gdGhlIGRvY3VtZW50YXRpb24gb2YgdGhpcyByZXNvdXJjZSBmb3IgdGhlIGlkIHRvIHVzZVxuICAqIEBwYXJhbSBwcm92aWRlcj8gT3B0aW9uYWwgaW5zdGFuY2Ugb2YgdGhlIHByb3ZpZGVyIHdoZXJlIHRoZSBBemFwaVByb3ZpZGVyIHRvIGltcG9ydCBpcyBmb3VuZFxuICAqL1xuICBwdWJsaWMgc3RhdGljIGdlbmVyYXRlQ29uZmlnRm9ySW1wb3J0KHNjb3BlOiBDb25zdHJ1Y3QsIGltcG9ydFRvSWQ6IHN0cmluZywgaW1wb3J0RnJvbUlkOiBzdHJpbmcsIHByb3ZpZGVyPzogY2RrdGYuVGVycmFmb3JtUHJvdmlkZXIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBjZGt0Zi5JbXBvcnRhYmxlUmVzb3VyY2Uoc2NvcGUsIGltcG9ydFRvSWQsIHsgdGVycmFmb3JtUmVzb3VyY2VUeXBlOiBcImF6YXBpXCIsIGltcG9ydElkOiBpbXBvcnRGcm9tSWQsIHByb3ZpZGVyIH0pO1xuICAgICAgfVxuXG4gIC8vID09PT09PT09PT09XG4gIC8vIElOSVRJQUxJWkVSXG4gIC8vID09PT09PT09PT09XG5cbiAgLyoqXG4gICogQ3JlYXRlIGEgbmV3IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvYXp1cmUvYXphcGkvMi43LjAvZG9jcyBhemFwaX0gUmVzb3VyY2VcbiAgKlxuICAqIEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0XG4gICogQHBhcmFtIGlkIFRoZSBzY29wZWQgY29uc3RydWN0IElELiBNdXN0IGJlIHVuaXF1ZSBhbW9uZ3N0IHNpYmxpbmdzIGluIHRoZSBzYW1lIHNjb3BlXG4gICogQHBhcmFtIG9wdGlvbnMgQXphcGlQcm92aWRlckNvbmZpZyA9IHt9XG4gICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBjb25maWc6IEF6YXBpUHJvdmlkZXJDb25maWcgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgdGVycmFmb3JtUmVzb3VyY2VUeXBlOiAnYXphcGknLFxuICAgICAgdGVycmFmb3JtR2VuZXJhdG9yTWV0YWRhdGE6IHtcbiAgICAgICAgcHJvdmlkZXJOYW1lOiAnYXphcGknLFxuICAgICAgICBwcm92aWRlclZlcnNpb246ICcyLjcuMCcsXG4gICAgICAgIHByb3ZpZGVyVmVyc2lvbkNvbnN0cmFpbnQ6ICd+PiAyLjcuMCdcbiAgICAgIH0sXG4gICAgICB0ZXJyYWZvcm1Qcm92aWRlclNvdXJjZTogJ0F6dXJlL2F6YXBpJ1xuICAgIH0pO1xuICAgIHRoaXMuX2F1eGlsaWFyeVRlbmFudElkcyA9IGNvbmZpZy5hdXhpbGlhcnlUZW5hbnRJZHM7XG4gICAgdGhpcy5fY2xpZW50Q2VydGlmaWNhdGUgPSBjb25maWcuY2xpZW50Q2VydGlmaWNhdGU7XG4gICAgdGhpcy5fY2xpZW50Q2VydGlmaWNhdGVQYXNzd29yZCA9IGNvbmZpZy5jbGllbnRDZXJ0aWZpY2F0ZVBhc3N3b3JkO1xuICAgIHRoaXMuX2NsaWVudENlcnRpZmljYXRlUGF0aCA9IGNvbmZpZy5jbGllbnRDZXJ0aWZpY2F0ZVBhdGg7XG4gICAgdGhpcy5fY2xpZW50SWQgPSBjb25maWcuY2xpZW50SWQ7XG4gICAgdGhpcy5fY2xpZW50SWRGaWxlUGF0aCA9IGNvbmZpZy5jbGllbnRJZEZpbGVQYXRoO1xuICAgIHRoaXMuX2NsaWVudFNlY3JldCA9IGNvbmZpZy5jbGllbnRTZWNyZXQ7XG4gICAgdGhpcy5fY2xpZW50U2VjcmV0RmlsZVBhdGggPSBjb25maWcuY2xpZW50U2VjcmV0RmlsZVBhdGg7XG4gICAgdGhpcy5fY3VzdG9tQ29ycmVsYXRpb25SZXF1ZXN0SWQgPSBjb25maWcuY3VzdG9tQ29ycmVsYXRpb25SZXF1ZXN0SWQ7XG4gICAgdGhpcy5fZGVmYXVsdExvY2F0aW9uID0gY29uZmlnLmRlZmF1bHRMb2NhdGlvbjtcbiAgICB0aGlzLl9kZWZhdWx0TmFtZSA9IGNvbmZpZy5kZWZhdWx0TmFtZTtcbiAgICB0aGlzLl9kZWZhdWx0VGFncyA9IGNvbmZpZy5kZWZhdWx0VGFncztcbiAgICB0aGlzLl9kaXNhYmxlQ29ycmVsYXRpb25SZXF1ZXN0SWQgPSBjb25maWcuZGlzYWJsZUNvcnJlbGF0aW9uUmVxdWVzdElkO1xuICAgIHRoaXMuX2Rpc2FibGVEZWZhdWx0T3V0cHV0ID0gY29uZmlnLmRpc2FibGVEZWZhdWx0T3V0cHV0O1xuICAgIHRoaXMuX2Rpc2FibGVJbnN0YW5jZURpc2NvdmVyeSA9IGNvbmZpZy5kaXNhYmxlSW5zdGFuY2VEaXNjb3Zlcnk7XG4gICAgdGhpcy5fZGlzYWJsZVRlcnJhZm9ybVBhcnRuZXJJZCA9IGNvbmZpZy5kaXNhYmxlVGVycmFmb3JtUGFydG5lcklkO1xuICAgIHRoaXMuX2VuYWJsZVByZWZsaWdodCA9IGNvbmZpZy5lbmFibGVQcmVmbGlnaHQ7XG4gICAgdGhpcy5fZW5kcG9pbnQgPSBjb25maWcuZW5kcG9pbnQ7XG4gICAgdGhpcy5fZW52aXJvbm1lbnQgPSBjb25maWcuZW52aXJvbm1lbnQ7XG4gICAgdGhpcy5faWdub3JlTm9PcENoYW5nZXMgPSBjb25maWcuaWdub3JlTm9PcENoYW5nZXM7XG4gICAgdGhpcy5fbWF4aW11bUJ1c3lSZXRyeUF0dGVtcHRzID0gY29uZmlnLm1heGltdW1CdXN5UmV0cnlBdHRlbXB0cztcbiAgICB0aGlzLl9vaWRjQXp1cmVTZXJ2aWNlQ29ubmVjdGlvbklkID0gY29uZmlnLm9pZGNBenVyZVNlcnZpY2VDb25uZWN0aW9uSWQ7XG4gICAgdGhpcy5fb2lkY1JlcXVlc3RUb2tlbiA9IGNvbmZpZy5vaWRjUmVxdWVzdFRva2VuO1xuICAgIHRoaXMuX29pZGNSZXF1ZXN0VXJsID0gY29uZmlnLm9pZGNSZXF1ZXN0VXJsO1xuICAgIHRoaXMuX29pZGNUb2tlbiA9IGNvbmZpZy5vaWRjVG9rZW47XG4gICAgdGhpcy5fb2lkY1Rva2VuRmlsZVBhdGggPSBjb25maWcub2lkY1Rva2VuRmlsZVBhdGg7XG4gICAgdGhpcy5fcGFydG5lcklkID0gY29uZmlnLnBhcnRuZXJJZDtcbiAgICB0aGlzLl9za2lwUHJvdmlkZXJSZWdpc3RyYXRpb24gPSBjb25maWcuc2tpcFByb3ZpZGVyUmVnaXN0cmF0aW9uO1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbklkID0gY29uZmlnLnN1YnNjcmlwdGlvbklkO1xuICAgIHRoaXMuX3RlbmFudElkID0gY29uZmlnLnRlbmFudElkO1xuICAgIHRoaXMuX3VzZUFrc1dvcmtsb2FkSWRlbnRpdHkgPSBjb25maWcudXNlQWtzV29ya2xvYWRJZGVudGl0eTtcbiAgICB0aGlzLl91c2VDbGkgPSBjb25maWcudXNlQ2xpO1xuICAgIHRoaXMuX3VzZU1zaSA9IGNvbmZpZy51c2VNc2k7XG4gICAgdGhpcy5fdXNlT2lkYyA9IGNvbmZpZy51c2VPaWRjO1xuICAgIHRoaXMuX2FsaWFzID0gY29uZmlnLmFsaWFzO1xuICB9XG5cbiAgLy8gPT09PT09PT09PVxuICAvLyBBVFRSSUJVVEVTXG4gIC8vID09PT09PT09PT1cblxuICAvLyBhdXhpbGlhcnlfdGVuYW50X2lkcyAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9hdXhpbGlhcnlUZW5hbnRJZHM/OiBzdHJpbmdbXTsgXG4gIHB1YmxpYyBnZXQgYXV4aWxpYXJ5VGVuYW50SWRzKCkge1xuICAgIHJldHVybiB0aGlzLl9hdXhpbGlhcnlUZW5hbnRJZHM7XG4gIH1cbiAgcHVibGljIHNldCBhdXhpbGlhcnlUZW5hbnRJZHModmFsdWU6IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fYXV4aWxpYXJ5VGVuYW50SWRzID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0QXV4aWxpYXJ5VGVuYW50SWRzKCkge1xuICAgIHRoaXMuX2F1eGlsaWFyeVRlbmFudElkcyA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgYXV4aWxpYXJ5VGVuYW50SWRzSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1eGlsaWFyeVRlbmFudElkcztcbiAgfVxuXG4gIC8vIGNsaWVudF9jZXJ0aWZpY2F0ZSAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9jbGllbnRDZXJ0aWZpY2F0ZT86IHN0cmluZzsgXG4gIHB1YmxpYyBnZXQgY2xpZW50Q2VydGlmaWNhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudENlcnRpZmljYXRlO1xuICB9XG4gIHB1YmxpYyBzZXQgY2xpZW50Q2VydGlmaWNhdGUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2NsaWVudENlcnRpZmljYXRlID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0Q2xpZW50Q2VydGlmaWNhdGUoKSB7XG4gICAgdGhpcy5fY2xpZW50Q2VydGlmaWNhdGUgPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IGNsaWVudENlcnRpZmljYXRlSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudENlcnRpZmljYXRlO1xuICB9XG5cbiAgLy8gY2xpZW50X2NlcnRpZmljYXRlX3Bhc3N3b3JkIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX2NsaWVudENlcnRpZmljYXRlUGFzc3dvcmQ/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IGNsaWVudENlcnRpZmljYXRlUGFzc3dvcmQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudENlcnRpZmljYXRlUGFzc3dvcmQ7XG4gIH1cbiAgcHVibGljIHNldCBjbGllbnRDZXJ0aWZpY2F0ZVBhc3N3b3JkKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9jbGllbnRDZXJ0aWZpY2F0ZVBhc3N3b3JkID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0Q2xpZW50Q2VydGlmaWNhdGVQYXNzd29yZCgpIHtcbiAgICB0aGlzLl9jbGllbnRDZXJ0aWZpY2F0ZVBhc3N3b3JkID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBjbGllbnRDZXJ0aWZpY2F0ZVBhc3N3b3JkSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudENlcnRpZmljYXRlUGFzc3dvcmQ7XG4gIH1cblxuICAvLyBjbGllbnRfY2VydGlmaWNhdGVfcGF0aCAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9jbGllbnRDZXJ0aWZpY2F0ZVBhdGg/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IGNsaWVudENlcnRpZmljYXRlUGF0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY2xpZW50Q2VydGlmaWNhdGVQYXRoO1xuICB9XG4gIHB1YmxpYyBzZXQgY2xpZW50Q2VydGlmaWNhdGVQYXRoKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9jbGllbnRDZXJ0aWZpY2F0ZVBhdGggPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRDbGllbnRDZXJ0aWZpY2F0ZVBhdGgoKSB7XG4gICAgdGhpcy5fY2xpZW50Q2VydGlmaWNhdGVQYXRoID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBjbGllbnRDZXJ0aWZpY2F0ZVBhdGhJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY2xpZW50Q2VydGlmaWNhdGVQYXRoO1xuICB9XG5cbiAgLy8gY2xpZW50X2lkIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX2NsaWVudElkPzogc3RyaW5nOyBcbiAgcHVibGljIGdldCBjbGllbnRJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY2xpZW50SWQ7XG4gIH1cbiAgcHVibGljIHNldCBjbGllbnRJZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fY2xpZW50SWQgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRDbGllbnRJZCgpIHtcbiAgICB0aGlzLl9jbGllbnRJZCA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgY2xpZW50SWRJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY2xpZW50SWQ7XG4gIH1cblxuICAvLyBjbGllbnRfaWRfZmlsZV9wYXRoIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX2NsaWVudElkRmlsZVBhdGg/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IGNsaWVudElkRmlsZVBhdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudElkRmlsZVBhdGg7XG4gIH1cbiAgcHVibGljIHNldCBjbGllbnRJZEZpbGVQYXRoKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9jbGllbnRJZEZpbGVQYXRoID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0Q2xpZW50SWRGaWxlUGF0aCgpIHtcbiAgICB0aGlzLl9jbGllbnRJZEZpbGVQYXRoID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBjbGllbnRJZEZpbGVQYXRoSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudElkRmlsZVBhdGg7XG4gIH1cblxuICAvLyBjbGllbnRfc2VjcmV0IC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX2NsaWVudFNlY3JldD86IHN0cmluZzsgXG4gIHB1YmxpYyBnZXQgY2xpZW50U2VjcmV0KCkge1xuICAgIHJldHVybiB0aGlzLl9jbGllbnRTZWNyZXQ7XG4gIH1cbiAgcHVibGljIHNldCBjbGllbnRTZWNyZXQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2NsaWVudFNlY3JldCA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldENsaWVudFNlY3JldCgpIHtcbiAgICB0aGlzLl9jbGllbnRTZWNyZXQgPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IGNsaWVudFNlY3JldElucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9jbGllbnRTZWNyZXQ7XG4gIH1cblxuICAvLyBjbGllbnRfc2VjcmV0X2ZpbGVfcGF0aCAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9jbGllbnRTZWNyZXRGaWxlUGF0aD86IHN0cmluZzsgXG4gIHB1YmxpYyBnZXQgY2xpZW50U2VjcmV0RmlsZVBhdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudFNlY3JldEZpbGVQYXRoO1xuICB9XG4gIHB1YmxpYyBzZXQgY2xpZW50U2VjcmV0RmlsZVBhdGgodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2NsaWVudFNlY3JldEZpbGVQYXRoID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0Q2xpZW50U2VjcmV0RmlsZVBhdGgoKSB7XG4gICAgdGhpcy5fY2xpZW50U2VjcmV0RmlsZVBhdGggPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IGNsaWVudFNlY3JldEZpbGVQYXRoSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudFNlY3JldEZpbGVQYXRoO1xuICB9XG5cbiAgLy8gY3VzdG9tX2NvcnJlbGF0aW9uX3JlcXVlc3RfaWQgLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfY3VzdG9tQ29ycmVsYXRpb25SZXF1ZXN0SWQ/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IGN1c3RvbUNvcnJlbGF0aW9uUmVxdWVzdElkKCkge1xuICAgIHJldHVybiB0aGlzLl9jdXN0b21Db3JyZWxhdGlvblJlcXVlc3RJZDtcbiAgfVxuICBwdWJsaWMgc2V0IGN1c3RvbUNvcnJlbGF0aW9uUmVxdWVzdElkKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9jdXN0b21Db3JyZWxhdGlvblJlcXVlc3RJZCA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldEN1c3RvbUNvcnJlbGF0aW9uUmVxdWVzdElkKCkge1xuICAgIHRoaXMuX2N1c3RvbUNvcnJlbGF0aW9uUmVxdWVzdElkID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBjdXN0b21Db3JyZWxhdGlvblJlcXVlc3RJZElucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9jdXN0b21Db3JyZWxhdGlvblJlcXVlc3RJZDtcbiAgfVxuXG4gIC8vIGRlZmF1bHRfbG9jYXRpb24gLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfZGVmYXVsdExvY2F0aW9uPzogc3RyaW5nOyBcbiAgcHVibGljIGdldCBkZWZhdWx0TG9jYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZmF1bHRMb2NhdGlvbjtcbiAgfVxuICBwdWJsaWMgc2V0IGRlZmF1bHRMb2NhdGlvbih2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fZGVmYXVsdExvY2F0aW9uID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0RGVmYXVsdExvY2F0aW9uKCkge1xuICAgIHRoaXMuX2RlZmF1bHRMb2NhdGlvbiA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgZGVmYXVsdExvY2F0aW9uSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZmF1bHRMb2NhdGlvbjtcbiAgfVxuXG4gIC8vIGRlZmF1bHRfbmFtZSAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9kZWZhdWx0TmFtZT86IHN0cmluZzsgXG4gIHB1YmxpYyBnZXQgZGVmYXVsdE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZmF1bHROYW1lO1xuICB9XG4gIHB1YmxpYyBzZXQgZGVmYXVsdE5hbWUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2RlZmF1bHROYW1lID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0RGVmYXVsdE5hbWUoKSB7XG4gICAgdGhpcy5fZGVmYXVsdE5hbWUgPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IGRlZmF1bHROYW1lSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZmF1bHROYW1lO1xuICB9XG5cbiAgLy8gZGVmYXVsdF90YWdzIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX2RlZmF1bHRUYWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTsgXG4gIHB1YmxpYyBnZXQgZGVmYXVsdFRhZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlZmF1bHRUYWdzO1xuICB9XG4gIHB1YmxpYyBzZXQgZGVmYXVsdFRhZ3ModmFsdWU6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9kZWZhdWx0VGFncyA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldERlZmF1bHRUYWdzKCkge1xuICAgIHRoaXMuX2RlZmF1bHRUYWdzID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBkZWZhdWx0VGFnc0lucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9kZWZhdWx0VGFncztcbiAgfVxuXG4gIC8vIGRpc2FibGVfY29ycmVsYXRpb25fcmVxdWVzdF9pZCAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9kaXNhYmxlQ29ycmVsYXRpb25SZXF1ZXN0SWQ/OiBib29sZWFuIHwgY2RrdGYuSVJlc29sdmFibGU7IFxuICBwdWJsaWMgZ2V0IGRpc2FibGVDb3JyZWxhdGlvblJlcXVlc3RJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZUNvcnJlbGF0aW9uUmVxdWVzdElkO1xuICB9XG4gIHB1YmxpYyBzZXQgZGlzYWJsZUNvcnJlbGF0aW9uUmVxdWVzdElkKHZhbHVlOiBib29sZWFuIHwgY2RrdGYuSVJlc29sdmFibGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9kaXNhYmxlQ29ycmVsYXRpb25SZXF1ZXN0SWQgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXREaXNhYmxlQ29ycmVsYXRpb25SZXF1ZXN0SWQoKSB7XG4gICAgdGhpcy5fZGlzYWJsZUNvcnJlbGF0aW9uUmVxdWVzdElkID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBkaXNhYmxlQ29ycmVsYXRpb25SZXF1ZXN0SWRJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZUNvcnJlbGF0aW9uUmVxdWVzdElkO1xuICB9XG5cbiAgLy8gZGlzYWJsZV9kZWZhdWx0X291dHB1dCAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9kaXNhYmxlRGVmYXVsdE91dHB1dD86IGJvb2xlYW4gfCBjZGt0Zi5JUmVzb2x2YWJsZTsgXG4gIHB1YmxpYyBnZXQgZGlzYWJsZURlZmF1bHRPdXRwdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVEZWZhdWx0T3V0cHV0O1xuICB9XG4gIHB1YmxpYyBzZXQgZGlzYWJsZURlZmF1bHRPdXRwdXQodmFsdWU6IGJvb2xlYW4gfCBjZGt0Zi5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2Rpc2FibGVEZWZhdWx0T3V0cHV0ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0RGlzYWJsZURlZmF1bHRPdXRwdXQoKSB7XG4gICAgdGhpcy5fZGlzYWJsZURlZmF1bHRPdXRwdXQgPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IGRpc2FibGVEZWZhdWx0T3V0cHV0SW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVEZWZhdWx0T3V0cHV0O1xuICB9XG5cbiAgLy8gZGlzYWJsZV9pbnN0YW5jZV9kaXNjb3ZlcnkgLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfZGlzYWJsZUluc3RhbmNlRGlzY292ZXJ5PzogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlOyBcbiAgcHVibGljIGdldCBkaXNhYmxlSW5zdGFuY2VEaXNjb3ZlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVJbnN0YW5jZURpc2NvdmVyeTtcbiAgfVxuICBwdWJsaWMgc2V0IGRpc2FibGVJbnN0YW5jZURpc2NvdmVyeSh2YWx1ZTogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fZGlzYWJsZUluc3RhbmNlRGlzY292ZXJ5ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0RGlzYWJsZUluc3RhbmNlRGlzY292ZXJ5KCkge1xuICAgIHRoaXMuX2Rpc2FibGVJbnN0YW5jZURpc2NvdmVyeSA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgZGlzYWJsZUluc3RhbmNlRGlzY292ZXJ5SW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVJbnN0YW5jZURpc2NvdmVyeTtcbiAgfVxuXG4gIC8vIGRpc2FibGVfdGVycmFmb3JtX3BhcnRuZXJfaWQgLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfZGlzYWJsZVRlcnJhZm9ybVBhcnRuZXJJZD86IGJvb2xlYW4gfCBjZGt0Zi5JUmVzb2x2YWJsZTsgXG4gIHB1YmxpYyBnZXQgZGlzYWJsZVRlcnJhZm9ybVBhcnRuZXJJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZVRlcnJhZm9ybVBhcnRuZXJJZDtcbiAgfVxuICBwdWJsaWMgc2V0IGRpc2FibGVUZXJyYWZvcm1QYXJ0bmVySWQodmFsdWU6IGJvb2xlYW4gfCBjZGt0Zi5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2Rpc2FibGVUZXJyYWZvcm1QYXJ0bmVySWQgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXREaXNhYmxlVGVycmFmb3JtUGFydG5lcklkKCkge1xuICAgIHRoaXMuX2Rpc2FibGVUZXJyYWZvcm1QYXJ0bmVySWQgPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IGRpc2FibGVUZXJyYWZvcm1QYXJ0bmVySWRJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZVRlcnJhZm9ybVBhcnRuZXJJZDtcbiAgfVxuXG4gIC8vIGVuYWJsZV9wcmVmbGlnaHQgLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfZW5hYmxlUHJlZmxpZ2h0PzogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlOyBcbiAgcHVibGljIGdldCBlbmFibGVQcmVmbGlnaHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZVByZWZsaWdodDtcbiAgfVxuICBwdWJsaWMgc2V0IGVuYWJsZVByZWZsaWdodCh2YWx1ZTogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fZW5hYmxlUHJlZmxpZ2h0ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0RW5hYmxlUHJlZmxpZ2h0KCkge1xuICAgIHRoaXMuX2VuYWJsZVByZWZsaWdodCA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgZW5hYmxlUHJlZmxpZ2h0SW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZVByZWZsaWdodDtcbiAgfVxuXG4gIC8vIGVuZHBvaW50IC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX2VuZHBvaW50PzogQXphcGlQcm92aWRlckVuZHBvaW50W10gfCBjZGt0Zi5JUmVzb2x2YWJsZTsgXG4gIHB1YmxpYyBnZXQgZW5kcG9pbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VuZHBvaW50O1xuICB9XG4gIHB1YmxpYyBzZXQgZW5kcG9pbnQodmFsdWU6IEF6YXBpUHJvdmlkZXJFbmRwb2ludFtdIHwgY2RrdGYuSVJlc29sdmFibGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9lbmRwb2ludCA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldEVuZHBvaW50KCkge1xuICAgIHRoaXMuX2VuZHBvaW50ID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBlbmRwb2ludElucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9lbmRwb2ludDtcbiAgfVxuXG4gIC8vIGVudmlyb25tZW50IC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX2Vudmlyb25tZW50Pzogc3RyaW5nOyBcbiAgcHVibGljIGdldCBlbnZpcm9ubWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZW52aXJvbm1lbnQ7XG4gIH1cbiAgcHVibGljIHNldCBlbnZpcm9ubWVudCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fZW52aXJvbm1lbnQgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRFbnZpcm9ubWVudCgpIHtcbiAgICB0aGlzLl9lbnZpcm9ubWVudCA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgZW52aXJvbm1lbnRJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZW52aXJvbm1lbnQ7XG4gIH1cblxuICAvLyBpZ25vcmVfbm9fb3BfY2hhbmdlcyAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9pZ25vcmVOb09wQ2hhbmdlcz86IGJvb2xlYW4gfCBjZGt0Zi5JUmVzb2x2YWJsZTsgXG4gIHB1YmxpYyBnZXQgaWdub3JlTm9PcENoYW5nZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lnbm9yZU5vT3BDaGFuZ2VzO1xuICB9XG4gIHB1YmxpYyBzZXQgaWdub3JlTm9PcENoYW5nZXModmFsdWU6IGJvb2xlYW4gfCBjZGt0Zi5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2lnbm9yZU5vT3BDaGFuZ2VzID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0SWdub3JlTm9PcENoYW5nZXMoKSB7XG4gICAgdGhpcy5faWdub3JlTm9PcENoYW5nZXMgPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IGlnbm9yZU5vT3BDaGFuZ2VzSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lnbm9yZU5vT3BDaGFuZ2VzO1xuICB9XG5cbiAgLy8gbWF4aW11bV9idXN5X3JldHJ5X2F0dGVtcHRzIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX21heGltdW1CdXN5UmV0cnlBdHRlbXB0cz86IG51bWJlcjsgXG4gIHB1YmxpYyBnZXQgbWF4aW11bUJ1c3lSZXRyeUF0dGVtcHRzKCkge1xuICAgIHJldHVybiB0aGlzLl9tYXhpbXVtQnVzeVJldHJ5QXR0ZW1wdHM7XG4gIH1cbiAgcHVibGljIHNldCBtYXhpbXVtQnVzeVJldHJ5QXR0ZW1wdHModmFsdWU6IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX21heGltdW1CdXN5UmV0cnlBdHRlbXB0cyA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldE1heGltdW1CdXN5UmV0cnlBdHRlbXB0cygpIHtcbiAgICB0aGlzLl9tYXhpbXVtQnVzeVJldHJ5QXR0ZW1wdHMgPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IG1heGltdW1CdXN5UmV0cnlBdHRlbXB0c0lucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9tYXhpbXVtQnVzeVJldHJ5QXR0ZW1wdHM7XG4gIH1cblxuICAvLyBvaWRjX2F6dXJlX3NlcnZpY2VfY29ubmVjdGlvbl9pZCAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9vaWRjQXp1cmVTZXJ2aWNlQ29ubmVjdGlvbklkPzogc3RyaW5nOyBcbiAgcHVibGljIGdldCBvaWRjQXp1cmVTZXJ2aWNlQ29ubmVjdGlvbklkKCkge1xuICAgIHJldHVybiB0aGlzLl9vaWRjQXp1cmVTZXJ2aWNlQ29ubmVjdGlvbklkO1xuICB9XG4gIHB1YmxpYyBzZXQgb2lkY0F6dXJlU2VydmljZUNvbm5lY3Rpb25JZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fb2lkY0F6dXJlU2VydmljZUNvbm5lY3Rpb25JZCA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldE9pZGNBenVyZVNlcnZpY2VDb25uZWN0aW9uSWQoKSB7XG4gICAgdGhpcy5fb2lkY0F6dXJlU2VydmljZUNvbm5lY3Rpb25JZCA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgb2lkY0F6dXJlU2VydmljZUNvbm5lY3Rpb25JZElucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9vaWRjQXp1cmVTZXJ2aWNlQ29ubmVjdGlvbklkO1xuICB9XG5cbiAgLy8gb2lkY19yZXF1ZXN0X3Rva2VuIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX29pZGNSZXF1ZXN0VG9rZW4/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IG9pZGNSZXF1ZXN0VG9rZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuX29pZGNSZXF1ZXN0VG9rZW47XG4gIH1cbiAgcHVibGljIHNldCBvaWRjUmVxdWVzdFRva2VuKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9vaWRjUmVxdWVzdFRva2VuID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0T2lkY1JlcXVlc3RUb2tlbigpIHtcbiAgICB0aGlzLl9vaWRjUmVxdWVzdFRva2VuID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBvaWRjUmVxdWVzdFRva2VuSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29pZGNSZXF1ZXN0VG9rZW47XG4gIH1cblxuICAvLyBvaWRjX3JlcXVlc3RfdXJsIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX29pZGNSZXF1ZXN0VXJsPzogc3RyaW5nOyBcbiAgcHVibGljIGdldCBvaWRjUmVxdWVzdFVybCgpIHtcbiAgICByZXR1cm4gdGhpcy5fb2lkY1JlcXVlc3RVcmw7XG4gIH1cbiAgcHVibGljIHNldCBvaWRjUmVxdWVzdFVybCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fb2lkY1JlcXVlc3RVcmwgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRPaWRjUmVxdWVzdFVybCgpIHtcbiAgICB0aGlzLl9vaWRjUmVxdWVzdFVybCA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgb2lkY1JlcXVlc3RVcmxJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fb2lkY1JlcXVlc3RVcmw7XG4gIH1cblxuICAvLyBvaWRjX3Rva2VuIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX29pZGNUb2tlbj86IHN0cmluZzsgXG4gIHB1YmxpYyBnZXQgb2lkY1Rva2VuKCkge1xuICAgIHJldHVybiB0aGlzLl9vaWRjVG9rZW47XG4gIH1cbiAgcHVibGljIHNldCBvaWRjVG9rZW4odmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX29pZGNUb2tlbiA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldE9pZGNUb2tlbigpIHtcbiAgICB0aGlzLl9vaWRjVG9rZW4gPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IG9pZGNUb2tlbklucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9vaWRjVG9rZW47XG4gIH1cblxuICAvLyBvaWRjX3Rva2VuX2ZpbGVfcGF0aCAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9vaWRjVG9rZW5GaWxlUGF0aD86IHN0cmluZzsgXG4gIHB1YmxpYyBnZXQgb2lkY1Rva2VuRmlsZVBhdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29pZGNUb2tlbkZpbGVQYXRoO1xuICB9XG4gIHB1YmxpYyBzZXQgb2lkY1Rva2VuRmlsZVBhdGgodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX29pZGNUb2tlbkZpbGVQYXRoID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0T2lkY1Rva2VuRmlsZVBhdGgoKSB7XG4gICAgdGhpcy5fb2lkY1Rva2VuRmlsZVBhdGggPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IG9pZGNUb2tlbkZpbGVQYXRoSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29pZGNUb2tlbkZpbGVQYXRoO1xuICB9XG5cbiAgLy8gcGFydG5lcl9pZCAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9wYXJ0bmVySWQ/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IHBhcnRuZXJJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFydG5lcklkO1xuICB9XG4gIHB1YmxpYyBzZXQgcGFydG5lcklkKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9wYXJ0bmVySWQgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRQYXJ0bmVySWQoKSB7XG4gICAgdGhpcy5fcGFydG5lcklkID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBwYXJ0bmVySWRJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcGFydG5lcklkO1xuICB9XG5cbiAgLy8gc2tpcF9wcm92aWRlcl9yZWdpc3RyYXRpb24gLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfc2tpcFByb3ZpZGVyUmVnaXN0cmF0aW9uPzogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlOyBcbiAgcHVibGljIGdldCBza2lwUHJvdmlkZXJSZWdpc3RyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NraXBQcm92aWRlclJlZ2lzdHJhdGlvbjtcbiAgfVxuICBwdWJsaWMgc2V0IHNraXBQcm92aWRlclJlZ2lzdHJhdGlvbih2YWx1ZTogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fc2tpcFByb3ZpZGVyUmVnaXN0cmF0aW9uID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0U2tpcFByb3ZpZGVyUmVnaXN0cmF0aW9uKCkge1xuICAgIHRoaXMuX3NraXBQcm92aWRlclJlZ2lzdHJhdGlvbiA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgc2tpcFByb3ZpZGVyUmVnaXN0cmF0aW9uSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NraXBQcm92aWRlclJlZ2lzdHJhdGlvbjtcbiAgfVxuXG4gIC8vIHN1YnNjcmlwdGlvbl9pZCAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF9zdWJzY3JpcHRpb25JZD86IHN0cmluZzsgXG4gIHB1YmxpYyBnZXQgc3Vic2NyaXB0aW9uSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N1YnNjcmlwdGlvbklkO1xuICB9XG4gIHB1YmxpYyBzZXQgc3Vic2NyaXB0aW9uSWQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbklkID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0U3Vic2NyaXB0aW9uSWQoKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uSWQgPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IHN1YnNjcmlwdGlvbklkSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N1YnNjcmlwdGlvbklkO1xuICB9XG5cbiAgLy8gdGVuYW50X2lkIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX3RlbmFudElkPzogc3RyaW5nOyBcbiAgcHVibGljIGdldCB0ZW5hbnRJZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdGVuYW50SWQ7XG4gIH1cbiAgcHVibGljIHNldCB0ZW5hbnRJZCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fdGVuYW50SWQgPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVzZXRUZW5hbnRJZCgpIHtcbiAgICB0aGlzLl90ZW5hbnRJZCA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgdGVuYW50SWRJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdGVuYW50SWQ7XG4gIH1cblxuICAvLyB1c2VfYWtzX3dvcmtsb2FkX2lkZW50aXR5IC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX3VzZUFrc1dvcmtsb2FkSWRlbnRpdHk/OiBib29sZWFuIHwgY2RrdGYuSVJlc29sdmFibGU7IFxuICBwdWJsaWMgZ2V0IHVzZUFrc1dvcmtsb2FkSWRlbnRpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3VzZUFrc1dvcmtsb2FkSWRlbnRpdHk7XG4gIH1cbiAgcHVibGljIHNldCB1c2VBa3NXb3JrbG9hZElkZW50aXR5KHZhbHVlOiBib29sZWFuIHwgY2RrdGYuSVJlc29sdmFibGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl91c2VBa3NXb3JrbG9hZElkZW50aXR5ID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlc2V0VXNlQWtzV29ya2xvYWRJZGVudGl0eSgpIHtcbiAgICB0aGlzLl91c2VBa3NXb3JrbG9hZElkZW50aXR5ID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCB1c2VBa3NXb3JrbG9hZElkZW50aXR5SW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3VzZUFrc1dvcmtsb2FkSWRlbnRpdHk7XG4gIH1cblxuICAvLyB1c2VfY2xpIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX3VzZUNsaT86IGJvb2xlYW4gfCBjZGt0Zi5JUmVzb2x2YWJsZTsgXG4gIHB1YmxpYyBnZXQgdXNlQ2xpKCkge1xuICAgIHJldHVybiB0aGlzLl91c2VDbGk7XG4gIH1cbiAgcHVibGljIHNldCB1c2VDbGkodmFsdWU6IGJvb2xlYW4gfCBjZGt0Zi5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3VzZUNsaSA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldFVzZUNsaSgpIHtcbiAgICB0aGlzLl91c2VDbGkgPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IHVzZUNsaUlucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl91c2VDbGk7XG4gIH1cblxuICAvLyB1c2VfbXNpIC0gY29tcHV0ZWQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlXG4gIHByaXZhdGUgX3VzZU1zaT86IGJvb2xlYW4gfCBjZGt0Zi5JUmVzb2x2YWJsZTsgXG4gIHB1YmxpYyBnZXQgdXNlTXNpKCkge1xuICAgIHJldHVybiB0aGlzLl91c2VNc2k7XG4gIH1cbiAgcHVibGljIHNldCB1c2VNc2kodmFsdWU6IGJvb2xlYW4gfCBjZGt0Zi5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3VzZU1zaSA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldFVzZU1zaSgpIHtcbiAgICB0aGlzLl91c2VNc2kgPSB1bmRlZmluZWQ7XG4gIH1cbiAgLy8gVGVtcG9yYXJpbHkgZXhwb3NlIGlucHV0IHZhbHVlLiBVc2Ugd2l0aCBjYXV0aW9uLlxuICBwdWJsaWMgZ2V0IHVzZU1zaUlucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl91c2VNc2k7XG4gIH1cblxuICAvLyB1c2Vfb2lkYyAtIGNvbXB1dGVkOiBmYWxzZSwgb3B0aW9uYWw6IHRydWUsIHJlcXVpcmVkOiBmYWxzZVxuICBwcml2YXRlIF91c2VPaWRjPzogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlOyBcbiAgcHVibGljIGdldCB1c2VPaWRjKCkge1xuICAgIHJldHVybiB0aGlzLl91c2VPaWRjO1xuICB9XG4gIHB1YmxpYyBzZXQgdXNlT2lkYyh2YWx1ZTogYm9vbGVhbiB8IGNka3RmLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fdXNlT2lkYyA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldFVzZU9pZGMoKSB7XG4gICAgdGhpcy5fdXNlT2lkYyA9IHVuZGVmaW5lZDtcbiAgfVxuICAvLyBUZW1wb3JhcmlseSBleHBvc2UgaW5wdXQgdmFsdWUuIFVzZSB3aXRoIGNhdXRpb24uXG4gIHB1YmxpYyBnZXQgdXNlT2lkY0lucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl91c2VPaWRjO1xuICB9XG5cbiAgLy8gYWxpYXMgLSBjb21wdXRlZDogZmFsc2UsIG9wdGlvbmFsOiB0cnVlLCByZXF1aXJlZDogZmFsc2VcbiAgcHJpdmF0ZSBfYWxpYXM/OiBzdHJpbmc7IFxuICBwdWJsaWMgZ2V0IGFsaWFzKCkge1xuICAgIHJldHVybiB0aGlzLl9hbGlhcztcbiAgfVxuICBwdWJsaWMgc2V0IGFsaWFzKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9hbGlhcyA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyByZXNldEFsaWFzKCkge1xuICAgIHRoaXMuX2FsaWFzID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFRlbXBvcmFyaWx5IGV4cG9zZSBpbnB1dCB2YWx1ZS4gVXNlIHdpdGggY2F1dGlvbi5cbiAgcHVibGljIGdldCBhbGlhc0lucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9hbGlhcztcbiAgfVxuXG4gIC8vID09PT09PT09PVxuICAvLyBTWU5USEVTSVNcbiAgLy8gPT09PT09PT09XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgYXV4aWxpYXJ5X3RlbmFudF9pZHM6IGNka3RmLmxpc3RNYXBwZXIoY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0sIGZhbHNlKSh0aGlzLl9hdXhpbGlhcnlUZW5hbnRJZHMpLFxuICAgICAgY2xpZW50X2NlcnRpZmljYXRlOiBjZGt0Zi5zdHJpbmdUb1RlcnJhZm9ybSh0aGlzLl9jbGllbnRDZXJ0aWZpY2F0ZSksXG4gICAgICBjbGllbnRfY2VydGlmaWNhdGVfcGFzc3dvcmQ6IGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX2NsaWVudENlcnRpZmljYXRlUGFzc3dvcmQpLFxuICAgICAgY2xpZW50X2NlcnRpZmljYXRlX3BhdGg6IGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX2NsaWVudENlcnRpZmljYXRlUGF0aCksXG4gICAgICBjbGllbnRfaWQ6IGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX2NsaWVudElkKSxcbiAgICAgIGNsaWVudF9pZF9maWxlX3BhdGg6IGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX2NsaWVudElkRmlsZVBhdGgpLFxuICAgICAgY2xpZW50X3NlY3JldDogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5fY2xpZW50U2VjcmV0KSxcbiAgICAgIGNsaWVudF9zZWNyZXRfZmlsZV9wYXRoOiBjZGt0Zi5zdHJpbmdUb1RlcnJhZm9ybSh0aGlzLl9jbGllbnRTZWNyZXRGaWxlUGF0aCksXG4gICAgICBjdXN0b21fY29ycmVsYXRpb25fcmVxdWVzdF9pZDogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5fY3VzdG9tQ29ycmVsYXRpb25SZXF1ZXN0SWQpLFxuICAgICAgZGVmYXVsdF9sb2NhdGlvbjogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5fZGVmYXVsdExvY2F0aW9uKSxcbiAgICAgIGRlZmF1bHRfbmFtZTogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5fZGVmYXVsdE5hbWUpLFxuICAgICAgZGVmYXVsdF90YWdzOiBjZGt0Zi5oYXNoTWFwcGVyKGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKSh0aGlzLl9kZWZhdWx0VGFncyksXG4gICAgICBkaXNhYmxlX2NvcnJlbGF0aW9uX3JlcXVlc3RfaWQ6IGNka3RmLmJvb2xlYW5Ub1RlcnJhZm9ybSh0aGlzLl9kaXNhYmxlQ29ycmVsYXRpb25SZXF1ZXN0SWQpLFxuICAgICAgZGlzYWJsZV9kZWZhdWx0X291dHB1dDogY2RrdGYuYm9vbGVhblRvVGVycmFmb3JtKHRoaXMuX2Rpc2FibGVEZWZhdWx0T3V0cHV0KSxcbiAgICAgIGRpc2FibGVfaW5zdGFuY2VfZGlzY292ZXJ5OiBjZGt0Zi5ib29sZWFuVG9UZXJyYWZvcm0odGhpcy5fZGlzYWJsZUluc3RhbmNlRGlzY292ZXJ5KSxcbiAgICAgIGRpc2FibGVfdGVycmFmb3JtX3BhcnRuZXJfaWQ6IGNka3RmLmJvb2xlYW5Ub1RlcnJhZm9ybSh0aGlzLl9kaXNhYmxlVGVycmFmb3JtUGFydG5lcklkKSxcbiAgICAgIGVuYWJsZV9wcmVmbGlnaHQ6IGNka3RmLmJvb2xlYW5Ub1RlcnJhZm9ybSh0aGlzLl9lbmFibGVQcmVmbGlnaHQpLFxuICAgICAgZW5kcG9pbnQ6IGNka3RmLmxpc3RNYXBwZXIoYXphcGlQcm92aWRlckVuZHBvaW50VG9UZXJyYWZvcm0sIGZhbHNlKSh0aGlzLl9lbmRwb2ludCksXG4gICAgICBlbnZpcm9ubWVudDogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5fZW52aXJvbm1lbnQpLFxuICAgICAgaWdub3JlX25vX29wX2NoYW5nZXM6IGNka3RmLmJvb2xlYW5Ub1RlcnJhZm9ybSh0aGlzLl9pZ25vcmVOb09wQ2hhbmdlcyksXG4gICAgICBtYXhpbXVtX2J1c3lfcmV0cnlfYXR0ZW1wdHM6IGNka3RmLm51bWJlclRvVGVycmFmb3JtKHRoaXMuX21heGltdW1CdXN5UmV0cnlBdHRlbXB0cyksXG4gICAgICBvaWRjX2F6dXJlX3NlcnZpY2VfY29ubmVjdGlvbl9pZDogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5fb2lkY0F6dXJlU2VydmljZUNvbm5lY3Rpb25JZCksXG4gICAgICBvaWRjX3JlcXVlc3RfdG9rZW46IGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX29pZGNSZXF1ZXN0VG9rZW4pLFxuICAgICAgb2lkY19yZXF1ZXN0X3VybDogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5fb2lkY1JlcXVlc3RVcmwpLFxuICAgICAgb2lkY190b2tlbjogY2RrdGYuc3RyaW5nVG9UZXJyYWZvcm0odGhpcy5fb2lkY1Rva2VuKSxcbiAgICAgIG9pZGNfdG9rZW5fZmlsZV9wYXRoOiBjZGt0Zi5zdHJpbmdUb1RlcnJhZm9ybSh0aGlzLl9vaWRjVG9rZW5GaWxlUGF0aCksXG4gICAgICBwYXJ0bmVyX2lkOiBjZGt0Zi5zdHJpbmdUb1RlcnJhZm9ybSh0aGlzLl9wYXJ0bmVySWQpLFxuICAgICAgc2tpcF9wcm92aWRlcl9yZWdpc3RyYXRpb246IGNka3RmLmJvb2xlYW5Ub1RlcnJhZm9ybSh0aGlzLl9za2lwUHJvdmlkZXJSZWdpc3RyYXRpb24pLFxuICAgICAgc3Vic2NyaXB0aW9uX2lkOiBjZGt0Zi5zdHJpbmdUb1RlcnJhZm9ybSh0aGlzLl9zdWJzY3JpcHRpb25JZCksXG4gICAgICB0ZW5hbnRfaWQ6IGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX3RlbmFudElkKSxcbiAgICAgIHVzZV9ha3Nfd29ya2xvYWRfaWRlbnRpdHk6IGNka3RmLmJvb2xlYW5Ub1RlcnJhZm9ybSh0aGlzLl91c2VBa3NXb3JrbG9hZElkZW50aXR5KSxcbiAgICAgIHVzZV9jbGk6IGNka3RmLmJvb2xlYW5Ub1RlcnJhZm9ybSh0aGlzLl91c2VDbGkpLFxuICAgICAgdXNlX21zaTogY2RrdGYuYm9vbGVhblRvVGVycmFmb3JtKHRoaXMuX3VzZU1zaSksXG4gICAgICB1c2Vfb2lkYzogY2RrdGYuYm9vbGVhblRvVGVycmFmb3JtKHRoaXMuX3VzZU9pZGMpLFxuICAgICAgYWxpYXM6IGNka3RmLnN0cmluZ1RvVGVycmFmb3JtKHRoaXMuX2FsaWFzKSxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVIY2xBdHRyaWJ1dGVzKCk6IHsgW25hbWU6IHN0cmluZ106IGFueSB9IHtcbiAgICBjb25zdCBhdHRycyA9IHtcbiAgICAgIGF1eGlsaWFyeV90ZW5hbnRfaWRzOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5saXN0TWFwcGVySGNsKGNka3RmLnN0cmluZ1RvSGNsVGVycmFmb3JtLCBmYWxzZSkodGhpcy5fYXV4aWxpYXJ5VGVuYW50SWRzKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwibGlzdFwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ0xpc3RcIixcbiAgICAgIH0sXG4gICAgICBjbGllbnRfY2VydGlmaWNhdGU6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLnN0cmluZ1RvSGNsVGVycmFmb3JtKHRoaXMuX2NsaWVudENlcnRpZmljYXRlKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAgY2xpZW50X2NlcnRpZmljYXRlX3Bhc3N3b3JkOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl9jbGllbnRDZXJ0aWZpY2F0ZVBhc3N3b3JkKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAgY2xpZW50X2NlcnRpZmljYXRlX3BhdGg6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLnN0cmluZ1RvSGNsVGVycmFmb3JtKHRoaXMuX2NsaWVudENlcnRpZmljYXRlUGF0aCksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIGNsaWVudF9pZDoge1xuICAgICAgICB2YWx1ZTogY2RrdGYuc3RyaW5nVG9IY2xUZXJyYWZvcm0odGhpcy5fY2xpZW50SWQpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICBjbGllbnRfaWRfZmlsZV9wYXRoOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl9jbGllbnRJZEZpbGVQYXRoKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAgY2xpZW50X3NlY3JldDoge1xuICAgICAgICB2YWx1ZTogY2RrdGYuc3RyaW5nVG9IY2xUZXJyYWZvcm0odGhpcy5fY2xpZW50U2VjcmV0KSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAgY2xpZW50X3NlY3JldF9maWxlX3BhdGg6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLnN0cmluZ1RvSGNsVGVycmFmb3JtKHRoaXMuX2NsaWVudFNlY3JldEZpbGVQYXRoKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAgY3VzdG9tX2NvcnJlbGF0aW9uX3JlcXVlc3RfaWQ6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLnN0cmluZ1RvSGNsVGVycmFmb3JtKHRoaXMuX2N1c3RvbUNvcnJlbGF0aW9uUmVxdWVzdElkKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAgZGVmYXVsdF9sb2NhdGlvbjoge1xuICAgICAgICB2YWx1ZTogY2RrdGYuc3RyaW5nVG9IY2xUZXJyYWZvcm0odGhpcy5fZGVmYXVsdExvY2F0aW9uKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAgZGVmYXVsdF9uYW1lOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl9kZWZhdWx0TmFtZSksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRfdGFnczoge1xuICAgICAgICB2YWx1ZTogY2RrdGYuaGFzaE1hcHBlckhjbChjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSkodGhpcy5fZGVmYXVsdFRhZ3MpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJtYXBcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdNYXBcIixcbiAgICAgIH0sXG4gICAgICBkaXNhYmxlX2NvcnJlbGF0aW9uX3JlcXVlc3RfaWQ6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLmJvb2xlYW5Ub0hjbFRlcnJhZm9ybSh0aGlzLl9kaXNhYmxlQ29ycmVsYXRpb25SZXF1ZXN0SWQpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJib29sZWFuXCIsXG4gICAgICB9LFxuICAgICAgZGlzYWJsZV9kZWZhdWx0X291dHB1dDoge1xuICAgICAgICB2YWx1ZTogY2RrdGYuYm9vbGVhblRvSGNsVGVycmFmb3JtKHRoaXMuX2Rpc2FibGVEZWZhdWx0T3V0cHV0KSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgfSxcbiAgICAgIGRpc2FibGVfaW5zdGFuY2VfZGlzY292ZXJ5OiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5ib29sZWFuVG9IY2xUZXJyYWZvcm0odGhpcy5fZGlzYWJsZUluc3RhbmNlRGlzY292ZXJ5KSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgfSxcbiAgICAgIGRpc2FibGVfdGVycmFmb3JtX3BhcnRuZXJfaWQ6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLmJvb2xlYW5Ub0hjbFRlcnJhZm9ybSh0aGlzLl9kaXNhYmxlVGVycmFmb3JtUGFydG5lcklkKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgfSxcbiAgICAgIGVuYWJsZV9wcmVmbGlnaHQ6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLmJvb2xlYW5Ub0hjbFRlcnJhZm9ybSh0aGlzLl9lbmFibGVQcmVmbGlnaHQpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJib29sZWFuXCIsXG4gICAgICB9LFxuICAgICAgZW5kcG9pbnQ6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLmxpc3RNYXBwZXJIY2woYXphcGlQcm92aWRlckVuZHBvaW50VG9IY2xUZXJyYWZvcm0sIGZhbHNlKSh0aGlzLl9lbmRwb2ludCksXG4gICAgICAgIGlzQmxvY2s6IHRydWUsXG4gICAgICAgIHR5cGU6IFwibGlzdFwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcIkF6YXBpUHJvdmlkZXJFbmRwb2ludExpc3RcIixcbiAgICAgIH0sXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICB2YWx1ZTogY2RrdGYuc3RyaW5nVG9IY2xUZXJyYWZvcm0odGhpcy5fZW52aXJvbm1lbnQpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICBpZ25vcmVfbm9fb3BfY2hhbmdlczoge1xuICAgICAgICB2YWx1ZTogY2RrdGYuYm9vbGVhblRvSGNsVGVycmFmb3JtKHRoaXMuX2lnbm9yZU5vT3BDaGFuZ2VzKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgfSxcbiAgICAgIG1heGltdW1fYnVzeV9yZXRyeV9hdHRlbXB0czoge1xuICAgICAgICB2YWx1ZTogY2RrdGYubnVtYmVyVG9IY2xUZXJyYWZvcm0odGhpcy5fbWF4aW11bUJ1c3lSZXRyeUF0dGVtcHRzKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwibnVtYmVyXCIsXG4gICAgICB9LFxuICAgICAgb2lkY19henVyZV9zZXJ2aWNlX2Nvbm5lY3Rpb25faWQ6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLnN0cmluZ1RvSGNsVGVycmFmb3JtKHRoaXMuX29pZGNBenVyZVNlcnZpY2VDb25uZWN0aW9uSWQpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICBvaWRjX3JlcXVlc3RfdG9rZW46IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLnN0cmluZ1RvSGNsVGVycmFmb3JtKHRoaXMuX29pZGNSZXF1ZXN0VG9rZW4pLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICBvaWRjX3JlcXVlc3RfdXJsOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl9vaWRjUmVxdWVzdFVybCksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIG9pZGNfdG9rZW46IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLnN0cmluZ1RvSGNsVGVycmFmb3JtKHRoaXMuX29pZGNUb2tlbiksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIG9pZGNfdG9rZW5fZmlsZV9wYXRoOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5zdHJpbmdUb0hjbFRlcnJhZm9ybSh0aGlzLl9vaWRjVG9rZW5GaWxlUGF0aCksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHBhcnRuZXJfaWQ6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLnN0cmluZ1RvSGNsVGVycmFmb3JtKHRoaXMuX3BhcnRuZXJJZCksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgfSxcbiAgICAgIHNraXBfcHJvdmlkZXJfcmVnaXN0cmF0aW9uOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5ib29sZWFuVG9IY2xUZXJyYWZvcm0odGhpcy5fc2tpcFByb3ZpZGVyUmVnaXN0cmF0aW9uKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgfSxcbiAgICAgIHN1YnNjcmlwdGlvbl9pZDoge1xuICAgICAgICB2YWx1ZTogY2RrdGYuc3RyaW5nVG9IY2xUZXJyYWZvcm0odGhpcy5fc3Vic2NyaXB0aW9uSWQpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB0ZW5hbnRfaWQ6IHtcbiAgICAgICAgdmFsdWU6IGNka3RmLnN0cmluZ1RvSGNsVGVycmFmb3JtKHRoaXMuX3RlbmFudElkKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwic3RyaW5nXCIsXG4gICAgICB9LFxuICAgICAgdXNlX2Frc193b3JrbG9hZF9pZGVudGl0eToge1xuICAgICAgICB2YWx1ZTogY2RrdGYuYm9vbGVhblRvSGNsVGVycmFmb3JtKHRoaXMuX3VzZUFrc1dvcmtsb2FkSWRlbnRpdHkpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJib29sZWFuXCIsXG4gICAgICB9LFxuICAgICAgdXNlX2NsaToge1xuICAgICAgICB2YWx1ZTogY2RrdGYuYm9vbGVhblRvSGNsVGVycmFmb3JtKHRoaXMuX3VzZUNsaSksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcImJvb2xlYW5cIixcbiAgICAgIH0sXG4gICAgICB1c2VfbXNpOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5ib29sZWFuVG9IY2xUZXJyYWZvcm0odGhpcy5fdXNlTXNpKSxcbiAgICAgICAgaXNCbG9jazogZmFsc2UsXG4gICAgICAgIHR5cGU6IFwic2ltcGxlXCIsXG4gICAgICAgIHN0b3JhZ2VDbGFzc1R5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgfSxcbiAgICAgIHVzZV9vaWRjOiB7XG4gICAgICAgIHZhbHVlOiBjZGt0Zi5ib29sZWFuVG9IY2xUZXJyYWZvcm0odGhpcy5fdXNlT2lkYyksXG4gICAgICAgIGlzQmxvY2s6IGZhbHNlLFxuICAgICAgICB0eXBlOiBcInNpbXBsZVwiLFxuICAgICAgICBzdG9yYWdlQ2xhc3NUeXBlOiBcImJvb2xlYW5cIixcbiAgICAgIH0sXG4gICAgICBhbGlhczoge1xuICAgICAgICB2YWx1ZTogY2RrdGYuc3RyaW5nVG9IY2xUZXJyYWZvcm0odGhpcy5fYWxpYXMpLFxuICAgICAgICBpc0Jsb2NrOiBmYWxzZSxcbiAgICAgICAgdHlwZTogXCJzaW1wbGVcIixcbiAgICAgICAgc3RvcmFnZUNsYXNzVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIC8vIHJlbW92ZSB1bmRlZmluZWQgYXR0cmlidXRlc1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoYXR0cnMpLmZpbHRlcigoW18sIHZhbHVlXSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZS52YWx1ZSAhPT0gdW5kZWZpbmVkICkpXG4gIH1cbn1cbiJdfQ==