@cdk_utils/iam 1.25.0 → 1.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/.jsii +2 -2
  2. package/lib/generated/services/a2c.js +1 -1
  3. package/lib/generated/services/a4b.js +3 -3
  4. package/lib/generated/services/access-analyzer.js +4 -4
  5. package/lib/generated/services/account-access.js +4 -4
  6. package/lib/generated/services/account.js +4 -4
  7. package/lib/generated/services/acm-pca.js +4 -4
  8. package/lib/generated/services/acm.js +4 -4
  9. package/lib/generated/services/aco-automation.js +4 -4
  10. package/lib/generated/services/action-recommendations.js +1 -1
  11. package/lib/generated/services/activate.js +1 -1
  12. package/lib/generated/services/agent-registry.js +4 -4
  13. package/lib/generated/services/agentaccess-mcp.js +2 -2
  14. package/lib/generated/services/aidevops.js +4 -4
  15. package/lib/generated/services/aiops.js +4 -4
  16. package/lib/generated/services/airflow-serverless.js +4 -4
  17. package/lib/generated/services/airflow.js +4 -4
  18. package/lib/generated/services/amplify.js +4 -4
  19. package/lib/generated/services/amplifybackend.js +3 -3
  20. package/lib/generated/services/amplifyuibuilder.js +4 -4
  21. package/lib/generated/services/aoss.js +4 -4
  22. package/lib/generated/services/apigateway.js +4 -4
  23. package/lib/generated/services/app-integrations.js +4 -4
  24. package/lib/generated/services/appconfig.js +4 -4
  25. package/lib/generated/services/appfabric.js +4 -4
  26. package/lib/generated/services/appflow.js +4 -4
  27. package/lib/generated/services/application-autoscaling.js +4 -4
  28. package/lib/generated/services/application-signals-mcp.js +3 -3
  29. package/lib/generated/services/application-signals.js +4 -4
  30. package/lib/generated/services/application-transformation.js +1 -1
  31. package/lib/generated/services/applicationinsights.js +3 -3
  32. package/lib/generated/services/appmesh-preview.js +2 -2
  33. package/lib/generated/services/appmesh.js +4 -4
  34. package/lib/generated/services/apprunner.js +4 -4
  35. package/lib/generated/services/appstream.js +4 -4
  36. package/lib/generated/services/appstudio.js +2 -2
  37. package/lib/generated/services/appsync.js +4 -4
  38. package/lib/generated/services/apptest.js +3 -3
  39. package/lib/generated/services/aps.js +4 -4
  40. package/lib/generated/services/arc-region-switch.js +4 -4
  41. package/lib/generated/services/arc-zonal-shift.js +4 -4
  42. package/lib/generated/services/arsenal.js +1 -1
  43. package/lib/generated/services/artifact.js +4 -4
  44. package/lib/generated/services/athena.js +4 -4
  45. package/lib/generated/services/auditmanager.js +4 -4
  46. package/lib/generated/services/autoscaling-plans.js +2 -2
  47. package/lib/generated/services/autoscaling.js +4 -4
  48. package/lib/generated/services/aws-external-anthropic.js +3 -3
  49. package/lib/generated/services/aws-marketplace-management.js +1 -1
  50. package/lib/generated/services/aws-marketplace.js +4 -4
  51. package/lib/generated/services/aws-portal.js +1 -1
  52. package/lib/generated/services/awsconnector.js +1 -1
  53. package/lib/generated/services/b2bi.js +4 -4
  54. package/lib/generated/services/backup-gateway.js +4 -4
  55. package/lib/generated/services/backup-search.js +10 -6
  56. package/lib/generated/services/backup-storage.js +1 -1
  57. package/lib/generated/services/backup.js +4 -4
  58. package/lib/generated/services/batch.js +4 -4
  59. package/lib/generated/services/bcm-dashboards.js +4 -4
  60. package/lib/generated/services/bcm-data-exports.js +4 -4
  61. package/lib/generated/services/bcm-pricing-calculator.js +4 -4
  62. package/lib/generated/services/bcm-recommended-actions.js +2 -2
  63. package/lib/generated/services/bedrock-agentcore.js +4 -4
  64. package/lib/generated/services/bedrock-mantle.js +3 -3
  65. package/lib/generated/services/bedrock-websearch.js +2 -2
  66. package/lib/generated/services/bedrock.js +4 -4
  67. package/lib/generated/services/billing.js +4 -4
  68. package/lib/generated/services/billingconductor.js +4 -4
  69. package/lib/generated/services/braket.js +4 -4
  70. package/lib/generated/services/budgets.js +4 -4
  71. package/lib/generated/services/bugbust.js +3 -3
  72. package/lib/generated/services/cases.js +4 -4
  73. package/lib/generated/services/cassandra.js +4 -4
  74. package/lib/generated/services/ce.js +4 -4
  75. package/lib/generated/services/chatbot.js +4 -4
  76. package/lib/generated/services/chime.js +4 -4
  77. package/lib/generated/services/cleanrooms-ml.js +4 -4
  78. package/lib/generated/services/cleanrooms.js +4 -4
  79. package/lib/generated/services/cloud9.js +4 -4
  80. package/lib/generated/services/clouddirectory.js +3 -3
  81. package/lib/generated/services/cloudformation.js +4 -4
  82. package/lib/generated/services/cloudfront-keyvaluestore.js +3 -3
  83. package/lib/generated/services/cloudfront.js +4 -4
  84. package/lib/generated/services/cloudhsm.js +4 -4
  85. package/lib/generated/services/cloudsearch.js +3 -3
  86. package/lib/generated/services/cloudshell.js +3 -3
  87. package/lib/generated/services/cloudtrail-data.js +4 -4
  88. package/lib/generated/services/cloudtrail.js +4 -4
  89. package/lib/generated/services/cloudwatch.js +4 -4
  90. package/lib/generated/services/codeartifact.js +4 -4
  91. package/lib/generated/services/codebuild.js +4 -4
  92. package/lib/generated/services/codecatalyst.js +4 -4
  93. package/lib/generated/services/codecommit.js +4 -4
  94. package/lib/generated/services/codeconnections.js +4 -4
  95. package/lib/generated/services/codedeploy-commands-secure.js +1 -1
  96. package/lib/generated/services/codedeploy.js +4 -4
  97. package/lib/generated/services/codeguru-profiler.js +4 -4
  98. package/lib/generated/services/codeguru-reviewer.js +4 -4
  99. package/lib/generated/services/codeguru-security.js +4 -4
  100. package/lib/generated/services/codeguru.js +1 -1
  101. package/lib/generated/services/codepipeline.js +4 -4
  102. package/lib/generated/services/codestar-connections.js +4 -4
  103. package/lib/generated/services/codestar-notifications.js +4 -4
  104. package/lib/generated/services/codestar.js +3 -3
  105. package/lib/generated/services/codewhisperer.js +3 -3
  106. package/lib/generated/services/cognito-identity.js +4 -4
  107. package/lib/generated/services/cognito-idp.js +4 -4
  108. package/lib/generated/services/cognito-sync.js +3 -3
  109. package/lib/generated/services/comprehend.js +4 -4
  110. package/lib/generated/services/comprehendmedical.js +3 -3
  111. package/lib/generated/services/compute-optimizer.js +3 -3
  112. package/lib/generated/services/config.js +4 -4
  113. package/lib/generated/services/connect-campaigns.js +4 -4
  114. package/lib/generated/services/connect.js +4 -4
  115. package/lib/generated/services/consoleapp.js +2 -2
  116. package/lib/generated/services/consolidatedbilling.js +1 -1
  117. package/lib/generated/services/controlcatalog.js +3 -3
  118. package/lib/generated/services/controltower.js +4 -4
  119. package/lib/generated/services/cost-optimization-hub.js +2 -2
  120. package/lib/generated/services/cur.js +4 -4
  121. package/lib/generated/services/customer-verification.js +1 -1
  122. package/lib/generated/services/databrew.js +4 -4
  123. package/lib/generated/services/dataexchange.js +4 -4
  124. package/lib/generated/services/datapipeline.js +4 -4
  125. package/lib/generated/services/datasync.js +4 -4
  126. package/lib/generated/services/datazone.js +4 -4
  127. package/lib/generated/services/dax.js +4 -4
  128. package/lib/generated/services/dbqms.js +1 -1
  129. package/lib/generated/services/deadline.js +4 -4
  130. package/lib/generated/services/detective.js +4 -4
  131. package/lib/generated/services/devicefarm.js +4 -4
  132. package/lib/generated/services/devops-guru.js +4 -4
  133. package/lib/generated/services/directconnect.js +9 -6
  134. package/lib/generated/services/discovery.js +3 -3
  135. package/lib/generated/services/dlm.js +4 -4
  136. package/lib/generated/services/dms.js +4 -4
  137. package/lib/generated/services/docdb-elastic.js +4 -4
  138. package/lib/generated/services/drs.js +4 -4
  139. package/lib/generated/services/ds-data.js +4 -4
  140. package/lib/generated/services/ds.js +4 -4
  141. package/lib/generated/services/dsql.js +4 -4
  142. package/lib/generated/services/dynamodb.js +4 -4
  143. package/lib/generated/services/ebs.js +4 -4
  144. package/lib/generated/services/ec2-instance-connect.js +4 -4
  145. package/lib/generated/services/ec2.js +4 -4
  146. package/lib/generated/services/ec2messages.js +2 -2
  147. package/lib/generated/services/ecr-public.js +4 -4
  148. package/lib/generated/services/ecr.js +4 -4
  149. package/lib/generated/services/ecs-mcp.js +1 -1
  150. package/lib/generated/services/ecs.js +4 -4
  151. package/lib/generated/services/eks-auth.js +4 -4
  152. package/lib/generated/services/eks-mcp.js +1 -1
  153. package/lib/generated/services/eks.js +4 -4
  154. package/lib/generated/services/elasticache.js +4 -4
  155. package/lib/generated/services/elasticbeanstalk.js +4 -4
  156. package/lib/generated/services/elasticfilesystem.js +4 -4
  157. package/lib/generated/services/elasticloadbalancing.js +4 -4
  158. package/lib/generated/services/elasticmapreduce.js +4 -4
  159. package/lib/generated/services/elastictranscoder.js +2 -2
  160. package/lib/generated/services/elemental-activations.js +1 -1
  161. package/lib/generated/services/elemental-appliances-software.js +2 -2
  162. package/lib/generated/services/elemental-inference.js +4 -4
  163. package/lib/generated/services/elemental-support-cases.js +3 -3
  164. package/lib/generated/services/elemental-support-content.js +1 -1
  165. package/lib/generated/services/emr-containers.js +4 -4
  166. package/lib/generated/services/emr-serverless.js +4 -4
  167. package/lib/generated/services/entityresolution.js +4 -4
  168. package/lib/generated/services/es.js +4 -4
  169. package/lib/generated/services/events.js +4 -4
  170. package/lib/generated/services/eventsbilltoaws.js +3 -3
  171. package/lib/generated/services/evidently.js +3 -3
  172. package/lib/generated/services/evs.js +4 -4
  173. package/lib/generated/services/execute-api.js +4 -4
  174. package/lib/generated/services/finops-agent.js +1 -1
  175. package/lib/generated/services/finspace-api.js +3 -3
  176. package/lib/generated/services/finspace.js +4 -4
  177. package/lib/generated/services/firehose.js +4 -4
  178. package/lib/generated/services/fis.js +4 -4
  179. package/lib/generated/services/fms.js +4 -4
  180. package/lib/generated/services/forecast.js +4 -4
  181. package/lib/generated/services/frauddetector.js +4 -4
  182. package/lib/generated/services/freertos.js +3 -3
  183. package/lib/generated/services/freetier.js +2 -2
  184. package/lib/generated/services/fsx.js +4 -4
  185. package/lib/generated/services/gamelift.js +4 -4
  186. package/lib/generated/services/gameliftstreams.js +4 -4
  187. package/lib/generated/services/geo-maps.js +3 -3
  188. package/lib/generated/services/geo-places.js +3 -3
  189. package/lib/generated/services/geo-routes.js +3 -3
  190. package/lib/generated/services/geo.js +4 -4
  191. package/lib/generated/services/glacier.js +4 -4
  192. package/lib/generated/services/globalaccelerator.js +4 -4
  193. package/lib/generated/services/glue.js +8 -6
  194. package/lib/generated/services/grafana.js +4 -4
  195. package/lib/generated/services/greengrass.js +4 -4
  196. package/lib/generated/services/groundstation.js +9 -6
  197. package/lib/generated/services/groundtruthlabeling.js +1 -1
  198. package/lib/generated/services/guardduty.js +4 -4
  199. package/lib/generated/services/health-agent.js +4 -4
  200. package/lib/generated/services/health.js +4 -4
  201. package/lib/generated/services/healthlake.js +4 -4
  202. package/lib/generated/services/honeycode.js +2 -2
  203. package/lib/generated/services/iam.js +4 -4
  204. package/lib/generated/services/identity-sync.js +2 -2
  205. package/lib/generated/services/identitystore-auth.js +1 -1
  206. package/lib/generated/services/identitystore.js +4 -4
  207. package/lib/generated/services/imagebuilder.js +4 -4
  208. package/lib/generated/services/importexport.js +2 -2
  209. package/lib/generated/services/inspector-scan.js +2 -2
  210. package/lib/generated/services/inspector.js +2 -2
  211. package/lib/generated/services/inspector2-telemetry.js +1 -1
  212. package/lib/generated/services/inspector2.js +4 -4
  213. package/lib/generated/services/interconnect.js +4 -4
  214. package/lib/generated/services/internetmonitor.js +4 -4
  215. package/lib/generated/services/invoicing.js +11 -38
  216. package/lib/generated/services/iot-device-tester.js +1 -1
  217. package/lib/generated/services/iot.js +4 -4
  218. package/lib/generated/services/iotanalytics.js +3 -3
  219. package/lib/generated/services/iotdeviceadvisor.js +4 -4
  220. package/lib/generated/services/iotevents.js +3 -3
  221. package/lib/generated/services/iotfleethub.js +3 -3
  222. package/lib/generated/services/iotfleetwise.js +4 -4
  223. package/lib/generated/services/iotjobsdata.js +4 -4
  224. package/lib/generated/services/iotmanagedintegrations.js +4 -4
  225. package/lib/generated/services/iotsitewise.js +4 -4
  226. package/lib/generated/services/iottwinmaker.js +4 -4
  227. package/lib/generated/services/iotwireless.js +4 -4
  228. package/lib/generated/services/iq-permission.js +2 -2
  229. package/lib/generated/services/iq.js +2 -2
  230. package/lib/generated/services/ivs.js +4 -4
  231. package/lib/generated/services/ivschat.js +4 -4
  232. package/lib/generated/services/kafka-cluster.js +3 -3
  233. package/lib/generated/services/kafka.js +4 -4
  234. package/lib/generated/services/kafkaconnect.js +4 -4
  235. package/lib/generated/services/kendra-ranking.js +4 -4
  236. package/lib/generated/services/kendra.js +4 -4
  237. package/lib/generated/services/kinesis.js +4 -4
  238. package/lib/generated/services/kinesisanalytics.js +4 -4
  239. package/lib/generated/services/kinesisvideo.js +4 -4
  240. package/lib/generated/services/kms.js +4 -4
  241. package/lib/generated/services/lakeformation.js +3 -3
  242. package/lib/generated/services/lambda.js +4 -4
  243. package/lib/generated/services/launchwizard.js +4 -4
  244. package/lib/generated/services/lex.js +4 -4
  245. package/lib/generated/services/license-manager-linux-subscriptions.js +4 -4
  246. package/lib/generated/services/license-manager-user-subscriptions.js +4 -4
  247. package/lib/generated/services/license-manager.js +4 -4
  248. package/lib/generated/services/lightsail.js +4 -4
  249. package/lib/generated/services/logs.js +4 -4
  250. package/lib/generated/services/lookoutequipment.js +4 -4
  251. package/lib/generated/services/lookoutmetrics.js +3 -3
  252. package/lib/generated/services/lookoutvision.js +3 -3
  253. package/lib/generated/services/m2.js +4 -4
  254. package/lib/generated/services/machinelearning.js +3 -3
  255. package/lib/generated/services/macie2.js +4 -4
  256. package/lib/generated/services/managedblockchain-query.js +2 -2
  257. package/lib/generated/services/managedblockchain.js +4 -4
  258. package/lib/generated/services/mapcredits.js +2 -2
  259. package/lib/generated/services/marketplacecommerceanalytics.js +2 -2
  260. package/lib/generated/services/mechanicalturk.js +2 -2
  261. package/lib/generated/services/mediaconnect.js +4 -4
  262. package/lib/generated/services/mediaconvert.js +4 -4
  263. package/lib/generated/services/mediaimport.js +1 -1
  264. package/lib/generated/services/medialive.js +4 -4
  265. package/lib/generated/services/mediapackage-vod.js +4 -4
  266. package/lib/generated/services/mediapackage.js +4 -4
  267. package/lib/generated/services/mediapackagev2.js +4 -4
  268. package/lib/generated/services/mediastore.js +4 -4
  269. package/lib/generated/services/mediatailor.js +4 -4
  270. package/lib/generated/services/medical-imaging.js +4 -4
  271. package/lib/generated/services/memorydb.js +4 -4
  272. package/lib/generated/services/mgh.js +4 -4
  273. package/lib/generated/services/mgn.js +4 -4
  274. package/lib/generated/services/migrationhub-orchestrator.js +4 -4
  275. package/lib/generated/services/migrationhub-strategy.js +2 -2
  276. package/lib/generated/services/mobileanalytics.js +1 -1
  277. package/lib/generated/services/mobiletargeting.js +4 -4
  278. package/lib/generated/services/monitron.js +3 -3
  279. package/lib/generated/services/mpa.js +4 -4
  280. package/lib/generated/services/mq.js +4 -4
  281. package/lib/generated/services/neptune-db.js +4 -4
  282. package/lib/generated/services/neptune-graph.js +4 -4
  283. package/lib/generated/services/network-firewall.js +4 -4
  284. package/lib/generated/services/network-security-director.js +1 -1
  285. package/lib/generated/services/networkflowmonitor.js +4 -4
  286. package/lib/generated/services/networkmanager-chat.js +1 -1
  287. package/lib/generated/services/networkmanager.js +4 -4
  288. package/lib/generated/services/networkmonitor.js +4 -4
  289. package/lib/generated/services/nimble.js +3 -3
  290. package/lib/generated/services/notifications-contacts.js +4 -4
  291. package/lib/generated/services/notifications.d.ts +2 -0
  292. package/lib/generated/services/notifications.js +7 -5
  293. package/lib/generated/services/nova-act.js +3 -3
  294. package/lib/generated/services/oam.js +4 -4
  295. package/lib/generated/services/observabilityadmin.js +4 -4
  296. package/lib/generated/services/odb.js +4 -4
  297. package/lib/generated/services/omics.js +4 -4
  298. package/lib/generated/services/one.js +3 -3
  299. package/lib/generated/services/opensearch.js +3 -3
  300. package/lib/generated/services/opsworks-cm.js +2 -2
  301. package/lib/generated/services/opsworks.js +2 -2
  302. package/lib/generated/services/organizations.js +4 -4
  303. package/lib/generated/services/osis.js +4 -4
  304. package/lib/generated/services/outposts.js +4 -4
  305. package/lib/generated/services/panorama.js +3 -3
  306. package/lib/generated/services/partnercentral-account-management.js +2 -2
  307. package/lib/generated/services/partnercentral.js +4 -4
  308. package/lib/generated/services/payment-cryptography.js +4 -4
  309. package/lib/generated/services/payments.js +3 -3
  310. package/lib/generated/services/pca-connector-ad.js +4 -4
  311. package/lib/generated/services/pca-connector-scep.js +4 -4
  312. package/lib/generated/services/pcs.js +4 -4
  313. package/lib/generated/services/personalize.js +4 -4
  314. package/lib/generated/services/pi.js +4 -4
  315. package/lib/generated/services/pipes.js +4 -4
  316. package/lib/generated/services/polly.js +3 -3
  317. package/lib/generated/services/pricing.js +2 -2
  318. package/lib/generated/services/pricingplanmanager.js +3 -3
  319. package/lib/generated/services/private-networks.js +3 -3
  320. package/lib/generated/services/profile.js +4 -4
  321. package/lib/generated/services/proton.js +4 -4
  322. package/lib/generated/services/purchase-orders.js +3 -3
  323. package/lib/generated/services/q.js +3 -3
  324. package/lib/generated/services/qapps.js +4 -4
  325. package/lib/generated/services/qbusiness.js +4 -4
  326. package/lib/generated/services/qdeveloper.js +3 -3
  327. package/lib/generated/services/qldb.js +3 -3
  328. package/lib/generated/services/quicksight.js +4 -4
  329. package/lib/generated/services/ram.js +4 -4
  330. package/lib/generated/services/rbin.js +4 -4
  331. package/lib/generated/services/rds-data.js +4 -4
  332. package/lib/generated/services/rds-db.js +2 -2
  333. package/lib/generated/services/rds.js +4 -4
  334. package/lib/generated/services/redshift-data.js +4 -4
  335. package/lib/generated/services/redshift-serverless.js +4 -4
  336. package/lib/generated/services/redshift.js +4 -4
  337. package/lib/generated/services/refactor-spaces.js +4 -4
  338. package/lib/generated/services/rekognition.js +4 -4
  339. package/lib/generated/services/repostspace.js +4 -4
  340. package/lib/generated/services/researchstudio.js +1 -1
  341. package/lib/generated/services/resiliencehub.js +4 -4
  342. package/lib/generated/services/resource-explorer-2.js +4 -4
  343. package/lib/generated/services/resource-explorer.js +1 -1
  344. package/lib/generated/services/resource-groups.js +4 -4
  345. package/lib/generated/services/rhelkb.js +1 -1
  346. package/lib/generated/services/robomaker.js +3 -3
  347. package/lib/generated/services/rolesanywhere.js +4 -4
  348. package/lib/generated/services/route53-recovery-cluster.js +4 -4
  349. package/lib/generated/services/route53-recovery-control-config.js +4 -4
  350. package/lib/generated/services/route53-recovery-readiness.js +4 -4
  351. package/lib/generated/services/route53.js +4 -4
  352. package/lib/generated/services/route53domains.js +2 -2
  353. package/lib/generated/services/route53globalresolver.js +4 -4
  354. package/lib/generated/services/route53profiles.js +4 -4
  355. package/lib/generated/services/route53resolver.js +4 -4
  356. package/lib/generated/services/rtbfabric.js +4 -4
  357. package/lib/generated/services/rum.js +4 -4
  358. package/lib/generated/services/s3-object-lambda.js +3 -3
  359. package/lib/generated/services/s3-outposts.js +4 -4
  360. package/lib/generated/services/s3.js +4 -4
  361. package/lib/generated/services/s3express.js +3 -3
  362. package/lib/generated/services/s3files.js +4 -4
  363. package/lib/generated/services/s3tables.js +4 -4
  364. package/lib/generated/services/s3vectors.js +4 -4
  365. package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
  366. package/lib/generated/services/sagemaker-geospatial.js +4 -4
  367. package/lib/generated/services/sagemaker-mlflow.js +3 -3
  368. package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
  369. package/lib/generated/services/sagemaker.js +6 -6
  370. package/lib/generated/services/savingsplans.js +4 -4
  371. package/lib/generated/services/scheduler.js +4 -4
  372. package/lib/generated/services/schemas.js +4 -4
  373. package/lib/generated/services/scn.js +4 -4
  374. package/lib/generated/services/sdb.js +3 -3
  375. package/lib/generated/services/secretsmanager.js +4 -4
  376. package/lib/generated/services/security-ir.js +4 -4
  377. package/lib/generated/services/securityagent.d.ts +8 -0
  378. package/lib/generated/services/securityagent.js +17 -5
  379. package/lib/generated/services/securityhub.js +4 -4
  380. package/lib/generated/services/securitylake.js +4 -4
  381. package/lib/generated/services/serverlessrepo.js +4 -4
  382. package/lib/generated/services/servicecatalog.js +4 -4
  383. package/lib/generated/services/servicediscovery.js +4 -4
  384. package/lib/generated/services/serviceextract.js +1 -1
  385. package/lib/generated/services/servicequotas.js +4 -4
  386. package/lib/generated/services/ses.js +4 -4
  387. package/lib/generated/services/shield.js +4 -4
  388. package/lib/generated/services/signer.js +4 -4
  389. package/lib/generated/services/signin.js +4 -4
  390. package/lib/generated/services/simspaceweaver.js +3 -3
  391. package/lib/generated/services/sms-voice.d.ts +2 -0
  392. package/lib/generated/services/sms-voice.js +11 -6
  393. package/lib/generated/services/sms.js +1 -1
  394. package/lib/generated/services/snow-device-management.js +4 -4
  395. package/lib/generated/services/snowball.js +2 -2
  396. package/lib/generated/services/sns.js +4 -4
  397. package/lib/generated/services/social-messaging.d.ts +6 -0
  398. package/lib/generated/services/social-messaging.js +11 -5
  399. package/lib/generated/services/sqlworkbench.js +3 -3
  400. package/lib/generated/services/sqs.js +4 -4
  401. package/lib/generated/services/ssm-contacts.js +4 -4
  402. package/lib/generated/services/ssm-guiconnect.js +2 -2
  403. package/lib/generated/services/ssm-incidents.js +4 -4
  404. package/lib/generated/services/ssm-quicksetup.js +4 -4
  405. package/lib/generated/services/ssm-sap.js +4 -4
  406. package/lib/generated/services/ssm.js +4 -4
  407. package/lib/generated/services/ssmmessages.js +2 -2
  408. package/lib/generated/services/sso-directory.js +1 -1
  409. package/lib/generated/services/sso-oauth.js +3 -3
  410. package/lib/generated/services/sso.js +4 -4
  411. package/lib/generated/services/states.js +4 -4
  412. package/lib/generated/services/storagegateway.js +4 -4
  413. package/lib/generated/services/sts.js +4 -4
  414. package/lib/generated/services/support-console.js +1 -1
  415. package/lib/generated/services/support.js +2 -2
  416. package/lib/generated/services/supportapp.js +2 -2
  417. package/lib/generated/services/supportauthz.js +4 -4
  418. package/lib/generated/services/supportplans.js +1 -1
  419. package/lib/generated/services/sustainability.js +2 -2
  420. package/lib/generated/services/swf.js +4 -4
  421. package/lib/generated/services/synthetics.js +4 -4
  422. package/lib/generated/services/tag.js +2 -2
  423. package/lib/generated/services/tax.js +2 -2
  424. package/lib/generated/services/textract.js +4 -4
  425. package/lib/generated/services/thinclient.js +4 -4
  426. package/lib/generated/services/timestream-influxdb.js +4 -4
  427. package/lib/generated/services/timestream.js +4 -4
  428. package/lib/generated/services/tiros.js +1 -1
  429. package/lib/generated/services/tnb.js +4 -4
  430. package/lib/generated/services/transcribe.js +4 -4
  431. package/lib/generated/services/transfer.js +4 -4
  432. package/lib/generated/services/transform-custom.js +3 -3
  433. package/lib/generated/services/transform.js +3 -3
  434. package/lib/generated/services/translate.js +4 -4
  435. package/lib/generated/services/trustedadvisor.js +3 -3
  436. package/lib/generated/services/ts.js +3 -3
  437. package/lib/generated/services/user-subscriptions.js +2 -2
  438. package/lib/generated/services/uxc.js +2 -2
  439. package/lib/generated/services/vendor-insights.js +3 -3
  440. package/lib/generated/services/verified-access.js +1 -1
  441. package/lib/generated/services/verifiedpermissions.js +4 -4
  442. package/lib/generated/services/voiceid.js +4 -4
  443. package/lib/generated/services/vpc-lattice-svcs.js +3 -3
  444. package/lib/generated/services/vpc-lattice.js +4 -4
  445. package/lib/generated/services/vpce.js +2 -2
  446. package/lib/generated/services/waf-regional.js +4 -4
  447. package/lib/generated/services/waf.js +4 -4
  448. package/lib/generated/services/wafv2.js +4 -4
  449. package/lib/generated/services/wam.js +1 -1
  450. package/lib/generated/services/wellarchitected.js +4 -4
  451. package/lib/generated/services/wickr.js +4 -4
  452. package/lib/generated/services/wisdom.js +4 -4
  453. package/lib/generated/services/workdocs.js +3 -3
  454. package/lib/generated/services/worklink.js +3 -3
  455. package/lib/generated/services/workmail.js +4 -4
  456. package/lib/generated/services/workmailmessageflow.js +3 -3
  457. package/lib/generated/services/workspaces-instances.js +4 -4
  458. package/lib/generated/services/workspaces-web.js +4 -4
  459. package/lib/generated/services/workspaces.js +4 -4
  460. package/lib/generated/services/xray.js +4 -4
  461. package/package.json +1 -1
