@cdk_utils/iam 1.33.0 → 1.35.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 (466) hide show
  1. package/.jsii +2 -2
  2. package/lib/generated/services/a2c.js +1 -1
  3. package/lib/generated/services/a4b.js +3 -3
  4. package/lib/generated/services/access-analyzer.js +4 -4
  5. package/lib/generated/services/account-access.js +4 -4
  6. package/lib/generated/services/account.d.ts +8 -0
  7. package/lib/generated/services/account.js +17 -5
  8. package/lib/generated/services/acm-pca.js +4 -4
  9. package/lib/generated/services/acm.js +4 -4
  10. package/lib/generated/services/aco-automation.js +4 -4
  11. package/lib/generated/services/action-recommendations.js +1 -1
  12. package/lib/generated/services/activate.js +1 -1
  13. package/lib/generated/services/agent-registry.js +4 -4
  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 +6 -5
  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.js +4 -4
  60. package/lib/generated/services/bcm-dashboards.js +4 -4
  61. package/lib/generated/services/bcm-data-exports.js +4 -4
  62. package/lib/generated/services/bcm-pricing-calculator.js +4 -4
  63. package/lib/generated/services/bcm-recommended-actions.js +2 -2
  64. package/lib/generated/services/bedrock-agentcore.js +4 -4
  65. package/lib/generated/services/bedrock-mantle.js +3 -3
  66. package/lib/generated/services/bedrock-websearch.js +2 -2
  67. package/lib/generated/services/bedrock.js +4 -4
  68. package/lib/generated/services/billing.js +4 -4
  69. package/lib/generated/services/billingconductor.js +4 -4
  70. package/lib/generated/services/braket.js +4 -4
  71. package/lib/generated/services/budgets.js +4 -4
  72. package/lib/generated/services/bugbust.js +3 -3
  73. package/lib/generated/services/cases.js +4 -4
  74. package/lib/generated/services/cassandra.js +4 -4
  75. package/lib/generated/services/ce.js +4 -4
  76. package/lib/generated/services/chatbot.js +4 -4
  77. package/lib/generated/services/chime.js +4 -4
  78. package/lib/generated/services/cleanrooms-ml.js +4 -4
  79. package/lib/generated/services/cleanrooms.js +4 -4
  80. package/lib/generated/services/cloud9.js +4 -4
  81. package/lib/generated/services/clouddirectory.js +3 -3
  82. package/lib/generated/services/cloudformation.js +4 -4
  83. package/lib/generated/services/cloudfront-keyvaluestore.js +3 -3
  84. package/lib/generated/services/cloudfront.js +4 -4
  85. package/lib/generated/services/cloudhsm.js +4 -4
  86. package/lib/generated/services/cloudsearch.js +3 -3
  87. package/lib/generated/services/cloudshell.js +3 -3
  88. package/lib/generated/services/cloudtrail-data.js +4 -4
  89. package/lib/generated/services/cloudtrail.js +4 -4
  90. package/lib/generated/services/cloudwatch.js +4 -4
  91. package/lib/generated/services/codeartifact.js +4 -4
  92. package/lib/generated/services/codebuild.js +4 -4
  93. package/lib/generated/services/codecatalyst.js +4 -4
  94. package/lib/generated/services/codecommit.js +4 -4
  95. package/lib/generated/services/codeconnections.js +4 -4
  96. package/lib/generated/services/codedeploy-commands-secure.js +1 -1
  97. package/lib/generated/services/codedeploy.js +4 -4
  98. package/lib/generated/services/codeguru-profiler.js +4 -4
  99. package/lib/generated/services/codeguru-reviewer.js +4 -4
  100. package/lib/generated/services/codeguru-security.js +4 -4
  101. package/lib/generated/services/codeguru.js +1 -1
  102. package/lib/generated/services/codepipeline.js +4 -4
  103. package/lib/generated/services/codestar-connections.js +4 -4
  104. package/lib/generated/services/codestar-notifications.js +4 -4
  105. package/lib/generated/services/codestar.js +3 -3
  106. package/lib/generated/services/codewhisperer.js +3 -3
  107. package/lib/generated/services/cognito-identity.js +4 -4
  108. package/lib/generated/services/cognito-idp.js +4 -4
  109. package/lib/generated/services/cognito-sync.js +3 -3
  110. package/lib/generated/services/comprehend.js +4 -4
  111. package/lib/generated/services/comprehendmedical.js +3 -3
  112. package/lib/generated/services/compute-optimizer.js +3 -3
  113. package/lib/generated/services/config.js +4 -4
  114. package/lib/generated/services/connect-campaigns.js +4 -4
  115. package/lib/generated/services/connect.js +4 -4
  116. package/lib/generated/services/consoleapp.js +2 -2
  117. package/lib/generated/services/consolidatedbilling.js +1 -1
  118. package/lib/generated/services/controlcatalog.js +3 -3
  119. package/lib/generated/services/controltower.js +4 -4
  120. package/lib/generated/services/cost-optimization-hub.js +2 -2
  121. package/lib/generated/services/cur.js +4 -4
  122. package/lib/generated/services/customer-verification.js +1 -1
  123. package/lib/generated/services/databrew.js +4 -4
  124. package/lib/generated/services/dataexchange.js +4 -4
  125. package/lib/generated/services/datapipeline.js +4 -4
  126. package/lib/generated/services/datasync.js +4 -4
  127. package/lib/generated/services/datazone.d.ts +0 -28
  128. package/lib/generated/services/datazone.js +5 -47
  129. package/lib/generated/services/dax.js +4 -4
  130. package/lib/generated/services/dbqms.js +1 -1
  131. package/lib/generated/services/deadline.js +4 -4
  132. package/lib/generated/services/detective.js +4 -4
  133. package/lib/generated/services/devicefarm.js +4 -4
  134. package/lib/generated/services/devops-guru.js +4 -4
  135. package/lib/generated/services/directconnect.js +4 -4
  136. package/lib/generated/services/discovery.js +3 -3
  137. package/lib/generated/services/dlm.js +4 -4
  138. package/lib/generated/services/dms.js +4 -4
  139. package/lib/generated/services/docdb-elastic.js +4 -4
  140. package/lib/generated/services/drs.js +4 -4
  141. package/lib/generated/services/ds-data.js +4 -4
  142. package/lib/generated/services/ds.js +4 -4
  143. package/lib/generated/services/dsql.js +4 -4
  144. package/lib/generated/services/dynamodb.js +4 -4
  145. package/lib/generated/services/ebs.js +4 -4
  146. package/lib/generated/services/ec2-instance-connect.js +4 -4
  147. package/lib/generated/services/ec2.js +4 -4
  148. package/lib/generated/services/ec2messages.js +2 -2
  149. package/lib/generated/services/ecr-public.js +4 -4
  150. package/lib/generated/services/ecr.js +4 -4
  151. package/lib/generated/services/ecs-mcp.js +1 -1
  152. package/lib/generated/services/ecs.js +7 -5
  153. package/lib/generated/services/eks-auth.js +4 -4
  154. package/lib/generated/services/eks-mcp.js +1 -1
  155. package/lib/generated/services/eks.js +4 -4
  156. package/lib/generated/services/elasticache.d.ts +6 -0
  157. package/lib/generated/services/elasticache.js +13 -5
  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 +5 -6
  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.js +4 -4
  166. package/lib/generated/services/elemental-support-cases.js +3 -3
  167. package/lib/generated/services/elemental-support-content.js +1 -1
  168. package/lib/generated/services/emr-containers.js +4 -4
  169. package/lib/generated/services/emr-serverless.js +4 -4
  170. package/lib/generated/services/entityresolution.js +4 -4
  171. package/lib/generated/services/es.js +4 -4
  172. package/lib/generated/services/events.js +4 -4
  173. package/lib/generated/services/eventsbilltoaws.js +3 -3
  174. package/lib/generated/services/evidently.js +3 -3
  175. package/lib/generated/services/evs.js +4 -4
  176. package/lib/generated/services/execute-api.js +4 -4
  177. package/lib/generated/services/finops-agent.js +1 -1
  178. package/lib/generated/services/finspace-api.js +3 -3
  179. package/lib/generated/services/finspace.js +4 -4
  180. package/lib/generated/services/firehose.js +4 -4
  181. package/lib/generated/services/fis.js +4 -4
  182. package/lib/generated/services/fms.js +4 -4
  183. package/lib/generated/services/forecast.js +4 -4
  184. package/lib/generated/services/frauddetector.js +4 -4
  185. package/lib/generated/services/freertos.js +3 -3
  186. package/lib/generated/services/freetier.js +2 -2
  187. package/lib/generated/services/fsx.js +4 -4
  188. package/lib/generated/services/gamelift.js +4 -4
  189. package/lib/generated/services/gameliftstreams.js +4 -4
  190. package/lib/generated/services/geo-maps.js +3 -3
  191. package/lib/generated/services/geo-places.js +3 -3
  192. package/lib/generated/services/geo-routes.js +3 -3
  193. package/lib/generated/services/geo.js +4 -4
  194. package/lib/generated/services/glacier.js +4 -4
  195. package/lib/generated/services/globalaccelerator.js +4 -4
  196. package/lib/generated/services/glue.js +4 -4
  197. package/lib/generated/services/grafana.js +4 -4
  198. package/lib/generated/services/greengrass.js +4 -4
  199. package/lib/generated/services/groundstation.js +4 -4
  200. package/lib/generated/services/groundtruthlabeling.js +1 -1
  201. package/lib/generated/services/guardduty.js +4 -4
  202. package/lib/generated/services/health-agent.js +4 -4
  203. package/lib/generated/services/health.js +4 -4
  204. package/lib/generated/services/healthlake.js +4 -4
  205. package/lib/generated/services/honeycode.js +2 -2
  206. package/lib/generated/services/iam.js +4 -4
  207. package/lib/generated/services/identity-sync.js +2 -2
  208. package/lib/generated/services/identitystore-auth.js +1 -1
  209. package/lib/generated/services/identitystore.d.ts +6 -0
  210. package/lib/generated/services/identitystore.js +17 -5
  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/network-security-manager.js +4 -4
  290. package/lib/generated/services/networkflowmonitor.js +4 -4
  291. package/lib/generated/services/networkmanager-chat.js +1 -1
  292. package/lib/generated/services/networkmanager.js +4 -4
  293. package/lib/generated/services/networkmonitor.js +4 -4
  294. package/lib/generated/services/nimble.js +3 -3
  295. package/lib/generated/services/notifications-contacts.js +4 -4
  296. package/lib/generated/services/notifications.js +4 -4
  297. package/lib/generated/services/nova-act.js +3 -3
  298. package/lib/generated/services/oam.js +4 -4
  299. package/lib/generated/services/observabilityadmin.js +4 -4
  300. package/lib/generated/services/odb.js +4 -4
  301. package/lib/generated/services/omics.js +4 -4
  302. package/lib/generated/services/one.js +3 -3
  303. package/lib/generated/services/opensearch.js +3 -3
  304. package/lib/generated/services/opsworks-cm.js +2 -2
  305. package/lib/generated/services/opsworks.js +2 -2
  306. package/lib/generated/services/organizations.js +4 -4
  307. package/lib/generated/services/osis.js +4 -4
  308. package/lib/generated/services/outposts.js +4 -4
  309. package/lib/generated/services/panorama.js +3 -3
  310. package/lib/generated/services/partnercentral-account-management.js +2 -2
  311. package/lib/generated/services/partnercentral.js +4 -4
  312. package/lib/generated/services/payment-cryptography.js +4 -4
  313. package/lib/generated/services/payments.js +3 -3
  314. package/lib/generated/services/pca-connector-ad.js +4 -4
  315. package/lib/generated/services/pca-connector-scep.js +4 -4
  316. package/lib/generated/services/pcs.js +4 -4
  317. package/lib/generated/services/personalize.js +4 -4
  318. package/lib/generated/services/pi.js +4 -4
  319. package/lib/generated/services/pipes.js +4 -4
  320. package/lib/generated/services/polly.js +3 -3
  321. package/lib/generated/services/pricing.js +2 -2
  322. package/lib/generated/services/pricingplanmanager.js +3 -3
  323. package/lib/generated/services/private-networks.js +3 -3
  324. package/lib/generated/services/profile.js +4 -4
  325. package/lib/generated/services/proton.js +4 -4
  326. package/lib/generated/services/purchase-orders.js +3 -3
  327. package/lib/generated/services/q.js +3 -3
  328. package/lib/generated/services/qapps.js +4 -4
  329. package/lib/generated/services/qbusiness.js +4 -4
  330. package/lib/generated/services/qdeveloper.js +3 -3
  331. package/lib/generated/services/qldb.js +3 -3
  332. package/lib/generated/services/quicksight.js +4 -4
  333. package/lib/generated/services/ram.js +4 -4
  334. package/lib/generated/services/rbin.js +4 -4
  335. package/lib/generated/services/rds-data.js +4 -4
  336. package/lib/generated/services/rds-db.js +2 -2
  337. package/lib/generated/services/rds.js +5 -6
  338. package/lib/generated/services/redshift-data.js +4 -4
  339. package/lib/generated/services/redshift-serverless.js +4 -4
  340. package/lib/generated/services/redshift.js +4 -4
  341. package/lib/generated/services/refactor-spaces.js +4 -4
  342. package/lib/generated/services/rekognition.js +4 -4
  343. package/lib/generated/services/repostspace.js +4 -4
  344. package/lib/generated/services/researchstudio.js +1 -1
  345. package/lib/generated/services/resiliencehub.js +4 -4
  346. package/lib/generated/services/resource-explorer-2.js +4 -4
  347. package/lib/generated/services/resource-explorer.js +1 -1
  348. package/lib/generated/services/resource-groups.js +4 -4
  349. package/lib/generated/services/rhelkb.js +1 -1
  350. package/lib/generated/services/robomaker.js +3 -3
  351. package/lib/generated/services/rolesanywhere.js +4 -4
  352. package/lib/generated/services/route53-recovery-cluster.js +4 -4
  353. package/lib/generated/services/route53-recovery-control-config.js +4 -4
  354. package/lib/generated/services/route53-recovery-readiness.js +4 -4
  355. package/lib/generated/services/route53.js +4 -4
  356. package/lib/generated/services/route53domains.js +2 -2
  357. package/lib/generated/services/route53globalresolver.js +4 -4
  358. package/lib/generated/services/route53profiles.js +4 -4
  359. package/lib/generated/services/route53resolver.js +4 -4
  360. package/lib/generated/services/rtbfabric.js +4 -4
  361. package/lib/generated/services/rum.js +4 -4
  362. package/lib/generated/services/s3-object-lambda.js +3 -3
  363. package/lib/generated/services/s3-outposts.js +4 -4
  364. package/lib/generated/services/s3.js +4 -4
  365. package/lib/generated/services/s3express.js +3 -3
  366. package/lib/generated/services/s3files.js +4 -4
  367. package/lib/generated/services/s3tables.js +4 -4
  368. package/lib/generated/services/s3vectors.d.ts +12 -0
  369. package/lib/generated/services/s3vectors.js +25 -5
  370. package/lib/generated/services/sagemaker-data-science-assistant.js +1 -1
  371. package/lib/generated/services/sagemaker-geospatial.js +4 -4
  372. package/lib/generated/services/sagemaker-mlflow.js +3 -3
  373. package/lib/generated/services/sagemaker-unified-studio-mcp.js +1 -1
  374. package/lib/generated/services/sagemaker.js +6 -5
  375. package/lib/generated/services/savingsplans.js +4 -4
  376. package/lib/generated/services/scheduler.js +4 -4
  377. package/lib/generated/services/schemas.js +4 -4
  378. package/lib/generated/services/scn.js +4 -4
  379. package/lib/generated/services/sdb.js +3 -3
  380. package/lib/generated/services/secretsmanager.js +4 -4
  381. package/lib/generated/services/security-ir.js +4 -4
  382. package/lib/generated/services/securityagent.d.ts +2 -0
  383. package/lib/generated/services/securityagent.js +9 -5
  384. package/lib/generated/services/securityhub.d.ts +4 -0
  385. package/lib/generated/services/securityhub.js +11 -5
  386. package/lib/generated/services/securitylake.js +4 -4
  387. package/lib/generated/services/serverlessrepo.js +4 -4
  388. package/lib/generated/services/servicecatalog.js +5 -11
  389. package/lib/generated/services/servicediscovery.js +4 -4
  390. package/lib/generated/services/serviceextract.js +1 -1
  391. package/lib/generated/services/servicequotas.js +4 -4
  392. package/lib/generated/services/ses.js +4 -4
  393. package/lib/generated/services/shield.js +4 -4
  394. package/lib/generated/services/signer.js +4 -4
  395. package/lib/generated/services/signin.js +4 -4
  396. package/lib/generated/services/simspaceweaver.js +3 -3
  397. package/lib/generated/services/sms-voice.js +4 -4
  398. package/lib/generated/services/sms.js +1 -1
  399. package/lib/generated/services/snow-device-management.js +4 -4
  400. package/lib/generated/services/snowball.js +2 -2
  401. package/lib/generated/services/sns.js +4 -4
  402. package/lib/generated/services/social-messaging.js +4 -4
  403. package/lib/generated/services/sqlworkbench.js +3 -3
  404. package/lib/generated/services/sqs.js +4 -4
  405. package/lib/generated/services/ssm-contacts.js +4 -4
  406. package/lib/generated/services/ssm-guiconnect.js +2 -2
  407. package/lib/generated/services/ssm-incidents.js +4 -4
  408. package/lib/generated/services/ssm-quicksetup.js +4 -4
  409. package/lib/generated/services/ssm-sap.js +4 -4
  410. package/lib/generated/services/ssm.js +4 -4
  411. package/lib/generated/services/ssmmessages.js +2 -2
  412. package/lib/generated/services/sso-directory.js +1 -1
  413. package/lib/generated/services/sso-oauth.js +3 -3
  414. package/lib/generated/services/sso.js +4 -4
  415. package/lib/generated/services/startups.js +1 -1
  416. package/lib/generated/services/states.js +4 -4
  417. package/lib/generated/services/storagegateway.js +4 -4
  418. package/lib/generated/services/sts.js +4 -4
  419. package/lib/generated/services/support-console.js +1 -1
  420. package/lib/generated/services/support.js +2 -2
  421. package/lib/generated/services/supportapp.js +2 -2
  422. package/lib/generated/services/supportauthz.js +4 -4
  423. package/lib/generated/services/supportplans.js +1 -1
  424. package/lib/generated/services/sustainability.js +2 -2
  425. package/lib/generated/services/swf.js +4 -4
  426. package/lib/generated/services/synthetics.js +4 -4
  427. package/lib/generated/services/tag.js +2 -2
  428. package/lib/generated/services/tax.js +2 -2
  429. package/lib/generated/services/textract.js +4 -4
  430. package/lib/generated/services/thinclient.js +4 -4
  431. package/lib/generated/services/timestream-influxdb.js +4 -4
  432. package/lib/generated/services/timestream.js +4 -4
  433. package/lib/generated/services/tiros.js +1 -1
  434. package/lib/generated/services/tnb.js +4 -4
  435. package/lib/generated/services/transcribe.js +4 -4
  436. package/lib/generated/services/transfer.js +4 -4
  437. package/lib/generated/services/transform-custom.js +3 -3
  438. package/lib/generated/services/transform.js +3 -3
  439. package/lib/generated/services/translate.js +4 -4
  440. package/lib/generated/services/trustedadvisor.js +3 -3
  441. package/lib/generated/services/ts.js +3 -3
  442. package/lib/generated/services/user-subscriptions.js +2 -2
  443. package/lib/generated/services/uxc.js +2 -2
  444. package/lib/generated/services/vendor-insights.js +3 -3
  445. package/lib/generated/services/verified-access.js +1 -1
  446. package/lib/generated/services/verifiedpermissions.js +4 -4
  447. package/lib/generated/services/voiceid.js +4 -4
  448. package/lib/generated/services/vpc-lattice-svcs.js +3 -3
  449. package/lib/generated/services/vpc-lattice.js +4 -4
  450. package/lib/generated/services/vpce.js +2 -2
  451. package/lib/generated/services/waf-regional.js +4 -4
  452. package/lib/generated/services/waf.js +4 -4
  453. package/lib/generated/services/wafv2.js +4 -4
  454. package/lib/generated/services/wam.js +1 -1
  455. package/lib/generated/services/wellarchitected.js +4 -4
  456. package/lib/generated/services/wickr.js +4 -4
  457. package/lib/generated/services/wisdom.js +4 -4
  458. package/lib/generated/services/workdocs.js +3 -3
  459. package/lib/generated/services/worklink.js +3 -3
  460. package/lib/generated/services/workmail.js +4 -4
  461. package/lib/generated/services/workmailmessageflow.js +3 -3
  462. package/lib/generated/services/workspaces-instances.js +4 -4
  463. package/lib/generated/services/workspaces-web.js +4 -4
  464. package/lib/generated/services/workspaces.js +4 -4
  465. package/lib/generated/services/xray.js +4 -4
  466. package/package.json +1 -1
@@ -16,7 +16,7 @@ class AWSMarketplaceActions {
16
16
  }
17
17
  exports.AWSMarketplaceActions = AWSMarketplaceActions;
18
18
  _a = JSII_RTTI_SYMBOL_1;
19
- AWSMarketplaceActions[_a] = { fqn: "@cdk_utils/iam.aws_marketplace.AWSMarketplaceActions", version: "1.33.0" };
19
+ AWSMarketplaceActions[_a] = { fqn: "@cdk_utils/iam.aws_marketplace.AWSMarketplaceActions", version: "1.35.0" };
20
20
  /** The IAM service prefix. */
21
21
  AWSMarketplaceActions.SERVICE_PREFIX = "aws-marketplace";
22
22
  /** [Write] aws-marketplace:AcceptAgreementApprovalRequest */
@@ -867,7 +867,7 @@ class AWSMarketplaceResources {
867
867
  }
868
868
  exports.AWSMarketplaceResources = AWSMarketplaceResources;
869
869
  _b = JSII_RTTI_SYMBOL_1;
870
- AWSMarketplaceResources[_b] = { fqn: "@cdk_utils/iam.aws_marketplace.AWSMarketplaceResources", version: "1.33.0" };
870
+ AWSMarketplaceResources[_b] = { fqn: "@cdk_utils/iam.aws_marketplace.AWSMarketplaceResources", version: "1.35.0" };
871
871
  /**
872
872
  * API operation to required IAM actions mapping for aws-marketplace.
873
873
  */
@@ -875,7 +875,7 @@ class AWSMarketplaceOperations {
875
875
  }
876
876
  exports.AWSMarketplaceOperations = AWSMarketplaceOperations;
877
877
  _c = JSII_RTTI_SYMBOL_1;
878
- AWSMarketplaceOperations[_c] = { fqn: "@cdk_utils/iam.aws_marketplace.AWSMarketplaceOperations", version: "1.33.0" };
878
+ AWSMarketplaceOperations[_c] = { fqn: "@cdk_utils/iam.aws_marketplace.AWSMarketplaceOperations", version: "1.35.0" };
879
879
  /** IAM actions required for the AcceptAgreementCancellationRequest API call. */
