@cdk_utils/iam 1.9.0 → 1.10.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 +716 -518
  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.d.ts +12 -0
  13. package/lib/generated/services/agent-registry.js +22 -5
  14. package/lib/generated/services/agentaccess-mcp.js +2 -2
  15. package/lib/generated/services/aidevops.js +4 -4
  16. package/lib/generated/services/aiops.js +4 -4
  17. package/lib/generated/services/airflow-serverless.js +4 -4
  18. package/lib/generated/services/airflow.js +4 -4
  19. package/lib/generated/services/amplify.js +4 -4
  20. package/lib/generated/services/amplifybackend.js +3 -3
  21. package/lib/generated/services/amplifyuibuilder.js +4 -4
  22. package/lib/generated/services/aoss.js +4 -4
  23. package/lib/generated/services/apigateway.js +4 -4
  24. package/lib/generated/services/app-integrations.js +4 -4
  25. package/lib/generated/services/appconfig.js +4 -4
  26. package/lib/generated/services/appfabric.js +4 -4
  27. package/lib/generated/services/appflow.js +4 -4
  28. package/lib/generated/services/application-autoscaling.js +4 -4
  29. package/lib/generated/services/application-signals-mcp.js +3 -3
  30. package/lib/generated/services/application-signals.js +4 -4
  31. package/lib/generated/services/application-transformation.js +1 -1
  32. package/lib/generated/services/applicationinsights.js +3 -3
  33. package/lib/generated/services/appmesh-preview.js +2 -2
  34. package/lib/generated/services/appmesh.js +4 -4
  35. package/lib/generated/services/apprunner.js +4 -4
  36. package/lib/generated/services/appstream.js +4 -4
  37. package/lib/generated/services/appstudio.js +2 -2
  38. package/lib/generated/services/appsync.js +4 -4
  39. package/lib/generated/services/apptest.js +3 -3
  40. package/lib/generated/services/aps.js +4 -4
  41. package/lib/generated/services/arc-region-switch.js +4 -4
  42. package/lib/generated/services/arc-zonal-shift.js +4 -4
  43. package/lib/generated/services/arsenal.js +1 -1
  44. package/lib/generated/services/artifact.js +4 -4
  45. package/lib/generated/services/athena.js +4 -4
  46. package/lib/generated/services/auditmanager.js +4 -4
  47. package/lib/generated/services/autoscaling-plans.js +2 -2
  48. package/lib/generated/services/autoscaling.js +4 -4
  49. package/lib/generated/services/aws-external-anthropic.js +3 -3
  50. package/lib/generated/services/aws-marketplace-management.js +1 -1
  51. package/lib/generated/services/aws-marketplace.js +4 -4
  52. package/lib/generated/services/aws-portal.js +1 -1
  53. package/lib/generated/services/awsconnector.js +1 -1
  54. package/lib/generated/services/b2bi.js +4 -4
  55. package/lib/generated/services/backup-gateway.js +4 -4
  56. package/lib/generated/services/backup-search.js +4 -4
  57. package/lib/generated/services/backup-storage.js +1 -1
  58. package/lib/generated/services/backup.js +4 -4
  59. package/lib/generated/services/batch.d.ts +4 -0
  60. package/lib/generated/services/batch.js +14 -5
  61. package/lib/generated/services/bcm-dashboards.js +4 -4
  62. package/lib/generated/services/bcm-data-exports.js +4 -4
  63. package/lib/generated/services/bcm-pricing-calculator.js +4 -4
  64. package/lib/generated/services/bcm-recommended-actions.js +2 -2
  65. package/lib/generated/services/bedrock-agentcore.js +4 -4
  66. package/lib/generated/services/bedrock-mantle.js +3 -3
  67. package/lib/generated/services/bedrock-websearch.js +2 -2
  68. package/lib/generated/services/bedrock.js +4 -4
  69. package/lib/generated/services/billing.js +4 -4
  70. package/lib/generated/services/billingconductor.js +4 -4
  71. package/lib/generated/services/braket.js +4 -4
  72. package/lib/generated/services/budgets.js +4 -4
  73. package/lib/generated/services/bugbust.js +3 -3
  74. package/lib/generated/services/cases.js +4 -4
  75. package/lib/generated/services/cassandra.js +4 -4
  76. package/lib/generated/services/ce.js +4 -4
  77. package/lib/generated/services/chatbot.js +4 -4
  78. package/lib/generated/services/chime.js +4 -4
  79. package/lib/generated/services/cleanrooms-ml.js +4 -4
  80. package/lib/generated/services/cleanrooms.js +4 -4
  81. package/lib/generated/services/cloud9.js +4 -4
  82. package/lib/generated/services/clouddirectory.js +3 -3
  83. package/lib/generated/services/cloudformation.js +4 -4
  84. package/lib/generated/services/cloudfront-keyvaluestore.js +3 -3
  85. package/lib/generated/services/cloudfront.js +4 -4
  86. package/lib/generated/services/cloudhsm.js +4 -4
  87. package/lib/generated/services/cloudsearch.js +3 -3
  88. package/lib/generated/services/cloudshell.js +3 -3
  89. package/lib/generated/services/cloudtrail-data.js +4 -4
  90. package/lib/generated/services/cloudtrail.js +4 -4
  91. package/lib/generated/services/cloudwatch.js +4 -4
  92. package/lib/generated/services/codeartifact.js +4 -4
  93. package/lib/generated/services/codebuild.js +4 -4
  94. package/lib/generated/services/codecatalyst.js +4 -4
  95. package/lib/generated/services/codecommit.js +4 -4
  96. package/lib/generated/services/codeconnections.js +4 -4
  97. package/lib/generated/services/codedeploy-commands-secure.js +1 -1
  98. package/lib/generated/services/codedeploy.js +4 -4
  99. package/lib/generated/services/codeguru-profiler.js +4 -4
  100. package/lib/generated/services/codeguru-reviewer.js +4 -4
  101. package/lib/generated/services/codeguru-security.js +4 -4
  102. package/lib/generated/services/codeguru.js +1 -1
  103. package/lib/generated/services/codepipeline.js +4 -4
  104. package/lib/generated/services/codestar-connections.js +4 -4
  105. package/lib/generated/services/codestar-notifications.js +4 -4
  106. package/lib/generated/services/codestar.js +3 -3
  107. package/lib/generated/services/codewhisperer.js +3 -3
  108. package/lib/generated/services/cognito-identity.js +4 -4
  109. package/lib/generated/services/cognito-idp.js +4 -4
  110. package/lib/generated/services/cognito-sync.js +3 -3
  111. package/lib/generated/services/comprehend.js +4 -4
  112. package/lib/generated/services/comprehendmedical.js +3 -3
  113. package/lib/generated/services/compute-optimizer.js +3 -3
  114. package/lib/generated/services/config.js +4 -4
  115. package/lib/generated/services/connect-campaigns.js +4 -4
  116. package/lib/generated/services/connect.js +4 -4
  117. package/lib/generated/services/consoleapp.js +2 -2
  118. package/lib/generated/services/consolidatedbilling.js +1 -1
  119. package/lib/generated/services/controlcatalog.js +3 -3
  120. package/lib/generated/services/controltower.js +4 -4
  121. package/lib/generated/services/cost-optimization-hub.js +2 -2
  122. package/lib/generated/services/cur.js +4 -4
  123. package/lib/generated/services/customer-verification.d.ts +4 -0
  124. package/lib/generated/services/customer-verification.js +8 -2
  125. package/lib/generated/services/databrew.js +4 -4
  126. package/lib/generated/services/dataexchange.js +4 -4
  127. package/lib/generated/services/datapipeline.js +4 -4
  128. package/lib/generated/services/datasync.js +4 -4
  129. package/lib/generated/services/datazone.js +4 -4
  130. package/lib/generated/services/dax.js +4 -4
  131. package/lib/generated/services/dbqms.js +1 -1
  132. package/lib/generated/services/deadline.js +4 -4
  133. package/lib/generated/services/detective.js +4 -4
  134. package/lib/generated/services/devicefarm.js +4 -4
  135. package/lib/generated/services/devops-guru.js +4 -4
  136. package/lib/generated/services/directconnect.js +4 -4
  137. package/lib/generated/services/discovery.js +3 -3
  138. package/lib/generated/services/dlm.js +4 -4
  139. package/lib/generated/services/dms.js +4 -4
  140. package/lib/generated/services/docdb-elastic.js +4 -4
  141. package/lib/generated/services/drs.js +9 -17
  142. package/lib/generated/services/ds-data.js +4 -4
  143. package/lib/generated/services/ds.js +4 -4
  144. package/lib/generated/services/dsql.js +4 -4
  145. package/lib/generated/services/dynamodb.js +4 -4
  146. package/lib/generated/services/ebs.js +4 -4
  147. package/lib/generated/services/ec2-instance-connect.js +4 -4
  148. package/lib/generated/services/ec2.js +4 -4
  149. package/lib/generated/services/ec2messages.js +2 -2
  150. package/lib/generated/services/ecr-public.js +4 -4
  151. package/lib/generated/services/ecr.js +4 -4
  152. package/lib/generated/services/ecs-mcp.js +1 -1
  153. package/lib/generated/services/ecs.js +4 -4
  154. package/lib/generated/services/eks-auth.js +4 -4
  155. package/lib/generated/services/eks-mcp.js +1 -1
  156. package/lib/generated/services/eks.js +4 -4
  157. package/lib/generated/services/elasticache.js +4 -4
  158. package/lib/generated/services/elasticbeanstalk.js +4 -4
  159. package/lib/generated/services/elasticfilesystem.js +4 -4
  160. package/lib/generated/services/elasticloadbalancing.js +4 -4
  161. package/lib/generated/services/elasticmapreduce.js +4 -4
  162. package/lib/generated/services/elastictranscoder.js +2 -2
  163. package/lib/generated/services/elemental-activations.js +1 -1
  164. package/lib/generated/services/elemental-appliances-software.js +2 -2
  165. package/lib/generated/services/elemental-inference.d.ts +2 -0
  166. package/lib/generated/services/elemental-inference.js +7 -5
  167. package/lib/generated/services/elemental-support-cases.js +3 -3
  168. package/lib/generated/services/elemental-support-content.js +1 -1
  169. package/lib/generated/services/emr-containers.js +4 -4
  170. package/lib/generated/services/emr-serverless.js +4 -4
  171. package/lib/generated/services/entityresolution.js +4 -4
  172. package/lib/generated/services/es.js +4 -4
  173. package/lib/generated/services/events.js +4 -4
  174. package/lib/generated/services/eventsbilltoaws.js +3 -3
  175. package/lib/generated/services/evidently.js +3 -3
  176. package/lib/generated/services/evs.js +4 -4
  177. package/lib/generated/services/execute-api.js +4 -4
  178. package/lib/generated/services/finops-agent.js +1 -1
  179. package/lib/generated/services/finspace-api.js +3 -3
  180. package/lib/generated/services/finspace.js +4 -4
  181. package/lib/generated/services/firehose.js +4 -4
  182. package/lib/generated/services/fis.js +4 -4
  183. package/lib/generated/services/fms.js +4 -4
  184. package/lib/generated/services/forecast.js +4 -4
  185. package/lib/generated/services/frauddetector.js +4 -4
  186. package/lib/generated/services/freertos.js +3 -3
  187. package/lib/generated/services/freetier.js +2 -2
  188. package/lib/generated/services/fsx.js +4 -4
  189. package/lib/generated/services/gamelift.js +4 -4
  190. package/lib/generated/services/gameliftstreams.js +4 -4
  191. package/lib/generated/services/geo-maps.js +3 -3
  192. package/lib/generated/services/geo-places.js +3 -3
  193. package/lib/generated/services/geo-routes.js +3 -3
  194. package/lib/generated/services/geo.js +4 -4
  195. package/lib/generated/services/glacier.js +4 -4
  196. package/lib/generated/services/globalaccelerator.js +4 -4
  197. package/lib/generated/services/glue.js +4 -4
  198. package/lib/generated/services/grafana.js +4 -4
  199. package/lib/generated/services/greengrass.js +4 -4
  200. package/lib/generated/services/groundstation.js +4 -4
  201. package/lib/generated/services/groundtruthlabeling.js +1 -1
  202. package/lib/generated/services/guardduty.js +4 -4
  203. package/lib/generated/services/health-agent.js +4 -4
  204. package/lib/generated/services/health.js +4 -4
  205. package/lib/generated/services/healthlake.js +4 -4
  206. package/lib/generated/services/honeycode.js +2 -2
  207. package/lib/generated/services/iam.js +4 -4
  208. package/lib/generated/services/identity-sync.js +2 -2
  209. package/lib/generated/services/identitystore-auth.js +1 -1
  210. package/lib/generated/services/identitystore.js +4 -4
  211. package/lib/generated/services/imagebuilder.js +4 -4
  212. package/lib/generated/services/importexport.js +2 -2
  213. package/lib/generated/services/inspector-scan.js +2 -2
  214. package/lib/generated/services/inspector.js +2 -2
  215. package/lib/generated/services/inspector2-telemetry.js +1 -1
  216. package/lib/generated/services/inspector2.js +4 -4
  217. package/lib/generated/services/interconnect.js +4 -4
  218. package/lib/generated/services/internetmonitor.js +4 -4
  219. package/lib/generated/services/invoicing.js +4 -4
  220. package/lib/generated/services/iot-device-tester.js +1 -1
  221. package/lib/generated/services/iot.js +4 -4
  222. package/lib/generated/services/iotanalytics.js +3 -3
  223. package/lib/generated/services/iotdeviceadvisor.js +4 -4
  224. package/lib/generated/services/iotevents.js +3 -3
  225. package/lib/generated/services/iotfleethub.js +3 -3
  226. package/lib/generated/services/iotfleetwise.js +4 -4
  227. package/lib/generated/services/iotjobsdata.js +4 -4
  228. package/lib/generated/services/iotmanagedintegrations.js +4 -4
  229. package/lib/generated/services/iotsitewise.js +4 -4
  230. package/lib/generated/services/iottwinmaker.js +4 -4
  231. package/lib/generated/services/iotwireless.js +4 -4
  232. package/lib/generated/services/iq-permission.js +2 -2
  233. package/lib/generated/services/iq.js +2 -2
  234. package/lib/generated/services/ivs.js +4 -4
  235. package/lib/generated/services/ivschat.js +4 -4
  236. package/lib/generated/services/kafka-cluster.js +3 -3
  237. package/lib/generated/services/kafka.js +4 -4
  238. package/lib/generated/services/kafkaconnect.js +4 -4
  239. package/lib/generated/services/kendra-ranking.js +4 -4
  240. package/lib/generated/services/kendra.js +4 -4
  241. package/lib/generated/services/kinesis.js +4 -4
  242. package/lib/generated/services/kinesisanalytics.js +4 -4
  243. package/lib/generated/services/kinesisvideo.js +4 -4
  244. package/lib/generated/services/kms.js +4 -4
  245. package/lib/generated/services/lakeformation.js +3 -3
  246. package/lib/generated/services/lambda.js +4 -4
  247. package/lib/generated/services/launchwizard.js +4 -4
  248. package/lib/generated/services/lex.js +4 -4
  249. package/lib/generated/services/license-manager-linux-subscriptions.js +4 -4
  250. package/lib/generated/services/license-manager-user-subscriptions.js +4 -4
  251. package/lib/generated/services/license-manager.js +4 -4
  252. package/lib/generated/services/lightsail.js +4 -4
  253. package/lib/generated/services/logs.js +4 -4
  254. package/lib/generated/services/lookoutequipment.js +4 -4
  255. package/lib/generated/services/lookoutmetrics.js +3 -3
  256. package/lib/generated/services/lookoutvision.js +3 -3
  257. package/lib/generated/services/m2.js +4 -4
  258. package/lib/generated/services/machinelearning.js +3 -3
  259. package/lib/generated/services/macie2.js +4 -4
  260. package/lib/generated/services/managedblockchain-query.js +2 -2
  261. package/lib/generated/services/managedblockchain.js +4 -4
  262. package/lib/generated/services/mapcredits.js +2 -2
  263. package/lib/generated/services/marketplacecommerceanalytics.js +2 -2
  264. package/lib/generated/services/mechanicalturk.js +2 -2
  265. package/lib/generated/services/mediaconnect.js +4 -4
  266. package/lib/generated/services/mediaconvert.js +4 -4
  267. package/lib/generated/services/mediaimport.js +1 -1
  268. package/lib/generated/services/medialive.js +4 -4
  269. package/lib/generated/services/mediapackage-vod.js +4 -4
  270. package/lib/generated/services/mediapackage.js +4 -4
  271. package/lib/generated/services/mediapackagev2.js +4 -4
  272. package/lib/generated/services/mediastore.js +4 -4
  273. package/lib/generated/services/mediatailor.js +4 -4
  274. package/lib/generated/services/medical-imaging.js +4 -4
  275. package/lib/generated/services/memorydb.js +4 -4
  276. package/lib/generated/services/mgh.js +4 -4
  277. package/lib/generated/services/mgn.js +4 -4
  278. package/lib/generated/services/migrationhub-orchestrator.js +4 -4
  279. package/lib/generated/services/migrationhub-strategy.js +2 -2
  280. package/lib/generated/services/mobileanalytics.js +1 -1
  281. package/lib/generated/services/mobiletargeting.js +4 -4
  282. package/lib/generated/services/monitron.js +3 -3
  283. package/lib/generated/services/mpa.js +4 -4
  284. package/lib/generated/services/mq.js +4 -4
  285. package/lib/generated/services/neptune-db.js +4 -4
  286. package/lib/generated/services/neptune-graph.js +4 -4
  287. package/lib/generated/services/network-firewall.js +4 -4
  288. package/lib/generated/services/network-security-director.js +1 -1
  289. package/lib/generated/services/networkflowmonitor.js +4 -4
  290. package/lib/generated/services/networkmanager-chat.js +1 -1
  291. package/lib/generated/services/networkmanager.js +4 -4
  292. package/lib/generated/services/networkmonitor.js +4 -4
  293. package/lib/generated/services/nimble.js +3 -3
  294. package/lib/generated/services/notifications-contacts.js +4 -4
  295. package/lib/generated/services/notifications.js +4 -4
  296. package/lib/generated/services/nova-act.js +3 -3
  297. package/lib/generated/services/oam.js +4 -4
  298. package/lib/generated/services/observabilityadmin.js +4 -4
  299. package/lib/generated/services/odb.js +4 -4
  300. package/lib/generated/services/omics.js +4 -4
  301. package/lib/generated/services/one.js +3 -3
  302. package/lib/generated/services/opensearch.js +3 -3
  303. package/lib/generated/services/opsworks-cm.js +2 -2
  304. package/lib/generated/services/opsworks.js +2 -2
  305. package/lib/generated/services/organizations.js +4 -4
  306. package/lib/generated/services/osis.js +4 -4
  307. package/lib/generated/services/outposts.js +4 -4
  308. package/lib/generated/services/panorama.js +3 -3
  309. package/lib/generated/services/partnercentral-account-management.js +2 -2
  310. package/lib/generated/services/partnercentral.js +4 -4
  311. package/lib/generated/services/payment-cryptography.js +4 -4
  312. package/lib/generated/services/payments.js +3 -3
  313. package/lib/generated/services/pca-connector-ad.js +4 -4
  314. package/lib/generated/services/pca-connector-scep.js +4 -4
  315. package/lib/generated/services/pcs.js +4 -4
  316. package/lib/generated/services/personalize.js +6 -5
  317. package/lib/generated/services/pi.js +4 -4
  318. package/lib/generated/services/pipes.js +4 -4
  319. package/lib/generated/services/polly.js +3 -3
  320. package/lib/generated/services/pricing.js +2 -2
  321. package/lib/generated/services/pricingplanmanager.js +3 -3
  322. package/lib/generated/services/private-networks.js +3 -3
  323. package/lib/generated/services/profile.js +4 -4
  324. package/lib/generated/services/proton.js +4 -4
  325. package/lib/generated/services/purchase-orders.js +3 -3
  326. package/lib/generated/services/q.js +3 -3
  327. package/lib/generated/services/qapps.js +4 -4
  328. package/lib/generated/services/qbusiness.js +4 -4
  329. package/lib/generated/services/qdeveloper.js +3 -3
  330. package/lib/generated/services/qldb.js +3 -3
  331. package/lib/generated/services/quicksight.js +4 -4
  332. package/lib/generated/services/ram.js +4 -4
  333. package/lib/generated/services/rbin.js +4 -4
  334. package/lib/generated/services/rds-data.js +4 -4
  335. package/lib/generated/services/rds-db.js +2 -2
  336. package/lib/generated/services/rds.js +4 -4
  337. package/lib/generated/services/redshift-data.js +4 -4
  338. package/lib/generated/services/redshift-serverless.js +4 -4
  339. package/lib/generated/services/redshift.js +4 -4
  340. package/lib/generated/services/refactor-spaces.js +4 -4
  341. package/lib/generated/services/rekognition.js +4 -4
  342. package/lib/generated/services/repostspace.js +4 -4
  343. package/lib/generated/services/researchstudio.js +1 -1
  344. package/lib/generated/services/resiliencehub.js +4 -4
  345. package/lib/generated/services/resource-explorer-2.js +4 -4
  346. package/lib/generated/services/resource-explorer.js +1 -1
  347. package/lib/generated/services/resource-groups.js +4 -4
  348. package/lib/generated/services/rhelkb.js +1 -1
  349. package/lib/generated/services/robomaker.js +3 -3
  350. package/lib/generated/services/rolesanywhere.js +4 -4
  351. package/lib/generated/services/route53-recovery-cluster.js +4 -4
  352. package/lib/generated/services/route53-recovery-control-config.js +4 -4
  353. package/lib/generated/services/route53-recovery-readiness.js +4 -4
  354. package/lib/generated/services/route53.js +4 -4
  355. package/lib/generated/services/route53domains.js +2 -2
  356. package/lib/generated/services/route53globalresolver.js +4 -4
  357. package/lib/generated/services/route53profiles.js +4 -4
  358. package/lib/generated/services/route53resolver.js +4 -4
  359. package/lib/generated/services/rtbfabric.js +4 -4
  360. package/lib/generated/services/rum.js +4 -4
  361. package/lib/generated/services/s3-object-lambda.js +3 -3
  362. package/lib/generated/services/s3-outposts.js +4 -4
  363. package/lib/generated/services/s3.js +4 -4
  364. package/lib/generated/services/s3express.js +3 -3
  365. package/lib/generated/services/s3files.js +4 -4
  366. package/lib/generated/services/s3tables.js +4 -4
  367. package/lib/generated/services/s3vectors.js +4 -4
  368. package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
  369. package/lib/generated/services/sagemaker-geospatial.js +4 -4
  370. package/lib/generated/services/sagemaker-mlflow.js +3 -3
  371. package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
  372. package/lib/generated/services/sagemaker.js +4 -4
  373. package/lib/generated/services/savingsplans.js +4 -4
  374. package/lib/generated/services/scheduler.js +4 -4
  375. package/lib/generated/services/schemas.js +4 -4
  376. package/lib/generated/services/scn.js +4 -4
  377. package/lib/generated/services/sdb.js +3 -3
  378. package/lib/generated/services/secretsmanager.js +4 -4
  379. package/lib/generated/services/security-ir.js +4 -4
  380. package/lib/generated/services/securityagent.js +4 -4
  381. package/lib/generated/services/securityhub.js +4 -4
  382. package/lib/generated/services/securitylake.js +4 -4
  383. package/lib/generated/services/serverlessrepo.js +4 -4
  384. package/lib/generated/services/servicecatalog.js +4 -4
  385. package/lib/generated/services/servicediscovery.js +4 -4
  386. package/lib/generated/services/serviceextract.js +1 -1
  387. package/lib/generated/services/servicequotas.js +4 -4
  388. package/lib/generated/services/ses.js +4 -4
  389. package/lib/generated/services/shield.js +4 -4
  390. package/lib/generated/services/signer.js +4 -4
  391. package/lib/generated/services/signin.js +4 -4
  392. package/lib/generated/services/simspaceweaver.js +3 -3
  393. package/lib/generated/services/sms-voice.js +4 -4
  394. package/lib/generated/services/sms.js +1 -1
  395. package/lib/generated/services/snow-device-management.js +4 -4
  396. package/lib/generated/services/snowball.js +2 -2
  397. package/lib/generated/services/sns.js +4 -4
  398. package/lib/generated/services/social-messaging.js +4 -4
  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 DocdbElasticActions {
16
16
  }