@@ -16,7 +16,7 @@ class GrafanaActions {
16
16
  }
17
17
  exports.GrafanaActions = GrafanaActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- GrafanaActions[_a] = { fqn: "@cdk_utils/iam.grafana.GrafanaActions", version: "1.25.0" };
19
+ GrafanaActions[_a] = { fqn: "@cdk_utils/iam.grafana.GrafanaActions", version: "1.26.0" };
20
20
  /** The IAM service prefix. */
21
21
  GrafanaActions.SERVICE_PREFIX = "grafana";
22
22
  /** [Write] grafana:AssociateLicense */
@@ -145,7 +145,7 @@ class GrafanaResources {
145
145
  }
146
146
  exports.GrafanaResources = GrafanaResources;
147
147
  _b = JSII_RTTI_SYMBOL_1;
148
- GrafanaResources[_b] = { fqn: "@cdk_utils/iam.grafana.GrafanaResources", version: "1.25.0" };
148
+ GrafanaResources[_b] = { fqn: "@cdk_utils/iam.grafana.GrafanaResources", version: "1.26.0" };
149
149
  /**
150
150
  * API operation to required IAM actions mapping for grafana.
151
151
  */
@@ -153,7 +153,7 @@ class GrafanaOperations {
153
153
  }
154
154
  exports.GrafanaOperations = GrafanaOperations;
155
155
  _c = JSII_RTTI_SYMBOL_1;
156
- GrafanaOperations[_c] = { fqn: "@cdk_utils/iam.grafana.GrafanaOperations", version: "1.25.0" };
156
+ GrafanaOperations[_c] = { fqn: "@cdk_utils/iam.grafana.GrafanaOperations", version: "1.26.0" };
157
157
  /** IAM actions required for the AssociateLicense API call. */
158
158
  GrafanaOperations.AssociateLicense = ["grafana:AssociateLicense"];
159
159
  /** IAM actions required for the CreateWorkspace API call. */
@@ -267,7 +267,7 @@ class GrafanaConditions {
267
267
  }
268
268
  exports.GrafanaConditions = GrafanaConditions;
269
269
  _d = JSII_RTTI_SYMBOL_1;
270
- GrafanaConditions[_d] = { fqn: "@cdk_utils/iam.grafana.GrafanaConditions", version: "1.25.0" };
270
+ GrafanaConditions[_d] = { fqn: "@cdk_utils/iam.grafana.GrafanaConditions", version: "1.26.0" };
271
271
  /** Condition keys applicable to the CreateWorkspace action. */
