p6-cdk-s3-protector 0.0.50 → 0.0.52

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 (1522) hide show
  1. package/.jsii +68 -10
  2. package/README.md +1 -1
  3. package/lib/p6cdks3protector.js +3 -3
  4. package/node_modules/@aws/lambda-invoke-store/dist-cjs/invoke-store.js +2 -7
  5. package/node_modules/@aws/lambda-invoke-store/dist-es/invoke-store.js +2 -7
  6. package/node_modules/@aws/lambda-invoke-store/dist-types/invoke-store.d.ts +3 -4
  7. package/node_modules/@aws/lambda-invoke-store/package.json +2 -1
  8. package/node_modules/@aws-sdk/client-s3/README.md +13 -107
  9. package/node_modules/@aws-sdk/client-s3/dist-cjs/auth/httpAuthSchemeProvider.js +8 -9
  10. package/node_modules/@aws-sdk/client-s3/dist-cjs/endpoint/ruleset.js +1 -1
  11. package/node_modules/@aws-sdk/client-s3/dist-cjs/index.js +2507 -8983
  12. package/node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.browser.js +3 -4
  13. package/node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.js +7 -12
  14. package/node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.shared.js +7 -5
  15. package/node_modules/@aws-sdk/client-s3/dist-es/S3.js +4 -0
  16. package/node_modules/@aws-sdk/client-s3/dist-es/S3Client.js +2 -2
  17. package/node_modules/@aws-sdk/client-s3/dist-es/auth/httpAuthSchemeProvider.js +8 -9
  18. package/node_modules/@aws-sdk/client-s3/dist-es/commands/AbortMultipartUploadCommand.js +6 -3
  19. package/node_modules/@aws-sdk/client-s3/dist-es/commands/CompleteMultipartUploadCommand.js +2 -2
  20. package/node_modules/@aws-sdk/client-s3/dist-es/commands/CopyObjectCommand.js +2 -2
  21. package/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateBucketCommand.js +2 -2
  22. package/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateBucketMetadataConfigurationCommand.js +3 -3
  23. package/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateBucketMetadataTableConfigurationCommand.js +3 -3
  24. package/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateMultipartUploadCommand.js +2 -2
  25. package/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateSessionCommand.js +6 -3
  26. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketAnalyticsConfigurationCommand.js +2 -2
  27. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketCommand.js +2 -2
  28. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketCorsCommand.js +2 -2
  29. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketEncryptionCommand.js +2 -2
  30. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketIntelligentTieringConfigurationCommand.js +2 -2
  31. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketInventoryConfigurationCommand.js +2 -2
  32. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketLifecycleCommand.js +2 -2
  33. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketMetadataConfigurationCommand.js +2 -2
  34. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketMetadataTableConfigurationCommand.js +2 -2
  35. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketMetricsConfigurationCommand.js +2 -2
  36. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketOwnershipControlsCommand.js +2 -2
  37. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketPolicyCommand.js +2 -2
  38. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketReplicationCommand.js +2 -2
  39. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketTaggingCommand.js +2 -2
  40. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketWebsiteCommand.js +2 -2
  41. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectCommand.js +6 -3
  42. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectTaggingCommand.js +6 -3
  43. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectsCommand.js +3 -3
  44. package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeletePublicAccessBlockCommand.js +2 -2
  45. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAbacCommand.js +23 -0
  46. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAccelerateConfigurationCommand.js +6 -3
  47. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAclCommand.js +6 -3
  48. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAnalyticsConfigurationCommand.js +6 -3
  49. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketCorsCommand.js +6 -3
  50. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketEncryptionCommand.js +6 -3
  51. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketIntelligentTieringConfigurationCommand.js +6 -3
  52. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketInventoryConfigurationCommand.js +6 -3
  53. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLifecycleConfigurationCommand.js +6 -3
  54. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLocationCommand.js +6 -3
  55. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLoggingCommand.js +6 -3
  56. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketMetadataConfigurationCommand.js +6 -3
  57. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketMetadataTableConfigurationCommand.js +6 -3
  58. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketMetricsConfigurationCommand.js +6 -3
  59. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketNotificationConfigurationCommand.js +6 -3
  60. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketOwnershipControlsCommand.js +6 -3
  61. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketPolicyCommand.js +6 -3
  62. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketPolicyStatusCommand.js +6 -3
  63. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketReplicationCommand.js +6 -3
  64. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketRequestPaymentCommand.js +6 -3
  65. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketTaggingCommand.js +6 -3
  66. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketVersioningCommand.js +6 -3
  67. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketWebsiteCommand.js +6 -3
  68. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectAclCommand.js +6 -3
  69. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectAttributesCommand.js +2 -2
  70. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectCommand.js +4 -4
  71. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectLegalHoldCommand.js +6 -3
  72. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectLockConfigurationCommand.js +6 -3
  73. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectRetentionCommand.js +6 -3
  74. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectTaggingCommand.js +6 -3
  75. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectTorrentCommand.js +2 -2
  76. package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetPublicAccessBlockCommand.js +6 -3
  77. package/node_modules/@aws-sdk/client-s3/dist-es/commands/HeadBucketCommand.js +6 -3
  78. package/node_modules/@aws-sdk/client-s3/dist-es/commands/HeadObjectCommand.js +2 -2
  79. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketAnalyticsConfigurationsCommand.js +6 -3
  80. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketIntelligentTieringConfigurationsCommand.js +6 -3
  81. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketInventoryConfigurationsCommand.js +6 -3
  82. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketMetricsConfigurationsCommand.js +6 -3
  83. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketsCommand.js +6 -3
  84. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListDirectoryBucketsCommand.js +6 -3
  85. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListMultipartUploadsCommand.js +6 -3
  86. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectVersionsCommand.js +6 -3
  87. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectsCommand.js +6 -3
  88. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectsV2Command.js +6 -3
  89. package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListPartsCommand.js +2 -2
  90. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAbacCommand.js +26 -0
  91. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAccelerateConfigurationCommand.js +3 -3
  92. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAclCommand.js +3 -3
  93. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAnalyticsConfigurationCommand.js +2 -2
  94. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketCorsCommand.js +3 -3
  95. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketEncryptionCommand.js +3 -3
  96. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketIntelligentTieringConfigurationCommand.js +2 -2
  97. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketInventoryConfigurationCommand.js +2 -2
  98. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketLifecycleConfigurationCommand.js +3 -3
  99. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketLoggingCommand.js +3 -3
  100. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketMetricsConfigurationCommand.js +2 -2
  101. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketNotificationConfigurationCommand.js +2 -2
  102. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketOwnershipControlsCommand.js +3 -3
  103. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketPolicyCommand.js +3 -3
  104. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketReplicationCommand.js +3 -3
  105. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketRequestPaymentCommand.js +3 -3
  106. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketTaggingCommand.js +3 -3
  107. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketVersioningCommand.js +3 -3
  108. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketWebsiteCommand.js +3 -3
  109. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectAclCommand.js +3 -3
  110. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectCommand.js +3 -3
  111. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectLegalHoldCommand.js +3 -3
  112. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectLockConfigurationCommand.js +3 -3
  113. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectRetentionCommand.js +3 -3
  114. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectTaggingCommand.js +3 -3
  115. package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutPublicAccessBlockCommand.js +3 -3
  116. package/node_modules/@aws-sdk/client-s3/dist-es/commands/RenameObjectCommand.js +6 -3
  117. package/node_modules/@aws-sdk/client-s3/dist-es/commands/RestoreObjectCommand.js +3 -3
  118. package/node_modules/@aws-sdk/client-s3/dist-es/commands/SelectObjectContentCommand.js +2 -2
  119. package/node_modules/@aws-sdk/client-s3/dist-es/commands/UpdateBucketMetadataInventoryTableConfigurationCommand.js +3 -3
  120. package/node_modules/@aws-sdk/client-s3/dist-es/commands/UpdateBucketMetadataJournalTableConfigurationCommand.js +3 -3
  121. package/node_modules/@aws-sdk/client-s3/dist-es/commands/UploadPartCommand.js +3 -3
  122. package/node_modules/@aws-sdk/client-s3/dist-es/commands/UploadPartCopyCommand.js +2 -2
  123. package/node_modules/@aws-sdk/client-s3/dist-es/commands/WriteGetObjectResponseCommand.js +2 -2
  124. package/node_modules/@aws-sdk/client-s3/dist-es/commands/index.js +2 -0
  125. package/node_modules/@aws-sdk/client-s3/dist-es/endpoint/EndpointParameters.js +2 -0
  126. package/node_modules/@aws-sdk/client-s3/dist-es/endpoint/ruleset.js +1 -1
  127. package/node_modules/@aws-sdk/client-s3/dist-es/index.js +3 -0
  128. package/node_modules/@aws-sdk/client-s3/dist-es/models/enums.js +7 -0
  129. package/node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.browser.js +3 -4
  130. package/node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.js +8 -13
  131. package/node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.shared.js +7 -5
  132. package/node_modules/@aws-sdk/client-s3/dist-es/schemas/schemas_0.js +1680 -8790
  133. package/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForBucketExists.js +1 -1
  134. package/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForBucketNotExists.js +1 -1
  135. package/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForObjectExists.js +1 -1
  136. package/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForObjectNotExists.js +1 -1
  137. package/node_modules/@aws-sdk/client-s3/dist-types/S3.d.ts +15 -1
  138. package/node_modules/@aws-sdk/client-s3/dist-types/S3Client.d.ts +16 -23
  139. package/node_modules/@aws-sdk/client-s3/dist-types/auth/httpAuthExtensionConfiguration.d.ts +2 -2
  140. package/node_modules/@aws-sdk/client-s3/dist-types/auth/httpAuthSchemeProvider.d.ts +1 -1
  141. package/node_modules/@aws-sdk/client-s3/dist-types/commands/AbortMultipartUploadCommand.d.ts +3 -3
  142. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CompleteMultipartUploadCommand.d.ts +3 -3
  143. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CopyObjectCommand.d.ts +9 -9
  144. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateBucketCommand.d.ts +4 -9
  145. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateBucketMetadataConfigurationCommand.d.ts +3 -3
  146. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateBucketMetadataTableConfigurationCommand.d.ts +3 -3
  147. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateMultipartUploadCommand.d.ts +4 -4
  148. package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateSessionCommand.d.ts +3 -3
  149. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketAnalyticsConfigurationCommand.d.ts +3 -3
  150. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketCommand.d.ts +3 -3
  151. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketCorsCommand.d.ts +3 -3
  152. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketEncryptionCommand.d.ts +3 -3
  153. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketIntelligentTieringConfigurationCommand.d.ts +3 -3
  154. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketInventoryConfigurationCommand.d.ts +3 -3
  155. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketLifecycleCommand.d.ts +3 -3
  156. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketMetadataConfigurationCommand.d.ts +3 -3
  157. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketMetadataTableConfigurationCommand.d.ts +3 -3
  158. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketMetricsConfigurationCommand.d.ts +3 -3
  159. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketOwnershipControlsCommand.d.ts +3 -3
  160. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketPolicyCommand.d.ts +3 -3
  161. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketReplicationCommand.d.ts +3 -3
  162. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketTaggingCommand.d.ts +5 -4
  163. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketWebsiteCommand.d.ts +3 -3
  164. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteObjectCommand.d.ts +3 -3
  165. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteObjectTaggingCommand.d.ts +3 -3
  166. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteObjectsCommand.d.ts +3 -3
  167. package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeletePublicAccessBlockCommand.d.ts +9 -7
  168. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketAbacCommand.d.ts +77 -0
  169. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketAccelerateConfigurationCommand.d.ts +3 -3
  170. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketAclCommand.d.ts +4 -11
  171. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketAnalyticsConfigurationCommand.d.ts +3 -3
  172. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketCorsCommand.d.ts +3 -3
  173. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketEncryptionCommand.d.ts +4 -4
  174. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketIntelligentTieringConfigurationCommand.d.ts +3 -3
  175. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketInventoryConfigurationCommand.d.ts +4 -4
  176. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketLifecycleConfigurationCommand.d.ts +3 -3
  177. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketLocationCommand.d.ts +3 -3
  178. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketLoggingCommand.d.ts +4 -11
  179. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketMetadataConfigurationCommand.d.ts +3 -3
  180. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketMetadataTableConfigurationCommand.d.ts +3 -3
  181. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketMetricsConfigurationCommand.d.ts +3 -3
  182. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketNotificationConfigurationCommand.d.ts +3 -3
  183. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketOwnershipControlsCommand.d.ts +3 -3
  184. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketPolicyCommand.d.ts +3 -3
  185. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketPolicyStatusCommand.d.ts +3 -3
  186. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketReplicationCommand.d.ts +4 -4
  187. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketRequestPaymentCommand.d.ts +3 -3
  188. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketTaggingCommand.d.ts +4 -3
  189. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketVersioningCommand.d.ts +3 -3
  190. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketWebsiteCommand.d.ts +3 -3
  191. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectAclCommand.d.ts +4 -11
  192. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectAttributesCommand.d.ts +4 -4
  193. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectCommand.d.ts +4 -4
  194. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectLegalHoldCommand.d.ts +3 -3
  195. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectLockConfigurationCommand.d.ts +3 -3
  196. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectRetentionCommand.d.ts +3 -3
  197. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectTaggingCommand.d.ts +3 -3
  198. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectTorrentCommand.d.ts +3 -3
  199. package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetPublicAccessBlockCommand.d.ts +17 -12
  200. package/node_modules/@aws-sdk/client-s3/dist-types/commands/HeadBucketCommand.d.ts +3 -3
  201. package/node_modules/@aws-sdk/client-s3/dist-types/commands/HeadObjectCommand.d.ts +4 -4
  202. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketAnalyticsConfigurationsCommand.d.ts +3 -3
  203. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketIntelligentTieringConfigurationsCommand.d.ts +3 -3
  204. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketInventoryConfigurationsCommand.d.ts +4 -4
  205. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketMetricsConfigurationsCommand.d.ts +3 -3
  206. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketsCommand.d.ts +4 -11
  207. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListDirectoryBucketsCommand.d.ts +3 -3
  208. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListMultipartUploadsCommand.d.ts +5 -12
  209. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectVersionsCommand.d.ts +4 -11
  210. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectsCommand.d.ts +5 -12
  211. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectsV2Command.d.ts +5 -12
  212. package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListPartsCommand.d.ts +5 -12
  213. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAbacCommand.d.ts +78 -0
  214. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAccelerateConfigurationCommand.d.ts +3 -3
  215. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAclCommand.d.ts +3 -3
  216. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAnalyticsConfigurationCommand.d.ts +3 -3
  217. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketCorsCommand.d.ts +3 -3
  218. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketEncryptionCommand.d.ts +4 -4
  219. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketIntelligentTieringConfigurationCommand.d.ts +3 -3
  220. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketInventoryConfigurationCommand.d.ts +4 -4
  221. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketLifecycleConfigurationCommand.d.ts +3 -3
  222. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketLoggingCommand.d.ts +3 -3
  223. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketMetricsConfigurationCommand.d.ts +3 -3
  224. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketNotificationConfigurationCommand.d.ts +3 -3
  225. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketOwnershipControlsCommand.d.ts +3 -3
  226. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketPolicyCommand.d.ts +3 -3
  227. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketReplicationCommand.d.ts +4 -4
  228. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketRequestPaymentCommand.d.ts +3 -3
  229. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketTaggingCommand.d.ts +4 -4
  230. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketVersioningCommand.d.ts +3 -3
  231. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketWebsiteCommand.d.ts +3 -3
  232. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectAclCommand.d.ts +3 -3
  233. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectCommand.d.ts +4 -4
  234. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectLegalHoldCommand.d.ts +3 -3
  235. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectLockConfigurationCommand.d.ts +3 -3
  236. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectRetentionCommand.d.ts +3 -3
  237. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectTaggingCommand.d.ts +3 -3
  238. package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutPublicAccessBlockCommand.d.ts +10 -8
  239. package/node_modules/@aws-sdk/client-s3/dist-types/commands/RenameObjectCommand.d.ts +3 -3
  240. package/node_modules/@aws-sdk/client-s3/dist-types/commands/RestoreObjectCommand.d.ts +5 -5
  241. package/node_modules/@aws-sdk/client-s3/dist-types/commands/SelectObjectContentCommand.d.ts +3 -3
  242. package/node_modules/@aws-sdk/client-s3/dist-types/commands/UpdateBucketMetadataInventoryTableConfigurationCommand.d.ts +3 -3
  243. package/node_modules/@aws-sdk/client-s3/dist-types/commands/UpdateBucketMetadataJournalTableConfigurationCommand.d.ts +3 -3
  244. package/node_modules/@aws-sdk/client-s3/dist-types/commands/UploadPartCommand.d.ts +6 -3
  245. package/node_modules/@aws-sdk/client-s3/dist-types/commands/UploadPartCopyCommand.d.ts +6 -3
  246. package/node_modules/@aws-sdk/client-s3/dist-types/commands/WriteGetObjectResponseCommand.d.ts +3 -3
  247. package/node_modules/@aws-sdk/client-s3/dist-types/commands/index.d.ts +2 -0
  248. package/node_modules/@aws-sdk/client-s3/dist-types/endpoint/EndpointParameters.d.ts +16 -1
  249. package/node_modules/@aws-sdk/client-s3/dist-types/endpoint/endpointResolver.d.ts +5 -2
  250. package/node_modules/@aws-sdk/client-s3/dist-types/extensionConfiguration.d.ts +4 -4
  251. package/node_modules/@aws-sdk/client-s3/dist-types/index.d.ts +3 -2
  252. package/node_modules/@aws-sdk/client-s3/dist-types/models/S3ServiceException.d.ts +1 -1
  253. package/node_modules/@aws-sdk/client-s3/dist-types/models/enums.d.ts +15 -0
  254. package/node_modules/@aws-sdk/client-s3/dist-types/models/errors.d.ts +1 -1
  255. package/node_modules/@aws-sdk/client-s3/dist-types/models/models_0.d.ts +96 -198
  256. package/node_modules/@aws-sdk/client-s3/dist-types/models/models_1.d.ts +101 -2
  257. package/node_modules/@aws-sdk/client-s3/dist-types/pagination/Interfaces.d.ts +1 -1
  258. package/node_modules/@aws-sdk/client-s3/dist-types/pagination/ListBucketsPaginator.d.ts +1 -1
  259. package/node_modules/@aws-sdk/client-s3/dist-types/pagination/ListDirectoryBucketsPaginator.d.ts +1 -1
  260. package/node_modules/@aws-sdk/client-s3/dist-types/pagination/ListObjectsV2Paginator.d.ts +1 -1
  261. package/node_modules/@aws-sdk/client-s3/dist-types/pagination/ListPartsPaginator.d.ts +1 -1
  262. package/node_modules/@aws-sdk/client-s3/dist-types/runtimeConfig.browser.d.ts +10 -3
  263. package/node_modules/@aws-sdk/client-s3/dist-types/runtimeConfig.d.ts +10 -3
  264. package/node_modules/@aws-sdk/client-s3/dist-types/runtimeConfig.native.d.ts +10 -3
  265. package/node_modules/@aws-sdk/client-s3/dist-types/runtimeConfig.shared.d.ts +6 -2
  266. package/node_modules/@aws-sdk/client-s3/dist-types/runtimeExtensions.d.ts +1 -1
  267. package/node_modules/@aws-sdk/client-s3/dist-types/schemas/schemas_0.d.ts +451 -496
  268. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/S3.d.ts +34 -0
  269. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/S3Client.d.ts +18 -10
  270. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/auth/httpAuthExtensionConfiguration.d.ts +1 -1
  271. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/auth/httpAuthSchemeProvider.d.ts +3 -3
  272. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/GetBucketAbacCommand.d.ts +47 -0
  273. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/GetObjectCommand.d.ts +1 -1
  274. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/GetObjectTorrentCommand.d.ts +1 -1
  275. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketAbacCommand.d.ts +45 -0
  276. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/index.d.ts +2 -0
  277. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/endpoint/EndpointParameters.d.ts +6 -0
  278. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/index.d.ts +1 -0
  279. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/S3ServiceException.d.ts +1 -1
  280. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/enums.d.ts +9 -0
  281. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/models_0.d.ts +18 -22
  282. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/models_1.d.ts +25 -2
  283. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/runtimeConfig.browser.d.ts +15 -7
  284. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/runtimeConfig.d.ts +15 -7
  285. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/runtimeConfig.native.d.ts +15 -7
  286. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/runtimeConfig.shared.d.ts +7 -5
  287. package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/schemas/schemas_0.d.ts +451 -497
  288. package/node_modules/@aws-sdk/client-s3/package.json +53 -52
  289. package/node_modules/@aws-sdk/client-s3-control/README.md +1 -102
  290. package/node_modules/@aws-sdk/client-s3-control/dist-cjs/auth/httpAuthSchemeProvider.js +3 -4
  291. package/node_modules/@aws-sdk/client-s3-control/dist-cjs/index.js +2298 -4469
  292. package/node_modules/@aws-sdk/client-s3-control/dist-cjs/runtimeConfig.browser.js +3 -4
  293. package/node_modules/@aws-sdk/client-s3-control/dist-cjs/runtimeConfig.js +5 -8
  294. package/node_modules/@aws-sdk/client-s3-control/dist-cjs/runtimeConfig.shared.js +7 -5
  295. package/node_modules/@aws-sdk/client-s3-control/dist-es/S3ControlClient.js +2 -2
  296. package/node_modules/@aws-sdk/client-s3-control/dist-es/auth/httpAuthSchemeProvider.js +3 -4
  297. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/AssociateAccessGrantsIdentityCenterCommand.js +2 -2
  298. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateAccessGrantCommand.js +2 -2
  299. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateAccessGrantsInstanceCommand.js +2 -2
  300. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateAccessGrantsLocationCommand.js +2 -2
  301. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateAccessPointCommand.js +6 -3
  302. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateAccessPointForObjectLambdaCommand.js +6 -3
  303. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateBucketCommand.js +2 -2
  304. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateJobCommand.js +6 -3
  305. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateMultiRegionAccessPointCommand.js +2 -2
  306. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateStorageLensGroupCommand.js +6 -3
  307. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessGrantCommand.js +2 -2
  308. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessGrantsInstanceCommand.js +2 -2
  309. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessGrantsInstanceResourcePolicyCommand.js +2 -2
  310. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessGrantsLocationCommand.js +2 -2
  311. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessPointCommand.js +6 -3
  312. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessPointForObjectLambdaCommand.js +6 -3
  313. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessPointPolicyCommand.js +6 -3
  314. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessPointPolicyForObjectLambdaCommand.js +6 -3
  315. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessPointScopeCommand.js +6 -3
  316. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteBucketCommand.js +6 -3
  317. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteBucketLifecycleConfigurationCommand.js +6 -3
  318. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteBucketPolicyCommand.js +6 -3
  319. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteBucketReplicationCommand.js +6 -3
  320. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteBucketTaggingCommand.js +6 -3
  321. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteJobTaggingCommand.js +6 -3
  322. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteMultiRegionAccessPointCommand.js +2 -2
  323. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeletePublicAccessBlockCommand.js +6 -3
  324. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteStorageLensConfigurationCommand.js +6 -3
  325. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteStorageLensConfigurationTaggingCommand.js +6 -3
  326. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteStorageLensGroupCommand.js +6 -3
  327. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DescribeJobCommand.js +6 -3
  328. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DescribeMultiRegionAccessPointOperationCommand.js +2 -2
  329. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DissociateAccessGrantsIdentityCenterCommand.js +2 -2
  330. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessGrantCommand.js +2 -2
  331. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessGrantsInstanceCommand.js +2 -2
  332. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessGrantsInstanceForPrefixCommand.js +2 -2
  333. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessGrantsInstanceResourcePolicyCommand.js +2 -2
  334. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessGrantsLocationCommand.js +2 -2
  335. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointCommand.js +6 -3
  336. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointConfigurationForObjectLambdaCommand.js +6 -3
  337. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointForObjectLambdaCommand.js +6 -3
  338. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointPolicyCommand.js +6 -3
  339. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointPolicyForObjectLambdaCommand.js +6 -3
  340. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointPolicyStatusCommand.js +6 -3
  341. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointPolicyStatusForObjectLambdaCommand.js +6 -3
  342. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointScopeCommand.js +6 -3
  343. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetBucketCommand.js +6 -3
  344. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetBucketLifecycleConfigurationCommand.js +6 -3
  345. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetBucketPolicyCommand.js +6 -3
  346. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetBucketReplicationCommand.js +6 -3
  347. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetBucketTaggingCommand.js +6 -3
  348. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetBucketVersioningCommand.js +6 -3
  349. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetDataAccessCommand.js +2 -2
  350. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetJobTaggingCommand.js +6 -3
  351. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetMultiRegionAccessPointCommand.js +2 -2
  352. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetMultiRegionAccessPointPolicyCommand.js +2 -2
  353. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetMultiRegionAccessPointPolicyStatusCommand.js +2 -2
  354. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetMultiRegionAccessPointRoutesCommand.js +2 -2
  355. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetPublicAccessBlockCommand.js +6 -3
  356. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetStorageLensConfigurationCommand.js +6 -3
  357. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetStorageLensConfigurationTaggingCommand.js +6 -3
  358. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetStorageLensGroupCommand.js +6 -3
  359. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListAccessGrantsCommand.js +2 -2
  360. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListAccessGrantsInstancesCommand.js +2 -2
  361. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListAccessGrantsLocationsCommand.js +2 -2
  362. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListAccessPointsCommand.js +6 -3
  363. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListAccessPointsForDirectoryBucketsCommand.js +6 -3
  364. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListAccessPointsForObjectLambdaCommand.js +6 -3
  365. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListCallerAccessGrantsCommand.js +2 -2
  366. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListJobsCommand.js +6 -3
  367. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListMultiRegionAccessPointsCommand.js +2 -2
  368. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListRegionalBucketsCommand.js +6 -3
  369. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListStorageLensConfigurationsCommand.js +6 -3
  370. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListStorageLensGroupsCommand.js +6 -3
  371. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListTagsForResourceCommand.js +6 -3
  372. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutAccessGrantsInstanceResourcePolicyCommand.js +2 -2
  373. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutAccessPointConfigurationForObjectLambdaCommand.js +6 -3
  374. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutAccessPointPolicyCommand.js +6 -3
  375. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutAccessPointPolicyForObjectLambdaCommand.js +6 -3
  376. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutAccessPointScopeCommand.js +6 -3
  377. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutBucketLifecycleConfigurationCommand.js +2 -2
  378. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutBucketPolicyCommand.js +2 -2
  379. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutBucketReplicationCommand.js +2 -2
  380. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutBucketTaggingCommand.js +2 -2
  381. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutBucketVersioningCommand.js +2 -2
  382. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutJobTaggingCommand.js +6 -3
  383. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutMultiRegionAccessPointPolicyCommand.js +2 -2
  384. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutPublicAccessBlockCommand.js +6 -3
  385. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutStorageLensConfigurationCommand.js +6 -3
  386. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutStorageLensConfigurationTaggingCommand.js +6 -3
  387. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/SubmitMultiRegionAccessPointRoutesCommand.js +2 -2
  388. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/TagResourceCommand.js +6 -3
  389. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/UntagResourceCommand.js +6 -3
  390. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/UpdateAccessGrantsLocationCommand.js +2 -2
  391. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/UpdateJobPriorityCommand.js +6 -3
  392. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/UpdateJobStatusCommand.js +6 -3
  393. package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/UpdateStorageLensGroupCommand.js +6 -3
  394. package/node_modules/@aws-sdk/client-s3-control/dist-es/index.js +3 -0
  395. package/node_modules/@aws-sdk/client-s3-control/dist-es/pagination/index.js +2 -2
  396. package/node_modules/@aws-sdk/client-s3-control/dist-es/runtimeConfig.browser.js +3 -4
  397. package/node_modules/@aws-sdk/client-s3-control/dist-es/runtimeConfig.js +6 -9
  398. package/node_modules/@aws-sdk/client-s3-control/dist-es/runtimeConfig.shared.js +7 -5
  399. package/node_modules/@aws-sdk/client-s3-control/dist-es/schemas/schemas_0.js +1552 -4315
  400. package/node_modules/@aws-sdk/client-s3-control/dist-types/S3Control.d.ts +1 -1
  401. package/node_modules/@aws-sdk/client-s3-control/dist-types/S3ControlClient.d.ts +11 -20
  402. package/node_modules/@aws-sdk/client-s3-control/dist-types/auth/httpAuthExtensionConfiguration.d.ts +2 -2
  403. package/node_modules/@aws-sdk/client-s3-control/dist-types/auth/httpAuthSchemeProvider.d.ts +2 -2
  404. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/AssociateAccessGrantsIdentityCenterCommand.d.ts +6 -16
  405. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateAccessGrantCommand.d.ts +6 -15
  406. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateAccessGrantsInstanceCommand.d.ts +6 -14
  407. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateAccessGrantsLocationCommand.d.ts +7 -17
  408. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateAccessPointCommand.d.ts +3 -6
  409. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateAccessPointForObjectLambdaCommand.d.ts +3 -6
  410. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateBucketCommand.d.ts +3 -3
  411. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateJobCommand.d.ts +5 -9
  412. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateMultiRegionAccessPointCommand.d.ts +4 -8
  413. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateStorageLensGroupCommand.d.ts +3 -6
  414. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessGrantCommand.d.ts +5 -10
  415. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessGrantsInstanceCommand.d.ts +5 -13
  416. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessGrantsInstanceResourcePolicyCommand.d.ts +5 -11
  417. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessGrantsLocationCommand.d.ts +5 -13
  418. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessPointCommand.d.ts +3 -6
  419. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessPointForObjectLambdaCommand.d.ts +3 -6
  420. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessPointPolicyCommand.d.ts +3 -6
  421. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessPointPolicyForObjectLambdaCommand.d.ts +3 -6
  422. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessPointScopeCommand.d.ts +7 -11
  423. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteBucketCommand.d.ts +3 -3
  424. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteBucketLifecycleConfigurationCommand.d.ts +3 -6
  425. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteBucketPolicyCommand.d.ts +3 -6
  426. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteBucketReplicationCommand.d.ts +3 -6
  427. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteBucketTaggingCommand.d.ts +3 -6
  428. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteJobTaggingCommand.d.ts +8 -10
  429. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteMultiRegionAccessPointCommand.d.ts +3 -6
  430. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeletePublicAccessBlockCommand.d.ts +8 -7
  431. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteStorageLensConfigurationCommand.d.ts +3 -6
  432. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteStorageLensConfigurationTaggingCommand.d.ts +3 -6
  433. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteStorageLensGroupCommand.d.ts +3 -6
  434. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DescribeJobCommand.d.ts +4 -8
  435. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DescribeMultiRegionAccessPointOperationCommand.d.ts +4 -8
  436. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DissociateAccessGrantsIdentityCenterCommand.d.ts +5 -10
  437. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessGrantCommand.d.ts +4 -8
  438. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessGrantsInstanceCommand.d.ts +4 -8
  439. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessGrantsInstanceForPrefixCommand.d.ts +6 -11
  440. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessGrantsInstanceResourcePolicyCommand.d.ts +4 -8
  441. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessGrantsLocationCommand.d.ts +4 -8
  442. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointCommand.d.ts +3 -6
  443. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointConfigurationForObjectLambdaCommand.d.ts +3 -6
  444. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointForObjectLambdaCommand.d.ts +3 -6
  445. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointPolicyCommand.d.ts +3 -6
  446. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointPolicyForObjectLambdaCommand.d.ts +3 -6
  447. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointPolicyStatusCommand.d.ts +3 -6
  448. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointPolicyStatusForObjectLambdaCommand.d.ts +3 -6
  449. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointScopeCommand.d.ts +6 -9
  450. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetBucketCommand.d.ts +3 -6
  451. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetBucketLifecycleConfigurationCommand.d.ts +3 -6
  452. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetBucketPolicyCommand.d.ts +3 -6
  453. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetBucketReplicationCommand.d.ts +3 -3
  454. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetBucketTaggingCommand.d.ts +3 -3
  455. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetBucketVersioningCommand.d.ts +3 -3
  456. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetDataAccessCommand.d.ts +6 -15
  457. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetJobTaggingCommand.d.ts +8 -9
  458. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetMultiRegionAccessPointCommand.d.ts +3 -6
  459. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetMultiRegionAccessPointPolicyCommand.d.ts +3 -6
  460. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetMultiRegionAccessPointPolicyStatusCommand.d.ts +3 -6
  461. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetMultiRegionAccessPointRoutesCommand.d.ts +3 -6
  462. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetPublicAccessBlockCommand.d.ts +6 -8
  463. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetStorageLensConfigurationCommand.d.ts +43 -6
  464. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetStorageLensConfigurationTaggingCommand.d.ts +3 -6
  465. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetStorageLensGroupCommand.d.ts +3 -6
  466. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListAccessGrantsCommand.d.ts +4 -8
  467. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListAccessGrantsInstancesCommand.d.ts +5 -11
  468. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListAccessGrantsLocationsCommand.d.ts +4 -8
  469. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListAccessPointsCommand.d.ts +3 -6
  470. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListAccessPointsForDirectoryBucketsCommand.d.ts +5 -10
  471. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListAccessPointsForObjectLambdaCommand.d.ts +3 -6
  472. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListCallerAccessGrantsCommand.d.ts +5 -18
  473. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListJobsCommand.d.ts +6 -8
  474. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListMultiRegionAccessPointsCommand.d.ts +3 -6
  475. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListRegionalBucketsCommand.d.ts +3 -6
  476. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListStorageLensConfigurationsCommand.d.ts +3 -6
  477. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListStorageLensGroupsCommand.d.ts +3 -6
  478. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListTagsForResourceCommand.d.ts +13 -17
  479. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutAccessGrantsInstanceResourcePolicyCommand.d.ts +4 -8
  480. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutAccessPointConfigurationForObjectLambdaCommand.d.ts +3 -6
  481. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutAccessPointPolicyCommand.d.ts +3 -6
  482. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutAccessPointPolicyForObjectLambdaCommand.d.ts +3 -6
  483. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutAccessPointScopeCommand.d.ts +6 -13
  484. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutBucketLifecycleConfigurationCommand.d.ts +3 -3
  485. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutBucketPolicyCommand.d.ts +3 -3
  486. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutBucketReplicationCommand.d.ts +3 -3
  487. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutBucketTaggingCommand.d.ts +3 -3
  488. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutBucketVersioningCommand.d.ts +3 -6
  489. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutJobTaggingCommand.d.ts +7 -9
  490. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutMultiRegionAccessPointPolicyCommand.d.ts +3 -6
  491. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutPublicAccessBlockCommand.d.ts +8 -7
  492. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutStorageLensConfigurationCommand.d.ts +43 -6
  493. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutStorageLensConfigurationTaggingCommand.d.ts +3 -6
  494. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/SubmitMultiRegionAccessPointRoutesCommand.d.ts +3 -6
  495. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/TagResourceCommand.d.ts +10 -33
  496. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/UntagResourceCommand.d.ts +12 -16
  497. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/UpdateAccessGrantsLocationCommand.d.ts +4 -8
  498. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/UpdateJobPriorityCommand.d.ts +6 -8
  499. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/UpdateJobStatusCommand.d.ts +6 -7
  500. package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/UpdateStorageLensGroupCommand.d.ts +3 -6
  501. package/node_modules/@aws-sdk/client-s3-control/dist-types/endpoint/EndpointParameters.d.ts +13 -1
  502. package/node_modules/@aws-sdk/client-s3-control/dist-types/endpoint/endpointResolver.d.ts +5 -2
  503. package/node_modules/@aws-sdk/client-s3-control/dist-types/extensionConfiguration.d.ts +4 -4
  504. package/node_modules/@aws-sdk/client-s3-control/dist-types/index.d.ts +3 -1
  505. package/node_modules/@aws-sdk/client-s3-control/dist-types/models/S3ControlServiceException.d.ts +1 -1
  506. package/node_modules/@aws-sdk/client-s3-control/dist-types/models/errors.d.ts +1 -1
  507. package/node_modules/@aws-sdk/client-s3-control/dist-types/models/models_0.d.ts +354 -623
  508. package/node_modules/@aws-sdk/client-s3-control/dist-types/models/models_1.d.ts +48 -0
  509. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/Interfaces.d.ts +1 -1
  510. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListAccessGrantsInstancesPaginator.d.ts +1 -1
  511. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListAccessGrantsLocationsPaginator.d.ts +1 -1
  512. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListAccessGrantsPaginator.d.ts +1 -1
  513. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListAccessPointsForDirectoryBucketsPaginator.d.ts +1 -1
  514. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListAccessPointsForObjectLambdaPaginator.d.ts +1 -1
  515. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListAccessPointsPaginator.d.ts +1 -1
  516. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListCallerAccessGrantsPaginator.d.ts +1 -1
  517. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListJobsPaginator.d.ts +1 -1
  518. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListMultiRegionAccessPointsPaginator.d.ts +1 -1
  519. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListRegionalBucketsPaginator.d.ts +1 -1
  520. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListStorageLensConfigurationsPaginator.d.ts +1 -1
  521. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListStorageLensGroupsPaginator.d.ts +1 -1
  522. package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/index.d.ts +2 -2
  523. package/node_modules/@aws-sdk/client-s3-control/dist-types/runtimeConfig.browser.d.ts +7 -3
  524. package/node_modules/@aws-sdk/client-s3-control/dist-types/runtimeConfig.d.ts +7 -3
  525. package/node_modules/@aws-sdk/client-s3-control/dist-types/runtimeConfig.native.d.ts +7 -3
  526. package/node_modules/@aws-sdk/client-s3-control/dist-types/runtimeConfig.shared.d.ts +6 -2
  527. package/node_modules/@aws-sdk/client-s3-control/dist-types/runtimeExtensions.d.ts +1 -1
  528. package/node_modules/@aws-sdk/client-s3-control/dist-types/schemas/schemas_0.d.ts +413 -460
  529. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/S3ControlClient.d.ts +3 -7
  530. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/auth/httpAuthExtensionConfiguration.d.ts +1 -1
  531. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/UpdateJobStatusCommand.d.ts +2 -4
  532. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/UpdateStorageLensGroupCommand.d.ts +1 -1
  533. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/index.d.ts +2 -0
  534. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/models/S3ControlServiceException.d.ts +1 -1
  535. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/models/models_0.d.ts +18 -10
  536. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/models/models_1.d.ts +12 -0
  537. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/pagination/index.d.ts +2 -2
  538. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/runtimeConfig.browser.d.ts +9 -7
  539. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/runtimeConfig.d.ts +9 -7
  540. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/runtimeConfig.native.d.ts +9 -7
  541. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/runtimeConfig.shared.d.ts +7 -5
  542. package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/schemas/schemas_0.d.ts +413 -461
  543. package/node_modules/@aws-sdk/client-s3-control/package.json +43 -42
  544. package/node_modules/@aws-sdk/client-sso/README.md +1 -9
  545. package/node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js +27 -20
  546. package/node_modules/@aws-sdk/client-sso/dist-cjs/index.js +105 -199
  547. package/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.browser.js +3 -4
  548. package/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js +5 -8
  549. package/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js +6 -1
  550. package/node_modules/@aws-sdk/client-sso/dist-es/SSOClient.js +2 -2
  551. package/node_modules/@aws-sdk/client-sso/dist-es/auth/httpAuthSchemeProvider.js +27 -20
  552. package/node_modules/@aws-sdk/client-sso/dist-es/commands/GetRoleCredentialsCommand.js +2 -2
  553. package/node_modules/@aws-sdk/client-sso/dist-es/commands/ListAccountRolesCommand.js +2 -2
  554. package/node_modules/@aws-sdk/client-sso/dist-es/commands/ListAccountsCommand.js +2 -2
  555. package/node_modules/@aws-sdk/client-sso/dist-es/commands/LogoutCommand.js +2 -2
  556. package/node_modules/@aws-sdk/client-sso/dist-es/index.js +2 -0
  557. package/node_modules/@aws-sdk/client-sso/dist-es/runtimeConfig.browser.js +3 -4
  558. package/node_modules/@aws-sdk/client-sso/dist-es/runtimeConfig.js +6 -9
  559. package/node_modules/@aws-sdk/client-sso/dist-es/runtimeConfig.shared.js +6 -1
  560. package/node_modules/@aws-sdk/client-sso/dist-es/schemas/schemas_0.js +73 -186
  561. package/node_modules/@aws-sdk/client-sso/dist-types/SSO.d.ts +1 -1
  562. package/node_modules/@aws-sdk/client-sso/dist-types/SSOClient.d.ts +10 -19
  563. package/node_modules/@aws-sdk/client-sso/dist-types/auth/httpAuthExtensionConfiguration.d.ts +2 -2
  564. package/node_modules/@aws-sdk/client-sso/dist-types/auth/httpAuthSchemeProvider.d.ts +2 -2
  565. package/node_modules/@aws-sdk/client-sso/dist-types/commands/GetRoleCredentialsCommand.d.ts +3 -3
  566. package/node_modules/@aws-sdk/client-sso/dist-types/commands/ListAccountRolesCommand.d.ts +3 -3
  567. package/node_modules/@aws-sdk/client-sso/dist-types/commands/ListAccountsCommand.d.ts +3 -3
  568. package/node_modules/@aws-sdk/client-sso/dist-types/commands/LogoutCommand.d.ts +3 -3
  569. package/node_modules/@aws-sdk/client-sso/dist-types/endpoint/EndpointParameters.d.ts +13 -1
  570. package/node_modules/@aws-sdk/client-sso/dist-types/endpoint/endpointResolver.d.ts +5 -2
  571. package/node_modules/@aws-sdk/client-sso/dist-types/extensionConfiguration.d.ts +4 -4
  572. package/node_modules/@aws-sdk/client-sso/dist-types/index.d.ts +2 -1
  573. package/node_modules/@aws-sdk/client-sso/dist-types/models/SSOServiceException.d.ts +1 -1
  574. package/node_modules/@aws-sdk/client-sso/dist-types/models/errors.d.ts +1 -1
  575. package/node_modules/@aws-sdk/client-sso/dist-types/pagination/Interfaces.d.ts +1 -1
  576. package/node_modules/@aws-sdk/client-sso/dist-types/pagination/ListAccountRolesPaginator.d.ts +1 -1
  577. package/node_modules/@aws-sdk/client-sso/dist-types/pagination/ListAccountsPaginator.d.ts +1 -1
  578. package/node_modules/@aws-sdk/client-sso/dist-types/runtimeConfig.browser.d.ts +7 -3
  579. package/node_modules/@aws-sdk/client-sso/dist-types/runtimeConfig.d.ts +7 -3
  580. package/node_modules/@aws-sdk/client-sso/dist-types/runtimeConfig.native.d.ts +7 -3
  581. package/node_modules/@aws-sdk/client-sso/dist-types/runtimeConfig.shared.d.ts +8 -3
  582. package/node_modules/@aws-sdk/client-sso/dist-types/runtimeExtensions.d.ts +1 -1
  583. package/node_modules/@aws-sdk/client-sso/dist-types/schemas/schemas_0.d.ts +20 -26
  584. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/SSOClient.d.ts +2 -6
  585. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/auth/httpAuthExtensionConfiguration.d.ts +1 -1
  586. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/index.d.ts +1 -0
  587. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/models/SSOServiceException.d.ts +1 -1
  588. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/runtimeConfig.browser.d.ts +9 -5
  589. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/runtimeConfig.d.ts +9 -5
  590. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/runtimeConfig.native.d.ts +9 -5
  591. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/runtimeConfig.shared.d.ts +9 -4
  592. package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/schemas/schemas_0.d.ts +19 -27
  593. package/node_modules/@aws-sdk/client-sso/package.json +37 -36
  594. package/node_modules/@aws-sdk/client-sts/README.md +1 -17
  595. package/node_modules/@aws-sdk/client-sts/dist-cjs/auth/httpAuthSchemeProvider.js +15 -12
  596. package/node_modules/@aws-sdk/client-sts/dist-cjs/index.js +301 -353
  597. package/node_modules/@aws-sdk/client-sts/dist-cjs/runtimeConfig.browser.js +3 -4
  598. package/node_modules/@aws-sdk/client-sts/dist-cjs/runtimeConfig.js +6 -10
  599. package/node_modules/@aws-sdk/client-sts/dist-cjs/runtimeConfig.shared.js +7 -6
  600. package/node_modules/@aws-sdk/client-sts/dist-es/STSClient.js +2 -2
  601. package/node_modules/@aws-sdk/client-sts/dist-es/auth/httpAuthSchemeProvider.js +15 -12
  602. package/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRoleCommand.js +2 -2
  603. package/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRoleWithSAMLCommand.js +2 -2
  604. package/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRoleWithWebIdentityCommand.js +2 -2
  605. package/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRootCommand.js +2 -2
  606. package/node_modules/@aws-sdk/client-sts/dist-es/commands/DecodeAuthorizationMessageCommand.js +2 -2
  607. package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetAccessKeyInfoCommand.js +2 -2
  608. package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetCallerIdentityCommand.js +2 -2
  609. package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetDelegatedAccessTokenCommand.js +2 -2
  610. package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetFederationTokenCommand.js +2 -2
  611. package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetSessionTokenCommand.js +2 -2
  612. package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetWebIdentityTokenCommand.js +2 -2
  613. package/node_modules/@aws-sdk/client-sts/dist-es/defaultStsRoleAssumers.js +3 -2
  614. package/node_modules/@aws-sdk/client-sts/dist-es/index.js +2 -0
  615. package/node_modules/@aws-sdk/client-sts/dist-es/runtimeConfig.browser.js +3 -4
  616. package/node_modules/@aws-sdk/client-sts/dist-es/runtimeConfig.js +7 -11
  617. package/node_modules/@aws-sdk/client-sts/dist-es/runtimeConfig.shared.js +7 -6
  618. package/node_modules/@aws-sdk/client-sts/dist-es/schemas/schemas_0.js +205 -310
  619. package/node_modules/@aws-sdk/client-sts/dist-types/STS.d.ts +1 -1
  620. package/node_modules/@aws-sdk/client-sts/dist-types/STSClient.d.ts +10 -19
  621. package/node_modules/@aws-sdk/client-sts/dist-types/auth/httpAuthExtensionConfiguration.d.ts +2 -2
  622. package/node_modules/@aws-sdk/client-sts/dist-types/auth/httpAuthSchemeProvider.d.ts +2 -2
  623. package/node_modules/@aws-sdk/client-sts/dist-types/commands/AssumeRoleCommand.d.ts +3 -3
  624. package/node_modules/@aws-sdk/client-sts/dist-types/commands/AssumeRoleWithSAMLCommand.d.ts +3 -3
  625. package/node_modules/@aws-sdk/client-sts/dist-types/commands/AssumeRoleWithWebIdentityCommand.d.ts +3 -3
  626. package/node_modules/@aws-sdk/client-sts/dist-types/commands/AssumeRootCommand.d.ts +3 -3
  627. package/node_modules/@aws-sdk/client-sts/dist-types/commands/DecodeAuthorizationMessageCommand.d.ts +3 -3
  628. package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetAccessKeyInfoCommand.d.ts +3 -3
  629. package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetCallerIdentityCommand.d.ts +3 -3
  630. package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetDelegatedAccessTokenCommand.d.ts +3 -3
  631. package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetFederationTokenCommand.d.ts +3 -3
  632. package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetSessionTokenCommand.d.ts +3 -3
  633. package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetWebIdentityTokenCommand.d.ts +3 -3
  634. package/node_modules/@aws-sdk/client-sts/dist-types/endpoint/EndpointParameters.d.ts +13 -1
  635. package/node_modules/@aws-sdk/client-sts/dist-types/endpoint/endpointResolver.d.ts +5 -2
  636. package/node_modules/@aws-sdk/client-sts/dist-types/extensionConfiguration.d.ts +4 -4
  637. package/node_modules/@aws-sdk/client-sts/dist-types/index.d.ts +2 -1
  638. package/node_modules/@aws-sdk/client-sts/dist-types/models/STSServiceException.d.ts +1 -1
  639. package/node_modules/@aws-sdk/client-sts/dist-types/models/errors.d.ts +1 -1
  640. package/node_modules/@aws-sdk/client-sts/dist-types/runtimeConfig.browser.d.ts +7 -3
  641. package/node_modules/@aws-sdk/client-sts/dist-types/runtimeConfig.d.ts +8 -4
  642. package/node_modules/@aws-sdk/client-sts/dist-types/runtimeConfig.native.d.ts +7 -3
  643. package/node_modules/@aws-sdk/client-sts/dist-types/runtimeConfig.shared.d.ts +8 -3
  644. package/node_modules/@aws-sdk/client-sts/dist-types/runtimeExtensions.d.ts +1 -1
  645. package/node_modules/@aws-sdk/client-sts/dist-types/schemas/schemas_0.d.ts +53 -63
  646. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/STSClient.d.ts +3 -7
  647. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/auth/httpAuthExtensionConfiguration.d.ts +1 -1
  648. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/auth/httpAuthSchemeProvider.d.ts +1 -1
  649. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/index.d.ts +1 -0
  650. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/models/STSServiceException.d.ts +1 -1
  651. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/runtimeConfig.browser.d.ts +9 -5
  652. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/runtimeConfig.d.ts +9 -5
  653. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/runtimeConfig.native.d.ts +9 -5
  654. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/runtimeConfig.shared.d.ts +9 -4
  655. package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/schemas/schemas_0.d.ts +52 -64
  656. package/node_modules/@aws-sdk/client-sts/package.json +39 -36
  657. package/node_modules/@aws-sdk/core/LICENSE +201 -0
  658. package/node_modules/@aws-sdk/core/dist-cjs/index.js +317 -116
  659. package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +3 -3
  660. package/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +9 -1
  661. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +305 -112
  662. package/node_modules/@aws-sdk/core/dist-es/submodules/client/emitWarningIfUnsupportedVersion.js +3 -3
  663. package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js +9 -1
  664. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/ProtocolLib.js +20 -3
  665. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/UnionSerde.js +23 -0
  666. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.js +11 -3
  667. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJson1_0Protocol.js +2 -1
  668. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJson1_1Protocol.js +2 -1
  669. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +14 -11
  670. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeDeserializer.js +42 -26
  671. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeSerializer.js +83 -53
  672. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/experimental/SinglePassJsonShapeSerializer.js +11 -1
  673. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsQueryProtocol.js +3 -8
  674. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/QueryShapeSerializer.js +28 -2
  675. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/structIterator.js +40 -0
  676. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js +13 -4
  677. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeDeserializer.js +12 -0
  678. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeSerializer.js +18 -1
  679. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/ProtocolLib.d.ts +6 -0
  680. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/UnionSerde.d.ts +24 -0
  681. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_0Protocol.d.ts +3 -1
  682. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_1Protocol.d.ts +3 -1
  683. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +2 -1
  684. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeDeserializer.d.ts +1 -1
  685. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeSerializer.d.ts +12 -3
  686. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/structIterator.d.ts +27 -0
  687. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +1 -0
  688. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/ProtocolLib.d.ts +4 -0
  689. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/UnionSerde.d.ts +9 -0
  690. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_0Protocol.d.ts +3 -0
  691. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_1Protocol.d.ts +3 -0
  692. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +2 -0
  693. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonShapeDeserializer.d.ts +1 -1
  694. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonShapeSerializer.d.ts +9 -3
  695. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/structIterator.d.ts +12 -0
  696. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +1 -0
  697. package/node_modules/@aws-sdk/core/package.json +14 -14
  698. package/node_modules/@aws-sdk/crc64-nvme/README.md +61 -0
  699. package/node_modules/@aws-sdk/crc64-nvme/dist-cjs/index.js +101 -0
  700. package/node_modules/@aws-sdk/crc64-nvme/dist-es/Crc64Nvme.js +92 -0
  701. package/node_modules/@aws-sdk/crc64-nvme/dist-es/index.js +2 -0
  702. package/node_modules/@aws-sdk/crc64-nvme/dist-types/Crc64Nvme.d.ts +24 -0
  703. package/node_modules/@aws-sdk/crc64-nvme/dist-types/index.d.ts +2 -0
  704. package/node_modules/@aws-sdk/crc64-nvme/dist-types/ts3.4/Crc64Nvme.d.ts +9 -0
  705. package/node_modules/@aws-sdk/crc64-nvme/dist-types/ts3.4/index.d.ts +2 -0
  706. package/node_modules/@aws-sdk/crc64-nvme/package.json +50 -0
  707. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/package.json +8 -8
  708. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/package.json +13 -13
  709. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-cjs/index.js +22 -24
  710. package/node_modules/@aws-sdk/credential-provider-ini/dist-es/fromIni.js +9 -0
  711. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveAssumeRoleCredentials.js +4 -3
  712. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveLoginCredentials.js +2 -2
  713. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveProfileData.js +5 -5
  714. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveSsoCredentials.js +4 -2
  715. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveWebIdentityCredentials.js +4 -2
  716. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/fromIni.d.ts +2 -3
  717. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveAssumeRoleCredentials.d.ts +3 -3
  718. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveLoginCredentials.d.ts +2 -1
  719. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveProfileData.d.ts +2 -1
  720. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveSsoCredentials.d.ts +2 -1
  721. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveWebIdentityCredentials.d.ts +2 -1
  722. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/fromIni.d.ts +5 -3
  723. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveAssumeRoleCredentials.d.ts +2 -0
  724. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveLoginCredentials.d.ts +3 -1
  725. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveProfileData.d.ts +2 -0
  726. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveSsoCredentials.d.ts +3 -1
  727. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveWebIdentityCredentials.d.ts +3 -1
  728. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/package.json +17 -17
  729. package/node_modules/@aws-sdk/credential-provider-login/package.json +11 -11
  730. package/node_modules/@aws-sdk/credential-provider-node/package.json +15 -15
  731. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/package.json +9 -9
  732. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-cjs/index.js +5 -3
  733. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-es/fromSSO.js +2 -0
  734. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-es/resolveSSOCredentials.js +3 -3
  735. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/fromSSO.d.ts +2 -1
  736. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/resolveSSOCredentials.d.ts +1 -1
  737. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/fromSSO.d.ts +2 -0
  738. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/resolveSSOCredentials.d.ts +1 -0
  739. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/package.json +11 -11
  740. package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/package.json +10 -10
  741. package/node_modules/@aws-sdk/middleware-bucket-endpoint/package.json +9 -9
  742. package/node_modules/@aws-sdk/middleware-expect-continue/package.json +7 -7
  743. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/index.js +29 -21
  744. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsMiddleware.js +25 -9
  745. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/index.js +0 -1
  746. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/selectChecksumAlgorithmFunction.js +2 -6
  747. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/index.d.ts +0 -1
  748. package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/ts3.4/index.d.ts +0 -1
  749. package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +13 -12
  750. package/node_modules/@aws-sdk/middleware-host-header/package.json +7 -7
  751. package/node_modules/@aws-sdk/middleware-location-constraint/package.json +6 -6
  752. package/node_modules/@aws-sdk/middleware-logger/package.json +6 -6
  753. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +8 -8
  754. package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js +2 -2
  755. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +15 -15
  756. package/node_modules/@aws-sdk/middleware-sdk-s3-control/dist-cjs/index.js +1 -1
  757. package/node_modules/@aws-sdk/middleware-sdk-s3-control/package.json +12 -12
  758. package/node_modules/@aws-sdk/middleware-ssec/package.json +6 -6
  759. package/node_modules/@aws-sdk/middleware-user-agent/package.json +10 -10
  760. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +61 -156
  761. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/runtimeConfig.browser.js +2 -2
  762. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/runtimeConfig.js +3 -4
  763. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/runtimeConfig.shared.js +6 -1
  764. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +87 -149
  765. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.browser.js +2 -2
  766. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js +3 -4
  767. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js +6 -1
  768. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +89 -97
  769. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.browser.js +2 -2
  770. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js +3 -4
  771. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js +7 -6
  772. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/SigninClient.js +2 -2
  773. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/commands/CreateOAuth2TokenCommand.js +2 -2
  774. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/index.js +2 -0
  775. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.browser.js +2 -2
  776. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.js +4 -5
  777. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.shared.js +6 -1
  778. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/schemas/schemas_0.js +37 -144
  779. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDCClient.js +2 -2
  780. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commands/CreateTokenCommand.js +2 -2
  781. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/index.js +2 -0
  782. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.browser.js +2 -2
  783. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.js +4 -5
  784. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.shared.js +6 -1
  785. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/schemas/schemas_0.js +43 -121
  786. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STSClient.js +2 -2
  787. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleCommand.js +2 -2
  788. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.js +2 -2
  789. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/defaultStsRoleAssumers.js +3 -2
  790. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/index.js +2 -0
  791. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.browser.js +2 -2
  792. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.js +4 -5
  793. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.shared.js +7 -6
  794. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/schemas/schemas_0.js +46 -74
  795. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/Signin.d.ts +1 -1
  796. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/SigninClient.d.ts +10 -19
  797. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/auth/httpAuthExtensionConfiguration.d.ts +2 -2
  798. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/auth/httpAuthSchemeProvider.d.ts +2 -2
  799. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/commands/CreateOAuth2TokenCommand.d.ts +3 -3
  800. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/endpoint/EndpointParameters.d.ts +13 -1
  801. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/endpoint/endpointResolver.d.ts +5 -2
  802. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/extensionConfiguration.d.ts +4 -4
  803. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/index.d.ts +2 -1
  804. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/models/SigninServiceException.d.ts +1 -1
  805. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/models/errors.d.ts +1 -1
  806. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.browser.d.ts +7 -3
  807. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.d.ts +7 -3
  808. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.native.d.ts +7 -3
  809. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.shared.d.ts +8 -3
  810. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeExtensions.d.ts +1 -1
  811. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/schemas/schemas_0.d.ts +12 -14
  812. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/SSOOIDC.d.ts +1 -1
  813. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/SSOOIDCClient.d.ts +10 -19
  814. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.d.ts +2 -2
  815. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/auth/httpAuthSchemeProvider.d.ts +2 -2
  816. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/commands/CreateTokenCommand.d.ts +3 -3
  817. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/endpoint/EndpointParameters.d.ts +13 -1
  818. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/endpoint/endpointResolver.d.ts +5 -2
  819. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/extensionConfiguration.d.ts +4 -4
  820. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/index.d.ts +2 -1
  821. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +1 -1
  822. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/errors.d.ts +1 -1
  823. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.browser.d.ts +7 -3
  824. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.d.ts +7 -3
  825. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.native.d.ts +7 -3
  826. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.shared.d.ts +8 -3
  827. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeExtensions.d.ts +1 -1
  828. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/schemas/schemas_0.d.ts +16 -23
  829. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/STS.d.ts +1 -1
  830. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/STSClient.d.ts +10 -19
  831. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/auth/httpAuthExtensionConfiguration.d.ts +2 -2
  832. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/auth/httpAuthSchemeProvider.d.ts +2 -2
  833. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleCommand.d.ts +5 -6
  834. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.d.ts +5 -6
  835. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/endpoint/EndpointParameters.d.ts +13 -1
  836. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/endpoint/endpointResolver.d.ts +5 -2
  837. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/extensionConfiguration.d.ts +4 -4
  838. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/index.d.ts +2 -1
  839. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/STSServiceException.d.ts +1 -1
  840. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/errors.d.ts +3 -4
  841. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.browser.d.ts +7 -3
  842. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.d.ts +8 -4
  843. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.native.d.ts +7 -3
  844. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.shared.d.ts +8 -3
  845. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeExtensions.d.ts +1 -1
  846. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/schemas/schemas_0.d.ts +20 -26
  847. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/SigninClient.d.ts +3 -7
  848. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/auth/httpAuthExtensionConfiguration.d.ts +1 -1
  849. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/index.d.ts +1 -0
  850. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/models/SigninServiceException.d.ts +1 -1
  851. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.browser.d.ts +9 -5
  852. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.d.ts +9 -5
  853. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.native.d.ts +9 -5
  854. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.shared.d.ts +9 -4
  855. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/schemas/schemas_0.d.ts +11 -14
  856. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/SSOOIDCClient.d.ts +2 -6
  857. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.d.ts +1 -1
  858. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/index.d.ts +1 -0
  859. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +1 -1
  860. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.browser.d.ts +9 -5
  861. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.d.ts +9 -5
  862. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.native.d.ts +9 -5
  863. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.shared.d.ts +9 -4
  864. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/schemas/schemas_0.d.ts +15 -23
  865. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/STSClient.d.ts +3 -7
  866. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/auth/httpAuthExtensionConfiguration.d.ts +1 -1
  867. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/auth/httpAuthSchemeProvider.d.ts +1 -1
  868. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/index.d.ts +1 -0
  869. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/STSServiceException.d.ts +1 -1
  870. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.browser.d.ts +9 -5
  871. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.d.ts +9 -5
  872. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.native.d.ts +9 -5
  873. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.shared.d.ts +9 -4
  874. package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/schemas/schemas_0.d.ts +19 -27
  875. package/node_modules/@aws-sdk/nested-clients/package.json +35 -35
  876. package/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js +1 -1
  877. package/node_modules/@aws-sdk/region-config-resolver/package.json +8 -8
  878. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +9 -9
  879. package/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +6 -13
  880. package/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js +2 -9
  881. package/node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js +2 -2
  882. package/node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js +2 -2
  883. package/node_modules/@aws-sdk/token-providers/dist-types/fromSso.d.ts +1 -1
  884. package/node_modules/@aws-sdk/token-providers/dist-types/getNewSsoOidcToken.d.ts +3 -2
  885. package/node_modules/@aws-sdk/token-providers/dist-types/getSsoOidcClient.d.ts +2 -1
  886. package/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/fromSso.d.ts +1 -1
  887. package/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/getNewSsoOidcToken.d.ts +3 -1
  888. package/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/getSsoOidcClient.d.ts +3 -1
  889. package/node_modules/@aws-sdk/token-providers/package.json +10 -10
  890. package/node_modules/@aws-sdk/types/package.json +5 -5
  891. package/node_modules/@aws-sdk/util-arn-parser/dist-cjs/index.js +24 -61
  892. package/node_modules/@aws-sdk/util-arn-parser/dist-types/index.d.ts +9 -0
  893. package/node_modules/@aws-sdk/util-arn-parser/package.json +4 -4
  894. package/node_modules/@aws-sdk/util-endpoints/package.json +8 -8
  895. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +6 -6
  896. package/node_modules/@aws-sdk/util-user-agent-node/package.json +8 -8
  897. package/node_modules/@aws-sdk/xml-builder/package.json +5 -5
  898. package/node_modules/@smithy/abort-controller/package.json +2 -2
  899. package/node_modules/@smithy/config-resolver/package.json +5 -5
  900. package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +32 -6
  901. package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +0 -1
  902. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +3 -0
  903. package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +8 -2
  904. package/node_modules/@smithy/core/dist-es/submodules/cbor/CborCodec.js +33 -6
  905. package/node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js +0 -1
  906. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +3 -0
  907. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js +8 -2
  908. package/node_modules/@smithy/core/dist-types/submodules/protocols/SerdeContext.d.ts +10 -2
  909. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/NormalizedSchema.d.ts +6 -0
  910. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/SerdeContext.d.ts +10 -2
  911. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/NormalizedSchema.d.ts +6 -0
  912. package/node_modules/@smithy/core/package.json +11 -9
  913. package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/package.json +5 -5
  914. package/node_modules/@smithy/eventstream-codec/package.json +2 -2
  915. package/node_modules/@smithy/eventstream-serde-browser/package.json +3 -3
  916. package/node_modules/@smithy/eventstream-serde-config-resolver/package.json +2 -2
  917. package/node_modules/@smithy/eventstream-serde-node/package.json +3 -3
  918. package/node_modules/@smithy/eventstream-serde-universal/package.json +3 -3
  919. package/node_modules/@smithy/fetch-http-handler/package.json +5 -5
  920. package/node_modules/@smithy/hash-blob-browser/package.json +2 -2
  921. package/node_modules/@smithy/hash-node/package.json +2 -2
  922. package/node_modules/@smithy/hash-stream-node/package.json +2 -2
  923. package/node_modules/@smithy/invalid-dependency/package.json +2 -2
  924. package/node_modules/@smithy/md5-js/package.json +2 -2
  925. package/node_modules/@smithy/middleware-apply-body-checksum/package.json +3 -3
  926. package/node_modules/@smithy/middleware-content-length/package.json +3 -3
  927. package/node_modules/@smithy/middleware-endpoint/dist-cjs/index.js +11 -3
  928. package/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/createConfigValueProvider.js +10 -2
  929. package/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js +1 -1
  930. package/node_modules/@smithy/middleware-endpoint/dist-types/adaptors/createConfigValueProvider.d.ts +2 -1
  931. package/node_modules/@smithy/middleware-endpoint/dist-types/ts3.4/adaptors/createConfigValueProvider.d.ts +2 -1
  932. package/node_modules/@smithy/middleware-endpoint/package.json +9 -9
  933. package/node_modules/@smithy/middleware-retry/package.json +9 -9
  934. package/node_modules/@smithy/middleware-serde/package.json +3 -3
  935. package/node_modules/@smithy/middleware-stack/package.json +2 -2
  936. package/node_modules/@smithy/node-config-provider/package.json +4 -4
  937. package/node_modules/@smithy/node-http-handler/package.json +5 -5
  938. package/node_modules/{@aws-sdk/token-providers/node_modules/@smithy → @smithy}/property-provider/package.json +2 -2
  939. package/node_modules/@smithy/protocol-http/package.json +2 -2
  940. package/node_modules/@smithy/querystring-builder/package.json +2 -2
  941. package/node_modules/@smithy/querystring-parser/package.json +2 -2
  942. package/node_modules/@smithy/service-error-classification/package.json +2 -2
  943. package/node_modules/@smithy/shared-ini-file-loader/package.json +2 -2
  944. package/node_modules/@smithy/signature-v4/package.json +4 -4
  945. package/node_modules/@smithy/smithy-client/dist-cjs/index.js +6 -0
  946. package/node_modules/@smithy/smithy-client/dist-es/client.js +6 -0
  947. package/node_modules/@smithy/smithy-client/dist-types/client.d.ts +33 -7
  948. package/node_modules/@smithy/smithy-client/dist-types/ts3.4/client.d.ts +33 -7
  949. package/node_modules/@smithy/smithy-client/package.json +8 -8
  950. package/node_modules/@smithy/types/dist-types/schema/schema-deprecated.d.ts +7 -0
  951. package/node_modules/@smithy/types/dist-types/schema/schema.d.ts +6 -0
  952. package/node_modules/@smithy/types/dist-types/schema/static-schemas.d.ts +16 -1
  953. package/node_modules/@smithy/types/dist-types/ts3.4/schema/schema-deprecated.d.ts +7 -0
  954. package/node_modules/@smithy/types/dist-types/ts3.4/schema/schema.d.ts +6 -0
  955. package/node_modules/@smithy/types/dist-types/ts3.4/schema/static-schemas.d.ts +16 -1
  956. package/node_modules/@smithy/types/package.json +1 -1
  957. package/node_modules/@smithy/url-parser/package.json +3 -3
  958. package/node_modules/@smithy/util-defaults-mode-browser/package.json +5 -5
  959. package/node_modules/@smithy/util-defaults-mode-node/package.json +8 -8
  960. package/node_modules/@smithy/util-endpoints/package.json +3 -3
  961. package/node_modules/@smithy/util-middleware/package.json +2 -2
  962. package/node_modules/@smithy/util-retry/package.json +3 -3
  963. package/node_modules/@smithy/util-stream/package.json +4 -4
  964. package/node_modules/@smithy/util-waiter/package.json +3 -3
  965. package/node_modules/aws-sdk/README.md +16 -195
  966. package/node_modules/aws-sdk/dist/aws-sdk-core-react-native.js +756 -346
  967. package/node_modules/aws-sdk/dist/aws-sdk-react-native.js +3758 -2938
  968. package/node_modules/aws-sdk/dist/aws-sdk.js +5 -5
  969. package/node_modules/aws-sdk/dist/aws-sdk.min.js +5 -5
  970. package/node_modules/aws-sdk/lib/core.js +1 -1
  971. package/node_modules/aws-sdk/lib/maintenance_mode_message.js +2 -2
  972. package/node_modules/aws-sdk/package.json +1 -1
  973. package/node_modules/cdk-iam-floyd/README.md +4 -4
  974. package/node_modules/cdk-iam-floyd/lib/generated/aws-managed-policies/cdk-iam-floyd.d.ts +46 -0
  975. package/node_modules/cdk-iam-floyd/lib/generated/aws-managed-policies/cdk-iam-floyd.js +93 -1
  976. package/node_modules/cdk-iam-floyd/lib/generated/aws-managed-policies/iam-floyd.d.ts +46 -0
  977. package/node_modules/cdk-iam-floyd/lib/generated/aws-managed-policies/iam-floyd.js +47 -1
  978. package/node_modules/cdk-iam-floyd/lib/generated/index.d.ts +11 -3
  979. package/node_modules/cdk-iam-floyd/lib/generated/index.js +33 -17
  980. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/apigatewaymanagement.d.ts +6 -0
  981. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/apigatewaymanagement.js +7 -1
  982. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/applicationmigrationservice.d.ts +43 -0
  983. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/applicationmigrationservice.js +56 -1
  984. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/backup.d.ts +127 -0
  985. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/backup.js +168 -3
  986. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrock.d.ts +55 -0
  987. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrock.js +73 -1
  988. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrockagentcore.d.ts +359 -0
  989. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrockagentcore.js +478 -1
  990. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrockpoweredbyawsmantle.d.ts +125 -0
  991. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrockpoweredbyawsmantle.js +166 -0
  992. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/billingandcostmanagementdataexports.d.ts +28 -14
  993. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/billingandcostmanagementdataexports.js +31 -15
  994. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/braket.d.ts +71 -0
  995. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/braket.js +88 -3
  996. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudformation.d.ts +8 -0
  997. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudformation.js +12 -1
  998. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudfront.d.ts +160 -0
  999. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudfront.js +210 -1
  1000. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudtrail.d.ts +10 -2
  1001. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudtrail.js +14 -3
  1002. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchapplicationsignals.d.ts +8 -0
  1003. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchapplicationsignals.js +12 -1
  1004. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchlogs.d.ts +149 -0
  1005. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchlogs.js +201 -2
  1006. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchobservabilityadminservice.d.ts +143 -0
  1007. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchobservabilityadminservice.js +184 -2
  1008. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/computeoptimizerautomation.d.ts +274 -0
  1009. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/computeoptimizerautomation.js +365 -0
  1010. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/connect.d.ts +866 -13
  1011. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/connect.js +1034 -9
  1012. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/costexplorerservice.d.ts +8 -0
  1013. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/costexplorerservice.js +12 -1
  1014. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/costoptimizationhub.d.ts +8 -0
  1015. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/costoptimizationhub.js +12 -1
  1016. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/databasemigrationservice.d.ts +32 -0
  1017. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/databasemigrationservice.js +39 -1
  1018. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/datazone.d.ts +12 -0
  1019. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/datazone.js +19 -1
  1020. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/devopsagentservice.d.ts +469 -0
  1021. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/devopsagentservice.js +630 -0
  1022. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/dynamodb.d.ts +37 -1
  1023. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/dynamodb.js +46 -2
  1024. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/ec2autoscaling.d.ts +16 -0
  1025. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/ec2autoscaling.js +23 -1
  1026. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/ec2imagebuilder.d.ts +30 -0
  1027. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/ec2imagebuilder.js +37 -1
  1028. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticcontainerregistry.d.ts +64 -0
  1029. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticcontainerregistry.js +90 -2
  1030. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticcontainerservice.d.ts +74 -0
  1031. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticcontainerservice.js +87 -1
  1032. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elastickubernetesservice.d.ts +64 -0
  1033. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elastickubernetesservice.js +82 -1
  1034. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elementalmediaconnect.d.ts +357 -31
  1035. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elementalmediaconnect.js +450 -39
  1036. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/glue.d.ts +17 -1
  1037. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/glue.js +21 -2
  1038. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/guardduty.d.ts +24 -0
  1039. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/guardduty.js +34 -1
  1040. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/healthlake.d.ts +2 -0
  1041. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/healthlake.js +3 -1
  1042. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/healthomics.d.ts +0 -11
  1043. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/healthomics.js +1 -14
  1044. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/identityandaccessmanagementiam.d.ts +180 -0
  1045. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/identityandaccessmanagementiam.js +224 -1
  1046. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/identitystore.d.ts +159 -1
  1047. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/identitystore.js +173 -2
  1048. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/invoicingservice.d.ts +78 -0
  1049. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/invoicingservice.js +101 -3
  1050. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/kinesisvideostreams.d.ts +16 -0
  1051. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/kinesisvideostreams.js +24 -2
  1052. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/lakeformation.d.ts +16 -0
  1053. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/lakeformation.js +23 -1
  1054. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/lambda.d.ts +192 -3
  1055. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/lambda.js +251 -4
  1056. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/licensemanager.d.ts +141 -3
  1057. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/licensemanager.js +183 -5
  1058. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/managedstreamingforapachekafka.d.ts +40 -2
  1059. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/managedstreamingforapachekafka.js +50 -3
  1060. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/marketplace.d.ts +48 -0
  1061. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/marketplace.js +67 -1
  1062. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/mcpserver.d.ts +41 -0
  1063. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/mcpserver.js +62 -0
  1064. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/opensearch.d.ts +40 -0
  1065. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/opensearch.js +59 -2
  1066. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/organizations.d.ts +125 -0
  1067. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/organizations.js +152 -3
  1068. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentral.d.ts +1800 -0
  1069. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentral.js +2202 -0
  1070. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentralaccountmanagement.d.ts +47 -1
  1071. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentralaccountmanagement.js +57 -1
  1072. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/pricingplanmanagerservice.d.ts +91 -0
  1073. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/pricingplanmanagerservice.js +127 -0
  1074. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/privatelink.d.ts +23 -1
  1075. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/privatelink.js +28 -2
  1076. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/quicksight.d.ts +8 -0
  1077. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/quicksight.js +28 -17
  1078. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/resourcegrouptaggingapi.d.ts +8 -0
  1079. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/resourcegrouptaggingapi.js +14 -1
  1080. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/route53.d.ts +8 -0
  1081. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/route53.js +12 -1
  1082. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/route53globalresolver.d.ts +551 -0
  1083. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/route53globalresolver.js +727 -0
  1084. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3.d.ts +76 -1
  1085. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3.js +85 -2
  1086. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3tables.d.ts +216 -33
  1087. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3tables.js +262 -35
  1088. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3vectors.d.ts +211 -0
  1089. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3vectors.js +231 -1
  1090. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/sagemaker.d.ts +83 -0
  1091. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/sagemaker.js +107 -1
  1092. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/{sagemakerunifiedstudiomcpisamanagedmcpsolutionforawsdataprocessingserviceslikeemr-glue_athena.d.ts → sagemakerunifiedstudiomcp.d.ts} +5 -5
  1093. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/sagemakerunifiedstudiomcp.js +60 -0
  1094. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/secretsmanager.d.ts +81 -0
  1095. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/secretsmanager.js +88 -1
  1096. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityagent.d.ts +624 -0
  1097. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityagent.js +840 -0
  1098. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityhub.d.ts +16 -0
  1099. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityhub.js +23 -1
  1100. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityincidentresponse.d.ts +17 -0
  1101. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityincidentresponse.js +24 -1
  1102. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/service-oracledatabase-aws.d.ts +6 -0
  1103. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/service-oracledatabase-aws.js +11 -2
  1104. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/servicetomanageaiagentsforuiworkflows.d.ts +168 -0
  1105. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/servicetomanageaiagentsforuiworkflows.js +232 -0
  1106. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/signin.d.ts +18 -2
  1107. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/signin.js +27 -3
  1108. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/transform.d.ts +76 -12
  1109. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/transform.js +101 -13
  1110. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/transformcustom.d.ts +281 -0
  1111. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/transformcustom.js +373 -0
  1112. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/usernotificationscontacts.d.ts +4 -0
  1113. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/usernotificationscontacts.js +5 -1
  1114. package/node_modules/cdk-iam-floyd/package.json +5 -5
  1115. package/node_modules/winston/README.md +10 -8
  1116. package/node_modules/winston/dist/winston/logger.js +1 -0
  1117. package/node_modules/winston/dist/winston/profiler.js +0 -1
  1118. package/node_modules/winston/dist/winston/transports/file.js +87 -50
  1119. package/node_modules/winston/lib/winston/logger.js +1 -0
  1120. package/node_modules/winston/lib/winston/profiler.js +1 -1
  1121. package/node_modules/winston/lib/winston/transports/file.js +32 -0
  1122. package/node_modules/winston/package.json +72 -72
  1123. package/package.json +27 -27
  1124. package/node-v24.9.0-linux-x64.tar.xz +0 -0
  1125. package/node_modules/@aws-sdk/core/node_modules/@smithy/property-provider/package.json +0 -61
  1126. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/README.md +0 -10
  1127. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-cjs/index.js +0 -117
  1128. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +0 -8
  1129. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-es/ProviderError.js +0 -23
  1130. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +0 -8
  1131. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-es/chain.js +0 -21
  1132. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-es/fromStatic.js +0 -1
  1133. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-es/index.js +0 -6
  1134. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-es/memoize.js +0 -45
  1135. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +0 -31
  1136. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +0 -39
  1137. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +0 -31
  1138. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/chain.d.ts +0 -13
  1139. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +0 -5
  1140. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/index.d.ts +0 -24
  1141. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +0 -40
  1142. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -31
  1143. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -39
  1144. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -31
  1145. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +0 -13
  1146. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -5
  1147. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +0 -24
  1148. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +0 -40
  1149. package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/package.json +0 -61
  1150. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/dist-es/fromIni.js +0 -16
  1151. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/LICENSE +0 -201
  1152. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/README.md +0 -10
  1153. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-cjs/index.js +0 -117
  1154. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +0 -8
  1155. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/ProviderError.js +0 -23
  1156. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +0 -8
  1157. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/chain.js +0 -21
  1158. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/fromStatic.js +0 -1
  1159. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/index.js +0 -6
  1160. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/memoize.js +0 -45
  1161. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +0 -31
  1162. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +0 -39
  1163. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +0 -31
  1164. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/chain.d.ts +0 -13
  1165. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +0 -5
  1166. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/index.d.ts +0 -24
  1167. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +0 -40
  1168. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -31
  1169. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -39
  1170. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -31
  1171. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +0 -13
  1172. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -5
  1173. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +0 -24
  1174. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +0 -40
  1175. package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/package.json +0 -61
  1176. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/LICENSE +0 -201
  1177. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/README.md +0 -10
  1178. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-cjs/index.js +0 -117
  1179. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +0 -8
  1180. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/ProviderError.js +0 -23
  1181. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +0 -8
  1182. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/chain.js +0 -21
  1183. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/fromStatic.js +0 -1
  1184. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/index.js +0 -6
  1185. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/memoize.js +0 -45
  1186. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +0 -31
  1187. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +0 -39
  1188. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +0 -31
  1189. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/chain.d.ts +0 -13
  1190. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +0 -5
  1191. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/index.d.ts +0 -24
  1192. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +0 -40
  1193. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -31
  1194. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -39
  1195. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -31
  1196. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +0 -13
  1197. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -5
  1198. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +0 -24
  1199. package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +0 -40
  1200. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/LICENSE +0 -201
  1201. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/README.md +0 -10
  1202. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-cjs/index.js +0 -117
  1203. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +0 -8
  1204. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/ProviderError.js +0 -23
  1205. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +0 -8
  1206. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/chain.js +0 -21
  1207. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/fromStatic.js +0 -1
  1208. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/index.js +0 -6
  1209. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/memoize.js +0 -45
  1210. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +0 -31
  1211. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +0 -39
  1212. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +0 -31
  1213. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/chain.d.ts +0 -13
  1214. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +0 -5
  1215. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/index.d.ts +0 -24
  1216. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +0 -40
  1217. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -31
  1218. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -39
  1219. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -31
  1220. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +0 -13
  1221. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -5
  1222. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +0 -24
  1223. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +0 -40
  1224. package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/package.json +0 -61
  1225. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/LICENSE +0 -201
  1226. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/README.md +0 -10
  1227. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-cjs/index.js +0 -117
  1228. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +0 -8
  1229. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/ProviderError.js +0 -23
  1230. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +0 -8
  1231. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/chain.js +0 -21
  1232. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/fromStatic.js +0 -1
  1233. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/index.js +0 -6
  1234. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/memoize.js +0 -45
  1235. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +0 -31
  1236. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +0 -39
  1237. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +0 -31
  1238. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/chain.d.ts +0 -13
  1239. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +0 -5
  1240. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/index.d.ts +0 -24
  1241. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +0 -40
  1242. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -31
  1243. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -39
  1244. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -31
  1245. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +0 -13
  1246. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -5
  1247. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +0 -24
  1248. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +0 -40
  1249. package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/package.json +0 -61
  1250. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/LICENSE +0 -201
  1251. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/README.md +0 -11
  1252. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/index.js +0 -372
  1253. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/config/Endpoint.js +0 -5
  1254. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointConfigOptions.js +0 -7
  1255. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointMode.js +0 -5
  1256. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointModeConfigOptions.js +0 -8
  1257. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/error/InstanceMetadataV1FallbackError.js +0 -10
  1258. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/fromContainerMetadata.js +0 -77
  1259. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/fromInstanceMetadata.js +0 -134
  1260. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/index.js +0 -7
  1261. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/ImdsCredentials.js +0 -13
  1262. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/RemoteProviderInit.js +0 -3
  1263. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/httpRequest.js +0 -36
  1264. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/index.js +0 -2
  1265. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/retry.js +0 -7
  1266. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/utils/getExtendedInstanceMetadataCredentials.js +0 -17
  1267. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/utils/getInstanceMetadataEndpoint.js +0 -19
  1268. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/utils/staticStabilityProvider.js +0 -25
  1269. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/config/Endpoint.d.ts +0 -7
  1270. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/config/EndpointConfigOptions.d.ts +0 -13
  1271. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/config/EndpointMode.d.ts +0 -7
  1272. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/config/EndpointModeConfigOptions.d.ts +0 -13
  1273. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/error/InstanceMetadataV1FallbackError.d.ts +0 -12
  1274. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/fromContainerMetadata.d.ts +0 -21
  1275. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/fromInstanceMetadata.d.ts +0 -10
  1276. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/index.d.ts +0 -28
  1277. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/ImdsCredentials.d.ts +0 -19
  1278. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/RemoteProviderInit.d.ts +0 -40
  1279. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/httpRequest.d.ts +0 -6
  1280. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/index.d.ts +0 -8
  1281. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/retry.d.ts +0 -10
  1282. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/config/Endpoint.d.ts +0 -7
  1283. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/config/EndpointConfigOptions.d.ts +0 -13
  1284. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/config/EndpointMode.d.ts +0 -7
  1285. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/config/EndpointModeConfigOptions.d.ts +0 -13
  1286. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/error/InstanceMetadataV1FallbackError.d.ts +0 -12
  1287. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/fromContainerMetadata.d.ts +0 -21
  1288. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/fromInstanceMetadata.d.ts +0 -10
  1289. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/index.d.ts +0 -28
  1290. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/ImdsCredentials.d.ts +0 -19
  1291. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/RemoteProviderInit.d.ts +0 -40
  1292. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/httpRequest.d.ts +0 -6
  1293. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/index.d.ts +0 -8
  1294. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/retry.d.ts +0 -10
  1295. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/types.d.ts +0 -7
  1296. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/utils/getExtendedInstanceMetadataCredentials.d.ts +0 -6
  1297. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/utils/getInstanceMetadataEndpoint.d.ts +0 -21
  1298. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/utils/staticStabilityProvider.d.ts +0 -16
  1299. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/types.d.ts +0 -7
  1300. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/utils/getExtendedInstanceMetadataCredentials.d.ts +0 -6
  1301. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/utils/getInstanceMetadataEndpoint.d.ts +0 -21
  1302. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/utils/staticStabilityProvider.d.ts +0 -16
  1303. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/package.json +0 -70
  1304. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/LICENSE +0 -201
  1305. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/README.md +0 -10
  1306. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-cjs/index.js +0 -117
  1307. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +0 -8
  1308. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/ProviderError.js +0 -23
  1309. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +0 -8
  1310. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/chain.js +0 -21
  1311. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/fromStatic.js +0 -1
  1312. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/index.js +0 -6
  1313. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/memoize.js +0 -45
  1314. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +0 -31
  1315. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +0 -39
  1316. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +0 -31
  1317. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/chain.d.ts +0 -13
  1318. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +0 -5
  1319. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/index.d.ts +0 -24
  1320. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +0 -40
  1321. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -31
  1322. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -39
  1323. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -31
  1324. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +0 -13
  1325. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -5
  1326. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +0 -24
  1327. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +0 -40
  1328. package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/package.json +0 -61
  1329. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/deepcomposer.d.ts +0 -277
  1330. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/deepcomposer.js +0 -357
  1331. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentralselling.d.ts +0 -686
  1332. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentralselling.js +0 -840
  1333. package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/sagemakerunifiedstudiomcpisamanagedmcpsolutionforawsdataprocessingserviceslikeemr-glue_athena.js +0 -60
  1334. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/fromHttpTypes.js → client-s3-control/dist-es/models/models_1.js} +0 -0
  1335. /package/node_modules/@aws-sdk/{core/node_modules/@smithy/property-provider → crc64-nvme}/LICENSE +0 -0
  1336. /package/node_modules/@aws-sdk/{middleware-flexible-checksums → crc64-nvme}/dist-es/crc64-nvme-crt-container.js +0 -0
  1337. /package/node_modules/@aws-sdk/{middleware-flexible-checksums → crc64-nvme}/dist-types/crc64-nvme-crt-container.d.ts +0 -0
  1338. /package/node_modules/@aws-sdk/{middleware-flexible-checksums → crc64-nvme}/dist-types/ts3.4/crc64-nvme-crt-container.d.ts +0 -0
  1339. /package/node_modules/@aws-sdk/{credential-provider-login/node_modules/@smithy/property-provider → credential-provider-env}/LICENSE +0 -0
  1340. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/README.md +0 -0
  1341. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-cjs/index.js +0 -0
  1342. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-es/fromEnv.js +0 -0
  1343. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-es/index.js +0 -0
  1344. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-types/fromEnv.d.ts +0 -0
  1345. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-types/index.d.ts +0 -0
  1346. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-types/ts3.4/fromEnv.d.ts +0 -0
  1347. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-types/ts3.4/index.d.ts +0 -0
  1348. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/README.md +0 -0
  1349. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/fromHttp/checkUrl.js +0 -0
  1350. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/fromHttp/fromHttp.browser.js +0 -0
  1351. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/fromHttp/fromHttp.js +0 -0
  1352. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/fromHttp/fromHttpTypes.js +0 -0
  1353. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/fromHttp/requestHelpers.js +0 -0
  1354. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/fromHttp/retry-wrapper.js +0 -0
  1355. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/index.browser.js +0 -0
  1356. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/index.js +0 -0
  1357. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/fromHttp/checkUrl.js +0 -0
  1358. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/fromHttp/fromHttp.browser.js +0 -0
  1359. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/fromHttp/fromHttp.js +0 -0
  1360. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process/dist-es/ProcessCredentials.js → credential-provider-http/dist-es/fromHttp/fromHttpTypes.js} +0 -0
  1361. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/fromHttp/requestHelpers.js +0 -0
  1362. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/fromHttp/retry-wrapper.js +0 -0
  1363. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/index.browser.js +0 -0
  1364. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/index.js +0 -0
  1365. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/fromHttp/checkUrl.d.ts +0 -0
  1366. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/fromHttp/fromHttp.browser.d.ts +0 -0
  1367. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/fromHttp/fromHttp.d.ts +0 -0
  1368. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/fromHttp/fromHttpTypes.d.ts +0 -0
  1369. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/fromHttp/requestHelpers.d.ts +0 -0
  1370. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/fromHttp/retry-wrapper.d.ts +0 -0
  1371. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/index.browser.d.ts +0 -0
  1372. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/index.d.ts +0 -0
  1373. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/fromHttp/checkUrl.d.ts +0 -0
  1374. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/fromHttp/fromHttp.browser.d.ts +0 -0
  1375. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/fromHttp/fromHttp.d.ts +0 -0
  1376. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/fromHttp/fromHttpTypes.d.ts +0 -0
  1377. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/fromHttp/requestHelpers.d.ts +0 -0
  1378. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/fromHttp/retry-wrapper.d.ts +0 -0
  1379. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/index.browser.d.ts +0 -0
  1380. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/index.d.ts +0 -0
  1381. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-ini}/LICENSE +0 -0
  1382. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/README.md +0 -0
  1383. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/index.js +0 -0
  1384. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveCredentialSource.js +0 -0
  1385. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveProcessCredentials.js +0 -0
  1386. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveStaticCredentials.js +0 -0
  1387. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/index.d.ts +0 -0
  1388. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveCredentialSource.d.ts +0 -0
  1389. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveProcessCredentials.d.ts +0 -0
  1390. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveStaticCredentials.d.ts +0 -0
  1391. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/index.d.ts +0 -0
  1392. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveCredentialSource.d.ts +0 -0
  1393. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveProcessCredentials.d.ts +0 -0
  1394. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveStaticCredentials.d.ts +0 -0
  1395. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/LICENSE +0 -0
  1396. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/README.md +0 -0
  1397. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-cjs/index.js +0 -0
  1398. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso/dist-es/types.js → credential-provider-process/dist-es/ProcessCredentials.js} +0 -0
  1399. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-es/fromProcess.js +0 -0
  1400. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-es/getValidatedProcessCredentials.js +0 -0
  1401. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-es/index.js +0 -0
  1402. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-es/resolveProcessCredentials.js +0 -0
  1403. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/ProcessCredentials.d.ts +0 -0
  1404. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/fromProcess.d.ts +0 -0
  1405. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/getValidatedProcessCredentials.d.ts +0 -0
  1406. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/index.d.ts +0 -0
  1407. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/resolveProcessCredentials.d.ts +0 -0
  1408. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/ts3.4/ProcessCredentials.d.ts +0 -0
  1409. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/ts3.4/fromProcess.d.ts +0 -0
  1410. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/ts3.4/getValidatedProcessCredentials.d.ts +0 -0
  1411. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/ts3.4/index.d.ts +0 -0
  1412. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/ts3.4/resolveProcessCredentials.d.ts +0 -0
  1413. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/LICENSE +0 -0
  1414. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/README.md +0 -0
  1415. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-cjs/loadSso-CVy8iqsZ.js +0 -0
  1416. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-es/index.js +0 -0
  1417. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-es/isSsoProfile.js +0 -0
  1418. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-es/loadSso.js +0 -0
  1419. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@smithy/credential-provider-imds → credential-provider-sso}/dist-es/types.js +0 -0
  1420. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-es/validateSsoProfile.js +0 -0
  1421. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/index.d.ts +0 -0
  1422. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/isSsoProfile.d.ts +0 -0
  1423. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/loadSso.d.ts +0 -0
  1424. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/index.d.ts +0 -0
  1425. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/isSsoProfile.d.ts +0 -0
  1426. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/loadSso.d.ts +0 -0
  1427. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/types.d.ts +0 -0
  1428. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/validateSsoProfile.d.ts +0 -0
  1429. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/types.d.ts +0 -0
  1430. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/validateSsoProfile.d.ts +0 -0
  1431. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/LICENSE +0 -0
  1432. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/README.md +0 -0
  1433. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-cjs/fromTokenFile.js +0 -0
  1434. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-cjs/fromWebToken.js +0 -0
  1435. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-cjs/index.js +0 -0
  1436. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-es/fromTokenFile.js +0 -0
  1437. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-es/fromWebToken.js +0 -0
  1438. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-es/index.js +0 -0
  1439. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-types/fromTokenFile.d.ts +0 -0
  1440. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-types/fromWebToken.d.ts +0 -0
  1441. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-types/index.d.ts +0 -0
  1442. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-types/ts3.4/fromTokenFile.d.ts +0 -0
  1443. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-types/ts3.4/fromWebToken.d.ts +0 -0
  1444. /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-types/ts3.4/index.d.ts +0 -0
  1445. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → @smithy/credential-provider-imds}/LICENSE +0 -0
  1446. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/README.md +0 -0
  1447. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-cjs/index.js +0 -0
  1448. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/config/Endpoint.js +0 -0
  1449. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/config/EndpointConfigOptions.js +0 -0
  1450. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/config/EndpointMode.js +0 -0
  1451. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/config/EndpointModeConfigOptions.js +0 -0
  1452. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/error/InstanceMetadataV1FallbackError.js +0 -0
  1453. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/fromContainerMetadata.js +0 -0
  1454. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/fromInstanceMetadata.js +0 -0
  1455. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/index.js +0 -0
  1456. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/remoteProvider/ImdsCredentials.js +0 -0
  1457. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/remoteProvider/RemoteProviderInit.js +0 -0
  1458. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/remoteProvider/httpRequest.js +0 -0
  1459. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/remoteProvider/index.js +0 -0
  1460. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/remoteProvider/retry.js +0 -0
  1461. /package/node_modules/@smithy/{util-defaults-mode-node/node_modules/@smithy/credential-provider-imds → credential-provider-imds}/dist-es/types.js +0 -0
  1462. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/utils/getExtendedInstanceMetadataCredentials.js +0 -0
  1463. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/utils/getInstanceMetadataEndpoint.js +0 -0
  1464. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/utils/staticStabilityProvider.js +0 -0
  1465. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/config/Endpoint.d.ts +0 -0
  1466. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/config/EndpointConfigOptions.d.ts +0 -0
  1467. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/config/EndpointMode.d.ts +0 -0
  1468. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/config/EndpointModeConfigOptions.d.ts +0 -0
  1469. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/error/InstanceMetadataV1FallbackError.d.ts +0 -0
  1470. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/fromContainerMetadata.d.ts +0 -0
  1471. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/fromInstanceMetadata.d.ts +0 -0
  1472. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/index.d.ts +0 -0
  1473. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/remoteProvider/ImdsCredentials.d.ts +0 -0
  1474. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/remoteProvider/RemoteProviderInit.d.ts +0 -0
  1475. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/remoteProvider/httpRequest.d.ts +0 -0
  1476. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/remoteProvider/index.d.ts +0 -0
  1477. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/remoteProvider/retry.d.ts +0 -0
  1478. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/config/Endpoint.d.ts +0 -0
  1479. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/config/EndpointConfigOptions.d.ts +0 -0
  1480. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/config/EndpointMode.d.ts +0 -0
  1481. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/config/EndpointModeConfigOptions.d.ts +0 -0
  1482. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/error/InstanceMetadataV1FallbackError.d.ts +0 -0
  1483. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/fromContainerMetadata.d.ts +0 -0
  1484. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/fromInstanceMetadata.d.ts +0 -0
  1485. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/index.d.ts +0 -0
  1486. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/remoteProvider/ImdsCredentials.d.ts +0 -0
  1487. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/remoteProvider/RemoteProviderInit.d.ts +0 -0
  1488. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/remoteProvider/httpRequest.d.ts +0 -0
  1489. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/remoteProvider/index.d.ts +0 -0
  1490. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/remoteProvider/retry.d.ts +0 -0
  1491. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/types.d.ts +0 -0
  1492. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/utils/getExtendedInstanceMetadataCredentials.d.ts +0 -0
  1493. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/utils/getInstanceMetadataEndpoint.d.ts +0 -0
  1494. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/utils/staticStabilityProvider.d.ts +0 -0
  1495. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/types.d.ts +0 -0
  1496. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/utils/getExtendedInstanceMetadataCredentials.d.ts +0 -0
  1497. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/utils/getInstanceMetadataEndpoint.d.ts +0 -0
  1498. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/utils/staticStabilityProvider.d.ts +0 -0
  1499. /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy/credential-provider-imds → @smithy/property-provider}/LICENSE +0 -0
  1500. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/README.md +0 -0
  1501. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-cjs/index.js +0 -0
  1502. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/CredentialsProviderError.js +0 -0
  1503. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/ProviderError.js +0 -0
  1504. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/TokenProviderError.js +0 -0
  1505. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/chain.js +0 -0
  1506. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/fromStatic.js +0 -0
  1507. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/index.js +0 -0
  1508. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/memoize.js +0 -0
  1509. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/CredentialsProviderError.d.ts +0 -0
  1510. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ProviderError.d.ts +0 -0
  1511. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/TokenProviderError.d.ts +0 -0
  1512. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/chain.d.ts +0 -0
  1513. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/fromStatic.d.ts +0 -0
  1514. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/index.d.ts +0 -0
  1515. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/memoize.d.ts +0 -0
  1516. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -0
  1517. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -0
  1518. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -0
  1519. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/chain.d.ts +0 -0
  1520. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -0
  1521. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/index.d.ts +0 -0
  1522. /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/memoize.d.ts +0 -0