17
17
  exports.DocdbElasticActions = DocdbElasticActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- DocdbElasticActions[_a] = { fqn: "@cdk_utils/iam.docdb_elastic.DocdbElasticActions", version: "1.9.0" };
19
+ DocdbElasticActions[_a] = { fqn: "@cdk_utils/iam.docdb_elastic.DocdbElasticActions", version: "1.10.0" };
20
20
  /** The IAM service prefix. */
21
21
  DocdbElasticActions.SERVICE_PREFIX = "docdb-elastic";
22
22
  /** [Write] docdb-elastic:ApplyPendingMaintenanceAction */
@@ -155,7 +155,7 @@ class DocdbElasticResources {
155
155
  }
156
156
  exports.DocdbElasticResources = DocdbElasticResources;
157
157
  _b = JSII_RTTI_SYMBOL_1;
158
- DocdbElasticResources[_b] = { fqn: "@cdk_utils/iam.docdb_elastic.DocdbElasticResources", version: "1.9.0" };
158
+ DocdbElasticResources[_b] = { fqn: "@cdk_utils/iam.docdb_elastic.DocdbElasticResources", version: "1.10.0" };
159
159
  /**
160
160
  * API operation to required IAM actions mapping for docdb-elastic.
161
161
  */
@@ -163,7 +163,7 @@ class DocdbElasticOperations {
163
163
  }
164
164
  exports.DocdbElasticOperations = DocdbElasticOperations;
165
165
  _c = JSII_RTTI_SYMBOL_1;
166
- DocdbElasticOperations[_c] = { fqn: "@cdk_utils/iam.docdb_elastic.DocdbElasticOperations", version: "1.9.0" };
166
+ DocdbElasticOperations[_c] = { fqn: "@cdk_utils/iam.docdb_elastic.DocdbElasticOperations", version: "1.10.0" };
167
167
  /** IAM actions required for the ApplyPendingMaintenanceAction API call. */