880
880
  AWSMarketplaceOperations.AcceptAgreementCancellationRequest = [
881
881
  "aws-marketplace:AcceptAgreementCancellationRequest",
@@ -1026,6 +1026,7 @@ AWSMarketplaceOperations.ListFulfillmentOptions = [
1026
1026
  ];
1027
1027
  /** IAM actions required for the ListPurchaseOptions API call. */
1028
1028
  AWSMarketplaceOperations.ListPurchaseOptions = [
1029
+ "aws-marketplace:ListPrivateListings",
1029
1030
  "aws-marketplace:ListPurchaseOptions",
1030
1031
  ];
1031
1032
  /** IAM actions required for the ListTagsForResource API call. */
@@ -1152,7 +1153,7 @@ class AWSMarketplaceConditions {
1152
1153
  }
1153
1154
  exports.AWSMarketplaceConditions = AWSMarketplaceConditions;
1154
1155
  _d = JSII_RTTI_SYMBOL_1;
1155
- AWSMarketplaceConditions[_d] = { fqn: "@cdk_utils/iam.aws_marketplace.AWSMarketplaceConditions", version: "1.33.0" };
1156
+ AWSMarketplaceConditions[_d] = { fqn: "@cdk_utils/iam.aws_marketplace.AWSMarketplaceConditions", version: "1.35.0" };
1156
1157
  /** Condition keys applicable to the AcceptAgreementCancellationRequest action. */
1157
1158
  AWSMarketplaceConditions.AcceptAgreementCancellationRequestConditionKeys = [
1158
1159
  "aws-marketplace:AgreementType",
@@ -1344,4 +1345,4 @@ AWSMarketplaceConditions.AWS_RESOURCE_TAG = "aws:ResourceTag/${TagKey}";
1344
1345
  AWSMarketplaceConditions.AWS_TAG_KEYS = "aws:TagKeys";
1345
1346
  /** Condition key: catalog:ChangeType (String) */
1346
1347
  AWSMarketplaceConditions.CHANGE_TYPE = "catalog:ChangeType";
1347
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLW1hcmtldHBsYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9hd3MtbWFya2V0cGxhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCxzREFBc0Q7QUFDdEQsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEscUJBQXFCOztBQUFsQyxzREF1V0M7OztBQXRXQSw4QkFBOEI7QUFDZCxvQ0FBYyxHQUFHLGlCQUFpQixDQUFDO0FBRW5ELDZEQUE2RDtBQUM3QyxvREFBOEIsR0FDN0MsZ0RBQWdELENBQUM7QUFDbEQsaUVBQWlFO0FBQ2pELHdEQUFrQyxHQUNqRCxvREFBb0QsQ0FBQztBQUN0RCw0REFBNEQ7QUFDNUMsbURBQTZCLEdBQzVDLCtDQUErQyxDQUFDO0FBQ2pELHFEQUFxRDtBQUNyQyw0Q0FBc0IsR0FDckMsd0NBQXdDLENBQUM7QUFDMUMsc0VBQXNFO0FBQ3RELDZEQUF1QyxHQUN0RCx5REFBeUQsQ0FBQztBQUMzRCxrRUFBa0U7QUFDbEQseURBQW1DLEdBQ2xELHFEQUFxRCxDQUFDO0FBQ3ZELDhDQUE4QztBQUM5QixxQ0FBZSxHQUFHLGlDQUFpQyxDQUFDO0FBQ3BFLDhDQUE4QztBQUM5QixxQ0FBZSxHQUFHLGlDQUFpQyxDQUFDO0FBQ3BFLGlFQUFpRTtBQUNqRCx3REFBa0MsR0FDakQsb0RBQW9ELENBQUM7QUFDdEQsNERBQTREO0FBQzVDLG1EQUE2QixHQUM1QywrQ0FBK0MsQ0FBQztBQUNqRCxxREFBcUQ7QUFDckMsNENBQXNCLEdBQ3JDLHdDQUF3QyxDQUFDO0FBQzFDLDhDQUE4QztBQUM5QixxQ0FBZSxHQUFHLGlDQUFpQyxDQUFDO0FBQ3BFLHFEQUFxRDtBQUNyQyw0Q0FBc0IsR0FDckMsd0NBQXdDLENBQUM7QUFDMUMsK0RBQStEO0FBQy9DLHNE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Q0YsaUVBQWlFO0FBQ2pELHVEQUE4QixHQUFhO0lBQzFELGtDQUFrQztDQUNsQyxDQUFDO0FBQ0YsMkRBQTJEO0FBQzNDLGlEQUF3QixHQUFhO0lBQ3BELDBCQUEwQjtJQUMxQiwyQkFBMkI7SUFDM0IsYUFBYTtDQUNiLENBQUM7QUFDRiw2REFBNkQ7QUFDN0MsbURBQTBCLEdBQWE7SUFDdEQsMkJBQTJCO0lBQzNCLGFBQWE7Q0FDYixDQUFDO0FBQ0Ysb0VBQW9FO0FBQ3BELDBEQUFpQyxHQUFhO0lBQzdELCtCQUErQjtDQUMvQixDQUFDO0FBRUYsbUVBQW1FO0FBQ25ELHVDQUFjLEdBQUcsK0JBQStCLENBQUM7QUFDakUscURBQXFEO0FBQ3JDLCtCQUFNLEdBQUcsd0JBQXdCLENBQUM7QUFDbEQsd0RBQXdEO0FBQ3hDLG1DQUFVLEdBQUcsMkJBQTJCLENBQUM7QUFDekQsK0RBQStEO0FBQy9DLG1DQUFVLEdBQUcsMkJBQTJCLENBQUM7QUFDekQsK0RBQStEO0FBQy9DLDBDQUFpQixHQUFHLGtDQUFrQyxDQUFDO0FBQ3ZFLHVEQUF1RDtBQUN2Qyx3Q0FBZSxHQUFHLDBCQUEwQixDQUFDO0FBQzdELHdEQUF3RDtBQUN4Qyx5Q0FBZ0IsR0FBRywyQkFBMkIsQ0FBQztBQUMvRCxpREFBaUQ7QUFDakMscUNBQVksR0FBRyxhQUFhLENBQUM7QUFDN0MsaURBQWlEO0FBQ2pDLG9DQUFXLEdBQUcsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQVVUTy1HRU5FUkFURUQgRklMRSDigJQgRE8gTk9UIEVESVQgTUFOVUFMTFlcbi8vIEdlbmVyYXRlZCBmcm9tIEFXUyBTZXJ2aWNlIEF1dGhvcml6YXRpb24gUmVmZXJlbmNlIGRhdGFcbi8vIFNvdXJjZTogZGF0YS9zZXJ2aWNlLXJlZmVyZW5jZS9hd3MtbWFya2V0cGxhY2UuanNvblxuLy8gUnVuIGBucHggcHJvamVuIGdlbmVyYXRlLWNvbnN0YW50c2AgdG8gcmVnZW5lcmF0ZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBJQU0gYWN0aW9uIGNvbnN0YW50cyBmb3IgdGhlIGF3cy1tYXJrZXRwbGFjZSBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgQVdTTWFya2V0cGxhY2VBY3Rpb25zIHtcblx0LyoqIFRoZSBJQU0gc2VydmljZSBwcmVmaXguICovXG5cdHN0YXRpYyByZWFkb25seSBTRVJWSUNFX1BSRUZJWCA9IFwiYXdzLW1hcmtldHBsYWNlXCI7XG5cblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOkFjY2VwdEFncmVlbWVudEFwcHJvdmFsUmVxdWVzdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWNjZXB0QWdyZWVtZW50QXBwcm92YWxSZXF1ZXN0ID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBY2NlcHRBZ3JlZW1lbnRBcHByb3ZhbFJlcXVlc3RcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOkFjY2VwdEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFjY2VwdEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3QgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFjY2VwdEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3RcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOkFjY2VwdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0ICovXG5cdHN0YXRpYyByZWFkb25seSBBY2NlcHRBZ3JlZW1lbnRQYXltZW50UmVxdWVzdCA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWNjZXB0QWdyZWVtZW50UGF5bWVudFJlcXVlc3RcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOkFjY2VwdEFncmVlbWVudFJlcXVlc3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFjY2VwdEFncmVlbWVudFJlcXVlc3QgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFjY2VwdEFncmVlbWVudFJlcXVlc3RcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOkFzc29jaWF0ZVByb2R1Y3RzV2l0aFByaXZhdGVNYXJrZXRwbGFjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQXNzb2NpYXRlUHJvZHVjdHNXaXRoUHJpdmF0ZU1hcmtldHBsYWNlID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBc3NvY2lhdGVQcm9kdWN0c1dpdGhQcml2YXRlTWFya2V0cGxhY2VcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOkJhdGNoQ3JlYXRlQmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0ICovXG5cdHN0YXRpYyByZWFkb25seSBCYXRjaENyZWF0ZUJpbGxpbmdBZGp1c3RtZW50UmVxdWVzdCA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QmF0Y2hDcmVhdGVCaWxsaW5nQWRqdXN0bWVudFJlcXVlc3RcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOkJhdGNoTWV0ZXJVc2FnZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQmF0Y2hNZXRlclVzYWdlID0gXCJhd3MtbWFya2V0cGxhY2U6QmF0Y2hNZXRlclVzYWdlXCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpDYW5jZWxBZ3JlZW1lbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IENhbmNlbEFncmVlbWVudCA9IFwiYXdzLW1hcmtldHBsYWNlOkNhbmNlbEFncmVlbWVudFwiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6Q2FuY2VsQWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsQWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdCA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6Q2FuY2VsQWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdFwiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6Q2FuY2VsQWdyZWVtZW50UGF5bWVudFJlcXVlc3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IENhbmNlbEFncmVlbWVudFBheW1lbnRSZXF1ZXN0ID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpDYW5jZWxBZ3JlZW1lbnRQYXltZW50UmVxdWVzdFwiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6Q2FuY2VsQWdyZWVtZW50UmVxdWVzdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsQWdyZWVtZW50UmVxdWVzdCA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6Q2FuY2VsQWdyZWVtZW50UmVxdWVzdFwiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6Q2FuY2VsQ2hhbmdlU2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxDaGFuZ2VTZXQgPSBcImF3cy1tYXJrZXRwbGFjZTpDYW5jZWxDaGFuZ2VTZXRcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOkNyZWF0ZUFncmVlbWVudFJlcXVlc3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUFncmVlbWVudFJlcXVlc3QgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkNyZWF0ZUFncmVlbWVudFJlcXVlc3RcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOkNyZWF0ZVByaXZhdGVNYXJrZXRwbGFjZVJlcXVlc3RzICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVQcml2YXRlTWFya2V0cGxhY2VSZXF1ZXN0cyA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6Q3JlYXRlUHJpdmF0ZU1hcmtldHBsYWNlUmVxdWVzdHNcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOkNyZWF0ZVZlcmlmaWNhdGlvbkV2aWRlbmNlICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVWZXJpZmljYXRpb25FdmlkZW5jZSA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6Q3JlYXRlVmVyaWZpY2F0aW9uRXZpZGVuY2VcIjtcblx0LyoqIFtQZXJtaXNzaW9uTWFuYWdlbWVudF0gYXdzLW1hcmtldHBsYWNlOkRlbGV0ZVJlc291cmNlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZXNvdXJjZVBvbGljeSA9IFwiYXdzLW1hcmtldHBsYWNlOkRlbGV0ZVJlc291cmNlUG9saWN5XCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlQWdyZWVtZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFncmVlbWVudCA9IFwiYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlQWdyZWVtZW50XCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlQXNzZXNzbWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVBc3Nlc3NtZW50ID0gXCJhd3MtbWFya2V0cGxhY2U6RGVzY3JpYmVBc3Nlc3NtZW50XCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlQnVpbGRzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUJ1aWxkcyA9IFwiYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlQnVpbGRzXCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlQ2hhbmdlU2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUNoYW5nZVNldCA9IFwiYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlQ2hhbmdlU2V0XCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlRW50aXR5ICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUVudGl0eSA9IFwiYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlRW50aXR5XCI7XG5cdC8qKiBbTGlzdF0gYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlUHJpdmF0ZU1hcmtldHBsYWNlUmVxdWVzdHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUHJpdmF0ZU1hcmtldHBsYWNlUmVxdWVzdHMgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlUHJpdmF0ZU1hcmtldHBsYWNlUmVxdWVzdHNcIjtcblx0LyoqIFtSZWFkXSBhd3MtbWFya2V0cGxhY2U6RGVzY3JpYmVQcm9jdXJlbWVudFN5c3RlbUNvbmZpZ3VyYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlUHJvY3VyZW1lbnRTeXN0ZW1Db25maWd1cmF0aW9uID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpEZXNjcmliZVByb2N1cmVtZW50U3lzdGVtQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6RGlzYXNzb2NpYXRlUHJvZHVjdHNGcm9tUHJpdmF0ZU1hcmtldHBsYWNlICovXG5cdHN0YXRpYyByZWFkb25seSBEaXNhc3NvY2lhdGVQcm9kdWN0c0Zyb21Qcml2YXRlTWFya2V0cGxhY2UgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkRpc2Fzc29jaWF0ZVByb2R1Y3RzRnJvbVByaXZhdGVNYXJrZXRwbGFjZVwiO1xuXHQvKiogW1JlYWRdIGF3cy1tYXJrZXRwbGFjZTpHZXRBZ3JlZW1lbnRBcHByb3ZhbFJlcXVlc3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFncmVlbWVudEFwcHJvdmFsUmVxdWVzdCA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6R2V0QWdyZWVtZW50QXBwcm92YWxSZXF1ZXN0XCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkdldEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3QgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkdldEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3RcIjtcblx0LyoqIFtSZWFkXSBhd3MtbWFya2V0cGxhY2U6R2V0QWdyZWVtZW50RW50aXRsZW1lbnRzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ3JlZW1lbnRFbnRpdGxlbWVudHMgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkdldEFncmVlbWVudEVudGl0bGVtZW50c1wiO1xuXHQvKiogW1JlYWRdIGF3cy1tYXJrZXRwbGFjZTpHZXRBZ3JlZW1lbnRQYXltZW50UmVxdWVzdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdyZWVtZW50UGF5bWVudFJlcXVlc3QgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkdldEFncmVlbWVudFBheW1lbnRSZXF1ZXN0XCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkdldEFncmVlbWVudFJlcXVlc3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFncmVlbWVudFJlcXVlc3QgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkdldEFncmVlbWVudFJlcXVlc3RcIjtcblx0LyoqIFtMaXN0XSBhd3MtbWFya2V0cGxhY2U6R2V0QWdyZWVtZW50VGVybXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFncmVlbWVudFRlcm1zID0gXCJhd3MtbWFya2V0cGxhY2U6R2V0QWdyZWVtZW50VGVybXNcIjtcblx0LyoqIFtSZWFkXSBhd3MtbWFya2V0cGxhY2U6R2V0QmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRCaWxsaW5nQWRqdXN0bWVudFJlcXVlc3QgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkdldEJpbGxpbmdBZGp1c3RtZW50UmVxdWVzdFwiO1xuXHQvKiogW1JlYWRdIGF3cy1tYXJrZXRwbGFjZTpHZXRCdXllckRhc2hib2FyZCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QnV5ZXJEYXNoYm9hcmQgPSBcImF3cy1tYXJrZXRwbGFjZTpHZXRCdXllckRhc2hib2FyZFwiO1xuXHQvKiogW1JlYWRdIGF3cy1tYXJrZXRwbGFjZTpHZXRFbnRpdGxlbWVudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEVudGl0bGVtZW50cyA9IFwiYXdzLW1hcmtldHBsYWNlOkdldEVudGl0bGVtZW50c1wiO1xuXHQvKiogW1JlYWRdIGF3cy1tYXJrZXRwbGFjZTpHZXRJbnZvaWNlU3VibWlzc2lvblRhc2sgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEludm9pY2VTdWJtaXNzaW9uVGFzayA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6R2V0SW52b2ljZVN1Ym1pc3Npb25UYXNrXCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkdldElzc3VlZFRheEludm9pY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldElzc3VlZFRheEludm9pY2UgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkdldElzc3VlZFRheEludm9pY2VcIjtcblx0LyoqIFtSZWFkXSBhd3MtbWFya2V0cGxhY2U6R2V0TGlzdGluZyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0TGlzdGluZyA9IFwiYXdzLW1hcmtldHBsYWNlOkdldExpc3RpbmdcIjtcblx0LyoqIFtSZWFkXSBhd3MtbWFya2V0cGxhY2U6R2V0T2ZmZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE9mZmVyID0gXCJhd3MtbWFya2V0cGxhY2U6R2V0T2ZmZXJcIjtcblx0LyoqIFtSZWFkXSBhd3MtbWFya2V0cGxhY2U6R2V0T2ZmZXJTZXQgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE9mZmVyU2V0ID0gXCJhd3MtbWFya2V0cGxhY2U6R2V0T2ZmZXJTZXRcIjtcblx0LyoqIFtSZWFkXSBhd3MtbWFya2V0cGxhY2U6R2V0T2ZmZXJUZXJtcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0T2ZmZXJUZXJtcyA9IFwiYXdzLW1hcmtldHBsYWNlOkdldE9mZmVyVGVybXNcIjtcblx0LyoqIFtSZWFkXSBhd3MtbWFya2V0cGxhY2U6R2V0UHJvZHVjdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0UHJvZHVjdCA9IFwiYXdzLW1hcmtldHBsYWNlOkdldFByb2R1Y3RcIjtcblx0LyoqIFtSZWFkXSBhd3MtbWFya2V0cGxhY2U6R2V0UmVzb3VyY2VQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFJlc291cmNlUG9saWN5ID0gXCJhd3MtbWFya2V0cGxhY2U6R2V0UmVzb3VyY2VQb2xpY3lcIjtcblx0LyoqIFtSZWFkXSBhd3MtbWFya2V0cGxhY2U6R2V0U2VsbGVyRGFzaGJvYXJkICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRTZWxsZXJEYXNoYm9hcmQgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkdldFNlbGxlckRhc2hib2FyZFwiO1xuXHQvKiogW1JlYWRdIGF3cy1tYXJrZXRwbGFjZTpHZXRUYXhDb21wbGlhbmNlUHJvZmlsZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0VGF4Q29tcGxpYW5jZVByb2ZpbGUgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkdldFRheENvbXBsaWFuY2VQcm9maWxlXCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkdldFZlcmlmaWNhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0VmVyaWZpY2F0aW9uID0gXCJhd3MtbWFya2V0cGxhY2U6R2V0VmVyaWZpY2F0aW9uXCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkdldFZlcmlmaWNhdGlvbkV2aWRlbmNlICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRWZXJpZmljYXRpb25FdmlkZW5jZSA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6R2V0VmVyaWZpY2F0aW9uRXZpZGVuY2VcIjtcblx0LyoqIFtMaXN0XSBhd3MtbWFya2V0cGxhY2U6TGlzdEFncmVlbWVudEFwcHJvdmFsUmVxdWVzdHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBZ3JlZW1lbnRBcHByb3ZhbFJlcXVlc3RzID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpMaXN0QWdyZWVtZW50QXBwcm92YWxSZXF1ZXN0c1wiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpMaXN0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0cyA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3RzXCI7XG5cdC8qKiBbTGlzdF0gYXdzLW1hcmtldHBsYWNlOkxpc3RBZ3JlZW1lbnRDaGFyZ2VzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QWdyZWVtZW50Q2hhcmdlcyA9IFwiYXdzLW1hcmtldHBsYWNlOkxpc3RBZ3JlZW1lbnRDaGFyZ2VzXCI7XG5cdC8qKiBbTGlzdF0gYXdzLW1hcmtldHBsYWNlOkxpc3RBZ3JlZW1lbnRJbnZvaWNlTGluZUl0ZW1zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QWdyZWVtZW50SW52b2ljZUxpbmVJdGVtcyA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdEFncmVlbWVudEludm9pY2VMaW5lSXRlbXNcIjtcblx0LyoqIFtMaXN0XSBhd3MtbWFya2V0cGxhY2U6TGlzdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0cyA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0c1wiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpMaXN0QWdyZWVtZW50UmVxdWVzdHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBZ3JlZW1lbnRSZXF1ZXN0cyA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdEFncmVlbWVudFJlcXVlc3RzXCI7XG5cdC8qKiBbTGlzdF0gYXdzLW1hcmtldHBsYWNlOkxpc3RBc3Nlc3NtZW50cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFzc2Vzc21lbnRzID0gXCJhd3MtbWFya2V0cGxhY2U6TGlzdEFzc2Vzc21lbnRzXCI7XG5cdC8qKiBbTGlzdF0gYXdzLW1hcmtldHBsYWNlOkxpc3RCaWxsaW5nQWRqdXN0bWVudFJlcXVlc3RzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0cyA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdEJpbGxpbmdBZGp1c3RtZW50UmVxdWVzdHNcIjtcblx0LyoqIFtSZWFkXSBhd3MtbWFya2V0cGxhY2U6TGlzdEJ1aWxkcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEJ1aWxkcyA9IFwiYXdzLW1hcmtldHBsYWNlOkxpc3RCdWlsZHNcIjtcblx0LyoqIFtMaXN0XSBhd3MtbWFya2V0cGxhY2U6TGlzdENoYW5nZVNldHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDaGFuZ2VTZXRzID0gXCJhd3MtbWFya2V0cGxhY2U6TGlzdENoYW5nZVNldHNcIjtcblx0LyoqIFtMaXN0XSBhd3MtbWFya2V0cGxhY2U6TGlzdEVudGl0aWVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RW50aXRpZXMgPSBcImF3cy1tYXJrZXRwbGFjZTpMaXN0RW50aXRpZXNcIjtcblx0LyoqIFtSZWFkXSBhd3MtbWFya2V0cGxhY2U6TGlzdEVudGl0bGVtZW50RGV0YWlscyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEVudGl0bGVtZW50RGV0YWlscyA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdEVudGl0bGVtZW50RGV0YWlsc1wiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpMaXN0RnVsZmlsbG1lbnRPcHRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RnVsZmlsbG1lbnRPcHRpb25zID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpMaXN0RnVsZmlsbG1lbnRPcHRpb25zXCI7XG5cdC8qKiBbTGlzdF0gYXdzLW1hcmtldHBsYWNlOkxpc3RJbnZvaWNlU3VibWlzc2lvblRhc2tzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SW52b2ljZVN1Ym1pc3Npb25UYXNrcyA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdEludm9pY2VTdWJtaXNzaW9uVGFza3NcIjtcblx0LyoqIFtMaXN0XSBhd3MtbWFya2V0cGxhY2U6TGlzdElzc3VlZFRheEludm9pY2VzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0SXNzdWVkVGF4SW52b2ljZXMgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RJc3N1ZWRUYXhJbnZvaWNlc1wiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpMaXN0UGF5YWJsZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RQYXlhYmxlcyA9IFwiYXdzLW1hcmtldHBsYWNlOkxpc3RQYXlhYmxlc1wiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpMaXN0UHJpdmF0ZUxpc3RpbmdzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UHJpdmF0ZUxpc3RpbmdzID0gXCJhd3MtbWFya2V0cGxhY2U6TGlzdFByaXZhdGVMaXN0aW5nc1wiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpMaXN0UHJpdmF0ZU1hcmtldHBsYWNlUmVxdWVzdHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RQcml2YXRlTWFya2V0cGxhY2VSZXF1ZXN0cyA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdFByaXZhdGVNYXJrZXRwbGFjZVJlcXVlc3RzXCI7XG5cdC8qKiBbTGlzdF0gYXdzLW1hcmtldHBsYWNlOkxpc3RQdXJjaGFzZU9wdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RQdXJjaGFzZU9wdGlvbnMgPSBcImF3cy1tYXJrZXRwbGFjZTpMaXN0UHVyY2hhc2VPcHRpb25zXCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkxpc3RUYWdzRm9yUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2UgPSBcImF3cy1tYXJrZXRwbGFjZTpMaXN0VGFnc0ZvclJlc291cmNlXCI7XG5cdC8qKiBbTGlzdF0gYXdzLW1hcmtldHBsYWNlOkxpc3RUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2tzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGF4Q29tcGxpYW5jZVByb2ZpbGVDaGFuZ2VUYXNrcyA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdFRheENvbXBsaWFuY2VQcm9maWxlQ2hhbmdlVGFza3NcIjtcblx0LyoqIFtMaXN0XSBhd3MtbWFya2V0cGxhY2U6TGlzdFRheENvbXBsaWFuY2VQcm9maWxlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRheENvbXBsaWFuY2VQcm9maWxlcyA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdFRheENvbXBsaWFuY2VQcm9maWxlc1wiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpMaXN0VmVyaWZpY2F0aW9uRXZpZGVuY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RWZXJpZmljYXRpb25FdmlkZW5jZSA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdFZlcmlmaWNhdGlvbkV2aWRlbmNlXCI7XG5cdC8qKiBbTGlzdF0gYXdzLW1hcmtldHBsYWNlOkxpc3RWZXJpZmljYXRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VmVyaWZpY2F0aW9ucyA9IFwiYXdzLW1hcmtldHBsYWNlOkxpc3RWZXJpZmljYXRpb25zXCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpNZXRlclVzYWdlICovXG5cdHN0YXRpYyByZWFkb25seSBNZXRlclVzYWdlID0gXCJhd3MtbWFya2V0cGxhY2U6TWV0ZXJVc2FnZVwiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6UHV0RGVwbG95bWVudFBhcmFtZXRlciAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0RGVwbG95bWVudFBhcmFtZXRlciA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UHV0RGVwbG95bWVudFBhcmFtZXRlclwiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6UHV0UHJvY3VyZW1lbnRTeXN0ZW1Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRQcm9jdXJlbWVudFN5c3RlbUNvbmZpZ3VyYXRpb24gPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlB1dFByb2N1cmVtZW50U3lzdGVtQ29uZmlndXJhdGlvblwiO1xuXHQvKiogW1Blcm1pc3Npb25NYW5hZ2VtZW50XSBhd3MtbWFya2V0cGxhY2U6UHV0UmVzb3VyY2VQb2xpY3kgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dFJlc291cmNlUG9saWN5ID0gXCJhd3MtbWFya2V0cGxhY2U6UHV0UmVzb3VyY2VQb2xpY3lcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOlJlZ2lzdGVyVXNhZ2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlZ2lzdGVyVXNhZ2UgPSBcImF3cy1tYXJrZXRwbGFjZTpSZWdpc3RlclVzYWdlXCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpSZWplY3RBZ3JlZW1lbnRBcHByb3ZhbFJlcXVlc3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlamVjdEFncmVlbWVudEFwcHJvdmFsUmVxdWVzdCA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UmVqZWN0QWdyZWVtZW50QXBwcm92YWxSZXF1ZXN0XCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpSZWplY3RBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0ICovXG5cdHN0YXRpYyByZWFkb25seSBSZWplY3RBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0ID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpSZWplY3RBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0XCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpSZWplY3RBZ3JlZW1lbnRQYXltZW50UmVxdWVzdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVqZWN0QWdyZWVtZW50UGF5bWVudFJlcXVlc3QgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlJlamVjdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0XCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpSZXNvbHZlQ3VzdG9tZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlc29sdmVDdXN0b21lciA9IFwiYXdzLW1hcmtldHBsYWNlOlJlc29sdmVDdXN0b21lclwiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpTZWFyY2hBZ3JlZW1lbnRzICovXG5cdHN0YXRpYyByZWFkb25seSBTZWFyY2hBZ3JlZW1lbnRzID0gXCJhd3MtbWFya2V0cGxhY2U6U2VhcmNoQWdyZWVtZW50c1wiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpTZWFyY2hGYWNldHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlYXJjaEZhY2V0cyA9IFwiYXdzLW1hcmtldHBsYWNlOlNlYXJjaEZhY2V0c1wiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpTZWFyY2hMaXN0aW5ncyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VhcmNoTGlzdGluZ3MgPSBcImF3cy1tYXJrZXRwbGFjZTpTZWFyY2hMaXN0aW5nc1wiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6U2VuZEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0ID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpTZW5kQWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdFwiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6U2VuZEFncmVlbWVudFBheW1lbnRSZXF1ZXN0ICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kQWdyZWVtZW50UGF5bWVudFJlcXVlc3QgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlNlbmRBZ3JlZW1lbnRQYXltZW50UmVxdWVzdFwiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6U3RhcnRCdWlsZCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRCdWlsZCA9IFwiYXdzLW1hcmtldHBsYWNlOlN0YXJ0QnVpbGRcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOlN0YXJ0Q2hhbmdlU2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydENoYW5nZVNldCA9IFwiYXdzLW1hcmtldHBsYWNlOlN0YXJ0Q2hhbmdlU2V0XCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpTdGFydEludm9pY2VTdWJtaXNzaW9uVGFzayAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRJbnZvaWNlU3VibWlzc2lvblRhc2sgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlN0YXJ0SW52b2ljZVN1Ym1pc3Npb25UYXNrXCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpTdGFydFRheENvbXBsaWFuY2VQcm9maWxlQ2hhbmdlVGFzayAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2sgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlN0YXJ0VGF4Q29tcGxpYW5jZVByb2ZpbGVDaGFuZ2VUYXNrXCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpTdGFydFZlcmlmaWNhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRWZXJpZmljYXRpb24gPSBcImF3cy1tYXJrZXRwbGFjZTpTdGFydFZlcmlmaWNhdGlvblwiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6U3Vic2NyaWJlICovXG5cdHN0YXRpYyByZWFkb25seSBTdWJzY3JpYmUgPSBcImF3cy1tYXJrZXRwbGFjZTpTdWJzY3JpYmVcIjtcblx0LyoqIFtUYWdnaW5nXSBhd3MtbWFya2V0cGxhY2U6VGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlID0gXCJhd3MtbWFya2V0cGxhY2U6VGFnUmVzb3VyY2VcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOlVuc3Vic2NyaWJlICovXG5cdHN0YXRpYyByZWFkb25seSBVbnN1YnNjcmliZSA9IFwiYXdzLW1hcmtldHBsYWNlOlVuc3Vic2NyaWJlXCI7XG5cdC8qKiBbVGFnZ2luZ10gYXdzLW1hcmtldHBsYWNlOlVudGFnUmVzb3VyY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2UgPSBcImF3cy1tYXJrZXRwbGFjZTpVbnRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpVcGRhdGVBZ3JlZW1lbnRBcHByb3ZhbFJlcXVlc3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZUFncmVlbWVudEFwcHJvdmFsUmVxdWVzdCA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6VXBkYXRlQWdyZWVtZW50QXBwcm92YWxSZXF1ZXN0XCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpVcGRhdGVQdXJjaGFzZU9yZGVycyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUHVyY2hhc2VPcmRlcnMgPSBcImF3cy1tYXJrZXRwbGFjZTpVcGRhdGVQdXJjaGFzZU9yZGVyc1wiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6VXBkYXRlVmVyaWZpY2F0aW9uRXZpZGVuY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVZlcmlmaWNhdGlvbkV2aWRlbmNlID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpVcGRhdGVWZXJpZmljYXRpb25FdmlkZW5jZVwiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpWaWV3U3Vic2NyaXB0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVmlld1N1YnNjcmlwdGlvbnMgPSBcImF3cy1tYXJrZXRwbGFjZTpWaWV3U3Vic2NyaXB0aW9uc1wiO1xuXG5cdC8qKiBBbGwgcmVhZC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUmVhZEFjdGlvbnM6IHN0cmluZ1tdID0gW1xuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5EZXNjcmliZUFncmVlbWVudCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuRGVzY3JpYmVBc3Nlc3NtZW50LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5EZXNjcmliZUJ1aWxkcyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuRGVzY3JpYmVDaGFuZ2VTZXQsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkRlc2NyaWJlRW50aXR5LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5EZXNjcmliZVByb2N1cmVtZW50U3lzdGVtQ29uZmlndXJhdGlvbixcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuYWN0aW9uR2V0QWdyZWVtZW50QXBwcm92YWxSZXF1ZXN0LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5hY3Rpb25HZXRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5hY3Rpb25HZXRBZ3JlZW1lbnRFbnRpdGxlbWVudHMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLmFjdGlvbkdldEFncmVlbWVudFBheW1lbnRSZXF1ZXN0LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5hY3Rpb25HZXRBZ3JlZW1lbnRSZXF1ZXN0LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5hY3Rpb25HZXRCaWxsaW5nQWRqdXN0bWVudFJlcXVlc3QsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLmFjdGlvbkdldEJ1eWVyRGFzaGJvYXJkLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5hY3Rpb25HZXRFbnRpdGxlbWVudHMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLmFjdGlvbkdldEludm9pY2VTdWJtaXNzaW9uVGFzayxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuYWN0aW9uR2V0SXNzdWVkVGF4SW52b2ljZSxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuYWN0aW9uR2V0TGlzdGluZyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuYWN0aW9uR2V0T2ZmZXIsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLmFjdGlvbkdldE9mZmVyU2V0LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5hY3Rpb25HZXRPZmZlclRlcm1zLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5hY3Rpb25HZXRQcm9kdWN0LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5hY3Rpb25HZXRSZXNvdXJjZVBvbGljeSxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuYWN0aW9uR2V0U2VsbGVyRGFzaGJvYXJkLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5hY3Rpb25HZXRUYXhDb21wbGlhbmNlUHJvZmlsZSxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuYWN0aW9uR2V0VmVyaWZpY2F0aW9uLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5hY3Rpb25HZXRWZXJpZmljYXRpb25FdmlkZW5jZSxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuTGlzdEJ1aWxkcyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuTGlzdEVudGl0bGVtZW50RGV0YWlscyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuTGlzdFRhZ3NGb3JSZXNvdXJjZSxcblx0XTtcblx0LyoqIEFsbCB3cml0ZS1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsV3JpdGVBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuQWNjZXB0QWdyZWVtZW50QXBwcm92YWxSZXF1ZXN0LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5BY2NlcHRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5BY2NlcHRBZ3JlZW1lbnRQYXltZW50UmVxdWVzdCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuQWNjZXB0QWdyZWVtZW50UmVxdWVzdCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuQXNzb2NpYXRlUHJvZHVjdHNXaXRoUHJpdmF0ZU1hcmtldHBsYWNlLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5CYXRjaENyZWF0ZUJpbGxpbmdBZGp1c3RtZW50UmVxdWVzdCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuQmF0Y2hNZXRlclVzYWdlLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5DYW5jZWxBZ3JlZW1lbnQsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkNhbmNlbEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3QsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkNhbmNlbEFncmVlbWVudFBheW1lbnRSZXF1ZXN0LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5DYW5jZWxBZ3JlZW1lbnRSZXF1ZXN0LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5DYW5jZWxDaGFuZ2VTZXQsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkNyZWF0ZUFncmVlbWVudFJlcXVlc3QsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkNyZWF0ZVByaXZhdGVNYXJrZXRwbGFjZVJlcXVlc3RzLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5DcmVhdGVWZXJpZmljYXRpb25FdmlkZW5jZSxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuRGlzYXNzb2NpYXRlUHJvZHVjdHNGcm9tUHJpdmF0ZU1hcmtldHBsYWNlLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5NZXRlclVzYWdlLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5QdXREZXBsb3ltZW50UGFyYW1ldGVyLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5QdXRQcm9jdXJlbWVudFN5c3RlbUNvbmZpZ3VyYXRpb24sXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlJlZ2lzdGVyVXNhZ2UsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlJlamVjdEFncmVlbWVudEFwcHJvdmFsUmVxdWVzdCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuUmVqZWN0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuUmVqZWN0QWdyZWVtZW50UGF5bWVudFJlcXVlc3QsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlJlc29sdmVDdXN0b21lcixcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuU2VuZEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3QsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlNlbmRBZ3JlZW1lbnRQYXltZW50UmVxdWVzdCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuU3RhcnRCdWlsZCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuU3RhcnRDaGFuZ2VTZXQsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlN0YXJ0SW52b2ljZVN1Ym1pc3Npb25UYXNrLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5TdGFydFRheENvbXBsaWFuY2VQcm9maWxlQ2hhbmdlVGFzayxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuU3RhcnRWZXJpZmljYXRpb24sXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlN1YnNjcmliZSxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuVW5zdWJzY3JpYmUsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlVwZGF0ZUFncmVlbWVudEFwcHJvdmFsUmVxdWVzdCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuVXBkYXRlUHVyY2hhc2VPcmRlcnMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlVwZGF0ZVZlcmlmaWNhdGlvbkV2aWRlbmNlLFxuXHRdO1xuXHQvKiogQWxsIGxpc3QtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbExpc3RBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuRGVzY3JpYmVQcml2YXRlTWFya2V0cGxhY2VSZXF1ZXN0cyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuYWN0aW9uR2V0QWdyZWVtZW50VGVybXMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkxpc3RBZ3JlZW1lbnRBcHByb3ZhbFJlcXVlc3RzLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5MaXN0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdHMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkxpc3RBZ3JlZW1lbnRDaGFyZ2VzLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5MaXN0QWdyZWVtZW50SW52b2ljZUxpbmVJdGVtcyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuTGlzdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0cyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuTGlzdEFncmVlbWVudFJlcXVlc3RzLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5MaXN0QXNzZXNzbWVudHMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkxpc3RCaWxsaW5nQWRqdXN0bWVudFJlcXVlc3RzLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5MaXN0Q2hhbmdlU2V0cyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuTGlzdEVudGl0aWVzLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5MaXN0RnVsZmlsbG1lbnRPcHRpb25zLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5MaXN0SW52b2ljZVN1Ym1pc3Npb25UYXNrcyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuTGlzdElzc3VlZFRheEludm9pY2VzLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5MaXN0UGF5YWJsZXMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkxpc3RQcml2YXRlTGlzdGluZ3MsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkxpc3RQcml2YXRlTWFya2V0cGxhY2VSZXF1ZXN0cyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuTGlzdFB1cmNoYXNlT3B0aW9ucyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuTGlzdFRheENvbXBsaWFuY2VQcm9maWxlQ2hhbmdlVGFza3MsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkxpc3RUYXhDb21wbGlhbmNlUHJvZmlsZXMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkxpc3RWZXJpZmljYXRpb25FdmlkZW5jZSxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuTGlzdFZlcmlmaWNhdGlvbnMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlNlYXJjaEFncmVlbWVudHMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlNlYXJjaEZhY2V0cyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuU2VhcmNoTGlzdGluZ3MsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlZpZXdTdWJzY3JpcHRpb25zLFxuXHRdO1xuXHQvKiogQWxsIHBlcm1pc3Npb24tbWFuYWdlbWVudC1sZXZlbCBhY3Rpb25zLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWxsUGVybWlzc2lvbk1hbmFnZW1lbnRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuRGVsZXRlUmVzb3VyY2VQb2xpY3ksXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlB1dFJlc291cmNlUG9saWN5LFxuXHRdO1xuXHQvKiogQWxsIHRhZ2dpbmctbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFRhZ2dpbmdBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuVGFnUmVzb3VyY2UsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlVudGFnUmVzb3VyY2UsXG5cdF07XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBBbGxMaXN0aW5ncyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VBbGxMaXN0aW5nc0FyblByb3BzIHtcblx0LyoqIFRoZSBDYXRhbG9nTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZ05hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBBbGxMaXN0aW5ncyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VBbGxMaXN0aW5nc0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2F0YWxvZ05hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjYXRhbG9nTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgQWxsUHVyY2hhc2VPcHRpb25zIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZUFsbFB1cmNoYXNlT3B0aW9uc0FyblByb3BzIHtcblx0LyoqIFRoZSBDYXRhbG9nTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZ05hbWU6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBBbGxQdXJjaGFzZU9wdGlvbnMgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlQWxsUHVyY2hhc2VPcHRpb25zQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDYXRhbG9nTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNhdGFsb2dOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBBc3Nlc3NtZW50IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZUFzc2Vzc21lbnRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ2F0YWxvZyBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZzogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBBc3Nlc3NtZW50IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZUFzc2Vzc21lbnRBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENhdGFsb2cgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjYXRhbG9nOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIENoYW5nZVNldCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VDaGFuZ2VTZXRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ2F0YWxvZyBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZzogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBDaGFuZ2VTZXQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlQ2hhbmdlU2V0QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDYXRhbG9nIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZzogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBEYXNoYm9hcmQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlRGFzaGJvYXJkQXJuUHJvcHMge1xuXHQvKiogVGhlIENhdGFsb2cgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNhdGFsb2c6IHN0cmluZztcblx0LyoqIFRoZSBGYWN0VGFibGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGZhY3RUYWJsZTogc3RyaW5nO1xuXHQvKiogVGhlIERhc2hib2FyZE5hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGRhc2hib2FyZE5hbWU6IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIERhc2hib2FyZCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VEYXNoYm9hcmRBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDYXRhbG9nIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZzogc3RyaW5nO1xuXHQvKiogVGhlIEZhY3RUYWJsZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGZhY3RUYWJsZTogc3RyaW5nO1xuXHQvKiogVGhlIERhc2hib2FyZE5hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBkYXNoYm9hcmROYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBEZXBsb3ltZW50UGFyYW1ldGVyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZURlcGxveW1lbnRQYXJhbWV0ZXJBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ2F0YWxvZ05hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNhdGFsb2dOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgUHJvZHVjdElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBwcm9kdWN0SWQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgRGVwbG95bWVudFBhcmFtZXRlciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VEZXBsb3ltZW50UGFyYW1ldGVyQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDYXRhbG9nTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNhdGFsb2dOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgUHJvZHVjdElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcHJvZHVjdElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIEVudGl0eSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VFbnRpdHlBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ2F0YWxvZyBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZzogc3RyaW5nO1xuXHQvKiogVGhlIEVudGl0eVR5cGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGVudGl0eVR5cGU6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgRW50aXR5IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZUVudGl0eUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2F0YWxvZyBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNhdGFsb2c6IHN0cmluZztcblx0LyoqIFRoZSBFbnRpdHlUeXBlIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZW50aXR5VHlwZTogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBJbnZvaWNlU3VibWlzc2lvblRhc2sgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlSW52b2ljZVN1Ym1pc3Npb25UYXNrQXJuUHJvcHMge1xuXHQvKiogVGhlIENhdGFsb2cgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNhdGFsb2c6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgSW52b2ljZVN1Ym1pc3Npb25UYXNrIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZUludm9pY2VTdWJtaXNzaW9uVGFza0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2F0YWxvZyBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNhdGFsb2c6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgSXNzdWVkVGF4SW52b2ljZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VJc3N1ZWRUYXhJbnZvaWNlQXJuUHJvcHMge1xuXHQvKiogVGhlIENhdGFsb2cgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNhdGFsb2c6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgSXNzdWVkVGF4SW52b2ljZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VJc3N1ZWRUYXhJbnZvaWNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDYXRhbG9nIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZzogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBMaXN0aW5nIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZUxpc3RpbmdBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ2F0YWxvZ05hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNhdGFsb2dOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgTGlzdGluZ0lkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBsaXN0aW5nSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBMaXN0aW5nIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZUxpc3RpbmdBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENhdGFsb2dOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZ05hbWU6IHN0cmluZztcblx0LyoqIFRoZSBMaXN0aW5nSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBsaXN0aW5nSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIE9mZmVyIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZU9mZmVyQXJuUHJvcHMge1xuXHQvKiogVGhlIENhdGFsb2dOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjYXRhbG9nTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIE9mZmVySWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IG9mZmVySWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBPZmZlciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VPZmZlckFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2F0YWxvZ05hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjYXRhbG9nTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIE9mZmVySWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBvZmZlcklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBPZmZlclNldCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VPZmZlclNldEFyblByb3BzIHtcblx0LyoqIFRoZSBDYXRhbG9nTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZ05hbWU6IHN0cmluZztcblx0LyoqIFRoZSBPZmZlclNldElkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBvZmZlclNldElkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgT2ZmZXJTZXQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlT2ZmZXJTZXRBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENhdGFsb2dOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZ05hbWU6IHN0cmluZztcblx0LyoqIFRoZSBPZmZlclNldElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgb2ZmZXJTZXRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgUHJvZHVjdCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VQcm9kdWN0QXJuUHJvcHMge1xuXHQvKiogVGhlIENhdGFsb2dOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjYXRhbG9nTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFByb2R1Y3RJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcHJvZHVjdElkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgUHJvZHVjdCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VQcm9kdWN0QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDYXRhbG9nTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNhdGFsb2dOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgUHJvZHVjdElkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcHJvZHVjdElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBQdXJjaGFzZU9wdGlvbiBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VQdXJjaGFzZU9wdGlvbkFyblByb3BzIHtcblx0LyoqIFRoZSBDYXRhbG9nTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZ05hbWU6IHN0cmluZztcblx0LyoqIFRoZSBQdXJjaGFzZU9wdGlvbklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBwdXJjaGFzZU9wdGlvbklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgUHVyY2hhc2VPcHRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlUHVyY2hhc2VPcHRpb25Bcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENhdGFsb2dOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZ05hbWU6IHN0cmluZztcblx0LyoqIFRoZSBQdXJjaGFzZU9wdGlvbklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcHVyY2hhc2VPcHRpb25JZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgU2VsbGVyRGFzaGJvYXJkIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZVNlbGxlckRhc2hib2FyZEFyblByb3BzIHtcblx0LyoqIFRoZSBDYXRhbG9nIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjYXRhbG9nOiBzdHJpbmc7XG5cdC8qKiBUaGUgRmFjdFRhYmxlIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBmYWN0VGFibGU6IHN0cmluZztcblx0LyoqIFRoZSBEYXNoYm9hcmROYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkYXNoYm9hcmROYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBTZWxsZXJEYXNoYm9hcmQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlU2VsbGVyRGFzaGJvYXJkQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2F0YWxvZyBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNhdGFsb2c6IHN0cmluZztcblx0LyoqIFRoZSBGYWN0VGFibGUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBmYWN0VGFibGU6IHN0cmluZztcblx0LyoqIFRoZSBEYXNoYm9hcmROYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGFzaGJvYXJkTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgVGF4Q29tcGxpYW5jZVByb2ZpbGUgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlVGF4Q29tcGxpYW5jZVByb2ZpbGVBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFRheENvbXBsaWFuY2VQcm9maWxlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZVRheENvbXBsaWFuY2VQcm9maWxlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgVGF4Q29tcGxpYW5jZVByb2ZpbGVDaGFuZ2VUYXNrIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZVRheENvbXBsaWFuY2VQcm9maWxlQ2hhbmdlVGFza0FyblByb3BzIHtcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgVGF4Q29tcGxpYW5jZVByb2ZpbGVDaGFuZ2VUYXNrIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZVRheENvbXBsaWFuY2VQcm9maWxlQ2hhbmdlVGFza0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIFZlcmlmaWNhdGlvbkV2aWRlbmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZVZlcmlmaWNhdGlvbkV2aWRlbmNlQXJuUHJvcHMge1xuXHQvKiogVGhlIFZlcmlmaWNhdGlvblR5cGUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHZlcmlmaWNhdGlvblR5cGU6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgVmVyaWZpY2F0aW9uRXZpZGVuY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlVmVyaWZpY2F0aW9uRXZpZGVuY2VBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFZlcmlmaWNhdGlvblR5cGUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSB2ZXJpZmljYXRpb25UeXBlOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuY29uc3QgQWxsTGlzdGluZ3NBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXdzLW1hcmtldHBsYWNlOjo6Y2F0YWxvZ1xcLyg/PGNhdGFsb2dOYW1lPlteOi8/XSspXFwvbGlzdGluZ1xcLy4qJC87XG5jb25zdCBBbGxQdXJjaGFzZU9wdGlvbnNBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXdzLW1hcmtldHBsYWNlOjo6Y2F0YWxvZ1xcLyg/PGNhdGFsb2dOYW1lPlteOi8/XSspXFwvcHVyY2hhc2VPcHRpb25cXC8uKiQvO1xuY29uc3QgQXNzZXNzbWVudEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphd3MtbWFya2V0cGxhY2U6KD88cmVnaW9uPlteOl0qKTo6KD88Y2F0YWxvZz5bXjovP10rKVxcL0Fzc2Vzc21lbnRcXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBDaGFuZ2VTZXRBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXdzLW1hcmtldHBsYWNlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6KD88Y2F0YWxvZz5bXjovP10rKVxcL0NoYW5nZVNldFxcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IERhc2hib2FyZEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphd3MtbWFya2V0cGxhY2U6Oig/PGFjY291bnQ+W146XSopOig/PGNhdGFsb2c+W146Lz9dKylcXC9SZXBvcnRpbmdEYXRhXFwvKD88ZmFjdFRhYmxlPlteOi8/XSspXFwvRGFzaGJvYXJkXFwvKD88ZGFzaGJvYXJkTmFtZT5bXjovP10rKSQvO1xuY29uc3QgRGVwbG95bWVudFBhcmFtZXRlckFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphd3MtbWFya2V0cGxhY2U6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpEZXBsb3ltZW50UGFyYW1ldGVyOmNhdGFsb2dzXFwvKD88Y2F0YWxvZ05hbWU+W146Lz9dKylcXC9wcm9kdWN0c1xcLyg/PHByb2R1Y3RJZD5bXjovP10rKVxcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IEVudGl0eUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphd3MtbWFya2V0cGxhY2U6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTooPzxjYXRhbG9nPlteOi8/XSspXFwvKD88ZW50aXR5VHlwZT5bXjovP10rKVxcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IEludm9pY2VTdWJtaXNzaW9uVGFza0FyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphd3MtbWFya2V0cGxhY2U6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjYXRhbG9nXFwvKD88Y2F0YWxvZz5bXjovP10rKVxcL2ludm9pY2Utc3VibWlzc2lvbi10YXNrXFwvKD88cmVzb3VyY2VJZD5bXjovP10rKSQvO1xuY29uc3QgSXNzdWVkVGF4SW52b2ljZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphd3MtbWFya2V0cGxhY2U6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTpjYXRhbG9nXFwvKD88Y2F0YWxvZz5bXjovP10rKVxcL2lzc3VlZC10YXgtaW52b2ljZVxcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IExpc3RpbmdBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXdzLW1hcmtldHBsYWNlOjo6Y2F0YWxvZ1xcLyg/PGNhdGFsb2dOYW1lPlteOi8/XSspXFwvbGlzdGluZ1xcLyg/PGxpc3RpbmdJZD5bXjovP10rKSQvO1xuY29uc3QgT2ZmZXJBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXdzLW1hcmtldHBsYWNlOjo6Y2F0YWxvZ1xcLyg/PGNhdGFsb2dOYW1lPlteOi8/XSspXFwvb2ZmZXJcXC8oPzxvZmZlcklkPlteOi8/XSspJC87XG5jb25zdCBPZmZlclNldEFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphd3MtbWFya2V0cGxhY2U6OjpjYXRhbG9nXFwvKD88Y2F0YWxvZ05hbWU+W146Lz9dKylcXC9vZmZlclNldFxcLyg/PG9mZmVyU2V0SWQ+W146Lz9dKykkLztcbmNvbnN0IFByb2R1Y3RBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXdzLW1hcmtldHBsYWNlOjo6Y2F0YWxvZ1xcLyg/PGNhdGFsb2dOYW1lPlteOi8/XSspXFwvcHJvZHVjdFxcLyg/PHByb2R1Y3RJZD5bXjovP10rKSQvO1xuY29uc3QgUHVyY2hhc2VPcHRpb25Bcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXdzLW1hcmtldHBsYWNlOjo6Y2F0YWxvZ1xcLyg/PGNhdGFsb2dOYW1lPlteOi8/XSspXFwvcHVyY2hhc2VPcHRpb25cXC8oPzxwdXJjaGFzZU9wdGlvbklkPlteOi8/XSspJC87XG5jb25zdCBTZWxsZXJEYXNoYm9hcmRBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXdzLW1hcmtldHBsYWNlOjooPzxhY2NvdW50PlteOl0qKTooPzxjYXRhbG9nPlteOi8/XSspXFwvUmVwb3J0aW5nRGF0YVxcLyg/PGZhY3RUYWJsZT5bXjovP10rKVxcL0Rhc2hib2FyZFxcLyg/PGRhc2hib2FyZE5hbWU+W146Lz9dKykkLztcbmNvbnN0IFRheENvbXBsaWFuY2VQcm9maWxlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmF3cy1tYXJrZXRwbGFjZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnRheC1jb21wbGlhbmNlLXByb2ZpbGVcXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2tBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXdzLW1hcmtldHBsYWNlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6dGF4LWNvbXBsaWFuY2UtcHJvZmlsZS1jaGFuZ2UtdGFza1xcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IFZlcmlmaWNhdGlvbkV2aWRlbmNlQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmF3cy1tYXJrZXRwbGFjZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnZlcmlmaWNhdGlvbi10eXBlXFwvKD88dmVyaWZpY2F0aW9uVHlwZT5bXjovP10rKVxcL3ZlcmlmaWNhdGlvbi1ldmlkZW5jZVxcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcblxuLyoqXG4gKiBBUk4gYnVpbGRlcnMsIHZhbGlkYXRvcnMsIGFuZCBwYXJzZXJzIGZvciBhd3MtbWFya2V0cGxhY2UgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgY2xhc3MgQVdTTWFya2V0cGxhY2VSZXNvdXJjZXMge1xuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIEFsbExpc3RpbmdzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGFsbExpc3RpbmdzKHByb3BzOiBBV1NNYXJrZXRwbGFjZUFsbExpc3RpbmdzQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmF3cy1tYXJrZXRwbGFjZTo6OmNhdGFsb2cvJHtwcm9wcy5jYXRhbG9nTmFtZX0vbGlzdGluZy8qYDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIEFsbExpc3RpbmdzIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRBbGxMaXN0aW5nc0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBBbGxMaXN0aW5nc0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBBbGxMaXN0aW5ncyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VBbGxMaXN0aW5nc0Fybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogQVdTTWFya2V0cGxhY2VBbGxMaXN0aW5nc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQWxsTGlzdGluZ3NBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgQWxsTGlzdGluZ3MgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y2F0YWxvZ05hbWU6IG1hdGNoLmdyb3VwcyEuY2F0YWxvZ05hbWUsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgQWxsUHVyY2hhc2VPcHRpb25zIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGFsbFB1cmNoYXNlT3B0aW9ucyhcblx0XHRwcm9wczogQVdTTWFya2V0cGxhY2VBbGxQdXJjaGFzZU9wdGlvbnNBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphd3MtbWFya2V0cGxhY2U6OjpjYXRhbG9nLyR7cHJvcHMuY2F0YWxvZ05hbWV9L3B1cmNoYXNlT3B0aW9uLypgO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgQWxsUHVyY2hhc2VPcHRpb25zIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRBbGxQdXJjaGFzZU9wdGlvbnNBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQWxsUHVyY2hhc2VPcHRpb25zQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIEFsbFB1cmNoYXNlT3B0aW9ucyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VBbGxQdXJjaGFzZU9wdGlvbnNBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEFXU01hcmtldHBsYWNlQWxsUHVyY2hhc2VPcHRpb25zQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBBbGxQdXJjaGFzZU9wdGlvbnNBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgQWxsUHVyY2hhc2VPcHRpb25zIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNhdGFsb2dOYW1lOiBtYXRjaC5ncm91cHMhLmNhdGFsb2dOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIEFzc2Vzc21lbnQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgYXNzZXNzbWVudChwcm9wczogQVdTTWFya2V0cGxhY2VBc3Nlc3NtZW50QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmF3cy1tYXJrZXRwbGFjZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06OiR7cHJvcHMuY2F0YWxvZ30vQXNzZXNzbWVudC8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIEFzc2Vzc21lbnQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEFzc2Vzc21lbnRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQXNzZXNzbWVudEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBBc3Nlc3NtZW50IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUFzc2Vzc21lbnRBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEFXU01hcmtldHBsYWNlQXNzZXNzbWVudEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQXNzZXNzbWVudEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBBc3Nlc3NtZW50IEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNhdGFsb2c6IG1hdGNoLmdyb3VwcyEuY2F0YWxvZyxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBDaGFuZ2VTZXQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgY2hhbmdlU2V0KHByb3BzOiBBV1NNYXJrZXRwbGFjZUNoYW5nZVNldEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphd3MtbWFya2V0cGxhY2U6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06JHtwcm9wcy5jYXRhbG9nfS9DaGFuZ2VTZXQvJHtwcm9wcy5yZXNvdXJjZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBDaGFuZ2VTZXQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZENoYW5nZVNldEFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBDaGFuZ2VTZXRBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgQ2hhbmdlU2V0IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUNoYW5nZVNldEFybihhcm46IHN0cmluZyk6IEFXU01hcmtldHBsYWNlQ2hhbmdlU2V0QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBDaGFuZ2VTZXRBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgQ2hhbmdlU2V0IEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNhdGFsb2c6IG1hdGNoLmdyb3VwcyEuY2F0YWxvZyxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBEYXNoYm9hcmQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZGFzaGJvYXJkKHByb3BzOiBBV1NNYXJrZXRwbGFjZURhc2hib2FyZEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphd3MtbWFya2V0cGxhY2U6OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06JHtwcm9wcy5jYXRhbG9nfS9SZXBvcnRpbmdEYXRhLyR7cHJvcHMuZmFjdFRhYmxlfS9EYXNoYm9hcmQvJHtwcm9wcy5kYXNoYm9hcmROYW1lfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBEYXNoYm9hcmQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZERhc2hib2FyZEFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBEYXNoYm9hcmRBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgRGFzaGJvYXJkIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZURhc2hib2FyZEFybihhcm46IHN0cmluZyk6IEFXU01hcmtldHBsYWNlRGFzaGJvYXJkQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEYXNoYm9hcmRBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgRGFzaGJvYXJkIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNhdGFsb2c6IG1hdGNoLmdyb3VwcyEuY2F0YWxvZyxcblx0XHRcdGZhY3RUYWJsZTogbWF0Y2guZ3JvdXBzIS5mYWN0VGFibGUsXG5cdFx0XHRkYXNoYm9hcmROYW1lOiBtYXRjaC5ncm91cHMhLmRhc2hib2FyZE5hbWUsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgRGVwbG95bWVudFBhcmFtZXRlciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBkZXBsb3ltZW50UGFyYW1ldGVyKFxuXHRcdHByb3BzOiBBV1NNYXJrZXRwbGFjZURlcGxveW1lbnRQYXJhbWV0ZXJBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphd3MtbWFya2V0cGxhY2U6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06RGVwbG95bWVudFBhcmFtZXRlcjpjYXRhbG9ncy8ke3Byb3BzLmNhdGFsb2dOYW1lfS9wcm9kdWN0cy8ke3Byb3BzLnByb2R1Y3RJZH0vJHtwcm9wcy5yZXNvdXJjZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBEZXBsb3ltZW50UGFyYW1ldGVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWREZXBsb3ltZW50UGFyYW1ldGVyQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIERlcGxveW1lbnRQYXJhbWV0ZXJBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgRGVwbG95bWVudFBhcmFtZXRlciBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VEZXBsb3ltZW50UGFyYW1ldGVyQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBBV1NNYXJrZXRwbGFjZURlcGxveW1lbnRQYXJhbWV0ZXJBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IERlcGxveW1lbnRQYXJhbWV0ZXJBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgRGVwbG95bWVudFBhcmFtZXRlciBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjYXRhbG9nTmFtZTogbWF0Y2guZ3JvdXBzIS5jYXRhbG9nTmFtZSxcblx0XHRcdHByb2R1Y3RJZDogbWF0Y2guZ3JvdXBzIS5wcm9kdWN0SWQsXG5cdFx0XHRyZXNvdXJjZUlkOiBtYXRjaC5ncm91cHMhLnJlc291cmNlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgRW50aXR5IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGVudGl0eShwcm9wczogQVdTTWFya2V0cGxhY2VFbnRpdHlBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXdzLW1hcmtldHBsYWNlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OiR7cHJvcHMuY2F0YWxvZ30vJHtwcm9wcy5lbnRpdHlUeXBlfS8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIEVudGl0eSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRW50aXR5QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEVudGl0eUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBFbnRpdHkgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRW50aXR5QXJuKGFybjogc3RyaW5nKTogQVdTTWFya2V0cGxhY2VFbnRpdHlBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEVudGl0eUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBFbnRpdHkgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y2F0YWxvZzogbWF0Y2guZ3JvdXBzIS5jYXRhbG9nLFxuXHRcdFx0ZW50aXR5VHlwZTogbWF0Y2guZ3JvdXBzIS5lbnRpdHlUeXBlLFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIEludm9pY2VTdWJtaXNzaW9uVGFzayByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpbnZvaWNlU3VibWlzc2lvblRhc2soXG5cdFx0cHJvcHM6IEFXU01hcmtldHBsYWNlSW52b2ljZVN1Ym1pc3Npb25UYXNrQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXdzLW1hcmtldHBsYWNlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmNhdGFsb2cvJHtwcm9wcy5jYXRhbG9nfS9pbnZvaWNlLXN1Ym1pc3Npb24tdGFzay8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIEludm9pY2VTdWJtaXNzaW9uVGFzayByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkSW52b2ljZVN1Ym1pc3Npb25UYXNrQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEludm9pY2VTdWJtaXNzaW9uVGFza0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBJbnZvaWNlU3VibWlzc2lvblRhc2sgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlSW52b2ljZVN1Ym1pc3Npb25UYXNrQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBBV1NNYXJrZXRwbGFjZUludm9pY2VTdWJtaXNzaW9uVGFza0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gSW52b2ljZVN1Ym1pc3Npb25UYXNrQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIEludm9pY2VTdWJtaXNzaW9uVGFzayBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjYXRhbG9nOiBtYXRjaC5ncm91cHMhLmNhdGFsb2csXG5cdFx0XHRyZXNvdXJjZUlkOiBtYXRjaC5ncm91cHMhLnJlc291cmNlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgSXNzdWVkVGF4SW52b2ljZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc3N1ZWRUYXhJbnZvaWNlKFxuXHRcdHByb3BzOiBBV1NNYXJrZXRwbGFjZUlzc3VlZFRheEludm9pY2VBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphd3MtbWFya2V0cGxhY2U6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06Y2F0YWxvZy8ke3Byb3BzLmNhdGFsb2d9L2lzc3VlZC10YXgtaW52b2ljZS8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIElzc3VlZFRheEludm9pY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZElzc3VlZFRheEludm9pY2VBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gSXNzdWVkVGF4SW52b2ljZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBJc3N1ZWRUYXhJbnZvaWNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUlzc3VlZFRheEludm9pY2VBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEFXU01hcmtldHBsYWNlSXNzdWVkVGF4SW52b2ljZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gSXNzdWVkVGF4SW52b2ljZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBJc3N1ZWRUYXhJbnZvaWNlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNhdGFsb2c6IG1hdGNoLmdyb3VwcyEuY2F0YWxvZyxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBMaXN0aW5nIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGxpc3RpbmcocHJvcHM6IEFXU01hcmtldHBsYWNlTGlzdGluZ0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphd3MtbWFya2V0cGxhY2U6OjpjYXRhbG9nLyR7cHJvcHMuY2F0YWxvZ05hbWV9L2xpc3RpbmcvJHtwcm9wcy5saXN0aW5nSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIExpc3RpbmcgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZExpc3RpbmdBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gTGlzdGluZ0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBMaXN0aW5nIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUxpc3RpbmdBcm4oYXJuOiBzdHJpbmcpOiBBV1NNYXJrZXRwbGFjZUxpc3RpbmdBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IExpc3RpbmdBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgTGlzdGluZyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjYXRhbG9nTmFtZTogbWF0Y2guZ3JvdXBzIS5jYXRhbG9nTmFtZSxcblx0XHRcdGxpc3RpbmdJZDogbWF0Y2guZ3JvdXBzIS5saXN0aW5nSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgT2ZmZXIgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgb2ZmZXIocHJvcHM6IEFXU01hcmtldHBsYWNlT2ZmZXJBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXdzLW1hcmtldHBsYWNlOjo6Y2F0YWxvZy8ke3Byb3BzLmNhdGFsb2dOYW1lfS9vZmZlci8ke3Byb3BzLm9mZmVySWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIE9mZmVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRPZmZlckFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBPZmZlckFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBPZmZlciBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VPZmZlckFybihhcm46IHN0cmluZyk6IEFXU01hcmtldHBsYWNlT2ZmZXJBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IE9mZmVyQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIE9mZmVyIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNhdGFsb2dOYW1lOiBtYXRjaC5ncm91cHMhLmNhdGFsb2dOYW1lLFxuXHRcdFx0b2ZmZXJJZDogbWF0Y2guZ3JvdXBzIS5vZmZlcklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIE9mZmVyU2V0IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIG9mZmVyU2V0KHByb3BzOiBBV1NNYXJrZXRwbGFjZU9mZmVyU2V0QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmF3cy1tYXJrZXRwbGFjZTo6OmNhdGFsb2cvJHtwcm9wcy5jYXRhbG9nTmFtZX0vb2ZmZXJTZXQvJHtwcm9wcy5vZmZlclNldElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBPZmZlclNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkT2ZmZXJTZXRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gT2ZmZXJTZXRBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgT2ZmZXJTZXQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlT2ZmZXJTZXRBcm4oYXJuOiBzdHJpbmcpOiBBV1NNYXJrZXRwbGFjZU9mZmVyU2V0QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBPZmZlclNldEFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBPZmZlclNldCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjYXRhbG9nTmFtZTogbWF0Y2guZ3JvdXBzIS5jYXRhbG9nTmFtZSxcblx0XHRcdG9mZmVyU2V0SWQ6IG1hdGNoLmdyb3VwcyEub2ZmZXJTZXRJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBQcm9kdWN0IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHByb2R1Y3QocHJvcHM6IEFXU01hcmtldHBsYWNlUHJvZHVjdEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphd3MtbWFya2V0cGxhY2U6OjpjYXRhbG9nLyR7cHJvcHMuY2F0YWxvZ05hbWV9L3Byb2R1Y3QvJHtwcm9wcy5wcm9kdWN0SWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFByb2R1Y3QgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFByb2R1Y3RBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gUHJvZHVjdEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBQcm9kdWN0IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVByb2R1Y3RBcm4oYXJuOiBzdHJpbmcpOiBBV1NNYXJrZXRwbGFjZVByb2R1Y3RBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFByb2R1Y3RBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgUHJvZHVjdCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjYXRhbG9nTmFtZTogbWF0Y2guZ3JvdXBzIS5jYXRhbG9nTmFtZSxcblx0XHRcdHByb2R1Y3RJZDogbWF0Y2guZ3JvdXBzIS5wcm9kdWN0SWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgUHVyY2hhc2VPcHRpb24gcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgcHVyY2hhc2VPcHRpb24ocHJvcHM6IEFXU01hcmtldHBsYWNlUHVyY2hhc2VPcHRpb25Bcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXdzLW1hcmtldHBsYWNlOjo6Y2F0YWxvZy8ke3Byb3BzLmNhdGFsb2dOYW1lfS9wdXJjaGFzZU9wdGlvbi8ke3Byb3BzLnB1cmNoYXNlT3B0aW9uSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFB1cmNoYXNlT3B0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRQdXJjaGFzZU9wdGlvbkFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBQdXJjaGFzZU9wdGlvbkFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBQdXJjaGFzZU9wdGlvbiBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VQdXJjaGFzZU9wdGlvbkFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogQVdTTWFya2V0cGxhY2VQdXJjaGFzZU9wdGlvbkFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gUHVyY2hhc2VPcHRpb25Bcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgUHVyY2hhc2VPcHRpb24gQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y2F0YWxvZ05hbWU6IG1hdGNoLmdyb3VwcyEuY2F0YWxvZ05hbWUsXG5cdFx0XHRwdXJjaGFzZU9wdGlvbklkOiBtYXRjaC5ncm91cHMhLnB1cmNoYXNlT3B0aW9uSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgU2VsbGVyRGFzaGJvYXJkIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHNlbGxlckRhc2hib2FyZChwcm9wczogQVdTTWFya2V0cGxhY2VTZWxsZXJEYXNoYm9hcmRBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXdzLW1hcmtldHBsYWNlOjoke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OiR7cHJvcHMuY2F0YWxvZ30vUmVwb3J0aW5nRGF0YS8ke3Byb3BzLmZhY3RUYWJsZX0vRGFzaGJvYXJkLyR7cHJvcHMuZGFzaGJvYXJkTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgU2VsbGVyRGFzaGJvYXJkIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRTZWxsZXJEYXNoYm9hcmRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gU2VsbGVyRGFzaGJvYXJkQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIFNlbGxlckRhc2hib2FyZCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VTZWxsZXJEYXNoYm9hcmRBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEFXU01hcmtldHBsYWNlU2VsbGVyRGFzaGJvYXJkQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBTZWxsZXJEYXNoYm9hcmRBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgU2VsbGVyRGFzaGJvYXJkIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNhdGFsb2c6IG1hdGNoLmdyb3VwcyEuY2F0YWxvZyxcblx0XHRcdGZhY3RUYWJsZTogbWF0Y2guZ3JvdXBzIS5mYWN0VGFibGUsXG5cdFx0XHRkYXNoYm9hcmROYW1lOiBtYXRjaC5ncm91cHMhLmRhc2hib2FyZE5hbWUsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgVGF4Q29tcGxpYW5jZVByb2ZpbGUgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgdGF4Q29tcGxpYW5jZVByb2ZpbGUoXG5cdFx0cHJvcHM6IEFXU01hcmtldHBsYWNlVGF4Q29tcGxpYW5jZVByb2ZpbGVBcm5Qcm9wcyxcblx0KTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphd3MtbWFya2V0cGxhY2U6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9OiR7cHJvcHMuYWNjb3VudCA/PyBcIipcIn06dGF4LWNvbXBsaWFuY2UtcHJvZmlsZS8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFRheENvbXBsaWFuY2VQcm9maWxlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRUYXhDb21wbGlhbmNlUHJvZmlsZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBUYXhDb21wbGlhbmNlUHJvZmlsZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBUYXhDb21wbGlhbmNlUHJvZmlsZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VUYXhDb21wbGlhbmNlUHJvZmlsZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogQVdTTWFya2V0cGxhY2VUYXhDb21wbGlhbmNlUHJvZmlsZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gVGF4Q29tcGxpYW5jZVByb2ZpbGVBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgVGF4Q29tcGxpYW5jZVByb2ZpbGUgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIFRheENvbXBsaWFuY2VQcm9maWxlQ2hhbmdlVGFzayByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB0YXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2soXG5cdFx0cHJvcHM6IEFXU01hcmtldHBsYWNlVGF4Q29tcGxpYW5jZVByb2ZpbGVDaGFuZ2VUYXNrQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXdzLW1hcmtldHBsYWNlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnRheC1jb21wbGlhbmNlLXByb2ZpbGUtY2hhbmdlLXRhc2svJHtwcm9wcy5yZXNvdXJjZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2sgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFRheENvbXBsaWFuY2VQcm9maWxlQ2hhbmdlVGFza0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2tBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgVGF4Q29tcGxpYW5jZVByb2ZpbGVDaGFuZ2VUYXNrIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVRheENvbXBsaWFuY2VQcm9maWxlQ2hhbmdlVGFza0Fybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogQVdTTWFya2V0cGxhY2VUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2tBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFRheENvbXBsaWFuY2VQcm9maWxlQ2hhbmdlVGFza0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2sgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIFZlcmlmaWNhdGlvbkV2aWRlbmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHZlcmlmaWNhdGlvbkV2aWRlbmNlKFxuXHRcdHByb3BzOiBBV1NNYXJrZXRwbGFjZVZlcmlmaWNhdGlvbkV2aWRlbmNlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXdzLW1hcmtldHBsYWNlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnZlcmlmaWNhdGlvbi10eXBlLyR7cHJvcHMudmVyaWZpY2F0aW9uVHlwZX0vdmVyaWZpY2F0aW9uLWV2aWRlbmNlLyR7cHJvcHMucmVzb3VyY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgVmVyaWZpY2F0aW9uRXZpZGVuY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZFZlcmlmaWNhdGlvbkV2aWRlbmNlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFZlcmlmaWNhdGlvbkV2aWRlbmNlQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIFZlcmlmaWNhdGlvbkV2aWRlbmNlIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZVZlcmlmaWNhdGlvbkV2aWRlbmNlQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBBV1NNYXJrZXRwbGFjZVZlcmlmaWNhdGlvbkV2aWRlbmNlQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBWZXJpZmljYXRpb25FdmlkZW5jZUFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBWZXJpZmljYXRpb25FdmlkZW5jZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHR2ZXJpZmljYXRpb25UeXBlOiBtYXRjaC5ncm91cHMhLnZlcmlmaWNhdGlvblR5cGUsXG5cdFx0XHRyZXNvdXJjZUlkOiBtYXRjaC5ncm91cHMhLnJlc291cmNlSWQsXG5cdFx0fTtcblx0fVxufVxuXG4vKipcbiAqIEFQSSBvcGVyYXRpb24gdG8gcmVxdWlyZWQgSUFNIGFjdGlvbnMgbWFwcGluZyBmb3IgYXdzLW1hcmtldHBsYWNlLlxuICovXG5leHBvcnQgY2xhc3MgQVdTTWFya2V0cGxhY2VPcGVyYXRpb25zIHtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQWNjZXB0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFjY2VwdEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3Q6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFjY2VwdEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3RcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpDYW5jZWxBZ3JlZW1lbnRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQWNjZXB0QWdyZWVtZW50UGF5bWVudFJlcXVlc3QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBBY2NlcHRBZ3JlZW1lbnRQYXltZW50UmVxdWVzdDogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWNjZXB0QWdyZWVtZW50UGF5bWVudFJlcXVlc3RcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpVcGRhdGVQdXJjaGFzZU9yZGVyc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBBY2NlcHRBZ3JlZW1lbnRSZXF1ZXN0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWNjZXB0QWdyZWVtZW50UmVxdWVzdDogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWNjZXB0QWdyZWVtZW50UmVxdWVzdFwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlN1YnNjcmliZVwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlVwZGF0ZVB1cmNoYXNlT3JkZXJzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEJhdGNoQ3JlYXRlQmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQmF0Y2hDcmVhdGVCaWxsaW5nQWRqdXN0bWVudFJlcXVlc3Q6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkJhdGNoQ3JlYXRlQmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEJhdGNoRGVzY3JpYmVFbnRpdGllcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEJhdGNoRGVzY3JpYmVFbnRpdGllczogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6RGVzY3JpYmVFbnRpdHlcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQmF0Y2hNZXRlclVzYWdlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQmF0Y2hNZXRlclVzYWdlOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpCYXRjaE1ldGVyVXNhZ2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ2FuY2VsQWdyZWVtZW50IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsQWdyZWVtZW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpDYW5jZWxBZ3JlZW1lbnRcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpVbnN1YnNjcmliZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDYW5jZWxBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsQWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdDogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6Q2FuY2VsQWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDYW5jZWxBZ3JlZW1lbnRQYXltZW50UmVxdWVzdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENhbmNlbEFncmVlbWVudFBheW1lbnRSZXF1ZXN0OiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpDYW5jZWxBZ3JlZW1lbnRQYXltZW50UmVxdWVzdFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDYW5jZWxDaGFuZ2VTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxDaGFuZ2VTZXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkNhbmNlbENoYW5nZVNldFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBDcmVhdGVBZ3JlZW1lbnRSZXF1ZXN0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQWdyZWVtZW50UmVxdWVzdDogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6Q3JlYXRlQWdyZWVtZW50UmVxdWVzdFwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlN1YnNjcmliZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZWxldGVSZXNvdXJjZVBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlbGV0ZVJlc291cmNlUG9saWN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpEZWxldGVSZXNvdXJjZVBvbGljeVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUFncmVlbWVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQWdyZWVtZW50OiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpEZXNjcmliZUFncmVlbWVudFwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlZpZXdTdWJzY3JpcHRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQXNzZXNzbWVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQXNzZXNzbWVudDogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6RGVzY3JpYmVBc3Nlc3NtZW50XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlQ2hhbmdlU2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDaGFuZ2VTZXQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlQ2hhbmdlU2V0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIERlc2NyaWJlRW50aXR5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVFbnRpdHk6IHN0cmluZ1tdID0gW1wiYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlRW50aXR5XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0OiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpHZXRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEFncmVlbWVudEVudGl0bGVtZW50cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0QWdyZWVtZW50RW50aXRsZW1lbnRzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpHZXRBZ3JlZW1lbnRFbnRpdGxlbWVudHNcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpWaWV3U3Vic2NyaXB0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRBZ3JlZW1lbnRQYXltZW50UmVxdWVzdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0QWdyZWVtZW50UGF5bWVudFJlcXVlc3Q6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkdldEFncmVlbWVudFBheW1lbnRSZXF1ZXN0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEFncmVlbWVudFRlcm1zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRBZ3JlZW1lbnRUZXJtczogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6R2V0QWdyZWVtZW50VGVybXNcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpWaWV3U3Vic2NyaXB0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRCaWxsaW5nQWRqdXN0bWVudFJlcXVlc3QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEJpbGxpbmdBZGp1c3RtZW50UmVxdWVzdDogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6R2V0QmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEJ1eWVyRGFzaGJvYXJkIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRCdXllckRhc2hib2FyZDogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6R2V0QnV5ZXJEYXNoYm9hcmRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0RW50aXRsZW1lbnRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRFbnRpdGxlbWVudHM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkdldEVudGl0bGVtZW50c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRMaXN0aW5nIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRMaXN0aW5nOiBzdHJpbmdbXSA9IFtcImF3cy1tYXJrZXRwbGFjZTpHZXRMaXN0aW5nXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRPZmZlciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0T2ZmZXI6IHN0cmluZ1tdID0gW1wiYXdzLW1hcmtldHBsYWNlOkdldE9mZmVyXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRPZmZlclNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0T2ZmZXJTZXQ6IHN0cmluZ1tdID0gW1wiYXdzLW1hcmtldHBsYWNlOkdldE9mZmVyU2V0XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRPZmZlclRlcm1zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRPZmZlclRlcm1zOiBzdHJpbmdbXSA9IFtcImF3cy1tYXJrZXRwbGFjZTpHZXRPZmZlclRlcm1zXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRQcm9kdWN0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRQcm9kdWN0OiBzdHJpbmdbXSA9IFtcImF3cy1tYXJrZXRwbGFjZTpHZXRQcm9kdWN0XCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRSZXNvdXJjZVBvbGljeSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UmVzb3VyY2VQb2xpY3k6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkdldFJlc291cmNlUG9saWN5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3RzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBZ3JlZW1lbnRDaGFyZ2VzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFncmVlbWVudENoYXJnZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RBZ3JlZW1lbnRDaGFyZ2VzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBZ3JlZW1lbnRJbnZvaWNlTGluZUl0ZW1zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFncmVlbWVudEludm9pY2VMaW5lSXRlbXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RBZ3JlZW1lbnRJbnZvaWNlTGluZUl0ZW1zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBZ3JlZW1lbnRQYXltZW50UmVxdWVzdHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QWdyZWVtZW50UGF5bWVudFJlcXVlc3RzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpMaXN0QWdyZWVtZW50UGF5bWVudFJlcXVlc3RzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RBc3Nlc3NtZW50cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBc3Nlc3NtZW50czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdEFzc2Vzc21lbnRzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RCaWxsaW5nQWRqdXN0bWVudFJlcXVlc3RzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEJpbGxpbmdBZGp1c3RtZW50UmVxdWVzdHM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RCaWxsaW5nQWRqdXN0bWVudFJlcXVlc3RzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RDaGFuZ2VTZXRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdENoYW5nZVNldHM6IHN0cmluZ1tdID0gW1wiYXdzLW1hcmtldHBsYWNlOkxpc3RDaGFuZ2VTZXRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RW50aXRpZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RW50aXRpZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlRW50aXR5XCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdEVudGl0aWVzXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RGdWxmaWxsbWVudE9wdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0RnVsZmlsbG1lbnRPcHRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpMaXN0RnVsZmlsbG1lbnRPcHRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RQdXJjaGFzZU9wdGlvbnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UHVyY2hhc2VPcHRpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpMaXN0UHVyY2hhc2VPcHRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpMaXN0VGFnc0ZvclJlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIE1ldGVyVXNhZ2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBNZXRlclVzYWdlOiBzdHJpbmdbXSA9IFtcImF3cy1tYXJrZXRwbGFjZTpNZXRlclVzYWdlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBQdXREZXBsb3ltZW50UGFyYW1ldGVyIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0RGVwbG95bWVudFBhcmFtZXRlcjogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UHV0RGVwbG95bWVudFBhcmFtZXRlclwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1dFJlc291cmNlUG9saWN5IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UmVzb3VyY2VQb2xpY3k6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlB1dFJlc291cmNlUG9saWN5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlZ2lzdGVyVXNhZ2UgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZWdpc3RlclVzYWdlOiBzdHJpbmdbXSA9IFtcImF3cy1tYXJrZXRwbGFjZTpSZWdpc3RlclVzYWdlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZWplY3RBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVqZWN0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdDogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UmVqZWN0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZWplY3RBZ3JlZW1lbnRQYXltZW50UmVxdWVzdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlamVjdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0OiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpSZWplY3RBZ3JlZW1lbnRQYXltZW50UmVxdWVzdFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBSZXNvbHZlQ3VzdG9tZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZXNvbHZlQ3VzdG9tZXI6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlJlc29sdmVDdXN0b21lclwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTZWFyY2hBZ3JlZW1lbnRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VhcmNoQWdyZWVtZW50czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6U2VhcmNoQWdyZWVtZW50c1wiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlZpZXdTdWJzY3JpcHRpb25zXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFNlYXJjaEZhY2V0cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlYXJjaEZhY2V0czogc3RyaW5nW10gPSBbXCJhd3MtbWFya2V0cGxhY2U6U2VhcmNoRmFjZXRzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTZWFyY2hMaXN0aW5ncyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlYXJjaExpc3RpbmdzOiBzdHJpbmdbXSA9IFtcImF3cy1tYXJrZXRwbGFjZTpTZWFyY2hMaXN0aW5nc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU2VuZEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kQWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdDogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6U2VuZEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3RcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU2VuZEFncmVlbWVudFBheW1lbnRSZXF1ZXN0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZEFncmVlbWVudFBheW1lbnRSZXF1ZXN0OiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpTZW5kQWdyZWVtZW50UGF5bWVudFJlcXVlc3RcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU3RhcnRDaGFuZ2VTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydENoYW5nZVNldDogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6RGVzY3JpYmVBZ3JlZW1lbnRcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpEZXNjcmliZUNoYW5nZVNldFwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlRW50aXR5XCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6R2V0QWdyZWVtZW50VGVybXNcIixcblx0XHRcImlhbTpQYXNzUm9sZVwiLFxuXHRcdFwiZGF0YWV4Y2hhbmdlOlB1Ymxpc2hEYXRhU2V0XCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6U3RhcnRDaGFuZ2VTZXRcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpUYWdSZXNvdXJjZVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBUYWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlOiBzdHJpbmdbXSA9IFtcImF3cy1tYXJrZXRwbGFjZTpUYWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVW50YWdSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wiYXdzLW1hcmtldHBsYWNlOlVudGFnUmVzb3VyY2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFVwZGF0ZVB1cmNoYXNlT3JkZXJzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVXBkYXRlUHVyY2hhc2VPcmRlcnM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlVwZGF0ZVB1cmNoYXNlT3JkZXJzXCIsXG5cdF07XG59XG5cbi8qKlxuICogQ29uZGl0aW9uIGtleSBjb25zdGFudHMgYW5kIGJ1aWxkZXJzIGZvciBhd3MtbWFya2V0cGxhY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBBV1NNYXJrZXRwbGFjZUNvbmRpdGlvbnMge1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQWNjZXB0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBBY2NlcHRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWdyZWVtZW50VHlwZVwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlBhcnR5VHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQWNjZXB0QWdyZWVtZW50UGF5bWVudFJlcXVlc3QgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWNjZXB0QWdyZWVtZW50UGF5bWVudFJlcXVlc3RDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBZ3JlZW1lbnRUeXBlXCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UGFydHlUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBBY2NlcHRBZ3JlZW1lbnRSZXF1ZXN0IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFjY2VwdEFncmVlbWVudFJlcXVlc3RDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBZ3JlZW1lbnRUeXBlXCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UHJvZHVjdElkXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBCYXRjaENyZWF0ZUJpbGxpbmdBZGp1c3RtZW50UmVxdWVzdCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBCYXRjaENyZWF0ZUJpbGxpbmdBZGp1c3RtZW50UmVxdWVzdENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpQYXJ0eVR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENhbmNlbEFncmVlbWVudCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxBZ3JlZW1lbnRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBZ3JlZW1lbnRUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDYW5jZWxBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENhbmNlbEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3RDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBZ3JlZW1lbnRUeXBlXCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UGFydHlUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBDYW5jZWxBZ3JlZW1lbnRQYXltZW50UmVxdWVzdCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxBZ3JlZW1lbnRQYXltZW50UmVxdWVzdENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpQYXJ0eVR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZUFncmVlbWVudFJlcXVlc3QgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlQWdyZWVtZW50UmVxdWVzdENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpQcm9kdWN0SWRcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENyZWF0ZVZlcmlmaWNhdGlvbkV2aWRlbmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZVZlcmlmaWNhdGlvbkV2aWRlbmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBEZXNjcmliZUFncmVlbWVudCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFncmVlbWVudENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpQYXJ0eVR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3QgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdENvbmRpdGlvbktleXM6IHN0cmluZ1tdID1cblx0XHRbXCJhd3MtbWFya2V0cGxhY2U6QWdyZWVtZW50VHlwZVwiLCBcImF3cy1tYXJrZXRwbGFjZTpQYXJ0eVR5cGVcIl07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXRBZ3JlZW1lbnRFbnRpdGxlbWVudHMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdyZWVtZW50RW50aXRsZW1lbnRzQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWdyZWVtZW50VHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgR2V0QWdyZWVtZW50UGF5bWVudFJlcXVlc3QgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdyZWVtZW50UGF5bWVudFJlcXVlc3RDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBZ3JlZW1lbnRUeXBlXCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UGFydHlUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXRBZ3JlZW1lbnRUZXJtcyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ3JlZW1lbnRUZXJtc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpQYXJ0eVR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldEJpbGxpbmdBZGp1c3RtZW50UmVxdWVzdCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRCaWxsaW5nQWRqdXN0bWVudFJlcXVlc3RDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBZ3JlZW1lbnRUeXBlXCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UGFydHlUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXRWZXJpZmljYXRpb24gYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0VmVyaWZpY2F0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6VmVyaWZpY2F0aW9uVHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgTGlzdEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3RzIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0c0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpQYXJ0eVR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIExpc3RBZ3JlZW1lbnRDaGFyZ2VzIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBZ3JlZW1lbnRDaGFyZ2VzQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWdyZWVtZW50VHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgTGlzdEFncmVlbWVudEludm9pY2VMaW5lSXRlbXMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFncmVlbWVudEludm9pY2VMaW5lSXRlbXNDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBZ3JlZW1lbnRUeXBlXCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UGFydHlUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBMaXN0QWdyZWVtZW50UGF5bWVudFJlcXVlc3RzIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBZ3JlZW1lbnRQYXltZW50UmVxdWVzdHNDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBZ3JlZW1lbnRUeXBlXCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UGFydHlUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBMaXN0QmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0cyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0c0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpQYXJ0eVR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIExpc3RUYWdzRm9yUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRhZ3NGb3JSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgTGlzdFZlcmlmaWNhdGlvbnMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFZlcmlmaWNhdGlvbnNDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpWZXJpZmljYXRpb25UeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBQdXREZXBsb3ltZW50UGFyYW1ldGVyIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dERlcGxveW1lbnRQYXJhbWV0ZXJDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFJlamVjdEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3QgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVqZWN0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpQYXJ0eVR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFJlamVjdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlamVjdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWdyZWVtZW50VHlwZVwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlBhcnR5VHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU2VhcmNoQWdyZWVtZW50cyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTZWFyY2hBZ3JlZW1lbnRzQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWdyZWVtZW50VHlwZVwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlBhcnR5VHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU2VuZEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3QgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3RDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBZ3JlZW1lbnRUeXBlXCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UGFydHlUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTZW5kQWdyZWVtZW50UGF5bWVudFJlcXVlc3QgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZEFncmVlbWVudFBheW1lbnRSZXF1ZXN0Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWdyZWVtZW50VHlwZVwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlBhcnR5VHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRDaGFuZ2VTZXQgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRDaGFuZ2VTZXRDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpJbnRlbnRcIixcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XHRcImNhdGFsb2c6Q2hhbmdlVHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRJbnZvaWNlU3VibWlzc2lvblRhc2sgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRJbnZvaWNlU3VibWlzc2lvblRhc2tDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFN0YXJ0VGF4Q29tcGxpYW5jZVByb2ZpbGVDaGFuZ2VUYXNrIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGF4Q29tcGxpYW5jZVByb2ZpbGVDaGFuZ2VUYXNrQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTdGFydFZlcmlmaWNhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydFZlcmlmaWNhdGlvbkNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlZlcmlmaWNhdGlvblR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFRhZ1Jlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVbnRhZ1Jlc291cmNlIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVudGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIixcblx0XHRcImF3czpUYWdLZXlzXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBVcGRhdGVQdXJjaGFzZU9yZGVycyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVQdXJjaGFzZU9yZGVyc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIixcblx0XTtcblxuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGUgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBR1JFRU1FTlRfVFlQRSA9IFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3cy1tYXJrZXRwbGFjZTpJbnRlbnQgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IElOVEVOVCA9IFwiYXdzLW1hcmtldHBsYWNlOkludGVudFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzLW1hcmtldHBsYWNlOlBhcnR5VHlwZSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUEFSVFlfVFlQRSA9IFwiYXdzLW1hcmtldHBsYWNlOlBhcnR5VHlwZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzLW1hcmtldHBsYWNlOlByb2R1Y3RJZCAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IFBST0RVQ1RfSUQgPSBcImF3cy1tYXJrZXRwbGFjZTpQcm9kdWN0SWRcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3cy1tYXJrZXRwbGFjZTpWZXJpZmljYXRpb25UeXBlIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBWRVJJRklDQVRJT05fVFlQRSA9IFwiYXdzLW1hcmtldHBsYWNlOlZlcmlmaWNhdGlvblR5cGVcIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFUVVFU1RfVEFHID0gXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX0gKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFXU19SRVNPVVJDRV9UQUcgPSBcImF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1cIjtcblx0LyoqIENvbmRpdGlvbiBrZXk6IGF3czpUYWdLZXlzIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1RBR19LRVlTID0gXCJhd3M6VGFnS2V5c1wiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogY2F0YWxvZzpDaGFuZ2VUeXBlIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBDSEFOR0VfVFlQRSA9IFwiY2F0YWxvZzpDaGFuZ2VUeXBlXCI7XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3cy1tYXJrZXRwbGFjZTpBZ3JlZW1lbnRUeXBlYC5cblx0ICovXG5cdHN0YXRpYyBhZ3JlZW1lbnRUeXBlKFxuXHRcdHZhbHVlczogc3RyaW5nW10sXG5cdCk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7XG5cdFx0XHRcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjogeyBcImF3cy1tYXJrZXRwbGFjZTpBZ3JlZW1lbnRUeXBlXCI6IHZhbHVlcyB9LFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzLW1hcmtldHBsYWNlOkludGVudGAuXG5cdCAqL1xuXHRzdGF0aWMgaW50ZW50KHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzLW1hcmtldHBsYWNlOkludGVudFwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzLW1hcmtldHBsYWNlOlBhcnR5VHlwZWAuXG5cdCAqL1xuXHRzdGF0aWMgcGFydHlUeXBlKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzLW1hcmtldHBsYWNlOlBhcnR5VHlwZVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzLW1hcmtldHBsYWNlOlByb2R1Y3RJZGAuXG5cdCAqL1xuXHRzdGF0aWMgcHJvZHVjdElkKHZhbHVlczogc3RyaW5nW10pOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0XCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHsgXCJhd3MtbWFya2V0cGxhY2U6UHJvZHVjdElkXCI6IHZhbHVlcyB9LFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzLW1hcmtldHBsYWNlOlZlcmlmaWNhdGlvblR5cGVgLlxuXHQgKi9cblx0c3RhdGljIHZlcmlmaWNhdGlvblR5cGUoXG5cdFx0dmFsdWU6IHN0cmluZyxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3cy1tYXJrZXRwbGFjZTpWZXJpZmljYXRpb25UeXBlXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlcXVlc3RUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVxdWVzdFRhZy8ke1RhZ0tleX1cIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXNvdXJjZVRhZy8ke1RhZ0tleX1gLlxuXHQgKi9cblx0c3RhdGljIHJlc291cmNlVGFnKHZhbHVlOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlRhZ0tleXNgLlxuXHQgKi9cblx0c3RhdGljIHRhZ0tleXModmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7IFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzOlRhZ0tleXNcIjogdmFsdWVzIH0gfTtcblx0fVxufVxuIl19
1348
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLW1hcmtldHBsYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9zZXJ2aWNlcy9hd3MtbWFya2V0cGxhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRkFBZ0Y7QUFDaEYsNkNBQTZDO0FBQzdDLDBEQUEwRDtBQUMxRCxzREFBc0Q7QUFDdEQsb0RBQW9EO0FBQ3BELGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQWEscUJBQXFCOztBQUFsQyxzREF1V0M7OztBQXRXQSw4QkFBOEI7QUFDZCxvQ0FBYyxHQUFHLGlCQUFpQixDQUFDO0FBRW5ELDZEQUE2RDtBQUM3QyxvREFBOEIsR0FDN0MsZ0RBQWdELENBQUM7QUFDbEQsaUVBQWlFO0FBQ2pELHdEQUFrQyxHQUNqRCxvREFBb0QsQ0FBQztBQUN0RCw0REFBNEQ7QUFDNUMsbURBQTZCLEdBQzVDLCtDQUErQyxDQUFDO0FBQ2pELHFEQUFxRDtBQUNyQyw0Q0FBc0IsR0FDckMsd0NBQXdDLENBQUM7QUFDMUMsc0VBQXNFO0FBQ3RELDZEQUF1QyxHQUN0RCx5REFBeUQsQ0FBQztBQUMzRCxrRUFBa0U7QUFDbEQseURBQW1DLEdBQ2xELHFEQUFxRCxDQUFDO0FBQ3ZELDhDQUE4QztBQUM5QixxQ0FBZSxHQUFHLGlDQUFpQyxDQUFDO0FBQ3BFLDhDQUE4QztBQUM5QixxQ0FBZSxHQUFHLGlDQUFpQyxDQUFDO0FBQ3BFLGlFQUFpRTtBQUNqRCx3REFBa0MsR0FDakQsb0RBQW9ELENBQUM7QUFDdEQsNERBQTREO0FBQzVDLG1EQUE2QixHQUM1QywrQ0FBK0MsQ0FBQztBQUNqRCxxREFBcUQ7QUFDckMsNENBQXNCLEdBQ3JDLHdDQUF3QyxDQUFDO0FBQzFDLDhDQUE4QztBQUM5QixxQ0FBZSxHQUFHLGlDQUFpQyxDQUFDO0FBQ3BFLHFEQUFxRDtBQUNyQyw0Q0FBc0IsR0FDckMsd0NBQXdDLENBQUM7QUFDMUMsK0RBQStEO0FBQy9DLHNE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O0NBQ2IsQ0FBQztBQUNGLGlFQUFpRTtBQUNqRCx1REFBOEIsR0FBYTtJQUMxRCxrQ0FBa0M7Q0FDbEMsQ0FBQztBQUNGLDJEQUEyRDtBQUMzQyxpREFBd0IsR0FBYTtJQUNwRCwwQkFBMEI7SUFDMUIsMkJBQTJCO0lBQzNCLGFBQWE7Q0FDYixDQUFDO0FBQ0YsNkRBQTZEO0FBQzdDLG1EQUEwQixHQUFhO0lBQ3RELDJCQUEyQjtJQUMzQixhQUFhO0NBQ2IsQ0FBQztBQUNGLG9FQUFvRTtBQUNwRCwwREFBaUMsR0FBYTtJQUM3RCwrQkFBK0I7Q0FDL0IsQ0FBQztBQUVGLG1FQUFtRTtBQUNuRCx1Q0FBYyxHQUFHLCtCQUErQixDQUFDO0FBQ2pFLHFEQUFxRDtBQUNyQywrQkFBTSxHQUFHLHdCQUF3QixDQUFDO0FBQ2xELHdEQUF3RDtBQUN4QyxtQ0FBVSxHQUFHLDJCQUEyQixDQUFDO0FBQ3pELCtEQUErRDtBQUMvQyxtQ0FBVSxHQUFHLDJCQUEyQixDQUFDO0FBQ3pELCtEQUErRDtBQUMvQywwQ0FBaUIsR0FBRyxrQ0FBa0MsQ0FBQztBQUN2RSx1REFBdUQ7QUFDdkMsd0NBQWUsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCx3REFBd0Q7QUFDeEMseUNBQWdCLEdBQUcsMkJBQTJCLENBQUM7QUFDL0QsaURBQWlEO0FBQ2pDLHFDQUFZLEdBQUcsYUFBYSxDQUFDO0FBQzdDLGlEQUFpRDtBQUNqQyxvQ0FBVyxHQUFHLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFVVE8tR0VORVJBVEVEIEZJTEUg4oCUIERPIE5PVCBFRElUIE1BTlVBTExZXG4vLyBHZW5lcmF0ZWQgZnJvbSBBV1MgU2VydmljZSBBdXRob3JpemF0aW9uIFJlZmVyZW5jZSBkYXRhXG4vLyBTb3VyY2U6IGRhdGEvc2VydmljZS1yZWZlcmVuY2UvYXdzLW1hcmtldHBsYWNlLmpzb25cbi8vIFJ1biBgbnB4IHByb2plbiBnZW5lcmF0ZS1jb25zdGFudHNgIHRvIHJlZ2VuZXJhdGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogSUFNIGFjdGlvbiBjb25zdGFudHMgZm9yIHRoZSBhd3MtbWFya2V0cGxhY2Ugc2VydmljZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFXU01hcmtldHBsYWNlQWN0aW9ucyB7XG5cdC8qKiBUaGUgSUFNIHNlcnZpY2UgcHJlZml4LiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU0VSVklDRV9QUkVGSVggPSBcImF3cy1tYXJrZXRwbGFjZVwiO1xuXG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpBY2NlcHRBZ3JlZW1lbnRBcHByb3ZhbFJlcXVlc3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFjY2VwdEFncmVlbWVudEFwcHJvdmFsUmVxdWVzdCA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWNjZXB0QWdyZWVtZW50QXBwcm92YWxSZXF1ZXN0XCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpBY2NlcHRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0ICovXG5cdHN0YXRpYyByZWFkb25seSBBY2NlcHRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0ID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBY2NlcHRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0XCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpBY2NlcHRBZ3JlZW1lbnRQYXltZW50UmVxdWVzdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWNjZXB0QWdyZWVtZW50UGF5bWVudFJlcXVlc3QgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFjY2VwdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0XCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpBY2NlcHRBZ3JlZW1lbnRSZXF1ZXN0ICovXG5cdHN0YXRpYyByZWFkb25seSBBY2NlcHRBZ3JlZW1lbnRSZXF1ZXN0ID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBY2NlcHRBZ3JlZW1lbnRSZXF1ZXN0XCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpBc3NvY2lhdGVQcm9kdWN0c1dpdGhQcml2YXRlTWFya2V0cGxhY2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFzc29jaWF0ZVByb2R1Y3RzV2l0aFByaXZhdGVNYXJrZXRwbGFjZSA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QXNzb2NpYXRlUHJvZHVjdHNXaXRoUHJpdmF0ZU1hcmtldHBsYWNlXCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpCYXRjaENyZWF0ZUJpbGxpbmdBZGp1c3RtZW50UmVxdWVzdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQmF0Y2hDcmVhdGVCaWxsaW5nQWRqdXN0bWVudFJlcXVlc3QgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkJhdGNoQ3JlYXRlQmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0XCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpCYXRjaE1ldGVyVXNhZ2UgKi9cblx0c3RhdGljIHJlYWRvbmx5IEJhdGNoTWV0ZXJVc2FnZSA9IFwiYXdzLW1hcmtldHBsYWNlOkJhdGNoTWV0ZXJVc2FnZVwiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6Q2FuY2VsQWdyZWVtZW50ICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxBZ3JlZW1lbnQgPSBcImF3cy1tYXJrZXRwbGFjZTpDYW5jZWxBZ3JlZW1lbnRcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOkNhbmNlbEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IENhbmNlbEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3QgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkNhbmNlbEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3RcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOkNhbmNlbEFncmVlbWVudFBheW1lbnRSZXF1ZXN0ICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxBZ3JlZW1lbnRQYXltZW50UmVxdWVzdCA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6Q2FuY2VsQWdyZWVtZW50UGF5bWVudFJlcXVlc3RcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOkNhbmNlbEFncmVlbWVudFJlcXVlc3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IENhbmNlbEFncmVlbWVudFJlcXVlc3QgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkNhbmNlbEFncmVlbWVudFJlcXVlc3RcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOkNhbmNlbENoYW5nZVNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsQ2hhbmdlU2V0ID0gXCJhd3MtbWFya2V0cGxhY2U6Q2FuY2VsQ2hhbmdlU2V0XCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpDcmVhdGVBZ3JlZW1lbnRSZXF1ZXN0ICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVBZ3JlZW1lbnRSZXF1ZXN0ID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpDcmVhdGVBZ3JlZW1lbnRSZXF1ZXN0XCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpDcmVhdGVQcml2YXRlTWFya2V0cGxhY2VSZXF1ZXN0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlUHJpdmF0ZU1hcmtldHBsYWNlUmVxdWVzdHMgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkNyZWF0ZVByaXZhdGVNYXJrZXRwbGFjZVJlcXVlc3RzXCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpDcmVhdGVWZXJpZmljYXRpb25FdmlkZW5jZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVmVyaWZpY2F0aW9uRXZpZGVuY2UgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkNyZWF0ZVZlcmlmaWNhdGlvbkV2aWRlbmNlXCI7XG5cdC8qKiBbUGVybWlzc2lvbk1hbmFnZW1lbnRdIGF3cy1tYXJrZXRwbGFjZTpEZWxldGVSZXNvdXJjZVBvbGljeSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVsZXRlUmVzb3VyY2VQb2xpY3kgPSBcImF3cy1tYXJrZXRwbGFjZTpEZWxldGVSZXNvdXJjZVBvbGljeVwiO1xuXHQvKiogW1JlYWRdIGF3cy1tYXJrZXRwbGFjZTpEZXNjcmliZUFncmVlbWVudCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVBZ3JlZW1lbnQgPSBcImF3cy1tYXJrZXRwbGFjZTpEZXNjcmliZUFncmVlbWVudFwiO1xuXHQvKiogW1JlYWRdIGF3cy1tYXJrZXRwbGFjZTpEZXNjcmliZUFzc2Vzc21lbnQgKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQXNzZXNzbWVudCA9IFwiYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlQXNzZXNzbWVudFwiO1xuXHQvKiogW1JlYWRdIGF3cy1tYXJrZXRwbGFjZTpEZXNjcmliZUJ1aWxkcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVCdWlsZHMgPSBcImF3cy1tYXJrZXRwbGFjZTpEZXNjcmliZUJ1aWxkc1wiO1xuXHQvKiogW1JlYWRdIGF3cy1tYXJrZXRwbGFjZTpEZXNjcmliZUNoYW5nZVNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVDaGFuZ2VTZXQgPSBcImF3cy1tYXJrZXRwbGFjZTpEZXNjcmliZUNoYW5nZVNldFwiO1xuXHQvKiogW1JlYWRdIGF3cy1tYXJrZXRwbGFjZTpEZXNjcmliZUVudGl0eSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGVzY3JpYmVFbnRpdHkgPSBcImF3cy1tYXJrZXRwbGFjZTpEZXNjcmliZUVudGl0eVwiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpEZXNjcmliZVByaXZhdGVNYXJrZXRwbGFjZVJlcXVlc3RzICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVByaXZhdGVNYXJrZXRwbGFjZVJlcXVlc3RzID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpEZXNjcmliZVByaXZhdGVNYXJrZXRwbGFjZVJlcXVlc3RzXCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlUHJvY3VyZW1lbnRTeXN0ZW1Db25maWd1cmF0aW9uICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZVByb2N1cmVtZW50U3lzdGVtQ29uZmlndXJhdGlvbiA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6RGVzY3JpYmVQcm9jdXJlbWVudFN5c3RlbUNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOkRpc2Fzc29jaWF0ZVByb2R1Y3RzRnJvbVByaXZhdGVNYXJrZXRwbGFjZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgRGlzYXNzb2NpYXRlUHJvZHVjdHNGcm9tUHJpdmF0ZU1hcmtldHBsYWNlID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpEaXNhc3NvY2lhdGVQcm9kdWN0c0Zyb21Qcml2YXRlTWFya2V0cGxhY2VcIjtcblx0LyoqIFtSZWFkXSBhd3MtbWFya2V0cGxhY2U6R2V0QWdyZWVtZW50QXBwcm92YWxSZXF1ZXN0ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ3JlZW1lbnRBcHByb3ZhbFJlcXVlc3QgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkdldEFncmVlbWVudEFwcHJvdmFsUmVxdWVzdFwiO1xuXHQvKiogW1JlYWRdIGF3cy1tYXJrZXRwbGFjZTpHZXRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0ID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpHZXRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0XCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkdldEFncmVlbWVudEVudGl0bGVtZW50cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QWdyZWVtZW50RW50aXRsZW1lbnRzID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpHZXRBZ3JlZW1lbnRFbnRpdGxlbWVudHNcIjtcblx0LyoqIFtSZWFkXSBhd3MtbWFya2V0cGxhY2U6R2V0QWdyZWVtZW50UGF5bWVudFJlcXVlc3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFncmVlbWVudFBheW1lbnRSZXF1ZXN0ID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpHZXRBZ3JlZW1lbnRQYXltZW50UmVxdWVzdFwiO1xuXHQvKiogW1JlYWRdIGF3cy1tYXJrZXRwbGFjZTpHZXRBZ3JlZW1lbnRSZXF1ZXN0ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ3JlZW1lbnRSZXF1ZXN0ID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpHZXRBZ3JlZW1lbnRSZXF1ZXN0XCI7XG5cdC8qKiBbTGlzdF0gYXdzLW1hcmtldHBsYWNlOkdldEFncmVlbWVudFRlcm1zICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ3JlZW1lbnRUZXJtcyA9IFwiYXdzLW1hcmtldHBsYWNlOkdldEFncmVlbWVudFRlcm1zXCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkdldEJpbGxpbmdBZGp1c3RtZW50UmVxdWVzdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0QmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0ID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpHZXRCaWxsaW5nQWRqdXN0bWVudFJlcXVlc3RcIjtcblx0LyoqIFtSZWFkXSBhd3MtbWFya2V0cGxhY2U6R2V0QnV5ZXJEYXNoYm9hcmQgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEJ1eWVyRGFzaGJvYXJkID0gXCJhd3MtbWFya2V0cGxhY2U6R2V0QnV5ZXJEYXNoYm9hcmRcIjtcblx0LyoqIFtSZWFkXSBhd3MtbWFya2V0cGxhY2U6R2V0RW50aXRsZW1lbnRzICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRFbnRpdGxlbWVudHMgPSBcImF3cy1tYXJrZXRwbGFjZTpHZXRFbnRpdGxlbWVudHNcIjtcblx0LyoqIFtSZWFkXSBhd3MtbWFya2V0cGxhY2U6R2V0SW52b2ljZVN1Ym1pc3Npb25UYXNrICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRJbnZvaWNlU3VibWlzc2lvblRhc2sgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkdldEludm9pY2VTdWJtaXNzaW9uVGFza1wiO1xuXHQvKiogW1JlYWRdIGF3cy1tYXJrZXRwbGFjZTpHZXRJc3N1ZWRUYXhJbnZvaWNlICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRJc3N1ZWRUYXhJbnZvaWNlID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpHZXRJc3N1ZWRUYXhJbnZvaWNlXCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkdldExpc3RpbmcgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldExpc3RpbmcgPSBcImF3cy1tYXJrZXRwbGFjZTpHZXRMaXN0aW5nXCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkdldE9mZmVyICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRPZmZlciA9IFwiYXdzLW1hcmtldHBsYWNlOkdldE9mZmVyXCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkdldE9mZmVyU2V0ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRPZmZlclNldCA9IFwiYXdzLW1hcmtldHBsYWNlOkdldE9mZmVyU2V0XCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkdldE9mZmVyVGVybXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldE9mZmVyVGVybXMgPSBcImF3cy1tYXJrZXRwbGFjZTpHZXRPZmZlclRlcm1zXCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkdldFByb2R1Y3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFByb2R1Y3QgPSBcImF3cy1tYXJrZXRwbGFjZTpHZXRQcm9kdWN0XCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkdldFJlc291cmNlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRSZXNvdXJjZVBvbGljeSA9IFwiYXdzLW1hcmtldHBsYWNlOkdldFJlc291cmNlUG9saWN5XCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkdldFNlbGxlckRhc2hib2FyZCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0U2VsbGVyRGFzaGJvYXJkID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpHZXRTZWxsZXJEYXNoYm9hcmRcIjtcblx0LyoqIFtSZWFkXSBhd3MtbWFya2V0cGxhY2U6R2V0VGF4Q29tcGxpYW5jZVByb2ZpbGUgKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFRheENvbXBsaWFuY2VQcm9maWxlID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpHZXRUYXhDb21wbGlhbmNlUHJvZmlsZVwiO1xuXHQvKiogW1JlYWRdIGF3cy1tYXJrZXRwbGFjZTpHZXRWZXJpZmljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldFZlcmlmaWNhdGlvbiA9IFwiYXdzLW1hcmtldHBsYWNlOkdldFZlcmlmaWNhdGlvblwiO1xuXHQvKiogW1JlYWRdIGF3cy1tYXJrZXRwbGFjZTpHZXRWZXJpZmljYXRpb25FdmlkZW5jZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgYWN0aW9uR2V0VmVyaWZpY2F0aW9uRXZpZGVuY2UgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkdldFZlcmlmaWNhdGlvbkV2aWRlbmNlXCI7XG5cdC8qKiBbTGlzdF0gYXdzLW1hcmtldHBsYWNlOkxpc3RBZ3JlZW1lbnRBcHByb3ZhbFJlcXVlc3RzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QWdyZWVtZW50QXBwcm92YWxSZXF1ZXN0cyA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdEFncmVlbWVudEFwcHJvdmFsUmVxdWVzdHNcIjtcblx0LyoqIFtMaXN0XSBhd3MtbWFya2V0cGxhY2U6TGlzdEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3RzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdHMgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0c1wiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpMaXN0QWdyZWVtZW50Q2hhcmdlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFncmVlbWVudENoYXJnZXMgPSBcImF3cy1tYXJrZXRwbGFjZTpMaXN0QWdyZWVtZW50Q2hhcmdlc1wiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpMaXN0QWdyZWVtZW50SW52b2ljZUxpbmVJdGVtcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFncmVlbWVudEludm9pY2VMaW5lSXRlbXMgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RBZ3JlZW1lbnRJbnZvaWNlTGluZUl0ZW1zXCI7XG5cdC8qKiBbTGlzdF0gYXdzLW1hcmtldHBsYWNlOkxpc3RBZ3JlZW1lbnRQYXltZW50UmVxdWVzdHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBZ3JlZW1lbnRQYXltZW50UmVxdWVzdHMgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RBZ3JlZW1lbnRQYXltZW50UmVxdWVzdHNcIjtcblx0LyoqIFtMaXN0XSBhd3MtbWFya2V0cGxhY2U6TGlzdEFncmVlbWVudFJlcXVlc3RzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QWdyZWVtZW50UmVxdWVzdHMgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RBZ3JlZW1lbnRSZXF1ZXN0c1wiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpMaXN0QXNzZXNzbWVudHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBc3Nlc3NtZW50cyA9IFwiYXdzLW1hcmtldHBsYWNlOkxpc3RBc3Nlc3NtZW50c1wiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpMaXN0QmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEJpbGxpbmdBZGp1c3RtZW50UmVxdWVzdHMgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RCaWxsaW5nQWRqdXN0bWVudFJlcXVlc3RzXCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkxpc3RCdWlsZHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RCdWlsZHMgPSBcImF3cy1tYXJrZXRwbGFjZTpMaXN0QnVpbGRzXCI7XG5cdC8qKiBbTGlzdF0gYXdzLW1hcmtldHBsYWNlOkxpc3RDaGFuZ2VTZXRzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0Q2hhbmdlU2V0cyA9IFwiYXdzLW1hcmtldHBsYWNlOkxpc3RDaGFuZ2VTZXRzXCI7XG5cdC8qKiBbTGlzdF0gYXdzLW1hcmtldHBsYWNlOkxpc3RFbnRpdGllcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEVudGl0aWVzID0gXCJhd3MtbWFya2V0cGxhY2U6TGlzdEVudGl0aWVzXCI7XG5cdC8qKiBbUmVhZF0gYXdzLW1hcmtldHBsYWNlOkxpc3RFbnRpdGxlbWVudERldGFpbHMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RFbnRpdGxlbWVudERldGFpbHMgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RFbnRpdGxlbWVudERldGFpbHNcIjtcblx0LyoqIFtMaXN0XSBhd3MtbWFya2V0cGxhY2U6TGlzdEZ1bGZpbGxtZW50T3B0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEZ1bGZpbGxtZW50T3B0aW9ucyA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdEZ1bGZpbGxtZW50T3B0aW9uc1wiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpMaXN0SW52b2ljZVN1Ym1pc3Npb25UYXNrcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEludm9pY2VTdWJtaXNzaW9uVGFza3MgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RJbnZvaWNlU3VibWlzc2lvblRhc2tzXCI7XG5cdC8qKiBbTGlzdF0gYXdzLW1hcmtldHBsYWNlOkxpc3RJc3N1ZWRUYXhJbnZvaWNlcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdElzc3VlZFRheEludm9pY2VzID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpMaXN0SXNzdWVkVGF4SW52b2ljZXNcIjtcblx0LyoqIFtMaXN0XSBhd3MtbWFya2V0cGxhY2U6TGlzdFBheWFibGVzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UGF5YWJsZXMgPSBcImF3cy1tYXJrZXRwbGFjZTpMaXN0UGF5YWJsZXNcIjtcblx0LyoqIFtMaXN0XSBhd3MtbWFya2V0cGxhY2U6TGlzdFByaXZhdGVMaXN0aW5ncyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFByaXZhdGVMaXN0aW5ncyA9IFwiYXdzLW1hcmtldHBsYWNlOkxpc3RQcml2YXRlTGlzdGluZ3NcIjtcblx0LyoqIFtMaXN0XSBhd3MtbWFya2V0cGxhY2U6TGlzdFByaXZhdGVNYXJrZXRwbGFjZVJlcXVlc3RzICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UHJpdmF0ZU1hcmtldHBsYWNlUmVxdWVzdHMgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RQcml2YXRlTWFya2V0cGxhY2VSZXF1ZXN0c1wiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpMaXN0UHVyY2hhc2VPcHRpb25zICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0UHVyY2hhc2VPcHRpb25zID0gXCJhd3MtbWFya2V0cGxhY2U6TGlzdFB1cmNoYXNlT3B0aW9uc1wiO1xuXHQvKiogW1JlYWRdIGF3cy1tYXJrZXRwbGFjZTpMaXN0VGFnc0ZvclJlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlID0gXCJhd3MtbWFya2V0cGxhY2U6TGlzdFRhZ3NGb3JSZXNvdXJjZVwiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpMaXN0VGF4Q29tcGxpYW5jZVByb2ZpbGVDaGFuZ2VUYXNrcyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFRheENvbXBsaWFuY2VQcm9maWxlQ2hhbmdlVGFza3MgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2tzXCI7XG5cdC8qKiBbTGlzdF0gYXdzLW1hcmtldHBsYWNlOkxpc3RUYXhDb21wbGlhbmNlUHJvZmlsZXMgKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYXhDb21wbGlhbmNlUHJvZmlsZXMgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RUYXhDb21wbGlhbmNlUHJvZmlsZXNcIjtcblx0LyoqIFtMaXN0XSBhd3MtbWFya2V0cGxhY2U6TGlzdFZlcmlmaWNhdGlvbkV2aWRlbmNlICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VmVyaWZpY2F0aW9uRXZpZGVuY2UgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RWZXJpZmljYXRpb25FdmlkZW5jZVwiO1xuXHQvKiogW0xpc3RdIGF3cy1tYXJrZXRwbGFjZTpMaXN0VmVyaWZpY2F0aW9ucyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFZlcmlmaWNhdGlvbnMgPSBcImF3cy1tYXJrZXRwbGFjZTpMaXN0VmVyaWZpY2F0aW9uc1wiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6TWV0ZXJVc2FnZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTWV0ZXJVc2FnZSA9IFwiYXdzLW1hcmtldHBsYWNlOk1ldGVyVXNhZ2VcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOlB1dERlcGxveW1lbnRQYXJhbWV0ZXIgKi9cblx0c3RhdGljIHJlYWRvbmx5IFB1dERlcGxveW1lbnRQYXJhbWV0ZXIgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlB1dERlcGxveW1lbnRQYXJhbWV0ZXJcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOlB1dFByb2N1cmVtZW50U3lzdGVtQ29uZmlndXJhdGlvbiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0UHJvY3VyZW1lbnRTeXN0ZW1Db25maWd1cmF0aW9uID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpQdXRQcm9jdXJlbWVudFN5c3RlbUNvbmZpZ3VyYXRpb25cIjtcblx0LyoqIFtQZXJtaXNzaW9uTWFuYWdlbWVudF0gYXdzLW1hcmtldHBsYWNlOlB1dFJlc291cmNlUG9saWN5ICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRSZXNvdXJjZVBvbGljeSA9IFwiYXdzLW1hcmtldHBsYWNlOlB1dFJlc291cmNlUG9saWN5XCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpSZWdpc3RlclVzYWdlICovXG5cdHN0YXRpYyByZWFkb25seSBSZWdpc3RlclVzYWdlID0gXCJhd3MtbWFya2V0cGxhY2U6UmVnaXN0ZXJVc2FnZVwiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6UmVqZWN0QWdyZWVtZW50QXBwcm92YWxSZXF1ZXN0ICovXG5cdHN0YXRpYyByZWFkb25seSBSZWplY3RBZ3JlZW1lbnRBcHByb3ZhbFJlcXVlc3QgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlJlamVjdEFncmVlbWVudEFwcHJvdmFsUmVxdWVzdFwiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6UmVqZWN0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVqZWN0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdCA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UmVqZWN0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdFwiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6UmVqZWN0QWdyZWVtZW50UGF5bWVudFJlcXVlc3QgKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlamVjdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0ID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpSZWplY3RBZ3JlZW1lbnRQYXltZW50UmVxdWVzdFwiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6UmVzb2x2ZUN1c3RvbWVyICovXG5cdHN0YXRpYyByZWFkb25seSBSZXNvbHZlQ3VzdG9tZXIgPSBcImF3cy1tYXJrZXRwbGFjZTpSZXNvbHZlQ3VzdG9tZXJcIjtcblx0LyoqIFtMaXN0XSBhd3MtbWFya2V0cGxhY2U6U2VhcmNoQWdyZWVtZW50cyAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VhcmNoQWdyZWVtZW50cyA9IFwiYXdzLW1hcmtldHBsYWNlOlNlYXJjaEFncmVlbWVudHNcIjtcblx0LyoqIFtMaXN0XSBhd3MtbWFya2V0cGxhY2U6U2VhcmNoRmFjZXRzICovXG5cdHN0YXRpYyByZWFkb25seSBTZWFyY2hGYWNldHMgPSBcImF3cy1tYXJrZXRwbGFjZTpTZWFyY2hGYWNldHNcIjtcblx0LyoqIFtMaXN0XSBhd3MtbWFya2V0cGxhY2U6U2VhcmNoTGlzdGluZ3MgKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlYXJjaExpc3RpbmdzID0gXCJhd3MtbWFya2V0cGxhY2U6U2VhcmNoTGlzdGluZ3NcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOlNlbmRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0ICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kQWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdCA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6U2VuZEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3RcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOlNlbmRBZ3JlZW1lbnRQYXltZW50UmVxdWVzdCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VuZEFncmVlbWVudFBheW1lbnRSZXF1ZXN0ID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpTZW5kQWdyZWVtZW50UGF5bWVudFJlcXVlc3RcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOlN0YXJ0QnVpbGQgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0QnVpbGQgPSBcImF3cy1tYXJrZXRwbGFjZTpTdGFydEJ1aWxkXCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpTdGFydENoYW5nZVNldCAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRDaGFuZ2VTZXQgPSBcImF3cy1tYXJrZXRwbGFjZTpTdGFydENoYW5nZVNldFwiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6U3RhcnRJbnZvaWNlU3VibWlzc2lvblRhc2sgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0SW52b2ljZVN1Ym1pc3Npb25UYXNrID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpTdGFydEludm9pY2VTdWJtaXNzaW9uVGFza1wiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6U3RhcnRUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2sgKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VGF4Q29tcGxpYW5jZVByb2ZpbGVDaGFuZ2VUYXNrID1cblx0XHRcImF3cy1tYXJrZXRwbGFjZTpTdGFydFRheENvbXBsaWFuY2VQcm9maWxlQ2hhbmdlVGFza1wiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6U3RhcnRWZXJpZmljYXRpb24gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VmVyaWZpY2F0aW9uID0gXCJhd3MtbWFya2V0cGxhY2U6U3RhcnRWZXJpZmljYXRpb25cIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOlN1YnNjcmliZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3Vic2NyaWJlID0gXCJhd3MtbWFya2V0cGxhY2U6U3Vic2NyaWJlXCI7XG5cdC8qKiBbVGFnZ2luZ10gYXdzLW1hcmtldHBsYWNlOlRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBUYWdSZXNvdXJjZSA9IFwiYXdzLW1hcmtldHBsYWNlOlRhZ1Jlc291cmNlXCI7XG5cdC8qKiBbV3JpdGVdIGF3cy1tYXJrZXRwbGFjZTpVbnN1YnNjcmliZSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW5zdWJzY3JpYmUgPSBcImF3cy1tYXJrZXRwbGFjZTpVbnN1YnNjcmliZVwiO1xuXHQvKiogW1RhZ2dpbmddIGF3cy1tYXJrZXRwbGFjZTpVbnRhZ1Jlc291cmNlICovXG5cdHN0YXRpYyByZWFkb25seSBVbnRhZ1Jlc291cmNlID0gXCJhd3MtbWFya2V0cGxhY2U6VW50YWdSZXNvdXJjZVwiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6VXBkYXRlQWdyZWVtZW50QXBwcm92YWxSZXF1ZXN0ICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVBZ3JlZW1lbnRBcHByb3ZhbFJlcXVlc3QgPVxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlVwZGF0ZUFncmVlbWVudEFwcHJvdmFsUmVxdWVzdFwiO1xuXHQvKiogW1dyaXRlXSBhd3MtbWFya2V0cGxhY2U6VXBkYXRlUHVyY2hhc2VPcmRlcnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVB1cmNoYXNlT3JkZXJzID0gXCJhd3MtbWFya2V0cGxhY2U6VXBkYXRlUHVyY2hhc2VPcmRlcnNcIjtcblx0LyoqIFtXcml0ZV0gYXdzLW1hcmtldHBsYWNlOlVwZGF0ZVZlcmlmaWNhdGlvbkV2aWRlbmNlICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVWZXJpZmljYXRpb25FdmlkZW5jZSA9XG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6VXBkYXRlVmVyaWZpY2F0aW9uRXZpZGVuY2VcIjtcblx0LyoqIFtMaXN0XSBhd3MtbWFya2V0cGxhY2U6Vmlld1N1YnNjcmlwdGlvbnMgKi9cblx0c3RhdGljIHJlYWRvbmx5IFZpZXdTdWJzY3JpcHRpb25zID0gXCJhd3MtbWFya2V0cGxhY2U6Vmlld1N1YnNjcmlwdGlvbnNcIjtcblxuXHQvKiogQWxsIHJlYWQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFJlYWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuRGVzY3JpYmVBZ3JlZW1lbnQsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkRlc2NyaWJlQXNzZXNzbWVudCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuRGVzY3JpYmVCdWlsZHMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkRlc2NyaWJlQ2hhbmdlU2V0LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5EZXNjcmliZUVudGl0eSxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuRGVzY3JpYmVQcm9jdXJlbWVudFN5c3RlbUNvbmZpZ3VyYXRpb24sXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLmFjdGlvbkdldEFncmVlbWVudEFwcHJvdmFsUmVxdWVzdCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuYWN0aW9uR2V0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuYWN0aW9uR2V0QWdyZWVtZW50RW50aXRsZW1lbnRzLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5hY3Rpb25HZXRBZ3JlZW1lbnRQYXltZW50UmVxdWVzdCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuYWN0aW9uR2V0QWdyZWVtZW50UmVxdWVzdCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuYWN0aW9uR2V0QmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5hY3Rpb25HZXRCdXllckRhc2hib2FyZCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuYWN0aW9uR2V0RW50aXRsZW1lbnRzLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5hY3Rpb25HZXRJbnZvaWNlU3VibWlzc2lvblRhc2ssXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLmFjdGlvbkdldElzc3VlZFRheEludm9pY2UsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLmFjdGlvbkdldExpc3RpbmcsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLmFjdGlvbkdldE9mZmVyLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5hY3Rpb25HZXRPZmZlclNldCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuYWN0aW9uR2V0T2ZmZXJUZXJtcyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuYWN0aW9uR2V0UHJvZHVjdCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuYWN0aW9uR2V0UmVzb3VyY2VQb2xpY3ksXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLmFjdGlvbkdldFNlbGxlckRhc2hib2FyZCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuYWN0aW9uR2V0VGF4Q29tcGxpYW5jZVByb2ZpbGUsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLmFjdGlvbkdldFZlcmlmaWNhdGlvbixcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuYWN0aW9uR2V0VmVyaWZpY2F0aW9uRXZpZGVuY2UsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkxpc3RCdWlsZHMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkxpc3RFbnRpdGxlbWVudERldGFpbHMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkxpc3RUYWdzRm9yUmVzb3VyY2UsXG5cdF07XG5cdC8qKiBBbGwgd3JpdGUtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFdyaXRlQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkFjY2VwdEFncmVlbWVudEFwcHJvdmFsUmVxdWVzdCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuQWNjZXB0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuQWNjZXB0QWdyZWVtZW50UGF5bWVudFJlcXVlc3QsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkFjY2VwdEFncmVlbWVudFJlcXVlc3QsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkFzc29jaWF0ZVByb2R1Y3RzV2l0aFByaXZhdGVNYXJrZXRwbGFjZSxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuQmF0Y2hDcmVhdGVCaWxsaW5nQWRqdXN0bWVudFJlcXVlc3QsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkJhdGNoTWV0ZXJVc2FnZSxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuQ2FuY2VsQWdyZWVtZW50LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5DYW5jZWxBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5DYW5jZWxBZ3JlZW1lbnRQYXltZW50UmVxdWVzdCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuQ2FuY2VsQWdyZWVtZW50UmVxdWVzdCxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuQ2FuY2VsQ2hhbmdlU2V0LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5DcmVhdGVBZ3JlZW1lbnRSZXF1ZXN0LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5DcmVhdGVQcml2YXRlTWFya2V0cGxhY2VSZXF1ZXN0cyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuQ3JlYXRlVmVyaWZpY2F0aW9uRXZpZGVuY2UsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkRpc2Fzc29jaWF0ZVByb2R1Y3RzRnJvbVByaXZhdGVNYXJrZXRwbGFjZSxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuTWV0ZXJVc2FnZSxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuUHV0RGVwbG95bWVudFBhcmFtZXRlcixcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuUHV0UHJvY3VyZW1lbnRTeXN0ZW1Db25maWd1cmF0aW9uLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5SZWdpc3RlclVzYWdlLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5SZWplY3RBZ3JlZW1lbnRBcHByb3ZhbFJlcXVlc3QsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlJlamVjdEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3QsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlJlamVjdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5SZXNvbHZlQ3VzdG9tZXIsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlNlbmRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5TZW5kQWdyZWVtZW50UGF5bWVudFJlcXVlc3QsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlN0YXJ0QnVpbGQsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlN0YXJ0Q2hhbmdlU2V0LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5TdGFydEludm9pY2VTdWJtaXNzaW9uVGFzayxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuU3RhcnRUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2ssXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlN0YXJ0VmVyaWZpY2F0aW9uLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5TdWJzY3JpYmUsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlVuc3Vic2NyaWJlLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5VcGRhdGVBZ3JlZW1lbnRBcHByb3ZhbFJlcXVlc3QsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlVwZGF0ZVB1cmNoYXNlT3JkZXJzLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5VcGRhdGVWZXJpZmljYXRpb25FdmlkZW5jZSxcblx0XTtcblx0LyoqIEFsbCBsaXN0LWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxMaXN0QWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkRlc2NyaWJlUHJpdmF0ZU1hcmtldHBsYWNlUmVxdWVzdHMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLmFjdGlvbkdldEFncmVlbWVudFRlcm1zLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5MaXN0QWdyZWVtZW50QXBwcm92YWxSZXF1ZXN0cyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuTGlzdEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3RzLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5MaXN0QWdyZWVtZW50Q2hhcmdlcyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuTGlzdEFncmVlbWVudEludm9pY2VMaW5lSXRlbXMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkxpc3RBZ3JlZW1lbnRQYXltZW50UmVxdWVzdHMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkxpc3RBZ3JlZW1lbnRSZXF1ZXN0cyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuTGlzdEFzc2Vzc21lbnRzLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5MaXN0QmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0cyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuTGlzdENoYW5nZVNldHMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkxpc3RFbnRpdGllcyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuTGlzdEZ1bGZpbGxtZW50T3B0aW9ucyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuTGlzdEludm9pY2VTdWJtaXNzaW9uVGFza3MsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkxpc3RJc3N1ZWRUYXhJbnZvaWNlcyxcblx0XHRBV1NNYXJrZXRwbGFjZUFjdGlvbnMuTGlzdFBheWFibGVzLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5MaXN0UHJpdmF0ZUxpc3RpbmdzLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5MaXN0UHJpdmF0ZU1hcmtldHBsYWNlUmVxdWVzdHMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkxpc3RQdXJjaGFzZU9wdGlvbnMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkxpc3RUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2tzLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5MaXN0VGF4Q29tcGxpYW5jZVByb2ZpbGVzLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5MaXN0VmVyaWZpY2F0aW9uRXZpZGVuY2UsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkxpc3RWZXJpZmljYXRpb25zLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5TZWFyY2hBZ3JlZW1lbnRzLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5TZWFyY2hGYWNldHMsXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlNlYXJjaExpc3RpbmdzLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5WaWV3U3Vic2NyaXB0aW9ucyxcblx0XTtcblx0LyoqIEFsbCBwZXJtaXNzaW9uLW1hbmFnZW1lbnQtbGV2ZWwgYWN0aW9ucy4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFsbFBlcm1pc3Npb25NYW5hZ2VtZW50QWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLkRlbGV0ZVJlc291cmNlUG9saWN5LFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5QdXRSZXNvdXJjZVBvbGljeSxcblx0XTtcblx0LyoqIEFsbCB0YWdnaW5nLWxldmVsIGFjdGlvbnMuICovXG5cdHN0YXRpYyByZWFkb25seSBBbGxUYWdnaW5nQWN0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0QVdTTWFya2V0cGxhY2VBY3Rpb25zLlRhZ1Jlc291cmNlLFxuXHRcdEFXU01hcmtldHBsYWNlQWN0aW9ucy5VbnRhZ1Jlc291cmNlLFxuXHRdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgQWxsTGlzdGluZ3MgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlQWxsTGlzdGluZ3NBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ2F0YWxvZ05hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNhdGFsb2dOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgQWxsTGlzdGluZ3MgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlQWxsTGlzdGluZ3NBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENhdGFsb2dOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZ05hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIEFsbFB1cmNoYXNlT3B0aW9ucyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VBbGxQdXJjaGFzZU9wdGlvbnNBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ2F0YWxvZ05hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNhdGFsb2dOYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgQWxsUHVyY2hhc2VPcHRpb25zIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZUFsbFB1cmNoYXNlT3B0aW9uc0FybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2F0YWxvZ05hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjYXRhbG9nTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgQXNzZXNzbWVudCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VBc3Nlc3NtZW50QXJuUHJvcHMge1xuXHQvKiogVGhlIENhdGFsb2cgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNhdGFsb2c6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgQXNzZXNzbWVudCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VBc3Nlc3NtZW50QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDYXRhbG9nIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZzogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBDaGFuZ2VTZXQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlQ2hhbmdlU2V0QXJuUHJvcHMge1xuXHQvKiogVGhlIENhdGFsb2cgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNhdGFsb2c6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgQ2hhbmdlU2V0IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZUNoYW5nZVNldEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2F0YWxvZyBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNhdGFsb2c6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgRGFzaGJvYXJkIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZURhc2hib2FyZEFyblByb3BzIHtcblx0LyoqIFRoZSBDYXRhbG9nIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjYXRhbG9nOiBzdHJpbmc7XG5cdC8qKiBUaGUgRmFjdFRhYmxlIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBmYWN0VGFibGU6IHN0cmluZztcblx0LyoqIFRoZSBEYXNoYm9hcmROYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBkYXNoYm9hcmROYW1lOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBEYXNoYm9hcmQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlRGFzaGJvYXJkQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2F0YWxvZyBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNhdGFsb2c6IHN0cmluZztcblx0LyoqIFRoZSBGYWN0VGFibGUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBmYWN0VGFibGU6IHN0cmluZztcblx0LyoqIFRoZSBEYXNoYm9hcmROYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZGFzaGJvYXJkTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgRGVwbG95bWVudFBhcmFtZXRlciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VEZXBsb3ltZW50UGFyYW1ldGVyQXJuUHJvcHMge1xuXHQvKiogVGhlIENhdGFsb2dOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjYXRhbG9nTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFByb2R1Y3RJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcHJvZHVjdElkOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIERlcGxveW1lbnRQYXJhbWV0ZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlRGVwbG95bWVudFBhcmFtZXRlckFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2F0YWxvZ05hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjYXRhbG9nTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFByb2R1Y3RJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHByb2R1Y3RJZDogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBFbnRpdHkgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlRW50aXR5QXJuUHJvcHMge1xuXHQvKiogVGhlIENhdGFsb2cgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNhdGFsb2c6IHN0cmluZztcblx0LyoqIFRoZSBFbnRpdHlUeXBlIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBlbnRpdHlUeXBlOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIEVudGl0eSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VFbnRpdHlBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENhdGFsb2cgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjYXRhbG9nOiBzdHJpbmc7XG5cdC8qKiBUaGUgRW50aXR5VHlwZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGVudGl0eVR5cGU6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgSW52b2ljZVN1Ym1pc3Npb25UYXNrIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZUludm9pY2VTdWJtaXNzaW9uVGFza0FyblByb3BzIHtcblx0LyoqIFRoZSBDYXRhbG9nIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjYXRhbG9nOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIEludm9pY2VTdWJtaXNzaW9uVGFzayBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VJbnZvaWNlU3VibWlzc2lvblRhc2tBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENhdGFsb2cgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjYXRhbG9nOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIElzc3VlZFRheEludm9pY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlSXNzdWVkVGF4SW52b2ljZUFyblByb3BzIHtcblx0LyoqIFRoZSBDYXRhbG9nIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjYXRhbG9nOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIElzc3VlZFRheEludm9pY2UgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlSXNzdWVkVGF4SW52b2ljZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2F0YWxvZyBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNhdGFsb2c6IHN0cmluZztcblx0LyoqIFRoZSBSZXNvdXJjZUlkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgTGlzdGluZyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VMaXN0aW5nQXJuUHJvcHMge1xuXHQvKiogVGhlIENhdGFsb2dOYW1lIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBjYXRhbG9nTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIExpc3RpbmdJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgbGlzdGluZ0lkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgTGlzdGluZyBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VMaXN0aW5nQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDYXRhbG9nTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNhdGFsb2dOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgTGlzdGluZ0lkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgbGlzdGluZ0lkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBPZmZlciBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VPZmZlckFyblByb3BzIHtcblx0LyoqIFRoZSBDYXRhbG9nTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZ05hbWU6IHN0cmluZztcblx0LyoqIFRoZSBPZmZlcklkIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSBvZmZlcklkOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgT2ZmZXIgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlT2ZmZXJBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENhdGFsb2dOYW1lIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZ05hbWU6IHN0cmluZztcblx0LyoqIFRoZSBPZmZlcklkIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgb2ZmZXJJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgT2ZmZXJTZXQgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlT2ZmZXJTZXRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ2F0YWxvZ05hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNhdGFsb2dOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgT2ZmZXJTZXRJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgb2ZmZXJTZXRJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIE9mZmVyU2V0IEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZU9mZmVyU2V0QXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDYXRhbG9nTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNhdGFsb2dOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgT2ZmZXJTZXRJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IG9mZmVyU2V0SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIFByb2R1Y3QgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlUHJvZHVjdEFyblByb3BzIHtcblx0LyoqIFRoZSBDYXRhbG9nTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZ05hbWU6IHN0cmluZztcblx0LyoqIFRoZSBQcm9kdWN0SWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHByb2R1Y3RJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFByb2R1Y3QgQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlUHJvZHVjdEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgQ2F0YWxvZ05hbWUgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjYXRhbG9nTmFtZTogc3RyaW5nO1xuXHQvKiogVGhlIFByb2R1Y3RJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHByb2R1Y3RJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGJ1aWxkaW5nIGEgUHVyY2hhc2VPcHRpb24gQVJOLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFXU01hcmtldHBsYWNlUHVyY2hhc2VPcHRpb25Bcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ2F0YWxvZ05hbWUgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IGNhdGFsb2dOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgUHVyY2hhc2VPcHRpb25JZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcHVyY2hhc2VPcHRpb25JZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFB1cmNoYXNlT3B0aW9uIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZVB1cmNoYXNlT3B0aW9uQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBDYXRhbG9nTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGNhdGFsb2dOYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgUHVyY2hhc2VPcHRpb25JZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHB1cmNoYXNlT3B0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIFNlbGxlckRhc2hib2FyZCBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VTZWxsZXJEYXNoYm9hcmRBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgQ2F0YWxvZyBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgY2F0YWxvZzogc3RyaW5nO1xuXHQvKiogVGhlIEZhY3RUYWJsZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZmFjdFRhYmxlOiBzdHJpbmc7XG5cdC8qKiBUaGUgRGFzaGJvYXJkTmFtZSBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgZGFzaGJvYXJkTmFtZTogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSBhY2NvdW50Pzogc3RyaW5nO1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gRGVmYXVsdHMgdG8gXCJhd3NcIi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlZCBjb21wb25lbnRzIG9mIGEgU2VsbGVyRGFzaGJvYXJkIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZVNlbGxlckRhc2hib2FyZEFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIENhdGFsb2cgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSBjYXRhbG9nOiBzdHJpbmc7XG5cdC8qKiBUaGUgRmFjdFRhYmxlIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgZmFjdFRhYmxlOiBzdHJpbmc7XG5cdC8qKiBUaGUgRGFzaGJvYXJkTmFtZSBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IGRhc2hib2FyZE5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIFRheENvbXBsaWFuY2VQcm9maWxlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZVRheENvbXBsaWFuY2VQcm9maWxlQXJuUHJvcHMge1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50IG9mIHRoZSBBUk4uICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uIERlZmF1bHRzIHRvIFwiKlwiLiAqL1xuXHRyZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmc7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiBEZWZhdWx0cyB0byBcImF3c1wiLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2VkIGNvbXBvbmVudHMgb2YgYSBUYXhDb21wbGlhbmNlUHJvZmlsZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VUYXhDb21wbGlhbmNlUHJvZmlsZUFybkNvbXBvbmVudHMge1xuXHQvKiogQVdTIHBhcnRpdGlvbi4gKi9cblx0cmVhZG9ubHkgcGFydGl0aW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgcmVnaW9uLiAqL1xuXHRyZWFkb25seSByZWdpb246IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiAqL1xuXHRyZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQuICovXG5cdHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBidWlsZGluZyBhIFRheENvbXBsaWFuY2VQcm9maWxlQ2hhbmdlVGFzayBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2tBcm5Qcm9wcyB7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFRheENvbXBsaWFuY2VQcm9maWxlQ2hhbmdlVGFzayBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2tBcm5Db21wb25lbnRzIHtcblx0LyoqIEFXUyBwYXJ0aXRpb24uICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbjogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gKi9cblx0cmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cdC8qKiBBV1MgYWNjb3VudCBJRC4gKi9cblx0cmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYnVpbGRpbmcgYSBWZXJpZmljYXRpb25FdmlkZW5jZSBBUk4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVdTTWFya2V0cGxhY2VWZXJpZmljYXRpb25FdmlkZW5jZUFyblByb3BzIHtcblx0LyoqIFRoZSBWZXJpZmljYXRpb25UeXBlIGNvbXBvbmVudCBvZiB0aGUgQVJOLiAqL1xuXHRyZWFkb25seSB2ZXJpZmljYXRpb25UeXBlOiBzdHJpbmc7XG5cdC8qKiBUaGUgUmVzb3VyY2VJZCBjb21wb25lbnQgb2YgdGhlIEFSTi4gKi9cblx0cmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXHQvKiogQVdTIHJlZ2lvbi4gRGVmYXVsdHMgdG8gXCIqXCIuICovXG5cdHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcblx0LyoqIEFXUyBhY2NvdW50IElELiBEZWZhdWx0cyB0byBcIipcIi4gKi9cblx0cmVhZG9ubHkgYWNjb3VudD86IHN0cmluZztcblx0LyoqIEFXUyBwYXJ0aXRpb24uIERlZmF1bHRzIHRvIFwiYXdzXCIuICovXG5cdHJlYWRvbmx5IHBhcnRpdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQYXJzZWQgY29tcG9uZW50cyBvZiBhIFZlcmlmaWNhdGlvbkV2aWRlbmNlIEFSTi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBV1NNYXJrZXRwbGFjZVZlcmlmaWNhdGlvbkV2aWRlbmNlQXJuQ29tcG9uZW50cyB7XG5cdC8qKiBBV1MgcGFydGl0aW9uLiAqL1xuXHRyZWFkb25seSBwYXJ0aXRpb246IHN0cmluZztcblx0LyoqIEFXUyByZWdpb24uICovXG5cdHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXHQvKiogQVdTIGFjY291bnQgSUQuICovXG5cdHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblx0LyoqIFRoZSBWZXJpZmljYXRpb25UeXBlIGNvbXBvbmVudC4gKi9cblx0cmVhZG9ubHkgdmVyaWZpY2F0aW9uVHlwZTogc3RyaW5nO1xuXHQvKiogVGhlIFJlc291cmNlSWQgY29tcG9uZW50LiAqL1xuXHRyZWFkb25seSByZXNvdXJjZUlkOiBzdHJpbmc7XG59XG5cbmNvbnN0IEFsbExpc3RpbmdzQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmF3cy1tYXJrZXRwbGFjZTo6OmNhdGFsb2dcXC8oPzxjYXRhbG9nTmFtZT5bXjovP10rKVxcL2xpc3RpbmdcXC8uKiQvO1xuY29uc3QgQWxsUHVyY2hhc2VPcHRpb25zQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmF3cy1tYXJrZXRwbGFjZTo6OmNhdGFsb2dcXC8oPzxjYXRhbG9nTmFtZT5bXjovP10rKVxcL3B1cmNoYXNlT3B0aW9uXFwvLiokLztcbmNvbnN0IEFzc2Vzc21lbnRBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXdzLW1hcmtldHBsYWNlOig/PHJlZ2lvbj5bXjpdKik6Oig/PGNhdGFsb2c+W146Lz9dKylcXC9Bc3Nlc3NtZW50XFwvKD88cmVzb3VyY2VJZD5bXjovP10rKSQvO1xuY29uc3QgQ2hhbmdlU2V0QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmF3cy1tYXJrZXRwbGFjZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOig/PGNhdGFsb2c+W146Lz9dKylcXC9DaGFuZ2VTZXRcXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBEYXNoYm9hcmRBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXdzLW1hcmtldHBsYWNlOjooPzxhY2NvdW50PlteOl0qKTooPzxjYXRhbG9nPlteOi8/XSspXFwvUmVwb3J0aW5nRGF0YVxcLyg/PGZhY3RUYWJsZT5bXjovP10rKVxcL0Rhc2hib2FyZFxcLyg/PGRhc2hib2FyZE5hbWU+W146Lz9dKykkLztcbmNvbnN0IERlcGxveW1lbnRQYXJhbWV0ZXJBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXdzLW1hcmtldHBsYWNlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6RGVwbG95bWVudFBhcmFtZXRlcjpjYXRhbG9nc1xcLyg/PGNhdGFsb2dOYW1lPlteOi8/XSspXFwvcHJvZHVjdHNcXC8oPzxwcm9kdWN0SWQ+W146Lz9dKylcXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBFbnRpdHlBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXdzLW1hcmtldHBsYWNlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6KD88Y2F0YWxvZz5bXjovP10rKVxcLyg/PGVudGl0eVR5cGU+W146Lz9dKylcXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBJbnZvaWNlU3VibWlzc2lvblRhc2tBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXdzLW1hcmtldHBsYWNlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y2F0YWxvZ1xcLyg/PGNhdGFsb2c+W146Lz9dKylcXC9pbnZvaWNlLXN1Ym1pc3Npb24tdGFza1xcLyg/PHJlc291cmNlSWQ+W146Lz9dKykkLztcbmNvbnN0IElzc3VlZFRheEludm9pY2VBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXdzLW1hcmtldHBsYWNlOig/PHJlZ2lvbj5bXjpdKik6KD88YWNjb3VudD5bXjpdKik6Y2F0YWxvZ1xcLyg/PGNhdGFsb2c+W146Lz9dKylcXC9pc3N1ZWQtdGF4LWludm9pY2VcXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBMaXN0aW5nQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmF3cy1tYXJrZXRwbGFjZTo6OmNhdGFsb2dcXC8oPzxjYXRhbG9nTmFtZT5bXjovP10rKVxcL2xpc3RpbmdcXC8oPzxsaXN0aW5nSWQ+W146Lz9dKykkLztcbmNvbnN0IE9mZmVyQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmF3cy1tYXJrZXRwbGFjZTo6OmNhdGFsb2dcXC8oPzxjYXRhbG9nTmFtZT5bXjovP10rKVxcL29mZmVyXFwvKD88b2ZmZXJJZD5bXjovP10rKSQvO1xuY29uc3QgT2ZmZXJTZXRBcm5SZWdleCA9XG5cdC9eYXJuOig/PHBhcnRpdGlvbj5bXjpdKyk6YXdzLW1hcmtldHBsYWNlOjo6Y2F0YWxvZ1xcLyg/PGNhdGFsb2dOYW1lPlteOi8/XSspXFwvb2ZmZXJTZXRcXC8oPzxvZmZlclNldElkPlteOi8/XSspJC87XG5jb25zdCBQcm9kdWN0QXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmF3cy1tYXJrZXRwbGFjZTo6OmNhdGFsb2dcXC8oPzxjYXRhbG9nTmFtZT5bXjovP10rKVxcL3Byb2R1Y3RcXC8oPzxwcm9kdWN0SWQ+W146Lz9dKykkLztcbmNvbnN0IFB1cmNoYXNlT3B0aW9uQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmF3cy1tYXJrZXRwbGFjZTo6OmNhdGFsb2dcXC8oPzxjYXRhbG9nTmFtZT5bXjovP10rKVxcL3B1cmNoYXNlT3B0aW9uXFwvKD88cHVyY2hhc2VPcHRpb25JZD5bXjovP10rKSQvO1xuY29uc3QgU2VsbGVyRGFzaGJvYXJkQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmF3cy1tYXJrZXRwbGFjZTo6KD88YWNjb3VudD5bXjpdKik6KD88Y2F0YWxvZz5bXjovP10rKVxcL1JlcG9ydGluZ0RhdGFcXC8oPzxmYWN0VGFibGU+W146Lz9dKylcXC9EYXNoYm9hcmRcXC8oPzxkYXNoYm9hcmROYW1lPlteOi8/XSspJC87XG5jb25zdCBUYXhDb21wbGlhbmNlUHJvZmlsZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphd3MtbWFya2V0cGxhY2U6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTp0YXgtY29tcGxpYW5jZS1wcm9maWxlXFwvKD88cmVzb3VyY2VJZD5bXjovP10rKSQvO1xuY29uc3QgVGF4Q29tcGxpYW5jZVByb2ZpbGVDaGFuZ2VUYXNrQXJuUmVnZXggPVxuXHQvXmFybjooPzxwYXJ0aXRpb24+W146XSspOmF3cy1tYXJrZXRwbGFjZTooPzxyZWdpb24+W146XSopOig/PGFjY291bnQ+W146XSopOnRheC1jb21wbGlhbmNlLXByb2ZpbGUtY2hhbmdlLXRhc2tcXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5jb25zdCBWZXJpZmljYXRpb25FdmlkZW5jZUFyblJlZ2V4ID1cblx0L15hcm46KD88cGFydGl0aW9uPlteOl0rKTphd3MtbWFya2V0cGxhY2U6KD88cmVnaW9uPlteOl0qKTooPzxhY2NvdW50PlteOl0qKTp2ZXJpZmljYXRpb24tdHlwZVxcLyg/PHZlcmlmaWNhdGlvblR5cGU+W146Lz9dKylcXC92ZXJpZmljYXRpb24tZXZpZGVuY2VcXC8oPzxyZXNvdXJjZUlkPlteOi8/XSspJC87XG5cbi8qKlxuICogQVJOIGJ1aWxkZXJzLCB2YWxpZGF0b3JzLCBhbmQgcGFyc2VycyBmb3IgYXdzLW1hcmtldHBsYWNlIHJlc291cmNlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFXU01hcmtldHBsYWNlUmVzb3VyY2VzIHtcblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBBbGxMaXN0aW5ncyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBhbGxMaXN0aW5ncyhwcm9wczogQVdTTWFya2V0cGxhY2VBbGxMaXN0aW5nc0FyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphd3MtbWFya2V0cGxhY2U6OjpjYXRhbG9nLyR7cHJvcHMuY2F0YWxvZ05hbWV9L2xpc3RpbmcvKmA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBBbGxMaXN0aW5ncyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQWxsTGlzdGluZ3NBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQWxsTGlzdGluZ3NBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgQWxsTGlzdGluZ3MgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQWxsTGlzdGluZ3NBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEFXU01hcmtldHBsYWNlQWxsTGlzdGluZ3NBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEFsbExpc3RpbmdzQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIEFsbExpc3RpbmdzIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNhdGFsb2dOYW1lOiBtYXRjaC5ncm91cHMhLmNhdGFsb2dOYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIEFsbFB1cmNoYXNlT3B0aW9ucyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBhbGxQdXJjaGFzZU9wdGlvbnMoXG5cdFx0cHJvcHM6IEFXU01hcmtldHBsYWNlQWxsUHVyY2hhc2VPcHRpb25zQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXdzLW1hcmtldHBsYWNlOjo6Y2F0YWxvZy8ke3Byb3BzLmNhdGFsb2dOYW1lfS9wdXJjaGFzZU9wdGlvbi8qYDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIEFsbFB1cmNoYXNlT3B0aW9ucyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkQWxsUHVyY2hhc2VPcHRpb25zQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEFsbFB1cmNoYXNlT3B0aW9uc0FyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBBbGxQdXJjaGFzZU9wdGlvbnMgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlQWxsUHVyY2hhc2VPcHRpb25zQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBBV1NNYXJrZXRwbGFjZUFsbFB1cmNoYXNlT3B0aW9uc0FybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQWxsUHVyY2hhc2VPcHRpb25zQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIEFsbFB1cmNoYXNlT3B0aW9ucyBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjYXRhbG9nTmFtZTogbWF0Y2guZ3JvdXBzIS5jYXRhbG9nTmFtZSxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBBc3Nlc3NtZW50IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGFzc2Vzc21lbnQocHJvcHM6IEFXU01hcmtldHBsYWNlQXNzZXNzbWVudEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphd3MtbWFya2V0cGxhY2U6JHtwcm9wcy5yZWdpb24gPz8gXCIqXCJ9Ojoke3Byb3BzLmNhdGFsb2d9L0Fzc2Vzc21lbnQvJHtwcm9wcy5yZXNvdXJjZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBBc3Nlc3NtZW50IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRBc3Nlc3NtZW50QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIEFzc2Vzc21lbnRBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgQXNzZXNzbWVudCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VBc3Nlc3NtZW50QXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBBV1NNYXJrZXRwbGFjZUFzc2Vzc21lbnRBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEFzc2Vzc21lbnRBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgQXNzZXNzbWVudCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjYXRhbG9nOiBtYXRjaC5ncm91cHMhLmNhdGFsb2csXG5cdFx0XHRyZXNvdXJjZUlkOiBtYXRjaC5ncm91cHMhLnJlc291cmNlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgQ2hhbmdlU2V0IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGNoYW5nZVNldChwcm9wczogQVdTTWFya2V0cGxhY2VDaGFuZ2VTZXRBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXdzLW1hcmtldHBsYWNlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OiR7cHJvcHMuY2F0YWxvZ30vQ2hhbmdlU2V0LyR7cHJvcHMucmVzb3VyY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgQ2hhbmdlU2V0IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRDaGFuZ2VTZXRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gQ2hhbmdlU2V0QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIENoYW5nZVNldCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VDaGFuZ2VTZXRBcm4oYXJuOiBzdHJpbmcpOiBBV1NNYXJrZXRwbGFjZUNoYW5nZVNldEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gQ2hhbmdlU2V0QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIENoYW5nZVNldCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjYXRhbG9nOiBtYXRjaC5ncm91cHMhLmNhdGFsb2csXG5cdFx0XHRyZXNvdXJjZUlkOiBtYXRjaC5ncm91cHMhLnJlc291cmNlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgRGFzaGJvYXJkIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGRhc2hib2FyZChwcm9wczogQVdTTWFya2V0cGxhY2VEYXNoYm9hcmRBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXdzLW1hcmtldHBsYWNlOjoke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OiR7cHJvcHMuY2F0YWxvZ30vUmVwb3J0aW5nRGF0YS8ke3Byb3BzLmZhY3RUYWJsZX0vRGFzaGJvYXJkLyR7cHJvcHMuZGFzaGJvYXJkTmFtZX1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgRGFzaGJvYXJkIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWREYXNoYm9hcmRBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gRGFzaGJvYXJkQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIERhc2hib2FyZCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VEYXNoYm9hcmRBcm4oYXJuOiBzdHJpbmcpOiBBV1NNYXJrZXRwbGFjZURhc2hib2FyZEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gRGFzaGJvYXJkQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIERhc2hib2FyZCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjYXRhbG9nOiBtYXRjaC5ncm91cHMhLmNhdGFsb2csXG5cdFx0XHRmYWN0VGFibGU6IG1hdGNoLmdyb3VwcyEuZmFjdFRhYmxlLFxuXHRcdFx0ZGFzaGJvYXJkTmFtZTogbWF0Y2guZ3JvdXBzIS5kYXNoYm9hcmROYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIERlcGxveW1lbnRQYXJhbWV0ZXIgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgZGVwbG95bWVudFBhcmFtZXRlcihcblx0XHRwcm9wczogQVdTTWFya2V0cGxhY2VEZXBsb3ltZW50UGFyYW1ldGVyQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXdzLW1hcmtldHBsYWNlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OkRlcGxveW1lbnRQYXJhbWV0ZXI6Y2F0YWxvZ3MvJHtwcm9wcy5jYXRhbG9nTmFtZX0vcHJvZHVjdHMvJHtwcm9wcy5wcm9kdWN0SWR9LyR7cHJvcHMucmVzb3VyY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgRGVwbG95bWVudFBhcmFtZXRlciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkRGVwbG95bWVudFBhcmFtZXRlckFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBEZXBsb3ltZW50UGFyYW1ldGVyQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIERlcGxveW1lbnRQYXJhbWV0ZXIgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlRGVwbG95bWVudFBhcmFtZXRlckFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogQVdTTWFya2V0cGxhY2VEZXBsb3ltZW50UGFyYW1ldGVyQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBEZXBsb3ltZW50UGFyYW1ldGVyQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIERlcGxveW1lbnRQYXJhbWV0ZXIgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y2F0YWxvZ05hbWU6IG1hdGNoLmdyb3VwcyEuY2F0YWxvZ05hbWUsXG5cdFx0XHRwcm9kdWN0SWQ6IG1hdGNoLmdyb3VwcyEucHJvZHVjdElkLFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIEVudGl0eSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBlbnRpdHkocHJvcHM6IEFXU01hcmtldHBsYWNlRW50aXR5QXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmF3cy1tYXJrZXRwbGFjZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifToke3Byb3BzLmNhdGFsb2d9LyR7cHJvcHMuZW50aXR5VHlwZX0vJHtwcm9wcy5yZXNvdXJjZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBFbnRpdHkgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEVudGl0eUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBFbnRpdHlBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgRW50aXR5IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUVudGl0eUFybihhcm46IHN0cmluZyk6IEFXU01hcmtldHBsYWNlRW50aXR5QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBFbnRpdHlBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgRW50aXR5IEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNhdGFsb2c6IG1hdGNoLmdyb3VwcyEuY2F0YWxvZyxcblx0XHRcdGVudGl0eVR5cGU6IG1hdGNoLmdyb3VwcyEuZW50aXR5VHlwZSxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBJbnZvaWNlU3VibWlzc2lvblRhc2sgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaW52b2ljZVN1Ym1pc3Npb25UYXNrKFxuXHRcdHByb3BzOiBBV1NNYXJrZXRwbGFjZUludm9pY2VTdWJtaXNzaW9uVGFza0FyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmF3cy1tYXJrZXRwbGFjZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTpjYXRhbG9nLyR7cHJvcHMuY2F0YWxvZ30vaW52b2ljZS1zdWJtaXNzaW9uLXRhc2svJHtwcm9wcy5yZXNvdXJjZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBJbnZvaWNlU3VibWlzc2lvblRhc2sgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZEludm9pY2VTdWJtaXNzaW9uVGFza0Fybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBJbnZvaWNlU3VibWlzc2lvblRhc2tBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgSW52b2ljZVN1Ym1pc3Npb25UYXNrIEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZUludm9pY2VTdWJtaXNzaW9uVGFza0Fybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogQVdTTWFya2V0cGxhY2VJbnZvaWNlU3VibWlzc2lvblRhc2tBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IEludm9pY2VTdWJtaXNzaW9uVGFza0FyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBJbnZvaWNlU3VibWlzc2lvblRhc2sgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y2F0YWxvZzogbWF0Y2guZ3JvdXBzIS5jYXRhbG9nLFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIElzc3VlZFRheEludm9pY2UgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNzdWVkVGF4SW52b2ljZShcblx0XHRwcm9wczogQVdTTWFya2V0cGxhY2VJc3N1ZWRUYXhJbnZvaWNlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXdzLW1hcmtldHBsYWNlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OmNhdGFsb2cvJHtwcm9wcy5jYXRhbG9nfS9pc3N1ZWQtdGF4LWludm9pY2UvJHtwcm9wcy5yZXNvdXJjZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBJc3N1ZWRUYXhJbnZvaWNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRJc3N1ZWRUYXhJbnZvaWNlQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIElzc3VlZFRheEludm9pY2VBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgSXNzdWVkVGF4SW52b2ljZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VJc3N1ZWRUYXhJbnZvaWNlQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBBV1NNYXJrZXRwbGFjZUlzc3VlZFRheEludm9pY2VBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IElzc3VlZFRheEludm9pY2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgSXNzdWVkVGF4SW52b2ljZSBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjYXRhbG9nOiBtYXRjaC5ncm91cHMhLmNhdGFsb2csXG5cdFx0XHRyZXNvdXJjZUlkOiBtYXRjaC5ncm91cHMhLnJlc291cmNlSWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgTGlzdGluZyByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBsaXN0aW5nKHByb3BzOiBBV1NNYXJrZXRwbGFjZUxpc3RpbmdBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXdzLW1hcmtldHBsYWNlOjo6Y2F0YWxvZy8ke3Byb3BzLmNhdGFsb2dOYW1lfS9saXN0aW5nLyR7cHJvcHMubGlzdGluZ0lkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBMaXN0aW5nIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRMaXN0aW5nQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIExpc3RpbmdBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgTGlzdGluZyBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VMaXN0aW5nQXJuKGFybjogc3RyaW5nKTogQVdTTWFya2V0cGxhY2VMaXN0aW5nQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBMaXN0aW5nQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIExpc3RpbmcgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y2F0YWxvZ05hbWU6IG1hdGNoLmdyb3VwcyEuY2F0YWxvZ05hbWUsXG5cdFx0XHRsaXN0aW5nSWQ6IG1hdGNoLmdyb3VwcyEubGlzdGluZ0lkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIE9mZmVyIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIG9mZmVyKHByb3BzOiBBV1NNYXJrZXRwbGFjZU9mZmVyQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmF3cy1tYXJrZXRwbGFjZTo6OmNhdGFsb2cvJHtwcm9wcy5jYXRhbG9nTmFtZX0vb2ZmZXIvJHtwcm9wcy5vZmZlcklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBPZmZlciByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkT2ZmZXJBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gT2ZmZXJBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgT2ZmZXIgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlT2ZmZXJBcm4oYXJuOiBzdHJpbmcpOiBBV1NNYXJrZXRwbGFjZU9mZmVyQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBPZmZlckFyblJlZ2V4LmV4ZWMoYXJuKTtcblx0XHRpZiAoIW1hdGNoPy5ncm91cHMpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBPZmZlciBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0cmVnaW9uOiBtYXRjaC5ncm91cHMucmVnaW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjYXRhbG9nTmFtZTogbWF0Y2guZ3JvdXBzIS5jYXRhbG9nTmFtZSxcblx0XHRcdG9mZmVySWQ6IG1hdGNoLmdyb3VwcyEub2ZmZXJJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBPZmZlclNldCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBvZmZlclNldChwcm9wczogQVdTTWFya2V0cGxhY2VPZmZlclNldEFyblByb3BzKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gYGFybjoke3Byb3BzLnBhcnRpdGlvbiA/PyBcImF3c1wifTphd3MtbWFya2V0cGxhY2U6OjpjYXRhbG9nLyR7cHJvcHMuY2F0YWxvZ05hbWV9L29mZmVyU2V0LyR7cHJvcHMub2ZmZXJTZXRJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgT2ZmZXJTZXQgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgaXNWYWxpZE9mZmVyU2V0QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIE9mZmVyU2V0QXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIE9mZmVyU2V0IEFSTiBpbnRvIGl0cyBjb21wb25lbnRzLlxuXHQgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBBUk4gZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC5cblx0ICovXG5cdHN0YXRpYyBwYXJzZU9mZmVyU2V0QXJuKGFybjogc3RyaW5nKTogQVdTTWFya2V0cGxhY2VPZmZlclNldEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gT2ZmZXJTZXRBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgT2ZmZXJTZXQgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y2F0YWxvZ05hbWU6IG1hdGNoLmdyb3VwcyEuY2F0YWxvZ05hbWUsXG5cdFx0XHRvZmZlclNldElkOiBtYXRjaC5ncm91cHMhLm9mZmVyU2V0SWQsXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBCdWlsZHMgYW4gQVJOIGZvciB0aGUgUHJvZHVjdCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBwcm9kdWN0KHByb3BzOiBBV1NNYXJrZXRwbGFjZVByb2R1Y3RBcm5Qcm9wcyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXdzLW1hcmtldHBsYWNlOjo6Y2F0YWxvZy8ke3Byb3BzLmNhdGFsb2dOYW1lfS9wcm9kdWN0LyR7cHJvcHMucHJvZHVjdElkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBQcm9kdWN0IHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRQcm9kdWN0QXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFByb2R1Y3RBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgUHJvZHVjdCBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VQcm9kdWN0QXJuKGFybjogc3RyaW5nKTogQVdTTWFya2V0cGxhY2VQcm9kdWN0QXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBQcm9kdWN0QXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFByb2R1Y3QgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0Y2F0YWxvZ05hbWU6IG1hdGNoLmdyb3VwcyEuY2F0YWxvZ05hbWUsXG5cdFx0XHRwcm9kdWN0SWQ6IG1hdGNoLmdyb3VwcyEucHJvZHVjdElkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIFB1cmNoYXNlT3B0aW9uIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHB1cmNoYXNlT3B0aW9uKHByb3BzOiBBV1NNYXJrZXRwbGFjZVB1cmNoYXNlT3B0aW9uQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmF3cy1tYXJrZXRwbGFjZTo6OmNhdGFsb2cvJHtwcm9wcy5jYXRhbG9nTmFtZX0vcHVyY2hhc2VPcHRpb24vJHtwcm9wcy5wdXJjaGFzZU9wdGlvbklkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBQdXJjaGFzZU9wdGlvbiByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkUHVyY2hhc2VPcHRpb25Bcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gUHVyY2hhc2VPcHRpb25Bcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgUHVyY2hhc2VPcHRpb24gQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlUHVyY2hhc2VPcHRpb25Bcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEFXU01hcmtldHBsYWNlUHVyY2hhc2VPcHRpb25Bcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFB1cmNoYXNlT3B0aW9uQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFB1cmNoYXNlT3B0aW9uIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdGNhdGFsb2dOYW1lOiBtYXRjaC5ncm91cHMhLmNhdGFsb2dOYW1lLFxuXHRcdFx0cHVyY2hhc2VPcHRpb25JZDogbWF0Y2guZ3JvdXBzIS5wdXJjaGFzZU9wdGlvbklkLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIFNlbGxlckRhc2hib2FyZCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBzZWxsZXJEYXNoYm9hcmQocHJvcHM6IEFXU01hcmtldHBsYWNlU2VsbGVyRGFzaGJvYXJkQXJuUHJvcHMpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmF3cy1tYXJrZXRwbGFjZTo6JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifToke3Byb3BzLmNhdGFsb2d9L1JlcG9ydGluZ0RhdGEvJHtwcm9wcy5mYWN0VGFibGV9L0Rhc2hib2FyZC8ke3Byb3BzLmRhc2hib2FyZE5hbWV9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFNlbGxlckRhc2hib2FyZCByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkU2VsbGVyRGFzaGJvYXJkQXJuKGFybjogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIFNlbGxlckRhc2hib2FyZEFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBTZWxsZXJEYXNoYm9hcmQgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlU2VsbGVyRGFzaGJvYXJkQXJuKFxuXHRcdGFybjogc3RyaW5nLFxuXHQpOiBBV1NNYXJrZXRwbGFjZVNlbGxlckRhc2hib2FyZEFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gU2VsbGVyRGFzaGJvYXJkQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFNlbGxlckRhc2hib2FyZCBBUk46ICR7YXJufWApO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0cGFydGl0aW9uOiBtYXRjaC5ncm91cHMucGFydGl0aW9uLFxuXHRcdFx0YWNjb3VudDogbWF0Y2guZ3JvdXBzLmFjY291bnQsXG5cdFx0XHRjYXRhbG9nOiBtYXRjaC5ncm91cHMhLmNhdGFsb2csXG5cdFx0XHRmYWN0VGFibGU6IG1hdGNoLmdyb3VwcyEuZmFjdFRhYmxlLFxuXHRcdFx0ZGFzaGJvYXJkTmFtZTogbWF0Y2guZ3JvdXBzIS5kYXNoYm9hcmROYW1lLFxuXHRcdH07XG5cdH1cblxuXHQvKipcblx0ICogQnVpbGRzIGFuIEFSTiBmb3IgdGhlIFRheENvbXBsaWFuY2VQcm9maWxlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIHRheENvbXBsaWFuY2VQcm9maWxlKFxuXHRcdHByb3BzOiBBV1NNYXJrZXRwbGFjZVRheENvbXBsaWFuY2VQcm9maWxlQXJuUHJvcHMsXG5cdCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGBhcm46JHtwcm9wcy5wYXJ0aXRpb24gPz8gXCJhd3NcIn06YXdzLW1hcmtldHBsYWNlOiR7cHJvcHMucmVnaW9uID8/IFwiKlwifToke3Byb3BzLmFjY291bnQgPz8gXCIqXCJ9OnRheC1jb21wbGlhbmNlLXByb2ZpbGUvJHtwcm9wcy5yZXNvdXJjZUlkfWA7XG5cdH1cblxuXHQvKipcblx0ICogVmFsaWRhdGVzIHdoZXRoZXIgYSBzdHJpbmcgaXMgYSB2YWxpZCBBUk4gZm9yIHRoZSBUYXhDb21wbGlhbmNlUHJvZmlsZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyBpc1ZhbGlkVGF4Q29tcGxpYW5jZVByb2ZpbGVBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gVGF4Q29tcGxpYW5jZVByb2ZpbGVBcm5SZWdleC50ZXN0KGFybik7XG5cdH1cblxuXHQvKipcblx0ICogUGFyc2VzIGEgVGF4Q29tcGxpYW5jZVByb2ZpbGUgQVJOIGludG8gaXRzIGNvbXBvbmVudHMuXG5cdCAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIEFSTiBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LlxuXHQgKi9cblx0c3RhdGljIHBhcnNlVGF4Q29tcGxpYW5jZVByb2ZpbGVBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEFXU01hcmtldHBsYWNlVGF4Q29tcGxpYW5jZVByb2ZpbGVBcm5Db21wb25lbnRzIHtcblx0XHRjb25zdCBtYXRjaCA9IFRheENvbXBsaWFuY2VQcm9maWxlQXJuUmVnZXguZXhlYyhhcm4pO1xuXHRcdGlmICghbWF0Y2g/Lmdyb3Vwcykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFRheENvbXBsaWFuY2VQcm9maWxlIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2sgcmVzb3VyY2UuXG5cdCAqL1xuXHRzdGF0aWMgdGF4Q29tcGxpYW5jZVByb2ZpbGVDaGFuZ2VUYXNrKFxuXHRcdHByb3BzOiBBV1NNYXJrZXRwbGFjZVRheENvbXBsaWFuY2VQcm9maWxlQ2hhbmdlVGFza0FyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmF3cy1tYXJrZXRwbGFjZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTp0YXgtY29tcGxpYW5jZS1wcm9maWxlLWNoYW5nZS10YXNrLyR7cHJvcHMucmVzb3VyY2VJZH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFZhbGlkYXRlcyB3aGV0aGVyIGEgc3RyaW5nIGlzIGEgdmFsaWQgQVJOIGZvciB0aGUgVGF4Q29tcGxpYW5jZVByb2ZpbGVDaGFuZ2VUYXNrIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2tBcm4oYXJuOiBzdHJpbmcpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gVGF4Q29tcGxpYW5jZVByb2ZpbGVDaGFuZ2VUYXNrQXJuUmVnZXgudGVzdChhcm4pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFBhcnNlcyBhIFRheENvbXBsaWFuY2VQcm9maWxlQ2hhbmdlVGFzayBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2tBcm4oXG5cdFx0YXJuOiBzdHJpbmcsXG5cdCk6IEFXU01hcmtldHBsYWNlVGF4Q29tcGxpYW5jZVByb2ZpbGVDaGFuZ2VUYXNrQXJuQ29tcG9uZW50cyB7XG5cdFx0Y29uc3QgbWF0Y2ggPSBUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2tBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgVGF4Q29tcGxpYW5jZVByb2ZpbGVDaGFuZ2VUYXNrIEFSTjogJHthcm59YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRwYXJ0aXRpb246IG1hdGNoLmdyb3Vwcy5wYXJ0aXRpb24sXG5cdFx0XHRyZWdpb246IG1hdGNoLmdyb3Vwcy5yZWdpb24sXG5cdFx0XHRhY2NvdW50OiBtYXRjaC5ncm91cHMuYWNjb3VudCxcblx0XHRcdHJlc291cmNlSWQ6IG1hdGNoLmdyb3VwcyEucmVzb3VyY2VJZCxcblx0XHR9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkcyBhbiBBUk4gZm9yIHRoZSBWZXJpZmljYXRpb25FdmlkZW5jZSByZXNvdXJjZS5cblx0ICovXG5cdHN0YXRpYyB2ZXJpZmljYXRpb25FdmlkZW5jZShcblx0XHRwcm9wczogQVdTTWFya2V0cGxhY2VWZXJpZmljYXRpb25FdmlkZW5jZUFyblByb3BzLFxuXHQpOiBzdHJpbmcge1xuXHRcdHJldHVybiBgYXJuOiR7cHJvcHMucGFydGl0aW9uID8/IFwiYXdzXCJ9OmF3cy1tYXJrZXRwbGFjZToke3Byb3BzLnJlZ2lvbiA/PyBcIipcIn06JHtwcm9wcy5hY2NvdW50ID8/IFwiKlwifTp2ZXJpZmljYXRpb24tdHlwZS8ke3Byb3BzLnZlcmlmaWNhdGlvblR5cGV9L3ZlcmlmaWNhdGlvbi1ldmlkZW5jZS8ke3Byb3BzLnJlc291cmNlSWR9YDtcblx0fVxuXG5cdC8qKlxuXHQgKiBWYWxpZGF0ZXMgd2hldGhlciBhIHN0cmluZyBpcyBhIHZhbGlkIEFSTiBmb3IgdGhlIFZlcmlmaWNhdGlvbkV2aWRlbmNlIHJlc291cmNlLlxuXHQgKi9cblx0c3RhdGljIGlzVmFsaWRWZXJpZmljYXRpb25FdmlkZW5jZUFybihhcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiBWZXJpZmljYXRpb25FdmlkZW5jZUFyblJlZ2V4LnRlc3QoYXJuKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQYXJzZXMgYSBWZXJpZmljYXRpb25FdmlkZW5jZSBBUk4gaW50byBpdHMgY29tcG9uZW50cy5cblx0ICogQHRocm93cyBFcnJvciBpZiB0aGUgQVJOIGRvZXMgbm90IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuXG5cdCAqL1xuXHRzdGF0aWMgcGFyc2VWZXJpZmljYXRpb25FdmlkZW5jZUFybihcblx0XHRhcm46IHN0cmluZyxcblx0KTogQVdTTWFya2V0cGxhY2VWZXJpZmljYXRpb25FdmlkZW5jZUFybkNvbXBvbmVudHMge1xuXHRcdGNvbnN0IG1hdGNoID0gVmVyaWZpY2F0aW9uRXZpZGVuY2VBcm5SZWdleC5leGVjKGFybik7XG5cdFx0aWYgKCFtYXRjaD8uZ3JvdXBzKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgVmVyaWZpY2F0aW9uRXZpZGVuY2UgQVJOOiAke2Fybn1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhcnRpdGlvbjogbWF0Y2guZ3JvdXBzLnBhcnRpdGlvbixcblx0XHRcdHJlZ2lvbjogbWF0Y2guZ3JvdXBzLnJlZ2lvbixcblx0XHRcdGFjY291bnQ6IG1hdGNoLmdyb3Vwcy5hY2NvdW50LFxuXHRcdFx0dmVyaWZpY2F0aW9uVHlwZTogbWF0Y2guZ3JvdXBzIS52ZXJpZmljYXRpb25UeXBlLFxuXHRcdFx0cmVzb3VyY2VJZDogbWF0Y2guZ3JvdXBzIS5yZXNvdXJjZUlkLFxuXHRcdH07XG5cdH1cbn1cblxuLyoqXG4gKiBBUEkgb3BlcmF0aW9uIHRvIHJlcXVpcmVkIElBTSBhY3Rpb25zIG1hcHBpbmcgZm9yIGF3cy1tYXJrZXRwbGFjZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFXU01hcmtldHBsYWNlT3BlcmF0aW9ucyB7XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEFjY2VwdEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBBY2NlcHRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0OiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBY2NlcHRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0XCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6Q2FuY2VsQWdyZWVtZW50XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEFjY2VwdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWNjZXB0QWdyZWVtZW50UGF5bWVudFJlcXVlc3Q6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFjY2VwdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0XCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6VXBkYXRlUHVyY2hhc2VPcmRlcnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQWNjZXB0QWdyZWVtZW50UmVxdWVzdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFjY2VwdEFncmVlbWVudFJlcXVlc3Q6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFjY2VwdEFncmVlbWVudFJlcXVlc3RcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpTdWJzY3JpYmVcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpVcGRhdGVQdXJjaGFzZU9yZGVyc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBCYXRjaENyZWF0ZUJpbGxpbmdBZGp1c3RtZW50UmVxdWVzdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEJhdGNoQ3JlYXRlQmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0OiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpCYXRjaENyZWF0ZUJpbGxpbmdBZGp1c3RtZW50UmVxdWVzdFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBCYXRjaERlc2NyaWJlRW50aXRpZXMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBCYXRjaERlc2NyaWJlRW50aXRpZXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlRW50aXR5XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEJhdGNoTWV0ZXJVc2FnZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEJhdGNoTWV0ZXJVc2FnZTogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QmF0Y2hNZXRlclVzYWdlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIENhbmNlbEFncmVlbWVudCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENhbmNlbEFncmVlbWVudDogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6Q2FuY2VsQWdyZWVtZW50XCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6VW5zdWJzY3JpYmVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ2FuY2VsQWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENhbmNlbEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3Q6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkNhbmNlbEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3RcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ2FuY2VsQWdyZWVtZW50UGF5bWVudFJlcXVlc3QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBDYW5jZWxBZ3JlZW1lbnRQYXltZW50UmVxdWVzdDogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6Q2FuY2VsQWdyZWVtZW50UGF5bWVudFJlcXVlc3RcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ2FuY2VsQ2hhbmdlU2V0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsQ2hhbmdlU2V0OiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpDYW5jZWxDaGFuZ2VTZXRcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgQ3JlYXRlQWdyZWVtZW50UmVxdWVzdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENyZWF0ZUFncmVlbWVudFJlcXVlc3Q6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkNyZWF0ZUFncmVlbWVudFJlcXVlc3RcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpTdWJzY3JpYmVcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVsZXRlUmVzb3VyY2VQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZWxldGVSZXNvdXJjZVBvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6RGVsZXRlUmVzb3VyY2VQb2xpY3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgRGVzY3JpYmVBZ3JlZW1lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFncmVlbWVudDogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6RGVzY3JpYmVBZ3JlZW1lbnRcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpWaWV3U3Vic2NyaXB0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUFzc2Vzc21lbnQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBEZXNjcmliZUFzc2Vzc21lbnQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlQXNzZXNzbWVudFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUNoYW5nZVNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQ2hhbmdlU2V0OiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpEZXNjcmliZUNoYW5nZVNldFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBEZXNjcmliZUVudGl0eSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlRW50aXR5OiBzdHJpbmdbXSA9IFtcImF3cy1tYXJrZXRwbGFjZTpEZXNjcmliZUVudGl0eVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdDogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6R2V0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRBZ3JlZW1lbnRFbnRpdGxlbWVudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEFncmVlbWVudEVudGl0bGVtZW50czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6R2V0QWdyZWVtZW50RW50aXRsZW1lbnRzXCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6Vmlld1N1YnNjcmlwdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0QWdyZWVtZW50UGF5bWVudFJlcXVlc3QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldEFncmVlbWVudFBheW1lbnRSZXF1ZXN0OiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpHZXRBZ3JlZW1lbnRQYXltZW50UmVxdWVzdFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRBZ3JlZW1lbnRUZXJtcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0QWdyZWVtZW50VGVybXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkdldEFncmVlbWVudFRlcm1zXCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6Vmlld1N1YnNjcmlwdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0QmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgb3BHZXRCaWxsaW5nQWRqdXN0bWVudFJlcXVlc3Q6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkdldEJpbGxpbmdBZGp1c3RtZW50UmVxdWVzdFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBHZXRCdXllckRhc2hib2FyZCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0QnV5ZXJEYXNoYm9hcmQ6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkdldEJ1eWVyRGFzaGJvYXJkXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIEdldEVudGl0bGVtZW50cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0RW50aXRsZW1lbnRzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpHZXRFbnRpdGxlbWVudHNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0TGlzdGluZyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0TGlzdGluZzogc3RyaW5nW10gPSBbXCJhd3MtbWFya2V0cGxhY2U6R2V0TGlzdGluZ1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0T2ZmZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldE9mZmVyOiBzdHJpbmdbXSA9IFtcImF3cy1tYXJrZXRwbGFjZTpHZXRPZmZlclwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0T2ZmZXJTZXQgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldE9mZmVyU2V0OiBzdHJpbmdbXSA9IFtcImF3cy1tYXJrZXRwbGFjZTpHZXRPZmZlclNldFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0T2ZmZXJUZXJtcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0T2ZmZXJUZXJtczogc3RyaW5nW10gPSBbXCJhd3MtbWFya2V0cGxhY2U6R2V0T2ZmZXJUZXJtc1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UHJvZHVjdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IG9wR2V0UHJvZHVjdDogc3RyaW5nW10gPSBbXCJhd3MtbWFya2V0cGxhY2U6R2V0UHJvZHVjdFwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgR2V0UmVzb3VyY2VQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBvcEdldFJlc291cmNlUG9saWN5OiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpHZXRSZXNvdXJjZVBvbGljeVwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdHM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QWdyZWVtZW50Q2hhcmdlcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBZ3JlZW1lbnRDaGFyZ2VzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpMaXN0QWdyZWVtZW50Q2hhcmdlc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QWdyZWVtZW50SW52b2ljZUxpbmVJdGVtcyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RBZ3JlZW1lbnRJbnZvaWNlTGluZUl0ZW1zOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpMaXN0QWdyZWVtZW50SW52b2ljZUxpbmVJdGVtc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QWdyZWVtZW50UGF5bWVudFJlcXVlc3RzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QXNzZXNzbWVudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QXNzZXNzbWVudHM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RBc3Nlc3NtZW50c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0QmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RCaWxsaW5nQWRqdXN0bWVudFJlcXVlc3RzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpMaXN0QmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0c1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0Q2hhbmdlU2V0cyBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RDaGFuZ2VTZXRzOiBzdHJpbmdbXSA9IFtcImF3cy1tYXJrZXRwbGFjZTpMaXN0Q2hhbmdlU2V0c1wiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdEVudGl0aWVzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEVudGl0aWVzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpEZXNjcmliZUVudGl0eVwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RFbnRpdGllc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0RnVsZmlsbG1lbnRPcHRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEZ1bGZpbGxtZW50T3B0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdEZ1bGZpbGxtZW50T3B0aW9uc1wiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBMaXN0UHVyY2hhc2VPcHRpb25zIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdFB1cmNoYXNlT3B0aW9uczogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6TGlzdFByaXZhdGVMaXN0aW5nc1wiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RQdXJjaGFzZU9wdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTGlzdFRhZ3NGb3JSZXNvdXJjZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RUYWdzRm9yUmVzb3VyY2U6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkxpc3RUYWdzRm9yUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgTWV0ZXJVc2FnZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IE1ldGVyVXNhZ2U6IHN0cmluZ1tdID0gW1wiYXdzLW1hcmtldHBsYWNlOk1ldGVyVXNhZ2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFB1dERlcGxveW1lbnRQYXJhbWV0ZXIgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXREZXBsb3ltZW50UGFyYW1ldGVyOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpQdXREZXBsb3ltZW50UGFyYW1ldGVyXCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6VGFnUmVzb3VyY2VcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUHV0UmVzb3VyY2VQb2xpY3kgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBQdXRSZXNvdXJjZVBvbGljeTogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UHV0UmVzb3VyY2VQb2xpY3lcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgUmVnaXN0ZXJVc2FnZSBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlZ2lzdGVyVXNhZ2U6IHN0cmluZ1tdID0gW1wiYXdzLW1hcmtldHBsYWNlOlJlZ2lzdGVyVXNhZ2VcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlamVjdEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBSZWplY3RBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0OiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpSZWplY3RBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlamVjdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0IEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVqZWN0QWdyZWVtZW50UGF5bWVudFJlcXVlc3Q6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlJlamVjdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0XCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFJlc29sdmVDdXN0b21lciBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFJlc29sdmVDdXN0b21lcjogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UmVzb2x2ZUN1c3RvbWVyXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFNlYXJjaEFncmVlbWVudHMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTZWFyY2hBZ3JlZW1lbnRzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpTZWFyY2hBZ3JlZW1lbnRzXCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6Vmlld1N1YnNjcmlwdGlvbnNcIixcblx0XTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgU2VhcmNoRmFjZXRzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VhcmNoRmFjZXRzOiBzdHJpbmdbXSA9IFtcImF3cy1tYXJrZXRwbGFjZTpTZWFyY2hGYWNldHNcIl07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFNlYXJjaExpc3RpbmdzIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU2VhcmNoTGlzdGluZ3M6IHN0cmluZ1tdID0gW1wiYXdzLW1hcmtldHBsYWNlOlNlYXJjaExpc3RpbmdzXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTZW5kQWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlbmRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0OiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpTZW5kQWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTZW5kQWdyZWVtZW50UGF5bWVudFJlcXVlc3QgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kQWdyZWVtZW50UGF5bWVudFJlcXVlc3Q6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlNlbmRBZ3JlZW1lbnRQYXltZW50UmVxdWVzdFwiLFxuXHRdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBTdGFydENoYW5nZVNldCBBUEkgY2FsbC4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0Q2hhbmdlU2V0OiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpEZXNjcmliZUFncmVlbWVudFwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkRlc2NyaWJlQ2hhbmdlU2V0XCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6RGVzY3JpYmVFbnRpdHlcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpHZXRBZ3JlZW1lbnRUZXJtc1wiLFxuXHRcdFwiaWFtOlBhc3NSb2xlXCIsXG5cdFx0XCJkYXRhZXhjaGFuZ2U6UHVibGlzaERhdGFTZXRcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpTdGFydENoYW5nZVNldFwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlRhZ1Jlc291cmNlXCIsXG5cdF07XG5cdC8qKiBJQU0gYWN0aW9ucyByZXF1aXJlZCBmb3IgdGhlIFRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2U6IHN0cmluZ1tdID0gW1wiYXdzLW1hcmtldHBsYWNlOlRhZ1Jlc291cmNlXCJdO1xuXHQvKiogSUFNIGFjdGlvbnMgcmVxdWlyZWQgZm9yIHRoZSBVbnRhZ1Jlc291cmNlIEFQSSBjYWxsLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZTogc3RyaW5nW10gPSBbXCJhd3MtbWFya2V0cGxhY2U6VW50YWdSZXNvdXJjZVwiXTtcblx0LyoqIElBTSBhY3Rpb25zIHJlcXVpcmVkIGZvciB0aGUgVXBkYXRlUHVyY2hhc2VPcmRlcnMgQVBJIGNhbGwuICovXG5cdHN0YXRpYyByZWFkb25seSBVcGRhdGVQdXJjaGFzZU9yZGVyczogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6VXBkYXRlUHVyY2hhc2VPcmRlcnNcIixcblx0XTtcbn1cblxuLyoqXG4gKiBDb25kaXRpb24ga2V5IGNvbnN0YW50cyBhbmQgYnVpbGRlcnMgZm9yIGF3cy1tYXJrZXRwbGFjZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEFXU01hcmtldHBsYWNlQ29uZGl0aW9ucyB7XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBBY2NlcHRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEFjY2VwdEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3RDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBZ3JlZW1lbnRUeXBlXCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UGFydHlUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBBY2NlcHRBZ3JlZW1lbnRQYXltZW50UmVxdWVzdCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBBY2NlcHRBZ3JlZW1lbnRQYXltZW50UmVxdWVzdENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpQYXJ0eVR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEFjY2VwdEFncmVlbWVudFJlcXVlc3QgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQWNjZXB0QWdyZWVtZW50UmVxdWVzdENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpQcm9kdWN0SWRcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEJhdGNoQ3JlYXRlQmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IEJhdGNoQ3JlYXRlQmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWdyZWVtZW50VHlwZVwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlBhcnR5VHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ2FuY2VsQWdyZWVtZW50IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENhbmNlbEFncmVlbWVudENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENhbmNlbEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3QgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ2FuY2VsQWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpQYXJ0eVR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIENhbmNlbEFncmVlbWVudFBheW1lbnRSZXF1ZXN0IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IENhbmNlbEFncmVlbWVudFBheW1lbnRSZXF1ZXN0Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWdyZWVtZW50VHlwZVwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlBhcnR5VHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlQWdyZWVtZW50UmVxdWVzdCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBDcmVhdGVBZ3JlZW1lbnRSZXF1ZXN0Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWdyZWVtZW50VHlwZVwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlByb2R1Y3RJZFwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgQ3JlYXRlVmVyaWZpY2F0aW9uRXZpZGVuY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQ3JlYXRlVmVyaWZpY2F0aW9uRXZpZGVuY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIERlc2NyaWJlQWdyZWVtZW50IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IERlc2NyaWJlQWdyZWVtZW50Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWdyZWVtZW50VHlwZVwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlBhcnR5VHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgR2V0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPVxuXHRcdFtcImF3cy1tYXJrZXRwbGFjZTpBZ3JlZW1lbnRUeXBlXCIsIFwiYXdzLW1hcmtldHBsYWNlOlBhcnR5VHlwZVwiXTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldEFncmVlbWVudEVudGl0bGVtZW50cyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ3JlZW1lbnRFbnRpdGxlbWVudHNDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBZ3JlZW1lbnRUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBHZXRBZ3JlZW1lbnRQYXltZW50UmVxdWVzdCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRBZ3JlZW1lbnRQYXltZW50UmVxdWVzdENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpQYXJ0eVR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldEFncmVlbWVudFRlcm1zIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEFncmVlbWVudFRlcm1zQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWdyZWVtZW50VHlwZVwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlBhcnR5VHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgR2V0QmlsbGluZ0FkanVzdG1lbnRSZXF1ZXN0IGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IGFjdGlvbkdldEJpbGxpbmdBZGp1c3RtZW50UmVxdWVzdENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpQYXJ0eVR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIEdldFZlcmlmaWNhdGlvbiBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBhY3Rpb25HZXRWZXJpZmljYXRpb25Db25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpWZXJpZmljYXRpb25UeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBMaXN0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdHMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFncmVlbWVudENhbmNlbGxhdGlvblJlcXVlc3RzQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWdyZWVtZW50VHlwZVwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlBhcnR5VHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgTGlzdEFncmVlbWVudENoYXJnZXMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFncmVlbWVudENoYXJnZXNDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBZ3JlZW1lbnRUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBMaXN0QWdyZWVtZW50SW52b2ljZUxpbmVJdGVtcyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0QWdyZWVtZW50SW52b2ljZUxpbmVJdGVtc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpQYXJ0eVR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIExpc3RBZ3JlZW1lbnRQYXltZW50UmVxdWVzdHMgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgTGlzdEFncmVlbWVudFBheW1lbnRSZXF1ZXN0c0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpQYXJ0eVR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIExpc3RCaWxsaW5nQWRqdXN0bWVudFJlcXVlc3RzIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IExpc3RCaWxsaW5nQWRqdXN0bWVudFJlcXVlc3RzQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWdyZWVtZW50VHlwZVwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlBhcnR5VHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgTGlzdFRhZ3NGb3JSZXNvdXJjZSBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VGFnc0ZvclJlc291cmNlQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBMaXN0VmVyaWZpY2F0aW9ucyBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBMaXN0VmVyaWZpY2F0aW9uc0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlZlcmlmaWNhdGlvblR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFB1dERlcGxveW1lbnRQYXJhbWV0ZXIgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUHV0RGVwbG95bWVudFBhcmFtZXRlckNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgUmVqZWN0QWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBSZWplY3RBZ3JlZW1lbnRDYW5jZWxsYXRpb25SZXF1ZXN0Q29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWdyZWVtZW50VHlwZVwiLFxuXHRcdFwiYXdzLW1hcmtldHBsYWNlOlBhcnR5VHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgUmVqZWN0QWdyZWVtZW50UGF5bWVudFJlcXVlc3QgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUmVqZWN0QWdyZWVtZW50UGF5bWVudFJlcXVlc3RDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBZ3JlZW1lbnRUeXBlXCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UGFydHlUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTZWFyY2hBZ3JlZW1lbnRzIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFNlYXJjaEFncmVlbWVudHNDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBZ3JlZW1lbnRUeXBlXCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UGFydHlUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTZW5kQWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kQWdyZWVtZW50Q2FuY2VsbGF0aW9uUmVxdWVzdENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIixcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpQYXJ0eVR5cGVcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFNlbmRBZ3JlZW1lbnRQYXltZW50UmVxdWVzdCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTZW5kQWdyZWVtZW50UGF5bWVudFJlcXVlc3RDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3cy1tYXJrZXRwbGFjZTpBZ3JlZW1lbnRUeXBlXCIsXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6UGFydHlUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTdGFydENoYW5nZVNldCBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydENoYW5nZVNldENvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzLW1hcmtldHBsYWNlOkludGVudFwiLFxuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRcdFwiY2F0YWxvZzpDaGFuZ2VUeXBlXCIsXG5cdF07XG5cdC8qKiBDb25kaXRpb24ga2V5cyBhcHBsaWNhYmxlIHRvIHRoZSBTdGFydEludm9pY2VTdWJtaXNzaW9uVGFzayBhY3Rpb24uICovXG5cdHN0YXRpYyByZWFkb25seSBTdGFydEludm9pY2VTdWJtaXNzaW9uVGFza0NvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9XCIsXG5cdFx0XCJhd3M6VGFnS2V5c1wiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgU3RhcnRUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2sgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgU3RhcnRUYXhDb21wbGlhbmNlUHJvZmlsZUNoYW5nZVRhc2tDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFN0YXJ0VmVyaWZpY2F0aW9uIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFN0YXJ0VmVyaWZpY2F0aW9uQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6VmVyaWZpY2F0aW9uVHlwZVwiLFxuXHRdO1xuXHQvKiogQ29uZGl0aW9uIGtleXMgYXBwbGljYWJsZSB0byB0aGUgVGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVGFnUmVzb3VyY2VDb25kaXRpb25LZXlzOiBzdHJpbmdbXSA9IFtcblx0XHRcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVudGFnUmVzb3VyY2UgYWN0aW9uLiAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgVW50YWdSZXNvdXJjZUNvbmRpdGlvbktleXM6IHN0cmluZ1tdID0gW1xuXHRcdFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiLFxuXHRcdFwiYXdzOlRhZ0tleXNcIixcblx0XTtcblx0LyoqIENvbmRpdGlvbiBrZXlzIGFwcGxpY2FibGUgdG8gdGhlIFVwZGF0ZVB1cmNoYXNlT3JkZXJzIGFjdGlvbi4gKi9cblx0c3RhdGljIHJlYWRvbmx5IFVwZGF0ZVB1cmNoYXNlT3JkZXJzQ29uZGl0aW9uS2V5czogc3RyaW5nW10gPSBbXG5cdFx0XCJhd3MtbWFya2V0cGxhY2U6QWdyZWVtZW50VHlwZVwiLFxuXHRdO1xuXG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3MtbWFya2V0cGxhY2U6QWdyZWVtZW50VHlwZSAoQXJyYXlPZlN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IEFHUkVFTUVOVF9UWVBFID0gXCJhd3MtbWFya2V0cGxhY2U6QWdyZWVtZW50VHlwZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzLW1hcmtldHBsYWNlOkludGVudCAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgSU5URU5UID0gXCJhd3MtbWFya2V0cGxhY2U6SW50ZW50XCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3MtbWFya2V0cGxhY2U6UGFydHlUeXBlIChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBQQVJUWV9UWVBFID0gXCJhd3MtbWFya2V0cGxhY2U6UGFydHlUeXBlXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBhd3MtbWFya2V0cGxhY2U6UHJvZHVjdElkIChBcnJheU9mU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgUFJPRFVDVF9JRCA9IFwiYXdzLW1hcmtldHBsYWNlOlByb2R1Y3RJZFwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzLW1hcmtldHBsYWNlOlZlcmlmaWNhdGlvblR5cGUgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IFZFUklGSUNBVElPTl9UWVBFID0gXCJhd3MtbWFya2V0cGxhY2U6VmVyaWZpY2F0aW9uVHlwZVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlcXVlc3RUYWcvJHtUYWdLZXl9IChTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfUkVRVUVTVF9UQUcgPSBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fSAoU3RyaW5nKSAqL1xuXHRzdGF0aWMgcmVhZG9ubHkgQVdTX1JFU09VUkNFX1RBRyA9IFwiYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fVwiO1xuXHQvKiogQ29uZGl0aW9uIGtleTogYXdzOlRhZ0tleXMgKEFycmF5T2ZTdHJpbmcpICovXG5cdHN0YXRpYyByZWFkb25seSBBV1NfVEFHX0tFWVMgPSBcImF3czpUYWdLZXlzXCI7XG5cdC8qKiBDb25kaXRpb24ga2V5OiBjYXRhbG9nOkNoYW5nZVR5cGUgKFN0cmluZykgKi9cblx0c3RhdGljIHJlYWRvbmx5IENIQU5HRV9UWVBFID0gXCJjYXRhbG9nOkNoYW5nZVR5cGVcIjtcblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVgLlxuXHQgKi9cblx0c3RhdGljIGFncmVlbWVudFR5cGUoXG5cdFx0dmFsdWVzOiBzdHJpbmdbXSxcblx0KTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdFwiRm9yQWxsVmFsdWVzOlN0cmluZ0VxdWFsc1wiOiB7IFwiYXdzLW1hcmtldHBsYWNlOkFncmVlbWVudFR5cGVcIjogdmFsdWVzIH0sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3MtbWFya2V0cGxhY2U6SW50ZW50YC5cblx0ICovXG5cdHN0YXRpYyBpbnRlbnQodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3MtbWFya2V0cGxhY2U6SW50ZW50XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3MtbWFya2V0cGxhY2U6UGFydHlUeXBlYC5cblx0ICovXG5cdHN0YXRpYyBwYXJ0eVR5cGUodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3MtbWFya2V0cGxhY2U6UGFydHlUeXBlXCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3MtbWFya2V0cGxhY2U6UHJvZHVjdElkYC5cblx0ICovXG5cdHN0YXRpYyBwcm9kdWN0SWQodmFsdWVzOiBzdHJpbmdbXSk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPj4ge1xuXHRcdHJldHVybiB7XG5cdFx0XHRcIkZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHNcIjogeyBcImF3cy1tYXJrZXRwbGFjZTpQcm9kdWN0SWRcIjogdmFsdWVzIH0sXG5cdFx0fTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3MtbWFya2V0cGxhY2U6VmVyaWZpY2F0aW9uVHlwZWAuXG5cdCAqL1xuXHRzdGF0aWMgdmVyaWZpY2F0aW9uVHlwZShcblx0XHR2YWx1ZTogc3RyaW5nLFxuXHQpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHsgU3RyaW5nRXF1YWxzOiB7IFwiYXdzLW1hcmtldHBsYWNlOlZlcmlmaWNhdGlvblR5cGVcIjogdmFsdWUgfSB9O1xuXHR9XG5cblx0LyoqXG5cdCAqIEdlbmVyYXRlcyBhIGNvbmRpdGlvbiBibG9jayBmb3IgYGF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVxdWVzdFRhZyh2YWx1ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuXHRcdHJldHVybiB7IFN0cmluZ0VxdWFsczogeyBcImF3czpSZXF1ZXN0VGFnLyR7VGFnS2V5fVwiOiB2YWx1ZSB9IH07XG5cdH1cblxuXHQvKipcblx0ICogR2VuZXJhdGVzIGEgY29uZGl0aW9uIGJsb2NrIGZvciBgYXdzOlJlc291cmNlVGFnLyR7VGFnS2V5fWAuXG5cdCAqL1xuXHRzdGF0aWMgcmVzb3VyY2VUYWcodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcblx0XHRyZXR1cm4geyBTdHJpbmdFcXVhbHM6IHsgXCJhd3M6UmVzb3VyY2VUYWcvJHtUYWdLZXl9XCI6IHZhbHVlIH0gfTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZW5lcmF0ZXMgYSBjb25kaXRpb24gYmxvY2sgZm9yIGBhd3M6VGFnS2V5c2AuXG5cdCAqL1xuXHRzdGF0aWMgdGFnS2V5cyh2YWx1ZXM6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PiB7XG5cdFx0cmV0dXJuIHsgXCJGb3JBbGxWYWx1ZXM6U3RyaW5nRXF1YWxzXCI6IHsgXCJhd3M6VGFnS2V5c1wiOiB2YWx1ZXMgfSB9O1xuXHR9XG59XG4iXX0=