272
272
  GrafanaConditions.CreateWorkspaceConditionKeys = [
273
273
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class GreengrassActions {
16
16
  }
17
17
  exports.GreengrassActions = GreengrassActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- GreengrassActions[_a] = { fqn: "@cdk_utils/iam.greengrass.GreengrassActions", version: "1.25.0" };
19
+ GreengrassActions[_a] = { fqn: "@cdk_utils/iam.greengrass.GreengrassActions", version: "1.26.0" };
20
20
  /** The IAM service prefix. */
21
21
  GreengrassActions.SERVICE_PREFIX = "greengrass";
22
22
  /** [Write] greengrass:AssociateRoleToGroup */
@@ -1120,7 +1120,7 @@ class GreengrassResources {
1120
1120
  }
1121
1121
  exports.GreengrassResources = GreengrassResources;
1122
1122
  _b = JSII_RTTI_SYMBOL_1;
1123
- GreengrassResources[_b] = { fqn: "@cdk_utils/iam.greengrass.GreengrassResources", version: "1.25.0" };
1123
+ GreengrassResources[_b] = { fqn: "@cdk_utils/iam.greengrass.GreengrassResources", version: "1.26.0" };
1124
1124
  /**
1125
1125
  * API operation to required IAM actions mapping for greengrass.
1126
1126
  */
@@ -1128,7 +1128,7 @@ class GreengrassOperations {
1128
1128
  }
1129
1129
  exports.GreengrassOperations = GreengrassOperations;
1130
1130
  _c = JSII_RTTI_SYMBOL_1;
1131
- GreengrassOperations[_c] = { fqn: "@cdk_utils/iam.greengrass.GreengrassOperations", version: "1.25.0" };
1131
+ GreengrassOperations[_c] = { fqn: "@cdk_utils/iam.greengrass.GreengrassOperations", version: "1.26.0" };
1132
1132
  /** IAM actions required for the AssociateRoleToGroup API call. */
1133
1133
  GreengrassOperations.AssociateRoleToGroup = [
1134
1134
  "greengrass:AssociateRoleToGroup",
@@ -1575,7 +1575,7 @@ class GreengrassConditions {
1575
1575
  }
1576
1576
  exports.GreengrassConditions = GreengrassConditions;
1577
1577
  _d = JSII_RTTI_SYMBOL_1;
1578
- GreengrassConditions[_d] = { fqn: "@cdk_utils/iam.greengrass.GreengrassConditions", version: "1.25.0" };
1578
+ GreengrassConditions[_d] = { fqn: "@cdk_utils/iam.greengrass.GreengrassConditions", version: "1.26.0" };
1579
1579
  /** Condition keys applicable to the CreateComponentVersion action. */
1580
1580
  GreengrassConditions.CreateComponentVersionConditionKeys = [
1581
1581
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class GroundStationActions {
16
16
  }
17
17
  exports.GroundStationActions = GroundStationActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- GroundStationActions[_a] = { fqn: "@cdk_utils/iam.groundstation.GroundStationActions", version: "1.25.0" };
19
+ GroundStationActions[_a] = { fqn: "@cdk_utils/iam.groundstation.GroundStationActions", version: "1.26.0" };
20
20
  /** The IAM service prefix. */
21
21
  GroundStationActions.SERVICE_PREFIX = "groundstation";
22
22
  /** [Write] groundstation:CancelContact */
@@ -393,7 +393,7 @@ class GroundStationResources {
393
393
  }
394
394
  exports.GroundStationResources = GroundStationResources;
395
395
  _b = JSII_RTTI_SYMBOL_1;
396
- GroundStationResources[_b] = { fqn: "@cdk_utils/iam.groundstation.GroundStationResources", version: "1.25.0" };
396
+ GroundStationResources[_b] = { fqn: "@cdk_utils/iam.groundstation.GroundStationResources", version: "1.26.0" };
397
397
  /**
398
398
  * API operation to required IAM actions mapping for groundstation.
399
399
  */
@@ -401,7 +401,7 @@ class GroundStationOperations {
401
401
  }
402
402
  exports.GroundStationOperations = GroundStationOperations;
403
403
  _c = JSII_RTTI_SYMBOL_1;
404
- GroundStationOperations[_c] = { fqn: "@cdk_utils/iam.groundstation.GroundStationOperations", version: "1.25.0" };
404
+ GroundStationOperations[_c] = { fqn: "@cdk_utils/iam.groundstation.GroundStationOperations", version: "1.26.0" };
405
405
  /** IAM actions required for the CancelContact API call. */
406
406
  GroundStationOperations.CancelContact = ["groundstation:CancelContact"];
407
407
  /** IAM actions required for the CreateConfig API call. */
@@ -511,7 +511,10 @@ GroundStationOperations.ListTagsForResource = [
511
511
  "groundstation:ListTagsForResource",
512
512
  ];
513
513
  /** IAM actions required for the RegisterAgent API call. */
514
- GroundStationOperations.RegisterAgent = ["groundstation:RegisterAgent"];
514
+ GroundStationOperations.RegisterAgent = [
515
+ "groundstation:RegisterAgent",
516
+ "groundstation:TagResource",
517
+ ];
515
518
  /** IAM actions required for the ReserveContact API call. */
516
519
  GroundStationOperations.ReserveContact = [
517
520
  "groundstation:ReserveContact",
@@ -618,7 +621,7 @@ class GroundStationConditions {
618
621
  }
619
622
  exports.GroundStationConditions = GroundStationConditions;
620
623
  _d = JSII_RTTI_SYMBOL_1;
621
- GroundStationConditions[_d] = { fqn: "@cdk_utils/iam.groundstation.GroundStationConditions", version: "1.25.0" };
624
+ GroundStationConditions[_d] = { fqn: "@cdk_utils/iam.groundstation.GroundStationConditions", version: "1.26.0" };
622
625
  /** Condition keys applicable to the CreateConfig action. */
623
626
  GroundStationConditions.CreateConfigConditionKeys = [
624
627
  "aws:RequestTag/${TagKey}",
@@ -680,4 +683,4 @@ GroundStationConditions.GROUND_STATION_ID = "groundstation:GroundStationId";
680
683
  GroundStationConditions.MISSION_PROFILE_ID = "groundstation:MissionProfileId";
681
684
  /** Condition key: groundstation:SatelliteId (String) */
682
685
  GroundStationConditions.SATELLITE_ID = "groundstation:SatelliteId";
683
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdW5kc3RhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvc2VydmljZXMvZ3JvdW5kc3RhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdGQUFnRjtBQUNoRiw2Q0FBNkM7QUFDN0MsMERBQTBEO0FBQzFELG9EQUFvRDtBQUNwRCxvREFBb0Q7QUFDcEQsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ0gsTUFBYSxvQkFBb0I7O0FBQWpDLG9EQW9KQzs7O0FBbkpBLDhCQUE4QjtBQUNkLG1DQUFjLEdBQUcsZUFBZSxDQUFDO0FBRWpELDBDQUEwQztBQUMxQixrQ0FBYSxHQUFHLDZCQUE2QixDQUFDO0FBQzlELHlDQUF5QztBQUN6QixpQ0FBWSxHQUFHLDRCQUE0QixDQUFDO0FBQzVELHdEQUF3RDtBQUN4QyxnREFBMkIsR0FDMUMsMkNBQTJDLENBQUM7QUFDN0MsMERBQTBEO0FBQzFDLGtEQUE2QixHQUM1Qyw2Q0FBNkMsQ0FBQztBQUMvQyw0Q0FBNEM7QUFDNUIsb0NBQWUsR0FBRywrQkFBK0IsQ0FBQztBQUNsRSxpREFBaUQ7QUFDakMseUNBQW9CLEdBQUcsb0NBQW9DLENBQUM7QUFDNUUseUNBQXlDO0FBQ3pCLGlDQUFZLEdBQUcsNEJBQTRCLENBQUM7QUFDNUQsd0RBQXdEO0FBQ3hDLGdEQUEyQixHQUMxQywyQ0FBMkMsQ0FBQztBQUM3Qyw0Q0FBNEM7QUFDNUIsb0NBQWUsR0FBRywrQkFBK0IsQ0FBQztBQUNsRSxpREFBaUQ7QUFDakMseUNBQW9CLEdBQUcsb0NBQW9DLENBQUM7QUFDNUUsMkNBQTJDO0FBQzNCLG9DQUFlLEdBQUcsK0JBQStCLENBQUM7QUFDbEUsa0RBQWtEO0FBQ2xDLDJDQUFzQixHQUNyQyxzQ0FBc0MsQ0FBQztBQUN4Qyw2Q0FBNkM7QUFDN0Isc0NBQWlCLEdBQUcsaUNBQWlDLENBQUM7QUFDdEUsaURBQWlEO0FBQ2pDLGdEQUEyQixHQUMxQyxxQ0FB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UyxHQUFHLHdCQUF3QixDQUFDO0FBQ3JELHVEQUF1RDtBQUN2QyxtQ0FBVyxHQUFHLDBCQUEwQixDQUFDO0FBQ3pELHNEQUFzRDtBQUN0QyxrQ0FBVSxHQUFHLHlCQUF5QixDQUFDO0FBQ3ZELG9FQUFvRTtBQUNwRCxrREFBMEIsR0FDekMsdUNBQXVDLENBQUM7QUFDekMsd0RBQXdEO0FBQ3hDLG9DQUFZLEdBQUcsMkJBQTJCLENBQUM7QUFDM0QsNERBQTREO0FBQzVDLHlDQUFpQixHQUFHLCtCQUErQixDQUFDO0FBQ3BFLDZEQUE2RDtBQUM3QywwQ0FBa0IsR0FBRyxnQ0FBZ0MsQ0FBQztBQUN0RSx3REFBd0Q7QUFDeEMsb0NBQVksR0FBRywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL2dyb3VuZHN0YXRpb24uanNvblxuLy8gUnVuIGBucHggcHJvamVuIGdlbmVyYXRlLWNvbnN0YW50c2AgdG8gcmVnZW5lcmF0ZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJQU0gYWN0aW9uIGNvbnN0YW50cyBmb3IgdGhlIGdyb3VuZHN0YXRpb24gc2VydmljZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEdyb3VuZFN0YXRpb25BY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwiZ3JvdW5kc3RhdGlvblwiO1xuXG5cdC8qKiBbV3JpdGVdIGdyb3VuZHN0YXRpb246Q2FuY2VsQ29udGFjdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsQ29udGFjdCA9IFwiZ3JvdW5kc3RhdGlvbjpDYW5jZWxDb250YWN0XCI7XG5cdC8qKiBbV3JpdGVdIGdyb3VuZHN0YXRpb246Q3JlYXRlQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb25maWcgPSBcImdyb3VuZHN0YXRpb246Q3JlYXRlQ29uZmlnXCI7XG5cdC8qKiBbV3JpdGVdIGdyb3VuZHN0YXRpb246Q3JlYXRlRGF0YWZsb3dFbmRwb2ludEdyb3VwICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhZmxvd0VuZHBvaW50R3JvdXAgPVxuXHRcdFwiZ3JvdW5kc3RhdGlvbjpDcmVhdGVEYXRhZmxvd0VuZHBvaW50R3JvdXBcIjtcblx0LyoqIFtXcml0ZV0gZ3JvdW5kc3RhdGlvbjpDcmVhdGVEYXRhZmxvd0VuZHBvaW50R3JvdXBWMiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YWZsb3dFbmRwb2ludEdyb3VwVjIgPVxuXHRcdFwiZ3JvdW5kc3RhdGlvbjpDcmVhdGVEYXRhZmxvd0VuZHBvaW50R3JvdXBWMlwiO1xuXHQvKiogW1dyaXRlXSBncm91bmRzdGF0aW9uOkNyZWF0ZUVwaGVtZXJpcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXBoZW1lcmlzID0gXCJncm91bmRzdGF0aW9uOkNyZWF0ZUVwaGVtZXJpc1wiO1xuXHQvKiogW1dyaXRlXSBncm91bmRzdGF0aW9uOkNyZWF0ZU1pc3Npb25Qcm9maWxlICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVNaXNzaW9uUHJvZmlsZSA9IFwiZ3JvdW5kc3RhdGlvbjpDcmVhdGVNaXNzaW9uUHJvZmlsZVwiO1xuXHQvKiogW1dyaXRlXSBncm91bmRzdGF0aW9uOkRlbGV0ZUNvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ29uZmlnID0gXCJncm91bmRzdGF0aW9uOkRlbGV0ZUNvbmZpZ1wiO1xuXHQvKiogW1dyaXRlXSBncm91bmRzdGF0aW9uOkRlbGV0ZURhdGFmbG93RW5kcG9pbnRHcm91cCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRGF0YWZsb3dFbmRwb2ludEdyb3VwID1cblx0XHRcImdyb3VuZHN0YXRpb246RGVsZXRlRGF0YWZsb3dFbmRwb2ludEdyb3VwXCI7XG5cdC8qKiBbV3JpdGVdIGdyb3VuZHN0YXRpb246RGVsZXRlRXBoZW1lcmlzICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFcGhlbWVyaXMgPSBcImdyb3VuZHN0YXRpb246RGVsZXRlRXBoZW1lcmlzXCI7XG5cdC8qKiBbV3JpdGVdIGdyb3VuZHN0YXRpb246RGVsZXRlTWlzc2lvblByb2ZpbGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZU1pc3Npb25Qcm9maWxlID0gXCJncm91bmRzdGF0aW9uOkRlbGV0ZU1pc3Npb25Qcm9maWxlXCI7XG5cdC8qKiBbUmVhZF0gZ3JvdW5kc3RhdGlvbjpEZXNjcmliZUNvbnRhY3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ29udGFjdCA9IFwiZ3JvdW5kc3RhdGlvbjpEZXNjcmliZUNvbnRhY3RcIjtcblx0LyoqIFtSZWFkXSBncm91bmRzdGF0aW9uOkRlc2NyaWJlQ29udGFjdFZlcnNpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ29udGFjdFZlcnNpb24gPVxuXHRcdFwiZ3JvdW5kc3RhdGlvbjpEZXNjcmliZUNvbnRhY3RWZXJzaW9uXCI7XG5cdC8qKiBbUmVhZF0gZ3JvdW5kc3RhdGlvbjpEZXNjcmliZUVwaGVtZXJpcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVFcGhlbWVyaXMgPSBcImdyb3VuZHN0YXRpb246RGVzY3JpYmVFcGhlbWVyaXNcIjtcblx0LyoqIFtSZWFkXSBncm91bmRzdGF0aW9uOkdldEFnZW50Q29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdlbnRDb25maWd1cmF0aW9uID1cblx0XHRcImdyb3VuZHN0YXRpb246R2V0QWdlbnRDb25maWd1cmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZ3JvdW5kc3RhdGlvbjpHZXRBZ2VudFRhc2tSZXNwb25zZVVybCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdlbnRUYXNrUmVzcG9uc2VVcmwgPVxuXHRcdFwiZ3JvdW5kc3RhdGlvbjpHZXRBZ2VudFRhc2tSZXNwb25zZVVybFwiO1xuXHQvKiogW1JlYWRdIGdyb3VuZHN0YXRpb246R2V0Q29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRDb25maWcgPSBcImdyb3VuZHN0YXRpb246R2V0Q29uZmlnXCI7XG5cdC8qKiBbUmVhZF0gZ3JvdW5kc3RhdGlvbjpHZXREYXRhZmxvd0VuZHBvaW50R3JvdXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldERhdGFmbG93RW5kcG9pbnRHcm91cCA9XG5cdFx0XCJncm91bmRzdGF0aW9uOkdldERhdGFmbG93RW5kcG9pbnRHcm91cFwiO1xuXHQvKiogW1JlYWRdIGdyb3VuZHN0YXRpb246R2V0TWludXRlVXNhZ2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE1pbnV0ZVVzYWdlID0gXCJncm91bmRzdGF0aW9uOkdldE1pbnV0ZVVzYWdlXCI7XG5cdC8qKiBbUmVhZF0gZ3JvdW5kc3RhdGlvbjpHZXRNaXNzaW9uUHJvZmlsZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TWlzc2lvblByb2ZpbGUgPSBcImdyb3VuZHN0YXRpb246R2V0TWlzc2lvblByb2ZpbGVcIjtcblx0LyoqIFtSZWFkXSBncm91bmRzdGF0aW9uOkdldFNhdGVsbGl0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0U2F0ZWxsaXRlID0gXCJncm91bmRzdGF0aW9uOkdldFNhdGVsbGl0ZVwiO1xuXHQvKiogW0xpc3RdIGdyb3VuZHN0YXRpb246TGlzdEFudGVubmFzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QW50ZW5uYXMgPSBcImdyb3VuZHN0YXRpb246TGlzdEFudGVubmFzXCI7XG5cdC8qKiBbTGlzdF0gZ3JvdW5kc3RhdGlvbjpMaXN0Q29uZmlncyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbmZpZ3MgPSBcImdyb3VuZHN0YXRpb246TGlzdENvbmZpZ3NcIjtcblx0LyoqIFtMaXN0XSBncm91bmRzdGF0aW9uOkxpc3RDb250YWN0VmVyc2lvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb250YWN0VmVyc2lvbnMgPSBcImdyb3VuZHN0YXRpb246TGlzdENvbnRhY3RWZXJzaW9uc1wiO1xuXHQvKiogW0xpc3RdIGdyb3VuZHN0YXRpb246TGlzdENvbnRhY3RzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29udGFjdHMgPSBcImdyb3VuZHN0YXRpb246TGlzdENvbnRhY3RzXCI7XG5cdC8qKiBbTGlzdF0gZ3JvdW5kc3RhdGlvbjpMaXN0RGF0YWZsb3dFbmRwb2ludEdyb3VwcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFmbG93RW5kcG9pbnRHcm91cHMgPVxuXHRcdFwiZ3JvdW5kc3RhdGlvbjpMaXN0RGF0YWZsb3dFbmRwb2ludEdyb3Vwc1wiO1xuXHQvKiogW0xpc3RdIGdyb3VuZHN0YXRpb246TGlzdEVwaGVtZXJpZGVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXBoZW1lcmlkZXMgPSBcImdyb3VuZHN0YXRpb246TGlzdEVwaGVtZXJpZGVzXCI7XG5cdC8qKiBbTGlzdF0gZ3JvdW5kc3RhdGlvbjpMaXN0R3JvdW5kU3RhdGlvblJlc2VydmF0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEdyb3VuZFN0YXRpb25SZXNlcnZhdGlvbnMgPVxuXHRcdFwiZ3JvdW5kc3RhdGlvbjpMaXN0R3JvdW5kU3RhdGlvblJlc2VydmF0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGdyb3VuZHN0YXRpb246TGlzdEdyb3VuZFN0YXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0R3JvdW5kU3RhdGlvbnMgPSBcImdyb3VuZHN0YXRpb246TGlzdEdyb3VuZFN0YXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gZ3JvdW5kc3RhdGlvbjpMaXN0TWlzc2lvblByb2ZpbGVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TWlzc2lvblByb2ZpbGVzID0gXCJncm91bmRzdGF0aW9uOkxpc3RNaXNzaW9uUHJvZmlsZXNcIjtcblx0LyoqIFtMaXN0XSBncm91bmRzdGF0aW9uOkxpc3RTYXRlbGxpdGVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U2F0ZWxsaXRlcyA9IFwiZ3JvdW5kc3RhdGlvbjpMaXN0U2F0ZWxsaXRlc1wiO1xuXHQvKiogW1JlYWRdIGdyb3VuZHN0YXRpb246TGlzdFRhZ3NGb3JSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZSA9IFwiZ3JvdW5kc3RhdGlvbjpMaXN0VGFnc0ZvclJlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGdyb3VuZHN0YXRpb246UmVnaXN0ZXJBZ2VudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVnaXN0ZXJBZ2VudCA9IFwiZ3JvdW5kc3RhdGlvbjpSZWdpc3RlckFnZW50XCI7XG5cdC8qKiBbV3JpdGVdIGdyb3VuZHN0YXRpb246UmVzZXJ2ZUNvbnRhY3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlc2VydmVDb250YWN0ID0gXCJncm91bmRzdGF0aW9uOlJlc2VydmVDb250YWN0XCI7XG5cdC8qKiBbVGFnZ2luZ10gZ3JvdW5kc3RhdGlvbjpUYWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2UgPSBcImdyb3VuZHN0YXRpb246VGFnUmVzb3VyY2VcIjtcblx0LyoqIFtUYWdnaW5nXSBncm91bmRzdGF0aW9uOlVudGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2UgPSBcImdyb3VuZHN0YXRpb246VW50YWdSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBncm91bmRzdGF0aW9uOlVwZGF0ZUFnZW50U3RhdHVzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBZ2VudFN0YXR1cyA9IFwiZ3JvdW5kc3RhdGlvbjpVcGRhdGVBZ2VudFN0YXR1c1wiO1xuXHQvKiogW1dyaXRlXSBncm91bmRzdGF0aW9uOlVwZGF0ZUNvbmZpZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ29uZmlnID0gXCJncm91bmRzdGF0aW9uOlVwZGF0ZUNvbmZpZ1wiO1xuXHQvKiogW1dyaXRlXSBncm91bmRzdGF0aW9uOlVwZGF0ZUNvbnRhY3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNvbnRhY3QgPSBcImdyb3VuZHN0YXRpb246VXBkYXRlQ29udGFjdFwiO1xuXHQvKiogW1dyaXRlXSBncm91bmRzdGF0aW9uOlVwZGF0ZUVwaGVtZXJpcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRXBoZW1lcmlzID0gXCJncm91bmRzdGF0aW9uOlVwZGF0ZUVwaGVtZXJpc1wiO1xuXHQvKiogW1dyaXRlXSBncm91bmRzdGF0aW9uOlVwZGF0ZU1pc3Npb25Qcm9maWxlICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVNaXNzaW9uUHJvZmlsZSA9IFwiZ3JvdW5kc3RhdGlvbjpVcGRhdGVNaXNzaW9uUHJvZmlsZVwiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLkRlc2NyaWJlQ29udGFjdCxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5EZXNjcmliZUNvbnRhY3RWZXJzaW9uLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLkRlc2NyaWJlRXBoZW1lcmlzLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLmFjdGlvbkdldEFnZW50Q29uZmlndXJhdGlvbixcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5hY3Rpb25HZXRBZ2VudFRhc2tSZXNwb25zZVVybCxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5hY3Rpb25HZXRDb25maWcsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuYWN0aW9uR2V0RGF0YWZsb3dFbmRwb2ludEdyb3VwLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLmFjdGlvbkdldE1pbnV0ZVVzYWdlLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLmFjdGlvbkdldE1pc3Npb25Qcm9maWxlLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLmFjdGlvbkdldFNhdGVsbGl0ZSxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5MaXN0VGFnc0ZvclJlc291cmNlLFxuXHRdO1xuXHQvKiogQWxsIHdyaXRlLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLkNhbmNlbENvbnRhY3QsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuQ3JlYXRlQ29uZmlnLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLkNyZWF0ZURhdGFmbG93RW5kcG9pbnRHcm91cCxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5DcmVhdGVEYXRhZmxvd0VuZHBvaW50R3JvdXBWMixcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5DcmVhdGVFcGhlbWVyaXMsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuQ3JlYXRlTWlzc2lvblByb2ZpbGUsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuRGVsZXRlQ29uZmlnLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLkRlbGV0ZURhdGFmbG93RW5kcG9pbnRHcm91cCxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5EZWxldGVFcGhlbWVyaXMsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuRGVsZXRlTWlzc2lvblByb2ZpbGUsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuUmVnaXN0ZXJBZ2VudCxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5SZXNlcnZlQ29udGFjdCxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5VcGRhdGVBZ2VudFN0YXR1cyxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5VcGRhdGVDb25maWcsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuVXBkYXRlQ29udGFjdCxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5VcGRhdGVFcGhlbWVyaXMsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuVXBkYXRlTWlzc2lvblByb2ZpbGUsXG5cdF07XG5cdC8qKiBBbGwgbGlzdC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsTGlzdEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLkxpc3RBbnRlbm5hcyxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5MaXN0Q29uZmlncyxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5MaXN0Q29udGFjdFZlcnNpb25zLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLkxpc3RDb250YWN0cyxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5MaXN0RGF0YWZsb3dFbmRwb2ludEdyb3Vwcyxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5MaXN0RXBoZW1lcmlkZXMsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuTGlzdEdyb3VuZFN0YXRpb25SZXNlcnZhdGlvbnMsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuTGlzdEdyb3VuZFN0YXRpb25zLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLkxpc3RNaXNzaW9uUHJvZmlsZXMsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuTGlzdFNhdGVsbGl0ZXMsXG5cdF07XG5cdC8qKiBBbGwgcGVybWlzc2lvbi1tYW5hZ2VtZW50LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxQZXJtaXNzaW9uTWFuYWdlbWVudEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBBbGwgdGFnZ2luZy1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsVGFnZ2luZ0FjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBBZ2VudCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdW5kU3RhdGlvbkFnZW50QXJuUHJvcHMge1xuXHQvKiogVGhlIEFnZW50SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGFnZW50SWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBBZ2VudCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdW5kU3RhdGlvbkFnZW50QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBBZ2VudElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgYWdlbnRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgQ29uZmlnIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91bmRTdGF0aW9uQ29uZmlnQXJuUHJvcHMge1xuXHQvKiogVGhlIENvbmZpZ1R5cGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvbmZpZ1R5cGU6IHN0cmluZztcblx0LyoqIFRoZSBDb25maWdJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29uZmlnSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBDb25maWcgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VuZFN0YXRpb25Db25maWdBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENvbmZpZ1R5cGUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb25maWdUeXBlOiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29uZmlnSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb25maWdJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgQ29udGFjdCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdW5kU3RhdGlvbkNvbnRhY3RBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ29udGFjdElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb250YWN0SWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBDb250YWN0IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91bmRTdGF0aW9uQ29udGFjdEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29udGFjdElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY29udGFjdElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBEYXRhZmxvd0VuZHBvaW50R3JvdXAgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VuZFN0YXRpb25EYXRhZmxvd0VuZHBvaW50R3JvdXBBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgRGF0YWZsb3dFbmRwb2ludEdyb3VwSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRhdGFmbG93RW5kcG9pbnRHcm91cElkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgRGF0YWZsb3dFbmRwb2ludEdyb3VwIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91bmRTdGF0aW9uRGF0YWZsb3dFbmRwb2ludEdyb3VwQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBEYXRhZmxvd0VuZHBvaW50R3JvdXBJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRhdGFmbG93RW5kcG9pbnRHcm91cElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBFcGhlbWVyaXNJdGVtIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91bmRTdGF0aW9uRXBoZW1lcmlzSXRlbUFyblByb3BzIHtcblx0LyoqIFRoZSBFcGhlbWVyaXNJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZXBoZW1lcmlzSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBFcGhlbWVyaXNJdGVtIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91bmRTdGF0aW9uRXBoZW1lcmlzSXRlbUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgRXBoZW1lcmlzSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBlcGhlbWVyaXNJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgR3JvdW5kU3RhdGlvblJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91bmRTdGF0aW9uR3JvdW5kU3RhdGlvblJlc291cmNlQXJuUHJvcHMge1xuXHQvKiogVGhlIEdyb3VuZFN0YXRpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZ3JvdW5kU3RhdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgR3JvdW5kU3RhdGlvblJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91bmRTdGF0aW9uR3JvdW5kU3RhdGlvblJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBHcm91bmRTdGF0aW9uSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBncm91bmRTdGF0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIE1pc3Npb25Qcm9maWxlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91bmRTdGF0aW9uTWlzc2lvblByb2ZpbGVBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgTWlzc2lvblByb2ZpbGVJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbWlzc2lvblByb2ZpbGVJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIE1pc3Npb25Qcm9maWxlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91bmRTdGF0aW9uTWlzc2lvblByb2ZpbGVBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIE1pc3Npb25Qcm9maWxlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBtaXNzaW9uUHJvZmlsZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBTYXRlbGxpdGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VuZFN0YXRpb25TYXRlbGxpdGVBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU2F0ZWxsaXRlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHNhdGVsbGl0ZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgU2F0ZWxsaXRlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91bmRTdGF0aW9uU2F0ZWxsaXRlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBTYXRlbGxpdGVJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHNhdGVsbGl0ZUlkOiBzdHJpbmc7XG59XG5cbmNvbnN0IEFnZW50QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyb3VuZHN0YXRpb246KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTphZ2VudFxcLyg/PGFnZW50SWQ+W146Lz9dKykkLztcbmNvbnN0IENvbmZpZ0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpncm91bmRzdGF0aW9uOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y29uZmlnXFwvKD88Y29uZmlnVHlwZT5bXjovP10rKVxcLyg/PGNvbmZpZ0lkPlteOi8/XSspJC87XG5jb25zdCBDb250YWN0QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyb3VuZHN0YXRpb246KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjb250YWN0XFwvKD88Y29udGFjdElkPlteOi8/XSspJC87XG5jb25zdCBEYXRhZmxvd0VuZHBvaW50R3JvdXBBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JvdW5kc3RhdGlvbjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmRhdGFmbG93LWVuZHBvaW50LWdyb3VwXFwvKD88ZGF0YWZsb3dFbmRwb2ludEdyb3VwSWQ+W146Lz9dKykkLztcbmNvbnN0IEVwaGVtZXJpc0l0ZW1Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JvdW5kc3RhdGlvbjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmVwaGVtZXJpc1xcLyg/PGVwaGVtZXJpc0lkPlteOi8/XSspJC87XG5jb25zdCBHcm91bmRTdGF0aW9uUmVzb3VyY2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JvdW5kc3RhdGlvbjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmdyb3VuZHN0YXRpb246KD88Z3JvdW5kU3RhdGlvbklkPlteOi8/XSspJC87XG5jb25zdCBNaXNzaW9uUHJvZmlsZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpncm91bmRzdGF0aW9uOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6bWlzc2lvbi1wcm9maWxlXFwvKD88bWlzc2lvblByb2ZpbGVJZD5bXjovP10rKSQvO1xuY29uc3QgU2F0ZWxsaXRlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyb3VuZHN0YXRpb246KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpzYXRlbGxpdGVcXC8oPzxzYXRlbGxpdGVJZD5bXjovP10rKSQvO1xuXG4vKipcbiAqIEFSTiBidWlsZGVycywgdmFsaWRhdG9ycywgYW5kIHBhcnNlcnMgZm9yIGdyb3VuZHN0YXRpb24gcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY2xhc3MgR3JvdW5kU3RhdGlvblJlc291cmNlcyB7XG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgQWdlbnQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgYWdlbnQocHJvcHM6IEdyb3VuZFN0YXRpb25BZ2VudEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncm91bmRzdGF0aW9uOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmFnZW50LyR7cHJvcHMuYWdlbnRJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgQWdlbnQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEFnZW50QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEFnZW50QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIEFnZW50IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUFnZW50QXJuKGFybjogc3RyaW5nKTogR3JvdW5kU3RhdGlvbkFnZW50QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBBZ2VudEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBBZ2VudCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRhZ2VudElkOiBtYXRjaC5ncm91cHMhLmFnZW50SWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgQ29uZmlnIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNvbmZpZyhwcm9wczogR3JvdW5kU3RhdGlvbkNvbmZpZ0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncm91bmRzdGF0aW9uOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmNvbmZpZy8ke3Byb3BzLmNvbmZpZ1R5cGV9LyR7cHJvcHMuY29uZmlnSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIENvbmZpZyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ29uZmlnQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbmZpZ0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBDb25maWcgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ29uZmlnQXJuKGFybjogc3RyaW5nKTogR3JvdW5kU3RhdGlvbkNvbmZpZ0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ29uZmlnQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIENvbmZpZyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjb25maWdUeXBlOiBtYXRjaC5ncm91cHMhLmNvbmZpZ1R5cGUsXG5cdFx0XHRjb25maWdJZDogbWF0Y2guZ3JvdXBzIS5jb25maWdJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBDb250YWN0IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNvbnRhY3QocHJvcHM6IEdyb3VuZFN0YXRpb25Db250YWN0QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omdyb3VuZHN0YXRpb246JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06Y29udGFjdC8ke3Byb3BzLmNvbnRhY3RJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgQ29udGFjdCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQ29udGFjdEFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDb250YWN0QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIENvbnRhY3QgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQ29udGFjdEFybihhcm46IHN0cmluZyk6IEdyb3VuZFN0YXRpb25Db250YWN0QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDb250YWN0QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIENvbnRhY3QgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y29udGFjdElkOiBtYXRjaC5ncm91cHMhLmNvbnRhY3RJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBEYXRhZmxvd0VuZHBvaW50R3JvdXAgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZGF0YWZsb3dFbmRwb2ludEdyb3VwKFxuXHRcdHByb3BzOiBHcm91bmRTdGF0aW9uRGF0YWZsb3dFbmRwb2ludEdyb3VwQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JvdW5kc3RhdGlvbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpkYXRhZmxvdy1lbmRwb2ludC1ncm91cC8ke3Byb3BzLmRhdGFmbG93RW5kcG9pbnRHcm91cElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBEYXRhZmxvd0VuZHBvaW50R3JvdXAgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZERhdGFmbG93RW5kcG9pbnRHcm91cEFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBEYXRhZmxvd0VuZHBvaW50R3JvdXBBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgRGF0YWZsb3dFbmRwb2ludEdyb3VwIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZURhdGFmbG93RW5kcG9pbnRHcm91cEFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3JvdW5kU3RhdGlvbkRhdGFmbG93RW5kcG9pbnRHcm91cEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRGF0YWZsb3dFbmRwb2ludEdyb3VwQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIERhdGFmbG93RW5kcG9pbnRHcm91cCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRkYXRhZmxvd0VuZHBvaW50R3JvdXBJZDogbWF0Y2guZ3JvdXBzIS5kYXRhZmxvd0VuZHBvaW50R3JvdXBJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBFcGhlbWVyaXNJdGVtIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGVwaGVtZXJpc0l0ZW0ocHJvcHM6IEdyb3VuZFN0YXRpb25FcGhlbWVyaXNJdGVtQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omdyb3VuZHN0YXRpb246JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06ZXBoZW1lcmlzLyR7cHJvcHMuZXBoZW1lcmlzSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIEVwaGVtZXJpc0l0ZW0gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEVwaGVtZXJpc0l0ZW1Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRXBoZW1lcmlzSXRlbUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBFcGhlbWVyaXNJdGVtIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUVwaGVtZXJpc0l0ZW1Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEdyb3VuZFN0YXRpb25FcGhlbWVyaXNJdGVtQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBFcGhlbWVyaXNJdGVtQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIEVwaGVtZXJpc0l0ZW0gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0ZXBoZW1lcmlzSWQ6IG1hdGNoLmdyb3VwcyEuZXBoZW1lcmlzSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgR3JvdW5kU3RhdGlvblJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGdyb3VuZFN0YXRpb25SZXNvdXJjZShcblx0XHRwcm9wczogR3JvdW5kU3RhdGlvbkdyb3VuZFN0YXRpb25SZXNvdXJjZUFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omdyb3VuZHN0YXRpb246JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06Z3JvdW5kc3RhdGlvbjoke3Byb3BzLmdyb3VuZFN0YXRpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgR3JvdW5kU3RhdGlvblJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRHcm91bmRTdGF0aW9uUmVzb3VyY2VBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gR3JvdW5kU3RhdGlvblJlc291cmNlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIEdyb3VuZFN0YXRpb25SZXNvdXJjZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VHcm91bmRTdGF0aW9uUmVzb3VyY2VBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEdyb3VuZFN0YXRpb25Hcm91bmRTdGF0aW9uUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEdyb3VuZFN0YXRpb25SZXNvdXJjZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBHcm91bmRTdGF0aW9uUmVzb3VyY2UgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Z3JvdW5kU3RhdGlvbklkOiBtYXRjaC5ncm91cHMhLmdyb3VuZFN0YXRpb25JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBNaXNzaW9uUHJvZmlsZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBtaXNzaW9uUHJvZmlsZShwcm9wczogR3JvdW5kU3RhdGlvbk1pc3Npb25Qcm9maWxlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omdyb3VuZHN0YXRpb246JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06bWlzc2lvbi1wcm9maWxlLyR7cHJvcHMubWlzc2lvblByb2ZpbGVJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgTWlzc2lvblByb2ZpbGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZE1pc3Npb25Qcm9maWxlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIE1pc3Npb25Qcm9maWxlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIE1pc3Npb25Qcm9maWxlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZU1pc3Npb25Qcm9maWxlQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBHcm91bmRTdGF0aW9uTWlzc2lvblByb2ZpbGVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IE1pc3Npb25Qcm9maWxlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIE1pc3Npb25Qcm9maWxlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdG1pc3Npb25Qcm9maWxlSWQ6IG1hdGNoLmdyb3VwcyEubWlzc2lvblByb2ZpbGVJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBTYXRlbGxpdGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgc2F0ZWxsaXRlKHByb3BzOiBHcm91bmRTdGF0aW9uU2F0ZWxsaXRlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omdyb3VuZHN0YXRpb246JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06c2F0ZWxsaXRlLyR7cHJvcHMuc2F0ZWxsaXRlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFNhdGVsbGl0ZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkU2F0ZWxsaXRlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFNhdGVsbGl0ZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBTYXRlbGxpdGUgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlU2F0ZWxsaXRlQXJuKGFybjogc3RyaW5nKTogR3JvdW5kU3RhdGlvblNhdGVsbGl0ZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gU2F0ZWxsaXRlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFNhdGVsbGl0ZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRzYXRlbGxpdGVJZDogbWF0Y2guZ3JvdXBzIS5zYXRlbGxpdGVJZCxcblx0XHR9O1xuXHR9XG59XG5cbi8qKlxuICogQVBJIG9wZXJhdGlvbiB0byByZXF1aXJlZCBJQU0gYWN0aW9ucyBtYXBwaW5nIGZvciBncm91bmRzdGF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgR3JvdW5kU3RhdGlvbk9wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDYW5jZWxDb250YWN0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsQ29udGFjdDogc3RyaW5nW10gPSBbXCJncm91bmRzdGF0aW9uOkNhbmNlbENvbnRhY3RcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUNvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJncm91bmRzdGF0aW9uOkNyZWF0ZUNvbmZpZ1wiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJncm91bmRzdGF0aW9uOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZURhdGFmbG93RW5kcG9pbnRHcm91cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFmbG93RW5kcG9pbnRHcm91cDogc3RyaW5nW10gPSBbXG5cdFx0XCJncm91bmRzdGF0aW9uOkNyZWF0ZURhdGFmbG93RW5kcG9pbnRHcm91cFwiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJncm91bmRzdGF0aW9uOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZURhdGFmbG93RW5kcG9pbnRHcm91cFYyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YWZsb3dFbmRwb2ludEdyb3VwVjI6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JvdW5kc3RhdGlvbjpDcmVhdGVEYXRhZmxvd0VuZHBvaW50R3JvdXBWMlwiLFxuXHRcdFwiZ3JvdW5kc3RhdGlvbjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVFcGhlbWVyaXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFcGhlbWVyaXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JvdW5kc3RhdGlvbjpDcmVhdGVFcGhlbWVyaXNcIixcblx0XHRcImdyb3VuZHN0YXRpb246VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlTWlzc2lvblByb2ZpbGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVNaXNzaW9uUHJvZmlsZTogc3RyaW5nW10gPSBbXG5cdFx0XCJncm91bmRzdGF0aW9uOkNyZWF0ZU1pc3Npb25Qcm9maWxlXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImdyb3VuZHN0YXRpb246VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlQ29uZmlnOiBzdHJpbmdbXSA9IFtcImdyb3VuZHN0YXRpb246RGVsZXRlQ29uZmlnXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVEYXRhZmxvd0VuZHBvaW50R3JvdXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVEYXRhZmxvd0VuZHBvaW50R3JvdXA6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JvdW5kc3RhdGlvbjpEZWxldGVEYXRhZmxvd0VuZHBvaW50R3JvdXBcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlRXBoZW1lcmlzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlRXBoZW1lcmlzOiBzdHJpbmdbXSA9IFtcImdyb3VuZHN0YXRpb246RGVsZXRlRXBoZW1lcmlzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVNaXNzaW9uUHJvZmlsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZU1pc3Npb25Qcm9maWxlOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyb3VuZHN0YXRpb246RGVsZXRlTWlzc2lvblByb2ZpbGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVDb250YWN0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDb250YWN0OiBzdHJpbmdbXSA9IFtcImdyb3VuZHN0YXRpb246RGVzY3JpYmVDb250YWN0XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUNvbnRhY3RWZXJzaW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDb250YWN0VmVyc2lvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJncm91bmRzdGF0aW9uOkRlc2NyaWJlQ29udGFjdFZlcnNpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVFcGhlbWVyaXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUVwaGVtZXJpczogc3RyaW5nW10gPSBbXG5cdFx0XCJncm91bmRzdGF0aW9uOkRlc2NyaWJlRXBoZW1lcmlzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEFnZW50Q29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0QWdlbnRDb25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyb3VuZHN0YXRpb246R2V0QWdlbnRDb25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEFnZW50VGFza1Jlc3BvbnNlVXJsIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRBZ2VudFRhc2tSZXNwb25zZVVybDogc3RyaW5nW10gPSBbXG5cdFx0XCJncm91bmRzdGF0aW9uOkdldEFnZW50VGFza1Jlc3BvbnNlVXJsXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldENvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0Q29uZmlnOiBzdHJpbmdbXSA9IFtcImdyb3VuZHN0YXRpb246R2V0Q29uZmlnXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXREYXRhZmxvd0VuZHBvaW50R3JvdXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldERhdGFmbG93RW5kcG9pbnRHcm91cDogc3RyaW5nW10gPSBbXG5cdFx0XCJncm91bmRzdGF0aW9uOkdldERhdGFmbG93RW5kcG9pbnRHcm91cFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRNaW51dGVVc2FnZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TWludXRlVXNhZ2U6IHN0cmluZ1tdID0gW1wiZ3JvdW5kc3RhdGlvbjpHZXRNaW51dGVVc2FnZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0TWlzc2lvblByb2ZpbGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldE1pc3Npb25Qcm9maWxlOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyb3VuZHN0YXRpb246R2V0TWlzc2lvblByb2ZpbGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0U2F0ZWxsaXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRTYXRlbGxpdGU6IHN0cmluZ1tdID0gW1wiZ3JvdW5kc3RhdGlvbjpHZXRTYXRlbGxpdGVcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBbnRlbm5hcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBbnRlbm5hczogc3RyaW5nW10gPSBbXCJncm91bmRzdGF0aW9uOkxpc3RBbnRlbm5hc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENvbmZpZ3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29uZmlnczogc3RyaW5nW10gPSBbXCJncm91bmRzdGF0aW9uOkxpc3RDb25maWdzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q29udGFjdFZlcnNpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbnRhY3RWZXJzaW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJncm91bmRzdGF0aW9uOkxpc3RDb250YWN0VmVyc2lvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdENvbnRhY3RzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbnRhY3RzOiBzdHJpbmdbXSA9IFtcImdyb3VuZHN0YXRpb246TGlzdENvbnRhY3RzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RGF0YWZsb3dFbmRwb2ludEdyb3VwcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3REYXRhZmxvd0VuZHBvaW50R3JvdXBzOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyb3VuZHN0YXRpb246TGlzdERhdGFmbG93RW5kcG9pbnRHcm91cHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEVwaGVtZXJpZGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEVwaGVtZXJpZGVzOiBzdHJpbmdbXSA9IFtcImdyb3VuZHN0YXRpb246TGlzdEVwaGVtZXJpZGVzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0R3JvdW5kU3RhdGlvblJlc2VydmF0aW9ucyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RHcm91bmRTdGF0aW9uUmVzZXJ2YXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyb3VuZHN0YXRpb246TGlzdEdyb3VuZFN0YXRpb25SZXNlcnZhdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEdyb3VuZFN0YXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEdyb3VuZFN0YXRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyb3VuZHN0YXRpb246TGlzdEdyb3VuZFN0YXRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RNaXNzaW9uUHJvZmlsZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TWlzc2lvblByb2ZpbGVzOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyb3VuZHN0YXRpb246TGlzdE1pc3Npb25Qcm9maWxlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0U2F0ZWxsaXRlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTYXRlbGxpdGVzOiBzdHJpbmdbXSA9IFtcImdyb3VuZHN0YXRpb246TGlzdFNhdGVsbGl0ZXNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyb3VuZHN0YXRpb246TGlzdFRhZ3NGb3JSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZWdpc3RlckFnZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVnaXN0ZXJBZ2VudDogc3RyaW5nW10gPSBbXCJncm91bmRzdGF0aW9uOlJlZ2lzdGVyQWdlbnRcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlc2VydmVDb250YWN0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVzZXJ2ZUNvbnRhY3Q6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JvdW5kc3RhdGlvbjpSZXNlcnZlQ29udGFjdFwiLFxuXHRcdFwiZ3JvdW5kc3RhdGlvbjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImdyb3VuZHN0YXRpb246VGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVudGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImdyb3VuZHN0YXRpb246VW50YWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlQWdlbnRTdGF0dXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBZ2VudFN0YXR1czogc3RyaW5nW10gPSBbXG5cdFx0XCJncm91bmRzdGF0aW9uOlVwZGF0ZUFnZW50U3RhdHVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNvbmZpZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUNvbmZpZzogc3RyaW5nW10gPSBbXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImdyb3VuZHN0YXRpb246VXBkYXRlQ29uZmlnXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUNvbnRhY3QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDb250YWN0OiBzdHJpbmdbXSA9IFtcImdyb3VuZHN0YXRpb246VXBkYXRlQ29udGFjdFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRXBoZW1lcmlzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRXBoZW1lcmlzOiBzdHJpbmdbXSA9IFtcImdyb3VuZHN0YXRpb246VXBkYXRlRXBoZW1lcmlzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVNaXNzaW9uUHJvZmlsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU1pc3Npb25Qcm9maWxlOiBzdHJpbmdbXSA9IFtcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiZ3JvdW5kc3RhdGlvbjpVcGRhdGVNaXNzaW9uUHJvZmlsZVwiLFxuXHRdO1xufVxuXG4vKipcbiAqIENvbmRpdGlvbiBrZXkgY29uc3RhbnRzIGFuZCBidWlsZGVycyBmb3IgZ3JvdW5kc3RhdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEdyb3VuZFN0YXRpb25Db25kaXRpb25zIHtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUNvbmZpZyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb25maWdDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZURhdGFmbG93RW5kcG9pbnRHcm91cCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhZmxvd0VuZHBvaW50R3JvdXBDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZURhdGFmbG93RW5kcG9pbnRHcm91cFYyIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFmbG93RW5kcG9pbnRHcm91cFYyQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVFcGhlbWVyaXMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXBoZW1lcmlzQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVNaXNzaW9uUHJvZmlsZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVNaXNzaW9uUHJvZmlsZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgUmVzZXJ2ZUNvbnRhY3QgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVzZXJ2ZUNvbnRhY3RDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVbnRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcImF3czpUYWdLZXlzXCJdO1xuXG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVFVRVNUX1RBRyA9IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVTT1VSQ0VfVEFHID0gXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3M6VGFnS2V5cyAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19UQUdfS0VZUyA9IFwiYXdzOlRhZ0tleXNcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGdyb3VuZHN0YXRpb246QWdlbnRJZCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQUdFTlRfSUQgPSBcImdyb3VuZHN0YXRpb246QWdlbnRJZFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZ3JvdW5kc3RhdGlvbjpDb25maWdJZCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ09ORklHX0lEID0gXCJncm91bmRzdGF0aW9uOkNvbmZpZ0lkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBncm91bmRzdGF0aW9uOkNvbmZpZ1R5cGUgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IENPTkZJR19UWVBFID0gXCJncm91bmRzdGF0aW9uOkNvbmZpZ1R5cGVcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGdyb3VuZHN0YXRpb246Q29udGFjdElkIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBDT05UQUNUX0lEID0gXCJncm91bmRzdGF0aW9uOkNvbnRhY3RJZFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZ3JvdW5kc3RhdGlvbjpEYXRhZmxvd0VuZHBvaW50R3JvdXBJZCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgREFUQUZMT1dfRU5EUE9JTlRfR1JPVVBfSUQgPVxuXHRcdFwiZ3JvdW5kc3RhdGlvbjpEYXRhZmxvd0VuZHBvaW50R3JvdXBJZFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZ3JvdW5kc3RhdGlvbjpFcGhlbWVyaXNJZCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRVBIRU1FUklTX0lEID0gXCJncm91bmRzdGF0aW9uOkVwaGVtZXJpc0lkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBncm91bmRzdGF0aW9uOkdyb3VuZFN0YXRpb25JZCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgR1JPVU5EX1NUQVRJT05fSUQgPSBcImdyb3VuZHN0YXRpb246R3JvdW5kU3RhdGlvbklkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBncm91bmRzdGF0aW9uOk1pc3Npb25Qcm9maWxlSWQgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IE1JU1NJT05fUFJPRklMRV9JRCA9IFwiZ3JvdW5kc3RhdGlvbjpNaXNzaW9uUHJvZmlsZUlkXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBncm91bmRzdGF0aW9uOlNhdGVsbGl0ZUlkIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBTQVRFTExJVEVfSUQgPSBcImdyb3VuZHN0YXRpb246U2F0ZWxsaXRlSWRcIjtcblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXF1ZXN0VGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9YC5cblx0ICovXG5cdHN0YXRpYyByZXNvdXJjZVRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpUYWdLZXlzYC5cblx0ICovXG5cdHN0YXRpYyB0YWdLZXlzKHZhbHVlczogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4geyBcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjogeyBcImF3czpUYWdLZXlzXCI6IHZhbHVlcyB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZ3JvdW5kc3RhdGlvbjpBZ2VudElkYC5cblx0ICovXG5cdHN0YXRpYyBhZ2VudElkKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiZ3JvdW5kc3RhdGlvbjpBZ2VudElkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBncm91bmRzdGF0aW9uOkNvbmZpZ0lkYC5cblx0ICovXG5cdHN0YXRpYyBjb25maWdJZCh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImdyb3VuZHN0YXRpb246Q29uZmlnSWRcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGdyb3VuZHN0YXRpb246Q29uZmlnVHlwZWAuXG5cdCAqL1xuXHRzdGF0aWMgY29uZmlnVHlwZSh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImdyb3VuZHN0YXRpb246Q29uZmlnVHlwZVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZ3JvdW5kc3RhdGlvbjpDb250YWN0SWRgLlxuXHQgKi9cblx0c3RhdGljIGNvbnRhY3RJZCh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImdyb3VuZHN0YXRpb246Q29udGFjdElkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBncm91bmRzdGF0aW9uOkRhdGFmbG93RW5kcG9pbnRHcm91cElkYC5cblx0ICovXG5cdHN0YXRpYyBkYXRhZmxvd0VuZHBvaW50R3JvdXBJZChcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiZ3JvdW5kc3RhdGlvbjpEYXRhZmxvd0VuZHBvaW50R3JvdXBJZFwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZ3JvdW5kc3RhdGlvbjpFcGhlbWVyaXNJZGAuXG5cdCAqL1xuXHRzdGF0aWMgZXBoZW1lcmlzSWQodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJncm91bmRzdGF0aW9uOkVwaGVtZXJpc0lkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBncm91bmRzdGF0aW9uOkdyb3VuZFN0YXRpb25JZGAuXG5cdCAqL1xuXHRzdGF0aWMgZ3JvdW5kU3RhdGlvbklkKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJncm91bmRzdGF0aW9uOkdyb3VuZFN0YXRpb25JZFwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZ3JvdW5kc3RhdGlvbjpNaXNzaW9uUHJvZmlsZUlkYC5cblx0ICovXG5cdHN0YXRpYyBtaXNzaW9uUHJvZmlsZUlkKFxuXHRcdHZhbHVlOiBzdHJpbmcsXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJncm91bmRzdGF0aW9uOk1pc3Npb25Qcm9maWxlSWRcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGdyb3VuZHN0YXRpb246U2F0ZWxsaXRlSWRgLlxuXHQgKi9cblx0c3RhdGljIHNhdGVsbGl0ZUlkKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiZ3JvdW5kc3RhdGlvbjpTYXRlbGxpdGVJZFwiOiB2YWx1ZSB9IH07XG5cdH1cbn1cbiJdfQ==
686
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdW5kc3RhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvc2VydmljZXMvZ3JvdW5kc3RhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdGQUFnRjtBQUNoRiw2Q0FBNkM7QUFDN0MsMERBQTBEO0FBQzFELG9EQUFvRDtBQUNwRCxvREFBb0Q7QUFDcEQsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ0gsTUFBYSxvQkFBb0I7O0FBQWpDLG9EQW9KQzs7O0FBbkpBLDhCQUE4QjtBQUNkLG1DQUFjLEdBQUcsZUFBZSxDQUFDO0FBRWpELDBDQUEwQztBQUMxQixrQ0FBYSxHQUFHLDZCQUE2QixDQUFDO0FBQzlELHlDQUF5QztBQUN6QixpQ0FBWSxHQUFHLDRCQUE0QixDQUFDO0FBQzVELHdEQUF3RDtBQUN4QyxnREFBMkIsR0FDMUMsMkNBQTJDLENBQUM7QUFDN0MsMERBQTBEO0FBQzFDLGtEQUE2QixHQUM1Qyw2Q0FBNkMsQ0FBQztBQUMvQyw0Q0FBNEM7QUFDNUIsb0NBQWUsR0FBRywrQkFBK0IsQ0FBQztBQUNsRSxpREFBaUQ7QUFDakMseUNBQW9CLEdBQUcsb0NBQW9DLENBQUM7QUFDNUUseUNBQXlDO0FBQ3pCLGlDQUFZLEdBQUcsNEJBQTRCLENBQUM7QUFDNUQsd0RBQXdEO0FBQ3hDLGdEQUEyQixHQUMxQywyQ0FBMkMsQ0FBQztBQUM3Qyw0Q0FBNEM7QUFDNUIsb0NBQWUsR0FBRywrQkFBK0IsQ0FBQztBQUNsRSxpREFBaUQ7QUFDakMseUNBQW9CLEdBQUcsb0NBQW9DLENBQUM7QUFDNUUsMkNBQTJDO0FBQzNCLG9DQUFlLEdBQUcsK0JBQStCLENBQUM7QUFDbEUsa0RBQWtEO0FBQ2xDLDJDQUFzQixHQUNyQyxzQ0FBc0MsQ0FBQztBQUN4Qyw2Q0FBNkM7QUFDN0Isc0NBQWlCLEdBQUcsaUNBQWlDLENBQUM7QUFDdEUsaURBQWlEO0FBQ2pDLGdEQUEyQixHQUMxQyxxQ0FB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QXFEO0FBQ3JDLGlDQUFTLEdBQUcsd0JBQXdCLENBQUM7QUFDckQsdURBQXVEO0FBQ3ZDLG1DQUFXLEdBQUcsMEJBQTBCLENBQUM7QUFDekQsc0RBQXNEO0FBQ3RDLGtDQUFVLEdBQUcseUJBQXlCLENBQUM7QUFDdkQsb0VBQW9FO0FBQ3BELGtEQUEwQixHQUN6Qyx1Q0FBdUMsQ0FBQztBQUN6Qyx3REFBd0Q7QUFDeEMsb0NBQVksR0FBRywyQkFBMkIsQ0FBQztBQUMzRCw0REFBNEQ7QUFDNUMseUNBQWlCLEdBQUcsK0JBQStCLENBQUM7QUFDcEUsNkRBQTZEO0FBQzdDLDBDQUFrQixHQUFHLGdDQUFnQyxDQUFDO0FBQ3RFLHdEQUF3RDtBQUN4QyxvQ0FBWSxHQUFHLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFVVE8tR0VORVJBVEVEIEZJTEUg4oCUIERPIE5PVCBFRElUIE1BTlVBTExZXG4vLyBHZW5lcmF0ZWQgZnJvbSBBV1MgU2VydmljZSBBdXRob3JpemF0aW9uIFJlZmVyZW5jZSBkYXRhXG4vLyBTb3VyY2U6IGRhdGEvc2VydmljZS1yZWZlcmVuY2UvZ3JvdW5kc3RhdGlvbi5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUgZ3JvdW5kc3RhdGlvbiBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgR3JvdW5kU3RhdGlvbkFjdGlvbnMge1xuXHQvKiogVGhlIElBTSBzZXJ2aWNlIHByZWZpeC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNFUlZJQ0VfUFJFRklYID0gXCJncm91bmRzdGF0aW9uXCI7XG5cblx0LyoqIFtXcml0ZV0gZ3JvdW5kc3RhdGlvbjpDYW5jZWxDb250YWN0ICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxDb250YWN0ID0gXCJncm91bmRzdGF0aW9uOkNhbmNlbENvbnRhY3RcIjtcblx0LyoqIFtXcml0ZV0gZ3JvdW5kc3RhdGlvbjpDcmVhdGVDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbmZpZyA9IFwiZ3JvdW5kc3RhdGlvbjpDcmVhdGVDb25maWdcIjtcblx0LyoqIFtXcml0ZV0gZ3JvdW5kc3RhdGlvbjpDcmVhdGVEYXRhZmxvd0VuZHBvaW50R3JvdXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZURhdGFmbG93RW5kcG9pbnRHcm91cCA9XG5cdFx0XCJncm91bmRzdGF0aW9uOkNyZWF0ZURhdGFmbG93RW5kcG9pbnRHcm91cFwiO1xuXHQvKiogW1dyaXRlXSBncm91bmRzdGF0aW9uOkNyZWF0ZURhdGFmbG93RW5kcG9pbnRHcm91cFYyICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhZmxvd0VuZHBvaW50R3JvdXBWMiA9XG5cdFx0XCJncm91bmRzdGF0aW9uOkNyZWF0ZURhdGFmbG93RW5kcG9pbnRHcm91cFYyXCI7XG5cdC8qKiBbV3JpdGVdIGdyb3VuZHN0YXRpb246Q3JlYXRlRXBoZW1lcmlzICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFcGhlbWVyaXMgPSBcImdyb3VuZHN0YXRpb246Q3JlYXRlRXBoZW1lcmlzXCI7XG5cdC8qKiBbV3JpdGVdIGdyb3VuZHN0YXRpb246Q3JlYXRlTWlzc2lvblByb2ZpbGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU1pc3Npb25Qcm9maWxlID0gXCJncm91bmRzdGF0aW9uOkNyZWF0ZU1pc3Npb25Qcm9maWxlXCI7XG5cdC8qKiBbV3JpdGVdIGdyb3VuZHN0YXRpb246RGVsZXRlQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb25maWcgPSBcImdyb3VuZHN0YXRpb246RGVsZXRlQ29uZmlnXCI7XG5cdC8qKiBbV3JpdGVdIGdyb3VuZHN0YXRpb246RGVsZXRlRGF0YWZsb3dFbmRwb2ludEdyb3VwICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVEYXRhZmxvd0VuZHBvaW50R3JvdXAgPVxuXHRcdFwiZ3JvdW5kc3RhdGlvbjpEZWxldGVEYXRhZmxvd0VuZHBvaW50R3JvdXBcIjtcblx0LyoqIFtXcml0ZV0gZ3JvdW5kc3RhdGlvbjpEZWxldGVFcGhlbWVyaXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUVwaGVtZXJpcyA9IFwiZ3JvdW5kc3RhdGlvbjpEZWxldGVFcGhlbWVyaXNcIjtcblx0LyoqIFtXcml0ZV0gZ3JvdW5kc3RhdGlvbjpEZWxldGVNaXNzaW9uUHJvZmlsZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTWlzc2lvblByb2ZpbGUgPSBcImdyb3VuZHN0YXRpb246RGVsZXRlTWlzc2lvblByb2ZpbGVcIjtcblx0LyoqIFtSZWFkXSBncm91bmRzdGF0aW9uOkRlc2NyaWJlQ29udGFjdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDb250YWN0ID0gXCJncm91bmRzdGF0aW9uOkRlc2NyaWJlQ29udGFjdFwiO1xuXHQvKiogW1JlYWRdIGdyb3VuZHN0YXRpb246RGVzY3JpYmVDb250YWN0VmVyc2lvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDb250YWN0VmVyc2lvbiA9XG5cdFx0XCJncm91bmRzdGF0aW9uOkRlc2NyaWJlQ29udGFjdFZlcnNpb25cIjtcblx0LyoqIFtSZWFkXSBncm91bmRzdGF0aW9uOkRlc2NyaWJlRXBoZW1lcmlzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUVwaGVtZXJpcyA9IFwiZ3JvdW5kc3RhdGlvbjpEZXNjcmliZUVwaGVtZXJpc1wiO1xuXHQvKiogW1JlYWRdIGdyb3VuZHN0YXRpb246R2V0QWdlbnRDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ2VudENvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZ3JvdW5kc3RhdGlvbjpHZXRBZ2VudENvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBncm91bmRzdGF0aW9uOkdldEFnZW50VGFza1Jlc3BvbnNlVXJsICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ2VudFRhc2tSZXNwb25zZVVybCA9XG5cdFx0XCJncm91bmRzdGF0aW9uOkdldEFnZW50VGFza1Jlc3BvbnNlVXJsXCI7XG5cdC8qKiBbUmVhZF0gZ3JvdW5kc3RhdGlvbjpHZXRDb25maWcgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENvbmZpZyA9IFwiZ3JvdW5kc3RhdGlvbjpHZXRDb25maWdcIjtcblx0LyoqIFtSZWFkXSBncm91bmRzdGF0aW9uOkdldERhdGFmbG93RW5kcG9pbnRHcm91cCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RGF0YWZsb3dFbmRwb2ludEdyb3VwID1cblx0XHRcImdyb3VuZHN0YXRpb246R2V0RGF0YWZsb3dFbmRwb2ludEdyb3VwXCI7XG5cdC8qKiBbUmVhZF0gZ3JvdW5kc3RhdGlvbjpHZXRNaW51dGVVc2FnZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TWludXRlVXNhZ2UgPSBcImdyb3VuZHN0YXRpb246R2V0TWludXRlVXNhZ2VcIjtcblx0LyoqIFtSZWFkXSBncm91bmRzdGF0aW9uOkdldE1pc3Npb25Qcm9maWxlICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRNaXNzaW9uUHJvZmlsZSA9IFwiZ3JvdW5kc3RhdGlvbjpHZXRNaXNzaW9uUHJvZmlsZVwiO1xuXHQvKiogW1JlYWRdIGdyb3VuZHN0YXRpb246R2V0U2F0ZWxsaXRlICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRTYXRlbGxpdGUgPSBcImdyb3VuZHN0YXRpb246R2V0U2F0ZWxsaXRlXCI7XG5cdC8qKiBbTGlzdF0gZ3JvdW5kc3RhdGlvbjpMaXN0QW50ZW5uYXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBbnRlbm5hcyA9IFwiZ3JvdW5kc3RhdGlvbjpMaXN0QW50ZW5uYXNcIjtcblx0LyoqIFtMaXN0XSBncm91bmRzdGF0aW9uOkxpc3RDb25maWdzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29uZmlncyA9IFwiZ3JvdW5kc3RhdGlvbjpMaXN0Q29uZmlnc1wiO1xuXHQvKiogW0xpc3RdIGdyb3VuZHN0YXRpb246TGlzdENvbnRhY3RWZXJzaW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENvbnRhY3RWZXJzaW9ucyA9IFwiZ3JvdW5kc3RhdGlvbjpMaXN0Q29udGFjdFZlcnNpb25zXCI7XG5cdC8qKiBbTGlzdF0gZ3JvdW5kc3RhdGlvbjpMaXN0Q29udGFjdHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb250YWN0cyA9IFwiZ3JvdW5kc3RhdGlvbjpMaXN0Q29udGFjdHNcIjtcblx0LyoqIFtMaXN0XSBncm91bmRzdGF0aW9uOkxpc3REYXRhZmxvd0VuZHBvaW50R3JvdXBzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RGF0YWZsb3dFbmRwb2ludEdyb3VwcyA9XG5cdFx0XCJncm91bmRzdGF0aW9uOkxpc3REYXRhZmxvd0VuZHBvaW50R3JvdXBzXCI7XG5cdC8qKiBbTGlzdF0gZ3JvdW5kc3RhdGlvbjpMaXN0RXBoZW1lcmlkZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFcGhlbWVyaWRlcyA9IFwiZ3JvdW5kc3RhdGlvbjpMaXN0RXBoZW1lcmlkZXNcIjtcblx0LyoqIFtMaXN0XSBncm91bmRzdGF0aW9uOkxpc3RHcm91bmRTdGF0aW9uUmVzZXJ2YXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0R3JvdW5kU3RhdGlvblJlc2VydmF0aW9ucyA9XG5cdFx0XCJncm91bmRzdGF0aW9uOkxpc3RHcm91bmRTdGF0aW9uUmVzZXJ2YXRpb25zXCI7XG5cdC8qKiBbTGlzdF0gZ3JvdW5kc3RhdGlvbjpMaXN0R3JvdW5kU3RhdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RHcm91bmRTdGF0aW9ucyA9IFwiZ3JvdW5kc3RhdGlvbjpMaXN0R3JvdW5kU3RhdGlvbnNcIjtcblx0LyoqIFtMaXN0XSBncm91bmRzdGF0aW9uOkxpc3RNaXNzaW9uUHJvZmlsZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNaXNzaW9uUHJvZmlsZXMgPSBcImdyb3VuZHN0YXRpb246TGlzdE1pc3Npb25Qcm9maWxlc1wiO1xuXHQvKiogW0xpc3RdIGdyb3VuZHN0YXRpb246TGlzdFNhdGVsbGl0ZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTYXRlbGxpdGVzID0gXCJncm91bmRzdGF0aW9uOkxpc3RTYXRlbGxpdGVzXCI7XG5cdC8qKiBbUmVhZF0gZ3JvdW5kc3RhdGlvbjpMaXN0VGFnc0ZvclJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlID0gXCJncm91bmRzdGF0aW9uOkxpc3RUYWdzRm9yUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gZ3JvdW5kc3RhdGlvbjpSZWdpc3RlckFnZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBSZWdpc3RlckFnZW50ID0gXCJncm91bmRzdGF0aW9uOlJlZ2lzdGVyQWdlbnRcIjtcblx0LyoqIFtXcml0ZV0gZ3JvdW5kc3RhdGlvbjpSZXNlcnZlQ29udGFjdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVzZXJ2ZUNvbnRhY3QgPSBcImdyb3VuZHN0YXRpb246UmVzZXJ2ZUNvbnRhY3RcIjtcblx0LyoqIFtUYWdnaW5nXSBncm91bmRzdGF0aW9uOlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwiZ3JvdW5kc3RhdGlvbjpUYWdSZXNvdXJjZVwiO1xuXHQvKiogW1RhZ2dpbmddIGdyb3VuZHN0YXRpb246VW50YWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZSA9IFwiZ3JvdW5kc3RhdGlvbjpVbnRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGdyb3VuZHN0YXRpb246VXBkYXRlQWdlbnRTdGF0dXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFnZW50U3RhdHVzID0gXCJncm91bmRzdGF0aW9uOlVwZGF0ZUFnZW50U3RhdHVzXCI7XG5cdC8qKiBbV3JpdGVdIGdyb3VuZHN0YXRpb246VXBkYXRlQ29uZmlnICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDb25maWcgPSBcImdyb3VuZHN0YXRpb246VXBkYXRlQ29uZmlnXCI7XG5cdC8qKiBbV3JpdGVdIGdyb3VuZHN0YXRpb246VXBkYXRlQ29udGFjdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ29udGFjdCA9IFwiZ3JvdW5kc3RhdGlvbjpVcGRhdGVDb250YWN0XCI7XG5cdC8qKiBbV3JpdGVdIGdyb3VuZHN0YXRpb246VXBkYXRlRXBoZW1lcmlzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVFcGhlbWVyaXMgPSBcImdyb3VuZHN0YXRpb246VXBkYXRlRXBoZW1lcmlzXCI7XG5cdC8qKiBbV3JpdGVdIGdyb3VuZHN0YXRpb246VXBkYXRlTWlzc2lvblByb2ZpbGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZU1pc3Npb25Qcm9maWxlID0gXCJncm91bmRzdGF0aW9uOlVwZGF0ZU1pc3Npb25Qcm9maWxlXCI7XG5cblx0LyoqIEFsbCByZWFkLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxSZWFkQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuRGVzY3JpYmVDb250YWN0LFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLkRlc2NyaWJlQ29udGFjdFZlcnNpb24sXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuRGVzY3JpYmVFcGhlbWVyaXMsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuYWN0aW9uR2V0QWdlbnRDb25maWd1cmF0aW9uLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLmFjdGlvbkdldEFnZW50VGFza1Jlc3BvbnNlVXJsLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLmFjdGlvbkdldENvbmZpZyxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5hY3Rpb25HZXREYXRhZmxvd0VuZHBvaW50R3JvdXAsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuYWN0aW9uR2V0TWludXRlVXNhZ2UsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuYWN0aW9uR2V0TWlzc2lvblByb2ZpbGUsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuYWN0aW9uR2V0U2F0ZWxsaXRlLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdF07XG5cdC8qKiBBbGwgd3JpdGUtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFdyaXRlQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuQ2FuY2VsQ29udGFjdCxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5DcmVhdGVDb25maWcsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuQ3JlYXRlRGF0YWZsb3dFbmRwb2ludEdyb3VwLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLkNyZWF0ZURhdGFmbG93RW5kcG9pbnRHcm91cFYyLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLkNyZWF0ZUVwaGVtZXJpcyxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5DcmVhdGVNaXNzaW9uUHJvZmlsZSxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5EZWxldGVDb25maWcsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuRGVsZXRlRGF0YWZsb3dFbmRwb2ludEdyb3VwLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLkRlbGV0ZUVwaGVtZXJpcyxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5EZWxldGVNaXNzaW9uUHJvZmlsZSxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5SZWdpc3RlckFnZW50LFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLlJlc2VydmVDb250YWN0LFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLlVwZGF0ZUFnZW50U3RhdHVzLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLlVwZGF0ZUNvbmZpZyxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5VcGRhdGVDb250YWN0LFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLlVwZGF0ZUVwaGVtZXJpcyxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5VcGRhdGVNaXNzaW9uUHJvZmlsZSxcblx0XTtcblx0LyoqIEFsbCBsaXN0LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxMaXN0QWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuTGlzdEFudGVubmFzLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLkxpc3RDb25maWdzLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLkxpc3RDb250YWN0VmVyc2lvbnMsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuTGlzdENvbnRhY3RzLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLkxpc3REYXRhZmxvd0VuZHBvaW50R3JvdXBzLFxuXHRcdEdyb3VuZFN0YXRpb25BY3Rpb25zLkxpc3RFcGhlbWVyaWRlcyxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5MaXN0R3JvdW5kU3RhdGlvblJlc2VydmF0aW9ucyxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5MaXN0R3JvdW5kU3RhdGlvbnMsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuTGlzdE1pc3Npb25Qcm9maWxlcyxcblx0XHRHcm91bmRTdGF0aW9uQWN0aW9ucy5MaXN0U2F0ZWxsaXRlcyxcblx0XTtcblx0LyoqIEFsbCBwZXJtaXNzaW9uLW1hbmFnZW1lbnQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFBlcm1pc3Npb25NYW5hZ2VtZW50QWN0aW9uczogc3RyaW5nW10gPSBbXTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuVGFnUmVzb3VyY2UsXG5cdFx0R3JvdW5kU3RhdGlvbkFjdGlvbnMuVW50YWdSZXNvdXJjZSxcblx0XTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIEFnZW50IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91bmRTdGF0aW9uQWdlbnRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQWdlbnRJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgYWdlbnRJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIEFnZW50IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91bmRTdGF0aW9uQWdlbnRBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEFnZW50SWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBhZ2VudElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBDb25maWcgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VuZFN0YXRpb25Db25maWdBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ29uZmlnVHlwZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY29uZmlnVHlwZTogc3RyaW5nO1xuXHQvKiogVGhlIENvbmZpZ0lkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjb25maWdJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIENvbmZpZyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdW5kU3RhdGlvbkNvbmZpZ0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ29uZmlnVHlwZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbmZpZ1R5cGU6IHN0cmluZztcblx0LyoqIFRoZSBDb25maWdJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNvbmZpZ0lkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBDb250YWN0IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91bmRTdGF0aW9uQ29udGFjdEFyblByb3BzIHtcblx0LyoqIFRoZSBDb250YWN0SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNvbnRhY3RJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIENvbnRhY3QgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VuZFN0YXRpb25Db250YWN0QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDb250YWN0SWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjb250YWN0SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIERhdGFmbG93RW5kcG9pbnRHcm91cCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdW5kU3RhdGlvbkRhdGFmbG93RW5kcG9pbnRHcm91cEFyblByb3BzIHtcblx0LyoqIFRoZSBEYXRhZmxvd0VuZHBvaW50R3JvdXBJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZGF0YWZsb3dFbmRwb2ludEdyb3VwSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBEYXRhZmxvd0VuZHBvaW50R3JvdXAgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VuZFN0YXRpb25EYXRhZmxvd0VuZHBvaW50R3JvdXBBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIERhdGFmbG93RW5kcG9pbnRHcm91cElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGF0YWZsb3dFbmRwb2ludEdyb3VwSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIEVwaGVtZXJpc0l0ZW0gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VuZFN0YXRpb25FcGhlbWVyaXNJdGVtQXJuUHJvcHMge1xuXHQvKiogVGhlIEVwaGVtZXJpc0lkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBlcGhlbWVyaXNJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIEVwaGVtZXJpc0l0ZW0gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VuZFN0YXRpb25FcGhlbWVyaXNJdGVtQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBFcGhlbWVyaXNJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGVwaGVtZXJpc0lkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBHcm91bmRTdGF0aW9uUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VuZFN0YXRpb25Hcm91bmRTdGF0aW9uUmVzb3VyY2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgR3JvdW5kU3RhdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBncm91bmRTdGF0aW9uSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBHcm91bmRTdGF0aW9uUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VuZFN0YXRpb25Hcm91bmRTdGF0aW9uUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEdyb3VuZFN0YXRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGdyb3VuZFN0YXRpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgTWlzc2lvblByb2ZpbGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VuZFN0YXRpb25NaXNzaW9uUHJvZmlsZUFyblByb3BzIHtcblx0LyoqIFRoZSBNaXNzaW9uUHJvZmlsZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBtaXNzaW9uUHJvZmlsZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgTWlzc2lvblByb2ZpbGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VuZFN0YXRpb25NaXNzaW9uUHJvZmlsZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgTWlzc2lvblByb2ZpbGVJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IG1pc3Npb25Qcm9maWxlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIFNhdGVsbGl0ZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JvdW5kU3RhdGlvblNhdGVsbGl0ZUFyblByb3BzIHtcblx0LyoqIFRoZSBTYXRlbGxpdGVJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc2F0ZWxsaXRlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBTYXRlbGxpdGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VuZFN0YXRpb25TYXRlbGxpdGVBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFNhdGVsbGl0ZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc2F0ZWxsaXRlSWQ6IHN0cmluZztcbn1cblxuY29uc3QgQWdlbnRBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JvdW5kc3RhdGlvbjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmFnZW50XFwvKD88YWdlbnRJZD5bXjovP10rKSQvO1xuY29uc3QgQ29uZmlnQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyb3VuZHN0YXRpb246KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjb25maWdcXC8oPzxjb25maWdUeXBlPlteOi8/XSspXFwvKD88Y29uZmlnSWQ+W146Lz9dKykkLztcbmNvbnN0IENvbnRhY3RBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JvdW5kc3RhdGlvbjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmNvbnRhY3RcXC8oPzxjb250YWN0SWQ+W146Lz9dKykkLztcbmNvbnN0IERhdGFmbG93RW5kcG9pbnRHcm91cEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpncm91bmRzdGF0aW9uOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZGF0YWZsb3ctZW5kcG9pbnQtZ3JvdXBcXC8oPzxkYXRhZmxvd0VuZHBvaW50R3JvdXBJZD5bXjovP10rKSQvO1xuY29uc3QgRXBoZW1lcmlzSXRlbUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpncm91bmRzdGF0aW9uOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6ZXBoZW1lcmlzXFwvKD88ZXBoZW1lcmlzSWQ+W146Lz9dKykkLztcbmNvbnN0IEdyb3VuZFN0YXRpb25SZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpncm91bmRzdGF0aW9uOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Z3JvdW5kc3RhdGlvbjooPzxncm91bmRTdGF0aW9uSWQ+W146Lz9dKykkLztcbmNvbnN0IE1pc3Npb25Qcm9maWxlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmdyb3VuZHN0YXRpb246KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTptaXNzaW9uLXByb2ZpbGVcXC8oPzxtaXNzaW9uUHJvZmlsZUlkPlteOi8/XSspJC87XG5jb25zdCBTYXRlbGxpdGVBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6Z3JvdW5kc3RhdGlvbjooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnNhdGVsbGl0ZVxcLyg/PHNhdGVsbGl0ZUlkPlteOi8/XSspJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3IgZ3JvdW5kc3RhdGlvbiByZXNvdXJjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBHcm91bmRTdGF0aW9uUmVzb3VyY2VzIHtcblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBBZ2VudCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBhZ2VudChwcm9wczogR3JvdW5kU3RhdGlvbkFnZW50QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omdyb3VuZHN0YXRpb246JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06YWdlbnQvJHtwcm9wcy5hZ2VudElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBBZ2VudCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQWdlbnRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQWdlbnRBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgQWdlbnQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQWdlbnRBcm4oYXJuOiBzdHJpbmcpOiBHcm91bmRTdGF0aW9uQWdlbnRBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEFnZW50QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIEFnZW50IEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGFnZW50SWQ6IG1hdGNoLmdyb3VwcyEuYWdlbnRJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBDb25maWcgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY29uZmlnKHByb3BzOiBHcm91bmRTdGF0aW9uQ29uZmlnQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9Omdyb3VuZHN0YXRpb246JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06Y29uZmlnLyR7cHJvcHMuY29uZmlnVHlwZX0vJHtwcm9wcy5jb25maWdJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgQ29uZmlnIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDb25maWdBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ29uZmlnQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIENvbmZpZyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDb25maWdBcm4oYXJuOiBzdHJpbmcpOiBHcm91bmRTdGF0aW9uQ29uZmlnQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDb25maWdBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgQ29uZmlnIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNvbmZpZ1R5cGU6IG1hdGNoLmdyb3VwcyEuY29uZmlnVHlwZSxcblx0XHRcdGNvbmZpZ0lkOiBtYXRjaC5ncm91cHMhLmNvbmZpZ0lkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIENvbnRhY3QgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY29udGFjdChwcm9wczogR3JvdW5kU3RhdGlvbkNvbnRhY3RBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JvdW5kc3RhdGlvbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjb250YWN0LyR7cHJvcHMuY29udGFjdElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBDb250YWN0IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDb250YWN0QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIENvbnRhY3RBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgQ29udGFjdCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDb250YWN0QXJuKGFybjogc3RyaW5nKTogR3JvdW5kU3RhdGlvbkNvbnRhY3RBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IENvbnRhY3RBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgQ29udGFjdCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjb250YWN0SWQ6IG1hdGNoLmdyb3VwcyEuY29udGFjdElkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIERhdGFmbG93RW5kcG9pbnRHcm91cCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBkYXRhZmxvd0VuZHBvaW50R3JvdXAoXG5cdFx0cHJvcHM6IEdyb3VuZFN0YXRpb25EYXRhZmxvd0VuZHBvaW50R3JvdXBBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpncm91bmRzdGF0aW9uOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmRhdGFmbG93LWVuZHBvaW50LWdyb3VwLyR7cHJvcHMuZGF0YWZsb3dFbmRwb2ludEdyb3VwSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIERhdGFmbG93RW5kcG9pbnRHcm91cCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRGF0YWZsb3dFbmRwb2ludEdyb3VwQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERhdGFmbG93RW5kcG9pbnRHcm91cEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBEYXRhZmxvd0VuZHBvaW50R3JvdXAgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRGF0YWZsb3dFbmRwb2ludEdyb3VwQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBHcm91bmRTdGF0aW9uRGF0YWZsb3dFbmRwb2ludEdyb3VwQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEYXRhZmxvd0VuZHBvaW50R3JvdXBBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgRGF0YWZsb3dFbmRwb2ludEdyb3VwIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGRhdGFmbG93RW5kcG9pbnRHcm91cElkOiBtYXRjaC5ncm91cHMhLmRhdGFmbG93RW5kcG9pbnRHcm91cElkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIEVwaGVtZXJpc0l0ZW0gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZXBoZW1lcmlzSXRlbShwcm9wczogR3JvdW5kU3RhdGlvbkVwaGVtZXJpc0l0ZW1Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JvdW5kc3RhdGlvbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTplcGhlbWVyaXMvJHtwcm9wcy5lcGhlbWVyaXNJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgRXBoZW1lcmlzSXRlbSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRXBoZW1lcmlzSXRlbUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBFcGhlbWVyaXNJdGVtQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIEVwaGVtZXJpc0l0ZW0gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRXBoZW1lcmlzSXRlbUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3JvdW5kU3RhdGlvbkVwaGVtZXJpc0l0ZW1Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEVwaGVtZXJpc0l0ZW1Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgRXBoZW1lcmlzSXRlbSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRlcGhlbWVyaXNJZDogbWF0Y2guZ3JvdXBzIS5lcGhlbWVyaXNJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBHcm91bmRTdGF0aW9uUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZ3JvdW5kU3RhdGlvblJlc291cmNlKFxuXHRcdHByb3BzOiBHcm91bmRTdGF0aW9uR3JvdW5kU3RhdGlvblJlc291cmNlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JvdW5kc3RhdGlvbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpncm91bmRzdGF0aW9uOiR7cHJvcHMuZ3JvdW5kU3RhdGlvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBHcm91bmRTdGF0aW9uUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEdyb3VuZFN0YXRpb25SZXNvdXJjZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBHcm91bmRTdGF0aW9uUmVzb3VyY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgR3JvdW5kU3RhdGlvblJlc291cmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUdyb3VuZFN0YXRpb25SZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogR3JvdW5kU3RhdGlvbkdyb3VuZFN0YXRpb25SZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gR3JvdW5kU3RhdGlvblJlc291cmNlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIEdyb3VuZFN0YXRpb25SZXNvdXJjZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRncm91bmRTdGF0aW9uSWQ6IG1hdGNoLmdyb3VwcyEuZ3JvdW5kU3RhdGlvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIE1pc3Npb25Qcm9maWxlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIG1pc3Npb25Qcm9maWxlKHByb3BzOiBHcm91bmRTdGF0aW9uTWlzc2lvblByb2ZpbGVBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JvdW5kc3RhdGlvbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTptaXNzaW9uLXByb2ZpbGUvJHtwcm9wcy5taXNzaW9uUHJvZmlsZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBNaXNzaW9uUHJvZmlsZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkTWlzc2lvblByb2ZpbGVBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTWlzc2lvblByb2ZpbGVBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgTWlzc2lvblByb2ZpbGUgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlTWlzc2lvblByb2ZpbGVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEdyb3VuZFN0YXRpb25NaXNzaW9uUHJvZmlsZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gTWlzc2lvblByb2ZpbGVBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgTWlzc2lvblByb2ZpbGUgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0bWlzc2lvblByb2ZpbGVJZDogbWF0Y2guZ3JvdXBzIS5taXNzaW9uUHJvZmlsZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIFNhdGVsbGl0ZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBzYXRlbGxpdGUocHJvcHM6IEdyb3VuZFN0YXRpb25TYXRlbGxpdGVBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06Z3JvdW5kc3RhdGlvbjoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpzYXRlbGxpdGUvJHtwcm9wcy5zYXRlbGxpdGVJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgU2F0ZWxsaXRlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRTYXRlbGxpdGVBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gU2F0ZWxsaXRlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIFNhdGVsbGl0ZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VTYXRlbGxpdGVBcm4oYXJuOiBzdHJpbmcpOiBHcm91bmRTdGF0aW9uU2F0ZWxsaXRlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBTYXRlbGxpdGVBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgU2F0ZWxsaXRlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHNhdGVsbGl0ZUlkOiBtYXRjaC5ncm91cHMhLnNhdGVsbGl0ZUlkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGdyb3VuZHN0YXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBHcm91bmRTdGF0aW9uT3BlcmF0aW9ucyB7XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENhbmNlbENvbnRhY3QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxDb250YWN0OiBzdHJpbmdbXSA9IFtcImdyb3VuZHN0YXRpb246Q2FuY2VsQ29udGFjdFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQ29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29uZmlnOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyb3VuZHN0YXRpb246Q3JlYXRlQ29uZmlnXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImdyb3VuZHN0YXRpb246VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRGF0YWZsb3dFbmRwb2ludEdyb3VwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YWZsb3dFbmRwb2ludEdyb3VwOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyb3VuZHN0YXRpb246Q3JlYXRlRGF0YWZsb3dFbmRwb2ludEdyb3VwXCIsXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImdyb3VuZHN0YXRpb246VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRGF0YWZsb3dFbmRwb2ludEdyb3VwVjIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhZmxvd0VuZHBvaW50R3JvdXBWMjogc3RyaW5nW10gPSBbXG5cdFx0XCJncm91bmRzdGF0aW9uOkNyZWF0ZURhdGFmbG93RW5kcG9pbnRHcm91cFYyXCIsXG5cdFx0XCJncm91bmRzdGF0aW9uOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUVwaGVtZXJpcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUVwaGVtZXJpczogc3RyaW5nW10gPSBbXG5cdFx0XCJncm91bmRzdGF0aW9uOkNyZWF0ZUVwaGVtZXJpc1wiLFxuXHRcdFwiZ3JvdW5kc3RhdGlvbjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVNaXNzaW9uUHJvZmlsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZU1pc3Npb25Qcm9maWxlOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyb3VuZHN0YXRpb246Q3JlYXRlTWlzc2lvblByb2ZpbGVcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiZ3JvdW5kc3RhdGlvbjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVDb25maWc6IHN0cmluZ1tdID0gW1wiZ3JvdW5kc3RhdGlvbjpEZWxldGVDb25maWdcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZURhdGFmbG93RW5kcG9pbnRHcm91cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZURhdGFmbG93RW5kcG9pbnRHcm91cDogc3RyaW5nW10gPSBbXG5cdFx0XCJncm91bmRzdGF0aW9uOkRlbGV0ZURhdGFmbG93RW5kcG9pbnRHcm91cFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVFcGhlbWVyaXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVFcGhlbWVyaXM6IHN0cmluZ1tdID0gW1wiZ3JvdW5kc3RhdGlvbjpEZWxldGVFcGhlbWVyaXNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZU1pc3Npb25Qcm9maWxlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTWlzc2lvblByb2ZpbGU6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JvdW5kc3RhdGlvbjpEZWxldGVNaXNzaW9uUHJvZmlsZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUNvbnRhY3QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUNvbnRhY3Q6IHN0cmluZ1tdID0gW1wiZ3JvdW5kc3RhdGlvbjpEZXNjcmliZUNvbnRhY3RcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQ29udGFjdFZlcnNpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUNvbnRhY3RWZXJzaW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyb3VuZHN0YXRpb246RGVzY3JpYmVDb250YWN0VmVyc2lvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUVwaGVtZXJpcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRXBoZW1lcmlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyb3VuZHN0YXRpb246RGVzY3JpYmVFcGhlbWVyaXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0QWdlbnRDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRBZ2VudENvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JvdW5kc3RhdGlvbjpHZXRBZ2VudENvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0QWdlbnRUYXNrUmVzcG9uc2VVcmwgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEFnZW50VGFza1Jlc3BvbnNlVXJsOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyb3VuZHN0YXRpb246R2V0QWdlbnRUYXNrUmVzcG9uc2VVcmxcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0Q29uZmlnIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRDb25maWc6IHN0cmluZ1tdID0gW1wiZ3JvdW5kc3RhdGlvbjpHZXRDb25maWdcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldERhdGFmbG93RW5kcG9pbnRHcm91cCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RGF0YWZsb3dFbmRwb2ludEdyb3VwOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyb3VuZHN0YXRpb246R2V0RGF0YWZsb3dFbmRwb2ludEdyb3VwXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldE1pbnV0ZVVzYWdlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRNaW51dGVVc2FnZTogc3RyaW5nW10gPSBbXCJncm91bmRzdGF0aW9uOkdldE1pbnV0ZVVzYWdlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRNaXNzaW9uUHJvZmlsZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TWlzc2lvblByb2ZpbGU6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JvdW5kc3RhdGlvbjpHZXRNaXNzaW9uUHJvZmlsZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRTYXRlbGxpdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFNhdGVsbGl0ZTogc3RyaW5nW10gPSBbXCJncm91bmRzdGF0aW9uOkdldFNhdGVsbGl0ZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEFudGVubmFzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFudGVubmFzOiBzdHJpbmdbXSA9IFtcImdyb3VuZHN0YXRpb246TGlzdEFudGVubmFzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q29uZmlncyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDb25maWdzOiBzdHJpbmdbXSA9IFtcImdyb3VuZHN0YXRpb246TGlzdENvbmZpZ3NcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDb250YWN0VmVyc2lvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29udGFjdFZlcnNpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImdyb3VuZHN0YXRpb246TGlzdENvbnRhY3RWZXJzaW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q29udGFjdHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q29udGFjdHM6IHN0cmluZ1tdID0gW1wiZ3JvdW5kc3RhdGlvbjpMaXN0Q29udGFjdHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3REYXRhZmxvd0VuZHBvaW50R3JvdXBzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdERhdGFmbG93RW5kcG9pbnRHcm91cHM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JvdW5kc3RhdGlvbjpMaXN0RGF0YWZsb3dFbmRwb2ludEdyb3Vwc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RXBoZW1lcmlkZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXBoZW1lcmlkZXM6IHN0cmluZ1tdID0gW1wiZ3JvdW5kc3RhdGlvbjpMaXN0RXBoZW1lcmlkZXNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RHcm91bmRTdGF0aW9uUmVzZXJ2YXRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEdyb3VuZFN0YXRpb25SZXNlcnZhdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JvdW5kc3RhdGlvbjpMaXN0R3JvdW5kU3RhdGlvblJlc2VydmF0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0R3JvdW5kU3RhdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0R3JvdW5kU3RhdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JvdW5kc3RhdGlvbjpMaXN0R3JvdW5kU3RhdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdE1pc3Npb25Qcm9maWxlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RNaXNzaW9uUHJvZmlsZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JvdW5kc3RhdGlvbjpMaXN0TWlzc2lvblByb2ZpbGVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTYXRlbGxpdGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFNhdGVsbGl0ZXM6IHN0cmluZ1tdID0gW1wiZ3JvdW5kc3RhdGlvbjpMaXN0U2F0ZWxsaXRlc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRhZ3NGb3JSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JvdW5kc3RhdGlvbjpMaXN0VGFnc0ZvclJlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlZ2lzdGVyQWdlbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZWdpc3RlckFnZW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImdyb3VuZHN0YXRpb246UmVnaXN0ZXJBZ2VudFwiLFxuXHRcdFwiZ3JvdW5kc3RhdGlvbjpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZXNlcnZlQ29udGFjdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlc2VydmVDb250YWN0OiBzdHJpbmdbXSA9IFtcblx0XHRcImdyb3VuZHN0YXRpb246UmVzZXJ2ZUNvbnRhY3RcIixcblx0XHRcImdyb3VuZHN0YXRpb246VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVGFnUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJncm91bmRzdGF0aW9uOlRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVbnRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJncm91bmRzdGF0aW9uOlVudGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUFnZW50U3RhdHVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWdlbnRTdGF0dXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZ3JvdW5kc3RhdGlvbjpVcGRhdGVBZ2VudFN0YXR1c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVDb25maWcgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVDb25maWc6IHN0cmluZ1tdID0gW1xuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJncm91bmRzdGF0aW9uOlVwZGF0ZUNvbmZpZ1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVDb250YWN0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQ29udGFjdDogc3RyaW5nW10gPSBbXCJncm91bmRzdGF0aW9uOlVwZGF0ZUNvbnRhY3RcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUVwaGVtZXJpcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUVwaGVtZXJpczogc3RyaW5nW10gPSBbXCJncm91bmRzdGF0aW9uOlVwZGF0ZUVwaGVtZXJpc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTWlzc2lvblByb2ZpbGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVNaXNzaW9uUHJvZmlsZTogc3RyaW5nW10gPSBbXG5cdFx0XCJpYW06UGFzc1JvbGVcIixcblx0XHRcImdyb3VuZHN0YXRpb246VXBkYXRlTWlzc2lvblByb2ZpbGVcIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIGdyb3VuZHN0YXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBHcm91bmRTdGF0aW9uQ29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVDb25maWcgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQ29uZmlnQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVEYXRhZmxvd0VuZHBvaW50R3JvdXAgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRGF0YWZsb3dFbmRwb2ludEdyb3VwQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVEYXRhZmxvd0VuZHBvaW50R3JvdXBWMiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVEYXRhZmxvd0VuZHBvaW50R3JvdXBWMkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRXBoZW1lcmlzIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUVwaGVtZXJpc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlTWlzc2lvblByb2ZpbGUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTWlzc2lvblByb2ZpbGVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFJlc2VydmVDb250YWN0IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlc2VydmVDb250YWN0Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBUYWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVW50YWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXCJhd3M6VGFnS2V5c1wiXTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBncm91bmRzdGF0aW9uOkFnZW50SWQgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFHRU5UX0lEID0gXCJncm91bmRzdGF0aW9uOkFnZW50SWRcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGdyb3VuZHN0YXRpb246Q29uZmlnSWQgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IENPTkZJR19JRCA9IFwiZ3JvdW5kc3RhdGlvbjpDb25maWdJZFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZ3JvdW5kc3RhdGlvbjpDb25maWdUeXBlIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBDT05GSUdfVFlQRSA9IFwiZ3JvdW5kc3RhdGlvbjpDb25maWdUeXBlXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBncm91bmRzdGF0aW9uOkNvbnRhY3RJZCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ09OVEFDVF9JRCA9IFwiZ3JvdW5kc3RhdGlvbjpDb250YWN0SWRcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGdyb3VuZHN0YXRpb246RGF0YWZsb3dFbmRwb2ludEdyb3VwSWQgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IERBVEFGTE9XX0VORFBPSU5UX0dST1VQX0lEID1cblx0XHRcImdyb3VuZHN0YXRpb246RGF0YWZsb3dFbmRwb2ludEdyb3VwSWRcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGdyb3VuZHN0YXRpb246RXBoZW1lcmlzSWQgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEVQSEVNRVJJU19JRCA9IFwiZ3JvdW5kc3RhdGlvbjpFcGhlbWVyaXNJZFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZ3JvdW5kc3RhdGlvbjpHcm91bmRTdGF0aW9uSWQgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEdST1VORF9TVEFUSU9OX0lEID0gXCJncm91bmRzdGF0aW9uOkdyb3VuZFN0YXRpb25JZFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZ3JvdW5kc3RhdGlvbjpNaXNzaW9uUHJvZmlsZUlkIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBNSVNTSU9OX1BST0ZJTEVfSUQgPSBcImdyb3VuZHN0YXRpb246TWlzc2lvblByb2ZpbGVJZFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogZ3JvdW5kc3RhdGlvbjpTYXRlbGxpdGVJZCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU0FURUxMSVRFX0lEID0gXCJncm91bmRzdGF0aW9uOlNhdGVsbGl0ZUlkXCI7XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVxdWVzdFRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVzb3VyY2VUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6VGFnS2V5c2AuXG5cdCAqL1xuXHRzdGF0aWMgdGFnS2V5cyh2YWx1ZXM6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHsgXCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHsgXCJhd3M6VGFnS2V5c1wiOiB2YWx1ZXMgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGdyb3VuZHN0YXRpb246QWdlbnRJZGAuXG5cdCAqL1xuXHRzdGF0aWMgYWdlbnRJZCh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImdyb3VuZHN0YXRpb246QWdlbnRJZFwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZ3JvdW5kc3RhdGlvbjpDb25maWdJZGAuXG5cdCAqL1xuXHRzdGF0aWMgY29uZmlnSWQodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJncm91bmRzdGF0aW9uOkNvbmZpZ0lkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBncm91bmRzdGF0aW9uOkNvbmZpZ1R5cGVgLlxuXHQgKi9cblx0c3RhdGljIGNvbmZpZ1R5cGUodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJncm91bmRzdGF0aW9uOkNvbmZpZ1R5cGVcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGdyb3VuZHN0YXRpb246Q29udGFjdElkYC5cblx0ICovXG5cdHN0YXRpYyBjb250YWN0SWQodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJncm91bmRzdGF0aW9uOkNvbnRhY3RJZFwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZ3JvdW5kc3RhdGlvbjpEYXRhZmxvd0VuZHBvaW50R3JvdXBJZGAuXG5cdCAqL1xuXHRzdGF0aWMgZGF0YWZsb3dFbmRwb2ludEdyb3VwSWQoXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImdyb3VuZHN0YXRpb246RGF0YWZsb3dFbmRwb2ludEdyb3VwSWRcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGdyb3VuZHN0YXRpb246RXBoZW1lcmlzSWRgLlxuXHQgKi9cblx0c3RhdGljIGVwaGVtZXJpc0lkKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiZ3JvdW5kc3RhdGlvbjpFcGhlbWVyaXNJZFwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgZ3JvdW5kc3RhdGlvbjpHcm91bmRTdGF0aW9uSWRgLlxuXHQgKi9cblx0c3RhdGljIGdyb3VuZFN0YXRpb25JZChcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiZ3JvdW5kc3RhdGlvbjpHcm91bmRTdGF0aW9uSWRcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGdyb3VuZHN0YXRpb246TWlzc2lvblByb2ZpbGVJZGAuXG5cdCAqL1xuXHRzdGF0aWMgbWlzc2lvblByb2ZpbGVJZChcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiZ3JvdW5kc3RhdGlvbjpNaXNzaW9uUHJvZmlsZUlkXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBncm91bmRzdGF0aW9uOlNhdGVsbGl0ZUlkYC5cblx0ICovXG5cdHN0YXRpYyBzYXRlbGxpdGVJZCh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImdyb3VuZHN0YXRpb246U2F0ZWxsaXRlSWRcIjogdmFsdWUgfSB9O1xuXHR9XG59XG4iXX0=
@@ -16,7 +16,7 @@ class GroundtruthlabelingActions {
16
16
  }
17
17
  exports.GroundtruthlabelingActions = GroundtruthlabelingActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- GroundtruthlabelingActions[_a] = { fqn: "@cdk_utils/iam.groundtruthlabeling.GroundtruthlabelingActions", version: "1.25.0" };
19
+ GroundtruthlabelingActions[_a] = { fqn: "@cdk_utils/iam.groundtruthlabeling.GroundtruthlabelingActions", version: "1.26.0" };
20
20
  /** The IAM service prefix. */
21
21
  GroundtruthlabelingActions.SERVICE_PREFIX = "groundtruthlabeling";
22
22
  /** [Write] groundtruthlabeling:AssociatePatchToManifestJob */
@@ -16,7 +16,7 @@ class GuardDutyActions {
16
16
  }
17
17
  exports.GuardDutyActions = GuardDutyActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- GuardDutyActions[_a] = { fqn: "@cdk_utils/iam.guardduty.GuardDutyActions", version: "1.25.0" };
19
+ GuardDutyActions[_a] = { fqn: "@cdk_utils/iam.guardduty.GuardDutyActions", version: "1.26.0" };
20
20
  /** The IAM service prefix. */
21
21
  GuardDutyActions.SERVICE_PREFIX = "guardduty";
22
22
  /** [Write] guardduty:AcceptAdministratorInvitation */
@@ -646,7 +646,7 @@ class GuardDutyResources {
646
646
  }
647
647
  exports.GuardDutyResources = GuardDutyResources;
648
648
  _b = JSII_RTTI_SYMBOL_1;
649
- GuardDutyResources[_b] = { fqn: "@cdk_utils/iam.guardduty.GuardDutyResources", version: "1.25.0" };
649
+ GuardDutyResources[_b] = { fqn: "@cdk_utils/iam.guardduty.GuardDutyResources", version: "1.26.0" };
650
650
  /**
651
651
  * API operation to required IAM actions mapping for guardduty.
652
652
  */
@@ -654,7 +654,7 @@ class GuardDutyOperations {
654
654
  }
655
655
  exports.GuardDutyOperations = GuardDutyOperations;
656
656
  _c = JSII_RTTI_SYMBOL_1;
657
- GuardDutyOperations[_c] = { fqn: "@cdk_utils/iam.guardduty.GuardDutyOperations", version: "1.25.0" };
657
+ GuardDutyOperations[_c] = { fqn: "@cdk_utils/iam.guardduty.GuardDutyOperations", version: "1.26.0" };
658
658
  /** IAM actions required for the AcceptAdministratorInvitation API call. */
659
659
  GuardDutyOperations.AcceptAdministratorInvitation = [
660
660
  "guardduty:AcceptAdministratorInvitation",
@@ -1038,7 +1038,7 @@ class GuardDutyConditions {
1038
1038
  }
1039
1039
  exports.GuardDutyConditions = GuardDutyConditions;
1040
1040
  _d = JSII_RTTI_SYMBOL_1;
1041
- GuardDutyConditions[_d] = { fqn: "@cdk_utils/iam.guardduty.GuardDutyConditions", version: "1.25.0" };
1041
+ GuardDutyConditions[_d] = { fqn: "@cdk_utils/iam.guardduty.GuardDutyConditions", version: "1.26.0" };
1042
1042
  /** Condition keys applicable to the CreateCustomDetectionRuleAssociation action. */
1043
1043
  GuardDutyConditions.CreateCustomDetectionRuleAssociationConditionKeys = ["aws:RequestTag/${TagKey}", "aws:TagKeys"];
1044
1044
  /** Condition keys applicable to the CreateDetector action. */
@@ -16,7 +16,7 @@ class HealthAgentActions {
16
16
  }
17
17
  exports.HealthAgentActions = HealthAgentActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- HealthAgentActions[_a] = { fqn: "@cdk_utils/iam.health_agent.HealthAgentActions", version: "1.25.0" };
19
+ HealthAgentActions[_a] = { fqn: "@cdk_utils/iam.health_agent.HealthAgentActions", version: "1.26.0" };
20
20
  /** The IAM service prefix. */
21
21
  HealthAgentActions.SERVICE_PREFIX = "health-agent";
22
22
  /** [Write] health-agent:ActivateSubscription */
@@ -360,7 +360,7 @@ class HealthAgentResources {
360
360
  }
361
361
  exports.HealthAgentResources = HealthAgentResources;
362
362
  _b = JSII_RTTI_SYMBOL_1;
363
- HealthAgentResources[_b] = { fqn: "@cdk_utils/iam.health_agent.HealthAgentResources", version: "1.25.0" };
363
+ HealthAgentResources[_b] = { fqn: "@cdk_utils/iam.health_agent.HealthAgentResources", version: "1.26.0" };
364
364
  /**
365
365
  * API operation to required IAM actions mapping for health-agent.
366
366
  */
@@ -368,7 +368,7 @@ class HealthAgentOperations {
368
368
  }
369
369
  exports.HealthAgentOperations = HealthAgentOperations;
370
370
  _c = JSII_RTTI_SYMBOL_1;
371
- HealthAgentOperations[_c] = { fqn: "@cdk_utils/iam.health_agent.HealthAgentOperations", version: "1.25.0" };
371
+ HealthAgentOperations[_c] = { fqn: "@cdk_utils/iam.health_agent.HealthAgentOperations", version: "1.26.0" };
372
372
  /** IAM actions required for the ActivateSubscription API call. */
373
373
  HealthAgentOperations.ActivateSubscription = [
374
374
  "health-agent:ActivateSubscription",
@@ -450,7 +450,7 @@ class HealthAgentConditions {
450
450
  }
451
451
  exports.HealthAgentConditions = HealthAgentConditions;
452
452
  _d = JSII_RTTI_SYMBOL_1;
453
- HealthAgentConditions[_d] = { fqn: "@cdk_utils/iam.health_agent.HealthAgentConditions", version: "1.25.0" };
453
+ HealthAgentConditions[_d] = { fqn: "@cdk_utils/iam.health_agent.HealthAgentConditions", version: "1.26.0" };
454
454
  /** Condition keys applicable to the CreateDomain action. */
455
455
  HealthAgentConditions.CreateDomainConditionKeys = [
456
456
  "aws:RequestTag/${TagKey}",
@@ -16,7 +16,7 @@ class HealthActions {
16
16
  }
17
17
  exports.HealthActions = HealthActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- HealthActions[_a] = { fqn: "@cdk_utils/iam.health.HealthActions", version: "1.25.0" };
19
+ HealthActions[_a] = { fqn: "@cdk_utils/iam.health.HealthActions", version: "1.26.0" };
20
20
  /** The IAM service prefix. */
21
21
  HealthActions.SERVICE_PREFIX = "health";
22
22
  /** [Read] health:DescribeAffectedAccountsForOrganization */
@@ -110,7 +110,7 @@ class HealthResources {
110
110
  }
111
111
  exports.HealthResources = HealthResources;
112
112
  _b = JSII_RTTI_SYMBOL_1;
113
- HealthResources[_b] = { fqn: "@cdk_utils/iam.health.HealthResources", version: "1.25.0" };
113
+ HealthResources[_b] = { fqn: "@cdk_utils/iam.health.HealthResources", version: "1.26.0" };
114
114
  /**
115
115
  * API operation to required IAM actions mapping for health.
116
116
  */
@@ -118,7 +118,7 @@ class HealthOperations {
118
118
  }
119
119
  exports.HealthOperations = HealthOperations;
120
120
  _c = JSII_RTTI_SYMBOL_1;
121
- HealthOperations[_c] = { fqn: "@cdk_utils/iam.health.HealthOperations", version: "1.25.0" };
121
+ HealthOperations[_c] = { fqn: "@cdk_utils/iam.health.HealthOperations", version: "1.26.0" };
122
122
  /** IAM actions required for the DescribeAffectedAccountsForOrganization API call. */
123
123
  HealthOperations.DescribeAffectedAccountsForOrganization = [
124
124
  "health:DescribeAffectedAccountsForOrganization",
@@ -201,7 +201,7 @@ class HealthConditions {
201
201
  }
202
202
  exports.HealthConditions = HealthConditions;
203
203
  _d = JSII_RTTI_SYMBOL_1;
204
- HealthConditions[_d] = { fqn: "@cdk_utils/iam.health.HealthConditions", version: "1.25.0" };
204
+ HealthConditions[_d] = { fqn: "@cdk_utils/iam.health.HealthConditions", version: "1.26.0" };
205
205
  /** Condition keys applicable to the DescribeAffectedEntities action. */
206
206
  HealthConditions.DescribeAffectedEntitiesConditionKeys = [
207
207
  "health:eventTypeCode",
@@ -16,7 +16,7 @@ class HealthLakeActions {
16
16
  }
17
17
  exports.HealthLakeActions = HealthLakeActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- HealthLakeActions[_a] = { fqn: "@cdk_utils/iam.healthlake.HealthLakeActions", version: "1.25.0" };
19
+ HealthLakeActions[_a] = { fqn: "@cdk_utils/iam.healthlake.HealthLakeActions", version: "1.26.0" };
20
20
  /** The IAM service prefix. */
21
21
  HealthLakeActions.SERVICE_PREFIX = "healthlake";
22
22
  /** [Write] healthlake:CancelFHIRExportJobWithDelete */
@@ -302,7 +302,7 @@ class HealthLakeResources {
302
302
  }
303
303
  exports.HealthLakeResources = HealthLakeResources;
304
304
  _b = JSII_RTTI_SYMBOL_1;
305
- HealthLakeResources[_b] = { fqn: "@cdk_utils/iam.healthlake.HealthLakeResources", version: "1.25.0" };
305
+ HealthLakeResources[_b] = { fqn: "@cdk_utils/iam.healthlake.HealthLakeResources", version: "1.26.0" };
306
306
  /**
307
307
  * API operation to required IAM actions mapping for healthlake.
308
308
  */
@@ -310,7 +310,7 @@ class HealthLakeOperations {
310
310
  }
311
311
  exports.HealthLakeOperations = HealthLakeOperations;
312
312
  _c = JSII_RTTI_SYMBOL_1;
313
- HealthLakeOperations[_c] = { fqn: "@cdk_utils/iam.healthlake.HealthLakeOperations", version: "1.25.0" };
313
+ HealthLakeOperations[_c] = { fqn: "@cdk_utils/iam.healthlake.HealthLakeOperations", version: "1.26.0" };
314
314
  /** IAM actions required for the CreateDataTransformationProfile API call. */
315
315
  HealthLakeOperations.CreateDataTransformationProfile = [
316
316
  "healthlake:CreateDataTransformationProfile",
@@ -442,7 +442,7 @@ class HealthLakeConditions {
442
442
  }
443
443
  exports.HealthLakeConditions = HealthLakeConditions;
444
444
  _d = JSII_RTTI_SYMBOL_1;
445
- HealthLakeConditions[_d] = { fqn: "@cdk_utils/iam.healthlake.HealthLakeConditions", version: "1.25.0" };
445
+ HealthLakeConditions[_d] = { fqn: "@cdk_utils/iam.healthlake.HealthLakeConditions", version: "1.26.0" };
446
446
  /** Condition keys applicable to the CreateDataTransformationProfile action. */
447
447
  HealthLakeConditions.CreateDataTransformationProfileConditionKeys = [
448
448
  "aws:RequestTag/${TagKey}",