168
168
  DocdbElasticOperations.ApplyPendingMaintenanceAction = [
169
169
  "docdb-elastic:ApplyPendingMaintenanceAction",
@@ -255,7 +255,7 @@ class DocdbElasticConditions {
255
255
  }
256
256
  exports.DocdbElasticConditions = DocdbElasticConditions;
257
257
  _d = JSII_RTTI_SYMBOL_1;
258
- DocdbElasticConditions[_d] = { fqn: "@cdk_utils/iam.docdb_elastic.DocdbElasticConditions", version: "1.9.0" };
258
+ DocdbElasticConditions[_d] = { fqn: "@cdk_utils/iam.docdb_elastic.DocdbElasticConditions", version: "1.10.0" };
259
259
  /** Condition keys applicable to the ApplyPendingMaintenanceAction action. */
260
260
  DocdbElasticConditions.ApplyPendingMaintenanceActionConditionKeys = [
261
261
  "aws:ResourceTag/${TagKey}",
@@ -16,7 +16,7 @@ class DRSActions {
16
16
  }
17
17
  exports.DRSActions = DRSActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- DRSActions[_a] = { fqn: "@cdk_utils/iam.drs.DRSActions", version: "1.9.0" };
19
+ DRSActions[_a] = { fqn: "@cdk_utils/iam.drs.DRSActions", version: "1.10.0" };
20
20
  /** The IAM service prefix. */
21
21
  DRSActions.SERVICE_PREFIX = "drs";
22
22
  /** [Write] drs:AssociateFailbackClientToRecoveryInstanceForDrs */
@@ -601,7 +601,7 @@ class DRSResources {
601
601
  }
602
602
  exports.DRSResources = DRSResources;
603
603
  _b = JSII_RTTI_SYMBOL_1;
604
- DRSResources[_b] = { fqn: "@cdk_utils/iam.drs.DRSResources", version: "1.9.0" };
604
+ DRSResources[_b] = { fqn: "@cdk_utils/iam.drs.DRSResources", version: "1.10.0" };
605
605
  /**
606
606
  * API operation to required IAM actions mapping for drs.
607
607
  */
@@ -609,7 +609,7 @@ class DRSOperations {
609
609
  }
610
610
  exports.DRSOperations = DRSOperations;
611
611
  _c = JSII_RTTI_SYMBOL_1;
612
- DRSOperations[_c] = { fqn: "@cdk_utils/iam.drs.DRSOperations", version: "1.9.0" };
612
+ DRSOperations[_c] = { fqn: "@cdk_utils/iam.drs.DRSOperations", version: "1.10.0" };
613
613
  /** IAM actions required for the AssociateSourceNetworkStack API call. */
614
614
  DRSOperations.AssociateSourceNetworkStack = [
615
615
  "drs:AssociateSourceNetworkStack",
@@ -725,9 +725,7 @@ DRSOperations.opGetRecoveryPlanExecution = [
725
725
  "drs:GetRecoveryPlanExecution",
726
726
  ];
727
727
  /** IAM actions required for the GetRecoveryPlanExecutionStep API call. */
728
- DRSOperations.opGetRecoveryPlanExecutionStep = [
729
- "drs:GetRecoveryPlanExecutionStep",
730
- ];
728
+ DRSOperations.opGetRecoveryPlanExecutionStep = [];
731
729
  /** IAM actions required for the GetRecoveryPlanStep API call. */
732
730
  DRSOperations.opGetRecoveryPlanStep = ["drs:GetRecoveryPlanStep"];
733
731
  /** IAM actions required for the GetReplicationConfiguration API call. */
@@ -767,9 +765,7 @@ DRSOperations.ReorderRecoveryPlanSteps = [
767
765
  /** IAM actions required for the RetryDataReplication API call. */
768
766
  DRSOperations.RetryDataReplication = ["drs:RetryDataReplication"];
769
767
  /** IAM actions required for the RetryRecoveryPlanExecutionStep API call. */
770
- DRSOperations.RetryRecoveryPlanExecutionStep = [
771
- "drs:RetryRecoveryPlanExecutionStep",
772
- ];
768
+ DRSOperations.RetryRecoveryPlanExecutionStep = [];
773
769
  /** IAM actions required for the ReverseReplication API call. */
774
770
  DRSOperations.ReverseReplication = ["drs:ReverseReplication"];
775
771
  /** IAM actions required for the StartFailbackLaunch API call. */
@@ -780,9 +776,7 @@ DRSOperations.StartRecovery = [
780
776
  "drs:TagResource",
781
777
  ];
782
778
  /** IAM actions required for the StartRecoveryPlanExecution API call. */
783
- DRSOperations.StartRecoveryPlanExecution = [
784
- "drs:StartRecoveryPlanExecution",
785
- ];
779
+ DRSOperations.StartRecoveryPlanExecution = [];
786
780
  /** IAM actions required for the StartReplication API call. */
787
781
  DRSOperations.StartReplication = ["drs:StartReplication"];
788
782
  /** IAM actions required for the StartSourceNetworkRecovery API call. */
@@ -825,9 +819,7 @@ DRSOperations.UpdateLaunchConfigurationTemplate = [
825
819
  /** IAM actions required for the UpdateRecoveryPlan API call. */
826
820
  DRSOperations.UpdateRecoveryPlan = ["drs:UpdateRecoveryPlan"];
827
821
  /** IAM actions required for the UpdateRecoveryPlanExecutionStep API call. */
828
- DRSOperations.UpdateRecoveryPlanExecutionStep = [
829
- "drs:UpdateRecoveryPlanExecutionStep",
830
- ];
822
+ DRSOperations.UpdateRecoveryPlanExecutionStep = [];
831
823
  /** IAM actions required for the UpdateRecoveryPlanStep API call. */
832
824
  DRSOperations.UpdateRecoveryPlanStep = [
833
825
  "drs:UpdateRecoveryPlanStep",
@@ -877,7 +869,7 @@ class DRSConditions {
877
869
  }
878
870
  exports.DRSConditions = DRSConditions;
879
871
  _d = JSII_RTTI_SYMBOL_1;
880
- DRSConditions[_d] = { fqn: "@cdk_utils/iam.drs.DRSConditions", version: "1.9.0" };
872
+ DRSConditions[_d] = { fqn: "@cdk_utils/iam.drs.DRSConditions", version: "1.10.0" };
881
873
  /** Condition keys applicable to the AssociateSourceNetworkStack action. */
882
874
  DRSConditions.AssociateSourceNetworkStackConditionKeys = [
883
875
  "aws:RequestTag/${TagKey}",
@@ -973,4 +965,4 @@ DRSConditions.AWS_TAG_KEYS = "aws:TagKeys";
973
965
  DRSConditions.CREATE_ACTION = "drs:CreateAction";
974
966
  /** Condition key: drs:EC2InstanceARN (ARN) */
975
967
  DRSConditions.EC2_INSTANCE_ARN = "drs:EC2InstanceARN";
976
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9kcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCwwQ0FBMEM7QUFDMUMsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsVUFBVTs7QUFBdkIsZ0NBa1pDOzs7QUFqWkEsOEJBQThCO0FBQ2QseUJBQWMsR0FBRyxLQUFLLENBQUM7QUFFdkMsa0VBQWtFO0FBQ2xELDBEQUErQyxHQUM5RCxxREFBcUQsQ0FBQztBQUN2RCw4Q0FBOEM7QUFDOUIsc0NBQTJCLEdBQzFDLGlDQUFpQyxDQUFDO0FBQ25DLHVEQUF1RDtBQUN2QywrQ0FBb0MsR0FDbkQsMENBQTBDLENBQUM7QUFDNUMsbURBQW1EO0FBQ25DLDJDQUFnQyxHQUMvQyxzQ0FBc0MsQ0FBQztBQUN4Qyw4Q0FBOEM7QUFDOUIsc0NBQTJCLEdBQzFDLGlDQUFpQyxDQUFDO0FBQ25DLGdEQUFnRDtBQUNoQyx3Q0FBNkIsR0FDNUMsbUNBQW1DLENBQUM7QUFDckMsNkNBQTZDO0FBQzdCLHFDQUEwQixHQUFHLGdDQUFnQyxDQUFDO0FBQzlFLG9EQUFvRDtBQUNwQyw0Q0FBaUMsR0FDaEQsdUNBQXVDLENBQUM7QUFDekMsK0NBQStDO0FBQy9CLHVDQUE0QixHQUMzQyxrQ0FBa0MsQ0FBQztBQUNwQyxxQ0FBcUM7QUFDckIsNkJBQWtCLEdBQUcsd0JBQXdCLENBQUM7QUFDOUQseUNBQXlDO0FBQ3pCLGlDQUFzQixHQUFHLDRCQUE0QixDQUFDO0FBQ3RFLHlEQUF5RDtBQUN6QyxpREFBc0MsR0FDckQsNENBQTRDLENBQUM7QUFDOUMsc0NBQXNDO0FBQ3RCLDhCQUFtQixHQUFHLHlCQUF5QixDQUFDO0FBQ2hFLDJDQUEyQztBQUMzQixtQ0FBd0IsR0FBRyw4QkFBOEIsQ0FBQztBQUMx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QTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsMEVBQTBFO0FBQzFELHFEQUF1QyxHQUFhO0lBQ25FLDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDBFQUEwRTtBQUMxRCxxREFBdUMsR0FBYTtJQUNuRSwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRiwyREFBMkQ7QUFDM0Msc0NBQXdCLEdBQWE7SUFDcEQsMEJBQTBCO0lBQzFCLGFBQWE7SUFDYixrQkFBa0I7Q0FDbEIsQ0FBQztBQUNGLDBFQUEwRTtBQUMxRCxxREFBdUMsR0FBYTtJQUNuRSwwQkFBMEI7SUFDMUIsYUFBYTtDQUNiLENBQUM7QUFDRiw2REFBNkQ7QUFDN0Msd0NBQTBCLEdBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUV2RSx1REFBdUQ7QUFDdkMsNkJBQWUsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCx3REFBd0Q7QUFDeEMsOEJBQWdCLEdBQUcsMkJBQTJCLENBQUM7QUFDL0QsaURBQWlEO0FBQ2pDLDBCQUFZLEdBQUcsYUFBYSxDQUFDO0FBQzdDLCtDQUErQztBQUMvQiwyQkFBYSxHQUFHLGtCQUFrQixDQUFDO0FBQ25ELDhDQUE4QztBQUM5Qiw4QkFBZ0IsR0FBRyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBBVVRPLUdFTkVSQVRFRCBGSUxFIOKAlCBETyBOT1QgRURJVCBNQU5VQUxMWVxuLy8gR2VuZXJhdGVkIGZyb20gQVdTIFNlcnZpY2UgQXV0aG9yaXphdGlvbiBSZWZlcmVuY2UgZGF0YVxuLy8gU291cmNlOiBkYXRhL3NlcnZpY2UtcmVmZXJlbmNlL2Rycy5qc29uXG4vLyBSdW4gYG5weCBwcm9qZW4gZ2VuZXJhdGUtY29uc3RhbnRzYCB0byByZWdlbmVyYXRlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIElBTSBhY3Rpb24gY29uc3RhbnRzIGZvciB0aGUgZHJzIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBEUlNBY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwiZHJzXCI7XG5cblx0LyoqIFtXcml0ZV0gZHJzOkFzc29jaWF0ZUZhaWxiYWNrQ2xpZW50VG9SZWNvdmVyeUluc3RhbmNlRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVGYWlsYmFja0NsaWVudFRvUmVjb3ZlcnlJbnN0YW5jZUZvckRycyA9XG5cdFx0XCJkcnM6QXNzb2NpYXRlRmFpbGJhY2tDbGllbnRUb1JlY292ZXJ5SW5zdGFuY2VGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkFzc29jaWF0ZVNvdXJjZU5ldHdvcmtTdGFjayAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlU291cmNlTmV0d29ya1N0YWNrID1cblx0XHRcImRyczpBc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2tcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkJhdGNoQ3JlYXRlVm9sdW1lU25hcHNob3RHcm91cEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQmF0Y2hDcmVhdGVWb2x1bWVTbmFwc2hvdEdyb3VwRm9yRHJzID1cblx0XHRcImRyczpCYXRjaENyZWF0ZVZvbHVtZVNuYXBzaG90R3JvdXBGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkJhdGNoRGVsZXRlU25hcHNob3RSZXF1ZXN0Rm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBCYXRjaERlbGV0ZVNuYXBzaG90UmVxdWVzdEZvckRycyA9XG5cdFx0XCJkcnM6QmF0Y2hEZWxldGVTbmFwc2hvdFJlcXVlc3RGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNhbmNlbFJlY292ZXJ5UGxhbkV4ZWN1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsUmVjb3ZlcnlQbGFuRXhlY3V0aW9uID1cblx0XHRcImRyczpDYW5jZWxSZWNvdmVyeVBsYW5FeGVjdXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNyZWF0ZUNvbnZlcnRlZFNuYXBzaG90Rm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb252ZXJ0ZWRTbmFwc2hvdEZvckRycyA9XG5cdFx0XCJkcnM6Q3JlYXRlQ29udmVydGVkU25hcHNob3RGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeHRlbmRlZFNvdXJjZVNlcnZlciA9IFwiZHJzOkNyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSA9XG5cdFx0XCJkcnM6Q3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVSZWNvdmVyeUluc3RhbmNlRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvdmVyeUluc3RhbmNlRm9yRHJzID1cblx0XHRcImRyczpDcmVhdGVSZWNvdmVyeUluc3RhbmNlRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVSZWNvdmVyeVBsYW4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY292ZXJ5UGxhbiA9IFwiZHJzOkNyZWF0ZVJlY292ZXJ5UGxhblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6Q3JlYXRlUmVjb3ZlcnlQbGFuU3RlcCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVjb3ZlcnlQbGFuU3RlcCA9IFwiZHJzOkNyZWF0ZVJlY292ZXJ5UGxhblN0ZXBcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNyZWF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSA9XG5cdFx0XCJkcnM6Q3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNyZWF0ZVNvdXJjZU5ldHdvcmsgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNvdXJjZU5ldHdvcmsgPSBcImRyczpDcmVhdGVTb3VyY2VOZXR3b3JrXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVTb3VyY2VTZXJ2ZXJGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNvdXJjZVNlcnZlckZvckRycyA9IFwiZHJzOkNyZWF0ZVNvdXJjZVNlcnZlckZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGVsZXRlSm9iICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVKb2IgPSBcImRyczpEZWxldGVKb2JcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZUxhdW5jaEFjdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTGF1bmNoQWN0aW9uID0gXCJkcnM6RGVsZXRlTGF1bmNoQWN0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEZWxldGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSA9XG5cdFx0XCJkcnM6RGVsZXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEZWxldGVSZWNvdmVyeUluc3RhbmNlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZWNvdmVyeUluc3RhbmNlID0gXCJkcnM6RGVsZXRlUmVjb3ZlcnlJbnN0YW5jZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGVsZXRlUmVjb3ZlcnlQbGFuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZWNvdmVyeVBsYW4gPSBcImRyczpEZWxldGVSZWNvdmVyeVBsYW5cIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVjb3ZlcnlQbGFuRXhlY3V0aW9uID1cblx0XHRcImRyczpEZWxldGVSZWNvdmVyeVBsYW5FeGVjdXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZVJlY292ZXJ5UGxhblN0ZXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY292ZXJ5UGxhblN0ZXAgPSBcImRyczpEZWxldGVSZWNvdmVyeVBsYW5TdGVwXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEZWxldGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgPVxuXHRcdFwiZHJzOkRlbGV0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEZWxldGVTb3VyY2VOZXR3b3JrICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTb3VyY2VOZXR3b3JrID0gXCJkcnM6RGVsZXRlU291cmNlTmV0d29ya1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGVsZXRlU291cmNlU2VydmVyICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVTb3VyY2VTZXJ2ZXIgPSBcImRyczpEZWxldGVTb3VyY2VTZXJ2ZXJcIjtcblx0LyoqIFtSZWFkXSBkcnM6RGVzY3JpYmVKb2JMb2dJdGVtcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVKb2JMb2dJdGVtcyA9IFwiZHJzOkRlc2NyaWJlSm9iTG9nSXRlbXNcIjtcblx0LyoqIFtSZWFkXSBkcnM6RGVzY3JpYmVKb2JzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUpvYnMgPSBcImRyczpEZXNjcmliZUpvYnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6RGVzY3JpYmVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZXMgPVxuXHRcdFwiZHJzOkRlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlc1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZVJlY292ZXJ5SW5zdGFuY2VzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlY292ZXJ5SW5zdGFuY2VzID0gXCJkcnM6RGVzY3JpYmVSZWNvdmVyeUluc3RhbmNlc1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZVJlY292ZXJ5U25hcHNob3RzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlY292ZXJ5U25hcHNob3RzID0gXCJkcnM6RGVzY3JpYmVSZWNvdmVyeVNuYXBzaG90c1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZXMgPVxuXHRcdFwiZHJzOkRlc2NyaWJlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlUmVwbGljYXRpb25TZXJ2ZXJBc3NvY2lhdGlvbnNGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUmVwbGljYXRpb25TZXJ2ZXJBc3NvY2lhdGlvbnNGb3JEcnMgPVxuXHRcdFwiZHJzOkRlc2NyaWJlUmVwbGljYXRpb25TZXJ2ZXJBc3NvY2lhdGlvbnNGb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6RGVzY3JpYmVTbmFwc2hvdFJlcXVlc3RzRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVNuYXBzaG90UmVxdWVzdHNGb3JEcnMgPVxuXHRcdFwiZHJzOkRlc2NyaWJlU25hcHNob3RSZXF1ZXN0c0ZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZVNvdXJjZU5ldHdvcmtzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVNvdXJjZU5ldHdvcmtzID0gXCJkcnM6RGVzY3JpYmVTb3VyY2VOZXR3b3Jrc1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZVNvdXJjZVNlcnZlcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU291cmNlU2VydmVycyA9IFwiZHJzOkRlc2NyaWJlU291cmNlU2VydmVyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGlzY29ubmVjdFJlY292ZXJ5SW5zdGFuY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2Nvbm5lY3RSZWNvdmVyeUluc3RhbmNlID0gXCJkcnM6RGlzY29ubmVjdFJlY292ZXJ5SW5zdGFuY2VcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRpc2Nvbm5lY3RTb3VyY2VTZXJ2ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2Nvbm5lY3RTb3VyY2VTZXJ2ZXIgPSBcImRyczpEaXNjb25uZWN0U291cmNlU2VydmVyXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpFeHBvcnRTb3VyY2VOZXR3b3JrQ2ZuVGVtcGxhdGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IEV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZSA9XG5cdFx0XCJkcnM6RXhwb3J0U291cmNlTmV0d29ya0NmblRlbXBsYXRlXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldEFnZW50Q29tbWFuZEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdlbnRDb21tYW5kRm9yRHJzID0gXCJkcnM6R2V0QWdlbnRDb21tYW5kRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldEFnZW50Q29uZmlybWVkUmVzdW1lSW5mb0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdlbnRDb25maXJtZWRSZXN1bWVJbmZvRm9yRHJzID1cblx0XHRcImRyczpHZXRBZ2VudENvbmZpcm1lZFJlc3VtZUluZm9Gb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0QWdlbnRJbnN0YWxsYXRpb25Bc3NldHNGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFnZW50SW5zdGFsbGF0aW9uQXNzZXRzRm9yRHJzID1cblx0XHRcImRyczpHZXRBZ2VudEluc3RhbGxhdGlvbkFzc2V0c0ZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRBZ2VudFJlcGxpY2F0aW9uSW5mb0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnMgPVxuXHRcdFwiZHJzOkdldEFnZW50UmVwbGljYXRpb25JbmZvRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldEFnZW50UnVudGltZUNvbmZpZ3VyYXRpb25Gb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFnZW50UnVudGltZUNvbmZpZ3VyYXRpb25Gb3JEcnMgPVxuXHRcdFwiZHJzOkdldEFnZW50UnVudGltZUNvbmZpZ3VyYXRpb25Gb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0QWdlbnRTbmFwc2hvdENyZWRpdHNGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFnZW50U25hcHNob3RDcmVkaXRzRm9yRHJzID1cblx0XHRcImRyczpHZXRBZ2VudFNuYXBzaG90Q3JlZGl0c0ZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRDaGFubmVsQ29tbWFuZHNGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldENoYW5uZWxDb21tYW5kc0ZvckRycyA9XG5cdFx0XCJkcnM6R2V0Q2hhbm5lbENvbW1hbmRzRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldEZhaWxiYWNrQ29tbWFuZEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RmFpbGJhY2tDb21tYW5kRm9yRHJzID1cblx0XHRcImRyczpHZXRGYWlsYmFja0NvbW1hbmRGb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0RmFpbGJhY2tMYXVuY2hSZXF1ZXN0ZWRGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEZhaWxiYWNrTGF1bmNoUmVxdWVzdGVkRm9yRHJzID1cblx0XHRcImRyczpHZXRGYWlsYmFja0xhdW5jaFJlcXVlc3RlZEZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZHJzOkdldEZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldExhdW5jaENvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldExhdW5jaENvbmZpZ3VyYXRpb24gPSBcImRyczpHZXRMYXVuY2hDb25maWd1cmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldFJlY292ZXJ5UGxhbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmVjb3ZlcnlQbGFuID0gXCJkcnM6R2V0UmVjb3ZlcnlQbGFuXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldFJlY292ZXJ5UGxhbkV4ZWN1dGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uID1cblx0XHRcImRyczpHZXRSZWNvdmVyeVBsYW5FeGVjdXRpb25cIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcCA9XG5cdFx0XCJkcnM6R2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcFwiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRSZWNvdmVyeVBsYW5TdGVwICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZWNvdmVyeVBsYW5TdGVwID0gXCJkcnM6R2V0UmVjb3ZlcnlQbGFuU3RlcFwiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJkcnM6R2V0UmVwbGljYXRpb25Db25maWd1cmF0aW9uXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldFN1Z2dlc3RlZEZhaWxiYWNrQ2xpZW50RGV2aWNlTWFwcGluZ0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0U3VnZ2VzdGVkRmFpbGJhY2tDbGllbnREZXZpY2VNYXBwaW5nRm9yRHJzID1cblx0XHRcImRyczpHZXRTdWdnZXN0ZWRGYWlsYmFja0NsaWVudERldmljZU1hcHBpbmdGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkluaXRpYWxpemVTZXJ2aWNlICovXG5cdHN0YXRpYyByZWFkb25seSBJbml0aWFsaXplU2VydmljZSA9IFwiZHJzOkluaXRpYWxpemVTZXJ2aWNlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpJc3N1ZUFnZW50Q2VydGlmaWNhdGVGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IElzc3VlQWdlbnRDZXJ0aWZpY2F0ZUZvckRycyA9XG5cdFx0XCJkcnM6SXNzdWVBZ2VudENlcnRpZmljYXRlRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkxpc3RFeHRlbnNpYmxlU291cmNlU2VydmVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEV4dGVuc2libGVTb3VyY2VTZXJ2ZXJzID1cblx0XHRcImRyczpMaXN0RXh0ZW5zaWJsZVNvdXJjZVNlcnZlcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6TGlzdExhdW5jaEFjdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RMYXVuY2hBY3Rpb25zID0gXCJkcnM6TGlzdExhdW5jaEFjdGlvbnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6TGlzdFJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXBzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcHMgPVxuXHRcdFwiZHJzOkxpc3RSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwc1wiO1xuXHQvKiogW1JlYWRdIGRyczpMaXN0UmVjb3ZlcnlQbGFuRXhlY3V0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY292ZXJ5UGxhbkV4ZWN1dGlvbnMgPSBcImRyczpMaXN0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uc1wiO1xuXHQvKiogW1JlYWRdIGRyczpMaXN0UmVjb3ZlcnlQbGFuU3RlcHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWNvdmVyeVBsYW5TdGVwcyA9IFwiZHJzOkxpc3RSZWNvdmVyeVBsYW5TdGVwc1wiO1xuXHQvKiogW1JlYWRdIGRyczpMaXN0UmVjb3ZlcnlQbGFucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY292ZXJ5UGxhbnMgPSBcImRyczpMaXN0UmVjb3ZlcnlQbGFuc1wiO1xuXHQvKiogW1JlYWRdIGRyczpMaXN0U3RhZ2luZ0FjY291bnRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U3RhZ2luZ0FjY291bnRzID0gXCJkcnM6TGlzdFN0YWdpbmdBY2NvdW50c1wiO1xuXHQvKiogW1JlYWRdIGRyczpMaXN0VGFnc0ZvclJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlID0gXCJkcnM6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5QWdlbnRBdXRoZW50aWNhdGlvbkZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTm90aWZ5QWdlbnRBdXRoZW50aWNhdGlvbkZvckRycyA9XG5cdFx0XCJkcnM6Tm90aWZ5QWdlbnRBdXRoZW50aWNhdGlvbkZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5QWdlbnRDb25uZWN0ZWRGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IE5vdGlmeUFnZW50Q29ubmVjdGVkRm9yRHJzID0gXCJkcnM6Tm90aWZ5QWdlbnRDb25uZWN0ZWRGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOk5vdGlmeUFnZW50RGlzY29ubmVjdGVkRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBOb3RpZnlBZ2VudERpc2Nvbm5lY3RlZEZvckRycyA9XG5cdFx0XCJkcnM6Tm90aWZ5QWdlbnREaXNjb25uZWN0ZWRGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOk5vdGlmeUFnZW50UmVwbGljYXRpb25Qcm9ncmVzc0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTm90aWZ5QWdlbnRSZXBsaWNhdGlvblByb2dyZXNzRm9yRHJzID1cblx0XHRcImRyczpOb3RpZnlBZ2VudFJlcGxpY2F0aW9uUHJvZ3Jlc3NGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOk5vdGlmeUNvbnNpc3RlbmN5QXR0YWluZWRGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IE5vdGlmeUNvbnNpc3RlbmN5QXR0YWluZWRGb3JEcnMgPVxuXHRcdFwiZHJzOk5vdGlmeUNvbnNpc3RlbmN5QXR0YWluZWRGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOk5vdGlmeVJlcGxpY2F0aW9uU2VydmVyQXV0aGVudGljYXRpb25Gb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IE5vdGlmeVJlcGxpY2F0aW9uU2VydmVyQXV0aGVudGljYXRpb25Gb3JEcnMgPVxuXHRcdFwiZHJzOk5vdGlmeVJlcGxpY2F0aW9uU2VydmVyQXV0aGVudGljYXRpb25Gb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOk5vdGlmeVZvbHVtZUV2ZW50Rm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBOb3RpZnlWb2x1bWVFdmVudEZvckRycyA9IFwiZHJzOk5vdGlmeVZvbHVtZUV2ZW50Rm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpQdXRMYXVuY2hBY3Rpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dExhdW5jaEFjdGlvbiA9IFwiZHJzOlB1dExhdW5jaEFjdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6UmVvcmRlclJlY292ZXJ5UGxhblN0ZXBzICovXG5cdHN0YXRpYyByZWFkb25seSBSZW9yZGVyUmVjb3ZlcnlQbGFuU3RlcHMgPSBcImRyczpSZW9yZGVyUmVjb3ZlcnlQbGFuU3RlcHNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlJldHJ5RGF0YVJlcGxpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBSZXRyeURhdGFSZXBsaWNhdGlvbiA9IFwiZHJzOlJldHJ5RGF0YVJlcGxpY2F0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpSZXRyeVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IFJldHJ5UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcCA9XG5cdFx0XCJkcnM6UmV0cnlSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpSZXZlcnNlUmVwbGljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJldmVyc2VSZXBsaWNhdGlvbiA9IFwiZHJzOlJldmVyc2VSZXBsaWNhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6U2VuZEFnZW50TG9nc0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZEFnZW50TG9nc0ZvckRycyA9IFwiZHJzOlNlbmRBZ2VudExvZ3NGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlNlbmRBZ2VudE1ldHJpY3NGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRBZ2VudE1ldHJpY3NGb3JEcnMgPSBcImRyczpTZW5kQWdlbnRNZXRyaWNzRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTZW5kQ2hhbm5lbENvbW1hbmRSZXN1bHRGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRDaGFubmVsQ29tbWFuZFJlc3VsdEZvckRycyA9XG5cdFx0XCJkcnM6U2VuZENoYW5uZWxDb21tYW5kUmVzdWx0Rm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTZW5kQ2xpZW50TG9nc0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZENsaWVudExvZ3NGb3JEcnMgPSBcImRyczpTZW5kQ2xpZW50TG9nc0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6U2VuZENsaWVudE1ldHJpY3NGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRDbGllbnRNZXRyaWNzRm9yRHJzID0gXCJkcnM6U2VuZENsaWVudE1ldHJpY3NGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlNlbmRWb2x1bWVTdGF0c0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZFZvbHVtZVN0YXRzRm9yRHJzID0gXCJkcnM6U2VuZFZvbHVtZVN0YXRzRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTdGFydEZhaWxiYWNrTGF1bmNoICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydEZhaWxiYWNrTGF1bmNoID0gXCJkcnM6U3RhcnRGYWlsYmFja0xhdW5jaFwiO1xuXHQvKiogW1dyaXRlXSBkcnM6U3RhcnRSZWNvdmVyeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRSZWNvdmVyeSA9IFwiZHJzOlN0YXJ0UmVjb3ZlcnlcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlN0YXJ0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFJlY292ZXJ5UGxhbkV4ZWN1dGlvbiA9IFwiZHJzOlN0YXJ0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTdGFydFJlcGxpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFJlcGxpY2F0aW9uID0gXCJkcnM6U3RhcnRSZXBsaWNhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6U3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnkgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0U291cmNlTmV0d29ya1JlY292ZXJ5ID0gXCJkcnM6U3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnlcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlN0YXJ0U291cmNlTmV0d29ya1JlcGxpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbiA9XG5cdFx0XCJkcnM6U3RhcnRTb3VyY2VOZXR3b3JrUmVwbGljYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOlN0b3BGYWlsYmFjayAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcEZhaWxiYWNrID0gXCJkcnM6U3RvcEZhaWxiYWNrXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTdG9wUmVwbGljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BSZXBsaWNhdGlvbiA9IFwiZHJzOlN0b3BSZXBsaWNhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6U3RvcFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbiA9XG5cdFx0XCJkcnM6U3RvcFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvblwiO1xuXHQvKiogW1RhZ2dpbmddIGRyczpUYWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2UgPSBcImRyczpUYWdSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VGVybWluYXRlUmVjb3ZlcnlJbnN0YW5jZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRlcm1pbmF0ZVJlY292ZXJ5SW5zdGFuY2VzID0gXCJkcnM6VGVybWluYXRlUmVjb3ZlcnlJbnN0YW5jZXNcIjtcblx0LyoqIFtUYWdnaW5nXSBkcnM6VW50YWdSZXNvdXJjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZSA9IFwiZHJzOlVudGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZUFnZW50QmFja2xvZ0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWdlbnRCYWNrbG9nRm9yRHJzID0gXCJkcnM6VXBkYXRlQWdlbnRCYWNrbG9nRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVBZ2VudENvbnZlcnNpb25JbmZvRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBZ2VudENvbnZlcnNpb25JbmZvRm9yRHJzID1cblx0XHRcImRyczpVcGRhdGVBZ2VudENvbnZlcnNpb25JbmZvRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVBZ2VudFJlcGxpY2F0aW9uSW5mb0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnMgPVxuXHRcdFwiZHJzOlVwZGF0ZUFnZW50UmVwbGljYXRpb25JbmZvRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVBZ2VudFJlcGxpY2F0aW9uUHJvY2Vzc1N0YXRlRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBZ2VudFJlcGxpY2F0aW9uUHJvY2Vzc1N0YXRlRm9yRHJzID1cblx0XHRcImRyczpVcGRhdGVBZ2VudFJlcGxpY2F0aW9uUHJvY2Vzc1N0YXRlRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVBZ2VudFNvdXJjZVByb3BlcnRpZXNGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFnZW50U291cmNlUHJvcGVydGllc0ZvckRycyA9XG5cdFx0XCJkcnM6VXBkYXRlQWdlbnRTb3VyY2VQcm9wZXJ0aWVzRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVGYWlsYmFja0NsaWVudERldmljZU1hcHBpbmdGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZhaWxiYWNrQ2xpZW50RGV2aWNlTWFwcGluZ0ZvckRycyA9XG5cdFx0XCJkcnM6VXBkYXRlRmFpbGJhY2tDbGllbnREZXZpY2VNYXBwaW5nRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVGYWlsYmFja0NsaWVudExhc3RTZWVuRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGYWlsYmFja0NsaWVudExhc3RTZWVuRm9yRHJzID1cblx0XHRcImRyczpVcGRhdGVGYWlsYmFja0NsaWVudExhc3RTZWVuRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiZHJzOlVwZGF0ZUZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uID0gXCJkcnM6VXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgPVxuXHRcdFwiZHJzOlVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlUmVjb3ZlcnlQbGFuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZWNvdmVyeVBsYW4gPSBcImRyczpVcGRhdGVSZWNvdmVyeVBsYW5cIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAgPVxuXHRcdFwiZHJzOlVwZGF0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXBcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZVJlY292ZXJ5UGxhblN0ZXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlY292ZXJ5UGxhblN0ZXAgPSBcImRyczpVcGRhdGVSZWNvdmVyeVBsYW5TdGVwXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVSZXBsaWNhdGlvbkNlcnRpZmljYXRlRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXBsaWNhdGlvbkNlcnRpZmljYXRlRm9yRHJzID1cblx0XHRcImRyczpVcGRhdGVSZXBsaWNhdGlvbkNlcnRpZmljYXRlRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJkcnM6VXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgPVxuXHRcdFwiZHJzOlVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlXCI7XG5cblx0LyoqIEFsbCByZWFkLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxSZWFkQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0RFJTQWN0aW9ucy5EZXNjcmliZUpvYkxvZ0l0ZW1zLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVKb2JzLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVzLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVSZWNvdmVyeUluc3RhbmNlcyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlUmVjb3ZlcnlTbmFwc2hvdHMsXG5cdFx0RFJTQWN0aW9ucy5EZXNjcmliZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlcyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlUmVwbGljYXRpb25TZXJ2ZXJBc3NvY2lhdGlvbnNGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5EZXNjcmliZVNuYXBzaG90UmVxdWVzdHNGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5EZXNjcmliZVNvdXJjZU5ldHdvcmtzLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVTb3VyY2VTZXJ2ZXJzLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0QWdlbnRDb21tYW5kRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0QWdlbnRDb25maXJtZWRSZXN1bWVJbmZvRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0QWdlbnRJbnN0YWxsYXRpb25Bc3NldHNGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRBZ2VudFJlcGxpY2F0aW9uSW5mb0ZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEFnZW50UnVudGltZUNvbmZpZ3VyYXRpb25Gb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRBZ2VudFNuYXBzaG90Q3JlZGl0c0ZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldENoYW5uZWxDb21tYW5kc0ZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEZhaWxiYWNrQ29tbWFuZEZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEZhaWxiYWNrTGF1bmNoUmVxdWVzdGVkRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0RmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRMYXVuY2hDb25maWd1cmF0aW9uLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0UmVjb3ZlcnlQbGFuLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcCxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldFJlY292ZXJ5UGxhblN0ZXAsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRTdWdnZXN0ZWRGYWlsYmFja0NsaWVudERldmljZU1hcHBpbmdGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5MaXN0RXh0ZW5zaWJsZVNvdXJjZVNlcnZlcnMsXG5cdFx0RFJTQWN0aW9ucy5MaXN0TGF1bmNoQWN0aW9ucyxcblx0XHREUlNBY3Rpb25zLkxpc3RSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwcyxcblx0XHREUlNBY3Rpb25zLkxpc3RSZWNvdmVyeVBsYW5FeGVjdXRpb25zLFxuXHRcdERSU0FjdGlvbnMuTGlzdFJlY292ZXJ5UGxhblN0ZXBzLFxuXHRcdERSU0FjdGlvbnMuTGlzdFJlY292ZXJ5UGxhbnMsXG5cdFx0RFJTQWN0aW9ucy5MaXN0U3RhZ2luZ0FjY291bnRzLFxuXHRcdERSU0FjdGlvbnMuTGlzdFRhZ3NGb3JSZXNvdXJjZSxcblx0XTtcblx0LyoqIEFsbCB3cml0ZS1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsV3JpdGVBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHREUlNBY3Rpb25zLkFzc29jaWF0ZUZhaWxiYWNrQ2xpZW50VG9SZWNvdmVyeUluc3RhbmNlRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuQXNzb2NpYXRlU291cmNlTmV0d29ya1N0YWNrLFxuXHRcdERSU0FjdGlvbnMuQmF0Y2hDcmVhdGVWb2x1bWVTbmFwc2hvdEdyb3VwRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuQmF0Y2hEZWxldGVTbmFwc2hvdFJlcXVlc3RGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5DYW5jZWxSZWNvdmVyeVBsYW5FeGVjdXRpb24sXG5cdFx0RFJTQWN0aW9ucy5DcmVhdGVDb252ZXJ0ZWRTbmFwc2hvdEZvckRycyxcblx0XHREUlNBY3Rpb25zLkNyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyLFxuXHRcdERSU0FjdGlvbnMuQ3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlLFxuXHRcdERSU0FjdGlvbnMuQ3JlYXRlUmVjb3ZlcnlJbnN0YW5jZUZvckRycyxcblx0XHREUlNBY3Rpb25zLkNyZWF0ZVJlY292ZXJ5UGxhbixcblx0XHREUlNBY3Rpb25zLkNyZWF0ZVJlY292ZXJ5UGxhblN0ZXAsXG5cdFx0RFJTQWN0aW9ucy5DcmVhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSxcblx0XHREUlNBY3Rpb25zLkNyZWF0ZVNvdXJjZU5ldHdvcmssXG5cdFx0RFJTQWN0aW9ucy5DcmVhdGVTb3VyY2VTZXJ2ZXJGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVKb2IsXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVMYXVuY2hBY3Rpb24sXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUsXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVSZWNvdmVyeUluc3RhbmNlLFxuXHRcdERSU0FjdGlvbnMuRGVsZXRlUmVjb3ZlcnlQbGFuLFxuXHRcdERSU0FjdGlvbnMuRGVsZXRlUmVjb3ZlcnlQbGFuRXhlY3V0aW9uLFxuXHRcdERSU0FjdGlvbnMuRGVsZXRlUmVjb3ZlcnlQbGFuU3RlcCxcblx0XHREUlNBY3Rpb25zLkRlbGV0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlLFxuXHRcdERSU0FjdGlvbnMuRGVsZXRlU291cmNlTmV0d29yayxcblx0XHREUlNBY3Rpb25zLkRlbGV0ZVNvdXJjZVNlcnZlcixcblx0XHREUlNBY3Rpb25zLkRpc2Nvbm5lY3RSZWNvdmVyeUluc3RhbmNlLFxuXHRcdERSU0FjdGlvbnMuRGlzY29ubmVjdFNvdXJjZVNlcnZlcixcblx0XHREUlNBY3Rpb25zLkV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZSxcblx0XHREUlNBY3Rpb25zLkluaXRpYWxpemVTZXJ2aWNlLFxuXHRcdERSU0FjdGlvbnMuSXNzdWVBZ2VudENlcnRpZmljYXRlRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuTm90aWZ5QWdlbnRBdXRoZW50aWNhdGlvbkZvckRycyxcblx0XHREUlNBY3Rpb25zLk5vdGlmeUFnZW50Q29ubmVjdGVkRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuTm90aWZ5QWdlbnREaXNjb25uZWN0ZWRGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5Ob3RpZnlBZ2VudFJlcGxpY2F0aW9uUHJvZ3Jlc3NGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5Ob3RpZnlDb25zaXN0ZW5jeUF0dGFpbmVkRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuTm90aWZ5UmVwbGljYXRpb25TZXJ2ZXJBdXRoZW50aWNhdGlvbkZvckRycyxcblx0XHREUlNBY3Rpb25zLk5vdGlmeVZvbHVtZUV2ZW50Rm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuUHV0TGF1bmNoQWN0aW9uLFxuXHRcdERSU0FjdGlvbnMuUmVvcmRlclJlY292ZXJ5UGxhblN0ZXBzLFxuXHRcdERSU0FjdGlvbnMuUmV0cnlEYXRhUmVwbGljYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5SZXRyeVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAsXG5cdFx0RFJTQWN0aW9ucy5SZXZlcnNlUmVwbGljYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5TZW5kQWdlbnRMb2dzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuU2VuZEFnZW50TWV0cmljc0ZvckRycyxcblx0XHREUlNBY3Rpb25zLlNlbmRDaGFubmVsQ29tbWFuZFJlc3VsdEZvckRycyxcblx0XHREUlNBY3Rpb25zLlNlbmRDbGllbnRMb2dzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuU2VuZENsaWVudE1ldHJpY3NGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5TZW5kVm9sdW1lU3RhdHNGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5TdGFydEZhaWxiYWNrTGF1bmNoLFxuXHRcdERSU0FjdGlvbnMuU3RhcnRSZWNvdmVyeSxcblx0XHREUlNBY3Rpb25zLlN0YXJ0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uLFxuXHRcdERSU0FjdGlvbnMuU3RhcnRSZXBsaWNhdGlvbixcblx0XHREUlNBY3Rpb25zLlN0YXJ0U291cmNlTmV0d29ya1JlY292ZXJ5LFxuXHRcdERSU0FjdGlvbnMuU3RhcnRTb3VyY2VOZXR3b3JrUmVwbGljYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5TdG9wRmFpbGJhY2ssXG5cdFx0RFJTQWN0aW9ucy5TdG9wUmVwbGljYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5TdG9wU291cmNlTmV0d29ya1JlcGxpY2F0aW9uLFxuXHRcdERSU0FjdGlvbnMuVGVybWluYXRlUmVjb3ZlcnlJbnN0YW5jZXMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVBZ2VudEJhY2tsb2dGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVBZ2VudENvbnZlcnNpb25JbmZvRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlQWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVBZ2VudFJlcGxpY2F0aW9uUHJvY2Vzc1N0YXRlRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlQWdlbnRTb3VyY2VQcm9wZXJ0aWVzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlRmFpbGJhY2tDbGllbnREZXZpY2VNYXBwaW5nRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlRmFpbGJhY2tDbGllbnRMYXN0U2VlbkZvckRycyxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZUZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvbixcblx0XHREUlNBY3Rpb25zLlVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZVJlY292ZXJ5UGxhbixcblx0XHREUlNBY3Rpb25zLlVwZGF0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVSZWNvdmVyeVBsYW5TdGVwLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlUmVwbGljYXRpb25DZXJ0aWZpY2F0ZUZvckRycyxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvbixcblx0XHREUlNBY3Rpb25zLlVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlLFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogQWxsIHRhZ2dpbmctbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFRhZ2dpbmdBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHREUlNBY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdERSU0FjdGlvbnMuVW50YWdSZXNvdXJjZSxcblx0XTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIEpvYlJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNKb2JSZXNvdXJjZUFyblByb3BzIHtcblx0LyoqIFRoZSBKb2JJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgam9iSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBKb2JSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTSm9iUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIEpvYklEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgam9iSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblByb3BzIHtcblx0LyoqIFRoZSBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZUlEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlY292ZXJ5SW5zdGFuY2VJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVjb3ZlcnlJbnN0YW5jZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlY292ZXJ5SW5zdGFuY2VJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlY292ZXJ5SW5zdGFuY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgUmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1JlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlY292ZXJ5UGxhbkV4ZWN1dGlvbklEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZWNvdmVyeVBsYW5FeGVjdXRpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFJlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVjb3ZlcnlQbGFuRXhlY3V0aW9uSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZWNvdmVyeVBsYW5FeGVjdXRpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgUmVjb3ZlcnlQbGFuUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1JlY292ZXJ5UGxhblJlc291cmNlQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlY292ZXJ5UGxhbklEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZWNvdmVyeVBsYW5JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFJlY292ZXJ5UGxhblJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNSZWNvdmVyeVBsYW5SZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVjb3ZlcnlQbGFuSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZWNvdmVyeVBsYW5JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblByb3BzIHtcblx0LyoqIFRoZSBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZUlEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIFNvdXJjZU5ldHdvcmtSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTU291cmNlTmV0d29ya1Jlc291cmNlQXJuUHJvcHMge1xuXHQvKiogVGhlIFNvdXJjZU5ldHdvcmtJRCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgc291cmNlTmV0d29ya0lkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgU291cmNlTmV0d29ya1Jlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNTb3VyY2VOZXR3b3JrUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFNvdXJjZU5ldHdvcmtJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHNvdXJjZU5ldHdvcmtJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgU291cmNlU2VydmVyUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1NvdXJjZVNlcnZlclJlc291cmNlQXJuUHJvcHMge1xuXHQvKiogVGhlIFNvdXJjZVNlcnZlcklEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBzb3VyY2VTZXJ2ZXJJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFNvdXJjZVNlcnZlclJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU291cmNlU2VydmVySUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBzb3VyY2VTZXJ2ZXJJZDogc3RyaW5nO1xufVxuXG5jb25zdCBKb2JSZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkcnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpqb2JcXC8oPzxqb2JJZD5bXjovP10rKSQvO1xuY29uc3QgTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZHJzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6bGF1bmNoLWNvbmZpZ3VyYXRpb24tdGVtcGxhdGVcXC8oPzxsYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVJZD5bXjovP10rKSQvO1xuY29uc3QgUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRyczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnJlY292ZXJ5LWluc3RhbmNlXFwvKD88cmVjb3ZlcnlJbnN0YW5jZUlkPlteOi8/XSspJC87XG5jb25zdCBSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkcnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpyZWNvdmVyeS1wbGFuLWV4ZWN1dGlvblxcLyg/PHJlY292ZXJ5UGxhbkV4ZWN1dGlvbklkPlteOi8/XSspJC87XG5jb25zdCBSZWNvdmVyeVBsYW5SZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkcnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpyZWNvdmVyeS1wbGFuXFwvKD88cmVjb3ZlcnlQbGFuSWQ+W146Lz9dKykkLztcbmNvbnN0IFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZHJzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6cmVwbGljYXRpb24tY29uZmlndXJhdGlvbi10ZW1wbGF0ZVxcLyg/PHJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlSWQ+W146Lz9dKykkLztcbmNvbnN0IFNvdXJjZU5ldHdvcmtSZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkcnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpzb3VyY2UtbmV0d29ya1xcLyg/PHNvdXJjZU5ldHdvcmtJZD5bXjovP10rKSQvO1xuY29uc3QgU291cmNlU2VydmVyUmVzb3VyY2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZHJzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6c291cmNlLXNlcnZlclxcLyg/PHNvdXJjZVNlcnZlcklkPlteOi8/XSspJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3IgZHJzIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIERSU1Jlc291cmNlcyB7XG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgSm9iUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgam9iUmVzb3VyY2UocHJvcHM6IERSU0pvYlJlc291cmNlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmRyczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpqb2IvJHtwcm9wcy5qb2JJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgSm9iUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEpvYlJlc291cmNlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEpvYlJlc291cmNlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIEpvYlJlc291cmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUpvYlJlc291cmNlQXJuKGFybjogc3RyaW5nKTogRFJTSm9iUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEpvYlJlc291cmNlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIEpvYlJlc291cmNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGpvYklkOiBtYXRjaC5ncm91cHMhLmpvYklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlKFxuXHRcdHByb3BzOiBEUlNMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmRyczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpsYXVuY2gtY29uZmlndXJhdGlvbi10ZW1wbGF0ZS8ke3Byb3BzLmxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IERSU0xhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0YEludmFsaWQgTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOOiAke2Fybn1gLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0bGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlSWQ6XG5cdFx0XHRcdG1hdGNoLmdyb3VwcyEubGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZShcblx0XHRwcm9wczogRFJTUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZHJzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnJlY292ZXJ5LWluc3RhbmNlLyR7cHJvcHMucmVjb3ZlcnlJbnN0YW5jZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlY292ZXJ5SW5zdGFuY2VJZDogbWF0Y2guZ3JvdXBzIS5yZWNvdmVyeUluc3RhbmNlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgUmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgcmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2UoXG5cdFx0cHJvcHM6IERSU1JlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZHJzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnJlY292ZXJ5LXBsYW4tZXhlY3V0aW9uLyR7cHJvcHMucmVjb3ZlcnlQbGFuRXhlY3V0aW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFJlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTUmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFJlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFJlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlY292ZXJ5UGxhbkV4ZWN1dGlvbklkOiBtYXRjaC5ncm91cHMhLnJlY292ZXJ5UGxhbkV4ZWN1dGlvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIFJlY292ZXJ5UGxhblJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHJlY292ZXJ5UGxhblJlc291cmNlKHByb3BzOiBEUlNSZWNvdmVyeVBsYW5SZXNvdXJjZUFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkcnM6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06cmVjb3ZlcnktcGxhbi8ke3Byb3BzLnJlY292ZXJ5UGxhbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBSZWNvdmVyeVBsYW5SZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUmVjb3ZlcnlQbGFuUmVzb3VyY2VBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gUmVjb3ZlcnlQbGFuUmVzb3VyY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgUmVjb3ZlcnlQbGFuUmVzb3VyY2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUmVjb3ZlcnlQbGFuUmVzb3VyY2VBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IERSU1JlY292ZXJ5UGxhblJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBSZWNvdmVyeVBsYW5SZXNvdXJjZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBSZWNvdmVyeVBsYW5SZXNvdXJjZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZWNvdmVyeVBsYW5JZDogbWF0Y2guZ3JvdXBzIS5yZWNvdmVyeVBsYW5JZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UoXG5cdFx0cHJvcHM6IERSU1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkcnM6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06cmVwbGljYXRpb24tY29uZmlndXJhdGlvbi10ZW1wbGF0ZS8ke3Byb3BzLnJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0YEludmFsaWQgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk46ICR7YXJufWAsXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRyZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkOlxuXHRcdFx0XHRtYXRjaC5ncm91cHMhLnJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgU291cmNlTmV0d29ya1Jlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHNvdXJjZU5ldHdvcmtSZXNvdXJjZShcblx0XHRwcm9wczogRFJTU291cmNlTmV0d29ya1Jlc291cmNlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZHJzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnNvdXJjZS1uZXR3b3JrLyR7cHJvcHMuc291cmNlTmV0d29ya0lkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBTb3VyY2VOZXR3b3JrUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFNvdXJjZU5ldHdvcmtSZXNvdXJjZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBTb3VyY2VOZXR3b3JrUmVzb3VyY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgU291cmNlTmV0d29ya1Jlc291cmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVNvdXJjZU5ldHdvcmtSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTU291cmNlTmV0d29ya1Jlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBTb3VyY2VOZXR3b3JrUmVzb3VyY2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgU291cmNlTmV0d29ya1Jlc291cmNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHNvdXJjZU5ldHdvcmtJZDogbWF0Y2guZ3JvdXBzIS5zb3VyY2VOZXR3b3JrSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgU291cmNlU2VydmVyUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgc291cmNlU2VydmVyUmVzb3VyY2UocHJvcHM6IERSU1NvdXJjZVNlcnZlclJlc291cmNlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmRyczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpzb3VyY2Utc2VydmVyLyR7cHJvcHMuc291cmNlU2VydmVySWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFNvdXJjZVNlcnZlclJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBTb3VyY2VTZXJ2ZXJSZXNvdXJjZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTU291cmNlU2VydmVyUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFNvdXJjZVNlcnZlclJlc291cmNlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFNvdXJjZVNlcnZlclJlc291cmNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHNvdXJjZVNlcnZlcklkOiBtYXRjaC5ncm91cHMhLnNvdXJjZVNlcnZlcklkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGRycy5cbiAqL1xuZXhwb3J0IGNsYXNzIERSU09wZXJhdGlvbnMge1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2sgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2s6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkFzc29jaWF0ZVNvdXJjZU5ldHdvcmtTdGFja1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDYW5jZWxSZWNvdmVyeVBsYW5FeGVjdXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxSZWNvdmVyeVBsYW5FeGVjdXRpb246IHN0cmluZ1tdID0gW107XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXh0ZW5kZWRTb3VyY2VTZXJ2ZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkNyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyXCIsXG5cdFx0XCJkcnM6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpDcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XHRcImRyczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVSZWNvdmVyeVBsYW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvdmVyeVBsYW46IHN0cmluZ1tdID0gW1wiZHJzOkNyZWF0ZVJlY292ZXJ5UGxhblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlUmVjb3ZlcnlQbGFuU3RlcCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY292ZXJ5UGxhblN0ZXA6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkNyZWF0ZVJlY292ZXJ5UGxhblN0ZXBcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6Q3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XHRcImRyczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVTb3VyY2VOZXR3b3JrIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU291cmNlTmV0d29yazogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6Q3JlYXRlU291cmNlTmV0d29ya1wiLFxuXHRcdFwiZHJzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUpvYiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUpvYjogc3RyaW5nW10gPSBbXCJkcnM6RGVsZXRlSm9iXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVMYXVuY2hBY3Rpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVMYXVuY2hBY3Rpb246IHN0cmluZ1tdID0gW1wiZHJzOkRlbGV0ZUxhdW5jaEFjdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZWxldGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVjb3ZlcnlJbnN0YW5jZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY292ZXJ5SW5zdGFuY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRlbGV0ZVJlY292ZXJ5SW5zdGFuY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVjb3ZlcnlQbGFuIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVjb3ZlcnlQbGFuOiBzdHJpbmdbXSA9IFtcImRyczpEZWxldGVSZWNvdmVyeVBsYW5cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvbjogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVjb3ZlcnlQbGFuU3RlcCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY292ZXJ5UGxhblN0ZXA6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRlbGV0ZVJlY292ZXJ5UGxhblN0ZXBcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVsZXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlU291cmNlTmV0d29yayBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNvdXJjZU5ldHdvcms6IHN0cmluZ1tdID0gW1wiZHJzOkRlbGV0ZVNvdXJjZU5ldHdvcmtcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZVNvdXJjZVNlcnZlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNvdXJjZVNlcnZlcjogc3RyaW5nW10gPSBbXCJkcnM6RGVsZXRlU291cmNlU2VydmVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUpvYkxvZ0l0ZW1zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVKb2JMb2dJdGVtczogc3RyaW5nW10gPSBbXCJkcnM6RGVzY3JpYmVKb2JMb2dJdGVtc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVKb2JzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVKb2JzOiBzdHJpbmdbXSA9IFtcImRyczpEZXNjcmliZUpvYnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlczogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVzY3JpYmVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlUmVjb3ZlcnlJbnN0YW5jZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlY292ZXJ5SW5zdGFuY2VzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZXNjcmliZVJlY292ZXJ5SW5zdGFuY2VzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlUmVjb3ZlcnlTbmFwc2hvdHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlY292ZXJ5U25hcHNob3RzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZXNjcmliZVJlY292ZXJ5U25hcHNob3RzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRlc2NyaWJlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlU291cmNlTmV0d29ya3MgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVNvdXJjZU5ldHdvcmtzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZXNjcmliZVNvdXJjZU5ldHdvcmtzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlU291cmNlU2VydmVycyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU291cmNlU2VydmVyczogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVzY3JpYmVTb3VyY2VTZXJ2ZXJzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2Nvbm5lY3RSZWNvdmVyeUluc3RhbmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzY29ubmVjdFJlY292ZXJ5SW5zdGFuY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRpc2Nvbm5lY3RSZWNvdmVyeUluc3RhbmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERpc2Nvbm5lY3RTb3VyY2VTZXJ2ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNjb25uZWN0U291cmNlU2VydmVyOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEaXNjb25uZWN0U291cmNlU2VydmVyXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RXhwb3J0U291cmNlTmV0d29ya0NmblRlbXBsYXRlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6R2V0RmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0TGF1bmNoQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TGF1bmNoQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6R2V0TGF1bmNoQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZWNvdmVyeVBsYW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlY292ZXJ5UGxhbjogc3RyaW5nW10gPSBbXCJkcnM6R2V0UmVjb3ZlcnlQbGFuXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZWNvdmVyeVBsYW5FeGVjdXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlY292ZXJ5UGxhbkV4ZWN1dGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6R2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXA6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkdldFJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXBcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVjb3ZlcnlQbGFuU3RlcCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UmVjb3ZlcnlQbGFuU3RlcDogc3RyaW5nW10gPSBbXCJkcnM6R2V0UmVjb3ZlcnlQbGFuU3RlcFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVwbGljYXRpb25Db25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkdldFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBJbml0aWFsaXplU2VydmljZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEluaXRpYWxpemVTZXJ2aWNlOiBzdHJpbmdbXSA9IFtcImRyczpJbml0aWFsaXplU2VydmljZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEV4dGVuc2libGVTb3VyY2VTZXJ2ZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEV4dGVuc2libGVTb3VyY2VTZXJ2ZXJzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpMaXN0RXh0ZW5zaWJsZVNvdXJjZVNlcnZlcnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdExhdW5jaEFjdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TGF1bmNoQWN0aW9uczogc3RyaW5nW10gPSBbXCJkcnM6TGlzdExhdW5jaEFjdGlvbnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwczogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlY292ZXJ5UGxhbkV4ZWN1dGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6TGlzdFJlY292ZXJ5UGxhbkV4ZWN1dGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlY292ZXJ5UGxhblN0ZXBzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY292ZXJ5UGxhblN0ZXBzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpMaXN0UmVjb3ZlcnlQbGFuU3RlcHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlY292ZXJ5UGxhbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjb3ZlcnlQbGFuczogc3RyaW5nW10gPSBbXCJkcnM6TGlzdFJlY292ZXJ5UGxhbnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTdGFnaW5nQWNjb3VudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U3RhZ2luZ0FjY291bnRzOiBzdHJpbmdbXSA9IFtcImRyczpMaXN0U3RhZ2luZ0FjY291bnRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJkcnM6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0TGF1bmNoQWN0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0TGF1bmNoQWN0aW9uOiBzdHJpbmdbXSA9IFtcImRyczpQdXRMYXVuY2hBY3Rpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlb3JkZXJSZWNvdmVyeVBsYW5TdGVwcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlb3JkZXJSZWNvdmVyeVBsYW5TdGVwczogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6UmVvcmRlclJlY292ZXJ5UGxhblN0ZXBzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJldHJ5RGF0YVJlcGxpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmV0cnlEYXRhUmVwbGljYXRpb246IHN0cmluZ1tdID0gW1wiZHJzOlJldHJ5RGF0YVJlcGxpY2F0aW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZXRyeVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZXRyeVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXA6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlJldHJ5UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZXZlcnNlUmVwbGljYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZXZlcnNlUmVwbGljYXRpb246IHN0cmluZ1tdID0gW1wiZHJzOlJldmVyc2VSZXBsaWNhdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRGYWlsYmFja0xhdW5jaCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0RmFpbGJhY2tMYXVuY2g6IHN0cmluZ1tdID0gW107XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0UmVjb3ZlcnkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFJlY292ZXJ5OiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpTdGFydFJlY292ZXJ5XCIsXG5cdFx0XCJkcnM6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRSZWNvdmVyeVBsYW5FeGVjdXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFJlY292ZXJ5UGxhbkV4ZWN1dGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6U3RhcnRSZWNvdmVyeVBsYW5FeGVjdXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRSZXBsaWNhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0UmVwbGljYXRpb246IHN0cmluZ1tdID0gW1wiZHJzOlN0YXJ0UmVwbGljYXRpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0YXJ0U291cmNlTmV0d29ya1JlY292ZXJ5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRTb3VyY2VOZXR3b3JrUmVjb3Zlcnk6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlN0YXJ0U291cmNlTmV0d29ya1JlY292ZXJ5XCIsXG5cdFx0XCJkcnM6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRTb3VyY2VOZXR3b3JrUmVwbGljYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6U3RhcnRTb3VyY2VOZXR3b3JrUmVwbGljYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcEZhaWxiYWNrIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcEZhaWxiYWNrOiBzdHJpbmdbXSA9IFtcImRyczpTdG9wRmFpbGJhY2tcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BSZXBsaWNhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0b3BSZXBsaWNhdGlvbjogc3RyaW5nW10gPSBbXCJkcnM6U3RvcFJlcGxpY2F0aW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wU291cmNlTmV0d29ya1JlcGxpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6U3RvcFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImRyczpUYWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVGVybWluYXRlUmVjb3ZlcnlJbnN0YW5jZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlczogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6VGVybWluYXRlUmVjb3ZlcnlJbnN0YW5jZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVW50YWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wiZHJzOlVudGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlVwZGF0ZUZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6VXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVJlY292ZXJ5UGxhbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlY292ZXJ5UGxhbjogc3RyaW5nW10gPSBbXCJkcnM6VXBkYXRlUmVjb3ZlcnlQbGFuXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcDogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6VXBkYXRlUmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVSZWNvdmVyeVBsYW5TdGVwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVjb3ZlcnlQbGFuU3RlcDogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6VXBkYXRlUmVjb3ZlcnlQbGFuU3RlcFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiLFxuXHRdO1xufVxuXG4vKipcbiAqIENvbmRpdGlvbiBrZXkgY29uc3RhbnRzIGFuZCBidWlsZGVycyBmb3IgZHJzLlxuICovXG5leHBvcnQgY2xhc3MgRFJTQ29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBBc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2sgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlU291cmNlTmV0d29ya1N0YWNrQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVDb252ZXJ0ZWRTbmFwc2hvdEZvckRycyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb252ZXJ0ZWRTbmFwc2hvdEZvckRyc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRXh0ZW5kZWRTb3VyY2VTZXJ2ZXIgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXh0ZW5kZWRTb3VyY2VTZXJ2ZXJDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVJlY292ZXJ5SW5zdGFuY2VGb3JEcnMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVjb3ZlcnlJbnN0YW5jZUZvckRyc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlUmVjb3ZlcnlQbGFuIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY292ZXJ5UGxhbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9XG5cdFx0W1wiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsIFwiYXdzOlRhZ0tleXNcIl07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVTb3VyY2VOZXR3b3JrIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNvdXJjZU5ldHdvcmtDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVNvdXJjZVNlcnZlckZvckRycyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb3VyY2VTZXJ2ZXJGb3JEcnNDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBFeHBvcnRTb3VyY2VOZXR3b3JrQ2ZuVGVtcGxhdGVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFJldmVyc2VSZXBsaWNhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBSZXZlcnNlUmVwbGljYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFN0YXJ0RmFpbGJhY2tMYXVuY2ggYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRGYWlsYmFja0xhdW5jaENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRSZWNvdmVyeSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFJlY292ZXJ5Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTdGFydFJlY292ZXJ5UGxhbkV4ZWN1dGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFJlY292ZXJ5UGxhbkV4ZWN1dGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnkgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnlDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdFx0XCJkcnM6Q3JlYXRlQWN0aW9uXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlcyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVW50YWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXCJhd3M6VGFnS2V5c1wiXTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBkcnM6Q3JlYXRlQWN0aW9uIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBDUkVBVEVfQUNUSU9OID0gXCJkcnM6Q3JlYXRlQWN0aW9uXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBkcnM6RUMySW5zdGFuY2VBUk4gKEFSTikgKi9cblx0c3RhdGljIHJlYWRvbmx5IEVDMl9JTlNUQU5DRV9BUk4gPSBcImRyczpFQzJJbnN0YW5jZUFSTlwiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBkcnM6Q3JlYXRlQWN0aW9uYC5cblx0ICovXG5cdHN0YXRpYyBjcmVhdGVBY3Rpb24odmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJkcnM6Q3JlYXRlQWN0aW9uXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBkcnM6RUMySW5zdGFuY2VBUk5gLlxuXHQgKi9cblx0c3RhdGljIGVjMkluc3RhbmNlQVJOKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgQXJuRXF1YWxzOiB7IFwiZHJzOkVDMkluc3RhbmNlQVJOXCI6IHZhbHVlIH0gfTtcblx0fVxufVxuIl19
968
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9kcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCwwQ0FBMEM7QUFDMUMsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEsVUFBVTs7QUFBdkIsZ0NBa1pDOzs7QUFqWkEsOEJBQThCO0FBQ2QseUJBQWMsR0FBRyxLQUFLLENBQUM7QUFFdkMsa0VBQWtFO0FBQ2xELDBEQUErQyxHQUM5RCxxREFBcUQsQ0FBQztBQUN2RCw4Q0FBOEM7QUFDOUIsc0NBQTJCLEdBQzFDLGlDQUFpQyxDQUFDO0FBQ25DLHVEQUF1RDtBQUN2QywrQ0FBb0MsR0FDbkQsMENBQTBDLENBQUM7QUFDNUMsbURBQW1EO0FBQ25DLDJDQUFnQyxHQUMvQyxzQ0FBc0MsQ0FBQztBQUN4Qyw4Q0FBOEM7QUFDOUIsc0NBQTJCLEdBQzFDLGlDQUFpQyxDQUFDO0FBQ25DLGdEQUFnRDtBQUNoQyx3Q0FBNkIsR0FDNUMsbUNBQW1DLENBQUM7QUFDckMsNkNBQTZDO0FBQzdCLHFDQUEwQixHQUFHLGdDQUFnQyxDQUFDO0FBQzlFLG9EQUFvRDtBQUNwQyw0Q0FBaUMsR0FDaEQsdUNBQXVDLENBQUM7QUFDekMsK0NBQStDO0FBQy9CLHVDQUE0QixHQUMzQyxrQ0FBa0MsQ0FBQztBQUNwQyxxQ0FBcUM7QUFDckIsNkJBQWtCLEdBQUcsd0JBQXdCLENBQUM7QUFDOUQseUNBQXlDO0FBQ3pCLGlDQUFzQixHQUFHLDRCQUE0QixDQUFDO0FBQ3RFLHlEQUF5RDtBQUN6QyxpREFBc0MsR0FDckQsNENBQTRDLENBQUM7QUFDOUMsc0NBQXNDO0FBQ3RCLDhCQUFtQixHQUFHLHlCQUF5QixDQUFDO0FBQ2hFLDJDQUEyQztBQUMzQixtQ0FBd0IsR0FBRyw4QkFBOEIsQ0FBQztBQUMx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QWE7SUFDbkUsMEJBQTBCO0lBQzFCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsMEVBQTBFO0FBQzFELHFEQUF1QyxHQUFhO0lBQ25FLDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDJEQUEyRDtBQUMzQyxzQ0FBd0IsR0FBYTtJQUNwRCwwQkFBMEI7SUFDMUIsYUFBYTtJQUNiLGtCQUFrQjtDQUNsQixDQUFDO0FBQ0YsMEVBQTBFO0FBQzFELHFEQUF1QyxHQUFhO0lBQ25FLDBCQUEwQjtJQUMxQixhQUFhO0NBQ2IsQ0FBQztBQUNGLDZEQUE2RDtBQUM3Qyx3Q0FBMEIsR0FBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBRXZFLHVEQUF1RDtBQUN2Qyw2QkFBZSxHQUFHLDBCQUEwQixDQUFDO0FBQzdELHdEQUF3RDtBQUN4Qyw4QkFBZ0IsR0FBRywyQkFBMkIsQ0FBQztBQUMvRCxpREFBaUQ7QUFDakMsMEJBQVksR0FBRyxhQUFhLENBQUM7QUFDN0MsK0NBQStDO0FBQy9CLDJCQUFhLEdBQUcsa0JBQWtCLENBQUM7QUFDbkQsOENBQThDO0FBQzlCLDhCQUFnQixHQUFHLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFVVE8tR0VORVJBVEVEIEZJTEUg4oCUIERPIE5PVCBFRElUIE1BTlVBTExZXG4vLyBHZW5lcmF0ZWQgZnJvbSBBV1MgU2VydmljZSBBdXRob3JpemF0aW9uIFJlZmVyZW5jZSBkYXRhXG4vLyBTb3VyY2U6IGRhdGEvc2VydmljZS1yZWZlcmVuY2UvZHJzLmpzb25cbi8vIFJ1biBgbnB4IHByb2plbiBnZW5lcmF0ZS1jb25zdGFudHNgIHRvIHJlZ2VuZXJhdGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogSUFNIGFjdGlvbiBjb25zdGFudHMgZm9yIHRoZSBkcnMgc2VydmljZS5cbiAqL1xuZXhwb3J0IGNsYXNzIERSU0FjdGlvbnMge1xuXHQvKiogVGhlIElBTSBzZXJ2aWNlIHByZWZpeC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNFUlZJQ0VfUFJFRklYID0gXCJkcnNcIjtcblxuXHQvKiogW1dyaXRlXSBkcnM6QXNzb2NpYXRlRmFpbGJhY2tDbGllbnRUb1JlY292ZXJ5SW5zdGFuY2VGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFzc29jaWF0ZUZhaWxiYWNrQ2xpZW50VG9SZWNvdmVyeUluc3RhbmNlRm9yRHJzID1cblx0XHRcImRyczpBc3NvY2lhdGVGYWlsYmFja0NsaWVudFRvUmVjb3ZlcnlJbnN0YW5jZUZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6QXNzb2NpYXRlU291cmNlTmV0d29ya1N0YWNrICovXG5cdHN0YXRpYyByZWFkb25seSBBc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2sgPVxuXHRcdFwiZHJzOkFzc29jaWF0ZVNvdXJjZU5ldHdvcmtTdGFja1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6QmF0Y2hDcmVhdGVWb2x1bWVTbmFwc2hvdEdyb3VwRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBCYXRjaENyZWF0ZVZvbHVtZVNuYXBzaG90R3JvdXBGb3JEcnMgPVxuXHRcdFwiZHJzOkJhdGNoQ3JlYXRlVm9sdW1lU25hcHNob3RHcm91cEZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6QmF0Y2hEZWxldGVTbmFwc2hvdFJlcXVlc3RGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IEJhdGNoRGVsZXRlU25hcHNob3RSZXF1ZXN0Rm9yRHJzID1cblx0XHRcImRyczpCYXRjaERlbGV0ZVNuYXBzaG90UmVxdWVzdEZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Q2FuY2VsUmVjb3ZlcnlQbGFuRXhlY3V0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxSZWNvdmVyeVBsYW5FeGVjdXRpb24gPVxuXHRcdFwiZHJzOkNhbmNlbFJlY292ZXJ5UGxhbkV4ZWN1dGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6Q3JlYXRlQ29udmVydGVkU25hcHNob3RGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUNvbnZlcnRlZFNuYXBzaG90Rm9yRHJzID1cblx0XHRcImRyczpDcmVhdGVDb252ZXJ0ZWRTbmFwc2hvdEZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Q3JlYXRlRXh0ZW5kZWRTb3VyY2VTZXJ2ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUV4dGVuZGVkU291cmNlU2VydmVyID0gXCJkcnM6Q3JlYXRlRXh0ZW5kZWRTb3VyY2VTZXJ2ZXJcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlID1cblx0XHRcImRyczpDcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNyZWF0ZVJlY292ZXJ5SW5zdGFuY2VGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY292ZXJ5SW5zdGFuY2VGb3JEcnMgPVxuXHRcdFwiZHJzOkNyZWF0ZVJlY292ZXJ5SW5zdGFuY2VGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNyZWF0ZVJlY292ZXJ5UGxhbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVjb3ZlcnlQbGFuID0gXCJkcnM6Q3JlYXRlUmVjb3ZlcnlQbGFuXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpDcmVhdGVSZWNvdmVyeVBsYW5TdGVwICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVSZWNvdmVyeVBsYW5TdGVwID0gXCJkcnM6Q3JlYXRlUmVjb3ZlcnlQbGFuU3RlcFwiO1xuXHQvKiogW1dyaXRlXSBkcnM6Q3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlID1cblx0XHRcImRyczpDcmVhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6Q3JlYXRlU291cmNlTmV0d29yayAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU291cmNlTmV0d29yayA9IFwiZHJzOkNyZWF0ZVNvdXJjZU5ldHdvcmtcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkNyZWF0ZVNvdXJjZVNlcnZlckZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlU291cmNlU2VydmVyRm9yRHJzID0gXCJkcnM6Q3JlYXRlU291cmNlU2VydmVyRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEZWxldGVKb2IgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUpvYiA9IFwiZHJzOkRlbGV0ZUpvYlwiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGVsZXRlTGF1bmNoQWN0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVMYXVuY2hBY3Rpb24gPSBcImRyczpEZWxldGVMYXVuY2hBY3Rpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlID1cblx0XHRcImRyczpEZWxldGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZVJlY292ZXJ5SW5zdGFuY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY292ZXJ5SW5zdGFuY2UgPSBcImRyczpEZWxldGVSZWNvdmVyeUluc3RhbmNlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEZWxldGVSZWNvdmVyeVBsYW4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlY292ZXJ5UGxhbiA9IFwiZHJzOkRlbGV0ZVJlY292ZXJ5UGxhblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGVsZXRlUmVjb3ZlcnlQbGFuRXhlY3V0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZWNvdmVyeVBsYW5FeGVjdXRpb24gPVxuXHRcdFwiZHJzOkRlbGV0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGVsZXRlUmVjb3ZlcnlQbGFuU3RlcCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVjb3ZlcnlQbGFuU3RlcCA9IFwiZHJzOkRlbGV0ZVJlY292ZXJ5UGxhblN0ZXBcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSA9XG5cdFx0XCJkcnM6RGVsZXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkRlbGV0ZVNvdXJjZU5ldHdvcmsgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNvdXJjZU5ldHdvcmsgPSBcImRyczpEZWxldGVTb3VyY2VOZXR3b3JrXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEZWxldGVTb3VyY2VTZXJ2ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVNvdXJjZVNlcnZlciA9IFwiZHJzOkRlbGV0ZVNvdXJjZVNlcnZlclwiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZUpvYkxvZ0l0ZW1zICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUpvYkxvZ0l0ZW1zID0gXCJkcnM6RGVzY3JpYmVKb2JMb2dJdGVtc1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZUpvYnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlSm9icyA9IFwiZHJzOkRlc2NyaWJlSm9ic1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlcyA9XG5cdFx0XCJkcnM6RGVzY3JpYmVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlUmVjb3ZlcnlJbnN0YW5jZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUmVjb3ZlcnlJbnN0YW5jZXMgPSBcImRyczpEZXNjcmliZVJlY292ZXJ5SW5zdGFuY2VzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlUmVjb3ZlcnlTbmFwc2hvdHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUmVjb3ZlcnlTbmFwc2hvdHMgPSBcImRyczpEZXNjcmliZVJlY292ZXJ5U25hcHNob3RzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlcyA9XG5cdFx0XCJkcnM6RGVzY3JpYmVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNcIjtcblx0LyoqIFtSZWFkXSBkcnM6RGVzY3JpYmVSZXBsaWNhdGlvblNlcnZlckFzc29jaWF0aW9uc0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVSZXBsaWNhdGlvblNlcnZlckFzc29jaWF0aW9uc0ZvckRycyA9XG5cdFx0XCJkcnM6RGVzY3JpYmVSZXBsaWNhdGlvblNlcnZlckFzc29jaWF0aW9uc0ZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpEZXNjcmliZVNuYXBzaG90UmVxdWVzdHNGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU25hcHNob3RSZXF1ZXN0c0ZvckRycyA9XG5cdFx0XCJkcnM6RGVzY3JpYmVTbmFwc2hvdFJlcXVlc3RzRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlU291cmNlTmV0d29ya3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU291cmNlTmV0d29ya3MgPSBcImRyczpEZXNjcmliZVNvdXJjZU5ldHdvcmtzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkRlc2NyaWJlU291cmNlU2VydmVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTb3VyY2VTZXJ2ZXJzID0gXCJkcnM6RGVzY3JpYmVTb3VyY2VTZXJ2ZXJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpEaXNjb25uZWN0UmVjb3ZlcnlJbnN0YW5jZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzY29ubmVjdFJlY292ZXJ5SW5zdGFuY2UgPSBcImRyczpEaXNjb25uZWN0UmVjb3ZlcnlJbnN0YW5jZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6RGlzY29ubmVjdFNvdXJjZVNlcnZlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzY29ubmVjdFNvdXJjZVNlcnZlciA9IFwiZHJzOkRpc2Nvbm5lY3RTb3VyY2VTZXJ2ZXJcIjtcblx0LyoqIFtXcml0ZV0gZHJzOkV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRXhwb3J0U291cmNlTmV0d29ya0NmblRlbXBsYXRlID1cblx0XHRcImRyczpFeHBvcnRTb3VyY2VOZXR3b3JrQ2ZuVGVtcGxhdGVcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0QWdlbnRDb21tYW5kRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ2VudENvbW1hbmRGb3JEcnMgPSBcImRyczpHZXRBZ2VudENvbW1hbmRGb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0QWdlbnRDb25maXJtZWRSZXN1bWVJbmZvRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ2VudENvbmZpcm1lZFJlc3VtZUluZm9Gb3JEcnMgPVxuXHRcdFwiZHJzOkdldEFnZW50Q29uZmlybWVkUmVzdW1lSW5mb0ZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRBZ2VudEluc3RhbGxhdGlvbkFzc2V0c0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdlbnRJbnN0YWxsYXRpb25Bc3NldHNGb3JEcnMgPVxuXHRcdFwiZHJzOkdldEFnZW50SW5zdGFsbGF0aW9uQXNzZXRzRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldEFnZW50UmVwbGljYXRpb25JbmZvRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ2VudFJlcGxpY2F0aW9uSW5mb0ZvckRycyA9XG5cdFx0XCJkcnM6R2V0QWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0QWdlbnRSdW50aW1lQ29uZmlndXJhdGlvbkZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdlbnRSdW50aW1lQ29uZmlndXJhdGlvbkZvckRycyA9XG5cdFx0XCJkcnM6R2V0QWdlbnRSdW50aW1lQ29uZmlndXJhdGlvbkZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRBZ2VudFNuYXBzaG90Q3JlZGl0c0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdlbnRTbmFwc2hvdENyZWRpdHNGb3JEcnMgPVxuXHRcdFwiZHJzOkdldEFnZW50U25hcHNob3RDcmVkaXRzRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldENoYW5uZWxDb21tYW5kc0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0Q2hhbm5lbENvbW1hbmRzRm9yRHJzID1cblx0XHRcImRyczpHZXRDaGFubmVsQ29tbWFuZHNGb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0RmFpbGJhY2tDb21tYW5kRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRGYWlsYmFja0NvbW1hbmRGb3JEcnMgPVxuXHRcdFwiZHJzOkdldEZhaWxiYWNrQ29tbWFuZEZvckRyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRGYWlsYmFja0xhdW5jaFJlcXVlc3RlZEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0RmFpbGJhY2tMYXVuY2hSZXF1ZXN0ZWRGb3JEcnMgPVxuXHRcdFwiZHJzOkdldEZhaWxiYWNrTGF1bmNoUmVxdWVzdGVkRm9yRHJzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldEZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJkcnM6R2V0RmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0TGF1bmNoQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TGF1bmNoQ29uZmlndXJhdGlvbiA9IFwiZHJzOkdldExhdW5jaENvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0UmVjb3ZlcnlQbGFuICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZWNvdmVyeVBsYW4gPSBcImRyczpHZXRSZWNvdmVyeVBsYW5cIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZWNvdmVyeVBsYW5FeGVjdXRpb24gPVxuXHRcdFwiZHJzOkdldFJlY292ZXJ5UGxhbkV4ZWN1dGlvblwiO1xuXHQvKiogW1JlYWRdIGRyczpHZXRSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwID1cblx0XHRcImRyczpHZXRSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldFJlY292ZXJ5UGxhblN0ZXAgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlY292ZXJ5UGxhblN0ZXAgPSBcImRyczpHZXRSZWNvdmVyeVBsYW5TdGVwXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkdldFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UmVwbGljYXRpb25Db25maWd1cmF0aW9uID1cblx0XHRcImRyczpHZXRSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtSZWFkXSBkcnM6R2V0U3VnZ2VzdGVkRmFpbGJhY2tDbGllbnREZXZpY2VNYXBwaW5nRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRTdWdnZXN0ZWRGYWlsYmFja0NsaWVudERldmljZU1hcHBpbmdGb3JEcnMgPVxuXHRcdFwiZHJzOkdldFN1Z2dlc3RlZEZhaWxiYWNrQ2xpZW50RGV2aWNlTWFwcGluZ0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6SW5pdGlhbGl6ZVNlcnZpY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IEluaXRpYWxpemVTZXJ2aWNlID0gXCJkcnM6SW5pdGlhbGl6ZVNlcnZpY2VcIjtcblx0LyoqIFtXcml0ZV0gZHJzOklzc3VlQWdlbnRDZXJ0aWZpY2F0ZUZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSXNzdWVBZ2VudENlcnRpZmljYXRlRm9yRHJzID1cblx0XHRcImRyczpJc3N1ZUFnZW50Q2VydGlmaWNhdGVGb3JEcnNcIjtcblx0LyoqIFtSZWFkXSBkcnM6TGlzdEV4dGVuc2libGVTb3VyY2VTZXJ2ZXJzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RXh0ZW5zaWJsZVNvdXJjZVNlcnZlcnMgPVxuXHRcdFwiZHJzOkxpc3RFeHRlbnNpYmxlU291cmNlU2VydmVyc1wiO1xuXHQvKiogW1JlYWRdIGRyczpMaXN0TGF1bmNoQWN0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdExhdW5jaEFjdGlvbnMgPSBcImRyczpMaXN0TGF1bmNoQWN0aW9uc1wiO1xuXHQvKiogW1JlYWRdIGRyczpMaXN0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwcyA9XG5cdFx0XCJkcnM6TGlzdFJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXBzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkxpc3RSZWNvdmVyeVBsYW5FeGVjdXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjb3ZlcnlQbGFuRXhlY3V0aW9ucyA9IFwiZHJzOkxpc3RSZWNvdmVyeVBsYW5FeGVjdXRpb25zXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkxpc3RSZWNvdmVyeVBsYW5TdGVwcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY292ZXJ5UGxhblN0ZXBzID0gXCJkcnM6TGlzdFJlY292ZXJ5UGxhblN0ZXBzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkxpc3RSZWNvdmVyeVBsYW5zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjb3ZlcnlQbGFucyA9IFwiZHJzOkxpc3RSZWNvdmVyeVBsYW5zXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkxpc3RTdGFnaW5nQWNjb3VudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RTdGFnaW5nQWNjb3VudHMgPSBcImRyczpMaXN0U3RhZ2luZ0FjY291bnRzXCI7XG5cdC8qKiBbUmVhZF0gZHJzOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPSBcImRyczpMaXN0VGFnc0ZvclJlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpOb3RpZnlBZ2VudEF1dGhlbnRpY2F0aW9uRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBOb3RpZnlBZ2VudEF1dGhlbnRpY2F0aW9uRm9yRHJzID1cblx0XHRcImRyczpOb3RpZnlBZ2VudEF1dGhlbnRpY2F0aW9uRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpOb3RpZnlBZ2VudENvbm5lY3RlZEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTm90aWZ5QWdlbnRDb25uZWN0ZWRGb3JEcnMgPSBcImRyczpOb3RpZnlBZ2VudENvbm5lY3RlZEZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5QWdlbnREaXNjb25uZWN0ZWRGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IE5vdGlmeUFnZW50RGlzY29ubmVjdGVkRm9yRHJzID1cblx0XHRcImRyczpOb3RpZnlBZ2VudERpc2Nvbm5lY3RlZEZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5QWdlbnRSZXBsaWNhdGlvblByb2dyZXNzRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBOb3RpZnlBZ2VudFJlcGxpY2F0aW9uUHJvZ3Jlc3NGb3JEcnMgPVxuXHRcdFwiZHJzOk5vdGlmeUFnZW50UmVwbGljYXRpb25Qcm9ncmVzc0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5Q29uc2lzdGVuY3lBdHRhaW5lZEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTm90aWZ5Q29uc2lzdGVuY3lBdHRhaW5lZEZvckRycyA9XG5cdFx0XCJkcnM6Tm90aWZ5Q29uc2lzdGVuY3lBdHRhaW5lZEZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5UmVwbGljYXRpb25TZXJ2ZXJBdXRoZW50aWNhdGlvbkZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTm90aWZ5UmVwbGljYXRpb25TZXJ2ZXJBdXRoZW50aWNhdGlvbkZvckRycyA9XG5cdFx0XCJkcnM6Tm90aWZ5UmVwbGljYXRpb25TZXJ2ZXJBdXRoZW50aWNhdGlvbkZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6Tm90aWZ5Vm9sdW1lRXZlbnRGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IE5vdGlmeVZvbHVtZUV2ZW50Rm9yRHJzID0gXCJkcnM6Tm90aWZ5Vm9sdW1lRXZlbnRGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlB1dExhdW5jaEFjdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0TGF1bmNoQWN0aW9uID0gXCJkcnM6UHV0TGF1bmNoQWN0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpSZW9yZGVyUmVjb3ZlcnlQbGFuU3RlcHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlb3JkZXJSZWNvdmVyeVBsYW5TdGVwcyA9IFwiZHJzOlJlb3JkZXJSZWNvdmVyeVBsYW5TdGVwc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6UmV0cnlEYXRhUmVwbGljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJldHJ5RGF0YVJlcGxpY2F0aW9uID0gXCJkcnM6UmV0cnlEYXRhUmVwbGljYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOlJldHJ5UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmV0cnlSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwID1cblx0XHRcImRyczpSZXRyeVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXBcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlJldmVyc2VSZXBsaWNhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmV2ZXJzZVJlcGxpY2F0aW9uID0gXCJkcnM6UmV2ZXJzZVJlcGxpY2F0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTZW5kQWdlbnRMb2dzRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kQWdlbnRMb2dzRm9yRHJzID0gXCJkcnM6U2VuZEFnZW50TG9nc0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6U2VuZEFnZW50TWV0cmljc0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZEFnZW50TWV0cmljc0ZvckRycyA9IFwiZHJzOlNlbmRBZ2VudE1ldHJpY3NGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlNlbmRDaGFubmVsQ29tbWFuZFJlc3VsdEZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZENoYW5uZWxDb21tYW5kUmVzdWx0Rm9yRHJzID1cblx0XHRcImRyczpTZW5kQ2hhbm5lbENvbW1hbmRSZXN1bHRGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlNlbmRDbGllbnRMb2dzRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kQ2xpZW50TG9nc0ZvckRycyA9IFwiZHJzOlNlbmRDbGllbnRMb2dzRm9yRHJzXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTZW5kQ2xpZW50TWV0cmljc0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZENsaWVudE1ldHJpY3NGb3JEcnMgPSBcImRyczpTZW5kQ2xpZW50TWV0cmljc0ZvckRyc1wiO1xuXHQvKiogW1dyaXRlXSBkcnM6U2VuZFZvbHVtZVN0YXRzRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kVm9sdW1lU3RhdHNGb3JEcnMgPSBcImRyczpTZW5kVm9sdW1lU3RhdHNGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlN0YXJ0RmFpbGJhY2tMYXVuY2ggKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0RmFpbGJhY2tMYXVuY2ggPSBcImRyczpTdGFydEZhaWxiYWNrTGF1bmNoXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTdGFydFJlY292ZXJ5ICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFJlY292ZXJ5ID0gXCJkcnM6U3RhcnRSZWNvdmVyeVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6U3RhcnRSZWNvdmVyeVBsYW5FeGVjdXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uID0gXCJkcnM6U3RhcnRSZWNvdmVyeVBsYW5FeGVjdXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOlN0YXJ0UmVwbGljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0UmVwbGljYXRpb24gPSBcImRyczpTdGFydFJlcGxpY2F0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTdGFydFNvdXJjZU5ldHdvcmtSZWNvdmVyeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnkgPSBcImRyczpTdGFydFNvdXJjZU5ldHdvcmtSZWNvdmVyeVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6U3RhcnRTb3VyY2VOZXR3b3JrUmVwbGljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0U291cmNlTmV0d29ya1JlcGxpY2F0aW9uID1cblx0XHRcImRyczpTdGFydFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6U3RvcEZhaWxiYWNrICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wRmFpbGJhY2sgPSBcImRyczpTdG9wRmFpbGJhY2tcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlN0b3BSZXBsaWNhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFJlcGxpY2F0aW9uID0gXCJkcnM6U3RvcFJlcGxpY2F0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpTdG9wU291cmNlTmV0d29ya1JlcGxpY2F0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wU291cmNlTmV0d29ya1JlcGxpY2F0aW9uID1cblx0XHRcImRyczpTdG9wU291cmNlTmV0d29ya1JlcGxpY2F0aW9uXCI7XG5cdC8qKiBbVGFnZ2luZ10gZHJzOlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwiZHJzOlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGVybWluYXRlUmVjb3ZlcnlJbnN0YW5jZXMgPSBcImRyczpUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlc1wiO1xuXHQvKiogW1RhZ2dpbmddIGRyczpVbnRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlID0gXCJkcnM6VW50YWdSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlQWdlbnRCYWNrbG9nRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBZ2VudEJhY2tsb2dGb3JEcnMgPSBcImRyczpVcGRhdGVBZ2VudEJhY2tsb2dGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZUFnZW50Q29udmVyc2lvbkluZm9Gb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFnZW50Q29udmVyc2lvbkluZm9Gb3JEcnMgPVxuXHRcdFwiZHJzOlVwZGF0ZUFnZW50Q29udmVyc2lvbkluZm9Gb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZUFnZW50UmVwbGljYXRpb25JbmZvRm9yRHJzICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBZ2VudFJlcGxpY2F0aW9uSW5mb0ZvckRycyA9XG5cdFx0XCJkcnM6VXBkYXRlQWdlbnRSZXBsaWNhdGlvbkluZm9Gb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZUFnZW50UmVwbGljYXRpb25Qcm9jZXNzU3RhdGVGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFnZW50UmVwbGljYXRpb25Qcm9jZXNzU3RhdGVGb3JEcnMgPVxuXHRcdFwiZHJzOlVwZGF0ZUFnZW50UmVwbGljYXRpb25Qcm9jZXNzU3RhdGVGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZUFnZW50U291cmNlUHJvcGVydGllc0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlQWdlbnRTb3VyY2VQcm9wZXJ0aWVzRm9yRHJzID1cblx0XHRcImRyczpVcGRhdGVBZ2VudFNvdXJjZVByb3BlcnRpZXNGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZUZhaWxiYWNrQ2xpZW50RGV2aWNlTWFwcGluZ0ZvckRycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlRmFpbGJhY2tDbGllbnREZXZpY2VNYXBwaW5nRm9yRHJzID1cblx0XHRcImRyczpVcGRhdGVGYWlsYmFja0NsaWVudERldmljZU1hcHBpbmdGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZUZhaWxiYWNrQ2xpZW50TGFzdFNlZW5Gb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUZhaWxiYWNrQ2xpZW50TGFzdFNlZW5Gb3JEcnMgPVxuXHRcdFwiZHJzOlVwZGF0ZUZhaWxiYWNrQ2xpZW50TGFzdFNlZW5Gb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZUZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJkcnM6VXBkYXRlRmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb24gPSBcImRyczpVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSA9XG5cdFx0XCJkcnM6VXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlXCI7XG5cdC8qKiBbV3JpdGVdIGRyczpVcGRhdGVSZWNvdmVyeVBsYW4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlY292ZXJ5UGxhbiA9IFwiZHJzOlVwZGF0ZVJlY292ZXJ5UGxhblwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlUmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcCA9XG5cdFx0XCJkcnM6VXBkYXRlUmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcFwiO1xuXHQvKiogW1dyaXRlXSBkcnM6VXBkYXRlUmVjb3ZlcnlQbGFuU3RlcCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVjb3ZlcnlQbGFuU3RlcCA9IFwiZHJzOlVwZGF0ZVJlY292ZXJ5UGxhblN0ZXBcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZVJlcGxpY2F0aW9uQ2VydGlmaWNhdGVGb3JEcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlcGxpY2F0aW9uQ2VydGlmaWNhdGVGb3JEcnMgPVxuXHRcdFwiZHJzOlVwZGF0ZVJlcGxpY2F0aW9uQ2VydGlmaWNhdGVGb3JEcnNcIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uID1cblx0XHRcImRyczpVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gZHJzOlVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSA9XG5cdFx0XCJkcnM6VXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVcIjtcblxuXHQvKiogQWxsIHJlYWQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFJlYWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlSm9iTG9nSXRlbXMsXG5cdFx0RFJTQWN0aW9ucy5EZXNjcmliZUpvYnMsXG5cdFx0RFJTQWN0aW9ucy5EZXNjcmliZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZXMsXG5cdFx0RFJTQWN0aW9ucy5EZXNjcmliZVJlY292ZXJ5SW5zdGFuY2VzLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVSZWNvdmVyeVNuYXBzaG90cyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVzLFxuXHRcdERSU0FjdGlvbnMuRGVzY3JpYmVSZXBsaWNhdGlvblNlcnZlckFzc29jaWF0aW9uc0ZvckRycyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlU25hcHNob3RSZXF1ZXN0c0ZvckRycyxcblx0XHREUlNBY3Rpb25zLkRlc2NyaWJlU291cmNlTmV0d29ya3MsXG5cdFx0RFJTQWN0aW9ucy5EZXNjcmliZVNvdXJjZVNlcnZlcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRBZ2VudENvbW1hbmRGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRBZ2VudENvbmZpcm1lZFJlc3VtZUluZm9Gb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRBZ2VudEluc3RhbGxhdGlvbkFzc2V0c0ZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEFnZW50UmVwbGljYXRpb25JbmZvRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0QWdlbnRSdW50aW1lQ29uZmlndXJhdGlvbkZvckRycyxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldEFnZW50U25hcHNob3RDcmVkaXRzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0Q2hhbm5lbENvbW1hbmRzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0RmFpbGJhY2tDb21tYW5kRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0RmFpbGJhY2tMYXVuY2hSZXF1ZXN0ZWRGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbixcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldExhdW5jaENvbmZpZ3VyYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRSZWNvdmVyeVBsYW4sXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRSZWNvdmVyeVBsYW5FeGVjdXRpb24sXG5cdFx0RFJTQWN0aW9ucy5hY3Rpb25HZXRSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwLFxuXHRcdERSU0FjdGlvbnMuYWN0aW9uR2V0UmVjb3ZlcnlQbGFuU3RlcCxcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvbixcblx0XHREUlNBY3Rpb25zLmFjdGlvbkdldFN1Z2dlc3RlZEZhaWxiYWNrQ2xpZW50RGV2aWNlTWFwcGluZ0ZvckRycyxcblx0XHREUlNBY3Rpb25zLkxpc3RFeHRlbnNpYmxlU291cmNlU2VydmVycyxcblx0XHREUlNBY3Rpb25zLkxpc3RMYXVuY2hBY3Rpb25zLFxuXHRcdERSU0FjdGlvbnMuTGlzdFJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXBzLFxuXHRcdERSU0FjdGlvbnMuTGlzdFJlY292ZXJ5UGxhbkV4ZWN1dGlvbnMsXG5cdFx0RFJTQWN0aW9ucy5MaXN0UmVjb3ZlcnlQbGFuU3RlcHMsXG5cdFx0RFJTQWN0aW9ucy5MaXN0UmVjb3ZlcnlQbGFucyxcblx0XHREUlNBY3Rpb25zLkxpc3RTdGFnaW5nQWNjb3VudHMsXG5cdFx0RFJTQWN0aW9ucy5MaXN0VGFnc0ZvclJlc291cmNlLFxuXHRdO1xuXHQvKiogQWxsIHdyaXRlLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxXcml0ZUFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdERSU0FjdGlvbnMuQXNzb2NpYXRlRmFpbGJhY2tDbGllbnRUb1JlY292ZXJ5SW5zdGFuY2VGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5Bc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2ssXG5cdFx0RFJTQWN0aW9ucy5CYXRjaENyZWF0ZVZvbHVtZVNuYXBzaG90R3JvdXBGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5CYXRjaERlbGV0ZVNuYXBzaG90UmVxdWVzdEZvckRycyxcblx0XHREUlNBY3Rpb25zLkNhbmNlbFJlY292ZXJ5UGxhbkV4ZWN1dGlvbixcblx0XHREUlNBY3Rpb25zLkNyZWF0ZUNvbnZlcnRlZFNuYXBzaG90Rm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuQ3JlYXRlRXh0ZW5kZWRTb3VyY2VTZXJ2ZXIsXG5cdFx0RFJTQWN0aW9ucy5DcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUsXG5cdFx0RFJTQWN0aW9ucy5DcmVhdGVSZWNvdmVyeUluc3RhbmNlRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuQ3JlYXRlUmVjb3ZlcnlQbGFuLFxuXHRcdERSU0FjdGlvbnMuQ3JlYXRlUmVjb3ZlcnlQbGFuU3RlcCxcblx0XHREUlNBY3Rpb25zLkNyZWF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlLFxuXHRcdERSU0FjdGlvbnMuQ3JlYXRlU291cmNlTmV0d29yayxcblx0XHREUlNBY3Rpb25zLkNyZWF0ZVNvdXJjZVNlcnZlckZvckRycyxcblx0XHREUlNBY3Rpb25zLkRlbGV0ZUpvYixcblx0XHREUlNBY3Rpb25zLkRlbGV0ZUxhdW5jaEFjdGlvbixcblx0XHREUlNBY3Rpb25zLkRlbGV0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSxcblx0XHREUlNBY3Rpb25zLkRlbGV0ZVJlY292ZXJ5SW5zdGFuY2UsXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVSZWNvdmVyeVBsYW4sXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVSZWNvdmVyeVBsYW5FeGVjdXRpb24sXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVSZWNvdmVyeVBsYW5TdGVwLFxuXHRcdERSU0FjdGlvbnMuRGVsZXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUsXG5cdFx0RFJTQWN0aW9ucy5EZWxldGVTb3VyY2VOZXR3b3JrLFxuXHRcdERSU0FjdGlvbnMuRGVsZXRlU291cmNlU2VydmVyLFxuXHRcdERSU0FjdGlvbnMuRGlzY29ubmVjdFJlY292ZXJ5SW5zdGFuY2UsXG5cdFx0RFJTQWN0aW9ucy5EaXNjb25uZWN0U291cmNlU2VydmVyLFxuXHRcdERSU0FjdGlvbnMuRXhwb3J0U291cmNlTmV0d29ya0NmblRlbXBsYXRlLFxuXHRcdERSU0FjdGlvbnMuSW5pdGlhbGl6ZVNlcnZpY2UsXG5cdFx0RFJTQWN0aW9ucy5Jc3N1ZUFnZW50Q2VydGlmaWNhdGVGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5Ob3RpZnlBZ2VudEF1dGhlbnRpY2F0aW9uRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuTm90aWZ5QWdlbnRDb25uZWN0ZWRGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5Ob3RpZnlBZ2VudERpc2Nvbm5lY3RlZEZvckRycyxcblx0XHREUlNBY3Rpb25zLk5vdGlmeUFnZW50UmVwbGljYXRpb25Qcm9ncmVzc0ZvckRycyxcblx0XHREUlNBY3Rpb25zLk5vdGlmeUNvbnNpc3RlbmN5QXR0YWluZWRGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5Ob3RpZnlSZXBsaWNhdGlvblNlcnZlckF1dGhlbnRpY2F0aW9uRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuTm90aWZ5Vm9sdW1lRXZlbnRGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5QdXRMYXVuY2hBY3Rpb24sXG5cdFx0RFJTQWN0aW9ucy5SZW9yZGVyUmVjb3ZlcnlQbGFuU3RlcHMsXG5cdFx0RFJTQWN0aW9ucy5SZXRyeURhdGFSZXBsaWNhdGlvbixcblx0XHREUlNBY3Rpb25zLlJldHJ5UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcCxcblx0XHREUlNBY3Rpb25zLlJldmVyc2VSZXBsaWNhdGlvbixcblx0XHREUlNBY3Rpb25zLlNlbmRBZ2VudExvZ3NGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5TZW5kQWdlbnRNZXRyaWNzRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuU2VuZENoYW5uZWxDb21tYW5kUmVzdWx0Rm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuU2VuZENsaWVudExvZ3NGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5TZW5kQ2xpZW50TWV0cmljc0ZvckRycyxcblx0XHREUlNBY3Rpb25zLlNlbmRWb2x1bWVTdGF0c0ZvckRycyxcblx0XHREUlNBY3Rpb25zLlN0YXJ0RmFpbGJhY2tMYXVuY2gsXG5cdFx0RFJTQWN0aW9ucy5TdGFydFJlY292ZXJ5LFxuXHRcdERSU0FjdGlvbnMuU3RhcnRSZWNvdmVyeVBsYW5FeGVjdXRpb24sXG5cdFx0RFJTQWN0aW9ucy5TdGFydFJlcGxpY2F0aW9uLFxuXHRcdERSU0FjdGlvbnMuU3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnksXG5cdFx0RFJTQWN0aW9ucy5TdGFydFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbixcblx0XHREUlNBY3Rpb25zLlN0b3BGYWlsYmFjayxcblx0XHREUlNBY3Rpb25zLlN0b3BSZXBsaWNhdGlvbixcblx0XHREUlNBY3Rpb25zLlN0b3BTb3VyY2VOZXR3b3JrUmVwbGljYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5UZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlcyxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZUFnZW50QmFja2xvZ0ZvckRycyxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZUFnZW50Q29udmVyc2lvbkluZm9Gb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVBZ2VudFJlcGxpY2F0aW9uSW5mb0ZvckRycyxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZUFnZW50UmVwbGljYXRpb25Qcm9jZXNzU3RhdGVGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVBZ2VudFNvdXJjZVByb3BlcnRpZXNGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVGYWlsYmFja0NsaWVudERldmljZU1hcHBpbmdGb3JEcnMsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVGYWlsYmFja0NsaWVudExhc3RTZWVuRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlRmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24sXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlUmVjb3ZlcnlQbGFuLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlUmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcCxcblx0XHREUlNBY3Rpb25zLlVwZGF0ZVJlY292ZXJ5UGxhblN0ZXAsXG5cdFx0RFJTQWN0aW9ucy5VcGRhdGVSZXBsaWNhdGlvbkNlcnRpZmljYXRlRm9yRHJzLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uLFxuXHRcdERSU0FjdGlvbnMuVXBkYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUsXG5cdF07XG5cdC8qKiBBbGwgbGlzdC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsTGlzdEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBBbGwgcGVybWlzc2lvbi1tYW5hZ2VtZW50LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxQZXJtaXNzaW9uTWFuYWdlbWVudEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cdC8qKiBBbGwgdGFnZ2luZy1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsVGFnZ2luZ0FjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdERSU0FjdGlvbnMuVGFnUmVzb3VyY2UsXG5cdFx0RFJTQWN0aW9ucy5VbnRhZ1Jlc291cmNlLFxuXHRdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgSm9iUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU0pvYlJlc291cmNlQXJuUHJvcHMge1xuXHQvKiogVGhlIEpvYklEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBqb2JJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIEpvYlJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNKb2JSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgSm9iSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBqb2JJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU0xhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUHJvcHMge1xuXHQvKiogVGhlIExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZUlEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBsYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlSUQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBsYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVjb3ZlcnlJbnN0YW5jZUlEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZWNvdmVyeUluc3RhbmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1JlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVjb3ZlcnlJbnN0YW5jZUlEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVjb3ZlcnlJbnN0YW5jZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTUmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVjb3ZlcnlQbGFuRXhlY3V0aW9uSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlY292ZXJ5UGxhbkV4ZWN1dGlvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgUmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1JlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZWNvdmVyeVBsYW5FeGVjdXRpb25JRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlY292ZXJ5UGxhbkV4ZWN1dGlvbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBSZWNvdmVyeVBsYW5SZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTUmVjb3ZlcnlQbGFuUmVzb3VyY2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVjb3ZlcnlQbGFuSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlY292ZXJ5UGxhbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgUmVjb3ZlcnlQbGFuUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1JlY292ZXJ5UGxhblJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZWNvdmVyeVBsYW5JRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlY292ZXJ5UGxhbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlSUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZUlEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgU291cmNlTmV0d29ya1Jlc291cmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEUlNTb3VyY2VOZXR3b3JrUmVzb3VyY2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU291cmNlTmV0d29ya0lEIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBzb3VyY2VOZXR3b3JrSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBTb3VyY2VOZXR3b3JrUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1NvdXJjZU5ldHdvcmtSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgU291cmNlTmV0d29ya0lEIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgc291cmNlTmV0d29ya0lkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBTb3VyY2VTZXJ2ZXJSZXNvdXJjZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRFJTU291cmNlU2VydmVyUmVzb3VyY2VBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgU291cmNlU2VydmVySUQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHNvdXJjZVNlcnZlcklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgU291cmNlU2VydmVyUmVzb3VyY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERSU1NvdXJjZVNlcnZlclJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBTb3VyY2VTZXJ2ZXJJRCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHNvdXJjZVNlcnZlcklkOiBzdHJpbmc7XG59XG5cbmNvbnN0IEpvYlJlc291cmNlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRyczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOmpvYlxcLyg/PGpvYklkPlteOi8/XSspJC87XG5jb25zdCBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkcnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpsYXVuY2gtY29uZmlndXJhdGlvbi10ZW1wbGF0ZVxcLyg/PGxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZUlkPlteOi8/XSspJC87XG5jb25zdCBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6ZHJzOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6cmVjb3ZlcnktaW5zdGFuY2VcXC8oPzxyZWNvdmVyeUluc3RhbmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IFJlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRyczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnJlY292ZXJ5LXBsYW4tZXhlY3V0aW9uXFwvKD88cmVjb3ZlcnlQbGFuRXhlY3V0aW9uSWQ+W146Lz9dKykkLztcbmNvbnN0IFJlY292ZXJ5UGxhblJlc291cmNlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRyczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnJlY292ZXJ5LXBsYW5cXC8oPzxyZWNvdmVyeVBsYW5JZD5bXjovP10rKSQvO1xuY29uc3QgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkcnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpyZXBsaWNhdGlvbi1jb25maWd1cmF0aW9uLXRlbXBsYXRlXFwvKD88cmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVJZD5bXjovP10rKSQvO1xuY29uc3QgU291cmNlTmV0d29ya1Jlc291cmNlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmRyczooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnNvdXJjZS1uZXR3b3JrXFwvKD88c291cmNlTmV0d29ya0lkPlteOi8/XSspJC87XG5jb25zdCBTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTpkcnM6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpzb3VyY2Utc2VydmVyXFwvKD88c291cmNlU2VydmVySWQ+W146Lz9dKykkLztcblxuLyoqXG4gKiBBUk4gYnVpbGRlcnMsIHZhbGlkYXRvcnMsIGFuZCBwYXJzZXJzIGZvciBkcnMgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY2xhc3MgRFJTUmVzb3VyY2VzIHtcblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBKb2JSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBqb2JSZXNvdXJjZShwcm9wczogRFJTSm9iUmVzb3VyY2VBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZHJzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmpvYi8ke3Byb3BzLmpvYklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBKb2JSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkSm9iUmVzb3VyY2VBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gSm9iUmVzb3VyY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgSm9iUmVzb3VyY2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlSm9iUmVzb3VyY2VBcm4oYXJuOiBzdHJpbmcpOiBEUlNKb2JSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gSm9iUmVzb3VyY2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgSm9iUmVzb3VyY2UgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0am9iSWQ6IG1hdGNoLmdyb3VwcyEuam9iSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgbGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UoXG5cdFx0cHJvcHM6IERSU0xhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZHJzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmxhdW5jaC1jb25maWd1cmF0aW9uLXRlbXBsYXRlLyR7cHJvcHMubGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IExhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFxuXHRcdFx0XHRgSW52YWxpZCBMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk46ICR7YXJufWAsXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRsYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVJZDpcblx0XHRcdFx0bWF0Y2guZ3JvdXBzIS5sYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgcmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlKFxuXHRcdHByb3BzOiBEUlNSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2VBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkcnM6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06cmVjb3ZlcnktaW5zdGFuY2UvJHtwcm9wcy5yZWNvdmVyeUluc3RhbmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUmVjb3ZlcnlJbnN0YW5jZVJlc291cmNlQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBEUlNSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFJlY292ZXJ5SW5zdGFuY2VSZXNvdXJjZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBSZWNvdmVyeUluc3RhbmNlUmVzb3VyY2UgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVjb3ZlcnlJbnN0YW5jZUlkOiBtYXRjaC5ncm91cHMhLnJlY292ZXJ5SW5zdGFuY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyByZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZShcblx0XHRwcm9wczogRFJTUmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2VBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkcnM6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06cmVjb3ZlcnktcGxhbi1leGVjdXRpb24vJHtwcm9wcy5yZWNvdmVyeVBsYW5FeGVjdXRpb25JZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgUmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFJlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFJlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIFJlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVJlY292ZXJ5UGxhbkV4ZWN1dGlvblJlc291cmNlQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBEUlNSZWNvdmVyeVBsYW5FeGVjdXRpb25SZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgUmVjb3ZlcnlQbGFuRXhlY3V0aW9uUmVzb3VyY2UgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVjb3ZlcnlQbGFuRXhlY3V0aW9uSWQ6IG1hdGNoLmdyb3VwcyEucmVjb3ZlcnlQbGFuRXhlY3V0aW9uSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgUmVjb3ZlcnlQbGFuUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgcmVjb3ZlcnlQbGFuUmVzb3VyY2UocHJvcHM6IERSU1JlY292ZXJ5UGxhblJlc291cmNlQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmRyczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpyZWNvdmVyeS1wbGFuLyR7cHJvcHMucmVjb3ZlcnlQbGFuSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFJlY292ZXJ5UGxhblJlc291cmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRSZWNvdmVyeVBsYW5SZXNvdXJjZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBSZWNvdmVyeVBsYW5SZXNvdXJjZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBSZWNvdmVyeVBsYW5SZXNvdXJjZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VSZWNvdmVyeVBsYW5SZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogRFJTUmVjb3ZlcnlQbGFuUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFJlY292ZXJ5UGxhblJlc291cmNlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFJlY292ZXJ5UGxhblJlc291cmNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlY292ZXJ5UGxhbklkOiBtYXRjaC5ncm91cHMhLnJlY292ZXJ5UGxhbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgcmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZShcblx0XHRwcm9wczogRFJTUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmRyczoke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpyZXBsaWNhdGlvbi1jb25maWd1cmF0aW9uLXRlbXBsYXRlLyR7cHJvcHMucmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlUmVzb3VyY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVSZXNvdXJjZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBEUlNSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFxuXHRcdFx0XHRgSW52YWxpZCBSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVJlc291cmNlIEFSTjogJHthcm59YCxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlSWQ6XG5cdFx0XHRcdG1hdGNoLmdyb3VwcyEucmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBTb3VyY2VOZXR3b3JrUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgc291cmNlTmV0d29ya1Jlc291cmNlKFxuXHRcdHByb3BzOiBEUlNTb3VyY2VOZXR3b3JrUmVzb3VyY2VBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTpkcnM6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06c291cmNlLW5ldHdvcmsvJHtwcm9wcy5zb3VyY2VOZXR3b3JrSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFNvdXJjZU5ldHdvcmtSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkU291cmNlTmV0d29ya1Jlc291cmNlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFNvdXJjZU5ldHdvcmtSZXNvdXJjZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBTb3VyY2VOZXR3b3JrUmVzb3VyY2UgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlU291cmNlTmV0d29ya1Jlc291cmNlQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBEUlNTb3VyY2VOZXR3b3JrUmVzb3VyY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFNvdXJjZU5ldHdvcmtSZXNvdXJjZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBTb3VyY2VOZXR3b3JrUmVzb3VyY2UgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0c291cmNlTmV0d29ya0lkOiBtYXRjaC5ncm91cHMhLnNvdXJjZU5ldHdvcmtJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBTb3VyY2VTZXJ2ZXJSZXNvdXJjZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBzb3VyY2VTZXJ2ZXJSZXNvdXJjZShwcm9wczogRFJTU291cmNlU2VydmVyUmVzb3VyY2VBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06ZHJzOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnNvdXJjZS1zZXJ2ZXIvJHtwcm9wcy5zb3VyY2VTZXJ2ZXJJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgU291cmNlU2VydmVyUmVzb3VyY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFNvdXJjZVNlcnZlclJlc291cmNlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFNvdXJjZVNlcnZlclJlc291cmNlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIFNvdXJjZVNlcnZlclJlc291cmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVNvdXJjZVNlcnZlclJlc291cmNlQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBEUlNTb3VyY2VTZXJ2ZXJSZXNvdXJjZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gU291cmNlU2VydmVyUmVzb3VyY2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgU291cmNlU2VydmVyUmVzb3VyY2UgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0c291cmNlU2VydmVySWQ6IG1hdGNoLmdyb3VwcyEuc291cmNlU2VydmVySWQsXG5cdFx0fTtcblx0fVxufVxuXG4vKipcbiAqIEFQSSBvcGVyYXRpb24gdG8gcmVxdWlyZWQgSUFNIGFjdGlvbnMgbWFwcGluZyBmb3IgZHJzLlxuICovXG5leHBvcnQgY2xhc3MgRFJTT3BlcmF0aW9ucyB7XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEFzc29jaWF0ZVNvdXJjZU5ldHdvcmtTdGFjayBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFzc29jaWF0ZVNvdXJjZU5ldHdvcmtTdGFjazogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6QXNzb2NpYXRlU291cmNlTmV0d29ya1N0YWNrXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENhbmNlbFJlY292ZXJ5UGxhbkV4ZWN1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENhbmNlbFJlY292ZXJ5UGxhbkV4ZWN1dGlvbjogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlRXh0ZW5kZWRTb3VyY2VTZXJ2ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVFeHRlbmRlZFNvdXJjZVNlcnZlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6Q3JlYXRlRXh0ZW5kZWRTb3VyY2VTZXJ2ZXJcIixcblx0XHRcImRyczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGU6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkNyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiLFxuXHRcdFwiZHJzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVJlY292ZXJ5UGxhbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY292ZXJ5UGxhbjogc3RyaW5nW10gPSBbXCJkcnM6Q3JlYXRlUmVjb3ZlcnlQbGFuXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVSZWNvdmVyeVBsYW5TdGVwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVjb3ZlcnlQbGFuU3RlcDogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6Q3JlYXRlUmVjb3ZlcnlQbGFuU3RlcFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpDcmVhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiLFxuXHRcdFwiZHJzOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENyZWF0ZVNvdXJjZU5ldHdvcmsgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb3VyY2VOZXR3b3JrOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpDcmVhdGVTb3VyY2VOZXR3b3JrXCIsXG5cdFx0XCJkcnM6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlSm9iIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlSm9iOiBzdHJpbmdbXSA9IFtcImRyczpEZWxldGVKb2JcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlbGV0ZUxhdW5jaEFjdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZUxhdW5jaEFjdGlvbjogc3RyaW5nW10gPSBbXCJkcnM6RGVsZXRlTGF1bmNoQWN0aW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGUgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGU6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRlbGV0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVSZWNvdmVyeUluc3RhbmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVjb3ZlcnlJbnN0YW5jZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVsZXRlUmVjb3ZlcnlJbnN0YW5jZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVSZWNvdmVyeVBsYW4gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZWNvdmVyeVBsYW46IHN0cmluZ1tdID0gW1wiZHJzOkRlbGV0ZVJlY292ZXJ5UGxhblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVjb3ZlcnlQbGFuRXhlY3V0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVjb3ZlcnlQbGFuRXhlY3V0aW9uOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVSZWNvdmVyeVBsYW5TdGVwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVjb3ZlcnlQbGFuU3RlcDogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVsZXRlUmVjb3ZlcnlQbGFuU3RlcFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZWxldGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVTb3VyY2VOZXR3b3JrIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU291cmNlTmV0d29yazogc3RyaW5nW10gPSBbXCJkcnM6RGVsZXRlU291cmNlTmV0d29ya1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlU291cmNlU2VydmVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlU291cmNlU2VydmVyOiBzdHJpbmdbXSA9IFtcImRyczpEZWxldGVTb3VyY2VTZXJ2ZXJcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlSm9iTG9nSXRlbXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUpvYkxvZ0l0ZW1zOiBzdHJpbmdbXSA9IFtcImRyczpEZXNjcmliZUpvYkxvZ0l0ZW1zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUpvYnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUpvYnM6IHN0cmluZ1tdID0gW1wiZHJzOkRlc2NyaWJlSm9ic1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZXNjcmliZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVSZWNvdmVyeUluc3RhbmNlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUmVjb3ZlcnlJbnN0YW5jZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRlc2NyaWJlUmVjb3ZlcnlJbnN0YW5jZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVSZWNvdmVyeVNuYXBzaG90cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUmVjb3ZlcnlTbmFwc2hvdHM6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRlc2NyaWJlUmVjb3ZlcnlTbmFwc2hvdHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlczogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGVzY3JpYmVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZXNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVTb3VyY2VOZXR3b3JrcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlU291cmNlTmV0d29ya3M6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRlc2NyaWJlU291cmNlTmV0d29ya3NcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVTb3VyY2VTZXJ2ZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVTb3VyY2VTZXJ2ZXJzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpEZXNjcmliZVNvdXJjZVNlcnZlcnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGlzY29ubmVjdFJlY292ZXJ5SW5zdGFuY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNjb25uZWN0UmVjb3ZlcnlJbnN0YW5jZTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6RGlzY29ubmVjdFJlY292ZXJ5SW5zdGFuY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGlzY29ubmVjdFNvdXJjZVNlcnZlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERpc2Nvbm5lY3RTb3VyY2VTZXJ2ZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkRpc2Nvbm5lY3RTb3VyY2VTZXJ2ZXJcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRXhwb3J0U291cmNlTmV0d29ya0NmblRlbXBsYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRXhwb3J0U291cmNlTmV0d29ya0NmblRlbXBsYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpFeHBvcnRTb3VyY2VOZXR3b3JrQ2ZuVGVtcGxhdGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEZhaWxiYWNrUmVwbGljYXRpb25Db25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpHZXRGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRMYXVuY2hDb25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRMYXVuY2hDb25maWd1cmF0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpHZXRMYXVuY2hDb25maWd1cmF0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJlY292ZXJ5UGxhbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UmVjb3ZlcnlQbGFuOiBzdHJpbmdbXSA9IFtcImRyczpHZXRSZWNvdmVyeVBsYW5cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldFJlY292ZXJ5UGxhbkV4ZWN1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpHZXRSZWNvdmVyeVBsYW5FeGVjdXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uU3RlcDogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVjb3ZlcnlQbGFuU3RlcCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UmVjb3ZlcnlQbGFuU3RlcDogc3RyaW5nW10gPSBbXCJkcnM6R2V0UmVjb3ZlcnlQbGFuU3RlcFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVwbGljYXRpb25Db25maWd1cmF0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOkdldFJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBJbml0aWFsaXplU2VydmljZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEluaXRpYWxpemVTZXJ2aWNlOiBzdHJpbmdbXSA9IFtcImRyczpJbml0aWFsaXplU2VydmljZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEV4dGVuc2libGVTb3VyY2VTZXJ2ZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEV4dGVuc2libGVTb3VyY2VTZXJ2ZXJzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpMaXN0RXh0ZW5zaWJsZVNvdXJjZVNlcnZlcnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdExhdW5jaEFjdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0TGF1bmNoQWN0aW9uczogc3RyaW5nW10gPSBbXCJkcnM6TGlzdExhdW5jaEFjdGlvbnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwczogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlY292ZXJ5UGxhbkV4ZWN1dGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6TGlzdFJlY292ZXJ5UGxhbkV4ZWN1dGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlY292ZXJ5UGxhblN0ZXBzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFJlY292ZXJ5UGxhblN0ZXBzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpMaXN0UmVjb3ZlcnlQbGFuU3RlcHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFJlY292ZXJ5UGxhbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UmVjb3ZlcnlQbGFuczogc3RyaW5nW10gPSBbXCJkcnM6TGlzdFJlY292ZXJ5UGxhbnNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RTdGFnaW5nQWNjb3VudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0U3RhZ2luZ0FjY291bnRzOiBzdHJpbmdbXSA9IFtcImRyczpMaXN0U3RhZ2luZ0FjY291bnRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0VGFnc0ZvclJlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJkcnM6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0TGF1bmNoQWN0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0TGF1bmNoQWN0aW9uOiBzdHJpbmdbXSA9IFtcImRyczpQdXRMYXVuY2hBY3Rpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlb3JkZXJSZWNvdmVyeVBsYW5TdGVwcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlb3JkZXJSZWNvdmVyeVBsYW5TdGVwczogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6UmVvcmRlclJlY292ZXJ5UGxhblN0ZXBzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJldHJ5RGF0YVJlcGxpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmV0cnlEYXRhUmVwbGljYXRpb246IHN0cmluZ1tdID0gW1wiZHJzOlJldHJ5RGF0YVJlcGxpY2F0aW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZXRyeVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZXRyeVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXA6IHN0cmluZ1tdID0gW107XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJldmVyc2VSZXBsaWNhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJldmVyc2VSZXBsaWNhdGlvbjogc3RyaW5nW10gPSBbXCJkcnM6UmV2ZXJzZVJlcGxpY2F0aW9uXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydEZhaWxiYWNrTGF1bmNoIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRGYWlsYmFja0xhdW5jaDogc3RyaW5nW10gPSBbXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRSZWNvdmVyeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0UmVjb3Zlcnk6IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlN0YXJ0UmVjb3ZlcnlcIixcblx0XHRcImRyczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydFJlY292ZXJ5UGxhbkV4ZWN1dGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0UmVjb3ZlcnlQbGFuRXhlY3V0aW9uOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydFJlcGxpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRSZXBsaWNhdGlvbjogc3RyaW5nW10gPSBbXCJkcnM6U3RhcnRSZXBsaWNhdGlvblwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnkgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFNvdXJjZU5ldHdvcmtSZWNvdmVyeTogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6U3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnlcIixcblx0XHRcImRyczpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0U291cmNlTmV0d29ya1JlcGxpY2F0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpTdGFydFNvdXJjZU5ldHdvcmtSZXBsaWNhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdG9wRmFpbGJhY2sgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wRmFpbGJhY2s6IHN0cmluZ1tdID0gW1wiZHJzOlN0b3BGYWlsYmFja1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RvcFJlcGxpY2F0aW9uIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RvcFJlcGxpY2F0aW9uOiBzdHJpbmdbXSA9IFtcImRyczpTdG9wUmVwbGljYXRpb25cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFN0b3BTb3VyY2VOZXR3b3JrUmVwbGljYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdG9wU291cmNlTmV0d29ya1JlcGxpY2F0aW9uOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpTdG9wU291cmNlTmV0d29ya1JlcGxpY2F0aW9uXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wiZHJzOlRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRlcm1pbmF0ZVJlY292ZXJ5SW5zdGFuY2VzOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVbnRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJkcnM6VW50YWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlRmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVGYWlsYmFja1JlcGxpY2F0aW9uQ29uZmlndXJhdGlvbjogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6VXBkYXRlRmFpbGJhY2tSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvbiBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlVwZGF0ZUxhdW5jaENvbmZpZ3VyYXRpb25cIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlTGF1bmNoQ29uZmlndXJhdGlvblRlbXBsYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpVcGRhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUmVjb3ZlcnlQbGFuIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVjb3ZlcnlQbGFuOiBzdHJpbmdbXSA9IFtcImRyczpVcGRhdGVSZWNvdmVyeVBsYW5cIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVJlY292ZXJ5UGxhbkV4ZWN1dGlvblN0ZXAgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZWNvdmVyeVBsYW5FeGVjdXRpb25TdGVwOiBzdHJpbmdbXSA9IFtdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVSZWNvdmVyeVBsYW5TdGVwIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUmVjb3ZlcnlQbGFuU3RlcDogc3RyaW5nW10gPSBbXG5cdFx0XCJkcnM6VXBkYXRlUmVjb3ZlcnlQbGFuU3RlcFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb24gQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb246IHN0cmluZ1tdID0gW1xuXHRcdFwiZHJzOlVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVJlcGxpY2F0aW9uQ29uZmlndXJhdGlvblRlbXBsYXRlOiBzdHJpbmdbXSA9IFtcblx0XHRcImRyczpVcGRhdGVSZXBsaWNhdGlvbkNvbmZpZ3VyYXRpb25UZW1wbGF0ZVwiLFxuXHRdO1xufVxuXG4vKipcbiAqIENvbmRpdGlvbiBrZXkgY29uc3RhbnRzIGFuZCBidWlsZGVycyBmb3IgZHJzLlxuICovXG5leHBvcnQgY2xhc3MgRFJTQ29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBBc3NvY2lhdGVTb3VyY2VOZXR3b3JrU3RhY2sgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlU291cmNlTmV0d29ya1N0YWNrQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVDb252ZXJ0ZWRTbmFwc2hvdEZvckRycyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVDb252ZXJ0ZWRTbmFwc2hvdEZvckRyc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlRXh0ZW5kZWRTb3VyY2VTZXJ2ZXIgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlRXh0ZW5kZWRTb3VyY2VTZXJ2ZXJDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUxhdW5jaENvbmZpZ3VyYXRpb25UZW1wbGF0ZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVMYXVuY2hDb25maWd1cmF0aW9uVGVtcGxhdGVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVJlY292ZXJ5SW5zdGFuY2VGb3JEcnMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVjb3ZlcnlJbnN0YW5jZUZvckRyc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlUmVjb3ZlcnlQbGFuIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVJlY292ZXJ5UGxhbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGUgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUmVwbGljYXRpb25Db25maWd1cmF0aW9uVGVtcGxhdGVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9XG5cdFx0W1wiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsIFwiYXdzOlRhZ0tleXNcIl07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDcmVhdGVTb3VyY2VOZXR3b3JrIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVNvdXJjZU5ldHdvcmtDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVNvdXJjZVNlcnZlckZvckRycyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVTb3VyY2VTZXJ2ZXJGb3JEcnNDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEV4cG9ydFNvdXJjZU5ldHdvcmtDZm5UZW1wbGF0ZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBFeHBvcnRTb3VyY2VOZXR3b3JrQ2ZuVGVtcGxhdGVDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFJldmVyc2VSZXBsaWNhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBSZXZlcnNlUmVwbGljYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFN0YXJ0RmFpbGJhY2tMYXVuY2ggYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRGYWlsYmFja0xhdW5jaENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRSZWNvdmVyeSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFJlY292ZXJ5Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTdGFydFJlY292ZXJ5UGxhbkV4ZWN1dGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFJlY292ZXJ5UGxhbkV4ZWN1dGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnkgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRTb3VyY2VOZXR3b3JrUmVjb3ZlcnlDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdFx0XCJkcnM6Q3JlYXRlQWN0aW9uXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlcyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBUZXJtaW5hdGVSZWNvdmVyeUluc3RhbmNlc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVW50YWdSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXCJhd3M6VGFnS2V5c1wiXTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBkcnM6Q3JlYXRlQWN0aW9uIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBDUkVBVEVfQUNUSU9OID0gXCJkcnM6Q3JlYXRlQWN0aW9uXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBkcnM6RUMySW5zdGFuY2VBUk4gKEFSTikgKi9cblx0c3RhdGljIHJlYWRvbmx5IEVDMl9JTlNUQU5DRV9BUk4gPSBcImRyczpFQzJJbnN0YW5jZUFSTlwiO1xuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBkcnM6Q3JlYXRlQWN0aW9uYC5cblx0ICovXG5cdHN0YXRpYyBjcmVhdGVBY3Rpb24odmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJkcnM6Q3JlYXRlQWN0aW9uXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBkcnM6RUMySW5zdGFuY2VBUk5gLlxuXHQgKi9cblx0c3RhdGljIGVjMkluc3RhbmNlQVJOKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgQXJuRXF1YWxzOiB7IFwiZHJzOkVDMkluc3RhbmNlQVJOXCI6IHZhbHVlIH0gfTtcblx0fVxufVxuIl19