@@ -91,6 +91,20 @@ class Eks extends shared_1.PolicyStatement {
91
91
  toCreateAddon() {
92
92
  return this.to('CreateAddon');
93
93
  }
94
+ /**
95
+ * Grants permission to create a capability for an Amazon EKS cluster
96
+ *
97
+ * Access Level: Write
98
+ *
99
+ * Possible conditions:
100
+ * - .ifAwsRequestTag()
101
+ * - .ifAwsTagKeys()
102
+ *
103
+ * https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateCapability.html
104
+ */
105
+ toCreateCapability() {
106
+ return this.to('CreateCapability');
107
+ }
94
108
  /**
95
109
  * Grants permission to create an Amazon EKS cluster
96
110
  *
@@ -189,6 +203,16 @@ class Eks extends shared_1.PolicyStatement {
189
203
  toDeleteAddon() {
190
204
  return this.to('DeleteAddon');
191
205
  }
206
+ /**
207
+ * Grants permission to delete a capability from an Amazon EKS cluster
208
+ *
209
+ * Access Level: Write
210
+ *
211
+ * https://docs.aws.amazon.com/eks/latest/APIReference/API_DeleteCapability.html
212
+ */
213
+ toDeleteCapability() {
214
+ return this.to('DeleteCapability');
215
+ }
192
216
  /**
193
217
  * Grants permission to delete an Amazon EKS cluster
194
218
  *
@@ -289,6 +313,16 @@ class Eks extends shared_1.PolicyStatement {
289
313
  toDescribeAddonVersions() {
290
314
  return this.to('DescribeAddonVersions');
291
315
  }
316
+ /**
317
+ * Grants permission to describe a capability for an Amazon EKS cluster
318
+ *
319
+ * Access Level: Read
320
+ *
321
+ * https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeCapability.html
322
+ */
323
+ toDescribeCapability() {
324
+ return this.to('DescribeCapability');
325
+ }
292
326
  /**
293
327
  * Grants permission to retrieve descriptive information about an Amazon EKS cluster
294
328
  *
@@ -454,6 +488,16 @@ class Eks extends shared_1.PolicyStatement {
454
488
  toListAssociatedAccessPolicies() {
455
489
  return this.to('ListAssociatedAccessPolicies');
456
490
  }
491
+ /**
492
+ * Grants permission to list capabilities for an Amazon EKS cluster
493
+ *
494
+ * Access Level: List
495
+ *
496
+ * https://docs.aws.amazon.com/eks/latest/APIReference/API_ListCapabilities.html
497
+ */
498
+ toListCapabilities() {
499
+ return this.to('ListCapabilities');
500
+ }
457
501
  /**
458
502
  * Grants permission to list the Amazon EKS clusters in your AWS account (in the specified or default region)
459
503
  *
@@ -648,6 +692,16 @@ class Eks extends shared_1.PolicyStatement {
648
692
  toUpdateAddon() {
649
693
  return this.to('UpdateAddon');
650
694
  }
695
+ /**
696
+ * Grants permission to update a capability for an Amazon EKS cluster
697
+ *
698
+ * Access Level: Write
699
+ *
700
+ * https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateCapability.html
701
+ */
702
+ toUpdateCapability() {
703
+ return this.to('UpdateCapability');
704
+ }
651
705
  /**
652
706
  * Grants permission to update Amazon EKS cluster configurations (eg: API server endpoint access)
653
707
  *
@@ -890,6 +944,25 @@ class Eks extends shared_1.PolicyStatement {
890
944
  onDashboard(dashboardName, account, region, partition) {
891
945
  return this.on(`arn:${partition ?? this.defaultPartition}:eks:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:dashboard/${dashboardName}`);
892
946
  }
947
+ /**
948
+ * Adds a resource of type capability to the statement
949
+ *
950
+ * https://docs.aws.amazon.com/eks/latest/userguide/capabilities.html
951
+ *
952
+ * @param clusterName - Identifier for the clusterName.
953
+ * @param capabilityType - Identifier for the capabilityType.
954
+ * @param capabilityName - Identifier for the capabilityName.
955
+ * @param uUID - Identifier for the uUID.
956
+ * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
957
+ * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
958
+ * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
959
+ *
960
+ * Possible conditions:
961
+ * - .ifAwsResourceTag()
962
+ */
963
+ onCapability(clusterName, capabilityType, capabilityName, uUID, account, region, partition) {
964
+ return this.on(`arn:${partition ?? this.defaultPartition}:eks:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:capability/${clusterName}/${capabilityType}/${capabilityName}/${uUID}`);
965
+ }
893
966
  /**
894
967
  * Filters access by a key that is present in the request the user makes to the EKS service
895
968
  *
@@ -899,6 +972,7 @@ class Eks extends shared_1.PolicyStatement {
899
972
  * - .toAssociateIdentityProviderConfig()
900
973
  * - .toCreateAccessEntry()
901
974
  * - .toCreateAddon()
975
+ * - .toCreateCapability()
902
976
  * - .toCreateCluster()
903
977
  * - .toCreateEksAnywhereSubscription()
904
978
  * - .toCreateFargateProfile()
@@ -929,6 +1003,7 @@ class Eks extends shared_1.PolicyStatement {
929
1003
  * - podidentityassociation
930
1004
  * - access-entry
931
1005
  * - dashboard
1006
+ * - capability
932
1007
  *
933
1008
  * @param tagKey The tag key to check
934
1009
  * @param value The value(s) to check
@@ -946,6 +1021,7 @@ class Eks extends shared_1.PolicyStatement {
946
1021
  * - .toAssociateIdentityProviderConfig()
947
1022
  * - .toCreateAccessEntry()
948
1023
  * - .toCreateAddon()
1024
+ * - .toCreateCapability()
949
1025
  * - .toCreateCluster()
950
1026
  * - .toCreateEksAnywhereSubscription()
951
1027
  * - .toCreateFargateProfile()
@@ -1243,6 +1319,7 @@ class Eks extends shared_1.PolicyStatement {
1243
1319
  'DescribeAddon',
1244
1320
  'DescribeAddonConfiguration',
1245
1321
  'DescribeAddonVersions',
1322
+ 'DescribeCapability',
1246
1323
  'DescribeCluster',
1247
1324
  'DescribeClusterVersions',
1248
1325
  'DescribeEksAnywhereSubscription',
@@ -1263,6 +1340,7 @@ class Eks extends shared_1.PolicyStatement {
1263
1340
  'AssociateIdentityProviderConfig',
1264
1341
  'CreateAccessEntry',
1265
1342
  'CreateAddon',
1343
+ 'CreateCapability',
1266
1344
  'CreateCluster',
1267
1345
  'CreateEksAnywhereSubscription',
1268
1346
  'CreateFargateProfile',
@@ -1270,6 +1348,7 @@ class Eks extends shared_1.PolicyStatement {
1270
1348
  'CreatePodIdentityAssociation',
1271
1349
  'DeleteAccessEntry',
1272
1350
  'DeleteAddon',
1351
+ 'DeleteCapability',
1273
1352
  'DeleteCluster',
1274
1353
  'DeleteEksAnywhereSubscription',
1275
1354
  'DeleteFargateProfile',
@@ -1283,6 +1362,7 @@ class Eks extends shared_1.PolicyStatement {
1283
1362
  'StartInsightsRefresh',
1284
1363
  'UpdateAccessEntry',
1285
1364
  'UpdateAddon',
1365
+ 'UpdateCapability',
1286
1366
  'UpdateClusterConfig',
1287
1367
  'UpdateClusterVersion',
1288
1368
  'UpdateEksAnywhereSubscription',
@@ -1295,6 +1375,7 @@ class Eks extends shared_1.PolicyStatement {
1295
1375
  'ListAccessPolicies',
1296
1376
  'ListAddons',
1297
1377
  'ListAssociatedAccessPolicies',
1378
+ 'ListCapabilities',
1298
1379
  'ListClusters',
1299
1380
  'ListEksAnywhereSubscriptions',
1300
1381
  'ListFargateProfiles',
@@ -1312,4 +1393,4 @@ class Eks extends shared_1.PolicyStatement {
1312
1393
  }
1313
1394
  }
1314
1395
  exports.Eks = Eks;
1315
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhc3RpY2t1YmVybmV0ZXNzZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZWxhc3RpY2t1YmVybmV0ZXNzZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF5RDtBQUd6RDs7OztHQUlHO0FBQ0gsTUFBYSxHQUFJLFNBQVEsd0JBQWU7SUFHdEM7Ozs7OztPQU1HO0lBQ0kscUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLHVCQUF1QjtRQUM1QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksMkJBQTJCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxpQ0FBaUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ0ksbUJBQW1CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FrQkc7SUFDSSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLCtCQUErQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUNs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dTNDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY2Vzc0xldmVsTGlzdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9hY2Nlc3MtbGV2ZWwnO1xuaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50LCBPcGVyYXRvciB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBhd3NfaWFtIGFzIGlhbSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG4vKipcbiAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbZWtzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hbWF6b25lbGFzdGlja3ViZXJuZXRlc3NlcnZpY2UuaHRtbCkuXG4gKlxuICogQHBhcmFtIHNpZCBbU0lEXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX3NpZC5odG1sKSBvZiB0aGUgc3RhdGVtZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBFa3MgZXh0ZW5kcyBQb2xpY3lTdGF0ZW1lbnQge1xuICBwdWJsaWMgc2VydmljZVByZWZpeCA9ICdla3MnO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB2aWV3IEt1YmVybmV0ZXMgb2JqZWN0cyB2aWEgQVdTIEVLUyBjb25zb2xlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvdmlldy13b3JrbG9hZHMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQWNjZXNzS3ViZXJuZXRlc0FwaSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQWNjZXNzS3ViZXJuZXRlc0FwaScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGFzc29jaWF0ZSBhbiBBbWF6b24gRUtTIGFjY2VzcyBwb2xpY3kgdG8gYW4gQW1hem9uIEVLUyBhY2Nlc3MgZW50cnlcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlBvbGljeUFybigpXG4gICAqIC0gLmlmTmFtZXNwYWNlcygpXG4gICAqIC0gLmlmQWNjZXNzU2NvcGUoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Fzc29jaWF0ZUFjY2Vzc1BvbGljeS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9Bc3NvY2lhdGVBY2Nlc3NQb2xpY3koKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Fzc29jaWF0ZUFjY2Vzc1BvbGljeScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGFzc29jaWF0ZSBlbmNyeXB0aW9uIGNvbmZpZ3VyYXRpb24gdG8gYSBjbHVzdGVyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Bc3NvY2lhdGVFbmNyeXB0aW9uQ29uZmlnLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Fzc29jaWF0ZUVuY3J5cHRpb25Db25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Fzc29jaWF0ZUVuY3J5cHRpb25Db25maWcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBhc3NvY2lhdGUgYW4gaWRlbnRpdHkgcHJvdmlkZXIgY29uZmlndXJhdGlvbiB0byBhIGNsdXN0ZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKiAtIC5pZkNsaWVudElkKClcbiAgICogLSAuaWZJc3N1ZXJVcmwoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Fzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWcuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhbiBBbWF6b24gRUtTIGFjY2VzcyBlbnRyeVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqIC0gLmlmUHJpbmNpcGFsQXJuKClcbiAgICogLSAuaWZLdWJlcm5ldGVzR3JvdXBzKClcbiAgICogLSAuaWZVc2VybmFtZSgpXG4gICAqIC0gLmlmQWNjZXNzRW50cnlUeXBlKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVBY2Nlc3NFbnRyeS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVBY2Nlc3NFbnRyeSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlQWNjZXNzRW50cnknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYW4gQW1hem9uIEVLUyBhZGQtb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZUFkZG9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUFkZG9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVBZGRvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhbiBBbWF6b24gRUtTIGNsdXN0ZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKiAtIC5pZkJvb3RzdHJhcENsdXN0ZXJDcmVhdG9yQWRtaW5QZXJtaXNzaW9ucygpXG4gICAqIC0gLmlmQm9vdHN0cmFwU2VsZk1hbmFnZWRBZGRvbnMoKVxuICAgKiAtIC5pZkF1dGhlbnRpY2F0aW9uTW9kZSgpXG4gICAqIC0gLmlmU3VwcG9ydFR5cGUoKVxuICAgKiAtIC5pZkNvbXB1dGVDb25maWdFbmFibGVkKClcbiAgICogLSAuaWZFbGFzdGljTG9hZEJhbGFuY2luZ0VuYWJsZWQoKVxuICAgKiAtIC5pZkJsb2NrU3RvcmFnZUVuYWJsZWQoKVxuICAgKiAtIC5pZkxvZ2dpbmdUeXBlKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVDbHVzdGVyLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUNsdXN0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUNsdXN0ZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYW4gRUtTIEFueXdoZXJlIHN1YnNjcmlwdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGFuIEFXUyBGYXJnYXRlIHByb2ZpbGVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZUZhcmdhdGVQcm9maWxlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUZhcmdhdGVQcm9maWxlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVGYXJnYXRlUHJvZmlsZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhbiBBbWF6b24gRUtTIE5vZGVncm91cFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlTm9kZWdyb3VwLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZU5vZGVncm91cCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlTm9kZWdyb3VwJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGFuIEVLUyBQb2QgSWRlbnRpdHkgYXNzb2NpYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhbiBBbWF6b24gRUtTIGFjY2VzcyBlbnRyeVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlQWNjZXNzRW50cnkuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlQWNjZXNzRW50cnkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZUFjY2Vzc0VudHJ5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGFuIEFtYXpvbiBFS1MgYWRkLW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVBZGRvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVBZGRvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlQWRkb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYW4gQW1hem9uIEVLUyBjbHVzdGVyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVDbHVzdGVyLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZUNsdXN0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZUNsdXN0ZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZXNjcmliZSBhbiBFS1MgQW55d2hlcmUgc3Vic2NyaXB0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYW4gQVdTIEZhcmdhdGUgcHJvZmlsZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlRmFyZ2F0ZVByb2ZpbGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlRmFyZ2F0ZVByb2ZpbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZUZhcmdhdGVQcm9maWxlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGFuIEFtYXpvbiBFS1MgTm9kZWdyb3VwXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVOb2RlZ3JvdXAuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlTm9kZWdyb3VwKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVOb2RlZ3JvdXAnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYW4gRUtTIFBvZCBJZGVudGl0eSBhc3NvY2lhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVQb2RJZGVudGl0eUFzc29jaWF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVQb2RJZGVudGl0eUFzc29jaWF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVyZWdpc3RlciBhbiBFeHRlcm5hbCBjbHVzdGVyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXJlZ2lzdGVyQ2x1c3Rlci5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXJlZ2lzdGVyQ2x1c3RlcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVyZWdpc3RlckNsdXN0ZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZXNjcmliZSBhbiBBbWF6b24gRUtTIGFjY2VzcyBlbnRyeVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUFjY2Vzc0VudHJ5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlQWNjZXNzRW50cnkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlQWNjZXNzRW50cnknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBkZXNjcmlwdGl2ZSBpbmZvcm1hdGlvbiBhYm91dCBhbiBBbWF6b24gRUtTIGFkZC1vblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUFkZG9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlQWRkb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlQWRkb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhYm91dCBhbiBBbWF6b24gRUtTIGFkZC1vblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUFkZG9uQ29uZmlndXJhdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUFkZG9uQ29uZmlndXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVBZGRvbkNvbmZpZ3VyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBkZXNjcmlwdGl2ZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFib3V0IHRoZSBhZGQtb25zIHRoYXQgQW1hem9uIEVLUyBBZGQtb25zIHN1cHBvcnRzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlQWRkb25WZXJzaW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUFkZG9uVmVyc2lvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlQWRkb25WZXJzaW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHJpZXZlIGRlc2NyaXB0aXZlIGluZm9ybWF0aW9uIGFib3V0IGFuIEFtYXpvbiBFS1MgY2x1c3RlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUNsdXN0ZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVDbHVzdGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUNsdXN0ZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBkZXNjcmlwdGl2ZSBpbmZvcm1hdGlvbiBhYm91dCBLdWJlcm5ldGVzIHZlcnNpb25zIHRoYXQgQW1hem9uIEVLUyBjbHVzdGVycyBzdXBwb3J0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlQ2x1c3RlclZlcnNpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlQ2x1c3RlclZlcnNpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUNsdXN0ZXJWZXJzaW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlc2NyaWJlIGFuIEVLUyBBbnl3aGVyZSBzdWJzY3JpcHRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgZGVzY3JpcHRpdmUgaW5mb3JtYXRpb24gYWJvdXQgYW4gQVdTIEZhcmdhdGUgcHJvZmlsZSBhc3NvY2lhdGVkIHdpdGggYSBjbHVzdGVyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlRmFyZ2F0ZVByb2ZpbGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVGYXJnYXRlUHJvZmlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVGYXJnYXRlUHJvZmlsZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHJpZXZlIGRlc2NyaXB0aXZlIGluZm9ybWF0aW9uIGFib3V0IGFuIElkcCBjb25maWcgYXNzb2NpYXRlZCB3aXRoIGEgY2x1c3RlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUlkZW50aXR5UHJvdmlkZXJDb25maWcuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVJZGVudGl0eVByb3ZpZGVyQ29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUlkZW50aXR5UHJvdmlkZXJDb25maWcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBkZXNjcmlwdGl2ZSBpbmZvcm1hdGlvbiBvZiBhIGRldGVjdGVkIGluc2lnaHQgZm9yIGEgc3BlY2lmaWVkIGNsdXN0ZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVJbnNpZ2h0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlSW5zaWdodCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVJbnNpZ2h0Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgdGhlIHN0YXR1cyBvZiB0aGUgbGF0ZXN0IG9uLWRlbWFuZCBjbHVzdGVyIGluc2lnaHRzIHJlZnJlc2ggb3BlcmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlSW5zaWdodHNSZWZyZXNoLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlSW5zaWdodHNSZWZyZXNoKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUluc2lnaHRzUmVmcmVzaCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHJpZXZlIGRlc2NyaXB0aXZlIGluZm9ybWF0aW9uIGFib3V0IGFuIEFtYXpvbiBFS1Mgbm9kZWdyb3VwXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlTm9kZWdyb3VwLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlTm9kZWdyb3VwKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZU5vZGVncm91cCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlc2NyaWJlIGFuIEVLUyBQb2QgSWRlbnRpdHkgYXNzb2NpYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVQb2RJZGVudGl0eUFzc29jaWF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVQb2RJZGVudGl0eUFzc29jaWF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgYSBnaXZlbiB1cGRhdGUgZm9yIGEgZ2l2ZW4gQW1hem9uIEVLUyBjbHVzdGVyL25vZGVncm91cC9hZGQtb24gKGluIHRoZSBzcGVjaWZpZWQgb3IgZGVmYXVsdCByZWdpb24pXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlVXBkYXRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlVXBkYXRlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZVVwZGF0ZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRpc2Fzc29jaWF0ZSBhbiBBbWF6b24gRUtTIGFjY2VzcyBwb2xpY3kgZnJvbSBhbiBBbWF6b24gRUtTIGFjY2VzIGVudHJ5XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZQb2xpY3lBcm4oKVxuICAgKiAtIC5pZk5hbWVzcGFjZXMoKVxuICAgKiAtIC5pZkFjY2Vzc1Njb3BlKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EaXNhc3NvY2lhdGVBY2Nlc3NQb2xpY3kuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGlzYXNzb2NpYXRlQWNjZXNzUG9saWN5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEaXNhc3NvY2lhdGVBY2Nlc3NQb2xpY3knKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYW4gYXNzc29jaWF0ZWQgSWRwIGNvbmZpZ1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGlzYXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EaXNhc3NvY2lhdGVJZGVudGl0eVByb3ZpZGVyQ29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEaXNhc3NvY2lhdGVJZGVudGl0eVByb3ZpZGVyQ29uZmlnJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBhbGwgQW1hem9uIEVLUyBhY2Nlc3MgZW50cmllc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0QWNjZXNzRW50cmllcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0QWNjZXNzRW50cmllcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdEFjY2Vzc0VudHJpZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IEFtYXpvbiBFS1MgYWNjZXNzIHBvbGljaWVzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RBY2Nlc3NQb2xpY2llcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0QWNjZXNzUG9saWNpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RBY2Nlc3NQb2xpY2llcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgdGhlIEFtYXpvbiBFS1MgYWRkLW9ucyBpbiB5b3VyIEFXUyBhY2NvdW50IChpbiB0aGUgc3BlY2lmaWVkIG9yIGRlZmF1bHQgcmVnaW9uKSBmb3IgYSBnaXZlbiBjbHVzdGVyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RBZGRvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdEFkZG9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdEFkZG9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgYXNzb2NpYXRlZCBhY2Nlc3MgcG9saWN5IG9uIGFuZCBBbWF6b24gRUtTIGFjY2VzcyBlbnRyeVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0QXNzb2NpYXRlZEFjY2Vzc1BvbGljaWVzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RBc3NvY2lhdGVkQWNjZXNzUG9saWNpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RBc3NvY2lhdGVkQWNjZXNzUG9saWNpZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IHRoZSBBbWF6b24gRUtTIGNsdXN0ZXJzIGluIHlvdXIgQVdTIGFjY291bnQgKGluIHRoZSBzcGVjaWZpZWQgb3IgZGVmYXVsdCByZWdpb24pXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RDbHVzdGVycy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0Q2x1c3RlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RDbHVzdGVycycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgZGFzaGJvYXJkIGRhdGEuIFRoZSBBbWF6b24gRUtTIERhc2hib2FyZCBhZ2dyZWdhdGVzIGluZm9ybWF0aW9uIGFib3V0IGNsdXN0ZXIgcmVzb3VyY2VzIGFjcm9zcyBtdWx0aXBsZSBhY2NvdW50cyBhbmQgcmVnaW9ucy4gVGhlIGRhc2hib2FyZCBpbmNsdWRlcyBpbmZvcm1hdGlvbiBhYm91dCBFQzIgSW5zdGFuY2VzIGFuZCBFS1MgQ2x1c3RlciB2ZXJzaW9uc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0RGFzaGJvYXJkRGF0YS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0RGFzaGJvYXJkRGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdERhc2hib2FyZERhdGEnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGRhc2hib2FyZCByZXNvdXJjZXMuIFRoZSBBbWF6b24gRUtTIERhc2hib2FyZCBhZ2dyZWdhdGVzIGluZm9ybWF0aW9uIGFib3V0IGNsdXN0ZXIgcmVzb3VyY2VzIGFjcm9zcyBtdWx0aXBsZSBhY2NvdW50cyBhbmQgcmVnaW9ucy4gVGhlIGRhc2hib2FyZCBpbmNsdWRlcyBpbmZvcm1hdGlvbiBhYm91dCBFQzIgSW5zdGFuY2VzIGFuZCBFS1MgQ2x1c3RlciB2ZXJzaW9uc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0RGFzaGJvYXJkUmVzb3VyY2VzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3REYXNoYm9hcmRSZXNvdXJjZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3REYXNoYm9hcmRSZXNvdXJjZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IEVLUyBBbnl3aGVyZSBzdWJzY3JpcHRpb25zXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdEVrc0FueXdoZXJlU3Vic2NyaXB0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdEVrc0FueXdoZXJlU3Vic2NyaXB0aW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgdGhlIEFXUyBGYXJnYXRlIHByb2ZpbGVzIGluIHlvdXIgQVdTIGFjY291bnQgKGluIHRoZSBzcGVjaWZpZWQgb3IgZGVmYXVsdCByZWdpb24pIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIGNsdXN0ZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdEZhcmdhdGVQcm9maWxlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0RmFyZ2F0ZVByb2ZpbGVzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0RmFyZ2F0ZVByb2ZpbGVzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCB0aGUgSWRwIGNvbmZpZ3MgaW4geW91ciBBV1MgYWNjb3VudCAoaW4gdGhlIHNwZWNpZmllZCBvciBkZWZhdWx0IHJlZ2lvbikgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gY2x1c3RlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0SWRlbnRpdHlQcm92aWRlckNvbmZpZ3MuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdElkZW50aXR5UHJvdmlkZXJDb25maWdzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0SWRlbnRpdHlQcm92aWRlckNvbmZpZ3MnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFsbCBkZXRlY3RlZCBpbnNpZ2h0cyBmb3IgYSBzcGVjaWZpZWQgY2x1c3RlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0SW5zaWdodHMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdEluc2lnaHRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0SW5zaWdodHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IHRoZSBBbWF6b24gRUtTIG5vZGVncm91cHMgaW4geW91ciBBV1MgYWNjb3VudCAoaW4gdGhlIHNwZWNpZmllZCBvciBkZWZhdWx0IHJlZ2lvbikgYXR0YWNoZWQgdG8gZ2l2ZW4gY2x1c3RlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0Tm9kZWdyb3Vwcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0Tm9kZWdyb3VwcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdE5vZGVncm91cHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IEVLUyBQb2QgSWRlbnRpdHkgYXNzb2NpYXRpb25zXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RQb2RJZGVudGl0eUFzc29jaWF0aW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0UG9kSWRlbnRpdHlBc3NvY2lhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RQb2RJZGVudGl0eUFzc29jaWF0aW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgdGFncyBmb3IgdGhlIHNwZWNpZmllZCByZXNvdXJjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0VGFnc0ZvclJlc291cmNlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RUYWdzRm9yUmVzb3VyY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RUYWdzRm9yUmVzb3VyY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IHRoZSB1cGRhdGVzIGZvciBhIGdpdmVuIEFtYXpvbiBFS1MgY2x1c3Rlci9ub2RlZ3JvdXAvYWRkLW9uIChpbiB0aGUgc3BlY2lmaWVkIG9yIGRlZmF1bHQgcmVnaW9uKVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0VXBkYXRlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0VXBkYXRlcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdFVwZGF0ZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBtb2RpZnkgS3ViZXJuZXRlcyBvYmplY3RzIHZpYSBBV1MgY29uc29sZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIERlcGVuZGVudCBhY3Rpb25zOlxuICAgKiAtIGVrczpBY2Nlc3NLdWJlcm5ldGVzQXBpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9tdXRhdGUtd29ya2xvYWRzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b011dGF0ZVZpYUt1YmVybmV0ZXNBcGkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ011dGF0ZVZpYUt1YmVybmV0ZXNBcGknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZWdpc3RlciBhbiBFeHRlcm5hbCBjbHVzdGVyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9SZWdpc3RlckNsdXN0ZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvUmVnaXN0ZXJDbHVzdGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdSZWdpc3RlckNsdXN0ZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBpbml0aWF0ZSBhbiBvbi1kZW1hbmQgcmVmcmVzaCBvcGVyYXRpb24gZm9yIGNsdXN0ZXIgaW5zaWdodHMsIGdldHRpbmcgdGhlIGxhdGVzdCBhbmFseXNpcyBvdXRzaWRlIG9mIHRoZSBzdGFuZGFyZCByZWZyZXNoIHNjaGVkdWxlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TdGFydEluc2lnaHRzUmVmcmVzaC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9TdGFydEluc2lnaHRzUmVmcmVzaCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU3RhcnRJbnNpZ2h0c1JlZnJlc2gnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB0YWcgdGhlIHNwZWNpZmllZCByZXNvdXJjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFRhZ2dpbmdcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9UYWdSZXNvdXJjZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9UYWdSZXNvdXJjZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVGFnUmVzb3VyY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1bnRhZyB0aGUgc3BlY2lmaWVkIHJlc291cmNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogVGFnZ2luZ1xuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VudGFnUmVzb3VyY2UuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVW50YWdSZXNvdXJjZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVW50YWdSZXNvdXJjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhbiBBbWF6b24gRUtTIGFjY2VzcyBlbnRyeVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlQWNjZXNzRW50cnkuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlQWNjZXNzRW50cnkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZUFjY2Vzc0VudHJ5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIEFtYXpvbiBFS1MgYWRkLW9uIGNvbmZpZ3VyYXRpb25zLCBzdWNoIGFzIHRoZSBWUEMtQ05JIHZlcnNpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZUFkZG9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZUFkZG9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVBZGRvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBBbWF6b24gRUtTIGNsdXN0ZXIgY29uZmlndXJhdGlvbnMgKGVnOiBBUEkgc2VydmVyIGVuZHBvaW50IGFjY2VzcylcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF1dGhlbnRpY2F0aW9uTW9kZSgpXG4gICAqIC0gLmlmU3VwcG9ydFR5cGUoKVxuICAgKiAtIC5pZkNvbXB1dGVDb25maWdFbmFibGVkKClcbiAgICogLSAuaWZFbGFzdGljTG9hZEJhbGFuY2luZ0VuYWJsZWQoKVxuICAgKiAtIC5pZkJsb2NrU3RvcmFnZUVuYWJsZWQoKVxuICAgKiAtIC5pZkxvZ2dpbmdUeXBlKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9VcGRhdGVDbHVzdGVyQ29uZmlnLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZUNsdXN0ZXJDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZUNsdXN0ZXJDb25maWcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1cGRhdGUgdGhlIEt1YmVybmV0ZXMgdmVyc2lvbiBvZiBhbiBBbWF6b24gRUtTIGNsdXN0ZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZUNsdXN0ZXJWZXJzaW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZUNsdXN0ZXJWZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVDbHVzdGVyVmVyc2lvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhbiBFS1MgQW55d2hlcmUgc3Vic2NyaXB0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9VcGRhdGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1cGRhdGUgQW1hem9uIEVLUyBub2RlZ3JvdXAgY29uZmlndXJhdGlvbnMgKGVnOiBtaW4vbWF4L2Rlc2lyZWQgY2FwYWNpdHkgb3IgbGFiZWxzKVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlTm9kZWdyb3VwQ29uZmlnLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZU5vZGVncm91cENvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlTm9kZWdyb3VwQ29uZmlnJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIHRoZSBLdWJlcm5ldGVzIHZlcnNpb24gb2YgYW4gQW1hem9uIEVLUyBub2RlZ3JvdXBcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZU5vZGVncm91cFZlcnNpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlTm9kZWdyb3VwVmVyc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlTm9kZWdyb3VwVmVyc2lvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhbiBFS1MgUG9kIElkZW50aXR5IGFzc29jaWF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9VcGRhdGVQb2RJZGVudGl0eUFzc29jaWF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY2Nlc3NMZXZlbExpc3Q6IEFjY2Vzc0xldmVsTGlzdCA9IHtcbiAgICBSZWFkOiBbXG4gICAgICAnQWNjZXNzS3ViZXJuZXRlc0FwaScsXG4gICAgICAnRGVzY3JpYmVBY2Nlc3NFbnRyeScsXG4gICAgICAnRGVzY3JpYmVBZGRvbicsXG4gICAgICAnRGVzY3JpYmVBZGRvbkNvbmZpZ3VyYXRpb24nLFxuICAgICAgJ0Rlc2NyaWJlQWRkb25WZXJzaW9ucycsXG4gICAgICAnRGVzY3JpYmVDbHVzdGVyJyxcbiAgICAgICdEZXNjcmliZUNsdXN0ZXJWZXJzaW9ucycsXG4gICAgICAnRGVzY3JpYmVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbicsXG4gICAgICAnRGVzY3JpYmVGYXJnYXRlUHJvZmlsZScsXG4gICAgICAnRGVzY3JpYmVJZGVudGl0eVByb3ZpZGVyQ29uZmlnJyxcbiAgICAgICdEZXNjcmliZUluc2lnaHQnLFxuICAgICAgJ0Rlc2NyaWJlSW5zaWdodHNSZWZyZXNoJyxcbiAgICAgICdEZXNjcmliZU5vZGVncm91cCcsXG4gICAgICAnRGVzY3JpYmVQb2RJZGVudGl0eUFzc29jaWF0aW9uJyxcbiAgICAgICdEZXNjcmliZVVwZGF0ZScsXG4gICAgICAnTGlzdERhc2hib2FyZERhdGEnLFxuICAgICAgJ0xpc3REYXNoYm9hcmRSZXNvdXJjZXMnLFxuICAgICAgJ0xpc3RUYWdzRm9yUmVzb3VyY2UnXG4gICAgXSxcbiAgICBXcml0ZTogW1xuICAgICAgJ0Fzc29jaWF0ZUFjY2Vzc1BvbGljeScsXG4gICAgICAnQXNzb2NpYXRlRW5jcnlwdGlvbkNvbmZpZycsXG4gICAgICAnQXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZycsXG4gICAgICAnQ3JlYXRlQWNjZXNzRW50cnknLFxuICAgICAgJ0NyZWF0ZUFkZG9uJyxcbiAgICAgICdDcmVhdGVDbHVzdGVyJyxcbiAgICAgICdDcmVhdGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbicsXG4gICAgICAnQ3JlYXRlRmFyZ2F0ZVByb2ZpbGUnLFxuICAgICAgJ0NyZWF0ZU5vZGVncm91cCcsXG4gICAgICAnQ3JlYXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbicsXG4gICAgICAnRGVsZXRlQWNjZXNzRW50cnknLFxuICAgICAgJ0RlbGV0ZUFkZG9uJyxcbiAgICAgICdEZWxldGVDbHVzdGVyJyxcbiAgICAgICdEZWxldGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbicsXG4gICAgICAnRGVsZXRlRmFyZ2F0ZVByb2ZpbGUnLFxuICAgICAgJ0RlbGV0ZU5vZGVncm91cCcsXG4gICAgICAnRGVsZXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbicsXG4gICAgICAnRGVyZWdpc3RlckNsdXN0ZXInLFxuICAgICAgJ0Rpc2Fzc29jaWF0ZUFjY2Vzc1BvbGljeScsXG4gICAgICAnRGlzYXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZycsXG4gICAgICAnTXV0YXRlVmlhS3ViZXJuZXRlc0FwaScsXG4gICAgICAnUmVnaXN0ZXJDbHVzdGVyJyxcbiAgICAgICdTdGFydEluc2lnaHRzUmVmcmVzaCcsXG4gICAgICAnVXBkYXRlQWNjZXNzRW50cnknLFxuICAgICAgJ1VwZGF0ZUFkZG9uJyxcbiAgICAgICdVcGRhdGVDbHVzdGVyQ29uZmlnJyxcbiAgICAgICdVcGRhdGVDbHVzdGVyVmVyc2lvbicsXG4gICAgICAnVXBkYXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24nLFxuICAgICAgJ1VwZGF0ZU5vZGVncm91cENvbmZpZycsXG4gICAgICAnVXBkYXRlTm9kZWdyb3VwVmVyc2lvbicsXG4gICAgICAnVXBkYXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbidcbiAgICBdLFxuICAgIExpc3Q6IFtcbiAgICAgICdMaXN0QWNjZXNzRW50cmllcycsXG4gICAgICAnTGlzdEFjY2Vzc1BvbGljaWVzJyxcbiAgICAgICdMaXN0QWRkb25zJyxcbiAgICAgICdMaXN0QXNzb2NpYXRlZEFjY2Vzc1BvbGljaWVzJyxcbiAgICAgICdMaXN0Q2x1c3RlcnMnLFxuICAgICAgJ0xpc3RFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbnMnLFxuICAgICAgJ0xpc3RGYXJnYXRlUHJvZmlsZXMnLFxuICAgICAgJ0xpc3RJZGVudGl0eVByb3ZpZGVyQ29uZmlncycsXG4gICAgICAnTGlzdEluc2lnaHRzJyxcbiAgICAgICdMaXN0Tm9kZWdyb3VwcycsXG4gICAgICAnTGlzdFBvZElkZW50aXR5QXNzb2NpYXRpb25zJyxcbiAgICAgICdMaXN0VXBkYXRlcydcbiAgICBdLFxuICAgIFRhZ2dpbmc6IFtcbiAgICAgICdUYWdSZXNvdXJjZScsXG4gICAgICAnVW50YWdSZXNvdXJjZSdcbiAgICBdXG4gIH07XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIGNsdXN0ZXIgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvY2x1c3RlcnMuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gY2x1c3Rlck5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgY2x1c3Rlck5hbWUuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICovXG4gIHB1YmxpYyBvbkNsdXN0ZXIoY2x1c3Rlck5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpla3M6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OmNsdXN0ZXIvJHsgY2x1c3Rlck5hbWUgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIG5vZGVncm91cCB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9tYW5hZ2VkLW5vZGUtZ3JvdXBzLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIGNsdXN0ZXJOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIGNsdXN0ZXJOYW1lLlxuICAgKiBAcGFyYW0gbm9kZWdyb3VwTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSBub2RlZ3JvdXBOYW1lLlxuICAgKiBAcGFyYW0gdVVJRCAtIElkZW50aWZpZXIgZm9yIHRoZSB1VUlELlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqL1xuICBwdWJsaWMgb25Ob2RlZ3JvdXAoY2x1c3Rlck5hbWU6IHN0cmluZywgbm9kZWdyb3VwTmFtZTogc3RyaW5nLCB1VUlEOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06ZWtzOiR7IHJlZ2lvbiA/PyB0aGlzLmRlZmF1bHRSZWdpb24gfTokeyBhY2NvdW50ID8/IHRoaXMuZGVmYXVsdEFjY291bnQgfTpub2RlZ3JvdXAvJHsgY2x1c3Rlck5hbWUgfS8keyBub2RlZ3JvdXBOYW1lIH0vJHsgdVVJRCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgYWRkb24gdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvZWtzLWFkZC1vbnMuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gY2x1c3Rlck5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgY2x1c3Rlck5hbWUuXG4gICAqIEBwYXJhbSBhZGRvbk5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgYWRkb25OYW1lLlxuICAgKiBAcGFyYW0gdVVJRCAtIElkZW50aWZpZXIgZm9yIHRoZSB1VUlELlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqL1xuICBwdWJsaWMgb25BZGRvbihjbHVzdGVyTmFtZTogc3RyaW5nLCBhZGRvbk5hbWU6IHN0cmluZywgdVVJRDogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmVrczokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06YWRkb24vJHsgY2x1c3Rlck5hbWUgfS8keyBhZGRvbk5hbWUgfS8keyB1VUlEIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBmYXJnYXRlcHJvZmlsZSB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9mYXJnYXRlLXByb2ZpbGUuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gY2x1c3Rlck5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgY2x1c3Rlck5hbWUuXG4gICAqIEBwYXJhbSBmYXJnYXRlUHJvZmlsZU5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgZmFyZ2F0ZVByb2ZpbGVOYW1lLlxuICAgKiBAcGFyYW0gdVVJRCAtIElkZW50aWZpZXIgZm9yIHRoZSB1VUlELlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqL1xuICBwdWJsaWMgb25GYXJnYXRlcHJvZmlsZShjbHVzdGVyTmFtZTogc3RyaW5nLCBmYXJnYXRlUHJvZmlsZU5hbWU6IHN0cmluZywgdVVJRDogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmVrczokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06ZmFyZ2F0ZXByb2ZpbGUvJHsgY2x1c3Rlck5hbWUgfS8keyBmYXJnYXRlUHJvZmlsZU5hbWUgfS8keyB1VUlEIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBpZGVudGl0eXByb3ZpZGVyY29uZmlnIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL2F1dGhlbnRpY2F0ZS1vaWRjLWlkZW50aXR5LXByb3ZpZGVyLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIGNsdXN0ZXJOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIGNsdXN0ZXJOYW1lLlxuICAgKiBAcGFyYW0gaWRlbnRpdHlQcm92aWRlclR5cGUgLSBJZGVudGlmaWVyIGZvciB0aGUgaWRlbnRpdHlQcm92aWRlclR5cGUuXG4gICAqIEBwYXJhbSBpZGVudGl0eVByb3ZpZGVyQ29uZmlnTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSBpZGVudGl0eVByb3ZpZGVyQ29uZmlnTmFtZS5cbiAgICogQHBhcmFtIHVVSUQgLSBJZGVudGlmaWVyIGZvciB0aGUgdVVJRC5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uSWRlbnRpdHlwcm92aWRlcmNvbmZpZyhjbHVzdGVyTmFtZTogc3RyaW5nLCBpZGVudGl0eVByb3ZpZGVyVHlwZTogc3RyaW5nLCBpZGVudGl0eVByb3ZpZGVyQ29uZmlnTmFtZTogc3RyaW5nLCB1VUlEOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06ZWtzOiR7IHJlZ2lvbiA/PyB0aGlzLmRlZmF1bHRSZWdpb24gfTokeyBhY2NvdW50ID8/IHRoaXMuZGVmYXVsdEFjY291bnQgfTppZGVudGl0eXByb3ZpZGVyY29uZmlnLyR7IGNsdXN0ZXJOYW1lIH0vJHsgaWRlbnRpdHlQcm92aWRlclR5cGUgfS8keyBpZGVudGl0eVByb3ZpZGVyQ29uZmlnTmFtZSB9LyR7IHVVSUQgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIGVrcy1hbnl3aGVyZS1zdWJzY3JpcHRpb24gdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2FueXdoZXJlLmVrcy5hbWF6b25hd3MuY29tL2RvY3MvY2x1c3Rlcm1nbXQvc3VwcG9ydC9jbHVzdGVyLWxpY2Vuc2UvXG4gICAqXG4gICAqIEBwYXJhbSB1VUlEIC0gSWRlbnRpZmllciBmb3IgdGhlIHVVSUQuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICovXG4gIHB1YmxpYyBvbkVrc0FueXdoZXJlU3Vic2NyaXB0aW9uKHVVSUQ6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpla3M6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OmVrcy1hbnl3aGVyZS1zdWJzY3JpcHRpb24vJHsgdVVJRCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgcG9kaWRlbnRpdHlhc3NvY2lhdGlvbiB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9wb2QtaWRlbnRpdGllcy5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBjbHVzdGVyTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSBjbHVzdGVyTmFtZS5cbiAgICogQHBhcmFtIHVVSUQgLSBJZGVudGlmaWVyIGZvciB0aGUgdVVJRC5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uUG9kaWRlbnRpdHlhc3NvY2lhdGlvbihjbHVzdGVyTmFtZTogc3RyaW5nLCB1VUlEOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06ZWtzOiR7IHJlZ2lvbiA/PyB0aGlzLmRlZmF1bHRSZWdpb24gfTokeyBhY2NvdW50ID8/IHRoaXMuZGVmYXVsdEFjY291bnQgfTpwb2RpZGVudGl0eWFzc29jaWF0aW9uLyR7IGNsdXN0ZXJOYW1lIH0vJHsgdVVJRCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgYWNjZXNzLWVudHJ5IHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL2FjY2Vzcy1lbnRyaWVzLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIGNsdXN0ZXJOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIGNsdXN0ZXJOYW1lLlxuICAgKiBAcGFyYW0gaWFtSWRlbnRpdHlUeXBlIC0gSWRlbnRpZmllciBmb3IgdGhlIGlhbUlkZW50aXR5VHlwZS5cbiAgICogQHBhcmFtIGlhbUlkZW50aXR5QWNjb3VudElEIC0gSWRlbnRpZmllciBmb3IgdGhlIGlhbUlkZW50aXR5QWNjb3VudElELlxuICAgKiBAcGFyYW0gaWFtSWRlbnRpdHlOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIGlhbUlkZW50aXR5TmFtZS5cbiAgICogQHBhcmFtIHVVSUQgLSBJZGVudGlmaWVyIGZvciB0aGUgdVVJRC5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKiAtIC5pZkFjY2Vzc0VudHJ5VHlwZSgpXG4gICAqIC0gLmlmQ2x1c3Rlck5hbWUoKVxuICAgKiAtIC5pZkt1YmVybmV0ZXNHcm91cHMoKVxuICAgKiAtIC5pZlByaW5jaXBhbEFybigpXG4gICAqIC0gLmlmVXNlcm5hbWUoKVxuICAgKi9cbiAgcHVibGljIG9uQWNjZXNzRW50cnkoY2x1c3Rlck5hbWU6IHN0cmluZywgaWFtSWRlbnRpdHlUeXBlOiBzdHJpbmcsIGlhbUlkZW50aXR5QWNjb3VudElEOiBzdHJpbmcsIGlhbUlkZW50aXR5TmFtZTogc3RyaW5nLCB1VUlEOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06ZWtzOiR7IHJlZ2lvbiA/PyB0aGlzLmRlZmF1bHRSZWdpb24gfTokeyBhY2NvdW50ID8/IHRoaXMuZGVmYXVsdEFjY291bnQgfTphY2Nlc3MtZW50cnkvJHsgY2x1c3Rlck5hbWUgfS8keyBpYW1JZGVudGl0eVR5cGUgfS8keyBpYW1JZGVudGl0eUFjY291bnRJRCB9LyR7IGlhbUlkZW50aXR5TmFtZSB9LyR7IHVVSUQgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIGFjY2Vzcy1wb2xpY3kgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvYWNjZXNzLXBvbGljaWVzLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIGFjY2Vzc1BvbGljeU5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgYWNjZXNzUG9saWN5TmFtZS5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICovXG4gIHB1YmxpYyBvbkFjY2Vzc1BvbGljeShhY2Nlc3NQb2xpY3lOYW1lOiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmVrczo6YXdzOmNsdXN0ZXItYWNjZXNzLXBvbGljeS8keyBhY2Nlc3NQb2xpY3lOYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBkYXNoYm9hcmQgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvY2x1c3Rlci1kYXNoYm9hcmQuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gZGFzaGJvYXJkTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSBkYXNoYm9hcmROYW1lLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqL1xuICBwdWJsaWMgb25EYXNoYm9hcmQoZGFzaGJvYXJkTmFtZTogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmVrczokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06ZGFzaGJvYXJkLyR7IGRhc2hib2FyZE5hbWUgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IGEga2V5IHRoYXQgaXMgcHJlc2VudCBpbiB0aGUgcmVxdWVzdCB0aGUgdXNlciBtYWtlcyB0byB0aGUgRUtTIHNlcnZpY2VcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLmh0bWwjc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0tdGFnc1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZygpXG4gICAqIC0gLnRvQ3JlYXRlQWNjZXNzRW50cnkoKVxuICAgKiAtIC50b0NyZWF0ZUFkZG9uKClcbiAgICogLSAudG9DcmVhdGVDbHVzdGVyKClcbiAgICogLSAudG9DcmVhdGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbigpXG4gICAqIC0gLnRvQ3JlYXRlRmFyZ2F0ZVByb2ZpbGUoKVxuICAgKiAtIC50b0NyZWF0ZU5vZGVncm91cCgpXG4gICAqIC0gLnRvQ3JlYXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbigpXG4gICAqIC0gLnRvUmVnaXN0ZXJDbHVzdGVyKClcbiAgICogLSAudG9UYWdSZXNvdXJjZSgpXG4gICAqXG4gICAqIEBwYXJhbSB0YWdLZXkgVGhlIHRhZyBrZXkgdG8gY2hlY2tcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZBd3NSZXF1ZXN0VGFnKHRhZ0tleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgYXdzOlJlcXVlc3RUYWcvJHsgdGFnS2V5IH1gLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSBhIHRhZyBrZXkgYW5kIHZhbHVlIHBhaXJcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLmh0bWwjc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0tdGFnc1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIHJlc291cmNlIHR5cGVzOlxuICAgKiAtIGNsdXN0ZXJcbiAgICogLSBub2RlZ3JvdXBcbiAgICogLSBhZGRvblxuICAgKiAtIGZhcmdhdGVwcm9maWxlXG4gICAqIC0gaWRlbnRpdHlwcm92aWRlcmNvbmZpZ1xuICAgKiAtIGVrcy1hbnl3aGVyZS1zdWJzY3JpcHRpb25cbiAgICogLSBwb2RpZGVudGl0eWFzc29jaWF0aW9uXG4gICAqIC0gYWNjZXNzLWVudHJ5XG4gICAqIC0gZGFzaGJvYXJkXG4gICAqXG4gICAqIEBwYXJhbSB0YWdLZXkgVGhlIHRhZyBrZXkgdG8gY2hlY2tcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZBd3NSZXNvdXJjZVRhZyh0YWdLZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGF3czpSZXNvdXJjZVRhZy8keyB0YWdLZXkgfWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBsaXN0IG9mIGFsbCB0aGUgdGFnIGtleSBuYW1lcyBwcmVzZW50IGluIHRoZSByZXF1ZXN0IHRoZSB1c2VyIG1ha2VzIHRvIHRoZSBFS1Mgc2VydmljZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0uaHRtbCNzZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS10YWdzXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9Bc3NvY2lhdGVJZGVudGl0eVByb3ZpZGVyQ29uZmlnKClcbiAgICogLSAudG9DcmVhdGVBY2Nlc3NFbnRyeSgpXG4gICAqIC0gLnRvQ3JlYXRlQWRkb24oKVxuICAgKiAtIC50b0NyZWF0ZUNsdXN0ZXIoKVxuICAgKiAtIC50b0NyZWF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uKClcbiAgICogLSAudG9DcmVhdGVGYXJnYXRlUHJvZmlsZSgpXG4gICAqIC0gLnRvQ3JlYXRlTm9kZWdyb3VwKClcbiAgICogLSAudG9DcmVhdGVQb2RJZGVudGl0eUFzc29jaWF0aW9uKClcbiAgICogLSAudG9SZWdpc3RlckNsdXN0ZXIoKVxuICAgKiAtIC50b1RhZ1Jlc291cmNlKClcbiAgICogLSAudG9VbnRhZ1Jlc291cmNlKClcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZBd3NUYWdLZXlzKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBhd3M6VGFnS2V5c2AsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBhY2Nlc3MgZW50cnkgdHlwZSBwcmVzZW50IGluIHRoZSBhY2Nlc3MgZW50cnkgcmVxdWVzdHMgdGhlIHVzZXIgbWFrZXMgdG8gdGhlIEVLUyBzZXJ2aWNlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9zZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS5odG1sI3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLWlkLWJhc2VkLXBvbGljaWVzXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9DcmVhdGVBY2Nlc3NFbnRyeSgpXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gcmVzb3VyY2UgdHlwZXM6XG4gICAqIC0gYWNjZXNzLWVudHJ5XG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmQWNjZXNzRW50cnlUeXBlKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBhY2Nlc3NFbnRyeVR5cGVgLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgYWNjZXNzU2NvcGUgcHJlc2VudCBpbiB0aGUgYXNzb2NpYXRlIC8gZGlzYXNzb2NpYXRlIGFjY2VzcyBwb2xpY3kgcmVxdWVzdHMgdGhlIHVzZXIgbWFrZXMgdG8gdGhlIEVLUyBzZXJ2aWNlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9zZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS5odG1sI3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLWlkLWJhc2VkLXBvbGljaWVzXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9Bc3NvY2lhdGVBY2Nlc3NQb2xpY3koKVxuICAgKiAtIC50b0Rpc2Fzc29jaWF0ZUFjY2Vzc1BvbGljeSgpXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmQWNjZXNzU2NvcGUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGFjY2Vzc1Njb3BlYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIGF1dGhlbnRpY2F0aW9uTW9kZSBwcmVzZW50IGluIHRoZSBjcmVhdGUgLyB1cGRhdGUgY2x1c3RlciByZXF1ZXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9zZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS5odG1sI3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLWlkLWJhc2VkLXBvbGljaWVzXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9DcmVhdGVDbHVzdGVyKClcbiAgICogLSAudG9VcGRhdGVDbHVzdGVyQ29uZmlnKClcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZBdXRoZW50aWNhdGlvbk1vZGUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGF1dGhlbnRpY2F0aW9uTW9kZWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBibG9jayBzdG9yYWdlIGVuYWJsZWQgcGFyYW1ldGVyIGluIHRoZSBjcmVhdGUgLyB1cGRhdGUgY2x1c3RlciByZXF1ZXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9zZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS5odG1sI3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLWlkLWJhc2VkLXBvbGljaWVzXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9DcmVhdGVDbHVzdGVyKClcbiAgICogLSAudG9VcGRhdGVDbHVzdGVyQ29uZmlnKClcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIGB0cnVlYCBvciBgZmFsc2VgLiAqKkRlZmF1bHQ6KiogYHRydWVgXG4gICAqL1xuICBwdWJsaWMgaWZCbG9ja1N0b3JhZ2VFbmFibGVkKHZhbHVlPzogYm9vbGVhbikge1xuICAgIHJldHVybiB0aGlzLmlmKGBibG9ja1N0b3JhZ2VFbmFibGVkYCwgKHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgPyB2YWx1ZSA6IHRydWUpLCAnQm9vbCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBib290c3RyYXBDbHVzdGVyQ3JlYXRvckFkbWluUGVybWlzc2lvbnMgcHJlc2VudCBpbiB0aGUgY3JlYXRlIGNsdXN0ZXIgcmVxdWVzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0uaHRtbCNzZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS1pZC1iYXNlZC1wb2xpY2llc1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQ3JlYXRlQ2x1c3RlcigpXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBgdHJ1ZWAgb3IgYGZhbHNlYC4gKipEZWZhdWx0OioqIGB0cnVlYFxuICAgKi9cbiAgcHVibGljIGlmQm9vdHN0cmFwQ2x1c3RlckNyZWF0b3JBZG1pblBlcm1pc3Npb25zKHZhbHVlPzogYm9vbGVhbikge1xuICAgIHJldHVybiB0aGlzLmlmKGBib290c3RyYXBDbHVzdGVyQ3JlYXRvckFkbWluUGVybWlzc2lvbnNgLCAodHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyA/IHZhbHVlIDogdHJ1ZSksICdCb29sJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIGJvb3RzdHJhcFNlbGZNYW5hZ2VkQWRkb25zIHByZXNlbnQgaW4gdGhlIGNyZWF0ZSBjbHVzdGVyIHJlcXVlc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLmh0bWwjc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0taWQtYmFzZWQtcG9saWNpZXNcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0NyZWF0ZUNsdXN0ZXIoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgYHRydWVgIG9yIGBmYWxzZWAuICoqRGVmYXVsdDoqKiBgdHJ1ZWBcbiAgICovXG4gIHB1YmxpYyBpZkJvb3RzdHJhcFNlbGZNYW5hZ2VkQWRkb25zKHZhbHVlPzogYm9vbGVhbikge1xuICAgIHJldHVybiB0aGlzLmlmKGBib290c3RyYXBTZWxmTWFuYWdlZEFkZG9uc2AsICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnID8gdmFsdWUgOiB0cnVlKSwgJ0Jvb2wnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgY2xpZW50SWQgcHJlc2VudCBpbiB0aGUgYXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZyByZXF1ZXN0IHRoZSB1c2VyIG1ha2VzIHRvIHRoZSBFS1Mgc2VydmljZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0uaHRtbCNzZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS1pZC1iYXNlZC1wb2xpY2llc1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZygpXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmQ2xpZW50SWQodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGNsaWVudElkYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIGNsdXN0ZXJOYW1lIHByZXNlbnQgaW4gdGhlIGFjY2VzcyBlbnRyeSByZXF1ZXN0cyB0aGUgdXNlciBtYWtlcyB0byB0aGUgRUtTIHNlcnZpY2VcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLmh0bWwjc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0taWQtYmFzZWQtcG9saWNpZXNcbiAgICpcbiAgICogQXBwbGllcyB0byByZXNvdXJjZSB0eXBlczpcbiAgICogLSBhY2Nlc3MtZW50cnlcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZDbHVzdGVyTmFtZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgY2x1c3Rlck5hbWVgLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgY29tcHV0ZSBjb25maWcgZW5hYmxlZCBwYXJhbWV0ZXIgaW4gdGhlIGNyZWF0ZSAvIHVwZGF0ZSBjbHVzdGVyIHJlcXVlc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLmh0bWwjc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0taWQtYmFzZWQtcG9saWNpZXNcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0NyZWF0ZUNsdXN0ZXIoKVxuICAgKiAtIC50b1VwZGF0ZUNsdXN0ZXJDb25maWcoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgYHRydWVgIG9yIGBmYWxzZWAuICoqRGVmYXVsdDoqKiBgdHJ1ZWBcbiAgICovXG4gIHB1YmxpYyBpZkNvbXB1dGVDb25maWdFbmFibGVkKHZhbHVlPzogYm9vbGVhbikge1xuICAgIHJldHVybiB0aGlzLmlmKGBjb21wdXRlQ29uZmlnRW5hYmxlZGAsICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnID8gdmFsdWUgOiB0cnVlKSwgJ0Jvb2wnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgZWxhc3RpYyBsb2FkIGJhbGFuY2luZyBlbmFibGVkIHBhcmFtZXRlciBpbiB0aGUgY3JlYXRlIC8gdXBkYXRlIGNsdXN0ZXIgcmVxdWVzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0uaHRtbCNzZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS1pZC1iYXNlZC1wb2xpY2llc1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQ3JlYXRlQ2x1c3RlcigpXG4gICAqIC0gLnRvVXBkYXRlQ2x1c3RlckNvbmZpZygpXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBgdHJ1ZWAgb3IgYGZhbHNlYC4gKipEZWZhdWx0OioqIGB0cnVlYFxuICAgKi9cbiAgcHVibGljIGlmRWxhc3RpY0xvYWRCYWxhbmNpbmdFbmFibGVkKHZhbHVlPzogYm9vbGVhbikge1xuICAgIHJldHVybiB0aGlzLmlmKGBlbGFzdGljTG9hZEJhbGFuY2luZ0VuYWJsZWRgLCAodHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyA/IHZhbHVlIDogdHJ1ZSksICdCb29sJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIGlzc3VlclVybCBwcmVzZW50IGluIHRoZSBhc3NvY2lhdGVJZGVudGl0eVByb3ZpZGVyQ29uZmlnIHJlcXVlc3QgdGhlIHVzZXIgbWFrZXMgdG8gdGhlIEVLUyBzZXJ2aWNlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9zZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS5odG1sI3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLWlkLWJhc2VkLXBvbGljaWVzXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9Bc3NvY2lhdGVJZGVudGl0eVByb3ZpZGVyQ29uZmlnKClcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZJc3N1ZXJVcmwodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGlzc3VlclVybGAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBrdWJlcm5ldGVzR3JvdXBzIHByZXNlbnQgaW4gdGhlIGFjY2VzcyBlbnRyeSByZXF1ZXN0cyB0aGUgdXNlciBtYWtlcyB0byB0aGUgRUtTIHNlcnZpY2VcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLmh0bWwjc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0taWQtYmFzZWQtcG9saWNpZXNcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0NyZWF0ZUFjY2Vzc0VudHJ5KClcbiAgICpcbiAgICogQXBwbGllcyB0byByZXNvdXJjZSB0eXBlczpcbiAgICogLSBhY2Nlc3MtZW50cnlcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZLdWJlcm5ldGVzR3JvdXBzKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBrdWJlcm5ldGVzR3JvdXBzYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIGNsdXN0ZXIgbG9nZ2luZyBlbmFibGVkIGFuZCB0eXBlIHBhcmFtZXRlciBpbiB0aGUgY3JlYXRlIC8gdXBkYXRlIGNsdXN0ZXIgcmVxdWVzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0uaHRtbCNzZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS1pZC1iYXNlZC1wb2xpY2llc1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQ3JlYXRlQ2x1c3RlcigpXG4gICAqIC0gLnRvVXBkYXRlQ2x1c3RlckNvbmZpZygpXG4gICAqXG4gICAqIEBwYXJhbSB0eXBlIFRoZSB0YWcga2V5IHRvIGNoZWNrXG4gICAqIEBwYXJhbSB2YWx1ZSBgdHJ1ZWAgb3IgYGZhbHNlYC4gKipEZWZhdWx0OioqIGB0cnVlYFxuICAgKi9cbiAgcHVibGljIGlmTG9nZ2luZ1R5cGUodHlwZTogc3RyaW5nLCB2YWx1ZT86IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gdGhpcy5pZihgbG9nZ2luZ1R5cGUvJHsgdHlwZSB9YCwgKHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgPyB2YWx1ZSA6IHRydWUpLCAnQm9vbCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBuYW1lc3BhY2VzIHByZXNlbnQgaW4gdGhlIGFzc29jaWF0ZSAvIGRpc2Fzc29jaWF0ZSBhY2Nlc3MgcG9saWN5IHJlcXVlc3RzIHRoZSB1c2VyIG1ha2VzIHRvIHRoZSBFS1Mgc2VydmljZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0uaHRtbCNzZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS1pZC1iYXNlZC1wb2xpY2llc1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQXNzb2NpYXRlQWNjZXNzUG9saWN5KClcbiAgICogLSAudG9EaXNhc3NvY2lhdGVBY2Nlc3NQb2xpY3koKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZk5hbWVzcGFjZXModmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYG5hbWVzcGFjZXNgLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgcG9saWN5QXJuIHByZXNlbnQgaW4gdGhlIGFjY2VzcyBlbnRyeSByZXF1ZXN0cyB0aGUgdXNlciBtYWtlcyB0byB0aGUgRUtTIHNlcnZpY2VcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLmh0bWwjc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0taWQtYmFzZWQtcG9saWNpZXNcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0Fzc29jaWF0ZUFjY2Vzc1BvbGljeSgpXG4gICAqIC0gLnRvRGlzYXNzb2NpYXRlQWNjZXNzUG9saWN5KClcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbYXJuIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19BUk4pLiAqKkRlZmF1bHQ6KiogYEFybkxpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZQb2xpY3lBcm4odmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYHBvbGljeUFybmAsIHZhbHVlLCBvcGVyYXRvciA/PyAnQXJuTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBwcmluY2lwYWxBcm4gcHJlc2VudCBpbiB0aGUgYWNjZXNzIGVudHJ5IHJlcXVlc3RzIHJlcXVlc3RzIHRoZSB1c2VyIG1ha2VzIHRvIHRoZSBFS1Mgc2VydmljZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0uaHRtbCNzZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS1pZC1iYXNlZC1wb2xpY2llc1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQ3JlYXRlQWNjZXNzRW50cnkoKVxuICAgKlxuICAgKiBBcHBsaWVzIHRvIHJlc291cmNlIHR5cGVzOlxuICAgKiAtIGFjY2Vzcy1lbnRyeVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFthcm4gb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX0FSTikuICoqRGVmYXVsdDoqKiBgQXJuTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZlByaW5jaXBhbEFybih2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgcHJpbmNpcGFsQXJuYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdBcm5MaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIHN1cHBvcnRUeXBlIHByZXNlbnQgaW4gdGhlIGNyZWF0ZSAvIHVwZGF0ZSBjbHVzdGVyIHJlcXVlc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLmh0bWwjc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0taWQtYmFzZWQtcG9saWNpZXNcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0NyZWF0ZUNsdXN0ZXIoKVxuICAgKiAtIC50b1VwZGF0ZUNsdXN0ZXJDb25maWcoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZlN1cHBvcnRUeXBlKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBzdXBwb3J0VHlwZWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBLdWJlcm5ldGVzIHVzZXJuYW1lIHByZXNlbnQgaW4gdGhlIGFjY2VzcyBlbnRyeSByZXF1ZXN0cyB0aGUgdXNlciBtYWtlcyB0byB0aGUgRUtTIHNlcnZpY2VcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLmh0bWwjc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0taWQtYmFzZWQtcG9saWNpZXNcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0NyZWF0ZUFjY2Vzc0VudHJ5KClcbiAgICpcbiAgICogQXBwbGllcyB0byByZXNvdXJjZSB0eXBlczpcbiAgICogLSBhY2Nlc3MtZW50cnlcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZVc2VybmFtZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgdXNlcm5hbWVgLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW2Vrc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYW1hem9uZWxhc3RpY2t1YmVybmV0ZXNzZXJ2aWNlLmh0bWwpLlxuICAgKlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcHM/OiBpYW0uUG9saWN5U3RhdGVtZW50UHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cbn1cbiJdfQ==
1396
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhc3RpY2t1YmVybmV0ZXNzZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZWxhc3RpY2t1YmVybmV0ZXNzZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF5RDtBQUd6RDs7OztHQUlHO0FBQ0gsTUFBYSxHQUFJLFNBQVEsd0JBQWU7SUFHdEM7Ozs7OztPQU1HO0lBQ0kscUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLHVCQUF1QjtRQUM1QixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksMkJBQTJCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxpQ0FBaUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ0ksbUJBQW1CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FrQkc7SUFDSSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNs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Z0JBQWdCO2dCQUNoQixtQkFBbUI7Z0JBQ25CLHdCQUF3QjtnQkFDeEIscUJBQXFCO2FBQ3RCO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLHVCQUF1QjtnQkFDdkIsMkJBQTJCO2dCQUMzQixpQ0FBaUM7Z0JBQ2pDLG1CQUFtQjtnQkFDbkIsYUFBYTtnQkFDYixrQkFBa0I7Z0JBQ2xCLGVBQWU7Z0JBQ2YsK0JBQStCO2dCQUMvQixzQkFBc0I7Z0JBQ3RCLGlCQUFpQjtnQkFDakIsOEJBQThCO2dCQUM5QixtQkFBbUI7Z0JBQ25CLGFBQWE7Z0JBQ2Isa0JBQWtCO2dCQUNsQixlQUFlO2dCQUNmLCtCQUErQjtnQkFDL0Isc0JBQXNCO2dCQUN0QixpQkFBaUI7Z0JBQ2pCLDhCQUE4QjtnQkFDOUIsbUJBQW1CO2dCQUNuQiwwQkFBMEI7Z0JBQzFCLG9DQUFvQztnQkFDcEMsd0JBQXdCO2dCQUN4QixpQkFBaUI7Z0JBQ2pCLHNCQUFzQjtnQkFDdEIsbUJBQW1CO2dCQUNuQixhQUFhO2dCQUNiLGtCQUFrQjtnQkFDbEIscUJBQXFCO2dCQUNyQixzQkFBc0I7Z0JBQ3RCLCtCQUErQjtnQkFDL0IsdUJBQXVCO2dCQUN2Qix3QkFBd0I7Z0JBQ3hCLDhCQUE4QjthQUMvQjtZQUNELElBQUksRUFBRTtnQkFDSixtQkFBbUI7Z0JBQ25CLG9CQUFvQjtnQkFDcEIsWUFBWTtnQkFDWiw4QkFBOEI7Z0JBQzlCLGtCQUFrQjtnQkFDbEIsY0FBYztnQkFDZCw4QkFBOEI7Z0JBQzlCLHFCQUFxQjtnQkFDckIsNkJBQTZCO2dCQUM3QixjQUFjO2dCQUNkLGdCQUFnQjtnQkFDaEIsNkJBQTZCO2dCQUM3QixhQUFhO2FBQ2Q7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsYUFBYTtnQkFDYixlQUFlO2FBQ2hCO1NBQ0YsQ0FBQztJQStqQkYsQ0FBQztDQUNGO0FBOThDRCxrQkE4OENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjZXNzTGV2ZWxMaXN0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2FjY2Vzcy1sZXZlbCc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIE9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkJztcbmltcG9ydCB7IGF3c19pYW0gYXMgaWFtIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbi8qKlxuICogU3RhdGVtZW50IHByb3ZpZGVyIGZvciBzZXJ2aWNlIFtla3NdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2FtYXpvbmVsYXN0aWNrdWJlcm5ldGVzc2VydmljZS5odG1sKS5cbiAqXG4gKiBAcGFyYW0gc2lkIFtTSURdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfc2lkLmh0bWwpIG9mIHRoZSBzdGF0ZW1lbnRcbiAqL1xuZXhwb3J0IGNsYXNzIEVrcyBleHRlbmRzIFBvbGljeVN0YXRlbWVudCB7XG4gIHB1YmxpYyBzZXJ2aWNlUHJlZml4ID0gJ2Vrcyc7XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHZpZXcgS3ViZXJuZXRlcyBvYmplY3RzIHZpYSBBV1MgRUtTIGNvbnNvbGVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS92aWV3LXdvcmtsb2Fkcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9BY2Nlc3NLdWJlcm5ldGVzQXBpKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdBY2Nlc3NLdWJlcm5ldGVzQXBpJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gYXNzb2NpYXRlIGFuIEFtYXpvbiBFS1MgYWNjZXNzIHBvbGljeSB0byBhbiBBbWF6b24gRUtTIGFjY2VzcyBlbnRyeVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmUG9saWN5QXJuKClcbiAgICogLSAuaWZOYW1lc3BhY2VzKClcbiAgICogLSAuaWZBY2Nlc3NTY29wZSgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQXNzb2NpYXRlQWNjZXNzUG9saWN5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Fzc29jaWF0ZUFjY2Vzc1BvbGljeSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQXNzb2NpYXRlQWNjZXNzUG9saWN5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gYXNzb2NpYXRlIGVuY3J5cHRpb24gY29uZmlndXJhdGlvbiB0byBhIGNsdXN0ZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Fzc29jaWF0ZUVuY3J5cHRpb25Db25maWcuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQXNzb2NpYXRlRW5jcnlwdGlvbkNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQXNzb2NpYXRlRW5jcnlwdGlvbkNvbmZpZycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGFzc29jaWF0ZSBhbiBpZGVudGl0eSBwcm92aWRlciBjb25maWd1cmF0aW9uIHRvIGEgY2x1c3RlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqIC0gLmlmQ2xpZW50SWQoKVxuICAgKiAtIC5pZklzc3VlclVybCgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9Bc3NvY2lhdGVJZGVudGl0eVByb3ZpZGVyQ29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdBc3NvY2lhdGVJZGVudGl0eVByb3ZpZGVyQ29uZmlnJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGFuIEFtYXpvbiBFS1MgYWNjZXNzIGVudHJ5XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICogLSAuaWZQcmluY2lwYWxBcm4oKVxuICAgKiAtIC5pZkt1YmVybmV0ZXNHcm91cHMoKVxuICAgKiAtIC5pZlVzZXJuYW1lKClcbiAgICogLSAuaWZBY2Nlc3NFbnRyeVR5cGUoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZUFjY2Vzc0VudHJ5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUFjY2Vzc0VudHJ5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVBY2Nlc3NFbnRyeScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhbiBBbWF6b24gRUtTIGFkZC1vblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlQWRkb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlQWRkb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUFkZG9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgY2FwYWJpbGl0eSBmb3IgYW4gQW1hem9uIEVLUyBjbHVzdGVyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVDYXBhYmlsaXR5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUNhcGFiaWxpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUNhcGFiaWxpdHknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYW4gQW1hem9uIEVLUyBjbHVzdGVyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICogLSAuaWZCb290c3RyYXBDbHVzdGVyQ3JlYXRvckFkbWluUGVybWlzc2lvbnMoKVxuICAgKiAtIC5pZkJvb3RzdHJhcFNlbGZNYW5hZ2VkQWRkb25zKClcbiAgICogLSAuaWZBdXRoZW50aWNhdGlvbk1vZGUoKVxuICAgKiAtIC5pZlN1cHBvcnRUeXBlKClcbiAgICogLSAuaWZDb21wdXRlQ29uZmlnRW5hYmxlZCgpXG4gICAqIC0gLmlmRWxhc3RpY0xvYWRCYWxhbmNpbmdFbmFibGVkKClcbiAgICogLSAuaWZCbG9ja1N0b3JhZ2VFbmFibGVkKClcbiAgICogLSAuaWZMb2dnaW5nVHlwZSgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlQ2x1c3Rlci5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVDbHVzdGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVDbHVzdGVyJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGFuIEVLUyBBbnl3aGVyZSBzdWJzY3JpcHRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhbiBBV1MgRmFyZ2F0ZSBwcm9maWxlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVGYXJnYXRlUHJvZmlsZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVGYXJnYXRlUHJvZmlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlRmFyZ2F0ZVByb2ZpbGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYW4gQW1hem9uIEVLUyBOb2RlZ3JvdXBcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZU5vZGVncm91cC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVOb2RlZ3JvdXAoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZU5vZGVncm91cCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhbiBFS1MgUG9kIElkZW50aXR5IGFzc29jaWF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVQb2RJZGVudGl0eUFzc29jaWF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYW4gQW1hem9uIEVLUyBhY2Nlc3MgZW50cnlcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZUFjY2Vzc0VudHJ5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZUFjY2Vzc0VudHJ5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVBY2Nlc3NFbnRyeScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhbiBBbWF6b24gRUtTIGFkZC1vblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlQWRkb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlQWRkb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZUFkZG9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgY2FwYWJpbGl0eSBmcm9tIGFuIEFtYXpvbiBFS1MgY2x1c3RlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlQ2FwYWJpbGl0eS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVDYXBhYmlsaXR5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVDYXBhYmlsaXR5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGFuIEFtYXpvbiBFS1MgY2x1c3RlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlQ2x1c3Rlci5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVDbHVzdGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVDbHVzdGVyJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVzY3JpYmUgYW4gRUtTIEFueXdoZXJlIHN1YnNjcmlwdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGFuIEFXUyBGYXJnYXRlIHByb2ZpbGVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZUZhcmdhdGVQcm9maWxlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZUZhcmdhdGVQcm9maWxlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVGYXJnYXRlUHJvZmlsZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhbiBBbWF6b24gRUtTIE5vZGVncm91cFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlTm9kZWdyb3VwLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZU5vZGVncm91cCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlTm9kZWdyb3VwJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGFuIEVLUyBQb2QgSWRlbnRpdHkgYXNzb2NpYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlcmVnaXN0ZXIgYW4gRXh0ZXJuYWwgY2x1c3RlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVyZWdpc3RlckNsdXN0ZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVyZWdpc3RlckNsdXN0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlcmVnaXN0ZXJDbHVzdGVyJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVzY3JpYmUgYW4gQW1hem9uIEVLUyBhY2Nlc3MgZW50cnlcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVBY2Nlc3NFbnRyeS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUFjY2Vzc0VudHJ5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUFjY2Vzc0VudHJ5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgZGVzY3JpcHRpdmUgaW5mb3JtYXRpb24gYWJvdXQgYW4gQW1hem9uIEVLUyBhZGQtb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVBZGRvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUFkZG9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUFkZG9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYWJvdXQgYW4gQW1hem9uIEVLUyBhZGQtb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVBZGRvbkNvbmZpZ3VyYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVBZGRvbkNvbmZpZ3VyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlQWRkb25Db25maWd1cmF0aW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgZGVzY3JpcHRpdmUgdmVyc2lvbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYWRkLW9ucyB0aGF0IEFtYXpvbiBFS1MgQWRkLW9ucyBzdXBwb3J0c1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUFkZG9uVmVyc2lvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVBZGRvblZlcnNpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUFkZG9uVmVyc2lvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZXNjcmliZSBhIGNhcGFiaWxpdHkgZm9yIGFuIEFtYXpvbiBFS1MgY2x1c3RlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUNhcGFiaWxpdHkuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVDYXBhYmlsaXR5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZXNjcmliZUNhcGFiaWxpdHknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBkZXNjcmlwdGl2ZSBpbmZvcm1hdGlvbiBhYm91dCBhbiBBbWF6b24gRUtTIGNsdXN0ZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVDbHVzdGVyLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlQ2x1c3RlcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVDbHVzdGVyJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgZGVzY3JpcHRpdmUgaW5mb3JtYXRpb24gYWJvdXQgS3ViZXJuZXRlcyB2ZXJzaW9ucyB0aGF0IEFtYXpvbiBFS1MgY2x1c3RlcnMgc3VwcG9ydFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUNsdXN0ZXJWZXJzaW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUNsdXN0ZXJWZXJzaW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVDbHVzdGVyVmVyc2lvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZXNjcmliZSBhbiBFS1MgQW55d2hlcmUgc3Vic2NyaXB0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVzY3JpYmVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHJpZXZlIGRlc2NyaXB0aXZlIGluZm9ybWF0aW9uIGFib3V0IGFuIEFXUyBGYXJnYXRlIHByb2ZpbGUgYXNzb2NpYXRlZCB3aXRoIGEgY2x1c3RlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUZhcmdhdGVQcm9maWxlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlRmFyZ2F0ZVByb2ZpbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlRmFyZ2F0ZVByb2ZpbGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBkZXNjcmlwdGl2ZSBpbmZvcm1hdGlvbiBhYm91dCBhbiBJZHAgY29uZmlnIGFzc29jaWF0ZWQgd2l0aCBhIGNsdXN0ZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVJZGVudGl0eVByb3ZpZGVyQ29uZmlnLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rlc2NyaWJlSWRlbnRpdHlQcm92aWRlckNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVJZGVudGl0eVByb3ZpZGVyQ29uZmlnJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgZGVzY3JpcHRpdmUgaW5mb3JtYXRpb24gb2YgYSBkZXRlY3RlZCBpbnNpZ2h0IGZvciBhIHNwZWNpZmllZCBjbHVzdGVyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlSW5zaWdodC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUluc2lnaHQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlSW5zaWdodCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHJpZXZlIHRoZSBzdGF0dXMgb2YgdGhlIGxhdGVzdCBvbi1kZW1hbmQgY2x1c3RlciBpbnNpZ2h0cyByZWZyZXNoIG9wZXJhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZUluc2lnaHRzUmVmcmVzaC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZUluc2lnaHRzUmVmcmVzaCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVJbnNpZ2h0c1JlZnJlc2gnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBkZXNjcmlwdGl2ZSBpbmZvcm1hdGlvbiBhYm91dCBhbiBBbWF6b24gRUtTIG5vZGVncm91cFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZU5vZGVncm91cC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZU5vZGVncm91cCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVOb2RlZ3JvdXAnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZXNjcmliZSBhbiBFS1MgUG9kIElkZW50aXR5IGFzc29jaWF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZVBvZElkZW50aXR5QXNzb2NpYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Rlc2NyaWJlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHJpZXZlIGEgZ2l2ZW4gdXBkYXRlIGZvciBhIGdpdmVuIEFtYXpvbiBFS1MgY2x1c3Rlci9ub2RlZ3JvdXAvYWRkLW9uIChpbiB0aGUgc3BlY2lmaWVkIG9yIGRlZmF1bHQgcmVnaW9uKVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZVVwZGF0ZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZXNjcmliZVVwZGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVzY3JpYmVVcGRhdGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkaXNhc3NvY2lhdGUgYW4gQW1hem9uIEVLUyBhY2Nlc3MgcG9saWN5IGZyb20gYW4gQW1hem9uIEVLUyBhY2NlcyBlbnRyeVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmUG9saWN5QXJuKClcbiAgICogLSAuaWZOYW1lc3BhY2VzKClcbiAgICogLSAuaWZBY2Nlc3NTY29wZSgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGlzYXNzb2NpYXRlQWNjZXNzUG9saWN5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Rpc2Fzc29jaWF0ZUFjY2Vzc1BvbGljeSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGlzYXNzb2NpYXRlQWNjZXNzUG9saWN5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGFuIGFzc3NvY2lhdGVkIElkcCBjb25maWdcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rpc2Fzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWcuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGlzYXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGlzYXNzb2NpYXRlSWRlbnRpdHlQcm92aWRlckNvbmZpZycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgYWxsIEFtYXpvbiBFS1MgYWNjZXNzIGVudHJpZXNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdEFjY2Vzc0VudHJpZXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdEFjY2Vzc0VudHJpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RBY2Nlc3NFbnRyaWVzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBBbWF6b24gRUtTIGFjY2VzcyBwb2xpY2llc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0QWNjZXNzUG9saWNpZXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdEFjY2Vzc1BvbGljaWVzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0QWNjZXNzUG9saWNpZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IHRoZSBBbWF6b24gRUtTIGFkZC1vbnMgaW4geW91ciBBV1MgYWNjb3VudCAoaW4gdGhlIHNwZWNpZmllZCBvciBkZWZhdWx0IHJlZ2lvbikgZm9yIGEgZ2l2ZW4gY2x1c3RlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0QWRkb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RBZGRvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RBZGRvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFzc29jaWF0ZWQgYWNjZXNzIHBvbGljeSBvbiBhbmQgQW1hem9uIEVLUyBhY2Nlc3MgZW50cnlcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdEFzc29jaWF0ZWRBY2Nlc3NQb2xpY2llcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0QXNzb2NpYXRlZEFjY2Vzc1BvbGljaWVzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0QXNzb2NpYXRlZEFjY2Vzc1BvbGljaWVzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBjYXBhYmlsaXRpZXMgZm9yIGFuIEFtYXpvbiBFS1MgY2x1c3RlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0Q2FwYWJpbGl0aWVzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RDYXBhYmlsaXRpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RDYXBhYmlsaXRpZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IHRoZSBBbWF6b24gRUtTIGNsdXN0ZXJzIGluIHlvdXIgQVdTIGFjY291bnQgKGluIHRoZSBzcGVjaWZpZWQgb3IgZGVmYXVsdCByZWdpb24pXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RDbHVzdGVycy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0Q2x1c3RlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RDbHVzdGVycycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgZGFzaGJvYXJkIGRhdGEuIFRoZSBBbWF6b24gRUtTIERhc2hib2FyZCBhZ2dyZWdhdGVzIGluZm9ybWF0aW9uIGFib3V0IGNsdXN0ZXIgcmVzb3VyY2VzIGFjcm9zcyBtdWx0aXBsZSBhY2NvdW50cyBhbmQgcmVnaW9ucy4gVGhlIGRhc2hib2FyZCBpbmNsdWRlcyBpbmZvcm1hdGlvbiBhYm91dCBFQzIgSW5zdGFuY2VzIGFuZCBFS1MgQ2x1c3RlciB2ZXJzaW9uc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0RGFzaGJvYXJkRGF0YS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0RGFzaGJvYXJkRGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdERhc2hib2FyZERhdGEnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGRhc2hib2FyZCByZXNvdXJjZXMuIFRoZSBBbWF6b24gRUtTIERhc2hib2FyZCBhZ2dyZWdhdGVzIGluZm9ybWF0aW9uIGFib3V0IGNsdXN0ZXIgcmVzb3VyY2VzIGFjcm9zcyBtdWx0aXBsZSBhY2NvdW50cyBhbmQgcmVnaW9ucy4gVGhlIGRhc2hib2FyZCBpbmNsdWRlcyBpbmZvcm1hdGlvbiBhYm91dCBFQzIgSW5zdGFuY2VzIGFuZCBFS1MgQ2x1c3RlciB2ZXJzaW9uc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0RGFzaGJvYXJkUmVzb3VyY2VzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3REYXNoYm9hcmRSZXNvdXJjZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3REYXNoYm9hcmRSZXNvdXJjZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IEVLUyBBbnl3aGVyZSBzdWJzY3JpcHRpb25zXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdEVrc0FueXdoZXJlU3Vic2NyaXB0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdEVrc0FueXdoZXJlU3Vic2NyaXB0aW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgdGhlIEFXUyBGYXJnYXRlIHByb2ZpbGVzIGluIHlvdXIgQVdTIGFjY291bnQgKGluIHRoZSBzcGVjaWZpZWQgb3IgZGVmYXVsdCByZWdpb24pIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIGNsdXN0ZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdEZhcmdhdGVQcm9maWxlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0RmFyZ2F0ZVByb2ZpbGVzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0RmFyZ2F0ZVByb2ZpbGVzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCB0aGUgSWRwIGNvbmZpZ3MgaW4geW91ciBBV1MgYWNjb3VudCAoaW4gdGhlIHNwZWNpZmllZCBvciBkZWZhdWx0IHJlZ2lvbikgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gY2x1c3RlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0SWRlbnRpdHlQcm92aWRlckNvbmZpZ3MuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdElkZW50aXR5UHJvdmlkZXJDb25maWdzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0SWRlbnRpdHlQcm92aWRlckNvbmZpZ3MnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFsbCBkZXRlY3RlZCBpbnNpZ2h0cyBmb3IgYSBzcGVjaWZpZWQgY2x1c3RlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0SW5zaWdodHMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdEluc2lnaHRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0SW5zaWdodHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IHRoZSBBbWF6b24gRUtTIG5vZGVncm91cHMgaW4geW91ciBBV1MgYWNjb3VudCAoaW4gdGhlIHNwZWNpZmllZCBvciBkZWZhdWx0IHJlZ2lvbikgYXR0YWNoZWQgdG8gZ2l2ZW4gY2x1c3RlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0Tm9kZWdyb3Vwcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0Tm9kZWdyb3VwcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdE5vZGVncm91cHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IEVLUyBQb2QgSWRlbnRpdHkgYXNzb2NpYXRpb25zXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RQb2RJZGVudGl0eUFzc29jaWF0aW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0UG9kSWRlbnRpdHlBc3NvY2lhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RQb2RJZGVudGl0eUFzc29jaWF0aW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgdGFncyBmb3IgdGhlIHNwZWNpZmllZCByZXNvdXJjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0VGFnc0ZvclJlc291cmNlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RUYWdzRm9yUmVzb3VyY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RUYWdzRm9yUmVzb3VyY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IHRoZSB1cGRhdGVzIGZvciBhIGdpdmVuIEFtYXpvbiBFS1MgY2x1c3Rlci9ub2RlZ3JvdXAvYWRkLW9uIChpbiB0aGUgc3BlY2lmaWVkIG9yIGRlZmF1bHQgcmVnaW9uKVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0VXBkYXRlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0VXBkYXRlcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdFVwZGF0ZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBtb2RpZnkgS3ViZXJuZXRlcyBvYmplY3RzIHZpYSBBV1MgY29uc29sZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIERlcGVuZGVudCBhY3Rpb25zOlxuICAgKiAtIGVrczpBY2Nlc3NLdWJlcm5ldGVzQXBpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9tdXRhdGUtd29ya2xvYWRzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b011dGF0ZVZpYUt1YmVybmV0ZXNBcGkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ011dGF0ZVZpYUt1YmVybmV0ZXNBcGknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZWdpc3RlciBhbiBFeHRlcm5hbCBjbHVzdGVyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9SZWdpc3RlckNsdXN0ZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvUmVnaXN0ZXJDbHVzdGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdSZWdpc3RlckNsdXN0ZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBpbml0aWF0ZSBhbiBvbi1kZW1hbmQgcmVmcmVzaCBvcGVyYXRpb24gZm9yIGNsdXN0ZXIgaW5zaWdodHMsIGdldHRpbmcgdGhlIGxhdGVzdCBhbmFseXNpcyBvdXRzaWRlIG9mIHRoZSBzdGFuZGFyZCByZWZyZXNoIHNjaGVkdWxlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TdGFydEluc2lnaHRzUmVmcmVzaC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9TdGFydEluc2lnaHRzUmVmcmVzaCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU3RhcnRJbnNpZ2h0c1JlZnJlc2gnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB0YWcgdGhlIHNwZWNpZmllZCByZXNvdXJjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFRhZ2dpbmdcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9UYWdSZXNvdXJjZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9UYWdSZXNvdXJjZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVGFnUmVzb3VyY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1bnRhZyB0aGUgc3BlY2lmaWVkIHJlc291cmNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogVGFnZ2luZ1xuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VudGFnUmVzb3VyY2UuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVW50YWdSZXNvdXJjZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVW50YWdSZXNvdXJjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhbiBBbWF6b24gRUtTIGFjY2VzcyBlbnRyeVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlQWNjZXNzRW50cnkuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlQWNjZXNzRW50cnkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZUFjY2Vzc0VudHJ5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIEFtYXpvbiBFS1MgYWRkLW9uIGNvbmZpZ3VyYXRpb25zLCBzdWNoIGFzIHRoZSBWUEMtQ05JIHZlcnNpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZUFkZG9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZUFkZG9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVBZGRvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhIGNhcGFiaWxpdHkgZm9yIGFuIEFtYXpvbiBFS1MgY2x1c3RlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlQ2FwYWJpbGl0eS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVDYXBhYmlsaXR5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVDYXBhYmlsaXR5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIEFtYXpvbiBFS1MgY2x1c3RlciBjb25maWd1cmF0aW9ucyAoZWc6IEFQSSBzZXJ2ZXIgZW5kcG9pbnQgYWNjZXNzKVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXV0aGVudGljYXRpb25Nb2RlKClcbiAgICogLSAuaWZTdXBwb3J0VHlwZSgpXG4gICAqIC0gLmlmQ29tcHV0ZUNvbmZpZ0VuYWJsZWQoKVxuICAgKiAtIC5pZkVsYXN0aWNMb2FkQmFsYW5jaW5nRW5hYmxlZCgpXG4gICAqIC0gLmlmQmxvY2tTdG9yYWdlRW5hYmxlZCgpXG4gICAqIC0gLmlmTG9nZ2luZ1R5cGUoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZUNsdXN0ZXJDb25maWcuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlQ2x1c3RlckNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlQ2x1c3RlckNvbmZpZycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSB0aGUgS3ViZXJuZXRlcyB2ZXJzaW9uIG9mIGFuIEFtYXpvbiBFS1MgY2x1c3RlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlQ2x1c3RlclZlcnNpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlQ2x1c3RlclZlcnNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZUNsdXN0ZXJWZXJzaW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIGFuIEVLUyBBbnl3aGVyZSBzdWJzY3JpcHRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVFa3NBbnl3aGVyZVN1YnNjcmlwdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBBbWF6b24gRUtTIG5vZGVncm91cCBjb25maWd1cmF0aW9ucyAoZWc6IG1pbi9tYXgvZGVzaXJlZCBjYXBhY2l0eSBvciBsYWJlbHMpXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9VcGRhdGVOb2RlZ3JvdXBDb25maWcuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlTm9kZWdyb3VwQ29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVOb2RlZ3JvdXBDb25maWcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1cGRhdGUgdGhlIEt1YmVybmV0ZXMgdmVyc2lvbiBvZiBhbiBBbWF6b24gRUtTIG5vZGVncm91cFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlTm9kZWdyb3VwVmVyc2lvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVOb2RlZ3JvdXBWZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVOb2RlZ3JvdXBWZXJzaW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIGFuIEVLUyBQb2QgSWRlbnRpdHkgYXNzb2NpYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbicpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFjY2Vzc0xldmVsTGlzdDogQWNjZXNzTGV2ZWxMaXN0ID0ge1xuICAgIFJlYWQ6IFtcbiAgICAgICdBY2Nlc3NLdWJlcm5ldGVzQXBpJyxcbiAgICAgICdEZXNjcmliZUFjY2Vzc0VudHJ5JyxcbiAgICAgICdEZXNjcmliZUFkZG9uJyxcbiAgICAgICdEZXNjcmliZUFkZG9uQ29uZmlndXJhdGlvbicsXG4gICAgICAnRGVzY3JpYmVBZGRvblZlcnNpb25zJyxcbiAgICAgICdEZXNjcmliZUNhcGFiaWxpdHknLFxuICAgICAgJ0Rlc2NyaWJlQ2x1c3RlcicsXG4gICAgICAnRGVzY3JpYmVDbHVzdGVyVmVyc2lvbnMnLFxuICAgICAgJ0Rlc2NyaWJlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24nLFxuICAgICAgJ0Rlc2NyaWJlRmFyZ2F0ZVByb2ZpbGUnLFxuICAgICAgJ0Rlc2NyaWJlSWRlbnRpdHlQcm92aWRlckNvbmZpZycsXG4gICAgICAnRGVzY3JpYmVJbnNpZ2h0JyxcbiAgICAgICdEZXNjcmliZUluc2lnaHRzUmVmcmVzaCcsXG4gICAgICAnRGVzY3JpYmVOb2RlZ3JvdXAnLFxuICAgICAgJ0Rlc2NyaWJlUG9kSWRlbnRpdHlBc3NvY2lhdGlvbicsXG4gICAgICAnRGVzY3JpYmVVcGRhdGUnLFxuICAgICAgJ0xpc3REYXNoYm9hcmREYXRhJyxcbiAgICAgICdMaXN0RGFzaGJvYXJkUmVzb3VyY2VzJyxcbiAgICAgICdMaXN0VGFnc0ZvclJlc291cmNlJ1xuICAgIF0sXG4gICAgV3JpdGU6IFtcbiAgICAgICdBc3NvY2lhdGVBY2Nlc3NQb2xpY3knLFxuICAgICAgJ0Fzc29jaWF0ZUVuY3J5cHRpb25Db25maWcnLFxuICAgICAgJ0Fzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWcnLFxuICAgICAgJ0NyZWF0ZUFjY2Vzc0VudHJ5JyxcbiAgICAgICdDcmVhdGVBZGRvbicsXG4gICAgICAnQ3JlYXRlQ2FwYWJpbGl0eScsXG4gICAgICAnQ3JlYXRlQ2x1c3RlcicsXG4gICAgICAnQ3JlYXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24nLFxuICAgICAgJ0NyZWF0ZUZhcmdhdGVQcm9maWxlJyxcbiAgICAgICdDcmVhdGVOb2RlZ3JvdXAnLFxuICAgICAgJ0NyZWF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24nLFxuICAgICAgJ0RlbGV0ZUFjY2Vzc0VudHJ5JyxcbiAgICAgICdEZWxldGVBZGRvbicsXG4gICAgICAnRGVsZXRlQ2FwYWJpbGl0eScsXG4gICAgICAnRGVsZXRlQ2x1c3RlcicsXG4gICAgICAnRGVsZXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24nLFxuICAgICAgJ0RlbGV0ZUZhcmdhdGVQcm9maWxlJyxcbiAgICAgICdEZWxldGVOb2RlZ3JvdXAnLFxuICAgICAgJ0RlbGV0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24nLFxuICAgICAgJ0RlcmVnaXN0ZXJDbHVzdGVyJyxcbiAgICAgICdEaXNhc3NvY2lhdGVBY2Nlc3NQb2xpY3knLFxuICAgICAgJ0Rpc2Fzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWcnLFxuICAgICAgJ011dGF0ZVZpYUt1YmVybmV0ZXNBcGknLFxuICAgICAgJ1JlZ2lzdGVyQ2x1c3RlcicsXG4gICAgICAnU3RhcnRJbnNpZ2h0c1JlZnJlc2gnLFxuICAgICAgJ1VwZGF0ZUFjY2Vzc0VudHJ5JyxcbiAgICAgICdVcGRhdGVBZGRvbicsXG4gICAgICAnVXBkYXRlQ2FwYWJpbGl0eScsXG4gICAgICAnVXBkYXRlQ2x1c3RlckNvbmZpZycsXG4gICAgICAnVXBkYXRlQ2x1c3RlclZlcnNpb24nLFxuICAgICAgJ1VwZGF0ZUVrc0FueXdoZXJlU3Vic2NyaXB0aW9uJyxcbiAgICAgICdVcGRhdGVOb2RlZ3JvdXBDb25maWcnLFxuICAgICAgJ1VwZGF0ZU5vZGVncm91cFZlcnNpb24nLFxuICAgICAgJ1VwZGF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24nXG4gICAgXSxcbiAgICBMaXN0OiBbXG4gICAgICAnTGlzdEFjY2Vzc0VudHJpZXMnLFxuICAgICAgJ0xpc3RBY2Nlc3NQb2xpY2llcycsXG4gICAgICAnTGlzdEFkZG9ucycsXG4gICAgICAnTGlzdEFzc29jaWF0ZWRBY2Nlc3NQb2xpY2llcycsXG4gICAgICAnTGlzdENhcGFiaWxpdGllcycsXG4gICAgICAnTGlzdENsdXN0ZXJzJyxcbiAgICAgICdMaXN0RWtzQW55d2hlcmVTdWJzY3JpcHRpb25zJyxcbiAgICAgICdMaXN0RmFyZ2F0ZVByb2ZpbGVzJyxcbiAgICAgICdMaXN0SWRlbnRpdHlQcm92aWRlckNvbmZpZ3MnLFxuICAgICAgJ0xpc3RJbnNpZ2h0cycsXG4gICAgICAnTGlzdE5vZGVncm91cHMnLFxuICAgICAgJ0xpc3RQb2RJZGVudGl0eUFzc29jaWF0aW9ucycsXG4gICAgICAnTGlzdFVwZGF0ZXMnXG4gICAgXSxcbiAgICBUYWdnaW5nOiBbXG4gICAgICAnVGFnUmVzb3VyY2UnLFxuICAgICAgJ1VudGFnUmVzb3VyY2UnXG4gICAgXVxuICB9O1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBjbHVzdGVyIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL2NsdXN0ZXJzLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIGNsdXN0ZXJOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIGNsdXN0ZXJOYW1lLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqL1xuICBwdWJsaWMgb25DbHVzdGVyKGNsdXN0ZXJOYW1lOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06ZWtzOiR7IHJlZ2lvbiA/PyB0aGlzLmRlZmF1bHRSZWdpb24gfTokeyBhY2NvdW50ID8/IHRoaXMuZGVmYXVsdEFjY291bnQgfTpjbHVzdGVyLyR7IGNsdXN0ZXJOYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBub2RlZ3JvdXAgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvbWFuYWdlZC1ub2RlLWdyb3Vwcy5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBjbHVzdGVyTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSBjbHVzdGVyTmFtZS5cbiAgICogQHBhcmFtIG5vZGVncm91cE5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgbm9kZWdyb3VwTmFtZS5cbiAgICogQHBhcmFtIHVVSUQgLSBJZGVudGlmaWVyIGZvciB0aGUgdVVJRC5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uTm9kZWdyb3VwKGNsdXN0ZXJOYW1lOiBzdHJpbmcsIG5vZGVncm91cE5hbWU6IHN0cmluZywgdVVJRDogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmVrczokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06bm9kZWdyb3VwLyR7IGNsdXN0ZXJOYW1lIH0vJHsgbm9kZWdyb3VwTmFtZSB9LyR7IHVVSUQgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIGFkZG9uIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL2Vrcy1hZGQtb25zLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIGNsdXN0ZXJOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIGNsdXN0ZXJOYW1lLlxuICAgKiBAcGFyYW0gYWRkb25OYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIGFkZG9uTmFtZS5cbiAgICogQHBhcmFtIHVVSUQgLSBJZGVudGlmaWVyIGZvciB0aGUgdVVJRC5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uQWRkb24oY2x1c3Rlck5hbWU6IHN0cmluZywgYWRkb25OYW1lOiBzdHJpbmcsIHVVSUQ6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpla3M6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OmFkZG9uLyR7IGNsdXN0ZXJOYW1lIH0vJHsgYWRkb25OYW1lIH0vJHsgdVVJRCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgZmFyZ2F0ZXByb2ZpbGUgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvZmFyZ2F0ZS1wcm9maWxlLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIGNsdXN0ZXJOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIGNsdXN0ZXJOYW1lLlxuICAgKiBAcGFyYW0gZmFyZ2F0ZVByb2ZpbGVOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIGZhcmdhdGVQcm9maWxlTmFtZS5cbiAgICogQHBhcmFtIHVVSUQgLSBJZGVudGlmaWVyIGZvciB0aGUgdVVJRC5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uRmFyZ2F0ZXByb2ZpbGUoY2x1c3Rlck5hbWU6IHN0cmluZywgZmFyZ2F0ZVByb2ZpbGVOYW1lOiBzdHJpbmcsIHVVSUQ6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpla3M6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OmZhcmdhdGVwcm9maWxlLyR7IGNsdXN0ZXJOYW1lIH0vJHsgZmFyZ2F0ZVByb2ZpbGVOYW1lIH0vJHsgdVVJRCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgaWRlbnRpdHlwcm92aWRlcmNvbmZpZyB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9hdXRoZW50aWNhdGUtb2lkYy1pZGVudGl0eS1wcm92aWRlci5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBjbHVzdGVyTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSBjbHVzdGVyTmFtZS5cbiAgICogQHBhcmFtIGlkZW50aXR5UHJvdmlkZXJUeXBlIC0gSWRlbnRpZmllciBmb3IgdGhlIGlkZW50aXR5UHJvdmlkZXJUeXBlLlxuICAgKiBAcGFyYW0gaWRlbnRpdHlQcm92aWRlckNvbmZpZ05hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgaWRlbnRpdHlQcm92aWRlckNvbmZpZ05hbWUuXG4gICAqIEBwYXJhbSB1VUlEIC0gSWRlbnRpZmllciBmb3IgdGhlIHVVSUQuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICovXG4gIHB1YmxpYyBvbklkZW50aXR5cHJvdmlkZXJjb25maWcoY2x1c3Rlck5hbWU6IHN0cmluZywgaWRlbnRpdHlQcm92aWRlclR5cGU6IHN0cmluZywgaWRlbnRpdHlQcm92aWRlckNvbmZpZ05hbWU6IHN0cmluZywgdVVJRDogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmVrczokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06aWRlbnRpdHlwcm92aWRlcmNvbmZpZy8keyBjbHVzdGVyTmFtZSB9LyR7IGlkZW50aXR5UHJvdmlkZXJUeXBlIH0vJHsgaWRlbnRpdHlQcm92aWRlckNvbmZpZ05hbWUgfS8keyB1VUlEIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBla3MtYW55d2hlcmUtc3Vic2NyaXB0aW9uIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9hbnl3aGVyZS5la3MuYW1hem9uYXdzLmNvbS9kb2NzL2NsdXN0ZXJtZ210L3N1cHBvcnQvY2x1c3Rlci1saWNlbnNlL1xuICAgKlxuICAgKiBAcGFyYW0gdVVJRCAtIElkZW50aWZpZXIgZm9yIHRoZSB1VUlELlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqL1xuICBwdWJsaWMgb25Fa3NBbnl3aGVyZVN1YnNjcmlwdGlvbih1VUlEOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06ZWtzOiR7IHJlZ2lvbiA/PyB0aGlzLmRlZmF1bHRSZWdpb24gfTokeyBhY2NvdW50ID8/IHRoaXMuZGVmYXVsdEFjY291bnQgfTpla3MtYW55d2hlcmUtc3Vic2NyaXB0aW9uLyR7IHVVSUQgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIHBvZGlkZW50aXR5YXNzb2NpYXRpb24gdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvcG9kLWlkZW50aXRpZXMuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gY2x1c3Rlck5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgY2x1c3Rlck5hbWUuXG4gICAqIEBwYXJhbSB1VUlEIC0gSWRlbnRpZmllciBmb3IgdGhlIHVVSUQuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICovXG4gIHB1YmxpYyBvblBvZGlkZW50aXR5YXNzb2NpYXRpb24oY2x1c3Rlck5hbWU6IHN0cmluZywgdVVJRDogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmVrczokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06cG9kaWRlbnRpdHlhc3NvY2lhdGlvbi8keyBjbHVzdGVyTmFtZSB9LyR7IHVVSUQgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIGFjY2Vzcy1lbnRyeSB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9hY2Nlc3MtZW50cmllcy5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBjbHVzdGVyTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSBjbHVzdGVyTmFtZS5cbiAgICogQHBhcmFtIGlhbUlkZW50aXR5VHlwZSAtIElkZW50aWZpZXIgZm9yIHRoZSBpYW1JZGVudGl0eVR5cGUuXG4gICAqIEBwYXJhbSBpYW1JZGVudGl0eUFjY291bnRJRCAtIElkZW50aWZpZXIgZm9yIHRoZSBpYW1JZGVudGl0eUFjY291bnRJRC5cbiAgICogQHBhcmFtIGlhbUlkZW50aXR5TmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSBpYW1JZGVudGl0eU5hbWUuXG4gICAqIEBwYXJhbSB1VUlEIC0gSWRlbnRpZmllciBmb3IgdGhlIHVVSUQuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICogLSAuaWZBY2Nlc3NFbnRyeVR5cGUoKVxuICAgKiAtIC5pZkNsdXN0ZXJOYW1lKClcbiAgICogLSAuaWZLdWJlcm5ldGVzR3JvdXBzKClcbiAgICogLSAuaWZQcmluY2lwYWxBcm4oKVxuICAgKiAtIC5pZlVzZXJuYW1lKClcbiAgICovXG4gIHB1YmxpYyBvbkFjY2Vzc0VudHJ5KGNsdXN0ZXJOYW1lOiBzdHJpbmcsIGlhbUlkZW50aXR5VHlwZTogc3RyaW5nLCBpYW1JZGVudGl0eUFjY291bnRJRDogc3RyaW5nLCBpYW1JZGVudGl0eU5hbWU6IHN0cmluZywgdVVJRDogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmVrczokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06YWNjZXNzLWVudHJ5LyR7IGNsdXN0ZXJOYW1lIH0vJHsgaWFtSWRlbnRpdHlUeXBlIH0vJHsgaWFtSWRlbnRpdHlBY2NvdW50SUQgfS8keyBpYW1JZGVudGl0eU5hbWUgfS8keyB1VUlEIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBhY2Nlc3MtcG9saWN5IHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL2FjY2Vzcy1wb2xpY2llcy5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBhY2Nlc3NQb2xpY3lOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIGFjY2Vzc1BvbGljeU5hbWUuXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqL1xuICBwdWJsaWMgb25BY2Nlc3NQb2xpY3koYWNjZXNzUG9saWN5TmFtZTogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpla3M6OmF3czpjbHVzdGVyLWFjY2Vzcy1wb2xpY3kvJHsgYWNjZXNzUG9saWN5TmFtZSB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgZGFzaGJvYXJkIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL2NsdXN0ZXItZGFzaGJvYXJkLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIGRhc2hib2FyZE5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgZGFzaGJvYXJkTmFtZS5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uRGFzaGJvYXJkKGRhc2hib2FyZE5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpla3M6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OmRhc2hib2FyZC8keyBkYXNoYm9hcmROYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBjYXBhYmlsaXR5IHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL2NhcGFiaWxpdGllcy5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBjbHVzdGVyTmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSBjbHVzdGVyTmFtZS5cbiAgICogQHBhcmFtIGNhcGFiaWxpdHlUeXBlIC0gSWRlbnRpZmllciBmb3IgdGhlIGNhcGFiaWxpdHlUeXBlLlxuICAgKiBAcGFyYW0gY2FwYWJpbGl0eU5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgY2FwYWJpbGl0eU5hbWUuXG4gICAqIEBwYXJhbSB1VUlEIC0gSWRlbnRpZmllciBmb3IgdGhlIHVVSUQuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICovXG4gIHB1YmxpYyBvbkNhcGFiaWxpdHkoY2x1c3Rlck5hbWU6IHN0cmluZywgY2FwYWJpbGl0eVR5cGU6IHN0cmluZywgY2FwYWJpbGl0eU5hbWU6IHN0cmluZywgdVVJRDogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmVrczokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06Y2FwYWJpbGl0eS8keyBjbHVzdGVyTmFtZSB9LyR7IGNhcGFiaWxpdHlUeXBlIH0vJHsgY2FwYWJpbGl0eU5hbWUgfS8keyB1VUlEIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSBhIGtleSB0aGF0IGlzIHByZXNlbnQgaW4gdGhlIHJlcXVlc3QgdGhlIHVzZXIgbWFrZXMgdG8gdGhlIEVLUyBzZXJ2aWNlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9zZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS5odG1sI3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLXRhZ3NcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0Fzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWcoKVxuICAgKiAtIC50b0NyZWF0ZUFjY2Vzc0VudHJ5KClcbiAgICogLSAudG9DcmVhdGVBZGRvbigpXG4gICAqIC0gLnRvQ3JlYXRlQ2FwYWJpbGl0eSgpXG4gICAqIC0gLnRvQ3JlYXRlQ2x1c3RlcigpXG4gICAqIC0gLnRvQ3JlYXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24oKVxuICAgKiAtIC50b0NyZWF0ZUZhcmdhdGVQcm9maWxlKClcbiAgICogLSAudG9DcmVhdGVOb2RlZ3JvdXAoKVxuICAgKiAtIC50b0NyZWF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24oKVxuICAgKiAtIC50b1JlZ2lzdGVyQ2x1c3RlcigpXG4gICAqIC0gLnRvVGFnUmVzb3VyY2UoKVxuICAgKlxuICAgKiBAcGFyYW0gdGFnS2V5IFRoZSB0YWcga2V5IHRvIGNoZWNrXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmQXdzUmVxdWVzdFRhZyh0YWdLZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGF3czpSZXF1ZXN0VGFnLyR7IHRhZ0tleSB9YCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgYSB0YWcga2V5IGFuZCB2YWx1ZSBwYWlyXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9zZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS5odG1sI3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLXRhZ3NcbiAgICpcbiAgICogQXBwbGllcyB0byByZXNvdXJjZSB0eXBlczpcbiAgICogLSBjbHVzdGVyXG4gICAqIC0gbm9kZWdyb3VwXG4gICAqIC0gYWRkb25cbiAgICogLSBmYXJnYXRlcHJvZmlsZVxuICAgKiAtIGlkZW50aXR5cHJvdmlkZXJjb25maWdcbiAgICogLSBla3MtYW55d2hlcmUtc3Vic2NyaXB0aW9uXG4gICAqIC0gcG9kaWRlbnRpdHlhc3NvY2lhdGlvblxuICAgKiAtIGFjY2Vzcy1lbnRyeVxuICAgKiAtIGRhc2hib2FyZFxuICAgKiAtIGNhcGFiaWxpdHlcbiAgICpcbiAgICogQHBhcmFtIHRhZ0tleSBUaGUgdGFnIGtleSB0byBjaGVja1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkF3c1Jlc291cmNlVGFnKHRhZ0tleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgYXdzOlJlc291cmNlVGFnLyR7IHRhZ0tleSB9YCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIGxpc3Qgb2YgYWxsIHRoZSB0YWcga2V5IG5hbWVzIHByZXNlbnQgaW4gdGhlIHJlcXVlc3QgdGhlIHVzZXIgbWFrZXMgdG8gdGhlIEVLUyBzZXJ2aWNlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9zZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS5odG1sI3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLXRhZ3NcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0Fzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWcoKVxuICAgKiAtIC50b0NyZWF0ZUFjY2Vzc0VudHJ5KClcbiAgICogLSAudG9DcmVhdGVBZGRvbigpXG4gICAqIC0gLnRvQ3JlYXRlQ2FwYWJpbGl0eSgpXG4gICAqIC0gLnRvQ3JlYXRlQ2x1c3RlcigpXG4gICAqIC0gLnRvQ3JlYXRlRWtzQW55d2hlcmVTdWJzY3JpcHRpb24oKVxuICAgKiAtIC50b0NyZWF0ZUZhcmdhdGVQcm9maWxlKClcbiAgICogLSAudG9DcmVhdGVOb2RlZ3JvdXAoKVxuICAgKiAtIC50b0NyZWF0ZVBvZElkZW50aXR5QXNzb2NpYXRpb24oKVxuICAgKiAtIC50b1JlZ2lzdGVyQ2x1c3RlcigpXG4gICAqIC0gLnRvVGFnUmVzb3VyY2UoKVxuICAgKiAtIC50b1VudGFnUmVzb3VyY2UoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkF3c1RhZ0tleXModmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGF3czpUYWdLZXlzYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIGFjY2VzcyBlbnRyeSB0eXBlIHByZXNlbnQgaW4gdGhlIGFjY2VzcyBlbnRyeSByZXF1ZXN0cyB0aGUgdXNlciBtYWtlcyB0byB0aGUgRUtTIHNlcnZpY2VcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLmh0bWwjc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0taWQtYmFzZWQtcG9saWNpZXNcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0NyZWF0ZUFjY2Vzc0VudHJ5KClcbiAgICpcbiAgICogQXBwbGllcyB0byByZXNvdXJjZSB0eXBlczpcbiAgICogLSBhY2Nlc3MtZW50cnlcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZBY2Nlc3NFbnRyeVR5cGUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGFjY2Vzc0VudHJ5VHlwZWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBhY2Nlc3NTY29wZSBwcmVzZW50IGluIHRoZSBhc3NvY2lhdGUgLyBkaXNhc3NvY2lhdGUgYWNjZXNzIHBvbGljeSByZXF1ZXN0cyB0aGUgdXNlciBtYWtlcyB0byB0aGUgRUtTIHNlcnZpY2VcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLmh0bWwjc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0taWQtYmFzZWQtcG9saWNpZXNcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0Fzc29jaWF0ZUFjY2Vzc1BvbGljeSgpXG4gICAqIC0gLnRvRGlzYXNzb2NpYXRlQWNjZXNzUG9saWN5KClcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZBY2Nlc3NTY29wZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgYWNjZXNzU2NvcGVgLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgYXV0aGVudGljYXRpb25Nb2RlIHByZXNlbnQgaW4gdGhlIGNyZWF0ZSAvIHVwZGF0ZSBjbHVzdGVyIHJlcXVlc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLmh0bWwjc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0taWQtYmFzZWQtcG9saWNpZXNcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0NyZWF0ZUNsdXN0ZXIoKVxuICAgKiAtIC50b1VwZGF0ZUNsdXN0ZXJDb25maWcoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkF1dGhlbnRpY2F0aW9uTW9kZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgYXV0aGVudGljYXRpb25Nb2RlYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIGJsb2NrIHN0b3JhZ2UgZW5hYmxlZCBwYXJhbWV0ZXIgaW4gdGhlIGNyZWF0ZSAvIHVwZGF0ZSBjbHVzdGVyIHJlcXVlc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLmh0bWwjc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0taWQtYmFzZWQtcG9saWNpZXNcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0NyZWF0ZUNsdXN0ZXIoKVxuICAgKiAtIC50b1VwZGF0ZUNsdXN0ZXJDb25maWcoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgYHRydWVgIG9yIGBmYWxzZWAuICoqRGVmYXVsdDoqKiBgdHJ1ZWBcbiAgICovXG4gIHB1YmxpYyBpZkJsb2NrU3RvcmFnZUVuYWJsZWQodmFsdWU/OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGJsb2NrU3RvcmFnZUVuYWJsZWRgLCAodHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyA/IHZhbHVlIDogdHJ1ZSksICdCb29sJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIGJvb3RzdHJhcENsdXN0ZXJDcmVhdG9yQWRtaW5QZXJtaXNzaW9ucyBwcmVzZW50IGluIHRoZSBjcmVhdGUgY2x1c3RlciByZXF1ZXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9zZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS5odG1sI3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLWlkLWJhc2VkLXBvbGljaWVzXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9DcmVhdGVDbHVzdGVyKClcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIGB0cnVlYCBvciBgZmFsc2VgLiAqKkRlZmF1bHQ6KiogYHRydWVgXG4gICAqL1xuICBwdWJsaWMgaWZCb290c3RyYXBDbHVzdGVyQ3JlYXRvckFkbWluUGVybWlzc2lvbnModmFsdWU/OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGJvb3RzdHJhcENsdXN0ZXJDcmVhdG9yQWRtaW5QZXJtaXNzaW9uc2AsICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnID8gdmFsdWUgOiB0cnVlKSwgJ0Jvb2wnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgYm9vdHN0cmFwU2VsZk1hbmFnZWRBZGRvbnMgcHJlc2VudCBpbiB0aGUgY3JlYXRlIGNsdXN0ZXIgcmVxdWVzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0uaHRtbCNzZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS1pZC1iYXNlZC1wb2xpY2llc1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQ3JlYXRlQ2x1c3RlcigpXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBgdHJ1ZWAgb3IgYGZhbHNlYC4gKipEZWZhdWx0OioqIGB0cnVlYFxuICAgKi9cbiAgcHVibGljIGlmQm9vdHN0cmFwU2VsZk1hbmFnZWRBZGRvbnModmFsdWU/OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGJvb3RzdHJhcFNlbGZNYW5hZ2VkQWRkb25zYCwgKHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgPyB2YWx1ZSA6IHRydWUpLCAnQm9vbCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBjbGllbnRJZCBwcmVzZW50IGluIHRoZSBhc3NvY2lhdGVJZGVudGl0eVByb3ZpZGVyQ29uZmlnIHJlcXVlc3QgdGhlIHVzZXIgbWFrZXMgdG8gdGhlIEVLUyBzZXJ2aWNlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9zZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS5odG1sI3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLWlkLWJhc2VkLXBvbGljaWVzXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9Bc3NvY2lhdGVJZGVudGl0eVByb3ZpZGVyQ29uZmlnKClcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZDbGllbnRJZCh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgY2xpZW50SWRgLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgY2x1c3Rlck5hbWUgcHJlc2VudCBpbiB0aGUgYWNjZXNzIGVudHJ5IHJlcXVlc3RzIHRoZSB1c2VyIG1ha2VzIHRvIHRoZSBFS1Mgc2VydmljZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0uaHRtbCNzZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS1pZC1iYXNlZC1wb2xpY2llc1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIHJlc291cmNlIHR5cGVzOlxuICAgKiAtIGFjY2Vzcy1lbnRyeVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkNsdXN0ZXJOYW1lKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBjbHVzdGVyTmFtZWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBjb21wdXRlIGNvbmZpZyBlbmFibGVkIHBhcmFtZXRlciBpbiB0aGUgY3JlYXRlIC8gdXBkYXRlIGNsdXN0ZXIgcmVxdWVzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0uaHRtbCNzZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS1pZC1iYXNlZC1wb2xpY2llc1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQ3JlYXRlQ2x1c3RlcigpXG4gICAqIC0gLnRvVXBkYXRlQ2x1c3RlckNvbmZpZygpXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBgdHJ1ZWAgb3IgYGZhbHNlYC4gKipEZWZhdWx0OioqIGB0cnVlYFxuICAgKi9cbiAgcHVibGljIGlmQ29tcHV0ZUNvbmZpZ0VuYWJsZWQodmFsdWU/OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGNvbXB1dGVDb25maWdFbmFibGVkYCwgKHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgPyB2YWx1ZSA6IHRydWUpLCAnQm9vbCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBlbGFzdGljIGxvYWQgYmFsYW5jaW5nIGVuYWJsZWQgcGFyYW1ldGVyIGluIHRoZSBjcmVhdGUgLyB1cGRhdGUgY2x1c3RlciByZXF1ZXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9zZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS5odG1sI3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLWlkLWJhc2VkLXBvbGljaWVzXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9DcmVhdGVDbHVzdGVyKClcbiAgICogLSAudG9VcGRhdGVDbHVzdGVyQ29uZmlnKClcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIGB0cnVlYCBvciBgZmFsc2VgLiAqKkRlZmF1bHQ6KiogYHRydWVgXG4gICAqL1xuICBwdWJsaWMgaWZFbGFzdGljTG9hZEJhbGFuY2luZ0VuYWJsZWQodmFsdWU/OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGVsYXN0aWNMb2FkQmFsYW5jaW5nRW5hYmxlZGAsICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnID8gdmFsdWUgOiB0cnVlKSwgJ0Jvb2wnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgaXNzdWVyVXJsIHByZXNlbnQgaW4gdGhlIGFzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWcgcmVxdWVzdCB0aGUgdXNlciBtYWtlcyB0byB0aGUgRUtTIHNlcnZpY2VcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vrcy9sYXRlc3QvdXNlcmd1aWRlL3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLmh0bWwjc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0taWQtYmFzZWQtcG9saWNpZXNcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0Fzc29jaWF0ZUlkZW50aXR5UHJvdmlkZXJDb25maWcoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZklzc3VlclVybCh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgaXNzdWVyVXJsYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIGt1YmVybmV0ZXNHcm91cHMgcHJlc2VudCBpbiB0aGUgYWNjZXNzIGVudHJ5IHJlcXVlc3RzIHRoZSB1c2VyIG1ha2VzIHRvIHRoZSBFS1Mgc2VydmljZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0uaHRtbCNzZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS1pZC1iYXNlZC1wb2xpY2llc1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQ3JlYXRlQWNjZXNzRW50cnkoKVxuICAgKlxuICAgKiBBcHBsaWVzIHRvIHJlc291cmNlIHR5cGVzOlxuICAgKiAtIGFjY2Vzcy1lbnRyeVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkt1YmVybmV0ZXNHcm91cHModmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGt1YmVybmV0ZXNHcm91cHNgLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgY2x1c3RlciBsb2dnaW5nIGVuYWJsZWQgYW5kIHR5cGUgcGFyYW1ldGVyIGluIHRoZSBjcmVhdGUgLyB1cGRhdGUgY2x1c3RlciByZXF1ZXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9zZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS5odG1sI3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLWlkLWJhc2VkLXBvbGljaWVzXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9DcmVhdGVDbHVzdGVyKClcbiAgICogLSAudG9VcGRhdGVDbHVzdGVyQ29uZmlnKClcbiAgICpcbiAgICogQHBhcmFtIHR5cGUgVGhlIHRhZyBrZXkgdG8gY2hlY2tcbiAgICogQHBhcmFtIHZhbHVlIGB0cnVlYCBvciBgZmFsc2VgLiAqKkRlZmF1bHQ6KiogYHRydWVgXG4gICAqL1xuICBwdWJsaWMgaWZMb2dnaW5nVHlwZSh0eXBlOiBzdHJpbmcsIHZhbHVlPzogYm9vbGVhbikge1xuICAgIHJldHVybiB0aGlzLmlmKGBsb2dnaW5nVHlwZS8keyB0eXBlIH1gLCAodHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyA/IHZhbHVlIDogdHJ1ZSksICdCb29sJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIG5hbWVzcGFjZXMgcHJlc2VudCBpbiB0aGUgYXNzb2NpYXRlIC8gZGlzYXNzb2NpYXRlIGFjY2VzcyBwb2xpY3kgcmVxdWVzdHMgdGhlIHVzZXIgbWFrZXMgdG8gdGhlIEVLUyBzZXJ2aWNlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9zZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS5odG1sI3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLWlkLWJhc2VkLXBvbGljaWVzXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9Bc3NvY2lhdGVBY2Nlc3NQb2xpY3koKVxuICAgKiAtIC50b0Rpc2Fzc29jaWF0ZUFjY2Vzc1BvbGljeSgpXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmTmFtZXNwYWNlcyh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgbmFtZXNwYWNlc2AsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBwb2xpY3lBcm4gcHJlc2VudCBpbiB0aGUgYWNjZXNzIGVudHJ5IHJlcXVlc3RzIHRoZSB1c2VyIG1ha2VzIHRvIHRoZSBFS1Mgc2VydmljZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0uaHRtbCNzZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS1pZC1iYXNlZC1wb2xpY2llc1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQXNzb2NpYXRlQWNjZXNzUG9saWN5KClcbiAgICogLSAudG9EaXNhc3NvY2lhdGVBY2Nlc3NQb2xpY3koKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFthcm4gb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX0FSTikuICoqRGVmYXVsdDoqKiBgQXJuTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZlBvbGljeUFybih2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgcG9saWN5QXJuYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdBcm5MaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIHByaW5jaXBhbEFybiBwcmVzZW50IGluIHRoZSBhY2Nlc3MgZW50cnkgcmVxdWVzdHMgcmVxdWVzdHMgdGhlIHVzZXIgbWFrZXMgdG8gdGhlIEVLUyBzZXJ2aWNlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9la3MvbGF0ZXN0L3VzZXJndWlkZS9zZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS5odG1sI3NlY3VyaXR5X2lhbV9zZXJ2aWNlLXdpdGgtaWFtLWlkLWJhc2VkLXBvbGljaWVzXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9DcmVhdGVBY2Nlc3NFbnRyeSgpXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gcmVzb3VyY2UgdHlwZXM6XG4gICAqIC0gYWNjZXNzLWVudHJ5XG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW2FybiBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfQVJOKS4gKipEZWZhdWx0OioqIGBBcm5MaWtlYFxuICAgKi9cbiAgcHVibGljIGlmUHJpbmNpcGFsQXJuKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBwcmluY2lwYWxBcm5gLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ0Fybkxpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgc3VwcG9ydFR5cGUgcHJlc2VudCBpbiB0aGUgY3JlYXRlIC8gdXBkYXRlIGNsdXN0ZXIgcmVxdWVzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0uaHRtbCNzZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS1pZC1iYXNlZC1wb2xpY2llc1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQ3JlYXRlQ2x1c3RlcigpXG4gICAqIC0gLnRvVXBkYXRlQ2x1c3RlckNvbmZpZygpXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmU3VwcG9ydFR5cGUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYHN1cHBvcnRUeXBlYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIEt1YmVybmV0ZXMgdXNlcm5hbWUgcHJlc2VudCBpbiB0aGUgYWNjZXNzIGVudHJ5IHJlcXVlc3RzIHRoZSB1c2VyIG1ha2VzIHRvIHRoZSBFS1Mgc2VydmljZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWtzL2xhdGVzdC91c2VyZ3VpZGUvc2VjdXJpdHlfaWFtX3NlcnZpY2Utd2l0aC1pYW0uaHRtbCNzZWN1cml0eV9pYW1fc2VydmljZS13aXRoLWlhbS1pZC1iYXNlZC1wb2xpY2llc1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQ3JlYXRlQWNjZXNzRW50cnkoKVxuICAgKlxuICAgKiBBcHBsaWVzIHRvIHJlc291cmNlIHR5cGVzOlxuICAgKiAtIGFjY2Vzcy1lbnRyeVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZlVzZXJuYW1lKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGB1c2VybmFtZWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbZWtzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hbWF6b25lbGFzdGlja3ViZXJuZXRlc3NlcnZpY2UuaHRtbCkuXG4gICAqXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wcz86IGlhbS5Qb2xpY3lTdGF0ZW1lbnRQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxufVxuIl19